diff --git a/assets/swagger.json b/assets/swagger.json index e63eaa24c3456..306b6fed49be3 100644 --- a/assets/swagger.json +++ b/assets/swagger.json @@ -244,7 +244,7 @@ "type": "string" }, "collectionFormat": "multi", - "description": "the project names to restrict returned list applications.", + "description": "the project names to restrict returned list applications\nDeprecated: use options.projects instead.", "name": "projects", "in": "query" }, @@ -256,13 +256,13 @@ }, { "type": "string", - "description": "the selector to restrict returned list to applications only with matched labels.", + "description": "the selector to restrict returned list to applications only with matched labels\nDeprecated: use options.selector instead.", "name": "selector", "in": "query" }, { "type": "string", - "description": "the repoURL to restrict returned list applications.", + "description": "the repoURL to restrict returned list applications\nDeprecated: use options.repos instead.", "name": "repo", "in": "query" }, @@ -278,16 +278,117 @@ "type": "string" }, "collectionFormat": "multi", - "description": "the project names to restrict returned list applications (legacy name for backwards-compatibility).", + "description": "the project names to restrict returned list applications (legacy name for backwards-compatibility)\nDeprecated: use options.projects instead.", "name": "project", "in": "query" + }, + { + "type": "string", + "description": "the application name to start from (app with min name is included in response).", + "name": "options.minName", + "in": "query" + }, + { + "type": "string", + "description": "the application name to end at (app with max name is included in response).", + "name": "options.maxName", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the repos filter, ignore if the field repo was defined.", + "name": "options.repos", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the clusters filter.", + "name": "options.clusters", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the namespaces filter.", + "name": "options.namespaces", + "in": "query" + }, + { + "type": "boolean", + "description": "the auth sync filter.", + "name": "options.autoSyncEnabled", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the sync status filter.", + "name": "options.syncStatuses", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the health status filter.", + "name": "options.healthStatuses", + "in": "query" + }, + { + "type": "string", + "description": "search.", + "name": "options.search", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "offset.", + "name": "options.offset", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "limit.", + "name": "options.limit", + "in": "query" + }, + { + "enum": [ + "ASB_UNSPECIFIED", + "ASB_NAME", + "ASB_CREATED_AT", + "ASB_SYNCHRONIZED" + ], + "type": "string", + "default": "ASB_UNSPECIFIED", + "description": "sort by enum=name;created-at;synchronized.\n\n - ASB_UNSPECIFIED: unspecified, sort by name\n - ASB_NAME: sort by .Name\n - ASB_CREATED_AT: sort by .Metadata.CreateTimestamp\n - ASB_SYNCHRONIZED: sort by .Status.OperationState.FinishedAt", + "name": "options.sortBy", + "in": "query" } ], "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1alpha1ApplicationList" + "$ref": "#/definitions/applicationApplicationListResponse" } }, "default": { @@ -583,7 +684,7 @@ "type": "string" }, "collectionFormat": "multi", - "description": "the project names to restrict returned list applications.", + "description": "the project names to restrict returned list applications\nDeprecated: use options.projects instead.", "name": "projects", "in": "query" }, @@ -595,13 +696,13 @@ }, { "type": "string", - "description": "the selector to restrict returned list to applications only with matched labels.", + "description": "the selector to restrict returned list to applications only with matched labels\nDeprecated: use options.selector instead.", "name": "selector", "in": "query" }, { "type": "string", - "description": "the repoURL to restrict returned list applications.", + "description": "the repoURL to restrict returned list applications\nDeprecated: use options.repos instead.", "name": "repo", "in": "query" }, @@ -617,9 +718,110 @@ "type": "string" }, "collectionFormat": "multi", - "description": "the project names to restrict returned list applications (legacy name for backwards-compatibility).", + "description": "the project names to restrict returned list applications (legacy name for backwards-compatibility)\nDeprecated: use options.projects instead.", "name": "project", "in": "query" + }, + { + "type": "string", + "description": "the application name to start from (app with min name is included in response).", + "name": "options.minName", + "in": "query" + }, + { + "type": "string", + "description": "the application name to end at (app with max name is included in response).", + "name": "options.maxName", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the repos filter, ignore if the field repo was defined.", + "name": "options.repos", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the clusters filter.", + "name": "options.clusters", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the namespaces filter.", + "name": "options.namespaces", + "in": "query" + }, + { + "type": "boolean", + "description": "the auth sync filter.", + "name": "options.autoSyncEnabled", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the sync status filter.", + "name": "options.syncStatuses", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the health status filter.", + "name": "options.healthStatuses", + "in": "query" + }, + { + "type": "string", + "description": "search.", + "name": "options.search", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "offset.", + "name": "options.offset", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "limit.", + "name": "options.limit", + "in": "query" + }, + { + "enum": [ + "ASB_UNSPECIFIED", + "ASB_NAME", + "ASB_CREATED_AT", + "ASB_SYNCHRONIZED" + ], + "type": "string", + "default": "ASB_UNSPECIFIED", + "description": "sort by enum=name;created-at;synchronized.\n\n - ASB_UNSPECIFIED: unspecified, sort by name\n - ASB_NAME: sort by .Name\n - ASB_CREATED_AT: sort by .Metadata.CreateTimestamp\n - ASB_SYNCHRONIZED: sort by .Status.OperationState.FinishedAt", + "name": "options.sortBy", + "in": "query" } ], "responses": { @@ -4078,7 +4280,7 @@ "type": "string" }, "collectionFormat": "multi", - "description": "the project names to restrict returned list applications.", + "description": "the project names to restrict returned list applications\nDeprecated: use options.projects instead.", "name": "projects", "in": "query" }, @@ -4090,13 +4292,13 @@ }, { "type": "string", - "description": "the selector to restrict returned list to applications only with matched labels.", + "description": "the selector to restrict returned list to applications only with matched labels\nDeprecated: use options.selector instead.", "name": "selector", "in": "query" }, { "type": "string", - "description": "the repoURL to restrict returned list applications.", + "description": "the repoURL to restrict returned list applications\nDeprecated: use options.repos instead.", "name": "repo", "in": "query" }, @@ -4112,9 +4314,110 @@ "type": "string" }, "collectionFormat": "multi", - "description": "the project names to restrict returned list applications (legacy name for backwards-compatibility).", + "description": "the project names to restrict returned list applications (legacy name for backwards-compatibility)\nDeprecated: use options.projects instead.", "name": "project", "in": "query" + }, + { + "type": "string", + "description": "the application name to start from (app with min name is included in response).", + "name": "options.minName", + "in": "query" + }, + { + "type": "string", + "description": "the application name to end at (app with max name is included in response).", + "name": "options.maxName", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the repos filter, ignore if the field repo was defined.", + "name": "options.repos", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the clusters filter.", + "name": "options.clusters", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the namespaces filter.", + "name": "options.namespaces", + "in": "query" + }, + { + "type": "boolean", + "description": "the auth sync filter.", + "name": "options.autoSyncEnabled", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the sync status filter.", + "name": "options.syncStatuses", + "in": "query" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "description": "the health status filter.", + "name": "options.healthStatuses", + "in": "query" + }, + { + "type": "string", + "description": "search.", + "name": "options.search", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "offset.", + "name": "options.offset", + "in": "query" + }, + { + "type": "string", + "format": "int64", + "description": "limit.", + "name": "options.limit", + "in": "query" + }, + { + "enum": [ + "ASB_UNSPECIFIED", + "ASB_NAME", + "ASB_CREATED_AT", + "ASB_SYNCHRONIZED" + ], + "type": "string", + "default": "ASB_UNSPECIFIED", + "description": "sort by enum=name;created-at;synchronized.\n\n - ASB_UNSPECIFIED: unspecified, sort by name\n - ASB_NAME: sort by .Name\n - ASB_CREATED_AT: sort by .Metadata.CreateTimestamp\n - ASB_SYNCHRONIZED: sort by .Status.OperationState.FinishedAt", + "name": "options.sortBy", + "in": "query" } ], "responses": { @@ -4860,6 +5163,156 @@ "accountUpdatePasswordResponse": { "type": "object" }, + "applicationApplicationLabelStats": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "applicationApplicationListOptions": { + "type": "object", + "properties": { + "autoSyncEnabled": { + "type": "boolean", + "title": "the auth sync filter" + }, + "clusters": { + "type": "array", + "title": "the clusters filter", + "items": { + "type": "string" + } + }, + "healthStatuses": { + "type": "array", + "title": "the health status filter", + "items": { + "type": "string" + } + }, + "limit": { + "type": "integer", + "format": "int64", + "title": "limit" + }, + "maxName": { + "type": "string", + "title": "the application name to end at (app with max name is included in response)" + }, + "minName": { + "type": "string", + "title": "the application name to start from (app with min name is included in response)" + }, + "namespaces": { + "type": "array", + "title": "the namespaces filter", + "items": { + "type": "string" + } + }, + "offset": { + "type": "integer", + "format": "int64", + "title": "offset" + }, + "repos": { + "type": "array", + "title": "the repos filter, ignore if the field repo was defined", + "items": { + "type": "string" + } + }, + "search": { + "type": "string", + "title": "search" + }, + "sortBy": { + "$ref": "#/definitions/applicationApplicationSortBy" + }, + "syncStatuses": { + "type": "array", + "title": "the sync status filter", + "items": { + "type": "string" + } + } + } + }, + "applicationApplicationListResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1alpha1Application" + } + }, + "stats": { + "$ref": "#/definitions/applicationApplicationListStats" + } + } + }, + "applicationApplicationListStats": { + "description": "Stats for the application list\nNote total/totalBySyncStatus/totalByHealthStatus/autoSyncEnabledCount is for pagination, therefore\nthe calculation is based on the filtered applications, meanwhile destinations/namespaces/labels are \ncalculated based on all.", + "type": "object", + "properties": { + "autoSyncEnabledCount": { + "type": "integer", + "format": "int64", + "title": "the number of applications with auto-sync enabled" + }, + "destinations": { + "type": "array", + "title": "all destinations for the applications returned", + "items": { + "$ref": "#/definitions/v1alpha1ApplicationDestination" + } + }, + "labels": { + "type": "array", + "title": "all labels for the applications returned", + "items": { + "$ref": "#/definitions/applicationApplicationLabelStats" + } + }, + "namespaces": { + "type": "array", + "title": "all namespaces for the applications returned", + "items": { + "type": "string" + } + }, + "total": { + "type": "integer", + "format": "int64", + "title": "the number of applications" + }, + "totalByHealthStatus": { + "type": "object", + "title": "the number of applications based on the health status", + "additionalProperties": { + "type": "string", + "format": "int64" + } + }, + "totalBySyncStatus": { + "type": "object", + "title": "the number of applications based on the sync status", + "additionalProperties": { + "type": "string", + "format": "int64" + } + } + } + }, "applicationApplicationManifestQueryWithFiles": { "type": "object", "properties": { @@ -4944,6 +5397,17 @@ } } }, + "applicationApplicationSortBy": { + "type": "string", + "title": "- ASB_UNSPECIFIED: unspecified, sort by name\n - ASB_NAME: sort by .Name\n - ASB_CREATED_AT: sort by .Metadata.CreateTimestamp\n - ASB_SYNCHRONIZED: sort by .Status.OperationState.FinishedAt", + "default": "ASB_UNSPECIFIED", + "enum": [ + "ASB_UNSPECIFIED", + "ASB_NAME", + "ASB_CREATED_AT", + "ASB_SYNCHRONIZED" + ] + }, "applicationApplicationSyncRequest": { "type": "object", "title": "ApplicationSyncRequest is a request to apply the config state to live state", @@ -6852,21 +7316,6 @@ } } }, - "v1alpha1ApplicationList": { - "type": "object", - "title": "ApplicationList is list of Application resources\n+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1alpha1Application" - } - }, - "metadata": { - "$ref": "#/definitions/v1ListMeta" - } - } - }, "v1alpha1ApplicationMatchExpression": { "type": "object", "properties": { diff --git a/cmd/argocd/commands/app.go b/cmd/argocd/commands/app.go index cb1bdc54caed1..4ed9afb1652fd 100644 --- a/cmd/argocd/commands/app.go +++ b/cmd/argocd/commands/app.go @@ -1662,14 +1662,14 @@ func checkForDeleteEvent(ctx context.Context, acdClient argocdclient.Client, app } // Print simple list of application names -func printApplicationNames(apps []argoappv1.Application) { +func printApplicationNames(apps []*argoappv1.Application) { for _, app := range apps { fmt.Println(app.QualifiedName()) } } // Print table of application data -func printApplicationTable(apps []argoappv1.Application, output *string) { +func printApplicationTable(apps []*argoappv1.Application, output *string) { w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) var fmtStr string headers := []any{"NAME", "CLUSTER", "NAMESPACE", "PROJECT", "STATUS", "HEALTH", "SYNCPOLICY", "CONDITIONS"} @@ -1683,13 +1683,13 @@ func printApplicationTable(apps []argoappv1.Application, output *string) { for _, app := range apps { vals := []any{ app.QualifiedName(), - getServer(&app), + getServer(app), app.Spec.Destination.Namespace, app.Spec.GetProject(), app.Status.Sync.Status, app.Status.Health.Status, - formatSyncPolicy(app), - formatConditionsSummary(app), + formatSyncPolicy(*app), + formatConditionsSummary(*app), } if *output == "wide" { vals = append(vals, app.Spec.GetSource().RepoURL, app.Spec.GetSource().Path, app.Spec.GetSource().TargetRevision) @@ -1726,24 +1726,23 @@ func NewApplicationListCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co conn, appIf := headless.NewClientOrDie(clientOpts, c).NewApplicationClientOrDie() defer utilio.Close(conn) + listOpts := &application.ApplicationListOptions{} + if repo != "" { + listOpts.Repos = []string{repo} + } + if cluster != "" { + listOpts.Clusters = []string{cluster} + } apps, err := appIf.List(ctx, &application.ApplicationQuery{ Selector: ptr.To(selector), AppNamespace: &appNamespace, + Projects: projects, + Options: listOpts, }) errors.CheckError(err) appList := apps.Items - if len(projects) != 0 { - appList = argo.FilterByProjects(appList, projects) - } - if repo != "" { - appList = argo.FilterByRepo(appList, repo) - } - if cluster != "" { - appList = argo.FilterByCluster(appList, cluster) - } - switch output { case "yaml", "json": err := PrintResourceList(appList, output, false) diff --git a/cmd/argocd/commands/app_test.go b/cmd/argocd/commands/app_test.go index b8ba312fba90c..8ed1e034c8899 100644 --- a/cmd/argocd/commands/app_test.go +++ b/cmd/argocd/commands/app_test.go @@ -1040,7 +1040,7 @@ func TestPrintApplicationNames(t *testing.T) { Name: "test", }, } - printApplicationNames([]v1alpha1.Application{*app, *app}) + printApplicationNames([]*v1alpha1.Application{app, app}) return nil }) expectation := "test\ntest\n" @@ -1568,7 +1568,7 @@ func TestPrintApplicationTableNotWide(t *testing.T) { }, } output := "table" - printApplicationTable([]v1alpha1.Application{*app, *app}, &output) + printApplicationTable([]*v1alpha1.Application{app, app}, &output) return nil }) require.NoError(t, err) @@ -1604,7 +1604,7 @@ func TestPrintApplicationTableWide(t *testing.T) { }, } output := "wide" - printApplicationTable([]v1alpha1.Application{*app, *app}, &output) + printApplicationTable([]*v1alpha1.Application{app, app}, &output) return nil }) require.NoError(t, err) @@ -2136,7 +2136,7 @@ func (c *fakeAppServiceClient) Get(_ context.Context, _ *applicationpkg.Applicat }, nil } -func (c *fakeAppServiceClient) List(_ context.Context, _ *applicationpkg.ApplicationQuery, _ ...grpc.CallOption) (*v1alpha1.ApplicationList, error) { +func (c *fakeAppServiceClient) List(_ context.Context, _ *applicationpkg.ApplicationQuery, _ ...grpc.CallOption) (*applicationpkg.ApplicationListResponse, error) { return nil, nil } diff --git a/cmd/argocd/commands/applicationset.go b/cmd/argocd/commands/applicationset.go index 97ce8c5d8e234..3db224b901f4e 100644 --- a/cmd/argocd/commands/applicationset.go +++ b/cmd/argocd/commands/applicationset.go @@ -249,10 +249,7 @@ func NewApplicationSetGenerateCommand(clientOpts *argocdclient.ClientOptions) *c resp, err := appIf.Generate(ctx, &req) errors.CheckError(err) - var appsList []arogappsetv1.Application - for i := range resp.Applications { - appsList = append(appsList, *resp.Applications[i]) - } + appsList := resp.Applications switch output { case "yaml", "json": diff --git a/pkg/apiclient/application/application.pb.go b/pkg/apiclient/application/application.pb.go index 61bceaedcbea1..cd7c7f829d553 100644 --- a/pkg/apiclient/application/application.pb.go +++ b/pkg/apiclient/application/application.pb.go @@ -36,6 +36,56 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type ApplicationSortBy int32 + +const ( + // unspecified, sort by name + ApplicationSortBy_ASB_UNSPECIFIED ApplicationSortBy = 0 + // sort by .Name + ApplicationSortBy_ASB_NAME ApplicationSortBy = 1 + // sort by .Metadata.CreateTimestamp + ApplicationSortBy_ASB_CREATED_AT ApplicationSortBy = 2 + // sort by .Status.OperationState.FinishedAt + ApplicationSortBy_ASB_SYNCHRONIZED ApplicationSortBy = 3 +) + +var ApplicationSortBy_name = map[int32]string{ + 0: "ASB_UNSPECIFIED", + 1: "ASB_NAME", + 2: "ASB_CREATED_AT", + 3: "ASB_SYNCHRONIZED", +} + +var ApplicationSortBy_value = map[string]int32{ + "ASB_UNSPECIFIED": 0, + "ASB_NAME": 1, + "ASB_CREATED_AT": 2, + "ASB_SYNCHRONIZED": 3, +} + +func (x ApplicationSortBy) Enum() *ApplicationSortBy { + p := new(ApplicationSortBy) + *p = x + return p +} + +func (x ApplicationSortBy) String() string { + return proto.EnumName(ApplicationSortBy_name, int32(x)) +} + +func (x *ApplicationSortBy) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ApplicationSortBy_value, data, "ApplicationSortBy") + if err != nil { + return err + } + *x = ApplicationSortBy(value) + return nil +} + +func (ApplicationSortBy) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_df6e82b174b5eaec, []int{0} +} + // ApplicationQuery is a query for application resources. When getting multiple applications, the "projects" field acts // as a filter. When getting a single application, you may specify either zero or one project. If you specify zero // projects, the application will be returned regardless of which project it belongs to (assuming you have access). If @@ -47,20 +97,26 @@ type ApplicationQuery struct { // forces application reconciliation if set to 'hard' Refresh *string `protobuf:"bytes,2,opt,name=refresh" json:"refresh,omitempty"` // the project names to restrict returned list applications + // Deprecated: use options.projects instead Projects []string `protobuf:"bytes,3,rep,name=projects" json:"projects,omitempty"` // when specified with a watch call, shows changes that occur after that particular version of a resource. ResourceVersion *string `protobuf:"bytes,4,opt,name=resourceVersion" json:"resourceVersion,omitempty"` // the selector to restrict returned list to applications only with matched labels + // Deprecated: use options.selector instead Selector *string `protobuf:"bytes,5,opt,name=selector" json:"selector,omitempty"` // the repoURL to restrict returned list applications + // Deprecated: use options.repos instead Repo *string `protobuf:"bytes,6,opt,name=repo" json:"repo,omitempty"` // the application's namespace AppNamespace *string `protobuf:"bytes,7,opt,name=appNamespace" json:"appNamespace,omitempty"` // the project names to restrict returned list applications (legacy name for backwards-compatibility) - Project []string `protobuf:"bytes,8,rep,name=project" json:"project,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + // Deprecated: use options.projects instead + Project []string `protobuf:"bytes,8,rep,name=project" json:"project,omitempty"` + // the options to restrict returned list applications + Options *ApplicationListOptions `protobuf:"bytes,9,opt,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ApplicationQuery) Reset() { *m = ApplicationQuery{} } @@ -152,6 +208,376 @@ func (m *ApplicationQuery) GetProject() []string { return nil } +func (m *ApplicationQuery) GetOptions() *ApplicationListOptions { + if m != nil { + return m.Options + } + return nil +} + +type ApplicationListOptions struct { + // the application name to start from (app with min name is included in response) + MinName *string `protobuf:"bytes,1,opt,name=minName" json:"minName,omitempty"` + // the application name to end at (app with max name is included in response) + MaxName *string `protobuf:"bytes,2,opt,name=maxName" json:"maxName,omitempty"` + // the repos filter, ignore if the field repo was defined + Repos []string `protobuf:"bytes,3,rep,name=repos" json:"repos,omitempty"` + // the clusters filter + Clusters []string `protobuf:"bytes,4,rep,name=clusters" json:"clusters,omitempty"` + // the namespaces filter + Namespaces []string `protobuf:"bytes,5,rep,name=namespaces" json:"namespaces,omitempty"` + // the auth sync filter + AutoSyncEnabled *bool `protobuf:"varint,6,opt,name=autoSyncEnabled" json:"autoSyncEnabled,omitempty"` + // the sync status filter + SyncStatuses []string `protobuf:"bytes,7,rep,name=syncStatuses" json:"syncStatuses,omitempty"` + // the health status filter + HealthStatuses []string `protobuf:"bytes,8,rep,name=healthStatuses" json:"healthStatuses,omitempty"` + // search + Search *string `protobuf:"bytes,9,opt,name=search" json:"search,omitempty"` + // offset + Offset *int64 `protobuf:"varint,10,opt,name=offset" json:"offset,omitempty"` + // limit + Limit *int64 `protobuf:"varint,11,opt,name=limit" json:"limit,omitempty"` + // sort by enum=name;created-at;synchronized + SortBy *ApplicationSortBy `protobuf:"varint,12,opt,name=sortBy,enum=application.ApplicationSortBy" json:"sortBy,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationListOptions) Reset() { *m = ApplicationListOptions{} } +func (m *ApplicationListOptions) String() string { return proto.CompactTextString(m) } +func (*ApplicationListOptions) ProtoMessage() {} +func (*ApplicationListOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_df6e82b174b5eaec, []int{1} +} +func (m *ApplicationListOptions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplicationListOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ApplicationListOptions.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ApplicationListOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationListOptions.Merge(m, src) +} +func (m *ApplicationListOptions) XXX_Size() int { + return m.Size() +} +func (m *ApplicationListOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationListOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationListOptions proto.InternalMessageInfo + +func (m *ApplicationListOptions) GetMinName() string { + if m != nil && m.MinName != nil { + return *m.MinName + } + return "" +} + +func (m *ApplicationListOptions) GetMaxName() string { + if m != nil && m.MaxName != nil { + return *m.MaxName + } + return "" +} + +func (m *ApplicationListOptions) GetRepos() []string { + if m != nil { + return m.Repos + } + return nil +} + +func (m *ApplicationListOptions) GetClusters() []string { + if m != nil { + return m.Clusters + } + return nil +} + +func (m *ApplicationListOptions) GetNamespaces() []string { + if m != nil { + return m.Namespaces + } + return nil +} + +func (m *ApplicationListOptions) GetAutoSyncEnabled() bool { + if m != nil && m.AutoSyncEnabled != nil { + return *m.AutoSyncEnabled + } + return false +} + +func (m *ApplicationListOptions) GetSyncStatuses() []string { + if m != nil { + return m.SyncStatuses + } + return nil +} + +func (m *ApplicationListOptions) GetHealthStatuses() []string { + if m != nil { + return m.HealthStatuses + } + return nil +} + +func (m *ApplicationListOptions) GetSearch() string { + if m != nil && m.Search != nil { + return *m.Search + } + return "" +} + +func (m *ApplicationListOptions) GetOffset() int64 { + if m != nil && m.Offset != nil { + return *m.Offset + } + return 0 +} + +func (m *ApplicationListOptions) GetLimit() int64 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return 0 +} + +func (m *ApplicationListOptions) GetSortBy() ApplicationSortBy { + if m != nil && m.SortBy != nil { + return *m.SortBy + } + return ApplicationSortBy_ASB_UNSPECIFIED +} + +type ApplicationListResponse struct { + Items []*v1alpha1.Application `protobuf:"bytes,1,rep,name=items" json:"items,omitempty"` + Stats *ApplicationListStats `protobuf:"bytes,2,req,name=stats" json:"stats,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationListResponse) Reset() { *m = ApplicationListResponse{} } +func (m *ApplicationListResponse) String() string { return proto.CompactTextString(m) } +func (*ApplicationListResponse) ProtoMessage() {} +func (*ApplicationListResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_df6e82b174b5eaec, []int{2} +} +func (m *ApplicationListResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplicationListResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ApplicationListResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ApplicationListResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationListResponse.Merge(m, src) +} +func (m *ApplicationListResponse) XXX_Size() int { + return m.Size() +} +func (m *ApplicationListResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationListResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationListResponse proto.InternalMessageInfo + +func (m *ApplicationListResponse) GetItems() []*v1alpha1.Application { + if m != nil { + return m.Items + } + return nil +} + +func (m *ApplicationListResponse) GetStats() *ApplicationListStats { + if m != nil { + return m.Stats + } + return nil +} + +// Stats for the application list +// Note total/totalBySyncStatus/totalByHealthStatus/autoSyncEnabledCount is for pagination, therefore +// the calculation is based on the filtered applications, meanwhile destinations/namespaces/labels are +// calculated based on all. +type ApplicationListStats struct { + // the number of applications + Total *int64 `protobuf:"varint,1,req,name=total" json:"total,omitempty"` + // the number of applications based on the sync status + TotalBySyncStatus map[string]int64 `protobuf:"bytes,2,rep,name=totalBySyncStatus" json:"totalBySyncStatus,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + // the number of applications based on the health status + TotalByHealthStatus map[string]int64 `protobuf:"bytes,3,rep,name=totalByHealthStatus" json:"totalByHealthStatus,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + // the number of applications with auto-sync enabled + AutoSyncEnabledCount *int64 `protobuf:"varint,4,req,name=autoSyncEnabledCount" json:"autoSyncEnabledCount,omitempty"` + // all destinations for the applications returned + Destinations []*v1alpha1.ApplicationDestination `protobuf:"bytes,5,rep,name=destinations" json:"destinations,omitempty"` + // all namespaces for the applications returned + Namespaces []string `protobuf:"bytes,6,rep,name=namespaces" json:"namespaces,omitempty"` + // all labels for the applications returned + Labels []*ApplicationLabelStats `protobuf:"bytes,7,rep,name=labels" json:"labels,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationListStats) Reset() { *m = ApplicationListStats{} } +func (m *ApplicationListStats) String() string { return proto.CompactTextString(m) } +func (*ApplicationListStats) ProtoMessage() {} +func (*ApplicationListStats) Descriptor() ([]byte, []int) { + return fileDescriptor_df6e82b174b5eaec, []int{3} +} +func (m *ApplicationListStats) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplicationListStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ApplicationListStats.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ApplicationListStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationListStats.Merge(m, src) +} +func (m *ApplicationListStats) XXX_Size() int { + return m.Size() +} +func (m *ApplicationListStats) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationListStats.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationListStats proto.InternalMessageInfo + +func (m *ApplicationListStats) GetTotal() int64 { + if m != nil && m.Total != nil { + return *m.Total + } + return 0 +} + +func (m *ApplicationListStats) GetTotalBySyncStatus() map[string]int64 { + if m != nil { + return m.TotalBySyncStatus + } + return nil +} + +func (m *ApplicationListStats) GetTotalByHealthStatus() map[string]int64 { + if m != nil { + return m.TotalByHealthStatus + } + return nil +} + +func (m *ApplicationListStats) GetAutoSyncEnabledCount() int64 { + if m != nil && m.AutoSyncEnabledCount != nil { + return *m.AutoSyncEnabledCount + } + return 0 +} + +func (m *ApplicationListStats) GetDestinations() []*v1alpha1.ApplicationDestination { + if m != nil { + return m.Destinations + } + return nil +} + +func (m *ApplicationListStats) GetNamespaces() []string { + if m != nil { + return m.Namespaces + } + return nil +} + +func (m *ApplicationListStats) GetLabels() []*ApplicationLabelStats { + if m != nil { + return m.Labels + } + return nil +} + +type ApplicationLabelStats struct { + Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` + Values []string `protobuf:"bytes,2,rep,name=values" json:"values,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationLabelStats) Reset() { *m = ApplicationLabelStats{} } +func (m *ApplicationLabelStats) String() string { return proto.CompactTextString(m) } +func (*ApplicationLabelStats) ProtoMessage() {} +func (*ApplicationLabelStats) Descriptor() ([]byte, []int) { + return fileDescriptor_df6e82b174b5eaec, []int{4} +} +func (m *ApplicationLabelStats) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplicationLabelStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ApplicationLabelStats.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ApplicationLabelStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationLabelStats.Merge(m, src) +} +func (m *ApplicationLabelStats) XXX_Size() int { + return m.Size() +} +func (m *ApplicationLabelStats) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationLabelStats.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationLabelStats proto.InternalMessageInfo + +func (m *ApplicationLabelStats) GetKey() string { + if m != nil && m.Key != nil { + return *m.Key + } + return "" +} + +func (m *ApplicationLabelStats) GetValues() []string { + if m != nil { + return m.Values + } + return nil +} + type NodeQuery struct { // the application's name Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` @@ -165,7 +591,7 @@ func (m *NodeQuery) Reset() { *m = NodeQuery{} } func (m *NodeQuery) String() string { return proto.CompactTextString(m) } func (*NodeQuery) ProtoMessage() {} func (*NodeQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{1} + return fileDescriptor_df6e82b174b5eaec, []int{5} } func (m *NodeQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -229,7 +655,7 @@ func (m *RevisionMetadataQuery) Reset() { *m = RevisionMetadataQuery{} } func (m *RevisionMetadataQuery) String() string { return proto.CompactTextString(m) } func (*RevisionMetadataQuery) ProtoMessage() {} func (*RevisionMetadataQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{2} + return fileDescriptor_df6e82b174b5eaec, []int{6} } func (m *RevisionMetadataQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -317,7 +743,7 @@ func (m *ApplicationResourceEventsQuery) Reset() { *m = ApplicationResou func (m *ApplicationResourceEventsQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationResourceEventsQuery) ProtoMessage() {} func (*ApplicationResourceEventsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{3} + return fileDescriptor_df6e82b174b5eaec, []int{7} } func (m *ApplicationResourceEventsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -405,7 +831,7 @@ func (m *ApplicationManifestQuery) Reset() { *m = ApplicationManifestQue func (m *ApplicationManifestQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationManifestQuery) ProtoMessage() {} func (*ApplicationManifestQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{4} + return fileDescriptor_df6e82b174b5eaec, []int{8} } func (m *ApplicationManifestQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -487,7 +913,7 @@ func (m *FileChunk) Reset() { *m = FileChunk{} } func (m *FileChunk) String() string { return proto.CompactTextString(m) } func (*FileChunk) ProtoMessage() {} func (*FileChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{5} + return fileDescriptor_df6e82b174b5eaec, []int{9} } func (m *FileChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -537,7 +963,7 @@ func (m *ApplicationManifestQueryWithFiles) Reset() { *m = ApplicationMa func (m *ApplicationManifestQueryWithFiles) String() string { return proto.CompactTextString(m) } func (*ApplicationManifestQueryWithFiles) ProtoMessage() {} func (*ApplicationManifestQueryWithFiles) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{6} + return fileDescriptor_df6e82b174b5eaec, []int{10} } func (m *ApplicationManifestQueryWithFiles) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -610,7 +1036,7 @@ func (m *ApplicationManifestQueryWithFilesWrapper) Reset() { func (m *ApplicationManifestQueryWithFilesWrapper) String() string { return proto.CompactTextString(m) } func (*ApplicationManifestQueryWithFilesWrapper) ProtoMessage() {} func (*ApplicationManifestQueryWithFilesWrapper) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{7} + return fileDescriptor_df6e82b174b5eaec, []int{11} } func (m *ApplicationManifestQueryWithFilesWrapper) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -696,7 +1122,7 @@ func (m *ApplicationResponse) Reset() { *m = ApplicationResponse{} } func (m *ApplicationResponse) String() string { return proto.CompactTextString(m) } func (*ApplicationResponse) ProtoMessage() {} func (*ApplicationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{8} + return fileDescriptor_df6e82b174b5eaec, []int{12} } func (m *ApplicationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -738,7 +1164,7 @@ func (m *ApplicationCreateRequest) Reset() { *m = ApplicationCreateReque func (m *ApplicationCreateRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationCreateRequest) ProtoMessage() {} func (*ApplicationCreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{9} + return fileDescriptor_df6e82b174b5eaec, []int{13} } func (m *ApplicationCreateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -801,7 +1227,7 @@ func (m *ApplicationUpdateRequest) Reset() { *m = ApplicationUpdateReque func (m *ApplicationUpdateRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationUpdateRequest) ProtoMessage() {} func (*ApplicationUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{10} + return fileDescriptor_df6e82b174b5eaec, []int{14} } func (m *ApplicationUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -866,7 +1292,7 @@ func (m *ApplicationDeleteRequest) Reset() { *m = ApplicationDeleteReque func (m *ApplicationDeleteRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationDeleteRequest) ProtoMessage() {} func (*ApplicationDeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{11} + return fileDescriptor_df6e82b174b5eaec, []int{15} } func (m *ApplicationDeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -941,7 +1367,7 @@ func (m *SyncOptions) Reset() { *m = SyncOptions{} } func (m *SyncOptions) String() string { return proto.CompactTextString(m) } func (*SyncOptions) ProtoMessage() {} func (*SyncOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{12} + return fileDescriptor_df6e82b174b5eaec, []int{16} } func (m *SyncOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1002,7 +1428,7 @@ func (m *ApplicationSyncRequest) Reset() { *m = ApplicationSyncRequest{} func (m *ApplicationSyncRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationSyncRequest) ProtoMessage() {} func (*ApplicationSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{13} + return fileDescriptor_df6e82b174b5eaec, []int{17} } func (m *ApplicationSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1145,7 +1571,7 @@ func (m *ApplicationUpdateSpecRequest) Reset() { *m = ApplicationUpdateS func (m *ApplicationUpdateSpecRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationUpdateSpecRequest) ProtoMessage() {} func (*ApplicationUpdateSpecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{14} + return fileDescriptor_df6e82b174b5eaec, []int{18} } func (m *ApplicationUpdateSpecRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1225,7 +1651,7 @@ func (m *ApplicationPatchRequest) Reset() { *m = ApplicationPatchRequest func (m *ApplicationPatchRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationPatchRequest) ProtoMessage() {} func (*ApplicationPatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{15} + return fileDescriptor_df6e82b174b5eaec, []int{19} } func (m *ApplicationPatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1305,7 +1731,7 @@ func (m *ApplicationRollbackRequest) Reset() { *m = ApplicationRollbackR func (m *ApplicationRollbackRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationRollbackRequest) ProtoMessage() {} func (*ApplicationRollbackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{16} + return fileDescriptor_df6e82b174b5eaec, []int{20} } func (m *ApplicationRollbackRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1394,7 +1820,7 @@ func (m *ApplicationResourceRequest) Reset() { *m = ApplicationResourceR func (m *ApplicationResourceRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationResourceRequest) ProtoMessage() {} func (*ApplicationResourceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{17} + return fileDescriptor_df6e82b174b5eaec, []int{21} } func (m *ApplicationResourceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1499,7 +1925,7 @@ func (m *ApplicationResourcePatchRequest) Reset() { *m = ApplicationReso func (m *ApplicationResourcePatchRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationResourcePatchRequest) ProtoMessage() {} func (*ApplicationResourcePatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{18} + return fileDescriptor_df6e82b174b5eaec, []int{22} } func (m *ApplicationResourcePatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1618,7 +2044,7 @@ func (m *ApplicationResourceDeleteRequest) Reset() { *m = ApplicationRes func (m *ApplicationResourceDeleteRequest) String() string { return proto.CompactTextString(m) } func (*ApplicationResourceDeleteRequest) ProtoMessage() {} func (*ApplicationResourceDeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{19} + return fileDescriptor_df6e82b174b5eaec, []int{23} } func (m *ApplicationResourceDeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1729,7 +2155,7 @@ func (m *ResourceActionParameters) Reset() { *m = ResourceActionParamete func (m *ResourceActionParameters) String() string { return proto.CompactTextString(m) } func (*ResourceActionParameters) ProtoMessage() {} func (*ResourceActionParameters) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{20} + return fileDescriptor_df6e82b174b5eaec, []int{24} } func (m *ResourceActionParameters) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1792,7 +2218,7 @@ func (m *ResourceActionRunRequest) Reset() { *m = ResourceActionRunReque func (m *ResourceActionRunRequest) String() string { return proto.CompactTextString(m) } func (*ResourceActionRunRequest) ProtoMessage() {} func (*ResourceActionRunRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{21} + return fileDescriptor_df6e82b174b5eaec, []int{25} } func (m *ResourceActionRunRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1902,7 +2328,7 @@ func (m *ResourceActionsListResponse) Reset() { *m = ResourceActionsList func (m *ResourceActionsListResponse) String() string { return proto.CompactTextString(m) } func (*ResourceActionsListResponse) ProtoMessage() {} func (*ResourceActionsListResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{22} + return fileDescriptor_df6e82b174b5eaec, []int{26} } func (m *ResourceActionsListResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1949,7 +2375,7 @@ func (m *ApplicationResourceResponse) Reset() { *m = ApplicationResource func (m *ApplicationResourceResponse) String() string { return proto.CompactTextString(m) } func (*ApplicationResourceResponse) ProtoMessage() {} func (*ApplicationResourceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{23} + return fileDescriptor_df6e82b174b5eaec, []int{27} } func (m *ApplicationResourceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2012,7 +2438,7 @@ func (m *ApplicationPodLogsQuery) Reset() { *m = ApplicationPodLogsQuery func (m *ApplicationPodLogsQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationPodLogsQuery) ProtoMessage() {} func (*ApplicationPodLogsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{24} + return fileDescriptor_df6e82b174b5eaec, []int{28} } func (m *ApplicationPodLogsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2176,7 +2602,7 @@ func (m *LogEntry) Reset() { *m = LogEntry{} } func (m *LogEntry) String() string { return proto.CompactTextString(m) } func (*LogEntry) ProtoMessage() {} func (*LogEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{25} + return fileDescriptor_df6e82b174b5eaec, []int{29} } func (m *LogEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2253,7 +2679,7 @@ func (m *OperationTerminateRequest) Reset() { *m = OperationTerminateReq func (m *OperationTerminateRequest) String() string { return proto.CompactTextString(m) } func (*OperationTerminateRequest) ProtoMessage() {} func (*OperationTerminateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{26} + return fileDescriptor_df6e82b174b5eaec, []int{30} } func (m *OperationTerminateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2316,7 +2742,7 @@ func (m *ApplicationSyncWindowsQuery) Reset() { *m = ApplicationSyncWind func (m *ApplicationSyncWindowsQuery) String() string { return proto.CompactTextString(m) } func (*ApplicationSyncWindowsQuery) ProtoMessage() {} func (*ApplicationSyncWindowsQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{27} + return fileDescriptor_df6e82b174b5eaec, []int{31} } func (m *ApplicationSyncWindowsQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2379,7 +2805,7 @@ func (m *ApplicationSyncWindowsResponse) Reset() { *m = ApplicationSyncW func (m *ApplicationSyncWindowsResponse) String() string { return proto.CompactTextString(m) } func (*ApplicationSyncWindowsResponse) ProtoMessage() {} func (*ApplicationSyncWindowsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{28} + return fileDescriptor_df6e82b174b5eaec, []int{32} } func (m *ApplicationSyncWindowsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2443,7 +2869,7 @@ func (m *ApplicationSyncWindow) Reset() { *m = ApplicationSyncWindow{} } func (m *ApplicationSyncWindow) String() string { return proto.CompactTextString(m) } func (*ApplicationSyncWindow) ProtoMessage() {} func (*ApplicationSyncWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{29} + return fileDescriptor_df6e82b174b5eaec, []int{33} } func (m *ApplicationSyncWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2510,7 +2936,7 @@ func (m *OperationTerminateResponse) Reset() { *m = OperationTerminateRe func (m *OperationTerminateResponse) String() string { return proto.CompactTextString(m) } func (*OperationTerminateResponse) ProtoMessage() {} func (*OperationTerminateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{30} + return fileDescriptor_df6e82b174b5eaec, []int{34} } func (m *OperationTerminateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2557,7 +2983,7 @@ func (m *ResourcesQuery) Reset() { *m = ResourcesQuery{} } func (m *ResourcesQuery) String() string { return proto.CompactTextString(m) } func (*ResourcesQuery) ProtoMessage() {} func (*ResourcesQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{31} + return fileDescriptor_df6e82b174b5eaec, []int{35} } func (m *ResourcesQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2653,7 +3079,7 @@ func (m *ManagedResourcesResponse) Reset() { *m = ManagedResourcesRespon func (m *ManagedResourcesResponse) String() string { return proto.CompactTextString(m) } func (*ManagedResourcesResponse) ProtoMessage() {} func (*ManagedResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{32} + return fileDescriptor_df6e82b174b5eaec, []int{36} } func (m *ManagedResourcesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2703,7 +3129,7 @@ func (m *LinkInfo) Reset() { *m = LinkInfo{} } func (m *LinkInfo) String() string { return proto.CompactTextString(m) } func (*LinkInfo) ProtoMessage() {} func (*LinkInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{33} + return fileDescriptor_df6e82b174b5eaec, []int{37} } func (m *LinkInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2771,7 +3197,7 @@ func (m *LinksResponse) Reset() { *m = LinksResponse{} } func (m *LinksResponse) String() string { return proto.CompactTextString(m) } func (*LinksResponse) ProtoMessage() {} func (*LinksResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{34} + return fileDescriptor_df6e82b174b5eaec, []int{38} } func (m *LinksResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2820,7 +3246,7 @@ func (m *ListAppLinksRequest) Reset() { *m = ListAppLinksRequest{} } func (m *ListAppLinksRequest) String() string { return proto.CompactTextString(m) } func (*ListAppLinksRequest) ProtoMessage() {} func (*ListAppLinksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_df6e82b174b5eaec, []int{35} + return fileDescriptor_df6e82b174b5eaec, []int{39} } func (m *ListAppLinksRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2871,7 +3297,14 @@ func (m *ListAppLinksRequest) GetProject() string { } func init() { + proto.RegisterEnum("application.ApplicationSortBy", ApplicationSortBy_name, ApplicationSortBy_value) proto.RegisterType((*ApplicationQuery)(nil), "application.ApplicationQuery") + proto.RegisterType((*ApplicationListOptions)(nil), "application.ApplicationListOptions") + proto.RegisterType((*ApplicationListResponse)(nil), "application.ApplicationListResponse") + proto.RegisterType((*ApplicationListStats)(nil), "application.ApplicationListStats") + proto.RegisterMapType((map[string]int64)(nil), "application.ApplicationListStats.TotalByHealthStatusEntry") + proto.RegisterMapType((map[string]int64)(nil), "application.ApplicationListStats.TotalBySyncStatusEntry") + proto.RegisterType((*ApplicationLabelStats)(nil), "application.ApplicationLabelStats") proto.RegisterType((*NodeQuery)(nil), "application.NodeQuery") proto.RegisterType((*RevisionMetadataQuery)(nil), "application.RevisionMetadataQuery") proto.RegisterType((*ApplicationResourceEventsQuery)(nil), "application.ApplicationResourceEventsQuery") @@ -2914,185 +3347,215 @@ func init() { } var fileDescriptor_df6e82b174b5eaec = []byte{ - // 2833 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x8f, 0x1c, 0x47, - 0x15, 0xa7, 0x66, 0x76, 0x76, 0x67, 0xdf, 0x78, 0xbd, 0x76, 0xc5, 0x5e, 0x3a, 0xe3, 0x8d, 0x99, - 0xb4, 0xbd, 0xf1, 0x64, 0xed, 0x9d, 0xb1, 0x37, 0x01, 0x92, 0x4d, 0x02, 0x38, 0x6b, 0xc7, 0x59, - 0x58, 0x3b, 0xa6, 0xd7, 0xc1, 0x28, 0x1c, 0xa0, 0xd2, 0x5d, 0x3b, 0xd3, 0x6c, 0x4f, 0x77, 0xbb, - 0xbb, 0x67, 0xc2, 0x2a, 0xe4, 0x12, 0xc4, 0x2d, 0x02, 0x01, 0x41, 0xe2, 0x80, 0x02, 0x4a, 0x14, - 0x09, 0x21, 0x10, 0x17, 0x84, 0x90, 0x10, 0x12, 0x1c, 0x82, 0xe0, 0x80, 0x14, 0xc1, 0x17, 0x40, - 0x11, 0xe2, 0x06, 0x5c, 0x72, 0x46, 0xa8, 0xaa, 0xab, 0xba, 0xab, 0xe7, 0x4f, 0xcf, 0x2c, 0x33, - 0x28, 0xb9, 0xf5, 0xab, 0xa9, 0x7a, 0xef, 0xf7, 0x5e, 0xbd, 0x7a, 0xef, 0xd5, 0xab, 0x81, 0xf3, - 0x21, 0x0d, 0x7a, 0x34, 0x68, 0x12, 0xdf, 0x77, 0x6c, 0x93, 0x44, 0xb6, 0xe7, 0xaa, 0xdf, 0x0d, - 0x3f, 0xf0, 0x22, 0x0f, 0x57, 0x94, 0xa1, 0xea, 0x6a, 0xcb, 0xf3, 0x5a, 0x0e, 0x6d, 0x12, 0xdf, - 0x6e, 0x12, 0xd7, 0xf5, 0x22, 0x3e, 0x1c, 0xc6, 0x53, 0xab, 0xfa, 0xc1, 0x63, 0x61, 0xc3, 0xf6, - 0xf8, 0xaf, 0xa6, 0x17, 0xd0, 0x66, 0xef, 0x4a, 0xb3, 0x45, 0x5d, 0x1a, 0x90, 0x88, 0x5a, 0x62, - 0xce, 0xa3, 0xe9, 0x9c, 0x0e, 0x31, 0xdb, 0xb6, 0x4b, 0x83, 0xc3, 0xa6, 0x7f, 0xd0, 0x62, 0x03, - 0x61, 0xb3, 0x43, 0x23, 0x32, 0x6c, 0xd5, 0x6e, 0xcb, 0x8e, 0xda, 0xdd, 0x17, 0x1b, 0xa6, 0xd7, - 0x69, 0x92, 0xa0, 0xe5, 0xf9, 0x81, 0xf7, 0x55, 0xfe, 0xb1, 0x61, 0x5a, 0xcd, 0xde, 0x23, 0x29, - 0x03, 0x55, 0x97, 0xde, 0x15, 0xe2, 0xf8, 0x6d, 0x32, 0xc8, 0xed, 0xfa, 0x18, 0x6e, 0x01, 0xf5, - 0x3d, 0x61, 0x1b, 0xfe, 0x69, 0x47, 0x5e, 0x70, 0xa8, 0x7c, 0xc6, 0x6c, 0xf4, 0xf7, 0x11, 0x9c, - 0xb8, 0x9a, 0xca, 0xfb, 0x7c, 0x97, 0x06, 0x87, 0x18, 0xc3, 0x9c, 0x4b, 0x3a, 0x54, 0x43, 0x35, - 0x54, 0x5f, 0x34, 0xf8, 0x37, 0xd6, 0x60, 0x21, 0xa0, 0xfb, 0x01, 0x0d, 0xdb, 0x5a, 0x81, 0x0f, - 0x4b, 0x12, 0x57, 0xa1, 0xcc, 0x84, 0x53, 0x33, 0x0a, 0xb5, 0x62, 0xad, 0x58, 0x5f, 0x34, 0x12, - 0x1a, 0xd7, 0x61, 0x39, 0xa0, 0xa1, 0xd7, 0x0d, 0x4c, 0xfa, 0x05, 0x1a, 0x84, 0xb6, 0xe7, 0x6a, - 0x73, 0x7c, 0x75, 0xff, 0x30, 0xe3, 0x12, 0x52, 0x87, 0x9a, 0x91, 0x17, 0x68, 0x25, 0x3e, 0x25, - 0xa1, 0x19, 0x1e, 0x06, 0x5c, 0x9b, 0x8f, 0xf1, 0xb0, 0x6f, 0xac, 0xc3, 0x31, 0xe2, 0xfb, 0xb7, - 0x48, 0x87, 0x86, 0x3e, 0x31, 0xa9, 0xb6, 0xc0, 0x7f, 0xcb, 0x8c, 0x31, 0xcc, 0x02, 0x89, 0x56, - 0xe6, 0xc0, 0x24, 0xa9, 0x6f, 0xc3, 0xe2, 0x2d, 0xcf, 0xa2, 0xa3, 0xd5, 0xed, 0x67, 0x5f, 0x18, - 0x64, 0xaf, 0xbf, 0x83, 0xe0, 0xb4, 0x41, 0x7b, 0x36, 0xc3, 0x7f, 0x93, 0x46, 0xc4, 0x22, 0x11, - 0xe9, 0xe7, 0x58, 0x48, 0x38, 0x56, 0xa1, 0x1c, 0x88, 0xc9, 0x5a, 0x81, 0x8f, 0x27, 0xf4, 0x80, - 0xb4, 0x62, 0xbe, 0x32, 0xb1, 0x09, 0x25, 0x89, 0x6b, 0x50, 0x89, 0x6d, 0xb9, 0xe3, 0x5a, 0xf4, - 0x6b, 0xdc, 0x7a, 0x25, 0x43, 0x1d, 0xc2, 0xab, 0xb0, 0xd8, 0x8b, 0xed, 0xbc, 0x63, 0x71, 0x2b, - 0x96, 0x8c, 0x74, 0x40, 0xff, 0x07, 0x82, 0xb3, 0x8a, 0x0f, 0x18, 0x62, 0x67, 0xae, 0xf7, 0xa8, - 0x1b, 0x85, 0xa3, 0x15, 0xba, 0x04, 0x27, 0xe5, 0x26, 0xf6, 0xdb, 0x69, 0xf0, 0x07, 0xa6, 0xa2, - 0x3a, 0x28, 0x55, 0x54, 0xc7, 0x98, 0x22, 0x92, 0x7e, 0x7e, 0xe7, 0x9a, 0x50, 0x53, 0x1d, 0x1a, - 0x30, 0x54, 0x29, 0xdf, 0x50, 0xf3, 0x19, 0x43, 0xe9, 0xef, 0x22, 0xd0, 0x14, 0x45, 0x6f, 0x12, - 0xd7, 0xde, 0xa7, 0x61, 0x34, 0xe9, 0x9e, 0xa1, 0x19, 0xee, 0x59, 0x1d, 0x96, 0x63, 0xad, 0x6e, - 0xb3, 0xf3, 0xc8, 0xe2, 0x8f, 0x56, 0xaa, 0x15, 0xeb, 0x45, 0xa3, 0x7f, 0x98, 0xed, 0x9d, 0x94, - 0x19, 0x6a, 0xf3, 0xdc, 0x8d, 0xd3, 0x01, 0xfd, 0x41, 0x58, 0x7c, 0xc6, 0x76, 0xe8, 0x76, 0xbb, - 0xeb, 0x1e, 0xe0, 0x53, 0x50, 0x32, 0xd9, 0x07, 0xd7, 0xe1, 0x98, 0x11, 0x13, 0xfa, 0x77, 0x10, - 0x3c, 0x38, 0x4a, 0xeb, 0xbb, 0x76, 0xd4, 0x66, 0xeb, 0xc3, 0x51, 0xea, 0x9b, 0x6d, 0x6a, 0x1e, - 0x84, 0xdd, 0x8e, 0x74, 0x59, 0x49, 0x4f, 0xa7, 0xbe, 0xfe, 0x53, 0x04, 0xf5, 0xb1, 0x98, 0xee, - 0x06, 0xc4, 0xf7, 0x69, 0x80, 0x9f, 0x81, 0xd2, 0x3d, 0xf6, 0x03, 0x3f, 0xa0, 0x95, 0xcd, 0x46, - 0x43, 0x0d, 0xf0, 0x63, 0xb9, 0x3c, 0xfb, 0x11, 0x23, 0x5e, 0x8e, 0x1b, 0xd2, 0x3c, 0x05, 0xce, - 0x67, 0x25, 0xc3, 0x27, 0xb1, 0x22, 0x9b, 0xcf, 0xa7, 0x3d, 0x3d, 0x0f, 0x73, 0x3e, 0x09, 0x22, - 0xfd, 0x34, 0xdc, 0x97, 0x3d, 0x1e, 0xbe, 0xe7, 0x86, 0x54, 0xff, 0x4d, 0xd6, 0x9b, 0xb6, 0x03, - 0x4a, 0x22, 0x6a, 0xd0, 0x7b, 0x5d, 0x1a, 0x46, 0xf8, 0x00, 0xd4, 0x9c, 0xc3, 0xad, 0x5a, 0xd9, - 0xdc, 0x69, 0xa4, 0x41, 0xbb, 0x21, 0x83, 0x36, 0xff, 0xf8, 0xb2, 0x69, 0x35, 0x7a, 0x8f, 0x34, - 0xfc, 0x83, 0x56, 0x83, 0xa5, 0x80, 0x0c, 0x32, 0x99, 0x02, 0x54, 0x55, 0x0d, 0x95, 0x3b, 0x5e, - 0x81, 0xf9, 0xae, 0x1f, 0xd2, 0x20, 0xe2, 0x9a, 0x95, 0x0d, 0x41, 0xb1, 0xfd, 0xeb, 0x11, 0xc7, - 0xb6, 0x48, 0x14, 0xef, 0x4f, 0xd9, 0x48, 0x68, 0xfd, 0xb7, 0x59, 0xf4, 0xcf, 0xfb, 0xd6, 0x07, - 0x85, 0x5e, 0x45, 0x59, 0xc8, 0xa2, 0x54, 0x3d, 0xa8, 0x98, 0xf5, 0xa0, 0x5f, 0x66, 0xf1, 0x5f, - 0xa3, 0x0e, 0x4d, 0xf1, 0x0f, 0x73, 0x66, 0x0d, 0x16, 0x4c, 0x12, 0x9a, 0xc4, 0x92, 0x52, 0x24, - 0xc9, 0x02, 0x99, 0x1f, 0x78, 0x3e, 0x69, 0x71, 0x4e, 0xb7, 0x3d, 0xc7, 0x36, 0x0f, 0x85, 0xb8, - 0xc1, 0x1f, 0x06, 0x1c, 0x7f, 0x2e, 0xdf, 0xf1, 0x4b, 0x59, 0xd8, 0xe7, 0xa0, 0xb2, 0x77, 0xe8, - 0x9a, 0xcf, 0xf9, 0xf1, 0xe1, 0x3e, 0x05, 0x25, 0x3b, 0xa2, 0x9d, 0x50, 0x43, 0xfc, 0x60, 0xc7, - 0x84, 0xfe, 0x9f, 0x12, 0xac, 0x28, 0xba, 0xb1, 0x05, 0x79, 0x9a, 0xe5, 0x45, 0xa9, 0x15, 0x98, - 0xb7, 0x82, 0x43, 0xa3, 0xeb, 0x0a, 0x07, 0x10, 0x14, 0x13, 0xec, 0x07, 0x5d, 0x37, 0x86, 0x5f, - 0x36, 0x62, 0x02, 0xef, 0x43, 0x39, 0x8c, 0x58, 0x95, 0xd1, 0x3a, 0xe4, 0xc0, 0x2b, 0x9b, 0x9f, - 0x9d, 0x6e, 0xd3, 0x19, 0xf4, 0x3d, 0xc1, 0xd1, 0x48, 0x78, 0xe3, 0x7b, 0x2c, 0xa6, 0xc5, 0x81, - 0x2e, 0xd4, 0x16, 0x6a, 0xc5, 0x7a, 0x65, 0x73, 0x6f, 0x7a, 0x41, 0xcf, 0xf9, 0xac, 0x42, 0x52, - 0x32, 0x98, 0x91, 0x4a, 0x61, 0x61, 0xb4, 0x23, 0xe2, 0x43, 0x28, 0xaa, 0x81, 0x74, 0x00, 0x7f, - 0x11, 0x4a, 0xb6, 0xbb, 0xef, 0x85, 0xda, 0x22, 0x07, 0xf3, 0xf4, 0x74, 0x60, 0x76, 0xdc, 0x7d, - 0xcf, 0x88, 0x19, 0xe2, 0x7b, 0xb0, 0x14, 0xd0, 0x28, 0x38, 0x94, 0x56, 0xd0, 0x80, 0xdb, 0xf5, - 0x73, 0xd3, 0x49, 0x30, 0x54, 0x96, 0x46, 0x56, 0x02, 0xde, 0x82, 0x4a, 0x98, 0xfa, 0x98, 0x56, - 0xe1, 0x02, 0xb5, 0x0c, 0x23, 0xc5, 0x07, 0x0d, 0x75, 0xf2, 0x80, 0x77, 0x1f, 0xcb, 0xf7, 0xee, - 0xa5, 0xb1, 0x59, 0xed, 0xf8, 0x04, 0x59, 0x6d, 0xb9, 0x3f, 0xab, 0xfd, 0x1b, 0xc1, 0xea, 0x40, - 0x70, 0xda, 0xf3, 0x69, 0xee, 0x31, 0x20, 0x30, 0x17, 0xfa, 0xd4, 0xe4, 0x99, 0xaa, 0xb2, 0x79, - 0x73, 0x66, 0xd1, 0x8a, 0xcb, 0xe5, 0xac, 0xf3, 0x02, 0xea, 0x94, 0x71, 0xe1, 0x47, 0x08, 0x3e, - 0xaa, 0xc8, 0xbc, 0x4d, 0x22, 0xb3, 0x9d, 0xa7, 0x2c, 0x3b, 0xbf, 0x6c, 0x8e, 0xc8, 0xcb, 0x31, - 0xc1, 0xac, 0xca, 0x3f, 0xee, 0x1c, 0xfa, 0x0c, 0x20, 0xfb, 0x25, 0x1d, 0x98, 0xb2, 0x78, 0xfa, - 0x19, 0x82, 0xaa, 0x1a, 0xc3, 0x3d, 0xc7, 0x79, 0x91, 0x98, 0x07, 0x79, 0x20, 0x8f, 0x43, 0xc1, - 0xb6, 0x38, 0xc2, 0xa2, 0x51, 0xb0, 0xad, 0x23, 0x06, 0xa3, 0x7e, 0xb8, 0xf3, 0xf9, 0x70, 0x17, - 0xb2, 0x70, 0xdf, 0xef, 0x83, 0x2b, 0x43, 0x42, 0x0e, 0xdc, 0x55, 0x58, 0x74, 0xfb, 0x0a, 0xd9, - 0x74, 0x60, 0x48, 0x01, 0x5b, 0x18, 0x28, 0x60, 0x35, 0x58, 0xe8, 0x25, 0xd7, 0x1c, 0xf6, 0xb3, - 0x24, 0x99, 0x8a, 0xad, 0xc0, 0xeb, 0xfa, 0xc2, 0xe8, 0x31, 0xc1, 0x50, 0x1c, 0xd8, 0x2e, 0x2b, - 0xc9, 0x39, 0x0a, 0xf6, 0x7d, 0xf4, 0x8b, 0x4d, 0x46, 0xed, 0x9f, 0x17, 0xe0, 0x63, 0x43, 0xd4, - 0x1e, 0xeb, 0x4f, 0x1f, 0x0e, 0xdd, 0x13, 0xaf, 0x5e, 0x18, 0xe9, 0xd5, 0xe5, 0x71, 0x5e, 0xbd, - 0x98, 0x6f, 0x2f, 0xc8, 0xda, 0xeb, 0x27, 0x05, 0xa8, 0x0d, 0xb1, 0xd7, 0xf8, 0x72, 0xe2, 0x43, - 0x63, 0xb0, 0x7d, 0x2f, 0x10, 0x5e, 0x52, 0x36, 0x62, 0x82, 0x9d, 0x33, 0x2f, 0xf0, 0xdb, 0xc4, - 0xe5, 0xde, 0x51, 0x36, 0x04, 0x35, 0xa5, 0xa9, 0xae, 0x81, 0x26, 0xcd, 0x73, 0xd5, 0x8c, 0x83, - 0x54, 0x40, 0x3a, 0x34, 0xa2, 0x41, 0x38, 0x2a, 0x44, 0xf5, 0x88, 0xd3, 0xa5, 0x32, 0x44, 0x71, - 0x42, 0xff, 0x67, 0xa1, 0x9f, 0x8d, 0xd1, 0x75, 0x3f, 0xfc, 0x86, 0x5e, 0x81, 0x79, 0xc2, 0xd1, - 0x0a, 0xd7, 0x14, 0xd4, 0x80, 0x49, 0xcb, 0xf9, 0x26, 0x5d, 0xcc, 0xe6, 0x4b, 0x02, 0x5a, 0x30, - 0xc2, 0xa4, 0x1a, 0xf0, 0x4a, 0x64, 0x2d, 0x93, 0x9e, 0x46, 0xd9, 0xdf, 0x18, 0xc9, 0x46, 0xff, - 0x26, 0x82, 0x33, 0xd9, 0x65, 0xe1, 0xae, 0x1d, 0x46, 0xf2, 0x16, 0x83, 0xf7, 0x61, 0x21, 0x56, - 0x25, 0xae, 0x41, 0x2b, 0x9b, 0xbb, 0xd3, 0x56, 0x26, 0x99, 0xbd, 0x95, 0xcc, 0xf5, 0xc7, 0xe1, - 0xcc, 0xd0, 0x70, 0x2c, 0x60, 0x54, 0xa1, 0x2c, 0xab, 0x31, 0xb1, 0xfb, 0x09, 0xad, 0xbf, 0x35, - 0x97, 0xcd, 0x8d, 0x9e, 0xb5, 0xeb, 0xb5, 0x72, 0x1a, 0x13, 0xf9, 0x1e, 0xc3, 0x76, 0xc3, 0xb3, - 0x94, 0x1e, 0x84, 0x24, 0xd9, 0x3a, 0xd3, 0x73, 0x23, 0x62, 0xbb, 0x34, 0x10, 0xe9, 0x3b, 0x1d, - 0x60, 0x3b, 0x1d, 0xda, 0xae, 0x49, 0xf7, 0xa8, 0xe9, 0xb9, 0x56, 0xc8, 0x5d, 0xa6, 0x68, 0x64, - 0xc6, 0xf0, 0xb3, 0xb0, 0xc8, 0xe9, 0x3b, 0x76, 0x27, 0xce, 0x57, 0x95, 0xcd, 0xf5, 0x46, 0xdc, - 0x2c, 0x6c, 0xa8, 0xcd, 0xc2, 0xd4, 0x86, 0x1d, 0x1a, 0x91, 0x46, 0xef, 0x4a, 0x83, 0xad, 0x30, - 0xd2, 0xc5, 0x0c, 0x4b, 0x44, 0x6c, 0x67, 0xd7, 0x76, 0x79, 0x85, 0xcc, 0x44, 0xa5, 0x03, 0xcc, - 0x1b, 0xf7, 0x3d, 0xc7, 0xf1, 0x5e, 0x92, 0x07, 0x3c, 0xa6, 0xd8, 0xaa, 0xae, 0x1b, 0xd9, 0x0e, - 0x97, 0x1f, 0xfb, 0x5a, 0x3a, 0xc0, 0x57, 0xd9, 0x4e, 0x44, 0x03, 0x71, 0xb2, 0x05, 0x95, 0xf8, - 0x7b, 0x25, 0xee, 0x7f, 0xc9, 0xc0, 0x12, 0x9f, 0x8c, 0x63, 0xea, 0xc9, 0xe8, 0x3f, 0x6d, 0x4b, - 0x43, 0x9a, 0x38, 0xbc, 0x1d, 0x48, 0x7b, 0xb6, 0xd7, 0x65, 0xc5, 0x1f, 0xaf, 0x91, 0x24, 0x3d, - 0x70, 0x5a, 0x96, 0xf3, 0x4f, 0xcb, 0x89, 0xec, 0x69, 0xe1, 0x25, 0x7c, 0x64, 0xb6, 0xb7, 0x49, - 0x48, 0xb5, 0x93, 0x9c, 0x75, 0x3a, 0xa0, 0xff, 0x0e, 0x41, 0x79, 0xd7, 0x6b, 0x5d, 0x77, 0xa3, - 0xe0, 0x90, 0x5f, 0xf6, 0x3c, 0x37, 0xa2, 0xae, 0xf4, 0x26, 0x49, 0xb2, 0x2d, 0x8a, 0xec, 0x0e, - 0xdd, 0x8b, 0x48, 0xc7, 0x17, 0xa5, 0xe2, 0x91, 0xb6, 0x28, 0x59, 0xcc, 0xcc, 0xe6, 0x90, 0x30, - 0xe2, 0x21, 0xa7, 0x6c, 0xf0, 0x6f, 0xa6, 0x60, 0x32, 0x61, 0x2f, 0x0a, 0x44, 0xbc, 0xc9, 0x8c, - 0xa9, 0x0e, 0x58, 0x8a, 0xb1, 0x09, 0x52, 0xef, 0xc0, 0xfd, 0xc9, 0x1d, 0xe6, 0x0e, 0x0d, 0x3a, - 0xb6, 0x4b, 0xf2, 0x93, 0xd0, 0x04, 0x5d, 0xca, 0x9c, 0x2b, 0xb4, 0x97, 0x39, 0x92, 0xec, 0x4a, - 0x70, 0xd7, 0x76, 0x2d, 0xef, 0xa5, 0x9c, 0xa3, 0x35, 0x9d, 0xc0, 0xbf, 0x64, 0x1b, 0x8d, 0x8a, - 0xc4, 0x24, 0x0e, 0x3c, 0x0b, 0x4b, 0x2c, 0x62, 0xf4, 0xa8, 0xf8, 0x41, 0x04, 0x25, 0x7d, 0x54, - 0xcf, 0x27, 0xe5, 0x61, 0x64, 0x17, 0xe2, 0x5d, 0x58, 0x26, 0x61, 0x68, 0xb7, 0x5c, 0x6a, 0x49, - 0x5e, 0x85, 0x89, 0x79, 0xf5, 0x2f, 0x8d, 0xbb, 0x07, 0x7c, 0x86, 0xd8, 0x6f, 0x49, 0xea, 0xdf, - 0x40, 0x70, 0x7a, 0x28, 0x93, 0xe4, 0x5c, 0x21, 0x25, 0x8f, 0x54, 0xa1, 0x1c, 0x9a, 0x6d, 0x6a, - 0x75, 0x1d, 0x99, 0x17, 0x13, 0x9a, 0xfd, 0x66, 0x75, 0xe3, 0xdd, 0x17, 0x79, 0x2c, 0xa1, 0xf1, - 0x59, 0x80, 0x0e, 0x71, 0xbb, 0xc4, 0xe1, 0x10, 0xe6, 0x38, 0x04, 0x65, 0x44, 0x5f, 0x85, 0xea, - 0x30, 0xd7, 0x11, 0xad, 0xaa, 0x7f, 0x21, 0x38, 0x2e, 0x43, 0xae, 0xd8, 0xdd, 0x3a, 0x2c, 0x2b, - 0x66, 0xb8, 0x95, 0x6e, 0x74, 0xff, 0xf0, 0x98, 0x70, 0x2a, 0xbd, 0xa4, 0x98, 0x7d, 0x2b, 0xe8, - 0x65, 0xba, 0xfd, 0x13, 0x27, 0x5c, 0x34, 0xa3, 0x32, 0xf8, 0xeb, 0xa0, 0xdd, 0x24, 0x2e, 0x69, - 0x51, 0x2b, 0x51, 0x3b, 0x71, 0xb1, 0xaf, 0xa8, 0x3d, 0x97, 0xa9, 0x3b, 0x1c, 0x49, 0xc5, 0x68, - 0xef, 0xef, 0xcb, 0xfe, 0x4d, 0x00, 0xe5, 0x5d, 0xdb, 0x3d, 0xd8, 0x71, 0xf7, 0x3d, 0xa6, 0x71, - 0x64, 0x47, 0x8e, 0xb4, 0x6e, 0x4c, 0xe0, 0x13, 0x50, 0xec, 0x06, 0x8e, 0xf0, 0x00, 0xf6, 0x89, - 0x6b, 0x50, 0xb1, 0x68, 0x68, 0x06, 0xb6, 0x2f, 0xf6, 0x9f, 0xf7, 0xbe, 0x95, 0x21, 0xb6, 0x0f, - 0xb6, 0xe9, 0xb9, 0xdb, 0x0e, 0x09, 0x43, 0x99, 0x9e, 0x92, 0x01, 0xfd, 0x49, 0x58, 0x62, 0x32, - 0x53, 0x35, 0x2f, 0x66, 0xd5, 0x3c, 0x9d, 0x81, 0x2f, 0xe1, 0x49, 0xc4, 0x04, 0xee, 0x63, 0x55, - 0xc1, 0x55, 0xdf, 0x17, 0x4c, 0x26, 0xac, 0xc7, 0x8a, 0xc3, 0xb2, 0xeb, 0xd0, 0x96, 0xef, 0xe6, - 0x1b, 0x6b, 0x80, 0xd5, 0x73, 0x42, 0x83, 0x9e, 0x6d, 0x52, 0xfc, 0x5d, 0x04, 0x73, 0x4c, 0x34, - 0x7e, 0x60, 0xd4, 0xb1, 0xe4, 0xfe, 0x5a, 0x9d, 0xdd, 0x7d, 0x9e, 0x49, 0xd3, 0x57, 0x5f, 0xfd, - 0xeb, 0xdf, 0xbf, 0x57, 0x58, 0xc1, 0xa7, 0xf8, 0x43, 0x5f, 0xef, 0x8a, 0xfa, 0xe8, 0x16, 0xe2, - 0xd7, 0x10, 0x60, 0x51, 0x25, 0x29, 0x4f, 0x21, 0xf8, 0xe2, 0x28, 0x88, 0x43, 0x9e, 0x4c, 0xaa, - 0x0f, 0x28, 0x59, 0xa5, 0x61, 0x7a, 0x01, 0x65, 0x39, 0x84, 0x4f, 0xe0, 0x00, 0xd6, 0x39, 0x80, - 0xf3, 0x58, 0x1f, 0x06, 0xa0, 0xf9, 0x32, 0xb3, 0xe8, 0x2b, 0x4d, 0x1a, 0xcb, 0x7d, 0x13, 0x41, - 0xe9, 0x2e, 0xbf, 0x0a, 0x8d, 0x31, 0xd2, 0xde, 0xcc, 0x8c, 0xc4, 0xc5, 0x71, 0xb4, 0xfa, 0x39, - 0x8e, 0xf4, 0x01, 0x7c, 0x46, 0x22, 0x0d, 0xa3, 0x80, 0x92, 0x4e, 0x06, 0xf0, 0x65, 0x84, 0xdf, - 0x46, 0x30, 0x1f, 0xf7, 0xc0, 0xf1, 0xda, 0x28, 0x94, 0x99, 0x1e, 0x79, 0x75, 0x76, 0x0d, 0x65, - 0xfd, 0x61, 0x8e, 0xf1, 0x9c, 0x3e, 0x74, 0x3b, 0xb7, 0x32, 0xed, 0xe6, 0xd7, 0x11, 0x14, 0x6f, - 0xd0, 0xb1, 0xfe, 0x36, 0x43, 0x70, 0x03, 0x06, 0x1c, 0xb2, 0xd5, 0xf8, 0x2d, 0x04, 0xf7, 0xdf, - 0xa0, 0xd1, 0xf0, 0xf4, 0x88, 0xeb, 0xe3, 0x73, 0x96, 0x70, 0xbb, 0x8b, 0x13, 0xcc, 0x4c, 0xf2, - 0x42, 0x93, 0x23, 0x7b, 0x18, 0x5f, 0xc8, 0x73, 0xc2, 0xf0, 0xd0, 0x35, 0x5f, 0x12, 0x38, 0xfe, - 0x84, 0xe0, 0x44, 0xff, 0x93, 0x27, 0xd6, 0xfb, 0xee, 0x28, 0x43, 0x5e, 0x44, 0xab, 0xb7, 0xa6, - 0x8d, 0xb2, 0x59, 0xa6, 0xfa, 0x55, 0x8e, 0xfc, 0x09, 0xfc, 0x78, 0x1e, 0xf2, 0xa4, 0xa1, 0xd8, - 0x7c, 0x59, 0x7e, 0xbe, 0xc2, 0x9f, 0xe7, 0x39, 0xec, 0x3f, 0x23, 0x38, 0x25, 0xf9, 0x6e, 0xb7, - 0x49, 0x10, 0x5d, 0xa3, 0xac, 0xc2, 0x0e, 0x27, 0xd2, 0x67, 0xca, 0xac, 0xa1, 0xca, 0xd3, 0xaf, - 0x73, 0x5d, 0x3e, 0x8d, 0x9f, 0x3a, 0xb2, 0x2e, 0x26, 0x63, 0x63, 0x09, 0xd8, 0xef, 0x20, 0x38, - 0x7e, 0x83, 0x46, 0xcf, 0x6d, 0xef, 0x1c, 0x69, 0x67, 0xa6, 0x74, 0x74, 0x45, 0x9c, 0x7e, 0x8d, - 0x2b, 0xf2, 0x29, 0xfc, 0xe4, 0x91, 0x15, 0xf1, 0x4c, 0x3b, 0xd9, 0x97, 0x57, 0x11, 0x1c, 0xbb, - 0x41, 0xa3, 0x9b, 0x49, 0x73, 0x7e, 0x6d, 0xa2, 0x07, 0xbf, 0xea, 0x6a, 0x43, 0xf9, 0x77, 0x83, - 0xfc, 0x29, 0x71, 0xf5, 0x0d, 0x8e, 0xed, 0x02, 0x5e, 0xcb, 0xc3, 0x96, 0x3e, 0x08, 0xbc, 0x89, - 0xe0, 0xb4, 0x0a, 0x22, 0x7d, 0x28, 0xfd, 0xf8, 0xd1, 0x9e, 0x1f, 0xc5, 0x23, 0xe6, 0x18, 0x74, - 0x9b, 0x1c, 0xdd, 0x25, 0x7d, 0xf8, 0x41, 0xec, 0x0c, 0xa0, 0xd8, 0x42, 0xeb, 0x75, 0x84, 0x7f, - 0x8f, 0x60, 0x3e, 0xee, 0x8d, 0x8f, 0xb6, 0x51, 0xe6, 0x61, 0x6f, 0x96, 0x51, 0x4d, 0x78, 0x6d, - 0xf5, 0xf2, 0x70, 0x83, 0xaa, 0xeb, 0xe5, 0xd6, 0x36, 0xb8, 0x95, 0xb3, 0xe1, 0xf8, 0x57, 0x08, - 0x20, 0xed, 0xef, 0xe3, 0x87, 0xf3, 0xf5, 0x50, 0xde, 0x00, 0xaa, 0xb3, 0xed, 0xf0, 0xeb, 0x0d, - 0xae, 0x4f, 0xbd, 0x5a, 0xcb, 0x8d, 0x85, 0x3e, 0x35, 0xb7, 0xe2, 0xb7, 0x80, 0x1f, 0x23, 0x28, - 0xf1, 0xb6, 0x2a, 0x3e, 0x3f, 0x0a, 0xb3, 0xda, 0x75, 0x9d, 0xa5, 0xe9, 0x1f, 0xe2, 0x50, 0x6b, - 0x9b, 0x79, 0x09, 0x65, 0x0b, 0xad, 0xe3, 0x1e, 0xcc, 0xc7, 0x8d, 0xcc, 0xd1, 0xee, 0x91, 0x69, - 0x74, 0x56, 0x6b, 0x39, 0x05, 0x4e, 0xec, 0xa8, 0x22, 0x97, 0xad, 0x8f, 0xcb, 0x65, 0x73, 0x2c, - 0xdd, 0xe0, 0x73, 0x79, 0xc9, 0xe8, 0xff, 0x60, 0x98, 0x8b, 0x1c, 0xdd, 0x9a, 0x5e, 0x1b, 0x97, - 0xcf, 0x98, 0x75, 0x7e, 0x80, 0xe0, 0x44, 0xff, 0x25, 0x01, 0x9f, 0x19, 0xda, 0x6f, 0x13, 0xb9, - 0x35, 0x6b, 0xc5, 0x51, 0x17, 0x0c, 0xfd, 0x33, 0x1c, 0xc5, 0x16, 0x7e, 0x6c, 0xec, 0xc9, 0xb8, - 0x25, 0xa3, 0x0e, 0x63, 0xb4, 0x91, 0x3e, 0x56, 0xfe, 0x1a, 0xc1, 0x31, 0xc9, 0xf7, 0x4e, 0x40, - 0x69, 0x3e, 0xac, 0xd9, 0x1d, 0x04, 0x26, 0x4b, 0x7f, 0x92, 0xc3, 0xff, 0x04, 0x7e, 0x74, 0x42, - 0xf8, 0x12, 0xf6, 0x46, 0xc4, 0x90, 0xfe, 0x01, 0xc1, 0xc9, 0xbb, 0xb1, 0xdf, 0x7f, 0x40, 0xf8, - 0xb7, 0x39, 0xfe, 0xa7, 0xf0, 0x13, 0x39, 0xf5, 0xea, 0x38, 0x35, 0x2e, 0x23, 0xfc, 0x0b, 0x04, - 0x65, 0xf9, 0xc8, 0x85, 0x2f, 0x8c, 0x3c, 0x18, 0xd9, 0x67, 0xb0, 0x59, 0x3a, 0xb3, 0x28, 0xce, - 0xf4, 0xf3, 0xb9, 0xd9, 0x54, 0xc8, 0x67, 0x0e, 0xfd, 0x3a, 0x02, 0x9c, 0xdc, 0xfd, 0x93, 0x6e, - 0x00, 0x7e, 0x28, 0x23, 0x6a, 0x64, 0x83, 0xa9, 0x7a, 0x61, 0xec, 0xbc, 0x6c, 0x2a, 0x5d, 0xcf, - 0x4d, 0xa5, 0x5e, 0x22, 0xff, 0x5b, 0x08, 0x2a, 0x37, 0x68, 0x72, 0x97, 0xca, 0xb1, 0x65, 0xf6, - 0x8d, 0xae, 0x5a, 0x1f, 0x3f, 0x51, 0x20, 0xba, 0xc4, 0x11, 0x3d, 0x84, 0xf3, 0x4d, 0x25, 0x01, - 0xfc, 0x10, 0xc1, 0xd2, 0x6d, 0xd5, 0x45, 0xf1, 0xa5, 0x71, 0x92, 0x32, 0x91, 0x7c, 0x72, 0x5c, - 0x8f, 0x70, 0x5c, 0x1b, 0xfa, 0x44, 0xb8, 0xb6, 0xc4, 0x73, 0xd7, 0x1b, 0x28, 0xbe, 0x8c, 0xf7, - 0x75, 0xed, 0xff, 0x57, 0xbb, 0xe5, 0x34, 0xff, 0xf5, 0x47, 0x39, 0xbe, 0x06, 0xbe, 0x34, 0x09, - 0xbe, 0xa6, 0x68, 0xe5, 0xe3, 0xef, 0x23, 0x38, 0xc9, 0x1f, 0x6d, 0x54, 0xc6, 0x38, 0xef, 0xa5, - 0x22, 0x7d, 0xe2, 0x99, 0x20, 0xc5, 0x7c, 0x92, 0x83, 0xba, 0xa2, 0x1f, 0x09, 0x14, 0xf3, 0xff, - 0x6f, 0x23, 0x38, 0x2e, 0xf3, 0x99, 0xd8, 0xd8, 0x8d, 0x71, 0x36, 0x3b, 0x6a, 0xfe, 0x13, 0x9e, - 0xb6, 0x3e, 0x99, 0xa7, 0xbd, 0x8d, 0x60, 0x41, 0x3c, 0x57, 0xe4, 0x54, 0x09, 0xca, 0x7b, 0x46, - 0xb5, 0xaf, 0x4d, 0x23, 0xfa, 0xd9, 0xfa, 0x97, 0xb8, 0xd8, 0xe7, 0x71, 0x33, 0x4f, 0xac, 0xef, - 0x59, 0x61, 0xf3, 0x65, 0xd1, 0x4c, 0x7e, 0xa5, 0xe9, 0x78, 0xad, 0xf0, 0x05, 0x1d, 0xe7, 0xe6, - 0x42, 0x36, 0xe7, 0x32, 0xc2, 0x11, 0x2c, 0x32, 0xbf, 0xe0, 0xbd, 0x1f, 0x5c, 0xeb, 0xeb, 0x14, - 0x0d, 0xb4, 0x85, 0xaa, 0xd5, 0x81, 0x5e, 0x52, 0x9a, 0xfc, 0xc4, 0x4d, 0x1c, 0x3f, 0x98, 0x2b, - 0x96, 0x0b, 0x7a, 0x0d, 0xc1, 0x49, 0xd5, 0xd1, 0x63, 0xf1, 0x13, 0xbb, 0x79, 0x1e, 0x0a, 0x51, - 0x4f, 0xe3, 0xf5, 0x89, 0x7c, 0x88, 0xc3, 0x79, 0xfa, 0x99, 0x3f, 0xbe, 0x77, 0x16, 0xbd, 0xfb, - 0xde, 0x59, 0xf4, 0xb7, 0xf7, 0xce, 0xa2, 0x17, 0x1e, 0x9b, 0xec, 0xdf, 0xda, 0xa6, 0x63, 0x53, - 0x37, 0x52, 0xd9, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x47, 0x2b, 0xad, 0x16, 0x93, 0x2e, 0x00, - 0x00, + // 3324 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0xdd, 0x8f, 0x1c, 0x47, + 0xb5, 0x4f, 0xcd, 0xec, 0xec, 0xce, 0x9c, 0x59, 0xaf, 0xd7, 0x65, 0x7b, 0x6f, 0x67, 0xec, 0xf8, + 0x8e, 0xdb, 0x5f, 0x93, 0xb5, 0x3d, 0x63, 0x4f, 0x72, 0x13, 0x67, 0x93, 0xdc, 0x7b, 0xd7, 0xbb, + 0x6b, 0x7b, 0x73, 0xd7, 0x6b, 0xdf, 0xde, 0x35, 0x86, 0xf0, 0xe0, 0x94, 0x7b, 0x6a, 0x67, 0x9a, + 0xed, 0xe9, 0x6e, 0x77, 0xd7, 0x4c, 0x32, 0x0a, 0x79, 0x09, 0xe2, 0x2d, 0x02, 0x01, 0x41, 0x42, + 0x08, 0x01, 0x4a, 0x14, 0x09, 0x21, 0x10, 0x0f, 0x41, 0x08, 0x09, 0x21, 0xc1, 0x43, 0x10, 0x3c, + 0x20, 0x45, 0xf0, 0x0f, 0xa0, 0x08, 0xf1, 0x06, 0xbc, 0xe4, 0x19, 0xa1, 0xaa, 0xae, 0xfe, 0x9a, + 0x8f, 0x9e, 0x59, 0x76, 0x51, 0xf2, 0x36, 0xa7, 0xba, 0xea, 0x9c, 0xdf, 0x39, 0x75, 0xea, 0x9c, + 0xaa, 0x73, 0x76, 0xe1, 0xac, 0x47, 0xdd, 0x2e, 0x75, 0x6b, 0xc4, 0x71, 0x4c, 0x43, 0x27, 0xcc, + 0xb0, 0xad, 0xf8, 0xef, 0xaa, 0xe3, 0xda, 0xcc, 0xc6, 0xc5, 0xd8, 0x50, 0xe9, 0x64, 0xd3, 0xb6, + 0x9b, 0x26, 0xad, 0x11, 0xc7, 0xa8, 0x11, 0xcb, 0xb2, 0x99, 0x18, 0xf6, 0xfc, 0xa9, 0x25, 0x75, + 0xf7, 0x9a, 0x57, 0x35, 0x6c, 0xf1, 0x55, 0xb7, 0x5d, 0x5a, 0xeb, 0x5e, 0xad, 0x35, 0xa9, 0x45, + 0x5d, 0xc2, 0x68, 0x43, 0xce, 0x79, 0x3a, 0x9a, 0xd3, 0x26, 0x7a, 0xcb, 0xb0, 0xa8, 0xdb, 0xab, + 0x39, 0xbb, 0x4d, 0x3e, 0xe0, 0xd5, 0xda, 0x94, 0x91, 0x61, 0xab, 0x36, 0x9a, 0x06, 0x6b, 0x75, + 0x1e, 0x56, 0x75, 0xbb, 0x5d, 0x23, 0x6e, 0xd3, 0x76, 0x5c, 0xfb, 0x0b, 0xe2, 0xc7, 0x65, 0xbd, + 0x51, 0xeb, 0x3e, 0x15, 0x31, 0x88, 0xeb, 0xd2, 0xbd, 0x4a, 0x4c, 0xa7, 0x45, 0x06, 0xb9, 0xad, + 0x8d, 0xe1, 0xe6, 0x52, 0xc7, 0x96, 0xb6, 0x11, 0x3f, 0x0d, 0x66, 0xbb, 0xbd, 0xd8, 0x4f, 0x9f, + 0x8d, 0xfa, 0x7e, 0x06, 0xe6, 0x97, 0x23, 0x79, 0xff, 0xdf, 0xa1, 0x6e, 0x0f, 0x63, 0x98, 0xb2, + 0x48, 0x9b, 0x2a, 0xa8, 0x8c, 0x2a, 0x05, 0x4d, 0xfc, 0xc6, 0x0a, 0xcc, 0xb8, 0x74, 0xc7, 0xa5, + 0x5e, 0x4b, 0xc9, 0x88, 0xe1, 0x80, 0xc4, 0x25, 0xc8, 0x73, 0xe1, 0x54, 0x67, 0x9e, 0x92, 0x2d, + 0x67, 0x2b, 0x05, 0x2d, 0xa4, 0x71, 0x05, 0x0e, 0xbb, 0xd4, 0xb3, 0x3b, 0xae, 0x4e, 0x3f, 0x43, + 0x5d, 0xcf, 0xb0, 0x2d, 0x65, 0x4a, 0xac, 0xee, 0x1f, 0xe6, 0x5c, 0x3c, 0x6a, 0x52, 0x9d, 0xd9, + 0xae, 0x92, 0x13, 0x53, 0x42, 0x9a, 0xe3, 0xe1, 0xc0, 0x95, 0x69, 0x1f, 0x0f, 0xff, 0x8d, 0x55, + 0x98, 0x25, 0x8e, 0xb3, 0x49, 0xda, 0xd4, 0x73, 0x88, 0x4e, 0x95, 0x19, 0xf1, 0x2d, 0x31, 0xc6, + 0x31, 0x4b, 0x24, 0x4a, 0x5e, 0x00, 0x0b, 0x48, 0xfc, 0x22, 0xcc, 0xd8, 0x8e, 0xd8, 0x76, 0xa5, + 0x50, 0x46, 0x95, 0x62, 0xfd, 0x4c, 0x35, 0xee, 0x35, 0x31, 0x8b, 0x6c, 0x18, 0x1e, 0xbb, 0xe3, + 0x4f, 0xd5, 0x82, 0x35, 0xea, 0xd7, 0xb3, 0xb0, 0x30, 0x7c, 0x0e, 0x97, 0xd9, 0x36, 0xac, 0xcd, + 0xc8, 0x7c, 0x01, 0x29, 0xbe, 0x90, 0xd7, 0xc4, 0x17, 0x69, 0x41, 0x49, 0xe2, 0x63, 0x90, 0x13, + 0x1b, 0x23, 0xcd, 0xe7, 0x13, 0xdc, 0x22, 0xba, 0xd9, 0xf1, 0x18, 0x75, 0x3d, 0x65, 0xca, 0xb7, + 0x6b, 0x40, 0xe3, 0x53, 0x00, 0x56, 0xa0, 0xa6, 0xa7, 0xe4, 0xc4, 0xd7, 0xd8, 0x08, 0xb7, 0x3b, + 0xe9, 0x30, 0x7b, 0xab, 0x67, 0xe9, 0x6b, 0x16, 0x79, 0x68, 0xd2, 0x86, 0x30, 0x5e, 0x5e, 0xeb, + 0x1f, 0xe6, 0x76, 0xf4, 0x7a, 0x96, 0xbe, 0xc5, 0x08, 0xeb, 0x78, 0xd4, 0x53, 0x66, 0x04, 0xaf, + 0xc4, 0x18, 0x3e, 0x0f, 0x73, 0x2d, 0x4a, 0x4c, 0xd6, 0x0a, 0x67, 0xf9, 0xe6, 0xec, 0x1b, 0xc5, + 0x0b, 0x30, 0xed, 0x51, 0xe2, 0xea, 0x2d, 0x61, 0xd4, 0x82, 0x26, 0x29, 0x3e, 0x6e, 0xef, 0xec, + 0x78, 0x94, 0x29, 0x50, 0x46, 0x95, 0xac, 0x26, 0x29, 0xae, 0xb7, 0x69, 0xb4, 0x0d, 0xa6, 0x14, + 0xc5, 0xb0, 0x4f, 0xe0, 0x67, 0x60, 0xda, 0xb3, 0x5d, 0x76, 0xbd, 0xa7, 0xcc, 0x96, 0x51, 0x65, + 0xae, 0x7e, 0x6a, 0xd4, 0xd6, 0x6c, 0x89, 0x59, 0x9a, 0x9c, 0xad, 0xbe, 0x8f, 0xe0, 0x3f, 0xfa, + 0x36, 0x45, 0xa3, 0x9e, 0x63, 0x5b, 0x1e, 0xc5, 0x0f, 0x20, 0x67, 0x30, 0xda, 0xf6, 0x14, 0x54, + 0xce, 0x56, 0x8a, 0xf5, 0xf5, 0x6a, 0x74, 0x7a, 0xaa, 0xc1, 0xe9, 0x11, 0x3f, 0x1e, 0xe8, 0x8d, + 0x6a, 0xf7, 0xa9, 0xaa, 0xb3, 0xdb, 0xac, 0xf2, 0xb3, 0x98, 0x10, 0x1d, 0x9c, 0xc5, 0x38, 0x06, + 0xcd, 0xe7, 0x8b, 0x9f, 0x85, 0x9c, 0xc7, 0x08, 0xf3, 0x94, 0x4c, 0x39, 0x53, 0x29, 0xd6, 0x4f, + 0xa7, 0xb9, 0x13, 0xb7, 0x97, 0xa7, 0xf9, 0xf3, 0xd5, 0x6f, 0xe7, 0xe0, 0xd8, 0xb0, 0xef, 0xdc, + 0x38, 0xcc, 0x66, 0xc4, 0x54, 0x50, 0x39, 0xc3, 0x8d, 0x23, 0x08, 0xbc, 0x03, 0x47, 0xc4, 0x8f, + 0xeb, 0xbd, 0xad, 0x70, 0x87, 0x94, 0x8c, 0x50, 0xea, 0xda, 0x58, 0x99, 0xd5, 0xed, 0xfe, 0xa5, + 0x6b, 0x16, 0x73, 0x7b, 0xda, 0x20, 0x4b, 0x6c, 0xc2, 0x51, 0x39, 0x78, 0x2b, 0xb6, 0xc7, 0xc2, + 0x41, 0x8b, 0xf5, 0xa5, 0x89, 0x25, 0xc5, 0x17, 0xfb, 0xb2, 0x86, 0xb1, 0xc5, 0x75, 0x38, 0xd6, + 0xe7, 0x97, 0x2b, 0x76, 0xc7, 0x62, 0xca, 0x94, 0x50, 0x7d, 0xe8, 0x37, 0xfc, 0x1a, 0xcc, 0x36, + 0xa8, 0xc7, 0x0c, 0xcb, 0x0f, 0xdf, 0xe2, 0x10, 0x14, 0xeb, 0xdb, 0x07, 0xb6, 0xb3, 0xab, 0x11, + 0x73, 0x2d, 0x21, 0xa9, 0xef, 0xf0, 0x4d, 0x0f, 0x1c, 0xbe, 0x25, 0x98, 0x36, 0xc9, 0x43, 0x6a, + 0xfa, 0x87, 0xa9, 0x58, 0x57, 0x47, 0x9a, 0x8b, 0xcf, 0xf2, 0xbd, 0x41, 0xae, 0x28, 0xad, 0xc2, + 0xc2, 0xf0, 0x4d, 0xc2, 0xf3, 0x90, 0xdd, 0xa5, 0x3d, 0x19, 0x54, 0xf8, 0x4f, 0xee, 0x21, 0x5d, + 0x62, 0x76, 0xfc, 0x70, 0x92, 0xd5, 0x7c, 0x62, 0x29, 0x73, 0x0d, 0x95, 0x6e, 0x80, 0x32, 0x6a, + 0x03, 0xf6, 0xc2, 0x47, 0x5d, 0x86, 0xe3, 0x43, 0xe1, 0x46, 0x4c, 0x32, 0x01, 0x93, 0x05, 0x98, + 0x16, 0xeb, 0x7c, 0x6f, 0x2c, 0x68, 0x92, 0x52, 0x57, 0xa0, 0xb0, 0x69, 0x37, 0xe8, 0xe8, 0xc4, + 0xd2, 0x1f, 0xc8, 0x33, 0x83, 0x81, 0x5c, 0xfd, 0x00, 0xc1, 0x71, 0x8d, 0x76, 0x0d, 0x9e, 0x29, + 0x6e, 0x53, 0x46, 0x1a, 0x84, 0x91, 0x7e, 0x8e, 0x99, 0x90, 0x63, 0x09, 0xf2, 0xae, 0x9c, 0x2c, + 0x8e, 0x63, 0x41, 0x0b, 0xe9, 0x01, 0x69, 0xd9, 0xf4, 0xb4, 0xe1, 0x27, 0xab, 0x30, 0x6d, 0x94, + 0xa1, 0xe8, 0x67, 0xad, 0x75, 0xab, 0x41, 0x5f, 0x13, 0x79, 0x2a, 0xa7, 0xc5, 0x87, 0xf0, 0x49, + 0x28, 0x74, 0xfd, 0x8c, 0xb6, 0xee, 0x87, 0xdc, 0x9c, 0x16, 0x0d, 0xa8, 0x7f, 0x41, 0x70, 0x2a, + 0x1e, 0x3c, 0x64, 0x0e, 0x5c, 0xeb, 0x52, 0x8b, 0x79, 0xa3, 0x15, 0xba, 0x04, 0x47, 0x82, 0x74, + 0xd9, 0x6f, 0xa7, 0xc1, 0x0f, 0x5c, 0xc5, 0xf8, 0x60, 0xa0, 0x62, 0x7c, 0x8c, 0x2b, 0x12, 0xd0, + 0xf7, 0xd6, 0x57, 0xa5, 0x9a, 0xf1, 0xa1, 0x01, 0x43, 0xe5, 0xd2, 0x0d, 0x35, 0x9d, 0x30, 0x94, + 0xfa, 0x21, 0x02, 0x25, 0xa6, 0xe8, 0x6d, 0x62, 0x19, 0x3b, 0xd4, 0x63, 0x93, 0xee, 0x19, 0x3a, + 0xc0, 0x3d, 0xab, 0xc0, 0x61, 0x5f, 0xab, 0xbb, 0xfc, 0xe6, 0x13, 0x86, 0x8a, 0xac, 0xd6, 0x3f, + 0xcc, 0xf7, 0x2e, 0x90, 0x19, 0x1c, 0xeb, 0x68, 0x40, 0x3d, 0x0d, 0x85, 0x1b, 0x86, 0x49, 0x57, + 0x5a, 0x1d, 0x6b, 0x97, 0x1f, 0x19, 0x9d, 0xff, 0x10, 0x3a, 0xcc, 0x6a, 0x3e, 0xa1, 0x7e, 0x0d, + 0xc1, 0xe9, 0x51, 0x5a, 0xdf, 0x37, 0x58, 0x8b, 0xaf, 0xf7, 0x46, 0xa9, 0xaf, 0xb7, 0xa8, 0xbe, + 0xeb, 0x75, 0xda, 0x81, 0xcb, 0x06, 0xf4, 0xfe, 0xd4, 0x57, 0x7f, 0x88, 0xa0, 0x32, 0x16, 0xd3, + 0x7d, 0x97, 0x38, 0x0e, 0x75, 0xf1, 0x0d, 0xc8, 0x3d, 0xe2, 0x1f, 0xc4, 0x01, 0x2d, 0xd6, 0xab, + 0xa3, 0x02, 0xd7, 0x70, 0x2e, 0xb7, 0x1e, 0xd3, 0xfc, 0xe5, 0xb8, 0x1a, 0x98, 0x27, 0x23, 0xf8, + 0x2c, 0x24, 0xf8, 0x84, 0x56, 0xe4, 0xf3, 0xc5, 0xb4, 0xeb, 0xd3, 0x30, 0xe5, 0x10, 0x97, 0xa9, + 0xc7, 0xe1, 0x68, 0xf2, 0x78, 0x88, 0xec, 0xad, 0xfe, 0x22, 0xe9, 0x4d, 0x2b, 0x2e, 0x25, 0x8c, + 0x6a, 0xf4, 0x51, 0x87, 0x7a, 0x0c, 0xef, 0x42, 0xfc, 0x76, 0x2f, 0xac, 0x7a, 0xa0, 0x09, 0x3e, + 0xce, 0x9d, 0x47, 0xb9, 0x8e, 0xe3, 0x51, 0x97, 0x09, 0xcd, 0xf2, 0x9a, 0xa4, 0xf8, 0xfe, 0x75, + 0x89, 0x69, 0x34, 0x08, 0xf3, 0xf7, 0x27, 0xaf, 0x85, 0xb4, 0xfa, 0xcb, 0x24, 0xfa, 0x7b, 0x4e, + 0xe3, 0x93, 0x42, 0x1f, 0x47, 0x99, 0x49, 0xa2, 0x8c, 0x7b, 0x50, 0x36, 0xe9, 0x41, 0x3f, 0x4d, + 0xe2, 0x5f, 0xa5, 0x26, 0x8d, 0xf0, 0x0f, 0x73, 0x66, 0x05, 0x66, 0x74, 0xe2, 0xe9, 0xa4, 0x11, + 0x48, 0x09, 0x48, 0x1e, 0xc8, 0x1c, 0xd7, 0x76, 0x48, 0x53, 0x70, 0xba, 0x6b, 0x9b, 0x86, 0xde, + 0x93, 0xe2, 0x06, 0x3f, 0x0c, 0x38, 0xfe, 0x54, 0xba, 0xe3, 0xe7, 0x92, 0xb0, 0xcf, 0x40, 0x91, + 0xa7, 0xd0, 0xe0, 0x5e, 0x7e, 0x2c, 0x7e, 0x03, 0x2c, 0xc8, 0x6b, 0x9b, 0xfa, 0x8f, 0x5c, 0xe2, + 0x22, 0xcf, 0x17, 0xa4, 0x69, 0x96, 0x16, 0xa5, 0x16, 0x60, 0xba, 0xe1, 0xf6, 0xb4, 0x8e, 0x25, + 0x1d, 0x40, 0x52, 0x5c, 0xb0, 0xe3, 0x76, 0x2c, 0x1f, 0x7e, 0x5e, 0xf3, 0x09, 0xbc, 0x03, 0x79, + 0x8f, 0xf1, 0xf7, 0x5c, 0xb3, 0x27, 0x80, 0x17, 0xeb, 0x2f, 0xed, 0x6f, 0xd3, 0xfd, 0xeb, 0x82, + 0xcf, 0x51, 0x0b, 0x79, 0xe3, 0x47, 0x3c, 0xa6, 0xf9, 0x81, 0x2e, 0xb8, 0x8e, 0x6c, 0xed, 0x5f, + 0xd0, 0x1d, 0x87, 0xbf, 0x45, 0x63, 0x19, 0x4c, 0x8b, 0xa4, 0xf0, 0x30, 0xda, 0x96, 0xf1, 0x21, + 0x78, 0x28, 0x44, 0x03, 0xf8, 0xb3, 0x90, 0x33, 0xac, 0x1d, 0x9b, 0xbf, 0xbb, 0x38, 0x98, 0xeb, + 0xfb, 0x03, 0xb3, 0x6e, 0xed, 0xd8, 0x9a, 0xcf, 0x10, 0x3f, 0x82, 0x43, 0x2e, 0x65, 0x6e, 0x2f, + 0xb0, 0x82, 0x78, 0x6c, 0x14, 0xeb, 0xff, 0xb7, 0x3f, 0x09, 0x5a, 0x9c, 0xa5, 0x96, 0x94, 0x80, + 0x97, 0xa0, 0xe8, 0x45, 0x3e, 0x26, 0x9e, 0x31, 0xc5, 0xba, 0x92, 0x60, 0x14, 0xf3, 0x41, 0x2d, + 0x3e, 0x79, 0xc0, 0xbb, 0x67, 0xd3, 0xbd, 0xfb, 0xd0, 0xd8, 0xac, 0x36, 0x37, 0x41, 0x56, 0x3b, + 0xdc, 0x9f, 0xd5, 0xfe, 0x8e, 0xe0, 0xe4, 0x40, 0x70, 0xda, 0x72, 0x68, 0xea, 0x31, 0x20, 0x30, + 0xe5, 0x39, 0x54, 0x97, 0x6f, 0x9d, 0xdb, 0x07, 0x16, 0xad, 0x84, 0x5c, 0xc1, 0x3a, 0x2d, 0xa0, + 0xee, 0x33, 0x2e, 0x7c, 0x2f, 0xf9, 0x4c, 0xbc, 0x4b, 0x98, 0xde, 0x4a, 0x53, 0x96, 0x9f, 0x5f, + 0x3e, 0x47, 0xe6, 0x65, 0x9f, 0xe0, 0x56, 0x15, 0x3f, 0xb6, 0x7b, 0x0e, 0x07, 0xc8, 0xbf, 0x44, + 0x03, 0xfb, 0xbc, 0x3c, 0xfd, 0x08, 0x41, 0x29, 0x1e, 0xc3, 0x6d, 0xd3, 0x7c, 0x48, 0xf4, 0xdd, + 0x34, 0x90, 0x73, 0x90, 0x31, 0x1a, 0x02, 0x61, 0x56, 0xcb, 0x18, 0x8d, 0x3d, 0x06, 0xa3, 0x7e, + 0xb8, 0xd3, 0xe9, 0x70, 0x67, 0x92, 0x70, 0x3f, 0xee, 0x83, 0x1b, 0x84, 0x84, 0x14, 0xb8, 0x27, + 0xa1, 0x60, 0xf5, 0x5d, 0x64, 0xa3, 0x81, 0x21, 0x17, 0xd8, 0xcc, 0xc0, 0x05, 0x56, 0x81, 0x99, + 0x6e, 0x58, 0x50, 0xe2, 0x9f, 0x03, 0x92, 0xab, 0xd8, 0x74, 0xed, 0x8e, 0x23, 0x8d, 0xee, 0x13, + 0x1c, 0xc5, 0xae, 0x61, 0xf1, 0x2b, 0xb9, 0x40, 0xc1, 0x7f, 0xef, 0xbd, 0x84, 0x94, 0x50, 0xfb, + 0xc7, 0x19, 0xf8, 0xcf, 0x21, 0x6a, 0x8f, 0xf5, 0xa7, 0x4f, 0x87, 0xee, 0xa1, 0x57, 0xcf, 0x8c, + 0xf4, 0xea, 0xfc, 0x38, 0xaf, 0x2e, 0xa4, 0xdb, 0x0b, 0x92, 0xf6, 0xfa, 0x41, 0x06, 0xca, 0x43, + 0xec, 0x35, 0xfe, 0x3a, 0xf1, 0xa9, 0x31, 0xd8, 0x8e, 0xed, 0x4a, 0x2f, 0xc9, 0x6b, 0x3e, 0x21, + 0x2a, 0x5b, 0xae, 0xd3, 0x22, 0x96, 0xf0, 0x8e, 0xbc, 0x26, 0xa9, 0x7d, 0x9a, 0x6a, 0x15, 0x94, + 0xc0, 0x3c, 0xcb, 0xba, 0x1f, 0xa4, 0x5c, 0xd2, 0xa6, 0xa2, 0xf2, 0x37, 0x22, 0x44, 0x05, 0x0f, + 0x78, 0xb1, 0x99, 0x82, 0x50, 0xff, 0x9a, 0xe9, 0x67, 0xa3, 0x75, 0xac, 0x4f, 0xbf, 0xa1, 0x17, + 0x60, 0x9a, 0x08, 0xb4, 0xd2, 0x35, 0x25, 0x35, 0x60, 0xd2, 0x7c, 0xba, 0x49, 0x0b, 0xc9, 0x7c, + 0x49, 0x40, 0x71, 0x47, 0x98, 0x54, 0x01, 0x71, 0x13, 0x39, 0x97, 0x48, 0x4f, 0xa3, 0xec, 0xaf, + 0x8d, 0x64, 0xa3, 0x7e, 0x19, 0xc1, 0x89, 0xe4, 0x32, 0x2f, 0x51, 0x83, 0xdc, 0x81, 0x19, 0x5f, + 0x95, 0xa0, 0x0a, 0xb9, 0xb1, 0xdf, 0x9b, 0x49, 0x62, 0x6f, 0x03, 0xe6, 0xea, 0x73, 0x70, 0x62, + 0x68, 0x38, 0x96, 0x30, 0x4a, 0x90, 0x0f, 0x6e, 0x63, 0x72, 0xf7, 0x43, 0x5a, 0x7d, 0x77, 0x2a, + 0x99, 0x1b, 0xed, 0xc6, 0x86, 0xdd, 0x4c, 0x29, 0x4c, 0xa4, 0x7b, 0x0c, 0xdf, 0x0d, 0xbb, 0x11, + 0xab, 0x41, 0x04, 0x24, 0x5f, 0xa7, 0xdb, 0x16, 0x23, 0x86, 0x45, 0x5d, 0x99, 0xbe, 0xa3, 0x01, + 0x51, 0x92, 0x36, 0x2c, 0x9d, 0x6e, 0x51, 0xdd, 0xb6, 0x1a, 0x9e, 0x70, 0x99, 0xac, 0x96, 0x18, + 0xc3, 0xb7, 0xa0, 0x20, 0xe8, 0x6d, 0xa3, 0xed, 0xe7, 0xab, 0x62, 0x7d, 0xb1, 0xea, 0xb7, 0x65, + 0xaa, 0xf1, 0xb6, 0x4c, 0x64, 0xc3, 0x36, 0x65, 0xa4, 0xda, 0xbd, 0x5a, 0xe5, 0x2b, 0xb4, 0x68, + 0x31, 0xc7, 0xc2, 0x88, 0x61, 0x6e, 0x18, 0x96, 0xb8, 0x21, 0x73, 0x51, 0xd1, 0x00, 0xf7, 0xc6, + 0x1d, 0xdb, 0x34, 0xed, 0x57, 0x83, 0x03, 0xee, 0x53, 0x7c, 0x55, 0xc7, 0x62, 0x86, 0x29, 0xe4, + 0xfb, 0xbe, 0x16, 0x0d, 0x88, 0x55, 0x86, 0xc9, 0xa8, 0x2b, 0x4f, 0xb6, 0xa4, 0x42, 0x7f, 0x2f, + 0xfa, 0xf5, 0xaf, 0x20, 0xb0, 0xf8, 0x27, 0x63, 0x36, 0x7e, 0x32, 0xfa, 0x4f, 0xdb, 0xa1, 0x21, + 0x45, 0x1c, 0xd1, 0x78, 0xa1, 0x5d, 0xc3, 0xee, 0xf0, 0xcb, 0x9f, 0xb8, 0x23, 0x05, 0xf4, 0xc0, + 0x69, 0x39, 0x9c, 0x7e, 0x5a, 0xe6, 0x93, 0xa7, 0x45, 0x5c, 0xe1, 0x99, 0xde, 0x5a, 0x21, 0x1e, + 0x55, 0x8e, 0x08, 0xd6, 0xd1, 0x80, 0xfa, 0x2b, 0x04, 0xf9, 0x0d, 0xbb, 0xe9, 0x97, 0x13, 0xf9, + 0x63, 0xcf, 0xb6, 0x18, 0xb5, 0x02, 0x6f, 0x0a, 0x48, 0xbe, 0x45, 0xcc, 0x68, 0xd3, 0x2d, 0x46, + 0xda, 0x8e, 0xbc, 0x2a, 0xee, 0x69, 0x8b, 0xc2, 0xc5, 0xdc, 0x6c, 0x26, 0xf1, 0x98, 0x08, 0x39, + 0x79, 0x4d, 0xfc, 0xe6, 0x0a, 0x86, 0x13, 0xb6, 0x98, 0x2b, 0xe3, 0x4d, 0x62, 0x2c, 0xee, 0x80, + 0x39, 0x1f, 0x9b, 0x24, 0xd5, 0x36, 0x3c, 0x1e, 0xbe, 0x61, 0xb6, 0xa9, 0xdb, 0x36, 0x2c, 0x92, + 0x9e, 0x84, 0x26, 0xa8, 0x52, 0xa6, 0x3c, 0xa1, 0xed, 0xc4, 0x91, 0xe4, 0x4f, 0x82, 0xfb, 0x86, + 0xd5, 0xb0, 0x5f, 0x4d, 0x39, 0x5a, 0xfb, 0x13, 0xf8, 0x87, 0x64, 0xa1, 0x31, 0x26, 0x31, 0x8c, + 0x03, 0xb7, 0xe0, 0x10, 0x8f, 0x18, 0x5d, 0x2a, 0x3f, 0xc8, 0xa0, 0x34, 0xb2, 0x58, 0x1d, 0xf1, + 0xd0, 0x92, 0x0b, 0xf1, 0x06, 0x1c, 0x26, 0x9e, 0x67, 0x34, 0x2d, 0xda, 0x08, 0x78, 0x65, 0x26, + 0xe6, 0xd5, 0xbf, 0xd4, 0xaf, 0x1e, 0x88, 0x19, 0x72, 0xbf, 0x03, 0x52, 0xfd, 0x12, 0x4a, 0x94, + 0xa3, 0x23, 0x26, 0xe1, 0xb9, 0x42, 0xb1, 0x3c, 0x52, 0x82, 0xbc, 0xa7, 0xb7, 0x68, 0xa3, 0x63, + 0x06, 0x79, 0x31, 0xa4, 0xf9, 0xb7, 0x46, 0xc7, 0xdf, 0x7d, 0x99, 0xc7, 0x42, 0x1a, 0x9f, 0x02, + 0x68, 0x13, 0xab, 0x43, 0x4c, 0x01, 0x61, 0x4a, 0x40, 0x88, 0x8d, 0xa8, 0x27, 0xa1, 0x34, 0xcc, + 0x75, 0x64, 0xa9, 0xea, 0x6f, 0x08, 0xe6, 0x82, 0x90, 0x2b, 0x77, 0xb7, 0x02, 0x87, 0x63, 0x66, + 0xd8, 0x8c, 0x36, 0xba, 0x7f, 0x78, 0x4c, 0x38, 0x0d, 0xbc, 0x24, 0x9b, 0xec, 0xca, 0x76, 0x13, + 0x7d, 0xd5, 0x89, 0x13, 0x2e, 0x3a, 0xa0, 0x6b, 0xf0, 0x17, 0x41, 0xb9, 0x4d, 0x2c, 0xd2, 0xa4, + 0x8d, 0x50, 0xed, 0xd0, 0xc5, 0x5e, 0x49, 0x76, 0xdd, 0x5e, 0x3a, 0x98, 0x7c, 0xb7, 0x6a, 0xec, + 0xec, 0x04, 0xf5, 0x1b, 0x17, 0xf2, 0x1b, 0x86, 0xb5, 0xbb, 0x6e, 0xed, 0xd8, 0xa2, 0x61, 0x66, + 0x30, 0x33, 0xb0, 0xae, 0x4f, 0xe0, 0x79, 0xc8, 0x76, 0x5c, 0x53, 0x7a, 0x00, 0xff, 0x89, 0xcb, + 0x50, 0x6c, 0x50, 0x4f, 0x77, 0x0d, 0x47, 0xee, 0xbf, 0xa8, 0x7d, 0xc7, 0x86, 0xf8, 0x3e, 0x18, + 0xba, 0x6d, 0xad, 0x98, 0xc4, 0xf3, 0x82, 0xf4, 0x14, 0x0e, 0xa8, 0x2f, 0xc0, 0x21, 0x2e, 0x33, + 0x52, 0xf3, 0x62, 0x52, 0xcd, 0xe3, 0x09, 0xf8, 0x01, 0xbc, 0x00, 0x31, 0x81, 0xa3, 0xfc, 0x56, + 0xb0, 0xec, 0x38, 0x92, 0xc9, 0x84, 0xf7, 0xb1, 0xec, 0xb0, 0xec, 0x3a, 0xb4, 0xe4, 0xbb, 0xf8, + 0x0a, 0x1c, 0x19, 0xe8, 0x92, 0xe2, 0xa3, 0x70, 0x78, 0x79, 0xeb, 0xfa, 0x83, 0x7b, 0x9b, 0x5b, + 0x77, 0xd7, 0x56, 0xd6, 0x6f, 0xac, 0xaf, 0xad, 0xce, 0x3f, 0x86, 0x67, 0x21, 0xcf, 0x07, 0x37, + 0x97, 0x6f, 0xaf, 0xcd, 0x23, 0x8c, 0x61, 0x8e, 0x53, 0x2b, 0xda, 0xda, 0xf2, 0xf6, 0xda, 0xea, + 0x83, 0xe5, 0xed, 0xf9, 0x0c, 0x3e, 0x06, 0xf3, 0x7c, 0x6c, 0xeb, 0x73, 0x9b, 0x2b, 0xb7, 0xb4, + 0x3b, 0x9b, 0xeb, 0x2f, 0xaf, 0xad, 0xce, 0x67, 0xeb, 0x1f, 0x9f, 0x05, 0x1c, 0x17, 0x41, 0xdd, + 0xae, 0xa1, 0x53, 0x6c, 0xc0, 0x14, 0xd7, 0x0d, 0x3f, 0x31, 0xea, 0xdc, 0x8b, 0x03, 0x51, 0x3a, + 0x9b, 0xd6, 0x3e, 0x0c, 0x4f, 0xd2, 0xc9, 0x37, 0xff, 0xf8, 0xe7, 0x6f, 0x64, 0x16, 0xf0, 0x31, + 0xf1, 0xa7, 0x18, 0xdd, 0xab, 0xf1, 0x3f, 0x8b, 0xf0, 0xf0, 0x5b, 0x08, 0xb0, 0x9c, 0x1e, 0x6b, + 0xa1, 0xe0, 0x8b, 0xa3, 0x58, 0x0f, 0x69, 0xb5, 0x94, 0x9e, 0x88, 0x65, 0xa3, 0xaa, 0x6e, 0xbb, + 0x94, 0xe7, 0x1e, 0x31, 0x81, 0x73, 0x56, 0x17, 0x05, 0x80, 0xb3, 0x58, 0x1d, 0x06, 0xa0, 0xf6, + 0x3a, 0xdf, 0x89, 0x37, 0x6a, 0xd4, 0x97, 0xfb, 0x0e, 0x82, 0xdc, 0x7d, 0xf1, 0x84, 0x1a, 0xa3, + 0xfb, 0xd6, 0x81, 0x15, 0x4b, 0x84, 0x38, 0x81, 0x56, 0x3d, 0x23, 0x90, 0x3e, 0x81, 0x4f, 0x04, + 0x48, 0x3d, 0xe6, 0x52, 0xd2, 0x4e, 0x00, 0xbe, 0x82, 0xf0, 0x7b, 0x08, 0xa6, 0xfd, 0xda, 0x39, + 0x3e, 0x37, 0x0a, 0x65, 0xa2, 0xb6, 0x5e, 0x3a, 0xb8, 0x42, 0xb4, 0xfa, 0xa4, 0xc0, 0x78, 0x46, + 0x1d, 0xba, 0x9d, 0x4b, 0x89, 0x32, 0xf5, 0xdb, 0x08, 0xb2, 0x37, 0xe9, 0x58, 0x37, 0x3a, 0x40, + 0x70, 0x03, 0x06, 0x1c, 0xb2, 0xd5, 0xf8, 0x5d, 0x04, 0x8f, 0xdf, 0xa4, 0x6c, 0x78, 0x5a, 0xc5, + 0x95, 0xf1, 0xb9, 0x4e, 0xba, 0xdd, 0xc5, 0x09, 0x66, 0x86, 0xa7, 0xa0, 0x26, 0x90, 0x3d, 0x89, + 0x2f, 0xa4, 0x39, 0xa1, 0xd7, 0xb3, 0xf4, 0x57, 0x25, 0x8e, 0xdf, 0x21, 0x98, 0xef, 0x6f, 0x95, + 0x62, 0xb5, 0xef, 0x6d, 0x33, 0xa4, 0x93, 0x5a, 0xda, 0xdc, 0x6f, 0x74, 0x4e, 0x32, 0x55, 0x97, + 0x05, 0xf2, 0xe7, 0xf1, 0x73, 0x69, 0xc8, 0xc3, 0x42, 0x64, 0xed, 0xf5, 0xe0, 0xe7, 0x1b, 0xe2, + 0x0f, 0xa8, 0x04, 0xec, 0xdf, 0x23, 0x38, 0x16, 0xf0, 0x5d, 0x69, 0x11, 0x97, 0xad, 0x52, 0x7e, + 0x33, 0xf7, 0x26, 0xd2, 0x67, 0x9f, 0xd9, 0x26, 0x2e, 0x4f, 0x5d, 0x13, 0xba, 0xfc, 0x0f, 0x7e, + 0x71, 0xcf, 0xba, 0xe8, 0x9c, 0x4d, 0x43, 0xc2, 0xfe, 0x00, 0xc1, 0xdc, 0x4d, 0xca, 0xee, 0xac, + 0xac, 0xef, 0x69, 0x67, 0xf6, 0xe9, 0xe8, 0x31, 0x71, 0xea, 0xaa, 0x50, 0xe4, 0xbf, 0xf1, 0x0b, + 0x7b, 0x56, 0xc4, 0xd6, 0x8d, 0x70, 0x5f, 0xde, 0x44, 0x30, 0x7b, 0x93, 0xb2, 0xdb, 0x61, 0x51, + 0xff, 0xdc, 0x44, 0x8d, 0xc2, 0xd2, 0xc9, 0x6a, 0xec, 0xef, 0xcf, 0x82, 0x4f, 0xa1, 0xab, 0x5f, + 0x16, 0xd8, 0x2e, 0xe0, 0x73, 0x69, 0xd8, 0xa2, 0x46, 0xc2, 0x3b, 0x08, 0x8e, 0xc7, 0x41, 0x44, + 0x0d, 0xd6, 0xff, 0xda, 0x5b, 0xdb, 0x52, 0x36, 0x3f, 0xc7, 0xa0, 0xab, 0x0b, 0x74, 0x97, 0xd4, + 0xe1, 0x07, 0xb1, 0x3d, 0x80, 0x62, 0x09, 0x2d, 0x56, 0x10, 0xfe, 0x35, 0x82, 0x69, 0xbf, 0xa6, + 0x3e, 0xda, 0x46, 0x89, 0x86, 0xe0, 0x41, 0x46, 0x35, 0xe9, 0xb5, 0xa5, 0x2b, 0xc3, 0x0d, 0x1a, + 0x5f, 0x1f, 0x6c, 0x6d, 0x55, 0x58, 0x39, 0x19, 0x8e, 0x7f, 0x86, 0x00, 0xa2, 0xbe, 0x00, 0x7e, + 0x32, 0x5d, 0x8f, 0x58, 0xef, 0xa0, 0x74, 0xb0, 0x9d, 0x01, 0xb5, 0x2a, 0xf4, 0xa9, 0x94, 0xca, + 0xa9, 0xb1, 0xd0, 0xa1, 0xfa, 0x92, 0xdf, 0x43, 0xf8, 0x3e, 0x82, 0x9c, 0x28, 0xc7, 0xe2, 0x91, + 0x37, 0x8e, 0x78, 0xb5, 0xf6, 0x20, 0x4d, 0x7f, 0x5e, 0x40, 0x2d, 0xd7, 0xd3, 0x12, 0xca, 0x12, + 0x5a, 0xc4, 0x5d, 0x98, 0xf6, 0x0b, 0xa0, 0xa3, 0xdd, 0x23, 0x51, 0x20, 0x2d, 0x95, 0x53, 0x2e, + 0x38, 0xbe, 0xa3, 0xca, 0x5c, 0xb6, 0x38, 0x2e, 0x97, 0x4d, 0xf1, 0x74, 0x83, 0xcf, 0xa4, 0x25, + 0xa3, 0x7f, 0x83, 0x61, 0x2e, 0x0a, 0x74, 0xe7, 0xd4, 0xf2, 0xb8, 0x7c, 0xc6, 0xad, 0xf3, 0x2d, + 0x04, 0xf3, 0xfd, 0x8f, 0x0b, 0x7c, 0x62, 0x68, 0x9d, 0x4e, 0xe6, 0xd6, 0xa4, 0x15, 0x47, 0x3d, + 0x4c, 0xd4, 0xff, 0x15, 0x28, 0x96, 0xf0, 0xb5, 0xb1, 0x27, 0x63, 0x33, 0x88, 0x3a, 0x9c, 0xd1, + 0xe5, 0xa8, 0xc9, 0xf9, 0x73, 0x04, 0xb3, 0x01, 0xdf, 0x6d, 0x97, 0xd2, 0x74, 0x58, 0x07, 0x77, + 0x10, 0xb8, 0x2c, 0xf5, 0x05, 0x01, 0xff, 0x19, 0xfc, 0xf4, 0x84, 0xf0, 0x03, 0xd8, 0x97, 0x19, + 0x47, 0xfa, 0x1b, 0x04, 0x47, 0xee, 0xfb, 0x7e, 0xff, 0x09, 0xe1, 0x5f, 0x11, 0xf8, 0x5f, 0xc4, + 0xcf, 0xa7, 0xdc, 0x57, 0xc7, 0xa9, 0x71, 0x05, 0xe1, 0x9f, 0x20, 0xc8, 0x07, 0xcd, 0x31, 0x7c, + 0x61, 0xe4, 0xc1, 0x48, 0xb6, 0xcf, 0x0e, 0xd2, 0x99, 0xe5, 0xe5, 0x4c, 0x3d, 0x9b, 0x9a, 0x4d, + 0xa5, 0x7c, 0xee, 0xd0, 0x6f, 0x23, 0xc0, 0x61, 0xcd, 0x20, 0xac, 0x22, 0xe0, 0xf3, 0x09, 0x51, + 0x23, 0x0b, 0x53, 0xa5, 0x0b, 0x63, 0xe7, 0x25, 0x53, 0xe9, 0x62, 0x6a, 0x2a, 0xb5, 0x43, 0xf9, + 0x5f, 0x41, 0x50, 0xbc, 0x49, 0xc3, 0xb7, 0x54, 0x8a, 0x2d, 0x93, 0xbd, 0xbd, 0x52, 0x65, 0xfc, + 0x44, 0x89, 0xe8, 0x92, 0x40, 0x74, 0x1e, 0xa7, 0x9b, 0x2a, 0x00, 0xf0, 0x1d, 0x04, 0x87, 0xee, + 0xc6, 0x5d, 0x14, 0x5f, 0x1a, 0x27, 0x29, 0x11, 0xc9, 0x27, 0xc7, 0xf5, 0x94, 0xc0, 0x75, 0x59, + 0x9d, 0x08, 0xd7, 0x92, 0x6c, 0x93, 0x7d, 0x17, 0xf9, 0x8f, 0xf8, 0xbe, 0x6a, 0xff, 0xbf, 0x6a, + 0xb7, 0x94, 0xa6, 0x81, 0xfa, 0xb4, 0xc0, 0x57, 0xc5, 0x97, 0x26, 0xc1, 0x57, 0x93, 0x2d, 0x00, + 0xfc, 0x4d, 0x04, 0x47, 0x44, 0xb3, 0x27, 0xce, 0x18, 0xa7, 0x75, 0x38, 0xa2, 0xd6, 0xd0, 0x04, + 0x29, 0xe6, 0x59, 0x01, 0xea, 0xaa, 0xba, 0x27, 0x50, 0xdc, 0xff, 0xbf, 0x8a, 0x60, 0x2e, 0xc8, + 0x67, 0x72, 0x63, 0x2f, 0x8f, 0xb3, 0xd9, 0x5e, 0xf3, 0x9f, 0xf4, 0xb4, 0xc5, 0xc9, 0x3c, 0xed, + 0x3d, 0x04, 0x33, 0xb2, 0xcd, 0x91, 0x72, 0x4b, 0x88, 0xf5, 0x41, 0x4a, 0x7d, 0xe5, 0x1d, 0x59, + 0x07, 0x57, 0x3f, 0x2f, 0xc4, 0xde, 0xc3, 0xb5, 0x34, 0xb1, 0x8e, 0xdd, 0xf0, 0x6a, 0xaf, 0xcb, + 0x22, 0xf4, 0x1b, 0x35, 0xd3, 0x6e, 0x7a, 0x2f, 0xab, 0x38, 0x35, 0x17, 0xf2, 0x39, 0x57, 0x10, + 0x66, 0x50, 0xe0, 0x7e, 0x21, 0x6a, 0x46, 0xb8, 0xdc, 0x57, 0x61, 0x1a, 0x28, 0x27, 0x95, 0x4a, + 0x03, 0x35, 0xa8, 0x28, 0xf9, 0xc9, 0x97, 0x38, 0x3e, 0x9d, 0x2a, 0x56, 0x08, 0x7a, 0x0b, 0xc1, + 0x91, 0xb8, 0xa3, 0xfb, 0xe2, 0x27, 0x76, 0xf3, 0x34, 0x14, 0xf2, 0x3e, 0x8d, 0x17, 0x27, 0xf2, + 0x21, 0x01, 0xe7, 0xfa, 0x8d, 0xdf, 0x7e, 0x74, 0x0a, 0x7d, 0xf8, 0xd1, 0x29, 0xf4, 0xa7, 0x8f, + 0x4e, 0xa1, 0x97, 0xaf, 0x4d, 0xf6, 0xff, 0x34, 0xba, 0x69, 0x50, 0x8b, 0xc5, 0xd9, 0xff, 0x33, + 0x00, 0x00, 0xff, 0xff, 0x78, 0xec, 0x60, 0xfe, 0x35, 0x34, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3108,7 +3571,7 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type ApplicationServiceClient interface { // List returns list of applications - List(ctx context.Context, in *ApplicationQuery, opts ...grpc.CallOption) (*v1alpha1.ApplicationList, error) + List(ctx context.Context, in *ApplicationQuery, opts ...grpc.CallOption) (*ApplicationListResponse, error) // ListResourceEvents returns a list of event resources ListResourceEvents(ctx context.Context, in *ApplicationResourceEventsQuery, opts ...grpc.CallOption) (*v11.EventList, error) // Watch returns stream of application change events @@ -3175,8 +3638,8 @@ func NewApplicationServiceClient(cc *grpc.ClientConn) ApplicationServiceClient { return &applicationServiceClient{cc} } -func (c *applicationServiceClient) List(ctx context.Context, in *ApplicationQuery, opts ...grpc.CallOption) (*v1alpha1.ApplicationList, error) { - out := new(v1alpha1.ApplicationList) +func (c *applicationServiceClient) List(ctx context.Context, in *ApplicationQuery, opts ...grpc.CallOption) (*ApplicationListResponse, error) { + out := new(ApplicationListResponse) err := c.cc.Invoke(ctx, "/application.ApplicationService/List", in, out, opts...) if err != nil { return nil, err @@ -3533,7 +3996,7 @@ func (c *applicationServiceClient) ListResourceLinks(ctx context.Context, in *Ap // ApplicationServiceServer is the server API for ApplicationService service. type ApplicationServiceServer interface { // List returns list of applications - List(context.Context, *ApplicationQuery) (*v1alpha1.ApplicationList, error) + List(context.Context, *ApplicationQuery) (*ApplicationListResponse, error) // ListResourceEvents returns a list of event resources ListResourceEvents(context.Context, *ApplicationResourceEventsQuery) (*v11.EventList, error) // Watch returns stream of application change events @@ -3596,7 +4059,7 @@ type ApplicationServiceServer interface { type UnimplementedApplicationServiceServer struct { } -func (*UnimplementedApplicationServiceServer) List(ctx context.Context, req *ApplicationQuery) (*v1alpha1.ApplicationList, error) { +func (*UnimplementedApplicationServiceServer) List(ctx context.Context, req *ApplicationQuery) (*ApplicationListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method List not implemented") } func (*UnimplementedApplicationServiceServer) ListResourceEvents(ctx context.Context, req *ApplicationResourceEventsQuery) (*v11.EventList, error) { @@ -4381,6 +4844,18 @@ func (m *ApplicationQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.Options != nil { + { + size, err := m.Options.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApplication(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } if len(m.Project) > 0 { for iNdEx := len(m.Project) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Project[iNdEx]) @@ -4444,7 +4919,7 @@ func (m *ApplicationQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *NodeQuery) Marshal() (dAtA []byte, err error) { +func (m *ApplicationListOptions) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4454,12 +4929,12 @@ func (m *NodeQuery) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *NodeQuery) MarshalTo(dAtA []byte) (int, error) { +func (m *ApplicationListOptions) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *NodeQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ApplicationListOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4468,24 +4943,101 @@ func (m *NodeQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.AppNamespace != nil { - i -= len(*m.AppNamespace) - copy(dAtA[i:], *m.AppNamespace) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) + if m.SortBy != nil { + i = encodeVarintApplication(dAtA, i, uint64(*m.SortBy)) + i-- + dAtA[i] = 0x60 + } + if m.Limit != nil { + i = encodeVarintApplication(dAtA, i, uint64(*m.Limit)) + i-- + dAtA[i] = 0x58 + } + if m.Offset != nil { + i = encodeVarintApplication(dAtA, i, uint64(*m.Offset)) + i-- + dAtA[i] = 0x50 + } + if m.Search != nil { + i -= len(*m.Search) + copy(dAtA[i:], *m.Search) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Search))) + i-- + dAtA[i] = 0x4a + } + if len(m.HealthStatuses) > 0 { + for iNdEx := len(m.HealthStatuses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.HealthStatuses[iNdEx]) + copy(dAtA[i:], m.HealthStatuses[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.HealthStatuses[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.SyncStatuses) > 0 { + for iNdEx := len(m.SyncStatuses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.SyncStatuses[iNdEx]) + copy(dAtA[i:], m.SyncStatuses[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.SyncStatuses[iNdEx]))) + i-- + dAtA[i] = 0x3a + } + } + if m.AutoSyncEnabled != nil { + i-- + if *m.AutoSyncEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Namespaces[iNdEx]) + copy(dAtA[i:], m.Namespaces[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.Namespaces[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.Clusters) > 0 { + for iNdEx := len(m.Clusters) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Clusters[iNdEx]) + copy(dAtA[i:], m.Clusters[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.Clusters[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Repos) > 0 { + for iNdEx := len(m.Repos) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Repos[iNdEx]) + copy(dAtA[i:], m.Repos[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.Repos[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.MaxName != nil { + i -= len(*m.MaxName) + copy(dAtA[i:], *m.MaxName) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.MaxName))) i-- dAtA[i] = 0x12 } - if m.Name != nil { - i -= len(*m.Name) - copy(dAtA[i:], *m.Name) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Name))) + if m.MinName != nil { + i -= len(*m.MinName) + copy(dAtA[i:], *m.MinName) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.MinName))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RevisionMetadataQuery) Marshal() (dAtA []byte, err error) { +func (m *ApplicationListResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4495,12 +5047,12 @@ func (m *RevisionMetadataQuery) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RevisionMetadataQuery) MarshalTo(dAtA []byte) (int, error) { +func (m *ApplicationListResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RevisionMetadataQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ApplicationListResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4509,52 +5061,38 @@ func (m *RevisionMetadataQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.VersionId != nil { - i = encodeVarintApplication(dAtA, i, uint64(*m.VersionId)) - i-- - dAtA[i] = 0x30 - } - if m.SourceIndex != nil { - i = encodeVarintApplication(dAtA, i, uint64(*m.SourceIndex)) - i-- - dAtA[i] = 0x28 - } - if m.Project != nil { - i -= len(*m.Project) - copy(dAtA[i:], *m.Project) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project))) - i-- - dAtA[i] = 0x22 - } - if m.AppNamespace != nil { - i -= len(*m.AppNamespace) - copy(dAtA[i:], *m.AppNamespace) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) - i-- - dAtA[i] = 0x1a - } - if m.Revision == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("revision") + if m.Stats == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("stats") } else { - i -= len(*m.Revision) - copy(dAtA[i:], *m.Revision) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Revision))) + { + size, err := m.Stats.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApplication(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x12 } - if m.Name == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("name") - } else { - i -= len(*m.Name) - copy(dAtA[i:], *m.Name) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Name))) - i-- - dAtA[i] = 0xa + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApplication(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *ApplicationResourceEventsQuery) Marshal() (dAtA []byte, err error) { +func (m *ApplicationListStats) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4564,12 +5102,12 @@ func (m *ApplicationResourceEventsQuery) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ApplicationResourceEventsQuery) MarshalTo(dAtA []byte) (int, error) { +func (m *ApplicationListStats) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ApplicationResourceEventsQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ApplicationListStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4578,54 +5116,95 @@ func (m *ApplicationResourceEventsQuery) MarshalToSizedBuffer(dAtA []byte) (int, i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Project != nil { - i -= len(*m.Project) - copy(dAtA[i:], *m.Project) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project))) - i-- - dAtA[i] = 0x32 + if len(m.Labels) > 0 { + for iNdEx := len(m.Labels) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Labels[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApplication(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } } - if m.AppNamespace != nil { - i -= len(*m.AppNamespace) - copy(dAtA[i:], *m.AppNamespace) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) - i-- - dAtA[i] = 0x2a + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Namespaces[iNdEx]) + copy(dAtA[i:], m.Namespaces[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.Namespaces[iNdEx]))) + i-- + dAtA[i] = 0x32 + } } - if m.ResourceUID != nil { - i -= len(*m.ResourceUID) - copy(dAtA[i:], *m.ResourceUID) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.ResourceUID))) - i-- - dAtA[i] = 0x22 + if len(m.Destinations) > 0 { + for iNdEx := len(m.Destinations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Destinations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApplication(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } } - if m.ResourceName != nil { - i -= len(*m.ResourceName) - copy(dAtA[i:], *m.ResourceName) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.ResourceName))) + if m.AutoSyncEnabledCount == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("autoSyncEnabledCount") + } else { + i = encodeVarintApplication(dAtA, i, uint64(*m.AutoSyncEnabledCount)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x20 } - if m.ResourceNamespace != nil { - i -= len(*m.ResourceNamespace) - copy(dAtA[i:], *m.ResourceNamespace) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.ResourceNamespace))) - i-- - dAtA[i] = 0x12 + if len(m.TotalByHealthStatus) > 0 { + for k := range m.TotalByHealthStatus { + v := m.TotalByHealthStatus[k] + baseI := i + i = encodeVarintApplication(dAtA, i, uint64(v)) + i-- + dAtA[i] = 0x10 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintApplication(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintApplication(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x1a + } } - if m.Name == nil { - return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("name") + if len(m.TotalBySyncStatus) > 0 { + for k := range m.TotalBySyncStatus { + v := m.TotalBySyncStatus[k] + baseI := i + i = encodeVarintApplication(dAtA, i, uint64(v)) + i-- + dAtA[i] = 0x10 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintApplication(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintApplication(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + if m.Total == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("total") } else { - i -= len(*m.Name) - copy(dAtA[i:], *m.Name) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Name))) + i = encodeVarintApplication(dAtA, i, uint64(*m.Total)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ApplicationManifestQuery) Marshal() (dAtA []byte, err error) { +func (m *ApplicationLabelStats) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -4635,12 +5214,12 @@ func (m *ApplicationManifestQuery) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ApplicationManifestQuery) MarshalTo(dAtA []byte) (int, error) { +func (m *ApplicationLabelStats) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ApplicationManifestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ApplicationLabelStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -4649,35 +5228,261 @@ func (m *ApplicationManifestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.Revisions) > 0 { - for iNdEx := len(m.Revisions) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Revisions[iNdEx]) - copy(dAtA[i:], m.Revisions[iNdEx]) - i = encodeVarintApplication(dAtA, i, uint64(len(m.Revisions[iNdEx]))) - i-- - dAtA[i] = 0x32 - } - } - if len(m.SourcePositions) > 0 { - for iNdEx := len(m.SourcePositions) - 1; iNdEx >= 0; iNdEx-- { - i = encodeVarintApplication(dAtA, i, uint64(m.SourcePositions[iNdEx])) + if len(m.Values) > 0 { + for iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Values[iNdEx]) + copy(dAtA[i:], m.Values[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.Values[iNdEx]))) i-- - dAtA[i] = 0x28 + dAtA[i] = 0x12 } } - if m.Project != nil { - i -= len(*m.Project) - copy(dAtA[i:], *m.Project) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project))) - i-- - dAtA[i] = 0x22 - } - if m.AppNamespace != nil { - i -= len(*m.AppNamespace) - copy(dAtA[i:], *m.AppNamespace) - i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) + if m.Key == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("key") + } else { + i -= len(*m.Key) + copy(dAtA[i:], *m.Key) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Key))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *NodeQuery) 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 *NodeQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NodeQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.AppNamespace != nil { + i -= len(*m.AppNamespace) + copy(dAtA[i:], *m.AppNamespace) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) + i-- + dAtA[i] = 0x12 + } + if m.Name != nil { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RevisionMetadataQuery) 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 *RevisionMetadataQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RevisionMetadataQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.VersionId != nil { + i = encodeVarintApplication(dAtA, i, uint64(*m.VersionId)) + i-- + dAtA[i] = 0x30 + } + if m.SourceIndex != nil { + i = encodeVarintApplication(dAtA, i, uint64(*m.SourceIndex)) + i-- + dAtA[i] = 0x28 + } + if m.Project != nil { + i -= len(*m.Project) + copy(dAtA[i:], *m.Project) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project))) + i-- + dAtA[i] = 0x22 + } + if m.AppNamespace != nil { + i -= len(*m.AppNamespace) + copy(dAtA[i:], *m.AppNamespace) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) + i-- + dAtA[i] = 0x1a + } + if m.Revision == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("revision") + } else { + i -= len(*m.Revision) + copy(dAtA[i:], *m.Revision) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Revision))) + i-- + dAtA[i] = 0x12 + } + if m.Name == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("name") + } else { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ApplicationResourceEventsQuery) 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 *ApplicationResourceEventsQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ApplicationResourceEventsQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Project != nil { + i -= len(*m.Project) + copy(dAtA[i:], *m.Project) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project))) + i-- + dAtA[i] = 0x32 + } + if m.AppNamespace != nil { + i -= len(*m.AppNamespace) + copy(dAtA[i:], *m.AppNamespace) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) + i-- + dAtA[i] = 0x2a + } + if m.ResourceUID != nil { + i -= len(*m.ResourceUID) + copy(dAtA[i:], *m.ResourceUID) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.ResourceUID))) + i-- + dAtA[i] = 0x22 + } + if m.ResourceName != nil { + i -= len(*m.ResourceName) + copy(dAtA[i:], *m.ResourceName) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.ResourceName))) + i-- + dAtA[i] = 0x1a + } + if m.ResourceNamespace != nil { + i -= len(*m.ResourceNamespace) + copy(dAtA[i:], *m.ResourceNamespace) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.ResourceNamespace))) + i-- + dAtA[i] = 0x12 + } + if m.Name == nil { + return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("name") + } else { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ApplicationManifestQuery) 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 *ApplicationManifestQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ApplicationManifestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Revisions) > 0 { + for iNdEx := len(m.Revisions) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Revisions[iNdEx]) + copy(dAtA[i:], m.Revisions[iNdEx]) + i = encodeVarintApplication(dAtA, i, uint64(len(m.Revisions[iNdEx]))) + i-- + dAtA[i] = 0x32 + } + } + if len(m.SourcePositions) > 0 { + for iNdEx := len(m.SourcePositions) - 1; iNdEx >= 0; iNdEx-- { + i = encodeVarintApplication(dAtA, i, uint64(m.SourcePositions[iNdEx])) + i-- + dAtA[i] = 0x28 + } + } + if m.Project != nil { + i -= len(*m.Project) + copy(dAtA[i:], *m.Project) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.Project))) + i-- + dAtA[i] = 0x22 + } + if m.AppNamespace != nil { + i -= len(*m.AppNamespace) + copy(dAtA[i:], *m.AppNamespace) + i = encodeVarintApplication(dAtA, i, uint64(len(*m.AppNamespace))) + i-- + dAtA[i] = 0x1a } if m.Revision != nil { i -= len(*m.Revision) @@ -6883,35 +7688,201 @@ func (m *ApplicationQuery) Size() (n int) { n += 1 + l + sovApplication(uint64(l)) } } + if m.Options != nil { + l = m.Options.Size() + n += 1 + l + sovApplication(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } return n } -func (m *NodeQuery) Size() (n int) { +func (m *ApplicationListOptions) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Name != nil { - l = len(*m.Name) + if m.MinName != nil { + l = len(*m.MinName) n += 1 + l + sovApplication(uint64(l)) } - if m.AppNamespace != nil { - l = len(*m.AppNamespace) + if m.MaxName != nil { + l = len(*m.MaxName) n += 1 + l + sovApplication(uint64(l)) } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + if len(m.Repos) > 0 { + for _, s := range m.Repos { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } } - return n -} - -func (m *RevisionMetadataQuery) Size() (n int) { - if m == nil { - return 0 + if len(m.Clusters) > 0 { + for _, s := range m.Clusters { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } + } + if len(m.Namespaces) > 0 { + for _, s := range m.Namespaces { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } + } + if m.AutoSyncEnabled != nil { + n += 2 + } + if len(m.SyncStatuses) > 0 { + for _, s := range m.SyncStatuses { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } + } + if len(m.HealthStatuses) > 0 { + for _, s := range m.HealthStatuses { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } + } + if m.Search != nil { + l = len(*m.Search) + n += 1 + l + sovApplication(uint64(l)) + } + if m.Offset != nil { + n += 1 + sovApplication(uint64(*m.Offset)) + } + if m.Limit != nil { + n += 1 + sovApplication(uint64(*m.Limit)) + } + if m.SortBy != nil { + n += 1 + sovApplication(uint64(*m.SortBy)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ApplicationListResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovApplication(uint64(l)) + } + } + if m.Stats != nil { + l = m.Stats.Size() + n += 1 + l + sovApplication(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ApplicationListStats) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Total != nil { + n += 1 + sovApplication(uint64(*m.Total)) + } + if len(m.TotalBySyncStatus) > 0 { + for k, v := range m.TotalBySyncStatus { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApplication(uint64(len(k))) + 1 + sovApplication(uint64(v)) + n += mapEntrySize + 1 + sovApplication(uint64(mapEntrySize)) + } + } + if len(m.TotalByHealthStatus) > 0 { + for k, v := range m.TotalByHealthStatus { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovApplication(uint64(len(k))) + 1 + sovApplication(uint64(v)) + n += mapEntrySize + 1 + sovApplication(uint64(mapEntrySize)) + } + } + if m.AutoSyncEnabledCount != nil { + n += 1 + sovApplication(uint64(*m.AutoSyncEnabledCount)) + } + if len(m.Destinations) > 0 { + for _, e := range m.Destinations { + l = e.Size() + n += 1 + l + sovApplication(uint64(l)) + } + } + if len(m.Namespaces) > 0 { + for _, s := range m.Namespaces { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } + } + if len(m.Labels) > 0 { + for _, e := range m.Labels { + l = e.Size() + n += 1 + l + sovApplication(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ApplicationLabelStats) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Key != nil { + l = len(*m.Key) + n += 1 + l + sovApplication(uint64(l)) + } + if len(m.Values) > 0 { + for _, s := range m.Values { + l = len(s) + n += 1 + l + sovApplication(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *NodeQuery) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovApplication(uint64(l)) + } + if m.AppNamespace != nil { + l = len(*m.AppNamespace) + n += 1 + l + sovApplication(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RevisionMetadataQuery) Size() (n int) { + if m == nil { + return 0 } var l int _ = l @@ -8281,6 +9252,42 @@ func (m *ApplicationQuery) Unmarshal(dAtA []byte) error { } m.Project = append(m.Project, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Options", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Options == nil { + m.Options = &ApplicationListOptions{} + } + if err := m.Options.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApplication(dAtA[iNdEx:]) @@ -8303,6 +9310,1070 @@ func (m *ApplicationQuery) Unmarshal(dAtA []byte) error { } return nil } +func (m *ApplicationListOptions) 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 ErrIntOverflowApplication + } + 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: ApplicationListOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationListOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.MinName = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.MaxName = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Repos", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Repos = append(m.Repos, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Clusters", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Clusters = append(m.Clusters, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoSyncEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.AutoSyncEnabled = &b + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SyncStatuses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SyncStatuses = append(m.SyncStatuses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HealthStatuses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HealthStatuses = append(m.HealthStatuses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Search", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Search = &s + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Offset", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Offset = &v + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Limit = &v + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SortBy", wireType) + } + var v ApplicationSortBy + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= ApplicationSortBy(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SortBy = &v + default: + iNdEx = preIndex + skippy, err := skipApplication(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApplication + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplicationListResponse) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + 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: ApplicationListResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationListResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, &v1alpha1.Application{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Stats == nil { + m.Stats = &ApplicationListStats{} + } + if err := m.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + hasFields[0] |= uint64(0x00000001) + default: + iNdEx = preIndex + skippy, err := skipApplication(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApplication + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("stats") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplicationListStats) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + 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: ApplicationListStats: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationListStats: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Total = &v + hasFields[0] |= uint64(0x00000001) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalBySyncStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TotalBySyncStatus == nil { + m.TotalBySyncStatus = make(map[string]int64) + } + var mapkey string + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApplication + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthApplication + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipApplication(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApplication + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.TotalBySyncStatus[mapkey] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalByHealthStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TotalByHealthStatus == nil { + m.TotalByHealthStatus = make(map[string]int64) + } + var mapkey string + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthApplication + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthApplication + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipApplication(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApplication + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.TotalByHealthStatus[mapkey] = mapvalue + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoSyncEnabledCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AutoSyncEnabledCount = &v + hasFields[0] |= uint64(0x00000002) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Destinations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Destinations = append(m.Destinations, &v1alpha1.ApplicationDestination{}) + if err := m.Destinations[len(m.Destinations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Labels = append(m.Labels, &ApplicationLabelStats{}) + if err := m.Labels[len(m.Labels)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApplication(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApplication + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("total") + } + if hasFields[0]&uint64(0x00000002) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("autoSyncEnabledCount") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplicationLabelStats) Unmarshal(dAtA []byte) error { + var hasFields [1]uint64 + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + 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: ApplicationLabelStats: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationLabelStats: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Key = &s + iNdEx = postIndex + hasFields[0] |= uint64(0x00000001) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApplication + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApplication + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApplication + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApplication(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApplication + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + if hasFields[0]&uint64(0x00000001) == 0 { + return github_com_gogo_protobuf_proto.NewRequiredNotSetError("key") + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *NodeQuery) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index aa5cb17ba1825..832228cfe9898 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -319,10 +319,38 @@ func (m *ApplicationDestinationServiceAccount) XXX_DiscardUnknown() { var xxx_messageInfo_ApplicationDestinationServiceAccount proto.InternalMessageInfo +func (m *ApplicationLabelStats) Reset() { *m = ApplicationLabelStats{} } +func (*ApplicationLabelStats) ProtoMessage() {} +func (*ApplicationLabelStats) Descriptor() ([]byte, []int) { + return fileDescriptor_c078c3c476799f44, []int{10} +} +func (m *ApplicationLabelStats) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplicationLabelStats) 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 *ApplicationLabelStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationLabelStats.Merge(m, src) +} +func (m *ApplicationLabelStats) XXX_Size() int { + return m.Size() +} +func (m *ApplicationLabelStats) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationLabelStats.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationLabelStats proto.InternalMessageInfo + func (m *ApplicationList) Reset() { *m = ApplicationList{} } func (*ApplicationList) ProtoMessage() {} func (*ApplicationList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{10} + return fileDescriptor_c078c3c476799f44, []int{11} } func (m *ApplicationList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -347,10 +375,38 @@ func (m *ApplicationList) XXX_DiscardUnknown() { var xxx_messageInfo_ApplicationList proto.InternalMessageInfo +func (m *ApplicationListStats) Reset() { *m = ApplicationListStats{} } +func (*ApplicationListStats) ProtoMessage() {} +func (*ApplicationListStats) Descriptor() ([]byte, []int) { + return fileDescriptor_c078c3c476799f44, []int{12} +} +func (m *ApplicationListStats) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ApplicationListStats) 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 *ApplicationListStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationListStats.Merge(m, src) +} +func (m *ApplicationListStats) XXX_Size() int { + return m.Size() +} +func (m *ApplicationListStats) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationListStats.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationListStats proto.InternalMessageInfo + func (m *ApplicationMatchExpression) Reset() { *m = ApplicationMatchExpression{} } func (*ApplicationMatchExpression) ProtoMessage() {} func (*ApplicationMatchExpression) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{11} + return fileDescriptor_c078c3c476799f44, []int{13} } func (m *ApplicationMatchExpression) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -378,7 +434,7 @@ var xxx_messageInfo_ApplicationMatchExpression proto.InternalMessageInfo func (m *ApplicationPreservedFields) Reset() { *m = ApplicationPreservedFields{} } func (*ApplicationPreservedFields) ProtoMessage() {} func (*ApplicationPreservedFields) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{12} + return fileDescriptor_c078c3c476799f44, []int{14} } func (m *ApplicationPreservedFields) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -406,7 +462,7 @@ var xxx_messageInfo_ApplicationPreservedFields proto.InternalMessageInfo func (m *ApplicationSet) Reset() { *m = ApplicationSet{} } func (*ApplicationSet) ProtoMessage() {} func (*ApplicationSet) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{13} + return fileDescriptor_c078c3c476799f44, []int{15} } func (m *ApplicationSet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -434,7 +490,7 @@ var xxx_messageInfo_ApplicationSet proto.InternalMessageInfo func (m *ApplicationSetApplicationStatus) Reset() { *m = ApplicationSetApplicationStatus{} } func (*ApplicationSetApplicationStatus) ProtoMessage() {} func (*ApplicationSetApplicationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{14} + return fileDescriptor_c078c3c476799f44, []int{16} } func (m *ApplicationSetApplicationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -462,7 +518,7 @@ var xxx_messageInfo_ApplicationSetApplicationStatus proto.InternalMessageInfo func (m *ApplicationSetCondition) Reset() { *m = ApplicationSetCondition{} } func (*ApplicationSetCondition) ProtoMessage() {} func (*ApplicationSetCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{15} + return fileDescriptor_c078c3c476799f44, []int{17} } func (m *ApplicationSetCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -490,7 +546,7 @@ var xxx_messageInfo_ApplicationSetCondition proto.InternalMessageInfo func (m *ApplicationSetGenerator) Reset() { *m = ApplicationSetGenerator{} } func (*ApplicationSetGenerator) ProtoMessage() {} func (*ApplicationSetGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{16} + return fileDescriptor_c078c3c476799f44, []int{18} } func (m *ApplicationSetGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -518,7 +574,7 @@ var xxx_messageInfo_ApplicationSetGenerator proto.InternalMessageInfo func (m *ApplicationSetList) Reset() { *m = ApplicationSetList{} } func (*ApplicationSetList) ProtoMessage() {} func (*ApplicationSetList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{17} + return fileDescriptor_c078c3c476799f44, []int{19} } func (m *ApplicationSetList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -546,7 +602,7 @@ var xxx_messageInfo_ApplicationSetList proto.InternalMessageInfo func (m *ApplicationSetNestedGenerator) Reset() { *m = ApplicationSetNestedGenerator{} } func (*ApplicationSetNestedGenerator) ProtoMessage() {} func (*ApplicationSetNestedGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{18} + return fileDescriptor_c078c3c476799f44, []int{20} } func (m *ApplicationSetNestedGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -576,7 +632,7 @@ func (m *ApplicationSetResourceIgnoreDifferences) Reset() { } func (*ApplicationSetResourceIgnoreDifferences) ProtoMessage() {} func (*ApplicationSetResourceIgnoreDifferences) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{19} + return fileDescriptor_c078c3c476799f44, []int{21} } func (m *ApplicationSetResourceIgnoreDifferences) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -604,7 +660,7 @@ var xxx_messageInfo_ApplicationSetResourceIgnoreDifferences proto.InternalMessag func (m *ApplicationSetRolloutStep) Reset() { *m = ApplicationSetRolloutStep{} } func (*ApplicationSetRolloutStep) ProtoMessage() {} func (*ApplicationSetRolloutStep) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{20} + return fileDescriptor_c078c3c476799f44, []int{22} } func (m *ApplicationSetRolloutStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -632,7 +688,7 @@ var xxx_messageInfo_ApplicationSetRolloutStep proto.InternalMessageInfo func (m *ApplicationSetRolloutStrategy) Reset() { *m = ApplicationSetRolloutStrategy{} } func (*ApplicationSetRolloutStrategy) ProtoMessage() {} func (*ApplicationSetRolloutStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{21} + return fileDescriptor_c078c3c476799f44, []int{23} } func (m *ApplicationSetRolloutStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -660,7 +716,7 @@ var xxx_messageInfo_ApplicationSetRolloutStrategy proto.InternalMessageInfo func (m *ApplicationSetSpec) Reset() { *m = ApplicationSetSpec{} } func (*ApplicationSetSpec) ProtoMessage() {} func (*ApplicationSetSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{22} + return fileDescriptor_c078c3c476799f44, []int{24} } func (m *ApplicationSetSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -688,7 +744,7 @@ var xxx_messageInfo_ApplicationSetSpec proto.InternalMessageInfo func (m *ApplicationSetStatus) Reset() { *m = ApplicationSetStatus{} } func (*ApplicationSetStatus) ProtoMessage() {} func (*ApplicationSetStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{23} + return fileDescriptor_c078c3c476799f44, []int{25} } func (m *ApplicationSetStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -716,7 +772,7 @@ var xxx_messageInfo_ApplicationSetStatus proto.InternalMessageInfo func (m *ApplicationSetStrategy) Reset() { *m = ApplicationSetStrategy{} } func (*ApplicationSetStrategy) ProtoMessage() {} func (*ApplicationSetStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{24} + return fileDescriptor_c078c3c476799f44, []int{26} } func (m *ApplicationSetStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -744,7 +800,7 @@ var xxx_messageInfo_ApplicationSetStrategy proto.InternalMessageInfo func (m *ApplicationSetSyncPolicy) Reset() { *m = ApplicationSetSyncPolicy{} } func (*ApplicationSetSyncPolicy) ProtoMessage() {} func (*ApplicationSetSyncPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{25} + return fileDescriptor_c078c3c476799f44, []int{27} } func (m *ApplicationSetSyncPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -772,7 +828,7 @@ var xxx_messageInfo_ApplicationSetSyncPolicy proto.InternalMessageInfo func (m *ApplicationSetTemplate) Reset() { *m = ApplicationSetTemplate{} } func (*ApplicationSetTemplate) ProtoMessage() {} func (*ApplicationSetTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{26} + return fileDescriptor_c078c3c476799f44, []int{28} } func (m *ApplicationSetTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -800,7 +856,7 @@ var xxx_messageInfo_ApplicationSetTemplate proto.InternalMessageInfo func (m *ApplicationSetTemplateMeta) Reset() { *m = ApplicationSetTemplateMeta{} } func (*ApplicationSetTemplateMeta) ProtoMessage() {} func (*ApplicationSetTemplateMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{27} + return fileDescriptor_c078c3c476799f44, []int{29} } func (m *ApplicationSetTemplateMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -828,7 +884,7 @@ var xxx_messageInfo_ApplicationSetTemplateMeta proto.InternalMessageInfo func (m *ApplicationSetTerminalGenerator) Reset() { *m = ApplicationSetTerminalGenerator{} } func (*ApplicationSetTerminalGenerator) ProtoMessage() {} func (*ApplicationSetTerminalGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{28} + return fileDescriptor_c078c3c476799f44, []int{30} } func (m *ApplicationSetTerminalGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -856,7 +912,7 @@ var xxx_messageInfo_ApplicationSetTerminalGenerator proto.InternalMessageInfo func (m *ApplicationSetTree) Reset() { *m = ApplicationSetTree{} } func (*ApplicationSetTree) ProtoMessage() {} func (*ApplicationSetTree) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{29} + return fileDescriptor_c078c3c476799f44, []int{31} } func (m *ApplicationSetTree) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -884,7 +940,7 @@ var xxx_messageInfo_ApplicationSetTree proto.InternalMessageInfo func (m *ApplicationSource) Reset() { *m = ApplicationSource{} } func (*ApplicationSource) ProtoMessage() {} func (*ApplicationSource) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{30} + return fileDescriptor_c078c3c476799f44, []int{32} } func (m *ApplicationSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -912,7 +968,7 @@ var xxx_messageInfo_ApplicationSource proto.InternalMessageInfo func (m *ApplicationSourceDirectory) Reset() { *m = ApplicationSourceDirectory{} } func (*ApplicationSourceDirectory) ProtoMessage() {} func (*ApplicationSourceDirectory) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{31} + return fileDescriptor_c078c3c476799f44, []int{33} } func (m *ApplicationSourceDirectory) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -940,7 +996,7 @@ var xxx_messageInfo_ApplicationSourceDirectory proto.InternalMessageInfo func (m *ApplicationSourceHelm) Reset() { *m = ApplicationSourceHelm{} } func (*ApplicationSourceHelm) ProtoMessage() {} func (*ApplicationSourceHelm) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{32} + return fileDescriptor_c078c3c476799f44, []int{34} } func (m *ApplicationSourceHelm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -968,7 +1024,7 @@ var xxx_messageInfo_ApplicationSourceHelm proto.InternalMessageInfo func (m *ApplicationSourceJsonnet) Reset() { *m = ApplicationSourceJsonnet{} } func (*ApplicationSourceJsonnet) ProtoMessage() {} func (*ApplicationSourceJsonnet) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{33} + return fileDescriptor_c078c3c476799f44, []int{35} } func (m *ApplicationSourceJsonnet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -996,7 +1052,7 @@ var xxx_messageInfo_ApplicationSourceJsonnet proto.InternalMessageInfo func (m *ApplicationSourceKustomize) Reset() { *m = ApplicationSourceKustomize{} } func (*ApplicationSourceKustomize) ProtoMessage() {} func (*ApplicationSourceKustomize) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{34} + return fileDescriptor_c078c3c476799f44, []int{36} } func (m *ApplicationSourceKustomize) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1024,7 +1080,7 @@ var xxx_messageInfo_ApplicationSourceKustomize proto.InternalMessageInfo func (m *ApplicationSourcePlugin) Reset() { *m = ApplicationSourcePlugin{} } func (*ApplicationSourcePlugin) ProtoMessage() {} func (*ApplicationSourcePlugin) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{35} + return fileDescriptor_c078c3c476799f44, []int{37} } func (m *ApplicationSourcePlugin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1052,7 +1108,7 @@ var xxx_messageInfo_ApplicationSourcePlugin proto.InternalMessageInfo func (m *ApplicationSourcePluginParameter) Reset() { *m = ApplicationSourcePluginParameter{} } func (*ApplicationSourcePluginParameter) ProtoMessage() {} func (*ApplicationSourcePluginParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{36} + return fileDescriptor_c078c3c476799f44, []int{38} } func (m *ApplicationSourcePluginParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1080,7 +1136,7 @@ var xxx_messageInfo_ApplicationSourcePluginParameter proto.InternalMessageInfo func (m *ApplicationSpec) Reset() { *m = ApplicationSpec{} } func (*ApplicationSpec) ProtoMessage() {} func (*ApplicationSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{37} + return fileDescriptor_c078c3c476799f44, []int{39} } func (m *ApplicationSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1108,7 +1164,7 @@ var xxx_messageInfo_ApplicationSpec proto.InternalMessageInfo func (m *ApplicationStatus) Reset() { *m = ApplicationStatus{} } func (*ApplicationStatus) ProtoMessage() {} func (*ApplicationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{38} + return fileDescriptor_c078c3c476799f44, []int{40} } func (m *ApplicationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1136,7 +1192,7 @@ var xxx_messageInfo_ApplicationStatus proto.InternalMessageInfo func (m *ApplicationSummary) Reset() { *m = ApplicationSummary{} } func (*ApplicationSummary) ProtoMessage() {} func (*ApplicationSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{39} + return fileDescriptor_c078c3c476799f44, []int{41} } func (m *ApplicationSummary) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1164,7 +1220,7 @@ var xxx_messageInfo_ApplicationSummary proto.InternalMessageInfo func (m *ApplicationTree) Reset() { *m = ApplicationTree{} } func (*ApplicationTree) ProtoMessage() {} func (*ApplicationTree) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{40} + return fileDescriptor_c078c3c476799f44, []int{42} } func (m *ApplicationTree) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1192,7 +1248,7 @@ var xxx_messageInfo_ApplicationTree proto.InternalMessageInfo func (m *ApplicationWatchEvent) Reset() { *m = ApplicationWatchEvent{} } func (*ApplicationWatchEvent) ProtoMessage() {} func (*ApplicationWatchEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{41} + return fileDescriptor_c078c3c476799f44, []int{43} } func (m *ApplicationWatchEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1220,7 +1276,7 @@ var xxx_messageInfo_ApplicationWatchEvent proto.InternalMessageInfo func (m *Backoff) Reset() { *m = Backoff{} } func (*Backoff) ProtoMessage() {} func (*Backoff) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{42} + return fileDescriptor_c078c3c476799f44, []int{44} } func (m *Backoff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1248,7 +1304,7 @@ var xxx_messageInfo_Backoff proto.InternalMessageInfo func (m *BasicAuthBitbucketServer) Reset() { *m = BasicAuthBitbucketServer{} } func (*BasicAuthBitbucketServer) ProtoMessage() {} func (*BasicAuthBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{43} + return fileDescriptor_c078c3c476799f44, []int{45} } func (m *BasicAuthBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1276,7 +1332,7 @@ var xxx_messageInfo_BasicAuthBitbucketServer proto.InternalMessageInfo func (m *BearerTokenBitbucket) Reset() { *m = BearerTokenBitbucket{} } func (*BearerTokenBitbucket) ProtoMessage() {} func (*BearerTokenBitbucket) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{44} + return fileDescriptor_c078c3c476799f44, []int{46} } func (m *BearerTokenBitbucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1304,7 +1360,7 @@ var xxx_messageInfo_BearerTokenBitbucket proto.InternalMessageInfo func (m *BearerTokenBitbucketCloud) Reset() { *m = BearerTokenBitbucketCloud{} } func (*BearerTokenBitbucketCloud) ProtoMessage() {} func (*BearerTokenBitbucketCloud) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{45} + return fileDescriptor_c078c3c476799f44, []int{47} } func (m *BearerTokenBitbucketCloud) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1332,7 +1388,7 @@ var xxx_messageInfo_BearerTokenBitbucketCloud proto.InternalMessageInfo func (m *ChartDetails) Reset() { *m = ChartDetails{} } func (*ChartDetails) ProtoMessage() {} func (*ChartDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{46} + return fileDescriptor_c078c3c476799f44, []int{48} } func (m *ChartDetails) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1360,7 +1416,7 @@ var xxx_messageInfo_ChartDetails proto.InternalMessageInfo func (m *Cluster) Reset() { *m = Cluster{} } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{47} + return fileDescriptor_c078c3c476799f44, []int{49} } func (m *Cluster) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1388,7 +1444,7 @@ var xxx_messageInfo_Cluster proto.InternalMessageInfo func (m *ClusterCacheInfo) Reset() { *m = ClusterCacheInfo{} } func (*ClusterCacheInfo) ProtoMessage() {} func (*ClusterCacheInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{48} + return fileDescriptor_c078c3c476799f44, []int{50} } func (m *ClusterCacheInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1416,7 +1472,7 @@ var xxx_messageInfo_ClusterCacheInfo proto.InternalMessageInfo func (m *ClusterConfig) Reset() { *m = ClusterConfig{} } func (*ClusterConfig) ProtoMessage() {} func (*ClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{49} + return fileDescriptor_c078c3c476799f44, []int{51} } func (m *ClusterConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1444,7 +1500,7 @@ var xxx_messageInfo_ClusterConfig proto.InternalMessageInfo func (m *ClusterGenerator) Reset() { *m = ClusterGenerator{} } func (*ClusterGenerator) ProtoMessage() {} func (*ClusterGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{50} + return fileDescriptor_c078c3c476799f44, []int{52} } func (m *ClusterGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1472,7 +1528,7 @@ var xxx_messageInfo_ClusterGenerator proto.InternalMessageInfo func (m *ClusterInfo) Reset() { *m = ClusterInfo{} } func (*ClusterInfo) ProtoMessage() {} func (*ClusterInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{51} + return fileDescriptor_c078c3c476799f44, []int{53} } func (m *ClusterInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1500,7 +1556,7 @@ var xxx_messageInfo_ClusterInfo proto.InternalMessageInfo func (m *ClusterList) Reset() { *m = ClusterList{} } func (*ClusterList) ProtoMessage() {} func (*ClusterList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{52} + return fileDescriptor_c078c3c476799f44, []int{54} } func (m *ClusterList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1528,7 +1584,7 @@ var xxx_messageInfo_ClusterList proto.InternalMessageInfo func (m *Command) Reset() { *m = Command{} } func (*Command) ProtoMessage() {} func (*Command) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{53} + return fileDescriptor_c078c3c476799f44, []int{55} } func (m *Command) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1556,7 +1612,7 @@ var xxx_messageInfo_Command proto.InternalMessageInfo func (m *CommitMetadata) Reset() { *m = CommitMetadata{} } func (*CommitMetadata) ProtoMessage() {} func (*CommitMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{54} + return fileDescriptor_c078c3c476799f44, []int{56} } func (m *CommitMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1584,7 +1640,7 @@ var xxx_messageInfo_CommitMetadata proto.InternalMessageInfo func (m *ComparedTo) Reset() { *m = ComparedTo{} } func (*ComparedTo) ProtoMessage() {} func (*ComparedTo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{55} + return fileDescriptor_c078c3c476799f44, []int{57} } func (m *ComparedTo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1612,7 +1668,7 @@ var xxx_messageInfo_ComparedTo proto.InternalMessageInfo func (m *ComponentParameter) Reset() { *m = ComponentParameter{} } func (*ComponentParameter) ProtoMessage() {} func (*ComponentParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{56} + return fileDescriptor_c078c3c476799f44, []int{58} } func (m *ComponentParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1640,7 +1696,7 @@ var xxx_messageInfo_ComponentParameter proto.InternalMessageInfo func (m *ConfigManagementPlugin) Reset() { *m = ConfigManagementPlugin{} } func (*ConfigManagementPlugin) ProtoMessage() {} func (*ConfigManagementPlugin) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{57} + return fileDescriptor_c078c3c476799f44, []int{59} } func (m *ConfigManagementPlugin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1668,7 +1724,7 @@ var xxx_messageInfo_ConfigManagementPlugin proto.InternalMessageInfo func (m *ConfigMapKeyRef) Reset() { *m = ConfigMapKeyRef{} } func (*ConfigMapKeyRef) ProtoMessage() {} func (*ConfigMapKeyRef) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{58} + return fileDescriptor_c078c3c476799f44, []int{60} } func (m *ConfigMapKeyRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1696,7 +1752,7 @@ var xxx_messageInfo_ConfigMapKeyRef proto.InternalMessageInfo func (m *ConnectionState) Reset() { *m = ConnectionState{} } func (*ConnectionState) ProtoMessage() {} func (*ConnectionState) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{59} + return fileDescriptor_c078c3c476799f44, []int{61} } func (m *ConnectionState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1724,7 +1780,7 @@ var xxx_messageInfo_ConnectionState proto.InternalMessageInfo func (m *DrySource) Reset() { *m = DrySource{} } func (*DrySource) ProtoMessage() {} func (*DrySource) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{60} + return fileDescriptor_c078c3c476799f44, []int{62} } func (m *DrySource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1752,7 +1808,7 @@ var xxx_messageInfo_DrySource proto.InternalMessageInfo func (m *DuckTypeGenerator) Reset() { *m = DuckTypeGenerator{} } func (*DuckTypeGenerator) ProtoMessage() {} func (*DuckTypeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{61} + return fileDescriptor_c078c3c476799f44, []int{63} } func (m *DuckTypeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1780,7 +1836,7 @@ var xxx_messageInfo_DuckTypeGenerator proto.InternalMessageInfo func (m *EnvEntry) Reset() { *m = EnvEntry{} } func (*EnvEntry) ProtoMessage() {} func (*EnvEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{62} + return fileDescriptor_c078c3c476799f44, []int{64} } func (m *EnvEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1808,7 +1864,7 @@ var xxx_messageInfo_EnvEntry proto.InternalMessageInfo func (m *ErrApplicationNotAllowedToUseProject) Reset() { *m = ErrApplicationNotAllowedToUseProject{} } func (*ErrApplicationNotAllowedToUseProject) ProtoMessage() {} func (*ErrApplicationNotAllowedToUseProject) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{63} + return fileDescriptor_c078c3c476799f44, []int{65} } func (m *ErrApplicationNotAllowedToUseProject) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1836,7 +1892,7 @@ var xxx_messageInfo_ErrApplicationNotAllowedToUseProject proto.InternalMessageIn func (m *ExecProviderConfig) Reset() { *m = ExecProviderConfig{} } func (*ExecProviderConfig) ProtoMessage() {} func (*ExecProviderConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{64} + return fileDescriptor_c078c3c476799f44, []int{66} } func (m *ExecProviderConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1864,7 +1920,7 @@ var xxx_messageInfo_ExecProviderConfig proto.InternalMessageInfo func (m *GitDirectoryGeneratorItem) Reset() { *m = GitDirectoryGeneratorItem{} } func (*GitDirectoryGeneratorItem) ProtoMessage() {} func (*GitDirectoryGeneratorItem) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{65} + return fileDescriptor_c078c3c476799f44, []int{67} } func (m *GitDirectoryGeneratorItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1892,7 +1948,7 @@ var xxx_messageInfo_GitDirectoryGeneratorItem proto.InternalMessageInfo func (m *GitFileGeneratorItem) Reset() { *m = GitFileGeneratorItem{} } func (*GitFileGeneratorItem) ProtoMessage() {} func (*GitFileGeneratorItem) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{66} + return fileDescriptor_c078c3c476799f44, []int{68} } func (m *GitFileGeneratorItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1920,7 +1976,7 @@ var xxx_messageInfo_GitFileGeneratorItem proto.InternalMessageInfo func (m *GitGenerator) Reset() { *m = GitGenerator{} } func (*GitGenerator) ProtoMessage() {} func (*GitGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{67} + return fileDescriptor_c078c3c476799f44, []int{69} } func (m *GitGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1948,7 +2004,7 @@ var xxx_messageInfo_GitGenerator proto.InternalMessageInfo func (m *GnuPGPublicKey) Reset() { *m = GnuPGPublicKey{} } func (*GnuPGPublicKey) ProtoMessage() {} func (*GnuPGPublicKey) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{68} + return fileDescriptor_c078c3c476799f44, []int{70} } func (m *GnuPGPublicKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1976,7 +2032,7 @@ var xxx_messageInfo_GnuPGPublicKey proto.InternalMessageInfo func (m *GnuPGPublicKeyList) Reset() { *m = GnuPGPublicKeyList{} } func (*GnuPGPublicKeyList) ProtoMessage() {} func (*GnuPGPublicKeyList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{69} + return fileDescriptor_c078c3c476799f44, []int{71} } func (m *GnuPGPublicKeyList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2004,7 +2060,7 @@ var xxx_messageInfo_GnuPGPublicKeyList proto.InternalMessageInfo func (m *HealthStatus) Reset() { *m = HealthStatus{} } func (*HealthStatus) ProtoMessage() {} func (*HealthStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{70} + return fileDescriptor_c078c3c476799f44, []int{72} } func (m *HealthStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2032,7 +2088,7 @@ var xxx_messageInfo_HealthStatus proto.InternalMessageInfo func (m *HelmFileParameter) Reset() { *m = HelmFileParameter{} } func (*HelmFileParameter) ProtoMessage() {} func (*HelmFileParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{71} + return fileDescriptor_c078c3c476799f44, []int{73} } func (m *HelmFileParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2060,7 +2116,7 @@ var xxx_messageInfo_HelmFileParameter proto.InternalMessageInfo func (m *HelmOptions) Reset() { *m = HelmOptions{} } func (*HelmOptions) ProtoMessage() {} func (*HelmOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{72} + return fileDescriptor_c078c3c476799f44, []int{74} } func (m *HelmOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2088,7 +2144,7 @@ var xxx_messageInfo_HelmOptions proto.InternalMessageInfo func (m *HelmParameter) Reset() { *m = HelmParameter{} } func (*HelmParameter) ProtoMessage() {} func (*HelmParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{73} + return fileDescriptor_c078c3c476799f44, []int{75} } func (m *HelmParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2116,7 +2172,7 @@ var xxx_messageInfo_HelmParameter proto.InternalMessageInfo func (m *HostInfo) Reset() { *m = HostInfo{} } func (*HostInfo) ProtoMessage() {} func (*HostInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{74} + return fileDescriptor_c078c3c476799f44, []int{76} } func (m *HostInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2144,7 +2200,7 @@ var xxx_messageInfo_HostInfo proto.InternalMessageInfo func (m *HostResourceInfo) Reset() { *m = HostResourceInfo{} } func (*HostResourceInfo) ProtoMessage() {} func (*HostResourceInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{75} + return fileDescriptor_c078c3c476799f44, []int{77} } func (m *HostResourceInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2172,7 +2228,7 @@ var xxx_messageInfo_HostResourceInfo proto.InternalMessageInfo func (m *HydrateOperation) Reset() { *m = HydrateOperation{} } func (*HydrateOperation) ProtoMessage() {} func (*HydrateOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{76} + return fileDescriptor_c078c3c476799f44, []int{78} } func (m *HydrateOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2200,7 +2256,7 @@ var xxx_messageInfo_HydrateOperation proto.InternalMessageInfo func (m *HydrateTo) Reset() { *m = HydrateTo{} } func (*HydrateTo) ProtoMessage() {} func (*HydrateTo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{77} + return fileDescriptor_c078c3c476799f44, []int{79} } func (m *HydrateTo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2228,7 +2284,7 @@ var xxx_messageInfo_HydrateTo proto.InternalMessageInfo func (m *Info) Reset() { *m = Info{} } func (*Info) ProtoMessage() {} func (*Info) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{78} + return fileDescriptor_c078c3c476799f44, []int{80} } func (m *Info) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2256,7 +2312,7 @@ var xxx_messageInfo_Info proto.InternalMessageInfo func (m *InfoItem) Reset() { *m = InfoItem{} } func (*InfoItem) ProtoMessage() {} func (*InfoItem) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{79} + return fileDescriptor_c078c3c476799f44, []int{81} } func (m *InfoItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2284,7 +2340,7 @@ var xxx_messageInfo_InfoItem proto.InternalMessageInfo func (m *JWTToken) Reset() { *m = JWTToken{} } func (*JWTToken) ProtoMessage() {} func (*JWTToken) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{80} + return fileDescriptor_c078c3c476799f44, []int{82} } func (m *JWTToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2312,7 +2368,7 @@ var xxx_messageInfo_JWTToken proto.InternalMessageInfo func (m *JWTTokens) Reset() { *m = JWTTokens{} } func (*JWTTokens) ProtoMessage() {} func (*JWTTokens) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{81} + return fileDescriptor_c078c3c476799f44, []int{83} } func (m *JWTTokens) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2340,7 +2396,7 @@ var xxx_messageInfo_JWTTokens proto.InternalMessageInfo func (m *JsonnetVar) Reset() { *m = JsonnetVar{} } func (*JsonnetVar) ProtoMessage() {} func (*JsonnetVar) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{82} + return fileDescriptor_c078c3c476799f44, []int{84} } func (m *JsonnetVar) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2368,7 +2424,7 @@ var xxx_messageInfo_JsonnetVar proto.InternalMessageInfo func (m *KnownTypeField) Reset() { *m = KnownTypeField{} } func (*KnownTypeField) ProtoMessage() {} func (*KnownTypeField) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{83} + return fileDescriptor_c078c3c476799f44, []int{85} } func (m *KnownTypeField) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2396,7 +2452,7 @@ var xxx_messageInfo_KnownTypeField proto.InternalMessageInfo func (m *KustomizeGvk) Reset() { *m = KustomizeGvk{} } func (*KustomizeGvk) ProtoMessage() {} func (*KustomizeGvk) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{84} + return fileDescriptor_c078c3c476799f44, []int{86} } func (m *KustomizeGvk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2424,7 +2480,7 @@ var xxx_messageInfo_KustomizeGvk proto.InternalMessageInfo func (m *KustomizeOptions) Reset() { *m = KustomizeOptions{} } func (*KustomizeOptions) ProtoMessage() {} func (*KustomizeOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{85} + return fileDescriptor_c078c3c476799f44, []int{87} } func (m *KustomizeOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2452,7 +2508,7 @@ var xxx_messageInfo_KustomizeOptions proto.InternalMessageInfo func (m *KustomizePatch) Reset() { *m = KustomizePatch{} } func (*KustomizePatch) ProtoMessage() {} func (*KustomizePatch) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{86} + return fileDescriptor_c078c3c476799f44, []int{88} } func (m *KustomizePatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2480,7 +2536,7 @@ var xxx_messageInfo_KustomizePatch proto.InternalMessageInfo func (m *KustomizeReplica) Reset() { *m = KustomizeReplica{} } func (*KustomizeReplica) ProtoMessage() {} func (*KustomizeReplica) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{87} + return fileDescriptor_c078c3c476799f44, []int{89} } func (m *KustomizeReplica) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2508,7 +2564,7 @@ var xxx_messageInfo_KustomizeReplica proto.InternalMessageInfo func (m *KustomizeResId) Reset() { *m = KustomizeResId{} } func (*KustomizeResId) ProtoMessage() {} func (*KustomizeResId) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{88} + return fileDescriptor_c078c3c476799f44, []int{90} } func (m *KustomizeResId) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2536,7 +2592,7 @@ var xxx_messageInfo_KustomizeResId proto.InternalMessageInfo func (m *KustomizeSelector) Reset() { *m = KustomizeSelector{} } func (*KustomizeSelector) ProtoMessage() {} func (*KustomizeSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{89} + return fileDescriptor_c078c3c476799f44, []int{91} } func (m *KustomizeSelector) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2564,7 +2620,7 @@ var xxx_messageInfo_KustomizeSelector proto.InternalMessageInfo func (m *ListGenerator) Reset() { *m = ListGenerator{} } func (*ListGenerator) ProtoMessage() {} func (*ListGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{90} + return fileDescriptor_c078c3c476799f44, []int{92} } func (m *ListGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2592,7 +2648,7 @@ var xxx_messageInfo_ListGenerator proto.InternalMessageInfo func (m *ManagedNamespaceMetadata) Reset() { *m = ManagedNamespaceMetadata{} } func (*ManagedNamespaceMetadata) ProtoMessage() {} func (*ManagedNamespaceMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{91} + return fileDescriptor_c078c3c476799f44, []int{93} } func (m *ManagedNamespaceMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2620,7 +2676,7 @@ var xxx_messageInfo_ManagedNamespaceMetadata proto.InternalMessageInfo func (m *MatrixGenerator) Reset() { *m = MatrixGenerator{} } func (*MatrixGenerator) ProtoMessage() {} func (*MatrixGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{92} + return fileDescriptor_c078c3c476799f44, []int{94} } func (m *MatrixGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2648,7 +2704,7 @@ var xxx_messageInfo_MatrixGenerator proto.InternalMessageInfo func (m *MergeGenerator) Reset() { *m = MergeGenerator{} } func (*MergeGenerator) ProtoMessage() {} func (*MergeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{93} + return fileDescriptor_c078c3c476799f44, []int{95} } func (m *MergeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2676,7 +2732,7 @@ var xxx_messageInfo_MergeGenerator proto.InternalMessageInfo func (m *NestedMatrixGenerator) Reset() { *m = NestedMatrixGenerator{} } func (*NestedMatrixGenerator) ProtoMessage() {} func (*NestedMatrixGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{94} + return fileDescriptor_c078c3c476799f44, []int{96} } func (m *NestedMatrixGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2704,7 +2760,7 @@ var xxx_messageInfo_NestedMatrixGenerator proto.InternalMessageInfo func (m *NestedMergeGenerator) Reset() { *m = NestedMergeGenerator{} } func (*NestedMergeGenerator) ProtoMessage() {} func (*NestedMergeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{95} + return fileDescriptor_c078c3c476799f44, []int{97} } func (m *NestedMergeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2732,7 +2788,7 @@ var xxx_messageInfo_NestedMergeGenerator proto.InternalMessageInfo func (m *OCIMetadata) Reset() { *m = OCIMetadata{} } func (*OCIMetadata) ProtoMessage() {} func (*OCIMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{96} + return fileDescriptor_c078c3c476799f44, []int{98} } func (m *OCIMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2760,7 +2816,7 @@ var xxx_messageInfo_OCIMetadata proto.InternalMessageInfo func (m *Operation) Reset() { *m = Operation{} } func (*Operation) ProtoMessage() {} func (*Operation) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{97} + return fileDescriptor_c078c3c476799f44, []int{99} } func (m *Operation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2788,7 +2844,7 @@ var xxx_messageInfo_Operation proto.InternalMessageInfo func (m *OperationInitiator) Reset() { *m = OperationInitiator{} } func (*OperationInitiator) ProtoMessage() {} func (*OperationInitiator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{98} + return fileDescriptor_c078c3c476799f44, []int{100} } func (m *OperationInitiator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2816,7 +2872,7 @@ var xxx_messageInfo_OperationInitiator proto.InternalMessageInfo func (m *OperationState) Reset() { *m = OperationState{} } func (*OperationState) ProtoMessage() {} func (*OperationState) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{99} + return fileDescriptor_c078c3c476799f44, []int{101} } func (m *OperationState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2844,7 +2900,7 @@ var xxx_messageInfo_OperationState proto.InternalMessageInfo func (m *OptionalArray) Reset() { *m = OptionalArray{} } func (*OptionalArray) ProtoMessage() {} func (*OptionalArray) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{100} + return fileDescriptor_c078c3c476799f44, []int{102} } func (m *OptionalArray) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2872,7 +2928,7 @@ var xxx_messageInfo_OptionalArray proto.InternalMessageInfo func (m *OptionalMap) Reset() { *m = OptionalMap{} } func (*OptionalMap) ProtoMessage() {} func (*OptionalMap) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{101} + return fileDescriptor_c078c3c476799f44, []int{103} } func (m *OptionalMap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2900,7 +2956,7 @@ var xxx_messageInfo_OptionalMap proto.InternalMessageInfo func (m *OrphanedResourceKey) Reset() { *m = OrphanedResourceKey{} } func (*OrphanedResourceKey) ProtoMessage() {} func (*OrphanedResourceKey) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{102} + return fileDescriptor_c078c3c476799f44, []int{104} } func (m *OrphanedResourceKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2928,7 +2984,7 @@ var xxx_messageInfo_OrphanedResourceKey proto.InternalMessageInfo func (m *OrphanedResourcesMonitorSettings) Reset() { *m = OrphanedResourcesMonitorSettings{} } func (*OrphanedResourcesMonitorSettings) ProtoMessage() {} func (*OrphanedResourcesMonitorSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{103} + return fileDescriptor_c078c3c476799f44, []int{105} } func (m *OrphanedResourcesMonitorSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2956,7 +3012,7 @@ var xxx_messageInfo_OrphanedResourcesMonitorSettings proto.InternalMessageInfo func (m *OverrideIgnoreDiff) Reset() { *m = OverrideIgnoreDiff{} } func (*OverrideIgnoreDiff) ProtoMessage() {} func (*OverrideIgnoreDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{104} + return fileDescriptor_c078c3c476799f44, []int{106} } func (m *OverrideIgnoreDiff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2984,7 +3040,7 @@ var xxx_messageInfo_OverrideIgnoreDiff proto.InternalMessageInfo func (m *PluginConfigMapRef) Reset() { *m = PluginConfigMapRef{} } func (*PluginConfigMapRef) ProtoMessage() {} func (*PluginConfigMapRef) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{105} + return fileDescriptor_c078c3c476799f44, []int{107} } func (m *PluginConfigMapRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3012,7 +3068,7 @@ var xxx_messageInfo_PluginConfigMapRef proto.InternalMessageInfo func (m *PluginGenerator) Reset() { *m = PluginGenerator{} } func (*PluginGenerator) ProtoMessage() {} func (*PluginGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{106} + return fileDescriptor_c078c3c476799f44, []int{108} } func (m *PluginGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3040,7 +3096,7 @@ var xxx_messageInfo_PluginGenerator proto.InternalMessageInfo func (m *PluginInput) Reset() { *m = PluginInput{} } func (*PluginInput) ProtoMessage() {} func (*PluginInput) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{107} + return fileDescriptor_c078c3c476799f44, []int{109} } func (m *PluginInput) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3068,7 +3124,7 @@ var xxx_messageInfo_PluginInput proto.InternalMessageInfo func (m *ProjectRole) Reset() { *m = ProjectRole{} } func (*ProjectRole) ProtoMessage() {} func (*ProjectRole) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{108} + return fileDescriptor_c078c3c476799f44, []int{110} } func (m *ProjectRole) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3096,7 +3152,7 @@ var xxx_messageInfo_ProjectRole proto.InternalMessageInfo func (m *PullRequestGenerator) Reset() { *m = PullRequestGenerator{} } func (*PullRequestGenerator) ProtoMessage() {} func (*PullRequestGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{109} + return fileDescriptor_c078c3c476799f44, []int{111} } func (m *PullRequestGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3124,7 +3180,7 @@ var xxx_messageInfo_PullRequestGenerator proto.InternalMessageInfo func (m *PullRequestGeneratorAzureDevOps) Reset() { *m = PullRequestGeneratorAzureDevOps{} } func (*PullRequestGeneratorAzureDevOps) ProtoMessage() {} func (*PullRequestGeneratorAzureDevOps) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{110} + return fileDescriptor_c078c3c476799f44, []int{112} } func (m *PullRequestGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3152,7 +3208,7 @@ var xxx_messageInfo_PullRequestGeneratorAzureDevOps proto.InternalMessageInfo func (m *PullRequestGeneratorBitbucket) Reset() { *m = PullRequestGeneratorBitbucket{} } func (*PullRequestGeneratorBitbucket) ProtoMessage() {} func (*PullRequestGeneratorBitbucket) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{111} + return fileDescriptor_c078c3c476799f44, []int{113} } func (m *PullRequestGeneratorBitbucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3180,7 +3236,7 @@ var xxx_messageInfo_PullRequestGeneratorBitbucket proto.InternalMessageInfo func (m *PullRequestGeneratorBitbucketServer) Reset() { *m = PullRequestGeneratorBitbucketServer{} } func (*PullRequestGeneratorBitbucketServer) ProtoMessage() {} func (*PullRequestGeneratorBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{112} + return fileDescriptor_c078c3c476799f44, []int{114} } func (m *PullRequestGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3208,7 +3264,7 @@ var xxx_messageInfo_PullRequestGeneratorBitbucketServer proto.InternalMessageInf func (m *PullRequestGeneratorFilter) Reset() { *m = PullRequestGeneratorFilter{} } func (*PullRequestGeneratorFilter) ProtoMessage() {} func (*PullRequestGeneratorFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{113} + return fileDescriptor_c078c3c476799f44, []int{115} } func (m *PullRequestGeneratorFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3236,7 +3292,7 @@ var xxx_messageInfo_PullRequestGeneratorFilter proto.InternalMessageInfo func (m *PullRequestGeneratorGitLab) Reset() { *m = PullRequestGeneratorGitLab{} } func (*PullRequestGeneratorGitLab) ProtoMessage() {} func (*PullRequestGeneratorGitLab) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{114} + return fileDescriptor_c078c3c476799f44, []int{116} } func (m *PullRequestGeneratorGitLab) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3264,7 +3320,7 @@ var xxx_messageInfo_PullRequestGeneratorGitLab proto.InternalMessageInfo func (m *PullRequestGeneratorGitea) Reset() { *m = PullRequestGeneratorGitea{} } func (*PullRequestGeneratorGitea) ProtoMessage() {} func (*PullRequestGeneratorGitea) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{115} + return fileDescriptor_c078c3c476799f44, []int{117} } func (m *PullRequestGeneratorGitea) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3292,7 +3348,7 @@ var xxx_messageInfo_PullRequestGeneratorGitea proto.InternalMessageInfo func (m *PullRequestGeneratorGithub) Reset() { *m = PullRequestGeneratorGithub{} } func (*PullRequestGeneratorGithub) ProtoMessage() {} func (*PullRequestGeneratorGithub) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{116} + return fileDescriptor_c078c3c476799f44, []int{118} } func (m *PullRequestGeneratorGithub) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3320,7 +3376,7 @@ var xxx_messageInfo_PullRequestGeneratorGithub proto.InternalMessageInfo func (m *RefTarget) Reset() { *m = RefTarget{} } func (*RefTarget) ProtoMessage() {} func (*RefTarget) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{117} + return fileDescriptor_c078c3c476799f44, []int{119} } func (m *RefTarget) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3348,7 +3404,7 @@ var xxx_messageInfo_RefTarget proto.InternalMessageInfo func (m *RepoCreds) Reset() { *m = RepoCreds{} } func (*RepoCreds) ProtoMessage() {} func (*RepoCreds) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{118} + return fileDescriptor_c078c3c476799f44, []int{120} } func (m *RepoCreds) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3376,7 +3432,7 @@ var xxx_messageInfo_RepoCreds proto.InternalMessageInfo func (m *RepoCredsList) Reset() { *m = RepoCredsList{} } func (*RepoCredsList) ProtoMessage() {} func (*RepoCredsList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{119} + return fileDescriptor_c078c3c476799f44, []int{121} } func (m *RepoCredsList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3404,7 +3460,7 @@ var xxx_messageInfo_RepoCredsList proto.InternalMessageInfo func (m *Repository) Reset() { *m = Repository{} } func (*Repository) ProtoMessage() {} func (*Repository) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{120} + return fileDescriptor_c078c3c476799f44, []int{122} } func (m *Repository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3432,7 +3488,7 @@ var xxx_messageInfo_Repository proto.InternalMessageInfo func (m *RepositoryCertificate) Reset() { *m = RepositoryCertificate{} } func (*RepositoryCertificate) ProtoMessage() {} func (*RepositoryCertificate) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{121} + return fileDescriptor_c078c3c476799f44, []int{123} } func (m *RepositoryCertificate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3460,7 +3516,7 @@ var xxx_messageInfo_RepositoryCertificate proto.InternalMessageInfo func (m *RepositoryCertificateList) Reset() { *m = RepositoryCertificateList{} } func (*RepositoryCertificateList) ProtoMessage() {} func (*RepositoryCertificateList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{122} + return fileDescriptor_c078c3c476799f44, []int{124} } func (m *RepositoryCertificateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3488,7 +3544,7 @@ var xxx_messageInfo_RepositoryCertificateList proto.InternalMessageInfo func (m *RepositoryList) Reset() { *m = RepositoryList{} } func (*RepositoryList) ProtoMessage() {} func (*RepositoryList) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{123} + return fileDescriptor_c078c3c476799f44, []int{125} } func (m *RepositoryList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3516,7 +3572,7 @@ var xxx_messageInfo_RepositoryList proto.InternalMessageInfo func (m *ResourceAction) Reset() { *m = ResourceAction{} } func (*ResourceAction) ProtoMessage() {} func (*ResourceAction) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{124} + return fileDescriptor_c078c3c476799f44, []int{126} } func (m *ResourceAction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3544,7 +3600,7 @@ var xxx_messageInfo_ResourceAction proto.InternalMessageInfo func (m *ResourceActionDefinition) Reset() { *m = ResourceActionDefinition{} } func (*ResourceActionDefinition) ProtoMessage() {} func (*ResourceActionDefinition) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{125} + return fileDescriptor_c078c3c476799f44, []int{127} } func (m *ResourceActionDefinition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3572,7 +3628,7 @@ var xxx_messageInfo_ResourceActionDefinition proto.InternalMessageInfo func (m *ResourceActionParam) Reset() { *m = ResourceActionParam{} } func (*ResourceActionParam) ProtoMessage() {} func (*ResourceActionParam) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{126} + return fileDescriptor_c078c3c476799f44, []int{128} } func (m *ResourceActionParam) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3600,7 +3656,7 @@ var xxx_messageInfo_ResourceActionParam proto.InternalMessageInfo func (m *ResourceActions) Reset() { *m = ResourceActions{} } func (*ResourceActions) ProtoMessage() {} func (*ResourceActions) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{127} + return fileDescriptor_c078c3c476799f44, []int{129} } func (m *ResourceActions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3628,7 +3684,7 @@ var xxx_messageInfo_ResourceActions proto.InternalMessageInfo func (m *ResourceDiff) Reset() { *m = ResourceDiff{} } func (*ResourceDiff) ProtoMessage() {} func (*ResourceDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{128} + return fileDescriptor_c078c3c476799f44, []int{130} } func (m *ResourceDiff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3656,7 +3712,7 @@ var xxx_messageInfo_ResourceDiff proto.InternalMessageInfo func (m *ResourceIgnoreDifferences) Reset() { *m = ResourceIgnoreDifferences{} } func (*ResourceIgnoreDifferences) ProtoMessage() {} func (*ResourceIgnoreDifferences) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{129} + return fileDescriptor_c078c3c476799f44, []int{131} } func (m *ResourceIgnoreDifferences) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3684,7 +3740,7 @@ var xxx_messageInfo_ResourceIgnoreDifferences proto.InternalMessageInfo func (m *ResourceNetworkingInfo) Reset() { *m = ResourceNetworkingInfo{} } func (*ResourceNetworkingInfo) ProtoMessage() {} func (*ResourceNetworkingInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{130} + return fileDescriptor_c078c3c476799f44, []int{132} } func (m *ResourceNetworkingInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3712,7 +3768,7 @@ var xxx_messageInfo_ResourceNetworkingInfo proto.InternalMessageInfo func (m *ResourceNode) Reset() { *m = ResourceNode{} } func (*ResourceNode) ProtoMessage() {} func (*ResourceNode) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{131} + return fileDescriptor_c078c3c476799f44, []int{133} } func (m *ResourceNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3740,7 +3796,7 @@ var xxx_messageInfo_ResourceNode proto.InternalMessageInfo func (m *ResourceOverride) Reset() { *m = ResourceOverride{} } func (*ResourceOverride) ProtoMessage() {} func (*ResourceOverride) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{132} + return fileDescriptor_c078c3c476799f44, []int{134} } func (m *ResourceOverride) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3768,7 +3824,7 @@ var xxx_messageInfo_ResourceOverride proto.InternalMessageInfo func (m *ResourceRef) Reset() { *m = ResourceRef{} } func (*ResourceRef) ProtoMessage() {} func (*ResourceRef) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{133} + return fileDescriptor_c078c3c476799f44, []int{135} } func (m *ResourceRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3796,7 +3852,7 @@ var xxx_messageInfo_ResourceRef proto.InternalMessageInfo func (m *ResourceResult) Reset() { *m = ResourceResult{} } func (*ResourceResult) ProtoMessage() {} func (*ResourceResult) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{134} + return fileDescriptor_c078c3c476799f44, []int{136} } func (m *ResourceResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3824,7 +3880,7 @@ var xxx_messageInfo_ResourceResult proto.InternalMessageInfo func (m *ResourceStatus) Reset() { *m = ResourceStatus{} } func (*ResourceStatus) ProtoMessage() {} func (*ResourceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{135} + return fileDescriptor_c078c3c476799f44, []int{137} } func (m *ResourceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3852,7 +3908,7 @@ var xxx_messageInfo_ResourceStatus proto.InternalMessageInfo func (m *RetryStrategy) Reset() { *m = RetryStrategy{} } func (*RetryStrategy) ProtoMessage() {} func (*RetryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{136} + return fileDescriptor_c078c3c476799f44, []int{138} } func (m *RetryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3880,7 +3936,7 @@ var xxx_messageInfo_RetryStrategy proto.InternalMessageInfo func (m *RevisionHistory) Reset() { *m = RevisionHistory{} } func (*RevisionHistory) ProtoMessage() {} func (*RevisionHistory) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{137} + return fileDescriptor_c078c3c476799f44, []int{139} } func (m *RevisionHistory) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3908,7 +3964,7 @@ var xxx_messageInfo_RevisionHistory proto.InternalMessageInfo func (m *RevisionMetadata) Reset() { *m = RevisionMetadata{} } func (*RevisionMetadata) ProtoMessage() {} func (*RevisionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{138} + return fileDescriptor_c078c3c476799f44, []int{140} } func (m *RevisionMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3936,7 +3992,7 @@ var xxx_messageInfo_RevisionMetadata proto.InternalMessageInfo func (m *RevisionReference) Reset() { *m = RevisionReference{} } func (*RevisionReference) ProtoMessage() {} func (*RevisionReference) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{139} + return fileDescriptor_c078c3c476799f44, []int{141} } func (m *RevisionReference) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3964,7 +4020,7 @@ var xxx_messageInfo_RevisionReference proto.InternalMessageInfo func (m *SCMProviderGenerator) Reset() { *m = SCMProviderGenerator{} } func (*SCMProviderGenerator) ProtoMessage() {} func (*SCMProviderGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{140} + return fileDescriptor_c078c3c476799f44, []int{142} } func (m *SCMProviderGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3992,7 +4048,7 @@ var xxx_messageInfo_SCMProviderGenerator proto.InternalMessageInfo func (m *SCMProviderGeneratorAWSCodeCommit) Reset() { *m = SCMProviderGeneratorAWSCodeCommit{} } func (*SCMProviderGeneratorAWSCodeCommit) ProtoMessage() {} func (*SCMProviderGeneratorAWSCodeCommit) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{141} + return fileDescriptor_c078c3c476799f44, []int{143} } func (m *SCMProviderGeneratorAWSCodeCommit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4020,7 +4076,7 @@ var xxx_messageInfo_SCMProviderGeneratorAWSCodeCommit proto.InternalMessageInfo func (m *SCMProviderGeneratorAzureDevOps) Reset() { *m = SCMProviderGeneratorAzureDevOps{} } func (*SCMProviderGeneratorAzureDevOps) ProtoMessage() {} func (*SCMProviderGeneratorAzureDevOps) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{142} + return fileDescriptor_c078c3c476799f44, []int{144} } func (m *SCMProviderGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4048,7 +4104,7 @@ var xxx_messageInfo_SCMProviderGeneratorAzureDevOps proto.InternalMessageInfo func (m *SCMProviderGeneratorBitbucket) Reset() { *m = SCMProviderGeneratorBitbucket{} } func (*SCMProviderGeneratorBitbucket) ProtoMessage() {} func (*SCMProviderGeneratorBitbucket) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{143} + return fileDescriptor_c078c3c476799f44, []int{145} } func (m *SCMProviderGeneratorBitbucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4076,7 +4132,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucket proto.InternalMessageInfo func (m *SCMProviderGeneratorBitbucketServer) Reset() { *m = SCMProviderGeneratorBitbucketServer{} } func (*SCMProviderGeneratorBitbucketServer) ProtoMessage() {} func (*SCMProviderGeneratorBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{144} + return fileDescriptor_c078c3c476799f44, []int{146} } func (m *SCMProviderGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4104,7 +4160,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucketServer proto.InternalMessageInf func (m *SCMProviderGeneratorFilter) Reset() { *m = SCMProviderGeneratorFilter{} } func (*SCMProviderGeneratorFilter) ProtoMessage() {} func (*SCMProviderGeneratorFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{145} + return fileDescriptor_c078c3c476799f44, []int{147} } func (m *SCMProviderGeneratorFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4132,7 +4188,7 @@ var xxx_messageInfo_SCMProviderGeneratorFilter proto.InternalMessageInfo func (m *SCMProviderGeneratorGitea) Reset() { *m = SCMProviderGeneratorGitea{} } func (*SCMProviderGeneratorGitea) ProtoMessage() {} func (*SCMProviderGeneratorGitea) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{146} + return fileDescriptor_c078c3c476799f44, []int{148} } func (m *SCMProviderGeneratorGitea) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4160,7 +4216,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitea proto.InternalMessageInfo func (m *SCMProviderGeneratorGithub) Reset() { *m = SCMProviderGeneratorGithub{} } func (*SCMProviderGeneratorGithub) ProtoMessage() {} func (*SCMProviderGeneratorGithub) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{147} + return fileDescriptor_c078c3c476799f44, []int{149} } func (m *SCMProviderGeneratorGithub) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4188,7 +4244,7 @@ var xxx_messageInfo_SCMProviderGeneratorGithub proto.InternalMessageInfo func (m *SCMProviderGeneratorGitlab) Reset() { *m = SCMProviderGeneratorGitlab{} } func (*SCMProviderGeneratorGitlab) ProtoMessage() {} func (*SCMProviderGeneratorGitlab) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{148} + return fileDescriptor_c078c3c476799f44, []int{150} } func (m *SCMProviderGeneratorGitlab) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4216,7 +4272,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitlab proto.InternalMessageInfo func (m *SecretRef) Reset() { *m = SecretRef{} } func (*SecretRef) ProtoMessage() {} func (*SecretRef) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{149} + return fileDescriptor_c078c3c476799f44, []int{151} } func (m *SecretRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4244,7 +4300,7 @@ var xxx_messageInfo_SecretRef proto.InternalMessageInfo func (m *SignatureKey) Reset() { *m = SignatureKey{} } func (*SignatureKey) ProtoMessage() {} func (*SignatureKey) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{150} + return fileDescriptor_c078c3c476799f44, []int{152} } func (m *SignatureKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4272,7 +4328,7 @@ var xxx_messageInfo_SignatureKey proto.InternalMessageInfo func (m *SourceHydrator) Reset() { *m = SourceHydrator{} } func (*SourceHydrator) ProtoMessage() {} func (*SourceHydrator) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{151} + return fileDescriptor_c078c3c476799f44, []int{153} } func (m *SourceHydrator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4300,7 +4356,7 @@ var xxx_messageInfo_SourceHydrator proto.InternalMessageInfo func (m *SourceHydratorStatus) Reset() { *m = SourceHydratorStatus{} } func (*SourceHydratorStatus) ProtoMessage() {} func (*SourceHydratorStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{152} + return fileDescriptor_c078c3c476799f44, []int{154} } func (m *SourceHydratorStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4328,7 +4384,7 @@ var xxx_messageInfo_SourceHydratorStatus proto.InternalMessageInfo func (m *SuccessfulHydrateOperation) Reset() { *m = SuccessfulHydrateOperation{} } func (*SuccessfulHydrateOperation) ProtoMessage() {} func (*SuccessfulHydrateOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{153} + return fileDescriptor_c078c3c476799f44, []int{155} } func (m *SuccessfulHydrateOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4356,7 +4412,7 @@ var xxx_messageInfo_SuccessfulHydrateOperation proto.InternalMessageInfo func (m *SyncOperation) Reset() { *m = SyncOperation{} } func (*SyncOperation) ProtoMessage() {} func (*SyncOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{154} + return fileDescriptor_c078c3c476799f44, []int{156} } func (m *SyncOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4384,7 +4440,7 @@ var xxx_messageInfo_SyncOperation proto.InternalMessageInfo func (m *SyncOperationResource) Reset() { *m = SyncOperationResource{} } func (*SyncOperationResource) ProtoMessage() {} func (*SyncOperationResource) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{155} + return fileDescriptor_c078c3c476799f44, []int{157} } func (m *SyncOperationResource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4412,7 +4468,7 @@ var xxx_messageInfo_SyncOperationResource proto.InternalMessageInfo func (m *SyncOperationResult) Reset() { *m = SyncOperationResult{} } func (*SyncOperationResult) ProtoMessage() {} func (*SyncOperationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{156} + return fileDescriptor_c078c3c476799f44, []int{158} } func (m *SyncOperationResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4440,7 +4496,7 @@ var xxx_messageInfo_SyncOperationResult proto.InternalMessageInfo func (m *SyncPolicy) Reset() { *m = SyncPolicy{} } func (*SyncPolicy) ProtoMessage() {} func (*SyncPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{157} + return fileDescriptor_c078c3c476799f44, []int{159} } func (m *SyncPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4468,7 +4524,7 @@ var xxx_messageInfo_SyncPolicy proto.InternalMessageInfo func (m *SyncPolicyAutomated) Reset() { *m = SyncPolicyAutomated{} } func (*SyncPolicyAutomated) ProtoMessage() {} func (*SyncPolicyAutomated) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{158} + return fileDescriptor_c078c3c476799f44, []int{160} } func (m *SyncPolicyAutomated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4496,7 +4552,7 @@ var xxx_messageInfo_SyncPolicyAutomated proto.InternalMessageInfo func (m *SyncSource) Reset() { *m = SyncSource{} } func (*SyncSource) ProtoMessage() {} func (*SyncSource) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{159} + return fileDescriptor_c078c3c476799f44, []int{161} } func (m *SyncSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4524,7 +4580,7 @@ var xxx_messageInfo_SyncSource proto.InternalMessageInfo func (m *SyncStatus) Reset() { *m = SyncStatus{} } func (*SyncStatus) ProtoMessage() {} func (*SyncStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{160} + return fileDescriptor_c078c3c476799f44, []int{162} } func (m *SyncStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4552,7 +4608,7 @@ var xxx_messageInfo_SyncStatus proto.InternalMessageInfo func (m *SyncStrategy) Reset() { *m = SyncStrategy{} } func (*SyncStrategy) ProtoMessage() {} func (*SyncStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{161} + return fileDescriptor_c078c3c476799f44, []int{163} } func (m *SyncStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4580,7 +4636,7 @@ var xxx_messageInfo_SyncStrategy proto.InternalMessageInfo func (m *SyncStrategyApply) Reset() { *m = SyncStrategyApply{} } func (*SyncStrategyApply) ProtoMessage() {} func (*SyncStrategyApply) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{162} + return fileDescriptor_c078c3c476799f44, []int{164} } func (m *SyncStrategyApply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4608,7 +4664,7 @@ var xxx_messageInfo_SyncStrategyApply proto.InternalMessageInfo func (m *SyncStrategyHook) Reset() { *m = SyncStrategyHook{} } func (*SyncStrategyHook) ProtoMessage() {} func (*SyncStrategyHook) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{163} + return fileDescriptor_c078c3c476799f44, []int{165} } func (m *SyncStrategyHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4636,7 +4692,7 @@ var xxx_messageInfo_SyncStrategyHook proto.InternalMessageInfo func (m *SyncWindow) Reset() { *m = SyncWindow{} } func (*SyncWindow) ProtoMessage() {} func (*SyncWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{164} + return fileDescriptor_c078c3c476799f44, []int{166} } func (m *SyncWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4664,7 +4720,7 @@ var xxx_messageInfo_SyncWindow proto.InternalMessageInfo func (m *TLSClientConfig) Reset() { *m = TLSClientConfig{} } func (*TLSClientConfig) ProtoMessage() {} func (*TLSClientConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{165} + return fileDescriptor_c078c3c476799f44, []int{167} } func (m *TLSClientConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4692,7 +4748,7 @@ var xxx_messageInfo_TLSClientConfig proto.InternalMessageInfo func (m *TagFilter) Reset() { *m = TagFilter{} } func (*TagFilter) ProtoMessage() {} func (*TagFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_c078c3c476799f44, []int{166} + return fileDescriptor_c078c3c476799f44, []int{168} } func (m *TagFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4729,7 +4785,11 @@ func init() { proto.RegisterType((*ApplicationCondition)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationCondition") proto.RegisterType((*ApplicationDestination)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationDestination") proto.RegisterType((*ApplicationDestinationServiceAccount)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationDestinationServiceAccount") + proto.RegisterType((*ApplicationLabelStats)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationLabelStats") proto.RegisterType((*ApplicationList)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationList") + proto.RegisterType((*ApplicationListStats)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationListStats") + proto.RegisterMapType((map[github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode]int64)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationListStats.TotalByHealthStatusEntry") + proto.RegisterMapType((map[SyncStatusCode]int64)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationListStats.TotalBySyncStatusEntry") proto.RegisterType((*ApplicationMatchExpression)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationMatchExpression") proto.RegisterType((*ApplicationPreservedFields)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationPreservedFields") proto.RegisterType((*ApplicationSet)(nil), "github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationSet") @@ -4914,779 +4974,793 @@ func init() { } var fileDescriptor_c078c3c476799f44 = []byte{ - // 12344 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x24, 0xc7, - 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0x1d, 0xfa, 0xee, 0x48, 0xdc, 0xf1, 0x03, 0xe7, - 0xa1, 0x4c, 0xd1, 0x11, 0x09, 0x98, 0x47, 0x52, 0x66, 0x4c, 0x5b, 0x36, 0x3e, 0xee, 0x03, 0x77, - 0xc0, 0x01, 0xec, 0xc5, 0xdd, 0x59, 0x94, 0x29, 0x6a, 0xb0, 0xdb, 0x58, 0xcc, 0x61, 0x76, 0x66, - 0x39, 0x33, 0x8b, 0xc3, 0xd2, 0xb2, 0x2c, 0x59, 0x92, 0x2d, 0x5b, 0x5f, 0x8c, 0x95, 0x8a, 0xa8, - 0x24, 0x52, 0xe4, 0xd8, 0xf9, 0xaa, 0x94, 0xca, 0x4a, 0xfc, 0x23, 0xae, 0xb2, 0x5d, 0x2a, 0x7f, - 0x94, 0x4a, 0x8e, 0x93, 0xd8, 0x51, 0x29, 0x96, 0x13, 0x5b, 0x88, 0x74, 0x49, 0xca, 0xae, 0x54, - 0xc5, 0x55, 0x76, 0xf2, 0x23, 0x75, 0x49, 0xa5, 0x52, 0xfd, 0xdd, 0x33, 0x3b, 0x0b, 0x2c, 0x0e, - 0x83, 0xbb, 0x93, 0xcc, 0x7f, 0xbb, 0xfd, 0xde, 0xbc, 0xd7, 0xd3, 0xd3, 0xfd, 0xde, 0xeb, 0xd7, - 0xef, 0xbd, 0x86, 0xa5, 0x86, 0x1b, 0x6f, 0xb6, 0xd7, 0xa7, 0x6b, 0x41, 0x73, 0xc6, 0x09, 0x1b, - 0x41, 0x2b, 0x0c, 0x6e, 0xb0, 0x1f, 0x4f, 0xd5, 0xea, 0x33, 0xdb, 0xcf, 0xcc, 0xb4, 0xb6, 0x1a, - 0x33, 0x4e, 0xcb, 0x8d, 0x66, 0x9c, 0x56, 0xcb, 0x73, 0x6b, 0x4e, 0xec, 0x06, 0xfe, 0xcc, 0xf6, - 0xd3, 0x8e, 0xd7, 0xda, 0x74, 0x9e, 0x9e, 0x69, 0x10, 0x9f, 0x84, 0x4e, 0x4c, 0xea, 0xd3, 0xad, - 0x30, 0x88, 0x03, 0xf4, 0x43, 0x9a, 0xda, 0xb4, 0xa4, 0xc6, 0x7e, 0xbc, 0x52, 0xab, 0x4f, 0x6f, - 0x3f, 0x33, 0xdd, 0xda, 0x6a, 0x4c, 0x53, 0x6a, 0xd3, 0x06, 0xb5, 0x69, 0x49, 0xed, 0xf4, 0x53, - 0x46, 0x5f, 0x1a, 0x41, 0x23, 0x98, 0x61, 0x44, 0xd7, 0xdb, 0x1b, 0xec, 0x1f, 0xfb, 0xc3, 0x7e, - 0x71, 0x66, 0xa7, 0xed, 0xad, 0xe7, 0xa3, 0x69, 0x37, 0xa0, 0xdd, 0x9b, 0xa9, 0x05, 0x21, 0x99, - 0xd9, 0xee, 0xea, 0xd0, 0xe9, 0x8b, 0x1a, 0x87, 0xec, 0xc4, 0xc4, 0x8f, 0xdc, 0xc0, 0x8f, 0x9e, - 0xa2, 0x5d, 0x20, 0xe1, 0x36, 0x09, 0xcd, 0xd7, 0x33, 0x10, 0xb2, 0x28, 0x3d, 0xab, 0x29, 0x35, - 0x9d, 0xda, 0xa6, 0xeb, 0x93, 0xb0, 0xa3, 0x1f, 0x6f, 0x92, 0xd8, 0xc9, 0x7a, 0x6a, 0xa6, 0xd7, - 0x53, 0x61, 0xdb, 0x8f, 0xdd, 0x26, 0xe9, 0x7a, 0xe0, 0x1d, 0xfb, 0x3d, 0x10, 0xd5, 0x36, 0x49, - 0xd3, 0xe9, 0x7a, 0xee, 0x99, 0x5e, 0xcf, 0xb5, 0x63, 0xd7, 0x9b, 0x71, 0xfd, 0x38, 0x8a, 0xc3, - 0xf4, 0x43, 0xf6, 0xdf, 0xb7, 0x60, 0x74, 0xf6, 0x7a, 0x75, 0xb6, 0x1d, 0x6f, 0xce, 0x07, 0xfe, - 0x86, 0xdb, 0x40, 0xcf, 0xc1, 0x70, 0xcd, 0x6b, 0x47, 0x31, 0x09, 0xaf, 0x38, 0x4d, 0x32, 0x69, - 0x9d, 0xb1, 0x9e, 0xa8, 0xcc, 0x1d, 0xff, 0xea, 0xee, 0xd4, 0x5b, 0x6e, 0xed, 0x4e, 0x0d, 0xcf, - 0x6b, 0x10, 0x36, 0xf1, 0xd0, 0xf7, 0xc1, 0x50, 0x18, 0x78, 0x64, 0x16, 0x5f, 0x99, 0x2c, 0xb0, - 0x47, 0xc6, 0xc5, 0x23, 0x43, 0x98, 0x37, 0x63, 0x09, 0xa7, 0xa8, 0xad, 0x30, 0xd8, 0x70, 0x3d, - 0x32, 0x59, 0x4c, 0xa2, 0xae, 0xf2, 0x66, 0x2c, 0xe1, 0xf6, 0x67, 0x0b, 0x30, 0x3e, 0xdb, 0x6a, - 0x5d, 0x24, 0x8e, 0x17, 0x6f, 0x56, 0x63, 0x27, 0x6e, 0x47, 0xa8, 0x01, 0x83, 0x11, 0xfb, 0x25, - 0xfa, 0xb6, 0x22, 0x9e, 0x1e, 0xe4, 0xf0, 0xdb, 0xbb, 0x53, 0x3f, 0x9c, 0x35, 0xa3, 0x1b, 0x6e, - 0x1c, 0xb4, 0xa2, 0xa7, 0x88, 0xdf, 0x70, 0x7d, 0xc2, 0xc6, 0x65, 0x93, 0x51, 0x9d, 0x36, 0x89, - 0xcf, 0x07, 0x75, 0x82, 0x05, 0x79, 0xda, 0xcf, 0x26, 0x89, 0x22, 0xa7, 0x41, 0xd2, 0xaf, 0xb4, - 0xcc, 0x9b, 0xb1, 0x84, 0xa3, 0x10, 0x90, 0xe7, 0x44, 0xf1, 0x5a, 0xe8, 0xf8, 0x91, 0x4b, 0xa7, - 0xf4, 0x9a, 0xdb, 0xe4, 0x6f, 0x37, 0x7c, 0xf6, 0x6f, 0x4c, 0xf3, 0x0f, 0x33, 0x6d, 0x7e, 0x18, - 0xbd, 0x0e, 0xe8, 0xbc, 0x99, 0xde, 0x7e, 0x7a, 0x9a, 0x3e, 0x31, 0xf7, 0xc0, 0xad, 0xdd, 0x29, - 0xb4, 0xd4, 0x45, 0x09, 0x67, 0x50, 0xb7, 0xff, 0xa8, 0x00, 0x30, 0xdb, 0x6a, 0xad, 0x86, 0xc1, - 0x0d, 0x52, 0x8b, 0xd1, 0x7b, 0xa1, 0x4c, 0x49, 0xd5, 0x9d, 0xd8, 0x61, 0x03, 0x33, 0x7c, 0xf6, - 0xfb, 0xfb, 0x63, 0xbc, 0xb2, 0x4e, 0x9f, 0x5f, 0x26, 0xb1, 0x33, 0x87, 0xc4, 0x0b, 0x82, 0x6e, - 0xc3, 0x8a, 0x2a, 0xf2, 0x61, 0x20, 0x6a, 0x91, 0x1a, 0x1b, 0x8c, 0xe1, 0xb3, 0x4b, 0xd3, 0x87, - 0x59, 0xe9, 0xd3, 0xba, 0xe7, 0xd5, 0x16, 0xa9, 0xcd, 0x8d, 0x08, 0xce, 0x03, 0xf4, 0x1f, 0x66, - 0x7c, 0xd0, 0xb6, 0xfa, 0xd0, 0x7c, 0x20, 0xaf, 0xe4, 0xc6, 0x91, 0x51, 0x9d, 0x1b, 0x4b, 0x4e, - 0x1c, 0xf9, 0xdd, 0xed, 0x6f, 0x5a, 0x30, 0xa6, 0x91, 0x97, 0xdc, 0x28, 0x46, 0x3f, 0xde, 0x35, - 0xb8, 0xd3, 0xfd, 0x0d, 0x2e, 0x7d, 0x9a, 0x0d, 0xed, 0x31, 0xc1, 0xac, 0x2c, 0x5b, 0x8c, 0x81, - 0x6d, 0x42, 0xc9, 0x8d, 0x49, 0x33, 0x9a, 0x2c, 0x9c, 0x29, 0x3e, 0x31, 0x7c, 0xf6, 0x62, 0x5e, - 0xef, 0x39, 0x37, 0x2a, 0x98, 0x96, 0x16, 0x29, 0x79, 0xcc, 0xb9, 0xd8, 0x7f, 0x35, 0x6a, 0xbe, - 0x1f, 0x1d, 0x70, 0xf4, 0x34, 0x0c, 0x47, 0x41, 0x3b, 0xac, 0x11, 0x4c, 0x5a, 0x01, 0x5d, 0x58, - 0x45, 0x3a, 0xdd, 0xe9, 0x82, 0xaf, 0xea, 0x66, 0x6c, 0xe2, 0xa0, 0x4f, 0x5a, 0x30, 0x52, 0x27, - 0x51, 0xec, 0xfa, 0x8c, 0xbf, 0xec, 0xfc, 0xda, 0xa1, 0x3b, 0x2f, 0x1b, 0x17, 0x34, 0xf1, 0xb9, - 0x13, 0xe2, 0x45, 0x46, 0x8c, 0xc6, 0x08, 0x27, 0xf8, 0x53, 0xc1, 0x55, 0x27, 0x51, 0x2d, 0x74, - 0x5b, 0xf4, 0xbf, 0x10, 0x2d, 0x4a, 0x70, 0x2d, 0x68, 0x10, 0x36, 0xf1, 0x90, 0x0f, 0x25, 0x2a, - 0x98, 0xa2, 0xc9, 0x01, 0xd6, 0xff, 0xc5, 0xc3, 0xf5, 0x5f, 0x0c, 0x2a, 0x95, 0x79, 0x7a, 0xf4, - 0xe9, 0xbf, 0x08, 0x73, 0x36, 0xe8, 0x13, 0x16, 0x4c, 0x0a, 0xc1, 0x89, 0x09, 0x1f, 0xd0, 0xeb, - 0x9b, 0x6e, 0x4c, 0x3c, 0x37, 0x8a, 0x27, 0x4b, 0xac, 0x0f, 0x33, 0xfd, 0xcd, 0xad, 0x0b, 0x61, - 0xd0, 0x6e, 0x5d, 0x76, 0xfd, 0xfa, 0xdc, 0x19, 0xc1, 0x69, 0x72, 0xbe, 0x07, 0x61, 0xdc, 0x93, - 0x25, 0xfa, 0xb4, 0x05, 0xa7, 0x7d, 0xa7, 0x49, 0xa2, 0x96, 0x43, 0x3f, 0x2d, 0x07, 0xcf, 0x79, - 0x4e, 0x6d, 0x8b, 0xf5, 0x68, 0xf0, 0xce, 0x7a, 0x64, 0x8b, 0x1e, 0x9d, 0xbe, 0xd2, 0x93, 0x34, - 0xde, 0x83, 0x2d, 0xfa, 0x25, 0x0b, 0x26, 0x82, 0xb0, 0xb5, 0xe9, 0xf8, 0xa4, 0x2e, 0xa1, 0xd1, - 0xe4, 0x10, 0x5b, 0x7a, 0xef, 0x39, 0xdc, 0x27, 0x5a, 0x49, 0x93, 0x5d, 0x0e, 0x7c, 0x37, 0x0e, - 0xc2, 0x2a, 0x89, 0x63, 0xd7, 0x6f, 0x44, 0x73, 0x27, 0x6f, 0xed, 0x4e, 0x4d, 0x74, 0x61, 0xe1, - 0xee, 0xfe, 0xa0, 0x9f, 0x80, 0xe1, 0xa8, 0xe3, 0xd7, 0xae, 0xbb, 0x7e, 0x3d, 0xb8, 0x19, 0x4d, - 0x96, 0xf3, 0x58, 0xbe, 0x55, 0x45, 0x50, 0x2c, 0x40, 0xcd, 0x00, 0x9b, 0xdc, 0xb2, 0x3f, 0x9c, - 0x9e, 0x4a, 0x95, 0xbc, 0x3f, 0x9c, 0x9e, 0x4c, 0x7b, 0xb0, 0x45, 0x3f, 0x6b, 0xc1, 0x68, 0xe4, - 0x36, 0x7c, 0x27, 0x6e, 0x87, 0xe4, 0x32, 0xe9, 0x44, 0x93, 0xc0, 0x3a, 0x72, 0xe9, 0x90, 0xa3, - 0x62, 0x90, 0x9c, 0x3b, 0x29, 0xfa, 0x38, 0x6a, 0xb6, 0x46, 0x38, 0xc9, 0x37, 0x6b, 0xa1, 0xe9, - 0x69, 0x3d, 0x9c, 0xef, 0x42, 0xd3, 0x93, 0xba, 0x27, 0x4b, 0xf4, 0xa3, 0x70, 0x8c, 0x37, 0xa9, - 0x91, 0x8d, 0x26, 0x47, 0x98, 0xa0, 0x3d, 0x71, 0x6b, 0x77, 0xea, 0x58, 0x35, 0x05, 0xc3, 0x5d, - 0xd8, 0xe8, 0x55, 0x98, 0x6a, 0x91, 0xb0, 0xe9, 0xc6, 0x2b, 0xbe, 0xd7, 0x91, 0xe2, 0xbb, 0x16, - 0xb4, 0x48, 0x5d, 0x74, 0x27, 0x9a, 0x1c, 0x3d, 0x63, 0x3d, 0x51, 0x9e, 0x7b, 0x9b, 0xe8, 0xe6, - 0xd4, 0xea, 0xde, 0xe8, 0x78, 0x3f, 0x7a, 0xe8, 0x2b, 0x16, 0x9c, 0x36, 0xa4, 0x6c, 0x95, 0x84, - 0xdb, 0x6e, 0x8d, 0xcc, 0xd6, 0x6a, 0x41, 0xdb, 0x8f, 0xa3, 0xc9, 0x31, 0x36, 0x8c, 0xeb, 0x47, - 0x21, 0xf3, 0x93, 0xac, 0xf4, 0xbc, 0xec, 0x89, 0x12, 0xe1, 0x3d, 0x7a, 0x6a, 0xff, 0x5e, 0x01, - 0x8e, 0xa5, 0x2d, 0x00, 0xf4, 0x8f, 0x2d, 0x18, 0xbf, 0x71, 0x33, 0x5e, 0x0b, 0xb6, 0x88, 0x1f, - 0xcd, 0x75, 0xa8, 0x9c, 0x66, 0xba, 0x6f, 0xf8, 0x6c, 0x2d, 0x5f, 0x5b, 0x63, 0xfa, 0x52, 0x92, - 0xcb, 0x39, 0x3f, 0x0e, 0x3b, 0x73, 0x0f, 0x8a, 0x77, 0x1a, 0xbf, 0x74, 0x7d, 0xcd, 0x84, 0xe2, - 0x74, 0xa7, 0x4e, 0x7f, 0xcc, 0x82, 0x13, 0x59, 0x24, 0xd0, 0x31, 0x28, 0x6e, 0x91, 0x0e, 0xb7, - 0x84, 0x31, 0xfd, 0x89, 0x5e, 0x86, 0xd2, 0xb6, 0xe3, 0xb5, 0x89, 0x30, 0xd3, 0x2e, 0x1c, 0xee, - 0x45, 0x54, 0xcf, 0x30, 0xa7, 0xfa, 0x83, 0x85, 0xe7, 0x2d, 0xfb, 0x0f, 0x8a, 0x30, 0x6c, 0x7c, - 0xb4, 0xbb, 0x60, 0x7a, 0x06, 0x09, 0xd3, 0x73, 0x39, 0xb7, 0xf9, 0xd6, 0xd3, 0xf6, 0xbc, 0x99, - 0xb2, 0x3d, 0x57, 0xf2, 0x63, 0xb9, 0xa7, 0xf1, 0x89, 0x62, 0xa8, 0x04, 0x2d, 0xba, 0x45, 0xa3, - 0x36, 0xcc, 0x40, 0x1e, 0x9f, 0x70, 0x45, 0x92, 0x9b, 0x1b, 0xbd, 0xb5, 0x3b, 0x55, 0x51, 0x7f, - 0xb1, 0x66, 0x64, 0x7f, 0xc3, 0x82, 0x13, 0x46, 0x1f, 0xe7, 0x03, 0xbf, 0xce, 0x36, 0x1a, 0xe8, - 0x0c, 0x0c, 0xc4, 0x9d, 0x96, 0xdc, 0x06, 0xaa, 0x91, 0x5a, 0xeb, 0xb4, 0x08, 0x66, 0x90, 0xfb, - 0x7d, 0x97, 0xf4, 0x69, 0x0b, 0x1e, 0xc8, 0x16, 0x30, 0xe8, 0x71, 0x18, 0xe4, 0x3e, 0x00, 0xf1, - 0x76, 0xfa, 0x93, 0xb0, 0x56, 0x2c, 0xa0, 0x68, 0x06, 0x2a, 0x4a, 0xe1, 0x89, 0x77, 0x9c, 0x10, - 0xa8, 0x15, 0xad, 0x25, 0x35, 0x0e, 0x1d, 0x34, 0xfa, 0x47, 0x98, 0xa0, 0x6a, 0xd0, 0xd8, 0xa6, - 0x99, 0x41, 0xec, 0xaf, 0x5b, 0xf0, 0xd6, 0x7e, 0xc4, 0xde, 0xd1, 0xf5, 0xb1, 0x0a, 0x27, 0xeb, - 0x64, 0xc3, 0x69, 0x7b, 0x71, 0x92, 0xa3, 0xe8, 0xf4, 0x23, 0xe2, 0xe1, 0x93, 0x0b, 0x59, 0x48, - 0x38, 0xfb, 0x59, 0xfb, 0x3f, 0x5b, 0x6c, 0xbb, 0x2e, 0x5f, 0xeb, 0x2e, 0x6c, 0x9d, 0xfc, 0xe4, - 0xd6, 0x69, 0x31, 0xb7, 0x65, 0xda, 0x63, 0xef, 0xf4, 0x09, 0x0b, 0x4e, 0x1b, 0x58, 0xcb, 0x4e, - 0x5c, 0xdb, 0x3c, 0xb7, 0xd3, 0x0a, 0x49, 0x14, 0xd1, 0x29, 0xf5, 0x88, 0x21, 0x8e, 0xe7, 0x86, - 0x05, 0x85, 0xe2, 0x65, 0xd2, 0xe1, 0xb2, 0xf9, 0x49, 0x28, 0xf3, 0x35, 0x17, 0x84, 0xe2, 0x23, - 0xa9, 0x77, 0x5b, 0x11, 0xed, 0x58, 0x61, 0x20, 0x1b, 0x06, 0x99, 0xcc, 0xa5, 0x32, 0x88, 0x9a, - 0x09, 0x40, 0xbf, 0xfb, 0x35, 0xd6, 0x82, 0x05, 0xc4, 0x8e, 0x12, 0xdd, 0x59, 0x0d, 0x09, 0x9b, - 0x0f, 0xf5, 0xf3, 0x2e, 0xf1, 0xea, 0x11, 0xdd, 0xd6, 0x39, 0xbe, 0x1f, 0xc4, 0x62, 0x87, 0x66, - 0x6c, 0xeb, 0x66, 0x75, 0x33, 0x36, 0x71, 0x28, 0x53, 0xcf, 0x59, 0x27, 0x1e, 0x1f, 0x51, 0xc1, - 0x74, 0x89, 0xb5, 0x60, 0x01, 0xb1, 0x6f, 0x15, 0xd8, 0x06, 0x52, 0x49, 0x34, 0x72, 0x37, 0xbc, - 0x0f, 0x61, 0x42, 0x05, 0xac, 0xe6, 0x27, 0x8f, 0x49, 0x6f, 0x0f, 0xc4, 0x6b, 0x29, 0x2d, 0x80, - 0x73, 0xe5, 0xba, 0xb7, 0x17, 0xe2, 0x03, 0x45, 0x98, 0x4a, 0x3e, 0xd0, 0xa5, 0x44, 0xe8, 0x96, - 0xd7, 0x60, 0x94, 0xf6, 0xd5, 0x19, 0xf8, 0xd8, 0xc4, 0xeb, 0x21, 0x87, 0x0b, 0x47, 0x29, 0x87, - 0x4d, 0x35, 0x51, 0xdc, 0x47, 0x4d, 0x3c, 0xae, 0x46, 0x7d, 0x20, 0x25, 0xf3, 0x92, 0xaa, 0xf2, - 0x0c, 0x0c, 0x44, 0x31, 0x69, 0x4d, 0x96, 0x92, 0x62, 0xb6, 0x1a, 0x93, 0x16, 0x66, 0x10, 0xf4, - 0xc3, 0x30, 0x1e, 0x3b, 0x61, 0x83, 0xc4, 0x21, 0xd9, 0x76, 0x99, 0x5f, 0x97, 0xed, 0x67, 0x2b, - 0x73, 0xc7, 0xa9, 0xd5, 0xb5, 0xc6, 0x40, 0x58, 0x82, 0x70, 0x1a, 0xd7, 0xfe, 0xef, 0x05, 0x78, - 0x30, 0xf9, 0x09, 0xb4, 0x62, 0xfc, 0x91, 0x84, 0x62, 0x7c, 0xbb, 0xa9, 0x18, 0x6f, 0xef, 0x4e, - 0x3d, 0xd4, 0xe3, 0xb1, 0xef, 0x18, 0xbd, 0x89, 0x2e, 0xa4, 0x3e, 0xc2, 0x4c, 0x97, 0x97, 0xf5, - 0x91, 0x1e, 0xef, 0x98, 0xfa, 0x4a, 0x8f, 0xc3, 0x60, 0x48, 0x9c, 0x28, 0xf0, 0xc5, 0x77, 0x52, - 0x5f, 0x13, 0xb3, 0x56, 0x2c, 0xa0, 0xf6, 0xd7, 0x2a, 0xe9, 0xc1, 0xbe, 0xc0, 0x7d, 0xd5, 0x41, - 0x88, 0x5c, 0x18, 0x60, 0xbb, 0x36, 0x2e, 0x59, 0x2e, 0x1f, 0x6e, 0x15, 0x52, 0x2d, 0xa2, 0x48, - 0xcf, 0x95, 0xe9, 0x57, 0xa3, 0x4d, 0x98, 0xb1, 0x40, 0x3b, 0x50, 0xae, 0xc9, 0xcd, 0x54, 0x21, - 0x0f, 0xb7, 0xa3, 0xd8, 0x4a, 0x69, 0x8e, 0x23, 0x54, 0xdc, 0xab, 0x1d, 0x98, 0xe2, 0x86, 0x08, - 0x14, 0x1b, 0x6e, 0x2c, 0x3e, 0xeb, 0x21, 0xb7, 0xcb, 0x17, 0x5c, 0xe3, 0x15, 0x87, 0xa8, 0x0e, - 0xba, 0xe0, 0xc6, 0x98, 0xd2, 0x47, 0x1f, 0xb1, 0x60, 0x38, 0xaa, 0x35, 0x57, 0xc3, 0x60, 0xdb, - 0xad, 0x93, 0x50, 0xd8, 0x98, 0x87, 0x94, 0x6c, 0xd5, 0xf9, 0x65, 0x49, 0x50, 0xf3, 0xe5, 0xee, - 0x0b, 0x0d, 0xc1, 0x26, 0x5f, 0xba, 0xf7, 0x7a, 0x50, 0xbc, 0xfb, 0x02, 0xa9, 0xb1, 0x15, 0x27, - 0xf7, 0xcc, 0x6c, 0xa6, 0x1c, 0xda, 0xe6, 0x5e, 0x68, 0xd7, 0xb6, 0xe8, 0x7a, 0xd3, 0x1d, 0x7a, - 0xe8, 0xd6, 0xee, 0xd4, 0x83, 0xf3, 0xd9, 0x3c, 0x71, 0xaf, 0xce, 0xb0, 0x01, 0x6b, 0xb5, 0x3d, - 0x0f, 0x93, 0x57, 0xdb, 0x84, 0x79, 0xc4, 0x72, 0x18, 0xb0, 0x55, 0x4d, 0x30, 0x35, 0x60, 0x06, - 0x04, 0x9b, 0x7c, 0xd1, 0xab, 0x30, 0xd8, 0x74, 0xe2, 0xd0, 0xdd, 0x11, 0x6e, 0xb0, 0x43, 0xee, - 0x82, 0x96, 0x19, 0x2d, 0xcd, 0x9c, 0x29, 0x7a, 0xde, 0x88, 0x05, 0x23, 0xd4, 0x84, 0x52, 0x93, - 0x84, 0x0d, 0x32, 0x59, 0xce, 0xc3, 0xe5, 0xbf, 0x4c, 0x49, 0x69, 0x86, 0x15, 0x6a, 0x5c, 0xb1, - 0x36, 0xcc, 0xb9, 0xa0, 0x97, 0xa1, 0x1c, 0x11, 0x8f, 0xd4, 0xa8, 0x79, 0x54, 0x61, 0x1c, 0x9f, - 0xe9, 0xd3, 0x54, 0xa4, 0x76, 0x49, 0x55, 0x3c, 0xca, 0x17, 0x98, 0xfc, 0x87, 0x15, 0x49, 0x3a, - 0x80, 0x2d, 0xaf, 0xdd, 0x70, 0xfd, 0x49, 0xc8, 0x63, 0x00, 0x57, 0x19, 0xad, 0xd4, 0x00, 0xf2, - 0x46, 0x2c, 0x18, 0xd9, 0xff, 0xcd, 0x02, 0x94, 0x14, 0x6a, 0x77, 0xc1, 0x26, 0x7e, 0x35, 0x69, - 0x13, 0x2f, 0xe5, 0x69, 0xb4, 0xf4, 0x30, 0x8b, 0x7f, 0xbd, 0x02, 0x29, 0x75, 0x70, 0x85, 0x44, - 0x31, 0xa9, 0xbf, 0x29, 0xc2, 0xdf, 0x14, 0xe1, 0x6f, 0x8a, 0x70, 0x25, 0xc2, 0xd7, 0x53, 0x22, - 0xfc, 0x9d, 0xc6, 0xaa, 0xd7, 0xb1, 0x07, 0xaf, 0xa8, 0xe0, 0x04, 0xb3, 0x07, 0x06, 0x02, 0x95, - 0x04, 0x97, 0xaa, 0x2b, 0x57, 0x32, 0x65, 0xf6, 0x2b, 0x49, 0x99, 0x7d, 0x58, 0x16, 0x7f, 0x1d, - 0xa4, 0xf4, 0x57, 0x2c, 0x78, 0x5b, 0x52, 0x7a, 0xc9, 0x99, 0xb3, 0xd8, 0xf0, 0x83, 0x90, 0x2c, - 0xb8, 0x1b, 0x1b, 0x24, 0x24, 0x7e, 0x8d, 0x44, 0xca, 0xb7, 0x63, 0xf5, 0xf2, 0xed, 0xa0, 0x67, - 0x61, 0xe4, 0x46, 0x14, 0xf8, 0xab, 0x81, 0xeb, 0x0b, 0x11, 0x44, 0x77, 0x1c, 0xc7, 0x6e, 0xed, - 0x4e, 0x8d, 0xd0, 0x11, 0x95, 0xed, 0x38, 0x81, 0x85, 0xe6, 0x61, 0xe2, 0xc6, 0xab, 0xab, 0x4e, - 0x6c, 0x78, 0x13, 0xe4, 0xbe, 0x9f, 0x9d, 0x47, 0x5d, 0x7a, 0x31, 0x05, 0xc4, 0xdd, 0xf8, 0xf6, - 0xdf, 0x2b, 0xc0, 0xa9, 0xd4, 0x8b, 0x04, 0x9e, 0x17, 0xb4, 0x63, 0xba, 0x27, 0x42, 0x9f, 0xb7, - 0xe0, 0x58, 0x33, 0xe9, 0xb0, 0x88, 0x84, 0xbb, 0xfb, 0xc7, 0x72, 0xd3, 0x11, 0x29, 0x8f, 0xc8, - 0xdc, 0xa4, 0x18, 0xa1, 0x63, 0x29, 0x40, 0x84, 0xbb, 0xfa, 0x82, 0x5e, 0x86, 0x4a, 0xd3, 0xd9, - 0xb9, 0xda, 0xaa, 0x3b, 0xb1, 0xdc, 0x8e, 0xf6, 0xf6, 0x22, 0xb4, 0x63, 0xd7, 0x9b, 0xe6, 0x51, - 0x2d, 0xd3, 0x8b, 0x7e, 0xbc, 0x12, 0x56, 0xe3, 0xd0, 0xf5, 0x1b, 0xdc, 0xc9, 0xb9, 0x2c, 0xc9, - 0x60, 0x4d, 0xd1, 0xfe, 0x9c, 0x95, 0x56, 0x52, 0x6a, 0x74, 0x42, 0x27, 0x26, 0x8d, 0x0e, 0x7a, - 0x1f, 0x94, 0xe8, 0xbe, 0x51, 0x8e, 0xca, 0xf5, 0x3c, 0x35, 0xa7, 0xf1, 0x25, 0xb4, 0x12, 0xa5, - 0xff, 0x22, 0xcc, 0x99, 0xda, 0x9f, 0xaf, 0xa4, 0x8d, 0x05, 0x76, 0x36, 0x7f, 0x16, 0xa0, 0x11, - 0xac, 0x91, 0x66, 0xcb, 0xa3, 0xc3, 0x62, 0xb1, 0x03, 0x1e, 0xe5, 0x2a, 0xb9, 0xa0, 0x20, 0xd8, - 0xc0, 0x42, 0x3f, 0x67, 0x01, 0x34, 0xe4, 0x9c, 0x97, 0x86, 0xc0, 0xd5, 0x3c, 0x5f, 0x47, 0xaf, - 0x28, 0xdd, 0x17, 0xc5, 0x10, 0x1b, 0xcc, 0xd1, 0x4f, 0x5b, 0x50, 0x8e, 0x65, 0xf7, 0xb9, 0x6a, - 0x5c, 0xcb, 0xb3, 0x27, 0xf2, 0xa5, 0xb5, 0x4d, 0xa4, 0x86, 0x44, 0xf1, 0x45, 0x3f, 0x63, 0x01, - 0x44, 0x1d, 0xbf, 0xb6, 0x1a, 0x78, 0x6e, 0xad, 0x23, 0x34, 0xe6, 0xb5, 0x5c, 0xdd, 0x39, 0x8a, - 0xfa, 0xdc, 0x18, 0x1d, 0x0d, 0xfd, 0x1f, 0x1b, 0x9c, 0xd1, 0xfb, 0xa1, 0x1c, 0x89, 0xe9, 0x26, - 0x74, 0xe4, 0x5a, 0xbe, 0x4e, 0x25, 0x4e, 0x5b, 0x88, 0x57, 0xf1, 0x0f, 0x2b, 0x9e, 0xe8, 0x33, - 0x16, 0x8c, 0xb7, 0x92, 0x6e, 0x42, 0xa1, 0x0e, 0xf3, 0x93, 0x01, 0x29, 0x37, 0x24, 0xf7, 0xb6, - 0xa4, 0x1a, 0x71, 0xba, 0x17, 0x54, 0x02, 0xea, 0x19, 0xbc, 0xd2, 0xe2, 0x2e, 0xcb, 0x21, 0x2d, - 0x01, 0x2f, 0xa4, 0x81, 0xb8, 0x1b, 0x1f, 0xad, 0xc2, 0x09, 0xda, 0xbb, 0x0e, 0x37, 0x3f, 0xa5, - 0x7a, 0x89, 0x98, 0x32, 0x2c, 0xcf, 0x3d, 0x2c, 0x66, 0x08, 0x3b, 0xeb, 0x48, 0xe3, 0xe0, 0xcc, - 0x27, 0xd1, 0x1f, 0x58, 0xf0, 0xb0, 0xcb, 0xd4, 0x80, 0xe9, 0xb0, 0xd7, 0x1a, 0x41, 0x1c, 0xb4, - 0x93, 0x5c, 0x65, 0x45, 0x2f, 0xf5, 0x33, 0xf7, 0x56, 0xf1, 0x06, 0x0f, 0x2f, 0xee, 0xd1, 0x25, - 0xbc, 0x67, 0x87, 0xd1, 0x0f, 0xc0, 0xa8, 0x5c, 0x17, 0xab, 0x54, 0x04, 0x33, 0x45, 0x5b, 0x99, - 0x9b, 0xb8, 0xb5, 0x3b, 0x35, 0xba, 0x66, 0x02, 0x70, 0x12, 0xcf, 0xfe, 0xd7, 0xc5, 0xc4, 0x29, - 0x91, 0xf2, 0x61, 0x32, 0x71, 0x53, 0x93, 0xfe, 0x1f, 0x29, 0x3d, 0x73, 0x15, 0x37, 0xca, 0xbb, - 0xa4, 0xc5, 0x8d, 0x6a, 0x8a, 0xb0, 0xc1, 0x9c, 0x1a, 0xa5, 0x13, 0x4e, 0xda, 0x53, 0x2a, 0x24, - 0xe0, 0xcb, 0x79, 0x76, 0xa9, 0xfb, 0x4c, 0xef, 0x94, 0xe8, 0xda, 0x44, 0x17, 0x08, 0x77, 0x77, - 0x09, 0xfd, 0x24, 0x54, 0x42, 0x15, 0xd9, 0x52, 0xcc, 0x63, 0xab, 0x26, 0xa7, 0x8d, 0xe8, 0x8e, - 0x3a, 0x00, 0xd2, 0x31, 0x2c, 0x9a, 0xa3, 0xfd, 0xfb, 0xc9, 0x83, 0x31, 0x43, 0x76, 0xf4, 0x71, - 0xe8, 0xf7, 0x49, 0x0b, 0x86, 0xc3, 0xc0, 0xf3, 0x5c, 0xbf, 0x41, 0xe5, 0x9c, 0x50, 0xd6, 0xef, - 0x3e, 0x12, 0x7d, 0x29, 0x04, 0x1a, 0xb3, 0xac, 0xb1, 0xe6, 0x89, 0xcd, 0x0e, 0xd8, 0xdf, 0xb4, - 0x60, 0xb2, 0x97, 0x3c, 0x46, 0x04, 0x1e, 0x92, 0xc2, 0x46, 0x0d, 0xc5, 0x8a, 0xbf, 0x40, 0x3c, - 0xa2, 0xdc, 0xe6, 0xe5, 0xb9, 0xc7, 0xc4, 0x6b, 0x3e, 0xb4, 0xda, 0x1b, 0x15, 0xef, 0x45, 0x07, - 0xbd, 0x04, 0xc7, 0x8c, 0xf7, 0x8a, 0xd4, 0xc0, 0x54, 0xe6, 0xa6, 0xa9, 0x01, 0x34, 0x9b, 0x82, - 0xdd, 0xde, 0x9d, 0x7a, 0x20, 0xdd, 0x26, 0x14, 0x46, 0x17, 0x1d, 0xfb, 0x97, 0x0b, 0xe9, 0xaf, - 0xa5, 0x74, 0xfd, 0x1b, 0x56, 0x97, 0x37, 0xe1, 0xc7, 0x8e, 0x42, 0xbf, 0x32, 0xbf, 0x83, 0x0a, - 0xc3, 0xe8, 0x8d, 0x73, 0x0f, 0x8f, 0xed, 0xed, 0x7f, 0x33, 0x00, 0x7b, 0xf4, 0xac, 0x0f, 0xe3, - 0xfd, 0xc0, 0xe7, 0xa8, 0x1f, 0xb7, 0xd4, 0x81, 0x19, 0x5f, 0xc3, 0xf5, 0xa3, 0x1a, 0x7b, 0xbe, - 0x7f, 0x8a, 0x78, 0xe8, 0x88, 0xf2, 0xa2, 0x27, 0x8f, 0xe6, 0xd0, 0x17, 0xac, 0xe4, 0x91, 0x1f, - 0x0f, 0x6a, 0x74, 0x8f, 0xac, 0x4f, 0xc6, 0x39, 0x22, 0xef, 0x98, 0x3e, 0x7d, 0xea, 0x75, 0xc2, - 0x38, 0x0d, 0xb0, 0xe1, 0xfa, 0x8e, 0xe7, 0xbe, 0x46, 0x77, 0x47, 0x25, 0xa6, 0xe0, 0x99, 0xc5, - 0x74, 0x5e, 0xb5, 0x62, 0x03, 0xe3, 0xf4, 0xdf, 0x84, 0x61, 0xe3, 0xcd, 0x33, 0x22, 0x5e, 0x4e, - 0x98, 0x11, 0x2f, 0x15, 0x23, 0x50, 0xe5, 0xf4, 0x3b, 0xe1, 0x58, 0xba, 0x83, 0x07, 0x79, 0xde, - 0xfe, 0xdf, 0x43, 0xe9, 0x33, 0xb8, 0x35, 0x12, 0x36, 0x69, 0xd7, 0xde, 0x74, 0x6c, 0xbd, 0xe9, - 0xd8, 0x7a, 0xd3, 0xb1, 0x65, 0x9e, 0x4d, 0x08, 0xa7, 0xcd, 0xd0, 0x5d, 0x72, 0xda, 0x24, 0xdc, - 0x50, 0xe5, 0xdc, 0xdd, 0x50, 0xf6, 0x47, 0xba, 0x3c, 0xf7, 0x6b, 0x21, 0x21, 0x28, 0x80, 0x92, - 0x1f, 0xd4, 0x89, 0xb4, 0x71, 0x2f, 0xe5, 0x63, 0xb0, 0x5d, 0x09, 0xea, 0x46, 0xb8, 0x38, 0xfd, - 0x17, 0x61, 0xce, 0xc7, 0xfe, 0xf0, 0x20, 0x24, 0xcc, 0x49, 0xfe, 0xdd, 0xbf, 0x0f, 0x86, 0x42, - 0xd2, 0x0a, 0xae, 0xe2, 0x25, 0xa1, 0xcb, 0x74, 0xb6, 0x0d, 0x6f, 0xc6, 0x12, 0x4e, 0x75, 0x5e, - 0xcb, 0x89, 0x37, 0x85, 0x32, 0x53, 0x3a, 0x6f, 0xd5, 0x89, 0x37, 0x31, 0x83, 0xa0, 0x77, 0xc2, - 0x58, 0x9c, 0x38, 0x0a, 0x17, 0x47, 0xbe, 0x0f, 0x08, 0xdc, 0xb1, 0xe4, 0x41, 0x39, 0x4e, 0x61, - 0xa3, 0x57, 0x61, 0x60, 0x93, 0x78, 0x4d, 0xf1, 0xe9, 0xab, 0xf9, 0xe9, 0x1a, 0xf6, 0xae, 0x17, - 0x89, 0xd7, 0xe4, 0x92, 0x90, 0xfe, 0xc2, 0x8c, 0x15, 0x9d, 0xf7, 0x95, 0xad, 0x76, 0x14, 0x07, - 0x4d, 0xf7, 0x35, 0xe9, 0xe9, 0xfc, 0xb1, 0x9c, 0x19, 0x5f, 0x96, 0xf4, 0xb9, 0x4b, 0x49, 0xfd, - 0xc5, 0x9a, 0x33, 0xeb, 0x47, 0xdd, 0x0d, 0xd9, 0x94, 0xe9, 0x08, 0x87, 0x65, 0xde, 0xfd, 0x58, - 0x90, 0xf4, 0x79, 0x3f, 0xd4, 0x5f, 0xac, 0x39, 0xa3, 0x8e, 0x5a, 0x7f, 0xc3, 0xac, 0x0f, 0x57, - 0x73, 0xee, 0x03, 0x5f, 0x7b, 0x99, 0xeb, 0xf0, 0x31, 0x28, 0xd5, 0x36, 0x9d, 0x30, 0x9e, 0x1c, - 0x61, 0x93, 0x46, 0xcd, 0xe2, 0x79, 0xda, 0x88, 0x39, 0x0c, 0x3d, 0x02, 0xc5, 0x90, 0x6c, 0xb0, - 0xe8, 0x64, 0x23, 0x2e, 0x0a, 0x93, 0x0d, 0x4c, 0xdb, 0x95, 0x5d, 0x36, 0xd6, 0x33, 0x60, 0xee, - 0x17, 0x0b, 0x49, 0xc3, 0x2e, 0x39, 0x32, 0x7c, 0x3d, 0xd4, 0xda, 0x61, 0x24, 0x1d, 0x64, 0xc6, - 0x7a, 0x60, 0xcd, 0x58, 0xc2, 0xd1, 0x07, 0x2d, 0x18, 0xba, 0x11, 0x05, 0xbe, 0x4f, 0x62, 0xa1, - 0x44, 0xaf, 0xe5, 0x3c, 0x58, 0x97, 0x38, 0x75, 0xdd, 0x07, 0xd1, 0x80, 0x25, 0x5f, 0xda, 0x5d, - 0xb2, 0x53, 0xf3, 0xda, 0xf5, 0xae, 0x60, 0x98, 0x73, 0xbc, 0x19, 0x4b, 0x38, 0x45, 0x75, 0x7d, - 0x8e, 0x3a, 0x90, 0x44, 0x5d, 0xf4, 0x05, 0xaa, 0x80, 0xdb, 0xbf, 0x5a, 0x86, 0x93, 0x99, 0xcb, - 0x87, 0x9a, 0x5c, 0xcc, 0xa8, 0x39, 0xef, 0x7a, 0x44, 0x86, 0x81, 0x31, 0x93, 0xeb, 0x9a, 0x6a, - 0xc5, 0x06, 0x06, 0xfa, 0x29, 0x80, 0x96, 0x13, 0x3a, 0x4d, 0xa2, 0x1c, 0xd8, 0x87, 0xb6, 0x6c, - 0x68, 0x3f, 0x56, 0x25, 0x4d, 0xbd, 0x89, 0x57, 0x4d, 0x11, 0x36, 0x58, 0xa2, 0xe7, 0x60, 0x38, - 0x24, 0x1e, 0x71, 0x22, 0x16, 0xfe, 0x9e, 0xce, 0xe5, 0xc1, 0x1a, 0x84, 0x4d, 0x3c, 0xf4, 0xb8, - 0x8a, 0x98, 0x4b, 0x45, 0x0e, 0x25, 0xa3, 0xe6, 0xd0, 0xa7, 0x2c, 0x18, 0xdb, 0x70, 0x3d, 0xa2, - 0xb9, 0x8b, 0xcc, 0x9b, 0x95, 0xc3, 0xbf, 0xe4, 0x79, 0x93, 0xae, 0x96, 0xa1, 0x89, 0xe6, 0x08, - 0xa7, 0xd8, 0xd3, 0xcf, 0xbc, 0x4d, 0x42, 0x26, 0x7c, 0x07, 0x93, 0x9f, 0xf9, 0x1a, 0x6f, 0xc6, - 0x12, 0x8e, 0x66, 0x61, 0xbc, 0xe5, 0x44, 0xd1, 0x7c, 0x48, 0xea, 0xc4, 0x8f, 0x5d, 0xc7, 0xe3, - 0x79, 0x31, 0x65, 0x1d, 0x4e, 0xbe, 0x9a, 0x04, 0xe3, 0x34, 0x3e, 0x7a, 0x17, 0x3c, 0xc8, 0x3d, - 0x44, 0xcb, 0x6e, 0x14, 0xb9, 0x7e, 0x43, 0x4f, 0x03, 0xe1, 0x28, 0x9b, 0x12, 0xa4, 0x1e, 0x5c, - 0xcc, 0x46, 0xc3, 0xbd, 0x9e, 0x47, 0x4f, 0x42, 0x39, 0xda, 0x72, 0x5b, 0xf3, 0x61, 0x3d, 0x62, - 0xa7, 0x43, 0x65, 0xed, 0x96, 0xad, 0x8a, 0x76, 0xac, 0x30, 0x50, 0x0d, 0x46, 0xf8, 0x27, 0xe1, - 0x21, 0x7f, 0x42, 0x82, 0x3e, 0xd5, 0x53, 0x91, 0x8b, 0x14, 0xd8, 0x69, 0xec, 0xdc, 0x3c, 0x27, - 0xcf, 0xaa, 0xf8, 0xd1, 0xca, 0x35, 0x83, 0x0c, 0x4e, 0x10, 0x4d, 0xee, 0xe9, 0x86, 0xfb, 0xd8, - 0xd3, 0x3d, 0x07, 0xc3, 0x5b, 0xed, 0x75, 0x22, 0x46, 0x5e, 0x08, 0x36, 0x35, 0xfb, 0x2e, 0x6b, - 0x10, 0x36, 0xf1, 0x58, 0xb4, 0x65, 0xcb, 0x15, 0xff, 0xa2, 0xc9, 0x51, 0x23, 0xda, 0x72, 0x75, - 0x51, 0x36, 0x63, 0x13, 0x87, 0x76, 0x8d, 0x8e, 0xc5, 0x1a, 0x89, 0x58, 0x32, 0x05, 0x1d, 0x2e, - 0xd5, 0xb5, 0xaa, 0x04, 0x60, 0x8d, 0x83, 0x56, 0xe1, 0x04, 0xfd, 0x53, 0x65, 0x29, 0xc0, 0xd7, - 0x1c, 0xcf, 0xad, 0xf3, 0xd0, 0xbf, 0xf1, 0xa4, 0x7f, 0xb3, 0x9a, 0x81, 0x83, 0x33, 0x9f, 0xb4, - 0x3f, 0x5b, 0x48, 0x7a, 0x4e, 0x4c, 0x11, 0x86, 0x22, 0x2a, 0xa8, 0xe2, 0x6b, 0x4e, 0x28, 0x0d, - 0x9e, 0x43, 0x26, 0x37, 0x09, 0xba, 0xd7, 0x9c, 0xd0, 0x14, 0x79, 0x8c, 0x01, 0x96, 0x9c, 0xd0, - 0x0d, 0x18, 0x88, 0x3d, 0x27, 0xa7, 0x6c, 0x48, 0x83, 0xa3, 0x76, 0x64, 0x2d, 0xcd, 0x46, 0x98, - 0xf1, 0x40, 0x0f, 0xd3, 0xdd, 0xdb, 0xba, 0x3c, 0x69, 0x13, 0x1b, 0xae, 0xf5, 0x08, 0xb3, 0x56, - 0xfb, 0x6f, 0x8f, 0x66, 0x68, 0x1d, 0x65, 0x08, 0xa0, 0xb3, 0x00, 0x74, 0xd2, 0xac, 0x86, 0x64, - 0xc3, 0xdd, 0x11, 0x86, 0x98, 0x92, 0x6c, 0x57, 0x14, 0x04, 0x1b, 0x58, 0xf2, 0x99, 0x6a, 0x7b, - 0x83, 0x3e, 0x53, 0xe8, 0x7e, 0x86, 0x43, 0xb0, 0x81, 0x85, 0x9e, 0x85, 0x41, 0xb7, 0xe9, 0x34, - 0x54, 0x20, 0xf0, 0xc3, 0x54, 0xa4, 0x2d, 0xb2, 0x96, 0xdb, 0xbb, 0x53, 0x63, 0xaa, 0x43, 0xac, - 0x09, 0x0b, 0x5c, 0xf4, 0xcb, 0x16, 0x8c, 0xd4, 0x82, 0x66, 0x33, 0xf0, 0xf9, 0xf6, 0x59, 0xf8, - 0x02, 0x6e, 0x1c, 0x95, 0x99, 0x34, 0x3d, 0x6f, 0x30, 0xe3, 0xce, 0x00, 0x95, 0xb6, 0x69, 0x82, - 0x70, 0xa2, 0x57, 0xa6, 0xe4, 0x2b, 0xed, 0x23, 0xf9, 0x7e, 0xcd, 0x82, 0x09, 0xfe, 0xac, 0xb1, - 0xab, 0x17, 0x19, 0x8a, 0xc1, 0x11, 0xbf, 0x56, 0x97, 0xa3, 0x43, 0x39, 0x7b, 0xbb, 0xe0, 0xb8, - 0xbb, 0x93, 0xe8, 0x02, 0x4c, 0x6c, 0x04, 0x61, 0x8d, 0x98, 0x03, 0x21, 0xc4, 0xb6, 0x22, 0x74, - 0x3e, 0x8d, 0x80, 0xbb, 0x9f, 0x41, 0xd7, 0xe0, 0x01, 0xa3, 0xd1, 0x1c, 0x07, 0x2e, 0xb9, 0x1f, - 0x15, 0xd4, 0x1e, 0x38, 0x9f, 0x89, 0x85, 0x7b, 0x3c, 0x9d, 0x14, 0x92, 0x95, 0x3e, 0x84, 0xe4, - 0x2b, 0x70, 0xaa, 0xd6, 0x3d, 0x32, 0xdb, 0x51, 0x7b, 0x3d, 0xe2, 0x72, 0xbc, 0x3c, 0xf7, 0x3d, - 0x82, 0xc0, 0xa9, 0xf9, 0x5e, 0x88, 0xb8, 0x37, 0x0d, 0xf4, 0x3e, 0x28, 0x87, 0x84, 0x7d, 0x95, - 0x48, 0xa4, 0xeb, 0x1d, 0xd2, 0xdb, 0xa1, 0x2d, 0x78, 0x4e, 0x56, 0x6b, 0x26, 0xd1, 0x10, 0x61, - 0xc5, 0x11, 0xdd, 0x84, 0xa1, 0x96, 0x13, 0xd7, 0x36, 0x45, 0x92, 0xde, 0xa1, 0x7d, 0xf3, 0x8a, - 0x39, 0x3b, 0x4a, 0x31, 0x4a, 0x1e, 0x70, 0x26, 0x58, 0x72, 0xa3, 0xb6, 0x5a, 0x2d, 0x68, 0xb6, - 0x02, 0x9f, 0xf8, 0xb1, 0x54, 0x22, 0x63, 0xfc, 0xbc, 0x43, 0xb6, 0x62, 0x03, 0xa3, 0x4b, 0x97, - 0x6b, 0xb4, 0xc9, 0x89, 0x3d, 0x74, 0xb9, 0x41, 0xad, 0xd7, 0xf3, 0x54, 0xd9, 0x30, 0xb7, 0xe2, - 0x75, 0x37, 0xde, 0x0c, 0xda, 0xb1, 0xdc, 0x25, 0x0b, 0x45, 0xa5, 0x94, 0xcd, 0x52, 0x06, 0x0e, - 0xce, 0x7c, 0x32, 0xad, 0x59, 0xc7, 0xef, 0x4c, 0xb3, 0x1e, 0xeb, 0x43, 0xb3, 0x56, 0xe1, 0x24, - 0xeb, 0x81, 0xb0, 0x92, 0xa5, 0xd3, 0x32, 0x9a, 0x44, 0xac, 0xf3, 0x2a, 0xbf, 0x65, 0x29, 0x0b, - 0x09, 0x67, 0x3f, 0x7b, 0xfa, 0x47, 0x60, 0xa2, 0x4b, 0xc8, 0x1d, 0xc8, 0x21, 0xb9, 0x00, 0x0f, - 0x64, 0x8b, 0x93, 0x03, 0xb9, 0x25, 0x7f, 0x35, 0x15, 0x97, 0x6e, 0x6c, 0xd1, 0xfa, 0x70, 0x71, - 0x3b, 0x50, 0x24, 0xfe, 0xb6, 0xd0, 0xae, 0xe7, 0x0f, 0x37, 0xab, 0xcf, 0xf9, 0xdb, 0x5c, 0x1a, - 0x32, 0x3f, 0xde, 0x39, 0x7f, 0x1b, 0x53, 0xda, 0xe8, 0x17, 0xac, 0xc4, 0x06, 0x82, 0x3b, 0xc6, - 0xdf, 0x73, 0x24, 0x7b, 0xd2, 0xbe, 0xf7, 0x14, 0xf6, 0xbf, 0x2d, 0xc0, 0x99, 0xfd, 0x88, 0xf4, - 0x31, 0x7c, 0x8f, 0xc1, 0x60, 0xc4, 0x22, 0x4d, 0x84, 0xba, 0x1a, 0xa6, 0xab, 0x98, 0xc7, 0x9e, - 0xbc, 0x82, 0x05, 0x08, 0x79, 0x50, 0x6c, 0x3a, 0x2d, 0xe1, 0x2f, 0x5d, 0x3c, 0x6c, 0xfe, 0x1e, - 0xfd, 0xef, 0x78, 0xcb, 0x4e, 0x8b, 0xcf, 0x79, 0xa3, 0x01, 0x53, 0x36, 0x28, 0x86, 0x92, 0x13, - 0x86, 0x8e, 0x0c, 0x6b, 0xb8, 0x9c, 0x0f, 0xbf, 0x59, 0x4a, 0x92, 0x9f, 0x0a, 0x27, 0x9a, 0x30, - 0x67, 0x66, 0x7f, 0xa6, 0x9c, 0x48, 0xf6, 0x62, 0xb1, 0x2a, 0x11, 0x0c, 0x0a, 0x37, 0xa9, 0x95, - 0x77, 0xda, 0x24, 0xcf, 0xa6, 0x66, 0x1e, 0x08, 0x51, 0x93, 0x42, 0xb0, 0x42, 0x1f, 0xb3, 0x58, - 0xe5, 0x07, 0x99, 0x41, 0x27, 0x76, 0xf5, 0x47, 0x53, 0x88, 0xc2, 0xac, 0x27, 0x21, 0x1b, 0xb1, - 0xc9, 0x5d, 0x54, 0xb7, 0x61, 0xbb, 0x99, 0xee, 0xea, 0x36, 0x6c, 0x77, 0x22, 0xe1, 0x68, 0x27, - 0x23, 0x26, 0x25, 0x87, 0xea, 0x01, 0x7d, 0x44, 0xa1, 0x7c, 0xc1, 0x82, 0x09, 0x37, 0x1d, 0x5c, - 0x20, 0xf6, 0xc0, 0xd7, 0xf3, 0xf1, 0x69, 0x76, 0xc7, 0x2e, 0x28, 0x43, 0xa7, 0x0b, 0x84, 0xbb, - 0x3b, 0x83, 0xea, 0x30, 0xe0, 0xfa, 0x1b, 0x81, 0x30, 0xef, 0xe6, 0x0e, 0xd7, 0xa9, 0x45, 0x7f, - 0x23, 0xd0, 0xab, 0x99, 0xfe, 0xc3, 0x8c, 0x3a, 0x5a, 0x82, 0x13, 0x32, 0xdf, 0xe7, 0xa2, 0x1b, - 0xc5, 0x41, 0xd8, 0x59, 0x72, 0x9b, 0x6e, 0xcc, 0x4c, 0xb3, 0xe2, 0xdc, 0x24, 0x55, 0x6f, 0x38, - 0x03, 0x8e, 0x33, 0x9f, 0x42, 0xaf, 0xc1, 0x90, 0x3c, 0xd0, 0x2f, 0xe7, 0xe1, 0x4f, 0xe8, 0x9e, - 0xff, 0x6a, 0x32, 0x55, 0xc5, 0x89, 0xbe, 0x64, 0x88, 0x3e, 0x6a, 0xc1, 0x18, 0xff, 0x7d, 0xb1, - 0x53, 0xe7, 0x29, 0x86, 0x95, 0x3c, 0xa2, 0xf6, 0xab, 0x09, 0x9a, 0x73, 0xe8, 0xd6, 0xee, 0xd4, - 0x58, 0xb2, 0x0d, 0xa7, 0xf8, 0xda, 0xff, 0x64, 0x04, 0xba, 0x43, 0x20, 0x92, 0xf1, 0x0e, 0xd6, - 0xdd, 0x8e, 0x77, 0xa0, 0xbb, 0xca, 0x48, 0x87, 0x2a, 0xe4, 0xb0, 0xcc, 0x04, 0x57, 0x7d, 0x0c, - 0xdd, 0xf1, 0x6b, 0x98, 0xf1, 0x40, 0x6d, 0x18, 0xe4, 0xc5, 0xa5, 0x84, 0x06, 0x38, 0xfc, 0xc9, - 0xb7, 0x59, 0xa4, 0x4a, 0xbb, 0xb5, 0x78, 0x2b, 0x16, 0xcc, 0xd0, 0x0e, 0x0c, 0x6d, 0xf2, 0xe9, - 0x28, 0xf6, 0x7a, 0xcb, 0x87, 0x1d, 0xdf, 0xc4, 0x1c, 0xd7, 0x93, 0x4f, 0x34, 0x60, 0xc9, 0x8e, - 0x85, 0xd7, 0x19, 0x01, 0x40, 0x5c, 0x90, 0xe4, 0x97, 0x2d, 0xd9, 0x7f, 0xf4, 0xcf, 0x7b, 0x61, - 0x24, 0x24, 0xb5, 0xc0, 0xaf, 0xb9, 0x1e, 0xa9, 0xcf, 0xca, 0x03, 0xb1, 0x83, 0x24, 0xc9, 0x31, - 0x6f, 0x12, 0x36, 0x68, 0xe0, 0x04, 0x45, 0xb6, 0xce, 0x54, 0xe2, 0x3c, 0xfd, 0x20, 0x44, 0x1c, - 0x7c, 0x2c, 0xe5, 0x94, 0xa6, 0xcf, 0x68, 0xf2, 0x75, 0x96, 0x6c, 0xc3, 0x29, 0xbe, 0xe8, 0x25, - 0x80, 0x60, 0x9d, 0xc7, 0xd0, 0xcd, 0xc6, 0xe2, 0x14, 0xe4, 0x20, 0xaf, 0x3a, 0xc6, 0x93, 0x6d, - 0x25, 0x05, 0x6c, 0x50, 0x43, 0x97, 0x01, 0xf8, 0xca, 0x59, 0xeb, 0xb4, 0xe4, 0x86, 0x50, 0x66, - 0x39, 0x42, 0x55, 0x41, 0x6e, 0xef, 0x4e, 0x75, 0xfb, 0x9c, 0x59, 0xa0, 0x90, 0xf1, 0x38, 0xfa, - 0x09, 0x18, 0x8a, 0xda, 0xcd, 0xa6, 0xa3, 0xce, 0x48, 0x72, 0x4c, 0xdf, 0xe5, 0x74, 0x0d, 0xc1, - 0xc8, 0x1b, 0xb0, 0xe4, 0x88, 0x6e, 0x50, 0x11, 0x2f, 0x24, 0x14, 0x5f, 0x45, 0xdc, 0x42, 0xe1, - 0x9e, 0xc0, 0x77, 0xc8, 0x5d, 0x0c, 0xce, 0xc0, 0xb9, 0xbd, 0x3b, 0xf5, 0x40, 0xb2, 0x7d, 0x29, - 0x10, 0x09, 0xb5, 0x99, 0x34, 0xd1, 0x25, 0x59, 0x47, 0x8b, 0xbe, 0xb6, 0x2c, 0xef, 0xf2, 0x84, - 0xae, 0xa3, 0xc5, 0x9a, 0x7b, 0x8f, 0x99, 0xf9, 0x30, 0x5a, 0x86, 0xe3, 0xb5, 0xc0, 0x8f, 0xc3, - 0xc0, 0xf3, 0x78, 0x8d, 0x3d, 0xbe, 0x37, 0xe7, 0x67, 0x28, 0x0f, 0x89, 0x6e, 0x1f, 0x9f, 0xef, - 0x46, 0xc1, 0x59, 0xcf, 0x51, 0x9b, 0x3c, 0xad, 0x1f, 0xc6, 0x72, 0x39, 0x5e, 0x4f, 0xd0, 0x14, - 0x12, 0x4a, 0xb9, 0xbd, 0xf7, 0xd1, 0x14, 0x7e, 0xf2, 0x90, 0x55, 0x7c, 0xb1, 0x67, 0x61, 0x84, - 0xec, 0xc4, 0x24, 0xf4, 0x1d, 0xef, 0x2a, 0x5e, 0x92, 0x07, 0x16, 0x6c, 0x61, 0x9e, 0x33, 0xda, - 0x71, 0x02, 0x0b, 0xd9, 0xca, 0x4b, 0x66, 0x64, 0xae, 0x73, 0x2f, 0x99, 0xf4, 0x89, 0xd9, 0x5f, - 0x2a, 0x26, 0x6c, 0xd6, 0x7b, 0x72, 0xa4, 0xcb, 0x4a, 0x24, 0xc9, 0x5a, 0x52, 0x0c, 0x20, 0xf6, - 0x62, 0x79, 0x72, 0x56, 0x25, 0x92, 0x56, 0x4c, 0x46, 0x38, 0xc9, 0x17, 0x6d, 0x41, 0x69, 0x33, - 0x88, 0x62, 0xb9, 0x43, 0x3b, 0xe4, 0x66, 0xf0, 0x62, 0x10, 0xc5, 0xcc, 0xd0, 0x52, 0xaf, 0x4d, - 0x5b, 0x22, 0xcc, 0x79, 0xd0, 0xbd, 0x7f, 0xb4, 0xe9, 0x84, 0xf5, 0x68, 0x9e, 0xd5, 0x99, 0x18, - 0x60, 0x16, 0x96, 0xb2, 0xa7, 0xab, 0x1a, 0x84, 0x4d, 0x3c, 0xfb, 0xcf, 0xac, 0xc4, 0xa9, 0xd6, - 0x75, 0x96, 0x34, 0xb0, 0x4d, 0x7c, 0x2a, 0xa2, 0xcc, 0x30, 0xc5, 0x1f, 0x48, 0xa5, 0x60, 0xbf, - 0xad, 0x57, 0x39, 0xcc, 0x9b, 0x94, 0xc2, 0x34, 0x23, 0x61, 0x44, 0x34, 0x7e, 0xc0, 0x4a, 0xe6, - 0xd2, 0x17, 0xf2, 0xd8, 0xba, 0x99, 0xf5, 0x24, 0xf6, 0x4d, 0xcb, 0xb7, 0x7f, 0xc1, 0x82, 0xa1, - 0x39, 0xa7, 0xb6, 0x15, 0x6c, 0x6c, 0xa0, 0x27, 0xa1, 0x5c, 0x6f, 0x87, 0x66, 0x5a, 0xbf, 0x72, - 0x56, 0x2d, 0x88, 0x76, 0xac, 0x30, 0xe8, 0xd4, 0xdf, 0x70, 0x6a, 0xb2, 0xaa, 0x44, 0x91, 0x4f, - 0xfd, 0xf3, 0xac, 0x05, 0x0b, 0x08, 0x1d, 0xfe, 0xa6, 0xb3, 0x23, 0x1f, 0x4e, 0x1f, 0xa9, 0x2d, - 0x6b, 0x10, 0x36, 0xf1, 0xec, 0xdf, 0xb5, 0x60, 0x72, 0xce, 0x89, 0xdc, 0xda, 0x6c, 0x3b, 0xde, - 0x9c, 0x73, 0xe3, 0xf5, 0x76, 0x6d, 0x8b, 0xc4, 0xbc, 0xfa, 0x08, 0xed, 0x65, 0x3b, 0xa2, 0x2b, - 0x50, 0xed, 0x98, 0x55, 0x2f, 0xaf, 0x8a, 0x76, 0xac, 0x30, 0xd0, 0x6b, 0x30, 0xdc, 0x72, 0xa2, - 0xe8, 0x66, 0x10, 0xd6, 0x31, 0xd9, 0xc8, 0xa7, 0x3e, 0x51, 0x95, 0xd4, 0x42, 0x12, 0x63, 0xb2, - 0x21, 0x02, 0x54, 0x34, 0x7d, 0x6c, 0x32, 0xb3, 0x7f, 0xce, 0x82, 0x13, 0x73, 0xc4, 0x09, 0x49, - 0xc8, 0xca, 0x19, 0xa9, 0x17, 0x41, 0xaf, 0x42, 0x39, 0xa6, 0x2d, 0xb4, 0x47, 0x56, 0xbe, 0x3d, - 0x62, 0xa1, 0x25, 0x6b, 0x82, 0x38, 0x56, 0x6c, 0xec, 0x4f, 0x5a, 0x70, 0x2a, 0xab, 0x2f, 0xf3, - 0x5e, 0xd0, 0xae, 0xdf, 0x8b, 0x0e, 0xfd, 0x5d, 0x0b, 0x46, 0xd8, 0x71, 0xfd, 0x02, 0x89, 0x1d, - 0xd7, 0xeb, 0x2a, 0xa5, 0x68, 0xf5, 0x59, 0x4a, 0xf1, 0x0c, 0x0c, 0x6c, 0x06, 0x4d, 0x92, 0x0e, - 0x35, 0xb9, 0x18, 0x34, 0x09, 0x66, 0x10, 0xf4, 0x34, 0x9d, 0x84, 0xae, 0x1f, 0x3b, 0x74, 0x39, - 0xca, 0xe3, 0x8c, 0x71, 0x3e, 0x01, 0x55, 0x33, 0x36, 0x71, 0xec, 0xdf, 0xaa, 0xc0, 0x90, 0x88, - 0x8b, 0xea, 0xbb, 0x1a, 0x8e, 0xf4, 0xe2, 0x14, 0x7a, 0x7a, 0x71, 0x22, 0x18, 0xac, 0xb1, 0x7a, - 0xb7, 0xc2, 0x42, 0xbf, 0x9c, 0x4b, 0x20, 0x1d, 0x2f, 0xa1, 0xab, 0xbb, 0xc5, 0xff, 0x63, 0xc1, - 0x0a, 0xbd, 0x6e, 0xc1, 0x78, 0x2d, 0xf0, 0x7d, 0x52, 0xd3, 0xb6, 0xe3, 0x40, 0x1e, 0x1b, 0x84, - 0xf9, 0x24, 0x51, 0x7d, 0x12, 0x9c, 0x02, 0xe0, 0x34, 0x7b, 0xf4, 0x02, 0x8c, 0xf2, 0x31, 0xbb, - 0x96, 0x38, 0x83, 0xd1, 0x15, 0xf6, 0x4c, 0x20, 0x4e, 0xe2, 0xa2, 0x69, 0x7e, 0x96, 0x25, 0x6a, - 0xd9, 0x0d, 0x6a, 0x57, 0xb5, 0x51, 0xc5, 0xce, 0xc0, 0x40, 0x21, 0xa0, 0x90, 0x6c, 0x84, 0x24, - 0xda, 0x14, 0x71, 0x63, 0xcc, 0x6e, 0x1d, 0xba, 0xb3, 0x3a, 0x16, 0xb8, 0x8b, 0x12, 0xce, 0xa0, - 0x8e, 0xb6, 0x84, 0x1b, 0xa1, 0x9c, 0x87, 0x3c, 0x17, 0x9f, 0xb9, 0xa7, 0x37, 0x61, 0x0a, 0x4a, - 0x4c, 0x75, 0x31, 0x7b, 0xb9, 0xc8, 0x73, 0x27, 0x99, 0x62, 0xc3, 0xbc, 0x1d, 0x2d, 0xc0, 0xb1, - 0x54, 0x7d, 0xc0, 0x48, 0x9c, 0x95, 0xa8, 0x3c, 0xb9, 0x54, 0x65, 0xc1, 0x08, 0x77, 0x3d, 0x61, - 0xba, 0x98, 0x86, 0xf7, 0x71, 0x31, 0x75, 0x54, 0x74, 0x32, 0x3f, 0xc5, 0x78, 0x31, 0x97, 0x01, - 0xe8, 0x2b, 0x14, 0xf9, 0x13, 0xa9, 0x50, 0xe4, 0x51, 0xd6, 0x81, 0x6b, 0xf9, 0x74, 0xe0, 0xe0, - 0x71, 0xc7, 0xf7, 0x32, 0x8e, 0xf8, 0x7f, 0x59, 0x20, 0xbf, 0xeb, 0xbc, 0x53, 0xdb, 0x24, 0x74, - 0xca, 0xa0, 0x77, 0xc2, 0x98, 0xf2, 0x4e, 0x70, 0x93, 0xc8, 0x62, 0xb3, 0x46, 0xd9, 0xce, 0x38, - 0x01, 0xc5, 0x29, 0x6c, 0x34, 0x03, 0x15, 0x3a, 0x4e, 0xfc, 0x51, 0xae, 0xf7, 0x95, 0x07, 0x64, - 0x76, 0x75, 0x51, 0x3c, 0xa5, 0x71, 0x50, 0x00, 0x13, 0x9e, 0x13, 0xc5, 0xac, 0x07, 0xd5, 0x8e, - 0x5f, 0xbb, 0xc3, 0x2a, 0x32, 0x2c, 0x19, 0x6b, 0x29, 0x4d, 0x08, 0x77, 0xd3, 0xb6, 0xff, 0x7d, - 0x09, 0x46, 0x13, 0x92, 0xf1, 0x80, 0x06, 0xc3, 0x93, 0x50, 0x96, 0x3a, 0x3c, 0x5d, 0x2e, 0x4b, - 0x29, 0x7a, 0x85, 0x41, 0x95, 0xd6, 0xba, 0xd6, 0xaa, 0x69, 0x03, 0xc7, 0x50, 0xb8, 0xd8, 0xc4, - 0x63, 0x42, 0x39, 0xf6, 0xa2, 0x79, 0xcf, 0x25, 0x7e, 0xcc, 0xbb, 0x99, 0x8f, 0x50, 0x5e, 0x5b, - 0xaa, 0x9a, 0x44, 0xb5, 0x50, 0x4e, 0x01, 0x70, 0x9a, 0x3d, 0xfa, 0xb0, 0x05, 0xa3, 0xce, 0xcd, - 0x48, 0x17, 0x65, 0x17, 0x41, 0xc7, 0x87, 0x54, 0x52, 0x89, 0x3a, 0xef, 0xdc, 0xb1, 0x9f, 0x68, - 0xc2, 0x49, 0xa6, 0xe8, 0x0d, 0x0b, 0x10, 0xd9, 0x21, 0x35, 0x19, 0x16, 0x2d, 0xfa, 0x32, 0x98, - 0xc7, 0x0e, 0xfe, 0x5c, 0x17, 0x5d, 0x2e, 0xd5, 0xbb, 0xdb, 0x71, 0x46, 0x1f, 0xd0, 0x25, 0x40, - 0x75, 0x37, 0x72, 0xd6, 0x3d, 0x32, 0x1f, 0x34, 0x65, 0x02, 0xb1, 0x38, 0x4f, 0x3f, 0x2d, 0xc6, - 0x19, 0x2d, 0x74, 0x61, 0xe0, 0x8c, 0xa7, 0xd8, 0x2c, 0x0b, 0x83, 0x9d, 0xce, 0xd5, 0xd0, 0x63, - 0x5a, 0xc2, 0x9c, 0x65, 0xa2, 0x1d, 0x2b, 0x0c, 0xfb, 0xcf, 0x8b, 0x6a, 0x29, 0xeb, 0x1c, 0x00, - 0xc7, 0x88, 0x45, 0xb6, 0xee, 0x3c, 0x16, 0x59, 0x47, 0x4a, 0x75, 0xa7, 0xc5, 0x27, 0xb2, 0x68, - 0x0b, 0xf7, 0x28, 0x8b, 0xf6, 0xa7, 0xad, 0x44, 0x49, 0xba, 0xe1, 0xb3, 0x2f, 0xe5, 0x9b, 0x7f, - 0x30, 0xcd, 0xa3, 0xb8, 0x52, 0x7a, 0x25, 0x15, 0xbc, 0xf7, 0x24, 0x94, 0x37, 0x3c, 0x87, 0x15, - 0x52, 0x61, 0x0b, 0xd5, 0x88, 0x30, 0x3b, 0x2f, 0xda, 0xb1, 0xc2, 0xa0, 0x52, 0xdf, 0x20, 0x7a, - 0x20, 0xa9, 0xfd, 0x9f, 0x8a, 0x30, 0x6c, 0x68, 0xfc, 0x4c, 0xf3, 0xcd, 0xba, 0xcf, 0xcc, 0xb7, - 0xc2, 0x01, 0xcc, 0xb7, 0x9f, 0x82, 0x4a, 0x4d, 0x6a, 0xa3, 0x7c, 0x4a, 0xec, 0xa7, 0x75, 0x9c, - 0x56, 0x48, 0xaa, 0x09, 0x6b, 0x9e, 0xe8, 0x42, 0x22, 0x53, 0x33, 0xe1, 0x17, 0xc8, 0x4a, 0xa5, - 0x14, 0x1a, 0xad, 0xfb, 0x99, 0x74, 0x7c, 0x40, 0x69, 0xff, 0xf8, 0x00, 0xfb, 0x1b, 0x96, 0xfa, - 0xb8, 0x77, 0xa1, 0x24, 0xcf, 0x8d, 0x64, 0x49, 0x9e, 0x73, 0xb9, 0x0c, 0x73, 0x8f, 0x5a, 0x3c, - 0x57, 0x60, 0x68, 0x3e, 0x68, 0x36, 0x1d, 0xbf, 0x8e, 0xbe, 0x17, 0x86, 0x6a, 0xfc, 0xa7, 0xf0, - 0xa1, 0xb1, 0xc3, 0x6a, 0x01, 0xc5, 0x12, 0x86, 0x1e, 0x86, 0x01, 0x27, 0x6c, 0x48, 0xbf, 0x19, - 0x0b, 0x82, 0x9b, 0x0d, 0x1b, 0x11, 0x66, 0xad, 0xf6, 0x5f, 0x5a, 0x30, 0x46, 0x1f, 0x71, 0xd9, - 0x4b, 0xb1, 0xd7, 0x79, 0x1c, 0x06, 0x9d, 0x76, 0xbc, 0x19, 0x74, 0xed, 0xc3, 0x66, 0x59, 0x2b, - 0x16, 0x50, 0xba, 0x0f, 0x53, 0xb5, 0x1c, 0x8c, 0x7d, 0xd8, 0x02, 0x9d, 0xcb, 0x0c, 0x42, 0x4d, - 0xd9, 0xa8, 0xbd, 0x9e, 0x75, 0x5a, 0x5a, 0xe5, 0xcd, 0x58, 0xc2, 0x29, 0xb1, 0xf5, 0xa0, 0xde, - 0x11, 0xa1, 0xbd, 0x8a, 0xd8, 0x5c, 0x50, 0xef, 0x60, 0x06, 0x41, 0x8f, 0x40, 0x31, 0xda, 0x74, - 0xe4, 0xb9, 0xbc, 0x8c, 0x32, 0xaf, 0x5e, 0x9c, 0xc5, 0xb4, 0x5d, 0x25, 0x4d, 0x84, 0x5e, 0x3a, - 0xc6, 0x36, 0x99, 0x34, 0x11, 0x7a, 0xf6, 0xbf, 0x1c, 0x00, 0x16, 0x6f, 0xe3, 0x84, 0xa4, 0xbe, - 0x16, 0xb0, 0x6a, 0xc0, 0x47, 0x7a, 0xac, 0xad, 0x37, 0xb2, 0xf7, 0xf3, 0xd1, 0xb6, 0x71, 0xbc, - 0x59, 0xbc, 0xdb, 0xc7, 0x9b, 0xd9, 0x27, 0xd6, 0x03, 0xf7, 0xd1, 0x89, 0xb5, 0xfd, 0x71, 0x0b, - 0x90, 0x8a, 0x9e, 0xd2, 0x21, 0x25, 0x33, 0x50, 0x51, 0xe1, 0x5a, 0x62, 0xbd, 0x68, 0xb1, 0x28, - 0x01, 0x58, 0xe3, 0xf4, 0xe1, 0xbd, 0x78, 0x4c, 0xea, 0xac, 0x62, 0x32, 0xe7, 0x82, 0x69, 0x3a, - 0xa1, 0xc2, 0xec, 0xdf, 0x2e, 0xc0, 0x03, 0xdc, 0x5c, 0x5a, 0x76, 0x7c, 0xa7, 0x41, 0x9a, 0xb4, - 0x57, 0xfd, 0x06, 0x09, 0xd5, 0xe8, 0xb6, 0xd9, 0x95, 0x19, 0x12, 0x87, 0x95, 0x57, 0x5c, 0xce, - 0x70, 0xc9, 0xb2, 0xe8, 0xbb, 0x31, 0x66, 0xc4, 0x51, 0x04, 0x65, 0x79, 0x1f, 0x91, 0xd0, 0x3f, - 0x39, 0x31, 0x52, 0xa2, 0x58, 0x58, 0x16, 0x04, 0x2b, 0x46, 0xd4, 0x7c, 0xf0, 0x82, 0xda, 0x16, - 0x5d, 0xf2, 0x69, 0xf3, 0x61, 0x49, 0xb4, 0x63, 0x85, 0x61, 0x37, 0x61, 0x5c, 0x8e, 0x61, 0xeb, - 0x32, 0xe9, 0x60, 0xb2, 0x41, 0x75, 0x6e, 0x4d, 0x36, 0x19, 0x57, 0x24, 0x29, 0x9d, 0x3b, 0x6f, - 0x02, 0x71, 0x12, 0x57, 0x16, 0x08, 0x2e, 0x64, 0x17, 0x08, 0xb6, 0x7f, 0xdb, 0x82, 0xb4, 0xd2, - 0x37, 0xca, 0xa1, 0x5a, 0x7b, 0x96, 0x43, 0x3d, 0x40, 0x41, 0xd1, 0x1f, 0x87, 0x61, 0x27, 0xa6, - 0x56, 0x1d, 0xf7, 0xc0, 0x14, 0xef, 0xec, 0xe4, 0x70, 0x39, 0xa8, 0xbb, 0x1b, 0x2e, 0xf3, 0xbc, - 0x98, 0xe4, 0xec, 0x37, 0x2c, 0xa8, 0x2c, 0x84, 0x9d, 0x83, 0xa7, 0xaa, 0x75, 0x27, 0xa2, 0x15, - 0x0e, 0x94, 0x88, 0x26, 0x53, 0xdd, 0x8a, 0xbd, 0x52, 0xdd, 0xec, 0xbf, 0x1a, 0x80, 0x89, 0xae, - 0xdc, 0x4b, 0xf4, 0x3c, 0x8c, 0xa8, 0xaf, 0x24, 0xdd, 0xae, 0x15, 0x33, 0x78, 0x59, 0xc3, 0x70, - 0x02, 0xb3, 0x8f, 0xa5, 0xba, 0x08, 0xc7, 0x43, 0xf2, 0x6a, 0x9b, 0xb4, 0xc9, 0xec, 0x46, 0x4c, - 0xc2, 0x2a, 0xa9, 0x05, 0x7e, 0x9d, 0xd7, 0x13, 0x2e, 0xce, 0x3d, 0x78, 0x6b, 0x77, 0xea, 0x38, - 0xee, 0x06, 0xe3, 0xac, 0x67, 0x50, 0x0b, 0x46, 0x3d, 0x73, 0xbf, 0x20, 0xb6, 0xa9, 0x77, 0xb4, - 0xd5, 0x50, 0xb3, 0x35, 0xd1, 0x8c, 0x93, 0x0c, 0x92, 0x9b, 0x8e, 0xd2, 0x3d, 0xda, 0x74, 0x7c, - 0x48, 0x6f, 0x3a, 0x78, 0x2c, 0xd0, 0xbb, 0x73, 0xce, 0xbd, 0xed, 0x67, 0xd7, 0x71, 0x98, 0x7d, - 0xc4, 0x8b, 0x50, 0x96, 0x71, 0x92, 0x7d, 0xc5, 0x17, 0x9a, 0x74, 0x7a, 0xc8, 0xf6, 0xc7, 0xe1, - 0xad, 0xe7, 0xc2, 0xd0, 0x18, 0xcc, 0x2b, 0x41, 0x3c, 0xeb, 0x79, 0xc1, 0x4d, 0x6a, 0xae, 0x5c, - 0x8d, 0x88, 0xf0, 0x03, 0xda, 0xb7, 0x0b, 0x90, 0xb1, 0xa5, 0xa6, 0x6b, 0x52, 0xdb, 0x85, 0x89, - 0x35, 0x79, 0x30, 0xdb, 0x10, 0xed, 0xf0, 0x58, 0x52, 0x6e, 0x0d, 0xbc, 0x2b, 0x6f, 0x97, 0x80, - 0x0e, 0x2f, 0x55, 0x92, 0x52, 0x85, 0x98, 0x9e, 0x05, 0xd0, 0xe6, 0xbc, 0xb0, 0x09, 0x55, 0x70, - 0x88, 0xb6, 0xfa, 0xb1, 0x81, 0x85, 0x9e, 0x83, 0x61, 0xd7, 0x8f, 0x62, 0xc7, 0xf3, 0x2e, 0xba, - 0x7e, 0x2c, 0xec, 0x44, 0x65, 0xf6, 0x2c, 0x6a, 0x10, 0x36, 0xf1, 0x4e, 0xbf, 0xc3, 0xf8, 0x7e, - 0x07, 0xf9, 0xee, 0x9b, 0x70, 0xea, 0x82, 0x1b, 0xab, 0x24, 0x45, 0x35, 0xdf, 0xa8, 0xb5, 0xae, - 0x64, 0x95, 0xd5, 0x33, 0x2d, 0xd7, 0x48, 0x12, 0x2c, 0x24, 0x73, 0x1a, 0xd3, 0x49, 0x82, 0x76, - 0x0d, 0x4e, 0x5c, 0x70, 0xe3, 0xf3, 0xae, 0x47, 0x8e, 0x90, 0xc9, 0x97, 0x07, 0x61, 0xc4, 0xcc, - 0xdd, 0x3f, 0x88, 0x64, 0xff, 0x24, 0xb5, 0x63, 0xc5, 0x40, 0xb8, 0xea, 0xc0, 0xfb, 0xfa, 0xa1, - 0x0b, 0x09, 0x64, 0x0f, 0xae, 0x61, 0xca, 0x6a, 0x9e, 0xd8, 0xec, 0x00, 0xba, 0x09, 0xa5, 0x0d, - 0x96, 0xef, 0x56, 0xcc, 0x23, 0x54, 0x29, 0x6b, 0xf0, 0xf5, 0xca, 0xe5, 0x19, 0x73, 0x9c, 0x1f, - 0x35, 0x3f, 0xc2, 0x64, 0x9a, 0xb5, 0x91, 0x85, 0x20, 0xf4, 0x9a, 0xc2, 0xe8, 0xa5, 0x3d, 0x4a, - 0x77, 0xa0, 0x3d, 0x12, 0xb2, 0x7c, 0xf0, 0x1e, 0xc9, 0x72, 0x96, 0xbb, 0x18, 0x6f, 0x32, 0xe3, - 0x58, 0xa4, 0x4d, 0x0d, 0xb1, 0x41, 0x30, 0x72, 0x17, 0x13, 0x60, 0x9c, 0xc6, 0x47, 0xef, 0x57, - 0xda, 0xa0, 0x9c, 0xc7, 0x81, 0x82, 0x39, 0xa3, 0x8f, 0x5a, 0x11, 0x7c, 0xbc, 0x00, 0x63, 0x17, - 0xfc, 0xf6, 0xea, 0x85, 0xd5, 0xf6, 0xba, 0xe7, 0xd6, 0x2e, 0x93, 0x0e, 0x95, 0xf6, 0x5b, 0xa4, - 0xb3, 0xb8, 0x20, 0x56, 0x90, 0x9a, 0x33, 0x97, 0x69, 0x23, 0xe6, 0x30, 0x2a, 0xb7, 0x36, 0x5c, - 0xbf, 0x41, 0xc2, 0x56, 0xe8, 0x0a, 0x5f, 0xbf, 0x21, 0xb7, 0xce, 0x6b, 0x10, 0x36, 0xf1, 0x28, - 0xed, 0xe0, 0xa6, 0x4f, 0xc2, 0xf4, 0x2e, 0x61, 0x85, 0x36, 0x62, 0x0e, 0xa3, 0x48, 0x71, 0xd8, - 0x16, 0xae, 0x34, 0x03, 0x69, 0x8d, 0x36, 0x62, 0x0e, 0x13, 0xbb, 0x74, 0x16, 0x09, 0x56, 0xea, - 0xda, 0xa5, 0xb3, 0x20, 0x0a, 0x09, 0xa7, 0xa8, 0x5b, 0xa4, 0xb3, 0xe0, 0xc4, 0x4e, 0x7a, 0x93, - 0x7d, 0x99, 0x37, 0x63, 0x09, 0x67, 0xc5, 0x91, 0x93, 0xc3, 0xf1, 0x1d, 0x57, 0x1c, 0x39, 0xd9, - 0xfd, 0x1e, 0x0e, 0x99, 0xbf, 0x53, 0x80, 0x91, 0x37, 0x6f, 0x30, 0xcd, 0xb8, 0x9b, 0xe7, 0x3a, - 0x4c, 0x74, 0x65, 0x4c, 0xf7, 0x61, 0x21, 0xed, 0x5b, 0xd1, 0xc2, 0xc6, 0x30, 0x4c, 0x09, 0xcb, - 0xa2, 0x80, 0xf3, 0x30, 0xc1, 0x17, 0x2f, 0xe5, 0xc4, 0x12, 0x60, 0x55, 0x16, 0x3c, 0x3b, 0xcc, - 0xba, 0x96, 0x06, 0xe2, 0x6e, 0x7c, 0xfb, 0x13, 0x16, 0x8c, 0x26, 0x92, 0xd8, 0x73, 0xb2, 0xe5, - 0xd8, 0xea, 0x0e, 0x58, 0x14, 0x33, 0xcb, 0x2a, 0x29, 0x32, 0x35, 0xac, 0x57, 0xb7, 0x06, 0x61, - 0x13, 0xcf, 0xfe, 0xbd, 0x22, 0x94, 0x65, 0xc4, 0x55, 0x1f, 0x5d, 0xf9, 0x98, 0x05, 0xa3, 0xea, - 0x00, 0x91, 0x79, 0x7c, 0x0b, 0x79, 0xe4, 0xd4, 0xd1, 0x1e, 0x28, 0xff, 0x89, 0xbf, 0x11, 0xe8, - 0x8d, 0x05, 0x36, 0x99, 0xe1, 0x24, 0x6f, 0x74, 0x0d, 0x20, 0xea, 0x44, 0x31, 0x69, 0x1a, 0xbe, - 0x67, 0xdb, 0x98, 0x65, 0xd3, 0xb5, 0x20, 0x24, 0x74, 0x4e, 0x5d, 0x09, 0xea, 0xa4, 0xaa, 0x30, - 0xb5, 0x85, 0xa7, 0xdb, 0xb0, 0x41, 0x09, 0xbd, 0xa6, 0x8e, 0xbb, 0x07, 0xf2, 0xd0, 0xeb, 0x72, - 0x7c, 0xfb, 0x39, 0xef, 0x3e, 0xc4, 0xf9, 0xb2, 0xfd, 0x2b, 0x05, 0x38, 0x96, 0x1e, 0x49, 0xf4, - 0x6e, 0x18, 0x91, 0x83, 0x66, 0xb8, 0x19, 0x64, 0x98, 0xdb, 0x08, 0x36, 0x60, 0xb7, 0x77, 0xa7, - 0xa6, 0xba, 0xaf, 0xc2, 0x9e, 0x36, 0x51, 0x70, 0x82, 0x18, 0x3f, 0x7c, 0x16, 0x51, 0x12, 0x73, - 0x9d, 0xd9, 0x56, 0x4b, 0x9c, 0x20, 0x1b, 0x87, 0xcf, 0x26, 0x14, 0xa7, 0xb0, 0xd1, 0x2a, 0x9c, - 0x30, 0x5a, 0xae, 0x10, 0xb7, 0xb1, 0xb9, 0x1e, 0x84, 0x72, 0x5f, 0xfb, 0xb0, 0x0e, 0xaa, 0xed, - 0xc6, 0xc1, 0x99, 0x4f, 0x52, 0xc3, 0xa8, 0xe6, 0xb4, 0x9c, 0x9a, 0x1b, 0x77, 0xc4, 0x19, 0x80, - 0x12, 0xe3, 0xf3, 0xa2, 0x1d, 0x2b, 0x0c, 0xfb, 0x1f, 0x0e, 0xc0, 0x31, 0x1e, 0x45, 0x4a, 0x54, - 0x90, 0x34, 0x7a, 0x37, 0x54, 0xa2, 0xd8, 0x09, 0xb9, 0x53, 0xc3, 0x3a, 0xb0, 0xe8, 0xd2, 0x99, - 0xf7, 0x92, 0x08, 0xd6, 0xf4, 0xd0, 0x4b, 0xac, 0x6c, 0x99, 0x1b, 0x6d, 0x32, 0xea, 0x85, 0x3b, - 0x73, 0x99, 0x9c, 0x57, 0x14, 0xb0, 0x41, 0x0d, 0xfd, 0x10, 0x94, 0x5a, 0x9b, 0x4e, 0x24, 0xfd, - 0x79, 0x8f, 0x4b, 0x39, 0xb1, 0x4a, 0x1b, 0x6f, 0xef, 0x4e, 0x9d, 0x4c, 0xbf, 0x2a, 0x03, 0x60, - 0xfe, 0x90, 0x29, 0xe5, 0x07, 0xf6, 0xbf, 0x5a, 0xa7, 0x1e, 0x76, 0xaa, 0x17, 0x67, 0xd3, 0x97, - 0xb1, 0x2c, 0xb0, 0x56, 0x2c, 0xa0, 0x54, 0x26, 0x6d, 0x72, 0x96, 0x75, 0x8a, 0x3c, 0x98, 0xb4, - 0x38, 0x2e, 0x6a, 0x10, 0x36, 0xf1, 0xd0, 0xc7, 0xbb, 0x63, 0x8c, 0x87, 0x8e, 0x20, 0x07, 0xa5, - 0xdf, 0xe8, 0xe2, 0x73, 0x50, 0x11, 0x5d, 0x5d, 0x0b, 0xd0, 0xf3, 0x30, 0xc2, 0xdd, 0x45, 0x73, - 0xa1, 0xe3, 0xd7, 0x36, 0xd3, 0x4e, 0x9e, 0x35, 0x03, 0x86, 0x13, 0x98, 0xf6, 0x32, 0x0c, 0xf4, - 0x29, 0x64, 0xfb, 0xda, 0xbb, 0xbf, 0x08, 0x65, 0x4a, 0x4e, 0x6e, 0xd0, 0xf2, 0x20, 0x19, 0x40, - 0x59, 0x5e, 0xd4, 0x88, 0x6c, 0x28, 0xba, 0x8e, 0x8c, 0x25, 0x51, 0x4b, 0x68, 0x31, 0x8a, 0xda, - 0x6c, 0xda, 0x51, 0x20, 0x7a, 0x0c, 0x8a, 0x64, 0xa7, 0x95, 0x0e, 0x1a, 0x39, 0xb7, 0xd3, 0x72, - 0x43, 0x12, 0x51, 0x24, 0xb2, 0xd3, 0x42, 0xa7, 0xa1, 0xe0, 0xd6, 0xc5, 0x8c, 0x04, 0x81, 0x53, - 0x58, 0x5c, 0xc0, 0x05, 0xb7, 0x6e, 0xef, 0x40, 0x45, 0xdd, 0x0c, 0x89, 0xb6, 0xa4, 0x49, 0x65, - 0xe5, 0x11, 0x45, 0x2c, 0xe9, 0xf6, 0x30, 0xa6, 0xda, 0x00, 0xba, 0xa4, 0x43, 0x5e, 0x2a, 0xf8, - 0x0c, 0x0c, 0xd4, 0x02, 0x51, 0x8c, 0xa7, 0xac, 0xc9, 0x30, 0x5b, 0x8a, 0x41, 0xec, 0xeb, 0x30, - 0x76, 0xd9, 0x0f, 0x6e, 0xb2, 0x0b, 0x9c, 0x58, 0xbd, 0x62, 0x4a, 0x78, 0x83, 0xfe, 0x48, 0x5b, - 0xee, 0x0c, 0x8a, 0x39, 0x4c, 0x55, 0x52, 0x2d, 0xf4, 0xaa, 0xa4, 0x6a, 0x7f, 0xc0, 0x82, 0x11, - 0x95, 0x1b, 0x7e, 0x61, 0x7b, 0x8b, 0xd2, 0x6d, 0x84, 0x41, 0xbb, 0x95, 0xa6, 0xcb, 0x2e, 0xa1, - 0xc5, 0x1c, 0x66, 0x16, 0x4d, 0x28, 0xec, 0x53, 0x34, 0xe1, 0x0c, 0x0c, 0x6c, 0xb9, 0x7e, 0x3d, - 0xed, 0x14, 0xbd, 0xec, 0xfa, 0x75, 0xcc, 0x20, 0xb4, 0x0b, 0xc7, 0x54, 0x17, 0xa4, 0xcd, 0xf4, - 0x3c, 0x8c, 0xac, 0xb7, 0x5d, 0xaf, 0x2e, 0x0b, 0x31, 0xa7, 0x96, 0xcb, 0x9c, 0x01, 0xc3, 0x09, - 0x4c, 0x74, 0x16, 0x60, 0xdd, 0xf5, 0x9d, 0xb0, 0xb3, 0xaa, 0x8d, 0x34, 0xa5, 0xb7, 0xe7, 0x14, - 0x04, 0x1b, 0x58, 0xf6, 0xa7, 0x8a, 0x30, 0x96, 0xcc, 0x90, 0xef, 0xc3, 0x77, 0xf1, 0x18, 0x94, - 0x58, 0xd2, 0x7c, 0xfa, 0xd3, 0xf2, 0xda, 0xc5, 0x1c, 0x86, 0x22, 0x18, 0xe4, 0x8b, 0x39, 0x9f, - 0x8b, 0x3c, 0x55, 0x27, 0x95, 0x27, 0x95, 0xc5, 0x5a, 0x0b, 0xc7, 0xb4, 0x60, 0x85, 0x3e, 0x6c, - 0xc1, 0x50, 0xd0, 0x32, 0x2b, 0x70, 0xbe, 0x2b, 0xcf, 0xea, 0x01, 0x22, 0x45, 0x57, 0xd8, 0x23, - 0xea, 0xd3, 0xcb, 0xcf, 0x21, 0x59, 0x9f, 0xfe, 0x41, 0x18, 0x31, 0x31, 0xf7, 0x33, 0x49, 0xca, - 0xa6, 0x49, 0xf2, 0x31, 0x73, 0x52, 0x88, 0xfa, 0x08, 0x7d, 0x2c, 0xb7, 0xab, 0x50, 0xaa, 0xa9, - 0x80, 0xb4, 0x3b, 0x2a, 0xdf, 0xaf, 0xea, 0x87, 0xb1, 0xc3, 0x7e, 0x4e, 0xcd, 0xfe, 0x86, 0x65, - 0xcc, 0x0f, 0x4c, 0xa2, 0xc5, 0x3a, 0x0a, 0xa1, 0xd8, 0xd8, 0xde, 0x12, 0x6a, 0xfe, 0x52, 0x4e, - 0xc3, 0x7b, 0x61, 0x7b, 0x4b, 0xcf, 0x71, 0xb3, 0x15, 0x53, 0x66, 0x7d, 0xb8, 0xfb, 0x13, 0x65, - 0x34, 0x8a, 0xfb, 0x97, 0xd1, 0xb0, 0xdf, 0x28, 0xc0, 0x44, 0xd7, 0xa4, 0x42, 0xaf, 0x41, 0x29, - 0xa4, 0x6f, 0x29, 0x5e, 0x6f, 0x29, 0xb7, 0xc2, 0x17, 0xd1, 0x62, 0x5d, 0xab, 0xcf, 0x64, 0x3b, - 0xe6, 0x2c, 0xd1, 0x25, 0x40, 0x3a, 0x6c, 0x52, 0x9d, 0x35, 0xf0, 0x57, 0x56, 0xb1, 0x55, 0xb3, - 0x5d, 0x18, 0x38, 0xe3, 0x29, 0xf4, 0x42, 0xfa, 0xc8, 0xa2, 0x98, 0x3c, 0x2b, 0xdb, 0xeb, 0xf4, - 0xc1, 0xfe, 0x8d, 0x02, 0x8c, 0x26, 0x0a, 0xa2, 0x22, 0x0f, 0xca, 0xc4, 0x63, 0x07, 0x99, 0x52, - 0xd9, 0x1c, 0xf6, 0x7a, 0x13, 0xa5, 0x20, 0xcf, 0x09, 0xba, 0x58, 0x71, 0xb8, 0x3f, 0x42, 0xae, - 0x9e, 0x87, 0x11, 0xd9, 0xa1, 0x77, 0x39, 0x4d, 0x4f, 0x0c, 0xa0, 0x9a, 0xa3, 0xe7, 0x0c, 0x18, - 0x4e, 0x60, 0xda, 0xbf, 0x53, 0x84, 0x49, 0x7e, 0xf2, 0x5b, 0x57, 0x33, 0x4f, 0x45, 0x70, 0xfc, - 0xbc, 0x2e, 0x5b, 0x6c, 0xe5, 0x71, 0x87, 0x77, 0x2f, 0x46, 0x7d, 0x45, 0x0a, 0x7f, 0x3e, 0x15, - 0x29, 0xcc, 0x77, 0xa6, 0x8d, 0x23, 0xea, 0xd1, 0x77, 0x56, 0xe8, 0xf0, 0x3f, 0x2d, 0xc0, 0x78, - 0xea, 0xaa, 0x36, 0xf4, 0xa9, 0xe4, 0xed, 0x1e, 0x56, 0x1e, 0xa7, 0x62, 0x7b, 0xde, 0xde, 0x75, - 0xb0, 0x3b, 0x3e, 0xee, 0xd1, 0x52, 0xb1, 0xbf, 0x5e, 0x80, 0xb1, 0xe4, 0x1d, 0x73, 0xf7, 0xe1, - 0x48, 0xbd, 0x1d, 0x2a, 0xec, 0x1a, 0xa5, 0xcb, 0xa4, 0x23, 0x0f, 0xd5, 0xf8, 0x8d, 0x35, 0xb2, - 0x11, 0x6b, 0xf8, 0x7d, 0x71, 0x75, 0x8a, 0xfd, 0xcf, 0x2d, 0x38, 0xc9, 0xdf, 0x32, 0x3d, 0x0f, - 0xff, 0x56, 0xd6, 0xe8, 0xbe, 0x9c, 0x6f, 0x07, 0x53, 0xe5, 0xb6, 0xf7, 0x1b, 0x5f, 0x76, 0x93, - 0xb9, 0xe8, 0x6d, 0x72, 0x2a, 0xdc, 0x87, 0x9d, 0x3d, 0xd0, 0x64, 0xb0, 0xff, 0x43, 0x01, 0x86, - 0x57, 0xe6, 0x17, 0x95, 0x08, 0x9f, 0x81, 0x4a, 0x2d, 0x24, 0x8e, 0xf6, 0x76, 0x98, 0x71, 0x45, - 0x12, 0x80, 0x35, 0x0e, 0xdd, 0x34, 0xf0, 0xb8, 0xbc, 0x28, 0xbd, 0x69, 0xe0, 0x61, 0x7b, 0x11, - 0x96, 0x70, 0xf4, 0x24, 0x94, 0x59, 0xc6, 0xec, 0xd5, 0x50, 0x6a, 0x1c, 0xbd, 0x93, 0x64, 0xed, - 0x78, 0x09, 0x2b, 0x0c, 0x4a, 0xb8, 0x1e, 0xd4, 0x22, 0x8a, 0x9c, 0x72, 0x40, 0x2c, 0xd0, 0x66, - 0xbc, 0x84, 0x25, 0x9c, 0x15, 0x3c, 0x64, 0x9b, 0x74, 0x8a, 0x5c, 0x4a, 0x76, 0x9a, 0xef, 0xe6, - 0x29, 0xba, 0xc6, 0x39, 0x48, 0x61, 0xcc, 0x54, 0xd6, 0xda, 0x50, 0x7f, 0x59, 0x6b, 0xf6, 0xd7, - 0x8b, 0xa0, 0x2f, 0xc5, 0x47, 0xae, 0x28, 0x13, 0x91, 0x4b, 0x39, 0xf7, 0x6a, 0xc7, 0xaf, 0xe9, - 0xeb, 0xf7, 0xcb, 0xa9, 0x2a, 0x11, 0x3f, 0x6b, 0xc1, 0xb0, 0xeb, 0xbb, 0xb1, 0xeb, 0x30, 0x57, - 0x58, 0x3e, 0x37, 0x5b, 0x2b, 0x76, 0x8b, 0x9c, 0x72, 0x10, 0x9a, 0x27, 0xdc, 0x8a, 0x19, 0x36, - 0x39, 0xa3, 0xf7, 0x8a, 0x24, 0xa9, 0x62, 0x6e, 0xb5, 0x56, 0xca, 0xa9, 0xcc, 0xa8, 0x16, 0x35, - 0x68, 0xe3, 0x30, 0xa7, 0x12, 0x45, 0x98, 0x92, 0x52, 0x37, 0x83, 0xa8, 0x2d, 0x03, 0x6b, 0xc6, - 0x9c, 0x91, 0x1d, 0x01, 0xea, 0x1e, 0x8b, 0x03, 0x26, 0xa0, 0xcc, 0x40, 0xc5, 0x69, 0xc7, 0x41, - 0x93, 0x0e, 0x93, 0x38, 0x1f, 0xd7, 0x29, 0x36, 0x12, 0x80, 0x35, 0x8e, 0xfd, 0xa9, 0x12, 0xa4, - 0x8a, 0x36, 0xa0, 0x1d, 0xa8, 0xa8, 0xb2, 0x0d, 0xf9, 0x24, 0x74, 0xea, 0x19, 0xa5, 0x3a, 0xa3, - 0x9a, 0xb0, 0x66, 0x86, 0x1a, 0xd2, 0xab, 0xc8, 0x57, 0xfb, 0x8b, 0x69, 0xaf, 0xe2, 0x8f, 0xf6, - 0x77, 0xc8, 0x44, 0xe7, 0xea, 0x0c, 0x2f, 0xd3, 0x37, 0xbd, 0xaf, 0x03, 0x72, 0xbf, 0xbb, 0xbd, - 0x3f, 0x28, 0xee, 0xe1, 0xc2, 0x24, 0x6a, 0x7b, 0xb1, 0x98, 0x0d, 0x2f, 0xe6, 0xb8, 0xca, 0x38, - 0x61, 0x5d, 0xfc, 0x88, 0xff, 0xc7, 0x06, 0xd3, 0xa4, 0x9b, 0x78, 0xf0, 0x48, 0xdd, 0xc4, 0x43, - 0xb9, 0xba, 0x89, 0xcf, 0x02, 0xb0, 0xb9, 0xcd, 0x03, 0xe5, 0xcb, 0xcc, 0x7b, 0xa7, 0x54, 0x0c, - 0x56, 0x10, 0x6c, 0x60, 0xd9, 0xdf, 0x0f, 0xc9, 0xea, 0x5d, 0x68, 0x4a, 0x16, 0x0b, 0xe3, 0x07, - 0x60, 0x2c, 0x47, 0x31, 0x51, 0xd7, 0xeb, 0xd7, 0x2c, 0x30, 0x4b, 0x8c, 0xa1, 0x57, 0x79, 0x2d, - 0x33, 0x2b, 0x8f, 0x03, 0x15, 0x83, 0xee, 0xf4, 0xb2, 0xd3, 0x4a, 0x05, 0xf7, 0xc8, 0x82, 0x66, - 0xa7, 0xdf, 0x01, 0x65, 0x09, 0x3d, 0x90, 0xb1, 0xfc, 0x7e, 0x38, 0x2e, 0xeb, 0x1d, 0xc8, 0xb3, - 0x0f, 0x71, 0xc8, 0xbe, 0xbf, 0x4b, 0x4d, 0xfa, 0xc9, 0x0a, 0xbd, 0xfc, 0x64, 0x6a, 0xf7, 0x5f, - 0xec, 0x59, 0xa5, 0xfc, 0xd7, 0x2d, 0x38, 0x93, 0xee, 0x40, 0xb4, 0x1c, 0xf8, 0x6e, 0x1c, 0x84, - 0x55, 0x12, 0xc7, 0xae, 0xdf, 0x60, 0x25, 0x67, 0x6f, 0x3a, 0xa1, 0xbc, 0x76, 0x88, 0x09, 0xca, - 0xeb, 0x4e, 0xe8, 0x63, 0xd6, 0x8a, 0x3a, 0x30, 0xc8, 0x23, 0x8b, 0xc5, 0x2e, 0xe8, 0x90, 0x6b, - 0x23, 0x63, 0x38, 0xf4, 0x36, 0x8c, 0x47, 0x35, 0x63, 0xc1, 0xd0, 0xfe, 0x96, 0x05, 0x68, 0x65, - 0x9b, 0x84, 0xa1, 0x5b, 0x37, 0x62, 0xa1, 0xd9, 0x7d, 0x96, 0xc6, 0xbd, 0x95, 0x66, 0x35, 0x8e, - 0xd4, 0x7d, 0x96, 0xc6, 0xbf, 0xec, 0xfb, 0x2c, 0x0b, 0x07, 0xbb, 0xcf, 0x12, 0xad, 0xc0, 0xc9, - 0x26, 0xdf, 0xc6, 0xf1, 0x3b, 0xe2, 0xf8, 0x9e, 0x4e, 0x25, 0x8e, 0x9f, 0xba, 0xb5, 0x3b, 0x75, - 0x72, 0x39, 0x0b, 0x01, 0x67, 0x3f, 0x67, 0xbf, 0x03, 0x10, 0x0f, 0x81, 0x9e, 0xcf, 0x8a, 0xe2, - 0xec, 0xe9, 0xd6, 0xb2, 0x3f, 0x57, 0x82, 0xf1, 0xd4, 0xa5, 0x14, 0x74, 0x0b, 0xdd, 0x1d, 0x36, - 0x7a, 0x68, 0xfd, 0xdd, 0xdd, 0xbd, 0xbe, 0x02, 0x51, 0x7d, 0x28, 0xb9, 0x7e, 0xab, 0x1d, 0xe7, - 0x53, 0xb7, 0x82, 0x77, 0x62, 0x91, 0x12, 0x34, 0xdc, 0xf0, 0xf4, 0x2f, 0xe6, 0x6c, 0xf2, 0x0c, - 0x6b, 0x4d, 0x6c, 0x72, 0x06, 0xee, 0x91, 0x9b, 0xe5, 0x83, 0x3a, 0xc8, 0xb4, 0x94, 0x87, 0xc3, - 0x36, 0x35, 0x59, 0x8e, 0x3a, 0xb2, 0xe8, 0x4b, 0x05, 0x18, 0x36, 0x3e, 0x1a, 0xfa, 0xc5, 0x64, - 0x01, 0x4e, 0x2b, 0xbf, 0x57, 0x62, 0xf4, 0xa7, 0x75, 0x89, 0x4d, 0xfe, 0x4a, 0x8f, 0x77, 0xd7, - 0xde, 0xbc, 0xbd, 0x3b, 0x75, 0x2c, 0x55, 0x5d, 0x33, 0x51, 0x8f, 0xf3, 0xf4, 0x4f, 0xc2, 0x78, - 0x8a, 0x4c, 0xc6, 0x2b, 0xaf, 0x99, 0xaf, 0x7c, 0x68, 0x77, 0x9f, 0x39, 0x64, 0x5f, 0xa4, 0x43, - 0x26, 0xd2, 0xe5, 0x03, 0x8f, 0xf4, 0xe1, 0xdb, 0x4e, 0xed, 0x2f, 0x0a, 0x7d, 0x56, 0xc5, 0x78, - 0x02, 0xca, 0xad, 0xc0, 0x73, 0x6b, 0xae, 0xaa, 0xdf, 0xcd, 0xea, 0x70, 0xac, 0x8a, 0x36, 0xac, - 0xa0, 0xe8, 0x26, 0x54, 0x6e, 0xdc, 0x8c, 0xf9, 0xa9, 0x9a, 0x38, 0x37, 0xc8, 0xeb, 0x30, 0x4d, - 0x19, 0x2d, 0xea, 0xd8, 0x0e, 0x6b, 0x5e, 0xc8, 0x86, 0x41, 0xa6, 0x04, 0x65, 0xea, 0x1c, 0x3b, - 0xd3, 0x60, 0xda, 0x31, 0xc2, 0x02, 0x62, 0xff, 0xbb, 0x61, 0x38, 0x91, 0x75, 0x33, 0x10, 0x7a, - 0x1f, 0x0c, 0xf2, 0x3e, 0xe6, 0x73, 0xf9, 0x5c, 0x16, 0x8f, 0x0b, 0x8c, 0xa0, 0xe8, 0x16, 0xfb, - 0x8d, 0x05, 0x4f, 0xc1, 0xdd, 0x73, 0xd6, 0xc5, 0x0c, 0x39, 0x1a, 0xee, 0x4b, 0x8e, 0xe6, 0xbe, - 0xe4, 0x70, 0xee, 0x9e, 0xb3, 0x8e, 0x76, 0xa0, 0xd4, 0x70, 0x63, 0xe2, 0x08, 0xe7, 0xcc, 0xf5, - 0x23, 0x61, 0x4e, 0x1c, 0x6e, 0xa5, 0xb1, 0x9f, 0x98, 0x33, 0x44, 0x5f, 0xb0, 0x60, 0x7c, 0x3d, - 0x59, 0x8e, 0x47, 0x08, 0x4f, 0xe7, 0x08, 0x6e, 0x7f, 0x4a, 0x32, 0xe2, 0x17, 0xba, 0xa6, 0x1a, - 0x71, 0xba, 0x3b, 0xe8, 0x43, 0x16, 0x0c, 0x6d, 0xb8, 0x9e, 0x71, 0xbd, 0xc6, 0x11, 0x7c, 0x9c, - 0xf3, 0x8c, 0x81, 0xde, 0x71, 0xf0, 0xff, 0x11, 0x96, 0x9c, 0x7b, 0x69, 0xaa, 0xc1, 0xc3, 0x6a, - 0xaa, 0xa1, 0x7b, 0xa4, 0xa9, 0x3e, 0x6a, 0x41, 0x45, 0x8d, 0xb4, 0x28, 0x6b, 0xf2, 0xee, 0x23, - 0xfc, 0xe4, 0xdc, 0x23, 0xa5, 0xfe, 0x62, 0xcd, 0x1c, 0xbd, 0x6e, 0xc1, 0xb0, 0xf3, 0x5a, 0x3b, - 0x24, 0x75, 0xb2, 0x1d, 0xb4, 0x22, 0x51, 0x6f, 0xf4, 0xe5, 0xfc, 0x3b, 0x33, 0x4b, 0x99, 0x2c, - 0x90, 0xed, 0x95, 0x56, 0x24, 0xd2, 0x7a, 0x75, 0x03, 0x36, 0xbb, 0x80, 0x7e, 0x46, 0xeb, 0x71, - 0xc8, 0xa3, 0xea, 0x74, 0x56, 0x6f, 0xfa, 0xca, 0x52, 0x27, 0xf0, 0x50, 0x2d, 0xf0, 0x63, 0xd7, - 0x6f, 0x93, 0x15, 0x1f, 0x93, 0x56, 0x70, 0x25, 0x88, 0xcf, 0x07, 0x6d, 0xbf, 0x7e, 0x2e, 0x0c, - 0x83, 0x90, 0xd5, 0x6d, 0x31, 0xee, 0x1c, 0x9d, 0xef, 0x8d, 0x8a, 0xf7, 0xa2, 0x73, 0x18, 0x9b, - 0x61, 0xb7, 0x00, 0x53, 0xfb, 0x0c, 0x36, 0x7a, 0x1e, 0x46, 0x82, 0xb0, 0xe1, 0xf8, 0xee, 0x6b, - 0x66, 0x29, 0x32, 0x65, 0x90, 0xae, 0x18, 0x30, 0x9c, 0xc0, 0x34, 0x6b, 0xd4, 0x14, 0xf6, 0xa9, - 0x51, 0x73, 0x06, 0x06, 0x42, 0xd2, 0x0a, 0xd2, 0xfb, 0x2a, 0x96, 0x89, 0xc7, 0x20, 0xe8, 0x11, - 0x28, 0x3a, 0x2d, 0x57, 0x38, 0x17, 0xd5, 0x76, 0x71, 0x76, 0x75, 0x11, 0xd3, 0xf6, 0x44, 0xc9, - 0xac, 0xd2, 0x5d, 0x29, 0x99, 0x45, 0x35, 0xa6, 0x38, 0x3e, 0x1b, 0xd4, 0x1a, 0x33, 0x79, 0xac, - 0x65, 0xbf, 0x51, 0x84, 0x47, 0xf6, 0x5c, 0x5a, 0x3a, 0x42, 0xdb, 0xda, 0x23, 0x42, 0x5b, 0x0e, - 0x4f, 0x61, 0xbf, 0xe1, 0x29, 0xf6, 0x18, 0x9e, 0x0f, 0x51, 0x89, 0x21, 0x4b, 0xb8, 0xe5, 0x73, - 0xf5, 0x79, 0xaf, 0x8a, 0x70, 0x42, 0x58, 0x48, 0x28, 0xd6, 0x7c, 0xe9, 0x76, 0x29, 0x51, 0x9f, - 0xa5, 0x94, 0x87, 0xc6, 0xec, 0x59, 0x46, 0x8d, 0x8b, 0x89, 0x5e, 0x45, 0x5f, 0xec, 0xdf, 0x1c, - 0x80, 0xc7, 0xfa, 0x50, 0x74, 0xe6, 0x2c, 0xb6, 0xfa, 0x9c, 0xc5, 0xdf, 0xe1, 0x9f, 0xe9, 0x23, - 0x99, 0x9f, 0x09, 0xe7, 0xff, 0x99, 0xf6, 0xfe, 0x42, 0xec, 0x04, 0xc2, 0x8f, 0x48, 0xad, 0x1d, - 0xf2, 0x6c, 0x15, 0x23, 0x4d, 0x77, 0x51, 0xb4, 0x63, 0x85, 0x41, 0xb7, 0xbf, 0x35, 0x87, 0x2e, - 0xff, 0xa1, 0x9c, 0xea, 0x71, 0x98, 0x19, 0xbf, 0xdc, 0xfa, 0x9a, 0x9f, 0xa5, 0x12, 0x80, 0xb3, - 0xb1, 0x7f, 0xd7, 0x82, 0xd3, 0xbd, 0xad, 0x11, 0xf4, 0x34, 0x0c, 0xaf, 0xb3, 0xd8, 0xc1, 0x65, - 0x16, 0x9f, 0x24, 0xa6, 0x0e, 0x7b, 0x5f, 0xdd, 0x8c, 0x4d, 0x1c, 0x34, 0x0f, 0x13, 0x66, 0xd0, - 0xe1, 0xb2, 0x11, 0xd8, 0xc4, 0xfc, 0x25, 0x6b, 0x69, 0x20, 0xee, 0xc6, 0x47, 0xd3, 0x00, 0xb1, - 0x1b, 0x7b, 0x84, 0x3f, 0xcd, 0x27, 0x1a, 0x73, 0x28, 0xae, 0xa9, 0x56, 0x6c, 0x60, 0xd8, 0xdf, - 0x2e, 0x66, 0xbf, 0x06, 0xb7, 0x72, 0x0f, 0x32, 0xfb, 0xc5, 0xdc, 0x2e, 0xf4, 0x21, 0xa1, 0x8b, - 0x77, 0x5b, 0x42, 0x0f, 0xf4, 0x92, 0xd0, 0x68, 0x01, 0x8e, 0x19, 0xb7, 0x98, 0xf2, 0x8a, 0x2e, - 0xfc, 0x50, 0x4a, 0x95, 0x63, 0x5b, 0x4d, 0xc1, 0x71, 0xd7, 0x13, 0xf7, 0xf9, 0x54, 0xfd, 0x4a, - 0x01, 0x4e, 0xf5, 0xdc, 0x58, 0xdc, 0x25, 0x0d, 0x64, 0x7e, 0xfe, 0x81, 0xbb, 0xf3, 0xf9, 0xcd, - 0x8f, 0x52, 0xda, 0xf7, 0xa3, 0xf4, 0xa3, 0xce, 0xff, 0xa8, 0xd0, 0x73, 0xb1, 0xd0, 0x8d, 0xe8, - 0x77, 0xed, 0x48, 0xbe, 0x00, 0xa3, 0x4e, 0xab, 0xc5, 0xf1, 0x58, 0x22, 0x42, 0xaa, 0x44, 0xe4, - 0xac, 0x09, 0xc4, 0x49, 0xdc, 0xbe, 0x06, 0xf6, 0x4f, 0x2d, 0xa8, 0x60, 0xb2, 0xc1, 0x25, 0x1c, - 0xba, 0x21, 0x86, 0xc8, 0xca, 0xa3, 0x4e, 0x3f, 0x1d, 0xd8, 0xc8, 0x65, 0xc5, 0xeb, 0xb3, 0x06, - 0xfb, 0xb0, 0x05, 0x07, 0xd4, 0xdd, 0xa7, 0xc5, 0xde, 0x77, 0x9f, 0xda, 0x5f, 0xae, 0xd0, 0xd7, - 0x6b, 0x05, 0xf3, 0x21, 0xa9, 0x47, 0xf4, 0xfb, 0xb6, 0x43, 0x4f, 0x4c, 0x12, 0xf5, 0x7d, 0xaf, - 0xe2, 0x25, 0x4c, 0xdb, 0x13, 0xe7, 0x93, 0x85, 0x03, 0x15, 0xc8, 0x2b, 0xee, 0x5b, 0x20, 0xef, - 0x05, 0x18, 0x8d, 0xa2, 0xcd, 0xd5, 0xd0, 0xdd, 0x76, 0x62, 0x72, 0x99, 0xc8, 0x4a, 0x3a, 0xba, - 0x58, 0x54, 0xf5, 0xa2, 0x06, 0xe2, 0x24, 0x2e, 0xba, 0x00, 0x13, 0xba, 0x4c, 0x1d, 0x09, 0x63, - 0x96, 0xe1, 0xc7, 0x67, 0x82, 0xaa, 0x92, 0xa2, 0x0b, 0xdb, 0x09, 0x04, 0xdc, 0xfd, 0x0c, 0x95, - 0xb9, 0x89, 0x46, 0xda, 0x91, 0xc1, 0xa4, 0xcc, 0x4d, 0xd0, 0xa1, 0x7d, 0xe9, 0x7a, 0x02, 0x2d, - 0xc3, 0x71, 0x3e, 0x31, 0x66, 0x5b, 0x2d, 0xe3, 0x8d, 0x86, 0x92, 0xc5, 0xd1, 0x2f, 0x74, 0xa3, - 0xe0, 0xac, 0xe7, 0xd0, 0x73, 0x30, 0xac, 0x9a, 0x17, 0x17, 0xc4, 0xd1, 0x9a, 0x72, 0xed, 0x29, - 0x32, 0x8b, 0x75, 0x6c, 0xe2, 0xa1, 0x77, 0xc1, 0x83, 0xfa, 0x2f, 0xcf, 0x18, 0xe7, 0xe7, 0xcd, - 0x0b, 0xa2, 0x02, 0xa8, 0xba, 0x7b, 0xeb, 0x42, 0x26, 0x5a, 0x1d, 0xf7, 0x7a, 0x1e, 0xad, 0xc3, - 0x69, 0x05, 0x3a, 0xe7, 0xc7, 0x2c, 0xa7, 0x33, 0x22, 0x73, 0x4e, 0xc4, 0x22, 0x27, 0x80, 0xbd, - 0xa7, 0x2d, 0xa8, 0x9f, 0xbe, 0xe0, 0xc6, 0x17, 0xb3, 0x30, 0xf1, 0x12, 0xde, 0x83, 0x0a, 0x9a, - 0x81, 0x0a, 0xf1, 0x9d, 0x75, 0x8f, 0xac, 0xcc, 0x2f, 0x8a, 0x1d, 0xa9, 0x4e, 0x06, 0x90, 0x00, - 0xac, 0x71, 0x54, 0x38, 0xfb, 0x48, 0xaf, 0x70, 0x76, 0xb4, 0x0a, 0x27, 0x1a, 0xb5, 0x16, 0xb5, - 0x32, 0xdd, 0x1a, 0x99, 0xad, 0xb1, 0xe8, 0x5d, 0xfa, 0x61, 0x78, 0xd5, 0x7a, 0x95, 0x17, 0x74, - 0x61, 0x7e, 0xb5, 0x0b, 0x07, 0x67, 0x3e, 0xc9, 0xa2, 0xbc, 0xc3, 0x60, 0xa7, 0x33, 0x79, 0x3c, - 0x15, 0xe5, 0x4d, 0x1b, 0x31, 0x87, 0xa1, 0x4b, 0x80, 0x58, 0x6e, 0xdc, 0xc5, 0x38, 0x6e, 0x29, - 0xb3, 0x76, 0xf2, 0x44, 0xb2, 0x1e, 0xe0, 0xf9, 0x2e, 0x0c, 0x9c, 0xf1, 0x14, 0xb5, 0x7a, 0xfc, - 0x80, 0x51, 0x9f, 0x7c, 0x30, 0x69, 0xf5, 0x5c, 0xe1, 0xcd, 0x58, 0xc2, 0xd1, 0x8f, 0xc3, 0x64, - 0x3b, 0x22, 0x6c, 0xc3, 0x7c, 0x3d, 0x08, 0xb7, 0xbc, 0xc0, 0xa9, 0x2f, 0xb2, 0x4b, 0x56, 0xe3, - 0xce, 0xe4, 0x24, 0x63, 0x7e, 0x46, 0x3c, 0x3b, 0x79, 0xb5, 0x07, 0x1e, 0xee, 0x49, 0x21, 0x5d, - 0xd0, 0xf2, 0x54, 0x9f, 0x05, 0x2d, 0x57, 0xe1, 0x84, 0xd4, 0x6b, 0x2b, 0xf3, 0x8b, 0xea, 0xa5, - 0x27, 0x4f, 0x27, 0x6f, 0x6d, 0x5b, 0xcc, 0xc0, 0xc1, 0x99, 0x4f, 0xda, 0x7f, 0x62, 0xc1, 0xa8, - 0x92, 0x60, 0x77, 0x21, 0x47, 0xd7, 0x4b, 0xe6, 0xe8, 0x5e, 0x38, 0xbc, 0x0e, 0x60, 0x3d, 0xef, - 0x91, 0x51, 0xf2, 0x99, 0x51, 0x00, 0xad, 0x27, 0x94, 0x8a, 0xb6, 0x7a, 0xaa, 0xe8, 0xfb, 0x56, - 0x46, 0x67, 0x15, 0x28, 0x2c, 0xdd, 0xdb, 0x02, 0x85, 0x55, 0x38, 0x29, 0xa7, 0x14, 0x3f, 0x52, - 0xbe, 0x18, 0x44, 0x4a, 0xe4, 0x1b, 0xd7, 0xf0, 0x2d, 0x66, 0x21, 0xe1, 0xec, 0x67, 0x13, 0xb6, - 0xdd, 0xd0, 0xbe, 0xb6, 0x9d, 0x92, 0x72, 0x4b, 0x1b, 0xf2, 0x92, 0xcc, 0x94, 0x94, 0x5b, 0x3a, - 0x5f, 0xc5, 0x1a, 0x27, 0x5b, 0xd5, 0x55, 0x72, 0x52, 0x75, 0x70, 0x60, 0x55, 0x27, 0x85, 0xee, - 0x70, 0x4f, 0xa1, 0x2b, 0x8f, 0xae, 0x46, 0x7a, 0x1e, 0x5d, 0xbd, 0x13, 0xc6, 0x5c, 0x7f, 0x93, - 0x84, 0x6e, 0x4c, 0xea, 0x6c, 0x2d, 0x30, 0x81, 0x5c, 0xd6, 0x86, 0xce, 0x62, 0x02, 0x8a, 0x53, - 0xd8, 0x49, 0x4d, 0x31, 0xd6, 0x87, 0xa6, 0xe8, 0xa1, 0x9f, 0xc7, 0xf3, 0xd1, 0xcf, 0xc7, 0x0e, - 0xaf, 0x9f, 0x27, 0x8e, 0x54, 0x3f, 0xa3, 0x5c, 0xf4, 0x73, 0x5f, 0xaa, 0xcf, 0xd8, 0xa4, 0x9f, - 0xd8, 0x67, 0x93, 0xde, 0x4b, 0x39, 0x9f, 0xbc, 0x63, 0xe5, 0x9c, 0xad, 0x77, 0x1f, 0x78, 0x53, - 0xef, 0xe6, 0xa2, 0x77, 0x3f, 0x5a, 0x80, 0x93, 0x5a, 0x33, 0x51, 0x79, 0xe0, 0x6e, 0x50, 0xd9, - 0xcc, 0x6e, 0x9e, 0xe6, 0x07, 0xde, 0x46, 0x66, 0xb8, 0xce, 0x8d, 0x57, 0x10, 0x6c, 0x60, 0xb1, - 0x04, 0x6b, 0x12, 0xb2, 0x3b, 0x4f, 0xd2, 0x6a, 0x6b, 0x5e, 0xb4, 0x63, 0x85, 0x41, 0x07, 0x81, - 0xfe, 0x16, 0xf5, 0x3d, 0xd2, 0xd5, 0xb4, 0xe7, 0x35, 0x08, 0x9b, 0x78, 0xe8, 0x09, 0xce, 0x84, - 0x89, 0x4c, 0xaa, 0xba, 0x46, 0xf8, 0xb6, 0x52, 0x49, 0x49, 0x05, 0x95, 0xdd, 0x61, 0x05, 0x00, - 0x4a, 0xdd, 0xdd, 0x61, 0xb1, 0xa3, 0x0a, 0xc3, 0xfe, 0x9f, 0x16, 0x9c, 0xca, 0x1c, 0x8a, 0xbb, - 0x60, 0x8e, 0xec, 0x24, 0xcd, 0x91, 0x6a, 0x5e, 0x5b, 0x52, 0xe3, 0x2d, 0x7a, 0x98, 0x26, 0xff, - 0xd1, 0x82, 0x31, 0x8d, 0x7f, 0x17, 0x5e, 0xd5, 0x4d, 0xbe, 0x6a, 0x7e, 0xbb, 0xef, 0x4a, 0xd7, - 0xbb, 0xfd, 0x4e, 0x01, 0x54, 0x85, 0xfb, 0xd9, 0x9a, 0xbc, 0x3f, 0x64, 0x9f, 0x10, 0x8c, 0x0e, - 0x0c, 0xb2, 0x08, 0x92, 0x28, 0x9f, 0xe8, 0xb8, 0x24, 0x7f, 0x16, 0x8d, 0xa2, 0x0f, 0xf4, 0xd8, - 0xdf, 0x08, 0x0b, 0x86, 0xec, 0x46, 0x1e, 0x5e, 0x3c, 0xbc, 0x2e, 0xf2, 0x84, 0xf5, 0x8d, 0x3c, - 0xa2, 0x1d, 0x2b, 0x0c, 0xaa, 0x30, 0xdd, 0x5a, 0xe0, 0xcf, 0x7b, 0x4e, 0x14, 0x09, 0x1b, 0x4e, - 0x29, 0xcc, 0x45, 0x09, 0xc0, 0x1a, 0x87, 0x05, 0x97, 0xb8, 0x51, 0xcb, 0x73, 0x3a, 0x86, 0x8f, - 0xc5, 0xa8, 0x63, 0xa5, 0x40, 0xd8, 0xc4, 0xb3, 0x9b, 0x30, 0x99, 0x7c, 0x89, 0x05, 0xb2, 0xc1, - 0x22, 0xbb, 0xfb, 0x1a, 0xce, 0x19, 0xa8, 0x38, 0xec, 0xa9, 0xa5, 0xb6, 0x23, 0x64, 0x82, 0x8e, - 0x6f, 0x96, 0x00, 0xac, 0x71, 0xec, 0x7f, 0x66, 0xc1, 0xf1, 0x8c, 0x41, 0xcb, 0x31, 0x0f, 0x3b, - 0xd6, 0xd2, 0x26, 0xcb, 0xd4, 0xf9, 0x3e, 0x18, 0xaa, 0x93, 0x0d, 0x47, 0xc6, 0x0e, 0x9b, 0xa9, - 0x06, 0xbc, 0x19, 0x4b, 0xb8, 0xfd, 0x1b, 0x05, 0x18, 0x4f, 0xf6, 0x35, 0x62, 0xb9, 0x8d, 0x7c, - 0x98, 0xdc, 0xa8, 0x16, 0x6c, 0x93, 0xb0, 0x43, 0xdf, 0xdc, 0x4a, 0xe5, 0x36, 0x76, 0x61, 0xe0, - 0x8c, 0xa7, 0xd8, 0xfd, 0x16, 0x75, 0x35, 0xda, 0x72, 0x46, 0x5e, 0xcb, 0x73, 0x46, 0xea, 0x8f, - 0x69, 0xc6, 0x19, 0x29, 0x96, 0xd8, 0xe4, 0x4f, 0x4d, 0x2e, 0x96, 0x2c, 0x32, 0xd7, 0x76, 0xbd, - 0xd8, 0xf5, 0xc5, 0x2b, 0x8b, 0xb9, 0xaa, 0x4c, 0xae, 0xe5, 0x6e, 0x14, 0x9c, 0xf5, 0x9c, 0xfd, - 0xad, 0x01, 0x50, 0x35, 0x46, 0x58, 0x1c, 0x68, 0x4e, 0x51, 0xb4, 0x07, 0xcd, 0x90, 0x55, 0x73, - 0x6b, 0x60, 0xaf, 0xc0, 0x2c, 0xee, 0x98, 0x33, 0x3d, 0xf8, 0x6a, 0xc0, 0xd6, 0x34, 0x08, 0x9b, - 0x78, 0xb4, 0x27, 0x9e, 0xbb, 0x4d, 0xf8, 0x43, 0x83, 0xc9, 0x9e, 0x2c, 0x49, 0x00, 0xd6, 0x38, - 0xac, 0x9c, 0xb5, 0xbb, 0xb1, 0x21, 0xbc, 0x4c, 0xba, 0x9c, 0xb5, 0xbb, 0xb1, 0x81, 0x19, 0x84, - 0xdf, 0x80, 0x14, 0x6c, 0x89, 0x6d, 0x86, 0x71, 0x03, 0x52, 0xb0, 0x85, 0x19, 0x84, 0x7e, 0x25, - 0x3f, 0x08, 0x9b, 0x8e, 0xe7, 0xbe, 0x46, 0xea, 0x8a, 0x8b, 0xd8, 0x5e, 0xa8, 0xaf, 0x74, 0xa5, - 0x1b, 0x05, 0x67, 0x3d, 0x47, 0x27, 0x74, 0x2b, 0x24, 0x75, 0xb7, 0x16, 0x9b, 0xd4, 0x20, 0x39, - 0xa1, 0x57, 0xbb, 0x30, 0x70, 0xc6, 0x53, 0x68, 0x16, 0xc6, 0x65, 0x8d, 0x18, 0x59, 0x57, 0x71, - 0x38, 0x59, 0x9c, 0x0d, 0x27, 0xc1, 0x38, 0x8d, 0x4f, 0x85, 0x64, 0x53, 0x54, 0x85, 0x65, 0xbb, - 0x11, 0x43, 0x48, 0xca, 0x6a, 0xb1, 0x58, 0x61, 0xd8, 0x1f, 0x2c, 0x52, 0xa5, 0xde, 0xa3, 0xf8, - 0xf2, 0x5d, 0x8b, 0xda, 0x4e, 0xce, 0xc8, 0x81, 0x3e, 0x66, 0xe4, 0xb3, 0x30, 0x72, 0x23, 0x0a, - 0x7c, 0x15, 0x11, 0x5d, 0xea, 0x19, 0x11, 0x6d, 0x60, 0x65, 0x47, 0x44, 0x0f, 0xe6, 0x15, 0x11, - 0x3d, 0x74, 0x87, 0x11, 0xd1, 0xbf, 0x5f, 0x02, 0x75, 0xc5, 0xe5, 0x15, 0x12, 0xdf, 0x0c, 0xc2, - 0x2d, 0xd7, 0x6f, 0xb0, 0x7a, 0x27, 0x5f, 0xb0, 0x64, 0xc9, 0x94, 0x25, 0x33, 0x53, 0x78, 0x23, - 0xa7, 0x6b, 0x0a, 0x13, 0xcc, 0xa6, 0xd7, 0x0c, 0x46, 0x3c, 0xb2, 0x26, 0x55, 0x9a, 0x45, 0x1c, - 0x1a, 0x24, 0x7a, 0x84, 0x7e, 0x12, 0x40, 0xba, 0xe4, 0x37, 0xa4, 0x04, 0x5e, 0xcc, 0xa7, 0x7f, - 0x98, 0x6c, 0x68, 0x93, 0x7a, 0x4d, 0x31, 0xc1, 0x06, 0x43, 0xf4, 0x51, 0x9d, 0x45, 0xcd, 0x53, - 0xa7, 0xde, 0x7b, 0x24, 0x63, 0xd3, 0x4f, 0x0e, 0x35, 0x86, 0x21, 0xd7, 0x6f, 0xd0, 0x79, 0x22, - 0x22, 0x47, 0xdf, 0x96, 0x55, 0x4e, 0x6b, 0x29, 0x70, 0xea, 0x73, 0x8e, 0xe7, 0xf8, 0x35, 0x12, - 0x2e, 0x72, 0x74, 0xad, 0x41, 0x45, 0x03, 0x96, 0x84, 0xba, 0xee, 0xe1, 0x2c, 0xf5, 0x73, 0x0f, - 0xe7, 0xe9, 0x1f, 0x81, 0x89, 0xae, 0x8f, 0x79, 0xa0, 0x94, 0xe9, 0x43, 0x14, 0xd2, 0xfa, 0xcd, - 0x41, 0xad, 0xb4, 0xae, 0x04, 0x75, 0x7e, 0xad, 0x63, 0xa8, 0xbf, 0xa8, 0x30, 0x99, 0x73, 0x9c, - 0x22, 0x4a, 0xcd, 0x18, 0x8d, 0xd8, 0x64, 0x49, 0xe7, 0x68, 0xcb, 0x09, 0x89, 0x7f, 0xd4, 0x73, - 0x74, 0x55, 0x31, 0xc1, 0x06, 0x43, 0xb4, 0x99, 0xc8, 0xed, 0x3b, 0x7f, 0xf8, 0xdc, 0x3e, 0x56, - 0xdc, 0x34, 0xeb, 0xf6, 0xb3, 0xd7, 0x2d, 0x18, 0xf3, 0x13, 0x33, 0x37, 0x9f, 0x70, 0xfe, 0xec, - 0x55, 0xc1, 0x6f, 0x48, 0x4e, 0xb6, 0xe1, 0x14, 0xff, 0x2c, 0x95, 0x56, 0x3a, 0xa0, 0x4a, 0xd3, - 0xd7, 0xca, 0x0e, 0xf6, 0xba, 0x56, 0x16, 0xf9, 0xea, 0xbe, 0xef, 0xa1, 0x3c, 0xca, 0x91, 0x24, - 0x2e, 0xfb, 0x86, 0x8c, 0x8b, 0xbe, 0xaf, 0x9b, 0xa9, 0xbf, 0x07, 0xbf, 0xf7, 0x79, 0xb4, 0x57, - 0x8a, 0xb0, 0xfd, 0x7f, 0x06, 0xe0, 0x98, 0x1c, 0x11, 0x99, 0x0a, 0x44, 0xf5, 0x23, 0xe7, 0xab, - 0x6d, 0x65, 0xa5, 0x1f, 0x2f, 0x4a, 0x00, 0xd6, 0x38, 0xd4, 0x1e, 0x6b, 0x47, 0x64, 0xa5, 0x45, - 0xfc, 0x25, 0x77, 0x3d, 0x12, 0xc7, 0xef, 0x6a, 0xa1, 0x5c, 0xd5, 0x20, 0x6c, 0xe2, 0xb1, 0xfc, - 0x64, 0xc3, 0x68, 0x35, 0xf3, 0x93, 0x85, 0xa1, 0x2a, 0xe1, 0xe8, 0xb3, 0x99, 0xb7, 0x41, 0xe4, - 0x93, 0x40, 0xdb, 0x95, 0x01, 0x75, 0xb0, 0x6b, 0x20, 0xd0, 0x3f, 0xb2, 0xe0, 0x24, 0x6f, 0x95, - 0x23, 0x79, 0xb5, 0x55, 0x77, 0x62, 0x12, 0xe5, 0x73, 0x73, 0x56, 0x46, 0xff, 0xb4, 0x17, 0x3d, - 0x8b, 0x2d, 0xce, 0xee, 0x0d, 0xfa, 0x94, 0x05, 0xe3, 0x5b, 0x89, 0x9a, 0x56, 0x52, 0x75, 0x1c, - 0xb6, 0xdc, 0x4c, 0x82, 0xa8, 0x5e, 0x6a, 0xc9, 0xf6, 0x08, 0xa7, 0xb9, 0xdb, 0x7f, 0x69, 0x81, - 0x29, 0x46, 0xef, 0x7e, 0x29, 0xac, 0x83, 0x9b, 0x82, 0xd2, 0xba, 0x2c, 0xf5, 0xb4, 0x2e, 0x1f, - 0x81, 0x62, 0xdb, 0xad, 0x8b, 0xfd, 0x85, 0x3e, 0xf0, 0x5f, 0x5c, 0xc0, 0xb4, 0xdd, 0xfe, 0x66, - 0x49, 0xbb, 0x41, 0x44, 0x7e, 0xea, 0x77, 0xc5, 0x6b, 0x6f, 0xa8, 0x1a, 0xb7, 0xfc, 0xcd, 0xaf, - 0x74, 0xd5, 0xb8, 0xfd, 0xa1, 0x83, 0xa7, 0x1f, 0xf3, 0x01, 0xea, 0x55, 0xe2, 0x76, 0x68, 0x9f, - 0xdc, 0xe3, 0x1b, 0x50, 0xa6, 0x5b, 0x30, 0xe6, 0xcf, 0x2c, 0x27, 0x3a, 0x55, 0xbe, 0x28, 0xda, - 0x6f, 0xef, 0x4e, 0xfd, 0xe0, 0xc1, 0xbb, 0x25, 0x9f, 0xc6, 0x8a, 0x3e, 0x8a, 0xa0, 0x42, 0x7f, - 0xb3, 0x34, 0x69, 0xb1, 0xb9, 0xbb, 0xaa, 0x64, 0xa6, 0x04, 0xe4, 0x92, 0x83, 0xad, 0xf9, 0x20, - 0x1f, 0x2a, 0x14, 0x91, 0x33, 0xe5, 0x7b, 0xc0, 0x55, 0x95, 0xac, 0x2c, 0x01, 0xb7, 0x77, 0xa7, - 0x5e, 0x38, 0x38, 0x53, 0xf5, 0x38, 0xd6, 0x2c, 0x0c, 0xd5, 0x38, 0xdc, 0xf3, 0xc6, 0xf5, 0xff, - 0x3b, 0xa0, 0xe7, 0xb7, 0x28, 0x7f, 0xfc, 0x5d, 0x31, 0xbf, 0x9f, 0x4f, 0xcd, 0xef, 0x33, 0x5d, - 0xf3, 0x7b, 0x8c, 0x8e, 0x59, 0x46, 0x51, 0xe6, 0xbb, 0x6d, 0x2c, 0xec, 0xef, 0x93, 0x60, 0x56, - 0xd2, 0xab, 0x6d, 0x37, 0x24, 0xd1, 0x6a, 0xd8, 0xf6, 0x5d, 0xbf, 0xc1, 0xa6, 0x6c, 0xd9, 0xb4, - 0x92, 0x12, 0x60, 0x9c, 0xc6, 0xa7, 0x1b, 0x7f, 0x3a, 0x2f, 0xae, 0x3b, 0xdb, 0x7c, 0xe6, 0x19, - 0xa5, 0x27, 0xab, 0xa2, 0x1d, 0x2b, 0x0c, 0xb4, 0x09, 0x0f, 0x4b, 0x02, 0x0b, 0xc4, 0x23, 0xf4, - 0x85, 0x58, 0x20, 0x63, 0xd8, 0xe4, 0x69, 0x06, 0x3c, 0x16, 0xe5, 0xad, 0x82, 0xc2, 0xc3, 0x78, - 0x0f, 0x5c, 0xbc, 0x27, 0x25, 0xfb, 0x8b, 0x2c, 0x74, 0xc1, 0xa8, 0x16, 0x41, 0x67, 0x9f, 0xe7, - 0x36, 0x5d, 0x59, 0x21, 0x53, 0xcd, 0xbe, 0x25, 0xda, 0x88, 0x39, 0x0c, 0xdd, 0x84, 0xa1, 0x75, - 0x7e, 0x13, 0x7b, 0x3e, 0x37, 0x20, 0x89, 0x6b, 0xdd, 0x59, 0x75, 0x6c, 0x79, 0xc7, 0xfb, 0x6d, - 0xfd, 0x13, 0x4b, 0x6e, 0xf6, 0xd7, 0x4a, 0x30, 0x2e, 0xc3, 0xcb, 0x2e, 0xba, 0x11, 0x8b, 0x48, - 0x30, 0xaf, 0x0c, 0x28, 0xec, 0x7b, 0x65, 0xc0, 0x7b, 0x00, 0xea, 0xa4, 0xe5, 0x05, 0x1d, 0x66, - 0x1c, 0x0e, 0x1c, 0xd8, 0x38, 0x54, 0xfb, 0x89, 0x05, 0x45, 0x05, 0x1b, 0x14, 0x45, 0x59, 0x50, - 0x7e, 0x03, 0x41, 0xaa, 0x2c, 0xa8, 0x71, 0x4f, 0xda, 0xe0, 0xdd, 0xbd, 0x27, 0xcd, 0x85, 0x71, - 0xde, 0x45, 0x55, 0x93, 0xe1, 0x0e, 0x4a, 0x2f, 0xb0, 0xac, 0xb6, 0x85, 0x24, 0x19, 0x9c, 0xa6, - 0x6b, 0x5e, 0x82, 0x56, 0xbe, 0xdb, 0x97, 0xa0, 0xbd, 0x1d, 0x2a, 0xf2, 0x3b, 0x47, 0x93, 0x15, - 0x5d, 0x2f, 0x48, 0x4e, 0x83, 0x08, 0x6b, 0x78, 0x57, 0x79, 0x19, 0xb8, 0x57, 0xe5, 0x65, 0xec, - 0xd7, 0x8b, 0x74, 0x57, 0xc1, 0xfb, 0x75, 0xe0, 0x3b, 0x04, 0x2f, 0x1a, 0x77, 0x08, 0x1e, 0xec, - 0x7b, 0x96, 0x53, 0x77, 0x0d, 0x3e, 0x0c, 0x03, 0xb1, 0xd3, 0x90, 0x49, 0xb8, 0x0c, 0xba, 0xe6, - 0x34, 0x22, 0xcc, 0x5a, 0x0f, 0x52, 0x45, 0xf9, 0x05, 0x18, 0x8d, 0xdc, 0x86, 0xef, 0xc4, 0xed, - 0x90, 0x18, 0xe7, 0x97, 0x3a, 0x48, 0xc7, 0x04, 0xe2, 0x24, 0x2e, 0xfa, 0x90, 0x05, 0x10, 0x12, - 0xb5, 0x67, 0x19, 0xcc, 0x63, 0x0e, 0x29, 0x31, 0x20, 0xe9, 0x9a, 0x65, 0x41, 0xd4, 0x5e, 0xc5, - 0x60, 0x6b, 0x7f, 0xc4, 0x82, 0x89, 0xae, 0xa7, 0x50, 0x0b, 0x06, 0x6b, 0xec, 0xa6, 0xc7, 0x7c, - 0xea, 0x4e, 0x26, 0x6f, 0x8d, 0xe4, 0xca, 0x89, 0xb7, 0x61, 0xc1, 0xc7, 0xfe, 0xf2, 0x08, 0x9c, - 0xa8, 0xce, 0x2f, 0xcb, 0x7b, 0x7f, 0x8e, 0x2c, 0xab, 0x38, 0x8b, 0xc7, 0xdd, 0xcb, 0x2a, 0xee, - 0xc1, 0xdd, 0x33, 0xb2, 0x8a, 0x3d, 0x23, 0xab, 0x38, 0x99, 0xe2, 0x59, 0xcc, 0x23, 0xc5, 0x33, - 0xab, 0x07, 0xfd, 0xa4, 0x78, 0x1e, 0x59, 0x9a, 0xf1, 0x9e, 0x1d, 0x3a, 0x50, 0x9a, 0xb1, 0xca, - 0xc1, 0xce, 0x25, 0xa3, 0xac, 0xc7, 0xa7, 0xca, 0xcc, 0xc1, 0x56, 0xf9, 0xaf, 0x3c, 0x5b, 0x52, - 0x28, 0xbd, 0x97, 0xf3, 0xef, 0x40, 0x1f, 0xf9, 0xaf, 0x22, 0x61, 0xd3, 0xcc, 0xb9, 0x1e, 0xca, - 0x23, 0xe7, 0x3a, 0xab, 0x3b, 0xfb, 0xe6, 0x5c, 0xbf, 0x00, 0xa3, 0x35, 0x2f, 0xf0, 0xc9, 0x6a, - 0x18, 0xc4, 0x41, 0x2d, 0x90, 0xf7, 0x6a, 0xeb, 0x2b, 0x12, 0x4d, 0x20, 0x4e, 0xe2, 0xf6, 0x4a, - 0xd8, 0xae, 0x1c, 0x36, 0x61, 0x1b, 0xee, 0x51, 0xc2, 0xb6, 0x91, 0x92, 0x3c, 0x9c, 0x47, 0x4a, - 0x72, 0xd6, 0x17, 0xe9, 0x2b, 0x25, 0xf9, 0x0d, 0x7e, 0xad, 0x3c, 0xdd, 0x8c, 0x70, 0x29, 0xcc, - 0x8e, 0xe8, 0x86, 0xcf, 0xbe, 0x72, 0x04, 0x13, 0xf6, 0x7a, 0x55, 0xb3, 0x51, 0x57, 0xcd, 0xeb, - 0x26, 0x9c, 0xec, 0xc8, 0x61, 0xd2, 0x98, 0x3f, 0x57, 0x80, 0xef, 0xd9, 0xb7, 0x0b, 0xe8, 0x26, - 0x40, 0xec, 0x34, 0xc4, 0x44, 0x15, 0x07, 0x59, 0x87, 0x8c, 0x2b, 0x5e, 0x93, 0xf4, 0x44, 0x8a, - 0x9d, 0x22, 0x8f, 0x0d, 0x56, 0x2c, 0x9c, 0x38, 0xf0, 0xba, 0x4a, 0x46, 0xe3, 0xc0, 0x23, 0x98, - 0x41, 0xa8, 0x21, 0x14, 0x92, 0x06, 0x35, 0xee, 0x8b, 0x49, 0x43, 0x08, 0xb3, 0x56, 0x2c, 0xa0, - 0xe8, 0x39, 0x18, 0x76, 0x3c, 0x8f, 0xa7, 0xfb, 0x91, 0x48, 0xdc, 0x5d, 0xaa, 0x6b, 0xd7, 0x6a, - 0x10, 0x36, 0xf1, 0xec, 0xbf, 0x28, 0xc0, 0xd4, 0x3e, 0x32, 0xa5, 0x2b, 0xcd, 0xbb, 0xd4, 0x77, - 0x9a, 0xb7, 0x48, 0x57, 0x1a, 0xec, 0x91, 0xae, 0xf4, 0x1c, 0x0c, 0xc7, 0xc4, 0x69, 0x8a, 0x48, - 0xc4, 0x74, 0x49, 0xc6, 0x35, 0x0d, 0xc2, 0x26, 0x1e, 0x95, 0x62, 0x63, 0x4e, 0xad, 0x46, 0xa2, - 0x48, 0xe6, 0x23, 0x09, 0x2f, 0x77, 0x6e, 0xc9, 0x4e, 0xec, 0xf0, 0x60, 0x36, 0xc1, 0x02, 0xa7, - 0x58, 0xa6, 0x07, 0xbc, 0xd2, 0xe7, 0x80, 0xff, 0x52, 0x01, 0x1e, 0xd9, 0x53, 0xbb, 0xf5, 0x9d, - 0x2a, 0xd6, 0x8e, 0x48, 0x98, 0x9e, 0x38, 0x57, 0x23, 0x12, 0x62, 0x06, 0xe1, 0xa3, 0xd4, 0x6a, - 0xa9, 0x28, 0xf2, 0xfc, 0x73, 0x2b, 0xf9, 0x28, 0x25, 0x58, 0xe0, 0x14, 0xcb, 0x3b, 0x9d, 0x96, - 0x5f, 0x1b, 0x80, 0xc7, 0xfa, 0xb0, 0x01, 0x72, 0xcc, 0x41, 0x4d, 0xe6, 0x57, 0x17, 0xef, 0x51, - 0x7e, 0xf5, 0x9d, 0x0d, 0xd7, 0x9b, 0x69, 0xd9, 0x7d, 0xe5, 0xba, 0x7e, 0xb1, 0x00, 0xa7, 0x7b, - 0x1b, 0x2c, 0xe8, 0x87, 0x61, 0x3c, 0x54, 0x21, 0x89, 0x66, 0x6a, 0xf6, 0x71, 0xee, 0xe3, 0x4a, - 0x80, 0x70, 0x1a, 0x17, 0x4d, 0x03, 0xb4, 0x9c, 0x78, 0x33, 0x3a, 0xb7, 0xe3, 0x46, 0xb1, 0xa8, - 0x65, 0x37, 0xc6, 0x4f, 0x5e, 0x65, 0x2b, 0x36, 0x30, 0x28, 0x3b, 0xf6, 0x6f, 0x21, 0xb8, 0x12, - 0xc4, 0xfc, 0x21, 0xbe, 0xf5, 0x3c, 0x2e, 0x2f, 0x3a, 0x34, 0x40, 0x38, 0x8d, 0x4b, 0xd9, 0xb1, - 0xb3, 0x7d, 0xde, 0xd1, 0x01, 0x9d, 0xcc, 0xbd, 0xa4, 0x5a, 0xb1, 0x81, 0x91, 0x4e, 0x3a, 0x2f, - 0xed, 0x9f, 0x74, 0x6e, 0xff, 0xab, 0x02, 0x9c, 0xea, 0x69, 0xf0, 0xf6, 0x27, 0xa6, 0xee, 0xbf, - 0xc4, 0xef, 0x3b, 0x5c, 0x61, 0x07, 0x4a, 0x18, 0xb6, 0xff, 0xb4, 0xc7, 0x4c, 0x13, 0xc9, 0xc0, - 0x77, 0x5e, 0x37, 0xe5, 0xfe, 0x1b, 0xcf, 0xae, 0xfc, 0xdf, 0x81, 0x03, 0xe4, 0xff, 0xa6, 0x3e, - 0x46, 0xa9, 0x4f, 0xed, 0xf0, 0x5f, 0x07, 0x7a, 0x0e, 0x2f, 0xdd, 0x20, 0xf7, 0x75, 0x82, 0xb0, - 0x00, 0xc7, 0x5c, 0x9f, 0x5d, 0x5d, 0x5b, 0x6d, 0xaf, 0x8b, 0xf2, 0x66, 0xbc, 0x86, 0xaf, 0xca, - 0xbe, 0x59, 0x4c, 0xc1, 0x71, 0xd7, 0x13, 0xf7, 0x61, 0x3e, 0xf6, 0x9d, 0x0d, 0xe9, 0x01, 0x25, - 0xf7, 0x0a, 0x9c, 0x94, 0x43, 0xb1, 0xe9, 0x84, 0xa4, 0x2e, 0x94, 0x6d, 0x24, 0xf2, 0xad, 0x4e, - 0xf1, 0x9c, 0xad, 0x0c, 0x04, 0x9c, 0xfd, 0x1c, 0xbb, 0x67, 0x34, 0x68, 0xb9, 0x35, 0xb1, 0x15, - 0xd4, 0xf7, 0x8c, 0xd2, 0x46, 0xcc, 0x61, 0x5a, 0x5f, 0x54, 0xee, 0x8e, 0xbe, 0x78, 0x0f, 0x54, - 0xd4, 0x78, 0xf3, 0x9c, 0x0a, 0x35, 0xc9, 0xbb, 0x72, 0x2a, 0xd4, 0x0c, 0x37, 0xb0, 0xf6, 0xbb, - 0xce, 0xff, 0x19, 0x18, 0x51, 0xbe, 0xc0, 0x7e, 0x6f, 0x7b, 0xb5, 0xff, 0x5f, 0x01, 0x52, 0x17, - 0x9b, 0xa1, 0x1d, 0xa8, 0xd4, 0xe5, 0x85, 0xfa, 0xf9, 0xd4, 0x90, 0x56, 0xf7, 0xf3, 0xeb, 0x83, - 0x30, 0xd5, 0x84, 0x35, 0x33, 0xf4, 0x3e, 0x5e, 0xae, 0x59, 0xb0, 0x2e, 0xe4, 0x91, 0x93, 0x5f, - 0x55, 0xf4, 0xcc, 0xeb, 0x1c, 0x65, 0x1b, 0x36, 0xf8, 0xa1, 0x18, 0x2a, 0x9b, 0xf2, 0x02, 0xb7, - 0x7c, 0xc4, 0x9d, 0xba, 0x0f, 0x8e, 0x9b, 0x68, 0xea, 0x2f, 0xd6, 0x8c, 0xec, 0x3f, 0x29, 0xc0, - 0x89, 0xe4, 0x07, 0x10, 0x07, 0x97, 0xbf, 0x62, 0xc1, 0x83, 0x9e, 0x13, 0xc5, 0xd5, 0x36, 0xdb, - 0x28, 0x6c, 0xb4, 0xbd, 0x95, 0x54, 0x65, 0xef, 0xc3, 0x3a, 0x5b, 0x14, 0xe1, 0xf4, 0x85, 0x7f, - 0x73, 0x0f, 0xdd, 0xda, 0x9d, 0x7a, 0x70, 0x29, 0x9b, 0x39, 0xee, 0xd5, 0x2b, 0xf4, 0xba, 0x05, - 0xc7, 0x6a, 0xed, 0x30, 0x24, 0x7e, 0xac, 0xbb, 0xca, 0xbf, 0xe2, 0x95, 0x5c, 0x06, 0x52, 0x77, - 0xf0, 0x04, 0x15, 0xa8, 0xf3, 0x29, 0x5e, 0xb8, 0x8b, 0xbb, 0xfd, 0xf3, 0x54, 0x73, 0xf6, 0x7c, - 0xcf, 0xbf, 0x66, 0x37, 0x14, 0xfe, 0xd9, 0x20, 0x8c, 0x26, 0xca, 0x97, 0x27, 0x0e, 0xfb, 0xac, - 0x7d, 0x0f, 0xfb, 0x58, 0x86, 0x60, 0xdb, 0x97, 0x97, 0xb7, 0x1b, 0x19, 0x82, 0x6d, 0x9f, 0x60, - 0x0e, 0x13, 0x43, 0x8a, 0xdb, 0xbe, 0xc8, 0x05, 0x30, 0x87, 0x14, 0xb7, 0x7d, 0x2c, 0xa0, 0xe8, - 0x03, 0x16, 0x8c, 0xb0, 0xc5, 0x27, 0x8e, 0x4a, 0x85, 0x42, 0xbb, 0x94, 0xc3, 0x72, 0x97, 0xa5, - 0xfa, 0x59, 0xec, 0xa8, 0xd9, 0x82, 0x13, 0x1c, 0xd1, 0x87, 0x2d, 0xa8, 0xa8, 0x9b, 0x62, 0xc5, - 0xd9, 0x48, 0x35, 0xdf, 0xea, 0xf0, 0x29, 0xa9, 0xa7, 0xca, 0x74, 0x63, 0xcd, 0x18, 0x45, 0xea, - 0x1c, 0x73, 0xe8, 0x68, 0xce, 0x31, 0x21, 0xe3, 0x0c, 0xf3, 0xed, 0x50, 0x69, 0x3a, 0xbe, 0xbb, - 0x41, 0xa2, 0x98, 0x1f, 0x2d, 0xca, 0xcb, 0x40, 0x64, 0x23, 0xd6, 0x70, 0x6a, 0xec, 0x47, 0xec, - 0xc5, 0x62, 0xe3, 0x2c, 0x90, 0x19, 0xfb, 0x55, 0xdd, 0x8c, 0x4d, 0x1c, 0xf3, 0xe0, 0x12, 0xee, - 0xe9, 0xc1, 0xe5, 0xf0, 0x3e, 0x07, 0x97, 0x55, 0x38, 0xe9, 0xb4, 0xe3, 0xe0, 0x22, 0x71, 0xbc, - 0xd9, 0x38, 0x26, 0xcd, 0x56, 0x1c, 0xf1, 0x8a, 0xf7, 0x23, 0xcc, 0x05, 0xac, 0xa2, 0xdd, 0xaa, - 0xc4, 0xdb, 0xe8, 0x42, 0xc2, 0xd9, 0xcf, 0xda, 0xff, 0xc2, 0x82, 0x93, 0x99, 0x53, 0xe1, 0xfe, - 0xcd, 0x33, 0xb0, 0x3f, 0x5d, 0x82, 0xe3, 0x19, 0x97, 0x1b, 0xa0, 0x8e, 0xb9, 0x48, 0xac, 0x3c, - 0x42, 0xf6, 0x92, 0x11, 0x68, 0xf2, 0xdb, 0x64, 0xac, 0x8c, 0x83, 0xc5, 0x22, 0xe8, 0x78, 0x80, - 0xe2, 0xdd, 0x8d, 0x07, 0x30, 0xe6, 0xfa, 0xc0, 0x3d, 0x9d, 0xeb, 0xa5, 0x7d, 0xe6, 0xfa, 0x97, - 0x2c, 0x98, 0x6c, 0xf6, 0xb8, 0xa9, 0x4c, 0x9c, 0x27, 0x5d, 0x3b, 0x9a, 0x7b, 0xd0, 0xe6, 0x1e, - 0xbe, 0xb5, 0x3b, 0xd5, 0xf3, 0x82, 0x38, 0xdc, 0xb3, 0x57, 0xf6, 0xb7, 0x8a, 0xc0, 0xec, 0x35, - 0x56, 0xc0, 0xba, 0x83, 0xde, 0x6f, 0xde, 0x91, 0x62, 0xe5, 0x75, 0x9f, 0x07, 0x27, 0xae, 0xee, - 0x58, 0xe1, 0x23, 0x98, 0x75, 0xe5, 0x4a, 0x5a, 0x12, 0x16, 0xfa, 0x90, 0x84, 0x9e, 0xbc, 0x8c, - 0xa6, 0x98, 0xff, 0x65, 0x34, 0x95, 0xf4, 0x45, 0x34, 0x7b, 0x7f, 0xe2, 0x81, 0xfb, 0xf2, 0x13, - 0xff, 0x96, 0xc5, 0x05, 0x4f, 0xea, 0x2b, 0x68, 0x73, 0xc3, 0xda, 0xc3, 0xdc, 0x78, 0x12, 0xca, - 0x91, 0x90, 0xcc, 0xc2, 0x2c, 0xd1, 0xa1, 0x60, 0xa2, 0x1d, 0x2b, 0x0c, 0xba, 0xeb, 0x72, 0x3c, - 0x2f, 0xb8, 0x79, 0xae, 0xd9, 0x8a, 0x3b, 0xc2, 0x40, 0x51, 0xdb, 0x82, 0x59, 0x05, 0xc1, 0x06, - 0x16, 0x7a, 0x0c, 0x06, 0x79, 0xa5, 0x09, 0xe1, 0xdc, 0x19, 0xa6, 0xeb, 0x90, 0x97, 0xa1, 0xa8, - 0x63, 0x01, 0xb2, 0x37, 0xc1, 0xd8, 0x55, 0xdc, 0xf9, 0xed, 0xcf, 0xea, 0x1e, 0xda, 0x42, 0xaf, - 0x7b, 0x68, 0xed, 0x7f, 0x50, 0x10, 0xac, 0xf8, 0x2e, 0x41, 0x47, 0x06, 0x5a, 0x07, 0x8c, 0x0c, - 0x7c, 0x1f, 0x40, 0x2d, 0x68, 0xb6, 0xe8, 0xbe, 0x79, 0x2d, 0xc8, 0x67, 0xb3, 0x35, 0xaf, 0xe8, - 0xe9, 0x51, 0xd5, 0x6d, 0xd8, 0xe0, 0x97, 0x10, 0xed, 0xc5, 0x7d, 0x45, 0x7b, 0x42, 0xca, 0x0d, - 0xec, 0x2d, 0xe5, 0xec, 0xbf, 0xb0, 0x20, 0x61, 0xf5, 0xa1, 0x16, 0x94, 0x68, 0x77, 0x3b, 0x42, - 0x60, 0xac, 0xe4, 0x67, 0x62, 0x52, 0x49, 0x2d, 0x56, 0x21, 0xfb, 0x89, 0x39, 0x23, 0xe4, 0x89, - 0x28, 0xc8, 0x5c, 0x36, 0x3f, 0x26, 0xc3, 0x8b, 0x41, 0xb0, 0xc5, 0x83, 0x89, 0x74, 0x44, 0xa5, - 0xfd, 0x3c, 0x4c, 0x74, 0x75, 0x8a, 0xdd, 0x18, 0x1d, 0xc8, 0x1d, 0xbc, 0xb1, 0x7a, 0x58, 0xc1, - 0x07, 0xcc, 0x61, 0xf6, 0x17, 0x2d, 0x38, 0x96, 0x26, 0x8f, 0xde, 0xb0, 0x60, 0x22, 0x4a, 0xd3, - 0x3b, 0xaa, 0xb1, 0x53, 0xd9, 0x0e, 0x5d, 0x20, 0xdc, 0xdd, 0x09, 0xfb, 0x7f, 0x08, 0x6d, 0x70, - 0xdd, 0xf5, 0xeb, 0xc1, 0x4d, 0x65, 0x27, 0x59, 0x3d, 0xed, 0x24, 0x2a, 0x1e, 0x6a, 0x9b, 0xa4, - 0xde, 0xf6, 0xba, 0xca, 0x50, 0x54, 0x45, 0x3b, 0x56, 0x18, 0x2c, 0xeb, 0xbe, 0x2d, 0xf6, 0xad, - 0xa9, 0x49, 0xb9, 0x20, 0xda, 0xb1, 0xc2, 0x40, 0xcf, 0xc2, 0x88, 0xf1, 0x92, 0x72, 0x5e, 0xb2, - 0x4d, 0x87, 0xa1, 0xc1, 0x23, 0x9c, 0xc0, 0x42, 0xd3, 0x00, 0xca, 0xe6, 0x92, 0x1a, 0x9b, 0x39, - 0xda, 0x95, 0x60, 0x8c, 0xb0, 0x81, 0xc1, 0x6a, 0x5c, 0x78, 0xed, 0x88, 0x9d, 0x24, 0x0f, 0xea, - 0x0b, 0x1d, 0xe6, 0x45, 0x1b, 0x56, 0x50, 0x2a, 0xdc, 0x9a, 0x8e, 0xdf, 0x76, 0x3c, 0x3a, 0x42, - 0xc2, 0x75, 0xa6, 0x96, 0xe1, 0xb2, 0x82, 0x60, 0x03, 0x8b, 0xbe, 0x71, 0xec, 0x36, 0xc9, 0x4b, - 0x81, 0x2f, 0xa3, 0xd4, 0x75, 0x70, 0x81, 0x68, 0xc7, 0x0a, 0x03, 0x3d, 0x0f, 0xc3, 0x8e, 0x5f, - 0xe7, 0x06, 0x62, 0x10, 0x8a, 0x33, 0x4a, 0xb5, 0xfb, 0xbc, 0x1a, 0x91, 0x59, 0x0d, 0xc5, 0x26, - 0x6a, 0xfa, 0x36, 0x0b, 0xe8, 0xf3, 0xb6, 0xbc, 0x3f, 0xb7, 0x60, 0x5c, 0x17, 0x2d, 0x62, 0x1e, - 0xb6, 0x84, 0x6b, 0xd1, 0xda, 0xd7, 0xb5, 0x98, 0xac, 0x5d, 0x52, 0xe8, 0xab, 0x76, 0x89, 0x59, - 0x56, 0xa4, 0xb8, 0x67, 0x59, 0x91, 0xef, 0x85, 0xa1, 0x2d, 0xd2, 0x31, 0xea, 0x8f, 0x30, 0xe5, - 0x70, 0x99, 0x37, 0x61, 0x09, 0x43, 0x36, 0x0c, 0xd6, 0x1c, 0x55, 0xc3, 0x70, 0x44, 0xc4, 0xa6, - 0xcd, 0x32, 0x24, 0x01, 0xb1, 0x57, 0xa0, 0xa2, 0x0e, 0xf5, 0xa5, 0xa7, 0xcf, 0xca, 0xf6, 0xf4, - 0xf5, 0x55, 0xde, 0x60, 0x6e, 0xfd, 0xab, 0xdf, 0x7e, 0xf4, 0x2d, 0x7f, 0xf8, 0xed, 0x47, 0xdf, - 0xf2, 0xc7, 0xdf, 0x7e, 0xf4, 0x2d, 0x1f, 0xb8, 0xf5, 0xa8, 0xf5, 0xd5, 0x5b, 0x8f, 0x5a, 0x7f, - 0x78, 0xeb, 0x51, 0xeb, 0x8f, 0x6f, 0x3d, 0x6a, 0x7d, 0xeb, 0xd6, 0xa3, 0xd6, 0xeb, 0xff, 0xe5, - 0xd1, 0xb7, 0xbc, 0x94, 0x99, 0x17, 0x41, 0x7f, 0x3c, 0x55, 0xab, 0xcf, 0x6c, 0x3f, 0xc3, 0x42, - 0xf3, 0xe9, 0x7a, 0x9e, 0x31, 0x26, 0xf1, 0x8c, 0x5c, 0xcf, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, - 0xae, 0x1f, 0x8f, 0xcd, 0xce, 0xff, 0x00, 0x00, + // 12569 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xc9, + 0x71, 0x18, 0xcc, 0x9e, 0xc1, 0x00, 0x33, 0x89, 0xd7, 0xa2, 0x76, 0xf7, 0x0e, 0x8b, 0x7b, 0x60, + 0xd5, 0x47, 0x1d, 0x4f, 0x1f, 0xef, 0x00, 0xdd, 0xde, 0x1d, 0x75, 0x9f, 0x4e, 0xa2, 0x84, 0xc7, + 0x3e, 0xb0, 0x0b, 0x2c, 0x70, 0x35, 0xd8, 0x5d, 0xf2, 0xc8, 0xe3, 0xb1, 0x31, 0x53, 0x00, 0x7a, + 0xd1, 0xd3, 0x3d, 0xd7, 0xdd, 0x83, 0xc5, 0x1c, 0x1f, 0xe2, 0x53, 0xa2, 0xc4, 0xd7, 0x59, 0x74, + 0x98, 0x47, 0xdb, 0xa4, 0x29, 0x4b, 0x96, 0xed, 0x70, 0x30, 0x44, 0x5b, 0x3f, 0xac, 0x08, 0x49, + 0xc1, 0x90, 0xc4, 0x60, 0x50, 0x96, 0x6d, 0xc9, 0x0c, 0x5a, 0xa4, 0x2d, 0x11, 0x22, 0xd7, 0x76, + 0x48, 0xe1, 0x08, 0x2b, 0x42, 0xb2, 0x7f, 0x38, 0x56, 0x0e, 0x87, 0xa3, 0xde, 0xd5, 0x3d, 0x3d, + 0xc0, 0x60, 0xd1, 0xd8, 0x5d, 0x52, 0xf7, 0x6f, 0xa6, 0x32, 0x2b, 0xb3, 0xba, 0xba, 0x3a, 0x33, + 0x2b, 0x2b, 0x33, 0x0b, 0x16, 0x37, 0xdc, 0x78, 0xb3, 0xb5, 0x36, 0x55, 0x0b, 0x1a, 0xd3, 0x4e, + 0xb8, 0x11, 0x34, 0xc3, 0xe0, 0x3a, 0xfb, 0xf1, 0x44, 0xad, 0x3e, 0xbd, 0xfd, 0xd4, 0x74, 0x73, + 0x6b, 0x63, 0xda, 0x69, 0xba, 0xd1, 0xb4, 0xd3, 0x6c, 0x7a, 0x6e, 0xcd, 0x89, 0xdd, 0xc0, 0x9f, + 0xde, 0x7e, 0xd2, 0xf1, 0x9a, 0x9b, 0xce, 0x93, 0xd3, 0x1b, 0xc4, 0x27, 0xa1, 0x13, 0x93, 0xfa, + 0x54, 0x33, 0x0c, 0xe2, 0x00, 0xfd, 0x84, 0xa6, 0x36, 0x25, 0xa9, 0xb1, 0x1f, 0x2f, 0xd5, 0xea, + 0x53, 0xdb, 0x4f, 0x4d, 0x35, 0xb7, 0x36, 0xa6, 0x28, 0xb5, 0x29, 0x83, 0xda, 0x94, 0xa4, 0x36, + 0xf1, 0x84, 0x31, 0x96, 0x8d, 0x60, 0x23, 0x98, 0x66, 0x44, 0xd7, 0x5a, 0xeb, 0xec, 0x1f, 0xfb, + 0xc3, 0x7e, 0x71, 0x66, 0x13, 0xf6, 0xd6, 0xb3, 0xd1, 0x94, 0x1b, 0xd0, 0xe1, 0x4d, 0xd7, 0x82, + 0x90, 0x4c, 0x6f, 0x77, 0x0c, 0x68, 0xe2, 0x82, 0xc6, 0x21, 0x3b, 0x31, 0xf1, 0x23, 0x37, 0xf0, + 0xa3, 0x27, 0xe8, 0x10, 0x48, 0xb8, 0x4d, 0x42, 0xf3, 0xf1, 0x0c, 0x84, 0x2c, 0x4a, 0x4f, 0x6b, + 0x4a, 0x0d, 0xa7, 0xb6, 0xe9, 0xfa, 0x24, 0x6c, 0xeb, 0xee, 0x0d, 0x12, 0x3b, 0x59, 0xbd, 0xa6, + 0xbb, 0xf5, 0x0a, 0x5b, 0x7e, 0xec, 0x36, 0x48, 0x47, 0x87, 0xb7, 0xec, 0xd7, 0x21, 0xaa, 0x6d, + 0x92, 0x86, 0xd3, 0xd1, 0xef, 0xa9, 0x6e, 0xfd, 0x5a, 0xb1, 0xeb, 0x4d, 0xbb, 0x7e, 0x1c, 0xc5, + 0x61, 0xba, 0x93, 0xfd, 0x0f, 0x2d, 0x18, 0x9e, 0xb9, 0x56, 0x9d, 0x69, 0xc5, 0x9b, 0x73, 0x81, + 0xbf, 0xee, 0x6e, 0xa0, 0x67, 0x60, 0xb0, 0xe6, 0xb5, 0xa2, 0x98, 0x84, 0x97, 0x9d, 0x06, 0x19, + 0xb7, 0x4e, 0x5b, 0x8f, 0x55, 0x66, 0x8f, 0x7f, 0x7d, 0x77, 0xf2, 0x0d, 0x37, 0x77, 0x27, 0x07, + 0xe7, 0x34, 0x08, 0x9b, 0x78, 0xe8, 0x47, 0x60, 0x20, 0x0c, 0x3c, 0x32, 0x83, 0x2f, 0x8f, 0x17, + 0x58, 0x97, 0x51, 0xd1, 0x65, 0x00, 0xf3, 0x66, 0x2c, 0xe1, 0x14, 0xb5, 0x19, 0x06, 0xeb, 0xae, + 0x47, 0xc6, 0x8b, 0x49, 0xd4, 0x15, 0xde, 0x8c, 0x25, 0xdc, 0xfe, 0x5c, 0x01, 0x46, 0x67, 0x9a, + 0xcd, 0x0b, 0xc4, 0xf1, 0xe2, 0xcd, 0x6a, 0xec, 0xc4, 0xad, 0x08, 0x6d, 0x40, 0x7f, 0xc4, 0x7e, + 0x89, 0xb1, 0x2d, 0x8b, 0xde, 0xfd, 0x1c, 0x7e, 0x6b, 0x77, 0xf2, 0x27, 0xb3, 0x56, 0xf4, 0x86, + 0x1b, 0x07, 0xcd, 0xe8, 0x09, 0xe2, 0x6f, 0xb8, 0x3e, 0x61, 0xf3, 0xb2, 0xc9, 0xa8, 0x4e, 0x99, + 0xc4, 0xe7, 0x82, 0x3a, 0xc1, 0x82, 0x3c, 0x1d, 0x67, 0x83, 0x44, 0x91, 0xb3, 0x41, 0xd2, 0x8f, + 0xb4, 0xc4, 0x9b, 0xb1, 0x84, 0xa3, 0x10, 0x90, 0xe7, 0x44, 0xf1, 0x6a, 0xe8, 0xf8, 0x91, 0x4b, + 0x97, 0xf4, 0xaa, 0xdb, 0xe0, 0x4f, 0x37, 0x78, 0xe6, 0xff, 0x9b, 0xe2, 0x2f, 0x66, 0xca, 0x7c, + 0x31, 0xfa, 0x3b, 0xa0, 0xeb, 0x66, 0x6a, 0xfb, 0xc9, 0x29, 0xda, 0x63, 0xf6, 0xbe, 0x9b, 0xbb, + 0x93, 0x68, 0xb1, 0x83, 0x12, 0xce, 0xa0, 0x6e, 0xff, 0x71, 0x01, 0x60, 0xa6, 0xd9, 0x5c, 0x09, + 0x83, 0xeb, 0xa4, 0x16, 0xa3, 0x77, 0x43, 0x99, 0x92, 0xaa, 0x3b, 0xb1, 0xc3, 0x26, 0x66, 0xf0, + 0xcc, 0x8f, 0xf6, 0xc6, 0x78, 0x79, 0x8d, 0xf6, 0x5f, 0x22, 0xb1, 0x33, 0x8b, 0xc4, 0x03, 0x82, + 0x6e, 0xc3, 0x8a, 0x2a, 0xf2, 0xa1, 0x2f, 0x6a, 0x92, 0x1a, 0x9b, 0x8c, 0xc1, 0x33, 0x8b, 0x53, + 0x87, 0xf9, 0xd2, 0xa7, 0xf4, 0xc8, 0xab, 0x4d, 0x52, 0x9b, 0x1d, 0x12, 0x9c, 0xfb, 0xe8, 0x3f, + 0xcc, 0xf8, 0xa0, 0x6d, 0xf5, 0xa2, 0xf9, 0x44, 0x5e, 0xce, 0x8d, 0x23, 0xa3, 0x3a, 0x3b, 0x92, + 0x5c, 0x38, 0xf2, 0xbd, 0xdb, 0xdf, 0xb1, 0x60, 0x44, 0x23, 0x2f, 0xba, 0x51, 0x8c, 0xde, 0xd9, + 0x31, 0xb9, 0x53, 0xbd, 0x4d, 0x2e, 0xed, 0xcd, 0xa6, 0xf6, 0x98, 0x60, 0x56, 0x96, 0x2d, 0xc6, + 0xc4, 0x36, 0xa0, 0xe4, 0xc6, 0xa4, 0x11, 0x8d, 0x17, 0x4e, 0x17, 0x1f, 0x1b, 0x3c, 0x73, 0x21, + 0xaf, 0xe7, 0x9c, 0x1d, 0x16, 0x4c, 0x4b, 0x0b, 0x94, 0x3c, 0xe6, 0x5c, 0xec, 0xbf, 0x1e, 0x36, + 0x9f, 0x8f, 0x4e, 0x38, 0x7a, 0x12, 0x06, 0xa3, 0xa0, 0x15, 0xd6, 0x08, 0x26, 0xcd, 0x80, 0x7e, + 0x58, 0x45, 0xba, 0xdc, 0xe9, 0x07, 0x5f, 0xd5, 0xcd, 0xd8, 0xc4, 0x41, 0x9f, 0xb2, 0x60, 0xa8, + 0x4e, 0xa2, 0xd8, 0xf5, 0x19, 0x7f, 0x39, 0xf8, 0xd5, 0x43, 0x0f, 0x5e, 0x36, 0xce, 0x6b, 0xe2, + 0xb3, 0x27, 0xc4, 0x83, 0x0c, 0x19, 0x8d, 0x11, 0x4e, 0xf0, 0xa7, 0x82, 0xab, 0x4e, 0xa2, 0x5a, + 0xe8, 0x36, 0xe9, 0x7f, 0x21, 0x5a, 0x94, 0xe0, 0x9a, 0xd7, 0x20, 0x6c, 0xe2, 0x21, 0x1f, 0x4a, + 0x54, 0x30, 0x45, 0xe3, 0x7d, 0x6c, 0xfc, 0x0b, 0x87, 0x1b, 0xbf, 0x98, 0x54, 0x2a, 0xf3, 0xf4, + 0xec, 0xd3, 0x7f, 0x11, 0xe6, 0x6c, 0xd0, 0x27, 0x2d, 0x18, 0x17, 0x82, 0x13, 0x13, 0x3e, 0xa1, + 0xd7, 0x36, 0xdd, 0x98, 0x78, 0x6e, 0x14, 0x8f, 0x97, 0xd8, 0x18, 0xa6, 0x7b, 0x5b, 0x5b, 0xe7, + 0xc3, 0xa0, 0xd5, 0xbc, 0xe4, 0xfa, 0xf5, 0xd9, 0xd3, 0x82, 0xd3, 0xf8, 0x5c, 0x17, 0xc2, 0xb8, + 0x2b, 0x4b, 0xf4, 0x19, 0x0b, 0x26, 0x7c, 0xa7, 0x41, 0xa2, 0xa6, 0x43, 0x5f, 0x2d, 0x07, 0xcf, + 0x7a, 0x4e, 0x6d, 0x8b, 0x8d, 0xa8, 0xff, 0xf6, 0x46, 0x64, 0x8b, 0x11, 0x4d, 0x5c, 0xee, 0x4a, + 0x1a, 0xef, 0xc1, 0x16, 0xfd, 0xb2, 0x05, 0x63, 0x41, 0xd8, 0xdc, 0x74, 0x7c, 0x52, 0x97, 0xd0, + 0x68, 0x7c, 0x80, 0x7d, 0x7a, 0xef, 0x3a, 0xdc, 0x2b, 0x5a, 0x4e, 0x93, 0x5d, 0x0a, 0x7c, 0x37, + 0x0e, 0xc2, 0x2a, 0x89, 0x63, 0xd7, 0xdf, 0x88, 0x66, 0x4f, 0xde, 0xdc, 0x9d, 0x1c, 0xeb, 0xc0, + 0xc2, 0x9d, 0xe3, 0x41, 0xef, 0x81, 0xc1, 0xa8, 0xed, 0xd7, 0xae, 0xb9, 0x7e, 0x3d, 0xb8, 0x11, + 0x8d, 0x97, 0xf3, 0xf8, 0x7c, 0xab, 0x8a, 0xa0, 0xf8, 0x00, 0x35, 0x03, 0x6c, 0x72, 0xcb, 0x7e, + 0x71, 0x7a, 0x29, 0x55, 0xf2, 0x7e, 0x71, 0x7a, 0x31, 0xed, 0xc1, 0x16, 0xfd, 0x9c, 0x05, 0xc3, + 0x91, 0xbb, 0xe1, 0x3b, 0x71, 0x2b, 0x24, 0x97, 0x48, 0x3b, 0x1a, 0x07, 0x36, 0x90, 0x8b, 0x87, + 0x9c, 0x15, 0x83, 0xe4, 0xec, 0x49, 0x31, 0xc6, 0x61, 0xb3, 0x35, 0xc2, 0x49, 0xbe, 0x59, 0x1f, + 0x9a, 0x5e, 0xd6, 0x83, 0xf9, 0x7e, 0x68, 0x7a, 0x51, 0x77, 0x65, 0x89, 0x7e, 0x1a, 0x8e, 0xf1, + 0x26, 0x35, 0xb3, 0xd1, 0xf8, 0x10, 0x13, 0xb4, 0x27, 0x6e, 0xee, 0x4e, 0x1e, 0xab, 0xa6, 0x60, + 0xb8, 0x03, 0x1b, 0xbd, 0x0c, 0x93, 0x4d, 0x12, 0x36, 0xdc, 0x78, 0xd9, 0xf7, 0xda, 0x52, 0x7c, + 0xd7, 0x82, 0x26, 0xa9, 0x8b, 0xe1, 0x44, 0xe3, 0xc3, 0xa7, 0xad, 0xc7, 0xca, 0xb3, 0x6f, 0x12, + 0xc3, 0x9c, 0x5c, 0xd9, 0x1b, 0x1d, 0xef, 0x47, 0x0f, 0x7d, 0xcd, 0x82, 0x09, 0x43, 0xca, 0x56, + 0x49, 0xb8, 0xed, 0xd6, 0xc8, 0x4c, 0xad, 0x16, 0xb4, 0xfc, 0x38, 0x1a, 0x1f, 0x61, 0xd3, 0xb8, + 0x76, 0x14, 0x32, 0x3f, 0xc9, 0x4a, 0xaf, 0xcb, 0xae, 0x28, 0x11, 0xde, 0x63, 0xa4, 0xf6, 0xef, + 0x17, 0xe0, 0x58, 0xda, 0x02, 0x40, 0xbf, 0x6a, 0xc1, 0xe8, 0xf5, 0x1b, 0xf1, 0x6a, 0xb0, 0x45, + 0xfc, 0x68, 0xb6, 0x4d, 0xe5, 0x34, 0xd3, 0x7d, 0x83, 0x67, 0x6a, 0xf9, 0xda, 0x1a, 0x53, 0x17, + 0x93, 0x5c, 0xce, 0xfa, 0x71, 0xd8, 0x9e, 0xbd, 0x5f, 0x3c, 0xd3, 0xe8, 0xc5, 0x6b, 0xab, 0x26, + 0x14, 0xa7, 0x07, 0x35, 0xf1, 0x71, 0x0b, 0x4e, 0x64, 0x91, 0x40, 0xc7, 0xa0, 0xb8, 0x45, 0xda, + 0xdc, 0x12, 0xc6, 0xf4, 0x27, 0x7a, 0x11, 0x4a, 0xdb, 0x8e, 0xd7, 0x22, 0xc2, 0x4c, 0x3b, 0x7f, + 0xb8, 0x07, 0x51, 0x23, 0xc3, 0x9c, 0xea, 0x8f, 0x17, 0x9e, 0xb5, 0xec, 0x3f, 0x2c, 0xc2, 0xa0, + 0xf1, 0xd2, 0xee, 0x80, 0xe9, 0x19, 0x24, 0x4c, 0xcf, 0xa5, 0xdc, 0xd6, 0x5b, 0x57, 0xdb, 0xf3, + 0x46, 0xca, 0xf6, 0x5c, 0xce, 0x8f, 0xe5, 0x9e, 0xc6, 0x27, 0x8a, 0xa1, 0x12, 0x34, 0xe9, 0x16, + 0x8d, 0xda, 0x30, 0x7d, 0x79, 0xbc, 0xc2, 0x65, 0x49, 0x6e, 0x76, 0xf8, 0xe6, 0xee, 0x64, 0x45, + 0xfd, 0xc5, 0x9a, 0x91, 0xfd, 0x2d, 0x0b, 0x4e, 0x18, 0x63, 0x9c, 0x0b, 0xfc, 0x3a, 0xdb, 0x68, + 0xa0, 0xd3, 0xd0, 0x17, 0xb7, 0x9b, 0x72, 0x1b, 0xa8, 0x66, 0x6a, 0xb5, 0xdd, 0x24, 0x98, 0x41, + 0xee, 0xf5, 0x5d, 0xd2, 0x67, 0x2c, 0xb8, 0x2f, 0x5b, 0xc0, 0xa0, 0x47, 0xa1, 0x9f, 0xfb, 0x00, + 0xc4, 0xd3, 0xe9, 0x57, 0xc2, 0x5a, 0xb1, 0x80, 0xa2, 0x69, 0xa8, 0x28, 0x85, 0x27, 0x9e, 0x71, + 0x4c, 0xa0, 0x56, 0xb4, 0x96, 0xd4, 0x38, 0x74, 0xd2, 0xe8, 0x1f, 0x61, 0x82, 0xaa, 0x49, 0x63, + 0x9b, 0x66, 0x06, 0xb1, 0xbf, 0x69, 0xc1, 0x1b, 0x7b, 0x11, 0x7b, 0x47, 0x37, 0xc6, 0x2a, 0x9c, + 0xac, 0x93, 0x75, 0xa7, 0xe5, 0xc5, 0x49, 0x8e, 0x62, 0xd0, 0x0f, 0x89, 0xce, 0x27, 0xe7, 0xb3, + 0x90, 0x70, 0x76, 0x5f, 0xfb, 0x05, 0x38, 0x69, 0x3c, 0xd5, 0xa2, 0xb3, 0x46, 0x3c, 0xba, 0xbc, + 0x23, 0xf4, 0x90, 0x21, 0xa6, 0x66, 0x07, 0x05, 0xed, 0xe2, 0x25, 0xd2, 0xe6, 0x32, 0xcb, 0x86, + 0x7e, 0x26, 0x5d, 0xf8, 0x26, 0xa2, 0x32, 0x0b, 0xf4, 0x09, 0xaf, 0xb2, 0x16, 0x2c, 0x20, 0xf6, + 0xb7, 0xb9, 0x2b, 0x40, 0x11, 0x3f, 0xfa, 0x6d, 0x99, 0x9f, 0xdc, 0x96, 0x2d, 0xe4, 0x26, 0x02, + 0xb2, 0xf7, 0x65, 0xe8, 0x06, 0x94, 0xa8, 0x10, 0x90, 0x22, 0x07, 0xe7, 0xc6, 0x8f, 0x3e, 0x1b, + 0x7b, 0x0f, 0x9a, 0x31, 0xfb, 0x8b, 0x39, 0x3f, 0xfb, 0x0b, 0xe5, 0xc4, 0xd7, 0xaf, 0xd0, 0xd1, + 0x23, 0x50, 0x8a, 0x83, 0xd8, 0xf1, 0xd8, 0xe4, 0x16, 0x75, 0xef, 0x55, 0xda, 0x88, 0x39, 0x0c, + 0x7d, 0xd5, 0x82, 0x31, 0xf6, 0x6b, 0xb6, 0x4d, 0x6d, 0x55, 0x2e, 0xcf, 0xc4, 0x9c, 0xb9, 0xf9, + 0x3f, 0xc3, 0xd4, 0x6a, 0x9a, 0x17, 0x57, 0xa6, 0x6f, 0x16, 0x83, 0x1b, 0xeb, 0x80, 0x7f, 0xe8, + 0xcf, 0x26, 0x47, 0xf4, 0x3f, 0xe6, 0xe2, 0xe9, 0x1c, 0x30, 0xfa, 0x1b, 0x0b, 0x8e, 0x8b, 0x56, + 0xd3, 0x23, 0x34, 0x5e, 0x64, 0x0f, 0xb2, 0x75, 0x74, 0x0f, 0x62, 0x72, 0xe3, 0x8f, 0xf2, 0x4e, + 0xf1, 0x28, 0xc7, 0x33, 0x30, 0x3e, 0xf4, 0x67, 0x87, 0x75, 0x6f, 0x65, 0x3d, 0x25, 0x5a, 0x81, + 0x13, 0x4e, 0x2b, 0x0e, 0xe8, 0x7c, 0x9c, 0xf5, 0x9d, 0x35, 0x8f, 0xd4, 0xe7, 0x98, 0x34, 0xe8, + 0x63, 0x2f, 0xfe, 0x41, 0x31, 0xa0, 0x13, 0x33, 0x19, 0x38, 0x38, 0xb3, 0x67, 0xa7, 0x7f, 0xa0, + 0x74, 0x97, 0xfd, 0x03, 0x53, 0x00, 0xbe, 0xb6, 0xbc, 0xfb, 0x99, 0xa0, 0x19, 0xa1, 0x16, 0x87, + 0x61, 0x73, 0x1b, 0x18, 0xe8, 0x3d, 0xd0, 0xef, 0x51, 0x09, 0x46, 0xb7, 0x9d, 0x74, 0xe4, 0xd5, + 0xfc, 0x96, 0x80, 0x12, 0x8c, 0x5a, 0x9e, 0xb3, 0xb6, 0x08, 0x0b, 0x96, 0x13, 0xf3, 0x70, 0x5f, + 0xf6, 0x3a, 0xcf, 0xb0, 0xf8, 0x4e, 0x98, 0x16, 0x5f, 0xd1, 0x30, 0xd4, 0x26, 0xce, 0xc1, 0x78, + 0xb7, 0x45, 0x76, 0x10, 0x3a, 0xf6, 0x27, 0x2d, 0x98, 0x30, 0xc6, 0xbf, 0xe4, 0xc4, 0xb5, 0xcd, + 0xb3, 0x3b, 0xcd, 0x90, 0x44, 0x11, 0x55, 0xa4, 0xfb, 0x48, 0xf7, 0xc7, 0xa1, 0xcc, 0x2d, 0x8d, + 0x20, 0x14, 0xaa, 0x49, 0x49, 0xdd, 0x65, 0xd1, 0x8e, 0x15, 0x86, 0xa1, 0x0b, 0x8a, 0x5d, 0x75, + 0x41, 0x94, 0x18, 0xce, 0x4a, 0x48, 0x98, 0x16, 0xac, 0x9f, 0x73, 0x89, 0x57, 0x8f, 0xd0, 0x93, + 0x30, 0xe8, 0xf8, 0x7e, 0x10, 0x8b, 0x75, 0x67, 0x38, 0xb3, 0x66, 0x74, 0x33, 0x36, 0x71, 0x28, + 0x53, 0xf1, 0xae, 0x0d, 0x05, 0x94, 0x7c, 0x25, 0xf6, 0xcd, 0x02, 0x73, 0x9b, 0x29, 0x3b, 0x8e, + 0xdc, 0x09, 0x9f, 0x6b, 0x98, 0x30, 0x7c, 0x57, 0xf2, 0xb3, 0x42, 0x49, 0x77, 0xbf, 0xeb, 0x2b, + 0x29, 0xdb, 0x17, 0xe7, 0xca, 0x75, 0x6f, 0xdf, 0xeb, 0x07, 0x8a, 0x30, 0x99, 0xec, 0xd0, 0x61, + 0x3a, 0xa3, 0x67, 0x60, 0xd0, 0x60, 0x94, 0x3e, 0xa1, 0x30, 0xf0, 0xb1, 0x89, 0xd7, 0xc5, 0xfa, + 0x2c, 0x1c, 0xa5, 0xf5, 0x69, 0x1a, 0xc7, 0xc5, 0x7d, 0x8c, 0xe3, 0x47, 0xd5, 0xac, 0xf7, 0xa5, + 0x2c, 0xbd, 0xe4, 0x06, 0xe1, 0x34, 0xf4, 0x45, 0x31, 0x69, 0x8e, 0x97, 0x92, 0xc6, 0x65, 0x35, + 0x26, 0x4d, 0xcc, 0x20, 0xe8, 0x27, 0x61, 0x34, 0x76, 0xc2, 0x0d, 0x12, 0x87, 0x64, 0xdb, 0x65, + 0xa7, 0x59, 0x42, 0xda, 0x1d, 0xa7, 0x7b, 0xcd, 0x55, 0x06, 0xc2, 0x12, 0x84, 0xd3, 0xb8, 0xf6, + 0x7f, 0x2f, 0xc0, 0xfd, 0xc9, 0x57, 0xa0, 0xb7, 0x03, 0x3f, 0x95, 0xd8, 0x0e, 0xbc, 0xd9, 0xdc, + 0x0e, 0xdc, 0xda, 0x9d, 0x7c, 0xa0, 0x4b, 0xb7, 0xef, 0x9b, 0xdd, 0x02, 0x3a, 0x9f, 0x7a, 0x09, + 0xd3, 0x1d, 0x67, 0x4b, 0x0f, 0x75, 0x79, 0xc6, 0xd4, 0x5b, 0x7a, 0x14, 0xfa, 0x43, 0xe2, 0x44, + 0x81, 0x2f, 0xde, 0x93, 0x7a, 0x9b, 0x98, 0xb5, 0x62, 0x01, 0xb5, 0xbf, 0x51, 0x49, 0x4f, 0xf6, + 0x79, 0x7e, 0x42, 0x17, 0x84, 0xc8, 0x85, 0x3e, 0xe6, 0xab, 0xe2, 0x92, 0xe5, 0xd2, 0xe1, 0xbe, + 0x42, 0x6a, 0x76, 0x28, 0xd2, 0xb3, 0x65, 0xfa, 0xd6, 0x68, 0x13, 0x66, 0x2c, 0xd0, 0x0e, 0x94, + 0x6b, 0xd2, 0x85, 0x54, 0xc8, 0xe3, 0xb0, 0x45, 0x38, 0x90, 0x34, 0xc7, 0x21, 0x2a, 0xee, 0x95, + 0xdf, 0x49, 0x71, 0x43, 0x04, 0x8a, 0x1b, 0x6e, 0x2c, 0x5e, 0xeb, 0x21, 0x9d, 0x84, 0xe7, 0x5d, + 0xe3, 0x11, 0x07, 0xa8, 0x0e, 0x3a, 0xef, 0xc6, 0x98, 0xd2, 0x47, 0x1f, 0xb5, 0x60, 0x30, 0xaa, + 0x35, 0x56, 0xc2, 0x60, 0xdb, 0xad, 0x93, 0x50, 0xec, 0xac, 0x0f, 0x29, 0xd9, 0xaa, 0x73, 0x4b, + 0x92, 0xa0, 0xe6, 0xcb, 0x9d, 0xb6, 0x1a, 0x82, 0x4d, 0xbe, 0xe8, 0x57, 0x2d, 0xb8, 0x5f, 0x3c, + 0xfb, 0x3c, 0xa9, 0xb1, 0x2f, 0x4e, 0x7a, 0x0a, 0xd9, 0x4a, 0x39, 0xb4, 0xa7, 0x61, 0xbe, 0x55, + 0xdb, 0xa2, 0xdf, 0x9b, 0x1e, 0xd0, 0x03, 0x37, 0x77, 0x27, 0xef, 0x9f, 0xcb, 0xe6, 0x89, 0xbb, + 0x0d, 0x86, 0x4d, 0x58, 0xb3, 0xe5, 0x79, 0x98, 0xbc, 0xdc, 0x22, 0xec, 0x1c, 0x20, 0x87, 0x09, + 0x5b, 0xd1, 0x04, 0x53, 0x13, 0x66, 0x40, 0xb0, 0xc9, 0x17, 0xbd, 0x0c, 0xfd, 0x0d, 0x27, 0x0e, + 0xdd, 0x1d, 0xe1, 0xfc, 0x3f, 0xa4, 0xef, 0x67, 0x89, 0xd1, 0xd2, 0xcc, 0x99, 0xa2, 0xe7, 0x8d, + 0x58, 0x30, 0x42, 0x0d, 0x28, 0x35, 0x48, 0xb8, 0x41, 0xc6, 0xcb, 0x79, 0x1c, 0x74, 0x2e, 0x51, + 0x52, 0x9a, 0x61, 0x85, 0xee, 0x9f, 0x58, 0x1b, 0xe6, 0x5c, 0xd0, 0x8b, 0x50, 0x8e, 0x88, 0x47, + 0x6a, 0xd4, 0x3c, 0xaa, 0x30, 0x8e, 0x4f, 0xf5, 0xb8, 0x89, 0x65, 0x66, 0xa4, 0xe8, 0xca, 0x3f, + 0x30, 0xf9, 0x0f, 0x2b, 0x92, 0x74, 0x02, 0x9b, 0x5e, 0x6b, 0xc3, 0xf5, 0xc7, 0x21, 0x8f, 0x09, + 0x5c, 0x61, 0xb4, 0x52, 0x13, 0xc8, 0x1b, 0xb1, 0x60, 0x64, 0xff, 0x37, 0x0b, 0x50, 0x52, 0xa8, + 0xdd, 0x81, 0xdd, 0xfa, 0xcb, 0xc9, 0xdd, 0xfa, 0x62, 0x9e, 0x46, 0x4b, 0x97, 0x83, 0xd4, 0xdf, + 0xac, 0x40, 0x4a, 0x1d, 0x5c, 0x26, 0x51, 0x4c, 0xea, 0xaf, 0x8b, 0xf0, 0xd7, 0x45, 0xf8, 0xeb, + 0x22, 0x5c, 0x89, 0xf0, 0xb5, 0x94, 0x08, 0x7f, 0xab, 0xf1, 0xd5, 0xeb, 0x88, 0xab, 0x97, 0x54, + 0x48, 0x96, 0x39, 0x02, 0x03, 0x81, 0x4a, 0x82, 0x8b, 0xd5, 0xe5, 0xcb, 0x99, 0x32, 0xfb, 0xa5, + 0xa4, 0xcc, 0x3e, 0x2c, 0x8b, 0xbf, 0x0d, 0x52, 0xfa, 0x6b, 0x16, 0xbc, 0x29, 0x29, 0xbd, 0xe4, + 0xca, 0x59, 0xd8, 0xf0, 0x83, 0x90, 0xcc, 0xbb, 0xeb, 0xeb, 0x24, 0x24, 0x7e, 0x8d, 0x44, 0xca, + 0xa3, 0x6d, 0x75, 0xf3, 0x68, 0xa3, 0xa7, 0x61, 0xe8, 0x7a, 0x14, 0xf8, 0x2b, 0x81, 0xeb, 0x0b, + 0x11, 0x44, 0x77, 0x1c, 0xc7, 0x6e, 0xee, 0x4e, 0x0e, 0xd1, 0x19, 0x95, 0xed, 0x38, 0x81, 0x85, + 0xe6, 0x60, 0xec, 0xfa, 0xcb, 0x2b, 0x4e, 0x6c, 0x78, 0x13, 0xe4, 0xbe, 0x9f, 0x9d, 0xc2, 0x5f, + 0x7c, 0x3e, 0x05, 0xc4, 0x9d, 0xf8, 0xf6, 0x3f, 0x28, 0xc0, 0xa9, 0xd4, 0x83, 0x04, 0x9e, 0x17, + 0xb4, 0x62, 0xba, 0x27, 0x42, 0x5f, 0xb0, 0xe0, 0x58, 0x23, 0xe9, 0xb0, 0x88, 0xc4, 0x21, 0xdf, + 0xdb, 0x72, 0xd3, 0x11, 0x29, 0x8f, 0xc8, 0xec, 0xb8, 0x98, 0xa1, 0x63, 0x29, 0x40, 0x84, 0x3b, + 0xc6, 0x82, 0x5e, 0x84, 0x4a, 0xc3, 0xd9, 0xb9, 0xd2, 0xac, 0x3b, 0xb1, 0xdc, 0x8e, 0x76, 0xf7, + 0x22, 0xb4, 0x62, 0xd7, 0x9b, 0xe2, 0xb1, 0x7c, 0x53, 0x0b, 0x7e, 0xbc, 0x1c, 0x56, 0xe3, 0xd0, + 0xf5, 0x37, 0xf8, 0xd1, 0xce, 0x92, 0x24, 0x83, 0x35, 0x45, 0xfb, 0xf3, 0x56, 0x5a, 0x49, 0xa9, + 0xd9, 0x09, 0x9d, 0x98, 0x6c, 0xb4, 0xd1, 0x7b, 0xa1, 0x44, 0xf7, 0x8d, 0x72, 0x56, 0xae, 0xe5, + 0xa9, 0x39, 0x8d, 0x37, 0x61, 0x3a, 0x9f, 0x49, 0x93, 0x39, 0x9f, 0x49, 0x33, 0xb2, 0xbf, 0x50, + 0x49, 0x1b, 0x0b, 0x2c, 0x22, 0xe9, 0x0c, 0xc0, 0x46, 0xb0, 0x4a, 0x1a, 0x4d, 0x8f, 0x4e, 0x8b, + 0xc5, 0x8e, 0xb5, 0x95, 0xab, 0xe4, 0xbc, 0x82, 0x60, 0x03, 0x0b, 0xfd, 0xbc, 0x05, 0xb0, 0x21, + 0xd7, 0xbc, 0x34, 0x04, 0xae, 0xe4, 0xf9, 0x38, 0xfa, 0x8b, 0xd2, 0x63, 0x51, 0x0c, 0xb1, 0xc1, + 0x1c, 0x7d, 0xc8, 0x82, 0x72, 0x2c, 0x87, 0xcf, 0x55, 0xe3, 0x6a, 0x9e, 0x23, 0x91, 0x0f, 0xad, + 0x6d, 0x22, 0x35, 0x25, 0x8a, 0x2f, 0xfa, 0x59, 0x0b, 0x20, 0x6a, 0xfb, 0xb5, 0x95, 0xc0, 0x73, + 0x6b, 0x6d, 0xa1, 0x31, 0xaf, 0xe6, 0xea, 0xce, 0x51, 0xd4, 0xb9, 0x2f, 0x55, 0xff, 0xc7, 0x06, + 0x67, 0xf4, 0x7e, 0x28, 0x47, 0x62, 0xb9, 0x09, 0x1d, 0xb9, 0x9a, 0xaf, 0x53, 0x89, 0xd3, 0x16, + 0xe2, 0x55, 0xfc, 0xc3, 0x8a, 0x27, 0xfa, 0xac, 0x05, 0xa3, 0xcd, 0xa4, 0x9b, 0x50, 0xa8, 0xc3, + 0xfc, 0x64, 0x40, 0xca, 0x0d, 0xc9, 0xbd, 0x2d, 0xa9, 0x46, 0x9c, 0x1e, 0x05, 0x95, 0x80, 0x7a, + 0x05, 0x2f, 0x37, 0xb9, 0xcb, 0x72, 0x40, 0x4b, 0xc0, 0xf3, 0x69, 0x20, 0xee, 0xc4, 0x67, 0xde, + 0xfb, 0x66, 0xd3, 0x6b, 0x73, 0xf3, 0x53, 0xaa, 0x97, 0x88, 0x29, 0xc3, 0xb2, 0xe1, 0xbd, 0xcf, + 0xc0, 0xc1, 0x99, 0x3d, 0xd1, 0x1f, 0x5a, 0xf0, 0xa0, 0xcb, 0xd4, 0x80, 0xe9, 0x71, 0xd7, 0x1a, + 0x41, 0x84, 0x17, 0x91, 0x5c, 0x65, 0x45, 0x37, 0xf5, 0x33, 0xfb, 0x46, 0xf1, 0x04, 0x0f, 0x2e, + 0xec, 0x31, 0x24, 0xbc, 0xe7, 0x80, 0xd1, 0x8f, 0xc1, 0xb0, 0xfc, 0x2e, 0x56, 0xa8, 0x08, 0x66, + 0x8a, 0xb6, 0x32, 0x3b, 0x76, 0x73, 0x77, 0x72, 0x78, 0xd5, 0x04, 0xe0, 0x24, 0x9e, 0xfd, 0x6f, + 0x8a, 0x89, 0xd3, 0x31, 0xe5, 0xc3, 0x64, 0xe2, 0xa6, 0x26, 0xfd, 0x3f, 0x52, 0x7a, 0xe6, 0x2a, + 0x6e, 0x94, 0x77, 0x49, 0x8b, 0x1b, 0xd5, 0x14, 0x61, 0x83, 0x39, 0x35, 0x4a, 0xc7, 0x9c, 0xb4, + 0xa7, 0x54, 0x48, 0xc0, 0x17, 0xf3, 0x1c, 0x52, 0x67, 0x24, 0xc3, 0x29, 0x79, 0xf0, 0xd6, 0x01, + 0xc2, 0x9d, 0x43, 0x42, 0xef, 0x83, 0x4a, 0xa8, 0xe2, 0xf9, 0x8a, 0x79, 0x6c, 0xd5, 0xe4, 0xb2, + 0x11, 0xc3, 0x51, 0xc7, 0xde, 0x3a, 0x72, 0x4f, 0x73, 0xb4, 0xff, 0x20, 0x19, 0x0e, 0x60, 0xc8, + 0x8e, 0x1e, 0x42, 0x1d, 0x3e, 0x65, 0xc1, 0x60, 0x18, 0x78, 0x9e, 0xeb, 0x6f, 0x50, 0x39, 0x27, + 0x94, 0xf5, 0x3b, 0x8e, 0x44, 0x5f, 0x0a, 0x81, 0xc6, 0x2c, 0x6b, 0xac, 0x79, 0x62, 0x73, 0x00, + 0xf6, 0x77, 0x2c, 0x18, 0xef, 0x26, 0x8f, 0x11, 0x81, 0x07, 0xa4, 0xb0, 0x51, 0x53, 0xb1, 0xec, + 0xcf, 0x13, 0x8f, 0x28, 0xb7, 0x79, 0x79, 0xf6, 0x11, 0xf1, 0x98, 0x0f, 0xac, 0x74, 0x47, 0xc5, + 0x7b, 0xd1, 0x41, 0x2f, 0xc0, 0x31, 0xe3, 0xb9, 0x22, 0x35, 0x31, 0x95, 0xd9, 0x29, 0x6a, 0x00, + 0xcd, 0xa4, 0x60, 0xb7, 0x76, 0x27, 0xef, 0x4b, 0xb7, 0x09, 0x85, 0xd1, 0x41, 0xc7, 0xfe, 0x95, + 0x42, 0xfa, 0x6d, 0x29, 0x5d, 0xff, 0x9a, 0xd5, 0xe1, 0x4d, 0x78, 0xdb, 0x51, 0xe8, 0x57, 0xe6, + 0x77, 0x50, 0xc1, 0x67, 0xdd, 0x71, 0xee, 0x62, 0xb0, 0x92, 0xfd, 0x6f, 0xfb, 0x60, 0x8f, 0x91, + 0xf5, 0x60, 0xbc, 0x1f, 0x38, 0x7a, 0xe4, 0x13, 0x96, 0x3a, 0x30, 0xe3, 0xdf, 0x70, 0xfd, 0xa8, + 0xe6, 0x9e, 0xef, 0x9f, 0xc4, 0xc1, 0x78, 0x97, 0xd3, 0x52, 0xf4, 0x45, 0x2b, 0x79, 0xe4, 0xd7, + 0x97, 0x73, 0xf0, 0x41, 0x7a, 0x4c, 0xc6, 0x39, 0x22, 0x1f, 0x98, 0x3e, 0x7d, 0xea, 0x76, 0xc2, + 0x38, 0x05, 0xb0, 0xee, 0xfa, 0x8e, 0xe7, 0xbe, 0x42, 0x77, 0x47, 0x25, 0x7d, 0xfa, 0x7c, 0x4e, + 0xb5, 0x62, 0x03, 0x63, 0xe2, 0xff, 0x87, 0x41, 0xe3, 0xc9, 0xf7, 0x3b, 0xad, 0xad, 0x98, 0xa7, + 0xbe, 0x6f, 0x85, 0x63, 0xe9, 0x01, 0x1e, 0xa4, 0xbf, 0xfd, 0xbf, 0x07, 0xd2, 0x67, 0x70, 0xab, + 0x24, 0x6c, 0xd0, 0xa1, 0xbd, 0xee, 0xd8, 0x7a, 0xdd, 0xb1, 0xf5, 0xba, 0x63, 0xcb, 0x3c, 0x9b, + 0x10, 0x4e, 0x9b, 0x81, 0x3b, 0xe4, 0xb4, 0x49, 0xb8, 0xa1, 0xca, 0xb9, 0xbb, 0xa1, 0xec, 0x8f, + 0x76, 0x78, 0xee, 0x57, 0x43, 0x42, 0x50, 0x00, 0x25, 0x3f, 0xa8, 0x13, 0x69, 0xe3, 0x5e, 0xcc, + 0xc7, 0x60, 0xbb, 0x1c, 0xd4, 0x8d, 0x24, 0x19, 0xfa, 0x2f, 0xc2, 0x9c, 0x8f, 0xfd, 0x91, 0x7e, + 0x48, 0x98, 0x93, 0xfc, 0xbd, 0xff, 0x08, 0x0c, 0x84, 0xa4, 0x19, 0x5c, 0xc1, 0x8b, 0x42, 0x97, + 0xe9, 0x1c, 0x43, 0xde, 0x8c, 0x25, 0x9c, 0xea, 0xbc, 0xa6, 0x13, 0x6f, 0x0a, 0x65, 0xa6, 0x74, + 0xde, 0x8a, 0x13, 0x6f, 0x62, 0x06, 0x41, 0x6f, 0x85, 0x91, 0x38, 0x71, 0x14, 0x2e, 0x8e, 0x7c, + 0xef, 0x13, 0xb8, 0x23, 0xc9, 0x83, 0x72, 0x9c, 0xc2, 0x46, 0x2f, 0x43, 0xdf, 0x26, 0xf1, 0x1a, + 0xe2, 0xd5, 0xe7, 0x17, 0x1c, 0xc4, 0x9f, 0xf5, 0x02, 0xf1, 0x1a, 0x5c, 0x12, 0xd2, 0x5f, 0x98, + 0xb1, 0xa2, 0xeb, 0xbe, 0xb2, 0xd5, 0x8a, 0xe2, 0xa0, 0xe1, 0xbe, 0x22, 0x3d, 0x9d, 0x6f, 0xcb, + 0x99, 0xf1, 0x25, 0x49, 0x9f, 0xbb, 0x94, 0xd4, 0x5f, 0xac, 0x39, 0xb3, 0x71, 0xd4, 0xdd, 0x90, + 0x2d, 0x99, 0xb6, 0x70, 0x58, 0xe6, 0x3d, 0x8e, 0x79, 0x49, 0x9f, 0x8f, 0x43, 0xfd, 0xc5, 0x9a, + 0x33, 0x6a, 0xab, 0xef, 0x6f, 0x90, 0x8d, 0xe1, 0x4a, 0xce, 0x63, 0xe0, 0xdf, 0x5e, 0xe6, 0x77, + 0xf8, 0x08, 0x94, 0x6a, 0x9b, 0x4e, 0x18, 0x8f, 0x0f, 0xb1, 0x45, 0xa3, 0x56, 0xf1, 0x1c, 0x6d, + 0xc4, 0x1c, 0x86, 0x1e, 0x82, 0x62, 0x48, 0xd6, 0x59, 0x4e, 0x86, 0x11, 0x17, 0x85, 0xc9, 0x3a, + 0xa6, 0xed, 0xca, 0x2e, 0x1b, 0xe9, 0x1a, 0x26, 0xfc, 0x4b, 0x85, 0xa4, 0x61, 0x97, 0x9c, 0x19, + 0xfe, 0x3d, 0xd4, 0x5a, 0x61, 0x24, 0x1d, 0x64, 0xc6, 0xf7, 0xc0, 0x9a, 0xb1, 0x84, 0xa3, 0x0f, + 0x5a, 0x30, 0x70, 0x3d, 0x0a, 0x7c, 0x9f, 0xc4, 0x42, 0x89, 0x5e, 0xcd, 0x79, 0xb2, 0x2e, 0x72, + 0xea, 0x7a, 0x0c, 0xa2, 0x01, 0x4b, 0xbe, 0x74, 0xb8, 0x64, 0xa7, 0xe6, 0xb5, 0xea, 0x1d, 0xc1, + 0x30, 0x67, 0x79, 0x33, 0x96, 0x70, 0x8a, 0xea, 0xfa, 0x1c, 0xb5, 0x2f, 0x89, 0xba, 0xe0, 0x0b, + 0x54, 0x01, 0xb7, 0x7f, 0xbd, 0x9c, 0x08, 0x3a, 0xd6, 0x9f, 0x0f, 0x35, 0xb9, 0x98, 0x51, 0x73, + 0xce, 0xf5, 0x88, 0x0c, 0x03, 0x63, 0x26, 0xd7, 0x55, 0xd5, 0x8a, 0x0d, 0x0c, 0xf4, 0x33, 0x00, + 0x4d, 0x27, 0x74, 0x1a, 0x44, 0x39, 0xb0, 0x0f, 0x6d, 0xd9, 0xd0, 0x71, 0xac, 0x48, 0x9a, 0x7a, + 0x13, 0xaf, 0x9a, 0x22, 0x6c, 0xb0, 0x44, 0xcf, 0xc0, 0x60, 0x48, 0x3c, 0xe2, 0x44, 0x2c, 0xe9, + 0x27, 0x9d, 0xc1, 0x88, 0x35, 0x08, 0x9b, 0x78, 0xe8, 0x51, 0x15, 0x31, 0x97, 0x8a, 0x1c, 0x4a, + 0x46, 0xcd, 0xa1, 0x4f, 0x5b, 0x30, 0xb2, 0xee, 0x7a, 0x44, 0x73, 0x17, 0x31, 0x99, 0xcb, 0x87, + 0x7f, 0xc8, 0x73, 0x26, 0x5d, 0x2d, 0x43, 0x13, 0xcd, 0x11, 0x4e, 0xb1, 0xa7, 0xaf, 0x79, 0x9b, + 0x84, 0x4c, 0xf8, 0xf6, 0x27, 0x5f, 0xf3, 0x55, 0xde, 0x8c, 0x25, 0x1c, 0xcd, 0xc0, 0x68, 0xd3, + 0x89, 0xa2, 0xb9, 0x90, 0xd4, 0x89, 0x1f, 0xbb, 0x8e, 0xc7, 0xb3, 0x01, 0xcb, 0x3a, 0x89, 0x66, + 0x25, 0x09, 0xc6, 0x69, 0x7c, 0xf4, 0x76, 0xb8, 0x9f, 0x7b, 0x88, 0x96, 0xdc, 0x28, 0x72, 0xfd, + 0x0d, 0xbd, 0x0c, 0x84, 0xa3, 0x6c, 0x52, 0x90, 0xba, 0x7f, 0x21, 0x1b, 0x0d, 0x77, 0xeb, 0x8f, + 0x1e, 0x87, 0x72, 0xb4, 0xe5, 0x36, 0xe7, 0xc2, 0x7a, 0xc4, 0x4e, 0x87, 0xca, 0xda, 0x2d, 0x5b, + 0x15, 0xed, 0x58, 0x61, 0xa0, 0x1a, 0x0c, 0xf1, 0x57, 0xc2, 0x43, 0xfe, 0x84, 0x04, 0x7d, 0xa2, + 0xab, 0x22, 0x17, 0x89, 0xff, 0x53, 0xd8, 0xb9, 0x71, 0x56, 0x9e, 0x55, 0xf1, 0xa3, 0x95, 0xab, + 0x06, 0x19, 0x9c, 0x20, 0x9a, 0xdc, 0xd3, 0x0d, 0xf6, 0xb0, 0xa7, 0x7b, 0x06, 0x06, 0xb7, 0x5a, + 0x6b, 0x44, 0xcc, 0xbc, 0x10, 0x6c, 0x6a, 0xf5, 0x5d, 0xd2, 0x20, 0x6c, 0xe2, 0xb1, 0x68, 0xcb, + 0xa6, 0x2b, 0xfe, 0x45, 0xe3, 0xc3, 0x46, 0xb4, 0xe5, 0xca, 0x82, 0x6c, 0xc6, 0x26, 0x0e, 0x1d, + 0x1a, 0x9d, 0x8b, 0x55, 0x12, 0xb1, 0x14, 0x32, 0x3a, 0x5d, 0x6a, 0x68, 0x55, 0x09, 0xc0, 0x1a, + 0x07, 0xad, 0xc0, 0x09, 0xfa, 0xa7, 0xca, 0x0a, 0x1f, 0x5c, 0x75, 0x3c, 0xb7, 0xce, 0x43, 0xff, + 0x46, 0x93, 0xfe, 0xcd, 0x6a, 0x06, 0x0e, 0xce, 0xec, 0x69, 0x7f, 0xae, 0x90, 0xf4, 0x9c, 0x98, + 0x22, 0x0c, 0x45, 0x54, 0x50, 0xc5, 0x57, 0x9d, 0x50, 0x1a, 0x3c, 0x87, 0x4c, 0xe9, 0x14, 0x74, + 0xaf, 0x3a, 0xa1, 0x29, 0xf2, 0x18, 0x03, 0x2c, 0x39, 0xa1, 0xeb, 0xd0, 0x17, 0x7b, 0x4e, 0x4e, + 0x39, 0xe0, 0x06, 0x47, 0xed, 0xc8, 0x5a, 0x9c, 0x89, 0x30, 0xe3, 0x81, 0x1e, 0xa4, 0xbb, 0xb7, + 0x35, 0x79, 0xd2, 0x26, 0x36, 0x5c, 0x6b, 0x11, 0x66, 0xad, 0xf6, 0xdf, 0x1d, 0xce, 0xd0, 0x3a, + 0xca, 0x10, 0x40, 0x67, 0x78, 0x1c, 0xf5, 0x4a, 0x48, 0xd6, 0xdd, 0x1d, 0x61, 0x88, 0x29, 0xc9, + 0x76, 0x59, 0x41, 0xb0, 0x81, 0x25, 0xfb, 0x54, 0x5b, 0xeb, 0xb4, 0x4f, 0xa1, 0xb3, 0x0f, 0x87, + 0x60, 0x03, 0x0b, 0x3d, 0x0d, 0xfd, 0x6e, 0xc3, 0xd9, 0x50, 0x81, 0xc0, 0x0f, 0x52, 0x91, 0xb6, + 0xc0, 0x5a, 0x6e, 0xed, 0x4e, 0x8e, 0xa8, 0x01, 0xb1, 0x26, 0x2c, 0x70, 0xd1, 0xaf, 0x58, 0x30, + 0x54, 0x0b, 0x1a, 0x0d, 0x11, 0x65, 0x2d, 0x7d, 0x01, 0xd7, 0x8f, 0xca, 0x4c, 0x9a, 0x9a, 0x33, + 0x98, 0x71, 0x67, 0x80, 0x0a, 0x46, 0x37, 0x41, 0x38, 0x31, 0x2a, 0x53, 0xf2, 0x95, 0xf6, 0x91, + 0x7c, 0xbf, 0x61, 0xc1, 0x18, 0xef, 0x6b, 0xec, 0xea, 0x45, 0x5e, 0x76, 0x70, 0xc4, 0x8f, 0xd5, + 0xe1, 0xe8, 0x50, 0xce, 0xde, 0x0e, 0x38, 0xee, 0x1c, 0x24, 0x3a, 0x0f, 0x63, 0xeb, 0x41, 0x58, + 0x23, 0xe6, 0x44, 0x08, 0xb1, 0xad, 0x08, 0x9d, 0x4b, 0x23, 0xe0, 0xce, 0x3e, 0xe8, 0x2a, 0xdc, + 0x67, 0x34, 0x9a, 0xf3, 0xc0, 0x25, 0xf7, 0xc3, 0x82, 0xda, 0x7d, 0xe7, 0x32, 0xb1, 0x70, 0x97, + 0xde, 0x49, 0x21, 0x59, 0xe9, 0x41, 0x48, 0xbe, 0x04, 0xa7, 0x6a, 0x9d, 0x33, 0xb3, 0x1d, 0xb5, + 0xd6, 0x22, 0x2e, 0xc7, 0xcb, 0xb3, 0x3f, 0x24, 0x08, 0x9c, 0x9a, 0xeb, 0x86, 0x88, 0xbb, 0xd3, + 0x40, 0xef, 0x85, 0x72, 0x48, 0xd8, 0x5b, 0x89, 0x44, 0x92, 0xf2, 0x21, 0xbd, 0x1d, 0xda, 0x82, + 0xe7, 0x64, 0xb5, 0x66, 0x12, 0x0d, 0x11, 0x56, 0x1c, 0xd1, 0x0d, 0x18, 0x68, 0x3a, 0x71, 0x6d, + 0x53, 0xa4, 0x26, 0x1f, 0xda, 0x37, 0xaf, 0x98, 0xb3, 0xa3, 0x14, 0xa3, 0xd0, 0x0b, 0x67, 0x82, + 0x25, 0x37, 0x6a, 0xab, 0xd5, 0x82, 0x46, 0x33, 0xf0, 0x89, 0x1f, 0x4b, 0x25, 0x32, 0xc2, 0xcf, + 0x3b, 0x64, 0x2b, 0x36, 0x30, 0x3a, 0x74, 0xb9, 0x46, 0x1b, 0x1f, 0xdb, 0x43, 0x97, 0x1b, 0xd4, + 0xba, 0xf5, 0xa7, 0xca, 0x86, 0xb9, 0x15, 0xaf, 0xb9, 0xf1, 0x66, 0xd0, 0x8a, 0xe5, 0x2e, 0x59, + 0x28, 0x2a, 0xa5, 0x6c, 0x16, 0x33, 0x70, 0x70, 0x66, 0xcf, 0xb4, 0x66, 0x1d, 0xbd, 0x3d, 0xcd, + 0x7a, 0xac, 0x07, 0xcd, 0x5a, 0x85, 0x93, 0x6c, 0x04, 0xc2, 0x4a, 0x96, 0x4e, 0xcb, 0x68, 0x1c, + 0xb1, 0xc1, 0xab, 0xac, 0xbe, 0xc5, 0x2c, 0x24, 0x9c, 0xdd, 0x77, 0xe2, 0xa7, 0x60, 0xac, 0x43, + 0xc8, 0x1d, 0xc8, 0x21, 0x39, 0x0f, 0xf7, 0x65, 0x8b, 0x93, 0x03, 0xb9, 0x25, 0x7f, 0x3d, 0x15, + 0x97, 0x6e, 0x6c, 0xd1, 0x7a, 0x70, 0x71, 0x3b, 0x50, 0x24, 0xfe, 0xb6, 0xd0, 0xae, 0xe7, 0x0e, + 0xb7, 0xaa, 0xcf, 0xfa, 0xdb, 0x5c, 0x1a, 0x32, 0x3f, 0xde, 0x59, 0x7f, 0x1b, 0x53, 0xda, 0xe8, + 0x17, 0xad, 0xc4, 0x06, 0x82, 0x3b, 0xc6, 0xdf, 0x75, 0x24, 0x7b, 0xd2, 0x9e, 0xf7, 0x14, 0xf6, + 0xbf, 0x2b, 0xc0, 0xe9, 0xfd, 0x88, 0xf4, 0x30, 0x7d, 0x8f, 0x40, 0x7f, 0xc4, 0x22, 0x4d, 0x84, + 0xba, 0x1a, 0xa4, 0x5f, 0x31, 0x8f, 0x3d, 0x79, 0x09, 0x0b, 0x10, 0xf2, 0xa0, 0xd8, 0x70, 0x9a, + 0xc2, 0x5f, 0xba, 0x70, 0xd8, 0xac, 0x65, 0xfa, 0xdf, 0xf1, 0x96, 0x9c, 0x26, 0x5f, 0xf3, 0x46, + 0x03, 0xa6, 0x6c, 0x50, 0x0c, 0x25, 0x27, 0x0c, 0x1d, 0x19, 0xd6, 0x70, 0x29, 0x1f, 0x7e, 0x33, + 0x94, 0x24, 0x3f, 0x15, 0x4e, 0x34, 0x61, 0xce, 0xcc, 0xfe, 0x6c, 0x39, 0x91, 0x86, 0xca, 0x62, + 0x55, 0x22, 0xe8, 0x17, 0x6e, 0x52, 0x2b, 0xef, 0x64, 0x71, 0x5e, 0x43, 0x82, 0x79, 0x20, 0x44, + 0x25, 0x1e, 0xc1, 0x0a, 0x7d, 0xdc, 0x62, 0xf5, 0x6e, 0x64, 0x7e, 0x9b, 0xd8, 0xd5, 0x1f, 0x4d, + 0x7a, 0x9d, 0x59, 0x45, 0x47, 0x36, 0x62, 0x93, 0xbb, 0xa8, 0xe9, 0xc5, 0x76, 0x33, 0x9d, 0x35, + 0xbd, 0xd8, 0xee, 0x44, 0xc2, 0xd1, 0x4e, 0x46, 0x4c, 0x4a, 0x0e, 0x35, 0x53, 0x7a, 0x88, 0x42, + 0xf9, 0xa2, 0x05, 0x63, 0x6e, 0x3a, 0xb8, 0x40, 0xec, 0x81, 0xaf, 0xe5, 0xe3, 0xd3, 0xec, 0x8c, + 0x5d, 0x50, 0x86, 0x4e, 0x07, 0x08, 0x77, 0x0e, 0x06, 0xd5, 0xa1, 0xcf, 0xf5, 0xd7, 0x03, 0x61, + 0xde, 0xcd, 0x1e, 0x6e, 0x50, 0x0b, 0xfe, 0x7a, 0xa0, 0xbf, 0x66, 0xfa, 0x0f, 0x33, 0xea, 0x68, + 0x11, 0x4e, 0xc8, 0x7c, 0x9f, 0x0b, 0x6e, 0x14, 0x07, 0x61, 0x7b, 0xd1, 0x6d, 0xb8, 0x31, 0x33, + 0xcd, 0x8a, 0xb3, 0xe3, 0x54, 0xbd, 0xe1, 0x0c, 0x38, 0xce, 0xec, 0x85, 0x5e, 0x81, 0x01, 0x79, + 0xa0, 0x5f, 0xce, 0xc3, 0x9f, 0xd0, 0xb9, 0xfe, 0xd5, 0x62, 0xaa, 0x8a, 0x13, 0x7d, 0xc9, 0x10, + 0x7d, 0xcc, 0x82, 0x11, 0xfe, 0xfb, 0x42, 0xbb, 0xce, 0x53, 0x0c, 0x2b, 0x79, 0x44, 0xed, 0x57, + 0x13, 0x34, 0x67, 0xd1, 0xcd, 0xdd, 0xc9, 0x91, 0x64, 0x1b, 0x4e, 0xf1, 0xb5, 0xff, 0xe9, 0x10, + 0x74, 0x86, 0x40, 0x24, 0xe3, 0x1d, 0xac, 0x3b, 0x1d, 0xef, 0x40, 0x77, 0x95, 0x91, 0x0e, 0x55, + 0xc8, 0xe1, 0x33, 0x13, 0x5c, 0xf5, 0x31, 0x74, 0xdb, 0xaf, 0x61, 0xc6, 0x03, 0xb5, 0xa0, 0x9f, + 0xe7, 0x1c, 0x0b, 0x0d, 0x70, 0xf8, 0x93, 0x6f, 0x33, 0x6b, 0x55, 0xbb, 0xb5, 0x78, 0x2b, 0x16, + 0xcc, 0xd0, 0x0e, 0x0c, 0x6c, 0xf2, 0xe5, 0x28, 0xf6, 0x7a, 0x4b, 0x87, 0x9d, 0xdf, 0xc4, 0x1a, + 0xd7, 0x8b, 0x4f, 0x34, 0x60, 0xc9, 0x8e, 0x85, 0xd7, 0x19, 0x01, 0x40, 0x5c, 0x90, 0xe4, 0x97, + 0x2d, 0xd9, 0x7b, 0xf4, 0xcf, 0xbb, 0x61, 0x28, 0x24, 0xb5, 0xc0, 0xaf, 0xb9, 0x1e, 0xa9, 0xcf, + 0xc8, 0x03, 0xb1, 0x83, 0x24, 0xc9, 0x31, 0x6f, 0x12, 0x36, 0x68, 0xe0, 0x04, 0x45, 0xf6, 0x9d, + 0xa9, 0x72, 0x21, 0xf4, 0x85, 0x10, 0x71, 0xf0, 0xb1, 0x98, 0x53, 0x71, 0x12, 0x46, 0x93, 0x7f, + 0x67, 0xc9, 0x36, 0x9c, 0xe2, 0x8b, 0x5e, 0x00, 0x08, 0xd6, 0x78, 0x0c, 0xdd, 0x4c, 0x2c, 0x4e, + 0x41, 0x0e, 0xf2, 0xa8, 0x23, 0x3c, 0xd9, 0x56, 0x52, 0xc0, 0x06, 0x35, 0x74, 0x09, 0x80, 0x7f, + 0x39, 0xab, 0xed, 0xa6, 0xdc, 0x10, 0xca, 0x2c, 0x47, 0xa8, 0x2a, 0xc8, 0xad, 0xdd, 0xc9, 0x4e, + 0x9f, 0x33, 0x0b, 0x14, 0x32, 0xba, 0xa3, 0xf7, 0xc0, 0x40, 0xd4, 0x6a, 0x34, 0x1c, 0x75, 0x46, + 0x92, 0x63, 0xfa, 0x2e, 0xa7, 0x6b, 0x08, 0x46, 0xde, 0x80, 0x25, 0x47, 0x74, 0x9d, 0x8a, 0x78, + 0x21, 0xa1, 0xf8, 0x57, 0xc4, 0x2d, 0x14, 0xee, 0x09, 0x7c, 0x8b, 0xdc, 0xc5, 0xe0, 0x0c, 0x9c, + 0x5b, 0xbb, 0x93, 0xf7, 0x25, 0xdb, 0x17, 0x03, 0x91, 0x50, 0x9b, 0x49, 0x13, 0x5d, 0x94, 0xd5, + 0x03, 0xe9, 0x63, 0xcb, 0xa2, 0x56, 0x8f, 0xe9, 0xea, 0x81, 0xac, 0xb9, 0xfb, 0x9c, 0x99, 0x9d, + 0xd1, 0x12, 0x1c, 0xaf, 0x05, 0x7e, 0x1c, 0x06, 0x9e, 0xc7, 0x2b, 0x8b, 0xf2, 0xbd, 0x39, 0x3f, + 0x43, 0x79, 0x40, 0x16, 0x46, 0x98, 0xeb, 0x44, 0xc1, 0x59, 0xfd, 0xa8, 0x4d, 0x9e, 0xd6, 0x0f, + 0x23, 0xb9, 0x1c, 0xaf, 0x27, 0x68, 0x0a, 0x09, 0xa5, 0xdc, 0xde, 0xfb, 0x68, 0x0a, 0x3f, 0x79, + 0xc8, 0x2a, 0xde, 0xd8, 0xd3, 0x30, 0x44, 0x76, 0x62, 0x12, 0xfa, 0x8e, 0x77, 0x05, 0x2f, 0xca, + 0x03, 0x0b, 0xf6, 0x61, 0x9e, 0x35, 0xda, 0x71, 0x02, 0x0b, 0xd9, 0xca, 0x4b, 0x66, 0x64, 0xae, + 0x73, 0x2f, 0x99, 0xf4, 0x89, 0xd9, 0x5f, 0x2e, 0x26, 0x6c, 0xd6, 0xbb, 0x72, 0xa4, 0xcb, 0x0a, + 0xc3, 0xc9, 0x0a, 0x7a, 0x0c, 0x20, 0xf6, 0x62, 0x79, 0x72, 0x56, 0x85, 0xe1, 0x96, 0x4d, 0x46, + 0x38, 0xc9, 0x17, 0x6d, 0x41, 0x69, 0x33, 0x88, 0x62, 0xb9, 0x43, 0x3b, 0xe4, 0x66, 0xf0, 0x42, + 0x10, 0xc5, 0xcc, 0xd0, 0x52, 0x8f, 0x4d, 0x5b, 0x22, 0xcc, 0x79, 0xd0, 0xbd, 0x7f, 0xb4, 0xe9, + 0x84, 0xf5, 0xc8, 0xac, 0xa7, 0xa1, 0xec, 0xe9, 0xaa, 0x06, 0x61, 0x13, 0xcf, 0xfe, 0x73, 0x2b, + 0x71, 0xaa, 0x75, 0x8d, 0x25, 0x0d, 0x6c, 0x13, 0x9f, 0x8a, 0x28, 0x33, 0x4c, 0xf1, 0xc7, 0x52, + 0x29, 0xd8, 0x6f, 0xea, 0x56, 0x04, 0xf8, 0x06, 0xa5, 0x30, 0xc5, 0x48, 0x18, 0x11, 0x8d, 0x1f, + 0xb0, 0x92, 0xb9, 0xf4, 0x85, 0x3c, 0xb6, 0x6e, 0x66, 0xa5, 0x9b, 0x7d, 0xd3, 0xf2, 0xed, 0x5f, + 0xb4, 0x60, 0x60, 0xd6, 0xa9, 0x6d, 0x05, 0xeb, 0xeb, 0xe8, 0x71, 0x28, 0xd7, 0x5b, 0xa1, 0x99, + 0xd6, 0xaf, 0x9c, 0x55, 0xf3, 0xa2, 0x1d, 0x2b, 0x0c, 0xba, 0xf4, 0xd7, 0x9d, 0x9a, 0xac, 0x2a, + 0x51, 0xe4, 0x4b, 0xff, 0x1c, 0x6b, 0xc1, 0x02, 0x42, 0xa7, 0xbf, 0xe1, 0xec, 0xc8, 0xce, 0xe9, + 0x23, 0xb5, 0x25, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0x55, 0x0b, 0xc6, 0x67, 0x9d, 0xc8, 0xad, 0xcd, + 0xb4, 0xe2, 0xcd, 0x59, 0x37, 0x5e, 0x6b, 0xd5, 0xb6, 0x48, 0xcc, 0x6b, 0x2e, 0xd1, 0x51, 0xb6, + 0x22, 0xfa, 0x05, 0xaa, 0x1d, 0xb3, 0x1a, 0xe5, 0x15, 0xd1, 0x8e, 0x15, 0x06, 0x7a, 0x05, 0x06, + 0x9b, 0x4e, 0x14, 0xdd, 0x08, 0xc2, 0x3a, 0x26, 0xeb, 0xf9, 0x54, 0x65, 0xab, 0x92, 0x5a, 0x48, + 0x62, 0x4c, 0xd6, 0x45, 0x80, 0x8a, 0xa6, 0x8f, 0x4d, 0x66, 0xf6, 0xcf, 0x5b, 0x70, 0x62, 0x96, + 0x38, 0x21, 0x09, 0x59, 0x11, 0x37, 0xf5, 0x20, 0xe8, 0x65, 0x28, 0xc7, 0xb4, 0x85, 0x8e, 0xc8, + 0xca, 0x77, 0x44, 0x2c, 0xb4, 0x64, 0x55, 0x10, 0xc7, 0x8a, 0x8d, 0xfd, 0x29, 0x0b, 0x4e, 0x65, + 0x8d, 0x65, 0xce, 0x0b, 0x5a, 0xf5, 0xbb, 0x31, 0xa0, 0xbf, 0x6f, 0xc1, 0x10, 0x3b, 0xae, 0x9f, + 0x27, 0xb1, 0xe3, 0x7a, 0x1d, 0x05, 0x64, 0xad, 0x1e, 0x0b, 0xc8, 0x9e, 0x86, 0xbe, 0xcd, 0xa0, + 0x41, 0xd2, 0xa1, 0x26, 0x17, 0x82, 0x06, 0xc1, 0x0c, 0x82, 0x9e, 0xa4, 0x8b, 0xd0, 0xf5, 0x63, + 0x87, 0x7e, 0x8e, 0xf2, 0x38, 0x63, 0x94, 0x2f, 0x40, 0xd5, 0x8c, 0x4d, 0x1c, 0xfb, 0x77, 0x2a, + 0x30, 0x20, 0xe2, 0xa2, 0x7a, 0xae, 0x01, 0x26, 0xbd, 0x38, 0x85, 0xae, 0x5e, 0x9c, 0x08, 0xfa, + 0x6b, 0xac, 0xca, 0xb7, 0xb0, 0xd0, 0x2f, 0xe5, 0x12, 0x48, 0xc7, 0x0b, 0x87, 0xeb, 0x61, 0xf1, + 0xff, 0x58, 0xb0, 0x42, 0xaf, 0x5a, 0x30, 0x5a, 0x0b, 0x7c, 0x9f, 0xd4, 0xb4, 0xed, 0xd8, 0x97, + 0xc7, 0x06, 0x61, 0x2e, 0x49, 0x54, 0x9f, 0x04, 0xa7, 0x00, 0x38, 0xcd, 0x1e, 0x3d, 0x07, 0xc3, + 0x7c, 0xce, 0xae, 0x26, 0xce, 0x60, 0x74, 0x5d, 0x51, 0x13, 0x88, 0x93, 0xb8, 0x07, 0xae, 0x23, + 0x14, 0x02, 0x0a, 0xc9, 0x7a, 0x48, 0xa2, 0x4d, 0x11, 0x37, 0xc6, 0xec, 0xd6, 0x81, 0xdb, 0xab, + 0x63, 0x81, 0x3b, 0x28, 0xe1, 0x0c, 0xea, 0x68, 0x4b, 0xb8, 0x11, 0xca, 0x79, 0xc8, 0x73, 0xf1, + 0x9a, 0xbb, 0x7a, 0x13, 0x26, 0xa1, 0xc4, 0x54, 0x17, 0xb3, 0x97, 0x8b, 0x3c, 0x77, 0x92, 0x29, + 0x36, 0xcc, 0xdb, 0xd1, 0x3c, 0x1c, 0x4b, 0x55, 0x45, 0x8d, 0xc4, 0x59, 0x89, 0xca, 0x93, 0x4b, + 0xd5, 0x53, 0x8d, 0x70, 0x47, 0x0f, 0xd3, 0xc5, 0x34, 0xb8, 0x8f, 0x8b, 0xa9, 0xad, 0xa2, 0x93, + 0xf9, 0x29, 0xc6, 0xf3, 0xb9, 0x4c, 0x40, 0x4f, 0xa1, 0xc8, 0x9f, 0x4c, 0x85, 0x22, 0x0f, 0xb3, + 0x01, 0x5c, 0xcd, 0x67, 0x00, 0x07, 0x8f, 0x3b, 0xbe, 0x9b, 0x71, 0xc4, 0xff, 0xcb, 0x02, 0xf9, + 0x5e, 0xe7, 0x9c, 0xda, 0x26, 0xa1, 0x4b, 0x06, 0xbd, 0x15, 0x46, 0x94, 0x77, 0x82, 0x9b, 0x44, + 0xbc, 0xb6, 0x9c, 0xb2, 0x9d, 0x71, 0x02, 0x8a, 0x53, 0xd8, 0x68, 0x1a, 0x2a, 0x74, 0x9e, 0x78, + 0x57, 0xae, 0xf7, 0x95, 0x07, 0x64, 0x66, 0x65, 0x41, 0xf4, 0xd2, 0x38, 0x28, 0x80, 0x31, 0xcf, + 0x89, 0x62, 0x36, 0x82, 0x6a, 0xdb, 0xaf, 0xdd, 0x66, 0x15, 0x19, 0x96, 0x8c, 0xb5, 0x98, 0x26, + 0x84, 0x3b, 0x69, 0xdb, 0xff, 0xa1, 0x04, 0xc3, 0x09, 0xc9, 0x78, 0x40, 0x83, 0xe1, 0x71, 0x28, + 0x4b, 0x1d, 0x9e, 0x2e, 0x97, 0xa5, 0x14, 0xbd, 0xc2, 0xa0, 0x4a, 0x6b, 0x4d, 0x6b, 0xd5, 0xb4, + 0x81, 0x63, 0x28, 0x5c, 0x6c, 0xe2, 0x31, 0xa1, 0x1c, 0x7b, 0xd1, 0x9c, 0xe7, 0x12, 0x3f, 0xe6, + 0xc3, 0xcc, 0x47, 0x28, 0xaf, 0x2e, 0x56, 0x4d, 0xa2, 0x5a, 0x28, 0xa7, 0x00, 0x38, 0xcd, 0x1e, + 0x7d, 0xc4, 0x82, 0x61, 0xe7, 0x46, 0xa4, 0xaf, 0xa2, 0x10, 0x41, 0xc7, 0x87, 0x54, 0x52, 0x89, + 0xdb, 0x2d, 0xb8, 0x63, 0x3f, 0xd1, 0x84, 0x93, 0x4c, 0xd1, 0x6b, 0x16, 0x20, 0xb2, 0x43, 0x6a, + 0x32, 0x2c, 0x5a, 0x8c, 0xa5, 0x3f, 0x8f, 0x1d, 0xfc, 0xd9, 0x0e, 0xba, 0x5c, 0xaa, 0x77, 0xb6, + 0xe3, 0x8c, 0x31, 0xa0, 0x8b, 0x80, 0xea, 0x6e, 0xe4, 0xac, 0x79, 0x64, 0x2e, 0x68, 0xc8, 0x04, + 0x62, 0x71, 0x9e, 0x3e, 0x21, 0xe6, 0x19, 0xcd, 0x77, 0x60, 0xe0, 0x8c, 0x5e, 0x6c, 0x95, 0x85, + 0xc1, 0x4e, 0xfb, 0x4a, 0xe8, 0x31, 0x2d, 0x61, 0xae, 0x32, 0xd1, 0x8e, 0x15, 0x86, 0xfd, 0x17, + 0x45, 0xf5, 0x29, 0xeb, 0x1c, 0x00, 0xc7, 0x88, 0x45, 0xb6, 0x6e, 0x3f, 0x16, 0x59, 0x47, 0x4a, + 0x75, 0xa6, 0xc5, 0x27, 0xb2, 0x68, 0x0b, 0x77, 0x29, 0x8b, 0xf6, 0x43, 0x56, 0xa2, 0x24, 0xdd, + 0xe0, 0x99, 0x17, 0xf2, 0xcd, 0x3f, 0x98, 0xe2, 0x51, 0x5c, 0x29, 0xbd, 0x92, 0x0a, 0xde, 0x7b, + 0x1c, 0xca, 0xeb, 0x9e, 0xc3, 0x0a, 0xa9, 0xb0, 0x0f, 0xd5, 0x88, 0x30, 0x3b, 0x27, 0xda, 0xb1, + 0xc2, 0xa0, 0x52, 0xdf, 0x20, 0x7a, 0x20, 0xa9, 0xfd, 0x9f, 0x8b, 0x30, 0x68, 0x68, 0xfc, 0x4c, + 0xf3, 0xcd, 0xba, 0xc7, 0xcc, 0xb7, 0xc2, 0x01, 0xcc, 0xb7, 0x9f, 0x81, 0x4a, 0x4d, 0x6a, 0xa3, + 0x7c, 0x2e, 0x16, 0x49, 0xeb, 0x38, 0xad, 0x90, 0x54, 0x13, 0xd6, 0x3c, 0xd1, 0xf9, 0x44, 0xa6, + 0x66, 0xc2, 0x2f, 0x90, 0x95, 0x4a, 0x29, 0x34, 0x5a, 0x67, 0x9f, 0x74, 0x7c, 0x40, 0x69, 0xff, + 0xf8, 0x00, 0xfb, 0x5b, 0x96, 0x7a, 0xb9, 0x77, 0xa0, 0x24, 0xcf, 0xf5, 0x64, 0x49, 0x9e, 0xb3, + 0xb9, 0x4c, 0x73, 0x97, 0x5a, 0x3c, 0x97, 0x61, 0x60, 0x2e, 0x68, 0x34, 0x1c, 0xbf, 0x8e, 0x7e, + 0x18, 0x06, 0x6a, 0xfc, 0xa7, 0xf0, 0xa1, 0xb1, 0xc3, 0x6a, 0x01, 0xc5, 0x12, 0x86, 0x1e, 0x84, + 0x3e, 0x27, 0xdc, 0x90, 0x7e, 0x33, 0x16, 0x04, 0x37, 0x13, 0x6e, 0x44, 0x98, 0xb5, 0xda, 0x7f, + 0x65, 0xc1, 0x08, 0xed, 0xe2, 0xb2, 0x87, 0x62, 0x8f, 0xf3, 0x28, 0xf4, 0x3b, 0xad, 0x78, 0x33, + 0xe8, 0xd8, 0x87, 0xcd, 0xb0, 0x56, 0x2c, 0xa0, 0x74, 0x1f, 0xa6, 0x6a, 0x39, 0x18, 0xfb, 0xb0, + 0x79, 0xba, 0x96, 0x19, 0x84, 0x9a, 0xb2, 0x51, 0x6b, 0x2d, 0xeb, 0xb4, 0xb4, 0xca, 0x9b, 0xb1, + 0x84, 0x53, 0x62, 0x6b, 0x41, 0xbd, 0x2d, 0x42, 0x7b, 0x15, 0xb1, 0xd9, 0xa0, 0xde, 0xc6, 0x0c, + 0x82, 0x1e, 0x82, 0x62, 0xb4, 0xe9, 0xc8, 0x73, 0x79, 0x19, 0x65, 0x5e, 0xbd, 0x30, 0x83, 0x69, + 0xbb, 0x4a, 0x9a, 0x08, 0xbd, 0x74, 0x8c, 0x6d, 0x32, 0x69, 0x22, 0xf4, 0xec, 0x7f, 0xd5, 0x07, + 0x2c, 0xde, 0xc6, 0x09, 0x49, 0x7d, 0x35, 0x60, 0x35, 0xd0, 0x8f, 0xf4, 0x58, 0x5b, 0x6f, 0x64, + 0xef, 0xe5, 0xa3, 0x6d, 0xe3, 0x78, 0xb3, 0x78, 0xa7, 0x8f, 0x37, 0xb3, 0x4f, 0xac, 0xfb, 0xee, + 0xa1, 0x13, 0x6b, 0xfb, 0x13, 0x16, 0x20, 0x15, 0x3d, 0xa5, 0x43, 0x4a, 0xa6, 0xa1, 0xa2, 0xc2, + 0xb5, 0xc4, 0xf7, 0xa2, 0xc5, 0xa2, 0x04, 0x60, 0x8d, 0xd3, 0x83, 0xf7, 0xe2, 0x11, 0xa9, 0xb3, + 0x8a, 0xc9, 0x9c, 0x0b, 0xa6, 0xe9, 0x84, 0x0a, 0xb3, 0x7f, 0xb7, 0x00, 0xf7, 0x71, 0x73, 0x69, + 0xc9, 0xf1, 0x9d, 0x0d, 0xd2, 0xa0, 0xa3, 0xea, 0x35, 0x48, 0xa8, 0x46, 0xb7, 0xcd, 0xae, 0xcc, + 0x90, 0x38, 0xac, 0xbc, 0xe2, 0x72, 0x86, 0x4b, 0x96, 0x05, 0xdf, 0x8d, 0x31, 0x23, 0x8e, 0x22, + 0x28, 0xcb, 0x5b, 0xd8, 0x84, 0xfe, 0xc9, 0x89, 0x91, 0x12, 0xc5, 0xc2, 0xb2, 0x20, 0x58, 0x31, + 0xa2, 0xe6, 0x83, 0x17, 0xd4, 0xb6, 0xe8, 0x27, 0x9f, 0x36, 0x1f, 0x16, 0x45, 0x3b, 0x56, 0x18, + 0x76, 0x03, 0x46, 0xe5, 0x1c, 0x36, 0x2f, 0x91, 0x36, 0x26, 0xeb, 0x54, 0xe7, 0xd6, 0x64, 0x93, + 0x71, 0x31, 0x9c, 0xd2, 0xb9, 0x73, 0x26, 0x10, 0x27, 0x71, 0x65, 0x81, 0xe0, 0x42, 0x76, 0x81, + 0x60, 0xfb, 0x77, 0x2d, 0x48, 0x2b, 0x7d, 0xa3, 0x1c, 0xaa, 0xb5, 0x67, 0x39, 0xd4, 0x03, 0x14, + 0x14, 0x7d, 0x27, 0x0c, 0x3a, 0x31, 0xb5, 0xea, 0xb8, 0x07, 0xa6, 0x78, 0x7b, 0x27, 0x87, 0x4b, + 0x41, 0xdd, 0x5d, 0x77, 0x99, 0xe7, 0xc5, 0x24, 0x67, 0xbf, 0x66, 0x41, 0x65, 0x3e, 0x6c, 0x1f, + 0x3c, 0x55, 0xad, 0x33, 0x11, 0xad, 0x70, 0xa0, 0x44, 0x34, 0x99, 0xea, 0x56, 0xec, 0x96, 0xea, + 0x66, 0xff, 0x75, 0x1f, 0x8c, 0x75, 0xe4, 0x5e, 0xa2, 0x67, 0x61, 0x48, 0xbd, 0x25, 0xe9, 0x76, + 0xad, 0x98, 0xc1, 0xcb, 0x1a, 0x86, 0x13, 0x98, 0x3d, 0x7c, 0xaa, 0x0b, 0x70, 0x3c, 0x24, 0x2f, + 0xb7, 0x48, 0x8b, 0xcc, 0xac, 0xc7, 0x24, 0xac, 0x92, 0x5a, 0xe0, 0xd7, 0x79, 0x3d, 0xe1, 0xe2, + 0xec, 0xfd, 0x37, 0x77, 0x27, 0x8f, 0xe3, 0x4e, 0x30, 0xce, 0xea, 0x83, 0x9a, 0x30, 0xec, 0x99, + 0xfb, 0x05, 0xb1, 0x4d, 0xbd, 0xad, 0xad, 0x86, 0x5a, 0xad, 0x89, 0x66, 0x9c, 0x64, 0x90, 0xdc, + 0x74, 0x94, 0xee, 0xd2, 0xa6, 0xe3, 0xc3, 0x7a, 0xd3, 0xc1, 0x63, 0x81, 0xde, 0x91, 0x73, 0xee, + 0x6d, 0x2f, 0xbb, 0x8e, 0xc3, 0xec, 0x23, 0x9e, 0x87, 0xb2, 0x8c, 0x93, 0xec, 0x29, 0xbe, 0xd0, + 0xa4, 0xd3, 0x45, 0xb6, 0x3f, 0x0a, 0x6f, 0x3c, 0x1b, 0x86, 0xc6, 0x64, 0x5e, 0x0e, 0xe2, 0x19, + 0xcf, 0x0b, 0x6e, 0x50, 0x73, 0xe5, 0x4a, 0x44, 0x84, 0x1f, 0xd0, 0xbe, 0x55, 0x80, 0x8c, 0x2d, + 0x35, 0xfd, 0x26, 0xb5, 0x5d, 0x98, 0xf8, 0x26, 0x0f, 0x66, 0x1b, 0xa2, 0x1d, 0x1e, 0x4b, 0xca, + 0xad, 0x81, 0xb7, 0xe7, 0xed, 0x12, 0xd0, 0xe1, 0xa5, 0x4a, 0x52, 0xaa, 0x10, 0xd3, 0x33, 0x00, + 0xda, 0x9c, 0x17, 0x36, 0xa1, 0x0a, 0x0e, 0xd1, 0x56, 0x3f, 0x36, 0xb0, 0xd0, 0x33, 0x30, 0xe8, + 0xfa, 0x51, 0xec, 0x78, 0xde, 0x05, 0xd7, 0x8f, 0x85, 0x9d, 0xa8, 0xcc, 0x9e, 0x05, 0x0d, 0xc2, + 0x26, 0xde, 0xc4, 0x5b, 0x8c, 0xf7, 0x77, 0x90, 0xf7, 0xbe, 0x09, 0xa7, 0xce, 0xbb, 0xb1, 0x4a, + 0x52, 0x54, 0xeb, 0x8d, 0x5a, 0xeb, 0x4a, 0x56, 0x59, 0x5d, 0xd3, 0x72, 0x8d, 0x24, 0xc1, 0x42, + 0x32, 0xa7, 0x31, 0x9d, 0x24, 0x68, 0xd7, 0xe0, 0xc4, 0x79, 0x37, 0x3e, 0xe7, 0x7a, 0xe4, 0x08, + 0x99, 0x7c, 0xa5, 0x1f, 0x86, 0xcc, 0xdc, 0xfd, 0x83, 0x48, 0xf6, 0x4f, 0x51, 0x3b, 0x56, 0x4c, + 0x84, 0xab, 0x0e, 0xbc, 0xaf, 0x1d, 0xba, 0x90, 0x40, 0xf6, 0xe4, 0x1a, 0xa6, 0xac, 0xe6, 0x89, + 0xcd, 0x01, 0xa0, 0x1b, 0x50, 0x5a, 0x67, 0xf9, 0x6e, 0xc5, 0x3c, 0x42, 0x95, 0xb2, 0x26, 0x5f, + 0x7f, 0xb9, 0x3c, 0x63, 0x8e, 0xf3, 0xa3, 0xe6, 0x47, 0x98, 0x4c, 0xb3, 0x36, 0xb2, 0x10, 0x84, + 0x5e, 0x53, 0x18, 0xdd, 0xb4, 0x47, 0xe9, 0x36, 0xb4, 0x47, 0x42, 0x96, 0xf7, 0xdf, 0x25, 0x59, + 0xce, 0x72, 0x17, 0xe3, 0x4d, 0x66, 0x1c, 0x8b, 0xb4, 0xa9, 0x01, 0x36, 0x09, 0x46, 0xee, 0x62, + 0x02, 0x8c, 0xd3, 0xf8, 0xe8, 0xfd, 0x4a, 0x1b, 0x94, 0xf3, 0x38, 0x50, 0x30, 0x57, 0xf4, 0x51, + 0x2b, 0x82, 0x4f, 0x14, 0x60, 0xe4, 0xbc, 0xdf, 0x5a, 0x39, 0xbf, 0xd2, 0x5a, 0xf3, 0xdc, 0xda, + 0x25, 0xd2, 0xa6, 0xd2, 0x7e, 0x8b, 0xb4, 0x17, 0xe6, 0xc5, 0x17, 0xa4, 0xd6, 0xcc, 0x25, 0xda, + 0x88, 0x39, 0x8c, 0xca, 0xad, 0x75, 0xd7, 0xdf, 0x20, 0x61, 0x33, 0x74, 0x85, 0xaf, 0xdf, 0x90, + 0x5b, 0xe7, 0x34, 0x08, 0x9b, 0x78, 0x94, 0x76, 0x70, 0xc3, 0x27, 0x61, 0x7a, 0x97, 0xb0, 0x4c, + 0x1b, 0x31, 0x87, 0xb1, 0x8b, 0x6d, 0xc2, 0x96, 0x70, 0xa5, 0x19, 0x48, 0xab, 0xb4, 0x11, 0x73, + 0x98, 0xd8, 0xa5, 0xb3, 0x48, 0xb0, 0x52, 0xc7, 0x2e, 0x9d, 0x05, 0x51, 0x48, 0x38, 0x45, 0xdd, + 0x22, 0xed, 0x79, 0x27, 0x76, 0xd2, 0x9b, 0xec, 0x4b, 0xbc, 0x19, 0x4b, 0x38, 0x2b, 0x8e, 0x9c, + 0x9c, 0x8e, 0xef, 0xbb, 0xe2, 0xc8, 0xc9, 0xe1, 0x77, 0x71, 0xc8, 0xfc, 0xbd, 0x02, 0x0c, 0xbd, + 0x7e, 0x6f, 0x73, 0xc6, 0x8d, 0x64, 0xd7, 0x60, 0xac, 0x23, 0x63, 0xba, 0x07, 0x0b, 0x69, 0xdf, + 0x8a, 0x16, 0x36, 0x86, 0x41, 0x4a, 0x58, 0x16, 0x05, 0x9c, 0x83, 0x31, 0xfe, 0xf1, 0x52, 0x4e, + 0x2c, 0x01, 0x56, 0x65, 0xc1, 0xb3, 0xc3, 0xac, 0xab, 0x69, 0x20, 0xee, 0xc4, 0xb7, 0x3f, 0x69, + 0xc1, 0x70, 0x22, 0x89, 0x3d, 0x27, 0x5b, 0x8e, 0x7d, 0xdd, 0x01, 0x8b, 0x62, 0x66, 0x59, 0x25, + 0x45, 0xa6, 0x86, 0xf5, 0xd7, 0xad, 0x41, 0xd8, 0xc4, 0xb3, 0x7f, 0xbf, 0x08, 0x65, 0x19, 0x71, + 0xd5, 0xc3, 0x50, 0x3e, 0x6e, 0xc1, 0xb0, 0x3a, 0x40, 0x64, 0x1e, 0xdf, 0x42, 0x1e, 0x39, 0x75, + 0x74, 0x04, 0xca, 0x7f, 0xe2, 0xaf, 0x07, 0x7a, 0x63, 0x81, 0x4d, 0x66, 0x38, 0xc9, 0x1b, 0x5d, + 0x05, 0x88, 0xda, 0x51, 0x4c, 0x1a, 0x86, 0xef, 0xd9, 0x36, 0x56, 0xd9, 0x54, 0x2d, 0x08, 0x09, + 0x5d, 0x53, 0x97, 0x83, 0x3a, 0xa9, 0x2a, 0x4c, 0x6d, 0xe1, 0xe9, 0x36, 0x6c, 0x50, 0x42, 0xaf, + 0xa8, 0xe3, 0xee, 0xbe, 0x3c, 0xf4, 0xba, 0x9c, 0xdf, 0x5e, 0xce, 0xbb, 0x0f, 0x71, 0xbe, 0x6c, + 0xff, 0x5a, 0x01, 0x8e, 0xa5, 0x67, 0x12, 0xbd, 0x03, 0x86, 0xe4, 0xa4, 0x19, 0x6e, 0x06, 0x19, + 0xe6, 0x36, 0x84, 0x0d, 0xd8, 0xad, 0xdd, 0xc9, 0x49, 0x1d, 0xee, 0x36, 0x4d, 0x27, 0x6f, 0x7a, + 0xdb, 0x88, 0x08, 0xa4, 0xcb, 0x20, 0x41, 0x8c, 0x1f, 0x3e, 0x8b, 0x28, 0x89, 0xd9, 0xf6, 0x4c, + 0xb3, 0x29, 0x4e, 0x90, 0x8d, 0xc3, 0x67, 0x13, 0x8a, 0x53, 0xd8, 0x68, 0x05, 0x4e, 0x18, 0x2d, + 0x97, 0x89, 0xbb, 0xb1, 0xb9, 0x16, 0x84, 0x72, 0x5f, 0xfb, 0xa0, 0x0e, 0xaa, 0xed, 0xc4, 0xc1, + 0x99, 0x3d, 0xa9, 0x61, 0x54, 0x73, 0x9a, 0x4e, 0xcd, 0x8d, 0xdb, 0xe2, 0x0c, 0x40, 0x89, 0xf1, + 0x39, 0xd1, 0x8e, 0x15, 0x86, 0xfd, 0x8f, 0xfb, 0xe0, 0x18, 0x8f, 0x22, 0x25, 0x2a, 0x48, 0x1a, + 0xbd, 0x03, 0x2a, 0x51, 0xec, 0x84, 0xdc, 0xa9, 0x61, 0x1d, 0x58, 0x74, 0xe9, 0xcc, 0x7b, 0x49, + 0x04, 0x6b, 0x7a, 0xe8, 0x05, 0x56, 0xb6, 0xcc, 0x8d, 0x36, 0x19, 0xf5, 0xc2, 0xed, 0xb9, 0x4c, + 0xce, 0x29, 0x0a, 0xd8, 0xa0, 0x86, 0x7e, 0x02, 0x4a, 0xcd, 0x4d, 0x27, 0x92, 0xfe, 0xbc, 0x47, + 0xa5, 0x9c, 0x58, 0xa1, 0x8d, 0xb7, 0x76, 0x27, 0x4f, 0xa6, 0x1f, 0x95, 0x01, 0x30, 0xef, 0x64, + 0x4a, 0xf9, 0xbe, 0xfd, 0xaf, 0xd6, 0xa9, 0x87, 0xed, 0xea, 0x85, 0x99, 0xf4, 0x65, 0x2c, 0xf3, + 0xac, 0x15, 0x0b, 0x28, 0x95, 0x49, 0x9b, 0x9c, 0x65, 0x9d, 0x22, 0xf7, 0x27, 0x2d, 0x8e, 0x0b, + 0x1a, 0x84, 0x4d, 0x3c, 0xf4, 0x89, 0xce, 0x18, 0xe3, 0x81, 0x23, 0xc8, 0x41, 0xe9, 0x35, 0xba, + 0xf8, 0x2c, 0x54, 0xc4, 0x50, 0x57, 0x03, 0xf4, 0x2c, 0x0c, 0x71, 0x77, 0xd1, 0x6c, 0xe8, 0xf8, + 0xb5, 0xcd, 0xb4, 0x93, 0x67, 0xd5, 0x80, 0xe1, 0x04, 0xa6, 0xbd, 0x04, 0x7d, 0x3d, 0x0a, 0xd9, + 0x9e, 0xf6, 0xee, 0xcf, 0x43, 0x99, 0x92, 0x93, 0x1b, 0xb4, 0x3c, 0x48, 0x06, 0x50, 0x96, 0xd7, + 0xd3, 0x22, 0x1b, 0x8a, 0xae, 0x23, 0x63, 0x49, 0xd4, 0x27, 0xb4, 0x10, 0x45, 0x2d, 0xb6, 0xec, + 0x28, 0x10, 0x3d, 0x02, 0x45, 0xb2, 0xd3, 0x4c, 0x07, 0x8d, 0x9c, 0xdd, 0x69, 0xba, 0x21, 0x89, + 0x28, 0x12, 0xd9, 0x69, 0xa2, 0x09, 0x28, 0xb8, 0x75, 0xb1, 0x22, 0x41, 0xe0, 0x14, 0x16, 0xe6, + 0x71, 0xc1, 0xad, 0xdb, 0x3b, 0x50, 0x51, 0xf7, 0xe1, 0xa2, 0x2d, 0x69, 0x52, 0x59, 0x79, 0x44, + 0x11, 0x4b, 0xba, 0x5d, 0x8c, 0xa9, 0x16, 0x80, 0x2e, 0xe9, 0x90, 0x97, 0x0a, 0x3e, 0x0d, 0x7d, + 0xb5, 0x40, 0x14, 0xe3, 0x29, 0x6b, 0x32, 0xcc, 0x96, 0x62, 0x10, 0xfb, 0x1a, 0x8c, 0x5c, 0xf2, + 0x83, 0x1b, 0xec, 0x02, 0x27, 0x56, 0xaf, 0x98, 0x12, 0x5e, 0xa7, 0x3f, 0xd2, 0x96, 0x3b, 0x83, + 0x62, 0x0e, 0x53, 0x95, 0x54, 0x0b, 0xdd, 0x2a, 0xa9, 0xda, 0x1f, 0xb0, 0x60, 0x48, 0xe5, 0x86, + 0x9f, 0xdf, 0xde, 0xa2, 0x74, 0x37, 0xc2, 0xa0, 0xd5, 0x4c, 0xd3, 0x65, 0x57, 0x6f, 0x63, 0x0e, + 0x33, 0x8b, 0x26, 0x14, 0xf6, 0x29, 0x9a, 0x70, 0x1a, 0xfa, 0xb6, 0x5c, 0xbf, 0x9e, 0x76, 0x8a, + 0x5e, 0x72, 0xfd, 0x3a, 0x66, 0x10, 0x3a, 0x84, 0x63, 0x6a, 0x08, 0xd2, 0x66, 0x7a, 0x16, 0x86, + 0xd6, 0x5a, 0xae, 0x57, 0x97, 0x85, 0x98, 0x53, 0x9f, 0xcb, 0xac, 0x01, 0xc3, 0x09, 0x4c, 0x74, + 0x06, 0x60, 0xcd, 0xf5, 0x9d, 0xb0, 0xbd, 0xa2, 0x8d, 0x34, 0xa5, 0xb7, 0x67, 0x15, 0x04, 0x1b, + 0x58, 0xf6, 0xa7, 0x8b, 0x30, 0x92, 0xcc, 0x90, 0xef, 0xc1, 0x77, 0xf1, 0x08, 0x94, 0x58, 0xd2, + 0x7c, 0xfa, 0xd5, 0xf2, 0xda, 0xc5, 0x1c, 0x86, 0x22, 0xe8, 0xe7, 0x1f, 0x73, 0x3e, 0xd7, 0x17, + 0xab, 0x41, 0x2a, 0x4f, 0x2a, 0x8b, 0xb5, 0x16, 0x8e, 0x69, 0xc1, 0x0a, 0x7d, 0xc4, 0x82, 0x81, + 0xa0, 0x69, 0x56, 0xe0, 0x7c, 0x7b, 0x9e, 0xd5, 0x03, 0x44, 0x8a, 0xae, 0xb0, 0x47, 0xd4, 0xab, + 0x97, 0xaf, 0x43, 0xb2, 0x9e, 0xf8, 0x71, 0x18, 0x32, 0x31, 0xf7, 0x33, 0x49, 0xca, 0xa6, 0x49, + 0xf2, 0x71, 0x73, 0x51, 0x88, 0xfa, 0x08, 0x3d, 0x7c, 0x6e, 0x57, 0xa0, 0x54, 0x53, 0x01, 0x69, + 0xb7, 0x55, 0xbe, 0x5f, 0xd5, 0x0f, 0x63, 0x87, 0xfd, 0x9c, 0x9a, 0xfd, 0x2d, 0xcb, 0x58, 0x1f, + 0x98, 0x44, 0x0b, 0x75, 0x14, 0x42, 0x71, 0x63, 0x7b, 0x4b, 0xa8, 0xf9, 0x8b, 0x39, 0x4d, 0xef, + 0xf9, 0xed, 0x2d, 0xbd, 0xc6, 0xcd, 0x56, 0x4c, 0x99, 0xf5, 0xe0, 0xee, 0x4f, 0x94, 0xd1, 0x28, + 0xee, 0x5f, 0x46, 0xc3, 0x7e, 0xad, 0x00, 0x63, 0x1d, 0x8b, 0x0a, 0xbd, 0x02, 0xa5, 0x90, 0x3e, + 0xa5, 0x78, 0xbc, 0xc5, 0xdc, 0x0a, 0x5f, 0x44, 0x0b, 0x75, 0xad, 0x3e, 0x93, 0xed, 0x98, 0xb3, + 0x44, 0x17, 0x01, 0xe9, 0xb0, 0x49, 0x75, 0xd6, 0xc0, 0x1f, 0x59, 0xc5, 0x56, 0xcd, 0x74, 0x60, + 0xe0, 0x8c, 0x5e, 0xe8, 0xb9, 0xf4, 0x91, 0x45, 0x31, 0x79, 0x56, 0xb6, 0xd7, 0xe9, 0x83, 0xfd, + 0x5b, 0x05, 0x18, 0x4e, 0x14, 0x44, 0x45, 0x1e, 0x94, 0x89, 0xc7, 0x0e, 0x32, 0xa5, 0xb2, 0x39, + 0xec, 0xf5, 0x26, 0x4a, 0x41, 0x9e, 0x15, 0x74, 0xb1, 0xe2, 0x70, 0x6f, 0x84, 0x5c, 0x3d, 0x0b, + 0x43, 0x72, 0x40, 0x6f, 0x77, 0x1a, 0x9e, 0x98, 0x40, 0xb5, 0x46, 0xcf, 0x1a, 0x30, 0x9c, 0xc0, + 0xb4, 0x7f, 0xaf, 0x08, 0xe3, 0xfc, 0xe4, 0xb7, 0xae, 0x56, 0x9e, 0x8a, 0xe0, 0xf8, 0x05, 0x5d, + 0xb6, 0x98, 0x4f, 0xe4, 0xda, 0x61, 0x6f, 0x13, 0xcb, 0x66, 0xd4, 0x53, 0xa4, 0xf0, 0x17, 0x52, + 0x91, 0xc2, 0x7c, 0x67, 0xba, 0x71, 0x44, 0x23, 0xfa, 0xfe, 0x0a, 0x1d, 0xfe, 0x67, 0x05, 0x18, + 0x4d, 0x5d, 0xd5, 0x86, 0x3e, 0x9d, 0xbc, 0xdd, 0xc3, 0xca, 0xe3, 0x54, 0x6c, 0xcf, 0xdb, 0xbb, + 0x0e, 0x76, 0xc7, 0xc7, 0x5d, 0xfa, 0x54, 0xec, 0x6f, 0x16, 0x60, 0x24, 0x79, 0xc7, 0xdc, 0x3d, + 0x38, 0x53, 0x6f, 0x86, 0x0a, 0xbb, 0x46, 0xe9, 0x12, 0x69, 0xcb, 0x43, 0x35, 0x7e, 0x63, 0x8d, + 0x6c, 0xc4, 0x1a, 0x7e, 0x4f, 0x5c, 0x9d, 0x62, 0xff, 0x0b, 0x0b, 0x4e, 0xf2, 0xa7, 0x4c, 0xaf, + 0xc3, 0xbf, 0x93, 0x35, 0xbb, 0x2f, 0xe6, 0x3b, 0xc0, 0x54, 0xb9, 0xed, 0xfd, 0xe6, 0x97, 0x5a, + 0x0a, 0x27, 0xc4, 0x68, 0x93, 0x4b, 0xe1, 0x1e, 0x1c, 0xec, 0x81, 0x16, 0x83, 0xfd, 0x1f, 0x0b, + 0x30, 0xb8, 0x3c, 0xb7, 0xa0, 0x44, 0xf8, 0x34, 0x54, 0x6a, 0x21, 0x71, 0xb4, 0xb7, 0xc3, 0x8c, + 0x2b, 0x92, 0x00, 0xac, 0x71, 0xe8, 0xa6, 0x81, 0xc7, 0xe5, 0x45, 0xe9, 0x4d, 0x03, 0x0f, 0xdb, + 0x8b, 0xb0, 0x84, 0xa3, 0xc7, 0xa1, 0xcc, 0x32, 0x66, 0xaf, 0x84, 0x52, 0xe3, 0xe8, 0x9d, 0x24, + 0x6b, 0xc7, 0x8b, 0x58, 0x61, 0x50, 0xc2, 0xf5, 0xa0, 0x16, 0x51, 0xe4, 0x94, 0x03, 0x62, 0x9e, + 0x36, 0xe3, 0x45, 0x2c, 0xe1, 0xac, 0xe0, 0x21, 0xdb, 0xa4, 0x53, 0xe4, 0x52, 0x72, 0xd0, 0x7c, + 0x37, 0x4f, 0xd1, 0x35, 0xce, 0x41, 0x0a, 0x63, 0xa6, 0xb2, 0xd6, 0x06, 0x7a, 0xcb, 0x5a, 0xb3, + 0xbf, 0x59, 0x84, 0x8a, 0xf6, 0x21, 0xb9, 0xa2, 0x4c, 0x44, 0x2e, 0xe5, 0xdc, 0xab, 0x6d, 0xbf, + 0xa6, 0x48, 0xf3, 0xc3, 0x73, 0xa3, 0x4a, 0xc4, 0xcf, 0x59, 0x30, 0xe8, 0xfa, 0x6e, 0xec, 0x3a, + 0xcc, 0x15, 0x96, 0xcf, 0xcd, 0xd6, 0x8a, 0xdd, 0x02, 0xa7, 0x1c, 0x84, 0xe6, 0x09, 0xb7, 0x62, + 0x86, 0x4d, 0xce, 0xe8, 0xdd, 0x22, 0x49, 0xaa, 0x98, 0x5b, 0xad, 0x95, 0x72, 0x2a, 0x33, 0xaa, + 0x49, 0x0d, 0xda, 0x38, 0xcc, 0xa9, 0x44, 0x11, 0xa6, 0xa4, 0xd4, 0xcd, 0x20, 0x6a, 0xcb, 0xc0, + 0x9a, 0x31, 0x67, 0x64, 0x47, 0x80, 0x3a, 0xe7, 0xe2, 0x80, 0x09, 0x28, 0xd3, 0x50, 0x71, 0x5a, + 0x71, 0xd0, 0xa0, 0xd3, 0x24, 0xce, 0xc7, 0x75, 0x8a, 0x8d, 0x04, 0x60, 0x8d, 0x63, 0x7f, 0xba, + 0x04, 0xa9, 0xa2, 0x0d, 0x68, 0x07, 0x2a, 0xaa, 0x6c, 0x43, 0x3e, 0x09, 0x9d, 0x7a, 0x45, 0xa9, + 0xc1, 0xa8, 0x26, 0xac, 0x99, 0xa1, 0x0d, 0xe9, 0x55, 0xe4, 0x5f, 0xfb, 0xf3, 0x69, 0xaf, 0xe2, + 0x4f, 0xf7, 0x76, 0xc8, 0x44, 0xd7, 0xea, 0x34, 0x2f, 0xd3, 0x37, 0xb5, 0xaf, 0x03, 0x72, 0xbf, + 0xbb, 0xbd, 0x3f, 0x28, 0xee, 0xe1, 0xc2, 0x24, 0x6a, 0x79, 0xb1, 0x58, 0x0d, 0xcf, 0xe7, 0xf8, + 0x95, 0x71, 0xc2, 0xba, 0xf8, 0x11, 0xff, 0x8f, 0x0d, 0xa6, 0x49, 0x37, 0x71, 0xff, 0x91, 0xba, + 0x89, 0x07, 0x72, 0x75, 0x13, 0x9f, 0x01, 0x60, 0x6b, 0x9b, 0x07, 0xca, 0x97, 0x99, 0xf7, 0x4e, + 0xa9, 0x18, 0xac, 0x20, 0xd8, 0xc0, 0xb2, 0x7f, 0x14, 0x92, 0xd5, 0xbb, 0xd0, 0xa4, 0x2c, 0x16, + 0xc6, 0x0f, 0xc0, 0x58, 0x8e, 0x62, 0xa2, 0xae, 0xd7, 0x6f, 0x58, 0x60, 0x96, 0x18, 0x43, 0x2f, + 0xf3, 0x5a, 0x66, 0x56, 0x1e, 0x07, 0x2a, 0x06, 0xdd, 0xa9, 0x25, 0xa7, 0x99, 0x0a, 0xee, 0x91, + 0x05, 0xcd, 0x26, 0xde, 0x02, 0x65, 0x09, 0x3d, 0x90, 0xb1, 0xfc, 0x7e, 0x38, 0x2e, 0xeb, 0x1d, + 0xc8, 0xb3, 0x0f, 0x71, 0xc8, 0xbe, 0xbf, 0x4b, 0x4d, 0xfa, 0xc9, 0x0a, 0xdd, 0xfc, 0x64, 0x6a, + 0xf7, 0x5f, 0xec, 0x5a, 0xa5, 0xfc, 0x37, 0x2d, 0x38, 0x9d, 0x1e, 0x40, 0xb4, 0x14, 0xf8, 0x6e, + 0x1c, 0x84, 0x55, 0x12, 0xc7, 0xae, 0xbf, 0xc1, 0x4a, 0xce, 0xde, 0x70, 0x42, 0x79, 0xed, 0x10, + 0x13, 0x94, 0xd7, 0x9c, 0xd0, 0xc7, 0xac, 0x15, 0xb5, 0xa1, 0x9f, 0x47, 0x16, 0x8b, 0x5d, 0xd0, + 0x21, 0xbf, 0x8d, 0x8c, 0xe9, 0xd0, 0xdb, 0x30, 0x1e, 0xd5, 0x8c, 0x05, 0x43, 0xfb, 0xbb, 0x16, + 0xa0, 0xe5, 0x6d, 0x12, 0x86, 0x6e, 0xdd, 0x88, 0x85, 0x66, 0xf7, 0x59, 0x1a, 0xf7, 0x56, 0x9a, + 0xd5, 0x38, 0x52, 0xf7, 0x59, 0x1a, 0xff, 0xb2, 0xef, 0xb3, 0x2c, 0x1c, 0xec, 0x3e, 0x4b, 0xb4, + 0x0c, 0x27, 0x1b, 0x7c, 0x1b, 0xc7, 0xef, 0x88, 0xe3, 0x7b, 0x3a, 0x95, 0x38, 0x7e, 0xea, 0xe6, + 0xee, 0xe4, 0xc9, 0xa5, 0x2c, 0x04, 0x9c, 0xdd, 0xcf, 0x7e, 0x0b, 0x20, 0x1e, 0x02, 0x3d, 0x97, + 0x15, 0xc5, 0xd9, 0xd5, 0xad, 0x65, 0x7f, 0xbe, 0x04, 0xa3, 0xa9, 0x4b, 0x29, 0xe8, 0x16, 0xba, + 0x33, 0x6c, 0xf4, 0xd0, 0xfa, 0xbb, 0x73, 0x78, 0x3d, 0x05, 0xa2, 0xfa, 0x50, 0x72, 0xfd, 0x66, + 0x2b, 0xce, 0xa7, 0x6e, 0x05, 0x1f, 0xc4, 0x02, 0x25, 0x68, 0xb8, 0xe1, 0xe9, 0x5f, 0xcc, 0xd9, + 0xe4, 0x19, 0xd6, 0x9a, 0xd8, 0xe4, 0xf4, 0xdd, 0x25, 0x37, 0xcb, 0x07, 0x75, 0x90, 0x69, 0x29, + 0x0f, 0x87, 0x6d, 0x6a, 0xb1, 0x1c, 0x75, 0x64, 0xd1, 0x97, 0x0b, 0x30, 0x68, 0xbc, 0x34, 0xf4, + 0x4b, 0xc9, 0x02, 0x9c, 0x56, 0x7e, 0x8f, 0xc4, 0xe8, 0x4f, 0xe9, 0x12, 0x9b, 0xfc, 0x91, 0x1e, + 0xed, 0xac, 0xbd, 0x79, 0x6b, 0x77, 0xf2, 0x58, 0xaa, 0xba, 0x66, 0xa2, 0x1e, 0xe7, 0xc4, 0xfb, + 0x60, 0x34, 0x45, 0x26, 0xe3, 0x91, 0x57, 0xcd, 0x47, 0x3e, 0xb4, 0xbb, 0xcf, 0x9c, 0xb2, 0x2f, + 0xd1, 0x29, 0x13, 0xe9, 0xf2, 0x81, 0x47, 0x7a, 0xf0, 0x6d, 0xa7, 0xf6, 0x17, 0x85, 0x1e, 0xab, + 0x62, 0x3c, 0x06, 0xe5, 0x66, 0xe0, 0xb9, 0x35, 0x57, 0xd5, 0xef, 0x66, 0x75, 0x38, 0x56, 0x44, + 0x1b, 0x56, 0x50, 0x74, 0x03, 0x2a, 0xd7, 0x6f, 0xc4, 0xfc, 0x54, 0x4d, 0x9c, 0x1b, 0xe4, 0x75, + 0x98, 0xa6, 0x8c, 0x16, 0x75, 0x6c, 0x87, 0x35, 0x2f, 0x64, 0x43, 0x3f, 0x53, 0x82, 0x32, 0x75, + 0x8e, 0x9d, 0x69, 0x30, 0xed, 0x18, 0x61, 0x01, 0xb1, 0xff, 0xfd, 0x20, 0x9c, 0xc8, 0xba, 0x19, + 0x08, 0xbd, 0x17, 0xfa, 0xf9, 0x18, 0xf3, 0xb9, 0x7c, 0x2e, 0x8b, 0xc7, 0x79, 0x46, 0x50, 0x0c, + 0x8b, 0xfd, 0xc6, 0x82, 0xa7, 0xe0, 0xee, 0x39, 0x6b, 0x62, 0x85, 0x1c, 0x0d, 0xf7, 0x45, 0x47, + 0x73, 0x5f, 0x74, 0x38, 0x77, 0xcf, 0x59, 0x43, 0x3b, 0x50, 0xda, 0x70, 0x63, 0xe2, 0x08, 0xe7, + 0xcc, 0xb5, 0x23, 0x61, 0x4e, 0x1c, 0x6e, 0xa5, 0xb1, 0x9f, 0x98, 0x33, 0x44, 0x5f, 0xb4, 0x60, + 0x74, 0x2d, 0x59, 0x8e, 0x47, 0x08, 0x4f, 0xe7, 0x08, 0x6e, 0x7f, 0x4a, 0x32, 0xe2, 0x17, 0xba, + 0xa6, 0x1a, 0x71, 0x7a, 0x38, 0xe8, 0xc3, 0x16, 0x0c, 0xac, 0xbb, 0x9e, 0x71, 0xbd, 0xc6, 0x11, + 0xbc, 0x9c, 0x73, 0x8c, 0x81, 0xde, 0x71, 0xf0, 0xff, 0x11, 0x96, 0x9c, 0xbb, 0x69, 0xaa, 0xfe, + 0xc3, 0x6a, 0xaa, 0x81, 0xbb, 0xa4, 0xa9, 0x3e, 0x66, 0x41, 0x45, 0xcd, 0xb4, 0x28, 0x6b, 0xf2, + 0x8e, 0x23, 0x7c, 0xe5, 0xdc, 0x23, 0xa5, 0xfe, 0x62, 0xcd, 0x1c, 0xbd, 0x6a, 0xc1, 0xa0, 0xf3, + 0x4a, 0x2b, 0x24, 0x75, 0xb2, 0x1d, 0x34, 0x23, 0x51, 0x6f, 0xf4, 0xc5, 0xfc, 0x07, 0x33, 0x43, + 0x99, 0xcc, 0x93, 0xed, 0xe5, 0x66, 0x24, 0xd2, 0x7a, 0x75, 0x03, 0x36, 0x87, 0x80, 0x7e, 0x56, + 0xeb, 0x71, 0xc8, 0xa3, 0xea, 0x74, 0xd6, 0x68, 0x7a, 0xca, 0x52, 0x27, 0xf0, 0x40, 0x2d, 0xf0, + 0x63, 0xd7, 0x6f, 0x91, 0x65, 0x1f, 0x93, 0x66, 0x70, 0x39, 0x88, 0xcf, 0x05, 0x2d, 0xbf, 0x7e, + 0x36, 0x0c, 0x83, 0x90, 0xd5, 0x6d, 0x31, 0xee, 0x1c, 0x9d, 0xeb, 0x8e, 0x8a, 0xf7, 0xa2, 0x73, + 0x18, 0x9b, 0x61, 0xb7, 0x00, 0x93, 0xfb, 0x4c, 0x36, 0x7a, 0x16, 0x86, 0x82, 0x70, 0xc3, 0xf1, + 0xdd, 0x57, 0xcc, 0x52, 0x64, 0xca, 0x20, 0x5d, 0x36, 0x60, 0x38, 0x81, 0x69, 0xd6, 0xa8, 0x29, + 0xec, 0x53, 0xa3, 0xe6, 0x34, 0xf4, 0x85, 0xa4, 0x19, 0xa4, 0xf7, 0x55, 0x2c, 0x13, 0x8f, 0x41, + 0xd0, 0x43, 0x50, 0x74, 0x9a, 0xae, 0x70, 0x2e, 0xaa, 0xed, 0xe2, 0xcc, 0xca, 0x02, 0xa6, 0xed, + 0x89, 0x92, 0x59, 0xa5, 0x3b, 0x52, 0x32, 0x8b, 0x6a, 0x4c, 0x71, 0x7c, 0xd6, 0xaf, 0x35, 0x66, + 0xf2, 0x58, 0xcb, 0x7e, 0xad, 0x08, 0x0f, 0xed, 0xf9, 0x69, 0xe9, 0x08, 0x6d, 0x6b, 0x8f, 0x08, + 0x6d, 0x39, 0x3d, 0x85, 0xfd, 0xa6, 0xa7, 0xd8, 0x65, 0x7a, 0x3e, 0x4c, 0x25, 0x86, 0x2c, 0xe1, + 0x96, 0xcf, 0xd5, 0xe7, 0xdd, 0x2a, 0xc2, 0x09, 0x61, 0x21, 0xa1, 0x58, 0xf3, 0xa5, 0xdb, 0xa5, + 0x44, 0x7d, 0x96, 0x52, 0x1e, 0x1a, 0xb3, 0x6b, 0x19, 0x35, 0x2e, 0x26, 0xba, 0x15, 0x7d, 0xb1, + 0x7f, 0xbb, 0x0f, 0x1e, 0xe9, 0x41, 0xd1, 0x99, 0xab, 0xd8, 0xea, 0x71, 0x15, 0x7f, 0x9f, 0xbf, + 0xa6, 0x8f, 0x66, 0xbe, 0x26, 0x9c, 0xff, 0x6b, 0xda, 0xfb, 0x0d, 0xb1, 0x13, 0x08, 0x3f, 0x22, + 0xb5, 0x56, 0xc8, 0xb3, 0x55, 0x8c, 0x34, 0xdd, 0x05, 0xd1, 0x8e, 0x15, 0x06, 0xdd, 0xfe, 0xd6, + 0x1c, 0xfa, 0xf9, 0x0f, 0xe4, 0x54, 0x8f, 0xc3, 0xcc, 0xf8, 0xe5, 0xd6, 0xd7, 0xdc, 0x0c, 0x95, + 0x00, 0x9c, 0x8d, 0xfd, 0x55, 0x0b, 0x26, 0xba, 0x5b, 0x23, 0xe8, 0x49, 0x18, 0x5c, 0x63, 0xb1, + 0x83, 0x4b, 0x2c, 0x3e, 0x49, 0x2c, 0x1d, 0xf6, 0xbc, 0xba, 0x19, 0x9b, 0x38, 0x68, 0x0e, 0xc6, + 0xcc, 0xa0, 0xc3, 0x25, 0x23, 0xb0, 0x89, 0xf9, 0x4b, 0x56, 0xd3, 0x40, 0xdc, 0x89, 0x8f, 0xa6, + 0x00, 0x62, 0x37, 0xf6, 0x08, 0xef, 0xcd, 0x17, 0x1a, 0x73, 0x28, 0xae, 0xaa, 0x56, 0x6c, 0x60, + 0xd8, 0xdf, 0x2b, 0x66, 0x3f, 0x06, 0xb7, 0x72, 0x0f, 0xb2, 0xfa, 0xc5, 0xda, 0x2e, 0xf4, 0x20, + 0xa1, 0x8b, 0x77, 0x5a, 0x42, 0xf7, 0x75, 0x93, 0xd0, 0x68, 0x1e, 0x8e, 0x19, 0xb7, 0x98, 0xf2, + 0x8a, 0x2e, 0xfc, 0x50, 0x4a, 0x95, 0x63, 0x5b, 0x49, 0xc1, 0x71, 0x47, 0x8f, 0x7b, 0x7c, 0xa9, + 0x7e, 0xad, 0x00, 0xa7, 0xba, 0x6e, 0x2c, 0xee, 0x90, 0x06, 0x32, 0x5f, 0x7f, 0xdf, 0x9d, 0x79, + 0xfd, 0xe6, 0x4b, 0x29, 0xed, 0xfb, 0x52, 0x7a, 0x51, 0xe7, 0x7f, 0x5c, 0xe8, 0xfa, 0xb1, 0xd0, + 0x8d, 0xe8, 0x0f, 0xec, 0x4c, 0x3e, 0x07, 0xc3, 0x4e, 0xb3, 0xc9, 0xf1, 0x58, 0x22, 0x42, 0xaa, + 0x44, 0xe4, 0x8c, 0x09, 0xc4, 0x49, 0xdc, 0x9e, 0x26, 0xf6, 0x4f, 0x2d, 0xa8, 0x60, 0xb2, 0xce, + 0x25, 0x1c, 0xba, 0x2e, 0xa6, 0xc8, 0xca, 0xa3, 0x4e, 0x3f, 0x9d, 0xd8, 0xc8, 0x65, 0xc5, 0xeb, + 0xb3, 0x26, 0xfb, 0xb0, 0x05, 0x07, 0xd4, 0xdd, 0xa7, 0xc5, 0xee, 0x77, 0x9f, 0xda, 0x5f, 0xa9, + 0xd0, 0xc7, 0x6b, 0x06, 0x73, 0x21, 0xa9, 0x47, 0xf4, 0xfd, 0xb6, 0x42, 0x4f, 0x2c, 0x12, 0xf5, + 0x7e, 0xaf, 0xe0, 0x45, 0x4c, 0xdb, 0x13, 0xe7, 0x93, 0x85, 0x03, 0x15, 0xc8, 0x2b, 0xee, 0x5b, + 0x20, 0xef, 0x39, 0x18, 0x8e, 0xa2, 0xcd, 0x95, 0xd0, 0xdd, 0x76, 0x62, 0x72, 0x89, 0xc8, 0x4a, + 0x3a, 0xba, 0x58, 0x54, 0xf5, 0x82, 0x06, 0xe2, 0x24, 0x2e, 0x3a, 0x0f, 0x63, 0xba, 0x4c, 0x1d, + 0x09, 0x63, 0x96, 0xe1, 0xc7, 0x57, 0x82, 0xaa, 0x92, 0xa2, 0x0b, 0xdb, 0x09, 0x04, 0xdc, 0xd9, + 0x87, 0xca, 0xdc, 0x44, 0x23, 0x1d, 0x48, 0x7f, 0x52, 0xe6, 0x26, 0xe8, 0xd0, 0xb1, 0x74, 0xf4, + 0x40, 0x4b, 0x70, 0x9c, 0x2f, 0x8c, 0x99, 0x66, 0xd3, 0x78, 0xa2, 0x81, 0x64, 0x71, 0xf4, 0xf3, + 0x9d, 0x28, 0x38, 0xab, 0x1f, 0x7a, 0x06, 0x06, 0x55, 0xf3, 0xc2, 0xbc, 0x38, 0x5a, 0x53, 0xae, + 0x3d, 0x45, 0x66, 0xa1, 0x8e, 0x4d, 0x3c, 0xf4, 0x76, 0xb8, 0x5f, 0xff, 0xe5, 0x19, 0xe3, 0xfc, + 0xbc, 0x79, 0x5e, 0x54, 0x00, 0x55, 0x77, 0x6f, 0x9d, 0xcf, 0x44, 0xab, 0xe3, 0x6e, 0xfd, 0xd1, + 0x1a, 0x4c, 0x28, 0xd0, 0x59, 0x3f, 0x66, 0x39, 0x9d, 0x11, 0x99, 0x75, 0x22, 0x16, 0x39, 0x01, + 0xec, 0x39, 0x6d, 0x41, 0x7d, 0xe2, 0xbc, 0x1b, 0x5f, 0xc8, 0xc2, 0xc4, 0x8b, 0x78, 0x0f, 0x2a, + 0x68, 0x1a, 0x2a, 0xc4, 0x77, 0xd6, 0x3c, 0xb2, 0x3c, 0xb7, 0x20, 0x76, 0xa4, 0x3a, 0x19, 0x40, + 0x02, 0xb0, 0xc6, 0x51, 0xe1, 0xec, 0x43, 0xdd, 0xc2, 0xd9, 0xd1, 0x0a, 0x9c, 0xd8, 0xa8, 0x35, + 0xa9, 0x95, 0xe9, 0xd6, 0xc8, 0x4c, 0x8d, 0x45, 0xef, 0xd2, 0x17, 0xc3, 0xab, 0xd6, 0xab, 0xbc, + 0xa0, 0xf3, 0x73, 0x2b, 0x1d, 0x38, 0x38, 0xb3, 0x27, 0x8b, 0xf2, 0x0e, 0x83, 0x9d, 0xf6, 0xf8, + 0xf1, 0x54, 0x94, 0x37, 0x6d, 0xc4, 0x1c, 0x86, 0x2e, 0x02, 0x62, 0xb9, 0x71, 0x17, 0xe2, 0xb8, + 0xa9, 0xcc, 0xda, 0xf1, 0x13, 0xc9, 0x7a, 0x80, 0xe7, 0x3a, 0x30, 0x70, 0x46, 0x2f, 0x6a, 0xf5, + 0xf8, 0x01, 0xa3, 0x3e, 0x7e, 0x7f, 0xd2, 0xea, 0xb9, 0xcc, 0x9b, 0xb1, 0x84, 0xa3, 0x77, 0xc2, + 0x78, 0x2b, 0x22, 0x6c, 0xc3, 0x7c, 0x2d, 0x08, 0xb7, 0xbc, 0xc0, 0xa9, 0x2f, 0xb0, 0x4b, 0x56, + 0xe3, 0xf6, 0xf8, 0x38, 0x63, 0x7e, 0x5a, 0xf4, 0x1d, 0xbf, 0xd2, 0x05, 0x0f, 0x77, 0xa5, 0x90, + 0x2e, 0x68, 0x79, 0xaa, 0xc7, 0x82, 0x96, 0x2b, 0x70, 0x42, 0xea, 0xb5, 0xe5, 0xb9, 0x05, 0xf5, + 0xd0, 0xe3, 0x13, 0xc9, 0x5b, 0xdb, 0x16, 0x32, 0x70, 0x70, 0x66, 0x4f, 0xfb, 0x4f, 0x2c, 0x18, + 0x56, 0x12, 0xec, 0x0e, 0xe4, 0xe8, 0x7a, 0xc9, 0x1c, 0xdd, 0xf3, 0x87, 0xd7, 0x01, 0x6c, 0xe4, + 0x5d, 0x32, 0x4a, 0x3e, 0x3b, 0x0c, 0xa0, 0xf5, 0x84, 0x52, 0xd1, 0x56, 0x57, 0x15, 0x7d, 0xcf, + 0xca, 0xe8, 0xac, 0x02, 0x85, 0xa5, 0xbb, 0x5b, 0xa0, 0xb0, 0x0a, 0x27, 0xe5, 0x92, 0xe2, 0x47, + 0xca, 0x17, 0x82, 0x48, 0x89, 0x7c, 0xe3, 0x1a, 0xbe, 0x85, 0x2c, 0x24, 0x9c, 0xdd, 0x37, 0x61, + 0xdb, 0x0d, 0xec, 0x6b, 0xdb, 0x29, 0x29, 0xb7, 0xb8, 0x2e, 0x2f, 0xc9, 0x4c, 0x49, 0xb9, 0xc5, + 0x73, 0x55, 0xac, 0x71, 0xb2, 0x55, 0x5d, 0x25, 0x27, 0x55, 0x07, 0x07, 0x56, 0x75, 0x52, 0xe8, + 0x0e, 0x76, 0x15, 0xba, 0xf2, 0xe8, 0x6a, 0xa8, 0xeb, 0xd1, 0xd5, 0x5b, 0x61, 0xc4, 0xf5, 0x37, + 0x49, 0xe8, 0xc6, 0xa4, 0xce, 0xbe, 0x05, 0x26, 0x90, 0xcb, 0xda, 0xd0, 0x59, 0x48, 0x40, 0x71, + 0x0a, 0x3b, 0xa9, 0x29, 0x46, 0x7a, 0xd0, 0x14, 0x5d, 0xf4, 0xf3, 0x68, 0x3e, 0xfa, 0xf9, 0xd8, + 0xe1, 0xf5, 0xf3, 0xd8, 0x91, 0xea, 0x67, 0x94, 0x8b, 0x7e, 0xee, 0x49, 0xf5, 0x19, 0x9b, 0xf4, + 0x13, 0xfb, 0x6c, 0xd2, 0xbb, 0x29, 0xe7, 0x93, 0xb7, 0xad, 0x9c, 0xb3, 0xf5, 0xee, 0x7d, 0xaf, + 0xeb, 0xdd, 0x5c, 0xf4, 0xee, 0xc7, 0x0a, 0x70, 0x52, 0x6b, 0x26, 0x2a, 0x0f, 0xdc, 0x75, 0x2a, + 0x9b, 0xd9, 0xcd, 0xd3, 0xfc, 0xc0, 0xdb, 0xc8, 0x0c, 0xd7, 0xb9, 0xf1, 0x0a, 0x82, 0x0d, 0x2c, + 0x96, 0x60, 0x4d, 0x42, 0x76, 0xe7, 0x49, 0x5a, 0x6d, 0xcd, 0x89, 0x76, 0xac, 0x30, 0xe8, 0x24, + 0xd0, 0xdf, 0xa2, 0xbe, 0x47, 0xba, 0x9a, 0xf6, 0x9c, 0x06, 0x61, 0x13, 0x0f, 0x3d, 0xc6, 0x99, + 0x30, 0x91, 0x49, 0x55, 0xd7, 0x10, 0xdf, 0x56, 0x2a, 0x29, 0xa9, 0xa0, 0x72, 0x38, 0xac, 0x00, + 0x40, 0xa9, 0x73, 0x38, 0x2c, 0x76, 0x54, 0x61, 0xd8, 0xff, 0xd3, 0x82, 0x53, 0x99, 0x53, 0x71, + 0x07, 0xcc, 0x91, 0x9d, 0xa4, 0x39, 0x52, 0xcd, 0x6b, 0x4b, 0x6a, 0x3c, 0x45, 0x17, 0xd3, 0xe4, + 0x3f, 0x59, 0x30, 0xa2, 0xf1, 0xef, 0xc0, 0xa3, 0xba, 0xc9, 0x47, 0xcd, 0x6f, 0xf7, 0x5d, 0xe9, + 0x78, 0xb6, 0xdf, 0x2b, 0x80, 0xaa, 0x70, 0x3f, 0x53, 0x93, 0xf7, 0x87, 0xec, 0x13, 0x82, 0xd1, + 0x86, 0x7e, 0x16, 0x41, 0x12, 0xe5, 0x13, 0x1d, 0x97, 0xe4, 0xcf, 0xa2, 0x51, 0xf4, 0x81, 0x1e, + 0xfb, 0x1b, 0x61, 0xc1, 0x90, 0xdd, 0xc8, 0xc3, 0x8b, 0x87, 0xd7, 0x45, 0x9e, 0xb0, 0xbe, 0x91, + 0x47, 0xb4, 0x63, 0x85, 0x41, 0x15, 0xa6, 0x5b, 0x0b, 0xfc, 0x39, 0xcf, 0x89, 0x22, 0x61, 0xc3, + 0x29, 0x85, 0xb9, 0x20, 0x01, 0x58, 0xe3, 0xb0, 0xe0, 0x12, 0x37, 0x6a, 0x7a, 0x4e, 0xdb, 0xf0, + 0xb1, 0x18, 0x75, 0xac, 0x14, 0x08, 0x9b, 0x78, 0x76, 0x03, 0xc6, 0x93, 0x0f, 0x31, 0x4f, 0xd6, + 0x59, 0x64, 0x77, 0x4f, 0xd3, 0x39, 0x0d, 0x15, 0x87, 0xf5, 0x5a, 0x6c, 0x39, 0x42, 0x26, 0xe8, + 0xf8, 0x66, 0x09, 0xc0, 0x1a, 0xc7, 0xfe, 0xe7, 0x16, 0x1c, 0xcf, 0x98, 0xb4, 0x1c, 0xf3, 0xb0, + 0x63, 0x2d, 0x6d, 0xb2, 0x4c, 0x9d, 0x1f, 0x81, 0x81, 0x3a, 0x59, 0x77, 0x64, 0xec, 0xb0, 0x99, + 0x6a, 0xc0, 0x9b, 0xb1, 0x84, 0xdb, 0xbf, 0x55, 0x80, 0xd1, 0xe4, 0x58, 0x23, 0x96, 0xdb, 0xc8, + 0xa7, 0xc9, 0x8d, 0x6a, 0xc1, 0x36, 0x09, 0xdb, 0xf4, 0xc9, 0xad, 0x54, 0x6e, 0x63, 0x07, 0x06, + 0xce, 0xe8, 0xc5, 0xee, 0xb7, 0xa8, 0xab, 0xd9, 0x96, 0x2b, 0xf2, 0x6a, 0x9e, 0x2b, 0x52, 0xbf, + 0x4c, 0x33, 0xce, 0x48, 0xb1, 0xc4, 0x26, 0x7f, 0x6a, 0x72, 0xb1, 0x64, 0x91, 0xd9, 0x96, 0xeb, + 0xc5, 0xae, 0x2f, 0x1e, 0x59, 0xac, 0x55, 0x65, 0x72, 0x2d, 0x75, 0xa2, 0xe0, 0xac, 0x7e, 0xf6, + 0x77, 0xfb, 0x40, 0xd5, 0x18, 0x61, 0x71, 0xa0, 0x39, 0x45, 0xd1, 0x1e, 0x34, 0x43, 0x56, 0xad, + 0xad, 0xbe, 0xbd, 0x02, 0xb3, 0xb8, 0x63, 0xce, 0xf4, 0xe0, 0xab, 0x09, 0x5b, 0xd5, 0x20, 0x6c, + 0xe2, 0xd1, 0x91, 0x78, 0xee, 0x36, 0xe1, 0x9d, 0xfa, 0x93, 0x23, 0x59, 0x94, 0x00, 0xac, 0x71, + 0x58, 0x39, 0x6b, 0x77, 0x7d, 0x5d, 0x78, 0x99, 0x74, 0x39, 0x6b, 0x77, 0x7d, 0x1d, 0x33, 0x08, + 0xbf, 0x01, 0x29, 0xd8, 0x12, 0xdb, 0x0c, 0xe3, 0x06, 0xa4, 0x60, 0x0b, 0x33, 0x08, 0x7d, 0x4b, + 0x7e, 0x10, 0x36, 0x1c, 0xcf, 0x7d, 0x85, 0xd4, 0x15, 0x17, 0xb1, 0xbd, 0x50, 0x6f, 0xe9, 0x72, + 0x27, 0x0a, 0xce, 0xea, 0x47, 0x17, 0x74, 0x33, 0x24, 0x75, 0xb7, 0x16, 0x9b, 0xd4, 0x20, 0xb9, + 0xa0, 0x57, 0x3a, 0x30, 0x70, 0x46, 0x2f, 0x34, 0x03, 0xa3, 0xb2, 0x46, 0x8c, 0xac, 0xab, 0x38, + 0x98, 0x2c, 0xce, 0x86, 0x93, 0x60, 0x9c, 0xc6, 0xa7, 0x42, 0xb2, 0x21, 0xaa, 0xc2, 0xb2, 0xdd, + 0x88, 0x21, 0x24, 0x65, 0xb5, 0x58, 0xac, 0x30, 0xec, 0x0f, 0x16, 0xa9, 0x52, 0xef, 0x52, 0x7c, + 0xf9, 0x8e, 0x45, 0x6d, 0x27, 0x57, 0x64, 0x5f, 0x0f, 0x2b, 0xf2, 0x69, 0x18, 0xba, 0x1e, 0x05, + 0xbe, 0x8a, 0x88, 0x2e, 0x75, 0x8d, 0x88, 0x36, 0xb0, 0xb2, 0x23, 0xa2, 0xfb, 0xf3, 0x8a, 0x88, + 0x1e, 0xb8, 0xcd, 0x88, 0xe8, 0x3f, 0x28, 0x81, 0xba, 0xe2, 0xf2, 0x32, 0x89, 0x6f, 0x04, 0xe1, + 0x96, 0xeb, 0x6f, 0xb0, 0x7a, 0x27, 0x5f, 0xb4, 0x64, 0xc9, 0x94, 0x45, 0x33, 0x53, 0x78, 0x3d, + 0xa7, 0x6b, 0x0a, 0x13, 0xcc, 0xa6, 0x56, 0x0d, 0x46, 0x3c, 0xb2, 0x26, 0x55, 0x9a, 0x45, 0x1c, + 0x1a, 0x24, 0x46, 0x84, 0xde, 0x07, 0x20, 0x5d, 0xf2, 0xeb, 0x52, 0x02, 0x2f, 0xe4, 0x33, 0x3e, + 0x4c, 0xd6, 0xb5, 0x49, 0xbd, 0xaa, 0x98, 0x60, 0x83, 0x21, 0xfa, 0x98, 0xce, 0xa2, 0xe6, 0xa9, + 0x53, 0xef, 0x3e, 0x92, 0xb9, 0xe9, 0x25, 0x87, 0x1a, 0xc3, 0x80, 0xeb, 0x6f, 0xd0, 0x75, 0x22, + 0x22, 0x47, 0xdf, 0x94, 0x55, 0x4e, 0x6b, 0x31, 0x70, 0xea, 0xb3, 0x8e, 0xe7, 0xf8, 0x35, 0x12, + 0x2e, 0x70, 0x74, 0xad, 0x41, 0x45, 0x03, 0x96, 0x84, 0x3a, 0xee, 0xe1, 0x2c, 0xf5, 0x72, 0x0f, + 0xe7, 0xc4, 0x4f, 0xc1, 0x58, 0xc7, 0xcb, 0x3c, 0x50, 0xca, 0xf4, 0x21, 0x0a, 0x69, 0xfd, 0x76, + 0xbf, 0x56, 0x5a, 0x97, 0x83, 0x3a, 0xbf, 0xd6, 0x31, 0xd4, 0x6f, 0x54, 0x98, 0xcc, 0x39, 0x2e, + 0x11, 0xa5, 0x66, 0x8c, 0x46, 0x6c, 0xb2, 0xa4, 0x6b, 0xb4, 0xe9, 0x84, 0xc4, 0x3f, 0xea, 0x35, + 0xba, 0xa2, 0x98, 0x60, 0x83, 0x21, 0xda, 0x4c, 0xe4, 0xf6, 0x9d, 0x3b, 0x7c, 0x6e, 0x1f, 0x2b, + 0x6e, 0x9a, 0x75, 0xfb, 0xd9, 0xab, 0x16, 0x8c, 0xf8, 0x89, 0x95, 0x9b, 0x4f, 0x38, 0x7f, 0xf6, + 0x57, 0xc1, 0x6f, 0x48, 0x4e, 0xb6, 0xe1, 0x14, 0xff, 0x2c, 0x95, 0x56, 0x3a, 0xa0, 0x4a, 0xd3, + 0xd7, 0xca, 0xf6, 0x77, 0xbb, 0x56, 0x16, 0xf9, 0xea, 0xbe, 0xef, 0x81, 0x3c, 0xca, 0x91, 0x24, + 0x2e, 0xfb, 0x86, 0x8c, 0x8b, 0xbe, 0xaf, 0x99, 0xa9, 0xbf, 0x07, 0xbf, 0xf7, 0x79, 0xb8, 0x5b, + 0x8a, 0xb0, 0xfd, 0x37, 0x7d, 0x70, 0x4c, 0xce, 0x88, 0x4c, 0x05, 0xa2, 0xfa, 0x91, 0xf3, 0xd5, + 0xb6, 0xb2, 0xd2, 0x8f, 0x17, 0x24, 0x00, 0x6b, 0x1c, 0x6a, 0x8f, 0xb5, 0x22, 0xb2, 0xdc, 0x24, + 0xfe, 0xa2, 0xbb, 0x16, 0x89, 0xe3, 0x77, 0xf5, 0xa1, 0x5c, 0xd1, 0x20, 0x6c, 0xe2, 0xb1, 0xfc, + 0x64, 0xc3, 0x68, 0x35, 0xf3, 0x93, 0x85, 0xa1, 0x2a, 0xe1, 0xe8, 0x73, 0x99, 0xb7, 0x41, 0xe4, + 0x93, 0x40, 0xdb, 0x91, 0x01, 0x75, 0xb0, 0x6b, 0x20, 0xd0, 0x3f, 0xb1, 0xe0, 0x24, 0x6f, 0x95, + 0x33, 0x79, 0xa5, 0x59, 0x77, 0x62, 0x12, 0xe5, 0x73, 0x73, 0x56, 0xc6, 0xf8, 0xb4, 0x17, 0x3d, + 0x8b, 0x2d, 0xce, 0x1e, 0x0d, 0xfa, 0xb4, 0x05, 0xa3, 0x5b, 0x89, 0x9a, 0x56, 0x52, 0x75, 0x1c, + 0xb6, 0xdc, 0x4c, 0x82, 0xa8, 0xfe, 0xd4, 0x92, 0xed, 0x11, 0x4e, 0x73, 0xb7, 0xff, 0xca, 0x02, + 0x53, 0x8c, 0xde, 0xf9, 0x52, 0x58, 0x07, 0x37, 0x05, 0xa5, 0x75, 0x59, 0xea, 0x6a, 0x5d, 0x3e, + 0x04, 0xc5, 0x96, 0x5b, 0x17, 0xfb, 0x0b, 0x7d, 0xe0, 0xbf, 0x30, 0x8f, 0x69, 0xbb, 0xfd, 0x9d, + 0x92, 0x76, 0x83, 0x88, 0xfc, 0xd4, 0x1f, 0x88, 0xc7, 0x5e, 0x57, 0x35, 0x6e, 0xf9, 0x93, 0x5f, + 0xee, 0xa8, 0x71, 0xfb, 0x13, 0x07, 0x4f, 0x3f, 0xe6, 0x13, 0xd4, 0xad, 0xc4, 0xed, 0xc0, 0x3e, + 0xb9, 0xc7, 0xd7, 0xa1, 0x4c, 0xb7, 0x60, 0xcc, 0x9f, 0x59, 0x4e, 0x0c, 0xaa, 0x7c, 0x41, 0xb4, + 0xdf, 0xda, 0x9d, 0xfc, 0xf1, 0x83, 0x0f, 0x4b, 0xf6, 0xc6, 0x8a, 0x3e, 0x8a, 0xa0, 0x42, 0x7f, + 0xb3, 0x34, 0x69, 0xb1, 0xb9, 0xbb, 0xa2, 0x64, 0xa6, 0x04, 0xe4, 0x92, 0x83, 0xad, 0xf9, 0x20, + 0x1f, 0x2a, 0x14, 0x91, 0x33, 0xe5, 0x7b, 0xc0, 0x15, 0x95, 0xac, 0x2c, 0x01, 0xb7, 0x76, 0x27, + 0x9f, 0x3b, 0x38, 0x53, 0xd5, 0x1d, 0x6b, 0x16, 0x86, 0x6a, 0x1c, 0xec, 0x7a, 0xe3, 0xfa, 0xff, + 0xe9, 0xd3, 0xeb, 0x5b, 0x94, 0x3f, 0xfe, 0x81, 0x58, 0xdf, 0xcf, 0xa6, 0xd6, 0xf7, 0xe9, 0x8e, + 0xf5, 0x3d, 0x42, 0xe7, 0x2c, 0xa3, 0x28, 0xf3, 0x9d, 0x36, 0x16, 0xf6, 0xf7, 0x49, 0x30, 0x2b, + 0xe9, 0xe5, 0x96, 0x1b, 0x92, 0x68, 0x25, 0x6c, 0xf9, 0xae, 0xbf, 0xc1, 0x96, 0x6c, 0xd9, 0xb4, + 0x92, 0x12, 0x60, 0x9c, 0xc6, 0xa7, 0x1b, 0x7f, 0xba, 0x2e, 0xae, 0x39, 0xdb, 0x7c, 0xe5, 0x19, + 0xa5, 0x27, 0xab, 0xa2, 0x1d, 0x2b, 0x0c, 0xb4, 0x09, 0x0f, 0x4a, 0x02, 0xf3, 0xc4, 0x23, 0xf4, + 0x81, 0x58, 0x20, 0x63, 0xd8, 0xe0, 0x69, 0x06, 0x3c, 0x16, 0xe5, 0x8d, 0x82, 0xc2, 0x83, 0x78, + 0x0f, 0x5c, 0xbc, 0x27, 0x25, 0xfb, 0x4b, 0x2c, 0x74, 0xc1, 0xa8, 0x16, 0x41, 0x57, 0x9f, 0xe7, + 0x36, 0x5c, 0x59, 0x21, 0x53, 0xad, 0xbe, 0x45, 0xda, 0x88, 0x39, 0x0c, 0xdd, 0x80, 0x81, 0x35, + 0x7e, 0x13, 0x7b, 0x3e, 0x37, 0x20, 0x89, 0x6b, 0xdd, 0x59, 0x75, 0x6c, 0x79, 0xc7, 0xfb, 0x2d, + 0xfd, 0x13, 0x4b, 0x6e, 0xf6, 0x37, 0x4a, 0x30, 0x2a, 0xc3, 0xcb, 0x2e, 0xb8, 0x11, 0x8b, 0x48, + 0x30, 0xaf, 0x0c, 0x28, 0xec, 0x7b, 0x65, 0xc0, 0xbb, 0x00, 0xea, 0xa4, 0xe9, 0x05, 0x6d, 0x66, + 0x1c, 0xf6, 0x1d, 0xd8, 0x38, 0x54, 0xfb, 0x89, 0x79, 0x45, 0x05, 0x1b, 0x14, 0x45, 0x59, 0x50, + 0x7e, 0x03, 0x41, 0xaa, 0x2c, 0xa8, 0x71, 0x4f, 0x5a, 0xff, 0x9d, 0xbd, 0x27, 0xcd, 0x85, 0x51, + 0x3e, 0x44, 0x55, 0x93, 0xe1, 0x36, 0x4a, 0x2f, 0xb0, 0xac, 0xb6, 0xf9, 0x24, 0x19, 0x9c, 0xa6, + 0x6b, 0x5e, 0x82, 0x56, 0xbe, 0xd3, 0x97, 0xa0, 0xbd, 0x19, 0x2a, 0xf2, 0x3d, 0x47, 0xe3, 0x15, + 0x5d, 0x2f, 0x48, 0x2e, 0x83, 0x08, 0x6b, 0x78, 0x47, 0x79, 0x19, 0xb8, 0x5b, 0xe5, 0x65, 0xec, + 0x57, 0x8b, 0x74, 0x57, 0xc1, 0xc7, 0x75, 0xe0, 0x3b, 0x04, 0x2f, 0x18, 0x77, 0x08, 0x1e, 0xec, + 0x7d, 0x96, 0x53, 0x77, 0x0d, 0x3e, 0x08, 0x7d, 0xb1, 0xb3, 0x21, 0x93, 0x70, 0x19, 0x74, 0xd5, + 0xd9, 0x88, 0x30, 0x6b, 0x3d, 0x48, 0x15, 0xe5, 0xe7, 0x60, 0x38, 0x72, 0x37, 0x7c, 0x27, 0x6e, + 0x85, 0xc4, 0x38, 0xbf, 0xd4, 0x41, 0x3a, 0x26, 0x10, 0x27, 0x71, 0xd1, 0x87, 0x2d, 0x80, 0x90, + 0xa8, 0x3d, 0x4b, 0x7f, 0x1e, 0x6b, 0x48, 0x89, 0x01, 0x49, 0xd7, 0x2c, 0x0b, 0xa2, 0xf6, 0x2a, + 0x06, 0x5b, 0xfb, 0xa3, 0x16, 0x8c, 0x75, 0xf4, 0x42, 0x4d, 0xe8, 0xaf, 0xb1, 0x9b, 0x1e, 0xf3, + 0xa9, 0x3b, 0x99, 0xbc, 0x35, 0x92, 0x2b, 0x27, 0xde, 0x86, 0x05, 0x1f, 0xfb, 0x2b, 0x43, 0x70, + 0xa2, 0x3a, 0xb7, 0x24, 0xef, 0xfd, 0x39, 0xb2, 0xac, 0xe2, 0x2c, 0x1e, 0x77, 0x2e, 0xab, 0xb8, + 0x0b, 0x77, 0xcf, 0xc8, 0x2a, 0xf6, 0x8c, 0xac, 0xe2, 0x64, 0x8a, 0x67, 0x31, 0x8f, 0x14, 0xcf, + 0xac, 0x11, 0xf4, 0x92, 0xe2, 0x79, 0x64, 0x69, 0xc6, 0x7b, 0x0e, 0xe8, 0x40, 0x69, 0xc6, 0x2a, + 0x07, 0x3b, 0x97, 0x8c, 0xb2, 0x2e, 0xaf, 0x2a, 0x33, 0x07, 0x5b, 0xe5, 0xbf, 0xf2, 0x6c, 0x49, + 0xa1, 0xf4, 0x5e, 0xcc, 0x7f, 0x00, 0x3d, 0xe4, 0xbf, 0x8a, 0x84, 0x4d, 0x33, 0xe7, 0x7a, 0x20, + 0x8f, 0x9c, 0xeb, 0xac, 0xe1, 0xec, 0x9b, 0x73, 0xfd, 0x1c, 0x0c, 0xd7, 0xbc, 0xc0, 0x27, 0x2b, + 0x61, 0x10, 0x07, 0xb5, 0x40, 0xde, 0xab, 0xad, 0xaf, 0x48, 0x34, 0x81, 0x38, 0x89, 0xdb, 0x2d, + 0x61, 0xbb, 0x72, 0xd8, 0x84, 0x6d, 0xb8, 0x4b, 0x09, 0xdb, 0x46, 0x4a, 0xf2, 0x60, 0x1e, 0x29, + 0xc9, 0x59, 0x6f, 0xa4, 0xa7, 0x94, 0xe4, 0xd7, 0xf8, 0xb5, 0xf2, 0x74, 0x33, 0xc2, 0xa5, 0x30, + 0x3b, 0xa2, 0x1b, 0x3c, 0xf3, 0xd2, 0x11, 0x2c, 0xd8, 0x6b, 0x55, 0xcd, 0x46, 0x5d, 0x35, 0xaf, + 0x9b, 0x70, 0x72, 0x20, 0x87, 0x49, 0x63, 0xfe, 0x7c, 0x01, 0x7e, 0x68, 0xdf, 0x21, 0xa0, 0x1b, + 0x00, 0xb1, 0xb3, 0x21, 0x16, 0xaa, 0x38, 0xc8, 0x3a, 0x64, 0x5c, 0xf1, 0xaa, 0xa4, 0x27, 0x52, + 0xec, 0x14, 0x79, 0x6c, 0xb0, 0x62, 0xe1, 0xc4, 0x81, 0xd7, 0x51, 0x32, 0x1a, 0x07, 0x1e, 0xc1, + 0x0c, 0x42, 0x0d, 0xa1, 0x90, 0x6c, 0x50, 0xe3, 0xbe, 0x98, 0x34, 0x84, 0x30, 0x6b, 0xc5, 0x02, + 0x8a, 0x9e, 0x81, 0x41, 0xc7, 0xf3, 0x78, 0xba, 0x1f, 0x89, 0xc4, 0xdd, 0xa5, 0xba, 0x76, 0xad, + 0x06, 0x61, 0x13, 0xcf, 0xfe, 0xcb, 0x02, 0x4c, 0xee, 0x23, 0x53, 0x3a, 0xd2, 0xbc, 0x4b, 0x3d, + 0xa7, 0x79, 0x8b, 0x74, 0xa5, 0xfe, 0x2e, 0xe9, 0x4a, 0xcf, 0xc0, 0x60, 0x4c, 0x9c, 0x86, 0x88, + 0x44, 0x4c, 0x97, 0x64, 0x5c, 0xd5, 0x20, 0x6c, 0xe2, 0x51, 0x29, 0x36, 0xe2, 0xd4, 0x6a, 0x24, + 0x8a, 0x64, 0x3e, 0x92, 0xf0, 0x72, 0xe7, 0x96, 0xec, 0xc4, 0x0e, 0x0f, 0x66, 0x12, 0x2c, 0x70, + 0x8a, 0x65, 0x7a, 0xc2, 0x2b, 0x3d, 0x4e, 0xf8, 0x2f, 0x17, 0xe0, 0xa1, 0x3d, 0xb5, 0x5b, 0xcf, + 0xa9, 0x62, 0xad, 0x88, 0x84, 0xe9, 0x85, 0x73, 0x25, 0x22, 0x21, 0x66, 0x10, 0x3e, 0x4b, 0xcd, + 0xa6, 0x8a, 0x22, 0xcf, 0x3f, 0xb7, 0x92, 0xcf, 0x52, 0x82, 0x05, 0x4e, 0xb1, 0xbc, 0xdd, 0x65, + 0xf9, 0x8d, 0x3e, 0x78, 0xa4, 0x07, 0x1b, 0x20, 0xc7, 0x1c, 0xd4, 0x64, 0x7e, 0x75, 0xf1, 0x2e, + 0xe5, 0x57, 0xdf, 0xde, 0x74, 0xbd, 0x9e, 0x96, 0xdd, 0x53, 0xae, 0xeb, 0x97, 0x0a, 0x30, 0xd1, + 0xdd, 0x60, 0x41, 0x3f, 0x09, 0xa3, 0xa1, 0x0a, 0x49, 0x34, 0x53, 0xb3, 0x8f, 0x73, 0x1f, 0x57, + 0x02, 0x84, 0xd3, 0xb8, 0x68, 0x0a, 0xa0, 0xe9, 0xc4, 0x9b, 0xd1, 0xd9, 0x1d, 0x37, 0x8a, 0x45, + 0x2d, 0xbb, 0x11, 0x7e, 0xf2, 0x2a, 0x5b, 0xb1, 0x81, 0x41, 0xd9, 0xb1, 0x7f, 0xf3, 0xc1, 0xe5, + 0x20, 0xe6, 0x9d, 0xf8, 0xd6, 0xf3, 0xb8, 0xbc, 0xe8, 0xd0, 0x00, 0xe1, 0x34, 0x2e, 0x65, 0xc7, + 0xce, 0xf6, 0xf9, 0x40, 0xfb, 0x74, 0x32, 0xf7, 0xa2, 0x6a, 0xc5, 0x06, 0x46, 0x3a, 0xe9, 0xbc, + 0xb4, 0x7f, 0xd2, 0xb9, 0xfd, 0xaf, 0x0b, 0x70, 0xaa, 0xab, 0xc1, 0xdb, 0x9b, 0x98, 0xba, 0xf7, + 0x12, 0xbf, 0x6f, 0xf3, 0x0b, 0x3b, 0x50, 0xc2, 0xb0, 0xfd, 0xa7, 0x5d, 0x56, 0x9a, 0x48, 0x06, + 0xbe, 0xfd, 0xba, 0x29, 0xf7, 0xde, 0x7c, 0x76, 0xe4, 0xff, 0xf6, 0x1d, 0x20, 0xff, 0x37, 0xf5, + 0x32, 0x4a, 0x3d, 0x6a, 0x87, 0xff, 0xda, 0xd7, 0x75, 0x7a, 0xe9, 0x06, 0xb9, 0xa7, 0x13, 0x84, + 0x79, 0x38, 0xe6, 0xfa, 0xec, 0xea, 0xda, 0x6a, 0x6b, 0x4d, 0x94, 0x37, 0xe3, 0x35, 0x7c, 0x55, + 0xf6, 0xcd, 0x42, 0x0a, 0x8e, 0x3b, 0x7a, 0xdc, 0x83, 0xf9, 0xd8, 0xb7, 0x37, 0xa5, 0x07, 0x94, + 0xdc, 0xcb, 0x70, 0x52, 0x4e, 0xc5, 0xa6, 0x13, 0x92, 0xba, 0x50, 0xb6, 0x91, 0xc8, 0xb7, 0x3a, + 0xc5, 0x73, 0xb6, 0x32, 0x10, 0x70, 0x76, 0x3f, 0x76, 0xcf, 0x68, 0xd0, 0x74, 0x6b, 0x62, 0x2b, + 0xa8, 0xef, 0x19, 0xa5, 0x8d, 0x98, 0xc3, 0xb4, 0xbe, 0xa8, 0xdc, 0x19, 0x7d, 0xf1, 0x2e, 0xa8, + 0xa8, 0xf9, 0xe6, 0x39, 0x15, 0x6a, 0x91, 0x77, 0xe4, 0x54, 0xa8, 0x15, 0x6e, 0x60, 0xed, 0x77, + 0x9d, 0xff, 0x53, 0x30, 0xa4, 0x7c, 0x81, 0xbd, 0xde, 0xf6, 0x6a, 0xff, 0xdf, 0x02, 0xa4, 0x2e, + 0x36, 0x43, 0x3b, 0x50, 0xa9, 0xcb, 0x0b, 0xf5, 0xf3, 0xa9, 0x21, 0xad, 0xee, 0xe7, 0xd7, 0x07, + 0x61, 0xaa, 0x09, 0x6b, 0x66, 0xe8, 0xbd, 0xbc, 0x5c, 0xb3, 0x60, 0x5d, 0xc8, 0x23, 0x27, 0xbf, + 0xaa, 0xe8, 0x99, 0xd7, 0x39, 0xca, 0x36, 0x6c, 0xf0, 0x43, 0x31, 0x54, 0x36, 0xe5, 0x05, 0x6e, + 0xf9, 0x88, 0x3b, 0x75, 0x1f, 0x1c, 0x37, 0xd1, 0xd4, 0x5f, 0xac, 0x19, 0xd9, 0x7f, 0x52, 0x80, + 0x13, 0xc9, 0x17, 0x20, 0x0e, 0x2e, 0x7f, 0xcd, 0x82, 0xfb, 0x3d, 0x27, 0x8a, 0xab, 0x2d, 0xb6, + 0x51, 0x58, 0x6f, 0x79, 0xcb, 0xa9, 0xca, 0xde, 0x87, 0x75, 0xb6, 0x28, 0xc2, 0xe9, 0x0b, 0xff, + 0x66, 0x1f, 0xb8, 0xb9, 0x3b, 0x79, 0xff, 0x62, 0x36, 0x73, 0xdc, 0x6d, 0x54, 0xe8, 0x55, 0x0b, + 0x8e, 0xd5, 0x5a, 0x61, 0x48, 0xfc, 0x58, 0x0f, 0x95, 0xbf, 0xc5, 0xcb, 0xb9, 0x4c, 0xa4, 0x1e, + 0xe0, 0x09, 0x2a, 0x50, 0xe7, 0x52, 0xbc, 0x70, 0x07, 0x77, 0xfb, 0x17, 0xa8, 0xe6, 0xec, 0xfa, + 0x9c, 0x7f, 0xcb, 0x6e, 0x28, 0xfc, 0xf3, 0x7e, 0x18, 0x4e, 0x94, 0x2f, 0x4f, 0x1c, 0xf6, 0x59, + 0xfb, 0x1e, 0xf6, 0xb1, 0x0c, 0xc1, 0x96, 0x2f, 0x2f, 0x6f, 0x37, 0x32, 0x04, 0x5b, 0x3e, 0xc1, + 0x1c, 0x26, 0xa6, 0x14, 0xb7, 0x7c, 0x91, 0x0b, 0x60, 0x4e, 0x29, 0x6e, 0xf9, 0x58, 0x40, 0xd1, + 0x07, 0x2c, 0x18, 0x62, 0x1f, 0x9f, 0x38, 0x2a, 0x15, 0x0a, 0xed, 0x62, 0x0e, 0x9f, 0xbb, 0x2c, + 0xd5, 0xcf, 0x62, 0x47, 0xcd, 0x16, 0x9c, 0xe0, 0x88, 0x3e, 0x62, 0x41, 0x45, 0xdd, 0x14, 0x2b, + 0xce, 0x46, 0xaa, 0xf9, 0x56, 0x87, 0x4f, 0x49, 0x3d, 0x55, 0xa6, 0x1b, 0x6b, 0xc6, 0x28, 0x52, + 0xe7, 0x98, 0x03, 0x47, 0x73, 0x8e, 0x09, 0x19, 0x67, 0x98, 0x6f, 0x86, 0x4a, 0xc3, 0xf1, 0xdd, + 0x75, 0x12, 0xc5, 0xfc, 0x68, 0x51, 0x5e, 0x06, 0x22, 0x1b, 0xb1, 0x86, 0x53, 0x63, 0x3f, 0x62, + 0x0f, 0x16, 0x1b, 0x67, 0x81, 0xcc, 0xd8, 0xaf, 0xea, 0x66, 0x6c, 0xe2, 0x98, 0x07, 0x97, 0x70, + 0x57, 0x0f, 0x2e, 0x07, 0xf7, 0x39, 0xb8, 0xac, 0xc2, 0x49, 0xa7, 0x15, 0x07, 0x17, 0x88, 0xe3, + 0xcd, 0xc4, 0x31, 0x69, 0x34, 0xe3, 0x88, 0x57, 0xbc, 0x1f, 0x62, 0x2e, 0x60, 0x15, 0xed, 0x56, + 0x25, 0xde, 0x7a, 0x07, 0x12, 0xce, 0xee, 0x6b, 0xff, 0x4b, 0x0b, 0x4e, 0x66, 0x2e, 0x85, 0x7b, + 0x37, 0xcf, 0xc0, 0xfe, 0x4c, 0x09, 0x8e, 0x67, 0x5c, 0x6e, 0x80, 0xda, 0xe6, 0x47, 0x62, 0xe5, + 0x11, 0xb2, 0x97, 0x8c, 0x40, 0x93, 0xef, 0x26, 0xe3, 0xcb, 0x38, 0x58, 0x2c, 0x82, 0x8e, 0x07, + 0x28, 0xde, 0xd9, 0x78, 0x00, 0x63, 0xad, 0xf7, 0xdd, 0xd5, 0xb5, 0x5e, 0xda, 0x67, 0xad, 0x7f, + 0xd9, 0x82, 0xf1, 0x46, 0x97, 0x9b, 0xca, 0xc4, 0x79, 0xd2, 0xd5, 0xa3, 0xb9, 0x07, 0x6d, 0xf6, + 0xc1, 0x9b, 0xbb, 0x93, 0x5d, 0x2f, 0x88, 0xc3, 0x5d, 0x47, 0x65, 0x7f, 0xb7, 0x08, 0xcc, 0x5e, + 0x63, 0x05, 0xac, 0xdb, 0xe8, 0xfd, 0xe6, 0x1d, 0x29, 0x56, 0x5e, 0xf7, 0x79, 0x70, 0xe2, 0xea, + 0x8e, 0x15, 0x3e, 0x83, 0x59, 0x57, 0xae, 0xa4, 0x25, 0x61, 0xa1, 0x07, 0x49, 0xe8, 0xc9, 0xcb, + 0x68, 0x8a, 0xf9, 0x5f, 0x46, 0x53, 0x49, 0x5f, 0x44, 0xb3, 0xf7, 0x2b, 0xee, 0xbb, 0x27, 0x5f, + 0xf1, 0xef, 0x58, 0x5c, 0xf0, 0xa4, 0xde, 0x82, 0x36, 0x37, 0xac, 0x3d, 0xcc, 0x8d, 0xc7, 0xa1, + 0x1c, 0x09, 0xc9, 0x2c, 0xcc, 0x12, 0x1d, 0x0a, 0x26, 0xda, 0xb1, 0xc2, 0xa0, 0xbb, 0x2e, 0xc7, + 0xf3, 0x82, 0x1b, 0x67, 0x1b, 0xcd, 0xb8, 0x2d, 0x0c, 0x14, 0xb5, 0x2d, 0x98, 0x51, 0x10, 0x6c, + 0x60, 0xa1, 0x47, 0xa0, 0x9f, 0x57, 0x9a, 0x10, 0xce, 0x9d, 0x41, 0xfa, 0x1d, 0xf2, 0x32, 0x14, + 0x75, 0x2c, 0x40, 0xf6, 0x26, 0x18, 0xbb, 0x8a, 0xdb, 0xbf, 0xfd, 0x59, 0xdd, 0x43, 0x5b, 0xe8, + 0x76, 0x0f, 0xad, 0xfd, 0x8f, 0x0a, 0x82, 0x15, 0xdf, 0x25, 0xe8, 0xc8, 0x40, 0xeb, 0x80, 0x91, + 0x81, 0xef, 0x05, 0xa8, 0x05, 0x8d, 0x26, 0xdd, 0x37, 0xaf, 0x06, 0xf9, 0x6c, 0xb6, 0xe6, 0x14, + 0x3d, 0x3d, 0xab, 0xba, 0x0d, 0x1b, 0xfc, 0x12, 0xa2, 0xbd, 0xb8, 0xaf, 0x68, 0x4f, 0x48, 0xb9, + 0xbe, 0xbd, 0xa5, 0x9c, 0xfd, 0x97, 0x16, 0x24, 0xac, 0x3e, 0xd4, 0x84, 0x12, 0x1d, 0x6e, 0x5b, + 0x08, 0x8c, 0xe5, 0xfc, 0x4c, 0x4c, 0x2a, 0xa9, 0xc5, 0x57, 0xc8, 0x7e, 0x62, 0xce, 0x08, 0x79, + 0x22, 0x0a, 0x32, 0x97, 0xcd, 0x8f, 0xc9, 0xf0, 0x42, 0x10, 0x6c, 0xf1, 0x60, 0x22, 0x1d, 0x51, + 0x69, 0x3f, 0x0b, 0x63, 0x1d, 0x83, 0x62, 0x37, 0x46, 0x07, 0x72, 0x07, 0x6f, 0x7c, 0x3d, 0xac, + 0xe0, 0x03, 0xe6, 0x30, 0xfb, 0x4b, 0x16, 0x1c, 0x4b, 0x93, 0x47, 0xaf, 0x59, 0x30, 0x16, 0xa5, + 0xe9, 0x1d, 0xd5, 0xdc, 0xa9, 0x6c, 0x87, 0x0e, 0x10, 0xee, 0x1c, 0x84, 0xfd, 0x3f, 0x84, 0x36, + 0xb8, 0xe6, 0xfa, 0xf5, 0xe0, 0x86, 0xb2, 0x93, 0xac, 0xae, 0x76, 0x12, 0x15, 0x0f, 0xb5, 0x4d, + 0x52, 0x6f, 0x79, 0x1d, 0x65, 0x28, 0xaa, 0xa2, 0x1d, 0x2b, 0x0c, 0x96, 0x75, 0xdf, 0x12, 0xfb, + 0xd6, 0xd4, 0xa2, 0x9c, 0x17, 0xed, 0x58, 0x61, 0xa0, 0xa7, 0x61, 0xc8, 0x78, 0x48, 0xb9, 0x2e, + 0xd9, 0xa6, 0xc3, 0xd0, 0xe0, 0x11, 0x4e, 0x60, 0xa1, 0x29, 0x00, 0x65, 0x73, 0x49, 0x8d, 0xcd, + 0x1c, 0xed, 0x4a, 0x30, 0x46, 0xd8, 0xc0, 0x60, 0x35, 0x2e, 0xbc, 0x56, 0xc4, 0x4e, 0x92, 0xfb, + 0xf5, 0x85, 0x0e, 0x73, 0xa2, 0x0d, 0x2b, 0x28, 0x15, 0x6e, 0x0d, 0xc7, 0x6f, 0x39, 0x1e, 0x9d, + 0x21, 0xe1, 0x3a, 0x53, 0x9f, 0xe1, 0x92, 0x82, 0x60, 0x03, 0x8b, 0x3e, 0x71, 0xec, 0x36, 0xc8, + 0x0b, 0x81, 0x2f, 0xa3, 0xd4, 0x75, 0x70, 0x81, 0x68, 0xc7, 0x0a, 0x03, 0x3d, 0x0b, 0x83, 0x8e, + 0x5f, 0xe7, 0x06, 0x62, 0x10, 0x8a, 0x33, 0x4a, 0xb5, 0xfb, 0xbc, 0x12, 0x91, 0x19, 0x0d, 0xc5, + 0x26, 0x6a, 0xfa, 0x36, 0x0b, 0xe8, 0xf1, 0xb6, 0xbc, 0xbf, 0xb0, 0x60, 0x54, 0x17, 0x2d, 0x62, + 0x1e, 0xb6, 0x84, 0x6b, 0xd1, 0xda, 0xd7, 0xb5, 0x98, 0xac, 0x5d, 0x52, 0xe8, 0xa9, 0x76, 0x89, + 0x59, 0x56, 0xa4, 0xb8, 0x67, 0x59, 0x91, 0x1f, 0x86, 0x81, 0x2d, 0xd2, 0x36, 0xea, 0x8f, 0x30, + 0xe5, 0x70, 0x89, 0x37, 0x61, 0x09, 0x43, 0x36, 0xf4, 0xd7, 0x1c, 0x55, 0xc3, 0x70, 0x48, 0xc4, + 0xa6, 0xcd, 0x30, 0x24, 0x01, 0xb1, 0x97, 0xa1, 0xa2, 0x0e, 0xf5, 0xa5, 0xa7, 0xcf, 0xca, 0xf6, + 0xf4, 0xf5, 0x54, 0xde, 0x60, 0x76, 0xed, 0xeb, 0xdf, 0x7b, 0xf8, 0x0d, 0x7f, 0xf4, 0xbd, 0x87, + 0xdf, 0xf0, 0xed, 0xef, 0x3d, 0xfc, 0x86, 0x0f, 0xdc, 0x7c, 0xd8, 0xfa, 0xfa, 0xcd, 0x87, 0xad, + 0x3f, 0xba, 0xf9, 0xb0, 0xf5, 0xed, 0x9b, 0x0f, 0x5b, 0xdf, 0xbd, 0xf9, 0xb0, 0xf5, 0xea, 0x7f, + 0x79, 0xf8, 0x0d, 0x2f, 0x64, 0xe6, 0x45, 0xd0, 0x1f, 0x4f, 0xd4, 0xea, 0xd3, 0xdb, 0x4f, 0xb1, + 0xd0, 0x7c, 0xfa, 0x3d, 0x4f, 0x1b, 0x8b, 0x78, 0x5a, 0x7e, 0xcf, 0xff, 0x2f, 0x00, 0x00, 0xff, + 0xff, 0x57, 0x39, 0xff, 0x8b, 0xc4, 0x04, 0x01, 0x00, } func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) { @@ -6302,6 +6376,43 @@ func (m *ApplicationDestinationServiceAccount) MarshalToSizedBuffer(dAtA []byte) return len(dAtA) - i, nil } +func (m *ApplicationLabelStats) 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 *ApplicationLabelStats) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ApplicationLabelStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Values) > 0 { + for iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Values[iNdEx]) + copy(dAtA[i:], m.Values[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *ApplicationList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6322,6 +6433,16 @@ func (m *ApplicationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.Stats.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a if len(m.Items) > 0 { for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { { @@ -6349,6 +6470,116 @@ func (m *ApplicationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ApplicationListStats) 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 *ApplicationListStats) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ApplicationListStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Labels) > 0 { + for iNdEx := len(m.Labels) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Labels[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Namespaces[iNdEx]) + copy(dAtA[i:], m.Namespaces[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx]))) + i-- + dAtA[i] = 0x32 + } + } + if len(m.Destinations) > 0 { + for iNdEx := len(m.Destinations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Destinations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + i = encodeVarintGenerated(dAtA, i, uint64(m.AutoSyncEnabledCount)) + i-- + dAtA[i] = 0x20 + if len(m.TotalByHealthStatus) > 0 { + keysForTotalByHealthStatus := make([]string, 0, len(m.TotalByHealthStatus)) + for k := range m.TotalByHealthStatus { + keysForTotalByHealthStatus = append(keysForTotalByHealthStatus, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForTotalByHealthStatus) + for iNdEx := len(keysForTotalByHealthStatus) - 1; iNdEx >= 0; iNdEx-- { + v := m.TotalByHealthStatus[github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode(keysForTotalByHealthStatus[iNdEx])] + baseI := i + i = encodeVarintGenerated(dAtA, i, uint64(v)) + i-- + dAtA[i] = 0x10 + i -= len(keysForTotalByHealthStatus[iNdEx]) + copy(dAtA[i:], keysForTotalByHealthStatus[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForTotalByHealthStatus[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x1a + } + } + if len(m.TotalBySyncStatus) > 0 { + keysForTotalBySyncStatus := make([]string, 0, len(m.TotalBySyncStatus)) + for k := range m.TotalBySyncStatus { + keysForTotalBySyncStatus = append(keysForTotalBySyncStatus, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForTotalBySyncStatus) + for iNdEx := len(keysForTotalBySyncStatus) - 1; iNdEx >= 0; iNdEx-- { + v := m.TotalBySyncStatus[SyncStatusCode(keysForTotalBySyncStatus[iNdEx])] + baseI := i + i = encodeVarintGenerated(dAtA, i, uint64(v)) + i-- + dAtA[i] = 0x10 + i -= len(keysForTotalBySyncStatus[iNdEx]) + copy(dAtA[i:], keysForTotalBySyncStatus[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForTotalBySyncStatus[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + i = encodeVarintGenerated(dAtA, i, uint64(m.Total)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + func (m *ApplicationMatchExpression) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -16291,61 +16522,125 @@ func (m *ApplicationDestinationServiceAccount) Size() (n int) { return n } -func (m *ApplicationList) Size() (n int) { +func (m *ApplicationLabelStats) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.ListMeta.Size() + l = len(m.Key) n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() + if len(m.Values) > 0 { + for _, s := range m.Values { + l = len(s) n += 1 + l + sovGenerated(uint64(l)) } } return n } -func (m *ApplicationMatchExpression) Size() (n int) { +func (m *ApplicationList) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Key) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Operator) + l = m.ListMeta.Size() n += 1 + l + sovGenerated(uint64(l)) - if len(m.Values) > 0 { - for _, s := range m.Values { - l = len(s) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() n += 1 + l + sovGenerated(uint64(l)) } } + l = m.Stats.Size() + n += 1 + l + sovGenerated(uint64(l)) return n } -func (m *ApplicationPreservedFields) Size() (n int) { +func (m *ApplicationListStats) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.Annotations) > 0 { - for _, s := range m.Annotations { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Total)) + if len(m.TotalBySyncStatus) > 0 { + for k, v := range m.TotalBySyncStatus { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + sovGenerated(uint64(v)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) } } - if len(m.Labels) > 0 { - for _, s := range m.Labels { - l = len(s) + if len(m.TotalByHealthStatus) > 0 { + for k, v := range m.TotalByHealthStatus { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + sovGenerated(uint64(v)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + n += 1 + sovGenerated(uint64(m.AutoSyncEnabledCount)) + if len(m.Destinations) > 0 { + for _, e := range m.Destinations { + l = e.Size() n += 1 + l + sovGenerated(uint64(l)) } } - return n + if len(m.Namespaces) > 0 { + for _, s := range m.Namespaces { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Labels) > 0 { + for _, e := range m.Labels { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ApplicationMatchExpression) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Operator) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Values) > 0 { + for _, s := range m.Values { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ApplicationPreservedFields) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Annotations) > 0 { + for _, s := range m.Annotations { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Labels) > 0 { + for _, s := range m.Labels { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n } func (m *ApplicationSet) Size() (n int) { @@ -20103,6 +20398,17 @@ func (this *ApplicationDestinationServiceAccount) String() string { }, "") return s } +func (this *ApplicationLabelStats) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ApplicationLabelStats{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Values:` + fmt.Sprintf("%v", this.Values) + `,`, + `}`, + }, "") + return s +} func (this *ApplicationList) String() string { if this == nil { return "nil" @@ -20115,6 +20421,53 @@ func (this *ApplicationList) String() string { s := strings.Join([]string{`&ApplicationList{`, `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, `Items:` + repeatedStringForItems + `,`, + `Stats:` + strings.Replace(strings.Replace(this.Stats.String(), "ApplicationListStats", "ApplicationListStats", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ApplicationListStats) String() string { + if this == nil { + return "nil" + } + repeatedStringForDestinations := "[]ApplicationDestination{" + for _, f := range this.Destinations { + repeatedStringForDestinations += strings.Replace(strings.Replace(f.String(), "ApplicationDestination", "ApplicationDestination", 1), `&`, ``, 1) + "," + } + repeatedStringForDestinations += "}" + repeatedStringForLabels := "[]ApplicationLabelStats{" + for _, f := range this.Labels { + repeatedStringForLabels += strings.Replace(strings.Replace(f.String(), "ApplicationLabelStats", "ApplicationLabelStats", 1), `&`, ``, 1) + "," + } + repeatedStringForLabels += "}" + keysForTotalBySyncStatus := make([]string, 0, len(this.TotalBySyncStatus)) + for k := range this.TotalBySyncStatus { + keysForTotalBySyncStatus = append(keysForTotalBySyncStatus, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForTotalBySyncStatus) + mapStringForTotalBySyncStatus := "map[SyncStatusCode]int64{" + for _, k := range keysForTotalBySyncStatus { + mapStringForTotalBySyncStatus += fmt.Sprintf("%v: %v,", k, this.TotalBySyncStatus[SyncStatusCode(k)]) + } + mapStringForTotalBySyncStatus += "}" + keysForTotalByHealthStatus := make([]string, 0, len(this.TotalByHealthStatus)) + for k := range this.TotalByHealthStatus { + keysForTotalByHealthStatus = append(keysForTotalByHealthStatus, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForTotalByHealthStatus) + mapStringForTotalByHealthStatus := "map[github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode]int64{" + for _, k := range keysForTotalByHealthStatus { + mapStringForTotalByHealthStatus += fmt.Sprintf("%v: %v,", k, this.TotalByHealthStatus[github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode(k)]) + } + mapStringForTotalByHealthStatus += "}" + s := strings.Join([]string{`&ApplicationListStats{`, + `Total:` + fmt.Sprintf("%v", this.Total) + `,`, + `TotalBySyncStatus:` + mapStringForTotalBySyncStatus + `,`, + `TotalByHealthStatus:` + mapStringForTotalByHealthStatus + `,`, + `AutoSyncEnabledCount:` + fmt.Sprintf("%v", this.AutoSyncEnabledCount) + `,`, + `Destinations:` + repeatedStringForDestinations + `,`, + `Namespaces:` + fmt.Sprintf("%v", this.Namespaces) + `,`, + `Labels:` + repeatedStringForLabels + `,`, `}`, }, "") return s @@ -24635,6 +24988,120 @@ func (m *ApplicationDestinationServiceAccount) Unmarshal(dAtA []byte) error { } return nil } +func (m *ApplicationLabelStats) 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: ApplicationLabelStats: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationLabelStats: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", 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.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ApplicationList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -24731,6 +25198,453 @@ func (m *ApplicationList) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stats", 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.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplicationListStats) 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: ApplicationListStats: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationListStats: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) + } + m.Total = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Total |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalBySyncStatus", 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.TotalBySyncStatus == nil { + m.TotalBySyncStatus = make(map[SyncStatusCode]int64) + } + var mapkey SyncStatusCode + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = SyncStatusCode(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.TotalBySyncStatus[SyncStatusCode(mapkey)] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalByHealthStatus", 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.TotalByHealthStatus == nil { + m.TotalByHealthStatus = make(map[github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode]int64) + } + var mapkey github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode + var mapvalue int64 + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvalue |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.TotalByHealthStatus[github_com_argoproj_gitops_engine_pkg_health.HealthStatusCode(mapkey)] = mapvalue + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoSyncEnabledCount", wireType) + } + m.AutoSyncEnabledCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AutoSyncEnabledCount |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Destinations", 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.Destinations = append(m.Destinations, ApplicationDestination{}) + if err := m.Destinations[len(m.Destinations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", 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.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", 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.Labels = append(m.Labels, ApplicationLabelStats{}) + if err := m.Labels[len(m.Labels)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index 9f02185b69772..5fa5d60279c6a 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -175,12 +175,37 @@ message ApplicationDestinationServiceAccount { optional string defaultServiceAccount = 3; } +message ApplicationLabelStats { + optional string key = 1; + + repeated string values = 2; +} + // ApplicationList is list of Application resources // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object message ApplicationList { optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; repeated Application items = 2; + + optional ApplicationListStats stats = 3; +} + +// ApplicationListStats holds additional information about the list of applications +message ApplicationListStats { + optional int64 total = 1; + + map totalBySyncStatus = 2; + + map totalByHealthStatus = 3; + + optional int64 autoSyncEnabledCount = 4; + + repeated ApplicationDestination destinations = 5; + + repeated string namespaces = 6; + + repeated ApplicationLabelStats labels = 7; } message ApplicationMatchExpression { diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go index fbc79f9104837..7f903a7898e28 100644 --- a/pkg/apis/application/v1alpha1/types.go +++ b/pkg/apis/application/v1alpha1/types.go @@ -1755,7 +1755,31 @@ type ApplicationWatchEvent struct { type ApplicationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Items []Application `json:"items" protobuf:"bytes,2,rep,name=items"` + Items []Application `json:"items" protobuf:"bytes,2,rep,name=items"` + Stats ApplicationListStats `json:"stats,omitempty" protobuf:"bytes,3,opt,name=stats"` +} + +type ApplicationLabelStats struct { + Key string `json:"key" protobuf:"bytes,1,opt,name=key"` + Values []string `json:"values" protobuf:"bytes,2,opt,name=values"` +} + +// ApplicationListStats holds additional information about the list of applications +type ApplicationListStats struct { + Total int64 `json:"total" protobuf:"bytes,1,opt,name=total"` + TotalBySyncStatus map[SyncStatusCode]int64 `json:"totalBySyncStatus,omitempty" protobuf:"bytes,2,opt,name=totalBySyncStatus"` + TotalByHealthStatus map[health.HealthStatusCode]int64 `json:"totalByHealthStatus,omitempty" protobuf:"bytes,3,opt,name=totalByHealthStatus"` + AutoSyncEnabledCount int64 `json:"autoSyncEnabledCount" protobuf:"bytes,4,opt,name=autoSyncEnabledCount"` + Destinations []ApplicationDestination `json:"destinations" protobuf:"bytes,5,opt,name=destinations"` + Namespaces []string `json:"namespaces" protobuf:"bytes,6,opt,name=namespaces"` + Labels []ApplicationLabelStats `json:"labels,omitempty" protobuf:"bytes,7,opt,name=labels"` +} + +func NewApplicationListStats() ApplicationListStats { + return ApplicationListStats{ + TotalBySyncStatus: make(map[SyncStatusCode]int64), + TotalByHealthStatus: make(map[health.HealthStatusCode]int64), + } } // ComponentParameter contains information about component parameter value diff --git a/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go index c70479b70ff1c..59822d0c57ea2 100644 --- a/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go @@ -19,6 +19,7 @@ limitations under the License. package v1alpha1 import ( + health "github.com/argoproj/gitops-engine/pkg/health" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -315,6 +316,27 @@ func (in *ApplicationDestinationServiceAccount) DeepCopy() *ApplicationDestinati return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationLabelStats) DeepCopyInto(out *ApplicationLabelStats) { + *out = *in + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationLabelStats. +func (in *ApplicationLabelStats) DeepCopy() *ApplicationLabelStats { + if in == nil { + return nil + } + out := new(ApplicationLabelStats) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ApplicationList) DeepCopyInto(out *ApplicationList) { *out = *in @@ -327,6 +349,7 @@ func (in *ApplicationList) DeepCopyInto(out *ApplicationList) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Stats.DeepCopyInto(&out.Stats) return } @@ -348,6 +371,53 @@ func (in *ApplicationList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationListStats) DeepCopyInto(out *ApplicationListStats) { + *out = *in + if in.TotalBySyncStatus != nil { + in, out := &in.TotalBySyncStatus, &out.TotalBySyncStatus + *out = make(map[SyncStatusCode]int64, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TotalByHealthStatus != nil { + in, out := &in.TotalByHealthStatus, &out.TotalByHealthStatus + *out = make(map[health.HealthStatusCode]int64, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Destinations != nil { + in, out := &in.Destinations, &out.Destinations + *out = make([]ApplicationDestination, len(*in)) + copy(*out, *in) + } + if in.Namespaces != nil { + in, out := &in.Namespaces, &out.Namespaces + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make([]ApplicationLabelStats, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationListStats. +func (in *ApplicationListStats) DeepCopy() *ApplicationListStats { + if in == nil { + return nil + } + out := new(ApplicationListStats) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ApplicationMatchExpression) DeepCopyInto(out *ApplicationMatchExpression) { *out = *in diff --git a/server/application/application.go b/server/application/application.go index 29944e644a1f1..779a8afc0110c 100644 --- a/server/application/application.go +++ b/server/application/application.go @@ -84,7 +84,6 @@ type Server struct { kubeclientset kubernetes.Interface appclientset appclientset.Interface appLister applisters.ApplicationLister - appInformer cache.SharedIndexInformer appBroadcaster Broadcaster repoClientset apiclient.Clientset kubectl kube.Kubectl @@ -130,7 +129,6 @@ func NewServer( ns: namespace, appclientset: &deepCopyAppClientset{appclientset}, appLister: &deepCopyApplicationLister{appLister}, - appInformer: appInformer, appBroadcaster: appBroadcaster, kubeclientset: kubeclientset, cache: cache, @@ -267,7 +265,7 @@ func (s *Server) getApplicationEnforceRBACClient(ctx context.Context, action, pr } // List returns list of applications -func (s *Server) List(ctx context.Context, q *application.ApplicationQuery) (*v1alpha1.ApplicationList, error) { +func (s *Server) List(ctx context.Context, q *application.ApplicationQuery) (*application.ApplicationListResponse, error) { selector, err := labels.Parse(q.GetSelector()) if err != nil { return nil, fmt.Errorf("error parsing the selector: %w", err) @@ -282,42 +280,25 @@ func (s *Server) List(ctx context.Context, q *application.ApplicationQuery) (*v1 return nil, fmt.Errorf("error listing apps with selectors: %w", err) } - filteredApps := apps - // Filter applications by name - if q.Name != nil { - filteredApps = argo.FilterByNameP(filteredApps, *q.Name) - } - - // Filter applications by projects - filteredApps = argo.FilterByProjectsP(filteredApps, getProjectsFromApplicationQuery(*q)) - - // Filter applications by source repo URL - filteredApps = argo.FilterByRepoP(filteredApps, q.GetRepo()) - - newItems := make([]v1alpha1.Application, 0) - for _, a := range filteredApps { + newItems := make([]*v1alpha1.Application, 0) + for _, a := range apps { // Skip any application that is neither in the control plane's namespace // nor in the list of enabled namespaces. if !s.isNamespaceEnabled(a.Namespace) { continue } if s.enf.Enforce(ctx.Value("claims"), rbac.ResourceApplications, rbac.ActionGet, a.RBACName(s.ns)) { - newItems = append(newItems, *a) + newItems = append(newItems, a) } } - - // Sort found applications by name - sort.Slice(newItems, func(i, j int) bool { - return newItems[i].Name < newItems[j].Name - }) - - appList := v1alpha1.ApplicationList{ - ListMeta: metav1.ListMeta{ - ResourceVersion: s.appInformer.LastSyncResourceVersion(), - }, - Items: newItems, + newItems, stats, err := argo.Paginate(newItems, *q) + if err != nil { + return nil, fmt.Errorf("error paginating applications: %w", err) } - return &appList, nil + return &application.ApplicationListResponse{ + Items: newItems, + Stats: stats, + }, nil } // Create creates an application @@ -762,7 +743,7 @@ func (s *Server) Get(ctx context.Context, q *application.ApplicationQuery) (*v1a appNs := s.appNamespaceOrDefault(q.GetAppNamespace()) project := "" - projects := getProjectsFromApplicationQuery(*q) + projects := argo.GetProjectsFromApplicationQuery(*q) if len(projects) == 1 { project = projects[0] } else if len(projects) > 1 { @@ -1193,11 +1174,7 @@ func (s *Server) Delete(ctx context.Context, q *application.ApplicationDeleteReq return &application.ApplicationResponse{}, nil } -func (s *Server) isApplicationPermitted(selector labels.Selector, minVersion int, claims any, appName, appNs string, projects map[string]bool, a v1alpha1.Application) bool { - if len(projects) > 0 && !projects[a.Spec.GetProject()] { - return false - } - +func (s *Server) isApplicationPermitted(selector labels.Selector, minVersion int, claims any, appName, appNs string, filter argo.Filter, a v1alpha1.Application) bool { if appVersion, err := strconv.Atoi(a.ResourceVersion); err == nil && appVersion < minVersion { return false } @@ -1206,6 +1183,10 @@ func (s *Server) isApplicationPermitted(selector labels.Selector, minVersion int return false } + if filter != nil && !filter.IsValid(&a) { + return false + } + if !s.isNamespaceEnabled(a.Namespace) { return false } @@ -1225,10 +1206,7 @@ func (s *Server) Watch(q *application.ApplicationQuery, ws application.Applicati if q.Name != nil { logCtx = logCtx.WithField("application", *q.Name) } - projects := map[string]bool{} - for _, project := range getProjectsFromApplicationQuery(*q) { - projects[project] = true - } + filter := argo.BuildFilter(*q) claims := ws.Context().Value("claims") selector, err := labels.Parse(q.GetSelector()) if err != nil { @@ -1240,11 +1218,10 @@ func (s *Server) Watch(q *application.ApplicationQuery, ws application.Applicati minVersion = 0 } } - // sendIfPermitted is a helper to send the application to the client's streaming channel if the // caller has RBAC privileges permissions to view it sendIfPermitted := func(a v1alpha1.Application, eventType watch.EventType) { - permitted := s.isApplicationPermitted(selector, minVersion, claims, appName, appNs, projects, a) + permitted := s.isApplicationPermitted(selector, minVersion, claims, appName, appNs, filter, a) if !permitted { return } @@ -2805,12 +2782,3 @@ func (s *Server) appNamespaceOrDefault(appNs string) string { func (s *Server) isNamespaceEnabled(namespace string) bool { return security.IsNamespaceEnabled(namespace, s.ns, s.enabledNamespaces) } - -// getProjectsFromApplicationQuery gets the project names from a query. If the legacy "project" field was specified, use -// that. Otherwise, use the newer "projects" field. -func getProjectsFromApplicationQuery(q application.ApplicationQuery) []string { - if q.Project != nil { - return q.Project - } - return q.Projects -} diff --git a/server/application/application.proto b/server/application/application.proto index 7cd69c3d40b2b..bd4d44db0be89 100644 --- a/server/application/application.proto +++ b/server/application/application.proto @@ -24,17 +24,92 @@ message ApplicationQuery { // forces application reconciliation if set to 'hard' optional string refresh = 2; // the project names to restrict returned list applications + // Deprecated: use options.projects instead repeated string projects = 3; // when specified with a watch call, shows changes that occur after that particular version of a resource. optional string resourceVersion = 4; // the selector to restrict returned list to applications only with matched labels + // Deprecated: use options.selector instead optional string selector = 5; // the repoURL to restrict returned list applications + // Deprecated: use options.repos instead optional string repo = 6; // the application's namespace optional string appNamespace = 7; // the project names to restrict returned list applications (legacy name for backwards-compatibility) + // Deprecated: use options.projects instead repeated string project = 8; + // the options to restrict returned list applications + optional ApplicationListOptions options = 9; +} + +enum ApplicationSortBy { + // unspecified, sort by name + ASB_UNSPECIFIED = 0; + // sort by .Name + ASB_NAME = 1; + // sort by .Metadata.CreateTimestamp + ASB_CREATED_AT = 2; + // sort by .Status.OperationState.FinishedAt + ASB_SYNCHRONIZED = 3; +} + +message ApplicationListOptions{ + // the application name to start from (app with min name is included in response) + optional string minName = 1; + // the application name to end at (app with max name is included in response) + optional string maxName = 2; + // the repos filter, ignore if the field repo was defined + repeated string repos = 3; + // the clusters filter + repeated string clusters = 4; + // the namespaces filter + repeated string namespaces = 5; + // the auth sync filter + optional bool autoSyncEnabled = 6; + // the sync status filter + repeated string syncStatuses = 7; + // the health status filter + repeated string healthStatuses = 8; + // search + optional string search = 9; + // offset + optional int64 offset = 10; + // limit + optional int64 limit = 11; + // sort by enum=name;created-at;synchronized + optional ApplicationSortBy sortBy = 12; +} + +message ApplicationListResponse { + repeated github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.Application items = 1; + required ApplicationListStats stats = 2; +} + +// Stats for the application list +// Note total/totalBySyncStatus/totalByHealthStatus/autoSyncEnabledCount is for pagination, therefore +// the calculation is based on the filtered applications, meanwhile destinations/namespaces/labels are +// calculated based on all. +message ApplicationListStats { + // the number of applications + required int64 total = 1; + // the number of applications based on the sync status + map totalBySyncStatus = 2; + // the number of applications based on the health status + map totalByHealthStatus = 3; + // the number of applications with auto-sync enabled + required int64 autoSyncEnabledCount = 4; + // all destinations for the applications returned + repeated github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationDestination destinations = 5; + // all namespaces for the applications returned + repeated string namespaces = 6; + // all labels for the applications returned + repeated ApplicationLabelStats labels = 7; +} + +message ApplicationLabelStats { + required string key = 1; + repeated string values = 2; } message NodeQuery { @@ -325,7 +400,7 @@ message ListAppLinksRequest { service ApplicationService { // List returns list of applications - rpc List(ApplicationQuery) returns (github.zerozr99.workers.dev.argoproj.argo_cd.v3.pkg.apis.application.v1alpha1.ApplicationList) { + rpc List(ApplicationQuery) returns (ApplicationListResponse) { option (google.api.http).get = "/api/v1/applications"; } diff --git a/server/application/application_test.go b/server/application/application_test.go index 56a9718975262..d9be1fed1189c 100644 --- a/server/application/application_test.go +++ b/server/application/application_test.go @@ -6,6 +6,7 @@ import ( "fmt" "io" "slices" + "sort" "strconv" "strings" "sync/atomic" @@ -540,6 +541,29 @@ spec: server: https://cluster-api.example.com ` +const fakeAppWithSyncPolicy = ` +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: test-app + namespace: default + annotations: + test.annotation: test +spec: + source: + path: some/path + repoURL: https://github.com/argoproj/argocd-example-apps.git + targetRevision: HEAD + ksonnet: + environment: default + destination: + namespace: ` + test.FakeDestNamespace + ` + server: https://cluster-api.example.com + syncPolicy: + automated: + prune: true +` + func newTestAppWithDestName(opts ...func(app *v1alpha1.Application)) *v1alpha1.Application { return createTestApp(fakeAppWithDestName, opts...) } @@ -552,6 +576,10 @@ func newTestAppWithAnnotations(opts ...func(app *v1alpha1.Application)) *v1alpha return createTestApp(fakeAppWithAnnotations, opts...) } +func newTestAppWithSyncPolicy(opts ...func(app *v1alpha1.Application)) *v1alpha1.Application { + return createTestApp(fakeAppWithSyncPolicy, opts...) +} + func createTestApp(testApp string, opts ...func(app *v1alpha1.Application)) *v1alpha1.Application { var app v1alpha1.Application err := yaml.Unmarshal([]byte(testApp), &app) @@ -1274,6 +1302,436 @@ func TestListAppWithProjects(t *testing.T) { }) } +func newTestApplicationQueryOption(opt application.ApplicationListOptions) application.ApplicationQuery { + return application.ApplicationQuery{Options: &opt} +} + +func TestListAppWithMinName(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "app3" + })) + + t.Run("List apps with min name filter set", func(t *testing.T) { + minName := "App" + expectedApps := []string{"App1", "App2"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{MinName: &minName}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedApps, apps) + }) +} + +func TestListAppWithMaxName(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + })) + + t.Run("List apps with min name filter set", func(t *testing.T) { + maxName := "p2" + expectedApps := []string{"App2"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{MaxName: &maxName}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedApps, apps) + }) +} + +func TestListAppWithSearch(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + })) + + t.Run("List apps with min name filter set", func(t *testing.T) { + search := "p2" + expectedApps := []string{"App2"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{Search: &search}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedApps, apps) + }) +} + +func TestListAppWithRepos(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + app.Spec.Source.RepoURL = "https://github.com/argoproj/test.git" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + app.Spec.Source.RepoURL = "https://github.com/argoproj/test.git" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + app.Spec.Source.RepoURL = "https://github.com/argoproj/test1.git" + })) + + validTests := []struct { + testName string + repo *string + repos []string + expectedResult []string + }{ + { + testName: "List apps with repo filter set", + repo: ptr.To("https://github.com/argoproj/test.git"), + expectedResult: []string{"App1", "App2"}, + }, + { + testName: "List apps with repos filter set", + repos: []string{"https://github.com/argoproj/test.git"}, + expectedResult: []string{"App1", "App2"}, + }, + { + testName: "List apps with repos filters set", + repos: []string{"https://github.com/argoproj/test.git", "https://github.com/argoproj/test1.git"}, + expectedResult: []string{"App1", "App2", "App3"}, + }, + { + testName: "List apps with repo and repos filters set", + repo: ptr.To("https://github.com/argoproj/test.git"), + repos: []string{"https://github.com/argoproj/test1.git"}, + expectedResult: []string{"App1", "App2"}, + }, + } + for _, validTest := range validTests { + t.Run(validTest.testName, func(t *testing.T) { + appQuery := application.ApplicationQuery{ + Repo: validTest.repo, + Options: &application.ApplicationListOptions{ + Repos: validTest.repos, + }, + } + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, validTest.expectedResult, apps) + }) + } +} + +func TestListAppWithCluster(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + app.Spec.Destination.Server = "https://cluster1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + app.Spec.Destination.Server = "https://cluster1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + app.Spec.Destination.Server = "https://cluster2" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App4" + app.Spec.Destination.Name = "cluster1" + })) + + validTests := []struct { + testName string + clusters []string + expectedResult []string + }{ + { + testName: "List apps with clusters filter set", + clusters: []string{"https://cluster1"}, + expectedResult: []string{"App1", "App2"}, + }, + { + testName: "List apps with cluster name filter set", + clusters: []string{"cluster1"}, + expectedResult: []string{"App4"}, + }, + { + testName: "List apps with clusters filters set", + clusters: []string{"https://cluster1", "https://cluster2"}, + expectedResult: []string{"App1", "App2", "App3"}, + }, + } + for _, validTest := range validTests { + t.Run(validTest.testName, func(t *testing.T) { + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{Clusters: validTest.clusters}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, validTest.expectedResult, apps) + }) + } +} + +func TestListAppWithNamespace(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + app.Spec.Destination.Namespace = "default" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + app.Spec.Destination.Namespace = "test1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + app.Spec.Destination.Namespace = "test2" + })) + + t.Run("List apps with namespace filter set", func(t *testing.T) { + expectedResult := []string{"App2", "App3"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{Namespaces: []string{"test1", "test2"}}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedResult, apps) + }) +} + +func TestListAppWithSyncStatus(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + app.Status.Sync.Status = v1alpha1.SyncStatusCodeOutOfSync + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + app.Status.Sync.Status = v1alpha1.SyncStatusCodeSynced + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + app.Status.Sync.Status = v1alpha1.SyncStatusCodeUnknown + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App4" + })) + + t.Run("List apps with sync status filter set", func(t *testing.T) { + expectedResult := []string{"App1", "App2"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{SyncStatuses: []string{"OutOfSync", "Synced"}}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedResult, apps) + }) +} + +func TestListAppWithHealthStatus(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + app.Status.Health.Status = health.HealthStatusProgressing + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App2" + app.Status.Health.Status = health.HealthStatusHealthy + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + app.Status.Health.Status = health.HealthStatusMissing + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App4" + })) + + t.Run("List apps with health status filter set", func(t *testing.T) { + expectedResult := []string{"App1", "App2"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{HealthStatuses: []string{"Progressing", "Healthy"}}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedResult, apps) + }) +} + +func TestListAppWithAutomated(t *testing.T) { + appServer := newTestAppServer(t, newTestAppWithSyncPolicy(func(app *v1alpha1.Application) { + app.Name = "App1" + app.Spec.SyncPolicy.Automated = &v1alpha1.SyncPolicyAutomated{} + }), newTestAppWithSyncPolicy(func(app *v1alpha1.Application) { + app.Name = "App2" + app.Spec.SyncPolicy.Automated = nil + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App3" + })) + + t.Run("List apps with automated filter set", func(t *testing.T) { + expectedResult := []string{"App1"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{AutoSyncEnabled: ptr.To(true)}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedResult, apps) + }) + + t.Run("List apps with automated filter set false", func(t *testing.T) { + expectedResult := []string{"App2", "App3"} + appQuery := newTestApplicationQueryOption(application.ApplicationListOptions{AutoSyncEnabled: ptr.To(false)}) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var apps []string + for i := range appList.Items { + apps = append(apps, appList.Items[i].Name) + } + assert.Equal(t, expectedResult, apps) + }) +} + +func ptrToInt64(v int) *int64 { + vv := int64(v) + return &vv +} + +func TestListAppWithPagination(t *testing.T) { + apps := []runtime.Object{} + for i := 0; i < 100; i++ { + apps = append(apps, newTestApp(func(app *v1alpha1.Application) { + app.Name = fmt.Sprintf("App%.2d", i) + })) + } + appServer := newTestAppServer(t, apps...) + + newOffsetLimit := func(offset, limit int64) application.ApplicationQuery { + return application.ApplicationQuery{ + Options: &application.ApplicationListOptions{ + Offset: ptr.To(offset), + Limit: ptr.To(limit), + }, + } + } + + t.Run("List apps with pagination", func(t *testing.T) { + appQuery := newOffsetLimit(0, 10) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + assert.Len(t, appList.Items, 10) + assert.Equal(t, "App00", appList.Items[0].Name) + assert.Equal(t, "App09", appList.Items[9].Name) + }) + + t.Run("List apps with offset 10", func(t *testing.T) { + appQuery := newOffsetLimit(10, 10) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + assert.Len(t, appList.Items, 10) + assert.Equal(t, "App10", appList.Items[0].Name) + assert.Equal(t, "App19", appList.Items[9].Name) + }) + + t.Run("List apps with offset 99", func(t *testing.T) { + appQuery := newOffsetLimit(99, 10) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + assert.Len(t, appList.Items, 1) + assert.Equal(t, "App99", appList.Items[0].Name) + }) + + t.Run("List apps with offset 101", func(t *testing.T) { + appQuery := newOffsetLimit(101, 10) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + assert.Empty(t, appList.Items) + }) + + t.Run("List apps with limit 0", func(t *testing.T) { + appQuery := newOffsetLimit(0, 0) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + assert.Empty(t, appList.Items) + }) + + t.Run("List apps with offset -1", func(t *testing.T) { + appQuery := newOffsetLimit(-1, 10) + _, err := appServer.List(t.Context(), &appQuery) + assert.ErrorContains(t, err, "must be a non-negative integer") + }) + + t.Run("List apps with limit -1", func(t *testing.T) { + appQuery := newOffsetLimit(0, -1) + _, err := appServer.List(t.Context(), &appQuery) + assert.ErrorContains(t, err, "must be a non-negative integer") + }) +} + +func TestListAppsWithSort(t *testing.T) { + t1 := metav1.Now() + t2, t3 := metav1.NewTime(t1.Add(time.Hour)), metav1.NewTime(t1.Add(2*time.Hour)) + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "abc" + app.CreationTimestamp = t1 + app.Status.OperationState = &v1alpha1.OperationState{FinishedAt: &t1} + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "bcd" + app.CreationTimestamp = t2 + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "def" + app.CreationTimestamp = t3 + app.Status.OperationState = &v1alpha1.OperationState{FinishedAt: &t3} + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "fgh" + app.CreationTimestamp = t3 + })) + + newSortBy := func(sortBy application.ApplicationSortBy) application.ApplicationQuery { + return application.ApplicationQuery{Options: &application.ApplicationListOptions{SortBy: ptr.To(sortBy)}} + } + + t.Run("List apps with sort by name", func(t *testing.T) { + appQuery := newSortBy(application.ApplicationSortBy_ASB_NAME) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var names []string + for i := range appList.Items { + names = append(names, appList.Items[i].Name) + } + assert.Equal(t, []string{"abc", "bcd", "def", "fgh"}, names) + }) + + t.Run("List apps with sort by created at in descending order", func(t *testing.T) { + appQuery := newSortBy(application.ApplicationSortBy_ASB_CREATED_AT) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var names []string + for i := range appList.Items { + names = append(names, appList.Items[i].Name) + } + assert.Equal(t, []string{"def", "fgh", "bcd", "abc"}, names) + }) + + t.Run("List apps with sort by synchronized in descending order", func(t *testing.T) { + appQuery := newSortBy(application.ApplicationSortBy_ASB_SYNCHRONIZED) + appList, err := appServer.List(t.Context(), &appQuery) + require.NoError(t, err) + var names []string + for i := range appList.Items { + names = append(names, appList.Items[i].Name) + } + assert.Equal(t, []string{"bcd", "fgh", "def", "abc"}, names) + }) +} + func TestListApps(t *testing.T) { appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { app.Name = "bcd" @@ -1335,6 +1793,104 @@ g, group-49, role:test3 assert.Len(t, names, 300) } +// sort slice to make the test deterministic +func sortStats(stats *application.ApplicationListStats) { + sort.Slice(stats.Destinations, func(i, j int) bool { + return stats.Destinations[i].Name < stats.Destinations[j].Name + }) + sort.Slice(stats.Labels, func(i, j int) bool { + return stats.Labels[i].GetKey() < stats.Labels[j].GetKey() + }) + for i := range stats.Labels { + sort.Strings(stats.Labels[i].Values) + } +} + +func TestGetAppsStats(t *testing.T) { + appServer := newTestAppServer(t, newTestApp(func(app *v1alpha1.Application) { + app.Name = "App1" + }), newTestAppWithDestName(func(app *v1alpha1.Application) { + app.Name = "App2" + }), newTestAppWithSyncPolicy(func(app *v1alpha1.Application) { + app.Name = "App3" + app.Spec.Project = "proj1" + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App4" + app.Labels = map[string]string{"key1": "value1"} + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App5" + app.Labels = map[string]string{"key1": "value2", "key2": "value2"} + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App6" + app.Spec.Project = "proj1" + app.Status.Sync.Status = v1alpha1.SyncStatusCodeOutOfSync + app.Status.Health.Status = health.HealthStatusProgressing + }), newTestApp(func(app *v1alpha1.Application) { + app.Name = "App7" + app.Spec.Project = "proj1" + app.Status.Sync.Status = v1alpha1.SyncStatusCodeSynced + app.Status.Health.Status = health.HealthStatusHealthy + })) + + t.Run("Get apps stats", func(t *testing.T) { + appList, err := appServer.List(t.Context(), &application.ApplicationQuery{}) + require.NoError(t, err) + sortStats(appList.Stats) + assert.Equal(t, &application.ApplicationListStats{ + Total: ptrToInt64(7), + TotalBySyncStatus: map[string]int64{ + "OutOfSync": 1, + "Synced": 1, + "": 5, + }, + TotalByHealthStatus: map[string]int64{ + "Progressing": 1, + "Healthy": 1, + "": 5, + }, + AutoSyncEnabledCount: ptrToInt64(1), + Destinations: []*v1alpha1.ApplicationDestination{ + {Server: "https://cluster-api.example.com", Namespace: "fake-dest-ns"}, + {Name: "fake-cluster", Namespace: "fake-dest-ns"}, + }, + Namespaces: []string{"fake-dest-ns"}, + Labels: []*application.ApplicationLabelStats{ + {Key: ptr.To("key1"), Values: []string{"value1", "value2"}}, + {Key: ptr.To("key2"), Values: []string{"value2"}}, + }, + }, appList.Stats) + }) + + t.Run("Get apps stats with projects filter set", func(t *testing.T) { + appList, err := appServer.List(t.Context(), &application.ApplicationQuery{Projects: []string{"proj1"}}) + require.NoError(t, err) + sortStats(appList.Stats) + assert.Equal(t, &application.ApplicationListStats{ + Total: ptrToInt64(3), + TotalBySyncStatus: map[string]int64{ + "OutOfSync": 1, + "Synced": 1, + "": 1, + }, + TotalByHealthStatus: map[string]int64{ + "Progressing": 1, + "Healthy": 1, + "": 1, + }, + AutoSyncEnabledCount: ptrToInt64(1), + Destinations: []*v1alpha1.ApplicationDestination{ + {Server: "https://cluster-api.example.com", Namespace: "fake-dest-ns"}, + {Name: "fake-cluster", Namespace: "fake-dest-ns"}, + }, + Namespaces: []string{"fake-dest-ns"}, + Labels: []*application.ApplicationLabelStats{ + {Key: ptr.To("key1"), Values: []string{"value1", "value2"}}, + {Key: ptr.To("key2"), Values: []string{"value2"}}, + }, + }, appList.Stats) + }) +} + func generateTestApp(num int) []*v1alpha1.Application { apps := []*v1alpha1.Application{} for i := 0; i < num; i++ { @@ -2653,8 +3209,10 @@ func TestIsApplicationPermitted(t *testing.T) { t.Run("Incorrect project", func(t *testing.T) { testApp := newTestApp() appServer := newTestAppServer(t, testApp) - projects := map[string]bool{"test-app": false} - permitted := appServer.isApplicationPermitted(labels.Everything(), 0, nil, "test", "default", projects, *testApp) + filter := argo.NewStringPropertyFilter([]string{"test"}, func(app *v1alpha1.Application) string { + return app.Spec.Project + }) + permitted := appServer.isApplicationPermitted(labels.Everything(), 0, nil, "test", "default", filter, *testApp) assert.False(t, permitted) }) @@ -2699,6 +3257,143 @@ func TestIsApplicationPermitted(t *testing.T) { permitted := appServer.isApplicationPermitted(labels.Everything(), 0, nil, testApp.Name, testApp.Namespace, nil, *testApp) assert.True(t, permitted) }) + + permittedTests := []struct { + testName string + query application.ApplicationQuery + }{ + { + testName: "Permitted with cluster url filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{Clusters: []string{"https://cluster-api.example.com"}}, + }, + }, + { + testName: "Permitted with namespace filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{Namespaces: []string{test.FakeDestNamespace}}, + }, + }, + { + testName: "Permitted with repo filter", + query: application.ApplicationQuery{Repo: ptr.To("https://github.com/argoproj/argocd-example-apps.git")}, + }, + { + testName: "Permitted with project filter", + query: application.ApplicationQuery{Projects: []string{"proj"}}, + }, + { + testName: "Permitted with minName filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{MinName: ptr.To("test-")}, + }, + }, + { + testName: "Permitted with maxName filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{MaxName: ptr.To("app")}, + }, + }, + { + testName: "Permitted with search filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{Search: ptr.To("est")}, + }, + }, + { + testName: "Permitted with sync filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{SyncStatuses: []string{"Synced"}}, + }, + }, + { + testName: "Permitted with health filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{HealthStatuses: []string{"Healthy"}}, + }, + }, + } + t.Run("Application is permitted with query filters", func(t *testing.T) { + for _, tt := range permittedTests { + t.Run(tt.testName, func(t *testing.T) { + testApp := newTestApp() + testApp.Spec.Project = "proj" + testApp.Status.Sync.Status = v1alpha1.SyncStatusCodeSynced + testApp.Status.Health.Status = health.HealthStatusHealthy + appServer := newTestAppServer(t, testApp) + filter := argo.BuildFilter(tt.query) + permitted := appServer.isApplicationPermitted(labels.Everything(), 0, nil, testApp.Name, testApp.Namespace, filter, *testApp) + assert.True(t, permitted) + }) + } + }) + + forbiddenTests := []struct { + testName string + query application.ApplicationQuery + }{ + { + testName: "Forbidden with cluster url filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{Clusters: []string{"https://invalid.example.com"}}, + }, + }, + { + testName: "Forbidden with namespace filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{Namespaces: []string{"invalid"}}, + }, + }, + { + testName: "Forbidden with repo filter", + query: application.ApplicationQuery{Repo: ptr.To("https://github.com/argoproj/test-apps.git")}, + }, + { + testName: "Forbidden with project filter", + query: application.ApplicationQuery{Projects: []string{"proj"}}, + }, + { + testName: "Forbidden with minName filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{MinName: ptr.To("-test")}, + }, + }, + { + testName: "Forbidden with maxName filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{MaxName: ptr.To("app-")}, + }, + }, + { + testName: "Forbidden with search filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{Search: ptr.To("xxx")}, + }, + }, + { + testName: "Forbidden with sync filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{SyncStatuses: []string{"OutOfSync"}}, + }, + }, + { + testName: "Forbidden with health filter", + query: application.ApplicationQuery{ + Options: &application.ApplicationListOptions{HealthStatuses: []string{"Degraded"}}, + }, + }, + } + t.Run("Application is not permitted with query filters", func(t *testing.T) { + for _, tt := range forbiddenTests { + t.Run(tt.testName, func(t *testing.T) { + testApp := newTestApp() + appServer := newTestAppServer(t, testApp) + filter := argo.BuildFilter(tt.query) + permitted := appServer.isApplicationPermitted(labels.Everything(), 0, nil, testApp.Name, testApp.Namespace, filter, *testApp) + assert.False(t, permitted) + }) + } + }) } func TestAppNamespaceRestrictions(t *testing.T) { diff --git a/util/argo/pagination.go b/util/argo/pagination.go new file mode 100644 index 0000000000000..93d1f40f0dbe1 --- /dev/null +++ b/util/argo/pagination.go @@ -0,0 +1,363 @@ +package argo + +import ( + "fmt" + "maps" + "slices" + "sort" + "strings" + + "github.com/argoproj/argo-cd/v3/pkg/apiclient/application" + "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1" +) + +type Filter interface { + IsValid(*v1alpha1.Application) (ok bool) +} + +type ChainFilter struct { + filters []Filter +} + +func NewChainFilter() *ChainFilter { + return &ChainFilter{ + filters: make([]Filter, 0), + } +} + +func (c *ChainFilter) AddFilter(filter Filter) { + c.filters = append(c.filters, filter) +} + +func (c *ChainFilter) IsValid(app *v1alpha1.Application) bool { + for _, filter := range c.filters { + if !filter.IsValid(app) { + return false + } + } + return true +} + +type MinNameFilter struct { + minName string +} + +func NewMinNameFilter(minName string) *MinNameFilter { + return &MinNameFilter{ + minName: minName, + } +} + +func (f *MinNameFilter) IsValid(app *v1alpha1.Application) bool { + return strings.HasPrefix(app.Name, f.minName) +} + +func NewMaxNameFilter(maxName string) *MaxNameFilter { + return &MaxNameFilter{ + maxName: maxName, + } +} + +type MaxNameFilter struct { + maxName string +} + +func (f *MaxNameFilter) IsValid(app *v1alpha1.Application) bool { + return strings.HasSuffix(app.Name, f.maxName) +} + +type ClustersFilter struct { + clusters map[string]struct{} +} + +func NewClustersFilter(clusters []string) *ClustersFilter { + clustersMap := make(map[string]struct{}) + for _, cluster := range clusters { + clustersMap[cluster] = struct{}{} + } + return &ClustersFilter{ + clusters: clustersMap, + } +} + +func (f *ClustersFilter) IsValid(app *v1alpha1.Application) bool { + if _, ok := f.clusters[app.Spec.Destination.Name]; !ok { + if _, ok := f.clusters[app.Spec.Destination.Server]; !ok { + return false + } + } + return true +} + +type StringPropertyFilter struct { + validValues map[string]struct{} + propertyFunc func(app *v1alpha1.Application) string +} + +func NewStringPropertyFilter(validValues []string, propertyFunc func(app *v1alpha1.Application) string) *StringPropertyFilter { + validValuesMap := make(map[string]struct{}) + for _, value := range validValues { + validValuesMap[value] = struct{}{} + } + return &StringPropertyFilter{ + validValues: validValuesMap, + propertyFunc: propertyFunc, + } +} + +func (f *StringPropertyFilter) IsValid(app *v1alpha1.Application) bool { + value := f.propertyFunc(app) + if _, ok := f.validValues[value]; !ok { + return false + } + return true +} + +// BoolPropertyFilter returns true if the property of application is enabled +type BoolPropertyFilter struct { + validValue bool + propertyFn func(app *v1alpha1.Application) bool +} + +func NewBoolPropertyFilter(validValue bool, propertyFunc func(app *v1alpha1.Application) bool) *BoolPropertyFilter { + return &BoolPropertyFilter{ + validValue: validValue, + propertyFn: propertyFunc, + } +} + +func (f *BoolPropertyFilter) IsValid(app *v1alpha1.Application) bool { + return f.propertyFn(app) == f.validValue +} + +type SearchFilter struct { + search string +} + +func NewSearchFilter(search string) *SearchFilter { + return &SearchFilter{ + search: search, + } +} + +func (f *SearchFilter) IsValid(app *v1alpha1.Application) bool { + return strings.Contains(app.Name, f.search) +} + +func FilterByFiltersP(apps []*v1alpha1.Application, f Filter) []*v1alpha1.Application { + var filteredApps []*v1alpha1.Application + for _, app := range apps { + if f.IsValid(app) { + filteredApps = append(filteredApps, app) + } + } + return filteredApps +} + +// GetProjectsFromApplicationQuery gets the project names from a query. If the legacy "project" field was specified, use +// that. Otherwise, use the newer "projects" field. +func GetProjectsFromApplicationQuery(q application.ApplicationQuery) []string { + if q.Project != nil { + return q.Project + } + return q.Projects +} + +func getReposFromApplicationQuery(q application.ApplicationQuery) []string { + if q.Repo != nil { + return []string{*q.Repo} + } + if q.Options != nil && q.Options.Repos != nil { + return q.Options.Repos + } + return []string{} +} + +func BuildFilter(q application.ApplicationQuery) Filter { + chainFilter := NewChainFilter() + + if q.Name != nil { + f := NewStringPropertyFilter([]string{q.GetName()}, func(app *v1alpha1.Application) string { return app.Name }) + chainFilter.AddFilter(f) + } + + if GetProjectsFromApplicationQuery(q) != nil { + f := NewStringPropertyFilter(GetProjectsFromApplicationQuery(q), func(app *v1alpha1.Application) string { return app.Spec.Project }) + chainFilter.AddFilter(f) + } + + if len(getReposFromApplicationQuery(q)) > 0 { + f := NewStringPropertyFilter(getReposFromApplicationQuery(q), func(app *v1alpha1.Application) string { return app.Spec.Source.RepoURL }) + chainFilter.AddFilter(f) + } + + if q.Options != nil { + o := q.Options + if o.MinName != nil { + chainFilter.AddFilter(NewMinNameFilter(o.GetMinName())) + } + + if o.MaxName != nil { + chainFilter.AddFilter(NewMaxNameFilter(o.GetMaxName())) + } + + if len(o.GetClusters()) > 0 { + chainFilter.AddFilter(NewClustersFilter(o.GetClusters())) + } + + if len(o.GetNamespaces()) > 0 { + f := NewStringPropertyFilter(o.GetNamespaces(), func(app *v1alpha1.Application) string { return app.Spec.Destination.Namespace }) + chainFilter.AddFilter(f) + } + + if o.AutoSyncEnabled != nil { + f := NewBoolPropertyFilter(*o.AutoSyncEnabled, func(app *v1alpha1.Application) bool { + return app.Spec.SyncPolicy != nil && app.Spec.SyncPolicy.Automated != nil + }) + chainFilter.AddFilter(f) + } + + if len(o.GetSyncStatuses()) > 0 { + f := NewStringPropertyFilter(o.GetSyncStatuses(), func(app *v1alpha1.Application) string { return string(app.Status.Sync.Status) }) + chainFilter.AddFilter(f) + } + + if len(o.GetHealthStatuses()) > 0 { + f := NewStringPropertyFilter(o.GetHealthStatuses(), func(app *v1alpha1.Application) string { return string(app.Status.Health.Status) }) + chainFilter.AddFilter(f) + } + + if o.Search != nil { + chainFilter.AddFilter(NewSearchFilter(o.GetSearch())) + } + } + + return chainFilter +} + +func Paginate(apps []*v1alpha1.Application, q application.ApplicationQuery) ([]*v1alpha1.Application, *application.ApplicationListStats, error) { + stats := getAppsStats(apps) + filter := BuildFilter(q) + filteredApps := FilterByFiltersP(apps, filter) + + less, err := getApplicationLessFunc(q.Options.GetSortBy()) + if err != nil { + return nil, nil, fmt.Errorf("error sorting applications: %w", err) + } + sort.SliceStable(filteredApps, func(i, j int) bool { + return less(filteredApps[i], filteredApps[j]) + }) + + if q.Options != nil { + if q.Options.Offset != nil && q.Options.Limit != nil { + offset, limit := q.Options.GetOffset(), q.Options.GetLimit() + if offset < 0 || limit < 0 { + return nil, nil, fmt.Errorf("offset %d and limit %d must be a non-negative integer", offset, limit) + } + if offset >= int64(len(filteredApps)) || limit == 0 { + filteredApps = make([]*v1alpha1.Application, 0) + } else { + if offset+limit >= int64(len(filteredApps)) { + filteredApps = filteredApps[offset:] + } else { + filteredApps = filteredApps[offset : offset+limit] + } + } + } + } + updateStatsWithFilteredApps(stats, filteredApps) + return filteredApps, stats, nil +} + +func getApplicationLessFunc(sortBy application.ApplicationSortBy) (func(x, y *v1alpha1.Application) bool, error) { + if sortBy == application.ApplicationSortBy_ASB_UNSPECIFIED || sortBy == application.ApplicationSortBy_ASB_NAME { + return func(x, y *v1alpha1.Application) bool { + return x.Name < y.Name + }, nil + } + // sort in descending order + if sortBy == application.ApplicationSortBy_ASB_CREATED_AT { + return func(y, x *v1alpha1.Application) bool { + if x.CreationTimestamp.Equal(&y.CreationTimestamp) { + // If creation timestamps are equal, sort by name + return y.Name < x.Name + } + return x.CreationTimestamp.Before(&y.CreationTimestamp) + }, nil + } + // sort in descending order + if sortBy == application.ApplicationSortBy_ASB_SYNCHRONIZED { + // If x.FinishedAt was assigned but y not, we think x is before(less) than y + return func(y, x *v1alpha1.Application) bool { + if x.Status.OperationState != nil { + if y.Status.OperationState != nil { + if x.Status.OperationState.FinishedAt.Equal(y.Status.OperationState.FinishedAt) { + // If finished timestamps are equal, sort by name + return y.Name < x.Name + } + return x.Status.OperationState.FinishedAt.Before(y.Status.OperationState.FinishedAt) + } + return true + } + if y.Status.OperationState != nil { + return false + } + // Sort by name if both were nil + return y.Name < x.Name + }, nil + } + return nil, fmt.Errorf("invalid sort by %s", sortBy) +} + +// updateStatsWithFilteredApps returns a summary of applications after filtering. +// It counts the total number of applications, grouped by health status and sync status +// so that the UI can do pagination. +func updateStatsWithFilteredApps(stats *application.ApplicationListStats, apps []*v1alpha1.Application) { + total := int64(len(apps)) + stats.Total = &total + stats.AutoSyncEnabledCount = new(int64) + stats.TotalByHealthStatus = make(map[string]int64) + stats.TotalBySyncStatus = make(map[string]int64) + for _, app := range apps { + stats.TotalByHealthStatus[string(app.Status.Health.Status)]++ + stats.TotalBySyncStatus[string(app.Status.Sync.Status)]++ + if app.Spec.SyncPolicy != nil && app.Spec.SyncPolicy.Automated != nil { + *stats.AutoSyncEnabledCount++ + } + } +} + +// getAppsStats returns a summary of all applications before pagination and filtering. +// It collects unique destinations, namespaces, and labels across all applications. +func getAppsStats(apps []*v1alpha1.Application) *application.ApplicationListStats { + stats := &application.ApplicationListStats{} + destinations := map[v1alpha1.ApplicationDestination]bool{} + namespaces := map[string]bool{} + labels := map[string]map[string]bool{} + for _, app := range apps { + if _, ok := destinations[app.Spec.Destination]; !ok { + destinations[app.Spec.Destination] = true + } + if _, ok := namespaces[app.Spec.Destination.Namespace]; !ok { + namespaces[app.Spec.Destination.Namespace] = true + } + for key, value := range app.Labels { + if valueMap, ok := labels[key]; !ok { + labels[key] = map[string]bool{value: true} + } else { + valueMap[value] = true + } + } + } + for key := range destinations { + stats.Destinations = append(stats.Destinations, key.DeepCopy()) + } + stats.Namespaces = slices.Collect(maps.Keys(namespaces)) + for key, valueMap := range labels { + stats.Labels = append(stats.Labels, &application.ApplicationLabelStats{ + Key: &key, + Values: slices.Collect(maps.Keys(valueMap)), + }) + } + return stats +}