From d603cce32b968e37fa24bce074511f0db2b4d740 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Mon, 11 Sep 2023 17:07:08 +0800 Subject: [PATCH 1/8] Support forwarding store request (#1183) Signed-off-by: Ryan Leung --- pkg/schedulingpb/schedulingpb.pb.go | 1402 +++++++++++++++++++++++++-- proto/schedulingpb.proto | 42 + scripts/proto.lock | 120 +++ 3 files changed, 1503 insertions(+), 61 deletions(-) diff --git a/pkg/schedulingpb/schedulingpb.pb.go b/pkg/schedulingpb/schedulingpb.pb.go index 9aa3d570f..37b1a71ee 100644 --- a/pkg/schedulingpb/schedulingpb.pb.go +++ b/pkg/schedulingpb/schedulingpb.pb.go @@ -4,6 +4,7 @@ package schedulingpb import ( + "context" "fmt" "io" "math" @@ -11,6 +12,10 @@ import ( _ "github.com/gogo/protobuf/gogoproto" proto "github.com/golang/protobuf/proto" + pdpb "github.com/pingcap/kvproto/pkg/pdpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" ) // Reference imports to suppress errors if they are not otherwise used. @@ -24,6 +29,211 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +type ErrorType int32 + +const ( + ErrorType_OK ErrorType = 0 + ErrorType_UNKNOWN ErrorType = 1 + ErrorType_NOT_BOOTSTRAPPED ErrorType = 2 + ErrorType_ALREADY_BOOTSTRAPPED ErrorType = 3 + ErrorType_INVALID_VALUE ErrorType = 4 + ErrorType_CLUSTER_MISMATCHED ErrorType = 5 +) + +var ErrorType_name = map[int32]string{ + 0: "OK", + 1: "UNKNOWN", + 2: "NOT_BOOTSTRAPPED", + 3: "ALREADY_BOOTSTRAPPED", + 4: "INVALID_VALUE", + 5: "CLUSTER_MISMATCHED", +} + +var ErrorType_value = map[string]int32{ + "OK": 0, + "UNKNOWN": 1, + "NOT_BOOTSTRAPPED": 2, + "ALREADY_BOOTSTRAPPED": 3, + "INVALID_VALUE": 4, + "CLUSTER_MISMATCHED": 5, +} + +func (x ErrorType) String() string { + return proto.EnumName(ErrorType_name, int32(x)) +} + +func (ErrorType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{0} +} + +type RequestHeader struct { + // cluster_id is the ID of the cluster which be sent to. + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // sender_id is the ID of the sender server. + SenderId uint64 `protobuf:"varint,2,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestHeader) Reset() { *m = RequestHeader{} } +func (m *RequestHeader) String() string { return proto.CompactTextString(m) } +func (*RequestHeader) ProtoMessage() {} +func (*RequestHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{0} +} +func (m *RequestHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestHeader.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 *RequestHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestHeader.Merge(m, src) +} +func (m *RequestHeader) XXX_Size() int { + return m.Size() +} +func (m *RequestHeader) XXX_DiscardUnknown() { + xxx_messageInfo_RequestHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestHeader proto.InternalMessageInfo + +func (m *RequestHeader) GetClusterId() uint64 { + if m != nil { + return m.ClusterId + } + return 0 +} + +func (m *RequestHeader) GetSenderId() uint64 { + if m != nil { + return m.SenderId + } + return 0 +} + +type ResponseHeader struct { + // cluster_id is the ID of the cluster which sent the response. + ClusterId uint64 `protobuf:"varint,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } +func (m *ResponseHeader) String() string { return proto.CompactTextString(m) } +func (*ResponseHeader) ProtoMessage() {} +func (*ResponseHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{1} +} +func (m *ResponseHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseHeader.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 *ResponseHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseHeader.Merge(m, src) +} +func (m *ResponseHeader) XXX_Size() int { + return m.Size() +} +func (m *ResponseHeader) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseHeader proto.InternalMessageInfo + +func (m *ResponseHeader) GetClusterId() uint64 { + if m != nil { + return m.ClusterId + } + return 0 +} + +func (m *ResponseHeader) GetError() *Error { + if m != nil { + return m.Error + } + return nil +} + +type Error struct { + Type ErrorType `protobuf:"varint,1,opt,name=type,proto3,enum=schedulingpb.ErrorType" json:"type,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Error) Reset() { *m = Error{} } +func (m *Error) String() string { return proto.CompactTextString(m) } +func (*Error) ProtoMessage() {} +func (*Error) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{2} +} +func (m *Error) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Error.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 *Error) XXX_Merge(src proto.Message) { + xxx_messageInfo_Error.Merge(m, src) +} +func (m *Error) XXX_Size() int { + return m.Size() +} +func (m *Error) XXX_DiscardUnknown() { + xxx_messageInfo_Error.DiscardUnknown(m) +} + +var xxx_messageInfo_Error proto.InternalMessageInfo + +func (m *Error) GetType() ErrorType { + if m != nil { + return m.Type + } + return ErrorType_OK +} + +func (m *Error) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + type Participant struct { // name is the unique name of the scheduling participant. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -41,7 +251,7 @@ func (m *Participant) Reset() { *m = Participant{} } func (m *Participant) String() string { return proto.CompactTextString(m) } func (*Participant) ProtoMessage() {} func (*Participant) Descriptor() ([]byte, []int) { - return fileDescriptor_b4bfd49510230d67, []int{0} + return fileDescriptor_b4bfd49510230d67, []int{3} } func (m *Participant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -91,29 +301,247 @@ func (m *Participant) GetListenUrls() []string { return nil } +type StoreHeartbeatRequest struct { + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Stats *pdpb.StoreStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StoreHeartbeatRequest) Reset() { *m = StoreHeartbeatRequest{} } +func (m *StoreHeartbeatRequest) String() string { return proto.CompactTextString(m) } +func (*StoreHeartbeatRequest) ProtoMessage() {} +func (*StoreHeartbeatRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{4} +} +func (m *StoreHeartbeatRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StoreHeartbeatRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StoreHeartbeatRequest.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 *StoreHeartbeatRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StoreHeartbeatRequest.Merge(m, src) +} +func (m *StoreHeartbeatRequest) XXX_Size() int { + return m.Size() +} +func (m *StoreHeartbeatRequest) XXX_DiscardUnknown() { + xxx_messageInfo_StoreHeartbeatRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_StoreHeartbeatRequest proto.InternalMessageInfo + +func (m *StoreHeartbeatRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *StoreHeartbeatRequest) GetStats() *pdpb.StoreStats { + if m != nil { + return m.Stats + } + return nil +} + +type StoreHeartbeatResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + ClusterVersion string `protobuf:"bytes,2,opt,name=cluster_version,json=clusterVersion,proto3" json:"cluster_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StoreHeartbeatResponse) Reset() { *m = StoreHeartbeatResponse{} } +func (m *StoreHeartbeatResponse) String() string { return proto.CompactTextString(m) } +func (*StoreHeartbeatResponse) ProtoMessage() {} +func (*StoreHeartbeatResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{5} +} +func (m *StoreHeartbeatResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StoreHeartbeatResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StoreHeartbeatResponse.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 *StoreHeartbeatResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StoreHeartbeatResponse.Merge(m, src) +} +func (m *StoreHeartbeatResponse) XXX_Size() int { + return m.Size() +} +func (m *StoreHeartbeatResponse) XXX_DiscardUnknown() { + xxx_messageInfo_StoreHeartbeatResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_StoreHeartbeatResponse proto.InternalMessageInfo + +func (m *StoreHeartbeatResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *StoreHeartbeatResponse) GetClusterVersion() string { + if m != nil { + return m.ClusterVersion + } + return "" +} + func init() { + proto.RegisterEnum("schedulingpb.ErrorType", ErrorType_name, ErrorType_value) + proto.RegisterType((*RequestHeader)(nil), "schedulingpb.RequestHeader") + proto.RegisterType((*ResponseHeader)(nil), "schedulingpb.ResponseHeader") + proto.RegisterType((*Error)(nil), "schedulingpb.Error") proto.RegisterType((*Participant)(nil), "schedulingpb.Participant") + proto.RegisterType((*StoreHeartbeatRequest)(nil), "schedulingpb.StoreHeartbeatRequest") + proto.RegisterType((*StoreHeartbeatResponse)(nil), "schedulingpb.StoreHeartbeatResponse") } func init() { proto.RegisterFile("schedulingpb.proto", fileDescriptor_b4bfd49510230d67) } var fileDescriptor_b4bfd49510230d67 = []byte{ - // 190 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0x4e, 0xce, 0x48, - 0x4d, 0x29, 0xcd, 0xc9, 0xcc, 0x4b, 0x2f, 0x48, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, - 0x41, 0x16, 0x93, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x4b, 0xe8, 0x83, 0x58, 0x10, 0x35, 0x52, - 0xfc, 0x45, 0xa5, 0xc5, 0x25, 0x60, 0x26, 0x44, 0x40, 0x29, 0x88, 0x8b, 0x3b, 0x20, 0xb1, 0xa8, - 0x24, 0x33, 0x39, 0xb3, 0x20, 0x31, 0xaf, 0x44, 0x48, 0x88, 0x8b, 0x25, 0x2f, 0x31, 0x37, 0x55, - 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x16, 0xe2, 0xe3, 0x62, 0xca, 0x4c, 0x91, 0x60, - 0x52, 0x60, 0xd4, 0x60, 0x09, 0x62, 0xca, 0x4c, 0x11, 0x92, 0xe7, 0xe2, 0xce, 0xc9, 0x2c, 0x2e, - 0x49, 0xcd, 0x8b, 0x2f, 0x2d, 0xca, 0x29, 0x96, 0x60, 0x56, 0x60, 0xd6, 0xe0, 0x0c, 0xe2, 0x82, - 0x08, 0x85, 0x16, 0xe5, 0x14, 0x3b, 0xa9, 0xdd, 0x58, 0xc1, 0xc1, 0x78, 0xe2, 0x91, 0x1c, 0xe3, - 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0xce, 0x78, 0x2c, 0xc7, 0xc0, 0x25, 0x90, 0x5f, - 0x94, 0xae, 0x57, 0x92, 0x99, 0x5d, 0xa6, 0x97, 0x5d, 0x06, 0xb6, 0x3b, 0x89, 0x0d, 0x4c, 0x19, - 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xaa, 0x73, 0xb0, 0x2b, 0xcd, 0x00, 0x00, 0x00, + // 533 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x6f, 0x6f, 0xd2, 0x5e, + 0x14, 0x5e, 0xf9, 0xb7, 0xf5, 0xf0, 0x1b, 0xeb, 0xef, 0x88, 0x93, 0x30, 0xc5, 0xa5, 0x9a, 0x39, + 0x35, 0xc1, 0x84, 0xf9, 0x05, 0xba, 0xd1, 0x64, 0x04, 0x56, 0xc8, 0x6d, 0xc1, 0x68, 0x62, 0x48, + 0xa1, 0x37, 0xac, 0x81, 0xb5, 0xf5, 0xde, 0x0b, 0x66, 0xf1, 0x8b, 0xf8, 0x11, 0xfc, 0x28, 0xbe, + 0xf4, 0xa5, 0x2f, 0x0d, 0x7e, 0x11, 0xc3, 0x6d, 0x21, 0x2b, 0x59, 0x8c, 0xaf, 0x7a, 0xce, 0xf3, + 0x9c, 0x9e, 0xa7, 0xe7, 0x79, 0x52, 0x40, 0x3e, 0xbe, 0xa6, 0xde, 0x7c, 0xe6, 0x07, 0x93, 0x68, + 0x54, 0x8f, 0x58, 0x28, 0x42, 0xfc, 0xef, 0x2e, 0x56, 0x85, 0xc8, 0x5b, 0x33, 0xd5, 0xf2, 0x24, + 0x9c, 0x84, 0xb2, 0x7c, 0xb3, 0xaa, 0x12, 0xf4, 0x80, 0xcd, 0xb9, 0x90, 0x65, 0x0c, 0xe8, 0x6d, + 0xd8, 0x27, 0xf4, 0xd3, 0x9c, 0x72, 0x71, 0x49, 0x5d, 0x8f, 0x32, 0x7c, 0x02, 0x30, 0x9e, 0xcd, + 0xb9, 0xa0, 0x6c, 0xe8, 0x7b, 0x15, 0xe5, 0x58, 0x39, 0xcd, 0x11, 0x35, 0x41, 0x5a, 0x1e, 0x1e, + 0x81, 0xca, 0x69, 0xe0, 0xc5, 0x6c, 0x46, 0xb2, 0x7b, 0x31, 0xd0, 0xf2, 0xf4, 0x0f, 0x50, 0x22, + 0x94, 0x47, 0x61, 0xc0, 0xe9, 0xbf, 0x6d, 0x7b, 0x09, 0x79, 0xca, 0x58, 0xc8, 0xe4, 0xa6, 0x62, + 0xe3, 0x41, 0x3d, 0x75, 0xa2, 0xb9, 0xa2, 0x48, 0x3c, 0xa1, 0x5b, 0x90, 0x97, 0x3d, 0xbe, 0x86, + 0x9c, 0xb8, 0x8d, 0xa8, 0x5c, 0x56, 0x6a, 0x3c, 0xba, 0xe7, 0x15, 0xe7, 0x36, 0xa2, 0x44, 0x0e, + 0x61, 0x05, 0x76, 0x6f, 0x28, 0xe7, 0xee, 0x84, 0x4a, 0x09, 0x95, 0xac, 0x5b, 0x9d, 0x40, 0xb1, + 0xe7, 0x32, 0xe1, 0x8f, 0xfd, 0xc8, 0x0d, 0x04, 0x22, 0xe4, 0x02, 0xf7, 0x26, 0xde, 0xaa, 0x12, + 0x59, 0x63, 0x09, 0x32, 0x9b, 0x23, 0x33, 0xbe, 0x87, 0x4f, 0xa1, 0x38, 0xf3, 0xb9, 0xa0, 0xc1, + 0x70, 0xce, 0x66, 0xbc, 0x92, 0x3d, 0xce, 0x9e, 0xaa, 0x04, 0x62, 0xa8, 0xcf, 0x66, 0x5c, 0x17, + 0xf0, 0xd0, 0x16, 0x21, 0x5b, 0x1d, 0xcf, 0xc4, 0x88, 0xba, 0x22, 0xb1, 0x16, 0xcf, 0xa0, 0x70, + 0x2d, 0x0d, 0x91, 0xfb, 0x8b, 0x8d, 0xa3, 0xf4, 0x57, 0xa7, 0x12, 0x20, 0xc9, 0x28, 0x9e, 0x40, + 0x9e, 0x0b, 0x57, 0xf0, 0xc4, 0x1c, 0xad, 0x2e, 0xd3, 0x95, 0x02, 0xf6, 0x0a, 0x27, 0x31, 0xad, + 0x7f, 0x86, 0xc3, 0x6d, 0xd5, 0x38, 0x03, 0x7c, 0xbb, 0x25, 0xfb, 0x78, 0x5b, 0xf6, 0x6e, 0x56, + 0x1b, 0xdd, 0x17, 0x70, 0xb0, 0xce, 0x6c, 0x41, 0x19, 0xf7, 0xc3, 0x20, 0xf1, 0xae, 0x94, 0xc0, + 0x83, 0x18, 0x7d, 0xf5, 0x05, 0xd4, 0x8d, 0xdf, 0x58, 0x80, 0x4c, 0xb7, 0xad, 0xed, 0x60, 0x11, + 0x76, 0xfb, 0x56, 0xdb, 0xea, 0xbe, 0xb3, 0x34, 0x05, 0xcb, 0xa0, 0x59, 0x5d, 0x67, 0x78, 0xde, + 0xed, 0x3a, 0xb6, 0x43, 0x8c, 0x5e, 0xcf, 0x6c, 0x6a, 0x19, 0xac, 0x40, 0xd9, 0xe8, 0x10, 0xd3, + 0x68, 0xbe, 0x4f, 0x33, 0x59, 0xfc, 0x1f, 0xf6, 0x5b, 0xd6, 0xc0, 0xe8, 0xb4, 0x9a, 0xc3, 0x81, + 0xd1, 0xe9, 0x9b, 0x5a, 0x0e, 0x0f, 0x01, 0x2f, 0x3a, 0x7d, 0xdb, 0x31, 0xc9, 0xf0, 0xaa, 0x65, + 0x5f, 0x19, 0xce, 0xc5, 0xa5, 0xd9, 0xd4, 0xf2, 0x8d, 0x29, 0x80, 0xbd, 0x39, 0x06, 0x3f, 0x42, + 0x29, 0xed, 0x01, 0x3e, 0x4b, 0xdf, 0x7a, 0x6f, 0x2e, 0xd5, 0xe7, 0x7f, 0x1f, 0x8a, 0xed, 0xd1, + 0x77, 0xce, 0x4f, 0x7e, 0x7e, 0xdb, 0x53, 0xbe, 0x2f, 0x6b, 0xca, 0x8f, 0x65, 0x4d, 0xf9, 0xb5, + 0xac, 0x29, 0x5f, 0x7f, 0xd7, 0x76, 0x40, 0x0b, 0xd9, 0xa4, 0x2e, 0xfc, 0xe9, 0xa2, 0x3e, 0x5d, + 0xc8, 0xbf, 0x69, 0x54, 0x90, 0x8f, 0xb3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x89, 0x8f, 0xdb, + 0x92, 0xab, 0x03, 0x00, 0x00, } -func (m *Participant) Marshal() (dAtA []byte, err error) { +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// SchedulingClient is the client API for Scheduling service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SchedulingClient interface { + StoreHeartbeat(ctx context.Context, in *StoreHeartbeatRequest, opts ...grpc.CallOption) (*StoreHeartbeatResponse, error) +} + +type schedulingClient struct { + cc *grpc.ClientConn +} + +func NewSchedulingClient(cc *grpc.ClientConn) SchedulingClient { + return &schedulingClient{cc} +} + +func (c *schedulingClient) StoreHeartbeat(ctx context.Context, in *StoreHeartbeatRequest, opts ...grpc.CallOption) (*StoreHeartbeatResponse, error) { + out := new(StoreHeartbeatResponse) + err := c.cc.Invoke(ctx, "/schedulingpb.Scheduling/StoreHeartbeat", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SchedulingServer is the server API for Scheduling service. +type SchedulingServer interface { + StoreHeartbeat(context.Context, *StoreHeartbeatRequest) (*StoreHeartbeatResponse, error) +} + +// UnimplementedSchedulingServer can be embedded to have forward compatible implementations. +type UnimplementedSchedulingServer struct { +} + +func (*UnimplementedSchedulingServer) StoreHeartbeat(ctx context.Context, req *StoreHeartbeatRequest) (*StoreHeartbeatResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StoreHeartbeat not implemented") +} + +func RegisterSchedulingServer(s *grpc.Server, srv SchedulingServer) { + s.RegisterService(&_Scheduling_serviceDesc, srv) +} + +func _Scheduling_StoreHeartbeat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StoreHeartbeatRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SchedulingServer).StoreHeartbeat(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/schedulingpb.Scheduling/StoreHeartbeat", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SchedulingServer).StoreHeartbeat(ctx, req.(*StoreHeartbeatRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Scheduling_serviceDesc = grpc.ServiceDesc{ + ServiceName: "schedulingpb.Scheduling", + HandlerType: (*SchedulingServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "StoreHeartbeat", + Handler: _Scheduling_StoreHeartbeat_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "schedulingpb.proto", +} + +func (m *RequestHeader) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -123,12 +551,12 @@ func (m *Participant) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Participant) MarshalTo(dAtA []byte) (int, error) { +func (m *RequestHeader) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Participant) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RequestHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -137,52 +565,325 @@ func (m *Participant) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.ListenUrls) > 0 { - for iNdEx := len(m.ListenUrls) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ListenUrls[iNdEx]) - copy(dAtA[i:], m.ListenUrls[iNdEx]) - i = encodeVarintSchedulingpb(dAtA, i, uint64(len(m.ListenUrls[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if m.Id != 0 { - i = encodeVarintSchedulingpb(dAtA, i, uint64(m.Id)) + if m.SenderId != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.SenderId)) i-- dAtA[i] = 0x10 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintSchedulingpb(dAtA, i, uint64(len(m.Name))) + if m.ClusterId != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ClusterId)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func encodeVarintSchedulingpb(dAtA []byte, offset int, v uint64) int { - offset -= sovSchedulingpb(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *ResponseHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *Participant) Size() (n int) { - if m == nil { - return 0 - } + +func (m *ResponseHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Name) - if l > 0 { - n += 1 + l + sovSchedulingpb(uint64(l)) - } - if m.Id != 0 { + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ClusterId != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ClusterId)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Error) 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 *Error) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Error) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintSchedulingpb(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x12 + } + if m.Type != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Participant) 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 *Participant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Participant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.ListenUrls) > 0 { + for iNdEx := len(m.ListenUrls) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ListenUrls[iNdEx]) + copy(dAtA[i:], m.ListenUrls[iNdEx]) + i = encodeVarintSchedulingpb(dAtA, i, uint64(len(m.ListenUrls[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.Id != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintSchedulingpb(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StoreHeartbeatRequest) 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 *StoreHeartbeatRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StoreHeartbeatRequest) 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.Stats != nil { + { + size, err := m.Stats.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StoreHeartbeatResponse) 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 *StoreHeartbeatResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StoreHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.ClusterVersion) > 0 { + i -= len(m.ClusterVersion) + copy(dAtA[i:], m.ClusterVersion) + i = encodeVarintSchedulingpb(dAtA, i, uint64(len(m.ClusterVersion))) + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintSchedulingpb(dAtA []byte, offset int, v uint64) int { + offset -= sovSchedulingpb(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RequestHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovSchedulingpb(uint64(m.ClusterId)) + } + if m.SenderId != 0 { + n += 1 + sovSchedulingpb(uint64(m.SenderId)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ResponseHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovSchedulingpb(uint64(m.ClusterId)) + } + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Error) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovSchedulingpb(uint64(m.Type)) + } + l = len(m.Message) + if l > 0 { + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Participant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.Id != 0 { n += 1 + sovSchedulingpb(uint64(m.Id)) } if len(m.ListenUrls) > 0 { @@ -191,17 +892,354 @@ func (m *Participant) Size() (n int) { n += 1 + l + sovSchedulingpb(uint64(l)) } } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *StoreHeartbeatRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.Stats != nil { + l = m.Stats.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *StoreHeartbeatResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + l = len(m.ClusterVersion) + if l > 0 { + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovSchedulingpb(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozSchedulingpb(x uint64) (n int) { + return sovSchedulingpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RequestHeader) 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 ErrIntOverflowSchedulingpb + } + 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: RequestHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SenderId", wireType) + } + m.SenderId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SenderId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *ResponseHeader) 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 ErrIntOverflowSchedulingpb + } + 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: ResponseHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &Error{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *Error) 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 ErrIntOverflowSchedulingpb + } + 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: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= ErrorType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } -func sovSchedulingpb(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozSchedulingpb(x uint64) (n int) { - return sovSchedulingpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } func (m *Participant) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -337,6 +1375,248 @@ func (m *Participant) Unmarshal(dAtA []byte) error { } return nil } +func (m *StoreHeartbeatRequest) 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 ErrIntOverflowSchedulingpb + } + 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: StoreHeartbeatRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StoreHeartbeatRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Stats == nil { + m.Stats = &pdpb.StoreStats{} + } + if err := m.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *StoreHeartbeatResponse) 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 ErrIntOverflowSchedulingpb + } + 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: StoreHeartbeatResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StoreHeartbeatResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClusterVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 skipSchedulingpb(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/proto/schedulingpb.proto b/proto/schedulingpb.proto index 1c17e436a..37b768e16 100644 --- a/proto/schedulingpb.proto +++ b/proto/schedulingpb.proto @@ -1,6 +1,7 @@ syntax = "proto3"; package schedulingpb; +import "pdpb.proto"; import "gogoproto/gogo.proto"; import "rustproto.proto"; @@ -11,6 +12,37 @@ option (rustproto.lite_runtime_all) = true; option java_package = "org.tikv.kvproto"; +service Scheduling { + rpc StoreHeartbeat(StoreHeartbeatRequest) returns (StoreHeartbeatResponse) {} +} + +message RequestHeader { + // cluster_id is the ID of the cluster which be sent to. + uint64 cluster_id = 1; + // sender_id is the ID of the sender server. + uint64 sender_id = 2; +} + +message ResponseHeader { + // cluster_id is the ID of the cluster which sent the response. + uint64 cluster_id = 1; + Error error = 2; +} + +enum ErrorType { + OK = 0; + UNKNOWN = 1; + NOT_BOOTSTRAPPED = 2; + ALREADY_BOOTSTRAPPED = 3; + INVALID_VALUE = 4; + CLUSTER_MISMATCHED = 5; +} + +message Error { + ErrorType type = 1; + string message = 2; +} + message Participant { // name is the unique name of the scheduling participant. string name = 1; @@ -20,3 +52,13 @@ message Participant { // listen_urls[0] is primary service endpoint. repeated string listen_urls = 3; } + +message StoreHeartbeatRequest { + RequestHeader header = 1; + pdpb.StoreStats stats = 2; +} + +message StoreHeartbeatResponse { + ResponseHeader header = 1; + string cluster_version = 2; +} diff --git a/scripts/proto.lock b/scripts/proto.lock index 0b2f21db9..3454ccaaf 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -18768,7 +18768,82 @@ { "protopath": "schedulingpb.proto", "def": { + "enums": [ + { + "name": "ErrorType", + "enum_fields": [ + { + "name": "OK" + }, + { + "name": "UNKNOWN", + "integer": 1 + }, + { + "name": "NOT_BOOTSTRAPPED", + "integer": 2 + }, + { + "name": "ALREADY_BOOTSTRAPPED", + "integer": 3 + }, + { + "name": "INVALID_VALUE", + "integer": 4 + }, + { + "name": "CLUSTER_MISMATCHED", + "integer": 5 + } + ] + } + ], "messages": [ + { + "name": "RequestHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "sender_id", + "type": "uint64" + } + ] + }, + { + "name": "ResponseHeader", + "fields": [ + { + "id": 1, + "name": "cluster_id", + "type": "uint64" + }, + { + "id": 2, + "name": "error", + "type": "Error" + } + ] + }, + { + "name": "Error", + "fields": [ + { + "id": 1, + "name": "type", + "type": "ErrorType" + }, + { + "id": 2, + "name": "message", + "type": "string" + } + ] + }, { "name": "Participant", "fields": [ @@ -18789,9 +18864,54 @@ "is_repeated": true } ] + }, + { + "name": "StoreHeartbeatRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "stats", + "type": "pdpb.StoreStats" + } + ] + }, + { + "name": "StoreHeartbeatResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "cluster_version", + "type": "string" + } + ] + } + ], + "services": [ + { + "name": "Scheduling", + "rpcs": [ + { + "name": "StoreHeartbeat", + "in_type": "StoreHeartbeatRequest", + "out_type": "StoreHeartbeatResponse" + } + ] } ], "imports": [ + { + "path": "pdpb.proto" + }, { "path": "gogoproto/gogo.proto" }, From ab96d0cc74fb83b2a4c8b2470ac81703b7a3b9ce Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Thu, 14 Sep 2023 13:14:16 +0800 Subject: [PATCH 2/8] use independent region definition (#1184) Signed-off-by: Ryan Leung --- pkg/schedulingpb/schedulingpb.pb.go | 2429 ++++++++++++++++++++++----- proto/schedulingpb.proto | 76 + scripts/proto.lock | 150 ++ 3 files changed, 2280 insertions(+), 375 deletions(-) diff --git a/pkg/schedulingpb/schedulingpb.pb.go b/pkg/schedulingpb/schedulingpb.pb.go index 37b1a71ee..0b0b04202 100644 --- a/pkg/schedulingpb/schedulingpb.pb.go +++ b/pkg/schedulingpb/schedulingpb.pb.go @@ -12,6 +12,7 @@ import ( _ "github.com/gogo/protobuf/gogoproto" proto "github.com/golang/protobuf/proto" + metapb "github.com/pingcap/kvproto/pkg/metapb" pdpb "github.com/pingcap/kvproto/pkg/pdpb" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -411,6 +412,321 @@ func (m *StoreHeartbeatResponse) GetClusterVersion() string { return "" } +type RegionHeartbeatRequest struct { + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Region *metapb.Region `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` + // Leader Peer sending the heartbeat. + Leader *metapb.Peer `protobuf:"bytes,3,opt,name=leader,proto3" json:"leader,omitempty"` + // Leader considers that these peers are down. + DownPeers []*pdpb.PeerStats `protobuf:"bytes,4,rep,name=down_peers,json=downPeers,proto3" json:"down_peers,omitempty"` + // Pending peers are the peers that the leader can't consider as + // working followers. + PendingPeers []*metapb.Peer `protobuf:"bytes,5,rep,name=pending_peers,json=pendingPeers,proto3" json:"pending_peers,omitempty"` + // Bytes read/written during this period. + BytesWritten uint64 `protobuf:"varint,6,opt,name=bytes_written,json=bytesWritten,proto3" json:"bytes_written,omitempty"` + BytesRead uint64 `protobuf:"varint,7,opt,name=bytes_read,json=bytesRead,proto3" json:"bytes_read,omitempty"` + // Keys read/written during this period. + KeysWritten uint64 `protobuf:"varint,8,opt,name=keys_written,json=keysWritten,proto3" json:"keys_written,omitempty"` + KeysRead uint64 `protobuf:"varint,9,opt,name=keys_read,json=keysRead,proto3" json:"keys_read,omitempty"` + // Approximate region size. + ApproximateSize uint64 `protobuf:"varint,10,opt,name=approximate_size,json=approximateSize,proto3" json:"approximate_size,omitempty"` + // Actually reported time interval + Interval *pdpb.TimeInterval `protobuf:"bytes,12,opt,name=interval,proto3" json:"interval,omitempty"` + // Approximate number of keys. + ApproximateKeys uint64 `protobuf:"varint,13,opt,name=approximate_keys,json=approximateKeys,proto3" json:"approximate_keys,omitempty"` + // Term is the term of raft group. + Term uint64 `protobuf:"varint,14,opt,name=term,proto3" json:"term,omitempty"` + // QueryStats reported write query stats, and there are read query stats in store heartbeat + QueryStats *pdpb.QueryStats `protobuf:"bytes,15,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"` + // cpu_usage is the CPU time usage of the leader region since the last heartbeat, + // which is calculated by cpu_time_delta/heartbeat_reported_interval. + CpuUsage uint64 `protobuf:"varint,17,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegionHeartbeatRequest) Reset() { *m = RegionHeartbeatRequest{} } +func (m *RegionHeartbeatRequest) String() string { return proto.CompactTextString(m) } +func (*RegionHeartbeatRequest) ProtoMessage() {} +func (*RegionHeartbeatRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{6} +} +func (m *RegionHeartbeatRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RegionHeartbeatRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RegionHeartbeatRequest.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 *RegionHeartbeatRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegionHeartbeatRequest.Merge(m, src) +} +func (m *RegionHeartbeatRequest) XXX_Size() int { + return m.Size() +} +func (m *RegionHeartbeatRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RegionHeartbeatRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RegionHeartbeatRequest proto.InternalMessageInfo + +func (m *RegionHeartbeatRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *RegionHeartbeatRequest) GetRegion() *metapb.Region { + if m != nil { + return m.Region + } + return nil +} + +func (m *RegionHeartbeatRequest) GetLeader() *metapb.Peer { + if m != nil { + return m.Leader + } + return nil +} + +func (m *RegionHeartbeatRequest) GetDownPeers() []*pdpb.PeerStats { + if m != nil { + return m.DownPeers + } + return nil +} + +func (m *RegionHeartbeatRequest) GetPendingPeers() []*metapb.Peer { + if m != nil { + return m.PendingPeers + } + return nil +} + +func (m *RegionHeartbeatRequest) GetBytesWritten() uint64 { + if m != nil { + return m.BytesWritten + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetBytesRead() uint64 { + if m != nil { + return m.BytesRead + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetKeysWritten() uint64 { + if m != nil { + return m.KeysWritten + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetKeysRead() uint64 { + if m != nil { + return m.KeysRead + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetApproximateSize() uint64 { + if m != nil { + return m.ApproximateSize + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetInterval() *pdpb.TimeInterval { + if m != nil { + return m.Interval + } + return nil +} + +func (m *RegionHeartbeatRequest) GetApproximateKeys() uint64 { + if m != nil { + return m.ApproximateKeys + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetTerm() uint64 { + if m != nil { + return m.Term + } + return 0 +} + +func (m *RegionHeartbeatRequest) GetQueryStats() *pdpb.QueryStats { + if m != nil { + return m.QueryStats + } + return nil +} + +func (m *RegionHeartbeatRequest) GetCpuUsage() uint64 { + if m != nil { + return m.CpuUsage + } + return 0 +} + +type RegionHeartbeatResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + // Notice, Pd only allows handling reported epoch >= current pd's. + // Leader peer reports region status with RegionHeartbeatRequest + // to pd regularly, pd will determine whether this region + // should do ChangePeer or not. + // E,g, max peer number is 3, region A, first only peer 1 in A. + // 1. Pd region state -> Peers (1), ConfVer (1). + // 2. Leader peer 1 reports region state to pd, pd finds the + // peer number is < 3, so first changes its current region + // state -> Peers (1, 2), ConfVer (1), and returns ChangePeer Adding 2. + // 3. Leader does ChangePeer, then reports Peers (1, 2), ConfVer (2), + // pd updates its state -> Peers (1, 2), ConfVer (2). + // 4. Leader may report old Peers (1), ConfVer (1) to pd before ConfChange + // finished, pd stills responses ChangePeer Adding 2, of course, we must + // guarantee the second ChangePeer can't be applied in TiKV. + ChangePeer *pdpb.ChangePeer `protobuf:"bytes,2,opt,name=change_peer,json=changePeer,proto3" json:"change_peer,omitempty"` + // Pd can return transfer_leader to let TiKV does leader transfer itself. + TransferLeader *pdpb.TransferLeader `protobuf:"bytes,3,opt,name=transfer_leader,json=transferLeader,proto3" json:"transfer_leader,omitempty"` + // ID of the region + RegionId uint64 `protobuf:"varint,4,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + RegionEpoch *metapb.RegionEpoch `protobuf:"bytes,5,opt,name=region_epoch,json=regionEpoch,proto3" json:"region_epoch,omitempty"` + // Leader of the region at the moment of the corresponding request was made. + TargetPeer *metapb.Peer `protobuf:"bytes,6,opt,name=target_peer,json=targetPeer,proto3" json:"target_peer,omitempty"` + Merge *pdpb.Merge `protobuf:"bytes,7,opt,name=merge,proto3" json:"merge,omitempty"` + // PD sends split_region to let TiKV split a region into two regions. + SplitRegion *pdpb.SplitRegion `protobuf:"bytes,8,opt,name=split_region,json=splitRegion,proto3" json:"split_region,omitempty"` + // Multiple change peer operations atomically. + // Note: PD can use both ChangePeer and ChangePeerV2 at the same time + // (not in the same RegionHeartbeatResponse). + // Now, PD use ChangePeerV2 in following scenarios: + // 1. replacing peers + // 2. demoting voter directly + ChangePeerV2 *pdpb.ChangePeerV2 `protobuf:"bytes,9,opt,name=change_peer_v2,json=changePeerV2,proto3" json:"change_peer_v2,omitempty"` + SwitchWitnesses *pdpb.BatchSwitchWitness `protobuf:"bytes,10,opt,name=switch_witnesses,json=switchWitnesses,proto3" json:"switch_witnesses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegionHeartbeatResponse) Reset() { *m = RegionHeartbeatResponse{} } +func (m *RegionHeartbeatResponse) String() string { return proto.CompactTextString(m) } +func (*RegionHeartbeatResponse) ProtoMessage() {} +func (*RegionHeartbeatResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_b4bfd49510230d67, []int{7} +} +func (m *RegionHeartbeatResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RegionHeartbeatResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RegionHeartbeatResponse.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 *RegionHeartbeatResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegionHeartbeatResponse.Merge(m, src) +} +func (m *RegionHeartbeatResponse) XXX_Size() int { + return m.Size() +} +func (m *RegionHeartbeatResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RegionHeartbeatResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RegionHeartbeatResponse proto.InternalMessageInfo + +func (m *RegionHeartbeatResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *RegionHeartbeatResponse) GetChangePeer() *pdpb.ChangePeer { + if m != nil { + return m.ChangePeer + } + return nil +} + +func (m *RegionHeartbeatResponse) GetTransferLeader() *pdpb.TransferLeader { + if m != nil { + return m.TransferLeader + } + return nil +} + +func (m *RegionHeartbeatResponse) GetRegionId() uint64 { + if m != nil { + return m.RegionId + } + return 0 +} + +func (m *RegionHeartbeatResponse) GetRegionEpoch() *metapb.RegionEpoch { + if m != nil { + return m.RegionEpoch + } + return nil +} + +func (m *RegionHeartbeatResponse) GetTargetPeer() *metapb.Peer { + if m != nil { + return m.TargetPeer + } + return nil +} + +func (m *RegionHeartbeatResponse) GetMerge() *pdpb.Merge { + if m != nil { + return m.Merge + } + return nil +} + +func (m *RegionHeartbeatResponse) GetSplitRegion() *pdpb.SplitRegion { + if m != nil { + return m.SplitRegion + } + return nil +} + +func (m *RegionHeartbeatResponse) GetChangePeerV2() *pdpb.ChangePeerV2 { + if m != nil { + return m.ChangePeerV2 + } + return nil +} + +func (m *RegionHeartbeatResponse) GetSwitchWitnesses() *pdpb.BatchSwitchWitness { + if m != nil { + return m.SwitchWitnesses + } + return nil +} + func init() { proto.RegisterEnum("schedulingpb.ErrorType", ErrorType_name, ErrorType_value) proto.RegisterType((*RequestHeader)(nil), "schedulingpb.RequestHeader") @@ -419,46 +735,79 @@ func init() { proto.RegisterType((*Participant)(nil), "schedulingpb.Participant") proto.RegisterType((*StoreHeartbeatRequest)(nil), "schedulingpb.StoreHeartbeatRequest") proto.RegisterType((*StoreHeartbeatResponse)(nil), "schedulingpb.StoreHeartbeatResponse") + proto.RegisterType((*RegionHeartbeatRequest)(nil), "schedulingpb.RegionHeartbeatRequest") + proto.RegisterType((*RegionHeartbeatResponse)(nil), "schedulingpb.RegionHeartbeatResponse") } func init() { proto.RegisterFile("schedulingpb.proto", fileDescriptor_b4bfd49510230d67) } var fileDescriptor_b4bfd49510230d67 = []byte{ - // 533 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x6f, 0x6f, 0xd2, 0x5e, - 0x14, 0x5e, 0xf9, 0xb7, 0xf5, 0xf0, 0x1b, 0xeb, 0xef, 0x88, 0x93, 0x30, 0xc5, 0xa5, 0x9a, 0x39, - 0x35, 0xc1, 0x84, 0xf9, 0x05, 0xba, 0xd1, 0x64, 0x04, 0x56, 0xc8, 0x6d, 0xc1, 0x68, 0x62, 0x48, - 0xa1, 0x37, 0xac, 0x81, 0xb5, 0xf5, 0xde, 0x0b, 0x66, 0xf1, 0x8b, 0xf8, 0x11, 0xfc, 0x28, 0xbe, - 0xf4, 0xa5, 0x2f, 0x0d, 0x7e, 0x11, 0xc3, 0x6d, 0x21, 0x2b, 0x59, 0x8c, 0xaf, 0x7a, 0xce, 0xf3, - 0x9c, 0x9e, 0xa7, 0xe7, 0x79, 0x52, 0x40, 0x3e, 0xbe, 0xa6, 0xde, 0x7c, 0xe6, 0x07, 0x93, 0x68, - 0x54, 0x8f, 0x58, 0x28, 0x42, 0xfc, 0xef, 0x2e, 0x56, 0x85, 0xc8, 0x5b, 0x33, 0xd5, 0xf2, 0x24, - 0x9c, 0x84, 0xb2, 0x7c, 0xb3, 0xaa, 0x12, 0xf4, 0x80, 0xcd, 0xb9, 0x90, 0x65, 0x0c, 0xe8, 0x6d, - 0xd8, 0x27, 0xf4, 0xd3, 0x9c, 0x72, 0x71, 0x49, 0x5d, 0x8f, 0x32, 0x7c, 0x02, 0x30, 0x9e, 0xcd, - 0xb9, 0xa0, 0x6c, 0xe8, 0x7b, 0x15, 0xe5, 0x58, 0x39, 0xcd, 0x11, 0x35, 0x41, 0x5a, 0x1e, 0x1e, - 0x81, 0xca, 0x69, 0xe0, 0xc5, 0x6c, 0x46, 0xb2, 0x7b, 0x31, 0xd0, 0xf2, 0xf4, 0x0f, 0x50, 0x22, - 0x94, 0x47, 0x61, 0xc0, 0xe9, 0xbf, 0x6d, 0x7b, 0x09, 0x79, 0xca, 0x58, 0xc8, 0xe4, 0xa6, 0x62, - 0xe3, 0x41, 0x3d, 0x75, 0xa2, 0xb9, 0xa2, 0x48, 0x3c, 0xa1, 0x5b, 0x90, 0x97, 0x3d, 0xbe, 0x86, - 0x9c, 0xb8, 0x8d, 0xa8, 0x5c, 0x56, 0x6a, 0x3c, 0xba, 0xe7, 0x15, 0xe7, 0x36, 0xa2, 0x44, 0x0e, - 0x61, 0x05, 0x76, 0x6f, 0x28, 0xe7, 0xee, 0x84, 0x4a, 0x09, 0x95, 0xac, 0x5b, 0x9d, 0x40, 0xb1, - 0xe7, 0x32, 0xe1, 0x8f, 0xfd, 0xc8, 0x0d, 0x04, 0x22, 0xe4, 0x02, 0xf7, 0x26, 0xde, 0xaa, 0x12, - 0x59, 0x63, 0x09, 0x32, 0x9b, 0x23, 0x33, 0xbe, 0x87, 0x4f, 0xa1, 0x38, 0xf3, 0xb9, 0xa0, 0xc1, - 0x70, 0xce, 0x66, 0xbc, 0x92, 0x3d, 0xce, 0x9e, 0xaa, 0x04, 0x62, 0xa8, 0xcf, 0x66, 0x5c, 0x17, - 0xf0, 0xd0, 0x16, 0x21, 0x5b, 0x1d, 0xcf, 0xc4, 0x88, 0xba, 0x22, 0xb1, 0x16, 0xcf, 0xa0, 0x70, - 0x2d, 0x0d, 0x91, 0xfb, 0x8b, 0x8d, 0xa3, 0xf4, 0x57, 0xa7, 0x12, 0x20, 0xc9, 0x28, 0x9e, 0x40, - 0x9e, 0x0b, 0x57, 0xf0, 0xc4, 0x1c, 0xad, 0x2e, 0xd3, 0x95, 0x02, 0xf6, 0x0a, 0x27, 0x31, 0xad, - 0x7f, 0x86, 0xc3, 0x6d, 0xd5, 0x38, 0x03, 0x7c, 0xbb, 0x25, 0xfb, 0x78, 0x5b, 0xf6, 0x6e, 0x56, - 0x1b, 0xdd, 0x17, 0x70, 0xb0, 0xce, 0x6c, 0x41, 0x19, 0xf7, 0xc3, 0x20, 0xf1, 0xae, 0x94, 0xc0, - 0x83, 0x18, 0x7d, 0xf5, 0x05, 0xd4, 0x8d, 0xdf, 0x58, 0x80, 0x4c, 0xb7, 0xad, 0xed, 0x60, 0x11, - 0x76, 0xfb, 0x56, 0xdb, 0xea, 0xbe, 0xb3, 0x34, 0x05, 0xcb, 0xa0, 0x59, 0x5d, 0x67, 0x78, 0xde, - 0xed, 0x3a, 0xb6, 0x43, 0x8c, 0x5e, 0xcf, 0x6c, 0x6a, 0x19, 0xac, 0x40, 0xd9, 0xe8, 0x10, 0xd3, - 0x68, 0xbe, 0x4f, 0x33, 0x59, 0xfc, 0x1f, 0xf6, 0x5b, 0xd6, 0xc0, 0xe8, 0xb4, 0x9a, 0xc3, 0x81, - 0xd1, 0xe9, 0x9b, 0x5a, 0x0e, 0x0f, 0x01, 0x2f, 0x3a, 0x7d, 0xdb, 0x31, 0xc9, 0xf0, 0xaa, 0x65, - 0x5f, 0x19, 0xce, 0xc5, 0xa5, 0xd9, 0xd4, 0xf2, 0x8d, 0x29, 0x80, 0xbd, 0x39, 0x06, 0x3f, 0x42, - 0x29, 0xed, 0x01, 0x3e, 0x4b, 0xdf, 0x7a, 0x6f, 0x2e, 0xd5, 0xe7, 0x7f, 0x1f, 0x8a, 0xed, 0xd1, - 0x77, 0xce, 0x4f, 0x7e, 0x7e, 0xdb, 0x53, 0xbe, 0x2f, 0x6b, 0xca, 0x8f, 0x65, 0x4d, 0xf9, 0xb5, - 0xac, 0x29, 0x5f, 0x7f, 0xd7, 0x76, 0x40, 0x0b, 0xd9, 0xa4, 0x2e, 0xfc, 0xe9, 0xa2, 0x3e, 0x5d, - 0xc8, 0xbf, 0x69, 0x54, 0x90, 0x8f, 0xb3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x89, 0x8f, 0xdb, - 0x92, 0xab, 0x03, 0x00, 0x00, + // 1035 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x53, 0x23, 0x45, + 0x14, 0x27, 0x90, 0x84, 0xe4, 0xcd, 0x90, 0x0c, 0x2d, 0xb2, 0x53, 0xa0, 0xc8, 0x66, 0x71, 0x65, + 0xb5, 0x8c, 0x92, 0xdd, 0xb2, 0xbc, 0x78, 0x08, 0x90, 0xaa, 0x8d, 0x40, 0xc0, 0x4e, 0x80, 0xd2, + 0x2a, 0x6b, 0x6a, 0x98, 0x79, 0x26, 0x53, 0x24, 0x33, 0x43, 0x77, 0x87, 0x98, 0xf5, 0x8b, 0x78, + 0xf1, 0xee, 0x47, 0xf1, 0xa8, 0x37, 0x8f, 0x16, 0x7e, 0x03, 0x3f, 0x81, 0x35, 0xdd, 0x9d, 0x90, + 0xc9, 0x52, 0x6a, 0x95, 0x7b, 0xa2, 0xdf, 0xef, 0xf7, 0xeb, 0xf7, 0xf2, 0xfe, 0xf5, 0x00, 0x84, + 0x7b, 0x3d, 0xf4, 0x87, 0xfd, 0x20, 0xec, 0xc6, 0x57, 0xd5, 0x98, 0x45, 0x22, 0x22, 0xe6, 0x2c, + 0xb6, 0x01, 0xb1, 0x3f, 0x61, 0x36, 0xd6, 0xba, 0x51, 0x37, 0x92, 0xc7, 0x4f, 0x92, 0x93, 0x46, + 0xcb, 0x6c, 0xc8, 0x85, 0x3c, 0x6a, 0xc0, 0x1c, 0xa0, 0x70, 0x27, 0x97, 0x2a, 0x47, 0xb0, 0x42, + 0xf1, 0x66, 0x88, 0x5c, 0xbc, 0x44, 0xd7, 0x47, 0x46, 0xde, 0x05, 0xf0, 0xfa, 0x43, 0x2e, 0x90, + 0x39, 0x81, 0x6f, 0x67, 0xb6, 0x33, 0xbb, 0x59, 0x5a, 0xd4, 0x48, 0xd3, 0x27, 0x9b, 0x50, 0xe4, + 0x18, 0xfa, 0x8a, 0x5d, 0x94, 0x6c, 0x41, 0x01, 0x4d, 0xbf, 0xf2, 0x0d, 0x94, 0x28, 0xf2, 0x38, + 0x0a, 0x39, 0xfe, 0x37, 0x6f, 0xcf, 0x20, 0x87, 0x8c, 0x45, 0x4c, 0x7a, 0x32, 0x6a, 0x6f, 0x55, + 0x53, 0x09, 0x37, 0x12, 0x8a, 0x2a, 0x45, 0xa5, 0x05, 0x39, 0x69, 0x93, 0x8f, 0x20, 0x2b, 0xc6, + 0x31, 0x4a, 0x67, 0xa5, 0xda, 0xa3, 0x07, 0xae, 0x74, 0xc6, 0x31, 0x52, 0x29, 0x22, 0x36, 0x2c, + 0x0f, 0x90, 0x73, 0xb7, 0x8b, 0x32, 0x44, 0x91, 0x4e, 0xcc, 0x0a, 0x05, 0xe3, 0xcc, 0x65, 0x22, + 0xf0, 0x82, 0xd8, 0x0d, 0x05, 0x21, 0x90, 0x0d, 0xdd, 0x81, 0xf2, 0x5a, 0xa4, 0xf2, 0x4c, 0x4a, + 0xb0, 0x38, 0x4d, 0x72, 0x31, 0xf0, 0xc9, 0x7b, 0x60, 0xf4, 0x03, 0x2e, 0x30, 0x74, 0x86, 0xac, + 0xcf, 0xed, 0xa5, 0xed, 0xa5, 0xdd, 0x22, 0x05, 0x05, 0x9d, 0xb3, 0x3e, 0xaf, 0x08, 0x78, 0xbb, + 0x2d, 0x22, 0x96, 0x24, 0xcf, 0xc4, 0x15, 0xba, 0x42, 0x97, 0x96, 0x3c, 0x87, 0x7c, 0x4f, 0x16, + 0x44, 0xfa, 0x37, 0x6a, 0x9b, 0xe9, 0x5f, 0x9d, 0xea, 0x00, 0xd5, 0x52, 0xf2, 0x14, 0x72, 0x5c, + 0xb8, 0x82, 0xeb, 0xe2, 0x58, 0x55, 0xd9, 0x6b, 0x19, 0xa0, 0x9d, 0xe0, 0x54, 0xd1, 0x95, 0x11, + 0xac, 0xcf, 0x47, 0x55, 0x3d, 0x20, 0x2f, 0xe6, 0xc2, 0xbe, 0x33, 0x1f, 0x76, 0xb6, 0x57, 0xd3, + 0xb8, 0x1f, 0x40, 0x79, 0xd2, 0xb3, 0x5b, 0x64, 0x3c, 0x88, 0x42, 0x5d, 0xbb, 0x92, 0x86, 0x2f, + 0x14, 0x5a, 0xf9, 0x2b, 0x0b, 0xeb, 0x14, 0xbb, 0x41, 0x14, 0xbe, 0xa9, 0x84, 0xf3, 0x4c, 0xba, + 0xd3, 0x19, 0x97, 0xaa, 0x7a, 0x54, 0x55, 0x10, 0xaa, 0x59, 0xb2, 0x03, 0xf9, 0xbe, 0x72, 0xbe, + 0x24, 0x75, 0xe6, 0x44, 0x77, 0x86, 0x89, 0x37, 0xc5, 0x91, 0x2a, 0x80, 0x1f, 0x8d, 0x42, 0x27, + 0x46, 0x64, 0xdc, 0xce, 0x6e, 0x2f, 0xed, 0x1a, 0xb5, 0xb2, 0xaa, 0x61, 0xa2, 0x53, 0x25, 0x2c, + 0x26, 0x92, 0xc4, 0xe4, 0x64, 0x0f, 0x56, 0x62, 0x0c, 0xfd, 0x20, 0xec, 0xea, 0x2b, 0x39, 0x79, + 0x25, 0xed, 0xdc, 0xd4, 0x12, 0x75, 0xe5, 0x09, 0xac, 0x5c, 0x8d, 0x05, 0x72, 0x67, 0xc4, 0x02, + 0x21, 0x30, 0xb4, 0xf3, 0x72, 0x56, 0x4c, 0x09, 0x5e, 0x2a, 0x2c, 0x59, 0x01, 0x25, 0x62, 0xe8, + 0xfa, 0xf6, 0xb2, 0x5a, 0x01, 0x89, 0x50, 0x74, 0x7d, 0xf2, 0x18, 0xcc, 0x6b, 0x1c, 0xdf, 0xbb, + 0x28, 0x48, 0x81, 0x91, 0x60, 0x13, 0x0f, 0x9b, 0x50, 0x94, 0x12, 0xe9, 0xa0, 0xa8, 0x76, 0x2e, + 0x01, 0xe4, 0xfd, 0x67, 0x60, 0xb9, 0x71, 0xcc, 0xa2, 0xef, 0x83, 0x81, 0x2b, 0xd0, 0xe1, 0xc1, + 0x2b, 0xb4, 0x41, 0x6a, 0xca, 0x33, 0x78, 0x3b, 0x78, 0x85, 0xa4, 0x0a, 0x85, 0x20, 0x14, 0xc8, + 0x6e, 0xdd, 0xbe, 0x6d, 0xca, 0xca, 0x11, 0x55, 0x8f, 0x4e, 0x30, 0xc0, 0xa6, 0x66, 0xe8, 0x54, + 0x33, 0xef, 0x3a, 0x09, 0x69, 0xaf, 0xbc, 0xe6, 0xfa, 0x08, 0xc7, 0x3c, 0x59, 0x1f, 0x81, 0x6c, + 0x60, 0x97, 0x24, 0x2d, 0xcf, 0x64, 0x0f, 0x8c, 0x9b, 0x21, 0xb2, 0xb1, 0xa3, 0xa6, 0xb8, 0x3c, + 0x3b, 0xc5, 0x5f, 0x25, 0x84, 0x6a, 0x01, 0xdc, 0x4c, 0xcf, 0x49, 0xa6, 0x5e, 0x3c, 0x74, 0x86, + 0x72, 0x61, 0x57, 0x55, 0xa6, 0x5e, 0x3c, 0x3c, 0x4f, 0xec, 0x2f, 0xb3, 0x05, 0xc3, 0x32, 0x2b, + 0x3f, 0x65, 0xe1, 0xd1, 0x6b, 0x43, 0xf7, 0xbf, 0xe6, 0x7d, 0x0f, 0x0c, 0xaf, 0xe7, 0x86, 0x5d, + 0x94, 0x7d, 0x4f, 0x6f, 0xdb, 0x81, 0x24, 0x64, 0xeb, 0xc1, 0x9b, 0x9e, 0xc9, 0x17, 0x50, 0x16, + 0xcc, 0x0d, 0xf9, 0x77, 0xc8, 0x9c, 0xd4, 0x28, 0xae, 0xe9, 0x82, 0x6a, 0xf2, 0x58, 0x45, 0x2a, + 0x89, 0x94, 0x9d, 0xa4, 0xa9, 0x46, 0x39, 0x79, 0x14, 0xb3, 0x2a, 0x4d, 0x05, 0x34, 0x7d, 0xf2, + 0x19, 0x98, 0x9a, 0xc4, 0x38, 0xf2, 0x7a, 0x76, 0x4e, 0x3f, 0x8d, 0xa9, 0x5d, 0x68, 0x24, 0x14, + 0x35, 0xd8, 0xbd, 0x41, 0x3e, 0x06, 0x43, 0xb8, 0xac, 0x8b, 0x42, 0xa5, 0x91, 0x7f, 0x60, 0x35, + 0x40, 0x09, 0x64, 0x0a, 0x8f, 0x21, 0x37, 0x40, 0xd6, 0x45, 0x39, 0x91, 0x46, 0xcd, 0x50, 0x3f, + 0xfc, 0x24, 0x81, 0xa8, 0x62, 0xc8, 0x0b, 0x30, 0x79, 0xdc, 0x0f, 0x84, 0xa3, 0xb7, 0xb2, 0x20, + 0x95, 0xab, 0xfa, 0x1d, 0x4a, 0x18, 0xbd, 0x98, 0x06, 0xbf, 0x37, 0xc8, 0xe7, 0x50, 0x9a, 0x29, + 0xa7, 0x73, 0x5b, 0x93, 0x23, 0x3b, 0x9d, 0xb5, 0xfb, 0x8a, 0x5e, 0xd4, 0xa8, 0xe9, 0xcd, 0x58, + 0xe4, 0x00, 0x2c, 0x3e, 0x0a, 0x84, 0xd7, 0x73, 0x46, 0x81, 0x08, 0x91, 0x73, 0xe4, 0x72, 0x94, + 0x8d, 0x9a, 0xad, 0xee, 0xee, 0xbb, 0xc2, 0xeb, 0xb5, 0xa5, 0xe4, 0x52, 0x29, 0x68, 0x99, 0xcf, + 0x9a, 0xc8, 0x3f, 0xfc, 0x01, 0x8a, 0xd3, 0x8f, 0x00, 0xc9, 0xc3, 0xe2, 0xe9, 0x91, 0xb5, 0x40, + 0x0c, 0x58, 0x3e, 0x6f, 0x1d, 0xb5, 0x4e, 0x2f, 0x5b, 0x56, 0x86, 0xac, 0x81, 0xd5, 0x3a, 0xed, + 0x38, 0xfb, 0xa7, 0xa7, 0x9d, 0x76, 0x87, 0xd6, 0xcf, 0xce, 0x1a, 0x87, 0xd6, 0x22, 0xb1, 0x61, + 0xad, 0x7e, 0x4c, 0x1b, 0xf5, 0xc3, 0xaf, 0xd3, 0xcc, 0x12, 0x59, 0x85, 0x95, 0x66, 0xeb, 0xa2, + 0x7e, 0xdc, 0x3c, 0x74, 0x2e, 0xea, 0xc7, 0xe7, 0x0d, 0x2b, 0x4b, 0xd6, 0x81, 0x1c, 0x1c, 0x9f, + 0xb7, 0x3b, 0x0d, 0xea, 0x9c, 0x34, 0xdb, 0x27, 0xf5, 0xce, 0xc1, 0xcb, 0xc6, 0xa1, 0x95, 0xab, + 0xfd, 0x96, 0x01, 0x68, 0x4f, 0x47, 0x8e, 0x7c, 0x0b, 0xa5, 0xf4, 0xcb, 0x4c, 0x9e, 0xa4, 0x27, + 0xf2, 0xc1, 0xaf, 0xc5, 0xc6, 0xce, 0x3f, 0x8b, 0xd4, 0x10, 0x57, 0x16, 0x88, 0x0f, 0xe5, 0xb9, + 0x4d, 0x20, 0x3b, 0xf3, 0x13, 0xff, 0xd0, 0xeb, 0xbc, 0xf1, 0xfe, 0xbf, 0xa8, 0x26, 0x11, 0x76, + 0x33, 0x9f, 0x66, 0xf6, 0x9f, 0xfe, 0xfe, 0x73, 0x21, 0xf3, 0xcb, 0xdd, 0x56, 0xe6, 0xd7, 0xbb, + 0xad, 0xcc, 0x1f, 0x77, 0x5b, 0x99, 0x1f, 0xff, 0xdc, 0x5a, 0x00, 0x2b, 0x62, 0xdd, 0xaa, 0x08, + 0xae, 0x6f, 0xab, 0xd7, 0xb7, 0xf2, 0x3f, 0x89, 0xab, 0xbc, 0xfc, 0xf3, 0xfc, 0xef, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x9d, 0xf1, 0x38, 0x1a, 0xb5, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -474,6 +823,7 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type SchedulingClient interface { StoreHeartbeat(ctx context.Context, in *StoreHeartbeatRequest, opts ...grpc.CallOption) (*StoreHeartbeatResponse, error) + RegionHeartbeat(ctx context.Context, opts ...grpc.CallOption) (Scheduling_RegionHeartbeatClient, error) } type schedulingClient struct { @@ -493,9 +843,41 @@ func (c *schedulingClient) StoreHeartbeat(ctx context.Context, in *StoreHeartbea return out, nil } +func (c *schedulingClient) RegionHeartbeat(ctx context.Context, opts ...grpc.CallOption) (Scheduling_RegionHeartbeatClient, error) { + stream, err := c.cc.NewStream(ctx, &_Scheduling_serviceDesc.Streams[0], "/schedulingpb.Scheduling/RegionHeartbeat", opts...) + if err != nil { + return nil, err + } + x := &schedulingRegionHeartbeatClient{stream} + return x, nil +} + +type Scheduling_RegionHeartbeatClient interface { + Send(*RegionHeartbeatRequest) error + Recv() (*RegionHeartbeatResponse, error) + grpc.ClientStream +} + +type schedulingRegionHeartbeatClient struct { + grpc.ClientStream +} + +func (x *schedulingRegionHeartbeatClient) Send(m *RegionHeartbeatRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *schedulingRegionHeartbeatClient) Recv() (*RegionHeartbeatResponse, error) { + m := new(RegionHeartbeatResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // SchedulingServer is the server API for Scheduling service. type SchedulingServer interface { StoreHeartbeat(context.Context, *StoreHeartbeatRequest) (*StoreHeartbeatResponse, error) + RegionHeartbeat(Scheduling_RegionHeartbeatServer) error } // UnimplementedSchedulingServer can be embedded to have forward compatible implementations. @@ -505,6 +887,9 @@ type UnimplementedSchedulingServer struct { func (*UnimplementedSchedulingServer) StoreHeartbeat(ctx context.Context, req *StoreHeartbeatRequest) (*StoreHeartbeatResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StoreHeartbeat not implemented") } +func (*UnimplementedSchedulingServer) RegionHeartbeat(srv Scheduling_RegionHeartbeatServer) error { + return status.Errorf(codes.Unimplemented, "method RegionHeartbeat not implemented") +} func RegisterSchedulingServer(s *grpc.Server, srv SchedulingServer) { s.RegisterService(&_Scheduling_serviceDesc, srv) @@ -528,6 +913,32 @@ func _Scheduling_StoreHeartbeat_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _Scheduling_RegionHeartbeat_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(SchedulingServer).RegionHeartbeat(&schedulingRegionHeartbeatServer{stream}) +} + +type Scheduling_RegionHeartbeatServer interface { + Send(*RegionHeartbeatResponse) error + Recv() (*RegionHeartbeatRequest, error) + grpc.ServerStream +} + +type schedulingRegionHeartbeatServer struct { + grpc.ServerStream +} + +func (x *schedulingRegionHeartbeatServer) Send(m *RegionHeartbeatResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *schedulingRegionHeartbeatServer) Recv() (*RegionHeartbeatRequest, error) { + m := new(RegionHeartbeatRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + var _Scheduling_serviceDesc = grpc.ServiceDesc{ ServiceName: "schedulingpb.Scheduling", HandlerType: (*SchedulingServer)(nil), @@ -537,7 +948,14 @@ var _Scheduling_serviceDesc = grpc.ServiceDesc{ Handler: _Scheduling_StoreHeartbeat_Handler, }, }, - Streams: []grpc.StreamDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "RegionHeartbeat", + Handler: _Scheduling_RegionHeartbeat_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, Metadata: "schedulingpb.proto", } @@ -806,57 +1224,354 @@ func (m *StoreHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func encodeVarintSchedulingpb(dAtA []byte, offset int, v uint64) int { - offset -= sovSchedulingpb(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *RegionHeartbeatRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - dAtA[offset] = uint8(v) - return base + return dAtA[:n], nil } -func (m *RequestHeader) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.ClusterId != 0 { - n += 1 + sovSchedulingpb(uint64(m.ClusterId)) - } - if m.SenderId != 0 { - n += 1 + sovSchedulingpb(uint64(m.SenderId)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n + +func (m *RegionHeartbeatRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ResponseHeader) Size() (n int) { - if m == nil { - return 0 - } +func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - if m.ClusterId != 0 { - n += 1 + sovSchedulingpb(uint64(m.ClusterId)) - } - if m.Error != nil { - l = m.Error.Size() - n += 1 + l + sovSchedulingpb(uint64(l)) - } if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) } - return n -} - -func (m *Error) Size() (n int) { - if m == nil { - return 0 + if m.CpuUsage != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.CpuUsage)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } + if m.QueryStats != nil { + { + size, err := m.QueryStats.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + if m.Term != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.Term)) + i-- + dAtA[i] = 0x70 + } + if m.ApproximateKeys != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ApproximateKeys)) + i-- + dAtA[i] = 0x68 + } + if m.Interval != nil { + { + size, err := m.Interval.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.ApproximateSize != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ApproximateSize)) + i-- + dAtA[i] = 0x50 + } + if m.KeysRead != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.KeysRead)) + i-- + dAtA[i] = 0x48 + } + if m.KeysWritten != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.KeysWritten)) + i-- + dAtA[i] = 0x40 + } + if m.BytesRead != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.BytesRead)) + i-- + dAtA[i] = 0x38 + } + if m.BytesWritten != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.BytesWritten)) + i-- + dAtA[i] = 0x30 + } + if len(m.PendingPeers) > 0 { + for iNdEx := len(m.PendingPeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PendingPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if len(m.DownPeers) > 0 { + for iNdEx := len(m.DownPeers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DownPeers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.Leader != nil { + { + size, err := m.Leader.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Region != nil { + { + size, err := m.Region.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RegionHeartbeatResponse) 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 *RegionHeartbeatResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RegionHeartbeatResponse) 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.SwitchWitnesses != nil { + { + size, err := m.SwitchWitnesses.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + if m.ChangePeerV2 != nil { + { + size, err := m.ChangePeerV2.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.SplitRegion != nil { + { + size, err := m.SplitRegion.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Merge != nil { + { + size, err := m.Merge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.TargetPeer != nil { + { + size, err := m.TargetPeer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.RegionEpoch != nil { + { + size, err := m.RegionEpoch.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.RegionId != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.RegionId)) + i-- + dAtA[i] = 0x20 + } + if m.TransferLeader != nil { + { + size, err := m.TransferLeader.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ChangePeer != nil { + { + size, err := m.ChangePeer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintSchedulingpb(dAtA []byte, offset int, v uint64) int { + offset -= sovSchedulingpb(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RequestHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovSchedulingpb(uint64(m.ClusterId)) + } + if m.SenderId != 0 { + n += 1 + sovSchedulingpb(uint64(m.SenderId)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ResponseHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterId != 0 { + n += 1 + sovSchedulingpb(uint64(m.ClusterId)) + } + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *Error) Size() (n int) { + if m == nil { + return 0 } var l int _ = l @@ -938,46 +1653,980 @@ func (m *StoreHeartbeatResponse) Size() (n int) { return n } -func sovSchedulingpb(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozSchedulingpb(x uint64) (n int) { - return sovSchedulingpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *RequestHeader) 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 ErrIntOverflowSchedulingpb +func (m *RegionHeartbeatRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.Region != nil { + l = m.Region.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.Leader != nil { + l = m.Leader.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if len(m.DownPeers) > 0 { + for _, e := range m.DownPeers { + l = e.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + } + if len(m.PendingPeers) > 0 { + for _, e := range m.PendingPeers { + l = e.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + } + if m.BytesWritten != 0 { + n += 1 + sovSchedulingpb(uint64(m.BytesWritten)) + } + if m.BytesRead != 0 { + n += 1 + sovSchedulingpb(uint64(m.BytesRead)) + } + if m.KeysWritten != 0 { + n += 1 + sovSchedulingpb(uint64(m.KeysWritten)) + } + if m.KeysRead != 0 { + n += 1 + sovSchedulingpb(uint64(m.KeysRead)) + } + if m.ApproximateSize != 0 { + n += 1 + sovSchedulingpb(uint64(m.ApproximateSize)) + } + if m.Interval != nil { + l = m.Interval.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.ApproximateKeys != 0 { + n += 1 + sovSchedulingpb(uint64(m.ApproximateKeys)) + } + if m.Term != 0 { + n += 1 + sovSchedulingpb(uint64(m.Term)) + } + if m.QueryStats != nil { + l = m.QueryStats.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.CpuUsage != 0 { + n += 2 + sovSchedulingpb(uint64(m.CpuUsage)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RegionHeartbeatResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.ChangePeer != nil { + l = m.ChangePeer.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.TransferLeader != nil { + l = m.TransferLeader.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.RegionId != 0 { + n += 1 + sovSchedulingpb(uint64(m.RegionId)) + } + if m.RegionEpoch != nil { + l = m.RegionEpoch.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.TargetPeer != nil { + l = m.TargetPeer.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.Merge != nil { + l = m.Merge.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.SplitRegion != nil { + l = m.SplitRegion.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.ChangePeerV2 != nil { + l = m.ChangePeerV2.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.SwitchWitnesses != nil { + l = m.SwitchWitnesses.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovSchedulingpb(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozSchedulingpb(x uint64) (n int) { + return sovSchedulingpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RequestHeader) 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 ErrIntOverflowSchedulingpb + } + 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: RequestHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SenderId", wireType) + } + m.SenderId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SenderId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *ResponseHeader) 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 ErrIntOverflowSchedulingpb + } + 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: ResponseHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + } + m.ClusterId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ClusterId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &Error{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *Error) 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 ErrIntOverflowSchedulingpb + } + 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: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= ErrorType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *Participant) 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 ErrIntOverflowSchedulingpb + } + 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: Participant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Participant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListenUrls", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ListenUrls = append(m.ListenUrls, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *StoreHeartbeatRequest) 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 ErrIntOverflowSchedulingpb + } + 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: StoreHeartbeatRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StoreHeartbeatRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Stats == nil { + m.Stats = &pdpb.StoreStats{} + } + if err := m.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *StoreHeartbeatResponse) 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 ErrIntOverflowSchedulingpb + } + 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: StoreHeartbeatResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StoreHeartbeatResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ClusterVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSchedulingpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSchedulingpb + } + 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 *RegionHeartbeatRequest) 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 ErrIntOverflowSchedulingpb + } + 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: RegionHeartbeatRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RegionHeartbeatRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Header == nil { + m.Header = &RequestHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Region == nil { + m.Region = &metapb.Region{} + } + if err := m.Region.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Leader", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Leader == nil { + m.Leader = &metapb.Peer{} + } + if err := m.Leader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DownPeers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.DownPeers = append(m.DownPeers, &pdpb.PeerStats{}) + if err := m.DownPeers[len(m.DownPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RequestHeader: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RequestHeader: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPeers", wireType) } - m.ClusterId = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -987,16 +2636,31 @@ func (m *RequestHeader) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ClusterId |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 2: + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PendingPeers = append(m.PendingPeers, &metapb.Peer{}) + if err := m.PendingPeers[len(m.PendingPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SenderId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BytesWritten", wireType) } - m.SenderId = 0 + m.BytesWritten = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1006,67 +2670,73 @@ func (m *RequestHeader) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.SenderId |= uint64(b&0x7F) << shift + m.BytesWritten |= uint64(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipSchedulingpb(dAtA[iNdEx:]) - if err != nil { - return err + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BytesRead", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthSchedulingpb + m.BytesRead = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BytesRead |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeysWritten", wireType) } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ResponseHeader) 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 ErrIntOverflowSchedulingpb + m.KeysWritten = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeysWritten |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KeysRead", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.KeysRead = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.KeysRead |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ResponseHeader: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ResponseHeader: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 10: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ApproximateSize", wireType) } - m.ClusterId = 0 + m.ApproximateSize = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1076,14 +2746,14 @@ func (m *ResponseHeader) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ClusterId |= uint64(b&0x7F) << shift + m.ApproximateSize |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 2: + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1110,69 +2780,37 @@ func (m *ResponseHeader) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Error == nil { - m.Error = &Error{} + if m.Interval == nil { + m.Interval = &pdpb.TimeInterval{} } - if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Interval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipSchedulingpb(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthSchedulingpb - } - 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 *Error) 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 ErrIntOverflowSchedulingpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ApproximateKeys", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.ApproximateKeys = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ApproximateKeys |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Error: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 14: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType) } - m.Type = 0 + m.Term = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1182,16 +2820,52 @@ func (m *Error) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Type |= ErrorType(b&0x7F) << shift + m.Term |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 2: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field QueryStats", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.QueryStats == nil { + m.QueryStats = &pdpb.QueryStats{} + } + if err := m.QueryStats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CpuUsage", wireType) } - var stringLen uint64 + m.CpuUsage = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1201,24 +2875,11 @@ func (m *Error) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.CpuUsage |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthSchedulingpb - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthSchedulingpb - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipSchedulingpb(dAtA[iNdEx:]) @@ -1241,7 +2902,7 @@ func (m *Error) Unmarshal(dAtA []byte) error { } return nil } -func (m *Participant) Unmarshal(dAtA []byte) error { +func (m *RegionHeartbeatResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -1264,17 +2925,17 @@ func (m *Participant) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Participant: wiretype end group for non-group") + return fmt.Errorf("proto: RegionHeartbeatResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Participant: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RegionHeartbeatResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1284,29 +2945,33 @@ func (m *Participant) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthSchedulingpb } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthSchedulingpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if m.Header == nil { + m.Header = &ResponseHeader{} + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChangePeer", wireType) } - m.Id = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1316,16 +2981,33 @@ func (m *Participant) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Id |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ChangePeer == nil { + m.ChangePeer = &pdpb.ChangePeer{} + } + if err := m.ChangePeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListenUrls", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TransferLeader", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1335,78 +3017,86 @@ func (m *Participant) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthSchedulingpb } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthSchedulingpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.ListenUrls = append(m.ListenUrls, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipSchedulingpb(dAtA[iNdEx:]) - if err != nil { + if m.TransferLeader == nil { + m.TransferLeader = &pdpb.TransferLeader{} + } + if err := m.TransferLeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthSchedulingpb + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionId", wireType) } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + m.RegionId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RegionId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StoreHeartbeatRequest) 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 ErrIntOverflowSchedulingpb + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionEpoch", wireType) } - if iNdEx >= l { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.RegionEpoch == nil { + m.RegionEpoch = &metapb.RegionEpoch{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StoreHeartbeatRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StoreHeartbeatRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := m.RegionEpoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetPeer", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1433,16 +3123,16 @@ func (m *StoreHeartbeatRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Header == nil { - m.Header = &RequestHeader{} + if m.TargetPeer == nil { + m.TargetPeer = &metapb.Peer{} } - if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TargetPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stats", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Merge", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1469,67 +3159,52 @@ func (m *StoreHeartbeatRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Stats == nil { - m.Stats = &pdpb.StoreStats{} + if m.Merge == nil { + m.Merge = &pdpb.Merge{} } - if err := m.Stats.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Merge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipSchedulingpb(dAtA[iNdEx:]) - if err != nil { - return err + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SplitRegion", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthSchedulingpb + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + if msglen < 0 { + return ErrInvalidLengthSchedulingpb } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StoreHeartbeatResponse) 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 ErrIntOverflowSchedulingpb + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if m.SplitRegion == nil { + m.SplitRegion = &pdpb.SplitRegion{} } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StoreHeartbeatResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StoreHeartbeatResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + if err := m.SplitRegion.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChangePeerV2", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -1556,18 +3231,18 @@ func (m *StoreHeartbeatResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Header == nil { - m.Header = &ResponseHeader{} + if m.ChangePeerV2 == nil { + m.ChangePeerV2 = &pdpb.ChangePeerV2{} } - if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ChangePeerV2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterVersion", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwitchWitnesses", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -1577,23 +3252,27 @@ func (m *StoreHeartbeatResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthSchedulingpb } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthSchedulingpb } if postIndex > l { return io.ErrUnexpectedEOF } - m.ClusterVersion = string(dAtA[iNdEx:postIndex]) + if m.SwitchWitnesses == nil { + m.SwitchWitnesses = &pdpb.BatchSwitchWitness{} + } + if err := m.SwitchWitnesses.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex diff --git a/proto/schedulingpb.proto b/proto/schedulingpb.proto index 37b768e16..d22343db0 100644 --- a/proto/schedulingpb.proto +++ b/proto/schedulingpb.proto @@ -4,6 +4,7 @@ package schedulingpb; import "pdpb.proto"; import "gogoproto/gogo.proto"; import "rustproto.proto"; +import "metapb.proto"; option (gogoproto.sizer_all) = true; option (gogoproto.marshaler_all) = true; @@ -14,6 +15,8 @@ option java_package = "org.tikv.kvproto"; service Scheduling { rpc StoreHeartbeat(StoreHeartbeatRequest) returns (StoreHeartbeatResponse) {} + + rpc RegionHeartbeat(stream RegionHeartbeatRequest) returns (stream RegionHeartbeatResponse) {} } message RequestHeader { @@ -62,3 +65,76 @@ message StoreHeartbeatResponse { ResponseHeader header = 1; string cluster_version = 2; } + + +message RegionHeartbeatRequest { + RequestHeader header = 1; + + metapb.Region region = 2; + // Leader Peer sending the heartbeat. + metapb.Peer leader = 3; + // Leader considers that these peers are down. + repeated pdpb.PeerStats down_peers = 4; + // Pending peers are the peers that the leader can't consider as + // working followers. + repeated metapb.Peer pending_peers = 5; + // Bytes read/written during this period. + uint64 bytes_written = 6; + uint64 bytes_read = 7; + // Keys read/written during this period. + uint64 keys_written = 8; + uint64 keys_read = 9; + // Approximate region size. + uint64 approximate_size = 10; + reserved 11; + // Actually reported time interval + pdpb.TimeInterval interval = 12; + // Approximate number of keys. + uint64 approximate_keys = 13; + // Term is the term of raft group. + uint64 term = 14; + // QueryStats reported write query stats, and there are read query stats in store heartbeat + pdpb.QueryStats query_stats = 15; + // cpu_usage is the CPU time usage of the leader region since the last heartbeat, + // which is calculated by cpu_time_delta/heartbeat_reported_interval. + uint64 cpu_usage = 17; +} + + +message RegionHeartbeatResponse { + ResponseHeader header = 1; + + // Notice, Pd only allows handling reported epoch >= current pd's. + // Leader peer reports region status with RegionHeartbeatRequest + // to pd regularly, pd will determine whether this region + // should do ChangePeer or not. + // E,g, max peer number is 3, region A, first only peer 1 in A. + // 1. Pd region state -> Peers (1), ConfVer (1). + // 2. Leader peer 1 reports region state to pd, pd finds the + // peer number is < 3, so first changes its current region + // state -> Peers (1, 2), ConfVer (1), and returns ChangePeer Adding 2. + // 3. Leader does ChangePeer, then reports Peers (1, 2), ConfVer (2), + // pd updates its state -> Peers (1, 2), ConfVer (2). + // 4. Leader may report old Peers (1), ConfVer (1) to pd before ConfChange + // finished, pd stills responses ChangePeer Adding 2, of course, we must + // guarantee the second ChangePeer can't be applied in TiKV. + pdpb.ChangePeer change_peer = 2; + // Pd can return transfer_leader to let TiKV does leader transfer itself. + pdpb.TransferLeader transfer_leader = 3; + // ID of the region + uint64 region_id = 4; + metapb.RegionEpoch region_epoch = 5; + // Leader of the region at the moment of the corresponding request was made. + metapb.Peer target_peer = 6; + pdpb.Merge merge = 7; + // PD sends split_region to let TiKV split a region into two regions. + pdpb.SplitRegion split_region = 8; + // Multiple change peer operations atomically. + // Note: PD can use both ChangePeer and ChangePeerV2 at the same time + // (not in the same RegionHeartbeatResponse). + // Now, PD use ChangePeerV2 in following scenarios: + // 1. replacing peers + // 2. demoting voter directly + pdpb. ChangePeerV2 change_peer_v2 = 9; + pdpb.BatchSwitchWitness switch_witnesses = 10; +} diff --git a/scripts/proto.lock b/scripts/proto.lock index 3454ccaaf..a5eafbdf7 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -18894,6 +18894,146 @@ "type": "string" } ] + }, + { + "name": "RegionHeartbeatRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 3, + "name": "leader", + "type": "metapb.Peer" + }, + { + "id": 4, + "name": "down_peers", + "type": "pdpb.PeerStats", + "is_repeated": true + }, + { + "id": 5, + "name": "pending_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 6, + "name": "bytes_written", + "type": "uint64" + }, + { + "id": 7, + "name": "bytes_read", + "type": "uint64" + }, + { + "id": 8, + "name": "keys_written", + "type": "uint64" + }, + { + "id": 9, + "name": "keys_read", + "type": "uint64" + }, + { + "id": 10, + "name": "approximate_size", + "type": "uint64" + }, + { + "id": 12, + "name": "interval", + "type": "pdpb.TimeInterval" + }, + { + "id": 13, + "name": "approximate_keys", + "type": "uint64" + }, + { + "id": 14, + "name": "term", + "type": "uint64" + }, + { + "id": 15, + "name": "query_stats", + "type": "pdpb.QueryStats" + }, + { + "id": 17, + "name": "cpu_usage", + "type": "uint64" + } + ], + "reserved_ids": [ + 11 + ] + }, + { + "name": "RegionHeartbeatResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "change_peer", + "type": "pdpb.ChangePeer" + }, + { + "id": 3, + "name": "transfer_leader", + "type": "pdpb.TransferLeader" + }, + { + "id": 4, + "name": "region_id", + "type": "uint64" + }, + { + "id": 5, + "name": "region_epoch", + "type": "metapb.RegionEpoch" + }, + { + "id": 6, + "name": "target_peer", + "type": "metapb.Peer" + }, + { + "id": 7, + "name": "merge", + "type": "pdpb.Merge" + }, + { + "id": 8, + "name": "split_region", + "type": "pdpb.SplitRegion" + }, + { + "id": 9, + "name": "change_peer_v2", + "type": "pdpb.ChangePeerV2" + }, + { + "id": 10, + "name": "switch_witnesses", + "type": "pdpb.BatchSwitchWitness" + } + ] } ], "services": [ @@ -18904,6 +19044,13 @@ "name": "StoreHeartbeat", "in_type": "StoreHeartbeatRequest", "out_type": "StoreHeartbeatResponse" + }, + { + "name": "RegionHeartbeat", + "in_type": "RegionHeartbeatRequest", + "out_type": "RegionHeartbeatResponse", + "in_streamed": true, + "out_streamed": true } ] } @@ -18917,6 +19064,9 @@ }, { "path": "rustproto.proto" + }, + { + "path": "metapb.proto" } ], "package": { From 3215a502e9a1bd63d0199e378375951428118ca0 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Thu, 14 Sep 2023 14:30:02 +0800 Subject: [PATCH 3/8] tiny fix (#1186) Signed-off-by: Ryan Leung --- pkg/schedulingpb/schedulingpb.pb.go | 136 ++++++++++++++-------------- proto/schedulingpb.proto | 4 +- scripts/proto.lock | 2 +- 3 files changed, 71 insertions(+), 71 deletions(-) diff --git a/pkg/schedulingpb/schedulingpb.pb.go b/pkg/schedulingpb/schedulingpb.pb.go index 0b0b04202..040234d54 100644 --- a/pkg/schedulingpb/schedulingpb.pb.go +++ b/pkg/schedulingpb/schedulingpb.pb.go @@ -440,7 +440,7 @@ type RegionHeartbeatRequest struct { QueryStats *pdpb.QueryStats `protobuf:"bytes,15,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"` // cpu_usage is the CPU time usage of the leader region since the last heartbeat, // which is calculated by cpu_time_delta/heartbeat_reported_interval. - CpuUsage uint64 `protobuf:"varint,17,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` + CpuUsage uint64 `protobuf:"varint,16,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -743,71 +743,71 @@ func init() { proto.RegisterFile("schedulingpb.proto", fileDescriptor_b4bfd49510 var fileDescriptor_b4bfd49510230d67 = []byte{ // 1035 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x53, 0x23, 0x45, - 0x14, 0x27, 0x90, 0x84, 0xe4, 0xcd, 0x90, 0x0c, 0x2d, 0xb2, 0x53, 0xa0, 0xc8, 0x66, 0x71, 0x65, - 0xb5, 0x8c, 0x92, 0xdd, 0xb2, 0xbc, 0x78, 0x08, 0x90, 0xaa, 0x8d, 0x40, 0xc0, 0x4e, 0x80, 0xd2, - 0x2a, 0x6b, 0x6a, 0x98, 0x79, 0x26, 0x53, 0x24, 0x33, 0x43, 0x77, 0x87, 0x98, 0xf5, 0x8b, 0x78, - 0xf1, 0xee, 0x47, 0xf1, 0xa8, 0x37, 0x8f, 0x16, 0x7e, 0x03, 0x3f, 0x81, 0x35, 0xdd, 0x9d, 0x90, - 0xc9, 0x52, 0x6a, 0x95, 0x7b, 0xa2, 0xdf, 0xef, 0xf7, 0xeb, 0xf7, 0xf2, 0xfe, 0xf5, 0x00, 0x84, - 0x7b, 0x3d, 0xf4, 0x87, 0xfd, 0x20, 0xec, 0xc6, 0x57, 0xd5, 0x98, 0x45, 0x22, 0x22, 0xe6, 0x2c, - 0xb6, 0x01, 0xb1, 0x3f, 0x61, 0x36, 0xd6, 0xba, 0x51, 0x37, 0x92, 0xc7, 0x4f, 0x92, 0x93, 0x46, - 0xcb, 0x6c, 0xc8, 0x85, 0x3c, 0x6a, 0xc0, 0x1c, 0xa0, 0x70, 0x27, 0x97, 0x2a, 0x47, 0xb0, 0x42, - 0xf1, 0x66, 0x88, 0x5c, 0xbc, 0x44, 0xd7, 0x47, 0x46, 0xde, 0x05, 0xf0, 0xfa, 0x43, 0x2e, 0x90, - 0x39, 0x81, 0x6f, 0x67, 0xb6, 0x33, 0xbb, 0x59, 0x5a, 0xd4, 0x48, 0xd3, 0x27, 0x9b, 0x50, 0xe4, - 0x18, 0xfa, 0x8a, 0x5d, 0x94, 0x6c, 0x41, 0x01, 0x4d, 0xbf, 0xf2, 0x0d, 0x94, 0x28, 0xf2, 0x38, - 0x0a, 0x39, 0xfe, 0x37, 0x6f, 0xcf, 0x20, 0x87, 0x8c, 0x45, 0x4c, 0x7a, 0x32, 0x6a, 0x6f, 0x55, - 0x53, 0x09, 0x37, 0x12, 0x8a, 0x2a, 0x45, 0xa5, 0x05, 0x39, 0x69, 0x93, 0x8f, 0x20, 0x2b, 0xc6, - 0x31, 0x4a, 0x67, 0xa5, 0xda, 0xa3, 0x07, 0xae, 0x74, 0xc6, 0x31, 0x52, 0x29, 0x22, 0x36, 0x2c, - 0x0f, 0x90, 0x73, 0xb7, 0x8b, 0x32, 0x44, 0x91, 0x4e, 0xcc, 0x0a, 0x05, 0xe3, 0xcc, 0x65, 0x22, - 0xf0, 0x82, 0xd8, 0x0d, 0x05, 0x21, 0x90, 0x0d, 0xdd, 0x81, 0xf2, 0x5a, 0xa4, 0xf2, 0x4c, 0x4a, - 0xb0, 0x38, 0x4d, 0x72, 0x31, 0xf0, 0xc9, 0x7b, 0x60, 0xf4, 0x03, 0x2e, 0x30, 0x74, 0x86, 0xac, - 0xcf, 0xed, 0xa5, 0xed, 0xa5, 0xdd, 0x22, 0x05, 0x05, 0x9d, 0xb3, 0x3e, 0xaf, 0x08, 0x78, 0xbb, - 0x2d, 0x22, 0x96, 0x24, 0xcf, 0xc4, 0x15, 0xba, 0x42, 0x97, 0x96, 0x3c, 0x87, 0x7c, 0x4f, 0x16, - 0x44, 0xfa, 0x37, 0x6a, 0x9b, 0xe9, 0x5f, 0x9d, 0xea, 0x00, 0xd5, 0x52, 0xf2, 0x14, 0x72, 0x5c, - 0xb8, 0x82, 0xeb, 0xe2, 0x58, 0x55, 0xd9, 0x6b, 0x19, 0xa0, 0x9d, 0xe0, 0x54, 0xd1, 0x95, 0x11, - 0xac, 0xcf, 0x47, 0x55, 0x3d, 0x20, 0x2f, 0xe6, 0xc2, 0xbe, 0x33, 0x1f, 0x76, 0xb6, 0x57, 0xd3, - 0xb8, 0x1f, 0x40, 0x79, 0xd2, 0xb3, 0x5b, 0x64, 0x3c, 0x88, 0x42, 0x5d, 0xbb, 0x92, 0x86, 0x2f, - 0x14, 0x5a, 0xf9, 0x2b, 0x0b, 0xeb, 0x14, 0xbb, 0x41, 0x14, 0xbe, 0xa9, 0x84, 0xf3, 0x4c, 0xba, - 0xd3, 0x19, 0x97, 0xaa, 0x7a, 0x54, 0x55, 0x10, 0xaa, 0x59, 0xb2, 0x03, 0xf9, 0xbe, 0x72, 0xbe, - 0x24, 0x75, 0xe6, 0x44, 0x77, 0x86, 0x89, 0x37, 0xc5, 0x91, 0x2a, 0x80, 0x1f, 0x8d, 0x42, 0x27, - 0x46, 0x64, 0xdc, 0xce, 0x6e, 0x2f, 0xed, 0x1a, 0xb5, 0xb2, 0xaa, 0x61, 0xa2, 0x53, 0x25, 0x2c, - 0x26, 0x92, 0xc4, 0xe4, 0x64, 0x0f, 0x56, 0x62, 0x0c, 0xfd, 0x20, 0xec, 0xea, 0x2b, 0x39, 0x79, - 0x25, 0xed, 0xdc, 0xd4, 0x12, 0x75, 0xe5, 0x09, 0xac, 0x5c, 0x8d, 0x05, 0x72, 0x67, 0xc4, 0x02, - 0x21, 0x30, 0xb4, 0xf3, 0x72, 0x56, 0x4c, 0x09, 0x5e, 0x2a, 0x2c, 0x59, 0x01, 0x25, 0x62, 0xe8, - 0xfa, 0xf6, 0xb2, 0x5a, 0x01, 0x89, 0x50, 0x74, 0x7d, 0xf2, 0x18, 0xcc, 0x6b, 0x1c, 0xdf, 0xbb, - 0x28, 0x48, 0x81, 0x91, 0x60, 0x13, 0x0f, 0x9b, 0x50, 0x94, 0x12, 0xe9, 0xa0, 0xa8, 0x76, 0x2e, - 0x01, 0xe4, 0xfd, 0x67, 0x60, 0xb9, 0x71, 0xcc, 0xa2, 0xef, 0x83, 0x81, 0x2b, 0xd0, 0xe1, 0xc1, - 0x2b, 0xb4, 0x41, 0x6a, 0xca, 0x33, 0x78, 0x3b, 0x78, 0x85, 0xa4, 0x0a, 0x85, 0x20, 0x14, 0xc8, - 0x6e, 0xdd, 0xbe, 0x6d, 0xca, 0xca, 0x11, 0x55, 0x8f, 0x4e, 0x30, 0xc0, 0xa6, 0x66, 0xe8, 0x54, - 0x33, 0xef, 0x3a, 0x09, 0x69, 0xaf, 0xbc, 0xe6, 0xfa, 0x08, 0xc7, 0x3c, 0x59, 0x1f, 0x81, 0x6c, - 0x60, 0x97, 0x24, 0x2d, 0xcf, 0x64, 0x0f, 0x8c, 0x9b, 0x21, 0xb2, 0xb1, 0xa3, 0xa6, 0xb8, 0x3c, - 0x3b, 0xc5, 0x5f, 0x25, 0x84, 0x6a, 0x01, 0xdc, 0x4c, 0xcf, 0x49, 0xa6, 0x5e, 0x3c, 0x74, 0x86, - 0x72, 0x61, 0x57, 0x55, 0xa6, 0x5e, 0x3c, 0x3c, 0x4f, 0xec, 0x2f, 0xb3, 0x05, 0xc3, 0x32, 0x2b, - 0x3f, 0x65, 0xe1, 0xd1, 0x6b, 0x43, 0xf7, 0xbf, 0xe6, 0x7d, 0x0f, 0x0c, 0xaf, 0xe7, 0x86, 0x5d, - 0x94, 0x7d, 0x4f, 0x6f, 0xdb, 0x81, 0x24, 0x64, 0xeb, 0xc1, 0x9b, 0x9e, 0xc9, 0x17, 0x50, 0x16, - 0xcc, 0x0d, 0xf9, 0x77, 0xc8, 0x9c, 0xd4, 0x28, 0xae, 0xe9, 0x82, 0x6a, 0xf2, 0x58, 0x45, 0x2a, - 0x89, 0x94, 0x9d, 0xa4, 0xa9, 0x46, 0x39, 0x79, 0x14, 0xb3, 0x2a, 0x4d, 0x05, 0x34, 0x7d, 0xf2, - 0x19, 0x98, 0x9a, 0xc4, 0x38, 0xf2, 0x7a, 0x76, 0x4e, 0x3f, 0x8d, 0xa9, 0x5d, 0x68, 0x24, 0x14, - 0x35, 0xd8, 0xbd, 0x41, 0x3e, 0x06, 0x43, 0xb8, 0xac, 0x8b, 0x42, 0xa5, 0x91, 0x7f, 0x60, 0x35, - 0x40, 0x09, 0x64, 0x0a, 0x8f, 0x21, 0x37, 0x40, 0xd6, 0x45, 0x39, 0x91, 0x46, 0xcd, 0x50, 0x3f, - 0xfc, 0x24, 0x81, 0xa8, 0x62, 0xc8, 0x0b, 0x30, 0x79, 0xdc, 0x0f, 0x84, 0xa3, 0xb7, 0xb2, 0x20, - 0x95, 0xab, 0xfa, 0x1d, 0x4a, 0x18, 0xbd, 0x98, 0x06, 0xbf, 0x37, 0xc8, 0xe7, 0x50, 0x9a, 0x29, - 0xa7, 0x73, 0x5b, 0x93, 0x23, 0x3b, 0x9d, 0xb5, 0xfb, 0x8a, 0x5e, 0xd4, 0xa8, 0xe9, 0xcd, 0x58, - 0xe4, 0x00, 0x2c, 0x3e, 0x0a, 0x84, 0xd7, 0x73, 0x46, 0x81, 0x08, 0x91, 0x73, 0xe4, 0x72, 0x94, - 0x8d, 0x9a, 0xad, 0xee, 0xee, 0xbb, 0xc2, 0xeb, 0xb5, 0xa5, 0xe4, 0x52, 0x29, 0x68, 0x99, 0xcf, - 0x9a, 0xc8, 0x3f, 0xfc, 0x01, 0x8a, 0xd3, 0x8f, 0x00, 0xc9, 0xc3, 0xe2, 0xe9, 0x91, 0xb5, 0x40, - 0x0c, 0x58, 0x3e, 0x6f, 0x1d, 0xb5, 0x4e, 0x2f, 0x5b, 0x56, 0x86, 0xac, 0x81, 0xd5, 0x3a, 0xed, - 0x38, 0xfb, 0xa7, 0xa7, 0x9d, 0x76, 0x87, 0xd6, 0xcf, 0xce, 0x1a, 0x87, 0xd6, 0x22, 0xb1, 0x61, - 0xad, 0x7e, 0x4c, 0x1b, 0xf5, 0xc3, 0xaf, 0xd3, 0xcc, 0x12, 0x59, 0x85, 0x95, 0x66, 0xeb, 0xa2, - 0x7e, 0xdc, 0x3c, 0x74, 0x2e, 0xea, 0xc7, 0xe7, 0x0d, 0x2b, 0x4b, 0xd6, 0x81, 0x1c, 0x1c, 0x9f, - 0xb7, 0x3b, 0x0d, 0xea, 0x9c, 0x34, 0xdb, 0x27, 0xf5, 0xce, 0xc1, 0xcb, 0xc6, 0xa1, 0x95, 0xab, - 0xfd, 0x96, 0x01, 0x68, 0x4f, 0x47, 0x8e, 0x7c, 0x0b, 0xa5, 0xf4, 0xcb, 0x4c, 0x9e, 0xa4, 0x27, - 0xf2, 0xc1, 0xaf, 0xc5, 0xc6, 0xce, 0x3f, 0x8b, 0xd4, 0x10, 0x57, 0x16, 0x88, 0x0f, 0xe5, 0xb9, - 0x4d, 0x20, 0x3b, 0xf3, 0x13, 0xff, 0xd0, 0xeb, 0xbc, 0xf1, 0xfe, 0xbf, 0xa8, 0x26, 0x11, 0x76, - 0x33, 0x9f, 0x66, 0xf6, 0x9f, 0xfe, 0xfe, 0x73, 0x21, 0xf3, 0xcb, 0xdd, 0x56, 0xe6, 0xd7, 0xbb, - 0xad, 0xcc, 0x1f, 0x77, 0x5b, 0x99, 0x1f, 0xff, 0xdc, 0x5a, 0x00, 0x2b, 0x62, 0xdd, 0xaa, 0x08, - 0xae, 0x6f, 0xab, 0xd7, 0xb7, 0xf2, 0x3f, 0x89, 0xab, 0xbc, 0xfc, 0xf3, 0xfc, 0xef, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x9d, 0xf1, 0x38, 0x1a, 0xb5, 0x08, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdf, 0x52, 0x23, 0xc5, + 0x17, 0x26, 0x90, 0x84, 0xe4, 0x4c, 0x48, 0x66, 0xfb, 0xc7, 0x8f, 0x9d, 0x02, 0x45, 0x36, 0x8b, + 0x2b, 0xab, 0x65, 0x94, 0xec, 0x96, 0xe5, 0x8d, 0x17, 0x01, 0x52, 0xb5, 0x11, 0x08, 0xd8, 0x09, + 0x50, 0x5a, 0x65, 0x4d, 0x0d, 0x33, 0xc7, 0x64, 0x8a, 0x64, 0x66, 0xe8, 0xee, 0x80, 0x59, 0x5f, + 0xc4, 0x1b, 0xef, 0x7d, 0x14, 0x2f, 0xf5, 0xce, 0x4b, 0x0b, 0xdf, 0xc0, 0x27, 0xb0, 0xfa, 0x4f, + 0x42, 0x26, 0x4b, 0xa9, 0x55, 0x7a, 0x45, 0x9f, 0xef, 0xfb, 0xfa, 0x9c, 0x9c, 0x7f, 0x3d, 0x00, + 0xe1, 0x7e, 0x1f, 0x83, 0xd1, 0x20, 0x8c, 0x7a, 0xc9, 0x65, 0x2d, 0x61, 0xb1, 0x88, 0x49, 0x69, + 0x16, 0x5b, 0x87, 0x24, 0x98, 0x30, 0xeb, 0xab, 0xbd, 0xb8, 0x17, 0xab, 0xe3, 0x47, 0xf2, 0x64, + 0xd0, 0x0a, 0x1b, 0x71, 0xa1, 0x8e, 0x06, 0x28, 0x0d, 0x51, 0x78, 0x93, 0x4b, 0xd5, 0x43, 0x58, + 0xa1, 0x78, 0x3d, 0x42, 0x2e, 0x5e, 0xa1, 0x17, 0x20, 0x23, 0x6f, 0x03, 0xf8, 0x83, 0x11, 0x17, + 0xc8, 0xdc, 0x30, 0x70, 0x32, 0x5b, 0x99, 0x9d, 0x2c, 0x2d, 0x1a, 0xa4, 0x15, 0x90, 0x0d, 0x28, + 0x72, 0x8c, 0x02, 0xcd, 0x2e, 0x2a, 0xb6, 0xa0, 0x81, 0x56, 0x50, 0xfd, 0x0a, 0xca, 0x14, 0x79, + 0x12, 0x47, 0x1c, 0xff, 0x99, 0xb7, 0xe7, 0x90, 0x43, 0xc6, 0x62, 0xa6, 0x3c, 0x59, 0xf5, 0xff, + 0xd5, 0x52, 0x09, 0x37, 0x25, 0x45, 0xb5, 0xa2, 0xda, 0x86, 0x9c, 0xb2, 0xc9, 0x07, 0x90, 0x15, + 0xe3, 0x04, 0x95, 0xb3, 0x72, 0xfd, 0xf1, 0x03, 0x57, 0xba, 0xe3, 0x04, 0xa9, 0x12, 0x11, 0x07, + 0x96, 0x87, 0xc8, 0xb9, 0xd7, 0x43, 0x15, 0xa2, 0x48, 0x27, 0x66, 0x95, 0x82, 0x75, 0xea, 0x31, + 0x11, 0xfa, 0x61, 0xe2, 0x45, 0x82, 0x10, 0xc8, 0x46, 0xde, 0x50, 0x7b, 0x2d, 0x52, 0x75, 0x26, + 0x65, 0x58, 0x9c, 0x26, 0xb9, 0x18, 0x06, 0xe4, 0x1d, 0xb0, 0x06, 0x21, 0x17, 0x18, 0xb9, 0x23, + 0x36, 0xe0, 0xce, 0xd2, 0xd6, 0xd2, 0x4e, 0x91, 0x82, 0x86, 0xce, 0xd8, 0x80, 0x57, 0x05, 0xfc, + 0xbf, 0x23, 0x62, 0x26, 0x93, 0x67, 0xe2, 0x12, 0x3d, 0x61, 0x4a, 0x4b, 0x5e, 0x40, 0xbe, 0xaf, + 0x0a, 0xa2, 0xfc, 0x5b, 0xf5, 0x8d, 0xf4, 0xaf, 0x4e, 0x75, 0x80, 0x1a, 0x29, 0x79, 0x06, 0x39, + 0x2e, 0x3c, 0xc1, 0x4d, 0x71, 0xec, 0x9a, 0xea, 0xb5, 0x0a, 0xd0, 0x91, 0x38, 0xd5, 0x74, 0xf5, + 0x16, 0xd6, 0xe6, 0xa3, 0xea, 0x1e, 0x90, 0x97, 0x73, 0x61, 0xdf, 0x9a, 0x0f, 0x3b, 0xdb, 0xab, + 0x69, 0xdc, 0xf7, 0xa0, 0x32, 0xe9, 0xd9, 0x0d, 0x32, 0x1e, 0xc6, 0x91, 0xa9, 0x5d, 0xd9, 0xc0, + 0xe7, 0x1a, 0xad, 0xfe, 0x91, 0x85, 0x35, 0x8a, 0xbd, 0x30, 0x8e, 0xfe, 0xab, 0x84, 0xf3, 0x4c, + 0xb9, 0x33, 0x19, 0x97, 0x6b, 0x66, 0x54, 0x75, 0x10, 0x6a, 0x58, 0xb2, 0x0d, 0xf9, 0x81, 0x76, + 0xbe, 0xa4, 0x74, 0xa5, 0x89, 0xee, 0x14, 0xa5, 0x37, 0xcd, 0x91, 0x1a, 0x40, 0x10, 0xdf, 0x46, + 0x6e, 0x82, 0xc8, 0xb8, 0x93, 0xdd, 0x5a, 0xda, 0xb1, 0xea, 0x15, 0x5d, 0x43, 0xa9, 0xd3, 0x25, + 0x2c, 0x4a, 0x89, 0x34, 0x39, 0xd9, 0x85, 0x95, 0x04, 0xa3, 0x20, 0x8c, 0x7a, 0xe6, 0x4a, 0x4e, + 0x5d, 0x49, 0x3b, 0x2f, 0x19, 0x89, 0xbe, 0xf2, 0x14, 0x56, 0x2e, 0xc7, 0x02, 0xb9, 0x7b, 0xcb, + 0x42, 0x21, 0x30, 0x72, 0xf2, 0x6a, 0x56, 0x4a, 0x0a, 0xbc, 0xd0, 0x98, 0x5c, 0x01, 0x2d, 0x62, + 0xe8, 0x05, 0xce, 0xb2, 0x5e, 0x01, 0x85, 0x50, 0xf4, 0x02, 0xf2, 0x04, 0x4a, 0x57, 0x38, 0xbe, + 0x77, 0x51, 0x50, 0x02, 0x4b, 0x62, 0x13, 0x0f, 0x1b, 0x50, 0x54, 0x12, 0xe5, 0xa0, 0xa8, 0x77, + 0x4e, 0x02, 0xea, 0xfe, 0x73, 0xb0, 0xbd, 0x24, 0x61, 0xf1, 0xb7, 0xe1, 0xd0, 0x13, 0xe8, 0xf2, + 0xf0, 0x35, 0x3a, 0xa0, 0x34, 0x95, 0x19, 0xbc, 0x13, 0xbe, 0x46, 0x52, 0x83, 0x42, 0x18, 0x09, + 0x64, 0x37, 0xde, 0xc0, 0x29, 0xa9, 0xca, 0x11, 0x5d, 0x8f, 0x6e, 0x38, 0xc4, 0x96, 0x61, 0xe8, + 0x54, 0x33, 0xef, 0x5a, 0x86, 0x74, 0x56, 0xde, 0x70, 0x7d, 0x88, 0x63, 0x2e, 0xd7, 0x47, 0x20, + 0x1b, 0x3a, 0x65, 0x45, 0xab, 0x33, 0xd9, 0x05, 0xeb, 0x7a, 0x84, 0x6c, 0xec, 0xea, 0x29, 0xae, + 0xcc, 0x4e, 0xf1, 0x17, 0x92, 0xd0, 0x2d, 0x80, 0xeb, 0xe9, 0x59, 0x66, 0xea, 0x27, 0x23, 0x77, + 0xa4, 0x16, 0xd6, 0xd6, 0x99, 0xfa, 0xc9, 0xe8, 0x4c, 0xda, 0x9f, 0x67, 0x0b, 0x96, 0x5d, 0xaa, + 0xfe, 0x90, 0x85, 0xc7, 0x6f, 0x0c, 0xdd, 0xbf, 0x9a, 0xf7, 0x5d, 0xb0, 0xfc, 0xbe, 0x17, 0xf5, + 0x50, 0xf5, 0x3d, 0xbd, 0x6d, 0xfb, 0x8a, 0x50, 0xad, 0x07, 0x7f, 0x7a, 0x26, 0x9f, 0x41, 0x45, + 0x30, 0x2f, 0xe2, 0xdf, 0x20, 0x73, 0x53, 0xa3, 0xb8, 0x6a, 0x0a, 0x6a, 0xc8, 0x23, 0x1d, 0xa9, + 0x2c, 0x52, 0xb6, 0x4c, 0x53, 0x8f, 0xb2, 0x7c, 0x14, 0xb3, 0x3a, 0x4d, 0x0d, 0xb4, 0x02, 0xf2, + 0x09, 0x94, 0x0c, 0x89, 0x49, 0xec, 0xf7, 0x9d, 0x9c, 0x79, 0x1a, 0x53, 0xbb, 0xd0, 0x94, 0x14, + 0xb5, 0xd8, 0xbd, 0x41, 0x3e, 0x04, 0x4b, 0x78, 0xac, 0x87, 0x42, 0xa7, 0x91, 0x7f, 0x60, 0x35, + 0x40, 0x0b, 0x54, 0x0a, 0x4f, 0x20, 0x37, 0x44, 0xd6, 0x43, 0x35, 0x91, 0x56, 0xdd, 0xd2, 0x3f, + 0xfc, 0x58, 0x42, 0x54, 0x33, 0xe4, 0x25, 0x94, 0x78, 0x32, 0x08, 0x85, 0x6b, 0xb6, 0xb2, 0xa0, + 0x94, 0x8f, 0xcc, 0x3b, 0x24, 0x19, 0xb3, 0x98, 0x16, 0xbf, 0x37, 0xc8, 0xa7, 0x50, 0x9e, 0x29, + 0xa7, 0x7b, 0x53, 0x57, 0x23, 0x3b, 0x9d, 0xb5, 0xfb, 0x8a, 0x9e, 0xd7, 0x69, 0xc9, 0x9f, 0xb1, + 0xc8, 0x3e, 0xd8, 0xfc, 0x36, 0x14, 0x7e, 0xdf, 0xbd, 0x0d, 0x45, 0x84, 0x9c, 0x23, 0x57, 0xa3, + 0x6c, 0xd5, 0x1d, 0x7d, 0x77, 0xcf, 0x13, 0x7e, 0xbf, 0xa3, 0x24, 0x17, 0x5a, 0x41, 0x2b, 0x7c, + 0xd6, 0x44, 0xfe, 0xfe, 0x77, 0x50, 0x9c, 0x7e, 0x04, 0x48, 0x1e, 0x16, 0x4f, 0x0e, 0xed, 0x05, + 0x62, 0xc1, 0xf2, 0x59, 0xfb, 0xb0, 0x7d, 0x72, 0xd1, 0xb6, 0x33, 0x64, 0x15, 0xec, 0xf6, 0x49, + 0xd7, 0xdd, 0x3b, 0x39, 0xe9, 0x76, 0xba, 0xb4, 0x71, 0x7a, 0xda, 0x3c, 0xb0, 0x17, 0x89, 0x03, + 0xab, 0x8d, 0x23, 0xda, 0x6c, 0x1c, 0x7c, 0x99, 0x66, 0x96, 0xc8, 0x23, 0x58, 0x69, 0xb5, 0xcf, + 0x1b, 0x47, 0xad, 0x03, 0xf7, 0xbc, 0x71, 0x74, 0xd6, 0xb4, 0xb3, 0x64, 0x0d, 0xc8, 0xfe, 0xd1, + 0x59, 0xa7, 0xdb, 0xa4, 0xee, 0x71, 0xab, 0x73, 0xdc, 0xe8, 0xee, 0xbf, 0x6a, 0x1e, 0xd8, 0xb9, + 0xfa, 0x2f, 0x19, 0x80, 0xce, 0x74, 0xe4, 0xc8, 0xd7, 0x50, 0x4e, 0xbf, 0xcc, 0xe4, 0x69, 0x7a, + 0x22, 0x1f, 0xfc, 0x5a, 0xac, 0x6f, 0xff, 0xb5, 0x48, 0x0f, 0x71, 0x75, 0x81, 0x04, 0x50, 0x99, + 0xdb, 0x04, 0xb2, 0x3d, 0x3f, 0xf1, 0x0f, 0xbd, 0xce, 0xeb, 0xef, 0xfe, 0x8d, 0x6a, 0x12, 0x61, + 0x27, 0xf3, 0x71, 0x66, 0xef, 0xd9, 0xaf, 0x3f, 0x16, 0x32, 0x3f, 0xdd, 0x6d, 0x66, 0x7e, 0xbe, + 0xdb, 0xcc, 0xfc, 0x76, 0xb7, 0x99, 0xf9, 0xfe, 0xf7, 0xcd, 0x05, 0xb0, 0x63, 0xd6, 0xab, 0x89, + 0xf0, 0xea, 0xa6, 0x76, 0x75, 0xa3, 0xfe, 0x93, 0xb8, 0xcc, 0xab, 0x3f, 0x2f, 0xfe, 0x0c, 0x00, + 0x00, 0xff, 0xff, 0xbe, 0x2b, 0xd5, 0xd8, 0xb5, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1253,7 +1253,7 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0x88 + dAtA[i] = 0x80 } if m.QueryStats != nil { { @@ -2861,7 +2861,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 17: + case 16: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field CpuUsage", wireType) } diff --git a/proto/schedulingpb.proto b/proto/schedulingpb.proto index d22343db0..076dfd373 100644 --- a/proto/schedulingpb.proto +++ b/proto/schedulingpb.proto @@ -97,7 +97,7 @@ message RegionHeartbeatRequest { pdpb.QueryStats query_stats = 15; // cpu_usage is the CPU time usage of the leader region since the last heartbeat, // which is calculated by cpu_time_delta/heartbeat_reported_interval. - uint64 cpu_usage = 17; + uint64 cpu_usage = 16; } @@ -135,6 +135,6 @@ message RegionHeartbeatResponse { // Now, PD use ChangePeerV2 in following scenarios: // 1. replacing peers // 2. demoting voter directly - pdpb. ChangePeerV2 change_peer_v2 = 9; + pdpb.ChangePeerV2 change_peer_v2 = 9; pdpb.BatchSwitchWitness switch_witnesses = 10; } diff --git a/scripts/proto.lock b/scripts/proto.lock index a5eafbdf7..3aea96dcf 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -18971,7 +18971,7 @@ "type": "pdpb.QueryStats" }, { - "id": 17, + "id": 16, "name": "cpu_usage", "type": "uint64" } From 5a0c9e4b32e60b9d79dcef2aa5f39e3ee3b6c1a0 Mon Sep 17 00:00:00 2001 From: 3pointer Date: Thu, 14 Sep 2023 15:07:44 +0800 Subject: [PATCH 4/8] restore: support file-copy restore (#1143) Signed-off-by: Leavrth Co-authored-by: Leavrth Co-authored-by: disksing --- pkg/brpb/brpb.pb.go | 931 ++++++++++++++++++++-------- pkg/import_sstpb/import_sstpb.pb.go | 547 ++++++++++++---- proto/brpb.proto | 12 + proto/import_sstpb.proto | 10 + scripts/proto.lock | 54 ++ 5 files changed, 1171 insertions(+), 383 deletions(-) diff --git a/pkg/brpb/brpb.pb.go b/pkg/brpb/brpb.pb.go index dd430a106..534eb9ea2 100644 --- a/pkg/brpb/brpb.pb.go +++ b/pkg/brpb/brpb.pb.go @@ -202,11 +202,13 @@ type BackupMeta struct { // If in txn kv mode, `schemas` will be ignored, the backup data's range is as same as normal backup. IsTxnKv bool `protobuf:"varint,21,opt,name=is_txn_kv,json=isTxnKv,proto3" json:"is_txn_kv,omitempty"` // maintain the id mapping from upstream cluster to downstream cluster. - DbMaps []*PitrDBMap `protobuf:"bytes,22,rep,name=db_maps,json=dbMaps,proto3" json:"db_maps,omitempty"` - Mode BackupMode `protobuf:"varint,23,opt,name=mode,proto3,enum=backup.BackupMode" json:"mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + DbMaps []*PitrDBMap `protobuf:"bytes,22,rep,name=db_maps,json=dbMaps,proto3" json:"db_maps,omitempty"` + Mode BackupMode `protobuf:"varint,23,opt,name=mode,proto3,enum=backup.BackupMode" json:"mode,omitempty"` + // record the backup range and the correspond SST files when using file-copy backup. + Ranges []*BackupRange `protobuf:"bytes,24,rep,name=ranges,proto3" json:"ranges,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *BackupMeta) Reset() { *m = BackupMeta{} } @@ -396,6 +398,76 @@ func (m *BackupMeta) GetMode() BackupMode { return BackupMode_SCAN } +func (m *BackupMeta) GetRanges() []*BackupRange { + if m != nil { + return m.Ranges + } + return nil +} + +type BackupRange struct { + StartKey []byte `protobuf:"bytes,1,opt,name=start_key,json=startKey,proto3" json:"start_key,omitempty"` + EndKey []byte `protobuf:"bytes,2,opt,name=end_key,json=endKey,proto3" json:"end_key,omitempty"` + Files []*File `protobuf:"bytes,3,rep,name=files,proto3" json:"files,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BackupRange) Reset() { *m = BackupRange{} } +func (m *BackupRange) String() string { return proto.CompactTextString(m) } +func (*BackupRange) ProtoMessage() {} +func (*BackupRange) Descriptor() ([]byte, []int) { + return fileDescriptor_483d1f48d58a4885, []int{1} +} +func (m *BackupRange) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BackupRange.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 *BackupRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupRange.Merge(m, src) +} +func (m *BackupRange) XXX_Size() int { + return m.Size() +} +func (m *BackupRange) XXX_DiscardUnknown() { + xxx_messageInfo_BackupRange.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupRange proto.InternalMessageInfo + +func (m *BackupRange) GetStartKey() []byte { + if m != nil { + return m.StartKey + } + return nil +} + +func (m *BackupRange) GetEndKey() []byte { + if m != nil { + return m.EndKey + } + return nil +} + +func (m *BackupRange) GetFiles() []*File { + if m != nil { + return m.Files + } + return nil +} + type File struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Sha256 []byte `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"` @@ -419,7 +491,7 @@ func (m *File) Reset() { *m = File{} } func (m *File) String() string { return proto.CompactTextString(m) } func (*File) ProtoMessage() {} func (*File) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{1} + return fileDescriptor_483d1f48d58a4885, []int{2} } func (m *File) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -543,6 +615,8 @@ type MetaFile struct { Schemas []*Schema `protobuf:"bytes,3,rep,name=schemas,proto3" json:"schemas,omitempty"` // A set of files that contains RawRanges. RawRanges []*RawRange `protobuf:"bytes,4,rep,name=raw_ranges,json=rawRanges,proto3" json:"raw_ranges,omitempty"` + // A set of files that contains BackupRanges. + BackupRanges []*BackupRange `protobuf:"bytes,6,rep,name=backup_ranges,json=backupRanges,proto3" json:"backup_ranges,omitempty"` // A set of files that contains DDLs. Ddls [][]byte `protobuf:"bytes,5,rep,name=ddls,proto3" json:"ddls,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -554,7 +628,7 @@ func (m *MetaFile) Reset() { *m = MetaFile{} } func (m *MetaFile) String() string { return proto.CompactTextString(m) } func (*MetaFile) ProtoMessage() {} func (*MetaFile) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{2} + return fileDescriptor_483d1f48d58a4885, []int{3} } func (m *MetaFile) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -611,6 +685,13 @@ func (m *MetaFile) GetRawRanges() []*RawRange { return nil } +func (m *MetaFile) GetBackupRanges() []*BackupRange { + if m != nil { + return m.BackupRanges + } + return nil +} + func (m *MetaFile) GetDdls() [][]byte { if m != nil { return m.Ddls @@ -629,7 +710,7 @@ func (m *PlacementPolicy) Reset() { *m = PlacementPolicy{} } func (m *PlacementPolicy) String() string { return proto.CompactTextString(m) } func (*PlacementPolicy) ProtoMessage() {} func (*PlacementPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{3} + return fileDescriptor_483d1f48d58a4885, []int{4} } func (m *PlacementPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -684,7 +765,7 @@ func (m *Schema) Reset() { *m = Schema{} } func (m *Schema) String() string { return proto.CompactTextString(m) } func (*Schema) ProtoMessage() {} func (*Schema) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{4} + return fileDescriptor_483d1f48d58a4885, []int{5} } func (m *Schema) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -774,7 +855,7 @@ func (m *IDMap) Reset() { *m = IDMap{} } func (m *IDMap) String() string { return proto.CompactTextString(m) } func (*IDMap) ProtoMessage() {} func (*IDMap) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{5} + return fileDescriptor_483d1f48d58a4885, []int{6} } func (m *IDMap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -830,7 +911,7 @@ func (m *PitrTableMap) Reset() { *m = PitrTableMap{} } func (m *PitrTableMap) String() string { return proto.CompactTextString(m) } func (*PitrTableMap) ProtoMessage() {} func (*PitrTableMap) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{6} + return fileDescriptor_483d1f48d58a4885, []int{7} } func (m *PitrTableMap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -893,7 +974,7 @@ func (m *PitrDBMap) Reset() { *m = PitrDBMap{} } func (m *PitrDBMap) String() string { return proto.CompactTextString(m) } func (*PitrDBMap) ProtoMessage() {} func (*PitrDBMap) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{7} + return fileDescriptor_483d1f48d58a4885, []int{8} } func (m *PitrDBMap) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -956,7 +1037,7 @@ func (m *RawRange) Reset() { *m = RawRange{} } func (m *RawRange) String() string { return proto.CompactTextString(m) } func (*RawRange) ProtoMessage() {} func (*RawRange) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{8} + return fileDescriptor_483d1f48d58a4885, []int{9} } func (m *RawRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1018,7 +1099,7 @@ func (m *ClusterIDError) Reset() { *m = ClusterIDError{} } func (m *ClusterIDError) String() string { return proto.CompactTextString(m) } func (*ClusterIDError) ProtoMessage() {} func (*ClusterIDError) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{9} + return fileDescriptor_483d1f48d58a4885, []int{10} } func (m *ClusterIDError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1077,7 +1158,7 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{10} + return fileDescriptor_483d1f48d58a4885, []int{11} } func (m *Error) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1182,7 +1263,7 @@ func (m *CipherInfo) Reset() { *m = CipherInfo{} } func (m *CipherInfo) String() string { return proto.CompactTextString(m) } func (*CipherInfo) ProtoMessage() {} func (*CipherInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{11} + return fileDescriptor_483d1f48d58a4885, []int{12} } func (m *CipherInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1275,7 +1356,7 @@ func (m *BackupRequest) Reset() { *m = BackupRequest{} } func (m *BackupRequest) String() string { return proto.CompactTextString(m) } func (*BackupRequest) ProtoMessage() {} func (*BackupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{12} + return fileDescriptor_483d1f48d58a4885, []int{13} } func (m *BackupRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1460,7 +1541,7 @@ func (m *StreamBackupTaskInfo) Reset() { *m = StreamBackupTaskInfo{} } func (m *StreamBackupTaskInfo) String() string { return proto.CompactTextString(m) } func (*StreamBackupTaskInfo) ProtoMessage() {} func (*StreamBackupTaskInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{13} + return fileDescriptor_483d1f48d58a4885, []int{14} } func (m *StreamBackupTaskInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1550,7 +1631,7 @@ func (m *StorageBackend) Reset() { *m = StorageBackend{} } func (m *StorageBackend) String() string { return proto.CompactTextString(m) } func (*StorageBackend) ProtoMessage() {} func (*StorageBackend) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{14} + return fileDescriptor_483d1f48d58a4885, []int{15} } func (m *StorageBackend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1695,7 +1776,7 @@ func (m *Noop) Reset() { *m = Noop{} } func (m *Noop) String() string { return proto.CompactTextString(m) } func (*Noop) ProtoMessage() {} func (*Noop) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{15} + return fileDescriptor_483d1f48d58a4885, []int{16} } func (m *Noop) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1736,7 +1817,7 @@ func (m *Local) Reset() { *m = Local{} } func (m *Local) String() string { return proto.CompactTextString(m) } func (*Local) ProtoMessage() {} func (*Local) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{16} + return fileDescriptor_483d1f48d58a4885, []int{17} } func (m *Local) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1801,7 +1882,7 @@ func (m *S3) Reset() { *m = S3{} } func (m *S3) String() string { return proto.CompactTextString(m) } func (*S3) ProtoMessage() {} func (*S3) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{17} + return fileDescriptor_483d1f48d58a4885, []int{18} } func (m *S3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1965,7 +2046,7 @@ func (m *GCS) Reset() { *m = GCS{} } func (m *GCS) String() string { return proto.CompactTextString(m) } func (*GCS) ProtoMessage() {} func (*GCS) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{18} + return fileDescriptor_483d1f48d58a4885, []int{19} } func (m *GCS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2051,7 +2132,7 @@ func (m *AzureCustomerKey) Reset() { *m = AzureCustomerKey{} } func (m *AzureCustomerKey) String() string { return proto.CompactTextString(m) } func (*AzureCustomerKey) ProtoMessage() {} func (*AzureCustomerKey) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{19} + return fileDescriptor_483d1f48d58a4885, []int{20} } func (m *AzureCustomerKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2151,7 +2232,7 @@ func (m *AzureBlobStorage) Reset() { *m = AzureBlobStorage{} } func (m *AzureBlobStorage) String() string { return proto.CompactTextString(m) } func (*AzureBlobStorage) ProtoMessage() {} func (*AzureBlobStorage) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{20} + return fileDescriptor_483d1f48d58a4885, []int{21} } func (m *AzureBlobStorage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2258,7 +2339,7 @@ func (m *Bucket) Reset() { *m = Bucket{} } func (m *Bucket) String() string { return proto.CompactTextString(m) } func (*Bucket) ProtoMessage() {} func (*Bucket) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{21} + return fileDescriptor_483d1f48d58a4885, []int{22} } func (m *Bucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2336,7 +2417,7 @@ func (m *CloudDynamic) Reset() { *m = CloudDynamic{} } func (m *CloudDynamic) String() string { return proto.CompactTextString(m) } func (*CloudDynamic) ProtoMessage() {} func (*CloudDynamic) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{22} + return fileDescriptor_483d1f48d58a4885, []int{23} } func (m *CloudDynamic) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2399,7 +2480,7 @@ func (m *HDFS) Reset() { *m = HDFS{} } func (m *HDFS) String() string { return proto.CompactTextString(m) } func (*HDFS) ProtoMessage() {} func (*HDFS) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{23} + return fileDescriptor_483d1f48d58a4885, []int{24} } func (m *HDFS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2451,7 +2532,7 @@ func (m *BackupResponse) Reset() { *m = BackupResponse{} } func (m *BackupResponse) String() string { return proto.CompactTextString(m) } func (*BackupResponse) ProtoMessage() {} func (*BackupResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{24} + return fileDescriptor_483d1f48d58a4885, []int{25} } func (m *BackupResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2528,7 +2609,7 @@ func (m *CleanupRequest) Reset() { *m = CleanupRequest{} } func (m *CleanupRequest) String() string { return proto.CompactTextString(m) } func (*CleanupRequest) ProtoMessage() {} func (*CleanupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{25} + return fileDescriptor_483d1f48d58a4885, []int{26} } func (m *CleanupRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2576,7 +2657,7 @@ func (m *CleanupResponse) Reset() { *m = CleanupResponse{} } func (m *CleanupResponse) String() string { return proto.CompactTextString(m) } func (*CleanupResponse) ProtoMessage() {} func (*CleanupResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{26} + return fileDescriptor_483d1f48d58a4885, []int{27} } func (m *CleanupResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2631,7 +2712,7 @@ func (m *PrepareRequest) Reset() { *m = PrepareRequest{} } func (m *PrepareRequest) String() string { return proto.CompactTextString(m) } func (*PrepareRequest) ProtoMessage() {} func (*PrepareRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{27} + return fileDescriptor_483d1f48d58a4885, []int{28} } func (m *PrepareRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2684,7 +2765,7 @@ func (m *PrepareResponse) Reset() { *m = PrepareResponse{} } func (m *PrepareResponse) String() string { return proto.CompactTextString(m) } func (*PrepareResponse) ProtoMessage() {} func (*PrepareResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{28} + return fileDescriptor_483d1f48d58a4885, []int{29} } func (m *PrepareResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2751,7 +2832,7 @@ func (m *CheckAdminRequest) Reset() { *m = CheckAdminRequest{} } func (m *CheckAdminRequest) String() string { return proto.CompactTextString(m) } func (*CheckAdminRequest) ProtoMessage() {} func (*CheckAdminRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{29} + return fileDescriptor_483d1f48d58a4885, []int{30} } func (m *CheckAdminRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2793,7 +2874,7 @@ func (m *CheckAdminResponse) Reset() { *m = CheckAdminResponse{} } func (m *CheckAdminResponse) String() string { return proto.CompactTextString(m) } func (*CheckAdminResponse) ProtoMessage() {} func (*CheckAdminResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{30} + return fileDescriptor_483d1f48d58a4885, []int{31} } func (m *CheckAdminResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2857,7 +2938,7 @@ func (m *ExternalStorageRestoreRequest) Reset() { *m = ExternalStorageRe func (m *ExternalStorageRestoreRequest) String() string { return proto.CompactTextString(m) } func (*ExternalStorageRestoreRequest) ProtoMessage() {} func (*ExternalStorageRestoreRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{31} + return fileDescriptor_483d1f48d58a4885, []int{32} } func (m *ExternalStorageRestoreRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2924,7 +3005,7 @@ func (m *ExternalStorageRestoreResponse) Reset() { *m = ExternalStorageR func (m *ExternalStorageRestoreResponse) String() string { return proto.CompactTextString(m) } func (*ExternalStorageRestoreResponse) ProtoMessage() {} func (*ExternalStorageRestoreResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{32} + return fileDescriptor_483d1f48d58a4885, []int{33} } func (m *ExternalStorageRestoreResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2966,7 +3047,7 @@ func (m *ExternalStorageSaveRequest) Reset() { *m = ExternalStorageSaveR func (m *ExternalStorageSaveRequest) String() string { return proto.CompactTextString(m) } func (*ExternalStorageSaveRequest) ProtoMessage() {} func (*ExternalStorageSaveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{33} + return fileDescriptor_483d1f48d58a4885, []int{34} } func (m *ExternalStorageSaveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3026,7 +3107,7 @@ func (m *ExternalStorageSaveResponse) Reset() { *m = ExternalStorageSave func (m *ExternalStorageSaveResponse) String() string { return proto.CompactTextString(m) } func (*ExternalStorageSaveResponse) ProtoMessage() {} func (*ExternalStorageSaveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{34} + return fileDescriptor_483d1f48d58a4885, []int{35} } func (m *ExternalStorageSaveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3073,7 +3154,7 @@ func (m *Metadata) Reset() { *m = Metadata{} } func (m *Metadata) String() string { return proto.CompactTextString(m) } func (*Metadata) ProtoMessage() {} func (*Metadata) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{35} + return fileDescriptor_483d1f48d58a4885, []int{36} } func (m *Metadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3175,7 +3256,7 @@ func (m *DataFileGroup) Reset() { *m = DataFileGroup{} } func (m *DataFileGroup) String() string { return proto.CompactTextString(m) } func (*DataFileGroup) ProtoMessage() {} func (*DataFileGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{36} + return fileDescriptor_483d1f48d58a4885, []int{37} } func (m *DataFileGroup) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3292,7 +3373,7 @@ func (m *DataFileInfo) Reset() { *m = DataFileInfo{} } func (m *DataFileInfo) String() string { return proto.CompactTextString(m) } func (*DataFileInfo) ProtoMessage() {} func (*DataFileInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{37} + return fileDescriptor_483d1f48d58a4885, []int{38} } func (m *DataFileInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3465,7 +3546,7 @@ func (m *StreamBackupError) Reset() { *m = StreamBackupError{} } func (m *StreamBackupError) String() string { return proto.CompactTextString(m) } func (*StreamBackupError) ProtoMessage() {} func (*StreamBackupError) Descriptor() ([]byte, []int) { - return fileDescriptor_483d1f48d58a4885, []int{38} + return fileDescriptor_483d1f48d58a4885, []int{39} } func (m *StreamBackupError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3528,6 +3609,7 @@ func init() { proto.RegisterEnum("backup.MetaVersion", MetaVersion_name, MetaVersion_value) proto.RegisterEnum("backup.FileType", FileType_name, FileType_value) proto.RegisterType((*BackupMeta)(nil), "backup.BackupMeta") + proto.RegisterType((*BackupRange)(nil), "backup.BackupRange") proto.RegisterType((*File)(nil), "backup.File") proto.RegisterType((*MetaFile)(nil), "backup.MetaFile") proto.RegisterType((*PlacementPolicy)(nil), "backup.PlacementPolicy") @@ -3572,214 +3654,217 @@ func init() { func init() { proto.RegisterFile("brpb.proto", fileDescriptor_483d1f48d58a4885) } var fileDescriptor_483d1f48d58a4885 = []byte{ - // 3311 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x5b, 0x6f, 0x24, 0x49, - 0x56, 0x76, 0x56, 0x65, 0xdd, 0x4e, 0x5d, 0x9d, 0x7d, 0xab, 0x71, 0xd3, 0xdd, 0x9e, 0xec, 0xed, - 0xc6, 0x78, 0x77, 0xbd, 0xb3, 0x76, 0xef, 0xa8, 0x61, 0x16, 0x8d, 0x7c, 0xeb, 0xb1, 0xd7, 0x7d, - 0x31, 0x61, 0xb3, 0x88, 0x79, 0x49, 0x65, 0x65, 0x46, 0xd9, 0x49, 0x65, 0x65, 0xe6, 0x66, 0x64, - 0x55, 0xdb, 0xf3, 0x1f, 0x56, 0x80, 0x10, 0x82, 0x3f, 0x80, 0xc4, 0x0b, 0xff, 0x81, 0x17, 0xa4, - 0x1d, 0x81, 0xc4, 0x48, 0xf3, 0xc2, 0x23, 0x1a, 0xfe, 0x04, 0x8f, 0xe8, 0x9c, 0x88, 0xc8, 0xca, - 0xaa, 0xb6, 0xdd, 0xd3, 0x80, 0xe6, 0xc9, 0x19, 0xdf, 0x39, 0x11, 0x71, 0xe2, 0xdc, 0x23, 0xca, - 0x00, 0x83, 0x34, 0x19, 0x6c, 0x24, 0x69, 0x9c, 0xc5, 0x56, 0x75, 0xe0, 0x7a, 0xa3, 0x49, 0xb2, - 0xd2, 0x1e, 0x4d, 0xd3, 0xc4, 0xd3, 0xf0, 0x4a, 0x9b, 0xa7, 0x69, 0x9c, 0x73, 0xad, 0xb4, 0xc6, - 0x3c, 0x73, 0xf3, 0x91, 0xc5, 0x23, 0x2f, 0xbd, 0x4c, 0xb2, 0x20, 0x8e, 0x72, 0xec, 0xf6, 0x59, - 0x7c, 0x16, 0xd3, 0xe7, 0xcf, 0xf0, 0x4b, 0xa1, 0xdd, 0x74, 0x22, 0x32, 0xfa, 0x94, 0x80, 0xfd, - 0x77, 0x35, 0x80, 0x1d, 0xda, 0xf1, 0x15, 0xcf, 0x5c, 0xeb, 0x01, 0x80, 0x17, 0x4e, 0x44, 0xc6, - 0x53, 0x27, 0xf0, 0xfb, 0xc6, 0xaa, 0xb1, 0x66, 0xb2, 0x86, 0x42, 0x0e, 0x7d, 0xeb, 0xf7, 0xa1, - 0xab, 0xc9, 0x53, 0x9e, 0x8a, 0x20, 0x8e, 0xfa, 0xa5, 0x55, 0x63, 0xad, 0xc1, 0x3a, 0x0a, 0xfe, - 0xb5, 0x44, 0x71, 0x9d, 0xc1, 0x8c, 0xa7, 0x49, 0x3c, 0x8d, 0x41, 0x4e, 0xee, 0x43, 0x4d, 0xd3, - 0x5a, 0xab, 0xc6, 0x5a, 0x85, 0xe9, 0xa1, 0x65, 0x43, 0x65, 0x18, 0x84, 0x5c, 0xf4, 0xcd, 0xd5, - 0xf2, 0x5a, 0x73, 0xb3, 0xb5, 0x21, 0xd5, 0xb1, 0xf1, 0x22, 0x08, 0x39, 0x93, 0x24, 0xeb, 0x67, - 0x00, 0xf8, 0xe1, 0x04, 0x91, 0xcf, 0x2f, 0xfa, 0xed, 0x55, 0x63, 0xad, 0xb9, 0xd9, 0xd3, 0x8c, - 0x78, 0x0c, 0x62, 0x6e, 0x20, 0xcf, 0x21, 0xb2, 0x58, 0x8f, 0xa1, 0x2d, 0x32, 0x37, 0xcd, 0x72, - 0x81, 0x2a, 0x74, 0xb0, 0x16, 0x81, 0x5a, 0xa6, 0x47, 0xd0, 0xe4, 0x91, 0x9f, 0xb3, 0x54, 0x89, - 0x05, 0x78, 0xe4, 0x6b, 0x86, 0x35, 0xa8, 0x09, 0xef, 0x9c, 0x8f, 0x5d, 0xd1, 0xaf, 0x91, 0x70, - 0x1d, 0xbd, 0xe7, 0x09, 0xc1, 0x4c, 0x93, 0xad, 0x2d, 0x68, 0xc9, 0x4f, 0x25, 0x62, 0xe7, 0x1a, - 0x11, 0x9b, 0x92, 0x4b, 0x0a, 0xb9, 0x02, 0x8d, 0x40, 0x38, 0xa9, 0xfb, 0xd6, 0x19, 0x4d, 0xfb, - 0xf5, 0x55, 0x63, 0xad, 0xce, 0x6a, 0x81, 0x60, 0xee, 0xdb, 0xa3, 0x29, 0x9e, 0x18, 0x09, 0xa9, - 0x1b, 0x9d, 0x71, 0xd1, 0x6f, 0xd0, 0xee, 0xf9, 0x72, 0xcc, 0x7d, 0xcb, 0x90, 0xc0, 0x1a, 0xa9, - 0xfa, 0x12, 0xd6, 0x73, 0xe8, 0xe6, 0x13, 0x94, 0x10, 0xdd, 0x6b, 0x84, 0x68, 0xeb, 0x59, 0x52, - 0x0c, 0x0b, 0x4c, 0xdf, 0x0f, 0x45, 0x1f, 0x56, 0x8d, 0xb5, 0x16, 0xa3, 0x6f, 0xeb, 0xe7, 0xd0, - 0xf4, 0xfd, 0x50, 0xae, 0xc3, 0x45, 0xbf, 0x77, 0xcd, 0x4a, 0xe0, 0xfb, 0xe1, 0xa1, 0xe4, 0x41, - 0x95, 0x4b, 0xb2, 0x93, 0x72, 0x31, 0x09, 0xb3, 0xfe, 0x32, 0xf9, 0x40, 0x4b, 0x82, 0x8c, 0x30, - 0xeb, 0x19, 0x34, 0xdd, 0x24, 0xc8, 0x55, 0x6e, 0xad, 0x1a, 0x6b, 0x9d, 0xcd, 0x5b, 0x1b, 0xda, - 0xf3, 0xb7, 0x8f, 0x0f, 0x95, 0xee, 0x19, 0xb8, 0x49, 0xa0, 0xed, 0xb0, 0x05, 0xf5, 0x24, 0x0e, - 0x03, 0x2f, 0xe0, 0xa2, 0x7f, 0x8b, 0x54, 0x71, 0x4f, 0x8b, 0x72, 0x1c, 0xba, 0x1e, 0x1f, 0xf3, - 0x28, 0x3b, 0x46, 0x86, 0x4b, 0x96, 0x33, 0x5a, 0xcf, 0xe0, 0x6e, 0xc4, 0xdf, 0x3a, 0x5e, 0x1c, - 0x86, 0x2e, 0xc6, 0x89, 0x70, 0x78, 0xe4, 0x0e, 0x42, 0xee, 0xf7, 0x6f, 0x93, 0x60, 0xb7, 0x23, - 0xfe, 0x76, 0x37, 0x27, 0xee, 0x4b, 0x9a, 0xb2, 0x49, 0x76, 0x11, 0xa1, 0x4d, 0xee, 0x68, 0x9b, - 0x9c, 0x5e, 0x44, 0x47, 0x53, 0x6b, 0x1d, 0x6a, 0xfe, 0xc0, 0x19, 0xbb, 0x89, 0xe8, 0xdf, 0x25, - 0x29, 0x96, 0x73, 0x29, 0x82, 0x2c, 0xdd, 0xdb, 0x79, 0xe5, 0x26, 0xac, 0xea, 0x0f, 0x5e, 0xb9, - 0x89, 0xb0, 0x9e, 0x82, 0x39, 0x8e, 0x7d, 0xde, 0xbf, 0x47, 0x27, 0xb4, 0x34, 0xa3, 0x0a, 0xbc, - 0xd8, 0xe7, 0x8c, 0xe8, 0xbf, 0x32, 0xeb, 0xe5, 0x9e, 0xc9, 0xcc, 0xc4, 0xcd, 0xce, 0xed, 0xaf, - 0x4b, 0x60, 0xa2, 0x5a, 0xd1, 0x22, 0x91, 0x3b, 0xe6, 0x14, 0x8d, 0x0d, 0x46, 0xdf, 0xd6, 0x5d, - 0xa8, 0x8a, 0x73, 0x77, 0xf3, 0x17, 0x9f, 0x52, 0xfc, 0xb5, 0x98, 0x1a, 0x59, 0xf7, 0xa1, 0x21, - 0x3d, 0x7d, 0xc4, 0x2f, 0xfb, 0x65, 0x22, 0xd5, 0x09, 0x38, 0xe2, 0x97, 0xd6, 0x3d, 0xa8, 0xa1, - 0x87, 0x23, 0xc9, 0x94, 0xb3, 0x78, 0xe4, 0x23, 0xe1, 0xff, 0x27, 0x3e, 0x56, 0xa0, 0xee, 0xa5, - 0xde, 0xa7, 0xcf, 0x2e, 0xe2, 0xb4, 0x5f, 0x23, 0x6a, 0x3e, 0x46, 0xb9, 0xb2, 0x38, 0x73, 0x43, - 0x67, 0x34, 0x15, 0xe4, 0xdc, 0x26, 0xab, 0x13, 0x70, 0x34, 0x15, 0xb8, 0xb2, 0x24, 0x0e, 0x2e, - 0x33, 0x72, 0x6f, 0x5a, 0x99, 0xa0, 0x1d, 0x44, 0xac, 0x0e, 0x94, 0xbc, 0x21, 0x79, 0x64, 0x83, - 0x95, 0xbc, 0x21, 0x6a, 0x44, 0x04, 0x5f, 0x71, 0xca, 0x2b, 0x26, 0xa3, 0x6f, 0xdc, 0xc1, 0x0b, - 0x92, 0x73, 0x4c, 0x5c, 0x53, 0x4a, 0x2a, 0x2d, 0x56, 0x97, 0xc0, 0xe1, 0xd4, 0xfe, 0xd6, 0x80, - 0xba, 0x76, 0x53, 0xeb, 0xc7, 0x00, 0x98, 0x3d, 0x1d, 0x99, 0x67, 0x8c, 0x2b, 0xf2, 0x4c, 0x63, - 0xac, 0x78, 0x05, 0x32, 0xfb, 0x6e, 0xce, 0x5c, 0xba, 0x8a, 0x19, 0xe9, 0x92, 0xb9, 0x90, 0x21, - 0xca, 0x37, 0x67, 0x88, 0xf9, 0x80, 0x36, 0xdf, 0x1f, 0xd0, 0x3a, 0x2c, 0x2b, 0xab, 0x65, 0x1d, - 0x96, 0xf6, 0x13, 0xe8, 0x2e, 0x38, 0x3c, 0xb2, 0x05, 0xd1, 0x30, 0x26, 0x5f, 0x69, 0x31, 0xfa, - 0xb6, 0xbf, 0x36, 0xa0, 0x2a, 0xf7, 0x47, 0x45, 0xfa, 0x03, 0x45, 0x2c, 0xf9, 0x03, 0xeb, 0x36, - 0x54, 0x32, 0xf4, 0x74, 0xe5, 0x45, 0x72, 0x30, 0x67, 0xc8, 0xf2, 0x4d, 0x86, 0x34, 0x6f, 0x36, - 0x64, 0xe5, 0x1d, 0x43, 0xfe, 0x01, 0xf4, 0xb2, 0x60, 0x18, 0xba, 0xe2, 0xdc, 0x49, 0x79, 0x12, - 0x06, 0x9e, 0x2b, 0xc8, 0x91, 0xda, 0xac, 0xab, 0x70, 0xa6, 0x60, 0x14, 0x4d, 0x64, 0x6e, 0x26, - 0xc8, 0x95, 0x5a, 0x4c, 0x0e, 0xec, 0x57, 0x50, 0x39, 0xdc, 0x7b, 0xe5, 0x26, 0xb8, 0xd5, 0x24, - 0x11, 0x59, 0xca, 0xdd, 0xb1, 0xae, 0x54, 0x65, 0x06, 0x1a, 0x3a, 0xf4, 0xd1, 0xa7, 0xfd, 0xf8, - 0x6d, 0x34, 0x63, 0x29, 0x11, 0x4b, 0x6b, 0x06, 0x1e, 0xfa, 0xf6, 0x5b, 0x68, 0x61, 0xb0, 0x9e, - 0xe2, 0xb1, 0x71, 0xd5, 0xab, 0x42, 0xed, 0x47, 0x50, 0x0d, 0x7c, 0x8c, 0x73, 0x5a, 0xa1, 0xb9, - 0xd9, 0xd6, 0x66, 0x22, 0x41, 0x58, 0x25, 0xf0, 0x71, 0xe6, 0x4f, 0x01, 0x12, 0x37, 0xcd, 0x02, - 0x4a, 0x1f, 0xca, 0xfa, 0x0b, 0x9c, 0x05, 0x06, 0x5b, 0x40, 0x23, 0xcf, 0x12, 0xff, 0x87, 0x5d, - 0x7f, 0x02, 0x55, 0x32, 0x99, 0xde, 0xf1, 0x76, 0x31, 0x05, 0xe9, 0x53, 0x31, 0xc5, 0x63, 0x1f, - 0x43, 0x5d, 0xbb, 0xd6, 0x7c, 0xa2, 0x30, 0xae, 0x4f, 0x14, 0xa5, 0xb9, 0x44, 0x21, 0x03, 0xb1, - 0xac, 0x03, 0xd1, 0xde, 0x83, 0xce, 0xae, 0x6a, 0x0e, 0xf6, 0xf6, 0xb1, 0x41, 0xc1, 0xca, 0xee, - 0x4d, 0xd2, 0x94, 0x47, 0x99, 0xea, 0x1e, 0xf4, 0x10, 0x29, 0x29, 0xff, 0xcd, 0x84, 0x8b, 0x8c, - 0x16, 0x35, 0x99, 0x1e, 0xda, 0xff, 0x66, 0x40, 0x45, 0xce, 0xee, 0x41, 0x79, 0x2c, 0xce, 0x94, - 0x22, 0xf0, 0xd3, 0xda, 0x81, 0xde, 0xac, 0x21, 0x71, 0xa8, 0x09, 0xa2, 0xfd, 0x9b, 0x9b, 0x77, - 0xf5, 0x59, 0xe7, 0x25, 0x38, 0x58, 0xca, 0x9b, 0x91, 0x43, 0x5f, 0xae, 0xba, 0x01, 0xf5, 0xd1, - 0x54, 0xcd, 0x35, 0x69, 0xee, 0x72, 0x5e, 0x63, 0x8e, 0xf8, 0xa5, 0x9e, 0x56, 0x1b, 0x4d, 0x25, - 0xff, 0x16, 0xb4, 0x52, 0x7e, 0x16, 0xc4, 0x91, 0x9a, 0x53, 0xa1, 0x39, 0x9d, 0x0d, 0xdd, 0x82, - 0xe9, 0x09, 0x4d, 0xc9, 0x45, 0xc3, 0x9d, 0x3a, 0x54, 0x7d, 0x9e, 0xb9, 0x41, 0x68, 0x87, 0x00, - 0xbb, 0x32, 0xf1, 0x44, 0xc3, 0xd8, 0xfa, 0x1c, 0x9a, 0x2a, 0x2f, 0x65, 0x97, 0x89, 0xb4, 0x71, - 0x67, 0xf3, 0xe1, 0xc6, 0x5c, 0xc7, 0xb6, 0x9f, 0x0f, 0x5e, 0xf1, 0xec, 0x3c, 0xf6, 0x19, 0xc8, - 0x29, 0xa7, 0x97, 0x09, 0xa7, 0x96, 0x4c, 0x2e, 0x30, 0xb3, 0x87, 0x4a, 0x75, 0x47, 0xfc, 0xd2, - 0xfe, 0x6d, 0x15, 0xda, 0x3b, 0xaa, 0xa8, 0x92, 0x3a, 0xdf, 0xd7, 0xc3, 0xcd, 0x59, 0xbe, 0x74, - 0xbd, 0xe5, 0xcb, 0x37, 0x97, 0x08, 0xf3, 0xfd, 0x25, 0xa2, 0xf2, 0x4e, 0x89, 0x78, 0x80, 0x69, - 0x2f, 0xe3, 0x4e, 0x18, 0x8c, 0x83, 0x4c, 0x15, 0x89, 0x06, 0x22, 0x2f, 0x11, 0xb0, 0x56, 0xa1, - 0xe9, 0xc5, 0x91, 0x74, 0x18, 0xef, 0x92, 0xea, 0x44, 0x9b, 0x15, 0x21, 0xeb, 0x73, 0xe8, 0x8a, - 0x2c, 0x4e, 0xdd, 0x33, 0xee, 0xa0, 0xf5, 0x79, 0xe4, 0x53, 0xb9, 0x28, 0x78, 0xc3, 0x89, 0x24, - 0xef, 0x48, 0x2a, 0xeb, 0x88, 0xb9, 0xf1, 0x7c, 0x97, 0x05, 0xf3, 0x5d, 0x96, 0xf4, 0xee, 0x66, - 0x5e, 0x66, 0xd0, 0xf7, 0xe2, 0x71, 0x92, 0x72, 0x81, 0xc2, 0x4b, 0xfb, 0xb5, 0xc8, 0x7e, 0x79, - 0xc3, 0xb1, 0x3b, 0xa3, 0xa3, 0xb1, 0x58, 0xd7, 0x9b, 0x07, 0xac, 0x1f, 0xc3, 0x72, 0x71, 0x8d, - 0x90, 0x4f, 0x79, 0x48, 0x2d, 0x6b, 0x85, 0x15, 0x17, 0x7f, 0x89, 0xb8, 0xb5, 0x95, 0xfb, 0x0a, - 0x25, 0x71, 0xd9, 0x36, 0xe6, 0xdd, 0xc2, 0xcc, 0xa9, 0xb4, 0x7f, 0x90, 0x83, 0x7d, 0x06, 0x5d, - 0x5f, 0x64, 0x4e, 0xb1, 0x91, 0xea, 0x5e, 0xdf, 0x48, 0xb5, 0x7d, 0x91, 0x6d, 0xcf, 0x7a, 0xa9, - 0x4f, 0x00, 0xc4, 0x64, 0xa0, 0xeb, 0x50, 0x4f, 0xf5, 0x31, 0x85, 0xe0, 0x50, 0x85, 0x48, 0x4c, - 0x06, 0xaa, 0x10, 0x7d, 0x8c, 0xc1, 0x41, 0x39, 0xda, 0x49, 0xb9, 0xeb, 0x53, 0x5f, 0x57, 0xc7, - 0x50, 0x20, 0x8c, 0x71, 0xd7, 0xcf, 0xbb, 0x1d, 0xeb, 0xe6, 0x6e, 0x07, 0x3d, 0x71, 0x12, 0x05, - 0xbf, 0x99, 0x70, 0xf4, 0xd3, 0x5b, 0xa4, 0xf6, 0xba, 0x04, 0x0e, 0x7d, 0x6c, 0xaf, 0xbc, 0x38, - 0xca, 0xf8, 0x45, 0x46, 0x1d, 0x1a, 0x96, 0x47, 0x2d, 0xd6, 0xae, 0xc4, 0x99, 0x66, 0xf8, 0x95, - 0x59, 0xaf, 0xf6, 0x6a, 0xaa, 0x6d, 0xfa, 0xdb, 0x12, 0xdc, 0x3e, 0xa1, 0xfc, 0x2e, 0xf7, 0x3b, - 0x75, 0xc5, 0x88, 0xf4, 0xf4, 0x09, 0xd4, 0x94, 0x2f, 0x50, 0x4c, 0x5c, 0xef, 0x32, 0x9a, 0xcd, - 0xfa, 0x08, 0x64, 0x60, 0x38, 0x99, 0xd0, 0x29, 0x8b, 0xc6, 0xa7, 0xc2, 0xba, 0x03, 0x18, 0x18, - 0x48, 0x90, 0x05, 0xb2, 0xc2, 0x23, 0xff, 0x54, 0xe4, 0x99, 0xdc, 0x2c, 0x64, 0xf2, 0x8f, 0xa1, - 0x45, 0xf9, 0x17, 0x5b, 0x88, 0x8c, 0xa7, 0x54, 0xc1, 0x1b, 0xac, 0x49, 0xd8, 0x0b, 0x82, 0xae, - 0x74, 0xb4, 0xea, 0x87, 0x39, 0x1a, 0xeb, 0x84, 0xae, 0xc8, 0x9c, 0x49, 0xe2, 0x63, 0x7c, 0x65, - 0x82, 0x55, 0xa5, 0x4d, 0x59, 0x15, 0x0b, 0xe7, 0x44, 0xd8, 0xdf, 0x94, 0xa0, 0x33, 0x7f, 0x50, - 0xcb, 0x06, 0x33, 0x8a, 0xe3, 0x44, 0xa9, 0x23, 0xef, 0x6a, 0x5e, 0xc7, 0x71, 0x72, 0xb0, 0xc4, - 0x88, 0x66, 0x3d, 0x81, 0x4a, 0x18, 0x7b, 0x6e, 0xb8, 0x58, 0x86, 0x5e, 0x22, 0x78, 0xb0, 0xc4, - 0x24, 0xd5, 0xfa, 0x3d, 0x28, 0x89, 0x2d, 0x95, 0x98, 0x21, 0xd7, 0xeb, 0xd6, 0xc1, 0x12, 0x2b, - 0x89, 0x2d, 0xeb, 0x11, 0x94, 0xcf, 0x3c, 0xa1, 0x72, 0x6f, 0x53, 0x93, 0xbf, 0xd8, 0x3d, 0x39, - 0x58, 0x62, 0x48, 0xb1, 0x3e, 0x83, 0xb6, 0x17, 0xc6, 0x13, 0xdf, 0xf1, 0x2f, 0x23, 0x77, 0x1c, - 0x78, 0x2a, 0xe5, 0xde, 0x9e, 0xa5, 0xf8, 0x78, 0xe2, 0xef, 0x49, 0xda, 0xc1, 0x12, 0x6b, 0x79, - 0x85, 0x31, 0x1e, 0xe3, 0xdc, 0x1f, 0xca, 0x46, 0xa2, 0x70, 0x8c, 0x83, 0xbd, 0x17, 0xb8, 0x3e, - 0xd1, 0xac, 0x03, 0xb0, 0xdc, 0xaf, 0x26, 0x29, 0x77, 0x06, 0x61, 0x3c, 0x70, 0xb4, 0x1f, 0xd4, - 0x68, 0x46, 0x5f, 0xcf, 0xd8, 0x46, 0x8e, 0x9d, 0x30, 0x1e, 0x28, 0x3d, 0x1d, 0x2c, 0xb1, 0x9e, - 0xbb, 0x80, 0xed, 0x34, 0xa0, 0xa6, 0x32, 0x8f, 0x5d, 0x05, 0x13, 0x75, 0x65, 0xdf, 0x87, 0x0a, - 0xa9, 0x03, 0xcd, 0x8f, 0x3e, 0xa8, 0x0b, 0x39, 0xf9, 0xe3, 0x7f, 0x97, 0xa1, 0x74, 0xb2, 0x85, - 0x3d, 0x15, 0x8f, 0xfc, 0x24, 0x0e, 0x54, 0x61, 0x6c, 0xb0, 0x7c, 0x8c, 0xcd, 0xbc, 0xac, 0x24, - 0xea, 0x32, 0xad, 0x46, 0x88, 0x0f, 0x26, 0xde, 0x88, 0x67, 0xaa, 0xe2, 0xaa, 0x11, 0xe2, 0x49, - 0xca, 0x87, 0xc1, 0x85, 0xf2, 0x33, 0x35, 0x92, 0x39, 0x5a, 0x26, 0x47, 0x2f, 0x74, 0x85, 0x6c, - 0xc0, 0x1a, 0x98, 0xa3, 0x09, 0xdc, 0x45, 0x0c, 0x4b, 0xac, 0x10, 0xd2, 0xbd, 0x1a, 0x0c, 0x3f, - 0x11, 0x71, 0xbd, 0x90, 0x94, 0xd1, 0x60, 0xf8, 0x89, 0x69, 0xda, 0xf5, 0x3c, 0x2e, 0x04, 0x15, - 0x82, 0xba, 0xbc, 0xbd, 0x4b, 0x04, 0x6b, 0xc1, 0x3a, 0x2c, 0x0b, 0xee, 0xa5, 0x3c, 0x73, 0x0a, - 0x5c, 0x0d, 0xe2, 0xea, 0x4a, 0xc2, 0x76, 0xce, 0xbb, 0x06, 0xbd, 0x61, 0x9c, 0x7a, 0xdc, 0x41, - 0x65, 0x38, 0x22, 0xbb, 0x0c, 0xb9, 0x4a, 0xbb, 0x1d, 0xc2, 0x8f, 0xdd, 0xec, 0xfc, 0x04, 0x51, - 0xeb, 0x31, 0x74, 0x84, 0xe0, 0xce, 0x68, 0x4c, 0xeb, 0x61, 0x4a, 0x90, 0x99, 0xb8, 0x29, 0x04, - 0x3f, 0x1a, 0xe3, 0x62, 0x87, 0x3e, 0x86, 0x64, 0x1a, 0x87, 0xdc, 0x71, 0x53, 0xf9, 0x72, 0xd0, - 0x60, 0x35, 0x1c, 0x6f, 0xa7, 0xb2, 0xf8, 0x5c, 0x64, 0x3c, 0x8d, 0xdc, 0x10, 0x27, 0xb7, 0x89, - 0x0a, 0x1a, 0x3a, 0xf4, 0xad, 0x0d, 0xb8, 0x15, 0x0f, 0xfe, 0x82, 0x7b, 0x99, 0x13, 0xc6, 0xde, - 0x28, 0xbf, 0xff, 0x75, 0x48, 0x9a, 0x65, 0x49, 0x7a, 0x19, 0x7b, 0x23, 0x7d, 0xf9, 0x43, 0x75, - 0xea, 0x88, 0x8c, 0x47, 0x5c, 0xa6, 0x55, 0x54, 0xa7, 0x8a, 0x3a, 0xc4, 0xd0, 0xae, 0x49, 0x1a, - 0x4f, 0x03, 0x9f, 0xa7, 0x74, 0x2f, 0x6e, 0xb0, 0x7c, 0x6c, 0xff, 0xce, 0x80, 0xf2, 0x17, 0xbb, - 0x27, 0xef, 0xb3, 0xbd, 0xb2, 0x71, 0xe9, 0x1a, 0x1b, 0x97, 0x6f, 0xb6, 0xb1, 0x79, 0x85, 0x8d, - 0x9f, 0x40, 0x27, 0x49, 0xb9, 0xcf, 0x87, 0x41, 0xc4, 0x7d, 0x07, 0x8d, 0x2b, 0x3d, 0xa1, 0x3d, - 0x43, 0xb7, 0xbd, 0x10, 0xbb, 0x71, 0x0f, 0x81, 0x28, 0x0b, 0xdc, 0x50, 0x50, 0x68, 0x28, 0xbf, - 0xe8, 0x16, 0x70, 0x74, 0x7e, 0x7b, 0x0c, 0x3d, 0x8a, 0x8e, 0xdd, 0x89, 0xc8, 0xe2, 0x31, 0x75, - 0x1e, 0xb8, 0xcb, 0xac, 0x8b, 0xc9, 0xfb, 0xc8, 0x06, 0x6b, 0xcf, 0x50, 0x64, 0xdb, 0x84, 0x3b, - 0xf3, 0x6c, 0x4e, 0xe1, 0xe6, 0xda, 0x60, 0xb7, 0xe6, 0xb8, 0x4f, 0x88, 0x84, 0xc9, 0xaa, 0xb7, - 0x18, 0x8d, 0x3f, 0xbc, 0x1a, 0x3f, 0x86, 0x96, 0xeb, 0x79, 0xf1, 0x24, 0xca, 0x1c, 0xca, 0xea, - 0x52, 0x89, 0x4d, 0x85, 0xbd, 0xc6, 0xe4, 0xfe, 0x00, 0x40, 0x9c, 0xbb, 0x29, 0x97, 0x2d, 0x93, - 0x54, 0x5e, 0x43, 0x22, 0x78, 0xf6, 0x59, 0x20, 0x89, 0xe0, 0x6c, 0x3e, 0x90, 0x4e, 0x82, 0x33, - 0x34, 0x40, 0x41, 0x35, 0xc2, 0x8b, 0x13, 0xae, 0xe3, 0x68, 0x86, 0x9f, 0x20, 0x6c, 0x7d, 0xfe, - 0x8e, 0xb2, 0xe1, 0x8a, 0xe4, 0x55, 0x30, 0xcf, 0x82, 0x19, 0xec, 0xbf, 0x36, 0xa0, 0xba, 0x23, - 0x95, 0xf2, 0xfd, 0x72, 0x51, 0xf9, 0x9a, 0x5c, 0x64, 0x5e, 0xa3, 0xe0, 0xca, 0xcd, 0x0a, 0xae, - 0xbe, 0xab, 0x60, 0x6c, 0xfc, 0x5b, 0xc5, 0xd4, 0x6e, 0x3d, 0xcd, 0x77, 0x31, 0x54, 0xcf, 0xad, - 0x7b, 0x07, 0x42, 0xf3, 0x5d, 0x1f, 0x43, 0x5b, 0x47, 0x99, 0x34, 0x8d, 0xb4, 0x7a, 0x4b, 0x83, - 0x64, 0x9b, 0x5f, 0x40, 0xc5, 0xcd, 0xb2, 0x54, 0xdf, 0x8d, 0x1e, 0x5d, 0x55, 0x4c, 0x36, 0xb6, - 0x91, 0x63, 0x3f, 0xca, 0xd2, 0x4b, 0x26, 0xb9, 0x57, 0x9e, 0x03, 0xcc, 0x40, 0x4c, 0x8e, 0x33, - 0xcf, 0xc6, 0x4f, 0xbc, 0x98, 0x4e, 0xdd, 0x70, 0xa2, 0xf7, 0x94, 0x83, 0x3f, 0x2a, 0x3d, 0x37, - 0xec, 0x87, 0x60, 0x62, 0xd1, 0x91, 0x3a, 0x1c, 0xc7, 0x99, 0xbe, 0xd1, 0xa9, 0x91, 0xfd, 0x2f, - 0x06, 0x74, 0x74, 0xab, 0x2e, 0x92, 0x38, 0x12, 0x98, 0xf4, 0x2a, 0xf2, 0x8e, 0x61, 0xcc, 0x97, - 0x57, 0xba, 0x53, 0x30, 0x49, 0xfb, 0x5f, 0x76, 0xec, 0xdf, 0xe7, 0x25, 0x75, 0xe1, 0x01, 0xae, - 0xf2, 0xbd, 0x1e, 0xe0, 0xec, 0x9f, 0xe2, 0xad, 0x8f, 0xbb, 0xd1, 0xec, 0xca, 0x31, 0xd7, 0xc9, - 0x19, 0xf3, 0x9d, 0x9c, 0x7d, 0x0c, 0xdd, 0x9c, 0xfd, 0x43, 0x8e, 0xdd, 0x87, 0x9a, 0x98, 0x50, - 0xac, 0xd0, 0xa1, 0xeb, 0x4c, 0x0f, 0xed, 0xe7, 0xd0, 0x39, 0x4e, 0x79, 0xe2, 0xa6, 0x5c, 0x0b, - 0xf0, 0x14, 0xba, 0xc2, 0x9d, 0x72, 0x27, 0x8b, 0x9d, 0x62, 0x93, 0x57, 0x67, 0x6d, 0x84, 0x4f, - 0x63, 0x95, 0x43, 0xec, 0x7f, 0x32, 0xa0, 0x9b, 0x4f, 0xfd, 0x40, 0x1b, 0xcc, 0x4e, 0x58, 0x5a, - 0xe8, 0x55, 0x7f, 0x02, 0x96, 0x17, 0x87, 0x21, 0x96, 0x16, 0x7a, 0x98, 0xa6, 0xfc, 0xa0, 0x3a, - 0xc3, 0x9e, 0xa2, 0xa0, 0xda, 0x77, 0x11, 0xc7, 0xf2, 0x39, 0xc7, 0x4d, 0x4f, 0x59, 0xf2, 0x3a, - 0xd5, 0x2d, 0x30, 0x9f, 0x04, 0x5f, 0x71, 0xfb, 0x16, 0x2c, 0xef, 0x9e, 0x73, 0x6f, 0xb4, 0xed, - 0x8f, 0x83, 0x48, 0x1d, 0xd6, 0xfe, 0xad, 0x01, 0x56, 0x11, 0xfd, 0x90, 0x73, 0x3c, 0x9d, 0xeb, - 0x35, 0x30, 0xc2, 0xd4, 0x2f, 0x09, 0x8c, 0xd0, 0x3c, 0xde, 0xd7, 0x61, 0xf9, 0xdc, 0x15, 0x4e, - 0xc2, 0x23, 0x3f, 0x88, 0xce, 0x1c, 0x17, 0x77, 0xa2, 0x13, 0xd5, 0x59, 0xf7, 0xdc, 0x15, 0xc7, - 0x12, 0x27, 0x01, 0xec, 0x7f, 0x35, 0xe0, 0xc1, 0xbe, 0xaa, 0xb3, 0x4a, 0xd1, 0x8c, 0xa3, 0x19, - 0x72, 0xf3, 0x5c, 0x71, 0x6d, 0x33, 0x3e, 0xe8, 0xda, 0xf6, 0x08, 0x9a, 0xaa, 0x76, 0x17, 0xc2, - 0x1d, 0x24, 0xf4, 0x5a, 0x75, 0xd9, 0xa9, 0xdc, 0x53, 0x72, 0xc8, 0xec, 0xd5, 0x54, 0x18, 0xb1, - 0x3c, 0x81, 0x0e, 0x5d, 0x18, 0xa2, 0xcc, 0x09, 0x79, 0x74, 0x96, 0x9d, 0x2b, 0xa5, 0xb7, 0x15, - 0xfa, 0x92, 0x40, 0x7b, 0x15, 0x1e, 0x5e, 0x77, 0x18, 0xa9, 0x68, 0xfb, 0x1f, 0x0c, 0x58, 0x59, - 0x60, 0x39, 0x71, 0xa7, 0x3f, 0xe0, 0x61, 0xdf, 0x3d, 0x49, 0xf9, 0xaa, 0x93, 0x3c, 0x80, 0xfb, - 0x57, 0x8a, 0xa9, 0x8e, 0xf1, 0x57, 0x25, 0xf9, 0x28, 0xea, 0xbb, 0x99, 0x6b, 0xad, 0xeb, 0x6c, - 0x61, 0xcc, 0x3f, 0x24, 0xed, 0xa9, 0xc7, 0x4d, 0xba, 0x76, 0xaa, 0xac, 0xf1, 0x29, 0x34, 0xc9, - 0x71, 0xcf, 0xd2, 0x78, 0x92, 0x60, 0x66, 0xc7, 0x19, 0x77, 0x16, 0x67, 0x7c, 0x81, 0x54, 0x46, - 0xbf, 0xd4, 0xd0, 0xa7, 0x90, 0xf7, 0x29, 0xb4, 0x50, 0xfe, 0x1a, 0x47, 0x57, 0x2d, 0x8c, 0xa0, - 0x47, 0x80, 0xa6, 0x8a, 0xc3, 0x29, 0x2f, 0x5c, 0xaa, 0x40, 0x43, 0xf2, 0xc2, 0x35, 0x76, 0x2f, - 0x90, 0x26, 0x8d, 0x56, 0x19, 0xbb, 0x17, 0x0a, 0x0e, 0x22, 0x84, 0x2b, 0x0a, 0x0e, 0xa2, 0x53, - 0x94, 0x90, 0x7e, 0x20, 0xcb, 0x13, 0x5b, 0x4d, 0x25, 0xb6, 0xc2, 0x2f, 0x16, 0x3a, 0xb1, 0x35, - 0xc7, 0xb3, 0x81, 0xfd, 0xef, 0x06, 0xb4, 0xe7, 0xe4, 0xbf, 0xaa, 0xa5, 0xb7, 0x7e, 0x09, 0xdd, - 0xd9, 0x9b, 0xb0, 0xbc, 0xaa, 0x97, 0x6e, 0xd0, 0x5a, 0x3b, 0x7f, 0x20, 0xa6, 0x7b, 0xe8, 0x4c, - 0xe4, 0x72, 0x51, 0xe4, 0x6b, 0x0e, 0xf8, 0x14, 0xba, 0xc8, 0x5d, 0x54, 0x8e, 0x3c, 0x69, 0x5b, - 0x86, 0xbe, 0xd6, 0xcf, 0x5d, 0xa8, 0x2a, 0x57, 0x90, 0x0f, 0xf3, 0x6a, 0x64, 0x7f, 0x6b, 0x42, - 0xab, 0x28, 0x4d, 0xe1, 0x97, 0x03, 0x63, 0xee, 0x97, 0x03, 0x7d, 0xd0, 0x52, 0xe1, 0xa0, 0xeb, - 0xb0, 0x1c, 0x4d, 0xc6, 0x03, 0x9e, 0x3a, 0xf1, 0xd0, 0xe1, 0x51, 0x96, 0x06, 0x5c, 0x4a, 0x5d, - 0x66, 0x5d, 0x49, 0x78, 0x33, 0xdc, 0x97, 0x70, 0xe1, 0x58, 0xe6, 0xd5, 0xc7, 0xaa, 0x14, 0x8f, - 0xb5, 0x60, 0xef, 0xea, 0x3b, 0xf6, 0xbe, 0x0f, 0x0d, 0xf5, 0x06, 0x17, 0xf8, 0x64, 0xbe, 0x32, - 0xab, 0x4b, 0x60, 0xf1, 0x09, 0xab, 0x7e, 0x7d, 0x41, 0x6c, 0x5c, 0xf1, 0x78, 0x39, 0xfb, 0x15, - 0xe1, 0x47, 0x60, 0xd2, 0x4d, 0xbb, 0x49, 0xce, 0xd1, 0x2b, 0xd6, 0x47, 0xba, 0x51, 0x13, 0x15, - 0x97, 0x0b, 0x84, 0x83, 0x4e, 0x42, 0x17, 0x8e, 0x3a, 0xab, 0x06, 0x82, 0x7e, 0x2a, 0xfd, 0x08, - 0xea, 0xf2, 0x5e, 0xaf, 0x2e, 0x1b, 0x65, 0x56, 0xa3, 0xf1, 0xa1, 0x5f, 0x30, 0x46, 0xa7, 0x68, - 0x0c, 0xeb, 0x0f, 0x61, 0x05, 0x75, 0x34, 0xe0, 0x67, 0xa4, 0x29, 0x27, 0x88, 0x1c, 0x9f, 0x0f, - 0xdd, 0x49, 0x98, 0x39, 0xde, 0x90, 0xae, 0x17, 0x26, 0xbb, 0x33, 0x0e, 0xa2, 0x1d, 0x64, 0x38, - 0x15, 0x87, 0xd1, 0x9e, 0xa4, 0xee, 0x0e, 0x29, 0xbf, 0xd1, 0x8f, 0x79, 0xf1, 0x70, 0x28, 0x78, - 0x46, 0x77, 0x0d, 0x93, 0x35, 0x09, 0x7b, 0x43, 0xd0, 0x8c, 0x45, 0xed, 0xbd, 0x5c, 0x60, 0x91, - 0x19, 0xe1, 0xca, 0x87, 0x06, 0xeb, 0x03, 0x1f, 0x1a, 0x4a, 0xc1, 0xd4, 0xfe, 0x4b, 0x03, 0x96, - 0x8b, 0x8f, 0x2c, 0xfb, 0xba, 0x46, 0x9e, 0xbb, 0x49, 0xc2, 0x23, 0xc7, 0xd5, 0xaf, 0xbf, 0x75, - 0x09, 0x6c, 0xd3, 0xab, 0x24, 0x55, 0x20, 0xc7, 0x8b, 0x7d, 0x9d, 0xd3, 0x1a, 0x84, 0xec, 0xc6, - 0x3e, 0x16, 0x2f, 0xf9, 0x0b, 0xb7, 0x33, 0xe6, 0x42, 0x60, 0xf9, 0x96, 0x09, 0xbc, 0x45, 0xe0, - 0x2b, 0x89, 0xcd, 0x25, 0x10, 0x53, 0x3f, 0xc8, 0x50, 0x02, 0x59, 0xff, 0x63, 0xe8, 0x2e, 0x48, - 0x6e, 0x35, 0xa1, 0xf6, 0xa7, 0xaf, 0x8f, 0x5e, 0xbf, 0xf9, 0xb3, 0xd7, 0xbd, 0x25, 0xab, 0x06, - 0xe5, 0x97, 0x5f, 0x3e, 0xeb, 0x19, 0x16, 0x40, 0xf5, 0xe4, 0xf5, 0xf6, 0xf1, 0xf1, 0x9f, 0xf7, - 0x4a, 0x56, 0x1d, 0xcc, 0x2f, 0x4f, 0x4e, 0xf7, 0x7a, 0xe5, 0xf5, 0xd5, 0xfc, 0x57, 0x70, 0x14, - 0xa6, 0x0e, 0xe6, 0xc9, 0xee, 0x36, 0x4e, 0xab, 0x83, 0xf9, 0xe2, 0xf0, 0xe5, 0x7e, 0xcf, 0x58, - 0x7f, 0x00, 0xcd, 0x42, 0xda, 0xb0, 0xaa, 0x50, 0xfa, 0xf5, 0xcf, 0x7b, 0x4b, 0xf4, 0x77, 0xb3, - 0x67, 0xac, 0x3f, 0x82, 0xba, 0x76, 0x1c, 0xdc, 0x62, 0x8f, 0x87, 0x3c, 0xe3, 0x72, 0xdf, 0xe3, - 0x49, 0xd6, 0x33, 0x36, 0xff, 0xa6, 0x04, 0x55, 0xb9, 0x85, 0xf5, 0x19, 0xa8, 0x1f, 0xf9, 0xad, - 0x3b, 0xf3, 0x6f, 0x63, 0xaa, 0x82, 0xac, 0xdc, 0x5d, 0x84, 0x55, 0xc6, 0x5e, 0xfa, 0xc4, 0xb0, - 0x8e, 0xe1, 0x16, 0xd5, 0xfe, 0x62, 0x05, 0x7e, 0x93, 0x58, 0x1f, 0xe5, 0xf6, 0x5b, 0x6c, 0x17, - 0x56, 0x56, 0xae, 0x22, 0x15, 0x56, 0xfc, 0x25, 0xd4, 0x12, 0xd9, 0x12, 0x59, 0xf9, 0xc6, 0xf3, - 0xed, 0xd5, 0xca, 0xbd, 0x77, 0x70, 0x3d, 0x1f, 0x67, 0x7b, 0xb2, 0xbb, 0xb3, 0x0a, 0x2f, 0xf2, - 0xc5, 0xee, 0x70, 0x36, 0x7b, 0xa1, 0x0d, 0xb4, 0x97, 0x36, 0xff, 0xd9, 0x80, 0xee, 0x42, 0x8d, - 0xb2, 0xbe, 0x84, 0x9a, 0x2a, 0xdb, 0xd6, 0x93, 0xbc, 0x87, 0xb9, 0xa9, 0xbd, 0x58, 0x79, 0xfa, - 0x3e, 0xb6, 0x5c, 0xda, 0x3f, 0x01, 0x13, 0x1b, 0x42, 0xcb, 0xbe, 0x66, 0x46, 0xa1, 0x8e, 0xaf, - 0x3c, 0xbe, 0x91, 0x47, 0x2f, 0xb9, 0xf3, 0xf4, 0x3f, 0xfe, 0xb1, 0x6e, 0xfc, 0xee, 0xbb, 0x87, - 0xc6, 0x37, 0xdf, 0x3d, 0x34, 0xfe, 0xf3, 0xbb, 0x87, 0xc6, 0xdf, 0xff, 0xd7, 0xc3, 0x25, 0xe8, - 0xc5, 0xe9, 0xd9, 0x46, 0x16, 0x8c, 0xa6, 0x1b, 0xa3, 0x29, 0xfd, 0xa7, 0xc5, 0xa0, 0x4a, 0x7f, - 0xb6, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0xbb, 0x27, 0xf0, 0xf7, 0xed, 0x21, 0x00, 0x00, + // 3349 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xdd, 0x6e, 0xe4, 0x46, + 0x76, 0x16, 0xbb, 0xd9, 0x7f, 0xa7, 0x7f, 0x45, 0xcd, 0x8c, 0xdb, 0x9a, 0xcc, 0x8c, 0x4c, 0xef, + 0x4c, 0x14, 0x79, 0x57, 0xeb, 0x95, 0xbc, 0x86, 0x13, 0x6f, 0x60, 0xe8, 0xcf, 0x96, 0x56, 0x33, + 0x63, 0xa5, 0xa4, 0x6c, 0x10, 0xdf, 0x10, 0x6c, 0xb2, 0x5a, 0x62, 0x9a, 0x4d, 0x72, 0x59, 0xec, + 0x1e, 0xc9, 0xef, 0x60, 0x24, 0x41, 0x10, 0x20, 0x2f, 0x10, 0x20, 0x37, 0x79, 0x87, 0x5c, 0x24, + 0xc0, 0x2e, 0x12, 0x20, 0x0b, 0xe4, 0x26, 0x97, 0x81, 0xf3, 0x12, 0xb9, 0x0c, 0xce, 0xa9, 0x2a, + 0x36, 0xbb, 0x47, 0xad, 0x99, 0xd9, 0x04, 0x7b, 0x25, 0xd6, 0x77, 0x4e, 0x55, 0x9d, 0x3a, 0xff, + 0x55, 0x2d, 0x80, 0x41, 0x9a, 0x0c, 0xb6, 0x93, 0x34, 0xce, 0x62, 0xab, 0x3a, 0x70, 0xbd, 0xd1, + 0x24, 0x59, 0x6f, 0x8f, 0xa6, 0x69, 0xe2, 0x69, 0x78, 0xbd, 0xcd, 0xd3, 0x34, 0xce, 0xb9, 0xd6, + 0x5b, 0x63, 0x9e, 0xb9, 0xf9, 0xc8, 0xe2, 0x91, 0x97, 0xde, 0x24, 0x59, 0x10, 0x47, 0x39, 0x76, + 0xef, 0x32, 0xbe, 0x8c, 0xe9, 0xf3, 0xc7, 0xf8, 0xa5, 0xd0, 0x6e, 0x3a, 0x11, 0x19, 0x7d, 0x4a, + 0xc0, 0xfe, 0xe7, 0x1a, 0xc0, 0x3e, 0xed, 0xf8, 0x82, 0x67, 0xae, 0xf5, 0x08, 0xc0, 0x0b, 0x27, + 0x22, 0xe3, 0xa9, 0x13, 0xf8, 0x7d, 0x63, 0xc3, 0xd8, 0x34, 0x59, 0x43, 0x21, 0x27, 0xbe, 0xf5, + 0xfb, 0xd0, 0xd5, 0xe4, 0x29, 0x4f, 0x45, 0x10, 0x47, 0xfd, 0xd2, 0x86, 0xb1, 0xd9, 0x60, 0x1d, + 0x05, 0xff, 0x42, 0xa2, 0xb8, 0xce, 0x60, 0xc6, 0xd3, 0x24, 0x9e, 0xc6, 0x20, 0x27, 0xf7, 0xa1, + 0xa6, 0x69, 0xad, 0x0d, 0x63, 0xb3, 0xc2, 0xf4, 0xd0, 0xb2, 0xa1, 0x32, 0x0c, 0x42, 0x2e, 0xfa, + 0xe6, 0x46, 0x79, 0xb3, 0xb9, 0xd3, 0xda, 0x96, 0xea, 0xd8, 0xfe, 0x32, 0x08, 0x39, 0x93, 0x24, + 0xeb, 0xc7, 0x00, 0xf8, 0xe1, 0x04, 0x91, 0xcf, 0xaf, 0xfb, 0xed, 0x0d, 0x63, 0xb3, 0xb9, 0xd3, + 0xd3, 0x8c, 0x78, 0x0c, 0x62, 0x6e, 0x20, 0xcf, 0x09, 0xb2, 0x58, 0x1f, 0x42, 0x5b, 0x64, 0x6e, + 0x9a, 0xe5, 0x02, 0x55, 0xe8, 0x60, 0x2d, 0x02, 0xb5, 0x4c, 0x4f, 0xa0, 0xc9, 0x23, 0x3f, 0x67, + 0xa9, 0x12, 0x0b, 0xf0, 0xc8, 0xd7, 0x0c, 0x9b, 0x50, 0x13, 0xde, 0x15, 0x1f, 0xbb, 0xa2, 0x5f, + 0x23, 0xe1, 0x3a, 0x7a, 0xcf, 0x73, 0x82, 0x99, 0x26, 0x5b, 0xbb, 0xd0, 0x92, 0x9f, 0x4a, 0xc4, + 0xce, 0x12, 0x11, 0x9b, 0x92, 0x4b, 0x0a, 0xb9, 0x0e, 0x8d, 0x40, 0x38, 0xa9, 0xfb, 0xca, 0x19, + 0x4d, 0xfb, 0xf5, 0x0d, 0x63, 0xb3, 0xce, 0x6a, 0x81, 0x60, 0xee, 0xab, 0xd3, 0x29, 0x9e, 0x18, + 0x09, 0xa9, 0x1b, 0x5d, 0x72, 0xd1, 0x6f, 0xd0, 0xee, 0xf9, 0x72, 0xcc, 0x7d, 0xc5, 0x90, 0xc0, + 0x1a, 0xa9, 0xfa, 0x12, 0xd6, 0x67, 0xd0, 0xcd, 0x27, 0x28, 0x21, 0xba, 0x4b, 0x84, 0x68, 0xeb, + 0x59, 0x52, 0x0c, 0x0b, 0x4c, 0xdf, 0x0f, 0x45, 0x1f, 0x36, 0x8c, 0xcd, 0x16, 0xa3, 0x6f, 0xeb, + 0x27, 0xd0, 0xf4, 0xfd, 0x50, 0xae, 0xc3, 0x45, 0xbf, 0xb7, 0x64, 0x25, 0xf0, 0xfd, 0xf0, 0x44, + 0xf2, 0xa0, 0xca, 0x25, 0xd9, 0x49, 0xb9, 0x98, 0x84, 0x59, 0x7f, 0x95, 0x7c, 0xa0, 0x25, 0x41, + 0x46, 0x98, 0xf5, 0x09, 0x34, 0xdd, 0x24, 0xc8, 0x55, 0x6e, 0x6d, 0x18, 0x9b, 0x9d, 0x9d, 0xb5, + 0x6d, 0xed, 0xf9, 0x7b, 0x67, 0x27, 0x4a, 0xf7, 0x0c, 0xdc, 0x24, 0xd0, 0x76, 0xd8, 0x85, 0x7a, + 0x12, 0x87, 0x81, 0x17, 0x70, 0xd1, 0x5f, 0x23, 0x55, 0xbc, 0xa7, 0x45, 0x39, 0x0b, 0x5d, 0x8f, + 0x8f, 0x79, 0x94, 0x9d, 0x21, 0xc3, 0x0d, 0xcb, 0x19, 0xad, 0x4f, 0xe0, 0x41, 0xc4, 0x5f, 0x39, + 0x5e, 0x1c, 0x86, 0x2e, 0xc6, 0x89, 0x70, 0x78, 0xe4, 0x0e, 0x42, 0xee, 0xf7, 0xef, 0x91, 0x60, + 0xf7, 0x22, 0xfe, 0xea, 0x20, 0x27, 0x1e, 0x49, 0x9a, 0xb2, 0x49, 0x76, 0x1d, 0xa1, 0x4d, 0xee, + 0x6b, 0x9b, 0x5c, 0x5c, 0x47, 0xa7, 0x53, 0x6b, 0x0b, 0x6a, 0xfe, 0xc0, 0x19, 0xbb, 0x89, 0xe8, + 0x3f, 0x20, 0x29, 0x56, 0x73, 0x29, 0x82, 0x2c, 0x3d, 0xdc, 0x7f, 0xe1, 0x26, 0xac, 0xea, 0x0f, + 0x5e, 0xb8, 0x89, 0xb0, 0x9e, 0x81, 0x39, 0x8e, 0x7d, 0xde, 0x7f, 0x8f, 0x4e, 0x68, 0x69, 0x46, + 0x15, 0x78, 0xb1, 0xcf, 0x19, 0xd1, 0xad, 0x8f, 0xa0, 0xaa, 0x6c, 0xdc, 0xa7, 0x25, 0xd7, 0xe6, + 0x39, 0xa5, 0x99, 0x15, 0xcb, 0xcf, 0xcd, 0x7a, 0xb9, 0x67, 0x32, 0x33, 0x71, 0xb3, 0x2b, 0xfb, + 0x12, 0x9a, 0x05, 0x16, 0xeb, 0x21, 0x34, 0xa4, 0xc3, 0x8f, 0xf8, 0x0d, 0x45, 0x71, 0x8b, 0xd5, + 0x09, 0x38, 0xe5, 0x37, 0xd6, 0x7b, 0x50, 0x43, 0x47, 0x47, 0x52, 0x89, 0x48, 0x55, 0x1e, 0xf9, + 0x48, 0xc8, 0x63, 0xaf, 0xbc, 0x34, 0xf6, 0xec, 0x5f, 0x97, 0xc0, 0xc4, 0x31, 0xfa, 0x49, 0xe4, + 0x8e, 0x39, 0xad, 0xde, 0x60, 0xf4, 0x6d, 0x3d, 0x80, 0xaa, 0xb8, 0x72, 0x77, 0x7e, 0xfa, 0xa9, + 0x5e, 0x58, 0x8e, 0xe6, 0xc5, 0x29, 0x2f, 0x17, 0xc7, 0x9c, 0x13, 0xe7, 0xff, 0x27, 0x6a, 0xd7, + 0xa1, 0xee, 0xa5, 0xde, 0xa7, 0x9f, 0x5c, 0xc7, 0x69, 0xbf, 0x46, 0xd4, 0x7c, 0x8c, 0x72, 0x65, + 0x71, 0xe6, 0x86, 0xce, 0x68, 0x2a, 0x28, 0xe4, 0x4c, 0x56, 0x27, 0xe0, 0x74, 0x2a, 0x70, 0x65, + 0x49, 0x1c, 0xdc, 0x64, 0x14, 0x74, 0xb4, 0x32, 0x41, 0xfb, 0x88, 0x58, 0x1d, 0x28, 0x79, 0x43, + 0x8a, 0x93, 0x06, 0x2b, 0x79, 0x43, 0xd4, 0x88, 0x08, 0xbe, 0xe5, 0x94, 0xed, 0x4c, 0x46, 0xdf, + 0xb8, 0x83, 0x17, 0x24, 0x57, 0x98, 0x4e, 0xa7, 0x94, 0xea, 0x5a, 0xac, 0x2e, 0x81, 0x93, 0xa9, + 0xfd, 0x5d, 0x09, 0xea, 0x3a, 0x78, 0xac, 0x8f, 0x00, 0x30, 0xa7, 0x3b, 0xd2, 0x02, 0xc6, 0x2d, + 0x16, 0x68, 0x8c, 0x15, 0xaf, 0x40, 0x66, 0xdf, 0xcd, 0x99, 0x4b, 0xb7, 0x31, 0x23, 0x5d, 0x32, + 0x17, 0xf2, 0x56, 0xf9, 0xee, 0xbc, 0x35, 0x9f, 0x66, 0xcc, 0xb7, 0x49, 0x33, 0x79, 0x94, 0xcb, + 0x39, 0xd5, 0xe5, 0x6e, 0xab, 0x43, 0x5f, 0xce, 0xd4, 0x69, 0xa6, 0xb2, 0x51, 0xd6, 0x69, 0xc6, + 0x7e, 0x0a, 0xdd, 0x85, 0x00, 0x46, 0xb6, 0x20, 0x1a, 0xc6, 0xca, 0x87, 0xe9, 0xdb, 0xfe, 0xb5, + 0x01, 0x55, 0x29, 0x39, 0x9a, 0xc0, 0x1f, 0x28, 0x62, 0xc9, 0x1f, 0x58, 0xf7, 0xa0, 0x92, 0x61, + 0xe4, 0x2a, 0xff, 0x93, 0x83, 0x39, 0x17, 0x28, 0xdf, 0xe5, 0x02, 0xe6, 0xdd, 0x2e, 0x50, 0x79, + 0xcd, 0x05, 0xfe, 0x00, 0x7a, 0x59, 0x30, 0x0c, 0x5d, 0x71, 0xe5, 0xa4, 0x3c, 0x09, 0x03, 0xcf, + 0x15, 0xe4, 0x82, 0x6d, 0xd6, 0x55, 0x38, 0x53, 0x30, 0x8a, 0x26, 0x32, 0x37, 0x13, 0xe4, 0x84, + 0x2d, 0x26, 0x07, 0xf6, 0x0b, 0xa8, 0x9c, 0x1c, 0xbe, 0x70, 0x13, 0xdc, 0x6a, 0x92, 0x88, 0x2c, + 0xe5, 0xee, 0x58, 0x57, 0xde, 0x32, 0x03, 0x0d, 0x9d, 0xf8, 0x18, 0x0d, 0x7e, 0xfc, 0x2a, 0x9a, + 0xb1, 0x94, 0x88, 0xa5, 0x35, 0x03, 0x4f, 0x7c, 0xfb, 0x15, 0xb4, 0x30, 0xf9, 0x5c, 0xe0, 0xb1, + 0x71, 0xd5, 0xdb, 0x82, 0xf4, 0x07, 0x50, 0x0d, 0x7c, 0xcc, 0x5b, 0xb4, 0x42, 0x73, 0xa7, 0xad, + 0x8d, 0x45, 0x82, 0xb0, 0x4a, 0xe0, 0xe3, 0xcc, 0x1f, 0x01, 0x24, 0x6e, 0x9a, 0x05, 0x94, 0x0e, + 0x95, 0xdf, 0x2c, 0x70, 0x16, 0x18, 0x6c, 0x01, 0x8d, 0x3c, 0xeb, 0xfd, 0x1f, 0x76, 0xfd, 0x21, + 0x54, 0xc9, 0x64, 0x7a, 0xc7, 0x7b, 0xc5, 0x94, 0xaa, 0x4f, 0xc5, 0x14, 0x8f, 0x7d, 0x06, 0x75, + 0xed, 0x94, 0xbf, 0x65, 0xc6, 0x93, 0x21, 0x5c, 0xd6, 0x21, 0x6c, 0x1f, 0x42, 0xe7, 0x40, 0x35, + 0x3b, 0x87, 0x47, 0xd8, 0x70, 0x61, 0xa7, 0xe2, 0x4d, 0xd2, 0x94, 0x47, 0x99, 0xea, 0x86, 0xf4, + 0x10, 0x29, 0x29, 0xff, 0xe5, 0x84, 0x8b, 0x8c, 0x16, 0x35, 0x99, 0x1e, 0xda, 0xff, 0x66, 0x40, + 0x45, 0xce, 0xee, 0x41, 0x79, 0x2c, 0x2e, 0x95, 0x22, 0xf0, 0xd3, 0xda, 0x87, 0xde, 0xac, 0xc1, + 0x72, 0xa8, 0xa9, 0xa3, 0xfd, 0x9b, 0x3b, 0x0f, 0xf4, 0x59, 0xe7, 0x25, 0x38, 0x5e, 0xc9, 0x9b, + 0xab, 0x13, 0x5f, 0xae, 0xba, 0x0d, 0xf5, 0xd1, 0x54, 0xcd, 0x35, 0x69, 0xee, 0x6a, 0x5e, 0x33, + 0x4f, 0xf9, 0x8d, 0x9e, 0x56, 0x1b, 0x4d, 0x25, 0xff, 0x2e, 0xb4, 0x52, 0x7e, 0x19, 0xc4, 0x91, + 0x9a, 0x53, 0xa1, 0x39, 0x9d, 0x6d, 0xdd, 0x52, 0xea, 0x09, 0x4d, 0xc9, 0x45, 0xc3, 0xfd, 0x3a, + 0x54, 0x7d, 0x9e, 0xb9, 0x41, 0x68, 0x87, 0x00, 0x07, 0x32, 0x65, 0x45, 0xc3, 0xd8, 0xfa, 0x02, + 0x9a, 0x2a, 0xa3, 0x65, 0x37, 0x89, 0xb4, 0x71, 0x67, 0xe7, 0xf1, 0xf6, 0x5c, 0x07, 0x7a, 0x94, + 0x0f, 0x5e, 0xf0, 0xec, 0x2a, 0xf6, 0x19, 0xc8, 0x29, 0x17, 0x37, 0x09, 0xa7, 0x16, 0x53, 0x2e, + 0x30, 0xb3, 0x87, 0x4a, 0x92, 0xa7, 0xfc, 0xc6, 0xfe, 0xae, 0x0a, 0x6d, 0x95, 0x36, 0xa4, 0x3a, + 0xdf, 0xd4, 0x93, 0xce, 0x59, 0xbe, 0xb4, 0xdc, 0xf2, 0xe5, 0xbb, 0x8b, 0x8b, 0xf9, 0xe6, 0xe2, + 0x52, 0x79, 0xad, 0xb8, 0x3c, 0xc2, 0x84, 0x99, 0x71, 0x27, 0x0c, 0xc6, 0x41, 0xa6, 0xca, 0x4b, + 0x03, 0x91, 0xe7, 0x08, 0x58, 0x1b, 0xd0, 0xf4, 0xe2, 0x48, 0x3a, 0x8c, 0x77, 0x43, 0x15, 0xa6, + 0xcd, 0x8a, 0x90, 0xf5, 0x05, 0x74, 0x45, 0x16, 0xa7, 0xee, 0x25, 0x77, 0xd0, 0xfa, 0x3c, 0xf2, + 0xa9, 0xd0, 0x14, 0xbc, 0xe1, 0x5c, 0x92, 0xf7, 0x25, 0x95, 0x75, 0xc4, 0xdc, 0x78, 0xbe, 0x6b, + 0x84, 0xf9, 0xae, 0x51, 0x7a, 0x77, 0x33, 0x2f, 0x50, 0xe8, 0x7b, 0xf1, 0x38, 0x49, 0xb9, 0x40, + 0xe1, 0xa5, 0xfd, 0x5a, 0x64, 0xbf, 0xbc, 0x81, 0x3a, 0x98, 0xd1, 0xd1, 0x58, 0xac, 0xeb, 0xcd, + 0x03, 0xd6, 0x47, 0xb0, 0x5a, 0x5c, 0x23, 0xe4, 0x53, 0x1e, 0x52, 0x0b, 0x5e, 0x61, 0xc5, 0xc5, + 0x9f, 0x23, 0x6e, 0xed, 0xe6, 0xbe, 0x42, 0x49, 0x5c, 0xb6, 0xc1, 0x79, 0xf7, 0x33, 0x73, 0x2a, + 0xed, 0x1f, 0xe4, 0x60, 0x9f, 0x43, 0xd7, 0x17, 0x99, 0x53, 0x6c, 0x0c, 0xbb, 0xcb, 0x1b, 0xc3, + 0xb6, 0x2f, 0xb2, 0xbd, 0x59, 0x6f, 0xf8, 0x31, 0x80, 0x98, 0x0c, 0x74, 0x35, 0xea, 0xa9, 0xbe, + 0xac, 0x10, 0x1c, 0xaa, 0x84, 0x89, 0xc9, 0x40, 0x15, 0xa2, 0x0f, 0x30, 0x38, 0x28, 0x47, 0x3b, + 0x29, 0x77, 0x7d, 0xea, 0x53, 0xeb, 0x18, 0x0a, 0x84, 0x31, 0xee, 0xfa, 0x79, 0xf7, 0x66, 0xbd, + 0xa1, 0x7b, 0x7b, 0x08, 0x8d, 0x49, 0x14, 0xfc, 0x72, 0xc2, 0xd1, 0x4f, 0xd7, 0x48, 0xed, 0x75, + 0x09, 0x9c, 0xf8, 0xd8, 0x2e, 0x7a, 0x71, 0x94, 0xf1, 0xeb, 0x8c, 0x3a, 0x4e, 0x2c, 0xac, 0x5a, + 0xac, 0x03, 0x89, 0x33, 0xcd, 0xf0, 0x73, 0xb3, 0x5e, 0xed, 0xd5, 0x54, 0x67, 0xf7, 0xb7, 0x25, + 0xb8, 0x77, 0x4e, 0xf9, 0x5d, 0xee, 0x77, 0xe1, 0x8a, 0x11, 0xe9, 0xe9, 0x63, 0xa8, 0x29, 0x5f, + 0xa0, 0x98, 0x58, 0xee, 0x32, 0x9a, 0xcd, 0x7a, 0x1f, 0x64, 0x60, 0x38, 0x99, 0xd0, 0x29, 0x8b, + 0xc6, 0x17, 0xc2, 0xba, 0x0f, 0x18, 0x18, 0x48, 0x90, 0x05, 0xb2, 0xc2, 0x23, 0xff, 0x42, 0xe4, + 0x99, 0xdc, 0x2c, 0x64, 0xf2, 0x0f, 0xa0, 0x45, 0xf9, 0x17, 0x9b, 0x8f, 0x8c, 0xa7, 0x54, 0xc1, + 0x1b, 0xac, 0x49, 0xd8, 0x97, 0x04, 0xdd, 0xea, 0x68, 0xd5, 0x77, 0x73, 0x34, 0xd6, 0x09, 0x5d, + 0x91, 0x39, 0x93, 0xc4, 0xc7, 0xf8, 0xca, 0x84, 0xee, 0x7a, 0x59, 0x15, 0x0b, 0xe7, 0x44, 0xd8, + 0xbf, 0x29, 0x41, 0x67, 0xfe, 0xa0, 0x96, 0x0d, 0x66, 0x14, 0xc7, 0x89, 0x52, 0x47, 0xde, 0x0f, + 0xbd, 0x8c, 0xe3, 0xe4, 0x78, 0x85, 0x11, 0xcd, 0x7a, 0x0a, 0x95, 0x30, 0xf6, 0xdc, 0x70, 0xb1, + 0x0c, 0x3d, 0x47, 0xf0, 0x78, 0x85, 0x49, 0xaa, 0xf5, 0x7b, 0x50, 0x12, 0xbb, 0x2a, 0x31, 0x43, + 0xae, 0xd7, 0xdd, 0xe3, 0x15, 0x56, 0x12, 0xbb, 0xd6, 0x13, 0x28, 0x5f, 0x7a, 0x42, 0xe5, 0xde, + 0xa6, 0x26, 0x7f, 0x75, 0x70, 0x7e, 0xbc, 0xc2, 0x90, 0x62, 0x7d, 0x0e, 0x6d, 0x2f, 0x8c, 0x27, + 0xbe, 0xe3, 0xdf, 0x44, 0xee, 0x38, 0xf0, 0x54, 0xca, 0xbd, 0x37, 0x4b, 0xf1, 0xf1, 0xc4, 0x3f, + 0x94, 0xb4, 0xe3, 0x15, 0xd6, 0xf2, 0x0a, 0x63, 0x3c, 0xc6, 0x95, 0x3f, 0x94, 0x8d, 0x44, 0xe1, + 0x18, 0xc7, 0x87, 0x5f, 0xe2, 0xfa, 0x44, 0xb3, 0x8e, 0xc1, 0x72, 0xbf, 0x9d, 0xa4, 0xdc, 0x19, + 0x84, 0xf1, 0xc0, 0xd1, 0x7e, 0x50, 0xa3, 0x19, 0x7d, 0x3d, 0x63, 0x0f, 0x39, 0xf6, 0xc3, 0x78, + 0xa0, 0xf4, 0x74, 0xbc, 0xc2, 0x7a, 0xee, 0x02, 0xb6, 0xdf, 0x80, 0x9a, 0xca, 0x3c, 0x76, 0x15, + 0x4c, 0xd4, 0x95, 0xfd, 0x10, 0x2a, 0xa4, 0x0e, 0x34, 0x3f, 0xfa, 0xa0, 0x2e, 0xe4, 0xe4, 0x8f, + 0xff, 0x53, 0x86, 0xd2, 0xf9, 0x2e, 0xf6, 0x54, 0x3c, 0xf2, 0x93, 0x38, 0x50, 0x85, 0xb1, 0xc1, + 0xf2, 0x31, 0x5e, 0x03, 0x64, 0x25, 0x51, 0x8f, 0x03, 0x6a, 0x84, 0xf8, 0x60, 0xe2, 0x8d, 0x78, + 0xa6, 0x2a, 0xae, 0x1a, 0x21, 0x9e, 0xa4, 0x7c, 0x18, 0x5c, 0x2b, 0x3f, 0x53, 0x23, 0x99, 0xa3, + 0x65, 0x72, 0xf4, 0x42, 0x57, 0xc8, 0x06, 0xac, 0x81, 0x39, 0x9a, 0xc0, 0x03, 0xc4, 0xb0, 0xc4, + 0x0a, 0x21, 0xdd, 0xab, 0xc1, 0xf0, 0x13, 0x11, 0xd7, 0x0b, 0x49, 0x19, 0x0d, 0x86, 0x9f, 0x98, + 0xa6, 0x5d, 0xcf, 0xe3, 0x42, 0x50, 0x21, 0xa8, 0xcb, 0xd7, 0x08, 0x89, 0x60, 0x2d, 0xd8, 0x82, + 0x55, 0xc1, 0xbd, 0x94, 0x67, 0x4e, 0x81, 0xab, 0x41, 0x5c, 0x5d, 0x49, 0xd8, 0xcb, 0x79, 0x37, + 0xa1, 0x37, 0x8c, 0x53, 0x8f, 0x3b, 0xa8, 0x0c, 0x47, 0x64, 0x37, 0x21, 0x57, 0x69, 0xb7, 0x43, + 0xf8, 0x99, 0x9b, 0x5d, 0x9d, 0x23, 0x6a, 0x7d, 0x08, 0x1d, 0x21, 0xb8, 0x33, 0x1a, 0xd3, 0x7a, + 0x98, 0x12, 0x64, 0x26, 0x6e, 0x0a, 0xc1, 0x4f, 0xc7, 0xb8, 0xd8, 0x89, 0x8f, 0x21, 0x99, 0xc6, + 0x21, 0x77, 0xdc, 0x54, 0xbe, 0x84, 0x34, 0x58, 0x0d, 0xc7, 0x7b, 0xa9, 0x2c, 0x3e, 0xd7, 0x19, + 0x4f, 0x23, 0x37, 0xc4, 0xc9, 0x6d, 0xa2, 0x82, 0x86, 0x4e, 0x7c, 0x6b, 0x1b, 0xd6, 0xe2, 0xc1, + 0x5f, 0x70, 0x2f, 0x73, 0xc2, 0xd8, 0x1b, 0xe5, 0xf7, 0xd9, 0x0e, 0x49, 0xb3, 0x2a, 0x49, 0xcf, + 0x63, 0x6f, 0xa4, 0x2f, 0xb3, 0xa8, 0x4e, 0x1d, 0x91, 0xf1, 0x88, 0xcb, 0xb4, 0x8a, 0xea, 0x54, + 0x51, 0x87, 0x18, 0xda, 0x35, 0x49, 0xe3, 0x69, 0xe0, 0xf3, 0x94, 0xee, 0xf9, 0x0d, 0x96, 0x8f, + 0xed, 0x5f, 0x19, 0x50, 0xfe, 0xea, 0xe0, 0xfc, 0x4d, 0xb6, 0x57, 0x36, 0x2e, 0x2d, 0xb1, 0x71, + 0xf9, 0x6e, 0x1b, 0x9b, 0xb7, 0xd8, 0xf8, 0x29, 0x74, 0x92, 0x94, 0xfb, 0x7c, 0x18, 0x44, 0xdc, + 0x77, 0xd0, 0xb8, 0xd2, 0x13, 0xda, 0x33, 0x74, 0xcf, 0x0b, 0xb1, 0x1b, 0xf7, 0x10, 0x88, 0xb2, + 0xc0, 0x0d, 0x05, 0x85, 0x86, 0xf2, 0x8b, 0x6e, 0x01, 0x47, 0xe7, 0xb7, 0xc7, 0xd0, 0xa3, 0xe8, + 0x38, 0x98, 0x88, 0x2c, 0x1e, 0x53, 0xe7, 0x81, 0xbb, 0xcc, 0xba, 0x98, 0xbc, 0x8f, 0x6c, 0xb0, + 0xf6, 0x0c, 0x45, 0xb6, 0x1d, 0xb8, 0x3f, 0xcf, 0xe6, 0x14, 0xee, 0xbc, 0x0d, 0xb6, 0x36, 0xc7, + 0x7d, 0x4e, 0x24, 0x4c, 0x56, 0xbd, 0xc5, 0x68, 0xfc, 0xdd, 0xab, 0xf1, 0x03, 0x68, 0xb9, 0x9e, + 0x17, 0x4f, 0xa2, 0xcc, 0xa1, 0xac, 0x2e, 0x95, 0xd8, 0x54, 0xd8, 0x4b, 0x4c, 0xee, 0x8f, 0x00, + 0xc4, 0x95, 0x9b, 0x72, 0xd9, 0x32, 0x49, 0xe5, 0x35, 0x24, 0x82, 0x67, 0x9f, 0x05, 0x92, 0x08, + 0x2e, 0xe7, 0x03, 0xe9, 0x3c, 0xb8, 0x44, 0x03, 0x14, 0x54, 0x23, 0xbc, 0x38, 0xe1, 0x3a, 0x8e, + 0x66, 0xf8, 0x39, 0xc2, 0xd6, 0x17, 0xaf, 0x29, 0x1b, 0x6e, 0x49, 0x5e, 0x05, 0xf3, 0x2c, 0x98, + 0xc1, 0xfe, 0x6b, 0x03, 0xaa, 0xfb, 0x52, 0x29, 0x6f, 0x97, 0x8b, 0xca, 0x4b, 0x72, 0x91, 0xb9, + 0x44, 0xc1, 0x95, 0xbb, 0x15, 0x5c, 0x7d, 0x5d, 0xc1, 0xd8, 0xf8, 0xb7, 0x8a, 0xa9, 0xdd, 0x7a, + 0x96, 0xef, 0x62, 0xa8, 0x9e, 0x5b, 0xf7, 0x0e, 0x84, 0xe6, 0xbb, 0x7e, 0x08, 0x6d, 0x1d, 0x65, + 0xd2, 0x34, 0xd2, 0xea, 0x2d, 0x0d, 0x92, 0x6d, 0x7e, 0x0a, 0x15, 0x37, 0xcb, 0x52, 0x7d, 0x37, + 0x7a, 0x72, 0x5b, 0x31, 0xd9, 0xde, 0x43, 0x8e, 0xa3, 0x28, 0x4b, 0x6f, 0x98, 0xe4, 0x5e, 0xff, + 0x0c, 0x60, 0x06, 0x62, 0x72, 0x9c, 0x79, 0x36, 0x7e, 0xe2, 0xc5, 0x74, 0xea, 0x86, 0x13, 0xbd, + 0xa7, 0x1c, 0xfc, 0x51, 0xe9, 0x33, 0xc3, 0x7e, 0x0c, 0x26, 0x16, 0x1d, 0xa9, 0xc3, 0x71, 0x9c, + 0xe9, 0x1b, 0x9d, 0x1a, 0xd9, 0xff, 0x62, 0x40, 0x47, 0xb7, 0xea, 0x22, 0x89, 0x23, 0x81, 0x49, + 0xaf, 0x22, 0xef, 0x18, 0xc6, 0x7c, 0x79, 0xa5, 0x3b, 0x05, 0x93, 0xb4, 0xdf, 0xb2, 0x63, 0x7f, + 0x9b, 0x97, 0xe1, 0x85, 0x07, 0xc5, 0xca, 0x5b, 0x3d, 0x28, 0xda, 0x3f, 0xc2, 0x5b, 0x1f, 0x77, + 0xa3, 0xd9, 0x95, 0x63, 0xae, 0x93, 0x33, 0xe6, 0x3b, 0x39, 0xfb, 0x0c, 0xba, 0x39, 0xfb, 0xbb, + 0x1c, 0xbb, 0x0f, 0x35, 0x31, 0xa1, 0x58, 0xa1, 0x43, 0xd7, 0x99, 0x1e, 0xda, 0x9f, 0x41, 0xe7, + 0x2c, 0xe5, 0x89, 0x9b, 0x72, 0x2d, 0xc0, 0x33, 0xe8, 0x0a, 0x77, 0xca, 0x9d, 0x2c, 0x76, 0x8a, + 0x4d, 0x5e, 0x9d, 0xb5, 0x11, 0xbe, 0x88, 0x55, 0x0e, 0xb1, 0xff, 0xd1, 0x80, 0x6e, 0x3e, 0xf5, + 0x1d, 0x6d, 0x30, 0x3b, 0x61, 0x69, 0xa1, 0x57, 0xfd, 0x21, 0x58, 0x5e, 0x1c, 0x86, 0x58, 0x5a, + 0xe8, 0xa1, 0x9d, 0xf2, 0x83, 0xea, 0x0c, 0x7b, 0x8a, 0x82, 0x6a, 0x3f, 0x40, 0x1c, 0xcb, 0xe7, + 0x1c, 0x37, 0x3d, 0x82, 0xc9, 0xeb, 0x54, 0xb7, 0xc0, 0x7c, 0x1e, 0x7c, 0xcb, 0xed, 0x35, 0x58, + 0x3d, 0xb8, 0xe2, 0xde, 0x68, 0xcf, 0x1f, 0x07, 0x91, 0x3a, 0xac, 0xfd, 0x9d, 0x01, 0x56, 0x11, + 0x7d, 0x97, 0x73, 0x3c, 0x9b, 0xeb, 0x35, 0x30, 0xc2, 0xd4, 0x2f, 0x23, 0x8c, 0xd0, 0x3c, 0xde, + 0xb7, 0x60, 0xf5, 0xca, 0x15, 0x4e, 0xc2, 0x23, 0x3f, 0x88, 0x2e, 0x1d, 0x17, 0x77, 0xa2, 0x13, + 0xd5, 0x59, 0xf7, 0xca, 0x15, 0x67, 0x12, 0x27, 0x01, 0xec, 0x7f, 0x35, 0xe0, 0xd1, 0x91, 0xaa, + 0xb3, 0x4a, 0xd1, 0x8c, 0xa3, 0x19, 0x72, 0xf3, 0xdc, 0x72, 0x6d, 0x33, 0xde, 0xe9, 0xda, 0xf6, + 0x04, 0x9a, 0xaa, 0x76, 0x17, 0xc2, 0x1d, 0x24, 0xf4, 0x52, 0x75, 0xd9, 0xa9, 0xdc, 0x53, 0x72, + 0xc8, 0xec, 0xd5, 0x54, 0x18, 0xb1, 0x3c, 0x85, 0x0e, 0x5d, 0x18, 0xa2, 0xcc, 0x09, 0x79, 0x74, + 0x99, 0x5d, 0x29, 0xa5, 0xb7, 0x15, 0xfa, 0x9c, 0x40, 0x7b, 0x03, 0x1e, 0x2f, 0x3b, 0x8c, 0x54, + 0xb4, 0xfd, 0xf7, 0x06, 0xac, 0x2f, 0xb0, 0x9c, 0xbb, 0xd3, 0xdf, 0xe1, 0x61, 0x5f, 0x3f, 0x49, + 0xf9, 0xb6, 0x93, 0x3c, 0x82, 0x87, 0xb7, 0x8a, 0xa9, 0x8e, 0xf1, 0x57, 0xea, 0x39, 0xd5, 0x77, + 0x33, 0xd7, 0xda, 0xd2, 0xd9, 0xc2, 0x98, 0x7f, 0x48, 0x3a, 0x54, 0xcf, 0xa2, 0x74, 0xed, 0x54, + 0x59, 0xe3, 0x53, 0x68, 0x92, 0xe3, 0x5e, 0xa6, 0xf1, 0x24, 0xd1, 0x6f, 0x98, 0xf7, 0x17, 0x67, + 0x7c, 0x85, 0x54, 0x46, 0xbf, 0x3c, 0xd1, 0xa7, 0x90, 0xf7, 0x29, 0xb4, 0x50, 0xfe, 0x1a, 0x47, + 0x57, 0x2d, 0x8c, 0xa0, 0x27, 0x80, 0xa6, 0x8a, 0xc3, 0x29, 0x2f, 0x5c, 0xaa, 0x40, 0x43, 0xf2, + 0xc2, 0x35, 0x76, 0xaf, 0x91, 0x26, 0x8d, 0x56, 0x19, 0xbb, 0xd7, 0x0a, 0x0e, 0x22, 0x84, 0x2b, + 0x0a, 0x0e, 0xa2, 0x0b, 0x94, 0x90, 0x7e, 0xf0, 0xcb, 0x13, 0x5b, 0x4d, 0x25, 0xb6, 0xc2, 0x2f, + 0x30, 0x3a, 0xb1, 0x35, 0xc7, 0xb3, 0x81, 0xfd, 0xef, 0x06, 0xb4, 0xe7, 0xe4, 0xbf, 0xad, 0xa5, + 0xb7, 0x7e, 0x06, 0xdd, 0xd9, 0x6b, 0xb2, 0xbc, 0xaa, 0x97, 0xee, 0xd0, 0x5a, 0x3b, 0x7f, 0x5a, + 0xa6, 0x7b, 0xe8, 0x4c, 0xe4, 0x72, 0x51, 0xe4, 0x25, 0x07, 0x7c, 0x06, 0x5d, 0xe4, 0x2e, 0x2a, + 0x47, 0x9e, 0xb4, 0x2d, 0x43, 0x5f, 0xeb, 0xe7, 0x01, 0x54, 0x95, 0x2b, 0xc8, 0x27, 0x7d, 0x35, + 0xb2, 0xff, 0xc3, 0x84, 0x56, 0x51, 0x9a, 0xc2, 0x6f, 0x0e, 0xc6, 0xdc, 0x6f, 0x0e, 0xfa, 0xa0, + 0xa5, 0xc2, 0x41, 0xb7, 0x60, 0x35, 0x9a, 0x8c, 0x07, 0x3c, 0x75, 0xe2, 0xa1, 0xc3, 0xa3, 0x2c, + 0x0d, 0xb8, 0x94, 0xba, 0xcc, 0xba, 0x92, 0xf0, 0xf5, 0xf0, 0x48, 0xc2, 0x85, 0x63, 0x99, 0xb7, + 0x1f, 0xab, 0x52, 0x3c, 0xd6, 0x82, 0xbd, 0xab, 0xaf, 0xd9, 0xfb, 0x21, 0x34, 0xd4, 0x1b, 0x5c, + 0xe0, 0x93, 0xf9, 0xca, 0xac, 0x2e, 0x81, 0xc5, 0x27, 0xac, 0xfa, 0xf2, 0x82, 0xd8, 0xb8, 0xe5, + 0xf1, 0x72, 0xf6, 0xfb, 0xc3, 0x0f, 0xc0, 0xa4, 0x9b, 0x76, 0x93, 0x9c, 0xa3, 0x57, 0xac, 0x8f, + 0x74, 0xa3, 0x26, 0x2a, 0x2e, 0x17, 0x08, 0x07, 0x9d, 0x84, 0x2e, 0x1c, 0x75, 0x56, 0x0d, 0x04, + 0xfd, 0xf4, 0xfb, 0x3e, 0xd4, 0xe5, 0xbd, 0x5e, 0x5d, 0x36, 0xca, 0xac, 0x46, 0xe3, 0x13, 0xbf, + 0x60, 0x8c, 0x4e, 0xd1, 0x18, 0xd6, 0x1f, 0xc2, 0x3a, 0xea, 0x68, 0xc0, 0x2f, 0x49, 0x53, 0x4e, + 0x10, 0x39, 0x3e, 0x1f, 0xba, 0x93, 0x30, 0x73, 0xbc, 0x21, 0x5d, 0x2f, 0x4c, 0x76, 0x7f, 0x1c, + 0x44, 0xfb, 0xc8, 0x70, 0x21, 0x4e, 0xa2, 0x43, 0x49, 0x3d, 0x18, 0x52, 0x7e, 0xa3, 0x1f, 0x27, + 0xe3, 0xe1, 0x50, 0xf0, 0x8c, 0xee, 0x1a, 0x26, 0x6b, 0x12, 0xf6, 0x35, 0x41, 0x33, 0x16, 0xb5, + 0xf7, 0x6a, 0x81, 0x45, 0x66, 0x84, 0x5b, 0x1f, 0x1a, 0xac, 0x77, 0x7c, 0x68, 0x28, 0x05, 0x53, + 0xfb, 0x2f, 0x0d, 0x58, 0x2d, 0x3e, 0xb2, 0x1c, 0xe9, 0x1a, 0x79, 0xe5, 0x26, 0x09, 0x8f, 0x1c, + 0x57, 0xbf, 0xfe, 0xd6, 0x25, 0xb0, 0x47, 0xaf, 0x92, 0x54, 0x81, 0x1c, 0x2f, 0xf6, 0x75, 0x4e, + 0x6b, 0x10, 0x72, 0x10, 0xfb, 0x58, 0xbc, 0xe4, 0x2f, 0xf6, 0xce, 0x98, 0x0b, 0x81, 0xe5, 0x5b, + 0x26, 0xf0, 0x16, 0x81, 0x2f, 0x24, 0x36, 0x97, 0x40, 0x4c, 0xfd, 0x20, 0x43, 0x09, 0x64, 0xeb, + 0x8f, 0xa1, 0xbb, 0x20, 0xb9, 0xd5, 0x84, 0xda, 0x9f, 0xbe, 0x3c, 0x7d, 0xf9, 0xf5, 0x9f, 0xbd, + 0xec, 0xad, 0x58, 0x35, 0x28, 0x3f, 0xff, 0xe6, 0x93, 0x9e, 0x61, 0x01, 0x54, 0xcf, 0x5f, 0xee, + 0x9d, 0x9d, 0xfd, 0x79, 0xaf, 0x64, 0xd5, 0xc1, 0xfc, 0xe6, 0xfc, 0xe2, 0xb0, 0x57, 0xde, 0xda, + 0xc8, 0x7f, 0xd5, 0x47, 0x61, 0xea, 0x60, 0x9e, 0x1f, 0xec, 0xe1, 0xb4, 0x3a, 0x98, 0x5f, 0x9e, + 0x3c, 0x3f, 0xea, 0x19, 0x5b, 0x8f, 0xa0, 0x59, 0x48, 0x1b, 0x56, 0x15, 0x4a, 0xbf, 0xf8, 0x49, + 0x6f, 0x85, 0xfe, 0xee, 0xf4, 0x8c, 0xad, 0x27, 0x50, 0xd7, 0x8e, 0x83, 0x5b, 0x1c, 0xf2, 0x90, + 0x67, 0x5c, 0xee, 0x7b, 0x36, 0xc9, 0x7a, 0xc6, 0xce, 0xdf, 0x94, 0xa0, 0x2a, 0xb7, 0xb0, 0x3e, + 0x07, 0xf5, 0x4f, 0x0b, 0xd6, 0xfd, 0x85, 0x1f, 0x7e, 0x64, 0x05, 0x59, 0x7f, 0xb0, 0x08, 0xab, + 0x8c, 0xbd, 0xf2, 0xb1, 0x61, 0x9d, 0xc1, 0x1a, 0xd5, 0xfe, 0x62, 0x05, 0xfe, 0x3a, 0xb1, 0xde, + 0xcf, 0xed, 0xb7, 0xd8, 0x2e, 0xac, 0xaf, 0xdf, 0x46, 0x2a, 0xac, 0xf8, 0x33, 0xa8, 0x25, 0xb2, + 0x25, 0xb2, 0xf2, 0x8d, 0xe7, 0xdb, 0xab, 0xf5, 0xf7, 0x5e, 0xc3, 0xf5, 0x7c, 0x9c, 0xed, 0xc9, + 0xee, 0xce, 0x2a, 0xbc, 0xc8, 0x17, 0xbb, 0xc3, 0xd9, 0xec, 0x85, 0x36, 0xd0, 0x5e, 0xd9, 0xf9, + 0x27, 0x03, 0xba, 0x0b, 0x35, 0xca, 0xfa, 0x06, 0x6a, 0xaa, 0x6c, 0x5b, 0x4f, 0xf3, 0x1e, 0xe6, + 0xae, 0xf6, 0x62, 0xfd, 0xd9, 0x9b, 0xd8, 0x72, 0x69, 0xff, 0x04, 0x4c, 0x6c, 0x08, 0x2d, 0x7b, + 0xc9, 0x8c, 0x42, 0x1d, 0x5f, 0xff, 0xf0, 0x4e, 0x1e, 0xbd, 0xe4, 0xfe, 0xb3, 0xff, 0xfc, 0x87, + 0xba, 0xf1, 0xab, 0xef, 0x1f, 0x1b, 0xbf, 0xf9, 0xfe, 0xb1, 0xf1, 0x5f, 0xdf, 0x3f, 0x36, 0xfe, + 0xee, 0xbf, 0x1f, 0xaf, 0x40, 0x2f, 0x4e, 0x2f, 0xb7, 0xb3, 0x60, 0x34, 0xdd, 0x1e, 0x4d, 0xe9, + 0x3f, 0x47, 0x06, 0x55, 0xfa, 0xb3, 0xfb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x93, 0x10, + 0x38, 0xbd, 0x22, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4175,6 +4260,22 @@ func (m *BackupMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Ranges) > 0 { + for iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + } if m.Mode != 0 { i = encodeVarintBrpb(dAtA, i, uint64(m.Mode)) i-- @@ -4397,6 +4498,61 @@ func (m *BackupMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *BackupRange) 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 *BackupRange) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupRange) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Files) > 0 { + for iNdEx := len(m.Files) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Files[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.EndKey) > 0 { + i -= len(m.EndKey) + copy(dAtA[i:], m.EndKey) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.EndKey))) + i-- + dAtA[i] = 0x12 + } + if len(m.StartKey) > 0 { + i -= len(m.StartKey) + copy(dAtA[i:], m.StartKey) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.StartKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *File) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4520,6 +4676,20 @@ func (m *MetaFile) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.BackupRanges) > 0 { + for iNdEx := len(m.BackupRanges) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.BackupRanges[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintBrpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } if len(m.Ddls) > 0 { for iNdEx := len(m.Ddls) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Ddls[iNdEx]) @@ -7027,6 +7197,38 @@ func (m *BackupMeta) Size() (n int) { if m.Mode != 0 { n += 2 + sovBrpb(uint64(m.Mode)) } + if len(m.Ranges) > 0 { + for _, e := range m.Ranges { + l = e.Size() + n += 2 + l + sovBrpb(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *BackupRange) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.StartKey) + if l > 0 { + n += 1 + l + sovBrpb(uint64(l)) + } + l = len(m.EndKey) + if l > 0 { + n += 1 + l + sovBrpb(uint64(l)) + } + if len(m.Files) > 0 { + for _, e := range m.Files { + l = e.Size() + n += 1 + l + sovBrpb(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7123,6 +7325,12 @@ func (m *MetaFile) Size() (n int) { n += 1 + l + sovBrpb(uint64(l)) } } + if len(m.BackupRanges) > 0 { + for _, e := range m.BackupRanges { + l = e.Size() + n += 1 + l + sovBrpb(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -8915,6 +9123,193 @@ func (m *BackupMeta) Unmarshal(dAtA []byte) error { break } } + case 24: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ranges = append(m.Ranges, &BackupRange{}) + if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipBrpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthBrpb + } + 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 *BackupRange) 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 ErrIntOverflowBrpb + } + 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: BackupRange: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupRange: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StartKey = append(m.StartKey[:0], dAtA[iNdEx:postIndex]...) + if m.StartKey == nil { + m.StartKey = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...) + if m.EndKey == nil { + m.EndKey = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Files", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Files = append(m.Files, &File{}) + if err := m.Files[len(m.Files)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipBrpb(dAtA[iNdEx:]) @@ -9499,6 +9894,40 @@ func (m *MetaFile) Unmarshal(dAtA []byte) error { m.Ddls = append(m.Ddls, make([]byte, postIndex-iNdEx)) copy(m.Ddls[len(m.Ddls)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BackupRanges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BackupRanges = append(m.BackupRanges, &BackupRange{}) + if err := m.BackupRanges[len(m.BackupRanges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipBrpb(dAtA[iNdEx:]) diff --git a/pkg/import_sstpb/import_sstpb.pb.go b/pkg/import_sstpb/import_sstpb.pb.go index 21eaaa35c..c8efab26c 100644 --- a/pkg/import_sstpb/import_sstpb.pb.go +++ b/pkg/import_sstpb/import_sstpb.pb.go @@ -938,6 +938,11 @@ func (m *CompactResponse) XXX_DiscardUnknown() { var xxx_messageInfo_CompactResponse proto.InternalMessageInfo type DownloadRequest struct { + // Map represents the map of . + // We'll generate all SSTMeta into one SST File. + Ssts map[string]*SSTMeta `protobuf:"bytes,1,rep,name=ssts,proto3" json:"ssts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // resolved_ts is used to merge related SST Files. + ResolvedTs uint64 `protobuf:"varint,3,opt,name=resolved_ts,json=resolvedTs,proto3" json:"resolved_ts,omitempty"` // The SST meta used to identify the downloaded file. // Must be the same among all nodes in the same Raft group. // Note: the "crc32" and "cf_name" fields are ignored in this request, @@ -1008,6 +1013,20 @@ func (m *DownloadRequest) XXX_DiscardUnknown() { var xxx_messageInfo_DownloadRequest proto.InternalMessageInfo +func (m *DownloadRequest) GetSsts() map[string]*SSTMeta { + if m != nil { + return m.Ssts + } + return nil +} + +func (m *DownloadRequest) GetResolvedTs() uint64 { + if m != nil { + return m.ResolvedTs + } + return 0 +} + func (m *DownloadRequest) GetSst() SSTMeta { if m != nil { return m.Sst @@ -1142,10 +1161,13 @@ type DownloadResponse struct { // zero, indicating the CRC32 was not calculated). Crc32 uint32 `protobuf:"varint,4,opt,name=crc32,proto3" json:"crc32,omitempty"` // The actual length of the rewritten SST file. - Length uint64 `protobuf:"varint,5,opt,name=length,proto3" json:"length,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Length uint64 `protobuf:"varint,5,opt,name=length,proto3" json:"length,omitempty"` + // This field only return when file-copy backup enabled. + // Because it will merge many SST files in a download request. + Ssts []*SSTMeta `protobuf:"bytes,6,rep,name=ssts,proto3" json:"ssts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *DownloadResponse) Reset() { *m = DownloadResponse{} } @@ -1216,6 +1238,13 @@ func (m *DownloadResponse) GetLength() uint64 { return 0 } +func (m *DownloadResponse) GetSsts() []*SSTMeta { + if m != nil { + return m.Ssts + } + return nil +} + type SetDownloadSpeedLimitRequest struct { // The download speed limit (bytes/second). Set to 0 for unlimited speed. SpeedLimit uint64 `protobuf:"varint,1,opt,name=speed_limit,json=speedLimit,proto3" json:"speed_limit,omitempty"` @@ -2455,6 +2484,7 @@ func init() { proto.RegisterType((*CompactRequest)(nil), "import_sstpb.CompactRequest") proto.RegisterType((*CompactResponse)(nil), "import_sstpb.CompactResponse") proto.RegisterType((*DownloadRequest)(nil), "import_sstpb.DownloadRequest") + proto.RegisterMapType((map[string]*SSTMeta)(nil), "import_sstpb.DownloadRequest.SstsEntry") proto.RegisterType((*Error)(nil), "import_sstpb.Error") proto.RegisterType((*DownloadResponse)(nil), "import_sstpb.DownloadResponse") proto.RegisterType((*SetDownloadSpeedLimitRequest)(nil), "import_sstpb.SetDownloadSpeedLimitRequest") @@ -2479,134 +2509,138 @@ func init() { func init() { proto.RegisterFile("import_sstpb.proto", fileDescriptor_4d076b7935cfab6b) } var fileDescriptor_4d076b7935cfab6b = []byte{ - // 2020 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x72, 0x1b, 0x4b, - 0xf5, 0xf7, 0xe8, 0x5b, 0x47, 0x9f, 0xe9, 0xf8, 0x3a, 0x13, 0x25, 0xb1, 0x9d, 0xf9, 0xe7, 0xde, - 0xbf, 0xe2, 0x80, 0x1d, 0x1c, 0xc8, 0x82, 0x05, 0xa9, 0xeb, 0x0f, 0x6e, 0x8c, 0xe3, 0x6b, 0x33, - 0x32, 0x61, 0xc1, 0x62, 0x6a, 0x3c, 0x6a, 0xdb, 0x83, 0x46, 0x33, 0xc3, 0x74, 0x4b, 0x8e, 0x36, - 0x3c, 0x00, 0x4f, 0x40, 0xb1, 0xa1, 0x60, 0x75, 0x8b, 0x35, 0x55, 0x14, 0x6f, 0x70, 0x97, 0xb0, - 0x63, 0x45, 0x51, 0xe1, 0x45, 0xa8, 0x3e, 0xdd, 0x23, 0xcd, 0x4c, 0xe4, 0x28, 0x76, 0xc1, 0x4a, - 0xdd, 0xa7, 0xcf, 0x9c, 0x3e, 0x7d, 0x3e, 0x7e, 0xfd, 0x6b, 0x01, 0x71, 0x87, 0x61, 0x10, 0x71, - 0x8b, 0x31, 0x1e, 0x9e, 0x6d, 0x86, 0x51, 0xc0, 0x03, 0x52, 0x4f, 0xca, 0x3a, 0xf5, 0x21, 0xe5, - 0x76, 0xbc, 0xd6, 0x69, 0xd0, 0x28, 0x0a, 0xa2, 0xd9, 0x74, 0x30, 0x8e, 0x42, 0x67, 0x3a, 0x5d, - 0xbe, 0x08, 0x2e, 0x02, 0x1c, 0x6e, 0x89, 0x91, 0x92, 0xb6, 0xa2, 0x11, 0xe3, 0x38, 0x54, 0x02, - 0x38, 0x9b, 0x5a, 0x30, 0x7c, 0xb8, 0xd3, 0xbb, 0x72, 0xb9, 0x73, 0x79, 0x14, 0xf4, 0xa9, 0x49, - 0x7f, 0x35, 0xa2, 0x8c, 0x93, 0xef, 0x40, 0x61, 0x18, 0xf4, 0xa9, 0xae, 0xad, 0x6b, 0xdd, 0xe6, - 0xb6, 0xbe, 0x99, 0x72, 0x32, 0xa1, 0x8e, 0x5a, 0xe4, 0x19, 0x94, 0x22, 0xdb, 0xbf, 0xa0, 0x4c, - 0xcf, 0xad, 0xe7, 0xbb, 0xb5, 0xed, 0xbb, 0x69, 0x7d, 0x53, 0xac, 0x99, 0x4a, 0xc5, 0x58, 0x06, - 0x92, 0xdc, 0x8f, 0x85, 0x81, 0xcf, 0xa8, 0xd1, 0x86, 0xe6, 0x57, 0x94, 0x27, 0x5c, 0x30, 0x5e, - 0x41, 0x6b, 0x2a, 0x91, 0x4a, 0x37, 0xf3, 0xca, 0xd8, 0x82, 0x22, 0xee, 0x4c, 0x96, 0xa1, 0xc8, - 0xb8, 0x1d, 0x71, 0xfc, 0xae, 0x6e, 0xca, 0x09, 0x69, 0x43, 0x9e, 0xfa, 0x7d, 0x3d, 0x87, 0x32, - 0x31, 0x34, 0xfe, 0x90, 0x87, 0x72, 0xaf, 0x77, 0x7a, 0x44, 0xb9, 0x4d, 0x08, 0x14, 0x46, 0x23, - 0xb7, 0xaf, 0x3e, 0xc1, 0x31, 0x79, 0x0a, 0x45, 0x3c, 0x03, 0x7e, 0x73, 0xcd, 0x29, 0xa5, 0x86, - 0xd8, 0xd2, 0x89, 0x9c, 0x17, 0xdb, 0x7a, 0x7e, 0x5d, 0xeb, 0x36, 0x4c, 0x39, 0x21, 0x2b, 0x50, - 0xf2, 0xa8, 0x7f, 0xc1, 0x2f, 0xf5, 0xc2, 0xba, 0xd6, 0x2d, 0x98, 0x6a, 0x46, 0xee, 0x41, 0xd9, - 0x39, 0xb7, 0x7c, 0x7b, 0x48, 0xf5, 0xe2, 0xba, 0xd6, 0xad, 0x9a, 0x25, 0xe7, 0xfc, 0x6b, 0x7b, - 0x48, 0xc9, 0x03, 0xa8, 0x46, 0xf4, 0xc2, 0x0d, 0x7c, 0xcb, 0xed, 0xeb, 0x25, 0xfc, 0xa6, 0x22, - 0x05, 0x07, 0x7d, 0xf2, 0x12, 0xea, 0x6a, 0x91, 0x86, 0x81, 0x73, 0xa9, 0x97, 0x95, 0x57, 0xaa, - 0x5c, 0x4c, 0x5c, 0xdb, 0x17, 0x4b, 0x66, 0x2d, 0x9a, 0x4d, 0xc8, 0x06, 0xdc, 0xa1, 0x7e, 0xdf, - 0x1a, 0xd0, 0x89, 0x45, 0xdf, 0x39, 0xde, 0x88, 0xb9, 0x63, 0xaa, 0x57, 0xd6, 0xb5, 0x6e, 0xc5, - 0x6c, 0x51, 0xbf, 0x7f, 0x48, 0x27, 0xfb, 0xb1, 0x58, 0x38, 0xc0, 0x03, 0x6e, 0x7b, 0xd6, 0x60, - 0xcc, 0xf4, 0xaa, 0x74, 0x00, 0x05, 0x87, 0x63, 0x46, 0xd6, 0xa0, 0x26, 0x17, 0xcf, 0x26, 0x9c, - 0x32, 0x1d, 0x70, 0x19, 0x50, 0xb4, 0x23, 0x24, 0xe4, 0xfb, 0x50, 0xb3, 0x43, 0xd7, 0x1a, 0xd3, - 0x88, 0xb9, 0x81, 0xaf, 0xd7, 0x30, 0x6d, 0x77, 0x37, 0xe3, 0x92, 0xfd, 0xf2, 0xe4, 0xe0, 0xad, - 0x5c, 0x32, 0xc1, 0x0e, 0x5d, 0x35, 0x16, 0x7b, 0x3a, 0x6e, 0x78, 0x49, 0x23, 0xcb, 0x1d, 0xeb, - 0x75, 0x8c, 0x7f, 0x45, 0x0a, 0x0e, 0xc6, 0xc6, 0xaf, 0xa1, 0x66, 0xd2, 0xab, 0xc8, 0xe5, 0xd4, - 0x1c, 0x79, 0x94, 0x3c, 0x81, 0x66, 0xe0, 0xc9, 0xb3, 0x84, 0x11, 0x3d, 0x77, 0xdf, 0xa9, 0x84, - 0xd5, 0x03, 0x4f, 0x1c, 0xe4, 0x04, 0x65, 0x42, 0xcb, 0xa7, 0x57, 0x49, 0x2d, 0x99, 0xf5, 0xba, - 0x4f, 0xaf, 0x66, 0x5a, 0xff, 0x07, 0x0d, 0xa1, 0xc5, 0xdd, 0x21, 0x65, 0xdc, 0x1e, 0x86, 0x98, - 0xbb, 0x02, 0x2a, 0x9d, 0xc6, 0x32, 0xe3, 0x17, 0xd0, 0xf8, 0x59, 0xe8, 0x05, 0x76, 0x3f, 0xee, - 0x94, 0x67, 0x50, 0x10, 0x01, 0xc7, 0x7d, 0x6b, 0xdb, 0x9f, 0x65, 0x6a, 0x52, 0x56, 0xd3, 0xeb, - 0x25, 0x13, 0x95, 0xc8, 0x32, 0x14, 0xfa, 0x36, 0xb7, 0xe5, 0xf6, 0x42, 0x2a, 0x66, 0x3b, 0x65, - 0x28, 0x3a, 0x97, 0x23, 0x7f, 0x20, 0x9a, 0x20, 0x36, 0xae, 0xda, 0xa2, 0x0f, 0x8d, 0x03, 0xd1, - 0x35, 0x3c, 0xde, 0x6e, 0x03, 0xca, 0x4e, 0xe0, 0x73, 0xfa, 0x8e, 0xab, 0x1d, 0xdb, 0xd3, 0x70, - 0xee, 0x4a, 0xb9, 0x19, 0x2b, 0x90, 0xff, 0x87, 0x3c, 0x63, 0x5c, 0x55, 0xeb, 0x7c, 0xcf, 0x4c, - 0xa1, 0x61, 0x0c, 0x80, 0x1c, 0x8d, 0x3c, 0xee, 0xde, 0x7e, 0xab, 0xa7, 0x50, 0x60, 0x8c, 0xc7, - 0xfd, 0x7f, 0xcd, 0x5e, 0xa8, 0x62, 0xbc, 0x84, 0x66, 0xbc, 0x8f, 0x6a, 0xeb, 0x27, 0x50, 0x44, - 0x50, 0x53, 0xdb, 0x34, 0x37, 0x63, 0x88, 0xdb, 0x17, 0xbf, 0xa6, 0x5c, 0x34, 0x7e, 0xa3, 0x41, - 0x73, 0x37, 0x18, 0x86, 0xb6, 0x33, 0xf5, 0x70, 0xda, 0x90, 0xda, 0xc2, 0x86, 0x7c, 0x0c, 0xf5, - 0x60, 0xc4, 0xc3, 0x11, 0xb7, 0x3c, 0x3a, 0xa6, 0x1e, 0x06, 0xa5, 0x68, 0xd6, 0xa4, 0xec, 0x8d, - 0x10, 0x25, 0xcf, 0x9b, 0x5f, 0x70, 0x5e, 0xe3, 0x0e, 0xb4, 0xa6, 0xbe, 0xa8, 0x54, 0xfd, 0x3d, - 0x0f, 0xad, 0xbd, 0xe0, 0xca, 0x4f, 0x16, 0xc7, 0x77, 0x17, 0x67, 0x60, 0xa7, 0xf0, 0xed, 0x3f, - 0xd7, 0x96, 0x30, 0x0f, 0x02, 0x74, 0x10, 0x04, 0xaa, 0x08, 0x02, 0x38, 0x26, 0x3b, 0xa2, 0xcb, - 0xb1, 0xe0, 0xad, 0x68, 0xe4, 0x51, 0xbd, 0x81, 0xb6, 0xee, 0x67, 0x8e, 0x3a, 0x6b, 0x09, 0x65, - 0xaf, 0x16, 0x25, 0xba, 0xe4, 0x15, 0xb4, 0x18, 0x0f, 0x22, 0xfb, 0x82, 0x5a, 0x67, 0xb6, 0x33, - 0x10, 0xb0, 0xd7, 0x44, 0x33, 0x2b, 0x9b, 0x62, 0x3e, 0x0a, 0x37, 0x7b, 0x72, 0x79, 0x47, 0xae, - 0x9a, 0x4d, 0x96, 0x9a, 0x93, 0x2e, 0xb4, 0x63, 0x03, 0x8e, 0xed, 0x5c, 0x52, 0x01, 0x47, 0x77, - 0xd0, 0xc9, 0x58, 0x73, 0x57, 0x88, 0x0f, 0xfa, 0xa4, 0x03, 0x55, 0x97, 0x59, 0x91, 0x7d, 0x65, - 0x0d, 0xc6, 0x7a, 0x0b, 0x41, 0xa5, 0xec, 0x32, 0xd3, 0xbe, 0x3a, 0x1c, 0x93, 0x17, 0x50, 0x8b, - 0x1b, 0xdb, 0x3f, 0x0f, 0xf4, 0x36, 0xba, 0x40, 0x62, 0x17, 0x76, 0x65, 0x8b, 0xfb, 0xe7, 0x81, - 0x09, 0xce, 0x74, 0x4c, 0xf6, 0xc4, 0xf9, 0x31, 0x9a, 0x16, 0x9f, 0x84, 0x54, 0x27, 0x08, 0x22, - 0x8f, 0xd3, 0xe7, 0xcf, 0xc4, 0xfd, 0x74, 0x12, 0x52, 0x11, 0x81, 0xe9, 0x24, 0x99, 0xdb, 0xbb, - 0x0b, 0x72, 0xfb, 0x93, 0x42, 0xa5, 0xd2, 0xae, 0x9a, 0xf9, 0x51, 0xe4, 0x19, 0x26, 0x14, 0xb1, - 0x06, 0x89, 0x0e, 0xe5, 0x21, 0x65, 0xcc, 0x56, 0xb5, 0x56, 0x35, 0xe3, 0x29, 0xd9, 0x82, 0x9a, - 0x08, 0x01, 0xb5, 0x64, 0x09, 0xe7, 0xe6, 0x96, 0x30, 0xa0, 0x0a, 0x8e, 0x8d, 0xbf, 0x68, 0xd0, - 0x9e, 0xf9, 0xab, 0x5a, 0x60, 0x6b, 0x71, 0x25, 0xab, 0xc4, 0xaa, 0x7a, 0xbe, 0x0f, 0x15, 0x97, - 0x59, 0x74, 0x18, 0xf2, 0x09, 0xee, 0x89, 0x61, 0xde, 0x17, 0x53, 0xd1, 0x15, 0xd2, 0x97, 0xfc, - 0x3c, 0x5b, 0xc9, 0x9e, 0x9a, 0x5d, 0x53, 0x85, 0xf9, 0xd7, 0x54, 0x31, 0x79, 0x4d, 0x19, 0xaf, - 0xe0, 0x61, 0x8f, 0xf2, 0xd8, 0xf7, 0x5e, 0x48, 0x69, 0xff, 0x8d, 0x3b, 0x74, 0xa7, 0xed, 0xb8, - 0x06, 0x35, 0x26, 0x84, 0x96, 0x27, 0xa4, 0x78, 0x94, 0x82, 0x09, 0x6c, 0xaa, 0x67, 0xac, 0xc1, - 0xa3, 0x6b, 0x0c, 0xa8, 0x1e, 0x0a, 0xa1, 0x70, 0x62, 0xbb, 0x91, 0xb8, 0x9b, 0x07, 0x74, 0xa2, - 0xb0, 0x5c, 0x0c, 0x85, 0xa7, 0x63, 0xdb, 0x1b, 0x51, 0x85, 0xdc, 0x72, 0x42, 0x3e, 0x87, 0x5c, - 0x20, 0x71, 0xba, 0x99, 0x6d, 0x2f, 0x61, 0x67, 0xf3, 0xf8, 0xc4, 0xcc, 0x05, 0xa1, 0x71, 0x1f, - 0x72, 0xc7, 0x27, 0xa4, 0x0c, 0xf9, 0x93, 0x11, 0x6f, 0x2f, 0x11, 0x80, 0xd2, 0x1e, 0xf5, 0x28, - 0xa7, 0x6d, 0xcd, 0xe8, 0x01, 0xfc, 0x5c, 0xf4, 0xc9, 0x8e, 0xcd, 0x9d, 0x4b, 0xbc, 0x7a, 0x82, - 0xe1, 0xd0, 0xe5, 0x16, 0x67, 0xca, 0xff, 0x8a, 0x14, 0x9c, 0x32, 0xd2, 0x85, 0x62, 0x68, 0xbb, - 0x51, 0x0c, 0x72, 0xe4, 0xc3, 0xfd, 0x4c, 0xa9, 0x60, 0xfc, 0x51, 0x83, 0x3a, 0x5a, 0xbd, 0xd5, - 0x25, 0xf1, 0x1c, 0x8a, 0x67, 0xc2, 0x1b, 0x55, 0x4b, 0x19, 0x9a, 0x33, 0xf3, 0xf6, 0xf5, 0x92, - 0x29, 0x15, 0x6f, 0x82, 0x5c, 0xb3, 0xcb, 0xe6, 0x02, 0x1a, 0xca, 0x47, 0x55, 0x83, 0x4f, 0xd3, - 0x30, 0xfc, 0xb1, 0xba, 0x79, 0x06, 0x45, 0xe1, 0xea, 0x02, 0xbc, 0x97, 0x3a, 0xe2, 0xca, 0x34, - 0xed, 0xab, 0x44, 0x94, 0xdb, 0x90, 0xe7, 0xdc, 0x53, 0xf1, 0x15, 0xc3, 0x4f, 0x0f, 0x2d, 0x69, - 0x42, 0x8e, 0x33, 0x75, 0x33, 0xe7, 0x38, 0x33, 0xbe, 0xd1, 0xa0, 0x15, 0x5b, 0xbf, 0x55, 0xb4, - 0x5f, 0xa4, 0xa3, 0xfd, 0x20, 0xdb, 0x79, 0x57, 0xff, 0xb5, 0x80, 0xff, 0x12, 0xda, 0x33, 0x4f, - 0xff, 0xc7, 0x31, 0xff, 0xab, 0x06, 0x2b, 0x7b, 0xa3, 0xd0, 0x73, 0x1d, 0x9b, 0xd3, 0x3d, 0xca, - 0xa9, 0x73, 0xab, 0x6b, 0xfd, 0x01, 0x54, 0x91, 0x2c, 0x0b, 0xea, 0xa4, 0x3a, 0xaf, 0x82, 0x82, - 0x43, 0x3a, 0x11, 0xac, 0x55, 0xf1, 0x48, 0x0c, 0x42, 0xdd, 0x2c, 0x49, 0xf6, 0x28, 0xb0, 0x49, - 0x50, 0xad, 0xc0, 0xf7, 0x26, 0x08, 0x2c, 0x15, 0xb3, 0x3c, 0xa0, 0x93, 0x63, 0xdf, 0x9b, 0x10, - 0x03, 0x1a, 0x43, 0xd7, 0xb7, 0x66, 0x4d, 0x26, 0x11, 0xa6, 0x36, 0x74, 0xfd, 0x5d, 0xd5, 0x67, - 0xc6, 0x11, 0x94, 0x0e, 0xc7, 0x37, 0x82, 0x81, 0x54, 0xdb, 0xe6, 0xd3, 0x6d, 0x6b, 0xfc, 0x49, - 0x83, 0x7b, 0x1f, 0x84, 0x42, 0x85, 0xff, 0x7b, 0x33, 0x0a, 0xfd, 0x11, 0x02, 0x12, 0xb3, 0x67, - 0x4c, 0xc3, 0x73, 0xa8, 0x22, 0x73, 0x4e, 0xa0, 0xfd, 0xdc, 0xac, 0x89, 0x10, 0xc8, 0x2f, 0x36, - 0xe2, 0xe2, 0xce, 0x63, 0xe2, 0x96, 0xd3, 0xda, 0xf2, 0xa8, 0x31, 0x72, 0xfc, 0x3e, 0x0f, 0xa5, - 0xc3, 0xb7, 0xf1, 0x0b, 0x04, 0xc9, 0x80, 0x96, 0x20, 0x03, 0x8f, 0xa1, 0x8e, 0xf0, 0x6f, 0x05, - 0xe7, 0xe7, 0x8c, 0x72, 0x64, 0xd4, 0x05, 0xb3, 0x86, 0xb2, 0x63, 0x14, 0x25, 0xc0, 0x3b, 0x97, - 0x7a, 0x63, 0x4c, 0x3f, 0x55, 0xab, 0xf5, 0xc4, 0xa7, 0x6f, 0xa4, 0x4a, 0x13, 0x72, 0xce, 0x39, - 0xc6, 0xaf, 0x6a, 0xe6, 0x9c, 0x73, 0x11, 0x56, 0x97, 0x59, 0x7d, 0x84, 0x4a, 0x95, 0xc8, 0x8a, - 0xcb, 0x24, 0x74, 0x8a, 0x24, 0xcb, 0xd2, 0xe0, 0x31, 0xf3, 0x2f, 0xe3, 0xfc, 0x94, 0x91, 0x47, - 0x00, 0x11, 0x95, 0x97, 0xe2, 0x34, 0xc3, 0x55, 0x25, 0x39, 0x65, 0xe9, 0xa2, 0x2a, 0x5d, 0x5f, - 0x54, 0xe5, 0x54, 0x51, 0xad, 0x40, 0x89, 0x5d, 0xda, 0xdb, 0x3f, 0x78, 0x89, 0x4f, 0x95, 0xba, - 0xa9, 0x66, 0xe2, 0x35, 0x23, 0xad, 0x31, 0xdf, 0x0e, 0xd9, 0x65, 0x80, 0x0e, 0xc9, 0x97, 0x4a, - 0x0b, 0x17, 0x7a, 0x4a, 0x7e, 0xca, 0xc8, 0x0e, 0xb4, 0x9d, 0x60, 0x18, 0x46, 0x94, 0x89, 0x87, - 0x86, 0xe4, 0x13, 0x0d, 0xbc, 0x3c, 0xee, 0x4d, 0x59, 0xc8, 0x6c, 0x1d, 0x59, 0x44, 0xcb, 0x49, - 0x0b, 0x8c, 0x3f, 0xe7, 0xa1, 0xfe, 0x65, 0x18, 0x7a, 0x93, 0xb8, 0x9f, 0xba, 0x29, 0xb4, 0xc9, - 0x66, 0xf7, 0xad, 0x64, 0xbe, 0x08, 0x35, 0x1b, 0x71, 0x07, 0xd7, 0xe7, 0x16, 0xc2, 0xdb, 0x44, - 0x03, 0x7f, 0x40, 0xfb, 0x72, 0xb7, 0xa0, 0x7d, 0x3f, 0x82, 0x46, 0xd2, 0x06, 0xd3, 0x1b, 0xb8, - 0xef, 0xf5, 0x46, 0xcc, 0x7a, 0xe2, 0x73, 0x36, 0x97, 0xf5, 0x15, 0xe7, 0xb2, 0xbe, 0x39, 0x04, - 0x33, 0x7f, 0x23, 0x82, 0x99, 0x00, 0xa5, 0xc2, 0x22, 0x50, 0xca, 0xd0, 0xc8, 0xda, 0xa7, 0xd0, - 0x48, 0x63, 0x00, 0x0d, 0x95, 0xb5, 0xdb, 0x32, 0xae, 0x29, 0x54, 0xe7, 0x16, 0x41, 0xb5, 0xf1, - 0x05, 0xd4, 0x77, 0x3d, 0x6a, 0x47, 0x71, 0x89, 0xac, 0x40, 0x29, 0xf1, 0x3a, 0xad, 0x9a, 0x6a, - 0x66, 0xfc, 0x10, 0x1a, 0x4a, 0xef, 0xc6, 0xd7, 0xc1, 0xc6, 0x13, 0x80, 0xd9, 0x3f, 0x1e, 0x82, - 0xd2, 0x7c, 0x1d, 0x44, 0x43, 0xdb, 0x93, 0xf4, 0xe6, 0x00, 0x3f, 0x6b, 0x6b, 0x1b, 0x5b, 0x70, - 0x77, 0x0e, 0x37, 0x16, 0x2a, 0x6f, 0xe8, 0x85, 0xed, 0x4c, 0xda, 0x4b, 0xa4, 0x0e, 0x95, 0x43, - 0x3a, 0x61, 0xa1, 0xed, 0xd0, 0xb6, 0xb6, 0xfd, 0xbb, 0x0a, 0x54, 0xe5, 0xd7, 0xbd, 0xde, 0x29, - 0xf9, 0x69, 0x6a, 0x93, 0xb5, 0x6b, 0xff, 0x70, 0x91, 0xa6, 0x3b, 0xeb, 0xd7, 0x2b, 0x28, 0x82, - 0xb7, 0x44, 0x5e, 0x43, 0x59, 0xfd, 0xad, 0x43, 0x1e, 0xa6, 0xd5, 0xd3, 0xff, 0xff, 0x74, 0x1e, - 0x5d, 0xb3, 0x3a, 0xb5, 0xf4, 0x15, 0x94, 0xe4, 0x6b, 0x99, 0x64, 0x2e, 0xed, 0xd4, 0x03, 0xbd, - 0xf3, 0x70, 0xfe, 0x62, 0x6c, 0xa6, 0xab, 0x91, 0x7d, 0x28, 0xc9, 0x17, 0x69, 0xd6, 0x50, 0xea, - 0x3d, 0x9c, 0x35, 0x94, 0x7e, 0xc4, 0xca, 0x93, 0xa9, 0x37, 0x61, 0xf6, 0x64, 0xe9, 0x67, 0x6b, - 0xf6, 0x64, 0xd9, 0x87, 0xe4, 0x12, 0x89, 0xe0, 0xb3, 0xb9, 0x3c, 0x99, 0x6c, 0x64, 0x02, 0xfc, - 0x11, 0x36, 0xde, 0x79, 0xf6, 0x49, 0xba, 0xd3, 0x3d, 0x0f, 0xa1, 0x12, 0xaf, 0x93, 0x47, 0x1f, - 0x7d, 0x5d, 0x75, 0x56, 0xaf, 0x5b, 0x9e, 0x1a, 0xdb, 0x83, 0x22, 0xf2, 0x1c, 0xd2, 0x99, 0x43, - 0x5e, 0x63, 0x33, 0x0f, 0xe6, 0xae, 0x25, 0xf2, 0x72, 0x04, 0x95, 0x98, 0x30, 0x65, 0x5d, 0xca, - 0x50, 0xbe, 0xac, 0x4b, 0x59, 0x9e, 0x85, 0xe6, 0x8e, 0xa1, 0x96, 0xf8, 0x97, 0x83, 0x64, 0x8a, - 0xf5, 0xc3, 0x3f, 0x40, 0x16, 0x26, 0xfc, 0x0c, 0x5a, 0x19, 0x62, 0x41, 0x9e, 0x64, 0x42, 0x33, - 0x97, 0x82, 0x75, 0x3e, 0x5f, 0xa0, 0x15, 0xef, 0xf0, 0x5c, 0x23, 0x3b, 0x50, 0x44, 0xdc, 0xca, - 0x46, 0x32, 0x79, 0x05, 0x65, 0x23, 0x99, 0x02, 0x3a, 0x6c, 0x14, 0x40, 0x98, 0xf9, 0xb1, 0x2b, - 0x50, 0x3d, 0x63, 0x28, 0x09, 0x54, 0x59, 0x43, 0x29, 0x70, 0x32, 0x96, 0x76, 0xbe, 0xf8, 0xc7, - 0x37, 0x15, 0xed, 0xdb, 0xf7, 0xab, 0xda, 0xdf, 0xde, 0xaf, 0x6a, 0xff, 0x7a, 0xbf, 0xaa, 0xfd, - 0xf6, 0xdf, 0xab, 0x4b, 0xd0, 0x0e, 0xa2, 0x8b, 0x4d, 0xee, 0x0e, 0xc6, 0x9b, 0x83, 0x31, 0xfe, - 0xa5, 0x7c, 0x56, 0xc2, 0x9f, 0x17, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x67, 0x0e, 0xc7, - 0xdc, 0x16, 0x00, 0x00, + // 2086 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x73, 0xdc, 0x4a, + 0x15, 0xb6, 0xe6, 0x3d, 0x67, 0x9e, 0xe9, 0xf8, 0xe6, 0x2a, 0x93, 0x97, 0x23, 0x72, 0xef, 0x75, + 0x1c, 0x98, 0x04, 0x07, 0x52, 0xd4, 0xa5, 0x8a, 0xd4, 0xf5, 0x83, 0x1b, 0xe3, 0x3c, 0x8c, 0xc6, + 0x84, 0x05, 0x0b, 0x95, 0xac, 0x69, 0xdb, 0x62, 0x34, 0x92, 0x50, 0xf7, 0x8c, 0x33, 0x1b, 0x7e, + 0x00, 0xbf, 0x80, 0x62, 0x43, 0xc1, 0xea, 0x16, 0x6b, 0x36, 0xfc, 0x83, 0xbb, 0x64, 0xc9, 0x8a, + 0xa2, 0xc2, 0x0f, 0x81, 0xea, 0xd3, 0x2d, 0x8d, 0xa4, 0x8c, 0x3d, 0xb1, 0x0b, 0x56, 0xea, 0x3e, + 0x7d, 0xfa, 0xf4, 0xe9, 0xf3, 0xf8, 0xfa, 0x1c, 0x01, 0x71, 0xc7, 0x61, 0x10, 0x71, 0x8b, 0x31, + 0x1e, 0x1e, 0xf5, 0xc3, 0x28, 0xe0, 0x01, 0x69, 0xa6, 0x69, 0xbd, 0xe6, 0x98, 0x72, 0x3b, 0x5e, + 0xeb, 0xb5, 0x68, 0x14, 0x05, 0xd1, 0x7c, 0x3a, 0x9a, 0x46, 0xa1, 0x93, 0x4c, 0x57, 0x4f, 0x82, + 0x93, 0x00, 0x87, 0x8f, 0xc5, 0x48, 0x51, 0x3b, 0xd1, 0x84, 0x71, 0x1c, 0x2a, 0x02, 0x1c, 0x25, + 0x12, 0x0c, 0x1f, 0xae, 0x0d, 0xce, 0x5c, 0xee, 0x9c, 0xbe, 0x0a, 0x86, 0xd4, 0xa4, 0xbf, 0x99, + 0x50, 0xc6, 0xc9, 0x77, 0xa1, 0x34, 0x0e, 0x86, 0x54, 0xd7, 0xd6, 0xb4, 0xf5, 0xf6, 0xa6, 0xde, + 0xcf, 0x28, 0x99, 0x62, 0x47, 0x2e, 0xf2, 0x08, 0x2a, 0x91, 0xed, 0x9f, 0x50, 0xa6, 0x17, 0xd6, + 0x8a, 0xeb, 0x8d, 0xcd, 0xeb, 0x59, 0x7e, 0x53, 0xac, 0x99, 0x8a, 0xc5, 0x58, 0x05, 0x92, 0x3e, + 0x8f, 0x85, 0x81, 0xcf, 0xa8, 0xd1, 0x85, 0xf6, 0xd7, 0x94, 0xa7, 0x54, 0x30, 0x9e, 0x43, 0x27, + 0xa1, 0x48, 0xa6, 0xcb, 0x69, 0x65, 0x3c, 0x86, 0x32, 0x9e, 0x4c, 0x56, 0xa1, 0xcc, 0xb8, 0x1d, + 0x71, 0xdc, 0xd7, 0x34, 0xe5, 0x84, 0x74, 0xa1, 0x48, 0xfd, 0xa1, 0x5e, 0x40, 0x9a, 0x18, 0x1a, + 0x7f, 0x2a, 0x42, 0x75, 0x30, 0x38, 0x7c, 0x45, 0xb9, 0x4d, 0x08, 0x94, 0x26, 0x13, 0x77, 0xa8, + 0xb6, 0xe0, 0x98, 0x3c, 0x84, 0x32, 0xde, 0x01, 0xf7, 0x9c, 0x73, 0x4b, 0xc9, 0x21, 0x8e, 0x74, + 0x22, 0xe7, 0xe9, 0xa6, 0x5e, 0x5c, 0xd3, 0xd6, 0x5b, 0xa6, 0x9c, 0x90, 0x1b, 0x50, 0xf1, 0xa8, + 0x7f, 0xc2, 0x4f, 0xf5, 0xd2, 0x9a, 0xb6, 0x5e, 0x32, 0xd5, 0x8c, 0x7c, 0x0a, 0x55, 0xe7, 0xd8, + 0xf2, 0xed, 0x31, 0xd5, 0xcb, 0x6b, 0xda, 0x7a, 0xdd, 0xac, 0x38, 0xc7, 0xaf, 0xed, 0x31, 0x25, + 0xb7, 0xa0, 0x1e, 0xd1, 0x13, 0x37, 0xf0, 0x2d, 0x77, 0xa8, 0x57, 0x70, 0x4f, 0x4d, 0x12, 0xf6, + 0x86, 0xe4, 0x19, 0x34, 0xd5, 0x22, 0x0d, 0x03, 0xe7, 0x54, 0xaf, 0x2a, 0xad, 0x54, 0xb8, 0x98, + 0xb8, 0xb6, 0x2b, 0x96, 0xcc, 0x46, 0x34, 0x9f, 0x90, 0x0d, 0xb8, 0x46, 0xfd, 0xa1, 0x35, 0xa2, + 0x33, 0x8b, 0xbe, 0x73, 0xbc, 0x09, 0x73, 0xa7, 0x54, 0xaf, 0xad, 0x69, 0xeb, 0x35, 0xb3, 0x43, + 0xfd, 0xe1, 0x3e, 0x9d, 0xed, 0xc6, 0x64, 0xa1, 0x00, 0x0f, 0xb8, 0xed, 0x59, 0xa3, 0x29, 0xd3, + 0xeb, 0x52, 0x01, 0x24, 0xec, 0x4f, 0x19, 0xb9, 0x07, 0x0d, 0xb9, 0x78, 0x34, 0xe3, 0x94, 0xe9, + 0x80, 0xcb, 0x80, 0xa4, 0x2d, 0x41, 0x21, 0x3f, 0x80, 0x86, 0x1d, 0xba, 0xd6, 0x94, 0x46, 0xcc, + 0x0d, 0x7c, 0xbd, 0x81, 0x6e, 0xbb, 0xde, 0x8f, 0x43, 0xf6, 0xab, 0x83, 0xbd, 0xb7, 0x72, 0xc9, + 0x04, 0x3b, 0x74, 0xd5, 0x58, 0x9c, 0xe9, 0xb8, 0xe1, 0x29, 0x8d, 0x2c, 0x77, 0xaa, 0x37, 0xd1, + 0xfe, 0x35, 0x49, 0xd8, 0x9b, 0x1a, 0xbf, 0x85, 0x86, 0x49, 0xcf, 0x22, 0x97, 0x53, 0x73, 0xe2, + 0x51, 0xf2, 0x00, 0xda, 0x81, 0x27, 0xef, 0x12, 0x46, 0xf4, 0xd8, 0x7d, 0xa7, 0x1c, 0xd6, 0x0c, + 0x3c, 0x71, 0x91, 0x03, 0xa4, 0x09, 0x2e, 0x9f, 0x9e, 0xa5, 0xb9, 0xa4, 0xd7, 0x9b, 0x3e, 0x3d, + 0x9b, 0x73, 0x7d, 0x07, 0x5a, 0x82, 0x8b, 0xbb, 0x63, 0xca, 0xb8, 0x3d, 0x0e, 0xd1, 0x77, 0x25, + 0x64, 0x3a, 0x8c, 0x69, 0xc6, 0xaf, 0xa0, 0xf5, 0x8b, 0xd0, 0x0b, 0xec, 0x61, 0x9c, 0x29, 0x8f, + 0xa0, 0x24, 0x0c, 0x8e, 0xe7, 0x36, 0x36, 0x3f, 0xc9, 0xc5, 0xa4, 0x8c, 0xa6, 0x17, 0x2b, 0x26, + 0x32, 0x91, 0x55, 0x28, 0x0d, 0x6d, 0x6e, 0xcb, 0xe3, 0x05, 0x55, 0xcc, 0xb6, 0xaa, 0x50, 0x76, + 0x4e, 0x27, 0xfe, 0x48, 0x24, 0x41, 0x2c, 0x5c, 0xa5, 0xc5, 0x10, 0x5a, 0x7b, 0x22, 0x6b, 0x78, + 0x7c, 0xdc, 0x06, 0x54, 0x9d, 0xc0, 0xe7, 0xf4, 0x1d, 0x57, 0x27, 0x76, 0x13, 0x73, 0x6e, 0x4b, + 0xba, 0x19, 0x33, 0x90, 0x2f, 0xa0, 0xc8, 0x18, 0x57, 0xd1, 0xba, 0x58, 0x33, 0x53, 0x70, 0x18, + 0x23, 0x20, 0xaf, 0x26, 0x1e, 0x77, 0xaf, 0x7e, 0xd4, 0x43, 0x28, 0x31, 0xc6, 0xe3, 0xfc, 0x3f, + 0xe7, 0x2c, 0x64, 0x31, 0x9e, 0x41, 0x3b, 0x3e, 0x47, 0xa5, 0xf5, 0x03, 0x28, 0x23, 0xa8, 0xa9, + 0x63, 0xda, 0xfd, 0x18, 0xe2, 0x76, 0xc5, 0xd7, 0x94, 0x8b, 0xc6, 0xef, 0x34, 0x68, 0x6f, 0x07, + 0xe3, 0xd0, 0x76, 0x12, 0x0d, 0x93, 0x84, 0xd4, 0x96, 0x26, 0xe4, 0x7d, 0x68, 0x06, 0x13, 0x1e, + 0x4e, 0xb8, 0xe5, 0xd1, 0x29, 0xf5, 0xd0, 0x28, 0x65, 0xb3, 0x21, 0x69, 0x2f, 0x05, 0x29, 0x7d, + 0xdf, 0xe2, 0x92, 0xfb, 0x1a, 0xd7, 0xa0, 0x93, 0xe8, 0xa2, 0x5c, 0xf5, 0x9f, 0x12, 0x74, 0x76, + 0x82, 0x33, 0x3f, 0x1d, 0x1c, 0x3f, 0x56, 0x66, 0xd1, 0xd0, 0x2c, 0x5f, 0x64, 0xf5, 0xcb, 0x31, + 0xf7, 0x07, 0x8c, 0xb3, 0x5d, 0x9f, 0x47, 0x33, 0x69, 0x28, 0x91, 0x5e, 0x11, 0x65, 0x81, 0x37, + 0xa5, 0x43, 0x8b, 0x33, 0x15, 0x8d, 0x10, 0x93, 0x0e, 0x19, 0xf9, 0xde, 0x72, 0xff, 0x6e, 0x95, + 0xbe, 0xfd, 0xe7, 0xbd, 0x15, 0xf4, 0xb2, 0x80, 0x34, 0x84, 0x98, 0x3a, 0x42, 0x0c, 0x8e, 0xc9, + 0x96, 0xc0, 0x10, 0x4c, 0x27, 0x2b, 0x9a, 0x78, 0x54, 0x6f, 0xa1, 0xac, 0x9b, 0x39, 0x43, 0xce, + 0x13, 0x4e, 0xc9, 0x6b, 0x44, 0xa9, 0x1c, 0x7c, 0x0e, 0x1d, 0xc6, 0x83, 0xc8, 0x3e, 0xa1, 0xd6, + 0x91, 0xed, 0x8c, 0x04, 0xa8, 0xb6, 0x51, 0xcc, 0x8d, 0xbe, 0x98, 0x4f, 0xc2, 0xfe, 0x40, 0x2e, + 0x6f, 0xc9, 0x55, 0xb3, 0xcd, 0x32, 0x73, 0xb2, 0x0e, 0xdd, 0x58, 0x80, 0x63, 0x3b, 0xa7, 0x54, + 0x80, 0xdd, 0x35, 0x54, 0x32, 0xe6, 0xdc, 0x16, 0xe4, 0xbd, 0x21, 0xe9, 0x41, 0xdd, 0x65, 0x56, + 0x64, 0x9f, 0x59, 0xa3, 0xa9, 0xde, 0x41, 0xc8, 0xaa, 0xba, 0xcc, 0xb4, 0xcf, 0xf6, 0xa7, 0xe4, + 0x29, 0x34, 0x62, 0xd8, 0xf0, 0x8f, 0x03, 0xbd, 0x8b, 0x2a, 0x90, 0x58, 0x85, 0x6d, 0x09, 0x20, + 0xfe, 0x71, 0x60, 0x82, 0x93, 0x8c, 0xc9, 0x8e, 0xb8, 0x3f, 0x9a, 0xdf, 0xe2, 0xb3, 0x90, 0xea, + 0x04, 0x21, 0xea, 0xfe, 0x85, 0x8e, 0x3a, 0x9c, 0x85, 0x54, 0x58, 0x20, 0x99, 0xa4, 0x23, 0xe7, + 0xfa, 0x92, 0xc8, 0xe9, 0xbd, 0x86, 0x7a, 0xe2, 0x68, 0xf1, 0x06, 0x8d, 0xe8, 0x0c, 0xc3, 0xb7, + 0x6e, 0x8a, 0x21, 0x79, 0x04, 0xe5, 0xa9, 0xed, 0x4d, 0xe8, 0xc5, 0x59, 0x2b, 0x79, 0xbe, 0x2c, + 0xfc, 0x48, 0xfb, 0x59, 0xa9, 0x56, 0xeb, 0xd6, 0xcd, 0xe2, 0x24, 0xf2, 0x0c, 0x13, 0xca, 0x98, + 0x31, 0x44, 0x87, 0xea, 0x98, 0x32, 0x66, 0xab, 0xcc, 0xa8, 0x9b, 0xf1, 0x94, 0x3c, 0x86, 0x86, + 0x30, 0x29, 0xb5, 0x64, 0xc2, 0x15, 0x16, 0x26, 0x1c, 0x20, 0x0b, 0x8e, 0x8d, 0xf7, 0x1a, 0x74, + 0xe7, 0xf7, 0x57, 0x09, 0xfb, 0x78, 0x79, 0xde, 0xa9, 0x40, 0x51, 0xd9, 0x77, 0x13, 0x6a, 0x2e, + 0xb3, 0xe8, 0x38, 0xe4, 0x33, 0x3c, 0x13, 0xdd, 0xb6, 0x2b, 0xa6, 0x22, 0x87, 0xa5, 0x2e, 0xc5, + 0x45, 0xb2, 0xd2, 0x08, 0x30, 0x7f, 0x54, 0x4b, 0x8b, 0x1f, 0xd5, 0x72, 0xe6, 0x51, 0x8d, 0x21, + 0xa9, 0xb2, 0x1c, 0x92, 0x9e, 0xc3, 0xed, 0x01, 0xe5, 0xf1, 0x35, 0x07, 0x21, 0xa5, 0xc3, 0x97, + 0xee, 0xd8, 0x4d, 0x70, 0xe6, 0x1e, 0x34, 0x98, 0x20, 0x5a, 0x9e, 0xa0, 0xe2, 0xad, 0x4b, 0x26, + 0xb0, 0x84, 0xcf, 0xb8, 0x07, 0x77, 0xce, 0x11, 0xa0, 0xc0, 0x21, 0x84, 0xd2, 0x81, 0xed, 0x46, + 0x69, 0x87, 0x37, 0xa5, 0xc3, 0x57, 0xd3, 0x0e, 0x6f, 0x2a, 0xcf, 0x92, 0xcf, 0xa0, 0x10, 0xc8, + 0x07, 0xa8, 0x9d, 0x57, 0x5d, 0xc8, 0xe9, 0xbf, 0x39, 0x30, 0x0b, 0x41, 0x68, 0xdc, 0x84, 0xc2, + 0x9b, 0x03, 0x52, 0x85, 0xe2, 0xc1, 0x84, 0x77, 0x57, 0x08, 0x40, 0x65, 0x87, 0x7a, 0x94, 0xd3, + 0xae, 0x66, 0x0c, 0x00, 0x7e, 0x29, 0x52, 0x74, 0xcb, 0xe6, 0xce, 0x29, 0xbe, 0xa9, 0xc1, 0x78, + 0xec, 0x72, 0x0b, 0xd1, 0x08, 0xdf, 0x71, 0x49, 0x38, 0x64, 0x64, 0x1d, 0xca, 0xa1, 0xed, 0x46, + 0x31, 0x7a, 0x93, 0x0f, 0xcf, 0x33, 0x25, 0x83, 0xf1, 0x67, 0x0d, 0x9a, 0x28, 0xf5, 0x4a, 0xaf, + 0xdf, 0x13, 0x28, 0x1f, 0x09, 0x6d, 0x54, 0xd8, 0xe5, 0xea, 0xb7, 0xb9, 0xb6, 0x2f, 0x56, 0x4c, + 0xc9, 0x78, 0x19, 0x48, 0x9e, 0xbf, 0xa2, 0x27, 0xd0, 0x52, 0x3a, 0xaa, 0x70, 0x7d, 0x98, 0x7d, + 0x5f, 0x2e, 0x0a, 0xb1, 0x47, 0x50, 0x16, 0xaa, 0x2e, 0x79, 0xc8, 0x24, 0x8f, 0xa8, 0x05, 0x4c, + 0xfb, 0x2c, 0x65, 0xe5, 0x2e, 0x14, 0x39, 0xf7, 0x94, 0x7d, 0xc5, 0xf0, 0xe3, 0x4d, 0x4b, 0xda, + 0x50, 0x48, 0x40, 0xbe, 0xc0, 0x99, 0xf1, 0x8d, 0x06, 0x9d, 0x58, 0xfa, 0x95, 0xac, 0xfd, 0x34, + 0x6b, 0xed, 0x5b, 0xf9, 0x24, 0x3d, 0xfb, 0x9f, 0x19, 0xfc, 0xd7, 0xd0, 0x9d, 0x6b, 0xfa, 0x7f, + 0xb6, 0xf9, 0xdf, 0x34, 0xb8, 0xb1, 0x33, 0x09, 0x3d, 0xd7, 0xb1, 0x39, 0xdd, 0xa1, 0x9c, 0x3a, + 0x57, 0xaa, 0x57, 0x6e, 0x41, 0x1d, 0xbb, 0x00, 0x51, 0x13, 0xaa, 0xcc, 0xab, 0x21, 0x61, 0x9f, + 0xce, 0x44, 0x39, 0xae, 0x0a, 0x64, 0x34, 0x42, 0xd3, 0xac, 0xc8, 0xb2, 0x58, 0xc0, 0x98, 0xa8, + 0x21, 0x03, 0xdf, 0x9b, 0x21, 0x06, 0xd5, 0xcc, 0xea, 0x88, 0xce, 0xde, 0xf8, 0xde, 0x8c, 0x18, + 0xd0, 0x1a, 0xbb, 0xbe, 0x35, 0x4f, 0x32, 0x09, 0x46, 0x8d, 0xb1, 0xeb, 0x6f, 0xab, 0x3c, 0x33, + 0x5e, 0x41, 0x65, 0x7f, 0x7a, 0x29, 0x18, 0xc8, 0xa4, 0x6d, 0x31, 0x9b, 0xb6, 0xc6, 0x5f, 0x34, + 0xf8, 0xf4, 0x03, 0x53, 0x28, 0xf3, 0x7f, 0x7f, 0xde, 0x1b, 0x5c, 0x50, 0x59, 0xc5, 0x6d, 0x01, + 0xba, 0xe1, 0x09, 0xd4, 0xb1, 0x25, 0x48, 0x3d, 0x0c, 0x0b, 0xbd, 0x26, 0x4c, 0x20, 0x77, 0x6c, + 0xc4, 0xc1, 0x5d, 0x44, 0xc7, 0xad, 0x66, 0xb9, 0xe5, 0x55, 0x63, 0xe4, 0xf8, 0x63, 0x11, 0x2a, + 0xfb, 0x6f, 0xe3, 0xd6, 0x0a, 0xeb, 0x10, 0x2d, 0x55, 0x87, 0xdc, 0x87, 0x26, 0xbe, 0x14, 0x56, + 0x70, 0x7c, 0xcc, 0x28, 0xc7, 0x56, 0xa1, 0x64, 0x36, 0x90, 0xf6, 0x06, 0x49, 0x29, 0x9c, 0x2f, + 0x64, 0x70, 0x3e, 0xd9, 0xaa, 0x56, 0x9b, 0xa9, 0xad, 0x2f, 0x25, 0x4b, 0x1b, 0x0a, 0xce, 0x31, + 0xda, 0xaf, 0x6e, 0x16, 0x9c, 0x63, 0x61, 0x56, 0x97, 0x59, 0x43, 0x84, 0x4a, 0xe5, 0xc8, 0x9a, + 0xcb, 0x24, 0x74, 0x0a, 0x27, 0xcb, 0xd0, 0xe0, 0x71, 0x4b, 0x53, 0xc5, 0xf9, 0x21, 0x23, 0x77, + 0x40, 0x94, 0x5f, 0xf8, 0x7e, 0x26, 0x1e, 0xae, 0x2b, 0xca, 0x21, 0xcb, 0x06, 0x55, 0xe5, 0xfc, + 0xa0, 0xaa, 0x66, 0x82, 0xea, 0x06, 0x54, 0xd8, 0xa9, 0xbd, 0xf9, 0xc3, 0x67, 0xd8, 0x83, 0x35, + 0x4d, 0x35, 0x13, 0x6d, 0x9a, 0x94, 0xc6, 0x7c, 0x3b, 0x64, 0xa7, 0x01, 0x2a, 0x24, 0x5b, 0xb0, + 0x0e, 0x2e, 0x0c, 0x14, 0xfd, 0x90, 0x91, 0x2d, 0xe8, 0x3a, 0xc1, 0x38, 0x8c, 0x28, 0x13, 0x1d, + 0x94, 0x2c, 0x65, 0x5a, 0xf8, 0x78, 0x7c, 0x9a, 0x14, 0x40, 0xf3, 0x75, 0x2c, 0x60, 0x3a, 0x4e, + 0x96, 0x60, 0xfc, 0xb5, 0x08, 0xcd, 0xaf, 0xc2, 0xd0, 0x9b, 0xc5, 0xf9, 0xb4, 0x9e, 0x41, 0x9b, + 0xbc, 0x77, 0xdf, 0xca, 0xf7, 0x13, 0xa1, 0x66, 0x23, 0xce, 0xe0, 0xe6, 0xc2, 0x40, 0x78, 0x9b, + 0x4a, 0xe0, 0x0f, 0x2a, 0xce, 0xc2, 0x15, 0x2a, 0xce, 0x9f, 0x40, 0x2b, 0x2d, 0x83, 0xe9, 0x2d, + 0x3c, 0xf7, 0x7c, 0x21, 0x66, 0x33, 0xb5, 0x9d, 0x2d, 0x2c, 0x38, 0xcb, 0x0b, 0x0b, 0xce, 0x05, + 0xb5, 0x6d, 0xf1, 0x52, 0xb5, 0x6d, 0x0a, 0x94, 0x4a, 0xcb, 0x40, 0x29, 0x57, 0xc1, 0x36, 0x3e, + 0xa6, 0x82, 0x35, 0x46, 0xd0, 0x52, 0x5e, 0xbb, 0x6a, 0x71, 0x96, 0x40, 0x75, 0x61, 0x19, 0x54, + 0x1b, 0x9f, 0x43, 0x73, 0xdb, 0xa3, 0x76, 0x14, 0x87, 0xc8, 0x0d, 0xa8, 0xa4, 0xda, 0xee, 0xba, + 0xa9, 0x66, 0xc6, 0x97, 0xd0, 0x52, 0x7c, 0x97, 0x7e, 0x0e, 0x36, 0x1e, 0x00, 0xcc, 0x7f, 0xe5, + 0x88, 0x92, 0xe6, 0x75, 0x10, 0x8d, 0x6d, 0x4f, 0x96, 0x37, 0x7b, 0xb8, 0xad, 0xab, 0x6d, 0x3c, + 0x86, 0xeb, 0x0b, 0xca, 0x72, 0xc1, 0xf2, 0x92, 0x9e, 0xd8, 0xce, 0xac, 0xbb, 0x42, 0x9a, 0x50, + 0xdb, 0xa7, 0x33, 0x16, 0xda, 0x0e, 0xed, 0x6a, 0x9b, 0x7f, 0xa8, 0x41, 0x5d, 0xee, 0x1e, 0x0c, + 0x0e, 0xc9, 0xcf, 0x33, 0x87, 0xdc, 0x3b, 0xf7, 0x4f, 0x92, 0x14, 0xdd, 0x5b, 0x3b, 0x9f, 0x41, + 0x15, 0x78, 0x2b, 0xe4, 0x05, 0x54, 0xd5, 0xff, 0x2a, 0x72, 0x3b, 0xcb, 0x9e, 0xfd, 0xb1, 0xd5, + 0xbb, 0x73, 0xce, 0x6a, 0x22, 0xe9, 0x6b, 0xa8, 0xc8, 0xdf, 0x00, 0x24, 0xf7, 0x68, 0x67, 0xfe, + 0x3c, 0xf4, 0x6e, 0x2f, 0x5e, 0x8c, 0xc5, 0xac, 0x6b, 0x64, 0x17, 0x2a, 0xb2, 0xd5, 0xce, 0x0b, + 0xca, 0x34, 0xfa, 0x79, 0x41, 0xd9, 0xee, 0x5c, 0xde, 0x4c, 0x35, 0xbb, 0xf9, 0x9b, 0x65, 0xfb, + 0xf1, 0xfc, 0xcd, 0xf2, 0x1d, 0xf2, 0x0a, 0x89, 0xe0, 0x93, 0x85, 0x75, 0x32, 0xd9, 0xc8, 0x19, + 0xf8, 0x82, 0x6a, 0xbc, 0xf7, 0xe8, 0xa3, 0x78, 0x93, 0x33, 0xf7, 0xa1, 0x16, 0xaf, 0x93, 0x3b, + 0x17, 0x36, 0x76, 0xbd, 0xbb, 0xe7, 0x2d, 0x27, 0xc2, 0x76, 0xa0, 0x8c, 0x75, 0x0e, 0xe9, 0x2d, + 0x28, 0x5e, 0x63, 0x31, 0xb7, 0x16, 0xae, 0xa5, 0xfc, 0xf2, 0x0a, 0x6a, 0x71, 0xc1, 0x94, 0x57, + 0x29, 0x57, 0xf2, 0xe5, 0x55, 0xca, 0xd7, 0x59, 0x28, 0xee, 0x0d, 0x34, 0x52, 0xbf, 0x6f, 0x48, + 0x2e, 0x58, 0x3f, 0xfc, 0xb3, 0xb3, 0xd4, 0xe1, 0x47, 0xd0, 0xc9, 0x15, 0x16, 0xe4, 0x41, 0xce, + 0x34, 0x0b, 0x4b, 0xb0, 0xde, 0x67, 0x4b, 0xb8, 0xe2, 0x13, 0x9e, 0x68, 0x64, 0x0b, 0xca, 0x88, + 0x5b, 0x79, 0x4b, 0xa6, 0x9f, 0xa0, 0xbc, 0x25, 0x33, 0x40, 0x87, 0x89, 0x02, 0x08, 0x33, 0x3f, + 0x75, 0x05, 0xaa, 0xe7, 0x04, 0xa5, 0x81, 0x2a, 0x2f, 0x28, 0x03, 0x4e, 0xc6, 0xca, 0xd6, 0xe7, + 0xff, 0xf8, 0xa6, 0xa6, 0x7d, 0xfb, 0xfe, 0xae, 0xf6, 0xf7, 0xf7, 0x77, 0xb5, 0x7f, 0xbd, 0xbf, + 0xab, 0xfd, 0xfe, 0xdf, 0x77, 0x57, 0xa0, 0x1b, 0x44, 0x27, 0x7d, 0xee, 0x8e, 0xa6, 0xfd, 0xd1, + 0x14, 0xff, 0x95, 0x1f, 0x55, 0xf0, 0xf3, 0xf4, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x65, 0xb1, + 0x1f, 0xf7, 0xb5, 0x17, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4039,6 +4073,11 @@ func (m *DownloadRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x4a } + if m.ResolvedTs != 0 { + i = encodeVarintImportSstpb(dAtA, i, uint64(m.ResolvedTs)) + i-- + dAtA[i] = 0x18 + } { size, err := m.Sst.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -4049,6 +4088,32 @@ func (m *DownloadRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x12 + if len(m.Ssts) > 0 { + for k := range m.Ssts { + v := m.Ssts[k] + baseI := i + if v != nil { + { + size, err := v.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintImportSstpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintImportSstpb(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintImportSstpb(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } @@ -4122,6 +4187,20 @@ func (m *DownloadResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Ssts) > 0 { + for iNdEx := len(m.Ssts) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Ssts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintImportSstpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } if m.Length != 0 { i = encodeVarintImportSstpb(dAtA, i, uint64(m.Length)) i-- @@ -5500,8 +5579,24 @@ func (m *DownloadRequest) Size() (n int) { } var l int _ = l + if len(m.Ssts) > 0 { + for k, v := range m.Ssts { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovImportSstpb(uint64(l)) + } + mapEntrySize := 1 + len(k) + sovImportSstpb(uint64(len(k))) + l + n += mapEntrySize + 1 + sovImportSstpb(uint64(mapEntrySize)) + } + } l = m.Sst.Size() n += 1 + l + sovImportSstpb(uint64(l)) + if m.ResolvedTs != 0 { + n += 1 + sovImportSstpb(uint64(m.ResolvedTs)) + } l = len(m.Name) if l > 0 { n += 1 + l + sovImportSstpb(uint64(l)) @@ -5577,6 +5672,12 @@ func (m *DownloadResponse) Size() (n int) { if m.Length != 0 { n += 1 + sovImportSstpb(uint64(m.Length)) } + if len(m.Ssts) > 0 { + for _, e := range m.Ssts { + l = e.Size() + n += 1 + l + sovImportSstpb(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -7658,6 +7759,135 @@ func (m *DownloadRequest) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: DownloadRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ssts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthImportSstpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthImportSstpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Ssts == nil { + m.Ssts = make(map[string]*SSTMeta) + } + var mapkey string + var mapvalue *SSTMeta + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthImportSstpb + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthImportSstpb + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthImportSstpb + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthImportSstpb + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &SSTMeta{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipImportSstpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthImportSstpb + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Ssts[mapkey] = mapvalue + iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Sst", wireType) @@ -7691,6 +7921,25 @@ func (m *DownloadRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ResolvedTs", wireType) + } + m.ResolvedTs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ResolvedTs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) @@ -8232,6 +8481,40 @@ func (m *DownloadResponse) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ssts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthImportSstpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthImportSstpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ssts = append(m.Ssts, &SSTMeta{}) + if err := m.Ssts[len(m.Ssts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipImportSstpb(dAtA[iNdEx:]) diff --git a/proto/brpb.proto b/proto/brpb.proto index b3823f443..53a7ccb0c 100644 --- a/proto/brpb.proto +++ b/proto/brpb.proto @@ -85,6 +85,16 @@ message BackupMeta { repeated PitrDBMap db_maps = 22; BackupMode mode = 23; + + // record the backup range and the correspond SST files when using file-copy backup. + repeated BackupRange ranges = 24; +} + +message BackupRange { + bytes start_key = 1; + bytes end_key = 2; + + repeated File files = 3; } message File { @@ -118,6 +128,8 @@ message MetaFile { repeated Schema schemas = 3; // A set of files that contains RawRanges. repeated RawRange raw_ranges = 4; + // A set of files that contains BackupRanges. + repeated BackupRange backup_ranges = 6; // A set of files that contains DDLs. repeated bytes ddls = 5; } diff --git a/proto/import_sstpb.proto b/proto/import_sstpb.proto index bef1f9f97..8c18991c5 100644 --- a/proto/import_sstpb.proto +++ b/proto/import_sstpb.proto @@ -154,6 +154,12 @@ message CompactResponse { } message DownloadRequest { + // Map represents the map of . + // We'll generate all SSTMeta into one SST File. + map ssts = 1; + // resolved_ts is used to merge related SST Files. + uint64 resolved_ts = 3; + // The SST meta used to identify the downloaded file. // Must be the same among all nodes in the same Raft group. // Note: the "crc32" and "cf_name" fields are ignored in this request, @@ -229,6 +235,10 @@ message DownloadResponse { uint32 crc32 = 4; // The actual length of the rewritten SST file. uint64 length = 5; + + // This field only return when file-copy backup enabled. + // Because it will merge many SST files in a download request. + repeated SSTMeta ssts = 6; } message SetDownloadSpeedLimitRequest { diff --git a/scripts/proto.lock b/scripts/proto.lock index 3aea96dcf..71675e561 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -336,6 +336,12 @@ "id": 23, "name": "mode", "type": "BackupMode" + }, + { + "id": 24, + "name": "ranges", + "type": "BackupRange", + "is_repeated": true } ], "reserved_ids": [ @@ -345,6 +351,27 @@ "path" ] }, + { + "name": "BackupRange", + "fields": [ + { + "id": 1, + "name": "start_key", + "type": "bytes" + }, + { + "id": 2, + "name": "end_key", + "type": "bytes" + }, + { + "id": 3, + "name": "files", + "type": "File", + "is_repeated": true + } + ] + }, { "name": "File", "fields": [ @@ -437,6 +464,12 @@ "type": "RawRange", "is_repeated": true }, + { + "id": 6, + "name": "backup_ranges", + "type": "BackupRange", + "is_repeated": true + }, { "id": 5, "name": "ddls", @@ -6542,6 +6575,11 @@ { "name": "DownloadRequest", "fields": [ + { + "id": 3, + "name": "resolved_ts", + "type": "uint64" + }, { "id": 2, "name": "sst", @@ -6600,6 +6638,16 @@ "type": "kvrpcpb.Context" } ], + "maps": [ + { + "key_type": "string", + "field": { + "id": 1, + "name": "ssts", + "type": "SSTMeta" + } + } + ], "reserved_ids": [ 8 ], @@ -6655,6 +6703,12 @@ "id": 5, "name": "length", "type": "uint64" + }, + { + "id": 6, + "name": "ssts", + "type": "SSTMeta", + "is_repeated": true } ] }, From b8ed19b50ecc1e618fb3448382bfa032b4e56fb4 Mon Sep 17 00:00:00 2001 From: takaidohigasi Date: Thu, 14 Sep 2023 16:16:46 +0900 Subject: [PATCH 5/8] support s3 config profile (#1178) Co-authored-by: disksing --- pkg/brpb/brpb.pb.go | 8 ++++++++ proto/brpb.proto | 1 + scripts/proto.lock | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/pkg/brpb/brpb.pb.go b/pkg/brpb/brpb.pb.go index 534eb9ea2..3dd1a46bf 100644 --- a/pkg/brpb/brpb.pb.go +++ b/pkg/brpb/brpb.pb.go @@ -1873,6 +1873,7 @@ type S3 struct { ObjectLockEnabled bool `protobuf:"varint,14,opt,name=object_lock_enabled,json=objectLockEnabled,proto3" json:"object_lock_enabled,omitempty"` SessionToken string `protobuf:"bytes,15,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"` Provider string `protobuf:"bytes,16,opt,name=provider,proto3" json:"provider,omitempty"` + Profile string `protobuf:"bytes,17,opt,name=profile,json=profile,proto3" json:"profile,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2023,6 +2024,13 @@ func (m *S3) GetProvider() string { return "" } +func (m *S3) GetProfile() string { + if m != nil { + return m.Profile + } + return "" +} + // GCS storage backend saves files into google cloud storage. type GCS struct { Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` diff --git a/proto/brpb.proto b/proto/brpb.proto index 53a7ccb0c..77268c38a 100644 --- a/proto/brpb.proto +++ b/proto/brpb.proto @@ -347,6 +347,7 @@ message S3 { bool object_lock_enabled = 14; string session_token = 15; string provider = 16; + string profile = 17; } // GCS storage backend saves files into google cloud storage. diff --git a/scripts/proto.lock b/scripts/proto.lock index 71675e561..74ebf1de1 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -943,6 +943,11 @@ "id": 16, "name": "provider", "type": "string" + }, + { + "id": 17, + "name": "profile", + "type": "string" } ] }, From db656f45023b50438472f8dddf70a018f43fc1d9 Mon Sep 17 00:00:00 2001 From: Ryan Leung Date: Wed, 20 Sep 2023 12:25:17 +0800 Subject: [PATCH 6/8] remove unnecessary field (#1189) Signed-off-by: Ryan Leung --- pkg/schedulingpb/schedulingpb.pb.go | 534 +++++++++++++--------------- proto/schedulingpb.proto | 44 ++- scripts/proto.lock | 58 ++- 3 files changed, 292 insertions(+), 344 deletions(-) diff --git a/pkg/schedulingpb/schedulingpb.pb.go b/pkg/schedulingpb/schedulingpb.pb.go index 040234d54..7d4ae09d7 100644 --- a/pkg/schedulingpb/schedulingpb.pb.go +++ b/pkg/schedulingpb/schedulingpb.pb.go @@ -417,33 +417,30 @@ type RegionHeartbeatRequest struct { Region *metapb.Region `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` // Leader Peer sending the heartbeat. Leader *metapb.Peer `protobuf:"bytes,3,opt,name=leader,proto3" json:"leader,omitempty"` + // Term is the term of raft group. + Term uint64 `protobuf:"varint,4,opt,name=term,proto3" json:"term,omitempty"` // Leader considers that these peers are down. - DownPeers []*pdpb.PeerStats `protobuf:"bytes,4,rep,name=down_peers,json=downPeers,proto3" json:"down_peers,omitempty"` + DownPeers []*pdpb.PeerStats `protobuf:"bytes,5,rep,name=down_peers,json=downPeers,proto3" json:"down_peers,omitempty"` // Pending peers are the peers that the leader can't consider as // working followers. - PendingPeers []*metapb.Peer `protobuf:"bytes,5,rep,name=pending_peers,json=pendingPeers,proto3" json:"pending_peers,omitempty"` + PendingPeers []*metapb.Peer `protobuf:"bytes,6,rep,name=pending_peers,json=pendingPeers,proto3" json:"pending_peers,omitempty"` // Bytes read/written during this period. - BytesWritten uint64 `protobuf:"varint,6,opt,name=bytes_written,json=bytesWritten,proto3" json:"bytes_written,omitempty"` - BytesRead uint64 `protobuf:"varint,7,opt,name=bytes_read,json=bytesRead,proto3" json:"bytes_read,omitempty"` + BytesWritten uint64 `protobuf:"varint,7,opt,name=bytes_written,json=bytesWritten,proto3" json:"bytes_written,omitempty"` + BytesRead uint64 `protobuf:"varint,8,opt,name=bytes_read,json=bytesRead,proto3" json:"bytes_read,omitempty"` // Keys read/written during this period. - KeysWritten uint64 `protobuf:"varint,8,opt,name=keys_written,json=keysWritten,proto3" json:"keys_written,omitempty"` - KeysRead uint64 `protobuf:"varint,9,opt,name=keys_read,json=keysRead,proto3" json:"keys_read,omitempty"` + KeysWritten uint64 `protobuf:"varint,9,opt,name=keys_written,json=keysWritten,proto3" json:"keys_written,omitempty"` + KeysRead uint64 `protobuf:"varint,10,opt,name=keys_read,json=keysRead,proto3" json:"keys_read,omitempty"` // Approximate region size. - ApproximateSize uint64 `protobuf:"varint,10,opt,name=approximate_size,json=approximateSize,proto3" json:"approximate_size,omitempty"` - // Actually reported time interval - Interval *pdpb.TimeInterval `protobuf:"bytes,12,opt,name=interval,proto3" json:"interval,omitempty"` + ApproximateSize uint64 `protobuf:"varint,11,opt,name=approximate_size,json=approximateSize,proto3" json:"approximate_size,omitempty"` // Approximate number of keys. - ApproximateKeys uint64 `protobuf:"varint,13,opt,name=approximate_keys,json=approximateKeys,proto3" json:"approximate_keys,omitempty"` - // Term is the term of raft group. - Term uint64 `protobuf:"varint,14,opt,name=term,proto3" json:"term,omitempty"` + ApproximateKeys uint64 `protobuf:"varint,12,opt,name=approximate_keys,json=approximateKeys,proto3" json:"approximate_keys,omitempty"` // QueryStats reported write query stats, and there are read query stats in store heartbeat - QueryStats *pdpb.QueryStats `protobuf:"bytes,15,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"` - // cpu_usage is the CPU time usage of the leader region since the last heartbeat, - // which is calculated by cpu_time_delta/heartbeat_reported_interval. - CpuUsage uint64 `protobuf:"varint,16,opt,name=cpu_usage,json=cpuUsage,proto3" json:"cpu_usage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + QueryStats *pdpb.QueryStats `protobuf:"bytes,13,opt,name=query_stats,json=queryStats,proto3" json:"query_stats,omitempty"` + // Actually reported time interval + Interval *pdpb.TimeInterval `protobuf:"bytes,14,opt,name=interval,proto3" json:"interval,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *RegionHeartbeatRequest) Reset() { *m = RegionHeartbeatRequest{} } @@ -500,6 +497,13 @@ func (m *RegionHeartbeatRequest) GetLeader() *metapb.Peer { return nil } +func (m *RegionHeartbeatRequest) GetTerm() uint64 { + if m != nil { + return m.Term + } + return 0 +} + func (m *RegionHeartbeatRequest) GetDownPeers() []*pdpb.PeerStats { if m != nil { return m.DownPeers @@ -549,13 +553,6 @@ func (m *RegionHeartbeatRequest) GetApproximateSize() uint64 { return 0 } -func (m *RegionHeartbeatRequest) GetInterval() *pdpb.TimeInterval { - if m != nil { - return m.Interval - } - return nil -} - func (m *RegionHeartbeatRequest) GetApproximateKeys() uint64 { if m != nil { return m.ApproximateKeys @@ -563,13 +560,6 @@ func (m *RegionHeartbeatRequest) GetApproximateKeys() uint64 { return 0 } -func (m *RegionHeartbeatRequest) GetTerm() uint64 { - if m != nil { - return m.Term - } - return 0 -} - func (m *RegionHeartbeatRequest) GetQueryStats() *pdpb.QueryStats { if m != nil { return m.QueryStats @@ -577,15 +567,20 @@ func (m *RegionHeartbeatRequest) GetQueryStats() *pdpb.QueryStats { return nil } -func (m *RegionHeartbeatRequest) GetCpuUsage() uint64 { +func (m *RegionHeartbeatRequest) GetInterval() *pdpb.TimeInterval { if m != nil { - return m.CpuUsage + return m.Interval } - return 0 + return nil } type RegionHeartbeatResponse struct { Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + // ID of the region + RegionId uint64 `protobuf:"varint,2,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` + RegionEpoch *metapb.RegionEpoch `protobuf:"bytes,3,opt,name=region_epoch,json=regionEpoch,proto3" json:"region_epoch,omitempty"` + // Leader of the region at the moment of the corresponding request was made. + TargetPeer *metapb.Peer `protobuf:"bytes,4,opt,name=target_peer,json=targetPeer,proto3" json:"target_peer,omitempty"` // Notice, Pd only allows handling reported epoch >= current pd's. // Leader peer reports region status with RegionHeartbeatRequest // to pd regularly, pd will determine whether this region @@ -600,15 +595,10 @@ type RegionHeartbeatResponse struct { // 4. Leader may report old Peers (1), ConfVer (1) to pd before ConfChange // finished, pd stills responses ChangePeer Adding 2, of course, we must // guarantee the second ChangePeer can't be applied in TiKV. - ChangePeer *pdpb.ChangePeer `protobuf:"bytes,2,opt,name=change_peer,json=changePeer,proto3" json:"change_peer,omitempty"` + ChangePeer *pdpb.ChangePeer `protobuf:"bytes,5,opt,name=change_peer,json=changePeer,proto3" json:"change_peer,omitempty"` // Pd can return transfer_leader to let TiKV does leader transfer itself. - TransferLeader *pdpb.TransferLeader `protobuf:"bytes,3,opt,name=transfer_leader,json=transferLeader,proto3" json:"transfer_leader,omitempty"` - // ID of the region - RegionId uint64 `protobuf:"varint,4,opt,name=region_id,json=regionId,proto3" json:"region_id,omitempty"` - RegionEpoch *metapb.RegionEpoch `protobuf:"bytes,5,opt,name=region_epoch,json=regionEpoch,proto3" json:"region_epoch,omitempty"` - // Leader of the region at the moment of the corresponding request was made. - TargetPeer *metapb.Peer `protobuf:"bytes,6,opt,name=target_peer,json=targetPeer,proto3" json:"target_peer,omitempty"` - Merge *pdpb.Merge `protobuf:"bytes,7,opt,name=merge,proto3" json:"merge,omitempty"` + TransferLeader *pdpb.TransferLeader `protobuf:"bytes,6,opt,name=transfer_leader,json=transferLeader,proto3" json:"transfer_leader,omitempty"` + Merge *pdpb.Merge `protobuf:"bytes,7,opt,name=merge,proto3" json:"merge,omitempty"` // PD sends split_region to let TiKV split a region into two regions. SplitRegion *pdpb.SplitRegion `protobuf:"bytes,8,opt,name=split_region,json=splitRegion,proto3" json:"split_region,omitempty"` // Multiple change peer operations atomically. @@ -664,37 +654,37 @@ func (m *RegionHeartbeatResponse) GetHeader() *ResponseHeader { return nil } -func (m *RegionHeartbeatResponse) GetChangePeer() *pdpb.ChangePeer { +func (m *RegionHeartbeatResponse) GetRegionId() uint64 { if m != nil { - return m.ChangePeer + return m.RegionId } - return nil + return 0 } -func (m *RegionHeartbeatResponse) GetTransferLeader() *pdpb.TransferLeader { +func (m *RegionHeartbeatResponse) GetRegionEpoch() *metapb.RegionEpoch { if m != nil { - return m.TransferLeader + return m.RegionEpoch } return nil } -func (m *RegionHeartbeatResponse) GetRegionId() uint64 { +func (m *RegionHeartbeatResponse) GetTargetPeer() *metapb.Peer { if m != nil { - return m.RegionId + return m.TargetPeer } - return 0 + return nil } -func (m *RegionHeartbeatResponse) GetRegionEpoch() *metapb.RegionEpoch { +func (m *RegionHeartbeatResponse) GetChangePeer() *pdpb.ChangePeer { if m != nil { - return m.RegionEpoch + return m.ChangePeer } return nil } -func (m *RegionHeartbeatResponse) GetTargetPeer() *metapb.Peer { +func (m *RegionHeartbeatResponse) GetTransferLeader() *pdpb.TransferLeader { if m != nil { - return m.TargetPeer + return m.TransferLeader } return nil } @@ -742,72 +732,71 @@ func init() { func init() { proto.RegisterFile("schedulingpb.proto", fileDescriptor_b4bfd49510230d67) } var fileDescriptor_b4bfd49510230d67 = []byte{ - // 1035 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdf, 0x52, 0x23, 0xc5, - 0x17, 0x26, 0x90, 0x84, 0xe4, 0x4c, 0x48, 0x66, 0xfb, 0xc7, 0x8f, 0x9d, 0x02, 0x45, 0x36, 0x8b, - 0x2b, 0xab, 0x65, 0x94, 0xec, 0x96, 0xe5, 0x8d, 0x17, 0x01, 0x52, 0xb5, 0x11, 0x08, 0xd8, 0x09, - 0x50, 0x5a, 0x65, 0x4d, 0x0d, 0x33, 0xc7, 0x64, 0x8a, 0x64, 0x66, 0xe8, 0xee, 0x80, 0x59, 0x5f, - 0xc4, 0x1b, 0xef, 0x7d, 0x14, 0x2f, 0xf5, 0xce, 0x4b, 0x0b, 0xdf, 0xc0, 0x27, 0xb0, 0xfa, 0x4f, - 0x42, 0x26, 0x4b, 0xa9, 0x55, 0x7a, 0x45, 0x9f, 0xef, 0xfb, 0xfa, 0x9c, 0x9c, 0x7f, 0x3d, 0x00, - 0xe1, 0x7e, 0x1f, 0x83, 0xd1, 0x20, 0x8c, 0x7a, 0xc9, 0x65, 0x2d, 0x61, 0xb1, 0x88, 0x49, 0x69, - 0x16, 0x5b, 0x87, 0x24, 0x98, 0x30, 0xeb, 0xab, 0xbd, 0xb8, 0x17, 0xab, 0xe3, 0x47, 0xf2, 0x64, - 0xd0, 0x0a, 0x1b, 0x71, 0xa1, 0x8e, 0x06, 0x28, 0x0d, 0x51, 0x78, 0x93, 0x4b, 0xd5, 0x43, 0x58, - 0xa1, 0x78, 0x3d, 0x42, 0x2e, 0x5e, 0xa1, 0x17, 0x20, 0x23, 0x6f, 0x03, 0xf8, 0x83, 0x11, 0x17, - 0xc8, 0xdc, 0x30, 0x70, 0x32, 0x5b, 0x99, 0x9d, 0x2c, 0x2d, 0x1a, 0xa4, 0x15, 0x90, 0x0d, 0x28, - 0x72, 0x8c, 0x02, 0xcd, 0x2e, 0x2a, 0xb6, 0xa0, 0x81, 0x56, 0x50, 0xfd, 0x0a, 0xca, 0x14, 0x79, - 0x12, 0x47, 0x1c, 0xff, 0x99, 0xb7, 0xe7, 0x90, 0x43, 0xc6, 0x62, 0xa6, 0x3c, 0x59, 0xf5, 0xff, - 0xd5, 0x52, 0x09, 0x37, 0x25, 0x45, 0xb5, 0xa2, 0xda, 0x86, 0x9c, 0xb2, 0xc9, 0x07, 0x90, 0x15, - 0xe3, 0x04, 0x95, 0xb3, 0x72, 0xfd, 0xf1, 0x03, 0x57, 0xba, 0xe3, 0x04, 0xa9, 0x12, 0x11, 0x07, - 0x96, 0x87, 0xc8, 0xb9, 0xd7, 0x43, 0x15, 0xa2, 0x48, 0x27, 0x66, 0x95, 0x82, 0x75, 0xea, 0x31, - 0x11, 0xfa, 0x61, 0xe2, 0x45, 0x82, 0x10, 0xc8, 0x46, 0xde, 0x50, 0x7b, 0x2d, 0x52, 0x75, 0x26, - 0x65, 0x58, 0x9c, 0x26, 0xb9, 0x18, 0x06, 0xe4, 0x1d, 0xb0, 0x06, 0x21, 0x17, 0x18, 0xb9, 0x23, - 0x36, 0xe0, 0xce, 0xd2, 0xd6, 0xd2, 0x4e, 0x91, 0x82, 0x86, 0xce, 0xd8, 0x80, 0x57, 0x05, 0xfc, - 0xbf, 0x23, 0x62, 0x26, 0x93, 0x67, 0xe2, 0x12, 0x3d, 0x61, 0x4a, 0x4b, 0x5e, 0x40, 0xbe, 0xaf, - 0x0a, 0xa2, 0xfc, 0x5b, 0xf5, 0x8d, 0xf4, 0xaf, 0x4e, 0x75, 0x80, 0x1a, 0x29, 0x79, 0x06, 0x39, - 0x2e, 0x3c, 0xc1, 0x4d, 0x71, 0xec, 0x9a, 0xea, 0xb5, 0x0a, 0xd0, 0x91, 0x38, 0xd5, 0x74, 0xf5, - 0x16, 0xd6, 0xe6, 0xa3, 0xea, 0x1e, 0x90, 0x97, 0x73, 0x61, 0xdf, 0x9a, 0x0f, 0x3b, 0xdb, 0xab, - 0x69, 0xdc, 0xf7, 0xa0, 0x32, 0xe9, 0xd9, 0x0d, 0x32, 0x1e, 0xc6, 0x91, 0xa9, 0x5d, 0xd9, 0xc0, - 0xe7, 0x1a, 0xad, 0xfe, 0x91, 0x85, 0x35, 0x8a, 0xbd, 0x30, 0x8e, 0xfe, 0xab, 0x84, 0xf3, 0x4c, - 0xb9, 0x33, 0x19, 0x97, 0x6b, 0x66, 0x54, 0x75, 0x10, 0x6a, 0x58, 0xb2, 0x0d, 0xf9, 0x81, 0x76, - 0xbe, 0xa4, 0x74, 0xa5, 0x89, 0xee, 0x14, 0xa5, 0x37, 0xcd, 0x91, 0x1a, 0x40, 0x10, 0xdf, 0x46, - 0x6e, 0x82, 0xc8, 0xb8, 0x93, 0xdd, 0x5a, 0xda, 0xb1, 0xea, 0x15, 0x5d, 0x43, 0xa9, 0xd3, 0x25, - 0x2c, 0x4a, 0x89, 0x34, 0x39, 0xd9, 0x85, 0x95, 0x04, 0xa3, 0x20, 0x8c, 0x7a, 0xe6, 0x4a, 0x4e, - 0x5d, 0x49, 0x3b, 0x2f, 0x19, 0x89, 0xbe, 0xf2, 0x14, 0x56, 0x2e, 0xc7, 0x02, 0xb9, 0x7b, 0xcb, - 0x42, 0x21, 0x30, 0x72, 0xf2, 0x6a, 0x56, 0x4a, 0x0a, 0xbc, 0xd0, 0x98, 0x5c, 0x01, 0x2d, 0x62, - 0xe8, 0x05, 0xce, 0xb2, 0x5e, 0x01, 0x85, 0x50, 0xf4, 0x02, 0xf2, 0x04, 0x4a, 0x57, 0x38, 0xbe, - 0x77, 0x51, 0x50, 0x02, 0x4b, 0x62, 0x13, 0x0f, 0x1b, 0x50, 0x54, 0x12, 0xe5, 0xa0, 0xa8, 0x77, - 0x4e, 0x02, 0xea, 0xfe, 0x73, 0xb0, 0xbd, 0x24, 0x61, 0xf1, 0xb7, 0xe1, 0xd0, 0x13, 0xe8, 0xf2, - 0xf0, 0x35, 0x3a, 0xa0, 0x34, 0x95, 0x19, 0xbc, 0x13, 0xbe, 0x46, 0x52, 0x83, 0x42, 0x18, 0x09, - 0x64, 0x37, 0xde, 0xc0, 0x29, 0xa9, 0xca, 0x11, 0x5d, 0x8f, 0x6e, 0x38, 0xc4, 0x96, 0x61, 0xe8, - 0x54, 0x33, 0xef, 0x5a, 0x86, 0x74, 0x56, 0xde, 0x70, 0x7d, 0x88, 0x63, 0x2e, 0xd7, 0x47, 0x20, - 0x1b, 0x3a, 0x65, 0x45, 0xab, 0x33, 0xd9, 0x05, 0xeb, 0x7a, 0x84, 0x6c, 0xec, 0xea, 0x29, 0xae, - 0xcc, 0x4e, 0xf1, 0x17, 0x92, 0xd0, 0x2d, 0x80, 0xeb, 0xe9, 0x59, 0x66, 0xea, 0x27, 0x23, 0x77, - 0xa4, 0x16, 0xd6, 0xd6, 0x99, 0xfa, 0xc9, 0xe8, 0x4c, 0xda, 0x9f, 0x67, 0x0b, 0x96, 0x5d, 0xaa, - 0xfe, 0x90, 0x85, 0xc7, 0x6f, 0x0c, 0xdd, 0xbf, 0x9a, 0xf7, 0x5d, 0xb0, 0xfc, 0xbe, 0x17, 0xf5, - 0x50, 0xf5, 0x3d, 0xbd, 0x6d, 0xfb, 0x8a, 0x50, 0xad, 0x07, 0x7f, 0x7a, 0x26, 0x9f, 0x41, 0x45, - 0x30, 0x2f, 0xe2, 0xdf, 0x20, 0x73, 0x53, 0xa3, 0xb8, 0x6a, 0x0a, 0x6a, 0xc8, 0x23, 0x1d, 0xa9, - 0x2c, 0x52, 0xb6, 0x4c, 0x53, 0x8f, 0xb2, 0x7c, 0x14, 0xb3, 0x3a, 0x4d, 0x0d, 0xb4, 0x02, 0xf2, - 0x09, 0x94, 0x0c, 0x89, 0x49, 0xec, 0xf7, 0x9d, 0x9c, 0x79, 0x1a, 0x53, 0xbb, 0xd0, 0x94, 0x14, - 0xb5, 0xd8, 0xbd, 0x41, 0x3e, 0x04, 0x4b, 0x78, 0xac, 0x87, 0x42, 0xa7, 0x91, 0x7f, 0x60, 0x35, - 0x40, 0x0b, 0x54, 0x0a, 0x4f, 0x20, 0x37, 0x44, 0xd6, 0x43, 0x35, 0x91, 0x56, 0xdd, 0xd2, 0x3f, - 0xfc, 0x58, 0x42, 0x54, 0x33, 0xe4, 0x25, 0x94, 0x78, 0x32, 0x08, 0x85, 0x6b, 0xb6, 0xb2, 0xa0, - 0x94, 0x8f, 0xcc, 0x3b, 0x24, 0x19, 0xb3, 0x98, 0x16, 0xbf, 0x37, 0xc8, 0xa7, 0x50, 0x9e, 0x29, - 0xa7, 0x7b, 0x53, 0x57, 0x23, 0x3b, 0x9d, 0xb5, 0xfb, 0x8a, 0x9e, 0xd7, 0x69, 0xc9, 0x9f, 0xb1, - 0xc8, 0x3e, 0xd8, 0xfc, 0x36, 0x14, 0x7e, 0xdf, 0xbd, 0x0d, 0x45, 0x84, 0x9c, 0x23, 0x57, 0xa3, - 0x6c, 0xd5, 0x1d, 0x7d, 0x77, 0xcf, 0x13, 0x7e, 0xbf, 0xa3, 0x24, 0x17, 0x5a, 0x41, 0x2b, 0x7c, - 0xd6, 0x44, 0xfe, 0xfe, 0x77, 0x50, 0x9c, 0x7e, 0x04, 0x48, 0x1e, 0x16, 0x4f, 0x0e, 0xed, 0x05, - 0x62, 0xc1, 0xf2, 0x59, 0xfb, 0xb0, 0x7d, 0x72, 0xd1, 0xb6, 0x33, 0x64, 0x15, 0xec, 0xf6, 0x49, - 0xd7, 0xdd, 0x3b, 0x39, 0xe9, 0x76, 0xba, 0xb4, 0x71, 0x7a, 0xda, 0x3c, 0xb0, 0x17, 0x89, 0x03, - 0xab, 0x8d, 0x23, 0xda, 0x6c, 0x1c, 0x7c, 0x99, 0x66, 0x96, 0xc8, 0x23, 0x58, 0x69, 0xb5, 0xcf, - 0x1b, 0x47, 0xad, 0x03, 0xf7, 0xbc, 0x71, 0x74, 0xd6, 0xb4, 0xb3, 0x64, 0x0d, 0xc8, 0xfe, 0xd1, - 0x59, 0xa7, 0xdb, 0xa4, 0xee, 0x71, 0xab, 0x73, 0xdc, 0xe8, 0xee, 0xbf, 0x6a, 0x1e, 0xd8, 0xb9, - 0xfa, 0x2f, 0x19, 0x80, 0xce, 0x74, 0xe4, 0xc8, 0xd7, 0x50, 0x4e, 0xbf, 0xcc, 0xe4, 0x69, 0x7a, - 0x22, 0x1f, 0xfc, 0x5a, 0xac, 0x6f, 0xff, 0xb5, 0x48, 0x0f, 0x71, 0x75, 0x81, 0x04, 0x50, 0x99, - 0xdb, 0x04, 0xb2, 0x3d, 0x3f, 0xf1, 0x0f, 0xbd, 0xce, 0xeb, 0xef, 0xfe, 0x8d, 0x6a, 0x12, 0x61, - 0x27, 0xf3, 0x71, 0x66, 0xef, 0xd9, 0xaf, 0x3f, 0x16, 0x32, 0x3f, 0xdd, 0x6d, 0x66, 0x7e, 0xbe, - 0xdb, 0xcc, 0xfc, 0x76, 0xb7, 0x99, 0xf9, 0xfe, 0xf7, 0xcd, 0x05, 0xb0, 0x63, 0xd6, 0xab, 0x89, - 0xf0, 0xea, 0xa6, 0x76, 0x75, 0xa3, 0xfe, 0x93, 0xb8, 0xcc, 0xab, 0x3f, 0x2f, 0xfe, 0x0c, 0x00, - 0x00, 0xff, 0xff, 0xbe, 0x2b, 0xd5, 0xd8, 0xb5, 0x08, 0x00, 0x00, + // 1009 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4d, 0x6f, 0x23, 0x45, + 0x10, 0x5d, 0x27, 0xb6, 0x93, 0xa9, 0x99, 0xd8, 0xb3, 0xbd, 0x21, 0x3b, 0x4a, 0x20, 0x64, 0xbd, + 0x61, 0xc9, 0x82, 0x30, 0xe0, 0x5d, 0x21, 0x2e, 0x1c, 0x9c, 0xc4, 0xd2, 0x5a, 0x49, 0x9c, 0xd0, + 0x76, 0x12, 0x81, 0x84, 0x46, 0x13, 0x4f, 0x31, 0x1e, 0xc5, 0x9e, 0x99, 0x74, 0xb7, 0x13, 0xbc, + 0xfc, 0x11, 0x2e, 0xdc, 0xf9, 0x29, 0xdc, 0x80, 0x1b, 0x47, 0x14, 0xfe, 0x08, 0xea, 0x0f, 0x3b, + 0xb6, 0x37, 0x02, 0x24, 0x38, 0xb9, 0xfb, 0xbd, 0x57, 0x55, 0xee, 0xaa, 0xd7, 0x6d, 0x03, 0xe1, + 0xdd, 0x1e, 0x86, 0xc3, 0x7e, 0x9c, 0x44, 0xd9, 0x45, 0x35, 0x63, 0xa9, 0x48, 0x89, 0x33, 0x8d, + 0xad, 0x43, 0x16, 0x8e, 0x99, 0xf5, 0xd5, 0x28, 0x8d, 0x52, 0xb5, 0xfc, 0x58, 0xae, 0x0c, 0x5a, + 0x66, 0x43, 0x2e, 0xd4, 0xd2, 0x00, 0xce, 0x00, 0x45, 0x30, 0x0e, 0xaa, 0x1c, 0xc0, 0x0a, 0xc5, + 0xab, 0x21, 0x72, 0xf1, 0x0a, 0x83, 0x10, 0x19, 0x79, 0x07, 0xa0, 0xdb, 0x1f, 0x72, 0x81, 0xcc, + 0x8f, 0x43, 0x2f, 0xb7, 0x95, 0xdb, 0xc9, 0x53, 0xcb, 0x20, 0xcd, 0x90, 0x6c, 0x80, 0xc5, 0x31, + 0x09, 0x35, 0xbb, 0xa0, 0xd8, 0x65, 0x0d, 0x34, 0xc3, 0xca, 0xd7, 0x50, 0xa2, 0xc8, 0xb3, 0x34, + 0xe1, 0xf8, 0xef, 0xb2, 0x3d, 0x87, 0x02, 0x32, 0x96, 0x32, 0x95, 0xc9, 0xae, 0x3d, 0xaa, 0xce, + 0x1c, 0xb8, 0x21, 0x29, 0xaa, 0x15, 0x95, 0x16, 0x14, 0xd4, 0x9e, 0x7c, 0x08, 0x79, 0x31, 0xca, + 0x50, 0x25, 0x2b, 0xd5, 0x1e, 0xdf, 0x13, 0xd2, 0x19, 0x65, 0x48, 0x95, 0x88, 0x78, 0xb0, 0x34, + 0x40, 0xce, 0x83, 0x08, 0x55, 0x09, 0x8b, 0x8e, 0xb7, 0x15, 0x0a, 0xf6, 0x49, 0xc0, 0x44, 0xdc, + 0x8d, 0xb3, 0x20, 0x11, 0x84, 0x40, 0x3e, 0x09, 0x06, 0x3a, 0xab, 0x45, 0xd5, 0x9a, 0x94, 0x60, + 0x61, 0x72, 0xc8, 0x85, 0x38, 0x24, 0xef, 0x82, 0xdd, 0x8f, 0xb9, 0xc0, 0xc4, 0x1f, 0xb2, 0x3e, + 0xf7, 0x16, 0xb7, 0x16, 0x77, 0x2c, 0x0a, 0x1a, 0x3a, 0x65, 0x7d, 0x5e, 0x11, 0xf0, 0x56, 0x5b, + 0xa4, 0x4c, 0x1e, 0x9e, 0x89, 0x0b, 0x0c, 0x84, 0x69, 0x2d, 0x79, 0x01, 0xc5, 0x9e, 0x6a, 0x88, + 0xca, 0x6f, 0xd7, 0x36, 0x66, 0xbf, 0xf5, 0xcc, 0x04, 0xa8, 0x91, 0x92, 0x67, 0x50, 0xe0, 0x22, + 0x10, 0xdc, 0x34, 0xc7, 0xad, 0xaa, 0x59, 0xab, 0x02, 0x6d, 0x89, 0x53, 0x4d, 0x57, 0x6e, 0x60, + 0x6d, 0xbe, 0xaa, 0x9e, 0x01, 0x79, 0x39, 0x57, 0xf6, 0xed, 0xf9, 0xb2, 0xd3, 0xb3, 0x9a, 0xd4, + 0x7d, 0x1f, 0xca, 0xe3, 0x99, 0x5d, 0x23, 0xe3, 0x71, 0x9a, 0x98, 0xde, 0x95, 0x0c, 0x7c, 0xa6, + 0xd1, 0xca, 0x2f, 0x79, 0x58, 0xa3, 0x18, 0xc5, 0x69, 0xf2, 0x7f, 0x1d, 0xb8, 0xc8, 0x54, 0x3a, + 0x73, 0xe2, 0x52, 0xd5, 0x58, 0x55, 0x17, 0xa1, 0x86, 0x25, 0xdb, 0x50, 0xec, 0xeb, 0xe4, 0x8b, + 0x4a, 0xe7, 0x8c, 0x75, 0x27, 0x28, 0xb3, 0x69, 0x4e, 0x4e, 0x54, 0x20, 0x1b, 0x78, 0x79, 0x35, + 0x3f, 0xb5, 0x26, 0x55, 0x80, 0x30, 0xbd, 0x49, 0xfc, 0x0c, 0x91, 0x71, 0xaf, 0xb0, 0xb5, 0xb8, + 0x63, 0xd7, 0xca, 0xba, 0xaf, 0x32, 0x56, 0xb7, 0xd5, 0x92, 0x12, 0xb9, 0xe5, 0xe4, 0x53, 0x58, + 0xc9, 0x30, 0x09, 0xe3, 0x24, 0x32, 0x21, 0x45, 0x15, 0x32, 0x5b, 0xd0, 0x31, 0x12, 0x1d, 0xf2, + 0x14, 0x56, 0x2e, 0x46, 0x02, 0xb9, 0x7f, 0xc3, 0x62, 0x21, 0x30, 0xf1, 0x96, 0x54, 0x7d, 0x47, + 0x81, 0xe7, 0x1a, 0x93, 0xd7, 0x42, 0x8b, 0x18, 0x06, 0xa1, 0xb7, 0xac, 0xaf, 0x85, 0x42, 0x28, + 0x06, 0x21, 0x79, 0x02, 0xce, 0x25, 0x8e, 0xee, 0x52, 0x58, 0x4a, 0x60, 0x4b, 0x6c, 0x9c, 0x61, + 0x03, 0x2c, 0x25, 0x51, 0x09, 0x40, 0xdf, 0x43, 0x09, 0xa8, 0xf8, 0xe7, 0xe0, 0x06, 0x59, 0xc6, + 0xd2, 0xef, 0xe2, 0x41, 0x20, 0xd0, 0xe7, 0xf1, 0x6b, 0xf4, 0x6c, 0xa5, 0x29, 0x4f, 0xe1, 0xed, + 0xf8, 0x35, 0xce, 0x4b, 0x65, 0x0a, 0xcf, 0x79, 0x43, 0x7a, 0x80, 0x23, 0xd9, 0x0c, 0xfb, 0x6a, + 0x88, 0x6c, 0xe4, 0x6b, 0x57, 0xae, 0x4c, 0xbb, 0xf2, 0x4b, 0x49, 0xe8, 0xf6, 0xc1, 0xd5, 0x64, + 0x4d, 0xaa, 0xb0, 0x1c, 0x27, 0x02, 0xd9, 0x75, 0xd0, 0xf7, 0x4a, 0x4a, 0x4f, 0xb4, 0xbe, 0x13, + 0x0f, 0xb0, 0x69, 0x18, 0x3a, 0xd1, 0x54, 0x7e, 0xcc, 0xc3, 0xe3, 0x37, 0x1c, 0xf5, 0x9f, 0xcc, + 0xbc, 0x01, 0x96, 0x76, 0xcd, 0xd4, 0x7b, 0xa5, 0x81, 0x66, 0x48, 0x3e, 0x03, 0xc7, 0x90, 0x98, + 0xa5, 0xdd, 0x9e, 0xb1, 0xd3, 0xa3, 0x59, 0xdb, 0x35, 0x24, 0x45, 0x6d, 0x76, 0xb7, 0x21, 0x1f, + 0x81, 0x2d, 0x02, 0x16, 0xa1, 0x50, 0xae, 0x50, 0x0e, 0x9b, 0x37, 0x05, 0x68, 0x81, 0x5c, 0xcb, + 0xc6, 0x75, 0x7b, 0x41, 0x12, 0xa1, 0x96, 0x17, 0xa6, 0x1b, 0xb7, 0xa7, 0x08, 0x1d, 0xd2, 0x9d, + 0xac, 0xc9, 0x17, 0x50, 0x16, 0x2c, 0x48, 0xf8, 0xb7, 0xc8, 0x7c, 0xe3, 0xf5, 0xa2, 0x0a, 0x5b, + 0x35, 0xfd, 0x33, 0xe4, 0xa1, 0x3e, 0x6d, 0x49, 0xcc, 0xec, 0xc9, 0x13, 0x28, 0x0c, 0x90, 0x45, + 0xa8, 0xcc, 0x67, 0xd7, 0x6c, 0x1d, 0x74, 0x24, 0x21, 0xaa, 0x19, 0xf2, 0x12, 0x1c, 0x9e, 0xf5, + 0x63, 0xe1, 0x9b, 0x2b, 0xb7, 0xac, 0x94, 0x0f, 0xcd, 0x23, 0x23, 0x19, 0x73, 0xeb, 0x6c, 0x7e, + 0xb7, 0x21, 0x9f, 0x43, 0x69, 0xea, 0x28, 0xfe, 0x75, 0x4d, 0x79, 0x73, 0x32, 0xd6, 0xbb, 0xd3, + 0x9c, 0xd5, 0xa8, 0xd3, 0x9d, 0xda, 0x91, 0x3d, 0x70, 0xf9, 0x4d, 0x2c, 0xba, 0x3d, 0xff, 0x26, + 0x16, 0x09, 0x72, 0x8e, 0x5c, 0xf9, 0xd6, 0xae, 0x79, 0x3a, 0x76, 0x37, 0x10, 0xdd, 0x5e, 0x5b, + 0x49, 0xce, 0xb5, 0x82, 0x96, 0xf9, 0xf4, 0x16, 0xf9, 0x07, 0xdf, 0x83, 0x35, 0x79, 0xe1, 0x49, + 0x11, 0x16, 0x8e, 0x0f, 0xdc, 0x07, 0xc4, 0x86, 0xa5, 0xd3, 0xd6, 0x41, 0xeb, 0xf8, 0xbc, 0xe5, + 0xe6, 0xc8, 0x2a, 0xb8, 0xad, 0xe3, 0x8e, 0xbf, 0x7b, 0x7c, 0xdc, 0x69, 0x77, 0x68, 0xfd, 0xe4, + 0xa4, 0xb1, 0xef, 0x2e, 0x10, 0x0f, 0x56, 0xeb, 0x87, 0xb4, 0x51, 0xdf, 0xff, 0x6a, 0x96, 0x59, + 0x24, 0x0f, 0x61, 0xa5, 0xd9, 0x3a, 0xab, 0x1f, 0x36, 0xf7, 0xfd, 0xb3, 0xfa, 0xe1, 0x69, 0xc3, + 0xcd, 0x93, 0x35, 0x20, 0x7b, 0x87, 0xa7, 0xed, 0x4e, 0x83, 0xfa, 0x47, 0xcd, 0xf6, 0x51, 0xbd, + 0xb3, 0xf7, 0xaa, 0xb1, 0xef, 0x16, 0x6a, 0xbf, 0xe5, 0x00, 0xda, 0x13, 0xcb, 0x91, 0x6f, 0xa0, + 0x34, 0xfb, 0xec, 0x92, 0xa7, 0xb3, 0x8e, 0xbc, 0xf7, 0xa7, 0x60, 0x7d, 0xfb, 0xef, 0x45, 0xda, + 0xc4, 0x95, 0x07, 0x24, 0x84, 0xf2, 0xdc, 0x4d, 0x20, 0xdb, 0xf3, 0x8e, 0xbf, 0xef, 0xe9, 0x5d, + 0x7f, 0xef, 0x1f, 0x54, 0xe3, 0x0a, 0x3b, 0xb9, 0x4f, 0x72, 0xbb, 0xcf, 0x7e, 0xff, 0x69, 0x39, + 0xf7, 0xf3, 0xed, 0x66, 0xee, 0xd7, 0xdb, 0xcd, 0xdc, 0x1f, 0xb7, 0x9b, 0xb9, 0x1f, 0xfe, 0xdc, + 0x7c, 0x00, 0x6e, 0xca, 0xa2, 0xaa, 0x88, 0x2f, 0xaf, 0xab, 0x97, 0xd7, 0xea, 0x6f, 0xc2, 0x45, + 0x51, 0x7d, 0xbc, 0xf8, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x52, 0x2b, 0xc3, 0x6c, 0x92, 0x08, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1248,16 +1237,9 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.CpuUsage != 0 { - i = encodeVarintSchedulingpb(dAtA, i, uint64(m.CpuUsage)) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x80 - } - if m.QueryStats != nil { + if m.Interval != nil { { - size, err := m.QueryStats.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Interval.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1265,21 +1247,11 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x7a - } - if m.Term != 0 { - i = encodeVarintSchedulingpb(dAtA, i, uint64(m.Term)) - i-- - dAtA[i] = 0x70 - } - if m.ApproximateKeys != 0 { - i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ApproximateKeys)) - i-- - dAtA[i] = 0x68 + dAtA[i] = 0x72 } - if m.Interval != nil { + if m.QueryStats != nil { { - size, err := m.Interval.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.QueryStats.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1287,32 +1259,37 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x62 + dAtA[i] = 0x6a + } + if m.ApproximateKeys != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ApproximateKeys)) + i-- + dAtA[i] = 0x60 } if m.ApproximateSize != 0 { i = encodeVarintSchedulingpb(dAtA, i, uint64(m.ApproximateSize)) i-- - dAtA[i] = 0x50 + dAtA[i] = 0x58 } if m.KeysRead != 0 { i = encodeVarintSchedulingpb(dAtA, i, uint64(m.KeysRead)) i-- - dAtA[i] = 0x48 + dAtA[i] = 0x50 } if m.KeysWritten != 0 { i = encodeVarintSchedulingpb(dAtA, i, uint64(m.KeysWritten)) i-- - dAtA[i] = 0x40 + dAtA[i] = 0x48 } if m.BytesRead != 0 { i = encodeVarintSchedulingpb(dAtA, i, uint64(m.BytesRead)) i-- - dAtA[i] = 0x38 + dAtA[i] = 0x40 } if m.BytesWritten != 0 { i = encodeVarintSchedulingpb(dAtA, i, uint64(m.BytesWritten)) i-- - dAtA[i] = 0x30 + dAtA[i] = 0x38 } if len(m.PendingPeers) > 0 { for iNdEx := len(m.PendingPeers) - 1; iNdEx >= 0; iNdEx-- { @@ -1325,7 +1302,7 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x32 } } if len(m.DownPeers) > 0 { @@ -1339,9 +1316,14 @@ func (m *RegionHeartbeatRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } } + if m.Term != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.Term)) + i-- + dAtA[i] = 0x20 + } if m.Leader != nil { { size, err := m.Leader.MarshalToSizedBuffer(dAtA[:i]) @@ -1453,9 +1435,9 @@ func (m *RegionHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x3a } - if m.TargetPeer != nil { + if m.TransferLeader != nil { { - size, err := m.TargetPeer.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TransferLeader.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1465,9 +1447,9 @@ func (m *RegionHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x32 } - if m.RegionEpoch != nil { + if m.ChangePeer != nil { { - size, err := m.RegionEpoch.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ChangePeer.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1477,14 +1459,9 @@ func (m *RegionHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x2a } - if m.RegionId != 0 { - i = encodeVarintSchedulingpb(dAtA, i, uint64(m.RegionId)) - i-- - dAtA[i] = 0x20 - } - if m.TransferLeader != nil { + if m.TargetPeer != nil { { - size, err := m.TransferLeader.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.TargetPeer.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1492,11 +1469,11 @@ func (m *RegionHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } - if m.ChangePeer != nil { + if m.RegionEpoch != nil { { - size, err := m.ChangePeer.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RegionEpoch.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1504,7 +1481,12 @@ func (m *RegionHeartbeatResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintSchedulingpb(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a + } + if m.RegionId != 0 { + i = encodeVarintSchedulingpb(dAtA, i, uint64(m.RegionId)) + i-- + dAtA[i] = 0x10 } if m.Header != nil { { @@ -1671,6 +1653,9 @@ func (m *RegionHeartbeatRequest) Size() (n int) { l = m.Leader.Size() n += 1 + l + sovSchedulingpb(uint64(l)) } + if m.Term != 0 { + n += 1 + sovSchedulingpb(uint64(m.Term)) + } if len(m.DownPeers) > 0 { for _, e := range m.DownPeers { l = e.Size() @@ -1698,22 +1683,16 @@ func (m *RegionHeartbeatRequest) Size() (n int) { if m.ApproximateSize != 0 { n += 1 + sovSchedulingpb(uint64(m.ApproximateSize)) } - if m.Interval != nil { - l = m.Interval.Size() - n += 1 + l + sovSchedulingpb(uint64(l)) - } if m.ApproximateKeys != 0 { n += 1 + sovSchedulingpb(uint64(m.ApproximateKeys)) } - if m.Term != 0 { - n += 1 + sovSchedulingpb(uint64(m.Term)) - } if m.QueryStats != nil { l = m.QueryStats.Size() n += 1 + l + sovSchedulingpb(uint64(l)) } - if m.CpuUsage != 0 { - n += 2 + sovSchedulingpb(uint64(m.CpuUsage)) + if m.Interval != nil { + l = m.Interval.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) @@ -1731,14 +1710,6 @@ func (m *RegionHeartbeatResponse) Size() (n int) { l = m.Header.Size() n += 1 + l + sovSchedulingpb(uint64(l)) } - if m.ChangePeer != nil { - l = m.ChangePeer.Size() - n += 1 + l + sovSchedulingpb(uint64(l)) - } - if m.TransferLeader != nil { - l = m.TransferLeader.Size() - n += 1 + l + sovSchedulingpb(uint64(l)) - } if m.RegionId != 0 { n += 1 + sovSchedulingpb(uint64(m.RegionId)) } @@ -1750,6 +1721,14 @@ func (m *RegionHeartbeatResponse) Size() (n int) { l = m.TargetPeer.Size() n += 1 + l + sovSchedulingpb(uint64(l)) } + if m.ChangePeer != nil { + l = m.ChangePeer.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } + if m.TransferLeader != nil { + l = m.TransferLeader.Size() + n += 1 + l + sovSchedulingpb(uint64(l)) + } if m.Merge != nil { l = m.Merge.Size() n += 1 + l + sovSchedulingpb(uint64(l)) @@ -2589,6 +2568,25 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType) + } + m.Term = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Term |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DownPeers", wireType) } @@ -2622,7 +2620,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: + case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field PendingPeers", wireType) } @@ -2656,7 +2654,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: + case 7: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field BytesWritten", wireType) } @@ -2675,7 +2673,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { break } } - case 7: + case 8: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field BytesRead", wireType) } @@ -2694,7 +2692,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { break } } - case 8: + case 9: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field KeysWritten", wireType) } @@ -2713,7 +2711,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { break } } - case 9: + case 10: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field KeysRead", wireType) } @@ -2732,7 +2730,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { break } } - case 10: + case 11: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field ApproximateSize", wireType) } @@ -2752,42 +2750,6 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { } } case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSchedulingpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSchedulingpb - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthSchedulingpb - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Interval == nil { - m.Interval = &pdpb.TimeInterval{} - } - if err := m.Interval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field ApproximateKeys", wireType) } @@ -2806,26 +2768,7 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { break } } - case 14: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType) - } - m.Term = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSchedulingpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Term |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 15: + case 13: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field QueryStats", wireType) } @@ -2861,11 +2804,11 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 16: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CpuUsage", wireType) + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) } - m.CpuUsage = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowSchedulingpb @@ -2875,11 +2818,28 @@ func (m *RegionHeartbeatRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.CpuUsage |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthSchedulingpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSchedulingpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Interval == nil { + m.Interval = &pdpb.TimeInterval{} + } + if err := m.Interval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipSchedulingpb(dAtA[iNdEx:]) @@ -2968,8 +2928,27 @@ func (m *RegionHeartbeatResponse) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionId", wireType) + } + m.RegionId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSchedulingpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RegionId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChangePeer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RegionEpoch", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -2996,16 +2975,16 @@ func (m *RegionHeartbeatResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ChangePeer == nil { - m.ChangePeer = &pdpb.ChangePeer{} + if m.RegionEpoch == nil { + m.RegionEpoch = &metapb.RegionEpoch{} } - if err := m.ChangePeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.RegionEpoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TransferLeader", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TargetPeer", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3032,35 +3011,16 @@ func (m *RegionHeartbeatResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TransferLeader == nil { - m.TransferLeader = &pdpb.TransferLeader{} + if m.TargetPeer == nil { + m.TargetPeer = &metapb.Peer{} } - if err := m.TransferLeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TargetPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RegionId", wireType) - } - m.RegionId = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSchedulingpb - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.RegionId |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RegionEpoch", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ChangePeer", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3087,16 +3047,16 @@ func (m *RegionHeartbeatResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RegionEpoch == nil { - m.RegionEpoch = &metapb.RegionEpoch{} + if m.ChangePeer == nil { + m.ChangePeer = &pdpb.ChangePeer{} } - if err := m.RegionEpoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ChangePeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetPeer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TransferLeader", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3123,10 +3083,10 @@ func (m *RegionHeartbeatResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TargetPeer == nil { - m.TargetPeer = &metapb.Peer{} + if m.TransferLeader == nil { + m.TransferLeader = &pdpb.TransferLeader{} } - if err := m.TargetPeer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TransferLeader.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/proto/schedulingpb.proto b/proto/schedulingpb.proto index 076dfd373..a5285fc9f 100644 --- a/proto/schedulingpb.proto +++ b/proto/schedulingpb.proto @@ -73,37 +73,38 @@ message RegionHeartbeatRequest { metapb.Region region = 2; // Leader Peer sending the heartbeat. metapb.Peer leader = 3; + // Term is the term of raft group. + uint64 term = 4; // Leader considers that these peers are down. - repeated pdpb.PeerStats down_peers = 4; + repeated pdpb.PeerStats down_peers = 5; // Pending peers are the peers that the leader can't consider as // working followers. - repeated metapb.Peer pending_peers = 5; + repeated metapb.Peer pending_peers = 6; // Bytes read/written during this period. - uint64 bytes_written = 6; - uint64 bytes_read = 7; + uint64 bytes_written = 7; + uint64 bytes_read = 8; // Keys read/written during this period. - uint64 keys_written = 8; - uint64 keys_read = 9; + uint64 keys_written = 9; + uint64 keys_read = 10; // Approximate region size. - uint64 approximate_size = 10; - reserved 11; - // Actually reported time interval - pdpb.TimeInterval interval = 12; + uint64 approximate_size = 11; // Approximate number of keys. - uint64 approximate_keys = 13; - // Term is the term of raft group. - uint64 term = 14; + uint64 approximate_keys = 12; // QueryStats reported write query stats, and there are read query stats in store heartbeat - pdpb.QueryStats query_stats = 15; - // cpu_usage is the CPU time usage of the leader region since the last heartbeat, - // which is calculated by cpu_time_delta/heartbeat_reported_interval. - uint64 cpu_usage = 16; + pdpb.QueryStats query_stats = 13; + // Actually reported time interval + pdpb.TimeInterval interval = 14; } message RegionHeartbeatResponse { ResponseHeader header = 1; + // ID of the region + uint64 region_id = 2; + metapb.RegionEpoch region_epoch = 3; + // Leader of the region at the moment of the corresponding request was made. + metapb.Peer target_peer = 4; // Notice, Pd only allows handling reported epoch >= current pd's. // Leader peer reports region status with RegionHeartbeatRequest // to pd regularly, pd will determine whether this region @@ -118,14 +119,9 @@ message RegionHeartbeatResponse { // 4. Leader may report old Peers (1), ConfVer (1) to pd before ConfChange // finished, pd stills responses ChangePeer Adding 2, of course, we must // guarantee the second ChangePeer can't be applied in TiKV. - pdpb.ChangePeer change_peer = 2; + pdpb.ChangePeer change_peer = 5; // Pd can return transfer_leader to let TiKV does leader transfer itself. - pdpb.TransferLeader transfer_leader = 3; - // ID of the region - uint64 region_id = 4; - metapb.RegionEpoch region_epoch = 5; - // Leader of the region at the moment of the corresponding request was made. - metapb.Peer target_peer = 6; + pdpb.TransferLeader transfer_leader = 6; pdpb.Merge merge = 7; // PD sends split_region to let TiKV split a region into two regions. pdpb.SplitRegion split_region = 8; diff --git a/scripts/proto.lock b/scripts/proto.lock index 74ebf1de1..a4582aca6 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -18974,69 +18974,61 @@ }, { "id": 4, + "name": "term", + "type": "uint64" + }, + { + "id": 5, "name": "down_peers", "type": "pdpb.PeerStats", "is_repeated": true }, { - "id": 5, + "id": 6, "name": "pending_peers", "type": "metapb.Peer", "is_repeated": true }, { - "id": 6, + "id": 7, "name": "bytes_written", "type": "uint64" }, { - "id": 7, + "id": 8, "name": "bytes_read", "type": "uint64" }, { - "id": 8, + "id": 9, "name": "keys_written", "type": "uint64" }, { - "id": 9, + "id": 10, "name": "keys_read", "type": "uint64" }, { - "id": 10, + "id": 11, "name": "approximate_size", "type": "uint64" }, { "id": 12, - "name": "interval", - "type": "pdpb.TimeInterval" - }, - { - "id": 13, "name": "approximate_keys", "type": "uint64" }, { - "id": 14, - "name": "term", - "type": "uint64" - }, - { - "id": 15, + "id": 13, "name": "query_stats", "type": "pdpb.QueryStats" }, { - "id": 16, - "name": "cpu_usage", - "type": "uint64" + "id": 14, + "name": "interval", + "type": "pdpb.TimeInterval" } - ], - "reserved_ids": [ - 11 ] }, { @@ -19049,28 +19041,28 @@ }, { "id": 2, - "name": "change_peer", - "type": "pdpb.ChangePeer" + "name": "region_id", + "type": "uint64" }, { "id": 3, - "name": "transfer_leader", - "type": "pdpb.TransferLeader" + "name": "region_epoch", + "type": "metapb.RegionEpoch" }, { "id": 4, - "name": "region_id", - "type": "uint64" + "name": "target_peer", + "type": "metapb.Peer" }, { "id": 5, - "name": "region_epoch", - "type": "metapb.RegionEpoch" + "name": "change_peer", + "type": "pdpb.ChangePeer" }, { "id": 6, - "name": "target_peer", - "type": "metapb.Peer" + "name": "transfer_leader", + "type": "pdpb.TransferLeader" }, { "id": 7, From 090f247be15c00a6000a4d23669ac3e95ea9fcd5 Mon Sep 17 00:00:00 2001 From: Neil Shen Date: Thu, 21 Sep 2023 17:06:09 +0800 Subject: [PATCH 7/8] raft_serverpb: add removed records to merged record (#1190) --- pkg/brpb/brpb.pb.go | 469 ++++++++++++++------------ pkg/raft_serverpb/raft_serverpb.pb.go | 373 +++++++++++--------- proto/raft_serverpb.proto | 13 +- scripts/proto.lock | 6 + 4 files changed, 492 insertions(+), 369 deletions(-) diff --git a/pkg/brpb/brpb.pb.go b/pkg/brpb/brpb.pb.go index 3dd1a46bf..305eaaa33 100644 --- a/pkg/brpb/brpb.pb.go +++ b/pkg/brpb/brpb.pb.go @@ -1873,7 +1873,7 @@ type S3 struct { ObjectLockEnabled bool `protobuf:"varint,14,opt,name=object_lock_enabled,json=objectLockEnabled,proto3" json:"object_lock_enabled,omitempty"` SessionToken string `protobuf:"bytes,15,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"` Provider string `protobuf:"bytes,16,opt,name=provider,proto3" json:"provider,omitempty"` - Profile string `protobuf:"bytes,17,opt,name=profile,json=profile,proto3" json:"profile,omitempty"` + Profile string `protobuf:"bytes,17,opt,name=profile,proto3" json:"profile,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3662,217 +3662,217 @@ func init() { func init() { proto.RegisterFile("brpb.proto", fileDescriptor_483d1f48d58a4885) } var fileDescriptor_483d1f48d58a4885 = []byte{ - // 3349 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xdd, 0x6e, 0xe4, 0x46, - 0x76, 0x16, 0xbb, 0xd9, 0x7f, 0xa7, 0x7f, 0x45, 0xcd, 0x8c, 0xdb, 0x9a, 0xcc, 0x8c, 0x4c, 0xef, - 0x4c, 0x14, 0x79, 0x57, 0xeb, 0x95, 0xbc, 0x86, 0x13, 0x6f, 0x60, 0xe8, 0xcf, 0x96, 0x56, 0x33, - 0x63, 0xa5, 0xa4, 0x6c, 0x10, 0xdf, 0x10, 0x6c, 0xb2, 0x5a, 0x62, 0x9a, 0x4d, 0x72, 0x59, 0xec, - 0x1e, 0xc9, 0xef, 0x60, 0x24, 0x41, 0x10, 0x20, 0x2f, 0x10, 0x20, 0x37, 0x79, 0x87, 0x5c, 0x24, - 0xc0, 0x2e, 0x12, 0x20, 0x0b, 0xe4, 0x26, 0x97, 0x81, 0xf3, 0x12, 0xb9, 0x0c, 0xce, 0xa9, 0x2a, - 0x36, 0xbb, 0x47, 0xad, 0x99, 0xd9, 0x04, 0x7b, 0x25, 0xd6, 0x77, 0x4e, 0x55, 0x9d, 0x3a, 0xff, - 0x55, 0x2d, 0x80, 0x41, 0x9a, 0x0c, 0xb6, 0x93, 0x34, 0xce, 0x62, 0xab, 0x3a, 0x70, 0xbd, 0xd1, - 0x24, 0x59, 0x6f, 0x8f, 0xa6, 0x69, 0xe2, 0x69, 0x78, 0xbd, 0xcd, 0xd3, 0x34, 0xce, 0xb9, 0xd6, - 0x5b, 0x63, 0x9e, 0xb9, 0xf9, 0xc8, 0xe2, 0x91, 0x97, 0xde, 0x24, 0x59, 0x10, 0x47, 0x39, 0x76, - 0xef, 0x32, 0xbe, 0x8c, 0xe9, 0xf3, 0xc7, 0xf8, 0xa5, 0xd0, 0x6e, 0x3a, 0x11, 0x19, 0x7d, 0x4a, - 0xc0, 0xfe, 0xe7, 0x1a, 0xc0, 0x3e, 0xed, 0xf8, 0x82, 0x67, 0xae, 0xf5, 0x08, 0xc0, 0x0b, 0x27, - 0x22, 0xe3, 0xa9, 0x13, 0xf8, 0x7d, 0x63, 0xc3, 0xd8, 0x34, 0x59, 0x43, 0x21, 0x27, 0xbe, 0xf5, - 0xfb, 0xd0, 0xd5, 0xe4, 0x29, 0x4f, 0x45, 0x10, 0x47, 0xfd, 0xd2, 0x86, 0xb1, 0xd9, 0x60, 0x1d, - 0x05, 0xff, 0x42, 0xa2, 0xb8, 0xce, 0x60, 0xc6, 0xd3, 0x24, 0x9e, 0xc6, 0x20, 0x27, 0xf7, 0xa1, - 0xa6, 0x69, 0xad, 0x0d, 0x63, 0xb3, 0xc2, 0xf4, 0xd0, 0xb2, 0xa1, 0x32, 0x0c, 0x42, 0x2e, 0xfa, - 0xe6, 0x46, 0x79, 0xb3, 0xb9, 0xd3, 0xda, 0x96, 0xea, 0xd8, 0xfe, 0x32, 0x08, 0x39, 0x93, 0x24, - 0xeb, 0xc7, 0x00, 0xf8, 0xe1, 0x04, 0x91, 0xcf, 0xaf, 0xfb, 0xed, 0x0d, 0x63, 0xb3, 0xb9, 0xd3, - 0xd3, 0x8c, 0x78, 0x0c, 0x62, 0x6e, 0x20, 0xcf, 0x09, 0xb2, 0x58, 0x1f, 0x42, 0x5b, 0x64, 0x6e, - 0x9a, 0xe5, 0x02, 0x55, 0xe8, 0x60, 0x2d, 0x02, 0xb5, 0x4c, 0x4f, 0xa0, 0xc9, 0x23, 0x3f, 0x67, - 0xa9, 0x12, 0x0b, 0xf0, 0xc8, 0xd7, 0x0c, 0x9b, 0x50, 0x13, 0xde, 0x15, 0x1f, 0xbb, 0xa2, 0x5f, - 0x23, 0xe1, 0x3a, 0x7a, 0xcf, 0x73, 0x82, 0x99, 0x26, 0x5b, 0xbb, 0xd0, 0x92, 0x9f, 0x4a, 0xc4, - 0xce, 0x12, 0x11, 0x9b, 0x92, 0x4b, 0x0a, 0xb9, 0x0e, 0x8d, 0x40, 0x38, 0xa9, 0xfb, 0xca, 0x19, - 0x4d, 0xfb, 0xf5, 0x0d, 0x63, 0xb3, 0xce, 0x6a, 0x81, 0x60, 0xee, 0xab, 0xd3, 0x29, 0x9e, 0x18, - 0x09, 0xa9, 0x1b, 0x5d, 0x72, 0xd1, 0x6f, 0xd0, 0xee, 0xf9, 0x72, 0xcc, 0x7d, 0xc5, 0x90, 0xc0, - 0x1a, 0xa9, 0xfa, 0x12, 0xd6, 0x67, 0xd0, 0xcd, 0x27, 0x28, 0x21, 0xba, 0x4b, 0x84, 0x68, 0xeb, - 0x59, 0x52, 0x0c, 0x0b, 0x4c, 0xdf, 0x0f, 0x45, 0x1f, 0x36, 0x8c, 0xcd, 0x16, 0xa3, 0x6f, 0xeb, - 0x27, 0xd0, 0xf4, 0xfd, 0x50, 0xae, 0xc3, 0x45, 0xbf, 0xb7, 0x64, 0x25, 0xf0, 0xfd, 0xf0, 0x44, - 0xf2, 0xa0, 0xca, 0x25, 0xd9, 0x49, 0xb9, 0x98, 0x84, 0x59, 0x7f, 0x95, 0x7c, 0xa0, 0x25, 0x41, - 0x46, 0x98, 0xf5, 0x09, 0x34, 0xdd, 0x24, 0xc8, 0x55, 0x6e, 0x6d, 0x18, 0x9b, 0x9d, 0x9d, 0xb5, - 0x6d, 0xed, 0xf9, 0x7b, 0x67, 0x27, 0x4a, 0xf7, 0x0c, 0xdc, 0x24, 0xd0, 0x76, 0xd8, 0x85, 0x7a, - 0x12, 0x87, 0x81, 0x17, 0x70, 0xd1, 0x5f, 0x23, 0x55, 0xbc, 0xa7, 0x45, 0x39, 0x0b, 0x5d, 0x8f, - 0x8f, 0x79, 0x94, 0x9d, 0x21, 0xc3, 0x0d, 0xcb, 0x19, 0xad, 0x4f, 0xe0, 0x41, 0xc4, 0x5f, 0x39, - 0x5e, 0x1c, 0x86, 0x2e, 0xc6, 0x89, 0x70, 0x78, 0xe4, 0x0e, 0x42, 0xee, 0xf7, 0xef, 0x91, 0x60, - 0xf7, 0x22, 0xfe, 0xea, 0x20, 0x27, 0x1e, 0x49, 0x9a, 0xb2, 0x49, 0x76, 0x1d, 0xa1, 0x4d, 0xee, - 0x6b, 0x9b, 0x5c, 0x5c, 0x47, 0xa7, 0x53, 0x6b, 0x0b, 0x6a, 0xfe, 0xc0, 0x19, 0xbb, 0x89, 0xe8, - 0x3f, 0x20, 0x29, 0x56, 0x73, 0x29, 0x82, 0x2c, 0x3d, 0xdc, 0x7f, 0xe1, 0x26, 0xac, 0xea, 0x0f, - 0x5e, 0xb8, 0x89, 0xb0, 0x9e, 0x81, 0x39, 0x8e, 0x7d, 0xde, 0x7f, 0x8f, 0x4e, 0x68, 0x69, 0x46, - 0x15, 0x78, 0xb1, 0xcf, 0x19, 0xd1, 0xad, 0x8f, 0xa0, 0xaa, 0x6c, 0xdc, 0xa7, 0x25, 0xd7, 0xe6, - 0x39, 0xa5, 0x99, 0x15, 0xcb, 0xcf, 0xcd, 0x7a, 0xb9, 0x67, 0x32, 0x33, 0x71, 0xb3, 0x2b, 0xfb, - 0x12, 0x9a, 0x05, 0x16, 0xeb, 0x21, 0x34, 0xa4, 0xc3, 0x8f, 0xf8, 0x0d, 0x45, 0x71, 0x8b, 0xd5, - 0x09, 0x38, 0xe5, 0x37, 0xd6, 0x7b, 0x50, 0x43, 0x47, 0x47, 0x52, 0x89, 0x48, 0x55, 0x1e, 0xf9, - 0x48, 0xc8, 0x63, 0xaf, 0xbc, 0x34, 0xf6, 0xec, 0x5f, 0x97, 0xc0, 0xc4, 0x31, 0xfa, 0x49, 0xe4, - 0x8e, 0x39, 0xad, 0xde, 0x60, 0xf4, 0x6d, 0x3d, 0x80, 0xaa, 0xb8, 0x72, 0x77, 0x7e, 0xfa, 0xa9, - 0x5e, 0x58, 0x8e, 0xe6, 0xc5, 0x29, 0x2f, 0x17, 0xc7, 0x9c, 0x13, 0xe7, 0xff, 0x27, 0x6a, 0xd7, - 0xa1, 0xee, 0xa5, 0xde, 0xa7, 0x9f, 0x5c, 0xc7, 0x69, 0xbf, 0x46, 0xd4, 0x7c, 0x8c, 0x72, 0x65, - 0x71, 0xe6, 0x86, 0xce, 0x68, 0x2a, 0x28, 0xe4, 0x4c, 0x56, 0x27, 0xe0, 0x74, 0x2a, 0x70, 0x65, - 0x49, 0x1c, 0xdc, 0x64, 0x14, 0x74, 0xb4, 0x32, 0x41, 0xfb, 0x88, 0x58, 0x1d, 0x28, 0x79, 0x43, - 0x8a, 0x93, 0x06, 0x2b, 0x79, 0x43, 0xd4, 0x88, 0x08, 0xbe, 0xe5, 0x94, 0xed, 0x4c, 0x46, 0xdf, - 0xb8, 0x83, 0x17, 0x24, 0x57, 0x98, 0x4e, 0xa7, 0x94, 0xea, 0x5a, 0xac, 0x2e, 0x81, 0x93, 0xa9, - 0xfd, 0x5d, 0x09, 0xea, 0x3a, 0x78, 0xac, 0x8f, 0x00, 0x30, 0xa7, 0x3b, 0xd2, 0x02, 0xc6, 0x2d, - 0x16, 0x68, 0x8c, 0x15, 0xaf, 0x40, 0x66, 0xdf, 0xcd, 0x99, 0x4b, 0xb7, 0x31, 0x23, 0x5d, 0x32, - 0x17, 0xf2, 0x56, 0xf9, 0xee, 0xbc, 0x35, 0x9f, 0x66, 0xcc, 0xb7, 0x49, 0x33, 0x79, 0x94, 0xcb, - 0x39, 0xd5, 0xe5, 0x6e, 0xab, 0x43, 0x5f, 0xce, 0xd4, 0x69, 0xa6, 0xb2, 0x51, 0xd6, 0x69, 0xc6, - 0x7e, 0x0a, 0xdd, 0x85, 0x00, 0x46, 0xb6, 0x20, 0x1a, 0xc6, 0xca, 0x87, 0xe9, 0xdb, 0xfe, 0xb5, - 0x01, 0x55, 0x29, 0x39, 0x9a, 0xc0, 0x1f, 0x28, 0x62, 0xc9, 0x1f, 0x58, 0xf7, 0xa0, 0x92, 0x61, - 0xe4, 0x2a, 0xff, 0x93, 0x83, 0x39, 0x17, 0x28, 0xdf, 0xe5, 0x02, 0xe6, 0xdd, 0x2e, 0x50, 0x79, - 0xcd, 0x05, 0xfe, 0x00, 0x7a, 0x59, 0x30, 0x0c, 0x5d, 0x71, 0xe5, 0xa4, 0x3c, 0x09, 0x03, 0xcf, - 0x15, 0xe4, 0x82, 0x6d, 0xd6, 0x55, 0x38, 0x53, 0x30, 0x8a, 0x26, 0x32, 0x37, 0x13, 0xe4, 0x84, - 0x2d, 0x26, 0x07, 0xf6, 0x0b, 0xa8, 0x9c, 0x1c, 0xbe, 0x70, 0x13, 0xdc, 0x6a, 0x92, 0x88, 0x2c, - 0xe5, 0xee, 0x58, 0x57, 0xde, 0x32, 0x03, 0x0d, 0x9d, 0xf8, 0x18, 0x0d, 0x7e, 0xfc, 0x2a, 0x9a, - 0xb1, 0x94, 0x88, 0xa5, 0x35, 0x03, 0x4f, 0x7c, 0xfb, 0x15, 0xb4, 0x30, 0xf9, 0x5c, 0xe0, 0xb1, - 0x71, 0xd5, 0xdb, 0x82, 0xf4, 0x07, 0x50, 0x0d, 0x7c, 0xcc, 0x5b, 0xb4, 0x42, 0x73, 0xa7, 0xad, - 0x8d, 0x45, 0x82, 0xb0, 0x4a, 0xe0, 0xe3, 0xcc, 0x1f, 0x01, 0x24, 0x6e, 0x9a, 0x05, 0x94, 0x0e, - 0x95, 0xdf, 0x2c, 0x70, 0x16, 0x18, 0x6c, 0x01, 0x8d, 0x3c, 0xeb, 0xfd, 0x1f, 0x76, 0xfd, 0x21, - 0x54, 0xc9, 0x64, 0x7a, 0xc7, 0x7b, 0xc5, 0x94, 0xaa, 0x4f, 0xc5, 0x14, 0x8f, 0x7d, 0x06, 0x75, - 0xed, 0x94, 0xbf, 0x65, 0xc6, 0x93, 0x21, 0x5c, 0xd6, 0x21, 0x6c, 0x1f, 0x42, 0xe7, 0x40, 0x35, - 0x3b, 0x87, 0x47, 0xd8, 0x70, 0x61, 0xa7, 0xe2, 0x4d, 0xd2, 0x94, 0x47, 0x99, 0xea, 0x86, 0xf4, - 0x10, 0x29, 0x29, 0xff, 0xe5, 0x84, 0x8b, 0x8c, 0x16, 0x35, 0x99, 0x1e, 0xda, 0xff, 0x66, 0x40, - 0x45, 0xce, 0xee, 0x41, 0x79, 0x2c, 0x2e, 0x95, 0x22, 0xf0, 0xd3, 0xda, 0x87, 0xde, 0xac, 0xc1, - 0x72, 0xa8, 0xa9, 0xa3, 0xfd, 0x9b, 0x3b, 0x0f, 0xf4, 0x59, 0xe7, 0x25, 0x38, 0x5e, 0xc9, 0x9b, - 0xab, 0x13, 0x5f, 0xae, 0xba, 0x0d, 0xf5, 0xd1, 0x54, 0xcd, 0x35, 0x69, 0xee, 0x6a, 0x5e, 0x33, - 0x4f, 0xf9, 0x8d, 0x9e, 0x56, 0x1b, 0x4d, 0x25, 0xff, 0x2e, 0xb4, 0x52, 0x7e, 0x19, 0xc4, 0x91, - 0x9a, 0x53, 0xa1, 0x39, 0x9d, 0x6d, 0xdd, 0x52, 0xea, 0x09, 0x4d, 0xc9, 0x45, 0xc3, 0xfd, 0x3a, - 0x54, 0x7d, 0x9e, 0xb9, 0x41, 0x68, 0x87, 0x00, 0x07, 0x32, 0x65, 0x45, 0xc3, 0xd8, 0xfa, 0x02, - 0x9a, 0x2a, 0xa3, 0x65, 0x37, 0x89, 0xb4, 0x71, 0x67, 0xe7, 0xf1, 0xf6, 0x5c, 0x07, 0x7a, 0x94, - 0x0f, 0x5e, 0xf0, 0xec, 0x2a, 0xf6, 0x19, 0xc8, 0x29, 0x17, 0x37, 0x09, 0xa7, 0x16, 0x53, 0x2e, - 0x30, 0xb3, 0x87, 0x4a, 0x92, 0xa7, 0xfc, 0xc6, 0xfe, 0xae, 0x0a, 0x6d, 0x95, 0x36, 0xa4, 0x3a, - 0xdf, 0xd4, 0x93, 0xce, 0x59, 0xbe, 0xb4, 0xdc, 0xf2, 0xe5, 0xbb, 0x8b, 0x8b, 0xf9, 0xe6, 0xe2, - 0x52, 0x79, 0xad, 0xb8, 0x3c, 0xc2, 0x84, 0x99, 0x71, 0x27, 0x0c, 0xc6, 0x41, 0xa6, 0xca, 0x4b, - 0x03, 0x91, 0xe7, 0x08, 0x58, 0x1b, 0xd0, 0xf4, 0xe2, 0x48, 0x3a, 0x8c, 0x77, 0x43, 0x15, 0xa6, - 0xcd, 0x8a, 0x90, 0xf5, 0x05, 0x74, 0x45, 0x16, 0xa7, 0xee, 0x25, 0x77, 0xd0, 0xfa, 0x3c, 0xf2, - 0xa9, 0xd0, 0x14, 0xbc, 0xe1, 0x5c, 0x92, 0xf7, 0x25, 0x95, 0x75, 0xc4, 0xdc, 0x78, 0xbe, 0x6b, - 0x84, 0xf9, 0xae, 0x51, 0x7a, 0x77, 0x33, 0x2f, 0x50, 0xe8, 0x7b, 0xf1, 0x38, 0x49, 0xb9, 0x40, - 0xe1, 0xa5, 0xfd, 0x5a, 0x64, 0xbf, 0xbc, 0x81, 0x3a, 0x98, 0xd1, 0xd1, 0x58, 0xac, 0xeb, 0xcd, - 0x03, 0xd6, 0x47, 0xb0, 0x5a, 0x5c, 0x23, 0xe4, 0x53, 0x1e, 0x52, 0x0b, 0x5e, 0x61, 0xc5, 0xc5, - 0x9f, 0x23, 0x6e, 0xed, 0xe6, 0xbe, 0x42, 0x49, 0x5c, 0xb6, 0xc1, 0x79, 0xf7, 0x33, 0x73, 0x2a, - 0xed, 0x1f, 0xe4, 0x60, 0x9f, 0x43, 0xd7, 0x17, 0x99, 0x53, 0x6c, 0x0c, 0xbb, 0xcb, 0x1b, 0xc3, - 0xb6, 0x2f, 0xb2, 0xbd, 0x59, 0x6f, 0xf8, 0x31, 0x80, 0x98, 0x0c, 0x74, 0x35, 0xea, 0xa9, 0xbe, - 0xac, 0x10, 0x1c, 0xaa, 0x84, 0x89, 0xc9, 0x40, 0x15, 0xa2, 0x0f, 0x30, 0x38, 0x28, 0x47, 0x3b, - 0x29, 0x77, 0x7d, 0xea, 0x53, 0xeb, 0x18, 0x0a, 0x84, 0x31, 0xee, 0xfa, 0x79, 0xf7, 0x66, 0xbd, - 0xa1, 0x7b, 0x7b, 0x08, 0x8d, 0x49, 0x14, 0xfc, 0x72, 0xc2, 0xd1, 0x4f, 0xd7, 0x48, 0xed, 0x75, - 0x09, 0x9c, 0xf8, 0xd8, 0x2e, 0x7a, 0x71, 0x94, 0xf1, 0xeb, 0x8c, 0x3a, 0x4e, 0x2c, 0xac, 0x5a, - 0xac, 0x03, 0x89, 0x33, 0xcd, 0xf0, 0x73, 0xb3, 0x5e, 0xed, 0xd5, 0x54, 0x67, 0xf7, 0xb7, 0x25, - 0xb8, 0x77, 0x4e, 0xf9, 0x5d, 0xee, 0x77, 0xe1, 0x8a, 0x11, 0xe9, 0xe9, 0x63, 0xa8, 0x29, 0x5f, - 0xa0, 0x98, 0x58, 0xee, 0x32, 0x9a, 0xcd, 0x7a, 0x1f, 0x64, 0x60, 0x38, 0x99, 0xd0, 0x29, 0x8b, - 0xc6, 0x17, 0xc2, 0xba, 0x0f, 0x18, 0x18, 0x48, 0x90, 0x05, 0xb2, 0xc2, 0x23, 0xff, 0x42, 0xe4, - 0x99, 0xdc, 0x2c, 0x64, 0xf2, 0x0f, 0xa0, 0x45, 0xf9, 0x17, 0x9b, 0x8f, 0x8c, 0xa7, 0x54, 0xc1, - 0x1b, 0xac, 0x49, 0xd8, 0x97, 0x04, 0xdd, 0xea, 0x68, 0xd5, 0x77, 0x73, 0x34, 0xd6, 0x09, 0x5d, - 0x91, 0x39, 0x93, 0xc4, 0xc7, 0xf8, 0xca, 0x84, 0xee, 0x7a, 0x59, 0x15, 0x0b, 0xe7, 0x44, 0xd8, - 0xbf, 0x29, 0x41, 0x67, 0xfe, 0xa0, 0x96, 0x0d, 0x66, 0x14, 0xc7, 0x89, 0x52, 0x47, 0xde, 0x0f, - 0xbd, 0x8c, 0xe3, 0xe4, 0x78, 0x85, 0x11, 0xcd, 0x7a, 0x0a, 0x95, 0x30, 0xf6, 0xdc, 0x70, 0xb1, - 0x0c, 0x3d, 0x47, 0xf0, 0x78, 0x85, 0x49, 0xaa, 0xf5, 0x7b, 0x50, 0x12, 0xbb, 0x2a, 0x31, 0x43, - 0xae, 0xd7, 0xdd, 0xe3, 0x15, 0x56, 0x12, 0xbb, 0xd6, 0x13, 0x28, 0x5f, 0x7a, 0x42, 0xe5, 0xde, - 0xa6, 0x26, 0x7f, 0x75, 0x70, 0x7e, 0xbc, 0xc2, 0x90, 0x62, 0x7d, 0x0e, 0x6d, 0x2f, 0x8c, 0x27, - 0xbe, 0xe3, 0xdf, 0x44, 0xee, 0x38, 0xf0, 0x54, 0xca, 0xbd, 0x37, 0x4b, 0xf1, 0xf1, 0xc4, 0x3f, - 0x94, 0xb4, 0xe3, 0x15, 0xd6, 0xf2, 0x0a, 0x63, 0x3c, 0xc6, 0x95, 0x3f, 0x94, 0x8d, 0x44, 0xe1, - 0x18, 0xc7, 0x87, 0x5f, 0xe2, 0xfa, 0x44, 0xb3, 0x8e, 0xc1, 0x72, 0xbf, 0x9d, 0xa4, 0xdc, 0x19, - 0x84, 0xf1, 0xc0, 0xd1, 0x7e, 0x50, 0xa3, 0x19, 0x7d, 0x3d, 0x63, 0x0f, 0x39, 0xf6, 0xc3, 0x78, - 0xa0, 0xf4, 0x74, 0xbc, 0xc2, 0x7a, 0xee, 0x02, 0xb6, 0xdf, 0x80, 0x9a, 0xca, 0x3c, 0x76, 0x15, - 0x4c, 0xd4, 0x95, 0xfd, 0x10, 0x2a, 0xa4, 0x0e, 0x34, 0x3f, 0xfa, 0xa0, 0x2e, 0xe4, 0xe4, 0x8f, - 0xff, 0x53, 0x86, 0xd2, 0xf9, 0x2e, 0xf6, 0x54, 0x3c, 0xf2, 0x93, 0x38, 0x50, 0x85, 0xb1, 0xc1, - 0xf2, 0x31, 0x5e, 0x03, 0x64, 0x25, 0x51, 0x8f, 0x03, 0x6a, 0x84, 0xf8, 0x60, 0xe2, 0x8d, 0x78, - 0xa6, 0x2a, 0xae, 0x1a, 0x21, 0x9e, 0xa4, 0x7c, 0x18, 0x5c, 0x2b, 0x3f, 0x53, 0x23, 0x99, 0xa3, - 0x65, 0x72, 0xf4, 0x42, 0x57, 0xc8, 0x06, 0xac, 0x81, 0x39, 0x9a, 0xc0, 0x03, 0xc4, 0xb0, 0xc4, - 0x0a, 0x21, 0xdd, 0xab, 0xc1, 0xf0, 0x13, 0x11, 0xd7, 0x0b, 0x49, 0x19, 0x0d, 0x86, 0x9f, 0x98, - 0xa6, 0x5d, 0xcf, 0xe3, 0x42, 0x50, 0x21, 0xa8, 0xcb, 0xd7, 0x08, 0x89, 0x60, 0x2d, 0xd8, 0x82, - 0x55, 0xc1, 0xbd, 0x94, 0x67, 0x4e, 0x81, 0xab, 0x41, 0x5c, 0x5d, 0x49, 0xd8, 0xcb, 0x79, 0x37, - 0xa1, 0x37, 0x8c, 0x53, 0x8f, 0x3b, 0xa8, 0x0c, 0x47, 0x64, 0x37, 0x21, 0x57, 0x69, 0xb7, 0x43, - 0xf8, 0x99, 0x9b, 0x5d, 0x9d, 0x23, 0x6a, 0x7d, 0x08, 0x1d, 0x21, 0xb8, 0x33, 0x1a, 0xd3, 0x7a, - 0x98, 0x12, 0x64, 0x26, 0x6e, 0x0a, 0xc1, 0x4f, 0xc7, 0xb8, 0xd8, 0x89, 0x8f, 0x21, 0x99, 0xc6, - 0x21, 0x77, 0xdc, 0x54, 0xbe, 0x84, 0x34, 0x58, 0x0d, 0xc7, 0x7b, 0xa9, 0x2c, 0x3e, 0xd7, 0x19, - 0x4f, 0x23, 0x37, 0xc4, 0xc9, 0x6d, 0xa2, 0x82, 0x86, 0x4e, 0x7c, 0x6b, 0x1b, 0xd6, 0xe2, 0xc1, - 0x5f, 0x70, 0x2f, 0x73, 0xc2, 0xd8, 0x1b, 0xe5, 0xf7, 0xd9, 0x0e, 0x49, 0xb3, 0x2a, 0x49, 0xcf, - 0x63, 0x6f, 0xa4, 0x2f, 0xb3, 0xa8, 0x4e, 0x1d, 0x91, 0xf1, 0x88, 0xcb, 0xb4, 0x8a, 0xea, 0x54, - 0x51, 0x87, 0x18, 0xda, 0x35, 0x49, 0xe3, 0x69, 0xe0, 0xf3, 0x94, 0xee, 0xf9, 0x0d, 0x96, 0x8f, - 0xed, 0x5f, 0x19, 0x50, 0xfe, 0xea, 0xe0, 0xfc, 0x4d, 0xb6, 0x57, 0x36, 0x2e, 0x2d, 0xb1, 0x71, - 0xf9, 0x6e, 0x1b, 0x9b, 0xb7, 0xd8, 0xf8, 0x29, 0x74, 0x92, 0x94, 0xfb, 0x7c, 0x18, 0x44, 0xdc, - 0x77, 0xd0, 0xb8, 0xd2, 0x13, 0xda, 0x33, 0x74, 0xcf, 0x0b, 0xb1, 0x1b, 0xf7, 0x10, 0x88, 0xb2, - 0xc0, 0x0d, 0x05, 0x85, 0x86, 0xf2, 0x8b, 0x6e, 0x01, 0x47, 0xe7, 0xb7, 0xc7, 0xd0, 0xa3, 0xe8, - 0x38, 0x98, 0x88, 0x2c, 0x1e, 0x53, 0xe7, 0x81, 0xbb, 0xcc, 0xba, 0x98, 0xbc, 0x8f, 0x6c, 0xb0, - 0xf6, 0x0c, 0x45, 0xb6, 0x1d, 0xb8, 0x3f, 0xcf, 0xe6, 0x14, 0xee, 0xbc, 0x0d, 0xb6, 0x36, 0xc7, - 0x7d, 0x4e, 0x24, 0x4c, 0x56, 0xbd, 0xc5, 0x68, 0xfc, 0xdd, 0xab, 0xf1, 0x03, 0x68, 0xb9, 0x9e, - 0x17, 0x4f, 0xa2, 0xcc, 0xa1, 0xac, 0x2e, 0x95, 0xd8, 0x54, 0xd8, 0x4b, 0x4c, 0xee, 0x8f, 0x00, - 0xc4, 0x95, 0x9b, 0x72, 0xd9, 0x32, 0x49, 0xe5, 0x35, 0x24, 0x82, 0x67, 0x9f, 0x05, 0x92, 0x08, - 0x2e, 0xe7, 0x03, 0xe9, 0x3c, 0xb8, 0x44, 0x03, 0x14, 0x54, 0x23, 0xbc, 0x38, 0xe1, 0x3a, 0x8e, - 0x66, 0xf8, 0x39, 0xc2, 0xd6, 0x17, 0xaf, 0x29, 0x1b, 0x6e, 0x49, 0x5e, 0x05, 0xf3, 0x2c, 0x98, - 0xc1, 0xfe, 0x6b, 0x03, 0xaa, 0xfb, 0x52, 0x29, 0x6f, 0x97, 0x8b, 0xca, 0x4b, 0x72, 0x91, 0xb9, - 0x44, 0xc1, 0x95, 0xbb, 0x15, 0x5c, 0x7d, 0x5d, 0xc1, 0xd8, 0xf8, 0xb7, 0x8a, 0xa9, 0xdd, 0x7a, - 0x96, 0xef, 0x62, 0xa8, 0x9e, 0x5b, 0xf7, 0x0e, 0x84, 0xe6, 0xbb, 0x7e, 0x08, 0x6d, 0x1d, 0x65, - 0xd2, 0x34, 0xd2, 0xea, 0x2d, 0x0d, 0x92, 0x6d, 0x7e, 0x0a, 0x15, 0x37, 0xcb, 0x52, 0x7d, 0x37, - 0x7a, 0x72, 0x5b, 0x31, 0xd9, 0xde, 0x43, 0x8e, 0xa3, 0x28, 0x4b, 0x6f, 0x98, 0xe4, 0x5e, 0xff, - 0x0c, 0x60, 0x06, 0x62, 0x72, 0x9c, 0x79, 0x36, 0x7e, 0xe2, 0xc5, 0x74, 0xea, 0x86, 0x13, 0xbd, - 0xa7, 0x1c, 0xfc, 0x51, 0xe9, 0x33, 0xc3, 0x7e, 0x0c, 0x26, 0x16, 0x1d, 0xa9, 0xc3, 0x71, 0x9c, - 0xe9, 0x1b, 0x9d, 0x1a, 0xd9, 0xff, 0x62, 0x40, 0x47, 0xb7, 0xea, 0x22, 0x89, 0x23, 0x81, 0x49, - 0xaf, 0x22, 0xef, 0x18, 0xc6, 0x7c, 0x79, 0xa5, 0x3b, 0x05, 0x93, 0xb4, 0xdf, 0xb2, 0x63, 0x7f, - 0x9b, 0x97, 0xe1, 0x85, 0x07, 0xc5, 0xca, 0x5b, 0x3d, 0x28, 0xda, 0x3f, 0xc2, 0x5b, 0x1f, 0x77, - 0xa3, 0xd9, 0x95, 0x63, 0xae, 0x93, 0x33, 0xe6, 0x3b, 0x39, 0xfb, 0x0c, 0xba, 0x39, 0xfb, 0xbb, - 0x1c, 0xbb, 0x0f, 0x35, 0x31, 0xa1, 0x58, 0xa1, 0x43, 0xd7, 0x99, 0x1e, 0xda, 0x9f, 0x41, 0xe7, - 0x2c, 0xe5, 0x89, 0x9b, 0x72, 0x2d, 0xc0, 0x33, 0xe8, 0x0a, 0x77, 0xca, 0x9d, 0x2c, 0x76, 0x8a, - 0x4d, 0x5e, 0x9d, 0xb5, 0x11, 0xbe, 0x88, 0x55, 0x0e, 0xb1, 0xff, 0xd1, 0x80, 0x6e, 0x3e, 0xf5, - 0x1d, 0x6d, 0x30, 0x3b, 0x61, 0x69, 0xa1, 0x57, 0xfd, 0x21, 0x58, 0x5e, 0x1c, 0x86, 0x58, 0x5a, - 0xe8, 0xa1, 0x9d, 0xf2, 0x83, 0xea, 0x0c, 0x7b, 0x8a, 0x82, 0x6a, 0x3f, 0x40, 0x1c, 0xcb, 0xe7, - 0x1c, 0x37, 0x3d, 0x82, 0xc9, 0xeb, 0x54, 0xb7, 0xc0, 0x7c, 0x1e, 0x7c, 0xcb, 0xed, 0x35, 0x58, - 0x3d, 0xb8, 0xe2, 0xde, 0x68, 0xcf, 0x1f, 0x07, 0x91, 0x3a, 0xac, 0xfd, 0x9d, 0x01, 0x56, 0x11, - 0x7d, 0x97, 0x73, 0x3c, 0x9b, 0xeb, 0x35, 0x30, 0xc2, 0xd4, 0x2f, 0x23, 0x8c, 0xd0, 0x3c, 0xde, - 0xb7, 0x60, 0xf5, 0xca, 0x15, 0x4e, 0xc2, 0x23, 0x3f, 0x88, 0x2e, 0x1d, 0x17, 0x77, 0xa2, 0x13, - 0xd5, 0x59, 0xf7, 0xca, 0x15, 0x67, 0x12, 0x27, 0x01, 0xec, 0x7f, 0x35, 0xe0, 0xd1, 0x91, 0xaa, - 0xb3, 0x4a, 0xd1, 0x8c, 0xa3, 0x19, 0x72, 0xf3, 0xdc, 0x72, 0x6d, 0x33, 0xde, 0xe9, 0xda, 0xf6, - 0x04, 0x9a, 0xaa, 0x76, 0x17, 0xc2, 0x1d, 0x24, 0xf4, 0x52, 0x75, 0xd9, 0xa9, 0xdc, 0x53, 0x72, - 0xc8, 0xec, 0xd5, 0x54, 0x18, 0xb1, 0x3c, 0x85, 0x0e, 0x5d, 0x18, 0xa2, 0xcc, 0x09, 0x79, 0x74, - 0x99, 0x5d, 0x29, 0xa5, 0xb7, 0x15, 0xfa, 0x9c, 0x40, 0x7b, 0x03, 0x1e, 0x2f, 0x3b, 0x8c, 0x54, - 0xb4, 0xfd, 0xf7, 0x06, 0xac, 0x2f, 0xb0, 0x9c, 0xbb, 0xd3, 0xdf, 0xe1, 0x61, 0x5f, 0x3f, 0x49, - 0xf9, 0xb6, 0x93, 0x3c, 0x82, 0x87, 0xb7, 0x8a, 0xa9, 0x8e, 0xf1, 0x57, 0xea, 0x39, 0xd5, 0x77, - 0x33, 0xd7, 0xda, 0xd2, 0xd9, 0xc2, 0x98, 0x7f, 0x48, 0x3a, 0x54, 0xcf, 0xa2, 0x74, 0xed, 0x54, - 0x59, 0xe3, 0x53, 0x68, 0x92, 0xe3, 0x5e, 0xa6, 0xf1, 0x24, 0xd1, 0x6f, 0x98, 0xf7, 0x17, 0x67, - 0x7c, 0x85, 0x54, 0x46, 0xbf, 0x3c, 0xd1, 0xa7, 0x90, 0xf7, 0x29, 0xb4, 0x50, 0xfe, 0x1a, 0x47, - 0x57, 0x2d, 0x8c, 0xa0, 0x27, 0x80, 0xa6, 0x8a, 0xc3, 0x29, 0x2f, 0x5c, 0xaa, 0x40, 0x43, 0xf2, - 0xc2, 0x35, 0x76, 0xaf, 0x91, 0x26, 0x8d, 0x56, 0x19, 0xbb, 0xd7, 0x0a, 0x0e, 0x22, 0x84, 0x2b, - 0x0a, 0x0e, 0xa2, 0x0b, 0x94, 0x90, 0x7e, 0xf0, 0xcb, 0x13, 0x5b, 0x4d, 0x25, 0xb6, 0xc2, 0x2f, - 0x30, 0x3a, 0xb1, 0x35, 0xc7, 0xb3, 0x81, 0xfd, 0xef, 0x06, 0xb4, 0xe7, 0xe4, 0xbf, 0xad, 0xa5, - 0xb7, 0x7e, 0x06, 0xdd, 0xd9, 0x6b, 0xb2, 0xbc, 0xaa, 0x97, 0xee, 0xd0, 0x5a, 0x3b, 0x7f, 0x5a, - 0xa6, 0x7b, 0xe8, 0x4c, 0xe4, 0x72, 0x51, 0xe4, 0x25, 0x07, 0x7c, 0x06, 0x5d, 0xe4, 0x2e, 0x2a, - 0x47, 0x9e, 0xb4, 0x2d, 0x43, 0x5f, 0xeb, 0xe7, 0x01, 0x54, 0x95, 0x2b, 0xc8, 0x27, 0x7d, 0x35, - 0xb2, 0xff, 0xc3, 0x84, 0x56, 0x51, 0x9a, 0xc2, 0x6f, 0x0e, 0xc6, 0xdc, 0x6f, 0x0e, 0xfa, 0xa0, - 0xa5, 0xc2, 0x41, 0xb7, 0x60, 0x35, 0x9a, 0x8c, 0x07, 0x3c, 0x75, 0xe2, 0xa1, 0xc3, 0xa3, 0x2c, - 0x0d, 0xb8, 0x94, 0xba, 0xcc, 0xba, 0x92, 0xf0, 0xf5, 0xf0, 0x48, 0xc2, 0x85, 0x63, 0x99, 0xb7, - 0x1f, 0xab, 0x52, 0x3c, 0xd6, 0x82, 0xbd, 0xab, 0xaf, 0xd9, 0xfb, 0x21, 0x34, 0xd4, 0x1b, 0x5c, - 0xe0, 0x93, 0xf9, 0xca, 0xac, 0x2e, 0x81, 0xc5, 0x27, 0xac, 0xfa, 0xf2, 0x82, 0xd8, 0xb8, 0xe5, - 0xf1, 0x72, 0xf6, 0xfb, 0xc3, 0x0f, 0xc0, 0xa4, 0x9b, 0x76, 0x93, 0x9c, 0xa3, 0x57, 0xac, 0x8f, - 0x74, 0xa3, 0x26, 0x2a, 0x2e, 0x17, 0x08, 0x07, 0x9d, 0x84, 0x2e, 0x1c, 0x75, 0x56, 0x0d, 0x04, - 0xfd, 0xf4, 0xfb, 0x3e, 0xd4, 0xe5, 0xbd, 0x5e, 0x5d, 0x36, 0xca, 0xac, 0x46, 0xe3, 0x13, 0xbf, - 0x60, 0x8c, 0x4e, 0xd1, 0x18, 0xd6, 0x1f, 0xc2, 0x3a, 0xea, 0x68, 0xc0, 0x2f, 0x49, 0x53, 0x4e, - 0x10, 0x39, 0x3e, 0x1f, 0xba, 0x93, 0x30, 0x73, 0xbc, 0x21, 0x5d, 0x2f, 0x4c, 0x76, 0x7f, 0x1c, - 0x44, 0xfb, 0xc8, 0x70, 0x21, 0x4e, 0xa2, 0x43, 0x49, 0x3d, 0x18, 0x52, 0x7e, 0xa3, 0x1f, 0x27, - 0xe3, 0xe1, 0x50, 0xf0, 0x8c, 0xee, 0x1a, 0x26, 0x6b, 0x12, 0xf6, 0x35, 0x41, 0x33, 0x16, 0xb5, - 0xf7, 0x6a, 0x81, 0x45, 0x66, 0x84, 0x5b, 0x1f, 0x1a, 0xac, 0x77, 0x7c, 0x68, 0x28, 0x05, 0x53, - 0xfb, 0x2f, 0x0d, 0x58, 0x2d, 0x3e, 0xb2, 0x1c, 0xe9, 0x1a, 0x79, 0xe5, 0x26, 0x09, 0x8f, 0x1c, - 0x57, 0xbf, 0xfe, 0xd6, 0x25, 0xb0, 0x47, 0xaf, 0x92, 0x54, 0x81, 0x1c, 0x2f, 0xf6, 0x75, 0x4e, - 0x6b, 0x10, 0x72, 0x10, 0xfb, 0x58, 0xbc, 0xe4, 0x2f, 0xf6, 0xce, 0x98, 0x0b, 0x81, 0xe5, 0x5b, - 0x26, 0xf0, 0x16, 0x81, 0x2f, 0x24, 0x36, 0x97, 0x40, 0x4c, 0xfd, 0x20, 0x43, 0x09, 0x64, 0xeb, - 0x8f, 0xa1, 0xbb, 0x20, 0xb9, 0xd5, 0x84, 0xda, 0x9f, 0xbe, 0x3c, 0x7d, 0xf9, 0xf5, 0x9f, 0xbd, - 0xec, 0xad, 0x58, 0x35, 0x28, 0x3f, 0xff, 0xe6, 0x93, 0x9e, 0x61, 0x01, 0x54, 0xcf, 0x5f, 0xee, - 0x9d, 0x9d, 0xfd, 0x79, 0xaf, 0x64, 0xd5, 0xc1, 0xfc, 0xe6, 0xfc, 0xe2, 0xb0, 0x57, 0xde, 0xda, - 0xc8, 0x7f, 0xd5, 0x47, 0x61, 0xea, 0x60, 0x9e, 0x1f, 0xec, 0xe1, 0xb4, 0x3a, 0x98, 0x5f, 0x9e, - 0x3c, 0x3f, 0xea, 0x19, 0x5b, 0x8f, 0xa0, 0x59, 0x48, 0x1b, 0x56, 0x15, 0x4a, 0xbf, 0xf8, 0x49, - 0x6f, 0x85, 0xfe, 0xee, 0xf4, 0x8c, 0xad, 0x27, 0x50, 0xd7, 0x8e, 0x83, 0x5b, 0x1c, 0xf2, 0x90, - 0x67, 0x5c, 0xee, 0x7b, 0x36, 0xc9, 0x7a, 0xc6, 0xce, 0xdf, 0x94, 0xa0, 0x2a, 0xb7, 0xb0, 0x3e, - 0x07, 0xf5, 0x4f, 0x0b, 0xd6, 0xfd, 0x85, 0x1f, 0x7e, 0x64, 0x05, 0x59, 0x7f, 0xb0, 0x08, 0xab, - 0x8c, 0xbd, 0xf2, 0xb1, 0x61, 0x9d, 0xc1, 0x1a, 0xd5, 0xfe, 0x62, 0x05, 0xfe, 0x3a, 0xb1, 0xde, - 0xcf, 0xed, 0xb7, 0xd8, 0x2e, 0xac, 0xaf, 0xdf, 0x46, 0x2a, 0xac, 0xf8, 0x33, 0xa8, 0x25, 0xb2, - 0x25, 0xb2, 0xf2, 0x8d, 0xe7, 0xdb, 0xab, 0xf5, 0xf7, 0x5e, 0xc3, 0xf5, 0x7c, 0x9c, 0xed, 0xc9, - 0xee, 0xce, 0x2a, 0xbc, 0xc8, 0x17, 0xbb, 0xc3, 0xd9, 0xec, 0x85, 0x36, 0xd0, 0x5e, 0xd9, 0xf9, - 0x27, 0x03, 0xba, 0x0b, 0x35, 0xca, 0xfa, 0x06, 0x6a, 0xaa, 0x6c, 0x5b, 0x4f, 0xf3, 0x1e, 0xe6, - 0xae, 0xf6, 0x62, 0xfd, 0xd9, 0x9b, 0xd8, 0x72, 0x69, 0xff, 0x04, 0x4c, 0x6c, 0x08, 0x2d, 0x7b, - 0xc9, 0x8c, 0x42, 0x1d, 0x5f, 0xff, 0xf0, 0x4e, 0x1e, 0xbd, 0xe4, 0xfe, 0xb3, 0xff, 0xfc, 0x87, - 0xba, 0xf1, 0xab, 0xef, 0x1f, 0x1b, 0xbf, 0xf9, 0xfe, 0xb1, 0xf1, 0x5f, 0xdf, 0x3f, 0x36, 0xfe, - 0xee, 0xbf, 0x1f, 0xaf, 0x40, 0x2f, 0x4e, 0x2f, 0xb7, 0xb3, 0x60, 0x34, 0xdd, 0x1e, 0x4d, 0xe9, - 0x3f, 0x47, 0x06, 0x55, 0xfa, 0xb3, 0xfb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x93, 0x10, - 0x38, 0xbd, 0x22, 0x00, 0x00, + // 3358 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0x5b, 0x6f, 0xe4, 0x46, + 0x76, 0x16, 0xbb, 0xd9, 0xb7, 0xd3, 0x57, 0x51, 0x33, 0xe3, 0xb6, 0x26, 0x33, 0x23, 0xd3, 0x3b, + 0x13, 0x45, 0xde, 0xd5, 0x7a, 0x25, 0xaf, 0xe1, 0xc4, 0x1b, 0x18, 0xba, 0xd9, 0xd2, 0x6a, 0x66, + 0xac, 0x94, 0x94, 0x0d, 0xe2, 0x17, 0x82, 0x4d, 0x56, 0x4b, 0x4c, 0xb3, 0x49, 0x2e, 0x8b, 0xdd, + 0x23, 0xf9, 0x3f, 0x18, 0xb9, 0x21, 0x40, 0xfe, 0x40, 0x80, 0xbc, 0xe4, 0x3f, 0xe4, 0x21, 0x01, + 0x76, 0x91, 0x00, 0x59, 0x20, 0x2f, 0x79, 0x0c, 0x9c, 0x3f, 0x12, 0x9c, 0x53, 0x55, 0x6c, 0x76, + 0x8f, 0x5a, 0x33, 0xb3, 0x09, 0xf6, 0x49, 0xac, 0xef, 0x9c, 0xaa, 0x3a, 0x75, 0xee, 0x55, 0x2d, + 0x80, 0x41, 0x9a, 0x0c, 0xb6, 0x93, 0x34, 0xce, 0x62, 0xab, 0x3a, 0x70, 0xbd, 0xd1, 0x24, 0x59, + 0x6f, 0x8f, 0xa6, 0x69, 0xe2, 0x69, 0x78, 0xbd, 0xcd, 0xd3, 0x34, 0xce, 0xb9, 0xd6, 0x5b, 0x63, + 0x9e, 0xb9, 0xf9, 0xc8, 0xe2, 0x91, 0x97, 0xde, 0x24, 0x59, 0x10, 0x47, 0x39, 0x76, 0xef, 0x32, + 0xbe, 0x8c, 0xe9, 0xf3, 0xc7, 0xf8, 0xa5, 0xd0, 0x6e, 0x3a, 0x11, 0x19, 0x7d, 0x4a, 0xc0, 0xfe, + 0x97, 0x1a, 0xc0, 0x3e, 0xed, 0xf8, 0x82, 0x67, 0xae, 0xf5, 0x08, 0xc0, 0x0b, 0x27, 0x22, 0xe3, + 0xa9, 0x13, 0xf8, 0x7d, 0x63, 0xc3, 0xd8, 0x34, 0x59, 0x43, 0x21, 0x27, 0xbe, 0xf5, 0xfb, 0xd0, + 0xd5, 0xe4, 0x29, 0x4f, 0x45, 0x10, 0x47, 0xfd, 0xd2, 0x86, 0xb1, 0xd9, 0x60, 0x1d, 0x05, 0xff, + 0x42, 0xa2, 0xb8, 0xce, 0x60, 0xc6, 0xd3, 0x24, 0x9e, 0xc6, 0x20, 0x27, 0xf7, 0xa1, 0xa6, 0x69, + 0xad, 0x0d, 0x63, 0xb3, 0xc2, 0xf4, 0xd0, 0xb2, 0xa1, 0x32, 0x0c, 0x42, 0x2e, 0xfa, 0xe6, 0x46, + 0x79, 0xb3, 0xb9, 0xd3, 0xda, 0x96, 0xea, 0xd8, 0xfe, 0x32, 0x08, 0x39, 0x93, 0x24, 0xeb, 0xc7, + 0x00, 0xf8, 0xe1, 0x04, 0x91, 0xcf, 0xaf, 0xfb, 0xed, 0x0d, 0x63, 0xb3, 0xb9, 0xd3, 0xd3, 0x8c, + 0x78, 0x0c, 0x62, 0x6e, 0x20, 0xcf, 0x09, 0xb2, 0x58, 0x1f, 0x42, 0x5b, 0x64, 0x6e, 0x9a, 0xe5, + 0x02, 0x55, 0xe8, 0x60, 0x2d, 0x02, 0xb5, 0x4c, 0x4f, 0xa0, 0xc9, 0x23, 0x3f, 0x67, 0xa9, 0x12, + 0x0b, 0xf0, 0xc8, 0xd7, 0x0c, 0x9b, 0x50, 0x13, 0xde, 0x15, 0x1f, 0xbb, 0xa2, 0x5f, 0x23, 0xe1, + 0x3a, 0x7a, 0xcf, 0x73, 0x82, 0x99, 0x26, 0x5b, 0xbb, 0xd0, 0x92, 0x9f, 0x4a, 0xc4, 0xce, 0x12, + 0x11, 0x9b, 0x92, 0x4b, 0x0a, 0xb9, 0x0e, 0x8d, 0x40, 0x38, 0xa9, 0xfb, 0xca, 0x19, 0x4d, 0xfb, + 0xf5, 0x0d, 0x63, 0xb3, 0xce, 0x6a, 0x81, 0x60, 0xee, 0xab, 0xd3, 0x29, 0x9e, 0x18, 0x09, 0xa9, + 0x1b, 0x5d, 0x72, 0xd1, 0x6f, 0xd0, 0xee, 0xf9, 0x72, 0xcc, 0x7d, 0xc5, 0x90, 0xc0, 0x1a, 0xa9, + 0xfa, 0x12, 0xd6, 0x67, 0xd0, 0xcd, 0x27, 0x28, 0x21, 0xba, 0x4b, 0x84, 0x68, 0xeb, 0x59, 0x52, + 0x0c, 0x0b, 0x4c, 0xdf, 0x0f, 0x45, 0x1f, 0x36, 0x8c, 0xcd, 0x16, 0xa3, 0x6f, 0xeb, 0x27, 0xd0, + 0xf4, 0xfd, 0x50, 0xae, 0xc3, 0x45, 0xbf, 0xb7, 0x64, 0x25, 0xf0, 0xfd, 0xf0, 0x44, 0xf2, 0xa0, + 0xca, 0x25, 0xd9, 0x49, 0xb9, 0x98, 0x84, 0x59, 0x7f, 0x95, 0x7c, 0xa0, 0x25, 0x41, 0x46, 0x98, + 0xf5, 0x09, 0x34, 0xdd, 0x24, 0xc8, 0x55, 0x6e, 0x6d, 0x18, 0x9b, 0x9d, 0x9d, 0xb5, 0x6d, 0xed, + 0xf9, 0x7b, 0x67, 0x27, 0x4a, 0xf7, 0x0c, 0xdc, 0x24, 0xd0, 0x76, 0xd8, 0x85, 0x7a, 0x12, 0x87, + 0x81, 0x17, 0x70, 0xd1, 0x5f, 0x23, 0x55, 0xbc, 0xa7, 0x45, 0x39, 0x0b, 0x5d, 0x8f, 0x8f, 0x79, + 0x94, 0x9d, 0x21, 0xc3, 0x0d, 0xcb, 0x19, 0xad, 0x4f, 0xe0, 0x41, 0xc4, 0x5f, 0x39, 0x5e, 0x1c, + 0x86, 0x2e, 0xc6, 0x89, 0x70, 0x78, 0xe4, 0x0e, 0x42, 0xee, 0xf7, 0xef, 0x91, 0x60, 0xf7, 0x22, + 0xfe, 0xea, 0x20, 0x27, 0x1e, 0x49, 0x9a, 0xb2, 0x49, 0x76, 0x1d, 0xa1, 0x4d, 0xee, 0x6b, 0x9b, + 0x5c, 0x5c, 0x47, 0xa7, 0x53, 0x6b, 0x0b, 0x6a, 0xfe, 0xc0, 0x19, 0xbb, 0x89, 0xe8, 0x3f, 0x20, + 0x29, 0x56, 0x73, 0x29, 0x82, 0x2c, 0x3d, 0xdc, 0x7f, 0xe1, 0x26, 0xac, 0xea, 0x0f, 0x5e, 0xb8, + 0x89, 0xb0, 0x9e, 0x81, 0x39, 0x8e, 0x7d, 0xde, 0x7f, 0x8f, 0x4e, 0x68, 0x69, 0x46, 0x15, 0x78, + 0xb1, 0xcf, 0x19, 0xd1, 0xad, 0x8f, 0xa0, 0xaa, 0x6c, 0xdc, 0xa7, 0x25, 0xd7, 0xe6, 0x39, 0xa5, + 0x99, 0x15, 0xcb, 0xcf, 0xcd, 0x7a, 0xb9, 0x67, 0x32, 0x33, 0x71, 0xb3, 0x2b, 0xfb, 0x12, 0x9a, + 0x05, 0x16, 0xeb, 0x21, 0x34, 0xa4, 0xc3, 0x8f, 0xf8, 0x0d, 0x45, 0x71, 0x8b, 0xd5, 0x09, 0x38, + 0xe5, 0x37, 0xd6, 0x7b, 0x50, 0x43, 0x47, 0x47, 0x52, 0x89, 0x48, 0x55, 0x1e, 0xf9, 0x48, 0xc8, + 0x63, 0xaf, 0xbc, 0x34, 0xf6, 0xec, 0x5f, 0x97, 0xc0, 0xc4, 0x31, 0xfa, 0x49, 0xe4, 0x8e, 0x39, + 0xad, 0xde, 0x60, 0xf4, 0x6d, 0x3d, 0x80, 0xaa, 0xb8, 0x72, 0x77, 0x7e, 0xfa, 0xa9, 0x5e, 0x58, + 0x8e, 0xe6, 0xc5, 0x29, 0x2f, 0x17, 0xc7, 0x9c, 0x13, 0xe7, 0xff, 0x27, 0x6a, 0xd7, 0xa1, 0xee, + 0xa5, 0xde, 0xa7, 0x9f, 0x5c, 0xc7, 0x69, 0xbf, 0x46, 0xd4, 0x7c, 0x8c, 0x72, 0x65, 0x71, 0xe6, + 0x86, 0xce, 0x68, 0x2a, 0x28, 0xe4, 0x4c, 0x56, 0x27, 0xe0, 0x74, 0x2a, 0x70, 0x65, 0x49, 0x1c, + 0xdc, 0x64, 0x14, 0x74, 0xb4, 0x32, 0x41, 0xfb, 0x88, 0x58, 0x1d, 0x28, 0x79, 0x43, 0x8a, 0x93, + 0x06, 0x2b, 0x79, 0x43, 0xd4, 0x88, 0x08, 0xbe, 0xe5, 0x94, 0xed, 0x4c, 0x46, 0xdf, 0xb8, 0x83, + 0x17, 0x24, 0x57, 0x98, 0x4e, 0xa7, 0x94, 0xea, 0x5a, 0xac, 0x2e, 0x81, 0x93, 0xa9, 0xfd, 0x5d, + 0x09, 0xea, 0x3a, 0x78, 0xac, 0x8f, 0x00, 0x30, 0xa7, 0x3b, 0xd2, 0x02, 0xc6, 0x2d, 0x16, 0x68, + 0x8c, 0x15, 0xaf, 0x40, 0x66, 0xdf, 0xcd, 0x99, 0x4b, 0xb7, 0x31, 0x23, 0x5d, 0x32, 0x17, 0xf2, + 0x56, 0xf9, 0xee, 0xbc, 0x35, 0x9f, 0x66, 0xcc, 0xb7, 0x49, 0x33, 0x79, 0x94, 0xcb, 0x39, 0xd5, + 0xe5, 0x6e, 0xab, 0x43, 0x5f, 0xce, 0xd4, 0x69, 0xa6, 0xb2, 0x51, 0xd6, 0x69, 0xc6, 0x7e, 0x0a, + 0xdd, 0x85, 0x00, 0x46, 0xb6, 0x20, 0x1a, 0xc6, 0xca, 0x87, 0xe9, 0xdb, 0xfe, 0xb5, 0x01, 0x55, + 0x29, 0x39, 0x9a, 0xc0, 0x1f, 0x28, 0x62, 0xc9, 0x1f, 0x58, 0xf7, 0xa0, 0x92, 0x61, 0xe4, 0x2a, + 0xff, 0x93, 0x83, 0x39, 0x17, 0x28, 0xdf, 0xe5, 0x02, 0xe6, 0xdd, 0x2e, 0x50, 0x79, 0xcd, 0x05, + 0xfe, 0x00, 0x7a, 0x59, 0x30, 0x0c, 0x5d, 0x71, 0xe5, 0xa4, 0x3c, 0x09, 0x03, 0xcf, 0x15, 0xe4, + 0x82, 0x6d, 0xd6, 0x55, 0x38, 0x53, 0x30, 0x8a, 0x26, 0x32, 0x37, 0x13, 0xe4, 0x84, 0x2d, 0x26, + 0x07, 0xf6, 0x0b, 0xa8, 0x9c, 0x1c, 0xbe, 0x70, 0x13, 0xdc, 0x6a, 0x92, 0x88, 0x2c, 0xe5, 0xee, + 0x58, 0x57, 0xde, 0x32, 0x03, 0x0d, 0x9d, 0xf8, 0x18, 0x0d, 0x7e, 0xfc, 0x2a, 0x9a, 0xb1, 0x94, + 0x88, 0xa5, 0x35, 0x03, 0x4f, 0x7c, 0xfb, 0x15, 0xb4, 0x30, 0xf9, 0x5c, 0xe0, 0xb1, 0x71, 0xd5, + 0xdb, 0x82, 0xf4, 0x07, 0x50, 0x0d, 0x7c, 0xcc, 0x5b, 0xb4, 0x42, 0x73, 0xa7, 0xad, 0x8d, 0x45, + 0x82, 0xb0, 0x4a, 0xe0, 0xe3, 0xcc, 0x1f, 0x01, 0x24, 0x6e, 0x9a, 0x05, 0x94, 0x0e, 0x95, 0xdf, + 0x2c, 0x70, 0x16, 0x18, 0x6c, 0x01, 0x8d, 0x3c, 0xeb, 0xfd, 0x1f, 0x76, 0xfd, 0x21, 0x54, 0xc9, + 0x64, 0x7a, 0xc7, 0x7b, 0xc5, 0x94, 0xaa, 0x4f, 0xc5, 0x14, 0x8f, 0x7d, 0x06, 0x75, 0xed, 0x94, + 0xbf, 0x65, 0xc6, 0x93, 0x21, 0x5c, 0xd6, 0x21, 0x6c, 0x1f, 0x42, 0xe7, 0x40, 0x35, 0x3b, 0x87, + 0x47, 0xd8, 0x70, 0x61, 0xa7, 0xe2, 0x4d, 0xd2, 0x94, 0x47, 0x99, 0xea, 0x86, 0xf4, 0x10, 0x29, + 0x29, 0xff, 0xe5, 0x84, 0x8b, 0x8c, 0x16, 0x35, 0x99, 0x1e, 0xda, 0xff, 0x6e, 0x40, 0x45, 0xce, + 0xee, 0x41, 0x79, 0x2c, 0x2e, 0x95, 0x22, 0xf0, 0xd3, 0xda, 0x87, 0xde, 0xac, 0xc1, 0x72, 0xa8, + 0xa9, 0xa3, 0xfd, 0x9b, 0x3b, 0x0f, 0xf4, 0x59, 0xe7, 0x25, 0x38, 0x5e, 0xc9, 0x9b, 0xab, 0x13, + 0x5f, 0xae, 0xba, 0x0d, 0xf5, 0xd1, 0x54, 0xcd, 0x35, 0x69, 0xee, 0x6a, 0x5e, 0x33, 0x4f, 0xf9, + 0x8d, 0x9e, 0x56, 0x1b, 0x4d, 0x25, 0xff, 0x2e, 0xb4, 0x52, 0x7e, 0x19, 0xc4, 0x91, 0x9a, 0x53, + 0xa1, 0x39, 0x9d, 0x6d, 0xdd, 0x52, 0xea, 0x09, 0x4d, 0xc9, 0x45, 0xc3, 0xfd, 0x3a, 0x54, 0x7d, + 0x9e, 0xb9, 0x41, 0x68, 0x87, 0x00, 0x07, 0x32, 0x65, 0x45, 0xc3, 0xd8, 0xfa, 0x02, 0x9a, 0x2a, + 0xa3, 0x65, 0x37, 0x89, 0xb4, 0x71, 0x67, 0xe7, 0xf1, 0xf6, 0x5c, 0x07, 0x7a, 0x94, 0x0f, 0x5e, + 0xf0, 0xec, 0x2a, 0xf6, 0x19, 0xc8, 0x29, 0x17, 0x37, 0x09, 0xa7, 0x16, 0x53, 0x2e, 0x30, 0xb3, + 0x87, 0x4a, 0x92, 0xa7, 0xfc, 0xc6, 0xfe, 0xae, 0x0a, 0x6d, 0x95, 0x36, 0xa4, 0x3a, 0xdf, 0xd4, + 0x93, 0xce, 0x59, 0xbe, 0xb4, 0xdc, 0xf2, 0xe5, 0xbb, 0x8b, 0x8b, 0xf9, 0xe6, 0xe2, 0x52, 0x79, + 0xad, 0xb8, 0x3c, 0xc2, 0x84, 0x99, 0x71, 0x27, 0x0c, 0xc6, 0x41, 0xa6, 0xca, 0x4b, 0x03, 0x91, + 0xe7, 0x08, 0x58, 0x1b, 0xd0, 0xf4, 0xe2, 0x48, 0x3a, 0x8c, 0x77, 0x43, 0x15, 0xa6, 0xcd, 0x8a, + 0x90, 0xf5, 0x05, 0x74, 0x45, 0x16, 0xa7, 0xee, 0x25, 0x77, 0xd0, 0xfa, 0x3c, 0xf2, 0xa9, 0xd0, + 0x14, 0xbc, 0xe1, 0x5c, 0x92, 0xf7, 0x25, 0x95, 0x75, 0xc4, 0xdc, 0x78, 0xbe, 0x6b, 0x84, 0xf9, + 0xae, 0x51, 0x7a, 0x77, 0x33, 0x2f, 0x50, 0xe8, 0x7b, 0xf1, 0x38, 0x49, 0xb9, 0x40, 0xe1, 0xa5, + 0xfd, 0x5a, 0x64, 0xbf, 0xbc, 0x81, 0x3a, 0x98, 0xd1, 0xd1, 0x58, 0xac, 0xeb, 0xcd, 0x03, 0xd6, + 0x47, 0xb0, 0x5a, 0x5c, 0x23, 0xe4, 0x53, 0x1e, 0x52, 0x0b, 0x5e, 0x61, 0xc5, 0xc5, 0x9f, 0x23, + 0x6e, 0xed, 0xe6, 0xbe, 0x42, 0x49, 0x5c, 0xb6, 0xc1, 0x79, 0xf7, 0x33, 0x73, 0x2a, 0xed, 0x1f, + 0xe4, 0x60, 0x9f, 0x43, 0xd7, 0x17, 0x99, 0x53, 0x6c, 0x0c, 0xbb, 0xcb, 0x1b, 0xc3, 0xb6, 0x2f, + 0xb2, 0xbd, 0x59, 0x6f, 0xf8, 0x31, 0x80, 0x98, 0x0c, 0x74, 0x35, 0xea, 0xa9, 0xbe, 0xac, 0x10, + 0x1c, 0xaa, 0x84, 0x89, 0xc9, 0x40, 0x15, 0xa2, 0x0f, 0x30, 0x38, 0x28, 0x47, 0x3b, 0x29, 0x77, + 0x7d, 0xea, 0x53, 0xeb, 0x18, 0x0a, 0x84, 0x31, 0xee, 0xfa, 0x79, 0xf7, 0x66, 0xbd, 0xa1, 0x7b, + 0x7b, 0x08, 0x8d, 0x49, 0x14, 0xfc, 0x72, 0xc2, 0xd1, 0x4f, 0xd7, 0x48, 0xed, 0x75, 0x09, 0x9c, + 0xf8, 0xd8, 0x2e, 0x7a, 0x71, 0x94, 0xf1, 0xeb, 0x8c, 0x3a, 0x4e, 0x2c, 0xac, 0x5a, 0xac, 0x03, + 0x89, 0x33, 0xcd, 0xf0, 0x73, 0xb3, 0x5e, 0xed, 0xd5, 0x54, 0x67, 0xf7, 0x77, 0x25, 0xb8, 0x77, + 0x4e, 0xf9, 0x5d, 0xee, 0x77, 0xe1, 0x8a, 0x11, 0xe9, 0xe9, 0x63, 0xa8, 0x29, 0x5f, 0xa0, 0x98, + 0x58, 0xee, 0x32, 0x9a, 0xcd, 0x7a, 0x1f, 0x64, 0x60, 0x38, 0x99, 0xd0, 0x29, 0x8b, 0xc6, 0x17, + 0xc2, 0xba, 0x0f, 0x18, 0x18, 0x48, 0x90, 0x05, 0xb2, 0xc2, 0x23, 0xff, 0x42, 0xe4, 0x99, 0xdc, + 0x2c, 0x64, 0xf2, 0x0f, 0xa0, 0x45, 0xf9, 0x17, 0x9b, 0x8f, 0x8c, 0xa7, 0x54, 0xc1, 0x1b, 0xac, + 0x49, 0xd8, 0x97, 0x04, 0xdd, 0xea, 0x68, 0xd5, 0x77, 0x73, 0x34, 0xd6, 0x09, 0x5d, 0x91, 0x39, + 0x93, 0xc4, 0xc7, 0xf8, 0xca, 0x84, 0xee, 0x7a, 0x59, 0x15, 0x0b, 0xe7, 0x44, 0xd8, 0xbf, 0x29, + 0x41, 0x67, 0xfe, 0xa0, 0x96, 0x0d, 0x66, 0x14, 0xc7, 0x89, 0x52, 0x47, 0xde, 0x0f, 0xbd, 0x8c, + 0xe3, 0xe4, 0x78, 0x85, 0x11, 0xcd, 0x7a, 0x0a, 0x95, 0x30, 0xf6, 0xdc, 0x70, 0xb1, 0x0c, 0x3d, + 0x47, 0xf0, 0x78, 0x85, 0x49, 0xaa, 0xf5, 0x7b, 0x50, 0x12, 0xbb, 0x2a, 0x31, 0x43, 0xae, 0xd7, + 0xdd, 0xe3, 0x15, 0x56, 0x12, 0xbb, 0xd6, 0x13, 0x28, 0x5f, 0x7a, 0x42, 0xe5, 0xde, 0xa6, 0x26, + 0x7f, 0x75, 0x70, 0x7e, 0xbc, 0xc2, 0x90, 0x62, 0x7d, 0x0e, 0x6d, 0x2f, 0x8c, 0x27, 0xbe, 0xe3, + 0xdf, 0x44, 0xee, 0x38, 0xf0, 0x54, 0xca, 0xbd, 0x37, 0x4b, 0xf1, 0xf1, 0xc4, 0x3f, 0x94, 0xb4, + 0xe3, 0x15, 0xd6, 0xf2, 0x0a, 0x63, 0x3c, 0xc6, 0x95, 0x3f, 0x94, 0x8d, 0x44, 0xe1, 0x18, 0xc7, + 0x87, 0x5f, 0xe2, 0xfa, 0x44, 0xb3, 0x8e, 0xc1, 0x72, 0xbf, 0x9d, 0xa4, 0xdc, 0x19, 0x84, 0xf1, + 0xc0, 0xd1, 0x7e, 0x50, 0xa3, 0x19, 0x7d, 0x3d, 0x63, 0x0f, 0x39, 0xf6, 0xc3, 0x78, 0xa0, 0xf4, + 0x74, 0xbc, 0xc2, 0x7a, 0xee, 0x02, 0xb6, 0xdf, 0x80, 0x9a, 0xca, 0x3c, 0x76, 0x15, 0x4c, 0xd4, + 0x95, 0xfd, 0x10, 0x2a, 0xa4, 0x0e, 0x34, 0x3f, 0xfa, 0xa0, 0x2e, 0xe4, 0xe4, 0x8f, 0x7f, 0x63, + 0x42, 0xe9, 0x7c, 0x17, 0x7b, 0x2a, 0x1e, 0xf9, 0x49, 0x1c, 0xa8, 0xc2, 0xd8, 0x60, 0xf9, 0x18, + 0xaf, 0x01, 0xb2, 0x92, 0xa8, 0xc7, 0x01, 0x35, 0x42, 0x7c, 0x30, 0xf1, 0x46, 0x3c, 0x53, 0x15, + 0x57, 0x8d, 0x10, 0x4f, 0x52, 0x3e, 0x0c, 0xae, 0x95, 0x9f, 0xa9, 0x91, 0xcc, 0xd1, 0x32, 0x39, + 0x7a, 0xa1, 0x2b, 0x64, 0x03, 0xd6, 0xc0, 0x1c, 0x4d, 0xe0, 0x01, 0x62, 0x58, 0x62, 0x85, 0x90, + 0xee, 0xd5, 0x60, 0xf8, 0x89, 0x88, 0xeb, 0x85, 0xa4, 0x8c, 0x06, 0xc3, 0x4f, 0x4c, 0xd3, 0xae, + 0xe7, 0x71, 0x21, 0xa8, 0x10, 0xd4, 0xe5, 0x6b, 0x84, 0x44, 0xb0, 0x16, 0x6c, 0xc1, 0xaa, 0xe0, + 0x5e, 0xca, 0x33, 0xa7, 0xc0, 0xd5, 0x20, 0xae, 0xae, 0x24, 0xec, 0xe5, 0xbc, 0x9b, 0xd0, 0x1b, + 0xc6, 0xa9, 0xc7, 0x1d, 0x54, 0x86, 0x23, 0xb2, 0x9b, 0x90, 0xab, 0xb4, 0xdb, 0x21, 0xfc, 0xcc, + 0xcd, 0xae, 0xce, 0x11, 0xb5, 0x3e, 0x84, 0x8e, 0x10, 0xdc, 0x19, 0x8d, 0x69, 0x3d, 0x4c, 0x09, + 0x32, 0x13, 0x37, 0x85, 0xe0, 0xa7, 0x63, 0x5c, 0xec, 0xc4, 0xc7, 0x90, 0x4c, 0xe3, 0x90, 0x3b, + 0x6e, 0x2a, 0x5f, 0x42, 0x1a, 0xac, 0x86, 0xe3, 0xbd, 0x54, 0x16, 0x9f, 0xeb, 0x8c, 0xa7, 0x91, + 0x1b, 0xe2, 0xe4, 0x36, 0x51, 0x41, 0x43, 0x27, 0xbe, 0xb5, 0x0d, 0x6b, 0xf1, 0xe0, 0x2f, 0xb8, + 0x97, 0x39, 0x61, 0xec, 0x8d, 0xf2, 0xfb, 0x6c, 0x87, 0xa4, 0x59, 0x95, 0xa4, 0xe7, 0xb1, 0x37, + 0xd2, 0x97, 0x59, 0x54, 0xa7, 0x8e, 0xc8, 0x78, 0xc4, 0x65, 0x5a, 0x45, 0x75, 0xaa, 0xa8, 0x43, + 0x0c, 0xed, 0x9a, 0xa4, 0xf1, 0x34, 0xf0, 0x79, 0x4a, 0xf7, 0xfc, 0x06, 0xcb, 0xc7, 0xd8, 0xf1, + 0x24, 0x69, 0x8c, 0x77, 0x0e, 0x75, 0x9b, 0xd7, 0x43, 0xfb, 0x57, 0x06, 0x94, 0xbf, 0x3a, 0x38, + 0x7f, 0x93, 0x57, 0x28, 0xeb, 0x97, 0x96, 0x58, 0xbf, 0x7c, 0xb7, 0xf5, 0xcd, 0x5b, 0xac, 0xff, + 0x14, 0x3a, 0x49, 0xca, 0x7d, 0x3e, 0x0c, 0x22, 0xee, 0x3b, 0x68, 0x76, 0xe9, 0x23, 0xed, 0x19, + 0xba, 0xe7, 0x85, 0xd8, 0xa7, 0x7b, 0x08, 0x44, 0x59, 0xe0, 0x86, 0x82, 0x82, 0x46, 0x79, 0x4c, + 0xb7, 0x80, 0x63, 0x58, 0xd8, 0x63, 0xe8, 0x51, 0xdc, 0x1c, 0x4c, 0x44, 0x16, 0x8f, 0xa9, 0x27, + 0xc1, 0x5d, 0x66, 0xfd, 0x4d, 0xde, 0x61, 0x36, 0x58, 0x7b, 0x86, 0x22, 0xdb, 0x0e, 0xdc, 0x9f, + 0x67, 0x73, 0x0a, 0xb7, 0xe1, 0x06, 0x5b, 0x9b, 0xe3, 0x3e, 0x27, 0x12, 0xa6, 0xb1, 0xde, 0x62, + 0x9c, 0xfe, 0xee, 0xd5, 0xf8, 0x01, 0xb4, 0x5c, 0xcf, 0x8b, 0x27, 0x51, 0xe6, 0x50, 0xbe, 0x97, + 0x4a, 0x6c, 0x2a, 0xec, 0x25, 0xa6, 0xfd, 0x47, 0x00, 0xe2, 0xca, 0x4d, 0xb9, 0x6c, 0xa6, 0xa4, + 0xf2, 0x1a, 0x12, 0xc1, 0xb3, 0xcf, 0x42, 0x4c, 0x04, 0x97, 0xf3, 0x21, 0x76, 0x1e, 0x5c, 0xa2, + 0x01, 0x0a, 0xaa, 0x11, 0x5e, 0x9c, 0x70, 0x1d, 0x61, 0x33, 0xfc, 0x1c, 0x61, 0xeb, 0x8b, 0xd7, + 0x94, 0x0d, 0xb7, 0xa4, 0xb5, 0x82, 0x79, 0x16, 0xcc, 0x60, 0xff, 0xb5, 0x01, 0xd5, 0x7d, 0xa9, + 0x94, 0xb7, 0xcb, 0x52, 0xe5, 0x25, 0x59, 0xca, 0x5c, 0xa2, 0xe0, 0xca, 0xdd, 0x0a, 0xae, 0xbe, + 0xae, 0x60, 0xbc, 0x12, 0xb4, 0x8a, 0x49, 0xdf, 0x7a, 0x96, 0xef, 0x62, 0xa8, 0x6e, 0x5c, 0x77, + 0x15, 0x84, 0xe6, 0xbb, 0x7e, 0x08, 0x6d, 0x1d, 0x7f, 0xd2, 0x34, 0xd2, 0xea, 0x2d, 0x0d, 0x92, + 0x6d, 0x7e, 0x0a, 0x15, 0x37, 0xcb, 0x52, 0x7d, 0x6b, 0x7a, 0x72, 0x5b, 0x99, 0xd9, 0xde, 0x43, + 0x8e, 0xa3, 0x28, 0x4b, 0x6f, 0x98, 0xe4, 0x5e, 0xff, 0x0c, 0x60, 0x06, 0x62, 0xda, 0x9c, 0x79, + 0x36, 0x7e, 0xe2, 0x95, 0x75, 0xea, 0x86, 0x13, 0xbd, 0xa7, 0x1c, 0xfc, 0x51, 0xe9, 0x33, 0xc3, + 0x7e, 0x0c, 0x26, 0x96, 0x23, 0xa9, 0xc3, 0x71, 0x9c, 0xe9, 0xbb, 0x9e, 0x1a, 0xd9, 0xff, 0x6a, + 0x40, 0x47, 0x37, 0xf1, 0x22, 0x89, 0x23, 0x81, 0xe9, 0xb0, 0x22, 0x6f, 0x1f, 0xc6, 0x7c, 0xe1, + 0xa5, 0xdb, 0x06, 0x93, 0xb4, 0xdf, 0xb2, 0x97, 0x7f, 0x9b, 0x37, 0xe3, 0x85, 0xa7, 0xc6, 0xca, + 0x5b, 0x3d, 0x35, 0xda, 0x3f, 0xc2, 0xfb, 0x20, 0x77, 0xa3, 0xd9, 0x65, 0x64, 0xae, 0xc7, 0x33, + 0xe6, 0x7b, 0x3c, 0xfb, 0x0c, 0xba, 0x39, 0xfb, 0xbb, 0x1c, 0xbb, 0x0f, 0x35, 0x31, 0xa1, 0x58, + 0xa1, 0x43, 0xd7, 0x99, 0x1e, 0xda, 0x9f, 0x41, 0xe7, 0x2c, 0xe5, 0x89, 0x9b, 0x72, 0x2d, 0xc0, + 0x33, 0xe8, 0x0a, 0x77, 0xca, 0x9d, 0x2c, 0x76, 0x8a, 0xed, 0x5f, 0x9d, 0xb5, 0x11, 0xbe, 0x88, + 0x55, 0x0e, 0xb1, 0xff, 0xc9, 0x80, 0x6e, 0x3e, 0xf5, 0x1d, 0x6d, 0x30, 0x3b, 0x61, 0x69, 0xa1, + 0x8b, 0xfd, 0x21, 0x58, 0x5e, 0x1c, 0x86, 0x58, 0x74, 0xe8, 0x09, 0x9e, 0xf2, 0x83, 0xea, 0x19, + 0x7b, 0x8a, 0x82, 0x6a, 0x3f, 0x40, 0x1c, 0x0b, 0xeb, 0x1c, 0x37, 0x3d, 0x8f, 0xc9, 0x8b, 0x56, + 0xb7, 0xc0, 0x7c, 0x1e, 0x7c, 0xcb, 0xed, 0x35, 0x58, 0x3d, 0xb8, 0xe2, 0xde, 0x68, 0xcf, 0x1f, + 0x07, 0x91, 0x3a, 0xac, 0xfd, 0x9d, 0x01, 0x56, 0x11, 0x7d, 0x97, 0x73, 0x3c, 0x9b, 0xeb, 0x42, + 0x30, 0xc2, 0xd4, 0x6f, 0x26, 0x8c, 0xd0, 0x3c, 0xde, 0xb7, 0x60, 0xf5, 0xca, 0x15, 0x4e, 0xc2, + 0x23, 0x3f, 0x88, 0x2e, 0x1d, 0x17, 0x77, 0xa2, 0x13, 0xd5, 0x59, 0xf7, 0xca, 0x15, 0x67, 0x12, + 0x27, 0x01, 0xec, 0x7f, 0x33, 0xe0, 0xd1, 0x91, 0xaa, 0xc0, 0x4a, 0xd1, 0x8c, 0xa3, 0x19, 0x72, + 0xf3, 0xdc, 0x72, 0xa1, 0x33, 0xde, 0xe9, 0x42, 0xf7, 0x04, 0x9a, 0xaa, 0xaa, 0x17, 0xc2, 0x1d, + 0x24, 0xf4, 0x52, 0xf5, 0xdf, 0xa9, 0xdc, 0x53, 0x72, 0xc8, 0xec, 0xd5, 0x54, 0x18, 0xb1, 0x3c, + 0x85, 0x0e, 0x5d, 0x25, 0xa2, 0xcc, 0x09, 0x79, 0x74, 0x99, 0x5d, 0x29, 0xa5, 0xb7, 0x15, 0xfa, + 0x9c, 0x40, 0x7b, 0x03, 0x1e, 0x2f, 0x3b, 0x8c, 0x54, 0xb4, 0xfd, 0x0f, 0x06, 0xac, 0x2f, 0xb0, + 0x9c, 0xbb, 0xd3, 0xdf, 0xe1, 0x61, 0x5f, 0x3f, 0x49, 0xf9, 0xb6, 0x93, 0x3c, 0x82, 0x87, 0xb7, + 0x8a, 0xa9, 0x8e, 0xf1, 0x57, 0xea, 0xa1, 0xd5, 0x77, 0x33, 0xd7, 0xda, 0xd2, 0xd9, 0xc2, 0x98, + 0x7f, 0x62, 0x3a, 0x54, 0x0f, 0xa6, 0x74, 0x21, 0x55, 0x59, 0xe3, 0x53, 0x68, 0x92, 0xe3, 0x5e, + 0xa6, 0xf1, 0x24, 0xd1, 0xaf, 0x9b, 0xf7, 0x17, 0x67, 0x7c, 0x85, 0x54, 0x46, 0xbf, 0x49, 0xd1, + 0xa7, 0x90, 0x37, 0x2d, 0xb4, 0x50, 0xfe, 0x4e, 0x47, 0x97, 0x30, 0x8c, 0xa0, 0x27, 0x80, 0xa6, + 0x8a, 0xc3, 0x29, 0x2f, 0x5c, 0xb7, 0x40, 0x43, 0xf2, 0x2a, 0x36, 0x76, 0xaf, 0x91, 0x26, 0x8d, + 0x56, 0x19, 0xbb, 0xd7, 0x0a, 0x0e, 0x22, 0x84, 0x2b, 0x0a, 0x0e, 0xa2, 0x0b, 0x94, 0x90, 0x7e, + 0x0a, 0xcc, 0x13, 0x5b, 0x4d, 0x25, 0xb6, 0xc2, 0x6f, 0x33, 0x3a, 0xb1, 0x35, 0xc7, 0xb3, 0x81, + 0xfd, 0x1f, 0x06, 0xb4, 0xe7, 0xe4, 0xbf, 0xad, 0xd9, 0xb7, 0x7e, 0x06, 0xdd, 0xd9, 0x3b, 0xb3, + 0xbc, 0xc4, 0x97, 0xee, 0xd0, 0x5a, 0x3b, 0x7f, 0x74, 0xa6, 0x1b, 0xea, 0x4c, 0xe4, 0x72, 0x51, + 0xe4, 0x25, 0x07, 0x7c, 0x06, 0x5d, 0xe4, 0x2e, 0x2a, 0x47, 0x9e, 0xb4, 0x2d, 0x43, 0x5f, 0xeb, + 0xe7, 0x01, 0x54, 0x95, 0x2b, 0xc8, 0xc7, 0x7e, 0x35, 0xb2, 0xff, 0xd3, 0x84, 0x56, 0x51, 0x9a, + 0xc2, 0xaf, 0x11, 0xc6, 0xdc, 0xaf, 0x11, 0xfa, 0xa0, 0xa5, 0xc2, 0x41, 0xb7, 0x60, 0x35, 0x9a, + 0x8c, 0x07, 0x3c, 0x75, 0xe2, 0xa1, 0xc3, 0xa3, 0x2c, 0x0d, 0xb8, 0x94, 0xba, 0xcc, 0xba, 0x92, + 0xf0, 0xf5, 0xf0, 0x48, 0xc2, 0x85, 0x63, 0x99, 0xb7, 0x1f, 0xab, 0x52, 0x3c, 0xd6, 0x82, 0xbd, + 0xab, 0xaf, 0xd9, 0xfb, 0x21, 0x34, 0xd4, 0xeb, 0x5c, 0xe0, 0x93, 0xf9, 0xca, 0xac, 0x2e, 0x81, + 0xc5, 0xc7, 0xad, 0xfa, 0xf2, 0x82, 0xd8, 0xb8, 0xe5, 0x59, 0x73, 0xf6, 0xcb, 0xc4, 0x0f, 0xc0, + 0xa4, 0x3b, 0x78, 0x93, 0x9c, 0xa3, 0x57, 0xac, 0x8f, 0x74, 0xd7, 0x26, 0x2a, 0x2e, 0x17, 0x08, + 0x07, 0x9d, 0x84, 0xae, 0x22, 0x75, 0x56, 0x0d, 0x04, 0xfd, 0x28, 0xfc, 0x3e, 0xd4, 0xe5, 0x8d, + 0x5f, 0x5d, 0x43, 0xca, 0xac, 0x46, 0xe3, 0x13, 0xbf, 0x60, 0x8c, 0x4e, 0xd1, 0x18, 0xd6, 0x1f, + 0xc2, 0x3a, 0xea, 0x68, 0xc0, 0x2f, 0x49, 0x53, 0x4e, 0x10, 0x39, 0x3e, 0x1f, 0xba, 0x93, 0x30, + 0x73, 0xbc, 0x21, 0x5d, 0x3c, 0x4c, 0x76, 0x7f, 0x1c, 0x44, 0xfb, 0xc8, 0x70, 0x21, 0x4e, 0xa2, + 0x43, 0x49, 0x3d, 0x18, 0x52, 0x7e, 0xa3, 0x9f, 0x2d, 0xe3, 0xe1, 0x50, 0xf0, 0x8c, 0x6e, 0x21, + 0x26, 0x6b, 0x12, 0xf6, 0x35, 0x41, 0x33, 0x16, 0xb5, 0xf7, 0x6a, 0x81, 0x45, 0x66, 0x84, 0x5b, + 0x9f, 0x20, 0xac, 0x77, 0x7c, 0x82, 0x28, 0x05, 0x53, 0xfb, 0x2f, 0x0d, 0x58, 0x2d, 0x3e, 0xbf, + 0x1c, 0xe9, 0x1a, 0x79, 0xe5, 0x26, 0x09, 0x8f, 0x1c, 0x57, 0xbf, 0x0b, 0xd7, 0x25, 0xb0, 0x47, + 0xef, 0x95, 0x54, 0x81, 0x1c, 0x2f, 0xf6, 0x75, 0x4e, 0x6b, 0x10, 0x72, 0x10, 0xfb, 0x58, 0xbc, + 0xe4, 0x6f, 0xf9, 0xce, 0x98, 0x0b, 0x81, 0xe5, 0x5b, 0x26, 0xf0, 0x16, 0x81, 0x2f, 0x24, 0x36, + 0x97, 0x40, 0x4c, 0xfd, 0x54, 0x43, 0x09, 0x64, 0xeb, 0x8f, 0xa1, 0xbb, 0x20, 0xb9, 0xd5, 0x84, + 0xda, 0x9f, 0xbe, 0x3c, 0x7d, 0xf9, 0xf5, 0x9f, 0xbd, 0xec, 0xad, 0x58, 0x35, 0x28, 0x3f, 0xff, + 0xe6, 0x93, 0x9e, 0x61, 0x01, 0x54, 0xcf, 0x5f, 0xee, 0x9d, 0x9d, 0xfd, 0x79, 0xaf, 0x64, 0xd5, + 0xc1, 0xfc, 0xe6, 0xfc, 0xe2, 0xb0, 0x57, 0xde, 0xda, 0xc8, 0x7f, 0xef, 0x47, 0x61, 0xea, 0x60, + 0x9e, 0x1f, 0xec, 0xe1, 0xb4, 0x3a, 0x98, 0x5f, 0x9e, 0x3c, 0x3f, 0xea, 0x19, 0x5b, 0x8f, 0xa0, + 0x59, 0x48, 0x1b, 0x56, 0x15, 0x4a, 0xbf, 0xf8, 0x49, 0x6f, 0x85, 0xfe, 0xee, 0xf4, 0x8c, 0xad, + 0x27, 0x50, 0xd7, 0x8e, 0x83, 0x5b, 0x1c, 0xf2, 0x90, 0x67, 0x5c, 0xee, 0x7b, 0x36, 0xc9, 0x7a, + 0xc6, 0xce, 0xdf, 0x96, 0xa0, 0x2a, 0xb7, 0xb0, 0x3e, 0x07, 0xf5, 0xef, 0x0c, 0xd6, 0xfd, 0x85, + 0x9f, 0x84, 0x64, 0x05, 0x59, 0x7f, 0xb0, 0x08, 0xab, 0x8c, 0xbd, 0xf2, 0xb1, 0x61, 0x9d, 0xc1, + 0x1a, 0xd5, 0xfe, 0x62, 0x05, 0xfe, 0x3a, 0xb1, 0xde, 0xcf, 0xed, 0xb7, 0xd8, 0x2e, 0xac, 0xaf, + 0xdf, 0x46, 0x2a, 0xac, 0xf8, 0x33, 0xbc, 0xc0, 0x52, 0x4b, 0x64, 0xe5, 0x1b, 0xcf, 0xb7, 0x57, + 0xeb, 0xef, 0xbd, 0x86, 0xeb, 0xf9, 0x38, 0xdb, 0x93, 0xdd, 0x9d, 0x55, 0x78, 0xab, 0x2f, 0x76, + 0x87, 0xb3, 0xd9, 0x0b, 0x6d, 0xa0, 0xbd, 0xb2, 0xf3, 0xcf, 0x06, 0x74, 0x17, 0x6a, 0x94, 0xf5, + 0x0d, 0xd4, 0x54, 0xd9, 0xb6, 0x9e, 0xe6, 0x3d, 0xcc, 0x5d, 0xed, 0xc5, 0xfa, 0xb3, 0x37, 0xb1, + 0xe5, 0xd2, 0xfe, 0x09, 0x98, 0xd8, 0x10, 0x5a, 0xf6, 0x92, 0x19, 0x85, 0x3a, 0xbe, 0xfe, 0xe1, + 0x9d, 0x3c, 0x7a, 0xc9, 0xfd, 0x67, 0xff, 0xf5, 0x8f, 0x75, 0xe3, 0x57, 0xdf, 0x3f, 0x36, 0x7e, + 0xf3, 0xfd, 0x63, 0xe3, 0xbf, 0xbf, 0x7f, 0x6c, 0xfc, 0xfd, 0xff, 0x3c, 0x5e, 0x81, 0x5e, 0x9c, + 0x5e, 0x6e, 0x67, 0xc1, 0x68, 0xba, 0x3d, 0x9a, 0xd2, 0xff, 0x94, 0x0c, 0xaa, 0xf4, 0x67, 0xf7, + 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xee, 0xa6, 0xb1, 0x45, 0xd7, 0x22, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5773,6 +5773,15 @@ func (m *S3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.Profile) > 0 { + i -= len(m.Profile) + copy(dAtA[i:], m.Profile) + i = encodeVarintBrpb(dAtA, i, uint64(len(m.Profile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } if len(m.Provider) > 0 { i -= len(m.Provider) copy(dAtA[i:], m.Provider) @@ -7892,6 +7901,10 @@ func (m *S3) Size() (n int) { if l > 0 { n += 2 + l + sovBrpb(uint64(l)) } + l = len(m.Profile) + if l > 0 { + n += 2 + l + sovBrpb(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -12890,6 +12903,38 @@ func (m *S3) Unmarshal(dAtA []byte) error { } m.Provider = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Profile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowBrpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthBrpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthBrpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Profile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipBrpb(dAtA[iNdEx:]) diff --git a/pkg/raft_serverpb/raft_serverpb.pb.go b/pkg/raft_serverpb/raft_serverpb.pb.go index 1e24cc83c..d6b8f1f46 100644 --- a/pkg/raft_serverpb/raft_serverpb.pb.go +++ b/pkg/raft_serverpb/raft_serverpb.pb.go @@ -1579,10 +1579,13 @@ func (m *MergeState) GetCommit() uint64 { type MergedRecord struct { SourceRegionId uint64 `protobuf:"varint,1,opt,name=source_region_id,json=sourceRegionId,proto3" json:"source_region_id,omitempty"` SourceEpoch *metapb.RegionEpoch `protobuf:"bytes,2,opt,name=source_epoch,json=sourceEpoch,proto3" json:"source_epoch,omitempty"` - SourcePeers []*metapb.Peer `protobuf:"bytes,3,rep,name=source_peers,json=sourcePeers,proto3" json:"source_peers,omitempty"` - TargetRegionId uint64 `protobuf:"varint,4,opt,name=target_region_id,json=targetRegionId,proto3" json:"target_region_id,omitempty"` - TargetEpoch *metapb.RegionEpoch `protobuf:"bytes,5,opt,name=target_epoch,json=targetEpoch,proto3" json:"target_epoch,omitempty"` - TargetPeers []*metapb.Peer `protobuf:"bytes,6,rep,name=target_peers,json=targetPeers,proto3" json:"target_peers,omitempty"` + // Peers of source region when merge is committed. + SourcePeers []*metapb.Peer `protobuf:"bytes,3,rep,name=source_peers,json=sourcePeers,proto3" json:"source_peers,omitempty"` + // Removed peers (by confchange) of source region when merge is committed. + SourceRemovedRecords []*metapb.Peer `protobuf:"bytes,9,rep,name=source_removed_records,json=sourceRemovedRecords,proto3" json:"source_removed_records,omitempty"` + TargetRegionId uint64 `protobuf:"varint,4,opt,name=target_region_id,json=targetRegionId,proto3" json:"target_region_id,omitempty"` + TargetEpoch *metapb.RegionEpoch `protobuf:"bytes,5,opt,name=target_epoch,json=targetEpoch,proto3" json:"target_epoch,omitempty"` + TargetPeers []*metapb.Peer `protobuf:"bytes,6,rep,name=target_peers,json=targetPeers,proto3" json:"target_peers,omitempty"` // Commit merge index. Index uint64 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` // Prepare merge index. @@ -1646,6 +1649,13 @@ func (m *MergedRecord) GetSourcePeers() []*metapb.Peer { return nil } +func (m *MergedRecord) GetSourceRemovedRecords() []*metapb.Peer { + if m != nil { + return m.SourceRemovedRecords + } + return nil +} + func (m *MergedRecord) GetTargetRegionId() uint64 { if m != nil { return m.TargetRegionId @@ -1687,11 +1697,13 @@ type RegionLocalState struct { MergeState *MergeState `protobuf:"bytes,3,opt,name=merge_state,json=mergeState,proto3" json:"merge_state,omitempty"` // The apply index corresponding to the storage when it's initialized. TabletIndex uint64 `protobuf:"varint,4,opt,name=tablet_index,json=tabletIndex,proto3" json:"tablet_index,omitempty"` - // Raft doesn't guarantee peer will be removed in the end. In v1, peer finds out its destiny - // by logs or broadcast; in v2, leader is responsible to ensure removed peers are destroyed. + // Raft doesn't guarantee peer will be removed in the end. In v1, peer finds + // out its destiny by logs or broadcast; in v2, leader is responsible to + // ensure removed peers are destroyed. + // Note: only peers who has been part of this region can be in this list. RemovedRecords []*metapb.Peer `protobuf:"bytes,5,rep,name=removed_records,json=removedRecords,proto3" json:"removed_records,omitempty"` - // Merged peer can't be deleted like gc peers. Instead, leader needs to query target peer to - // decide whether source peer can be destroyed. + // Merged peer can't be deleted like gc peers. Instead, leader needs to + // query target peer to decide whether source peer can be destroyed. MergedRecords []*MergedRecord `protobuf:"bytes,6,rep,name=merged_records,json=mergedRecords,proto3" json:"merged_records,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2248,151 +2260,152 @@ func init() { func init() { proto.RegisterFile("raft_serverpb.proto", fileDescriptor_130ebc2f2c37a342) } var fileDescriptor_130ebc2f2c37a342 = []byte{ - // 2292 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcd, 0x73, 0x1b, 0x49, - 0x15, 0xb7, 0x3e, 0xac, 0x8f, 0xa7, 0x0f, 0x2b, 0xed, 0x78, 0xa3, 0xc4, 0x9b, 0xc4, 0x99, 0x6c, - 0x12, 0x6f, 0x16, 0x9c, 0x5a, 0x6f, 0x58, 0xb6, 0x96, 0xaa, 0x80, 0xed, 0x24, 0x38, 0x04, 0xa5, - 0x52, 0x6d, 0x27, 0x29, 0x4e, 0x53, 0xad, 0x99, 0x27, 0x69, 0xd0, 0x7c, 0xed, 0x74, 0x4b, 0x89, - 0x28, 0xfe, 0x0b, 0x2e, 0x7b, 0xe4, 0x48, 0x71, 0xe1, 0xca, 0x1f, 0xc0, 0x81, 0x82, 0x0b, 0x47, - 0x8e, 0x54, 0xb8, 0x70, 0xa1, 0x0a, 0x8e, 0xdc, 0xa8, 0xfe, 0x18, 0x69, 0x46, 0x56, 0x1c, 0xc8, - 0x69, 0xba, 0xdf, 0x47, 0xf7, 0xeb, 0xf7, 0x7e, 0xef, 0xf5, 0xeb, 0x81, 0xcd, 0x84, 0x0d, 0x84, - 0xcd, 0x31, 0x99, 0x62, 0x12, 0xf7, 0xf7, 0xe2, 0x24, 0x12, 0x11, 0x69, 0xe5, 0x88, 0x57, 0x5a, - 0x28, 0xe7, 0x29, 0xf7, 0x4a, 0x33, 0x40, 0xc1, 0xe6, 0xb3, 0xd6, 0x78, 0x9a, 0xc4, 0xce, 0x7c, - 0xda, 0x71, 0x3d, 0x3e, 0xb6, 0x27, 0x9c, 0x0d, 0xd1, 0x50, 0x08, 0x86, 0x4e, 0x32, 0x8b, 0x85, - 0x17, 0x85, 0x73, 0xa9, 0x8d, 0x64, 0xc2, 0x85, 0x1a, 0x6a, 0x82, 0xf5, 0x9f, 0x12, 0x34, 0x28, - 0x1b, 0x88, 0x1e, 0x72, 0xa9, 0x4a, 0xb6, 0xa1, 0x9e, 0xe0, 0xd0, 0x8b, 0x42, 0xdb, 0x73, 0xbb, - 0x85, 0x9d, 0xc2, 0x6e, 0x99, 0xd6, 0x34, 0xe1, 0x89, 0x4b, 0x3e, 0x85, 0xfa, 0x20, 0x89, 0x02, - 0x3b, 0x46, 0x4c, 0xba, 0xc5, 0x9d, 0xc2, 0x6e, 0x63, 0xbf, 0xb9, 0x67, 0x8c, 0x7a, 0x8e, 0x98, - 0xd0, 0x9a, 0x64, 0xcb, 0x11, 0xb9, 0x05, 0x55, 0x11, 0x69, 0xc1, 0xd2, 0x0a, 0xc1, 0x8a, 0x88, - 0x94, 0xd8, 0x5d, 0xa8, 0x06, 0x7a, 0xe7, 0x6e, 0x59, 0x89, 0x75, 0xf6, 0xd2, 0x33, 0x1b, 0x8b, - 0x68, 0x2a, 0x40, 0xbe, 0x84, 0xa6, 0x31, 0x0d, 0xe3, 0xc8, 0x19, 0x75, 0xd7, 0x95, 0xc2, 0x66, - 0xba, 0x2e, 0x55, 0xbc, 0x47, 0x92, 0x45, 0x1b, 0xc9, 0x62, 0x42, 0x6e, 0x40, 0xd3, 0xe3, 0xb6, - 0x88, 0x82, 0x3e, 0x17, 0x51, 0x88, 0xdd, 0xca, 0x4e, 0x61, 0xb7, 0x46, 0x1b, 0x1e, 0x3f, 0x4d, - 0x49, 0xf2, 0xd4, 0x5c, 0xb0, 0x44, 0xd8, 0x63, 0x9c, 0x75, 0xab, 0x3b, 0x85, 0xdd, 0x26, 0xad, - 0x29, 0xc2, 0x53, 0x9c, 0x91, 0x4b, 0x50, 0xc5, 0xd0, 0x55, 0xac, 0x9a, 0x62, 0x55, 0x30, 0x74, - 0x25, 0xe3, 0x73, 0x68, 0x06, 0x98, 0x0c, 0xd1, 0x16, 0x2c, 0x19, 0xa2, 0xe8, 0xd6, 0x95, 0x41, - 0xed, 0xbc, 0x41, 0xb4, 0xa1, 0x64, 0x4e, 0x95, 0x08, 0xf9, 0x0a, 0xea, 0xf8, 0x46, 0x24, 0xcc, - 0x0e, 0xf8, 0xb0, 0x0b, 0x4a, 0x7e, 0x7b, 0x2f, 0x8f, 0x84, 0x47, 0x92, 0x9f, 0x1e, 0xbe, 0xa6, - 0xa4, 0x7b, 0x7c, 0x28, 0x4d, 0xd4, 0x9a, 0x8e, 0x78, 0xd3, 0x6d, 0x68, 0x13, 0x15, 0xe1, 0x48, - 0xbc, 0x21, 0xf7, 0x01, 0x16, 0xe1, 0xef, 0x36, 0x77, 0x0a, 0xbb, 0xed, 0xfd, 0xad, 0xbd, 0x0c, - 0x22, 0x1e, 0x7a, 0x7c, 0xfc, 0x42, 0xad, 0x58, 0x77, 0xd3, 0xa1, 0xf5, 0x00, 0x88, 0x0c, 0xfd, - 0x69, 0x32, 0x09, 0x1d, 0x26, 0xd0, 0x3d, 0x11, 0x4c, 0x20, 0xb9, 0x08, 0xeb, 0x5e, 0xe8, 0xe2, - 0x1b, 0x13, 0x7d, 0x3d, 0x21, 0x04, 0xca, 0x02, 0x93, 0x40, 0x45, 0xbd, 0x4c, 0xd5, 0xd8, 0x7a, - 0x0e, 0xed, 0x93, 0x90, 0xc5, 0x7c, 0x14, 0x89, 0xa3, 0xc7, 0x8f, 0x3d, 0x1f, 0x49, 0x1b, 0x8a, - 0xce, 0x40, 0x29, 0xd6, 0x69, 0xd1, 0x19, 0x48, 0x2d, 0xee, 0xfd, 0x02, 0x53, 0x2d, 0x39, 0x26, - 0x57, 0xa0, 0xe6, 0x8c, 0xd0, 0x19, 0xf3, 0x49, 0xa0, 0xa0, 0xd1, 0xa2, 0xf3, 0xb9, 0xf5, 0xdb, - 0x22, 0x34, 0xd3, 0x25, 0x7b, 0x28, 0x18, 0xf9, 0x0a, 0x6a, 0xce, 0xc0, 0x1e, 0x78, 0x3e, 0xf2, - 0x6e, 0x61, 0xa7, 0xb4, 0xdb, 0xd8, 0xbf, 0xba, 0xe4, 0xae, 0xbc, 0x05, 0xb4, 0xea, 0x0c, 0xe4, - 0x97, 0x93, 0xeb, 0xd0, 0x18, 0x44, 0x89, 0xdd, 0x67, 0x3e, 0x0b, 0x1d, 0x6d, 0x41, 0x8d, 0xc2, - 0x20, 0x4a, 0x0e, 0x35, 0x25, 0x15, 0x78, 0xed, 0x89, 0x10, 0x39, 0x57, 0xa6, 0x68, 0x81, 0x57, - 0x9a, 0x22, 0x1d, 0xa1, 0x30, 0xa0, 0x90, 0x59, 0xa6, 0x7a, 0x42, 0xf6, 0x61, 0x6b, 0x88, 0x21, - 0x26, 0x4c, 0xa0, 0xed, 0x4e, 0x12, 0x26, 0xd3, 0xcb, 0xe6, 0xe8, 0x28, 0x38, 0x96, 0xe9, 0x66, - 0xca, 0x7c, 0x68, 0x78, 0x27, 0xe8, 0x90, 0x5d, 0xe8, 0x08, 0xd6, 0xf7, 0x51, 0xd8, 0x3c, 0x64, - 0xb1, 0x1d, 0x33, 0x31, 0x52, 0x28, 0xac, 0xd3, 0xb6, 0xa6, 0xcb, 0x43, 0x3c, 0x67, 0x62, 0x44, - 0xee, 0xc2, 0x05, 0x27, 0x0a, 0x02, 0x4f, 0xd8, 0xca, 0xed, 0xf6, 0xc8, 0x0b, 0x85, 0x02, 0x64, - 0x99, 0x6e, 0x68, 0xc6, 0x13, 0x49, 0x3f, 0xf6, 0x42, 0x61, 0xfd, 0x0c, 0x5a, 0xf3, 0xc3, 0x8f, - 0x26, 0xe1, 0x98, 0xdc, 0x5f, 0x24, 0x53, 0x41, 0x41, 0xeb, 0xca, 0x92, 0xaf, 0x32, 0x89, 0xbe, - 0x48, 0x2b, 0x02, 0x65, 0x97, 0x09, 0xa6, 0x3c, 0xd4, 0xa4, 0x6a, 0x6c, 0x55, 0xa0, 0xfc, 0x30, - 0x0a, 0xd1, 0xfa, 0xb6, 0x00, 0x1f, 0x9d, 0xce, 0x2d, 0x94, 0x3b, 0x49, 0xe7, 0xaa, 0xc8, 0x6c, - 0x43, 0x5d, 0x86, 0xc5, 0x56, 0xf1, 0x35, 0x85, 0x42, 0x12, 0x4e, 0x64, 0x8c, 0x53, 0x66, 0xc8, - 0x02, 0xed, 0xfa, 0xba, 0x66, 0x3e, 0x63, 0x01, 0x92, 0xab, 0x00, 0x23, 0x64, 0xae, 0xed, 0x48, - 0xa3, 0x95, 0xdf, 0x9b, 0xb4, 0x2e, 0x29, 0xfa, 0x14, 0xb7, 0xa0, 0x2d, 0x12, 0xe6, 0xf9, 0x5e, - 0x38, 0x34, 0x22, 0x65, 0x25, 0xd2, 0x4a, 0xa9, 0x4a, 0xcc, 0x1a, 0xc0, 0x56, 0xde, 0xb2, 0xe7, - 0x09, 0x4e, 0x3d, 0x7c, 0x4d, 0x7e, 0x00, 0xeb, 0x32, 0x01, 0x53, 0xbc, 0xdc, 0x5a, 0xf2, 0xc1, - 0xea, 0xe3, 0x50, 0xad, 0x43, 0x3a, 0x50, 0xc2, 0xd0, 0x35, 0x68, 0x91, 0x43, 0xeb, 0xd7, 0x05, - 0xb8, 0x74, 0x56, 0x47, 0x9b, 0xfa, 0xe1, 0x3e, 0x48, 0x9d, 0x5e, 0x5a, 0x38, 0x5d, 0x26, 0x8f, - 0x37, 0x35, 0x87, 0x2d, 0x7a, 0x53, 0x72, 0x07, 0x4a, 0xb2, 0xe6, 0xe8, 0x32, 0xb7, 0xb5, 0x97, - 0xab, 0xe6, 0x0f, 0x99, 0x60, 0x4f, 0x71, 0x46, 0xa5, 0x84, 0x35, 0x04, 0x92, 0xb7, 0xf0, 0x18, - 0x99, 0xfb, 0x81, 0x68, 0xd8, 0x86, 0xfa, 0x84, 0xa3, 0xed, 0x30, 0x67, 0x94, 0x26, 0x4d, 0x6d, - 0xc2, 0xf1, 0x48, 0xce, 0xad, 0x7b, 0x70, 0x21, 0xbf, 0xd1, 0xa3, 0xd0, 0xcd, 0xe5, 0xb3, 0xf1, - 0xc1, 0x3c, 0x9f, 0x7f, 0x55, 0x5c, 0x8e, 0x12, 0xc5, 0x6f, 0x26, 0xc8, 0x05, 0xf9, 0x3e, 0x94, - 0x65, 0xc8, 0x8d, 0x69, 0x37, 0xce, 0x0d, 0x92, 0x3c, 0xce, 0xf1, 0x1a, 0x55, 0x0a, 0xe4, 0x47, - 0x50, 0x8d, 0x75, 0xa4, 0xcd, 0x0d, 0xf4, 0xc9, 0xb9, 0xba, 0x06, 0x15, 0xc7, 0x6b, 0x34, 0x55, - 0x23, 0x0f, 0x60, 0x7d, 0x01, 0xbd, 0xc6, 0xfe, 0xed, 0xf7, 0x02, 0x44, 0x05, 0xfb, 0x78, 0x8d, - 0x6a, 0x35, 0x72, 0x5f, 0x63, 0x44, 0xdf, 0x57, 0x3b, 0xe7, 0x6a, 0x3f, 0x0a, 0xa5, 0xe1, 0x52, - 0xfc, 0xb0, 0x0e, 0xd5, 0x98, 0xcd, 0xfc, 0x88, 0xb9, 0xd6, 0x7d, 0xd8, 0x3a, 0x70, 0x1c, 0x8c, - 0x65, 0xc9, 0xcd, 0x6c, 0xc3, 0xf3, 0x90, 0x91, 0xf0, 0xcd, 0x40, 0xc6, 0x3a, 0x5d, 0x4e, 0x45, - 0x8a, 0x3c, 0x8e, 0x42, 0x8e, 0xe4, 0x6b, 0x58, 0x4f, 0x2b, 0xe4, 0x2a, 0x87, 0xac, 0xdc, 0x8b, - 0x6a, 0x15, 0x6b, 0x1f, 0x6a, 0x4f, 0x71, 0xf6, 0x92, 0xf9, 0x13, 0x94, 0xe0, 0x97, 0x80, 0x2b, - 0x28, 0x04, 0xca, 0xa1, 0x2c, 0x81, 0x53, 0xc9, 0x32, 0xc5, 0x41, 0x4f, 0xac, 0x3f, 0x15, 0xa1, - 0x23, 0xc1, 0x93, 0x2e, 0x28, 0xc1, 0x48, 0x6e, 0x43, 0x45, 0x5f, 0xba, 0xc6, 0x8a, 0xe5, 0x6b, - 0xd0, 0x70, 0xf3, 0x39, 0x53, 0x5c, 0xca, 0x99, 0xcf, 0xe6, 0x69, 0x21, 0x53, 0xf7, 0xd2, 0xd2, - 0x41, 0x52, 0x43, 0x4d, 0xbe, 0x74, 0xa1, 0x3a, 0xc5, 0x84, 0xcb, 0x2d, 0x75, 0x85, 0x4e, 0xa7, - 0xe4, 0x1e, 0x94, 0xe5, 0xe6, 0x26, 0x75, 0xb6, 0xdf, 0x71, 0x63, 0xa8, 0xbc, 0x57, 0x82, 0xe4, - 0x7b, 0xb0, 0x91, 0x60, 0x10, 0x4d, 0xd1, 0xb5, 0x13, 0x74, 0xa2, 0xc4, 0xe5, 0xdd, 0x8a, 0x32, - 0x21, 0xdf, 0xb5, 0xb4, 0x8d, 0x10, 0xd5, 0x32, 0xe4, 0x10, 0xda, 0xea, 0x72, 0x5f, 0x68, 0x55, - 0x95, 0xd6, 0xf2, 0x8e, 0x3d, 0x25, 0xa4, 0xb5, 0x68, 0x2b, 0xc8, 0xcc, 0xb8, 0xf5, 0x4b, 0x80, - 0x13, 0x11, 0x25, 0xf8, 0xc4, 0xc5, 0x50, 0xc8, 0xda, 0xe8, 0xf8, 0x13, 0x2e, 0x30, 0x59, 0xf4, - 0x5f, 0x75, 0x43, 0x79, 0xe2, 0x92, 0xcb, 0x50, 0xe3, 0x52, 0x58, 0x32, 0xb5, 0xef, 0xaa, 0x5c, - 0x2b, 0x93, 0xfb, 0xd0, 0x60, 0xb1, 0x67, 0xa7, 0x1e, 0x29, 0xa9, 0x1e, 0x60, 0x73, 0x2f, 0x6d, - 0x12, 0x0f, 0x9e, 0x3f, 0x79, 0xa9, 0x59, 0x14, 0x58, 0xec, 0x99, 0xb1, 0xf5, 0x29, 0x5c, 0x50, - 0xbb, 0x4b, 0x6b, 0xa6, 0x98, 0xcc, 0x3b, 0x00, 0x8e, 0xdf, 0x84, 0x51, 0xda, 0x01, 0xa8, 0x89, - 0xd5, 0x87, 0xb6, 0x0c, 0xfa, 0x4f, 0x23, 0x87, 0xf9, 0x5a, 0xee, 0x73, 0x80, 0x11, 0x4b, 0x5c, - 0x9b, 0xcb, 0x99, 0x09, 0x3b, 0x99, 0xf7, 0x6f, 0xc7, 0x2c, 0xd1, 0x1d, 0x05, 0xad, 0x8f, 0xd2, - 0xa1, 0x3c, 0x9f, 0xcf, 0xb8, 0xb9, 0xdd, 0xcc, 0x11, 0xea, 0x92, 0xa2, 0xae, 0x35, 0xeb, 0xdf, - 0x05, 0xbd, 0xc9, 0x41, 0x1c, 0xfb, 0x33, 0xad, 0x71, 0x13, 0x5a, 0x2c, 0x8e, 0x7d, 0x0f, 0x5d, - 0x3b, 0xdb, 0x96, 0x34, 0x0d, 0x51, 0xe9, 0xc9, 0x6b, 0x53, 0x2d, 0x9b, 0xbd, 0x3b, 0x95, 0x0b, - 0xca, 0x74, 0x43, 0x32, 0x8e, 0x16, 0x57, 0xa7, 0x6c, 0x07, 0x73, 0x62, 0x1a, 0x3b, 0x8d, 0xcc, - 0xed, 0x2a, 0x5b, 0x03, 0x23, 0xa2, 0x7a, 0x1e, 0x7d, 0xb3, 0x83, 0x26, 0x9d, 0x62, 0x12, 0x90, - 0x9f, 0xc0, 0x86, 0x48, 0xbb, 0x26, 0x73, 0xfc, 0xe2, 0xca, 0x42, 0x76, 0xb6, 0xbf, 0xa2, 0x6d, - 0x91, 0x9b, 0x5b, 0x1e, 0x80, 0xc2, 0x87, 0x3e, 0xee, 0x36, 0xd4, 0x03, 0x2f, 0xcc, 0x1d, 0xb5, - 0x16, 0x78, 0xa1, 0xb6, 0xeb, 0x36, 0x54, 0x4c, 0xab, 0x59, 0x5c, 0x9d, 0x63, 0x9a, 0x4b, 0x3e, - 0x82, 0x8a, 0x36, 0xd6, 0xf8, 0xc0, 0xcc, 0xac, 0x7f, 0x16, 0xa1, 0x99, 0xc5, 0xa2, 0x6c, 0x4c, - 0x78, 0x34, 0x49, 0x1c, 0xb4, 0x97, 0x9b, 0xfe, 0xb6, 0xa6, 0xd3, 0xb4, 0xf5, 0xff, 0x12, 0x9a, - 0x46, 0x52, 0x37, 0xdf, 0xc5, 0x73, 0x9a, 0x6f, 0x2d, 0xa8, 0x9b, 0xef, 0x7b, 0x73, 0x3d, 0xf9, - 0x16, 0xe0, 0x26, 0xb3, 0xf3, 0x69, 0x65, 0x14, 0xe4, 0x98, 0xeb, 0x5e, 0x49, 0x9e, 0x22, 0x63, - 0x92, 0x0e, 0x51, 0x5b, 0xd3, 0xb3, 0x26, 0x19, 0xc9, 0xf7, 0xbf, 0x07, 0xb4, 0xe0, 0xdc, 0x24, - 0xa3, 0xa7, 0x4d, 0x5a, 0x95, 0xe9, 0x46, 0x41, 0x9b, 0x34, 0xef, 0x88, 0xab, 0xd9, 0x8e, 0xf8, - 0xc6, 0xfc, 0x64, 0x9a, 0x59, 0xd3, 0x38, 0xd2, 0x34, 0x0d, 0xe7, 0x3f, 0xc8, 0x42, 0xa9, 0xcc, - 0xc8, 0x64, 0xcd, 0x9e, 0x6a, 0x2b, 0x4d, 0xc2, 0xb4, 0xf7, 0xbb, 0x4b, 0x88, 0x91, 0x5b, 0x6a, - 0xa0, 0x68, 0xb1, 0x4c, 0x61, 0x2d, 0x9e, 0x5b, 0x58, 0xbf, 0x06, 0xfd, 0xd2, 0x30, 0x78, 0xd4, - 0x97, 0xdb, 0xe5, 0x55, 0x95, 0x48, 0x2f, 0x0f, 0xc1, 0x02, 0x75, 0x37, 0xa4, 0x4b, 0x54, 0x83, - 0x9a, 0xcb, 0x09, 0x4d, 0xd3, 0xd8, 0x5b, 0x51, 0x22, 0xd7, 0x3f, 0xa8, 0x44, 0x56, 0xfe, 0xef, - 0x12, 0xf9, 0x8f, 0x02, 0x7c, 0xac, 0x0f, 0x7b, 0x22, 0xbb, 0x87, 0xd0, 0xc1, 0x67, 0x93, 0xa0, - 0x8f, 0x09, 0x45, 0x5f, 0xb5, 0xd8, 0xe7, 0x3f, 0x5a, 0xef, 0xc0, 0x06, 0x37, 0x6a, 0x76, 0xa8, - 0xf4, 0x4c, 0xdd, 0x69, 0xf3, 0xdc, 0x6a, 0xe4, 0x81, 0xac, 0xa0, 0xb1, 0x3f, 0xcb, 0x39, 0xf0, - 0xea, 0x8a, 0x84, 0x5e, 0x54, 0x27, 0x59, 0x4b, 0xe7, 0x95, 0xea, 0x70, 0xfe, 0x3e, 0xd5, 0x0b, - 0xe8, 0x06, 0xe1, 0xfa, 0xf2, 0x02, 0x4b, 0x78, 0x48, 0xdf, 0xaa, 0xba, 0x18, 0xfc, 0xbe, 0x00, - 0x9b, 0x07, 0x53, 0xe6, 0xf9, 0xac, 0xef, 0xf9, 0x9e, 0x98, 0x1d, 0x45, 0xa1, 0xc0, 0x37, 0x82, - 0x7c, 0x02, 0x6d, 0xf5, 0xf2, 0x5e, 0x3e, 0x66, 0x53, 0x52, 0xe7, 0x19, 0xf1, 0x43, 0xb8, 0x90, - 0x95, 0x7a, 0x6f, 0xa6, 0x6e, 0x2c, 0xb4, 0x75, 0x6a, 0xec, 0x40, 0x63, 0x12, 0x32, 0xbd, 0xbf, - 0x8f, 0xe6, 0x4d, 0x94, 0x25, 0xc9, 0x4b, 0x57, 0x24, 0x5e, 0x10, 0xa0, 0xce, 0xca, 0x1a, 0x4d, - 0xa7, 0xd6, 0x77, 0xa0, 0xf5, 0xd8, 0x9f, 0xf0, 0x51, 0x0f, 0x03, 0x85, 0x9b, 0x73, 0xa3, 0x62, - 0x3d, 0x80, 0x36, 0xc5, 0x41, 0x82, 0x7c, 0x74, 0x38, 0x71, 0xc6, 0x28, 0x78, 0xf6, 0x3a, 0x2f, - 0xe4, 0xaf, 0x73, 0x02, 0xe5, 0x31, 0xce, 0x78, 0xb7, 0xb8, 0x53, 0x92, 0xcd, 0xb2, 0x1c, 0x5b, - 0x7f, 0x2e, 0x40, 0xe3, 0x48, 0xb6, 0x99, 0x3f, 0x76, 0xd4, 0x8f, 0x84, 0xff, 0xcd, 0x41, 0xb7, - 0x61, 0x43, 0xf5, 0xa6, 0x19, 0x31, 0x8d, 0x85, 0x96, 0x22, 0xcf, 0xe5, 0x0e, 0x80, 0xe4, 0xe4, - 0xb4, 0x27, 0x4b, 0xef, 0xf6, 0x64, 0x27, 0xa3, 0xaf, 0x5d, 0xf9, 0x19, 0x80, 0x5e, 0x42, 0xfd, - 0x03, 0x29, 0xaf, 0xf8, 0x07, 0x52, 0x57, 0x7c, 0x39, 0xb4, 0xfe, 0x55, 0x82, 0x66, 0xf6, 0xdd, - 0x4f, 0xbe, 0x80, 0xb2, 0x98, 0xc5, 0x69, 0x8d, 0xb8, 0x7e, 0xce, 0x2f, 0x82, 0xd3, 0x59, 0x8c, - 0x54, 0x09, 0x2f, 0xea, 0x54, 0x31, 0x5b, 0xa7, 0xbe, 0x0b, 0x8d, 0x85, 0x21, 0xab, 0x0b, 0x30, - 0xcc, 0x2d, 0x51, 0x3d, 0xe8, 0x6b, 0xe6, 0x09, 0x5b, 0xf5, 0x61, 0x3a, 0xc4, 0x35, 0x49, 0x50, - 0x4d, 0xde, 0x2d, 0x68, 0x0f, 0xa2, 0xc4, 0x41, 0x7f, 0x66, 0xb3, 0xd7, 0x6c, 0x8c, 0xa1, 0x2a, - 0xba, 0x35, 0xda, 0x32, 0xd4, 0x03, 0x45, 0x24, 0x0f, 0x40, 0xfb, 0xd3, 0x1e, 0x3a, 0xfa, 0xf8, - 0x95, 0x95, 0x0f, 0x90, 0x4c, 0xfc, 0xa8, 0xb6, 0xd1, 0x04, 0xf3, 0x08, 0xda, 0x03, 0x09, 0x25, - 0x3b, 0x30, 0x58, 0x52, 0x95, 0xb7, 0xb1, 0xff, 0xf1, 0xd2, 0x02, 0x39, 0xbc, 0xd1, 0xd6, 0x20, - 0x07, 0xbf, 0x17, 0x70, 0x91, 0x65, 0x32, 0xc9, 0x76, 0x74, 0x2a, 0xa9, 0x3a, 0xdd, 0xd8, 0xb7, - 0x96, 0x9b, 0xe4, 0xb3, 0x49, 0x47, 0x37, 0xd9, 0x8a, 0x4c, 0x7c, 0x2c, 0xeb, 0xa0, 0x02, 0xae, - 0xdd, 0xd7, 0xc8, 0x35, 0xff, 0x7d, 0xce, 0x54, 0x8a, 0x1c, 0xbc, 0x65, 0x61, 0xcc, 0xce, 0xef, - 0x52, 0xa8, 0xcf, 0x4b, 0x3d, 0x01, 0xa8, 0x3c, 0x8b, 0x92, 0x80, 0xf9, 0x9d, 0x35, 0xd2, 0x84, - 0x9a, 0x2a, 0x30, 0x5e, 0x38, 0xec, 0x14, 0x48, 0x0b, 0xea, 0xf3, 0xdf, 0x54, 0x9d, 0x22, 0x69, - 0x40, 0x55, 0x56, 0x4a, 0xc9, 0x2b, 0x91, 0x0d, 0x68, 0xbc, 0x58, 0xa4, 0x66, 0xa7, 0x7c, 0xf7, - 0x77, 0x25, 0xe8, 0x2c, 0x63, 0x83, 0x6c, 0xc2, 0x46, 0x8f, 0x0f, 0x35, 0x34, 0x5f, 0xb1, 0x31, - 0xbe, 0x88, 0x3b, 0x6b, 0xa4, 0x0b, 0x17, 0x7b, 0x7c, 0xf8, 0x8a, 0x85, 0x82, 0x46, 0xbe, 0xdf, - 0x67, 0xce, 0x58, 0x15, 0xe0, 0x4e, 0x81, 0x6c, 0xc1, 0x85, 0x1e, 0x1f, 0xaa, 0xd0, 0x9c, 0x08, - 0xe6, 0xab, 0x5b, 0xb9, 0x53, 0x24, 0x57, 0xe1, 0xf2, 0x19, 0x72, 0xfa, 0x00, 0xe9, 0x94, 0xc8, - 0x25, 0xd8, 0xec, 0xf1, 0xe1, 0xb1, 0xd7, 0xc7, 0x24, 0x94, 0x45, 0x4d, 0xbf, 0xf2, 0x3a, 0x65, - 0xb3, 0x51, 0x86, 0x61, 0x54, 0xd6, 0xc9, 0x1d, 0xb8, 0xa9, 0xec, 0xfa, 0x39, 0x3a, 0x42, 0x37, - 0x96, 0xc3, 0x23, 0x36, 0xe1, 0xe8, 0x1e, 0xce, 0x7a, 0x18, 0x44, 0xc9, 0x4c, 0xfd, 0xa4, 0xea, - 0x54, 0xc8, 0x15, 0xf8, 0xa8, 0xc7, 0x87, 0xd9, 0x00, 0xa5, 0xcb, 0x57, 0xc9, 0x36, 0x5c, 0x3a, - 0xc3, 0x33, 0x3b, 0xd4, 0x88, 0x05, 0xd7, 0x7a, 0x7c, 0xf8, 0x32, 0x12, 0xd2, 0xd4, 0xd8, 0xf7, - 0x54, 0xd3, 0xa5, 0x6e, 0xb3, 0x74, 0x81, 0x3a, 0xb9, 0x09, 0xd7, 0xdf, 0x29, 0x63, 0x16, 0x02, - 0x72, 0x11, 0x3a, 0x3d, 0x3e, 0x34, 0x48, 0x35, 0xaa, 0x0d, 0xe3, 0xa9, 0x94, 0x6a, 0x84, 0x9b, - 0x46, 0x38, 0x07, 0xcd, 0x4e, 0xcb, 0x08, 0xe7, 0x31, 0xd1, 0x69, 0x1f, 0xde, 0xfe, 0xeb, 0x6f, - 0x6a, 0x85, 0x3f, 0xbe, 0xbd, 0x56, 0xf8, 0xcb, 0xdb, 0x6b, 0x85, 0xbf, 0xbd, 0xbd, 0x56, 0xf8, - 0xf6, 0xef, 0xd7, 0xd6, 0xa0, 0x13, 0x25, 0xc3, 0x3d, 0xe1, 0x8d, 0xa7, 0x7b, 0xe3, 0xa9, 0xfa, - 0x4d, 0xdb, 0xaf, 0xa8, 0xcf, 0x17, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x95, 0x55, 0x59, - 0x36, 0x16, 0x00, 0x00, + // 2308 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcb, 0x73, 0x1b, 0x49, + 0x19, 0xf7, 0x48, 0xb2, 0x1e, 0x9f, 0x1e, 0x56, 0xda, 0x71, 0xa2, 0x8d, 0x37, 0x89, 0x33, 0xd9, + 0x24, 0xde, 0x2c, 0x38, 0xb5, 0xde, 0xb0, 0x6c, 0x2d, 0x55, 0x01, 0xdb, 0x49, 0x70, 0x08, 0x4a, + 0xa5, 0xda, 0x4e, 0x52, 0x9c, 0xa6, 0x5a, 0x33, 0x2d, 0x69, 0xd0, 0xbc, 0xb6, 0xbb, 0xa5, 0x44, + 0x14, 0xff, 0x05, 0x97, 0x3d, 0x72, 0xa4, 0xb8, 0x50, 0xdc, 0xf8, 0x03, 0x38, 0x50, 0x70, 0xe1, + 0xc8, 0x91, 0x0a, 0x17, 0x8e, 0x70, 0xe4, 0x46, 0xf5, 0x63, 0x46, 0x33, 0xb2, 0xe2, 0x40, 0x4e, + 0xea, 0xfe, 0x1e, 0xdd, 0xdf, 0xe3, 0xf7, 0x7d, 0xfd, 0x8d, 0x60, 0x93, 0x91, 0xa1, 0x70, 0x38, + 0x65, 0x33, 0xca, 0x92, 0xc1, 0x5e, 0xc2, 0x62, 0x11, 0xa3, 0x76, 0x81, 0x78, 0xa5, 0x4d, 0xe5, + 0x3e, 0xe5, 0x5e, 0x69, 0x85, 0x54, 0x90, 0x6c, 0xd7, 0x9e, 0xcc, 0x58, 0xe2, 0x66, 0xdb, 0xae, + 0xe7, 0xf3, 0x89, 0x33, 0xe5, 0x64, 0x44, 0x0d, 0x05, 0xd1, 0xc8, 0x65, 0xf3, 0x44, 0xf8, 0x71, + 0x94, 0x49, 0x6d, 0xb0, 0x29, 0x17, 0x6a, 0xa9, 0x09, 0xf6, 0x7f, 0xca, 0xd0, 0xc4, 0x64, 0x28, + 0xfa, 0x94, 0x4b, 0x55, 0xb4, 0x0d, 0x0d, 0x46, 0x47, 0x7e, 0x1c, 0x39, 0xbe, 0xd7, 0xb3, 0x76, + 0xac, 0xdd, 0x0a, 0xae, 0x6b, 0xc2, 0x13, 0x0f, 0x7d, 0x0a, 0x8d, 0x21, 0x8b, 0x43, 0x27, 0xa1, + 0x94, 0xf5, 0x4a, 0x3b, 0xd6, 0x6e, 0x73, 0xbf, 0xb5, 0x67, 0x8c, 0x7a, 0x4e, 0x29, 0xc3, 0x75, + 0xc9, 0x96, 0x2b, 0x74, 0x0b, 0x6a, 0x22, 0xd6, 0x82, 0xe5, 0x15, 0x82, 0x55, 0x11, 0x2b, 0xb1, + 0xbb, 0x50, 0x0b, 0xf5, 0xcd, 0xbd, 0x8a, 0x12, 0xeb, 0xee, 0xa5, 0x3e, 0x1b, 0x8b, 0x70, 0x2a, + 0x80, 0xbe, 0x84, 0x96, 0x31, 0x8d, 0x26, 0xb1, 0x3b, 0xee, 0xad, 0x2b, 0x85, 0xcd, 0xf4, 0x5c, + 0xac, 0x78, 0x8f, 0x24, 0x0b, 0x37, 0xd9, 0x62, 0x83, 0x6e, 0x40, 0xcb, 0xe7, 0x8e, 0x88, 0xc3, + 0x01, 0x17, 0x71, 0x44, 0x7b, 0xd5, 0x1d, 0x6b, 0xb7, 0x8e, 0x9b, 0x3e, 0x3f, 0x4d, 0x49, 0xd2, + 0x6b, 0x2e, 0x08, 0x13, 0xce, 0x84, 0xce, 0x7b, 0xb5, 0x1d, 0x6b, 0xb7, 0x85, 0xeb, 0x8a, 0xf0, + 0x94, 0xce, 0xd1, 0x65, 0xa8, 0xd1, 0xc8, 0x53, 0xac, 0xba, 0x62, 0x55, 0x69, 0xe4, 0x49, 0xc6, + 0xe7, 0xd0, 0x0a, 0x29, 0x1b, 0x51, 0x47, 0x10, 0x36, 0xa2, 0xa2, 0xd7, 0x50, 0x06, 0x75, 0x8a, + 0x06, 0xe1, 0xa6, 0x92, 0x39, 0x55, 0x22, 0xe8, 0x2b, 0x68, 0xd0, 0x37, 0x82, 0x11, 0x27, 0xe4, + 0xa3, 0x1e, 0x28, 0xf9, 0xed, 0xbd, 0x22, 0x12, 0x1e, 0x49, 0x7e, 0xea, 0x7c, 0x5d, 0x49, 0xf7, + 0xf9, 0x48, 0x9a, 0xa8, 0x35, 0x5d, 0xf1, 0xa6, 0xd7, 0xd4, 0x26, 0x2a, 0xc2, 0x91, 0x78, 0x83, + 0xee, 0x03, 0x2c, 0xd2, 0xdf, 0x6b, 0xed, 0x58, 0xbb, 0x9d, 0xfd, 0xad, 0xbd, 0x1c, 0x22, 0x1e, + 0xfa, 0x7c, 0xf2, 0x42, 0x9d, 0xd8, 0xf0, 0xd2, 0xa5, 0xfd, 0x00, 0x90, 0x4c, 0xfd, 0x29, 0x9b, + 0x46, 0x2e, 0x11, 0xd4, 0x3b, 0x11, 0x44, 0x50, 0x74, 0x11, 0xd6, 0xfd, 0xc8, 0xa3, 0x6f, 0x4c, + 0xf6, 0xf5, 0x06, 0x21, 0xa8, 0x08, 0xca, 0x42, 0x95, 0xf5, 0x0a, 0x56, 0x6b, 0xfb, 0x39, 0x74, + 0x4e, 0x22, 0x92, 0xf0, 0x71, 0x2c, 0x8e, 0x1e, 0x3f, 0xf6, 0x03, 0x8a, 0x3a, 0x50, 0x72, 0x87, + 0x4a, 0xb1, 0x81, 0x4b, 0xee, 0x50, 0x6a, 0x71, 0xff, 0x17, 0x34, 0xd5, 0x92, 0x6b, 0x74, 0x05, + 0xea, 0xee, 0x98, 0xba, 0x13, 0x3e, 0x0d, 0x15, 0x34, 0xda, 0x38, 0xdb, 0xdb, 0xbf, 0x2d, 0x41, + 0x2b, 0x3d, 0xb2, 0x4f, 0x05, 0x41, 0x5f, 0x41, 0xdd, 0x1d, 0x3a, 0x43, 0x3f, 0xa0, 0xbc, 0x67, + 0xed, 0x94, 0x77, 0x9b, 0xfb, 0x57, 0x97, 0xc2, 0x55, 0xb4, 0x00, 0xd7, 0xdc, 0xa1, 0xfc, 0xe5, + 0xe8, 0x3a, 0x34, 0x87, 0x31, 0x73, 0x06, 0x24, 0x20, 0x91, 0xab, 0x2d, 0xa8, 0x63, 0x18, 0xc6, + 0xec, 0x50, 0x53, 0x52, 0x81, 0xd7, 0xbe, 0x88, 0x28, 0xe7, 0xca, 0x14, 0x2d, 0xf0, 0x4a, 0x53, + 0x64, 0x20, 0x14, 0x06, 0x14, 0x32, 0x2b, 0x58, 0x6f, 0xd0, 0x3e, 0x6c, 0x8d, 0x68, 0x44, 0x19, + 0x11, 0xd4, 0xf1, 0xa6, 0x8c, 0xc8, 0xf2, 0x72, 0x38, 0x75, 0x15, 0x1c, 0x2b, 0x78, 0x33, 0x65, + 0x3e, 0x34, 0xbc, 0x13, 0xea, 0xa2, 0x5d, 0xe8, 0x0a, 0x32, 0x08, 0xa8, 0x70, 0x78, 0x44, 0x12, + 0x27, 0x21, 0x62, 0xac, 0x50, 0xd8, 0xc0, 0x1d, 0x4d, 0x97, 0x4e, 0x3c, 0x27, 0x62, 0x8c, 0xee, + 0xc2, 0x05, 0x37, 0x0e, 0x43, 0x5f, 0x38, 0x2a, 0xec, 0xce, 0xd8, 0x8f, 0x84, 0x02, 0x64, 0x05, + 0x6f, 0x68, 0xc6, 0x13, 0x49, 0x3f, 0xf6, 0x23, 0x61, 0xff, 0x0c, 0xda, 0x99, 0xf3, 0xe3, 0x69, + 0x34, 0x41, 0xf7, 0x17, 0xc5, 0x64, 0x29, 0x68, 0x5d, 0x59, 0x8a, 0x55, 0xae, 0xd0, 0x17, 0x65, + 0x85, 0xa0, 0xe2, 0x11, 0x41, 0x54, 0x84, 0x5a, 0x58, 0xad, 0xed, 0x2a, 0x54, 0x1e, 0xc6, 0x11, + 0xb5, 0xbf, 0xb5, 0xe0, 0xd2, 0x69, 0x66, 0xa1, 0xbc, 0x49, 0x06, 0x57, 0x65, 0x66, 0x1b, 0x1a, + 0x32, 0x2d, 0x8e, 0xca, 0xaf, 0x69, 0x14, 0x92, 0x70, 0x22, 0x73, 0x9c, 0x32, 0x23, 0x12, 0xea, + 0xd0, 0x37, 0x34, 0xf3, 0x19, 0x09, 0x29, 0xba, 0x0a, 0x30, 0xa6, 0xc4, 0x73, 0x5c, 0x69, 0xb4, + 0x8a, 0x7b, 0x0b, 0x37, 0x24, 0x45, 0x7b, 0x71, 0x0b, 0x3a, 0x82, 0x11, 0x3f, 0xf0, 0xa3, 0x91, + 0x11, 0xa9, 0x28, 0x91, 0x76, 0x4a, 0x55, 0x62, 0xf6, 0x10, 0xb6, 0x8a, 0x96, 0x3d, 0x67, 0x74, + 0xe6, 0xd3, 0xd7, 0xe8, 0x07, 0xb0, 0x2e, 0x0b, 0x30, 0xc5, 0xcb, 0xad, 0xa5, 0x18, 0xac, 0x76, + 0x07, 0x6b, 0x1d, 0xd4, 0x85, 0x32, 0x8d, 0x3c, 0x83, 0x16, 0xb9, 0xb4, 0x7f, 0x6d, 0xc1, 0xe5, + 0xb3, 0x3a, 0xda, 0xd4, 0x0f, 0x8f, 0x41, 0x1a, 0xf4, 0xf2, 0x22, 0xe8, 0xb2, 0x78, 0xfc, 0x99, + 0x71, 0xb6, 0xe4, 0xcf, 0xd0, 0x1d, 0x28, 0xcb, 0x9e, 0xa3, 0xdb, 0xdc, 0xd6, 0x5e, 0xa1, 0x9b, + 0x3f, 0x24, 0x82, 0x3c, 0xa5, 0x73, 0x2c, 0x25, 0xec, 0x11, 0xa0, 0xa2, 0x85, 0xc7, 0x94, 0x78, + 0x1f, 0x88, 0x86, 0x6d, 0x68, 0x4c, 0x39, 0x75, 0x5c, 0xe2, 0x8e, 0xd3, 0xa2, 0xa9, 0x4f, 0x39, + 0x3d, 0x92, 0x7b, 0xfb, 0x1e, 0x5c, 0x28, 0x5e, 0xf4, 0x28, 0xf2, 0x0a, 0xf5, 0x6c, 0x62, 0x90, + 0xd5, 0xf3, 0xaf, 0x4a, 0xcb, 0x59, 0xc2, 0xf4, 0x9b, 0x29, 0xe5, 0x02, 0x7d, 0x1f, 0x2a, 0x32, + 0xe5, 0xc6, 0xb4, 0x1b, 0xe7, 0x26, 0x49, 0xba, 0x73, 0xbc, 0x86, 0x95, 0x02, 0xfa, 0x11, 0xd4, + 0x12, 0x9d, 0x69, 0xf3, 0x02, 0x7d, 0x72, 0xae, 0xae, 0x41, 0xc5, 0xf1, 0x1a, 0x4e, 0xd5, 0xd0, + 0x03, 0x58, 0x5f, 0x40, 0xaf, 0xb9, 0x7f, 0xfb, 0xbd, 0x00, 0x51, 0xc9, 0x3e, 0x5e, 0xc3, 0x5a, + 0x0d, 0xdd, 0xd7, 0x18, 0xd1, 0xef, 0xd5, 0xce, 0xb9, 0xda, 0x8f, 0x22, 0x69, 0xb8, 0x14, 0x3f, + 0x6c, 0x40, 0x2d, 0x21, 0xf3, 0x20, 0x26, 0x9e, 0x7d, 0x1f, 0xb6, 0x0e, 0x5c, 0x97, 0x26, 0xb2, + 0xe5, 0xe6, 0xae, 0xe1, 0x45, 0xc8, 0x48, 0xf8, 0xe6, 0x20, 0x63, 0x9f, 0x2e, 0x97, 0x22, 0xa6, + 0x3c, 0x89, 0x23, 0x4e, 0xd1, 0xd7, 0xb0, 0x9e, 0x76, 0xc8, 0x55, 0x01, 0x59, 0x79, 0x17, 0xd6, + 0x2a, 0xf6, 0x3e, 0xd4, 0x9f, 0xd2, 0xf9, 0x4b, 0x12, 0x4c, 0xa9, 0x04, 0xbf, 0x04, 0x9c, 0xa5, + 0x10, 0x28, 0x97, 0xb2, 0x05, 0xce, 0x24, 0xcb, 0x34, 0x07, 0xbd, 0xb1, 0xff, 0x5c, 0x82, 0xae, + 0x04, 0x4f, 0x7a, 0xa0, 0x04, 0x23, 0xba, 0x0d, 0x55, 0xfd, 0xe8, 0x1a, 0x2b, 0x96, 0x9f, 0x41, + 0xc3, 0x2d, 0xd6, 0x4c, 0x69, 0xa9, 0x66, 0x3e, 0xcb, 0xca, 0x42, 0x96, 0xee, 0xe5, 0x25, 0x47, + 0x52, 0x43, 0x4d, 0xbd, 0xf4, 0xa0, 0x36, 0xa3, 0x8c, 0xcb, 0x2b, 0x75, 0x87, 0x4e, 0xb7, 0xe8, + 0x1e, 0x54, 0xe4, 0xe5, 0xa6, 0x74, 0xb6, 0xdf, 0xf1, 0x62, 0xa8, 0xba, 0x57, 0x82, 0xe8, 0x7b, + 0xb0, 0xc1, 0x68, 0x18, 0xcf, 0xa8, 0xe7, 0x30, 0xea, 0xc6, 0xcc, 0xe3, 0xbd, 0xaa, 0x32, 0xa1, + 0x38, 0xb5, 0x74, 0x8c, 0x10, 0xd6, 0x32, 0xe8, 0x10, 0x3a, 0xea, 0x71, 0x5f, 0x68, 0xd5, 0x94, + 0xd6, 0xf2, 0x8d, 0x7d, 0x25, 0xa4, 0xb5, 0x70, 0x3b, 0xcc, 0xed, 0xb8, 0xfd, 0x4b, 0x80, 0x13, + 0x11, 0x33, 0xfa, 0xc4, 0xa3, 0x91, 0x90, 0xbd, 0xd1, 0x0d, 0xa6, 0x5c, 0x50, 0xb6, 0x98, 0xbf, + 0x1a, 0x86, 0xf2, 0xc4, 0x43, 0x1f, 0x41, 0x9d, 0x4b, 0x61, 0xc9, 0xd4, 0xb1, 0xab, 0x71, 0xad, + 0x8c, 0xee, 0x43, 0x93, 0x24, 0xbe, 0x93, 0x46, 0xa4, 0xac, 0x66, 0x80, 0xcd, 0xbd, 0x74, 0x48, + 0x3c, 0x78, 0xfe, 0xe4, 0xa5, 0x66, 0x61, 0x20, 0x89, 0x6f, 0xd6, 0xf6, 0xa7, 0x70, 0x41, 0xdd, + 0x2e, 0xad, 0x99, 0x51, 0x96, 0x4d, 0x00, 0x9c, 0x7e, 0x13, 0xc5, 0xe9, 0x04, 0xa0, 0x36, 0xf6, + 0x00, 0x3a, 0x32, 0xe9, 0x3f, 0x8d, 0x5d, 0x12, 0x68, 0xb9, 0xcf, 0x01, 0xc6, 0x84, 0x79, 0x0e, + 0x97, 0x3b, 0x93, 0x76, 0x94, 0xcd, 0x6f, 0xc7, 0x84, 0xe9, 0x89, 0x02, 0x37, 0xc6, 0xe9, 0x52, + 0xfa, 0x17, 0x10, 0x6e, 0x5e, 0x37, 0xe3, 0x42, 0x43, 0x52, 0xd4, 0xb3, 0x66, 0xff, 0xdb, 0xd2, + 0x97, 0x1c, 0x24, 0x49, 0x30, 0xd7, 0x1a, 0x37, 0xa1, 0x4d, 0x92, 0x24, 0xf0, 0xa9, 0xe7, 0xe4, + 0xc7, 0x92, 0x96, 0x21, 0x2a, 0x3d, 0xf9, 0x6c, 0xaa, 0x63, 0xf3, 0x6f, 0xa7, 0x0a, 0x41, 0x05, + 0x6f, 0x48, 0xc6, 0xd1, 0xe2, 0xe9, 0x94, 0xe3, 0x60, 0x41, 0x4c, 0x63, 0xa7, 0x99, 0x7b, 0x5d, + 0xe5, 0x68, 0x60, 0x44, 0xd4, 0xcc, 0xa3, 0x5f, 0x76, 0xd0, 0xa4, 0x53, 0xca, 0x42, 0xf4, 0x13, + 0xd8, 0x10, 0xe9, 0xd4, 0x64, 0xdc, 0x2f, 0xad, 0x6c, 0x64, 0x67, 0xe7, 0x2b, 0xdc, 0x11, 0x85, + 0xbd, 0xed, 0x03, 0x28, 0x7c, 0x68, 0x77, 0xb7, 0xa1, 0x11, 0xfa, 0x51, 0xc1, 0xd5, 0x7a, 0xe8, + 0x47, 0xda, 0xae, 0xdb, 0x50, 0x35, 0xa3, 0x66, 0x69, 0x75, 0x8d, 0x69, 0x2e, 0xba, 0x04, 0x55, + 0x6d, 0xac, 0x89, 0x81, 0xd9, 0xd9, 0xbf, 0x2f, 0x43, 0x2b, 0x8f, 0x45, 0x39, 0x98, 0xf0, 0x78, + 0xca, 0x5c, 0xea, 0x2c, 0x0f, 0xfd, 0x1d, 0x4d, 0xc7, 0xe9, 0xe8, 0xff, 0x25, 0xb4, 0x8c, 0xa4, + 0x1e, 0xbe, 0x4b, 0xe7, 0x0c, 0xdf, 0x5a, 0x50, 0x0f, 0xdf, 0xf7, 0x32, 0x3d, 0xf9, 0x2d, 0xc0, + 0x4d, 0x65, 0x17, 0xcb, 0xca, 0x28, 0xc8, 0xb5, 0xac, 0xa9, 0x4b, 0x99, 0x49, 0xc5, 0x8a, 0x6c, + 0xac, 0x50, 0xbd, 0x98, 0x9a, 0x59, 0xa8, 0x4b, 0x35, 0x6f, 0xc9, 0x48, 0xe4, 0xdc, 0xd2, 0x69, + 0xee, 0x68, 0x7a, 0xde, 0x2d, 0x23, 0xf9, 0xfe, 0x6f, 0x0a, 0x2d, 0x98, 0xb9, 0x65, 0xf4, 0xb4, + 0x5b, 0xab, 0xba, 0x85, 0x51, 0xd0, 0x6e, 0x65, 0x53, 0x75, 0x2d, 0x3f, 0x55, 0xdf, 0xc8, 0xa2, + 0xa3, 0x99, 0x75, 0x8d, 0x45, 0x4d, 0xd3, 0x25, 0xf1, 0x47, 0xd9, 0x6c, 0x95, 0x19, 0xb9, 0xca, + 0xdb, 0x53, 0xa3, 0xa9, 0x29, 0xba, 0xce, 0x7e, 0x6f, 0x09, 0x75, 0xf2, 0x4a, 0x0d, 0x36, 0x2d, + 0x96, 0x6b, 0xce, 0xa5, 0x73, 0x9b, 0xf3, 0xd7, 0xa0, 0xbf, 0x56, 0x0c, 0xa6, 0xf5, 0x03, 0xf9, + 0xd1, 0xaa, 0x6e, 0xa6, 0x8f, 0x87, 0x70, 0x81, 0xdc, 0x1b, 0x32, 0x24, 0x6a, 0xc8, 0x2d, 0xd4, + 0x95, 0xa6, 0x69, 0xfc, 0xae, 0x68, 0xb3, 0xeb, 0x1f, 0xd4, 0x66, 0xab, 0xff, 0x77, 0x9b, 0xfd, + 0xa7, 0x05, 0x1f, 0x6b, 0x67, 0x4f, 0xe4, 0x04, 0x12, 0xb9, 0xf4, 0xd9, 0x34, 0x1c, 0x50, 0x86, + 0x69, 0xa0, 0xc6, 0xf4, 0xf3, 0x3f, 0x7c, 0xef, 0xc0, 0x06, 0x37, 0x6a, 0x4e, 0xa4, 0xf4, 0x4c, + 0xef, 0xea, 0xf0, 0xc2, 0x69, 0xe8, 0x81, 0xec, 0xc2, 0x49, 0x30, 0x2f, 0x04, 0xf0, 0xea, 0x8a, + 0xa6, 0xb0, 0xe8, 0x70, 0xb2, 0x1f, 0x67, 0xdd, 0xee, 0x30, 0xfb, 0xc6, 0xd5, 0x07, 0xe8, 0x21, + 0xe3, 0xfa, 0xf2, 0x01, 0x4b, 0x78, 0x48, 0xbf, 0x77, 0x75, 0x43, 0xf9, 0x83, 0x05, 0x9b, 0x07, + 0x33, 0xe2, 0x07, 0x64, 0xe0, 0x07, 0xbe, 0x98, 0x1f, 0xc5, 0x91, 0xa0, 0x6f, 0x04, 0xfa, 0x04, + 0x3a, 0xea, 0xeb, 0x7d, 0xd9, 0xcd, 0x96, 0xa4, 0x66, 0x15, 0xf1, 0x43, 0xb8, 0x90, 0x97, 0x7a, + 0x6f, 0xb5, 0x6f, 0x2c, 0xb4, 0x75, 0x69, 0xec, 0x40, 0x73, 0x1a, 0x11, 0x7d, 0x7f, 0x40, 0xcd, + 0x77, 0x55, 0x9e, 0x24, 0x1f, 0x6e, 0xc1, 0xfc, 0x30, 0xa4, 0xba, 0x2a, 0xeb, 0x38, 0xdd, 0xda, + 0xdf, 0x81, 0xf6, 0xe3, 0x60, 0xca, 0xc7, 0x7d, 0x1a, 0x2a, 0xdc, 0x9c, 0x9b, 0x15, 0xfb, 0x01, + 0x74, 0x30, 0x1d, 0x32, 0xca, 0xc7, 0x87, 0x53, 0x77, 0x42, 0x05, 0xcf, 0x8f, 0x04, 0x56, 0x71, + 0x24, 0x40, 0x50, 0x99, 0xd0, 0x39, 0xef, 0x95, 0x76, 0xca, 0x72, 0xe0, 0x96, 0x6b, 0xfb, 0x2f, + 0x16, 0x34, 0x8f, 0xe4, 0xa8, 0xfa, 0x63, 0x57, 0xfd, 0x19, 0xf1, 0xbf, 0x05, 0xe8, 0x36, 0x6c, + 0xa8, 0xf9, 0x36, 0x27, 0xa6, 0xb1, 0xd0, 0x56, 0xe4, 0x4c, 0xee, 0x00, 0x50, 0x41, 0x4e, 0x47, + 0xb2, 0xfc, 0xee, 0x48, 0x76, 0x73, 0xfa, 0x3a, 0x94, 0x9f, 0x01, 0xe8, 0x23, 0xd4, 0xff, 0x28, + 0x95, 0x15, 0xff, 0xa3, 0x34, 0x14, 0x5f, 0x2e, 0xed, 0x7f, 0x95, 0xa1, 0x95, 0xff, 0xef, 0x00, + 0x7d, 0x01, 0x15, 0x31, 0x4f, 0xd2, 0x1e, 0x71, 0xfd, 0x9c, 0xbf, 0x19, 0x4e, 0xe7, 0x09, 0xc5, + 0x4a, 0x78, 0xd1, 0xa7, 0x4a, 0xf9, 0x3e, 0xf5, 0x5d, 0x68, 0x2e, 0x0c, 0x59, 0xdd, 0xc4, 0x21, + 0xb3, 0x44, 0xcd, 0xb1, 0xaf, 0x89, 0x2f, 0x1c, 0x35, 0xcb, 0xe9, 0x14, 0xd7, 0x25, 0x41, 0x0d, + 0x8a, 0xb7, 0xa0, 0x33, 0x8c, 0x99, 0x4b, 0x83, 0xb9, 0x43, 0x5e, 0x93, 0x09, 0x8d, 0x54, 0xd3, + 0xad, 0xe3, 0xb6, 0xa1, 0x1e, 0x28, 0x22, 0x7a, 0x00, 0x3a, 0x9e, 0xce, 0xc8, 0xd5, 0xee, 0x57, + 0x57, 0x7e, 0xc4, 0xe4, 0xf2, 0x87, 0xb5, 0x8d, 0x26, 0x99, 0x47, 0xd0, 0x19, 0x4a, 0x28, 0x39, + 0xa1, 0xc1, 0x92, 0xea, 0xbc, 0xcd, 0xfd, 0x8f, 0x97, 0x0e, 0x28, 0xe0, 0x0d, 0xb7, 0x87, 0x05, + 0xf8, 0xbd, 0x80, 0x8b, 0x24, 0x57, 0x49, 0x8e, 0xab, 0x4b, 0x49, 0xf5, 0xe9, 0xe6, 0xbe, 0xbd, + 0x3c, 0x68, 0x9f, 0x2d, 0x3a, 0xbc, 0x49, 0x56, 0x54, 0xe2, 0x63, 0xd9, 0x07, 0x15, 0x70, 0x9d, + 0x81, 0x46, 0xae, 0xf9, 0xef, 0xe8, 0x4c, 0xa7, 0x28, 0xc0, 0x5b, 0x36, 0xc6, 0xfc, 0xfe, 0x2e, + 0x86, 0x46, 0xd6, 0xea, 0x11, 0x40, 0xf5, 0x59, 0xcc, 0x42, 0x12, 0x74, 0xd7, 0x50, 0x0b, 0xea, + 0xaa, 0xc1, 0xf8, 0xd1, 0xa8, 0x6b, 0xa1, 0x36, 0x34, 0xb2, 0xbf, 0xba, 0xba, 0x25, 0xd4, 0x84, + 0x9a, 0xec, 0x94, 0x92, 0x57, 0x46, 0x1b, 0xd0, 0x7c, 0xb1, 0x28, 0xcd, 0x6e, 0xe5, 0xee, 0xef, + 0xca, 0xd0, 0x5d, 0xc6, 0x06, 0xda, 0x84, 0x8d, 0x3e, 0x1f, 0x69, 0x68, 0xbe, 0x22, 0x13, 0xfa, + 0x22, 0xe9, 0xae, 0xa1, 0x1e, 0x5c, 0xec, 0xf3, 0xd1, 0x2b, 0x12, 0x09, 0x1c, 0x07, 0xc1, 0x80, + 0xb8, 0x13, 0xd5, 0x80, 0xbb, 0x16, 0xda, 0x82, 0x0b, 0x7d, 0x3e, 0x52, 0xa9, 0x39, 0x11, 0x24, + 0x50, 0x2f, 0x7b, 0xb7, 0x84, 0xae, 0xc2, 0x47, 0x67, 0xc8, 0xe9, 0x47, 0x4c, 0xb7, 0x8c, 0x2e, + 0xc3, 0x66, 0x9f, 0x8f, 0x8e, 0xfd, 0x01, 0x65, 0x91, 0x6c, 0x6a, 0xfa, 0x4b, 0xb1, 0x5b, 0x31, + 0x17, 0xe5, 0x18, 0x46, 0x65, 0x1d, 0xdd, 0x81, 0x9b, 0xca, 0xae, 0x9f, 0x53, 0x57, 0xe8, 0xe1, + 0x74, 0x74, 0x44, 0xa6, 0x9c, 0x7a, 0x87, 0xf3, 0x3e, 0x0d, 0x63, 0x36, 0x57, 0x7f, 0x74, 0x75, + 0xab, 0xe8, 0x0a, 0x5c, 0xea, 0xf3, 0x51, 0x3e, 0x41, 0xe9, 0xf1, 0x35, 0xb4, 0x0d, 0x97, 0xcf, + 0xf0, 0xcc, 0x0d, 0x75, 0x64, 0xc3, 0xb5, 0x3e, 0x1f, 0xbd, 0x8c, 0x85, 0x34, 0x35, 0x09, 0x7c, + 0x35, 0xb8, 0xa9, 0xd7, 0x2c, 0x3d, 0xa0, 0x81, 0x6e, 0xc2, 0xf5, 0x77, 0xca, 0x98, 0x83, 0x00, + 0x5d, 0x84, 0x6e, 0x9f, 0x8f, 0x0c, 0x52, 0x8d, 0x6a, 0xd3, 0x44, 0x2a, 0xa5, 0x1a, 0xe1, 0x96, + 0x11, 0x2e, 0x40, 0xb3, 0xdb, 0x36, 0xc2, 0x45, 0x4c, 0x74, 0x3b, 0x87, 0xb7, 0xff, 0xf6, 0x9b, + 0xba, 0xf5, 0xa7, 0xb7, 0xd7, 0xac, 0xbf, 0xbe, 0xbd, 0x66, 0xfd, 0xfd, 0xed, 0x35, 0xeb, 0xdb, + 0x7f, 0x5c, 0x5b, 0x83, 0x6e, 0xcc, 0x46, 0x7b, 0xc2, 0x9f, 0xcc, 0xf6, 0x26, 0x33, 0xf5, 0x57, + 0xef, 0xa0, 0xaa, 0x7e, 0xbe, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x40, 0xcc, 0xd0, 0x13, + 0x7a, 0x16, 0x00, 0x00, } func (m *RaftMessage) Marshal() (dAtA []byte, err error) { @@ -3611,6 +3624,20 @@ func (m *MergedRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if len(m.SourceRemovedRecords) > 0 { + for iNdEx := len(m.SourceRemovedRecords) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SourceRemovedRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRaftServerpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + } if m.SourceIndex != 0 { i = encodeVarintRaftServerpb(dAtA, i, uint64(m.SourceIndex)) i-- @@ -4747,6 +4774,12 @@ func (m *MergedRecord) Size() (n int) { if m.SourceIndex != 0 { n += 1 + sovRaftServerpb(uint64(m.SourceIndex)) } + if len(m.SourceRemovedRecords) > 0 { + for _, e := range m.SourceRemovedRecords { + l = e.Size() + n += 1 + l + sovRaftServerpb(uint64(l)) + } + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -8197,6 +8230,40 @@ func (m *MergedRecord) Unmarshal(dAtA []byte) error { break } } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceRemovedRecords", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRaftServerpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRaftServerpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRaftServerpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SourceRemovedRecords = append(m.SourceRemovedRecords, &metapb.Peer{}) + if err := m.SourceRemovedRecords[len(m.SourceRemovedRecords)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipRaftServerpb(dAtA[iNdEx:]) diff --git a/proto/raft_serverpb.proto b/proto/raft_serverpb.proto index 04c88d4f5..bc25a2766 100644 --- a/proto/raft_serverpb.proto +++ b/proto/raft_serverpb.proto @@ -190,7 +190,10 @@ message MergeState { message MergedRecord { uint64 source_region_id = 1; metapb.RegionEpoch source_epoch = 2; + // Peers of source region when merge is committed. repeated metapb.Peer source_peers = 3; + // Removed peers (by confchange) of source region when merge is committed. + repeated metapb.Peer source_removed_records = 9; uint64 target_region_id = 4; metapb.RegionEpoch target_epoch = 5; repeated metapb.Peer target_peers = 6; @@ -206,11 +209,13 @@ message RegionLocalState { MergeState merge_state = 3; // The apply index corresponding to the storage when it's initialized. uint64 tablet_index = 4; - // Raft doesn't guarantee peer will be removed in the end. In v1, peer finds out its destiny - // by logs or broadcast; in v2, leader is responsible to ensure removed peers are destroyed. + // Raft doesn't guarantee peer will be removed in the end. In v1, peer finds + // out its destiny by logs or broadcast; in v2, leader is responsible to + // ensure removed peers are destroyed. + // Note: only peers who has been part of this region can be in this list. repeated metapb.Peer removed_records = 5; - // Merged peer can't be deleted like gc peers. Instead, leader needs to query target peer to - // decide whether source peer can be destroyed. + // Merged peer can't be deleted like gc peers. Instead, leader needs to + // query target peer to decide whether source peer can be destroyed. repeated MergedRecord merged_records = 6; } diff --git a/scripts/proto.lock b/scripts/proto.lock index a4582aca6..46a472499 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -17407,6 +17407,12 @@ "type": "metapb.Peer", "is_repeated": true }, + { + "id": 9, + "name": "source_removed_records", + "type": "metapb.Peer", + "is_repeated": true + }, { "id": 4, "name": "target_region_id", From 87bebcc0d071a18cbbd94a4fc02de9c4988af815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Mon, 25 Sep 2023 20:36:11 +0800 Subject: [PATCH 8/8] import_sstpb: new interface to deny import requests (#1185) * added deny import RPC Signed-off-by: hillium * move it to import_sst_pb Signed-off-by: hillium * make the RPC name more firendly to rust Signed-off-by: hillium * Apply suggestions from code review Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> * rmake go Signed-off-by: hillium * make go Signed-off-by: hillium * address comments Signed-off-by: hillium * move the ids back Signed-off-by: hillium * Update proto/import_kvpb.proto Co-authored-by: Neil Shen --------- Signed-off-by: hillium Co-authored-by: BornChanger <97348524+BornChanger@users.noreply.github.com> Co-authored-by: Neil Shen --- pkg/import_sstpb/import_sstpb.pb.go | 813 ++++++++++++++++++++++------ proto/import_sstpb.proto | 21 + scripts/proto.lock | 35 ++ 3 files changed, 702 insertions(+), 167 deletions(-) diff --git a/pkg/import_sstpb/import_sstpb.pb.go b/pkg/import_sstpb/import_sstpb.pb.go index c8efab26c..8c077a5d8 100644 --- a/pkg/import_sstpb/import_sstpb.pb.go +++ b/pkg/import_sstpb/import_sstpb.pb.go @@ -106,7 +106,123 @@ func (x Pair_OP) String() string { } func (Pair_OP) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{19, 0} + return fileDescriptor_4d076b7935cfab6b, []int{21, 0} +} + +type SuspendImportRPCRequest struct { + // whether to suspend new imports. + ShouldSuspendImports bool `protobuf:"varint,1,opt,name=should_suspend_imports,json=shouldSuspendImports,proto3" json:"should_suspend_imports,omitempty"` + // the duration of import service suspension + // when should_deny_imports is false, + // this won't take effect. + DurationInSecs uint64 `protobuf:"varint,2,opt,name=duration_in_secs,json=durationInSecs,proto3" json:"duration_in_secs,omitempty"` + // The identifier for the caller. + Caller string `protobuf:"bytes,3,opt,name=caller,proto3" json:"caller,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuspendImportRPCRequest) Reset() { *m = SuspendImportRPCRequest{} } +func (m *SuspendImportRPCRequest) String() string { return proto.CompactTextString(m) } +func (*SuspendImportRPCRequest) ProtoMessage() {} +func (*SuspendImportRPCRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_4d076b7935cfab6b, []int{0} +} +func (m *SuspendImportRPCRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SuspendImportRPCRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SuspendImportRPCRequest.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 *SuspendImportRPCRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuspendImportRPCRequest.Merge(m, src) +} +func (m *SuspendImportRPCRequest) XXX_Size() int { + return m.Size() +} +func (m *SuspendImportRPCRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SuspendImportRPCRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SuspendImportRPCRequest proto.InternalMessageInfo + +func (m *SuspendImportRPCRequest) GetShouldSuspendImports() bool { + if m != nil { + return m.ShouldSuspendImports + } + return false +} + +func (m *SuspendImportRPCRequest) GetDurationInSecs() uint64 { + if m != nil { + return m.DurationInSecs + } + return 0 +} + +func (m *SuspendImportRPCRequest) GetCaller() string { + if m != nil { + return m.Caller + } + return "" +} + +type SuspendImportRPCResponse struct { + // The last state before this RPC. + AlreadySuspended bool `protobuf:"varint,1,opt,name=already_suspended,json=alreadySuspended,proto3" json:"already_suspended,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuspendImportRPCResponse) Reset() { *m = SuspendImportRPCResponse{} } +func (m *SuspendImportRPCResponse) String() string { return proto.CompactTextString(m) } +func (*SuspendImportRPCResponse) ProtoMessage() {} +func (*SuspendImportRPCResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_4d076b7935cfab6b, []int{1} +} +func (m *SuspendImportRPCResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SuspendImportRPCResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SuspendImportRPCResponse.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 *SuspendImportRPCResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuspendImportRPCResponse.Merge(m, src) +} +func (m *SuspendImportRPCResponse) XXX_Size() int { + return m.Size() +} +func (m *SuspendImportRPCResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SuspendImportRPCResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SuspendImportRPCResponse proto.InternalMessageInfo + +func (m *SuspendImportRPCResponse) GetAlreadySuspended() bool { + if m != nil { + return m.AlreadySuspended + } + return false } type SwitchModeRequest struct { @@ -121,7 +237,7 @@ func (m *SwitchModeRequest) Reset() { *m = SwitchModeRequest{} } func (m *SwitchModeRequest) String() string { return proto.CompactTextString(m) } func (*SwitchModeRequest) ProtoMessage() {} func (*SwitchModeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{0} + return fileDescriptor_4d076b7935cfab6b, []int{2} } func (m *SwitchModeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -174,7 +290,7 @@ func (m *SwitchModeResponse) Reset() { *m = SwitchModeResponse{} } func (m *SwitchModeResponse) String() string { return proto.CompactTextString(m) } func (*SwitchModeResponse) ProtoMessage() {} func (*SwitchModeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{1} + return fileDescriptor_4d076b7935cfab6b, []int{3} } func (m *SwitchModeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -213,7 +329,7 @@ func (m *GetModeRequest) Reset() { *m = GetModeRequest{} } func (m *GetModeRequest) String() string { return proto.CompactTextString(m) } func (*GetModeRequest) ProtoMessage() {} func (*GetModeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{2} + return fileDescriptor_4d076b7935cfab6b, []int{4} } func (m *GetModeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -253,7 +369,7 @@ func (m *GetModeResponse) Reset() { *m = GetModeResponse{} } func (m *GetModeResponse) String() string { return proto.CompactTextString(m) } func (*GetModeResponse) ProtoMessage() {} func (*GetModeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{3} + return fileDescriptor_4d076b7935cfab6b, []int{5} } func (m *GetModeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -301,7 +417,7 @@ func (m *Range) Reset() { *m = Range{} } func (m *Range) String() string { return proto.CompactTextString(m) } func (*Range) ProtoMessage() {} func (*Range) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{4} + return fileDescriptor_4d076b7935cfab6b, []int{6} } func (m *Range) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -370,7 +486,7 @@ func (m *SSTMeta) Reset() { *m = SSTMeta{} } func (m *SSTMeta) String() string { return proto.CompactTextString(m) } func (*SSTMeta) ProtoMessage() {} func (*SSTMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{5} + return fileDescriptor_4d076b7935cfab6b, []int{7} } func (m *SSTMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -498,7 +614,7 @@ func (m *RewriteRule) Reset() { *m = RewriteRule{} } func (m *RewriteRule) String() string { return proto.CompactTextString(m) } func (*RewriteRule) ProtoMessage() {} func (*RewriteRule) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{6} + return fileDescriptor_4d076b7935cfab6b, []int{8} } func (m *RewriteRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -562,7 +678,7 @@ func (m *UploadRequest) Reset() { *m = UploadRequest{} } func (m *UploadRequest) String() string { return proto.CompactTextString(m) } func (*UploadRequest) ProtoMessage() {} func (*UploadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{7} + return fileDescriptor_4d076b7935cfab6b, []int{9} } func (m *UploadRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -646,7 +762,7 @@ func (m *UploadResponse) Reset() { *m = UploadResponse{} } func (m *UploadResponse) String() string { return proto.CompactTextString(m) } func (*UploadResponse) ProtoMessage() {} func (*UploadResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{8} + return fileDescriptor_4d076b7935cfab6b, []int{10} } func (m *UploadResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -687,7 +803,7 @@ func (m *IngestRequest) Reset() { *m = IngestRequest{} } func (m *IngestRequest) String() string { return proto.CompactTextString(m) } func (*IngestRequest) ProtoMessage() {} func (*IngestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{9} + return fileDescriptor_4d076b7935cfab6b, []int{11} } func (m *IngestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -742,7 +858,7 @@ func (m *MultiIngestRequest) Reset() { *m = MultiIngestRequest{} } func (m *MultiIngestRequest) String() string { return proto.CompactTextString(m) } func (*MultiIngestRequest) ProtoMessage() {} func (*MultiIngestRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{10} + return fileDescriptor_4d076b7935cfab6b, []int{12} } func (m *MultiIngestRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -796,7 +912,7 @@ func (m *IngestResponse) Reset() { *m = IngestResponse{} } func (m *IngestResponse) String() string { return proto.CompactTextString(m) } func (*IngestResponse) ProtoMessage() {} func (*IngestResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{11} + return fileDescriptor_4d076b7935cfab6b, []int{13} } func (m *IngestResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -848,7 +964,7 @@ func (m *CompactRequest) Reset() { *m = CompactRequest{} } func (m *CompactRequest) String() string { return proto.CompactTextString(m) } func (*CompactRequest) ProtoMessage() {} func (*CompactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{12} + return fileDescriptor_4d076b7935cfab6b, []int{14} } func (m *CompactRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -908,7 +1024,7 @@ func (m *CompactResponse) Reset() { *m = CompactResponse{} } func (m *CompactResponse) String() string { return proto.CompactTextString(m) } func (*CompactResponse) ProtoMessage() {} func (*CompactResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{13} + return fileDescriptor_4d076b7935cfab6b, []int{15} } func (m *CompactResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -984,7 +1100,7 @@ func (m *DownloadRequest) Reset() { *m = DownloadRequest{} } func (m *DownloadRequest) String() string { return proto.CompactTextString(m) } func (*DownloadRequest) ProtoMessage() {} func (*DownloadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{14} + return fileDescriptor_4d076b7935cfab6b, []int{16} } func (m *DownloadRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1105,7 +1221,7 @@ func (m *Error) Reset() { *m = Error{} } func (m *Error) String() string { return proto.CompactTextString(m) } func (*Error) ProtoMessage() {} func (*Error) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{15} + return fileDescriptor_4d076b7935cfab6b, []int{17} } func (m *Error) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1174,7 +1290,7 @@ func (m *DownloadResponse) Reset() { *m = DownloadResponse{} } func (m *DownloadResponse) String() string { return proto.CompactTextString(m) } func (*DownloadResponse) ProtoMessage() {} func (*DownloadResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{16} + return fileDescriptor_4d076b7935cfab6b, []int{18} } func (m *DownloadResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1257,7 +1373,7 @@ func (m *SetDownloadSpeedLimitRequest) Reset() { *m = SetDownloadSpeedLi func (m *SetDownloadSpeedLimitRequest) String() string { return proto.CompactTextString(m) } func (*SetDownloadSpeedLimitRequest) ProtoMessage() {} func (*SetDownloadSpeedLimitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{17} + return fileDescriptor_4d076b7935cfab6b, []int{19} } func (m *SetDownloadSpeedLimitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1303,7 +1419,7 @@ func (m *SetDownloadSpeedLimitResponse) Reset() { *m = SetDownloadSpeedL func (m *SetDownloadSpeedLimitResponse) String() string { return proto.CompactTextString(m) } func (*SetDownloadSpeedLimitResponse) ProtoMessage() {} func (*SetDownloadSpeedLimitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{18} + return fileDescriptor_4d076b7935cfab6b, []int{20} } func (m *SetDownloadSpeedLimitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1345,7 +1461,7 @@ func (m *Pair) Reset() { *m = Pair{} } func (m *Pair) String() string { return proto.CompactTextString(m) } func (*Pair) ProtoMessage() {} func (*Pair) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{19} + return fileDescriptor_4d076b7935cfab6b, []int{21} } func (m *Pair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1407,7 +1523,7 @@ func (m *WriteBatch) Reset() { *m = WriteBatch{} } func (m *WriteBatch) String() string { return proto.CompactTextString(m) } func (*WriteBatch) ProtoMessage() {} func (*WriteBatch) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{20} + return fileDescriptor_4d076b7935cfab6b, []int{22} } func (m *WriteBatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1465,7 +1581,7 @@ func (m *WriteRequest) Reset() { *m = WriteRequest{} } func (m *WriteRequest) String() string { return proto.CompactTextString(m) } func (*WriteRequest) ProtoMessage() {} func (*WriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{21} + return fileDescriptor_4d076b7935cfab6b, []int{23} } func (m *WriteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1558,7 +1674,7 @@ func (m *WriteResponse) Reset() { *m = WriteResponse{} } func (m *WriteResponse) String() string { return proto.CompactTextString(m) } func (*WriteResponse) ProtoMessage() {} func (*WriteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{22} + return fileDescriptor_4d076b7935cfab6b, []int{24} } func (m *WriteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1619,7 +1735,7 @@ func (m *RawWriteBatch) Reset() { *m = RawWriteBatch{} } func (m *RawWriteBatch) String() string { return proto.CompactTextString(m) } func (*RawWriteBatch) ProtoMessage() {} func (*RawWriteBatch) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{23} + return fileDescriptor_4d076b7935cfab6b, []int{25} } func (m *RawWriteBatch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1684,7 +1800,7 @@ func (m *RawWriteRequest) Reset() { *m = RawWriteRequest{} } func (m *RawWriteRequest) String() string { return proto.CompactTextString(m) } func (*RawWriteRequest) ProtoMessage() {} func (*RawWriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{24} + return fileDescriptor_4d076b7935cfab6b, []int{26} } func (m *RawWriteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1777,7 +1893,7 @@ func (m *RawWriteResponse) Reset() { *m = RawWriteResponse{} } func (m *RawWriteResponse) String() string { return proto.CompactTextString(m) } func (*RawWriteResponse) ProtoMessage() {} func (*RawWriteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{25} + return fileDescriptor_4d076b7935cfab6b, []int{27} } func (m *RawWriteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1837,7 +1953,7 @@ func (m *DuplicateDetectRequest) Reset() { *m = DuplicateDetectRequest{} func (m *DuplicateDetectRequest) String() string { return proto.CompactTextString(m) } func (*DuplicateDetectRequest) ProtoMessage() {} func (*DuplicateDetectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{26} + return fileDescriptor_4d076b7935cfab6b, []int{28} } func (m *DuplicateDetectRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1914,7 +2030,7 @@ func (m *KvPair) Reset() { *m = KvPair{} } func (m *KvPair) String() string { return proto.CompactTextString(m) } func (*KvPair) ProtoMessage() {} func (*KvPair) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{27} + return fileDescriptor_4d076b7935cfab6b, []int{29} } func (m *KvPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1987,7 +2103,7 @@ func (m *DuplicateDetectResponse) Reset() { *m = DuplicateDetectResponse func (m *DuplicateDetectResponse) String() string { return proto.CompactTextString(m) } func (*DuplicateDetectResponse) ProtoMessage() {} func (*DuplicateDetectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{28} + return fileDescriptor_4d076b7935cfab6b, []int{30} } func (m *DuplicateDetectResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2073,7 +2189,7 @@ func (m *KVMeta) Reset() { *m = KVMeta{} } func (m *KVMeta) String() string { return proto.CompactTextString(m) } func (*KVMeta) ProtoMessage() {} func (*KVMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{29} + return fileDescriptor_4d076b7935cfab6b, []int{31} } func (m *KVMeta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2228,7 +2344,7 @@ func (m *ApplyRequest) Reset() { *m = ApplyRequest{} } func (m *ApplyRequest) String() string { return proto.CompactTextString(m) } func (*ApplyRequest) ProtoMessage() {} func (*ApplyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{30} + return fileDescriptor_4d076b7935cfab6b, []int{32} } func (m *ApplyRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2327,7 +2443,7 @@ func (m *ApplyResponse) Reset() { *m = ApplyResponse{} } func (m *ApplyResponse) String() string { return proto.CompactTextString(m) } func (*ApplyResponse) ProtoMessage() {} func (*ApplyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{31} + return fileDescriptor_4d076b7935cfab6b, []int{33} } func (m *ApplyResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2382,7 +2498,7 @@ func (m *ClearRequest) Reset() { *m = ClearRequest{} } func (m *ClearRequest) String() string { return proto.CompactTextString(m) } func (*ClearRequest) ProtoMessage() {} func (*ClearRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{32} + return fileDescriptor_4d076b7935cfab6b, []int{34} } func (m *ClearRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2429,7 +2545,7 @@ func (m *ClearResponse) Reset() { *m = ClearResponse{} } func (m *ClearResponse) String() string { return proto.CompactTextString(m) } func (*ClearResponse) ProtoMessage() {} func (*ClearResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_4d076b7935cfab6b, []int{33} + return fileDescriptor_4d076b7935cfab6b, []int{35} } func (m *ClearResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2469,6 +2585,8 @@ func init() { proto.RegisterEnum("import_sstpb.SwitchMode", SwitchMode_name, SwitchMode_value) proto.RegisterEnum("import_sstpb.DownloadRequestType", DownloadRequestType_name, DownloadRequestType_value) proto.RegisterEnum("import_sstpb.Pair_OP", Pair_OP_name, Pair_OP_value) + proto.RegisterType((*SuspendImportRPCRequest)(nil), "import_sstpb.SuspendImportRPCRequest") + proto.RegisterType((*SuspendImportRPCResponse)(nil), "import_sstpb.SuspendImportRPCResponse") proto.RegisterType((*SwitchModeRequest)(nil), "import_sstpb.SwitchModeRequest") proto.RegisterType((*SwitchModeResponse)(nil), "import_sstpb.SwitchModeResponse") proto.RegisterType((*GetModeRequest)(nil), "import_sstpb.GetModeRequest") @@ -2509,138 +2627,145 @@ func init() { func init() { proto.RegisterFile("import_sstpb.proto", fileDescriptor_4d076b7935cfab6b) } var fileDescriptor_4d076b7935cfab6b = []byte{ - // 2086 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x73, 0xdc, 0x4a, - 0x15, 0xb6, 0xe6, 0x3d, 0x67, 0x9e, 0xe9, 0xf8, 0xe6, 0x2a, 0x93, 0x97, 0x23, 0x72, 0xef, 0x75, - 0x1c, 0x98, 0x04, 0x07, 0x52, 0xd4, 0xa5, 0x8a, 0xd4, 0xf5, 0x83, 0x1b, 0xe3, 0x3c, 0x8c, 0xc6, - 0x84, 0x05, 0x0b, 0x95, 0xac, 0x69, 0xdb, 0x62, 0x34, 0x92, 0x50, 0xf7, 0x8c, 0x33, 0x1b, 0x7e, - 0x00, 0xbf, 0x80, 0x62, 0x43, 0xc1, 0xea, 0x16, 0x6b, 0x36, 0xfc, 0x83, 0xbb, 0x64, 0xc9, 0x8a, - 0xa2, 0xc2, 0x0f, 0x81, 0xea, 0xd3, 0x2d, 0x8d, 0xa4, 0x8c, 0x3d, 0xb1, 0x0b, 0x56, 0xea, 0x3e, - 0x7d, 0xfa, 0xf4, 0xe9, 0xf3, 0xf8, 0xfa, 0x1c, 0x01, 0x71, 0xc7, 0x61, 0x10, 0x71, 0x8b, 0x31, - 0x1e, 0x1e, 0xf5, 0xc3, 0x28, 0xe0, 0x01, 0x69, 0xa6, 0x69, 0xbd, 0xe6, 0x98, 0x72, 0x3b, 0x5e, - 0xeb, 0xb5, 0x68, 0x14, 0x05, 0xd1, 0x7c, 0x3a, 0x9a, 0x46, 0xa1, 0x93, 0x4c, 0x57, 0x4f, 0x82, - 0x93, 0x00, 0x87, 0x8f, 0xc5, 0x48, 0x51, 0x3b, 0xd1, 0x84, 0x71, 0x1c, 0x2a, 0x02, 0x1c, 0x25, - 0x12, 0x0c, 0x1f, 0xae, 0x0d, 0xce, 0x5c, 0xee, 0x9c, 0xbe, 0x0a, 0x86, 0xd4, 0xa4, 0xbf, 0x99, - 0x50, 0xc6, 0xc9, 0x77, 0xa1, 0x34, 0x0e, 0x86, 0x54, 0xd7, 0xd6, 0xb4, 0xf5, 0xf6, 0xa6, 0xde, - 0xcf, 0x28, 0x99, 0x62, 0x47, 0x2e, 0xf2, 0x08, 0x2a, 0x91, 0xed, 0x9f, 0x50, 0xa6, 0x17, 0xd6, - 0x8a, 0xeb, 0x8d, 0xcd, 0xeb, 0x59, 0x7e, 0x53, 0xac, 0x99, 0x8a, 0xc5, 0x58, 0x05, 0x92, 0x3e, - 0x8f, 0x85, 0x81, 0xcf, 0xa8, 0xd1, 0x85, 0xf6, 0xd7, 0x94, 0xa7, 0x54, 0x30, 0x9e, 0x43, 0x27, - 0xa1, 0x48, 0xa6, 0xcb, 0x69, 0x65, 0x3c, 0x86, 0x32, 0x9e, 0x4c, 0x56, 0xa1, 0xcc, 0xb8, 0x1d, - 0x71, 0xdc, 0xd7, 0x34, 0xe5, 0x84, 0x74, 0xa1, 0x48, 0xfd, 0xa1, 0x5e, 0x40, 0x9a, 0x18, 0x1a, - 0x7f, 0x2a, 0x42, 0x75, 0x30, 0x38, 0x7c, 0x45, 0xb9, 0x4d, 0x08, 0x94, 0x26, 0x13, 0x77, 0xa8, - 0xb6, 0xe0, 0x98, 0x3c, 0x84, 0x32, 0xde, 0x01, 0xf7, 0x9c, 0x73, 0x4b, 0xc9, 0x21, 0x8e, 0x74, - 0x22, 0xe7, 0xe9, 0xa6, 0x5e, 0x5c, 0xd3, 0xd6, 0x5b, 0xa6, 0x9c, 0x90, 0x1b, 0x50, 0xf1, 0xa8, - 0x7f, 0xc2, 0x4f, 0xf5, 0xd2, 0x9a, 0xb6, 0x5e, 0x32, 0xd5, 0x8c, 0x7c, 0x0a, 0x55, 0xe7, 0xd8, - 0xf2, 0xed, 0x31, 0xd5, 0xcb, 0x6b, 0xda, 0x7a, 0xdd, 0xac, 0x38, 0xc7, 0xaf, 0xed, 0x31, 0x25, - 0xb7, 0xa0, 0x1e, 0xd1, 0x13, 0x37, 0xf0, 0x2d, 0x77, 0xa8, 0x57, 0x70, 0x4f, 0x4d, 0x12, 0xf6, - 0x86, 0xe4, 0x19, 0x34, 0xd5, 0x22, 0x0d, 0x03, 0xe7, 0x54, 0xaf, 0x2a, 0xad, 0x54, 0xb8, 0x98, - 0xb8, 0xb6, 0x2b, 0x96, 0xcc, 0x46, 0x34, 0x9f, 0x90, 0x0d, 0xb8, 0x46, 0xfd, 0xa1, 0x35, 0xa2, - 0x33, 0x8b, 0xbe, 0x73, 0xbc, 0x09, 0x73, 0xa7, 0x54, 0xaf, 0xad, 0x69, 0xeb, 0x35, 0xb3, 0x43, - 0xfd, 0xe1, 0x3e, 0x9d, 0xed, 0xc6, 0x64, 0xa1, 0x00, 0x0f, 0xb8, 0xed, 0x59, 0xa3, 0x29, 0xd3, - 0xeb, 0x52, 0x01, 0x24, 0xec, 0x4f, 0x19, 0xb9, 0x07, 0x0d, 0xb9, 0x78, 0x34, 0xe3, 0x94, 0xe9, - 0x80, 0xcb, 0x80, 0xa4, 0x2d, 0x41, 0x21, 0x3f, 0x80, 0x86, 0x1d, 0xba, 0xd6, 0x94, 0x46, 0xcc, - 0x0d, 0x7c, 0xbd, 0x81, 0x6e, 0xbb, 0xde, 0x8f, 0x43, 0xf6, 0xab, 0x83, 0xbd, 0xb7, 0x72, 0xc9, - 0x04, 0x3b, 0x74, 0xd5, 0x58, 0x9c, 0xe9, 0xb8, 0xe1, 0x29, 0x8d, 0x2c, 0x77, 0xaa, 0x37, 0xd1, - 0xfe, 0x35, 0x49, 0xd8, 0x9b, 0x1a, 0xbf, 0x85, 0x86, 0x49, 0xcf, 0x22, 0x97, 0x53, 0x73, 0xe2, - 0x51, 0xf2, 0x00, 0xda, 0x81, 0x27, 0xef, 0x12, 0x46, 0xf4, 0xd8, 0x7d, 0xa7, 0x1c, 0xd6, 0x0c, - 0x3c, 0x71, 0x91, 0x03, 0xa4, 0x09, 0x2e, 0x9f, 0x9e, 0xa5, 0xb9, 0xa4, 0xd7, 0x9b, 0x3e, 0x3d, - 0x9b, 0x73, 0x7d, 0x07, 0x5a, 0x82, 0x8b, 0xbb, 0x63, 0xca, 0xb8, 0x3d, 0x0e, 0xd1, 0x77, 0x25, - 0x64, 0x3a, 0x8c, 0x69, 0xc6, 0xaf, 0xa0, 0xf5, 0x8b, 0xd0, 0x0b, 0xec, 0x61, 0x9c, 0x29, 0x8f, - 0xa0, 0x24, 0x0c, 0x8e, 0xe7, 0x36, 0x36, 0x3f, 0xc9, 0xc5, 0xa4, 0x8c, 0xa6, 0x17, 0x2b, 0x26, - 0x32, 0x91, 0x55, 0x28, 0x0d, 0x6d, 0x6e, 0xcb, 0xe3, 0x05, 0x55, 0xcc, 0xb6, 0xaa, 0x50, 0x76, - 0x4e, 0x27, 0xfe, 0x48, 0x24, 0x41, 0x2c, 0x5c, 0xa5, 0xc5, 0x10, 0x5a, 0x7b, 0x22, 0x6b, 0x78, - 0x7c, 0xdc, 0x06, 0x54, 0x9d, 0xc0, 0xe7, 0xf4, 0x1d, 0x57, 0x27, 0x76, 0x13, 0x73, 0x6e, 0x4b, - 0xba, 0x19, 0x33, 0x90, 0x2f, 0xa0, 0xc8, 0x18, 0x57, 0xd1, 0xba, 0x58, 0x33, 0x53, 0x70, 0x18, - 0x23, 0x20, 0xaf, 0x26, 0x1e, 0x77, 0xaf, 0x7e, 0xd4, 0x43, 0x28, 0x31, 0xc6, 0xe3, 0xfc, 0x3f, - 0xe7, 0x2c, 0x64, 0x31, 0x9e, 0x41, 0x3b, 0x3e, 0x47, 0xa5, 0xf5, 0x03, 0x28, 0x23, 0xa8, 0xa9, - 0x63, 0xda, 0xfd, 0x18, 0xe2, 0x76, 0xc5, 0xd7, 0x94, 0x8b, 0xc6, 0xef, 0x34, 0x68, 0x6f, 0x07, - 0xe3, 0xd0, 0x76, 0x12, 0x0d, 0x93, 0x84, 0xd4, 0x96, 0x26, 0xe4, 0x7d, 0x68, 0x06, 0x13, 0x1e, - 0x4e, 0xb8, 0xe5, 0xd1, 0x29, 0xf5, 0xd0, 0x28, 0x65, 0xb3, 0x21, 0x69, 0x2f, 0x05, 0x29, 0x7d, - 0xdf, 0xe2, 0x92, 0xfb, 0x1a, 0xd7, 0xa0, 0x93, 0xe8, 0xa2, 0x5c, 0xf5, 0x9f, 0x12, 0x74, 0x76, - 0x82, 0x33, 0x3f, 0x1d, 0x1c, 0x3f, 0x56, 0x66, 0xd1, 0xd0, 0x2c, 0x5f, 0x64, 0xf5, 0xcb, 0x31, - 0xf7, 0x07, 0x8c, 0xb3, 0x5d, 0x9f, 0x47, 0x33, 0x69, 0x28, 0x91, 0x5e, 0x11, 0x65, 0x81, 0x37, - 0xa5, 0x43, 0x8b, 0x33, 0x15, 0x8d, 0x10, 0x93, 0x0e, 0x19, 0xf9, 0xde, 0x72, 0xff, 0x6e, 0x95, - 0xbe, 0xfd, 0xe7, 0xbd, 0x15, 0xf4, 0xb2, 0x80, 0x34, 0x84, 0x98, 0x3a, 0x42, 0x0c, 0x8e, 0xc9, - 0x96, 0xc0, 0x10, 0x4c, 0x27, 0x2b, 0x9a, 0x78, 0x54, 0x6f, 0xa1, 0xac, 0x9b, 0x39, 0x43, 0xce, - 0x13, 0x4e, 0xc9, 0x6b, 0x44, 0xa9, 0x1c, 0x7c, 0x0e, 0x1d, 0xc6, 0x83, 0xc8, 0x3e, 0xa1, 0xd6, - 0x91, 0xed, 0x8c, 0x04, 0xa8, 0xb6, 0x51, 0xcc, 0x8d, 0xbe, 0x98, 0x4f, 0xc2, 0xfe, 0x40, 0x2e, - 0x6f, 0xc9, 0x55, 0xb3, 0xcd, 0x32, 0x73, 0xb2, 0x0e, 0xdd, 0x58, 0x80, 0x63, 0x3b, 0xa7, 0x54, - 0x80, 0xdd, 0x35, 0x54, 0x32, 0xe6, 0xdc, 0x16, 0xe4, 0xbd, 0x21, 0xe9, 0x41, 0xdd, 0x65, 0x56, - 0x64, 0x9f, 0x59, 0xa3, 0xa9, 0xde, 0x41, 0xc8, 0xaa, 0xba, 0xcc, 0xb4, 0xcf, 0xf6, 0xa7, 0xe4, - 0x29, 0x34, 0x62, 0xd8, 0xf0, 0x8f, 0x03, 0xbd, 0x8b, 0x2a, 0x90, 0x58, 0x85, 0x6d, 0x09, 0x20, - 0xfe, 0x71, 0x60, 0x82, 0x93, 0x8c, 0xc9, 0x8e, 0xb8, 0x3f, 0x9a, 0xdf, 0xe2, 0xb3, 0x90, 0xea, - 0x04, 0x21, 0xea, 0xfe, 0x85, 0x8e, 0x3a, 0x9c, 0x85, 0x54, 0x58, 0x20, 0x99, 0xa4, 0x23, 0xe7, - 0xfa, 0x92, 0xc8, 0xe9, 0xbd, 0x86, 0x7a, 0xe2, 0x68, 0xf1, 0x06, 0x8d, 0xe8, 0x0c, 0xc3, 0xb7, - 0x6e, 0x8a, 0x21, 0x79, 0x04, 0xe5, 0xa9, 0xed, 0x4d, 0xe8, 0xc5, 0x59, 0x2b, 0x79, 0xbe, 0x2c, - 0xfc, 0x48, 0xfb, 0x59, 0xa9, 0x56, 0xeb, 0xd6, 0xcd, 0xe2, 0x24, 0xf2, 0x0c, 0x13, 0xca, 0x98, - 0x31, 0x44, 0x87, 0xea, 0x98, 0x32, 0x66, 0xab, 0xcc, 0xa8, 0x9b, 0xf1, 0x94, 0x3c, 0x86, 0x86, - 0x30, 0x29, 0xb5, 0x64, 0xc2, 0x15, 0x16, 0x26, 0x1c, 0x20, 0x0b, 0x8e, 0x8d, 0xf7, 0x1a, 0x74, - 0xe7, 0xf7, 0x57, 0x09, 0xfb, 0x78, 0x79, 0xde, 0xa9, 0x40, 0x51, 0xd9, 0x77, 0x13, 0x6a, 0x2e, - 0xb3, 0xe8, 0x38, 0xe4, 0x33, 0x3c, 0x13, 0xdd, 0xb6, 0x2b, 0xa6, 0x22, 0x87, 0xa5, 0x2e, 0xc5, - 0x45, 0xb2, 0xd2, 0x08, 0x30, 0x7f, 0x54, 0x4b, 0x8b, 0x1f, 0xd5, 0x72, 0xe6, 0x51, 0x8d, 0x21, - 0xa9, 0xb2, 0x1c, 0x92, 0x9e, 0xc3, 0xed, 0x01, 0xe5, 0xf1, 0x35, 0x07, 0x21, 0xa5, 0xc3, 0x97, - 0xee, 0xd8, 0x4d, 0x70, 0xe6, 0x1e, 0x34, 0x98, 0x20, 0x5a, 0x9e, 0xa0, 0xe2, 0xad, 0x4b, 0x26, - 0xb0, 0x84, 0xcf, 0xb8, 0x07, 0x77, 0xce, 0x11, 0xa0, 0xc0, 0x21, 0x84, 0xd2, 0x81, 0xed, 0x46, - 0x69, 0x87, 0x37, 0xa5, 0xc3, 0x57, 0xd3, 0x0e, 0x6f, 0x2a, 0xcf, 0x92, 0xcf, 0xa0, 0x10, 0xc8, - 0x07, 0xa8, 0x9d, 0x57, 0x5d, 0xc8, 0xe9, 0xbf, 0x39, 0x30, 0x0b, 0x41, 0x68, 0xdc, 0x84, 0xc2, - 0x9b, 0x03, 0x52, 0x85, 0xe2, 0xc1, 0x84, 0x77, 0x57, 0x08, 0x40, 0x65, 0x87, 0x7a, 0x94, 0xd3, - 0xae, 0x66, 0x0c, 0x00, 0x7e, 0x29, 0x52, 0x74, 0xcb, 0xe6, 0xce, 0x29, 0xbe, 0xa9, 0xc1, 0x78, - 0xec, 0x72, 0x0b, 0xd1, 0x08, 0xdf, 0x71, 0x49, 0x38, 0x64, 0x64, 0x1d, 0xca, 0xa1, 0xed, 0x46, - 0x31, 0x7a, 0x93, 0x0f, 0xcf, 0x33, 0x25, 0x83, 0xf1, 0x67, 0x0d, 0x9a, 0x28, 0xf5, 0x4a, 0xaf, - 0xdf, 0x13, 0x28, 0x1f, 0x09, 0x6d, 0x54, 0xd8, 0xe5, 0xea, 0xb7, 0xb9, 0xb6, 0x2f, 0x56, 0x4c, - 0xc9, 0x78, 0x19, 0x48, 0x9e, 0xbf, 0xa2, 0x27, 0xd0, 0x52, 0x3a, 0xaa, 0x70, 0x7d, 0x98, 0x7d, - 0x5f, 0x2e, 0x0a, 0xb1, 0x47, 0x50, 0x16, 0xaa, 0x2e, 0x79, 0xc8, 0x24, 0x8f, 0xa8, 0x05, 0x4c, - 0xfb, 0x2c, 0x65, 0xe5, 0x2e, 0x14, 0x39, 0xf7, 0x94, 0x7d, 0xc5, 0xf0, 0xe3, 0x4d, 0x4b, 0xda, - 0x50, 0x48, 0x40, 0xbe, 0xc0, 0x99, 0xf1, 0x8d, 0x06, 0x9d, 0x58, 0xfa, 0x95, 0xac, 0xfd, 0x34, - 0x6b, 0xed, 0x5b, 0xf9, 0x24, 0x3d, 0xfb, 0x9f, 0x19, 0xfc, 0xd7, 0xd0, 0x9d, 0x6b, 0xfa, 0x7f, - 0xb6, 0xf9, 0xdf, 0x34, 0xb8, 0xb1, 0x33, 0x09, 0x3d, 0xd7, 0xb1, 0x39, 0xdd, 0xa1, 0x9c, 0x3a, - 0x57, 0xaa, 0x57, 0x6e, 0x41, 0x1d, 0xbb, 0x00, 0x51, 0x13, 0xaa, 0xcc, 0xab, 0x21, 0x61, 0x9f, - 0xce, 0x44, 0x39, 0xae, 0x0a, 0x64, 0x34, 0x42, 0xd3, 0xac, 0xc8, 0xb2, 0x58, 0xc0, 0x98, 0xa8, - 0x21, 0x03, 0xdf, 0x9b, 0x21, 0x06, 0xd5, 0xcc, 0xea, 0x88, 0xce, 0xde, 0xf8, 0xde, 0x8c, 0x18, - 0xd0, 0x1a, 0xbb, 0xbe, 0x35, 0x4f, 0x32, 0x09, 0x46, 0x8d, 0xb1, 0xeb, 0x6f, 0xab, 0x3c, 0x33, - 0x5e, 0x41, 0x65, 0x7f, 0x7a, 0x29, 0x18, 0xc8, 0xa4, 0x6d, 0x31, 0x9b, 0xb6, 0xc6, 0x5f, 0x34, - 0xf8, 0xf4, 0x03, 0x53, 0x28, 0xf3, 0x7f, 0x7f, 0xde, 0x1b, 0x5c, 0x50, 0x59, 0xc5, 0x6d, 0x01, - 0xba, 0xe1, 0x09, 0xd4, 0xb1, 0x25, 0x48, 0x3d, 0x0c, 0x0b, 0xbd, 0x26, 0x4c, 0x20, 0x77, 0x6c, - 0xc4, 0xc1, 0x5d, 0x44, 0xc7, 0xad, 0x66, 0xb9, 0xe5, 0x55, 0x63, 0xe4, 0xf8, 0x63, 0x11, 0x2a, - 0xfb, 0x6f, 0xe3, 0xd6, 0x0a, 0xeb, 0x10, 0x2d, 0x55, 0x87, 0xdc, 0x87, 0x26, 0xbe, 0x14, 0x56, - 0x70, 0x7c, 0xcc, 0x28, 0xc7, 0x56, 0xa1, 0x64, 0x36, 0x90, 0xf6, 0x06, 0x49, 0x29, 0x9c, 0x2f, - 0x64, 0x70, 0x3e, 0xd9, 0xaa, 0x56, 0x9b, 0xa9, 0xad, 0x2f, 0x25, 0x4b, 0x1b, 0x0a, 0xce, 0x31, - 0xda, 0xaf, 0x6e, 0x16, 0x9c, 0x63, 0x61, 0x56, 0x97, 0x59, 0x43, 0x84, 0x4a, 0xe5, 0xc8, 0x9a, - 0xcb, 0x24, 0x74, 0x0a, 0x27, 0xcb, 0xd0, 0xe0, 0x71, 0x4b, 0x53, 0xc5, 0xf9, 0x21, 0x23, 0x77, - 0x40, 0x94, 0x5f, 0xf8, 0x7e, 0x26, 0x1e, 0xae, 0x2b, 0xca, 0x21, 0xcb, 0x06, 0x55, 0xe5, 0xfc, - 0xa0, 0xaa, 0x66, 0x82, 0xea, 0x06, 0x54, 0xd8, 0xa9, 0xbd, 0xf9, 0xc3, 0x67, 0xd8, 0x83, 0x35, - 0x4d, 0x35, 0x13, 0x6d, 0x9a, 0x94, 0xc6, 0x7c, 0x3b, 0x64, 0xa7, 0x01, 0x2a, 0x24, 0x5b, 0xb0, - 0x0e, 0x2e, 0x0c, 0x14, 0xfd, 0x90, 0x91, 0x2d, 0xe8, 0x3a, 0xc1, 0x38, 0x8c, 0x28, 0x13, 0x1d, - 0x94, 0x2c, 0x65, 0x5a, 0xf8, 0x78, 0x7c, 0x9a, 0x14, 0x40, 0xf3, 0x75, 0x2c, 0x60, 0x3a, 0x4e, - 0x96, 0x60, 0xfc, 0xb5, 0x08, 0xcd, 0xaf, 0xc2, 0xd0, 0x9b, 0xc5, 0xf9, 0xb4, 0x9e, 0x41, 0x9b, - 0xbc, 0x77, 0xdf, 0xca, 0xf7, 0x13, 0xa1, 0x66, 0x23, 0xce, 0xe0, 0xe6, 0xc2, 0x40, 0x78, 0x9b, - 0x4a, 0xe0, 0x0f, 0x2a, 0xce, 0xc2, 0x15, 0x2a, 0xce, 0x9f, 0x40, 0x2b, 0x2d, 0x83, 0xe9, 0x2d, - 0x3c, 0xf7, 0x7c, 0x21, 0x66, 0x33, 0xb5, 0x9d, 0x2d, 0x2c, 0x38, 0xcb, 0x0b, 0x0b, 0xce, 0x05, - 0xb5, 0x6d, 0xf1, 0x52, 0xb5, 0x6d, 0x0a, 0x94, 0x4a, 0xcb, 0x40, 0x29, 0x57, 0xc1, 0x36, 0x3e, - 0xa6, 0x82, 0x35, 0x46, 0xd0, 0x52, 0x5e, 0xbb, 0x6a, 0x71, 0x96, 0x40, 0x75, 0x61, 0x19, 0x54, - 0x1b, 0x9f, 0x43, 0x73, 0xdb, 0xa3, 0x76, 0x14, 0x87, 0xc8, 0x0d, 0xa8, 0xa4, 0xda, 0xee, 0xba, - 0xa9, 0x66, 0xc6, 0x97, 0xd0, 0x52, 0x7c, 0x97, 0x7e, 0x0e, 0x36, 0x1e, 0x00, 0xcc, 0x7f, 0xe5, - 0x88, 0x92, 0xe6, 0x75, 0x10, 0x8d, 0x6d, 0x4f, 0x96, 0x37, 0x7b, 0xb8, 0xad, 0xab, 0x6d, 0x3c, - 0x86, 0xeb, 0x0b, 0xca, 0x72, 0xc1, 0xf2, 0x92, 0x9e, 0xd8, 0xce, 0xac, 0xbb, 0x42, 0x9a, 0x50, - 0xdb, 0xa7, 0x33, 0x16, 0xda, 0x0e, 0xed, 0x6a, 0x9b, 0x7f, 0xa8, 0x41, 0x5d, 0xee, 0x1e, 0x0c, - 0x0e, 0xc9, 0xcf, 0x33, 0x87, 0xdc, 0x3b, 0xf7, 0x4f, 0x92, 0x14, 0xdd, 0x5b, 0x3b, 0x9f, 0x41, - 0x15, 0x78, 0x2b, 0xe4, 0x05, 0x54, 0xd5, 0xff, 0x2a, 0x72, 0x3b, 0xcb, 0x9e, 0xfd, 0xb1, 0xd5, - 0xbb, 0x73, 0xce, 0x6a, 0x22, 0xe9, 0x6b, 0xa8, 0xc8, 0xdf, 0x00, 0x24, 0xf7, 0x68, 0x67, 0xfe, - 0x3c, 0xf4, 0x6e, 0x2f, 0x5e, 0x8c, 0xc5, 0xac, 0x6b, 0x64, 0x17, 0x2a, 0xb2, 0xd5, 0xce, 0x0b, - 0xca, 0x34, 0xfa, 0x79, 0x41, 0xd9, 0xee, 0x5c, 0xde, 0x4c, 0x35, 0xbb, 0xf9, 0x9b, 0x65, 0xfb, - 0xf1, 0xfc, 0xcd, 0xf2, 0x1d, 0xf2, 0x0a, 0x89, 0xe0, 0x93, 0x85, 0x75, 0x32, 0xd9, 0xc8, 0x19, - 0xf8, 0x82, 0x6a, 0xbc, 0xf7, 0xe8, 0xa3, 0x78, 0x93, 0x33, 0xf7, 0xa1, 0x16, 0xaf, 0x93, 0x3b, - 0x17, 0x36, 0x76, 0xbd, 0xbb, 0xe7, 0x2d, 0x27, 0xc2, 0x76, 0xa0, 0x8c, 0x75, 0x0e, 0xe9, 0x2d, - 0x28, 0x5e, 0x63, 0x31, 0xb7, 0x16, 0xae, 0xa5, 0xfc, 0xf2, 0x0a, 0x6a, 0x71, 0xc1, 0x94, 0x57, - 0x29, 0x57, 0xf2, 0xe5, 0x55, 0xca, 0xd7, 0x59, 0x28, 0xee, 0x0d, 0x34, 0x52, 0xbf, 0x6f, 0x48, - 0x2e, 0x58, 0x3f, 0xfc, 0xb3, 0xb3, 0xd4, 0xe1, 0x47, 0xd0, 0xc9, 0x15, 0x16, 0xe4, 0x41, 0xce, - 0x34, 0x0b, 0x4b, 0xb0, 0xde, 0x67, 0x4b, 0xb8, 0xe2, 0x13, 0x9e, 0x68, 0x64, 0x0b, 0xca, 0x88, - 0x5b, 0x79, 0x4b, 0xa6, 0x9f, 0xa0, 0xbc, 0x25, 0x33, 0x40, 0x87, 0x89, 0x02, 0x08, 0x33, 0x3f, - 0x75, 0x05, 0xaa, 0xe7, 0x04, 0xa5, 0x81, 0x2a, 0x2f, 0x28, 0x03, 0x4e, 0xc6, 0xca, 0xd6, 0xe7, - 0xff, 0xf8, 0xa6, 0xa6, 0x7d, 0xfb, 0xfe, 0xae, 0xf6, 0xf7, 0xf7, 0x77, 0xb5, 0x7f, 0xbd, 0xbf, - 0xab, 0xfd, 0xfe, 0xdf, 0x77, 0x57, 0xa0, 0x1b, 0x44, 0x27, 0x7d, 0xee, 0x8e, 0xa6, 0xfd, 0xd1, - 0x14, 0xff, 0x95, 0x1f, 0x55, 0xf0, 0xf3, 0xf4, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x65, 0xb1, - 0x1f, 0xf7, 0xb5, 0x17, 0x00, 0x00, + // 2197 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x4b, 0x73, 0xdb, 0xc8, + 0x11, 0x16, 0xf8, 0x66, 0x13, 0x7c, 0x78, 0xac, 0x95, 0x69, 0xfa, 0x8d, 0x78, 0xbd, 0xb2, 0x94, + 0xc8, 0x8e, 0xbc, 0x71, 0xa5, 0x36, 0x55, 0x71, 0xad, 0x1e, 0xb1, 0x15, 0xf9, 0xa1, 0x80, 0x8a, + 0x73, 0xc8, 0x01, 0x05, 0x81, 0x23, 0x09, 0x21, 0x08, 0x20, 0x98, 0x21, 0x65, 0x5e, 0xf2, 0x03, + 0x72, 0xcb, 0x2d, 0xb7, 0x54, 0x72, 0xda, 0xca, 0x39, 0x97, 0xfc, 0x83, 0x3d, 0xe6, 0x98, 0x53, + 0x2a, 0xe5, 0xfc, 0x90, 0x4d, 0x4d, 0xcf, 0x00, 0x04, 0x60, 0x4a, 0xb4, 0x55, 0xc9, 0x89, 0x98, + 0xee, 0x9e, 0x9e, 0x9e, 0x7e, 0x7c, 0xd3, 0x33, 0x04, 0xe2, 0x8e, 0xc2, 0x20, 0xe2, 0x16, 0x63, + 0x3c, 0x3c, 0xda, 0x08, 0xa3, 0x80, 0x07, 0x44, 0x4f, 0xd3, 0x7a, 0xfa, 0x88, 0x72, 0x3b, 0xe6, + 0xf5, 0x9a, 0x34, 0x8a, 0x82, 0x68, 0x36, 0x1c, 0x4e, 0xa2, 0xd0, 0x49, 0x86, 0xcb, 0x27, 0xc1, + 0x49, 0x80, 0x9f, 0x8f, 0xc4, 0x97, 0xa2, 0xb6, 0xa3, 0x31, 0xe3, 0xf8, 0xa9, 0x08, 0x70, 0x94, + 0x68, 0x30, 0xfe, 0xa0, 0xc1, 0xb5, 0xfe, 0x98, 0x85, 0xd4, 0x1f, 0xec, 0xe1, 0xb2, 0xe6, 0xc1, + 0xb6, 0x49, 0x7f, 0x3b, 0xa6, 0x8c, 0x93, 0x2f, 0x61, 0x85, 0x9d, 0x06, 0x63, 0x6f, 0x60, 0x31, + 0x29, 0x61, 0x49, 0xcb, 0x58, 0x57, 0xbb, 0xab, 0xad, 0xd6, 0xcc, 0x65, 0xc9, 0xcd, 0x4c, 0x67, + 0x64, 0x15, 0x3a, 0x83, 0x71, 0x64, 0x73, 0x37, 0xf0, 0x2d, 0xd7, 0xb7, 0x18, 0x75, 0x58, 0xb7, + 0x70, 0x57, 0x5b, 0x2d, 0x99, 0xad, 0x98, 0xbe, 0xe7, 0xf7, 0xa9, 0xc3, 0xc8, 0x0a, 0x54, 0x1c, + 0xdb, 0xf3, 0x68, 0xd4, 0x2d, 0xde, 0xd5, 0x56, 0xeb, 0xa6, 0x1a, 0x19, 0xcf, 0xa1, 0xfb, 0xa1, + 0x49, 0x2c, 0x0c, 0x7c, 0x46, 0xc9, 0x3a, 0x5c, 0xb1, 0xbd, 0x88, 0xda, 0x83, 0x69, 0x6c, 0x14, + 0x1d, 0x28, 0x73, 0x3a, 0x8a, 0xd1, 0x8f, 0xe9, 0x86, 0x0f, 0x57, 0xfa, 0x67, 0x2e, 0x77, 0x4e, + 0x5f, 0x05, 0x03, 0x1a, 0xef, 0xea, 0xfb, 0x50, 0x1a, 0x05, 0x03, 0x8a, 0x93, 0x5a, 0x9b, 0xdd, + 0x8d, 0x4c, 0x04, 0x52, 0xe2, 0x28, 0x45, 0xd6, 0xa1, 0x12, 0xd9, 0xfe, 0x09, 0x15, 0x7b, 0x28, + 0xae, 0x36, 0x36, 0xaf, 0x66, 0xe5, 0x4d, 0xc1, 0x33, 0x95, 0x88, 0xb1, 0x0c, 0x24, 0xbd, 0x9e, + 0x34, 0xd9, 0xe8, 0x40, 0xeb, 0x39, 0xe5, 0x29, 0x13, 0x8c, 0x67, 0xd0, 0x4e, 0x28, 0x6a, 0x5f, + 0x9f, 0x64, 0x95, 0xf1, 0x08, 0xca, 0xb8, 0x32, 0x59, 0x86, 0x32, 0xe3, 0x76, 0xc4, 0x71, 0x9e, + 0x6e, 0xca, 0x01, 0xe9, 0x40, 0x91, 0xfa, 0x03, 0xf4, 0xba, 0x6e, 0x8a, 0x4f, 0xe3, 0xcf, 0x45, + 0xa8, 0xf6, 0xfb, 0x87, 0xaf, 0x28, 0xb7, 0x09, 0x81, 0xd2, 0x78, 0xec, 0x0e, 0xd4, 0x14, 0xfc, + 0x26, 0x0f, 0xa1, 0x8c, 0x7b, 0xc0, 0x39, 0xe7, 0xec, 0x52, 0x4a, 0x88, 0x25, 0x9d, 0xc8, 0x79, + 0xb2, 0x89, 0x41, 0x6b, 0x9a, 0x72, 0x20, 0x62, 0xe9, 0x51, 0xff, 0x84, 0x9f, 0x76, 0x4b, 0x18, + 0x6b, 0x35, 0x22, 0xd7, 0xa0, 0xea, 0x1c, 0x5b, 0xbe, 0x3d, 0xa2, 0xdd, 0xb2, 0x0a, 0xf2, 0xf1, + 0x6b, 0x7b, 0x44, 0xc9, 0x0d, 0xa8, 0x47, 0xf4, 0x04, 0x93, 0x64, 0xd0, 0xad, 0xe0, 0x9c, 0x9a, + 0x24, 0xec, 0x0d, 0xc8, 0x53, 0xd0, 0x15, 0x93, 0x86, 0x81, 0x73, 0xda, 0xad, 0x2a, 0xab, 0x54, + 0x2d, 0x98, 0xc8, 0xdb, 0x15, 0x2c, 0xb3, 0x11, 0xcd, 0x06, 0x64, 0x0d, 0xae, 0x88, 0x34, 0x1d, + 0xd2, 0xa9, 0x45, 0xdf, 0x39, 0xde, 0x98, 0xb9, 0x13, 0xda, 0xad, 0x61, 0x76, 0xb4, 0xa9, 0x3f, + 0xd8, 0xa7, 0xd3, 0xdd, 0x98, 0x2c, 0x0c, 0xe0, 0x01, 0xb7, 0x3d, 0x6b, 0x38, 0x61, 0xdd, 0xba, + 0x34, 0x00, 0x09, 0xfb, 0x13, 0x46, 0xee, 0x40, 0x43, 0x32, 0x8f, 0xa6, 0x9c, 0xb2, 0x2e, 0x20, + 0x1b, 0x90, 0xb4, 0x25, 0x28, 0xe4, 0x4b, 0x68, 0xd8, 0xa1, 0x6b, 0x4d, 0x68, 0xc4, 0xdc, 0xc0, + 0xef, 0x36, 0x30, 0x6c, 0x57, 0x37, 0xe2, 0x7a, 0xfc, 0xfa, 0x60, 0xef, 0xad, 0x64, 0x99, 0x60, + 0x87, 0xae, 0xfa, 0x16, 0x6b, 0x3a, 0x6e, 0x78, 0x4a, 0x23, 0xcb, 0x9d, 0x74, 0x75, 0xf4, 0x7f, + 0x4d, 0x12, 0xf6, 0x26, 0xc6, 0xef, 0xa0, 0x61, 0xd2, 0xb3, 0xc8, 0xe5, 0xd4, 0x1c, 0x7b, 0x94, + 0xdc, 0x87, 0x56, 0xe0, 0xc9, 0xbd, 0x84, 0x11, 0x3d, 0x76, 0xdf, 0xa9, 0x80, 0xe9, 0x81, 0x27, + 0x36, 0x72, 0x80, 0x34, 0x21, 0xe5, 0xd3, 0xb3, 0xb4, 0x94, 0x8c, 0xba, 0xee, 0xd3, 0xb3, 0x99, + 0xd4, 0xf7, 0xa0, 0x29, 0xa4, 0xb8, 0x3b, 0xa2, 0x8c, 0xdb, 0xa3, 0x10, 0x63, 0x57, 0x42, 0xa1, + 0xc3, 0x98, 0x66, 0xfc, 0x1a, 0x9a, 0xbf, 0x0c, 0xbd, 0xc0, 0x1e, 0xc4, 0x95, 0xb2, 0x0e, 0x25, + 0xe1, 0x70, 0x5c, 0xb7, 0xb1, 0xf9, 0x59, 0x2e, 0x27, 0x65, 0x36, 0xbd, 0x58, 0x32, 0x51, 0x88, + 0x2c, 0x43, 0x69, 0x60, 0x73, 0x5b, 0x2e, 0x2f, 0xa8, 0x62, 0xb4, 0x55, 0x85, 0xb2, 0x73, 0x3a, + 0xf6, 0x87, 0xa2, 0x08, 0x62, 0xe5, 0xaa, 0x2c, 0x06, 0xd0, 0xdc, 0x13, 0x55, 0xc3, 0xe3, 0xe5, + 0xd6, 0xa0, 0xea, 0x04, 0x3e, 0xa7, 0xef, 0xb8, 0x5a, 0xb1, 0x93, 0xb8, 0x73, 0x5b, 0xd2, 0xcd, + 0x58, 0x80, 0x7c, 0x01, 0x45, 0xc6, 0xb8, 0xca, 0xd6, 0xf9, 0x96, 0x99, 0x42, 0xc2, 0x18, 0x02, + 0x79, 0x35, 0xf6, 0xb8, 0x7b, 0xf9, 0xa5, 0x1e, 0x42, 0x89, 0x31, 0x1e, 0xd7, 0xff, 0x39, 0x6b, + 0xa1, 0x88, 0xf1, 0x14, 0x5a, 0xf1, 0x3a, 0xaa, 0xac, 0xef, 0x43, 0x19, 0x11, 0x5b, 0x2d, 0xd3, + 0xda, 0x88, 0xf1, 0x7b, 0x57, 0xfc, 0x9a, 0x92, 0x69, 0xfc, 0x5e, 0x83, 0xd6, 0x76, 0x30, 0x0a, + 0x6d, 0x27, 0xb1, 0x30, 0x29, 0x48, 0x6d, 0x61, 0x41, 0xde, 0x03, 0x3d, 0x18, 0xf3, 0x70, 0xcc, + 0x2d, 0x8f, 0x4e, 0xa8, 0x87, 0x4e, 0x29, 0x9b, 0x0d, 0x49, 0x7b, 0x29, 0x48, 0xe9, 0xfd, 0x16, + 0x17, 0xec, 0xd7, 0xb8, 0x02, 0xed, 0xc4, 0x16, 0x15, 0xaa, 0xef, 0x4a, 0xd0, 0xde, 0x09, 0xce, + 0xfc, 0x74, 0x72, 0xfc, 0x44, 0xb9, 0x45, 0x43, 0xb7, 0x7c, 0x91, 0xb5, 0x2f, 0x27, 0xbc, 0xd1, + 0x67, 0x9c, 0xed, 0xfa, 0x3c, 0x9a, 0x4a, 0x47, 0x89, 0xf2, 0x8a, 0x28, 0x0b, 0xbc, 0x09, 0x1d, + 0x58, 0x9c, 0xa9, 0x6c, 0x84, 0x98, 0x74, 0xc8, 0xc8, 0x0f, 0x16, 0xc7, 0x77, 0xab, 0xf4, 0xed, + 0xbf, 0xee, 0x2c, 0x61, 0x94, 0x05, 0xa4, 0x21, 0xc4, 0xd4, 0x11, 0x62, 0xf0, 0x9b, 0x6c, 0x09, + 0x0c, 0xc1, 0x72, 0xb2, 0xa2, 0xb1, 0x47, 0xbb, 0x4d, 0xd4, 0x75, 0x3d, 0xe7, 0xc8, 0x59, 0xc1, + 0x29, 0x7d, 0x8d, 0x28, 0x55, 0x83, 0xcf, 0xa0, 0xcd, 0x78, 0x10, 0xd9, 0x27, 0xd4, 0x3a, 0xb2, + 0x9d, 0xa1, 0x00, 0xd5, 0x16, 0xaa, 0x59, 0xd9, 0x10, 0xe3, 0x71, 0xb8, 0xd1, 0x97, 0xec, 0x2d, + 0xc9, 0x35, 0x5b, 0x2c, 0x33, 0x16, 0x87, 0x61, 0xac, 0xc0, 0xb1, 0x9d, 0x53, 0x2a, 0xc0, 0xee, + 0x0a, 0x1a, 0x19, 0x4b, 0x6e, 0x0b, 0xf2, 0xde, 0x80, 0xf4, 0xa0, 0xee, 0x32, 0x2b, 0xb2, 0xcf, + 0xac, 0xe1, 0xa4, 0xdb, 0x46, 0xc8, 0xaa, 0xba, 0xcc, 0xb4, 0xcf, 0xf6, 0x27, 0xe4, 0x09, 0x34, + 0x62, 0xd8, 0xf0, 0x8f, 0x83, 0x6e, 0x07, 0x4d, 0x20, 0xb1, 0x09, 0xdb, 0x12, 0x40, 0xfc, 0xe3, + 0xc0, 0x04, 0x27, 0xf9, 0x26, 0x3b, 0x62, 0xff, 0xe8, 0x7e, 0x8b, 0x4f, 0x43, 0xda, 0x25, 0x08, + 0x51, 0xf7, 0x2e, 0x0c, 0xd4, 0xe1, 0x34, 0xa4, 0xc2, 0x03, 0xc9, 0x20, 0x9d, 0x39, 0x57, 0x17, + 0x64, 0x4e, 0xef, 0x35, 0xd4, 0x93, 0x40, 0x8b, 0x33, 0x68, 0x48, 0xa7, 0x98, 0xbe, 0x75, 0x53, + 0x7c, 0x92, 0x75, 0x28, 0x4f, 0x6c, 0x6f, 0x4c, 0x2f, 0xae, 0x5a, 0x29, 0xf3, 0x55, 0xe1, 0xc7, + 0xda, 0xcf, 0x4b, 0xb5, 0x5a, 0xa7, 0x6e, 0x16, 0xc7, 0x91, 0x67, 0x98, 0x50, 0xc6, 0x8a, 0x21, + 0x5d, 0xa8, 0x8e, 0x28, 0x63, 0xb6, 0xaa, 0x8c, 0xba, 0x19, 0x0f, 0xc9, 0x23, 0x68, 0x08, 0x97, + 0x52, 0x4b, 0x16, 0x5c, 0x61, 0x6e, 0xc1, 0x01, 0x8a, 0xe0, 0xb7, 0xf1, 0x5e, 0x83, 0xce, 0x6c, + 0xff, 0xaa, 0x60, 0x1f, 0x2d, 0xae, 0x3b, 0x95, 0x28, 0xaa, 0xfa, 0xae, 0x43, 0xcd, 0x65, 0x16, + 0x1d, 0x85, 0x7c, 0x8a, 0x6b, 0x62, 0xd8, 0x76, 0xc5, 0x50, 0xd4, 0xb0, 0xb4, 0xa5, 0x38, 0x4f, + 0x57, 0x1a, 0x01, 0x66, 0x87, 0x6a, 0x69, 0xfe, 0xa1, 0x5a, 0xce, 0x1c, 0xaa, 0x31, 0x24, 0x55, + 0x16, 0x43, 0xd2, 0x33, 0xb8, 0xd9, 0xa7, 0x3c, 0xde, 0x66, 0x3f, 0xa4, 0x74, 0xf0, 0xd2, 0x1d, + 0xb9, 0x09, 0xce, 0xdc, 0x81, 0x06, 0x13, 0x44, 0xcb, 0x13, 0x54, 0xdc, 0x75, 0xc9, 0x04, 0x96, + 0xc8, 0x19, 0x77, 0xe0, 0xd6, 0x39, 0x0a, 0x14, 0x38, 0x84, 0x50, 0x3a, 0xb0, 0xdd, 0x28, 0x1d, + 0x70, 0x5d, 0x06, 0x7c, 0x39, 0x1d, 0x70, 0x5d, 0x45, 0x96, 0x7c, 0x0e, 0x85, 0x40, 0x1e, 0x40, + 0xad, 0xbc, 0xe9, 0x42, 0xcf, 0xc6, 0x9b, 0x03, 0xb3, 0x10, 0x84, 0xc6, 0x75, 0x28, 0xbc, 0x39, + 0x20, 0x55, 0x28, 0x1e, 0x8c, 0x79, 0x67, 0x89, 0x00, 0x54, 0x76, 0xa8, 0x47, 0x39, 0xed, 0x68, + 0x46, 0x1f, 0xe0, 0x57, 0xa2, 0x44, 0xb7, 0x6c, 0xee, 0x9c, 0xe2, 0x99, 0x1a, 0x8c, 0x46, 0x2e, + 0xb7, 0x54, 0x63, 0x5a, 0x32, 0x6b, 0x92, 0x70, 0x28, 0x9a, 0xd1, 0x72, 0x68, 0xbb, 0x51, 0x8c, + 0xde, 0xe4, 0xc3, 0xf5, 0x4c, 0x29, 0x60, 0xfc, 0x45, 0x03, 0x1d, 0xb5, 0x5e, 0xea, 0xf4, 0x7b, + 0x0c, 0xe5, 0x23, 0x61, 0x8d, 0x4a, 0xbb, 0x5c, 0xff, 0x36, 0xb3, 0xf6, 0xc5, 0x92, 0x29, 0x05, + 0x3f, 0x05, 0x92, 0x67, 0xa7, 0xe8, 0x09, 0x34, 0x95, 0x8d, 0x2a, 0x5d, 0x1f, 0x66, 0xcf, 0x97, + 0x8b, 0x52, 0x6c, 0x1d, 0xca, 0xc2, 0xd4, 0x05, 0x07, 0x99, 0x94, 0x11, 0xbd, 0x80, 0x69, 0x9f, + 0xa5, 0xbc, 0xdc, 0x81, 0x22, 0xe7, 0x9e, 0xf2, 0xaf, 0xf8, 0xfc, 0x78, 0xd7, 0x92, 0x16, 0x14, + 0x12, 0x90, 0x2f, 0x70, 0x66, 0x7c, 0xa3, 0x41, 0x3b, 0xd6, 0x7e, 0x29, 0x6f, 0x3f, 0xc9, 0x7a, + 0xfb, 0x46, 0xbe, 0x48, 0xcf, 0xfe, 0x67, 0x0e, 0xff, 0x0d, 0x74, 0x66, 0x96, 0xfe, 0x9f, 0x7d, + 0xfe, 0x77, 0x0d, 0x56, 0x76, 0xc6, 0xa1, 0xe7, 0x3a, 0x36, 0xa7, 0x3b, 0x94, 0x53, 0xe7, 0x52, + 0xfd, 0xca, 0x0d, 0xa8, 0xe3, 0x2d, 0x40, 0xf4, 0x84, 0xaa, 0xf2, 0x6a, 0x48, 0xd8, 0xa7, 0x53, + 0xd1, 0x8e, 0xab, 0x06, 0x19, 0x9d, 0xa0, 0x9b, 0x15, 0xd9, 0x16, 0x0b, 0x18, 0x13, 0x3d, 0x64, + 0xe0, 0x7b, 0x53, 0xc4, 0xa0, 0x9a, 0x59, 0x1d, 0xd2, 0xe9, 0x1b, 0xdf, 0x9b, 0x12, 0x03, 0x9a, + 0x23, 0xd7, 0xb7, 0x66, 0x45, 0x26, 0xc1, 0xa8, 0x31, 0x72, 0xfd, 0x6d, 0x55, 0x67, 0xc6, 0x2b, + 0xa8, 0xec, 0x4f, 0x3e, 0x09, 0x06, 0x32, 0x65, 0x5b, 0xcc, 0x96, 0xad, 0xf1, 0x57, 0x0d, 0xae, + 0x7d, 0xe0, 0x0a, 0xe5, 0xfe, 0x1f, 0xce, 0xee, 0x06, 0x17, 0x74, 0x56, 0xf1, 0xb5, 0x00, 0xc3, + 0xf0, 0x18, 0xea, 0x78, 0x25, 0x48, 0x1d, 0x0c, 0x73, 0xa3, 0x26, 0x5c, 0x20, 0x67, 0xac, 0xc5, + 0xc9, 0x5d, 0xc4, 0xc0, 0x2d, 0x67, 0xa5, 0xe5, 0x56, 0x63, 0xe4, 0xf8, 0x53, 0x11, 0x2a, 0xfb, + 0x6f, 0xe3, 0xab, 0x15, 0xf6, 0x21, 0x5a, 0xaa, 0x0f, 0xb9, 0x07, 0x3a, 0x9e, 0x14, 0x56, 0x70, + 0x7c, 0xcc, 0x28, 0xc7, 0xab, 0x42, 0xc9, 0x6c, 0x20, 0xed, 0x0d, 0x92, 0x52, 0x38, 0x5f, 0xc8, + 0xe0, 0x7c, 0x32, 0x55, 0x71, 0xf5, 0xd4, 0xd4, 0x97, 0x52, 0xa4, 0x05, 0x05, 0xe7, 0x58, 0xdd, + 0x9f, 0x0b, 0xce, 0xb1, 0x70, 0xab, 0xcb, 0xac, 0x01, 0x42, 0xa5, 0x0a, 0x64, 0xcd, 0x65, 0x12, + 0x3a, 0x45, 0x90, 0x65, 0x6a, 0xf0, 0xf8, 0x4a, 0x53, 0xc5, 0xf1, 0x21, 0x23, 0xb7, 0x40, 0xb4, + 0x5f, 0x78, 0x7e, 0x26, 0x11, 0xae, 0x2b, 0xca, 0x21, 0xcb, 0x26, 0x55, 0xe5, 0xfc, 0xa4, 0xaa, + 0x66, 0x92, 0x6a, 0x05, 0x2a, 0xec, 0xd4, 0xde, 0xfc, 0xd1, 0x53, 0xbc, 0x83, 0xe9, 0xa6, 0x1a, + 0x89, 0x6b, 0x9a, 0xd4, 0xc6, 0x7c, 0x3b, 0x64, 0xa7, 0x01, 0x1a, 0x24, 0xaf, 0x60, 0x6d, 0x64, + 0xf4, 0x15, 0xfd, 0x90, 0x91, 0x2d, 0xe8, 0x38, 0xc1, 0x28, 0x8c, 0x28, 0x13, 0x37, 0x28, 0xd9, + 0xca, 0x34, 0xf1, 0xf0, 0xb8, 0x96, 0x34, 0x40, 0x33, 0x3e, 0x36, 0x30, 0x6d, 0x27, 0x4b, 0x30, + 0xfe, 0x56, 0x04, 0xfd, 0xeb, 0x30, 0xf4, 0xa6, 0x71, 0x3d, 0xad, 0x66, 0xd0, 0x26, 0x1f, 0xdd, + 0xb7, 0xf2, 0xfc, 0x44, 0xa8, 0x59, 0x8b, 0x2b, 0x58, 0x9f, 0x9b, 0x08, 0x6f, 0x53, 0x05, 0xfc, + 0x41, 0xc7, 0x59, 0xb8, 0x44, 0xc7, 0xf9, 0x53, 0x68, 0xa6, 0x75, 0xb0, 0x6e, 0x13, 0xd7, 0x3d, + 0x5f, 0x89, 0xa9, 0xa7, 0xa6, 0xb3, 0xb9, 0x0d, 0x67, 0x79, 0x6e, 0xc3, 0x39, 0xa7, 0xb7, 0x2d, + 0x7e, 0x52, 0x6f, 0x9b, 0x02, 0xa5, 0xd2, 0x22, 0x50, 0xca, 0x75, 0xb0, 0x8d, 0x8f, 0xe9, 0x60, + 0x8d, 0x21, 0x34, 0x55, 0xd4, 0x2e, 0xdb, 0x9c, 0x25, 0x50, 0x5d, 0x58, 0x04, 0xd5, 0xc6, 0x03, + 0xd0, 0xb7, 0x3d, 0x6a, 0x47, 0x71, 0x8a, 0xac, 0x40, 0x25, 0x75, 0xed, 0xae, 0x9b, 0x6a, 0x64, + 0x7c, 0x05, 0x4d, 0x25, 0xf7, 0xc9, 0xc7, 0xc1, 0xda, 0x7d, 0x80, 0xd9, 0x53, 0x8e, 0x68, 0x69, + 0x5e, 0x07, 0xd1, 0xc8, 0xf6, 0x64, 0x7b, 0x23, 0xdf, 0xba, 0x3a, 0xda, 0xda, 0x23, 0xb8, 0x3a, + 0xa7, 0x2d, 0x17, 0x22, 0x2f, 0xe9, 0x89, 0xed, 0x4c, 0x3b, 0x4b, 0x44, 0x87, 0xda, 0x3e, 0x9d, + 0xb2, 0xd0, 0x76, 0x68, 0x47, 0xdb, 0xfc, 0xae, 0x06, 0x75, 0x39, 0xbb, 0xdf, 0x3f, 0x24, 0xbf, + 0xc8, 0x2c, 0x72, 0xe7, 0xdc, 0x97, 0x24, 0xa9, 0xba, 0x77, 0xf7, 0x7c, 0x01, 0xd5, 0xe0, 0x2d, + 0x91, 0x17, 0x50, 0x55, 0xef, 0x55, 0xe4, 0x66, 0x56, 0x3c, 0xfb, 0xb0, 0xd5, 0xbb, 0x75, 0x0e, + 0x37, 0xd1, 0xf4, 0x1c, 0x2a, 0xf2, 0x19, 0x80, 0xe4, 0x0e, 0xed, 0xcc, 0xcb, 0x43, 0xef, 0xe6, + 0x7c, 0x66, 0xac, 0x66, 0x55, 0x23, 0xbb, 0x50, 0x91, 0x57, 0xed, 0xbc, 0xa2, 0xcc, 0x45, 0x3f, + 0xaf, 0x28, 0x7b, 0x3b, 0x97, 0x3b, 0x53, 0x97, 0xdd, 0xfc, 0xce, 0xb2, 0xf7, 0xf1, 0xfc, 0xce, + 0xf2, 0x37, 0xe4, 0x25, 0x12, 0xc1, 0x67, 0x73, 0xfb, 0x64, 0xb2, 0x96, 0x73, 0xf0, 0x05, 0xdd, + 0x78, 0x6f, 0xfd, 0xa3, 0x64, 0x93, 0x35, 0xf7, 0xa1, 0x16, 0xf3, 0xc9, 0xad, 0x0b, 0x2f, 0x76, + 0xbd, 0xdb, 0xe7, 0xb1, 0x13, 0x65, 0x3b, 0x50, 0xc6, 0x3e, 0x87, 0xf4, 0xe6, 0x34, 0xaf, 0xb1, + 0x9a, 0x1b, 0x73, 0x79, 0xa9, 0xb8, 0xbc, 0x82, 0x5a, 0xdc, 0x30, 0xe5, 0x4d, 0xca, 0xb5, 0x7c, + 0x79, 0x93, 0xf2, 0x7d, 0x16, 0xaa, 0x7b, 0x03, 0x8d, 0xd4, 0xf3, 0x0d, 0xc9, 0x25, 0xeb, 0x87, + 0x2f, 0x3b, 0x0b, 0x03, 0x7e, 0x04, 0xed, 0x5c, 0x63, 0x41, 0xee, 0xe7, 0x5c, 0x33, 0xb7, 0x05, + 0xeb, 0x7d, 0xbe, 0x40, 0x2a, 0x5e, 0xe1, 0xb1, 0x46, 0xb6, 0xa0, 0x8c, 0xb8, 0x95, 0xf7, 0x64, + 0xfa, 0x08, 0xca, 0x7b, 0x32, 0x03, 0x74, 0x58, 0x28, 0x80, 0x30, 0xf3, 0x33, 0x57, 0xa0, 0x7a, + 0x4e, 0x51, 0x1a, 0xa8, 0xf2, 0x8a, 0x32, 0xe0, 0x64, 0x2c, 0x11, 0x07, 0x3a, 0xf9, 0xc7, 0x74, + 0x92, 0xdb, 0xcb, 0x39, 0xef, 0xff, 0xbd, 0x07, 0x8b, 0xc4, 0xe2, 0x45, 0xb6, 0x1e, 0xfc, 0xf3, + 0x9b, 0x9a, 0xf6, 0xed, 0xfb, 0xdb, 0xda, 0x3f, 0xde, 0xdf, 0xd6, 0xfe, 0xfd, 0xfe, 0xb6, 0xf6, + 0xc7, 0xff, 0xdc, 0x5e, 0x82, 0x4e, 0x10, 0x9d, 0x6c, 0x70, 0x77, 0x38, 0xd9, 0x18, 0x4e, 0xf0, + 0xdf, 0x86, 0xa3, 0x0a, 0xfe, 0x3c, 0xf9, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x3f, 0xff, + 0xb2, 0xf7, 0x18, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2680,6 +2805,8 @@ type ImportSSTClient interface { Apply(ctx context.Context, in *ApplyRequest, opts ...grpc.CallOption) (*ApplyResponse, error) // ClearFiles clear applied file after restore succeed. ClearFiles(ctx context.Context, in *ClearRequest, opts ...grpc.CallOption) (*ClearResponse, error) + // Suspend ingest for data listeners don't support catching import data. + SuspendImportRPC(ctx context.Context, in *SuspendImportRPCRequest, opts ...grpc.CallOption) (*SuspendImportRPCResponse, error) } type importSSTClient struct { @@ -2905,6 +3032,15 @@ func (c *importSSTClient) ClearFiles(ctx context.Context, in *ClearRequest, opts return out, nil } +func (c *importSSTClient) SuspendImportRPC(ctx context.Context, in *SuspendImportRPCRequest, opts ...grpc.CallOption) (*SuspendImportRPCResponse, error) { + out := new(SuspendImportRPCResponse) + err := c.cc.Invoke(ctx, "/import_sstpb.ImportSST/SuspendImportRPC", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ImportSSTServer is the server API for ImportSST service. type ImportSSTServer interface { // Switch to normal/import mode. @@ -2932,6 +3068,8 @@ type ImportSSTServer interface { Apply(context.Context, *ApplyRequest) (*ApplyResponse, error) // ClearFiles clear applied file after restore succeed. ClearFiles(context.Context, *ClearRequest) (*ClearResponse, error) + // Suspend ingest for data listeners don't support catching import data. + SuspendImportRPC(context.Context, *SuspendImportRPCRequest) (*SuspendImportRPCResponse, error) } // UnimplementedImportSSTServer can be embedded to have forward compatible implementations. @@ -2977,6 +3115,9 @@ func (*UnimplementedImportSSTServer) Apply(ctx context.Context, req *ApplyReques func (*UnimplementedImportSSTServer) ClearFiles(ctx context.Context, req *ClearRequest) (*ClearResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ClearFiles not implemented") } +func (*UnimplementedImportSSTServer) SuspendImportRPC(ctx context.Context, req *SuspendImportRPCRequest) (*SuspendImportRPCResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SuspendImportRPC not implemented") +} func RegisterImportSSTServer(s *grpc.Server, srv ImportSSTServer) { s.RegisterService(&_ImportSST_serviceDesc, srv) @@ -3243,6 +3384,24 @@ func _ImportSST_ClearFiles_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _ImportSST_SuspendImportRPC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SuspendImportRPCRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ImportSSTServer).SuspendImportRPC(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/import_sstpb.ImportSST/SuspendImportRPC", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ImportSSTServer).SuspendImportRPC(ctx, req.(*SuspendImportRPCRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ImportSST_serviceDesc = grpc.ServiceDesc{ ServiceName: "import_sstpb.ImportSST", HandlerType: (*ImportSSTServer)(nil), @@ -3283,6 +3442,10 @@ var _ImportSST_serviceDesc = grpc.ServiceDesc{ MethodName: "ClearFiles", Handler: _ImportSST_ClearFiles_Handler, }, + { + MethodName: "SuspendImportRPC", + Handler: _ImportSST_SuspendImportRPC_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -3309,6 +3472,92 @@ var _ImportSST_serviceDesc = grpc.ServiceDesc{ Metadata: "import_sstpb.proto", } +func (m *SuspendImportRPCRequest) 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 *SuspendImportRPCRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SuspendImportRPCRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Caller) > 0 { + i -= len(m.Caller) + copy(dAtA[i:], m.Caller) + i = encodeVarintImportSstpb(dAtA, i, uint64(len(m.Caller))) + i-- + dAtA[i] = 0x1a + } + if m.DurationInSecs != 0 { + i = encodeVarintImportSstpb(dAtA, i, uint64(m.DurationInSecs)) + i-- + dAtA[i] = 0x10 + } + if m.ShouldSuspendImports { + i-- + if m.ShouldSuspendImports { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *SuspendImportRPCResponse) 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 *SuspendImportRPCResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SuspendImportRPCResponse) 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.AlreadySuspended { + i-- + if m.AlreadySuspended { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *SwitchModeRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5273,6 +5522,43 @@ func encodeVarintImportSstpb(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *SuspendImportRPCRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ShouldSuspendImports { + n += 2 + } + if m.DurationInSecs != 0 { + n += 1 + sovImportSstpb(uint64(m.DurationInSecs)) + } + l = len(m.Caller) + if l > 0 { + n += 1 + l + sovImportSstpb(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *SuspendImportRPCResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AlreadySuspended { + n += 2 + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *SwitchModeRequest) Size() (n int) { if m == nil { return 0 @@ -6146,6 +6432,199 @@ func sovImportSstpb(x uint64) (n int) { func sozImportSstpb(x uint64) (n int) { return sovImportSstpb(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *SuspendImportRPCRequest) 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 ErrIntOverflowImportSstpb + } + 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: SuspendImportRPCRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SuspendImportRPCRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ShouldSuspendImports", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ShouldSuspendImports = bool(v != 0) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DurationInSecs", wireType) + } + m.DurationInSecs = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DurationInSecs |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Caller", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthImportSstpb + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthImportSstpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Caller = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipImportSstpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthImportSstpb + } + 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 *SuspendImportRPCResponse) 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 ErrIntOverflowImportSstpb + } + 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: SuspendImportRPCResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SuspendImportRPCResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AlreadySuspended", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImportSstpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.AlreadySuspended = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipImportSstpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthImportSstpb + } + 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 *SwitchModeRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/proto/import_sstpb.proto b/proto/import_sstpb.proto index 8c18991c5..089dd35f4 100644 --- a/proto/import_sstpb.proto +++ b/proto/import_sstpb.proto @@ -63,6 +63,27 @@ service ImportSST { // ClearFiles clear applied file after restore succeed. rpc ClearFiles(ClearRequest) returns (ClearResponse) {} + + // Suspend ingest for data listeners don't support catching import data. + rpc SuspendImportRPC(SuspendImportRPCRequest) returns (SuspendImportRPCResponse) {} + +} + +message SuspendImportRPCRequest { + // whether to suspend new imports. + bool should_suspend_imports = 1; + + // the duration of import service suspension + // when should_deny_imports is false, + // this won't take effect. + uint64 duration_in_secs = 2; + // The identifier for the caller. + string caller = 3; +} + +message SuspendImportRPCResponse { + // The last state before this RPC. + bool already_suspended = 1; } enum SwitchMode { diff --git a/scripts/proto.lock b/scripts/proto.lock index 46a472499..00af1a991 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -6363,6 +6363,36 @@ } ], "messages": [ + { + "name": "SuspendImportRPCRequest", + "fields": [ + { + "id": 1, + "name": "should_suspend_imports", + "type": "bool" + }, + { + "id": 2, + "name": "duration_in_secs", + "type": "uint64" + }, + { + "id": 3, + "name": "caller", + "type": "string" + } + ] + }, + { + "name": "SuspendImportRPCResponse", + "fields": [ + { + "id": 1, + "name": "already_suspended", + "type": "bool" + } + ] + }, { "name": "SwitchModeRequest", "fields": [ @@ -7167,6 +7197,11 @@ "name": "ClearFiles", "in_type": "ClearRequest", "out_type": "ClearResponse" + }, + { + "name": "SuspendImportRPC", + "in_type": "SuspendImportRPCRequest", + "out_type": "SuspendImportRPCResponse" } ] }