diff --git a/pkg/pdpb/pdpb.pb.go b/pkg/pdpb/pdpb.pb.go index fac1cee37..801254d98 100644 --- a/pkg/pdpb/pdpb.pb.go +++ b/pkg/pdpb/pdpb.pb.go @@ -1971,6 +1971,235 @@ func (m *GetRegionByIDRequest) GetNeedBuckets() bool { return false } +type QueryRegionRequest struct { + Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + // Whether to include the buckets info within the response. + NeedBuckets bool `protobuf:"varint,2,opt,name=need_buckets,json=needBuckets,proto3" json:"need_buckets,omitempty"` + // The region IDs to query. + Ids []uint64 `protobuf:"varint,3,rep,packed,name=ids,proto3" json:"ids,omitempty"` + // The region keys to query. + Keys [][]byte `protobuf:"bytes,4,rep,name=keys,proto3" json:"keys,omitempty"` + // The previous region keys to query. + PrevKeys [][]byte `protobuf:"bytes,5,rep,name=prev_keys,json=prevKeys,proto3" json:"prev_keys,omitempty"` +} + +func (m *QueryRegionRequest) Reset() { *m = QueryRegionRequest{} } +func (m *QueryRegionRequest) String() string { return proto.CompactTextString(m) } +func (*QueryRegionRequest) ProtoMessage() {} +func (*QueryRegionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{30} +} +func (m *QueryRegionRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryRegionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryRegionRequest.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 *QueryRegionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRegionRequest.Merge(m, src) +} +func (m *QueryRegionRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryRegionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRegionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryRegionRequest proto.InternalMessageInfo + +func (m *QueryRegionRequest) GetHeader() *RequestHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *QueryRegionRequest) GetNeedBuckets() bool { + if m != nil { + return m.NeedBuckets + } + return false +} + +func (m *QueryRegionRequest) GetIds() []uint64 { + if m != nil { + return m.Ids + } + return nil +} + +func (m *QueryRegionRequest) GetKeys() [][]byte { + if m != nil { + return m.Keys + } + return nil +} + +func (m *QueryRegionRequest) GetPrevKeys() [][]byte { + if m != nil { + return m.PrevKeys + } + return nil +} + +type QueryRegionResponse struct { + Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + // This array functions as a map corresponding to the region IDs, + // preserving the order of the input region keys, if they are present. + KeyIdMap []uint64 `protobuf:"varint,2,rep,packed,name=key_id_map,json=keyIdMap,proto3" json:"key_id_map,omitempty"` + // This array functions as a map corresponding to the previous region IDs, + // preserving the order of the input previous region keys, if they are present. + PrevKeyIdMap []uint64 `protobuf:"varint,3,rep,packed,name=prev_key_id_map,json=prevKeyIdMap,proto3" json:"prev_key_id_map,omitempty"` + // RegionID -> RegionResponse + RegionsById map[uint64]*RegionResponse `protobuf:"bytes,4,rep,name=regions_by_id,json=regionsById,proto3" json:"regions_by_id,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (m *QueryRegionResponse) Reset() { *m = QueryRegionResponse{} } +func (m *QueryRegionResponse) String() string { return proto.CompactTextString(m) } +func (*QueryRegionResponse) ProtoMessage() {} +func (*QueryRegionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{31} +} +func (m *QueryRegionResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryRegionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryRegionResponse.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 *QueryRegionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryRegionResponse.Merge(m, src) +} +func (m *QueryRegionResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryRegionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryRegionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryRegionResponse proto.InternalMessageInfo + +func (m *QueryRegionResponse) GetHeader() *ResponseHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *QueryRegionResponse) GetKeyIdMap() []uint64 { + if m != nil { + return m.KeyIdMap + } + return nil +} + +func (m *QueryRegionResponse) GetPrevKeyIdMap() []uint64 { + if m != nil { + return m.PrevKeyIdMap + } + return nil +} + +func (m *QueryRegionResponse) GetRegionsById() map[uint64]*RegionResponse { + if m != nil { + return m.RegionsById + } + return nil +} + +type RegionResponse struct { + Region *metapb.Region `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` + Leader *metapb.Peer `protobuf:"bytes,2,opt,name=leader,proto3" json:"leader,omitempty"` + DownPeers []*PeerStats `protobuf:"bytes,3,rep,name=down_peers,json=downPeers,proto3" json:"down_peers,omitempty"` + PendingPeers []*metapb.Peer `protobuf:"bytes,4,rep,name=pending_peers,json=pendingPeers,proto3" json:"pending_peers,omitempty"` + Buckets *metapb.Buckets `protobuf:"bytes,5,opt,name=buckets,proto3" json:"buckets,omitempty"` +} + +func (m *RegionResponse) Reset() { *m = RegionResponse{} } +func (m *RegionResponse) String() string { return proto.CompactTextString(m) } +func (*RegionResponse) ProtoMessage() {} +func (*RegionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_78b27e6f04f44c6e, []int{32} +} +func (m *RegionResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RegionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RegionResponse.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 *RegionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegionResponse.Merge(m, src) +} +func (m *RegionResponse) XXX_Size() int { + return m.Size() +} +func (m *RegionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RegionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RegionResponse proto.InternalMessageInfo + +func (m *RegionResponse) GetRegion() *metapb.Region { + if m != nil { + return m.Region + } + return nil +} + +func (m *RegionResponse) GetLeader() *metapb.Peer { + if m != nil { + return m.Leader + } + return nil +} + +func (m *RegionResponse) GetDownPeers() []*PeerStats { + if m != nil { + return m.DownPeers + } + return nil +} + +func (m *RegionResponse) GetPendingPeers() []*metapb.Peer { + if m != nil { + return m.PendingPeers + } + return nil +} + +func (m *RegionResponse) GetBuckets() *metapb.Buckets { + if m != nil { + return m.Buckets + } + return nil +} + // Use GetRegionResponse as the response of GetRegionByIDRequest. // Deprecated: use BatchScanRegionsRequest instead. type ScanRegionsRequest struct { @@ -1984,7 +2213,7 @@ func (m *ScanRegionsRequest) Reset() { *m = ScanRegionsRequest{} } func (m *ScanRegionsRequest) String() string { return proto.CompactTextString(m) } func (*ScanRegionsRequest) ProtoMessage() {} func (*ScanRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{30} + return fileDescriptor_78b27e6f04f44c6e, []int{33} } func (m *ScanRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2057,7 +2286,7 @@ func (m *Region) Reset() { *m = Region{} } func (m *Region) String() string { return proto.CompactTextString(m) } func (*Region) ProtoMessage() {} func (*Region) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{31} + return fileDescriptor_78b27e6f04f44c6e, []int{34} } func (m *Region) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2134,7 +2363,7 @@ func (m *ScanRegionsResponse) Reset() { *m = ScanRegionsResponse{} } func (m *ScanRegionsResponse) String() string { return proto.CompactTextString(m) } func (*ScanRegionsResponse) ProtoMessage() {} func (*ScanRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{32} + return fileDescriptor_78b27e6f04f44c6e, []int{35} } func (m *ScanRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2200,7 +2429,7 @@ func (m *KeyRange) Reset() { *m = KeyRange{} } func (m *KeyRange) String() string { return proto.CompactTextString(m) } func (*KeyRange) ProtoMessage() {} func (*KeyRange) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{33} + return fileDescriptor_78b27e6f04f44c6e, []int{36} } func (m *KeyRange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2259,7 +2488,7 @@ func (m *BatchScanRegionsRequest) Reset() { *m = BatchScanRegionsRequest func (m *BatchScanRegionsRequest) String() string { return proto.CompactTextString(m) } func (*BatchScanRegionsRequest) ProtoMessage() {} func (*BatchScanRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{34} + return fileDescriptor_78b27e6f04f44c6e, []int{37} } func (m *BatchScanRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2333,7 +2562,7 @@ func (m *BatchScanRegionsResponse) Reset() { *m = BatchScanRegionsRespon func (m *BatchScanRegionsResponse) String() string { return proto.CompactTextString(m) } func (*BatchScanRegionsResponse) ProtoMessage() {} func (*BatchScanRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{35} + return fileDescriptor_78b27e6f04f44c6e, []int{38} } func (m *BatchScanRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2384,7 +2613,7 @@ func (m *GetClusterConfigRequest) Reset() { *m = GetClusterConfigRequest func (m *GetClusterConfigRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterConfigRequest) ProtoMessage() {} func (*GetClusterConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{36} + return fileDescriptor_78b27e6f04f44c6e, []int{39} } func (m *GetClusterConfigRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2429,7 +2658,7 @@ func (m *GetClusterConfigResponse) Reset() { *m = GetClusterConfigRespon func (m *GetClusterConfigResponse) String() string { return proto.CompactTextString(m) } func (*GetClusterConfigResponse) ProtoMessage() {} func (*GetClusterConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{37} + return fileDescriptor_78b27e6f04f44c6e, []int{40} } func (m *GetClusterConfigResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2481,7 +2710,7 @@ func (m *PutClusterConfigRequest) Reset() { *m = PutClusterConfigRequest func (m *PutClusterConfigRequest) String() string { return proto.CompactTextString(m) } func (*PutClusterConfigRequest) ProtoMessage() {} func (*PutClusterConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{38} + return fileDescriptor_78b27e6f04f44c6e, []int{41} } func (m *PutClusterConfigRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2532,7 +2761,7 @@ func (m *PutClusterConfigResponse) Reset() { *m = PutClusterConfigRespon func (m *PutClusterConfigResponse) String() string { return proto.CompactTextString(m) } func (*PutClusterConfigResponse) ProtoMessage() {} func (*PutClusterConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{39} + return fileDescriptor_78b27e6f04f44c6e, []int{42} } func (m *PutClusterConfigResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2586,7 +2815,7 @@ func (m *Member) Reset() { *m = Member{} } func (m *Member) String() string { return proto.CompactTextString(m) } func (*Member) ProtoMessage() {} func (*Member) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{40} + return fileDescriptor_78b27e6f04f44c6e, []int{43} } func (m *Member) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2686,7 +2915,7 @@ func (m *GetMembersRequest) Reset() { *m = GetMembersRequest{} } func (m *GetMembersRequest) String() string { return proto.CompactTextString(m) } func (*GetMembersRequest) ProtoMessage() {} func (*GetMembersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{41} + return fileDescriptor_78b27e6f04f44c6e, []int{44} } func (m *GetMembersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2734,7 +2963,7 @@ func (m *GetMembersResponse) Reset() { *m = GetMembersResponse{} } func (m *GetMembersResponse) String() string { return proto.CompactTextString(m) } func (*GetMembersResponse) ProtoMessage() {} func (*GetMembersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{42} + return fileDescriptor_78b27e6f04f44c6e, []int{45} } func (m *GetMembersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2806,7 +3035,7 @@ func (m *GetClusterInfoRequest) Reset() { *m = GetClusterInfoRequest{} } func (m *GetClusterInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterInfoRequest) ProtoMessage() {} func (*GetClusterInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{43} + return fileDescriptor_78b27e6f04f44c6e, []int{46} } func (m *GetClusterInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2854,7 +3083,7 @@ func (m *GetClusterInfoResponse) Reset() { *m = GetClusterInfoResponse{} func (m *GetClusterInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetClusterInfoResponse) ProtoMessage() {} func (*GetClusterInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{44} + return fileDescriptor_78b27e6f04f44c6e, []int{47} } func (m *GetClusterInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2913,7 +3142,7 @@ func (m *PeerStats) Reset() { *m = PeerStats{} } func (m *PeerStats) String() string { return proto.CompactTextString(m) } func (*PeerStats) ProtoMessage() {} func (*PeerStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{45} + return fileDescriptor_78b27e6f04f44c6e, []int{48} } func (m *PeerStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2995,7 +3224,7 @@ 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_78b27e6f04f44c6e, []int{46} + return fileDescriptor_78b27e6f04f44c6e, []int{49} } func (m *RegionHeartbeatRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3152,7 +3381,7 @@ func (m *ChangePeer) Reset() { *m = ChangePeer{} } func (m *ChangePeer) String() string { return proto.CompactTextString(m) } func (*ChangePeer) ProtoMessage() {} func (*ChangePeer) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{47} + return fileDescriptor_78b27e6f04f44c6e, []int{50} } func (m *ChangePeer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3204,7 +3433,7 @@ func (m *ChangePeerV2) Reset() { *m = ChangePeerV2{} } func (m *ChangePeerV2) String() string { return proto.CompactTextString(m) } func (*ChangePeerV2) ProtoMessage() {} func (*ChangePeerV2) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{48} + return fileDescriptor_78b27e6f04f44c6e, []int{51} } func (m *ChangePeerV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3249,7 +3478,7 @@ func (m *TransferLeader) Reset() { *m = TransferLeader{} } func (m *TransferLeader) String() string { return proto.CompactTextString(m) } func (*TransferLeader) ProtoMessage() {} func (*TransferLeader) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{49} + return fileDescriptor_78b27e6f04f44c6e, []int{52} } func (m *TransferLeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3300,7 +3529,7 @@ func (m *Merge) Reset() { *m = Merge{} } func (m *Merge) String() string { return proto.CompactTextString(m) } func (*Merge) ProtoMessage() {} func (*Merge) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{50} + return fileDescriptor_78b27e6f04f44c6e, []int{53} } func (m *Merge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3345,7 +3574,7 @@ func (m *SplitRegion) Reset() { *m = SplitRegion{} } func (m *SplitRegion) String() string { return proto.CompactTextString(m) } func (*SplitRegion) ProtoMessage() {} func (*SplitRegion) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{51} + return fileDescriptor_78b27e6f04f44c6e, []int{54} } func (m *SplitRegion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3397,7 +3626,7 @@ func (m *SwitchWitness) Reset() { *m = SwitchWitness{} } func (m *SwitchWitness) String() string { return proto.CompactTextString(m) } func (*SwitchWitness) ProtoMessage() {} func (*SwitchWitness) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{52} + return fileDescriptor_78b27e6f04f44c6e, []int{55} } func (m *SwitchWitness) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3448,7 +3677,7 @@ func (m *BatchSwitchWitness) Reset() { *m = BatchSwitchWitness{} } func (m *BatchSwitchWitness) String() string { return proto.CompactTextString(m) } func (*BatchSwitchWitness) ProtoMessage() {} func (*BatchSwitchWitness) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{53} + return fileDescriptor_78b27e6f04f44c6e, []int{56} } func (m *BatchSwitchWitness) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3525,7 +3754,7 @@ 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_78b27e6f04f44c6e, []int{54} + return fileDescriptor_78b27e6f04f44c6e, []int{57} } func (m *RegionHeartbeatResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3633,7 +3862,7 @@ func (m *AskSplitRequest) Reset() { *m = AskSplitRequest{} } func (m *AskSplitRequest) String() string { return proto.CompactTextString(m) } func (*AskSplitRequest) ProtoMessage() {} func (*AskSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{55} + return fileDescriptor_78b27e6f04f44c6e, []int{58} } func (m *AskSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3690,7 +3919,7 @@ func (m *AskSplitResponse) Reset() { *m = AskSplitResponse{} } func (m *AskSplitResponse) String() string { return proto.CompactTextString(m) } func (*AskSplitResponse) ProtoMessage() {} func (*AskSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{56} + return fileDescriptor_78b27e6f04f44c6e, []int{59} } func (m *AskSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3750,7 +3979,7 @@ func (m *ReportSplitRequest) Reset() { *m = ReportSplitRequest{} } func (m *ReportSplitRequest) String() string { return proto.CompactTextString(m) } func (*ReportSplitRequest) ProtoMessage() {} func (*ReportSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{57} + return fileDescriptor_78b27e6f04f44c6e, []int{60} } func (m *ReportSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3808,7 +4037,7 @@ func (m *ReportSplitResponse) Reset() { *m = ReportSplitResponse{} } func (m *ReportSplitResponse) String() string { return proto.CompactTextString(m) } func (*ReportSplitResponse) ProtoMessage() {} func (*ReportSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{58} + return fileDescriptor_78b27e6f04f44c6e, []int{61} } func (m *ReportSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3854,7 +4083,7 @@ func (m *AskBatchSplitRequest) Reset() { *m = AskBatchSplitRequest{} } func (m *AskBatchSplitRequest) String() string { return proto.CompactTextString(m) } func (*AskBatchSplitRequest) ProtoMessage() {} func (*AskBatchSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{59} + return fileDescriptor_78b27e6f04f44c6e, []int{62} } func (m *AskBatchSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3913,7 +4142,7 @@ func (m *SplitID) Reset() { *m = SplitID{} } func (m *SplitID) String() string { return proto.CompactTextString(m) } func (*SplitID) ProtoMessage() {} func (*SplitID) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{60} + return fileDescriptor_78b27e6f04f44c6e, []int{63} } func (m *SplitID) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3965,7 +4194,7 @@ func (m *AskBatchSplitResponse) Reset() { *m = AskBatchSplitResponse{} } func (m *AskBatchSplitResponse) String() string { return proto.CompactTextString(m) } func (*AskBatchSplitResponse) ProtoMessage() {} func (*AskBatchSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{61} + return fileDescriptor_78b27e6f04f44c6e, []int{64} } func (m *AskBatchSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4017,7 +4246,7 @@ func (m *ReportBatchSplitRequest) Reset() { *m = ReportBatchSplitRequest func (m *ReportBatchSplitRequest) String() string { return proto.CompactTextString(m) } func (*ReportBatchSplitRequest) ProtoMessage() {} func (*ReportBatchSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{62} + return fileDescriptor_78b27e6f04f44c6e, []int{65} } func (m *ReportBatchSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4068,7 +4297,7 @@ func (m *ReportBatchSplitResponse) Reset() { *m = ReportBatchSplitRespon func (m *ReportBatchSplitResponse) String() string { return proto.CompactTextString(m) } func (*ReportBatchSplitResponse) ProtoMessage() {} func (*ReportBatchSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{63} + return fileDescriptor_78b27e6f04f44c6e, []int{66} } func (m *ReportBatchSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4115,7 +4344,7 @@ func (m *TimeInterval) Reset() { *m = TimeInterval{} } func (m *TimeInterval) String() string { return proto.CompactTextString(m) } func (*TimeInterval) ProtoMessage() {} func (*TimeInterval) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{64} + return fileDescriptor_78b27e6f04f44c6e, []int{67} } func (m *TimeInterval) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4167,7 +4396,7 @@ func (m *RecordPair) Reset() { *m = RecordPair{} } func (m *RecordPair) String() string { return proto.CompactTextString(m) } func (*RecordPair) ProtoMessage() {} func (*RecordPair) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{65} + return fileDescriptor_78b27e6f04f44c6e, []int{68} } func (m *RecordPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4223,7 +4452,7 @@ func (m *PeerStat) Reset() { *m = PeerStat{} } func (m *PeerStat) String() string { return proto.CompactTextString(m) } func (*PeerStat) ProtoMessage() {} func (*PeerStat) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{66} + return fileDescriptor_78b27e6f04f44c6e, []int{69} } func (m *PeerStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4357,7 +4586,7 @@ func (m *StoreStats) Reset() { *m = StoreStats{} } func (m *StoreStats) String() string { return proto.CompactTextString(m) } func (*StoreStats) ProtoMessage() {} func (*StoreStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{67} + return fileDescriptor_78b27e6f04f44c6e, []int{70} } func (m *StoreStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4600,7 +4829,7 @@ func (m *SlowTrend) Reset() { *m = SlowTrend{} } func (m *SlowTrend) String() string { return proto.CompactTextString(m) } func (*SlowTrend) ProtoMessage() {} func (*SlowTrend) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{68} + return fileDescriptor_78b27e6f04f44c6e, []int{71} } func (m *SlowTrend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4675,7 +4904,7 @@ func (m *SnapshotStat) Reset() { *m = SnapshotStat{} } func (m *SnapshotStat) String() string { return proto.CompactTextString(m) } func (*SnapshotStat) ProtoMessage() {} func (*SnapshotStat) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{69} + return fileDescriptor_78b27e6f04f44c6e, []int{72} } func (m *SnapshotStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4753,7 +4982,7 @@ func (m *PeerReport) Reset() { *m = PeerReport{} } func (m *PeerReport) String() string { return proto.CompactTextString(m) } func (*PeerReport) ProtoMessage() {} func (*PeerReport) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{70} + return fileDescriptor_78b27e6f04f44c6e, []int{73} } func (m *PeerReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4826,7 +5055,7 @@ func (m *StoreReport) Reset() { *m = StoreReport{} } func (m *StoreReport) String() string { return proto.CompactTextString(m) } func (*StoreReport) ProtoMessage() {} func (*StoreReport) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{71} + return fileDescriptor_78b27e6f04f44c6e, []int{74} } func (m *StoreReport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4881,7 +5110,7 @@ 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_78b27e6f04f44c6e, []int{72} + return fileDescriptor_78b27e6f04f44c6e, []int{75} } func (m *StoreHeartbeatRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4947,7 +5176,7 @@ func (m *DemoteFailedVoters) Reset() { *m = DemoteFailedVoters{} } func (m *DemoteFailedVoters) String() string { return proto.CompactTextString(m) } func (*DemoteFailedVoters) ProtoMessage() {} func (*DemoteFailedVoters) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{73} + return fileDescriptor_78b27e6f04f44c6e, []int{76} } func (m *DemoteFailedVoters) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5001,7 +5230,7 @@ func (m *ForceLeader) Reset() { *m = ForceLeader{} } func (m *ForceLeader) String() string { return proto.CompactTextString(m) } func (*ForceLeader) ProtoMessage() {} func (*ForceLeader) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{74} + return fileDescriptor_78b27e6f04f44c6e, []int{77} } func (m *ForceLeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5064,7 +5293,7 @@ func (m *RecoveryPlan) Reset() { *m = RecoveryPlan{} } func (m *RecoveryPlan) String() string { return proto.CompactTextString(m) } func (*RecoveryPlan) ProtoMessage() {} func (*RecoveryPlan) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{75} + return fileDescriptor_78b27e6f04f44c6e, []int{78} } func (m *RecoveryPlan) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5145,7 +5374,7 @@ func (m *AwakenRegions) Reset() { *m = AwakenRegions{} } func (m *AwakenRegions) String() string { return proto.CompactTextString(m) } func (*AwakenRegions) ProtoMessage() {} func (*AwakenRegions) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{76} + return fileDescriptor_78b27e6f04f44c6e, []int{79} } func (m *AwakenRegions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5189,7 +5418,7 @@ func (m *ControlGrpc) Reset() { *m = ControlGrpc{} } func (m *ControlGrpc) String() string { return proto.CompactTextString(m) } func (*ControlGrpc) ProtoMessage() {} func (*ControlGrpc) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{77} + return fileDescriptor_78b27e6f04f44c6e, []int{80} } func (m *ControlGrpc) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5246,7 +5475,7 @@ 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_78b27e6f04f44c6e, []int{78} + return fileDescriptor_78b27e6f04f44c6e, []int{81} } func (m *StoreHeartbeatResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5345,7 +5574,7 @@ func (m *ScatterRegionRequest) Reset() { *m = ScatterRegionRequest{} } func (m *ScatterRegionRequest) String() string { return proto.CompactTextString(m) } func (*ScatterRegionRequest) ProtoMessage() {} func (*ScatterRegionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{79} + return fileDescriptor_78b27e6f04f44c6e, []int{82} } func (m *ScatterRegionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5440,7 +5669,7 @@ func (m *ScatterRegionResponse) Reset() { *m = ScatterRegionResponse{} } func (m *ScatterRegionResponse) String() string { return proto.CompactTextString(m) } func (*ScatterRegionResponse) ProtoMessage() {} func (*ScatterRegionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{80} + return fileDescriptor_78b27e6f04f44c6e, []int{83} } func (m *ScatterRegionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5491,7 +5720,7 @@ func (m *GetGCSafePointRequest) Reset() { *m = GetGCSafePointRequest{} } func (m *GetGCSafePointRequest) String() string { return proto.CompactTextString(m) } func (*GetGCSafePointRequest) ProtoMessage() {} func (*GetGCSafePointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{81} + return fileDescriptor_78b27e6f04f44c6e, []int{84} } func (m *GetGCSafePointRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5536,7 +5765,7 @@ func (m *GetGCSafePointResponse) Reset() { *m = GetGCSafePointResponse{} func (m *GetGCSafePointResponse) String() string { return proto.CompactTextString(m) } func (*GetGCSafePointResponse) ProtoMessage() {} func (*GetGCSafePointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{82} + return fileDescriptor_78b27e6f04f44c6e, []int{85} } func (m *GetGCSafePointResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5588,7 +5817,7 @@ func (m *UpdateGCSafePointRequest) Reset() { *m = UpdateGCSafePointReque func (m *UpdateGCSafePointRequest) String() string { return proto.CompactTextString(m) } func (*UpdateGCSafePointRequest) ProtoMessage() {} func (*UpdateGCSafePointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{83} + return fileDescriptor_78b27e6f04f44c6e, []int{86} } func (m *UpdateGCSafePointRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5640,7 +5869,7 @@ func (m *UpdateGCSafePointResponse) Reset() { *m = UpdateGCSafePointResp func (m *UpdateGCSafePointResponse) String() string { return proto.CompactTextString(m) } func (*UpdateGCSafePointResponse) ProtoMessage() {} func (*UpdateGCSafePointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{84} + return fileDescriptor_78b27e6f04f44c6e, []int{87} } func (m *UpdateGCSafePointResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5694,7 +5923,7 @@ func (m *UpdateServiceGCSafePointRequest) Reset() { *m = UpdateServiceGC func (m *UpdateServiceGCSafePointRequest) String() string { return proto.CompactTextString(m) } func (*UpdateServiceGCSafePointRequest) ProtoMessage() {} func (*UpdateServiceGCSafePointRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{85} + return fileDescriptor_78b27e6f04f44c6e, []int{88} } func (m *UpdateServiceGCSafePointRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5762,7 +5991,7 @@ func (m *UpdateServiceGCSafePointResponse) Reset() { *m = UpdateServiceG func (m *UpdateServiceGCSafePointResponse) String() string { return proto.CompactTextString(m) } func (*UpdateServiceGCSafePointResponse) ProtoMessage() {} func (*UpdateServiceGCSafePointResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{86} + return fileDescriptor_78b27e6f04f44c6e, []int{89} } func (m *UpdateServiceGCSafePointResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5828,7 +6057,7 @@ func (m *GetGCSafePointV2Request) Reset() { *m = GetGCSafePointV2Request func (m *GetGCSafePointV2Request) String() string { return proto.CompactTextString(m) } func (*GetGCSafePointV2Request) ProtoMessage() {} func (*GetGCSafePointV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{87} + return fileDescriptor_78b27e6f04f44c6e, []int{90} } func (m *GetGCSafePointV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5880,7 +6109,7 @@ func (m *GetGCSafePointV2Response) Reset() { *m = GetGCSafePointV2Respon func (m *GetGCSafePointV2Response) String() string { return proto.CompactTextString(m) } func (*GetGCSafePointV2Response) ProtoMessage() {} func (*GetGCSafePointV2Response) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{88} + return fileDescriptor_78b27e6f04f44c6e, []int{91} } func (m *GetGCSafePointV2Response) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5932,7 +6161,7 @@ func (m *WatchGCSafePointV2Request) Reset() { *m = WatchGCSafePointV2Req func (m *WatchGCSafePointV2Request) String() string { return proto.CompactTextString(m) } func (*WatchGCSafePointV2Request) ProtoMessage() {} func (*WatchGCSafePointV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{89} + return fileDescriptor_78b27e6f04f44c6e, []int{92} } func (m *WatchGCSafePointV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5986,7 +6215,7 @@ func (m *SafePointEvent) Reset() { *m = SafePointEvent{} } func (m *SafePointEvent) String() string { return proto.CompactTextString(m) } func (*SafePointEvent) ProtoMessage() {} func (*SafePointEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{90} + return fileDescriptor_78b27e6f04f44c6e, []int{93} } func (m *SafePointEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6046,7 +6275,7 @@ func (m *WatchGCSafePointV2Response) Reset() { *m = WatchGCSafePointV2Re func (m *WatchGCSafePointV2Response) String() string { return proto.CompactTextString(m) } func (*WatchGCSafePointV2Response) ProtoMessage() {} func (*WatchGCSafePointV2Response) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{91} + return fileDescriptor_78b27e6f04f44c6e, []int{94} } func (m *WatchGCSafePointV2Response) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6106,7 +6335,7 @@ func (m *UpdateGCSafePointV2Request) Reset() { *m = UpdateGCSafePointV2R func (m *UpdateGCSafePointV2Request) String() string { return proto.CompactTextString(m) } func (*UpdateGCSafePointV2Request) ProtoMessage() {} func (*UpdateGCSafePointV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{92} + return fileDescriptor_78b27e6f04f44c6e, []int{95} } func (m *UpdateGCSafePointV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6165,7 +6394,7 @@ func (m *UpdateGCSafePointV2Response) Reset() { *m = UpdateGCSafePointV2 func (m *UpdateGCSafePointV2Response) String() string { return proto.CompactTextString(m) } func (*UpdateGCSafePointV2Response) ProtoMessage() {} func (*UpdateGCSafePointV2Response) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{93} + return fileDescriptor_78b27e6f04f44c6e, []int{96} } func (m *UpdateGCSafePointV2Response) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6225,7 +6454,7 @@ func (m *UpdateServiceSafePointV2Request) Reset() { *m = UpdateServiceSa func (m *UpdateServiceSafePointV2Request) String() string { return proto.CompactTextString(m) } func (*UpdateServiceSafePointV2Request) ProtoMessage() {} func (*UpdateServiceSafePointV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{94} + return fileDescriptor_78b27e6f04f44c6e, []int{97} } func (m *UpdateServiceSafePointV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6300,7 +6529,7 @@ func (m *UpdateServiceSafePointV2Response) Reset() { *m = UpdateServiceS func (m *UpdateServiceSafePointV2Response) String() string { return proto.CompactTextString(m) } func (*UpdateServiceSafePointV2Response) ProtoMessage() {} func (*UpdateServiceSafePointV2Response) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{95} + return fileDescriptor_78b27e6f04f44c6e, []int{98} } func (m *UpdateServiceSafePointV2Response) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6365,7 +6594,7 @@ func (m *GetAllGCSafePointV2Request) Reset() { *m = GetAllGCSafePointV2R func (m *GetAllGCSafePointV2Request) String() string { return proto.CompactTextString(m) } func (*GetAllGCSafePointV2Request) ProtoMessage() {} func (*GetAllGCSafePointV2Request) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{96} + return fileDescriptor_78b27e6f04f44c6e, []int{99} } func (m *GetAllGCSafePointV2Request) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6410,7 +6639,7 @@ func (m *GCSafePointV2) Reset() { *m = GCSafePointV2{} } func (m *GCSafePointV2) String() string { return proto.CompactTextString(m) } func (*GCSafePointV2) ProtoMessage() {} func (*GCSafePointV2) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{97} + return fileDescriptor_78b27e6f04f44c6e, []int{100} } func (m *GCSafePointV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6463,7 +6692,7 @@ func (m *GetAllGCSafePointV2Response) Reset() { *m = GetAllGCSafePointV2 func (m *GetAllGCSafePointV2Response) String() string { return proto.CompactTextString(m) } func (*GetAllGCSafePointV2Response) ProtoMessage() {} func (*GetAllGCSafePointV2Response) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{98} + return fileDescriptor_78b27e6f04f44c6e, []int{101} } func (m *GetAllGCSafePointV2Response) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6526,7 +6755,7 @@ func (m *RegionStat) Reset() { *m = RegionStat{} } func (m *RegionStat) String() string { return proto.CompactTextString(m) } func (*RegionStat) ProtoMessage() {} func (*RegionStat) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{99} + return fileDescriptor_78b27e6f04f44c6e, []int{102} } func (m *RegionStat) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6595,7 +6824,7 @@ func (m *SyncRegionRequest) Reset() { *m = SyncRegionRequest{} } func (m *SyncRegionRequest) String() string { return proto.CompactTextString(m) } func (*SyncRegionRequest) ProtoMessage() {} func (*SyncRegionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{100} + return fileDescriptor_78b27e6f04f44c6e, []int{103} } func (m *SyncRegionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6653,7 +6882,7 @@ func (m *PeersStats) Reset() { *m = PeersStats{} } func (m *PeersStats) String() string { return proto.CompactTextString(m) } func (*PeersStats) ProtoMessage() {} func (*PeersStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{101} + return fileDescriptor_78b27e6f04f44c6e, []int{104} } func (m *PeersStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6697,7 +6926,7 @@ func (m *Peers) Reset() { *m = Peers{} } func (m *Peers) String() string { return proto.CompactTextString(m) } func (*Peers) ProtoMessage() {} func (*Peers) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{102} + return fileDescriptor_78b27e6f04f44c6e, []int{105} } func (m *Peers) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6751,7 +6980,7 @@ func (m *SyncRegionResponse) Reset() { *m = SyncRegionResponse{} } func (m *SyncRegionResponse) String() string { return proto.CompactTextString(m) } func (*SyncRegionResponse) ProtoMessage() {} func (*SyncRegionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{103} + return fileDescriptor_78b27e6f04f44c6e, []int{106} } func (m *SyncRegionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6845,7 +7074,7 @@ func (m *GetOperatorRequest) Reset() { *m = GetOperatorRequest{} } func (m *GetOperatorRequest) String() string { return proto.CompactTextString(m) } func (*GetOperatorRequest) ProtoMessage() {} func (*GetOperatorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{104} + return fileDescriptor_78b27e6f04f44c6e, []int{107} } func (m *GetOperatorRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6900,7 +7129,7 @@ func (m *GetOperatorResponse) Reset() { *m = GetOperatorResponse{} } func (m *GetOperatorResponse) String() string { return proto.CompactTextString(m) } func (*GetOperatorResponse) ProtoMessage() {} func (*GetOperatorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{105} + return fileDescriptor_78b27e6f04f44c6e, []int{108} } func (m *GetOperatorResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6975,7 +7204,7 @@ func (m *SyncMaxTSRequest) Reset() { *m = SyncMaxTSRequest{} } func (m *SyncMaxTSRequest) String() string { return proto.CompactTextString(m) } func (*SyncMaxTSRequest) ProtoMessage() {} func (*SyncMaxTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{106} + return fileDescriptor_78b27e6f04f44c6e, []int{109} } func (m *SyncMaxTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7035,7 +7264,7 @@ func (m *SyncMaxTSResponse) Reset() { *m = SyncMaxTSResponse{} } func (m *SyncMaxTSResponse) String() string { return proto.CompactTextString(m) } func (*SyncMaxTSResponse) ProtoMessage() {} func (*SyncMaxTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{107} + return fileDescriptor_78b27e6f04f44c6e, []int{110} } func (m *SyncMaxTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7095,7 +7324,7 @@ func (m *SplitRegionsRequest) Reset() { *m = SplitRegionsRequest{} } func (m *SplitRegionsRequest) String() string { return proto.CompactTextString(m) } func (*SplitRegionsRequest) ProtoMessage() {} func (*SplitRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{108} + return fileDescriptor_78b27e6f04f44c6e, []int{111} } func (m *SplitRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7155,7 +7384,7 @@ func (m *SplitRegionsResponse) Reset() { *m = SplitRegionsResponse{} } func (m *SplitRegionsResponse) String() string { return proto.CompactTextString(m) } func (*SplitRegionsResponse) ProtoMessage() {} func (*SplitRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{109} + return fileDescriptor_78b27e6f04f44c6e, []int{112} } func (m *SplitRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7216,7 +7445,7 @@ func (m *SplitAndScatterRegionsRequest) Reset() { *m = SplitAndScatterRe func (m *SplitAndScatterRegionsRequest) String() string { return proto.CompactTextString(m) } func (*SplitAndScatterRegionsRequest) ProtoMessage() {} func (*SplitAndScatterRegionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{110} + return fileDescriptor_78b27e6f04f44c6e, []int{113} } func (m *SplitAndScatterRegionsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7284,7 +7513,7 @@ func (m *SplitAndScatterRegionsResponse) Reset() { *m = SplitAndScatterR func (m *SplitAndScatterRegionsResponse) String() string { return proto.CompactTextString(m) } func (*SplitAndScatterRegionsResponse) ProtoMessage() {} func (*SplitAndScatterRegionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{111} + return fileDescriptor_78b27e6f04f44c6e, []int{114} } func (m *SplitAndScatterRegionsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7350,7 +7579,7 @@ func (m *GetDCLocationInfoRequest) Reset() { *m = GetDCLocationInfoReque func (m *GetDCLocationInfoRequest) String() string { return proto.CompactTextString(m) } func (*GetDCLocationInfoRequest) ProtoMessage() {} func (*GetDCLocationInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{112} + return fileDescriptor_78b27e6f04f44c6e, []int{115} } func (m *GetDCLocationInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7406,7 +7635,7 @@ func (m *GetDCLocationInfoResponse) Reset() { *m = GetDCLocationInfoResp func (m *GetDCLocationInfoResponse) String() string { return proto.CompactTextString(m) } func (*GetDCLocationInfoResponse) ProtoMessage() {} func (*GetDCLocationInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{113} + return fileDescriptor_78b27e6f04f44c6e, []int{116} } func (m *GetDCLocationInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7474,7 +7703,7 @@ func (m *QueryStats) Reset() { *m = QueryStats{} } func (m *QueryStats) String() string { return proto.CompactTextString(m) } func (*QueryStats) ProtoMessage() {} func (*QueryStats) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{114} + return fileDescriptor_78b27e6f04f44c6e, []int{117} } func (m *QueryStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7590,7 +7819,7 @@ func (m *ReportBucketsRequest) Reset() { *m = ReportBucketsRequest{} } func (m *ReportBucketsRequest) String() string { return proto.CompactTextString(m) } func (*ReportBucketsRequest) ProtoMessage() {} func (*ReportBucketsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{115} + return fileDescriptor_78b27e6f04f44c6e, []int{118} } func (m *ReportBucketsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7648,7 +7877,7 @@ func (m *ReportBucketsResponse) Reset() { *m = ReportBucketsResponse{} } func (m *ReportBucketsResponse) String() string { return proto.CompactTextString(m) } func (*ReportBucketsResponse) ProtoMessage() {} func (*ReportBucketsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{116} + return fileDescriptor_78b27e6f04f44c6e, []int{119} } func (m *ReportBucketsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7694,7 +7923,7 @@ func (m *ReportMinResolvedTsRequest) Reset() { *m = ReportMinResolvedTsR func (m *ReportMinResolvedTsRequest) String() string { return proto.CompactTextString(m) } func (*ReportMinResolvedTsRequest) ProtoMessage() {} func (*ReportMinResolvedTsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{117} + return fileDescriptor_78b27e6f04f44c6e, []int{120} } func (m *ReportMinResolvedTsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7752,7 +7981,7 @@ func (m *ReportMinResolvedTsResponse) Reset() { *m = ReportMinResolvedTs func (m *ReportMinResolvedTsResponse) String() string { return proto.CompactTextString(m) } func (*ReportMinResolvedTsResponse) ProtoMessage() {} func (*ReportMinResolvedTsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{118} + return fileDescriptor_78b27e6f04f44c6e, []int{121} } func (m *ReportMinResolvedTsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7797,7 +8026,7 @@ func (m *SetExternalTimestampRequest) Reset() { *m = SetExternalTimestam func (m *SetExternalTimestampRequest) String() string { return proto.CompactTextString(m) } func (*SetExternalTimestampRequest) ProtoMessage() {} func (*SetExternalTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{119} + return fileDescriptor_78b27e6f04f44c6e, []int{122} } func (m *SetExternalTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7848,7 +8077,7 @@ func (m *SetExternalTimestampResponse) Reset() { *m = SetExternalTimesta func (m *SetExternalTimestampResponse) String() string { return proto.CompactTextString(m) } func (*SetExternalTimestampResponse) ProtoMessage() {} func (*SetExternalTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{120} + return fileDescriptor_78b27e6f04f44c6e, []int{123} } func (m *SetExternalTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7892,7 +8121,7 @@ func (m *GetExternalTimestampRequest) Reset() { *m = GetExternalTimestam func (m *GetExternalTimestampRequest) String() string { return proto.CompactTextString(m) } func (*GetExternalTimestampRequest) ProtoMessage() {} func (*GetExternalTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{121} + return fileDescriptor_78b27e6f04f44c6e, []int{124} } func (m *GetExternalTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7937,7 +8166,7 @@ func (m *GetExternalTimestampResponse) Reset() { *m = GetExternalTimesta func (m *GetExternalTimestampResponse) String() string { return proto.CompactTextString(m) } func (*GetExternalTimestampResponse) ProtoMessage() {} func (*GetExternalTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{122} + return fileDescriptor_78b27e6f04f44c6e, []int{125} } func (m *GetExternalTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7988,7 +8217,7 @@ func (m *GetMinTSRequest) Reset() { *m = GetMinTSRequest{} } func (m *GetMinTSRequest) String() string { return proto.CompactTextString(m) } func (*GetMinTSRequest) ProtoMessage() {} func (*GetMinTSRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{123} + return fileDescriptor_78b27e6f04f44c6e, []int{126} } func (m *GetMinTSRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8033,7 +8262,7 @@ func (m *GetMinTSResponse) Reset() { *m = GetMinTSResponse{} } func (m *GetMinTSResponse) String() string { return proto.CompactTextString(m) } func (*GetMinTSResponse) ProtoMessage() {} func (*GetMinTSResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_78b27e6f04f44c6e, []int{124} + return fileDescriptor_78b27e6f04f44c6e, []int{127} } func (m *GetMinTSResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8114,6 +8343,10 @@ func init() { proto.RegisterType((*GetRegionRequest)(nil), "pdpb.GetRegionRequest") proto.RegisterType((*GetRegionResponse)(nil), "pdpb.GetRegionResponse") proto.RegisterType((*GetRegionByIDRequest)(nil), "pdpb.GetRegionByIDRequest") + proto.RegisterType((*QueryRegionRequest)(nil), "pdpb.QueryRegionRequest") + proto.RegisterType((*QueryRegionResponse)(nil), "pdpb.QueryRegionResponse") + proto.RegisterMapType((map[uint64]*RegionResponse)(nil), "pdpb.QueryRegionResponse.RegionsByIdEntry") + proto.RegisterType((*RegionResponse)(nil), "pdpb.RegionResponse") proto.RegisterType((*ScanRegionsRequest)(nil), "pdpb.ScanRegionsRequest") proto.RegisterType((*Region)(nil), "pdpb.Region") proto.RegisterType((*ScanRegionsResponse)(nil), "pdpb.ScanRegionsResponse") @@ -8215,406 +8448,417 @@ func init() { func init() { proto.RegisterFile("pdpb.proto", fileDescriptor_78b27e6f04f44c6e) } var fileDescriptor_78b27e6f04f44c6e = []byte{ - // 6377 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x4b, 0x73, 0xe4, 0xc8, - 0x71, 0x30, 0xd1, 0x0f, 0xb2, 0x3b, 0xfb, 0x41, 0xb0, 0xc8, 0x19, 0xf6, 0xf4, 0x3c, 0x17, 0x33, - 0xb3, 0xdf, 0xcc, 0x68, 0x77, 0x76, 0x97, 0xbb, 0xd2, 0xb7, 0xda, 0xef, 0xd3, 0x86, 0x9a, 0x64, - 0x0f, 0xb7, 0x77, 0xf8, 0xe8, 0x0f, 0xdd, 0x9c, 0xd5, 0x7e, 0x56, 0x18, 0x01, 0x02, 0x45, 0x12, - 0x22, 0x1a, 0xe8, 0x05, 0xd0, 0x9c, 0x69, 0x85, 0x0f, 0x7e, 0xc9, 0xb6, 0xc2, 0x52, 0x58, 0x11, - 0xf2, 0x43, 0xbe, 0xe8, 0x60, 0x3b, 0x6c, 0x47, 0xd8, 0xbe, 0xf8, 0xe0, 0xf0, 0xcd, 0x37, 0x87, - 0x8f, 0x3a, 0x2a, 0x7c, 0x70, 0x28, 0xb4, 0xbe, 0xf8, 0x0f, 0xf8, 0x62, 0x1f, 0x1c, 0xf5, 0x42, - 0x03, 0x68, 0x74, 0x73, 0x06, 0xb3, 0xa3, 0xd0, 0xa9, 0x1b, 0x99, 0x89, 0xac, 0xac, 0xac, 0xac, - 0xac, 0xcc, 0xac, 0x2a, 0x00, 0x0c, 0xcd, 0xe1, 0xd1, 0xc3, 0xa1, 0xe7, 0x06, 0x2e, 0x2a, 0x90, - 0xff, 0xcd, 0xea, 0x00, 0x07, 0xba, 0x80, 0x35, 0x6b, 0xd8, 0xd3, 0x8f, 0x83, 0xf0, 0x71, 0x95, - 0x3c, 0x69, 0x3e, 0xf6, 0xce, 0xb1, 0x17, 0x02, 0x1b, 0x1e, 0x1e, 0xda, 0x96, 0xa1, 0x07, 0x96, - 0xeb, 0x68, 0x03, 0xd7, 0xc4, 0x21, 0x66, 0xed, 0xc4, 0x3d, 0x71, 0xe9, 0xdf, 0xb7, 0xc8, 0x3f, - 0x0e, 0x5d, 0xf6, 0x46, 0x7e, 0x40, 0xff, 0x32, 0x80, 0xf2, 0x09, 0x34, 0x3e, 0xd1, 0x03, 0xe3, - 0x74, 0xc7, 0x76, 0x8f, 0x74, 0x7b, 0xcb, 0x75, 0x8e, 0xad, 0x13, 0x15, 0x7f, 0x36, 0xc2, 0x7e, - 0x80, 0x6e, 0x42, 0xc5, 0xa0, 0x00, 0x6d, 0xa8, 0x07, 0xa7, 0x0d, 0xe9, 0x96, 0x74, 0xaf, 0xac, - 0x02, 0x03, 0x75, 0xf5, 0xe0, 0x14, 0x35, 0xa1, 0xe4, 0xe1, 0x73, 0xcb, 0xb7, 0x5c, 0xa7, 0x91, - 0xbb, 0x25, 0xdd, 0xcb, 0xab, 0xe1, 0xb3, 0xf2, 0x27, 0x12, 0x5c, 0x49, 0xe1, 0xec, 0x0f, 0x5d, - 0xc7, 0xc7, 0xe8, 0x6d, 0x58, 0x32, 0x4e, 0x75, 0xe7, 0x04, 0xfb, 0x0d, 0xe9, 0x56, 0xfe, 0x5e, - 0x65, 0xe3, 0xf2, 0x43, 0xaa, 0x8d, 0x28, 0x71, 0x27, 0xc0, 0x03, 0x55, 0x90, 0xcd, 0x6b, 0x0b, - 0xbd, 0x01, 0x8b, 0xa7, 0x58, 0x37, 0xb1, 0xd7, 0xc8, 0xdf, 0x92, 0xee, 0x55, 0x36, 0xd6, 0x18, - 0x33, 0xd1, 0xda, 0x47, 0x14, 0xa7, 0x72, 0x1a, 0x65, 0x00, 0x8d, 0x5e, 0xe0, 0x7a, 0x38, 0xad, - 0xcb, 0x2f, 0x2e, 0x57, 0x42, 0x49, 0xb9, 0xa4, 0x92, 0x94, 0x0f, 0xe1, 0x4a, 0x4a, 0x73, 0x5c, - 0x0f, 0xaf, 0x41, 0x11, 0x7b, 0x9e, 0xeb, 0x51, 0xe5, 0x56, 0x36, 0x2a, 0xac, 0xb5, 0x36, 0x01, - 0xa9, 0x0c, 0xa3, 0x74, 0x61, 0x7d, 0xd7, 0xd5, 0xcd, 0x34, 0x69, 0xd7, 0xa0, 0xe8, 0xe8, 0x03, - 0x2e, 0x6b, 0x59, 0x65, 0x0f, 0x17, 0x4b, 0x64, 0x42, 0x63, 0x9a, 0x23, 0x17, 0xe8, 0x0d, 0x28, - 0x5a, 0x01, 0x1e, 0x5c, 0xd4, 0x7d, 0x46, 0x34, 0xd7, 0x00, 0x7e, 0x2c, 0x81, 0x9c, 0x7c, 0x0f, - 0x21, 0x28, 0x10, 0x21, 0xb9, 0x2d, 0xd1, 0xff, 0xa4, 0x17, 0xe7, 0xba, 0x3d, 0xc2, 0x5c, 0x52, - 0xf6, 0x30, 0xd1, 0x4c, 0x7e, 0x96, 0x66, 0xd0, 0x6d, 0x28, 0x9c, 0x59, 0x8e, 0xd9, 0x28, 0xdc, - 0x92, 0xee, 0xd5, 0x37, 0x96, 0x39, 0xc5, 0x39, 0x76, 0x82, 0xfe, 0x78, 0x88, 0x55, 0x8a, 0x44, - 0x0d, 0x58, 0x1a, 0xea, 0x63, 0xdb, 0xd5, 0xcd, 0x46, 0xf1, 0x96, 0x74, 0xaf, 0xaa, 0x8a, 0x47, - 0xe5, 0x87, 0x12, 0xd4, 0xb8, 0x26, 0x99, 0x85, 0xa0, 0xeb, 0x00, 0x86, 0x3d, 0xf2, 0x03, 0xec, - 0x69, 0x96, 0x49, 0x65, 0x2c, 0xa8, 0x65, 0x0e, 0xe9, 0x98, 0xe8, 0x2a, 0x94, 0x7d, 0xec, 0x98, - 0x0c, 0x9b, 0xa3, 0xd8, 0x12, 0x03, 0x30, 0xa4, 0xa1, 0xdb, 0x36, 0x43, 0xe6, 0x69, 0x4f, 0x4a, - 0x0c, 0xd0, 0x31, 0xd1, 0x7d, 0x90, 0x39, 0xd2, 0x70, 0x07, 0x43, 0xd7, 0xc1, 0x4e, 0x40, 0xa5, - 0x2e, 0xab, 0xcb, 0x0c, 0xbe, 0x25, 0xc0, 0x8a, 0x0a, 0xf5, 0xb8, 0xdd, 0x5e, 0x24, 0x55, 0xa8, - 0xa8, 0xdc, 0x4c, 0x13, 0x7a, 0x04, 0xc5, 0xb6, 0xd0, 0x58, 0x30, 0x1e, 0x32, 0xf5, 0x4f, 0x34, - 0x46, 0x50, 0x4c, 0x63, 0x04, 0x49, 0x34, 0x36, 0xc0, 0xbe, 0xaf, 0x9f, 0x88, 0x11, 0x11, 0x8f, - 0xca, 0x10, 0xa0, 0xef, 0xbb, 0xc2, 0xfa, 0xbe, 0x14, 0xce, 0x3a, 0x66, 0xbc, 0xab, 0x62, 0xd6, - 0x45, 0x54, 0x2a, 0x26, 0x1d, 0x19, 0x64, 0xc3, 0x1d, 0x39, 0x01, 0x65, 0x59, 0x53, 0xd9, 0x03, - 0x31, 0x55, 0xd3, 0xd0, 0x6c, 0x97, 0x39, 0x30, 0xae, 0x36, 0x30, 0x8d, 0x5d, 0x0e, 0x51, 0x8e, - 0xa0, 0xdc, 0xb7, 0x06, 0xd8, 0x0f, 0xf4, 0xc1, 0x90, 0x58, 0xdb, 0xf0, 0x74, 0xec, 0x5b, 0x86, - 0x6e, 0xd3, 0x26, 0xf3, 0x6a, 0xf8, 0x4c, 0x84, 0xb6, 0xdd, 0x13, 0x8a, 0x62, 0x86, 0x28, 0x1e, - 0x49, 0x1b, 0xfe, 0xe8, 0xf8, 0xd8, 0x7a, 0xa6, 0x1d, 0x59, 0x81, 0x4f, 0xdb, 0xa8, 0xa9, 0xc0, - 0x40, 0x9b, 0x56, 0xe0, 0x2b, 0xbf, 0x2e, 0x41, 0x85, 0x76, 0x2b, 0x9c, 0x02, 0xf1, 0x7e, 0xcd, - 0xf5, 0x26, 0x33, 0x3a, 0xf6, 0x26, 0x94, 0x03, 0x21, 0x37, 0xb7, 0x60, 0xae, 0xed, 0xb0, 0x3b, - 0xea, 0x84, 0x42, 0xf9, 0x9e, 0x04, 0xf2, 0xa6, 0xeb, 0x06, 0x7e, 0xe0, 0xe9, 0xc3, 0x4c, 0xfa, - 0xbd, 0x0d, 0x45, 0x9f, 0x78, 0x19, 0x6e, 0x05, 0xb5, 0x87, 0x7c, 0x29, 0xa1, 0xae, 0x47, 0x65, - 0x38, 0xf4, 0x3a, 0x2c, 0x7a, 0xf8, 0x44, 0x68, 0xba, 0xb2, 0x51, 0x17, 0x54, 0x2a, 0x85, 0xaa, - 0x1c, 0x4b, 0x7c, 0xf7, 0x4a, 0x44, 0x9c, 0x4c, 0x7a, 0xe9, 0x03, 0x8a, 0xae, 0x4d, 0x7e, 0xa0, - 0x07, 0x23, 0x9f, 0x4b, 0x77, 0xf7, 0x61, 0xca, 0xb2, 0xa5, 0x4e, 0x40, 0x3d, 0x4a, 0xac, 0xae, - 0x78, 0x49, 0x90, 0xb2, 0x0d, 0x97, 0x3a, 0x7e, 0x28, 0xda, 0x10, 0x9b, 0x59, 0x94, 0xa5, 0x7c, - 0x0b, 0x2e, 0x27, 0xb9, 0x64, 0xea, 0xa3, 0x02, 0xd5, 0xa3, 0x08, 0x17, 0xda, 0xbb, 0x92, 0x1a, - 0x83, 0x29, 0x5f, 0x83, 0x7a, 0xcb, 0xb6, 0x5d, 0xa3, 0xb3, 0x9d, 0x49, 0xd4, 0x03, 0x58, 0x0e, - 0x5f, 0xcf, 0x24, 0x63, 0x1d, 0x72, 0xa1, 0xb7, 0xca, 0x59, 0xa6, 0xf2, 0x31, 0x5c, 0xed, 0xf8, - 0x3d, 0x47, 0x1f, 0xfa, 0xa7, 0x6e, 0xa0, 0x62, 0xc3, 0x3d, 0xc7, 0x9e, 0xe5, 0x9c, 0x64, 0x12, - 0xce, 0x84, 0x6b, 0xe9, 0xbc, 0x32, 0x49, 0x7a, 0x19, 0x16, 0x07, 0xba, 0x77, 0x16, 0xea, 0x91, - 0x3f, 0x29, 0x9f, 0xc2, 0xf2, 0x0e, 0x0e, 0x98, 0x21, 0x67, 0x99, 0x1a, 0x57, 0xa0, 0x44, 0xcd, - 0x7f, 0xe2, 0xb5, 0x97, 0xe8, 0x73, 0xc7, 0x54, 0xbe, 0x4f, 0xd6, 0xa8, 0x90, 0x77, 0x26, 0xa9, - 0x9f, 0x73, 0xe2, 0x15, 0xc9, 0x04, 0xf0, 0xf9, 0xbc, 0x93, 0x19, 0x47, 0x4a, 0x42, 0x0c, 0xdb, - 0x57, 0x19, 0x5a, 0x31, 0x60, 0xb9, 0x3b, 0x7a, 0x89, 0xae, 0x3e, 0x8f, 0x30, 0xca, 0x1f, 0x4b, - 0x20, 0x4f, 0x5a, 0xf9, 0x25, 0x9a, 0xdc, 0xbf, 0x06, 0xab, 0x3b, 0x38, 0x68, 0xd9, 0x36, 0x15, - 0xcd, 0xcf, 0xa4, 0x81, 0xf7, 0xa1, 0x81, 0x9f, 0x19, 0xf6, 0xc8, 0xc4, 0x5a, 0xe0, 0x0e, 0x8e, - 0xfc, 0xc0, 0x75, 0xb0, 0x46, 0xfb, 0xed, 0x73, 0xb3, 0xba, 0xcc, 0xf1, 0x7d, 0x81, 0x66, 0xad, - 0x29, 0x67, 0xb0, 0x16, 0x6f, 0x3d, 0x93, 0x66, 0xee, 0xc2, 0x62, 0xd8, 0x5a, 0x7e, 0x7a, 0x08, - 0x38, 0x52, 0xf9, 0x0d, 0x66, 0x78, 0xdc, 0xef, 0x66, 0xe9, 0xe8, 0x75, 0x00, 0xe6, 0xad, 0xb5, - 0x33, 0x3c, 0xa6, 0x5d, 0xab, 0xaa, 0x65, 0x06, 0x79, 0x8c, 0xc7, 0xe8, 0x35, 0xa8, 0x3a, 0x18, - 0x9b, 0xda, 0xd1, 0xc8, 0x38, 0xc3, 0xdc, 0xf0, 0x4a, 0x6a, 0x85, 0xc0, 0x36, 0x19, 0x48, 0xf9, - 0xf3, 0x1c, 0xac, 0x44, 0x64, 0xc8, 0xd4, 0xdd, 0xc9, 0x8a, 0x92, 0x9b, 0xb7, 0xa2, 0xa0, 0x3b, - 0xb0, 0x68, 0x47, 0x23, 0xf4, 0xaa, 0xa0, 0xeb, 0x62, 0xc2, 0x8d, 0xe1, 0xd0, 0x43, 0x00, 0xd3, - 0x7d, 0xea, 0x68, 0x43, 0x8c, 0x3d, 0xbf, 0x51, 0xa4, 0x0a, 0xe4, 0xcb, 0x26, 0xa1, 0x63, 0x53, - 0xa5, 0x4c, 0x48, 0xc8, 0xa3, 0x8f, 0xde, 0x81, 0xda, 0x10, 0x3b, 0xa6, 0xe5, 0x9c, 0xf0, 0x57, - 0x16, 0xe9, 0x2b, 0x71, 0xe6, 0x55, 0x4e, 0xc2, 0x5e, 0xb9, 0x0f, 0x4b, 0x42, 0x25, 0x4b, 0x7c, - 0x59, 0xe6, 0xc4, 0x5c, 0x2d, 0xaa, 0xc0, 0x7f, 0x5c, 0x28, 0x15, 0xe4, 0xa2, 0xf2, 0x5b, 0x12, - 0xb5, 0x0b, 0xd6, 0x9f, 0xcd, 0x71, 0x36, 0x37, 0x4e, 0xa2, 0x43, 0x3e, 0x5a, 0x93, 0xd0, 0x91, - 0x01, 0x68, 0x04, 0x77, 0xe1, 0x58, 0x7d, 0x5f, 0x02, 0xd4, 0x33, 0x74, 0x87, 0x89, 0xe1, 0x67, - 0x95, 0xc1, 0x0f, 0x74, 0x2f, 0x88, 0x18, 0x4c, 0x89, 0x02, 0x88, 0xbd, 0xac, 0x41, 0xd1, 0xb6, - 0x06, 0x56, 0x40, 0x1b, 0x2f, 0xaa, 0xec, 0x01, 0xad, 0xc3, 0x12, 0x76, 0x4c, 0xfa, 0x42, 0x81, - 0xbe, 0xb0, 0x88, 0x1d, 0xf3, 0x31, 0x1e, 0x2b, 0xff, 0x2e, 0xc1, 0x22, 0x93, 0x25, 0x62, 0x02, - 0xd2, 0x73, 0x9a, 0x40, 0xee, 0xb9, 0x4d, 0x20, 0xff, 0xe2, 0x26, 0x50, 0x78, 0x11, 0x13, 0x28, - 0xce, 0x37, 0x01, 0xe5, 0x9f, 0x25, 0x58, 0x8d, 0xa9, 0x3d, 0xd3, 0x24, 0x79, 0x07, 0xaa, 0x7c, - 0xf0, 0x49, 0x3b, 0xc2, 0x33, 0x24, 0xf5, 0x54, 0x61, 0x34, 0x7b, 0x84, 0x04, 0xbd, 0x0e, 0x4b, - 0x4c, 0x21, 0x42, 0x07, 0xf1, 0x0e, 0x09, 0x24, 0xa1, 0x63, 0xaf, 0x4d, 0x3a, 0xce, 0x25, 0xa1, - 0x3c, 0x05, 0x52, 0xf9, 0x3a, 0x94, 0x1e, 0xe3, 0xb1, 0x4a, 0x52, 0xd6, 0xb8, 0x1d, 0x48, 0x09, - 0x3b, 0x88, 0x8c, 0x78, 0x2e, 0x36, 0xe2, 0xff, 0x2a, 0xc1, 0xfa, 0x26, 0xc9, 0xe7, 0x5f, 0xd6, - 0x0c, 0x93, 0xd6, 0x9e, 0x9b, 0xb2, 0x76, 0x6a, 0x52, 0x2c, 0x09, 0xcf, 0x73, 0x55, 0x51, 0x7e, - 0xa2, 0x07, 0x2a, 0xc7, 0x4e, 0x8c, 0xb6, 0x10, 0x35, 0xda, 0x77, 0xe0, 0x92, 0xe1, 0x3a, 0x81, - 0x6e, 0x39, 0x9a, 0x6e, 0xdb, 0xa4, 0x2b, 0x1a, 0xa5, 0xa7, 0xa3, 0x5d, 0x52, 0x11, 0x47, 0xb6, - 0x6c, 0x5b, 0x30, 0x54, 0x86, 0xd0, 0x98, 0xee, 0x5b, 0x46, 0x87, 0x18, 0x0e, 0x48, 0x6e, 0xde, - 0x80, 0x3c, 0x82, 0xf5, 0x1d, 0x1c, 0x6c, 0xb1, 0x2c, 0x2e, 0x9e, 0xd5, 0xbf, 0x50, 0x08, 0xe6, - 0x43, 0x63, 0x9a, 0x4f, 0x26, 0xc9, 0xef, 0xc3, 0x12, 0x4f, 0x2a, 0xf9, 0x04, 0x0d, 0xa7, 0x05, - 0xe7, 0xae, 0x0a, 0xbc, 0xf2, 0x19, 0xac, 0x77, 0x47, 0x2f, 0x2f, 0xfc, 0x8b, 0x34, 0xf9, 0x11, - 0x34, 0xa6, 0x9b, 0xcc, 0xd2, 0x4f, 0xe5, 0x2f, 0x72, 0xb0, 0xb8, 0x87, 0x07, 0x47, 0xd8, 0x4b, - 0xad, 0x46, 0x5c, 0x85, 0xf2, 0x80, 0x62, 0x23, 0x9e, 0x9a, 0x01, 0x58, 0x92, 0x4f, 0xbc, 0x8c, - 0x36, 0xf2, 0x6c, 0x66, 0x9b, 0x65, 0xb5, 0x44, 0x00, 0x87, 0x9e, 0xcd, 0xea, 0x2e, 0xb6, 0x85, - 0x9d, 0x80, 0xa1, 0x0b, 0x14, 0x0d, 0x0c, 0x44, 0x09, 0xfe, 0x17, 0x2c, 0xb3, 0x79, 0xab, 0x0d, - 0x3d, 0xcb, 0xf5, 0xac, 0x60, 0x4c, 0x4d, 0xb2, 0xa8, 0xd6, 0x19, 0xb8, 0xcb, 0xa1, 0x34, 0x2d, - 0xc6, 0x43, 0xdb, 0x1d, 0xb3, 0x0a, 0xce, 0x22, 0x4f, 0x8b, 0x29, 0x88, 0x16, 0xde, 0xee, 0x42, - 0xfd, 0xc8, 0x72, 0x74, 0x6f, 0xac, 0x9d, 0x63, 0x8f, 0x56, 0x5f, 0x96, 0x28, 0x4d, 0x8d, 0x41, - 0x9f, 0x30, 0x20, 0x89, 0x7c, 0x4f, 0xac, 0x40, 0x3b, 0xd5, 0xfd, 0xd3, 0x46, 0x89, 0xa5, 0xf2, - 0x27, 0x56, 0xf0, 0x91, 0xee, 0x9f, 0x26, 0x33, 0xef, 0xf2, 0x54, 0xe6, 0xfd, 0x75, 0x1a, 0x1c, - 0x30, 0x45, 0x65, 0x9a, 0xe8, 0xca, 0x7f, 0xe7, 0x00, 0x45, 0x59, 0x64, 0x9d, 0x4f, 0x4c, 0xfb, - 0x89, 0xf9, 0xc4, 0xb8, 0xaa, 0x02, 0x99, 0x12, 0x60, 0x44, 0xc9, 0xc4, 0xea, 0xf2, 0x26, 0x54, - 0x70, 0x60, 0x98, 0x1a, 0x27, 0x2d, 0xa4, 0x90, 0x02, 0x21, 0xd8, 0x65, 0xe4, 0x18, 0x2e, 0x05, - 0xbe, 0x4b, 0xbc, 0x08, 0xd1, 0x8a, 0xeb, 0x69, 0xc2, 0x27, 0xb3, 0xd0, 0xe4, 0x1d, 0x5e, 0x1c, - 0x9b, 0xea, 0xe3, 0xc3, 0xbe, 0xef, 0xb6, 0xc4, 0x4b, 0x8c, 0x97, 0xdf, 0x76, 0x02, 0x6f, 0xac, - 0xae, 0x06, 0xd3, 0x98, 0x66, 0x1f, 0x1a, 0xb3, 0x5e, 0x40, 0x32, 0xe4, 0x85, 0x9b, 0x2e, 0xab, - 0xe4, 0x2f, 0x52, 0xa2, 0xe5, 0xb2, 0xa4, 0xf4, 0x0c, 0xf5, 0x41, 0xee, 0x7d, 0x49, 0x69, 0xc3, - 0xa5, 0x89, 0x67, 0xe8, 0x38, 0xc7, 0x61, 0xdd, 0xe6, 0xc5, 0xa6, 0xcb, 0x8f, 0x24, 0xb8, 0x9c, - 0xe4, 0x93, 0x69, 0x24, 0xbf, 0x0c, 0x55, 0x1f, 0x7b, 0xe7, 0x96, 0x81, 0xf7, 0x5c, 0x93, 0xc7, - 0xc7, 0xf5, 0x8d, 0x15, 0x9e, 0x0a, 0x4d, 0x30, 0x6a, 0x8c, 0x8c, 0xd8, 0x30, 0x19, 0x83, 0xc8, - 0x8c, 0x5b, 0x0a, 0x7c, 0x97, 0xcc, 0x27, 0xa5, 0x0b, 0xe5, 0x30, 0x26, 0x40, 0xb7, 0xa0, 0x40, - 0x66, 0x22, 0x17, 0x25, 0xbe, 0x5c, 0x52, 0x0c, 0x59, 0x78, 0x68, 0x68, 0xe1, 0x63, 0xc3, 0x75, - 0x4c, 0x9f, 0x4f, 0xee, 0x0a, 0x81, 0xf5, 0x18, 0x48, 0xf9, 0xcf, 0x22, 0x5c, 0x66, 0x9e, 0xfa, - 0x23, 0xac, 0x7b, 0xc1, 0x11, 0xd6, 0x83, 0x4c, 0x8e, 0xed, 0x55, 0x86, 0xc5, 0x85, 0x17, 0x8f, - 0x89, 0x8a, 0x17, 0xc6, 0x44, 0xb7, 0xa1, 0x76, 0x34, 0x0e, 0xb0, 0xaf, 0x3d, 0xf5, 0xac, 0x20, - 0xc0, 0x0e, 0xf5, 0x39, 0x05, 0xb5, 0x4a, 0x81, 0x9f, 0x30, 0x18, 0x49, 0x39, 0x18, 0x91, 0x87, - 0x75, 0x93, 0x7a, 0x9c, 0x82, 0x5a, 0xa6, 0x10, 0x15, 0xeb, 0x34, 0x8c, 0x3d, 0xc3, 0xe3, 0x09, - 0x8b, 0x12, 0xd3, 0x2f, 0x81, 0x09, 0x0e, 0x57, 0xa1, 0x4c, 0x49, 0x28, 0x83, 0x32, 0x73, 0xae, - 0x04, 0x40, 0xdf, 0xbf, 0x0f, 0xb2, 0x3e, 0x1c, 0x7a, 0xee, 0x33, 0x6b, 0xa0, 0x07, 0x58, 0xf3, - 0xad, 0x6f, 0xe3, 0x06, 0x50, 0x9a, 0xe5, 0x08, 0xbc, 0x67, 0x7d, 0x1b, 0xa3, 0x87, 0x50, 0xb2, - 0x9c, 0x00, 0x7b, 0xe7, 0xba, 0xdd, 0xa8, 0x52, 0xcd, 0xa1, 0x49, 0x75, 0xad, 0xc3, 0x31, 0x6a, - 0x48, 0x93, 0x64, 0x4d, 0x9a, 0x6c, 0xd4, 0xa6, 0x58, 0x3f, 0xc6, 0x63, 0x9f, 0xac, 0x09, 0x01, - 0xf6, 0x06, 0x8d, 0x3a, 0x45, 0xd3, 0xff, 0xe8, 0xff, 0xa7, 0xa6, 0xbb, 0xcb, 0xb4, 0xe1, 0x2f, - 0xa5, 0xa7, 0xbb, 0x2c, 0xa7, 0xba, 0x38, 0xe9, 0x45, 0xef, 0x40, 0xe5, 0xb3, 0x11, 0xf6, 0xc6, - 0x1a, 0x2b, 0x10, 0xc8, 0xd1, 0x02, 0xc1, 0xff, 0x23, 0x08, 0x36, 0xbc, 0xf0, 0x59, 0xf8, 0x9f, - 0x96, 0x9a, 0x87, 0x23, 0x6d, 0x44, 0x4b, 0xb4, 0x2b, 0x4c, 0x8b, 0xc6, 0x70, 0x74, 0x48, 0x9e, - 0xd1, 0x43, 0x58, 0x8d, 0x75, 0xf5, 0x9c, 0x29, 0x12, 0x51, 0xb2, 0x95, 0x68, 0x6f, 0xcf, 0x89, - 0x2a, 0x3f, 0x2e, 0x94, 0x2a, 0x72, 0x55, 0x39, 0x05, 0xd8, 0xa2, 0x1b, 0x1a, 0xc4, 0x1c, 0x9e, - 0x63, 0x2e, 0xbd, 0x0f, 0x15, 0xb6, 0x01, 0xa2, 0xd1, 0x7a, 0x72, 0x8e, 0xd6, 0x93, 0xd7, 0x1f, - 0x8a, 0x1d, 0x2b, 0xb2, 0x40, 0x33, 0x7e, 0xb4, 0xae, 0x0c, 0x46, 0xf8, 0x5f, 0xf9, 0x00, 0xaa, - 0x93, 0x96, 0x9e, 0x6c, 0xa0, 0x07, 0xc9, 0x1d, 0x17, 0xde, 0xf7, 0x09, 0x51, 0xb8, 0xd7, 0xa2, - 0x3c, 0x81, 0x7a, 0xdf, 0xd3, 0x1d, 0xff, 0x18, 0x73, 0x27, 0xf9, 0x1c, 0x92, 0x2a, 0x50, 0x64, - 0x93, 0x20, 0x97, 0x32, 0x09, 0x18, 0x4a, 0x79, 0x0b, 0x8a, 0x7b, 0xd8, 0x3b, 0xa1, 0x05, 0xd2, - 0x40, 0xf7, 0x4e, 0x70, 0x30, 0x2b, 0x97, 0x61, 0x58, 0x65, 0x17, 0x2a, 0xbd, 0xa1, 0x6d, 0xf1, - 0xac, 0x10, 0xdd, 0x87, 0xc5, 0xa1, 0x6b, 0x5b, 0xc6, 0x98, 0x17, 0xd6, 0x57, 0x44, 0x17, 0xb0, - 0x71, 0xd6, 0xa5, 0x08, 0x95, 0x13, 0x10, 0xf3, 0xa2, 0xd6, 0x47, 0xa4, 0xa9, 0xaa, 0xf4, 0xbf, - 0xb2, 0x03, 0xb5, 0xde, 0x53, 0x2b, 0x30, 0x4e, 0x3f, 0xb1, 0x02, 0x07, 0xfb, 0x3e, 0x09, 0xc2, - 0x69, 0x98, 0x11, 0x96, 0xfb, 0x17, 0xc9, 0x63, 0xc7, 0x24, 0x33, 0xd0, 0xf2, 0xb5, 0xa7, 0x8c, - 0x8c, 0x47, 0xce, 0x65, 0xcb, 0xe7, 0xef, 0x29, 0x7d, 0x40, 0x2c, 0x8c, 0x8d, 0x71, 0xfb, 0x10, - 0x64, 0x9f, 0x02, 0xc4, 0x8b, 0xa1, 0xaa, 0xb9, 0x0f, 0x8b, 0x91, 0xab, 0xcb, 0x7e, 0xf4, 0x11, - 0xfb, 0xca, 0x1f, 0x15, 0x60, 0x7d, 0xca, 0x29, 0x66, 0x4c, 0x84, 0x84, 0xd5, 0xd0, 0x41, 0xcb, - 0x45, 0x6d, 0x3d, 0x32, 0xde, 0xdc, 0x5c, 0xa8, 0x29, 0x7e, 0x0d, 0x96, 0x03, 0x3e, 0xe4, 0x9a, - 0x9d, 0xb2, 0xc7, 0x17, 0xb7, 0x07, 0xb5, 0x1e, 0xc4, 0xed, 0x23, 0x96, 0x77, 0x17, 0x12, 0x79, - 0xf7, 0x57, 0xc2, 0xbc, 0x0c, 0x0f, 0x5d, 0xe3, 0x94, 0x67, 0x83, 0xab, 0xf1, 0x31, 0x6f, 0x13, - 0x94, 0x48, 0xce, 0xe8, 0x03, 0x89, 0x22, 0x98, 0x1d, 0xb0, 0x6e, 0x2c, 0xa6, 0xd8, 0x1e, 0x30, - 0x82, 0x2e, 0x5b, 0x77, 0x8a, 0x03, 0x62, 0x5d, 0xbc, 0xe0, 0x50, 0x11, 0x0b, 0xb6, 0x77, 0x82, - 0x55, 0x86, 0x41, 0xef, 0x41, 0xd5, 0x27, 0xf6, 0xa4, 0xf1, 0x55, 0xa3, 0x44, 0x29, 0xc5, 0xda, - 0x38, 0xb1, 0x34, 0xb5, 0xe2, 0x47, 0xcc, 0xee, 0x7d, 0xa8, 0x47, 0xd4, 0xa9, 0x9d, 0x6f, 0x50, - 0x97, 0x1a, 0xfa, 0xc2, 0xe8, 0x34, 0x53, 0xab, 0x46, 0x74, 0xd2, 0x6d, 0xa5, 0x98, 0x04, 0xd0, - 0x77, 0x1b, 0xec, 0xdd, 0x69, 0x33, 0x9a, 0xb6, 0x8b, 0x63, 0x58, 0x6e, 0xf9, 0x67, 0x5c, 0xba, - 0x57, 0xb7, 0x48, 0x2a, 0xbf, 0x23, 0x81, 0x3c, 0x69, 0x28, 0x63, 0xa1, 0xbe, 0xe6, 0xe0, 0xa7, - 0x5a, 0xb2, 0x04, 0x53, 0x71, 0xf0, 0x53, 0x55, 0x58, 0xc3, 0x2d, 0x92, 0x97, 0x3e, 0xd5, 0xf8, - 0xc4, 0x63, 0xc1, 0x46, 0x41, 0x05, 0x07, 0x3f, 0xed, 0xd2, 0xc9, 0xe7, 0x2b, 0xbf, 0x2f, 0x01, - 0x52, 0xf1, 0xd0, 0xf5, 0x82, 0xec, 0x9d, 0x56, 0xa0, 0x60, 0xe3, 0xe3, 0x60, 0x46, 0x97, 0x29, - 0x0e, 0xdd, 0x81, 0xa2, 0x67, 0x9d, 0x9c, 0x06, 0x33, 0x76, 0x69, 0x18, 0x52, 0xd9, 0x82, 0xd5, - 0x98, 0x30, 0x99, 0x92, 0xa1, 0xef, 0x49, 0xb0, 0xd6, 0xf2, 0xcf, 0xd8, 0x70, 0xbf, 0xea, 0x91, - 0xa4, 0x5b, 0x71, 0xd4, 0xcc, 0xd9, 0x8e, 0x99, 0xd8, 0x8a, 0x23, 0xa0, 0x2d, 0x02, 0x51, 0x0e, - 0x60, 0x89, 0x4a, 0xd1, 0xd9, 0x9e, 0x1e, 0x32, 0xe9, 0xe2, 0x21, 0xcb, 0x4d, 0x0d, 0xd9, 0x31, - 0x5c, 0x4a, 0x74, 0x2f, 0x93, 0xfd, 0xdc, 0x84, 0xbc, 0xe0, 0x5f, 0xd9, 0xa8, 0x45, 0xa6, 0x65, - 0x67, 0x5b, 0x25, 0x18, 0x65, 0x48, 0x5c, 0x24, 0x19, 0x8c, 0x97, 0xd4, 0xe4, 0xbd, 0x64, 0xf9, - 0x20, 0xa9, 0xca, 0xb0, 0x80, 0xf0, 0x11, 0x34, 0xa6, 0x5b, 0xcc, 0x64, 0x03, 0xdf, 0x84, 0x6a, - 0x34, 0x6c, 0x22, 0x69, 0x2a, 0xab, 0x0f, 0x4d, 0x76, 0x30, 0x99, 0xee, 0xeb, 0x14, 0x3c, 0xd9, - 0x8f, 0xbd, 0x0d, 0x35, 0xec, 0x98, 0x11, 0x32, 0x36, 0xab, 0xaa, 0xd8, 0x31, 0x43, 0x22, 0xe5, - 0x3d, 0x00, 0x15, 0x1b, 0xae, 0x67, 0x76, 0x75, 0xcb, 0x4b, 0x49, 0x67, 0x62, 0xbb, 0xff, 0x05, - 0x9e, 0xc0, 0x28, 0xff, 0x26, 0x41, 0x49, 0xc4, 0xb6, 0x71, 0x27, 0x2e, 0x25, 0x9c, 0x38, 0x45, - 0xea, 0xa6, 0xc6, 0x57, 0x55, 0x8e, 0xd4, 0x4d, 0x1a, 0xcc, 0xd1, 0x22, 0xb9, 0x6e, 0x6a, 0x34, - 0x48, 0xa5, 0xf6, 0x56, 0x50, 0x29, 0xf9, 0x26, 0x01, 0x24, 0x63, 0xaf, 0xc2, 0x73, 0xc4, 0x5e, - 0xaf, 0x41, 0x95, 0xc7, 0xb7, 0xac, 0xc5, 0x22, 0xb3, 0x4a, 0x0e, 0xa3, 0x8d, 0xde, 0x86, 0x9a, - 0x20, 0x61, 0xed, 0xf2, 0x58, 0x9a, 0x03, 0x69, 0xd3, 0xca, 0x9f, 0x96, 0x01, 0x26, 0xfb, 0x3f, - 0xb1, 0x3d, 0x2a, 0x29, 0xb6, 0x47, 0x85, 0x9a, 0x50, 0x32, 0xf4, 0xa1, 0x6e, 0x58, 0xc1, 0x58, - 0xf4, 0x4f, 0x3c, 0xa3, 0x6b, 0x50, 0xd6, 0xcf, 0x75, 0xcb, 0xd6, 0x8f, 0x6c, 0x2c, 0xba, 0x17, - 0x02, 0x88, 0xac, 0x5c, 0x6f, 0x6c, 0xbe, 0x15, 0xe8, 0x7c, 0xe3, 0x4b, 0x19, 0x9d, 0x70, 0xe8, - 0x0d, 0x40, 0x3e, 0x4f, 0x15, 0x7c, 0x47, 0x1f, 0x72, 0xc2, 0x22, 0x25, 0x94, 0x39, 0xa6, 0xe7, - 0xe8, 0x43, 0x46, 0xfd, 0x36, 0xac, 0x79, 0xd8, 0xc0, 0xd6, 0x79, 0x82, 0x7e, 0x91, 0xd2, 0xa3, - 0x10, 0x37, 0x79, 0xe3, 0x3a, 0xc0, 0xc4, 0x96, 0xe8, 0x02, 0x58, 0x53, 0xcb, 0xa1, 0x19, 0xf1, - 0x60, 0xd5, 0x1e, 0x27, 0xf8, 0x95, 0x28, 0xdd, 0x8a, 0x40, 0x4d, 0xd8, 0xad, 0xc3, 0x92, 0xe5, - 0x6b, 0x47, 0x23, 0x7f, 0x4c, 0x97, 0xba, 0x92, 0xba, 0x68, 0xf9, 0x9b, 0x23, 0x7f, 0x4c, 0xac, - 0x60, 0xe4, 0x63, 0x33, 0x9a, 0x34, 0x94, 0x08, 0x80, 0x66, 0x0b, 0x53, 0xc9, 0x4d, 0x25, 0x25, - 0xb9, 0x49, 0x66, 0x2f, 0xd5, 0xe9, 0xec, 0x25, 0x9e, 0xff, 0xd4, 0x92, 0xf9, 0x4f, 0x2c, 0xb9, - 0xa9, 0x27, 0x92, 0x9b, 0x68, 0xc6, 0xb2, 0xfc, 0x1c, 0x19, 0xcb, 0x5b, 0x00, 0x61, 0x8c, 0x4f, - 0xb2, 0x82, 0x48, 0x64, 0x3c, 0x99, 0x4e, 0x6a, 0x59, 0x84, 0xfd, 0x3e, 0x7a, 0x0f, 0x6a, 0xd4, - 0xd4, 0x2d, 0x57, 0xf3, 0x74, 0x62, 0x75, 0x2b, 0x33, 0xde, 0xa9, 0x10, 0xb2, 0x8e, 0xab, 0x12, - 0x22, 0xf4, 0x15, 0xa8, 0x93, 0x0e, 0xe3, 0xc9, 0x6b, 0x68, 0xc6, 0x6b, 0xd4, 0x7c, 0xb1, 0x78, - 0xef, 0x5d, 0xa8, 0xba, 0x43, 0xcd, 0xd6, 0x03, 0xec, 0x18, 0x16, 0xf6, 0x1b, 0xab, 0xb3, 0x1a, - 0x73, 0x87, 0xbb, 0x82, 0x08, 0xbd, 0x09, 0x40, 0x5d, 0x35, 0x9b, 0x6d, 0x6b, 0xd1, 0xd2, 0xae, - 0x98, 0xeb, 0x2a, 0xad, 0xaf, 0xb1, 0x39, 0x91, 0x98, 0x9d, 0x97, 0x9e, 0x63, 0x76, 0x12, 0x73, - 0xb3, 0xdd, 0xa7, 0x9a, 0x6f, 0xb8, 0x1e, 0x6e, 0x5c, 0x66, 0x23, 0x44, 0x20, 0x3d, 0x02, 0x20, - 0xd6, 0x6e, 0xea, 0x03, 0xfd, 0x04, 0x9b, 0x7c, 0x5d, 0xf1, 0xc9, 0x7c, 0x5b, 0xa7, 0xab, 0x86, - 0xcc, 0x31, 0xbc, 0xfc, 0xdb, 0x31, 0xc9, 0x0a, 0x64, 0xf9, 0x1a, 0x35, 0x42, 0x66, 0x72, 0x0d, - 0x56, 0xa9, 0xb6, 0xfc, 0x16, 0x81, 0x51, 0xbb, 0xfb, 0x2a, 0xd4, 0x7d, 0xbe, 0xff, 0xcd, 0xc5, - 0xbc, 0x42, 0xbb, 0xc5, 0x07, 0x57, 0xec, 0x8d, 0xd3, 0xae, 0xd5, 0xfc, 0xc8, 0x93, 0x4f, 0xb2, - 0x7a, 0x2a, 0x6b, 0xe0, 0x61, 0xc7, 0x6c, 0x34, 0xa3, 0x67, 0x44, 0x7a, 0xb6, 0xfb, 0xb4, 0x4f, - 0xc0, 0x4c, 0x78, 0xfa, 0x17, 0xdd, 0x81, 0xba, 0xe5, 0x6b, 0x27, 0xde, 0xd0, 0xd0, 0x86, 0x3a, - 0xb1, 0xed, 0xc6, 0x55, 0x76, 0xdc, 0xc0, 0xf2, 0x77, 0xbc, 0xa1, 0xd1, 0xa5, 0x30, 0x62, 0xc6, - 0x81, 0x1b, 0xe8, 0xb6, 0x36, 0xc0, 0x03, 0xd7, 0x1b, 0x37, 0xae, 0x31, 0x33, 0xa6, 0xb0, 0x3d, - 0x0a, 0x22, 0xab, 0x30, 0x9d, 0x2b, 0x9c, 0xe2, 0x3a, 0xa5, 0x00, 0x02, 0x62, 0x04, 0xca, 0x1f, - 0x48, 0x50, 0x0e, 0x45, 0xa0, 0x65, 0x4d, 0xc2, 0x5b, 0x63, 0x6e, 0x9a, 0x78, 0x27, 0x49, 0x05, - 0x0a, 0x7a, 0x42, 0x4f, 0x6a, 0x5d, 0x07, 0xf6, 0x44, 0x0d, 0x88, 0xba, 0x28, 0x49, 0x2d, 0x53, - 0x08, 0xb1, 0x15, 0xe6, 0x85, 0xfc, 0x91, 0x1d, 0x70, 0x06, 0x79, 0x4a, 0x50, 0x61, 0x30, 0xc6, - 0xe1, 0x26, 0xf0, 0x47, 0xc6, 0xa2, 0xc0, 0x9a, 0x60, 0x20, 0xc2, 0x43, 0xf9, 0x99, 0x04, 0xd5, - 0xa8, 0x2e, 0xe7, 0x2f, 0x09, 0x1b, 0x70, 0xe9, 0x04, 0x3b, 0x98, 0xf0, 0xd2, 0xcc, 0x91, 0xc7, - 0x93, 0x76, 0x6c, 0x70, 0xf7, 0xb9, 0x2a, 0x90, 0xdb, 0x1c, 0xd7, 0xc3, 0x06, 0x7a, 0x00, 0x2b, - 0xc4, 0xdd, 0xc5, 0xe9, 0x99, 0x47, 0x5d, 0x26, 0x88, 0x28, 0xed, 0x1b, 0x80, 0x98, 0x8e, 0x63, - 0xc4, 0x2c, 0xbb, 0x90, 0x29, 0x26, 0x4a, 0x7d, 0x17, 0x58, 0x52, 0x42, 0xd6, 0x6a, 0xe6, 0x9f, - 0xd8, 0x9a, 0x51, 0x0b, 0xa1, 0xc4, 0x49, 0x29, 0xdf, 0xc9, 0x01, 0xd0, 0xd4, 0x81, 0x2e, 0xea, - 0xe8, 0xff, 0x02, 0xb0, 0xf3, 0x9e, 0x01, 0xd1, 0x08, 0x5b, 0xc6, 0xaf, 0x3f, 0x8c, 0x1f, 0x01, - 0x55, 0xf5, 0xe3, 0x60, 0xd7, 0x35, 0x74, 0x9b, 0xa8, 0x04, 0xab, 0x65, 0x82, 0xa5, 0x7f, 0xd1, - 0x66, 0xe8, 0xf9, 0xd9, 0xfb, 0x2c, 0x2c, 0xbb, 0x99, 0x7c, 0x9f, 0x92, 0x44, 0x38, 0xf0, 0xa5, - 0x81, 0xf1, 0x78, 0x1d, 0x96, 0x2d, 0x5f, 0x3b, 0x76, 0x3d, 0x03, 0x47, 0x33, 0xaf, 0x92, 0x5a, - 0xb3, 0xfc, 0x47, 0x04, 0xba, 0x2b, 0x42, 0x16, 0xf9, 0x54, 0xf7, 0x35, 0xc3, 0x1d, 0x0c, 0xac, - 0x40, 0x63, 0x99, 0x4e, 0x81, 0x12, 0xd6, 0x4f, 0x75, 0x7f, 0x8b, 0x82, 0x59, 0x76, 0x7d, 0x1b, - 0x6a, 0x64, 0x36, 0x59, 0xd8, 0xd4, 0x2c, 0xc7, 0xc4, 0xcf, 0xb8, 0x22, 0xaa, 0x1c, 0xd8, 0x21, - 0x30, 0xe5, 0x09, 0x54, 0xf8, 0xc9, 0x04, 0xaa, 0x87, 0x77, 0xa1, 0x4a, 0x7d, 0x86, 0x47, 0x1f, - 0x13, 0x35, 0x82, 0x89, 0xbe, 0xd4, 0xca, 0x30, 0xfc, 0x4f, 0x6b, 0x38, 0x7e, 0x80, 0x45, 0x3c, - 0x42, 0xff, 0x2b, 0xff, 0x25, 0xc1, 0x25, 0xca, 0xf8, 0x65, 0x2b, 0x7b, 0xfc, 0x24, 0x47, 0x6e, - 0xee, 0x49, 0x0e, 0x9a, 0xd1, 0xd1, 0x05, 0x9d, 0x09, 0xce, 0x43, 0xf9, 0x95, 0x08, 0xb9, 0x10, - 0xdc, 0x8f, 0xf4, 0xf6, 0x13, 0x40, 0xa6, 0xa7, 0xe9, 0xa3, 0xc0, 0xf5, 0xc7, 0x8e, 0x21, 0x0a, - 0x4d, 0x2c, 0x2e, 0xb9, 0x9f, 0x56, 0x68, 0xa2, 0x9c, 0xb6, 0xd5, 0xd6, 0x28, 0x70, 0x7b, 0x63, - 0xc7, 0xe0, 0x65, 0x26, 0xd9, 0xf4, 0x5a, 0x9c, 0x07, 0x3f, 0x5a, 0x61, 0x02, 0xda, 0xc6, 0x03, - 0x37, 0xc0, 0x8f, 0x74, 0xcb, 0xc6, 0xe6, 0x13, 0x37, 0xc0, 0x9e, 0x3f, 0x7f, 0x16, 0xbd, 0x03, - 0xb5, 0x63, 0x4a, 0xac, 0x9d, 0x53, 0xea, 0xd4, 0x02, 0x4a, 0xf5, 0x38, 0xc2, 0x4f, 0x39, 0x82, - 0x4a, 0xd4, 0x32, 0x6e, 0x87, 0x1c, 0xf8, 0x91, 0x08, 0x89, 0x7a, 0x5a, 0xfe, 0x0e, 0x3b, 0x66, - 0x41, 0x42, 0x00, 0x4c, 0x16, 0xbd, 0x98, 0xa5, 0x89, 0x50, 0x7e, 0x85, 0xa2, 0x22, 0x3c, 0x7d, - 0xe5, 0xb7, 0x73, 0x50, 0xe5, 0x47, 0x8d, 0xc6, 0x5d, 0x5b, 0x77, 0x48, 0xc8, 0x6c, 0x78, 0x98, - 0xae, 0x5d, 0x52, 0x7a, 0xc8, 0xcc, 0xd1, 0xe8, 0x0d, 0x58, 0x1a, 0x0d, 0x4d, 0x4a, 0x99, 0x1a, - 0x5c, 0x6f, 0xe6, 0x1a, 0x92, 0x2a, 0x48, 0xd0, 0x0d, 0x80, 0xf0, 0x04, 0x49, 0x98, 0x0d, 0x4e, - 0x20, 0x68, 0x03, 0x96, 0x4c, 0xaa, 0x52, 0x51, 0x92, 0xe5, 0xa9, 0xf3, 0xb4, 0x9e, 0x55, 0x41, - 0x48, 0xac, 0x22, 0x36, 0xa1, 0x8a, 0x51, 0xab, 0x88, 0x74, 0x53, 0xad, 0x1c, 0x47, 0xf4, 0x28, - 0xcc, 0x79, 0x31, 0x62, 0xce, 0xef, 0x43, 0xad, 0xf5, 0x54, 0x3f, 0xc3, 0x62, 0xbb, 0x92, 0x44, - 0xed, 0xfa, 0x91, 0xe3, 0x7a, 0x03, 0xdd, 0x8e, 0xab, 0xbb, 0x2e, 0xc0, 0xfc, 0x9c, 0xcb, 0x36, - 0x54, 0xb6, 0x5c, 0x27, 0xf0, 0x5c, 0x9b, 0x2c, 0x1b, 0xe8, 0xcb, 0x00, 0x46, 0xe0, 0xd9, 0x1a, - 0x3e, 0xc7, 0x4e, 0xc0, 0xeb, 0x57, 0xfc, 0xd4, 0x6f, 0x84, 0x8c, 0x9e, 0xaa, 0x55, 0xcb, 0x84, - 0x92, 0xfe, 0x55, 0xfe, 0x36, 0x0f, 0x97, 0x93, 0xd3, 0xe9, 0x97, 0xe7, 0x28, 0x11, 0xd1, 0x86, - 0x38, 0x33, 0x2b, 0x76, 0xc8, 0xd8, 0xe1, 0xd2, 0x3a, 0x07, 0x8b, 0x2d, 0xb2, 0x0f, 0x60, 0xdd, - 0xc3, 0x9f, 0x8d, 0x2c, 0x0f, 0x6b, 0x26, 0x0e, 0x98, 0xb5, 0xf2, 0x29, 0x4b, 0x9d, 0x18, 0xb5, - 0x89, 0x4b, 0x9c, 0x64, 0x9b, 0x53, 0xf0, 0xd9, 0xfa, 0xbf, 0x49, 0xc8, 0xc5, 0x2c, 0x51, 0x1b, - 0xda, 0xba, 0xc3, 0x87, 0x13, 0x4d, 0xa2, 0x20, 0x61, 0xa4, 0x6a, 0xd5, 0x8b, 0x9a, 0xec, 0x07, - 0x50, 0xd7, 0xe9, 0xe0, 0x89, 0x30, 0x84, 0xd7, 0x90, 0xb8, 0xe7, 0x89, 0x0d, 0xac, 0x5a, 0xd3, - 0x63, 0xe3, 0xfc, 0x1e, 0x54, 0x0d, 0x36, 0x2e, 0x34, 0x16, 0xe0, 0x45, 0xa5, 0x95, 0xa9, 0x11, - 0x53, 0x2b, 0xc6, 0xe4, 0x41, 0xf9, 0xfb, 0x1c, 0xac, 0xf5, 0x0c, 0x3d, 0x08, 0x88, 0x93, 0xcc, - 0x7c, 0xe6, 0xe8, 0xe6, 0xd4, 0x29, 0x16, 0xaa, 0x9e, 0x89, 0xcf, 0x78, 0xce, 0x03, 0xa6, 0x91, - 0x7d, 0x8f, 0xc2, 0x9c, 0x7d, 0x8f, 0x35, 0x28, 0x9e, 0x78, 0xee, 0x68, 0x48, 0xf5, 0x5a, 0x56, - 0xd9, 0xc3, 0xe4, 0xe0, 0x13, 0x0d, 0xde, 0x16, 0xa9, 0x8d, 0x73, 0xb1, 0x48, 0xd4, 0x46, 0x63, - 0x89, 0xc0, 0x1b, 0x6b, 0xec, 0x64, 0x00, 0xdb, 0xa5, 0x00, 0x0a, 0xda, 0xa5, 0xc7, 0x03, 0xee, - 0x81, 0xec, 0x9f, 0x59, 0x43, 0x36, 0x49, 0x38, 0x55, 0x89, 0xad, 0x57, 0x04, 0x4e, 0x8d, 0x9a, - 0x52, 0x2a, 0xe7, 0x70, 0x29, 0xa1, 0xb3, 0x4c, 0x16, 0xfe, 0x16, 0xac, 0x1e, 0x5b, 0x8e, 0xe5, - 0x9f, 0x62, 0x53, 0x1b, 0x62, 0xcf, 0xc0, 0x4e, 0x20, 0xce, 0x56, 0x17, 0x54, 0x24, 0x50, 0xdd, - 0x10, 0xa3, 0x6c, 0xd3, 0x9d, 0xbb, 0x9d, 0xad, 0x9e, 0x7e, 0x8c, 0xbb, 0xae, 0xe5, 0x64, 0x5a, - 0xa9, 0x14, 0x4c, 0xf7, 0xed, 0x62, 0x5c, 0x32, 0x89, 0x4f, 0x62, 0x6a, 0xfd, 0x18, 0x6b, 0x43, - 0xc2, 0x83, 0x4b, 0x5d, 0xf6, 0x05, 0x53, 0xe5, 0x18, 0x1a, 0x87, 0xd4, 0x63, 0xbe, 0xa4, 0xbc, - 0x17, 0xb5, 0xe3, 0xc2, 0x95, 0x94, 0x76, 0x32, 0xf5, 0xe8, 0x0e, 0xd4, 0x1d, 0xfc, 0x54, 0x9b, - 0x6a, 0xad, 0xea, 0xe0, 0xa7, 0x21, 0x6f, 0xe5, 0xc7, 0x12, 0xdc, 0x64, 0x2d, 0xf2, 0xcd, 0xc9, - 0x2f, 0xa2, 0x83, 0x8c, 0x93, 0x98, 0x3e, 0x55, 0xb5, 0xcc, 0x21, 0x1d, 0x13, 0xc9, 0x90, 0xef, - 0xf7, 0x77, 0xe9, 0xc4, 0xc9, 0xab, 0xe4, 0x6f, 0x42, 0x23, 0x85, 0xa4, 0x46, 0xfe, 0x4a, 0x82, - 0x5b, 0xb3, 0x05, 0xcc, 0x3c, 0xd6, 0x2f, 0x24, 0xe2, 0x1d, 0xa8, 0x0f, 0x2c, 0x47, 0x9b, 0x12, - 0xb3, 0x3a, 0xb0, 0x9c, 0x89, 0x2a, 0x4f, 0xe8, 0x61, 0x97, 0x88, 0x78, 0x4f, 0x36, 0x32, 0xfa, - 0x1f, 0x9a, 0x8f, 0x0f, 0xf5, 0x89, 0x7c, 0x35, 0x15, 0x04, 0xa8, 0x63, 0x2a, 0x27, 0xf4, 0x34, - 0x4c, 0xa2, 0xa1, 0x57, 0x61, 0xf5, 0xa6, 0xb8, 0xdc, 0xf4, 0xd2, 0x7d, 0x9a, 0x77, 0x85, 0x66, - 0x04, 0xf5, 0x90, 0x3d, 0x5d, 0x76, 0x93, 0x1a, 0x90, 0x92, 0x1a, 0xb8, 0x40, 0xee, 0xf0, 0x02, - 0x48, 0x7e, 0xc6, 0x95, 0x19, 0x82, 0x54, 0xfe, 0x50, 0x82, 0x66, 0x5a, 0xef, 0x32, 0x29, 0xf2, - 0x0d, 0x58, 0xa4, 0xa1, 0x85, 0x88, 0xb9, 0x38, 0x75, 0xbc, 0x5f, 0x2a, 0xa7, 0x89, 0x69, 0x23, - 0x9f, 0xd0, 0xc6, 0x77, 0x25, 0x68, 0x4e, 0xb9, 0x80, 0x57, 0x64, 0x49, 0x09, 0x3d, 0xe6, 0x93, - 0xe3, 0xff, 0x19, 0x5c, 0x4d, 0x15, 0xe5, 0x15, 0xfa, 0xa3, 0x7f, 0x4a, 0xfa, 0xa3, 0x5f, 0x88, - 0x0e, 0x26, 0xde, 0x20, 0x9f, 0xf4, 0x06, 0xf3, 0xdd, 0x13, 0x71, 0x16, 0x41, 0x60, 0xd3, 0xb5, - 0x3b, 0xaf, 0x92, 0xbf, 0xd3, 0x0e, 0xeb, 0x8b, 0x99, 0xa6, 0xf3, 0x1d, 0x16, 0x91, 0x21, 0x1f, - 0xca, 0xf0, 0x9c, 0x0e, 0xab, 0x03, 0x4d, 0x76, 0x16, 0xfc, 0xa5, 0x2d, 0x4d, 0xe9, 0x43, 0x2d, - 0xc6, 0xe4, 0xe2, 0x29, 0xac, 0x40, 0xed, 0xc4, 0x98, 0xb6, 0x86, 0xca, 0x89, 0x31, 0x11, 0xf0, - 0xcf, 0x24, 0xb8, 0x9a, 0x2a, 0x61, 0x26, 0x2d, 0x7e, 0x15, 0xea, 0xb1, 0x16, 0xc5, 0x5c, 0xe5, - 0x1d, 0x8b, 0x37, 0x51, 0x8d, 0xc8, 0x31, 0x7f, 0xc2, 0xfe, 0x40, 0x02, 0x50, 0xc3, 0x8a, 0xc2, - 0x74, 0x19, 0x56, 0xba, 0xf0, 0x8c, 0x49, 0xee, 0xa2, 0x33, 0x26, 0xf9, 0x0b, 0xce, 0x98, 0x14, - 0xe2, 0x65, 0x58, 0xe5, 0x77, 0x25, 0x58, 0x21, 0x89, 0xf2, 0x4b, 0x04, 0xc1, 0x77, 0x60, 0x91, - 0x1d, 0x3a, 0x4b, 0x3d, 0x80, 0xc5, 0x71, 0x74, 0xab, 0x8b, 0x16, 0xbe, 0x59, 0xa5, 0x83, 0xc9, - 0xc9, 0x6a, 0xe1, 0xac, 0xce, 0xf1, 0x2e, 0x2b, 0xf7, 0xf8, 0xac, 0x18, 0x78, 0x57, 0x9c, 0x52, - 0x90, 0xd2, 0x4f, 0xf7, 0xf0, 0x83, 0x0a, 0x5f, 0x82, 0x22, 0x3b, 0xaf, 0xa3, 0xc4, 0xe9, 0x53, - 0x4f, 0x35, 0x7c, 0x27, 0x0f, 0x28, 0xda, 0xd7, 0x4c, 0xa6, 0xf1, 0xdc, 0x1b, 0x52, 0x17, 0xf6, - 0x18, 0xbd, 0x1b, 0x2b, 0x4a, 0x89, 0xac, 0x59, 0x8e, 0x9e, 0x8f, 0xa5, 0x75, 0xd2, 0x48, 0x15, - 0xca, 0x47, 0xef, 0x42, 0x9d, 0xbf, 0x14, 0x3f, 0x7b, 0x17, 0xef, 0x71, 0x8d, 0xd1, 0xf0, 0x1a, - 0x41, 0xf4, 0x84, 0xf7, 0x22, 0xd7, 0xe7, 0x8c, 0x13, 0xde, 0xe8, 0xad, 0xd8, 0xd9, 0x2a, 0x39, - 0x59, 0x5d, 0xf2, 0xa7, 0x0e, 0x57, 0xbd, 0x9d, 0x3c, 0x5c, 0xc5, 0xea, 0xec, 0x95, 0xc8, 0x3b, - 0xf1, 0xb3, 0x55, 0xca, 0xaf, 0xd2, 0x63, 0x90, 0x07, 0x43, 0xec, 0xe9, 0x81, 0xeb, 0x7d, 0xe1, - 0xd7, 0x07, 0x94, 0x7f, 0x90, 0xe8, 0xbd, 0x99, 0x49, 0x03, 0x99, 0x06, 0x7a, 0xee, 0x0d, 0x05, - 0x04, 0x05, 0x13, 0xfb, 0x06, 0x5f, 0x03, 0xe8, 0x7f, 0xc2, 0x3e, 0x52, 0x9f, 0xaa, 0x0b, 0xf6, - 0x42, 0x0c, 0x9e, 0x9b, 0x73, 0x1a, 0x7a, 0xee, 0xc5, 0x72, 0xc4, 0x1d, 0x5c, 0xfa, 0x9f, 0x6e, - 0xec, 0x13, 0x03, 0xdd, 0xd3, 0x9f, 0xf5, 0x7b, 0x59, 0x37, 0x9e, 0x07, 0xfa, 0x33, 0x2d, 0x2c, - 0xc7, 0x4d, 0xdd, 0xb1, 0x2c, 0x0e, 0xf4, 0x67, 0x7d, 0xb6, 0x2f, 0x40, 0x72, 0x3e, 0xe3, 0x14, - 0x1b, 0x67, 0xbc, 0x8c, 0x59, 0x26, 0x10, 0x7a, 0x44, 0x47, 0xf9, 0x21, 0xf7, 0x0a, 0x5c, 0x90, - 0xac, 0x87, 0xfc, 0x89, 0x28, 0xb6, 0x6b, 0xe8, 0xf6, 0x1c, 0x81, 0x60, 0xa0, 0x3f, 0xa3, 0x15, - 0x57, 0x2e, 0xd5, 0xd8, 0x31, 0xb0, 0xa9, 0x99, 0x86, 0x38, 0xdc, 0x58, 0x66, 0x90, 0x6d, 0xc3, - 0x57, 0x7e, 0x53, 0x82, 0xd5, 0xc8, 0xd9, 0x0f, 0x3f, 0x73, 0xd2, 0x41, 0xb7, 0xdc, 0x23, 0xa7, - 0x8e, 0xca, 0x14, 0x42, 0xf7, 0x2a, 0x13, 0xd9, 0x72, 0x3e, 0x99, 0x2d, 0x93, 0x58, 0x70, 0x2d, - 0x2e, 0xc4, 0x2f, 0x24, 0x07, 0x4e, 0x64, 0xf9, 0xf9, 0x44, 0x96, 0x4f, 0xd6, 0xbf, 0xeb, 0x54, - 0xac, 0x96, 0x63, 0xc6, 0x72, 0xf4, 0x57, 0xa2, 0xa5, 0xb0, 0x10, 0x91, 0x8f, 0x16, 0x22, 0x12, - 0xba, 0x2b, 0x4c, 0xe9, 0xee, 0x3f, 0x24, 0xb8, 0x31, 0x4b, 0xc8, 0x4c, 0x5a, 0xfc, 0x00, 0xae, - 0x30, 0x31, 0x67, 0xeb, 0x72, 0x9d, 0x12, 0x3c, 0x9a, 0x56, 0xe8, 0x87, 0x70, 0xd5, 0x67, 0x32, - 0xa4, 0xbe, 0xcd, 0x46, 0xfe, 0x0a, 0x27, 0x79, 0x74, 0xd1, 0x80, 0x14, 0x92, 0x03, 0x72, 0x4a, - 0x33, 0xaf, 0xed, 0x2d, 0x71, 0x7e, 0x3c, 0x7a, 0xe0, 0xf8, 0x45, 0xa3, 0xd2, 0xe8, 0xc1, 0xf4, - 0xdc, 0xd4, 0xc1, 0xf4, 0xef, 0x4a, 0x70, 0x25, 0xa5, 0xa9, 0xac, 0x57, 0x4e, 0xd9, 0x45, 0x70, - 0xda, 0x4e, 0x51, 0xe5, 0x4f, 0x11, 0xbf, 0x92, 0x9f, 0xe7, 0x57, 0x94, 0x7f, 0xcc, 0x01, 0x4c, - 0xb6, 0x22, 0x51, 0x1d, 0x72, 0x3b, 0x5b, 0x3c, 0xac, 0xc9, 0xed, 0x6c, 0x91, 0xf0, 0x73, 0x07, - 0x8b, 0xf8, 0x8d, 0xfc, 0x25, 0x6e, 0xb0, 0x67, 0xe8, 0x22, 0x6e, 0xa1, 0xff, 0xd1, 0x2d, 0xa8, - 0x6c, 0xb9, 0x43, 0xcf, 0x35, 0xb0, 0xef, 0xbb, 0x1e, 0xb7, 0xa3, 0x28, 0x88, 0x88, 0xb9, 0x8d, - 0x6d, 0x1c, 0x88, 0xad, 0x23, 0xfe, 0x44, 0xde, 0x64, 0xff, 0xe8, 0x2d, 0x16, 0x5e, 0x1f, 0x8e, - 0x82, 0x88, 0x04, 0xdd, 0x91, 0xa8, 0x82, 0x91, 0xbf, 0x24, 0x60, 0xeb, 0x7a, 0x98, 0x6e, 0xe6, - 0xf2, 0x13, 0xba, 0xe1, 0x33, 0xfa, 0x0a, 0x5c, 0x6e, 0x19, 0xb4, 0xd2, 0xd9, 0xc5, 0xbe, 0x6f, - 0x0d, 0x2c, 0x3f, 0xb0, 0x88, 0xe2, 0xcf, 0xf8, 0x59, 0xdd, 0x19, 0x58, 0x22, 0x1f, 0xdb, 0xe7, - 0xe1, 0x5b, 0xef, 0xfc, 0x89, 0xb4, 0xa5, 0xba, 0xb6, 0x7d, 0xa4, 0x1b, 0x67, 0x7c, 0xcf, 0x3d, - 0x7c, 0x56, 0xfe, 0x52, 0x82, 0x35, 0x7e, 0x80, 0x85, 0xaf, 0xc9, 0x59, 0xac, 0x25, 0x79, 0x84, - 0x2f, 0xf7, 0x9c, 0x47, 0xf8, 0x22, 0x11, 0x42, 0xfe, 0x82, 0x3b, 0x60, 0x6d, 0xb8, 0x94, 0x90, - 0x33, 0xeb, 0x49, 0xab, 0x26, 0xe3, 0xb3, 0x67, 0x91, 0x60, 0xcc, 0xb5, 0xcf, 0xb1, 0xd9, 0xf7, - 0xbf, 0xe0, 0x1b, 0xcd, 0xe8, 0x75, 0x58, 0x26, 0xf9, 0x8d, 0xc7, 0x1b, 0x10, 0x26, 0x5c, 0x50, - 0x6b, 0x83, 0x68, 0xb3, 0xca, 0x63, 0xb8, 0x9a, 0x2a, 0x4d, 0xa6, 0xbe, 0x9d, 0xc2, 0xd5, 0x1e, - 0x0e, 0xda, 0xcf, 0x02, 0xec, 0x39, 0xba, 0x3d, 0x99, 0x25, 0x59, 0xfa, 0x76, 0x2d, 0xfa, 0xe5, - 0x04, 0x1e, 0xff, 0x4f, 0x3e, 0x94, 0xb0, 0x0b, 0xd7, 0xd2, 0x5b, 0xca, 0x24, 0xf7, 0xc7, 0x34, - 0x89, 0xfa, 0x42, 0xe4, 0x56, 0xbe, 0x05, 0xd7, 0x76, 0xbe, 0x30, 0xc9, 0x2e, 0xd0, 0xc2, 0x87, - 0xf4, 0x46, 0xfc, 0x9e, 0xe5, 0x64, 0x0b, 0x9b, 0x14, 0x97, 0x5e, 0x3e, 0xe6, 0xef, 0x67, 0x92, - 0xef, 0xcd, 0xa4, 0x7c, 0x73, 0xbf, 0x6f, 0xf1, 0xe0, 0x16, 0x94, 0xc3, 0x22, 0x13, 0x5a, 0x82, - 0x7c, 0xf7, 0xb0, 0x2f, 0x2f, 0x20, 0x80, 0xc5, 0xed, 0xf6, 0x6e, 0xbb, 0xdf, 0x96, 0xa5, 0x07, - 0x7f, 0x93, 0x83, 0x72, 0xf8, 0x21, 0x12, 0xb4, 0x08, 0xb9, 0x83, 0xc7, 0xf2, 0x02, 0xaa, 0xc0, - 0xd2, 0xe1, 0xfe, 0xe3, 0xfd, 0x83, 0x4f, 0xf6, 0x65, 0x09, 0xad, 0x81, 0xbc, 0x7f, 0xd0, 0xd7, - 0x36, 0x0f, 0x0e, 0xfa, 0xbd, 0xbe, 0xda, 0xea, 0x76, 0xdb, 0xdb, 0x72, 0x0e, 0xad, 0xc2, 0x72, - 0xaf, 0x7f, 0xa0, 0xb6, 0xb5, 0xfe, 0xc1, 0xde, 0x66, 0xaf, 0x7f, 0xb0, 0xdf, 0x96, 0xf3, 0xa8, - 0x01, 0x6b, 0xad, 0x5d, 0xb5, 0xdd, 0xda, 0xfe, 0x34, 0x4e, 0x5e, 0x20, 0x98, 0xce, 0xfe, 0xd6, - 0xc1, 0x5e, 0xb7, 0xd5, 0xef, 0x6c, 0xee, 0xb6, 0xb5, 0x27, 0x6d, 0xb5, 0xd7, 0x39, 0xd8, 0x97, - 0x8b, 0x84, 0xbd, 0xda, 0xde, 0xe9, 0x1c, 0xec, 0x6b, 0xa4, 0x95, 0x47, 0x07, 0x87, 0xfb, 0xdb, - 0xf2, 0x22, 0xba, 0x0a, 0xeb, 0x3b, 0xbb, 0x07, 0x9b, 0xad, 0x5d, 0x6d, 0xeb, 0x60, 0xff, 0x51, - 0x67, 0x27, 0x82, 0x5c, 0x22, 0xaf, 0x6c, 0x1f, 0x76, 0x77, 0x3b, 0x5b, 0xad, 0x7e, 0x7b, 0x5b, - 0x6b, 0xef, 0xf7, 0xd5, 0x4f, 0xe5, 0x12, 0x91, 0x88, 0xfe, 0x8d, 0x90, 0x96, 0xd1, 0x0a, 0xd4, - 0x3a, 0xfb, 0x4f, 0x5a, 0xbb, 0x9d, 0x6d, 0xed, 0x49, 0x6b, 0xf7, 0xb0, 0x2d, 0x03, 0x42, 0x50, - 0xdf, 0x6e, 0xf5, 0x5b, 0x1a, 0x95, 0x66, 0xab, 0xdf, 0xde, 0x96, 0x2b, 0xe8, 0x2e, 0xbc, 0xc6, - 0x84, 0xe8, 0xd1, 0xb7, 0xb7, 0x0e, 0xf6, 0xfb, 0xad, 0xce, 0xbe, 0xd6, 0xda, 0xdd, 0xd5, 0x1e, - 0xb7, 0x3f, 0xd5, 0xd4, 0xd6, 0xfe, 0x4e, 0x5b, 0xae, 0x3e, 0x78, 0x04, 0x95, 0xc8, 0x8d, 0x19, - 0x22, 0x07, 0x57, 0x93, 0xd6, 0x7b, 0xb2, 0xa5, 0xed, 0x1d, 0x6c, 0xb7, 0xe5, 0x05, 0xb4, 0x0c, - 0x95, 0xee, 0xf6, 0x04, 0x20, 0x21, 0x19, 0xaa, 0xad, 0x6e, 0x67, 0x02, 0xc9, 0x3d, 0x78, 0x0f, - 0x2a, 0x91, 0x43, 0xea, 0xa8, 0x04, 0x85, 0xde, 0x56, 0x6b, 0x9f, 0xbd, 0xdb, 0xea, 0x76, 0xd5, - 0x83, 0x6f, 0x74, 0xf6, 0x5a, 0x64, 0x7c, 0xc8, 0x58, 0x1d, 0xf6, 0xda, 0x8f, 0xdb, 0x9f, 0xca, - 0xb9, 0x07, 0xf7, 0x41, 0x4e, 0x6e, 0x0d, 0xa2, 0x32, 0x14, 0xbb, 0xad, 0xc3, 0x5e, 0x9b, 0x0d, - 0xab, 0xda, 0xee, 0x1d, 0xee, 0x91, 0x61, 0xed, 0x42, 0x3d, 0x9e, 0x10, 0x90, 0x21, 0xed, 0x1d, - 0x6e, 0x6d, 0xb5, 0x7b, 0x3d, 0x36, 0xbe, 0xfd, 0xce, 0x5e, 0xfb, 0xe0, 0xb0, 0xcf, 0x9a, 0xd8, - 0x6a, 0xed, 0x6f, 0xb5, 0x77, 0xe5, 0x1c, 0x41, 0xa8, 0xed, 0xee, 0x6e, 0x6b, 0x8b, 0x8c, 0x26, - 0x79, 0x38, 0xdc, 0xdf, 0xef, 0xec, 0xef, 0xc8, 0x85, 0x07, 0x7f, 0x27, 0x41, 0x99, 0x2e, 0xb9, - 0x8f, 0x2d, 0xc7, 0x24, 0xef, 0x1c, 0x04, 0xa7, 0xd8, 0xf3, 0xe5, 0x05, 0x62, 0x34, 0x3b, 0x5b, - 0xb2, 0x44, 0xec, 0x6b, 0x07, 0x07, 0x72, 0x8e, 0x76, 0xc7, 0xd0, 0x1d, 0x39, 0x4f, 0xba, 0x13, - 0x59, 0x4f, 0xe5, 0x02, 0x35, 0x3d, 0xba, 0x4c, 0xca, 0x45, 0x82, 0x8c, 0x2c, 0x99, 0xf2, 0x22, - 0x35, 0xd0, 0x51, 0x20, 0x2f, 0xa1, 0xea, 0x64, 0xad, 0x94, 0x4b, 0xa8, 0x39, 0x6b, 0x75, 0x94, - 0xcb, 0x54, 0x76, 0xba, 0xe6, 0xc9, 0x40, 0xde, 0x12, 0xab, 0x9c, 0x5c, 0xd9, 0xf8, 0xe9, 0x35, - 0xc8, 0x75, 0xb7, 0xd1, 0x1e, 0xd4, 0xe3, 0xb7, 0xa8, 0xd0, 0xd5, 0xf0, 0xf6, 0xd8, 0xf4, 0x1d, - 0xad, 0xe6, 0xb5, 0x74, 0x24, 0x9b, 0x8b, 0xca, 0x02, 0x6a, 0x01, 0x4c, 0xae, 0x9d, 0xa1, 0xf5, - 0xe9, 0x8b, 0x68, 0x8c, 0x4d, 0x63, 0xd6, 0x0d, 0x35, 0x65, 0x01, 0xbd, 0x0d, 0xf9, 0xbe, 0xef, - 0x22, 0x9e, 0xec, 0x4e, 0xbe, 0xeb, 0xd3, 0x5c, 0x89, 0x40, 0x04, 0xf5, 0x3d, 0xe9, 0x6d, 0x09, - 0x7d, 0x08, 0xe5, 0xf0, 0xa3, 0x29, 0x88, 0xef, 0x11, 0x27, 0xbf, 0x5a, 0xd3, 0x5c, 0x9f, 0x82, - 0x87, 0x2d, 0xee, 0x41, 0x3d, 0xfe, 0xd9, 0x15, 0xa1, 0x83, 0xd4, 0x4f, 0xba, 0x08, 0x1d, 0xa4, - 0x7f, 0xa9, 0x45, 0x59, 0x40, 0xef, 0xc3, 0x12, 0xff, 0x34, 0x0a, 0xe2, 0xce, 0x2a, 0xfe, 0xa1, - 0x95, 0xe6, 0xa5, 0x04, 0x34, 0x7c, 0x53, 0x83, 0xb5, 0xb4, 0xef, 0x96, 0xa0, 0xd7, 0x44, 0x8b, - 0x33, 0xbf, 0x8f, 0xd2, 0x54, 0xe6, 0x91, 0x84, 0x0d, 0xfc, 0x1f, 0x28, 0x89, 0xcf, 0x8a, 0xa0, - 0x4b, 0xe1, 0x18, 0x44, 0xbf, 0xeb, 0xd1, 0xbc, 0x9c, 0x04, 0x47, 0x5f, 0x16, 0x9f, 0xe7, 0x10, - 0x2f, 0x27, 0x3e, 0x0a, 0x22, 0x5e, 0x4e, 0x7e, 0xc5, 0x43, 0x59, 0x40, 0x3b, 0x50, 0x8d, 0x7e, - 0xc5, 0x02, 0x5d, 0x09, 0x9b, 0x49, 0x7e, 0x57, 0xa3, 0xd9, 0x4c, 0x43, 0x45, 0x07, 0x2b, 0xbe, - 0xbf, 0x2f, 0x06, 0x2b, 0xf5, 0x10, 0x8d, 0x18, 0xac, 0xf4, 0x23, 0x01, 0xca, 0x02, 0xea, 0xc3, - 0x72, 0xe2, 0x0e, 0x09, 0xba, 0x16, 0xad, 0xfc, 0x4c, 0x31, 0xbc, 0x3e, 0x03, 0x9b, 0xb4, 0xc8, - 0xf0, 0xdb, 0x0c, 0x68, 0xa2, 0xd1, 0x58, 0x75, 0xaf, 0xb9, 0x3e, 0x05, 0x0f, 0xa5, 0xda, 0x84, - 0xda, 0x0e, 0x0e, 0xba, 0x1e, 0x3e, 0xcf, 0xce, 0xe3, 0x11, 0xe5, 0x31, 0xf9, 0x3e, 0x04, 0x6a, - 0x26, 0x68, 0x23, 0x1f, 0x8d, 0x98, 0xc7, 0x67, 0x1b, 0x2a, 0x91, 0xeb, 0xe7, 0x88, 0x4f, 0xdd, - 0xe9, 0xdb, 0xf6, 0xcd, 0x2b, 0x29, 0x98, 0x90, 0x4b, 0x0f, 0xe4, 0xe4, 0x4d, 0x76, 0x74, 0x3d, - 0x7a, 0xa7, 0x63, 0x9a, 0xdf, 0x8d, 0x59, 0xe8, 0x90, 0xe9, 0x87, 0x50, 0x12, 0x17, 0x30, 0x84, - 0x45, 0x26, 0x6e, 0x7e, 0x08, 0x8b, 0x4c, 0xde, 0xd3, 0x50, 0xf2, 0xbf, 0x97, 0x93, 0xd0, 0x0e, - 0x54, 0x22, 0x57, 0x15, 0x44, 0xd7, 0xa6, 0xaf, 0x52, 0x88, 0xae, 0xa5, 0xdc, 0x6b, 0x60, 0x8c, - 0x3e, 0x86, 0x5a, 0xec, 0x38, 0xbf, 0xd0, 0x75, 0xda, 0x15, 0x86, 0xe6, 0xd5, 0x54, 0x5c, 0x54, - 0x53, 0xc9, 0x03, 0xf4, 0xe8, 0x7a, 0xb4, 0xfd, 0x69, 0x8e, 0x37, 0x66, 0xa1, 0xa3, 0x4c, 0x93, - 0xd7, 0xf1, 0x05, 0xd3, 0x19, 0xd7, 0xfd, 0x05, 0xd3, 0x59, 0xb7, 0xf8, 0x19, 0xd3, 0xe4, 0xdd, - 0x77, 0xc1, 0x74, 0xc6, 0x35, 0x7c, 0xc1, 0x74, 0xd6, 0x95, 0x79, 0x65, 0x81, 0xa8, 0x32, 0x56, - 0x93, 0x10, 0xaa, 0x4c, 0x3b, 0x25, 0x22, 0x54, 0x99, 0x7a, 0x1a, 0x82, 0xf9, 0x8a, 0xf8, 0xb6, - 0x6b, 0x64, 0x71, 0x9b, 0xde, 0x35, 0x8f, 0x2c, 0x6e, 0x29, 0x3b, 0xd6, 0xca, 0x02, 0x7a, 0x02, - 0x2b, 0x53, 0x9b, 0x6b, 0x88, 0xf7, 0x68, 0xd6, 0x59, 0x83, 0xe6, 0xcd, 0x99, 0xf8, 0x90, 0xef, - 0x99, 0x38, 0xaa, 0x30, 0xbd, 0x5f, 0x8e, 0xee, 0x46, 0x5f, 0x9f, 0xb9, 0xe1, 0xdf, 0x7c, 0xfd, - 0x22, 0xb2, 0x84, 0x25, 0xc4, 0xb7, 0x7e, 0xae, 0xa7, 0x75, 0x3c, 0xdc, 0x57, 0x8a, 0x58, 0x42, - 0xea, 0xa6, 0x8e, 0xb2, 0x80, 0x7e, 0x05, 0xd0, 0xf4, 0xc6, 0x2c, 0xe2, 0x5d, 0x9f, 0xb9, 0x21, - 0xdd, 0xbc, 0x35, 0x9b, 0x40, 0xb0, 0x7e, 0x5b, 0x42, 0xdf, 0x84, 0xd5, 0x94, 0x3d, 0x4d, 0x74, - 0x6b, 0x86, 0x62, 0x27, 0xec, 0x5f, 0x9b, 0x43, 0x31, 0x53, 0xf9, 0xd1, 0x26, 0xd2, 0x94, 0x9f, - 0xd2, 0xce, 0xeb, 0x17, 0x91, 0x85, 0x8d, 0x7d, 0x53, 0x7c, 0x49, 0x2a, 0xb5, 0x2b, 0xb3, 0xb7, - 0xf6, 0x44, 0x57, 0xe6, 0x6c, 0xad, 0x51, 0x8f, 0x5f, 0x99, 0xec, 0xab, 0x84, 0xd1, 0xd7, 0xd4, - 0xb6, 0x92, 0x88, 0xbe, 0xa6, 0xf7, 0x60, 0xf8, 0xea, 0xb5, 0x0d, 0x95, 0x48, 0xdd, 0x1e, 0x4d, - 0x82, 0xb5, 0xc4, 0x5e, 0x41, 0xf3, 0x4a, 0x0a, 0x26, 0xe2, 0x9c, 0xcb, 0x61, 0xed, 0x5a, 0xac, - 0x5f, 0xc9, 0xaa, 0x7a, 0x73, 0x7d, 0x0a, 0x1e, 0x8d, 0x18, 0xa2, 0x05, 0x5e, 0x11, 0x31, 0xa4, - 0x54, 0x9e, 0x45, 0xc4, 0x90, 0x56, 0x0f, 0x56, 0x16, 0x10, 0x86, 0xcb, 0xe9, 0xd5, 0x4e, 0x74, - 0x3b, 0xf2, 0xde, 0xac, 0x82, 0x6d, 0xf3, 0xce, 0x7c, 0xa2, 0xa8, 0x77, 0x98, 0x2a, 0xff, 0xa1, - 0xc9, 0xd4, 0x49, 0x2d, 0x41, 0x0a, 0xef, 0x30, 0xb3, 0x6e, 0xc8, 0xf8, 0x4e, 0x7d, 0xa7, 0x55, - 0xf0, 0x9d, 0xf5, 0xbd, 0x58, 0xc1, 0x77, 0xe6, 0x07, 0x5e, 0x99, 0x23, 0x48, 0x7e, 0x6d, 0x55, - 0x38, 0x82, 0x19, 0xdf, 0x75, 0x15, 0x8e, 0x60, 0xd6, 0x47, 0x5a, 0x95, 0x05, 0xf4, 0x0d, 0x58, - 0x99, 0xfa, 0xb8, 0xae, 0x10, 0x76, 0xd6, 0xf7, 0x7c, 0x9b, 0x37, 0x67, 0xe2, 0x23, 0x5e, 0x60, - 0x17, 0x6a, 0xb1, 0x72, 0x97, 0x58, 0x17, 0xd2, 0x6a, 0x75, 0x62, 0x5d, 0x48, 0xad, 0x8f, 0x11, - 0x23, 0x27, 0x13, 0x71, 0xba, 0xcc, 0xd4, 0x13, 0x13, 0x71, 0x76, 0x3d, 0x4c, 0x4c, 0xc4, 0x39, - 0x35, 0x2a, 0x16, 0xc7, 0xa7, 0x55, 0x83, 0x44, 0x1c, 0x3f, 0xa7, 0x26, 0x25, 0xe2, 0xf8, 0x79, - 0xc5, 0x24, 0xd6, 0xc0, 0xce, 0x9c, 0x06, 0x76, 0x2e, 0x6e, 0x60, 0x67, 0x7e, 0x03, 0x2c, 0x51, - 0xa0, 0x95, 0x98, 0x48, 0xa2, 0x10, 0xad, 0xec, 0x44, 0x12, 0x85, 0x58, 0xc1, 0x46, 0x59, 0xd8, - 0xdc, 0xf8, 0xe9, 0x5f, 0x97, 0xa4, 0x7f, 0xf9, 0xf9, 0x0d, 0xe9, 0x27, 0x3f, 0xbf, 0x21, 0xfd, - 0xec, 0xe7, 0x37, 0xa4, 0x1f, 0x7c, 0x7e, 0x63, 0xe1, 0x47, 0x9f, 0xdf, 0x58, 0xf8, 0xc9, 0xe7, - 0x37, 0x16, 0x7e, 0xfa, 0xf9, 0x8d, 0x05, 0x90, 0x5d, 0xef, 0xe4, 0x61, 0x60, 0x9d, 0x9d, 0x3f, - 0x3c, 0x3b, 0xa7, 0xdf, 0x7b, 0x3e, 0x5a, 0xa4, 0x3f, 0xef, 0xfe, 0x4f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xf8, 0xa5, 0x22, 0x72, 0x7d, 0x5a, 0x00, 0x00, + // 6554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0x4b, 0x90, 0x23, 0xc7, + 0x71, 0xe8, 0x34, 0x3e, 0x33, 0x40, 0xe2, 0x33, 0x98, 0x9a, 0xd9, 0x1d, 0x2c, 0xf6, 0xcb, 0x5e, + 0x2e, 0xdf, 0x72, 0x45, 0x2e, 0xc9, 0x25, 0xa5, 0x47, 0xf1, 0x3d, 0x31, 0x84, 0x99, 0xc1, 0x0e, + 0xc1, 0x9d, 0x0f, 0x5e, 0x03, 0xbb, 0x14, 0x9f, 0x15, 0xee, 0xe8, 0xe9, 0xae, 0x99, 0x69, 0x0d, + 0xd0, 0x0d, 0x76, 0x37, 0x66, 0x17, 0x0a, 0x1f, 0xfc, 0x93, 0x6d, 0x85, 0xe5, 0xb0, 0x22, 0xe4, + 0x8f, 0x7c, 0xd1, 0x41, 0x76, 0x58, 0x8e, 0xf0, 0xe7, 0xe0, 0x83, 0xc3, 0x37, 0xdf, 0x1c, 0x3e, + 0xea, 0xa8, 0xf0, 0xc1, 0xa1, 0x10, 0x7d, 0x71, 0x84, 0xcf, 0xbe, 0xd8, 0x07, 0x47, 0x65, 0x55, + 0x35, 0xba, 0x1b, 0x8d, 0x99, 0x59, 0x2c, 0xa9, 0x50, 0xf8, 0x04, 0x74, 0x56, 0x56, 0x56, 0x56, + 0x56, 0x56, 0x55, 0x66, 0x56, 0x56, 0x01, 0x0c, 0xad, 0xe1, 0xc1, 0xfd, 0xa1, 0xe7, 0x06, 0x2e, + 0xc9, 0xb1, 0xff, 0x8d, 0xf2, 0x80, 0x06, 0x86, 0x84, 0x35, 0x2a, 0xd4, 0x33, 0x0e, 0x83, 0xf0, + 0x73, 0x95, 0x7d, 0xe9, 0x3e, 0xf5, 0x4e, 0xa9, 0x17, 0x02, 0xeb, 0x1e, 0x1d, 0xf6, 0x6d, 0xd3, + 0x08, 0x6c, 0xd7, 0xd1, 0x07, 0xae, 0x45, 0xc3, 0x92, 0xb5, 0x23, 0xf7, 0xc8, 0xc5, 0xbf, 0x6f, + 0xb0, 0x7f, 0x02, 0xba, 0xec, 0x8d, 0xfc, 0x00, 0xff, 0x72, 0x80, 0xfa, 0x11, 0xd4, 0x3f, 0x32, + 0x02, 0xf3, 0x78, 0xbb, 0xef, 0x1e, 0x18, 0xfd, 0x4d, 0xd7, 0x39, 0xb4, 0x8f, 0x34, 0xfa, 0xc9, + 0x88, 0xfa, 0x01, 0xb9, 0x09, 0x25, 0x13, 0x01, 0xfa, 0xd0, 0x08, 0x8e, 0xeb, 0xca, 0x2d, 0xe5, + 0x6e, 0x51, 0x03, 0x0e, 0xea, 0x18, 0xc1, 0x31, 0x69, 0x40, 0xc1, 0xa3, 0xa7, 0xb6, 0x6f, 0xbb, + 0x4e, 0x3d, 0x73, 0x4b, 0xb9, 0x9b, 0xd5, 0xc2, 0x6f, 0xf5, 0x8f, 0x15, 0xb8, 0x92, 0x42, 0xd9, + 0x1f, 0xba, 0x8e, 0x4f, 0xc9, 0x9b, 0xb0, 0x64, 0x1e, 0x1b, 0xce, 0x11, 0xf5, 0xeb, 0xca, 0xad, + 0xec, 0xdd, 0xd2, 0x83, 0xcb, 0xf7, 0x51, 0x1a, 0x51, 0xe4, 0x76, 0x40, 0x07, 0x9a, 0x44, 0x3b, + 0xab, 0x2d, 0xf2, 0x1a, 0x2c, 0x1e, 0x53, 0xc3, 0xa2, 0x5e, 0x3d, 0x7b, 0x4b, 0xb9, 0x5b, 0x7a, + 0xb0, 0xc6, 0x89, 0xc9, 0xd6, 0x3e, 0xc0, 0x32, 0x4d, 0xe0, 0xa8, 0x03, 0xa8, 0x77, 0x03, 0xd7, + 0xa3, 0x69, 0x5d, 0x7e, 0x7e, 0xbe, 0x12, 0x42, 0xca, 0x24, 0x85, 0xa4, 0xbe, 0x0f, 0x57, 0x52, + 0x9a, 0x13, 0x72, 0x78, 0x09, 0xf2, 0xd4, 0xf3, 0x5c, 0x0f, 0x85, 0x5b, 0x7a, 0x50, 0xe2, 0xad, + 0xb5, 0x18, 0x48, 0xe3, 0x25, 0x6a, 0x07, 0xd6, 0x77, 0x5c, 0xc3, 0x4a, 0xe3, 0x76, 0x0d, 0xf2, + 0x8e, 0x31, 0x10, 0xbc, 0x16, 0x35, 0xfe, 0x71, 0x3e, 0x47, 0x16, 0xd4, 0xa7, 0x29, 0x0a, 0x86, + 0x5e, 0x83, 0xbc, 0x1d, 0xd0, 0xc1, 0x79, 0xdd, 0xe7, 0x48, 0x67, 0x2a, 0xc0, 0x0f, 0x14, 0xa8, + 0x25, 0xeb, 0x11, 0x02, 0x39, 0xc6, 0xa4, 0xd0, 0x25, 0xfc, 0xcf, 0x7a, 0x71, 0x6a, 0xf4, 0x47, + 0x54, 0x70, 0xca, 0x3f, 0x26, 0x92, 0xc9, 0xce, 0x92, 0x0c, 0xb9, 0x0d, 0xb9, 0x13, 0xdb, 0xb1, + 0xea, 0xb9, 0x5b, 0xca, 0xdd, 0xea, 0x83, 0x65, 0x81, 0x71, 0x4a, 0x9d, 0xa0, 0x37, 0x1e, 0x52, + 0x0d, 0x0b, 0x49, 0x1d, 0x96, 0x86, 0xc6, 0xb8, 0xef, 0x1a, 0x56, 0x3d, 0x7f, 0x4b, 0xb9, 0x5b, + 0xd6, 0xe4, 0xa7, 0xfa, 0x3d, 0x05, 0x2a, 0x42, 0x92, 0x5c, 0x43, 0xc8, 0x75, 0x00, 0xb3, 0x3f, + 0xf2, 0x03, 0xea, 0xe9, 0xb6, 0x85, 0x3c, 0xe6, 0xb4, 0xa2, 0x80, 0xb4, 0x2d, 0x72, 0x15, 0x8a, + 0x3e, 0x75, 0x2c, 0x5e, 0x9a, 0xc1, 0xd2, 0x02, 0x07, 0xf0, 0x42, 0xd3, 0xe8, 0xf7, 0x79, 0x61, + 0x16, 0x7b, 0x52, 0xe0, 0x80, 0xb6, 0x45, 0x5e, 0x85, 0x9a, 0x28, 0x34, 0xdd, 0xc1, 0xd0, 0x75, + 0xa8, 0x13, 0x20, 0xd7, 0x45, 0x6d, 0x99, 0xc3, 0x37, 0x25, 0x58, 0xd5, 0xa0, 0x1a, 0xd7, 0xdb, + 0xf3, 0xb8, 0x0a, 0x05, 0x95, 0x99, 0xa9, 0x42, 0x0f, 0x21, 0xdf, 0x92, 0x12, 0x0b, 0xc6, 0x43, + 0x2e, 0xfe, 0x89, 0xc4, 0x58, 0x11, 0x97, 0x18, 0x2b, 0x64, 0x12, 0x1b, 0x50, 0xdf, 0x37, 0x8e, + 0xe4, 0x88, 0xc8, 0x4f, 0x75, 0x08, 0xd0, 0xf3, 0x5d, 0xa9, 0x7d, 0x5f, 0x08, 0x67, 0x1d, 0x57, + 0xde, 0x55, 0x39, 0xeb, 0x22, 0x22, 0x95, 0x93, 0x8e, 0x0d, 0xb2, 0xe9, 0x8e, 0x9c, 0x00, 0x49, + 0x56, 0x34, 0xfe, 0xc1, 0x54, 0xd5, 0x32, 0xf5, 0xbe, 0xcb, 0x17, 0x30, 0x21, 0x36, 0xb0, 0xcc, + 0x1d, 0x01, 0x51, 0x0f, 0xa0, 0xd8, 0xb3, 0x07, 0xd4, 0x0f, 0x8c, 0xc1, 0x90, 0x69, 0xdb, 0xf0, + 0x78, 0xec, 0xdb, 0xa6, 0xd1, 0xc7, 0x26, 0xb3, 0x5a, 0xf8, 0xcd, 0x98, 0xee, 0xbb, 0x47, 0x58, + 0xc4, 0x15, 0x51, 0x7e, 0xb2, 0x36, 0xfc, 0xd1, 0xe1, 0xa1, 0xfd, 0x4c, 0x3f, 0xb0, 0x03, 0x1f, + 0xdb, 0xa8, 0x68, 0xc0, 0x41, 0x1b, 0x76, 0xe0, 0xab, 0xbf, 0xaa, 0x40, 0x09, 0xbb, 0x15, 0x4e, + 0x81, 0x78, 0xbf, 0xce, 0x5c, 0x4d, 0x66, 0x74, 0xec, 0x75, 0x28, 0x06, 0x92, 0x6f, 0xa1, 0xc1, + 0x42, 0xda, 0x61, 0x77, 0xb4, 0x09, 0x86, 0xfa, 0x1d, 0x05, 0x6a, 0x1b, 0xae, 0x1b, 0xf8, 0x81, + 0x67, 0x0c, 0xe7, 0x92, 0xef, 0x6d, 0xc8, 0xfb, 0x6c, 0x95, 0x11, 0x5a, 0x50, 0xb9, 0x2f, 0xb6, + 0x12, 0x5c, 0x7a, 0x34, 0x5e, 0x46, 0x5e, 0x81, 0x45, 0x8f, 0x1e, 0x49, 0x49, 0x97, 0x1e, 0x54, + 0x25, 0x96, 0x86, 0x50, 0x4d, 0x94, 0xb2, 0xb5, 0x7b, 0x25, 0xc2, 0xce, 0x5c, 0x72, 0xe9, 0x01, + 0x89, 0xee, 0x4d, 0x7e, 0x60, 0x04, 0x23, 0x5f, 0x70, 0x77, 0xe7, 0x7e, 0xca, 0xb6, 0xa5, 0x4d, + 0x40, 0x5d, 0x44, 0xd6, 0x56, 0xbc, 0x24, 0x48, 0xdd, 0x82, 0x4b, 0x6d, 0x3f, 0x64, 0x6d, 0x48, + 0xad, 0x79, 0x84, 0xa5, 0x7e, 0x03, 0x2e, 0x27, 0xa9, 0xcc, 0xd5, 0x47, 0x15, 0xca, 0x07, 0x11, + 0x2a, 0xd8, 0xbb, 0x82, 0x16, 0x83, 0xa9, 0x5f, 0x81, 0x6a, 0xb3, 0xdf, 0x77, 0xcd, 0xf6, 0xd6, + 0x5c, 0xac, 0xee, 0xc3, 0x72, 0x58, 0x7d, 0x2e, 0x1e, 0xab, 0x90, 0x09, 0x57, 0xab, 0x8c, 0x6d, + 0xa9, 0x1f, 0xc2, 0xd5, 0xb6, 0xdf, 0x75, 0x8c, 0xa1, 0x7f, 0xec, 0x06, 0x1a, 0x35, 0xdd, 0x53, + 0xea, 0xd9, 0xce, 0xd1, 0x5c, 0xcc, 0x59, 0x70, 0x2d, 0x9d, 0xd6, 0x5c, 0x9c, 0x5e, 0x86, 0xc5, + 0x81, 0xe1, 0x9d, 0x84, 0x72, 0x14, 0x5f, 0xea, 0xc7, 0xb0, 0xbc, 0x4d, 0x03, 0xae, 0xc8, 0xf3, + 0x4c, 0x8d, 0x2b, 0x50, 0x40, 0xf5, 0x9f, 0xac, 0xda, 0x4b, 0xf8, 0xdd, 0xb6, 0xd4, 0xdf, 0x63, + 0x7b, 0x54, 0x48, 0x7b, 0x2e, 0xae, 0x2f, 0x38, 0xf1, 0xf2, 0x6c, 0x02, 0xf8, 0x62, 0xde, 0xd5, + 0x38, 0x45, 0x44, 0x61, 0x8a, 0xed, 0x6b, 0xbc, 0x58, 0x35, 0x61, 0xb9, 0x33, 0x7a, 0x81, 0xae, + 0x5e, 0x84, 0x19, 0xf5, 0x8f, 0x14, 0xa8, 0x4d, 0x5a, 0xf9, 0x05, 0x9a, 0xdc, 0xbf, 0x02, 0xab, + 0xdb, 0x34, 0x68, 0xf6, 0xfb, 0xc8, 0x9a, 0x3f, 0x97, 0x04, 0xde, 0x85, 0x3a, 0x7d, 0x66, 0xf6, + 0x47, 0x16, 0xd5, 0x03, 0x77, 0x70, 0xe0, 0x07, 0xae, 0x43, 0x75, 0xec, 0xb7, 0x2f, 0xd4, 0xea, + 0xb2, 0x28, 0xef, 0xc9, 0x62, 0xde, 0x9a, 0x7a, 0x02, 0x6b, 0xf1, 0xd6, 0xe7, 0x92, 0xcc, 0x1d, + 0x58, 0x0c, 0x5b, 0xcb, 0x4e, 0x0f, 0x81, 0x28, 0x54, 0x7f, 0x8d, 0x2b, 0x9e, 0x58, 0x77, 0xe7, + 0xe9, 0xe8, 0x75, 0x00, 0xbe, 0x5a, 0xeb, 0x27, 0x74, 0x8c, 0x5d, 0x2b, 0x6b, 0x45, 0x0e, 0x79, + 0x44, 0xc7, 0xe4, 0x25, 0x28, 0x3b, 0x94, 0x5a, 0xfa, 0xc1, 0xc8, 0x3c, 0xa1, 0x42, 0xf1, 0x0a, + 0x5a, 0x89, 0xc1, 0x36, 0x38, 0x48, 0xfd, 0xd3, 0x0c, 0xac, 0x44, 0x78, 0x98, 0xab, 0xbb, 0x93, + 0x1d, 0x25, 0x73, 0xd6, 0x8e, 0x42, 0x5e, 0x86, 0xc5, 0x7e, 0xd4, 0x42, 0x2f, 0x4b, 0xbc, 0x0e, + 0x65, 0xd4, 0x78, 0x19, 0xb9, 0x0f, 0x60, 0xb9, 0x4f, 0x1d, 0x7d, 0x48, 0xa9, 0xe7, 0xd7, 0xf3, + 0x28, 0x40, 0xb1, 0x6d, 0x32, 0x3c, 0x3e, 0x55, 0x8a, 0x0c, 0x85, 0x7d, 0xfa, 0xe4, 0x2d, 0xa8, + 0x0c, 0xa9, 0x63, 0xd9, 0xce, 0x91, 0xa8, 0xb2, 0x88, 0x55, 0xe2, 0xc4, 0xcb, 0x02, 0x85, 0x57, + 0x79, 0x15, 0x96, 0xa4, 0x48, 0x96, 0xc4, 0xb6, 0x2c, 0x90, 0x85, 0x58, 0x34, 0x59, 0xfe, 0x61, + 0xae, 0x90, 0xab, 0xe5, 0xd5, 0xdf, 0x50, 0x50, 0x2f, 0x78, 0x7f, 0x36, 0xc6, 0xf3, 0x2d, 0xe3, + 0xcc, 0x3a, 0x14, 0xa3, 0x35, 0x31, 0x1d, 0x39, 0x00, 0x2d, 0xb8, 0x73, 0xc7, 0xea, 0x47, 0x0a, + 0x90, 0xff, 0x37, 0xa2, 0xde, 0xf8, 0x05, 0x34, 0x26, 0xd9, 0x4c, 0x66, 0xaa, 0x19, 0x52, 0x83, + 0xac, 0x6d, 0x31, 0x06, 0xb2, 0x77, 0x73, 0x1a, 0xfb, 0xcb, 0x0c, 0xf6, 0x13, 0x3a, 0xf6, 0xeb, + 0xb9, 0x5b, 0xd9, 0xbb, 0x65, 0x0d, 0xff, 0xb3, 0xce, 0x0c, 0x3d, 0x7a, 0xaa, 0x63, 0x41, 0x1e, + 0x0b, 0x0a, 0x0c, 0xf0, 0x88, 0x8e, 0x7d, 0xf5, 0x6f, 0x32, 0xb0, 0x1a, 0xe3, 0x74, 0x2e, 0xbd, + 0xba, 0x06, 0x70, 0x42, 0xc7, 0xba, 0x6d, 0xe9, 0x03, 0x63, 0x88, 0x53, 0x29, 0xa7, 0x15, 0x4e, + 0xe8, 0xb8, 0x6d, 0xed, 0x1a, 0x43, 0x72, 0x07, 0x96, 0x25, 0x03, 0x12, 0x85, 0xb3, 0x5c, 0x16, + 0x6c, 0x70, 0xb4, 0x3d, 0xa8, 0x70, 0x19, 0xfb, 0xfa, 0x01, 0x43, 0xc4, 0x4e, 0x94, 0x1e, 0xdc, + 0xe3, 0x2d, 0xa7, 0x30, 0x29, 0xb4, 0xd6, 0xdf, 0x18, 0xb7, 0xad, 0x96, 0x13, 0x78, 0x63, 0xad, + 0xe4, 0x4d, 0x20, 0x8d, 0x1e, 0xd4, 0x92, 0x08, 0x4c, 0x62, 0x6c, 0xfe, 0x71, 0xab, 0x9c, 0xfd, + 0x25, 0xf7, 0xa2, 0xee, 0x4c, 0xa4, 0x9f, 0xd1, 0x86, 0x84, 0x93, 0xf3, 0x5e, 0xe6, 0x5d, 0x45, + 0xfd, 0x77, 0x85, 0x59, 0xfc, 0x31, 0x59, 0x4d, 0x66, 0x95, 0x72, 0xc1, 0x59, 0x95, 0xb9, 0xf0, + 0xac, 0xca, 0x3e, 0xff, 0xac, 0xca, 0x3d, 0xcf, 0xac, 0xca, 0x9f, 0x3d, 0xab, 0xd8, 0x96, 0x4b, + 0xba, 0xa6, 0xe1, 0x08, 0x49, 0xce, 0x3b, 0x9b, 0xfc, 0xc0, 0xf0, 0x82, 0xc8, 0xd2, 0x57, 0x40, + 0x00, 0x5b, 0xf9, 0xd6, 0x20, 0xdf, 0xb7, 0x07, 0x76, 0x80, 0xd3, 0x28, 0xaf, 0xf1, 0x0f, 0xb2, + 0x0e, 0x4b, 0xd4, 0xb1, 0xb0, 0x42, 0x0e, 0x2b, 0x2c, 0x52, 0xc7, 0x7a, 0x44, 0xc7, 0xea, 0xbf, + 0x2a, 0xb0, 0xc8, 0x79, 0xf9, 0x1f, 0x2d, 0xf6, 0x7f, 0x54, 0x60, 0x35, 0x26, 0xf6, 0xb9, 0xa6, + 0xe5, 0x5b, 0x50, 0x16, 0xcb, 0x18, 0x6b, 0x47, 0xee, 0x71, 0x49, 0x39, 0x89, 0x49, 0xb3, 0xcb, + 0x50, 0xc8, 0x2b, 0xb0, 0xc4, 0x05, 0x22, 0x65, 0x10, 0xef, 0x90, 0x2c, 0x64, 0x78, 0x62, 0xae, + 0x85, 0x1d, 0x8f, 0x4e, 0x1c, 0x59, 0xa8, 0x7e, 0x15, 0x0a, 0x8f, 0xe8, 0x58, 0x33, 0x9c, 0x23, + 0x1a, 0xd7, 0x03, 0x25, 0xa1, 0x07, 0x91, 0x11, 0xcf, 0xc4, 0x46, 0xfc, 0x9f, 0x15, 0x58, 0xdf, + 0x30, 0x02, 0xf3, 0xf8, 0x45, 0xd5, 0xf0, 0x02, 0x0b, 0x2a, 0x53, 0x29, 0x1e, 0x4e, 0xca, 0x0a, + 0x51, 0x21, 0x3d, 0xd9, 0x03, 0x4d, 0x94, 0x4e, 0x94, 0x36, 0x17, 0x55, 0xda, 0xb7, 0xe0, 0x92, + 0xe9, 0x3a, 0x81, 0x61, 0x3b, 0xba, 0xd1, 0xef, 0xe3, 0x72, 0x87, 0xf8, 0x38, 0xda, 0x05, 0x8d, + 0x88, 0xc2, 0x66, 0xbf, 0x2f, 0x09, 0xaa, 0x43, 0xa8, 0x4f, 0xf7, 0x6d, 0xce, 0xad, 0x3d, 0x1c, + 0x90, 0xcc, 0x59, 0x03, 0xf2, 0x10, 0xd6, 0xb7, 0x69, 0xb0, 0xc9, 0xe3, 0x11, 0xf1, 0xf8, 0xd4, + 0x73, 0x39, 0x13, 0x3e, 0xd4, 0xa7, 0xe9, 0xcc, 0xc5, 0xf9, 0xab, 0xb0, 0x24, 0xc2, 0x23, 0x62, + 0x82, 0x86, 0xd3, 0x42, 0x50, 0xd7, 0x64, 0xb9, 0xfa, 0x09, 0xac, 0x77, 0x46, 0x2f, 0xce, 0xfc, + 0xf3, 0x34, 0xf9, 0x01, 0xd4, 0xa7, 0x9b, 0x9c, 0xa7, 0x9f, 0xea, 0x9f, 0x65, 0x60, 0x71, 0x97, + 0x0e, 0x0e, 0xa8, 0x97, 0x1a, 0x57, 0xbb, 0x0a, 0xc5, 0x01, 0x96, 0x46, 0x6c, 0x0e, 0x0e, 0xe0, + 0xe1, 0x2a, 0xb6, 0xca, 0xe8, 0x23, 0xaf, 0xcf, 0x75, 0xb3, 0xa8, 0x15, 0x18, 0xe0, 0xb1, 0xd7, + 0xe7, 0x11, 0xc4, 0xbe, 0x4d, 0x9d, 0x80, 0x17, 0xe7, 0xb0, 0x18, 0x38, 0x08, 0x11, 0xfe, 0x17, + 0x2c, 0xf3, 0x79, 0xab, 0x0f, 0x3d, 0xdb, 0xf5, 0xec, 0x60, 0x8c, 0x2a, 0x99, 0xd7, 0xaa, 0x1c, + 0xdc, 0x11, 0x50, 0x0c, 0xf0, 0xd0, 0x61, 0xdf, 0x1d, 0xf3, 0x58, 0xe4, 0xa2, 0x08, 0xf0, 0x20, + 0x08, 0x43, 0xc8, 0x77, 0xa0, 0x7a, 0x60, 0x3b, 0x86, 0x37, 0xd6, 0x4f, 0xa9, 0x87, 0x71, 0xc4, + 0x25, 0xc4, 0xa9, 0x70, 0xe8, 0x13, 0x0e, 0x64, 0x3e, 0xdc, 0x91, 0x1d, 0xe8, 0xc7, 0x86, 0x7f, + 0x5c, 0x2f, 0xf0, 0xa0, 0xd4, 0x91, 0x1d, 0x7c, 0x60, 0xf8, 0xc7, 0xc9, 0x18, 0x52, 0x71, 0x2a, + 0x86, 0xf4, 0x55, 0x34, 0x73, 0xb9, 0xa0, 0xe6, 0x9a, 0xe8, 0xea, 0x7f, 0x65, 0x80, 0x44, 0x49, + 0xcc, 0x3b, 0x9f, 0xb8, 0xf4, 0x13, 0xf3, 0x89, 0x53, 0xd5, 0x64, 0x61, 0x8a, 0xa9, 0x1c, 0x45, + 0x93, 0xbb, 0xcb, 0xeb, 0x50, 0xa2, 0x81, 0x69, 0xe9, 0x02, 0x35, 0x97, 0x82, 0x0a, 0x0c, 0x61, + 0x87, 0xa3, 0x53, 0xb8, 0x14, 0xf8, 0x2e, 0x5b, 0x45, 0x98, 0x54, 0x5c, 0x4f, 0x97, 0x6b, 0x32, + 0x37, 0xb2, 0xdf, 0x12, 0x61, 0xde, 0xa9, 0x3e, 0xde, 0xef, 0xf9, 0x6e, 0x53, 0x56, 0xe2, 0xb4, + 0x7c, 0x6e, 0x19, 0xad, 0x06, 0xd3, 0x25, 0x8d, 0x1e, 0xd4, 0x67, 0x55, 0x88, 0x5a, 0x4a, 0x45, + 0x6e, 0x29, 0xa9, 0x71, 0x4b, 0x29, 0xce, 0x7d, 0xc4, 0x42, 0x6a, 0xc1, 0xa5, 0xc9, 0xca, 0xd0, + 0x76, 0x0e, 0xc3, 0x08, 0xe4, 0xf3, 0x4d, 0x97, 0xef, 0x2b, 0x70, 0x39, 0x49, 0x67, 0xae, 0x91, + 0xfc, 0x22, 0x94, 0x7d, 0xea, 0x9d, 0xda, 0x26, 0xdd, 0x75, 0x2d, 0xe1, 0xe9, 0x55, 0x1f, 0xac, + 0x08, 0xa7, 0x7e, 0x52, 0xa2, 0xc5, 0xd0, 0x98, 0x0e, 0xb3, 0x31, 0x88, 0xcc, 0xb8, 0xa5, 0xc0, + 0x77, 0xd9, 0x7c, 0x52, 0x3b, 0x50, 0x0c, 0x6d, 0x02, 0x72, 0x0b, 0x72, 0x6c, 0x26, 0x0a, 0x56, + 0xe2, 0xdb, 0x25, 0x96, 0xb0, 0x8d, 0x07, 0x4d, 0x0b, 0x9f, 0x9a, 0xae, 0x63, 0xf9, 0x62, 0x72, + 0x97, 0x18, 0xac, 0xcb, 0x41, 0xea, 0x7f, 0xe4, 0xe1, 0x32, 0x5f, 0xa9, 0x3f, 0xa0, 0x86, 0x17, + 0x1c, 0x50, 0x23, 0x98, 0x6b, 0x61, 0xfb, 0x3c, 0x1d, 0xbc, 0xdc, 0xf3, 0xdb, 0x44, 0xf9, 0x73, + 0x6d, 0xa2, 0xdb, 0x50, 0x39, 0x18, 0x07, 0xd4, 0xd7, 0x9f, 0x7a, 0x76, 0x10, 0x50, 0x07, 0xd7, + 0x9c, 0x9c, 0x56, 0x46, 0xe0, 0x47, 0x1c, 0xc6, 0x9c, 0x67, 0x8e, 0xe4, 0x51, 0xc3, 0xc2, 0x15, + 0x27, 0xa7, 0x15, 0x11, 0xa2, 0x51, 0x03, 0x1d, 0x32, 0xe6, 0xdb, 0x84, 0x24, 0x0a, 0x5c, 0xbe, + 0x0c, 0x26, 0x29, 0x5c, 0x85, 0x22, 0xa2, 0x20, 0x81, 0x22, 0x5f, 0x5c, 0x19, 0x00, 0xeb, 0xbf, + 0x0a, 0x35, 0x63, 0x38, 0xf4, 0xdc, 0x67, 0xf6, 0xc0, 0x08, 0xa8, 0xee, 0xdb, 0xdf, 0xa4, 0x75, + 0x40, 0x9c, 0xe5, 0x08, 0xbc, 0x6b, 0x7f, 0x93, 0x92, 0xfb, 0x50, 0xb0, 0x9d, 0x80, 0x7a, 0xa7, + 0x46, 0xbf, 0x5e, 0x46, 0xc9, 0x91, 0x49, 0x9c, 0xb8, 0x2d, 0x4a, 0xb4, 0x10, 0x27, 0x49, 0x1a, + 0x5d, 0xb0, 0xca, 0x14, 0x69, 0xe6, 0x89, 0xb1, 0x3d, 0x21, 0xa0, 0xde, 0xa0, 0x5e, 0xc5, 0x62, + 0xfc, 0x4f, 0xfe, 0x7f, 0x6a, 0xe0, 0x66, 0x19, 0x1b, 0xfe, 0x42, 0x7a, 0xe0, 0x86, 0x7b, 0x26, + 0xe7, 0x87, 0x6f, 0xc8, 0x5b, 0x50, 0xfa, 0x84, 0xf9, 0x54, 0x3a, 0x0f, 0x75, 0xd5, 0xa2, 0xa1, + 0x2e, 0x74, 0xb6, 0xf8, 0xf0, 0xc2, 0x27, 0xe1, 0x7f, 0x3c, 0x34, 0x19, 0x8e, 0xf4, 0x11, 0x1e, + 0x36, 0xac, 0x70, 0x29, 0x9a, 0xc3, 0xd1, 0x63, 0xf6, 0x4d, 0xee, 0xc3, 0x6a, 0xac, 0xab, 0xa7, + 0x5c, 0x90, 0x04, 0xd1, 0x56, 0xa2, 0xbd, 0x3d, 0x65, 0xa2, 0xfc, 0x30, 0x57, 0x28, 0xd5, 0xca, + 0xea, 0x31, 0xc0, 0x26, 0x1e, 0xcd, 0x31, 0x75, 0xb8, 0xc0, 0x5c, 0x7a, 0x17, 0x4a, 0xfc, 0x28, + 0x4f, 0xc7, 0x93, 0x91, 0x0c, 0x9e, 0x8c, 0xac, 0xdf, 0x97, 0x67, 0xaf, 0x6c, 0x83, 0xe6, 0xf4, + 0xf0, 0x84, 0x04, 0xcc, 0xf0, 0xbf, 0xfa, 0x1e, 0x94, 0x27, 0x2d, 0x3d, 0x79, 0x40, 0xee, 0x25, + 0xcf, 0x0e, 0x45, 0xdf, 0x27, 0x48, 0xe1, 0xa9, 0xa1, 0xfa, 0x04, 0xaa, 0x3d, 0xcf, 0x70, 0xfc, + 0x43, 0x2a, 0x16, 0xc9, 0x0b, 0x70, 0xaa, 0x42, 0x9e, 0x4f, 0x82, 0x4c, 0xca, 0x24, 0xe0, 0x45, + 0xea, 0x1b, 0x90, 0xdf, 0xa5, 0xde, 0x11, 0xba, 0x90, 0x81, 0xe1, 0x1d, 0xd1, 0x60, 0x96, 0x2f, + 0xc3, 0x4b, 0xd5, 0x1d, 0x28, 0x75, 0x87, 0x7d, 0x5b, 0xc4, 0x37, 0xc8, 0xab, 0xb0, 0x38, 0x74, + 0xfb, 0xb6, 0x39, 0x16, 0x47, 0x44, 0x2b, 0xb2, 0x0b, 0xd4, 0x3c, 0xe9, 0x60, 0x81, 0x26, 0x10, + 0xc2, 0xc8, 0x40, 0x66, 0x12, 0x19, 0x50, 0xb7, 0xa1, 0xd2, 0x7d, 0x6a, 0x07, 0xe6, 0xf1, 0x47, + 0x76, 0xe0, 0x50, 0xdf, 0x67, 0x46, 0x38, 0x9a, 0x19, 0xe1, 0xc1, 0xd5, 0x22, 0xfb, 0x6c, 0x5b, + 0x6c, 0x06, 0xda, 0xbe, 0xfe, 0x94, 0xa3, 0x09, 0xcb, 0xb9, 0x68, 0xfb, 0xa2, 0x9e, 0xda, 0x03, + 0xc2, 0xcd, 0xd8, 0x18, 0xb5, 0xf7, 0xa1, 0xe6, 0x23, 0x40, 0x56, 0x0c, 0x45, 0x2d, 0xd6, 0xb0, + 0x18, 0xba, 0xb6, 0xec, 0x47, 0x3f, 0xa9, 0xaf, 0xfe, 0x61, 0x0e, 0xd6, 0xa7, 0x16, 0xc5, 0x39, + 0x1d, 0x21, 0xa9, 0x35, 0x38, 0x68, 0x99, 0xa8, 0xae, 0x47, 0xc6, 0x5b, 0xa8, 0x0b, 0xaa, 0xe2, + 0x57, 0x60, 0x39, 0x10, 0x43, 0xae, 0xf7, 0x53, 0x4e, 0xab, 0xe3, 0xfa, 0xa0, 0x55, 0x83, 0xb8, + 0x7e, 0xc4, 0x22, 0x48, 0xb9, 0x44, 0x04, 0xe9, 0x4b, 0xa1, 0x5f, 0x46, 0x87, 0xae, 0x79, 0x2c, + 0xbc, 0xc1, 0xd5, 0xf8, 0x98, 0xb7, 0x58, 0x91, 0x74, 0xce, 0xf0, 0x83, 0x59, 0x11, 0x5c, 0x0f, + 0x78, 0x37, 0x16, 0x53, 0x74, 0x0f, 0x38, 0x42, 0x87, 0xef, 0x3b, 0xf9, 0x01, 0xd3, 0x2e, 0x11, + 0x3a, 0x2b, 0xc9, 0x0d, 0xdb, 0x3b, 0xa2, 0x1a, 0x2f, 0x21, 0xef, 0x40, 0xd9, 0x67, 0xfa, 0xa4, + 0x8b, 0x5d, 0xa3, 0x80, 0x98, 0x72, 0x6f, 0x9c, 0x68, 0x9a, 0x56, 0xf2, 0x23, 0x6a, 0xf7, 0x2e, + 0x54, 0x23, 0xe2, 0xd4, 0x4f, 0x1f, 0xe0, 0x92, 0x1a, 0xae, 0x85, 0xd1, 0x69, 0xa6, 0x95, 0xcd, + 0xe8, 0xa4, 0xdb, 0x4c, 0x51, 0x09, 0xc0, 0xba, 0x75, 0x5e, 0x77, 0x5a, 0x8d, 0xa6, 0xf5, 0xe2, + 0x10, 0x96, 0x9b, 0xfe, 0x89, 0xe0, 0xee, 0xf3, 0xdb, 0x24, 0xd5, 0xdf, 0x52, 0xa0, 0x36, 0x69, + 0x68, 0xce, 0x23, 0xa7, 0x8a, 0x43, 0x9f, 0xea, 0xc9, 0x60, 0x62, 0xc9, 0xa1, 0x4f, 0x35, 0xa9, + 0x0d, 0xb7, 0x98, 0x5f, 0xfa, 0x54, 0x17, 0x13, 0x4f, 0x86, 0xf3, 0xc0, 0xa1, 0x4f, 0x3b, 0x38, + 0xf9, 0x7c, 0xf5, 0x77, 0x15, 0x20, 0x1a, 0x1d, 0xba, 0x5e, 0x30, 0x7f, 0xa7, 0x55, 0xc8, 0xf5, + 0xe9, 0x61, 0x30, 0xa3, 0xcb, 0x58, 0x46, 0x5e, 0x86, 0xbc, 0x67, 0x1f, 0x1d, 0x07, 0x33, 0xce, + 0x1b, 0x79, 0xa1, 0xba, 0x09, 0xab, 0x31, 0x66, 0xe6, 0x72, 0x86, 0xbe, 0xa3, 0xc0, 0x5a, 0xd3, + 0x3f, 0xe1, 0xc3, 0xfd, 0x79, 0x8f, 0x24, 0x1e, 0x2a, 0xa3, 0x9a, 0xf3, 0xb3, 0x5f, 0x79, 0xa8, + 0xcc, 0x40, 0x9b, 0x0c, 0xa2, 0xee, 0xc3, 0x12, 0x72, 0xd1, 0xde, 0x9a, 0x1e, 0x32, 0xe5, 0xfc, + 0x21, 0xcb, 0x4c, 0x0d, 0xd9, 0x21, 0x5c, 0x4a, 0x74, 0x6f, 0x2e, 0xfd, 0xb9, 0xc9, 0x23, 0xbc, + 0xf2, 0x70, 0x62, 0x32, 0x2d, 0xdb, 0x5b, 0x18, 0xf0, 0x55, 0x87, 0x6c, 0x89, 0x64, 0x83, 0xf1, + 0x82, 0x92, 0xbc, 0x9b, 0x0c, 0x1f, 0x24, 0x45, 0x19, 0x06, 0x10, 0x3e, 0x80, 0xfa, 0x74, 0x8b, + 0x73, 0xe9, 0xc0, 0xd7, 0xa1, 0x1c, 0x35, 0x9b, 0x98, 0x9b, 0xca, 0xe3, 0x43, 0x93, 0xb3, 0x78, + 0x2e, 0xfb, 0x2a, 0x82, 0x27, 0x99, 0x05, 0xb7, 0xa1, 0x42, 0x1d, 0x2b, 0x82, 0xc6, 0x67, 0x55, + 0x99, 0x3a, 0x56, 0x88, 0xa4, 0xbe, 0x03, 0xa0, 0x51, 0xd3, 0xf5, 0xac, 0x8e, 0x61, 0x7b, 0x29, + 0xee, 0x4c, 0x2c, 0x8f, 0x25, 0x27, 0x1c, 0x18, 0xf5, 0x5f, 0x14, 0x28, 0x48, 0xdb, 0x36, 0xbe, + 0x88, 0x2b, 0x89, 0x45, 0x1c, 0x0b, 0x0d, 0x4b, 0x17, 0xbb, 0xaa, 0x28, 0x34, 0x2c, 0x34, 0xe6, + 0xf0, 0xb8, 0xc7, 0xb0, 0x74, 0x34, 0x52, 0x51, 0xdf, 0x72, 0x1a, 0xa2, 0x6f, 0x30, 0x40, 0xd2, + 0xf6, 0xca, 0x5d, 0xc0, 0xf6, 0x7a, 0x09, 0xca, 0xc2, 0xbe, 0x95, 0x81, 0x7c, 0xd4, 0x4a, 0x01, + 0xc3, 0x46, 0x6f, 0x43, 0x45, 0xa2, 0xf0, 0x76, 0x85, 0x2d, 0x2d, 0x80, 0xd8, 0xb4, 0xfa, 0x27, + 0x45, 0x80, 0xc9, 0x49, 0x66, 0xec, 0xb4, 0x55, 0x89, 0x9d, 0xb6, 0x92, 0x06, 0x14, 0x4c, 0x63, + 0x68, 0x98, 0x76, 0x30, 0x96, 0xfd, 0x93, 0xdf, 0xe4, 0x1a, 0x14, 0x8d, 0x53, 0xc3, 0xee, 0x1b, + 0x07, 0x7d, 0x2a, 0xbb, 0x17, 0x02, 0x18, 0xaf, 0x42, 0x6e, 0x7c, 0xbe, 0xe5, 0x70, 0xbe, 0x89, + 0xad, 0x0c, 0x27, 0x1c, 0x79, 0x0d, 0x88, 0x2f, 0x5c, 0x05, 0xdf, 0x31, 0x86, 0x02, 0x31, 0x8f, + 0x88, 0x35, 0x51, 0xd2, 0x75, 0x8c, 0x21, 0xc7, 0x7e, 0x13, 0xd6, 0x3c, 0x6a, 0x52, 0xfb, 0x34, + 0x81, 0xbf, 0x88, 0xf8, 0x24, 0x2c, 0x9b, 0xd4, 0xb8, 0x0e, 0x30, 0xd1, 0x25, 0xdc, 0x00, 0x2b, + 0x5a, 0x31, 0x54, 0x23, 0x61, 0xac, 0xf6, 0xc7, 0x09, 0x7a, 0x05, 0xc4, 0x5b, 0x91, 0x45, 0x13, + 0x72, 0xeb, 0xb0, 0x64, 0xfb, 0xfa, 0xc1, 0xc8, 0x1f, 0xe3, 0x56, 0x57, 0xd0, 0x16, 0x6d, 0x7f, + 0x63, 0xe4, 0x8f, 0x99, 0x16, 0x8c, 0x7c, 0x6a, 0x45, 0x9d, 0x86, 0x02, 0x03, 0xa0, 0xb7, 0x30, + 0xe5, 0xdc, 0x94, 0x52, 0x9c, 0x9b, 0xa4, 0xf7, 0x52, 0x9e, 0xf6, 0x5e, 0xe2, 0xfe, 0x4f, 0x25, + 0xe9, 0xff, 0xc4, 0x9c, 0x9b, 0x6a, 0xc2, 0xb9, 0x89, 0x7a, 0x2c, 0xcb, 0x17, 0xf0, 0x58, 0xde, + 0x00, 0x08, 0x6d, 0x7c, 0xe6, 0x15, 0x44, 0x2c, 0xe3, 0xc9, 0x74, 0xd2, 0x8a, 0xd2, 0xec, 0xf7, + 0xc9, 0x3b, 0x50, 0x41, 0x55, 0xb7, 0x5d, 0xdd, 0x33, 0x98, 0xd6, 0xad, 0xcc, 0xa8, 0x53, 0x62, + 0x68, 0x6d, 0x57, 0x63, 0x48, 0xe4, 0x4b, 0x50, 0x65, 0x1d, 0xa6, 0x93, 0x6a, 0x64, 0x46, 0x35, + 0x54, 0x5f, 0x2a, 0xeb, 0xbd, 0x0d, 0x65, 0x77, 0xa8, 0xf7, 0x8d, 0x80, 0x3a, 0xa6, 0x4d, 0xfd, + 0xfa, 0xea, 0xac, 0xc6, 0xdc, 0xe1, 0x8e, 0x44, 0x22, 0xaf, 0x03, 0xe0, 0x52, 0xcd, 0x67, 0xdb, + 0x5a, 0x34, 0xb4, 0x2b, 0xe7, 0xba, 0x86, 0xf1, 0x35, 0x3e, 0x27, 0x12, 0xb3, 0xf3, 0xd2, 0x05, + 0x66, 0x27, 0x53, 0xb7, 0xbe, 0xfb, 0x54, 0xf7, 0x4d, 0xd7, 0xa3, 0xf5, 0xcb, 0x7c, 0x84, 0x18, + 0xa4, 0xcb, 0x00, 0x4c, 0xdb, 0x2d, 0x63, 0x60, 0x1c, 0x51, 0x4b, 0x97, 0x47, 0x5c, 0xb6, 0x55, + 0x5f, 0xc7, 0x5d, 0xa3, 0x26, 0x4a, 0x44, 0xf8, 0xb7, 0x6d, 0xb1, 0x1d, 0xc8, 0xf6, 0x75, 0x54, + 0x42, 0xae, 0x72, 0x75, 0x1e, 0xa9, 0xb6, 0xfd, 0x26, 0x83, 0xa1, 0xde, 0x7d, 0x19, 0xaa, 0xbe, + 0xc8, 0xe4, 0x10, 0x6c, 0x5e, 0xc1, 0x6e, 0x89, 0xc1, 0x95, 0x59, 0x1e, 0xd8, 0xb5, 0x8a, 0x1f, + 0xf9, 0xf2, 0x99, 0x57, 0x8f, 0xbc, 0x06, 0x1e, 0x75, 0xac, 0x7a, 0x23, 0x9a, 0xed, 0xd4, 0xed, + 0xbb, 0x4f, 0x7b, 0x0c, 0xcc, 0x99, 0xc7, 0xbf, 0xe4, 0x65, 0xa8, 0xda, 0xbe, 0x7e, 0xe4, 0x0d, + 0x4d, 0x7d, 0x68, 0x30, 0xdd, 0xae, 0x5f, 0xe5, 0x89, 0x33, 0xb6, 0xbf, 0xed, 0x0d, 0xcd, 0x0e, + 0xc2, 0x98, 0x1a, 0x07, 0x6e, 0x60, 0xf4, 0xf5, 0x01, 0x1d, 0xb8, 0xde, 0xb8, 0x7e, 0x8d, 0xab, + 0x31, 0xc2, 0x76, 0x11, 0xc4, 0x76, 0x61, 0x9c, 0x2b, 0x02, 0xe3, 0x3a, 0x62, 0x00, 0x03, 0x71, + 0x04, 0xf5, 0xf7, 0x15, 0x28, 0x86, 0x2c, 0x60, 0x58, 0x93, 0xd1, 0xd6, 0xf9, 0x32, 0xcd, 0x56, + 0x27, 0x45, 0x03, 0x04, 0x3d, 0xc1, 0x9c, 0xc3, 0xeb, 0xc0, 0xbf, 0x50, 0x81, 0x70, 0x89, 0x52, + 0xb4, 0x22, 0x42, 0x98, 0xae, 0xf0, 0x55, 0xc8, 0x1f, 0xf5, 0x03, 0x41, 0x20, 0x8b, 0x08, 0x25, + 0x0e, 0xe3, 0x14, 0x6e, 0x82, 0xf8, 0xe4, 0x24, 0x72, 0xbc, 0x09, 0x0e, 0x62, 0x34, 0xd4, 0x9f, + 0x2a, 0x50, 0x8e, 0xca, 0xf2, 0xec, 0x2d, 0xe1, 0x01, 0x5c, 0x3a, 0xa2, 0x0e, 0x65, 0xb4, 0x74, + 0x6b, 0xe4, 0x09, 0xa7, 0x9d, 0x9a, 0x62, 0xf9, 0x5c, 0x95, 0x85, 0x5b, 0xa2, 0xac, 0x4b, 0x4d, + 0x72, 0x0f, 0x56, 0xd8, 0x72, 0x17, 0xc7, 0xe7, 0x2b, 0xea, 0x32, 0x2b, 0x88, 0xe2, 0xbe, 0x06, + 0x84, 0xcb, 0x38, 0x86, 0xcc, 0xbd, 0x8b, 0x1a, 0x96, 0x44, 0xb1, 0xef, 0x00, 0x77, 0x4a, 0xd8, + 0x5e, 0xcd, 0xd7, 0x27, 0xbe, 0x67, 0x54, 0x42, 0x28, 0x5b, 0xa4, 0xd4, 0x6f, 0x65, 0x00, 0xd0, + 0x75, 0xc0, 0x4d, 0x9d, 0xfc, 0x5f, 0x00, 0x9e, 0xb9, 0x1c, 0x30, 0x89, 0xf0, 0x6d, 0xfc, 0xfa, + 0xfd, 0x78, 0x32, 0xb3, 0x66, 0x1c, 0x06, 0x3b, 0xae, 0x69, 0xf4, 0x99, 0x48, 0xa8, 0x56, 0x64, + 0xa5, 0xf8, 0x97, 0x6c, 0x84, 0x2b, 0x3f, 0xaf, 0xcf, 0xcd, 0xb2, 0x9b, 0xc9, 0xfa, 0x88, 0x12, + 0xa1, 0x20, 0xb6, 0x06, 0x4e, 0xe3, 0x15, 0x58, 0xb6, 0x7d, 0xfd, 0xd0, 0xf5, 0x4c, 0x1a, 0xf5, + 0xbc, 0x0a, 0x5a, 0xc5, 0xf6, 0x1f, 0x32, 0xe8, 0x8e, 0x34, 0x59, 0x6a, 0xc7, 0x86, 0xaf, 0x9b, + 0xee, 0x60, 0x60, 0x07, 0x3a, 0xf7, 0x74, 0x72, 0x88, 0x58, 0x3d, 0x36, 0xfc, 0x4d, 0x04, 0x73, + 0xef, 0xfa, 0x36, 0x54, 0xd8, 0x6c, 0xb2, 0xa9, 0xa5, 0xdb, 0x8e, 0x45, 0x9f, 0x09, 0x41, 0x94, + 0x05, 0xb0, 0xcd, 0x60, 0xea, 0x13, 0x28, 0x89, 0x1c, 0x1b, 0x94, 0xc3, 0xdb, 0x50, 0xc6, 0x35, + 0xc3, 0xc3, 0xcf, 0x44, 0x8c, 0x60, 0x22, 0x2f, 0xad, 0x34, 0x0c, 0xff, 0x63, 0x0c, 0xc7, 0x0f, + 0xa8, 0xb4, 0x47, 0xf0, 0xbf, 0xfa, 0x9f, 0x0a, 0x5c, 0x42, 0xc2, 0x2f, 0x1a, 0xd9, 0x13, 0x39, + 0x49, 0x99, 0x33, 0x73, 0x92, 0xd0, 0xa3, 0xc3, 0x0d, 0x9d, 0x33, 0x2e, 0x4c, 0xf9, 0x95, 0x08, + 0xba, 0x64, 0xdc, 0x8f, 0xf4, 0xf6, 0x23, 0x20, 0x96, 0xa7, 0x1b, 0xa3, 0xc0, 0xf5, 0xc7, 0x8e, + 0x29, 0x03, 0x4d, 0xdc, 0x2e, 0x79, 0x35, 0x2d, 0xd0, 0x84, 0x94, 0xb6, 0xb4, 0xe6, 0x28, 0x70, + 0xbb, 0x63, 0xc7, 0x14, 0x61, 0xa6, 0x9a, 0xe5, 0x35, 0x05, 0x0d, 0x91, 0x24, 0x64, 0x01, 0xd9, + 0xa2, 0x03, 0x37, 0xa0, 0x0f, 0x0d, 0xbb, 0x4f, 0xad, 0x27, 0x6e, 0x40, 0x3d, 0xff, 0xec, 0x59, + 0xf4, 0x16, 0x54, 0x0e, 0x11, 0x59, 0x3f, 0x45, 0xec, 0xd4, 0x00, 0x4a, 0xf9, 0x30, 0x42, 0x4f, + 0x3d, 0x80, 0x52, 0x54, 0x33, 0x6e, 0x87, 0x14, 0x44, 0x72, 0x8f, 0xc2, 0xd3, 0x0d, 0x38, 0x90, + 0x27, 0x0c, 0x31, 0x13, 0x80, 0xb2, 0x4d, 0x2f, 0xa6, 0x69, 0xd2, 0x94, 0x5f, 0xc1, 0xa2, 0x08, + 0x4d, 0x5f, 0xfd, 0xcd, 0x0c, 0x94, 0x45, 0xd2, 0xdc, 0xb8, 0xd3, 0x37, 0x1c, 0x66, 0x32, 0x9b, + 0x1e, 0xc5, 0xbd, 0x4b, 0x49, 0x37, 0x99, 0x45, 0x31, 0x79, 0x0d, 0x96, 0x46, 0x43, 0x0b, 0x31, + 0x53, 0x8d, 0xeb, 0x8d, 0x4c, 0x5d, 0xd1, 0x24, 0x0a, 0xb9, 0x01, 0x10, 0xe6, 0x42, 0x85, 0xde, + 0xe0, 0x04, 0x42, 0x1e, 0xc0, 0x92, 0x85, 0x22, 0x95, 0x21, 0x59, 0xe1, 0x3a, 0x4f, 0xcb, 0x59, + 0x93, 0x88, 0x4c, 0x2b, 0x62, 0x13, 0x2a, 0x1f, 0xd5, 0x8a, 0x48, 0x37, 0xb5, 0xd2, 0x61, 0x44, + 0x8e, 0x52, 0x9d, 0x17, 0x23, 0xea, 0xfc, 0x2e, 0x54, 0x9a, 0x4f, 0x8d, 0x13, 0x2a, 0x8f, 0x2b, + 0x99, 0xd5, 0x6e, 0x1c, 0x38, 0xae, 0x37, 0x30, 0xfa, 0x71, 0x71, 0x57, 0x25, 0x58, 0x64, 0x6c, + 0x6d, 0x41, 0x69, 0xd3, 0x75, 0x02, 0xcf, 0xed, 0xb3, 0x6d, 0x83, 0x7c, 0x11, 0xc0, 0x0c, 0xbc, + 0xbe, 0x4e, 0x4f, 0xa9, 0x13, 0x88, 0xf8, 0x95, 0xc8, 0x5f, 0x8f, 0xa0, 0x61, 0x7e, 0xb8, 0x56, + 0x64, 0x98, 0xf8, 0x57, 0xfd, 0xab, 0x2c, 0x5c, 0x4e, 0x4e, 0xa7, 0x5f, 0x9c, 0xa4, 0x38, 0x26, + 0x0d, 0x99, 0xfd, 0x2d, 0x4f, 0xc8, 0x78, 0x9a, 0x74, 0x55, 0x80, 0xe5, 0x11, 0xd9, 0x7b, 0xb0, + 0xee, 0xd1, 0x4f, 0x46, 0xb6, 0x47, 0x75, 0x8b, 0x06, 0x5c, 0x5b, 0xc5, 0x94, 0xc5, 0x45, 0x0c, + 0x75, 0xe2, 0x92, 0x40, 0xd9, 0x12, 0x18, 0x62, 0xb6, 0xfe, 0x6f, 0x66, 0x72, 0x71, 0x4d, 0xd4, + 0x87, 0x7d, 0xc3, 0x11, 0xc3, 0x49, 0x26, 0x56, 0x90, 0x54, 0x52, 0xad, 0xec, 0x45, 0x55, 0xf6, + 0x3d, 0xa8, 0x1a, 0x38, 0x78, 0xd2, 0x0c, 0x11, 0x31, 0x24, 0xb1, 0xf2, 0xc4, 0x06, 0x56, 0xab, + 0x18, 0xb1, 0x71, 0x7e, 0x07, 0xca, 0x26, 0x1f, 0x17, 0xb4, 0x05, 0x44, 0x50, 0x69, 0x65, 0x6a, + 0xc4, 0xb4, 0x92, 0x39, 0xf9, 0x50, 0xff, 0x36, 0x03, 0x6b, 0x5d, 0xd3, 0x08, 0x02, 0xb6, 0x48, + 0xce, 0x9d, 0x0b, 0x75, 0x73, 0x2a, 0x1f, 0x0b, 0xc5, 0x33, 0x59, 0x33, 0x2e, 0x98, 0x2a, 0x1d, + 0x39, 0xf7, 0xc8, 0x9d, 0x71, 0xee, 0xb1, 0x06, 0xf9, 0x23, 0xcf, 0x1d, 0x0d, 0x51, 0xae, 0x45, + 0x8d, 0x7f, 0x4c, 0x52, 0xf8, 0xd0, 0x78, 0x5b, 0x44, 0x1d, 0x17, 0x6c, 0x31, 0xab, 0x0d, 0x6d, + 0x89, 0xc0, 0x1b, 0xeb, 0x3c, 0x33, 0x80, 0x9f, 0x52, 0x00, 0x82, 0x76, 0x30, 0x3d, 0xe0, 0x2e, + 0xd4, 0xfc, 0x13, 0x7b, 0xc8, 0x27, 0x89, 0xc0, 0x2a, 0xf0, 0xfd, 0x8a, 0xc1, 0x51, 0xa9, 0x11, + 0x53, 0x3d, 0x85, 0x4b, 0x09, 0x99, 0xcd, 0xa5, 0xe1, 0x6f, 0xc0, 0xea, 0xa1, 0xed, 0xd8, 0xfe, + 0x31, 0xb5, 0xf4, 0x21, 0xf5, 0x4c, 0xea, 0x04, 0xf2, 0x96, 0x40, 0x4e, 0x23, 0xb2, 0xa8, 0x13, + 0x96, 0xa8, 0x5b, 0x78, 0x72, 0xb7, 0xbd, 0xd9, 0x35, 0x0e, 0x69, 0xc7, 0xb5, 0x9d, 0xb9, 0x76, + 0x2a, 0x95, 0xe2, 0xb9, 0x5d, 0x8c, 0xca, 0x5c, 0xec, 0x33, 0x9b, 0xda, 0x38, 0xa4, 0xfa, 0x90, + 0xd1, 0x10, 0x5c, 0x17, 0x7d, 0x49, 0x54, 0x3d, 0x84, 0xfa, 0x63, 0x5c, 0x31, 0x5f, 0x90, 0xdf, + 0xf3, 0xda, 0x71, 0xe1, 0x4a, 0x4a, 0x3b, 0x73, 0xf5, 0xe8, 0x65, 0xa8, 0x3a, 0xf4, 0xa9, 0x3e, + 0xd5, 0x5a, 0xd9, 0xa1, 0x4f, 0x43, 0xda, 0xea, 0x0f, 0x14, 0xb8, 0xc9, 0x5b, 0x14, 0x87, 0x93, + 0x9f, 0x45, 0x07, 0x39, 0x25, 0x39, 0x7d, 0xca, 0x5a, 0x51, 0x40, 0xda, 0x16, 0xa9, 0x41, 0xb6, + 0xd7, 0xdb, 0xc1, 0x89, 0x93, 0xd5, 0xd8, 0xdf, 0x84, 0x44, 0x72, 0x49, 0x89, 0xfc, 0x48, 0x81, + 0x5b, 0xb3, 0x19, 0x9c, 0x7b, 0xac, 0x9f, 0x8b, 0xc5, 0x97, 0xa1, 0x3a, 0xb0, 0x1d, 0x7d, 0x8a, + 0xcd, 0xf2, 0xc0, 0x76, 0x26, 0xa2, 0x3c, 0xc2, 0x64, 0x97, 0x08, 0x7b, 0x4f, 0x1e, 0xcc, 0xb9, + 0xfe, 0xa0, 0x3f, 0x3e, 0x34, 0x26, 0xfc, 0x55, 0x34, 0x90, 0xa0, 0xb6, 0xa5, 0x1e, 0x61, 0x36, + 0x4c, 0xa2, 0xa1, 0xcf, 0x43, 0xeb, 0x2d, 0x79, 0x4d, 0xef, 0x85, 0xfb, 0x74, 0xd6, 0x65, 0xb0, + 0x11, 0x54, 0x43, 0xf2, 0xb8, 0xed, 0x26, 0x25, 0xa0, 0x24, 0x25, 0x70, 0x0e, 0xdf, 0xe1, 0x55, + 0xa6, 0xec, 0x8c, 0xcb, 0x5f, 0xac, 0x50, 0xfd, 0x03, 0x05, 0x1a, 0x69, 0xbd, 0x9b, 0x4b, 0x90, + 0xaf, 0xc1, 0x22, 0x9a, 0x16, 0xd2, 0xe6, 0x12, 0xd8, 0xf1, 0x7e, 0x69, 0x02, 0x27, 0x26, 0x8d, + 0x6c, 0x42, 0x1a, 0xdf, 0x56, 0xa0, 0x31, 0xb5, 0x04, 0x7c, 0x4e, 0x9a, 0x94, 0x90, 0x63, 0x36, + 0x39, 0xfe, 0x9f, 0xc0, 0xd5, 0x54, 0x56, 0x3e, 0xc7, 0xf5, 0xe8, 0x1f, 0x92, 0xeb, 0xd1, 0xcf, + 0x45, 0x06, 0x93, 0xd5, 0x20, 0x9b, 0x5c, 0x0d, 0xce, 0x5e, 0x9e, 0xd8, 0x62, 0x11, 0x04, 0x7d, + 0xdc, 0xbb, 0xb3, 0x1a, 0xfb, 0x3b, 0xbd, 0x60, 0x7d, 0x36, 0xd3, 0xf4, 0xec, 0x05, 0x8b, 0xf1, + 0x90, 0x0d, 0x79, 0xb8, 0xe0, 0x82, 0xd5, 0x86, 0x06, 0xbf, 0xd5, 0xf0, 0xc2, 0x9a, 0xa6, 0xf6, + 0xa0, 0x12, 0x23, 0x72, 0xfe, 0x14, 0x56, 0xa1, 0x72, 0x64, 0x4e, 0x6b, 0x43, 0xe9, 0xc8, 0x9c, + 0x30, 0xf8, 0x43, 0x05, 0xae, 0xa6, 0x72, 0x38, 0x97, 0x14, 0xbf, 0x0c, 0xd5, 0x58, 0x8b, 0x72, + 0xae, 0x8a, 0x8e, 0xc5, 0x9b, 0x28, 0x47, 0xf8, 0x38, 0x7b, 0xc2, 0x7e, 0x57, 0x01, 0xd0, 0xc2, + 0x88, 0xc2, 0x74, 0x18, 0x56, 0x39, 0x37, 0xc7, 0x24, 0x73, 0x5e, 0x8e, 0x49, 0xf6, 0x9c, 0x1c, + 0x93, 0x5c, 0x3c, 0x0c, 0xab, 0xfe, 0xb6, 0x02, 0x2b, 0xcc, 0x51, 0x7e, 0x01, 0x23, 0xf8, 0x65, + 0x58, 0xe4, 0x49, 0x67, 0xa9, 0x09, 0x58, 0xa2, 0x0c, 0x8f, 0xba, 0x30, 0xf0, 0xcd, 0x23, 0x1d, + 0x9c, 0x4f, 0x1e, 0x0b, 0xe7, 0x71, 0x8e, 0xb7, 0x79, 0xb8, 0xc7, 0xe7, 0xc1, 0xc0, 0x3b, 0x32, + 0x4b, 0x41, 0x49, 0xcf, 0xee, 0x11, 0x89, 0x0a, 0x5f, 0x80, 0x3c, 0xcf, 0xd7, 0x51, 0xe3, 0xf8, + 0xa9, 0x59, 0x0d, 0xdf, 0xca, 0x02, 0x89, 0xf6, 0x75, 0x2e, 0xd5, 0xb8, 0xf0, 0x81, 0xd4, 0xb9, + 0x3d, 0x26, 0x6f, 0xc7, 0x82, 0x52, 0xd2, 0x6b, 0xae, 0x45, 0xf3, 0x63, 0x31, 0x4e, 0x1a, 0x89, + 0x42, 0xf9, 0xe4, 0x6d, 0xa8, 0x8a, 0x4a, 0xf1, 0xdc, 0xbb, 0x78, 0x8f, 0xc5, 0x8d, 0x05, 0x11, + 0x23, 0x88, 0x66, 0x78, 0x2f, 0x0a, 0x79, 0xce, 0xc8, 0xf0, 0x26, 0x6f, 0xc4, 0x72, 0xab, 0x6a, + 0xc9, 0xe8, 0x92, 0x3f, 0x95, 0x5c, 0xf5, 0x66, 0x32, 0xb9, 0x8a, 0xc7, 0xd9, 0x4b, 0x91, 0x3a, + 0xf1, 0xdc, 0x2a, 0xf5, 0x97, 0x31, 0x0d, 0x72, 0x7f, 0x48, 0x3d, 0x23, 0x70, 0xbd, 0xcf, 0xfc, + 0x22, 0x8c, 0xfa, 0x77, 0x0a, 0xde, 0x00, 0x9b, 0x34, 0x30, 0xd7, 0x40, 0x9f, 0x79, 0xd7, 0x86, + 0x40, 0xce, 0xa2, 0xbe, 0x29, 0xf6, 0x00, 0xfc, 0xcf, 0xc8, 0x47, 0xe2, 0x53, 0x55, 0x49, 0x5e, + 0xb2, 0x21, 0x7c, 0x73, 0x81, 0x83, 0x79, 0x2f, 0xb6, 0x23, 0x6f, 0x93, 0xe3, 0x7f, 0x3c, 0xd8, + 0x67, 0x0a, 0xba, 0x6b, 0x3c, 0xeb, 0x75, 0xe7, 0x3d, 0x78, 0x1e, 0x18, 0xcf, 0xf4, 0x30, 0x1c, + 0x37, 0x75, 0x5b, 0x38, 0x3f, 0x30, 0x9e, 0xf5, 0xf8, 0xb9, 0x00, 0xf3, 0xf9, 0xcc, 0x63, 0x6a, + 0x9e, 0x88, 0x30, 0x66, 0x91, 0x41, 0x30, 0x45, 0x47, 0xfd, 0x9e, 0x58, 0x15, 0x04, 0x23, 0xf3, + 0x26, 0xf9, 0x33, 0x56, 0xfa, 0xae, 0x69, 0xf4, 0xcf, 0x60, 0x08, 0x06, 0xc6, 0x33, 0x8c, 0xb8, + 0x0a, 0xae, 0xc6, 0x8e, 0x49, 0x2d, 0xdd, 0x32, 0x65, 0x72, 0x63, 0x91, 0x43, 0xb6, 0x4c, 0x5f, + 0xfd, 0x75, 0x05, 0x56, 0x23, 0xb9, 0x1f, 0xfe, 0xdc, 0x4e, 0x07, 0x1e, 0xb9, 0x47, 0xb2, 0x8e, + 0x8a, 0x08, 0xc1, 0xb3, 0xca, 0x84, 0xb7, 0x9c, 0x4d, 0x7a, 0xcb, 0xcc, 0x16, 0x5c, 0x8b, 0x33, + 0xf1, 0x73, 0xf1, 0x81, 0x13, 0x5e, 0x7e, 0x36, 0xe1, 0xe5, 0xb3, 0xfd, 0xef, 0x3a, 0xb2, 0xd5, + 0x74, 0xac, 0x98, 0x8f, 0xfe, 0xb9, 0x48, 0x29, 0x0c, 0x44, 0x64, 0xa3, 0x81, 0x88, 0x84, 0xec, + 0x72, 0x53, 0xb2, 0xfb, 0x37, 0x05, 0x6e, 0xcc, 0x62, 0x72, 0x2e, 0x29, 0xbe, 0x07, 0x57, 0x38, + 0x9b, 0xb3, 0x65, 0xb9, 0x8e, 0x08, 0x0f, 0xa7, 0x05, 0xfa, 0x3e, 0x5c, 0xf5, 0x39, 0x0f, 0xa9, + 0xb5, 0xf9, 0xc8, 0x5f, 0x11, 0x28, 0x0f, 0xcf, 0x1b, 0x90, 0x5c, 0x72, 0x40, 0x8e, 0xd1, 0xf3, + 0xda, 0xda, 0x94, 0xf9, 0xe3, 0xd1, 0x84, 0xe3, 0xe7, 0xb5, 0x4a, 0xa3, 0x89, 0xe9, 0x99, 0xa9, + 0xc4, 0xf4, 0x6f, 0x2b, 0x70, 0x25, 0xa5, 0xa9, 0x79, 0x2f, 0x4f, 0xf3, 0x27, 0x0d, 0xb0, 0x9d, + 0xbc, 0x26, 0xbe, 0x22, 0xeb, 0x4a, 0xf6, 0xac, 0x75, 0x45, 0xfd, 0xfb, 0x0c, 0xc0, 0xe4, 0x28, + 0x92, 0x54, 0x21, 0xb3, 0xbd, 0x29, 0xcc, 0x9a, 0xcc, 0xf6, 0x26, 0x33, 0x3f, 0xb7, 0xa9, 0xb4, + 0xdf, 0xd8, 0x5f, 0xb6, 0x0c, 0x76, 0x4d, 0x43, 0xda, 0x2d, 0xf8, 0x9f, 0xdc, 0x82, 0xd2, 0xa6, + 0x3b, 0xf4, 0x5c, 0x93, 0xfa, 0xbe, 0xeb, 0x09, 0x3d, 0x8a, 0x82, 0x18, 0x9b, 0x5b, 0xb4, 0x4f, + 0x03, 0x79, 0x74, 0x24, 0xbe, 0x58, 0x4d, 0xfe, 0x0f, 0x6f, 0xb1, 0x88, 0xf8, 0x70, 0x14, 0xc4, + 0x38, 0xe8, 0x8c, 0x64, 0x14, 0x8c, 0xfd, 0x65, 0x06, 0x5b, 0xc7, 0xa3, 0x78, 0x98, 0x2b, 0x32, + 0x74, 0xc3, 0x6f, 0xf2, 0x25, 0xb8, 0xdc, 0x34, 0x31, 0xd2, 0xd9, 0xa1, 0xbe, 0x6f, 0x0f, 0x6c, + 0x3f, 0xb0, 0x99, 0xe0, 0x4f, 0x44, 0xae, 0xee, 0x8c, 0x52, 0xc6, 0x1f, 0x3f, 0xe7, 0x11, 0x47, + 0xef, 0xe2, 0x8b, 0xb5, 0xa5, 0xb9, 0xfd, 0xfe, 0x81, 0x61, 0x9e, 0x88, 0x33, 0xf7, 0xf0, 0x5b, + 0xfd, 0x73, 0x05, 0xd6, 0x44, 0x02, 0x8b, 0xd8, 0x93, 0xe7, 0xd1, 0x96, 0x64, 0x0a, 0x5f, 0xe6, + 0x82, 0x29, 0x7c, 0x11, 0x0b, 0x21, 0x7b, 0xce, 0x1d, 0xb0, 0x16, 0x5c, 0x4a, 0xf0, 0x39, 0x6f, + 0xa6, 0x55, 0x83, 0xd3, 0xd9, 0xb5, 0x99, 0x31, 0xe6, 0xf6, 0x4f, 0xa9, 0xd5, 0xf3, 0x3f, 0xe3, + 0xbb, 0xf9, 0xe4, 0x15, 0x58, 0x66, 0xfe, 0x8d, 0x27, 0x1a, 0x90, 0x2a, 0x9c, 0xd3, 0x2a, 0x83, + 0x68, 0xb3, 0xea, 0x23, 0xb8, 0x9a, 0xca, 0xcd, 0x5c, 0x7d, 0x3b, 0x86, 0xab, 0x5d, 0x1a, 0xb4, + 0x9e, 0x05, 0xd4, 0x73, 0x8c, 0xfe, 0x64, 0x96, 0xcc, 0xd3, 0xb7, 0x6b, 0xd1, 0x37, 0x40, 0x84, + 0xfd, 0x3f, 0x79, 0xf2, 0x63, 0x07, 0xae, 0xa5, 0xb7, 0x34, 0x17, 0xdf, 0x1f, 0xa2, 0x13, 0xf5, + 0x99, 0xf0, 0xad, 0x7e, 0x03, 0xae, 0x6d, 0x7f, 0x66, 0x9c, 0x9d, 0x23, 0x85, 0xf7, 0xf1, 0x6d, + 0x87, 0x5d, 0xdb, 0x99, 0xcf, 0x6c, 0x52, 0x5d, 0xbc, 0x46, 0x2f, 0xea, 0xcf, 0xc5, 0xdf, 0xeb, + 0x49, 0xfe, 0xce, 0x7c, 0xa9, 0xe5, 0xde, 0x2d, 0x28, 0x86, 0x41, 0x26, 0xb2, 0x04, 0xd9, 0xce, + 0xe3, 0x5e, 0x6d, 0x81, 0x00, 0x2c, 0x6e, 0xb5, 0x76, 0x5a, 0xbd, 0x56, 0x4d, 0xb9, 0xf7, 0x97, + 0x19, 0x28, 0x86, 0x4f, 0xea, 0x90, 0x45, 0xc8, 0xec, 0x3f, 0xaa, 0x2d, 0x90, 0x12, 0x2c, 0x3d, + 0xde, 0x7b, 0xb4, 0xb7, 0xff, 0xd1, 0x5e, 0x4d, 0x21, 0x6b, 0x50, 0xdb, 0xdb, 0xef, 0xe9, 0x1b, + 0xfb, 0xfb, 0xbd, 0x6e, 0x4f, 0x6b, 0x76, 0x3a, 0xad, 0xad, 0x5a, 0x86, 0xac, 0xc2, 0x72, 0xb7, + 0xb7, 0xaf, 0xb5, 0xf4, 0xde, 0xfe, 0xee, 0x46, 0xb7, 0xb7, 0xbf, 0xd7, 0xaa, 0x65, 0x49, 0x1d, + 0xd6, 0x9a, 0x3b, 0x5a, 0xab, 0xb9, 0xf5, 0x71, 0x1c, 0x3d, 0xc7, 0x4a, 0xda, 0x7b, 0x9b, 0xfb, + 0xbb, 0x9d, 0x66, 0xaf, 0xbd, 0xb1, 0xd3, 0xd2, 0x9f, 0xb4, 0xb4, 0x6e, 0x7b, 0x7f, 0xaf, 0x96, + 0x67, 0xe4, 0xb5, 0xd6, 0x76, 0x7b, 0x7f, 0x4f, 0x67, 0xad, 0x3c, 0xdc, 0x7f, 0xbc, 0xb7, 0x55, + 0x5b, 0x24, 0x57, 0x61, 0x7d, 0x7b, 0x67, 0x7f, 0xa3, 0xb9, 0xa3, 0x6f, 0xee, 0xef, 0x3d, 0x6c, + 0x6f, 0x47, 0x0a, 0x97, 0x58, 0x95, 0xad, 0xc7, 0x9d, 0x9d, 0xf6, 0x66, 0xb3, 0xd7, 0xda, 0xd2, + 0x5b, 0x7b, 0x3d, 0xed, 0xe3, 0x5a, 0x81, 0x71, 0x84, 0x7f, 0x23, 0xa8, 0x45, 0xb2, 0x02, 0x95, + 0xf6, 0xde, 0x93, 0xe6, 0x4e, 0x7b, 0x4b, 0x7f, 0xd2, 0xdc, 0x79, 0xdc, 0xaa, 0x01, 0x21, 0x50, + 0xdd, 0x6a, 0xf6, 0x9a, 0x3a, 0x72, 0xb3, 0xd9, 0x6b, 0x6d, 0xd5, 0x4a, 0xe4, 0x0e, 0xbc, 0xc4, + 0x99, 0xe8, 0x62, 0xed, 0xcd, 0xfd, 0xbd, 0x5e, 0xb3, 0xbd, 0xa7, 0x37, 0x77, 0x76, 0xf4, 0x47, + 0xad, 0x8f, 0x75, 0xad, 0xb9, 0xb7, 0xdd, 0xaa, 0x95, 0xef, 0x3d, 0x84, 0x52, 0xe4, 0xc6, 0x0c, + 0xe3, 0x43, 0x88, 0x49, 0xef, 0x3e, 0xd9, 0xd4, 0x77, 0xf7, 0xb7, 0x5a, 0xb5, 0x05, 0xb2, 0x0c, + 0xa5, 0xce, 0xd6, 0x04, 0xa0, 0x90, 0x1a, 0x94, 0x9b, 0x9d, 0xf6, 0x04, 0x92, 0xb9, 0xf7, 0x0e, + 0x94, 0x22, 0x49, 0xea, 0xa4, 0x00, 0xb9, 0xee, 0x66, 0x73, 0x8f, 0xd7, 0x6d, 0x76, 0x3a, 0xda, + 0xfe, 0xd7, 0xda, 0xbb, 0x4d, 0x36, 0x3e, 0x6c, 0xac, 0x1e, 0x77, 0x5b, 0x8f, 0x5a, 0x1f, 0xd7, + 0x32, 0xf7, 0x5e, 0x85, 0x5a, 0xf2, 0x68, 0x90, 0x14, 0x21, 0xdf, 0x69, 0x3e, 0xee, 0xb6, 0xf8, + 0xb0, 0x6a, 0xad, 0xee, 0xe3, 0x5d, 0x36, 0xac, 0x1d, 0xa8, 0xc6, 0x1d, 0x02, 0x36, 0xa4, 0xdd, + 0xc7, 0x9b, 0x9b, 0xad, 0x6e, 0x97, 0x8f, 0x6f, 0xaf, 0xbd, 0xdb, 0xda, 0x7f, 0xdc, 0xe3, 0x4d, + 0x6c, 0x36, 0xf7, 0x36, 0x5b, 0x3b, 0xb5, 0x0c, 0x2b, 0xd0, 0x5a, 0x9d, 0x9d, 0xe6, 0x26, 0x1b, + 0x4d, 0xf6, 0xf1, 0x78, 0x6f, 0xaf, 0xbd, 0xb7, 0x5d, 0xcb, 0xdd, 0xfb, 0x6b, 0x05, 0x8a, 0xb8, + 0xe5, 0x3e, 0xb2, 0x1d, 0x8b, 0xd5, 0xd9, 0x0f, 0x8e, 0xa9, 0xe7, 0xd7, 0x16, 0x98, 0xd2, 0x6c, + 0x6f, 0xd6, 0x14, 0xa6, 0x5f, 0xdb, 0x34, 0xa8, 0x65, 0xb0, 0x3b, 0xa6, 0xe1, 0xd4, 0xb2, 0xac, + 0x3b, 0x91, 0xfd, 0xb4, 0x96, 0x43, 0xd5, 0xc3, 0x6d, 0xb2, 0x96, 0x67, 0x85, 0x91, 0x2d, 0xb3, + 0xb6, 0x88, 0x0a, 0x3a, 0x0a, 0x6a, 0x4b, 0xa4, 0x3c, 0xd9, 0x2b, 0x6b, 0x05, 0xd2, 0x98, 0xb5, + 0x3b, 0xd6, 0x8a, 0xc8, 0x3b, 0xee, 0x79, 0x35, 0x60, 0xb5, 0xe4, 0x2e, 0x57, 0x2b, 0x3d, 0xf8, + 0xe1, 0x75, 0xc8, 0x74, 0xb6, 0xc8, 0x2e, 0x54, 0xe3, 0xb7, 0xa8, 0xc8, 0xd5, 0xf0, 0xf6, 0xd8, + 0xf4, 0x1d, 0xad, 0xc6, 0xb5, 0xf4, 0x42, 0x3e, 0x17, 0xd5, 0x05, 0xd2, 0x04, 0x98, 0x5c, 0x3b, + 0x23, 0xeb, 0xd3, 0x17, 0xd1, 0x38, 0x99, 0xfa, 0xac, 0x1b, 0x6a, 0xea, 0x02, 0x79, 0x13, 0xb2, + 0x3d, 0xdf, 0x25, 0xc2, 0xd9, 0x9d, 0xbc, 0x50, 0xd5, 0x58, 0x89, 0x40, 0x24, 0xf6, 0x5d, 0xe5, + 0x4d, 0x85, 0xbc, 0x0f, 0xc5, 0xf0, 0xf9, 0x1f, 0x22, 0xce, 0x88, 0x93, 0xef, 0x2f, 0x35, 0xd6, + 0xa7, 0xe0, 0x61, 0x8b, 0xbb, 0x50, 0x8d, 0x3f, 0x20, 0x24, 0x65, 0x90, 0xfa, 0x38, 0x91, 0x94, + 0x41, 0xfa, 0x9b, 0x43, 0xea, 0x02, 0x79, 0x17, 0x96, 0xc4, 0x23, 0x3f, 0x44, 0x2c, 0x56, 0xf1, + 0x27, 0x83, 0x1a, 0x97, 0x12, 0xd0, 0xb0, 0xa6, 0x0e, 0x6b, 0x69, 0x2f, 0xf0, 0x90, 0x97, 0x64, + 0x8b, 0x33, 0x5f, 0xfa, 0x69, 0xa8, 0x67, 0xa1, 0x84, 0x0d, 0xfc, 0x1f, 0x28, 0xc8, 0x07, 0x72, + 0xc8, 0xa5, 0x70, 0x0c, 0xa2, 0x2f, 0xd4, 0x34, 0x2e, 0x27, 0xc1, 0xd1, 0xca, 0xf2, 0xa1, 0x19, + 0x59, 0x39, 0xf1, 0xbc, 0x8d, 0xac, 0x9c, 0x7c, 0x8f, 0x46, 0x5d, 0x20, 0xdb, 0x50, 0x8e, 0xbe, + 0xc7, 0x42, 0xae, 0x84, 0xcd, 0x24, 0x5f, 0x88, 0x69, 0x34, 0xd2, 0x8a, 0xa2, 0x83, 0x15, 0x3f, + 0xdf, 0x97, 0x83, 0x95, 0x9a, 0x44, 0x23, 0x07, 0x2b, 0x3d, 0x25, 0x40, 0x5d, 0x20, 0x3d, 0x58, + 0x4e, 0xdc, 0x21, 0x21, 0xd7, 0xa2, 0x91, 0x9f, 0x29, 0x82, 0xd7, 0x67, 0x94, 0x26, 0x35, 0x32, + 0x7c, 0x65, 0x84, 0x4c, 0x24, 0x1a, 0x8b, 0xee, 0x35, 0xd6, 0xa7, 0xe0, 0x21, 0x57, 0x1b, 0x50, + 0xd9, 0xa6, 0x41, 0xc7, 0xa3, 0xa7, 0xf3, 0xd3, 0x78, 0x88, 0x34, 0x26, 0x2f, 0x9d, 0x90, 0x46, + 0x02, 0x37, 0xf2, 0xfc, 0xc9, 0x59, 0x74, 0x3e, 0x80, 0x52, 0xe4, 0x71, 0x0d, 0x52, 0x4f, 0x79, + 0x6f, 0x83, 0xd3, 0xb8, 0x32, 0xf3, 0x25, 0x0e, 0x21, 0x95, 0x2d, 0x28, 0x45, 0x2e, 0xb2, 0x4b, + 0x4a, 0xd3, 0xf7, 0xf6, 0x25, 0xa5, 0x94, 0x5b, 0xef, 0xea, 0x02, 0xe9, 0x42, 0x2d, 0x79, 0x27, + 0x9e, 0x5c, 0x8f, 0xde, 0x0e, 0x99, 0xa6, 0x77, 0x63, 0x56, 0x71, 0x48, 0xf4, 0x7d, 0x28, 0xc8, + 0xab, 0x1c, 0x52, 0xb7, 0x13, 0x77, 0x48, 0xa4, 0x6e, 0x27, 0x6f, 0x7c, 0xa8, 0xd9, 0xdf, 0xc9, + 0x28, 0x64, 0x1b, 0x4a, 0x91, 0x4b, 0x0f, 0xb2, 0x6b, 0xd3, 0x97, 0x32, 0x64, 0xd7, 0x52, 0x6e, + 0x48, 0x70, 0x42, 0x1f, 0x42, 0x25, 0x76, 0x31, 0x40, 0x8e, 0x5a, 0xda, 0x65, 0x88, 0xc6, 0xd5, + 0xd4, 0xb2, 0xa8, 0xa4, 0x92, 0xa9, 0xf8, 0xe4, 0x7a, 0xb4, 0xfd, 0x69, 0x8a, 0x37, 0x66, 0x15, + 0x47, 0x89, 0x26, 0x2f, 0xf6, 0x4b, 0xa2, 0x33, 0x1e, 0x0e, 0x90, 0x44, 0x67, 0xbd, 0x07, 0xc0, + 0x89, 0x26, 0x6f, 0xd1, 0x4b, 0xa2, 0x33, 0x2e, 0xf4, 0x4b, 0xa2, 0xb3, 0x2e, 0xdf, 0xab, 0x0b, + 0x4c, 0x94, 0xb1, 0xe8, 0x86, 0x14, 0x65, 0x5a, 0xbe, 0x89, 0x14, 0x65, 0x6a, 0x5e, 0x05, 0x5f, + 0x75, 0xe2, 0x07, 0xb8, 0x91, 0x6d, 0x72, 0xfa, 0xfc, 0x3d, 0xb2, 0x4d, 0xa6, 0x9c, 0x7d, 0xab, + 0x0b, 0xe4, 0x09, 0xac, 0x4c, 0x1d, 0xd3, 0x11, 0xd1, 0xa3, 0x59, 0x59, 0x0b, 0x8d, 0x9b, 0x33, + 0xcb, 0x43, 0xba, 0x27, 0x32, 0xe9, 0x61, 0xfa, 0xe4, 0x9d, 0xdc, 0x89, 0x56, 0x9f, 0x99, 0x3a, + 0xd0, 0x78, 0xe5, 0x3c, 0xb4, 0x84, 0x26, 0xc4, 0x0f, 0x91, 0xae, 0xa7, 0x75, 0x3c, 0x3c, 0xa1, + 0x8a, 0x68, 0x42, 0xea, 0xf1, 0x90, 0xba, 0x40, 0x7e, 0x09, 0xc8, 0xf4, 0x11, 0x2f, 0x11, 0x5d, + 0x9f, 0x79, 0xb4, 0xdd, 0xb8, 0x35, 0x1b, 0x41, 0x92, 0x7e, 0x53, 0x21, 0x5f, 0x87, 0xd5, 0x94, + 0xd3, 0x51, 0x72, 0x6b, 0x86, 0x60, 0x27, 0xe4, 0x5f, 0x3a, 0x03, 0x63, 0xa6, 0xf0, 0xa3, 0x4d, + 0xa4, 0x09, 0x3f, 0xa5, 0x9d, 0x57, 0xce, 0x43, 0x0b, 0x1b, 0xfb, 0xba, 0x7c, 0x5d, 0x2d, 0xb5, + 0x2b, 0xb3, 0x0f, 0x09, 0x65, 0x57, 0xce, 0x38, 0xa4, 0xc3, 0xbd, 0xa3, 0x34, 0x39, 0xa1, 0x09, + 0xed, 0xb8, 0xa9, 0x03, 0x2a, 0x69, 0xc7, 0x4d, 0x9f, 0xe6, 0x4c, 0x56, 0xfc, 0xc8, 0x09, 0x00, + 0x99, 0x98, 0x7d, 0x89, 0x53, 0x87, 0xc6, 0x95, 0x94, 0x92, 0xc8, 0xe2, 0x5c, 0x0c, 0xa3, 0xe0, + 0x72, 0x27, 0x4c, 0xc6, 0xe7, 0x1b, 0xeb, 0x53, 0xf0, 0xa8, 0xed, 0x11, 0x0d, 0x15, 0x4b, 0xdb, + 0x23, 0x25, 0x86, 0x2d, 0x6d, 0x8f, 0xb4, 0xc8, 0xb2, 0xba, 0x40, 0x28, 0x5c, 0x4e, 0x8f, 0x9b, + 0x92, 0xdb, 0x91, 0x7a, 0xb3, 0x42, 0xbf, 0x8d, 0x97, 0xcf, 0x46, 0x8a, 0xae, 0x0e, 0x53, 0x81, + 0x44, 0x32, 0x99, 0x3a, 0xa9, 0xc1, 0x4c, 0xb9, 0x3a, 0xcc, 0x8c, 0x40, 0x72, 0xba, 0x53, 0x6f, + 0x17, 0x4b, 0xba, 0xb3, 0xde, 0x50, 0x96, 0x74, 0x67, 0x3e, 0x7a, 0xcc, 0x17, 0x82, 0xe4, 0x0b, + 0xc4, 0x72, 0x21, 0x98, 0xf1, 0xd6, 0xb1, 0x5c, 0x08, 0x66, 0x3d, 0x5c, 0xac, 0x2e, 0x90, 0xaf, + 0xc1, 0xca, 0xd4, 0x83, 0xd3, 0x92, 0xd9, 0x59, 0x6f, 0x5c, 0x37, 0x6e, 0xce, 0x2c, 0x8f, 0xac, + 0x02, 0x3b, 0x50, 0x89, 0x05, 0xce, 0xe4, 0xbe, 0x90, 0x16, 0xf5, 0x93, 0xfb, 0x42, 0x6a, 0xa4, + 0x8d, 0x29, 0x39, 0x9b, 0x88, 0xd3, 0x01, 0xab, 0xae, 0x9c, 0x88, 0xb3, 0x23, 0x6b, 0x72, 0x22, + 0x9e, 0x11, 0xed, 0xe2, 0x1e, 0x41, 0x5a, 0x5c, 0x49, 0x7a, 0x04, 0x67, 0x44, 0xb7, 0xa4, 0x47, + 0x70, 0x56, 0x58, 0x8a, 0x37, 0xb0, 0x7d, 0x46, 0x03, 0xdb, 0xe7, 0x37, 0xb0, 0x7d, 0x76, 0x03, + 0xdc, 0xe5, 0xc0, 0x98, 0x4e, 0xc4, 0xe5, 0x88, 0xc6, 0x88, 0x22, 0x2e, 0x47, 0x2c, 0xf4, 0xa3, + 0x2e, 0x6c, 0x3c, 0xf8, 0xc9, 0x5f, 0x14, 0x94, 0x7f, 0xfa, 0xd9, 0x0d, 0xe5, 0xc7, 0x3f, 0xbb, + 0xa1, 0xfc, 0xf4, 0x67, 0x37, 0x94, 0xef, 0x7e, 0x7a, 0x63, 0xe1, 0xfb, 0x9f, 0xde, 0x58, 0xf8, + 0xf1, 0xa7, 0x37, 0x16, 0x7e, 0xf2, 0xe9, 0x8d, 0x05, 0xa8, 0xb9, 0xde, 0xd1, 0xfd, 0xc0, 0x3e, + 0x39, 0xbd, 0x7f, 0x72, 0x8a, 0x6f, 0xa0, 0x1f, 0x2c, 0xe2, 0xcf, 0xdb, 0xff, 0x1d, 0x00, 0x00, + 0xff, 0xff, 0x14, 0xc5, 0xa7, 0x86, 0x91, 0x5d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -8648,6 +8892,7 @@ type PDClient interface { GetRegion(ctx context.Context, in *GetRegionRequest, opts ...grpc.CallOption) (*GetRegionResponse, error) GetPrevRegion(ctx context.Context, in *GetRegionRequest, opts ...grpc.CallOption) (*GetRegionResponse, error) GetRegionByID(ctx context.Context, in *GetRegionByIDRequest, opts ...grpc.CallOption) (*GetRegionResponse, error) + QueryRegion(ctx context.Context, opts ...grpc.CallOption) (PD_QueryRegionClient, error) // Deprecated: use BatchScanRegions instead. ScanRegions(ctx context.Context, in *ScanRegionsRequest, opts ...grpc.CallOption) (*ScanRegionsResponse, error) BatchScanRegions(ctx context.Context, in *BatchScanRegionsRequest, opts ...grpc.CallOption) (*BatchScanRegionsResponse, error) @@ -8872,6 +9117,37 @@ func (c *pDClient) GetRegionByID(ctx context.Context, in *GetRegionByIDRequest, return out, nil } +func (c *pDClient) QueryRegion(ctx context.Context, opts ...grpc.CallOption) (PD_QueryRegionClient, error) { + stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[2], "/pdpb.PD/QueryRegion", opts...) + if err != nil { + return nil, err + } + x := &pDQueryRegionClient{stream} + return x, nil +} + +type PD_QueryRegionClient interface { + Send(*QueryRegionRequest) error + Recv() (*QueryRegionResponse, error) + grpc.ClientStream +} + +type pDQueryRegionClient struct { + grpc.ClientStream +} + +func (x *pDQueryRegionClient) Send(m *QueryRegionRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *pDQueryRegionClient) Recv() (*QueryRegionResponse, error) { + m := new(QueryRegionResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *pDClient) ScanRegions(ctx context.Context, in *ScanRegionsRequest, opts ...grpc.CallOption) (*ScanRegionsResponse, error) { out := new(ScanRegionsResponse) err := c.cc.Invoke(ctx, "/pdpb.PD/ScanRegions", in, out, opts...) @@ -8992,7 +9268,7 @@ func (c *pDClient) GetGCSafePointV2(ctx context.Context, in *GetGCSafePointV2Req } func (c *pDClient) WatchGCSafePointV2(ctx context.Context, in *WatchGCSafePointV2Request, opts ...grpc.CallOption) (PD_WatchGCSafePointV2Client, error) { - stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[2], "/pdpb.PD/WatchGCSafePointV2", opts...) + stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[3], "/pdpb.PD/WatchGCSafePointV2", opts...) if err != nil { return nil, err } @@ -9051,7 +9327,7 @@ func (c *pDClient) GetAllGCSafePointV2(ctx context.Context, in *GetAllGCSafePoin } func (c *pDClient) SyncRegions(ctx context.Context, opts ...grpc.CallOption) (PD_SyncRegionsClient, error) { - stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[3], "/pdpb.PD/SyncRegions", opts...) + stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[4], "/pdpb.PD/SyncRegions", opts...) if err != nil { return nil, err } @@ -9145,7 +9421,7 @@ func (c *pDClient) LoadGlobalConfig(ctx context.Context, in *LoadGlobalConfigReq } func (c *pDClient) WatchGlobalConfig(ctx context.Context, in *WatchGlobalConfigRequest, opts ...grpc.CallOption) (PD_WatchGlobalConfigClient, error) { - stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[4], "/pdpb.PD/WatchGlobalConfig", opts...) + stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[5], "/pdpb.PD/WatchGlobalConfig", opts...) if err != nil { return nil, err } @@ -9177,7 +9453,7 @@ func (x *pDWatchGlobalConfigClient) Recv() (*WatchGlobalConfigResponse, error) { } func (c *pDClient) ReportBuckets(ctx context.Context, opts ...grpc.CallOption) (PD_ReportBucketsClient, error) { - stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[5], "/pdpb.PD/ReportBuckets", opts...) + stream, err := c.cc.NewStream(ctx, &_PD_serviceDesc.Streams[6], "/pdpb.PD/ReportBuckets", opts...) if err != nil { return nil, err } @@ -9267,6 +9543,7 @@ type PDServer interface { GetRegion(context.Context, *GetRegionRequest) (*GetRegionResponse, error) GetPrevRegion(context.Context, *GetRegionRequest) (*GetRegionResponse, error) GetRegionByID(context.Context, *GetRegionByIDRequest) (*GetRegionResponse, error) + QueryRegion(PD_QueryRegionServer) error // Deprecated: use BatchScanRegions instead. ScanRegions(context.Context, *ScanRegionsRequest) (*ScanRegionsResponse, error) BatchScanRegions(context.Context, *BatchScanRegionsRequest) (*BatchScanRegionsResponse, error) @@ -9353,6 +9630,9 @@ func (*UnimplementedPDServer) GetPrevRegion(ctx context.Context, req *GetRegionR func (*UnimplementedPDServer) GetRegionByID(ctx context.Context, req *GetRegionByIDRequest) (*GetRegionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetRegionByID not implemented") } +func (*UnimplementedPDServer) QueryRegion(srv PD_QueryRegionServer) error { + return status.Errorf(codes.Unimplemented, "method QueryRegion not implemented") +} func (*UnimplementedPDServer) ScanRegions(ctx context.Context, req *ScanRegionsRequest) (*ScanRegionsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ScanRegions not implemented") } @@ -9737,6 +10017,32 @@ func _PD_GetRegionByID_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _PD_QueryRegion_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(PDServer).QueryRegion(&pDQueryRegionServer{stream}) +} + +type PD_QueryRegionServer interface { + Send(*QueryRegionResponse) error + Recv() (*QueryRegionRequest, error) + grpc.ServerStream +} + +type pDQueryRegionServer struct { + grpc.ServerStream +} + +func (x *pDQueryRegionServer) Send(m *QueryRegionResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *pDQueryRegionServer) Recv() (*QueryRegionRequest, error) { + m := new(QueryRegionRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func _PD_ScanRegions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ScanRegionsRequest) if err := dec(in); err != nil { @@ -10495,6 +10801,12 @@ var _PD_serviceDesc = grpc.ServiceDesc{ ServerStreams: true, ClientStreams: true, }, + { + StreamName: "QueryRegion", + Handler: _PD_QueryRegion_Handler, + ServerStreams: true, + ClientStreams: true, + }, { StreamName: "WatchGCSafePointV2", Handler: _PD_WatchGCSafePointV2_Handler, @@ -11918,7 +12230,7 @@ func (m *GetRegionByIDRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ScanRegionsRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryRegionRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11928,32 +12240,154 @@ func (m *ScanRegionsRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ScanRegionsRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryRegionRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ScanRegionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryRegionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.EndKey) > 0 { - i -= len(m.EndKey) - copy(dAtA[i:], m.EndKey) - i = encodeVarintPdpb(dAtA, i, uint64(len(m.EndKey))) + if len(m.PrevKeys) > 0 { + for iNdEx := len(m.PrevKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.PrevKeys[iNdEx]) + copy(dAtA[i:], m.PrevKeys[iNdEx]) + i = encodeVarintPdpb(dAtA, i, uint64(len(m.PrevKeys[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.Keys) > 0 { + for iNdEx := len(m.Keys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Keys[iNdEx]) + copy(dAtA[i:], m.Keys[iNdEx]) + i = encodeVarintPdpb(dAtA, i, uint64(len(m.Keys[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Ids) > 0 { + dAtA36 := make([]byte, len(m.Ids)*10) + var j35 int + for _, num := range m.Ids { + for num >= 1<<7 { + dAtA36[j35] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j35++ + } + dAtA36[j35] = uint8(num) + j35++ + } + i -= j35 + copy(dAtA[i:], dAtA36[:j35]) + i = encodeVarintPdpb(dAtA, i, uint64(j35)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x1a } - if m.Limit != 0 { - i = encodeVarintPdpb(dAtA, i, uint64(m.Limit)) + if m.NeedBuckets { i-- - dAtA[i] = 0x18 + if m.NeedBuckets { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 } - if len(m.StartKey) > 0 { - i -= len(m.StartKey) - copy(dAtA[i:], m.StartKey) - i = encodeVarintPdpb(dAtA, i, uint64(len(m.StartKey))) + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryRegionResponse) 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 *QueryRegionResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryRegionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RegionsById) > 0 { + for k := range m.RegionsById { + v := m.RegionsById[k] + baseI := i + if v != nil { + { + size, err := v.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i = encodeVarintPdpb(dAtA, i, uint64(k)) + i-- + dAtA[i] = 0x8 + i = encodeVarintPdpb(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.PrevKeyIdMap) > 0 { + dAtA40 := make([]byte, len(m.PrevKeyIdMap)*10) + var j39 int + for _, num := range m.PrevKeyIdMap { + for num >= 1<<7 { + dAtA40[j39] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j39++ + } + dAtA40[j39] = uint8(num) + j39++ + } + i -= j39 + copy(dAtA[i:], dAtA40[:j39]) + i = encodeVarintPdpb(dAtA, i, uint64(j39)) + i-- + dAtA[i] = 0x1a + } + if len(m.KeyIdMap) > 0 { + dAtA42 := make([]byte, len(m.KeyIdMap)*10) + var j41 int + for _, num := range m.KeyIdMap { + for num >= 1<<7 { + dAtA42[j41] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j41++ + } + dAtA42[j41] = uint8(num) + j41++ + } + i -= j41 + copy(dAtA[i:], dAtA42[:j41]) + i = encodeVarintPdpb(dAtA, i, uint64(j41)) i-- dAtA[i] = 0x12 } @@ -11972,7 +12406,7 @@ func (m *ScanRegionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Region) Marshal() (dAtA []byte, err error) { +func (m *RegionResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11982,12 +12416,12 @@ func (m *Region) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Region) MarshalTo(dAtA []byte) (int, error) { +func (m *RegionResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Region) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RegionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -12059,7 +12493,7 @@ func (m *Region) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ScanRegionsResponse) Marshal() (dAtA []byte, err error) { +func (m *ScanRegionsRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -12069,36 +12503,177 @@ func (m *ScanRegionsResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ScanRegionsResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *ScanRegionsRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ScanRegionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ScanRegionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Regions) > 0 { - for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintPdpb(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } + if len(m.EndKey) > 0 { + i -= len(m.EndKey) + copy(dAtA[i:], m.EndKey) + i = encodeVarintPdpb(dAtA, i, uint64(len(m.EndKey))) + i-- + dAtA[i] = 0x22 } - if len(m.Leaders) > 0 { - for iNdEx := len(m.Leaders) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Leaders[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Limit != 0 { + i = encodeVarintPdpb(dAtA, i, uint64(m.Limit)) + i-- + dAtA[i] = 0x18 + } + if len(m.StartKey) > 0 { + i -= len(m.StartKey) + copy(dAtA[i:], m.StartKey) + i = encodeVarintPdpb(dAtA, i, uint64(len(m.StartKey))) + i-- + dAtA[i] = 0x12 + } + if m.Header != nil { + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Region) 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 *Region) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Region) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Buckets != nil { + { + size, err := m.Buckets.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + 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 = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + 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 = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.Leader != nil { + { + size, err := m.Leader.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Region != nil { + { + size, err := m.Region.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ScanRegionsResponse) 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 *ScanRegionsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ScanRegionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Regions) > 0 { + for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPdpb(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.Leaders) > 0 { + for iNdEx := len(m.Leaders) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Leaders[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } i -= size i = encodeVarintPdpb(dAtA, i, uint64(size)) @@ -12745,20 +13320,20 @@ func (m *GetClusterInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) } } if len(m.ServiceModes) > 0 { - dAtA55 := make([]byte, len(m.ServiceModes)*10) - var j54 int + dAtA67 := make([]byte, len(m.ServiceModes)*10) + var j66 int for _, num := range m.ServiceModes { for num >= 1<<7 { - dAtA55[j54] = uint8(uint64(num)&0x7f | 0x80) + dAtA67[j66] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j54++ + j66++ } - dAtA55[j54] = uint8(num) - j54++ + dAtA67[j66] = uint8(num) + j66++ } - i -= j54 - copy(dAtA[i:], dAtA55[:j54]) - i = encodeVarintPdpb(dAtA, i, uint64(j54)) + i -= j66 + copy(dAtA[i:], dAtA67[:j66]) + i = encodeVarintPdpb(dAtA, i, uint64(j66)) i-- dAtA[i] = 0x12 } @@ -13468,20 +14043,20 @@ func (m *AskSplitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.NewPeerIds) > 0 { - dAtA79 := make([]byte, len(m.NewPeerIds)*10) - var j78 int + dAtA91 := make([]byte, len(m.NewPeerIds)*10) + var j90 int for _, num := range m.NewPeerIds { for num >= 1<<7 { - dAtA79[j78] = uint8(uint64(num)&0x7f | 0x80) + dAtA91[j90] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j78++ + j90++ } - dAtA79[j78] = uint8(num) - j78++ + dAtA91[j90] = uint8(num) + j90++ } - i -= j78 - copy(dAtA[i:], dAtA79[:j78]) - i = encodeVarintPdpb(dAtA, i, uint64(j78)) + i -= j90 + copy(dAtA[i:], dAtA91[:j90]) + i = encodeVarintPdpb(dAtA, i, uint64(j90)) i-- dAtA[i] = 0x1a } @@ -13672,20 +14247,20 @@ func (m *SplitID) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.NewPeerIds) > 0 { - dAtA88 := make([]byte, len(m.NewPeerIds)*10) - var j87 int + dAtA100 := make([]byte, len(m.NewPeerIds)*10) + var j99 int for _, num := range m.NewPeerIds { for num >= 1<<7 { - dAtA88[j87] = uint8(uint64(num)&0x7f | 0x80) + dAtA100[j99] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j87++ + j99++ } - dAtA88[j87] = uint8(num) - j87++ + dAtA100[j99] = uint8(num) + j99++ } - i -= j87 - copy(dAtA[i:], dAtA88[:j87]) - i = encodeVarintPdpb(dAtA, i, uint64(j87)) + i -= j99 + copy(dAtA[i:], dAtA100[:j99]) + i = encodeVarintPdpb(dAtA, i, uint64(j99)) i-- dAtA[i] = 0x12 } @@ -14047,20 +14622,20 @@ func (m *StoreStats) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xc0 } if len(m.DamagedRegionsId) > 0 { - dAtA95 := make([]byte, len(m.DamagedRegionsId)*10) - var j94 int + dAtA107 := make([]byte, len(m.DamagedRegionsId)*10) + var j106 int for _, num := range m.DamagedRegionsId { for num >= 1<<7 { - dAtA95[j94] = uint8(uint64(num)&0x7f | 0x80) + dAtA107[j106] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j94++ + j106++ } - dAtA95[j94] = uint8(num) - j94++ + dAtA107[j106] = uint8(num) + j106++ } - i -= j94 - copy(dAtA[i:], dAtA95[:j94]) - i = encodeVarintPdpb(dAtA, i, uint64(j94)) + i -= j106 + copy(dAtA[i:], dAtA107[:j106]) + i = encodeVarintPdpb(dAtA, i, uint64(j106)) i-- dAtA[i] = 0x1 i-- @@ -14600,38 +15175,38 @@ func (m *ForceLeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.EnterForceLeaders) > 0 { - dAtA105 := make([]byte, len(m.EnterForceLeaders)*10) - var j104 int + dAtA117 := make([]byte, len(m.EnterForceLeaders)*10) + var j116 int for _, num := range m.EnterForceLeaders { for num >= 1<<7 { - dAtA105[j104] = uint8(uint64(num)&0x7f | 0x80) + dAtA117[j116] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j104++ + j116++ } - dAtA105[j104] = uint8(num) - j104++ + dAtA117[j116] = uint8(num) + j116++ } - i -= j104 - copy(dAtA[i:], dAtA105[:j104]) - i = encodeVarintPdpb(dAtA, i, uint64(j104)) + i -= j116 + copy(dAtA[i:], dAtA117[:j116]) + i = encodeVarintPdpb(dAtA, i, uint64(j116)) i-- dAtA[i] = 0x12 } if len(m.FailedStores) > 0 { - dAtA107 := make([]byte, len(m.FailedStores)*10) - var j106 int + dAtA119 := make([]byte, len(m.FailedStores)*10) + var j118 int for _, num := range m.FailedStores { for num >= 1<<7 { - dAtA107[j106] = uint8(uint64(num)&0x7f | 0x80) + dAtA119[j118] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j106++ + j118++ } - dAtA107[j106] = uint8(num) - j106++ + dAtA119[j118] = uint8(num) + j118++ } - i -= j106 - copy(dAtA[i:], dAtA107[:j106]) - i = encodeVarintPdpb(dAtA, i, uint64(j106)) + i -= j118 + copy(dAtA[i:], dAtA119[:j118]) + i = encodeVarintPdpb(dAtA, i, uint64(j118)) i-- dAtA[i] = 0xa } @@ -14690,20 +15265,20 @@ func (m *RecoveryPlan) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.Tombstones) > 0 { - dAtA110 := make([]byte, len(m.Tombstones)*10) - var j109 int + dAtA122 := make([]byte, len(m.Tombstones)*10) + var j121 int for _, num := range m.Tombstones { for num >= 1<<7 { - dAtA110[j109] = uint8(uint64(num)&0x7f | 0x80) + dAtA122[j121] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j109++ + j121++ } - dAtA110[j109] = uint8(num) - j109++ + dAtA122[j121] = uint8(num) + j121++ } - i -= j109 - copy(dAtA[i:], dAtA110[:j109]) - i = encodeVarintPdpb(dAtA, i, uint64(j109)) + i -= j121 + copy(dAtA[i:], dAtA122[:j121]) + i = encodeVarintPdpb(dAtA, i, uint64(j121)) i-- dAtA[i] = 0x1a } @@ -14759,20 +15334,20 @@ func (m *AwakenRegions) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.AbnormalStores) > 0 { - dAtA112 := make([]byte, len(m.AbnormalStores)*10) - var j111 int + dAtA124 := make([]byte, len(m.AbnormalStores)*10) + var j123 int for _, num := range m.AbnormalStores { for num >= 1<<7 { - dAtA112[j111] = uint8(uint64(num)&0x7f | 0x80) + dAtA124[j123] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j111++ + j123++ } - dAtA112[j111] = uint8(num) - j111++ + dAtA124[j123] = uint8(num) + j123++ } - i -= j111 - copy(dAtA[i:], dAtA112[:j111]) - i = encodeVarintPdpb(dAtA, i, uint64(j111)) + i -= j123 + copy(dAtA[i:], dAtA124[:j123]) + i = encodeVarintPdpb(dAtA, i, uint64(j123)) i-- dAtA[i] = 0xa } @@ -14943,20 +15518,20 @@ func (m *ScatterRegionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x38 } if len(m.RegionsId) > 0 { - dAtA119 := make([]byte, len(m.RegionsId)*10) - var j118 int + dAtA131 := make([]byte, len(m.RegionsId)*10) + var j130 int for _, num := range m.RegionsId { for num >= 1<<7 { - dAtA119[j118] = uint8(uint64(num)&0x7f | 0x80) + dAtA131[j130] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j118++ + j130++ } - dAtA119[j118] = uint8(num) - j118++ + dAtA131[j130] = uint8(num) + j130++ } - i -= j118 - copy(dAtA[i:], dAtA119[:j118]) - i = encodeVarintPdpb(dAtA, i, uint64(j118)) + i -= j130 + copy(dAtA[i:], dAtA131[:j130]) + i = encodeVarintPdpb(dAtA, i, uint64(j130)) i-- dAtA[i] = 0x32 } @@ -16417,20 +16992,20 @@ func (m *SplitRegionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.RegionsId) > 0 { - dAtA151 := make([]byte, len(m.RegionsId)*10) - var j150 int + dAtA163 := make([]byte, len(m.RegionsId)*10) + var j162 int for _, num := range m.RegionsId { for num >= 1<<7 { - dAtA151[j150] = uint8(uint64(num)&0x7f | 0x80) + dAtA163[j162] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j150++ + j162++ } - dAtA151[j150] = uint8(num) - j150++ + dAtA163[j162] = uint8(num) + j162++ } - i -= j150 - copy(dAtA[i:], dAtA151[:j150]) - i = encodeVarintPdpb(dAtA, i, uint64(j150)) + i -= j162 + copy(dAtA[i:], dAtA163[:j162]) + i = encodeVarintPdpb(dAtA, i, uint64(j162)) i-- dAtA[i] = 0x1a } @@ -16531,20 +17106,20 @@ func (m *SplitAndScatterRegionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, var l int _ = l if len(m.RegionsId) > 0 { - dAtA155 := make([]byte, len(m.RegionsId)*10) - var j154 int + dAtA167 := make([]byte, len(m.RegionsId)*10) + var j166 int for _, num := range m.RegionsId { for num >= 1<<7 { - dAtA155[j154] = uint8(uint64(num)&0x7f | 0x80) + dAtA167[j166] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j154++ + j166++ } - dAtA155[j154] = uint8(num) - j154++ + dAtA167[j166] = uint8(num) + j166++ } - i -= j154 - copy(dAtA[i:], dAtA155[:j154]) - i = encodeVarintPdpb(dAtA, i, uint64(j154)) + i -= j166 + copy(dAtA[i:], dAtA167[:j166]) + i = encodeVarintPdpb(dAtA, i, uint64(j166)) i-- dAtA[i] = 0x22 } @@ -17717,7 +18292,7 @@ func (m *GetRegionByIDRequest) Size() (n int) { return n } -func (m *ScanRegionsRequest) Size() (n int) { +func (m *QueryRegionRequest) Size() (n int) { if m == nil { return 0 } @@ -17727,21 +18302,72 @@ func (m *ScanRegionsRequest) Size() (n int) { l = m.Header.Size() n += 1 + l + sovPdpb(uint64(l)) } - l = len(m.StartKey) - if l > 0 { - n += 1 + l + sovPdpb(uint64(l)) + if m.NeedBuckets { + n += 2 } - if m.Limit != 0 { - n += 1 + sovPdpb(uint64(m.Limit)) + if len(m.Ids) > 0 { + l = 0 + for _, e := range m.Ids { + l += sovPdpb(uint64(e)) + } + n += 1 + sovPdpb(uint64(l)) + l } - l = len(m.EndKey) - if l > 0 { + if len(m.Keys) > 0 { + for _, b := range m.Keys { + l = len(b) + n += 1 + l + sovPdpb(uint64(l)) + } + } + if len(m.PrevKeys) > 0 { + for _, b := range m.PrevKeys { + l = len(b) + n += 1 + l + sovPdpb(uint64(l)) + } + } + return n +} + +func (m *QueryRegionResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() n += 1 + l + sovPdpb(uint64(l)) } + if len(m.KeyIdMap) > 0 { + l = 0 + for _, e := range m.KeyIdMap { + l += sovPdpb(uint64(e)) + } + n += 1 + sovPdpb(uint64(l)) + l + } + if len(m.PrevKeyIdMap) > 0 { + l = 0 + for _, e := range m.PrevKeyIdMap { + l += sovPdpb(uint64(e)) + } + n += 1 + sovPdpb(uint64(l)) + l + } + if len(m.RegionsById) > 0 { + for k, v := range m.RegionsById { + _ = k + _ = v + l = 0 + if v != nil { + l = v.Size() + l += 1 + sovPdpb(uint64(l)) + } + mapEntrySize := 1 + sovPdpb(uint64(k)) + l + n += mapEntrySize + 1 + sovPdpb(uint64(mapEntrySize)) + } + } return n } -func (m *Region) Size() (n int) { +func (m *RegionResponse) Size() (n int) { if m == nil { return 0 } @@ -17774,7 +18400,7 @@ func (m *Region) Size() (n int) { return n } -func (m *ScanRegionsResponse) Size() (n int) { +func (m *ScanRegionsRequest) Size() (n int) { if m == nil { return 0 } @@ -17784,15 +18410,72 @@ func (m *ScanRegionsResponse) Size() (n int) { l = m.Header.Size() n += 1 + l + sovPdpb(uint64(l)) } - if len(m.RegionMetas) > 0 { - for _, e := range m.RegionMetas { - l = e.Size() - n += 1 + l + sovPdpb(uint64(l)) - } + l = len(m.StartKey) + if l > 0 { + n += 1 + l + sovPdpb(uint64(l)) } - if len(m.Leaders) > 0 { - for _, e := range m.Leaders { - l = e.Size() + if m.Limit != 0 { + n += 1 + sovPdpb(uint64(m.Limit)) + } + l = len(m.EndKey) + if l > 0 { + n += 1 + l + sovPdpb(uint64(l)) + } + return n +} + +func (m *Region) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Region != nil { + l = m.Region.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + if m.Leader != nil { + l = m.Leader.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + if len(m.DownPeers) > 0 { + for _, e := range m.DownPeers { + l = e.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + } + if len(m.PendingPeers) > 0 { + for _, e := range m.PendingPeers { + l = e.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + } + if m.Buckets != nil { + l = m.Buckets.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + return n +} + +func (m *ScanRegionsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Header != nil { + l = m.Header.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + if len(m.RegionMetas) > 0 { + for _, e := range m.RegionMetas { + l = e.Size() + n += 1 + l + sovPdpb(uint64(l)) + } + } + if len(m.Leaders) > 0 { + for _, e := range m.Leaders { + l = e.Size() n += 1 + l + sovPdpb(uint64(l)) } } @@ -23570,6 +24253,831 @@ func (m *GetRegionByIDRequest) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryRegionRequest) 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 ErrIntOverflowPdpb + } + 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: QueryRegionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRegionRequest: 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 ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + 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 != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NeedBuckets", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NeedBuckets = bool(v != 0) + case 3: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Ids = append(m.Ids, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Ids) == 0 { + m.Ids = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Ids = append(m.Ids, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Ids", wireType) + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keys", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Keys = append(m.Keys, make([]byte, postIndex-iNdEx)) + copy(m.Keys[len(m.Keys)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrevKeys", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PrevKeys = append(m.PrevKeys, make([]byte, postIndex-iNdEx)) + copy(m.PrevKeys[len(m.PrevKeys)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryRegionResponse) 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 ErrIntOverflowPdpb + } + 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: QueryRegionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryRegionResponse: 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 ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + 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 == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.KeyIdMap = append(m.KeyIdMap, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.KeyIdMap) == 0 { + m.KeyIdMap = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.KeyIdMap = append(m.KeyIdMap, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field KeyIdMap", wireType) + } + case 3: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PrevKeyIdMap = append(m.PrevKeyIdMap, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.PrevKeyIdMap) == 0 { + m.PrevKeyIdMap = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PrevKeyIdMap = append(m.PrevKeyIdMap, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field PrevKeyIdMap", wireType) + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegionsById", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RegionsById == nil { + m.RegionsById = make(map[uint64]*RegionResponse) + } + var mapkey uint64 + var mapvalue *RegionResponse + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + 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 { + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthPdpb + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthPdpb + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &RegionResponse{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.RegionsById[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RegionResponse) 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 ErrIntOverflowPdpb + } + 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: RegionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RegionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + 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 2: + 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 ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + 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 3: + 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 ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DownPeers = append(m.DownPeers, &PeerStats{}) + if err := m.DownPeers[len(m.DownPeers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PendingPeers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + 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 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Buckets", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPdpb + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPdpb + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPdpb + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Buckets == nil { + m.Buckets = &metapb.Buckets{} + } + if err := m.Buckets.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPdpb(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPdpb + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ScanRegionsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/proto/pdpb.proto b/proto/pdpb.proto index b97302cea..8abdd17a9 100644 --- a/proto/pdpb.proto +++ b/proto/pdpb.proto @@ -54,6 +54,8 @@ service PD { rpc GetRegionByID(GetRegionByIDRequest) returns (GetRegionResponse) {} + rpc QueryRegion(stream QueryRegionRequest) returns (stream QueryRegionResponse) {} + // Deprecated: use BatchScanRegions instead. rpc ScanRegions(ScanRegionsRequest) returns (ScanRegionsResponse) {} @@ -344,6 +346,40 @@ message GetRegionByIDRequest { bool need_buckets = 3; } +message QueryRegionRequest { + RequestHeader header = 1; + + // Whether to include the buckets info within the response. + bool need_buckets = 2; + // The region IDs to query. + repeated uint64 ids = 3; + // The region keys to query. + repeated bytes keys = 4; + // The previous region keys to query. + repeated bytes prev_keys = 5; +} + +message QueryRegionResponse { + ResponseHeader header = 1; + + // This array functions as a map corresponding to the region IDs, + // preserving the order of the input region keys, if they are present. + repeated uint64 key_id_map = 2; + // This array functions as a map corresponding to the previous region IDs, + // preserving the order of the input previous region keys, if they are present. + repeated uint64 prev_key_id_map = 3; + // RegionID -> RegionResponse + map regions_by_id = 4; +} + +message RegionResponse { + metapb.Region region = 1; + metapb.Peer leader = 2; + repeated PeerStats down_peers = 3; + repeated metapb.Peer pending_peers = 4; + metapb.Buckets buckets = 5; +} + // Use GetRegionResponse as the response of GetRegionByIDRequest. // Deprecated: use BatchScanRegionsRequest instead. message ScanRegionsRequest { diff --git a/scripts/proto.lock b/scripts/proto.lock index 18a38a8f5..96a2d57ac 100644 --- a/scripts/proto.lock +++ b/scripts/proto.lock @@ -14753,6 +14753,103 @@ } ] }, + { + "name": "QueryRegionRequest", + "fields": [ + { + "id": 1, + "name": "header", + "type": "RequestHeader" + }, + { + "id": 2, + "name": "need_buckets", + "type": "bool" + }, + { + "id": 3, + "name": "ids", + "type": "uint64", + "is_repeated": true + }, + { + "id": 4, + "name": "keys", + "type": "bytes", + "is_repeated": true + }, + { + "id": 5, + "name": "prev_keys", + "type": "bytes", + "is_repeated": true + } + ] + }, + { + "name": "QueryRegionResponse", + "fields": [ + { + "id": 1, + "name": "header", + "type": "ResponseHeader" + }, + { + "id": 2, + "name": "key_id_map", + "type": "uint64", + "is_repeated": true + }, + { + "id": 3, + "name": "prev_key_id_map", + "type": "uint64", + "is_repeated": true + } + ], + "maps": [ + { + "key_type": "uint64", + "field": { + "id": 4, + "name": "regions_by_id", + "type": "RegionResponse" + } + } + ] + }, + { + "name": "RegionResponse", + "fields": [ + { + "id": 1, + "name": "region", + "type": "metapb.Region" + }, + { + "id": 2, + "name": "leader", + "type": "metapb.Peer" + }, + { + "id": 3, + "name": "down_peers", + "type": "PeerStats", + "is_repeated": true + }, + { + "id": 4, + "name": "pending_peers", + "type": "metapb.Peer", + "is_repeated": true + }, + { + "id": 5, + "name": "buckets", + "type": "metapb.Buckets" + } + ] + }, { "name": "ScanRegionsRequest", "fields": [ @@ -16982,6 +17079,13 @@ "in_type": "GetRegionByIDRequest", "out_type": "GetRegionResponse" }, + { + "name": "QueryRegion", + "in_type": "QueryRegionRequest", + "out_type": "QueryRegionResponse", + "in_streamed": true, + "out_streamed": true + }, { "name": "ScanRegions", "in_type": "ScanRegionsRequest",