mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
Merge 474b1845a9 into e0e827dab0
This commit is contained in:
commit
ddb00cb500
17 changed files with 814 additions and 585 deletions
167
assets/swagger.json
generated
167
assets/swagger.json
generated
|
|
@ -818,7 +818,7 @@
|
|||
"200": {
|
||||
"description": "A successful response.",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/v1EventList"
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
|
|
@ -2291,7 +2291,7 @@
|
|||
"200": {
|
||||
"description": "A successful response.",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/v1EventList"
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
|
|
@ -3126,7 +3126,7 @@
|
|||
"200": {
|
||||
"description": "A successful response.",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/v1EventList"
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
|
|
@ -6035,6 +6035,14 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"protobufNullValue": {
|
||||
"description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value.",
|
||||
"type": "string",
|
||||
"default": "NULL_VALUE",
|
||||
"enum": [
|
||||
"NULL_VALUE"
|
||||
]
|
||||
},
|
||||
"repocredsRepoCredsResponse": {
|
||||
"type": "object",
|
||||
"title": "RepoCredsResponse is a response to most repository credentials requests"
|
||||
|
|
@ -6401,109 +6409,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"v1Event": {
|
||||
"description": "Event is a report of an event somewhere in the cluster. Events\nhave a limited retention time and triggers and messages may evolve\nwith time. Event consumers should not rely on the timing of an event\nwith a given Reason reflecting a consistent underlying trigger, or the\ncontinued existence of events with that Reason. Events should be\ntreated as informative, best-effort, supplemental data.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"title": "What action was taken/failed regarding to the Regarding object.\n+optional"
|
||||
},
|
||||
"count": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"title": "The number of times this event has occurred.\n+optional"
|
||||
},
|
||||
"eventTime": {
|
||||
"$ref": "#/definitions/v1MicroTime"
|
||||
},
|
||||
"firstTimestamp": {
|
||||
"$ref": "#/definitions/v1Time"
|
||||
},
|
||||
"involvedObject": {
|
||||
"$ref": "#/definitions/v1ObjectReference"
|
||||
},
|
||||
"lastTimestamp": {
|
||||
"$ref": "#/definitions/v1Time"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"title": "A human-readable description of the status of this operation.\nTODO: decide on maximum length.\n+optional"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "#/definitions/v1ObjectMeta"
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"title": "This should be a short, machine understandable string that gives the reason\nfor the transition into the object's current status.\nTODO: provide exact specification for format.\n+optional"
|
||||
},
|
||||
"related": {
|
||||
"$ref": "#/definitions/v1ObjectReference"
|
||||
},
|
||||
"reportingComponent": {
|
||||
"type": "string",
|
||||
"title": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n+optional"
|
||||
},
|
||||
"reportingInstance": {
|
||||
"type": "string",
|
||||
"title": "ID of the controller instance, e.g. `kubelet-xyzf`.\n+optional"
|
||||
},
|
||||
"series": {
|
||||
"$ref": "#/definitions/v1EventSeries"
|
||||
},
|
||||
"source": {
|
||||
"$ref": "#/definitions/v1EventSource"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"title": "Type of this event (Normal, Warning), new types could be added in the future\n+optional"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1EventList": {
|
||||
"description": "EventList is a list of events.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"items": {
|
||||
"type": "array",
|
||||
"title": "List of events",
|
||||
"items": {
|
||||
"$ref": "#/definitions/v1Event"
|
||||
}
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "#/definitions/v1ListMeta"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1EventSeries": {
|
||||
"description": "EventSeries contain information on series of events, i.e. thing that was/is happening\ncontinuously for some time.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"count": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"title": "Number of occurrences in this series up to the last heartbeat time"
|
||||
},
|
||||
"lastObservedTime": {
|
||||
"$ref": "#/definitions/v1MicroTime"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1EventSource": {
|
||||
"description": "EventSource contains information for an event.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"component": {
|
||||
"type": "string",
|
||||
"title": "Component from which the event is generated.\n+optional"
|
||||
},
|
||||
"host": {
|
||||
"type": "string",
|
||||
"title": "Node name on which the event is generated.\n+optional"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1FieldsV1": {
|
||||
"description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set,\nor a string representing a sub-field or item. The string will follow one of these four formats:\n'f:<name>', where <name> is the name of a field in a struct, or key in a map\n'v:<value>', where <value> is the exact json formatted value of a list item\n'i:<index>', where <index> is position of a item in a list\n'k:<keys>', where <keys> is a map of a list item's key fields to their unique values\nIf a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff\n+protobuf.options.(gogoproto.goproto_stringer)=false",
|
||||
"type": "object",
|
||||
|
|
@ -6659,22 +6564,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"v1MicroTime": {
|
||||
"description": "MicroTime is version of Time with microsecond level precision.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"nanos": {
|
||||
"description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context.",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"seconds": {
|
||||
"description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive.",
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1NodeSwapStatus": {
|
||||
"description": "NodeSwapStatus represents swap memory information.",
|
||||
"type": "object",
|
||||
|
|
@ -6816,40 +6705,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"v1ObjectReference": {
|
||||
"description": "ObjectReference contains enough information to let you inspect or modify the referred object.\n---\nNew uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.\n 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular\n restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n Those cannot be well described when embedded.\n 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity\n during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple\n and the version of the actual struct is irrelevant.\n 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type\n will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.\n\nInstead of using this type, create a locally provided and used type that is well-focused on your reference.\nFor example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n+structType=atomic",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"title": "API version of the referent.\n+optional"
|
||||
},
|
||||
"fieldPath": {
|
||||
"type": "string",
|
||||
"title": "If referring to a piece of an object instead of an entire object, this string\nshould contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\nFor example, if the object reference is to a container within a pod, this would take on a value like:\n\"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\nthe event) or if no container name is specified \"spec.containers[2]\" (container with\nindex 2 in this pod). This syntax is chosen only to have some well-defined way of\nreferencing a part of an object.\nTODO: this design is not final and this field is subject to change in the future.\n+optional"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"title": "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n+optional"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n+optional"
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"title": "Namespace of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n+optional"
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"title": "Specific resourceVersion to which this reference is made, if any.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n+optional"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"title": "UID of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\n+optional"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1OwnerReference": {
|
||||
"type": "object",
|
||||
"title": "OwnerReference contains enough information to let you identify an owning\nobject. An owning object must be in the same namespace as the dependent, or\nbe cluster-scoped, so there is no namespace field.\n+structType=atomic",
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import (
|
|||
"github.com/stretchr/testify/require"
|
||||
"golang.org/x/oauth2"
|
||||
"google.golang.org/grpc"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
|
@ -2176,7 +2176,7 @@ func (c *fakeAppServiceClient) List(_ context.Context, _ *applicationpkg.Applica
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
func (c *fakeAppServiceClient) ListResourceEvents(_ context.Context, _ *applicationpkg.ApplicationResourceEventsQuery, _ ...grpc.CallOption) (*corev1.EventList, error) {
|
||||
func (c *fakeAppServiceClient) ListResourceEvents(_ context.Context, _ *applicationpkg.ApplicationResourceEventsQuery, _ ...grpc.CallOption) (*structpb.Struct, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,28 +2,73 @@
|
|||
|
||||
## Breaking Changes
|
||||
|
||||
### Event-listing gRPC methods now return `google.protobuf.Struct`
|
||||
|
||||
Argo CD 3.4 changes the gRPC response type of the event-listing APIs from
|
||||
`k8s.io.api.core.v1.EventList` to `google.protobuf.Struct` to remain compatible
|
||||
with newer Kubernetes protobuf definitions.
|
||||
|
||||
The affected gRPC methods are:
|
||||
|
||||
- `application.ApplicationService/ListResourceEvents`
|
||||
- `applicationset.ApplicationSetService/ListResourceEvents`
|
||||
- `project.ProjectService/ListEvents`
|
||||
|
||||
#### Impact on gRPC clients
|
||||
|
||||
Any generated or custom gRPC client that calls these methods must be regenerated
|
||||
or upgraded together with the Argo CD 3.4 server.
|
||||
|
||||
This includes any older Argo CD CLI or automation that directly invokes the
|
||||
affected event-listing RPCs.
|
||||
|
||||
The `--grpc-web` flag is not a compatibility workaround for this change.
|
||||
Argo CD's grpc-web mode still uses protobuf messages for these RPCs, so older
|
||||
clients expecting `k8s.io.api.core.v1.EventList` remain incompatible.
|
||||
|
||||
#### Impact on REST clients and the UI
|
||||
|
||||
The REST endpoints and paths remain unchanged:
|
||||
|
||||
- `GET /api/v1/applications/{name}/events`
|
||||
- `GET /api/v1/applicationsets/{name}/events`
|
||||
- `GET /api/v1/projects/{name}/events`
|
||||
|
||||
The JSON response body continues to use the same `EventList`-shaped payload, so
|
||||
the Argo CD UI and REST integrations that consume these endpoints as JSON are
|
||||
not impacted.
|
||||
|
||||
#### OpenAPI / schema note
|
||||
|
||||
Although the REST paths and JSON payload remain the same, the generated OpenAPI
|
||||
schema for these endpoints now uses `protobufStruct` instead of
|
||||
`io.k8s.api.core.v1.EventList`.
|
||||
|
||||
If you generate REST clients from Argo CD's OpenAPI definition, treat this as a
|
||||
schema-level breaking change and regenerate or update those clients during the
|
||||
upgrade.
|
||||
|
||||
### Cluster version format change
|
||||
|
||||
**New behavior:**
|
||||
|
||||
3.4 now stores the cluster version in a more detailed format, `vMajor.Minor.Patch` compared to the previous format `Major.Minor`.
|
||||
3.4 now stores the cluster version in a more detailed format, `vMajor.Minor.Patch` compared to the previous format `Major.Minor`.
|
||||
|
||||
This change is aligning how ArgoCD interprets K8s cluster version with how Helm `3.19.0` and above interprets it.
|
||||
This change is aligning how ArgoCD interprets K8s cluster version with how Helm `3.19.0` and above interprets it.
|
||||
|
||||
This change makes it easier to compare versions and to support future features. It also allows for more accurate version comparisons and better compatibility with future Kubernetes releases.
|
||||
This change makes it easier to compare versions and to support future features. It also allows for more accurate version comparisons and better compatibility with future Kubernetes releases.
|
||||
|
||||
This change was also back ported to Argo CD `3.3.3`.
|
||||
|
||||
**Impact:**
|
||||
|
||||
Application Sets with Cluster Generators, that fetch clusters based on their Kubernetes version and use `argocd.argoproj.io/auto-label-cluster-info` on the cluster secret, need to be updated to use `argocd.argoproj.io/kubernetes-version` with the `vMajor.Minor.Patch` format instead of the previous `Major.Minor` format.
|
||||
Application Sets with Cluster Generators, that fetch clusters based on their Kubernetes version and use `argocd.argoproj.io/auto-label-cluster-info` on the cluster secret, need to be updated to use `argocd.argoproj.io/kubernetes-version` with the `vMajor.Minor.Patch` format instead of the previous `Major.Minor` format.
|
||||
More details [here](../applicationset/Generators-Cluster.md#fetch-clusters-based-on-their-k8s-version).
|
||||
|
||||
Additionally, API, UI and CLI commands that retrieve cluster information now return the version in the `vMajor.Minor.Patch` format.
|
||||
|
||||
The env variable $KUBE_VERSION that is used with Argo CD CMP Plugins remains unchanged and returns the version in `Major.Minor.Patch` format, so CMP Plugins are not impacted.
|
||||
|
||||
|
||||
## Behavioral Improvements / Fixes
|
||||
|
||||
### Applications with `Missing` health status
|
||||
|
|
@ -76,75 +121,4 @@ data:
|
|||
controller.grpc.enable.txt.service.config: "true"
|
||||
```
|
||||
|
||||
**Related Issue**
|
||||
|
||||
https://github.com/argoproj/argo-cd/issues/24991
|
||||
|
||||
### More detailed cluster version
|
||||
|
||||
3.4.0 now stores the cluster version in a more detailed format, Major.Minor.Patch compared to the previous format Major.Minor.
|
||||
This change is to make it easier to compare versions and to support future features.
|
||||
This change also allows for more accurate version comparisons and better compatibility with future Kubernetes releases.
|
||||
|
||||
Users will notice it in the UI and the CLI commands that retrieve cluster information.
|
||||
|
||||
## API Changes
|
||||
|
||||
<!-- Changes in API surface:
|
||||
Any removal of fields or changed API defaults -->
|
||||
|
||||
## Security Changes
|
||||
|
||||
<!-- Changes in security behavior:
|
||||
Any removal of sensitive fields or changed authentication defaults -->
|
||||
|
||||
## Deprecated Items
|
||||
|
||||
<!-- Flags / behavior to be removed in future releases
|
||||
Any deprecated config API or CLI flags -->
|
||||
|
||||
## Kustomize Upgraded
|
||||
|
||||
<!-- Bundled Kustomize version bump:
|
||||
Any breaking behavior
|
||||
Notes about specific upstream behavior changes (e.g., namespace propagation fixes). -->
|
||||
|
||||
## Helm Upgraded
|
||||
|
||||
<!-- Bundled Helm version bump:
|
||||
Any breaking behavior
|
||||
Verify if your charts depend on any features tied to Helm versions. -->
|
||||
|
||||
## Dex Upgraded
|
||||
|
||||
Argo CD v3.4 upgrades the bundled Dex version to 2.45.0. There are a few things to keep in mind, according to the
|
||||
[release notes](https://github.com/dexidp/dex/releases/tag/v2.45.0).
|
||||
|
||||
- Gomplate is used internally, but users that have configured Dex for preprocessing may be impacted.
|
||||
- The `ContinueOnConnectorFailure` feature flag is now enabled by default. To disable it, set the following `argocd-cmd-params-cm`
|
||||
ConfigMap parameter `dexserver.connector.failure.continue` to `false`.
|
||||
|
||||
## go-oidc Upgraded
|
||||
|
||||
go-oidc v3.17.0 changes the order of steps for token verification.
|
||||
|
||||
Previous order:
|
||||
```
|
||||
parse claims → signature
|
||||
```
|
||||
Updated order:
|
||||
```
|
||||
signature → parse claims
|
||||
```
|
||||
### Possible User Impact and Mitigation
|
||||
For a token that is both **expired** and **signed by a key that has since removed from JWKS due to rotation**, the signature verification failure will not redirect the user to SSO. Instead the user would be redirected to the login page and would need to manually initiate the SSO login.
|
||||
|
||||
This scenario can be avoided by implementing the provider best practice of serving previously used keys for a grace period which exceeds the token lifetime.
|
||||
|
||||
## Open Telemetry Upgraded
|
||||
|
||||
Argo CD v3.4 upgrades `go.opentelemetry.io/otel` to `1.42.0`, with semantic conventions `v1.40.0` release. Please see [semantic conventions release notes](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.40.0) for a list of changed metric names and dropped attributes, which may require changes in your Argo CD Grafana dashboards/alerts based on OTEL.
|
||||
|
||||
## Custom Healthchecks Added
|
||||
|
||||
* [nmstate.io/NodeNetworkConfigurationPolicy](https://github.com/argoproj/argo-cd/commit/7a3d6f1f6a28b44f5de73895d262473641954429)
|
||||
**Related Issue**: https://github.com/argoproj/argo-cd/issues/24991
|
||||
|
|
|
|||
392
pkg/apiclient/application/application.pb.go
generated
392
pkg/apiclient/application/application.pb.go
generated
|
|
@ -18,8 +18,8 @@ import (
|
|||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
structpb "google.golang.org/protobuf/types/known/structpb"
|
||||
io "io"
|
||||
v11 "k8s.io/api/core/v1"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
math "math"
|
||||
math_bits "math/bits"
|
||||
|
|
@ -3174,196 +3174,196 @@ func init() {
|
|||
}
|
||||
|
||||
var fileDescriptor_df6e82b174b5eaec = []byte{
|
||||
// 3017 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0xcd, 0x8f, 0x1c, 0x47,
|
||||
0x15, 0xa7, 0x66, 0x76, 0x76, 0x67, 0xdf, 0x78, 0xfd, 0x51, 0xb1, 0x4d, 0x67, 0xbc, 0x31, 0x9b,
|
||||
0xb6, 0x1d, 0x6f, 0xd6, 0xde, 0x19, 0x7b, 0x62, 0x20, 0xd9, 0x24, 0x04, 0x67, 0xed, 0x38, 0x0b,
|
||||
0x6b, 0xc7, 0xf4, 0x3a, 0x31, 0x0a, 0x07, 0xa8, 0x74, 0xd7, 0xcc, 0x34, 0xdb, 0xd3, 0xdd, 0xee,
|
||||
0xee, 0x99, 0xb0, 0x0a, 0xb9, 0x04, 0x21, 0x71, 0x88, 0x82, 0x80, 0x1c, 0x38, 0xf0, 0x99, 0x28,
|
||||
0x08, 0x21, 0x10, 0x17, 0x84, 0x90, 0x10, 0x12, 0x1c, 0x82, 0xe0, 0x80, 0x84, 0xe0, 0x1f, 0x40,
|
||||
0x11, 0xe2, 0xc0, 0x21, 0xb9, 0xe4, 0x8c, 0x50, 0x55, 0x57, 0x75, 0x77, 0xcd, 0x47, 0xcf, 0x2c,
|
||||
0x33, 0x10, 0x4b, 0xdc, 0xfa, 0xd5, 0x74, 0xbf, 0xf7, 0x7b, 0xaf, 0xde, 0x7b, 0xf5, 0xea, 0xbd,
|
||||
0x5d, 0x38, 0x1d, 0xd2, 0xa0, 0x47, 0x83, 0x3a, 0xf1, 0x7d, 0xc7, 0x36, 0x49, 0x64, 0x7b, 0x6e,
|
||||
0xf6, 0xb9, 0xe6, 0x07, 0x5e, 0xe4, 0xe1, 0x4a, 0x66, 0xa9, 0xba, 0xdc, 0xf2, 0xbc, 0x96, 0x43,
|
||||
0xeb, 0xc4, 0xb7, 0xeb, 0xc4, 0x75, 0xbd, 0x88, 0x2f, 0x87, 0xf1, 0xab, 0x55, 0x7d, 0xf7, 0xe1,
|
||||
0xb0, 0x66, 0x7b, 0xfc, 0x57, 0xd3, 0x0b, 0x68, 0xbd, 0x77, 0xb1, 0xde, 0xa2, 0x2e, 0x0d, 0x48,
|
||||
0x44, 0x2d, 0xf1, 0xce, 0xa5, 0xf4, 0x9d, 0x0e, 0x31, 0xdb, 0xb6, 0x4b, 0x83, 0xbd, 0xba, 0xbf,
|
||||
0xdb, 0x62, 0x0b, 0x61, 0xbd, 0x43, 0x23, 0x32, 0xec, 0xab, 0xed, 0x96, 0x1d, 0xb5, 0xbb, 0x2f,
|
||||
0xd4, 0x4c, 0xaf, 0x53, 0x27, 0x41, 0xcb, 0xf3, 0x03, 0xef, 0x8b, 0xfc, 0x61, 0xdd, 0xb4, 0xea,
|
||||
0xbd, 0x87, 0x52, 0x06, 0x59, 0x5d, 0x7a, 0x17, 0x89, 0xe3, 0xb7, 0xc9, 0x20, 0xb7, 0xab, 0x63,
|
||||
0xb8, 0x05, 0xd4, 0xf7, 0x84, 0x6d, 0xf8, 0xa3, 0x1d, 0x79, 0xc1, 0x5e, 0xe6, 0x31, 0x66, 0xa3,
|
||||
0xbf, 0x8f, 0xe0, 0xf0, 0xe5, 0x54, 0xde, 0x67, 0xba, 0x34, 0xd8, 0xc3, 0x18, 0xe6, 0x5c, 0xd2,
|
||||
0xa1, 0x1a, 0x5a, 0x41, 0xab, 0x8b, 0x06, 0x7f, 0xc6, 0x1a, 0x2c, 0x04, 0xb4, 0x19, 0xd0, 0xb0,
|
||||
0xad, 0x15, 0xf8, 0xb2, 0x24, 0x71, 0x15, 0xca, 0x4c, 0x38, 0x35, 0xa3, 0x50, 0x2b, 0xae, 0x14,
|
||||
0x57, 0x17, 0x8d, 0x84, 0xc6, 0xab, 0x70, 0x28, 0xa0, 0xa1, 0xd7, 0x0d, 0x4c, 0xfa, 0x1c, 0x0d,
|
||||
0x42, 0xdb, 0x73, 0xb5, 0x39, 0xfe, 0x75, 0xff, 0x32, 0xe3, 0x12, 0x52, 0x87, 0x9a, 0x91, 0x17,
|
||||
0x68, 0x25, 0xfe, 0x4a, 0x42, 0x33, 0x3c, 0x0c, 0xb8, 0x36, 0x1f, 0xe3, 0x61, 0xcf, 0x58, 0x87,
|
||||
0x03, 0xc4, 0xf7, 0x6f, 0x90, 0x0e, 0x0d, 0x7d, 0x62, 0x52, 0x6d, 0x81, 0xff, 0xa6, 0xac, 0x31,
|
||||
0xcc, 0x02, 0x89, 0x56, 0xe6, 0xc0, 0x24, 0xa9, 0x6f, 0xc2, 0xe2, 0x0d, 0xcf, 0xa2, 0xa3, 0xd5,
|
||||
0xed, 0x67, 0x5f, 0x18, 0x64, 0xaf, 0xbf, 0x8d, 0xe0, 0x98, 0x41, 0x7b, 0x36, 0xc3, 0x7f, 0x9d,
|
||||
0x46, 0xc4, 0x22, 0x11, 0xe9, 0xe7, 0x58, 0x48, 0x38, 0x56, 0xa1, 0x1c, 0x88, 0x97, 0xb5, 0x02,
|
||||
0x5f, 0x4f, 0xe8, 0x01, 0x69, 0xc5, 0x7c, 0x65, 0x62, 0x13, 0x4a, 0x12, 0xaf, 0x40, 0x25, 0xb6,
|
||||
0xe5, 0x96, 0x6b, 0xd1, 0x2f, 0x71, 0xeb, 0x95, 0x8c, 0xec, 0x12, 0x5e, 0x86, 0xc5, 0x5e, 0x6c,
|
||||
0xe7, 0x2d, 0x8b, 0x5b, 0xb1, 0x64, 0xa4, 0x0b, 0xfa, 0x3f, 0x10, 0x9c, 0xcc, 0xf8, 0x80, 0x21,
|
||||
0x76, 0xe6, 0x6a, 0x8f, 0xba, 0x51, 0x38, 0x5a, 0xa1, 0xf3, 0x70, 0x44, 0x6e, 0x62, 0xbf, 0x9d,
|
||||
0x06, 0x7f, 0x60, 0x2a, 0x66, 0x17, 0xa5, 0x8a, 0xd9, 0x35, 0xa6, 0x88, 0xa4, 0x9f, 0xdd, 0xba,
|
||||
0x22, 0xd4, 0xcc, 0x2e, 0x0d, 0x18, 0xaa, 0x94, 0x6f, 0xa8, 0x79, 0xc5, 0x50, 0xfa, 0x3f, 0x11,
|
||||
0x68, 0x19, 0x45, 0xaf, 0x13, 0xd7, 0x6e, 0xd2, 0x30, 0x9a, 0x74, 0xcf, 0xd0, 0x0c, 0xf7, 0x6c,
|
||||
0x15, 0x0e, 0xc5, 0x5a, 0xdd, 0x64, 0xf1, 0xc8, 0xf2, 0x8f, 0x56, 0x5a, 0x29, 0xae, 0x16, 0x8d,
|
||||
0xfe, 0x65, 0xb6, 0x77, 0x52, 0x66, 0xa8, 0xcd, 0x73, 0x37, 0x4e, 0x17, 0x98, 0x04, 0xd7, 0xdb,
|
||||
0x24, 0x66, 0x3b, 0x8e, 0x80, 0xb2, 0x21, 0x49, 0xfd, 0x7e, 0x58, 0x7c, 0xca, 0x76, 0xe8, 0x66,
|
||||
0xbb, 0xeb, 0xee, 0xe2, 0xa3, 0x50, 0x32, 0xd9, 0x03, 0xd7, 0xee, 0x80, 0x11, 0x13, 0xfa, 0x37,
|
||||
0x10, 0xdc, 0x3f, 0xca, 0x1e, 0xb7, 0xed, 0xa8, 0xcd, 0xbe, 0x0f, 0x47, 0x19, 0xc6, 0x6c, 0x53,
|
||||
0x73, 0x37, 0xec, 0x76, 0xa4, 0x33, 0x4b, 0x7a, 0x3a, 0xc3, 0xe8, 0x3f, 0x41, 0xb0, 0x3a, 0x16,
|
||||
0xd3, 0xed, 0x80, 0xf8, 0x3e, 0x0d, 0xf0, 0x53, 0x50, 0xba, 0xc3, 0x7e, 0xe0, 0xa1, 0x5b, 0x69,
|
||||
0xd4, 0x6a, 0xd9, 0xd4, 0x3f, 0x96, 0xcb, 0xd3, 0x1f, 0x32, 0xe2, 0xcf, 0x71, 0x4d, 0x9a, 0xa7,
|
||||
0xc0, 0xf9, 0x1c, 0x57, 0xf8, 0x24, 0x56, 0x64, 0xef, 0xf3, 0xd7, 0x9e, 0x9c, 0x87, 0x39, 0x9f,
|
||||
0x04, 0x91, 0x7e, 0x0c, 0xee, 0x51, 0x03, 0xc7, 0xf7, 0xdc, 0x90, 0xea, 0xbf, 0x56, 0xfd, 0x6c,
|
||||
0x33, 0xa0, 0x24, 0xa2, 0x06, 0xbd, 0xd3, 0xa5, 0x61, 0x84, 0x77, 0x21, 0x7b, 0x1a, 0x71, 0xab,
|
||||
0x56, 0x1a, 0x5b, 0xb5, 0x34, 0x9d, 0xd7, 0x64, 0x3a, 0xe7, 0x0f, 0x9f, 0x37, 0xad, 0x5a, 0xef,
|
||||
0xa1, 0x9a, 0xbf, 0xdb, 0xaa, 0xb1, 0xc3, 0x41, 0x41, 0x26, 0x0f, 0x87, 0xac, 0xaa, 0x46, 0x96,
|
||||
0x3b, 0x3e, 0x0e, 0xf3, 0x5d, 0x3f, 0xa4, 0x41, 0xc4, 0x35, 0x2b, 0x1b, 0x82, 0x62, 0xfb, 0xd7,
|
||||
0x23, 0x8e, 0x6d, 0x91, 0x28, 0xde, 0x9f, 0xb2, 0x91, 0xd0, 0xfa, 0x6f, 0x54, 0xf4, 0xcf, 0xfa,
|
||||
0xd6, 0x07, 0x85, 0x3e, 0x8b, 0xb2, 0xa0, 0xa2, 0xcc, 0x7a, 0x50, 0x51, 0xf5, 0xa0, 0x5f, 0xa8,
|
||||
0xf8, 0xaf, 0x50, 0x87, 0xa6, 0xf8, 0x87, 0x39, 0xb3, 0x06, 0x0b, 0x26, 0x09, 0x4d, 0x62, 0x49,
|
||||
0x29, 0x92, 0x64, 0x29, 0xce, 0x0f, 0x3c, 0x9f, 0xb4, 0x38, 0xa7, 0x9b, 0x9e, 0x63, 0x9b, 0x7b,
|
||||
0x42, 0xdc, 0xe0, 0x0f, 0x03, 0x8e, 0x3f, 0x97, 0xef, 0xf8, 0x25, 0x15, 0xf6, 0x29, 0xa8, 0xec,
|
||||
0xec, 0xb9, 0xe6, 0x33, 0x7e, 0x1c, 0xf6, 0x47, 0xa1, 0x64, 0x47, 0xb4, 0x13, 0x6a, 0x88, 0x87,
|
||||
0x7c, 0x4c, 0xe8, 0xff, 0x2a, 0xc1, 0xf1, 0x8c, 0x6e, 0xec, 0x83, 0x3c, 0xcd, 0xf2, 0xf2, 0xd7,
|
||||
0x71, 0x98, 0xb7, 0x82, 0x3d, 0xa3, 0xeb, 0x0a, 0x07, 0x10, 0x14, 0x13, 0xec, 0x07, 0x5d, 0x37,
|
||||
0x86, 0x5f, 0x36, 0x62, 0x02, 0x37, 0xa1, 0x1c, 0x46, 0xac, 0xfe, 0x68, 0xed, 0x71, 0xe0, 0x95,
|
||||
0xc6, 0xa7, 0xa6, 0xdb, 0x74, 0x06, 0x7d, 0x47, 0x70, 0x34, 0x12, 0xde, 0xf8, 0x0e, 0xcb, 0x76,
|
||||
0x71, 0x0a, 0x0c, 0xb5, 0x85, 0x95, 0xe2, 0x6a, 0xa5, 0xb1, 0x33, 0xbd, 0xa0, 0x67, 0x7c, 0x56,
|
||||
0x3b, 0x65, 0xce, 0x36, 0x23, 0x95, 0xc2, 0x12, 0x6c, 0x47, 0xe4, 0x87, 0x50, 0xd4, 0x09, 0xe9,
|
||||
0x02, 0xfe, 0x2c, 0x94, 0x6c, 0xb7, 0xe9, 0x85, 0xda, 0x22, 0x07, 0xf3, 0xe4, 0x74, 0x60, 0xb6,
|
||||
0xdc, 0xa6, 0x67, 0xc4, 0x0c, 0xf1, 0x1d, 0x58, 0x0a, 0x68, 0x14, 0xec, 0x49, 0x2b, 0x68, 0xc0,
|
||||
0xed, 0xfa, 0xe9, 0xe9, 0x24, 0x18, 0x59, 0x96, 0x86, 0x2a, 0x01, 0x6f, 0x40, 0x25, 0x4c, 0x7d,
|
||||
0x4c, 0xab, 0x70, 0x81, 0x9a, 0xc2, 0x28, 0xe3, 0x83, 0x46, 0xf6, 0xe5, 0x01, 0xef, 0x3e, 0x90,
|
||||
0xef, 0xdd, 0x4b, 0x63, 0xcf, 0xbb, 0x83, 0x13, 0x9c, 0x77, 0x87, 0xfa, 0xce, 0x3b, 0xfd, 0x3d,
|
||||
0x04, 0xcb, 0x03, 0xc9, 0x69, 0xc7, 0xa7, 0xb9, 0x61, 0x40, 0x60, 0x2e, 0xf4, 0xa9, 0xc9, 0x4f,
|
||||
0xaa, 0x4a, 0xe3, 0xfa, 0xcc, 0xb2, 0x15, 0x97, 0xcb, 0x59, 0xe7, 0x25, 0xd4, 0x29, 0xf3, 0xc2,
|
||||
0xf7, 0x11, 0x7c, 0x38, 0x23, 0xf3, 0x26, 0x89, 0xcc, 0x76, 0x9e, 0xb2, 0x2c, 0x7e, 0xd9, 0x3b,
|
||||
0xe2, 0x5c, 0x8e, 0x09, 0x66, 0x55, 0xfe, 0x70, 0x6b, 0xcf, 0x67, 0x00, 0xd9, 0x2f, 0xe9, 0xc2,
|
||||
0x94, 0x65, 0xd5, 0x4f, 0x11, 0x54, 0xb3, 0x39, 0xdc, 0x73, 0x9c, 0x17, 0x88, 0xb9, 0x9b, 0x07,
|
||||
0xf2, 0x20, 0x14, 0x6c, 0x8b, 0x23, 0x2c, 0x1a, 0x05, 0xdb, 0xda, 0x67, 0x32, 0xea, 0x87, 0x3b,
|
||||
0x9f, 0x0f, 0x77, 0x41, 0x85, 0xfb, 0x7e, 0x1f, 0x5c, 0x99, 0x12, 0x72, 0xe0, 0x2e, 0xc3, 0xa2,
|
||||
0xdb, 0x57, 0xe2, 0xa6, 0x0b, 0x43, 0x4a, 0xdb, 0xc2, 0x40, 0x69, 0xab, 0xc1, 0x42, 0x2f, 0xb9,
|
||||
0x00, 0xb1, 0x9f, 0x25, 0xc9, 0x54, 0x6c, 0x05, 0x5e, 0xd7, 0x17, 0x46, 0x8f, 0x09, 0x86, 0x62,
|
||||
0xd7, 0x76, 0x59, 0xb1, 0xce, 0x51, 0xb0, 0xe7, 0xfd, 0x5f, 0x79, 0x14, 0xb5, 0x7f, 0x56, 0x80,
|
||||
0x8f, 0x0c, 0x51, 0x7b, 0xac, 0x3f, 0xdd, 0x1d, 0xba, 0x27, 0x5e, 0xbd, 0x30, 0xd2, 0xab, 0xcb,
|
||||
0xe3, 0xbc, 0x7a, 0x31, 0xdf, 0x5e, 0xa0, 0xda, 0xeb, 0xc7, 0x05, 0x58, 0x19, 0x62, 0xaf, 0xf1,
|
||||
0xe5, 0xc4, 0x5d, 0x63, 0xb0, 0xa6, 0x17, 0x98, 0xf2, 0x5a, 0x10, 0x13, 0x2c, 0xce, 0xbc, 0xc0,
|
||||
0x6f, 0x13, 0x97, 0x7b, 0x47, 0xd9, 0x10, 0xd4, 0x94, 0xa6, 0xba, 0x02, 0x9a, 0x34, 0xcf, 0x65,
|
||||
0x33, 0x4e, 0x52, 0x01, 0xe9, 0xd0, 0x88, 0x06, 0xe1, 0xa8, 0x14, 0xd5, 0x23, 0x4e, 0x97, 0xca,
|
||||
0x14, 0xc5, 0x09, 0xfd, 0xb5, 0x42, 0x3f, 0x1b, 0xa3, 0xeb, 0xde, 0xfd, 0x86, 0x3e, 0x0e, 0xf3,
|
||||
0x84, 0xa3, 0x15, 0xae, 0x29, 0xa8, 0x01, 0x93, 0x96, 0xf3, 0x4d, 0xba, 0xa8, 0x98, 0x74, 0xa3,
|
||||
0xa0, 0x21, 0xfd, 0xbd, 0x02, 0x54, 0x47, 0x19, 0xe4, 0xb9, 0xc6, 0xff, 0x9b, 0x49, 0x30, 0x01,
|
||||
0x2d, 0x18, 0xe1, 0x65, 0x1a, 0xf0, 0xe2, 0xec, 0x8c, 0x72, 0x62, 0x8f, 0x72, 0x49, 0x63, 0x24,
|
||||
0x1b, 0xfd, 0xab, 0x08, 0x4e, 0xa8, 0x9f, 0x85, 0xdb, 0x76, 0x18, 0xc9, 0x8b, 0x1d, 0x6e, 0xc2,
|
||||
0x42, 0xac, 0x4a, 0x5c, 0x96, 0x57, 0x1a, 0xdb, 0xd3, 0x16, 0x6b, 0xca, 0xee, 0x4a, 0xe6, 0xfa,
|
||||
0x23, 0x70, 0x62, 0xe8, 0x09, 0x25, 0x60, 0x54, 0xa1, 0x2c, 0x0b, 0x54, 0xb1, 0xfb, 0x09, 0xad,
|
||||
0xbf, 0x39, 0xa7, 0x96, 0x0b, 0x9e, 0xb5, 0xed, 0xb5, 0x72, 0xba, 0x38, 0xf9, 0x1e, 0xc3, 0x76,
|
||||
0xc3, 0xb3, 0x32, 0x0d, 0x1b, 0x49, 0xb2, 0xef, 0x4c, 0xcf, 0x8d, 0x88, 0xed, 0xd2, 0x40, 0x54,
|
||||
0x34, 0xe9, 0x02, 0xdb, 0xe9, 0xd0, 0x76, 0x4d, 0xba, 0x43, 0x4d, 0xcf, 0xb5, 0x42, 0xee, 0x32,
|
||||
0x45, 0x43, 0x59, 0xc3, 0x4f, 0xc3, 0x22, 0xa7, 0x6f, 0xd9, 0x9d, 0xf8, 0x08, 0xaf, 0x34, 0xd6,
|
||||
0x6a, 0x71, 0x67, 0xb5, 0x96, 0xed, 0xac, 0xa6, 0x36, 0xec, 0xd0, 0x88, 0xd4, 0x7a, 0x17, 0x6b,
|
||||
0xec, 0x0b, 0x23, 0xfd, 0x98, 0x61, 0x89, 0x88, 0xed, 0x6c, 0xdb, 0x2e, 0xbf, 0x34, 0x30, 0x51,
|
||||
0xe9, 0x02, 0xf3, 0xc6, 0xa6, 0xe7, 0x38, 0xde, 0x8b, 0x32, 0xe7, 0xc5, 0x14, 0xfb, 0xaa, 0xeb,
|
||||
0x46, 0xb6, 0xc3, 0xe5, 0xc7, 0xbe, 0x96, 0x2e, 0xf0, 0xaf, 0x6c, 0x27, 0xa2, 0x81, 0x48, 0x76,
|
||||
0x82, 0x4a, 0xfc, 0xbd, 0x12, 0x37, 0x0b, 0x65, 0xae, 0x8d, 0x23, 0xe3, 0x40, 0x36, 0x32, 0xfa,
|
||||
0xa3, 0x6d, 0x69, 0x48, 0xc7, 0x8b, 0xf7, 0x4e, 0x69, 0xcf, 0xf6, 0xba, 0xac, 0x1e, 0xe6, 0x65,
|
||||
0xa3, 0xa4, 0x07, 0xa2, 0xe5, 0x50, 0x7e, 0xb4, 0x1c, 0x56, 0xa3, 0x85, 0xdf, 0x6a, 0x22, 0xb3,
|
||||
0xbd, 0x49, 0x42, 0xaa, 0x1d, 0xe1, 0xac, 0xd3, 0x05, 0xfd, 0xb7, 0x08, 0xca, 0xdb, 0x5e, 0xeb,
|
||||
0xaa, 0x1b, 0x05, 0x7b, 0xfc, 0xfe, 0xeb, 0xb9, 0x11, 0x75, 0xa5, 0x37, 0x49, 0x92, 0x6d, 0x51,
|
||||
0x64, 0x77, 0xe8, 0x4e, 0x44, 0x3a, 0xbe, 0xa8, 0x9e, 0xf7, 0xb5, 0x45, 0xc9, 0xc7, 0xcc, 0x6c,
|
||||
0x0e, 0x09, 0x23, 0x9e, 0x72, 0xca, 0x06, 0x7f, 0x66, 0x0a, 0x26, 0x2f, 0xec, 0x44, 0x81, 0xc8,
|
||||
0x37, 0xca, 0x5a, 0xd6, 0x01, 0x4b, 0x31, 0x36, 0x41, 0xea, 0x1d, 0xb8, 0x37, 0xb9, 0xd6, 0xdd,
|
||||
0xa2, 0x41, 0xc7, 0x76, 0x49, 0xfe, 0xb9, 0x3c, 0x41, 0x4b, 0x37, 0xa7, 0xab, 0xe0, 0x29, 0x21,
|
||||
0xc9, 0x6e, 0x49, 0xb7, 0x6d, 0xd7, 0xf2, 0x5e, 0xcc, 0x09, 0xad, 0xe9, 0x04, 0xfe, 0x45, 0xed,
|
||||
0xca, 0x66, 0x24, 0x26, 0x79, 0xe0, 0x69, 0x58, 0x62, 0x19, 0xa3, 0x47, 0xc5, 0x0f, 0x22, 0x29,
|
||||
0xe9, 0xa3, 0xda, 0x60, 0x29, 0x0f, 0x43, 0xfd, 0x10, 0x6f, 0xc3, 0x21, 0x12, 0x86, 0x76, 0xcb,
|
||||
0xa5, 0x96, 0xe4, 0x55, 0x98, 0x98, 0x57, 0xff, 0xa7, 0x71, 0x43, 0x85, 0xbf, 0x21, 0xf6, 0x5b,
|
||||
0x92, 0xfa, 0x57, 0x10, 0x1c, 0x1b, 0xca, 0x24, 0x89, 0x2b, 0x94, 0x39, 0x47, 0xaa, 0x50, 0x0e,
|
||||
0xcd, 0x36, 0xb5, 0xba, 0x8e, 0x2c, 0x15, 0x12, 0x9a, 0xfd, 0x66, 0x75, 0xe3, 0xdd, 0x17, 0xe7,
|
||||
0x58, 0x42, 0xe3, 0x93, 0x00, 0x1d, 0xe2, 0x76, 0x89, 0xc3, 0x21, 0xcc, 0x71, 0x08, 0x99, 0x15,
|
||||
0x7d, 0x19, 0xaa, 0xc3, 0x5c, 0x47, 0x74, 0xef, 0xde, 0x45, 0x70, 0x50, 0xa6, 0x5c, 0xb1, 0xbb,
|
||||
0xab, 0x70, 0x28, 0x63, 0x86, 0x1b, 0xe9, 0x46, 0xf7, 0x2f, 0x8f, 0x49, 0xa7, 0xd2, 0x4b, 0x8a,
|
||||
0xea, 0x60, 0xa5, 0xa7, 0x8c, 0x46, 0x26, 0x3e, 0x70, 0xd1, 0x8c, 0x6e, 0x06, 0x5f, 0x06, 0xed,
|
||||
0x3a, 0x71, 0x49, 0x8b, 0x5a, 0x89, 0xda, 0x89, 0x8b, 0x7d, 0x21, 0xdb, 0x86, 0x9a, 0xba, 0xe9,
|
||||
0x93, 0x14, 0xd1, 0x76, 0xb3, 0x29, 0x5b, 0x5a, 0xaf, 0x17, 0x54, 0x3f, 0xe7, 0x33, 0xab, 0x1d,
|
||||
0xdb, 0xe2, 0x2f, 0xc5, 0xe6, 0xd7, 0x60, 0x41, 0xa8, 0x22, 0x13, 0x94, 0x20, 0xa7, 0x0b, 0x31,
|
||||
0xec, 0xc3, 0x92, 0x63, 0xf7, 0x68, 0xa2, 0xb5, 0x36, 0x37, 0x73, 0x25, 0x55, 0x01, 0xcc, 0x91,
|
||||
0x22, 0x12, 0xb4, 0x68, 0x74, 0x3d, 0xe9, 0x38, 0x95, 0x78, 0x8b, 0xa3, 0x7f, 0x59, 0xff, 0xa1,
|
||||
0xda, 0x9b, 0x57, 0xcd, 0xf2, 0xbf, 0xdb, 0x1e, 0x5e, 0x6b, 0x78, 0x96, 0xdd, 0xb4, 0x69, 0x7c,
|
||||
0x5f, 0x2f, 0x1b, 0x09, 0xad, 0x07, 0x50, 0xde, 0xb6, 0xdd, 0xdd, 0x2d, 0xb7, 0xe9, 0x31, 0x67,
|
||||
0x8d, 0xec, 0xc8, 0x91, 0x3b, 0x14, 0x13, 0xf8, 0x30, 0x14, 0xbb, 0x81, 0x23, 0x82, 0x97, 0x3d,
|
||||
0xe2, 0x15, 0xa8, 0x58, 0x34, 0x34, 0x03, 0xdb, 0x17, 0xa1, 0xcb, 0x67, 0x3c, 0x99, 0x25, 0x16,
|
||||
0x42, 0xb6, 0xe9, 0xb9, 0x9b, 0x0e, 0x09, 0x43, 0x59, 0x59, 0x24, 0x0b, 0xfa, 0x63, 0xb0, 0xc4,
|
||||
0x64, 0xa6, 0x1e, 0x7a, 0x4e, 0x35, 0xc1, 0x31, 0x45, 0x35, 0x09, 0x4f, 0x3a, 0x1b, 0x81, 0x7b,
|
||||
0x58, 0x41, 0x77, 0xd9, 0xf7, 0x05, 0x93, 0x09, 0x6f, 0x17, 0xc5, 0x61, 0x85, 0xd1, 0xd0, 0x01,
|
||||
0x46, 0xe3, 0xdd, 0xb3, 0x80, 0xfb, 0x36, 0xce, 0x36, 0x29, 0xfe, 0x26, 0x82, 0x39, 0x26, 0x1a,
|
||||
0xdf, 0x37, 0x2a, 0xa3, 0x72, 0x5f, 0xaf, 0xce, 0xae, 0x3b, 0xc5, 0xa4, 0xe9, 0xcb, 0xaf, 0xfc,
|
||||
0xf5, 0xef, 0xdf, 0x2a, 0x1c, 0xc7, 0x47, 0xf9, 0x40, 0xbb, 0x77, 0x31, 0x3b, 0x5c, 0x0e, 0xf1,
|
||||
0xab, 0x08, 0xb0, 0x28, 0x70, 0x33, 0x23, 0x3f, 0x7c, 0x6e, 0x14, 0xc4, 0x21, 0xa3, 0xc1, 0xea,
|
||||
0x7d, 0x99, 0x82, 0xa0, 0x66, 0x7a, 0x01, 0x65, 0xc7, 0x3f, 0x7f, 0x81, 0x03, 0x58, 0xe3, 0x00,
|
||||
0x4e, 0x63, 0x7d, 0x18, 0x80, 0xfa, 0x4b, 0xcc, 0xa2, 0x2f, 0xd7, 0x69, 0x2c, 0xf7, 0x0d, 0x04,
|
||||
0xa5, 0xdb, 0xfc, 0x62, 0x3f, 0xc6, 0x48, 0x3b, 0x33, 0x33, 0x12, 0x17, 0xc7, 0xd1, 0xea, 0xa7,
|
||||
0x38, 0xd2, 0xfb, 0xf0, 0x09, 0x89, 0x34, 0x8c, 0x02, 0x4a, 0x3a, 0x0a, 0xe0, 0x0b, 0x08, 0xbf,
|
||||
0x85, 0x60, 0x3e, 0x9e, 0xe8, 0xe0, 0x33, 0xa3, 0x50, 0x2a, 0x13, 0x9f, 0xea, 0xec, 0xc6, 0x23,
|
||||
0xfa, 0x83, 0x1c, 0xe3, 0x29, 0x7d, 0xe8, 0x76, 0x6e, 0x28, 0xc3, 0x93, 0xd7, 0x11, 0x14, 0xaf,
|
||||
0xd1, 0xb1, 0xfe, 0x36, 0x43, 0x70, 0x03, 0x06, 0x1c, 0xb2, 0xd5, 0xf8, 0x4d, 0x04, 0xf7, 0x5e,
|
||||
0xa3, 0xd1, 0xf0, 0xca, 0x06, 0xaf, 0x8e, 0x2f, 0x37, 0x84, 0xdb, 0x9d, 0x9b, 0xe0, 0xcd, 0xe4,
|
||||
0x48, 0xaf, 0x73, 0x64, 0x0f, 0xe2, 0xb3, 0x79, 0x4e, 0x18, 0xee, 0xb9, 0xe6, 0x8b, 0x02, 0xc7,
|
||||
0x1f, 0x11, 0x1c, 0xee, 0x1f, 0xed, 0x63, 0xbd, 0xef, 0x7a, 0x39, 0x64, 0xf2, 0x5f, 0xbd, 0x31,
|
||||
0x6d, 0x06, 0x56, 0x99, 0xea, 0x97, 0x39, 0xf2, 0x47, 0xf1, 0x23, 0x79, 0xc8, 0x93, 0xf6, 0x78,
|
||||
0xfd, 0x25, 0xf9, 0xf8, 0x32, 0xff, 0x33, 0x14, 0x0e, 0xfb, 0x4f, 0x08, 0x8e, 0x4a, 0xbe, 0x9b,
|
||||
0x6d, 0x12, 0x44, 0x57, 0x28, 0xbb, 0x1c, 0x85, 0x13, 0xe9, 0x33, 0xe5, 0x89, 0x92, 0x95, 0xa7,
|
||||
0x5f, 0xe5, 0xba, 0x3c, 0x81, 0x1f, 0xdf, 0xb7, 0x2e, 0x26, 0x63, 0x63, 0x09, 0xd8, 0x6f, 0x23,
|
||||
0x38, 0x78, 0x8d, 0x46, 0xcf, 0x6c, 0x6e, 0xed, 0x6b, 0x67, 0xa6, 0x74, 0xf4, 0x8c, 0x38, 0xfd,
|
||||
0x0a, 0x57, 0xe4, 0x13, 0xf8, 0xb1, 0x7d, 0x2b, 0xe2, 0x99, 0x76, 0xb2, 0x2f, 0xaf, 0x20, 0x38,
|
||||
0x70, 0x2d, 0x73, 0xe4, 0x8f, 0x4e, 0x27, 0xca, 0xf8, 0xba, 0xba, 0x5c, 0xcb, 0xfc, 0x15, 0x8f,
|
||||
0xfc, 0x29, 0x71, 0xf5, 0x75, 0x8e, 0xed, 0x2c, 0x3e, 0x93, 0x87, 0x2d, 0x1d, 0x6f, 0xbd, 0x81,
|
||||
0xe0, 0x58, 0x16, 0x44, 0x3a, 0xf6, 0xff, 0xe8, 0xfe, 0x86, 0xe9, 0x62, 0x24, 0x3f, 0x06, 0x5d,
|
||||
0x83, 0xa3, 0x3b, 0xaf, 0x0f, 0x0f, 0xc4, 0xce, 0x00, 0x8a, 0x0d, 0xb4, 0xb6, 0x8a, 0xf0, 0xef,
|
||||
0x10, 0xcc, 0xc7, 0x93, 0x9e, 0xd1, 0x36, 0x52, 0xc6, 0xd4, 0xb3, 0xcc, 0x6a, 0xc2, 0x6b, 0xab,
|
||||
0x17, 0x86, 0x1b, 0x34, 0xfb, 0xbd, 0xdc, 0xda, 0x1a, 0xb7, 0xb2, 0x9a, 0x8e, 0x7f, 0x89, 0x00,
|
||||
0xd2, 0x69, 0x15, 0x7e, 0x30, 0x5f, 0x8f, 0xcc, 0x44, 0xab, 0x3a, 0xdb, 0x79, 0x95, 0x5e, 0xe3,
|
||||
0xfa, 0xac, 0x56, 0x57, 0x72, 0x73, 0xa1, 0x4f, 0xcd, 0x8d, 0x78, 0xb2, 0xf5, 0x03, 0x04, 0x25,
|
||||
0x3e, 0x24, 0xc0, 0xa7, 0x47, 0x61, 0xce, 0xce, 0x10, 0x66, 0x69, 0xfa, 0x07, 0x38, 0xd4, 0x95,
|
||||
0x46, 0xde, 0x81, 0xb2, 0x81, 0xd6, 0x70, 0x0f, 0xe6, 0xe3, 0xb6, 0xfc, 0x68, 0xf7, 0x50, 0xda,
|
||||
0xf6, 0xd5, 0x95, 0x9c, 0x02, 0x27, 0x76, 0x54, 0x71, 0x96, 0xad, 0x8d, 0x3b, 0xcb, 0xe6, 0xd8,
|
||||
0x71, 0x83, 0x4f, 0xe5, 0x1d, 0x46, 0xff, 0x05, 0xc3, 0x9c, 0xe3, 0xe8, 0xce, 0xe8, 0x2b, 0xe3,
|
||||
0xce, 0x33, 0x66, 0x9d, 0x6f, 0x23, 0x38, 0xdc, 0x7f, 0xbf, 0xc3, 0x27, 0x86, 0xb6, 0x4a, 0xc5,
|
||||
0xd9, 0xaa, 0x5a, 0x71, 0xd4, 0xdd, 0x50, 0xff, 0x24, 0x47, 0xb1, 0x81, 0x1f, 0x1e, 0x1b, 0x19,
|
||||
0x37, 0x64, 0xd6, 0x61, 0x8c, 0xd6, 0xd3, 0xd1, 0xfb, 0x8f, 0x10, 0x1c, 0x54, 0x6f, 0x36, 0xa3,
|
||||
0x6b, 0xcf, 0x21, 0x17, 0xc3, 0x6a, 0x6d, 0xb2, 0x97, 0x13, 0xc4, 0x1f, 0xe7, 0x88, 0x2f, 0xe2,
|
||||
0xfa, 0x48, 0xc4, 0x31, 0xd2, 0xf8, 0x0f, 0x27, 0xd7, 0x43, 0xdb, 0xa2, 0xeb, 0x16, 0x43, 0xf5,
|
||||
0x2b, 0x04, 0x07, 0xa4, 0x01, 0x6e, 0x05, 0x94, 0xe6, 0xdb, 0x6f, 0x76, 0x11, 0xcb, 0x64, 0xe9,
|
||||
0x8f, 0x71, 0xd4, 0x1f, 0xc3, 0x97, 0x26, 0xb4, 0xb3, 0xb4, 0xef, 0x7a, 0xc4, 0x90, 0xfe, 0x1e,
|
||||
0xc1, 0x91, 0xdb, 0x71, 0x80, 0x7e, 0x40, 0xf8, 0x37, 0x39, 0xfe, 0xc7, 0xf1, 0xa3, 0x39, 0x85,
|
||||
0xf5, 0x38, 0x35, 0x2e, 0x20, 0xfc, 0x73, 0x04, 0x65, 0x39, 0x5b, 0xc6, 0x67, 0x47, 0x46, 0xb0,
|
||||
0x3a, 0x7d, 0x9e, 0x65, 0xd4, 0x89, 0x2a, 0x52, 0x3f, 0x9d, 0x7b, 0xec, 0x0b, 0xf9, 0x2c, 0xf2,
|
||||
0x5e, 0x47, 0x80, 0x93, 0xfe, 0x52, 0xd2, 0x71, 0xc2, 0x0f, 0x28, 0xa2, 0x46, 0x36, 0x31, 0xab,
|
||||
0x67, 0xc7, 0xbe, 0xa7, 0x9e, 0xf9, 0x6b, 0xb9, 0x67, 0xbe, 0x97, 0xc8, 0x7f, 0x0d, 0x41, 0xe5,
|
||||
0x1a, 0x4d, 0x2e, 0x7d, 0x39, 0xb6, 0x54, 0x47, 0xe3, 0xd5, 0xd5, 0xf1, 0x2f, 0x0a, 0x44, 0xe7,
|
||||
0x39, 0xa2, 0x07, 0x70, 0xbe, 0xa9, 0x24, 0x80, 0xef, 0x20, 0x58, 0xba, 0x99, 0x75, 0x51, 0x7c,
|
||||
0x7e, 0x9c, 0x24, 0xe5, 0xc8, 0x99, 0x1c, 0xd7, 0x43, 0x1c, 0xd7, 0xba, 0x3e, 0x11, 0xae, 0x0d,
|
||||
0x31, 0x65, 0xfe, 0x1e, 0x8a, 0xbb, 0x06, 0x7d, 0x93, 0xa1, 0xff, 0xd4, 0x6e, 0x39, 0x03, 0x26,
|
||||
0xfd, 0x12, 0xc7, 0x57, 0xc3, 0xe7, 0x27, 0xc1, 0x57, 0x17, 0xe3, 0x22, 0xfc, 0x5d, 0x04, 0x47,
|
||||
0xf8, 0x68, 0x30, 0xcb, 0x18, 0xe7, 0x4d, 0xc3, 0xd2, 0x41, 0xe2, 0x04, 0x67, 0xe1, 0x13, 0x71,
|
||||
0xfe, 0xd1, 0xf7, 0x05, 0x6a, 0x43, 0x0c, 0xfd, 0xbe, 0x56, 0x40, 0x6c, 0x7f, 0xef, 0x19, 0xc0,
|
||||
0xf7, 0x5c, 0xa3, 0xcf, 0x80, 0xa3, 0x47, 0x9d, 0x13, 0x60, 0xdc, 0xe0, 0x18, 0x2f, 0xe9, 0xf5,
|
||||
0xfd, 0x60, 0xac, 0xf7, 0x1a, 0x2c, 0x4c, 0xbf, 0x8e, 0xe0, 0xa0, 0xac, 0x0f, 0x84, 0xff, 0xad,
|
||||
0x8f, 0xdb, 0xda, 0xfd, 0xd6, 0x13, 0x22, 0x20, 0xd6, 0x26, 0x0b, 0x88, 0xb7, 0x10, 0x2c, 0x88,
|
||||
0xc9, 0x5d, 0x4e, 0xd5, 0x95, 0x19, 0xed, 0x55, 0xfb, 0xda, 0x5e, 0x62, 0xb4, 0xa3, 0x7f, 0x8e,
|
||||
0x8b, 0x7d, 0x16, 0xe7, 0x9a, 0xc5, 0xf7, 0xac, 0xb0, 0xfe, 0x92, 0x98, 0xab, 0xbc, 0x5c, 0x77,
|
||||
0xbc, 0x56, 0xf8, 0xbc, 0x8e, 0x73, 0x6b, 0x0b, 0xf6, 0xce, 0x05, 0x84, 0x23, 0x58, 0x64, 0xee,
|
||||
0xcb, 0x7b, 0x69, 0x78, 0xa5, 0xaf, 0xf3, 0x36, 0xd0, 0x66, 0xab, 0x56, 0x07, 0x7a, 0x73, 0x69,
|
||||
0x31, 0x21, 0x3a, 0x1b, 0xf8, 0xfe, 0x5c, 0xb1, 0x5c, 0xd0, 0xab, 0x08, 0x8e, 0x64, 0xe3, 0x31,
|
||||
0x16, 0x3f, 0x71, 0x34, 0xe6, 0xa1, 0x10, 0xf7, 0x13, 0xbc, 0x36, 0x91, 0x1b, 0x71, 0x38, 0x4f,
|
||||
0x3e, 0xf5, 0x87, 0x77, 0x4e, 0xa2, 0x3f, 0xbf, 0x73, 0x12, 0xfd, 0xed, 0x9d, 0x93, 0xe8, 0xf9,
|
||||
0x87, 0x27, 0xfb, 0x2f, 0x0f, 0xd3, 0xb1, 0xa9, 0x1b, 0x65, 0xd9, 0xff, 0x3b, 0x00, 0x00, 0xff,
|
||||
0xff, 0xf3, 0x23, 0xc0, 0x98, 0xcb, 0x32, 0x00, 0x00,
|
||||
// 3024 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0xcf, 0x8f, 0x1c, 0x47,
|
||||
0xf5, 0xff, 0xd6, 0xcc, 0xce, 0xee, 0xec, 0x1b, 0xaf, 0x7f, 0x54, 0x6c, 0xa7, 0x33, 0xde, 0xf8,
|
||||
0xbb, 0x69, 0xdb, 0xf1, 0x66, 0xed, 0x9d, 0xb1, 0x27, 0x06, 0x92, 0x4d, 0x42, 0x70, 0xd6, 0x8e,
|
||||
0xb3, 0xb0, 0x76, 0x4c, 0xaf, 0x13, 0xa3, 0x70, 0x80, 0x4a, 0x77, 0xcd, 0x4c, 0xb3, 0x3d, 0xdd,
|
||||
0xed, 0xee, 0x9e, 0x09, 0xab, 0x90, 0x4b, 0x10, 0x88, 0x03, 0x0a, 0x02, 0x72, 0xe0, 0xc0, 0xcf,
|
||||
0x44, 0x41, 0x08, 0x81, 0xb8, 0x20, 0x84, 0x84, 0x90, 0xe0, 0x10, 0x04, 0x07, 0x24, 0x04, 0xff,
|
||||
0x00, 0x8a, 0x10, 0x42, 0x1c, 0xc8, 0x25, 0x67, 0x84, 0xaa, 0xba, 0xaa, 0xbb, 0x6b, 0x7e, 0xf4,
|
||||
0xcc, 0x32, 0x03, 0xb1, 0xc4, 0xad, 0x5f, 0x4d, 0xf7, 0x7b, 0x9f, 0xf7, 0xea, 0xbd, 0x57, 0xaf,
|
||||
0xde, 0xdb, 0x85, 0xd3, 0x21, 0x0d, 0x7a, 0x34, 0xa8, 0x13, 0xdf, 0x77, 0x6c, 0x93, 0x44, 0xb6,
|
||||
0xe7, 0x66, 0x9f, 0x6b, 0x7e, 0xe0, 0x45, 0x1e, 0xae, 0x64, 0x96, 0xaa, 0xcb, 0x2d, 0xcf, 0x6b,
|
||||
0x39, 0xb4, 0x4e, 0x7c, 0xbb, 0x4e, 0x5c, 0xd7, 0x8b, 0xf8, 0x72, 0x18, 0xbf, 0x9a, 0xfc, 0xca,
|
||||
0xa9, 0x17, 0xbb, 0xcd, 0x7a, 0x18, 0x05, 0x5d, 0x33, 0x12, 0xbf, 0x5e, 0xda, 0x7d, 0x24, 0xac,
|
||||
0xd9, 0x1e, 0xfb, 0xb6, 0x43, 0xcc, 0xb6, 0xed, 0xd2, 0x60, 0xaf, 0xee, 0xef, 0xb6, 0xd8, 0x42,
|
||||
0x58, 0xef, 0xd0, 0x88, 0xd4, 0x7b, 0x17, 0xeb, 0x2d, 0xea, 0xd2, 0x80, 0x44, 0xd4, 0x12, 0x5f,
|
||||
0x6d, 0xb7, 0xec, 0xa8, 0xdd, 0x7d, 0xb1, 0x66, 0x7a, 0x9d, 0x3a, 0x09, 0x5a, 0x9e, 0x1f, 0x78,
|
||||
0x9f, 0xe1, 0x0f, 0xeb, 0xa6, 0x55, 0xef, 0x3d, 0x9c, 0x32, 0xc8, 0x6a, 0xd1, 0xbb, 0x48, 0x1c,
|
||||
0xbf, 0x4d, 0x06, 0xb9, 0x5d, 0x1d, 0xc3, 0x2d, 0xa0, 0xbe, 0x27, 0xac, 0xc2, 0x1f, 0xed, 0xc8,
|
||||
0x0b, 0xf6, 0x32, 0x8f, 0x31, 0x1b, 0xfd, 0x3d, 0x04, 0x87, 0x2f, 0xa7, 0xf2, 0x3e, 0xde, 0xa5,
|
||||
0xc1, 0x1e, 0xc6, 0x30, 0xe7, 0x92, 0x0e, 0xd5, 0xd0, 0x0a, 0x5a, 0x5d, 0x34, 0xf8, 0x33, 0xd6,
|
||||
0x60, 0x21, 0xa0, 0xcd, 0x80, 0x86, 0x6d, 0xad, 0xc0, 0x97, 0x25, 0x89, 0xab, 0x50, 0x66, 0xc2,
|
||||
0xa9, 0x19, 0x85, 0x5a, 0x71, 0xa5, 0xb8, 0xba, 0x68, 0x24, 0x34, 0x5e, 0x85, 0x43, 0x01, 0x0d,
|
||||
0xbd, 0x6e, 0x60, 0xd2, 0xe7, 0x69, 0x10, 0xda, 0x9e, 0xab, 0xcd, 0xf1, 0xaf, 0xfb, 0x97, 0x19,
|
||||
0x97, 0x90, 0x3a, 0xd4, 0x8c, 0xbc, 0x40, 0x2b, 0xf1, 0x57, 0x12, 0x9a, 0xe1, 0x61, 0xc0, 0xb5,
|
||||
0xf9, 0x18, 0x0f, 0x7b, 0xc6, 0x3a, 0x1c, 0x20, 0xbe, 0x7f, 0x83, 0x74, 0x68, 0xe8, 0x13, 0x93,
|
||||
0x6a, 0x0b, 0xfc, 0x37, 0x65, 0x8d, 0x61, 0x16, 0x48, 0xb4, 0x32, 0x07, 0x26, 0x49, 0x7d, 0x13,
|
||||
0x16, 0x6f, 0x78, 0x16, 0x1d, 0xad, 0x6e, 0x3f, 0xfb, 0xc2, 0x20, 0x7b, 0xfd, 0x6d, 0x04, 0xc7,
|
||||
0x0c, 0xda, 0xb3, 0x19, 0xfe, 0xeb, 0x34, 0x22, 0x16, 0x89, 0x48, 0x3f, 0xc7, 0x42, 0xc2, 0xb1,
|
||||
0x0a, 0xe5, 0x40, 0xbc, 0xac, 0x15, 0xf8, 0x7a, 0x42, 0x0f, 0x48, 0x2b, 0xe6, 0x2b, 0x13, 0x9b,
|
||||
0x50, 0x92, 0x78, 0x05, 0x2a, 0xb1, 0x2d, 0xb7, 0x5c, 0x8b, 0x7e, 0x96, 0x5b, 0xaf, 0x64, 0x64,
|
||||
0x97, 0xf0, 0x32, 0x2c, 0xf6, 0x62, 0x3b, 0x6f, 0x59, 0xdc, 0x8a, 0x25, 0x23, 0x5d, 0xd0, 0xff,
|
||||
0x8a, 0xe0, 0x64, 0xc6, 0x07, 0x0c, 0xb1, 0x33, 0x57, 0x7b, 0xd4, 0x8d, 0xc2, 0xd1, 0x0a, 0x9d,
|
||||
0x87, 0x23, 0x72, 0x13, 0xfb, 0xed, 0x34, 0xf8, 0x03, 0x53, 0x31, 0xbb, 0x28, 0x55, 0xcc, 0xae,
|
||||
0x31, 0x45, 0x24, 0xfd, 0xdc, 0xd6, 0x15, 0xa1, 0x66, 0x76, 0x69, 0xc0, 0x50, 0xa5, 0x7c, 0x43,
|
||||
0xcd, 0x2b, 0x86, 0xd2, 0xff, 0x8e, 0x40, 0xcb, 0x28, 0x7a, 0x9d, 0xb8, 0x76, 0x93, 0x86, 0xd1,
|
||||
0xa4, 0x7b, 0x86, 0x66, 0xb8, 0x67, 0xab, 0x70, 0x28, 0xd6, 0xea, 0x26, 0x8b, 0x47, 0x96, 0x79,
|
||||
0xb4, 0xd2, 0x4a, 0x71, 0xb5, 0x68, 0xf4, 0x2f, 0xb3, 0xbd, 0x93, 0x32, 0x43, 0x6d, 0x9e, 0xbb,
|
||||
0x71, 0xba, 0xc0, 0x24, 0xb8, 0xde, 0x26, 0x31, 0xdb, 0x71, 0x04, 0x94, 0x0d, 0x49, 0xea, 0x0f,
|
||||
0xc0, 0xe2, 0xd3, 0xb6, 0x43, 0x37, 0xdb, 0x5d, 0x77, 0x17, 0x1f, 0x85, 0x92, 0xc9, 0x1e, 0xb8,
|
||||
0x76, 0x07, 0x8c, 0x98, 0xd0, 0xbf, 0x8a, 0xe0, 0x81, 0x51, 0xf6, 0xb8, 0x6d, 0x47, 0x6d, 0xf6,
|
||||
0x7d, 0x38, 0xca, 0x30, 0x66, 0x9b, 0x9a, 0xbb, 0x61, 0xb7, 0x23, 0x9d, 0x59, 0xd2, 0xd3, 0x19,
|
||||
0x46, 0xff, 0x21, 0x82, 0xd5, 0xb1, 0x98, 0x6e, 0x07, 0xc4, 0xf7, 0x69, 0x80, 0x9f, 0x86, 0xd2,
|
||||
0x1d, 0xf6, 0x03, 0x0f, 0xdd, 0x4a, 0xa3, 0x56, 0xcb, 0x26, 0xfd, 0xb1, 0x5c, 0x9e, 0xf9, 0x3f,
|
||||
0x23, 0xfe, 0x1c, 0xd7, 0xa4, 0x79, 0x0a, 0x9c, 0xcf, 0x71, 0x85, 0x4f, 0x62, 0x45, 0xf6, 0x3e,
|
||||
0x7f, 0xed, 0xa9, 0x79, 0x98, 0xf3, 0x49, 0x10, 0xe9, 0xc7, 0xe0, 0x1e, 0x35, 0x70, 0x7c, 0xcf,
|
||||
0x0d, 0xa9, 0xfe, 0x0b, 0xd5, 0xcf, 0x36, 0x03, 0x4a, 0x22, 0x6a, 0xd0, 0x3b, 0x5d, 0x1a, 0x46,
|
||||
0x78, 0x17, 0xb2, 0xe7, 0x10, 0xb7, 0x6a, 0xa5, 0xb1, 0x55, 0x4b, 0xd3, 0x79, 0x4d, 0xa6, 0x73,
|
||||
0xfe, 0xf0, 0x29, 0xd3, 0xaa, 0xf5, 0x1e, 0xae, 0xf9, 0xbb, 0xad, 0x1a, 0x3b, 0x1c, 0x14, 0x64,
|
||||
0xf2, 0x70, 0xc8, 0xaa, 0x6a, 0x64, 0xb9, 0xe3, 0xe3, 0x30, 0xdf, 0xf5, 0x43, 0x1a, 0x44, 0x5c,
|
||||
0xb3, 0xb2, 0x21, 0x28, 0xb6, 0x7f, 0x3d, 0xe2, 0xd8, 0x16, 0x89, 0xe2, 0xfd, 0x29, 0x1b, 0x09,
|
||||
0xad, 0xff, 0x52, 0x45, 0xff, 0x9c, 0x6f, 0xbd, 0x5f, 0xe8, 0xb3, 0x28, 0x0b, 0x2a, 0xca, 0xac,
|
||||
0x07, 0x15, 0x55, 0x0f, 0xfa, 0xa9, 0x8a, 0xff, 0x0a, 0x75, 0x68, 0x8a, 0x7f, 0x98, 0x33, 0x6b,
|
||||
0xb0, 0x60, 0x92, 0xd0, 0x24, 0x96, 0x94, 0x22, 0x49, 0x96, 0xe2, 0xfc, 0xc0, 0xf3, 0x49, 0x8b,
|
||||
0x73, 0xba, 0xe9, 0x39, 0xb6, 0xb9, 0x27, 0xc4, 0x0d, 0xfe, 0x30, 0xe0, 0xf8, 0x73, 0xf9, 0x8e,
|
||||
0x5f, 0x52, 0x61, 0x9f, 0x82, 0xca, 0xce, 0x9e, 0x6b, 0x3e, 0xeb, 0xc7, 0x61, 0x7f, 0x14, 0x4a,
|
||||
0x76, 0x44, 0x3b, 0xa1, 0x86, 0x78, 0xc8, 0xc7, 0x84, 0xfe, 0xcf, 0x12, 0x1c, 0xcf, 0xe8, 0xc6,
|
||||
0x3e, 0xc8, 0xd3, 0x2c, 0x2f, 0x7f, 0x1d, 0x87, 0x79, 0x2b, 0xd8, 0x33, 0xba, 0xae, 0x70, 0x00,
|
||||
0x41, 0x31, 0xc1, 0x7e, 0xd0, 0x75, 0x63, 0xf8, 0x65, 0x23, 0x26, 0x70, 0x13, 0xca, 0x61, 0xc4,
|
||||
0xea, 0x8f, 0xd6, 0x1e, 0x07, 0x5e, 0x69, 0x7c, 0x74, 0xba, 0x4d, 0x67, 0xd0, 0x77, 0x04, 0x47,
|
||||
0x23, 0xe1, 0x8d, 0xef, 0xb0, 0x6c, 0x17, 0xa7, 0xc0, 0x50, 0x5b, 0x58, 0x29, 0xae, 0x56, 0x1a,
|
||||
0x3b, 0xd3, 0x0b, 0x7a, 0xd6, 0x67, 0xb5, 0x53, 0xe6, 0x6c, 0x33, 0x52, 0x29, 0x2c, 0xc1, 0x76,
|
||||
0x44, 0x7e, 0x08, 0x45, 0x9d, 0x90, 0x2e, 0xe0, 0x4f, 0x40, 0xc9, 0x76, 0x9b, 0x5e, 0xa8, 0x2d,
|
||||
0x72, 0x30, 0x4f, 0x4d, 0x07, 0x66, 0xcb, 0x6d, 0x7a, 0x46, 0xcc, 0x10, 0xdf, 0x81, 0xa5, 0x80,
|
||||
0x46, 0xc1, 0x9e, 0xb4, 0x82, 0x06, 0xdc, 0xae, 0x1f, 0x9b, 0x4e, 0x82, 0x91, 0x65, 0x69, 0xa8,
|
||||
0x12, 0xf0, 0x06, 0x54, 0xc2, 0xd4, 0xc7, 0xb4, 0x0a, 0x17, 0xa8, 0x29, 0x8c, 0x32, 0x3e, 0x68,
|
||||
0x64, 0x5f, 0x1e, 0xf0, 0xee, 0x03, 0xf9, 0xde, 0xbd, 0x34, 0xf6, 0xbc, 0x3b, 0x38, 0xc1, 0x79,
|
||||
0x77, 0xa8, 0xef, 0xbc, 0xd3, 0xdf, 0x45, 0xb0, 0x3c, 0x90, 0x9c, 0x76, 0x7c, 0x9a, 0x1b, 0x06,
|
||||
0x04, 0xe6, 0x42, 0x9f, 0x9a, 0xfc, 0xa4, 0xaa, 0x34, 0xae, 0xcf, 0x2c, 0x5b, 0x71, 0xb9, 0x9c,
|
||||
0x75, 0x5e, 0x42, 0x9d, 0x32, 0x2f, 0x7c, 0x07, 0xc1, 0xbd, 0x19, 0x99, 0x37, 0x49, 0x64, 0xb6,
|
||||
0xf3, 0x94, 0x65, 0xf1, 0xcb, 0xde, 0x11, 0xe7, 0x72, 0x4c, 0x30, 0xab, 0xf2, 0x87, 0x5b, 0x7b,
|
||||
0x3e, 0x03, 0xc8, 0x7e, 0x49, 0x17, 0xa6, 0x2c, 0xab, 0x7e, 0x84, 0xa0, 0x9a, 0xcd, 0xe1, 0x9e,
|
||||
0xe3, 0xbc, 0x48, 0xcc, 0xdd, 0x3c, 0x90, 0x07, 0xa1, 0x60, 0x5b, 0x1c, 0x61, 0xd1, 0x28, 0xd8,
|
||||
0xd6, 0x3e, 0x93, 0x51, 0x3f, 0xdc, 0xf9, 0x7c, 0xb8, 0x0b, 0x2a, 0xdc, 0xf7, 0xfa, 0xe0, 0xca,
|
||||
0x94, 0x90, 0x03, 0x77, 0x19, 0x16, 0xdd, 0xbe, 0x12, 0x37, 0x5d, 0x18, 0x52, 0xda, 0x16, 0x06,
|
||||
0x4a, 0x5b, 0x0d, 0x16, 0x7a, 0xc9, 0x05, 0x88, 0xfd, 0x2c, 0x49, 0xa6, 0x62, 0x2b, 0xf0, 0xba,
|
||||
0xbe, 0x30, 0x7a, 0x4c, 0x30, 0x14, 0xbb, 0xb6, 0xcb, 0x8a, 0x75, 0x8e, 0x82, 0x3d, 0xef, 0xff,
|
||||
0xca, 0xa3, 0xa8, 0xfd, 0xe3, 0x02, 0xfc, 0xff, 0x10, 0xb5, 0xc7, 0xfa, 0xd3, 0xdd, 0xa1, 0x7b,
|
||||
0xe2, 0xd5, 0x0b, 0x23, 0xbd, 0xba, 0x3c, 0xce, 0xab, 0x17, 0xf3, 0xed, 0x05, 0xaa, 0xbd, 0x7e,
|
||||
0x50, 0x80, 0x95, 0x21, 0xf6, 0x1a, 0x5f, 0x4e, 0xdc, 0x35, 0x06, 0x6b, 0x7a, 0x81, 0x29, 0xaf,
|
||||
0x05, 0x31, 0xc1, 0xe2, 0xcc, 0x0b, 0xfc, 0x36, 0x71, 0xb9, 0x77, 0x94, 0x0d, 0x41, 0x4d, 0x69,
|
||||
0xaa, 0x2b, 0xa0, 0x49, 0xf3, 0x5c, 0x36, 0xe3, 0x24, 0x15, 0x90, 0x0e, 0x8d, 0x68, 0x10, 0x8e,
|
||||
0x4a, 0x51, 0x3d, 0xe2, 0x74, 0xa9, 0x4c, 0x51, 0x9c, 0xd0, 0x5f, 0x2b, 0xf4, 0xb3, 0x31, 0xba,
|
||||
0xee, 0xdd, 0x6f, 0xe8, 0xe3, 0x30, 0x4f, 0x38, 0x5a, 0xe1, 0x9a, 0x82, 0x1a, 0x30, 0x69, 0x39,
|
||||
0xdf, 0xa4, 0x8b, 0x8a, 0x49, 0x37, 0x0a, 0x1a, 0xd2, 0xdf, 0x2d, 0x40, 0x75, 0x94, 0x41, 0x9e,
|
||||
0x6f, 0xfc, 0xaf, 0x99, 0x04, 0x13, 0xd0, 0x82, 0x11, 0x5e, 0xa6, 0x01, 0x2f, 0xce, 0xce, 0x28,
|
||||
0x27, 0xf6, 0x28, 0x97, 0x34, 0x46, 0xb2, 0xd1, 0xbf, 0x80, 0xe0, 0x84, 0xfa, 0x59, 0xb8, 0x6d,
|
||||
0x87, 0x91, 0xbc, 0xd8, 0xe1, 0x26, 0x2c, 0xc4, 0xaa, 0xc4, 0x65, 0x79, 0xa5, 0xb1, 0x3d, 0x6d,
|
||||
0xb1, 0xa6, 0xec, 0xae, 0x64, 0xae, 0x3f, 0x0a, 0x27, 0x86, 0x9e, 0x50, 0x02, 0x46, 0x15, 0xca,
|
||||
0xb2, 0x40, 0x15, 0xbb, 0x9f, 0xd0, 0xfa, 0x9b, 0x73, 0x6a, 0xb9, 0xe0, 0x59, 0xdb, 0x5e, 0x2b,
|
||||
0xa7, 0x8b, 0x93, 0xef, 0x31, 0x6c, 0x37, 0x3c, 0x2b, 0xd3, 0xb0, 0x91, 0x24, 0xfb, 0xce, 0xf4,
|
||||
0xdc, 0x88, 0xd8, 0x2e, 0x0d, 0x44, 0x45, 0x93, 0x2e, 0xb0, 0x9d, 0x0e, 0x6d, 0xd7, 0xa4, 0x3b,
|
||||
0xd4, 0xf4, 0x5c, 0x2b, 0xe4, 0x2e, 0x53, 0x34, 0x94, 0x35, 0xfc, 0x0c, 0x2c, 0x72, 0xfa, 0x96,
|
||||
0xdd, 0x89, 0x8f, 0xf0, 0x4a, 0x63, 0xad, 0x16, 0x77, 0x56, 0x6b, 0xd9, 0xce, 0x6a, 0x6a, 0xc3,
|
||||
0x0e, 0x8d, 0x48, 0xad, 0x77, 0xb1, 0xc6, 0xbe, 0x30, 0xd2, 0x8f, 0x19, 0x96, 0x88, 0xd8, 0xce,
|
||||
0xb6, 0xed, 0xf2, 0x4b, 0x03, 0x13, 0x95, 0x2e, 0x30, 0x6f, 0x6c, 0x7a, 0x8e, 0xe3, 0xbd, 0x24,
|
||||
0x73, 0x5e, 0x4c, 0xb1, 0xaf, 0xba, 0x6e, 0x64, 0x3b, 0x5c, 0x7e, 0xec, 0x6b, 0xe9, 0x02, 0xff,
|
||||
0xca, 0x76, 0x22, 0x1a, 0x88, 0x64, 0x27, 0xa8, 0xc4, 0xdf, 0x2b, 0x71, 0xb3, 0x50, 0xe6, 0xda,
|
||||
0x38, 0x32, 0x0e, 0x64, 0x23, 0xa3, 0x3f, 0xda, 0x96, 0x86, 0x74, 0xbc, 0x78, 0xef, 0x94, 0xf6,
|
||||
0x6c, 0xaf, 0xcb, 0xea, 0x61, 0x5e, 0x36, 0x4a, 0x7a, 0x20, 0x5a, 0x0e, 0xe5, 0x47, 0xcb, 0x61,
|
||||
0x35, 0x5a, 0xf8, 0xad, 0x26, 0x32, 0xdb, 0x9b, 0x24, 0xa4, 0xda, 0x11, 0xce, 0x3a, 0x5d, 0xd0,
|
||||
0x7f, 0x85, 0xa0, 0xbc, 0xed, 0xb5, 0xae, 0xba, 0x51, 0xb0, 0xc7, 0xef, 0xbf, 0x9e, 0x1b, 0x51,
|
||||
0x57, 0x7a, 0x93, 0x24, 0xd9, 0x16, 0x45, 0x76, 0x87, 0xee, 0x44, 0xa4, 0xe3, 0x8b, 0xea, 0x79,
|
||||
0x5f, 0x5b, 0x94, 0x7c, 0xcc, 0xcc, 0xe6, 0x90, 0x30, 0xe2, 0x29, 0xa7, 0x6c, 0xf0, 0x67, 0xa6,
|
||||
0x60, 0xf2, 0xc2, 0x4e, 0x14, 0x88, 0x7c, 0xa3, 0xac, 0x65, 0x1d, 0xb0, 0x14, 0x63, 0x13, 0xa4,
|
||||
0xde, 0x81, 0xfb, 0x92, 0x6b, 0xdd, 0x2d, 0x1a, 0x74, 0x6c, 0x97, 0xe4, 0x9f, 0xcb, 0x13, 0xb4,
|
||||
0x74, 0x73, 0xba, 0x0a, 0x9e, 0x12, 0x92, 0xec, 0x96, 0x74, 0xdb, 0x76, 0x2d, 0xef, 0xa5, 0x9c,
|
||||
0xd0, 0x9a, 0x4e, 0xe0, 0x1f, 0xd5, 0xae, 0x6c, 0x46, 0x62, 0x92, 0x07, 0x9e, 0x81, 0x25, 0x96,
|
||||
0x31, 0x7a, 0x54, 0xfc, 0x20, 0x92, 0x92, 0x3e, 0xaa, 0x0d, 0x96, 0xf2, 0x30, 0xd4, 0x0f, 0xf1,
|
||||
0x36, 0x1c, 0x22, 0x61, 0x68, 0xb7, 0x5c, 0x6a, 0x49, 0x5e, 0x85, 0x89, 0x79, 0xf5, 0x7f, 0x1a,
|
||||
0x37, 0x54, 0xf8, 0x1b, 0x62, 0xbf, 0x25, 0xa9, 0x7f, 0x1e, 0xc1, 0xb1, 0xa1, 0x4c, 0x92, 0xb8,
|
||||
0x42, 0x99, 0x73, 0xa4, 0x0a, 0xe5, 0xd0, 0x6c, 0x53, 0xab, 0xeb, 0xc8, 0x52, 0x21, 0xa1, 0xd9,
|
||||
0x6f, 0x56, 0x37, 0xde, 0x7d, 0x71, 0x8e, 0x25, 0x34, 0x3e, 0x09, 0xd0, 0x21, 0x6e, 0x97, 0x38,
|
||||
0x1c, 0xc2, 0x1c, 0x87, 0x90, 0x59, 0xd1, 0x97, 0xa1, 0x3a, 0xcc, 0x75, 0x44, 0xf7, 0xee, 0x1f,
|
||||
0x08, 0x0e, 0xca, 0x94, 0x2b, 0x76, 0x77, 0x15, 0x0e, 0x65, 0xcc, 0x70, 0x23, 0xdd, 0xe8, 0xfe,
|
||||
0xe5, 0x31, 0xe9, 0x54, 0x7a, 0x49, 0x51, 0x1d, 0xac, 0xf4, 0x94, 0xd1, 0xc8, 0xc4, 0x07, 0x2e,
|
||||
0x9a, 0xd1, 0xcd, 0xe0, 0x73, 0xa0, 0x5d, 0x27, 0x2e, 0x69, 0x51, 0x2b, 0x51, 0x3b, 0x71, 0xb1,
|
||||
0x4f, 0x67, 0xdb, 0x50, 0x53, 0x37, 0x7d, 0x92, 0x22, 0xda, 0x6e, 0x36, 0x65, 0x4b, 0xeb, 0xf5,
|
||||
0x82, 0xea, 0xe7, 0x7c, 0x66, 0xb5, 0x63, 0x5b, 0xfc, 0xa5, 0xd8, 0xfc, 0x1a, 0x2c, 0x08, 0x55,
|
||||
0x64, 0x82, 0x12, 0xe4, 0x74, 0x21, 0x86, 0x7d, 0x58, 0x72, 0xec, 0x1e, 0x4d, 0xb4, 0xd6, 0xe6,
|
||||
0x66, 0xae, 0xa4, 0x2a, 0x80, 0x39, 0x52, 0x44, 0x82, 0x16, 0x8d, 0xae, 0x27, 0x1d, 0xa7, 0x12,
|
||||
0x6f, 0x71, 0xf4, 0x2f, 0xeb, 0xdf, 0x53, 0x7b, 0xf3, 0xaa, 0x59, 0xfe, 0x7b, 0xdb, 0xc3, 0x6b,
|
||||
0x0d, 0xcf, 0xb2, 0x9b, 0x36, 0x8d, 0xef, 0xeb, 0x65, 0x23, 0xa1, 0xf5, 0x00, 0xca, 0xdb, 0xb6,
|
||||
0xbb, 0xbb, 0xe5, 0x36, 0x3d, 0xe6, 0xac, 0x91, 0x1d, 0x39, 0x72, 0x87, 0x62, 0x02, 0x1f, 0x86,
|
||||
0x62, 0x37, 0x70, 0x44, 0xf0, 0xb2, 0x47, 0xbc, 0x02, 0x15, 0x8b, 0x86, 0x66, 0x60, 0xfb, 0x22,
|
||||
0x74, 0xf9, 0x8c, 0x27, 0xb3, 0xc4, 0x42, 0xc8, 0x36, 0x3d, 0x77, 0xd3, 0x21, 0x61, 0x28, 0x2b,
|
||||
0x8b, 0x64, 0x41, 0x7f, 0x1c, 0x96, 0x98, 0xcc, 0xd4, 0x43, 0xcf, 0xa9, 0x26, 0x38, 0xa6, 0xa8,
|
||||
0x26, 0xe1, 0x49, 0x67, 0x23, 0x70, 0x0f, 0x2b, 0xe8, 0x2e, 0xfb, 0xbe, 0x60, 0x32, 0xe1, 0xed,
|
||||
0xa2, 0x38, 0xac, 0x30, 0x1a, 0x3a, 0xc0, 0x68, 0xfc, 0xed, 0x2c, 0xe0, 0xbe, 0x8d, 0xb3, 0x4d,
|
||||
0x8a, 0xbf, 0x86, 0x60, 0x8e, 0x89, 0xc6, 0xf7, 0x8f, 0xca, 0xa8, 0xdc, 0xd7, 0xab, 0xb3, 0xeb,
|
||||
0x4e, 0x31, 0x69, 0xfa, 0xf2, 0xab, 0x7f, 0xfa, 0xcb, 0xd7, 0x0b, 0xc7, 0xf1, 0x51, 0x3e, 0xe8,
|
||||
0xee, 0x5d, 0xcc, 0x0e, 0x97, 0x43, 0xfc, 0x45, 0x04, 0x58, 0x14, 0xb8, 0x99, 0x91, 0x1f, 0x3e,
|
||||
0x37, 0x0a, 0xe2, 0x90, 0xd1, 0x60, 0xf5, 0xde, 0x5a, 0x3c, 0x2b, 0xaf, 0xc9, 0x59, 0x79, 0x6d,
|
||||
0x87, 0xcf, 0xca, 0xf5, 0x35, 0x2e, 0xfa, 0x34, 0xd6, 0x87, 0x89, 0xae, 0xbf, 0xcc, 0x6c, 0xf9,
|
||||
0x4a, 0x9d, 0xc6, 0x12, 0xdf, 0x40, 0x50, 0xba, 0xcd, 0xaf, 0xf4, 0x63, 0xcc, 0xb3, 0x33, 0x33,
|
||||
0xf3, 0x70, 0x71, 0x5c, 0x11, 0xfd, 0x14, 0x47, 0x7a, 0x3f, 0x3e, 0x21, 0x91, 0x86, 0x51, 0x40,
|
||||
0x49, 0x47, 0x01, 0x7c, 0x01, 0xe1, 0xb7, 0x10, 0xcc, 0xc7, 0xb3, 0x1c, 0x7c, 0x66, 0x14, 0x4a,
|
||||
0x65, 0xd6, 0x53, 0x9d, 0xdd, 0x60, 0x44, 0x7f, 0x88, 0x63, 0x3c, 0xa5, 0x0f, 0xdd, 0xc8, 0x0d,
|
||||
0x65, 0x6c, 0xf2, 0x3a, 0x82, 0xe2, 0x35, 0x3a, 0xd6, 0xd3, 0x66, 0x08, 0x6e, 0xc0, 0x80, 0x43,
|
||||
0xb6, 0x1a, 0xbf, 0x89, 0xe0, 0xbe, 0x6b, 0x34, 0x1a, 0x5e, 0xd3, 0xe0, 0xd5, 0xf1, 0x85, 0x86,
|
||||
0x70, 0xb8, 0x73, 0x13, 0xbc, 0x99, 0x1c, 0xe6, 0x75, 0x8e, 0xec, 0x21, 0x7c, 0x36, 0xcf, 0x09,
|
||||
0xc3, 0x3d, 0xd7, 0x7c, 0x49, 0xe0, 0xf8, 0x1d, 0x82, 0xc3, 0xfd, 0x43, 0x7d, 0xac, 0xf7, 0x5d,
|
||||
0x2c, 0x87, 0xcc, 0xfc, 0xab, 0x37, 0xa6, 0xcd, 0xbd, 0x2a, 0x53, 0xfd, 0x32, 0x47, 0xfe, 0x18,
|
||||
0x7e, 0x34, 0x0f, 0x79, 0xd2, 0x18, 0xaf, 0xbf, 0x2c, 0x1f, 0x5f, 0xe1, 0x7f, 0x80, 0xc2, 0x61,
|
||||
0xff, 0x1e, 0xc1, 0x51, 0xc9, 0x77, 0xb3, 0x4d, 0x82, 0xe8, 0x0a, 0x65, 0xd7, 0xa2, 0x70, 0x22,
|
||||
0x7d, 0xa6, 0x3c, 0x4b, 0xb2, 0xf2, 0xf4, 0xab, 0x5c, 0x97, 0x27, 0xf1, 0x13, 0xfb, 0xd6, 0xc5,
|
||||
0x64, 0x6c, 0x2c, 0x01, 0xfb, 0x6d, 0x04, 0x07, 0xaf, 0xd1, 0xe8, 0xd9, 0xcd, 0xad, 0x7d, 0xed,
|
||||
0xcc, 0x94, 0x8e, 0x9e, 0x11, 0xa7, 0x5f, 0xe1, 0x8a, 0x7c, 0x18, 0x3f, 0xbe, 0x6f, 0x45, 0x3c,
|
||||
0xd3, 0x4e, 0xf6, 0xe5, 0x55, 0x04, 0x07, 0xae, 0x65, 0x0e, 0xfb, 0xd1, 0xe9, 0x44, 0x19, 0x5c,
|
||||
0x57, 0x97, 0x6b, 0x99, 0xbf, 0xdf, 0x91, 0x3f, 0x25, 0xae, 0xbe, 0xce, 0xb1, 0x9d, 0xc5, 0x67,
|
||||
0xf2, 0xb0, 0xa5, 0x83, 0xad, 0x37, 0x10, 0x1c, 0xcb, 0x82, 0x48, 0x07, 0xfe, 0x1f, 0xd8, 0xdf,
|
||||
0x18, 0x5d, 0x0c, 0xe3, 0xc7, 0xa0, 0x6b, 0x70, 0x74, 0xe7, 0xf5, 0xe1, 0x81, 0xd8, 0x19, 0x40,
|
||||
0xb1, 0x81, 0xd6, 0x56, 0x11, 0xfe, 0x35, 0x82, 0xf9, 0x78, 0xc6, 0x33, 0xda, 0x46, 0xca, 0x80,
|
||||
0x7a, 0x96, 0x59, 0x4d, 0x78, 0x6d, 0xf5, 0xc2, 0x70, 0x83, 0x66, 0xbf, 0x97, 0x5b, 0x5b, 0xe3,
|
||||
0x56, 0x56, 0xd3, 0xf1, 0xcf, 0x10, 0x40, 0x3a, 0xa7, 0xc2, 0x0f, 0xe5, 0xeb, 0x91, 0x99, 0x65,
|
||||
0x55, 0x67, 0x3b, 0xa9, 0xd2, 0x6b, 0x5c, 0x9f, 0xd5, 0xea, 0x4a, 0x6e, 0x2e, 0xf4, 0xa9, 0xb9,
|
||||
0x11, 0xcf, 0xb4, 0xbe, 0x8b, 0xa0, 0xc4, 0xc7, 0x03, 0xf8, 0xf4, 0x28, 0xcc, 0xd9, 0xe9, 0xc1,
|
||||
0x2c, 0x4d, 0xff, 0x20, 0x87, 0xba, 0xd2, 0xc8, 0x3b, 0x50, 0x36, 0xd0, 0x1a, 0xee, 0xc1, 0x7c,
|
||||
0xdc, 0x90, 0x1f, 0xed, 0x1e, 0x4a, 0xc3, 0xbe, 0xba, 0x92, 0x53, 0xda, 0xc4, 0x8e, 0x2a, 0xce,
|
||||
0xb2, 0xb5, 0x71, 0x67, 0xd9, 0x1c, 0x3b, 0x6e, 0xf0, 0xa9, 0xbc, 0xc3, 0xe8, 0x3f, 0x60, 0x98,
|
||||
0x73, 0x1c, 0xdd, 0x19, 0x7d, 0x65, 0xdc, 0x79, 0xc6, 0xac, 0xf3, 0x0d, 0x04, 0x87, 0xfb, 0x6f,
|
||||
0x76, 0xf8, 0xc4, 0xd0, 0x26, 0xa9, 0x38, 0x5b, 0x55, 0x2b, 0x8e, 0xba, 0x15, 0xea, 0x1f, 0xe1,
|
||||
0x28, 0x36, 0xf0, 0x23, 0x63, 0x23, 0xe3, 0x86, 0xcc, 0x3a, 0x8c, 0xd1, 0x7a, 0x3a, 0x74, 0xff,
|
||||
0x3e, 0x82, 0x83, 0xea, 0x9d, 0x66, 0x74, 0xd5, 0x39, 0xe4, 0x4a, 0x58, 0xad, 0x4d, 0xf6, 0x72,
|
||||
0x82, 0xf8, 0x43, 0x1c, 0xf1, 0x45, 0x5c, 0x1f, 0x89, 0x38, 0x46, 0x1a, 0xff, 0xc9, 0xe4, 0x7a,
|
||||
0x68, 0x5b, 0x74, 0xdd, 0x62, 0xa8, 0x7e, 0x8e, 0xe0, 0x80, 0x34, 0xc0, 0xad, 0x80, 0xd2, 0x7c,
|
||||
0xfb, 0xcd, 0x2e, 0x62, 0x99, 0x2c, 0xfd, 0x71, 0x8e, 0xfa, 0x83, 0xf8, 0xd2, 0x84, 0x76, 0x96,
|
||||
0xf6, 0x5d, 0x8f, 0x18, 0xd2, 0xdf, 0x20, 0x38, 0x72, 0x3b, 0x0e, 0xd0, 0xf7, 0x09, 0xff, 0x26,
|
||||
0xc7, 0xff, 0x04, 0x7e, 0x2c, 0xa7, 0xb0, 0x1e, 0xa7, 0xc6, 0x05, 0x84, 0x7f, 0x82, 0xa0, 0x2c,
|
||||
0xa7, 0xca, 0xf8, 0xec, 0xc8, 0x08, 0x56, 0xe7, 0xce, 0xb3, 0x8c, 0x3a, 0x51, 0x45, 0xea, 0xa7,
|
||||
0x73, 0x8f, 0x7d, 0x21, 0x9f, 0x45, 0xde, 0xeb, 0x08, 0x70, 0xd2, 0x59, 0x4a, 0x7a, 0x4d, 0xf8,
|
||||
0x41, 0x45, 0xd4, 0xc8, 0xf6, 0x65, 0xf5, 0xec, 0xd8, 0xf7, 0xd4, 0x33, 0x7f, 0x2d, 0xf7, 0xcc,
|
||||
0xf7, 0x12, 0xf9, 0xaf, 0x21, 0xa8, 0x5c, 0xa3, 0xc9, 0x75, 0x2f, 0xc7, 0x96, 0xea, 0x50, 0xbc,
|
||||
0xba, 0x3a, 0xfe, 0x45, 0x81, 0xe8, 0x3c, 0x47, 0xf4, 0x20, 0xce, 0x37, 0x95, 0x04, 0xf0, 0x4d,
|
||||
0x04, 0x4b, 0x37, 0xb3, 0x2e, 0x8a, 0xcf, 0x8f, 0x93, 0xa4, 0x1c, 0x39, 0x93, 0xe3, 0x7a, 0x98,
|
||||
0xe3, 0x5a, 0xd7, 0x27, 0xc2, 0xb5, 0x21, 0xe6, 0xcb, 0xdf, 0x46, 0x71, 0xbf, 0xa0, 0x6f, 0x26,
|
||||
0xf4, 0xef, 0xda, 0x2d, 0x67, 0xb4, 0xa4, 0x5f, 0xe2, 0xf8, 0x6a, 0xf8, 0xfc, 0x24, 0xf8, 0xea,
|
||||
0x62, 0x50, 0x84, 0xbf, 0x85, 0xe0, 0x08, 0x1f, 0x0a, 0x66, 0x19, 0xe3, 0xbc, 0x39, 0x58, 0x3a,
|
||||
0x42, 0x9c, 0xe0, 0x2c, 0x7c, 0x32, 0xce, 0x3f, 0xfa, 0xbe, 0x40, 0x6d, 0x88, 0x71, 0xdf, 0x97,
|
||||
0x0a, 0x88, 0xed, 0xef, 0x3d, 0x03, 0xf8, 0x9e, 0x6f, 0xf4, 0x19, 0x70, 0xf4, 0x90, 0x73, 0x02,
|
||||
0x8c, 0x1b, 0x1c, 0xe3, 0x25, 0xbd, 0xbe, 0x1f, 0x8c, 0xf5, 0x5e, 0x83, 0x85, 0xe9, 0x57, 0x10,
|
||||
0x1c, 0x94, 0xf5, 0x81, 0xf0, 0xbf, 0xf5, 0x71, 0x5b, 0xbb, 0xdf, 0x7a, 0x42, 0x04, 0xc4, 0xda,
|
||||
0x64, 0x01, 0xf1, 0x16, 0x82, 0x05, 0x31, 0xb3, 0xcb, 0xa9, 0xba, 0x32, 0x43, 0xbd, 0x6a, 0x5f,
|
||||
0xc3, 0x4b, 0x0c, 0x75, 0xf4, 0x4f, 0x72, 0xb1, 0xcf, 0xe1, 0x5c, 0xb3, 0xf8, 0x9e, 0x15, 0xd6,
|
||||
0x5f, 0x16, 0x13, 0x95, 0x57, 0xea, 0x8e, 0xd7, 0x0a, 0x5f, 0xd0, 0x71, 0x6e, 0x6d, 0xc1, 0xde,
|
||||
0xb9, 0x80, 0x70, 0x04, 0x8b, 0xcc, 0x7d, 0x79, 0x17, 0x0d, 0xaf, 0xf4, 0xf5, 0xdc, 0x06, 0x1a,
|
||||
0x6c, 0xd5, 0xea, 0x40, 0x57, 0x2e, 0x2d, 0x26, 0x44, 0x67, 0x03, 0x3f, 0x90, 0x2b, 0x96, 0x0b,
|
||||
0xfa, 0x32, 0x82, 0x23, 0xd9, 0x78, 0x8c, 0xc5, 0x4f, 0x1c, 0x8d, 0x79, 0x28, 0xc4, 0xfd, 0x04,
|
||||
0xaf, 0x4d, 0xe4, 0x46, 0x1c, 0xce, 0x53, 0x4f, 0xff, 0xf6, 0x9d, 0x93, 0xe8, 0x0f, 0xef, 0x9c,
|
||||
0x44, 0x7f, 0x7e, 0xe7, 0x24, 0x7a, 0xe1, 0x91, 0xc9, 0xfe, 0xbf, 0xc3, 0x74, 0x6c, 0xea, 0x46,
|
||||
0x59, 0xf6, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xa7, 0xf4, 0xfb, 0xbf, 0x32, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
|
@ -3381,7 +3381,7 @@ type ApplicationServiceClient interface {
|
|||
// List returns list of applications
|
||||
List(ctx context.Context, in *ApplicationQuery, opts ...grpc.CallOption) (*v1alpha1.ApplicationList, error)
|
||||
// ListResourceEvents returns a list of event resources
|
||||
ListResourceEvents(ctx context.Context, in *ApplicationResourceEventsQuery, opts ...grpc.CallOption) (*v11.EventList, error)
|
||||
ListResourceEvents(ctx context.Context, in *ApplicationResourceEventsQuery, opts ...grpc.CallOption) (*structpb.Struct, error)
|
||||
// Watch returns stream of application change events
|
||||
Watch(ctx context.Context, in *ApplicationQuery, opts ...grpc.CallOption) (ApplicationService_WatchClient, error)
|
||||
// Create creates an application
|
||||
|
|
@ -3462,8 +3462,8 @@ func (c *applicationServiceClient) List(ctx context.Context, in *ApplicationQuer
|
|||
return out, nil
|
||||
}
|
||||
|
||||
func (c *applicationServiceClient) ListResourceEvents(ctx context.Context, in *ApplicationResourceEventsQuery, opts ...grpc.CallOption) (*v11.EventList, error) {
|
||||
out := new(v11.EventList)
|
||||
func (c *applicationServiceClient) ListResourceEvents(ctx context.Context, in *ApplicationResourceEventsQuery, opts ...grpc.CallOption) (*structpb.Struct, error) {
|
||||
out := new(structpb.Struct)
|
||||
err := c.cc.Invoke(ctx, "/application.ApplicationService/ListResourceEvents", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -3832,7 +3832,7 @@ type ApplicationServiceServer interface {
|
|||
// List returns list of applications
|
||||
List(context.Context, *ApplicationQuery) (*v1alpha1.ApplicationList, error)
|
||||
// ListResourceEvents returns a list of event resources
|
||||
ListResourceEvents(context.Context, *ApplicationResourceEventsQuery) (*v11.EventList, error)
|
||||
ListResourceEvents(context.Context, *ApplicationResourceEventsQuery) (*structpb.Struct, error)
|
||||
// Watch returns stream of application change events
|
||||
Watch(*ApplicationQuery, ApplicationService_WatchServer) error
|
||||
// Create creates an application
|
||||
|
|
@ -3903,7 +3903,7 @@ type UnimplementedApplicationServiceServer struct {
|
|||
func (*UnimplementedApplicationServiceServer) List(ctx context.Context, req *ApplicationQuery) (*v1alpha1.ApplicationList, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
|
||||
}
|
||||
func (*UnimplementedApplicationServiceServer) ListResourceEvents(ctx context.Context, req *ApplicationResourceEventsQuery) (*v11.EventList, error) {
|
||||
func (*UnimplementedApplicationServiceServer) ListResourceEvents(ctx context.Context, req *ApplicationResourceEventsQuery) (*structpb.Struct, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListResourceEvents not implemented")
|
||||
}
|
||||
func (*UnimplementedApplicationServiceServer) Watch(req *ApplicationQuery, srv ApplicationService_WatchServer) error {
|
||||
|
|
|
|||
115
pkg/apiclient/applicationset/applicationset.pb.go
generated
115
pkg/apiclient/applicationset/applicationset.pb.go
generated
|
|
@ -16,8 +16,8 @@ import (
|
|||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
structpb "google.golang.org/protobuf/types/known/structpb"
|
||||
io "io"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
math "math"
|
||||
math_bits "math/bits"
|
||||
)
|
||||
|
|
@ -581,58 +581,57 @@ func init() {
|
|||
}
|
||||
|
||||
var fileDescriptor_eacb9df0ce5738fa = []byte{
|
||||
// 801 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x96, 0x4b, 0x6b, 0x14, 0x4b,
|
||||
0x14, 0xc7, 0xa9, 0x4c, 0x32, 0x77, 0x52, 0x09, 0xf7, 0x42, 0xc1, 0x4d, 0xc6, 0xd6, 0x8c, 0x43,
|
||||
0x43, 0x92, 0x31, 0x71, 0xaa, 0x9d, 0xc4, 0x85, 0xc4, 0x95, 0x2f, 0x42, 0x20, 0x88, 0xf6, 0x48,
|
||||
0x02, 0xba, 0x90, 0x4e, 0xcf, 0x61, 0xd2, 0x66, 0xa6, 0xbb, 0xad, 0xaa, 0x69, 0x08, 0xc1, 0x8d,
|
||||
0xe0, 0xc6, 0x8d, 0x0b, 0xd1, 0x0f, 0xa0, 0x1b, 0xf7, 0xba, 0x72, 0x93, 0x85, 0x1b, 0x97, 0x82,
|
||||
0x5f, 0x40, 0x82, 0x1f, 0x44, 0xaa, 0xba, 0xe7, 0xd1, 0x95, 0x79, 0x04, 0x1c, 0xdd, 0x75, 0x3d,
|
||||
0xfa, 0xd4, 0xaf, 0xce, 0xf9, 0xd7, 0xbf, 0x0a, 0xaf, 0x70, 0x60, 0x11, 0x30, 0xcb, 0x09, 0xc3,
|
||||
0x86, 0xe7, 0x3a, 0xc2, 0x0b, 0x7c, 0x0e, 0x42, 0x6b, 0xd2, 0x90, 0x05, 0x22, 0x20, 0xff, 0xa6,
|
||||
0x7b, 0x8d, 0x0b, 0xf5, 0x20, 0xa8, 0x37, 0xc0, 0x72, 0x42, 0xcf, 0x72, 0x7c, 0x3f, 0x10, 0xf1,
|
||||
0x48, 0x3c, 0xdb, 0x30, 0x0f, 0xae, 0x71, 0xea, 0x05, 0x6a, 0xd4, 0x0d, 0x18, 0x58, 0x51, 0xc5,
|
||||
0xaa, 0x83, 0x0f, 0xcc, 0x11, 0x50, 0x4b, 0xe6, 0x6c, 0xd7, 0x3d, 0xb1, 0xdf, 0xda, 0xa3, 0x6e,
|
||||
0xd0, 0xb4, 0x1c, 0x56, 0x0f, 0x42, 0x16, 0x3c, 0x51, 0x1f, 0x65, 0xb7, 0x66, 0x45, 0xeb, 0x56,
|
||||
0x78, 0x50, 0x97, 0xff, 0xf3, 0x5e, 0x1e, 0x2b, 0xaa, 0x38, 0x8d, 0x70, 0xdf, 0x39, 0x15, 0xcd,
|
||||
0xdc, 0xc1, 0x73, 0x37, 0xba, 0xf3, 0xaa, 0x20, 0x36, 0x41, 0xdc, 0x6f, 0x01, 0x3b, 0x24, 0x04,
|
||||
0x4f, 0xfa, 0x4e, 0x13, 0xf2, 0xa8, 0x88, 0x4a, 0xd3, 0xb6, 0xfa, 0x26, 0x25, 0xfc, 0x9f, 0x13,
|
||||
0x86, 0x1c, 0xc4, 0x5d, 0xa7, 0x09, 0x3c, 0x74, 0x5c, 0xc8, 0x4f, 0xa8, 0x61, 0xbd, 0xdb, 0x3c,
|
||||
0xc2, 0xf3, 0xe9, 0xb8, 0xdb, 0x1e, 0x4f, 0x02, 0x1b, 0x38, 0x27, 0x99, 0xc1, 0x15, 0x3c, 0x8f,
|
||||
0x8a, 0x99, 0xd2, 0xb4, 0xdd, 0x69, 0xcb, 0x31, 0x0e, 0x0d, 0x70, 0x45, 0xc0, 0x92, 0xc8, 0x9d,
|
||||
0x76, 0xbf, 0xc5, 0x33, 0xfd, 0x17, 0xff, 0x8c, 0x70, 0x3e, 0xbd, 0xfa, 0xae, 0x23, 0xdc, 0xfd,
|
||||
0xc1, 0xfb, 0xea, 0x45, 0x9a, 0x18, 0x82, 0x94, 0xe9, 0x8b, 0x54, 0xed, 0x45, 0x9a, 0xec, 0x20,
|
||||
0xf5, 0x76, 0xcb, 0x99, 0x0c, 0x78, 0xd0, 0x62, 0x2e, 0xec, 0x00, 0xe3, 0x5e, 0xe0, 0xe7, 0xa7,
|
||||
0xe2, 0x99, 0x5a, 0xb7, 0xf9, 0x01, 0xe9, 0x25, 0xb1, 0x81, 0x87, 0x52, 0x3d, 0x24, 0x8f, 0xff,
|
||||
0x49, 0xb0, 0x12, 0xfa, 0x76, 0x93, 0x08, 0xac, 0x09, 0x4d, 0x65, 0x6f, 0x66, 0x6d, 0x9b, 0x76,
|
||||
0xd5, 0x42, 0xdb, 0x6a, 0x51, 0x1f, 0x8f, 0xdd, 0x1a, 0x8d, 0xd6, 0x69, 0x78, 0x50, 0xa7, 0x52,
|
||||
0x2d, 0xb4, 0xe7, 0x77, 0xda, 0x56, 0x0b, 0xd5, 0x38, 0xb4, 0x35, 0xcc, 0x2f, 0x08, 0x9f, 0x4f,
|
||||
0x4f, 0xb9, 0xc5, 0xc0, 0x11, 0x60, 0xc3, 0xd3, 0x16, 0xf0, 0x7e, 0x54, 0xe8, 0xcf, 0x53, 0x91,
|
||||
0x39, 0x9c, 0x6d, 0x85, 0x1c, 0x58, 0x9c, 0x83, 0x9c, 0x9d, 0xb4, 0x64, 0x7f, 0x8d, 0x1d, 0xda,
|
||||
0x2d, 0x5f, 0x95, 0x31, 0x67, 0x27, 0x2d, 0xf3, 0x91, 0xbe, 0x89, 0xdb, 0xd0, 0x80, 0xee, 0x26,
|
||||
0x7e, 0xef, 0x1c, 0xec, 0xea, 0xe7, 0xe0, 0x01, 0x03, 0x18, 0xc7, 0x01, 0x7b, 0x83, 0xf0, 0x82,
|
||||
0x7e, 0x72, 0xe3, 0xa3, 0xdd, 0x3f, 0xfb, 0xd5, 0xbf, 0x90, 0xfd, 0x2a, 0x08, 0xf3, 0x15, 0xc2,
|
||||
0x85, 0x41, 0x5c, 0x89, 0x8c, 0x9b, 0x78, 0xb6, 0xb7, 0x64, 0xca, 0x04, 0x66, 0xd6, 0xb6, 0xc6,
|
||||
0x86, 0x65, 0xa7, 0xc2, 0xaf, 0x1d, 0x63, 0xfc, 0x7f, 0x9a, 0xa8, 0x0a, 0x2c, 0xf2, 0x5c, 0x20,
|
||||
0xef, 0x11, 0xce, 0x6c, 0x82, 0x20, 0x4b, 0x54, 0xf3, 0xee, 0xfe, 0x96, 0x68, 0x8c, 0x35, 0x73,
|
||||
0xe6, 0xd2, 0xf3, 0xef, 0x3f, 0x5f, 0x4f, 0x14, 0x49, 0x41, 0xd9, 0x7d, 0x54, 0xd1, 0x2e, 0x10,
|
||||
0x6e, 0x1d, 0x49, 0x49, 0x3c, 0x23, 0x6f, 0x11, 0xce, 0xb5, 0x73, 0x48, 0xca, 0xa3, 0x50, 0x53,
|
||||
0x1a, 0x30, 0xe8, 0x59, 0xa7, 0xc7, 0xa5, 0x31, 0x57, 0x15, 0xd3, 0xa2, 0x59, 0x1c, 0xc4, 0xd4,
|
||||
0xbe, 0x3f, 0x36, 0xd0, 0x0a, 0x79, 0x87, 0xf0, 0xa4, 0xb4, 0x75, 0xb2, 0x3c, 0x7c, 0x95, 0x8e,
|
||||
0xf5, 0x1b, 0xf7, 0xc6, 0x99, 0x40, 0x19, 0xd6, 0xbc, 0xa8, 0x80, 0xcf, 0x91, 0xf9, 0x01, 0xc0,
|
||||
0xe4, 0x13, 0xc2, 0xd9, 0xd8, 0x95, 0xc8, 0xea, 0x70, 0xcc, 0x94, 0x77, 0x8d, 0xb9, 0xd6, 0x96,
|
||||
0xc2, 0xbc, 0x64, 0x0e, 0xc2, 0xdc, 0xd0, 0x4d, 0xec, 0x05, 0xc2, 0xd9, 0xd8, 0x87, 0x46, 0x61,
|
||||
0xa7, 0xdc, 0xca, 0x18, 0x21, 0xe5, 0x4e, 0xa1, 0x13, 0xf1, 0xad, 0x8c, 0x12, 0xdf, 0x31, 0xc2,
|
||||
0xb3, 0x76, 0x72, 0x43, 0x49, 0xeb, 0x1a, 0x55, 0xeb, 0x8e, 0xbd, 0x8d, 0xb7, 0xd6, 0x32, 0xac,
|
||||
0x79, 0x55, 0x31, 0x53, 0x72, 0x79, 0x38, 0xb3, 0xd5, 0xbe, 0x51, 0xcb, 0x42, 0x02, 0xbf, 0x44,
|
||||
0x98, 0x48, 0xa9, 0xb4, 0x77, 0x71, 0x27, 0x02, 0x5f, 0xf0, 0x33, 0x9f, 0xf9, 0x05, 0x1a, 0xbf,
|
||||
0xc9, 0x24, 0x2a, 0x95, 0x6f, 0x32, 0x1a, 0x55, 0xa8, 0x8a, 0xa1, 0xf4, 0x57, 0x56, 0x4c, 0xcb,
|
||||
0x64, 0x71, 0x04, 0x13, 0xc4, 0xab, 0x7e, 0x44, 0x78, 0x4a, 0xbd, 0x45, 0x48, 0x69, 0xf8, 0xfa,
|
||||
0xdd, 0x07, 0x8b, 0xb1, 0x33, 0xce, 0x44, 0xaa, 0xb8, 0x0a, 0xff, 0xb4, 0xff, 0x70, 0xc1, 0xc0,
|
||||
0x69, 0xea, 0x3b, 0xb8, 0x82, 0x6e, 0x6e, 0x7d, 0x3d, 0x29, 0xa0, 0x6f, 0x27, 0x05, 0xf4, 0xe3,
|
||||
0xa4, 0x80, 0x1e, 0x5e, 0x3f, 0xdb, 0x03, 0xd4, 0x6d, 0x78, 0xe0, 0xeb, 0xaf, 0xe2, 0xbd, 0xac,
|
||||
0x7a, 0x76, 0xae, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x03, 0xd8, 0x6f, 0x1e, 0x44, 0x0b, 0x00,
|
||||
0x00,
|
||||
// 795 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x96, 0x4d, 0x6f, 0xd3, 0x4c,
|
||||
0x10, 0xc7, 0xb5, 0x4d, 0x9b, 0x27, 0xdd, 0x56, 0xcf, 0x23, 0xad, 0xf4, 0xb4, 0xc1, 0x40, 0x88,
|
||||
0x2c, 0xb5, 0x0d, 0x2d, 0x59, 0xd3, 0x96, 0x53, 0x39, 0xf1, 0xa6, 0xaa, 0x52, 0x85, 0xc0, 0x41,
|
||||
0xad, 0x04, 0x07, 0xb4, 0x75, 0x86, 0xd4, 0x34, 0xb1, 0xcd, 0xee, 0x3a, 0x52, 0x55, 0x71, 0x41,
|
||||
0x70, 0xe6, 0x80, 0xe0, 0x03, 0xc0, 0x85, 0x3b, 0x5c, 0xe0, 0xc2, 0x81, 0x0b, 0x47, 0x24, 0xbe,
|
||||
0x00, 0xaa, 0xf8, 0x20, 0xc8, 0x6b, 0x3b, 0x89, 0x97, 0xbc, 0x54, 0x22, 0x70, 0xf3, 0xbe, 0x78,
|
||||
0xe6, 0xb7, 0x33, 0xb3, 0xff, 0x1d, 0xbc, 0x2c, 0x80, 0xb7, 0x81, 0x5b, 0x2c, 0x08, 0x9a, 0xae,
|
||||
0xc3, 0xa4, 0xeb, 0x7b, 0x02, 0xa4, 0x36, 0xa4, 0x01, 0xf7, 0xa5, 0x4f, 0xfe, 0xcd, 0xce, 0x1a,
|
||||
0x67, 0x1a, 0xbe, 0xdf, 0x68, 0x82, 0xc5, 0x02, 0xd7, 0x62, 0x9e, 0xe7, 0xcb, 0x78, 0x25, 0xde,
|
||||
0xdd, 0x59, 0x55, 0xa3, 0xbd, 0xf0, 0x81, 0x25, 0x24, 0x0f, 0x9d, 0xc4, 0x96, 0xb1, 0xdd, 0x70,
|
||||
0xe5, 0x7e, 0xb8, 0x47, 0x1d, 0xbf, 0x65, 0x31, 0xde, 0xf0, 0x03, 0xee, 0x3f, 0x54, 0x1f, 0x55,
|
||||
0xa7, 0x6e, 0xb5, 0xd7, 0xad, 0xe0, 0xa0, 0x11, 0xd9, 0x15, 0xbd, 0x24, 0x56, 0x7b, 0x95, 0x35,
|
||||
0x83, 0x7d, 0xb6, 0x6a, 0x35, 0xc0, 0x03, 0xce, 0x24, 0xd4, 0x63, 0x6b, 0xe6, 0x0e, 0x9e, 0xbb,
|
||||
0xd2, 0xdd, 0x57, 0x03, 0xb9, 0x09, 0xf2, 0x76, 0x08, 0xfc, 0x90, 0x10, 0x3c, 0xe9, 0xb1, 0x16,
|
||||
0x14, 0x51, 0x19, 0x55, 0xa6, 0x6d, 0xf5, 0x4d, 0x2a, 0xf8, 0x3f, 0x16, 0x04, 0x02, 0xe4, 0x4d,
|
||||
0xd6, 0x02, 0x11, 0x30, 0x07, 0x8a, 0x13, 0x6a, 0x59, 0x9f, 0x36, 0x8f, 0xf0, 0x7c, 0xd6, 0xee,
|
||||
0xb6, 0x2b, 0x12, 0xc3, 0x06, 0x2e, 0x44, 0xcc, 0xe0, 0x48, 0x51, 0x44, 0xe5, 0x5c, 0x65, 0xda,
|
||||
0xee, 0x8c, 0xa3, 0x35, 0x01, 0x4d, 0x70, 0xa4, 0xcf, 0x13, 0xcb, 0x9d, 0x71, 0x3f, 0xe7, 0xb9,
|
||||
0xfe, 0xce, 0x3f, 0x22, 0x5c, 0xcc, 0x7a, 0xdf, 0x65, 0xd2, 0xd9, 0x1f, 0x7c, 0xae, 0x5e, 0xa4,
|
||||
0x89, 0x21, 0x48, 0xb9, 0xbe, 0x48, 0xb5, 0x5e, 0xa4, 0xc9, 0x0e, 0x52, 0xef, 0x74, 0xb4, 0x93,
|
||||
0x83, 0xf0, 0x43, 0xee, 0xc0, 0x0e, 0x70, 0xe1, 0xfa, 0x5e, 0x71, 0x2a, 0xde, 0xa9, 0x4d, 0x9b,
|
||||
0x6f, 0x91, 0x9e, 0x12, 0x1b, 0x44, 0x10, 0xd5, 0x0d, 0x29, 0xe2, 0x7f, 0x12, 0xac, 0x84, 0x3e,
|
||||
0x1d, 0x12, 0x89, 0xb5, 0x12, 0x53, 0xd1, 0x9b, 0x59, 0xdb, 0xa6, 0xdd, 0x6a, 0xa1, 0x69, 0xb5,
|
||||
0xa8, 0x8f, 0xfb, 0x4e, 0x9d, 0xb6, 0xd7, 0x69, 0x70, 0xd0, 0xa0, 0x51, 0xb5, 0xd0, 0x9e, 0xdf,
|
||||
0x69, 0x5a, 0x2d, 0x54, 0xe3, 0xd0, 0x7c, 0x98, 0x9f, 0x11, 0x3e, 0x9d, 0xdd, 0x72, 0x8d, 0x03,
|
||||
0x93, 0x60, 0xc3, 0xa3, 0x10, 0x44, 0x3f, 0x2a, 0xf4, 0xe7, 0xa9, 0xc8, 0x1c, 0xce, 0x87, 0x81,
|
||||
0x00, 0x1e, 0xc7, 0xa0, 0x60, 0x27, 0xa3, 0x68, 0xbe, 0xce, 0x0f, 0xed, 0xd0, 0x53, 0x69, 0x2c,
|
||||
0xd8, 0xc9, 0xc8, 0xbc, 0xa7, 0x1f, 0xe2, 0x3a, 0x34, 0xa1, 0x7b, 0x88, 0xdf, 0xbb, 0x07, 0xbb,
|
||||
0xfa, 0x3d, 0xb8, 0xc3, 0x01, 0xc6, 0x71, 0xc1, 0x5e, 0x22, 0x7c, 0x56, 0xbf, 0xb9, 0xf1, 0xd5,
|
||||
0xee, 0x1f, 0xfd, 0xda, 0x5f, 0x88, 0x7e, 0x0d, 0xa4, 0xf9, 0x1c, 0xe1, 0xd2, 0x20, 0xae, 0xa4,
|
||||
0x8c, 0x5b, 0x78, 0xb6, 0x37, 0x65, 0x4a, 0x04, 0x66, 0xd6, 0xb6, 0xc6, 0x86, 0x65, 0x67, 0xcc,
|
||||
0xaf, 0x7d, 0xc0, 0xf8, 0xff, 0x2c, 0x51, 0x0d, 0x78, 0xdb, 0x75, 0x80, 0xbc, 0x41, 0x38, 0xb7,
|
||||
0x09, 0x92, 0x2c, 0x52, 0x4d, 0xb5, 0xfb, 0x4b, 0xa2, 0x31, 0xd6, 0xc8, 0x99, 0x8b, 0x4f, 0xbe,
|
||||
0xfd, 0x78, 0x31, 0x51, 0x26, 0x25, 0xf5, 0x0c, 0xb4, 0x57, 0xb5, 0xa7, 0x43, 0x58, 0x47, 0x51,
|
||||
0x49, 0x3c, 0x26, 0xaf, 0x10, 0x2e, 0xa4, 0x31, 0x24, 0xd5, 0x51, 0xa8, 0x99, 0x1a, 0x30, 0xe8,
|
||||
0x49, 0xb7, 0xc7, 0xa9, 0x31, 0x57, 0x14, 0xd3, 0x82, 0x59, 0x1e, 0xc4, 0x94, 0xbe, 0x1f, 0x1b,
|
||||
0x68, 0x99, 0xbc, 0x46, 0x78, 0x32, 0x92, 0x75, 0xb2, 0x34, 0xdc, 0x4b, 0x47, 0xfa, 0x8d, 0x5b,
|
||||
0xe3, 0x0c, 0x60, 0x64, 0xd6, 0x3c, 0xa7, 0x80, 0x4f, 0x91, 0xf9, 0x01, 0xc0, 0xe4, 0x3d, 0xc2,
|
||||
0xf9, 0x58, 0x95, 0xc8, 0xca, 0x70, 0xcc, 0x8c, 0x76, 0x8d, 0x39, 0xd7, 0x96, 0xc2, 0x3c, 0x6f,
|
||||
0x0e, 0xc2, 0xdc, 0xd0, 0x45, 0xec, 0x19, 0xc2, 0xf9, 0x58, 0x87, 0x46, 0x61, 0x67, 0xd4, 0xca,
|
||||
0x18, 0x51, 0xca, 0x9d, 0x44, 0x27, 0xc5, 0xb7, 0x3c, 0xaa, 0xf8, 0x3e, 0x21, 0x3c, 0x6b, 0x27,
|
||||
0x2f, 0x54, 0x24, 0x5d, 0xa3, 0x72, 0xdd, 0x91, 0xb7, 0xf1, 0xe6, 0x3a, 0x32, 0x6b, 0x5e, 0x52,
|
||||
0xcc, 0x94, 0x5c, 0x18, 0xce, 0x6c, 0xa5, 0x2f, 0x6a, 0x55, 0x46, 0xc0, 0x4f, 0x11, 0x26, 0x51,
|
||||
0xa9, 0xa4, 0xa7, 0xb8, 0xd1, 0x06, 0x4f, 0x8a, 0x13, 0xdf, 0xf9, 0x79, 0x1a, 0x77, 0x63, 0x34,
|
||||
0xed, 0xc6, 0x68, 0x4d, 0x75, 0x63, 0x66, 0x55, 0xd1, 0x2c, 0x91, 0x85, 0x11, 0x34, 0x10, 0xfb,
|
||||
0x7b, 0x87, 0xf0, 0x94, 0xea, 0x42, 0x48, 0x65, 0xb8, 0xe7, 0x6e, 0xab, 0x62, 0xec, 0x8c, 0x33,
|
||||
0x84, 0xca, 0xae, 0x3a, 0xfc, 0xaf, 0xca, 0x23, 0x24, 0x07, 0xd6, 0xd2, 0x4f, 0x70, 0x11, 0x5d,
|
||||
0xdd, 0xfa, 0x72, 0x5c, 0x42, 0x5f, 0x8f, 0x4b, 0xe8, 0xfb, 0x71, 0x09, 0xdd, 0xbd, 0x7c, 0xb2,
|
||||
0xd6, 0xd3, 0x69, 0xba, 0xe0, 0xe9, 0x9d, 0xf0, 0x5e, 0x5e, 0x05, 0x70, 0xfd, 0x67, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0xb2, 0x2c, 0xf3, 0x15, 0x38, 0x0b, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
|
@ -660,7 +659,7 @@ type ApplicationSetServiceClient interface {
|
|||
// ResourceTree returns resource tree
|
||||
ResourceTree(ctx context.Context, in *ApplicationSetTreeQuery, opts ...grpc.CallOption) (*v1alpha1.ApplicationSetTree, error)
|
||||
// ListResourceEvents returns a list of event resources
|
||||
ListResourceEvents(ctx context.Context, in *ApplicationSetGetQuery, opts ...grpc.CallOption) (*v1.EventList, error)
|
||||
ListResourceEvents(ctx context.Context, in *ApplicationSetGetQuery, opts ...grpc.CallOption) (*structpb.Struct, error)
|
||||
Watch(ctx context.Context, in *ApplicationSetWatchQuery, opts ...grpc.CallOption) (ApplicationSetService_WatchClient, error)
|
||||
}
|
||||
|
||||
|
|
@ -726,8 +725,8 @@ func (c *applicationSetServiceClient) ResourceTree(ctx context.Context, in *Appl
|
|||
return out, nil
|
||||
}
|
||||
|
||||
func (c *applicationSetServiceClient) ListResourceEvents(ctx context.Context, in *ApplicationSetGetQuery, opts ...grpc.CallOption) (*v1.EventList, error) {
|
||||
out := new(v1.EventList)
|
||||
func (c *applicationSetServiceClient) ListResourceEvents(ctx context.Context, in *ApplicationSetGetQuery, opts ...grpc.CallOption) (*structpb.Struct, error) {
|
||||
out := new(structpb.Struct)
|
||||
err := c.cc.Invoke(ctx, "/applicationset.ApplicationSetService/ListResourceEvents", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -782,7 +781,7 @@ type ApplicationSetServiceServer interface {
|
|||
// ResourceTree returns resource tree
|
||||
ResourceTree(context.Context, *ApplicationSetTreeQuery) (*v1alpha1.ApplicationSetTree, error)
|
||||
// ListResourceEvents returns a list of event resources
|
||||
ListResourceEvents(context.Context, *ApplicationSetGetQuery) (*v1.EventList, error)
|
||||
ListResourceEvents(context.Context, *ApplicationSetGetQuery) (*structpb.Struct, error)
|
||||
Watch(*ApplicationSetWatchQuery, ApplicationSetService_WatchServer) error
|
||||
}
|
||||
|
||||
|
|
@ -808,7 +807,7 @@ func (*UnimplementedApplicationSetServiceServer) Delete(ctx context.Context, req
|
|||
func (*UnimplementedApplicationSetServiceServer) ResourceTree(ctx context.Context, req *ApplicationSetTreeQuery) (*v1alpha1.ApplicationSetTree, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ResourceTree not implemented")
|
||||
}
|
||||
func (*UnimplementedApplicationSetServiceServer) ListResourceEvents(ctx context.Context, req *ApplicationSetGetQuery) (*v1.EventList, error) {
|
||||
func (*UnimplementedApplicationSetServiceServer) ListResourceEvents(ctx context.Context, req *ApplicationSetGetQuery) (*structpb.Struct, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListResourceEvents not implemented")
|
||||
}
|
||||
func (*UnimplementedApplicationSetServiceServer) Watch(req *ApplicationSetWatchQuery, srv ApplicationSetService_WatchServer) error {
|
||||
|
|
|
|||
18
pkg/apiclient/project/mocks/ProjectServiceClient.go
generated
18
pkg/apiclient/project/mocks/ProjectServiceClient.go
generated
|
|
@ -12,7 +12,7 @@ import (
|
|||
"github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
"google.golang.org/grpc"
|
||||
"k8s.io/api/core/v1"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
)
|
||||
|
||||
// NewProjectServiceClient creates a new instance of ProjectServiceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
|
||||
|
|
@ -826,7 +826,7 @@ func (_c *ProjectServiceClient_List_Call) RunAndReturn(run func(ctx context.Cont
|
|||
}
|
||||
|
||||
// ListEvents provides a mock function for the type ProjectServiceClient
|
||||
func (_mock *ProjectServiceClient) ListEvents(ctx context.Context, in *project.ProjectQuery, opts ...grpc.CallOption) (*v1.EventList, error) {
|
||||
func (_mock *ProjectServiceClient) ListEvents(ctx context.Context, in *project.ProjectQuery, opts ...grpc.CallOption) (*structpb.Struct, error) {
|
||||
// grpc.CallOption
|
||||
_va := make([]interface{}, len(opts))
|
||||
for _i := range opts {
|
||||
|
|
@ -841,16 +841,16 @@ func (_mock *ProjectServiceClient) ListEvents(ctx context.Context, in *project.P
|
|||
panic("no return value specified for ListEvents")
|
||||
}
|
||||
|
||||
var r0 *v1.EventList
|
||||
var r0 *structpb.Struct
|
||||
var r1 error
|
||||
if returnFunc, ok := ret.Get(0).(func(context.Context, *project.ProjectQuery, ...grpc.CallOption) (*v1.EventList, error)); ok {
|
||||
if returnFunc, ok := ret.Get(0).(func(context.Context, *project.ProjectQuery, ...grpc.CallOption) (*structpb.Struct, error)); ok {
|
||||
return returnFunc(ctx, in, opts...)
|
||||
}
|
||||
if returnFunc, ok := ret.Get(0).(func(context.Context, *project.ProjectQuery, ...grpc.CallOption) *v1.EventList); ok {
|
||||
if returnFunc, ok := ret.Get(0).(func(context.Context, *project.ProjectQuery, ...grpc.CallOption) *structpb.Struct); ok {
|
||||
r0 = returnFunc(ctx, in, opts...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*v1.EventList)
|
||||
r0 = ret.Get(0).(*structpb.Struct)
|
||||
}
|
||||
}
|
||||
if returnFunc, ok := ret.Get(1).(func(context.Context, *project.ProjectQuery, ...grpc.CallOption) error); ok {
|
||||
|
|
@ -902,12 +902,12 @@ func (_c *ProjectServiceClient_ListEvents_Call) Run(run func(ctx context.Context
|
|||
return _c
|
||||
}
|
||||
|
||||
func (_c *ProjectServiceClient_ListEvents_Call) Return(eventList *v1.EventList, err error) *ProjectServiceClient_ListEvents_Call {
|
||||
_c.Call.Return(eventList, err)
|
||||
func (_c *ProjectServiceClient_ListEvents_Call) Return(structParam *structpb.Struct, err error) *ProjectServiceClient_ListEvents_Call {
|
||||
_c.Call.Return(structParam, err)
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *ProjectServiceClient_ListEvents_Call) RunAndReturn(run func(ctx context.Context, in *project.ProjectQuery, opts ...grpc.CallOption) (*v1.EventList, error)) *ProjectServiceClient_ListEvents_Call {
|
||||
func (_c *ProjectServiceClient_ListEvents_Call) RunAndReturn(run func(ctx context.Context, in *project.ProjectQuery, opts ...grpc.CallOption) (*structpb.Struct, error)) *ProjectServiceClient_ListEvents_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
|
|
|||
140
pkg/apiclient/project/project.pb.go
generated
140
pkg/apiclient/project/project.pb.go
generated
|
|
@ -17,8 +17,8 @@ import (
|
|||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
structpb "google.golang.org/protobuf/types/known/structpb"
|
||||
io "io"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
math "math"
|
||||
math_bits "math/bits"
|
||||
)
|
||||
|
|
@ -702,70 +702,70 @@ func init() {
|
|||
func init() { proto.RegisterFile("server/project/project.proto", fileDescriptor_5f0a51496972c9e2) }
|
||||
|
||||
var fileDescriptor_5f0a51496972c9e2 = []byte{
|
||||
// 1007 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcf, 0x6f, 0xe3, 0x44,
|
||||
0x14, 0x96, 0x93, 0x36, 0xbb, 0x7d, 0x2d, 0xa5, 0xcc, 0xee, 0x76, 0xdd, 0xd0, 0x1f, 0x61, 0xd0,
|
||||
0x56, 0x51, 0xa1, 0xb6, 0xda, 0x80, 0xb4, 0x82, 0x13, 0xdb, 0xad, 0x02, 0x52, 0x0f, 0xe0, 0x82,
|
||||
0x40, 0x1c, 0x40, 0x8e, 0xfd, 0x94, 0x9d, 0x8d, 0x63, 0x1b, 0xcf, 0x24, 0xdb, 0x10, 0xf5, 0x82,
|
||||
0x04, 0x48, 0x1c, 0x38, 0xc0, 0x89, 0x0b, 0x47, 0xfe, 0x0f, 0x6e, 0x1c, 0x91, 0xf8, 0x07, 0x50,
|
||||
0xc5, 0x1f, 0x82, 0x66, 0x3c, 0x76, 0xe2, 0xa4, 0xe6, 0x87, 0x1a, 0x38, 0x65, 0x3c, 0x7e, 0xfe,
|
||||
0xbe, 0xef, 0xbd, 0x79, 0xf3, 0xcd, 0x04, 0xb6, 0x39, 0x26, 0x43, 0x4c, 0xec, 0x38, 0x89, 0x9e,
|
||||
0xa2, 0x27, 0xb2, 0x5f, 0x2b, 0x4e, 0x22, 0x11, 0x91, 0x5b, 0xfa, 0xb1, 0xbe, 0xdd, 0x8d, 0xa2,
|
||||
0x6e, 0x80, 0xb6, 0x1b, 0x33, 0xdb, 0x0d, 0xc3, 0x48, 0xb8, 0x82, 0x45, 0x21, 0x4f, 0xc3, 0xea,
|
||||
0xb4, 0xf7, 0x90, 0x5b, 0x2c, 0x52, 0x6f, 0xbd, 0x28, 0x41, 0x7b, 0x78, 0x64, 0x77, 0x31, 0xc4,
|
||||
0xc4, 0x15, 0xe8, 0xeb, 0x98, 0xb3, 0x2e, 0x13, 0x4f, 0x06, 0x1d, 0xcb, 0x8b, 0xfa, 0xb6, 0x9b,
|
||||
0x74, 0x23, 0x89, 0xac, 0x06, 0x87, 0x9e, 0x6f, 0x0f, 0x5b, 0x76, 0xdc, 0xeb, 0xca, 0xef, 0xb9,
|
||||
0xed, 0xc6, 0x71, 0xc0, 0x3c, 0x85, 0x6f, 0x0f, 0x8f, 0xdc, 0x20, 0x7e, 0xe2, 0xce, 0xa3, 0x9d,
|
||||
0xfc, 0x0d, 0x9a, 0xce, 0x6a, 0x1a, 0x6b, 0x6a, 0x9c, 0x82, 0xd0, 0xef, 0x0c, 0xb8, 0xfb, 0x6e,
|
||||
0x9a, 0xe0, 0x49, 0x82, 0xae, 0x40, 0x07, 0x3f, 0x1b, 0x20, 0x17, 0xa4, 0x03, 0x59, 0xe2, 0xa6,
|
||||
0xd1, 0x30, 0x9a, 0xab, 0xc7, 0x6f, 0x5b, 0x13, 0x3e, 0x2b, 0xe3, 0x53, 0x83, 0x4f, 0x3d, 0xdf,
|
||||
0x1a, 0xb6, 0xac, 0xb8, 0xd7, 0xb5, 0xa4, 0x7a, 0x6b, 0x9a, 0x25, 0x53, 0x6f, 0xbd, 0x15, 0xc7,
|
||||
0x9a, 0xc7, 0xc9, 0x80, 0xc9, 0x26, 0xd4, 0x06, 0x31, 0xc7, 0x44, 0x98, 0x95, 0x86, 0xd1, 0xbc,
|
||||
0xed, 0xe8, 0x27, 0xda, 0x83, 0x2d, 0x1d, 0xfb, 0x7e, 0xd4, 0xc3, 0xf0, 0x31, 0x06, 0x38, 0x11,
|
||||
0x66, 0x16, 0x85, 0xad, 0x4c, 0xe0, 0x08, 0x2c, 0x25, 0x51, 0x80, 0x0a, 0x6c, 0xc5, 0x51, 0x63,
|
||||
0xb2, 0x01, 0x55, 0xe6, 0x0a, 0xb3, 0xda, 0x30, 0x9a, 0x55, 0x47, 0x0e, 0xc9, 0x3a, 0x54, 0x98,
|
||||
0x6f, 0x2e, 0xa9, 0x98, 0x0a, 0xf3, 0xe9, 0x0f, 0x46, 0x91, 0xad, 0x58, 0x86, 0x72, 0xb6, 0x06,
|
||||
0xac, 0xfa, 0xc8, 0xbd, 0x84, 0xc5, 0x32, 0x51, 0x4d, 0x3a, 0x3d, 0x95, 0xeb, 0xa9, 0x4e, 0xe9,
|
||||
0xd9, 0x86, 0x15, 0xbc, 0x88, 0x59, 0x82, 0xfc, 0x9d, 0x50, 0x89, 0xa8, 0x3a, 0x93, 0x09, 0xad,
|
||||
0x6d, 0x39, 0xd7, 0xf6, 0x6a, 0xbe, 0x38, 0x4a, 0x9a, 0x83, 0x3c, 0x8e, 0x42, 0x8e, 0xe4, 0x2e,
|
||||
0x2c, 0x0b, 0x39, 0xa1, 0x35, 0xa5, 0x0f, 0x94, 0xc2, 0x9a, 0x8e, 0x7e, 0x6f, 0x80, 0xc9, 0x48,
|
||||
0xf2, 0x87, 0x6e, 0x1f, 0x75, 0x90, 0x1a, 0xd3, 0xcf, 0x73, 0xc4, 0x0f, 0x62, 0xff, 0xff, 0x5d,
|
||||
0x6e, 0xfa, 0x3c, 0x3c, 0x77, 0xda, 0x8f, 0xc5, 0x28, 0x4b, 0x83, 0xee, 0xc3, 0xc6, 0xf9, 0x28,
|
||||
0xf4, 0x3e, 0x64, 0xa1, 0x1f, 0x3d, 0xe3, 0xe5, 0xa2, 0x47, 0x70, 0x67, 0x2a, 0x2e, 0xaf, 0x42,
|
||||
0x07, 0x6e, 0x3d, 0x4b, 0xa7, 0x4c, 0xa3, 0x51, 0xbd, 0xb9, 0xe6, 0x09, 0x87, 0x93, 0x01, 0xd3,
|
||||
0x0b, 0xd8, 0x6c, 0x07, 0x51, 0xc7, 0x0d, 0x74, 0x36, 0x13, 0xf6, 0x4f, 0x60, 0x99, 0x09, 0xec,
|
||||
0x2f, 0x88, 0x7b, 0xaa, 0x5e, 0x29, 0x2c, 0xfd, 0xb9, 0x0a, 0xe6, 0x63, 0x14, 0x2e, 0x0b, 0xd0,
|
||||
0x9f, 0x23, 0x8f, 0x61, 0xbd, 0x5b, 0x90, 0xb5, 0x70, 0x15, 0x33, 0xf8, 0xd3, 0x0d, 0x52, 0xf9,
|
||||
0xaf, 0xfc, 0x20, 0x80, 0xb5, 0x04, 0xe3, 0x88, 0x33, 0x11, 0x25, 0x0c, 0xb9, 0x59, 0x5d, 0x44,
|
||||
0x4e, 0x4e, 0x86, 0x38, 0x72, 0x0a, 0xe8, 0xc4, 0x85, 0xdb, 0x5e, 0x30, 0xe0, 0x02, 0x13, 0x6e,
|
||||
0x2e, 0x29, 0xa6, 0xd3, 0x9b, 0x31, 0x9d, 0xa4, 0x68, 0x4e, 0x0e, 0x4b, 0x0f, 0xe1, 0xfe, 0x19,
|
||||
0xe3, 0x42, 0x27, 0x7a, 0xc6, 0xc2, 0x1e, 0xcf, 0x36, 0xdc, 0x35, 0x7d, 0x7e, 0xfc, 0xe3, 0x1a,
|
||||
0xac, 0xeb, 0xd8, 0x73, 0x4c, 0x86, 0xcc, 0x43, 0xf2, 0x8d, 0x01, 0xab, 0xa9, 0x23, 0x29, 0x07,
|
||||
0x20, 0xd4, 0xca, 0x4e, 0xa7, 0x52, 0xcf, 0xaa, 0xef, 0x5c, 0x1b, 0x93, 0xef, 0xba, 0x87, 0x5f,
|
||||
0xfc, 0xf6, 0xc7, 0xf7, 0x95, 0x63, 0x7a, 0xa8, 0xce, 0xaa, 0xe1, 0x51, 0x76, 0xde, 0x71, 0x7b,
|
||||
0xac, 0x47, 0x97, 0xb6, 0xf4, 0x2a, 0x6e, 0x8f, 0xe5, 0xcf, 0xa5, 0xad, 0xdc, 0xe5, 0x0d, 0xe3,
|
||||
0x80, 0x7c, 0x65, 0xc0, 0x6a, 0x6a, 0xc6, 0x7f, 0x25, 0xa6, 0x60, 0xd7, 0xf5, 0xcd, 0x3c, 0xa6,
|
||||
0xb8, 0xf7, 0xdf, 0x54, 0x2a, 0x5e, 0x3f, 0x68, 0xfd, 0x2b, 0x15, 0xf6, 0x98, 0xb9, 0xe2, 0x92,
|
||||
0x7c, 0x6b, 0x40, 0x2d, 0xcd, 0x99, 0xcc, 0x25, 0x5b, 0xac, 0xc5, 0xc2, 0xba, 0x94, 0xbe, 0xa8,
|
||||
0x04, 0xdf, 0xa3, 0x1b, 0xb3, 0x82, 0x65, 0x65, 0xbe, 0x34, 0x60, 0x49, 0xae, 0x34, 0xb9, 0x37,
|
||||
0x2b, 0x47, 0xb9, 0x5a, 0xfd, 0x6c, 0x51, 0x32, 0x24, 0x09, 0x35, 0x95, 0x14, 0x42, 0xe6, 0xa4,
|
||||
0x90, 0x0b, 0x20, 0x6d, 0x14, 0x33, 0xb6, 0x51, 0x26, 0xea, 0xa5, 0x7c, 0xba, 0xcc, 0x67, 0x68,
|
||||
0x53, 0x31, 0x51, 0xd2, 0x98, 0x5f, 0x25, 0xd9, 0xb1, 0x97, 0xb6, 0xaf, 0xbf, 0x24, 0x5f, 0x1b,
|
||||
0x50, 0x6d, 0x63, 0x29, 0xd7, 0xe2, 0xd6, 0x61, 0x4f, 0x49, 0xda, 0x22, 0xf7, 0x4b, 0x24, 0x91,
|
||||
0x31, 0xbc, 0xd0, 0x46, 0x51, 0x74, 0xed, 0x32, 0x59, 0x7b, 0xf9, 0xf4, 0xf5, 0x2e, 0x4f, 0x2d,
|
||||
0xc5, 0xd6, 0x24, 0xfb, 0x65, 0x05, 0x48, 0x6d, 0x32, 0x5f, 0x80, 0x9f, 0x0c, 0xa8, 0xa5, 0x27,
|
||||
0xeb, 0x7c, 0x67, 0x16, 0x4e, 0xdc, 0x05, 0x56, 0xa4, 0xa5, 0x34, 0x1e, 0xd6, 0x9b, 0xa5, 0x5b,
|
||||
0xc9, 0xea, 0xa3, 0x70, 0x7d, 0x57, 0xb8, 0x96, 0x12, 0x2d, 0x3b, 0xf6, 0x23, 0xa8, 0xa5, 0x1b,
|
||||
0xb5, 0xac, 0x34, 0x65, 0x1b, 0x57, 0xd7, 0xff, 0xa0, 0xb4, 0xfe, 0x4f, 0x01, 0x64, 0x97, 0x9e,
|
||||
0x0e, 0x31, 0x2c, 0x2f, 0xfc, 0x8e, 0x95, 0xde, 0x97, 0x65, 0x86, 0x96, 0xbc, 0x2f, 0x5b, 0xc3,
|
||||
0x23, 0x4b, 0x7d, 0xa2, 0x3a, 0x7c, 0x5f, 0x91, 0x34, 0xc8, 0x6e, 0x59, 0xd9, 0x31, 0x45, 0x1f,
|
||||
0xc3, 0x9d, 0x36, 0x8a, 0xa9, 0xcb, 0xc1, 0xb9, 0x90, 0xa5, 0xdf, 0xca, 0x49, 0x67, 0xef, 0x17,
|
||||
0xf5, 0xed, 0xeb, 0x5e, 0xe5, 0xc9, 0xbd, 0xa2, 0x78, 0x1f, 0x90, 0x97, 0xcb, 0x78, 0xf9, 0x28,
|
||||
0xf4, 0xf4, 0xdd, 0x80, 0xc4, 0xb0, 0x22, 0xc5, 0x2a, 0x5b, 0x27, 0x8d, 0x1c, 0xb7, 0xc4, 0xf1,
|
||||
0xeb, 0xf5, 0xc2, 0x42, 0xea, 0x57, 0x9a, 0xf7, 0x81, 0xe2, 0xdd, 0x23, 0x3b, 0x65, 0xbc, 0x81,
|
||||
0x0c, 0x7f, 0xf4, 0xe8, 0x97, 0xab, 0x5d, 0xe3, 0xd7, 0xab, 0x5d, 0xe3, 0xf7, 0xab, 0x5d, 0xe3,
|
||||
0xe3, 0xd7, 0xfe, 0xd9, 0xdf, 0x09, 0x2f, 0x60, 0x18, 0xe6, 0xff, 0x6a, 0x3a, 0x35, 0x75, 0xf1,
|
||||
0x6f, 0xfd, 0x19, 0x00, 0x00, 0xff, 0xff, 0xae, 0xc9, 0xe8, 0xa8, 0xf6, 0x0c, 0x00, 0x00,
|
||||
// 1000 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4f, 0x6f, 0xe3, 0x44,
|
||||
0x14, 0x97, 0x93, 0x36, 0xbb, 0x7d, 0x2d, 0xa5, 0xcc, 0xee, 0xb6, 0x6e, 0xe8, 0xb6, 0x61, 0xd0,
|
||||
0x56, 0x51, 0xa1, 0xb6, 0xda, 0x80, 0x84, 0xe0, 0xc4, 0x76, 0xab, 0x80, 0xd4, 0x03, 0xb8, 0x20,
|
||||
0x10, 0x07, 0x90, 0x63, 0x3f, 0xb2, 0x43, 0x1c, 0x7b, 0xf0, 0x4c, 0xb2, 0x0d, 0x51, 0x2f, 0x48,
|
||||
0x80, 0xc4, 0x81, 0x03, 0x5c, 0xe0, 0x0b, 0xf0, 0x3d, 0xb8, 0x71, 0x44, 0xe2, 0x0b, 0xa0, 0x8a,
|
||||
0x0f, 0x82, 0x3c, 0x1e, 0x3b, 0x71, 0x52, 0xf3, 0x47, 0x0d, 0x7b, 0xca, 0x78, 0xfc, 0xf2, 0xfb,
|
||||
0xfd, 0xde, 0x9b, 0x37, 0xbf, 0x19, 0xc3, 0x8e, 0xc0, 0x78, 0x88, 0xb1, 0xcd, 0xe3, 0xe8, 0x33,
|
||||
0xf4, 0x64, 0xf6, 0x6b, 0xf1, 0x38, 0x92, 0x11, 0xb9, 0xa5, 0x1f, 0xeb, 0x3b, 0xdd, 0x28, 0xea,
|
||||
0x06, 0x68, 0xbb, 0x9c, 0xd9, 0x6e, 0x18, 0x46, 0xd2, 0x95, 0x2c, 0x0a, 0x45, 0x1a, 0x96, 0xbf,
|
||||
0x55, 0x4f, 0x9d, 0xc1, 0xa7, 0xb6, 0x90, 0xf1, 0x20, 0x03, 0xa9, 0x9f, 0x75, 0x99, 0x7c, 0x3c,
|
||||
0xe8, 0x58, 0x5e, 0xd4, 0xb7, 0xdd, 0xb8, 0x1b, 0x25, 0x98, 0x6a, 0x70, 0xe8, 0xf9, 0xf6, 0xb0,
|
||||
0x65, 0xf3, 0x5e, 0x37, 0xc1, 0x15, 0xb6, 0xcb, 0x79, 0xc0, 0x3c, 0x85, 0x6c, 0x0f, 0x8f, 0xdc,
|
||||
0x80, 0x3f, 0x76, 0x8f, 0xec, 0x2e, 0x86, 0x18, 0xbb, 0x12, 0x7d, 0x8d, 0x76, 0xf2, 0x0f, 0x68,
|
||||
0x3a, 0x9f, 0x69, 0xac, 0xa9, 0x71, 0x0a, 0x42, 0xbf, 0x37, 0xe0, 0xee, 0x3b, 0x69, 0x6a, 0x27,
|
||||
0x31, 0xba, 0x12, 0x1d, 0xfc, 0x7c, 0x80, 0x42, 0x92, 0x0e, 0x64, 0x29, 0x9b, 0x46, 0xc3, 0x68,
|
||||
0xae, 0x1e, 0xbf, 0x65, 0x4d, 0xf8, 0xac, 0x8c, 0x4f, 0x0d, 0x3e, 0xf1, 0x7c, 0x6b, 0xd8, 0xb2,
|
||||
0x78, 0xaf, 0x6b, 0x25, 0xea, 0xad, 0x69, 0x96, 0x4c, 0xbd, 0xf5, 0x26, 0xe7, 0x9a, 0xc7, 0xc9,
|
||||
0x80, 0xc9, 0x26, 0xd4, 0x06, 0x5c, 0x60, 0x2c, 0xcd, 0x4a, 0xc3, 0x68, 0xde, 0x76, 0xf4, 0x13,
|
||||
0xed, 0xc1, 0xb6, 0x8e, 0x7d, 0x2f, 0xea, 0x61, 0xf8, 0x08, 0x03, 0x9c, 0x08, 0x33, 0x8b, 0xc2,
|
||||
0x56, 0x26, 0x70, 0x04, 0x96, 0xe2, 0x28, 0x40, 0x05, 0xb6, 0xe2, 0xa8, 0x31, 0xd9, 0x80, 0x2a,
|
||||
0x73, 0xa5, 0x59, 0x6d, 0x18, 0xcd, 0xaa, 0x93, 0x0c, 0xc9, 0x3a, 0x54, 0x98, 0x6f, 0x2e, 0xa9,
|
||||
0x98, 0x0a, 0xf3, 0xe9, 0x4f, 0x46, 0x91, 0xad, 0x58, 0x86, 0x72, 0xb6, 0x06, 0xac, 0xfa, 0x28,
|
||||
0xbc, 0x98, 0xf1, 0x24, 0x51, 0x4d, 0x3a, 0x3d, 0x95, 0xeb, 0xa9, 0x4e, 0xe9, 0xd9, 0x81, 0x15,
|
||||
0xbc, 0xe0, 0x2c, 0x46, 0xf1, 0x76, 0xa8, 0x44, 0x54, 0x9d, 0xc9, 0x84, 0xd6, 0xb6, 0x9c, 0x6b,
|
||||
0x7b, 0x39, 0x5f, 0x1c, 0x25, 0xcd, 0x41, 0xc1, 0xa3, 0x50, 0x20, 0xb9, 0x0b, 0xcb, 0x32, 0x99,
|
||||
0xd0, 0x9a, 0xd2, 0x07, 0x4a, 0x61, 0x4d, 0x47, 0xbf, 0x3b, 0xc0, 0x78, 0x94, 0xf0, 0x87, 0x6e,
|
||||
0x1f, 0x75, 0x90, 0x1a, 0xd3, 0x2f, 0x72, 0xc4, 0xf7, 0xb9, 0xff, 0x74, 0x97, 0x9b, 0x3e, 0x0b,
|
||||
0xcf, 0x9c, 0xf6, 0xb9, 0x1c, 0x65, 0x69, 0xd0, 0x7d, 0xd8, 0x38, 0x1f, 0x85, 0xde, 0x07, 0x2c,
|
||||
0xf4, 0xa3, 0x27, 0xa2, 0x5c, 0xf4, 0x08, 0xee, 0x4c, 0xc5, 0xe5, 0x55, 0xe8, 0xc0, 0xad, 0x27,
|
||||
0xe9, 0x94, 0x69, 0x34, 0xaa, 0x37, 0xd7, 0x3c, 0xe1, 0x70, 0x32, 0x60, 0x7a, 0x01, 0x9b, 0xed,
|
||||
0x20, 0xea, 0xb8, 0x81, 0xce, 0x66, 0xc2, 0xfe, 0x31, 0x2c, 0x33, 0x89, 0xfd, 0x05, 0x71, 0x4f,
|
||||
0xd5, 0x2b, 0x85, 0xa5, 0xbf, 0x54, 0xc1, 0x7c, 0x84, 0xd2, 0x65, 0x01, 0xfa, 0x73, 0xe4, 0x1c,
|
||||
0xd6, 0xbb, 0x05, 0x59, 0x0b, 0x57, 0x31, 0x83, 0x3f, 0xdd, 0x20, 0x95, 0xff, 0xcb, 0x0f, 0x02,
|
||||
0x58, 0x8b, 0x91, 0x47, 0x82, 0xc9, 0x28, 0x66, 0x28, 0xcc, 0xea, 0x22, 0x72, 0x72, 0x32, 0xc4,
|
||||
0x91, 0x53, 0x40, 0x27, 0x2e, 0xdc, 0xf6, 0x82, 0x81, 0x90, 0x18, 0x0b, 0x73, 0x49, 0x31, 0x9d,
|
||||
0xde, 0x8c, 0xe9, 0x24, 0x45, 0x73, 0x72, 0x58, 0x7a, 0x08, 0x5b, 0x67, 0x4c, 0x48, 0x9d, 0xe8,
|
||||
0x19, 0x0b, 0x7b, 0x22, 0xdb, 0x70, 0xd7, 0xf4, 0xf9, 0xf1, 0x8f, 0x6b, 0xb0, 0xae, 0x63, 0xcf,
|
||||
0x31, 0x1e, 0x32, 0x0f, 0xc9, 0xb7, 0x06, 0xac, 0xa6, 0x8e, 0xa4, 0x1c, 0x80, 0x50, 0x2b, 0x3b,
|
||||
0x97, 0x4a, 0x3d, 0xab, 0x7e, 0xff, 0xda, 0x98, 0x7c, 0xd7, 0xbd, 0xf6, 0xe5, 0xef, 0x7f, 0xfe,
|
||||
0x50, 0x39, 0xa6, 0x87, 0xea, 0x0c, 0x1b, 0x1e, 0x65, 0x27, 0x9d, 0xb0, 0xc7, 0x7a, 0x74, 0x69,
|
||||
0x27, 0x5e, 0x25, 0xec, 0x71, 0xf2, 0x73, 0x69, 0x2b, 0x77, 0x79, 0xdd, 0x38, 0x20, 0x5f, 0x1b,
|
||||
0xb0, 0x9a, 0x9a, 0xf1, 0xdf, 0x89, 0x29, 0xd8, 0x75, 0x7d, 0x33, 0x8f, 0x29, 0xee, 0xfd, 0x37,
|
||||
0x94, 0x8a, 0x57, 0x0f, 0x5a, 0xff, 0x49, 0x85, 0x3d, 0x66, 0xae, 0xbc, 0x24, 0xdf, 0x19, 0x50,
|
||||
0x4b, 0x73, 0x26, 0x73, 0xc9, 0x16, 0x6b, 0xb1, 0xb0, 0x2e, 0xa5, 0xcf, 0x2b, 0xc1, 0xf7, 0xe8,
|
||||
0xc6, 0xac, 0xe0, 0xa4, 0x32, 0x5f, 0x19, 0xb0, 0x94, 0xac, 0x34, 0xb9, 0x37, 0x2b, 0x47, 0xb9,
|
||||
0x5a, 0xfd, 0x6c, 0x51, 0x32, 0x12, 0x12, 0x6a, 0x2a, 0x29, 0x84, 0xcc, 0x49, 0x21, 0x17, 0x40,
|
||||
0xda, 0x28, 0x67, 0x6c, 0xa3, 0x4c, 0xd4, 0x0b, 0xf9, 0x74, 0x99, 0xcf, 0xd0, 0xa6, 0x62, 0xa2,
|
||||
0xa4, 0x31, 0xbf, 0x4a, 0x49, 0xc7, 0x5e, 0xda, 0xbe, 0xfe, 0x27, 0xf9, 0xc6, 0x80, 0x6a, 0x1b,
|
||||
0x4b, 0xb9, 0x16, 0xb7, 0x0e, 0x7b, 0x4a, 0xd2, 0x36, 0xd9, 0x2a, 0x91, 0x44, 0xc6, 0xf0, 0x5c,
|
||||
0x1b, 0x65, 0xd1, 0xb5, 0xcb, 0x64, 0xed, 0xe5, 0xd3, 0xd7, 0xbb, 0x3c, 0xb5, 0x14, 0x5b, 0x93,
|
||||
0xec, 0x97, 0x15, 0x20, 0xb5, 0xc9, 0x7c, 0x01, 0x7e, 0x36, 0xa0, 0x96, 0x9e, 0xac, 0xf3, 0x9d,
|
||||
0x59, 0x38, 0x71, 0x17, 0x58, 0x91, 0x96, 0xd2, 0x78, 0x58, 0x6f, 0x96, 0x6e, 0x25, 0xab, 0x8f,
|
||||
0xd2, 0xf5, 0x5d, 0xe9, 0x5a, 0x4a, 0x74, 0xd2, 0xb1, 0x1f, 0x42, 0x2d, 0xdd, 0xa8, 0x65, 0xa5,
|
||||
0x29, 0xdb, 0xb8, 0xba, 0xfe, 0x07, 0xa5, 0xf5, 0xf7, 0x01, 0x92, 0x2e, 0x3d, 0x1d, 0x62, 0x58,
|
||||
0x5e, 0xf8, 0x2d, 0x2b, 0xbd, 0x29, 0x5b, 0xd9, 0x4d, 0xd9, 0x3a, 0x57, 0x37, 0x65, 0xba, 0xaf,
|
||||
0xe0, 0x1b, 0x64, 0xb7, 0xac, 0xe0, 0x98, 0xe2, 0x8e, 0xe1, 0x4e, 0x1b, 0xe5, 0xd4, 0xb5, 0xe0,
|
||||
0x5c, 0x26, 0x45, 0xdf, 0xce, 0xe9, 0x66, 0x6f, 0x16, 0xf5, 0x9d, 0xeb, 0x5e, 0xe5, 0x69, 0xbd,
|
||||
0xa4, 0x78, 0x1f, 0x90, 0x17, 0xcb, 0x78, 0xc5, 0x28, 0xf4, 0xf4, 0xad, 0x80, 0x70, 0x58, 0x49,
|
||||
0x52, 0x54, 0x86, 0x4e, 0x1a, 0x39, 0x6e, 0x89, 0xd7, 0xd7, 0xeb, 0x85, 0x25, 0xd4, 0xaf, 0x34,
|
||||
0xef, 0x03, 0xc5, 0xbb, 0x47, 0xee, 0x97, 0xf1, 0x06, 0x49, 0xf8, 0xc3, 0x87, 0xbf, 0x5e, 0xed,
|
||||
0x1a, 0xbf, 0x5d, 0xed, 0x1a, 0x7f, 0x5c, 0xed, 0x1a, 0x1f, 0xbd, 0xf2, 0xef, 0x3e, 0x24, 0xbc,
|
||||
0x80, 0x61, 0x98, 0x7f, 0xc9, 0x74, 0x6a, 0xaa, 0xd6, 0xad, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff,
|
||||
0x0b, 0x6c, 0x5f, 0x10, 0xea, 0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
|
@ -799,7 +799,7 @@ type ProjectServiceClient interface {
|
|||
// Delete deletes a project
|
||||
Delete(ctx context.Context, in *ProjectQuery, opts ...grpc.CallOption) (*EmptyResponse, error)
|
||||
// ListEvents returns a list of project events
|
||||
ListEvents(ctx context.Context, in *ProjectQuery, opts ...grpc.CallOption) (*v1.EventList, error)
|
||||
ListEvents(ctx context.Context, in *ProjectQuery, opts ...grpc.CallOption) (*structpb.Struct, error)
|
||||
// GetSchedulesState returns true if there are any active sync syncWindows
|
||||
GetSyncWindowsState(ctx context.Context, in *SyncWindowsQuery, opts ...grpc.CallOption) (*SyncWindowsResponse, error)
|
||||
// ListLinks returns all deep links for the particular project
|
||||
|
|
@ -895,8 +895,8 @@ func (c *projectServiceClient) Delete(ctx context.Context, in *ProjectQuery, opt
|
|||
return out, nil
|
||||
}
|
||||
|
||||
func (c *projectServiceClient) ListEvents(ctx context.Context, in *ProjectQuery, opts ...grpc.CallOption) (*v1.EventList, error) {
|
||||
out := new(v1.EventList)
|
||||
func (c *projectServiceClient) ListEvents(ctx context.Context, in *ProjectQuery, opts ...grpc.CallOption) (*structpb.Struct, error) {
|
||||
out := new(structpb.Struct)
|
||||
err := c.cc.Invoke(ctx, "/project.ProjectService/ListEvents", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -943,7 +943,7 @@ type ProjectServiceServer interface {
|
|||
// Delete deletes a project
|
||||
Delete(context.Context, *ProjectQuery) (*EmptyResponse, error)
|
||||
// ListEvents returns a list of project events
|
||||
ListEvents(context.Context, *ProjectQuery) (*v1.EventList, error)
|
||||
ListEvents(context.Context, *ProjectQuery) (*structpb.Struct, error)
|
||||
// GetSchedulesState returns true if there are any active sync syncWindows
|
||||
GetSyncWindowsState(context.Context, *SyncWindowsQuery) (*SyncWindowsResponse, error)
|
||||
// ListLinks returns all deep links for the particular project
|
||||
|
|
@ -981,7 +981,7 @@ func (*UnimplementedProjectServiceServer) Update(ctx context.Context, req *Proje
|
|||
func (*UnimplementedProjectServiceServer) Delete(ctx context.Context, req *ProjectQuery) (*EmptyResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
|
||||
}
|
||||
func (*UnimplementedProjectServiceServer) ListEvents(ctx context.Context, req *ProjectQuery) (*v1.EventList, error) {
|
||||
func (*UnimplementedProjectServiceServer) ListEvents(ctx context.Context, req *ProjectQuery) (*structpb.Struct, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListEvents not implemented")
|
||||
}
|
||||
func (*UnimplementedProjectServiceServer) GetSyncWindowsState(ctx context.Context, req *SyncWindowsQuery) (*SyncWindowsResponse, error) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import (
|
|||
log "github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -50,6 +51,7 @@ import (
|
|||
"github.com/argoproj/argo-cd/v3/server/broadcast"
|
||||
servercache "github.com/argoproj/argo-cd/v3/server/cache"
|
||||
"github.com/argoproj/argo-cd/v3/server/deeplinks"
|
||||
serverevents "github.com/argoproj/argo-cd/v3/server/events"
|
||||
applog "github.com/argoproj/argo-cd/v3/util/app/log"
|
||||
"github.com/argoproj/argo-cd/v3/util/argo"
|
||||
"github.com/argoproj/argo-cd/v3/util/collections"
|
||||
|
|
@ -878,7 +880,7 @@ func (s *Server) Get(ctx context.Context, q *application.ApplicationQuery) (*v1a
|
|||
}
|
||||
|
||||
// ListResourceEvents returns a list of event resources
|
||||
func (s *Server) ListResourceEvents(ctx context.Context, q *application.ApplicationResourceEventsQuery) (*corev1.EventList, error) {
|
||||
func (s *Server) ListResourceEvents(ctx context.Context, q *application.ApplicationResourceEventsQuery) (*structpb.Struct, error) {
|
||||
a, p, err := s.getApplicationEnforceRBACInformer(ctx, rbac.ActionGet, q.GetProject(), q.GetAppNamespace(), q.GetName())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -938,7 +940,7 @@ func (s *Server) ListResourceEvents(ctx context.Context, q *application.Applicat
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("error listing resource events: %w", err)
|
||||
}
|
||||
return list.DeepCopy(), nil
|
||||
return serverevents.EventListToStruct(list)
|
||||
}
|
||||
|
||||
// validateAndUpdateApp validates and updates the application. currentProject is the name of the project the app
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ option go_package = "github.com/argoproj/argo-cd/v3/pkg/apiclient/application";
|
|||
package application;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "k8s.io/api/core/v1/generated.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
|
||||
import "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1/generated.proto";
|
||||
import "github.com/argoproj/argo-cd/v3/reposerver/repository/repository.proto";
|
||||
|
|
@ -359,7 +359,7 @@ service ApplicationService {
|
|||
}
|
||||
|
||||
// ListResourceEvents returns a list of event resources
|
||||
rpc ListResourceEvents(ApplicationResourceEventsQuery) returns (k8s.io.api.core.v1.EventList) {
|
||||
rpc ListResourceEvents(ApplicationResourceEventsQuery) returns (google.protobuf.Struct) {
|
||||
option (google.api.http).get = "/api/v1/applications/{name}/events";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import (
|
|||
log "github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -47,6 +48,8 @@ import (
|
|||
"github.com/argoproj/argo-cd/v3/util/security"
|
||||
"github.com/argoproj/argo-cd/v3/util/session"
|
||||
"github.com/argoproj/argo-cd/v3/util/settings"
|
||||
|
||||
serverevents "github.com/argoproj/argo-cd/v3/server/events"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
|
|
@ -638,7 +641,7 @@ func (s *Server) getAppSetEnforceRBAC(ctx context.Context, action, namespace, na
|
|||
}
|
||||
|
||||
// ListResourceEvents returns a list of event resources for an applicationset
|
||||
func (s *Server) ListResourceEvents(ctx context.Context, q *applicationset.ApplicationSetGetQuery) (*corev1.EventList, error) {
|
||||
func (s *Server) ListResourceEvents(ctx context.Context, q *applicationset.ApplicationSetGetQuery) (*structpb.Struct, error) {
|
||||
namespace := s.appsetNamespaceOrDefault(q.AppsetNamespace)
|
||||
|
||||
appset, err := s.getAppSetEnforceRBAC(ctx, rbac.ActionGet, namespace, q.Name)
|
||||
|
|
@ -658,5 +661,5 @@ func (s *Server) ListResourceEvents(ctx context.Context, q *applicationset.Appli
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("error listing resource events: %w", err)
|
||||
}
|
||||
return list.DeepCopy(), nil
|
||||
return serverevents.EventListToStruct(list)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ option go_package = "github.com/argoproj/argo-cd/v3/pkg/apiclient/applicationset
|
|||
package applicationset;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "k8s.io/api/core/v1/generated.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1/generated.proto";
|
||||
|
||||
// ApplicationSetGetQuery is a query for applicationset resources
|
||||
|
|
@ -113,7 +113,7 @@ service ApplicationSetService {
|
|||
}
|
||||
|
||||
// ListResourceEvents returns a list of event resources
|
||||
rpc ListResourceEvents(ApplicationSetGetQuery) returns (k8s.io.api.core.v1.EventList) {
|
||||
rpc ListResourceEvents(ApplicationSetGetQuery) returns (google.protobuf.Struct) {
|
||||
option (google.api.http).get = "/api/v1/applicationsets/{name}/events";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import (
|
|||
"sort"
|
||||
"testing"
|
||||
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
cr_fake "sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
|
||||
|
|
@ -33,6 +34,18 @@ import (
|
|||
"github.com/argoproj/argo-cd/v3/util/settings"
|
||||
)
|
||||
|
||||
// getItemsFromStruct extracts the items array from a protobuf Struct representing an EventList
|
||||
func getItemsFromStruct(s *structpb.Struct) []*structpb.Value {
|
||||
if s == nil {
|
||||
return nil
|
||||
}
|
||||
items := s.Fields["items"].GetListValue()
|
||||
if items == nil {
|
||||
return nil
|
||||
}
|
||||
return items.Values
|
||||
}
|
||||
|
||||
const (
|
||||
testNamespace = "default"
|
||||
fakeRepoURL = "https://git.com/repo.git"
|
||||
|
|
@ -760,7 +773,7 @@ func TestListResourceEvents(t *testing.T) {
|
|||
res, err := appSetServer.ListResourceEvents(t.Context(), &appsetQuery)
|
||||
require.NoError(t, err)
|
||||
// No events exist in the fake client, so we expect an empty list
|
||||
assert.Empty(t, res.Items)
|
||||
assert.Empty(t, getItemsFromStruct(res))
|
||||
})
|
||||
|
||||
t.Run("ListResourceEvents in named namespace", func(t *testing.T) {
|
||||
|
|
@ -770,7 +783,7 @@ func TestListResourceEvents(t *testing.T) {
|
|||
|
||||
res, err := appSetServer.ListResourceEvents(t.Context(), &appsetQuery)
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, res.Items)
|
||||
assert.Empty(t, getItemsFromStruct(res))
|
||||
})
|
||||
|
||||
t.Run("ListResourceEvents in not allowed namespace", func(t *testing.T) {
|
||||
|
|
@ -832,11 +845,19 @@ func TestListResourceEvents(t *testing.T) {
|
|||
|
||||
res, err := appSetServer.ListResourceEvents(t.Context(), &appsetQuery)
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, res.Items)
|
||||
assert.Len(t, res.Items, 2)
|
||||
items := getItemsFromStruct(res)
|
||||
assert.NotEmpty(t, items)
|
||||
assert.Len(t, items, 2)
|
||||
|
||||
// Verify the returned events have the expected content
|
||||
eventNames := []string{res.Items[0].Name, res.Items[1].Name}
|
||||
var eventNames []string
|
||||
for _, item := range items {
|
||||
if itemStruct := item.GetStructValue(); itemStruct != nil {
|
||||
if metadata := itemStruct.Fields["metadata"].GetStructValue(); metadata != nil {
|
||||
eventNames = append(eventNames, metadata.Fields["name"].GetStringValue())
|
||||
}
|
||||
}
|
||||
}
|
||||
assert.Contains(t, eventNames, "appset1-event-1")
|
||||
assert.Contains(t, eventNames, "appset1-event-2")
|
||||
})
|
||||
|
|
|
|||
34
server/events/events.go
Normal file
34
server/events/events.go
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
package events
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"google.golang.org/protobuf/encoding/protojson"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
)
|
||||
|
||||
// EventListToStruct converts a Kubernetes EventList to a protobuf Struct.
|
||||
// This is used to return EventList data through gRPC APIs in a way that avoids
|
||||
// protobuf compatibility issues with Kubernetes types in K8s 1.35+.
|
||||
func EventListToStruct(eventList *corev1.EventList) (*structpb.Struct, error) {
|
||||
if eventList == nil {
|
||||
return structpb.NewStruct(map[string]any{
|
||||
"metadata": map[string]any{},
|
||||
"items": []any{},
|
||||
})
|
||||
}
|
||||
|
||||
jsonBytes, err := json.Marshal(eventList)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to marshal EventList to JSON: %w", err)
|
||||
}
|
||||
|
||||
result := &structpb.Struct{}
|
||||
if err := protojson.Unmarshal(jsonBytes, result); err != nil {
|
||||
return nil, fmt.Errorf("failed to unmarshal into protobuf Struct: %w", err)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
142
server/events/events_test.go
Normal file
142
server/events/events_test.go
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
package events
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
func TestEventListToStruct(t *testing.T) {
|
||||
t.Run("nil EventList returns empty struct", func(t *testing.T) {
|
||||
result, err := EventListToStruct(nil)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, result)
|
||||
|
||||
// Verify the structure has items and metadata fields
|
||||
assert.NotNil(t, result.Fields["items"])
|
||||
assert.NotNil(t, result.Fields["metadata"])
|
||||
|
||||
// Items should be an empty list
|
||||
items := result.Fields["items"].GetListValue()
|
||||
assert.NotNil(t, items)
|
||||
assert.Empty(t, items.Values)
|
||||
})
|
||||
|
||||
t.Run("empty EventList returns empty items", func(t *testing.T) {
|
||||
eventList := &corev1.EventList{
|
||||
Items: []corev1.Event{},
|
||||
}
|
||||
|
||||
result, err := EventListToStruct(eventList)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, result)
|
||||
|
||||
items := result.Fields["items"].GetListValue()
|
||||
assert.NotNil(t, items)
|
||||
assert.Empty(t, items.Values)
|
||||
})
|
||||
|
||||
t.Run("EventList with events converts correctly", func(t *testing.T) {
|
||||
eventTime := metav1.NewTime(time.Now())
|
||||
eventList := &corev1.EventList{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "EventList",
|
||||
APIVersion: "v1",
|
||||
},
|
||||
ListMeta: metav1.ListMeta{
|
||||
ResourceVersion: "12345",
|
||||
},
|
||||
Items: []corev1.Event{
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-event-1",
|
||||
Namespace: "default",
|
||||
},
|
||||
InvolvedObject: corev1.ObjectReference{
|
||||
Kind: "Pod",
|
||||
Name: "test-pod",
|
||||
Namespace: "default",
|
||||
},
|
||||
Reason: "Created",
|
||||
Message: "Pod created successfully",
|
||||
Type: corev1.EventTypeNormal,
|
||||
FirstTimestamp: eventTime,
|
||||
LastTimestamp: eventTime,
|
||||
},
|
||||
{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-event-2",
|
||||
Namespace: "default",
|
||||
},
|
||||
InvolvedObject: corev1.ObjectReference{
|
||||
Kind: "Pod",
|
||||
Name: "test-pod",
|
||||
Namespace: "default",
|
||||
},
|
||||
Reason: "Started",
|
||||
Message: "Container started",
|
||||
Type: corev1.EventTypeNormal,
|
||||
FirstTimestamp: eventTime,
|
||||
LastTimestamp: eventTime,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
result, err := EventListToStruct(eventList)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, result)
|
||||
|
||||
// Verify items
|
||||
items := result.Fields["items"].GetListValue()
|
||||
assert.NotNil(t, items)
|
||||
assert.Len(t, items.Values, 2)
|
||||
|
||||
// Verify first event
|
||||
firstEvent := items.Values[0].GetStructValue()
|
||||
assert.NotNil(t, firstEvent)
|
||||
|
||||
metadata := firstEvent.Fields["metadata"].GetStructValue()
|
||||
assert.Equal(t, "test-event-1", metadata.Fields["name"].GetStringValue())
|
||||
assert.Equal(t, "default", metadata.Fields["namespace"].GetStringValue())
|
||||
|
||||
assert.Equal(t, "Created", firstEvent.Fields["reason"].GetStringValue())
|
||||
assert.Equal(t, "Pod created successfully", firstEvent.Fields["message"].GetStringValue())
|
||||
assert.Equal(t, "Normal", firstEvent.Fields["type"].GetStringValue())
|
||||
|
||||
// Verify involvedObject
|
||||
involvedObject := firstEvent.Fields["involvedObject"].GetStructValue()
|
||||
assert.Equal(t, "Pod", involvedObject.Fields["kind"].GetStringValue())
|
||||
assert.Equal(t, "test-pod", involvedObject.Fields["name"].GetStringValue())
|
||||
})
|
||||
|
||||
t.Run("EventList metadata is preserved", func(t *testing.T) {
|
||||
eventList := &corev1.EventList{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: "EventList",
|
||||
APIVersion: "v1",
|
||||
},
|
||||
ListMeta: metav1.ListMeta{
|
||||
ResourceVersion: "67890",
|
||||
Continue: "continue-token",
|
||||
},
|
||||
Items: []corev1.Event{},
|
||||
}
|
||||
|
||||
result, err := EventListToStruct(eventList)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, result)
|
||||
|
||||
// Verify metadata
|
||||
listMetadata := result.Fields["metadata"].GetStructValue()
|
||||
assert.Equal(t, "67890", listMetadata.Fields["resourceVersion"].GetStringValue())
|
||||
assert.Equal(t, "continue-token", listMetadata.Fields["continue"].GetStringValue())
|
||||
|
||||
// Verify kind and apiVersion
|
||||
assert.Equal(t, "EventList", result.Fields["kind"].GetStringValue())
|
||||
assert.Equal(t, "v1", result.Fields["apiVersion"].GetStringValue())
|
||||
})
|
||||
}
|
||||
|
|
@ -13,6 +13,7 @@ import (
|
|||
log "github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/structpb"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
|
@ -27,6 +28,7 @@ import (
|
|||
appclientset "github.com/argoproj/argo-cd/v3/pkg/client/clientset/versioned"
|
||||
listersv1alpha1 "github.com/argoproj/argo-cd/v3/pkg/client/listers/application/v1alpha1"
|
||||
"github.com/argoproj/argo-cd/v3/server/deeplinks"
|
||||
serverevents "github.com/argoproj/argo-cd/v3/server/events"
|
||||
"github.com/argoproj/argo-cd/v3/server/rbacpolicy"
|
||||
"github.com/argoproj/argo-cd/v3/util/argo"
|
||||
"github.com/argoproj/argo-cd/v3/util/db"
|
||||
|
|
@ -491,7 +493,7 @@ func (s *Server) Delete(ctx context.Context, q *project.ProjectQuery) (*project.
|
|||
return &project.EmptyResponse{}, err
|
||||
}
|
||||
|
||||
func (s *Server) ListEvents(ctx context.Context, q *project.ProjectQuery) (*corev1.EventList, error) {
|
||||
func (s *Server) ListEvents(ctx context.Context, q *project.ProjectQuery) (*structpb.Struct, error) {
|
||||
if err := s.enf.EnforceErr(ctx.Value("claims"), rbac.ResourceProjects, rbac.ActionGet, q.Name); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -504,7 +506,11 @@ func (s *Server) ListEvents(ctx context.Context, q *project.ProjectQuery) (*core
|
|||
"involvedObject.uid": string(proj.UID),
|
||||
"involvedObject.namespace": proj.Namespace,
|
||||
}).String()
|
||||
return s.kubeclientset.CoreV1().Events(s.ns).List(ctx, metav1.ListOptions{FieldSelector: fieldSelector})
|
||||
list, err := s.kubeclientset.CoreV1().Events(s.ns).List(ctx, metav1.ListOptions{FieldSelector: fieldSelector})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return serverevents.EventListToStruct(list)
|
||||
}
|
||||
|
||||
func (s *Server) logEvent(ctx context.Context, a *v1alpha1.AppProject, reason string, action string) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ option go_package = "github.com/argoproj/argo-cd/v3/pkg/apiclient/project";
|
|||
package project;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "k8s.io/api/core/v1/generated.proto";
|
||||
import "google/protobuf/struct.proto";
|
||||
import "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1/generated.proto";
|
||||
import "github.com/argoproj/argo-cd/v3/server/application/application.proto";
|
||||
|
||||
|
|
@ -132,7 +132,7 @@ service ProjectService {
|
|||
}
|
||||
|
||||
// ListEvents returns a list of project events
|
||||
rpc ListEvents(ProjectQuery) returns (k8s.io.api.core.v1.EventList) {
|
||||
rpc ListEvents(ProjectQuery) returns (google.protobuf.Struct) {
|
||||
option (google.api.http).get = "/api/v1/projects/{name}/events";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -783,3 +783,196 @@ func newEnforcer(kubeclientset *fake.Clientset) *rbac.Enforcer {
|
|||
})
|
||||
return enforcer
|
||||
}
|
||||
|
||||
func TestListEvents(t *testing.T) {
|
||||
existingProj := &v1alpha1.AppProject{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-project",
|
||||
Namespace: testNamespace,
|
||||
UID: "test-project-uid",
|
||||
},
|
||||
Spec: v1alpha1.AppProjectSpec{
|
||||
SourceRepos: []string{"*"},
|
||||
Destinations: []v1alpha1.ApplicationDestination{{Server: "*", Namespace: "*"}},
|
||||
},
|
||||
}
|
||||
|
||||
t.Run("ListEvents returns empty list for project without events", func(t *testing.T) {
|
||||
kubeclientset := fake.NewClientset(&corev1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: testNamespace,
|
||||
Name: "argocd-cm",
|
||||
Labels: map[string]string{"app.kubernetes.io/part-of": "argocd"},
|
||||
},
|
||||
}, &corev1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "argocd-secret", Namespace: testNamespace},
|
||||
Data: map[string][]byte{"admin.password": []byte("test"), "server.secretkey": []byte("test")},
|
||||
})
|
||||
settingsMgr := settings.NewSettingsManager(t.Context(), kubeclientset, testNamespace)
|
||||
enforcer := newEnforcer(kubeclientset)
|
||||
sessionMgr := session.NewSessionManager(settingsMgr, test.NewFakeProjLister(), "", nil, session.NewUserStateStorage(nil))
|
||||
argoDB := db.NewDB(testNamespace, settingsMgr, kubeclientset)
|
||||
|
||||
projInformer := informer.NewSharedInformerFactory(apps.NewSimpleClientset(existingProj), 0).Argoproj().V1alpha1().AppProjects().Informer()
|
||||
go projInformer.Run(t.Context().Done())
|
||||
k8scache.WaitForCacheSync(t.Context().Done(), projInformer.HasSynced)
|
||||
|
||||
projectServer := NewServer(testNamespace, kubeclientset, apps.NewSimpleClientset(existingProj), enforcer, sync.NewKeyLock(), sessionMgr, nil, projInformer, settingsMgr, argoDB, testEnableEventList)
|
||||
|
||||
res, err := projectServer.ListEvents(t.Context(), &project.ProjectQuery{Name: existingProj.Name})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, res)
|
||||
|
||||
// Verify the Struct has the expected structure
|
||||
// When there are no events, items may be null or an empty list depending on K8s response
|
||||
itemsField := res.Fields["items"]
|
||||
if itemsField != nil {
|
||||
items := itemsField.GetListValue()
|
||||
if items != nil {
|
||||
assert.Empty(t, items.Values, "items should be empty when no events exist")
|
||||
}
|
||||
}
|
||||
|
||||
assert.NotNil(t, res.Fields["metadata"], "response should have metadata field")
|
||||
})
|
||||
|
||||
t.Run("ListEvents returns events for project", func(t *testing.T) {
|
||||
// Create events associated with the project
|
||||
event1 := &corev1.Event{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-event-1",
|
||||
Namespace: testNamespace,
|
||||
},
|
||||
InvolvedObject: corev1.ObjectReference{
|
||||
Name: existingProj.Name,
|
||||
Namespace: existingProj.Namespace,
|
||||
UID: existingProj.UID,
|
||||
},
|
||||
Reason: "ProjectCreated",
|
||||
Message: "Project was created",
|
||||
Type: corev1.EventTypeNormal,
|
||||
}
|
||||
event2 := &corev1.Event{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-event-2",
|
||||
Namespace: testNamespace,
|
||||
},
|
||||
InvolvedObject: corev1.ObjectReference{
|
||||
Name: existingProj.Name,
|
||||
Namespace: existingProj.Namespace,
|
||||
UID: existingProj.UID,
|
||||
},
|
||||
Reason: "ProjectUpdated",
|
||||
Message: "Project was updated",
|
||||
Type: corev1.EventTypeNormal,
|
||||
}
|
||||
|
||||
kubeclientset := fake.NewClientset(&corev1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: testNamespace,
|
||||
Name: "argocd-cm",
|
||||
Labels: map[string]string{"app.kubernetes.io/part-of": "argocd"},
|
||||
},
|
||||
}, &corev1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "argocd-secret", Namespace: testNamespace},
|
||||
Data: map[string][]byte{"admin.password": []byte("test"), "server.secretkey": []byte("test")},
|
||||
}, event1, event2)
|
||||
|
||||
settingsMgr := settings.NewSettingsManager(t.Context(), kubeclientset, testNamespace)
|
||||
enforcer := newEnforcer(kubeclientset)
|
||||
sessionMgr := session.NewSessionManager(settingsMgr, test.NewFakeProjLister(), "", nil, session.NewUserStateStorage(nil))
|
||||
argoDB := db.NewDB(testNamespace, settingsMgr, kubeclientset)
|
||||
|
||||
projInformer := informer.NewSharedInformerFactory(apps.NewSimpleClientset(existingProj), 0).Argoproj().V1alpha1().AppProjects().Informer()
|
||||
go projInformer.Run(t.Context().Done())
|
||||
k8scache.WaitForCacheSync(t.Context().Done(), projInformer.HasSynced)
|
||||
|
||||
projectServer := NewServer(testNamespace, kubeclientset, apps.NewSimpleClientset(existingProj), enforcer, sync.NewKeyLock(), sessionMgr, nil, projInformer, settingsMgr, argoDB, testEnableEventList)
|
||||
|
||||
res, err := projectServer.ListEvents(t.Context(), &project.ProjectQuery{Name: existingProj.Name})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, res)
|
||||
|
||||
// Verify the Struct has the expected structure
|
||||
items := res.Fields["items"].GetListValue()
|
||||
require.NotNil(t, items, "items should be a list")
|
||||
assert.Len(t, items.Values, 2, "should have 2 events")
|
||||
|
||||
// Verify event content is preserved in the Struct
|
||||
var eventNames []string
|
||||
for _, item := range items.Values {
|
||||
itemStruct := item.GetStructValue()
|
||||
require.NotNil(t, itemStruct, "each item should be a struct")
|
||||
|
||||
metadata := itemStruct.Fields["metadata"].GetStructValue()
|
||||
require.NotNil(t, metadata, "event should have metadata")
|
||||
eventNames = append(eventNames, metadata.Fields["name"].GetStringValue())
|
||||
|
||||
// Verify reason and message fields are present
|
||||
assert.NotEmpty(t, itemStruct.Fields["reason"].GetStringValue())
|
||||
assert.NotEmpty(t, itemStruct.Fields["message"].GetStringValue())
|
||||
}
|
||||
assert.Contains(t, eventNames, "test-event-1")
|
||||
assert.Contains(t, eventNames, "test-event-2")
|
||||
})
|
||||
|
||||
t.Run("ListEvents returns error for non-existent project", func(t *testing.T) {
|
||||
kubeclientset := fake.NewClientset(&corev1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: testNamespace,
|
||||
Name: "argocd-cm",
|
||||
Labels: map[string]string{"app.kubernetes.io/part-of": "argocd"},
|
||||
},
|
||||
}, &corev1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "argocd-secret", Namespace: testNamespace},
|
||||
Data: map[string][]byte{"admin.password": []byte("test"), "server.secretkey": []byte("test")},
|
||||
})
|
||||
settingsMgr := settings.NewSettingsManager(t.Context(), kubeclientset, testNamespace)
|
||||
enforcer := newEnforcer(kubeclientset)
|
||||
sessionMgr := session.NewSessionManager(settingsMgr, test.NewFakeProjLister(), "", nil, session.NewUserStateStorage(nil))
|
||||
argoDB := db.NewDB(testNamespace, settingsMgr, kubeclientset)
|
||||
|
||||
projInformer := informer.NewSharedInformerFactory(apps.NewSimpleClientset(existingProj), 0).Argoproj().V1alpha1().AppProjects().Informer()
|
||||
go projInformer.Run(t.Context().Done())
|
||||
k8scache.WaitForCacheSync(t.Context().Done(), projInformer.HasSynced)
|
||||
|
||||
projectServer := NewServer(testNamespace, kubeclientset, apps.NewSimpleClientset(existingProj), enforcer, sync.NewKeyLock(), sessionMgr, nil, projInformer, settingsMgr, argoDB, testEnableEventList)
|
||||
|
||||
_, err := projectServer.ListEvents(t.Context(), &project.ProjectQuery{Name: "non-existent"})
|
||||
require.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "not found")
|
||||
})
|
||||
|
||||
t.Run("ListEvents denied without permission", func(t *testing.T) {
|
||||
kubeclientset := fake.NewClientset(&corev1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: testNamespace,
|
||||
Name: "argocd-cm",
|
||||
Labels: map[string]string{"app.kubernetes.io/part-of": "argocd"},
|
||||
},
|
||||
}, &corev1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "argocd-secret", Namespace: testNamespace},
|
||||
Data: map[string][]byte{"admin.password": []byte("test"), "server.secretkey": []byte("test")},
|
||||
})
|
||||
settingsMgr := settings.NewSettingsManager(t.Context(), kubeclientset, testNamespace)
|
||||
enforcer := rbac.NewEnforcer(kubeclientset, testNamespace, common.ArgoCDRBACConfigMapName, nil)
|
||||
_ = enforcer.SetBuiltinPolicy(`p, *, *, *, *, deny`)
|
||||
enforcer.SetClaimsEnforcerFunc(nil)
|
||||
sessionMgr := session.NewSessionManager(settingsMgr, test.NewFakeProjLister(), "", nil, session.NewUserStateStorage(nil))
|
||||
argoDB := db.NewDB(testNamespace, settingsMgr, kubeclientset)
|
||||
|
||||
projInformer := informer.NewSharedInformerFactory(apps.NewSimpleClientset(existingProj), 0).Argoproj().V1alpha1().AppProjects().Informer()
|
||||
go projInformer.Run(t.Context().Done())
|
||||
k8scache.WaitForCacheSync(t.Context().Done(), projInformer.HasSynced)
|
||||
|
||||
projectServer := NewServer(testNamespace, kubeclientset, apps.NewSimpleClientset(existingProj), enforcer, sync.NewKeyLock(), sessionMgr, nil, projInformer, settingsMgr, argoDB, testEnableEventList)
|
||||
|
||||
//nolint:staticcheck
|
||||
ctx := context.WithValue(t.Context(), "claims", &jwt.MapClaims{"groups": []string{"my-group"}})
|
||||
_, err := projectServer.ListEvents(ctx, &project.ProjectQuery{Name: existingProj.Name})
|
||||
require.Error(t, err)
|
||||
statusErr, ok := status.FromError(err)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, codes.PermissionDenied, statusErr.Code())
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue