diff --git a/Dockerfile b/Dockerfile index e800a57173..a39c69de29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN apk update && apk upgrade && \ apk add ca-certificates && \ apk --no-cache add tzdata -ENV ARGO_VERSION=v3.1.1 +ENV ARGO_VERSION=v3.2.4 RUN wget -q https://github.com/argoproj/argo-workflows/releases/download/${ARGO_VERSION}/argo-linux-${ARCH}.gz RUN gunzip -f argo-linux-${ARCH}.gz diff --git a/Makefile b/Makefile index bac01a499f..4e2a31f79d 100644 --- a/Makefile +++ b/Makefile @@ -16,8 +16,8 @@ EXECUTABLES = curl docker gzip go # docker image publishing options DOCKER_PUSH?=false IMAGE_NAMESPACE?=quay.io/argoproj -VERSION?=v1.5.3-cap-CR-7899 -BASE_VERSION:=v1.5.3-cap-CR-7899 +VERSION?=v1.5.5-cap-CR-7756 +BASE_VERSION:=v1.5.5-cap-CR-7756 override LDFLAGS += \ -X ${PACKAGE}.version=${VERSION} \ diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 583619e2e8..dc8e1583a2 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Argo Events", - "version": "v1.5.3-cap-CR-7899" + "version": "v1.5.5-cap-CR-7756" }, "paths": {}, "definitions": { @@ -2336,6 +2336,10 @@ "description": "Region is AWS region", "type": "string" }, + "roleARN": { + "description": "RoleARN is the Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, "secretKey": { "description": "SecretKey refers K8s secret containing aws secret key", "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector" diff --git a/api/sensor.html b/api/sensor.html index 77457db87b..dfd53f2597 100644 --- a/api/sensor.html +++ b/api/sensor.html @@ -48,6 +48,7 @@

AWSLambdaTrigger +(Optional)

AccessKey refers K8s secret containing aws access key

@@ -61,6 +62,7 @@

AWSLambdaTrigger +(Optional)

SecretKey refers K8s secret containing aws secret key

@@ -125,6 +127,18 @@

AWSLambdaTrigger + + +roleARN
+ +string + + + +(Optional) +

RoleARN is the Amazon Resource Name (ARN) of the role to assume.

+ +

ArgoWorkflowOperation diff --git a/api/sensor.md b/api/sensor.md index 0ea65f20ab..16ce1ae8f5 100644 --- a/api/sensor.md +++ b/api/sensor.md @@ -59,6 +59,7 @@ FunctionName refers to the name of the function to invoke. Kubernetes core/v1.SecretKeySelector +(Optional)

AccessKey refers K8s secret containing aws access key

@@ -71,6 +72,7 @@ AccessKey refers K8s secret containing aws access key Kubernetes core/v1.SecretKeySelector +(Optional)

SecretKey refers K8s secret containing aws secret key

@@ -146,6 +148,17 @@ permission to invoke the function. + + +roleARN
string + + +(Optional) +

+RoleARN is the Amazon Resource Name (ARN) of the role to assume. +

+ +

diff --git a/controllers/sensor/validate.go b/controllers/sensor/validate.go index dcfd5d883d..f8f9e7e06f 100644 --- a/controllers/sensor/validate.go +++ b/controllers/sensor/validate.go @@ -271,9 +271,6 @@ func validateAWSLambdaTrigger(trigger *v1alpha1.AWSLambdaTrigger) error { if trigger.Region == "" { return errors.New("region in not specified") } - if trigger.AccessKey == nil || trigger.SecretKey == nil { - return errors.New("either accesskey or secretkey secret selector is not specified") - } if trigger.Payload == nil { return errors.New("payload parameters are not specified") } diff --git a/eventsources/common/common.go b/eventsources/common/common.go new file mode 100644 index 0000000000..d4d23327e0 --- /dev/null +++ b/eventsources/common/common.go @@ -0,0 +1,13 @@ +package common + +import "github.com/cloudevents/sdk-go/v2/event" + +type Options func(*event.Event) error + +// Option to set different ID for event +func WithID(id string) Options { + return func(e *event.Event) error { + e.SetID(id) + return nil + } +} diff --git a/eventsources/common/webhook/webhook.go b/eventsources/common/webhook/webhook.go index fa33fa23a5..25ee684a8d 100644 --- a/eventsources/common/webhook/webhook.go +++ b/eventsources/common/webhook/webhook.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" metrics "github.com/argoproj/argo-events/metrics" "github.com/argoproj/argo-events/pkg/apis/eventsource/v1alpha1" ) @@ -177,7 +178,7 @@ func activateRoute(router Router, controller *Controller) { } // manageRouteChannels consumes data from route's data channel and stops the processing when the event source is stopped/removed -func manageRouteChannels(router Router, dispatch func([]byte) error) { +func manageRouteChannels(router Router, dispatch func([]byte, ...eventsourcecommon.Options) error) { route := router.GetRoute() logger := route.Logger for { @@ -198,7 +199,7 @@ func manageRouteChannels(router Router, dispatch func([]byte) error) { } // ManagerRoute manages the lifecycle of a route -func ManageRoute(ctx context.Context, router Router, controller *Controller, dispatch func([]byte) error) error { +func ManageRoute(ctx context.Context, router Router, controller *Controller, dispatch func([]byte, ...eventsourcecommon.Options) error) error { route := router.GetRoute() logger := route.Logger diff --git a/eventsources/eventing.go b/eventsources/eventing.go index e53a64b788..fba64fadf6 100644 --- a/eventsources/eventing.go +++ b/eventsources/eventing.go @@ -20,6 +20,7 @@ import ( "github.com/argoproj/argo-events/common/logging" "github.com/argoproj/argo-events/eventbus" eventbusdriver "github.com/argoproj/argo-events/eventbus/driver" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources/amqp" "github.com/argoproj/argo-events/eventsources/sources/awssns" "github.com/argoproj/argo-events/eventsources/sources/awssqs" @@ -64,7 +65,7 @@ type EventingServer interface { GetEventSourceType() apicommon.EventSourceType // Function to start listening events. - StartListening(ctx context.Context, dispatch func([]byte) error) error + StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error } // GetEventingServers returns the mapping of event source type and list of eventing servers @@ -410,13 +411,19 @@ func (e *EventSourceAdaptor) run(ctx context.Context, servers map[apicommon.Even Jitter: &jitter, } if err = common.Connect(&backoff, func() error { - return s.StartListening(ctx, func(data []byte) error { + return s.StartListening(ctx, func(data []byte, opts ...eventsourcecommon.Options) error { event := cloudevents.NewEvent() event.SetID(fmt.Sprintf("%x", uuid.New())) event.SetType(string(s.GetEventSourceType())) event.SetSource(s.GetEventSourceName()) event.SetSubject(s.GetEventName()) event.SetTime(time.Now()) + for _, opt := range opts { + err := opt(&event) + if err != nil { + return err + } + } err := event.SetData(cloudevents.ApplicationJSON, data) if err != nil { return err diff --git a/eventsources/sources/amqp/start.go b/eventsources/sources/amqp/start.go index 639c0f2bf2..67fac11daf 100644 --- a/eventsources/sources/amqp/start.go +++ b/eventsources/sources/amqp/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -58,7 +59,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) @@ -153,7 +154,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } } -func (el *EventListener) handleOne(amqpEventSource *v1alpha1.AMQPEventSource, msg amqplib.Delivery, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) handleOne(amqpEventSource *v1alpha1.AMQPEventSource, msg amqplib.Delivery, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/awssns/start.go b/eventsources/sources/awssns/start.go index 5dcadb9aca..e54c561653 100644 --- a/eventsources/sources/awssns/start.go +++ b/eventsources/sources/awssns/start.go @@ -36,6 +36,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" commonaws "github.com/argoproj/argo-events/eventsources/common/aws" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/eventsources/sources" @@ -267,7 +268,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts an SNS event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { logger := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) diff --git a/eventsources/sources/awssqs/start.go b/eventsources/sources/awssqs/start.go index fe43577742..274888d0e0 100644 --- a/eventsources/sources/awssqs/start.go +++ b/eventsources/sources/awssqs/start.go @@ -28,6 +28,7 @@ import ( "go.uber.org/zap" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" awscommon "github.com/argoproj/argo-events/eventsources/common/aws" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" @@ -60,7 +61,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the AWS SQS event source...") @@ -122,7 +123,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } } -func (el *EventListener) processMessage(ctx context.Context, message *sqslib.Message, dispatch func([]byte) error, ack func(), log *zap.SugaredLogger) { +func (el *EventListener) processMessage(ctx context.Context, message *sqslib.Message, dispatch func([]byte, ...eventsourcecommon.Options) error, ack func(), log *zap.SugaredLogger) { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/azureeventshub/start.go b/eventsources/sources/azureeventshub/start.go index 0ff867dee9..540c572ee8 100644 --- a/eventsources/sources/azureeventshub/start.go +++ b/eventsources/sources/azureeventshub/start.go @@ -28,6 +28,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -59,7 +60,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Azure Events Hub event source...") diff --git a/eventsources/sources/bitbucketserver/start.go b/eventsources/sources/bitbucketserver/start.go index 2c657fcc87..1315daac0e 100644 --- a/eventsources/sources/bitbucketserver/start.go +++ b/eventsources/sources/bitbucketserver/start.go @@ -29,6 +29,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/eventsources/sources" "github.com/argoproj/argo-events/pkg/apis/events" @@ -157,7 +158,7 @@ func (router *Router) PostInactivate() error { } // StartListening starts an event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { defer sources.Recover(el.GetEventName()) bitbucketserverEventSource := &el.BitbucketServerEventSource diff --git a/eventsources/sources/calendar/start.go b/eventsources/sources/calendar/start.go index 60c0e099b4..4fceb8f4a7 100644 --- a/eventsources/sources/calendar/start.go +++ b/eventsources/sources/calendar/start.go @@ -31,6 +31,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/persist" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -134,7 +135,7 @@ func (el *EventListener) getExecutionTime() (time.Time, error) { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { el.log = logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) el.log.Info("started processing the calendar event source...") diff --git a/eventsources/sources/emitter/start.go b/eventsources/sources/emitter/start.go index ed7fe046fc..fb8ebe8032 100644 --- a/eventsources/sources/emitter/start.go +++ b/eventsources/sources/emitter/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -58,7 +59,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Emitter event source...") diff --git a/eventsources/sources/file/start.go b/eventsources/sources/file/start.go index b0ea5e5a23..a0d0b8350b 100644 --- a/eventsources/sources/file/start.go +++ b/eventsources/sources/file/start.go @@ -29,6 +29,7 @@ import ( "go.uber.org/zap" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/fsevent" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" @@ -60,7 +61,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) defer sources.Recover(el.GetEventName()) @@ -81,7 +82,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } // listenEvents listen to file related events. -func (el *EventListener) listenEvents(ctx context.Context, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) listenEvents(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { fileEventSource := &el.FileEventSource // create new fs watcher @@ -161,7 +162,7 @@ func (el *EventListener) listenEvents(ctx context.Context, dispatch func([]byte) } // listenEvents listen to file related events using polling. -func (el *EventListener) listenEventsPolling(ctx context.Context, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) listenEventsPolling(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { fileEventSource := &el.FileEventSource // create new fs watcher diff --git a/eventsources/sources/gcppubsub/start.go b/eventsources/sources/gcppubsub/start.go index 4f05b14351..69af5d6c5a 100644 --- a/eventsources/sources/gcppubsub/start.go +++ b/eventsources/sources/gcppubsub/start.go @@ -34,6 +34,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -65,7 +66,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening listens to GCP PubSub events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { // In order to listen events from GCP PubSub, // 1. Parse the event source that contains configuration to connect to GCP PubSub // 2. Create a new PubSub client diff --git a/eventsources/sources/generic/start.go b/eventsources/sources/generic/start.go index 24ec184e75..ea3b783260 100644 --- a/eventsources/sources/generic/start.go +++ b/eventsources/sources/generic/start.go @@ -14,6 +14,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -47,7 +48,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening listens to generic events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { logger := logging.FromContext(ctx). With(zap.String(logging.LabelEventSourceType, string(el.GetEventSourceType())), zap.String(logging.LabelEventName, el.GetEventName()), @@ -93,7 +94,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } } -func (el *EventListener) handleOne(event *Event, dispatch func([]byte) error, logger *zap.SugaredLogger) error { +func (el *EventListener) handleOne(event *Event, dispatch func([]byte, ...eventsourcecommon.Options) error, logger *zap.SugaredLogger) error { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/github/start.go b/eventsources/sources/github/start.go index 46ad9760f5..25390ec814 100644 --- a/eventsources/sources/github/start.go +++ b/eventsources/sources/github/start.go @@ -32,6 +32,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/pkg/apis/events" ) @@ -221,7 +222,7 @@ func (router *Router) PostInactivate() error { } // StartListening starts an event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { logger := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) logger.Info("started processing the Github event source...") diff --git a/eventsources/sources/gitlab/start.go b/eventsources/sources/gitlab/start.go index 491872ee11..719f5a584c 100644 --- a/eventsources/sources/gitlab/start.go +++ b/eventsources/sources/gitlab/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/eventsources/sources" "github.com/argoproj/argo-events/pkg/apis/events" @@ -143,7 +144,7 @@ func (router *Router) PostInactivate() error { } // StartListening starts an event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { logger := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) logger.Info("started processing the Gitlab event source...") diff --git a/eventsources/sources/hdfs/start.go b/eventsources/sources/hdfs/start.go index a271336026..0d0698761b 100644 --- a/eventsources/sources/hdfs/start.go +++ b/eventsources/sources/hdfs/start.go @@ -14,6 +14,7 @@ import ( "go.uber.org/zap" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/fsevent" "github.com/argoproj/argo-events/eventsources/common/naivewatcher" "github.com/argoproj/argo-events/eventsources/sources" @@ -64,7 +65,7 @@ func (w *WatchableHDFS) GetFileID(fi os.FileInfo) interface{} { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Emitter event source...") @@ -156,7 +157,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } } -func (el *EventListener) handleOne(event fsevent.Event, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) handleOne(event fsevent.Event, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/kafka/start.go b/eventsources/sources/kafka/start.go index 6d18fd44c5..bb04f946bf 100644 --- a/eventsources/sources/kafka/start.go +++ b/eventsources/sources/kafka/start.go @@ -19,6 +19,7 @@ package kafka import ( "context" "encoding/json" + "fmt" "strconv" "strings" "sync" @@ -30,6 +31,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -70,7 +72,7 @@ func verifyPartitionAvailable(part int32, partitions []int32) bool { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) defer sources.Recover(el.GetEventName()) @@ -85,7 +87,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } } -func (el *EventListener) consumerGroupConsumer(ctx context.Context, log *zap.SugaredLogger, kafkaEventSource *v1alpha1.KafkaEventSource, dispatch func([]byte) error) error { +func (el *EventListener) consumerGroupConsumer(ctx context.Context, log *zap.SugaredLogger, kafkaEventSource *v1alpha1.KafkaEventSource, dispatch func([]byte, ...eventsourcecommon.Options) error) error { config, err := getSaramaConfig(kafkaEventSource, log) if err != nil { return err @@ -155,7 +157,7 @@ func (el *EventListener) consumerGroupConsumer(ctx context.Context, log *zap.Sug return nil } -func (el *EventListener) partitionConsumer(ctx context.Context, log *zap.SugaredLogger, kafkaEventSource *v1alpha1.KafkaEventSource, dispatch func([]byte) error) error { +func (el *EventListener) partitionConsumer(ctx context.Context, log *zap.SugaredLogger, kafkaEventSource *v1alpha1.KafkaEventSource, dispatch func([]byte, ...eventsourcecommon.Options) error) error { defer sources.Recover(el.GetEventName()) log.Info("start kafka event source...") @@ -228,7 +230,10 @@ func (el *EventListener) partitionConsumer(ctx context.Context, log *zap.Sugared if err != nil { return errors.Wrap(err, "failed to marshal the event data, rejecting the event...") } - if err = dispatch(eventBody); err != nil { + + kafkaID := genUniqueID(el.GetEventSourceName(), el.GetEventName(), kafkaEventSource.URL, msg.Topic, msg.Partition, msg.Offset) + + if err = dispatch(eventBody, eventsourcecommon.WithID(kafkaID)); err != nil { return errors.Wrap(err, "failed to dispatch a Kafka event...") } return nil @@ -310,7 +315,7 @@ func getSaramaConfig(kafkaEventSource *v1alpha1.KafkaEventSource, log *zap.Sugar // Consumer represents a Sarama consumer group consumer type Consumer struct { ready chan bool - dispatch func([]byte) error + dispatch func([]byte, ...eventsourcecommon.Options) error logger *zap.SugaredLogger kafkaEventSource *v1alpha1.KafkaEventSource eventSourceName string @@ -375,9 +380,20 @@ func (consumer *Consumer) processOne(session sarama.ConsumerGroupSession, messag return errors.Wrap(err, "failed to marshal the event data, rejecting the event...") } - if err = consumer.dispatch(eventBody); err != nil { + messageID := genUniqueID(consumer.eventSourceName, consumer.eventName, consumer.kafkaEventSource.URL, message.Topic, message.Partition, message.Offset) + + if err = consumer.dispatch(eventBody, eventsourcecommon.WithID(messageID)); err != nil { return errors.Wrap(err, "failed to dispatch a kafka event...") } session.MarkMessage(message, "") return nil } + +// Function can be passed as Option to generate unique id for kafka event +// eventSourceName:eventName:kafka-url:topic:partition:offset +func genUniqueID(eventSourceName, eventName, kafkaURL, topic string, partition int32, offset int64) string { + + kafkaID := fmt.Sprintf("%s:%s:%s:%s:%d:%d", eventSourceName, eventName, strings.Split(kafkaURL, ",")[0], topic, partition, offset) + + return kafkaID +} diff --git a/eventsources/sources/minio/start.go b/eventsources/sources/minio/start.go index 4b55acfde2..b6fa65ac3d 100644 --- a/eventsources/sources/minio/start.go +++ b/eventsources/sources/minio/start.go @@ -21,12 +21,15 @@ import ( "encoding/json" "time" - "github.com/minio/minio-go" + "github.com/minio/minio-go/v7" + "github.com/minio/minio-go/v7/pkg/credentials" + "github.com/minio/minio-go/v7/pkg/notification" "github.com/pkg/errors" "go.uber.org/zap" "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -57,7 +60,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName(), zap.String("bucketName", el.MinioEventSource.Bucket.Name)) @@ -78,17 +81,16 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } log.Info("setting up a minio client...") - minioClient, err := minio.New(minioEventSource.Endpoint, accessKey, secretKey, !minioEventSource.Insecure) + minioClient, err := minio.New(minioEventSource.Endpoint, &minio.Options{ + Creds: credentials.NewStaticV4(accessKey, secretKey, ""), Secure: !minioEventSource.Insecure}) if err != nil { return errors.Wrapf(err, "failed to create a client for event source %s", el.GetEventName()) } prefix, suffix := getFilters(minioEventSource) - doneCh := make(chan struct{}) - log.Info("started listening to bucket notifications...") - for notification := range minioClient.ListenBucketNotification(minioEventSource.Bucket.Name, prefix, suffix, minioEventSource.Events, doneCh) { + for notification := range minioClient.ListenBucketNotification(ctx, minioEventSource.Bucket.Name, prefix, suffix, minioEventSource.Events) { if notification.Err != nil { log.Errorw("invalid notification", zap.Error(notification.Err)) continue @@ -101,13 +103,12 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } <-ctx.Done() - doneCh <- struct{}{} log.Info("event source is stopped") return nil } -func (el *EventListener) handleOne(notification minio.NotificationInfo, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) handleOne(notification notification.Info, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/minio/validate.go b/eventsources/sources/minio/validate.go index f3db82a906..a5c5794969 100644 --- a/eventsources/sources/minio/validate.go +++ b/eventsources/sources/minio/validate.go @@ -22,7 +22,7 @@ import ( "github.com/argoproj/argo-events/common" apicommon "github.com/argoproj/argo-events/pkg/apis/common" - "github.com/minio/minio-go" + "github.com/minio/minio-go/v7/pkg/notification" ) // ValidateEventSource validates the minio event source @@ -48,7 +48,7 @@ func validate(eventSource *apicommon.S3Artifact) error { } if eventSource.Events != nil { for _, event := range eventSource.Events { - if minio.NotificationEventType(event) == "" { + if notification.EventType(event) == "" { return fmt.Errorf("unknown event %s", event) } } diff --git a/eventsources/sources/mqtt/start.go b/eventsources/sources/mqtt/start.go index a218b4a52c..d2b3a43b7b 100644 --- a/eventsources/sources/mqtt/start.go +++ b/eventsources/sources/mqtt/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -58,7 +59,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) defer sources.Recover(el.GetEventName()) diff --git a/eventsources/sources/nats/start.go b/eventsources/sources/nats/start.go index 568d0ee174..d7677648c0 100644 --- a/eventsources/sources/nats/start.go +++ b/eventsources/sources/nats/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -58,7 +59,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) defer sources.Recover(el.GetEventName()) diff --git a/eventsources/sources/nsq/start.go b/eventsources/sources/nsq/start.go index 91c60ddfb5..63676d7bb0 100644 --- a/eventsources/sources/nsq/start.go +++ b/eventsources/sources/nsq/start.go @@ -28,6 +28,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -62,14 +63,14 @@ type messageHandler struct { eventSourceName string eventName string metrics *metrics.Metrics - dispatch func([]byte) error + dispatch func([]byte, ...eventsourcecommon.Options) error logger *zap.SugaredLogger isJSON bool metadata map[string]string } // StartListening listens NSQ events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the NSQ event source...") diff --git a/eventsources/sources/pulsar/start.go b/eventsources/sources/pulsar/start.go index 9019c58be7..e61a54845d 100644 --- a/eventsources/sources/pulsar/start.go +++ b/eventsources/sources/pulsar/start.go @@ -26,6 +26,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -57,7 +58,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening listens Pulsar events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Pulsar event source...") @@ -157,6 +158,8 @@ consumeMessages: if err := el.handleOne(msg, dispatch, log); err != nil { log.Errorw("failed to process a Pulsar event", zap.Error(err)) el.Metrics.EventProcessingFailed(el.GetEventSourceName(), el.GetEventName()) + } else { + consumer.Ack(msg.Message) } case <-ctx.Done(): consumer.Close() @@ -169,7 +172,7 @@ consumeMessages: return nil } -func (el *EventListener) handleOne(msg pulsar.Message, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) handleOne(msg pulsar.Message, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/redis/start.go b/eventsources/sources/redis/start.go index 8e9a2dcf47..51b3529dc5 100644 --- a/eventsources/sources/redis/start.go +++ b/eventsources/sources/redis/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -58,7 +59,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening listens events published by redis -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Redis event source...") @@ -125,7 +126,7 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt } } -func (el *EventListener) handleOne(message *redis.Message, dispatch func([]byte) error, log *zap.SugaredLogger) error { +func (el *EventListener) handleOne(message *redis.Message, dispatch func([]byte, ...eventsourcecommon.Options) error, log *zap.SugaredLogger) error { defer func(start time.Time) { el.Metrics.EventProcessingDuration(el.GetEventSourceName(), el.GetEventName(), float64(time.Since(start)/time.Millisecond)) }(time.Now()) diff --git a/eventsources/sources/resource/start.go b/eventsources/sources/resource/start.go index fd12f68fb0..432c3745f3 100644 --- a/eventsources/sources/resource/start.go +++ b/eventsources/sources/resource/start.go @@ -38,6 +38,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -76,7 +77,7 @@ func (el *EventListener) GetEventSourceType() apicommon.EventSourceType { } // StartListening watches resource updates and consume those events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) defer sources.Recover(el.GetEventName()) @@ -201,6 +202,12 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt handlerFuncs.UpdateFunc = func(oldObj, newObj interface{}) { log.Info("detected update event") logResourceMetadata(newObj.(*unstructured.Unstructured), log) + uNewObj := newObj.(*unstructured.Unstructured) + uOldObj := oldObj.(*unstructured.Unstructured) + if uNewObj.GetResourceVersion() == uOldObj.GetResourceVersion() { + log.Infof("rejecting update event with identical resource versions: %s", uNewObj.GetResourceVersion()) + return + } informerEventCh <- &InformerEvent{ Obj: newObj, OldObj: oldObj, diff --git a/eventsources/sources/slack/start.go b/eventsources/sources/slack/start.go index 996f81b228..75b40de13c 100644 --- a/eventsources/sources/slack/start.go +++ b/eventsources/sources/slack/start.go @@ -31,6 +31,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/eventsources/sources" metrics "github.com/argoproj/argo-events/metrics" @@ -311,7 +312,7 @@ func (rc *Router) verifyRequest(request *http.Request) error { } // StartListening starts an event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) diff --git a/eventsources/sources/storagegrid/start.go b/eventsources/sources/storagegrid/start.go index a37d774690..4a6e6ff1a9 100644 --- a/eventsources/sources/storagegrid/start.go +++ b/eventsources/sources/storagegrid/start.go @@ -35,6 +35,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/eventsources/sources" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -336,7 +337,7 @@ func (router *Router) PostInactivate() error { } // StartListening starts an event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Storage Grid event source...") diff --git a/eventsources/sources/stripe/start.go b/eventsources/sources/stripe/start.go index 1faa7de41f..1d4d0bc7f5 100644 --- a/eventsources/sources/stripe/start.go +++ b/eventsources/sources/stripe/start.go @@ -30,6 +30,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" "github.com/argoproj/argo-events/eventsources/sources" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -190,7 +191,7 @@ func filterEvent(event *stripe.Event, filters []string) bool { } // StartListening starts an event source -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the Stripe event source...") diff --git a/eventsources/sources/webhook/start.go b/eventsources/sources/webhook/start.go index 90d49b600b..e81ea57ec0 100644 --- a/eventsources/sources/webhook/start.go +++ b/eventsources/sources/webhook/start.go @@ -27,6 +27,7 @@ import ( "github.com/argoproj/argo-events/common" "github.com/argoproj/argo-events/common/logging" + eventsourcecommon "github.com/argoproj/argo-events/eventsources/common" "github.com/argoproj/argo-events/eventsources/common/webhook" metrics "github.com/argoproj/argo-events/metrics" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -143,7 +144,7 @@ func (router *Router) PostInactivate() error { } // StartListening starts listening events -func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte) error) error { +func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byte, ...eventsourcecommon.Options) error) error { log := logging.FromContext(ctx). With(logging.LabelEventSourceType, el.GetEventSourceType(), logging.LabelEventName, el.GetEventName()) log.Info("started processing the webhook event source...") diff --git a/examples/sensors/aws-lambda-trigger.yaml b/examples/sensors/aws-lambda-trigger.yaml index 03f139a09f..eafa52227f 100644 --- a/examples/sensors/aws-lambda-trigger.yaml +++ b/examples/sensors/aws-lambda-trigger.yaml @@ -12,18 +12,27 @@ spec: name: lambda-trigger awsLambda: functionName: hello - accessKey: - name: aws-secret - key: accesskey - secretKey: - name: aws-secret - key: secretkey region: us-east-1 payload: - src: dependencyName: test-dep dataKey: body.name dest: name + # Optional, possible values: RequestResponse, Event and DryRun # Defaults to RequestResponse, which means invoke the function synchronously. invocationType: Event + + # Optional, use if ServiceAccount doesn't have IAM Role assigned. + # More information on IAM roles for service accounts: + # https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html + accessKey: + name: aws-secret + key: accesskey + secretKey: + name: aws-secret + key: secretkey + + # Optional, use if your IAM user/role should assume another role to + # perform this action + roleARN: arn:aws:iam::123456789012:role/some-role diff --git a/go.mod b/go.mod index 364d77d585..ab19af4b92 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,8 @@ module github.com/argoproj/argo-events go 1.17 +retract v1.15.0 // Published accidentally. + require ( cloud.google.com/go v0.65.0 cloud.google.com/go/pubsub v1.3.1 @@ -40,7 +42,7 @@ require ( github.com/grpc-ecosystem/grpc-gateway v1.14.6 github.com/imdario/mergo v0.3.12 github.com/joncalhoun/qson v0.0.0-20200422171543-84433dcd3da0 - github.com/minio/minio-go v1.0.1-0.20190523192347-c6c2912aa552 + github.com/minio/minio-go/v7 v7.0.15 github.com/mitchellh/mapstructure v1.4.1 github.com/nats-io/go-nats v1.7.2 github.com/nats-io/graft v0.0.0-20200605173148-348798afea05 @@ -106,6 +108,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/devigned/tab v0.1.1 // indirect github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 // indirect + github.com/dustin/go-humanize v1.0.0 // indirect github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect @@ -158,8 +161,8 @@ require ( github.com/jstemmer/go-junit-report v0.9.1 // indirect github.com/jtolds/gls v4.20.0+incompatible // indirect github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 // indirect - github.com/klauspost/compress v1.13.4 // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect + github.com/klauspost/compress v1.13.5 // indirect + github.com/klauspost/cpuid v1.3.1 // indirect github.com/kr/pretty v0.2.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac // indirect @@ -168,6 +171,8 @@ require ( github.com/mattn/go-colorable v0.1.8 // indirect github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/minio/md5-simd v1.1.0 // indirect + github.com/minio/sha256-simd v0.1.1 // indirect github.com/mitchellh/copystructure v1.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/reflectwalk v1.0.1 // indirect @@ -186,11 +191,12 @@ require ( github.com/prometheus/common v0.26.0 // indirect github.com/prometheus/procfs v0.6.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect + github.com/rs/xid v1.2.1 // indirect github.com/russross/blackfriday/v2 v2.0.1 // indirect github.com/sergi/go-diff v1.1.0 // indirect github.com/shopspring/decimal v1.2.0 // indirect github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - github.com/sirupsen/logrus v1.6.0 // indirect + github.com/sirupsen/logrus v1.8.1 // indirect github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/afero v1.3.2 // indirect diff --git a/go.sum b/go.sum index 971cb2eadd..a92e6fec9c 100644 --- a/go.sum +++ b/go.sum @@ -231,6 +231,7 @@ github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QL github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= @@ -510,7 +511,6 @@ github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3i github.com/googleapis/gnostic v0.5.1 h1:A8Yhf6EtqTv9RMsU6MQTyrtV1TjWlR6xU9BsZIwuTCM= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0= github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -616,7 +616,6 @@ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -635,13 +634,15 @@ github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0 github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.8/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.13.4 h1:0zhec2I8zGnjWcKyLl6i3gPqKANCCn5e9xmviEEeX6s= github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.5 h1:9O69jUPDcsT9fEm74W92rZL9FQY7rCdaXVneq+yyzl4= +github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= +github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -693,10 +694,12 @@ github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182aff github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0= github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4= github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= -github.com/minio/minio-go v1.0.1-0.20190523192347-c6c2912aa552 h1:czBFVgFWckvUt4DmJ9Jp40KA3qAawEaC2fi7WEF84K4= -github.com/minio/minio-go v1.0.1-0.20190523192347-c6c2912aa552/go.mod h1:/haSOWG8hQNx2+JOfLJ9GKp61EAmgPwRVw/Sac0NzaM= github.com/minio/minio-go/v7 v7.0.2/go.mod h1:dJ80Mv2HeGkYLH1sqS/ksz07ON6csH3S6JUMSQ2zAns= +github.com/minio/minio-go/v7 v7.0.15 h1:r9/NhjJ+nXYrIYvbObhvc1wPj3YH1iDpJzz61uRKLyY= +github.com/minio/minio-go/v7 v7.0.15/go.mod h1:pUV0Pc+hPd1nccgmzQF/EXh48l/Z/yps6QPF1aaie4g= +github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= @@ -856,6 +859,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -874,15 +879,14 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/slack-go/slack v0.7.4 h1:Z+7CmUDV+ym4lYLA4NNLFIpr3+nDgViHrx8xsuXgrYs= github.com/slack-go/slack v0.7.4/go.mod h1:FGqNzJBmxIsZURAxh2a8D21AnOVvvXZvGligs4npPUM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 h1:hBSHahWMEgzwRyS6dRpxY0XyjZsHyQ61s084wo5PJe0= github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= @@ -1033,7 +1037,6 @@ go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190128193316-c7b33c32a30b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -1057,6 +1060,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI= @@ -1175,7 +1179,6 @@ golang.org/x/sys v0.0.0-20181019160139-8e24a49d80f8/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1200,6 +1203,7 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1234,6 +1238,7 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1422,7 +1427,6 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.41.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0 h1:9unxIsFcTt4I55uWluz+UmL95q4kdJ0buvQ1ZIqVQww= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= diff --git a/manifests/base/kustomization.yaml b/manifests/base/kustomization.yaml index 467c8b0647..412962d17a 100644 --- a/manifests/base/kustomization.yaml +++ b/manifests/base/kustomization.yaml @@ -15,7 +15,7 @@ resources: images: - name: quay.io/argoproj/argo-events newName: quay.io/codefresh/argo-events - newTag: v1.5.3-cap-CR-7899 + newTag: v1.5.5-cap-CR-7756 patchesStrategicMerge: - |- @@ -30,7 +30,7 @@ patchesStrategicMerge: - name: eventsource-controller env: - name: EVENTSOURCE_IMAGE - value: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + value: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 - |- apiVersion: apps/v1 kind: Deployment @@ -43,4 +43,4 @@ patchesStrategicMerge: - name: sensor-controller env: - name: SENSOR_IMAGE - value: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + value: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 diff --git a/manifests/extensions/validating-webhook/kustomization.yaml b/manifests/extensions/validating-webhook/kustomization.yaml index 2d4301df59..a6e69af4ed 100644 --- a/manifests/extensions/validating-webhook/kustomization.yaml +++ b/manifests/extensions/validating-webhook/kustomization.yaml @@ -12,4 +12,4 @@ namespace: argo-events images: - name: quay.io/argoproj/argo-events newName: quay.io/codefresh/argo-events - newTag: v1.5.3-cap-CR-7899 + newTag: v1.5.5-cap-CR-7756 diff --git a/manifests/install-validating-webhook.yaml b/manifests/install-validating-webhook.yaml index 8c197683b0..ff96088b10 100644 --- a/manifests/install-validating-webhook.yaml +++ b/manifests/install-validating-webhook.yaml @@ -107,7 +107,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 imagePullPolicy: Always name: webhook serviceAccountName: argo-events-webhook-sa diff --git a/manifests/install.yaml b/manifests/install.yaml index f75d1be3b8..4558ae53de 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -303,7 +303,7 @@ spec: value: nats-streaming:0.22.1 - name: NATS_METRICS_EXPORTER_IMAGE value: natsio/prometheus-nats-exporter:0.8.0 - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 imagePullPolicy: Always livenessProbe: httpGet: @@ -343,12 +343,12 @@ spec: - eventsource-controller env: - name: EVENTSOURCE_IMAGE - value: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + value: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 imagePullPolicy: Always livenessProbe: httpGet: @@ -388,12 +388,12 @@ spec: - sensor-controller env: - name: SENSOR_IMAGE - value: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + value: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 livenessProbe: httpGet: path: /healthz diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index acdb589013..1e34068454 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -224,7 +224,7 @@ spec: value: nats-streaming:0.22.1 - name: NATS_METRICS_EXPORTER_IMAGE value: natsio/prometheus-nats-exporter:0.8.0 - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 imagePullPolicy: Always livenessProbe: httpGet: @@ -265,12 +265,12 @@ spec: - --namespaced env: - name: EVENTSOURCE_IMAGE - value: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + value: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 imagePullPolicy: Always livenessProbe: httpGet: @@ -311,12 +311,12 @@ spec: - --namespaced env: - name: SENSOR_IMAGE - value: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + value: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 - name: NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - image: quay.io/codefresh/argo-events:v1.5.3-cap-CR-7899 + image: quay.io/codefresh/argo-events:v1.5.5-cap-CR-7756 livenessProbe: httpGet: path: /healthz diff --git a/pkg/apis/events/event-data.go b/pkg/apis/events/event-data.go index a3cbbb92df..ffd79e6328 100644 --- a/pkg/apis/events/event-data.go +++ b/pkg/apis/events/event-data.go @@ -20,10 +20,10 @@ import ( "net/http" "time" + "github.com/minio/minio-go/v7/pkg/notification" "github.com/stripe/stripe-go" sqslib "github.com/aws/aws-sdk-go/service/sqs" - "github.com/minio/minio-go" ) // AMQPEventData represents the event data generated by AMQP eventsource. @@ -184,7 +184,7 @@ type KafkaEventData struct { // MinioEventData represents the event data generated by the Minio eventsource. type MinioEventData struct { - Notification []minio.NotificationEvent `json:"notification"` + Notification []notification.Event `json:"notification"` // Metadata holds the user defined metadata which will passed along the event payload. Metadata map[string]string `json:"metadata,omitempty"` } diff --git a/pkg/apis/sensor/v1alpha1/generated.pb.go b/pkg/apis/sensor/v1alpha1/generated.pb.go index cc335acf19..b6effaba74 100644 --- a/pkg/apis/sensor/v1alpha1/generated.pb.go +++ b/pkg/apis/sensor/v1alpha1/generated.pb.go @@ -1249,265 +1249,266 @@ func init() { } var fileDescriptor_6c4bded897df1f16 = []byte{ - // 4121 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3b, 0x4b, 0x6c, 0x23, 0xd9, - 0x71, 0x43, 0x8a, 0x94, 0xc8, 0x12, 0x25, 0xcd, 0xbc, 0xf1, 0xd8, 0xb4, 0xbc, 0x2b, 0x0e, 0xda, - 0x88, 0x33, 0x36, 0x6c, 0x6a, 0x77, 0x36, 0x89, 0xe5, 0x09, 0x62, 0xaf, 0x44, 0x49, 0xf3, 0xe3, - 0x8c, 0xb4, 0xd5, 0xd4, 0x2c, 0xf2, 0x01, 0xd6, 0xad, 0xe6, 0x23, 0xd9, 0xab, 0x66, 0x37, 0xb7, - 0xdf, 0xa3, 0x66, 0x65, 0xc0, 0x89, 0x11, 0x23, 0x87, 0x20, 0x80, 0x93, 0x43, 0x0e, 0x39, 0xe5, - 0x73, 0xc8, 0x29, 0x39, 0x24, 0xc8, 0x31, 0xc8, 0xc5, 0xa7, 0x05, 0x72, 0xf0, 0xe6, 0x10, 0xc0, - 0x87, 0x40, 0xc8, 0xca, 0xa7, 0x1c, 0x82, 0xc4, 0xd7, 0x39, 0x05, 0xef, 0xd7, 0x3f, 0x72, 0x3c, - 0xd2, 0x70, 0xa2, 0x09, 0x90, 0x5b, 0x77, 0x55, 0xbd, 0xaa, 0xf7, 0xea, 0x55, 0xd5, 0xab, 0x7a, - 0x1f, 0xb8, 0xd7, 0xf7, 0xf8, 0x60, 0x7c, 0xd8, 0x74, 0xc3, 0xe1, 0xba, 0x13, 0xf5, 0xc3, 0x51, - 0x14, 0x7e, 0x28, 0x3f, 0xbe, 0x41, 0x8f, 0x69, 0xc0, 0xd9, 0xfa, 0xe8, 0xa8, 0xbf, 0xee, 0x8c, - 0x3c, 0xb6, 0xce, 0x68, 0xc0, 0xc2, 0x68, 0xfd, 0xf8, 0x6d, 0xc7, 0x1f, 0x0d, 0x9c, 0xb7, 0xd7, - 0xfb, 0x34, 0xa0, 0x91, 0xc3, 0x69, 0xb7, 0x39, 0x8a, 0x42, 0x1e, 0x92, 0x8d, 0x84, 0x53, 0xd3, - 0x70, 0x92, 0x1f, 0x1f, 0x28, 0x4e, 0xcd, 0xd1, 0x51, 0xbf, 0x29, 0x38, 0x35, 0x15, 0xa7, 0xa6, - 0xe1, 0xb4, 0xfa, 0x9d, 0x73, 0xf7, 0xc1, 0x0d, 0x87, 0xc3, 0x30, 0xc8, 0x8b, 0x5e, 0xfd, 0x46, - 0x8a, 0x41, 0x3f, 0xec, 0x87, 0xeb, 0x12, 0x7c, 0x38, 0xee, 0xc9, 0x3f, 0xf9, 0x23, 0xbf, 0x34, - 0xb9, 0x75, 0xb4, 0xc1, 0x9a, 0x5e, 0x28, 0x58, 0xae, 0xbb, 0x61, 0x44, 0xd7, 0x8f, 0x27, 0x46, - 0xb3, 0xfa, 0x2b, 0x09, 0xcd, 0xd0, 0x71, 0x07, 0x5e, 0x40, 0xa3, 0x93, 0xa4, 0x1f, 0x43, 0xca, - 0x9d, 0x69, 0xad, 0xd6, 0x9f, 0xd7, 0x2a, 0x1a, 0x07, 0xdc, 0x1b, 0xd2, 0x89, 0x06, 0xbf, 0xf6, - 0xa2, 0x06, 0xcc, 0x1d, 0xd0, 0xa1, 0x93, 0x6f, 0x67, 0xfd, 0xa4, 0x04, 0x57, 0x37, 0xdf, 0xb7, - 0xdb, 0xce, 0xf0, 0xb0, 0xeb, 0x74, 0x22, 0xaf, 0xdf, 0xa7, 0x11, 0xd9, 0x80, 0x5a, 0x6f, 0x1c, - 0xb8, 0xdc, 0x0b, 0x83, 0xc7, 0xce, 0x90, 0xd6, 0x0b, 0x37, 0x0b, 0xb7, 0xaa, 0x5b, 0x9f, 0xfb, - 0xe4, 0xb4, 0x71, 0xe5, 0xec, 0xb4, 0x51, 0xdb, 0x4d, 0xe1, 0x30, 0x43, 0x49, 0x10, 0xaa, 0x8e, - 0xeb, 0x52, 0xc6, 0x1e, 0xd2, 0x93, 0x7a, 0xf1, 0x66, 0xe1, 0xd6, 0xe2, 0xed, 0x5f, 0x6a, 0xaa, - 0xae, 0x89, 0x29, 0x6b, 0x0a, 0x2d, 0x35, 0x8f, 0xdf, 0x6e, 0xda, 0xd4, 0x8d, 0x28, 0x7f, 0x48, - 0x4f, 0x6c, 0xea, 0x53, 0x97, 0x87, 0xd1, 0xd6, 0xd2, 0xd9, 0x69, 0xa3, 0xba, 0x69, 0xda, 0x62, - 0xc2, 0x46, 0xf0, 0x64, 0x86, 0xbc, 0x3e, 0x77, 0x61, 0x9e, 0x31, 0x18, 0x13, 0x36, 0xe4, 0x2b, - 0x30, 0x1f, 0xd1, 0xbe, 0x17, 0x06, 0xf5, 0x92, 0x1c, 0xdb, 0xb2, 0x1e, 0xdb, 0x3c, 0x4a, 0x28, - 0x6a, 0x2c, 0x19, 0xc3, 0xc2, 0xc8, 0x39, 0xf1, 0x43, 0xa7, 0x5b, 0x2f, 0xdf, 0x9c, 0xbb, 0xb5, - 0x78, 0xfb, 0x41, 0xf3, 0x65, 0xad, 0xb3, 0xa9, 0xb5, 0xbb, 0xef, 0x44, 0xce, 0x90, 0x72, 0x1a, - 0x6d, 0xad, 0x68, 0xa1, 0x0b, 0xfb, 0x4a, 0x04, 0x1a, 0x59, 0xe4, 0x77, 0x01, 0x46, 0x86, 0x8c, - 0xd5, 0xe7, 0x5f, 0xb9, 0x64, 0xa2, 0x25, 0x43, 0x0c, 0x62, 0x98, 0x92, 0x48, 0xee, 0xc0, 0xb2, - 0x17, 0x1c, 0x87, 0xae, 0x23, 0x26, 0xb6, 0x73, 0x32, 0xa2, 0xf5, 0x05, 0xa9, 0x26, 0x72, 0x76, - 0xda, 0x58, 0xbe, 0x9f, 0xc1, 0x60, 0x8e, 0xd2, 0xfa, 0x49, 0x11, 0xae, 0x6f, 0x46, 0xfd, 0xf0, - 0xfd, 0x30, 0x3a, 0xea, 0xf9, 0xe1, 0x53, 0x63, 0x54, 0x01, 0xcc, 0xb3, 0x70, 0x1c, 0xb9, 0xca, - 0x9c, 0x66, 0x1a, 0xcf, 0x66, 0xc4, 0xbd, 0x9e, 0xe3, 0xf2, 0xb6, 0x96, 0xbb, 0x05, 0x62, 0xea, - 0x6c, 0xc9, 0x1d, 0xb5, 0x14, 0x72, 0x0f, 0xaa, 0xe1, 0x48, 0xd8, 0xba, 0x98, 0xe5, 0xa2, 0xec, - 0xfe, 0xd7, 0xf4, 0xb0, 0xab, 0x7b, 0x06, 0xf1, 0xec, 0xb4, 0x71, 0x23, 0xdd, 0xd9, 0x18, 0x81, - 0x49, 0xe3, 0xdc, 0x6c, 0xcc, 0x5d, 0xf6, 0x6c, 0x58, 0x3f, 0x17, 0x3e, 0x9a, 0x1b, 0x32, 0xb1, - 0xa1, 0xc8, 0xde, 0xd1, 0xaa, 0xfc, 0xf5, 0xf3, 0x77, 0x46, 0x05, 0xbe, 0xa6, 0xfd, 0x8e, 0x61, - 0xb8, 0x35, 0x7f, 0x76, 0xda, 0x28, 0xda, 0xef, 0x60, 0x91, 0xbd, 0x43, 0x2c, 0x98, 0xf7, 0x02, - 0xdf, 0x0b, 0xa8, 0x56, 0x98, 0xd4, 0xeb, 0x7d, 0x09, 0x41, 0x8d, 0x21, 0x5d, 0x28, 0xf5, 0x3c, - 0x9f, 0x6a, 0x4f, 0xdc, 0x7d, 0x79, 0x3d, 0xec, 0x7a, 0x3e, 0x8d, 0x7b, 0x51, 0x39, 0x3b, 0x6d, - 0x94, 0x04, 0x04, 0x25, 0x77, 0xf2, 0x5d, 0x98, 0x1b, 0x47, 0xbe, 0xf4, 0xce, 0xc5, 0xdb, 0x3b, - 0x2f, 0x2f, 0xe4, 0x00, 0xdb, 0xb1, 0x8c, 0x85, 0xb3, 0xd3, 0xc6, 0xdc, 0x01, 0xb6, 0x51, 0xb0, - 0x26, 0x07, 0x50, 0x75, 0xc3, 0xa0, 0xe7, 0xf5, 0x87, 0xce, 0xa8, 0x5e, 0x96, 0x72, 0x6e, 0x4d, - 0x0b, 0x2b, 0x2d, 0x49, 0xf4, 0xc8, 0x19, 0x4d, 0x44, 0x96, 0x96, 0x69, 0x8e, 0x09, 0x27, 0xd1, - 0xf1, 0xbe, 0xc7, 0xeb, 0xf3, 0xb3, 0x76, 0xfc, 0xae, 0xc7, 0xb3, 0x1d, 0xbf, 0xeb, 0x71, 0x14, - 0xac, 0x89, 0x0b, 0x95, 0x88, 0x6a, 0x57, 0x5a, 0x90, 0x62, 0xbe, 0x75, 0xe1, 0xf9, 0x47, 0xcd, - 0x60, 0xab, 0x76, 0x76, 0xda, 0xa8, 0x98, 0x3f, 0x8c, 0x19, 0x5b, 0xff, 0x50, 0x82, 0x1b, 0x9b, - 0xdf, 0x1b, 0x47, 0x74, 0x47, 0x30, 0xb8, 0x37, 0x3e, 0x64, 0xc6, 0x8f, 0x6f, 0x42, 0xa9, 0xf7, - 0x51, 0x37, 0xd0, 0x8b, 0x42, 0x4d, 0xdb, 0x6e, 0x69, 0xf7, 0xbd, 0xed, 0xc7, 0x28, 0x31, 0xe4, - 0xab, 0xb0, 0x30, 0x18, 0x1f, 0xca, 0x95, 0x43, 0x99, 0x51, 0x1c, 0xe8, 0xee, 0x29, 0x30, 0x1a, - 0x3c, 0x19, 0xc1, 0x75, 0x36, 0x70, 0x22, 0xda, 0x8d, 0x23, 0xbf, 0x6c, 0x76, 0xa1, 0x28, 0xff, - 0x85, 0xb3, 0xd3, 0xc6, 0x75, 0x7b, 0x92, 0x0b, 0x4e, 0x63, 0x4d, 0xba, 0xb0, 0x92, 0x03, 0x6b, - 0x23, 0x3b, 0xa7, 0xb4, 0xeb, 0x67, 0xa7, 0x8d, 0x95, 0x9c, 0x34, 0xcc, 0xb3, 0xfc, 0x7f, 0xba, - 0x6e, 0x58, 0x7d, 0xb8, 0xd1, 0x0a, 0x83, 0xae, 0x27, 0x22, 0x14, 0x43, 0xca, 0x28, 0xdf, 0x3a, - 0xe9, 0x78, 0x43, 0x2a, 0x8c, 0xc6, 0x8d, 0xc2, 0x09, 0xa3, 0x69, 0x45, 0x61, 0x80, 0x12, 0x43, - 0xbe, 0x0e, 0x15, 0x91, 0xa7, 0x7c, 0x2f, 0x8c, 0x83, 0xcf, 0x55, 0x4d, 0x55, 0xe9, 0x68, 0x38, - 0xc6, 0x14, 0xd6, 0x8f, 0x0a, 0xf0, 0x85, 0x9c, 0xa4, 0x56, 0xe4, 0x71, 0x1a, 0x79, 0x0e, 0x61, - 0x30, 0x7f, 0x28, 0xa5, 0xea, 0xe8, 0xb8, 0xf7, 0xf2, 0x0a, 0x98, 0x3a, 0x18, 0x15, 0x15, 0xd5, - 0x37, 0x6a, 0x51, 0xd6, 0xdf, 0x95, 0x61, 0xa9, 0x35, 0x66, 0x3c, 0x1c, 0x1a, 0x3f, 0x59, 0x17, - 0x69, 0x4b, 0x74, 0x4c, 0xa3, 0x03, 0x6c, 0xeb, 0x71, 0x5f, 0x33, 0xeb, 0x8f, 0x6d, 0x10, 0x98, - 0xd0, 0x88, 0x9c, 0x84, 0x51, 0x77, 0x1c, 0xa9, 0xf1, 0x57, 0x92, 0x9c, 0xc4, 0x96, 0x50, 0xd4, - 0x58, 0x72, 0x00, 0xe0, 0xd2, 0x88, 0x2b, 0xd3, 0xbc, 0x98, 0xab, 0x2c, 0x8b, 0xb9, 0x6b, 0xc5, - 0x8d, 0x31, 0xc5, 0x88, 0x3c, 0x00, 0xa2, 0xfa, 0x22, 0xdc, 0x64, 0xef, 0x98, 0x46, 0x91, 0xd7, - 0xa5, 0x3a, 0x3d, 0x5a, 0xd5, 0x5d, 0x21, 0xf6, 0x04, 0x05, 0x4e, 0x69, 0x45, 0x18, 0x94, 0xd8, - 0x88, 0xba, 0xda, 0xf6, 0xdf, 0x9b, 0x61, 0x02, 0xd2, 0x2a, 0x6d, 0xda, 0x23, 0xea, 0xee, 0x04, - 0x3c, 0x3a, 0x49, 0x2c, 0x48, 0x80, 0x50, 0x0a, 0x7b, 0xed, 0x49, 0x53, 0xca, 0xe7, 0x17, 0x2e, - 0xcf, 0xe7, 0x57, 0xbf, 0x09, 0xd5, 0x58, 0x2f, 0xe4, 0x2a, 0xcc, 0x1d, 0xd1, 0x13, 0x65, 0x6e, - 0x28, 0x3e, 0xc9, 0xe7, 0xa0, 0x7c, 0xec, 0xf8, 0x63, 0xed, 0x54, 0xa8, 0x7e, 0xee, 0x14, 0x37, - 0x0a, 0xd6, 0x7f, 0x16, 0x00, 0xb6, 0x1d, 0xee, 0xec, 0x7a, 0x3e, 0x57, 0x71, 0x7d, 0xe4, 0xf0, - 0x41, 0xde, 0x45, 0xf7, 0x1d, 0x3e, 0x40, 0x89, 0x21, 0x5f, 0x87, 0x12, 0x17, 0xb9, 0xa0, 0x72, - 0xcf, 0xba, 0xa1, 0x10, 0x59, 0xdf, 0xb3, 0xd3, 0x46, 0xe5, 0x81, 0xbd, 0xf7, 0x58, 0x66, 0x84, - 0x92, 0x8a, 0x34, 0x8c, 0x60, 0x91, 0x30, 0x55, 0xb7, 0xaa, 0x67, 0xa7, 0x8d, 0xf2, 0x13, 0x01, - 0xd0, 0x7d, 0x20, 0xef, 0x02, 0xb8, 0xe1, 0x50, 0x28, 0x90, 0x87, 0x91, 0x36, 0xb4, 0x9b, 0x46, - 0xc7, 0xad, 0x18, 0xf3, 0x2c, 0xf3, 0x87, 0xa9, 0x36, 0x32, 0x66, 0xd0, 0xe1, 0xc8, 0x77, 0x38, - 0x95, 0x2b, 0x78, 0x3a, 0x66, 0x68, 0x38, 0xc6, 0x14, 0xd6, 0x9f, 0x17, 0xa0, 0x2c, 0x57, 0x33, - 0x32, 0x84, 0x05, 0x37, 0x0c, 0x38, 0xfd, 0x98, 0xeb, 0x10, 0x31, 0x43, 0x16, 0x23, 0x39, 0xb6, - 0x14, 0xb7, 0xad, 0x45, 0x31, 0x43, 0xfa, 0x07, 0x8d, 0x0c, 0xf2, 0x06, 0x94, 0xba, 0x0e, 0x77, - 0xa4, 0xde, 0x6a, 0x2a, 0xd3, 0x11, 0x7a, 0x47, 0x09, 0xbd, 0x53, 0xf9, 0xb3, 0xbf, 0x6c, 0x5c, - 0xf9, 0xc1, 0xbf, 0xdd, 0xbc, 0x62, 0xfd, 0xbc, 0x08, 0xb5, 0x34, 0x3b, 0xb2, 0x0a, 0x45, 0xaf, - 0xab, 0x27, 0x04, 0xf4, 0xc8, 0x8a, 0xf7, 0xb7, 0xb1, 0xe8, 0x75, 0x65, 0xb4, 0x50, 0x39, 0x40, - 0x31, 0x5b, 0xc1, 0xe4, 0xd2, 0xe0, 0x5f, 0x85, 0x45, 0xe1, 0x1d, 0xc7, 0x34, 0x62, 0x22, 0x11, - 0x9e, 0x93, 0xc4, 0xd7, 0x35, 0xf1, 0xa2, 0xb0, 0x9c, 0x27, 0x0a, 0x85, 0x69, 0x3a, 0x61, 0x0d, - 0x72, 0xae, 0x4b, 0x59, 0x6b, 0x48, 0xcd, 0xef, 0x26, 0xac, 0x88, 0xfe, 0xcb, 0x41, 0x06, 0x5c, - 0x12, 0xab, 0x39, 0xf8, 0x82, 0x26, 0x5e, 0x11, 0x83, 0x6c, 0x29, 0xb4, 0x6c, 0x97, 0xa7, 0x17, - 0x89, 0x02, 0x1b, 0x1f, 0x7e, 0x48, 0x5d, 0x95, 0x2f, 0xa5, 0x12, 0x05, 0x5b, 0x81, 0xd1, 0xe0, - 0x49, 0x1b, 0x4a, 0x22, 0xf8, 0xeb, 0x84, 0xe7, 0x6b, 0xa9, 0x70, 0x17, 0x97, 0xbb, 0xc9, 0x1c, - 0x89, 0xaa, 0x5a, 0x04, 0x40, 0x19, 0xad, 0x93, 0xbe, 0x8b, 0x78, 0x2d, 0xb9, 0xa4, 0x74, 0xfe, - 0x17, 0x45, 0x58, 0x91, 0x3a, 0xdf, 0xa6, 0x23, 0x1a, 0x74, 0x69, 0xe0, 0x9e, 0x88, 0xb1, 0x07, - 0x49, 0xd9, 0x1b, 0xb7, 0x97, 0x39, 0x85, 0xc4, 0x88, 0xb1, 0x4b, 0xbb, 0x50, 0xba, 0x4e, 0x65, - 0x3a, 0xf1, 0xd8, 0x77, 0xb2, 0x68, 0xcc, 0xd3, 0x8b, 0xe5, 0x41, 0x82, 0xe2, 0x7c, 0x27, 0xb5, - 0x3c, 0xec, 0x18, 0x04, 0x26, 0x34, 0xe4, 0x18, 0x16, 0x7a, 0xd2, 0x53, 0x99, 0x4e, 0x58, 0xf6, - 0x66, 0x34, 0xda, 0x64, 0xc4, 0x2a, 0x02, 0x28, 0xeb, 0x55, 0xdf, 0x0c, 0x8d, 0x30, 0xeb, 0x9f, - 0xe6, 0xe0, 0xc6, 0x54, 0x7a, 0x72, 0xa8, 0xe7, 0x44, 0xf9, 0xd0, 0xf6, 0x0c, 0xd1, 0xce, 0x1b, - 0x52, 0xdd, 0x87, 0x4a, 0x76, 0xa6, 0xd2, 0xae, 0x5a, 0xbc, 0x04, 0x57, 0xed, 0x69, 0x57, 0x55, - 0x45, 0xde, 0x0c, 0x43, 0x4a, 0x02, 0x6b, 0x62, 0x40, 0x89, 0xd3, 0x13, 0x0f, 0xca, 0xf4, 0xe3, - 0x91, 0x9c, 0xca, 0x19, 0x05, 0xed, 0x7c, 0x3c, 0x8a, 0xb4, 0xa0, 0x25, 0x2d, 0xa8, 0x2c, 0x60, - 0x0c, 0x95, 0x04, 0x11, 0xf6, 0x20, 0x21, 0x12, 0xc6, 0x2d, 0xe0, 0x79, 0xe3, 0x16, 0x14, 0x28, - 0x31, 0xa2, 0x50, 0xef, 0x79, 0xd4, 0xef, 0xb2, 0x7a, 0x51, 0x76, 0x6e, 0x06, 0x8d, 0xeb, 0xc5, - 0x6a, 0x57, 0xb0, 0x4b, 0x22, 0x94, 0xfc, 0x65, 0xa8, 0xa5, 0x58, 0x6f, 0x41, 0x2d, 0x5d, 0x0a, - 0xbe, 0x78, 0x21, 0xb2, 0xfe, 0xbe, 0x04, 0x8b, 0xa9, 0xfa, 0x88, 0xbc, 0xa9, 0x8a, 0x45, 0xd5, - 0x60, 0x51, 0x37, 0x48, 0x2a, 0xbd, 0x6f, 0xc3, 0xb2, 0xeb, 0x87, 0x01, 0xdd, 0xf6, 0x22, 0x99, - 0x06, 0x9d, 0x68, 0x67, 0xfd, 0xbc, 0xa6, 0x5c, 0x6e, 0x65, 0xb0, 0x98, 0xa3, 0x26, 0x2e, 0x94, - 0xdd, 0x88, 0x76, 0x99, 0xce, 0xb5, 0xb6, 0x66, 0x2a, 0xea, 0x5a, 0x82, 0x93, 0x5a, 0x0d, 0xe5, - 0x27, 0x2a, 0xde, 0xe4, 0xb7, 0xa1, 0xc6, 0xd8, 0x40, 0x26, 0x6b, 0x32, 0xaf, 0xbb, 0x50, 0x51, - 0x72, 0xf5, 0xec, 0xb4, 0x51, 0xb3, 0xed, 0x7b, 0x71, 0x73, 0xcc, 0x30, 0x13, 0x0b, 0xa5, 0xa8, - 0xaa, 0x85, 0x0a, 0xf3, 0x0b, 0xe5, 0xae, 0x86, 0x63, 0x4c, 0x21, 0x96, 0x96, 0xc3, 0xc8, 0x09, - 0xdc, 0x81, 0x8e, 0xca, 0xf1, 0xc4, 0x6d, 0x49, 0x28, 0x6a, 0xac, 0x50, 0x3b, 0x77, 0xfa, 0x7a, - 0x6b, 0x28, 0x56, 0x7b, 0xc7, 0xe9, 0xa3, 0x80, 0x0b, 0x74, 0x44, 0x7b, 0xf5, 0x4a, 0x16, 0x8d, - 0xb4, 0x87, 0x02, 0x4e, 0x86, 0x30, 0x1f, 0xd1, 0x61, 0xc8, 0x69, 0xbd, 0x2a, 0x87, 0x7a, 0x7f, - 0x26, 0xb5, 0xa2, 0x64, 0xa5, 0x2a, 0x72, 0x95, 0xa0, 0x2b, 0x08, 0x6a, 0x21, 0xd6, 0xdf, 0x16, - 0xa0, 0x62, 0xd4, 0x4f, 0xf6, 0xa0, 0x32, 0x66, 0x34, 0x8a, 0xa3, 0xfc, 0xb9, 0x15, 0x2d, 0xcb, - 0xe5, 0x03, 0xdd, 0x14, 0x63, 0x26, 0x82, 0xe1, 0xc8, 0x61, 0xec, 0x69, 0x18, 0x75, 0x2f, 0xb6, - 0xed, 0x29, 0x19, 0xee, 0xeb, 0xa6, 0x18, 0x33, 0xb1, 0xde, 0x83, 0x95, 0xdc, 0xa8, 0xce, 0xb1, - 0x2c, 0xbd, 0x01, 0xa5, 0x71, 0xe4, 0x2b, 0xbf, 0xad, 0xaa, 0x50, 0x7a, 0x80, 0x6d, 0x1b, 0x25, - 0xd4, 0xfa, 0x8f, 0x79, 0x58, 0xbc, 0xd7, 0xe9, 0xec, 0x9b, 0x02, 0xe5, 0x05, 0x5e, 0x93, 0x4a, - 0x67, 0x8b, 0x97, 0x58, 0xc2, 0x1e, 0xc0, 0x1c, 0xf7, 0x8d, 0xab, 0xdd, 0xb9, 0xf0, 0xc6, 0x46, - 0xa7, 0x6d, 0x6b, 0x23, 0x90, 0x9b, 0x26, 0x9d, 0xb6, 0x8d, 0x82, 0x9f, 0xb0, 0xe9, 0x21, 0xe5, - 0x83, 0xb0, 0x9b, 0xdf, 0xf0, 0x7d, 0x24, 0xa1, 0xa8, 0xb1, 0xb9, 0x22, 0xa2, 0x7c, 0xe9, 0x45, - 0xc4, 0x57, 0x61, 0x41, 0xac, 0x7b, 0xe1, 0x58, 0xa5, 0x44, 0x73, 0x89, 0xa6, 0x3a, 0x0a, 0x8c, - 0x06, 0x4f, 0xfa, 0x50, 0x3d, 0x74, 0x98, 0xe7, 0x6e, 0x8e, 0xf9, 0x40, 0xe7, 0x45, 0x17, 0xd7, - 0xd7, 0x96, 0xe1, 0xa0, 0xb6, 0xb4, 0xe2, 0x5f, 0x4c, 0x78, 0x93, 0xef, 0xc3, 0xc2, 0x80, 0x3a, - 0x5d, 0xa1, 0x90, 0x8a, 0x54, 0x08, 0xbe, 0xbc, 0x42, 0x52, 0x06, 0xd8, 0xbc, 0xa7, 0x98, 0xaa, - 0x8a, 0x2e, 0xd9, 0x23, 0x52, 0x50, 0x34, 0x32, 0xc9, 0x31, 0x2c, 0xa9, 0xca, 0x57, 0x63, 0xea, - 0x55, 0xd9, 0x89, 0xdf, 0xb8, 0xf8, 0xa6, 0x67, 0x8a, 0xcb, 0xd6, 0xb5, 0xb3, 0xd3, 0xc6, 0x52, - 0x1a, 0xc2, 0x30, 0x2b, 0x66, 0xf5, 0x0e, 0xd4, 0xd2, 0x3d, 0xbc, 0x50, 0x6d, 0xf5, 0x07, 0x73, - 0x70, 0xed, 0xe1, 0x86, 0x6d, 0x36, 0xd6, 0xf6, 0x43, 0xdf, 0x73, 0x4f, 0xc8, 0xef, 0xc1, 0xbc, - 0xef, 0x1c, 0x52, 0x9f, 0xd5, 0x0b, 0x72, 0x08, 0xef, 0xbf, 0xbc, 0x1e, 0x27, 0x98, 0x37, 0xdb, - 0x92, 0xb3, 0x52, 0x66, 0x6c, 0xdd, 0x0a, 0x88, 0x5a, 0x2c, 0xf9, 0x00, 0x16, 0x0e, 0x1d, 0xf7, - 0x28, 0xec, 0xf5, 0x74, 0x94, 0xda, 0x78, 0x09, 0x83, 0x91, 0xed, 0x55, 0xfe, 0xa4, 0x7f, 0xd0, - 0x70, 0x25, 0x36, 0xdc, 0xa0, 0x51, 0x14, 0x46, 0x7b, 0x81, 0x46, 0x69, 0xab, 0x95, 0xfe, 0x5c, - 0xd9, 0x7a, 0x53, 0xf7, 0xeb, 0xc6, 0xce, 0x34, 0x22, 0x9c, 0xde, 0x76, 0xf5, 0x5b, 0xb0, 0x98, - 0x1a, 0xdc, 0x85, 0xe6, 0xe1, 0xc7, 0xf3, 0x50, 0x7b, 0xe8, 0xf4, 0x8e, 0x9c, 0x73, 0x06, 0xbd, - 0x2f, 0x43, 0x99, 0x87, 0x23, 0xcf, 0xd5, 0x19, 0x42, 0x9c, 0x51, 0x75, 0x04, 0x10, 0x15, 0x4e, - 0xa4, 0xee, 0x23, 0x27, 0xe2, 0x72, 0x63, 0x48, 0x0e, 0xac, 0x9c, 0xa4, 0xee, 0xfb, 0x06, 0x81, - 0x09, 0x4d, 0x2e, 0xa8, 0x94, 0x2e, 0x3d, 0xa8, 0x6c, 0x40, 0x2d, 0xa2, 0x1f, 0x8d, 0x3d, 0xb9, - 0x45, 0x79, 0xc4, 0x64, 0x0a, 0x50, 0x4e, 0xce, 0xf3, 0x30, 0x85, 0xc3, 0x0c, 0xa5, 0x48, 0x1c, - 0x44, 0xbd, 0x1d, 0x51, 0xc6, 0x64, 0x3c, 0xaa, 0x24, 0x89, 0x43, 0x4b, 0xc3, 0x31, 0xa6, 0x10, - 0x89, 0x56, 0xcf, 0x1f, 0xb3, 0xc1, 0xae, 0xe0, 0x21, 0x0a, 0x05, 0x19, 0x96, 0xca, 0x49, 0xa2, - 0xb5, 0x9b, 0xc1, 0x62, 0x8e, 0xda, 0xc4, 0xfe, 0xca, 0x2b, 0x8e, 0xfd, 0xa9, 0x95, 0xac, 0x7a, - 0x89, 0x2b, 0xd9, 0x26, 0xac, 0xc4, 0x26, 0xe0, 0x05, 0xfd, 0x87, 0xf4, 0xa4, 0x0e, 0xd9, 0x22, - 0x71, 0x3f, 0x8b, 0xc6, 0x3c, 0xbd, 0x58, 0x0d, 0x4c, 0xe1, 0xbe, 0x98, 0x2d, 0x90, 0x4d, 0xd1, - 0x6e, 0xf0, 0xe4, 0x37, 0xa1, 0xc4, 0x1c, 0xe6, 0xd7, 0x6b, 0x2f, 0x7b, 0x22, 0xb4, 0x69, 0xb7, - 0xb5, 0xf6, 0x64, 0xe2, 0x20, 0xfe, 0x51, 0xb2, 0xb4, 0xf6, 0x00, 0xda, 0x61, 0xdf, 0x78, 0xd0, - 0x26, 0xac, 0x78, 0x01, 0xa7, 0xd1, 0xb1, 0xe3, 0xdb, 0xd4, 0x0d, 0x83, 0x2e, 0x93, 0xde, 0x54, - 0x4a, 0x86, 0x75, 0x3f, 0x8b, 0xc6, 0x3c, 0xbd, 0xf5, 0xd7, 0x73, 0xb0, 0xf8, 0x78, 0xb3, 0x63, - 0x9f, 0xd3, 0x29, 0x53, 0xdb, 0x04, 0xc5, 0x17, 0x6c, 0x13, 0xa4, 0xa6, 0x7a, 0xee, 0xb5, 0xed, - 0xbb, 0x5f, 0xbe, 0x83, 0x6b, 0xc7, 0x29, 0xbf, 0x5a, 0xc7, 0xb1, 0xfe, 0xb8, 0x04, 0x57, 0xf7, - 0x46, 0x34, 0x78, 0x7f, 0xe0, 0xb1, 0xa3, 0xd4, 0xf9, 0xcf, 0x20, 0x64, 0x3c, 0x9f, 0x86, 0xde, - 0x0b, 0x19, 0x47, 0x89, 0x49, 0x5b, 0x6d, 0xf1, 0x05, 0x56, 0xbb, 0x0e, 0x55, 0x91, 0xb9, 0xb2, - 0x91, 0xe3, 0x4e, 0xec, 0x82, 0x3c, 0x36, 0x08, 0x4c, 0x68, 0xe4, 0x05, 0x83, 0x31, 0x1f, 0x74, - 0xc2, 0x23, 0x1a, 0x5c, 0xac, 0x46, 0x52, 0x17, 0x0c, 0x4c, 0x5b, 0x4c, 0xd8, 0x90, 0xdb, 0x00, - 0x4e, 0x72, 0xd9, 0x41, 0xd5, 0x47, 0xb1, 0xc6, 0x37, 0x93, 0xab, 0x0e, 0x29, 0xaa, 0xb4, 0xa1, - 0xcd, 0xbf, 0x36, 0x43, 0x5b, 0xb8, 0xf4, 0x03, 0x1e, 0x84, 0x5a, 0xba, 0xa6, 0x3f, 0xc7, 0xa6, - 0xb1, 0xa9, 0x5a, 0x8a, 0xcf, 0xab, 0x5a, 0xac, 0xbf, 0x59, 0x80, 0xa5, 0xfd, 0xb1, 0xcf, 0x9c, - 0xe8, 0x55, 0x2e, 0xd2, 0xaf, 0xf9, 0xd0, 0x3e, 0x6d, 0x20, 0xa5, 0x4b, 0x34, 0x90, 0x11, 0x5c, - 0xe7, 0x3e, 0xeb, 0x44, 0x63, 0xc6, 0x5b, 0x34, 0xe2, 0x4c, 0xef, 0x26, 0x94, 0x2f, 0x7c, 0xa0, - 0xda, 0x69, 0xdb, 0x79, 0x2e, 0x38, 0x8d, 0x35, 0x39, 0x84, 0x55, 0xee, 0xb3, 0x4d, 0xdf, 0x0f, - 0x9f, 0xde, 0x0f, 0x54, 0x06, 0xdd, 0x0a, 0x83, 0x80, 0x4a, 0x5f, 0xd1, 0x49, 0x83, 0xa5, 0xfb, - 0xbb, 0xda, 0x69, 0xdb, 0xcf, 0xa1, 0xc4, 0x5f, 0xc0, 0x85, 0x3c, 0x92, 0xa3, 0x7a, 0xe2, 0xf8, - 0x5e, 0xd7, 0xe1, 0x54, 0x84, 0x1a, 0x69, 0x53, 0x0b, 0x92, 0xf9, 0x97, 0x34, 0x73, 0xd1, 0xe5, - 0x3c, 0x09, 0x4e, 0x6b, 0xf7, 0xbf, 0x95, 0x67, 0x74, 0x61, 0x25, 0x0e, 0x2a, 0x5a, 0xef, 0xd5, - 0x0b, 0x1f, 0x2d, 0x6f, 0x66, 0x39, 0x60, 0x9e, 0x25, 0xf9, 0x3e, 0x5c, 0x73, 0x63, 0xcd, 0xe8, - 0x4c, 0x59, 0x26, 0x16, 0xb3, 0x64, 0xf3, 0x37, 0xce, 0x4e, 0x1b, 0xd7, 0x5a, 0x79, 0xb6, 0x38, - 0x29, 0xc9, 0xfa, 0xfd, 0x02, 0x54, 0xd1, 0xe1, 0xb4, 0xed, 0x0d, 0x3d, 0x4e, 0x6e, 0x43, 0x69, - 0x1c, 0x78, 0x66, 0x31, 0x58, 0x33, 0xde, 0x7d, 0x10, 0x78, 0xfc, 0xd9, 0x69, 0x63, 0x39, 0x26, - 0xa4, 0x02, 0x82, 0x92, 0x56, 0x24, 0x10, 0x32, 0xe3, 0x63, 0x9c, 0xed, 0xd3, 0x48, 0x20, 0xa4, - 0x23, 0x97, 0x93, 0x04, 0x02, 0xb3, 0x68, 0xcc, 0xd3, 0x5b, 0x3f, 0x2e, 0xc2, 0xbc, 0x2d, 0x9d, - 0x84, 0x7c, 0x17, 0x2a, 0x43, 0xca, 0x1d, 0xb9, 0x6b, 0xab, 0xb6, 0x72, 0xde, 0x3a, 0xdf, 0xe1, - 0xc0, 0x9e, 0xcc, 0x18, 0x1e, 0x51, 0xee, 0x24, 0xbe, 0x9c, 0xc0, 0x30, 0xe6, 0x4a, 0x7a, 0xfa, - 0x30, 0xb3, 0x38, 0xeb, 0x36, 0xb7, 0xea, 0xb1, 0x3d, 0xa2, 0xee, 0xd4, 0xf3, 0xcb, 0x00, 0xe6, - 0x19, 0x77, 0xf8, 0x98, 0xcd, 0x7e, 0xb5, 0x46, 0x4b, 0x92, 0xdc, 0x52, 0x27, 0x43, 0xf2, 0x1f, - 0xb5, 0x14, 0xeb, 0x5f, 0x0a, 0x00, 0x8a, 0xb0, 0xed, 0x31, 0x4e, 0x7e, 0x67, 0x42, 0x91, 0xcd, - 0xf3, 0x29, 0x52, 0xb4, 0x96, 0x6a, 0x8c, 0x4b, 0x03, 0x03, 0x49, 0x29, 0x91, 0x42, 0xd9, 0xe3, - 0x74, 0x68, 0xf6, 0x94, 0xdf, 0x9d, 0x75, 0x6c, 0x49, 0xd4, 0xbf, 0x2f, 0xd8, 0xa2, 0xe2, 0x6e, - 0xfd, 0x55, 0xc9, 0x8c, 0x49, 0x28, 0x96, 0xfc, 0xb0, 0x00, 0xb5, 0xae, 0x39, 0xb6, 0xf0, 0xa8, - 0xa9, 0xbb, 0xef, 0xbf, 0xb2, 0x93, 0x93, 0xa4, 0x88, 0xda, 0x4e, 0x89, 0xc1, 0x8c, 0x50, 0x12, - 0x42, 0x85, 0xab, 0x08, 0x6e, 0x86, 0xbf, 0x39, 0xf3, 0x5a, 0x90, 0x3a, 0xe9, 0xd4, 0xac, 0x31, - 0x16, 0x42, 0xfc, 0xd4, 0xb9, 0xe8, 0xcc, 0x7b, 0xd6, 0xe6, 0x24, 0x55, 0x6d, 0x55, 0x4e, 0x9e, - 0xab, 0x92, 0x07, 0x40, 0x74, 0xdd, 0xbe, 0xeb, 0x78, 0x3e, 0xed, 0x62, 0x38, 0x0e, 0xd4, 0x36, - 0x5b, 0x25, 0xb9, 0x38, 0xb0, 0x33, 0x41, 0x81, 0x53, 0x5a, 0x89, 0x4a, 0x55, 0xf6, 0x67, 0x6b, - 0xcc, 0x52, 0xc9, 0x58, 0xac, 0xe4, 0x9d, 0x14, 0x0e, 0x33, 0x94, 0xe4, 0x16, 0x54, 0x22, 0x3a, - 0xf2, 0x3d, 0xd7, 0x51, 0x95, 0x6a, 0xd9, 0x5c, 0x6d, 0x52, 0x30, 0x8c, 0xb1, 0x56, 0x08, 0xb5, - 0xb4, 0x7f, 0x90, 0x0f, 0x62, 0xbf, 0x53, 0x66, 0xff, 0xcd, 0x8b, 0xd7, 0x4e, 0xbf, 0xd8, 0xd1, - 0xfe, 0xb1, 0x08, 0x35, 0xdb, 0x77, 0xdc, 0x38, 0x85, 0xce, 0xe6, 0x26, 0x85, 0xd7, 0x50, 0x2e, - 0x00, 0x93, 0xfd, 0x91, 0x59, 0x74, 0xf1, 0xc2, 0x37, 0x48, 0xec, 0xb8, 0x31, 0xa6, 0x18, 0x89, - 0xbc, 0xdf, 0x1d, 0x38, 0x41, 0x40, 0x7d, 0x9d, 0xca, 0xc7, 0x69, 0x4a, 0x4b, 0x81, 0xd1, 0xe0, - 0x05, 0xe9, 0x90, 0x32, 0xe6, 0xf4, 0xcd, 0x09, 0x73, 0x4c, 0xfa, 0x48, 0x81, 0xd1, 0xe0, 0xad, - 0xff, 0x9e, 0x03, 0x62, 0x73, 0x27, 0xe8, 0x3a, 0x51, 0xf7, 0xe1, 0x86, 0xfd, 0xba, 0xae, 0x93, - 0x3e, 0x9e, 0xbc, 0x4e, 0xfa, 0xd6, 0xb4, 0xeb, 0xa4, 0x5f, 0x7a, 0x38, 0x3e, 0xa4, 0x51, 0x40, - 0x39, 0x65, 0x66, 0x83, 0xee, 0xff, 0xe2, 0xa5, 0x52, 0xd2, 0x83, 0xa5, 0x91, 0xc3, 0xdd, 0x81, - 0xcd, 0x23, 0x87, 0xd3, 0xfe, 0x89, 0x9e, 0x87, 0x77, 0x75, 0xb3, 0xa5, 0xfd, 0x34, 0xf2, 0xd9, - 0x69, 0xe3, 0x97, 0x9f, 0x77, 0xc1, 0x9c, 0x9f, 0x8c, 0x28, 0x6b, 0x4a, 0x72, 0x79, 0xca, 0x9f, - 0x65, 0x2b, 0x8a, 0x2b, 0xdf, 0x3b, 0xa6, 0x6a, 0x65, 0x95, 0xfe, 0x5c, 0x49, 0xfa, 0xd6, 0x8e, - 0x31, 0x98, 0xa2, 0xb2, 0xd6, 0xa1, 0xa6, 0x5c, 0x48, 0xef, 0x9b, 0x36, 0xa0, 0xec, 0x88, 0xcc, - 0x50, 0xba, 0x4a, 0x59, 0x1d, 0x9e, 0xc9, 0x54, 0x11, 0x15, 0xdc, 0xfa, 0xc3, 0x0a, 0xc4, 0x91, - 0x89, 0xb8, 0x13, 0x0b, 0xd9, 0xc5, 0xef, 0x47, 0x3e, 0xd2, 0x0c, 0x54, 0x10, 0x31, 0x7f, 0xa9, - 0xf5, 0x4c, 0xdf, 0x96, 0xf2, 0x5c, 0xba, 0xe9, 0xba, 0xe1, 0x58, 0x9f, 0xe3, 0x17, 0x27, 0x6f, - 0x4b, 0x65, 0x29, 0x70, 0x4a, 0x2b, 0xf2, 0x40, 0xde, 0x44, 0xe5, 0x8e, 0xd0, 0xa9, 0x8e, 0xd7, - 0x6f, 0x3e, 0xe7, 0x26, 0xaa, 0x22, 0x8a, 0xaf, 0x9f, 0xaa, 0x5f, 0x4c, 0x9a, 0x93, 0x1d, 0x58, - 0x38, 0x0e, 0xfd, 0xf1, 0x90, 0x9a, 0x6d, 0x88, 0xd5, 0x69, 0x9c, 0x9e, 0x48, 0x92, 0x54, 0x5d, - 0xae, 0x9a, 0xa0, 0x69, 0x4b, 0x28, 0xac, 0xc8, 0x24, 0xdc, 0xe3, 0x27, 0xfa, 0x8c, 0x5c, 0x97, - 0x10, 0x5f, 0x99, 0xc6, 0x6e, 0x3f, 0xec, 0xda, 0x59, 0x6a, 0x7d, 0x4d, 0x32, 0x0b, 0xc4, 0x3c, - 0x4f, 0xf2, 0xa3, 0x02, 0xd4, 0x82, 0xb0, 0x4b, 0x4d, 0x78, 0xd1, 0xb5, 0x74, 0x67, 0xf6, 0xd5, - 0xaa, 0xf9, 0x38, 0xc5, 0x56, 0x6d, 0x8a, 0xc7, 0xab, 0x48, 0x1a, 0x85, 0x19, 0xf9, 0xe4, 0x00, - 0x16, 0x79, 0xe8, 0x6b, 0x1f, 0x35, 0x05, 0xf6, 0xda, 0xb4, 0x31, 0x77, 0x62, 0xb2, 0xe4, 0x36, - 0x4d, 0x02, 0x63, 0x98, 0xe6, 0x43, 0x02, 0xb8, 0xea, 0x0d, 0x9d, 0x3e, 0xdd, 0x1f, 0xfb, 0xbe, - 0x8a, 0xa9, 0xe6, 0x28, 0x65, 0xea, 0x95, 0x63, 0x11, 0x88, 0x7c, 0xed, 0x17, 0xb4, 0x47, 0x23, - 0x1a, 0xb8, 0x34, 0xbe, 0x6f, 0x75, 0xf5, 0x7e, 0x8e, 0x13, 0x4e, 0xf0, 0x26, 0x77, 0xe1, 0xda, - 0x28, 0xf2, 0x42, 0xa9, 0x6a, 0xdf, 0x61, 0x6a, 0x2d, 0xad, 0x4a, 0xe3, 0xfc, 0xa2, 0x66, 0x73, - 0x6d, 0x3f, 0x4f, 0x80, 0x93, 0x6d, 0xc4, 0xaa, 0x6a, 0x80, 0xb2, 0xc6, 0xd0, 0xab, 0xaa, 0x69, - 0x8b, 0x31, 0x96, 0xec, 0x42, 0xc5, 0xe9, 0xf5, 0xbc, 0x40, 0x50, 0x2e, 0x4a, 0x53, 0x79, 0x63, - 0xda, 0xd0, 0x36, 0x35, 0x8d, 0xe2, 0x63, 0xfe, 0x30, 0x6e, 0xbb, 0xfa, 0x1d, 0xb8, 0x36, 0x31, - 0x75, 0x17, 0xda, 0xf2, 0xb7, 0x01, 0x92, 0xfb, 0x24, 0xe4, 0xcb, 0x50, 0x66, 0xdc, 0x89, 0x4c, - 0x85, 0x12, 0x67, 0x8d, 0xb6, 0x00, 0xa2, 0xc2, 0x91, 0x9b, 0x50, 0x62, 0x3c, 0x1c, 0xe5, 0xf7, - 0x28, 0x6c, 0x1e, 0x8e, 0x50, 0x62, 0xac, 0x4f, 0x4b, 0xb0, 0x60, 0x56, 0x1e, 0x96, 0xca, 0xae, - 0x0a, 0xb3, 0x1e, 0x5d, 0x6b, 0xa6, 0x2f, 0x4c, 0xb2, 0xb2, 0xcb, 0x45, 0xf1, 0xd2, 0x97, 0x8b, - 0x23, 0x98, 0x1f, 0xc9, 0x60, 0xac, 0x03, 0xd4, 0xdd, 0xd9, 0x65, 0x4b, 0x76, 0x6a, 0xad, 0x55, - 0xdf, 0xa8, 0x45, 0x90, 0x8f, 0x60, 0x29, 0xa2, 0x3c, 0x3a, 0xc9, 0xac, 0x4d, 0xb3, 0x94, 0xb7, - 0xf2, 0xb0, 0x0f, 0xd3, 0x2c, 0x31, 0x2b, 0x81, 0x8c, 0xa0, 0x1a, 0x99, 0x62, 0x55, 0x87, 0xba, - 0xd6, 0xcb, 0x0f, 0x31, 0xae, 0x7b, 0x55, 0xa4, 0x8e, 0x7f, 0x31, 0x11, 0x62, 0xfd, 0x57, 0x01, - 0xae, 0xe6, 0xa7, 0x81, 0x1c, 0xc1, 0x1c, 0x8b, 0x5c, 0x6d, 0x56, 0xfb, 0xaf, 0x6e, 0x7e, 0x55, - 0x32, 0xa3, 0xf6, 0x2b, 0xec, 0xc8, 0x45, 0x21, 0x45, 0x98, 0x7d, 0x97, 0x32, 0x9e, 0x37, 0xfb, - 0x6d, 0xca, 0x38, 0x4a, 0x0c, 0x69, 0xa7, 0x93, 0x1e, 0x95, 0xd3, 0x35, 0xa7, 0x25, 0x3d, 0x5f, - 0xcc, 0xcb, 0x9b, 0x96, 0xf2, 0x58, 0xff, 0x5a, 0x84, 0xcf, 0x4f, 0xef, 0x18, 0xf9, 0x36, 0x2c, - 0xc7, 0x25, 0xd3, 0x49, 0xea, 0xcd, 0x59, 0x7c, 0x72, 0xb4, 0x9d, 0xc1, 0x62, 0x8e, 0x5a, 0x64, - 0x19, 0xfa, 0x0a, 0x97, 0x79, 0x78, 0x96, 0xda, 0xc2, 0x6d, 0xc5, 0x18, 0x4c, 0x51, 0x91, 0x4d, - 0x58, 0xd1, 0x7f, 0x9d, 0x74, 0xb1, 0x94, 0x3a, 0x9f, 0x69, 0x65, 0xd1, 0x98, 0xa7, 0x17, 0x69, - 0xac, 0xc8, 0x06, 0xcc, 0x23, 0x82, 0x54, 0x1a, 0xbb, 0xad, 0xc0, 0x68, 0xf0, 0xa2, 0xb2, 0x11, - 0x9f, 0x9d, 0xec, 0x7d, 0xd5, 0xa4, 0x7c, 0x4c, 0xe1, 0x30, 0x43, 0x99, 0x5c, 0xa4, 0x55, 0xb7, - 0x71, 0x26, 0x2e, 0xd2, 0x5a, 0x3f, 0x2b, 0xc0, 0x52, 0xc6, 0xa9, 0x48, 0x0f, 0xe6, 0x8e, 0x36, - 0x4c, 0x3d, 0xf3, 0xf0, 0x15, 0x9e, 0x32, 0x2b, 0x0b, 0x7a, 0xb8, 0xc1, 0x50, 0x08, 0x20, 0x1f, - 0xc6, 0xa5, 0xd3, 0xcc, 0x97, 0xf3, 0xd2, 0x09, 0x9f, 0x4e, 0xc0, 0xb3, 0x55, 0xd4, 0x3f, 0xd7, - 0x60, 0x25, 0x17, 0x2d, 0xcf, 0x71, 0x25, 0x46, 0x19, 0x86, 0xbe, 0xc4, 0x3f, 0xc5, 0x30, 0xcc, - 0xf5, 0xfe, 0x14, 0x15, 0xe9, 0x2b, 0xed, 0xa9, 0x40, 0xd7, 0x9e, 0x69, 0x48, 0xb9, 0xaa, 0x25, - 0xa7, 0xbe, 0x1f, 0x16, 0xa0, 0xe6, 0xa4, 0x5e, 0x9f, 0xe9, 0x38, 0xf7, 0x68, 0x96, 0x52, 0x66, - 0xe2, 0xe1, 0x9d, 0xba, 0x1c, 0x96, 0x46, 0x60, 0x46, 0x28, 0x71, 0xa1, 0x34, 0xe0, 0xdc, 0xbc, - 0x81, 0xda, 0x79, 0x25, 0x77, 0x3b, 0xd4, 0x19, 0xa2, 0x00, 0xa0, 0x64, 0x4e, 0x9e, 0x42, 0xd5, - 0x79, 0xca, 0xd4, 0x33, 0x53, 0xfd, 0x38, 0x6a, 0x96, 0x8a, 0x2d, 0xf7, 0x62, 0x55, 0x1f, 0xee, - 0x18, 0x28, 0x26, 0xb2, 0x48, 0x04, 0xf3, 0xae, 0x7c, 0x44, 0xa0, 0xaf, 0xc8, 0xdc, 0x7d, 0x45, - 0x8f, 0x11, 0xd4, 0x9a, 0x92, 0x01, 0xa1, 0x96, 0x44, 0xfa, 0x50, 0x3e, 0x72, 0x7a, 0x47, 0x8e, - 0xde, 0x61, 0x9e, 0xc1, 0x2b, 0xd2, 0x77, 0x17, 0x94, 0xe7, 0x4b, 0x08, 0x2a, 0xfe, 0x62, 0xea, - 0x02, 0x87, 0x33, 0xbd, 0xcd, 0x3c, 0xc3, 0xd4, 0xa5, 0x4e, 0x63, 0xd5, 0xd4, 0x09, 0x00, 0x4a, - 0xe6, 0x62, 0x34, 0xb2, 0xc8, 0xd7, 0x9b, 0xcc, 0xb3, 0xf8, 0x78, 0x6a, 0x13, 0x44, 0x8d, 0x46, - 0x42, 0x50, 0xf1, 0x17, 0x36, 0x12, 0x9a, 0xd3, 0x46, 0x9d, 0x43, 0xce, 0x60, 0x23, 0xf9, 0x83, - 0x4b, 0x65, 0x23, 0x31, 0x14, 0x13, 0x59, 0xe4, 0x03, 0x98, 0xf3, 0xc3, 0xbe, 0x3e, 0x3a, 0x9f, - 0x61, 0x83, 0x37, 0x39, 0x25, 0x57, 0x8e, 0xde, 0x0e, 0xfb, 0x28, 0x38, 0x93, 0x3f, 0x2a, 0xc0, - 0xb2, 0x93, 0x79, 0x4d, 0x57, 0x5f, 0x9a, 0xf5, 0x0e, 0xf7, 0xd4, 0xd7, 0x79, 0xea, 0x85, 0x6e, - 0x16, 0x85, 0x39, 0xd1, 0x32, 0x97, 0x93, 0xe7, 0x6d, 0xf5, 0xe5, 0x59, 0x5d, 0x22, 0x73, 0x6e, - 0xa7, 0x73, 0x39, 0x09, 0x42, 0x2d, 0x82, 0xfc, 0x69, 0x41, 0x2e, 0xb3, 0xe9, 0x67, 0x54, 0xf5, - 0x95, 0x99, 0x9f, 0x05, 0x4d, 0x7f, 0xfa, 0x95, 0x59, 0xb9, 0xd3, 0x04, 0x98, 0xef, 0x82, 0xe5, - 0xc2, 0x62, 0xea, 0x69, 0xe8, 0x39, 0xce, 0x31, 0x6f, 0x03, 0x1c, 0xd3, 0xc8, 0xeb, 0x9d, 0xb4, - 0x68, 0xc4, 0xf5, 0x0b, 0xad, 0x78, 0x21, 0x79, 0x12, 0x63, 0x30, 0x45, 0xb5, 0xd5, 0xfc, 0xe4, - 0xb3, 0xb5, 0x2b, 0x9f, 0x7e, 0xb6, 0x76, 0xe5, 0xa7, 0x9f, 0xad, 0x5d, 0xf9, 0xc1, 0xd9, 0x5a, - 0xe1, 0x93, 0xb3, 0xb5, 0xc2, 0xa7, 0x67, 0x6b, 0x85, 0x9f, 0x9e, 0xad, 0x15, 0xfe, 0xfd, 0x6c, - 0xad, 0xf0, 0x27, 0x3f, 0x5b, 0xbb, 0xf2, 0x5b, 0x15, 0x33, 0xac, 0xff, 0x09, 0x00, 0x00, 0xff, - 0xff, 0xf5, 0x9f, 0x52, 0x9a, 0x44, 0x41, 0x00, 0x00, + // 4141 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7b, 0x4d, 0x6c, 0x23, 0xd9, + 0x71, 0xf0, 0x90, 0x22, 0x25, 0xb2, 0x44, 0x49, 0x33, 0x6f, 0x3c, 0x5e, 0x5a, 0xde, 0x15, 0x07, + 0x34, 0x3e, 0x7f, 0x63, 0xc3, 0xa6, 0x76, 0x67, 0x93, 0x58, 0x9e, 0x20, 0xf6, 0x52, 0x94, 0x34, + 0x7f, 0x9c, 0x91, 0xb6, 0x9a, 0x9a, 0x45, 0x7e, 0x80, 0x75, 0xab, 0xf9, 0x48, 0xf6, 0xaa, 0xd9, + 0xcd, 0xed, 0xf7, 0xa8, 0x59, 0x19, 0x70, 0x62, 0xc4, 0xc8, 0x21, 0x08, 0xe0, 0xe4, 0x90, 0x43, + 0x4e, 0xf9, 0x39, 0xe4, 0x94, 0x1c, 0x12, 0xe4, 0x18, 0xe4, 0xe2, 0xd3, 0x02, 0x39, 0x64, 0x73, + 0x08, 0xe0, 0x43, 0x20, 0x64, 0xe5, 0x53, 0x0e, 0x41, 0xe2, 0xeb, 0x9c, 0x82, 0xf7, 0xd7, 0x7f, + 0xe4, 0x78, 0xc4, 0xe1, 0x44, 0x13, 0x20, 0xb7, 0xee, 0xaa, 0x7a, 0x55, 0xef, 0xd5, 0xab, 0xaa, + 0x57, 0xf5, 0x7e, 0xe0, 0x5e, 0xdf, 0xe5, 0x83, 0xf1, 0x51, 0xc3, 0x09, 0x86, 0x9b, 0x76, 0xd8, + 0x0f, 0x46, 0x61, 0xf0, 0x91, 0xfc, 0xf8, 0x26, 0x3d, 0xa1, 0x3e, 0x67, 0x9b, 0xa3, 0xe3, 0xfe, + 0xa6, 0x3d, 0x72, 0xd9, 0x26, 0xa3, 0x3e, 0x0b, 0xc2, 0xcd, 0x93, 0x77, 0x6c, 0x6f, 0x34, 0xb0, + 0xdf, 0xd9, 0xec, 0x53, 0x9f, 0x86, 0x36, 0xa7, 0xdd, 0xc6, 0x28, 0x0c, 0x78, 0x40, 0xb6, 0x62, + 0x4e, 0x0d, 0xc3, 0x49, 0x7e, 0x7c, 0xa8, 0x38, 0x35, 0x46, 0xc7, 0xfd, 0x86, 0xe0, 0xd4, 0x50, + 0x9c, 0x1a, 0x86, 0xd3, 0xfa, 0x77, 0x2f, 0xdc, 0x07, 0x27, 0x18, 0x0e, 0x03, 0x3f, 0x2b, 0x7a, + 0xfd, 0x9b, 0x09, 0x06, 0xfd, 0xa0, 0x1f, 0x6c, 0x4a, 0xf0, 0xd1, 0xb8, 0x27, 0xff, 0xe4, 0x8f, + 0xfc, 0xd2, 0xe4, 0xf5, 0xe3, 0x2d, 0xd6, 0x70, 0x03, 0xc1, 0x72, 0xd3, 0x09, 0x42, 0xba, 0x79, + 0x32, 0x31, 0x9a, 0xf5, 0x5f, 0x8a, 0x69, 0x86, 0xb6, 0x33, 0x70, 0x7d, 0x1a, 0x9e, 0xc6, 0xfd, + 0x18, 0x52, 0x6e, 0x4f, 0x6b, 0xb5, 0xf9, 0xbc, 0x56, 0xe1, 0xd8, 0xe7, 0xee, 0x90, 0x4e, 0x34, + 0xf8, 0x95, 0x17, 0x35, 0x60, 0xce, 0x80, 0x0e, 0xed, 0x6c, 0xbb, 0xfa, 0xb3, 0x02, 0x5c, 0x6d, + 0x7e, 0x60, 0xb5, 0xed, 0xe1, 0x51, 0xd7, 0xee, 0x84, 0x6e, 0xbf, 0x4f, 0x43, 0xb2, 0x05, 0x95, + 0xde, 0xd8, 0x77, 0xb8, 0x1b, 0xf8, 0x8f, 0xed, 0x21, 0xad, 0xe6, 0x6e, 0xe6, 0x6e, 0x95, 0xb7, + 0xbf, 0xf0, 0xe9, 0x59, 0xed, 0xca, 0xf9, 0x59, 0xad, 0xb2, 0x97, 0xc0, 0x61, 0x8a, 0x92, 0x20, + 0x94, 0x6d, 0xc7, 0xa1, 0x8c, 0x3d, 0xa4, 0xa7, 0xd5, 0xfc, 0xcd, 0xdc, 0xad, 0xe5, 0xdb, 0xff, + 0xaf, 0xa1, 0xba, 0x26, 0xa6, 0xac, 0x21, 0xb4, 0xd4, 0x38, 0x79, 0xa7, 0x61, 0x51, 0x27, 0xa4, + 0xfc, 0x21, 0x3d, 0xb5, 0xa8, 0x47, 0x1d, 0x1e, 0x84, 0xdb, 0x2b, 0xe7, 0x67, 0xb5, 0x72, 0xd3, + 0xb4, 0xc5, 0x98, 0x8d, 0xe0, 0xc9, 0x0c, 0x79, 0x75, 0x61, 0x66, 0x9e, 0x11, 0x18, 0x63, 0x36, + 0xe4, 0xab, 0xb0, 0x18, 0xd2, 0xbe, 0x1b, 0xf8, 0xd5, 0x82, 0x1c, 0xdb, 0xaa, 0x1e, 0xdb, 0x22, + 0x4a, 0x28, 0x6a, 0x2c, 0x19, 0xc3, 0xd2, 0xc8, 0x3e, 0xf5, 0x02, 0xbb, 0x5b, 0x2d, 0xde, 0x5c, + 0xb8, 0xb5, 0x7c, 0xfb, 0x41, 0xe3, 0x65, 0xad, 0xb3, 0xa1, 0xb5, 0x7b, 0x60, 0x87, 0xf6, 0x90, + 0x72, 0x1a, 0x6e, 0xaf, 0x69, 0xa1, 0x4b, 0x07, 0x4a, 0x04, 0x1a, 0x59, 0xe4, 0xb7, 0x01, 0x46, + 0x86, 0x8c, 0x55, 0x17, 0x5f, 0xb9, 0x64, 0xa2, 0x25, 0x43, 0x04, 0x62, 0x98, 0x90, 0x48, 0xee, + 0xc0, 0xaa, 0xeb, 0x9f, 0x04, 0x8e, 0x2d, 0x26, 0xb6, 0x73, 0x3a, 0xa2, 0xd5, 0x25, 0xa9, 0x26, + 0x72, 0x7e, 0x56, 0x5b, 0xbd, 0x9f, 0xc2, 0x60, 0x86, 0x92, 0x7c, 0x0d, 0x96, 0xc2, 0xc0, 0xa3, + 0x4d, 0x7c, 0x5c, 0x2d, 0xc9, 0x46, 0xd1, 0x30, 0x51, 0x81, 0xd1, 0xe0, 0xeb, 0xff, 0x94, 0x87, + 0xeb, 0xcd, 0xb0, 0x1f, 0x7c, 0x10, 0x84, 0xc7, 0x3d, 0x2f, 0x78, 0x6a, 0xec, 0xcf, 0x87, 0x45, + 0x16, 0x8c, 0x43, 0x47, 0x59, 0xde, 0x5c, 0x43, 0x6f, 0x86, 0xdc, 0xed, 0xd9, 0x0e, 0x6f, 0xeb, + 0x2e, 0x6e, 0x83, 0x98, 0x65, 0x4b, 0x72, 0x47, 0x2d, 0x85, 0xdc, 0x83, 0x72, 0x30, 0x12, 0x6e, + 0x21, 0x0c, 0x22, 0x2f, 0x3b, 0xfd, 0x75, 0xdd, 0xe9, 0xf2, 0xbe, 0x41, 0x3c, 0x3b, 0xab, 0xdd, + 0x48, 0x76, 0x36, 0x42, 0x60, 0xdc, 0x38, 0x33, 0x71, 0x0b, 0x97, 0x3d, 0x71, 0xf5, 0x9f, 0x0b, + 0x77, 0xce, 0x0c, 0x99, 0x58, 0x90, 0x67, 0xef, 0x6a, 0x55, 0xfe, 0xea, 0xc5, 0x3b, 0xa3, 0x62, + 0x64, 0xc3, 0x7a, 0xd7, 0x30, 0xdc, 0x5e, 0x3c, 0x3f, 0xab, 0xe5, 0xad, 0x77, 0x31, 0xcf, 0xde, + 0x25, 0x75, 0x58, 0x74, 0x7d, 0xcf, 0xf5, 0xa9, 0x56, 0x98, 0xd4, 0xeb, 0x7d, 0x09, 0x41, 0x8d, + 0x21, 0x5d, 0x28, 0xf4, 0x5c, 0x8f, 0x6a, 0xa7, 0xdd, 0x7b, 0x79, 0x3d, 0xec, 0xb9, 0x1e, 0x8d, + 0x7a, 0x51, 0x3a, 0x3f, 0xab, 0x15, 0x04, 0x04, 0x25, 0x77, 0xf2, 0x3d, 0x58, 0x18, 0x87, 0x9e, + 0x74, 0xe4, 0xe5, 0xdb, 0xbb, 0x2f, 0x2f, 0xe4, 0x10, 0xdb, 0x91, 0x8c, 0xa5, 0xf3, 0xb3, 0xda, + 0xc2, 0x21, 0xb6, 0x51, 0xb0, 0x26, 0x87, 0x50, 0x76, 0x02, 0xbf, 0xe7, 0xf6, 0x87, 0xf6, 0xa8, + 0x5a, 0x94, 0x72, 0x6e, 0x4d, 0x8b, 0x40, 0x2d, 0x49, 0xf4, 0xc8, 0x1e, 0x4d, 0x04, 0xa1, 0x96, + 0x69, 0x8e, 0x31, 0x27, 0xd1, 0xf1, 0xbe, 0xcb, 0xab, 0x8b, 0xf3, 0x76, 0xfc, 0xae, 0xcb, 0xd3, + 0x1d, 0xbf, 0xeb, 0x72, 0x14, 0xac, 0x89, 0x03, 0xa5, 0x90, 0x6a, 0x57, 0x5a, 0x92, 0x62, 0xbe, + 0x3d, 0xf3, 0xfc, 0xa3, 0x66, 0xb0, 0x5d, 0x39, 0x3f, 0xab, 0x95, 0xcc, 0x1f, 0x46, 0x8c, 0xeb, + 0x7f, 0x57, 0x80, 0x1b, 0xcd, 0xef, 0x8f, 0x43, 0xba, 0x2b, 0x18, 0xdc, 0x1b, 0x1f, 0x31, 0xe3, + 0xc7, 0x37, 0xa1, 0xd0, 0xfb, 0xb8, 0xeb, 0xeb, 0xf5, 0xa3, 0xa2, 0x6d, 0xb7, 0xb0, 0xf7, 0xfe, + 0xce, 0x63, 0x94, 0x18, 0x11, 0x2c, 0x06, 0xe3, 0x23, 0xb9, 0xc8, 0xe4, 0xd3, 0xc1, 0xe2, 0x9e, + 0x02, 0xa3, 0xc1, 0x93, 0x11, 0x5c, 0x67, 0x03, 0x3b, 0xa4, 0xdd, 0x68, 0x91, 0x90, 0xcd, 0x66, + 0x5a, 0x10, 0xde, 0x38, 0x3f, 0xab, 0x5d, 0xb7, 0x26, 0xb9, 0xe0, 0x34, 0xd6, 0xa4, 0x0b, 0x6b, + 0x19, 0xb0, 0x36, 0xb2, 0x0b, 0x4a, 0xbb, 0x7e, 0x7e, 0x56, 0x5b, 0xcb, 0x48, 0xc3, 0x2c, 0xcb, + 0xff, 0xa3, 0x4b, 0x4c, 0xbd, 0x0f, 0x37, 0x5a, 0x81, 0xdf, 0x75, 0x45, 0x84, 0x62, 0x48, 0x19, + 0xe5, 0xdb, 0xa7, 0x1d, 0x77, 0x48, 0x85, 0xd1, 0x38, 0x61, 0x30, 0x61, 0x34, 0xad, 0x30, 0xf0, + 0x51, 0x62, 0xc8, 0x37, 0xa0, 0x24, 0x52, 0x9a, 0xef, 0x07, 0x51, 0xf0, 0xb9, 0xaa, 0xa9, 0x4a, + 0x1d, 0x0d, 0xc7, 0x88, 0xa2, 0xfe, 0xe3, 0x1c, 0xbc, 0x91, 0x91, 0xd4, 0x0a, 0x5d, 0x4e, 0x43, + 0xd7, 0x26, 0x0c, 0x16, 0x8f, 0xa4, 0x54, 0x1d, 0x1d, 0xf7, 0x5f, 0x5e, 0x01, 0x53, 0x07, 0xa3, + 0xa2, 0xa2, 0xfa, 0x46, 0x2d, 0xaa, 0xfe, 0x37, 0x45, 0x58, 0x69, 0x8d, 0x19, 0x0f, 0x86, 0xc6, + 0x4f, 0x36, 0x45, 0x86, 0x13, 0x9e, 0xd0, 0xf0, 0x10, 0xdb, 0x7a, 0xdc, 0xd7, 0xcc, 0xfa, 0x63, + 0x19, 0x04, 0xc6, 0x34, 0x22, 0x7d, 0x61, 0xd4, 0x19, 0x87, 0x6a, 0xfc, 0xa5, 0x38, 0x7d, 0xb1, + 0x24, 0x14, 0x35, 0x96, 0x1c, 0x02, 0x38, 0x34, 0xe4, 0xca, 0x34, 0x67, 0x73, 0x95, 0x55, 0x31, + 0x77, 0xad, 0xa8, 0x31, 0x26, 0x18, 0x91, 0x07, 0x40, 0x54, 0x5f, 0x84, 0x9b, 0xec, 0x9f, 0xd0, + 0x30, 0x74, 0xbb, 0x54, 0x67, 0x52, 0xeb, 0xba, 0x2b, 0xc4, 0x9a, 0xa0, 0xc0, 0x29, 0xad, 0x08, + 0x83, 0x02, 0x1b, 0x51, 0x47, 0xdb, 0xfe, 0xfb, 0x73, 0x4c, 0x40, 0x52, 0xa5, 0x0d, 0x6b, 0x44, + 0x9d, 0x5d, 0x9f, 0x87, 0xa7, 0xb1, 0x05, 0x09, 0x10, 0x4a, 0x61, 0xaf, 0x3d, 0xbf, 0x4a, 0xf8, + 0xfc, 0xd2, 0xe5, 0xf9, 0xfc, 0xfa, 0xb7, 0xa0, 0x1c, 0xe9, 0x85, 0x5c, 0x85, 0x85, 0x63, 0x7a, + 0xaa, 0xcc, 0x0d, 0xc5, 0x27, 0xf9, 0x02, 0x14, 0x4f, 0x6c, 0x6f, 0xac, 0x9d, 0x0a, 0xd5, 0xcf, + 0x9d, 0xfc, 0x56, 0xae, 0xfe, 0x1f, 0x39, 0x80, 0x1d, 0x9b, 0xdb, 0x7b, 0xae, 0xc7, 0x55, 0x5c, + 0x1f, 0xd9, 0x7c, 0x90, 0x75, 0xd1, 0x03, 0x9b, 0x0f, 0x50, 0x62, 0xc8, 0x37, 0xa0, 0xc0, 0x45, + 0xda, 0xa8, 0xdc, 0xb3, 0x6a, 0x28, 0x44, 0x82, 0xf8, 0xec, 0xac, 0x56, 0x7a, 0x60, 0xed, 0x3f, + 0x96, 0xc9, 0xa3, 0xa4, 0x22, 0x35, 0x23, 0x58, 0x24, 0x4c, 0xe5, 0xed, 0xf2, 0xf9, 0x59, 0xad, + 0xf8, 0x44, 0x00, 0x74, 0x1f, 0xc8, 0x7b, 0x00, 0x4e, 0x30, 0x14, 0x0a, 0xe4, 0x41, 0xa8, 0x0d, + 0xed, 0xa6, 0xd1, 0x71, 0x2b, 0xc2, 0x3c, 0x4b, 0xfd, 0x61, 0xa2, 0x8d, 0x8c, 0x19, 0x74, 0x38, + 0xf2, 0x6c, 0x4e, 0xe5, 0x0a, 0x9e, 0x8c, 0x19, 0x1a, 0x8e, 0x11, 0x45, 0xfd, 0x4f, 0x73, 0x50, + 0x94, 0xab, 0x19, 0x19, 0xc2, 0x92, 0x13, 0xf8, 0x9c, 0x7e, 0xc2, 0x75, 0x88, 0x98, 0x23, 0x8b, + 0x91, 0x1c, 0x5b, 0x8a, 0xdb, 0xf6, 0xb2, 0x98, 0x21, 0xfd, 0x83, 0x46, 0x06, 0x79, 0x13, 0x0a, + 0x5d, 0x9b, 0xdb, 0x52, 0x6f, 0x15, 0x95, 0xe9, 0x08, 0xbd, 0xa3, 0x84, 0xde, 0x29, 0xfd, 0xc9, + 0x9f, 0xd7, 0xae, 0xfc, 0xf0, 0x5f, 0x6f, 0x5e, 0xa9, 0xff, 0x3c, 0x0f, 0x95, 0x24, 0x3b, 0xb2, + 0x0e, 0x79, 0xb7, 0xab, 0x27, 0x04, 0xf4, 0xc8, 0xf2, 0xf7, 0x77, 0x30, 0xef, 0x76, 0x65, 0xb4, + 0x50, 0x39, 0x40, 0x3e, 0x5d, 0xec, 0x64, 0xd2, 0xe0, 0x5f, 0x86, 0x65, 0xe1, 0x1d, 0x27, 0x34, + 0x64, 0x22, 0x11, 0x5e, 0x90, 0xc4, 0xd7, 0x35, 0xf1, 0xb2, 0xb0, 0x9c, 0x27, 0x0a, 0x85, 0x49, + 0x3a, 0x61, 0x0d, 0x72, 0xae, 0x0b, 0x69, 0x6b, 0x48, 0xcc, 0x6f, 0x13, 0xd6, 0x44, 0xff, 0xe5, + 0x20, 0x7d, 0x2e, 0x89, 0xd5, 0x1c, 0xbc, 0xa1, 0x89, 0xd7, 0xc4, 0x20, 0x5b, 0x0a, 0x2d, 0xdb, + 0x65, 0xe9, 0x45, 0xa2, 0xc0, 0xc6, 0x47, 0x1f, 0x51, 0x47, 0xe5, 0x4b, 0x89, 0x44, 0xc1, 0x52, + 0x60, 0x34, 0x78, 0xd2, 0x86, 0x82, 0x08, 0xfe, 0x3a, 0xe1, 0xf9, 0x7a, 0x22, 0xdc, 0x45, 0x95, + 0x71, 0x3c, 0x47, 0xa2, 0x00, 0x17, 0x01, 0x50, 0x46, 0xeb, 0xb8, 0xef, 0x22, 0x5e, 0x4b, 0x2e, + 0x09, 0x9d, 0xff, 0x59, 0x1e, 0xd6, 0xa4, 0xce, 0x77, 0xe8, 0x88, 0xfa, 0x5d, 0xea, 0x3b, 0xa7, + 0x62, 0xec, 0x7e, 0x5c, 0x21, 0x47, 0xed, 0x65, 0x4e, 0x21, 0x31, 0x62, 0xec, 0xd2, 0x2e, 0x94, + 0xae, 0x13, 0x99, 0x4e, 0x34, 0xf6, 0xdd, 0x34, 0x1a, 0xb3, 0xf4, 0x62, 0x79, 0x90, 0xa0, 0x28, + 0xdf, 0x49, 0x2c, 0x0f, 0xbb, 0x06, 0x81, 0x31, 0x0d, 0x39, 0x81, 0xa5, 0x9e, 0xf4, 0x54, 0xa6, + 0x13, 0x96, 0xfd, 0x39, 0x8d, 0x36, 0x1e, 0xb1, 0x8a, 0x00, 0xca, 0x7a, 0xd5, 0x37, 0x43, 0x23, + 0xac, 0xfe, 0x0f, 0x0b, 0x70, 0x63, 0x2a, 0x3d, 0x39, 0xd2, 0x73, 0xa2, 0x7c, 0x68, 0x67, 0x8e, + 0x68, 0xe7, 0x0e, 0xa9, 0xee, 0x43, 0x29, 0x3d, 0x53, 0x49, 0x57, 0xcd, 0x5f, 0x82, 0xab, 0xf6, + 0xb4, 0xab, 0xaa, 0x22, 0x6f, 0x8e, 0x21, 0xc5, 0x81, 0x35, 0x36, 0xa0, 0xd8, 0xe9, 0x89, 0x0b, + 0x45, 0xfa, 0xc9, 0x48, 0x4e, 0xe5, 0x9c, 0x82, 0x76, 0x3f, 0x19, 0x85, 0x5a, 0xd0, 0x8a, 0x16, + 0x54, 0x14, 0x30, 0x86, 0x4a, 0x82, 0x08, 0x7b, 0x10, 0x13, 0x09, 0xe3, 0x16, 0xf0, 0xac, 0x71, + 0x0b, 0x0a, 0x94, 0x18, 0x51, 0xa8, 0xf7, 0x5c, 0xea, 0x75, 0x59, 0x35, 0x2f, 0x3b, 0x37, 0x87, + 0xc6, 0xf5, 0x62, 0xb5, 0x27, 0xd8, 0xc5, 0x11, 0x4a, 0xfe, 0x32, 0xd4, 0x52, 0xea, 0x6f, 0x43, + 0x25, 0x59, 0x0a, 0xbe, 0x78, 0x21, 0xaa, 0xff, 0x6d, 0x01, 0x96, 0x13, 0xf5, 0x11, 0x79, 0x4b, + 0x15, 0x8b, 0xaa, 0xc1, 0xb2, 0x6e, 0x10, 0x57, 0x7a, 0xdf, 0x81, 0x55, 0xc7, 0x0b, 0x7c, 0xba, + 0xe3, 0x86, 0x32, 0x0d, 0x3a, 0xd5, 0xce, 0xfa, 0x45, 0x4d, 0xb9, 0xda, 0x4a, 0x61, 0x31, 0x43, + 0x4d, 0x1c, 0x28, 0x3a, 0x21, 0xed, 0x32, 0x9d, 0x6b, 0x6d, 0xcf, 0x55, 0xd4, 0xb5, 0x04, 0x27, + 0xb5, 0x1a, 0xca, 0x4f, 0x54, 0xbc, 0xc9, 0x6f, 0x42, 0x85, 0xb1, 0x81, 0x4c, 0xd6, 0x64, 0x5e, + 0x37, 0x53, 0x51, 0x72, 0xf5, 0xfc, 0xac, 0x56, 0xb1, 0xac, 0x7b, 0x51, 0x73, 0x4c, 0x31, 0x13, + 0x0b, 0xa5, 0xa8, 0xaa, 0x85, 0x0a, 0xb3, 0x0b, 0xe5, 0x9e, 0x86, 0x63, 0x44, 0x21, 0x96, 0x96, + 0xa3, 0xd0, 0xf6, 0x9d, 0x81, 0x8e, 0xca, 0xd1, 0xc4, 0x6d, 0x4b, 0x28, 0x6a, 0xac, 0x50, 0x3b, + 0xb7, 0xfb, 0x7a, 0x17, 0x29, 0x52, 0x7b, 0xc7, 0xee, 0xa3, 0x80, 0x0b, 0x74, 0x48, 0x7b, 0x7a, + 0xbf, 0x28, 0x42, 0x23, 0xed, 0xa1, 0x80, 0x93, 0x21, 0x2c, 0x86, 0x74, 0x18, 0x70, 0x5a, 0x2d, + 0xcb, 0xa1, 0xde, 0x9f, 0x4b, 0xad, 0x28, 0x59, 0xa9, 0x8a, 0x5c, 0x25, 0xe8, 0x0a, 0x82, 0x5a, + 0x48, 0xfd, 0xaf, 0x73, 0x50, 0x32, 0xea, 0x27, 0xfb, 0x50, 0x1a, 0x33, 0x1a, 0x46, 0x51, 0xfe, + 0xc2, 0x8a, 0x96, 0xe5, 0xf2, 0xa1, 0x6e, 0x8a, 0x11, 0x13, 0xc1, 0x70, 0x64, 0x33, 0xf6, 0x34, + 0x08, 0xbb, 0xb3, 0xed, 0x90, 0x4a, 0x86, 0x07, 0xba, 0x29, 0x46, 0x4c, 0xea, 0xef, 0xc3, 0x5a, + 0x66, 0x54, 0x17, 0x58, 0x96, 0xde, 0x84, 0xc2, 0x38, 0xf4, 0x94, 0xdf, 0x96, 0x55, 0x28, 0x3d, + 0xc4, 0xb6, 0x85, 0x12, 0x5a, 0xff, 0xf7, 0x45, 0x58, 0xbe, 0xd7, 0xe9, 0x1c, 0x98, 0x02, 0xe5, + 0x05, 0x5e, 0x93, 0x48, 0x67, 0xf3, 0x97, 0x58, 0xc2, 0x1e, 0xc2, 0x02, 0xf7, 0x8c, 0xab, 0xdd, + 0x99, 0x79, 0x63, 0xa3, 0xd3, 0xb6, 0xb4, 0x11, 0xc8, 0x4d, 0x93, 0x4e, 0xdb, 0x42, 0xc1, 0x4f, + 0xd8, 0xf4, 0x90, 0xf2, 0x41, 0xd0, 0xcd, 0xee, 0x0d, 0x3f, 0x92, 0x50, 0xd4, 0xd8, 0x4c, 0x11, + 0x51, 0xbc, 0xf4, 0x22, 0xe2, 0x6b, 0xb0, 0x24, 0xd6, 0xbd, 0x60, 0xac, 0x52, 0xa2, 0x85, 0x58, + 0x53, 0x1d, 0x05, 0x46, 0x83, 0x27, 0x7d, 0x28, 0x1f, 0xd9, 0xcc, 0x75, 0x9a, 0x63, 0x3e, 0xd0, + 0x79, 0xd1, 0xec, 0xfa, 0xda, 0x36, 0x1c, 0xd4, 0x96, 0x56, 0xf4, 0x8b, 0x31, 0x6f, 0xf2, 0x03, + 0x58, 0x1a, 0x50, 0xbb, 0x2b, 0x14, 0x52, 0x92, 0x0a, 0xc1, 0x97, 0x57, 0x48, 0xc2, 0x00, 0x1b, + 0xf7, 0x14, 0x53, 0x55, 0xd1, 0xc5, 0x7b, 0x44, 0x0a, 0x8a, 0x46, 0x26, 0x39, 0x81, 0x15, 0x55, + 0xf9, 0x6a, 0x4c, 0xb5, 0x2c, 0x3b, 0xf1, 0x6b, 0xb3, 0x6f, 0x7a, 0x26, 0xb8, 0x6c, 0x5f, 0x3b, + 0x3f, 0xab, 0xad, 0x24, 0x21, 0x0c, 0xd3, 0x62, 0xd6, 0xef, 0x40, 0x25, 0xd9, 0xc3, 0x99, 0x6a, + 0xab, 0xdf, 0x5b, 0x80, 0x6b, 0x0f, 0xb7, 0x2c, 0xb3, 0xb1, 0x76, 0x10, 0x78, 0xae, 0x73, 0x4a, + 0x7e, 0x07, 0x16, 0x3d, 0xfb, 0x88, 0x7a, 0xac, 0x9a, 0x93, 0x43, 0xf8, 0xe0, 0xe5, 0xf5, 0x38, + 0xc1, 0xbc, 0xd1, 0x96, 0x9c, 0x95, 0x32, 0x23, 0xeb, 0x56, 0x40, 0xd4, 0x62, 0xc9, 0x87, 0xb0, + 0x74, 0x64, 0x3b, 0xc7, 0x41, 0xaf, 0xa7, 0xa3, 0xd4, 0xd6, 0x4b, 0x18, 0x8c, 0x6c, 0xaf, 0xf2, + 0x27, 0xfd, 0x83, 0x86, 0x2b, 0xb1, 0xe0, 0x06, 0x0d, 0xc3, 0x20, 0xdc, 0xf7, 0x35, 0x4a, 0x5b, + 0xad, 0xf4, 0xe7, 0xd2, 0xf6, 0x5b, 0xba, 0x5f, 0x37, 0x76, 0xa7, 0x11, 0xe1, 0xf4, 0xb6, 0xeb, + 0xdf, 0x86, 0xe5, 0xc4, 0xe0, 0x66, 0x9a, 0x87, 0x9f, 0x2c, 0x42, 0xe5, 0xa1, 0xdd, 0x3b, 0xb6, + 0x2f, 0x18, 0xf4, 0xbe, 0x02, 0x45, 0x1e, 0x8c, 0x5c, 0x47, 0x67, 0x08, 0x51, 0x46, 0xd5, 0x11, + 0x40, 0x54, 0x38, 0x91, 0xba, 0x8f, 0xec, 0x90, 0xcb, 0x8d, 0x21, 0x39, 0xb0, 0x62, 0x9c, 0xba, + 0x1f, 0x18, 0x04, 0xc6, 0x34, 0x99, 0xa0, 0x52, 0xb8, 0xf4, 0xa0, 0xb2, 0x05, 0x95, 0x90, 0x7e, + 0x3c, 0x76, 0xe5, 0x16, 0xe5, 0x31, 0x93, 0x29, 0x40, 0x31, 0x3e, 0xfa, 0xc3, 0x04, 0x0e, 0x53, + 0x94, 0x22, 0x71, 0x10, 0xf5, 0x76, 0x48, 0x19, 0x93, 0xf1, 0xa8, 0x14, 0x27, 0x0e, 0x2d, 0x0d, + 0xc7, 0x88, 0x42, 0x24, 0x5a, 0x3d, 0x6f, 0xcc, 0x06, 0x7b, 0x82, 0x87, 0x28, 0x14, 0x64, 0x58, + 0x2a, 0xc6, 0x89, 0xd6, 0x5e, 0x0a, 0x8b, 0x19, 0x6a, 0x13, 0xfb, 0x4b, 0xaf, 0x38, 0xf6, 0x27, + 0x56, 0xb2, 0xf2, 0x25, 0xae, 0x64, 0x4d, 0x58, 0x8b, 0x4c, 0xc0, 0xf5, 0xfb, 0x0f, 0xe9, 0x69, + 0x15, 0xd2, 0x45, 0xe2, 0x41, 0x1a, 0x8d, 0x59, 0x7a, 0xb1, 0x1a, 0x98, 0xc2, 0x7d, 0x39, 0x5d, + 0x20, 0x9b, 0xa2, 0xdd, 0xe0, 0xc9, 0xaf, 0x43, 0x81, 0xd9, 0xcc, 0xab, 0x56, 0x5e, 0xf6, 0x44, + 0xa8, 0x69, 0xb5, 0xb5, 0xf6, 0x64, 0xe2, 0x20, 0xfe, 0x51, 0xb2, 0xac, 0xef, 0x03, 0xb4, 0x83, + 0xbe, 0xf1, 0xa0, 0x26, 0xac, 0xb9, 0x3e, 0xa7, 0xe1, 0x89, 0xed, 0x59, 0xd4, 0x09, 0xfc, 0x2e, + 0x93, 0xde, 0x54, 0x88, 0x87, 0x75, 0x3f, 0x8d, 0xc6, 0x2c, 0x7d, 0xfd, 0x2f, 0x17, 0x60, 0xf9, + 0x71, 0xb3, 0x63, 0x5d, 0xd0, 0x29, 0x13, 0xdb, 0x04, 0xf9, 0x17, 0x6c, 0x13, 0x24, 0xa6, 0x7a, + 0xe1, 0xb5, 0xed, 0xbb, 0x5f, 0xbe, 0x83, 0x6b, 0xc7, 0x29, 0xbe, 0x5a, 0xc7, 0xa9, 0xff, 0x61, + 0x01, 0xae, 0xee, 0x8f, 0xa8, 0xff, 0xc1, 0xc0, 0x65, 0xc7, 0x89, 0xf3, 0x9f, 0x41, 0xc0, 0x78, + 0x36, 0x0d, 0xbd, 0x17, 0x30, 0x8e, 0x12, 0x93, 0xb4, 0xda, 0xfc, 0x0b, 0xac, 0x76, 0x13, 0xca, + 0x22, 0x73, 0x65, 0x23, 0xdb, 0x99, 0xd8, 0x05, 0x79, 0x6c, 0x10, 0x18, 0xd3, 0xc8, 0xbb, 0x08, + 0x63, 0x3e, 0xe8, 0x04, 0xc7, 0xd4, 0x9f, 0xad, 0x46, 0x52, 0x77, 0x11, 0x4c, 0x5b, 0x8c, 0xd9, + 0x90, 0xdb, 0x00, 0x76, 0x7c, 0x2f, 0x42, 0xd5, 0x47, 0x91, 0xc6, 0x9b, 0xf1, 0xad, 0x88, 0x04, + 0x55, 0xd2, 0xd0, 0x16, 0x5f, 0x9b, 0xa1, 0x2d, 0x5d, 0xfa, 0x01, 0x0f, 0x42, 0x25, 0x59, 0xd3, + 0x5f, 0x60, 0xd3, 0xd8, 0x54, 0x2d, 0xf9, 0xe7, 0x55, 0x2d, 0xf5, 0xbf, 0x5a, 0x82, 0x95, 0x83, + 0xb1, 0xc7, 0xec, 0xf0, 0x55, 0x2e, 0xd2, 0xaf, 0xf9, 0xd0, 0x3e, 0x69, 0x20, 0x85, 0x4b, 0x34, + 0x90, 0x11, 0x5c, 0xe7, 0x1e, 0xeb, 0x84, 0x63, 0xc6, 0x5b, 0x34, 0xe4, 0x4c, 0xef, 0x26, 0x14, + 0x67, 0x3e, 0x50, 0xed, 0xb4, 0xad, 0x2c, 0x17, 0x9c, 0xc6, 0x9a, 0x1c, 0xc1, 0x3a, 0xf7, 0x58, + 0xd3, 0xf3, 0x82, 0xa7, 0xf7, 0x7d, 0x95, 0x41, 0xb7, 0x02, 0xdf, 0xa7, 0xd2, 0x57, 0x74, 0xd2, + 0x50, 0xd7, 0xfd, 0x5d, 0xef, 0xb4, 0xad, 0xe7, 0x50, 0xe2, 0x2f, 0xe0, 0x42, 0x1e, 0xc9, 0x51, + 0x3d, 0xb1, 0x3d, 0xb7, 0x6b, 0x73, 0x2a, 0x42, 0x8d, 0xb4, 0xa9, 0x25, 0xc9, 0xfc, 0xcb, 0x9a, + 0xb9, 0xe8, 0x72, 0x96, 0x04, 0xa7, 0xb5, 0xfb, 0x9f, 0xca, 0x33, 0xba, 0xb0, 0x16, 0x05, 0x15, + 0xad, 0xf7, 0xf2, 0xcc, 0x47, 0xcb, 0xcd, 0x34, 0x07, 0xcc, 0xb2, 0x24, 0x3f, 0x80, 0x6b, 0x4e, + 0xa4, 0x19, 0x9d, 0x29, 0xcb, 0xc4, 0x62, 0x9e, 0x6c, 0xfe, 0xc6, 0xf9, 0x59, 0xed, 0x5a, 0x2b, + 0xcb, 0x16, 0x27, 0x25, 0xd5, 0x7f, 0x37, 0x07, 0x65, 0xb4, 0x39, 0x6d, 0xbb, 0x43, 0x97, 0x93, + 0xdb, 0x50, 0x18, 0xfb, 0xae, 0x59, 0x0c, 0x36, 0x8c, 0x77, 0x1f, 0xfa, 0x2e, 0x7f, 0x76, 0x56, + 0x5b, 0x8d, 0x08, 0xa9, 0x80, 0xa0, 0xa4, 0x15, 0x09, 0x84, 0xcc, 0xf8, 0x18, 0x67, 0x07, 0x34, + 0x14, 0x08, 0xe9, 0xc8, 0xc5, 0x38, 0x81, 0xc0, 0x34, 0x1a, 0xb3, 0xf4, 0xf5, 0x9f, 0xe4, 0x61, + 0xd1, 0x92, 0x4e, 0x42, 0xbe, 0x07, 0xa5, 0x21, 0xe5, 0xb6, 0xdc, 0xb5, 0x55, 0x5b, 0x39, 0x6f, + 0x5f, 0xec, 0x70, 0x60, 0x5f, 0x66, 0x0c, 0x8f, 0x28, 0xb7, 0x63, 0x5f, 0x8e, 0x61, 0x18, 0x71, + 0x25, 0x3d, 0x7d, 0x98, 0x99, 0x9f, 0x77, 0x9b, 0x5b, 0xf5, 0xd8, 0x1a, 0x51, 0x67, 0xea, 0xf9, + 0xa5, 0x0f, 0x8b, 0x8c, 0xdb, 0x7c, 0xcc, 0xe6, 0xbf, 0x5a, 0xa3, 0x25, 0x49, 0x6e, 0x89, 0x93, + 0x21, 0xf9, 0x8f, 0x5a, 0x4a, 0xfd, 0x9f, 0x73, 0x00, 0x8a, 0xb0, 0xed, 0x32, 0x4e, 0x7e, 0x6b, + 0x42, 0x91, 0x8d, 0x8b, 0x29, 0x52, 0xb4, 0x96, 0x6a, 0x8c, 0x4a, 0x03, 0x03, 0x49, 0x28, 0x91, + 0x42, 0xd1, 0xe5, 0x74, 0x68, 0xf6, 0x94, 0xdf, 0x9b, 0x77, 0x6c, 0x71, 0xd4, 0xbf, 0x2f, 0xd8, + 0xa2, 0xe2, 0x5e, 0xff, 0x8b, 0x82, 0x19, 0x93, 0x50, 0x2c, 0xf9, 0x51, 0x0e, 0x2a, 0x5d, 0x73, + 0x6c, 0xe1, 0x52, 0x53, 0x77, 0xdf, 0x7f, 0x65, 0x27, 0x27, 0x71, 0x11, 0xb5, 0x93, 0x10, 0x83, + 0x29, 0xa1, 0x24, 0x80, 0x12, 0x57, 0x11, 0xdc, 0x0c, 0xbf, 0x39, 0xf7, 0x5a, 0x90, 0x38, 0xe9, + 0xd4, 0xac, 0x31, 0x12, 0x42, 0xbc, 0xc4, 0xb9, 0xe8, 0xdc, 0x7b, 0xd6, 0xe6, 0x24, 0x55, 0x6d, + 0x55, 0x4e, 0x9e, 0xab, 0x92, 0x07, 0x40, 0x74, 0xdd, 0xbe, 0x67, 0xbb, 0x1e, 0xed, 0x62, 0x30, + 0xf6, 0xd5, 0x36, 0x5b, 0x29, 0xbe, 0x38, 0xb0, 0x3b, 0x41, 0x81, 0x53, 0x5a, 0x89, 0x4a, 0x55, + 0xf6, 0x67, 0x7b, 0xcc, 0x12, 0xc9, 0x58, 0xa4, 0xe4, 0xdd, 0x04, 0x0e, 0x53, 0x94, 0xe4, 0x16, + 0x94, 0x42, 0x3a, 0xf2, 0x5c, 0xc7, 0x56, 0x95, 0x6a, 0xd1, 0x5c, 0x6d, 0x52, 0x30, 0x8c, 0xb0, + 0xf5, 0x00, 0x2a, 0x49, 0xff, 0x20, 0x1f, 0x46, 0x7e, 0xa7, 0xcc, 0xfe, 0x5b, 0xb3, 0xd7, 0x4e, + 0xbf, 0xd8, 0xd1, 0xfe, 0x3e, 0x0f, 0x15, 0xcb, 0xb3, 0x9d, 0x28, 0x85, 0x4e, 0xe7, 0x26, 0xb9, + 0xd7, 0x50, 0x2e, 0x00, 0x93, 0xfd, 0x91, 0x59, 0x74, 0x7e, 0xe6, 0x1b, 0x24, 0x56, 0xd4, 0x18, + 0x13, 0x8c, 0x44, 0xde, 0xef, 0x0c, 0x6c, 0xdf, 0xa7, 0x9e, 0x4e, 0xe5, 0xa3, 0x34, 0xa5, 0xa5, + 0xc0, 0x68, 0xf0, 0x82, 0x74, 0x48, 0x19, 0xb3, 0xfb, 0xe6, 0x84, 0x39, 0x22, 0x7d, 0xa4, 0xc0, + 0x68, 0xf0, 0xf5, 0xff, 0x5a, 0x00, 0x62, 0x71, 0xdb, 0xef, 0xda, 0x61, 0xf7, 0xe1, 0x96, 0xf5, + 0xba, 0xae, 0x93, 0x3e, 0x9e, 0xbc, 0x4e, 0xfa, 0xf6, 0xb4, 0xeb, 0xa4, 0x5f, 0x7e, 0x38, 0x3e, + 0xa2, 0xa1, 0x4f, 0x39, 0x65, 0x66, 0x83, 0xee, 0x7f, 0xe3, 0xa5, 0x52, 0xd2, 0x83, 0x95, 0x91, + 0xcd, 0x9d, 0x81, 0xc5, 0x43, 0x9b, 0xd3, 0xfe, 0xa9, 0x9e, 0x87, 0xf7, 0x74, 0xb3, 0x95, 0x83, + 0x24, 0xf2, 0xd9, 0x59, 0xed, 0xff, 0x3f, 0xef, 0x2e, 0x3a, 0x3f, 0x1d, 0x51, 0xd6, 0x90, 0xe4, + 0xf2, 0x94, 0x3f, 0xcd, 0x56, 0x14, 0x57, 0x9e, 0x7b, 0x42, 0xd5, 0xca, 0x2a, 0xfd, 0xb9, 0x14, + 0xf7, 0xad, 0x1d, 0x61, 0x30, 0x41, 0x55, 0xdf, 0x84, 0x8a, 0x72, 0x21, 0xbd, 0x6f, 0x5a, 0x83, + 0xa2, 0x2d, 0x32, 0x43, 0xe9, 0x2a, 0x45, 0x75, 0x78, 0x26, 0x53, 0x45, 0x54, 0xf0, 0xfa, 0xef, + 0x97, 0x20, 0x8a, 0x4c, 0xc4, 0x99, 0x58, 0xc8, 0x66, 0xbf, 0x1f, 0xf9, 0x48, 0x33, 0x50, 0x41, + 0xc4, 0xfc, 0x25, 0xd6, 0x33, 0x7d, 0x5b, 0xca, 0x75, 0x68, 0xd3, 0x71, 0x82, 0xb1, 0x3e, 0xc7, + 0xcf, 0x4f, 0xde, 0x96, 0x4a, 0x53, 0xe0, 0x94, 0x56, 0xe4, 0x81, 0xbc, 0x89, 0xca, 0x6d, 0xa1, + 0x53, 0x1d, 0xaf, 0xdf, 0x7a, 0xce, 0x4d, 0x54, 0x45, 0x14, 0x5d, 0x3f, 0x55, 0xbf, 0x18, 0x37, + 0x27, 0xbb, 0xb0, 0x74, 0x12, 0x78, 0xe3, 0x21, 0x35, 0xdb, 0x10, 0xeb, 0xd3, 0x38, 0x3d, 0x91, + 0x24, 0x89, 0xba, 0x5c, 0x35, 0x41, 0xd3, 0x96, 0x50, 0x58, 0x93, 0x49, 0xb8, 0xcb, 0x4f, 0xf5, + 0x19, 0xb9, 0x2e, 0x21, 0xbe, 0x3a, 0x8d, 0xdd, 0x41, 0xd0, 0xb5, 0xd2, 0xd4, 0xfa, 0x9a, 0x64, + 0x1a, 0x88, 0x59, 0x9e, 0xe4, 0xc7, 0x39, 0xa8, 0xf8, 0x41, 0x97, 0x9a, 0xf0, 0xa2, 0x6b, 0xe9, + 0xce, 0xfc, 0xab, 0x55, 0xe3, 0x71, 0x82, 0xad, 0xda, 0x14, 0x8f, 0x56, 0x91, 0x24, 0x0a, 0x53, + 0xf2, 0xc9, 0x21, 0x2c, 0xf3, 0xc0, 0xd3, 0x3e, 0x6a, 0x0a, 0xec, 0x8d, 0x69, 0x63, 0xee, 0x44, + 0x64, 0xf1, 0x6d, 0x9a, 0x18, 0xc6, 0x30, 0xc9, 0x87, 0xf8, 0x70, 0xd5, 0x1d, 0xda, 0x7d, 0x7a, + 0x30, 0xf6, 0x3c, 0x15, 0x53, 0xcd, 0x51, 0xca, 0xd4, 0x2b, 0xc7, 0x22, 0x10, 0x79, 0xda, 0x2f, + 0x68, 0x8f, 0x86, 0xd4, 0x77, 0x68, 0x74, 0xdf, 0xea, 0xea, 0xfd, 0x0c, 0x27, 0x9c, 0xe0, 0x4d, + 0xee, 0xc2, 0xb5, 0x51, 0xe8, 0x06, 0x52, 0xd5, 0x9e, 0xcd, 0xd4, 0x5a, 0x5a, 0x96, 0xc6, 0xf9, + 0x25, 0xcd, 0xe6, 0xda, 0x41, 0x96, 0x00, 0x27, 0xdb, 0x88, 0x55, 0xd5, 0x00, 0x65, 0x8d, 0xa1, + 0x57, 0x55, 0xd3, 0x16, 0x23, 0x2c, 0xd9, 0x83, 0x92, 0xdd, 0xeb, 0xb9, 0xbe, 0xa0, 0x5c, 0x96, + 0xa6, 0xf2, 0xe6, 0xb4, 0xa1, 0x35, 0x35, 0x8d, 0xe2, 0x63, 0xfe, 0x30, 0x6a, 0xbb, 0xfe, 0x5d, + 0xb8, 0x36, 0x31, 0x75, 0x33, 0x6d, 0xf9, 0x5b, 0x00, 0xf1, 0x7d, 0x12, 0xf2, 0x15, 0x28, 0x32, + 0x6e, 0x87, 0xa6, 0x42, 0x89, 0xb2, 0x46, 0x4b, 0x00, 0x51, 0xe1, 0xc8, 0x4d, 0x28, 0x30, 0x1e, + 0x8c, 0xb2, 0x7b, 0x14, 0x16, 0x0f, 0x46, 0x28, 0x31, 0xf5, 0xcf, 0x0a, 0xb0, 0x64, 0x56, 0x1e, + 0x96, 0xc8, 0xae, 0x72, 0xf3, 0x1e, 0x5d, 0x6b, 0xa6, 0x2f, 0x4c, 0xb2, 0xd2, 0xcb, 0x45, 0xfe, + 0xd2, 0x97, 0x8b, 0x63, 0x58, 0x1c, 0xc9, 0x60, 0xac, 0x03, 0xd4, 0xdd, 0xf9, 0x65, 0x4b, 0x76, + 0x6a, 0xad, 0x55, 0xdf, 0xa8, 0x45, 0x90, 0x8f, 0x61, 0x25, 0xa4, 0x3c, 0x3c, 0x4d, 0xad, 0x4d, + 0xf3, 0x94, 0xb7, 0xf2, 0xb0, 0x0f, 0x93, 0x2c, 0x31, 0x2d, 0x81, 0x8c, 0xa0, 0x1c, 0x9a, 0x62, + 0x55, 0x87, 0xba, 0xd6, 0xcb, 0x0f, 0x31, 0xaa, 0x7b, 0x55, 0xa4, 0x8e, 0x7e, 0x31, 0x16, 0x52, + 0xff, 0xcf, 0x1c, 0x5c, 0xcd, 0x4e, 0x03, 0x39, 0x86, 0x05, 0x16, 0x3a, 0xda, 0xac, 0x0e, 0x5e, + 0xdd, 0xfc, 0xaa, 0x64, 0x46, 0xed, 0x57, 0x58, 0xa1, 0x83, 0x42, 0x8a, 0x30, 0xfb, 0x2e, 0x65, + 0x3c, 0x6b, 0xf6, 0x3b, 0x94, 0x71, 0x94, 0x18, 0xd2, 0x4e, 0x26, 0x3d, 0x2a, 0xa7, 0x6b, 0x4c, + 0x4b, 0x7a, 0xbe, 0x94, 0x95, 0x37, 0x2d, 0xe5, 0xa9, 0xff, 0x4b, 0x1e, 0xbe, 0x38, 0xbd, 0x63, + 0xe4, 0x3b, 0xb0, 0x1a, 0x95, 0x4c, 0xa7, 0x89, 0xe7, 0x69, 0xd1, 0xc9, 0xd1, 0x4e, 0x0a, 0x8b, + 0x19, 0x6a, 0x91, 0x65, 0xe8, 0x2b, 0x5c, 0xe6, 0x8d, 0x5a, 0x62, 0x0b, 0xb7, 0x15, 0x61, 0x30, + 0x41, 0x45, 0x9a, 0xb0, 0xa6, 0xff, 0x3a, 0xc9, 0x62, 0x29, 0x71, 0x3e, 0xd3, 0x4a, 0xa3, 0x31, + 0x4b, 0x2f, 0xd2, 0x58, 0x91, 0x0d, 0x98, 0x47, 0x04, 0x89, 0x34, 0x76, 0x47, 0x81, 0xd1, 0xe0, + 0x45, 0x65, 0x23, 0x3e, 0x3b, 0xe9, 0xfb, 0xaa, 0x71, 0xf9, 0x98, 0xc0, 0x61, 0x8a, 0x32, 0xbe, + 0x48, 0xab, 0x6e, 0xe3, 0x4c, 0x5c, 0xa4, 0xad, 0xff, 0x2c, 0x07, 0x2b, 0x29, 0xa7, 0x22, 0x3d, + 0x58, 0x38, 0xde, 0x32, 0xf5, 0xcc, 0xc3, 0x57, 0x78, 0xca, 0xac, 0x2c, 0xe8, 0xe1, 0x16, 0x43, + 0x21, 0x80, 0x7c, 0x14, 0x95, 0x4e, 0x73, 0x5f, 0xce, 0x4b, 0x26, 0x7c, 0x3a, 0x01, 0x4f, 0x57, + 0x51, 0xff, 0x58, 0x81, 0xb5, 0x4c, 0xb4, 0xbc, 0xc0, 0x95, 0x18, 0x65, 0x18, 0xfa, 0x12, 0xff, + 0x14, 0xc3, 0x30, 0xd7, 0xfb, 0x13, 0x54, 0xa4, 0xaf, 0xb4, 0xa7, 0x02, 0x5d, 0x7b, 0xae, 0x21, + 0x65, 0xaa, 0x96, 0x8c, 0xfa, 0x7e, 0x94, 0x83, 0x8a, 0x9d, 0x78, 0x7d, 0xa6, 0xe3, 0xdc, 0xa3, + 0x79, 0x4a, 0x99, 0x89, 0x87, 0x77, 0xea, 0x72, 0x58, 0x12, 0x81, 0x29, 0xa1, 0xc4, 0x81, 0xc2, + 0x80, 0x73, 0xf3, 0x06, 0x6a, 0xf7, 0x95, 0xdc, 0xed, 0x50, 0x67, 0x88, 0x02, 0x80, 0x92, 0x39, + 0x79, 0x0a, 0x65, 0xfb, 0x29, 0x53, 0x2f, 0x52, 0xf5, 0xe3, 0xa8, 0x79, 0x2a, 0xb6, 0xcc, 0xe3, + 0x56, 0x7d, 0xb8, 0x63, 0xa0, 0x18, 0xcb, 0x22, 0x21, 0x2c, 0x3a, 0xf2, 0x11, 0x81, 0xbe, 0x22, + 0x73, 0xf7, 0x15, 0x3d, 0x46, 0x50, 0x6b, 0x4a, 0x0a, 0x84, 0x5a, 0x12, 0xe9, 0x43, 0xf1, 0xd8, + 0xee, 0x1d, 0xdb, 0x7a, 0x87, 0x79, 0x0e, 0xaf, 0x48, 0xde, 0x5d, 0x50, 0x9e, 0x2f, 0x21, 0xa8, + 0xf8, 0x8b, 0xa9, 0xf3, 0x6d, 0xce, 0xf4, 0x36, 0xf3, 0x1c, 0x53, 0x97, 0x38, 0x8d, 0x55, 0x53, + 0x27, 0x00, 0x28, 0x99, 0x8b, 0xd1, 0xc8, 0x22, 0x5f, 0x6f, 0x32, 0xcf, 0xe3, 0xe3, 0x89, 0x4d, + 0x10, 0x35, 0x1a, 0x09, 0x41, 0xc5, 0x5f, 0xd8, 0x48, 0x60, 0x4e, 0x1b, 0x75, 0x0e, 0x39, 0x87, + 0x8d, 0x64, 0x0f, 0x2e, 0x95, 0x8d, 0x44, 0x50, 0x8c, 0x65, 0x91, 0x0f, 0x61, 0xc1, 0x0b, 0xfa, + 0xfa, 0xe8, 0x7c, 0x8e, 0x0d, 0xde, 0xf8, 0x94, 0x5c, 0x39, 0x7a, 0x3b, 0xe8, 0xa3, 0xe0, 0x4c, + 0xfe, 0x20, 0x07, 0xab, 0x76, 0xea, 0x35, 0x5d, 0x75, 0x65, 0xde, 0x3b, 0xdc, 0x53, 0x5f, 0xe7, + 0xa9, 0xc7, 0xbc, 0x69, 0x14, 0x66, 0x44, 0xcb, 0x5c, 0x4e, 0x9e, 0xb7, 0x55, 0x57, 0xe7, 0x75, + 0x89, 0xd4, 0xb9, 0x9d, 0xce, 0xe5, 0x24, 0x08, 0xb5, 0x08, 0xf2, 0xc7, 0x39, 0xb9, 0xcc, 0x26, + 0x9f, 0x51, 0x55, 0xd7, 0xe6, 0x7e, 0x16, 0x34, 0xfd, 0xe9, 0x57, 0x6a, 0xe5, 0x4e, 0x12, 0x60, + 0xb6, 0x0b, 0x75, 0x07, 0x96, 0x13, 0x4f, 0x43, 0x2f, 0x70, 0x8e, 0x79, 0x1b, 0xe0, 0x84, 0x86, + 0x6e, 0xef, 0xb4, 0x45, 0x43, 0xae, 0x5f, 0x68, 0x45, 0x0b, 0xc9, 0x93, 0x08, 0x83, 0x09, 0xaa, + 0xed, 0xc6, 0xa7, 0x9f, 0x6f, 0x5c, 0xf9, 0xec, 0xf3, 0x8d, 0x2b, 0x3f, 0xfd, 0x7c, 0xe3, 0xca, + 0x0f, 0xcf, 0x37, 0x72, 0x9f, 0x9e, 0x6f, 0xe4, 0x3e, 0x3b, 0xdf, 0xc8, 0xfd, 0xf4, 0x7c, 0x23, + 0xf7, 0x6f, 0xe7, 0x1b, 0xb9, 0x3f, 0xfa, 0xd9, 0xc6, 0x95, 0xdf, 0x28, 0x99, 0x61, 0xfd, 0x77, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x7d, 0xb4, 0x34, 0x6f, 0x41, 0x00, 0x00, } func (m *AWSLambdaTrigger) Marshal() (dAtA []byte, err error) { @@ -1530,6 +1531,11 @@ func (m *AWSLambdaTrigger) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i -= len(m.RoleARN) + copy(dAtA[i:], m.RoleARN) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RoleARN))) + i-- + dAtA[i] = 0x42 if m.InvocationType != nil { i -= len(*m.InvocationType) copy(dAtA[i:], *m.InvocationType) @@ -4276,6 +4282,8 @@ func (m *AWSLambdaTrigger) Size() (n int) { l = len(*m.InvocationType) n += 1 + l + sovGenerated(uint64(l)) } + l = len(m.RoleARN) + n += 1 + l + sovGenerated(uint64(l)) return n } @@ -5292,6 +5300,7 @@ func (this *AWSLambdaTrigger) String() string { `Payload:` + repeatedStringForPayload + `,`, `Parameters:` + repeatedStringForParameters + `,`, `InvocationType:` + valueToStringGenerated(this.InvocationType) + `,`, + `RoleARN:` + fmt.Sprintf("%v", this.RoleARN) + `,`, `}`, }, "") return s @@ -6271,6 +6280,38 @@ func (m *AWSLambdaTrigger) Unmarshal(dAtA []byte) error { s := string(dAtA[iNdEx:postIndex]) m.InvocationType = &s iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleARN", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RoleARN = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/sensor/v1alpha1/generated.proto b/pkg/apis/sensor/v1alpha1/generated.proto index d8c0342354..5b7ba7d719 100644 --- a/pkg/apis/sensor/v1alpha1/generated.proto +++ b/pkg/apis/sensor/v1alpha1/generated.proto @@ -35,9 +35,11 @@ message AWSLambdaTrigger { optional string functionName = 1; // AccessKey refers K8s secret containing aws access key + // +optional optional k8s.io.api.core.v1.SecretKeySelector accessKey = 2; // SecretKey refers K8s secret containing aws secret key + // +optional optional k8s.io.api.core.v1.SecretKeySelector secretKey = 3; // Region is AWS region @@ -65,6 +67,10 @@ message AWSLambdaTrigger { // has permission to invoke the function. // +optional optional string invocationType = 7; + + // RoleARN is the Amazon Resource Name (ARN) of the role to assume. + // +optional + optional string roleARN = 8; } // ArgoWorkflowTrigger is the trigger for the Argo Workflow diff --git a/pkg/apis/sensor/v1alpha1/openapi_generated.go b/pkg/apis/sensor/v1alpha1/openapi_generated.go index d37a955c58..2e5512e9b7 100644 --- a/pkg/apis/sensor/v1alpha1/openapi_generated.go +++ b/pkg/apis/sensor/v1alpha1/openapi_generated.go @@ -144,6 +144,13 @@ func schema_pkg_apis_sensor_v1alpha1_AWSLambdaTrigger(ref common.ReferenceCallba Format: "", }, }, + "roleARN": { + SchemaProps: spec.SchemaProps{ + Description: "RoleARN is the Amazon Resource Name (ARN) of the role to assume.", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"functionName", "region", "payload"}, }, diff --git a/pkg/apis/sensor/v1alpha1/types.go b/pkg/apis/sensor/v1alpha1/types.go index 2e321c381d..e05c44621b 100644 --- a/pkg/apis/sensor/v1alpha1/types.go +++ b/pkg/apis/sensor/v1alpha1/types.go @@ -444,8 +444,10 @@ type AWSLambdaTrigger struct { // FunctionName refers to the name of the function to invoke. FunctionName string `json:"functionName" protobuf:"bytes,1,opt,name=functionName"` // AccessKey refers K8s secret containing aws access key + // +optional AccessKey *corev1.SecretKeySelector `json:"accessKey,omitempty" protobuf:"bytes,2,opt,name=accessKey"` // SecretKey refers K8s secret containing aws secret key + // +optional SecretKey *corev1.SecretKeySelector `json:"secretKey,omitempty" protobuf:"bytes,3,opt,name=secretKey"` // Region is AWS region Region string `json:"region" protobuf:"bytes,4,opt,name=region"` @@ -469,6 +471,9 @@ type AWSLambdaTrigger struct { // has permission to invoke the function. // +optional InvocationType *string `json:"invocationType,omitempty" protobuf:"bytes,7,opt,name=invocationType"` + // RoleARN is the Amazon Resource Name (ARN) of the role to assume. + // +optional + RoleARN string `json:"roleARN,omitempty" protobuf:"bytes,8,opt,name=roleARN"` } // AzureEventHubsTrigger refers to specification of the Azure Event Hubs Trigger diff --git a/sensors/artifacts/s3.go b/sensors/artifacts/s3.go index 7bf7eff60c..cee0f95593 100644 --- a/sensors/artifacts/s3.go +++ b/sensors/artifacts/s3.go @@ -17,10 +17,12 @@ limitations under the License. package artifacts import ( + "context" "fmt" "io/ioutil" - "github.com/minio/minio-go" + "github.com/minio/minio-go/v7" + "github.com/minio/minio-go/v7/pkg/credentials" "github.com/argoproj/argo-events/common/logging" apicommon "github.com/argoproj/argo-events/pkg/apis/common" @@ -49,7 +51,7 @@ func NewS3Reader(s3 *apicommon.S3Artifact, creds *Credentials) (ArtifactReader, func (reader *S3Reader) Read() ([]byte, error) { log := logging.NewArgoEventsLogger() log.Debugf("reading s3Artifact from %s/%s", reader.s3.Bucket.Name, reader.s3.Bucket.Key) - obj, err := reader.client.GetObject(reader.s3.Bucket.Name, reader.s3.Bucket.Key, minio.GetObjectOptions{}) + obj, err := reader.client.GetObject(context.Background(), reader.s3.Bucket.Name, reader.s3.Bucket.Key, minio.GetObjectOptions{}) if err != nil { return nil, err } @@ -71,9 +73,11 @@ func NewMinioClient(s3 *apicommon.S3Artifact, creds Credentials) (*minio.Client, var minioClient *minio.Client var err error if s3.Region != "" { - minioClient, err = minio.NewWithRegion(s3.Endpoint, creds.accessKey, creds.secretKey, !s3.Insecure, s3.Region) + minioClient, err = minio.New(s3.Endpoint, &minio.Options{ + Creds: credentials.NewStaticV4(creds.accessKey, creds.secretKey, ""), Secure: !s3.Insecure, Region: s3.Region}) } else { - minioClient, err = minio.New(s3.Endpoint, creds.accessKey, creds.secretKey, !s3.Insecure) + minioClient, err = minio.New(s3.Endpoint, &minio.Options{ + Creds: credentials.NewStaticV4(creds.accessKey, creds.secretKey, ""), Secure: !s3.Insecure}) } if err != nil { return nil, err diff --git a/sensors/triggers/aws-lambda/aws-lambda.go b/sensors/triggers/aws-lambda/aws-lambda.go index 8ae48e33c5..ccbabf63d2 100644 --- a/sensors/triggers/aws-lambda/aws-lambda.go +++ b/sensors/triggers/aws-lambda/aws-lambda.go @@ -50,7 +50,7 @@ func NewAWSLambdaTrigger(lambdaClients map[string]*lambda.Lambda, sensor *v1alph lambdaClient, ok := lambdaClients[trigger.Template.Name] if !ok { - awsSession, err := commonaws.CreateAWSSessionWithCredsInVolume(lambdatrigger.Region, "", lambdatrigger.AccessKey, lambdatrigger.SecretKey) + awsSession, err := commonaws.CreateAWSSessionWithCredsInVolume(lambdatrigger.Region, lambdatrigger.RoleARN, lambdatrigger.AccessKey, lambdatrigger.SecretKey) if err != nil { return nil, errors.Wrap(err, "failed to create a AWS session") } diff --git a/sensors/triggers/aws-lambda/aws-lambda_test.go b/sensors/triggers/aws-lambda/aws-lambda_test.go index 4e224ef0ac..543f9df3d0 100644 --- a/sensors/triggers/aws-lambda/aws-lambda_test.go +++ b/sensors/triggers/aws-lambda/aws-lambda_test.go @@ -29,7 +29,7 @@ import ( "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1" ) -var sensorObj = &v1alpha1.Sensor{ +var sensorObjSparse = &v1alpha1.Sensor{ ObjectMeta: metav1.ObjectMeta{ Name: "fake-sensor", Namespace: "fake", @@ -38,7 +38,27 @@ var sensorObj = &v1alpha1.Sensor{ Triggers: []v1alpha1.Trigger{ { Template: &v1alpha1.TriggerTemplate{ - Name: "fake-trigger", + Name: "fake-trigger-sparse", + AWSLambda: &v1alpha1.AWSLambdaTrigger{ + FunctionName: "fake-function", + Region: "us-east", + }, + }, + }, + }, + }, +} + +var sensorObjFull = &v1alpha1.Sensor{ + ObjectMeta: metav1.ObjectMeta{ + Name: "fake-sensor", + Namespace: "fake", + }, + Spec: v1alpha1.SensorSpec{ + Triggers: []v1alpha1.Trigger{ + { + Template: &v1alpha1.TriggerTemplate{ + Name: "fake-trigger-full", AWSLambda: &v1alpha1.AWSLambdaTrigger{ FunctionName: "fake-function", AccessKey: &corev1.SecretKeySelector{ @@ -53,7 +73,17 @@ var sensorObj = &v1alpha1.Sensor{ }, Key: "secretkey", }, - Region: "us-east", + Region: "us-east", + RoleARN: "arn:aws:iam::123456789012:role/fake-trigger-full", + Payload: []v1alpha1.TriggerParameter{ + { + Src: &v1alpha1.TriggerParameterSource{ + DependencyName: "fake-dependency", + Value: new(string), + }, + Dest: "metadata.label.value", + }, + }, }, }, }, @@ -61,84 +91,98 @@ var sensorObj = &v1alpha1.Sensor{ }, } -func getAWSTrigger() *AWSLambdaTrigger { - return &AWSLambdaTrigger{ - LambdaClient: nil, - Sensor: sensorObj.DeepCopy(), - Trigger: &sensorObj.Spec.Triggers[0], - Logger: logging.NewArgoEventsLogger(), +func getAWSTriggers() []AWSLambdaTrigger { + return []AWSLambdaTrigger{ + { + LambdaClient: nil, + Sensor: sensorObjSparse.DeepCopy(), + Trigger: &sensorObjSparse.Spec.Triggers[0], + Logger: logging.NewArgoEventsLogger(), + }, + { + LambdaClient: nil, + Sensor: sensorObjFull.DeepCopy(), + Trigger: &sensorObjFull.Spec.Triggers[0], + Logger: logging.NewArgoEventsLogger(), + }, } } func TestAWSLambdaTrigger_FetchResource(t *testing.T) { - trigger := getAWSTrigger() - resource, err := trigger.FetchResource(context.TODO()) - assert.Nil(t, err) - assert.NotNil(t, resource) - - at, ok := resource.(*v1alpha1.AWSLambdaTrigger) - assert.Nil(t, err) - assert.Equal(t, true, ok) - assert.Equal(t, "fake-function", at.FunctionName) + triggers := getAWSTriggers() + for _, trigger := range triggers { + resource, err := trigger.FetchResource(context.TODO()) + assert.Nil(t, err) + assert.NotNil(t, resource) + + at, ok := resource.(*v1alpha1.AWSLambdaTrigger) + assert.Nil(t, err) + assert.Equal(t, true, ok) + assert.Equal(t, "fake-function", at.FunctionName) + } } func TestAWSLambdaTrigger_ApplyResourceParameters(t *testing.T) { - trigger := getAWSTrigger() - testEvents := map[string]*v1alpha1.Event{ - "fake-dependency": { - Context: &v1alpha1.EventContext{ - ID: "1", - Type: "webhook", - Source: "webhook-gateway", - DataContentType: "application/json", - SpecVersion: cloudevents.VersionV1, - Subject: "example-1", + triggers := getAWSTriggers() + for _, trigger := range triggers { + testEvents := map[string]*v1alpha1.Event{ + "fake-dependency": { + Context: &v1alpha1.EventContext{ + ID: "1", + Type: "webhook", + Source: "webhook-gateway", + DataContentType: "application/json", + SpecVersion: cloudevents.VersionV1, + Subject: "example-1", + }, + Data: []byte(`{"function": "real-function"}`), }, - Data: []byte(`{"function": "real-function"}`), - }, - } + } - defaultValue := "default" - defaultRegion := "region" + defaultValue := "default" + defaultRegion := "region" - trigger.Trigger.Template.AWSLambda.Parameters = []v1alpha1.TriggerParameter{ - { - Src: &v1alpha1.TriggerParameterSource{ - DependencyName: "fake-dependency", - DataKey: "function", - Value: &defaultValue, + trigger.Trigger.Template.AWSLambda.Parameters = []v1alpha1.TriggerParameter{ + { + Src: &v1alpha1.TriggerParameterSource{ + DependencyName: "fake-dependency", + DataKey: "function", + Value: &defaultValue, + }, + Dest: "functionName", }, - Dest: "functionName", - }, - { - Src: &v1alpha1.TriggerParameterSource{ - DependencyName: "fake-dependency", - DataKey: "region", - Value: &defaultRegion, + { + Src: &v1alpha1.TriggerParameterSource{ + DependencyName: "fake-dependency", + DataKey: "region", + Value: &defaultRegion, + }, + Dest: "region", }, - Dest: "region", - }, - } + } - response, err := trigger.ApplyResourceParameters(testEvents, trigger.Trigger.Template.AWSLambda) - assert.Nil(t, err) - assert.NotNil(t, response) + response, err := trigger.ApplyResourceParameters(testEvents, trigger.Trigger.Template.AWSLambda) + assert.Nil(t, err) + assert.NotNil(t, response) - updatedObj, ok := response.(*v1alpha1.AWSLambdaTrigger) - assert.Equal(t, true, ok) - assert.Equal(t, "real-function", updatedObj.FunctionName) - assert.Equal(t, "region", updatedObj.Region) + updatedObj, ok := response.(*v1alpha1.AWSLambdaTrigger) + assert.Equal(t, true, ok) + assert.Equal(t, "real-function", updatedObj.FunctionName) + assert.Equal(t, "region", updatedObj.Region) + } } func TestAWSLambdaTrigger_ApplyPolicy(t *testing.T) { - trigger := getAWSTrigger() - status := int64(200) - response := &lambda.InvokeOutput{ - StatusCode: &status, - } - trigger.Trigger.Policy = &v1alpha1.TriggerPolicy{ - Status: &v1alpha1.StatusPolicy{Allow: []int32{200, 300}}, + triggers := getAWSTriggers() + for _, trigger := range triggers { + status := int64(200) + response := &lambda.InvokeOutput{ + StatusCode: &status, + } + trigger.Trigger.Policy = &v1alpha1.TriggerPolicy{ + Status: &v1alpha1.StatusPolicy{Allow: []int32{200, 300}}, + } + err := trigger.ApplyPolicy(context.TODO(), response) + assert.Nil(t, err) } - err := trigger.ApplyPolicy(context.TODO(), response) - assert.Nil(t, err) }