From 96f3df96b17f34fa2201dbc44799a5fc94fbbc9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Justinas=20Stankevi=C4=8Dius?= Date: Wed, 16 Aug 2023 20:20:34 +0300 Subject: [PATCH] Enable limited Access Requests feature for the Team plan (#29866) * Add access request monthly limit to Features * Add a method to retrieve usage of Access Requests * Verify access request limit when creating * Remove AccessRequestsFeature.Enabled Feature is always enabled now, the flag serves no purpose * Expose usage of access requests in auth server * Reimplement access request usage using audit log * Disallow unauthenticated access to resource usage * Tidy proto structures * Start enforcing access request limit in auth * Run GCI * Add a license header to usage_test.go * Add missing godoc * Restructure usage proto per PR comments * Construct proto.AccessRequestUsage in getARMU * Reduce log level when encountering an unexpected event * Simplify return * Add godoc to GetResourcesUsage in client * Fix merge mess-ups * Count all requests, no matter their review state * Factor out GetAccessRequestMonthlyUsage * Move out resource usage to its own service * Validate the limit after dry run is done Unbreak UI when the limit is up * Fix imports * Remove Limit SearchEvents will default to defaults.EventsIterationLimit * Rename the service proto * Add godocs to the gRPC service * Move resource usage to a dedicated package * Define single GetUsage rpc for all resource types * Additions for limited access requests UI rework * Add a test for GetAccessRequestMonthlyUsage * Address lint * Run GCI * Add licenses where missing * Expect CTA_UNSPEICIFED rather than `undefined` * Expect CTA_UNSPECIFIED instead of undefined --- api/client/client.go | 10 + api/client/proto/authservice.pb.go | 2268 +++++++++-------- .../v1/resourceusage_service.pb.go | 312 +++ .../v1/resourceusage_service_grpc.pb.go | 125 + .../legacy/client/proto/authservice.proto | 13 + .../v1/resourceusage_service.proto | 42 + lib/auth/auth.go | 32 + lib/auth/auth_with_roles.go | 10 + lib/auth/clt.go | 7 + lib/auth/usage_test.go | 120 + lib/events/test/mock.go | 57 + lib/modules/modules.go | 14 + lib/resourceusage/usage.go | 68 + lib/resourceusage/usage_test.go | 63 + web/packages/design/src/theme/darkTheme.ts | 4 + web/packages/design/src/theme/lightTheme.ts | 6 +- .../ButtonLockedFeature.test.tsx | 4 +- .../ButtonLockedFeature.tsx | 26 +- .../teleport/src/services/sales/index.ts | 41 + 19 files changed, 2182 insertions(+), 1040 deletions(-) create mode 100644 api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service.pb.go create mode 100644 api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service_grpc.pb.go create mode 100644 api/proto/teleport/resourceusage/v1/resourceusage_service.proto create mode 100644 lib/auth/usage_test.go create mode 100644 lib/events/test/mock.go create mode 100644 lib/resourceusage/usage.go create mode 100644 lib/resourceusage/usage_test.go create mode 100644 web/packages/teleport/src/services/sales/index.ts diff --git a/api/client/client.go b/api/client/client.go index cb308748166..ee77969baa3 100644 --- a/api/client/client.go +++ b/api/client/client.go @@ -58,6 +58,7 @@ import ( loginrulepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/loginrule/v1" oktapb "github.com/gravitational/teleport/api/gen/proto/go/teleport/okta/v1" pluginspb "github.com/gravitational/teleport/api/gen/proto/go/teleport/plugins/v1" + resourceusagepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/resourceusage/v1" samlidppb "github.com/gravitational/teleport/api/gen/proto/go/teleport/samlidp/v1" trustpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/trust/v1" userloginstatev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/userloginstate/v1" @@ -4139,3 +4140,12 @@ func (c *Client) UpsertUserPreferences(ctx context.Context, in *userpreferencesp } return nil } + +// ResourceUsageClient returns an unadorned Resource Usage service client, +// using the underlying Auth gRPC connection. +// Clients connecting to non-Enterprise clusters, or older Teleport versions, +// still get a plugins client when calling this method, but all RPCs will return +// "not implemented" errors (as per the default gRPC behavior). +func (c *Client) ResourceUsageClient() resourceusagepb.ResourceUsageServiceClient { + return resourceusagepb.NewResourceUsageServiceClient(c.conn) +} diff --git a/api/client/proto/authservice.pb.go b/api/client/proto/authservice.pb.go index 7d06a9d68ea..6eb8e399f1a 100644 --- a/api/client/proto/authservice.pb.go +++ b/api/client/proto/authservice.pb.go @@ -306,7 +306,7 @@ func (x DatabaseCertRequest_Requester) String() string { } func (DatabaseCertRequest_Requester) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{75, 0} + return fileDescriptor_0ffcffcda38ae159, []int{76, 0} } // Extensions are the extensions to add to the certificate. @@ -334,7 +334,7 @@ func (x DatabaseCertRequest_Extensions) String() string { } func (DatabaseCertRequest_Extensions) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{75, 1} + return fileDescriptor_0ffcffcda38ae159, []int{76, 1} } // Watch specifies watch parameters @@ -2155,10 +2155,12 @@ type Features struct { // DeviceTrust holds its namesake feature settings. DeviceTrust *DeviceTrustFeature `protobuf:"bytes,19,opt,name=DeviceTrust,proto3" json:"device_trust,omitempty"` // FeatureHiding enables hiding features from being discoverable for users who don't have the necessary permissions. - FeatureHiding bool `protobuf:"varint,20,opt,name=FeatureHiding,proto3" json:"feature_hiding,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FeatureHiding bool `protobuf:"varint,20,opt,name=FeatureHiding,proto3" json:"feature_hiding,omitempty"` + // AccessRequests holds its namesake feature settings. + AccessRequests *AccessRequestsFeature `protobuf:"bytes,21,opt,name=AccessRequests,proto3" json:"access_requests,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Features) Reset() { *m = Features{} } @@ -2313,6 +2315,13 @@ func (m *Features) GetFeatureHiding() bool { return false } +func (m *Features) GetAccessRequests() *AccessRequestsFeature { + if m != nil { + return m.AccessRequests + } + return nil +} + // DeviceTrustFeature holds the Device Trust feature general and usage-based // settings. // Requires Teleport Enterprise. @@ -2376,6 +2385,60 @@ func (m *DeviceTrustFeature) GetDevicesUsageLimit() int32 { return 0 } +// AccessRequestsFeature holds the AccessRequest feature general and usage-based +// settings. +// Requires Teleport Enterprise. +type AccessRequestsFeature struct { + // Usage-based limit for the number of limit for the number of + // access requests created in a calendar month. + // Meant for usage-based accounts, like Teleport Team. Has no effect if + // [Features.IsUsageBased] is `false`. + MonthlyRequestLimit int32 `protobuf:"varint,1,opt,name=monthly_request_limit,json=monthlyRequestLimit,proto3" json:"monthly_request_limit"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccessRequestsFeature) Reset() { *m = AccessRequestsFeature{} } +func (m *AccessRequestsFeature) String() string { return proto.CompactTextString(m) } +func (*AccessRequestsFeature) ProtoMessage() {} +func (*AccessRequestsFeature) Descriptor() ([]byte, []int) { + return fileDescriptor_0ffcffcda38ae159, []int{25} +} +func (m *AccessRequestsFeature) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AccessRequestsFeature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AccessRequestsFeature.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AccessRequestsFeature) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccessRequestsFeature.Merge(m, src) +} +func (m *AccessRequestsFeature) XXX_Size() int { + return m.Size() +} +func (m *AccessRequestsFeature) XXX_DiscardUnknown() { + xxx_messageInfo_AccessRequestsFeature.DiscardUnknown(m) +} + +var xxx_messageInfo_AccessRequestsFeature proto.InternalMessageInfo + +func (m *AccessRequestsFeature) GetMonthlyRequestLimit() int32 { + if m != nil { + return m.MonthlyRequestLimit + } + return 0 +} + // DeleteUserRequest is the input value for the DeleteUser method. type DeleteUserRequest struct { // Name is the user name to delete. @@ -2389,7 +2452,7 @@ func (m *DeleteUserRequest) Reset() { *m = DeleteUserRequest{} } func (m *DeleteUserRequest) String() string { return proto.CompactTextString(m) } func (*DeleteUserRequest) ProtoMessage() {} func (*DeleteUserRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{25} + return fileDescriptor_0ffcffcda38ae159, []int{26} } func (m *DeleteUserRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2437,7 +2500,7 @@ func (m *Semaphores) Reset() { *m = Semaphores{} } func (m *Semaphores) String() string { return proto.CompactTextString(m) } func (*Semaphores) ProtoMessage() {} func (*Semaphores) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{26} + return fileDescriptor_0ffcffcda38ae159, []int{27} } func (m *Semaphores) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2494,7 +2557,7 @@ func (m *AuditStreamRequest) Reset() { *m = AuditStreamRequest{} } func (m *AuditStreamRequest) String() string { return proto.CompactTextString(m) } func (*AuditStreamRequest) ProtoMessage() {} func (*AuditStreamRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{27} + return fileDescriptor_0ffcffcda38ae159, []int{28} } func (m *AuditStreamRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2619,7 +2682,7 @@ func (m *AuditStreamStatus) Reset() { *m = AuditStreamStatus{} } func (m *AuditStreamStatus) String() string { return proto.CompactTextString(m) } func (*AuditStreamStatus) ProtoMessage() {} func (*AuditStreamStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{28} + return fileDescriptor_0ffcffcda38ae159, []int{29} } func (m *AuditStreamStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2667,7 +2730,7 @@ func (m *CreateStream) Reset() { *m = CreateStream{} } func (m *CreateStream) String() string { return proto.CompactTextString(m) } func (*CreateStream) ProtoMessage() {} func (*CreateStream) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{29} + return fileDescriptor_0ffcffcda38ae159, []int{30} } func (m *CreateStream) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2718,7 +2781,7 @@ func (m *ResumeStream) Reset() { *m = ResumeStream{} } func (m *ResumeStream) String() string { return proto.CompactTextString(m) } func (*ResumeStream) ProtoMessage() {} func (*ResumeStream) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{30} + return fileDescriptor_0ffcffcda38ae159, []int{31} } func (m *ResumeStream) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2773,7 +2836,7 @@ func (m *CompleteStream) Reset() { *m = CompleteStream{} } func (m *CompleteStream) String() string { return proto.CompactTextString(m) } func (*CompleteStream) ProtoMessage() {} func (*CompleteStream) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{31} + return fileDescriptor_0ffcffcda38ae159, []int{32} } func (m *CompleteStream) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2813,7 +2876,7 @@ func (m *FlushAndCloseStream) Reset() { *m = FlushAndCloseStream{} } func (m *FlushAndCloseStream) String() string { return proto.CompactTextString(m) } func (*FlushAndCloseStream) ProtoMessage() {} func (*FlushAndCloseStream) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{32} + return fileDescriptor_0ffcffcda38ae159, []int{33} } func (m *FlushAndCloseStream) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2855,7 +2918,7 @@ func (m *UpsertApplicationServerRequest) Reset() { *m = UpsertApplicatio func (m *UpsertApplicationServerRequest) String() string { return proto.CompactTextString(m) } func (*UpsertApplicationServerRequest) ProtoMessage() {} func (*UpsertApplicationServerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{33} + return fileDescriptor_0ffcffcda38ae159, []int{34} } func (m *UpsertApplicationServerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2908,7 +2971,7 @@ func (m *DeleteApplicationServerRequest) Reset() { *m = DeleteApplicatio func (m *DeleteApplicationServerRequest) String() string { return proto.CompactTextString(m) } func (*DeleteApplicationServerRequest) ProtoMessage() {} func (*DeleteApplicationServerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{34} + return fileDescriptor_0ffcffcda38ae159, []int{35} } func (m *DeleteApplicationServerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2971,7 +3034,7 @@ func (m *DeleteAllApplicationServersRequest) Reset() { *m = DeleteAllApp func (m *DeleteAllApplicationServersRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAllApplicationServersRequest) ProtoMessage() {} func (*DeleteAllApplicationServersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{35} + return fileDescriptor_0ffcffcda38ae159, []int{36} } func (m *DeleteAllApplicationServersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3029,7 +3092,7 @@ func (m *GenerateAppTokenRequest) Reset() { *m = GenerateAppTokenRequest func (m *GenerateAppTokenRequest) String() string { return proto.CompactTextString(m) } func (*GenerateAppTokenRequest) ProtoMessage() {} func (*GenerateAppTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{36} + return fileDescriptor_0ffcffcda38ae159, []int{37} } func (m *GenerateAppTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3105,7 +3168,7 @@ func (m *GenerateAppTokenResponse) Reset() { *m = GenerateAppTokenRespon func (m *GenerateAppTokenResponse) String() string { return proto.CompactTextString(m) } func (*GenerateAppTokenResponse) ProtoMessage() {} func (*GenerateAppTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{37} + return fileDescriptor_0ffcffcda38ae159, []int{38} } func (m *GenerateAppTokenResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3154,7 +3217,7 @@ func (m *GetAppSessionRequest) Reset() { *m = GetAppSessionRequest{} } func (m *GetAppSessionRequest) String() string { return proto.CompactTextString(m) } func (*GetAppSessionRequest) ProtoMessage() {} func (*GetAppSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{38} + return fileDescriptor_0ffcffcda38ae159, []int{39} } func (m *GetAppSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3203,7 +3266,7 @@ func (m *GetAppSessionResponse) Reset() { *m = GetAppSessionResponse{} } func (m *GetAppSessionResponse) String() string { return proto.CompactTextString(m) } func (*GetAppSessionResponse) ProtoMessage() {} func (*GetAppSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{39} + return fileDescriptor_0ffcffcda38ae159, []int{40} } func (m *GetAppSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3261,7 +3324,7 @@ func (m *ListAppSessionsRequest) Reset() { *m = ListAppSessionsRequest{} func (m *ListAppSessionsRequest) String() string { return proto.CompactTextString(m) } func (*ListAppSessionsRequest) ProtoMessage() {} func (*ListAppSessionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{40} + return fileDescriptor_0ffcffcda38ae159, []int{41} } func (m *ListAppSessionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3327,7 +3390,7 @@ func (m *ListAppSessionsResponse) Reset() { *m = ListAppSessionsResponse func (m *ListAppSessionsResponse) String() string { return proto.CompactTextString(m) } func (*ListAppSessionsResponse) ProtoMessage() {} func (*ListAppSessionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{41} + return fileDescriptor_0ffcffcda38ae159, []int{42} } func (m *ListAppSessionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3383,7 +3446,7 @@ func (m *GetSnowflakeSessionsResponse) Reset() { *m = GetSnowflakeSessio func (m *GetSnowflakeSessionsResponse) String() string { return proto.CompactTextString(m) } func (*GetSnowflakeSessionsResponse) ProtoMessage() {} func (*GetSnowflakeSessionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{42} + return fileDescriptor_0ffcffcda38ae159, []int{43} } func (m *GetSnowflakeSessionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3441,7 +3504,7 @@ func (m *ListSAMLIdPSessionsRequest) Reset() { *m = ListSAMLIdPSessionsR func (m *ListSAMLIdPSessionsRequest) String() string { return proto.CompactTextString(m) } func (*ListSAMLIdPSessionsRequest) ProtoMessage() {} func (*ListSAMLIdPSessionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{43} + return fileDescriptor_0ffcffcda38ae159, []int{44} } func (m *ListSAMLIdPSessionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3507,7 +3570,7 @@ func (m *ListSAMLIdPSessionsResponse) Reset() { *m = ListSAMLIdPSessions func (m *ListSAMLIdPSessionsResponse) String() string { return proto.CompactTextString(m) } func (*ListSAMLIdPSessionsResponse) ProtoMessage() {} func (*ListSAMLIdPSessionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{44} + return fileDescriptor_0ffcffcda38ae159, []int{45} } func (m *ListSAMLIdPSessionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3573,7 +3636,7 @@ func (m *CreateAppSessionRequest) Reset() { *m = CreateAppSessionRequest func (m *CreateAppSessionRequest) String() string { return proto.CompactTextString(m) } func (*CreateAppSessionRequest) ProtoMessage() {} func (*CreateAppSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{45} + return fileDescriptor_0ffcffcda38ae159, []int{46} } func (m *CreateAppSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3657,7 +3720,7 @@ func (m *CreateAppSessionResponse) Reset() { *m = CreateAppSessionRespon func (m *CreateAppSessionResponse) String() string { return proto.CompactTextString(m) } func (*CreateAppSessionResponse) ProtoMessage() {} func (*CreateAppSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{46} + return fileDescriptor_0ffcffcda38ae159, []int{47} } func (m *CreateAppSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3710,7 +3773,7 @@ func (m *CreateSnowflakeSessionRequest) Reset() { *m = CreateSnowflakeSe func (m *CreateSnowflakeSessionRequest) String() string { return proto.CompactTextString(m) } func (*CreateSnowflakeSessionRequest) ProtoMessage() {} func (*CreateSnowflakeSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{47} + return fileDescriptor_0ffcffcda38ae159, []int{48} } func (m *CreateSnowflakeSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3772,7 +3835,7 @@ func (m *CreateSnowflakeSessionResponse) Reset() { *m = CreateSnowflakeS func (m *CreateSnowflakeSessionResponse) String() string { return proto.CompactTextString(m) } func (*CreateSnowflakeSessionResponse) ProtoMessage() {} func (*CreateSnowflakeSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{48} + return fileDescriptor_0ffcffcda38ae159, []int{49} } func (m *CreateSnowflakeSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3825,7 +3888,7 @@ func (m *CreateSAMLIdPSessionRequest) Reset() { *m = CreateSAMLIdPSessio func (m *CreateSAMLIdPSessionRequest) String() string { return proto.CompactTextString(m) } func (*CreateSAMLIdPSessionRequest) ProtoMessage() {} func (*CreateSAMLIdPSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{49} + return fileDescriptor_0ffcffcda38ae159, []int{50} } func (m *CreateSAMLIdPSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3887,7 +3950,7 @@ func (m *CreateSAMLIdPSessionResponse) Reset() { *m = CreateSAMLIdPSessi func (m *CreateSAMLIdPSessionResponse) String() string { return proto.CompactTextString(m) } func (*CreateSAMLIdPSessionResponse) ProtoMessage() {} func (*CreateSAMLIdPSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{50} + return fileDescriptor_0ffcffcda38ae159, []int{51} } func (m *CreateSAMLIdPSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3936,7 +3999,7 @@ func (m *GetSnowflakeSessionRequest) Reset() { *m = GetSnowflakeSessionR func (m *GetSnowflakeSessionRequest) String() string { return proto.CompactTextString(m) } func (*GetSnowflakeSessionRequest) ProtoMessage() {} func (*GetSnowflakeSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{51} + return fileDescriptor_0ffcffcda38ae159, []int{52} } func (m *GetSnowflakeSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3985,7 +4048,7 @@ func (m *GetSnowflakeSessionResponse) Reset() { *m = GetSnowflakeSession func (m *GetSnowflakeSessionResponse) String() string { return proto.CompactTextString(m) } func (*GetSnowflakeSessionResponse) ProtoMessage() {} func (*GetSnowflakeSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{52} + return fileDescriptor_0ffcffcda38ae159, []int{53} } func (m *GetSnowflakeSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4034,7 +4097,7 @@ func (m *GetSAMLIdPSessionRequest) Reset() { *m = GetSAMLIdPSessionReque func (m *GetSAMLIdPSessionRequest) String() string { return proto.CompactTextString(m) } func (*GetSAMLIdPSessionRequest) ProtoMessage() {} func (*GetSAMLIdPSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{53} + return fileDescriptor_0ffcffcda38ae159, []int{54} } func (m *GetSAMLIdPSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4083,7 +4146,7 @@ func (m *GetSAMLIdPSessionResponse) Reset() { *m = GetSAMLIdPSessionResp func (m *GetSAMLIdPSessionResponse) String() string { return proto.CompactTextString(m) } func (*GetSAMLIdPSessionResponse) ProtoMessage() {} func (*GetSAMLIdPSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{54} + return fileDescriptor_0ffcffcda38ae159, []int{55} } func (m *GetSAMLIdPSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4131,7 +4194,7 @@ func (m *DeleteAppSessionRequest) Reset() { *m = DeleteAppSessionRequest func (m *DeleteAppSessionRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAppSessionRequest) ProtoMessage() {} func (*DeleteAppSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{55} + return fileDescriptor_0ffcffcda38ae159, []int{56} } func (m *DeleteAppSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4179,7 +4242,7 @@ func (m *DeleteSnowflakeSessionRequest) Reset() { *m = DeleteSnowflakeSe func (m *DeleteSnowflakeSessionRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSnowflakeSessionRequest) ProtoMessage() {} func (*DeleteSnowflakeSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{56} + return fileDescriptor_0ffcffcda38ae159, []int{57} } func (m *DeleteSnowflakeSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4227,7 +4290,7 @@ func (m *DeleteSAMLIdPSessionRequest) Reset() { *m = DeleteSAMLIdPSessio func (m *DeleteSAMLIdPSessionRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSAMLIdPSessionRequest) ProtoMessage() {} func (*DeleteSAMLIdPSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{57} + return fileDescriptor_0ffcffcda38ae159, []int{58} } func (m *DeleteSAMLIdPSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4276,7 +4339,7 @@ func (m *DeleteUserAppSessionsRequest) Reset() { *m = DeleteUserAppSessi func (m *DeleteUserAppSessionsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteUserAppSessionsRequest) ProtoMessage() {} func (*DeleteUserAppSessionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{58} + return fileDescriptor_0ffcffcda38ae159, []int{59} } func (m *DeleteUserAppSessionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4325,7 +4388,7 @@ func (m *DeleteUserSAMLIdPSessionsRequest) Reset() { *m = DeleteUserSAML func (m *DeleteUserSAMLIdPSessionsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteUserSAMLIdPSessionsRequest) ProtoMessage() {} func (*DeleteUserSAMLIdPSessionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{59} + return fileDescriptor_0ffcffcda38ae159, []int{60} } func (m *DeleteUserSAMLIdPSessionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4374,7 +4437,7 @@ func (m *GetWebSessionResponse) Reset() { *m = GetWebSessionResponse{} } func (m *GetWebSessionResponse) String() string { return proto.CompactTextString(m) } func (*GetWebSessionResponse) ProtoMessage() {} func (*GetWebSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{60} + return fileDescriptor_0ffcffcda38ae159, []int{61} } func (m *GetWebSessionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4423,7 +4486,7 @@ func (m *GetWebSessionsResponse) Reset() { *m = GetWebSessionsResponse{} func (m *GetWebSessionsResponse) String() string { return proto.CompactTextString(m) } func (*GetWebSessionsResponse) ProtoMessage() {} func (*GetWebSessionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{61} + return fileDescriptor_0ffcffcda38ae159, []int{62} } func (m *GetWebSessionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4472,7 +4535,7 @@ func (m *GetWebTokenResponse) Reset() { *m = GetWebTokenResponse{} } func (m *GetWebTokenResponse) String() string { return proto.CompactTextString(m) } func (*GetWebTokenResponse) ProtoMessage() {} func (*GetWebTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{62} + return fileDescriptor_0ffcffcda38ae159, []int{63} } func (m *GetWebTokenResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4521,7 +4584,7 @@ func (m *GetWebTokensResponse) Reset() { *m = GetWebTokensResponse{} } func (m *GetWebTokensResponse) String() string { return proto.CompactTextString(m) } func (*GetWebTokensResponse) ProtoMessage() {} func (*GetWebTokensResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{63} + return fileDescriptor_0ffcffcda38ae159, []int{64} } func (m *GetWebTokensResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4570,7 +4633,7 @@ func (m *UpsertKubernetesServerRequest) Reset() { *m = UpsertKubernetesS func (m *UpsertKubernetesServerRequest) String() string { return proto.CompactTextString(m) } func (*UpsertKubernetesServerRequest) ProtoMessage() {} func (*UpsertKubernetesServerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{64} + return fileDescriptor_0ffcffcda38ae159, []int{65} } func (m *UpsertKubernetesServerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4621,7 +4684,7 @@ func (m *DeleteKubernetesServerRequest) Reset() { *m = DeleteKubernetesS func (m *DeleteKubernetesServerRequest) String() string { return proto.CompactTextString(m) } func (*DeleteKubernetesServerRequest) ProtoMessage() {} func (*DeleteKubernetesServerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{65} + return fileDescriptor_0ffcffcda38ae159, []int{66} } func (m *DeleteKubernetesServerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4675,7 +4738,7 @@ func (m *DeleteAllKubernetesServersRequest) Reset() { *m = DeleteAllKube func (m *DeleteAllKubernetesServersRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAllKubernetesServersRequest) ProtoMessage() {} func (*DeleteAllKubernetesServersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{66} + return fileDescriptor_0ffcffcda38ae159, []int{67} } func (m *DeleteAllKubernetesServersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4717,7 +4780,7 @@ func (m *UpsertDatabaseServerRequest) Reset() { *m = UpsertDatabaseServe func (m *UpsertDatabaseServerRequest) String() string { return proto.CompactTextString(m) } func (*UpsertDatabaseServerRequest) ProtoMessage() {} func (*UpsertDatabaseServerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{67} + return fileDescriptor_0ffcffcda38ae159, []int{68} } func (m *UpsertDatabaseServerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4770,7 +4833,7 @@ func (m *DeleteDatabaseServerRequest) Reset() { *m = DeleteDatabaseServe func (m *DeleteDatabaseServerRequest) String() string { return proto.CompactTextString(m) } func (*DeleteDatabaseServerRequest) ProtoMessage() {} func (*DeleteDatabaseServerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{68} + return fileDescriptor_0ffcffcda38ae159, []int{69} } func (m *DeleteDatabaseServerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4833,7 +4896,7 @@ func (m *DeleteAllDatabaseServersRequest) Reset() { *m = DeleteAllDataba func (m *DeleteAllDatabaseServersRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAllDatabaseServersRequest) ProtoMessage() {} func (*DeleteAllDatabaseServersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{69} + return fileDescriptor_0ffcffcda38ae159, []int{70} } func (m *DeleteAllDatabaseServersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4882,7 +4945,7 @@ func (m *DatabaseServiceV1List) Reset() { *m = DatabaseServiceV1List{} } func (m *DatabaseServiceV1List) String() string { return proto.CompactTextString(m) } func (*DatabaseServiceV1List) ProtoMessage() {} func (*DatabaseServiceV1List) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{70} + return fileDescriptor_0ffcffcda38ae159, []int{71} } func (m *DatabaseServiceV1List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4931,7 +4994,7 @@ func (m *UpsertDatabaseServiceRequest) Reset() { *m = UpsertDatabaseServ func (m *UpsertDatabaseServiceRequest) String() string { return proto.CompactTextString(m) } func (*UpsertDatabaseServiceRequest) ProtoMessage() {} func (*UpsertDatabaseServiceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{71} + return fileDescriptor_0ffcffcda38ae159, []int{72} } func (m *UpsertDatabaseServiceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4978,7 +5041,7 @@ func (m *DeleteAllDatabaseServicesRequest) Reset() { *m = DeleteAllDatab func (m *DeleteAllDatabaseServicesRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAllDatabaseServicesRequest) ProtoMessage() {} func (*DeleteAllDatabaseServicesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{72} + return fileDescriptor_0ffcffcda38ae159, []int{73} } func (m *DeleteAllDatabaseServicesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5023,7 +5086,7 @@ func (m *DatabaseCSRRequest) Reset() { *m = DatabaseCSRRequest{} } func (m *DatabaseCSRRequest) String() string { return proto.CompactTextString(m) } func (*DatabaseCSRRequest) ProtoMessage() {} func (*DatabaseCSRRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{73} + return fileDescriptor_0ffcffcda38ae159, []int{74} } func (m *DatabaseCSRRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5081,7 +5144,7 @@ func (m *DatabaseCSRResponse) Reset() { *m = DatabaseCSRResponse{} } func (m *DatabaseCSRResponse) String() string { return proto.CompactTextString(m) } func (*DatabaseCSRResponse) ProtoMessage() {} func (*DatabaseCSRResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{74} + return fileDescriptor_0ffcffcda38ae159, []int{75} } func (m *DatabaseCSRResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5151,7 +5214,7 @@ func (m *DatabaseCertRequest) Reset() { *m = DatabaseCertRequest{} } func (m *DatabaseCertRequest) String() string { return proto.CompactTextString(m) } func (*DatabaseCertRequest) ProtoMessage() {} func (*DatabaseCertRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{75} + return fileDescriptor_0ffcffcda38ae159, []int{76} } func (m *DatabaseCertRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5245,7 +5308,7 @@ func (m *DatabaseCertResponse) Reset() { *m = DatabaseCertResponse{} } func (m *DatabaseCertResponse) String() string { return proto.CompactTextString(m) } func (*DatabaseCertResponse) ProtoMessage() {} func (*DatabaseCertResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{76} + return fileDescriptor_0ffcffcda38ae159, []int{77} } func (m *DatabaseCertResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5301,7 +5364,7 @@ func (m *SnowflakeJWTRequest) Reset() { *m = SnowflakeJWTRequest{} } func (m *SnowflakeJWTRequest) String() string { return proto.CompactTextString(m) } func (*SnowflakeJWTRequest) ProtoMessage() {} func (*SnowflakeJWTRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{77} + return fileDescriptor_0ffcffcda38ae159, []int{78} } func (m *SnowflakeJWTRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5356,7 +5419,7 @@ func (m *SnowflakeJWTResponse) Reset() { *m = SnowflakeJWTResponse{} } func (m *SnowflakeJWTResponse) String() string { return proto.CompactTextString(m) } func (*SnowflakeJWTResponse) ProtoMessage() {} func (*SnowflakeJWTResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{78} + return fileDescriptor_0ffcffcda38ae159, []int{79} } func (m *SnowflakeJWTResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5405,7 +5468,7 @@ func (m *GetRoleRequest) Reset() { *m = GetRoleRequest{} } func (m *GetRoleRequest) String() string { return proto.CompactTextString(m) } func (*GetRoleRequest) ProtoMessage() {} func (*GetRoleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{79} + return fileDescriptor_0ffcffcda38ae159, []int{80} } func (m *GetRoleRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5454,7 +5517,7 @@ func (m *GetRolesResponse) Reset() { *m = GetRolesResponse{} } func (m *GetRolesResponse) String() string { return proto.CompactTextString(m) } func (*GetRolesResponse) ProtoMessage() {} func (*GetRolesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{80} + return fileDescriptor_0ffcffcda38ae159, []int{81} } func (m *GetRolesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5503,7 +5566,7 @@ func (m *DeleteRoleRequest) Reset() { *m = DeleteRoleRequest{} } func (m *DeleteRoleRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRoleRequest) ProtoMessage() {} func (*DeleteRoleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{81} + return fileDescriptor_0ffcffcda38ae159, []int{82} } func (m *DeleteRoleRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5566,7 +5629,7 @@ func (m *MFAAuthenticateChallenge) Reset() { *m = MFAAuthenticateChallen func (m *MFAAuthenticateChallenge) String() string { return proto.CompactTextString(m) } func (*MFAAuthenticateChallenge) ProtoMessage() {} func (*MFAAuthenticateChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{82} + return fileDescriptor_0ffcffcda38ae159, []int{83} } func (m *MFAAuthenticateChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5632,7 +5695,7 @@ func (m *MFAAuthenticateResponse) Reset() { *m = MFAAuthenticateResponse func (m *MFAAuthenticateResponse) String() string { return proto.CompactTextString(m) } func (*MFAAuthenticateResponse) ProtoMessage() {} func (*MFAAuthenticateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{83} + return fileDescriptor_0ffcffcda38ae159, []int{84} } func (m *MFAAuthenticateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5717,7 +5780,7 @@ func (m *TOTPChallenge) Reset() { *m = TOTPChallenge{} } func (m *TOTPChallenge) String() string { return proto.CompactTextString(m) } func (*TOTPChallenge) ProtoMessage() {} func (*TOTPChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{84} + return fileDescriptor_0ffcffcda38ae159, []int{85} } func (m *TOTPChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5758,7 +5821,7 @@ func (m *TOTPResponse) Reset() { *m = TOTPResponse{} } func (m *TOTPResponse) String() string { return proto.CompactTextString(m) } func (*TOTPResponse) ProtoMessage() {} func (*TOTPResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{85} + return fileDescriptor_0ffcffcda38ae159, []int{86} } func (m *TOTPResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5811,7 +5874,7 @@ func (m *MFARegisterChallenge) Reset() { *m = MFARegisterChallenge{} } func (m *MFARegisterChallenge) String() string { return proto.CompactTextString(m) } func (*MFARegisterChallenge) ProtoMessage() {} func (*MFARegisterChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{86} + return fileDescriptor_0ffcffcda38ae159, []int{87} } func (m *MFARegisterChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5900,7 +5963,7 @@ func (m *MFARegisterResponse) Reset() { *m = MFARegisterResponse{} } func (m *MFARegisterResponse) String() string { return proto.CompactTextString(m) } func (*MFARegisterResponse) ProtoMessage() {} func (*MFARegisterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{87} + return fileDescriptor_0ffcffcda38ae159, []int{88} } func (m *MFARegisterResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6000,7 +6063,7 @@ func (m *TOTPRegisterChallenge) Reset() { *m = TOTPRegisterChallenge{} } func (m *TOTPRegisterChallenge) String() string { return proto.CompactTextString(m) } func (*TOTPRegisterChallenge) ProtoMessage() {} func (*TOTPRegisterChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{88} + return fileDescriptor_0ffcffcda38ae159, []int{89} } func (m *TOTPRegisterChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6090,7 +6153,7 @@ func (m *TOTPRegisterResponse) Reset() { *m = TOTPRegisterResponse{} } func (m *TOTPRegisterResponse) String() string { return proto.CompactTextString(m) } func (*TOTPRegisterResponse) ProtoMessage() {} func (*TOTPRegisterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{89} + return fileDescriptor_0ffcffcda38ae159, []int{90} } func (m *TOTPRegisterResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6142,7 +6205,7 @@ func (m *AddMFADeviceRequest) Reset() { *m = AddMFADeviceRequest{} } func (m *AddMFADeviceRequest) String() string { return proto.CompactTextString(m) } func (*AddMFADeviceRequest) ProtoMessage() {} func (*AddMFADeviceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{90} + return fileDescriptor_0ffcffcda38ae159, []int{91} } func (m *AddMFADeviceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6245,7 +6308,7 @@ func (m *AddMFADeviceResponse) Reset() { *m = AddMFADeviceResponse{} } func (m *AddMFADeviceResponse) String() string { return proto.CompactTextString(m) } func (*AddMFADeviceResponse) ProtoMessage() {} func (*AddMFADeviceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{91} + return fileDescriptor_0ffcffcda38ae159, []int{92} } func (m *AddMFADeviceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6347,7 +6410,7 @@ func (m *AddMFADeviceRequestInit) Reset() { *m = AddMFADeviceRequestInit func (m *AddMFADeviceRequestInit) String() string { return proto.CompactTextString(m) } func (*AddMFADeviceRequestInit) ProtoMessage() {} func (*AddMFADeviceRequestInit) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{92} + return fileDescriptor_0ffcffcda38ae159, []int{93} } func (m *AddMFADeviceRequestInit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6409,7 +6472,7 @@ func (m *AddMFADeviceResponseAck) Reset() { *m = AddMFADeviceResponseAck func (m *AddMFADeviceResponseAck) String() string { return proto.CompactTextString(m) } func (*AddMFADeviceResponseAck) ProtoMessage() {} func (*AddMFADeviceResponseAck) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{93} + return fileDescriptor_0ffcffcda38ae159, []int{94} } func (m *AddMFADeviceResponseAck) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6461,7 +6524,7 @@ func (m *DeleteMFADeviceRequest) Reset() { *m = DeleteMFADeviceRequest{} func (m *DeleteMFADeviceRequest) String() string { return proto.CompactTextString(m) } func (*DeleteMFADeviceRequest) ProtoMessage() {} func (*DeleteMFADeviceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{94} + return fileDescriptor_0ffcffcda38ae159, []int{95} } func (m *DeleteMFADeviceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6549,7 +6612,7 @@ func (m *DeleteMFADeviceResponse) Reset() { *m = DeleteMFADeviceResponse func (m *DeleteMFADeviceResponse) String() string { return proto.CompactTextString(m) } func (*DeleteMFADeviceResponse) ProtoMessage() {} func (*DeleteMFADeviceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{95} + return fileDescriptor_0ffcffcda38ae159, []int{96} } func (m *DeleteMFADeviceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6636,7 +6699,7 @@ func (m *DeleteMFADeviceRequestInit) Reset() { *m = DeleteMFADeviceReque func (m *DeleteMFADeviceRequestInit) String() string { return proto.CompactTextString(m) } func (*DeleteMFADeviceRequestInit) ProtoMessage() {} func (*DeleteMFADeviceRequestInit) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{96} + return fileDescriptor_0ffcffcda38ae159, []int{97} } func (m *DeleteMFADeviceRequestInit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6684,7 +6747,7 @@ func (m *DeleteMFADeviceResponseAck) Reset() { *m = DeleteMFADeviceRespo func (m *DeleteMFADeviceResponseAck) String() string { return proto.CompactTextString(m) } func (*DeleteMFADeviceResponseAck) ProtoMessage() {} func (*DeleteMFADeviceResponseAck) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{97} + return fileDescriptor_0ffcffcda38ae159, []int{98} } func (m *DeleteMFADeviceResponseAck) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6738,7 +6801,7 @@ func (m *DeleteMFADeviceSyncRequest) Reset() { *m = DeleteMFADeviceSyncR func (m *DeleteMFADeviceSyncRequest) String() string { return proto.CompactTextString(m) } func (*DeleteMFADeviceSyncRequest) ProtoMessage() {} func (*DeleteMFADeviceSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{98} + return fileDescriptor_0ffcffcda38ae159, []int{99} } func (m *DeleteMFADeviceSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6803,7 +6866,7 @@ func (m *AddMFADeviceSyncRequest) Reset() { *m = AddMFADeviceSyncRequest func (m *AddMFADeviceSyncRequest) String() string { return proto.CompactTextString(m) } func (*AddMFADeviceSyncRequest) ProtoMessage() {} func (*AddMFADeviceSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{99} + return fileDescriptor_0ffcffcda38ae159, []int{100} } func (m *AddMFADeviceSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6872,7 +6935,7 @@ func (m *AddMFADeviceSyncResponse) Reset() { *m = AddMFADeviceSyncRespon func (m *AddMFADeviceSyncResponse) String() string { return proto.CompactTextString(m) } func (*AddMFADeviceSyncResponse) ProtoMessage() {} func (*AddMFADeviceSyncResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{100} + return fileDescriptor_0ffcffcda38ae159, []int{101} } func (m *AddMFADeviceSyncResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6927,7 +6990,7 @@ func (m *GetMFADevicesRequest) Reset() { *m = GetMFADevicesRequest{} } func (m *GetMFADevicesRequest) String() string { return proto.CompactTextString(m) } func (*GetMFADevicesRequest) ProtoMessage() {} func (*GetMFADevicesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{101} + return fileDescriptor_0ffcffcda38ae159, []int{102} } func (m *GetMFADevicesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6975,7 +7038,7 @@ func (m *GetMFADevicesResponse) Reset() { *m = GetMFADevicesResponse{} } func (m *GetMFADevicesResponse) String() string { return proto.CompactTextString(m) } func (*GetMFADevicesResponse) ProtoMessage() {} func (*GetMFADevicesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{102} + return fileDescriptor_0ffcffcda38ae159, []int{103} } func (m *GetMFADevicesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7026,7 +7089,7 @@ func (m *UserSingleUseCertsRequest) Reset() { *m = UserSingleUseCertsReq func (m *UserSingleUseCertsRequest) String() string { return proto.CompactTextString(m) } func (*UserSingleUseCertsRequest) ProtoMessage() {} func (*UserSingleUseCertsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{103} + return fileDescriptor_0ffcffcda38ae159, []int{104} } func (m *UserSingleUseCertsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7115,7 +7178,7 @@ func (m *UserSingleUseCertsResponse) Reset() { *m = UserSingleUseCertsRe func (m *UserSingleUseCertsResponse) String() string { return proto.CompactTextString(m) } func (*UserSingleUseCertsResponse) ProtoMessage() {} func (*UserSingleUseCertsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{104} + return fileDescriptor_0ffcffcda38ae159, []int{105} } func (m *UserSingleUseCertsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7207,7 +7270,7 @@ func (m *IsMFARequiredRequest) Reset() { *m = IsMFARequiredRequest{} } func (m *IsMFARequiredRequest) String() string { return proto.CompactTextString(m) } func (*IsMFARequiredRequest) ProtoMessage() {} func (*IsMFARequiredRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{105} + return fileDescriptor_0ffcffcda38ae159, []int{106} } func (m *IsMFARequiredRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7321,7 +7384,7 @@ func (m *StreamSessionEventsRequest) Reset() { *m = StreamSessionEventsR func (m *StreamSessionEventsRequest) String() string { return proto.CompactTextString(m) } func (*StreamSessionEventsRequest) ProtoMessage() {} func (*StreamSessionEventsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{106} + return fileDescriptor_0ffcffcda38ae159, []int{107} } func (m *StreamSessionEventsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7379,7 +7442,7 @@ func (m *NodeLogin) Reset() { *m = NodeLogin{} } func (m *NodeLogin) String() string { return proto.CompactTextString(m) } func (*NodeLogin) ProtoMessage() {} func (*NodeLogin) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{107} + return fileDescriptor_0ffcffcda38ae159, []int{108} } func (m *NodeLogin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7434,7 +7497,7 @@ func (m *IsMFARequiredResponse) Reset() { *m = IsMFARequiredResponse{} } func (m *IsMFARequiredResponse) String() string { return proto.CompactTextString(m) } func (*IsMFARequiredResponse) ProtoMessage() {} func (*IsMFARequiredResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{108} + return fileDescriptor_0ffcffcda38ae159, []int{109} } func (m *IsMFARequiredResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7485,7 +7548,7 @@ func (m *SingleUseUserCert) Reset() { *m = SingleUseUserCert{} } func (m *SingleUseUserCert) String() string { return proto.CompactTextString(m) } func (*SingleUseUserCert) ProtoMessage() {} func (*SingleUseUserCert) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{109} + return fileDescriptor_0ffcffcda38ae159, []int{110} } func (m *SingleUseUserCert) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7586,7 +7649,7 @@ func (m *GetEventsRequest) Reset() { *m = GetEventsRequest{} } func (m *GetEventsRequest) String() string { return proto.CompactTextString(m) } func (*GetEventsRequest) ProtoMessage() {} func (*GetEventsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{110} + return fileDescriptor_0ffcffcda38ae159, []int{111} } func (m *GetEventsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7687,7 +7750,7 @@ func (m *GetSessionEventsRequest) Reset() { *m = GetSessionEventsRequest func (m *GetSessionEventsRequest) String() string { return proto.CompactTextString(m) } func (*GetSessionEventsRequest) ProtoMessage() {} func (*GetSessionEventsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{111} + return fileDescriptor_0ffcffcda38ae159, []int{112} } func (m *GetSessionEventsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7767,7 +7830,7 @@ func (m *Events) Reset() { *m = Events{} } func (m *Events) String() string { return proto.CompactTextString(m) } func (*Events) ProtoMessage() {} func (*Events) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{112} + return fileDescriptor_0ffcffcda38ae159, []int{113} } func (m *Events) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7825,7 +7888,7 @@ func (m *GetLocksRequest) Reset() { *m = GetLocksRequest{} } func (m *GetLocksRequest) String() string { return proto.CompactTextString(m) } func (*GetLocksRequest) ProtoMessage() {} func (*GetLocksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{113} + return fileDescriptor_0ffcffcda38ae159, []int{114} } func (m *GetLocksRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7880,7 +7943,7 @@ func (m *GetLocksResponse) Reset() { *m = GetLocksResponse{} } func (m *GetLocksResponse) String() string { return proto.CompactTextString(m) } func (*GetLocksResponse) ProtoMessage() {} func (*GetLocksResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{114} + return fileDescriptor_0ffcffcda38ae159, []int{115} } func (m *GetLocksResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7928,7 +7991,7 @@ func (m *GetLockRequest) Reset() { *m = GetLockRequest{} } func (m *GetLockRequest) String() string { return proto.CompactTextString(m) } func (*GetLockRequest) ProtoMessage() {} func (*GetLockRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{115} + return fileDescriptor_0ffcffcda38ae159, []int{116} } func (m *GetLockRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7976,7 +8039,7 @@ func (m *DeleteLockRequest) Reset() { *m = DeleteLockRequest{} } func (m *DeleteLockRequest) String() string { return proto.CompactTextString(m) } func (*DeleteLockRequest) ProtoMessage() {} func (*DeleteLockRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{116} + return fileDescriptor_0ffcffcda38ae159, []int{117} } func (m *DeleteLockRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8026,7 +8089,7 @@ func (m *ReplaceRemoteLocksRequest) Reset() { *m = ReplaceRemoteLocksReq func (m *ReplaceRemoteLocksRequest) String() string { return proto.CompactTextString(m) } func (*ReplaceRemoteLocksRequest) ProtoMessage() {} func (*ReplaceRemoteLocksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{117} + return fileDescriptor_0ffcffcda38ae159, []int{118} } func (m *ReplaceRemoteLocksRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8082,7 +8145,7 @@ func (m *GetWindowsDesktopServicesResponse) Reset() { *m = GetWindowsDes func (m *GetWindowsDesktopServicesResponse) String() string { return proto.CompactTextString(m) } func (*GetWindowsDesktopServicesResponse) ProtoMessage() {} func (*GetWindowsDesktopServicesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{118} + return fileDescriptor_0ffcffcda38ae159, []int{119} } func (m *GetWindowsDesktopServicesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8131,7 +8194,7 @@ func (m *GetWindowsDesktopServiceRequest) Reset() { *m = GetWindowsDeskt func (m *GetWindowsDesktopServiceRequest) String() string { return proto.CompactTextString(m) } func (*GetWindowsDesktopServiceRequest) ProtoMessage() {} func (*GetWindowsDesktopServiceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{119} + return fileDescriptor_0ffcffcda38ae159, []int{120} } func (m *GetWindowsDesktopServiceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8180,7 +8243,7 @@ func (m *GetWindowsDesktopServiceResponse) Reset() { *m = GetWindowsDesk func (m *GetWindowsDesktopServiceResponse) String() string { return proto.CompactTextString(m) } func (*GetWindowsDesktopServiceResponse) ProtoMessage() {} func (*GetWindowsDesktopServiceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{120} + return fileDescriptor_0ffcffcda38ae159, []int{121} } func (m *GetWindowsDesktopServiceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8229,7 +8292,7 @@ func (m *DeleteWindowsDesktopServiceRequest) Reset() { *m = DeleteWindow func (m *DeleteWindowsDesktopServiceRequest) String() string { return proto.CompactTextString(m) } func (*DeleteWindowsDesktopServiceRequest) ProtoMessage() {} func (*DeleteWindowsDesktopServiceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{121} + return fileDescriptor_0ffcffcda38ae159, []int{122} } func (m *DeleteWindowsDesktopServiceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8278,7 +8341,7 @@ func (m *GetWindowsDesktopsResponse) Reset() { *m = GetWindowsDesktopsRe func (m *GetWindowsDesktopsResponse) String() string { return proto.CompactTextString(m) } func (*GetWindowsDesktopsResponse) ProtoMessage() {} func (*GetWindowsDesktopsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{122} + return fileDescriptor_0ffcffcda38ae159, []int{123} } func (m *GetWindowsDesktopsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8331,7 +8394,7 @@ func (m *DeleteWindowsDesktopRequest) Reset() { *m = DeleteWindowsDeskto func (m *DeleteWindowsDesktopRequest) String() string { return proto.CompactTextString(m) } func (*DeleteWindowsDesktopRequest) ProtoMessage() {} func (*DeleteWindowsDesktopRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{123} + return fileDescriptor_0ffcffcda38ae159, []int{124} } func (m *DeleteWindowsDesktopRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8392,7 +8455,7 @@ func (m *WindowsDesktopCertRequest) Reset() { *m = WindowsDesktopCertReq func (m *WindowsDesktopCertRequest) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopCertRequest) ProtoMessage() {} func (*WindowsDesktopCertRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{124} + return fileDescriptor_0ffcffcda38ae159, []int{125} } func (m *WindowsDesktopCertRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8455,7 +8518,7 @@ func (m *WindowsDesktopCertResponse) Reset() { *m = WindowsDesktopCertRe func (m *WindowsDesktopCertResponse) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopCertResponse) ProtoMessage() {} func (*WindowsDesktopCertResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{125} + return fileDescriptor_0ffcffcda38ae159, []int{126} } func (m *WindowsDesktopCertResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8506,7 +8569,7 @@ func (m *ListSAMLIdPServiceProvidersRequest) Reset() { *m = ListSAMLIdPS func (m *ListSAMLIdPServiceProvidersRequest) String() string { return proto.CompactTextString(m) } func (*ListSAMLIdPServiceProvidersRequest) ProtoMessage() {} func (*ListSAMLIdPServiceProvidersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{126} + return fileDescriptor_0ffcffcda38ae159, []int{127} } func (m *ListSAMLIdPServiceProvidersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8566,7 +8629,7 @@ func (m *ListSAMLIdPServiceProvidersResponse) Reset() { *m = ListSAMLIdP func (m *ListSAMLIdPServiceProvidersResponse) String() string { return proto.CompactTextString(m) } func (*ListSAMLIdPServiceProvidersResponse) ProtoMessage() {} func (*ListSAMLIdPServiceProvidersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{127} + return fileDescriptor_0ffcffcda38ae159, []int{128} } func (m *ListSAMLIdPServiceProvidersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8629,7 +8692,7 @@ func (m *GetSAMLIdPServiceProviderRequest) Reset() { *m = GetSAMLIdPServ func (m *GetSAMLIdPServiceProviderRequest) String() string { return proto.CompactTextString(m) } func (*GetSAMLIdPServiceProviderRequest) ProtoMessage() {} func (*GetSAMLIdPServiceProviderRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{128} + return fileDescriptor_0ffcffcda38ae159, []int{129} } func (m *GetSAMLIdPServiceProviderRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8678,7 +8741,7 @@ func (m *DeleteSAMLIdPServiceProviderRequest) Reset() { *m = DeleteSAMLI func (m *DeleteSAMLIdPServiceProviderRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSAMLIdPServiceProviderRequest) ProtoMessage() {} func (*DeleteSAMLIdPServiceProviderRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{129} + return fileDescriptor_0ffcffcda38ae159, []int{130} } func (m *DeleteSAMLIdPServiceProviderRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8729,7 +8792,7 @@ func (m *ListUserGroupsRequest) Reset() { *m = ListUserGroupsRequest{} } func (m *ListUserGroupsRequest) String() string { return proto.CompactTextString(m) } func (*ListUserGroupsRequest) ProtoMessage() {} func (*ListUserGroupsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{130} + return fileDescriptor_0ffcffcda38ae159, []int{131} } func (m *ListUserGroupsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8789,7 +8852,7 @@ func (m *ListUserGroupsResponse) Reset() { *m = ListUserGroupsResponse{} func (m *ListUserGroupsResponse) String() string { return proto.CompactTextString(m) } func (*ListUserGroupsResponse) ProtoMessage() {} func (*ListUserGroupsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{131} + return fileDescriptor_0ffcffcda38ae159, []int{132} } func (m *ListUserGroupsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8852,7 +8915,7 @@ func (m *GetUserGroupRequest) Reset() { *m = GetUserGroupRequest{} } func (m *GetUserGroupRequest) String() string { return proto.CompactTextString(m) } func (*GetUserGroupRequest) ProtoMessage() {} func (*GetUserGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{132} + return fileDescriptor_0ffcffcda38ae159, []int{133} } func (m *GetUserGroupRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8901,7 +8964,7 @@ func (m *DeleteUserGroupRequest) Reset() { *m = DeleteUserGroupRequest{} func (m *DeleteUserGroupRequest) String() string { return proto.CompactTextString(m) } func (*DeleteUserGroupRequest) ProtoMessage() {} func (*DeleteUserGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{133} + return fileDescriptor_0ffcffcda38ae159, []int{134} } func (m *DeleteUserGroupRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8950,7 +9013,7 @@ func (m *CertAuthorityRequest) Reset() { *m = CertAuthorityRequest{} } func (m *CertAuthorityRequest) String() string { return proto.CompactTextString(m) } func (*CertAuthorityRequest) ProtoMessage() {} func (*CertAuthorityRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{134} + return fileDescriptor_0ffcffcda38ae159, []int{135} } func (m *CertAuthorityRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8999,7 +9062,7 @@ func (m *CRL) Reset() { *m = CRL{} } func (m *CRL) String() string { return proto.CompactTextString(m) } func (*CRL) ProtoMessage() {} func (*CRL) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{135} + return fileDescriptor_0ffcffcda38ae159, []int{136} } func (m *CRL) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9069,7 +9132,7 @@ func (m *ChangeUserAuthenticationRequest) Reset() { *m = ChangeUserAuthe func (m *ChangeUserAuthenticationRequest) String() string { return proto.CompactTextString(m) } func (*ChangeUserAuthenticationRequest) ProtoMessage() {} func (*ChangeUserAuthenticationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{136} + return fileDescriptor_0ffcffcda38ae159, []int{137} } func (m *ChangeUserAuthenticationRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9155,7 +9218,7 @@ func (m *ChangeUserAuthenticationResponse) Reset() { *m = ChangeUserAuth func (m *ChangeUserAuthenticationResponse) String() string { return proto.CompactTextString(m) } func (*ChangeUserAuthenticationResponse) ProtoMessage() {} func (*ChangeUserAuthenticationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{137} + return fileDescriptor_0ffcffcda38ae159, []int{138} } func (m *ChangeUserAuthenticationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9228,7 +9291,7 @@ func (m *StartAccountRecoveryRequest) Reset() { *m = StartAccountRecover func (m *StartAccountRecoveryRequest) String() string { return proto.CompactTextString(m) } func (*StartAccountRecoveryRequest) ProtoMessage() {} func (*StartAccountRecoveryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{138} + return fileDescriptor_0ffcffcda38ae159, []int{139} } func (m *StartAccountRecoveryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9303,7 +9366,7 @@ func (m *VerifyAccountRecoveryRequest) Reset() { *m = VerifyAccountRecov func (m *VerifyAccountRecoveryRequest) String() string { return proto.CompactTextString(m) } func (*VerifyAccountRecoveryRequest) ProtoMessage() {} func (*VerifyAccountRecoveryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{139} + return fileDescriptor_0ffcffcda38ae159, []int{140} } func (m *VerifyAccountRecoveryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9418,7 +9481,7 @@ func (m *CompleteAccountRecoveryRequest) Reset() { *m = CompleteAccountR func (m *CompleteAccountRecoveryRequest) String() string { return proto.CompactTextString(m) } func (*CompleteAccountRecoveryRequest) ProtoMessage() {} func (*CompleteAccountRecoveryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{140} + return fileDescriptor_0ffcffcda38ae159, []int{141} } func (m *CompleteAccountRecoveryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9524,7 +9587,7 @@ func (m *RecoveryCodes) Reset() { *m = RecoveryCodes{} } func (m *RecoveryCodes) String() string { return proto.CompactTextString(m) } func (*RecoveryCodes) ProtoMessage() {} func (*RecoveryCodes) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{141} + return fileDescriptor_0ffcffcda38ae159, []int{142} } func (m *RecoveryCodes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9587,7 +9650,7 @@ func (m *CreateAccountRecoveryCodesRequest) Reset() { *m = CreateAccount func (m *CreateAccountRecoveryCodesRequest) String() string { return proto.CompactTextString(m) } func (*CreateAccountRecoveryCodesRequest) ProtoMessage() {} func (*CreateAccountRecoveryCodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{142} + return fileDescriptor_0ffcffcda38ae159, []int{143} } func (m *CreateAccountRecoveryCodesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9638,7 +9701,7 @@ func (m *GetAccountRecoveryTokenRequest) Reset() { *m = GetAccountRecove func (m *GetAccountRecoveryTokenRequest) String() string { return proto.CompactTextString(m) } func (*GetAccountRecoveryTokenRequest) ProtoMessage() {} func (*GetAccountRecoveryTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{143} + return fileDescriptor_0ffcffcda38ae159, []int{144} } func (m *GetAccountRecoveryTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9686,7 +9749,7 @@ func (m *GetAccountRecoveryCodesRequest) Reset() { *m = GetAccountRecove func (m *GetAccountRecoveryCodesRequest) String() string { return proto.CompactTextString(m) } func (*GetAccountRecoveryCodesRequest) ProtoMessage() {} func (*GetAccountRecoveryCodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{144} + return fileDescriptor_0ffcffcda38ae159, []int{145} } func (m *GetAccountRecoveryCodesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9728,7 +9791,7 @@ func (m *UserCredentials) Reset() { *m = UserCredentials{} } func (m *UserCredentials) String() string { return proto.CompactTextString(m) } func (*UserCredentials) ProtoMessage() {} func (*UserCredentials) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{145} + return fileDescriptor_0ffcffcda38ae159, []int{146} } func (m *UserCredentials) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9782,7 +9845,7 @@ func (m *ContextUser) Reset() { *m = ContextUser{} } func (m *ContextUser) String() string { return proto.CompactTextString(m) } func (*ContextUser) ProtoMessage() {} func (*ContextUser) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{146} + return fileDescriptor_0ffcffcda38ae159, []int{147} } func (m *ContextUser) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9822,7 +9885,7 @@ func (m *Passwordless) Reset() { *m = Passwordless{} } func (m *Passwordless) String() string { return proto.CompactTextString(m) } func (*Passwordless) ProtoMessage() {} func (*Passwordless) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{147} + return fileDescriptor_0ffcffcda38ae159, []int{148} } func (m *Passwordless) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9872,7 +9935,7 @@ func (m *CreateAuthenticateChallengeRequest) Reset() { *m = CreateAuthen func (m *CreateAuthenticateChallengeRequest) String() string { return proto.CompactTextString(m) } func (*CreateAuthenticateChallengeRequest) ProtoMessage() {} func (*CreateAuthenticateChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{148} + return fileDescriptor_0ffcffcda38ae159, []int{149} } func (m *CreateAuthenticateChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9992,7 +10055,7 @@ func (m *CreatePrivilegeTokenRequest) Reset() { *m = CreatePrivilegeToke func (m *CreatePrivilegeTokenRequest) String() string { return proto.CompactTextString(m) } func (*CreatePrivilegeTokenRequest) ProtoMessage() {} func (*CreatePrivilegeTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{149} + return fileDescriptor_0ffcffcda38ae159, []int{150} } func (m *CreatePrivilegeTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10048,7 +10111,7 @@ func (m *CreateRegisterChallengeRequest) Reset() { *m = CreateRegisterCh func (m *CreateRegisterChallengeRequest) String() string { return proto.CompactTextString(m) } func (*CreateRegisterChallengeRequest) ProtoMessage() {} func (*CreateRegisterChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{150} + return fileDescriptor_0ffcffcda38ae159, []int{151} } func (m *CreateRegisterChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10123,7 +10186,7 @@ func (m *PaginatedResource) Reset() { *m = PaginatedResource{} } func (m *PaginatedResource) String() string { return proto.CompactTextString(m) } func (*PaginatedResource) ProtoMessage() {} func (*PaginatedResource) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{151} + return fileDescriptor_0ffcffcda38ae159, []int{152} } func (m *PaginatedResource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10329,7 +10392,7 @@ func (m *ListUnifiedResourcesRequest) Reset() { *m = ListUnifiedResource func (m *ListUnifiedResourcesRequest) String() string { return proto.CompactTextString(m) } func (*ListUnifiedResourcesRequest) ProtoMessage() {} func (*ListUnifiedResourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{152} + return fileDescriptor_0ffcffcda38ae159, []int{153} } func (m *ListUnifiedResourcesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10445,7 +10508,7 @@ func (m *ListUnifiedResourcesResponse) Reset() { *m = ListUnifiedResourc func (m *ListUnifiedResourcesResponse) String() string { return proto.CompactTextString(m) } func (*ListUnifiedResourcesResponse) ProtoMessage() {} func (*ListUnifiedResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{153} + return fileDescriptor_0ffcffcda38ae159, []int{154} } func (m *ListUnifiedResourcesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10538,7 +10601,7 @@ func (m *ListResourcesRequest) Reset() { *m = ListResourcesRequest{} } func (m *ListResourcesRequest) String() string { return proto.CompactTextString(m) } func (*ListResourcesRequest) ProtoMessage() {} func (*ListResourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{154} + return fileDescriptor_0ffcffcda38ae159, []int{155} } func (m *ListResourcesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10670,7 +10733,7 @@ func (m *ListResourcesResponse) Reset() { *m = ListResourcesResponse{} } func (m *ListResourcesResponse) String() string { return proto.CompactTextString(m) } func (*ListResourcesResponse) ProtoMessage() {} func (*ListResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{155} + return fileDescriptor_0ffcffcda38ae159, []int{156} } func (m *ListResourcesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10735,7 +10798,7 @@ func (m *CreateSessionTrackerRequest) Reset() { *m = CreateSessionTracke func (m *CreateSessionTrackerRequest) String() string { return proto.CompactTextString(m) } func (*CreateSessionTrackerRequest) ProtoMessage() {} func (*CreateSessionTrackerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{156} + return fileDescriptor_0ffcffcda38ae159, []int{157} } func (m *CreateSessionTrackerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10784,7 +10847,7 @@ func (m *GetSessionTrackerRequest) Reset() { *m = GetSessionTrackerReque func (m *GetSessionTrackerRequest) String() string { return proto.CompactTextString(m) } func (*GetSessionTrackerRequest) ProtoMessage() {} func (*GetSessionTrackerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{157} + return fileDescriptor_0ffcffcda38ae159, []int{158} } func (m *GetSessionTrackerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10833,7 +10896,7 @@ func (m *RemoveSessionTrackerRequest) Reset() { *m = RemoveSessionTracke func (m *RemoveSessionTrackerRequest) String() string { return proto.CompactTextString(m) } func (*RemoveSessionTrackerRequest) ProtoMessage() {} func (*RemoveSessionTrackerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{158} + return fileDescriptor_0ffcffcda38ae159, []int{159} } func (m *RemoveSessionTrackerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10881,7 +10944,7 @@ func (m *SessionTrackerUpdateState) Reset() { *m = SessionTrackerUpdateS func (m *SessionTrackerUpdateState) String() string { return proto.CompactTextString(m) } func (*SessionTrackerUpdateState) ProtoMessage() {} func (*SessionTrackerUpdateState) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{159} + return fileDescriptor_0ffcffcda38ae159, []int{160} } func (m *SessionTrackerUpdateState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10929,7 +10992,7 @@ func (m *SessionTrackerAddParticipant) Reset() { *m = SessionTrackerAddP func (m *SessionTrackerAddParticipant) String() string { return proto.CompactTextString(m) } func (*SessionTrackerAddParticipant) ProtoMessage() {} func (*SessionTrackerAddParticipant) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{160} + return fileDescriptor_0ffcffcda38ae159, []int{161} } func (m *SessionTrackerAddParticipant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10977,7 +11040,7 @@ func (m *SessionTrackerRemoveParticipant) Reset() { *m = SessionTrackerR func (m *SessionTrackerRemoveParticipant) String() string { return proto.CompactTextString(m) } func (*SessionTrackerRemoveParticipant) ProtoMessage() {} func (*SessionTrackerRemoveParticipant) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{161} + return fileDescriptor_0ffcffcda38ae159, []int{162} } func (m *SessionTrackerRemoveParticipant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11026,7 +11089,7 @@ func (m *SessionTrackerUpdateExpiry) Reset() { *m = SessionTrackerUpdate func (m *SessionTrackerUpdateExpiry) String() string { return proto.CompactTextString(m) } func (*SessionTrackerUpdateExpiry) ProtoMessage() {} func (*SessionTrackerUpdateExpiry) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{162} + return fileDescriptor_0ffcffcda38ae159, []int{163} } func (m *SessionTrackerUpdateExpiry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11081,7 +11144,7 @@ func (m *UpdateSessionTrackerRequest) Reset() { *m = UpdateSessionTracke func (m *UpdateSessionTrackerRequest) String() string { return proto.CompactTextString(m) } func (*UpdateSessionTrackerRequest) ProtoMessage() {} func (*UpdateSessionTrackerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{163} + return fileDescriptor_0ffcffcda38ae159, []int{164} } func (m *UpdateSessionTrackerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11199,7 +11262,7 @@ func (m *PresenceMFAChallengeRequest) Reset() { *m = PresenceMFAChalleng func (m *PresenceMFAChallengeRequest) String() string { return proto.CompactTextString(m) } func (*PresenceMFAChallengeRequest) ProtoMessage() {} func (*PresenceMFAChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{164} + return fileDescriptor_0ffcffcda38ae159, []int{165} } func (m *PresenceMFAChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11250,7 +11313,7 @@ func (m *PresenceMFAChallengeSend) Reset() { *m = PresenceMFAChallengeSe func (m *PresenceMFAChallengeSend) String() string { return proto.CompactTextString(m) } func (*PresenceMFAChallengeSend) ProtoMessage() {} func (*PresenceMFAChallengeSend) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{165} + return fileDescriptor_0ffcffcda38ae159, []int{166} } func (m *PresenceMFAChallengeSend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11337,7 +11400,7 @@ func (m *GetDomainNameResponse) Reset() { *m = GetDomainNameResponse{} } func (m *GetDomainNameResponse) String() string { return proto.CompactTextString(m) } func (*GetDomainNameResponse) ProtoMessage() {} func (*GetDomainNameResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{166} + return fileDescriptor_0ffcffcda38ae159, []int{167} } func (m *GetDomainNameResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11386,7 +11449,7 @@ func (m *GetClusterCACertResponse) Reset() { *m = GetClusterCACertRespon func (m *GetClusterCACertResponse) String() string { return proto.CompactTextString(m) } func (*GetClusterCACertResponse) ProtoMessage() {} func (*GetClusterCACertResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{167} + return fileDescriptor_0ffcffcda38ae159, []int{168} } func (m *GetClusterCACertResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11434,7 +11497,7 @@ func (m *GetLicenseResponse) Reset() { *m = GetLicenseResponse{} } func (m *GetLicenseResponse) String() string { return proto.CompactTextString(m) } func (*GetLicenseResponse) ProtoMessage() {} func (*GetLicenseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{168} + return fileDescriptor_0ffcffcda38ae159, []int{169} } func (m *GetLicenseResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11482,7 +11545,7 @@ func (m *ListReleasesResponse) Reset() { *m = ListReleasesResponse{} } func (m *ListReleasesResponse) String() string { return proto.CompactTextString(m) } func (*ListReleasesResponse) ProtoMessage() {} func (*ListReleasesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{169} + return fileDescriptor_0ffcffcda38ae159, []int{170} } func (m *ListReleasesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11531,7 +11594,7 @@ func (m *GetOIDCAuthRequestRequest) Reset() { *m = GetOIDCAuthRequestReq func (m *GetOIDCAuthRequestRequest) String() string { return proto.CompactTextString(m) } func (*GetOIDCAuthRequestRequest) ProtoMessage() {} func (*GetOIDCAuthRequestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{170} + return fileDescriptor_0ffcffcda38ae159, []int{171} } func (m *GetOIDCAuthRequestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11580,7 +11643,7 @@ func (m *GetSAMLAuthRequestRequest) Reset() { *m = GetSAMLAuthRequestReq func (m *GetSAMLAuthRequestRequest) String() string { return proto.CompactTextString(m) } func (*GetSAMLAuthRequestRequest) ProtoMessage() {} func (*GetSAMLAuthRequestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{171} + return fileDescriptor_0ffcffcda38ae159, []int{172} } func (m *GetSAMLAuthRequestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11629,7 +11692,7 @@ func (m *GetGithubAuthRequestRequest) Reset() { *m = GetGithubAuthReques func (m *GetGithubAuthRequestRequest) String() string { return proto.CompactTextString(m) } func (*GetGithubAuthRequestRequest) ProtoMessage() {} func (*GetGithubAuthRequestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{172} + return fileDescriptor_0ffcffcda38ae159, []int{173} } func (m *GetGithubAuthRequestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11680,7 +11743,7 @@ func (m *GetSSODiagnosticInfoRequest) Reset() { *m = GetSSODiagnosticInf func (m *GetSSODiagnosticInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetSSODiagnosticInfoRequest) ProtoMessage() {} func (*GetSSODiagnosticInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{173} + return fileDescriptor_0ffcffcda38ae159, []int{174} } func (m *GetSSODiagnosticInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11741,7 +11804,7 @@ func (m *UpstreamInventoryOneOf) Reset() { *m = UpstreamInventoryOneOf{} func (m *UpstreamInventoryOneOf) String() string { return proto.CompactTextString(m) } func (*UpstreamInventoryOneOf) ProtoMessage() {} func (*UpstreamInventoryOneOf) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{174} + return fileDescriptor_0ffcffcda38ae159, []int{175} } func (m *UpstreamInventoryOneOf) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11856,7 +11919,7 @@ func (m *DownstreamInventoryOneOf) Reset() { *m = DownstreamInventoryOne func (m *DownstreamInventoryOneOf) String() string { return proto.CompactTextString(m) } func (*DownstreamInventoryOneOf) ProtoMessage() {} func (*DownstreamInventoryOneOf) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{175} + return fileDescriptor_0ffcffcda38ae159, []int{176} } func (m *DownstreamInventoryOneOf) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11955,7 +12018,7 @@ func (m *DownstreamInventoryPing) Reset() { *m = DownstreamInventoryPing func (m *DownstreamInventoryPing) String() string { return proto.CompactTextString(m) } func (*DownstreamInventoryPing) ProtoMessage() {} func (*DownstreamInventoryPing) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{176} + return fileDescriptor_0ffcffcda38ae159, []int{177} } func (m *DownstreamInventoryPing) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12004,7 +12067,7 @@ func (m *UpstreamInventoryPong) Reset() { *m = UpstreamInventoryPong{} } func (m *UpstreamInventoryPong) String() string { return proto.CompactTextString(m) } func (*UpstreamInventoryPong) ProtoMessage() {} func (*UpstreamInventoryPong) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{177} + return fileDescriptor_0ffcffcda38ae159, []int{178} } func (m *UpstreamInventoryPong) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12069,7 +12132,7 @@ func (m *UpstreamInventoryHello) Reset() { *m = UpstreamInventoryHello{} func (m *UpstreamInventoryHello) String() string { return proto.CompactTextString(m) } func (*UpstreamInventoryHello) ProtoMessage() {} func (*UpstreamInventoryHello) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{178} + return fileDescriptor_0ffcffcda38ae159, []int{179} } func (m *UpstreamInventoryHello) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12162,7 +12225,7 @@ func (m *UpstreamInventoryAgentMetadata) Reset() { *m = UpstreamInventor func (m *UpstreamInventoryAgentMetadata) String() string { return proto.CompactTextString(m) } func (*UpstreamInventoryAgentMetadata) ProtoMessage() {} func (*UpstreamInventoryAgentMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{179} + return fileDescriptor_0ffcffcda38ae159, []int{180} } func (m *UpstreamInventoryAgentMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12262,7 +12325,7 @@ func (m *DownstreamInventoryHello) Reset() { *m = DownstreamInventoryHel func (m *DownstreamInventoryHello) String() string { return proto.CompactTextString(m) } func (*DownstreamInventoryHello) ProtoMessage() {} func (*DownstreamInventoryHello) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{180} + return fileDescriptor_0ffcffcda38ae159, []int{181} } func (m *DownstreamInventoryHello) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12323,7 +12386,7 @@ func (m *InventoryUpdateLabelsRequest) Reset() { *m = InventoryUpdateLab func (m *InventoryUpdateLabelsRequest) String() string { return proto.CompactTextString(m) } func (*InventoryUpdateLabelsRequest) ProtoMessage() {} func (*InventoryUpdateLabelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{181} + return fileDescriptor_0ffcffcda38ae159, []int{182} } func (m *InventoryUpdateLabelsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12389,7 +12452,7 @@ func (m *DownstreamInventoryUpdateLabels) Reset() { *m = DownstreamInven func (m *DownstreamInventoryUpdateLabels) String() string { return proto.CompactTextString(m) } func (*DownstreamInventoryUpdateLabels) ProtoMessage() {} func (*DownstreamInventoryUpdateLabels) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{182} + return fileDescriptor_0ffcffcda38ae159, []int{183} } func (m *DownstreamInventoryUpdateLabels) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12448,7 +12511,7 @@ func (m *InventoryHeartbeat) Reset() { *m = InventoryHeartbeat{} } func (m *InventoryHeartbeat) String() string { return proto.CompactTextString(m) } func (*InventoryHeartbeat) ProtoMessage() {} func (*InventoryHeartbeat) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{183} + return fileDescriptor_0ffcffcda38ae159, []int{184} } func (m *InventoryHeartbeat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12498,7 +12561,7 @@ func (m *InventoryStatusRequest) Reset() { *m = InventoryStatusRequest{} func (m *InventoryStatusRequest) String() string { return proto.CompactTextString(m) } func (*InventoryStatusRequest) ProtoMessage() {} func (*InventoryStatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{184} + return fileDescriptor_0ffcffcda38ae159, []int{185} } func (m *InventoryStatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12556,7 +12619,7 @@ func (m *InventoryStatusSummary) Reset() { *m = InventoryStatusSummary{} func (m *InventoryStatusSummary) String() string { return proto.CompactTextString(m) } func (*InventoryStatusSummary) ProtoMessage() {} func (*InventoryStatusSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{185} + return fileDescriptor_0ffcffcda38ae159, []int{186} } func (m *InventoryStatusSummary) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12633,7 +12696,7 @@ func (m *InventoryConnectedServiceCountsRequest) Reset() { func (m *InventoryConnectedServiceCountsRequest) String() string { return proto.CompactTextString(m) } func (*InventoryConnectedServiceCountsRequest) ProtoMessage() {} func (*InventoryConnectedServiceCountsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{186} + return fileDescriptor_0ffcffcda38ae159, []int{187} } func (m *InventoryConnectedServiceCountsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12675,7 +12738,7 @@ func (m *InventoryConnectedServiceCounts) Reset() { *m = InventoryConnec func (m *InventoryConnectedServiceCounts) String() string { return proto.CompactTextString(m) } func (*InventoryConnectedServiceCounts) ProtoMessage() {} func (*InventoryConnectedServiceCounts) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{187} + return fileDescriptor_0ffcffcda38ae159, []int{188} } func (m *InventoryConnectedServiceCounts) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12729,7 +12792,7 @@ func (m *InventoryPingRequest) Reset() { *m = InventoryPingRequest{} } func (m *InventoryPingRequest) String() string { return proto.CompactTextString(m) } func (*InventoryPingRequest) ProtoMessage() {} func (*InventoryPingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{188} + return fileDescriptor_0ffcffcda38ae159, []int{189} } func (m *InventoryPingRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12785,7 +12848,7 @@ func (m *InventoryPingResponse) Reset() { *m = InventoryPingResponse{} } func (m *InventoryPingResponse) String() string { return proto.CompactTextString(m) } func (*InventoryPingResponse) ProtoMessage() {} func (*InventoryPingResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{189} + return fileDescriptor_0ffcffcda38ae159, []int{190} } func (m *InventoryPingResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12834,7 +12897,7 @@ func (m *GetClusterAlertsResponse) Reset() { *m = GetClusterAlertsRespon func (m *GetClusterAlertsResponse) String() string { return proto.CompactTextString(m) } func (*GetClusterAlertsResponse) ProtoMessage() {} func (*GetClusterAlertsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{190} + return fileDescriptor_0ffcffcda38ae159, []int{191} } func (m *GetClusterAlertsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12881,7 +12944,7 @@ func (m *GetAlertAcksRequest) Reset() { *m = GetAlertAcksRequest{} } func (m *GetAlertAcksRequest) String() string { return proto.CompactTextString(m) } func (*GetAlertAcksRequest) ProtoMessage() {} func (*GetAlertAcksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{191} + return fileDescriptor_0ffcffcda38ae159, []int{192} } func (m *GetAlertAcksRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12923,7 +12986,7 @@ func (m *GetAlertAcksResponse) Reset() { *m = GetAlertAcksResponse{} } func (m *GetAlertAcksResponse) String() string { return proto.CompactTextString(m) } func (*GetAlertAcksResponse) ProtoMessage() {} func (*GetAlertAcksResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{192} + return fileDescriptor_0ffcffcda38ae159, []int{193} } func (m *GetAlertAcksResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -12973,7 +13036,7 @@ func (m *ClearAlertAcksRequest) Reset() { *m = ClearAlertAcksRequest{} } func (m *ClearAlertAcksRequest) String() string { return proto.CompactTextString(m) } func (*ClearAlertAcksRequest) ProtoMessage() {} func (*ClearAlertAcksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{193} + return fileDescriptor_0ffcffcda38ae159, []int{194} } func (m *ClearAlertAcksRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13022,7 +13085,7 @@ func (m *UpsertClusterAlertRequest) Reset() { *m = UpsertClusterAlertReq func (m *UpsertClusterAlertRequest) String() string { return proto.CompactTextString(m) } func (*UpsertClusterAlertRequest) ProtoMessage() {} func (*UpsertClusterAlertRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{194} + return fileDescriptor_0ffcffcda38ae159, []int{195} } func (m *UpsertClusterAlertRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13071,7 +13134,7 @@ func (m *GetConnectionDiagnosticRequest) Reset() { *m = GetConnectionDia func (m *GetConnectionDiagnosticRequest) String() string { return proto.CompactTextString(m) } func (*GetConnectionDiagnosticRequest) ProtoMessage() {} func (*GetConnectionDiagnosticRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{195} + return fileDescriptor_0ffcffcda38ae159, []int{196} } func (m *GetConnectionDiagnosticRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13122,7 +13185,7 @@ func (m *AppendDiagnosticTraceRequest) Reset() { *m = AppendDiagnosticTr func (m *AppendDiagnosticTraceRequest) String() string { return proto.CompactTextString(m) } func (*AppendDiagnosticTraceRequest) ProtoMessage() {} func (*AppendDiagnosticTraceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{196} + return fileDescriptor_0ffcffcda38ae159, []int{197} } func (m *AppendDiagnosticTraceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13177,7 +13240,7 @@ func (m *SubmitUsageEventRequest) Reset() { *m = SubmitUsageEventRequest func (m *SubmitUsageEventRequest) String() string { return proto.CompactTextString(m) } func (*SubmitUsageEventRequest) ProtoMessage() {} func (*SubmitUsageEventRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{197} + return fileDescriptor_0ffcffcda38ae159, []int{198} } func (m *SubmitUsageEventRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13224,7 +13287,7 @@ func (m *GetLicenseRequest) Reset() { *m = GetLicenseRequest{} } func (m *GetLicenseRequest) String() string { return proto.CompactTextString(m) } func (*GetLicenseRequest) ProtoMessage() {} func (*GetLicenseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{198} + return fileDescriptor_0ffcffcda38ae159, []int{199} } func (m *GetLicenseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13264,7 +13327,7 @@ func (m *ListReleasesRequest) Reset() { *m = ListReleasesRequest{} } func (m *ListReleasesRequest) String() string { return proto.CompactTextString(m) } func (*ListReleasesRequest) ProtoMessage() {} func (*ListReleasesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{199} + return fileDescriptor_0ffcffcda38ae159, []int{200} } func (m *ListReleasesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13308,7 +13371,7 @@ func (m *CreateTokenV2Request) Reset() { *m = CreateTokenV2Request{} } func (m *CreateTokenV2Request) String() string { return proto.CompactTextString(m) } func (*CreateTokenV2Request) ProtoMessage() {} func (*CreateTokenV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{200} + return fileDescriptor_0ffcffcda38ae159, []int{201} } func (m *CreateTokenV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13385,7 +13448,7 @@ func (m *UpsertTokenV2Request) Reset() { *m = UpsertTokenV2Request{} } func (m *UpsertTokenV2Request) String() string { return proto.CompactTextString(m) } func (*UpsertTokenV2Request) ProtoMessage() {} func (*UpsertTokenV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{201} + return fileDescriptor_0ffcffcda38ae159, []int{202} } func (m *UpsertTokenV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13460,7 +13523,7 @@ func (m *GetHeadlessAuthenticationRequest) Reset() { *m = GetHeadlessAut func (m *GetHeadlessAuthenticationRequest) String() string { return proto.CompactTextString(m) } func (*GetHeadlessAuthenticationRequest) ProtoMessage() {} func (*GetHeadlessAuthenticationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{202} + return fileDescriptor_0ffcffcda38ae159, []int{203} } func (m *GetHeadlessAuthenticationRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13518,7 +13581,7 @@ func (m *UpdateHeadlessAuthenticationStateRequest) Reset() { func (m *UpdateHeadlessAuthenticationStateRequest) String() string { return proto.CompactTextString(m) } func (*UpdateHeadlessAuthenticationStateRequest) ProtoMessage() {} func (*UpdateHeadlessAuthenticationStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{203} + return fileDescriptor_0ffcffcda38ae159, []int{204} } func (m *UpdateHeadlessAuthenticationStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13584,7 +13647,7 @@ func (m *ExportUpgradeWindowsRequest) Reset() { *m = ExportUpgradeWindow func (m *ExportUpgradeWindowsRequest) String() string { return proto.CompactTextString(m) } func (*ExportUpgradeWindowsRequest) ProtoMessage() {} func (*ExportUpgradeWindowsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{204} + return fileDescriptor_0ffcffcda38ae159, []int{205} } func (m *ExportUpgradeWindowsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13650,7 +13713,7 @@ func (m *ExportUpgradeWindowsResponse) Reset() { *m = ExportUpgradeWindo func (m *ExportUpgradeWindowsResponse) String() string { return proto.CompactTextString(m) } func (*ExportUpgradeWindowsResponse) ProtoMessage() {} func (*ExportUpgradeWindowsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_0ffcffcda38ae159, []int{205} + return fileDescriptor_0ffcffcda38ae159, []int{206} } func (m *ExportUpgradeWindowsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13735,6 +13798,7 @@ func init() { proto.RegisterType((*PingResponse)(nil), "proto.PingResponse") proto.RegisterType((*Features)(nil), "proto.Features") proto.RegisterType((*DeviceTrustFeature)(nil), "proto.DeviceTrustFeature") + proto.RegisterType((*AccessRequestsFeature)(nil), "proto.AccessRequestsFeature") proto.RegisterType((*DeleteUserRequest)(nil), "proto.DeleteUserRequest") proto.RegisterType((*Semaphores)(nil), "proto.Semaphores") proto.RegisterType((*AuditStreamRequest)(nil), "proto.AuditStreamRequest") @@ -13932,801 +13996,804 @@ func init() { } var fileDescriptor_0ffcffcda38ae159 = []byte{ - // 12705 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7d, 0x5b, 0x6c, 0x1c, 0x4b, - 0x76, 0x18, 0x67, 0xf8, 0x3e, 0x7c, 0x8d, 0x8a, 0xa4, 0x48, 0x8d, 0x28, 0x8d, 0xd4, 0xda, 0xab, - 0xab, 0xab, 0xdd, 0xab, 0x07, 0x75, 0xef, 0xdd, 0xfb, 0xda, 0x7b, 0x77, 0x86, 0xa4, 0x44, 0x4a, - 0x14, 0xc9, 0xdb, 0xc3, 0xc7, 0xdd, 0xdd, 0xeb, 0x9d, 0x6d, 0xce, 0x94, 0xc8, 0x8e, 0x86, 0xdd, - 0xe3, 0xee, 0xa6, 0x74, 0xb5, 0x86, 0x93, 0x38, 0x4e, 0xfc, 0x11, 0x20, 0xb1, 0x03, 0xd8, 0x81, - 0x0d, 0x7f, 0x38, 0x41, 0xf2, 0x93, 0x00, 0x01, 0xf2, 0x63, 0xf8, 0x23, 0xfe, 0x09, 0x12, 0x20, - 0x9b, 0x00, 0x06, 0x02, 0xd8, 0x46, 0x80, 0x7c, 0xd0, 0xf1, 0x7e, 0x12, 0x49, 0x80, 0x24, 0x48, - 0x3e, 0x16, 0x08, 0x10, 0xd4, 0xb3, 0xab, 0xba, 0xab, 0x7b, 0x86, 0x12, 0x77, 0x9d, 0x1f, 0x89, - 0x53, 0x75, 0xce, 0xa9, 0xaa, 0x53, 0x55, 0xa7, 0xcf, 0x39, 0x75, 0xaa, 0x0e, 0xdc, 0x89, 0x70, - 0x1b, 0x77, 0xfc, 0x20, 0xba, 0xdb, 0xc6, 0x07, 0x4e, 0xf3, 0xd5, 0xdd, 0x66, 0xdb, 0xc5, 0x5e, - 0x74, 0xb7, 0x13, 0xf8, 0x91, 0x7f, 0xd7, 0x39, 0x8e, 0x0e, 0x43, 0x1c, 0xbc, 0x70, 0x9b, 0xf8, - 0x0e, 0x2d, 0x41, 0x83, 0xf4, 0xbf, 0xf2, 0xcc, 0x81, 0x7f, 0xe0, 0x33, 0x18, 0xf2, 0x17, 0xab, - 0x2c, 0x5f, 0x3e, 0xf0, 0xfd, 0x83, 0x36, 0x66, 0xc8, 0xfb, 0xc7, 0xcf, 0xee, 0xe2, 0xa3, 0x4e, - 0xf4, 0x8a, 0x57, 0x56, 0x92, 0x95, 0x91, 0x7b, 0x84, 0xc3, 0xc8, 0x39, 0xea, 0x70, 0x80, 0x77, - 0x64, 0x57, 0x9c, 0x28, 0x22, 0x35, 0x91, 0xeb, 0x7b, 0x77, 0x5f, 0xdc, 0x57, 0x7f, 0x72, 0xd0, - 0x5b, 0xb9, 0xbd, 0x6e, 0xe2, 0x20, 0x0a, 0x7b, 0x82, 0xc4, 0x2f, 0xb0, 0x17, 0xa5, 0x9a, 0xe7, - 0x90, 0xd1, 0xab, 0x0e, 0x0e, 0x19, 0x88, 0xf8, 0x8f, 0x83, 0x5e, 0x37, 0x83, 0xd2, 0x7f, 0x39, - 0xc8, 0xbb, 0x66, 0x90, 0x97, 0x78, 0x9f, 0xf0, 0xd4, 0x93, 0x7f, 0x74, 0x01, 0x0f, 0x9c, 0x4e, - 0x07, 0x07, 0xf1, 0x1f, 0xa9, 0xbe, 0x1e, 0x87, 0xce, 0x01, 0xe6, 0x7d, 0x7c, 0x71, 0x5f, 0xfd, - 0xc9, 0x40, 0xad, 0x3f, 0x28, 0xc0, 0xe0, 0x9e, 0x13, 0x35, 0x0f, 0xd1, 0xe7, 0x30, 0xf8, 0xc4, - 0xf5, 0x5a, 0xe1, 0x7c, 0xe1, 0x5a, 0xff, 0xad, 0xb1, 0xc5, 0xd2, 0x1d, 0xd6, 0x5f, 0x5a, 0x49, - 0x2a, 0x6a, 0x73, 0x3f, 0x39, 0xa9, 0xf4, 0x9d, 0x9e, 0x54, 0xa6, 0x9e, 0x13, 0xb0, 0x6f, 0xf9, - 0x47, 0x6e, 0x44, 0x27, 0xd0, 0x66, 0x78, 0x68, 0x07, 0xa6, 0xab, 0xed, 0xb6, 0xff, 0x72, 0xcb, - 0x09, 0x22, 0xd7, 0x69, 0xd7, 0x8f, 0x9b, 0x4d, 0x1c, 0x86, 0xf3, 0xc5, 0x6b, 0x85, 0x5b, 0x23, - 0xb5, 0x1b, 0xa7, 0x27, 0x95, 0x8a, 0x43, 0xaa, 0x1b, 0x1d, 0x56, 0xdf, 0x08, 0x19, 0x80, 0x42, - 0xc8, 0x84, 0x6f, 0xfd, 0xd7, 0x41, 0x28, 0xad, 0xfa, 0x61, 0xb4, 0x44, 0xa6, 0xcd, 0xc6, 0xbf, - 0x7c, 0x8c, 0xc3, 0x08, 0xdd, 0x80, 0x21, 0x52, 0xb6, 0xb6, 0x3c, 0x5f, 0xb8, 0x56, 0xb8, 0x35, - 0x5a, 0x1b, 0x3b, 0x3d, 0xa9, 0x0c, 0x1f, 0xfa, 0x61, 0xd4, 0x70, 0x5b, 0x36, 0xaf, 0x42, 0xef, - 0xc0, 0xc8, 0x86, 0xdf, 0xc2, 0x1b, 0xce, 0x11, 0xa6, 0xbd, 0x18, 0xad, 0x4d, 0x9c, 0x9e, 0x54, - 0x46, 0x3d, 0xbf, 0x85, 0x1b, 0x9e, 0x73, 0x84, 0x6d, 0x59, 0x8d, 0x76, 0x61, 0xc0, 0xf6, 0xdb, - 0x78, 0xbe, 0x9f, 0x82, 0xd5, 0x4e, 0x4f, 0x2a, 0x03, 0x81, 0xdf, 0xc6, 0x3f, 0x3b, 0xa9, 0x7c, - 0x70, 0xe0, 0x46, 0x87, 0xc7, 0xfb, 0x77, 0x9a, 0xfe, 0xd1, 0xdd, 0x83, 0xc0, 0x79, 0xe1, 0xb2, - 0x95, 0xe6, 0xb4, 0xef, 0xc6, 0xeb, 0xb1, 0xe3, 0xf2, 0xc9, 0xad, 0xbf, 0x0a, 0x23, 0x7c, 0x44, - 0x28, 0xd9, 0x94, 0x1e, 0xda, 0x83, 0x99, 0x6a, 0xab, 0xe5, 0x32, 0x8c, 0xad, 0xc0, 0xf5, 0x9a, - 0x6e, 0xc7, 0x69, 0x87, 0xf3, 0x03, 0xd7, 0xfa, 0x6f, 0x8d, 0x72, 0xa6, 0xc8, 0xfa, 0x46, 0x47, - 0x02, 0x28, 0x4c, 0x31, 0x12, 0x40, 0x0f, 0x60, 0x64, 0x79, 0xa3, 0x4e, 0xfa, 0x1e, 0xce, 0x0f, - 0x52, 0x62, 0x73, 0xa7, 0x27, 0x95, 0xe9, 0x96, 0x17, 0xd2, 0xa1, 0xa9, 0x04, 0x24, 0x20, 0xfa, - 0x00, 0xc6, 0xb7, 0x8e, 0xf7, 0xdb, 0x6e, 0x73, 0x7b, 0xbd, 0xfe, 0x04, 0xbf, 0x9a, 0x1f, 0xba, - 0x56, 0xb8, 0x35, 0x5e, 0x43, 0xa7, 0x27, 0x95, 0xc9, 0x0e, 0x2d, 0x6f, 0x44, 0xed, 0xb0, 0xf1, - 0x1c, 0xbf, 0xb2, 0x35, 0xb8, 0x18, 0xaf, 0x5e, 0x5f, 0x25, 0x78, 0xc3, 0x29, 0xbc, 0x30, 0x3c, - 0x54, 0xf1, 0x18, 0x1c, 0xba, 0x0b, 0x60, 0xe3, 0x23, 0x3f, 0xc2, 0xd5, 0x56, 0x2b, 0x98, 0x1f, - 0xa1, 0xbc, 0x9d, 0x3a, 0x3d, 0xa9, 0x8c, 0x05, 0xb4, 0xb4, 0xe1, 0xb4, 0x5a, 0x81, 0xad, 0x80, - 0xa0, 0x25, 0x18, 0xb1, 0x7d, 0xc6, 0xe0, 0xf9, 0xd1, 0x6b, 0x85, 0x5b, 0x63, 0x8b, 0x53, 0x7c, - 0x19, 0x8a, 0xe2, 0xda, 0xc5, 0xd3, 0x93, 0x0a, 0x0a, 0xf8, 0x2f, 0x75, 0x94, 0x02, 0x02, 0x55, - 0x60, 0x78, 0xc3, 0x5f, 0x72, 0x9a, 0x87, 0x78, 0x1e, 0xe8, 0xda, 0x1b, 0x3c, 0x3d, 0xa9, 0x14, - 0xde, 0xb5, 0x45, 0x29, 0x7a, 0x01, 0x63, 0xf1, 0x44, 0x85, 0xf3, 0x63, 0x94, 0x7d, 0xdb, 0xa7, - 0x27, 0x95, 0x8b, 0x21, 0x2d, 0x6e, 0x90, 0xa9, 0x57, 0x38, 0xf8, 0x06, 0xab, 0x40, 0x6d, 0xe8, - 0xf1, 0xc0, 0xc8, 0x78, 0x69, 0xc2, 0xbe, 0xb2, 0xe3, 0x85, 0x91, 0xb3, 0xdf, 0xc6, 0x71, 0x55, - 0x35, 0x0c, 0x71, 0x40, 0xe8, 0xad, 0x2d, 0x5b, 0xff, 0xb7, 0x00, 0x68, 0xb3, 0x83, 0xbd, 0x7a, - 0x7d, 0x95, 0xac, 0x78, 0xb1, 0xe0, 0xbf, 0x05, 0xa3, 0x8c, 0xb5, 0x84, 0xff, 0x45, 0xca, 0xff, - 0xc9, 0xd3, 0x93, 0x0a, 0x70, 0xfe, 0x13, 0xde, 0xc7, 0x00, 0xe8, 0x2d, 0xe8, 0xdf, 0xde, 0x5e, - 0xa7, 0xab, 0xb9, 0xbf, 0x36, 0x7d, 0x7a, 0x52, 0xe9, 0x8f, 0xa2, 0xf6, 0xcf, 0x4e, 0x2a, 0x23, - 0xcb, 0xc7, 0x01, 0xed, 0xb8, 0x4d, 0xea, 0xd1, 0x5b, 0x30, 0xbc, 0xd4, 0x3e, 0x0e, 0x23, 0x1c, - 0xcc, 0x0f, 0xc4, 0xdb, 0xa8, 0xc9, 0x8a, 0x6c, 0x51, 0x87, 0xbe, 0x09, 0x03, 0x3b, 0x21, 0x0e, - 0xe6, 0x07, 0xe9, 0x8c, 0x4c, 0xf0, 0x19, 0x21, 0x45, 0xbb, 0x8b, 0xb5, 0x11, 0xb2, 0x57, 0x8e, - 0x43, 0x1c, 0xd8, 0x14, 0x08, 0xdd, 0x81, 0x41, 0xc6, 0xd6, 0x21, 0x2a, 0x46, 0x26, 0xe4, 0xfc, - 0xb5, 0xf1, 0xee, 0x07, 0xb5, 0xd1, 0xd3, 0x93, 0xca, 0x20, 0x65, 0xaf, 0x3d, 0x28, 0x98, 0x52, - 0x28, 0x15, 0xed, 0x11, 0x82, 0x4b, 0x16, 0xae, 0xf5, 0x4d, 0x18, 0x53, 0x86, 0x8f, 0x16, 0x60, - 0x80, 0xfc, 0x4f, 0xb7, 0xf9, 0x38, 0x6b, 0x8c, 0xc8, 0x6f, 0x9b, 0x96, 0x5a, 0x7f, 0x38, 0x01, - 0x25, 0x82, 0xa9, 0xc9, 0x06, 0x8d, 0x55, 0x85, 0x6e, 0xac, 0xba, 0x05, 0xb2, 0x6d, 0x2e, 0x24, - 0xc6, 0x4f, 0x4f, 0x2a, 0x23, 0xc7, 0xbc, 0x2c, 0xee, 0x19, 0xaa, 0xc3, 0xf0, 0xca, 0xd7, 0x1d, - 0x37, 0xc0, 0x21, 0x65, 0xec, 0xd8, 0x62, 0xf9, 0x0e, 0xfb, 0x66, 0xdd, 0x11, 0xdf, 0xac, 0x3b, - 0xdb, 0xe2, 0x9b, 0x55, 0xbb, 0xc2, 0x85, 0xe5, 0x05, 0xcc, 0x50, 0xe2, 0xd5, 0xf4, 0x5b, 0x7f, - 0x51, 0x29, 0xd8, 0x82, 0x12, 0xfa, 0x16, 0x0c, 0x3d, 0xf4, 0x83, 0x23, 0x27, 0xe2, 0x33, 0x30, - 0x73, 0x7a, 0x52, 0x29, 0x3d, 0xa3, 0x25, 0xca, 0xe2, 0xe6, 0x30, 0xe8, 0x21, 0x4c, 0xda, 0xfe, - 0x71, 0x84, 0xb7, 0x7d, 0x31, 0x6f, 0x83, 0x14, 0xeb, 0xea, 0xe9, 0x49, 0xa5, 0x1c, 0x90, 0x9a, - 0x46, 0xe4, 0x37, 0xf8, 0x04, 0x2a, 0xf8, 0x09, 0x2c, 0xb4, 0x02, 0x93, 0x55, 0x2a, 0x5d, 0x39, - 0xcf, 0xd8, 0x6c, 0x8d, 0xd6, 0xae, 0x9c, 0x9e, 0x54, 0x2e, 0x39, 0xb4, 0xa6, 0x11, 0xf0, 0x2a, - 0x95, 0x8c, 0x8e, 0x84, 0x36, 0xe0, 0xc2, 0x93, 0xe3, 0x7d, 0x1c, 0x78, 0x38, 0xc2, 0xa1, 0xe8, - 0xd1, 0x30, 0xed, 0xd1, 0xb5, 0xd3, 0x93, 0xca, 0xc2, 0x73, 0x59, 0x69, 0xe8, 0x53, 0x1a, 0x15, - 0x61, 0x98, 0xe2, 0x1d, 0x5d, 0x76, 0x22, 0x67, 0xdf, 0x09, 0x31, 0x15, 0x1a, 0x63, 0x8b, 0x17, - 0x19, 0x8b, 0xef, 0x24, 0x6a, 0x6b, 0x37, 0x38, 0x97, 0x2f, 0xcb, 0xb1, 0xb7, 0x78, 0x95, 0xd2, - 0x50, 0x92, 0x26, 0x91, 0x9d, 0xf2, 0xbb, 0x30, 0x4a, 0x7b, 0x4b, 0x65, 0xa7, 0xfc, 0x2e, 0xa8, - 0x52, 0x45, 0x7e, 0x21, 0xd6, 0x61, 0x70, 0x87, 0x7c, 0x3d, 0xa9, 0x4c, 0x99, 0x5c, 0xbc, 0xce, - 0x7b, 0x94, 0x5c, 0x7d, 0x77, 0xc8, 0x0f, 0x0a, 0x48, 0xf7, 0xdd, 0x14, 0xfd, 0xe2, 0xaa, 0xdf, - 0x4a, 0x5a, 0x87, 0xbe, 0x00, 0xe0, 0xbd, 0xaa, 0x76, 0x3a, 0xf3, 0x63, 0x74, 0x90, 0x17, 0xf4, - 0x41, 0x56, 0x3b, 0x9d, 0xda, 0x55, 0x3e, 0xbe, 0x8b, 0x72, 0x7c, 0x4e, 0xa7, 0xa3, 0x50, 0x53, - 0x88, 0xa0, 0xcf, 0x61, 0x9c, 0x8a, 0x1c, 0x31, 0xa3, 0xe3, 0x74, 0x46, 0x2f, 0x9f, 0x9e, 0x54, - 0xe6, 0xc8, 0x86, 0x33, 0xcd, 0xa7, 0x86, 0x80, 0xfe, 0x3a, 0xcc, 0x72, 0x72, 0x7b, 0xae, 0xd7, - 0xf2, 0x5f, 0x86, 0xcb, 0x38, 0x7c, 0x1e, 0xf9, 0x9d, 0xf9, 0x09, 0xda, 0xbd, 0x05, 0xbd, 0x7b, - 0x3a, 0x4c, 0xed, 0x36, 0xef, 0xa9, 0x25, 0x7b, 0xfa, 0x92, 0x01, 0x34, 0x5a, 0x0c, 0x42, 0x69, - 0xd6, 0xdc, 0x0c, 0x5a, 0x83, 0xa9, 0x9d, 0x10, 0x6b, 0x63, 0x98, 0xa4, 0xf2, 0xbb, 0x42, 0x66, - 0xf8, 0x38, 0xc4, 0x8d, 0xac, 0x71, 0x24, 0xf1, 0x90, 0x0d, 0x68, 0x39, 0xf0, 0x3b, 0x89, 0x35, - 0x3e, 0x45, 0x39, 0x62, 0x9d, 0x9e, 0x54, 0xae, 0xb6, 0x02, 0xbf, 0xd3, 0xc8, 0x5e, 0xe8, 0x06, - 0x6c, 0xf4, 0x43, 0xb8, 0xb8, 0xe4, 0x7b, 0x1e, 0x6e, 0x12, 0xf9, 0xb9, 0xec, 0x3a, 0x07, 0x9e, - 0x1f, 0x46, 0x6e, 0x73, 0x6d, 0x79, 0xbe, 0x44, 0xd7, 0xd0, 0x4d, 0x32, 0xfa, 0xa6, 0x84, 0x68, - 0xb4, 0x24, 0x48, 0xc3, 0x6d, 0x29, 0xb4, 0x33, 0xa8, 0xa0, 0x1f, 0xc0, 0x04, 0x6f, 0x0b, 0x07, - 0x74, 0x69, 0x5e, 0xc8, 0x5f, 0x68, 0x12, 0x98, 0x7d, 0x88, 0x03, 0xf1, 0x93, 0xa9, 0x36, 0x3a, - 0x2d, 0xf4, 0x15, 0x8c, 0x3d, 0x7d, 0x58, 0xb5, 0x71, 0xd8, 0xf1, 0xbd, 0x10, 0xcf, 0x23, 0x3a, - 0xa3, 0x57, 0x39, 0xe9, 0xa7, 0x0f, 0xab, 0xd5, 0xe3, 0xe8, 0x10, 0x7b, 0x91, 0xdb, 0x74, 0x22, - 0x2c, 0xa0, 0x6a, 0x65, 0xb2, 0xf2, 0x8e, 0x9e, 0x39, 0x8d, 0x80, 0x97, 0x28, 0xa3, 0x50, 0xc9, - 0xa1, 0x32, 0x8c, 0xd4, 0xeb, 0xab, 0xeb, 0xfe, 0x81, 0xeb, 0xcd, 0x4f, 0x13, 0x66, 0xd8, 0xf2, - 0x37, 0xda, 0x87, 0x59, 0x45, 0x41, 0x6f, 0x90, 0xff, 0xf1, 0x11, 0xf6, 0xa2, 0xf9, 0x19, 0xda, - 0x87, 0x77, 0xa5, 0x85, 0x71, 0x47, 0xd5, 0xe3, 0x5f, 0xdc, 0xbf, 0x53, 0x8d, 0x7f, 0xd6, 0x05, - 0x92, 0x3d, 0xe3, 0x18, 0x4a, 0xad, 0x2f, 0x61, 0x54, 0x6e, 0x3b, 0x34, 0x0c, 0xfd, 0xd5, 0x76, - 0xbb, 0xd4, 0x47, 0xfe, 0xa8, 0xd7, 0x57, 0x4b, 0x05, 0x34, 0x09, 0x10, 0xcb, 0x9a, 0x52, 0x11, - 0x8d, 0xc3, 0x88, 0x90, 0x05, 0xa5, 0x7e, 0x0a, 0xdf, 0xe9, 0x94, 0x06, 0x10, 0x82, 0x49, 0x7d, - 0x45, 0x96, 0x06, 0xad, 0x1d, 0x18, 0x95, 0x8c, 0x44, 0x53, 0x30, 0xb6, 0xb3, 0x51, 0xdf, 0x5a, - 0x59, 0x5a, 0x7b, 0xb8, 0xb6, 0xb2, 0x5c, 0xea, 0x43, 0x57, 0xe0, 0xd2, 0x76, 0x7d, 0xb5, 0xb1, - 0x5c, 0x6b, 0xac, 0x6f, 0x2e, 0x55, 0xd7, 0x1b, 0x5b, 0xf6, 0xe6, 0x97, 0xdf, 0x6b, 0x6c, 0xef, - 0x6c, 0x6c, 0xac, 0xac, 0x97, 0x0a, 0x68, 0x1e, 0x66, 0x48, 0xf5, 0x93, 0x9d, 0xda, 0x8a, 0x0a, - 0x50, 0x2a, 0x5a, 0xff, 0xa9, 0x90, 0x92, 0x74, 0x68, 0x11, 0xc6, 0xea, 0xcc, 0x96, 0xa2, 0xb3, - 0xcf, 0xf4, 0xda, 0xd2, 0xe9, 0x49, 0x65, 0x9c, 0x9b, 0x58, 0x6c, 0x62, 0x55, 0x20, 0xf2, 0xf1, - 0xda, 0x22, 0x53, 0xd8, 0xf4, 0xdb, 0xea, 0xc7, 0xab, 0xc3, 0xcb, 0x6c, 0x59, 0x8b, 0x16, 0x95, - 0xcf, 0x1c, 0x53, 0x72, 0xa9, 0x22, 0x25, 0x3e, 0x73, 0xaa, 0xc8, 0x93, 0x1f, 0xbc, 0xc5, 0x98, - 0x4f, 0xfc, 0xeb, 0x44, 0x71, 0x0c, 0x22, 0x56, 0xc2, 0x59, 0xc7, 0x19, 0x42, 0x04, 0x7d, 0x92, - 0xe4, 0x2e, 0x1f, 0x21, 0x95, 0x92, 0x09, 0x59, 0x61, 0x27, 0x40, 0x51, 0x05, 0x06, 0xd9, 0xea, - 0x62, 0x83, 0xa4, 0x5a, 0x44, 0x9b, 0x14, 0xd8, 0xac, 0xdc, 0xfa, 0xfb, 0xfd, 0xaa, 0x40, 0x25, - 0x5a, 0x83, 0xc2, 0x44, 0xaa, 0x35, 0x50, 0xe6, 0xd1, 0x52, 0xa2, 0x20, 0xd4, 0x71, 0x18, 0x52, - 0x7d, 0x8b, 0x53, 0xa4, 0x0a, 0x42, 0xc8, 0x0a, 0x89, 0x09, 0x11, 0x03, 0x10, 0x25, 0x96, 0x69, - 0x0b, 0x54, 0x89, 0xed, 0x8f, 0x95, 0x58, 0xae, 0x4f, 0x30, 0x25, 0x36, 0x06, 0x21, 0x13, 0xc9, - 0x3f, 0x68, 0xb4, 0x0f, 0x03, 0xf1, 0x44, 0xf2, 0x8f, 0x20, 0x9f, 0x48, 0x05, 0x08, 0x7d, 0x0c, - 0x50, 0xdd, 0xab, 0x53, 0x5d, 0xd0, 0xde, 0xe0, 0x1f, 0x75, 0xba, 0xfd, 0x9c, 0x97, 0x21, 0x13, - 0x7b, 0x4e, 0xa0, 0x6a, 0xbb, 0x0a, 0x34, 0xaa, 0xc1, 0x44, 0xf5, 0xc7, 0xc7, 0x01, 0x5e, 0x6b, - 0x91, 0x1d, 0x1c, 0x31, 0xb5, 0x7e, 0xb4, 0xb6, 0x70, 0x7a, 0x52, 0x99, 0x77, 0x48, 0x45, 0xc3, - 0xe5, 0x35, 0x0a, 0x01, 0x1d, 0x05, 0x6d, 0xc2, 0x85, 0x47, 0x4b, 0x5b, 0x7c, 0x69, 0x55, 0x9b, - 0x4d, 0xff, 0xd8, 0x8b, 0xf8, 0x97, 0xfc, 0xfa, 0xe9, 0x49, 0xe5, 0xca, 0x41, 0xb3, 0xd3, 0x10, - 0xcb, 0xd0, 0x61, 0xd5, 0xea, 0xa7, 0x3c, 0x85, 0x6b, 0xb5, 0x61, 0xf2, 0x11, 0x8e, 0xc8, 0x52, - 0x12, 0x6a, 0x59, 0xfe, 0x9c, 0x7c, 0x0a, 0x63, 0x7b, 0x6e, 0x74, 0x58, 0xc7, 0xcd, 0x00, 0x47, - 0xc2, 0x68, 0xa4, 0x1c, 0x78, 0xe9, 0x46, 0x87, 0x8d, 0x90, 0x95, 0xab, 0x02, 0x48, 0x01, 0xb7, - 0x56, 0x60, 0x8a, 0xb7, 0x26, 0xb5, 0xc0, 0x45, 0x9d, 0x60, 0x81, 0x12, 0xa4, 0xb3, 0xa0, 0x12, - 0xd4, 0xc9, 0xfc, 0x61, 0x11, 0x66, 0x97, 0x0e, 0x1d, 0xef, 0x00, 0x6f, 0x39, 0x61, 0xf8, 0xd2, - 0x0f, 0x5a, 0x4a, 0xe7, 0xa9, 0x0a, 0x9c, 0xea, 0x3c, 0xd5, 0x79, 0x17, 0x61, 0x6c, 0xb3, 0xdd, - 0x12, 0x38, 0x5c, 0x3d, 0xa7, 0x6d, 0xf9, 0xed, 0x56, 0xa3, 0x23, 0x68, 0xa9, 0x40, 0x04, 0x67, - 0x03, 0xbf, 0x94, 0x38, 0xfd, 0x31, 0x8e, 0x87, 0x5f, 0x2a, 0x38, 0x0a, 0x10, 0x5a, 0x81, 0x0b, - 0x75, 0xdc, 0xf4, 0xbd, 0xd6, 0x43, 0xa7, 0x19, 0xf9, 0xc1, 0xb6, 0xff, 0x1c, 0x7b, 0x7c, 0x7d, - 0x51, 0x0d, 0x26, 0xa4, 0x95, 0x8d, 0x67, 0xb4, 0xb6, 0x11, 0x91, 0x6a, 0x3b, 0x8d, 0x81, 0x36, - 0x61, 0x64, 0x8f, 0xfb, 0x17, 0xb8, 0x4e, 0xff, 0xd6, 0x1d, 0xe9, 0x70, 0x58, 0x0a, 0x30, 0x5d, - 0x14, 0x4e, 0x5b, 0x5a, 0x25, 0xf2, 0x83, 0x40, 0x85, 0x8b, 0x80, 0xb4, 0x25, 0x11, 0x6b, 0x07, - 0x26, 0xb6, 0xda, 0xc7, 0x07, 0xae, 0x47, 0xc4, 0x40, 0x1d, 0xff, 0x32, 0x5a, 0x06, 0x88, 0x0b, - 0xb8, 0x43, 0x61, 0x9a, 0x5b, 0x02, 0x71, 0xc5, 0xee, 0x03, 0xbe, 0x91, 0x68, 0x09, 0x55, 0xdd, - 0x6c, 0x05, 0xcf, 0xfa, 0xbb, 0xfd, 0x80, 0xf8, 0x04, 0x50, 0x59, 0x5f, 0xc7, 0x11, 0x11, 0xc3, - 0x17, 0xa1, 0x28, 0xed, 0xfe, 0xa1, 0xd3, 0x93, 0x4a, 0xd1, 0x6d, 0xd9, 0xc5, 0xb5, 0x65, 0xf4, - 0x1e, 0x0c, 0x52, 0x30, 0xca, 0xff, 0x49, 0xd9, 0x9e, 0x4a, 0x81, 0x49, 0x0e, 0xfa, 0x0d, 0xb2, - 0x19, 0x30, 0x7a, 0x1f, 0x46, 0x97, 0x71, 0x1b, 0x1f, 0x38, 0x91, 0x2f, 0x76, 0x37, 0xb3, 0xa4, - 0x45, 0xa1, 0xb2, 0xe6, 0x62, 0x48, 0xa2, 0xb7, 0xdb, 0xd8, 0x09, 0x7d, 0x4f, 0xd5, 0xdb, 0x03, - 0x5a, 0xa2, 0xea, 0xed, 0x0c, 0x06, 0xfd, 0x4e, 0x01, 0xc6, 0xaa, 0x9e, 0xc7, 0x2d, 0xd4, 0x90, - 0x73, 0x7d, 0xf6, 0x8e, 0xf4, 0xdb, 0xac, 0x3b, 0xfb, 0xb8, 0xbd, 0xeb, 0xb4, 0x8f, 0x71, 0x58, - 0xfb, 0x8a, 0xa8, 0x52, 0xff, 0xf9, 0xa4, 0xf2, 0xc9, 0x19, 0x6c, 0xce, 0xd8, 0x03, 0xb4, 0x1d, - 0x38, 0x6e, 0x14, 0x9e, 0x9e, 0x54, 0x66, 0x9d, 0xb8, 0x41, 0x75, 0xdf, 0x28, 0xfd, 0x40, 0xef, - 0xa8, 0xc6, 0x1a, 0x97, 0xc5, 0x09, 0xe3, 0x97, 0xdb, 0x69, 0xd6, 0x0d, 0xf9, 0x25, 0x5c, 0x5b, - 0xce, 0x9a, 0x02, 0x6b, 0x09, 0x16, 0x1e, 0xe1, 0xc8, 0xc6, 0x21, 0x8e, 0xc4, 0xa2, 0xa5, 0x4b, - 0x2e, 0x76, 0xdb, 0x0c, 0xd3, 0xdf, 0x12, 0x99, 0xce, 0x07, 0x5b, 0xa8, 0xa2, 0xc6, 0xfa, 0xdb, - 0x05, 0xa8, 0x2c, 0x05, 0x98, 0x69, 0x22, 0x19, 0x84, 0xf2, 0x85, 0xc9, 0x02, 0x0c, 0x6c, 0xbf, - 0xea, 0x08, 0x7b, 0x8e, 0xd6, 0x12, 0x2e, 0xd9, 0xb4, 0xb4, 0x47, 0xe3, 0xd8, 0x7a, 0x06, 0xb3, - 0x36, 0xf6, 0xf0, 0x4b, 0x62, 0xaa, 0x6b, 0xf6, 0x65, 0x05, 0x06, 0xd9, 0xce, 0x4b, 0x0d, 0x81, - 0x95, 0x9f, 0xcd, 0x56, 0xb7, 0xfe, 0x59, 0x11, 0x4a, 0x6c, 0xb8, 0x35, 0x3f, 0xea, 0x6d, 0x7c, - 0x7c, 0x04, 0xc5, 0x2e, 0xe6, 0xfd, 0xcd, 0x98, 0xdb, 0xfd, 0xb1, 0x72, 0x40, 0xbb, 0x4a, 0xbe, - 0x71, 0xa2, 0x92, 0x0c, 0x88, 0xad, 0x02, 0xe6, 0x95, 0x4a, 0xd9, 0xe8, 0xe8, 0x37, 0x0a, 0x30, - 0xc4, 0xd6, 0x55, 0xfe, 0xca, 0xdd, 0x3b, 0x9f, 0x95, 0x5b, 0x8a, 0xe8, 0x5f, 0xea, 0x3e, 0x62, - 0x75, 0xd6, 0xbf, 0x28, 0xc2, 0x05, 0x85, 0x57, 0x5c, 0xfd, 0x7c, 0x87, 0xe9, 0x36, 0x0a, 0xc3, - 0xa8, 0x9f, 0x8f, 0xe8, 0x36, 0x8d, 0xd8, 0x86, 0xa7, 0x9c, 0x7b, 0x07, 0x46, 0xc8, 0x90, 0x92, - 0x2e, 0x41, 0xfa, 0x85, 0x65, 0xa0, 0xa2, 0xba, 0x67, 0xee, 0xdd, 0x85, 0x11, 0xfa, 0x27, 0x99, - 0x91, 0x81, 0xec, 0x19, 0x91, 0x40, 0xc8, 0x05, 0x78, 0xec, 0xbb, 0xde, 0x53, 0x1c, 0x1d, 0xfa, - 0x2d, 0xfe, 0xad, 0x5f, 0x23, 0x72, 0xf0, 0xaf, 0xf9, 0xae, 0xd7, 0x38, 0xa2, 0xc5, 0x67, 0x75, - 0x39, 0xc5, 0x04, 0x6d, 0x85, 0xb8, 0x75, 0x0f, 0x4a, 0x44, 0x64, 0xf5, 0xbe, 0xb4, 0xac, 0x19, - 0x40, 0x8f, 0x70, 0x54, 0xf3, 0xb5, 0x8f, 0xa9, 0x35, 0x01, 0x63, 0x5b, 0xae, 0x77, 0x20, 0x7e, - 0xfe, 0xcb, 0x7e, 0x18, 0x67, 0xbf, 0xf9, 0x0c, 0x24, 0x54, 0x9e, 0x42, 0x2f, 0x2a, 0xcf, 0x87, - 0x30, 0x41, 0x74, 0x06, 0x1c, 0xec, 0xe2, 0x80, 0xa8, 0x5a, 0x7c, 0x3e, 0xa8, 0x31, 0x13, 0xd2, - 0x8a, 0xc6, 0x0b, 0x56, 0x63, 0xeb, 0x80, 0x68, 0x1d, 0x26, 0x59, 0xc1, 0x43, 0xec, 0x44, 0xc7, - 0xb1, 0x3f, 0x66, 0x8a, 0xdb, 0x33, 0xa2, 0x98, 0xc9, 0x33, 0x4e, 0xeb, 0x19, 0x2f, 0xb4, 0x13, - 0xb8, 0xe8, 0x73, 0x98, 0xda, 0x0a, 0xfc, 0xaf, 0x5f, 0x29, 0x4a, 0x1e, 0x13, 0xe9, 0xb3, 0xa7, - 0x27, 0x95, 0x0b, 0x1d, 0x52, 0xd5, 0x50, 0x55, 0xbd, 0x24, 0x34, 0x59, 0x53, 0x6b, 0x61, 0xcd, - 0x0f, 0x5c, 0xef, 0x80, 0xce, 0xe6, 0x08, 0x5b, 0x53, 0x6e, 0xd8, 0xd8, 0xa7, 0x85, 0xb6, 0xac, - 0x4e, 0x38, 0x44, 0x87, 0xbb, 0x3b, 0x44, 0xef, 0x01, 0xac, 0xfb, 0x4e, 0xab, 0xda, 0x6e, 0x2f, - 0x55, 0x43, 0xea, 0x0c, 0xe1, 0x4a, 0x4c, 0xdb, 0x77, 0x5a, 0x0d, 0xa7, 0xdd, 0x6e, 0x34, 0x9d, - 0xd0, 0x56, 0x60, 0x1e, 0x0f, 0x8c, 0x0c, 0x95, 0x86, 0xed, 0xa9, 0x75, 0xb7, 0x89, 0xbd, 0x10, - 0xef, 0x39, 0x81, 0xe7, 0x7a, 0x07, 0xa1, 0xf5, 0x67, 0x43, 0x30, 0x22, 0x87, 0x7c, 0x47, 0x35, - 0x88, 0xb8, 0x6a, 0x44, 0x25, 0x54, 0xec, 0xb0, 0xb1, 0x15, 0x08, 0x74, 0x89, 0x9a, 0x48, 0x5c, - 0x29, 0x1b, 0x26, 0xab, 0xdb, 0xe9, 0x74, 0x6c, 0x52, 0x46, 0xbe, 0x04, 0xcb, 0x35, 0xca, 0xff, - 0x11, 0xf6, 0x25, 0x68, 0xed, 0xdb, 0xc5, 0xe5, 0x1a, 0x59, 0x65, 0x9b, 0x6b, 0xcb, 0x4b, 0x94, - 0x95, 0x23, 0x6c, 0x95, 0xf9, 0x6e, 0xab, 0x69, 0xd3, 0x52, 0x52, 0x5b, 0xaf, 0x3e, 0x5d, 0xe7, - 0xec, 0xa2, 0xb5, 0xa1, 0x73, 0xd4, 0xb6, 0x69, 0x29, 0x31, 0x15, 0x98, 0xed, 0xbd, 0xe4, 0x7b, - 0x51, 0xe0, 0xb7, 0x43, 0xaa, 0xd1, 0x8e, 0xb0, 0xe9, 0xe4, 0x46, 0x7b, 0x93, 0x57, 0xd9, 0x09, - 0x50, 0xb4, 0x07, 0x73, 0xd5, 0xd6, 0x0b, 0xc7, 0x6b, 0xe2, 0x16, 0xab, 0xd9, 0xf3, 0x83, 0xe7, - 0xcf, 0xda, 0xfe, 0xcb, 0x90, 0xf2, 0x7b, 0x84, 0xfb, 0xb8, 0x38, 0x88, 0xf0, 0x01, 0xbc, 0x14, - 0x40, 0x76, 0x16, 0x36, 0x91, 0x92, 0x4b, 0x6d, 0xff, 0xb8, 0xc5, 0x67, 0x81, 0x4a, 0xc9, 0x26, - 0x29, 0xb0, 0x59, 0x39, 0xe1, 0xd2, 0x6a, 0xfd, 0x29, 0xf5, 0x28, 0x71, 0x2e, 0x1d, 0x86, 0x47, - 0x36, 0x29, 0x43, 0x6f, 0xc1, 0xb0, 0xb0, 0x7a, 0x98, 0x4b, 0x9a, 0x3a, 0x5a, 0x85, 0xb5, 0x23, - 0xea, 0xc8, 0x96, 0xb0, 0x71, 0xd3, 0x7f, 0x81, 0x83, 0x57, 0x4b, 0x7e, 0x0b, 0x0b, 0xff, 0x07, - 0xb7, 0xef, 0x59, 0x45, 0xa3, 0x49, 0x6a, 0x6c, 0x1d, 0x90, 0x34, 0xc0, 0x14, 0xa7, 0x70, 0x7e, - 0x2a, 0x6e, 0x80, 0x29, 0x56, 0xa1, 0x2d, 0xea, 0xd0, 0x32, 0x5c, 0xa8, 0x1e, 0x47, 0xfe, 0x91, - 0x13, 0xb9, 0xcd, 0x9d, 0xce, 0x41, 0xe0, 0x90, 0x46, 0x4a, 0x14, 0x81, 0x9a, 0x76, 0x8e, 0xa8, - 0x6c, 0x1c, 0xf3, 0x5a, 0x3b, 0x8d, 0x80, 0x3e, 0x80, 0xf1, 0xb5, 0x90, 0xf9, 0xb8, 0x9c, 0x10, - 0xb7, 0xa8, 0xa3, 0x82, 0xf7, 0xd2, 0x0d, 0x1b, 0xd4, 0xe3, 0xd5, 0x20, 0xc6, 0x60, 0xcb, 0xd6, - 0xe0, 0x90, 0x05, 0x43, 0xd5, 0x30, 0x74, 0xc3, 0x88, 0xfa, 0x1f, 0x46, 0x6a, 0x70, 0x7a, 0x52, - 0x19, 0x72, 0x68, 0x89, 0xcd, 0x6b, 0xd0, 0x1e, 0x8c, 0x2d, 0x63, 0x62, 0x48, 0x6c, 0x07, 0xc7, - 0x61, 0x44, 0xbd, 0x09, 0x63, 0x8b, 0x97, 0xf8, 0xc6, 0x56, 0x6a, 0xf8, 0x5a, 0x66, 0x26, 0x42, - 0x8b, 0x96, 0x37, 0x22, 0x52, 0xa1, 0xaa, 0x3a, 0x0a, 0x3c, 0xb1, 0x92, 0x38, 0xce, 0xaa, 0xdb, - 0x22, 0x5b, 0x75, 0x86, 0xf6, 0x81, 0x5a, 0x49, 0x5c, 0x36, 0x34, 0x0e, 0x69, 0x8d, 0x6a, 0x25, - 0x69, 0x28, 0x8f, 0x07, 0x46, 0xc6, 0x4a, 0xe3, 0xcc, 0x8d, 0xff, 0x78, 0x60, 0x64, 0xa2, 0x34, - 0x69, 0xfd, 0x6e, 0x01, 0x50, 0xba, 0x57, 0xe8, 0x2e, 0x0c, 0x63, 0x8f, 0x28, 0x0e, 0x2d, 0xbe, - 0xbb, 0xa8, 0x2c, 0xe1, 0x45, 0x0a, 0x7d, 0x01, 0x85, 0xbe, 0x80, 0x69, 0x36, 0x08, 0xc1, 0xbf, - 0xb6, 0x7b, 0xe4, 0x46, 0x74, 0xc7, 0x0d, 0x32, 0x0b, 0xcc, 0x50, 0xad, 0x5a, 0x60, 0xbc, 0x9a, - 0x72, 0x7b, 0x9d, 0x54, 0x5a, 0xf7, 0xe1, 0x02, 0x93, 0xfd, 0x3d, 0x1b, 0x61, 0xd6, 0x16, 0x40, - 0x1d, 0x1f, 0x39, 0x9d, 0x43, 0x9f, 0x48, 0x89, 0x9a, 0xfa, 0x8b, 0x2b, 0xf1, 0x88, 0x2b, 0xd5, - 0xb2, 0x62, 0xf7, 0x81, 0xb0, 0x9d, 0x05, 0xa4, 0xad, 0x60, 0x59, 0x7f, 0x52, 0x04, 0x54, 0x3d, - 0x6e, 0xb9, 0x51, 0x3d, 0x0a, 0xb0, 0x73, 0x24, 0xba, 0xf1, 0x11, 0x8c, 0xb3, 0xcf, 0x38, 0x2b, - 0xa6, 0xdd, 0x21, 0x16, 0x02, 0x9b, 0x66, 0xb5, 0x6a, 0xb5, 0xcf, 0xd6, 0x40, 0x09, 0xaa, 0x8d, - 0xc3, 0xe3, 0x23, 0x81, 0x5a, 0xd4, 0x50, 0xd5, 0x2a, 0x82, 0xaa, 0xfe, 0x46, 0x9f, 0xc3, 0xe4, - 0x92, 0x7f, 0xd4, 0x21, 0x3c, 0xe1, 0xc8, 0xfd, 0x5c, 0x9b, 0xe1, 0xed, 0x6a, 0x95, 0xab, 0x7d, - 0x76, 0x02, 0x1c, 0x6d, 0xc0, 0xf4, 0xc3, 0xf6, 0x71, 0x78, 0x58, 0xf5, 0x5a, 0x4b, 0x6d, 0x3f, - 0x14, 0x54, 0x06, 0xf8, 0x69, 0x00, 0xff, 0xfa, 0xa4, 0x21, 0x56, 0xfb, 0x6c, 0x13, 0x22, 0x7a, - 0x0b, 0x06, 0x57, 0x5e, 0x60, 0x2f, 0x92, 0x27, 0x2b, 0xfc, 0x68, 0x76, 0xd3, 0xc3, 0x9b, 0xcf, - 0x56, 0xfb, 0x6c, 0x56, 0x5b, 0x1b, 0x85, 0x61, 0xf1, 0xe5, 0xbd, 0x4b, 0x36, 0xb0, 0x64, 0x27, - 0xb1, 0x60, 0x8e, 0x43, 0x54, 0x86, 0x91, 0x9d, 0x0e, 0xf9, 0x20, 0x08, 0xb5, 0xda, 0x96, 0xbf, - 0xad, 0x6f, 0xe9, 0x9c, 0x46, 0x0b, 0xaa, 0xef, 0x83, 0x01, 0xc7, 0x05, 0xd6, 0xaa, 0xce, 0xdc, - 0x7c, 0x68, 0xad, 0xdd, 0x62, 0xa2, 0xdd, 0x52, 0x92, 0xd7, 0xd6, 0xac, 0x91, 0x79, 0xd6, 0x97, - 0x70, 0x75, 0xa7, 0x43, 0x0c, 0xcd, 0x6a, 0xa7, 0xd3, 0x76, 0x9b, 0xcc, 0xb3, 0x47, 0xbf, 0xd0, - 0x62, 0xb1, 0x7c, 0x00, 0x43, 0xac, 0x80, 0x2f, 0x13, 0xb1, 0x06, 0xab, 0x9d, 0x0e, 0xd7, 0x0b, - 0x1e, 0x30, 0x51, 0xc2, 0xbe, 0xf4, 0x36, 0x87, 0xb6, 0x7e, 0xab, 0x00, 0x57, 0xd9, 0x0e, 0xc8, - 0x24, 0xfd, 0x4d, 0x18, 0xa5, 0x27, 0xa3, 0x1d, 0xa7, 0xa9, 0xa9, 0x8e, 0x9e, 0x28, 0xb4, 0xe3, - 0x7a, 0xe5, 0xcc, 0xb9, 0x98, 0x7d, 0xe6, 0x2c, 0x36, 0x58, 0xbf, 0x71, 0x83, 0x7d, 0x01, 0x16, - 0xef, 0x51, 0xbb, 0x9d, 0xea, 0x54, 0xf8, 0x3a, 0xbd, 0xb2, 0xfe, 0x5b, 0x11, 0xe6, 0x1e, 0x61, - 0x0f, 0x07, 0x0e, 0x1d, 0xa7, 0x66, 0x25, 0xa9, 0x67, 0x5b, 0x85, 0xdc, 0xb3, 0x2d, 0x69, 0x02, - 0x14, 0x33, 0x4c, 0x80, 0x4b, 0xd0, 0xbf, 0x63, 0xaf, 0xf1, 0x61, 0xd1, 0x8f, 0xdb, 0x71, 0xe0, - 0xda, 0xa4, 0x0c, 0xad, 0xc5, 0xe7, 0x62, 0x03, 0x5d, 0xcf, 0xc5, 0xa6, 0xf9, 0x39, 0xc1, 0x30, - 0x3f, 0x17, 0xd3, 0x4f, 0xc3, 0x36, 0x14, 0x3b, 0x83, 0x88, 0x9b, 0xdb, 0x7c, 0x4f, 0x65, 0x0c, - 0x90, 0x9b, 0x0c, 0x2b, 0x5e, 0x14, 0xbc, 0x62, 0x4b, 0x80, 0x59, 0x0e, 0xc2, 0x5e, 0x28, 0x7f, - 0x01, 0x63, 0x0a, 0x08, 0x2a, 0x41, 0xff, 0x73, 0x7e, 0x26, 0x38, 0x6a, 0x93, 0x3f, 0xd1, 0xb7, - 0x60, 0xf0, 0x05, 0xb1, 0x5d, 0xb8, 0x18, 0xb9, 0x18, 0xdb, 0x35, 0xf5, 0x88, 0x68, 0x6c, 0xcc, - 0xb0, 0xb1, 0x19, 0xd0, 0xc7, 0xc5, 0x0f, 0x0b, 0xd6, 0x27, 0x30, 0x9f, 0xee, 0x0d, 0x57, 0x83, - 0xbb, 0x59, 0x86, 0xd6, 0x32, 0xcc, 0x3c, 0xc2, 0x11, 0x5d, 0xb8, 0x74, 0x13, 0x29, 0x47, 0x96, - 0x89, 0x7d, 0x96, 0xe3, 0x91, 0xb4, 0xea, 0x30, 0x9b, 0xa0, 0xc2, 0xdb, 0xff, 0x18, 0x86, 0x79, - 0x91, 0x94, 0xa8, 0x3c, 0x88, 0x03, 0xef, 0xf3, 0x8a, 0xdd, 0x45, 0xb6, 0x6e, 0x39, 0x65, 0x5b, - 0x20, 0x58, 0x87, 0x70, 0x71, 0xdd, 0x0d, 0x15, 0xaa, 0x72, 0x39, 0x5e, 0x86, 0xd1, 0x0e, 0xf9, - 0xe6, 0x84, 0xee, 0x8f, 0xd9, 0x32, 0x1a, 0xb4, 0x47, 0x48, 0x41, 0xdd, 0xfd, 0x31, 0x46, 0x57, - 0x00, 0x68, 0x25, 0x1d, 0x26, 0x97, 0x02, 0x14, 0x9c, 0x99, 0xc2, 0x08, 0xe8, 0xd9, 0x30, 0x5b, - 0x37, 0x36, 0xfd, 0xdb, 0x0a, 0x60, 0x2e, 0xd5, 0x12, 0x1f, 0xc0, 0x5d, 0x18, 0xe1, 0x1d, 0x0b, - 0x13, 0x5e, 0x23, 0x75, 0x04, 0xb6, 0x04, 0x42, 0x37, 0x61, 0xca, 0xc3, 0x5f, 0x47, 0x8d, 0x54, - 0x1f, 0x26, 0x48, 0xf1, 0x96, 0xe8, 0x87, 0xf5, 0x4b, 0xd4, 0x31, 0x51, 0xf7, 0xfc, 0x97, 0xcf, - 0xda, 0xce, 0x73, 0x9c, 0x6a, 0xf8, 0x3b, 0x30, 0x52, 0xef, 0xde, 0x30, 0xdb, 0x3e, 0xa2, 0x71, - 0x5b, 0xa2, 0x58, 0x6d, 0x28, 0x93, 0x21, 0x11, 0xed, 0x75, 0xad, 0xb5, 0xf5, 0xf3, 0x66, 0xe0, - 0x0b, 0xb8, 0x6c, 0x6c, 0xed, 0xe7, 0xcd, 0xc4, 0xbf, 0x2c, 0xc2, 0x1c, 0xfb, 0x98, 0xa4, 0x57, - 0x70, 0xef, 0xa2, 0xe6, 0x17, 0xe2, 0x4f, 0xbf, 0x67, 0xf0, 0xa7, 0x53, 0x14, 0xd5, 0x9f, 0xae, - 0x79, 0xd1, 0x3f, 0x34, 0x7b, 0xd1, 0xa9, 0x56, 0xab, 0x7b, 0xd1, 0x93, 0xbe, 0xf3, 0x95, 0x6c, - 0xdf, 0x39, 0xf5, 0x24, 0x1a, 0x7c, 0xe7, 0x06, 0x8f, 0xf9, 0xe3, 0x81, 0x91, 0x62, 0xa9, 0xdf, - 0xda, 0x85, 0xf9, 0x34, 0x8b, 0xcf, 0x61, 0x7b, 0xff, 0x51, 0x01, 0xae, 0x70, 0x45, 0x20, 0xb1, - 0x09, 0xce, 0x3e, 0x83, 0xef, 0xc3, 0x38, 0xc7, 0xdd, 0x8e, 0x17, 0x4b, 0xed, 0xc2, 0xe9, 0x49, - 0x65, 0x42, 0x08, 0x2c, 0x26, 0xf5, 0x34, 0x30, 0xf4, 0xbe, 0xe2, 0x28, 0x61, 0xce, 0xb7, 0x4b, - 0xe4, 0xab, 0xc6, 0x3c, 0x2a, 0x99, 0xee, 0x12, 0xeb, 0x2b, 0xb8, 0x9a, 0xd5, 0xf1, 0x73, 0xe0, - 0xcb, 0xbf, 0x2e, 0xc0, 0x65, 0x4e, 0x5e, 0xdb, 0x4e, 0xaf, 0x25, 0x99, 0xcf, 0x10, 0x4c, 0xf2, - 0x18, 0xc6, 0x48, 0x83, 0xa2, 0xdf, 0xfd, 0xfc, 0xf3, 0xc3, 0xb5, 0xeb, 0xb8, 0x66, 0xd9, 0x89, - 0x1c, 0x7e, 0x0a, 0xe8, 0x1c, 0xb5, 0x1b, 0xa2, 0xff, 0x2a, 0xb2, 0xf5, 0x7d, 0x58, 0x30, 0x0f, - 0xe1, 0x1c, 0xf8, 0xf3, 0x18, 0xca, 0x06, 0xc1, 0xf9, 0x7a, 0xdf, 0xad, 0xef, 0xc1, 0x65, 0x23, - 0xad, 0x73, 0xe8, 0xe6, 0x2a, 0xf9, 0x2a, 0x47, 0xe7, 0x30, 0x85, 0xd6, 0x1e, 0x5c, 0x32, 0x50, - 0x3a, 0x87, 0x2e, 0x3e, 0x82, 0x39, 0xa9, 0x8d, 0xbe, 0x51, 0x0f, 0x9f, 0xc2, 0x15, 0x46, 0xe8, - 0x7c, 0x66, 0xe5, 0x09, 0x5c, 0xe6, 0xe4, 0xce, 0x81, 0x7b, 0xab, 0xb0, 0x10, 0x1b, 0x9d, 0x06, - 0x5d, 0xa2, 0x67, 0x21, 0x63, 0xad, 0xc3, 0xb5, 0x98, 0x52, 0xc6, 0x87, 0xb5, 0x77, 0x6a, 0x4c, - 0x65, 0x8a, 0x67, 0xe9, 0x5c, 0x66, 0x74, 0x0f, 0x2e, 0x6a, 0x44, 0xcf, 0x4d, 0x9d, 0x58, 0x83, - 0x69, 0x46, 0x58, 0x57, 0x2f, 0x17, 0x55, 0xf5, 0x72, 0x6c, 0xf1, 0x42, 0x4c, 0x92, 0x16, 0xef, - 0x3e, 0x30, 0x68, 0x9c, 0x4f, 0xa9, 0xc6, 0x29, 0x40, 0xe2, 0x1e, 0xbe, 0x0f, 0x43, 0xac, 0x84, - 0xf7, 0xcf, 0x40, 0x8c, 0x29, 0xd4, 0x0c, 0x8d, 0x03, 0x5b, 0x3f, 0x84, 0x2b, 0xcc, 0x5a, 0x8b, - 0xbd, 0x83, 0xba, 0x45, 0xf5, 0x9d, 0x84, 0xb1, 0x76, 0x89, 0xd3, 0x4d, 0xc2, 0x67, 0xd8, 0x6c, - 0xfb, 0x62, 0x6d, 0x67, 0xd1, 0xef, 0x29, 0xf0, 0x57, 0x18, 0x61, 0x45, 0xa3, 0x11, 0x76, 0x03, - 0xae, 0x4b, 0x23, 0x2c, 0xd9, 0x8c, 0xf4, 0x78, 0x7f, 0x1f, 0x2e, 0xb3, 0x81, 0x8a, 0xc8, 0x06, - 0xbd, 0x1b, 0x9f, 0x24, 0x86, 0x39, 0xc7, 0x87, 0xa9, 0x43, 0x67, 0x0c, 0xf2, 0xef, 0x15, 0xc4, - 0x96, 0x33, 0x13, 0xff, 0x45, 0x5b, 0xa5, 0x1b, 0x50, 0x91, 0x0c, 0xd1, 0x7b, 0xf4, 0x7a, 0x26, - 0xe9, 0x53, 0x98, 0x55, 0xc9, 0xb8, 0x4d, 0xbc, 0x7b, 0x9f, 0x28, 0xac, 0xe8, 0x3d, 0xb2, 0x2d, - 0x68, 0x81, 0x58, 0x76, 0xf3, 0x06, 0xbe, 0x51, 0x78, 0x5b, 0x42, 0x5a, 0x0d, 0x58, 0x48, 0x4f, - 0x85, 0xdb, 0x14, 0xd1, 0x5e, 0xe8, 0x73, 0xb2, 0x85, 0x69, 0x09, 0x9f, 0x8c, 0x4c, 0xa2, 0x62, - 0x1f, 0x33, 0x74, 0x81, 0x65, 0x59, 0x42, 0xd4, 0x24, 0xc6, 0x4f, 0x5a, 0x17, 0xeb, 0xe1, 0x57, - 0x01, 0x89, 0xaa, 0xa5, 0xba, 0x2d, 0x9a, 0xbe, 0x04, 0xfd, 0x4b, 0x75, 0x9b, 0x07, 0x99, 0x52, - 0xab, 0xb8, 0x19, 0x06, 0x36, 0x29, 0x4b, 0x6a, 0xad, 0xc5, 0x1e, 0xb4, 0xd6, 0xc7, 0x03, 0x23, - 0xfd, 0xa5, 0x01, 0x1b, 0xd5, 0xdd, 0x03, 0x6f, 0xcf, 0x8d, 0x0e, 0x65, 0x83, 0x55, 0xeb, 0x07, - 0x30, 0xad, 0x35, 0xcf, 0x77, 0x71, 0x6e, 0x74, 0x2c, 0xba, 0x09, 0xc3, 0x4b, 0x55, 0x7a, 0x74, - 0x49, 0xcd, 0xfa, 0x71, 0x26, 0x6f, 0x9a, 0x4e, 0x83, 0xde, 0x80, 0xb0, 0x45, 0xa5, 0xf5, 0x4f, - 0x07, 0x14, 0xea, 0x4a, 0xcc, 0x71, 0xce, 0xe8, 0xee, 0x03, 0xb0, 0x15, 0xa2, 0x0c, 0x8e, 0x28, - 0x80, 0x63, 0xfc, 0xb4, 0x85, 0x89, 0x64, 0x5b, 0x01, 0xea, 0x35, 0x26, 0x99, 0x87, 0x41, 0x31, - 0x24, 0x71, 0x24, 0x29, 0xc3, 0xa0, 0x38, 0xe9, 0xd0, 0x56, 0x81, 0xd0, 0x0f, 0x93, 0xa1, 0x73, - 0x83, 0x34, 0x02, 0xe0, 0x1b, 0xc2, 0x6d, 0x9c, 0x1e, 0xdb, 0xd9, 0xa2, 0xe7, 0x5e, 0xc2, 0x2c, - 0xc1, 0x75, 0x9f, 0xd1, 0xf8, 0xb8, 0x95, 0xaf, 0x23, 0xec, 0x31, 0xd9, 0x3e, 0x44, 0xdb, 0x79, - 0x2b, 0xa7, 0x9d, 0x18, 0x98, 0xb9, 0xaa, 0x9b, 0x31, 0x9d, 0x06, 0x96, 0x75, 0xb6, 0x99, 0x3e, - 0x5d, 0x44, 0xf6, 0xfa, 0x8a, 0xd7, 0xea, 0xf8, 0xae, 0x34, 0x2a, 0xd8, 0x22, 0x0a, 0xda, 0x0d, - 0xcc, 0xcb, 0x6d, 0x15, 0xc8, 0xba, 0x99, 0x1b, 0xb2, 0x36, 0x02, 0x03, 0xdb, 0x4b, 0xdb, 0xeb, - 0xa5, 0x82, 0x75, 0x17, 0x40, 0x69, 0x09, 0x60, 0x68, 0x63, 0xd3, 0x7e, 0x5a, 0x5d, 0x2f, 0xf5, - 0xa1, 0x59, 0xb8, 0xb0, 0xb7, 0xb6, 0xb1, 0xbc, 0xb9, 0x57, 0x6f, 0xd4, 0x9f, 0x56, 0xed, 0xed, - 0xa5, 0xaa, 0xbd, 0x5c, 0x2a, 0x58, 0x5f, 0xc1, 0x8c, 0x3e, 0xc2, 0x73, 0x5d, 0x84, 0x11, 0x4c, - 0x4b, 0x7d, 0xe6, 0xf1, 0xde, 0xb6, 0x12, 0xc6, 0xc3, 0x0d, 0xa4, 0xe4, 0xc9, 0x22, 0x37, 0xa5, - 0xf8, 0x36, 0x52, 0x80, 0xb4, 0xf3, 0xe0, 0x62, 0xee, 0x79, 0xb0, 0xf5, 0x6d, 0x98, 0xd1, 0x5b, - 0xed, 0xd5, 0x93, 0xf3, 0x0d, 0x1a, 0xdf, 0xa4, 0x04, 0x9d, 0x12, 0x4b, 0x3d, 0xee, 0x22, 0x97, - 0xac, 0xdf, 0x86, 0x12, 0x87, 0x8a, 0xbf, 0xbc, 0x37, 0x84, 0xab, 0xad, 0x60, 0x08, 0x90, 0x17, - 0xd1, 0x16, 0x6f, 0x0b, 0xe7, 0x7d, 0xb7, 0x16, 0xfe, 0xa4, 0x00, 0xf3, 0x89, 0xf8, 0xcd, 0xa5, - 0x43, 0xa7, 0xdd, 0xc6, 0xde, 0x01, 0x46, 0xb7, 0x60, 0x60, 0x7b, 0x73, 0x7b, 0x8b, 0x3b, 0xb7, - 0x66, 0xf8, 0x32, 0x25, 0x45, 0x12, 0xc6, 0xa6, 0x10, 0xe8, 0x09, 0x5c, 0x10, 0xd1, 0x3c, 0xb2, - 0x8a, 0x1b, 0x25, 0x57, 0xf2, 0x63, 0x83, 0xd2, 0x78, 0xe8, 0x3d, 0x1e, 0x6c, 0xfa, 0xcb, 0xc7, - 0x6e, 0x80, 0x5b, 0xd4, 0x60, 0x9f, 0x5c, 0x44, 0x71, 0xb0, 0xa9, 0xa8, 0xb1, 0x55, 0x30, 0x76, - 0x11, 0xc0, 0xfa, 0x9d, 0x02, 0xcc, 0x65, 0xc4, 0xa3, 0xa2, 0x77, 0xb4, 0xe1, 0x4c, 0x2b, 0xc3, - 0x11, 0x20, 0xab, 0x7d, 0x7c, 0x3c, 0x4b, 0x4a, 0x88, 0x53, 0xff, 0x19, 0x42, 0x9c, 0x56, 0xfb, - 0xe2, 0xb0, 0xa6, 0x1a, 0xc0, 0x88, 0x28, 0xb7, 0xa6, 0x60, 0x42, 0xe3, 0x9b, 0x65, 0xc1, 0xb8, - 0xda, 0x32, 0x99, 0x9c, 0x25, 0xbf, 0x25, 0x27, 0x87, 0xfc, 0x6d, 0xfd, 0x83, 0x02, 0xcc, 0xd0, - 0x21, 0x1e, 0xb8, 0x64, 0x37, 0xc6, 0x1c, 0x5a, 0xd4, 0x46, 0xb2, 0xa0, 0x8d, 0x24, 0x01, 0x2b, - 0x87, 0xf4, 0x71, 0x6a, 0x48, 0x0b, 0xa6, 0x21, 0x51, 0x4b, 0xd0, 0xf5, 0x3d, 0x6d, 0x24, 0xca, - 0x09, 0xc2, 0xef, 0x16, 0x60, 0x5a, 0xe9, 0x93, 0xec, 0xff, 0x7d, 0xad, 0x4b, 0x97, 0x0d, 0x5d, - 0x4a, 0x31, 0xb9, 0x96, 0xea, 0xd1, 0x37, 0xf2, 0x7a, 0xd4, 0x95, 0xc7, 0x7f, 0x5e, 0x80, 0x59, - 0x23, 0x0f, 0xd0, 0x45, 0xa2, 0x6e, 0x35, 0x03, 0x1c, 0x71, 0xf6, 0xf2, 0x5f, 0xa4, 0x7c, 0x2d, - 0x0c, 0x8f, 0x71, 0xc0, 0x1d, 0x56, 0xfc, 0x17, 0xfa, 0x06, 0x4c, 0x6c, 0xe1, 0xc0, 0xf5, 0x5b, - 0x2c, 0xf8, 0x8d, 0x05, 0x08, 0x4c, 0xd8, 0x7a, 0x21, 0x5a, 0x80, 0xd1, 0x6a, 0xfb, 0xc0, 0x0f, - 0xdc, 0xe8, 0x90, 0x1d, 0xe2, 0x8c, 0xda, 0x71, 0x01, 0xa1, 0xbd, 0xec, 0x1e, 0x88, 0x98, 0x97, - 0x09, 0x9b, 0xff, 0x42, 0xf3, 0x30, 0x2c, 0x9c, 0x3c, 0xd4, 0x45, 0x64, 0x8b, 0x9f, 0x04, 0xe3, - 0x0b, 0x9b, 0x2e, 0x02, 0x7a, 0x41, 0xca, 0xe6, 0xbf, 0xac, 0xdb, 0x30, 0x63, 0xe2, 0xa3, 0x71, - 0xc9, 0xfc, 0xcd, 0x22, 0x4c, 0x57, 0x5b, 0xad, 0xa7, 0x0f, 0xab, 0xec, 0x58, 0x51, 0xec, 0xfd, - 0xf7, 0x60, 0x60, 0xcd, 0x73, 0x23, 0xae, 0xe1, 0x88, 0xc8, 0x6d, 0x03, 0x24, 0x81, 0x22, 0x33, - 0x44, 0xfe, 0x47, 0x36, 0x4c, 0xaf, 0x7c, 0xed, 0x86, 0x91, 0xeb, 0x1d, 0xa8, 0xe1, 0xdf, 0xc5, - 0x5e, 0xc2, 0xbf, 0x57, 0xfb, 0x6c, 0x13, 0x32, 0xda, 0x86, 0x8b, 0x1b, 0xf8, 0xa5, 0x61, 0x09, - 0xc9, 0x5b, 0x31, 0xca, 0x46, 0x4f, 0xad, 0x9c, 0x0c, 0x5c, 0x75, 0x85, 0xfe, 0x46, 0x91, 0x5e, - 0x9a, 0x53, 0x06, 0xc6, 0x5b, 0xde, 0x81, 0x19, 0xa5, 0x43, 0xb1, 0x9c, 0x62, 0x3c, 0xa9, 0x98, - 0x87, 0xa3, 0x6e, 0x24, 0x23, 0x3a, 0xda, 0x83, 0x39, 0xbd, 0x53, 0x31, 0x65, 0x7d, 0x33, 0x98, - 0x40, 0x56, 0xfb, 0xec, 0x2c, 0x6c, 0xb4, 0x08, 0xfd, 0xd5, 0xe6, 0x73, 0xce, 0x16, 0xf3, 0x94, - 0xb1, 0x91, 0x55, 0x9b, 0xcf, 0x57, 0xfb, 0x6c, 0x02, 0xac, 0xed, 0x87, 0x7f, 0x5b, 0x80, 0xb9, - 0x8c, 0x19, 0x46, 0x57, 0x01, 0x58, 0xa1, 0xf2, 0x45, 0x50, 0x4a, 0x88, 0x82, 0xc6, 0xcf, 0xa5, - 0x5f, 0x75, 0xd8, 0xcc, 0x4c, 0xca, 0x0b, 0x26, 0x71, 0x85, 0xad, 0x00, 0xa1, 0x2d, 0x71, 0xf4, - 0xce, 0xee, 0xb9, 0xe8, 0x62, 0x5b, 0xa9, 0xd1, 0xce, 0xdc, 0x93, 0xf7, 0x5b, 0x54, 0x12, 0xdc, - 0xa5, 0xb9, 0x94, 0x1c, 0x85, 0x1c, 0x34, 0xba, 0x05, 0x43, 0xac, 0x90, 0xcf, 0xa1, 0xb8, 0x74, - 0x1a, 0x03, 0xf3, 0x7a, 0xeb, 0x1f, 0x15, 0xe0, 0x22, 0xfb, 0x22, 0xa6, 0xb6, 0xc6, 0xb7, 0xb5, - 0xad, 0x71, 0x5d, 0x76, 0xd8, 0x04, 0xac, 0xed, 0x8e, 0x9a, 0x7e, 0x29, 0xa2, 0xd7, 0x5d, 0xa1, - 0x22, 0xa9, 0xeb, 0xf6, 0x9f, 0x14, 0x84, 0x87, 0x27, 0xbd, 0x74, 0x57, 0x60, 0xfc, 0xf5, 0x96, - 0xac, 0x86, 0x86, 0xde, 0x67, 0x2b, 0xaa, 0x98, 0x3f, 0xd2, 0xdc, 0x45, 0xf5, 0x29, 0x94, 0xb3, - 0x59, 0xd3, 0x6d, 0x59, 0x59, 0x0f, 0x0d, 0xd8, 0xaf, 0x33, 0x9d, 0xc7, 0x29, 0x3a, 0xf5, 0x57, - 0x5e, 0x53, 0xcc, 0xe8, 0xcd, 0x64, 0x98, 0x68, 0x66, 0xe8, 0x9d, 0xda, 0xdb, 0x62, 0x7c, 0x94, - 0xc0, 0x17, 0x27, 0x55, 0xf6, 0xd4, 0xee, 0xff, 0x71, 0x51, 0x5f, 0x8b, 0xaf, 0xd3, 0xe8, 0x12, - 0x4c, 0x6c, 0xe0, 0x97, 0xa9, 0x76, 0x69, 0x58, 0x91, 0x87, 0x5f, 0x36, 0x94, 0xb6, 0xd5, 0x48, - 0x12, 0x0d, 0x07, 0xed, 0xc3, 0xa4, 0x90, 0x1a, 0xbd, 0x0a, 0x4f, 0x76, 0xc9, 0x8f, 0xb4, 0x90, - 0x71, 0x25, 0x27, 0x41, 0xf1, 0xfc, 0xf7, 0xb3, 0xb5, 0x05, 0xf3, 0x69, 0xee, 0xf1, 0xd6, 0xde, - 0xeb, 0x36, 0xf7, 0xcc, 0x15, 0xd2, 0xd2, 0xd7, 0xc1, 0x2a, 0x75, 0x4f, 0x49, 0x18, 0xe9, 0x6f, - 0xb8, 0x97, 0x9c, 0x0c, 0x1a, 0x9e, 0x24, 0x26, 0x43, 0x8d, 0xa0, 0x11, 0x51, 0xc3, 0x4b, 0xd4, - 0xc3, 0xa7, 0x52, 0xe2, 0x1d, 0xbb, 0x0d, 0xc3, 0xbc, 0x28, 0x71, 0xb3, 0x3d, 0x5e, 0x95, 0x02, - 0xc0, 0xfa, 0xbd, 0x02, 0x5c, 0xa2, 0xfe, 0x46, 0xd7, 0x3b, 0x68, 0xe3, 0x9d, 0x50, 0x0f, 0xfc, - 0x7d, 0x57, 0x13, 0x34, 0x73, 0x19, 0x17, 0xb3, 0x7e, 0x5e, 0xe2, 0xe5, 0x0f, 0x0a, 0x50, 0x36, - 0xf5, 0xed, 0x7c, 0x25, 0xcc, 0x1d, 0x6e, 0xcc, 0x15, 0xb9, 0x27, 0x85, 0xa1, 0xcb, 0x36, 0xc5, - 0x60, 0xc9, 0x20, 0xc9, 0xff, 0x9a, 0x68, 0xf9, 0x3f, 0x05, 0x98, 0x59, 0x0b, 0x55, 0x05, 0x9f, - 0x33, 0xee, 0x8e, 0xe9, 0x9e, 0x28, 0x9d, 0xd7, 0xd5, 0x3e, 0xd3, 0x3d, 0xd0, 0xf7, 0x94, 0x8b, - 0x47, 0xc5, 0xbc, 0x0b, 0xa0, 0x44, 0x95, 0x94, 0x17, 0xa8, 0x6e, 0xc2, 0xc0, 0x06, 0x51, 0xa7, - 0xfa, 0xf9, 0xfa, 0x63, 0x18, 0xa4, 0x88, 0xde, 0x11, 0x22, 0x5d, 0x26, 0x3f, 0xd0, 0xc3, 0xd4, - 0x4d, 0xa4, 0x81, 0xee, 0x17, 0x1c, 0x57, 0xfb, 0x92, 0x97, 0x92, 0x6a, 0x23, 0x30, 0xb4, 0xed, - 0x04, 0x07, 0x38, 0xb2, 0xbe, 0x0f, 0x65, 0x1e, 0x90, 0xc3, 0x3c, 0xb8, 0x34, 0x6c, 0x27, 0x8c, - 0x63, 0xae, 0xf2, 0x82, 0x68, 0xae, 0x02, 0xd4, 0x23, 0x27, 0x88, 0xd6, 0xbc, 0x16, 0xfe, 0x9a, - 0x05, 0x7c, 0xd9, 0x4a, 0x89, 0xf5, 0x3e, 0x8c, 0xca, 0x21, 0x50, 0x0b, 0x50, 0xd1, 0x18, 0xe9, - 0x70, 0x66, 0xb4, 0xbb, 0x51, 0xe2, 0x42, 0xd4, 0x03, 0x98, 0x4d, 0x4c, 0x45, 0x7c, 0x57, 0x4f, - 0x5a, 0x66, 0x34, 0x36, 0xcd, 0x96, 0xbf, 0xad, 0x25, 0xb8, 0x90, 0x9a, 0x69, 0x84, 0xe8, 0x35, - 0x3a, 0x66, 0xdd, 0x93, 0x0f, 0x4a, 0xbd, 0xbe, 0x4a, 0xca, 0xb6, 0xd7, 0xeb, 0x2c, 0xb6, 0x9d, - 0x94, 0x6d, 0xaf, 0xd7, 0x6b, 0x43, 0x6c, 0xe5, 0x58, 0xff, 0xbc, 0x48, 0x8d, 0xde, 0x14, 0x0f, - 0x12, 0xfe, 0x43, 0xd5, 0x87, 0x59, 0x83, 0x51, 0x3a, 0xe2, 0x65, 0x71, 0x7b, 0x23, 0x3f, 0x86, - 0x64, 0xe4, 0x27, 0x27, 0x95, 0x3e, 0x1a, 0x38, 0x12, 0xa3, 0xa1, 0xcf, 0x60, 0x78, 0xc5, 0x6b, - 0x51, 0x0a, 0xfd, 0x67, 0xa0, 0x20, 0x90, 0xc8, 0x3c, 0xd0, 0x2e, 0x13, 0x55, 0x88, 0xbb, 0x9d, - 0x6c, 0xa5, 0x84, 0xb2, 0x99, 0xc6, 0xe4, 0x0d, 0xd2, 0x29, 0x62, 0x3f, 0xe8, 0xcd, 0x47, 0xd2, - 0x05, 0xf1, 0x9a, 0xc2, 0xa8, 0x2d, 0x7f, 0x23, 0x0b, 0x06, 0x37, 0x83, 0x16, 0xbf, 0x11, 0x3d, - 0xb9, 0x38, 0xce, 0x97, 0x17, 0x2d, 0xb3, 0x59, 0x95, 0xf5, 0xbf, 0x0a, 0x30, 0xf7, 0x08, 0x47, - 0xc6, 0x75, 0xa3, 0x71, 0xa5, 0xf0, 0xc6, 0x5c, 0x29, 0xbe, 0x0e, 0x57, 0xe4, 0xa8, 0xfb, 0xb3, - 0x46, 0x3d, 0x90, 0x35, 0xea, 0xc1, 0xec, 0x51, 0x3f, 0x82, 0x21, 0x36, 0x54, 0x74, 0x03, 0x06, - 0xd7, 0x22, 0x7c, 0x14, 0x3b, 0x43, 0xd4, 0x08, 0x38, 0x9b, 0xd5, 0x11, 0x8b, 0x6b, 0xdd, 0x09, - 0x23, 0x71, 0x9b, 0x62, 0xd4, 0x16, 0x3f, 0xad, 0x1f, 0xd1, 0x7b, 0x5f, 0xeb, 0x7e, 0xf3, 0xb9, - 0xe2, 0xa9, 0x1e, 0x66, 0xbb, 0x32, 0x79, 0xb2, 0x41, 0xa0, 0x58, 0x8d, 0x2d, 0x20, 0xd0, 0x35, - 0x18, 0x5b, 0xf3, 0x1e, 0xfa, 0x41, 0x13, 0x6f, 0x7a, 0x6d, 0x46, 0x7d, 0xc4, 0x56, 0x8b, 0xb8, - 0x07, 0x87, 0xb7, 0x10, 0x7b, 0x70, 0x68, 0x41, 0xc2, 0x83, 0x43, 0xca, 0x76, 0x17, 0x6d, 0x56, - 0xc7, 0x1d, 0x44, 0xe4, 0xef, 0x3c, 0xf7, 0x8d, 0xf4, 0xf3, 0x74, 0x03, 0xdc, 0x87, 0x4b, 0x36, - 0xee, 0xb4, 0x1d, 0xa2, 0x70, 0x1d, 0xf9, 0x0c, 0x5e, 0x8e, 0xf9, 0x9a, 0x21, 0xfc, 0x5e, 0x8f, - 0x87, 0x90, 0x5d, 0x2e, 0xe6, 0x74, 0xf9, 0x08, 0xae, 0x3f, 0xc2, 0x91, 0x2e, 0xe5, 0x62, 0x3f, - 0x38, 0x1f, 0xfc, 0x2a, 0x8c, 0x84, 0xba, 0x0f, 0xff, 0xaa, 0x38, 0x3a, 0x32, 0x21, 0xee, 0x3e, - 0x10, 0xa7, 0x5c, 0x9c, 0x8e, 0xfc, 0xcb, 0xfa, 0x1c, 0x2a, 0x59, 0xcd, 0xf5, 0x16, 0xae, 0xea, - 0xc2, 0xb5, 0x6c, 0x02, 0xf2, 0xb3, 0x28, 0xfc, 0xfd, 0xd2, 0x74, 0xce, 0xef, 0xad, 0x7e, 0x44, - 0xc0, 0xff, 0xb0, 0x6a, 0x22, 0x70, 0xef, 0x0d, 0xba, 0xdb, 0xa0, 0x47, 0xe9, 0x3a, 0x81, 0x98, - 0xaf, 0x55, 0x18, 0x11, 0x65, 0x9c, 0xaf, 0x73, 0xc6, 0x9e, 0x0a, 0x86, 0xb6, 0x04, 0x01, 0x89, - 0x66, 0xfd, 0x48, 0x1c, 0x2b, 0xe9, 0x18, 0xbd, 0xdd, 0x29, 0xea, 0xe5, 0x1c, 0xc9, 0xf2, 0xe1, - 0x92, 0x4e, 0x5b, 0x3d, 0x2e, 0x28, 0x29, 0xc7, 0x05, 0xec, 0x94, 0xe0, 0x9a, 0xee, 0xbe, 0x2e, - 0xf2, 0x75, 0x19, 0x17, 0xa1, 0xab, 0xea, 0xa1, 0xc0, 0x78, 0xfa, 0x12, 0xd6, 0x3d, 0x28, 0x9b, - 0x1a, 0x54, 0x1c, 0x28, 0xd2, 0xf3, 0xcc, 0x9f, 0x04, 0xf9, 0xb5, 0x02, 0x58, 0x5a, 0x74, 0x14, - 0x9d, 0xa1, 0xad, 0xc0, 0x7f, 0xe1, 0xb6, 0x94, 0x03, 0xad, 0x77, 0x84, 0x60, 0xa3, 0xf1, 0x58, - 0xec, 0x6a, 0x41, 0x32, 0xa8, 0x9a, 0x4b, 0xbb, 0x7b, 0x30, 0xbc, 0x81, 0xbf, 0x8e, 0xc5, 0x0f, - 0xd3, 0x45, 0x69, 0xc4, 0xd4, 0x73, 0xac, 0xde, 0xa9, 0x15, 0x60, 0x44, 0x11, 0xba, 0x91, 0xdb, - 0x07, 0xde, 0xff, 0x7d, 0x28, 0x25, 0xeb, 0xf8, 0xdc, 0x57, 0x94, 0x48, 0x90, 0x34, 0x85, 0xdd, - 0xfb, 0x2c, 0xa0, 0x5c, 0x44, 0x15, 0x75, 0x24, 0xe5, 0x14, 0xbd, 0xb3, 0xf7, 0x1e, 0x7d, 0x04, - 0xb0, 0xed, 0x47, 0x4e, 0x7b, 0x89, 0xfa, 0xb8, 0xa8, 0xe0, 0xa7, 0x91, 0x3a, 0xb3, 0x11, 0x29, - 0x6d, 0x24, 0x2f, 0xff, 0x2a, 0xc0, 0xd6, 0x77, 0xe9, 0x8e, 0x34, 0x77, 0xba, 0xb7, 0x4d, 0xb2, - 0x04, 0x37, 0x12, 0xd1, 0x08, 0xaf, 0x41, 0x24, 0x82, 0x59, 0xc2, 0x7e, 0xa2, 0xc2, 0x3c, 0x0a, - 0xfc, 0xe3, 0xce, 0x2f, 0x66, 0xd6, 0xff, 0x43, 0x81, 0x85, 0x50, 0xaa, 0xcd, 0xf2, 0x89, 0x5e, - 0x02, 0x88, 0x4b, 0x13, 0xa1, 0xf4, 0xb2, 0x62, 0xf7, 0x3e, 0x33, 0x5e, 0xe9, 0x39, 0xc5, 0x01, - 0x23, 0xa0, 0xa0, 0xfd, 0x62, 0x67, 0xf2, 0x01, 0x0d, 0x41, 0x90, 0xad, 0xf7, 0xc6, 0xf7, 0x0f, - 0x84, 0x8f, 0xe6, 0x8c, 0x78, 0x87, 0x30, 0x43, 0xf6, 0x2e, 0xb1, 0x50, 0xfc, 0xc0, 0x8d, 0x5e, - 0x09, 0xac, 0x2d, 0x7e, 0x8f, 0x93, 0x61, 0x7d, 0xfa, 0xb3, 0x93, 0xca, 0x87, 0x67, 0xb9, 0x14, - 0x27, 0x68, 0x6e, 0xcb, 0xbb, 0x9f, 0xd6, 0x1c, 0xf4, 0x2f, 0xd9, 0xeb, 0x54, 0x54, 0xd9, 0xeb, - 0x52, 0x54, 0xd9, 0xeb, 0xd6, 0xff, 0x28, 0x42, 0x85, 0x5d, 0xfd, 0xa6, 0x91, 0x2b, 0xb1, 0xad, - 0xa4, 0x84, 0xc2, 0xf4, 0xea, 0x21, 0x48, 0x5c, 0xed, 0x2e, 0xf6, 0x72, 0xb5, 0xfb, 0x57, 0x5e, - 0xdf, 0xab, 0x5a, 0x7b, 0xfb, 0xf4, 0xa4, 0x72, 0x23, 0x76, 0x0c, 0xb0, 0x5a, 0x93, 0x87, 0x20, - 0xa3, 0x89, 0xb4, 0x4b, 0x63, 0xe0, 0x35, 0x5c, 0x1a, 0xf7, 0x60, 0x98, 0x9a, 0x1e, 0x6b, 0x5b, - 0x3c, 0xde, 0x92, 0x2e, 0x4f, 0xfa, 0x4a, 0x43, 0xc3, 0x55, 0x9f, 0x7f, 0x11, 0x60, 0xd6, 0x3f, - 0x2c, 0xc2, 0xb5, 0x6c, 0x9e, 0xf3, 0xbe, 0x2d, 0x03, 0xc4, 0x31, 0x33, 0x79, 0x31, 0x3a, 0x74, - 0xef, 0xbc, 0xc4, 0xfb, 0x32, 0x46, 0x4e, 0xc1, 0x23, 0x5a, 0x8b, 0xb8, 0x30, 0x95, 0x38, 0x0d, - 0xd3, 0xee, 0x51, 0xf1, 0xd7, 0xc5, 0x78, 0x91, 0xf6, 0xba, 0x18, 0x2f, 0x43, 0xfb, 0x30, 0xb7, - 0x15, 0xb8, 0x2f, 0x9c, 0x08, 0x3f, 0xc1, 0xaf, 0xb6, 0xfc, 0xb6, 0xdb, 0x7c, 0xb5, 0xc2, 0xaf, - 0xfa, 0xb0, 0x5b, 0x70, 0xb7, 0x4e, 0x4f, 0x2a, 0xdf, 0xe8, 0x30, 0x10, 0xb2, 0x31, 0x1b, 0x1d, - 0x0a, 0xd4, 0x48, 0xdf, 0xfe, 0xc9, 0x22, 0x64, 0xfd, 0xfb, 0x02, 0x5c, 0xa6, 0x0a, 0x35, 0x3f, - 0x59, 0x10, 0x8d, 0xbf, 0x56, 0xa8, 0xa6, 0x3a, 0x40, 0xbe, 0x16, 0x69, 0xa8, 0xa6, 0x76, 0xa1, - 0xcc, 0xd6, 0xc0, 0xd0, 0x1a, 0x8c, 0xf1, 0xdf, 0x8a, 0xfb, 0x78, 0x56, 0x11, 0x58, 0x74, 0xa9, - 0x33, 0xef, 0x11, 0x5d, 0xd8, 0x9c, 0x58, 0x83, 0x5e, 0xb3, 0x56, 0x71, 0xad, 0x9f, 0x16, 0x61, - 0x61, 0x17, 0x07, 0xee, 0xb3, 0x57, 0x19, 0x83, 0xd9, 0x84, 0x19, 0x51, 0x44, 0xc7, 0xac, 0x6f, - 0x31, 0xf6, 0x7e, 0x91, 0xe8, 0x6a, 0x48, 0x00, 0x1a, 0x72, 0xc7, 0x19, 0x11, 0xcf, 0x10, 0x84, - 0xf9, 0x1e, 0x8c, 0x24, 0x1e, 0x60, 0xa0, 0xf3, 0x2f, 0x76, 0x68, 0x3c, 0x55, 0xab, 0x7d, 0xb6, - 0x84, 0x44, 0xbf, 0x9e, 0x7d, 0x44, 0xc9, 0x3d, 0x09, 0xdd, 0x1e, 0xd6, 0xa1, 0x1b, 0x96, 0x6c, - 0x56, 0x47, 0xa9, 0x35, 0x6c, 0xd8, 0xd5, 0x3e, 0x3b, 0xab, 0xa5, 0xda, 0x18, 0x8c, 0x56, 0xe9, - 0xb1, 0x2b, 0x31, 0xdc, 0xff, 0x77, 0x11, 0xae, 0x8a, 0xeb, 0x36, 0x19, 0x6c, 0xfe, 0x12, 0xe6, - 0x44, 0x51, 0xb5, 0x43, 0x14, 0x06, 0xdc, 0xd2, 0x39, 0xcd, 0xde, 0x10, 0x13, 0x9c, 0x76, 0x38, - 0x4c, 0xcc, 0xec, 0x2c, 0xf4, 0xf3, 0x71, 0x88, 0x7e, 0x66, 0x7a, 0x0e, 0x83, 0x3a, 0x26, 0x55, - 0x99, 0xa9, 0xb1, 0x46, 0x93, 0x9f, 0xad, 0x94, 0x43, 0x75, 0xe0, 0x4d, 0x1d, 0xaa, 0xab, 0x7d, - 0x49, 0x97, 0x6a, 0x6d, 0x12, 0xc6, 0x37, 0xf0, 0xcb, 0x98, 0xef, 0x7f, 0xa7, 0x90, 0xb8, 0xb1, - 0x49, 0x34, 0x0c, 0x76, 0x75, 0xb3, 0x10, 0xbf, 0xa8, 0x40, 0x6f, 0x6c, 0xaa, 0x1a, 0x06, 0x03, - 0x5d, 0x83, 0x61, 0x16, 0xb6, 0xdb, 0xea, 0xc1, 0x36, 0x97, 0xf7, 0x66, 0x9a, 0x0c, 0x85, 0x99, - 0xe9, 0x1c, 0xdf, 0x7a, 0x02, 0xd7, 0x79, 0xd4, 0xb8, 0x3e, 0xf9, 0xb4, 0xa1, 0x33, 0x7e, 0xbe, - 0x2c, 0x07, 0xae, 0x3e, 0xc2, 0x49, 0xd1, 0xa3, 0xdd, 0x2b, 0xfa, 0x1c, 0xa6, 0xb4, 0x72, 0x49, - 0x91, 0x6a, 0xa5, 0x72, 0x0d, 0x49, 0xd2, 0x49, 0x68, 0xeb, 0x9a, 0xa9, 0x09, 0xb5, 0xb3, 0x16, - 0xa6, 0x8f, 0x81, 0x05, 0xf1, 0x29, 0x72, 0x78, 0x06, 0xa9, 0x77, 0x4b, 0xd9, 0xd7, 0x4c, 0xe2, - 0xb1, 0x67, 0x91, 0xc4, 0x97, 0x57, 0xd6, 0x5a, 0x13, 0x30, 0xb6, 0xe4, 0x7b, 0x11, 0xfe, 0x9a, - 0xaa, 0x3a, 0xd6, 0x24, 0x8c, 0x8b, 0xaa, 0x36, 0x0e, 0x43, 0xeb, 0xf7, 0xfb, 0xc1, 0xe2, 0x8c, - 0x35, 0x79, 0x4f, 0x05, 0x3f, 0xf6, 0x53, 0x9d, 0xe5, 0x1f, 0xaa, 0x8b, 0xaa, 0x8f, 0x38, 0xae, - 0x65, 0x2b, 0x8f, 0xea, 0x79, 0xcd, 0xb8, 0x54, 0x5b, 0x79, 0xa9, 0xd1, 0xff, 0x20, 0x43, 0x4c, - 0xb2, 0xcd, 0xf6, 0xd6, 0xe9, 0x49, 0xe5, 0x7a, 0x86, 0x98, 0xd4, 0xe8, 0x9a, 0x45, 0xa6, 0xad, - 0xb1, 0x81, 0xab, 0x1c, 0x48, 0x5e, 0x8b, 0x94, 0x35, 0x3c, 0x86, 0x89, 0x15, 0x34, 0xc8, 0x00, - 0xf4, 0x1d, 0xa9, 0x80, 0xa2, 0x1d, 0x9d, 0x97, 0x7c, 0x3f, 0x8a, 0xa8, 0x0d, 0xb5, 0x8a, 0x51, - 0xed, 0x28, 0x25, 0x1a, 0x55, 0x8d, 0x8c, 0xea, 0x11, 0xff, 0x6d, 0x19, 0xbb, 0x4f, 0x3e, 0xa4, - 0x6e, 0x1b, 0xf3, 0x8b, 0x2a, 0x62, 0x5a, 0x8e, 0xcd, 0xa7, 0xdf, 0x85, 0x9e, 0x64, 0x34, 0x7d, - 0x9b, 0x15, 0x73, 0xf4, 0xac, 0x23, 0x17, 0x13, 0x7d, 0xeb, 0xa4, 0x20, 0x6e, 0x2c, 0xa4, 0x8e, - 0x84, 0xcf, 0xaa, 0x49, 0xd6, 0xb4, 0x53, 0xdc, 0x62, 0xc6, 0x29, 0xae, 0x76, 0xe6, 0x15, 0x75, - 0x39, 0xd6, 0xed, 0x7f, 0xf3, 0x63, 0xa0, 0x7f, 0x35, 0x0c, 0x17, 0xb6, 0x9c, 0x03, 0xd7, 0x23, - 0xb2, 0xc7, 0xc6, 0xa1, 0x7f, 0x1c, 0x34, 0x31, 0xaa, 0xc2, 0xa4, 0x1e, 0x3c, 0xda, 0x25, 0x34, - 0x96, 0x88, 0x57, 0xbd, 0x0c, 0x2d, 0xc2, 0xa8, 0xbc, 0xd4, 0xc9, 0x65, 0xa2, 0xe1, 0xb2, 0xe7, - 0x6a, 0x9f, 0x1d, 0x83, 0xa1, 0x8f, 0x34, 0xaf, 0xff, 0x94, 0xbc, 0x9f, 0x4c, 0x61, 0x17, 0x59, - 0x74, 0x9f, 0xe7, 0xb7, 0x74, 0xb9, 0xce, 0x3c, 0xe7, 0x3f, 0x4a, 0x1d, 0x04, 0x0c, 0x6a, 0x3d, - 0x4e, 0x39, 0x5e, 0xe8, 0x27, 0x2d, 0xf3, 0x5d, 0xc3, 0xf4, 0x11, 0x01, 0xfa, 0x3e, 0x8c, 0x3d, - 0x39, 0xde, 0xc7, 0xe2, 0xc8, 0x63, 0x88, 0x8b, 0xf9, 0x64, 0x48, 0x34, 0xaf, 0xdf, 0x7d, 0xc0, - 0xe6, 0xe0, 0xf9, 0xf1, 0x3e, 0x4e, 0x3f, 0x98, 0x49, 0xf6, 0x97, 0x42, 0x0c, 0x1d, 0x42, 0x29, - 0x19, 0xbd, 0x4c, 0x3d, 0xcd, 0xb9, 0x31, 0xd7, 0xf4, 0x29, 0x45, 0xe5, 0x59, 0x4e, 0x16, 0x53, - 0xa9, 0x35, 0x92, 0xa2, 0x8a, 0x7e, 0x15, 0x66, 0x8d, 0x6e, 0x2f, 0xfe, 0x38, 0x67, 0x37, 0x8f, - 0x1a, 0x95, 0x4d, 0x09, 0xae, 0x89, 0x0b, 0x51, 0x5a, 0xcb, 0xe6, 0x56, 0x50, 0x0b, 0xa6, 0x12, - 0x51, 0xb9, 0xfc, 0x6d, 0xe0, 0xec, 0x38, 0x5f, 0x2a, 0x5f, 0xc5, 0x3b, 0x75, 0xc6, 0xb6, 0x92, - 0x24, 0xd1, 0x3a, 0x8c, 0x4a, 0xab, 0x95, 0x3e, 0xd2, 0x60, 0xb6, 0xd0, 0xe7, 0x4f, 0x4f, 0x2a, - 0x33, 0xb1, 0x85, 0xae, 0xd1, 0x8c, 0x09, 0xa0, 0x1f, 0xc3, 0x75, 0xb9, 0x44, 0x37, 0x03, 0xb3, - 0x2f, 0x83, 0x3f, 0xfb, 0x79, 0x3b, 0xb9, 0xc2, 0xb3, 0xe0, 0x77, 0xef, 0xaf, 0xf6, 0xd9, 0xdd, - 0xc9, 0xd6, 0x00, 0x46, 0x02, 0xbe, 0x29, 0x1f, 0x0f, 0x8c, 0x0c, 0x94, 0x06, 0xd9, 0xba, 0x11, - 0xd1, 0xce, 0x7f, 0x3c, 0xc4, 0xae, 0x0f, 0xee, 0x78, 0xee, 0x33, 0x37, 0xde, 0xbf, 0xaa, 0x8f, - 0x24, 0x7e, 0x07, 0x9c, 0x6b, 0x30, 0x19, 0x2f, 0x7e, 0x4b, 0x77, 0x4a, 0xb1, 0xab, 0x3b, 0xe5, - 0x81, 0x72, 0x64, 0xa0, 0xbc, 0xb2, 0xc5, 0xbe, 0x54, 0xba, 0xfb, 0x22, 0x3e, 0x4b, 0xf8, 0x0a, - 0x86, 0xe8, 0xf3, 0x42, 0xec, 0x3c, 0x66, 0x6c, 0xf1, 0x0e, 0x97, 0x5a, 0x39, 0xdd, 0x67, 0xef, - 0x11, 0xf1, 0x2b, 0xc1, 0xf4, 0x51, 0xae, 0x36, 0x2d, 0x50, 0x1f, 0x13, 0x62, 0x20, 0x68, 0x1b, - 0xa6, 0xb7, 0x02, 0xdc, 0xe2, 0x31, 0xb7, 0x9d, 0x80, 0x9b, 0x98, 0xcc, 0x78, 0xa5, 0xaf, 0x84, - 0x76, 0x44, 0x75, 0x03, 0xcb, 0x7a, 0x55, 0xfa, 0x1b, 0xd0, 0xd1, 0x0a, 0x4c, 0xd6, 0xb1, 0x13, - 0x34, 0x0f, 0x9f, 0xe0, 0x57, 0xe4, 0xa3, 0xa5, 0x3d, 0xad, 0x1b, 0xd2, 0x1a, 0x32, 0x5e, 0x5a, - 0xa5, 0x1e, 0xde, 0xeb, 0x48, 0xe8, 0xbb, 0x30, 0x54, 0xf7, 0x83, 0xa8, 0xf6, 0x8a, 0xef, 0x69, - 0xe1, 0xb1, 0x67, 0x85, 0xb5, 0x4b, 0xe2, 0x79, 0xe1, 0xd0, 0x0f, 0xa2, 0xc6, 0xbe, 0xca, 0x3e, - 0x8e, 0x87, 0x5e, 0xc1, 0x8c, 0xbe, 0x9f, 0x1e, 0xba, 0x6d, 0x22, 0x84, 0x46, 0x78, 0x4c, 0x93, - 0x69, 0xd3, 0x32, 0x90, 0xda, 0x2d, 0x4e, 0xfd, 0x5a, 0x72, 0xd7, 0x3e, 0xa3, 0xf5, 0xea, 0xe3, - 0xe4, 0x26, 0x7c, 0xf4, 0x94, 0xbe, 0xca, 0xcc, 0x46, 0x54, 0x0d, 0x59, 0xb4, 0x2b, 0x7b, 0x16, - 0x85, 0x3e, 0x65, 0x71, 0x4c, 0xf7, 0x24, 0xe5, 0x84, 0x13, 0x26, 0x1f, 0xdb, 0xb6, 0x53, 0xa8, - 0x68, 0x0b, 0x2e, 0xec, 0x84, 0x78, 0x2b, 0xc0, 0x2f, 0x5c, 0xfc, 0x52, 0xd0, 0x63, 0xef, 0xa8, - 0xd0, 0x69, 0x22, 0xf4, 0x3a, 0xac, 0xd6, 0x44, 0x30, 0x8d, 0x5c, 0xfe, 0x08, 0xc6, 0x94, 0x75, - 0x62, 0xb8, 0x17, 0x3e, 0xa3, 0xde, 0x0b, 0x1f, 0x55, 0xef, 0x7f, 0xff, 0xe3, 0x02, 0x2c, 0x98, - 0xd7, 0x1f, 0x77, 0x58, 0x6c, 0xc2, 0xa8, 0x2c, 0x94, 0xb7, 0x1c, 0x84, 0xd2, 0x93, 0xf8, 0x68, - 0xb2, 0x4d, 0x20, 0x76, 0xab, 0xda, 0xe9, 0x98, 0xc6, 0x6b, 0x78, 0x22, 0xff, 0xcd, 0x30, 0xcc, - 0x90, 0x3e, 0xa6, 0xf6, 0xf6, 0xe7, 0xf4, 0x7d, 0x07, 0x5a, 0xa6, 0x38, 0xd6, 0xb8, 0x8d, 0xcd, - 0xca, 0xa9, 0x02, 0xa1, 0xbd, 0x11, 0xac, 0x20, 0xa0, 0xf7, 0xd5, 0x73, 0xdc, 0xa2, 0xf2, 0x76, - 0xb2, 0x28, 0x54, 0x87, 0x10, 0x1f, 0xf0, 0xbe, 0xa3, 0x1d, 0x23, 0xf6, 0x2c, 0x28, 0x06, 0x7a, - 0x15, 0x14, 0x3b, 0x52, 0x50, 0xb0, 0x77, 0x03, 0xde, 0x56, 0x04, 0xc5, 0xf9, 0x4b, 0x88, 0xa1, - 0xf3, 0x96, 0x10, 0xc3, 0x6f, 0x26, 0x21, 0x46, 0x5e, 0x53, 0x42, 0x3c, 0x24, 0x36, 0x33, 0xb1, - 0xe3, 0xa5, 0x8b, 0x98, 0x6d, 0x52, 0x6e, 0x17, 0x53, 0xe3, 0xdf, 0xe4, 0x27, 0x4e, 0x60, 0x65, - 0x4a, 0x1a, 0xf8, 0xab, 0x91, 0x34, 0x63, 0xe7, 0x2c, 0x69, 0xc6, 0xff, 0x8a, 0x24, 0xcd, 0x9f, - 0x17, 0xd8, 0x31, 0xc6, 0xff, 0x8f, 0x22, 0xe6, 0x4d, 0x8e, 0x16, 0x7e, 0x3d, 0xbe, 0x72, 0xcd, - 0xaf, 0x87, 0x07, 0x4e, 0xf3, 0x79, 0x7c, 0xb6, 0xf3, 0x43, 0xb2, 0x3f, 0xd4, 0x0a, 0xfa, 0xa4, - 0x55, 0xac, 0x96, 0xeb, 0x95, 0xbb, 0xf7, 0xc5, 0xc6, 0xe1, 0x37, 0xcf, 0x59, 0xb1, 0xbe, 0x71, - 0x54, 0x04, 0x7a, 0xd1, 0x60, 0xca, 0xb2, 0xd9, 0x8d, 0x61, 0x63, 0x0f, 0x3e, 0x48, 0xdf, 0x79, - 0xa5, 0x7a, 0x5f, 0x7c, 0xe7, 0x55, 0x65, 0x63, 0x7c, 0xfb, 0x75, 0x07, 0x2e, 0xdb, 0xf8, 0xc8, - 0x7f, 0x81, 0xcf, 0x97, 0xec, 0x0f, 0xe0, 0x92, 0x4e, 0x70, 0xa7, 0xd3, 0xa2, 0x2f, 0xfa, 0xb0, - 0x08, 0x0f, 0xe3, 0xab, 0xa7, 0x1c, 0x81, 0xbd, 0x7a, 0xca, 0xde, 0xc1, 0x23, 0x7f, 0xaa, 0xf2, - 0x96, 0xd6, 0x59, 0x3e, 0x2c, 0xe8, 0xc4, 0xab, 0xad, 0x16, 0xcd, 0xc0, 0xd2, 0x74, 0x3b, 0x8e, - 0x17, 0xa1, 0x4d, 0x18, 0x53, 0x7e, 0x26, 0xac, 0x32, 0xa5, 0x86, 0xcd, 0x7e, 0x27, 0x2e, 0x50, - 0xad, 0x47, 0x05, 0xce, 0xc2, 0x50, 0x49, 0xb2, 0x87, 0xb0, 0x4c, 0x6d, 0xb3, 0x06, 0x13, 0xca, - 0x4f, 0xe9, 0xe4, 0xa0, 0x6f, 0x75, 0x29, 0x2d, 0xe8, 0x0c, 0xd3, 0x51, 0xac, 0x26, 0x94, 0x4d, - 0x4c, 0xa3, 0x2f, 0xcd, 0xbc, 0x42, 0x2b, 0xf1, 0x9b, 0x35, 0xdd, 0x23, 0x6b, 0xa6, 0xb2, 0xde, - 0xab, 0xb1, 0x7e, 0x73, 0x00, 0x2e, 0xf3, 0xc9, 0x38, 0xcf, 0x19, 0x47, 0x3f, 0x82, 0x31, 0x65, - 0x8e, 0x39, 0xd3, 0xaf, 0x89, 0x60, 0xbc, 0xac, 0xb5, 0xc0, 0xac, 0xc7, 0x63, 0x5a, 0xd0, 0x48, - 0x4c, 0x37, 0xb1, 0x1e, 0xd5, 0x65, 0xd3, 0x86, 0x49, 0x7d, 0xa2, 0xb9, 0x01, 0x7d, 0xc3, 0xd8, - 0x88, 0x0e, 0x2a, 0x9e, 0xd0, 0x6b, 0x35, 0x8c, 0xd3, 0x4d, 0xec, 0xe0, 0xc4, 0x22, 0xfa, 0x1a, - 0x2e, 0xa4, 0x66, 0x99, 0x3b, 0x84, 0x6e, 0x1a, 0x1b, 0x4c, 0x41, 0xb3, 0x84, 0x12, 0x01, 0x2d, - 0xce, 0x6c, 0x36, 0xdd, 0x08, 0x6a, 0xc1, 0xb8, 0x3a, 0xf1, 0xdc, 0xc2, 0xbf, 0x9e, 0xc3, 0x4a, - 0x06, 0xc8, 0x94, 0x22, 0xce, 0x4b, 0x3a, 0xf7, 0xaf, 0x74, 0xa7, 0x94, 0x06, 0x3c, 0x02, 0x43, - 0xec, 0x37, 0x11, 0x01, 0x5b, 0x01, 0x0e, 0xb1, 0xd7, 0xc4, 0x6a, 0x5c, 0xe5, 0x9b, 0x8a, 0x80, - 0x7f, 0x57, 0x80, 0x79, 0x13, 0xdd, 0x3a, 0xf6, 0x5a, 0x68, 0x0b, 0x4a, 0xc9, 0x86, 0xf8, 0xaa, - 0xb6, 0xc4, 0x57, 0x21, 0xbb, 0x4b, 0xc4, 0xe2, 0x4f, 0x75, 0x73, 0x03, 0x2e, 0x28, 0x65, 0x67, - 0x0c, 0x60, 0x4d, 0xa3, 0xaa, 0x4e, 0xbb, 0x55, 0x1a, 0xa7, 0xbb, 0xec, 0x1f, 0x39, 0xae, 0x47, - 0x14, 0x44, 0xe5, 0xd9, 0x1a, 0x88, 0x4b, 0x39, 0x6f, 0x98, 0x63, 0x8b, 0x96, 0x8a, 0x60, 0x6e, - 0x09, 0x62, 0x7d, 0x4a, 0x25, 0x38, 0x77, 0x87, 0xb0, 0x6b, 0x84, 0x92, 0xd8, 0x35, 0x18, 0xdc, - 0x5e, 0xaf, 0x2f, 0x55, 0xf9, 0xa5, 0x44, 0x76, 0x95, 0xbd, 0x1d, 0x36, 0x9a, 0x8e, 0xcd, 0x2a, - 0xac, 0x4f, 0xe8, 0x43, 0xa7, 0xfc, 0x99, 0x4c, 0x89, 0xf7, 0x16, 0x0c, 0xf3, 0x22, 0x8e, 0x49, - 0xc3, 0x60, 0xda, 0x1c, 0x4a, 0xd4, 0x59, 0x5b, 0x42, 0xbf, 0x6e, 0x63, 0x27, 0x54, 0x3e, 0xcc, - 0x1f, 0x12, 0xd3, 0x9b, 0x95, 0xf1, 0xef, 0xf2, 0xa4, 0x7c, 0x85, 0x9a, 0x16, 0x33, 0x47, 0x9f, - 0x80, 0xb1, 0xe5, 0x5f, 0xd6, 0x3a, 0x7d, 0x76, 0x62, 0x73, 0x6d, 0x79, 0x89, 0x70, 0x95, 0x33, - 0x4b, 0x4c, 0xc7, 0x5d, 0x1a, 0x23, 0x1a, 0x61, 0xf5, 0x4a, 0x22, 0x65, 0x0d, 0xdd, 0xe4, 0xfc, - 0xb1, 0x15, 0x05, 0xc4, 0x7a, 0x20, 0x1f, 0xb1, 0x30, 0x50, 0xcb, 0x7a, 0xbc, 0x79, 0x83, 0x3e, - 0xcf, 0xf1, 0x88, 0x1e, 0xb0, 0x9f, 0x47, 0x27, 0x7e, 0xaf, 0xc0, 0xde, 0xfb, 0xa8, 0x6f, 0x2a, - 0x79, 0x2e, 0xbc, 0x67, 0xbe, 0x72, 0x8a, 0xa0, 0x34, 0xf3, 0xc4, 0xf5, 0x5a, 0xea, 0x29, 0x82, - 0x73, 0x1c, 0x1d, 0x8a, 0xd4, 0x1c, 0x8d, 0xe7, 0xae, 0xd7, 0xb2, 0x93, 0xd0, 0xe8, 0x23, 0x98, - 0x50, 0x8a, 0xe4, 0x67, 0x82, 0x3d, 0x13, 0xaa, 0xa2, 0xbb, 0x2d, 0x5b, 0x87, 0xb4, 0x7e, 0xbb, - 0x08, 0x17, 0x77, 0x3a, 0x21, 0x0d, 0xda, 0x5d, 0xf3, 0x5e, 0x60, 0x2f, 0xf2, 0x83, 0x57, 0x34, - 0xe8, 0x10, 0xbd, 0x0f, 0x83, 0xab, 0xb8, 0xdd, 0xf6, 0xf9, 0x16, 0xba, 0x22, 0x5c, 0xf8, 0x49, - 0x68, 0x0a, 0xb4, 0xda, 0x67, 0x33, 0x68, 0xf4, 0x11, 0x8c, 0xae, 0x62, 0x27, 0x88, 0xf6, 0xb1, - 0x23, 0xbe, 0x92, 0xe2, 0xd9, 0x4a, 0x05, 0x85, 0x03, 0xac, 0xf6, 0xd9, 0x31, 0x34, 0x5a, 0x84, - 0x81, 0x2d, 0xdf, 0x3b, 0x90, 0xb7, 0xfa, 0x32, 0x1a, 0x24, 0x30, 0xab, 0x7d, 0x36, 0x85, 0x45, - 0x4f, 0x61, 0xa2, 0x7a, 0x80, 0xbd, 0xe8, 0x29, 0x8e, 0x9c, 0x96, 0x13, 0x39, 0x5c, 0x9a, 0xbe, - 0x95, 0x85, 0xac, 0x01, 0xaf, 0xf6, 0xd9, 0x3a, 0x76, 0x6d, 0x10, 0xfa, 0x9f, 0x86, 0x07, 0xd6, - 0x49, 0x01, 0xe6, 0x97, 0xfd, 0x97, 0x9e, 0x91, 0x31, 0xdf, 0xd6, 0x19, 0x23, 0x42, 0xcb, 0x0d, - 0xf0, 0x09, 0xd6, 0xbc, 0x07, 0x03, 0x5b, 0xae, 0x77, 0x90, 0x10, 0x20, 0x06, 0x3c, 0x02, 0x45, - 0x47, 0xe8, 0x7a, 0x07, 0x68, 0x5d, 0x48, 0x6e, 0x6e, 0xd9, 0xf5, 0x6b, 0x9f, 0x0b, 0x03, 0xb6, - 0x0a, 0x1d, 0x4b, 0x68, 0xf6, 0x5b, 0x0c, 0xf0, 0x1d, 0x98, 0xcb, 0x68, 0x17, 0x4d, 0xca, 0x6d, - 0x31, 0x40, 0xb7, 0xc3, 0xdb, 0x30, 0x6b, 0x9c, 0x82, 0x14, 0xe0, 0x7f, 0x2f, 0x18, 0xd6, 0x12, - 0x1b, 0xf9, 0x3c, 0x0c, 0x8b, 0xd7, 0x8d, 0x99, 0xca, 0x2f, 0x7e, 0xd2, 0x10, 0x5a, 0xea, 0xc6, - 0x8b, 0xdf, 0x4e, 0x14, 0xbf, 0xd1, 0xae, 0xf2, 0x4c, 0x42, 0x3f, 0x35, 0x0d, 0x3f, 0x7e, 0x83, - 0x14, 0x64, 0x92, 0x16, 0x69, 0x73, 0xd5, 0x0f, 0x23, 0x4f, 0x46, 0x78, 0xd8, 0xf2, 0x37, 0xba, - 0x0d, 0xa5, 0x95, 0xaf, 0x23, 0x1c, 0x78, 0x4e, 0x9b, 0xbf, 0xf3, 0xca, 0x73, 0x4b, 0xd9, 0xa9, - 0x72, 0xeb, 0xcf, 0x8a, 0xf4, 0xcd, 0xc6, 0x9c, 0x05, 0x46, 0x78, 0xb4, 0x59, 0xe7, 0x63, 0x2e, - 0x6e, 0xd6, 0xd1, 0x02, 0x8c, 0x6e, 0xd6, 0xb5, 0x87, 0x9e, 0xed, 0xb8, 0x80, 0x34, 0x4e, 0x3a, - 0x52, 0x0d, 0x9a, 0x87, 0x6e, 0x84, 0x9b, 0xd1, 0x71, 0xc0, 0x9f, 0xaa, 0xb0, 0x53, 0xe5, 0xc8, - 0x82, 0xf1, 0x47, 0x6d, 0x77, 0xbf, 0x29, 0x88, 0xb1, 0x81, 0x68, 0x65, 0xe8, 0x26, 0x4c, 0xae, - 0x79, 0x61, 0xe4, 0xb4, 0xdb, 0xec, 0x1d, 0x6c, 0x9e, 0x22, 0xcf, 0x4e, 0x94, 0x92, 0x76, 0x97, - 0x7c, 0x2f, 0x72, 0x5c, 0x0f, 0x07, 0xf6, 0xb1, 0x17, 0xb9, 0x47, 0x98, 0x47, 0x71, 0xa7, 0xca, - 0xd1, 0x7b, 0x30, 0x2b, 0xcb, 0x36, 0x83, 0xe6, 0x21, 0x0e, 0xa3, 0x80, 0xe6, 0x0c, 0xa0, 0x97, - 0xf2, 0x6d, 0x73, 0x25, 0x6d, 0xa1, 0xed, 0x1f, 0xb7, 0x56, 0xbc, 0x17, 0x6e, 0xe0, 0x7b, 0x34, - 0xf1, 0xcd, 0x08, 0x6f, 0x21, 0x51, 0x6e, 0x6d, 0x19, 0xf7, 0xde, 0x1b, 0x2c, 0x24, 0xeb, 0xb4, - 0x00, 0x0b, 0xc6, 0xed, 0x21, 0x44, 0xb0, 0x8a, 0x5c, 0x48, 0xac, 0xc2, 0xdb, 0x30, 0x40, 0x65, - 0x32, 0xb3, 0x2b, 0xc4, 0x49, 0x26, 0xc5, 0x67, 0xa4, 0x48, 0xad, 0x4d, 0x61, 0xd0, 0x23, 0xe9, - 0x7f, 0xe9, 0xa7, 0x5f, 0xbd, 0xbb, 0x49, 0xc9, 0x67, 0x68, 0x5c, 0xf5, 0xc3, 0x08, 0x8f, 0xcb, - 0x9b, 0x98, 0xcb, 0x7f, 0x56, 0x80, 0x4a, 0x17, 0xa9, 0x20, 0xc7, 0x54, 0xe8, 0x61, 0x4c, 0x8f, - 0xe5, 0x98, 0x58, 0xcc, 0xf4, 0x62, 0x6f, 0x92, 0xe7, 0xbc, 0x87, 0xb5, 0x04, 0x28, 0xfd, 0xfd, - 0x40, 0xef, 0xc2, 0x68, 0xbd, 0xbe, 0xaa, 0x9d, 0xb3, 0x25, 0x8f, 0xbe, 0xec, 0x18, 0xc2, 0xfa, - 0x00, 0x2e, 0x4a, 0x22, 0xec, 0xd1, 0x58, 0xe5, 0x62, 0x06, 0xcf, 0x47, 0x25, 0xef, 0x83, 0xc4, - 0x05, 0xd6, 0x9f, 0x0e, 0xa4, 0x10, 0xeb, 0xc7, 0x47, 0x47, 0x4e, 0xf0, 0x0a, 0x55, 0x75, 0xc4, - 0xfe, 0xae, 0x9f, 0xca, 0xda, 0xc0, 0x4f, 0x4e, 0x2a, 0x7d, 0x0a, 0x75, 0xf4, 0x0d, 0x98, 0xa0, - 0x1b, 0xd2, 0x6b, 0x62, 0xe6, 0x46, 0x28, 0xb2, 0x5b, 0xda, 0x5a, 0x21, 0xda, 0x85, 0x09, 0xbe, - 0xd6, 0xe9, 0x6f, 0xb1, 0xc4, 0xee, 0x25, 0x97, 0x98, 0xd6, 0xbd, 0x3b, 0x1a, 0x0a, 0x9b, 0x0c, - 0x9d, 0x0c, 0xfa, 0x1e, 0x4c, 0x0a, 0x89, 0xc6, 0x09, 0xb3, 0x43, 0x86, 0xfb, 0xf9, 0x84, 0x75, - 0x1c, 0x46, 0x39, 0x41, 0x88, 0x74, 0x99, 0x0b, 0x5d, 0x4e, 0x79, 0xb0, 0x97, 0x2e, 0x6b, 0x28, - 0xbc, 0xcb, 0x5a, 0x59, 0xf9, 0xbb, 0x80, 0xd2, 0xe3, 0xea, 0xb6, 0x9a, 0x26, 0x94, 0xd5, 0x54, - 0xae, 0xc2, 0xb4, 0x61, 0x00, 0x67, 0x22, 0xf1, 0x5d, 0x40, 0xe9, 0x9e, 0x9e, 0x85, 0x82, 0x75, - 0x0b, 0x6e, 0x4a, 0x16, 0xc8, 0xd5, 0xa0, 0xd1, 0x14, 0xc6, 0xc2, 0xaf, 0x15, 0xa1, 0xd2, 0x05, - 0x14, 0xfd, 0x7e, 0x21, 0xc9, 0x6d, 0xb6, 0x1a, 0x3f, 0x4a, 0x72, 0xdb, 0x8c, 0x6f, 0x60, 0x7b, - 0xed, 0xe3, 0xbf, 0xf5, 0x17, 0xaf, 0xfd, 0xb9, 0x4d, 0x4f, 0xd9, 0xd9, 0xb9, 0x35, 0xa0, 0x72, - 0xcb, 0x86, 0x19, 0x4d, 0x51, 0xe9, 0x45, 0x76, 0x5f, 0x05, 0xe0, 0x0f, 0xe2, 0xaf, 0xfb, 0x07, - 0xfc, 0x5a, 0x8b, 0x52, 0x62, 0x3d, 0x84, 0xd9, 0x04, 0x4d, 0x6e, 0xc0, 0xbc, 0x0b, 0x32, 0x00, - 0x9f, 0x12, 0xed, 0xaf, 0x5d, 0xf8, 0xd9, 0x49, 0x65, 0x82, 0x7c, 0x01, 0xef, 0xc4, 0x6f, 0x33, - 0x8a, 0xbf, 0xac, 0xa7, 0xaa, 0x09, 0x56, 0x6d, 0x6b, 0x17, 0x12, 0xef, 0xc3, 0x10, 0x2b, 0x49, - 0xbc, 0x80, 0xa6, 0x42, 0x73, 0x99, 0xc0, 0x01, 0xad, 0x59, 0x1a, 0x74, 0x4c, 0x7f, 0x54, 0xe3, - 0xeb, 0x2d, 0xd6, 0x0e, 0x7b, 0x35, 0x37, 0x2e, 0x96, 0xaf, 0xac, 0x0d, 0x54, 0xe3, 0x6b, 0x38, - 0xc2, 0xcf, 0x2c, 0xe0, 0x3c, 0xff, 0x65, 0x1b, 0xb7, 0x0e, 0x68, 0x86, 0xb8, 0xda, 0x38, 0xf7, - 0x33, 0x0f, 0x38, 0x84, 0x00, 0x45, 0xb3, 0x3e, 0x87, 0xd9, 0xa5, 0x36, 0x76, 0x82, 0x64, 0x7b, - 0xe8, 0x26, 0x0c, 0xd3, 0x32, 0x3d, 0x3a, 0xc3, 0x21, 0x45, 0x34, 0x3a, 0x83, 0x57, 0x12, 0x9b, - 0x8d, 0x3d, 0x4c, 0xa5, 0x0e, 0x29, 0x36, 0x97, 0x06, 0xe9, 0xef, 0x44, 0xc8, 0xaa, 0x61, 0xf4, - 0x0c, 0xce, 0xfa, 0x8c, 0xc6, 0x44, 0x99, 0x92, 0x03, 0xf6, 0x16, 0x44, 0xfd, 0x37, 0x60, 0xa1, - 0xda, 0xe9, 0x60, 0xaf, 0x15, 0x23, 0x6e, 0x07, 0x4e, 0x8f, 0x97, 0x53, 0x50, 0x15, 0x06, 0x29, - 0xb4, 0xf4, 0x35, 0xf1, 0xee, 0x1a, 0xba, 0x43, 0xe1, 0xf8, 0x93, 0x38, 0xb4, 0x01, 0x86, 0x69, - 0xb5, 0x60, 0xae, 0x7e, 0xbc, 0x7f, 0xe4, 0xb2, 0x3c, 0x7c, 0xf4, 0x82, 0x97, 0x68, 0x7b, 0x4d, - 0x3c, 0x74, 0xce, 0x98, 0x71, 0x2b, 0x4e, 0xfa, 0xa7, 0x66, 0xa4, 0x7e, 0x71, 0xff, 0x4e, 0x8c, - 0x4a, 0x6d, 0x0e, 0xd6, 0x0a, 0xad, 0xe6, 0x8f, 0xa1, 0x5b, 0xd3, 0x70, 0x41, 0xb5, 0xdb, 0xd9, - 0x0a, 0x99, 0x85, 0x69, 0xdd, 0x1e, 0x67, 0xc5, 0x5f, 0xc1, 0x0c, 0x73, 0x34, 0xb3, 0x27, 0xed, - 0x16, 0xe3, 0xd7, 0xdb, 0x8a, 0xbb, 0x8b, 0x89, 0xf0, 0x14, 0x7a, 0x7c, 0x2e, 0x1f, 0x2b, 0xdd, - 0x5d, 0x64, 0x71, 0xad, 0x2f, 0x16, 0x35, 0xaf, 0x4f, 0x71, 0x77, 0xb1, 0x36, 0xcc, 0x9f, 0x06, - 0x22, 0xd4, 0xd9, 0xf4, 0xff, 0x5c, 0xa8, 0x2f, 0xd2, 0xab, 0x14, 0xab, 0xd8, 0xa1, 0x61, 0x4f, - 0xe6, 0x80, 0xf4, 0x49, 0x28, 0xba, 0x2d, 0xa1, 0x65, 0xbb, 0x2d, 0xeb, 0x8f, 0x0a, 0x70, 0x8b, - 0xe9, 0x22, 0x66, 0x3c, 0x6a, 0x9c, 0x67, 0x20, 0xa3, 0x0f, 0x81, 0x25, 0xc6, 0xe2, 0x0a, 0x9f, - 0xc5, 0x7b, 0x9e, 0x47, 0x89, 0x21, 0xa0, 0x2a, 0x8c, 0xab, 0xf1, 0x51, 0x89, 0x07, 0x2f, 0x32, - 0x1c, 0x45, 0xf6, 0xd8, 0xd1, 0x33, 0x47, 0xc6, 0x4c, 0x3d, 0x87, 0xcb, 0x2b, 0x5f, 0x93, 0x05, - 0xc1, 0xbf, 0x4e, 0xfc, 0xb0, 0x27, 0x0e, 0x78, 0x9e, 0xda, 0xe6, 0x2b, 0x46, 0x57, 0x83, 0x93, - 0xc5, 0xc4, 0x3c, 0x10, 0x1f, 0x38, 0xa9, 0xbd, 0x8e, 0xda, 0x5a, 0x99, 0xf5, 0xa7, 0x05, 0x58, - 0x30, 0xb7, 0xc6, 0x05, 0xcb, 0x1a, 0x5c, 0x58, 0x72, 0x3c, 0xdf, 0x73, 0x9b, 0x4e, 0xbb, 0xde, - 0x3c, 0xc4, 0xad, 0xe3, 0xb6, 0x08, 0x1b, 0x93, 0x52, 0x86, 0x98, 0x3b, 0x1c, 0x5d, 0x80, 0xd8, - 0x69, 0x2c, 0xf4, 0x01, 0x5c, 0xa4, 0x41, 0x3b, 0x4c, 0xf6, 0xb6, 0x71, 0x20, 0xe9, 0xb1, 0x9e, - 0x65, 0xd4, 0xa2, 0x7b, 0x30, 0xcd, 0x3e, 0x2a, 0xad, 0x1d, 0xcf, 0x8d, 0x24, 0x12, 0xb3, 0x8a, - 0x4c, 0x55, 0xb7, 0x1b, 0x6a, 0xac, 0x18, 0xba, 0x0c, 0x73, 0xcb, 0x2b, 0xbb, 0x6b, 0x4b, 0x2b, - 0x8d, 0xed, 0xef, 0x6d, 0xad, 0x34, 0xf4, 0x47, 0xc0, 0x66, 0xa0, 0xa4, 0x56, 0x6e, 0x6f, 0x6e, - 0x6f, 0xb1, 0x74, 0x95, 0x6a, 0xe9, 0xde, 0x4a, 0xad, 0xba, 0xb3, 0xbd, 0xba, 0x51, 0xea, 0xb7, - 0x06, 0x46, 0x8a, 0xa5, 0xe2, 0xed, 0x1f, 0x69, 0x81, 0x64, 0x68, 0x01, 0xe6, 0x39, 0xf8, 0x4e, - 0xbd, 0xfa, 0x28, 0xbb, 0x09, 0x56, 0xfb, 0xf4, 0x61, 0xb5, 0x54, 0x40, 0x57, 0xe0, 0x92, 0x56, - 0xba, 0x55, 0xad, 0xd7, 0xf7, 0x36, 0xed, 0xe5, 0xf5, 0x95, 0x7a, 0xbd, 0x54, 0xbc, 0xbd, 0xab, - 0x3d, 0x1c, 0x45, 0x5a, 0x78, 0xfa, 0xb0, 0xda, 0xb0, 0x57, 0xbe, 0xd8, 0x59, 0xb3, 0x57, 0x96, - 0xd3, 0x2d, 0x68, 0xb5, 0xdf, 0x5b, 0xa9, 0x97, 0x0a, 0x68, 0x1a, 0xa6, 0xb4, 0xd2, 0x8d, 0xcd, - 0x52, 0xf1, 0xf6, 0x4d, 0x7e, 0x27, 0x15, 0x4d, 0x02, 0x2c, 0xaf, 0xd4, 0x97, 0x56, 0x36, 0x96, - 0xd7, 0x36, 0x1e, 0x95, 0xfa, 0xd0, 0x04, 0x8c, 0x56, 0xe5, 0xcf, 0xc2, 0xed, 0x8f, 0x61, 0x2a, - 0x61, 0x0b, 0x10, 0x08, 0xa9, 0x46, 0x97, 0xfa, 0x08, 0x8f, 0xe4, 0x4f, 0x6a, 0xc0, 0x31, 0xb5, - 0xbe, 0x54, 0x58, 0xfc, 0x9f, 0xbf, 0x59, 0x80, 0x31, 0xb2, 0xd0, 0x45, 0x40, 0xd1, 0x57, 0x8a, - 0xea, 0xcc, 0x27, 0x98, 0x67, 0x55, 0xc8, 0xd4, 0x93, 0xa9, 0xcc, 0x2b, 0xe7, 0x38, 0x56, 0x28, - 0xc0, 0xad, 0xc2, 0xbd, 0x02, 0xb2, 0xa9, 0xfb, 0x32, 0xa1, 0x49, 0x4a, 0xca, 0x66, 0x65, 0xbf, - 0x7c, 0x25, 0x57, 0x01, 0x45, 0xbf, 0x02, 0x96, 0x4a, 0x33, 0x43, 0xdf, 0x7a, 0xb7, 0x37, 0xbd, - 0x4a, 0xb4, 0x79, 0xb3, 0x37, 0x70, 0xf4, 0x18, 0x26, 0x88, 0x26, 0x22, 0xc1, 0xd0, 0xe5, 0x24, - 0xa2, 0xa2, 0xfc, 0x94, 0x17, 0xcc, 0x95, 0xf2, 0x51, 0xd7, 0x71, 0x3a, 0x10, 0x66, 0x46, 0x84, - 0x48, 0xdc, 0x5c, 0x10, 0x25, 0xec, 0xf0, 0xb8, 0x7c, 0x21, 0x51, 0xbc, 0x7b, 0xff, 0x5e, 0x01, - 0xd5, 0xe9, 0x85, 0x5f, 0x4d, 0xa5, 0x41, 0x22, 0xc2, 0x2d, 0xad, 0xeb, 0xb0, 0xde, 0x54, 0x64, - 0x9a, 0x82, 0x0c, 0x5d, 0x68, 0x03, 0x50, 0x5a, 0x53, 0x40, 0xd7, 0xe2, 0x75, 0x60, 0x56, 0x22, - 0xca, 0x17, 0x53, 0xa7, 0x52, 0x2b, 0xe4, 0x5b, 0x81, 0x56, 0x60, 0x92, 0x87, 0x25, 0x73, 0xdd, - 0x05, 0xe5, 0x69, 0x3f, 0x99, 0x64, 0x1e, 0x51, 0x3e, 0x49, 0xfd, 0x07, 0x95, 0xe3, 0x71, 0x24, - 0x95, 0xa2, 0xf2, 0x65, 0x63, 0x1d, 0x1f, 0xdf, 0x43, 0x98, 0xd4, 0x55, 0x29, 0x24, 0x26, 0xc8, - 0xa8, 0x61, 0x65, 0x76, 0xa8, 0x01, 0x73, 0x4f, 0x1d, 0x97, 0x3a, 0x52, 0xf8, 0xd9, 0x87, 0x38, - 0xb9, 0x40, 0x95, 0x9c, 0xa3, 0x8c, 0x3a, 0xf6, 0x5a, 0xe5, 0x6e, 0x4f, 0x5d, 0xd0, 0x6d, 0x53, - 0x17, 0x1a, 0x81, 0x7e, 0xf2, 0x83, 0x2c, 0x3d, 0xf5, 0x8c, 0xe9, 0x30, 0xaf, 0x9c, 0x75, 0xfe, - 0x8c, 0x9e, 0x52, 0x95, 0x24, 0x41, 0x51, 0x59, 0x13, 0x67, 0x26, 0x37, 0x4f, 0x83, 0xe3, 0x23, - 0x37, 0x79, 0x90, 0x1c, 0xa2, 0x0c, 0xc6, 0x65, 0x12, 0xbb, 0x57, 0x40, 0x5f, 0xd1, 0x5d, 0x6d, - 0x24, 0xb7, 0xe7, 0x46, 0x87, 0x3c, 0x90, 0xe2, 0xb2, 0x91, 0x00, 0xdf, 0x28, 0x39, 0xd4, 0x6d, - 0x98, 0x31, 0x1d, 0x79, 0x4b, 0x86, 0xe6, 0x9c, 0x87, 0x67, 0xae, 0x02, 0x9b, 0x28, 0x56, 0xad, - 0xec, 0x49, 0xca, 0x39, 0x71, 0xcd, 0xa4, 0xf9, 0x29, 0x4c, 0x92, 0x55, 0xf2, 0x04, 0xe3, 0x4e, - 0xb5, 0xed, 0xbe, 0xc0, 0x21, 0x12, 0xcf, 0xc0, 0xc8, 0xa2, 0x2c, 0xdc, 0x5b, 0x05, 0xf4, 0x4d, - 0x18, 0xdb, 0x73, 0xa2, 0xe6, 0x21, 0x7f, 0xb5, 0x40, 0x3c, 0x6a, 0x40, 0xcb, 0xca, 0xe2, 0x17, - 0xad, 0xbc, 0x57, 0x40, 0xdf, 0x81, 0xe1, 0x47, 0x38, 0xa2, 0x11, 0xc6, 0xd7, 0xe5, 0xe9, 0x0f, - 0x8b, 0xb4, 0x58, 0xf3, 0x64, 0x4c, 0x94, 0xe8, 0x70, 0xd2, 0x6d, 0x83, 0xee, 0x02, 0x30, 0x81, - 0x40, 0x29, 0x24, 0xab, 0xcb, 0xa9, 0x6e, 0xa3, 0x47, 0xe4, 0xc3, 0xdf, 0xc6, 0x11, 0xee, 0xb5, - 0xc9, 0x2c, 0x1e, 0xad, 0xc3, 0xa4, 0x7c, 0x07, 0x77, 0x83, 0x5e, 0x51, 0xb1, 0x12, 0xc4, 0xc2, - 0x33, 0x50, 0xfb, 0x98, 0xec, 0x0a, 0x96, 0x28, 0x45, 0x3e, 0x91, 0x83, 0xb2, 0x1e, 0xcd, 0x91, - 0x4c, 0x64, 0x60, 0x0a, 0xee, 0xaa, 0x1f, 0x46, 0x3a, 0xae, 0x2c, 0x31, 0xe3, 0x62, 0x28, 0xab, - 0xed, 0xea, 0xcf, 0xe5, 0xc4, 0x32, 0x37, 0xeb, 0x95, 0x9f, 0xf2, 0xf5, 0x1c, 0x08, 0x26, 0xee, - 0xa8, 0x24, 0x59, 0x26, 0xb6, 0x2a, 0x6b, 0x66, 0xb3, 0x83, 0xbd, 0x7a, 0x7d, 0x95, 0xbe, 0x96, - 0x22, 0xce, 0x7c, 0x94, 0x32, 0x41, 0x18, 0xa5, 0xab, 0xc8, 0x57, 0x4f, 0x7b, 0xa6, 0x25, 0xfe, - 0xea, 0x19, 0xde, 0xd1, 0x89, 0xbf, 0x7a, 0xc6, 0x97, 0x5d, 0x9e, 0x30, 0xeb, 0x59, 0xcb, 0x5a, - 0xbf, 0xbb, 0x88, 0x44, 0xb8, 0xb9, 0x56, 0xc1, 0x37, 0xf6, 0x45, 0x53, 0xdd, 0xee, 0x83, 0x7b, - 0x05, 0xb4, 0x02, 0xd3, 0xf2, 0x46, 0x51, 0x5c, 0x85, 0x32, 0x10, 0x72, 0xbe, 0x30, 0xb3, 0x06, - 0x32, 0xbb, 0x8b, 0x39, 0x84, 0x8c, 0xe5, 0xe8, 0x73, 0x98, 0xe6, 0x6b, 0x53, 0xeb, 0x4f, 0x49, - 0x8a, 0x19, 0x7e, 0xb2, 0x97, 0xd9, 0x93, 0xc7, 0x30, 0x5b, 0x4f, 0x70, 0x87, 0x45, 0x42, 0x5c, - 0xd2, 0x49, 0x28, 0x99, 0x86, 0x33, 0x69, 0x3d, 0x01, 0xc4, 0x2c, 0x5d, 0x41, 0xee, 0x85, 0x8b, - 0x5f, 0xa2, 0x2b, 0x89, 0xae, 0x93, 0x42, 0x0a, 0x46, 0xe5, 0x54, 0xe6, 0xc8, 0xb6, 0x59, 0x36, - 0x1f, 0x96, 0xc5, 0xd0, 0xe9, 0x38, 0xfb, 0x6e, 0xdb, 0x8d, 0x5c, 0x4c, 0x96, 0xaa, 0x8a, 0xa0, - 0x56, 0x89, 0xf5, 0x70, 0x29, 0x13, 0x02, 0x7d, 0x06, 0x13, 0x8f, 0x70, 0x14, 0x27, 0x53, 0x46, - 0x73, 0xa9, 0xf4, 0xcb, 0x7c, 0x0d, 0x88, 0x8b, 0xb0, 0x7a, 0x06, 0xe7, 0x35, 0x28, 0x31, 0x31, - 0xab, 0x90, 0xb8, 0x92, 0x22, 0xc1, 0x41, 0x9c, 0xc0, 0x39, 0x0a, 0x33, 0xb9, 0x75, 0x97, 0x1d, - 0xff, 0x21, 0xb1, 0xfe, 0x55, 0x3d, 0x6e, 0x5a, 0x2b, 0x93, 0x0f, 0x97, 0xcd, 0x1a, 0xb3, 0x08, - 0xa3, 0x1b, 0xf1, 0x37, 0x35, 0x33, 0x35, 0x70, 0x19, 0x25, 0xaf, 0xa9, 0xee, 0x3e, 0x40, 0x32, - 0xab, 0x8a, 0x81, 0xe8, 0x4d, 0xed, 0xd3, 0x7f, 0x36, 0xba, 0x9f, 0xc1, 0xa8, 0x4c, 0x47, 0x2b, - 0xe5, 0x53, 0x32, 0x99, 0x6f, 0x79, 0x3e, 0x5d, 0xc1, 0x47, 0xfa, 0x29, 0x4b, 0x3e, 0xad, 0xe3, - 0x27, 0x33, 0xb6, 0x66, 0x32, 0xf6, 0x23, 0x18, 0x53, 0x72, 0xb5, 0xca, 0x85, 0x9c, 0xce, 0xdf, - 0x5a, 0x9e, 0x50, 0xfa, 0xbe, 0xbb, 0x78, 0xaf, 0x80, 0xee, 0xd2, 0x6f, 0x14, 0xbd, 0xa7, 0x35, - 0x1b, 0xa3, 0x29, 0x99, 0x02, 0x13, 0x28, 0xe8, 0xdb, 0xf4, 0x39, 0x9b, 0xa5, 0xe3, 0x20, 0x20, - 0x76, 0x2f, 0xc1, 0xcb, 0x52, 0x45, 0x12, 0x88, 0x9f, 0x51, 0xa9, 0xa4, 0x20, 0xb2, 0x48, 0xcb, - 0x6e, 0xd8, 0xec, 0x39, 0xe4, 0x7b, 0x05, 0xf4, 0x00, 0x46, 0x44, 0x6a, 0x77, 0x74, 0x51, 0xef, - 0x6a, 0xf6, 0xf0, 0x1e, 0x00, 0x30, 0x66, 0xd3, 0x9e, 0xea, 0xd5, 0x99, 0xec, 0x7c, 0x40, 0x3e, - 0xbc, 0xad, 0x33, 0x22, 0x7d, 0x26, 0x3e, 0xbe, 0x14, 0x69, 0x5e, 0x9b, 0x42, 0x95, 0x9d, 0x59, - 0xf8, 0x44, 0x73, 0xd6, 0x32, 0xce, 0xc7, 0x9a, 0xb3, 0x29, 0x11, 0x7d, 0x26, 0x9d, 0x35, 0x28, - 0x55, 0x9b, 0xf4, 0x83, 0x20, 0xb3, 0x2f, 0x4a, 0xb3, 0x25, 0x59, 0x21, 0x68, 0xcd, 0x26, 0x93, - 0x39, 0xae, 0x63, 0x87, 0xbe, 0xf0, 0x33, 0x27, 0x95, 0x8b, 0x44, 0x95, 0x19, 0x23, 0xc7, 0x4c, - 0x99, 0x59, 0x22, 0x86, 0x55, 0xfb, 0xcd, 0xc8, 0x7c, 0x4c, 0x65, 0x99, 0x92, 0x99, 0xf2, 0x62, - 0x12, 0x5f, 0x1a, 0x74, 0x22, 0xac, 0x4b, 0x82, 0x56, 0x61, 0x8a, 0xbf, 0x27, 0x22, 0xd9, 0x92, - 0x85, 0x9d, 0xd5, 0xfc, 0xb7, 0x61, 0x72, 0x85, 0xc8, 0xfa, 0xe3, 0x96, 0xcb, 0x5e, 0x35, 0x43, - 0xfa, 0x33, 0x55, 0x99, 0x88, 0xab, 0x22, 0x59, 0xb5, 0x92, 0xb2, 0x51, 0xee, 0xd2, 0x74, 0x56, - 0xcc, 0xf2, 0x8c, 0x20, 0xab, 0x66, 0x77, 0xe4, 0xd6, 0xfe, 0x5c, 0x46, 0x92, 0x44, 0xf4, 0x96, - 0x66, 0x44, 0x66, 0x65, 0x3a, 0x34, 0xa8, 0x8d, 0x5f, 0x2a, 0xf9, 0x68, 0x32, 0x68, 0xe6, 0x67, - 0x4f, 0xcc, 0x1c, 0xb7, 0x7c, 0x87, 0xc8, 0x98, 0xe5, 0x10, 0xbd, 0xa3, 0x53, 0xcf, 0xc9, 0x84, - 0x98, 0xd9, 0x02, 0x35, 0xd2, 0xf5, 0x24, 0x7c, 0xe8, 0x6a, 0x7e, 0xae, 0x40, 0xc5, 0x48, 0xcf, - 0xc8, 0xde, 0xf7, 0x98, 0x2e, 0xb3, 0x38, 0x69, 0x0d, 0x52, 0x4d, 0xde, 0x64, 0xce, 0x1e, 0xa9, - 0x8b, 0x99, 0x33, 0xf1, 0x6d, 0xc1, 0x54, 0x22, 0xc7, 0x9d, 0xf4, 0xcd, 0x98, 0xb3, 0xec, 0x95, - 0xaf, 0x66, 0x55, 0x73, 0x8a, 0x75, 0x91, 0x25, 0x5e, 0xe9, 0xe0, 0x55, 0xed, 0xc3, 0x92, 0xee, - 0x63, 0x25, 0xb3, 0x5e, 0x0e, 0xb9, 0x94, 0xcc, 0x49, 0x24, 0x89, 0x66, 0x24, 0x2b, 0xca, 0x91, - 0x64, 0x33, 0xea, 0x8c, 0xca, 0x71, 0x67, 0x49, 0xfa, 0x2c, 0x3a, 0xdb, 0x30, 0x6b, 0x4c, 0x21, - 0x24, 0xbf, 0xfe, 0x79, 0x09, 0x86, 0x32, 0xa9, 0x62, 0xb8, 0x68, 0xce, 0x22, 0x86, 0xbe, 0xa1, - 0x9b, 0xfe, 0xe6, 0x9c, 0x4a, 0xe5, 0xb7, 0xba, 0x40, 0x71, 0x86, 0x7e, 0x45, 0xbf, 0x76, 0xa9, - 0x36, 0xae, 0x2b, 0xce, 0x80, 0x8c, 0x06, 0xac, 0x3c, 0x10, 0xb9, 0x06, 0x66, 0x4c, 0x59, 0x0c, - 0x33, 0x59, 0x7c, 0x23, 0x9b, 0x66, 0xbc, 0xb0, 0x76, 0xc5, 0xa3, 0x3d, 0x99, 0x9c, 0xc9, 0xcd, - 0x36, 0x95, 0x63, 0x4d, 0x96, 0xe5, 0x7a, 0xe8, 0xbd, 0xcb, 0xd9, 0x9e, 0xa1, 0x19, 0x53, 0x8e, - 0xb3, 0xa4, 0xe3, 0xc6, 0x94, 0xc2, 0x4a, 0xb2, 0x21, 0x37, 0x49, 0xda, 0x2e, 0x73, 0xe2, 0xe8, - 0xd4, 0x55, 0x27, 0x8e, 0x91, 0xf4, 0xb5, 0x6c, 0x80, 0x78, 0x45, 0x18, 0x92, 0x35, 0xca, 0x15, - 0x91, 0x9d, 0x36, 0x52, 0xae, 0x88, 0xbc, 0x5c, 0x8f, 0xb6, 0xd8, 0x74, 0x19, 0x6c, 0xc9, 0xc9, - 0xec, 0x95, 0x63, 0x29, 0xcd, 0xc7, 0x13, 0x97, 0xe8, 0xf6, 0x59, 0xa7, 0xed, 0x2b, 0xb8, 0x94, - 0x99, 0xc5, 0x0b, 0xbd, 0x9d, 0xda, 0xd0, 0x19, 0x9c, 0xc8, 0xee, 0xe9, 0x84, 0x96, 0x80, 0x4b, - 0x7a, 0xb1, 0x12, 0xb9, 0xbe, 0x52, 0x12, 0xdb, 0x90, 0x08, 0xec, 0x11, 0x55, 0x70, 0x95, 0x64, - 0x5e, 0x99, 0x63, 0xbd, 0x62, 0xa2, 0x13, 0xa6, 0x65, 0xaa, 0xd2, 0x2f, 0xa1, 0x89, 0x25, 0x2b, - 0xce, 0x22, 0x53, 0x7b, 0xe9, 0x5a, 0x16, 0x9d, 0x65, 0x6a, 0x29, 0x88, 0xdc, 0x5e, 0xe8, 0x92, - 0xc6, 0x26, 0xed, 0x2b, 0x59, 0xd6, 0x06, 0xa7, 0x7f, 0x20, 0x97, 0xa8, 0xbb, 0x58, 0xe6, 0x12, - 0xcb, 0xec, 0xc5, 0xe5, 0x34, 0x0d, 0xcd, 0x55, 0x2c, 0xb9, 0xc0, 0x7a, 0xb3, 0x90, 0x64, 0x8e, - 0xd6, 0xa1, 0xec, 0x21, 0x21, 0x95, 0x35, 0x5d, 0xba, 0x94, 0xad, 0xa1, 0x4e, 0x33, 0x9d, 0x9f, - 0xbd, 0xaa, 0x29, 0xee, 0xd6, 0x5f, 0x94, 0x7e, 0x2f, 0xa5, 0x34, 0xc7, 0xcd, 0xb1, 0x45, 0x23, - 0x40, 0x0d, 0x69, 0xd1, 0xa4, 0x0c, 0xcd, 0xcd, 0x9a, 0x66, 0xd0, 0xce, 0xa4, 0x54, 0xce, 0xa4, - 0x98, 0x9b, 0x27, 0x2d, 0xb3, 0xa7, 0x3f, 0x54, 0xa4, 0x72, 0x2a, 0xf9, 0x19, 0xba, 0x95, 0x54, - 0xcd, 0xb2, 0xf2, 0xa3, 0xe5, 0x48, 0xfd, 0x19, 0x53, 0xde, 0x34, 0xc5, 0x77, 0x9b, 0x99, 0x54, - 0xcd, 0xc0, 0x05, 0x29, 0xde, 0x32, 0xa8, 0xe5, 0x64, 0x51, 0xcb, 0xec, 0xe1, 0xf7, 0x15, 0xf1, - 0x96, 0xc8, 0x76, 0x26, 0x7d, 0x01, 0x5d, 0xd2, 0xa1, 0x65, 0xd2, 0xde, 0xa0, 0x31, 0xc3, 0xe9, - 0x54, 0x65, 0x52, 0x77, 0xc9, 0x4b, 0x64, 0x66, 0x74, 0xed, 0xce, 0xa6, 0x87, 0x48, 0xe8, 0x5d, - 0x4c, 0x38, 0x66, 0xbb, 0x75, 0x4c, 0xca, 0x61, 0x43, 0x8a, 0xb3, 0x84, 0x1c, 0xce, 0x4e, 0x82, - 0x96, 0x63, 0xe8, 0x4c, 0xd5, 0xdd, 0x03, 0x4f, 0xc9, 0x50, 0x26, 0xcd, 0x9c, 0x74, 0xd2, 0x34, - 0x29, 0x62, 0x4c, 0x09, 0xcd, 0x36, 0x89, 0x86, 0xc3, 0xf4, 0x73, 0x35, 0xd7, 0x14, 0x2a, 0x67, - 0xa7, 0xd8, 0x92, 0xe2, 0xc6, 0x98, 0x9c, 0x4a, 0x21, 0xa8, 0x26, 0x7a, 0x92, 0x04, 0x0d, 0x39, - 0xa7, 0x24, 0x41, 0x63, 0x66, 0x28, 0xe6, 0x39, 0xb1, 0xfd, 0x36, 0x56, 0x3d, 0x27, 0x4a, 0x9a, - 0xa6, 0x84, 0x0b, 0x03, 0x7d, 0x42, 0x1d, 0x18, 0xf9, 0x5e, 0x8f, 0x39, 0x9d, 0x52, 0x2c, 0x2d, - 0x1f, 0x88, 0xc3, 0x00, 0xda, 0xa0, 0x4e, 0xb9, 0xbb, 0x4f, 0x82, 0x22, 0xe9, 0x3e, 0x09, 0xb5, - 0xa3, 0xd9, 0xee, 0xcd, 0x71, 0xf5, 0x99, 0x7f, 0xc9, 0x2b, 0x43, 0x2e, 0x12, 0xc9, 0x2b, 0x53, - 0x86, 0x0f, 0x6a, 0xba, 0x6e, 0x0b, 0x03, 0x3c, 0xa6, 0x77, 0x25, 0x37, 0x45, 0x47, 0xf9, 0x6a, - 0x7e, 0x5e, 0x0b, 0x7e, 0x8e, 0x57, 0x4a, 0x66, 0x22, 0x40, 0xa6, 0x0c, 0x2b, 0x4a, 0x82, 0x07, - 0x69, 0x0d, 0x65, 0xa6, 0x30, 0xd8, 0x12, 0x3e, 0x66, 0x9d, 0x6e, 0x46, 0x9e, 0x0d, 0x95, 0x74, - 0xbe, 0x82, 0x12, 0x27, 0x25, 0x50, 0x4d, 0xca, 0x54, 0xd2, 0x03, 0x55, 0x41, 0x31, 0xe4, 0x31, - 0x70, 0xc5, 0xad, 0x59, 0x73, 0xae, 0xaf, 0x77, 0x74, 0x5b, 0x2f, 0xe7, 0xb9, 0xaa, 0xae, 0x27, - 0xa5, 0xe8, 0x97, 0x44, 0x9e, 0xef, 0x74, 0x4e, 0x9b, 0xb7, 0x12, 0xde, 0x52, 0xf3, 0x03, 0x47, - 0xe5, 0xbc, 0x94, 0x39, 0xe8, 0x29, 0x3d, 0x62, 0xdf, 0x5c, 0x5b, 0x5e, 0xe2, 0xb1, 0x00, 0x7e, - 0x90, 0x3a, 0xb6, 0xda, 0x73, 0xa3, 0x43, 0x96, 0xe4, 0x49, 0x91, 0x3e, 0x0c, 0x44, 0x43, 0xdc, - 0x7d, 0x80, 0xea, 0x54, 0x73, 0xd7, 0x4a, 0x0d, 0x27, 0x57, 0x06, 0x82, 0x65, 0x33, 0x41, 0x9a, - 0xaa, 0x92, 0x2a, 0x06, 0x64, 0xe3, 0xe9, 0xdd, 0xcc, 0xe8, 0x43, 0x9e, 0x7e, 0xc1, 0x96, 0x8d, - 0x99, 0x4c, 0xaf, 0xe2, 0x5b, 0x1e, 0xa3, 0x24, 0x2e, 0x88, 0x69, 0xfd, 0x51, 0xca, 0xcb, 0x19, - 0xe5, 0x68, 0x83, 0x86, 0x8d, 0x24, 0x4b, 0x15, 0x2b, 0xc6, 0x7c, 0x03, 0x2d, 0x93, 0x1e, 0x9b, - 0x4a, 0xa2, 0xb6, 0xbf, 0xd6, 0x54, 0x6a, 0x88, 0xbb, 0x8b, 0x7c, 0x2a, 0xb5, 0xd2, 0xb3, 0x4d, - 0x65, 0x82, 0xa0, 0x3e, 0x95, 0x7a, 0x37, 0x33, 0xfa, 0xd0, 0x7d, 0x2a, 0xcd, 0x64, 0xce, 0x3c, - 0x95, 0x89, 0xdb, 0x79, 0x5a, 0x7f, 0x4c, 0x53, 0x99, 0x84, 0x67, 0x53, 0x99, 0x2c, 0x4d, 0x18, - 0xa4, 0x39, 0x53, 0x99, 0xc4, 0xfc, 0x82, 0xd2, 0x63, 0xd7, 0xff, 0xce, 0x34, 0x99, 0xe2, 0x19, - 0xa6, 0x04, 0xea, 0xee, 0x03, 0xb4, 0x47, 0xbd, 0x21, 0x89, 0xf2, 0xde, 0x26, 0x74, 0x21, 0x8b, - 0x28, 0x9d, 0xd2, 0x35, 0xa1, 0x67, 0x25, 0xbb, 0x9b, 0xd9, 0x97, 0xbc, 0xf9, 0x60, 0xd3, 0x9a, - 0x24, 0x75, 0xd6, 0x89, 0x7d, 0x2a, 0x84, 0x66, 0xea, 0x06, 0x65, 0xa2, 0x57, 0xea, 0xe4, 0x66, - 0xd6, 0xa0, 0x6d, 0xea, 0xeb, 0x49, 0x97, 0x2b, 0x7e, 0xa2, 0xac, 0xab, 0x9a, 0x5d, 0xa9, 0xa6, - 0xae, 0x64, 0xaa, 0x54, 0xb3, 0xee, 0x6b, 0x4a, 0xaa, 0x69, 0xec, 0xcf, 0xa9, 0xed, 0xcc, 0xa3, - 0xcf, 0xbd, 0x67, 0x7e, 0xb6, 0xa2, 0x33, 0xad, 0x85, 0x33, 0x10, 0x58, 0x1a, 0x45, 0xf2, 0x29, - 0xf7, 0xf0, 0x8b, 0xc2, 0x4c, 0xe6, 0x9b, 0xf0, 0xd1, 0xe7, 0x50, 0xe2, 0x1b, 0x3c, 0x26, 0x60, - 0x02, 0xcc, 0x9c, 0xba, 0x9a, 0x30, 0xd9, 0x7b, 0xe8, 0x41, 0x2f, 0xa6, 0x7a, 0x2f, 0x9c, 0xc8, - 0xb6, 0x6b, 0x89, 0x08, 0xdc, 0x0e, 0x88, 0xc9, 0xd9, 0x4a, 0xdb, 0xa3, 0x7a, 0x67, 0xc4, 0xa1, - 0xae, 0x0e, 0xbe, 0xbb, 0x88, 0xd6, 0xe8, 0x66, 0xd6, 0x8b, 0xf3, 0x0c, 0x76, 0x33, 0x19, 0xba, - 0xd7, 0x56, 0x65, 0x98, 0xb3, 0xde, 0xa7, 0xac, 0xb6, 0xb3, 0x3b, 0x25, 0x59, 0xd4, 0xe3, 0xe8, - 0xb2, 0x58, 0xc4, 0x34, 0x6a, 0xe6, 0x3c, 0xe8, 0xc6, 0x99, 0x64, 0xe0, 0x35, 0xfa, 0x2e, 0x8c, - 0x0a, 0xe4, 0xee, 0x0c, 0x49, 0x62, 0x53, 0x86, 0x2c, 0xc3, 0x84, 0x16, 0x55, 0x2e, 0x95, 0x3a, - 0x53, 0xac, 0x79, 0xce, 0x3c, 0x4f, 0x68, 0xd1, 0xe3, 0x92, 0x8a, 0x29, 0xa6, 0x3c, 0x93, 0xca, - 0x77, 0x60, 0x8c, 0xb3, 0x34, 0x97, 0x1b, 0xd9, 0xd6, 0xfa, 0xac, 0x12, 0xb3, 0x78, 0xdc, 0x72, - 0xa3, 0x25, 0xdf, 0x7b, 0xe6, 0x1e, 0x74, 0x65, 0x4c, 0x1a, 0x65, 0x77, 0x11, 0xed, 0xd2, 0x04, - 0x17, 0x22, 0xed, 0x08, 0x8e, 0x5e, 0xfa, 0xc1, 0x73, 0xd7, 0x3b, 0xe8, 0x42, 0xf2, 0x9a, 0x4e, - 0x32, 0x89, 0xc7, 0xe8, 0xd6, 0xb3, 0xe9, 0x76, 0xc5, 0xcf, 0xb1, 0xd6, 0x17, 0xe8, 0x71, 0xff, - 0x59, 0x7b, 0x9c, 0x7d, 0x72, 0x71, 0x29, 0x8e, 0xf6, 0xb3, 0x71, 0xd3, 0x0f, 0x5a, 0xdd, 0x89, - 0x55, 0xf4, 0xd8, 0xba, 0x04, 0xda, 0xee, 0x22, 0xa1, 0x5a, 0xcf, 0xa4, 0xda, 0x0d, 0x3b, 0xe7, - 0x6b, 0x75, 0x99, 0x8e, 0xfd, 0x8c, 0xbd, 0xcd, 0x97, 0x5a, 0xe4, 0x4b, 0xb3, 0x15, 0xe0, 0x67, - 0x38, 0xa0, 0x21, 0x9b, 0xdd, 0x82, 0x15, 0x75, 0xf0, 0xdd, 0x45, 0x42, 0xa5, 0x9e, 0xa2, 0x92, - 0x05, 0x9d, 0xa7, 0xa8, 0xd1, 0xa1, 0xf5, 0xd8, 0x9b, 0x2c, 0x32, 0x1f, 0x52, 0x9f, 0xe9, 0xce, - 0x5a, 0x17, 0x8e, 0x88, 0x20, 0x62, 0x01, 0xb8, 0x7b, 0x9f, 0x60, 0xd6, 0x15, 0xcc, 0x34, 0x44, - 0x66, 0x9b, 0xdf, 0x15, 0xce, 0xd1, 0xae, 0xcd, 0x66, 0x07, 0x31, 0x8c, 0xca, 0xe4, 0x5b, 0x48, - 0x71, 0x2b, 0x68, 0xa9, 0xa5, 0xca, 0x13, 0x6a, 0xc8, 0x62, 0x88, 0xaa, 0x4c, 0x8b, 0x57, 0x93, - 0x50, 0x29, 0xc7, 0xa9, 0xc6, 0xec, 0x54, 0x49, 0x12, 0xcc, 0x2d, 0xb2, 0xee, 0x37, 0x9f, 0xab, - 0x6e, 0x11, 0x25, 0xab, 0x51, 0x59, 0xcf, 0x39, 0xc4, 0x85, 0x38, 0x4d, 0x3c, 0xa4, 0xc6, 0x75, - 0xa8, 0x79, 0x8d, 0x54, 0xb7, 0x88, 0x9e, 0x81, 0x49, 0xba, 0x45, 0x68, 0x83, 0x3a, 0xe5, 0xee, - 0x6e, 0x11, 0x8a, 0xa4, 0xbb, 0x45, 0xd4, 0x8e, 0x66, 0x8b, 0x0b, 0x94, 0x4e, 0xc1, 0x24, 0x15, - 0xee, 0xcc, 0xec, 0x4c, 0x39, 0x21, 0x1b, 0xd3, 0x86, 0xac, 0x71, 0xd2, 0xdd, 0x90, 0x9d, 0x51, - 0xae, 0xac, 0xc7, 0x1f, 0xdc, 0x2b, 0xa0, 0x0d, 0xb8, 0xf8, 0x08, 0x47, 0x5c, 0x80, 0xd9, 0x38, - 0x8c, 0x02, 0x97, 0x5e, 0xda, 0xca, 0xfe, 0xc2, 0x09, 0xfd, 0xda, 0x80, 0xb3, 0xfb, 0x1e, 0xa1, - 0x57, 0x37, 0xd3, 0xcb, 0xc5, 0xcb, 0xf1, 0x28, 0x71, 0xf7, 0xe3, 0x59, 0xba, 0x98, 0xbd, 0xc4, - 0x87, 0xd9, 0xa1, 0x7b, 0x36, 0x6a, 0x29, 0x7e, 0x53, 0x95, 0x5b, 0x0c, 0x77, 0x60, 0x88, 0x21, - 0x65, 0x7e, 0x23, 0xc7, 0x55, 0x1c, 0x74, 0x5f, 0x44, 0x76, 0x11, 0x14, 0xad, 0x2a, 0xb3, 0x5f, - 0xf7, 0x61, 0x94, 0x9d, 0x25, 0xf4, 0x8e, 0xf2, 0x89, 0x88, 0xff, 0xca, 0xeb, 0x58, 0x16, 0xf2, - 0xe7, 0x30, 0xa1, 0x1e, 0xb8, 0x9f, 0x9d, 0x91, 0xdf, 0xa1, 0xe7, 0x39, 0xc2, 0x6d, 0x9a, 0x8d, - 0x3f, 0x9b, 0x78, 0x67, 0x97, 0xb3, 0x94, 0x09, 0x48, 0x99, 0x7e, 0x31, 0xab, 0xfb, 0x17, 0x52, - 0xd8, 0xe8, 0x13, 0x71, 0x7d, 0x41, 0x22, 0xa7, 0x81, 0x72, 0x78, 0x36, 0xc9, 0xd8, 0xfc, 0x3a, - 0xc8, 0x52, 0xc0, 0x76, 0xed, 0x76, 0x2f, 0xe7, 0x4e, 0xdd, 0x59, 0x97, 0x45, 0x65, 0x93, 0x2a, - 0x5e, 0xa9, 0x17, 0xa0, 0xb3, 0x09, 0x5d, 0xcd, 0x7e, 0x34, 0x9a, 0x4e, 0xc6, 0x63, 0x6a, 0xd8, - 0xa5, 0x53, 0x69, 0x66, 0x0d, 0x2f, 0xe7, 0x11, 0xea, 0xd8, 0x92, 0x4d, 0x93, 0xcb, 0x41, 0xcb, - 0x33, 0x8c, 0xf9, 0x85, 0xaa, 0x73, 0x21, 0xb7, 0x26, 0xe2, 0x96, 0x7a, 0x1f, 0x6c, 0x8e, 0x12, - 0x64, 0x38, 0xe9, 0xea, 0x3a, 0x17, 0x59, 0xe4, 0x7e, 0x89, 0xea, 0x7f, 0xe6, 0xfc, 0x79, 0x99, - 0xc4, 0x6e, 0x29, 0x87, 0xa5, 0xf9, 0x99, 0xf7, 0x9e, 0xd3, 0x7b, 0x21, 0xe6, 0x37, 0xb2, 0x6f, - 0x76, 0xa1, 0x22, 0x38, 0xf1, 0x76, 0x57, 0x38, 0x79, 0x6e, 0x72, 0x99, 0x7d, 0x61, 0xcd, 0xed, - 0x75, 0x79, 0xf3, 0xdb, 0x70, 0x94, 0x95, 0x91, 0x9c, 0x4e, 0x10, 0xd4, 0x83, 0xc2, 0x72, 0xc7, - 0x90, 0xc5, 0xfe, 0x2f, 0xa0, 0x12, 0x9f, 0x08, 0x9f, 0x6d, 0x12, 0xb2, 0x35, 0x7a, 0x94, 0x4e, - 0xd9, 0x87, 0xf2, 0x5e, 0x34, 0x2d, 0x5f, 0xcf, 0xe2, 0x70, 0xa8, 0x84, 0x1a, 0xf0, 0x58, 0x96, - 0xc4, 0x6b, 0xf1, 0x59, 0xef, 0xce, 0xe7, 0xf8, 0xae, 0xf8, 0x45, 0x99, 0x73, 0x21, 0x94, 0x9e, - 0xed, 0xb3, 0x13, 0x92, 0x07, 0xb6, 0x09, 0x42, 0x56, 0xce, 0xf4, 0x9e, 0x25, 0x1e, 0x25, 0x39, - 0x15, 0x67, 0x9d, 0x50, 0x27, 0xbe, 0x1c, 0x92, 0xce, 0x2b, 0x28, 0x75, 0xb9, 0xcc, 0x1c, 0x87, - 0x72, 0x76, 0x73, 0x92, 0x12, 0x2e, 0x91, 0x6d, 0xca, 0x9a, 0xd0, 0x92, 0x9a, 0x2d, 0xd9, 0xeb, - 0xb1, 0xa7, 0xc0, 0x90, 0xed, 0xac, 0x0c, 0xa2, 0xd2, 0x5e, 0x47, 0x75, 0x28, 0xb3, 0x25, 0x62, - 0xba, 0x80, 0x2f, 0x03, 0xf1, 0x4d, 0x95, 0x39, 0xd6, 0x45, 0x1d, 0xca, 0x6c, 0xb9, 0x9c, 0x27, - 0xd1, 0x06, 0x4d, 0x60, 0x6b, 0xa4, 0xf8, 0x96, 0x72, 0x2d, 0x32, 0xfb, 0x59, 0x83, 0x72, 0x7e, - 0xc3, 0xe8, 0x07, 0x30, 0x6b, 0x7c, 0xd7, 0x40, 0x9e, 0xa9, 0xe7, 0xbd, 0x7a, 0xd0, 0x8d, 0xf8, - 0x73, 0x98, 0xcf, 0xca, 0x40, 0x16, 0x5f, 0x0c, 0xc8, 0x4f, 0x0b, 0x27, 0x65, 0x6a, 0xd7, 0x54, - 0x66, 0x1b, 0x30, 0x63, 0xca, 0xea, 0x25, 0x37, 0x47, 0x4e, 0xca, 0x2f, 0xe3, 0xed, 0x83, 0x2d, - 0x98, 0x35, 0x66, 0xd6, 0x92, 0x9c, 0xc9, 0xcb, 0xbb, 0x65, 0xa4, 0xf8, 0x25, 0xcc, 0x65, 0xa4, - 0x91, 0x8a, 0x0f, 0xfe, 0x72, 0xd3, 0x4c, 0xe5, 0x04, 0x20, 0x94, 0xb3, 0x33, 0x14, 0xc9, 0xb8, - 0x93, 0xae, 0x49, 0x8c, 0xca, 0xc6, 0xb4, 0x6d, 0x68, 0x9b, 0x2e, 0x42, 0x53, 0xca, 0x22, 0x75, - 0x11, 0xe6, 0xa4, 0x34, 0xca, 0xb8, 0x35, 0x32, 0x97, 0x91, 0xa5, 0x28, 0x87, 0x6a, 0x0f, 0xbd, - 0xdd, 0x10, 0xf2, 0x5f, 0x4f, 0x5b, 0x93, 0x88, 0x65, 0x34, 0xe6, 0xb4, 0x31, 0xf6, 0x53, 0xb9, - 0xee, 0xdc, 0x6e, 0xe7, 0xa8, 0x41, 0x48, 0xbd, 0xef, 0x4c, 0x20, 0xa9, 0xef, 0x7c, 0x42, 0xc5, - 0xcd, 0x93, 0xa8, 0x29, 0x64, 0xaa, 0x78, 0x7e, 0x0c, 0xe3, 0x75, 0xb5, 0x71, 0x43, 0x23, 0x99, - 0x8b, 0x42, 0x06, 0xe7, 0x77, 0xef, 0x7b, 0xd7, 0x53, 0xb9, 0x6a, 0xbb, 0xdd, 0xd3, 0x28, 0x32, - 0x0f, 0xea, 0xb5, 0xa7, 0xb6, 0xa5, 0xa4, 0x36, 0xbd, 0x20, 0x2f, 0x0f, 0xea, 0xcd, 0xaf, 0x73, - 0x37, 0xd8, 0xe3, 0xa0, 0xc9, 0x04, 0x01, 0xc8, 0xea, 0x9e, 0xbd, 0x42, 0x86, 0xaa, 0xe6, 0x66, - 0x18, 0x58, 0xa1, 0x73, 0x16, 0xbf, 0x84, 0x9a, 0x63, 0xe4, 0xcb, 0x55, 0x6a, 0x78, 0x70, 0xf5, - 0x89, 0x7a, 0xd3, 0x9d, 0xbd, 0x9f, 0x9a, 0xe3, 0xa5, 0x4c, 0xde, 0x70, 0x4f, 0x3c, 0xb8, 0xfa, - 0x18, 0x4a, 0xc9, 0xc7, 0x5f, 0xa4, 0x0b, 0x29, 0xe3, 0x55, 0x98, 0x9c, 0x65, 0x01, 0xf1, 0x13, - 0x2f, 0xd2, 0x51, 0x93, 0x7a, 0xf5, 0xa5, 0x7c, 0xc9, 0x50, 0x23, 0x55, 0xac, 0x71, 0xf5, 0x41, - 0x18, 0x19, 0xc2, 0x62, 0x78, 0x25, 0xa6, 0x7c, 0xd9, 0x58, 0xc7, 0x09, 0x45, 0x2c, 0x59, 0x4a, - 0x46, 0x26, 0x5f, 0xa9, 0xb6, 0x76, 0xcf, 0x38, 0x5c, 0xbe, 0xdd, 0x0b, 0x28, 0x6f, 0x15, 0xcb, - 0xf7, 0x5b, 0xd3, 0x50, 0xe8, 0x6d, 0x43, 0xcc, 0xb1, 0x29, 0x49, 0x6e, 0xb9, 0x5b, 0x12, 0x61, - 0xb4, 0x07, 0x0b, 0x89, 0x98, 0x68, 0xbd, 0xa5, 0x6e, 0x04, 0x32, 0x67, 0x70, 0x0f, 0x16, 0xf8, - 0x25, 0xed, 0x73, 0x26, 0xbc, 0x0f, 0x0b, 0x79, 0xe9, 0x81, 0xd1, 0x6d, 0x73, 0xdc, 0xb3, 0x91, - 0x3d, 0xd9, 0x3a, 0xec, 0xb5, 0x74, 0xfc, 0x73, 0x62, 0xde, 0xcf, 0x2a, 0x5f, 0x9e, 0xc2, 0xa4, - 0x9e, 0x1a, 0x18, 0xa9, 0x32, 0x24, 0x95, 0xa8, 0xb8, 0x7c, 0x25, 0xa3, 0x96, 0xaf, 0x8f, 0xcf, - 0xa8, 0xc4, 0x8f, 0xd3, 0x0d, 0x95, 0xf5, 0x8b, 0x71, 0x6a, 0xea, 0xdd, 0xb2, 0x21, 0x8b, 0x11, - 0xfa, 0x0e, 0x4c, 0xc5, 0xf7, 0xe3, 0x18, 0x09, 0x03, 0x58, 0x8e, 0xe3, 0x68, 0x2a, 0xbe, 0x29, - 0x77, 0x76, 0xf4, 0x55, 0x21, 0xf6, 0x63, 0xf4, 0x2b, 0xa9, 0x50, 0x70, 0x6d, 0x0c, 0xbd, 0x48, - 0x7f, 0x85, 0xb7, 0x67, 0x9d, 0x9d, 0x26, 0xdd, 0x6e, 0xe6, 0x97, 0x8e, 0xd4, 0xed, 0x96, 0xfb, - 0x1a, 0x93, 0x54, 0x35, 0x33, 0xe8, 0x3c, 0x85, 0x1b, 0xf4, 0xbd, 0x80, 0x2d, 0xec, 0xb5, 0x5c, - 0xef, 0xc0, 0x0c, 0x95, 0xdd, 0xf7, 0xe4, 0x2b, 0x03, 0x6d, 0xb8, 0xde, 0xf5, 0xa9, 0x27, 0x74, - 0x57, 0x7b, 0x31, 0xa1, 0xfb, 0xa3, 0x50, 0x79, 0xd7, 0x2f, 0x4c, 0x2f, 0x26, 0xc9, 0x6f, 0x5a, - 0xce, 0xe3, 0x4d, 0xf2, 0x9b, 0x96, 0xfb, 0xe4, 0xd2, 0x97, 0xf4, 0xad, 0x68, 0xfe, 0x6d, 0xa1, - 0x6f, 0x80, 0x60, 0x8f, 0xbd, 0x01, 0x99, 0x7b, 0x0c, 0x72, 0x5d, 0x3f, 0xfc, 0x4b, 0x21, 0x52, - 0xfb, 0xe1, 0x2a, 0xb7, 0x7a, 0xb2, 0x88, 0x77, 0x27, 0x92, 0xc5, 0x97, 0xda, 0xf2, 0x4f, 0xfe, - 0xf2, 0x6a, 0xe1, 0x27, 0x3f, 0xbd, 0x5a, 0xf8, 0x8f, 0x3f, 0xbd, 0x5a, 0xf8, 0x2f, 0x3f, 0xbd, - 0x5a, 0xf8, 0xfe, 0x62, 0x6f, 0xef, 0x06, 0x36, 0xdb, 0x2e, 0xf6, 0xa2, 0xbb, 0x8c, 0xdc, 0x10, - 0xfd, 0xef, 0xc1, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x20, 0x9d, 0xab, 0x25, 0x6e, 0xc9, 0x00, + // 12753 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0xbd, 0x5d, 0x6c, 0x1c, 0x4b, + 0x76, 0x18, 0xcc, 0x19, 0xfe, 0x1f, 0xfe, 0x8d, 0x8a, 0xa4, 0x48, 0x8d, 0x28, 0x8d, 0xd4, 0xda, + 0xab, 0xab, 0xab, 0xdd, 0xab, 0x1f, 0xea, 0xde, 0xbb, 0xf7, 0x6f, 0xef, 0xdd, 0x19, 0x92, 0x12, + 0x29, 0x51, 0x24, 0x6f, 0x0f, 0x7f, 0xee, 0xee, 0x5e, 0xef, 0x6c, 0x73, 0xa6, 0x44, 0xf6, 0xa7, + 0x61, 0xf7, 0xb8, 0xbb, 0x29, 0x5d, 0xad, 0xe1, 0x2f, 0x71, 0x9c, 0xf8, 0x21, 0x40, 0x62, 0x07, + 0xb0, 0x03, 0x1b, 0x7e, 0x70, 0x82, 0xe4, 0x25, 0x01, 0x02, 0xe4, 0xc5, 0x30, 0x82, 0xf8, 0x25, + 0x48, 0x80, 0x6c, 0x02, 0x18, 0x08, 0x60, 0x1b, 0x01, 0xf2, 0x40, 0xc7, 0xfb, 0x48, 0x24, 0x01, + 0x92, 0x20, 0x79, 0x58, 0x20, 0x40, 0x50, 0xbf, 0x5d, 0xd5, 0x5d, 0xdd, 0x33, 0x94, 0xb8, 0xeb, + 0xbc, 0x48, 0x9c, 0xaa, 0x73, 0x4e, 0x55, 0x9d, 0xaa, 0x3a, 0x7d, 0xce, 0xa9, 0x53, 0x75, 0xe0, + 0x4e, 0x84, 0xdb, 0xb8, 0xe3, 0x07, 0xd1, 0xdd, 0x36, 0x3e, 0x70, 0x9a, 0xaf, 0xee, 0x36, 0xdb, + 0x2e, 0xf6, 0xa2, 0xbb, 0x9d, 0xc0, 0x8f, 0xfc, 0xbb, 0xce, 0x71, 0x74, 0x18, 0xe2, 0xe0, 0x85, + 0xdb, 0xc4, 0x77, 0x68, 0x09, 0x1a, 0xa4, 0xff, 0x95, 0x67, 0x0e, 0xfc, 0x03, 0x9f, 0xc1, 0x90, + 0xbf, 0x58, 0x65, 0xf9, 0xf2, 0x81, 0xef, 0x1f, 0xb4, 0x31, 0x43, 0xde, 0x3f, 0x7e, 0x76, 0x17, + 0x1f, 0x75, 0xa2, 0x57, 0xbc, 0xb2, 0x92, 0xac, 0x8c, 0xdc, 0x23, 0x1c, 0x46, 0xce, 0x51, 0x87, + 0x03, 0xbc, 0x23, 0xbb, 0xe2, 0x44, 0x11, 0xa9, 0x89, 0x5c, 0xdf, 0xbb, 0xfb, 0xe2, 0xbe, 0xfa, + 0x93, 0x83, 0xde, 0xca, 0xed, 0x75, 0x13, 0x07, 0x51, 0xd8, 0x13, 0x24, 0x7e, 0x81, 0xbd, 0x28, + 0xd5, 0x3c, 0x87, 0x8c, 0x5e, 0x75, 0x70, 0xc8, 0x40, 0xc4, 0x7f, 0x1c, 0xf4, 0xba, 0x19, 0x94, + 0xfe, 0xcb, 0x41, 0xde, 0x35, 0x83, 0xbc, 0xc4, 0xfb, 0x84, 0xa7, 0x9e, 0xfc, 0xa3, 0x0b, 0x78, + 0xe0, 0x74, 0x3a, 0x38, 0x88, 0xff, 0x48, 0xf5, 0xf5, 0x38, 0x74, 0x0e, 0x30, 0xef, 0xe3, 0x8b, + 0xfb, 0xea, 0x4f, 0x06, 0x6a, 0xfd, 0x41, 0x01, 0x06, 0xf7, 0x9c, 0xa8, 0x79, 0x88, 0x3e, 0x87, + 0xc1, 0x27, 0xae, 0xd7, 0x0a, 0xe7, 0x0b, 0xd7, 0xfa, 0x6f, 0x8d, 0x2d, 0x96, 0xee, 0xb0, 0xfe, + 0xd2, 0x4a, 0x52, 0x51, 0x9b, 0xfb, 0xc9, 0x49, 0xa5, 0xef, 0xf4, 0xa4, 0x32, 0xf5, 0x9c, 0x80, + 0x7d, 0xcb, 0x3f, 0x72, 0x23, 0x3a, 0x81, 0x36, 0xc3, 0x43, 0x3b, 0x30, 0x5d, 0x6d, 0xb7, 0xfd, + 0x97, 0x5b, 0x4e, 0x10, 0xb9, 0x4e, 0xbb, 0x7e, 0xdc, 0x6c, 0xe2, 0x30, 0x9c, 0x2f, 0x5e, 0x2b, + 0xdc, 0x1a, 0xa9, 0xdd, 0x38, 0x3d, 0xa9, 0x54, 0x1c, 0x52, 0xdd, 0xe8, 0xb0, 0xfa, 0x46, 0xc8, + 0x00, 0x14, 0x42, 0x26, 0x7c, 0xeb, 0xbf, 0x0c, 0x42, 0x69, 0xd5, 0x0f, 0xa3, 0x25, 0x32, 0x6d, + 0x36, 0xfe, 0xe5, 0x63, 0x1c, 0x46, 0xe8, 0x06, 0x0c, 0x91, 0xb2, 0xb5, 0xe5, 0xf9, 0xc2, 0xb5, + 0xc2, 0xad, 0xd1, 0xda, 0xd8, 0xe9, 0x49, 0x65, 0xf8, 0xd0, 0x0f, 0xa3, 0x86, 0xdb, 0xb2, 0x79, + 0x15, 0x7a, 0x07, 0x46, 0x36, 0xfc, 0x16, 0xde, 0x70, 0x8e, 0x30, 0xed, 0xc5, 0x68, 0x6d, 0xe2, + 0xf4, 0xa4, 0x32, 0xea, 0xf9, 0x2d, 0xdc, 0xf0, 0x9c, 0x23, 0x6c, 0xcb, 0x6a, 0xb4, 0x0b, 0x03, + 0xb6, 0xdf, 0xc6, 0xf3, 0xfd, 0x14, 0xac, 0x76, 0x7a, 0x52, 0x19, 0x08, 0xfc, 0x36, 0xfe, 0xd9, + 0x49, 0xe5, 0x83, 0x03, 0x37, 0x3a, 0x3c, 0xde, 0xbf, 0xd3, 0xf4, 0x8f, 0xee, 0x1e, 0x04, 0xce, + 0x0b, 0x97, 0xad, 0x34, 0xa7, 0x7d, 0x37, 0x5e, 0x8f, 0x1d, 0x97, 0x4f, 0x6e, 0xfd, 0x55, 0x18, + 0xe1, 0x23, 0x42, 0xc9, 0xa6, 0xf4, 0xd0, 0x1e, 0xcc, 0x54, 0x5b, 0x2d, 0x97, 0x61, 0x6c, 0x05, + 0xae, 0xd7, 0x74, 0x3b, 0x4e, 0x3b, 0x9c, 0x1f, 0xb8, 0xd6, 0x7f, 0x6b, 0x94, 0x33, 0x45, 0xd6, + 0x37, 0x3a, 0x12, 0x40, 0x61, 0x8a, 0x91, 0x00, 0x7a, 0x00, 0x23, 0xcb, 0x1b, 0x75, 0xd2, 0xf7, + 0x70, 0x7e, 0x90, 0x12, 0x9b, 0x3b, 0x3d, 0xa9, 0x4c, 0xb7, 0xbc, 0x90, 0x0e, 0x4d, 0x25, 0x20, + 0x01, 0xd1, 0x07, 0x30, 0xbe, 0x75, 0xbc, 0xdf, 0x76, 0x9b, 0xdb, 0xeb, 0xf5, 0x27, 0xf8, 0xd5, + 0xfc, 0xd0, 0xb5, 0xc2, 0xad, 0xf1, 0x1a, 0x3a, 0x3d, 0xa9, 0x4c, 0x76, 0x68, 0x79, 0x23, 0x6a, + 0x87, 0x8d, 0xe7, 0xf8, 0x95, 0xad, 0xc1, 0xc5, 0x78, 0xf5, 0xfa, 0x2a, 0xc1, 0x1b, 0x4e, 0xe1, + 0x85, 0xe1, 0xa1, 0x8a, 0xc7, 0xe0, 0xd0, 0x5d, 0x00, 0x1b, 0x1f, 0xf9, 0x11, 0xae, 0xb6, 0x5a, + 0xc1, 0xfc, 0x08, 0xe5, 0xed, 0xd4, 0xe9, 0x49, 0x65, 0x2c, 0xa0, 0xa5, 0x0d, 0xa7, 0xd5, 0x0a, + 0x6c, 0x05, 0x04, 0x2d, 0xc1, 0x88, 0xed, 0x33, 0x06, 0xcf, 0x8f, 0x5e, 0x2b, 0xdc, 0x1a, 0x5b, + 0x9c, 0xe2, 0xcb, 0x50, 0x14, 0xd7, 0x2e, 0x9e, 0x9e, 0x54, 0x50, 0xc0, 0x7f, 0xa9, 0xa3, 0x14, + 0x10, 0xa8, 0x02, 0xc3, 0x1b, 0xfe, 0x92, 0xd3, 0x3c, 0xc4, 0xf3, 0x40, 0xd7, 0xde, 0xe0, 0xe9, + 0x49, 0xa5, 0xf0, 0xae, 0x2d, 0x4a, 0xd1, 0x0b, 0x18, 0x8b, 0x27, 0x2a, 0x9c, 0x1f, 0xa3, 0xec, + 0xdb, 0x3e, 0x3d, 0xa9, 0x5c, 0x0c, 0x69, 0x71, 0x83, 0x4c, 0xbd, 0xc2, 0xc1, 0x37, 0x58, 0x05, + 0x6a, 0x43, 0x8f, 0x07, 0x46, 0xc6, 0x4b, 0x13, 0xf6, 0x95, 0x1d, 0x2f, 0x8c, 0x9c, 0xfd, 0x36, + 0x8e, 0xab, 0xaa, 0x61, 0x88, 0x03, 0x42, 0x6f, 0x6d, 0xd9, 0xfa, 0x3f, 0x05, 0x40, 0x9b, 0x1d, + 0xec, 0xd5, 0xeb, 0xab, 0x64, 0xc5, 0x8b, 0x05, 0xff, 0x2d, 0x18, 0x65, 0xac, 0x25, 0xfc, 0x2f, + 0x52, 0xfe, 0x4f, 0x9e, 0x9e, 0x54, 0x80, 0xf3, 0x9f, 0xf0, 0x3e, 0x06, 0x40, 0x6f, 0x41, 0xff, + 0xf6, 0xf6, 0x3a, 0x5d, 0xcd, 0xfd, 0xb5, 0xe9, 0xd3, 0x93, 0x4a, 0x7f, 0x14, 0xb5, 0x7f, 0x76, + 0x52, 0x19, 0x59, 0x3e, 0x0e, 0x68, 0xc7, 0x6d, 0x52, 0x8f, 0xde, 0x82, 0xe1, 0xa5, 0xf6, 0x71, + 0x18, 0xe1, 0x60, 0x7e, 0x20, 0xde, 0x46, 0x4d, 0x56, 0x64, 0x8b, 0x3a, 0xf4, 0x4d, 0x18, 0xd8, + 0x09, 0x71, 0x30, 0x3f, 0x48, 0x67, 0x64, 0x82, 0xcf, 0x08, 0x29, 0xda, 0x5d, 0xac, 0x8d, 0x90, + 0xbd, 0x72, 0x1c, 0xe2, 0xc0, 0xa6, 0x40, 0xe8, 0x0e, 0x0c, 0x32, 0xb6, 0x0e, 0x51, 0x31, 0x32, + 0x21, 0xe7, 0xaf, 0x8d, 0x77, 0x3f, 0xa8, 0x8d, 0x9e, 0x9e, 0x54, 0x06, 0x29, 0x7b, 0xed, 0x41, + 0xc1, 0x94, 0x42, 0xa9, 0x68, 0x8f, 0x10, 0x5c, 0xb2, 0x70, 0xad, 0x6f, 0xc2, 0x98, 0x32, 0x7c, + 0xb4, 0x00, 0x03, 0xe4, 0x7f, 0xba, 0xcd, 0xc7, 0x59, 0x63, 0x44, 0x7e, 0xdb, 0xb4, 0xd4, 0xfa, + 0xc3, 0x09, 0x28, 0x11, 0x4c, 0x4d, 0x36, 0x68, 0xac, 0x2a, 0x74, 0x63, 0xd5, 0x2d, 0x90, 0x6d, + 0x73, 0x21, 0x31, 0x7e, 0x7a, 0x52, 0x19, 0x39, 0xe6, 0x65, 0x71, 0xcf, 0x50, 0x1d, 0x86, 0x57, + 0xbe, 0xee, 0xb8, 0x01, 0x0e, 0x29, 0x63, 0xc7, 0x16, 0xcb, 0x77, 0xd8, 0x37, 0xeb, 0x8e, 0xf8, + 0x66, 0xdd, 0xd9, 0x16, 0xdf, 0xac, 0xda, 0x15, 0x2e, 0x2c, 0x2f, 0x60, 0x86, 0x12, 0xaf, 0xa6, + 0xdf, 0xfa, 0x8b, 0x4a, 0xc1, 0x16, 0x94, 0xd0, 0xb7, 0x60, 0xe8, 0xa1, 0x1f, 0x1c, 0x39, 0x11, + 0x9f, 0x81, 0x99, 0xd3, 0x93, 0x4a, 0xe9, 0x19, 0x2d, 0x51, 0x16, 0x37, 0x87, 0x41, 0x0f, 0x61, + 0xd2, 0xf6, 0x8f, 0x23, 0xbc, 0xed, 0x8b, 0x79, 0x1b, 0xa4, 0x58, 0x57, 0x4f, 0x4f, 0x2a, 0xe5, + 0x80, 0xd4, 0x34, 0x22, 0xbf, 0xc1, 0x27, 0x50, 0xc1, 0x4f, 0x60, 0xa1, 0x15, 0x98, 0xac, 0x52, + 0xe9, 0xca, 0x79, 0xc6, 0x66, 0x6b, 0xb4, 0x76, 0xe5, 0xf4, 0xa4, 0x72, 0xc9, 0xa1, 0x35, 0x8d, + 0x80, 0x57, 0xa9, 0x64, 0x74, 0x24, 0xb4, 0x01, 0x17, 0x9e, 0x1c, 0xef, 0xe3, 0xc0, 0xc3, 0x11, + 0x0e, 0x45, 0x8f, 0x86, 0x69, 0x8f, 0xae, 0x9d, 0x9e, 0x54, 0x16, 0x9e, 0xcb, 0x4a, 0x43, 0x9f, + 0xd2, 0xa8, 0x08, 0xc3, 0x14, 0xef, 0xe8, 0xb2, 0x13, 0x39, 0xfb, 0x4e, 0x88, 0xa9, 0xd0, 0x18, + 0x5b, 0xbc, 0xc8, 0x58, 0x7c, 0x27, 0x51, 0x5b, 0xbb, 0xc1, 0xb9, 0x7c, 0x59, 0x8e, 0xbd, 0xc5, + 0xab, 0x94, 0x86, 0x92, 0x34, 0x89, 0xec, 0x94, 0xdf, 0x85, 0x51, 0xda, 0x5b, 0x2a, 0x3b, 0xe5, + 0x77, 0x41, 0x95, 0x2a, 0xf2, 0x0b, 0xb1, 0x0e, 0x83, 0x3b, 0xe4, 0xeb, 0x49, 0x65, 0xca, 0xe4, + 0xe2, 0x75, 0xde, 0xa3, 0xe4, 0xea, 0xbb, 0x43, 0x7e, 0x50, 0x40, 0xba, 0xef, 0xa6, 0xe8, 0x17, + 0x57, 0xfd, 0x56, 0xd2, 0x3a, 0xf4, 0x05, 0x00, 0xef, 0x55, 0xb5, 0xd3, 0x99, 0x1f, 0xa3, 0x83, + 0xbc, 0xa0, 0x0f, 0xb2, 0xda, 0xe9, 0xd4, 0xae, 0xf2, 0xf1, 0x5d, 0x94, 0xe3, 0x73, 0x3a, 0x1d, + 0x85, 0x9a, 0x42, 0x04, 0x7d, 0x0e, 0xe3, 0x54, 0xe4, 0x88, 0x19, 0x1d, 0xa7, 0x33, 0x7a, 0xf9, + 0xf4, 0xa4, 0x32, 0x47, 0x36, 0x9c, 0x69, 0x3e, 0x35, 0x04, 0xf4, 0xff, 0xc3, 0x2c, 0x27, 0xb7, + 0xe7, 0x7a, 0x2d, 0xff, 0x65, 0xb8, 0x8c, 0xc3, 0xe7, 0x91, 0xdf, 0x99, 0x9f, 0xa0, 0xdd, 0x5b, + 0xd0, 0xbb, 0xa7, 0xc3, 0xd4, 0x6e, 0xf3, 0x9e, 0x5a, 0xb2, 0xa7, 0x2f, 0x19, 0x40, 0xa3, 0xc5, + 0x20, 0x94, 0x66, 0xcd, 0xcd, 0xa0, 0x35, 0x98, 0xda, 0x09, 0xb1, 0x36, 0x86, 0x49, 0x2a, 0xbf, + 0x2b, 0x64, 0x86, 0x8f, 0x43, 0xdc, 0xc8, 0x1a, 0x47, 0x12, 0x0f, 0xd9, 0x80, 0x96, 0x03, 0xbf, + 0x93, 0x58, 0xe3, 0x53, 0x94, 0x23, 0xd6, 0xe9, 0x49, 0xe5, 0x6a, 0x2b, 0xf0, 0x3b, 0x8d, 0xec, + 0x85, 0x6e, 0xc0, 0x46, 0x3f, 0x84, 0x8b, 0x4b, 0xbe, 0xe7, 0xe1, 0x26, 0x91, 0x9f, 0xcb, 0xae, + 0x73, 0xe0, 0xf9, 0x61, 0xe4, 0x36, 0xd7, 0x96, 0xe7, 0x4b, 0x74, 0x0d, 0xdd, 0x24, 0xa3, 0x6f, + 0x4a, 0x88, 0x46, 0x4b, 0x82, 0x34, 0xdc, 0x96, 0x42, 0x3b, 0x83, 0x0a, 0xfa, 0x01, 0x4c, 0xf0, + 0xb6, 0x70, 0x40, 0x97, 0xe6, 0x85, 0xfc, 0x85, 0x26, 0x81, 0xd9, 0x87, 0x38, 0x10, 0x3f, 0x99, + 0x6a, 0xa3, 0xd3, 0x42, 0x5f, 0xc1, 0xd8, 0xd3, 0x87, 0x55, 0x1b, 0x87, 0x1d, 0xdf, 0x0b, 0xf1, + 0x3c, 0xa2, 0x33, 0x7a, 0x95, 0x93, 0x7e, 0xfa, 0xb0, 0x5a, 0x3d, 0x8e, 0x0e, 0xb1, 0x17, 0xb9, + 0x4d, 0x27, 0xc2, 0x02, 0xaa, 0x56, 0x26, 0x2b, 0xef, 0xe8, 0x99, 0xd3, 0x08, 0x78, 0x89, 0x32, + 0x0a, 0x95, 0x1c, 0x2a, 0xc3, 0x48, 0xbd, 0xbe, 0xba, 0xee, 0x1f, 0xb8, 0xde, 0xfc, 0x34, 0x61, + 0x86, 0x2d, 0x7f, 0xa3, 0x7d, 0x98, 0x55, 0x14, 0xf4, 0x06, 0xf9, 0x1f, 0x1f, 0x61, 0x2f, 0x9a, + 0x9f, 0xa1, 0x7d, 0x78, 0x57, 0x5a, 0x18, 0x77, 0x54, 0x3d, 0xfe, 0xc5, 0xfd, 0x3b, 0xd5, 0xf8, + 0x67, 0x5d, 0x20, 0xd9, 0x33, 0x8e, 0xa1, 0xd4, 0xfa, 0x12, 0x46, 0xe5, 0xb6, 0x43, 0xc3, 0xd0, + 0x5f, 0x6d, 0xb7, 0x4b, 0x7d, 0xe4, 0x8f, 0x7a, 0x7d, 0xb5, 0x54, 0x40, 0x93, 0x00, 0xb1, 0xac, + 0x29, 0x15, 0xd1, 0x38, 0x8c, 0x08, 0x59, 0x50, 0xea, 0xa7, 0xf0, 0x9d, 0x4e, 0x69, 0x00, 0x21, + 0x98, 0xd4, 0x57, 0x64, 0x69, 0xd0, 0xda, 0x81, 0x51, 0xc9, 0x48, 0x34, 0x05, 0x63, 0x3b, 0x1b, + 0xf5, 0xad, 0x95, 0xa5, 0xb5, 0x87, 0x6b, 0x2b, 0xcb, 0xa5, 0x3e, 0x74, 0x05, 0x2e, 0x6d, 0xd7, + 0x57, 0x1b, 0xcb, 0xb5, 0xc6, 0xfa, 0xe6, 0x52, 0x75, 0xbd, 0xb1, 0x65, 0x6f, 0x7e, 0xf9, 0xbd, + 0xc6, 0xf6, 0xce, 0xc6, 0xc6, 0xca, 0x7a, 0xa9, 0x80, 0xe6, 0x61, 0x86, 0x54, 0x3f, 0xd9, 0xa9, + 0xad, 0xa8, 0x00, 0xa5, 0xa2, 0xf5, 0x1f, 0x0b, 0x29, 0x49, 0x87, 0x16, 0x61, 0xac, 0xce, 0x6c, + 0x29, 0x3a, 0xfb, 0x4c, 0xaf, 0x2d, 0x9d, 0x9e, 0x54, 0xc6, 0xb9, 0x89, 0xc5, 0x26, 0x56, 0x05, + 0x22, 0x1f, 0xaf, 0x2d, 0x32, 0x85, 0x4d, 0xbf, 0xad, 0x7e, 0xbc, 0x3a, 0xbc, 0xcc, 0x96, 0xb5, + 0x68, 0x51, 0xf9, 0xcc, 0x31, 0x25, 0x97, 0x2a, 0x52, 0xe2, 0x33, 0xa7, 0x8a, 0x3c, 0xf9, 0xc1, + 0x5b, 0x8c, 0xf9, 0xc4, 0xbf, 0x4e, 0x14, 0xc7, 0x20, 0x62, 0x25, 0x9c, 0x75, 0x9c, 0x21, 0x44, + 0xd0, 0x27, 0x49, 0xee, 0xf2, 0x11, 0x52, 0x29, 0x99, 0x90, 0x15, 0x76, 0x02, 0x14, 0x55, 0x60, + 0x90, 0xad, 0x2e, 0x36, 0x48, 0xaa, 0x45, 0xb4, 0x49, 0x81, 0xcd, 0xca, 0xad, 0xbf, 0xdb, 0xaf, + 0x0a, 0x54, 0xa2, 0x35, 0x28, 0x4c, 0xa4, 0x5a, 0x03, 0x65, 0x1e, 0x2d, 0x25, 0x0a, 0x42, 0x1d, + 0x87, 0x21, 0xd5, 0xb7, 0x38, 0x45, 0xaa, 0x20, 0x84, 0xac, 0x90, 0x98, 0x10, 0x31, 0x00, 0x51, + 0x62, 0x99, 0xb6, 0x40, 0x95, 0xd8, 0xfe, 0x58, 0x89, 0xe5, 0xfa, 0x04, 0x53, 0x62, 0x63, 0x10, + 0x32, 0x91, 0xfc, 0x83, 0x46, 0xfb, 0x30, 0x10, 0x4f, 0x24, 0xff, 0x08, 0xf2, 0x89, 0x54, 0x80, + 0xd0, 0xc7, 0x00, 0xd5, 0xbd, 0x3a, 0xd5, 0x05, 0xed, 0x0d, 0xfe, 0x51, 0xa7, 0xdb, 0xcf, 0x79, + 0x19, 0x32, 0xb1, 0xe7, 0x04, 0xaa, 0xb6, 0xab, 0x40, 0xa3, 0x1a, 0x4c, 0x54, 0x7f, 0x7c, 0x1c, + 0xe0, 0xb5, 0x16, 0xd9, 0xc1, 0x11, 0x53, 0xeb, 0x47, 0x6b, 0x0b, 0xa7, 0x27, 0x95, 0x79, 0x87, + 0x54, 0x34, 0x5c, 0x5e, 0xa3, 0x10, 0xd0, 0x51, 0xd0, 0x26, 0x5c, 0x78, 0xb4, 0xb4, 0xc5, 0x97, + 0x56, 0xb5, 0xd9, 0xf4, 0x8f, 0xbd, 0x88, 0x7f, 0xc9, 0xaf, 0x9f, 0x9e, 0x54, 0xae, 0x1c, 0x34, + 0x3b, 0x0d, 0xb1, 0x0c, 0x1d, 0x56, 0xad, 0x7e, 0xca, 0x53, 0xb8, 0x56, 0x1b, 0x26, 0x1f, 0xe1, + 0x88, 0x2c, 0x25, 0xa1, 0x96, 0xe5, 0xcf, 0xc9, 0xa7, 0x30, 0xb6, 0xe7, 0x46, 0x87, 0x75, 0xdc, + 0x0c, 0x70, 0x24, 0x8c, 0x46, 0xca, 0x81, 0x97, 0x6e, 0x74, 0xd8, 0x08, 0x59, 0xb9, 0x2a, 0x80, + 0x14, 0x70, 0x6b, 0x05, 0xa6, 0x78, 0x6b, 0x52, 0x0b, 0x5c, 0xd4, 0x09, 0x16, 0x28, 0x41, 0x3a, + 0x0b, 0x2a, 0x41, 0x9d, 0xcc, 0x1f, 0x16, 0x61, 0x76, 0xe9, 0xd0, 0xf1, 0x0e, 0xf0, 0x96, 0x13, + 0x86, 0x2f, 0xfd, 0xa0, 0xa5, 0x74, 0x9e, 0xaa, 0xc0, 0xa9, 0xce, 0x53, 0x9d, 0x77, 0x11, 0xc6, + 0x36, 0xdb, 0x2d, 0x81, 0xc3, 0xd5, 0x73, 0xda, 0x96, 0xdf, 0x6e, 0x35, 0x3a, 0x82, 0x96, 0x0a, + 0x44, 0x70, 0x36, 0xf0, 0x4b, 0x89, 0xd3, 0x1f, 0xe3, 0x78, 0xf8, 0xa5, 0x82, 0xa3, 0x00, 0xa1, + 0x15, 0xb8, 0x50, 0xc7, 0x4d, 0xdf, 0x6b, 0x3d, 0x74, 0x9a, 0x91, 0x1f, 0x6c, 0xfb, 0xcf, 0xb1, + 0xc7, 0xd7, 0x17, 0xd5, 0x60, 0x42, 0x5a, 0xd9, 0x78, 0x46, 0x6b, 0x1b, 0x11, 0xa9, 0xb6, 0xd3, + 0x18, 0x68, 0x13, 0x46, 0xf6, 0xb8, 0x7f, 0x81, 0xeb, 0xf4, 0x6f, 0xdd, 0x91, 0x0e, 0x87, 0xa5, + 0x00, 0xd3, 0x45, 0xe1, 0xb4, 0xa5, 0x55, 0x22, 0x3f, 0x08, 0x54, 0xb8, 0x08, 0x48, 0x5b, 0x12, + 0xb1, 0x76, 0x60, 0x62, 0xab, 0x7d, 0x7c, 0xe0, 0x7a, 0x44, 0x0c, 0xd4, 0xf1, 0x2f, 0xa3, 0x65, + 0x80, 0xb8, 0x80, 0x3b, 0x14, 0xa6, 0xb9, 0x25, 0x10, 0x57, 0xec, 0x3e, 0xe0, 0x1b, 0x89, 0x96, + 0x50, 0xd5, 0xcd, 0x56, 0xf0, 0xac, 0xbf, 0xdd, 0x0f, 0x88, 0x4f, 0x00, 0x95, 0xf5, 0x75, 0x1c, + 0x11, 0x31, 0x7c, 0x11, 0x8a, 0xd2, 0xee, 0x1f, 0x3a, 0x3d, 0xa9, 0x14, 0xdd, 0x96, 0x5d, 0x5c, + 0x5b, 0x46, 0xef, 0xc1, 0x20, 0x05, 0xa3, 0xfc, 0x9f, 0x94, 0xed, 0xa9, 0x14, 0x98, 0xe4, 0xa0, + 0xdf, 0x20, 0x9b, 0x01, 0xa3, 0xf7, 0x61, 0x74, 0x19, 0xb7, 0xf1, 0x81, 0x13, 0xf9, 0x62, 0x77, + 0x33, 0x4b, 0x5a, 0x14, 0x2a, 0x6b, 0x2e, 0x86, 0x24, 0x7a, 0xbb, 0x8d, 0x9d, 0xd0, 0xf7, 0x54, + 0xbd, 0x3d, 0xa0, 0x25, 0xaa, 0xde, 0xce, 0x60, 0xd0, 0xef, 0x14, 0x60, 0xac, 0xea, 0x79, 0xdc, + 0x42, 0x0d, 0x39, 0xd7, 0x67, 0xef, 0x48, 0xbf, 0xcd, 0xba, 0xb3, 0x8f, 0xdb, 0xbb, 0x4e, 0xfb, + 0x18, 0x87, 0xb5, 0xaf, 0x88, 0x2a, 0xf5, 0x9f, 0x4e, 0x2a, 0x9f, 0x9c, 0xc1, 0xe6, 0x8c, 0x3d, + 0x40, 0xdb, 0x81, 0xe3, 0x46, 0xe1, 0xe9, 0x49, 0x65, 0xd6, 0x89, 0x1b, 0x54, 0xf7, 0x8d, 0xd2, + 0x0f, 0xf4, 0x8e, 0x6a, 0xac, 0x71, 0x59, 0x9c, 0x30, 0x7e, 0xb9, 0x9d, 0x66, 0xdd, 0x90, 0x5f, + 0xc2, 0xb5, 0xe5, 0xac, 0x29, 0xb0, 0x96, 0x60, 0xe1, 0x11, 0x8e, 0x6c, 0x1c, 0xe2, 0x48, 0x2c, + 0x5a, 0xba, 0xe4, 0x62, 0xb7, 0xcd, 0x30, 0xfd, 0x2d, 0x91, 0xe9, 0x7c, 0xb0, 0x85, 0x2a, 0x6a, + 0xac, 0xbf, 0x59, 0x80, 0xca, 0x52, 0x80, 0x99, 0x26, 0x92, 0x41, 0x28, 0x5f, 0x98, 0x2c, 0xc0, + 0xc0, 0xf6, 0xab, 0x8e, 0xb0, 0xe7, 0x68, 0x2d, 0xe1, 0x92, 0x4d, 0x4b, 0x7b, 0x34, 0x8e, 0xad, + 0x67, 0x30, 0x6b, 0x63, 0x0f, 0xbf, 0x24, 0xa6, 0xba, 0x66, 0x5f, 0x56, 0x60, 0x90, 0xed, 0xbc, + 0xd4, 0x10, 0x58, 0xf9, 0xd9, 0x6c, 0x75, 0xeb, 0x9f, 0x14, 0xa1, 0xc4, 0x86, 0x5b, 0xf3, 0xa3, + 0xde, 0xc6, 0xc7, 0x47, 0x50, 0xec, 0x62, 0xde, 0xdf, 0x8c, 0xb9, 0xdd, 0x1f, 0x2b, 0x07, 0xb4, + 0xab, 0xe4, 0x1b, 0x27, 0x2a, 0xc9, 0x80, 0xd8, 0x2a, 0x60, 0x5e, 0xa9, 0x94, 0x8d, 0x8e, 0x7e, + 0xa3, 0x00, 0x43, 0x6c, 0x5d, 0xe5, 0xaf, 0xdc, 0xbd, 0xf3, 0x59, 0xb9, 0xa5, 0x88, 0xfe, 0xa5, + 0xee, 0x23, 0x56, 0x67, 0xfd, 0xb3, 0x22, 0x5c, 0x50, 0x78, 0xc5, 0xd5, 0xcf, 0x77, 0x98, 0x6e, + 0xa3, 0x30, 0x8c, 0xfa, 0xf9, 0x88, 0x6e, 0xd3, 0x88, 0x6d, 0x78, 0xca, 0xb9, 0x77, 0x60, 0x84, + 0x0c, 0x29, 0xe9, 0x12, 0xa4, 0x5f, 0x58, 0x06, 0x2a, 0xaa, 0x7b, 0xe6, 0xde, 0x5d, 0x18, 0xa1, + 0x7f, 0x92, 0x19, 0x19, 0xc8, 0x9e, 0x11, 0x09, 0x84, 0x5c, 0x80, 0xc7, 0xbe, 0xeb, 0x3d, 0xc5, + 0xd1, 0xa1, 0xdf, 0xe2, 0xdf, 0xfa, 0x35, 0x22, 0x07, 0xff, 0x3f, 0xdf, 0xf5, 0x1a, 0x47, 0xb4, + 0xf8, 0xac, 0x2e, 0xa7, 0x98, 0xa0, 0xad, 0x10, 0xb7, 0xee, 0x41, 0x89, 0x88, 0xac, 0xde, 0x97, + 0x96, 0x35, 0x03, 0xe8, 0x11, 0x8e, 0x6a, 0xbe, 0xf6, 0x31, 0xb5, 0x26, 0x60, 0x6c, 0xcb, 0xf5, + 0x0e, 0xc4, 0xcf, 0x7f, 0xde, 0x0f, 0xe3, 0xec, 0x37, 0x9f, 0x81, 0x84, 0xca, 0x53, 0xe8, 0x45, + 0xe5, 0xf9, 0x10, 0x26, 0x88, 0xce, 0x80, 0x83, 0x5d, 0x1c, 0x10, 0x55, 0x8b, 0xcf, 0x07, 0x35, + 0x66, 0x42, 0x5a, 0xd1, 0x78, 0xc1, 0x6a, 0x6c, 0x1d, 0x10, 0xad, 0xc3, 0x24, 0x2b, 0x78, 0x88, + 0x9d, 0xe8, 0x38, 0xf6, 0xc7, 0x4c, 0x71, 0x7b, 0x46, 0x14, 0x33, 0x79, 0xc6, 0x69, 0x3d, 0xe3, + 0x85, 0x76, 0x02, 0x17, 0x7d, 0x0e, 0x53, 0x5b, 0x81, 0xff, 0xf5, 0x2b, 0x45, 0xc9, 0x63, 0x22, + 0x7d, 0xf6, 0xf4, 0xa4, 0x72, 0xa1, 0x43, 0xaa, 0x1a, 0xaa, 0xaa, 0x97, 0x84, 0x26, 0x6b, 0x6a, + 0x2d, 0xac, 0xf9, 0x81, 0xeb, 0x1d, 0xd0, 0xd9, 0x1c, 0x61, 0x6b, 0xca, 0x0d, 0x1b, 0xfb, 0xb4, + 0xd0, 0x96, 0xd5, 0x09, 0x87, 0xe8, 0x70, 0x77, 0x87, 0xe8, 0x3d, 0x80, 0x75, 0xdf, 0x69, 0x55, + 0xdb, 0xed, 0xa5, 0x6a, 0x48, 0x9d, 0x21, 0x5c, 0x89, 0x69, 0xfb, 0x4e, 0xab, 0xe1, 0xb4, 0xdb, + 0x8d, 0xa6, 0x13, 0xda, 0x0a, 0xcc, 0xe3, 0x81, 0x91, 0xa1, 0xd2, 0xb0, 0x3d, 0xb5, 0xee, 0x36, + 0xb1, 0x17, 0xe2, 0x3d, 0x27, 0xf0, 0x5c, 0xef, 0x20, 0xb4, 0xfe, 0xc5, 0x30, 0x8c, 0xc8, 0x21, + 0xdf, 0x51, 0x0d, 0x22, 0xae, 0x1a, 0x51, 0x09, 0x15, 0x3b, 0x6c, 0x6c, 0x05, 0x02, 0x5d, 0xa2, + 0x26, 0x12, 0x57, 0xca, 0x86, 0xc9, 0xea, 0x76, 0x3a, 0x1d, 0x9b, 0x94, 0x91, 0x2f, 0xc1, 0x72, + 0x8d, 0xf2, 0x7f, 0x84, 0x7d, 0x09, 0x5a, 0xfb, 0x76, 0x71, 0xb9, 0x46, 0x56, 0xd9, 0xe6, 0xda, + 0xf2, 0x12, 0x65, 0xe5, 0x08, 0x5b, 0x65, 0xbe, 0xdb, 0x6a, 0xda, 0xb4, 0x94, 0xd4, 0xd6, 0xab, + 0x4f, 0xd7, 0x39, 0xbb, 0x68, 0x6d, 0xe8, 0x1c, 0xb5, 0x6d, 0x5a, 0x4a, 0x4c, 0x05, 0x66, 0x7b, + 0x2f, 0xf9, 0x5e, 0x14, 0xf8, 0xed, 0x90, 0x6a, 0xb4, 0x23, 0x6c, 0x3a, 0xb9, 0xd1, 0xde, 0xe4, + 0x55, 0x76, 0x02, 0x14, 0xed, 0xc1, 0x5c, 0xb5, 0xf5, 0xc2, 0xf1, 0x9a, 0xb8, 0xc5, 0x6a, 0xf6, + 0xfc, 0xe0, 0xf9, 0xb3, 0xb6, 0xff, 0x32, 0xa4, 0xfc, 0x1e, 0xe1, 0x3e, 0x2e, 0x0e, 0x22, 0x7c, + 0x00, 0x2f, 0x05, 0x90, 0x9d, 0x85, 0x4d, 0xa4, 0xe4, 0x52, 0xdb, 0x3f, 0x6e, 0xf1, 0x59, 0xa0, + 0x52, 0xb2, 0x49, 0x0a, 0x6c, 0x56, 0x4e, 0xb8, 0xb4, 0x5a, 0x7f, 0x4a, 0x3d, 0x4a, 0x9c, 0x4b, + 0x87, 0xe1, 0x91, 0x4d, 0xca, 0xd0, 0x5b, 0x30, 0x2c, 0xac, 0x1e, 0xe6, 0x92, 0xa6, 0x8e, 0x56, + 0x61, 0xed, 0x88, 0x3a, 0xb2, 0x25, 0x6c, 0xdc, 0xf4, 0x5f, 0xe0, 0xe0, 0xd5, 0x92, 0xdf, 0xc2, + 0xc2, 0xff, 0xc1, 0xed, 0x7b, 0x56, 0xd1, 0x68, 0x92, 0x1a, 0x5b, 0x07, 0x24, 0x0d, 0x30, 0xc5, + 0x29, 0x9c, 0x9f, 0x8a, 0x1b, 0x60, 0x8a, 0x55, 0x68, 0x8b, 0x3a, 0xb4, 0x0c, 0x17, 0xaa, 0xc7, + 0x91, 0x7f, 0xe4, 0x44, 0x6e, 0x73, 0xa7, 0x73, 0x10, 0x38, 0xa4, 0x91, 0x12, 0x45, 0xa0, 0xa6, + 0x9d, 0x23, 0x2a, 0x1b, 0xc7, 0xbc, 0xd6, 0x4e, 0x23, 0xa0, 0x0f, 0x60, 0x7c, 0x2d, 0x64, 0x3e, + 0x2e, 0x27, 0xc4, 0x2d, 0xea, 0xa8, 0xe0, 0xbd, 0x74, 0xc3, 0x06, 0xf5, 0x78, 0x35, 0x88, 0x31, + 0xd8, 0xb2, 0x35, 0x38, 0x64, 0xc1, 0x50, 0x35, 0x0c, 0xdd, 0x30, 0xa2, 0xfe, 0x87, 0x91, 0x1a, + 0x9c, 0x9e, 0x54, 0x86, 0x1c, 0x5a, 0x62, 0xf3, 0x1a, 0xb4, 0x07, 0x63, 0xcb, 0x98, 0x18, 0x12, + 0xdb, 0xc1, 0x71, 0x18, 0x51, 0x6f, 0xc2, 0xd8, 0xe2, 0x25, 0xbe, 0xb1, 0x95, 0x1a, 0xbe, 0x96, + 0x99, 0x89, 0xd0, 0xa2, 0xe5, 0x8d, 0x88, 0x54, 0xa8, 0xaa, 0x8e, 0x02, 0x4f, 0xac, 0x24, 0x8e, + 0xb3, 0xea, 0xb6, 0xc8, 0x56, 0x9d, 0xa1, 0x7d, 0xa0, 0x56, 0x12, 0x97, 0x0d, 0x8d, 0x43, 0x5a, + 0xa3, 0x5a, 0x49, 0x1a, 0x0a, 0x6a, 0xa6, 0xdc, 0xa6, 0xb3, 0x9a, 0x6b, 0x4c, 0xaf, 0x14, 0x5d, + 0x3c, 0x9b, 0x53, 0xf5, 0xf1, 0xc0, 0xc8, 0x58, 0x69, 0x9c, 0x9d, 0x15, 0x3c, 0x1e, 0x18, 0x99, + 0x28, 0x4d, 0x5a, 0xbf, 0x5b, 0x00, 0x94, 0x1e, 0x3a, 0xba, 0x0b, 0xc3, 0xd8, 0x23, 0xda, 0x49, + 0x8b, 0x6f, 0x61, 0x2a, 0xb0, 0x78, 0x91, 0xd2, 0x80, 0x80, 0x42, 0x5f, 0xc0, 0x34, 0xe3, 0x94, + 0x98, 0xa4, 0xb6, 0x7b, 0xe4, 0x46, 0x74, 0x5b, 0x0f, 0x32, 0x33, 0xcf, 0x50, 0xad, 0x9a, 0x79, + 0xbc, 0x9a, 0x4e, 0xe9, 0x3a, 0xa9, 0x24, 0x4a, 0x92, 0x71, 0xd0, 0xe8, 0x29, 0xcc, 0x1e, 0xf9, + 0x5e, 0x74, 0xd8, 0x7e, 0x25, 0xc6, 0xcc, 0x5b, 0x2b, 0xd0, 0xd6, 0x2e, 0x11, 0x05, 0xd5, 0x08, + 0x60, 0x4f, 0xf3, 0x62, 0x4e, 0x91, 0xb5, 0x73, 0x1f, 0x2e, 0xb0, 0x0f, 0x59, 0xcf, 0x16, 0xa5, + 0xb5, 0x05, 0x50, 0xc7, 0x47, 0x4e, 0xe7, 0xd0, 0x27, 0x22, 0xaf, 0xa6, 0xfe, 0xe2, 0x16, 0x09, + 0xe2, 0x16, 0x82, 0xac, 0xd8, 0x7d, 0x20, 0x1c, 0x01, 0x02, 0xd2, 0x56, 0xb0, 0xac, 0x3f, 0x29, + 0x02, 0xaa, 0x1e, 0xb7, 0xdc, 0xa8, 0x1e, 0x05, 0xd8, 0x39, 0x12, 0xdd, 0xf8, 0x08, 0xc6, 0x99, + 0x4e, 0xc2, 0x8a, 0x69, 0x77, 0x88, 0xb9, 0xc3, 0xd6, 0x84, 0x5a, 0xb5, 0xda, 0x67, 0x6b, 0xa0, + 0x04, 0xd5, 0xc6, 0xe1, 0xf1, 0x91, 0x40, 0x2d, 0x6a, 0xa8, 0x6a, 0x15, 0x41, 0x55, 0x7f, 0xa3, + 0xcf, 0x61, 0x72, 0xc9, 0x3f, 0xea, 0x10, 0x9e, 0x70, 0xe4, 0x7e, 0xae, 0x9a, 0xf1, 0x76, 0xb5, + 0xca, 0xd5, 0x3e, 0x3b, 0x01, 0x8e, 0x36, 0x60, 0xfa, 0x61, 0xfb, 0x38, 0x3c, 0xac, 0x7a, 0xad, + 0xa5, 0xb6, 0x1f, 0x0a, 0x2a, 0x03, 0xfc, 0x68, 0x83, 0x7f, 0x4a, 0xd3, 0x10, 0xab, 0x7d, 0xb6, + 0x09, 0x11, 0xbd, 0x05, 0x83, 0x2b, 0x2f, 0xb0, 0x17, 0xc9, 0x63, 0x22, 0x7e, 0xce, 0xbc, 0xe9, + 0xe1, 0xcd, 0x67, 0xab, 0x7d, 0x36, 0xab, 0xad, 0x8d, 0xc2, 0xb0, 0x50, 0x23, 0xee, 0x12, 0x69, + 0x24, 0xd9, 0x49, 0xcc, 0xb1, 0xe3, 0x10, 0x95, 0x61, 0x64, 0xa7, 0x43, 0xbe, 0x6e, 0xc2, 0x46, + 0xb0, 0xe5, 0x6f, 0xeb, 0x5b, 0x3a, 0xa7, 0xd1, 0x82, 0xea, 0xc8, 0x61, 0xc0, 0x71, 0x81, 0xb5, + 0xaa, 0x33, 0x37, 0x1f, 0x5a, 0x6b, 0xb7, 0x98, 0x68, 0xb7, 0x94, 0xe4, 0xb5, 0x35, 0x6b, 0x64, + 0x9e, 0xf5, 0x25, 0x5c, 0xdd, 0xe9, 0x10, 0xab, 0xb9, 0xda, 0xe9, 0xb4, 0xdd, 0x26, 0x73, 0x53, + 0x52, 0x75, 0x43, 0x2c, 0x96, 0x0f, 0x60, 0x88, 0x15, 0xf0, 0x65, 0x22, 0xd6, 0x60, 0xb5, 0xd3, + 0xe1, 0x4a, 0xce, 0x03, 0x26, 0x17, 0x99, 0xda, 0x62, 0x73, 0x68, 0xeb, 0xb7, 0x0a, 0x70, 0x95, + 0xed, 0x80, 0x4c, 0xd2, 0xdf, 0x84, 0x51, 0x7a, 0xcc, 0xdb, 0x71, 0x9a, 0x9a, 0x1e, 0xec, 0x89, + 0x42, 0x3b, 0xae, 0x57, 0x0e, 0xd0, 0x8b, 0xd9, 0x07, 0xe8, 0x62, 0x83, 0xf5, 0x1b, 0x37, 0xd8, + 0x17, 0x60, 0xf1, 0x1e, 0xb5, 0xdb, 0xa9, 0x4e, 0x85, 0xaf, 0xd3, 0x2b, 0xeb, 0xbf, 0x16, 0x61, + 0xee, 0x11, 0xf6, 0x70, 0xe0, 0xd0, 0x71, 0x6a, 0x26, 0x9f, 0x7a, 0x50, 0x57, 0xc8, 0x3d, 0xa8, + 0x93, 0xf6, 0x4c, 0x31, 0xc3, 0x9e, 0xb9, 0x04, 0xfd, 0x3b, 0xf6, 0x1a, 0x1f, 0x16, 0xfd, 0x52, + 0x1f, 0x07, 0xae, 0x4d, 0xca, 0xd0, 0x5a, 0x7c, 0xc8, 0x37, 0xd0, 0xf5, 0x90, 0x6f, 0x9a, 0x1f, + 0x7a, 0x0c, 0xf3, 0x43, 0x3e, 0xfd, 0x68, 0x6f, 0x43, 0x31, 0x9a, 0x88, 0xb8, 0xb9, 0xcd, 0xf7, + 0x54, 0xc6, 0x00, 0xb9, 0xfd, 0xb3, 0xe2, 0x45, 0xc1, 0x2b, 0xb6, 0x04, 0x98, 0x19, 0x24, 0x8c, + 0x9f, 0xf2, 0x17, 0x30, 0xa6, 0x80, 0xa0, 0x12, 0xf4, 0x3f, 0xe7, 0x07, 0x9c, 0xa3, 0x36, 0xf9, + 0x13, 0x7d, 0x0b, 0x06, 0x5f, 0x10, 0x43, 0x8c, 0x8b, 0x91, 0x8b, 0xb1, 0x91, 0x56, 0x8f, 0x88, + 0xfa, 0xc9, 0xac, 0x34, 0x9b, 0x01, 0x7d, 0x5c, 0xfc, 0xb0, 0x60, 0x7d, 0x02, 0xf3, 0xe9, 0xde, + 0x70, 0x9d, 0xbe, 0x9b, 0x99, 0x6b, 0x2d, 0xc3, 0xcc, 0x23, 0x1c, 0xd1, 0x85, 0x4b, 0x37, 0x91, + 0x72, 0xfe, 0x9a, 0xd8, 0x67, 0x39, 0xee, 0x55, 0xab, 0x0e, 0xb3, 0x09, 0x2a, 0xbc, 0xfd, 0x8f, + 0x61, 0x98, 0x17, 0x49, 0x89, 0xca, 0x23, 0x52, 0xf0, 0x3e, 0xaf, 0xd8, 0x5d, 0x64, 0xeb, 0x96, + 0x53, 0xb6, 0x05, 0x82, 0x75, 0x08, 0x17, 0xd7, 0xdd, 0x50, 0xa1, 0x2a, 0x97, 0xe3, 0x65, 0x18, + 0xed, 0x90, 0x6f, 0x5b, 0xe8, 0xfe, 0x98, 0x2d, 0xa3, 0x41, 0x7b, 0x84, 0x14, 0xd4, 0xdd, 0x1f, + 0x63, 0x74, 0x05, 0x80, 0x56, 0xd2, 0x61, 0x72, 0x29, 0x40, 0xc1, 0x99, 0x5d, 0x8f, 0x80, 0x1e, + 0x74, 0xb3, 0x75, 0x63, 0xd3, 0xbf, 0xad, 0x00, 0xe6, 0x52, 0x2d, 0xf1, 0x01, 0xdc, 0x85, 0x11, + 0xde, 0xb1, 0x30, 0xe1, 0x02, 0x53, 0x47, 0x60, 0x4b, 0x20, 0x74, 0x13, 0xa6, 0x3c, 0xfc, 0x75, + 0xd4, 0x48, 0xf5, 0x61, 0x82, 0x14, 0x6f, 0x89, 0x7e, 0x58, 0xbf, 0x44, 0xbd, 0x2c, 0x75, 0xcf, + 0x7f, 0xf9, 0xac, 0xed, 0x3c, 0xc7, 0xa9, 0x86, 0xbf, 0x03, 0x23, 0xf5, 0xee, 0x0d, 0xb3, 0xed, + 0x23, 0x1a, 0xb7, 0x25, 0x8a, 0xd5, 0x86, 0x32, 0x19, 0x12, 0x51, 0xc5, 0xd7, 0x5a, 0x5b, 0x3f, + 0x6f, 0x06, 0xbe, 0x80, 0xcb, 0xc6, 0xd6, 0x7e, 0xde, 0x4c, 0xfc, 0xcb, 0x22, 0xcc, 0xb1, 0x8f, + 0x49, 0x7a, 0x05, 0xf7, 0x2e, 0x6a, 0x7e, 0x21, 0x87, 0x03, 0xf7, 0x0c, 0x87, 0x03, 0x14, 0x45, + 0x3d, 0x1c, 0xd0, 0x8e, 0x04, 0x3e, 0x34, 0x1f, 0x09, 0x50, 0x15, 0x5d, 0x3f, 0x12, 0x48, 0x1e, + 0x04, 0xac, 0x64, 0x1f, 0x04, 0x50, 0xb7, 0xa8, 0xe1, 0x20, 0xc0, 0xe0, 0xfe, 0x7f, 0x3c, 0x30, + 0x52, 0x2c, 0xf5, 0x5b, 0xbb, 0x30, 0x9f, 0x66, 0xf1, 0x39, 0x6c, 0xef, 0x3f, 0x2a, 0xc0, 0x15, + 0xae, 0x08, 0x24, 0x36, 0xc1, 0xd9, 0x67, 0xf0, 0x7d, 0x18, 0xe7, 0xb8, 0xdb, 0xf1, 0x62, 0xa9, + 0x5d, 0x38, 0x3d, 0xa9, 0x4c, 0x08, 0x81, 0xc5, 0xa4, 0x9e, 0x06, 0x86, 0xde, 0x57, 0xbc, 0x3e, + 0xcc, 0x93, 0x48, 0x54, 0xda, 0x51, 0xe6, 0x1e, 0xca, 0xf4, 0xfd, 0x58, 0x5f, 0xc1, 0xd5, 0xac, + 0x8e, 0x9f, 0x03, 0x5f, 0xfe, 0x55, 0x01, 0x2e, 0x73, 0xf2, 0xda, 0x76, 0x7a, 0x2d, 0xc9, 0x7c, + 0x86, 0xc8, 0x98, 0xc7, 0x30, 0x46, 0x1a, 0x14, 0xfd, 0xee, 0xe7, 0x9f, 0x1f, 0xae, 0x5d, 0xc7, + 0x35, 0xcb, 0x4e, 0xe4, 0xf0, 0x23, 0x4d, 0xe7, 0xa8, 0xdd, 0x10, 0xfd, 0x57, 0x91, 0xad, 0xef, + 0xc3, 0x82, 0x79, 0x08, 0xe7, 0xc0, 0x9f, 0xc7, 0x50, 0x36, 0x08, 0xce, 0xd7, 0xfb, 0x6e, 0x7d, + 0x0f, 0x2e, 0x1b, 0x69, 0x9d, 0x43, 0x37, 0x57, 0xc9, 0x57, 0x39, 0x3a, 0x87, 0x29, 0xb4, 0xf6, + 0xe0, 0x92, 0x81, 0xd2, 0x39, 0x74, 0xf1, 0x11, 0xcc, 0x49, 0x6d, 0xf4, 0x8d, 0x7a, 0xf8, 0x14, + 0xae, 0x30, 0x42, 0xe7, 0x33, 0x2b, 0x4f, 0xe0, 0x32, 0x27, 0x77, 0x0e, 0xdc, 0x5b, 0x85, 0x85, + 0xd8, 0xe8, 0x34, 0xe8, 0x12, 0x3d, 0x0b, 0x19, 0x6b, 0x1d, 0xae, 0xc5, 0x94, 0x32, 0x3e, 0xac, + 0xbd, 0x53, 0x63, 0x2a, 0x53, 0x3c, 0x4b, 0xe7, 0x32, 0xa3, 0x7b, 0x70, 0x51, 0x23, 0x7a, 0x6e, + 0xea, 0xc4, 0x1a, 0x4c, 0x33, 0xc2, 0xba, 0x7a, 0xb9, 0xa8, 0xaa, 0x97, 0x63, 0x8b, 0x17, 0x62, + 0x92, 0xb4, 0x78, 0xf7, 0x81, 0x41, 0xe3, 0x7c, 0x4a, 0x35, 0x4e, 0x01, 0x12, 0xf7, 0xf0, 0x7d, + 0x18, 0x62, 0x25, 0xbc, 0x7f, 0x06, 0x62, 0x4c, 0xa1, 0x66, 0x68, 0x1c, 0xd8, 0xfa, 0x21, 0x5c, + 0x61, 0xd6, 0x5a, 0xec, 0xea, 0xd4, 0x2d, 0xaa, 0xef, 0x24, 0x8c, 0xb5, 0x4b, 0x9c, 0x6e, 0x12, + 0x3e, 0xc3, 0x66, 0xdb, 0x17, 0x6b, 0x3b, 0x8b, 0x7e, 0x4f, 0x51, 0xcc, 0xc2, 0x08, 0x2b, 0x1a, + 0x8d, 0xb0, 0x1b, 0x70, 0x5d, 0x1a, 0x61, 0xc9, 0x66, 0xa4, 0xfb, 0xfe, 0xfb, 0x70, 0x99, 0x0d, + 0x54, 0x84, 0x69, 0xe8, 0xdd, 0xf8, 0x24, 0x31, 0xcc, 0x39, 0x3e, 0x4c, 0x1d, 0x3a, 0x63, 0x90, + 0x7f, 0xa7, 0x20, 0xb6, 0x9c, 0x99, 0xf8, 0x2f, 0xda, 0x2a, 0xdd, 0x80, 0x8a, 0x64, 0x88, 0xde, + 0xa3, 0xd7, 0x33, 0x49, 0x9f, 0xc2, 0xac, 0x4a, 0xc6, 0x6d, 0xe2, 0xdd, 0xfb, 0x44, 0x61, 0x45, + 0xef, 0x91, 0x6d, 0x41, 0x0b, 0xc4, 0xb2, 0x9b, 0x37, 0xf0, 0x8d, 0xc2, 0xdb, 0x12, 0xd2, 0x6a, + 0xc0, 0x42, 0x7a, 0x2a, 0xdc, 0xa6, 0x08, 0x5d, 0x43, 0x9f, 0x93, 0x2d, 0x4c, 0x4b, 0xf8, 0x64, + 0x64, 0x12, 0x15, 0xfb, 0x98, 0xa1, 0x0b, 0x2c, 0xcb, 0x12, 0xa2, 0x26, 0x31, 0x7e, 0xd2, 0xba, + 0x58, 0x0f, 0xbf, 0x0a, 0x48, 0x54, 0x2d, 0xd5, 0x6d, 0xd1, 0xf4, 0x25, 0xe8, 0x5f, 0xaa, 0xdb, + 0x3c, 0x62, 0x96, 0x5a, 0xc5, 0xcd, 0x30, 0xb0, 0x49, 0x59, 0x52, 0x6b, 0x2d, 0xf6, 0xa0, 0xb5, + 0x3e, 0x1e, 0x18, 0xe9, 0x2f, 0x0d, 0xd8, 0xa8, 0xee, 0x1e, 0x78, 0x7b, 0x6e, 0x74, 0x28, 0x1b, + 0xac, 0x5a, 0x3f, 0x80, 0x69, 0xad, 0x79, 0xbe, 0x8b, 0x73, 0x43, 0x7d, 0xd1, 0x4d, 0x18, 0x5e, + 0xaa, 0xd2, 0x73, 0x58, 0x6a, 0xd6, 0x8f, 0x33, 0x79, 0xd3, 0x74, 0x1a, 0xf4, 0x3a, 0x87, 0x2d, + 0x2a, 0xad, 0x7f, 0x3c, 0xa0, 0x50, 0x57, 0x02, 0xa8, 0x73, 0x46, 0x77, 0x1f, 0x80, 0xad, 0x10, + 0x65, 0x70, 0x44, 0x01, 0x1c, 0xe3, 0x47, 0x47, 0x4c, 0x24, 0xdb, 0x0a, 0x50, 0xaf, 0x01, 0xd6, + 0x3c, 0xa6, 0x8b, 0x21, 0x89, 0xf3, 0x55, 0x19, 0xd3, 0xc5, 0x49, 0x87, 0xb6, 0x0a, 0x84, 0x7e, + 0x98, 0x8c, 0x03, 0x1c, 0xa4, 0xe1, 0x0c, 0xdf, 0x10, 0x3e, 0xf0, 0xf4, 0xd8, 0xce, 0x16, 0x0a, + 0xf8, 0x12, 0x66, 0x09, 0xae, 0xfb, 0x8c, 0x06, 0xfb, 0xad, 0x7c, 0x1d, 0x61, 0x8f, 0xc9, 0xf6, + 0x21, 0xda, 0xce, 0x5b, 0x39, 0xed, 0xc4, 0xc0, 0xcc, 0xef, 0xde, 0x8c, 0xe9, 0x34, 0xb0, 0xac, + 0xb3, 0xcd, 0xf4, 0xe9, 0x22, 0xb2, 0xd7, 0x57, 0xbc, 0x56, 0xc7, 0x77, 0xa5, 0x51, 0xc1, 0x16, + 0x51, 0xd0, 0x6e, 0x60, 0x5e, 0x6e, 0xab, 0x40, 0xd6, 0xcd, 0xdc, 0xf8, 0xbb, 0x11, 0x18, 0xd8, + 0x5e, 0xda, 0x5e, 0x2f, 0x15, 0xac, 0xbb, 0x00, 0x4a, 0x4b, 0x00, 0x43, 0x1b, 0x9b, 0xf6, 0xd3, + 0xea, 0x7a, 0xa9, 0x0f, 0xcd, 0xc2, 0x85, 0xbd, 0xb5, 0x8d, 0xe5, 0xcd, 0xbd, 0x7a, 0xa3, 0xfe, + 0xb4, 0x6a, 0x6f, 0x2f, 0x55, 0xed, 0xe5, 0x52, 0xc1, 0xfa, 0x0a, 0x66, 0xf4, 0x11, 0x9e, 0xeb, + 0x22, 0x8c, 0x60, 0x5a, 0xea, 0x33, 0x8f, 0xf7, 0xb6, 0x95, 0x98, 0x24, 0x6e, 0x20, 0x25, 0x8f, + 0x49, 0xb9, 0x29, 0xc5, 0xb7, 0x91, 0x02, 0xa4, 0x1d, 0x6e, 0x17, 0x73, 0x0f, 0xb7, 0xad, 0x6f, + 0xc3, 0x8c, 0xde, 0x6a, 0xaf, 0x9e, 0x9c, 0x6f, 0xd0, 0x60, 0x2d, 0x25, 0x82, 0x96, 0x58, 0xea, + 0x71, 0x17, 0xb9, 0x64, 0xfd, 0x36, 0x94, 0x38, 0x54, 0xfc, 0xe5, 0xbd, 0x21, 0x5c, 0x6d, 0x05, + 0x43, 0xb4, 0xbf, 0x08, 0x1d, 0x79, 0x5b, 0x38, 0xef, 0xbb, 0xb5, 0xf0, 0x27, 0x05, 0x98, 0x4f, + 0x04, 0xa3, 0x2e, 0x1d, 0x3a, 0xed, 0x36, 0xf6, 0x0e, 0x30, 0xba, 0x05, 0x03, 0xdb, 0x9b, 0xdb, + 0x5b, 0xdc, 0xb9, 0x35, 0xc3, 0x97, 0x29, 0x29, 0x92, 0x30, 0x36, 0x85, 0x40, 0x4f, 0xe0, 0x82, + 0x08, 0x4d, 0x92, 0x55, 0xdc, 0x28, 0xb9, 0x92, 0x1f, 0xe8, 0x94, 0xc6, 0x43, 0xef, 0xf1, 0xc8, + 0xd9, 0x5f, 0x3e, 0x76, 0x03, 0xdc, 0xa2, 0x06, 0xfb, 0xe4, 0x22, 0x8a, 0x23, 0x67, 0x45, 0x8d, + 0xad, 0x82, 0xb1, 0x5b, 0x0d, 0xd6, 0xef, 0x14, 0x60, 0x2e, 0x23, 0xb8, 0x16, 0xbd, 0xa3, 0x0d, + 0x67, 0x5a, 0x19, 0x8e, 0x00, 0x59, 0xed, 0xe3, 0xe3, 0x59, 0x52, 0xe2, 0xb5, 0xfa, 0xcf, 0x10, + 0xaf, 0xb5, 0xda, 0x17, 0xc7, 0x68, 0xd5, 0x00, 0x46, 0x44, 0xb9, 0x35, 0x05, 0x13, 0x1a, 0xdf, + 0x2c, 0x0b, 0xc6, 0xd5, 0x96, 0xc9, 0xe4, 0x2c, 0xf9, 0x2d, 0x39, 0x39, 0xe4, 0x6f, 0xeb, 0xef, + 0x15, 0x60, 0x86, 0x0e, 0xf1, 0xc0, 0x25, 0xbb, 0x31, 0xe6, 0xd0, 0xa2, 0x36, 0x92, 0x05, 0x6d, + 0x24, 0x09, 0x58, 0x39, 0xa4, 0x8f, 0x53, 0x43, 0x5a, 0x30, 0x0d, 0x89, 0x5a, 0x82, 0xae, 0xef, + 0x69, 0x23, 0x51, 0x4e, 0x10, 0x7e, 0xb7, 0x00, 0xd3, 0x4a, 0x9f, 0x64, 0xff, 0xef, 0x6b, 0x5d, + 0xba, 0x6c, 0xe8, 0x52, 0x8a, 0xc9, 0xb5, 0x54, 0x8f, 0xbe, 0x91, 0xd7, 0xa3, 0xae, 0x3c, 0xfe, + 0xf3, 0x02, 0xcc, 0x1a, 0x79, 0x80, 0x2e, 0x12, 0x75, 0xab, 0x19, 0xe0, 0x88, 0xb3, 0x97, 0xff, + 0x22, 0xe5, 0x6b, 0x61, 0x78, 0x8c, 0x03, 0xee, 0xb0, 0xe2, 0xbf, 0xd0, 0x37, 0x60, 0x62, 0x0b, + 0x07, 0xae, 0xdf, 0x62, 0x91, 0x7c, 0x2c, 0xda, 0x61, 0xc2, 0xd6, 0x0b, 0xd1, 0x02, 0x8c, 0x56, + 0xdb, 0x07, 0x7e, 0xe0, 0x46, 0x87, 0xec, 0x10, 0x67, 0xd4, 0x8e, 0x0b, 0x08, 0xed, 0x65, 0xf7, + 0x40, 0x04, 0xf0, 0x4c, 0xd8, 0xfc, 0x17, 0x9a, 0x87, 0x61, 0xe1, 0xe4, 0xa1, 0x2e, 0x22, 0x5b, + 0xfc, 0x24, 0x18, 0x5f, 0xd8, 0x74, 0x11, 0xd0, 0xdb, 0x5e, 0x36, 0xff, 0x65, 0xdd, 0x86, 0x19, + 0x13, 0x1f, 0x8d, 0x4b, 0xe6, 0xaf, 0x17, 0x61, 0xba, 0xda, 0x6a, 0x3d, 0x7d, 0x58, 0x65, 0xc7, + 0x97, 0x62, 0xef, 0xbf, 0x07, 0x03, 0x6b, 0x1e, 0x3f, 0x0b, 0x8c, 0xc3, 0xd0, 0x0d, 0x90, 0x04, + 0x8a, 0xcc, 0x10, 0xf9, 0x1f, 0xd9, 0x30, 0xbd, 0xf2, 0xb5, 0x1b, 0x46, 0xae, 0x77, 0xa0, 0xc6, + 0xb2, 0x17, 0x7b, 0x89, 0x65, 0x5f, 0xed, 0xb3, 0x4d, 0xc8, 0x68, 0x1b, 0x2e, 0x6e, 0xe0, 0x97, + 0x86, 0x25, 0x24, 0xaf, 0xf8, 0x28, 0x1b, 0x3d, 0xb5, 0x72, 0x32, 0x70, 0xd5, 0x15, 0xfa, 0x1b, + 0x45, 0x7a, 0x03, 0x50, 0x19, 0x18, 0x6f, 0x79, 0x07, 0x66, 0x94, 0x0e, 0xc5, 0x72, 0x8a, 0xf1, + 0xa4, 0x62, 0x1e, 0x8e, 0xba, 0x91, 0x8c, 0xe8, 0x68, 0x0f, 0xe6, 0xf4, 0x4e, 0xc5, 0x94, 0xf5, + 0xcd, 0x60, 0x02, 0x59, 0xed, 0xb3, 0xb3, 0xb0, 0xd1, 0x22, 0xf4, 0x57, 0x9b, 0xcf, 0x39, 0x5b, + 0xcc, 0x53, 0xc6, 0x46, 0x56, 0x6d, 0x3e, 0x5f, 0xed, 0xb3, 0x09, 0xb0, 0xb6, 0x1f, 0xfe, 0x4d, + 0x01, 0xe6, 0x32, 0x66, 0x18, 0x5d, 0x05, 0x60, 0x85, 0xca, 0x17, 0x41, 0x29, 0x21, 0x0a, 0x1a, + 0x3f, 0xff, 0x7e, 0xd5, 0x61, 0x33, 0x33, 0x29, 0x6f, 0xcb, 0xc4, 0x15, 0xb6, 0x02, 0x84, 0xb6, + 0x44, 0x1c, 0x01, 0xbb, 0xb4, 0xa3, 0x8b, 0x6d, 0xa5, 0x46, 0x0b, 0x20, 0x48, 0x5e, 0xd6, 0x51, + 0x49, 0x70, 0x97, 0xe6, 0x52, 0x72, 0x14, 0x72, 0xd0, 0xe8, 0x16, 0x0c, 0xb1, 0x42, 0x3e, 0x87, + 0xe2, 0x06, 0x6d, 0x0c, 0xcc, 0xeb, 0xad, 0x7f, 0x50, 0x80, 0x8b, 0xec, 0x8b, 0x98, 0xda, 0x1a, + 0xdf, 0xd6, 0xb6, 0xc6, 0x75, 0xd9, 0x61, 0x13, 0xb0, 0xb6, 0x3b, 0x6a, 0xfa, 0x0d, 0x8f, 0x5e, + 0x77, 0x85, 0x8a, 0xa4, 0xae, 0xdb, 0x7f, 0x54, 0x10, 0x1e, 0x9e, 0xf4, 0xd2, 0x5d, 0x81, 0xf1, + 0xd7, 0x5b, 0xb2, 0x1a, 0x1a, 0x7a, 0x9f, 0xad, 0xa8, 0x62, 0xfe, 0x48, 0x73, 0x17, 0xd5, 0xa7, + 0x50, 0xce, 0x66, 0x4d, 0xb7, 0x65, 0x65, 0x3d, 0x34, 0x60, 0xbf, 0xce, 0x74, 0x1e, 0xa7, 0xe8, + 0xd4, 0x5f, 0x79, 0x4d, 0x31, 0xa3, 0x37, 0x93, 0x31, 0xaf, 0x99, 0x71, 0x84, 0x6a, 0x6f, 0x8b, + 0xf1, 0x51, 0x02, 0x5f, 0x9c, 0x54, 0xd9, 0x53, 0xbb, 0xff, 0xc7, 0x45, 0x7d, 0x2d, 0xbe, 0x4e, + 0xa3, 0x4b, 0x30, 0xb1, 0x81, 0x5f, 0xa6, 0xda, 0xa5, 0x21, 0x2b, 0x1e, 0x7e, 0xd9, 0x50, 0xda, + 0x56, 0xc3, 0x62, 0x34, 0x1c, 0xb4, 0x0f, 0x93, 0x42, 0x6a, 0xf4, 0x2a, 0x3c, 0xd9, 0x8d, 0x45, + 0xd2, 0x42, 0xc6, 0xfd, 0xa2, 0x04, 0xc5, 0xf3, 0xdf, 0xcf, 0xd6, 0x16, 0xcc, 0xa7, 0xb9, 0xc7, + 0x5b, 0x7b, 0xaf, 0xdb, 0xdc, 0x33, 0x57, 0x48, 0x4b, 0x5f, 0x07, 0xab, 0xd4, 0x3d, 0x25, 0x61, + 0xa4, 0xbf, 0xe1, 0x5e, 0x72, 0x32, 0x68, 0xac, 0x95, 0x98, 0x0c, 0x35, 0x52, 0x47, 0x84, 0x40, + 0x2f, 0x51, 0x0f, 0x9f, 0x4a, 0x89, 0x77, 0xec, 0x36, 0x0c, 0xf3, 0xa2, 0xc4, 0x35, 0xfd, 0x78, + 0x55, 0x0a, 0x00, 0xeb, 0xf7, 0x0a, 0x70, 0x89, 0xfa, 0x1b, 0x5d, 0xef, 0xa0, 0x8d, 0x77, 0x42, + 0x3d, 0x8a, 0xf9, 0x5d, 0x4d, 0xd0, 0xcc, 0x65, 0xdc, 0x32, 0xfb, 0x79, 0x89, 0x97, 0x3f, 0x28, + 0x40, 0xd9, 0xd4, 0xb7, 0xf3, 0x95, 0x30, 0x77, 0xb8, 0x31, 0x57, 0xe4, 0x9e, 0x14, 0x86, 0x2e, + 0xdb, 0x14, 0x83, 0x25, 0x83, 0x24, 0xff, 0x6b, 0xa2, 0xe5, 0x7f, 0x17, 0x60, 0x66, 0x2d, 0x54, + 0x15, 0x7c, 0xce, 0xb8, 0x3b, 0xa6, 0x4b, 0xaf, 0x74, 0x5e, 0x57, 0xfb, 0x4c, 0x97, 0x5a, 0xdf, + 0x53, 0x6e, 0x51, 0x15, 0xf3, 0x6e, 0xb3, 0x12, 0x55, 0x52, 0xde, 0x06, 0xbb, 0x09, 0x03, 0x1b, + 0x44, 0x9d, 0xea, 0xe7, 0xeb, 0x8f, 0x61, 0x90, 0x22, 0x7a, 0xe1, 0x89, 0x74, 0x99, 0xfc, 0x40, + 0x0f, 0x53, 0xd7, 0xaa, 0x06, 0xba, 0xdf, 0xd6, 0x5c, 0xed, 0x4b, 0xde, 0xb0, 0xaa, 0x8d, 0xc0, + 0xd0, 0xb6, 0x13, 0x1c, 0xe0, 0xc8, 0xfa, 0x3e, 0x94, 0x79, 0x40, 0x0e, 0xf3, 0xe0, 0xd2, 0xb0, + 0x9d, 0x30, 0x8e, 0xb9, 0xca, 0x0b, 0xa2, 0xb9, 0x0a, 0x50, 0x8f, 0x9c, 0x20, 0x5a, 0xf3, 0x5a, + 0xf8, 0x6b, 0x16, 0x58, 0x66, 0x2b, 0x25, 0xd6, 0xfb, 0x30, 0x2a, 0x87, 0x40, 0x2d, 0x40, 0x45, + 0x63, 0xa4, 0xc3, 0x99, 0xd1, 0x2e, 0x7a, 0x89, 0xdb, 0x5d, 0x0f, 0x60, 0x36, 0x31, 0x15, 0xf1, + 0xc5, 0x43, 0x69, 0x99, 0xd1, 0x18, 0x38, 0x5b, 0xfe, 0xb6, 0x96, 0xe0, 0x42, 0x6a, 0xa6, 0x11, + 0xa2, 0x77, 0x02, 0x99, 0x75, 0x4f, 0x3e, 0x28, 0xf5, 0xfa, 0x2a, 0x29, 0xdb, 0x5e, 0xaf, 0xb3, + 0x40, 0x7d, 0x52, 0xb6, 0xbd, 0x5e, 0xaf, 0x0d, 0xb1, 0x95, 0x63, 0xfd, 0xd3, 0x22, 0x35, 0x7a, + 0x53, 0x3c, 0x48, 0xf8, 0x0f, 0x55, 0x1f, 0x66, 0x0d, 0x46, 0xe9, 0x88, 0x97, 0xc5, 0x55, 0x94, + 0xfc, 0x18, 0x92, 0x91, 0x9f, 0x9c, 0x54, 0xfa, 0x68, 0xe0, 0x48, 0x8c, 0x86, 0x3e, 0x83, 0xe1, + 0x15, 0xaf, 0x45, 0x29, 0xf4, 0x9f, 0x81, 0x82, 0x40, 0x22, 0xf3, 0x40, 0xbb, 0x4c, 0x54, 0x21, + 0xee, 0x76, 0xb2, 0x95, 0x12, 0xca, 0x66, 0x1a, 0x8d, 0x37, 0x48, 0xa7, 0x88, 0xfd, 0xa0, 0xd7, + 0x38, 0x49, 0x17, 0xc4, 0xd3, 0x10, 0xa3, 0xb6, 0xfc, 0x8d, 0x2c, 0x18, 0xdc, 0x0c, 0x5a, 0xfc, + 0x7a, 0xf7, 0xe4, 0xe2, 0x38, 0x5f, 0x5e, 0xb4, 0xcc, 0x66, 0x55, 0xd6, 0xff, 0x2c, 0xc0, 0xdc, + 0x23, 0x1c, 0x19, 0xd7, 0x8d, 0xc6, 0x95, 0xc2, 0x1b, 0x73, 0xa5, 0xf8, 0x3a, 0x5c, 0x91, 0xa3, + 0xee, 0xcf, 0x1a, 0xf5, 0x40, 0xd6, 0xa8, 0x07, 0xb3, 0x47, 0xfd, 0x08, 0x86, 0xd8, 0x50, 0xd1, + 0x0d, 0x18, 0x5c, 0x8b, 0xf0, 0x51, 0xec, 0x0c, 0x51, 0x23, 0xe0, 0x6c, 0x56, 0x47, 0x2c, 0xae, + 0x75, 0x27, 0x8c, 0xc4, 0xd5, 0x90, 0x51, 0x5b, 0xfc, 0xb4, 0x7e, 0x44, 0x2f, 0xb1, 0xad, 0xfb, + 0xcd, 0xe7, 0x8a, 0xa7, 0x7a, 0x98, 0xed, 0xca, 0xe4, 0xc9, 0x06, 0x81, 0x62, 0x35, 0xb6, 0x80, + 0x40, 0xd7, 0x60, 0x6c, 0xcd, 0x7b, 0xe8, 0x07, 0x4d, 0xbc, 0xe9, 0xb5, 0x19, 0xf5, 0x11, 0x5b, + 0x2d, 0xe2, 0x1e, 0x1c, 0xde, 0x42, 0xec, 0xc1, 0xa1, 0x05, 0x09, 0x0f, 0x0e, 0x29, 0xdb, 0x5d, + 0xb4, 0x59, 0x1d, 0x77, 0x10, 0x91, 0xbf, 0xf3, 0xdc, 0x37, 0xd2, 0xcf, 0xd3, 0x0d, 0x70, 0x1f, + 0x2e, 0xd9, 0xb8, 0xd3, 0x76, 0x88, 0xc2, 0x75, 0xe4, 0x33, 0x78, 0x39, 0xe6, 0x6b, 0x86, 0xbb, + 0x04, 0x7a, 0x3c, 0x84, 0xec, 0x72, 0x31, 0xa7, 0xcb, 0x47, 0x70, 0xfd, 0x11, 0x8e, 0x74, 0x29, + 0x17, 0xfb, 0xc1, 0xf9, 0xe0, 0x57, 0x61, 0x24, 0xd4, 0x7d, 0xf8, 0x57, 0xc5, 0xd1, 0x91, 0x09, + 0x71, 0xf7, 0x81, 0x38, 0xe5, 0xe2, 0x74, 0xe4, 0x5f, 0xd6, 0xe7, 0x50, 0xc9, 0x6a, 0xae, 0xb7, + 0x70, 0x55, 0x17, 0xae, 0x65, 0x13, 0x90, 0x9f, 0x45, 0xe1, 0xef, 0x97, 0xa6, 0x73, 0x7e, 0x6f, + 0xf5, 0x23, 0x02, 0xfe, 0x87, 0x55, 0x13, 0x81, 0x7b, 0x6f, 0xd0, 0xdd, 0x06, 0x3d, 0x4a, 0xd7, + 0x09, 0xc4, 0x7c, 0xad, 0xc2, 0x88, 0x28, 0xe3, 0x7c, 0x9d, 0x33, 0xf6, 0x54, 0x30, 0xb4, 0x25, + 0x08, 0x48, 0x34, 0xeb, 0x47, 0xe2, 0x58, 0x49, 0xc7, 0xe8, 0xed, 0x82, 0x54, 0x2f, 0xe7, 0x48, + 0x96, 0x0f, 0x97, 0x74, 0xda, 0xea, 0x71, 0x41, 0x49, 0x39, 0x2e, 0x60, 0xa7, 0x04, 0xd7, 0x74, + 0xf7, 0x75, 0x91, 0xaf, 0xcb, 0xb8, 0x08, 0x5d, 0x55, 0x0f, 0x05, 0xc6, 0xd3, 0x37, 0xca, 0xee, + 0x41, 0xd9, 0xd4, 0xa0, 0xe2, 0x40, 0x91, 0x9e, 0x67, 0xfe, 0xbe, 0xc9, 0xaf, 0x15, 0xc0, 0xd2, + 0xa2, 0xa3, 0xe8, 0x0c, 0x6d, 0x05, 0xfe, 0x0b, 0xb7, 0xa5, 0x1c, 0x68, 0xbd, 0x23, 0x04, 0x1b, + 0x0b, 0xae, 0xa6, 0xf7, 0x24, 0x92, 0xc1, 0xdb, 0x5c, 0xda, 0xdd, 0x83, 0xe1, 0x0d, 0xfc, 0x75, + 0x2c, 0x7e, 0x98, 0x2e, 0x4a, 0x23, 0xa6, 0x9e, 0x63, 0xf5, 0x82, 0xb0, 0x00, 0x23, 0x8a, 0xd0, + 0x8d, 0xdc, 0x3e, 0xf0, 0xfe, 0xef, 0x43, 0x29, 0x59, 0xc7, 0xe7, 0xbe, 0xa2, 0x44, 0x82, 0xa4, + 0x29, 0xec, 0xde, 0x67, 0x81, 0xeb, 0x22, 0xaa, 0xa8, 0x23, 0x29, 0xa7, 0xe8, 0x9d, 0xbd, 0xf7, + 0xe8, 0x23, 0x80, 0x6d, 0x3f, 0x72, 0xda, 0x4b, 0xd4, 0xc7, 0xd5, 0x1f, 0x07, 0x9f, 0x47, 0xa4, + 0xb4, 0x91, 0xbc, 0xc9, 0xac, 0x00, 0x5b, 0xdf, 0xa5, 0x3b, 0xd2, 0xdc, 0xe9, 0xde, 0x36, 0xc9, + 0x12, 0xdc, 0x48, 0x44, 0x23, 0xbc, 0x06, 0x91, 0x08, 0x66, 0x09, 0xfb, 0x89, 0x0a, 0xf3, 0x28, + 0xf0, 0x8f, 0x3b, 0xbf, 0x98, 0x59, 0xff, 0xf7, 0x05, 0x16, 0x42, 0xa9, 0x36, 0xcb, 0x27, 0x7a, + 0x09, 0x20, 0x2e, 0x4d, 0x84, 0xd2, 0xcb, 0x8a, 0xdd, 0xfb, 0xcc, 0x78, 0xa5, 0xe7, 0x14, 0x07, + 0x8c, 0x80, 0x82, 0xf6, 0x8b, 0x9d, 0xc9, 0x07, 0x34, 0x04, 0x41, 0xb6, 0xde, 0x1b, 0xdf, 0x3f, + 0x10, 0x3e, 0x9a, 0x33, 0xe2, 0x1d, 0xc2, 0x0c, 0xd9, 0xbb, 0xc4, 0x42, 0xf1, 0x03, 0x37, 0x12, + 0xf7, 0x18, 0xd0, 0x16, 0xbf, 0x94, 0xca, 0xb0, 0x3e, 0xfd, 0xd9, 0x49, 0xe5, 0xc3, 0xb3, 0xdc, + 0xf0, 0x13, 0x34, 0xb7, 0xe5, 0x45, 0x56, 0x6b, 0x0e, 0xfa, 0x97, 0xec, 0x75, 0x2a, 0xaa, 0xec, + 0x75, 0x29, 0xaa, 0xec, 0x75, 0xeb, 0xbf, 0x17, 0xa1, 0xc2, 0xee, 0xb1, 0xd3, 0xc8, 0x95, 0xd8, + 0x56, 0x52, 0x42, 0x61, 0x7a, 0xf5, 0x10, 0x24, 0xee, 0xa9, 0x17, 0x7b, 0xb9, 0xa7, 0xfe, 0x2b, + 0xaf, 0xef, 0x55, 0xad, 0xbd, 0x7d, 0x7a, 0x52, 0xb9, 0x11, 0x3b, 0x06, 0x58, 0xad, 0xc9, 0x43, + 0x90, 0xd1, 0x44, 0xda, 0xa5, 0x31, 0xf0, 0x1a, 0x2e, 0x8d, 0x7b, 0x30, 0x4c, 0x4d, 0x8f, 0xb5, + 0x2d, 0x1e, 0x6f, 0x49, 0x97, 0x27, 0x7d, 0x72, 0xa2, 0xe1, 0xaa, 0x6f, 0xd9, 0x08, 0x30, 0xeb, + 0xef, 0x17, 0xe1, 0x5a, 0x36, 0xcf, 0x79, 0xdf, 0x96, 0x01, 0xe2, 0x98, 0x99, 0xbc, 0x18, 0x1d, + 0xba, 0x77, 0x5e, 0xe2, 0x7d, 0x19, 0x23, 0xa7, 0xe0, 0x11, 0xad, 0x45, 0xdc, 0xfe, 0x4a, 0x9c, + 0x86, 0x69, 0x97, 0xc2, 0xf8, 0x53, 0x69, 0xbc, 0x48, 0x7b, 0x2a, 0x8d, 0x97, 0xa1, 0x7d, 0x98, + 0xdb, 0x0a, 0xdc, 0x17, 0x4e, 0x84, 0x9f, 0xe0, 0x57, 0x5b, 0x7e, 0xdb, 0x6d, 0xbe, 0x5a, 0xe1, + 0x57, 0x8a, 0xd8, 0x95, 0xbe, 0x5b, 0xa7, 0x27, 0x95, 0x6f, 0x74, 0x18, 0x08, 0xd9, 0x98, 0x8d, + 0x0e, 0x05, 0x6a, 0xa4, 0x6f, 0x19, 0x65, 0x11, 0xb2, 0xfe, 0x5d, 0x01, 0x2e, 0x53, 0x85, 0x9a, + 0x9f, 0x2c, 0x88, 0xc6, 0x5f, 0x2b, 0x54, 0x53, 0x1d, 0x20, 0x5f, 0x8b, 0x34, 0x54, 0x53, 0xbb, + 0x1d, 0x67, 0x6b, 0x60, 0x68, 0x0d, 0xc6, 0xf8, 0x6f, 0xc5, 0x7d, 0x3c, 0xab, 0x08, 0x2c, 0xba, + 0xd4, 0x99, 0xf7, 0x88, 0x2e, 0x6c, 0x4e, 0xac, 0x41, 0xef, 0x8c, 0xab, 0xb8, 0xd6, 0x4f, 0x8b, + 0xb0, 0xb0, 0x8b, 0x03, 0xf7, 0xd9, 0xab, 0x8c, 0xc1, 0x6c, 0xc2, 0x8c, 0x28, 0xa2, 0x63, 0xd6, + 0xb7, 0x18, 0x7b, 0x8c, 0x49, 0x74, 0x35, 0x24, 0x00, 0x0d, 0xb9, 0xe3, 0x8c, 0x88, 0x67, 0x08, + 0xc2, 0x7c, 0x0f, 0x46, 0x12, 0xaf, 0x49, 0xd0, 0xf9, 0x17, 0x3b, 0x34, 0x9e, 0xaa, 0xd5, 0x3e, + 0x5b, 0x42, 0xa2, 0x5f, 0xcf, 0x3e, 0xa2, 0xe4, 0x9e, 0x84, 0x6e, 0xaf, 0x04, 0xd1, 0x0d, 0x4b, + 0x36, 0xab, 0xa3, 0xd4, 0x1a, 0x36, 0xec, 0x6a, 0x9f, 0x9d, 0xd5, 0x52, 0x6d, 0x0c, 0x46, 0xab, + 0xf4, 0xd8, 0x95, 0x18, 0xee, 0xff, 0xab, 0x08, 0x57, 0xc5, 0x75, 0x9b, 0x0c, 0x36, 0x7f, 0x09, + 0x73, 0xa2, 0xa8, 0xda, 0x21, 0x0a, 0x03, 0x6e, 0xe9, 0x9c, 0x66, 0x0f, 0xa2, 0x09, 0x4e, 0x3b, + 0x1c, 0x26, 0x66, 0x76, 0x16, 0xfa, 0xf9, 0x38, 0x44, 0x3f, 0x33, 0xbd, 0xed, 0x41, 0x1d, 0x93, + 0xaa, 0xcc, 0xd4, 0x58, 0xa3, 0xc9, 0xcf, 0x56, 0xca, 0xa1, 0x3a, 0xf0, 0xa6, 0x0e, 0xd5, 0xd5, + 0xbe, 0xa4, 0x4b, 0xb5, 0x36, 0x09, 0xe3, 0x1b, 0xf8, 0x65, 0xcc, 0xf7, 0xbf, 0x55, 0x48, 0x5c, + 0x3f, 0x25, 0x1a, 0x06, 0xbb, 0x87, 0x5a, 0x88, 0x9f, 0x87, 0xa0, 0xd7, 0x4f, 0x55, 0x0d, 0x83, + 0x81, 0xae, 0xc1, 0x30, 0x0b, 0xdb, 0x6d, 0xf5, 0x60, 0x9b, 0xcb, 0x7b, 0x33, 0x4d, 0x86, 0xc2, + 0xcc, 0x74, 0x8e, 0x6f, 0x3d, 0x81, 0xeb, 0x3c, 0x6a, 0x5c, 0x9f, 0x7c, 0xda, 0xd0, 0x19, 0x3f, + 0x5f, 0x96, 0x03, 0x57, 0x1f, 0xe1, 0xa4, 0xe8, 0xd1, 0xee, 0x15, 0x7d, 0x0e, 0x53, 0x5a, 0xb9, + 0xa4, 0x48, 0xb5, 0x52, 0xb9, 0x86, 0x24, 0xe9, 0x24, 0xb4, 0x75, 0xcd, 0xd4, 0x84, 0xda, 0x59, + 0x0b, 0xd3, 0x97, 0xcd, 0x82, 0xf8, 0x14, 0x39, 0x3c, 0x83, 0xd4, 0xbb, 0xa5, 0xec, 0x6b, 0x26, + 0xf1, 0xd8, 0x1b, 0x4f, 0xe2, 0xcb, 0x2b, 0x6b, 0xad, 0x09, 0x18, 0x5b, 0xf2, 0xbd, 0x08, 0x7f, + 0x4d, 0x55, 0x1d, 0x6b, 0x12, 0xc6, 0x45, 0x55, 0x1b, 0x87, 0xa1, 0xf5, 0xfb, 0xfd, 0x60, 0x71, + 0xc6, 0x9a, 0xbc, 0xa7, 0x82, 0x1f, 0xfb, 0xa9, 0xce, 0xf2, 0x0f, 0xd5, 0x45, 0xd5, 0x47, 0x1c, + 0xd7, 0xb2, 0x95, 0x47, 0xf5, 0xbc, 0x66, 0x5c, 0xaa, 0xad, 0xbc, 0xd4, 0xe8, 0x7f, 0x90, 0x21, + 0x26, 0xd9, 0x66, 0x7b, 0xeb, 0xf4, 0xa4, 0x72, 0x3d, 0x43, 0x4c, 0x6a, 0x74, 0xcd, 0x22, 0xd3, + 0xd6, 0xd8, 0xc0, 0x55, 0x0e, 0x24, 0xaf, 0x45, 0xca, 0x1a, 0x1e, 0xc3, 0xc4, 0x0a, 0x1a, 0x64, + 0x00, 0xfa, 0x8e, 0x54, 0x40, 0xd1, 0x8e, 0xce, 0x4b, 0xbe, 0x1f, 0x45, 0xd4, 0x86, 0x5a, 0xc5, + 0xa8, 0x76, 0x94, 0x12, 0x8d, 0xaa, 0x46, 0x46, 0xf5, 0x88, 0xff, 0xb6, 0x8c, 0xdd, 0x27, 0x1f, + 0x52, 0xb7, 0x8d, 0xf9, 0x45, 0x15, 0x31, 0x2d, 0xc7, 0xe6, 0xd3, 0xef, 0x42, 0x4f, 0x32, 0x9a, + 0x3e, 0x34, 0x8b, 0x39, 0x7a, 0xd6, 0x91, 0x8b, 0x89, 0xbe, 0x75, 0x52, 0x10, 0x37, 0x16, 0x52, + 0x47, 0xc2, 0x67, 0xd5, 0x24, 0x6b, 0xda, 0x29, 0x6e, 0x31, 0xe3, 0x14, 0x57, 0x3b, 0xf3, 0x8a, + 0xba, 0x1c, 0xeb, 0xf6, 0xbf, 0xf9, 0x31, 0xd0, 0xbf, 0x1c, 0x86, 0x0b, 0x5b, 0xce, 0x81, 0xeb, + 0x11, 0xd9, 0x63, 0xe3, 0xd0, 0x3f, 0x0e, 0x9a, 0x18, 0x55, 0x61, 0x52, 0x0f, 0x1e, 0xed, 0x12, + 0x1a, 0x4b, 0xc4, 0xab, 0x5e, 0x86, 0x16, 0x61, 0x54, 0x5e, 0xea, 0xe4, 0x32, 0xd1, 0x70, 0xd9, + 0x73, 0xb5, 0xcf, 0x8e, 0xc1, 0xd0, 0x47, 0x9a, 0xd7, 0x7f, 0x4a, 0xde, 0x4f, 0xa6, 0xb0, 0x8b, + 0x2c, 0xba, 0xcf, 0xf3, 0x5b, 0xba, 0x5c, 0x67, 0x9e, 0xf3, 0x1f, 0xa5, 0x0e, 0x02, 0x06, 0xb5, + 0x1e, 0xa7, 0x1c, 0x2f, 0xf4, 0x93, 0x96, 0xf9, 0x48, 0x63, 0xfa, 0x88, 0x00, 0x7d, 0x1f, 0xc6, + 0x9e, 0x1c, 0xef, 0x63, 0x71, 0xe4, 0x31, 0xc4, 0xc5, 0x7c, 0x32, 0x24, 0x9a, 0xd7, 0xef, 0x3e, + 0x60, 0x73, 0xf0, 0xfc, 0x78, 0x1f, 0xa7, 0x5f, 0xff, 0x24, 0xfb, 0x4b, 0x21, 0x86, 0x0e, 0xa1, + 0x94, 0x8c, 0x5e, 0xa6, 0x9e, 0xe6, 0xdc, 0x98, 0x6b, 0xfa, 0x2e, 0xa4, 0xf2, 0xc6, 0x28, 0x8b, + 0xa9, 0xd4, 0x1a, 0x49, 0x51, 0x45, 0xbf, 0x0a, 0xb3, 0x46, 0xb7, 0x17, 0x7f, 0x69, 0xb4, 0x9b, + 0x47, 0x8d, 0xca, 0xa6, 0x04, 0xd7, 0xc4, 0x85, 0x28, 0xad, 0x65, 0x73, 0x2b, 0xa8, 0x05, 0x53, + 0x89, 0xa8, 0x5c, 0xfe, 0xd0, 0x71, 0x76, 0x9c, 0x2f, 0x95, 0xaf, 0xe2, 0xd1, 0x3d, 0x63, 0x5b, + 0x49, 0x92, 0x68, 0x1d, 0x46, 0xa5, 0xd5, 0x4a, 0x5f, 0x9c, 0x30, 0x5b, 0xe8, 0xf3, 0xa7, 0x27, + 0x95, 0x99, 0xd8, 0x42, 0xd7, 0x68, 0xc6, 0x04, 0xd0, 0x8f, 0xe1, 0xba, 0x5c, 0xa2, 0x9b, 0x81, + 0xd9, 0x97, 0xc1, 0xdf, 0x30, 0xbd, 0x9d, 0x5c, 0xe1, 0x59, 0xf0, 0xbb, 0xf7, 0x57, 0xfb, 0xec, + 0xee, 0x64, 0x6b, 0x00, 0x23, 0x01, 0xdf, 0x94, 0x8f, 0x07, 0x46, 0x06, 0x4a, 0x83, 0x6c, 0xdd, + 0x88, 0x68, 0xe7, 0x3f, 0x1e, 0x62, 0xd7, 0x07, 0x77, 0x3c, 0xf7, 0x99, 0x1b, 0xef, 0x5f, 0xd5, + 0x47, 0x12, 0x3f, 0x6a, 0xce, 0x35, 0x98, 0x8c, 0xe7, 0xcb, 0xa5, 0x3b, 0xa5, 0xd8, 0xd5, 0x9d, + 0xf2, 0x40, 0x39, 0x32, 0x50, 0x9e, 0x0c, 0x63, 0x5f, 0x2a, 0xdd, 0x7d, 0x11, 0x9f, 0x25, 0x7c, + 0x05, 0x43, 0xf4, 0xad, 0x24, 0x76, 0x1e, 0x33, 0xb6, 0x78, 0x87, 0x4b, 0xad, 0x9c, 0xee, 0xb3, + 0xc7, 0x95, 0xf8, 0x95, 0x60, 0xfa, 0xc2, 0x58, 0x9b, 0x16, 0xa8, 0x2f, 0x23, 0x31, 0x10, 0xb4, + 0x0d, 0xd3, 0x5b, 0x01, 0x6e, 0xf1, 0x98, 0xdb, 0x4e, 0xc0, 0x4d, 0x4c, 0x66, 0xbc, 0xd2, 0x27, + 0x4f, 0x3b, 0xa2, 0xba, 0x81, 0x65, 0xbd, 0x2a, 0xfd, 0x0d, 0xe8, 0x68, 0x05, 0x26, 0xeb, 0xd8, + 0x09, 0x9a, 0x87, 0x4f, 0xf0, 0x2b, 0xf2, 0xd1, 0xd2, 0xde, 0x09, 0x0e, 0x69, 0x0d, 0x19, 0x2f, + 0xad, 0x52, 0x0f, 0xef, 0x75, 0x24, 0xf4, 0x5d, 0x18, 0xaa, 0xfb, 0x41, 0x54, 0x7b, 0xc5, 0xf7, + 0xb4, 0xf0, 0xd8, 0xb3, 0xc2, 0xda, 0x25, 0xf1, 0x56, 0x72, 0xe8, 0x07, 0x51, 0x63, 0x5f, 0x65, + 0x1f, 0xc7, 0x43, 0xaf, 0x60, 0x46, 0xdf, 0x4f, 0x0f, 0xdd, 0x36, 0x11, 0x42, 0x23, 0x3c, 0xa6, + 0xc9, 0xb4, 0x69, 0x19, 0x48, 0xed, 0x16, 0xa7, 0x7e, 0x2d, 0xb9, 0x6b, 0x9f, 0xd1, 0x7a, 0xf5, + 0xa5, 0x75, 0x13, 0x3e, 0x7a, 0x4a, 0x9f, 0x98, 0x66, 0x23, 0xaa, 0x86, 0x2c, 0xda, 0x95, 0xbd, + 0xf1, 0x42, 0x9f, 0xcc, 0x38, 0xa6, 0x7b, 0x92, 0x72, 0xc2, 0x09, 0x93, 0x2f, 0x87, 0xdb, 0x29, + 0x54, 0xb4, 0x05, 0x17, 0x76, 0x42, 0xbc, 0x15, 0xe0, 0x17, 0x2e, 0x7e, 0x29, 0xe8, 0xb1, 0x47, + 0x61, 0xe8, 0x34, 0x11, 0x7a, 0x1d, 0x56, 0x6b, 0x22, 0x98, 0x46, 0x2e, 0x7f, 0x04, 0x63, 0xca, + 0x3a, 0x31, 0xdc, 0x0b, 0x9f, 0x51, 0xef, 0x85, 0x8f, 0xaa, 0xf7, 0xbf, 0xff, 0x61, 0x01, 0x16, + 0xcc, 0xeb, 0x8f, 0x3b, 0x2c, 0x36, 0x61, 0x54, 0x16, 0xca, 0x5b, 0x0e, 0x42, 0xe9, 0x49, 0x7c, + 0x34, 0xd9, 0x26, 0x10, 0xbb, 0x55, 0xed, 0x74, 0x4c, 0xe3, 0x35, 0x3c, 0x91, 0xff, 0x7a, 0x18, + 0x66, 0x48, 0x1f, 0x53, 0x7b, 0xfb, 0x73, 0xfa, 0xbe, 0x03, 0x2d, 0x53, 0x1c, 0x6b, 0xdc, 0xc6, + 0x66, 0xe5, 0x54, 0x81, 0xd0, 0x1e, 0x3c, 0x56, 0x10, 0xd0, 0xfb, 0xea, 0x39, 0x6e, 0x51, 0x79, + 0x08, 0x5a, 0x14, 0xaa, 0x43, 0x88, 0x0f, 0x78, 0xdf, 0xd1, 0x8e, 0x11, 0x7b, 0x16, 0x14, 0x03, + 0xbd, 0x0a, 0x8a, 0x1d, 0x29, 0x28, 0xd8, 0xbb, 0x01, 0x6f, 0x2b, 0x82, 0xe2, 0xfc, 0x25, 0xc4, + 0xd0, 0x79, 0x4b, 0x88, 0xe1, 0x37, 0x93, 0x10, 0x23, 0xaf, 0x29, 0x21, 0x1e, 0x12, 0x9b, 0x99, + 0xd8, 0xf1, 0xd2, 0x45, 0xcc, 0x36, 0x29, 0xb7, 0x8b, 0xa9, 0xf1, 0x6f, 0xf2, 0x13, 0x27, 0xb0, + 0x32, 0x25, 0x0d, 0xfc, 0xd5, 0x48, 0x9a, 0xb1, 0x73, 0x96, 0x34, 0xe3, 0x7f, 0x45, 0x92, 0xe6, + 0xcf, 0x0b, 0xec, 0x18, 0xe3, 0xff, 0x45, 0x11, 0xf3, 0x26, 0x47, 0x0b, 0xbf, 0x1e, 0x5f, 0xb9, + 0xe6, 0xd7, 0xc3, 0x03, 0xa7, 0xf9, 0x3c, 0x3e, 0xdb, 0xf9, 0x21, 0xd9, 0x1f, 0x6a, 0x05, 0x7d, + 0x9f, 0x2b, 0x56, 0xcb, 0xf5, 0xca, 0xdd, 0xfb, 0x62, 0xe3, 0xf0, 0x9b, 0xe7, 0xac, 0x58, 0xdf, + 0x38, 0x2a, 0x02, 0xbd, 0x68, 0x30, 0x65, 0xd9, 0xec, 0xc6, 0xb0, 0xb1, 0x07, 0x1f, 0xa4, 0xef, + 0xbc, 0x52, 0xbd, 0x2f, 0xbe, 0xf3, 0xaa, 0xb2, 0x31, 0xbe, 0xfd, 0xba, 0x03, 0x97, 0x6d, 0x7c, + 0xe4, 0xbf, 0xc0, 0xe7, 0x4b, 0xf6, 0x07, 0x70, 0x49, 0x27, 0xb8, 0xd3, 0x69, 0xd1, 0x17, 0x7d, + 0x58, 0x84, 0x87, 0xf1, 0x09, 0x57, 0x8e, 0xc0, 0x9e, 0x70, 0x65, 0x8f, 0xfa, 0x91, 0x3f, 0x55, + 0x79, 0x4b, 0xeb, 0x2c, 0x1f, 0x16, 0x74, 0xe2, 0xd5, 0x56, 0x8b, 0xa6, 0x93, 0x69, 0xba, 0x1d, + 0xc7, 0x8b, 0xd0, 0x26, 0x8c, 0x29, 0x3f, 0x13, 0x56, 0x99, 0x52, 0xc3, 0x66, 0xbf, 0x13, 0x17, + 0xa8, 0xd6, 0xa3, 0x02, 0x67, 0x61, 0xa8, 0x24, 0xd9, 0x43, 0x58, 0xa6, 0xb6, 0x59, 0x83, 0x09, + 0xe5, 0xa7, 0x74, 0x72, 0xd0, 0x87, 0xc7, 0x94, 0x16, 0x74, 0x86, 0xe9, 0x28, 0x56, 0x13, 0xca, + 0x26, 0xa6, 0xd1, 0x97, 0x66, 0x5e, 0xa1, 0x95, 0xf8, 0xcd, 0x9a, 0xee, 0x91, 0x35, 0x53, 0x59, + 0xef, 0xd5, 0x58, 0xbf, 0x39, 0x00, 0x97, 0xf9, 0x64, 0x9c, 0xe7, 0x8c, 0xa3, 0x1f, 0xc1, 0x98, + 0x32, 0xc7, 0x9c, 0xe9, 0xd7, 0x44, 0x30, 0x5e, 0xd6, 0x5a, 0x60, 0xd6, 0xe3, 0x31, 0x2d, 0x68, + 0x24, 0xa6, 0x9b, 0x58, 0x8f, 0xea, 0xb2, 0x69, 0xc3, 0xa4, 0x3e, 0xd1, 0xdc, 0x80, 0xbe, 0x61, + 0x6c, 0x44, 0x07, 0x15, 0xef, 0x01, 0xb6, 0x1a, 0xc6, 0xe9, 0x26, 0x76, 0x70, 0x62, 0x11, 0x7d, + 0x0d, 0x17, 0x52, 0xb3, 0xcc, 0x1d, 0x42, 0x37, 0x8d, 0x0d, 0xa6, 0xa0, 0x59, 0x76, 0x8c, 0x80, + 0x16, 0x67, 0x36, 0x9b, 0x6e, 0x04, 0xb5, 0x60, 0x5c, 0x9d, 0x78, 0x6e, 0xe1, 0x5f, 0xcf, 0x61, + 0x25, 0x03, 0x64, 0x4a, 0x11, 0xe7, 0x25, 0x9d, 0xfb, 0x57, 0xba, 0x53, 0x4a, 0x03, 0x1e, 0x81, + 0x21, 0xf6, 0x9b, 0x88, 0x80, 0xad, 0x00, 0x87, 0xd8, 0x6b, 0x62, 0x35, 0xae, 0xf2, 0x4d, 0x45, + 0xc0, 0xbf, 0x2d, 0xc0, 0xbc, 0x89, 0x6e, 0x1d, 0x7b, 0x2d, 0xb4, 0x05, 0xa5, 0x64, 0x43, 0x7c, + 0x55, 0x5b, 0xe2, 0xab, 0x90, 0xdd, 0x25, 0x62, 0xf1, 0xa7, 0xba, 0xb9, 0x01, 0x17, 0x94, 0xb2, + 0x33, 0x06, 0xb0, 0xa6, 0x51, 0x55, 0xa7, 0xdd, 0x2a, 0x8d, 0xd3, 0x5d, 0xf6, 0x8f, 0x1c, 0xd7, + 0x23, 0x0a, 0xa2, 0xf2, 0x6c, 0x0d, 0xc4, 0xa5, 0x9c, 0x37, 0xcc, 0xb1, 0x45, 0x4b, 0x45, 0x30, + 0xb7, 0x04, 0xb1, 0x3e, 0xa5, 0x12, 0x9c, 0xbb, 0x43, 0xd8, 0x35, 0x42, 0x49, 0xec, 0x1a, 0x0c, + 0x6e, 0xaf, 0xd7, 0x97, 0xaa, 0xfc, 0x52, 0x22, 0xbb, 0xca, 0xde, 0x0e, 0x1b, 0x4d, 0xc7, 0x66, + 0x15, 0xd6, 0x27, 0xf4, 0xd5, 0x56, 0xfe, 0xe6, 0xa7, 0xc4, 0x7b, 0x0b, 0x86, 0x79, 0x11, 0xc7, + 0xa4, 0x61, 0x30, 0x6d, 0x0e, 0x25, 0xea, 0xac, 0x2d, 0xa1, 0x5f, 0xb7, 0xb1, 0x13, 0x2a, 0x1f, + 0xe6, 0x0f, 0x89, 0xe9, 0xcd, 0xca, 0xf8, 0x77, 0x79, 0x52, 0x3e, 0xa9, 0x4d, 0x8b, 0x99, 0xa3, + 0x4f, 0xc0, 0xd8, 0xf2, 0x2f, 0x6b, 0x9d, 0x3e, 0x3b, 0xb1, 0xb9, 0xb6, 0xbc, 0x44, 0xb8, 0xca, + 0x99, 0x25, 0xa6, 0xe3, 0x2e, 0x8d, 0x11, 0x8d, 0xb0, 0x7a, 0x25, 0x91, 0xb2, 0x86, 0x6e, 0x72, + 0xfe, 0xd8, 0x8a, 0x02, 0x62, 0x3d, 0x90, 0x8f, 0x58, 0x18, 0xa8, 0x65, 0xbd, 0x44, 0xbd, 0x41, + 0x9f, 0xe7, 0x78, 0x44, 0x0f, 0xd8, 0xcf, 0xa3, 0x13, 0xbf, 0x57, 0x60, 0xef, 0x7d, 0xd4, 0x37, + 0x95, 0xa4, 0x1d, 0xde, 0x33, 0x5f, 0x39, 0x45, 0x50, 0x9a, 0x79, 0xe2, 0x7a, 0x2d, 0xf5, 0x14, + 0xc1, 0x39, 0x8e, 0x0e, 0xe5, 0x33, 0x87, 0xcf, 0x5d, 0xaf, 0x65, 0x27, 0xa1, 0xd1, 0x47, 0x30, + 0xa1, 0x14, 0xc9, 0xcf, 0x04, 0x7b, 0xf3, 0x54, 0x45, 0x77, 0x5b, 0xb6, 0x0e, 0x69, 0xfd, 0x76, + 0x11, 0x2e, 0xee, 0x74, 0x42, 0x1a, 0xb4, 0xbb, 0xe6, 0xbd, 0xc0, 0x5e, 0xe4, 0x07, 0xaf, 0x68, + 0xd0, 0x21, 0x7a, 0x1f, 0x06, 0x57, 0x71, 0xbb, 0xed, 0xf3, 0x2d, 0x74, 0x45, 0xb8, 0xf0, 0x93, + 0xd0, 0x14, 0x68, 0xb5, 0xcf, 0x66, 0xd0, 0xe8, 0x23, 0x18, 0x5d, 0xc5, 0x4e, 0x10, 0xed, 0x63, + 0x47, 0x7c, 0x25, 0xc5, 0x1b, 0x9c, 0x0a, 0x0a, 0x07, 0x58, 0xed, 0xb3, 0x63, 0x68, 0xb4, 0x08, + 0x03, 0x5b, 0xbe, 0x77, 0x20, 0x6f, 0xf5, 0x65, 0x34, 0x48, 0x60, 0x56, 0xfb, 0x6c, 0x0a, 0x8b, + 0x9e, 0xc2, 0x44, 0xf5, 0x00, 0x7b, 0xd1, 0x53, 0x1c, 0x39, 0x2d, 0x27, 0x72, 0xb8, 0x34, 0x7d, + 0x2b, 0x0b, 0x59, 0x03, 0x5e, 0xed, 0xb3, 0x75, 0xec, 0xda, 0x20, 0xf4, 0x3f, 0x0d, 0x0f, 0xac, + 0x93, 0x02, 0xcc, 0x2f, 0xfb, 0x2f, 0x3d, 0x23, 0x63, 0xbe, 0xad, 0x33, 0x46, 0x84, 0x96, 0x1b, + 0xe0, 0x13, 0xac, 0x79, 0x0f, 0x06, 0xb6, 0x5c, 0xef, 0x20, 0x21, 0x40, 0x0c, 0x78, 0x04, 0x8a, + 0x8e, 0xd0, 0xf5, 0x0e, 0xd0, 0xba, 0x90, 0xdc, 0xdc, 0xb2, 0xeb, 0xd7, 0x3e, 0x17, 0x06, 0x6c, + 0x15, 0x3a, 0x96, 0xd0, 0xec, 0xb7, 0x18, 0xe0, 0x3b, 0x30, 0x97, 0xd1, 0x2e, 0x9a, 0x94, 0xdb, + 0x62, 0x80, 0x6e, 0x87, 0xb7, 0x61, 0xd6, 0x38, 0x05, 0x29, 0xc0, 0xff, 0x56, 0x30, 0xac, 0x25, + 0x36, 0xf2, 0x79, 0x18, 0x16, 0x4f, 0x35, 0x33, 0x95, 0x5f, 0xfc, 0xa4, 0x21, 0xb4, 0xd4, 0x8d, + 0x17, 0xbf, 0x9d, 0x28, 0x7e, 0xa3, 0x5d, 0xe5, 0x99, 0x84, 0x7e, 0x6a, 0x1a, 0x7e, 0xfc, 0x06, + 0xf9, 0xd4, 0x24, 0x2d, 0xd2, 0xe6, 0xaa, 0x1f, 0x46, 0x9e, 0x8c, 0xf0, 0xb0, 0xe5, 0x6f, 0x74, + 0x1b, 0x4a, 0x2b, 0x5f, 0x47, 0x38, 0xf0, 0x9c, 0x36, 0x7f, 0xb4, 0x96, 0x27, 0xca, 0xb2, 0x53, + 0xe5, 0xd6, 0x9f, 0x15, 0xe9, 0x9b, 0x8d, 0x39, 0x0b, 0x8c, 0xf0, 0x68, 0xb3, 0xce, 0xc7, 0x5c, + 0xdc, 0xac, 0xa3, 0x05, 0x18, 0xdd, 0xac, 0x6b, 0xaf, 0x56, 0xdb, 0x71, 0x01, 0x69, 0x9c, 0x74, + 0xa4, 0x1a, 0x34, 0x0f, 0xdd, 0x08, 0x37, 0xa3, 0xe3, 0x80, 0x3f, 0x55, 0x61, 0xa7, 0xca, 0x91, + 0x05, 0xe3, 0x8f, 0xda, 0xee, 0x7e, 0x53, 0x10, 0x63, 0x03, 0xd1, 0xca, 0xd0, 0x4d, 0x98, 0x5c, + 0xf3, 0xc2, 0xc8, 0x69, 0xb7, 0xd9, 0xa3, 0xde, 0x3c, 0xdf, 0x9f, 0x9d, 0x28, 0x25, 0xed, 0x2e, + 0xf9, 0x5e, 0xe4, 0xb8, 0x1e, 0x0e, 0xec, 0x63, 0x2f, 0x72, 0x8f, 0x30, 0x8f, 0xe2, 0x4e, 0x95, + 0xa3, 0xf7, 0x60, 0x56, 0x96, 0x6d, 0x06, 0xcd, 0x43, 0x1c, 0x46, 0x01, 0x4d, 0x80, 0x40, 0x2f, + 0xe5, 0xdb, 0xe6, 0x4a, 0xda, 0x42, 0xdb, 0x3f, 0x6e, 0xad, 0x78, 0x2f, 0xdc, 0xc0, 0xf7, 0x68, + 0x16, 0x9f, 0x11, 0xde, 0x42, 0xa2, 0xdc, 0xda, 0x32, 0xee, 0xbd, 0x37, 0x58, 0x48, 0xd6, 0x69, + 0x01, 0x16, 0x8c, 0xdb, 0x43, 0x88, 0x60, 0x15, 0xb9, 0x90, 0x58, 0x85, 0xb7, 0x61, 0x80, 0xca, + 0x64, 0x66, 0x57, 0x88, 0x93, 0x4c, 0x8a, 0xcf, 0x48, 0x91, 0x5a, 0x9b, 0xc2, 0xa0, 0x47, 0xd2, + 0xff, 0xd2, 0x4f, 0xbf, 0x7a, 0x77, 0x93, 0x92, 0xcf, 0xd0, 0xb8, 0xea, 0x87, 0x11, 0x1e, 0x97, + 0x37, 0x31, 0x97, 0xff, 0xac, 0x00, 0x95, 0x2e, 0x52, 0x41, 0x8e, 0xa9, 0xd0, 0xc3, 0x98, 0x1e, + 0xcb, 0x31, 0xb1, 0x98, 0xe9, 0xc5, 0xde, 0x24, 0xcf, 0x79, 0x0f, 0x6b, 0x09, 0x50, 0xfa, 0xfb, + 0x81, 0xde, 0x85, 0xd1, 0x7a, 0x7d, 0x55, 0x3b, 0x67, 0x4b, 0x1e, 0x7d, 0xd9, 0x31, 0x84, 0xf5, + 0x01, 0x5c, 0x94, 0x44, 0xd8, 0xa3, 0xb1, 0xca, 0xc5, 0x0c, 0x9e, 0x5c, 0x4b, 0xde, 0x07, 0x89, + 0x0b, 0xac, 0x3f, 0x1d, 0x48, 0x21, 0xd6, 0x8f, 0x8f, 0x8e, 0x9c, 0xe0, 0x15, 0xaa, 0xea, 0x88, + 0xfd, 0x5d, 0x3f, 0x95, 0xb5, 0x81, 0x9f, 0x9c, 0x54, 0xfa, 0x14, 0xea, 0xe8, 0x1b, 0x30, 0x41, + 0x37, 0xa4, 0xd7, 0xc4, 0xcc, 0x8d, 0x50, 0x64, 0xb7, 0xb4, 0xb5, 0x42, 0xb4, 0x0b, 0x13, 0x7c, + 0xad, 0xd3, 0xdf, 0x62, 0x89, 0xdd, 0x4b, 0x2e, 0x31, 0xad, 0x7b, 0x77, 0x34, 0x14, 0x36, 0x19, + 0x3a, 0x19, 0xf4, 0x3d, 0x98, 0x14, 0x12, 0x8d, 0x13, 0x66, 0x87, 0x0c, 0xf7, 0xf3, 0x09, 0xeb, + 0x38, 0x8c, 0x72, 0x82, 0x10, 0xe9, 0x32, 0x17, 0xba, 0x9c, 0xf2, 0x60, 0x2f, 0x5d, 0xd6, 0x50, + 0x78, 0x97, 0xb5, 0xb2, 0xf2, 0x77, 0x01, 0xa5, 0xc7, 0xd5, 0x6d, 0x35, 0x4d, 0x28, 0xab, 0xa9, + 0x5c, 0x85, 0x69, 0xc3, 0x00, 0xce, 0x44, 0xe2, 0xbb, 0x80, 0xd2, 0x3d, 0x3d, 0x0b, 0x05, 0xeb, + 0x16, 0xdc, 0x94, 0x2c, 0x90, 0xab, 0x41, 0xa3, 0x29, 0x8c, 0x85, 0x5f, 0x2b, 0x42, 0xa5, 0x0b, + 0x28, 0xfa, 0xfd, 0x42, 0x92, 0xdb, 0x6c, 0x35, 0x7e, 0x94, 0xe4, 0xb6, 0x19, 0xdf, 0xc0, 0xf6, + 0xda, 0xc7, 0x7f, 0xe3, 0x2f, 0x5e, 0xfb, 0x73, 0x9b, 0x9e, 0xb2, 0xb3, 0x73, 0x6b, 0x40, 0xe5, + 0x96, 0x0d, 0x33, 0x9a, 0xa2, 0xd2, 0x8b, 0xec, 0xbe, 0x0a, 0xc0, 0x5f, 0xf7, 0x5f, 0xf7, 0x0f, + 0xf8, 0xb5, 0x16, 0xa5, 0xc4, 0x7a, 0x08, 0xb3, 0x09, 0x9a, 0xdc, 0x80, 0x79, 0x17, 0x64, 0x00, + 0x3e, 0x25, 0xda, 0x5f, 0xbb, 0xf0, 0xb3, 0x93, 0xca, 0x04, 0xf9, 0x02, 0xde, 0x89, 0xdf, 0x66, + 0x14, 0x7f, 0x59, 0x4f, 0x55, 0x13, 0xac, 0xda, 0xd6, 0x2e, 0x24, 0xde, 0x87, 0x21, 0x56, 0x92, + 0x78, 0x01, 0x4d, 0x85, 0xe6, 0x32, 0x81, 0x03, 0x5a, 0xb3, 0x34, 0xe8, 0x98, 0xfe, 0xa8, 0xc6, + 0xd7, 0x5b, 0xac, 0x1d, 0xf6, 0x6a, 0x6e, 0x5c, 0x2c, 0x5f, 0x59, 0x1b, 0xa8, 0xc6, 0xd7, 0x70, + 0x84, 0x9f, 0x59, 0xc0, 0x79, 0xfe, 0xcb, 0x36, 0x6e, 0x1d, 0xd0, 0x74, 0x77, 0xb5, 0x71, 0xee, + 0x67, 0x1e, 0x70, 0x08, 0x01, 0x8a, 0x66, 0x7d, 0x0e, 0xb3, 0x4b, 0x6d, 0xec, 0x04, 0xc9, 0xf6, + 0xd0, 0x4d, 0x18, 0xa6, 0x65, 0x7a, 0x74, 0x86, 0x43, 0x8a, 0x68, 0x74, 0x06, 0xaf, 0x24, 0x36, + 0x1b, 0x7b, 0x98, 0x4a, 0x1d, 0x52, 0x6c, 0x2e, 0x0d, 0xd2, 0xdf, 0x89, 0x90, 0x55, 0xc3, 0xe8, + 0x19, 0x9c, 0xf5, 0x19, 0x8d, 0x89, 0x32, 0x65, 0x3a, 0xec, 0x2d, 0x88, 0xfa, 0xaf, 0xc1, 0x42, + 0xb5, 0xd3, 0xc1, 0x5e, 0x2b, 0x46, 0xdc, 0x0e, 0x9c, 0x1e, 0x2f, 0xa7, 0xa0, 0x2a, 0x0c, 0x52, + 0x68, 0xe9, 0x6b, 0xe2, 0xdd, 0x35, 0x74, 0x87, 0xc2, 0xf1, 0x27, 0x71, 0x68, 0x03, 0x0c, 0xd3, + 0x6a, 0xc1, 0x5c, 0xfd, 0x78, 0xff, 0xc8, 0x65, 0x49, 0x05, 0xe9, 0x05, 0x2f, 0xd1, 0xf6, 0x9a, + 0x78, 0xe8, 0x9c, 0x31, 0xe3, 0x56, 0x9c, 0xc1, 0x50, 0x4d, 0xaf, 0xfd, 0xe2, 0xfe, 0x9d, 0x18, + 0x95, 0xda, 0x1c, 0xac, 0x15, 0x5a, 0xcd, 0x1f, 0x43, 0xb7, 0xa6, 0xe1, 0x82, 0x6a, 0xb7, 0xb3, + 0x15, 0x32, 0x0b, 0xd3, 0xba, 0x3d, 0xce, 0x8a, 0xbf, 0x82, 0x19, 0xe6, 0x68, 0x66, 0x4f, 0xda, + 0x2d, 0xc6, 0xaf, 0xb7, 0x15, 0x77, 0x17, 0x13, 0xe1, 0x29, 0xf4, 0xf8, 0x5c, 0x3e, 0x56, 0xba, + 0xbb, 0xc8, 0xe2, 0x5a, 0x5f, 0x2c, 0x6a, 0x5e, 0x9f, 0xe2, 0xee, 0x62, 0x6d, 0x98, 0x3f, 0x0d, + 0x44, 0xa8, 0xb3, 0xe9, 0xff, 0xb9, 0x50, 0x5f, 0xa4, 0x57, 0x29, 0x56, 0xb1, 0x43, 0xc3, 0x9e, + 0xcc, 0x01, 0xe9, 0x93, 0x50, 0x74, 0x5b, 0x42, 0xcb, 0x76, 0x5b, 0xd6, 0x1f, 0x15, 0xe0, 0x16, + 0xd3, 0x45, 0xcc, 0x78, 0xd4, 0x38, 0xcf, 0x40, 0x46, 0x1f, 0x02, 0xcb, 0xf2, 0xc5, 0x15, 0x3e, + 0x8b, 0xf7, 0x3c, 0x8f, 0x12, 0x43, 0x40, 0x55, 0x18, 0x57, 0xe3, 0xa3, 0x12, 0x0f, 0x5e, 0x64, + 0x38, 0x8a, 0xec, 0xb1, 0xa3, 0x67, 0x8e, 0x8c, 0x99, 0x7a, 0x0e, 0x97, 0x57, 0xbe, 0x26, 0x0b, + 0x82, 0x7f, 0x9d, 0xf8, 0x61, 0x4f, 0x1c, 0xf0, 0x3c, 0xb5, 0xcd, 0x57, 0x8c, 0xae, 0x06, 0x27, + 0x8b, 0x89, 0x79, 0x20, 0x3e, 0x70, 0x52, 0x7b, 0x1d, 0xb5, 0xb5, 0x32, 0xeb, 0x4f, 0x0b, 0xb0, + 0x60, 0x6e, 0x8d, 0x0b, 0x96, 0x35, 0xb8, 0xb0, 0xe4, 0x78, 0xbe, 0xe7, 0x36, 0x9d, 0x76, 0xbd, + 0x79, 0x88, 0x5b, 0xc7, 0x6d, 0x11, 0x36, 0x26, 0xa5, 0x0c, 0x31, 0x77, 0x38, 0xba, 0x00, 0xb1, + 0xd3, 0x58, 0xe8, 0x03, 0xb8, 0x48, 0x83, 0x76, 0x98, 0xec, 0x6d, 0xe3, 0x40, 0xd2, 0x63, 0x3d, + 0xcb, 0xa8, 0x45, 0xf7, 0x60, 0x9a, 0x7d, 0x54, 0x5a, 0x3b, 0x9e, 0x1b, 0x49, 0x24, 0x66, 0x15, + 0x99, 0xaa, 0x6e, 0x37, 0xd4, 0x58, 0x31, 0x74, 0x19, 0xe6, 0x96, 0x57, 0x76, 0xd7, 0x96, 0x56, + 0x1a, 0xdb, 0xdf, 0xdb, 0x5a, 0x69, 0xe8, 0x8f, 0x80, 0xcd, 0x40, 0x49, 0xad, 0xdc, 0xde, 0xdc, + 0xde, 0x62, 0xb9, 0x37, 0xd5, 0xd2, 0xbd, 0x95, 0x5a, 0x75, 0x67, 0x7b, 0x75, 0xa3, 0xd4, 0x6f, + 0x0d, 0x8c, 0x14, 0x4b, 0xc5, 0xdb, 0x3f, 0xd2, 0x02, 0xc9, 0xd0, 0x02, 0xcc, 0x73, 0xf0, 0x9d, + 0x7a, 0xf5, 0x51, 0x76, 0x13, 0xac, 0xf6, 0xe9, 0xc3, 0x6a, 0xa9, 0x80, 0xae, 0xc0, 0x25, 0xad, + 0x74, 0xab, 0x5a, 0xaf, 0xef, 0x6d, 0xda, 0xcb, 0xeb, 0x2b, 0xf5, 0x7a, 0xa9, 0x78, 0x7b, 0x57, + 0x7b, 0x38, 0x8a, 0xb4, 0xf0, 0xf4, 0x61, 0xb5, 0x61, 0xaf, 0x7c, 0xb1, 0xb3, 0x66, 0xaf, 0x2c, + 0xa7, 0x5b, 0xd0, 0x6a, 0xbf, 0xb7, 0x52, 0x2f, 0x15, 0xd0, 0x34, 0x4c, 0x69, 0xa5, 0x1b, 0x9b, + 0xa5, 0xe2, 0xed, 0x9b, 0xfc, 0x4e, 0x2a, 0x9a, 0x04, 0x58, 0x5e, 0xa9, 0x2f, 0xad, 0x6c, 0x2c, + 0xaf, 0x6d, 0x3c, 0x2a, 0xf5, 0xa1, 0x09, 0x18, 0xad, 0xca, 0x9f, 0x85, 0xdb, 0x1f, 0xc3, 0x54, + 0xc2, 0x16, 0x20, 0x10, 0x52, 0x8d, 0x2e, 0xf5, 0x11, 0x1e, 0xc9, 0x9f, 0xd4, 0x80, 0x63, 0x6a, + 0x7d, 0xa9, 0xb0, 0xf8, 0x3f, 0x7e, 0xb3, 0x00, 0x63, 0x64, 0xa1, 0x8b, 0x80, 0xa2, 0xaf, 0x14, + 0xd5, 0x99, 0x4f, 0x30, 0xcf, 0xaa, 0x90, 0xa9, 0x27, 0x53, 0x99, 0x57, 0xce, 0x71, 0xac, 0x50, + 0x80, 0x5b, 0x85, 0x7b, 0x05, 0x64, 0x53, 0xf7, 0x65, 0x42, 0x93, 0x94, 0x94, 0xcd, 0xca, 0x7e, + 0xf9, 0x4a, 0xae, 0x02, 0x8a, 0x7e, 0x05, 0x2c, 0x95, 0x66, 0x86, 0xbe, 0xf5, 0x6e, 0x6f, 0x7a, + 0x95, 0x68, 0xf3, 0x66, 0x6f, 0xe0, 0xe8, 0x31, 0x4c, 0x10, 0x4d, 0x44, 0x82, 0xa1, 0xcb, 0x49, + 0x44, 0x45, 0xf9, 0x29, 0x2f, 0x98, 0x2b, 0xe5, 0xa3, 0xae, 0xe3, 0x74, 0x20, 0xcc, 0x8c, 0x08, + 0x91, 0xb8, 0xb9, 0x20, 0x4a, 0xd8, 0xe1, 0x71, 0xf9, 0x42, 0xa2, 0x78, 0xf7, 0xfe, 0xbd, 0x02, + 0xaa, 0xd3, 0x0b, 0xbf, 0x9a, 0x4a, 0x83, 0x44, 0x84, 0x5b, 0x5a, 0xd7, 0x61, 0xbd, 0xa9, 0xc8, + 0x34, 0x05, 0x19, 0xba, 0xd0, 0x06, 0xa0, 0xb4, 0xa6, 0x80, 0xae, 0xc5, 0xeb, 0xc0, 0xac, 0x44, + 0x94, 0x2f, 0xa6, 0x4e, 0xa5, 0x56, 0xc8, 0xb7, 0x02, 0xad, 0xc0, 0x24, 0x0f, 0x4b, 0xe6, 0xba, + 0x0b, 0xca, 0xd3, 0x7e, 0x32, 0xc9, 0x3c, 0xa2, 0x7c, 0x92, 0xfa, 0x0f, 0x2a, 0xc7, 0xe3, 0x48, + 0x2a, 0x45, 0xe5, 0xcb, 0xc6, 0x3a, 0x3e, 0xbe, 0x87, 0x30, 0xa9, 0xab, 0x52, 0x48, 0x4c, 0x90, + 0x51, 0xc3, 0xca, 0xec, 0x50, 0x03, 0xe6, 0x9e, 0x3a, 0x2e, 0x75, 0xa4, 0xf0, 0xb3, 0x0f, 0x71, + 0x72, 0x81, 0x2a, 0x39, 0x47, 0x19, 0x75, 0xec, 0xb5, 0xca, 0xdd, 0x9e, 0xba, 0xa0, 0xdb, 0xa6, + 0x2e, 0x34, 0x02, 0xfd, 0xe4, 0x07, 0x59, 0x7a, 0xea, 0x19, 0xd3, 0x61, 0x5e, 0x39, 0xeb, 0xfc, + 0x19, 0x3d, 0xa5, 0x2a, 0x49, 0x82, 0xa2, 0xb2, 0x26, 0xce, 0x4c, 0x6e, 0x9e, 0x06, 0xc7, 0x47, + 0x6e, 0xf2, 0x20, 0x39, 0x44, 0x19, 0x8c, 0xcb, 0x24, 0x76, 0xaf, 0x80, 0xbe, 0xa2, 0xbb, 0xda, + 0x48, 0x6e, 0xcf, 0x8d, 0x0e, 0x79, 0x20, 0xc5, 0x65, 0x23, 0x01, 0xbe, 0x51, 0x72, 0xa8, 0xdb, + 0x30, 0x63, 0x3a, 0xf2, 0x96, 0x0c, 0xcd, 0x39, 0x0f, 0xcf, 0x5c, 0x05, 0x36, 0x51, 0xac, 0x5a, + 0xd9, 0x93, 0x94, 0x73, 0xe2, 0x9a, 0x49, 0xf3, 0x53, 0x98, 0x24, 0xab, 0xe4, 0x09, 0xc6, 0x9d, + 0x6a, 0xdb, 0x7d, 0x81, 0x43, 0x24, 0x9e, 0x81, 0x91, 0x45, 0x59, 0xb8, 0xb7, 0x0a, 0xe8, 0x9b, + 0x30, 0xb6, 0xe7, 0x44, 0xcd, 0x43, 0xfe, 0x6a, 0x81, 0x78, 0xd4, 0x80, 0x96, 0x95, 0xc5, 0x2f, + 0x5a, 0x79, 0xaf, 0x80, 0xbe, 0x03, 0xc3, 0x8f, 0x70, 0x44, 0x23, 0x8c, 0xaf, 0xcb, 0xd3, 0x1f, + 0x16, 0x69, 0xb1, 0xe6, 0xc9, 0x98, 0x28, 0xd1, 0xe1, 0xa4, 0xdb, 0x06, 0xdd, 0x05, 0x60, 0x02, + 0x81, 0x52, 0x48, 0x56, 0x97, 0x53, 0xdd, 0x46, 0x8f, 0xc8, 0x87, 0xbf, 0x8d, 0x23, 0xdc, 0x6b, + 0x93, 0x59, 0x3c, 0x5a, 0x87, 0x49, 0xf9, 0x0e, 0xee, 0x06, 0xbd, 0xa2, 0x62, 0x25, 0x88, 0x85, + 0x67, 0xa0, 0xf6, 0x31, 0xd9, 0x15, 0x2c, 0x51, 0x8a, 0x7c, 0x22, 0x07, 0x65, 0x3d, 0x9a, 0x23, + 0x99, 0xc8, 0xc0, 0x14, 0xdc, 0x55, 0x3f, 0x8c, 0x74, 0x5c, 0x59, 0x62, 0xc6, 0xc5, 0x50, 0x56, + 0xdb, 0xd5, 0x9f, 0xcb, 0x89, 0x65, 0x6e, 0xd6, 0x2b, 0x3f, 0xe5, 0xeb, 0x39, 0x10, 0x4c, 0xdc, + 0x51, 0x49, 0xb2, 0x4c, 0x6c, 0x55, 0xd6, 0xcc, 0x66, 0x07, 0x7b, 0xf5, 0xfa, 0x2a, 0x7d, 0x2d, + 0x45, 0x9c, 0xf9, 0x28, 0x65, 0x82, 0x30, 0x4a, 0x57, 0x91, 0xaf, 0x9e, 0xf6, 0x4c, 0x4b, 0xfc, + 0xd5, 0x33, 0xbc, 0xa3, 0x13, 0x7f, 0xf5, 0x8c, 0x2f, 0xbb, 0x3c, 0x61, 0xd6, 0xb3, 0x96, 0x5b, + 0x6c, 0x77, 0x11, 0x89, 0x70, 0x73, 0xad, 0x82, 0x6f, 0xec, 0x8b, 0xa6, 0xba, 0xdd, 0x07, 0xf7, + 0x0a, 0x68, 0x05, 0xa6, 0xe5, 0x8d, 0xa2, 0xb8, 0x0a, 0x65, 0x20, 0xe4, 0x7c, 0x61, 0x66, 0x0d, + 0x64, 0x76, 0x17, 0x73, 0x08, 0x19, 0xcb, 0xd1, 0xe7, 0x30, 0xcd, 0xd7, 0xa6, 0xd6, 0x9f, 0x92, + 0x14, 0x33, 0xfc, 0x64, 0x2f, 0xb3, 0x27, 0x8f, 0x61, 0xb6, 0x9e, 0xe0, 0x0e, 0x8b, 0x84, 0xb8, + 0xa4, 0x93, 0x50, 0xd2, 0x26, 0x67, 0xd2, 0x7a, 0x02, 0x88, 0x59, 0xba, 0x82, 0xdc, 0x0b, 0x17, + 0xbf, 0x44, 0x57, 0x12, 0x5d, 0x27, 0x85, 0x14, 0x8c, 0xca, 0xa9, 0xcc, 0x91, 0x6d, 0xb3, 0x6c, + 0x3e, 0x2c, 0x25, 0xa3, 0xd3, 0x71, 0xf6, 0xdd, 0xb6, 0x1b, 0xb9, 0x98, 0x2c, 0x55, 0x15, 0x41, + 0xad, 0x12, 0xeb, 0xe1, 0x52, 0x26, 0x04, 0xfa, 0x0c, 0x26, 0x1e, 0xe1, 0x28, 0xce, 0x0c, 0x8d, + 0xe6, 0x52, 0xb9, 0xa4, 0xf9, 0x1a, 0x10, 0x17, 0x61, 0xf5, 0x74, 0xd4, 0x6b, 0x50, 0x62, 0x62, + 0x56, 0x21, 0x71, 0x25, 0x45, 0x82, 0x83, 0x38, 0x81, 0x73, 0x14, 0x66, 0x72, 0xeb, 0x2e, 0x3b, + 0xfe, 0x43, 0x62, 0xfd, 0xab, 0x7a, 0xdc, 0xb4, 0x56, 0x26, 0x1f, 0x2e, 0x9b, 0x35, 0xa6, 0x44, + 0x46, 0x37, 0xe2, 0x6f, 0x6a, 0x66, 0x9e, 0xe3, 0x32, 0x4a, 0x5e, 0x53, 0xdd, 0x7d, 0x80, 0x64, + 0x56, 0x15, 0x03, 0xd1, 0x9b, 0xda, 0xa7, 0xff, 0x6c, 0x74, 0x3f, 0x83, 0x51, 0x99, 0x5b, 0x57, + 0xca, 0xa7, 0x64, 0x66, 0xe2, 0xf2, 0x7c, 0xba, 0x82, 0x8f, 0xf4, 0x53, 0x96, 0x49, 0x5b, 0xc7, + 0x4f, 0xa6, 0x9f, 0xcd, 0x64, 0xec, 0x47, 0x30, 0xa6, 0x24, 0x9e, 0x95, 0x0b, 0x39, 0x9d, 0x8c, + 0xb6, 0x3c, 0xa1, 0xf4, 0x7d, 0x77, 0xf1, 0x5e, 0x01, 0xdd, 0xa5, 0xdf, 0x28, 0x7a, 0x4f, 0x6b, + 0x36, 0x46, 0x53, 0x32, 0x05, 0x26, 0x50, 0xd0, 0xb7, 0xe9, 0x73, 0x36, 0x4b, 0xc7, 0x41, 0x40, + 0xec, 0x5e, 0x82, 0x97, 0xa5, 0x8a, 0x24, 0x10, 0x3f, 0xa3, 0x52, 0x49, 0x41, 0x64, 0x91, 0x96, + 0xdd, 0xb0, 0xd9, 0x73, 0xc8, 0xf7, 0x0a, 0xe8, 0x01, 0x8c, 0x88, 0x3c, 0xf5, 0xe8, 0xa2, 0xde, + 0xd5, 0xec, 0xe1, 0x3d, 0x00, 0x60, 0xcc, 0xa6, 0x3d, 0xd5, 0xab, 0x33, 0xd9, 0xf9, 0x80, 0x7c, + 0x78, 0x5b, 0x67, 0x44, 0xfa, 0x4c, 0x7c, 0x7c, 0x29, 0xd2, 0xbc, 0x36, 0x85, 0x2a, 0x3b, 0xb3, + 0xf0, 0x89, 0xe6, 0xac, 0xa5, 0xcf, 0x8f, 0x35, 0x67, 0x53, 0x56, 0xfd, 0x4c, 0x3a, 0x6b, 0x50, + 0xaa, 0x36, 0xe9, 0x07, 0x41, 0x66, 0x5f, 0x94, 0x66, 0x4b, 0xb2, 0x42, 0xd0, 0x9a, 0x4d, 0x26, + 0x73, 0x5c, 0xc7, 0x0e, 0x7d, 0xe1, 0x67, 0x4e, 0x2a, 0x17, 0x89, 0x2a, 0x33, 0x46, 0x8e, 0x99, + 0x32, 0xb3, 0x44, 0x0c, 0xab, 0xf6, 0x9b, 0x91, 0xf9, 0x98, 0xca, 0x32, 0x25, 0x33, 0xe5, 0xc5, + 0x24, 0xbe, 0x34, 0xe8, 0x44, 0x58, 0x97, 0x04, 0xad, 0xc2, 0x14, 0x7f, 0x4f, 0x44, 0xb2, 0x25, + 0x0b, 0x3b, 0xab, 0xf9, 0x6f, 0xc3, 0xe4, 0x0a, 0x91, 0xf5, 0xc7, 0x2d, 0x97, 0xbd, 0x6a, 0x86, + 0xf4, 0x67, 0xaa, 0x32, 0x11, 0x57, 0x45, 0xe6, 0x6d, 0x25, 0x65, 0xa3, 0xdc, 0xa5, 0xe9, 0xac, + 0x98, 0xe5, 0x19, 0x41, 0x56, 0xcd, 0xee, 0xc8, 0xad, 0xfd, 0xb9, 0x8c, 0x24, 0x89, 0xe8, 0x2d, + 0xcd, 0x88, 0xcc, 0xca, 0x74, 0x68, 0x50, 0x1b, 0xbf, 0x54, 0xf2, 0xd1, 0x64, 0xd0, 0xcc, 0xcf, + 0x9e, 0x98, 0x39, 0x6e, 0xf9, 0x0e, 0x91, 0x31, 0xcb, 0x21, 0x7a, 0x47, 0xa7, 0x9e, 0x93, 0x09, + 0x31, 0xb3, 0x05, 0x6a, 0xa4, 0xeb, 0x49, 0xf8, 0xd0, 0xd5, 0xfc, 0x5c, 0x81, 0x8a, 0x91, 0x9e, + 0x91, 0xbd, 0xef, 0x31, 0x5d, 0x66, 0x71, 0xd2, 0x1a, 0xa4, 0x9a, 0xbc, 0xc9, 0x9c, 0x3d, 0x52, + 0x17, 0x33, 0x67, 0xe2, 0xdb, 0x82, 0xa9, 0x44, 0x8e, 0x3b, 0xe9, 0x9b, 0x31, 0x67, 0xd9, 0x2b, + 0x5f, 0xcd, 0xaa, 0xe6, 0x14, 0xeb, 0x22, 0xe5, 0xbd, 0xd2, 0xc1, 0xab, 0xda, 0x87, 0x25, 0xdd, + 0xc7, 0x4a, 0x66, 0xbd, 0x1c, 0x72, 0x29, 0x99, 0x93, 0x48, 0x12, 0xcd, 0x48, 0x56, 0x94, 0x23, + 0xc9, 0x66, 0xd4, 0x19, 0x95, 0xe3, 0xce, 0x92, 0xf4, 0x59, 0x74, 0xb6, 0x61, 0xd6, 0x98, 0x42, + 0x48, 0x7e, 0xfd, 0xf3, 0x12, 0x0c, 0x65, 0x52, 0xc5, 0x70, 0xd1, 0x9c, 0x45, 0x0c, 0x7d, 0x43, + 0x37, 0xfd, 0xcd, 0x39, 0x95, 0xca, 0x6f, 0x75, 0x81, 0xe2, 0x0c, 0xfd, 0x8a, 0x7e, 0xed, 0x52, + 0x6d, 0x5c, 0x57, 0x9c, 0x01, 0x19, 0x0d, 0x58, 0x79, 0x20, 0x72, 0x0d, 0xcc, 0x98, 0xb2, 0x18, + 0x66, 0xb2, 0xf8, 0x46, 0x36, 0xcd, 0x78, 0x61, 0xed, 0x8a, 0x47, 0x7b, 0x32, 0x39, 0x93, 0x9b, + 0x6d, 0x2a, 0xc7, 0x9a, 0x2c, 0xcb, 0xf5, 0xd0, 0x7b, 0x97, 0xb3, 0x3d, 0x43, 0x33, 0xa6, 0x1c, + 0x67, 0x49, 0xc7, 0x8d, 0x29, 0x85, 0x95, 0x64, 0x43, 0x6e, 0x92, 0xb4, 0x5d, 0xe6, 0xc4, 0xd1, + 0xa9, 0xab, 0x4e, 0x1c, 0x23, 0xe9, 0x6b, 0xd9, 0x00, 0xf1, 0x8a, 0x30, 0x24, 0x6b, 0x94, 0x2b, + 0x22, 0x3b, 0x6d, 0xa4, 0x5c, 0x11, 0x79, 0xb9, 0x1e, 0x6d, 0xb1, 0xe9, 0x32, 0xd8, 0x92, 0x93, + 0xd9, 0x2b, 0xc7, 0x52, 0x9a, 0x8f, 0x27, 0x2e, 0xd1, 0xed, 0xb3, 0x4e, 0xdb, 0x57, 0x70, 0x29, + 0x33, 0x8b, 0x17, 0x7a, 0x3b, 0xb5, 0xa1, 0x33, 0x38, 0x91, 0xdd, 0xd3, 0x09, 0x2d, 0x01, 0x97, + 0xf4, 0x62, 0x25, 0x72, 0x7d, 0xa5, 0x24, 0xb6, 0x21, 0x11, 0xd8, 0x23, 0xaa, 0xe0, 0x2a, 0xc9, + 0xbc, 0x32, 0xc7, 0x7a, 0xc5, 0x44, 0x27, 0x4c, 0xcb, 0x54, 0xa5, 0x5f, 0x42, 0x13, 0x4b, 0x56, + 0x9c, 0x45, 0xa6, 0xf6, 0xd2, 0xb5, 0x2c, 0x3a, 0xcb, 0xd4, 0x52, 0x10, 0xb9, 0xbd, 0xd0, 0x25, + 0x8d, 0x4d, 0xda, 0x57, 0xb2, 0xac, 0x0d, 0x4e, 0xff, 0x40, 0x2e, 0x51, 0x77, 0xb1, 0xcc, 0x25, + 0x96, 0xd9, 0x8b, 0xcb, 0x69, 0x1a, 0x9a, 0xab, 0x58, 0x72, 0x81, 0xf5, 0x66, 0x21, 0xc9, 0x1c, + 0xad, 0x43, 0xd9, 0x43, 0x42, 0x2a, 0x6b, 0xba, 0x74, 0x29, 0x5b, 0x43, 0x9d, 0x66, 0x3a, 0x3f, + 0x7b, 0x55, 0x53, 0xdc, 0xad, 0xbf, 0x28, 0xfd, 0x5e, 0x4a, 0x69, 0x8e, 0x9b, 0x63, 0x8b, 0x46, + 0x80, 0x1a, 0xd2, 0xa2, 0x49, 0x19, 0x9a, 0x9b, 0x35, 0xcd, 0xa0, 0x9d, 0x49, 0xa9, 0x9c, 0x49, + 0x31, 0x37, 0x4f, 0x5a, 0x66, 0x4f, 0x7f, 0xa8, 0x48, 0xe5, 0x54, 0xf2, 0x33, 0x74, 0x2b, 0xa9, + 0x9a, 0x65, 0xe5, 0x47, 0xcb, 0x91, 0xfa, 0x33, 0xa6, 0xbc, 0x69, 0x8a, 0xef, 0x36, 0x33, 0xa9, + 0x9a, 0x81, 0x0b, 0x52, 0xbc, 0x65, 0x50, 0xcb, 0xc9, 0xa2, 0x96, 0xd9, 0xc3, 0xef, 0x2b, 0xe2, + 0x2d, 0x91, 0xed, 0x4c, 0xfa, 0x02, 0xba, 0xa4, 0x43, 0xcb, 0xa4, 0xbd, 0x41, 0x63, 0x86, 0xd3, + 0xa9, 0xca, 0xa4, 0xee, 0x92, 0x97, 0xc8, 0xcc, 0xe8, 0xda, 0x9d, 0x4d, 0x0f, 0x91, 0xd0, 0xbb, + 0x98, 0x70, 0xcc, 0x76, 0xeb, 0x98, 0x94, 0xc3, 0x86, 0x14, 0x67, 0x09, 0x39, 0x9c, 0x9d, 0x04, + 0x2d, 0xc7, 0xd0, 0x99, 0xaa, 0xbb, 0x07, 0x9e, 0x92, 0xa1, 0x4c, 0x9a, 0x39, 0xe9, 0xa4, 0x69, + 0x52, 0xc4, 0x98, 0x12, 0x9a, 0x6d, 0x12, 0x0d, 0x87, 0xe9, 0xe7, 0x6a, 0xae, 0x29, 0x54, 0xce, + 0x4e, 0xb1, 0x25, 0xc5, 0x8d, 0x31, 0x39, 0x95, 0x42, 0x50, 0x4d, 0xf4, 0x24, 0x09, 0x1a, 0x72, + 0x4e, 0x49, 0x82, 0xc6, 0xcc, 0x50, 0xcc, 0x73, 0x62, 0xfb, 0x6d, 0xac, 0x7a, 0x4e, 0x94, 0x34, + 0x4d, 0x09, 0x17, 0x06, 0xfa, 0x84, 0x3a, 0x30, 0xf2, 0xbd, 0x1e, 0x73, 0x3a, 0xa5, 0x58, 0x5a, + 0x3e, 0x10, 0x87, 0x01, 0xb4, 0x41, 0x9d, 0x72, 0x77, 0x9f, 0x04, 0x45, 0xd2, 0x7d, 0x12, 0x6a, + 0x47, 0xb3, 0xdd, 0x9b, 0xe3, 0xea, 0x33, 0xff, 0x92, 0x57, 0x86, 0x5c, 0x24, 0x92, 0x57, 0xa6, + 0x0c, 0x1f, 0xd4, 0x74, 0xdd, 0x16, 0x06, 0x78, 0x4c, 0xef, 0x4a, 0x6e, 0x8a, 0x8e, 0xf2, 0xd5, + 0xfc, 0xbc, 0x16, 0xfc, 0x1c, 0xaf, 0x94, 0xcc, 0x44, 0x80, 0x4c, 0x19, 0x56, 0x94, 0x04, 0x0f, + 0xd2, 0x1a, 0xca, 0x4c, 0x61, 0xb0, 0x25, 0x7c, 0xcc, 0x3a, 0xdd, 0x8c, 0x3c, 0x1b, 0x2a, 0xe9, + 0x7c, 0x05, 0x25, 0x4e, 0x4a, 0xa0, 0x9a, 0x94, 0xa9, 0xa4, 0x07, 0xaa, 0x82, 0x62, 0xc8, 0x63, + 0xe0, 0x8a, 0x5b, 0xb3, 0xe6, 0x5c, 0x5f, 0xef, 0xe8, 0xb6, 0x5e, 0xce, 0x73, 0x55, 0x5d, 0x4f, + 0x4a, 0xd1, 0x2f, 0x89, 0x3c, 0xdf, 0xe9, 0x9c, 0x36, 0x6f, 0x25, 0xbc, 0xa5, 0xe6, 0x07, 0x8e, + 0xca, 0x79, 0x29, 0x73, 0xd0, 0x53, 0x7a, 0xc4, 0xbe, 0xb9, 0xb6, 0xbc, 0xc4, 0x63, 0x01, 0xfc, + 0x20, 0x75, 0x6c, 0xb5, 0xe7, 0x46, 0x87, 0x2c, 0xc9, 0x93, 0x22, 0x7d, 0x18, 0x88, 0x86, 0xb8, + 0xfb, 0x00, 0xd5, 0xa9, 0xe6, 0xae, 0x95, 0x1a, 0x4e, 0xae, 0x0c, 0x04, 0xcb, 0x66, 0x82, 0x34, + 0x55, 0x25, 0x55, 0x0c, 0xc8, 0xc6, 0xd3, 0xbb, 0x99, 0xd1, 0x87, 0x3c, 0xfd, 0x82, 0x2d, 0x1b, + 0x33, 0x99, 0x5e, 0xc5, 0xb7, 0x3c, 0x46, 0x49, 0x5c, 0x10, 0xd3, 0xfa, 0xa3, 0x94, 0x97, 0x33, + 0xca, 0xd1, 0x06, 0x0d, 0x1b, 0x49, 0x96, 0x2a, 0x56, 0x8c, 0xf9, 0x06, 0x5a, 0x26, 0x3d, 0x36, + 0x95, 0x44, 0x6d, 0x7f, 0xad, 0xa9, 0xd4, 0x10, 0x77, 0x17, 0xf9, 0x54, 0x6a, 0xa5, 0x67, 0x9b, + 0xca, 0x04, 0x41, 0x7d, 0x2a, 0xf5, 0x6e, 0x66, 0xf4, 0xa1, 0xfb, 0x54, 0x9a, 0xc9, 0x9c, 0x79, + 0x2a, 0x13, 0xb7, 0xf3, 0xb4, 0xfe, 0x98, 0xa6, 0x32, 0x09, 0xcf, 0xa6, 0x32, 0x59, 0x9a, 0x30, + 0x48, 0x73, 0xa6, 0x32, 0x89, 0xf9, 0x05, 0xa5, 0xc7, 0xae, 0xff, 0x9d, 0x69, 0x32, 0xc5, 0x33, + 0x4c, 0x09, 0xd4, 0xdd, 0x07, 0x68, 0x8f, 0x7a, 0x43, 0x12, 0xe5, 0xbd, 0x4d, 0xe8, 0x42, 0x16, + 0x51, 0x3a, 0xa5, 0x6b, 0x42, 0xcf, 0x4a, 0x76, 0x37, 0xb3, 0x2f, 0x79, 0xf3, 0xc1, 0xa6, 0x35, + 0x49, 0xea, 0xac, 0x13, 0xfb, 0x54, 0x08, 0xcd, 0xd4, 0x0d, 0xca, 0x44, 0xaf, 0xd4, 0xc9, 0xcd, + 0xac, 0x41, 0xdb, 0xd4, 0xd7, 0x93, 0x2e, 0x57, 0xfc, 0x44, 0x59, 0x57, 0x35, 0xbb, 0x52, 0x4d, + 0x5d, 0xc9, 0x54, 0xa9, 0x66, 0xdd, 0xd7, 0x94, 0x54, 0xd3, 0xd8, 0x9f, 0x53, 0xdb, 0x99, 0x47, + 0x9f, 0x7b, 0xcf, 0xfc, 0x6c, 0x45, 0x67, 0x5a, 0x0b, 0x67, 0x20, 0xb0, 0x34, 0x8a, 0xe4, 0x53, + 0xee, 0xe1, 0x17, 0x85, 0x99, 0xcc, 0x37, 0xe1, 0xa3, 0xcf, 0xa1, 0xc4, 0x37, 0x78, 0x4c, 0xc0, + 0x04, 0x98, 0x39, 0x75, 0x35, 0x61, 0xb2, 0xf7, 0xd0, 0x83, 0x5e, 0x4c, 0xf5, 0x5e, 0x38, 0x91, + 0x6d, 0xd7, 0x12, 0x11, 0xb8, 0x1d, 0x10, 0x93, 0xb3, 0x95, 0xb6, 0x47, 0xf5, 0xce, 0x88, 0x43, + 0x5d, 0x1d, 0x7c, 0x77, 0x11, 0xad, 0xd1, 0xcd, 0xac, 0x17, 0xe7, 0x19, 0xec, 0x66, 0x32, 0x74, + 0xaf, 0xad, 0xca, 0x30, 0x67, 0xbd, 0x4f, 0x59, 0x6d, 0x67, 0x77, 0x4a, 0xb2, 0xa8, 0xc7, 0xd1, + 0x65, 0xb1, 0x88, 0x69, 0xd4, 0xcc, 0x79, 0xd0, 0x8d, 0x33, 0xc9, 0xc0, 0x6b, 0xf4, 0x5d, 0x18, + 0x15, 0xc8, 0xdd, 0x19, 0x92, 0xc4, 0xa6, 0x0c, 0x59, 0x86, 0x09, 0x2d, 0xaa, 0x5c, 0x2a, 0x75, + 0xa6, 0x58, 0xf3, 0x9c, 0x79, 0x9e, 0xd0, 0xa2, 0xc7, 0x25, 0x15, 0x53, 0x4c, 0x79, 0x26, 0x95, + 0xef, 0xc0, 0x18, 0x67, 0x69, 0x2e, 0x37, 0xb2, 0xad, 0xf5, 0x59, 0x25, 0x66, 0xf1, 0xb8, 0xe5, + 0x46, 0x4b, 0xbe, 0xf7, 0xcc, 0x3d, 0xe8, 0xca, 0x98, 0x34, 0xca, 0xee, 0x22, 0xda, 0xa5, 0x09, + 0x2e, 0x44, 0xda, 0x11, 0x1c, 0xbd, 0xf4, 0x83, 0xe7, 0xae, 0x77, 0xd0, 0x85, 0xe4, 0x35, 0x9d, + 0x64, 0x12, 0x8f, 0xd1, 0xad, 0x67, 0xd3, 0xed, 0x8a, 0x9f, 0x63, 0xad, 0x2f, 0xd0, 0xe3, 0xfe, + 0xb3, 0xf6, 0x38, 0xfb, 0xe4, 0xe2, 0x52, 0x1c, 0xed, 0x67, 0xe3, 0xa6, 0x1f, 0xb4, 0xba, 0x13, + 0xab, 0xe8, 0xb1, 0x75, 0x09, 0xb4, 0xdd, 0x45, 0x42, 0xb5, 0x9e, 0x49, 0xb5, 0x1b, 0x76, 0xce, + 0xd7, 0xea, 0x32, 0x1d, 0xfb, 0x19, 0x7b, 0x9b, 0x2f, 0xb5, 0xc8, 0x97, 0x66, 0x2b, 0xc0, 0xcf, + 0x70, 0x40, 0x43, 0x36, 0xbb, 0x05, 0x2b, 0xea, 0xe0, 0xbb, 0x8b, 0x84, 0x4a, 0x3d, 0x45, 0x25, + 0x0b, 0x3a, 0x4f, 0x51, 0xa3, 0x43, 0xeb, 0xb1, 0x37, 0x59, 0x64, 0x3e, 0xa4, 0x3e, 0xd3, 0x9d, + 0xb5, 0x2e, 0x1c, 0x11, 0x41, 0xc4, 0x02, 0x70, 0xf7, 0x3e, 0xc1, 0xac, 0x2b, 0x98, 0x69, 0x88, + 0xcc, 0x36, 0xbf, 0x2b, 0x9c, 0xa3, 0x5d, 0x9b, 0xcd, 0x0e, 0x62, 0x18, 0x95, 0xc9, 0xb7, 0x90, + 0xe2, 0x56, 0xd0, 0x52, 0x4b, 0x95, 0x27, 0xd4, 0x90, 0xc5, 0x10, 0x55, 0x99, 0x16, 0xaf, 0x26, + 0xa1, 0x52, 0x8e, 0x53, 0x8d, 0xd9, 0xa9, 0x92, 0x24, 0x98, 0x5b, 0x64, 0xdd, 0x6f, 0x3e, 0x57, + 0xdd, 0x22, 0x4a, 0x56, 0xa3, 0xb2, 0x9e, 0x73, 0x88, 0x0b, 0x71, 0x9a, 0x78, 0x48, 0x8d, 0xeb, + 0x50, 0xf3, 0x1a, 0xa9, 0x6e, 0x11, 0x3d, 0x03, 0x93, 0x74, 0x8b, 0xd0, 0x06, 0x75, 0xca, 0xdd, + 0xdd, 0x22, 0x14, 0x49, 0x77, 0x8b, 0xa8, 0x1d, 0xcd, 0x16, 0x17, 0x28, 0x9d, 0x82, 0x49, 0x2a, + 0xdc, 0x99, 0xd9, 0x99, 0x72, 0x42, 0x36, 0xa6, 0x0d, 0x59, 0xe3, 0xa4, 0xbb, 0x21, 0x3b, 0xa3, + 0x5c, 0x59, 0x8f, 0x3f, 0xb8, 0x57, 0x40, 0x1b, 0x70, 0xf1, 0x11, 0x8e, 0xb8, 0x00, 0xb3, 0x71, + 0x18, 0x05, 0x2e, 0xbd, 0xb4, 0x95, 0xfd, 0x85, 0x13, 0xfa, 0xb5, 0x01, 0x67, 0xf7, 0x3d, 0x42, + 0xaf, 0x6e, 0xa6, 0x97, 0x8b, 0x97, 0xe3, 0x51, 0xe2, 0xee, 0xc7, 0xb3, 0x74, 0x31, 0x7b, 0x89, + 0x0f, 0xb3, 0x43, 0xf7, 0x6c, 0xd4, 0x52, 0xfc, 0xa6, 0x2a, 0xb7, 0x18, 0xee, 0xc0, 0x10, 0x43, + 0xca, 0xfc, 0x46, 0x8e, 0xab, 0x38, 0xe8, 0xbe, 0x88, 0xec, 0x22, 0x28, 0x5a, 0x55, 0x66, 0xbf, + 0xee, 0xc3, 0x28, 0x3b, 0x4b, 0xe8, 0x1d, 0xe5, 0x13, 0x11, 0xff, 0x95, 0xd7, 0xb1, 0x2c, 0xe4, + 0xcf, 0x61, 0x42, 0x3d, 0x70, 0x3f, 0x3b, 0x23, 0xbf, 0x43, 0xcf, 0x73, 0x84, 0xdb, 0x34, 0x1b, + 0x7f, 0x36, 0xf1, 0xce, 0x2e, 0x67, 0x29, 0x13, 0x90, 0x32, 0xfd, 0x62, 0x56, 0xf7, 0x2f, 0xa4, + 0xb0, 0xd1, 0x27, 0xe2, 0xfa, 0x82, 0x44, 0x4e, 0x03, 0xe5, 0xf0, 0x6c, 0x92, 0xb1, 0xf9, 0x75, + 0x90, 0xa5, 0x80, 0xed, 0xda, 0xed, 0x5e, 0xce, 0x9d, 0xba, 0xb3, 0x2e, 0x8b, 0xca, 0x26, 0x55, + 0xbc, 0x52, 0x2f, 0x40, 0x67, 0x13, 0xba, 0x9a, 0xfd, 0x68, 0x34, 0x9d, 0x8c, 0xc7, 0xd4, 0xb0, + 0x4b, 0xa7, 0xd2, 0xcc, 0x1a, 0x5e, 0xce, 0x23, 0xd4, 0xb1, 0x25, 0x9b, 0x26, 0x97, 0x83, 0x96, + 0x67, 0x18, 0xf3, 0x0b, 0x55, 0xe7, 0x42, 0x6e, 0x4d, 0xc4, 0x2d, 0xf5, 0x3e, 0xd8, 0x1c, 0x25, + 0xc8, 0x70, 0xd2, 0xd5, 0x75, 0x2e, 0xb2, 0xc8, 0xfd, 0x12, 0xd5, 0xff, 0xcc, 0xf9, 0xf3, 0x32, + 0x89, 0xdd, 0x52, 0x0e, 0x4b, 0xf3, 0x33, 0xef, 0x3d, 0xa7, 0xf7, 0x42, 0xcc, 0x6f, 0x64, 0xdf, + 0xec, 0x42, 0x45, 0x70, 0xe2, 0xed, 0xae, 0x70, 0xf2, 0xdc, 0xe4, 0x32, 0xfb, 0xc2, 0x9a, 0xdb, + 0xeb, 0xf2, 0xe6, 0xb7, 0xe1, 0x28, 0x2b, 0x23, 0x39, 0x9d, 0x20, 0xa8, 0x07, 0x85, 0xe5, 0x8e, + 0x21, 0x8b, 0xfd, 0x5f, 0x40, 0x25, 0x3e, 0x11, 0x3e, 0xdb, 0x24, 0x64, 0x6b, 0xf4, 0x28, 0x9d, + 0xb2, 0x0f, 0xe5, 0xbd, 0x68, 0x5a, 0xbe, 0x9e, 0xc5, 0xe1, 0x50, 0x09, 0x35, 0xe0, 0xb1, 0x2c, + 0x89, 0xd7, 0xe2, 0xb3, 0xde, 0x9d, 0xcf, 0xf1, 0x5d, 0xf1, 0x8b, 0x32, 0xe7, 0x42, 0x28, 0x3d, + 0xdb, 0x67, 0x27, 0x24, 0x0f, 0x6c, 0x13, 0x84, 0xac, 0x9c, 0xe9, 0x3d, 0x4b, 0x3c, 0x4a, 0x72, + 0x2a, 0xce, 0x3a, 0xa1, 0x4e, 0x7c, 0x39, 0x24, 0x9d, 0x57, 0x50, 0xea, 0x72, 0x99, 0x39, 0x0e, + 0xe5, 0xec, 0xe6, 0x24, 0x25, 0x5c, 0x22, 0xdb, 0x94, 0x35, 0xa1, 0x25, 0x35, 0x5b, 0xb2, 0xd7, + 0x63, 0x4f, 0x81, 0x21, 0xdb, 0x59, 0x19, 0x44, 0xa5, 0xbd, 0x8e, 0xea, 0x50, 0x66, 0x4b, 0xc4, + 0x74, 0x01, 0x5f, 0x06, 0xe2, 0x9b, 0x2a, 0x73, 0xac, 0x8b, 0x3a, 0x94, 0xd9, 0x72, 0x39, 0x4f, + 0xa2, 0x0d, 0x9a, 0xc0, 0xd6, 0x48, 0xf1, 0x2d, 0xe5, 0x5a, 0x64, 0xf6, 0xb3, 0x06, 0xe5, 0xfc, + 0x86, 0xd1, 0x0f, 0x60, 0xd6, 0xf8, 0xae, 0x81, 0x3c, 0x53, 0xcf, 0x7b, 0xf5, 0xa0, 0x1b, 0xf1, + 0xe7, 0x30, 0x9f, 0x95, 0x81, 0x2c, 0xbe, 0x18, 0x90, 0x9f, 0x16, 0x4e, 0xca, 0xd4, 0xae, 0xa9, + 0xcc, 0x36, 0x60, 0xc6, 0x94, 0xd5, 0x4b, 0x6e, 0x8e, 0x9c, 0x94, 0x5f, 0xc6, 0xdb, 0x07, 0x5b, + 0x30, 0x6b, 0xcc, 0xac, 0x25, 0x39, 0x93, 0x97, 0x77, 0xcb, 0x48, 0xf1, 0x4b, 0x98, 0xcb, 0x48, + 0x23, 0x15, 0x1f, 0xfc, 0xe5, 0xa6, 0x99, 0xca, 0x09, 0x40, 0x28, 0x67, 0x67, 0x28, 0x92, 0x71, + 0x27, 0x5d, 0x93, 0x18, 0x95, 0x8d, 0x69, 0xdb, 0xd0, 0x36, 0x5d, 0x84, 0xa6, 0x94, 0x45, 0xea, + 0x22, 0xcc, 0x49, 0x69, 0x94, 0x71, 0x6b, 0x64, 0x2e, 0x23, 0x4b, 0x51, 0x0e, 0xd5, 0x1e, 0x7a, + 0xbb, 0x21, 0xe4, 0xbf, 0x9e, 0xb6, 0x26, 0x11, 0xcb, 0x68, 0xcc, 0x69, 0x63, 0xec, 0xa7, 0x72, + 0xdd, 0xb9, 0xdd, 0xce, 0x51, 0x83, 0x90, 0x7a, 0xdf, 0x99, 0x40, 0x52, 0xdf, 0xf9, 0x84, 0x8a, + 0x9b, 0x27, 0x51, 0x53, 0xc8, 0x54, 0xf1, 0xfc, 0x18, 0xc6, 0xeb, 0x6a, 0xe3, 0x86, 0x46, 0x32, + 0x17, 0x85, 0x0c, 0xce, 0xef, 0xde, 0xf7, 0xae, 0xa7, 0x72, 0xd5, 0x76, 0xbb, 0xa7, 0x51, 0x64, + 0x1e, 0xd4, 0x6b, 0x4f, 0x6d, 0x4b, 0x49, 0x6d, 0x7a, 0x41, 0x5e, 0x1e, 0xd4, 0x9b, 0x5f, 0xe7, + 0x6e, 0xb0, 0xc7, 0x41, 0x93, 0x09, 0x02, 0x90, 0xd5, 0x3d, 0x7b, 0x85, 0x0c, 0x55, 0xcd, 0xcd, + 0x30, 0xb0, 0x42, 0xe7, 0x2c, 0x7e, 0x09, 0x35, 0xc7, 0xc8, 0x97, 0xab, 0xd4, 0xf0, 0xe0, 0xea, + 0x13, 0xf5, 0xa6, 0x3b, 0x7b, 0x3f, 0x35, 0xc7, 0x4b, 0x99, 0xbc, 0xe1, 0x9e, 0x78, 0x70, 0xf5, + 0x31, 0x94, 0x92, 0x8f, 0xbf, 0x48, 0x17, 0x52, 0xc6, 0xab, 0x30, 0x39, 0xcb, 0x02, 0xe2, 0x27, + 0x5e, 0xa4, 0xa3, 0x26, 0xf5, 0xea, 0x4b, 0xf9, 0x92, 0xa1, 0x46, 0xaa, 0x58, 0xe3, 0xea, 0x83, + 0x30, 0x32, 0x84, 0xc5, 0xf0, 0x4a, 0x4c, 0xf9, 0xb2, 0xb1, 0x8e, 0x13, 0x8a, 0x58, 0xb2, 0x94, + 0x8c, 0x4c, 0xbe, 0x52, 0x6d, 0xed, 0x9e, 0x71, 0xb8, 0x7c, 0xbb, 0x17, 0x50, 0xde, 0x2a, 0x96, + 0xef, 0xb7, 0xa6, 0xa1, 0xd0, 0xdb, 0x86, 0x98, 0x63, 0x53, 0x92, 0xdc, 0x72, 0xb7, 0x24, 0xc2, + 0x68, 0x0f, 0x16, 0x12, 0x31, 0xd1, 0x7a, 0x4b, 0xdd, 0x08, 0x64, 0xce, 0xe0, 0x1e, 0x2c, 0xf0, + 0x4b, 0xda, 0xe7, 0x4c, 0x78, 0x1f, 0x16, 0xf2, 0xd2, 0x03, 0xa3, 0xdb, 0xe6, 0xb8, 0x67, 0x23, + 0x7b, 0xb2, 0x75, 0xd8, 0x6b, 0xe9, 0xf8, 0xe7, 0xc4, 0xbc, 0x9f, 0x55, 0xbe, 0x3c, 0x85, 0x49, + 0x3d, 0x35, 0x30, 0x52, 0x65, 0x48, 0x2a, 0x51, 0x71, 0xf9, 0x4a, 0x46, 0x2d, 0x5f, 0x1f, 0x9f, + 0x51, 0x89, 0x1f, 0xa7, 0x1b, 0x2a, 0xeb, 0x17, 0xe3, 0xd4, 0xd4, 0xbb, 0x65, 0x43, 0x16, 0x23, + 0xf4, 0x1d, 0x98, 0x8a, 0xef, 0xc7, 0x31, 0x12, 0x06, 0xb0, 0x1c, 0xc7, 0xd1, 0x54, 0x7c, 0x53, + 0xee, 0xec, 0xe8, 0xab, 0x42, 0xec, 0xc7, 0xe8, 0x57, 0x52, 0xa1, 0xe0, 0xda, 0x18, 0x7a, 0x91, + 0xfe, 0x0a, 0x6f, 0xcf, 0x3a, 0x3b, 0x4d, 0xba, 0xdd, 0xcc, 0x2f, 0x1d, 0xa9, 0xdb, 0x2d, 0xf7, + 0x35, 0x26, 0xa9, 0x6a, 0x66, 0xd0, 0x79, 0x0a, 0x37, 0xe8, 0x7b, 0x01, 0x5b, 0xd8, 0x6b, 0xb9, + 0xde, 0x81, 0x19, 0x2a, 0xbb, 0xef, 0xc9, 0x57, 0x06, 0xda, 0x70, 0xbd, 0xeb, 0x53, 0x4f, 0xe8, + 0xae, 0xf6, 0x62, 0x42, 0xf7, 0x47, 0xa1, 0xf2, 0xae, 0x5f, 0x98, 0x5e, 0x4c, 0x92, 0xdf, 0xb4, + 0x9c, 0xc7, 0x9b, 0xe4, 0x37, 0x2d, 0xf7, 0xc9, 0xa5, 0x2f, 0xe9, 0x5b, 0xd1, 0xfc, 0xdb, 0x42, + 0xdf, 0x00, 0xc1, 0x1e, 0x7b, 0x03, 0x32, 0xf7, 0x18, 0xe4, 0xba, 0x7e, 0xf8, 0x97, 0x42, 0xa4, + 0xf6, 0xc3, 0x55, 0x6e, 0xf5, 0x64, 0x11, 0xef, 0x4e, 0x24, 0x8b, 0x2f, 0xb5, 0xe5, 0x9f, 0xfc, + 0xe5, 0xd5, 0xc2, 0x4f, 0x7e, 0x7a, 0xb5, 0xf0, 0x1f, 0x7e, 0x7a, 0xb5, 0xf0, 0x9f, 0x7f, 0x7a, + 0xb5, 0xf0, 0xfd, 0xc5, 0xde, 0xde, 0x0d, 0x6c, 0xb6, 0x5d, 0xec, 0x45, 0x77, 0x19, 0xb9, 0x21, + 0xfa, 0xdf, 0x83, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x11, 0x98, 0xda, 0xb4, 0x3b, 0xca, 0x00, 0x00, } @@ -26019,6 +26086,20 @@ func (m *Features) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.AccessRequests != nil { + { + size, err := m.AccessRequests.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintAuthservice(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } if m.FeatureHiding { i-- if m.FeatureHiding { @@ -26246,6 +26327,38 @@ func (m *DeviceTrustFeature) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *AccessRequestsFeature) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AccessRequestsFeature) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AccessRequestsFeature) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.MonthlyRequestLimit != 0 { + i = encodeVarintAuthservice(dAtA, i, uint64(m.MonthlyRequestLimit)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *DeleteUserRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -26796,12 +26909,12 @@ func (m *GenerateAppTokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) dAtA[i] = 0x2a } } - n21, err21 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err21 != nil { - return 0, err21 + n22, err22 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err22 != nil { + return 0, err22 } - i -= n21 - i = encodeVarintAuthservice(dAtA, i, uint64(n21)) + i -= n22 + i = encodeVarintAuthservice(dAtA, i, uint64(n22)) i-- dAtA[i] = 0x22 if len(m.URI) > 0 { @@ -30329,21 +30442,21 @@ func (m *GetEventsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x22 } } - n63, err63 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.EndDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.EndDate):]) - if err63 != nil { - return 0, err63 - } - i -= n63 - i = encodeVarintAuthservice(dAtA, i, uint64(n63)) - i-- - dAtA[i] = 0x1a - n64, err64 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.StartDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.StartDate):]) + n64, err64 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.EndDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.EndDate):]) if err64 != nil { return 0, err64 } i -= n64 i = encodeVarintAuthservice(dAtA, i, uint64(n64)) i-- + dAtA[i] = 0x1a + n65, err65 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.StartDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.StartDate):]) + if err65 != nil { + return 0, err65 + } + i -= n65 + i = encodeVarintAuthservice(dAtA, i, uint64(n65)) + i-- dAtA[i] = 0x12 if len(m.Namespace) > 0 { i -= len(m.Namespace) @@ -30396,21 +30509,21 @@ func (m *GetSessionEventsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x18 } - n65, err65 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.EndDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.EndDate):]) - if err65 != nil { - return 0, err65 - } - i -= n65 - i = encodeVarintAuthservice(dAtA, i, uint64(n65)) - i-- - dAtA[i] = 0x12 - n66, err66 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.StartDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.StartDate):]) + n66, err66 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.EndDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.EndDate):]) if err66 != nil { return 0, err66 } i -= n66 i = encodeVarintAuthservice(dAtA, i, uint64(n66)) i-- + dAtA[i] = 0x12 + n67, err67 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.StartDate, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.StartDate):]) + if err67 != nil { + return 0, err67 + } + i -= n67 + i = encodeVarintAuthservice(dAtA, i, uint64(n67)) + i-- dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -31741,12 +31854,12 @@ func (m *RecoveryCodes) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n73, err73 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err73 != nil { - return 0, err73 + n74, err74 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err74 != nil { + return 0, err74 } - i -= n73 - i = encodeVarintAuthservice(dAtA, i, uint64(n73)) + i -= n74 + i = encodeVarintAuthservice(dAtA, i, uint64(n74)) i-- dAtA[i] = 0x12 if len(m.Codes) > 0 { @@ -32992,12 +33105,12 @@ func (m *SessionTrackerUpdateExpiry) MarshalToSizedBuffer(dAtA []byte) (int, err copy(dAtA[i:], m.XXX_unrecognized) } if m.Expires != nil { - n94, err94 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err94 != nil { - return 0, err94 + n95, err95 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err95 != nil { + return 0, err95 } - i -= n94 - i = encodeVarintAuthservice(dAtA, i, uint64(n94)) + i -= n95 + i = encodeVarintAuthservice(dAtA, i, uint64(n95)) i-- dAtA[i] = 0xa } @@ -35786,6 +35899,10 @@ func (m *Features) Size() (n int) { if m.FeatureHiding { n += 3 } + if m.AccessRequests != nil { + l = m.AccessRequests.Size() + n += 2 + l + sovAuthservice(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -35810,6 +35927,21 @@ func (m *DeviceTrustFeature) Size() (n int) { return n } +func (m *AccessRequestsFeature) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MonthlyRequestLimit != 0 { + n += 1 + sovAuthservice(uint64(m.MonthlyRequestLimit)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *DeleteUserRequest) Size() (n int) { if m == nil { return 0 @@ -44386,6 +44518,42 @@ func (m *Features) Unmarshal(dAtA []byte) error { } } m.FeatureHiding = bool(v != 0) + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccessRequests", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAuthservice + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAuthservice + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AccessRequests == nil { + m.AccessRequests = &AccessRequestsFeature{} + } + if err := m.AccessRequests.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAuthservice(dAtA[iNdEx:]) @@ -44498,6 +44666,76 @@ func (m *DeviceTrustFeature) Unmarshal(dAtA []byte) error { } return nil } +func (m *AccessRequestsFeature) 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 ErrIntOverflowAuthservice + } + 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: AccessRequestsFeature: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AccessRequestsFeature: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MonthlyRequestLimit", wireType) + } + m.MonthlyRequestLimit = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MonthlyRequestLimit |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipAuthservice(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthAuthservice + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *DeleteUserRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service.pb.go b/api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service.pb.go new file mode 100644 index 00000000000..592ab837461 --- /dev/null +++ b/api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service.pb.go @@ -0,0 +1,312 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: teleport/resourceusage/v1/resourceusage_service.proto + +package resourceusagev1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// GetUsageRequest is the request for GetUsage +type GetUsageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetUsageRequest) Reset() { + *x = GetUsageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsageRequest) ProtoMessage() {} + +func (x *GetUsageRequest) ProtoReflect() protoreflect.Message { + mi := &file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsageRequest.ProtoReflect.Descriptor instead. +func (*GetUsageRequest) Descriptor() ([]byte, []int) { + return file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescGZIP(), []int{0} +} + +// GetUsageResponse is the response for GetUsage +type GetUsageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccessRequests *AccessRequestsUsage `protobuf:"bytes,1,opt,name=access_requests,json=accessRequests,proto3" json:"access_requests,omitempty"` +} + +func (x *GetUsageResponse) Reset() { + *x = GetUsageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsageResponse) ProtoMessage() {} + +func (x *GetUsageResponse) ProtoReflect() protoreflect.Message { + mi := &file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsageResponse.ProtoReflect.Descriptor instead. +func (*GetUsageResponse) Descriptor() ([]byte, []int) { + return file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescGZIP(), []int{1} +} + +func (x *GetUsageResponse) GetAccessRequests() *AccessRequestsUsage { + if x != nil { + return x.AccessRequests + } + return nil +} + +// AccessRequestsUsage defines the usage limits for access requests. +// Currently this is limited on the basis of access requests used per calendar month. +type AccessRequestsUsage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // MonthlyLimit is the amount of requests that are allowed per month + MonthlyLimit int32 `protobuf:"varint,1,opt,name=monthly_limit,json=monthlyLimit,proto3" json:"monthly_limit,omitempty"` + // MonthlyUsed is the amount of requests that have been used this month + MonthlyUsed int32 `protobuf:"varint,2,opt,name=monthly_used,json=monthlyUsed,proto3" json:"monthly_used,omitempty"` +} + +func (x *AccessRequestsUsage) Reset() { + *x = AccessRequestsUsage{} + if protoimpl.UnsafeEnabled { + mi := &file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccessRequestsUsage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccessRequestsUsage) ProtoMessage() {} + +func (x *AccessRequestsUsage) ProtoReflect() protoreflect.Message { + mi := &file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccessRequestsUsage.ProtoReflect.Descriptor instead. +func (*AccessRequestsUsage) Descriptor() ([]byte, []int) { + return file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescGZIP(), []int{2} +} + +func (x *AccessRequestsUsage) GetMonthlyLimit() int32 { + if x != nil { + return x.MonthlyLimit + } + return 0 +} + +func (x *AccessRequestsUsage) GetMonthlyUsed() int32 { + if x != nil { + return x.MonthlyUsed + } + return 0 +} + +var File_teleport_resourceusage_v1_resourceusage_service_proto protoreflect.FileDescriptor + +var file_teleport_resourceusage_v1_resourceusage_service_proto_rawDesc = []byte{ + 0x0a, 0x35, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x22, 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x22, 0x5d, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x6c, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73, 0x65, + 0x64, 0x32, 0x7b, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x63, 0x0a, 0x08, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x5e, + 0x5a, 0x5c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, + 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x76, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescOnce sync.Once + file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescData = file_teleport_resourceusage_v1_resourceusage_service_proto_rawDesc +) + +func file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescGZIP() []byte { + file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescOnce.Do(func() { + file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescData) + }) + return file_teleport_resourceusage_v1_resourceusage_service_proto_rawDescData +} + +var file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_teleport_resourceusage_v1_resourceusage_service_proto_goTypes = []interface{}{ + (*GetUsageRequest)(nil), // 0: teleport.resourceusage.v1.GetUsageRequest + (*GetUsageResponse)(nil), // 1: teleport.resourceusage.v1.GetUsageResponse + (*AccessRequestsUsage)(nil), // 2: teleport.resourceusage.v1.AccessRequestsUsage +} +var file_teleport_resourceusage_v1_resourceusage_service_proto_depIdxs = []int32{ + 2, // 0: teleport.resourceusage.v1.GetUsageResponse.access_requests:type_name -> teleport.resourceusage.v1.AccessRequestsUsage + 0, // 1: teleport.resourceusage.v1.ResourceUsageService.GetUsage:input_type -> teleport.resourceusage.v1.GetUsageRequest + 1, // 2: teleport.resourceusage.v1.ResourceUsageService.GetUsage:output_type -> teleport.resourceusage.v1.GetUsageResponse + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_teleport_resourceusage_v1_resourceusage_service_proto_init() } +func file_teleport_resourceusage_v1_resourceusage_service_proto_init() { + if File_teleport_resourceusage_v1_resourceusage_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccessRequestsUsage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_teleport_resourceusage_v1_resourceusage_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_teleport_resourceusage_v1_resourceusage_service_proto_goTypes, + DependencyIndexes: file_teleport_resourceusage_v1_resourceusage_service_proto_depIdxs, + MessageInfos: file_teleport_resourceusage_v1_resourceusage_service_proto_msgTypes, + }.Build() + File_teleport_resourceusage_v1_resourceusage_service_proto = out.File + file_teleport_resourceusage_v1_resourceusage_service_proto_rawDesc = nil + file_teleport_resourceusage_v1_resourceusage_service_proto_goTypes = nil + file_teleport_resourceusage_v1_resourceusage_service_proto_depIdxs = nil +} diff --git a/api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service_grpc.pb.go b/api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service_grpc.pb.go new file mode 100644 index 00000000000..1a299005137 --- /dev/null +++ b/api/gen/proto/go/teleport/resourceusage/v1/resourceusage_service_grpc.pb.go @@ -0,0 +1,125 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: teleport/resourceusage/v1/resourceusage_service.proto + +package resourceusagev1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + ResourceUsageService_GetUsage_FullMethodName = "/teleport.resourceusage.v1.ResourceUsageService/GetUsage" +) + +// ResourceUsageServiceClient is the client API for ResourceUsageService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ResourceUsageServiceClient interface { + // GetUsage returns usage information for all limited resources + GetUsage(ctx context.Context, in *GetUsageRequest, opts ...grpc.CallOption) (*GetUsageResponse, error) +} + +type resourceUsageServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewResourceUsageServiceClient(cc grpc.ClientConnInterface) ResourceUsageServiceClient { + return &resourceUsageServiceClient{cc} +} + +func (c *resourceUsageServiceClient) GetUsage(ctx context.Context, in *GetUsageRequest, opts ...grpc.CallOption) (*GetUsageResponse, error) { + out := new(GetUsageResponse) + err := c.cc.Invoke(ctx, ResourceUsageService_GetUsage_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ResourceUsageServiceServer is the server API for ResourceUsageService service. +// All implementations must embed UnimplementedResourceUsageServiceServer +// for forward compatibility +type ResourceUsageServiceServer interface { + // GetUsage returns usage information for all limited resources + GetUsage(context.Context, *GetUsageRequest) (*GetUsageResponse, error) + mustEmbedUnimplementedResourceUsageServiceServer() +} + +// UnimplementedResourceUsageServiceServer must be embedded to have forward compatible implementations. +type UnimplementedResourceUsageServiceServer struct { +} + +func (UnimplementedResourceUsageServiceServer) GetUsage(context.Context, *GetUsageRequest) (*GetUsageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsage not implemented") +} +func (UnimplementedResourceUsageServiceServer) mustEmbedUnimplementedResourceUsageServiceServer() {} + +// UnsafeResourceUsageServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ResourceUsageServiceServer will +// result in compilation errors. +type UnsafeResourceUsageServiceServer interface { + mustEmbedUnimplementedResourceUsageServiceServer() +} + +func RegisterResourceUsageServiceServer(s grpc.ServiceRegistrar, srv ResourceUsageServiceServer) { + s.RegisterService(&ResourceUsageService_ServiceDesc, srv) +} + +func _ResourceUsageService_GetUsage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ResourceUsageServiceServer).GetUsage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ResourceUsageService_GetUsage_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ResourceUsageServiceServer).GetUsage(ctx, req.(*GetUsageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ResourceUsageService_ServiceDesc is the grpc.ServiceDesc for ResourceUsageService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ResourceUsageService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "teleport.resourceusage.v1.ResourceUsageService", + HandlerType: (*ResourceUsageServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetUsage", + Handler: _ResourceUsageService_GetUsage_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "teleport/resourceusage/v1/resourceusage_service.proto", +} diff --git a/api/proto/teleport/legacy/client/proto/authservice.proto b/api/proto/teleport/legacy/client/proto/authservice.proto index 47e65d21be7..419f89b30de 100644 --- a/api/proto/teleport/legacy/client/proto/authservice.proto +++ b/api/proto/teleport/legacy/client/proto/authservice.proto @@ -499,6 +499,8 @@ message Features { DeviceTrustFeature DeviceTrust = 19 [(gogoproto.jsontag) = "device_trust,omitempty"]; // FeatureHiding enables hiding features from being discoverable for users who don't have the necessary permissions. bool FeatureHiding = 20 [(gogoproto.jsontag) = "feature_hiding,omitempty"]; + // AccessRequests holds its namesake feature settings. + AccessRequestsFeature AccessRequests = 21 [(gogoproto.jsontag) = "access_requests,omitempty"]; } // DeviceTrustFeature holds the Device Trust feature general and usage-based @@ -514,6 +516,17 @@ message DeviceTrustFeature { int32 devices_usage_limit = 2 [(gogoproto.jsontag) = "devices_usage_limit,omitempty"]; } +// AccessRequestsFeature holds the AccessRequest feature general and usage-based +// settings. +// Requires Teleport Enterprise. +message AccessRequestsFeature { + // Usage-based limit for the number of limit for the number of + // access requests created in a calendar month. + // Meant for usage-based accounts, like Teleport Team. Has no effect if + // [Features.IsUsageBased] is `false`. + int32 monthly_request_limit = 1 [(gogoproto.jsontag) = "monthly_request_limit"]; +} + // DeleteUserRequest is the input value for the DeleteUser method. message DeleteUserRequest { // Name is the user name to delete. diff --git a/api/proto/teleport/resourceusage/v1/resourceusage_service.proto b/api/proto/teleport/resourceusage/v1/resourceusage_service.proto new file mode 100644 index 00000000000..48657fed6be --- /dev/null +++ b/api/proto/teleport/resourceusage/v1/resourceusage_service.proto @@ -0,0 +1,42 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package teleport.resourceusage.v1; + +option go_package = "github.com/gravitational/teleport/api/gen/proto/go/teleport/resourceusage/v1;resourceusagev1"; + +// ResourceUsageService is a service to fetch information about the usage of limited resources on usage-billed plans. +service ResourceUsageService { + // GetUsage returns usage information for all limited resources + rpc GetUsage(GetUsageRequest) returns (GetUsageResponse); +} + +// GetUsageRequest is the request for GetUsage +message GetUsageRequest {} + +// GetUsageResponse is the response for GetUsage +message GetUsageResponse { + AccessRequestsUsage access_requests = 1; +} + +// AccessRequestsUsage defines the usage limits for access requests. +// Currently this is limited on the basis of access requests used per calendar month. +message AccessRequestsUsage { + // MonthlyLimit is the amount of requests that are allowed per month + int32 monthly_limit = 1; + // MonthlyUsed is the amount of requests that have been used this month + int32 monthly_used = 2; +} diff --git a/lib/auth/auth.go b/lib/auth/auth.go index d91658ed730..2d2f3548d42 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -92,6 +92,7 @@ import ( "github.com/gravitational/teleport/lib/observability/metrics" "github.com/gravitational/teleport/lib/observability/tracing" "github.com/gravitational/teleport/lib/release" + "github.com/gravitational/teleport/lib/resourceusage" "github.com/gravitational/teleport/lib/services" "github.com/gravitational/teleport/lib/services/local" "github.com/gravitational/teleport/lib/srv/db/common/role" @@ -4073,6 +4074,10 @@ func (a *Server) CreateAccessRequestV2(ctx context.Context, req types.AccessRequ return req, nil } + if err := a.verifyAccessRequestMonthlyLimit(ctx); err != nil { + return nil, trace.Wrap(err) + } + log.Debugf("Creating Access Request %v with expiry %v.", req.GetName(), req.Expiry()) if _, err := a.Services.CreateAccessRequestV2(ctx, req); err != nil { @@ -5532,6 +5537,33 @@ func (a *Server) CompareAndSwapHeadlessAuthentication(ctx context.Context, old, return headlessAuthn, trace.Wrap(err) } +// getAccessRequestMonthlyUsage returns the number of access requests that have been created this month. +func (a *Server) getAccessRequestMonthlyUsage(ctx context.Context) (int, error) { + return resourceusage.GetAccessRequestMonthlyUsage(ctx, a.Services.AuditLogSessionStreamer, a.clock.Now().UTC()) +} + +// verifyAccessRequestMonthlyLimit checks whether the cluster has exceeded the monthly access request limit. +// If so, it returns an error. This is only applicable on usage-based billing plans. +func (a *Server) verifyAccessRequestMonthlyLimit(ctx context.Context) error { + f := modules.GetModules().Features() + if !f.IsUsageBasedBilling { + return nil // unlimited + } + monthlyLimit := f.AccessRequests.MonthlyRequestLimit + + const limitReachedMessage = "cluster has reached its monthly access request limit, please contact the cluster administrator" + + usage, err := a.getAccessRequestMonthlyUsage(ctx) + if err != nil { + return trace.Wrap(err) + } + if usage >= monthlyLimit { + return trace.AccessDenied(limitReachedMessage) + } + + return nil +} + // getProxyPublicAddr returns the first valid, non-empty proxy public address it // finds, or empty otherwise. func (a *Server) getProxyPublicAddr() string { diff --git a/lib/auth/auth_with_roles.go b/lib/auth/auth_with_roles.go index 93f1356e0ba..c08826373ac 100644 --- a/lib/auth/auth_with_roles.go +++ b/lib/auth/auth_with_roles.go @@ -47,6 +47,7 @@ import ( loginrulepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/loginrule/v1" oktapb "github.com/gravitational/teleport/api/gen/proto/go/teleport/okta/v1" pluginspb "github.com/gravitational/teleport/api/gen/proto/go/teleport/plugins/v1" + resourceusagepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/resourceusage/v1" samlidppb "github.com/gravitational/teleport/api/gen/proto/go/teleport/samlidp/v1" trustpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/trust/v1" userloginstatev1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/userloginstate/v1" @@ -345,6 +346,15 @@ func (a *ServerWithRoles) AccessListClient() services.AccessLists { utils.NewGRPCDummyClientConnection("AccessListClient() should not be called on ServerWithRoles"))) } +// ResourceUsageClient allows ServerWithRoles to implement ClientI. +// It should not be called through ServerWithRoles, +// as it returns a dummy client that will always respond with "not implemented". +func (a *ServerWithRoles) ResourceUsageClient() resourceusagepb.ResourceUsageServiceClient { + return resourceusagepb.NewResourceUsageServiceClient( + utils.NewGRPCDummyClientConnection("ResourceUsageClient() should not be called on ServerWithRoles"), + ) +} + // UserLoginStateClient allows ServerWithRoles to implement ClientI. // It should not be called through ServerWithRoles, // as it returns a dummy client that will always respond with "not implemented". diff --git a/lib/auth/clt.go b/lib/auth/clt.go index 3846e428624..68bf9a1e925 100644 --- a/lib/auth/clt.go +++ b/lib/auth/clt.go @@ -32,6 +32,7 @@ import ( devicepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/devicetrust/v1" loginrulepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/loginrule/v1" pluginspb "github.com/gravitational/teleport/api/gen/proto/go/teleport/plugins/v1" + resourceusagepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/resourceusage/v1" samlidppb "github.com/gravitational/teleport/api/gen/proto/go/teleport/samlidp/v1" userpreferencesv1 "github.com/gravitational/teleport/api/gen/proto/go/userpreferences/v1" "github.com/gravitational/teleport/api/types" @@ -843,6 +844,12 @@ type ClientI interface { // (as per the default gRPC behavior). UserLoginStateClient() services.UserLoginStates + // ResourceUsageClient returns a resource usage service client. + // Clients connecting to non-Enterprise clusters, or older Teleport versions, + // still get a client when calling this method, but all RPCs will return + // "not implemented" errors (as per the default gRPC behavior). + ResourceUsageClient() resourceusagepb.ResourceUsageServiceClient + // CloneHTTPClient creates a new HTTP client with the same configuration. CloneHTTPClient(params ...roundtrip.ClientParam) (*HTTPClient, error) diff --git a/lib/auth/usage_test.go b/lib/auth/usage_test.go new file mode 100644 index 00000000000..6b9f06d3c28 --- /dev/null +++ b/lib/auth/usage_test.go @@ -0,0 +1,120 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package auth + +import ( + "context" + "testing" + "time" + + "github.com/google/uuid" + "github.com/gravitational/trace" + "github.com/jonboulle/clockwork" + "github.com/stretchr/testify/require" + "golang.org/x/exp/slices" + + "github.com/gravitational/teleport/api/types" + apievents "github.com/gravitational/teleport/api/types/events" + "github.com/gravitational/teleport/lib/events" + eventstest "github.com/gravitational/teleport/lib/events/test" + "github.com/gravitational/teleport/lib/modules" + "github.com/gravitational/teleport/lib/tlsca" +) + +func TestAccessRequestLimit(t *testing.T) { + const monthlyLimit = 3 + + makeEvent := func(eventType string, id string, timestamp time.Time) apievents.AuditEvent { + return &apievents.AccessRequestCreate{ + Metadata: apievents.Metadata{ + Type: eventType, + Time: timestamp, + }, + RequestID: id, + } + } + + features := modules.GetModules().Features() + features.IsUsageBasedBilling = true + features.AccessRequests.MonthlyRequestLimit = monthlyLimit + modules.SetTestModules(t, &modules.TestModules{ + TestFeatures: features, + }) + + ctx := context.Background() + p, err := newTestPack(ctx, t.TempDir()) + require.NoError(t, err) + + // Set up RBAC + access, err := types.NewRole("access", types.RoleSpecV6{}) + require.NoError(t, err) + p.a.CreateRole(ctx, access) + require.NoError(t, err) + requestor, err := types.NewRole("requestor", types.RoleSpecV6{ + Allow: types.RoleConditions{ + Request: &types.AccessRequestConditions{ + Roles: []string{"access"}, + }, + }, + }) + require.NoError(t, err) + p.a.CreateRole(ctx, requestor) + require.NoError(t, err) + alice, err := types.NewUser("alice") + alice.SetRoles([]string{"requestor"}) + require.NoError(t, err) + err = p.a.CreateUser(ctx, alice) + require.NoError(t, err) + + // Mock audit log + // Create a clock in the middle of the month for easy manipulation + clock := clockwork.NewFakeClockAt( + time.Date(2023, 07, 15, 1, 2, 3, 0, time.UTC)) + p.a.SetClock(clock) + + july := clock.Now() + august := clock.Now().AddDate(0, 1, 0) + mockEvents := []apievents.AuditEvent{ + // 3 created requests in July: can not create any more + makeEvent(events.AccessRequestCreateEvent, "aaa", july.AddDate(0, 0, -3)), + makeEvent(events.AccessRequestCreateEvent, "bbb", july.AddDate(0, 0, -2)), + makeEvent(events.AccessRequestCreateEvent, "ccc", july.AddDate(0, 0, -1)), + + // 2 access requests created in August: can create one more + makeEvent(events.AccessRequestCreateEvent, "ddd", august.AddDate(0, 0, -2)), + makeEvent(events.AccessRequestCreateEvent, "eee", august.AddDate(0, 0, -1)), + } + + al := eventstest.NewMockAuditLogSessionStreamer(mockEvents, func(req events.SearchEventsRequest) error { + if !slices.Equal([]string{events.AccessRequestCreateEvent}, req.EventTypes) { + return trace.BadParameter("expected AccessRequestCreateEvent only, got %v", req.EventTypes) + } + return nil + }) + p.a.SetAuditLog(al) + + // Check July + req, err := types.NewAccessRequest(uuid.New().String(), "alice", "access") + require.NoError(t, err) + err = p.a.CreateAccessRequest(ctx, req, tlsca.Identity{}) + require.Error(t, err, "expected access request creation to fail due to the monthly limit") + + // Check August + clock.Advance(31 * 24 * time.Hour) + req, err = types.NewAccessRequest(uuid.New().String(), "alice", "access") + require.NoError(t, err) + err = p.a.CreateAccessRequest(ctx, req, tlsca.Identity{}) + require.NoError(t, err) +} diff --git a/lib/events/test/mock.go b/lib/events/test/mock.go new file mode 100644 index 00000000000..e29e85115a4 --- /dev/null +++ b/lib/events/test/mock.go @@ -0,0 +1,57 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package test + +import ( + "context" + + "github.com/gravitational/trace" + + apievents "github.com/gravitational/teleport/api/types/events" + "github.com/gravitational/teleport/lib/events" +) + +type MockAuditLogSessionStreamer struct { + events.DiscardAuditLog + events []apievents.AuditEvent + verifyRequest func(events.SearchEventsRequest) error +} + +func NewMockAuditLogSessionStreamer(events []apievents.AuditEvent, verifyRequest func(events.SearchEventsRequest) error) *MockAuditLogSessionStreamer { + return &MockAuditLogSessionStreamer{ + events: events, + verifyRequest: verifyRequest, + } +} + +// SearchEvents implements events.AuditLogSessionStreamer +func (m *MockAuditLogSessionStreamer) SearchEvents(ctx context.Context, req events.SearchEventsRequest) ([]apievents.AuditEvent, string, error) { + if m.verifyRequest != nil { + if err := m.verifyRequest(req); err != nil { + return nil, "", trace.Wrap(err) + } + } + var results []apievents.AuditEvent + for _, ev := range m.events { + if !req.From.IsZero() && ev.GetTime().Before(req.From) { + continue + } + if !req.To.IsZero() && ev.GetTime().After(req.To) { + continue + } + results = append(results, ev) + } + return results, "", nil +} diff --git a/lib/modules/modules.go b/lib/modules/modules.go index 6acbb1e2175..d55014b4793 100644 --- a/lib/modules/modules.go +++ b/lib/modules/modules.go @@ -74,6 +74,8 @@ type Features struct { DeviceTrust DeviceTrustFeature // FeatureHiding enables hiding features from being discoverable for users who don't have the necessary permissions. FeatureHiding bool + // AccessRequests holds its namesake feature settings. + AccessRequests AccessRequestsFeature } // DeviceTrustFeature holds the Device Trust feature general and usage-based @@ -89,6 +91,15 @@ type DeviceTrustFeature struct { DevicesUsageLimit int } +// AccessRequestsFeature holds the Access Requests feature general and usage-based settings. +type AccessRequestsFeature struct { + // MonthlyRequestLimit is the usage-based limit for the number of + // access requests created in a calendar month. + // Meant for usage-based accounts, like Teleport Team. Has no effect if + // [Features.IsUsageBasedBilling] is `false`. + MonthlyRequestLimit int +} + // ToProto converts Features into proto.Features func (f Features) ToProto() *proto.Features { return &proto.Features{ @@ -112,6 +123,9 @@ func (f Features) ToProto() *proto.Features { Enabled: f.DeviceTrust.Enabled, DevicesUsageLimit: int32(f.DeviceTrust.DevicesUsageLimit), }, + AccessRequests: &proto.AccessRequestsFeature{ + MonthlyRequestLimit: int32(f.AccessRequests.MonthlyRequestLimit), + }, } } diff --git a/lib/resourceusage/usage.go b/lib/resourceusage/usage.go new file mode 100644 index 00000000000..d54afeaabea --- /dev/null +++ b/lib/resourceusage/usage.go @@ -0,0 +1,68 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package resourceusage + +import ( + "context" + "time" + + "github.com/gravitational/trace" + log "github.com/sirupsen/logrus" + + "github.com/gravitational/teleport/api/types" + apievents "github.com/gravitational/teleport/api/types/events" + "github.com/gravitational/teleport/lib/events" +) + +// GetAccessRequestMonthlyUsage returns the number of access requests that have been created this month. +func GetAccessRequestMonthlyUsage(ctx context.Context, alog events.AuditLogger, now time.Time) (int, error) { + monthStart := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, time.UTC) + + created := make(map[string]struct{}) + + var results []apievents.AuditEvent + var startKey string + var err error + for { + results, startKey, err = alog.SearchEvents(ctx, events.SearchEventsRequest{ + From: monthStart, + To: now, + Order: types.EventOrderAscending, + EventTypes: []string{events.AccessRequestCreateEvent}, + StartKey: startKey, + }) + if err != nil { + return 0, trace.Wrap(err) + } + for _, ev := range results { + ev, ok := ev.(*apievents.AccessRequestCreate) + if !ok { + return 0, trace.BadParameter("expected *AccessRequestCreate, but got %T", ev) + } + id := ev.RequestID + switch ev.GetType() { + case events.AccessRequestCreateEvent: + created[id] = struct{}{} + default: + log.Warnf("Expected event type %q, got %q", events.AccessRequestCreateEvent, ev.GetType()) + } + } + if startKey == "" { + break + } + } + + return len(created), nil +} diff --git a/lib/resourceusage/usage_test.go b/lib/resourceusage/usage_test.go new file mode 100644 index 00000000000..50f71567830 --- /dev/null +++ b/lib/resourceusage/usage_test.go @@ -0,0 +1,63 @@ +// Copyright 2023 Gravitational, Inc +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package resourceusage + +import ( + "context" + "testing" + "time" + + "github.com/gravitational/trace" + "github.com/jonboulle/clockwork" + "github.com/stretchr/testify/require" + "golang.org/x/exp/slices" + + apievents "github.com/gravitational/teleport/api/types/events" + "github.com/gravitational/teleport/lib/events" + eventstest "github.com/gravitational/teleport/lib/events/test" +) + +func TestGetAccessRequestMonthlyUsage(t *testing.T) { + makeEvent := func(eventType string, id string, timestamp time.Time) apievents.AuditEvent { + return &apievents.AccessRequestCreate{ + Metadata: apievents.Metadata{ + Type: eventType, + Time: timestamp, + }, + RequestID: id, + } + } + + // Mock audit log + clock := clockwork.NewFakeClockAt(time.Date(2023, 07, 15, 1, 2, 3, 0, time.UTC)) + now := clock.Now() + mockEvents := []apievents.AuditEvent{ + makeEvent(events.AccessRequestCreateEvent, "aaa", now.AddDate(0, 0, -4)), + makeEvent(events.AccessRequestCreateEvent, "bbb", now.AddDate(0, 0, -3)), + makeEvent(events.AccessRequestCreateEvent, "ccc", now.AddDate(0, 0, -2)), + makeEvent(events.AccessRequestCreateEvent, "ddd", now.AddDate(0, 0, -1)), + } + + al := eventstest.NewMockAuditLogSessionStreamer(mockEvents, func(req events.SearchEventsRequest) error { + if !slices.Equal([]string{events.AccessRequestCreateEvent}, req.EventTypes) { + return trace.BadParameter("expected AccessRequestCreateEvent only, got %v", req.EventTypes) + } + return nil + }) + + result, err := GetAccessRequestMonthlyUsage(context.Background(), al, now) + require.NoError(t, err) + require.Equal(t, len(mockEvents), result) +} diff --git a/web/packages/design/src/theme/darkTheme.ts b/web/packages/design/src/theme/darkTheme.ts index de95efe8175..03f0ef8d7cd 100644 --- a/web/packages/design/src/theme/darkTheme.ts +++ b/web/packages/design/src/theme/darkTheme.ts @@ -169,6 +169,10 @@ const colors = { active: '#FFCD66', }, + notice: { + background: '#344179', // elevated + }, + action: { active: '#FFFFFF', hover: 'rgba(255, 255, 255, 0.1)', diff --git a/web/packages/design/src/theme/lightTheme.ts b/web/packages/design/src/theme/lightTheme.ts index c1c1592fac3..b7d580d6da8 100644 --- a/web/packages/design/src/theme/lightTheme.ts +++ b/web/packages/design/src/theme/lightTheme.ts @@ -16,7 +16,7 @@ limitations under the License. import { fonts } from './fonts'; import { darken, getContrastRatio } from './utils/colorManipulator'; -import { lightBlue, blueGrey, yellow } from './palette'; +import { blue, lightBlue, blueGrey, yellow } from './palette'; import typography, { fontSizes, fontWeights } from './typography'; import { sharedStyles } from './sharedStyles'; @@ -165,6 +165,10 @@ const colors = { active: '#996700', }, + notice: { + background: blue[50], + }, + action: { active: '#FFFFFF', hover: 'rgba(255, 255, 255, 0.1)', diff --git a/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.test.tsx b/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.test.tsx index d717763b9cf..c91f9568a7a 100644 --- a/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.test.tsx +++ b/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.test.tsx @@ -56,7 +56,7 @@ describe('buttonLockedFeature', () => { ); expect(screen.getByText('text').closest('a')).toHaveAttribute( 'href', - `https://goteleport.com/r/upgrade-team?${version}&utm_campaign=undefined` + `https://goteleport.com/r/upgrade-team?${version}&utm_campaign=CTA_UNSPECIFIED` ); renderWithContext( @@ -80,7 +80,7 @@ describe('buttonLockedFeature', () => { ); expect(screen.getByText('text').closest('a')).toHaveAttribute( 'href', - `https://goteleport.com/r/upgrade-community?${version}&utm_campaign=undefined` + `https://goteleport.com/r/upgrade-community?${version}&utm_campaign=CTA_UNSPECIFIED` ); renderWithContext( diff --git a/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx b/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx index ded59a37b39..49d2a8bde88 100644 --- a/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx +++ b/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx @@ -20,6 +20,8 @@ import { ButtonPrimary } from 'design/Button'; import { Unlock } from 'design/Icon'; import Flex from 'design/Flex'; +import { getSalesURL } from 'teleport/services/sales'; + import { CtaEvent, userEventService } from 'teleport/services/userEvent'; import useTeleport from 'teleport/useTeleport'; @@ -32,9 +34,6 @@ export type Props = { [index: string]: any; }; -const UPGRADE_TEAM_URL = 'https://goteleport.com/r/upgrade-team'; -const UPGRADE_COMMUNITY_URL = 'https://goteleport.com/r/upgrade-community'; - export function ButtonLockedFeature({ children, noIcon = false, @@ -45,14 +44,7 @@ export function ButtonLockedFeature({ const version = ctx.storeUser.state.cluster.authVersion; const isEnterprise = ctx.isEnterprise; - const upgradeURL = cfg.isUsageBasedBilling - ? UPGRADE_TEAM_URL - : UPGRADE_COMMUNITY_URL; - const upgradeURLWithParams = `${upgradeURL}?${getParams( - version, - isEnterprise, - event - )}`; + const isUsageBased = cfg.isUsageBasedBilling; function handleClick() { userEventService.captureCtaEvent(event); @@ -62,7 +54,7 @@ export function ButtonLockedFeature({