diff --git a/vendor.conf b/vendor.conf index 805f89626e..6e2898655f 100644 --- a/vendor.conf +++ b/vendor.conf @@ -128,7 +128,7 @@ github.com/containerd/ttrpc 2a805f71863501300ae1976d29f0454ae003e85a github.com/gogo/googleapis 08a7655d27152912db7aaf4f983275eaf8d128ef # cluster -github.com/docker/swarmkit ebfb0aa1118ebfd35a224d72a5d337ce0addd907 +github.com/docker/swarmkit 415dc72789e2b733ea884f09188c286ca187d8ec github.com/gogo/protobuf v1.0.0 github.com/cloudflare/cfssl 1.3.2 github.com/fernet/fernet-go 1b2437bc582b3cfbb341ee5a29f8ef5b42912ff2 diff --git a/vendor/github.com/docker/swarmkit/api/ca.pb.go b/vendor/github.com/docker/swarmkit/api/ca.pb.go index 206ba213a5..d0463aa888 100644 --- a/vendor/github.com/docker/swarmkit/api/ca.pb.go +++ b/vendor/github.com/docker/swarmkit/api/ca.pb.go @@ -86,6 +86,22 @@ CreateConfigResponse RemoveConfigRequest RemoveConfigResponse + CreateExtensionRequest + CreateExtensionResponse + RemoveExtensionRequest + RemoveExtensionResponse + GetExtensionRequest + GetExtensionResponse + CreateResourceRequest + CreateResourceResponse + RemoveResourceRequest + RemoveResourceResponse + UpdateResourceRequest + UpdateResourceResponse + GetResourceRequest + GetResourceResponse + ListResourcesRequest + ListResourcesResponse SessionRequest SessionMessage HeartbeatRequest diff --git a/vendor/github.com/docker/swarmkit/api/control.pb.go b/vendor/github.com/docker/swarmkit/api/control.pb.go index 25f0c854cf..f0514ace9e 100644 --- a/vendor/github.com/docker/swarmkit/api/control.pb.go +++ b/vendor/github.com/docker/swarmkit/api/control.pb.go @@ -7,6 +7,7 @@ import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" +import google_protobuf4 "github.com/gogo/protobuf/types" import _ "github.com/docker/swarmkit/protobuf/plugin" import deepcopy "github.com/docker/swarmkit/api/deepcopy" @@ -712,6 +713,184 @@ func (m *RemoveConfigResponse) Reset() { *m = RemoveConfigRes func (*RemoveConfigResponse) ProtoMessage() {} func (*RemoveConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{58} } +// CreateExtensionRequest creates a new extension as specified by the provided +// parameters +type CreateExtensionRequest struct { + Annotations *Annotations `protobuf:"bytes,1,opt,name=annotations" json:"annotations,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *CreateExtensionRequest) Reset() { *m = CreateExtensionRequest{} } +func (*CreateExtensionRequest) ProtoMessage() {} +func (*CreateExtensionRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{59} } + +// CreateExtensionResponse contains the newly created `Extension` corresponding +// to the parameters in the CreateExtensionRequest. +type CreateExtensionResponse struct { + Extension *Extension `protobuf:"bytes,1,opt,name=extension" json:"extension,omitempty"` +} + +func (m *CreateExtensionResponse) Reset() { *m = CreateExtensionResponse{} } +func (*CreateExtensionResponse) ProtoMessage() {} +func (*CreateExtensionResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{60} } + +// RemoveExtensionRequest contains the ID of the extension that should be removed. This +// removes all versions of the extension. +type RemoveExtensionRequest struct { + ExtensionID string `protobuf:"bytes,1,opt,name=extension_id,json=extensionId,proto3" json:"extension_id,omitempty"` +} + +func (m *RemoveExtensionRequest) Reset() { *m = RemoveExtensionRequest{} } +func (*RemoveExtensionRequest) ProtoMessage() {} +func (*RemoveExtensionRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{61} } + +// RemoveExtensionResponse is an empty object indicating the successful removal +// of an extension. +type RemoveExtensionResponse struct { +} + +func (m *RemoveExtensionResponse) Reset() { *m = RemoveExtensionResponse{} } +func (*RemoveExtensionResponse) ProtoMessage() {} +func (*RemoveExtensionResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{62} } + +// GetResourceRequest is the request to get a Extension object given a extension id. +type GetExtensionRequest struct { + ExtensionID string `protobuf:"bytes,1,opt,name=extension_id,json=extensionId,proto3" json:"extension_id,omitempty"` +} + +func (m *GetExtensionRequest) Reset() { *m = GetExtensionRequest{} } +func (*GetExtensionRequest) ProtoMessage() {} +func (*GetExtensionRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{63} } + +// GetExtensionResponse contains the Extension corresponding to the id in +// `GetExtensionRequest`. +type GetExtensionResponse struct { + Extension *Extension `protobuf:"bytes,1,opt,name=extension" json:"extension,omitempty"` +} + +func (m *GetExtensionResponse) Reset() { *m = GetExtensionResponse{} } +func (*GetExtensionResponse) ProtoMessage() {} +func (*GetExtensionResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{64} } + +// CreateResourceRequest creates a new resource specified by the included +// resource object. An existing resource will not be updated. +type CreateResourceRequest struct { + Annotations *Annotations `protobuf:"bytes,1,opt,name=annotations" json:"annotations,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + Payload *google_protobuf4.Any `protobuf:"bytes,3,opt,name=payload" json:"payload,omitempty"` +} + +func (m *CreateResourceRequest) Reset() { *m = CreateResourceRequest{} } +func (*CreateResourceRequest) ProtoMessage() {} +func (*CreateResourceRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{65} } + +// CreateResourceResponse contains the newly created `Resource` corresponding +// to the resource in the CreateResourceRequest. +type CreateResourceResponse struct { + Resource *Resource `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"` +} + +func (m *CreateResourceResponse) Reset() { *m = CreateResourceResponse{} } +func (*CreateResourceResponse) ProtoMessage() {} +func (*CreateResourceResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{66} } + +// RemoveResourceRequest contains the ID of the resource that should be removed. This +// removes all versions of the resource. +type RemoveResourceRequest struct { + ResourceID string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` +} + +func (m *RemoveResourceRequest) Reset() { *m = RemoveResourceRequest{} } +func (*RemoveResourceRequest) ProtoMessage() {} +func (*RemoveResourceRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{67} } + +// RemoveResourceResponse is an empty object indicating the successful removal +// of a resource. +type RemoveResourceResponse struct { +} + +func (m *RemoveResourceResponse) Reset() { *m = RemoveResourceResponse{} } +func (*RemoveResourceResponse) ProtoMessage() {} +func (*RemoveResourceResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{68} } + +// UpdateResourceRequest updates the resource specified by the given resource object. +type UpdateResourceRequest struct { + ResourceID string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` + ResourceVersion *Version `protobuf:"bytes,2,opt,name=resource_version,json=resourceVersion" json:"resource_version,omitempty"` + // Annotations describes the annotations to update. If the Annotations should + // be unchanged, then this field should be left empty. Note that the name of + // a Resource cannot be changed, only its labels. + Annotations *Annotations `protobuf:"bytes,3,opt,name=annotations" json:"annotations,omitempty"` + // Payload describes the new payload of the resource. If the Payload should + // be unchanged, then this field should be left empty. + Payload *google_protobuf4.Any `protobuf:"bytes,4,opt,name=payload" json:"payload,omitempty"` +} + +func (m *UpdateResourceRequest) Reset() { *m = UpdateResourceRequest{} } +func (*UpdateResourceRequest) ProtoMessage() {} +func (*UpdateResourceRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{69} } + +type UpdateResourceResponse struct { + Resource *Resource `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"` +} + +func (m *UpdateResourceResponse) Reset() { *m = UpdateResourceResponse{} } +func (*UpdateResourceResponse) ProtoMessage() {} +func (*UpdateResourceResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{70} } + +// GetResourceRequest is the request to get a Resource object given a resource id. +type GetResourceRequest struct { + ResourceID string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` +} + +func (m *GetResourceRequest) Reset() { *m = GetResourceRequest{} } +func (*GetResourceRequest) ProtoMessage() {} +func (*GetResourceRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{71} } + +// GetResourceResponse contains the Resource corresponding to the id in +// `GetResourceRequest`. +type GetResourceResponse struct { + Resource *Resource `protobuf:"bytes,1,opt,name=resource" json:"resource,omitempty"` +} + +func (m *GetResourceResponse) Reset() { *m = GetResourceResponse{} } +func (*GetResourceResponse) ProtoMessage() {} +func (*GetResourceResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{72} } + +// ListResourcesRequest is the request to list all resources in the raft store, +// or all resources filtered by (name or name prefix or id prefix), labels and extension. +type ListResourcesRequest struct { + Filters *ListResourcesRequest_Filters `protobuf:"bytes,1,opt,name=filters" json:"filters,omitempty"` +} + +func (m *ListResourcesRequest) Reset() { *m = ListResourcesRequest{} } +func (*ListResourcesRequest) ProtoMessage() {} +func (*ListResourcesRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{73} } + +type ListResourcesRequest_Filters struct { + Names []string `protobuf:"bytes,1,rep,name=names" json:"names,omitempty"` + IDPrefixes []string `protobuf:"bytes,2,rep,name=id_prefixes,json=idPrefixes" json:"id_prefixes,omitempty"` + Labels map[string]string `protobuf:"bytes,3,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + NamePrefixes []string `protobuf:"bytes,4,rep,name=name_prefixes,json=namePrefixes" json:"name_prefixes,omitempty"` + Kind string `protobuf:"bytes,5,opt,name=kind,proto3" json:"kind,omitempty"` +} + +func (m *ListResourcesRequest_Filters) Reset() { *m = ListResourcesRequest_Filters{} } +func (*ListResourcesRequest_Filters) ProtoMessage() {} +func (*ListResourcesRequest_Filters) Descriptor() ([]byte, []int) { + return fileDescriptorControl, []int{73, 0} +} + +// ListResourcesResponse contains a list of all the resources that match the name or +// name prefix filters provided in `ListResourcesRequest`. +type ListResourcesResponse struct { + Resources []*Resource `protobuf:"bytes,1,rep,name=resources" json:"resources,omitempty"` +} + +func (m *ListResourcesResponse) Reset() { *m = ListResourcesResponse{} } +func (*ListResourcesResponse) ProtoMessage() {} +func (*ListResourcesResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{74} } + func init() { proto.RegisterType((*GetNodeRequest)(nil), "docker.swarmkit.v1.GetNodeRequest") proto.RegisterType((*GetNodeResponse)(nil), "docker.swarmkit.v1.GetNodeResponse") @@ -779,6 +958,23 @@ func init() { proto.RegisterType((*CreateConfigResponse)(nil), "docker.swarmkit.v1.CreateConfigResponse") proto.RegisterType((*RemoveConfigRequest)(nil), "docker.swarmkit.v1.RemoveConfigRequest") proto.RegisterType((*RemoveConfigResponse)(nil), "docker.swarmkit.v1.RemoveConfigResponse") + proto.RegisterType((*CreateExtensionRequest)(nil), "docker.swarmkit.v1.CreateExtensionRequest") + proto.RegisterType((*CreateExtensionResponse)(nil), "docker.swarmkit.v1.CreateExtensionResponse") + proto.RegisterType((*RemoveExtensionRequest)(nil), "docker.swarmkit.v1.RemoveExtensionRequest") + proto.RegisterType((*RemoveExtensionResponse)(nil), "docker.swarmkit.v1.RemoveExtensionResponse") + proto.RegisterType((*GetExtensionRequest)(nil), "docker.swarmkit.v1.GetExtensionRequest") + proto.RegisterType((*GetExtensionResponse)(nil), "docker.swarmkit.v1.GetExtensionResponse") + proto.RegisterType((*CreateResourceRequest)(nil), "docker.swarmkit.v1.CreateResourceRequest") + proto.RegisterType((*CreateResourceResponse)(nil), "docker.swarmkit.v1.CreateResourceResponse") + proto.RegisterType((*RemoveResourceRequest)(nil), "docker.swarmkit.v1.RemoveResourceRequest") + proto.RegisterType((*RemoveResourceResponse)(nil), "docker.swarmkit.v1.RemoveResourceResponse") + proto.RegisterType((*UpdateResourceRequest)(nil), "docker.swarmkit.v1.UpdateResourceRequest") + proto.RegisterType((*UpdateResourceResponse)(nil), "docker.swarmkit.v1.UpdateResourceResponse") + proto.RegisterType((*GetResourceRequest)(nil), "docker.swarmkit.v1.GetResourceRequest") + proto.RegisterType((*GetResourceResponse)(nil), "docker.swarmkit.v1.GetResourceResponse") + proto.RegisterType((*ListResourcesRequest)(nil), "docker.swarmkit.v1.ListResourcesRequest") + proto.RegisterType((*ListResourcesRequest_Filters)(nil), "docker.swarmkit.v1.ListResourcesRequest.Filters") + proto.RegisterType((*ListResourcesResponse)(nil), "docker.swarmkit.v1.ListResourcesResponse") proto.RegisterEnum("docker.swarmkit.v1.UpdateServiceRequest_Rollback", UpdateServiceRequest_Rollback_name, UpdateServiceRequest_Rollback_value) } @@ -1026,6 +1222,70 @@ func (p *authenticatedWrapperControlServer) RemoveConfig(ctx context.Context, r return p.local.RemoveConfig(ctx, r) } +func (p *authenticatedWrapperControlServer) GetExtension(ctx context.Context, r *GetExtensionRequest) (*GetExtensionResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.GetExtension(ctx, r) +} + +func (p *authenticatedWrapperControlServer) CreateExtension(ctx context.Context, r *CreateExtensionRequest) (*CreateExtensionResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.CreateExtension(ctx, r) +} + +func (p *authenticatedWrapperControlServer) RemoveExtension(ctx context.Context, r *RemoveExtensionRequest) (*RemoveExtensionResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.RemoveExtension(ctx, r) +} + +func (p *authenticatedWrapperControlServer) GetResource(ctx context.Context, r *GetResourceRequest) (*GetResourceResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.GetResource(ctx, r) +} + +func (p *authenticatedWrapperControlServer) UpdateResource(ctx context.Context, r *UpdateResourceRequest) (*UpdateResourceResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.UpdateResource(ctx, r) +} + +func (p *authenticatedWrapperControlServer) ListResources(ctx context.Context, r *ListResourcesRequest) (*ListResourcesResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.ListResources(ctx, r) +} + +func (p *authenticatedWrapperControlServer) CreateResource(ctx context.Context, r *CreateResourceRequest) (*CreateResourceResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.CreateResource(ctx, r) +} + +func (p *authenticatedWrapperControlServer) RemoveResource(ctx context.Context, r *RemoveResourceRequest) (*RemoveResourceResponse, error) { + + if err := p.authorize(ctx, []string{"swarm-manager"}); err != nil { + return nil, err + } + return p.local.RemoveResource(ctx, r) +} + func (m *GetNodeRequest) Copy() *GetNodeRequest { if m == nil { return nil @@ -2387,6 +2647,328 @@ func (m *RemoveConfigResponse) Copy() *RemoveConfigResponse { } func (m *RemoveConfigResponse) CopyFrom(src interface{}) {} +func (m *CreateExtensionRequest) Copy() *CreateExtensionRequest { + if m == nil { + return nil + } + o := &CreateExtensionRequest{} + o.CopyFrom(m) + return o +} + +func (m *CreateExtensionRequest) CopyFrom(src interface{}) { + + o := src.(*CreateExtensionRequest) + *m = *o + if o.Annotations != nil { + m.Annotations = &Annotations{} + deepcopy.Copy(m.Annotations, o.Annotations) + } +} + +func (m *CreateExtensionResponse) Copy() *CreateExtensionResponse { + if m == nil { + return nil + } + o := &CreateExtensionResponse{} + o.CopyFrom(m) + return o +} + +func (m *CreateExtensionResponse) CopyFrom(src interface{}) { + + o := src.(*CreateExtensionResponse) + *m = *o + if o.Extension != nil { + m.Extension = &Extension{} + deepcopy.Copy(m.Extension, o.Extension) + } +} + +func (m *RemoveExtensionRequest) Copy() *RemoveExtensionRequest { + if m == nil { + return nil + } + o := &RemoveExtensionRequest{} + o.CopyFrom(m) + return o +} + +func (m *RemoveExtensionRequest) CopyFrom(src interface{}) { + + o := src.(*RemoveExtensionRequest) + *m = *o +} + +func (m *RemoveExtensionResponse) Copy() *RemoveExtensionResponse { + if m == nil { + return nil + } + o := &RemoveExtensionResponse{} + o.CopyFrom(m) + return o +} + +func (m *RemoveExtensionResponse) CopyFrom(src interface{}) {} +func (m *GetExtensionRequest) Copy() *GetExtensionRequest { + if m == nil { + return nil + } + o := &GetExtensionRequest{} + o.CopyFrom(m) + return o +} + +func (m *GetExtensionRequest) CopyFrom(src interface{}) { + + o := src.(*GetExtensionRequest) + *m = *o +} + +func (m *GetExtensionResponse) Copy() *GetExtensionResponse { + if m == nil { + return nil + } + o := &GetExtensionResponse{} + o.CopyFrom(m) + return o +} + +func (m *GetExtensionResponse) CopyFrom(src interface{}) { + + o := src.(*GetExtensionResponse) + *m = *o + if o.Extension != nil { + m.Extension = &Extension{} + deepcopy.Copy(m.Extension, o.Extension) + } +} + +func (m *CreateResourceRequest) Copy() *CreateResourceRequest { + if m == nil { + return nil + } + o := &CreateResourceRequest{} + o.CopyFrom(m) + return o +} + +func (m *CreateResourceRequest) CopyFrom(src interface{}) { + + o := src.(*CreateResourceRequest) + *m = *o + if o.Annotations != nil { + m.Annotations = &Annotations{} + deepcopy.Copy(m.Annotations, o.Annotations) + } + if o.Payload != nil { + m.Payload = &google_protobuf4.Any{} + deepcopy.Copy(m.Payload, o.Payload) + } +} + +func (m *CreateResourceResponse) Copy() *CreateResourceResponse { + if m == nil { + return nil + } + o := &CreateResourceResponse{} + o.CopyFrom(m) + return o +} + +func (m *CreateResourceResponse) CopyFrom(src interface{}) { + + o := src.(*CreateResourceResponse) + *m = *o + if o.Resource != nil { + m.Resource = &Resource{} + deepcopy.Copy(m.Resource, o.Resource) + } +} + +func (m *RemoveResourceRequest) Copy() *RemoveResourceRequest { + if m == nil { + return nil + } + o := &RemoveResourceRequest{} + o.CopyFrom(m) + return o +} + +func (m *RemoveResourceRequest) CopyFrom(src interface{}) { + + o := src.(*RemoveResourceRequest) + *m = *o +} + +func (m *RemoveResourceResponse) Copy() *RemoveResourceResponse { + if m == nil { + return nil + } + o := &RemoveResourceResponse{} + o.CopyFrom(m) + return o +} + +func (m *RemoveResourceResponse) CopyFrom(src interface{}) {} +func (m *UpdateResourceRequest) Copy() *UpdateResourceRequest { + if m == nil { + return nil + } + o := &UpdateResourceRequest{} + o.CopyFrom(m) + return o +} + +func (m *UpdateResourceRequest) CopyFrom(src interface{}) { + + o := src.(*UpdateResourceRequest) + *m = *o + if o.ResourceVersion != nil { + m.ResourceVersion = &Version{} + deepcopy.Copy(m.ResourceVersion, o.ResourceVersion) + } + if o.Annotations != nil { + m.Annotations = &Annotations{} + deepcopy.Copy(m.Annotations, o.Annotations) + } + if o.Payload != nil { + m.Payload = &google_protobuf4.Any{} + deepcopy.Copy(m.Payload, o.Payload) + } +} + +func (m *UpdateResourceResponse) Copy() *UpdateResourceResponse { + if m == nil { + return nil + } + o := &UpdateResourceResponse{} + o.CopyFrom(m) + return o +} + +func (m *UpdateResourceResponse) CopyFrom(src interface{}) { + + o := src.(*UpdateResourceResponse) + *m = *o + if o.Resource != nil { + m.Resource = &Resource{} + deepcopy.Copy(m.Resource, o.Resource) + } +} + +func (m *GetResourceRequest) Copy() *GetResourceRequest { + if m == nil { + return nil + } + o := &GetResourceRequest{} + o.CopyFrom(m) + return o +} + +func (m *GetResourceRequest) CopyFrom(src interface{}) { + + o := src.(*GetResourceRequest) + *m = *o +} + +func (m *GetResourceResponse) Copy() *GetResourceResponse { + if m == nil { + return nil + } + o := &GetResourceResponse{} + o.CopyFrom(m) + return o +} + +func (m *GetResourceResponse) CopyFrom(src interface{}) { + + o := src.(*GetResourceResponse) + *m = *o + if o.Resource != nil { + m.Resource = &Resource{} + deepcopy.Copy(m.Resource, o.Resource) + } +} + +func (m *ListResourcesRequest) Copy() *ListResourcesRequest { + if m == nil { + return nil + } + o := &ListResourcesRequest{} + o.CopyFrom(m) + return o +} + +func (m *ListResourcesRequest) CopyFrom(src interface{}) { + + o := src.(*ListResourcesRequest) + *m = *o + if o.Filters != nil { + m.Filters = &ListResourcesRequest_Filters{} + deepcopy.Copy(m.Filters, o.Filters) + } +} + +func (m *ListResourcesRequest_Filters) Copy() *ListResourcesRequest_Filters { + if m == nil { + return nil + } + o := &ListResourcesRequest_Filters{} + o.CopyFrom(m) + return o +} + +func (m *ListResourcesRequest_Filters) CopyFrom(src interface{}) { + + o := src.(*ListResourcesRequest_Filters) + *m = *o + if o.Names != nil { + m.Names = make([]string, len(o.Names)) + copy(m.Names, o.Names) + } + + if o.IDPrefixes != nil { + m.IDPrefixes = make([]string, len(o.IDPrefixes)) + copy(m.IDPrefixes, o.IDPrefixes) + } + + if o.Labels != nil { + m.Labels = make(map[string]string, len(o.Labels)) + for k, v := range o.Labels { + m.Labels[k] = v + } + } + + if o.NamePrefixes != nil { + m.NamePrefixes = make([]string, len(o.NamePrefixes)) + copy(m.NamePrefixes, o.NamePrefixes) + } + +} + +func (m *ListResourcesResponse) Copy() *ListResourcesResponse { + if m == nil { + return nil + } + o := &ListResourcesResponse{} + o.CopyFrom(m) + return o +} + +func (m *ListResourcesResponse) CopyFrom(src interface{}) { + + o := src.(*ListResourcesResponse) + *m = *o + if o.Resources != nil { + m.Resources = make([]*Resource, len(o.Resources)) + for i := range m.Resources { + m.Resources[i] = &Resource{} + deepcopy.Copy(m.Resources[i], o.Resources[i]) + } + } + +} // Reference imports to suppress errors if they are not otherwise used. var _ context.Context @@ -2476,6 +3058,52 @@ type ControlClient interface { // - Returns `NotFound` if the a config named `RemoveConfigRequest.ID` is not found. // - Returns an error if the deletion fails. RemoveConfig(ctx context.Context, in *RemoveConfigRequest, opts ...grpc.CallOption) (*RemoveConfigResponse, error) + // GetExtension returns a `GetExtensionResponse` with a `Extension` with the same + // id as `GetExtensionRequest.ExtensionId` + // - Returns `NotFound` if the Extension with the given id is not found. + // - Returns `InvalidArgument` if the `GetExtensionRequest.ExtensionId` is empty. + // - Returns an error if the get fails. + GetExtension(ctx context.Context, in *GetExtensionRequest, opts ...grpc.CallOption) (*GetExtensionResponse, error) + // CreateExtension creates an `Extension` based on the provided `CreateExtensionRequest.Extension` + // and returns a `CreateExtensionResponse`. + // - Returns `InvalidArgument` if the `CreateExtensionRequest.Extension` is malformed, + // or fails validation. + // - Returns an error if the creation fails. + CreateExtension(ctx context.Context, in *CreateExtensionRequest, opts ...grpc.CallOption) (*CreateExtensionResponse, error) + // RemoveExtension removes the extension referenced by `RemoveExtensionRequest.ID`. + // - Returns `InvalidArgument` if `RemoveExtensionRequest.ExtensionId` is empty. + // - Returns `NotFound` if the an extension named `RemoveExtensionRequest.ExtensionId` is not found. + // - Returns an error if the deletion fails. + RemoveExtension(ctx context.Context, in *RemoveExtensionRequest, opts ...grpc.CallOption) (*RemoveExtensionResponse, error) + // GetResource returns a `GetResourceResponse` with a `Resource` with the same + // id as `GetResourceRequest.Resource` + // - Returns `NotFound` if the Resource with the given id is not found. + // - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty. + // - Returns an error if getting fails. + GetResource(ctx context.Context, in *GetResourceRequest, opts ...grpc.CallOption) (*GetResourceResponse, error) + // UpdateResource updates the resource with the given `UpdateResourceRequest.Resource.Id` using the given `UpdateResourceRequest.Resource` and returns a `UpdateResourceResponse`. + // - Returns `NotFound` if the Resource with the given `UpdateResourceRequest.Resource.Id` is not found. + // - Returns `InvalidArgument` if the UpdateResourceRequest.Resource.Id` is empty. + // - Returns an error if updating fails. + UpdateResource(ctx context.Context, in *UpdateResourceRequest, opts ...grpc.CallOption) (*UpdateResourceResponse, error) + // ListResources returns a `ListResourcesResponse` with a list of `Resource`s stored in the raft store, + // or all resources matching any name in `ListConfigsRequest.Names`, any + // name prefix in `ListResourcesRequest.NamePrefixes`, any id in + // `ListResourcesRequest.ResourceIDs`, or any id prefix in `ListResourcesRequest.IDPrefixes`, + // extension name equal to `ListResourcesRequest.Extension`. + // - Returns an error if listing fails. + ListResources(ctx context.Context, in *ListResourcesRequest, opts ...grpc.CallOption) (*ListResourcesResponse, error) + // CreateResource returns a `CreateResourceResponse` after creating a `Resource` based + // on the provided `CreateResourceRequest.Resource`. + // - Returns `InvalidArgument` if the `CreateResourceRequest.Resource` is malformed, + // or if the config data is too long or contains invalid characters. + // - Returns an error if the creation fails. + CreateResource(ctx context.Context, in *CreateResourceRequest, opts ...grpc.CallOption) (*CreateResourceResponse, error) + // RemoveResource removes the `Resource` referenced by `RemoveResourceRequest.ResourceID`. + // - Returns `InvalidArgument` if `RemoveResourceRequest.ResourceID` is empty. + // - Returns `NotFound` if the a resource named `RemoveResourceRequest.ResourceID` is not found. + // - Returns an error if the deletion fails. + RemoveResource(ctx context.Context, in *RemoveResourceRequest, opts ...grpc.CallOption) (*RemoveResourceResponse, error) } type controlClient struct { @@ -2747,6 +3375,78 @@ func (c *controlClient) RemoveConfig(ctx context.Context, in *RemoveConfigReques return out, nil } +func (c *controlClient) GetExtension(ctx context.Context, in *GetExtensionRequest, opts ...grpc.CallOption) (*GetExtensionResponse, error) { + out := new(GetExtensionResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/GetExtension", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) CreateExtension(ctx context.Context, in *CreateExtensionRequest, opts ...grpc.CallOption) (*CreateExtensionResponse, error) { + out := new(CreateExtensionResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/CreateExtension", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) RemoveExtension(ctx context.Context, in *RemoveExtensionRequest, opts ...grpc.CallOption) (*RemoveExtensionResponse, error) { + out := new(RemoveExtensionResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/RemoveExtension", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) GetResource(ctx context.Context, in *GetResourceRequest, opts ...grpc.CallOption) (*GetResourceResponse, error) { + out := new(GetResourceResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/GetResource", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) UpdateResource(ctx context.Context, in *UpdateResourceRequest, opts ...grpc.CallOption) (*UpdateResourceResponse, error) { + out := new(UpdateResourceResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/UpdateResource", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) ListResources(ctx context.Context, in *ListResourcesRequest, opts ...grpc.CallOption) (*ListResourcesResponse, error) { + out := new(ListResourcesResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/ListResources", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) CreateResource(ctx context.Context, in *CreateResourceRequest, opts ...grpc.CallOption) (*CreateResourceResponse, error) { + out := new(CreateResourceResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/CreateResource", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controlClient) RemoveResource(ctx context.Context, in *RemoveResourceRequest, opts ...grpc.CallOption) (*RemoveResourceResponse, error) { + out := new(RemoveResourceResponse) + err := grpc.Invoke(ctx, "/docker.swarmkit.v1.Control/RemoveResource", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for Control service type ControlServer interface { @@ -2827,6 +3527,52 @@ type ControlServer interface { // - Returns `NotFound` if the a config named `RemoveConfigRequest.ID` is not found. // - Returns an error if the deletion fails. RemoveConfig(context.Context, *RemoveConfigRequest) (*RemoveConfigResponse, error) + // GetExtension returns a `GetExtensionResponse` with a `Extension` with the same + // id as `GetExtensionRequest.ExtensionId` + // - Returns `NotFound` if the Extension with the given id is not found. + // - Returns `InvalidArgument` if the `GetExtensionRequest.ExtensionId` is empty. + // - Returns an error if the get fails. + GetExtension(context.Context, *GetExtensionRequest) (*GetExtensionResponse, error) + // CreateExtension creates an `Extension` based on the provided `CreateExtensionRequest.Extension` + // and returns a `CreateExtensionResponse`. + // - Returns `InvalidArgument` if the `CreateExtensionRequest.Extension` is malformed, + // or fails validation. + // - Returns an error if the creation fails. + CreateExtension(context.Context, *CreateExtensionRequest) (*CreateExtensionResponse, error) + // RemoveExtension removes the extension referenced by `RemoveExtensionRequest.ID`. + // - Returns `InvalidArgument` if `RemoveExtensionRequest.ExtensionId` is empty. + // - Returns `NotFound` if the an extension named `RemoveExtensionRequest.ExtensionId` is not found. + // - Returns an error if the deletion fails. + RemoveExtension(context.Context, *RemoveExtensionRequest) (*RemoveExtensionResponse, error) + // GetResource returns a `GetResourceResponse` with a `Resource` with the same + // id as `GetResourceRequest.Resource` + // - Returns `NotFound` if the Resource with the given id is not found. + // - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty. + // - Returns an error if getting fails. + GetResource(context.Context, *GetResourceRequest) (*GetResourceResponse, error) + // UpdateResource updates the resource with the given `UpdateResourceRequest.Resource.Id` using the given `UpdateResourceRequest.Resource` and returns a `UpdateResourceResponse`. + // - Returns `NotFound` if the Resource with the given `UpdateResourceRequest.Resource.Id` is not found. + // - Returns `InvalidArgument` if the UpdateResourceRequest.Resource.Id` is empty. + // - Returns an error if updating fails. + UpdateResource(context.Context, *UpdateResourceRequest) (*UpdateResourceResponse, error) + // ListResources returns a `ListResourcesResponse` with a list of `Resource`s stored in the raft store, + // or all resources matching any name in `ListConfigsRequest.Names`, any + // name prefix in `ListResourcesRequest.NamePrefixes`, any id in + // `ListResourcesRequest.ResourceIDs`, or any id prefix in `ListResourcesRequest.IDPrefixes`, + // extension name equal to `ListResourcesRequest.Extension`. + // - Returns an error if listing fails. + ListResources(context.Context, *ListResourcesRequest) (*ListResourcesResponse, error) + // CreateResource returns a `CreateResourceResponse` after creating a `Resource` based + // on the provided `CreateResourceRequest.Resource`. + // - Returns `InvalidArgument` if the `CreateResourceRequest.Resource` is malformed, + // or if the config data is too long or contains invalid characters. + // - Returns an error if the creation fails. + CreateResource(context.Context, *CreateResourceRequest) (*CreateResourceResponse, error) + // RemoveResource removes the `Resource` referenced by `RemoveResourceRequest.ResourceID`. + // - Returns `InvalidArgument` if `RemoveResourceRequest.ResourceID` is empty. + // - Returns `NotFound` if the a resource named `RemoveResourceRequest.ResourceID` is not found. + // - Returns an error if the deletion fails. + RemoveResource(context.Context, *RemoveResourceRequest) (*RemoveResourceResponse, error) } func RegisterControlServer(s *grpc.Server, srv ControlServer) { @@ -3355,6 +4101,150 @@ func _Control_RemoveConfig_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Control_GetExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetExtensionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).GetExtension(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/GetExtension", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).GetExtension(ctx, req.(*GetExtensionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_CreateExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateExtensionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).CreateExtension(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/CreateExtension", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).CreateExtension(ctx, req.(*CreateExtensionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_RemoveExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveExtensionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).RemoveExtension(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/RemoveExtension", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).RemoveExtension(ctx, req.(*RemoveExtensionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_GetResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetResourceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).GetResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/GetResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).GetResource(ctx, req.(*GetResourceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_UpdateResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateResourceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).UpdateResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/UpdateResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).UpdateResource(ctx, req.(*UpdateResourceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_ListResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListResourcesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).ListResources(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/ListResources", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).ListResources(ctx, req.(*ListResourcesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_CreateResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateResourceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).CreateResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/CreateResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).CreateResource(ctx, req.(*CreateResourceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Control_RemoveResource_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveResourceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServer).RemoveResource(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/docker.swarmkit.v1.Control/RemoveResource", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServer).RemoveResource(ctx, req.(*RemoveResourceRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Control_serviceDesc = grpc.ServiceDesc{ ServiceName: "docker.swarmkit.v1.Control", HandlerType: (*ControlServer)(nil), @@ -3475,6 +4365,38 @@ var _Control_serviceDesc = grpc.ServiceDesc{ MethodName: "RemoveConfig", Handler: _Control_RemoveConfig_Handler, }, + { + MethodName: "GetExtension", + Handler: _Control_GetExtension_Handler, + }, + { + MethodName: "CreateExtension", + Handler: _Control_CreateExtension_Handler, + }, + { + MethodName: "RemoveExtension", + Handler: _Control_RemoveExtension_Handler, + }, + { + MethodName: "GetResource", + Handler: _Control_GetResource_Handler, + }, + { + MethodName: "UpdateResource", + Handler: _Control_UpdateResource_Handler, + }, + { + MethodName: "ListResources", + Handler: _Control_ListResources_Handler, + }, + { + MethodName: "CreateResource", + Handler: _Control_CreateResource_Handler, + }, + { + MethodName: "RemoveResource", + Handler: _Control_RemoveResource_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "github.com/docker/swarmkit/api/control.proto", @@ -5847,6 +6769,554 @@ func (m *RemoveConfigResponse) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *CreateExtensionRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateExtensionRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Annotations != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Annotations.Size())) + n39, err := m.Annotations.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n39 + } + if len(m.Description) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.Description))) + i += copy(dAtA[i:], m.Description) + } + return i, nil +} + +func (m *CreateExtensionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateExtensionResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Extension != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Extension.Size())) + n40, err := m.Extension.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n40 + } + return i, nil +} + +func (m *RemoveExtensionRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RemoveExtensionRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ExtensionID) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.ExtensionID))) + i += copy(dAtA[i:], m.ExtensionID) + } + return i, nil +} + +func (m *RemoveExtensionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RemoveExtensionResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + +func (m *GetExtensionRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetExtensionRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ExtensionID) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.ExtensionID))) + i += copy(dAtA[i:], m.ExtensionID) + } + return i, nil +} + +func (m *GetExtensionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetExtensionResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Extension != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Extension.Size())) + n41, err := m.Extension.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n41 + } + return i, nil +} + +func (m *CreateResourceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateResourceRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Annotations != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Annotations.Size())) + n42, err := m.Annotations.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n42 + } + if len(m.Kind) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + } + if m.Payload != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Payload.Size())) + n43, err := m.Payload.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n43 + } + return i, nil +} + +func (m *CreateResourceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CreateResourceResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Resource != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Resource.Size())) + n44, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n44 + } + return i, nil +} + +func (m *RemoveResourceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RemoveResourceRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ResourceID) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.ResourceID))) + i += copy(dAtA[i:], m.ResourceID) + } + return i, nil +} + +func (m *RemoveResourceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RemoveResourceResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + +func (m *UpdateResourceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateResourceRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ResourceID) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.ResourceID))) + i += copy(dAtA[i:], m.ResourceID) + } + if m.ResourceVersion != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintControl(dAtA, i, uint64(m.ResourceVersion.Size())) + n45, err := m.ResourceVersion.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n45 + } + if m.Annotations != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Annotations.Size())) + n46, err := m.Annotations.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n46 + } + if m.Payload != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Payload.Size())) + n47, err := m.Payload.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n47 + } + return i, nil +} + +func (m *UpdateResourceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateResourceResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Resource != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Resource.Size())) + n48, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n48 + } + return i, nil +} + +func (m *GetResourceRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetResourceRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ResourceID) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.ResourceID))) + i += copy(dAtA[i:], m.ResourceID) + } + return i, nil +} + +func (m *GetResourceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetResourceResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Resource != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Resource.Size())) + n49, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n49 + } + return i, nil +} + +func (m *ListResourcesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListResourcesRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Filters != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(m.Filters.Size())) + n50, err := m.Filters.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n50 + } + return i, nil +} + +func (m *ListResourcesRequest_Filters) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListResourcesRequest_Filters) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Names) > 0 { + for _, s := range m.Names { + dAtA[i] = 0xa + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.IDPrefixes) > 0 { + for _, s := range m.IDPrefixes { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Labels) > 0 { + for k, _ := range m.Labels { + dAtA[i] = 0x1a + i++ + v := m.Labels[k] + mapSize := 1 + len(k) + sovControl(uint64(len(k))) + 1 + len(v) + sovControl(uint64(len(v))) + i = encodeVarintControl(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintControl(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + if len(m.NamePrefixes) > 0 { + for _, s := range m.NamePrefixes { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Kind) > 0 { + dAtA[i] = 0x2a + i++ + i = encodeVarintControl(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + } + return i, nil +} + +func (m *ListResourcesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ListResourcesResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Resources) > 0 { + for _, msg := range m.Resources { + dAtA[i] = 0xa + i++ + i = encodeVarintControl(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + func encodeVarintControl(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -6944,6 +8414,286 @@ func (p *raftProxyControlServer) RemoveConfig(ctx context.Context, r *RemoveConf return resp, err } +func (p *raftProxyControlServer) GetExtension(ctx context.Context, r *GetExtensionRequest) (*GetExtensionResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.GetExtension(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).GetExtension(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.GetExtension(ctx, r) + } + return nil, err + } + return NewControlClient(conn).GetExtension(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) CreateExtension(ctx context.Context, r *CreateExtensionRequest) (*CreateExtensionResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.CreateExtension(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).CreateExtension(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.CreateExtension(ctx, r) + } + return nil, err + } + return NewControlClient(conn).CreateExtension(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) RemoveExtension(ctx context.Context, r *RemoveExtensionRequest) (*RemoveExtensionResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.RemoveExtension(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).RemoveExtension(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.RemoveExtension(ctx, r) + } + return nil, err + } + return NewControlClient(conn).RemoveExtension(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) GetResource(ctx context.Context, r *GetResourceRequest) (*GetResourceResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.GetResource(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).GetResource(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.GetResource(ctx, r) + } + return nil, err + } + return NewControlClient(conn).GetResource(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) UpdateResource(ctx context.Context, r *UpdateResourceRequest) (*UpdateResourceResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.UpdateResource(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).UpdateResource(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.UpdateResource(ctx, r) + } + return nil, err + } + return NewControlClient(conn).UpdateResource(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) ListResources(ctx context.Context, r *ListResourcesRequest) (*ListResourcesResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.ListResources(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).ListResources(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.ListResources(ctx, r) + } + return nil, err + } + return NewControlClient(conn).ListResources(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) CreateResource(ctx context.Context, r *CreateResourceRequest) (*CreateResourceResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.CreateResource(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).CreateResource(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.CreateResource(ctx, r) + } + return nil, err + } + return NewControlClient(conn).CreateResource(modCtx, r) + } + return resp, err +} + +func (p *raftProxyControlServer) RemoveResource(ctx context.Context, r *RemoveResourceRequest) (*RemoveResourceResponse, error) { + + conn, err := p.connSelector.LeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + ctx, err = p.runCtxMods(ctx, p.localCtxMods) + if err != nil { + return nil, err + } + return p.local.RemoveResource(ctx, r) + } + return nil, err + } + modCtx, err := p.runCtxMods(ctx, p.remoteCtxMods) + if err != nil { + return nil, err + } + + resp, err := NewControlClient(conn).RemoveResource(modCtx, r) + if err != nil { + if !strings.Contains(err.Error(), "is closing") && !strings.Contains(err.Error(), "the connection is unavailable") && !strings.Contains(err.Error(), "connection error") { + return resp, err + } + conn, err := p.pollNewLeaderConn(ctx) + if err != nil { + if err == raftselector.ErrIsLeader { + return p.local.RemoveResource(ctx, r) + } + return nil, err + } + return NewControlClient(conn).RemoveResource(modCtx, r) + } + return resp, err +} + func (m *GetNodeRequest) Size() (n int) { var l int _ = l @@ -7862,6 +9612,220 @@ func (m *RemoveConfigResponse) Size() (n int) { return n } +func (m *CreateExtensionRequest) Size() (n int) { + var l int + _ = l + if m.Annotations != nil { + l = m.Annotations.Size() + n += 1 + l + sovControl(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *CreateExtensionResponse) Size() (n int) { + var l int + _ = l + if m.Extension != nil { + l = m.Extension.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *RemoveExtensionRequest) Size() (n int) { + var l int + _ = l + l = len(m.ExtensionID) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *RemoveExtensionResponse) Size() (n int) { + var l int + _ = l + return n +} + +func (m *GetExtensionRequest) Size() (n int) { + var l int + _ = l + l = len(m.ExtensionID) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *GetExtensionResponse) Size() (n int) { + var l int + _ = l + if m.Extension != nil { + l = m.Extension.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *CreateResourceRequest) Size() (n int) { + var l int + _ = l + if m.Annotations != nil { + l = m.Annotations.Size() + n += 1 + l + sovControl(uint64(l)) + } + l = len(m.Kind) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + if m.Payload != nil { + l = m.Payload.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *CreateResourceResponse) Size() (n int) { + var l int + _ = l + if m.Resource != nil { + l = m.Resource.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *RemoveResourceRequest) Size() (n int) { + var l int + _ = l + l = len(m.ResourceID) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *RemoveResourceResponse) Size() (n int) { + var l int + _ = l + return n +} + +func (m *UpdateResourceRequest) Size() (n int) { + var l int + _ = l + l = len(m.ResourceID) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + if m.ResourceVersion != nil { + l = m.ResourceVersion.Size() + n += 1 + l + sovControl(uint64(l)) + } + if m.Annotations != nil { + l = m.Annotations.Size() + n += 1 + l + sovControl(uint64(l)) + } + if m.Payload != nil { + l = m.Payload.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *UpdateResourceResponse) Size() (n int) { + var l int + _ = l + if m.Resource != nil { + l = m.Resource.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *GetResourceRequest) Size() (n int) { + var l int + _ = l + l = len(m.ResourceID) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *GetResourceResponse) Size() (n int) { + var l int + _ = l + if m.Resource != nil { + l = m.Resource.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *ListResourcesRequest) Size() (n int) { + var l int + _ = l + if m.Filters != nil { + l = m.Filters.Size() + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *ListResourcesRequest_Filters) Size() (n int) { + var l int + _ = l + if len(m.Names) > 0 { + for _, s := range m.Names { + l = len(s) + n += 1 + l + sovControl(uint64(l)) + } + } + if len(m.IDPrefixes) > 0 { + for _, s := range m.IDPrefixes { + l = len(s) + n += 1 + l + sovControl(uint64(l)) + } + } + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovControl(uint64(len(k))) + 1 + len(v) + sovControl(uint64(len(v))) + n += mapEntrySize + 1 + sovControl(uint64(mapEntrySize)) + } + } + if len(m.NamePrefixes) > 0 { + for _, s := range m.NamePrefixes { + l = len(s) + n += 1 + l + sovControl(uint64(l)) + } + } + l = len(m.Kind) + if l > 0 { + n += 1 + l + sovControl(uint64(l)) + } + return n +} + +func (m *ListResourcesResponse) Size() (n int) { + var l int + _ = l + if len(m.Resources) > 0 { + for _, e := range m.Resources { + l = e.Size() + n += 1 + l + sovControl(uint64(l)) + } + } + return n +} + func sovControl(x uint64) (n int) { for { n++ @@ -8657,6 +10621,194 @@ func (this *RemoveConfigResponse) String() string { }, "") return s } +func (this *CreateExtensionRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CreateExtensionRequest{`, + `Annotations:` + strings.Replace(fmt.Sprintf("%v", this.Annotations), "Annotations", "Annotations", 1) + `,`, + `Description:` + fmt.Sprintf("%v", this.Description) + `,`, + `}`, + }, "") + return s +} +func (this *CreateExtensionResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CreateExtensionResponse{`, + `Extension:` + strings.Replace(fmt.Sprintf("%v", this.Extension), "Extension", "Extension", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RemoveExtensionRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RemoveExtensionRequest{`, + `ExtensionID:` + fmt.Sprintf("%v", this.ExtensionID) + `,`, + `}`, + }, "") + return s +} +func (this *RemoveExtensionResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RemoveExtensionResponse{`, + `}`, + }, "") + return s +} +func (this *GetExtensionRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GetExtensionRequest{`, + `ExtensionID:` + fmt.Sprintf("%v", this.ExtensionID) + `,`, + `}`, + }, "") + return s +} +func (this *GetExtensionResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GetExtensionResponse{`, + `Extension:` + strings.Replace(fmt.Sprintf("%v", this.Extension), "Extension", "Extension", 1) + `,`, + `}`, + }, "") + return s +} +func (this *CreateResourceRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CreateResourceRequest{`, + `Annotations:` + strings.Replace(fmt.Sprintf("%v", this.Annotations), "Annotations", "Annotations", 1) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf4.Any", 1) + `,`, + `}`, + }, "") + return s +} +func (this *CreateResourceResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CreateResourceResponse{`, + `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "Resource", "Resource", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RemoveResourceRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RemoveResourceRequest{`, + `ResourceID:` + fmt.Sprintf("%v", this.ResourceID) + `,`, + `}`, + }, "") + return s +} +func (this *RemoveResourceResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RemoveResourceResponse{`, + `}`, + }, "") + return s +} +func (this *UpdateResourceRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UpdateResourceRequest{`, + `ResourceID:` + fmt.Sprintf("%v", this.ResourceID) + `,`, + `ResourceVersion:` + strings.Replace(fmt.Sprintf("%v", this.ResourceVersion), "Version", "Version", 1) + `,`, + `Annotations:` + strings.Replace(fmt.Sprintf("%v", this.Annotations), "Annotations", "Annotations", 1) + `,`, + `Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf4.Any", 1) + `,`, + `}`, + }, "") + return s +} +func (this *UpdateResourceResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UpdateResourceResponse{`, + `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "Resource", "Resource", 1) + `,`, + `}`, + }, "") + return s +} +func (this *GetResourceRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GetResourceRequest{`, + `ResourceID:` + fmt.Sprintf("%v", this.ResourceID) + `,`, + `}`, + }, "") + return s +} +func (this *GetResourceResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GetResourceResponse{`, + `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "Resource", "Resource", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ListResourcesRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ListResourcesRequest{`, + `Filters:` + strings.Replace(fmt.Sprintf("%v", this.Filters), "ListResourcesRequest_Filters", "ListResourcesRequest_Filters", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ListResourcesRequest_Filters) String() string { + if this == nil { + return "nil" + } + keysForLabels := make([]string, 0, len(this.Labels)) + for k, _ := range this.Labels { + keysForLabels = append(keysForLabels, k) + } + sortkeys.Strings(keysForLabels) + mapStringForLabels := "map[string]string{" + for _, k := range keysForLabels { + mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) + } + mapStringForLabels += "}" + s := strings.Join([]string{`&ListResourcesRequest_Filters{`, + `Names:` + fmt.Sprintf("%v", this.Names) + `,`, + `IDPrefixes:` + fmt.Sprintf("%v", this.IDPrefixes) + `,`, + `Labels:` + mapStringForLabels + `,`, + `NamePrefixes:` + fmt.Sprintf("%v", this.NamePrefixes) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `}`, + }, "") + return s +} +func (this *ListResourcesResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ListResourcesResponse{`, + `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Resource", "Resource", 1) + `,`, + `}`, + }, "") + return s +} func valueToStringControl(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -16007,6 +18159,1720 @@ func (m *RemoveConfigResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *CreateExtensionRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateExtensionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateExtensionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotations == nil { + m.Annotations = &Annotations{} + } + if err := m.Annotations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateExtensionResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateExtensionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateExtensionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Extension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Extension == nil { + m.Extension = &Extension{} + } + if err := m.Extension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RemoveExtensionRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RemoveExtensionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RemoveExtensionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtensionID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExtensionID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RemoveExtensionResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RemoveExtensionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RemoveExtensionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetExtensionRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetExtensionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetExtensionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtensionID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExtensionID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetExtensionResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetExtensionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetExtensionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Extension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Extension == nil { + m.Extension = &Extension{} + } + if err := m.Extension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateResourceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateResourceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateResourceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotations == nil { + m.Annotations = &Annotations{} + } + if err := m.Annotations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Payload == nil { + m.Payload = &google_protobuf4.Any{} + } + if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CreateResourceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CreateResourceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CreateResourceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resource == nil { + m.Resource = &Resource{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RemoveResourceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RemoveResourceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RemoveResourceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RemoveResourceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RemoveResourceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RemoveResourceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateResourceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateResourceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateResourceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceVersion", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ResourceVersion == nil { + m.ResourceVersion = &Version{} + } + if err := m.ResourceVersion.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotations == nil { + m.Annotations = &Annotations{} + } + if err := m.Annotations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payload", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Payload == nil { + m.Payload = &google_protobuf4.Any{} + } + if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateResourceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateResourceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateResourceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resource == nil { + m.Resource = &Resource{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetResourceRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetResourceRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetResourceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetResourceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetResourceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetResourceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resource == nil { + m.Resource = &Resource{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListResourcesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListResourcesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListResourcesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Filters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Filters == nil { + m.Filters = &ListResourcesRequest_Filters{} + } + if err := m.Filters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListResourcesRequest_Filters) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Filters: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Filters: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Names", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Names = append(m.Names, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IDPrefixes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IDPrefixes = append(m.IDPrefixes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthControl + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthControl + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NamePrefixes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NamePrefixes = append(m.NamePrefixes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + 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 ErrInvalidLengthControl + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ListResourcesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListResourcesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListResourcesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowControl + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthControl + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, &Resource{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipControl(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthControl + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipControl(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -16115,141 +19981,171 @@ var ( func init() { proto.RegisterFile("github.com/docker/swarmkit/api/control.proto", fileDescriptorControl) } var fileDescriptorControl = []byte{ - // 2167 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x73, 0x1b, 0x49, - 0x19, 0xb6, 0x3e, 0x6c, 0xc9, 0xaf, 0x6c, 0xd9, 0xee, 0x78, 0x41, 0xa5, 0x04, 0x3b, 0x35, 0x21, - 0x89, 0xb2, 0x65, 0x24, 0x56, 0x61, 0xd9, 0xb0, 0xb0, 0xc0, 0xda, 0xce, 0x66, 0xb5, 0xde, 0x38, - 0xa9, 0x71, 0xb2, 0xc5, 0x85, 0x52, 0xc9, 0x52, 0xdb, 0x3b, 0x91, 0xac, 0x11, 0x33, 0x23, 0xef, - 0xba, 0xb8, 0x00, 0x15, 0x7e, 0x02, 0x55, 0x5c, 0x39, 0x51, 0xc5, 0x81, 0x03, 0x27, 0x0e, 0xfc, - 0x80, 0x14, 0x27, 0x8e, 0x9c, 0x0c, 0xab, 0x2a, 0xaa, 0x38, 0xf1, 0x1b, 0xa8, 0xee, 0x7e, 0x7b, - 0xbe, 0xd4, 0x33, 0xa3, 0x0f, 0x57, 0x79, 0x4f, 0x96, 0x7a, 0x9e, 0xf7, 0xa3, 0xfb, 0x7d, 0xfa, - 0x51, 0xf7, 0x3b, 0x86, 0x9d, 0x53, 0xc3, 0xf9, 0x7c, 0x78, 0x5c, 0x6d, 0x9b, 0x67, 0xb5, 0x8e, - 0xd9, 0xee, 0x52, 0xab, 0x66, 0x7f, 0xd1, 0xb2, 0xce, 0xba, 0x86, 0x53, 0x6b, 0x0d, 0x8c, 0x5a, - 0xdb, 0xec, 0x3b, 0x96, 0xd9, 0xab, 0x0e, 0x2c, 0xd3, 0x31, 0x09, 0x11, 0x90, 0xaa, 0x84, 0x54, - 0xcf, 0xdf, 0x29, 0xbf, 0x9d, 0xe0, 0xc1, 0x1e, 0xd0, 0xb6, 0x2d, 0xec, 0xcb, 0x49, 0xd1, 0xcc, - 0xe3, 0x57, 0xb4, 0xed, 0x48, 0x74, 0x92, 0x67, 0xe7, 0x62, 0x40, 0x25, 0x76, 0xf3, 0xd4, 0x3c, - 0x35, 0xf9, 0xc7, 0x1a, 0xfb, 0x84, 0xa3, 0xef, 0xc5, 0x78, 0xe0, 0x88, 0xe3, 0xe1, 0x49, 0x6d, - 0xd0, 0x1b, 0x9e, 0x1a, 0x7d, 0xfc, 0x23, 0x0c, 0xb5, 0x77, 0xa1, 0xf8, 0x84, 0x3a, 0x87, 0x66, - 0x87, 0xea, 0xf4, 0x17, 0x43, 0x6a, 0x3b, 0xe4, 0x0e, 0xe4, 0xfa, 0x66, 0x87, 0x36, 0x8d, 0x4e, - 0x29, 0x75, 0x3b, 0x55, 0x59, 0xde, 0x85, 0xd1, 0xe5, 0xf6, 0x12, 0x43, 0x34, 0xf6, 0xf5, 0x25, - 0xf6, 0xa8, 0xd1, 0xd1, 0x7e, 0x02, 0x6b, 0xae, 0x99, 0x3d, 0x30, 0xfb, 0x36, 0x25, 0x3b, 0x90, - 0x65, 0x0f, 0xb9, 0x51, 0xa1, 0x5e, 0xaa, 0x8e, 0xaf, 0x60, 0x95, 0xe3, 0x39, 0x4a, 0x7b, 0xbd, - 0x08, 0xeb, 0x9f, 0x1a, 0x36, 0x77, 0x61, 0xcb, 0xd0, 0x1f, 0x41, 0xee, 0xc4, 0xe8, 0x39, 0xd4, - 0xb2, 0xd1, 0xcb, 0x8e, 0xca, 0x4b, 0xd8, 0xac, 0xfa, 0x91, 0xb0, 0xd1, 0xa5, 0x71, 0xf9, 0x8f, - 0x59, 0xc8, 0xe1, 0x20, 0xd9, 0x84, 0xc5, 0x7e, 0xeb, 0x8c, 0x32, 0x8f, 0x99, 0xca, 0xb2, 0x2e, - 0xbe, 0x90, 0x1a, 0x14, 0x8c, 0x4e, 0x73, 0x60, 0xd1, 0x13, 0xe3, 0x4b, 0x6a, 0x97, 0xd2, 0xec, - 0xd9, 0x6e, 0x71, 0x74, 0xb9, 0x0d, 0x8d, 0xfd, 0xe7, 0x38, 0xaa, 0x83, 0xd1, 0x91, 0x9f, 0xc9, - 0x73, 0x58, 0xea, 0xb5, 0x8e, 0x69, 0xcf, 0x2e, 0x65, 0x6e, 0x67, 0x2a, 0x85, 0xfa, 0xa3, 0x69, - 0x32, 0xab, 0x7e, 0xca, 0x4d, 0x1f, 0xf7, 0x1d, 0xeb, 0x42, 0x47, 0x3f, 0xe4, 0x29, 0x14, 0xce, - 0xe8, 0xd9, 0x31, 0xb5, 0xec, 0xcf, 0x8d, 0x81, 0x5d, 0xca, 0xde, 0xce, 0x54, 0x8a, 0xf5, 0xfb, - 0x51, 0xcb, 0x76, 0x34, 0xa0, 0xed, 0xea, 0x53, 0x17, 0xbf, 0x9b, 0x5e, 0x5f, 0xd0, 0xfd, 0xf6, - 0xe4, 0xfb, 0xb0, 0x68, 0x99, 0x3d, 0x6a, 0x97, 0x16, 0xb9, 0xa3, 0x5b, 0x91, 0xeb, 0x6f, 0xf6, - 0x28, 0xb7, 0x16, 0x70, 0x72, 0x07, 0x56, 0xd9, 0x92, 0x78, 0x6b, 0xb1, 0xc4, 0xd7, 0x69, 0x85, - 0x0d, 0xba, 0xb3, 0xff, 0x39, 0x14, 0x38, 0x27, 0x70, 0x09, 0x72, 0x7c, 0x09, 0x7e, 0x34, 0xd5, - 0x12, 0xb0, 0x41, 0xff, 0x32, 0x40, 0xdf, 0x1d, 0x28, 0xff, 0x00, 0x0a, 0xbe, 0x47, 0x64, 0x1d, - 0x32, 0x5d, 0x7a, 0x21, 0xd8, 0xa7, 0xb3, 0x8f, 0xac, 0x88, 0xe7, 0xad, 0xde, 0x90, 0x96, 0xd2, - 0x7c, 0x4c, 0x7c, 0x79, 0x3f, 0xfd, 0x28, 0x55, 0xfe, 0x00, 0xd6, 0x42, 0x9e, 0xa7, 0x31, 0xd7, - 0xf6, 0x60, 0xc3, 0x97, 0x31, 0x32, 0xb9, 0x0a, 0x8b, 0x2c, 0x39, 0x41, 0x99, 0x38, 0x2a, 0x0b, - 0x98, 0xf6, 0xa7, 0x14, 0x6c, 0xbc, 0x1c, 0x74, 0x5a, 0x0e, 0x9d, 0x76, 0x1f, 0x91, 0x1f, 0xc3, - 0x0a, 0x07, 0x9d, 0x53, 0xcb, 0x36, 0xcc, 0x3e, 0x4f, 0xb0, 0x50, 0xbf, 0xa9, 0x8a, 0xf8, 0x99, - 0x80, 0xe8, 0xbc, 0x12, 0xf8, 0x85, 0x7c, 0x17, 0xb2, 0x4c, 0x76, 0x4a, 0x19, 0x6e, 0x77, 0x2b, - 0x8e, 0x3d, 0x3a, 0x47, 0x6a, 0xbb, 0x40, 0xfc, 0xb9, 0xce, 0xb4, 0x79, 0x0f, 0x61, 0x43, 0xa7, - 0x67, 0xe6, 0xf9, 0xf4, 0xf3, 0xdd, 0x84, 0xc5, 0x13, 0xd3, 0x6a, 0x8b, 0x4a, 0xe4, 0x75, 0xf1, - 0x45, 0xdb, 0x04, 0xe2, 0xf7, 0x27, 0x72, 0x42, 0x69, 0x7a, 0xd1, 0xb2, 0xbb, 0xbe, 0x10, 0x4e, - 0xcb, 0xee, 0x86, 0x42, 0x30, 0x04, 0x0b, 0xc1, 0x1e, 0xb9, 0xd2, 0x24, 0xcc, 0xbc, 0xd9, 0xb1, - 0x87, 0x71, 0xb3, 0xe3, 0x78, 0x8e, 0xd2, 0x1e, 0xc9, 0xd9, 0x4d, 0x1d, 0xda, 0x9d, 0x87, 0x3f, - 0xba, 0xf6, 0xb7, 0xac, 0x90, 0x3a, 0x36, 0x38, 0x83, 0xd4, 0xf9, 0xcd, 0xc6, 0xa5, 0xee, 0x5f, - 0x99, 0xeb, 0x93, 0x3a, 0x55, 0x66, 0x4a, 0xa9, 0xab, 0x41, 0xc1, 0xa6, 0xd6, 0xb9, 0xd1, 0x66, - 0xec, 0x10, 0x52, 0x87, 0x29, 0x1c, 0x89, 0xe1, 0xc6, 0xbe, 0xad, 0x03, 0x42, 0x1a, 0x1d, 0x9b, - 0xdc, 0x83, 0x3c, 0x72, 0x49, 0xe8, 0xd9, 0xf2, 0x6e, 0x61, 0x74, 0xb9, 0x9d, 0x13, 0x64, 0xb2, - 0xf5, 0x9c, 0x60, 0x93, 0x4d, 0x3e, 0x86, 0x62, 0x87, 0xda, 0x86, 0x45, 0x3b, 0x4d, 0xdb, 0x69, - 0x39, 0xa8, 0x5e, 0xc5, 0xfa, 0xb7, 0xa2, 0x4a, 0x7c, 0xc4, 0x50, 0x5c, 0xfe, 0x56, 0xd1, 0x90, - 0x8f, 0x28, 0x64, 0x30, 0xa7, 0x90, 0xc1, 0x5b, 0x00, 0xc3, 0x41, 0xd3, 0x31, 0x9b, 0x6c, 0xff, - 0x94, 0xf2, 0x9c, 0xc2, 0xf9, 0xe1, 0xe0, 0x85, 0xb9, 0xdf, 0x72, 0x28, 0x29, 0x43, 0xde, 0x1a, - 0xf6, 0x1d, 0x83, 0x55, 0x60, 0x99, 0x5b, 0xbb, 0xdf, 0xe7, 0x50, 0x38, 0x29, 0x51, 0xb8, 0xd8, - 0x9e, 0x44, 0x31, 0xce, 0xc5, 0x4a, 0x14, 0x27, 0xa1, 0x80, 0x69, 0x07, 0xb0, 0xb9, 0x67, 0xd1, - 0x96, 0x43, 0x71, 0xc1, 0x25, 0x0d, 0x1f, 0xa2, 0x7e, 0x08, 0x0e, 0x6e, 0xab, 0xdc, 0xa0, 0x85, - 0x4f, 0x42, 0x0e, 0xe1, 0xad, 0x90, 0x33, 0xcc, 0xea, 0x5d, 0xc8, 0x61, 0x11, 0xd1, 0xe1, 0xcd, - 0x18, 0x87, 0xba, 0xc4, 0x6a, 0xaf, 0x60, 0xe3, 0x09, 0x75, 0x42, 0x99, 0xed, 0x00, 0x78, 0x9c, - 0xc1, 0x3d, 0xb7, 0x3a, 0xba, 0xdc, 0x5e, 0x76, 0x29, 0xa3, 0x2f, 0xbb, 0x8c, 0x21, 0xf7, 0x61, - 0xcd, 0xe8, 0xdb, 0xd4, 0x72, 0x9a, 0x1d, 0x7a, 0xd2, 0x1a, 0xf6, 0x1c, 0x1b, 0x15, 0xa6, 0x28, - 0x86, 0xf7, 0x71, 0x54, 0x3b, 0x00, 0xe2, 0x8f, 0x35, 0x5f, 0xe2, 0x7f, 0x49, 0xc3, 0xa6, 0x10, - 0xd3, 0xb9, 0x92, 0xdf, 0x87, 0x35, 0x89, 0x9e, 0xe2, 0x77, 0xa0, 0x88, 0x36, 0xf2, 0xa7, 0xe0, - 0x61, 0xe0, 0xa7, 0x60, 0xb2, 0x52, 0x92, 0xa7, 0x90, 0xb7, 0xcc, 0x5e, 0xef, 0xb8, 0xd5, 0xee, - 0x96, 0xb2, 0xb7, 0x53, 0x95, 0x62, 0xfd, 0x1d, 0x95, 0xa1, 0x6a, 0x92, 0x55, 0x1d, 0x0d, 0x75, - 0xd7, 0x85, 0xa6, 0x41, 0x5e, 0x8e, 0x92, 0x3c, 0x64, 0x0f, 0x9f, 0x1d, 0x3e, 0x5e, 0x5f, 0x20, - 0x2b, 0x90, 0x7f, 0xae, 0x3f, 0xfe, 0xac, 0xf1, 0xec, 0xe5, 0xd1, 0x7a, 0x8a, 0xb1, 0x27, 0xe4, - 0x6e, 0xbe, 0x22, 0xec, 0xc3, 0xa6, 0x10, 0xdd, 0x79, 0x6a, 0xa0, 0x7d, 0x13, 0xde, 0x0a, 0x79, - 0x41, 0xf5, 0x7e, 0x9d, 0x81, 0x1b, 0x6c, 0xff, 0xe1, 0xb8, 0x2b, 0xe0, 0x8d, 0xb0, 0x80, 0xd7, - 0xa2, 0x64, 0x32, 0x64, 0x39, 0xae, 0xe1, 0x7f, 0x48, 0x5f, 0xb9, 0x86, 0x1f, 0x85, 0x34, 0xfc, - 0x87, 0x53, 0x26, 0xa7, 0x94, 0xf1, 0x31, 0x8d, 0xcc, 0x2a, 0x34, 0xd2, 0xaf, 0x82, 0x8b, 0x57, - 0xa7, 0x82, 0xcf, 0x60, 0x33, 0x98, 0x2e, 0x92, 0xe6, 0x3d, 0xc8, 0x63, 0x11, 0xa5, 0x16, 0xc6, - 0xb2, 0xc6, 0x05, 0x7b, 0x8a, 0x78, 0x48, 0x9d, 0x2f, 0x4c, 0xab, 0x3b, 0x85, 0x22, 0xa2, 0x85, - 0x4a, 0x11, 0x5d, 0x67, 0x1e, 0xa7, 0xfb, 0x62, 0x28, 0x8e, 0xd3, 0xd2, 0x4a, 0x62, 0xb5, 0x97, - 0x5c, 0x11, 0x43, 0x99, 0x11, 0xc8, 0xb2, 0x95, 0xc6, 0xf5, 0xe2, 0x9f, 0x19, 0xc9, 0xd1, 0x86, - 0x91, 0x3c, 0xed, 0x91, 0x1c, 0x6d, 0x19, 0xc9, 0x11, 0xd0, 0xe8, 0xa0, 0xf8, 0x5d, 0x51, 0x8e, - 0x3f, 0x93, 0xfb, 0xee, 0xca, 0xd3, 0x74, 0xf7, 0x62, 0x28, 0x53, 0xed, 0xbf, 0x69, 0xb1, 0x17, - 0x71, 0x7c, 0x86, 0xbd, 0x18, 0xb2, 0x1c, 0xdf, 0x8b, 0xbf, 0xbd, 0xc6, 0xbd, 0x18, 0x91, 0xdc, - 0xcc, 0x7b, 0xf1, 0x0a, 0xf6, 0x9b, 0x97, 0x92, 0xb7, 0xdf, 0xb0, 0x50, 0xb1, 0xfb, 0x4d, 0x56, - 0xce, 0x05, 0x6b, 0x1f, 0x72, 0x4a, 0xef, 0xf5, 0x86, 0xb6, 0x43, 0x2d, 0x9f, 0x46, 0xb7, 0xc5, - 0x48, 0x48, 0xa3, 0x11, 0xc7, 0x78, 0x81, 0x00, 0x97, 0xbe, 0xae, 0x0b, 0x8f, 0xbe, 0x08, 0x89, - 0xa3, 0xaf, 0xb4, 0x92, 0x58, 0x97, 0x4b, 0xf8, 0x60, 0x06, 0x2e, 0x85, 0x2c, 0xbf, 0x5e, 0x5c, - 0x8a, 0x48, 0xee, 0x3a, 0xb9, 0xe4, 0xa5, 0xe4, 0x71, 0x09, 0xab, 0x11, 0xcb, 0x25, 0x59, 0x3a, - 0x17, 0xac, 0xfd, 0x2e, 0x05, 0x85, 0x03, 0x7a, 0xa1, 0x9b, 0x4e, 0xcb, 0x61, 0x47, 0x9f, 0xb7, - 0x61, 0x83, 0x91, 0x8c, 0x5a, 0xcd, 0x57, 0xa6, 0xd1, 0x6f, 0x3a, 0x66, 0x97, 0xf6, 0x79, 0x6a, - 0x79, 0x7d, 0x4d, 0x3c, 0xf8, 0xc4, 0x34, 0xfa, 0x2f, 0xd8, 0x30, 0xd9, 0x01, 0x72, 0xd6, 0xea, - 0xb7, 0x4e, 0x83, 0x60, 0x71, 0x58, 0x5c, 0xc7, 0x27, 0x4a, 0xf4, 0xb0, 0xdf, 0x33, 0xdb, 0xdd, - 0x26, 0x9b, 0x75, 0x26, 0x80, 0x7e, 0xc9, 0x1f, 0x1c, 0xd0, 0x0b, 0xed, 0x37, 0xee, 0x79, 0x70, - 0x1e, 0x9e, 0xb3, 0xf3, 0xa0, 0x44, 0x4f, 0x73, 0x1e, 0x44, 0x9b, 0x29, 0xce, 0x83, 0x18, 0xdd, - 0x77, 0x1e, 0xfc, 0x90, 0x9d, 0x07, 0xc5, 0xaa, 0xf2, 0xf3, 0x60, 0x84, 0xa1, 0x6f, 0xf1, 0x77, - 0xb3, 0x6f, 0x2e, 0xb7, 0x17, 0x74, 0xd7, 0xcc, 0x3b, 0xdf, 0x5d, 0xd1, 0x46, 0xfd, 0x00, 0xd6, - 0xf9, 0x89, 0xbd, 0x6d, 0x51, 0x47, 0xae, 0xe7, 0x03, 0x58, 0xb6, 0xf9, 0x80, 0xb7, 0x9c, 0x2b, - 0xa3, 0xcb, 0xed, 0xbc, 0x40, 0x35, 0xf6, 0xd9, 0xef, 0x3c, 0xff, 0xd4, 0xd1, 0x9e, 0xe0, 0xe5, - 0x42, 0x98, 0x63, 0x2a, 0x75, 0x58, 0x12, 0x00, 0xcc, 0xa4, 0xac, 0x3e, 0x33, 0x70, 0x1b, 0x44, - 0x6a, 0x7f, 0x4d, 0xc1, 0x0d, 0x79, 0x70, 0x9d, 0x2d, 0x17, 0xb2, 0x0b, 0x45, 0x84, 0x4e, 0x51, - 0xd7, 0x55, 0x61, 0x22, 0xcb, 0x5a, 0x0f, 0x94, 0x75, 0x2b, 0x3a, 0x71, 0xdf, 0xf1, 0xe4, 0x13, - 0xef, 0x9a, 0x32, 0xf7, 0x32, 0xfc, 0x27, 0x0d, 0x44, 0x9c, 0xc4, 0xd8, 0x57, 0x57, 0x36, 0x3f, - 0x0e, 0xcb, 0x66, 0x35, 0xfa, 0xc4, 0xe9, 0x37, 0x1c, 0x57, 0xcd, 0xd7, 0x57, 0xaf, 0x9a, 0x7a, - 0x48, 0x35, 0xdf, 0x9f, 0x2e, 0xb7, 0x6b, 0x11, 0xcd, 0x03, 0x79, 0xed, 0xc0, 0x8c, 0xb0, 0x64, - 0xdf, 0x63, 0x97, 0x24, 0x3e, 0x84, 0x92, 0x19, 0x57, 0x33, 0x09, 0xd5, 0x1a, 0x70, 0x43, 0xde, - 0xd8, 0xfd, 0xd4, 0xad, 0x07, 0xce, 0xba, 0x13, 0x73, 0x29, 0xe8, 0x6a, 0x0e, 0x2e, 0xfd, 0x14, - 0x6e, 0xc8, 0x4b, 0xd7, 0x8c, 0xbb, 0xfb, 0x1b, 0xde, 0xe5, 0xcf, 0x9f, 0x0d, 0x8a, 0xc6, 0x9e, - 0xd9, 0x3f, 0x31, 0x4e, 0x7d, 0x6e, 0xdb, 0x7c, 0x20, 0xe4, 0x56, 0xa0, 0x98, 0x5b, 0xf1, 0xd8, - 0x15, 0x0d, 0x69, 0xee, 0xcd, 0x50, 0x00, 0xe2, 0x66, 0x88, 0x36, 0x88, 0xf4, 0x89, 0xc6, 0xac, - 0xb9, 0x30, 0xd1, 0x40, 0xe8, 0x34, 0xa2, 0x21, 0x4c, 0xa6, 0x10, 0x0d, 0x11, 0x59, 0x25, 0x1a, - 0x57, 0xb0, 0x0c, 0x52, 0x34, 0xc4, 0xf0, 0x0c, 0xa2, 0x11, 0x34, 0xfc, 0x7a, 0x89, 0x86, 0x3a, - 0xb7, 0xeb, 0x14, 0x0d, 0x37, 0x23, 0x4f, 0x34, 0x44, 0x21, 0x62, 0x45, 0x03, 0x6b, 0x26, 0xa1, - 0x9e, 0x68, 0x04, 0xa9, 0x3b, 0x81, 0x68, 0xa8, 0xb8, 0x14, 0x74, 0x35, 0x07, 0x97, 0x5c, 0xd1, - 0x98, 0x79, 0x77, 0xbb, 0xa2, 0x11, 0xcc, 0xa6, 0xfe, 0xeb, 0x9b, 0x90, 0xdb, 0x13, 0xaf, 0x81, - 0x89, 0x01, 0x39, 0x7c, 0xc1, 0x49, 0x34, 0x55, 0x52, 0xc1, 0x97, 0xa6, 0xe5, 0x3b, 0xb1, 0x18, - 0x14, 0xa5, 0xb7, 0xfe, 0xfe, 0xe7, 0xff, 0xfd, 0x3e, 0xbd, 0x06, 0xab, 0x1c, 0xf4, 0x1d, 0x3c, - 0x3e, 0x12, 0x13, 0x96, 0xdd, 0x77, 0x50, 0xe4, 0xdb, 0x93, 0xbc, 0x54, 0x2b, 0xdf, 0x4d, 0x40, - 0xc5, 0x07, 0xb4, 0x00, 0xbc, 0x57, 0x40, 0xe4, 0x6e, 0x74, 0xc3, 0xcf, 0x3f, 0xc3, 0x7b, 0x49, - 0xb0, 0xc4, 0x98, 0xde, 0x2b, 0x1e, 0x75, 0xcc, 0xb1, 0x57, 0x4a, 0xea, 0x98, 0x8a, 0x37, 0x45, - 0x11, 0x31, 0x45, 0x0d, 0x5f, 0xb4, 0xec, 0x6e, 0x64, 0x0d, 0x7d, 0xaf, 0x78, 0x22, 0x6b, 0x18, - 0x78, 0x99, 0x13, 0x5f, 0x43, 0xde, 0xa4, 0x8f, 0xae, 0xa1, 0xff, 0x85, 0x49, 0x74, 0x0d, 0x03, - 0x9d, 0xfe, 0xc4, 0xf5, 0xe4, 0xd3, 0x8b, 0x59, 0x4f, 0xff, 0x0c, 0xef, 0x25, 0xc1, 0x12, 0x63, - 0x7a, 0xbd, 0x73, 0x75, 0xcc, 0xb1, 0x3e, 0xbe, 0x3a, 0xe6, 0x78, 0x0b, 0x3e, 0x2a, 0xe6, 0x97, - 0xb0, 0xe2, 0xef, 0xfb, 0x91, 0xfb, 0x13, 0x36, 0x32, 0xcb, 0x95, 0x64, 0x60, 0x7c, 0xe4, 0x5f, - 0xc2, 0x6a, 0xe0, 0x2d, 0x07, 0x51, 0x7a, 0x54, 0xbd, 0x55, 0x29, 0x3f, 0x98, 0x00, 0x99, 0x18, - 0x3c, 0xd0, 0x24, 0x57, 0x07, 0x57, 0xb5, 0xe5, 0xd5, 0xc1, 0x95, 0x1d, 0xf7, 0x98, 0xe0, 0x81, - 0x5e, 0xb8, 0x3a, 0xb8, 0xaa, 0xe9, 0xae, 0x0e, 0xae, 0x6e, 0xac, 0xc7, 0x92, 0x0c, 0xfb, 0x47, - 0x91, 0x24, 0x0b, 0xf6, 0x1c, 0x23, 0x49, 0x16, 0x6e, 0x20, 0xc6, 0x93, 0x4c, 0x36, 0xbb, 0xa2, - 0x49, 0x16, 0xea, 0xd0, 0x45, 0x93, 0x2c, 0xdc, 0x37, 0x4b, 0x24, 0x99, 0x9c, 0x70, 0x0c, 0xc9, - 0x42, 0x73, 0x7e, 0x30, 0x01, 0x72, 0xc2, 0x3a, 0xc7, 0x06, 0x57, 0x35, 0x79, 0xe3, 0xea, 0x3c, - 0x61, 0x70, 0x51, 0x67, 0xbc, 0xed, 0x47, 0xd6, 0x39, 0xd8, 0x47, 0x89, 0xac, 0x73, 0xa8, 0xd5, - 0x90, 0x50, 0x67, 0xd9, 0x88, 0x8a, 0xae, 0x73, 0xa8, 0x7b, 0x16, 0x5d, 0xe7, 0x70, 0x4f, 0x2b, - 0x71, 0x3f, 0xcb, 0x09, 0xc7, 0xec, 0xe7, 0xd0, 0x9c, 0x1f, 0x4c, 0x80, 0x4c, 0xfc, 0x71, 0x72, - 0x5b, 0x20, 0xea, 0x1f, 0xa7, 0x70, 0x83, 0xa5, 0x7c, 0x37, 0x01, 0x95, 0xb8, 0xce, 0xfe, 0x7e, - 0x83, 0x7a, 0x9d, 0x15, 0xbd, 0x94, 0x72, 0x25, 0x19, 0x18, 0x1f, 0x79, 0x08, 0x05, 0xdf, 0xad, - 0x99, 0xdc, 0x9b, 0xec, 0xa2, 0x5f, 0xbe, 0x9f, 0x88, 0x4b, 0x9c, 0xb0, 0xff, 0x52, 0xac, 0x9e, - 0xb0, 0xe2, 0x06, 0x5e, 0xae, 0x24, 0x03, 0x13, 0x23, 0xfb, 0x2f, 0xc0, 0xea, 0xc8, 0x8a, 0x4b, - 0x76, 0xb9, 0x92, 0x0c, 0x9c, 0x84, 0x55, 0xe2, 0x08, 0x1d, 0xc9, 0xaa, 0xc0, 0x19, 0x3d, 0x92, - 0x55, 0xc1, 0x73, 0x78, 0x22, 0xab, 0x30, 0x66, 0x0c, 0xab, 0x82, 0x61, 0x2b, 0xc9, 0xc0, 0x89, - 0x58, 0x85, 0xd7, 0xaa, 0x68, 0x56, 0x05, 0x6f, 0x82, 0xd1, 0xac, 0x0a, 0xdd, 0xcf, 0x12, 0x59, - 0x15, 0x37, 0x61, 0xc5, 0x15, 0x2d, 0x8e, 0x55, 0x13, 0x2f, 0xb5, 0xff, 0x86, 0x14, 0xc7, 0xaa, - 0x09, 0x22, 0xab, 0x2e, 0x5b, 0x11, 0x91, 0x77, 0x4b, 0x6f, 0xbe, 0xda, 0x5a, 0xf8, 0xe7, 0x57, - 0x5b, 0x0b, 0xbf, 0x1a, 0x6d, 0xa5, 0xde, 0x8c, 0xb6, 0x52, 0xff, 0x18, 0x6d, 0xa5, 0xfe, 0x3d, - 0xda, 0x4a, 0x1d, 0x2f, 0xf1, 0x7f, 0x58, 0x7d, 0xf8, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x96, - 0x0e, 0xd9, 0x9f, 0xc9, 0x2b, 0x00, 0x00, + // 2641 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xc9, 0x6f, 0x1b, 0xc9, + 0xf5, 0x36, 0x29, 0x4a, 0x22, 0x1f, 0xb5, 0xb9, 0x2c, 0xdb, 0x1c, 0x8e, 0x7f, 0x92, 0xd1, 0xfe, + 0xd9, 0xa6, 0x1d, 0x87, 0x9c, 0xa1, 0x33, 0x19, 0xc7, 0x33, 0x93, 0xc4, 0xb2, 0xbc, 0xd0, 0x8b, + 0x6c, 0xb4, 0x6c, 0x23, 0x97, 0x40, 0x68, 0x91, 0x25, 0x4d, 0x9b, 0x54, 0x37, 0xd3, 0xdd, 0xf4, + 0x58, 0x08, 0x12, 0x64, 0x71, 0xfe, 0x84, 0x00, 0x41, 0x0e, 0x01, 0x72, 0x0a, 0x90, 0x43, 0x0e, + 0x39, 0xe5, 0x90, 0x3f, 0xc0, 0xc8, 0x29, 0xc7, 0x9c, 0x94, 0x8c, 0x80, 0x00, 0x39, 0xe5, 0x9a, + 0x63, 0x82, 0xda, 0x7a, 0x29, 0x56, 0x2f, 0x5c, 0x00, 0xcf, 0x49, 0x62, 0xf5, 0xf7, 0xea, 0xbd, + 0xaa, 0xf7, 0xd5, 0x57, 0xd5, 0xaf, 0x1a, 0xae, 0xed, 0x9b, 0xde, 0xe7, 0x83, 0xdd, 0x7a, 0xdb, + 0x3e, 0x68, 0x74, 0xec, 0x76, 0x17, 0x3b, 0x0d, 0xf7, 0x0b, 0xc3, 0x39, 0xe8, 0x9a, 0x5e, 0xc3, + 0xe8, 0x9b, 0x8d, 0xb6, 0x6d, 0x79, 0x8e, 0xdd, 0xab, 0xf7, 0x1d, 0xdb, 0xb3, 0x11, 0x62, 0x90, + 0xba, 0x80, 0xd4, 0x5f, 0x7d, 0x58, 0xbd, 0x9a, 0xd2, 0x83, 0xdb, 0xc7, 0x6d, 0x97, 0xd9, 0x57, + 0xd3, 0xbc, 0xd9, 0xbb, 0x2f, 0x71, 0xdb, 0x13, 0xe8, 0xb4, 0x9e, 0xbd, 0xc3, 0x3e, 0x16, 0xd8, + 0xd5, 0x7d, 0x7b, 0xdf, 0xa6, 0xff, 0x36, 0xc8, 0x7f, 0xbc, 0xf5, 0xbd, 0x7d, 0xdb, 0xde, 0xef, + 0xe1, 0x06, 0xfd, 0xb5, 0x3b, 0xd8, 0x6b, 0x18, 0xd6, 0x21, 0x7f, 0xf4, 0x71, 0x42, 0xe7, 0x3e, + 0xbc, 0xdf, 0x1b, 0xec, 0x9b, 0x16, 0xff, 0xc3, 0x0c, 0xb5, 0x8f, 0x60, 0xe9, 0x1e, 0xf6, 0xb6, + 0xec, 0x0e, 0xd6, 0xf1, 0x0f, 0x06, 0xd8, 0xf5, 0xd0, 0x05, 0x98, 0xb7, 0xec, 0x0e, 0xde, 0x31, + 0x3b, 0x95, 0xdc, 0xf9, 0x5c, 0xad, 0xb4, 0x01, 0xc7, 0x47, 0xeb, 0x73, 0x04, 0xd1, 0xda, 0xd4, + 0xe7, 0xc8, 0xa3, 0x56, 0x47, 0xfb, 0x0e, 0x2c, 0xfb, 0x66, 0x6e, 0xdf, 0xb6, 0x5c, 0x8c, 0xae, + 0x41, 0x81, 0x3c, 0xa4, 0x46, 0xe5, 0x66, 0xa5, 0x3e, 0x3c, 0xb9, 0x75, 0x8a, 0xa7, 0x28, 0xed, + 0xcd, 0x2c, 0xac, 0x3c, 0x32, 0x5d, 0xda, 0x85, 0x2b, 0x5c, 0xdf, 0x85, 0xf9, 0x3d, 0xb3, 0xe7, + 0x61, 0xc7, 0xe5, 0xbd, 0x5c, 0x53, 0xf5, 0x22, 0x9b, 0xd5, 0xef, 0x32, 0x1b, 0x5d, 0x18, 0x57, + 0x7f, 0x57, 0x80, 0x79, 0xde, 0x88, 0x56, 0x61, 0xd6, 0x32, 0x0e, 0x30, 0xe9, 0x71, 0xa6, 0x56, + 0xd2, 0xd9, 0x0f, 0xd4, 0x80, 0xb2, 0xd9, 0xd9, 0xe9, 0x3b, 0x78, 0xcf, 0x7c, 0x8d, 0xdd, 0x4a, + 0x9e, 0x3c, 0xdb, 0x58, 0x3a, 0x3e, 0x5a, 0x87, 0xd6, 0xe6, 0x53, 0xde, 0xaa, 0x83, 0xd9, 0x11, + 0xff, 0xa3, 0xa7, 0x30, 0xd7, 0x33, 0x76, 0x71, 0xcf, 0xad, 0xcc, 0x9c, 0x9f, 0xa9, 0x95, 0x9b, + 0x37, 0x46, 0x89, 0xac, 0xfe, 0x88, 0x9a, 0xde, 0xb1, 0x3c, 0xe7, 0x50, 0xe7, 0xfd, 0xa0, 0xc7, + 0x50, 0x3e, 0xc0, 0x07, 0xbb, 0xd8, 0x71, 0x3f, 0x37, 0xfb, 0x6e, 0xa5, 0x70, 0x7e, 0xa6, 0xb6, + 0xd4, 0xbc, 0x1c, 0x37, 0x6d, 0xdb, 0x7d, 0xdc, 0xae, 0x3f, 0xf6, 0xf1, 0x1b, 0xf9, 0x95, 0x13, + 0x7a, 0xd8, 0x1e, 0x7d, 0x13, 0x66, 0x1d, 0xbb, 0x87, 0xdd, 0xca, 0x2c, 0xed, 0xe8, 0x5c, 0xec, + 0xfc, 0xdb, 0x3d, 0x4c, 0xad, 0x19, 0x1c, 0x5d, 0x80, 0x45, 0x32, 0x25, 0xc1, 0x5c, 0xcc, 0xd1, + 0x79, 0x5a, 0x20, 0x8d, 0xfe, 0xe8, 0xbf, 0x0f, 0x65, 0xca, 0x09, 0x3e, 0x05, 0xf3, 0x74, 0x0a, + 0x3e, 0x1d, 0x69, 0x0a, 0x48, 0x63, 0x78, 0x1a, 0xc0, 0xf2, 0x1b, 0xaa, 0xdf, 0x82, 0x72, 0xe8, + 0x11, 0x5a, 0x81, 0x99, 0x2e, 0x3e, 0x64, 0xec, 0xd3, 0xc9, 0xbf, 0x24, 0x89, 0xaf, 0x8c, 0xde, + 0x00, 0x57, 0xf2, 0xb4, 0x8d, 0xfd, 0xb8, 0x99, 0xbf, 0x91, 0xab, 0x7e, 0x06, 0xcb, 0x52, 0xcf, + 0xa3, 0x98, 0x6b, 0xb7, 0xe1, 0x64, 0x28, 0x62, 0xce, 0xe4, 0x3a, 0xcc, 0x92, 0xe0, 0x18, 0x65, + 0x92, 0xa8, 0xcc, 0x60, 0xda, 0xef, 0x73, 0x70, 0xf2, 0x79, 0xbf, 0x63, 0x78, 0x78, 0xd4, 0x75, + 0x84, 0xbe, 0x0d, 0x0b, 0x14, 0xf4, 0x0a, 0x3b, 0xae, 0x69, 0x5b, 0x34, 0xc0, 0x72, 0xf3, 0x7d, + 0x95, 0xc7, 0x17, 0x0c, 0xa2, 0xd3, 0x4c, 0xf0, 0x1f, 0xe8, 0x03, 0x28, 0x10, 0x45, 0xaa, 0xcc, + 0x50, 0xbb, 0x73, 0x49, 0xec, 0xd1, 0x29, 0x52, 0xdb, 0x00, 0x14, 0x8e, 0x75, 0xac, 0xc5, 0xbb, + 0x05, 0x27, 0x75, 0x7c, 0x60, 0xbf, 0x1a, 0x7d, 0xbc, 0xab, 0x30, 0xbb, 0x67, 0x3b, 0x6d, 0x96, + 0x89, 0xa2, 0xce, 0x7e, 0x68, 0xab, 0x80, 0xc2, 0xfd, 0xb1, 0x98, 0xb8, 0x34, 0x3d, 0x33, 0xdc, + 0x6e, 0xc8, 0x85, 0x67, 0xb8, 0x5d, 0xc9, 0x05, 0x41, 0x10, 0x17, 0xe4, 0x91, 0x2f, 0x4d, 0xcc, + 0x2c, 0x18, 0x1d, 0x79, 0x98, 0x34, 0x3a, 0x8a, 0xa7, 0x28, 0xed, 0x86, 0x18, 0xdd, 0xc8, 0xae, + 0xfd, 0x71, 0x84, 0xbd, 0x6b, 0x7f, 0x2e, 0x30, 0xa9, 0x23, 0x8d, 0x63, 0x48, 0x5d, 0xd8, 0x6c, + 0x58, 0xea, 0xfe, 0x3e, 0xf3, 0xee, 0xa4, 0x4e, 0x15, 0x99, 0x52, 0xea, 0x1a, 0x50, 0x76, 0xb1, + 0xf3, 0xca, 0x6c, 0x13, 0x76, 0x30, 0xa9, 0xe3, 0x21, 0x6c, 0xb3, 0xe6, 0xd6, 0xa6, 0xab, 0x03, + 0x87, 0xb4, 0x3a, 0x2e, 0xba, 0x04, 0x45, 0xce, 0x25, 0xa6, 0x67, 0xa5, 0x8d, 0xf2, 0xf1, 0xd1, + 0xfa, 0x3c, 0x23, 0x93, 0xab, 0xcf, 0x33, 0x36, 0xb9, 0xe8, 0x3e, 0x2c, 0x75, 0xb0, 0x6b, 0x3a, + 0xb8, 0xb3, 0xe3, 0x7a, 0x86, 0xc7, 0xd5, 0x6b, 0xa9, 0xf9, 0x7f, 0x71, 0x29, 0xde, 0x26, 0x28, + 0x2a, 0x7f, 0x8b, 0xdc, 0x90, 0xb6, 0x28, 0x64, 0x70, 0x5e, 0x21, 0x83, 0xe7, 0x00, 0x06, 0xfd, + 0x1d, 0xcf, 0xde, 0x21, 0xeb, 0xa7, 0x52, 0xa4, 0x14, 0x2e, 0x0e, 0xfa, 0xcf, 0xec, 0x4d, 0xc3, + 0xc3, 0xa8, 0x0a, 0x45, 0x67, 0x60, 0x79, 0x26, 0xc9, 0x40, 0x89, 0x5a, 0xfb, 0xbf, 0x27, 0x50, + 0x38, 0x21, 0x51, 0x7c, 0xb2, 0x03, 0x89, 0x22, 0x9c, 0x4b, 0x94, 0x28, 0x4a, 0x42, 0x06, 0xd3, + 0x1e, 0xc2, 0xea, 0x6d, 0x07, 0x1b, 0x1e, 0xe6, 0x13, 0x2e, 0x68, 0x78, 0x9d, 0xeb, 0x07, 0xe3, + 0xe0, 0xba, 0xaa, 0x1b, 0x6e, 0x11, 0x92, 0x90, 0x2d, 0x38, 0x2d, 0x75, 0xc6, 0xa3, 0xfa, 0x08, + 0xe6, 0x79, 0x12, 0x79, 0x87, 0xef, 0x27, 0x74, 0xa8, 0x0b, 0xac, 0xf6, 0x12, 0x4e, 0xde, 0xc3, + 0x9e, 0x14, 0xd9, 0x35, 0x80, 0x80, 0x33, 0x7c, 0xcd, 0x2d, 0x1e, 0x1f, 0xad, 0x97, 0x7c, 0xca, + 0xe8, 0x25, 0x9f, 0x31, 0xe8, 0x32, 0x2c, 0x9b, 0x96, 0x8b, 0x1d, 0x6f, 0xa7, 0x83, 0xf7, 0x8c, + 0x41, 0xcf, 0x73, 0xb9, 0xc2, 0x2c, 0xb1, 0xe6, 0x4d, 0xde, 0xaa, 0x3d, 0x04, 0x14, 0xf6, 0x35, + 0x59, 0xe0, 0x7f, 0xcc, 0xc3, 0x2a, 0x13, 0xd3, 0x89, 0x82, 0xdf, 0x84, 0x65, 0x81, 0x1e, 0x61, + 0x1f, 0x58, 0xe2, 0x36, 0x62, 0x2b, 0xb8, 0x1e, 0xd9, 0x0a, 0xb2, 0xa5, 0x12, 0x3d, 0x86, 0xa2, + 0x63, 0xf7, 0x7a, 0xbb, 0x46, 0xbb, 0x5b, 0x29, 0x9c, 0xcf, 0xd5, 0x96, 0x9a, 0x1f, 0xaa, 0x0c, + 0x55, 0x83, 0xac, 0xeb, 0xdc, 0x50, 0xf7, 0xbb, 0xd0, 0x34, 0x28, 0x8a, 0x56, 0x54, 0x84, 0xc2, + 0xd6, 0x93, 0xad, 0x3b, 0x2b, 0x27, 0xd0, 0x02, 0x14, 0x9f, 0xea, 0x77, 0x5e, 0xb4, 0x9e, 0x3c, + 0xdf, 0x5e, 0xc9, 0x11, 0xf6, 0x48, 0xdd, 0x4d, 0x96, 0x84, 0x4d, 0x58, 0x65, 0xa2, 0x3b, 0x49, + 0x0e, 0xb4, 0xb3, 0x70, 0x5a, 0xea, 0x85, 0xab, 0xf7, 0x9b, 0x19, 0x38, 0x45, 0xd6, 0x1f, 0x6f, + 0xf7, 0x05, 0xbc, 0x25, 0x0b, 0x78, 0x23, 0x4e, 0x26, 0x25, 0xcb, 0x61, 0x0d, 0xff, 0x6d, 0x7e, + 0xea, 0x1a, 0xbe, 0x2d, 0x69, 0xf8, 0x27, 0x23, 0x06, 0xa7, 0x94, 0xf1, 0x21, 0x8d, 0x2c, 0x28, + 0x34, 0x32, 0xac, 0x82, 0xb3, 0xd3, 0x53, 0xc1, 0x27, 0xb0, 0x1a, 0x0d, 0x97, 0x93, 0xe6, 0x63, + 0x28, 0xf2, 0x24, 0x0a, 0x2d, 0x4c, 0x64, 0x8d, 0x0f, 0x0e, 0x14, 0x71, 0x0b, 0x7b, 0x5f, 0xd8, + 0x4e, 0x77, 0x04, 0x45, 0xe4, 0x16, 0x2a, 0x45, 0xf4, 0x3b, 0x0b, 0x38, 0x6d, 0xb1, 0xa6, 0x24, + 0x4e, 0x0b, 0x2b, 0x81, 0xd5, 0x9e, 0x53, 0x45, 0x94, 0x22, 0x43, 0x50, 0x20, 0x33, 0xcd, 0xe7, + 0x8b, 0xfe, 0x4f, 0x48, 0xce, 0x6d, 0x08, 0xc9, 0xf3, 0x01, 0xc9, 0xb9, 0x2d, 0x21, 0x39, 0x07, + 0xb4, 0x3a, 0x5c, 0xfc, 0xa6, 0x14, 0xe3, 0xf7, 0xc4, 0xba, 0x9b, 0x7a, 0x98, 0xfe, 0x5a, 0x94, + 0x22, 0xd5, 0xfe, 0x95, 0x67, 0x6b, 0x91, 0xb7, 0x8f, 0xb1, 0x16, 0x25, 0xcb, 0xe1, 0xb5, 0xf8, + 0x8b, 0x77, 0xb8, 0x16, 0x63, 0x82, 0x1b, 0x7b, 0x2d, 0x4e, 0x61, 0xbd, 0x05, 0x21, 0x05, 0xeb, + 0x8d, 0x27, 0x2a, 0x71, 0xbd, 0x89, 0xcc, 0xf9, 0x60, 0xed, 0x16, 0xa5, 0xf4, 0xed, 0xde, 0xc0, + 0xf5, 0xb0, 0x13, 0xd2, 0xe8, 0x36, 0x6b, 0x91, 0x34, 0x9a, 0xe3, 0x08, 0x2f, 0x38, 0xc0, 0xa7, + 0xaf, 0xdf, 0x45, 0x40, 0x5f, 0x0e, 0x49, 0xa2, 0xaf, 0xb0, 0x12, 0x58, 0x9f, 0x4b, 0xfc, 0xc1, + 0x18, 0x5c, 0x92, 0x2c, 0xbf, 0x5a, 0x5c, 0x8a, 0x09, 0xee, 0x5d, 0x72, 0x29, 0x08, 0x29, 0xe0, + 0x12, 0xcf, 0x46, 0x22, 0x97, 0x44, 0xea, 0x7c, 0xb0, 0xf6, 0xcb, 0x1c, 0x94, 0x1f, 0xe2, 0x43, + 0xdd, 0xf6, 0x0c, 0x8f, 0x1c, 0x7d, 0xae, 0xc2, 0x49, 0x42, 0x32, 0xec, 0xec, 0xbc, 0xb4, 0x4d, + 0x6b, 0xc7, 0xb3, 0xbb, 0xd8, 0xa2, 0xa1, 0x15, 0xf5, 0x65, 0xf6, 0xe0, 0x81, 0x6d, 0x5a, 0xcf, + 0x48, 0x33, 0xba, 0x06, 0xe8, 0xc0, 0xb0, 0x8c, 0xfd, 0x28, 0x98, 0x1d, 0x16, 0x57, 0xf8, 0x13, + 0x25, 0x7a, 0x60, 0xf5, 0xec, 0x76, 0x77, 0x87, 0x8c, 0x7a, 0x26, 0x82, 0x7e, 0x4e, 0x1f, 0x3c, + 0xc4, 0x87, 0xda, 0xcf, 0xfc, 0xf3, 0xe0, 0x24, 0x3c, 0x27, 0xe7, 0x41, 0x81, 0x1e, 0xe5, 0x3c, + 0xc8, 0x6d, 0x46, 0x38, 0x0f, 0x72, 0xef, 0xa1, 0xf3, 0xe0, 0x2d, 0x72, 0x1e, 0x64, 0xb3, 0x4a, + 0xcf, 0x83, 0x31, 0x86, 0xa1, 0xc9, 0xdf, 0x28, 0xbc, 0x3d, 0x5a, 0x3f, 0xa1, 0xfb, 0x66, 0xc1, + 0xf9, 0x6e, 0x4a, 0x0b, 0xf5, 0x33, 0x58, 0xa1, 0x27, 0xf6, 0xb6, 0x83, 0x3d, 0x31, 0x9f, 0x57, + 0xa0, 0xe4, 0xd2, 0x86, 0x60, 0x3a, 0x17, 0x8e, 0x8f, 0xd6, 0x8b, 0x0c, 0xd5, 0xda, 0x24, 0xfb, + 0x3c, 0xfd, 0xaf, 0xa3, 0xdd, 0xe3, 0x2f, 0x17, 0xcc, 0x9c, 0x87, 0xd2, 0x84, 0x39, 0x06, 0xe0, + 0x91, 0x54, 0xd5, 0x67, 0x06, 0x6a, 0xc3, 0x91, 0xda, 0x9f, 0x72, 0x70, 0x4a, 0x1c, 0x5c, 0xc7, + 0x8b, 0x05, 0x6d, 0xc0, 0x12, 0x87, 0x8e, 0x90, 0xd7, 0x45, 0x66, 0x22, 0xd2, 0xda, 0x8c, 0xa4, + 0x75, 0x2d, 0x3e, 0xf0, 0xd0, 0xf1, 0xe4, 0x41, 0xf0, 0x9a, 0x32, 0xf1, 0x34, 0xfc, 0x33, 0x0f, + 0x88, 0x9d, 0xc4, 0xc8, 0x4f, 0x5f, 0x36, 0xef, 0xcb, 0xb2, 0x59, 0x8f, 0x3f, 0x71, 0x86, 0x0d, + 0x87, 0x55, 0xf3, 0xcd, 0xf4, 0x55, 0x53, 0x97, 0x54, 0xf3, 0xe6, 0x68, 0xb1, 0xbd, 0x13, 0xd1, + 0x7c, 0x28, 0x5e, 0x3b, 0x78, 0x44, 0x3c, 0x65, 0xdf, 0x20, 0x2f, 0x49, 0xb4, 0x89, 0x4b, 0x66, + 0x52, 0xce, 0x04, 0x54, 0x6b, 0xc1, 0x29, 0xf1, 0xc6, 0x1e, 0xa6, 0x6e, 0x33, 0x72, 0xd6, 0xcd, + 0xcc, 0xa5, 0x68, 0x57, 0x13, 0x70, 0xe9, 0xbb, 0x70, 0x4a, 0xbc, 0x74, 0x8d, 0xb9, 0xba, 0xcf, + 0x04, 0x2f, 0x7f, 0xe1, 0x68, 0xb8, 0x68, 0xdc, 0xb6, 0xad, 0x3d, 0x73, 0x3f, 0xd4, 0x6d, 0x9b, + 0x36, 0x48, 0xdd, 0x32, 0x14, 0xe9, 0x96, 0x3d, 0xf6, 0x45, 0x43, 0x98, 0x07, 0x23, 0x64, 0x80, + 0xa4, 0x11, 0x72, 0x1b, 0x8e, 0x0c, 0x89, 0xc6, 0xb8, 0xb1, 0x10, 0xd1, 0xe0, 0xd0, 0x51, 0x44, + 0x83, 0x99, 0x8c, 0x20, 0x1a, 0xcc, 0xb3, 0x4a, 0x34, 0xa6, 0x30, 0x0d, 0x42, 0x34, 0x58, 0xf3, + 0x18, 0xa2, 0x11, 0x35, 0xfc, 0x6a, 0x89, 0x86, 0x3a, 0xb6, 0x77, 0x29, 0x1a, 0x7e, 0x44, 0x81, + 0x68, 0xb0, 0x44, 0x24, 0x8a, 0x06, 0xcf, 0x99, 0x80, 0x06, 0xa2, 0x11, 0xa5, 0x6e, 0x06, 0xd1, + 0x50, 0x71, 0x29, 0xda, 0xd5, 0x04, 0x5c, 0xf2, 0x45, 0x63, 0xec, 0xd5, 0xed, 0x8b, 0x46, 0x34, + 0x1a, 0xed, 0x47, 0x70, 0x86, 0x45, 0x79, 0xe7, 0xb5, 0x87, 0x2d, 0xba, 0x8e, 0x78, 0xe7, 0xb7, + 0xa0, 0x6c, 0x58, 0x16, 0x3f, 0xe1, 0xb8, 0x49, 0xb5, 0x81, 0x5b, 0x01, 0x4c, 0x0f, 0xdb, 0xa0, + 0xf3, 0x50, 0xee, 0x60, 0xb7, 0xed, 0x98, 0x7d, 0x4f, 0xac, 0xe1, 0x92, 0x1e, 0x6e, 0xd2, 0x5e, + 0xc0, 0xd9, 0x21, 0xf7, 0x7c, 0x9e, 0x3e, 0x81, 0x12, 0x16, 0x8d, 0xdc, 0xbb, 0xb2, 0xc4, 0x1d, + 0x58, 0x06, 0x78, 0xed, 0x11, 0x9c, 0x61, 0xc3, 0x1d, 0x1a, 0x56, 0x13, 0x16, 0x7c, 0x58, 0x30, + 0x6d, 0xcb, 0xc7, 0x47, 0xeb, 0x65, 0x1f, 0xdb, 0xda, 0xd4, 0xcb, 0x3e, 0xa8, 0xd5, 0xd1, 0xde, + 0x83, 0xb3, 0x43, 0xbd, 0xf1, 0xf9, 0x6b, 0xc1, 0xa9, 0x7b, 0xd8, 0x9b, 0x8a, 0x97, 0x6d, 0x58, + 0x8d, 0x76, 0x35, 0x8d, 0x89, 0xf8, 0x4d, 0x4e, 0x94, 0x69, 0x74, 0xec, 0xda, 0x03, 0x27, 0xa8, + 0x15, 0x4e, 0x21, 0xbf, 0x08, 0x0a, 0x5d, 0xd3, 0xe2, 0xc5, 0x0d, 0x9d, 0xfe, 0x8f, 0xea, 0x30, + 0xdf, 0x37, 0x0e, 0x7b, 0xb6, 0xd1, 0xe1, 0xca, 0xbb, 0x5a, 0x67, 0x57, 0xf8, 0x75, 0x71, 0x27, + 0x5f, 0xbf, 0x65, 0x1d, 0xea, 0x02, 0xa4, 0xe9, 0x82, 0x80, 0x41, 0x7c, 0x7c, 0xdc, 0x37, 0xa0, + 0xe8, 0xf0, 0x36, 0x1e, 0x9d, 0xf2, 0xae, 0xcf, 0xb7, 0xf3, 0xd1, 0xda, 0x7d, 0x51, 0x4c, 0x91, + 0xc7, 0xdc, 0x80, 0xb2, 0x00, 0x05, 0x59, 0xa1, 0x82, 0x28, 0x90, 0xad, 0x4d, 0x1d, 0x04, 0xa4, + 0xd5, 0xd1, 0x2a, 0x82, 0x47, 0x72, 0x74, 0xda, 0xcf, 0xf3, 0xe2, 0xcc, 0x3f, 0xa9, 0x13, 0x74, + 0x17, 0x56, 0x7c, 0x83, 0x11, 0xf6, 0xbb, 0x65, 0x61, 0x24, 0x76, 0x3c, 0x29, 0xa3, 0x33, 0x63, + 0x64, 0x34, 0x94, 0xbd, 0x42, 0xc6, 0xec, 0xc9, 0x93, 0x30, 0x71, 0xf6, 0xee, 0xd0, 0x92, 0xc7, + 0xc4, 0xa9, 0x7b, 0x42, 0x57, 0xe6, 0x14, 0xe3, 0xfa, 0x6f, 0x9e, 0xbd, 0xd3, 0x8b, 0x47, 0xfe, + 0x96, 0xfe, 0x40, 0xde, 0xd2, 0x3f, 0x88, 0xdb, 0x36, 0x65, 0xd3, 0xe1, 0x4d, 0xfd, 0xd7, 0xd3, + 0xdf, 0xd4, 0x9f, 0x49, 0x9b, 0xfa, 0xa7, 0xa3, 0x46, 0x37, 0x7e, 0x61, 0x5c, 0x08, 0xc4, 0x6c, + 0x20, 0x10, 0x93, 0x6c, 0xf5, 0xdb, 0x70, 0x5a, 0x8a, 0x93, 0x27, 0xf5, 0x26, 0x94, 0x44, 0x9a, + 0xc4, 0x76, 0x9f, 0x9c, 0xd5, 0x00, 0xde, 0xfc, 0x8f, 0x06, 0xf3, 0xb7, 0xd9, 0x37, 0x52, 0xc8, + 0x84, 0x79, 0xfe, 0x89, 0x0f, 0xd2, 0x54, 0xf6, 0xd1, 0xcf, 0x86, 0xaa, 0x17, 0x12, 0x31, 0x5c, + 0x28, 0x4e, 0xff, 0xe5, 0x0f, 0xff, 0xfe, 0x55, 0x7e, 0x19, 0x16, 0x29, 0xe8, 0xeb, 0xbc, 0x80, + 0x82, 0x6c, 0x28, 0xf9, 0x5f, 0x61, 0xa0, 0xff, 0xcf, 0xf2, 0x59, 0x49, 0xf5, 0x62, 0x0a, 0x2a, + 0xd9, 0xa1, 0x03, 0x10, 0x7c, 0x04, 0x81, 0x2e, 0xc6, 0x5f, 0x79, 0x85, 0x47, 0x78, 0x29, 0x0d, + 0x96, 0xea, 0x33, 0xf8, 0xc8, 0x41, 0xed, 0x73, 0xe8, 0xa3, 0x0a, 0xb5, 0x4f, 0xc5, 0xb7, 0x12, + 0x31, 0x3e, 0x59, 0x0e, 0x9f, 0x19, 0x6e, 0x37, 0x36, 0x87, 0xa1, 0x8f, 0x1c, 0x62, 0x73, 0x18, + 0xf9, 0x9c, 0x21, 0x39, 0x87, 0xf4, 0x9a, 0x3a, 0x3e, 0x87, 0xe1, 0x4f, 0x06, 0xe2, 0x73, 0x18, + 0xb9, 0xeb, 0x4e, 0x9d, 0x4f, 0x3a, 0xbc, 0x84, 0xf9, 0x0c, 0x8f, 0xf0, 0x52, 0x1a, 0x2c, 0xd5, + 0x67, 0x70, 0x7b, 0xac, 0xf6, 0x39, 0x74, 0x93, 0xad, 0xf6, 0x39, 0x7c, 0x09, 0x1d, 0xe7, 0xf3, + 0x35, 0x2c, 0x84, 0x6f, 0xbe, 0xd0, 0xe5, 0x8c, 0x57, 0x79, 0xd5, 0x5a, 0x3a, 0x30, 0xd9, 0xf3, + 0x0f, 0x61, 0x31, 0x72, 0xcf, 0x8f, 0x94, 0x3d, 0xaa, 0xbe, 0x2b, 0xa8, 0x5e, 0xc9, 0x80, 0x4c, + 0x75, 0x1e, 0xb9, 0x26, 0x56, 0x3b, 0x57, 0x5d, 0x4c, 0xab, 0x9d, 0x2b, 0xef, 0x9c, 0x13, 0x9c, + 0x47, 0x6e, 0x83, 0xd5, 0xce, 0x55, 0xd7, 0xce, 0x6a, 0xe7, 0xea, 0xab, 0xe5, 0x44, 0x92, 0xf1, + 0x1b, 0x94, 0x58, 0x92, 0x45, 0x6f, 0xdd, 0x62, 0x49, 0x26, 0x5f, 0xa1, 0x25, 0x93, 0x4c, 0x5c, + 0xf7, 0xc4, 0x93, 0x4c, 0xba, 0xa3, 0x8a, 0x27, 0x99, 0x7c, 0x73, 0x94, 0x4a, 0x32, 0x31, 0xe0, + 0x04, 0x92, 0x49, 0x63, 0xbe, 0x92, 0x01, 0x99, 0x31, 0xcf, 0x89, 0xce, 0x55, 0xd7, 0x9c, 0x49, + 0x79, 0xce, 0xe8, 0x9c, 0xe5, 0x99, 0xd7, 0xbb, 0x63, 0xf3, 0x1c, 0xbd, 0x49, 0x88, 0xcd, 0xb3, + 0x54, 0x6c, 0x4f, 0xc9, 0xb3, 0xb8, 0x8a, 0x89, 0xcf, 0xb3, 0x74, 0x7f, 0x14, 0x9f, 0x67, 0xf9, + 0x56, 0x27, 0x75, 0x3d, 0x8b, 0x01, 0x27, 0xac, 0x67, 0x69, 0xcc, 0x57, 0x32, 0x20, 0x53, 0x37, + 0x27, 0xff, 0x12, 0x40, 0xbd, 0x39, 0xc9, 0x57, 0x0c, 0xd5, 0x8b, 0x29, 0xa8, 0xd4, 0x79, 0x0e, + 0x57, 0xdc, 0xd5, 0xf3, 0xac, 0xb8, 0x4d, 0xa8, 0xd6, 0xd2, 0x81, 0xc9, 0x9e, 0x07, 0x50, 0x0e, + 0xd5, 0x8d, 0xd1, 0xa5, 0x6c, 0xa5, 0xee, 0xea, 0xe5, 0x54, 0x5c, 0xea, 0x80, 0xc3, 0x65, 0x61, + 0xf5, 0x80, 0x15, 0x35, 0xe8, 0x6a, 0x2d, 0x1d, 0x98, 0xea, 0x39, 0x5c, 0x02, 0x56, 0x7b, 0x56, + 0x94, 0x99, 0xab, 0xb5, 0x74, 0x60, 0x16, 0x56, 0xb1, 0x22, 0x52, 0x2c, 0xab, 0x22, 0x55, 0xaa, + 0x58, 0x56, 0x49, 0x95, 0xa8, 0x34, 0x56, 0x71, 0x9f, 0x09, 0xac, 0x8a, 0xba, 0xad, 0xa5, 0x03, + 0x33, 0xb1, 0x8a, 0x17, 0x16, 0xe3, 0x59, 0x15, 0xad, 0x85, 0xc6, 0xb3, 0x4a, 0xaa, 0x50, 0xa6, + 0xb2, 0x2a, 0x69, 0xc0, 0x8a, 0x22, 0x65, 0x12, 0xab, 0x32, 0x4f, 0x75, 0xb8, 0x46, 0x98, 0xc4, + 0xaa, 0x0c, 0x9e, 0x95, 0xe5, 0xc6, 0x78, 0xcf, 0xe1, 0xd2, 0x97, 0xda, 0xb3, 0xa2, 0xce, 0xa6, + 0xf6, 0xac, 0xaa, 0xa2, 0xc5, 0x79, 0xfe, 0x69, 0x0e, 0x96, 0xa5, 0x0a, 0x24, 0xba, 0x1a, 0x3f, + 0x91, 0x43, 0x01, 0x7c, 0x2d, 0x13, 0x36, 0x3d, 0x06, 0xa9, 0xbe, 0xa8, 0x8e, 0x41, 0x5d, 0xd2, + 0x54, 0xc7, 0x10, 0x57, 0xb0, 0x8c, 0x27, 0x7b, 0xa8, 0x5a, 0x82, 0xe2, 0xb6, 0x5c, 0xa9, 0x2a, + 0x53, 0xbd, 0x9c, 0x8a, 0x4b, 0x76, 0xfb, 0x63, 0x58, 0x8a, 0xd6, 0x8f, 0x50, 0xc2, 0xc6, 0x27, + 0x3b, 0xbf, 0x9a, 0x05, 0x9a, 0xba, 0x43, 0x47, 0x2a, 0x0a, 0xa8, 0x96, 0xb5, 0x38, 0xa2, 0xde, + 0xa1, 0x95, 0xe5, 0x89, 0x84, 0xc1, 0x47, 0x4b, 0x9f, 0x28, 0xe1, 0x74, 0x97, 0x69, 0xf0, 0xea, + 0x4a, 0x6a, 0x82, 0xff, 0x68, 0x71, 0x13, 0x25, 0x1c, 0xf0, 0x32, 0xf9, 0x8f, 0xa9, 0x95, 0xaa, + 0xfd, 0x6f, 0x54, 0xde, 0x7e, 0xb9, 0x76, 0xe2, 0x6f, 0x5f, 0xae, 0x9d, 0xf8, 0xc9, 0xf1, 0x5a, + 0xee, 0xed, 0xf1, 0x5a, 0xee, 0xaf, 0xc7, 0x6b, 0xb9, 0x7f, 0x1c, 0xaf, 0xe5, 0x76, 0xe7, 0x68, + 0xb5, 0xf1, 0xfa, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0e, 0xa1, 0x5f, 0x52, 0xdc, 0x36, 0x00, + 0x00, } diff --git a/vendor/github.com/docker/swarmkit/api/control.proto b/vendor/github.com/docker/swarmkit/api/control.proto index 66180b8a78..3ad4e63895 100644 --- a/vendor/github.com/docker/swarmkit/api/control.proto +++ b/vendor/github.com/docker/swarmkit/api/control.proto @@ -6,6 +6,7 @@ import "github.com/docker/swarmkit/api/specs.proto"; import "github.com/docker/swarmkit/api/objects.proto"; import "github.com/docker/swarmkit/api/types.proto"; import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; // Control defines the RPC methods for controlling a cluster. @@ -161,6 +162,80 @@ service Control { rpc RemoveConfig(RemoveConfigRequest) returns (RemoveConfigResponse) { option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; } + + // --- extension APIs --- + + // GetExtension returns a `GetExtensionResponse` with a `Extension` with the same + // id as `GetExtensionRequest.ExtensionId` + // - Returns `NotFound` if the Extension with the given id is not found. + // - Returns `InvalidArgument` if the `GetExtensionRequest.ExtensionId` is empty. + // - Returns an error if the get fails. + rpc GetExtension(GetExtensionRequest) returns (GetExtensionResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // CreateExtension creates an `Extension` based on the provided `CreateExtensionRequest.Extension` + // and returns a `CreateExtensionResponse`. + // - Returns `InvalidArgument` if the `CreateExtensionRequest.Extension` is malformed, + // or fails validation. + // - Returns an error if the creation fails. + rpc CreateExtension(CreateExtensionRequest) returns (CreateExtensionResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // RemoveExtension removes the extension referenced by `RemoveExtensionRequest.ID`. + // - Returns `InvalidArgument` if `RemoveExtensionRequest.ExtensionId` is empty. + // - Returns `NotFound` if the an extension named `RemoveExtensionRequest.ExtensionId` is not found. + // - Returns an error if the deletion fails. + rpc RemoveExtension(RemoveExtensionRequest) returns (RemoveExtensionResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // --- resource APIs --- + + // GetResource returns a `GetResourceResponse` with a `Resource` with the same + // id as `GetResourceRequest.Resource` + // - Returns `NotFound` if the Resource with the given id is not found. + // - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty. + // - Returns an error if getting fails. + rpc GetResource(GetResourceRequest) returns (GetResourceResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // UpdateResource updates the resource with the given `UpdateResourceRequest.Resource.Id` using the given `UpdateResourceRequest.Resource` and returns a `UpdateResourceResponse`. + // - Returns `NotFound` if the Resource with the given `UpdateResourceRequest.Resource.Id` is not found. + // - Returns `InvalidArgument` if the UpdateResourceRequest.Resource.Id` is empty. + // - Returns an error if updating fails. + rpc UpdateResource(UpdateResourceRequest) returns (UpdateResourceResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // ListResources returns a `ListResourcesResponse` with a list of `Resource`s stored in the raft store, + // or all resources matching any name in `ListConfigsRequest.Names`, any + // name prefix in `ListResourcesRequest.NamePrefixes`, any id in + // `ListResourcesRequest.ResourceIDs`, or any id prefix in `ListResourcesRequest.IDPrefixes`, + // extension name equal to `ListResourcesRequest.Extension`. + // - Returns an error if listing fails. + rpc ListResources(ListResourcesRequest) returns (ListResourcesResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // CreateResource returns a `CreateResourceResponse` after creating a `Resource` based + // on the provided `CreateResourceRequest.Resource`. + // - Returns `InvalidArgument` if the `CreateResourceRequest.Resource` is malformed, + // or if the config data is too long or contains invalid characters. + // - Returns an error if the creation fails. + rpc CreateResource(CreateResourceRequest) returns (CreateResourceResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } + + // RemoveResource removes the `Resource` referenced by `RemoveResourceRequest.ResourceID`. + // - Returns `InvalidArgument` if `RemoveResourceRequest.ResourceID` is empty. + // - Returns `NotFound` if the a resource named `RemoveResourceRequest.ResourceID` is not found. + // - Returns an error if the deletion fails. + rpc RemoveResource(RemoveResourceRequest) returns (RemoveResourceResponse) { + option (docker.protobuf.plugin.tls_authorization) = { roles: "swarm-manager" }; + } } message GetNodeRequest { @@ -556,3 +631,111 @@ message RemoveConfigRequest { // RemoveConfigResponse is an empty object indicating the successful removal of // a config. message RemoveConfigResponse {} + +// CreateExtensionRequest creates a new extension as specified by the provided +// parameters +message CreateExtensionRequest { + Annotations annotations = 1; + string description = 2; +} + +// CreateExtensionResponse contains the newly created `Extension` corresponding +// to the parameters in the CreateExtensionRequest. +message CreateExtensionResponse { + Extension extension = 1; +} + +// RemoveExtensionRequest contains the ID of the extension that should be removed. This +// removes all versions of the extension. +message RemoveExtensionRequest { + string extension_id = 1; +} + +// RemoveExtensionResponse is an empty object indicating the successful removal +// of an extension. +message RemoveExtensionResponse { +} + +// GetResourceRequest is the request to get a Extension object given a extension id. +message GetExtensionRequest { + string extension_id = 1; +} + +// GetExtensionResponse contains the Extension corresponding to the id in +// `GetExtensionRequest`. +message GetExtensionResponse { + Extension extension = 1; +} + +// CreateResourceRequest creates a new resource specified by the included +// resource object. An existing resource will not be updated. +message CreateResourceRequest { + Annotations annotations = 1; + string kind = 2; + google.protobuf.Any payload = 3; +} + +// CreateResourceResponse contains the newly created `Resource` corresponding +// to the resource in the CreateResourceRequest. +message CreateResourceResponse { + Resource resource = 1; +} + +// RemoveResourceRequest contains the ID of the resource that should be removed. This +// removes all versions of the resource. +message RemoveResourceRequest { + string resource_id = 1; +} + +// RemoveResourceResponse is an empty object indicating the successful removal +// of a resource. +message RemoveResourceResponse { +} + +// UpdateResourceRequest updates the resource specified by the given resource object. +message UpdateResourceRequest { + string resource_id = 1; + Version resource_version = 2; + // Annotations describes the annotations to update. If the Annotations should + // be unchanged, then this field should be left empty. Note that the name of + // a Resource cannot be changed, only its labels. + Annotations annotations = 3; + // Payload describes the new payload of the resource. If the Payload should + // be unchanged, then this field should be left empty. + google.protobuf.Any payload = 4; +} + +message UpdateResourceResponse { + Resource resource = 1; +} + +// GetResourceRequest is the request to get a Resource object given a resource id. +message GetResourceRequest { + string resource_id = 1; +} + +// GetResourceResponse contains the Resource corresponding to the id in +// `GetResourceRequest`. +message GetResourceResponse { + Resource resource = 1; +} + +// ListResourcesRequest is the request to list all resources in the raft store, +// or all resources filtered by (name or name prefix or id prefix), labels and extension. +message ListResourcesRequest { + message Filters { + repeated string names = 1; + repeated string id_prefixes = 2; + map labels = 3; + repeated string name_prefixes = 4; + string kind = 5; + } + + Filters filters = 1; +} + +// ListResourcesResponse contains a list of all the resources that match the name or +// name prefix filters provided in `ListResourcesRequest`. +message ListResourcesResponse { + repeated Resource resources = 1; +} diff --git a/vendor/github.com/docker/swarmkit/api/objects.pb.go b/vendor/github.com/docker/swarmkit/api/objects.pb.go index 50b639544e..495dfb9df6 100644 --- a/vendor/github.com/docker/swarmkit/api/objects.pb.go +++ b/vendor/github.com/docker/swarmkit/api/objects.pb.go @@ -8,7 +8,7 @@ import fmt "fmt" import math "math" import google_protobuf "github.com/gogo/protobuf/types" import _ "github.com/gogo/protobuf/gogoproto" -import google_protobuf3 "github.com/gogo/protobuf/types" +import google_protobuf4 "github.com/gogo/protobuf/types" import _ "github.com/docker/swarmkit/protobuf/plugin" import deepcopy "github.com/docker/swarmkit/api/deepcopy" @@ -357,7 +357,7 @@ type Resource struct { Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` // Payload bytes. This data is not interpreted in any way by SwarmKit. // By convention, it should be a marshalled protocol buffers message. - Payload *google_protobuf3.Any `protobuf:"bytes,5,opt,name=payload" json:"payload,omitempty"` + Payload *google_protobuf4.Any `protobuf:"bytes,5,opt,name=payload" json:"payload,omitempty"` } func (m *Resource) Reset() { *m = Resource{} } @@ -749,7 +749,7 @@ func (m *Resource) CopyFrom(src interface{}) { deepcopy.Copy(&m.Meta, &o.Meta) deepcopy.Copy(&m.Annotations, &o.Annotations) if o.Payload != nil { - m.Payload = &google_protobuf3.Any{} + m.Payload = &google_protobuf4.Any{} deepcopy.Copy(m.Payload, o.Payload) } } @@ -4958,7 +4958,7 @@ func (this *Resource) String() string { `Meta:` + strings.Replace(strings.Replace(this.Meta.String(), "Meta", "Meta", 1), `&`, ``, 1) + `,`, `Annotations:` + strings.Replace(strings.Replace(this.Annotations.String(), "Annotations", "Annotations", 1), `&`, ``, 1) + `,`, `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, - `Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf3.Any", 1) + `,`, + `Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf4.Any", 1) + `,`, `}`, }, "") return s @@ -7976,7 +7976,7 @@ func (m *Resource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Payload == nil { - m.Payload = &google_protobuf3.Any{} + m.Payload = &google_protobuf4.Any{} } if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/vendor/github.com/docker/swarmkit/api/specs.pb.go b/vendor/github.com/docker/swarmkit/api/specs.pb.go index 3adb9129b0..dfab9e3910 100644 --- a/vendor/github.com/docker/swarmkit/api/specs.pb.go +++ b/vendor/github.com/docker/swarmkit/api/specs.pb.go @@ -8,8 +8,8 @@ import fmt "fmt" import math "math" import _ "github.com/gogo/protobuf/gogoproto" import google_protobuf1 "github.com/gogo/protobuf/types" -import google_protobuf3 "github.com/gogo/protobuf/types" import google_protobuf4 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" import deepcopy "github.com/docker/swarmkit/api/deepcopy" @@ -506,7 +506,7 @@ func (*ResourceReference) Descriptor() ([]byte, []int) { return fileDescriptorSp type GenericRuntimeSpec struct { Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` - Payload *google_protobuf3.Any `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"` + Payload *google_protobuf4.Any `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"` } func (m *GenericRuntimeSpec) Reset() { *m = GenericRuntimeSpec{} } @@ -572,7 +572,7 @@ type ContainerSpec struct { // Privileges specifies security configuration/permissions. Privileges *Privileges `protobuf:"bytes,22,opt,name=privileges" json:"privileges,omitempty"` // Init declares that a custom init will be running inside the container, if null, use the daemon's configured settings - Init *google_protobuf4.BoolValue `protobuf:"bytes,23,opt,name=init" json:"init,omitempty"` + Init *google_protobuf2.BoolValue `protobuf:"bytes,23,opt,name=init" json:"init,omitempty"` // TTY declares that a TTY should be attached to the standard streams, // including stdin if it is still open. TTY bool `protobuf:"varint,13,opt,name=tty,proto3" json:"tty,omitempty"` @@ -636,12 +636,6 @@ type ContainerSpec struct { // // https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime Sysctls map[string]string `protobuf:"bytes,26,rep,name=sysctls" json:"sysctls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Swap limit equal to memory plus swap: '-1' to enable unlimited swap - MemorySwap int64 `protobuf:"varint,27,opt,name=memory_swap,json=memorySwap,proto3" json:"memory_swap,omitempty"` - // Tune container memory swappiness (0 to 100) - if not specified, defaults - // to the container OS's default - generally 60, or the value predefined in - // the image; set to -1 to unset a previously set value - MemorySwappiness *google_protobuf4.Int64Value `protobuf:"bytes,28,opt,name=memory_swappiness,json=memorySwappiness" json:"memory_swappiness,omitempty"` } func (m *ContainerSpec) Reset() { *m = ContainerSpec{} } @@ -1084,7 +1078,7 @@ func (m *GenericRuntimeSpec) CopyFrom(src interface{}) { o := src.(*GenericRuntimeSpec) *m = *o if o.Payload != nil { - m.Payload = &google_protobuf3.Any{} + m.Payload = &google_protobuf4.Any{} deepcopy.Copy(m.Payload, o.Payload) } } @@ -1149,7 +1143,7 @@ func (m *ContainerSpec) CopyFrom(src interface{}) { deepcopy.Copy(m.Privileges, o.Privileges) } if o.Init != nil { - m.Init = &google_protobuf4.BoolValue{} + m.Init = &google_protobuf2.BoolValue{} deepcopy.Copy(m.Init, o.Init) } if o.Mounts != nil { @@ -1203,10 +1197,6 @@ func (m *ContainerSpec) CopyFrom(src interface{}) { } } - if o.MemorySwappiness != nil { - m.MemorySwappiness = &google_protobuf4.Int64Value{} - deepcopy.Copy(m.MemorySwappiness, o.MemorySwappiness) - } } func (m *ContainerSpec_PullOptions) Copy() *ContainerSpec_PullOptions { @@ -2114,25 +2104,6 @@ func (m *ContainerSpec) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], v) } } - if m.MemorySwap != 0 { - dAtA[i] = 0xd8 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.MemorySwap)) - } - if m.MemorySwappiness != nil { - dAtA[i] = 0xe2 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.MemorySwappiness.Size())) - n25, err := m.MemorySwappiness.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n25 - } return i, nil } @@ -2278,20 +2249,20 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) - n26, err := m.Annotations.MarshalTo(dAtA[i:]) + n25, err := m.Annotations.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n25 if m.DriverConfig != nil { dAtA[i] = 0x12 i++ i = encodeVarintSpecs(dAtA, i, uint64(m.DriverConfig.Size())) - n27, err := m.DriverConfig.MarshalTo(dAtA[i:]) + n26, err := m.DriverConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n26 } if m.Ipv6Enabled { dAtA[i] = 0x18 @@ -2317,11 +2288,11 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintSpecs(dAtA, i, uint64(m.IPAM.Size())) - n28, err := m.IPAM.MarshalTo(dAtA[i:]) + n27, err := m.IPAM.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n27 } if m.Attachable { dAtA[i] = 0x30 @@ -2344,11 +2315,11 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) { i++ } if m.ConfigFrom != nil { - nn29, err := m.ConfigFrom.MarshalTo(dAtA[i:]) + nn28, err := m.ConfigFrom.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn29 + i += nn28 } return i, nil } @@ -2379,67 +2350,67 @@ func (m *ClusterSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) - n30, err := m.Annotations.MarshalTo(dAtA[i:]) + n29, err := m.Annotations.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + dAtA[i] = 0x12 + i++ + i = encodeVarintSpecs(dAtA, i, uint64(m.AcceptancePolicy.Size())) + n30, err := m.AcceptancePolicy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n30 - dAtA[i] = 0x12 + dAtA[i] = 0x1a i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.AcceptancePolicy.Size())) - n31, err := m.AcceptancePolicy.MarshalTo(dAtA[i:]) + i = encodeVarintSpecs(dAtA, i, uint64(m.Orchestration.Size())) + n31, err := m.Orchestration.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n31 - dAtA[i] = 0x1a + dAtA[i] = 0x22 i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.Orchestration.Size())) - n32, err := m.Orchestration.MarshalTo(dAtA[i:]) + i = encodeVarintSpecs(dAtA, i, uint64(m.Raft.Size())) + n32, err := m.Raft.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n32 - dAtA[i] = 0x22 + dAtA[i] = 0x2a i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.Raft.Size())) - n33, err := m.Raft.MarshalTo(dAtA[i:]) + i = encodeVarintSpecs(dAtA, i, uint64(m.Dispatcher.Size())) + n33, err := m.Dispatcher.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n33 - dAtA[i] = 0x2a + dAtA[i] = 0x32 i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.Dispatcher.Size())) - n34, err := m.Dispatcher.MarshalTo(dAtA[i:]) + i = encodeVarintSpecs(dAtA, i, uint64(m.CAConfig.Size())) + n34, err := m.CAConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n34 - dAtA[i] = 0x32 + dAtA[i] = 0x3a i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.CAConfig.Size())) - n35, err := m.CAConfig.MarshalTo(dAtA[i:]) + i = encodeVarintSpecs(dAtA, i, uint64(m.TaskDefaults.Size())) + n35, err := m.TaskDefaults.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n35 - dAtA[i] = 0x3a + dAtA[i] = 0x42 i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.TaskDefaults.Size())) - n36, err := m.TaskDefaults.MarshalTo(dAtA[i:]) + i = encodeVarintSpecs(dAtA, i, uint64(m.EncryptionConfig.Size())) + n36, err := m.EncryptionConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n36 - dAtA[i] = 0x42 - i++ - i = encodeVarintSpecs(dAtA, i, uint64(m.EncryptionConfig.Size())) - n37, err := m.EncryptionConfig.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n37 return i, nil } @@ -2461,11 +2432,11 @@ func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) - n38, err := m.Annotations.MarshalTo(dAtA[i:]) + n37, err := m.Annotations.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n37 if len(m.Data) > 0 { dAtA[i] = 0x12 i++ @@ -2476,21 +2447,21 @@ func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size())) - n39, err := m.Templating.MarshalTo(dAtA[i:]) + n38, err := m.Templating.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n38 } if m.Driver != nil { dAtA[i] = 0x22 i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Driver.Size())) - n40, err := m.Driver.MarshalTo(dAtA[i:]) + n39, err := m.Driver.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n40 + i += n39 } return i, nil } @@ -2513,11 +2484,11 @@ func (m *ConfigSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) - n41, err := m.Annotations.MarshalTo(dAtA[i:]) + n40, err := m.Annotations.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n41 + i += n40 if len(m.Data) > 0 { dAtA[i] = 0x12 i++ @@ -2528,11 +2499,11 @@ func (m *ConfigSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size())) - n42, err := m.Templating.MarshalTo(dAtA[i:]) + n41, err := m.Templating.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n41 } return i, nil } @@ -2858,13 +2829,6 @@ func (m *ContainerSpec) Size() (n int) { n += mapEntrySize + 2 + sovSpecs(uint64(mapEntrySize)) } } - if m.MemorySwap != 0 { - n += 2 + sovSpecs(uint64(m.MemorySwap)) - } - if m.MemorySwappiness != nil { - l = m.MemorySwappiness.Size() - n += 2 + l + sovSpecs(uint64(l)) - } return n } @@ -3158,7 +3122,7 @@ func (this *GenericRuntimeSpec) String() string { } s := strings.Join([]string{`&GenericRuntimeSpec{`, `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, - `Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf3.Any", 1) + `,`, + `Payload:` + strings.Replace(fmt.Sprintf("%v", this.Payload), "Any", "google_protobuf4.Any", 1) + `,`, `}`, }, "") return s @@ -3220,12 +3184,10 @@ func (this *ContainerSpec) String() string { `StopSignal:` + fmt.Sprintf("%v", this.StopSignal) + `,`, `Configs:` + strings.Replace(fmt.Sprintf("%v", this.Configs), "ConfigReference", "ConfigReference", 1) + `,`, `Privileges:` + strings.Replace(fmt.Sprintf("%v", this.Privileges), "Privileges", "Privileges", 1) + `,`, - `Init:` + strings.Replace(fmt.Sprintf("%v", this.Init), "BoolValue", "google_protobuf4.BoolValue", 1) + `,`, + `Init:` + strings.Replace(fmt.Sprintf("%v", this.Init), "BoolValue", "google_protobuf2.BoolValue", 1) + `,`, `Isolation:` + fmt.Sprintf("%v", this.Isolation) + `,`, `PidsLimit:` + fmt.Sprintf("%v", this.PidsLimit) + `,`, `Sysctls:` + mapStringForSysctls + `,`, - `MemorySwap:` + fmt.Sprintf("%v", this.MemorySwap) + `,`, - `MemorySwappiness:` + strings.Replace(fmt.Sprintf("%v", this.MemorySwappiness), "Int64Value", "google_protobuf4.Int64Value", 1) + `,`, `}`, }, "") return s @@ -4442,7 +4404,7 @@ func (m *GenericRuntimeSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Payload == nil { - m.Payload = &google_protobuf3.Any{} + m.Payload = &google_protobuf4.Any{} } if err := m.Payload.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5330,7 +5292,7 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Init == nil { - m.Init = &google_protobuf4.BoolValue{} + m.Init = &google_protobuf2.BoolValue{} } if err := m.Init.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5492,58 +5454,6 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error { } m.Sysctls[mapkey] = mapvalue iNdEx = postIndex - case 27: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MemorySwap", wireType) - } - m.MemorySwap = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpecs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MemorySwap |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 28: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MemorySwappiness", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSpecs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSpecs - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MemorySwappiness == nil { - m.MemorySwappiness = &google_protobuf4.Int64Value{} - } - if err := m.MemorySwappiness.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipSpecs(dAtA[iNdEx:]) @@ -6855,144 +6765,141 @@ var ( func init() { proto.RegisterFile("github.com/docker/swarmkit/api/specs.proto", fileDescriptorSpecs) } var fileDescriptorSpecs = []byte{ - // 2213 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcf, 0x6f, 0x1b, 0xb9, - 0xf5, 0xb7, 0x6c, 0x59, 0x3f, 0xde, 0xc8, 0x89, 0xcc, 0xcd, 0xee, 0x8e, 0x95, 0xac, 0xad, 0xd5, - 0x66, 0xf3, 0xf5, 0xee, 0xe2, 0x2b, 0xa3, 0x6e, 0x90, 0x66, 0x93, 0x6e, 0x5b, 0xc9, 0xd2, 0xda, - 0x6a, 0x12, 0x5b, 0xa0, 0x1c, 0xb7, 0x01, 0x0a, 0x08, 0xf4, 0x0c, 0x2d, 0x0d, 0x3c, 0x1a, 0x4e, - 0x49, 0xca, 0x81, 0x6e, 0x3d, 0x2e, 0xdc, 0xbf, 0xc1, 0xe8, 0xa1, 0xe8, 0xbd, 0xfd, 0x2f, 0x72, - 0x6c, 0x6f, 0xed, 0xc5, 0xe8, 0xfa, 0x5f, 0xe8, 0xad, 0x97, 0x16, 0xe4, 0x70, 0xa4, 0x91, 0x2d, - 0xc7, 0x29, 0x9a, 0x43, 0x6f, 0xe4, 0x9b, 0xcf, 0xe7, 0x91, 0x7c, 0xfc, 0xf0, 0xf1, 0x71, 0xe0, - 0xcb, 0x9e, 0x27, 0xfb, 0xc3, 0xc3, 0xaa, 0xc3, 0x06, 0x1b, 0x2e, 0x73, 0x8e, 0x29, 0xdf, 0x10, - 0xaf, 0x09, 0x1f, 0x1c, 0x7b, 0x72, 0x83, 0x84, 0xde, 0x86, 0x08, 0xa9, 0x23, 0xaa, 0x21, 0x67, - 0x92, 0x21, 0x14, 0x01, 0xaa, 0x31, 0xa0, 0x7a, 0xf2, 0x83, 0xd2, 0x4d, 0x7c, 0x39, 0x0a, 0xa9, - 0xe1, 0x97, 0xee, 0xf4, 0x58, 0x8f, 0xe9, 0xe6, 0x86, 0x6a, 0x19, 0xeb, 0x6a, 0x8f, 0xb1, 0x9e, - 0x4f, 0x37, 0x74, 0xef, 0x70, 0x78, 0xb4, 0xe1, 0x0e, 0x39, 0x91, 0x1e, 0x0b, 0xcc, 0xf7, 0x95, - 0xcb, 0xdf, 0x49, 0x30, 0xba, 0x8e, 0xfa, 0x9a, 0x93, 0x30, 0xa4, 0xdc, 0x0c, 0x58, 0x39, 0x4b, - 0x43, 0x6e, 0x97, 0xb9, 0xb4, 0x13, 0x52, 0x07, 0x6d, 0x83, 0x45, 0x82, 0x80, 0x49, 0xed, 0x5b, - 0xd8, 0xa9, 0x72, 0x6a, 0xdd, 0xda, 0x5c, 0xab, 0x5e, 0x5d, 0x53, 0xb5, 0x36, 0x81, 0xd5, 0xd3, - 0x6f, 0xce, 0xd7, 0xe6, 0x70, 0x92, 0x89, 0x7e, 0x0a, 0x05, 0x97, 0x0a, 0x8f, 0x53, 0xb7, 0xcb, - 0x99, 0x4f, 0xed, 0xf9, 0x72, 0x6a, 0xfd, 0xd6, 0xe6, 0xbd, 0x59, 0x9e, 0xd4, 0xe0, 0x98, 0xf9, - 0x14, 0x5b, 0x86, 0xa1, 0x3a, 0x68, 0x1b, 0x60, 0x40, 0x07, 0x87, 0x94, 0x8b, 0xbe, 0x17, 0xda, - 0x0b, 0x9a, 0xfe, 0x7f, 0xd7, 0xd1, 0xd5, 0xdc, 0xab, 0x2f, 0xc6, 0x70, 0x9c, 0xa0, 0xa2, 0x17, - 0x50, 0x20, 0x27, 0xc4, 0xf3, 0xc9, 0xa1, 0xe7, 0x7b, 0x72, 0x64, 0xa7, 0xb5, 0xab, 0x2f, 0xde, - 0xea, 0xaa, 0x96, 0x20, 0xe0, 0x29, 0x7a, 0xc5, 0x05, 0x98, 0x0c, 0x84, 0x1e, 0x40, 0xb6, 0xdd, - 0xdc, 0x6d, 0xb4, 0x76, 0xb7, 0x8b, 0x73, 0xa5, 0x95, 0xd3, 0xb3, 0xf2, 0x87, 0xca, 0xc7, 0x04, - 0xd0, 0xa6, 0x81, 0xeb, 0x05, 0x3d, 0xb4, 0x0e, 0xb9, 0xda, 0xd6, 0x56, 0xb3, 0xbd, 0xdf, 0x6c, - 0x14, 0x53, 0xa5, 0xd2, 0xe9, 0x59, 0xf9, 0xa3, 0x69, 0x60, 0xcd, 0x71, 0x68, 0x28, 0xa9, 0x5b, - 0x4a, 0x7f, 0xf7, 0xfb, 0xd5, 0xb9, 0xca, 0x77, 0x29, 0x28, 0x24, 0x27, 0x81, 0x1e, 0x40, 0xa6, - 0xb6, 0xb5, 0xdf, 0x3a, 0x68, 0x16, 0xe7, 0x26, 0xf4, 0x24, 0xa2, 0xe6, 0x48, 0xef, 0x84, 0xa2, - 0xfb, 0xb0, 0xd8, 0xae, 0xbd, 0xec, 0x34, 0x8b, 0xa9, 0xc9, 0x74, 0x92, 0xb0, 0x36, 0x19, 0x0a, - 0x8d, 0x6a, 0xe0, 0x5a, 0x6b, 0xb7, 0x38, 0x3f, 0x1b, 0xd5, 0xe0, 0xc4, 0x0b, 0xcc, 0x54, 0x7e, - 0x97, 0x06, 0xab, 0x43, 0xf9, 0x89, 0xe7, 0xbc, 0x67, 0x89, 0x3c, 0x82, 0xb4, 0x24, 0xe2, 0x58, - 0x4b, 0xc3, 0x9a, 0x2d, 0x8d, 0x7d, 0x22, 0x8e, 0xd5, 0xa0, 0x86, 0xae, 0xf1, 0x4a, 0x19, 0x9c, - 0x86, 0xbe, 0xe7, 0x10, 0x49, 0x5d, 0xad, 0x0c, 0x6b, 0xf3, 0xf3, 0x59, 0x6c, 0x3c, 0x46, 0x99, - 0xf9, 0xef, 0xcc, 0xe1, 0x04, 0x15, 0x3d, 0x85, 0x4c, 0xcf, 0x67, 0x87, 0xc4, 0xd7, 0x9a, 0xb0, - 0x36, 0x3f, 0x9d, 0xe5, 0x64, 0x5b, 0x23, 0x26, 0x0e, 0x0c, 0x05, 0x3d, 0x86, 0xcc, 0x30, 0x74, - 0x89, 0xa4, 0x76, 0x46, 0x93, 0xcb, 0xb3, 0xc8, 0x2f, 0x35, 0x62, 0x8b, 0x05, 0x47, 0x5e, 0x0f, - 0x1b, 0x3c, 0x7a, 0x06, 0xb9, 0x80, 0xca, 0xd7, 0x8c, 0x1f, 0x0b, 0x3b, 0x5b, 0x5e, 0x58, 0xb7, - 0x36, 0xbf, 0x9a, 0x29, 0xc6, 0x08, 0x53, 0x93, 0x92, 0x38, 0xfd, 0x01, 0x0d, 0x64, 0xe4, 0xa6, + // 2166 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x6f, 0x1b, 0xc9, + 0xd1, 0x16, 0x25, 0x8a, 0x1f, 0x35, 0x94, 0x4d, 0xf5, 0xda, 0xde, 0x11, 0x6d, 0x4b, 0x34, 0xd7, + 0xeb, 0x57, 0xbb, 0x8b, 0x97, 0x42, 0x94, 0xc5, 0xc6, 0x6b, 0x67, 0x93, 0x90, 0x22, 0x57, 0x62, + 0x6c, 0x4b, 0x44, 0x53, 0x56, 0x62, 0x20, 0x00, 0xd1, 0x9a, 0x69, 0x91, 0x03, 0x0d, 0xa7, 0x27, + 0xdd, 0x4d, 0x19, 0xbc, 0xe5, 0xb8, 0x50, 0x7e, 0x83, 0x90, 0x43, 0x90, 0x7b, 0xf2, 0x2f, 0x7c, + 0xcc, 0x31, 0xb9, 0x08, 0x59, 0x1d, 0xf2, 0x07, 0x72, 0xcb, 0x25, 0x41, 0xf7, 0xf4, 0xf0, 0x43, + 0x1e, 0x59, 0x0e, 0xe2, 0x43, 0x6e, 0xdd, 0x35, 0xcf, 0x53, 0xfd, 0xf5, 0x54, 0x75, 0xf5, 0xc0, + 0xe7, 0x3d, 0x4f, 0xf6, 0x87, 0x87, 0x55, 0x87, 0x0d, 0x36, 0x5c, 0xe6, 0x1c, 0x53, 0xbe, 0x21, + 0x5e, 0x13, 0x3e, 0x38, 0xf6, 0xe4, 0x06, 0x09, 0xbd, 0x0d, 0x11, 0x52, 0x47, 0x54, 0x43, 0xce, + 0x24, 0x43, 0x28, 0x02, 0x54, 0x63, 0x40, 0xf5, 0xe4, 0x07, 0xa5, 0xeb, 0xf8, 0x72, 0x14, 0x52, + 0xc3, 0x2f, 0xdd, 0xea, 0xb1, 0x1e, 0xd3, 0xcd, 0x0d, 0xd5, 0x32, 0xd6, 0xd5, 0x1e, 0x63, 0x3d, + 0x9f, 0x6e, 0xe8, 0xde, 0xe1, 0xf0, 0x68, 0xc3, 0x1d, 0x72, 0x22, 0x3d, 0x16, 0x98, 0xef, 0x2b, + 0x97, 0xbf, 0x93, 0x60, 0x74, 0x15, 0xf5, 0x35, 0x27, 0x61, 0x48, 0xb9, 0x19, 0xb0, 0x72, 0x96, + 0x86, 0xdc, 0x2e, 0x73, 0x69, 0x27, 0xa4, 0x0e, 0xda, 0x06, 0x8b, 0x04, 0x01, 0x93, 0xda, 0xb7, + 0xb0, 0x53, 0xe5, 0xd4, 0xba, 0xb5, 0xb9, 0x56, 0x7d, 0x7b, 0x4d, 0xd5, 0xda, 0x04, 0x56, 0x4f, + 0xbf, 0x39, 0x5f, 0x9b, 0xc3, 0xd3, 0x4c, 0xf4, 0x53, 0x28, 0xb8, 0x54, 0x78, 0x9c, 0xba, 0x5d, + 0xce, 0x7c, 0x6a, 0xcf, 0x97, 0x53, 0xeb, 0x37, 0x36, 0xef, 0x25, 0x79, 0x52, 0x83, 0x63, 0xe6, + 0x53, 0x6c, 0x19, 0x86, 0xea, 0xa0, 0x6d, 0x80, 0x01, 0x1d, 0x1c, 0x52, 0x2e, 0xfa, 0x5e, 0x68, + 0x2f, 0x68, 0xfa, 0xff, 0x5d, 0x45, 0x57, 0x73, 0xaf, 0xbe, 0x18, 0xc3, 0xf1, 0x14, 0x15, 0xbd, + 0x80, 0x02, 0x39, 0x21, 0x9e, 0x4f, 0x0e, 0x3d, 0xdf, 0x93, 0x23, 0x3b, 0xad, 0x5d, 0x7d, 0xf6, + 0x4e, 0x57, 0xb5, 0x29, 0x02, 0x9e, 0xa1, 0x57, 0x5c, 0x80, 0xc9, 0x40, 0xe8, 0x11, 0x64, 0xdb, + 0xcd, 0xdd, 0x46, 0x6b, 0x77, 0xbb, 0x38, 0x57, 0x5a, 0x39, 0x3d, 0x2b, 0xdf, 0x56, 0x3e, 0x26, + 0x80, 0x36, 0x0d, 0x5c, 0x2f, 0xe8, 0xa1, 0x75, 0xc8, 0xd5, 0xb6, 0xb6, 0x9a, 0xed, 0xfd, 0x66, + 0xa3, 0x98, 0x2a, 0x95, 0x4e, 0xcf, 0xca, 0x77, 0x66, 0x81, 0x35, 0xc7, 0xa1, 0xa1, 0xa4, 0x6e, + 0x29, 0xfd, 0xdd, 0xef, 0x57, 0xe7, 0x2a, 0xdf, 0xa5, 0xa0, 0x30, 0x3d, 0x09, 0xf4, 0x08, 0x32, + 0xb5, 0xad, 0xfd, 0xd6, 0x41, 0xb3, 0x38, 0x37, 0xa1, 0x4f, 0x23, 0x6a, 0x8e, 0xf4, 0x4e, 0x28, + 0x7a, 0x08, 0x8b, 0xed, 0xda, 0xcb, 0x4e, 0xb3, 0x98, 0x9a, 0x4c, 0x67, 0x1a, 0xd6, 0x26, 0x43, + 0xa1, 0x51, 0x0d, 0x5c, 0x6b, 0xed, 0x16, 0xe7, 0x93, 0x51, 0x0d, 0x4e, 0xbc, 0xc0, 0x4c, 0xe5, + 0x77, 0x69, 0xb0, 0x3a, 0x94, 0x9f, 0x78, 0xce, 0x07, 0x96, 0xc8, 0x57, 0x90, 0x96, 0x44, 0x1c, + 0x6b, 0x69, 0x58, 0xc9, 0xd2, 0xd8, 0x27, 0xe2, 0x58, 0x0d, 0x6a, 0xe8, 0x1a, 0xaf, 0x94, 0xc1, + 0x69, 0xe8, 0x7b, 0x0e, 0x91, 0xd4, 0xd5, 0xca, 0xb0, 0x36, 0x3f, 0x4d, 0x62, 0xe3, 0x31, 0xca, + 0xcc, 0x7f, 0x67, 0x0e, 0x4f, 0x51, 0xd1, 0x53, 0xc8, 0xf4, 0x7c, 0x76, 0x48, 0x7c, 0xad, 0x09, + 0x6b, 0xf3, 0x41, 0x92, 0x93, 0x6d, 0x8d, 0x98, 0x38, 0x30, 0x14, 0xf4, 0x18, 0x32, 0xc3, 0xd0, + 0x25, 0x92, 0xda, 0x19, 0x4d, 0x2e, 0x27, 0x91, 0x5f, 0x6a, 0xc4, 0x16, 0x0b, 0x8e, 0xbc, 0x1e, + 0x36, 0x78, 0xf4, 0x0c, 0x72, 0x01, 0x95, 0xaf, 0x19, 0x3f, 0x16, 0x76, 0xb6, 0xbc, 0xb0, 0x6e, + 0x6d, 0x7e, 0x91, 0x28, 0xc6, 0x08, 0x53, 0x93, 0x92, 0x38, 0xfd, 0x01, 0x0d, 0x64, 0xe4, 0xa6, 0x3e, 0x6f, 0xa7, 0xf0, 0xd8, 0x01, 0xfa, 0x31, 0xe4, 0x68, 0xe0, 0x86, 0xcc, 0x0b, 0xa4, 0x9d, - 0xbb, 0x7e, 0x22, 0x4d, 0x83, 0x51, 0xc1, 0xc4, 0x63, 0x86, 0x62, 0x73, 0xe6, 0xfb, 0x87, 0xc4, - 0x39, 0xb6, 0xf3, 0xef, 0xb8, 0x8c, 0x31, 0xa3, 0x9e, 0x81, 0xf4, 0x80, 0xb9, 0xb4, 0xb2, 0x01, - 0xcb, 0x57, 0x42, 0x8d, 0x4a, 0x90, 0x33, 0xa1, 0x8e, 0x34, 0x92, 0xc6, 0xe3, 0x7e, 0xe5, 0x36, - 0x2c, 0x4d, 0x85, 0xb5, 0xf2, 0xc7, 0x45, 0xc8, 0xc5, 0x7b, 0x8d, 0x6a, 0x90, 0x77, 0x58, 0x20, - 0x89, 0x17, 0x50, 0x6e, 0xe4, 0x35, 0x73, 0x67, 0xb6, 0x62, 0x90, 0x62, 0xed, 0xcc, 0xe1, 0x09, - 0x0b, 0x7d, 0x0b, 0x79, 0x4e, 0x05, 0x1b, 0x72, 0x87, 0x0a, 0xa3, 0xaf, 0xf5, 0xd9, 0x0a, 0x89, - 0x40, 0x98, 0xfe, 0x7a, 0xe8, 0x71, 0xaa, 0xa2, 0x2c, 0xf0, 0x84, 0x8a, 0x9e, 0x42, 0x96, 0x53, - 0x21, 0x09, 0x97, 0x6f, 0x93, 0x08, 0x8e, 0x20, 0x6d, 0xe6, 0x7b, 0xce, 0x08, 0xc7, 0x0c, 0xf4, - 0x14, 0xf2, 0xa1, 0x4f, 0x1c, 0xed, 0xd5, 0x5e, 0xd4, 0xf4, 0x4f, 0x66, 0xd1, 0xdb, 0x31, 0x08, - 0x4f, 0xf0, 0xe8, 0x6b, 0x00, 0x9f, 0xf5, 0xba, 0x2e, 0xf7, 0x4e, 0x28, 0x37, 0x12, 0x2b, 0xcd, - 0x62, 0x37, 0x34, 0x02, 0xe7, 0x7d, 0xd6, 0x8b, 0x9a, 0x68, 0xfb, 0xbf, 0xd2, 0x57, 0x42, 0x5b, - 0xcf, 0x00, 0xc8, 0xf8, 0xab, 0x51, 0xd7, 0x17, 0xef, 0xe4, 0xca, 0xec, 0x48, 0x82, 0x8e, 0x3e, - 0x85, 0xc2, 0x11, 0xe3, 0x0e, 0xed, 0x9a, 0x53, 0x93, 0xd7, 0x9a, 0xb0, 0xb4, 0x2d, 0xd2, 0x17, - 0xaa, 0x43, 0xb6, 0x47, 0x03, 0xca, 0x3d, 0xc7, 0x06, 0x3d, 0xd8, 0x83, 0x99, 0x07, 0x32, 0x82, - 0xe0, 0x61, 0x20, 0xbd, 0x01, 0x35, 0x23, 0xc5, 0x44, 0xf4, 0x2b, 0xf8, 0x20, 0xde, 0xbe, 0x2e, - 0xa7, 0x47, 0x94, 0xd3, 0x40, 0x69, 0xc0, 0xd2, 0x71, 0xf8, 0xfc, 0xed, 0x1a, 0x30, 0x68, 0x93, + 0xbb, 0x7a, 0x22, 0x4d, 0x83, 0x51, 0x9b, 0x89, 0xc7, 0x0c, 0xc5, 0xe6, 0xcc, 0xf7, 0x0f, 0x89, + 0x73, 0x6c, 0xe7, 0xdf, 0x73, 0x19, 0x63, 0x46, 0x3d, 0x03, 0xe9, 0x01, 0x73, 0x69, 0x65, 0x03, + 0x96, 0xdf, 0xda, 0x6a, 0x54, 0x82, 0x9c, 0xd9, 0xea, 0x48, 0x23, 0x69, 0x3c, 0xee, 0x57, 0x6e, + 0xc2, 0xd2, 0xcc, 0xb6, 0x56, 0xfe, 0xb8, 0x08, 0xb9, 0xf8, 0xac, 0x51, 0x0d, 0xf2, 0x0e, 0x0b, + 0x24, 0xf1, 0x02, 0xca, 0x8d, 0xbc, 0x12, 0x4f, 0x66, 0x2b, 0x06, 0x29, 0xd6, 0xce, 0x1c, 0x9e, + 0xb0, 0xd0, 0xb7, 0x90, 0xe7, 0x54, 0xb0, 0x21, 0x77, 0xa8, 0x30, 0xfa, 0x5a, 0x4f, 0x56, 0x48, + 0x04, 0xc2, 0xf4, 0xd7, 0x43, 0x8f, 0x53, 0xb5, 0xcb, 0x02, 0x4f, 0xa8, 0xe8, 0x29, 0x64, 0x39, + 0x15, 0x92, 0x70, 0xf9, 0x2e, 0x89, 0xe0, 0x08, 0xd2, 0x66, 0xbe, 0xe7, 0x8c, 0x70, 0xcc, 0x40, + 0x4f, 0x21, 0x1f, 0xfa, 0xc4, 0xd1, 0x5e, 0xed, 0x45, 0x4d, 0xbf, 0x9f, 0x44, 0x6f, 0xc7, 0x20, + 0x3c, 0xc1, 0xa3, 0xaf, 0x01, 0x7c, 0xd6, 0xeb, 0xba, 0xdc, 0x3b, 0xa1, 0xdc, 0x48, 0xac, 0x94, + 0xc4, 0x6e, 0x68, 0x04, 0xce, 0xfb, 0xac, 0x17, 0x35, 0xd1, 0xf6, 0x7f, 0xa5, 0xaf, 0x29, 0x6d, + 0x3d, 0x03, 0x20, 0xe3, 0xaf, 0x46, 0x5d, 0x9f, 0xbd, 0x97, 0x2b, 0x73, 0x22, 0x53, 0x74, 0xf4, + 0x00, 0x0a, 0x47, 0x8c, 0x3b, 0xb4, 0x6b, 0xa2, 0x26, 0xaf, 0x35, 0x61, 0x69, 0x5b, 0xa4, 0x2f, + 0x54, 0x87, 0x6c, 0x8f, 0x06, 0x94, 0x7b, 0x8e, 0x0d, 0x7a, 0xb0, 0x47, 0x89, 0x01, 0x19, 0x41, + 0xf0, 0x30, 0x90, 0xde, 0x80, 0x9a, 0x91, 0x62, 0x22, 0xfa, 0x15, 0x7c, 0x14, 0x1f, 0x5f, 0x97, + 0xd3, 0x23, 0xca, 0x69, 0xa0, 0x34, 0x60, 0xe9, 0x7d, 0xf8, 0xf4, 0xdd, 0x1a, 0x30, 0x68, 0x93, 0x6c, 0x10, 0xbf, 0xfc, 0x41, 0xd4, 0xf3, 0x90, 0xe5, 0xd1, 0xb8, 0x95, 0xdf, 0xa6, 0x94, 0xea, - 0x2f, 0x21, 0xd0, 0x06, 0x58, 0xe3, 0xe1, 0x3d, 0x57, 0xab, 0x37, 0x5f, 0xbf, 0x75, 0x71, 0xbe, + 0x2f, 0x21, 0xd0, 0x06, 0x58, 0xe3, 0xe1, 0x3d, 0x57, 0xab, 0x37, 0x5f, 0xbf, 0x71, 0x71, 0xbe, 0x06, 0x31, 0xb6, 0xd5, 0x50, 0x39, 0xc8, 0xb4, 0x5d, 0xd4, 0x84, 0xa5, 0x31, 0x41, 0x95, 0x01, - 0xe6, 0xa2, 0x2c, 0xbf, 0x6d, 0xa6, 0xfb, 0xa3, 0x90, 0xe2, 0x02, 0x4f, 0xf4, 0x2a, 0xbf, 0x04, - 0x74, 0x35, 0x2e, 0x08, 0x41, 0xfa, 0xd8, 0x0b, 0xcc, 0x34, 0xb0, 0x6e, 0xa3, 0x2a, 0x64, 0x43, - 0x32, 0xf2, 0x19, 0x71, 0xcd, 0xc1, 0xb8, 0x53, 0x8d, 0x0a, 0x84, 0x6a, 0x5c, 0x20, 0x54, 0x6b, - 0xc1, 0x08, 0xc7, 0xa0, 0xca, 0x33, 0xf8, 0x70, 0xe6, 0xf6, 0xa2, 0x4d, 0x28, 0x8c, 0x0f, 0xdc, - 0x64, 0xad, 0xb7, 0x2f, 0xce, 0xd7, 0xac, 0xf1, 0xc9, 0x6c, 0x35, 0xb0, 0x35, 0x06, 0xb5, 0xdc, - 0xca, 0x5f, 0x96, 0x60, 0x69, 0xea, 0xd8, 0xa2, 0x3b, 0xb0, 0xe8, 0x0d, 0x48, 0x8f, 0x9a, 0x39, - 0x46, 0x1d, 0xd4, 0x84, 0x8c, 0x4f, 0x0e, 0xa9, 0xaf, 0x0e, 0xaf, 0xda, 0xb8, 0xff, 0xbf, 0xf1, - 0xfc, 0x57, 0x9f, 0x6b, 0x7c, 0x33, 0x90, 0x7c, 0x84, 0x0d, 0x19, 0xd9, 0x90, 0x75, 0xd8, 0x60, - 0x40, 0x02, 0x75, 0x4d, 0x2c, 0xac, 0xe7, 0x71, 0xdc, 0x55, 0x91, 0x21, 0xbc, 0x27, 0xec, 0xb4, - 0x36, 0xeb, 0x36, 0x2a, 0xc2, 0x02, 0x0d, 0x4e, 0xec, 0x45, 0x6d, 0x52, 0x4d, 0x65, 0x71, 0xbd, - 0xe8, 0xf4, 0xe5, 0xb1, 0x6a, 0x2a, 0xde, 0x50, 0x50, 0x6e, 0x67, 0xa3, 0x88, 0xaa, 0x36, 0xfa, - 0x11, 0x64, 0x06, 0x6c, 0x18, 0x48, 0x61, 0xe7, 0xf4, 0x64, 0x57, 0x66, 0x4d, 0xf6, 0x85, 0x42, - 0x18, 0x65, 0x19, 0x38, 0x6a, 0xc2, 0xb2, 0x90, 0x2c, 0xec, 0xf6, 0x38, 0x71, 0x68, 0x37, 0xa4, - 0xdc, 0x63, 0xae, 0x49, 0xc3, 0x2b, 0x57, 0x36, 0xa5, 0x61, 0x0a, 0x3e, 0x7c, 0x5b, 0x71, 0xb6, - 0x15, 0xa5, 0xad, 0x19, 0xa8, 0x0d, 0x85, 0x70, 0xe8, 0xfb, 0x5d, 0x16, 0x46, 0x37, 0x72, 0x74, - 0x76, 0xde, 0x21, 0x64, 0xed, 0xa1, 0xef, 0xef, 0x45, 0x24, 0x6c, 0x85, 0x93, 0x0e, 0xfa, 0x08, - 0x32, 0x3d, 0xce, 0x86, 0x61, 0x74, 0x6e, 0xf2, 0xd8, 0xf4, 0xd0, 0x37, 0x90, 0x15, 0xd4, 0xe1, - 0x54, 0x0a, 0xbb, 0xa0, 0x97, 0xfa, 0xd9, 0xac, 0x41, 0x3a, 0x1a, 0x32, 0x3e, 0x13, 0x38, 0xe6, - 0xa0, 0x15, 0x58, 0x90, 0x72, 0x64, 0x2f, 0x95, 0x53, 0xeb, 0xb9, 0x7a, 0xf6, 0xe2, 0x7c, 0x6d, - 0x61, 0x7f, 0xff, 0x15, 0x56, 0x36, 0x75, 0x5b, 0xf4, 0x99, 0x90, 0x01, 0x19, 0x50, 0xfb, 0x96, - 0x8e, 0xed, 0xb8, 0x8f, 0x5e, 0x01, 0xb8, 0x81, 0xe8, 0x3a, 0x3a, 0x3d, 0xd9, 0xb7, 0xf5, 0xea, - 0xbe, 0xba, 0x79, 0x75, 0x8d, 0xdd, 0x8e, 0xb9, 0x31, 0x97, 0x2e, 0xce, 0xd7, 0xf2, 0xe3, 0x2e, - 0xce, 0xbb, 0x81, 0x88, 0x9a, 0xa8, 0x0e, 0x56, 0x9f, 0x12, 0x5f, 0xf6, 0x9d, 0x3e, 0x75, 0x8e, - 0xed, 0xe2, 0xf5, 0x57, 0xe0, 0x8e, 0x86, 0x19, 0x0f, 0x49, 0x92, 0x52, 0xb0, 0x9a, 0xaa, 0xb0, - 0x97, 0x75, 0xac, 0xa2, 0x0e, 0xfa, 0x04, 0x80, 0x85, 0x34, 0xe8, 0x0a, 0xe9, 0x7a, 0x81, 0x8d, - 0xd4, 0x92, 0x71, 0x5e, 0x59, 0x3a, 0xca, 0x80, 0xee, 0xaa, 0x0b, 0x8a, 0xb8, 0x5d, 0x16, 0xf8, - 0x23, 0xfb, 0x03, 0xfd, 0x35, 0xa7, 0x0c, 0x7b, 0x81, 0x3f, 0x42, 0x6b, 0x60, 0x69, 0x5d, 0x08, - 0xaf, 0x17, 0x10, 0xdf, 0xbe, 0xa3, 0xe3, 0x01, 0xca, 0xd4, 0xd1, 0x16, 0xb5, 0x0f, 0x51, 0x34, - 0x84, 0xfd, 0xe1, 0xf5, 0xfb, 0x60, 0x26, 0x3b, 0xd9, 0x07, 0xc3, 0x41, 0x3f, 0x01, 0x08, 0xb9, - 0x77, 0xe2, 0xf9, 0xb4, 0x47, 0x85, 0xfd, 0x91, 0x5e, 0xf4, 0xea, 0xcc, 0x9b, 0x69, 0x8c, 0xc2, - 0x09, 0x06, 0xaa, 0x42, 0xda, 0x0b, 0x3c, 0x69, 0x7f, 0x6c, 0x6e, 0xa5, 0xcb, 0x52, 0xad, 0x33, - 0xe6, 0x1f, 0x10, 0x7f, 0x48, 0xb1, 0xc6, 0xa1, 0x16, 0xe4, 0x3d, 0xc1, 0x7c, 0x2d, 0x5f, 0xdb, - 0xd6, 0xf9, 0xed, 0x1d, 0xf6, 0xaf, 0x15, 0x53, 0xf0, 0x84, 0x8d, 0xee, 0x41, 0x3e, 0xf4, 0x5c, - 0xf1, 0xdc, 0x1b, 0x78, 0xd2, 0x5e, 0x29, 0xa7, 0xd6, 0x17, 0xf0, 0xc4, 0x80, 0x76, 0x20, 0x2b, - 0x46, 0xc2, 0x91, 0xbe, 0xb0, 0x4b, 0x3a, 0x2e, 0xd5, 0x9b, 0x87, 0xe9, 0x44, 0x84, 0x28, 0x71, - 0xc4, 0x74, 0xb5, 0x05, 0x03, 0x3a, 0x60, 0x7c, 0xd4, 0x15, 0xaf, 0x49, 0x68, 0xdf, 0xd5, 0x23, - 0x41, 0x64, 0xea, 0xbc, 0x26, 0x21, 0xda, 0x81, 0xe5, 0x04, 0x20, 0xf4, 0x02, 0x2a, 0x84, 0x7d, - 0x4f, 0x07, 0xe4, 0xee, 0x95, 0x80, 0xb4, 0x02, 0xf9, 0xe8, 0x61, 0x14, 0x91, 0xe2, 0xc4, 0x47, - 0x44, 0x2a, 0x7d, 0x0d, 0x56, 0x22, 0x77, 0xa9, 0x9c, 0x73, 0x4c, 0x47, 0x26, 0x1d, 0xaa, 0xa6, - 0x12, 0xd8, 0x89, 0xe2, 0xea, 0x7c, 0x9d, 0xc7, 0x51, 0xe7, 0xc9, 0xfc, 0xe3, 0x54, 0x69, 0x13, - 0xac, 0xc4, 0x19, 0x46, 0x9f, 0xa9, 0xbb, 0xa4, 0xe7, 0x09, 0xc9, 0x47, 0x5d, 0x32, 0x94, 0x7d, - 0xfb, 0x67, 0x9a, 0x50, 0x88, 0x8d, 0xb5, 0xa1, 0xec, 0x97, 0xba, 0x30, 0x39, 0x0a, 0xa8, 0x0c, - 0x96, 0x3a, 0x62, 0x82, 0xf2, 0x13, 0xca, 0x55, 0x9d, 0xa6, 0x14, 0x9c, 0x34, 0xa9, 0x54, 0x20, - 0x28, 0xe1, 0x4e, 0x5f, 0x67, 0xe2, 0x3c, 0x36, 0x3d, 0x95, 0x5a, 0xe3, 0x7c, 0x63, 0x52, 0xab, - 0xe9, 0x96, 0x9e, 0x40, 0x21, 0x19, 0xd3, 0xff, 0x64, 0x41, 0x95, 0x3f, 0xa5, 0x20, 0x3f, 0xde, - 0x77, 0xf4, 0x10, 0x96, 0x5b, 0x9d, 0xbd, 0xe7, 0xb5, 0xfd, 0xd6, 0xde, 0x6e, 0xb7, 0xd1, 0xfc, - 0xb6, 0xf6, 0xf2, 0xf9, 0x7e, 0x71, 0xae, 0xf4, 0xc9, 0xe9, 0x59, 0x79, 0x65, 0x72, 0xc5, 0xc4, - 0xf0, 0x06, 0x3d, 0x22, 0x43, 0x5f, 0x4e, 0xb3, 0xda, 0x78, 0x6f, 0xab, 0xd9, 0xe9, 0x14, 0x53, - 0xd7, 0xb1, 0xda, 0x9c, 0x39, 0x54, 0x08, 0xb4, 0x09, 0xc5, 0x09, 0x6b, 0xe7, 0x55, 0xbb, 0x89, - 0x0f, 0x8a, 0xf3, 0xa5, 0x7b, 0xa7, 0x67, 0x65, 0xfb, 0x2a, 0x69, 0x67, 0x14, 0x52, 0x7e, 0x60, - 0xde, 0x47, 0xff, 0x48, 0x41, 0x21, 0x59, 0x5e, 0xa3, 0xad, 0xa8, 0x2c, 0xd6, 0x2b, 0xbe, 0xb5, - 0xb9, 0x71, 0x53, 0x39, 0xae, 0xaf, 0x75, 0x7f, 0xa8, 0xfc, 0xbe, 0x50, 0x2f, 0x61, 0x4d, 0x46, - 0x0f, 0x61, 0x31, 0x64, 0x5c, 0xc6, 0x17, 0xe0, 0xec, 0xe3, 0xc9, 0x78, 0x5c, 0xb4, 0x45, 0xe0, - 0x4a, 0x1f, 0x6e, 0x4d, 0x7b, 0x43, 0xf7, 0x61, 0xe1, 0xa0, 0xd5, 0x2e, 0xce, 0x95, 0xee, 0x9e, - 0x9e, 0x95, 0x3f, 0x9e, 0xfe, 0x78, 0xe0, 0x71, 0x39, 0x24, 0x7e, 0xab, 0x8d, 0xbe, 0x84, 0xc5, - 0xc6, 0x6e, 0x07, 0xe3, 0x62, 0xaa, 0xb4, 0x76, 0x7a, 0x56, 0xbe, 0x3b, 0x8d, 0x53, 0x9f, 0xd8, - 0x30, 0x70, 0x31, 0x3b, 0x1c, 0xbf, 0x0a, 0xff, 0x39, 0x0f, 0x96, 0xa9, 0x0b, 0xde, 0xf7, 0x8f, - 0x83, 0xa5, 0xa8, 0xe8, 0x8d, 0x13, 0xfe, 0xfc, 0x8d, 0xb5, 0x6f, 0x21, 0x22, 0x18, 0x4d, 0x7f, - 0x0a, 0x05, 0x2f, 0x3c, 0x79, 0xd4, 0xa5, 0x01, 0x39, 0xf4, 0xcd, 0x03, 0x31, 0x87, 0x2d, 0x65, - 0x6b, 0x46, 0x26, 0x75, 0xdb, 0x78, 0x81, 0xa4, 0x3c, 0x30, 0x4f, 0xbf, 0x1c, 0x1e, 0xf7, 0xd1, - 0x37, 0x90, 0xf6, 0x42, 0x32, 0x30, 0x05, 0xfb, 0xcc, 0x15, 0xb4, 0xda, 0xb5, 0x17, 0xe6, 0xcc, - 0xd5, 0x73, 0x17, 0xe7, 0x6b, 0x69, 0x65, 0xc0, 0x9a, 0x86, 0x56, 0xe3, 0x9a, 0x59, 0x8d, 0xa4, - 0x2b, 0x87, 0x1c, 0x4e, 0x58, 0xd4, 0xb9, 0xf1, 0x82, 0x1e, 0x57, 0xd9, 0x22, 0xab, 0x3f, 0xc6, - 0x5d, 0x54, 0x82, 0xac, 0xa9, 0xbc, 0x75, 0xa9, 0x9d, 0x57, 0x55, 0xad, 0x31, 0xd4, 0x97, 0xc0, - 0x8a, 0xa2, 0xd1, 0x3d, 0xe2, 0x6c, 0x50, 0xf9, 0x57, 0x1a, 0xac, 0x2d, 0x7f, 0x28, 0xa4, 0x29, - 0xa2, 0xde, 0x5b, 0xf0, 0x5f, 0xc1, 0x32, 0xd1, 0x3f, 0x22, 0x48, 0xa0, 0x2a, 0x12, 0xfd, 0xa0, - 0x31, 0x1b, 0x70, 0x7f, 0xa6, 0xbb, 0x31, 0x38, 0x7a, 0xfc, 0xd4, 0x33, 0xca, 0xa7, 0x9d, 0xc2, - 0x45, 0x72, 0xe9, 0x0b, 0xea, 0xc0, 0x12, 0xe3, 0x4e, 0x9f, 0x0a, 0x19, 0xd5, 0x31, 0xe6, 0xe1, - 0x3e, 0xf3, 0x97, 0xce, 0x5e, 0x12, 0x68, 0x2e, 0xf1, 0x68, 0xb6, 0xd3, 0x3e, 0xd0, 0x63, 0x48, - 0x73, 0x72, 0x14, 0x3f, 0xce, 0x66, 0x1e, 0x12, 0x4c, 0x8e, 0xe4, 0x94, 0x0b, 0xcd, 0x40, 0x3f, - 0x07, 0x70, 0x3d, 0x11, 0x12, 0xe9, 0xf4, 0x29, 0x37, 0x9b, 0x3d, 0x73, 0x89, 0x8d, 0x31, 0x6a, - 0xca, 0x4b, 0x82, 0x8d, 0x9e, 0x41, 0xde, 0x21, 0xb1, 0x5c, 0x33, 0xd7, 0xff, 0xcd, 0xd8, 0xaa, - 0x19, 0x17, 0x45, 0xe5, 0xe2, 0xe2, 0x7c, 0x2d, 0x17, 0x5b, 0x70, 0xce, 0x21, 0x46, 0xbe, 0xcf, - 0x60, 0x49, 0x12, 0x71, 0xdc, 0x75, 0xa3, 0x74, 0x16, 0xc9, 0xe4, 0x9a, 0xa2, 0x44, 0x3d, 0x99, - 0x4d, 0xda, 0x8b, 0xb7, 0xb3, 0x20, 0x13, 0x36, 0xf4, 0x0b, 0x58, 0xa6, 0x81, 0xc3, 0x47, 0x5a, - 0xac, 0xf1, 0x0c, 0x73, 0xd7, 0x2f, 0xb6, 0x39, 0x06, 0x4f, 0x2d, 0xb6, 0x48, 0x2f, 0xd9, 0x2b, - 0x7f, 0x4b, 0x01, 0x44, 0x75, 0xde, 0xfb, 0x15, 0x20, 0x82, 0xb4, 0x4b, 0x24, 0xd1, 0x9a, 0x2b, - 0x60, 0xdd, 0x46, 0x4f, 0x00, 0x24, 0x1d, 0x84, 0x2a, 0xf5, 0x06, 0x3d, 0x23, 0x9b, 0xb7, 0xa5, - 0x83, 0x04, 0x1a, 0x6d, 0x42, 0xc6, 0x3c, 0xa1, 0xd3, 0x37, 0xf2, 0x0c, 0xb2, 0xf2, 0x87, 0x14, - 0x40, 0xb4, 0xcc, 0xff, 0xe9, 0xb5, 0xd5, 0xed, 0x37, 0xdf, 0xaf, 0xce, 0xfd, 0xf5, 0xfb, 0xd5, - 0xb9, 0xdf, 0x5c, 0xac, 0xa6, 0xde, 0x5c, 0xac, 0xa6, 0xfe, 0x7c, 0xb1, 0x9a, 0xfa, 0xfb, 0xc5, - 0x6a, 0xea, 0x30, 0xa3, 0x2b, 0x8f, 0x1f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x67, 0x32, 0x8c, - 0x8f, 0xb8, 0x16, 0x00, 0x00, + 0xe6, 0xa2, 0x2c, 0xbf, 0x6b, 0xa6, 0xfb, 0xa3, 0x90, 0xe2, 0x02, 0x9f, 0xea, 0x55, 0x7e, 0x09, + 0xe8, 0xed, 0x7d, 0x41, 0x08, 0xd2, 0xc7, 0x5e, 0x60, 0xa6, 0x81, 0x75, 0x1b, 0x55, 0x21, 0x1b, + 0x92, 0x91, 0xcf, 0x88, 0x6b, 0x02, 0xe3, 0x56, 0x35, 0x2a, 0x10, 0xaa, 0x71, 0x81, 0x50, 0xad, + 0x05, 0x23, 0x1c, 0x83, 0x2a, 0xcf, 0xe0, 0x76, 0xe2, 0xf1, 0xa2, 0x4d, 0x28, 0x8c, 0x03, 0x6e, + 0xb2, 0xd6, 0x9b, 0x17, 0xe7, 0x6b, 0xd6, 0x38, 0x32, 0x5b, 0x0d, 0x6c, 0x8d, 0x41, 0x2d, 0xb7, + 0xf2, 0xf7, 0x02, 0x2c, 0xcd, 0x84, 0x2d, 0xba, 0x05, 0x8b, 0xde, 0x80, 0xf4, 0xa8, 0x99, 0x63, + 0xd4, 0x41, 0x4d, 0xc8, 0xf8, 0xe4, 0x90, 0xfa, 0x2a, 0x78, 0xd5, 0xc1, 0xfd, 0xff, 0xb5, 0xf1, + 0x5f, 0x7d, 0xae, 0xf1, 0xcd, 0x40, 0xf2, 0x11, 0x36, 0x64, 0x64, 0x43, 0xd6, 0x61, 0x83, 0x01, + 0x09, 0xd4, 0x35, 0xb1, 0xb0, 0x9e, 0xc7, 0x71, 0x57, 0xed, 0x0c, 0xe1, 0x3d, 0x61, 0xa7, 0xb5, + 0x59, 0xb7, 0x51, 0x11, 0x16, 0x68, 0x70, 0x62, 0x2f, 0x6a, 0x93, 0x6a, 0x2a, 0x8b, 0xeb, 0x45, + 0xd1, 0x97, 0xc7, 0xaa, 0xa9, 0x78, 0x43, 0x41, 0xb9, 0x9d, 0x8d, 0x76, 0x54, 0xb5, 0xd1, 0x8f, + 0x20, 0x33, 0x60, 0xc3, 0x40, 0x0a, 0x3b, 0xa7, 0x27, 0xbb, 0x92, 0x34, 0xd9, 0x17, 0x0a, 0x61, + 0x94, 0x65, 0xe0, 0xa8, 0x09, 0xcb, 0x42, 0xb2, 0xb0, 0xdb, 0xe3, 0xc4, 0xa1, 0xdd, 0x90, 0x72, + 0x8f, 0xb9, 0x26, 0x0d, 0xaf, 0xbc, 0x75, 0x28, 0x0d, 0x53, 0xf0, 0xe1, 0x9b, 0x8a, 0xb3, 0xad, + 0x28, 0x6d, 0xcd, 0x40, 0x6d, 0x28, 0x84, 0x43, 0xdf, 0xef, 0xb2, 0x30, 0xba, 0x91, 0xa3, 0xd8, + 0x79, 0x8f, 0x2d, 0x6b, 0x0f, 0x7d, 0x7f, 0x2f, 0x22, 0x61, 0x2b, 0x9c, 0x74, 0xd0, 0x1d, 0xc8, + 0xf4, 0x38, 0x1b, 0x86, 0x51, 0xdc, 0xe4, 0xb1, 0xe9, 0xa1, 0x6f, 0x20, 0x2b, 0xa8, 0xc3, 0xa9, + 0x14, 0x76, 0x41, 0x2f, 0xf5, 0x93, 0xa4, 0x41, 0x3a, 0x1a, 0x32, 0x8e, 0x09, 0x1c, 0x73, 0xd0, + 0x0a, 0x2c, 0x48, 0x39, 0xb2, 0x97, 0xca, 0xa9, 0xf5, 0x5c, 0x3d, 0x7b, 0x71, 0xbe, 0xb6, 0xb0, + 0xbf, 0xff, 0x0a, 0x2b, 0x9b, 0xba, 0x2d, 0xfa, 0x4c, 0xc8, 0x80, 0x0c, 0xa8, 0x7d, 0x43, 0xef, + 0xed, 0xb8, 0x8f, 0x5e, 0x01, 0xb8, 0x81, 0xe8, 0x3a, 0x3a, 0x3d, 0xd9, 0x37, 0xf5, 0xea, 0xbe, + 0xb8, 0x7e, 0x75, 0x8d, 0xdd, 0x8e, 0xb9, 0x31, 0x97, 0x2e, 0xce, 0xd7, 0xf2, 0xe3, 0x2e, 0xce, + 0xbb, 0x81, 0x88, 0x9a, 0xa8, 0x0e, 0x56, 0x9f, 0x12, 0x5f, 0xf6, 0x9d, 0x3e, 0x75, 0x8e, 0xed, + 0xe2, 0xd5, 0x57, 0xe0, 0x8e, 0x86, 0x19, 0x0f, 0xd3, 0x24, 0xa5, 0x60, 0x35, 0x55, 0x61, 0x2f, + 0xeb, 0xbd, 0x8a, 0x3a, 0xe8, 0x3e, 0x00, 0x0b, 0x69, 0xd0, 0x15, 0xd2, 0xf5, 0x02, 0x1b, 0xa9, + 0x25, 0xe3, 0xbc, 0xb2, 0x74, 0x94, 0x01, 0xdd, 0x55, 0x17, 0x14, 0x71, 0xbb, 0x2c, 0xf0, 0x47, + 0xf6, 0x47, 0xfa, 0x6b, 0x4e, 0x19, 0xf6, 0x02, 0x7f, 0x84, 0xd6, 0xc0, 0xd2, 0xba, 0x10, 0x5e, + 0x2f, 0x20, 0xbe, 0x7d, 0x4b, 0xef, 0x07, 0x28, 0x53, 0x47, 0x5b, 0xd4, 0x39, 0x44, 0xbb, 0x21, + 0xec, 0xdb, 0x57, 0x9f, 0x83, 0x99, 0xec, 0xe4, 0x1c, 0x0c, 0x07, 0xfd, 0x04, 0x20, 0xe4, 0xde, + 0x89, 0xe7, 0xd3, 0x1e, 0x15, 0xf6, 0x1d, 0xbd, 0xe8, 0xd5, 0xc4, 0x9b, 0x69, 0x8c, 0xc2, 0x53, + 0x0c, 0x54, 0x85, 0xb4, 0x17, 0x78, 0xd2, 0xfe, 0xd8, 0xdc, 0x4a, 0x97, 0xa5, 0x5a, 0x67, 0xcc, + 0x3f, 0x20, 0xfe, 0x90, 0x62, 0x8d, 0x43, 0x2d, 0xc8, 0x7b, 0x82, 0xf9, 0x5a, 0xbe, 0xb6, 0xad, + 0xf3, 0xdb, 0x7b, 0x9c, 0x5f, 0x2b, 0xa6, 0xe0, 0x09, 0x1b, 0xdd, 0x83, 0x7c, 0xe8, 0xb9, 0xe2, + 0xb9, 0x37, 0xf0, 0xa4, 0xbd, 0x52, 0x4e, 0xad, 0x2f, 0xe0, 0x89, 0x01, 0xed, 0x40, 0x56, 0x8c, + 0x84, 0x23, 0x7d, 0x61, 0x97, 0xf4, 0xbe, 0x54, 0xaf, 0x1f, 0xa6, 0x13, 0x11, 0xa2, 0xc4, 0x11, + 0xd3, 0x4b, 0x5f, 0x83, 0x35, 0x95, 0x50, 0x54, 0x22, 0x38, 0xa6, 0x23, 0x93, 0xa3, 0x54, 0x53, + 0x9d, 0xfa, 0x89, 0x5a, 0xa2, 0x4e, 0xa2, 0x79, 0x1c, 0x75, 0x9e, 0xcc, 0x3f, 0x4e, 0x95, 0x36, + 0xc1, 0x9a, 0x0a, 0x2c, 0xf4, 0x89, 0x4a, 0xf0, 0x3d, 0x4f, 0x48, 0x3e, 0xea, 0x92, 0xa1, 0xec, + 0xdb, 0x3f, 0xd3, 0x84, 0x42, 0x6c, 0xac, 0x0d, 0x65, 0xbf, 0xd4, 0x85, 0x89, 0x3e, 0x51, 0x19, + 0x2c, 0xa5, 0x7b, 0x41, 0xf9, 0x09, 0xe5, 0xaa, 0x78, 0x52, 0xb2, 0x9a, 0x36, 0xa9, 0xf8, 0x14, + 0x94, 0x70, 0xa7, 0xaf, 0xd3, 0x63, 0x1e, 0x9b, 0x9e, 0xca, 0x77, 0x71, 0x12, 0x30, 0xf9, 0xce, + 0x74, 0x4b, 0x4f, 0xa0, 0x30, 0xbd, 0xd0, 0xff, 0x64, 0x41, 0x95, 0x3f, 0xa5, 0x20, 0x3f, 0x3e, + 0x0c, 0xf4, 0x25, 0x2c, 0xb7, 0x3a, 0x7b, 0xcf, 0x6b, 0xfb, 0xad, 0xbd, 0xdd, 0x6e, 0xa3, 0xf9, + 0x6d, 0xed, 0xe5, 0xf3, 0xfd, 0xe2, 0x5c, 0xe9, 0xfe, 0xe9, 0x59, 0x79, 0x65, 0x92, 0xf7, 0x63, + 0x78, 0x83, 0x1e, 0x91, 0xa1, 0x2f, 0x67, 0x59, 0x6d, 0xbc, 0xb7, 0xd5, 0xec, 0x74, 0x8a, 0xa9, + 0xab, 0x58, 0x6d, 0xce, 0x1c, 0x2a, 0x04, 0xda, 0x84, 0xe2, 0x84, 0xb5, 0xf3, 0xaa, 0xdd, 0xc4, + 0x07, 0xc5, 0xf9, 0xd2, 0xbd, 0xd3, 0xb3, 0xb2, 0xfd, 0x36, 0x69, 0x67, 0x14, 0x52, 0x7e, 0x60, + 0x1e, 0x2d, 0xff, 0x48, 0x41, 0x61, 0xba, 0xe6, 0x45, 0x5b, 0x51, 0xad, 0xaa, 0x57, 0x7c, 0x63, + 0x73, 0xe3, 0xba, 0x1a, 0x59, 0xdf, 0xb5, 0xfe, 0x50, 0xf9, 0x7d, 0xa1, 0x9e, 0xa7, 0x9a, 0x8c, + 0xbe, 0x84, 0xc5, 0x90, 0x71, 0x19, 0xdf, 0x4a, 0xc9, 0x31, 0xc3, 0x78, 0x5c, 0x49, 0x45, 0xe0, + 0x4a, 0x1f, 0x6e, 0xcc, 0x7a, 0x43, 0x0f, 0x61, 0xe1, 0xa0, 0xd5, 0x2e, 0xce, 0x95, 0xee, 0x9e, + 0x9e, 0x95, 0x3f, 0x9e, 0xfd, 0x78, 0xe0, 0x71, 0x39, 0x24, 0x7e, 0xab, 0x8d, 0x3e, 0x87, 0xc5, + 0xc6, 0x6e, 0x07, 0xe3, 0x62, 0xaa, 0xb4, 0x76, 0x7a, 0x56, 0xbe, 0x3b, 0x8b, 0x53, 0x9f, 0xd8, + 0x30, 0x70, 0x31, 0x3b, 0x1c, 0x3f, 0xd5, 0xfe, 0x39, 0x0f, 0x96, 0xb9, 0xac, 0x3f, 0xf4, 0x6b, + 0x7e, 0x29, 0xaa, 0x44, 0xe3, 0x2c, 0x3c, 0x7f, 0x6d, 0x41, 0x5a, 0x88, 0x08, 0x46, 0xd3, 0x0f, + 0xa0, 0xe0, 0x85, 0x27, 0x5f, 0x75, 0x69, 0x40, 0x0e, 0x7d, 0xf3, 0x6a, 0xcb, 0x61, 0x4b, 0xd9, + 0x9a, 0x91, 0x49, 0x5d, 0x01, 0x5e, 0x20, 0x29, 0x0f, 0xcc, 0x7b, 0x2c, 0x87, 0xc7, 0x7d, 0xf4, + 0x0d, 0xa4, 0xbd, 0x90, 0x0c, 0x4c, 0x15, 0x9d, 0xb8, 0x82, 0x56, 0xbb, 0xf6, 0xc2, 0xc4, 0x5c, + 0x3d, 0x77, 0x71, 0xbe, 0x96, 0x56, 0x06, 0xac, 0x69, 0x68, 0x35, 0x2e, 0x64, 0xd5, 0x48, 0xfa, + 0x3a, 0xcf, 0xe1, 0x29, 0x8b, 0x8a, 0x1b, 0x2f, 0xe8, 0x71, 0x2a, 0x84, 0xbe, 0xd8, 0x73, 0x38, + 0xee, 0xa2, 0x12, 0x64, 0x4d, 0x39, 0xac, 0xeb, 0xdf, 0xbc, 0x2a, 0x35, 0x8d, 0xa1, 0xbe, 0x04, + 0x56, 0xb4, 0x1b, 0xdd, 0x23, 0xce, 0x06, 0x95, 0x7f, 0xa5, 0xc1, 0xda, 0xf2, 0x87, 0x42, 0x9a, + 0xca, 0xe6, 0x83, 0x6d, 0xfe, 0x2b, 0x58, 0x26, 0xfa, 0xef, 0x00, 0x09, 0x54, 0x99, 0xa0, 0x5f, + 0x19, 0xe6, 0x00, 0x1e, 0x26, 0xba, 0x1b, 0x83, 0xa3, 0x17, 0x49, 0x3d, 0xa3, 0x7c, 0xda, 0x29, + 0x5c, 0x24, 0x97, 0xbe, 0xa0, 0x0e, 0x2c, 0x31, 0xee, 0xf4, 0xa9, 0x90, 0x51, 0x71, 0x61, 0x5e, + 0xd3, 0x89, 0xff, 0x59, 0xf6, 0xa6, 0x81, 0xe6, 0x66, 0x8d, 0x66, 0x3b, 0xeb, 0x03, 0x3d, 0x86, + 0x34, 0x27, 0x47, 0xf1, 0x8b, 0x29, 0x31, 0x48, 0x30, 0x39, 0x92, 0x33, 0x2e, 0x34, 0x03, 0xfd, + 0x1c, 0xc0, 0xf5, 0x44, 0x48, 0xa4, 0xd3, 0xa7, 0xdc, 0x1c, 0x76, 0xe2, 0x12, 0x1b, 0x63, 0xd4, + 0x8c, 0x97, 0x29, 0x36, 0x7a, 0x06, 0x79, 0x87, 0xc4, 0x72, 0xcd, 0x5c, 0xfd, 0x8b, 0x61, 0xab, + 0x66, 0x5c, 0x14, 0x95, 0x8b, 0x8b, 0xf3, 0xb5, 0x5c, 0x6c, 0xc1, 0x39, 0x87, 0x18, 0xf9, 0x3e, + 0x83, 0x25, 0x49, 0xc4, 0x71, 0xd7, 0x8d, 0xd2, 0x59, 0x24, 0x93, 0x2b, 0x2a, 0x05, 0xf5, 0x8e, + 0x35, 0x69, 0x2f, 0x3e, 0xce, 0x82, 0x9c, 0xb2, 0xa1, 0x5f, 0xc0, 0x32, 0x0d, 0x1c, 0x3e, 0xd2, + 0x62, 0x8d, 0x67, 0x98, 0xbb, 0x7a, 0xb1, 0xcd, 0x31, 0x78, 0x66, 0xb1, 0x45, 0x7a, 0xc9, 0x5e, + 0xf9, 0x6b, 0x0a, 0x20, 0x2a, 0xbe, 0x3e, 0xac, 0x00, 0x11, 0xa4, 0x5d, 0x22, 0x89, 0xd6, 0x5c, + 0x01, 0xeb, 0x36, 0x7a, 0x02, 0x20, 0xe9, 0x20, 0x54, 0xa9, 0x37, 0xe8, 0x19, 0xd9, 0xbc, 0x2b, + 0x1d, 0x4c, 0xa1, 0xd1, 0x26, 0x64, 0xcc, 0xbb, 0x36, 0x7d, 0x2d, 0xcf, 0x20, 0x2b, 0x7f, 0x48, + 0x01, 0x44, 0xcb, 0xfc, 0x9f, 0x5e, 0x5b, 0xdd, 0x7e, 0xf3, 0xfd, 0xea, 0xdc, 0x5f, 0xbe, 0x5f, + 0x9d, 0xfb, 0xcd, 0xc5, 0x6a, 0xea, 0xcd, 0xc5, 0x6a, 0xea, 0xcf, 0x17, 0xab, 0xa9, 0xbf, 0x5d, + 0xac, 0xa6, 0x0e, 0x33, 0xba, 0x3e, 0xfa, 0xe1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x32, 0x89, + 0x54, 0x8a, 0x4d, 0x16, 0x00, 0x00, } diff --git a/vendor/github.com/docker/swarmkit/api/specs.proto b/vendor/github.com/docker/swarmkit/api/specs.proto index 069419c8d4..f464542609 100644 --- a/vendor/github.com/docker/swarmkit/api/specs.proto +++ b/vendor/github.com/docker/swarmkit/api/specs.proto @@ -333,14 +333,6 @@ message ContainerSpec { // // https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime map sysctls = 26; - - // Swap limit equal to memory plus swap: '-1' to enable unlimited swap - int64 memory_swap = 27; - - // Tune container memory swappiness (0 to 100) - if not specified, defaults - // to the container OS's default - generally 60, or the value predefined in - // the image; set to -1 to unset a previously set value - google.protobuf.Int64Value memory_swappiness = 28; } // EndpointSpec defines the properties that can be configured to diff --git a/vendor/github.com/docker/swarmkit/api/types.pb.go b/vendor/github.com/docker/swarmkit/api/types.pb.go index 124f64dbe6..822a69cb83 100644 --- a/vendor/github.com/docker/swarmkit/api/types.pb.go +++ b/vendor/github.com/docker/swarmkit/api/types.pb.go @@ -8,6 +8,7 @@ import fmt "fmt" import math "math" import google_protobuf "github.com/gogo/protobuf/types" import google_protobuf1 "github.com/gogo/protobuf/types" +import google_protobuf2 "github.com/gogo/protobuf/types" import _ "github.com/gogo/protobuf/gogoproto" import os "os" @@ -804,6 +805,15 @@ func (*Resources) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []i type ResourceRequirements struct { Limits *Resources `protobuf:"bytes,1,opt,name=limits" json:"limits,omitempty"` Reservations *Resources `protobuf:"bytes,2,opt,name=reservations" json:"reservations,omitempty"` + // Amount of swap in bytes - can only be used together with a memory limit + // -1 means unlimited + // a null pointer indicates that the default behaviour of granting twice + // the memory is maintained + SwapBytes *google_protobuf2.Int64Value `protobuf:"bytes,3,opt,name=swap_bytes,json=swapBytes" json:"swap_bytes,omitempty"` + // Tune container memory swappiness (0 to 100) - if not specified, defaults + // to the container OS's default - generally 60, or the value predefined in + // the image; set to -1 to unset a previously set value + MemorySwappiness *google_protobuf2.Int64Value `protobuf:"bytes,4,opt,name=memory_swappiness,json=memorySwappiness" json:"memory_swappiness,omitempty"` } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } @@ -2445,6 +2455,14 @@ func (m *ResourceRequirements) CopyFrom(src interface{}) { m.Reservations = &Resources{} deepcopy.Copy(m.Reservations, o.Reservations) } + if o.SwapBytes != nil { + m.SwapBytes = &google_protobuf2.Int64Value{} + deepcopy.Copy(m.SwapBytes, o.SwapBytes) + } + if o.MemorySwappiness != nil { + m.MemorySwappiness = &google_protobuf2.Int64Value{} + deepcopy.Copy(m.MemorySwappiness, o.MemorySwappiness) + } } func (m *Platform) Copy() *Platform { @@ -3934,6 +3952,26 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { } i += n5 } + if m.SwapBytes != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.SwapBytes.Size())) + n6, err := m.SwapBytes.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + if m.MemorySwappiness != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.MemorySwappiness.Size())) + n7, err := m.MemorySwappiness.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + } return i, nil } @@ -4075,42 +4113,42 @@ func (m *NodeDescription) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintTypes(dAtA, i, uint64(m.Platform.Size())) - n6, err := m.Platform.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - } - if m.Resources != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Resources.Size())) - n7, err := m.Resources.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - } - if m.Engine != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Engine.Size())) - n8, err := m.Engine.MarshalTo(dAtA[i:]) + n8, err := m.Platform.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n8 } - if m.TLSInfo != nil { - dAtA[i] = 0x2a + if m.Resources != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintTypes(dAtA, i, uint64(m.TLSInfo.Size())) - n9, err := m.TLSInfo.MarshalTo(dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(m.Resources.Size())) + n9, err := m.Resources.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n9 } + if m.Engine != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.Engine.Size())) + n10, err := m.Engine.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + } + if m.TLSInfo != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintTypes(dAtA, i, uint64(m.TLSInfo.Size())) + n11, err := m.TLSInfo.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } if m.FIPS { dAtA[i] = 0x30 i++ @@ -4304,31 +4342,31 @@ func (m *Mount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintTypes(dAtA, i, uint64(m.BindOptions.Size())) - n10, err := m.BindOptions.MarshalTo(dAtA[i:]) + n12, err := m.BindOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n12 } if m.VolumeOptions != nil { dAtA[i] = 0x32 i++ i = encodeVarintTypes(dAtA, i, uint64(m.VolumeOptions.Size())) - n11, err := m.VolumeOptions.MarshalTo(dAtA[i:]) + n13, err := m.VolumeOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n13 } if m.TmpfsOptions != nil { dAtA[i] = 0x3a i++ i = encodeVarintTypes(dAtA, i, uint64(m.TmpfsOptions.Size())) - n12, err := m.TmpfsOptions.MarshalTo(dAtA[i:]) + n14, err := m.TmpfsOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n14 } if m.Consistency != 0 { dAtA[i] = 0x40 @@ -4417,11 +4455,11 @@ func (m *Mount_VolumeOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.DriverConfig.Size())) - n13, err := m.DriverConfig.MarshalTo(dAtA[i:]) + n15, err := m.DriverConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n15 } return i, nil } @@ -4484,11 +4522,11 @@ func (m *RestartPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintTypes(dAtA, i, uint64(m.Delay.Size())) - n14, err := m.Delay.MarshalTo(dAtA[i:]) + n16, err := m.Delay.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n16 } if m.MaxAttempts != 0 { dAtA[i] = 0x18 @@ -4499,11 +4537,11 @@ func (m *RestartPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintTypes(dAtA, i, uint64(m.Window.Size())) - n15, err := m.Window.MarshalTo(dAtA[i:]) + n17, err := m.Window.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n17 } return i, nil } @@ -4531,11 +4569,11 @@ func (m *UpdateConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintTypes(dAtA, i, uint64(types.SizeOfStdDuration(m.Delay))) - n16, err := types.StdDurationMarshalTo(m.Delay, dAtA[i:]) + n18, err := types.StdDurationMarshalTo(m.Delay, dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n18 if m.FailureAction != 0 { dAtA[i] = 0x18 i++ @@ -4545,11 +4583,11 @@ func (m *UpdateConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintTypes(dAtA, i, uint64(m.Monitor.Size())) - n17, err := m.Monitor.MarshalTo(dAtA[i:]) + n19, err := m.Monitor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n19 } if m.MaxFailureRatio != 0 { dAtA[i] = 0x2d @@ -4589,21 +4627,21 @@ func (m *UpdateStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintTypes(dAtA, i, uint64(m.StartedAt.Size())) - n18, err := m.StartedAt.MarshalTo(dAtA[i:]) + n20, err := m.StartedAt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n20 } if m.CompletedAt != nil { dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.CompletedAt.Size())) - n19, err := m.CompletedAt.MarshalTo(dAtA[i:]) + n21, err := m.CompletedAt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n21 } if len(m.Message) > 0 { dAtA[i] = 0x22 @@ -4697,11 +4735,11 @@ func (m *TaskStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.Timestamp.Size())) - n20, err := m.Timestamp.MarshalTo(dAtA[i:]) + n22, err := m.Timestamp.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n22 } if m.State != 0 { dAtA[i] = 0x10 @@ -4721,21 +4759,21 @@ func (m *TaskStatus) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.Err) } if m.RuntimeStatus != nil { - nn21, err := m.RuntimeStatus.MarshalTo(dAtA[i:]) + nn23, err := m.RuntimeStatus.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn21 + i += nn23 } if m.PortStatus != nil { dAtA[i] = 0x32 i++ i = encodeVarintTypes(dAtA, i, uint64(m.PortStatus.Size())) - n22, err := m.PortStatus.MarshalTo(dAtA[i:]) + n24, err := m.PortStatus.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n24 } if len(m.AppliedBy) > 0 { dAtA[i] = 0x3a @@ -4747,11 +4785,11 @@ func (m *TaskStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintTypes(dAtA, i, uint64(m.AppliedAt.Size())) - n23, err := m.AppliedAt.MarshalTo(dAtA[i:]) + n25, err := m.AppliedAt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n25 } return i, nil } @@ -4762,11 +4800,11 @@ func (m *TaskStatus_Container) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintTypes(dAtA, i, uint64(m.Container.Size())) - n24, err := m.Container.MarshalTo(dAtA[i:]) + n26, err := m.Container.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n26 } return i, nil } @@ -5003,11 +5041,11 @@ func (m *IPAMOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.Driver.Size())) - n25, err := m.Driver.MarshalTo(dAtA[i:]) + n27, err := m.Driver.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n27 } if len(m.Configs) > 0 { for _, msg := range m.Configs { @@ -5073,11 +5111,11 @@ func (m *WeightedPeer) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.Peer.Size())) - n26, err := m.Peer.MarshalTo(dAtA[i:]) + n28, err := m.Peer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n28 } if m.Weight != 0 { dAtA[i] = 0x10 @@ -5180,11 +5218,11 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) MarshalTo(dAtA []byte) (int, erro dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.Secret.Size())) - n27, err := m.Secret.MarshalTo(dAtA[i:]) + n29, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n29 } return i, nil } @@ -5290,11 +5328,11 @@ func (m *CAConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.NodeCertExpiry.Size())) - n28, err := m.NodeCertExpiry.MarshalTo(dAtA[i:]) + n30, err := m.NodeCertExpiry.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n30 } if len(m.ExternalCAs) > 0 { for _, msg := range m.ExternalCAs { @@ -5370,11 +5408,11 @@ func (m *TaskDefaults) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.LogDriver.Size())) - n29, err := m.LogDriver.MarshalTo(dAtA[i:]) + n31, err := m.LogDriver.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n31 } return i, nil } @@ -5398,11 +5436,11 @@ func (m *DispatcherConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.HeartbeatPeriod.Size())) - n30, err := m.HeartbeatPeriod.MarshalTo(dAtA[i:]) + n32, err := m.HeartbeatPeriod.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n32 } return i, nil } @@ -5518,11 +5556,11 @@ func (m *PlacementPreference) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.Preference != nil { - nn31, err := m.Preference.MarshalTo(dAtA[i:]) + nn33, err := m.Preference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn31 + i += nn33 } return i, nil } @@ -5533,11 +5571,11 @@ func (m *PlacementPreference_Spread) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.Spread.Size())) - n32, err := m.Spread.MarshalTo(dAtA[i:]) + n34, err := m.Spread.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n34 } return i, nil } @@ -5669,20 +5707,20 @@ func (m *RootCA) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintTypes(dAtA, i, uint64(m.JoinTokens.Size())) - n33, err := m.JoinTokens.MarshalTo(dAtA[i:]) + n35, err := m.JoinTokens.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n35 if m.RootRotation != nil { dAtA[i] = 0x2a i++ i = encodeVarintTypes(dAtA, i, uint64(m.RootRotation.Size())) - n34, err := m.RootRotation.MarshalTo(dAtA[i:]) + n36, err := m.RootRotation.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n36 } if m.LastForcedRotation != 0 { dAtA[i] = 0x30 @@ -5721,11 +5759,11 @@ func (m *Certificate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.Status.Size())) - n35, err := m.Status.MarshalTo(dAtA[i:]) + n37, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n37 if len(m.Certificate) > 0 { dAtA[i] = 0x22 i++ @@ -5912,11 +5950,11 @@ func (m *SecretReference) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.SecretName) } if m.Target != nil { - nn36, err := m.Target.MarshalTo(dAtA[i:]) + nn38, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn36 + i += nn38 } return i, nil } @@ -5927,11 +5965,11 @@ func (m *SecretReference_File) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.File.Size())) - n37, err := m.File.MarshalTo(dAtA[i:]) + n39, err := m.File.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n39 } return i, nil } @@ -5963,11 +6001,11 @@ func (m *ConfigReference) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.ConfigName) } if m.Target != nil { - nn38, err := m.Target.MarshalTo(dAtA[i:]) + nn40, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn38 + i += nn40 } return i, nil } @@ -5978,11 +6016,11 @@ func (m *ConfigReference_File) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.File.Size())) - n39, err := m.File.MarshalTo(dAtA[i:]) + n41, err := m.File.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n41 } return i, nil } @@ -5992,11 +6030,11 @@ func (m *ConfigReference_Runtime) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintTypes(dAtA, i, uint64(m.Runtime.Size())) - n40, err := m.Runtime.MarshalTo(dAtA[i:]) + n42, err := m.Runtime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n40 + i += n42 } return i, nil } @@ -6019,11 +6057,11 @@ func (m *BlacklistedCertificate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.Expiry.Size())) - n41, err := m.Expiry.MarshalTo(dAtA[i:]) + n43, err := m.Expiry.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n41 + i += n43 } return i, nil } @@ -6062,21 +6100,21 @@ func (m *HealthConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintTypes(dAtA, i, uint64(m.Interval.Size())) - n42, err := m.Interval.MarshalTo(dAtA[i:]) + n44, err := m.Interval.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n44 } if m.Timeout != nil { dAtA[i] = 0x1a i++ i = encodeVarintTypes(dAtA, i, uint64(m.Timeout.Size())) - n43, err := m.Timeout.MarshalTo(dAtA[i:]) + n45, err := m.Timeout.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n43 + i += n45 } if m.Retries != 0 { dAtA[i] = 0x20 @@ -6087,11 +6125,11 @@ func (m *HealthConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintTypes(dAtA, i, uint64(m.StartPeriod.Size())) - n44, err := m.StartPeriod.MarshalTo(dAtA[i:]) + n46, err := m.StartPeriod.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n44 + i += n46 } return i, nil } @@ -6186,21 +6224,21 @@ func (m *Privileges) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintTypes(dAtA, i, uint64(m.CredentialSpec.Size())) - n45, err := m.CredentialSpec.MarshalTo(dAtA[i:]) + n47, err := m.CredentialSpec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n45 + i += n47 } if m.SELinuxContext != nil { dAtA[i] = 0x12 i++ i = encodeVarintTypes(dAtA, i, uint64(m.SELinuxContext.Size())) - n46, err := m.SELinuxContext.MarshalTo(dAtA[i:]) + n48, err := m.SELinuxContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n46 + i += n48 } return i, nil } @@ -6221,11 +6259,11 @@ func (m *Privileges_CredentialSpec) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.Source != nil { - nn47, err := m.Source.MarshalTo(dAtA[i:]) + nn49, err := m.Source.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn47 + i += nn49 } return i, nil } @@ -6446,6 +6484,14 @@ func (m *ResourceRequirements) Size() (n int) { l = m.Reservations.Size() n += 1 + l + sovTypes(uint64(l)) } + if m.SwapBytes != nil { + l = m.SwapBytes.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.MemorySwappiness != nil { + l = m.MemorySwappiness.Size() + n += 1 + l + sovTypes(uint64(l)) + } return n } @@ -7635,6 +7681,8 @@ func (this *ResourceRequirements) String() string { s := strings.Join([]string{`&ResourceRequirements{`, `Limits:` + strings.Replace(fmt.Sprintf("%v", this.Limits), "Resources", "Resources", 1) + `,`, `Reservations:` + strings.Replace(fmt.Sprintf("%v", this.Reservations), "Resources", "Resources", 1) + `,`, + `SwapBytes:` + strings.Replace(fmt.Sprintf("%v", this.SwapBytes), "Int64Value", "google_protobuf2.Int64Value", 1) + `,`, + `MemorySwappiness:` + strings.Replace(fmt.Sprintf("%v", this.MemorySwappiness), "Int64Value", "google_protobuf2.Int64Value", 1) + `,`, `}`, }, "") return s @@ -9391,6 +9439,72 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwapBytes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SwapBytes == nil { + m.SwapBytes = &google_protobuf2.Int64Value{} + } + if err := m.SwapBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemorySwappiness", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemorySwappiness == nil { + m.MemorySwappiness = &google_protobuf2.Int64Value{} + } + if err := m.MemorySwappiness.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -17484,332 +17598,335 @@ var ( func init() { proto.RegisterFile("github.com/docker/swarmkit/api/types.proto", fileDescriptorTypes) } var fileDescriptorTypes = []byte{ - // 5218 bytes of a gzipped FileDescriptorProto + // 5274 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5a, 0x4d, 0x70, 0x23, 0x49, - 0x56, 0xb6, 0x64, 0x49, 0x96, 0x9e, 0x64, 0xbb, 0x3a, 0xdb, 0xdb, 0xe3, 0xd6, 0xf6, 0xd8, 0x9a, - 0x9a, 0xe9, 0x9d, 0xd9, 0xde, 0x41, 0xfd, 0x37, 0xbb, 0xd1, 0x33, 0xc3, 0xec, 0x8c, 0x7e, 0xca, - 0xb6, 0xb6, 0x6d, 0x49, 0x91, 0x92, 0xbb, 0x77, 0x89, 0x80, 0xa2, 0x5c, 0x95, 0x96, 0x6b, 0x5c, - 0xaa, 0x14, 0x55, 0x25, 0xbb, 0xc5, 0x42, 0x30, 0x27, 0x20, 0x7c, 0x82, 0x0b, 0xec, 0x06, 0xe1, - 0x08, 0x22, 0xe0, 0xc6, 0x81, 0x03, 0x07, 0x16, 0x4e, 0x43, 0x04, 0x41, 0x6c, 0x70, 0x81, 0x85, - 0x08, 0xd8, 0x00, 0xc2, 0x30, 0x3e, 0x70, 0x23, 0xe0, 0x42, 0x70, 0xe1, 0x40, 0xe4, 0x4f, 0x95, - 0xca, 0xea, 0xb2, 0x3d, 0xb3, 0xcb, 0xc5, 0x56, 0xbe, 0xf7, 0xbd, 0x97, 0x99, 0x2f, 0x33, 0x5f, - 0xbe, 0xf7, 0xb2, 0xe0, 0xde, 0xc0, 0x0e, 0x0e, 0xc6, 0x7b, 0x55, 0x93, 0x0e, 0xef, 0x5b, 0xd4, - 0x3c, 0x24, 0xde, 0x7d, 0xff, 0xd8, 0xf0, 0x86, 0x87, 0x76, 0x70, 0xdf, 0x18, 0xd9, 0xf7, 0x83, - 0xc9, 0x88, 0xf8, 0xd5, 0x91, 0x47, 0x03, 0x8a, 0x90, 0x00, 0x54, 0x43, 0x40, 0xf5, 0xe8, 0x61, - 0x79, 0x7d, 0x40, 0xe9, 0xc0, 0x21, 0xf7, 0x39, 0x62, 0x6f, 0xbc, 0x7f, 0x3f, 0xb0, 0x87, 0xc4, - 0x0f, 0x8c, 0xe1, 0x48, 0x08, 0x95, 0xd7, 0x66, 0x01, 0xd6, 0xd8, 0x33, 0x02, 0x9b, 0xba, 0x92, - 0xbf, 0x32, 0xa0, 0x03, 0xca, 0x7f, 0xde, 0x67, 0xbf, 0x04, 0x55, 0x5d, 0x87, 0x85, 0x67, 0xc4, - 0xf3, 0x6d, 0xea, 0xa2, 0x15, 0xc8, 0xda, 0xae, 0x45, 0x5e, 0xac, 0xa6, 0x2a, 0xa9, 0xb7, 0x32, - 0x58, 0x34, 0xd4, 0x07, 0x00, 0x2d, 0xf6, 0x43, 0x73, 0x03, 0x6f, 0x82, 0x14, 0x98, 0x3f, 0x24, - 0x13, 0x8e, 0x28, 0x60, 0xf6, 0x93, 0x51, 0x8e, 0x0c, 0x67, 0x35, 0x2d, 0x28, 0x47, 0x86, 0xa3, - 0x7e, 0x96, 0x82, 0x62, 0xcd, 0x75, 0x69, 0xc0, 0x7b, 0xf7, 0x11, 0x82, 0x8c, 0x6b, 0x0c, 0x89, - 0x14, 0xe2, 0xbf, 0x51, 0x03, 0x72, 0x8e, 0xb1, 0x47, 0x1c, 0x7f, 0x35, 0x5d, 0x99, 0x7f, 0xab, - 0xf8, 0xe8, 0x6b, 0xd5, 0x97, 0xa7, 0x5c, 0x8d, 0x29, 0xa9, 0x6e, 0x73, 0x34, 0x1f, 0x04, 0x96, - 0xa2, 0xe8, 0x9b, 0xb0, 0x60, 0xbb, 0x96, 0x6d, 0x12, 0x7f, 0x35, 0xc3, 0xb5, 0xac, 0x25, 0x69, - 0x99, 0x8e, 0xbe, 0x9e, 0xf9, 0xe1, 0xd9, 0xfa, 0x1c, 0x0e, 0x85, 0xca, 0xef, 0x42, 0x31, 0xa6, - 0x36, 0x61, 0x6e, 0x2b, 0x90, 0x3d, 0x32, 0x9c, 0x31, 0x91, 0xb3, 0x13, 0x8d, 0xf7, 0xd2, 0x4f, - 0x52, 0xea, 0x47, 0xb0, 0xd2, 0x36, 0x86, 0xc4, 0xda, 0x24, 0x2e, 0xf1, 0x6c, 0x13, 0x13, 0x9f, - 0x8e, 0x3d, 0x93, 0xb0, 0xb9, 0x1e, 0xda, 0xae, 0x15, 0xce, 0x95, 0xfd, 0x4e, 0xd6, 0xa2, 0x36, - 0xe0, 0x95, 0xa6, 0xed, 0x9b, 0x1e, 0x09, 0xc8, 0x17, 0x56, 0x32, 0x1f, 0x2a, 0x39, 0x4b, 0xc1, - 0xf2, 0xac, 0xf4, 0xcf, 0xc1, 0x4d, 0x66, 0x62, 0x4b, 0xf7, 0x24, 0x45, 0xf7, 0x47, 0xc4, 0xe4, - 0xca, 0x8a, 0x8f, 0xde, 0x4a, 0xb2, 0x50, 0xd2, 0x4c, 0xb6, 0xe6, 0xf0, 0x0d, 0xae, 0x26, 0x24, - 0xf4, 0x46, 0xc4, 0x44, 0x26, 0xdc, 0xb2, 0xe4, 0xa0, 0x67, 0xd4, 0xa7, 0xb9, 0xfa, 0xc4, 0x65, - 0xbc, 0x64, 0x9a, 0x5b, 0x73, 0x78, 0x25, 0x54, 0x16, 0xef, 0xa4, 0x0e, 0x90, 0x0f, 0x75, 0xab, - 0xdf, 0x4b, 0x41, 0x21, 0x64, 0xfa, 0xe8, 0xab, 0x50, 0x70, 0x0d, 0x97, 0xea, 0xe6, 0x68, 0xec, - 0xf3, 0x09, 0xcd, 0xd7, 0x4b, 0xe7, 0x67, 0xeb, 0xf9, 0xb6, 0xe1, 0xd2, 0x46, 0x77, 0xd7, 0xc7, - 0x79, 0xc6, 0x6e, 0x8c, 0xc6, 0x3e, 0x7a, 0x0d, 0x4a, 0x43, 0x32, 0xa4, 0xde, 0x44, 0xdf, 0x9b, - 0x04, 0xc4, 0x97, 0x66, 0x2b, 0x0a, 0x5a, 0x9d, 0x91, 0xd0, 0x07, 0xb0, 0x30, 0x10, 0x43, 0x5a, - 0x9d, 0xe7, 0xdb, 0xe7, 0xf5, 0xa4, 0xd1, 0xcf, 0x8c, 0x1a, 0x87, 0x32, 0xea, 0x6f, 0xa5, 0x60, - 0x25, 0xa2, 0x92, 0x5f, 0x1a, 0xdb, 0x1e, 0x19, 0x12, 0x37, 0xf0, 0xd1, 0xd7, 0x21, 0xe7, 0xd8, - 0x43, 0x3b, 0xf0, 0xa5, 0xcd, 0x5f, 0x4d, 0x52, 0x1b, 0x4d, 0x0a, 0x4b, 0x30, 0xaa, 0x41, 0xc9, - 0x23, 0x3e, 0xf1, 0x8e, 0xc4, 0x8e, 0x97, 0x16, 0xbd, 0x46, 0xf8, 0x82, 0x88, 0xba, 0x01, 0xf9, - 0xae, 0x63, 0x04, 0xfb, 0xd4, 0x1b, 0x22, 0x15, 0x4a, 0x86, 0x67, 0x1e, 0xd8, 0x01, 0x31, 0x83, - 0xb1, 0x17, 0x9e, 0xbe, 0x0b, 0x34, 0x74, 0x0b, 0xd2, 0x54, 0x74, 0x54, 0xa8, 0xe7, 0xce, 0xcf, - 0xd6, 0xd3, 0x9d, 0x1e, 0x4e, 0x53, 0x5f, 0x7d, 0x1f, 0x6e, 0x74, 0x9d, 0xf1, 0xc0, 0x76, 0x9b, - 0xc4, 0x37, 0x3d, 0x7b, 0xc4, 0xb4, 0xb3, 0x5d, 0xc9, 0x7c, 0x54, 0xb8, 0x2b, 0xd9, 0xef, 0xe8, - 0x68, 0xa7, 0xa7, 0x47, 0x5b, 0xfd, 0x8d, 0x34, 0xdc, 0xd0, 0xdc, 0x81, 0xed, 0x92, 0xb8, 0xf4, - 0x5d, 0x58, 0x22, 0x9c, 0xa8, 0x1f, 0x09, 0x77, 0x23, 0xf5, 0x2c, 0x0a, 0x6a, 0xe8, 0x83, 0x5a, - 0x33, 0x7e, 0xe1, 0x61, 0xd2, 0xf4, 0x5f, 0xd2, 0x9e, 0xe8, 0x1d, 0x34, 0x58, 0x18, 0xf1, 0x49, - 0xf8, 0x72, 0x79, 0xef, 0x26, 0xe9, 0x7a, 0x69, 0x9e, 0xa1, 0x93, 0x90, 0xb2, 0x3f, 0x8d, 0x93, - 0xf8, 0xeb, 0x34, 0x2c, 0xb7, 0xa9, 0x75, 0xc1, 0x0e, 0x65, 0xc8, 0x1f, 0x50, 0x3f, 0x88, 0x39, - 0xc4, 0xa8, 0x8d, 0x9e, 0x40, 0x7e, 0x24, 0x97, 0x4f, 0xae, 0xfe, 0x9d, 0xe4, 0x21, 0x0b, 0x0c, - 0x8e, 0xd0, 0xe8, 0x7d, 0x28, 0x84, 0x47, 0x86, 0xcd, 0xf6, 0x73, 0x6c, 0x9c, 0x29, 0x1e, 0x7d, - 0x00, 0x39, 0xb1, 0x08, 0xab, 0x19, 0x2e, 0x79, 0xf7, 0x73, 0xd9, 0x1c, 0x4b, 0x21, 0xb4, 0x09, - 0xf9, 0xc0, 0xf1, 0x75, 0xdb, 0xdd, 0xa7, 0xab, 0x59, 0xae, 0x60, 0x3d, 0xd1, 0xc9, 0x50, 0x8b, - 0xf4, 0xb7, 0x7b, 0x2d, 0x77, 0x9f, 0xd6, 0x8b, 0xe7, 0x67, 0xeb, 0x0b, 0xb2, 0x81, 0x17, 0x02, - 0xc7, 0x67, 0x3f, 0xd0, 0x1d, 0xc8, 0xec, 0xdb, 0x23, 0x7f, 0x35, 0x57, 0x49, 0xbd, 0x95, 0xaf, - 0xe7, 0xcf, 0xcf, 0xd6, 0x33, 0x1b, 0xad, 0x6e, 0x0f, 0x73, 0xaa, 0xfa, 0xdb, 0x29, 0x28, 0xc6, - 0x74, 0xa0, 0x57, 0x01, 0x02, 0x6f, 0xec, 0x07, 0xba, 0x47, 0x69, 0xc0, 0x4d, 0x59, 0xc2, 0x05, - 0x4e, 0xc1, 0x94, 0x06, 0xa8, 0x0a, 0x37, 0x4d, 0xe2, 0x05, 0xba, 0xed, 0xfb, 0x63, 0xe2, 0xe9, - 0xfe, 0x78, 0xef, 0x63, 0x62, 0x06, 0xdc, 0xac, 0x25, 0x7c, 0x83, 0xb1, 0x5a, 0x9c, 0xd3, 0x13, - 0x0c, 0xf4, 0x18, 0x6e, 0xc5, 0xf1, 0xa3, 0xf1, 0x9e, 0x63, 0x9b, 0x3a, 0x5b, 0xea, 0x79, 0x2e, - 0x72, 0x73, 0x2a, 0xd2, 0xe5, 0xbc, 0xa7, 0x64, 0xa2, 0xfe, 0x38, 0x05, 0x0a, 0x36, 0xf6, 0x83, - 0x1d, 0x32, 0xdc, 0x23, 0x5e, 0x2f, 0x30, 0x82, 0xb1, 0x8f, 0x6e, 0x41, 0xce, 0x21, 0x86, 0x45, - 0x3c, 0x3e, 0xa8, 0x3c, 0x96, 0x2d, 0xb4, 0xcb, 0xce, 0xb7, 0x61, 0x1e, 0x18, 0x7b, 0xb6, 0x63, - 0x07, 0x13, 0x3e, 0x94, 0xa5, 0xe4, 0x0d, 0x3e, 0xab, 0xb3, 0x8a, 0x63, 0x82, 0xf8, 0x82, 0x1a, - 0xb4, 0x0a, 0x0b, 0x43, 0xe2, 0xfb, 0xc6, 0x80, 0xf0, 0x91, 0x16, 0x70, 0xd8, 0x54, 0xdf, 0x87, - 0x52, 0x5c, 0x0e, 0x15, 0x61, 0x61, 0xb7, 0xfd, 0xb4, 0xdd, 0x79, 0xde, 0x56, 0xe6, 0xd0, 0x32, - 0x14, 0x77, 0xdb, 0x58, 0xab, 0x35, 0xb6, 0x6a, 0xf5, 0x6d, 0x4d, 0x49, 0xa1, 0x45, 0x28, 0x4c, - 0x9b, 0x69, 0xf5, 0x4f, 0x52, 0x00, 0xcc, 0xdc, 0x72, 0x52, 0xef, 0x41, 0xd6, 0x0f, 0x8c, 0x40, - 0xec, 0xd9, 0xa5, 0x47, 0x6f, 0x5c, 0xb6, 0xc2, 0x72, 0xbc, 0xec, 0x1f, 0xc1, 0x42, 0x24, 0x3e, - 0xc2, 0xf4, 0x85, 0x11, 0x32, 0xf7, 0x61, 0x58, 0x96, 0x27, 0x07, 0xce, 0x7f, 0xab, 0xef, 0x43, - 0x96, 0x4b, 0x5f, 0x1c, 0x6e, 0x1e, 0x32, 0x4d, 0xf6, 0x2b, 0x85, 0x0a, 0x90, 0xc5, 0x5a, 0xad, - 0xf9, 0x1d, 0x25, 0x8d, 0x14, 0x28, 0x35, 0x5b, 0xbd, 0x46, 0xa7, 0xdd, 0xd6, 0x1a, 0x7d, 0xad, - 0xa9, 0xcc, 0xab, 0x77, 0x21, 0xdb, 0x1a, 0x32, 0xcd, 0x77, 0xd8, 0x81, 0xd8, 0x27, 0x1e, 0x71, - 0xcd, 0xf0, 0x9c, 0x4d, 0x09, 0xea, 0x67, 0x25, 0xc8, 0xee, 0xd0, 0xb1, 0x1b, 0xa0, 0x47, 0x31, - 0xa7, 0xb6, 0x94, 0x1c, 0x3f, 0x70, 0x60, 0xb5, 0x3f, 0x19, 0x11, 0xe9, 0xf4, 0x6e, 0x41, 0x4e, - 0x1c, 0x1d, 0x39, 0x1d, 0xd9, 0x62, 0xf4, 0xc0, 0xf0, 0x06, 0x24, 0x90, 0xf3, 0x91, 0x2d, 0xf4, - 0x16, 0xbb, 0xcf, 0x0c, 0x8b, 0xba, 0xce, 0x84, 0x9f, 0xb0, 0xbc, 0xb8, 0xb4, 0x30, 0x31, 0xac, - 0x8e, 0xeb, 0x4c, 0x70, 0xc4, 0x45, 0x5b, 0x50, 0xda, 0xb3, 0x5d, 0x4b, 0xa7, 0x23, 0x71, 0x05, - 0x64, 0x2f, 0x3f, 0x8f, 0x62, 0x54, 0x75, 0xdb, 0xb5, 0x3a, 0x02, 0x8c, 0x8b, 0x7b, 0xd3, 0x06, - 0x6a, 0xc3, 0xd2, 0x11, 0x75, 0xc6, 0x43, 0x12, 0xe9, 0xca, 0x71, 0x5d, 0x6f, 0x5e, 0xae, 0xeb, - 0x19, 0xc7, 0x87, 0xda, 0x16, 0x8f, 0xe2, 0x4d, 0xf4, 0x14, 0x16, 0x83, 0xe1, 0x68, 0xdf, 0x8f, - 0xd4, 0x2d, 0x70, 0x75, 0x5f, 0xb9, 0xc2, 0x60, 0x0c, 0x1e, 0x6a, 0x2b, 0x05, 0xb1, 0x16, 0xda, - 0x84, 0xa2, 0x49, 0x5d, 0xdf, 0xf6, 0x03, 0xe2, 0x9a, 0x93, 0xd5, 0x3c, 0xb7, 0xfd, 0x15, 0xb3, - 0x6c, 0x4c, 0xc1, 0x38, 0x2e, 0x59, 0xfe, 0xc1, 0x3c, 0x14, 0x63, 0x26, 0x40, 0x3d, 0x28, 0x8e, - 0x3c, 0x3a, 0x32, 0x06, 0xfc, 0x3e, 0x94, 0x8b, 0xfa, 0xf0, 0x73, 0x99, 0xaf, 0xda, 0x9d, 0x0a, - 0xe2, 0xb8, 0x16, 0xf4, 0x0e, 0x94, 0x5c, 0xea, 0x7a, 0xc4, 0x1c, 0x7b, 0xbe, 0x7d, 0x24, 0x16, - 0x3d, 0x5f, 0x57, 0xce, 0xcf, 0xd6, 0x4b, 0x6d, 0xea, 0xe2, 0x90, 0x8e, 0x2f, 0xa0, 0xd4, 0xd3, - 0x34, 0x14, 0x63, 0x2a, 0xd1, 0x3d, 0xc8, 0xe3, 0x2e, 0x6e, 0x3d, 0xab, 0xf5, 0x35, 0x65, 0xae, - 0x7c, 0xe7, 0xe4, 0xb4, 0xb2, 0xca, 0xc7, 0x10, 0xef, 0xb6, 0xeb, 0xd9, 0x47, 0x6c, 0xe7, 0xbf, - 0x05, 0x0b, 0x21, 0x34, 0x55, 0xfe, 0xf2, 0xc9, 0x69, 0xe5, 0x95, 0x59, 0x68, 0x0c, 0x89, 0x7b, - 0x5b, 0x35, 0xac, 0x35, 0x95, 0x74, 0x32, 0x12, 0xf7, 0x0e, 0x0c, 0x8f, 0x58, 0xe8, 0x2b, 0x90, - 0x93, 0xc0, 0xf9, 0x72, 0xf9, 0xe4, 0xb4, 0x72, 0x6b, 0x16, 0x38, 0xc5, 0xe1, 0xde, 0x76, 0xed, - 0x99, 0xa6, 0x64, 0x92, 0x71, 0xb8, 0xe7, 0x18, 0x47, 0x04, 0xbd, 0x01, 0x59, 0x01, 0xcb, 0x96, - 0x6f, 0x9f, 0x9c, 0x56, 0xbe, 0xf4, 0x92, 0x3a, 0x86, 0x2a, 0xaf, 0xfe, 0xe6, 0x1f, 0xac, 0xcd, - 0xfd, 0xf9, 0x1f, 0xae, 0x29, 0xb3, 0xec, 0xf2, 0xff, 0xa6, 0x60, 0xf1, 0xc2, 0x8e, 0x43, 0x2a, - 0xe4, 0x5c, 0x6a, 0xd2, 0x91, 0xb8, 0x5c, 0xf3, 0x75, 0x38, 0x3f, 0x5b, 0xcf, 0xb5, 0x69, 0x83, - 0x8e, 0x26, 0x58, 0x72, 0xd0, 0xd3, 0x99, 0xf0, 0xe0, 0xf1, 0xe7, 0xdc, 0xce, 0x89, 0x01, 0xc2, - 0x87, 0xb0, 0x68, 0x79, 0xf6, 0x11, 0xf1, 0x74, 0x93, 0xba, 0xfb, 0xf6, 0x40, 0x5e, 0x9c, 0xe5, - 0xc4, 0x18, 0x96, 0x03, 0x71, 0x49, 0x08, 0x34, 0x38, 0xfe, 0xa7, 0x08, 0x0d, 0xca, 0x23, 0x28, - 0xc5, 0x0f, 0x08, 0xbb, 0xcd, 0x7c, 0xfb, 0x97, 0x89, 0x0c, 0x56, 0x79, 0x68, 0x8b, 0x0b, 0x8c, - 0x22, 0x42, 0xd5, 0x37, 0x21, 0x33, 0xa4, 0x96, 0xd0, 0xb3, 0x58, 0xbf, 0xc9, 0x22, 0x94, 0x7f, - 0x3a, 0x5b, 0x2f, 0x52, 0xbf, 0xba, 0x61, 0x3b, 0x64, 0x87, 0x5a, 0x04, 0x73, 0x00, 0xf3, 0xb5, - 0xe1, 0x09, 0x95, 0xb7, 0x81, 0x6c, 0xaa, 0xdf, 0x4f, 0x41, 0x86, 0x39, 0x31, 0xf4, 0x65, 0xc8, - 0xd4, 0x5b, 0xed, 0xa6, 0x32, 0x57, 0xbe, 0x71, 0x72, 0x5a, 0x59, 0xe4, 0xd6, 0x62, 0x0c, 0x76, - 0x18, 0xd0, 0x3a, 0xe4, 0x9e, 0x75, 0xb6, 0x77, 0x77, 0xd8, 0xce, 0xbb, 0x79, 0x72, 0x5a, 0x59, - 0x8e, 0xd8, 0xc2, 0x9e, 0xe8, 0x55, 0xc8, 0xf6, 0x77, 0xba, 0x1b, 0x3d, 0x25, 0x5d, 0x46, 0x27, - 0xa7, 0x95, 0xa5, 0x88, 0xcf, 0xa7, 0x83, 0x5e, 0x83, 0x6c, 0xbb, 0xdb, 0xea, 0x6a, 0xca, 0x7c, - 0xf9, 0xd6, 0xc9, 0x69, 0x05, 0x45, 0x6c, 0x9e, 0x63, 0x74, 0xed, 0x11, 0x29, 0xdf, 0x90, 0x7b, - 0xa2, 0x10, 0xf1, 0xd4, 0x1f, 0xa5, 0xa0, 0x18, 0x3b, 0xe4, 0x6c, 0x5b, 0x37, 0xb5, 0x8d, 0xda, - 0xee, 0x76, 0x5f, 0x99, 0x8b, 0x6d, 0xeb, 0x18, 0xa4, 0x49, 0xf6, 0x8d, 0xb1, 0xc3, 0x7c, 0x2b, - 0x34, 0x3a, 0xed, 0x5e, 0xab, 0xd7, 0xd7, 0xda, 0x7d, 0x25, 0x55, 0x5e, 0x3d, 0x39, 0xad, 0xac, - 0xcc, 0x82, 0x37, 0xc6, 0x8e, 0xc3, 0x36, 0x76, 0xa3, 0xd6, 0xd8, 0xe2, 0x27, 0x65, 0xba, 0xb1, - 0x63, 0xa8, 0x86, 0x61, 0x1e, 0x10, 0x0b, 0xbd, 0x0d, 0x85, 0xa6, 0xb6, 0xad, 0x6d, 0xd6, 0xf8, - 0x8d, 0x52, 0x7e, 0xf5, 0xe4, 0xb4, 0x72, 0xfb, 0xe5, 0xde, 0x1d, 0x32, 0x30, 0x02, 0x62, 0xcd, - 0x6c, 0xf0, 0x18, 0x44, 0xfd, 0xef, 0x34, 0x2c, 0x62, 0x96, 0xa0, 0x7b, 0x41, 0x97, 0x3a, 0xb6, - 0x39, 0x41, 0x5d, 0x28, 0x98, 0xd4, 0xb5, 0xec, 0x98, 0x6f, 0x7a, 0x74, 0x49, 0x90, 0x36, 0x95, - 0x0a, 0x5b, 0x8d, 0x50, 0x12, 0x4f, 0x95, 0xa0, 0xfb, 0x90, 0xb5, 0x88, 0x63, 0x4c, 0x64, 0xb4, - 0x78, 0xbb, 0x2a, 0x4a, 0x00, 0xd5, 0xb0, 0x04, 0x50, 0x6d, 0xca, 0x12, 0x00, 0x16, 0x38, 0x9e, - 0x15, 0x19, 0x2f, 0x74, 0x23, 0x08, 0xc8, 0x70, 0x14, 0x88, 0x3d, 0x92, 0xc1, 0xc5, 0xa1, 0xf1, - 0xa2, 0x26, 0x49, 0xe8, 0x21, 0xe4, 0x8e, 0x6d, 0xd7, 0xa2, 0xc7, 0x32, 0x1a, 0xbc, 0x42, 0xa9, - 0x04, 0xaa, 0x27, 0x2c, 0x0c, 0x9a, 0x19, 0x26, 0xdb, 0x66, 0xed, 0x4e, 0x5b, 0x0b, 0xb7, 0x99, - 0xe4, 0x77, 0xdc, 0x36, 0x75, 0x99, 0xf7, 0x80, 0x4e, 0x5b, 0xdf, 0xa8, 0xb5, 0xb6, 0x77, 0x31, - 0xdb, 0x6a, 0x2b, 0x27, 0xa7, 0x15, 0x25, 0x82, 0x6c, 0x18, 0xb6, 0xc3, 0xd2, 0x93, 0xdb, 0x30, - 0x5f, 0x6b, 0x7f, 0x47, 0x49, 0x97, 0x95, 0x93, 0xd3, 0x4a, 0x29, 0x62, 0xd7, 0xdc, 0xc9, 0xd4, - 0xee, 0xb3, 0xfd, 0xaa, 0x7f, 0x33, 0x0f, 0xa5, 0xdd, 0x91, 0x65, 0x04, 0x44, 0x9c, 0x52, 0x54, - 0x81, 0xe2, 0xc8, 0xf0, 0x0c, 0xc7, 0x21, 0x8e, 0xed, 0x0f, 0x65, 0x71, 0x23, 0x4e, 0x42, 0xef, - 0x7e, 0x5e, 0x33, 0xd6, 0xf3, 0xec, 0xe4, 0x7d, 0xef, 0x5f, 0xd7, 0x53, 0xa1, 0x41, 0x77, 0x61, - 0x69, 0x5f, 0x8c, 0x56, 0x37, 0x4c, 0xbe, 0xb0, 0xf3, 0x7c, 0x61, 0xab, 0x49, 0x0b, 0x1b, 0x1f, - 0x56, 0x55, 0x4e, 0xb2, 0xc6, 0xa5, 0xf0, 0xe2, 0x7e, 0xbc, 0x89, 0x1e, 0xc3, 0xc2, 0x90, 0xba, - 0x76, 0x40, 0xbd, 0xeb, 0x57, 0x21, 0x44, 0xa2, 0x7b, 0x70, 0x83, 0x2d, 0x6e, 0x38, 0x1e, 0xce, - 0xe6, 0x21, 0x44, 0x1a, 0x2f, 0x0f, 0x8d, 0x17, 0xb2, 0x43, 0xcc, 0xc8, 0xa8, 0x0e, 0x59, 0xea, - 0xb1, 0x18, 0x35, 0xc7, 0x87, 0xfb, 0xf6, 0xb5, 0xc3, 0x15, 0x8d, 0x0e, 0x93, 0xc1, 0x42, 0x54, - 0xfd, 0x06, 0x2c, 0x5e, 0x98, 0x04, 0x0b, 0xcd, 0xba, 0xb5, 0xdd, 0x9e, 0xa6, 0xcc, 0xa1, 0x12, - 0xe4, 0x1b, 0x9d, 0x76, 0xbf, 0xd5, 0xde, 0x65, 0xb1, 0x65, 0x09, 0xf2, 0xb8, 0xb3, 0xbd, 0x5d, - 0xaf, 0x35, 0x9e, 0x2a, 0x69, 0xb5, 0x0a, 0xc5, 0x98, 0x36, 0xb4, 0x04, 0xd0, 0xeb, 0x77, 0xba, - 0xfa, 0x46, 0x0b, 0xf7, 0xfa, 0x22, 0x32, 0xed, 0xf5, 0x6b, 0xb8, 0x2f, 0x09, 0x29, 0xf5, 0x3f, - 0xd3, 0xe1, 0x8a, 0xca, 0x60, 0xb4, 0x7e, 0x31, 0x18, 0xbd, 0x62, 0xf0, 0x32, 0x1c, 0x9d, 0x36, - 0xa2, 0xa0, 0xf4, 0x5d, 0x00, 0xbe, 0x71, 0x88, 0xa5, 0x1b, 0x81, 0x5c, 0xf8, 0xf2, 0x4b, 0x46, - 0xee, 0x87, 0x35, 0x36, 0x5c, 0x90, 0xe8, 0x5a, 0x80, 0x3e, 0x80, 0x92, 0x49, 0x87, 0x23, 0x87, - 0x48, 0xe1, 0xf9, 0x6b, 0x85, 0x8b, 0x11, 0xbe, 0x16, 0xc4, 0xc3, 0xe1, 0xcc, 0xc5, 0x80, 0xfd, - 0xd7, 0x53, 0xa1, 0x65, 0x12, 0x22, 0xe0, 0x12, 0xe4, 0x77, 0xbb, 0xcd, 0x5a, 0xbf, 0xd5, 0xde, - 0x54, 0x52, 0x08, 0x20, 0xc7, 0x4d, 0xdd, 0x54, 0xd2, 0x2c, 0x72, 0x6f, 0x74, 0x76, 0xba, 0xdb, - 0x1a, 0xf7, 0x58, 0x68, 0x05, 0x94, 0xd0, 0xd8, 0x3a, 0x37, 0xa4, 0xd6, 0x54, 0x32, 0xe8, 0x26, - 0x2c, 0x47, 0x54, 0x29, 0x99, 0x45, 0xb7, 0x00, 0x45, 0xc4, 0xa9, 0x8a, 0x9c, 0xfa, 0xab, 0xb0, - 0xdc, 0xa0, 0x6e, 0x60, 0xd8, 0x6e, 0x94, 0xd5, 0x3c, 0x62, 0x93, 0x96, 0x24, 0xdd, 0x96, 0xb5, - 0xa9, 0xfa, 0xf2, 0xf9, 0xd9, 0x7a, 0x31, 0x82, 0xb6, 0x9a, 0x3c, 0x3c, 0x93, 0x0d, 0x8b, 0x9d, - 0xdf, 0x91, 0x6d, 0x71, 0xe3, 0x66, 0xeb, 0x0b, 0xe7, 0x67, 0xeb, 0xf3, 0xdd, 0x56, 0x13, 0x33, - 0x1a, 0xfa, 0x32, 0x14, 0xc8, 0x0b, 0x3b, 0xd0, 0x4d, 0x76, 0xab, 0x31, 0x03, 0x66, 0x71, 0x9e, - 0x11, 0x1a, 0xd4, 0x22, 0x6a, 0x1d, 0xa0, 0x4b, 0xbd, 0x40, 0xf6, 0xfc, 0x0e, 0x64, 0x47, 0xd4, - 0xe3, 0xd5, 0x94, 0x4b, 0x6b, 0x7c, 0x0c, 0x2e, 0x36, 0x2a, 0x16, 0x60, 0xf5, 0xfb, 0xf3, 0x00, - 0x7d, 0xc3, 0x3f, 0x94, 0x4a, 0x9e, 0x40, 0x21, 0xaa, 0x97, 0xca, 0xb2, 0xcc, 0x95, 0xab, 0x1d, - 0x81, 0xd1, 0xe3, 0x70, 0xb3, 0x89, 0x7c, 0x2d, 0x31, 0xad, 0x0e, 0x3b, 0x4a, 0x4a, 0x79, 0x2e, - 0x26, 0x65, 0x2c, 0x48, 0x20, 0x9e, 0x27, 0x57, 0x9e, 0xfd, 0x44, 0x0d, 0x7e, 0x2d, 0x08, 0xa3, - 0xc9, 0x88, 0x3f, 0xb1, 0x10, 0x35, 0xb3, 0x22, 0x5b, 0x73, 0x78, 0x2a, 0x87, 0x3e, 0x84, 0x22, - 0x9b, 0xb7, 0xee, 0x73, 0x9e, 0x0c, 0xf6, 0x2f, 0x35, 0x95, 0xd0, 0x80, 0x61, 0x34, 0xb5, 0xf2, - 0xab, 0x00, 0xc6, 0x68, 0xe4, 0xd8, 0xc4, 0xd2, 0xf7, 0x26, 0x3c, 0xba, 0x2f, 0xe0, 0x82, 0xa4, - 0xd4, 0x27, 0xec, 0xb8, 0x84, 0x6c, 0x23, 0xe0, 0x11, 0xfb, 0x35, 0x06, 0x94, 0xe8, 0x5a, 0x50, - 0x57, 0x60, 0xc9, 0x1b, 0xbb, 0xcc, 0xa0, 0x72, 0x74, 0xea, 0x1f, 0xa7, 0xe1, 0x95, 0x36, 0x09, - 0x8e, 0xa9, 0x77, 0x58, 0x0b, 0x02, 0xc3, 0x3c, 0x18, 0x12, 0x57, 0x2e, 0x5f, 0x2c, 0x89, 0x4a, - 0x5d, 0x48, 0xa2, 0x56, 0x61, 0xc1, 0x70, 0x6c, 0xc3, 0x27, 0x22, 0xf4, 0x2b, 0xe0, 0xb0, 0xc9, - 0x52, 0x3d, 0x96, 0x38, 0x12, 0xdf, 0x27, 0xa2, 0xd2, 0xc3, 0x06, 0x1e, 0x12, 0xd0, 0x77, 0xe1, - 0x96, 0x0c, 0xf2, 0x8c, 0xa8, 0x2b, 0x96, 0xc4, 0x84, 0x25, 0x63, 0x2d, 0x31, 0x93, 0x4d, 0x1e, - 0x9c, 0x8c, 0x02, 0xa7, 0xe4, 0xce, 0x28, 0x90, 0x31, 0xe5, 0x8a, 0x95, 0xc0, 0x2a, 0x6f, 0xc2, - 0xed, 0x4b, 0x45, 0xbe, 0x50, 0x25, 0xe9, 0xef, 0xd3, 0x00, 0xad, 0x6e, 0x6d, 0x47, 0x1a, 0xa9, - 0x09, 0xb9, 0x7d, 0x63, 0x68, 0x3b, 0x93, 0xab, 0x3c, 0xe0, 0x14, 0x5f, 0xad, 0x09, 0x73, 0x6c, - 0x70, 0x19, 0x2c, 0x65, 0x79, 0x1e, 0x3b, 0xde, 0x73, 0x49, 0x10, 0xe5, 0xb1, 0xbc, 0xc5, 0x86, - 0xe1, 0x19, 0x6e, 0xb4, 0x75, 0x45, 0x83, 0x2d, 0x00, 0x0b, 0x79, 0x8e, 0x8d, 0x49, 0xe8, 0xb6, - 0x64, 0x13, 0x6d, 0xf1, 0x7a, 0x2d, 0xf1, 0x8e, 0x88, 0xb5, 0x9a, 0xe5, 0x46, 0xbd, 0x6e, 0x3c, - 0x58, 0xc2, 0x85, 0xed, 0x22, 0xe9, 0xf2, 0xfb, 0x3c, 0x64, 0x9a, 0xb2, 0xbe, 0x90, 0x8d, 0x1e, - 0xc0, 0xe2, 0x85, 0x79, 0xbe, 0x54, 0x40, 0x68, 0x75, 0x9f, 0xbd, 0xa3, 0x64, 0xe4, 0xaf, 0x6f, - 0x28, 0x39, 0xf5, 0xaf, 0xe6, 0x85, 0xa3, 0x91, 0x56, 0x4d, 0x7e, 0xa7, 0xc8, 0xf3, 0xdd, 0x6d, - 0x52, 0x47, 0x3a, 0x80, 0x37, 0xaf, 0xf6, 0x3f, 0x2c, 0x8f, 0xe4, 0x70, 0x1c, 0x09, 0xa2, 0x75, - 0x28, 0x8a, 0x5d, 0xac, 0xb3, 0x03, 0xc7, 0xcd, 0xba, 0x88, 0x41, 0x90, 0x98, 0x24, 0xba, 0x0b, - 0x4b, 0xbc, 0xe0, 0xe4, 0x1f, 0x10, 0x4b, 0x60, 0x32, 0x1c, 0xb3, 0x18, 0x51, 0x39, 0x6c, 0x07, - 0x4a, 0x92, 0xa0, 0xf3, 0x6c, 0x20, 0xcb, 0x07, 0x74, 0xef, 0xba, 0x01, 0x09, 0x11, 0x9e, 0x24, - 0x14, 0x47, 0xd3, 0x86, 0xfa, 0x8b, 0x90, 0x0f, 0x07, 0x8b, 0x56, 0x61, 0xbe, 0xdf, 0xe8, 0x2a, - 0x73, 0xe5, 0xe5, 0x93, 0xd3, 0x4a, 0x31, 0x24, 0xf7, 0x1b, 0x5d, 0xc6, 0xd9, 0x6d, 0x76, 0x95, - 0xd4, 0x45, 0xce, 0x6e, 0xb3, 0x8b, 0xca, 0x90, 0xe9, 0x35, 0xfa, 0xdd, 0x30, 0x3e, 0x0b, 0x59, - 0x8c, 0x56, 0xce, 0xb0, 0xf8, 0x4c, 0xdd, 0x87, 0x62, 0xac, 0x77, 0xf4, 0x3a, 0x2c, 0xb4, 0xda, - 0x9b, 0x58, 0xeb, 0xf5, 0x94, 0x39, 0x91, 0x1e, 0xc4, 0xb8, 0x2d, 0x77, 0xc0, 0xd6, 0x0e, 0xbd, - 0x0a, 0x99, 0xad, 0x0e, 0xbb, 0xf7, 0x45, 0xfe, 0x11, 0x43, 0x6c, 0x51, 0x3f, 0x28, 0xdf, 0x94, - 0x81, 0x5f, 0x5c, 0xb1, 0xfa, 0x7b, 0x29, 0xc8, 0x89, 0x83, 0x96, 0xb8, 0x88, 0xb5, 0x69, 0x52, - 0x24, 0xd2, 0xc6, 0x37, 0x2f, 0x4f, 0xf1, 0xaa, 0x32, 0x23, 0x13, 0x5b, 0x33, 0x94, 0x2b, 0xbf, - 0x07, 0xa5, 0x38, 0xe3, 0x0b, 0x6d, 0xcc, 0xef, 0x42, 0x91, 0xed, 0xfd, 0x30, 0xd5, 0x7b, 0x04, - 0x39, 0xe1, 0x2c, 0xa2, 0x7b, 0xe8, 0xf2, 0x7c, 0x53, 0x22, 0xd1, 0x13, 0x58, 0x10, 0x39, 0x6a, - 0x58, 0xcb, 0x5e, 0xbb, 0xfa, 0x84, 0xe1, 0x10, 0xae, 0x7e, 0x08, 0x99, 0x2e, 0x21, 0x1e, 0xb3, - 0xbd, 0x4b, 0x2d, 0x32, 0xbd, 0xba, 0x65, 0x7a, 0x6d, 0x91, 0x56, 0x93, 0xa5, 0xd7, 0x16, 0x69, - 0x59, 0x51, 0x3d, 0x2e, 0x1d, 0xab, 0xc7, 0xf5, 0xa1, 0xf4, 0x9c, 0xd8, 0x83, 0x83, 0x80, 0x58, - 0x5c, 0xd1, 0xdb, 0x90, 0x19, 0x91, 0x68, 0xf0, 0xab, 0x89, 0x9b, 0x8f, 0x10, 0x0f, 0x73, 0x14, - 0xf3, 0x31, 0xc7, 0x5c, 0x5a, 0x3e, 0xc0, 0xc8, 0x96, 0xfa, 0x77, 0x69, 0x58, 0x6a, 0xf9, 0xfe, - 0xd8, 0x70, 0xcd, 0x30, 0xaa, 0xfb, 0xe6, 0xc5, 0xa8, 0x2e, 0xf1, 0xa5, 0xea, 0xa2, 0xc8, 0xc5, - 0x32, 0xa3, 0xbc, 0x59, 0xd3, 0xd1, 0xcd, 0xaa, 0xfe, 0x47, 0x2a, 0xac, 0x25, 0xde, 0x8d, 0xb9, - 0x02, 0x91, 0x23, 0xc6, 0x35, 0x91, 0x5d, 0xf7, 0xd0, 0xa5, 0xc7, 0x2e, 0xcb, 0x5e, 0xb1, 0xd6, - 0xd6, 0x9e, 0x2b, 0x29, 0xb1, 0x3d, 0x2f, 0x80, 0x30, 0x71, 0xc9, 0x31, 0xd3, 0xd4, 0xd5, 0xda, - 0x4d, 0x16, 0x85, 0xa5, 0x13, 0x34, 0x75, 0x89, 0x6b, 0xd9, 0xee, 0x00, 0xbd, 0x0e, 0xb9, 0x56, - 0xaf, 0xb7, 0xcb, 0x53, 0xc8, 0x57, 0x4e, 0x4e, 0x2b, 0x37, 0x2f, 0xa0, 0x78, 0x1d, 0xd9, 0x62, - 0x20, 0x96, 0x02, 0xb1, 0xf8, 0x2c, 0x01, 0xc4, 0x62, 0x6b, 0x01, 0xc2, 0x9d, 0x7e, 0xad, 0xaf, - 0x29, 0xd9, 0x04, 0x10, 0xa6, 0xec, 0xaf, 0x3c, 0x6e, 0xff, 0x9c, 0x06, 0xa5, 0x66, 0x9a, 0x64, - 0x14, 0x30, 0xbe, 0xcc, 0x3a, 0xfb, 0x90, 0x1f, 0xb1, 0x5f, 0x36, 0x09, 0x23, 0xa8, 0x27, 0x89, - 0x6f, 0xad, 0x33, 0x72, 0x55, 0x4c, 0x1d, 0x52, 0xb3, 0x86, 0xb6, 0xef, 0xdb, 0xd4, 0x15, 0x34, - 0x1c, 0x69, 0x2a, 0xff, 0x57, 0x0a, 0x6e, 0x26, 0x20, 0xd0, 0x03, 0xc8, 0x78, 0xd4, 0x09, 0xd7, - 0xf0, 0xce, 0x65, 0x65, 0x62, 0x26, 0x8a, 0x39, 0x12, 0xad, 0x01, 0x18, 0xe3, 0x80, 0x1a, 0xbc, - 0x7f, 0x51, 0x5c, 0xc3, 0x31, 0x0a, 0x7a, 0x0e, 0x39, 0x9f, 0x98, 0x1e, 0x09, 0xe3, 0xec, 0x0f, - 0x7f, 0xd2, 0xd1, 0x57, 0x7b, 0x5c, 0x0d, 0x96, 0xea, 0xca, 0x55, 0xc8, 0x09, 0x0a, 0xdb, 0xf6, - 0x96, 0x11, 0x18, 0xf2, 0x11, 0x81, 0xff, 0x66, 0xbb, 0xc9, 0x70, 0x06, 0xe1, 0x6e, 0x32, 0x9c, - 0x81, 0xfa, 0x97, 0x69, 0x00, 0xed, 0x45, 0x40, 0x3c, 0xd7, 0x70, 0x1a, 0x35, 0xa4, 0xc5, 0x6e, - 0x06, 0x31, 0xdb, 0xaf, 0x26, 0xbe, 0x9b, 0x44, 0x12, 0xd5, 0x46, 0x2d, 0xe1, 0x6e, 0xb8, 0x0d, - 0xf3, 0x63, 0x4f, 0x3e, 0x9f, 0x8b, 0x18, 0x79, 0x17, 0x6f, 0x63, 0x46, 0x43, 0x5a, 0xbc, 0x96, - 0x73, 0xe9, 0x23, 0x79, 0xac, 0x83, 0x44, 0xd7, 0xc5, 0x4e, 0xbe, 0x69, 0xe8, 0x26, 0x91, 0xb7, - 0x4a, 0x49, 0x9c, 0xfc, 0x46, 0xad, 0x41, 0xbc, 0x00, 0xe7, 0x4c, 0x83, 0xfd, 0xff, 0xa9, 0xfc, - 0xdb, 0xdb, 0x00, 0xd3, 0xa9, 0xa1, 0x35, 0xc8, 0x36, 0x36, 0x7a, 0xbd, 0x6d, 0x65, 0x4e, 0x38, - 0xf0, 0x29, 0x8b, 0x93, 0xd5, 0x3f, 0x4b, 0x43, 0xbe, 0x51, 0x93, 0x57, 0x6e, 0x03, 0x14, 0xee, - 0x95, 0xf8, 0xd3, 0x0b, 0x79, 0x31, 0xb2, 0xbd, 0x89, 0x74, 0x2c, 0x57, 0x24, 0xbc, 0x4b, 0x4c, - 0x84, 0x8d, 0x5a, 0xe3, 0x02, 0x08, 0x43, 0x89, 0x48, 0x23, 0xe8, 0xa6, 0x11, 0xfa, 0xf8, 0xb5, - 0xab, 0x8d, 0x25, 0x52, 0x97, 0x69, 0xdb, 0xc7, 0xc5, 0x50, 0x49, 0xc3, 0xf0, 0xd1, 0xbb, 0xb0, - 0xec, 0xdb, 0x03, 0xd7, 0x76, 0x07, 0x7a, 0x68, 0x3c, 0xfe, 0x0e, 0x54, 0xbf, 0x71, 0x7e, 0xb6, - 0xbe, 0xd8, 0x13, 0x2c, 0x69, 0xc3, 0x45, 0x89, 0x6c, 0x70, 0x53, 0xa2, 0x6f, 0xc0, 0x52, 0x4c, - 0x94, 0x59, 0x51, 0x98, 0x9d, 0x57, 0x8c, 0x23, 0xc9, 0xa7, 0x64, 0x82, 0x4b, 0x91, 0xe0, 0x53, - 0xc2, 0x6b, 0x33, 0xfb, 0xd4, 0x33, 0x89, 0xee, 0xf1, 0x33, 0xcd, 0x6f, 0xf7, 0x0c, 0x2e, 0x72, - 0x9a, 0x38, 0xe6, 0xea, 0x33, 0xb8, 0xd9, 0xf1, 0xcc, 0x03, 0xe2, 0x07, 0xc2, 0x14, 0xd2, 0x8a, - 0x1f, 0xc2, 0x9d, 0xc0, 0xf0, 0x0f, 0xf5, 0x03, 0xdb, 0x0f, 0xa8, 0x37, 0xd1, 0x3d, 0x12, 0x10, - 0x97, 0xf1, 0x75, 0xfe, 0xb4, 0x2c, 0xcb, 0x89, 0xb7, 0x19, 0x66, 0x4b, 0x40, 0x70, 0x88, 0xd8, - 0x66, 0x00, 0xb5, 0x05, 0x25, 0x96, 0xc2, 0xc8, 0xa2, 0x1a, 0x9b, 0x3d, 0x38, 0x74, 0xa0, 0x7f, - 0xee, 0x6b, 0xaa, 0xe0, 0xd0, 0x81, 0xf8, 0xa9, 0x7e, 0x1b, 0x94, 0xa6, 0xed, 0x8f, 0x8c, 0xc0, - 0x3c, 0x08, 0xeb, 0xa4, 0xa8, 0x09, 0xca, 0x01, 0x31, 0xbc, 0x60, 0x8f, 0x18, 0x81, 0x3e, 0x22, - 0x9e, 0x4d, 0xad, 0xeb, 0x57, 0x79, 0x39, 0x12, 0xe9, 0x72, 0x09, 0xf5, 0x7f, 0x52, 0x00, 0xd8, - 0xd8, 0x0f, 0xa3, 0xb5, 0xaf, 0xc1, 0x0d, 0xdf, 0x35, 0x46, 0xfe, 0x01, 0x0d, 0x74, 0xdb, 0x0d, - 0x88, 0x77, 0x64, 0x38, 0xb2, 0xb8, 0xa3, 0x84, 0x8c, 0x96, 0xa4, 0xa3, 0xb7, 0x01, 0x1d, 0x12, - 0x32, 0xd2, 0xa9, 0x63, 0xe9, 0x21, 0x53, 0x3c, 0x7c, 0x67, 0xb0, 0xc2, 0x38, 0x1d, 0xc7, 0xea, - 0x85, 0x74, 0x54, 0x87, 0x35, 0x36, 0x7d, 0xe2, 0x06, 0x9e, 0x4d, 0x7c, 0x7d, 0x9f, 0x7a, 0xba, - 0xef, 0xd0, 0x63, 0x7d, 0x9f, 0x3a, 0x0e, 0x3d, 0x26, 0x5e, 0x58, 0x37, 0x2b, 0x3b, 0x74, 0xa0, - 0x09, 0xd0, 0x06, 0xf5, 0x7a, 0x0e, 0x3d, 0xde, 0x08, 0x11, 0x2c, 0xa4, 0x9b, 0xce, 0x39, 0xb0, - 0xcd, 0xc3, 0x30, 0xa4, 0x8b, 0xa8, 0x7d, 0xdb, 0x3c, 0x44, 0xaf, 0xc3, 0x22, 0x71, 0x08, 0x2f, - 0x9f, 0x08, 0x54, 0x96, 0xa3, 0x4a, 0x21, 0x91, 0x81, 0xd4, 0x8f, 0x40, 0xd1, 0x5c, 0xd3, 0x9b, - 0x8c, 0x62, 0x6b, 0xfe, 0x36, 0x20, 0xe6, 0x24, 0x75, 0x87, 0x9a, 0x87, 0xfa, 0xd0, 0x70, 0x8d, - 0x01, 0x1b, 0x97, 0x78, 0x71, 0x54, 0x18, 0x67, 0x9b, 0x9a, 0x87, 0x3b, 0x92, 0xae, 0xbe, 0x0b, - 0xd0, 0x1b, 0x79, 0xc4, 0xb0, 0x3a, 0x2c, 0x9a, 0x60, 0xa6, 0xe3, 0x2d, 0xdd, 0x92, 0xef, 0xb9, - 0xd4, 0x93, 0x47, 0x5d, 0x11, 0x8c, 0x66, 0x44, 0x57, 0x7f, 0x1e, 0x6e, 0x76, 0x1d, 0xc3, 0xe4, - 0xdf, 0x36, 0x74, 0xa3, 0x27, 0x34, 0xf4, 0x04, 0x72, 0x02, 0x2a, 0x57, 0x32, 0xf1, 0xb8, 0x4d, - 0xfb, 0xdc, 0x9a, 0xc3, 0x12, 0x5f, 0x2f, 0x01, 0x4c, 0xf5, 0xa8, 0xff, 0x98, 0x82, 0x42, 0xa4, - 0x1f, 0x55, 0xc4, 0xcb, 0x50, 0xe0, 0x19, 0xb6, 0x2b, 0x33, 0xfe, 0x02, 0x8e, 0x93, 0x50, 0x0b, - 0x8a, 0xa3, 0x48, 0xfa, 0xca, 0x78, 0x2e, 0x61, 0xd4, 0x38, 0x2e, 0x8b, 0xde, 0x83, 0x42, 0xf8, - 0x80, 0x1e, 0x7a, 0xd8, 0xab, 0xdf, 0xdb, 0xa7, 0xf0, 0xb0, 0x90, 0xea, 0x91, 0x91, 0x63, 0x33, - 0x9f, 0x93, 0x89, 0x0a, 0xa9, 0x58, 0x92, 0xd4, 0x6f, 0x02, 0x7c, 0x8b, 0xda, 0x6e, 0x9f, 0x1e, - 0x12, 0x97, 0xbf, 0x0a, 0xb3, 0x94, 0x92, 0x84, 0x86, 0x96, 0x2d, 0x5e, 0x29, 0x10, 0xab, 0x14, - 0x3d, 0x8e, 0x8a, 0xa6, 0xfa, 0x17, 0x69, 0xc8, 0x61, 0x4a, 0x83, 0x46, 0x0d, 0x55, 0x20, 0x27, - 0x5d, 0x09, 0xbf, 0xa2, 0xea, 0x85, 0xf3, 0xb3, 0xf5, 0xac, 0xf0, 0x21, 0x59, 0x93, 0x3b, 0x8f, - 0x98, 0x93, 0x4f, 0x5f, 0xe6, 0xe4, 0xd1, 0x03, 0x28, 0x49, 0x90, 0x7e, 0x60, 0xf8, 0x07, 0x22, - 0xbf, 0xab, 0x2f, 0x9d, 0x9f, 0xad, 0x83, 0x40, 0x6e, 0x19, 0xfe, 0x01, 0x06, 0x81, 0x66, 0xbf, - 0x91, 0x06, 0xc5, 0x8f, 0xa9, 0xed, 0xea, 0x01, 0x9f, 0x84, 0xac, 0x45, 0x26, 0x2e, 0xf5, 0x74, - 0xaa, 0xf2, 0x03, 0x0a, 0xf8, 0x78, 0x3a, 0x79, 0x0d, 0x16, 0x3d, 0x4a, 0x03, 0xe1, 0xd9, 0x6c, - 0xea, 0xca, 0x32, 0x47, 0x25, 0xb1, 0xfa, 0x4d, 0x69, 0x80, 0x25, 0x0e, 0x97, 0xbc, 0x58, 0x0b, - 0x3d, 0x80, 0x15, 0xc7, 0xf0, 0x03, 0x9d, 0xbb, 0x44, 0x6b, 0xaa, 0x2d, 0xc7, 0x8d, 0x8f, 0x18, - 0x6f, 0x83, 0xb3, 0x42, 0x09, 0xf5, 0x1f, 0x52, 0x50, 0x64, 0x93, 0xb1, 0xf7, 0x6d, 0x93, 0xc5, - 0x81, 0x5f, 0x3c, 0x3c, 0xb9, 0x0d, 0xf3, 0xa6, 0xef, 0x49, 0xa3, 0xf2, 0xfb, 0xb9, 0xd1, 0xc3, - 0x98, 0xd1, 0xd0, 0x47, 0x90, 0x93, 0xe5, 0x16, 0x11, 0x99, 0xa8, 0xd7, 0x47, 0xac, 0xd2, 0x36, - 0x52, 0x8e, 0x6f, 0xf7, 0xe9, 0xe8, 0xc4, 0x3d, 0x81, 0xe3, 0x24, 0x74, 0x0b, 0xd2, 0xa6, 0x30, - 0x97, 0xfc, 0x42, 0xa7, 0xd1, 0xc6, 0x69, 0xd3, 0x55, 0x7f, 0x94, 0x82, 0xc5, 0xa9, 0x4f, 0x60, - 0x3b, 0xe0, 0x0e, 0x14, 0xfc, 0xf1, 0x9e, 0x3f, 0xf1, 0x03, 0x32, 0x0c, 0x5f, 0xbc, 0x23, 0x02, - 0x6a, 0x41, 0xc1, 0x70, 0x06, 0xd4, 0xb3, 0x83, 0x83, 0xa1, 0x4c, 0x64, 0x93, 0xa3, 0x89, 0xb8, - 0xce, 0x6a, 0x2d, 0x14, 0xc1, 0x53, 0xe9, 0x30, 0x34, 0x10, 0x9f, 0x45, 0xf0, 0xd0, 0xe0, 0x35, - 0x28, 0x39, 0xc6, 0x90, 0xd7, 0x9f, 0x02, 0x7b, 0x48, 0xc2, 0xc3, 0x20, 0x69, 0x7d, 0x7b, 0x48, - 0x54, 0x15, 0x0a, 0x91, 0x32, 0xb4, 0x0c, 0xc5, 0x9a, 0xd6, 0xd3, 0x1f, 0x3e, 0x7a, 0xa2, 0x6f, - 0x36, 0x76, 0x94, 0x39, 0x19, 0xbe, 0xfe, 0x69, 0x0a, 0x16, 0xa5, 0xc7, 0x92, 0x29, 0xc1, 0xeb, - 0xb0, 0xe0, 0x19, 0xfb, 0x41, 0x98, 0xb4, 0x64, 0xc4, 0xae, 0x66, 0x97, 0x00, 0x4b, 0x5a, 0x18, - 0x2b, 0x39, 0x69, 0x89, 0x7d, 0x83, 0x31, 0x7f, 0xe5, 0x37, 0x18, 0x99, 0xff, 0x97, 0x6f, 0x30, - 0xd4, 0x5f, 0x03, 0xd8, 0xb0, 0x1d, 0xd2, 0x17, 0xa5, 0xaa, 0xa4, 0x14, 0x94, 0x85, 0x79, 0xb2, - 0x14, 0x1a, 0x86, 0x79, 0xad, 0x26, 0x66, 0x34, 0xc6, 0x1a, 0xd8, 0x96, 0x3c, 0x8c, 0x9c, 0xb5, - 0xc9, 0x58, 0x03, 0xdb, 0x8a, 0x9e, 0xfd, 0x32, 0xd7, 0x3c, 0xfb, 0xa9, 0xcb, 0xb0, 0x88, 0x45, - 0x8d, 0x4d, 0x8c, 0x41, 0x3d, 0x4d, 0xc1, 0xb2, 0x8c, 0x77, 0x23, 0x97, 0xfd, 0x55, 0x28, 0x88, - 0xd0, 0x77, 0x9a, 0x04, 0xf2, 0x0f, 0x11, 0x04, 0xae, 0xd5, 0xc4, 0x79, 0xc1, 0x6e, 0x59, 0x68, - 0x1d, 0x8a, 0x12, 0x1a, 0xfb, 0xbc, 0x0b, 0x04, 0xa9, 0xcd, 0xe6, 0xf3, 0x0e, 0x64, 0xf6, 0x6d, - 0x87, 0xc8, 0x9d, 0x9f, 0xe8, 0x11, 0xa6, 0x16, 0xd9, 0x9a, 0xc3, 0x1c, 0x5d, 0xcf, 0x87, 0xc5, - 0x3d, 0xf5, 0x5f, 0x52, 0xbc, 0xc4, 0xcc, 0x52, 0xd5, 0xf8, 0xf8, 0x44, 0xd6, 0x3a, 0x33, 0x3e, - 0x81, 0x63, 0xe3, 0x13, 0x6c, 0x31, 0x3e, 0x09, 0x8d, 0x8f, 0x4f, 0x90, 0x7e, 0xf2, 0xf1, 0xa1, - 0x0f, 0x60, 0x41, 0x96, 0x2a, 0xa5, 0xab, 0x7b, 0x2d, 0x71, 0x67, 0xc4, 0x2d, 0xbd, 0x35, 0x87, - 0x43, 0x99, 0xd8, 0xf4, 0xb6, 0xe1, 0x56, 0xdd, 0x31, 0xcc, 0x43, 0xc7, 0xf6, 0x03, 0x62, 0xc5, - 0x3d, 0xd0, 0x23, 0xc8, 0x5d, 0x88, 0x73, 0xaf, 0x2a, 0xa2, 0x4a, 0xa4, 0xfa, 0xef, 0x29, 0x28, - 0x6d, 0x11, 0xc3, 0x09, 0x0e, 0xa6, 0x95, 0xaa, 0x80, 0xf8, 0x81, 0xbc, 0x1f, 0xf9, 0x6f, 0xf4, - 0x75, 0xc8, 0x47, 0x61, 0xd0, 0xb5, 0xcf, 0x81, 0x11, 0x14, 0x3d, 0x86, 0x05, 0x36, 0x76, 0x3a, - 0x0e, 0xf3, 0xab, 0xab, 0x5e, 0x9a, 0x24, 0x92, 0x5d, 0x5a, 0x1e, 0xe1, 0x71, 0x0f, 0xb7, 0x53, - 0x16, 0x87, 0x4d, 0xf4, 0xb3, 0x50, 0xe2, 0x0f, 0x25, 0x61, 0x98, 0x97, 0xbd, 0x4e, 0x67, 0x51, - 0xbc, 0x75, 0x8a, 0x10, 0xef, 0x8f, 0xd2, 0xb0, 0xb2, 0x63, 0x4c, 0xf6, 0x88, 0x74, 0x43, 0xc4, - 0xc2, 0xc4, 0xa4, 0x9e, 0x85, 0xba, 0x71, 0xf7, 0x75, 0xc5, 0xd3, 0x69, 0x92, 0x70, 0xb2, 0x17, - 0x0b, 0x73, 0xbe, 0x74, 0x2c, 0xe7, 0x5b, 0x81, 0xac, 0x4b, 0x5d, 0x93, 0x48, 0xdf, 0x26, 0x1a, - 0xea, 0xef, 0xa4, 0xe2, 0xbe, 0xab, 0x1c, 0x3d, 0x6b, 0xf2, 0xa2, 0x57, 0x9b, 0x06, 0x51, 0x77, - 0xe8, 0x23, 0x28, 0xf7, 0xb4, 0x06, 0xd6, 0xfa, 0xf5, 0xce, 0xb7, 0xf5, 0x5e, 0x6d, 0xbb, 0x57, - 0x7b, 0xf4, 0x40, 0xef, 0x76, 0xb6, 0xbf, 0xf3, 0xf0, 0xf1, 0x83, 0xaf, 0x2b, 0xa9, 0x72, 0xe5, - 0xe4, 0xb4, 0x72, 0xa7, 0x5d, 0x6b, 0x6c, 0x8b, 0x13, 0xb7, 0x47, 0x5f, 0xf4, 0x0c, 0xc7, 0x37, - 0x1e, 0x3d, 0xe8, 0x52, 0x67, 0xc2, 0x30, 0xe8, 0x6b, 0x80, 0x36, 0x34, 0xdc, 0xd6, 0xfa, 0x7a, - 0xe8, 0x20, 0x1b, 0xf5, 0x86, 0x92, 0x16, 0x99, 0xd4, 0x06, 0xf1, 0x5c, 0x12, 0xd4, 0xb4, 0xde, - 0xc3, 0x47, 0x4f, 0x1a, 0xf5, 0x06, 0x3b, 0xe3, 0xa5, 0xf8, 0x6d, 0x19, 0x0f, 0x02, 0x52, 0x97, - 0x06, 0x01, 0xd3, 0x58, 0x22, 0x7d, 0x49, 0x2c, 0xb1, 0x01, 0x2b, 0xa6, 0x47, 0x7d, 0x5f, 0x67, - 0xe9, 0x09, 0xb1, 0x66, 0x12, 0xa0, 0x2f, 0x9d, 0x9f, 0xad, 0xdf, 0x68, 0x30, 0x7e, 0x8f, 0xb3, - 0xa5, 0xfa, 0x1b, 0x66, 0x8c, 0xc4, 0x7b, 0x52, 0x7f, 0x30, 0xcf, 0x22, 0x3d, 0xfb, 0xc8, 0x76, - 0xc8, 0x80, 0xf8, 0xe8, 0x19, 0x2c, 0x9b, 0x1e, 0xb1, 0x58, 0xde, 0x61, 0x38, 0xf1, 0x6f, 0x92, - 0x7f, 0x26, 0x31, 0xe8, 0x8a, 0x04, 0xab, 0x8d, 0x48, 0xaa, 0x37, 0x22, 0x26, 0x5e, 0x32, 0x2f, - 0xb4, 0xd1, 0xc7, 0xb0, 0xec, 0x13, 0xc7, 0x76, 0xc7, 0x2f, 0x74, 0x93, 0xba, 0x01, 0x79, 0x11, - 0x3e, 0xe7, 0x5d, 0xa7, 0xb7, 0xa7, 0x6d, 0x33, 0xa9, 0x86, 0x10, 0xaa, 0xa3, 0xf3, 0xb3, 0xf5, - 0xa5, 0x8b, 0x34, 0xbc, 0x24, 0x35, 0xcb, 0x76, 0xf9, 0x00, 0x96, 0x2e, 0x8e, 0x06, 0xad, 0x48, - 0x47, 0xc3, 0xfd, 0x55, 0xe4, 0x48, 0xee, 0x40, 0xde, 0x23, 0x03, 0xdb, 0x0f, 0x3c, 0x61, 0x66, - 0xc6, 0x89, 0x28, 0x68, 0x15, 0x72, 0xb1, 0x2f, 0x4e, 0x18, 0x4f, 0xb6, 0x99, 0x07, 0x11, 0x1f, - 0x93, 0x95, 0x7f, 0x05, 0x66, 0xc6, 0xc2, 0x0e, 0x9d, 0x65, 0xfb, 0xc6, 0x9e, 0xec, 0x2c, 0x8f, - 0xc3, 0x26, 0xdb, 0xcb, 0x63, 0x3f, 0x0a, 0x20, 0xf9, 0x6f, 0x46, 0xe3, 0x91, 0x8e, 0xfc, 0xb4, - 0x8e, 0xc7, 0x32, 0xe1, 0x17, 0xbc, 0x99, 0xd8, 0x17, 0xbc, 0x2b, 0x90, 0x75, 0xc8, 0x11, 0x71, - 0x44, 0x8c, 0x81, 0x45, 0xe3, 0xde, 0x03, 0x28, 0x85, 0x9f, 0x8a, 0xf2, 0x6f, 0x46, 0xf2, 0x90, - 0xe9, 0xd7, 0x7a, 0x4f, 0x95, 0x39, 0x04, 0x90, 0x13, 0x7b, 0x5c, 0x3c, 0x42, 0x36, 0x3a, 0xed, - 0x8d, 0xd6, 0xa6, 0x92, 0xbe, 0xf7, 0xbb, 0x19, 0x28, 0x44, 0xcf, 0x60, 0xec, 0x4e, 0x6b, 0x6b, - 0xcf, 0xc3, 0x43, 0x12, 0xd1, 0xdb, 0xe4, 0x18, 0xbd, 0x36, 0x2d, 0xa0, 0x7d, 0x24, 0xde, 0xfd, - 0x23, 0x76, 0x58, 0x3c, 0x7b, 0x03, 0xf2, 0xb5, 0x5e, 0xaf, 0xb5, 0xd9, 0xd6, 0x9a, 0xca, 0xa7, - 0xa9, 0xf2, 0x97, 0x4e, 0x4e, 0x2b, 0x37, 0x22, 0x50, 0xcd, 0x17, 0xdb, 0x92, 0xa3, 0x1a, 0x0d, - 0xad, 0xdb, 0xd7, 0x9a, 0xca, 0x27, 0xe9, 0x59, 0x14, 0x2f, 0x08, 0xf1, 0xef, 0x99, 0x0a, 0x5d, - 0xac, 0x75, 0x6b, 0x98, 0x75, 0xf8, 0x69, 0x5a, 0xd4, 0xf5, 0xa6, 0x3d, 0x7a, 0x64, 0x64, 0x78, - 0xac, 0xcf, 0xb5, 0xf0, 0xb3, 0xc2, 0x4f, 0xe6, 0xc5, 0x87, 0x2d, 0xd3, 0x37, 0x3d, 0x62, 0x58, - 0x13, 0xd6, 0x1b, 0x7f, 0x4c, 0xe5, 0x6a, 0xe6, 0x67, 0x7a, 0xeb, 0x31, 0x1f, 0xc6, 0xb4, 0xa8, - 0xb0, 0x80, 0x77, 0xdb, 0x6d, 0x06, 0xfa, 0x24, 0x33, 0x33, 0x3b, 0x3c, 0x76, 0x59, 0xb2, 0x8f, - 0xee, 0x42, 0x3e, 0x7c, 0x6b, 0x55, 0x3e, 0xcd, 0xcc, 0x0c, 0xa8, 0x11, 0x3e, 0x14, 0xf3, 0x0e, - 0xb7, 0x76, 0xfb, 0xfc, 0xab, 0xc7, 0x4f, 0xb2, 0xb3, 0x1d, 0x1e, 0x8c, 0x03, 0x8b, 0x1e, 0xbb, - 0xec, 0x34, 0xcb, 0x12, 0xe2, 0xa7, 0x59, 0xe1, 0x25, 0x22, 0x8c, 0xac, 0x1f, 0xbe, 0x01, 0x79, - 0xac, 0x7d, 0x4b, 0x7c, 0x20, 0xf9, 0x49, 0x6e, 0x46, 0x0f, 0x26, 0x1f, 0x13, 0x93, 0xf5, 0x56, - 0x81, 0x1c, 0xd6, 0x76, 0x3a, 0xcf, 0x34, 0xe5, 0xf7, 0x73, 0x33, 0x7a, 0x30, 0x19, 0x52, 0xfe, - 0xc1, 0x57, 0xbe, 0x83, 0xbb, 0x5b, 0x35, 0xbe, 0x28, 0xb3, 0x7a, 0x3a, 0xde, 0xe8, 0xc0, 0x70, - 0x89, 0x35, 0xfd, 0xb8, 0x27, 0x62, 0xdd, 0xfb, 0x05, 0xc8, 0x87, 0x31, 0x35, 0x5a, 0x83, 0xdc, - 0xf3, 0x0e, 0x7e, 0xaa, 0x61, 0x65, 0x4e, 0x58, 0x39, 0xe4, 0x3c, 0x17, 0xd9, 0x50, 0x05, 0x16, - 0x76, 0x6a, 0xed, 0xda, 0xa6, 0x86, 0xc3, 0xfa, 0x7f, 0x08, 0x90, 0x81, 0x61, 0x59, 0x91, 0x1d, - 0x44, 0x3a, 0xeb, 0xab, 0x3f, 0xfc, 0x6c, 0x6d, 0xee, 0xc7, 0x9f, 0xad, 0xcd, 0x7d, 0x72, 0xbe, - 0x96, 0xfa, 0xe1, 0xf9, 0x5a, 0xea, 0x6f, 0xcf, 0xd7, 0x52, 0xff, 0x76, 0xbe, 0x96, 0xda, 0xcb, - 0xf1, 0xeb, 0xe6, 0xf1, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x62, 0x4d, 0x1b, 0x7b, 0x33, - 0x00, 0x00, + 0x56, 0xb6, 0x64, 0x49, 0x96, 0x9e, 0x64, 0xbb, 0x9c, 0xed, 0xed, 0x71, 0x6b, 0x7a, 0x6c, 0x4d, + 0xcd, 0xcc, 0xce, 0x6c, 0xef, 0xa0, 0xfe, 0x9b, 0x9d, 0xe8, 0x99, 0x61, 0x76, 0x46, 0x7f, 0x6e, + 0x6b, 0xdb, 0x96, 0x14, 0x29, 0xb9, 0x7b, 0x97, 0x08, 0x28, 0xca, 0x55, 0x69, 0xb9, 0xc6, 0xa5, + 0xca, 0xa2, 0xaa, 0x64, 0xb7, 0x58, 0x08, 0xe6, 0x04, 0x84, 0x6f, 0x5c, 0x96, 0xdd, 0x20, 0x1c, + 0x41, 0x04, 0xdc, 0x38, 0x70, 0xe0, 0xc0, 0xc2, 0x69, 0x88, 0x20, 0x88, 0x0d, 0x2e, 0xb0, 0x10, + 0x01, 0x1b, 0x40, 0x18, 0xc6, 0x07, 0x6e, 0x04, 0x5c, 0x08, 0x2e, 0x1c, 0x88, 0xfc, 0xa9, 0x52, + 0x59, 0x5d, 0xb6, 0x67, 0x76, 0xb9, 0xd8, 0xca, 0xf7, 0xbe, 0xf7, 0x32, 0xf3, 0x65, 0xe6, 0xcb, + 0xf7, 0x5e, 0x16, 0xdc, 0x19, 0x5a, 0xc1, 0xc1, 0x78, 0xaf, 0x6a, 0xd0, 0xd1, 0x5d, 0x93, 0x1a, + 0x87, 0xc4, 0xbb, 0xeb, 0x1f, 0xeb, 0xde, 0xe8, 0xd0, 0x0a, 0xee, 0xea, 0xae, 0x75, 0x37, 0x98, + 0xb8, 0xc4, 0xaf, 0xba, 0x1e, 0x0d, 0x28, 0x42, 0x02, 0x50, 0x0d, 0x01, 0xd5, 0xa3, 0xfb, 0xe5, + 0x8d, 0x21, 0xa5, 0x43, 0x9b, 0xdc, 0xe5, 0x88, 0xbd, 0xf1, 0xfe, 0xdd, 0xc0, 0x1a, 0x11, 0x3f, + 0xd0, 0x47, 0xae, 0x10, 0x2a, 0xaf, 0xcf, 0x02, 0xcc, 0xb1, 0xa7, 0x07, 0x16, 0x75, 0x2e, 0xe3, + 0x1f, 0x7b, 0xba, 0xeb, 0x12, 0x4f, 0x76, 0x5a, 0x5e, 0x1d, 0xd2, 0x21, 0xe5, 0x3f, 0xef, 0xb2, + 0x5f, 0x82, 0xaa, 0x6e, 0xc0, 0xc2, 0x53, 0xe2, 0xf9, 0x16, 0x75, 0xd0, 0x2a, 0x64, 0x2d, 0xc7, + 0x24, 0xcf, 0xd7, 0x52, 0x95, 0xd4, 0x5b, 0x19, 0x2c, 0x1a, 0xea, 0x3d, 0x80, 0x36, 0xfb, 0xd1, + 0x72, 0x02, 0x6f, 0x82, 0x14, 0x98, 0x3f, 0x24, 0x13, 0x8e, 0x28, 0x60, 0xf6, 0x93, 0x51, 0x8e, + 0x74, 0x7b, 0x2d, 0x2d, 0x28, 0x47, 0xba, 0xad, 0x7e, 0x9e, 0x82, 0x62, 0xcd, 0x71, 0x68, 0xc0, + 0x47, 0xe7, 0x23, 0x04, 0x19, 0x47, 0x1f, 0x11, 0x29, 0xc4, 0x7f, 0xa3, 0x06, 0xe4, 0x6c, 0x7d, + 0x8f, 0xd8, 0xfe, 0x5a, 0xba, 0x32, 0xff, 0x56, 0xf1, 0xc1, 0xd7, 0xab, 0x2f, 0x9a, 0xa4, 0x1a, + 0x53, 0x52, 0xdd, 0xe6, 0x68, 0x3e, 0x08, 0x2c, 0x45, 0xd1, 0x37, 0x61, 0xc1, 0x72, 0x4c, 0xcb, + 0x20, 0xfe, 0x5a, 0x86, 0x6b, 0x59, 0x4f, 0xd2, 0x32, 0x1d, 0x7d, 0x3d, 0xf3, 0xa3, 0xb3, 0x8d, + 0x39, 0x1c, 0x0a, 0x95, 0xdf, 0x83, 0x62, 0x4c, 0x6d, 0xc2, 0xdc, 0x56, 0x21, 0x7b, 0xa4, 0xdb, + 0x63, 0x22, 0x67, 0x27, 0x1a, 0xef, 0xa7, 0x1f, 0xa5, 0xd4, 0x8f, 0x61, 0xb5, 0xa3, 0x8f, 0x88, + 0xf9, 0x98, 0x38, 0xc4, 0xb3, 0x0c, 0x4c, 0x7c, 0x3a, 0xf6, 0x0c, 0xc2, 0xe6, 0x7a, 0x68, 0x39, + 0x66, 0x38, 0x57, 0xf6, 0x3b, 0x59, 0x8b, 0xda, 0x80, 0x97, 0x9a, 0x96, 0x6f, 0x78, 0x24, 0x20, + 0x5f, 0x5a, 0xc9, 0x7c, 0xa8, 0xe4, 0x2c, 0x05, 0xcb, 0xb3, 0xd2, 0xbf, 0x00, 0x37, 0x98, 0x89, + 0x4d, 0xcd, 0x93, 0x14, 0xcd, 0x77, 0x89, 0xc1, 0x95, 0x15, 0x1f, 0xbc, 0x95, 0x64, 0xa1, 0xa4, + 0x99, 0x6c, 0xcd, 0xe1, 0x15, 0xae, 0x26, 0x24, 0xf4, 0x5d, 0x62, 0x20, 0x03, 0x6e, 0x9a, 0x72, + 0xd0, 0x33, 0xea, 0xd3, 0x5c, 0x7d, 0xe2, 0x32, 0x5e, 0x32, 0xcd, 0xad, 0x39, 0xbc, 0x1a, 0x2a, + 0x8b, 0x77, 0x52, 0x07, 0xc8, 0x87, 0xba, 0xd5, 0xef, 0xa7, 0xa0, 0x10, 0x32, 0x7d, 0xf4, 0x35, + 0x28, 0x38, 0xba, 0x43, 0x35, 0xc3, 0x1d, 0xfb, 0x7c, 0x42, 0xf3, 0xf5, 0xd2, 0xf9, 0xd9, 0x46, + 0xbe, 0xa3, 0x3b, 0xb4, 0xd1, 0xdb, 0xf5, 0x71, 0x9e, 0xb1, 0x1b, 0xee, 0xd8, 0x47, 0xaf, 0x42, + 0x69, 0x44, 0x46, 0xd4, 0x9b, 0x68, 0x7b, 0x93, 0x80, 0xf8, 0xd2, 0x6c, 0x45, 0x41, 0xab, 0x33, + 0x12, 0xfa, 0x10, 0x16, 0x86, 0x62, 0x48, 0x6b, 0xf3, 0x7c, 0xfb, 0xbc, 0x96, 0x34, 0xfa, 0x99, + 0x51, 0xe3, 0x50, 0x46, 0xfd, 0x5e, 0x1a, 0x56, 0x23, 0x2a, 0xf9, 0x95, 0xb1, 0xe5, 0x91, 0x11, + 0x71, 0x02, 0x1f, 0x7d, 0x03, 0x72, 0xb6, 0x35, 0xb2, 0x02, 0x5f, 0xda, 0xfc, 0x95, 0x24, 0xb5, + 0xd1, 0xa4, 0xb0, 0x04, 0xa3, 0x1a, 0x94, 0x3c, 0xe2, 0x13, 0xef, 0x48, 0xec, 0x78, 0x69, 0xd1, + 0x6b, 0x84, 0x2f, 0x88, 0xa0, 0xf7, 0x01, 0xfc, 0x63, 0xdd, 0x95, 0x53, 0x9e, 0xe7, 0x0a, 0x5e, + 0xae, 0x0a, 0xbf, 0x50, 0x0d, 0xfd, 0x42, 0xb5, 0xed, 0x04, 0xef, 0xbe, 0xf3, 0x94, 0xed, 0x1f, + 0x5c, 0x60, 0x70, 0x61, 0x8d, 0x2d, 0x58, 0x91, 0x06, 0x63, 0x34, 0xd7, 0x72, 0x88, 0xcf, 0x8e, + 0xd5, 0xb5, 0x2a, 0x14, 0x21, 0xd5, 0x8f, 0x84, 0xd4, 0x4d, 0xc8, 0xf7, 0x6c, 0x3d, 0xd8, 0xa7, + 0xde, 0x08, 0xa9, 0x50, 0xd2, 0x3d, 0xe3, 0xc0, 0x0a, 0x88, 0x11, 0x8c, 0xbd, 0xd0, 0x07, 0x5c, + 0xa0, 0xa1, 0x9b, 0x90, 0xa6, 0x62, 0xba, 0x85, 0x7a, 0xee, 0xfc, 0x6c, 0x23, 0xdd, 0xed, 0xe3, + 0x34, 0xf5, 0xd5, 0x0f, 0x60, 0xa5, 0x67, 0x8f, 0x87, 0x96, 0xd3, 0x24, 0xbe, 0xe1, 0x59, 0x2e, + 0x9b, 0x23, 0x3b, 0x1b, 0xcc, 0x93, 0x86, 0x67, 0x83, 0xfd, 0x8e, 0x1c, 0x4c, 0x7a, 0xea, 0x60, + 0xd4, 0xdf, 0x4a, 0xc3, 0x4a, 0xcb, 0x19, 0x5a, 0x0e, 0x89, 0x4b, 0xbf, 0x01, 0x4b, 0x84, 0x13, + 0xb5, 0x23, 0xe1, 0xf4, 0xa4, 0x9e, 0x45, 0x41, 0x0d, 0x3d, 0x61, 0x7b, 0xc6, 0x3b, 0xdd, 0x4f, + 0x5a, 0x84, 0x17, 0xb4, 0x27, 0xfa, 0xa8, 0x16, 0x2c, 0xb8, 0x7c, 0x12, 0xbe, 0xdc, 0x64, 0x6f, + 0x24, 0xe9, 0x7a, 0x61, 0x9e, 0xa1, 0xab, 0x92, 0xb2, 0x3f, 0x8b, 0xab, 0xfa, 0xeb, 0x34, 0x2c, + 0x77, 0xa8, 0x79, 0xc1, 0x0e, 0x65, 0xc8, 0x1f, 0x50, 0x3f, 0x88, 0xb9, 0xe5, 0xa8, 0x8d, 0x1e, + 0x41, 0xde, 0x95, 0xcb, 0x27, 0xf7, 0xe0, 0xed, 0xe4, 0x21, 0x0b, 0x0c, 0x8e, 0xd0, 0xe8, 0x03, + 0x28, 0x84, 0x07, 0x37, 0xdc, 0x7d, 0xd7, 0x6c, 0xdf, 0x29, 0x1e, 0x7d, 0x08, 0x39, 0xb1, 0x08, + 0x72, 0xd3, 0xbd, 0xf1, 0x85, 0x6c, 0x8e, 0xa5, 0x10, 0x7a, 0x0c, 0xf9, 0xc0, 0xf6, 0x35, 0xcb, + 0xd9, 0xa7, 0x6b, 0x59, 0xae, 0x60, 0x23, 0xd1, 0xd5, 0x51, 0x93, 0x0c, 0xb6, 0xfb, 0x6d, 0x67, + 0x9f, 0xd6, 0x8b, 0xe7, 0x67, 0x1b, 0x0b, 0xb2, 0x81, 0x17, 0x02, 0xdb, 0x67, 0x3f, 0xd0, 0x6d, + 0xc8, 0xec, 0x5b, 0xae, 0xbf, 0x96, 0xab, 0xa4, 0xde, 0xca, 0xd7, 0xf3, 0xe7, 0x67, 0x1b, 0x99, + 0xcd, 0x76, 0xaf, 0x8f, 0x39, 0x55, 0xfd, 0x9d, 0x14, 0x14, 0x63, 0x3a, 0xd0, 0x2b, 0x00, 0x81, + 0x37, 0xf6, 0x03, 0xcd, 0xa3, 0x34, 0xe0, 0xa6, 0x2c, 0xe1, 0x02, 0xa7, 0x60, 0x4a, 0x03, 0x54, + 0x85, 0x1b, 0x06, 0xf1, 0x02, 0xcd, 0xf2, 0xfd, 0x31, 0xf1, 0x34, 0x7f, 0xbc, 0xf7, 0x09, 0x31, + 0x02, 0x6e, 0xd6, 0x12, 0x5e, 0x61, 0xac, 0x36, 0xe7, 0xf4, 0x05, 0x03, 0x3d, 0x84, 0x9b, 0x71, + 0xbc, 0x3b, 0xde, 0xb3, 0x2d, 0x43, 0x63, 0x4b, 0x3d, 0xcf, 0x45, 0x6e, 0x4c, 0x45, 0x7a, 0x9c, + 0xf7, 0x84, 0x4c, 0xd4, 0x9f, 0xa4, 0x40, 0xc1, 0xfa, 0x7e, 0xb0, 0x43, 0x46, 0x7b, 0xc4, 0xeb, + 0x07, 0x7a, 0x30, 0xf6, 0xd1, 0x4d, 0xc8, 0xd9, 0x44, 0x37, 0x89, 0xc7, 0x07, 0x95, 0xc7, 0xb2, + 0x85, 0x76, 0x99, 0x97, 0xd1, 0x8d, 0x03, 0x7d, 0xcf, 0xb2, 0xad, 0x60, 0xc2, 0x87, 0xb2, 0x94, + 0xbc, 0xc1, 0x67, 0x75, 0x56, 0x71, 0x4c, 0x10, 0x5f, 0x50, 0x83, 0xd6, 0x60, 0x61, 0x44, 0x7c, + 0x5f, 0x1f, 0x12, 0x3e, 0xd2, 0x02, 0x0e, 0x9b, 0xea, 0x07, 0x50, 0x8a, 0xcb, 0xa1, 0x22, 0x2c, + 0xec, 0x76, 0x9e, 0x74, 0xba, 0xcf, 0x3a, 0xca, 0x1c, 0x5a, 0x86, 0xe2, 0x6e, 0x07, 0xb7, 0x6a, + 0x8d, 0xad, 0x5a, 0x7d, 0xbb, 0xa5, 0xa4, 0xd0, 0x22, 0x14, 0xa6, 0xcd, 0xb4, 0xfa, 0x27, 0x29, + 0x00, 0x66, 0x6e, 0x39, 0xa9, 0xf7, 0x21, 0xeb, 0x07, 0x7a, 0x20, 0xf6, 0xec, 0xd2, 0x83, 0xd7, + 0x2f, 0x5b, 0x61, 0x39, 0x5e, 0xf6, 0x8f, 0x60, 0x21, 0x12, 0x1f, 0x61, 0xfa, 0xc2, 0x08, 0x99, + 0xfb, 0xd0, 0x4d, 0xd3, 0x93, 0x03, 0xe7, 0xbf, 0xd5, 0x0f, 0x20, 0xcb, 0xa5, 0x2f, 0x0e, 0x37, + 0x0f, 0x99, 0x26, 0xfb, 0x95, 0x42, 0x05, 0xc8, 0xe2, 0x56, 0xad, 0xf9, 0x1d, 0x25, 0x8d, 0x14, + 0x28, 0x35, 0xdb, 0xfd, 0x46, 0xb7, 0xd3, 0x69, 0x35, 0x06, 0xad, 0xa6, 0x32, 0xaf, 0xbe, 0x01, + 0xd9, 0xf6, 0x88, 0x69, 0xbe, 0xcd, 0x0e, 0xc4, 0x3e, 0xf1, 0x88, 0x63, 0x84, 0xe7, 0x6c, 0x4a, + 0x50, 0x3f, 0x2f, 0x41, 0x76, 0x87, 0x8e, 0x9d, 0x00, 0x3d, 0x88, 0x39, 0xb5, 0xa5, 0xe4, 0x28, + 0x86, 0x03, 0xab, 0x83, 0x89, 0x4b, 0xa4, 0xd3, 0xbb, 0x09, 0x39, 0x71, 0x74, 0xe4, 0x74, 0x64, + 0x8b, 0xd1, 0x03, 0xdd, 0x1b, 0x92, 0x40, 0xce, 0x47, 0xb6, 0xd0, 0x5b, 0xec, 0x56, 0xd5, 0x4d, + 0xea, 0xd8, 0x13, 0x7e, 0xc2, 0xf2, 0xe2, 0xea, 0xc4, 0x44, 0x37, 0xbb, 0x8e, 0x3d, 0xc1, 0x11, + 0x17, 0x6d, 0x41, 0x69, 0xcf, 0x72, 0x4c, 0x8d, 0xba, 0xe2, 0x22, 0xca, 0x5e, 0x7e, 0x1e, 0xc5, + 0xa8, 0xea, 0x96, 0x63, 0x76, 0x05, 0x18, 0x17, 0xf7, 0xa6, 0x0d, 0xd4, 0x81, 0xa5, 0x23, 0x6a, + 0x8f, 0x47, 0x24, 0xd2, 0x95, 0xe3, 0xba, 0xde, 0xbc, 0x5c, 0xd7, 0x53, 0x8e, 0x0f, 0xb5, 0x2d, + 0x1e, 0xc5, 0x9b, 0xe8, 0x09, 0x2c, 0x06, 0x23, 0x77, 0xdf, 0x8f, 0xd4, 0x2d, 0x70, 0x75, 0x5f, + 0xbd, 0xc2, 0x60, 0x0c, 0x1e, 0x6a, 0x2b, 0x05, 0xb1, 0x16, 0x7a, 0x0c, 0x45, 0x83, 0x3a, 0xbe, + 0xe5, 0x07, 0xc4, 0x31, 0x26, 0x6b, 0x79, 0x6e, 0xfb, 0x2b, 0x66, 0xd9, 0x98, 0x82, 0x71, 0x5c, + 0xb2, 0xfc, 0xc3, 0x79, 0x28, 0xc6, 0x4c, 0x80, 0xfa, 0x50, 0x74, 0x3d, 0xea, 0xea, 0x43, 0x7e, + 0x2b, 0xcb, 0x45, 0xbd, 0xff, 0x85, 0xcc, 0x57, 0xed, 0x4d, 0x05, 0x71, 0x5c, 0x0b, 0x7a, 0x07, + 0x4a, 0x0e, 0x75, 0x3c, 0x62, 0x8c, 0x3d, 0xdf, 0x3a, 0x12, 0x8b, 0x9e, 0xaf, 0x2b, 0xe7, 0x67, + 0x1b, 0xa5, 0x0e, 0x75, 0x70, 0x48, 0xc7, 0x17, 0x50, 0xea, 0x69, 0x1a, 0x8a, 0x31, 0x95, 0xe8, + 0x0e, 0xe4, 0x71, 0x0f, 0xb7, 0x9f, 0xd6, 0x06, 0x2d, 0x65, 0xae, 0x7c, 0xfb, 0xe4, 0xb4, 0xb2, + 0xc6, 0xc7, 0x10, 0xef, 0xb6, 0xe7, 0x59, 0x47, 0x6c, 0xe7, 0xbf, 0x05, 0x0b, 0x21, 0x34, 0x55, + 0x7e, 0xf9, 0xe4, 0xb4, 0xf2, 0xd2, 0x2c, 0x34, 0x86, 0xc4, 0xfd, 0xad, 0x1a, 0x6e, 0x35, 0x95, + 0x74, 0x32, 0x12, 0xf7, 0x0f, 0x74, 0x8f, 0x98, 0xe8, 0xab, 0x90, 0x93, 0xc0, 0xf9, 0x72, 0xf9, + 0xe4, 0xb4, 0x72, 0x73, 0x16, 0x38, 0xc5, 0xe1, 0xfe, 0x76, 0xed, 0x69, 0x4b, 0xc9, 0x24, 0xe3, + 0x70, 0xdf, 0xd6, 0x8f, 0x08, 0x7a, 0x1d, 0xb2, 0x02, 0x96, 0x2d, 0xdf, 0x3a, 0x39, 0xad, 0x7c, + 0xe5, 0x05, 0x75, 0x0c, 0x55, 0x5e, 0xfb, 0xed, 0x3f, 0x58, 0x9f, 0xfb, 0xf3, 0x3f, 0x5c, 0x57, + 0x66, 0xd9, 0xe5, 0xff, 0x4d, 0xc1, 0xe2, 0x85, 0x1d, 0x87, 0x54, 0xc8, 0x39, 0xd4, 0xa0, 0xae, + 0xb8, 0x5c, 0xf3, 0x75, 0x38, 0x3f, 0xdb, 0xc8, 0x75, 0x68, 0x83, 0xba, 0x13, 0x2c, 0x39, 0xe8, + 0xc9, 0x4c, 0x78, 0xf0, 0xf0, 0x0b, 0x6e, 0xe7, 0xc4, 0x00, 0xe1, 0x23, 0x58, 0x34, 0x3d, 0xeb, + 0x88, 0x78, 0x9a, 0x41, 0x9d, 0x7d, 0x6b, 0x28, 0x2f, 0xce, 0x72, 0x62, 0x24, 0xcd, 0x81, 0xb8, + 0x24, 0x04, 0x1a, 0x1c, 0xff, 0x33, 0x84, 0x06, 0x65, 0x17, 0x4a, 0xf1, 0x03, 0xc2, 0x6e, 0x33, + 0xdf, 0xfa, 0x55, 0x22, 0xe3, 0x47, 0x1e, 0x60, 0xe3, 0x02, 0xa3, 0x88, 0x10, 0xf1, 0x4d, 0xc8, + 0x8c, 0xa8, 0x29, 0xf4, 0x2c, 0xd6, 0x6f, 0xb0, 0x08, 0xe5, 0x9f, 0xce, 0x36, 0x8a, 0xd4, 0xaf, + 0x6e, 0x5a, 0x36, 0xd9, 0xa1, 0x26, 0xc1, 0x1c, 0xc0, 0x7c, 0x6d, 0x78, 0x42, 0xe5, 0x6d, 0x20, + 0x9b, 0xea, 0x0f, 0x52, 0x90, 0x61, 0x4e, 0x0c, 0xbd, 0x0c, 0x99, 0x7a, 0xbb, 0xd3, 0x54, 0xe6, + 0xca, 0x2b, 0x27, 0xa7, 0x95, 0x45, 0x6e, 0x2d, 0xc6, 0x60, 0x87, 0x01, 0x6d, 0x40, 0xee, 0x69, + 0x77, 0x7b, 0x77, 0x87, 0xed, 0xbc, 0x1b, 0x27, 0xa7, 0x95, 0xe5, 0x88, 0x2d, 0xec, 0x89, 0x5e, + 0x81, 0xec, 0x60, 0xa7, 0xb7, 0xd9, 0x57, 0xd2, 0x65, 0x74, 0x72, 0x5a, 0x59, 0x8a, 0xf8, 0x7c, + 0x3a, 0xe8, 0x55, 0xc8, 0x76, 0x7a, 0xed, 0x5e, 0x4b, 0x99, 0x2f, 0xdf, 0x3c, 0x39, 0xad, 0xa0, + 0x88, 0xcd, 0x33, 0x9d, 0x9e, 0xe5, 0x92, 0xf2, 0x8a, 0xdc, 0x13, 0x85, 0x88, 0xa7, 0xfe, 0x38, + 0x05, 0xc5, 0xd8, 0x21, 0x67, 0xdb, 0xba, 0xd9, 0xda, 0xac, 0xed, 0x6e, 0x0f, 0x94, 0xb9, 0xd8, + 0xb6, 0x8e, 0x41, 0x9a, 0x64, 0x5f, 0x1f, 0xdb, 0xcc, 0xb7, 0x42, 0xa3, 0xdb, 0xe9, 0xb7, 0xfb, + 0x83, 0x56, 0x67, 0xa0, 0xa4, 0xca, 0x6b, 0x27, 0xa7, 0x95, 0xd5, 0x59, 0xf0, 0xe6, 0xd8, 0xb6, + 0xd9, 0xc6, 0x6e, 0xd4, 0x1a, 0x5b, 0xfc, 0xa4, 0x4c, 0x37, 0x76, 0x0c, 0xd5, 0xd0, 0x8d, 0x03, + 0x62, 0xa2, 0xb7, 0xa1, 0xd0, 0x6c, 0x6d, 0xb7, 0x1e, 0xd7, 0xf8, 0x8d, 0x52, 0x7e, 0xe5, 0xe4, + 0xb4, 0x72, 0xeb, 0xc5, 0xde, 0x6d, 0x32, 0xd4, 0x03, 0x62, 0xce, 0x6c, 0xf0, 0x18, 0x44, 0xfd, + 0xef, 0x34, 0x2c, 0x62, 0xe2, 0x07, 0xba, 0x17, 0xf4, 0xa8, 0x6d, 0x19, 0x13, 0xd4, 0x83, 0x82, + 0x41, 0x1d, 0xd3, 0x8a, 0xf9, 0xa6, 0x07, 0x97, 0x04, 0x69, 0x53, 0xa9, 0xb0, 0xd5, 0x08, 0x25, + 0xf1, 0x54, 0x09, 0xba, 0x0b, 0x59, 0x93, 0xd8, 0xfa, 0x44, 0x46, 0x8b, 0xb7, 0x5e, 0xc8, 0x16, + 0x9a, 0xb2, 0x50, 0x81, 0x05, 0x8e, 0xe7, 0x66, 0xfa, 0x73, 0x4d, 0x0f, 0x02, 0x32, 0x72, 0x03, + 0xb1, 0x47, 0x32, 0xb8, 0x38, 0xd2, 0x9f, 0xd7, 0x24, 0x09, 0xdd, 0x87, 0xdc, 0xb1, 0xe5, 0x98, + 0xf4, 0x58, 0x46, 0x83, 0x57, 0x28, 0x95, 0x40, 0xf5, 0x84, 0x85, 0x41, 0x33, 0xc3, 0x64, 0xdb, + 0xac, 0xd3, 0xed, 0xb4, 0xc2, 0x6d, 0x26, 0xf9, 0x5d, 0xa7, 0x43, 0x1d, 0xe6, 0x3d, 0xa0, 0xdb, + 0xd1, 0x36, 0x6b, 0xed, 0xed, 0x5d, 0xcc, 0xb6, 0xda, 0xea, 0xc9, 0x69, 0x45, 0x89, 0x20, 0x9b, + 0xba, 0x65, 0xb3, 0xf4, 0xe4, 0x16, 0xcc, 0xd7, 0x3a, 0xdf, 0x51, 0xd2, 0x65, 0xe5, 0xe4, 0xb4, + 0x52, 0x8a, 0xd8, 0x35, 0x67, 0x32, 0xb5, 0xfb, 0x6c, 0xbf, 0xea, 0xdf, 0xcc, 0x43, 0x69, 0xd7, + 0x35, 0xf5, 0x80, 0x88, 0x53, 0x8a, 0x2a, 0x50, 0x74, 0x75, 0x4f, 0xb7, 0x6d, 0x62, 0x5b, 0xfe, + 0x48, 0x96, 0x58, 0xe2, 0x24, 0xf4, 0xde, 0x17, 0x35, 0x63, 0x3d, 0xcf, 0x4e, 0xde, 0xf7, 0xff, + 0x75, 0x23, 0x15, 0x1a, 0x74, 0x17, 0x96, 0xf6, 0xc5, 0x68, 0x35, 0xdd, 0xe0, 0x0b, 0x3b, 0xcf, + 0x17, 0xb6, 0x9a, 0xb4, 0xb0, 0xf1, 0x61, 0x55, 0xe5, 0x24, 0x6b, 0x5c, 0x0a, 0x2f, 0xee, 0xc7, + 0x9b, 0xe8, 0x21, 0x2c, 0x8c, 0xa8, 0x63, 0x05, 0xd4, 0xbb, 0x7e, 0x15, 0x42, 0x24, 0xba, 0x03, + 0x2b, 0x6c, 0x71, 0xc3, 0xf1, 0x70, 0x36, 0x0f, 0x21, 0xd2, 0x78, 0x79, 0xa4, 0x3f, 0x97, 0x1d, + 0x62, 0x46, 0x46, 0x75, 0xc8, 0x52, 0x8f, 0xc5, 0xa8, 0x39, 0x3e, 0xdc, 0xb7, 0xaf, 0x1d, 0xae, + 0x68, 0x74, 0x99, 0x0c, 0x16, 0xa2, 0xea, 0xbb, 0xb0, 0x78, 0x61, 0x12, 0x2c, 0x34, 0xeb, 0xd5, + 0x76, 0xfb, 0x2d, 0x65, 0x0e, 0x95, 0x20, 0xdf, 0xe8, 0x76, 0x06, 0xed, 0xce, 0x2e, 0x8b, 0x2d, + 0x4b, 0x90, 0xc7, 0xdd, 0xed, 0xed, 0x7a, 0xad, 0xf1, 0x44, 0x49, 0xab, 0x55, 0x28, 0xc6, 0xb4, + 0xa1, 0x25, 0x80, 0xfe, 0xa0, 0xdb, 0xd3, 0x36, 0xdb, 0xb8, 0x3f, 0x10, 0x91, 0x69, 0x7f, 0x50, + 0xc3, 0x03, 0x49, 0x48, 0xa9, 0xff, 0x99, 0x0e, 0x57, 0x54, 0x06, 0xa3, 0xf5, 0x8b, 0xc1, 0xe8, + 0x15, 0x83, 0x97, 0xe1, 0xe8, 0xb4, 0x11, 0x05, 0xa5, 0xef, 0x01, 0xf0, 0x8d, 0x43, 0x4c, 0x4d, + 0x0f, 0xe4, 0xc2, 0x97, 0x5f, 0x30, 0xf2, 0x20, 0xac, 0x04, 0xe2, 0x82, 0x44, 0xd7, 0x02, 0xf4, + 0x21, 0x94, 0x0c, 0x3a, 0x72, 0x6d, 0x22, 0x85, 0xe7, 0xaf, 0x15, 0x2e, 0x46, 0xf8, 0x5a, 0x10, + 0x0f, 0x87, 0x33, 0x17, 0x03, 0xf6, 0xdf, 0x4c, 0x85, 0x96, 0x49, 0x88, 0x80, 0x4b, 0x90, 0xdf, + 0xed, 0x35, 0x6b, 0x83, 0x76, 0xe7, 0xb1, 0x92, 0x42, 0x00, 0x39, 0x6e, 0xea, 0xa6, 0x92, 0x66, + 0x91, 0x7b, 0xa3, 0xbb, 0xd3, 0xdb, 0x6e, 0x71, 0x8f, 0x85, 0x56, 0x41, 0x09, 0x8d, 0xad, 0x71, + 0x43, 0xb6, 0x9a, 0x4a, 0x06, 0xdd, 0x80, 0xe5, 0x88, 0x2a, 0x25, 0xb3, 0xe8, 0x26, 0xa0, 0x88, + 0x38, 0x55, 0x91, 0x53, 0x7f, 0x1d, 0x96, 0x1b, 0xd4, 0x09, 0x74, 0xcb, 0x89, 0xb2, 0x9a, 0x07, + 0x6c, 0xd2, 0x92, 0xa4, 0x59, 0xb2, 0x42, 0x56, 0x5f, 0x3e, 0x3f, 0xdb, 0x28, 0x46, 0xd0, 0x76, + 0x93, 0x87, 0x67, 0xb2, 0x61, 0xb2, 0xf3, 0xeb, 0x5a, 0x26, 0x37, 0x6e, 0xb6, 0xbe, 0x70, 0x7e, + 0xb6, 0x31, 0xdf, 0x6b, 0x37, 0x31, 0xa3, 0xa1, 0x97, 0xa1, 0x40, 0x9e, 0x5b, 0x81, 0x66, 0xb0, + 0x5b, 0x8d, 0x19, 0x30, 0x8b, 0xf3, 0x8c, 0xd0, 0xa0, 0x26, 0x51, 0xeb, 0x00, 0x3d, 0xea, 0x05, + 0xb2, 0xe7, 0x77, 0x20, 0xeb, 0x52, 0x8f, 0xd7, 0x74, 0x2e, 0xad, 0x34, 0x32, 0xb8, 0xd8, 0xa8, + 0x58, 0x80, 0xd5, 0x1f, 0xcc, 0x03, 0x0c, 0x74, 0xff, 0x50, 0x2a, 0x79, 0x04, 0x85, 0xa8, 0xaa, + 0x2b, 0x8b, 0x43, 0x57, 0xae, 0x76, 0x04, 0x46, 0x0f, 0xc3, 0xcd, 0x26, 0xf2, 0xb5, 0xc4, 0xb4, + 0x3a, 0xec, 0x28, 0x29, 0xe5, 0xb9, 0x98, 0x94, 0xb1, 0x20, 0x81, 0x78, 0x9e, 0x5c, 0x79, 0xf6, + 0x13, 0x35, 0xf8, 0xb5, 0x20, 0x8c, 0x26, 0x23, 0xfe, 0xc4, 0x72, 0xd8, 0xcc, 0x8a, 0x6c, 0xcd, + 0xe1, 0xa9, 0x1c, 0xfa, 0x08, 0x8a, 0x6c, 0xde, 0x9a, 0xcf, 0x79, 0x32, 0xd8, 0xbf, 0xd4, 0x54, + 0x42, 0x03, 0x06, 0x77, 0x6a, 0xe5, 0x57, 0x00, 0x74, 0xd7, 0xb5, 0x2d, 0x62, 0x6a, 0x7b, 0x13, + 0x1e, 0xdd, 0x17, 0x70, 0x41, 0x52, 0xea, 0x13, 0x76, 0x5c, 0x42, 0xb6, 0x1e, 0xf0, 0x88, 0xfd, + 0x1a, 0x03, 0x4a, 0x74, 0x2d, 0xa8, 0x2b, 0xb0, 0xe4, 0x8d, 0x1d, 0x66, 0x50, 0x39, 0x3a, 0xf5, + 0x8f, 0xd3, 0xf0, 0x52, 0x87, 0x04, 0xc7, 0xd4, 0x3b, 0xac, 0x05, 0x81, 0x6e, 0x1c, 0x8c, 0x88, + 0x23, 0x97, 0x2f, 0x96, 0x44, 0xa5, 0x2e, 0x24, 0x51, 0x6b, 0xb0, 0xa0, 0xdb, 0x96, 0xee, 0x13, + 0x11, 0xfa, 0x15, 0x70, 0xd8, 0x64, 0xa9, 0x1e, 0x4b, 0x1c, 0x89, 0xef, 0x13, 0x51, 0xe9, 0x61, + 0x03, 0x0f, 0x09, 0xe8, 0xbb, 0x70, 0x53, 0x06, 0x79, 0x7a, 0xd4, 0x15, 0x4b, 0x62, 0xc2, 0xc2, + 0x75, 0x2b, 0x31, 0x93, 0x4d, 0x1e, 0x9c, 0x8c, 0x02, 0xa7, 0xe4, 0xae, 0x1b, 0xc8, 0x98, 0x72, + 0xd5, 0x4c, 0x60, 0x95, 0x1f, 0xc3, 0xad, 0x4b, 0x45, 0xbe, 0x54, 0x25, 0xe9, 0xef, 0xd3, 0x00, + 0xed, 0x5e, 0x6d, 0x47, 0x1a, 0xa9, 0x09, 0xb9, 0x7d, 0x7d, 0x64, 0xd9, 0x93, 0xab, 0x3c, 0xe0, + 0x14, 0x5f, 0xad, 0x09, 0x73, 0x6c, 0x72, 0x19, 0x2c, 0x65, 0x79, 0x1e, 0x3b, 0xde, 0x73, 0x48, + 0x10, 0xe5, 0xb1, 0xbc, 0xc5, 0x86, 0xe1, 0xe9, 0x4e, 0xb4, 0x75, 0x45, 0x83, 0x2d, 0x00, 0x0b, + 0x79, 0x8e, 0xf5, 0x49, 0xe8, 0xb6, 0x64, 0x13, 0x6d, 0xf1, 0xaa, 0x31, 0xf1, 0x8e, 0x88, 0xb9, + 0x96, 0xe5, 0x46, 0xbd, 0x6e, 0x3c, 0x58, 0xc2, 0x85, 0xed, 0x22, 0xe9, 0xf2, 0x07, 0x3c, 0x64, + 0x9a, 0xb2, 0xbe, 0x94, 0x8d, 0xee, 0xc1, 0xe2, 0x85, 0x79, 0xbe, 0x50, 0x40, 0x68, 0xf7, 0x9e, + 0xbe, 0xa3, 0x64, 0xe4, 0xaf, 0x77, 0x95, 0x9c, 0xfa, 0x57, 0xf3, 0xc2, 0xd1, 0x48, 0xab, 0x26, + 0xbf, 0x96, 0xe4, 0xf9, 0xee, 0x36, 0xa8, 0x2d, 0x1d, 0xc0, 0x9b, 0x57, 0xfb, 0x1f, 0x96, 0x47, + 0x72, 0x38, 0x8e, 0x04, 0xd1, 0x06, 0x14, 0xc5, 0x2e, 0xd6, 0xd8, 0x81, 0xe3, 0x66, 0x5d, 0xc4, + 0x20, 0x48, 0x4c, 0x12, 0xbd, 0x01, 0x4b, 0xbc, 0xe0, 0xe4, 0x1f, 0x10, 0x53, 0x60, 0x32, 0x1c, + 0xb3, 0x18, 0x51, 0x39, 0x6c, 0x07, 0x4a, 0x92, 0xa0, 0xf1, 0x6c, 0x20, 0xcb, 0x07, 0x74, 0xe7, + 0xba, 0x01, 0x09, 0x11, 0x9e, 0x24, 0x14, 0xdd, 0x69, 0x43, 0xfd, 0x65, 0xc8, 0x87, 0x83, 0x45, + 0x6b, 0x30, 0x3f, 0x68, 0xf4, 0x94, 0xb9, 0xf2, 0xf2, 0xc9, 0x69, 0xa5, 0x18, 0x92, 0x07, 0x8d, + 0x1e, 0xe3, 0xec, 0x36, 0x7b, 0x4a, 0xea, 0x22, 0x67, 0xb7, 0xd9, 0x43, 0x65, 0xc8, 0xf4, 0x1b, + 0x83, 0x5e, 0x18, 0x9f, 0x85, 0x2c, 0x46, 0x2b, 0x67, 0x58, 0x7c, 0xa6, 0xee, 0x43, 0x31, 0xd6, + 0x3b, 0x7a, 0x0d, 0x16, 0xda, 0x9d, 0xc7, 0xb8, 0xd5, 0xef, 0x2b, 0x73, 0x22, 0x3d, 0x88, 0x71, + 0xdb, 0xce, 0x90, 0xad, 0x1d, 0x7a, 0x05, 0x32, 0x5b, 0x5d, 0x76, 0xef, 0x8b, 0xfc, 0x23, 0x86, + 0xd8, 0xa2, 0x7e, 0x50, 0xbe, 0x21, 0x03, 0xbf, 0xb8, 0x62, 0xf5, 0xf7, 0x52, 0x90, 0x13, 0x07, + 0x2d, 0x71, 0x11, 0x6b, 0xd3, 0xa4, 0x48, 0xa4, 0x8d, 0x6f, 0x5e, 0x9e, 0xe2, 0x55, 0x65, 0x46, + 0x26, 0xb6, 0x66, 0x28, 0x57, 0x7e, 0x1f, 0x4a, 0x71, 0xc6, 0x97, 0xda, 0x98, 0xdf, 0x85, 0x22, + 0xdb, 0xfb, 0x61, 0xaa, 0xf7, 0x00, 0x72, 0xc2, 0x59, 0x44, 0xf7, 0xd0, 0xe5, 0xf9, 0xa6, 0x44, + 0xa2, 0x47, 0xb0, 0x20, 0x72, 0xd4, 0xb0, 0x96, 0xbd, 0x7e, 0xf5, 0x09, 0xc3, 0x21, 0x5c, 0xfd, + 0x08, 0x32, 0x3d, 0x42, 0x3c, 0x66, 0x7b, 0x87, 0x9a, 0x64, 0x7a, 0x75, 0xcb, 0xf4, 0xda, 0x24, + 0xed, 0x26, 0x4b, 0xaf, 0x4d, 0xd2, 0x36, 0xa3, 0x7a, 0x5c, 0x3a, 0x56, 0x8f, 0x1b, 0x40, 0xe9, + 0x19, 0xb1, 0x86, 0x07, 0x01, 0x31, 0xb9, 0xa2, 0xb7, 0x21, 0xe3, 0x92, 0x68, 0xf0, 0x6b, 0x89, + 0x9b, 0x8f, 0x10, 0x0f, 0x73, 0x14, 0xf3, 0x31, 0xc7, 0x5c, 0x5a, 0x3e, 0x03, 0xc9, 0x96, 0xfa, + 0x77, 0x69, 0x58, 0x6a, 0xfb, 0xfe, 0x58, 0x77, 0x8c, 0x30, 0xaa, 0xfb, 0xe6, 0xc5, 0xa8, 0x2e, + 0xf1, 0xbd, 0xec, 0xa2, 0xc8, 0xc5, 0x32, 0xa3, 0xbc, 0x59, 0xd3, 0xd1, 0xcd, 0xaa, 0xfe, 0x47, + 0x2a, 0xac, 0x25, 0xbe, 0x11, 0x73, 0x05, 0x22, 0x47, 0x8c, 0x6b, 0x22, 0xbb, 0xce, 0xa1, 0x43, + 0x8f, 0x1d, 0x96, 0xbd, 0xe2, 0x56, 0xa7, 0xf5, 0x4c, 0x49, 0x89, 0xed, 0x79, 0x01, 0x84, 0x89, + 0x43, 0x8e, 0x99, 0xa6, 0x5e, 0xab, 0xd3, 0x64, 0x51, 0x58, 0x3a, 0x41, 0x53, 0x8f, 0x38, 0xa6, + 0xe5, 0x0c, 0xd1, 0x6b, 0x90, 0x6b, 0xf7, 0xfb, 0xbb, 0x3c, 0x85, 0x7c, 0xe9, 0xe4, 0xb4, 0x72, + 0xe3, 0x02, 0x8a, 0xd7, 0x91, 0x4d, 0x06, 0x62, 0x29, 0x10, 0x8b, 0xcf, 0x12, 0x40, 0x2c, 0xb6, + 0x16, 0x20, 0xdc, 0x1d, 0xd4, 0x06, 0x2d, 0x25, 0x9b, 0x00, 0xc2, 0x94, 0xfd, 0x95, 0xc7, 0xed, + 0x9f, 0xd3, 0xa0, 0xd4, 0x0c, 0x83, 0xb8, 0x01, 0xe3, 0xcb, 0xac, 0x73, 0x00, 0x79, 0x97, 0xfd, + 0xb2, 0x48, 0x18, 0x41, 0x3d, 0x4a, 0x7c, 0xf1, 0x9d, 0x91, 0xab, 0x62, 0x6a, 0x93, 0x9a, 0x39, + 0xb2, 0x7c, 0xdf, 0xa2, 0x8e, 0xa0, 0xe1, 0x48, 0x53, 0xf9, 0xbf, 0x52, 0x70, 0x23, 0x01, 0x81, + 0xee, 0x41, 0xc6, 0xa3, 0x76, 0xb8, 0x86, 0xb7, 0x2f, 0x2b, 0x13, 0x33, 0x51, 0xcc, 0x91, 0x68, + 0x1d, 0x40, 0x1f, 0x07, 0x54, 0xe7, 0xfd, 0x8b, 0xe2, 0x1a, 0x8e, 0x51, 0xd0, 0x33, 0xc8, 0xf9, + 0xc4, 0xf0, 0x48, 0x18, 0x67, 0x7f, 0xf4, 0xd3, 0x8e, 0xbe, 0xda, 0xe7, 0x6a, 0xb0, 0x54, 0x57, + 0xae, 0x42, 0x4e, 0x50, 0xd8, 0xb6, 0x37, 0xf5, 0x40, 0x97, 0x8f, 0x08, 0xfc, 0x37, 0xdb, 0x4d, + 0xba, 0x3d, 0x0c, 0x77, 0x93, 0x6e, 0x0f, 0xd5, 0xbf, 0x4c, 0x03, 0xb4, 0x9e, 0x07, 0xc4, 0x73, + 0x74, 0xbb, 0x51, 0x43, 0xad, 0xd8, 0xcd, 0x20, 0x66, 0xfb, 0xb5, 0xc4, 0x77, 0x93, 0x48, 0xa2, + 0xda, 0xa8, 0x25, 0xdc, 0x0d, 0xb7, 0x60, 0x7e, 0xec, 0xc9, 0x47, 0x7c, 0x11, 0x23, 0xef, 0xe2, + 0x6d, 0xcc, 0x68, 0xa8, 0x15, 0xaf, 0xe5, 0x5c, 0xfa, 0x54, 0x1f, 0xeb, 0x20, 0xd1, 0x75, 0xb1, + 0x93, 0x6f, 0xe8, 0x9a, 0x41, 0xe4, 0xad, 0x52, 0x12, 0x27, 0xbf, 0x51, 0x6b, 0x10, 0x2f, 0xc0, + 0x39, 0x43, 0x67, 0xff, 0x7f, 0x26, 0xff, 0xf6, 0x36, 0xc0, 0x74, 0x6a, 0x68, 0x1d, 0xb2, 0x8d, + 0xcd, 0x7e, 0x7f, 0x5b, 0x99, 0x13, 0x0e, 0x7c, 0xca, 0xe2, 0x64, 0xf5, 0xcf, 0xd2, 0x90, 0x6f, + 0xd4, 0xe4, 0x95, 0xdb, 0x00, 0x85, 0x7b, 0x25, 0xfe, 0xf4, 0x42, 0x9e, 0xbb, 0x96, 0x37, 0x91, + 0x8e, 0xe5, 0x8a, 0x84, 0x77, 0x89, 0x89, 0xb0, 0x51, 0xb7, 0xb8, 0x00, 0xc2, 0x50, 0x22, 0xd2, + 0x08, 0x9a, 0xa1, 0x87, 0x3e, 0x7e, 0xfd, 0x6a, 0x63, 0x89, 0xd4, 0x65, 0xda, 0xf6, 0x71, 0x31, + 0x54, 0xd2, 0xd0, 0x7d, 0xf4, 0x1e, 0x2c, 0xfb, 0xd6, 0xd0, 0xb1, 0x9c, 0xa1, 0x16, 0x1a, 0x8f, + 0xbf, 0x03, 0xd5, 0x57, 0xce, 0xcf, 0x36, 0x16, 0xfb, 0x82, 0x25, 0x6d, 0xb8, 0x28, 0x91, 0x0d, + 0x6e, 0x4a, 0xf4, 0x2e, 0x2c, 0xc5, 0x44, 0x99, 0x15, 0x85, 0xd9, 0x79, 0xc5, 0x38, 0x92, 0x7c, + 0x42, 0x26, 0xb8, 0x14, 0x09, 0x3e, 0x21, 0xbc, 0x36, 0xb3, 0x4f, 0x3d, 0x83, 0x68, 0x1e, 0x3f, + 0xd3, 0xfc, 0x76, 0xcf, 0xe0, 0x22, 0xa7, 0x89, 0x63, 0xae, 0x3e, 0x85, 0x1b, 0x5d, 0xcf, 0x38, + 0x20, 0x7e, 0x20, 0x4c, 0x21, 0xad, 0xf8, 0x11, 0xdc, 0x0e, 0x74, 0xff, 0x50, 0x3b, 0xb0, 0xfc, + 0x80, 0x7a, 0x13, 0xcd, 0x23, 0x01, 0x71, 0x18, 0x5f, 0xe3, 0x0f, 0xdc, 0xb2, 0x9c, 0x78, 0x8b, + 0x61, 0xb6, 0x04, 0x04, 0x87, 0x88, 0x6d, 0x06, 0x50, 0xdb, 0x50, 0x62, 0x29, 0x8c, 0x2c, 0xaa, + 0xb1, 0xd9, 0x83, 0x4d, 0x87, 0xda, 0x17, 0xbe, 0xa6, 0x0a, 0x36, 0x1d, 0x8a, 0x9f, 0xea, 0xb7, + 0x41, 0x69, 0x5a, 0xbe, 0xab, 0x07, 0xc6, 0x41, 0x58, 0x27, 0x45, 0x4d, 0x50, 0x0e, 0x88, 0xee, + 0x05, 0x7b, 0x44, 0x0f, 0x34, 0x97, 0x78, 0x16, 0x35, 0xaf, 0x5f, 0xe5, 0xe5, 0x48, 0xa4, 0xc7, + 0x25, 0xd4, 0xff, 0x49, 0x01, 0x60, 0x7d, 0x3f, 0x8c, 0xd6, 0xbe, 0x0e, 0x2b, 0xbe, 0xa3, 0xbb, + 0xfe, 0x01, 0x0d, 0x34, 0xcb, 0x09, 0x88, 0x77, 0xa4, 0xdb, 0xb2, 0xb8, 0xa3, 0x84, 0x8c, 0xb6, + 0xa4, 0xa3, 0xb7, 0x01, 0x1d, 0x12, 0xe2, 0x6a, 0xd4, 0x36, 0xb5, 0x90, 0x29, 0x1e, 0xbe, 0x33, + 0x58, 0x61, 0x9c, 0xae, 0x6d, 0xf6, 0x43, 0x3a, 0xaa, 0xc3, 0x3a, 0x9b, 0x3e, 0x71, 0x02, 0xcf, + 0x22, 0xbe, 0xb6, 0x4f, 0x3d, 0xcd, 0xb7, 0xe9, 0xb1, 0xb6, 0x4f, 0x6d, 0x9b, 0x1e, 0x13, 0x2f, + 0xac, 0x9b, 0x95, 0x6d, 0x3a, 0x6c, 0x09, 0xd0, 0x26, 0xf5, 0xfa, 0x36, 0x3d, 0xde, 0x0c, 0x11, + 0x2c, 0xa4, 0x9b, 0xce, 0x39, 0xb0, 0x8c, 0xc3, 0x30, 0xa4, 0x8b, 0xa8, 0x03, 0xcb, 0x38, 0x44, + 0xaf, 0xc1, 0x22, 0xb1, 0x09, 0x2f, 0x9f, 0x08, 0x54, 0x96, 0xa3, 0x4a, 0x21, 0x91, 0x81, 0xd4, + 0x8f, 0x41, 0x69, 0x39, 0x86, 0x37, 0x71, 0x63, 0x6b, 0xfe, 0x36, 0x20, 0xe6, 0x24, 0x35, 0x9b, + 0x1a, 0x87, 0xda, 0x48, 0x77, 0xf4, 0x21, 0x1b, 0x97, 0x78, 0x71, 0x54, 0x18, 0x67, 0x9b, 0x1a, + 0x87, 0x3b, 0x92, 0xae, 0xbe, 0x07, 0xd0, 0x77, 0x3d, 0xa2, 0x9b, 0x5d, 0x16, 0x4d, 0x30, 0xd3, + 0xf1, 0x96, 0x66, 0xca, 0xf7, 0x5c, 0xea, 0xc9, 0xa3, 0xae, 0x08, 0x46, 0x33, 0xa2, 0xab, 0xbf, + 0x08, 0x37, 0x7a, 0xb6, 0x6e, 0xf0, 0x2f, 0x2c, 0x7a, 0xd1, 0x13, 0x1a, 0x7a, 0x04, 0x39, 0x01, + 0x95, 0x2b, 0x99, 0x78, 0xdc, 0xa6, 0x7d, 0x6e, 0xcd, 0x61, 0x89, 0xaf, 0x97, 0x00, 0xa6, 0x7a, + 0xd4, 0x7f, 0x4c, 0x41, 0x21, 0xd2, 0x8f, 0x2a, 0xe2, 0x65, 0x28, 0xf0, 0x74, 0xcb, 0x91, 0x19, + 0x7f, 0x01, 0xc7, 0x49, 0xa8, 0x0d, 0x45, 0x37, 0x92, 0xbe, 0x32, 0x9e, 0x4b, 0x18, 0x35, 0x8e, + 0xcb, 0xa2, 0xf7, 0xa1, 0x10, 0x3e, 0xa0, 0x87, 0x1e, 0xf6, 0xea, 0xf7, 0xf6, 0x29, 0x3c, 0x2c, + 0xa4, 0x7a, 0xc4, 0xb5, 0x2d, 0xe6, 0x73, 0x32, 0x51, 0x21, 0x15, 0x4b, 0x92, 0xfa, 0x4d, 0x80, + 0x6f, 0x51, 0xcb, 0x19, 0xd0, 0x43, 0xe2, 0xf0, 0x57, 0x61, 0x96, 0x52, 0x92, 0xd0, 0xd0, 0xb2, + 0xc5, 0x2b, 0x05, 0x62, 0x95, 0xa2, 0xc7, 0x51, 0xd1, 0x54, 0xff, 0x22, 0x0d, 0x39, 0x4c, 0x69, + 0xd0, 0xa8, 0xa1, 0x0a, 0xe4, 0xa4, 0x2b, 0xe1, 0x57, 0x54, 0xbd, 0x70, 0x7e, 0xb6, 0x91, 0x15, + 0x3e, 0x24, 0x6b, 0x70, 0xe7, 0x11, 0x73, 0xf2, 0xe9, 0xcb, 0x9c, 0x3c, 0xba, 0x07, 0x25, 0x09, + 0xd2, 0x0e, 0x74, 0xff, 0x40, 0xe4, 0x77, 0xf5, 0xa5, 0xf3, 0xb3, 0x0d, 0x10, 0xc8, 0x2d, 0xdd, + 0x3f, 0xc0, 0x20, 0xd0, 0xec, 0x37, 0x6a, 0x41, 0xf1, 0x13, 0x6a, 0x39, 0x5a, 0xc0, 0x27, 0x21, + 0x6b, 0x91, 0x89, 0x4b, 0x3d, 0x9d, 0xaa, 0xfc, 0x80, 0x02, 0x3e, 0x99, 0x4e, 0xbe, 0x05, 0x8b, + 0x1e, 0xa5, 0x81, 0xf0, 0x6c, 0x16, 0x75, 0x64, 0x99, 0xa3, 0x92, 0x58, 0xfd, 0xa6, 0x34, 0xc0, + 0x12, 0x87, 0x4b, 0x5e, 0xac, 0x85, 0xee, 0xc1, 0xaa, 0xad, 0xfb, 0x81, 0xc6, 0x5d, 0xa2, 0x39, + 0xd5, 0x96, 0xe3, 0xc6, 0x47, 0x8c, 0xb7, 0xc9, 0x59, 0xa1, 0x84, 0xfa, 0x0f, 0x29, 0x28, 0xb2, + 0xc9, 0x58, 0xfb, 0x96, 0xc1, 0xe2, 0xc0, 0x2f, 0x1f, 0x9e, 0xdc, 0x82, 0x79, 0xc3, 0xf7, 0xa4, + 0x51, 0xf9, 0xfd, 0xdc, 0xe8, 0x63, 0xcc, 0x68, 0xe8, 0x63, 0xc8, 0xc9, 0x72, 0x8b, 0x88, 0x4c, + 0xd4, 0xeb, 0x23, 0x56, 0x69, 0x1b, 0x29, 0xc7, 0xb7, 0xfb, 0x74, 0x74, 0xe2, 0x9e, 0xc0, 0x71, + 0x12, 0xba, 0x09, 0x69, 0x43, 0x98, 0x4b, 0x7e, 0xa1, 0xd3, 0xe8, 0xe0, 0xb4, 0xe1, 0xa8, 0x3f, + 0x4e, 0xc1, 0xe2, 0xd4, 0x27, 0xb0, 0x1d, 0x70, 0x1b, 0x0a, 0xfe, 0x78, 0xcf, 0x9f, 0xf8, 0x01, + 0x19, 0x85, 0x2f, 0xde, 0x11, 0x01, 0xb5, 0xa1, 0xa0, 0xdb, 0x43, 0xea, 0x59, 0xc1, 0xc1, 0x48, + 0x26, 0xb2, 0xc9, 0xd1, 0x44, 0x5c, 0x67, 0xb5, 0x16, 0x8a, 0xe0, 0xa9, 0x74, 0x18, 0x1a, 0x88, + 0xcf, 0x22, 0x78, 0x68, 0xf0, 0x2a, 0x94, 0x6c, 0x7d, 0xc4, 0xeb, 0x4f, 0x81, 0x35, 0x22, 0xe1, + 0x61, 0x90, 0xb4, 0x81, 0x35, 0x22, 0xaa, 0x0a, 0x85, 0x48, 0x19, 0x5a, 0x86, 0x62, 0xad, 0xd5, + 0xd7, 0xee, 0x3f, 0x78, 0xa4, 0x3d, 0x6e, 0xec, 0x28, 0x73, 0x32, 0x7c, 0xfd, 0xd3, 0x14, 0x2c, + 0x4a, 0x8f, 0x25, 0x53, 0x82, 0xd7, 0x60, 0xc1, 0xd3, 0xf7, 0x83, 0x30, 0x69, 0xc9, 0x88, 0x5d, + 0xcd, 0x2e, 0x01, 0x96, 0xb4, 0x30, 0x56, 0x72, 0xd2, 0x12, 0xfb, 0x06, 0x63, 0xfe, 0xca, 0x6f, + 0x30, 0x32, 0xff, 0x2f, 0xdf, 0x60, 0xa8, 0xbf, 0x01, 0xb0, 0x69, 0xd9, 0x64, 0x20, 0x4a, 0x55, + 0x49, 0x29, 0x28, 0x0b, 0xf3, 0x64, 0x29, 0x34, 0x0c, 0xf3, 0xda, 0x4d, 0xcc, 0x68, 0x8c, 0x35, + 0xb4, 0x4c, 0x79, 0x18, 0x39, 0xeb, 0x31, 0x63, 0x0d, 0x2d, 0x33, 0x7a, 0xf6, 0xcb, 0x5c, 0xf3, + 0xec, 0xa7, 0x2e, 0xc3, 0x22, 0x16, 0x35, 0x36, 0x31, 0x06, 0xf5, 0x34, 0x05, 0xcb, 0x32, 0xde, + 0x8d, 0x5c, 0xf6, 0xd7, 0xa0, 0x20, 0x42, 0xdf, 0x69, 0x12, 0xc8, 0x3f, 0x44, 0x10, 0xb8, 0x76, + 0x13, 0xe7, 0x05, 0xbb, 0x6d, 0xa2, 0x0d, 0x28, 0x4a, 0x68, 0xec, 0xf3, 0x2e, 0x10, 0xa4, 0x0e, + 0x9b, 0xcf, 0x3b, 0x90, 0xd9, 0xb7, 0x6c, 0x22, 0x77, 0x7e, 0xa2, 0x47, 0x98, 0x5a, 0x64, 0x6b, + 0x0e, 0x73, 0x74, 0x3d, 0x1f, 0x16, 0xf7, 0xd4, 0x7f, 0x49, 0xf1, 0x12, 0x33, 0x4b, 0x55, 0xe3, + 0xe3, 0x13, 0x59, 0xeb, 0xcc, 0xf8, 0x04, 0x8e, 0x8d, 0x4f, 0xb0, 0xc5, 0xf8, 0x24, 0x34, 0x3e, + 0x3e, 0x41, 0xfa, 0xe9, 0xc7, 0x87, 0x3e, 0x84, 0x05, 0x59, 0xaa, 0x94, 0xae, 0xee, 0xd5, 0xc4, + 0x9d, 0x11, 0xb7, 0xf4, 0xd6, 0x1c, 0x0e, 0x65, 0x62, 0xd3, 0xdb, 0x86, 0x9b, 0x75, 0x5b, 0x37, + 0x0e, 0x6d, 0xcb, 0x0f, 0x88, 0x19, 0xf7, 0x40, 0x0f, 0x20, 0x77, 0x21, 0xce, 0xbd, 0xaa, 0x88, + 0x2a, 0x91, 0xea, 0xbf, 0xa7, 0xa0, 0xb4, 0x45, 0x74, 0x3b, 0x38, 0x98, 0x56, 0xaa, 0x02, 0xe2, + 0x07, 0xf2, 0x7e, 0xe4, 0xbf, 0xd1, 0x37, 0x20, 0x1f, 0x85, 0x41, 0xd7, 0x3e, 0x07, 0x46, 0x50, + 0xf4, 0x10, 0x16, 0xd8, 0xd8, 0xe9, 0x38, 0xcc, 0xaf, 0xae, 0x7a, 0x69, 0x92, 0x48, 0x76, 0x69, + 0x79, 0x84, 0xc7, 0x3d, 0xdc, 0x4e, 0x59, 0x1c, 0x36, 0xd1, 0xcf, 0x43, 0x89, 0x3f, 0x94, 0x84, + 0x61, 0x5e, 0xf6, 0x3a, 0x9d, 0x45, 0xf1, 0xd6, 0x29, 0x42, 0xbc, 0x3f, 0x4a, 0xc3, 0xea, 0x8e, + 0x3e, 0xd9, 0x23, 0xd2, 0x0d, 0x11, 0x13, 0x13, 0x83, 0x7a, 0x26, 0xea, 0xc5, 0xdd, 0xd7, 0x15, + 0x4f, 0xa7, 0x49, 0xc2, 0xc9, 0x5e, 0x2c, 0xcc, 0xf9, 0xd2, 0xb1, 0x9c, 0x6f, 0x15, 0xb2, 0x0e, + 0x75, 0x0c, 0x22, 0x7d, 0x9b, 0x68, 0xa8, 0xdf, 0x4b, 0xc5, 0x7d, 0x57, 0x39, 0x7a, 0xd6, 0xe4, + 0x45, 0xaf, 0x0e, 0x0d, 0xa2, 0xee, 0xd0, 0xc7, 0x50, 0xee, 0xb7, 0x1a, 0xb8, 0x35, 0xa8, 0x77, + 0xbf, 0xad, 0xf5, 0x6b, 0xdb, 0xfd, 0xda, 0x83, 0x7b, 0x5a, 0xaf, 0xbb, 0xfd, 0x9d, 0xfb, 0x0f, + 0xef, 0x7d, 0x43, 0x49, 0x95, 0x2b, 0x27, 0xa7, 0x95, 0xdb, 0x9d, 0x5a, 0x63, 0x5b, 0x9c, 0xb8, + 0x3d, 0xfa, 0xbc, 0xaf, 0xdb, 0xbe, 0xfe, 0xe0, 0x5e, 0x8f, 0xda, 0x13, 0x86, 0x41, 0x5f, 0x07, + 0xb4, 0xd9, 0xc2, 0x9d, 0xd6, 0x40, 0x0b, 0x1d, 0x64, 0xa3, 0xde, 0x50, 0xd2, 0x22, 0x93, 0xda, + 0x24, 0x9e, 0x43, 0x82, 0x5a, 0xab, 0x7f, 0xff, 0xc1, 0xa3, 0x46, 0xbd, 0xc1, 0xce, 0x78, 0x29, + 0x7e, 0x5b, 0xc6, 0x83, 0x80, 0xd4, 0xa5, 0x41, 0xc0, 0x34, 0x96, 0x48, 0x5f, 0x12, 0x4b, 0x6c, + 0xc2, 0xaa, 0xe1, 0x51, 0xdf, 0xd7, 0x58, 0x7a, 0x42, 0xcc, 0x99, 0x04, 0xe8, 0x2b, 0xe7, 0x67, + 0x1b, 0x2b, 0x0d, 0xc6, 0xef, 0x73, 0xb6, 0x54, 0xbf, 0x62, 0xc4, 0x48, 0xbc, 0x27, 0xf5, 0x87, + 0xf3, 0x2c, 0xd2, 0xb3, 0x8e, 0x2c, 0x9b, 0x0c, 0x89, 0x8f, 0x9e, 0xc2, 0xb2, 0xe1, 0x11, 0x93, + 0xe5, 0x1d, 0xba, 0x1d, 0xff, 0x32, 0xfa, 0xe7, 0x12, 0x83, 0xae, 0x48, 0xb0, 0xda, 0x88, 0xa4, + 0xfa, 0x2e, 0x31, 0xf0, 0x92, 0x71, 0xa1, 0x8d, 0x3e, 0x81, 0x65, 0x9f, 0xd8, 0x96, 0x33, 0x7e, + 0xae, 0x19, 0xd4, 0x09, 0xc8, 0xf3, 0xf0, 0x39, 0xef, 0x3a, 0xbd, 0xfd, 0xd6, 0x36, 0x93, 0x6a, + 0x08, 0xa1, 0x3a, 0x3a, 0x3f, 0xdb, 0x58, 0xba, 0x48, 0xc3, 0x4b, 0x52, 0xb3, 0x6c, 0x97, 0x0f, + 0x60, 0xe9, 0xe2, 0x68, 0xd0, 0xaa, 0x74, 0x34, 0xdc, 0x5f, 0x45, 0x8e, 0xe4, 0x36, 0xe4, 0x3d, + 0x32, 0xb4, 0xfc, 0xc0, 0x13, 0x66, 0x66, 0x9c, 0x88, 0x82, 0xd6, 0x20, 0x17, 0xfb, 0xe2, 0x84, + 0xf1, 0x64, 0x9b, 0x79, 0x10, 0xf1, 0x31, 0x59, 0xf9, 0xd7, 0x60, 0x66, 0x2c, 0xec, 0xd0, 0x99, + 0x96, 0xaf, 0xef, 0xc9, 0xce, 0xf2, 0x38, 0x6c, 0xb2, 0xbd, 0x3c, 0xf6, 0xa3, 0x00, 0x92, 0xff, + 0x66, 0x34, 0x1e, 0xe9, 0xc8, 0x4f, 0xeb, 0x78, 0x2c, 0x13, 0x7e, 0xc1, 0x9b, 0x89, 0x7d, 0xc1, + 0xbb, 0x0a, 0x59, 0x9b, 0x1c, 0x11, 0x5b, 0xc4, 0x18, 0x58, 0x34, 0xee, 0xdc, 0x83, 0x52, 0xf8, + 0xa9, 0x28, 0xff, 0x66, 0x24, 0x0f, 0x99, 0x41, 0xad, 0xff, 0x44, 0x99, 0x43, 0x00, 0x39, 0xb1, + 0xc7, 0xc5, 0x23, 0x64, 0xa3, 0xdb, 0xd9, 0x6c, 0x3f, 0x56, 0xd2, 0x77, 0x7e, 0x37, 0x03, 0x85, + 0xe8, 0x19, 0x8c, 0xdd, 0x69, 0x9d, 0xd6, 0xb3, 0xf0, 0x90, 0x44, 0xf4, 0x0e, 0x39, 0x46, 0xaf, + 0x4e, 0x0b, 0x68, 0x1f, 0x8b, 0x77, 0xff, 0x88, 0x1d, 0x16, 0xcf, 0x5e, 0x87, 0x7c, 0xad, 0xdf, + 0x6f, 0x3f, 0xee, 0xb4, 0x9a, 0xca, 0x67, 0xa9, 0xf2, 0x57, 0x4e, 0x4e, 0x2b, 0x2b, 0x11, 0xa8, + 0xe6, 0x8b, 0x6d, 0xc9, 0x51, 0x8d, 0x46, 0xab, 0x37, 0x68, 0x35, 0x95, 0x4f, 0xd3, 0xb3, 0x28, + 0x5e, 0x10, 0xe2, 0xdf, 0x33, 0x15, 0x7a, 0xb8, 0xd5, 0xab, 0x61, 0xd6, 0xe1, 0x67, 0x69, 0x51, + 0xd7, 0x9b, 0xf6, 0xe8, 0x11, 0x57, 0xf7, 0x58, 0x9f, 0xeb, 0xe1, 0x67, 0x85, 0x9f, 0xce, 0x8b, + 0x0f, 0x5b, 0xa6, 0x6f, 0x7a, 0x44, 0x37, 0x27, 0xac, 0x37, 0xfe, 0x98, 0xca, 0xd5, 0xcc, 0xcf, + 0xf4, 0xd6, 0x67, 0x3e, 0x8c, 0x69, 0x51, 0x61, 0x01, 0xef, 0x76, 0x3a, 0x0c, 0xf4, 0x69, 0x66, + 0x66, 0x76, 0x78, 0xec, 0xb0, 0x64, 0x1f, 0xbd, 0x01, 0xf9, 0xf0, 0xad, 0x55, 0xf9, 0x2c, 0x33, + 0x33, 0xa0, 0x46, 0xf8, 0x50, 0xcc, 0x3b, 0xdc, 0xda, 0x1d, 0xf0, 0xaf, 0x1e, 0x3f, 0xcd, 0xce, + 0x76, 0x78, 0x30, 0x0e, 0x4c, 0x7a, 0xec, 0xb0, 0xd3, 0x2c, 0x4b, 0x88, 0x9f, 0x65, 0x85, 0x97, + 0x88, 0x30, 0xb2, 0x7e, 0xf8, 0x3a, 0xe4, 0x71, 0xeb, 0x5b, 0xe2, 0x03, 0xc9, 0x4f, 0x73, 0x33, + 0x7a, 0x30, 0xf9, 0x84, 0x18, 0xac, 0xb7, 0x0a, 0xe4, 0x70, 0x6b, 0xa7, 0xfb, 0xb4, 0xa5, 0xfc, + 0x7e, 0x6e, 0x46, 0x0f, 0x26, 0x23, 0xca, 0x3f, 0xf8, 0xca, 0x77, 0x71, 0x6f, 0xab, 0xc6, 0x17, + 0x65, 0x56, 0x4f, 0xd7, 0x73, 0x0f, 0x74, 0x87, 0x98, 0xd3, 0x8f, 0x7b, 0x22, 0xd6, 0x9d, 0x5f, + 0x82, 0x7c, 0x18, 0x53, 0xa3, 0x75, 0xc8, 0x3d, 0xeb, 0xe2, 0x27, 0x2d, 0xac, 0xcc, 0x09, 0x2b, + 0x87, 0x9c, 0x67, 0x22, 0x1b, 0xaa, 0xc0, 0xc2, 0x4e, 0xad, 0x53, 0x7b, 0xdc, 0xc2, 0x61, 0xfd, + 0x3f, 0x04, 0xc8, 0xc0, 0xb0, 0xac, 0xc8, 0x0e, 0x22, 0x9d, 0xf5, 0xb5, 0x1f, 0x7d, 0xbe, 0x3e, + 0xf7, 0x93, 0xcf, 0xd7, 0xe7, 0x3e, 0x3d, 0x5f, 0x4f, 0xfd, 0xe8, 0x7c, 0x3d, 0xf5, 0xb7, 0xe7, + 0xeb, 0xa9, 0x7f, 0x3b, 0x5f, 0x4f, 0xed, 0xe5, 0xf8, 0x75, 0xf3, 0xf0, 0xff, 0x02, 0x00, 0x00, + 0xff, 0xff, 0x6e, 0xf6, 0x47, 0x4c, 0x21, 0x34, 0x00, 0x00, } diff --git a/vendor/github.com/docker/swarmkit/api/types.proto b/vendor/github.com/docker/swarmkit/api/types.proto index c416fb806e..0eb97c4bbe 100644 --- a/vendor/github.com/docker/swarmkit/api/types.proto +++ b/vendor/github.com/docker/swarmkit/api/types.proto @@ -4,6 +4,7 @@ package docker.swarmkit.v1; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; import "gogoproto/gogo.proto"; // This file contains types that are common to objects and spec or that are not @@ -77,6 +78,17 @@ message Resources { message ResourceRequirements { Resources limits = 1; Resources reservations = 2; + + // Amount of swap in bytes - can only be used together with a memory limit + // -1 means unlimited + // a null pointer indicates that the default behaviour of granting twice + // the memory is maintained + google.protobuf.Int64Value swap_bytes = 3; + + // Tune container memory swappiness (0 to 100) - if not specified, defaults + // to the container OS's default - generally 60, or the value predefined in + // the image; set to -1 to unset a previously set value + google.protobuf.Int64Value memory_swappiness = 4; } message Platform { diff --git a/vendor/github.com/docker/swarmkit/manager/allocator/network.go b/vendor/github.com/docker/swarmkit/manager/allocator/network.go index 8c56fdbf32..d60f25f016 100644 --- a/vendor/github.com/docker/swarmkit/manager/allocator/network.go +++ b/vendor/github.com/docker/swarmkit/manager/allocator/network.go @@ -989,8 +989,11 @@ func (a *Allocator) allocateNode(ctx context.Context, node *api.Node, existingAd nc := a.netCtx + var nwIDs = make(map[string]struct{}, len(networks)) + // go through all of the networks we've passed in for _, network := range networks { + nwIDs[network.ID] = struct{}{} // for each one, create space for an attachment. then, search through // all of the attachments already on the node. if the attachment @@ -1049,17 +1052,8 @@ func (a *Allocator) allocateNode(ctx context.Context, node *api.Node, existingAd // https://github.com/golang/go/wiki/SliceTricks#filtering-without-allocating attachments := node.Attachments[:0] for _, attach := range node.Attachments { - // for every attachment, go through every network. if the attachment - // belongs to one of the networks, then go to the next attachment. if - // no network matches, then the the attachment should be removed. - attachmentBelongs := false - for _, network := range networks { - if network.ID == attach.Network.ID { - attachmentBelongs = true - break - } - } - if attachmentBelongs { + if _, ok := nwIDs[attach.Network.ID]; ok { + // attachment belongs to one of the networks, so keep it attachments = append(attachments, attach) } else { // free the attachment and remove it from the node's attachments by diff --git a/vendor/github.com/docker/swarmkit/manager/controlapi/extension.go b/vendor/github.com/docker/swarmkit/manager/controlapi/extension.go new file mode 100644 index 0000000000..321ec762d3 --- /dev/null +++ b/vendor/github.com/docker/swarmkit/manager/controlapi/extension.go @@ -0,0 +1,133 @@ +package controlapi + +import ( + "context" + "strings" + + "github.com/docker/swarmkit/api" + "github.com/docker/swarmkit/identity" + "github.com/docker/swarmkit/log" + "github.com/docker/swarmkit/manager/state/store" + "github.com/sirupsen/logrus" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// CreateExtension creates an `Extension` based on the provided `CreateExtensionRequest.Extension` +// and returns a `CreateExtensionResponse`. +// - Returns `InvalidArgument` if the `CreateExtensionRequest.Extension` is malformed, +// or fails validation. +// - Returns an error if the creation fails. +func (s *Server) CreateExtension(ctx context.Context, request *api.CreateExtensionRequest) (*api.CreateExtensionResponse, error) { + if request.Annotations == nil || request.Annotations.Name == "" { + return nil, status.Errorf(codes.InvalidArgument, "extension name must be provided") + } + + extension := &api.Extension{ + ID: identity.NewID(), + Annotations: *request.Annotations, + Description: request.Description, + } + + err := s.store.Update(func(tx store.Tx) error { + return store.CreateExtension(tx, extension) + }) + + switch err { + case store.ErrNameConflict: + return nil, status.Errorf(codes.AlreadyExists, "extension %s already exists", request.Annotations.Name) + case nil: + log.G(ctx).WithFields(logrus.Fields{ + "extension.Name": request.Annotations.Name, + "method": "CreateExtension", + }).Debugf("extension created") + + return &api.CreateExtensionResponse{Extension: extension}, nil + default: + return nil, status.Errorf(codes.Internal, "could not create extension: %v", err.Error()) + } +} + +// GetExtension returns a `GetExtensionResponse` with a `Extension` with the same +// id as `GetExtensionRequest.extension_id` +// - Returns `NotFound` if the Extension with the given id is not found. +// - Returns `InvalidArgument` if the `GetExtensionRequest.extension_id` is empty. +// - Returns an error if the get fails. +func (s *Server) GetExtension(ctx context.Context, request *api.GetExtensionRequest) (*api.GetExtensionResponse, error) { + if request.ExtensionID == "" { + return nil, status.Errorf(codes.InvalidArgument, "extension ID must be provided") + } + + var extension *api.Extension + s.store.View(func(tx store.ReadTx) { + extension = store.GetExtension(tx, request.ExtensionID) + }) + + if extension == nil { + return nil, status.Errorf(codes.NotFound, "extension %s not found", request.ExtensionID) + } + + return &api.GetExtensionResponse{Extension: extension}, nil +} + +// RemoveExtension removes the extension referenced by `RemoveExtensionRequest.ID`. +// - Returns `InvalidArgument` if `RemoveExtensionRequest.extension_id` is empty. +// - Returns `NotFound` if the an extension named `RemoveExtensionRequest.extension_id` is not found. +// - Returns an error if the deletion fails. +func (s *Server) RemoveExtension(ctx context.Context, request *api.RemoveExtensionRequest) (*api.RemoveExtensionResponse, error) { + if request.ExtensionID == "" { + return nil, status.Errorf(codes.InvalidArgument, "extension ID must be provided") + } + + err := s.store.Update(func(tx store.Tx) error { + // Check if the extension exists + extension := store.GetExtension(tx, request.ExtensionID) + if extension == nil { + return status.Errorf(codes.NotFound, "could not find extension %s", request.ExtensionID) + } + + // Check if any resources of this type present in the store, return error if so + resources, err := store.FindResources(tx, store.ByKind(request.ExtensionID)) + if err != nil { + return status.Errorf(codes.Internal, "could not find resources using extension %s: %v", request.ExtensionID, err) + } + + if len(resources) != 0 { + resourceNames := make([]string, 0, len(resources)) + // Number of resources for an extension could be quite large. + // Show a limited number of resources for debugging. + attachedResourceForDebug := 10 + for _, resource := range resources { + resourceNames = append(resourceNames, resource.Annotations.Name) + attachedResourceForDebug = attachedResourceForDebug - 1 + if attachedResourceForDebug == 0 { + break + } + } + + extensionName := extension.Annotations.Name + resourceNameStr := strings.Join(resourceNames, ", ") + resourceStr := "resources" + if len(resourceNames) == 1 { + resourceStr = "resource" + } + + return status.Errorf(codes.InvalidArgument, "extension '%s' is in use by the following %s: %v", extensionName, resourceStr, resourceNameStr) + } + + return store.DeleteExtension(tx, request.ExtensionID) + }) + switch err { + case store.ErrNotExist: + return nil, status.Errorf(codes.NotFound, "extension %s not found", request.ExtensionID) + case nil: + log.G(ctx).WithFields(logrus.Fields{ + "extension.ID": request.ExtensionID, + "method": "RemoveExtension", + }).Debugf("extension removed") + + return &api.RemoveExtensionResponse{}, nil + default: + return nil, err + } +} diff --git a/vendor/github.com/docker/swarmkit/manager/controlapi/resource.go b/vendor/github.com/docker/swarmkit/manager/controlapi/resource.go new file mode 100644 index 0000000000..8ae5cb1375 --- /dev/null +++ b/vendor/github.com/docker/swarmkit/manager/controlapi/resource.go @@ -0,0 +1,226 @@ +package controlapi + +import ( + "context" + + "github.com/sirupsen/logrus" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "github.com/docker/swarmkit/api" + "github.com/docker/swarmkit/identity" + "github.com/docker/swarmkit/log" + "github.com/docker/swarmkit/manager/state/store" +) + +// CreateResource returns a `CreateResourceResponse` after creating a `Resource` based +// on the provided `CreateResourceRequest.Resource`. +// - Returns `InvalidArgument` if the `CreateResourceRequest.Resource` is malformed, +// or if the config data is too long or contains invalid characters. +// - Returns an error if the creation fails. +func (s *Server) CreateResource(ctx context.Context, request *api.CreateResourceRequest) (*api.CreateResourceResponse, error) { + if request.Annotations == nil || request.Annotations.Name == "" { + return nil, status.Errorf(codes.InvalidArgument, "Resource must have a name") + } + + // finally, validate that Kind is not an emptystring. We know that creating + // with Kind as empty string should fail at the store level, but to make + // errors clearer, special case this. + if request.Kind == "" { + return nil, status.Errorf(codes.InvalidArgument, "Resource must belong to an Extension") + } + r := &api.Resource{ + ID: identity.NewID(), + Annotations: *request.Annotations, + Kind: request.Kind, + Payload: request.Payload, + } + + err := s.store.Update(func(tx store.Tx) error { + return store.CreateResource(tx, r) + }) + + switch err { + case store.ErrNoKind: + return nil, status.Errorf(codes.InvalidArgument, "Kind %v is not registered", r.Kind) + case store.ErrNameConflict: + return nil, status.Errorf( + codes.AlreadyExists, + "A resource with name %v already exists", + r.Annotations.Name, + ) + case nil: + log.G(ctx).WithFields(logrus.Fields{ + "resource.Name": r.Annotations.Name, + "method": "CreateResource", + }).Debugf("resource created") + return &api.CreateResourceResponse{Resource: r}, nil + default: + return nil, err + } +} + +// GetResource returns a `GetResourceResponse` with a `Resource` with the same +// id as `GetResourceRequest.Resource` +// - Returns `NotFound` if the Resource with the given id is not found. +// - Returns `InvalidArgument` if the `GetResourceRequest.Resource` is empty. +// - Returns an error if getting fails. +func (s *Server) GetResource(ctx context.Context, request *api.GetResourceRequest) (*api.GetResourceResponse, error) { + if request.ResourceID == "" { + return nil, status.Errorf(codes.InvalidArgument, "resource ID must be present") + } + var resource *api.Resource + s.store.View(func(tx store.ReadTx) { + resource = store.GetResource(tx, request.ResourceID) + }) + + if resource == nil { + return nil, status.Errorf(codes.NotFound, "resource %s not found", request.ResourceID) + } + + return &api.GetResourceResponse{Resource: resource}, nil +} + +// RemoveResource removes the `Resource` referenced by `RemoveResourceRequest.ResourceID`. +// - Returns `InvalidArgument` if `RemoveResourceRequest.ResourceID` is empty. +// - Returns `NotFound` if the a resource named `RemoveResourceRequest.ResourceID` is not found. +// - Returns an error if the deletion fails. +func (s *Server) RemoveResource(ctx context.Context, request *api.RemoveResourceRequest) (*api.RemoveResourceResponse, error) { + if request.ResourceID == "" { + return nil, status.Errorf(codes.InvalidArgument, "resource ID must be present") + } + err := s.store.Update(func(tx store.Tx) error { + return store.DeleteResource(tx, request.ResourceID) + }) + switch err { + case store.ErrNotExist: + return nil, status.Errorf(codes.NotFound, "resource %s not found", request.ResourceID) + case nil: + return &api.RemoveResourceResponse{}, nil + default: + return nil, err + } +} + +// ListResources returns a `ListResourcesResponse` with a list of `Resource`s stored in the raft store, +// or all resources matching any name in `ListConfigsRequest.Names`, any +// name prefix in `ListResourcesRequest.NamePrefixes`, any id in +// `ListResourcesRequest.ResourceIDs`, or any id prefix in `ListResourcesRequest.IDPrefixes`. +// - Returns an error if listing fails. +func (s *Server) ListResources(ctx context.Context, request *api.ListResourcesRequest) (*api.ListResourcesResponse, error) { + var ( + resources []*api.Resource + respResources []*api.Resource + err error + byFilters []store.By + by store.By + labels map[string]string + ) + + // andKind is set to true if the Extension filter is not the only filter + // being used. If this is the case, we do not have to compare by strings, + // which could be slow. + var andKind bool + + if request.Filters != nil { + for _, name := range request.Filters.Names { + byFilters = append(byFilters, store.ByName(name)) + } + for _, prefix := range request.Filters.NamePrefixes { + byFilters = append(byFilters, store.ByNamePrefix(prefix)) + } + for _, prefix := range request.Filters.IDPrefixes { + byFilters = append(byFilters, store.ByIDPrefix(prefix)) + } + labels = request.Filters.Labels + if request.Filters.Kind != "" { + // if we're filtering on Extensions, then set this to true. If Kind is + // the _only_ kind of filter, we'll set this to false below. + andKind = true + } + } + + switch len(byFilters) { + case 0: + // NOTE(dperny): currently, filtering using store.ByKind would apply an + // Or operation, which means that filtering by kind would return a + // union. However, for Kind filters, we actually want the + // _intersection_; that is, _only_ objects of the specified kind. we + // could dig into the db code to figure out how to write and use an + // efficient And combinator, but I don't have the time nor expertise to + // do so at the moment. instead, we'll filter by kind after the fact. + // however, if there are no other kinds of filters, and we're ONLY + // listing by Kind, we can set that to be the only filter. + if andKind { + by = store.ByKind(request.Filters.Kind) + andKind = false + } else { + by = store.All + } + case 1: + by = byFilters[0] + default: + by = store.Or(byFilters...) + } + + s.store.View(func(tx store.ReadTx) { + resources, err = store.FindResources(tx, by) + }) + if err != nil { + return nil, err + } + + // filter by label and extension + for _, resource := range resources { + if !filterMatchLabels(resource.Annotations.Labels, labels) { + continue + } + if andKind && resource.Kind != request.Filters.Kind { + continue + } + respResources = append(respResources, resource) + } + + return &api.ListResourcesResponse{Resources: respResources}, nil +} + +// UpdateResource updates the resource with the given `UpdateResourceRequest.Resource.Id` using the given `UpdateResourceRequest.Resource` and returns a `UpdateResourceResponse`. +// - Returns `NotFound` if the Resource with the given `UpdateResourceRequest.Resource.Id` is not found. +// - Returns `InvalidArgument` if the UpdateResourceRequest.Resource.Id` is empty. +// - Returns an error if updating fails. +func (s *Server) UpdateResource(ctx context.Context, request *api.UpdateResourceRequest) (*api.UpdateResourceResponse, error) { + if request.ResourceID == "" || request.ResourceVersion == nil { + return nil, status.Errorf(codes.InvalidArgument, "must include ID and version") + } + var r *api.Resource + err := s.store.Update(func(tx store.Tx) error { + r = store.GetResource(tx, request.ResourceID) + if r == nil { + return status.Errorf(codes.NotFound, "resource %v not found", request.ResourceID) + } + + if request.Annotations != nil { + if r.Annotations.Name != request.Annotations.Name { + return status.Errorf(codes.InvalidArgument, "cannot change resource name") + } + r.Annotations = *request.Annotations + } + r.Meta.Version = *request.ResourceVersion + // only alter the payload if the + if request.Payload != nil { + r.Payload = request.Payload + } + + return store.UpdateResource(tx, r) + }) + switch err { + case store.ErrSequenceConflict: + return nil, status.Errorf(codes.InvalidArgument, "update out of sequence") + case nil: + return &api.UpdateResourceResponse{ + Resource: r, + }, nil + default: + return nil, err + } +} diff --git a/vendor/github.com/docker/swarmkit/manager/state/raft/util.go b/vendor/github.com/docker/swarmkit/manager/state/raft/util.go index 75872fe77c..1a49f76cb4 100644 --- a/vendor/github.com/docker/swarmkit/manager/state/raft/util.go +++ b/vendor/github.com/docker/swarmkit/manager/state/raft/util.go @@ -2,6 +2,7 @@ package raft import ( "context" + "net" "time" "github.com/docker/swarmkit/api" @@ -14,11 +15,15 @@ import ( // dial returns a grpc client connection func dial(addr string, protocol string, creds credentials.TransportCredentials, timeout time.Duration) (*grpc.ClientConn, error) { + // gRPC dialer connects to proxy first. Provide a custom dialer here avoid that. grpcOptions := []grpc.DialOption{ grpc.WithBackoffMaxDelay(2 * time.Second), grpc.WithTransportCredentials(creds), grpc.WithUnaryInterceptor(grpc_prometheus.UnaryClientInterceptor), grpc.WithStreamInterceptor(grpc_prometheus.StreamClientInterceptor), + grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { + return net.DialTimeout("tcp", addr, timeout) + }), } if timeout != 0 { diff --git a/vendor/github.com/docker/swarmkit/manager/state/store/resources.go b/vendor/github.com/docker/swarmkit/manager/state/store/resources.go index 1f2c3904f1..9852f64fe0 100644 --- a/vendor/github.com/docker/swarmkit/manager/state/store/resources.go +++ b/vendor/github.com/docker/swarmkit/manager/state/store/resources.go @@ -1,6 +1,8 @@ package store import ( + "strings" + "github.com/docker/swarmkit/api" memdb "github.com/hashicorp/go-memdb" "github.com/pkg/errors" @@ -8,6 +10,12 @@ import ( const tableResource = "resource" +var ( + // ErrNoKind is returned by resource create operations if the provided Kind + // of the resource does not exist + ErrNoKind = errors.New("object kind is unregistered") +) + func init() { register(ObjectStoreConfig{ Table: &memdb.TableSchema{ @@ -87,17 +95,26 @@ func confirmExtension(tx Tx, r *api.Resource) error { return errors.Wrap(err, "failed to query extensions") } if len(extensions) == 0 { - return errors.Errorf("object kind %s is unregistered", r.Kind) + return ErrNoKind } return nil } // CreateResource adds a new resource object to the store. // Returns ErrExist if the ID is already taken. +// Returns ErrNameConflict if a Resource with this Name already exists +// Returns ErrNoKind if the specified Kind does not exist func CreateResource(tx Tx, r *api.Resource) error { if err := confirmExtension(tx, r); err != nil { return err } + // TODO(dperny): currently the "name" index is unique, which means only one + // Resource of _any_ Kind can exist with that name. This isn't a problem + // right now, but the ideal case would be for names to be namespaced to the + // kind. + if tx.lookup(tableResource, indexName, strings.ToLower(r.Annotations.Name)) != nil { + return ErrNameConflict + } return tx.create(tableResource, resourceEntry{r}) } @@ -130,7 +147,7 @@ func GetResource(tx ReadTx, id string) *api.Resource { func FindResources(tx ReadTx, by By) ([]*api.Resource, error) { checkType := func(by By) error { switch by.(type) { - case byIDPrefix, byName, byKind, byCustom, byCustomPrefix: + case byIDPrefix, byName, byNamePrefix, byKind, byCustom, byCustomPrefix: return nil default: return ErrInvalidFindBy