You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							2129 lines
						
					
					
						
							77 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							2129 lines
						
					
					
						
							77 KiB
						
					
					
				| // Code generated by protoc-gen-go. | |
| // source: master.proto | |
| // DO NOT EDIT! | |
|  | |
| /* | |
| Package master_pb is a generated protocol buffer package. | |
|  | |
| It is generated from these files: | |
| 	master.proto | |
|  | |
| It has these top-level messages: | |
| 	Heartbeat | |
| 	HeartbeatResponse | |
| 	VolumeInformationMessage | |
| 	VolumeShortInformationMessage | |
| 	VolumeEcShardInformationMessage | |
| 	StorageBackend | |
| 	Empty | |
| 	SuperBlockExtra | |
| 	KeepConnectedRequest | |
| 	VolumeLocation | |
| 	LookupVolumeRequest | |
| 	LookupVolumeResponse | |
| 	Location | |
| 	AssignRequest | |
| 	AssignResponse | |
| 	StatisticsRequest | |
| 	StatisticsResponse | |
| 	StorageType | |
| 	Collection | |
| 	CollectionListRequest | |
| 	CollectionListResponse | |
| 	CollectionDeleteRequest | |
| 	CollectionDeleteResponse | |
| 	DataNodeInfo | |
| 	RackInfo | |
| 	DataCenterInfo | |
| 	TopologyInfo | |
| 	VolumeListRequest | |
| 	VolumeListResponse | |
| 	LookupEcVolumeRequest | |
| 	LookupEcVolumeResponse | |
| 	GetMasterConfigurationRequest | |
| 	GetMasterConfigurationResponse | |
| 	ListMasterClientsRequest | |
| 	ListMasterClientsResponse | |
| */ | |
| package master_pb | |
| 
 | |
| import proto "github.com/golang/protobuf/proto" | |
| import fmt "fmt" | |
| import math "math" | |
| 
 | |
| import ( | |
| 	context "golang.org/x/net/context" | |
| 	grpc "google.golang.org/grpc" | |
| ) | |
| 
 | |
| // Reference imports to suppress errors if they are not otherwise used. | |
| var _ = proto.Marshal | |
| var _ = fmt.Errorf | |
| var _ = math.Inf | |
| 
 | |
| // This is a compile-time assertion to ensure that this generated file | |
| // is compatible with the proto package it is being compiled against. | |
| // A compilation error at this line likely means your copy of the | |
| // proto package needs to be updated. | |
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package | |
|  | |
| type Heartbeat struct { | |
| 	Ip             string                      `protobuf:"bytes,1,opt,name=ip" json:"ip,omitempty"` | |
| 	Port           uint32                      `protobuf:"varint,2,opt,name=port" json:"port,omitempty"` | |
| 	PublicUrl      string                      `protobuf:"bytes,3,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"` | |
| 	MaxVolumeCount uint32                      `protobuf:"varint,4,opt,name=max_volume_count,json=maxVolumeCount" json:"max_volume_count,omitempty"` | |
| 	MaxFileKey     uint64                      `protobuf:"varint,5,opt,name=max_file_key,json=maxFileKey" json:"max_file_key,omitempty"` | |
| 	DataCenter     string                      `protobuf:"bytes,6,opt,name=data_center,json=dataCenter" json:"data_center,omitempty"` | |
| 	Rack           string                      `protobuf:"bytes,7,opt,name=rack" json:"rack,omitempty"` | |
| 	AdminPort      uint32                      `protobuf:"varint,8,opt,name=admin_port,json=adminPort" json:"admin_port,omitempty"` | |
| 	Volumes        []*VolumeInformationMessage `protobuf:"bytes,9,rep,name=volumes" json:"volumes,omitempty"` | |
| 	// delta volumes | |
| 	NewVolumes     []*VolumeShortInformationMessage `protobuf:"bytes,10,rep,name=new_volumes,json=newVolumes" json:"new_volumes,omitempty"` | |
| 	DeletedVolumes []*VolumeShortInformationMessage `protobuf:"bytes,11,rep,name=deleted_volumes,json=deletedVolumes" json:"deleted_volumes,omitempty"` | |
| 	HasNoVolumes   bool                             `protobuf:"varint,12,opt,name=has_no_volumes,json=hasNoVolumes" json:"has_no_volumes,omitempty"` | |
| 	// erasure coding | |
| 	EcShards []*VolumeEcShardInformationMessage `protobuf:"bytes,16,rep,name=ec_shards,json=ecShards" json:"ec_shards,omitempty"` | |
| 	// delta erasure coding shards | |
| 	NewEcShards     []*VolumeEcShardInformationMessage `protobuf:"bytes,17,rep,name=new_ec_shards,json=newEcShards" json:"new_ec_shards,omitempty"` | |
| 	DeletedEcShards []*VolumeEcShardInformationMessage `protobuf:"bytes,18,rep,name=deleted_ec_shards,json=deletedEcShards" json:"deleted_ec_shards,omitempty"` | |
| 	HasNoEcShards   bool                               `protobuf:"varint,19,opt,name=has_no_ec_shards,json=hasNoEcShards" json:"has_no_ec_shards,omitempty"` | |
| } | |
| 
 | |
| func (m *Heartbeat) Reset()                    { *m = Heartbeat{} } | |
| func (m *Heartbeat) String() string            { return proto.CompactTextString(m) } | |
| func (*Heartbeat) ProtoMessage()               {} | |
| func (*Heartbeat) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } | |
| 
 | |
| func (m *Heartbeat) GetIp() string { | |
| 	if m != nil { | |
| 		return m.Ip | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *Heartbeat) GetPort() uint32 { | |
| 	if m != nil { | |
| 		return m.Port | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *Heartbeat) GetPublicUrl() string { | |
| 	if m != nil { | |
| 		return m.PublicUrl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *Heartbeat) GetMaxVolumeCount() uint32 { | |
| 	if m != nil { | |
| 		return m.MaxVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *Heartbeat) GetMaxFileKey() uint64 { | |
| 	if m != nil { | |
| 		return m.MaxFileKey | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *Heartbeat) GetDataCenter() string { | |
| 	if m != nil { | |
| 		return m.DataCenter | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *Heartbeat) GetRack() string { | |
| 	if m != nil { | |
| 		return m.Rack | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *Heartbeat) GetAdminPort() uint32 { | |
| 	if m != nil { | |
| 		return m.AdminPort | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *Heartbeat) GetVolumes() []*VolumeInformationMessage { | |
| 	if m != nil { | |
| 		return m.Volumes | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *Heartbeat) GetNewVolumes() []*VolumeShortInformationMessage { | |
| 	if m != nil { | |
| 		return m.NewVolumes | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *Heartbeat) GetDeletedVolumes() []*VolumeShortInformationMessage { | |
| 	if m != nil { | |
| 		return m.DeletedVolumes | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *Heartbeat) GetHasNoVolumes() bool { | |
| 	if m != nil { | |
| 		return m.HasNoVolumes | |
| 	} | |
| 	return false | |
| } | |
| 
 | |
| func (m *Heartbeat) GetEcShards() []*VolumeEcShardInformationMessage { | |
| 	if m != nil { | |
| 		return m.EcShards | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *Heartbeat) GetNewEcShards() []*VolumeEcShardInformationMessage { | |
| 	if m != nil { | |
| 		return m.NewEcShards | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *Heartbeat) GetDeletedEcShards() []*VolumeEcShardInformationMessage { | |
| 	if m != nil { | |
| 		return m.DeletedEcShards | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *Heartbeat) GetHasNoEcShards() bool { | |
| 	if m != nil { | |
| 		return m.HasNoEcShards | |
| 	} | |
| 	return false | |
| } | |
| 
 | |
| type HeartbeatResponse struct { | |
| 	VolumeSizeLimit        uint64            `protobuf:"varint,1,opt,name=volume_size_limit,json=volumeSizeLimit" json:"volume_size_limit,omitempty"` | |
| 	Leader                 string            `protobuf:"bytes,2,opt,name=leader" json:"leader,omitempty"` | |
| 	MetricsAddress         string            `protobuf:"bytes,3,opt,name=metrics_address,json=metricsAddress" json:"metrics_address,omitempty"` | |
| 	MetricsIntervalSeconds uint32            `protobuf:"varint,4,opt,name=metrics_interval_seconds,json=metricsIntervalSeconds" json:"metrics_interval_seconds,omitempty"` | |
| 	StorageBackends        []*StorageBackend `protobuf:"bytes,5,rep,name=storage_backends,json=storageBackends" json:"storage_backends,omitempty"` | |
| } | |
| 
 | |
| func (m *HeartbeatResponse) Reset()                    { *m = HeartbeatResponse{} } | |
| func (m *HeartbeatResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*HeartbeatResponse) ProtoMessage()               {} | |
| func (*HeartbeatResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
| 
 | |
| func (m *HeartbeatResponse) GetVolumeSizeLimit() uint64 { | |
| 	if m != nil { | |
| 		return m.VolumeSizeLimit | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *HeartbeatResponse) GetLeader() string { | |
| 	if m != nil { | |
| 		return m.Leader | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *HeartbeatResponse) GetMetricsAddress() string { | |
| 	if m != nil { | |
| 		return m.MetricsAddress | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *HeartbeatResponse) GetMetricsIntervalSeconds() uint32 { | |
| 	if m != nil { | |
| 		return m.MetricsIntervalSeconds | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *HeartbeatResponse) GetStorageBackends() []*StorageBackend { | |
| 	if m != nil { | |
| 		return m.StorageBackends | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type VolumeInformationMessage struct { | |
| 	Id                uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` | |
| 	Size              uint64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"` | |
| 	Collection        string `protobuf:"bytes,3,opt,name=collection" json:"collection,omitempty"` | |
| 	FileCount         uint64 `protobuf:"varint,4,opt,name=file_count,json=fileCount" json:"file_count,omitempty"` | |
| 	DeleteCount       uint64 `protobuf:"varint,5,opt,name=delete_count,json=deleteCount" json:"delete_count,omitempty"` | |
| 	DeletedByteCount  uint64 `protobuf:"varint,6,opt,name=deleted_byte_count,json=deletedByteCount" json:"deleted_byte_count,omitempty"` | |
| 	ReadOnly          bool   `protobuf:"varint,7,opt,name=read_only,json=readOnly" json:"read_only,omitempty"` | |
| 	ReplicaPlacement  uint32 `protobuf:"varint,8,opt,name=replica_placement,json=replicaPlacement" json:"replica_placement,omitempty"` | |
| 	Version           uint32 `protobuf:"varint,9,opt,name=version" json:"version,omitempty"` | |
| 	Ttl               uint32 `protobuf:"varint,10,opt,name=ttl" json:"ttl,omitempty"` | |
| 	CompactRevision   uint32 `protobuf:"varint,11,opt,name=compact_revision,json=compactRevision" json:"compact_revision,omitempty"` | |
| 	ModifiedAtSecond  int64  `protobuf:"varint,12,opt,name=modified_at_second,json=modifiedAtSecond" json:"modified_at_second,omitempty"` | |
| 	RemoteStorageName string `protobuf:"bytes,13,opt,name=remote_storage_name,json=remoteStorageName" json:"remote_storage_name,omitempty"` | |
| 	RemoteStorageKey  string `protobuf:"bytes,14,opt,name=remote_storage_key,json=remoteStorageKey" json:"remote_storage_key,omitempty"` | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) Reset()                    { *m = VolumeInformationMessage{} } | |
| func (m *VolumeInformationMessage) String() string            { return proto.CompactTextString(m) } | |
| func (*VolumeInformationMessage) ProtoMessage()               {} | |
| func (*VolumeInformationMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } | |
| 
 | |
| func (m *VolumeInformationMessage) GetId() uint32 { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetSize() uint64 { | |
| 	if m != nil { | |
| 		return m.Size | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetFileCount() uint64 { | |
| 	if m != nil { | |
| 		return m.FileCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetDeleteCount() uint64 { | |
| 	if m != nil { | |
| 		return m.DeleteCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetDeletedByteCount() uint64 { | |
| 	if m != nil { | |
| 		return m.DeletedByteCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetReadOnly() bool { | |
| 	if m != nil { | |
| 		return m.ReadOnly | |
| 	} | |
| 	return false | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetReplicaPlacement() uint32 { | |
| 	if m != nil { | |
| 		return m.ReplicaPlacement | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetVersion() uint32 { | |
| 	if m != nil { | |
| 		return m.Version | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetTtl() uint32 { | |
| 	if m != nil { | |
| 		return m.Ttl | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetCompactRevision() uint32 { | |
| 	if m != nil { | |
| 		return m.CompactRevision | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetModifiedAtSecond() int64 { | |
| 	if m != nil { | |
| 		return m.ModifiedAtSecond | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetRemoteStorageName() string { | |
| 	if m != nil { | |
| 		return m.RemoteStorageName | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *VolumeInformationMessage) GetRemoteStorageKey() string { | |
| 	if m != nil { | |
| 		return m.RemoteStorageKey | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type VolumeShortInformationMessage struct { | |
| 	Id               uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` | |
| 	Collection       string `protobuf:"bytes,3,opt,name=collection" json:"collection,omitempty"` | |
| 	ReplicaPlacement uint32 `protobuf:"varint,8,opt,name=replica_placement,json=replicaPlacement" json:"replica_placement,omitempty"` | |
| 	Version          uint32 `protobuf:"varint,9,opt,name=version" json:"version,omitempty"` | |
| 	Ttl              uint32 `protobuf:"varint,10,opt,name=ttl" json:"ttl,omitempty"` | |
| } | |
| 
 | |
| func (m *VolumeShortInformationMessage) Reset()                    { *m = VolumeShortInformationMessage{} } | |
| func (m *VolumeShortInformationMessage) String() string            { return proto.CompactTextString(m) } | |
| func (*VolumeShortInformationMessage) ProtoMessage()               {} | |
| func (*VolumeShortInformationMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } | |
| 
 | |
| func (m *VolumeShortInformationMessage) GetId() uint32 { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeShortInformationMessage) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *VolumeShortInformationMessage) GetReplicaPlacement() uint32 { | |
| 	if m != nil { | |
| 		return m.ReplicaPlacement | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeShortInformationMessage) GetVersion() uint32 { | |
| 	if m != nil { | |
| 		return m.Version | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeShortInformationMessage) GetTtl() uint32 { | |
| 	if m != nil { | |
| 		return m.Ttl | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type VolumeEcShardInformationMessage struct { | |
| 	Id          uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` | |
| 	Collection  string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"` | |
| 	EcIndexBits uint32 `protobuf:"varint,3,opt,name=ec_index_bits,json=ecIndexBits" json:"ec_index_bits,omitempty"` | |
| } | |
| 
 | |
| func (m *VolumeEcShardInformationMessage) Reset()         { *m = VolumeEcShardInformationMessage{} } | |
| func (m *VolumeEcShardInformationMessage) String() string { return proto.CompactTextString(m) } | |
| func (*VolumeEcShardInformationMessage) ProtoMessage()    {} | |
| func (*VolumeEcShardInformationMessage) Descriptor() ([]byte, []int) { | |
| 	return fileDescriptor0, []int{4} | |
| } | |
| 
 | |
| func (m *VolumeEcShardInformationMessage) GetId() uint32 { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *VolumeEcShardInformationMessage) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *VolumeEcShardInformationMessage) GetEcIndexBits() uint32 { | |
| 	if m != nil { | |
| 		return m.EcIndexBits | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type StorageBackend struct { | |
| 	Type       string            `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"` | |
| 	Id         string            `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` | |
| 	Properties map[string]string `protobuf:"bytes,3,rep,name=properties" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` | |
| } | |
| 
 | |
| func (m *StorageBackend) Reset()                    { *m = StorageBackend{} } | |
| func (m *StorageBackend) String() string            { return proto.CompactTextString(m) } | |
| func (*StorageBackend) ProtoMessage()               {} | |
| func (*StorageBackend) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } | |
| 
 | |
| func (m *StorageBackend) GetType() string { | |
| 	if m != nil { | |
| 		return m.Type | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StorageBackend) GetId() string { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StorageBackend) GetProperties() map[string]string { | |
| 	if m != nil { | |
| 		return m.Properties | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type Empty struct { | |
| } | |
| 
 | |
| func (m *Empty) Reset()                    { *m = Empty{} } | |
| func (m *Empty) String() string            { return proto.CompactTextString(m) } | |
| func (*Empty) ProtoMessage()               {} | |
| func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } | |
| 
 | |
| type SuperBlockExtra struct { | |
| 	ErasureCoding *SuperBlockExtra_ErasureCoding `protobuf:"bytes,1,opt,name=erasure_coding,json=erasureCoding" json:"erasure_coding,omitempty"` | |
| } | |
| 
 | |
| func (m *SuperBlockExtra) Reset()                    { *m = SuperBlockExtra{} } | |
| func (m *SuperBlockExtra) String() string            { return proto.CompactTextString(m) } | |
| func (*SuperBlockExtra) ProtoMessage()               {} | |
| func (*SuperBlockExtra) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } | |
| 
 | |
| func (m *SuperBlockExtra) GetErasureCoding() *SuperBlockExtra_ErasureCoding { | |
| 	if m != nil { | |
| 		return m.ErasureCoding | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type SuperBlockExtra_ErasureCoding struct { | |
| 	Data      uint32   `protobuf:"varint,1,opt,name=data" json:"data,omitempty"` | |
| 	Parity    uint32   `protobuf:"varint,2,opt,name=parity" json:"parity,omitempty"` | |
| 	VolumeIds []uint32 `protobuf:"varint,3,rep,packed,name=volume_ids,json=volumeIds" json:"volume_ids,omitempty"` | |
| } | |
| 
 | |
| func (m *SuperBlockExtra_ErasureCoding) Reset()         { *m = SuperBlockExtra_ErasureCoding{} } | |
| func (m *SuperBlockExtra_ErasureCoding) String() string { return proto.CompactTextString(m) } | |
| func (*SuperBlockExtra_ErasureCoding) ProtoMessage()    {} | |
| func (*SuperBlockExtra_ErasureCoding) Descriptor() ([]byte, []int) { | |
| 	return fileDescriptor0, []int{7, 0} | |
| } | |
| 
 | |
| func (m *SuperBlockExtra_ErasureCoding) GetData() uint32 { | |
| 	if m != nil { | |
| 		return m.Data | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *SuperBlockExtra_ErasureCoding) GetParity() uint32 { | |
| 	if m != nil { | |
| 		return m.Parity | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *SuperBlockExtra_ErasureCoding) GetVolumeIds() []uint32 { | |
| 	if m != nil { | |
| 		return m.VolumeIds | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type KeepConnectedRequest struct { | |
| 	Name     string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` | |
| 	GrpcPort uint32 `protobuf:"varint,2,opt,name=grpc_port,json=grpcPort" json:"grpc_port,omitempty"` | |
| } | |
| 
 | |
| func (m *KeepConnectedRequest) Reset()                    { *m = KeepConnectedRequest{} } | |
| func (m *KeepConnectedRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*KeepConnectedRequest) ProtoMessage()               {} | |
| func (*KeepConnectedRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } | |
| 
 | |
| func (m *KeepConnectedRequest) GetName() string { | |
| 	if m != nil { | |
| 		return m.Name | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *KeepConnectedRequest) GetGrpcPort() uint32 { | |
| 	if m != nil { | |
| 		return m.GrpcPort | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type VolumeLocation struct { | |
| 	Url         string   `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` | |
| 	PublicUrl   string   `protobuf:"bytes,2,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"` | |
| 	NewVids     []uint32 `protobuf:"varint,3,rep,packed,name=new_vids,json=newVids" json:"new_vids,omitempty"` | |
| 	DeletedVids []uint32 `protobuf:"varint,4,rep,packed,name=deleted_vids,json=deletedVids" json:"deleted_vids,omitempty"` | |
| 	Leader      string   `protobuf:"bytes,5,opt,name=leader" json:"leader,omitempty"` | |
| } | |
| 
 | |
| func (m *VolumeLocation) Reset()                    { *m = VolumeLocation{} } | |
| func (m *VolumeLocation) String() string            { return proto.CompactTextString(m) } | |
| func (*VolumeLocation) ProtoMessage()               {} | |
| func (*VolumeLocation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } | |
| 
 | |
| func (m *VolumeLocation) GetUrl() string { | |
| 	if m != nil { | |
| 		return m.Url | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *VolumeLocation) GetPublicUrl() string { | |
| 	if m != nil { | |
| 		return m.PublicUrl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *VolumeLocation) GetNewVids() []uint32 { | |
| 	if m != nil { | |
| 		return m.NewVids | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *VolumeLocation) GetDeletedVids() []uint32 { | |
| 	if m != nil { | |
| 		return m.DeletedVids | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *VolumeLocation) GetLeader() string { | |
| 	if m != nil { | |
| 		return m.Leader | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type LookupVolumeRequest struct { | |
| 	VolumeIds  []string `protobuf:"bytes,1,rep,name=volume_ids,json=volumeIds" json:"volume_ids,omitempty"` | |
| 	Collection string   `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"` | |
| } | |
| 
 | |
| func (m *LookupVolumeRequest) Reset()                    { *m = LookupVolumeRequest{} } | |
| func (m *LookupVolumeRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*LookupVolumeRequest) ProtoMessage()               {} | |
| func (*LookupVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } | |
| 
 | |
| func (m *LookupVolumeRequest) GetVolumeIds() []string { | |
| 	if m != nil { | |
| 		return m.VolumeIds | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *LookupVolumeRequest) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type LookupVolumeResponse struct { | |
| 	VolumeIdLocations []*LookupVolumeResponse_VolumeIdLocation `protobuf:"bytes,1,rep,name=volume_id_locations,json=volumeIdLocations" json:"volume_id_locations,omitempty"` | |
| } | |
| 
 | |
| func (m *LookupVolumeResponse) Reset()                    { *m = LookupVolumeResponse{} } | |
| func (m *LookupVolumeResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*LookupVolumeResponse) ProtoMessage()               {} | |
| func (*LookupVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } | |
| 
 | |
| func (m *LookupVolumeResponse) GetVolumeIdLocations() []*LookupVolumeResponse_VolumeIdLocation { | |
| 	if m != nil { | |
| 		return m.VolumeIdLocations | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type LookupVolumeResponse_VolumeIdLocation struct { | |
| 	VolumeId  string      `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` | |
| 	Locations []*Location `protobuf:"bytes,2,rep,name=locations" json:"locations,omitempty"` | |
| 	Error     string      `protobuf:"bytes,3,opt,name=error" json:"error,omitempty"` | |
| } | |
| 
 | |
| func (m *LookupVolumeResponse_VolumeIdLocation) Reset()         { *m = LookupVolumeResponse_VolumeIdLocation{} } | |
| func (m *LookupVolumeResponse_VolumeIdLocation) String() string { return proto.CompactTextString(m) } | |
| func (*LookupVolumeResponse_VolumeIdLocation) ProtoMessage()    {} | |
| func (*LookupVolumeResponse_VolumeIdLocation) Descriptor() ([]byte, []int) { | |
| 	return fileDescriptor0, []int{11, 0} | |
| } | |
| 
 | |
| func (m *LookupVolumeResponse_VolumeIdLocation) GetVolumeId() string { | |
| 	if m != nil { | |
| 		return m.VolumeId | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *LookupVolumeResponse_VolumeIdLocation) GetLocations() []*Location { | |
| 	if m != nil { | |
| 		return m.Locations | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *LookupVolumeResponse_VolumeIdLocation) GetError() string { | |
| 	if m != nil { | |
| 		return m.Error | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type Location struct { | |
| 	Url       string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` | |
| 	PublicUrl string `protobuf:"bytes,2,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"` | |
| } | |
| 
 | |
| func (m *Location) Reset()                    { *m = Location{} } | |
| func (m *Location) String() string            { return proto.CompactTextString(m) } | |
| func (*Location) ProtoMessage()               {} | |
| func (*Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } | |
| 
 | |
| func (m *Location) GetUrl() string { | |
| 	if m != nil { | |
| 		return m.Url | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *Location) GetPublicUrl() string { | |
| 	if m != nil { | |
| 		return m.PublicUrl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type AssignRequest struct { | |
| 	Count               uint64 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"` | |
| 	Replication         string `protobuf:"bytes,2,opt,name=replication" json:"replication,omitempty"` | |
| 	Collection          string `protobuf:"bytes,3,opt,name=collection" json:"collection,omitempty"` | |
| 	Ttl                 string `protobuf:"bytes,4,opt,name=ttl" json:"ttl,omitempty"` | |
| 	DataCenter          string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter" json:"data_center,omitempty"` | |
| 	Rack                string `protobuf:"bytes,6,opt,name=rack" json:"rack,omitempty"` | |
| 	DataNode            string `protobuf:"bytes,7,opt,name=data_node,json=dataNode" json:"data_node,omitempty"` | |
| 	MemoryMapMaxSizeMb  uint32 `protobuf:"varint,8,opt,name=memory_map_max_size_mb,json=memoryMapMaxSizeMb" json:"memory_map_max_size_mb,omitempty"` | |
| 	WritableVolumeCount uint32 `protobuf:"varint,9,opt,name=Writable_volume_count,json=WritableVolumeCount" json:"Writable_volume_count,omitempty"` | |
| } | |
| 
 | |
| func (m *AssignRequest) Reset()                    { *m = AssignRequest{} } | |
| func (m *AssignRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*AssignRequest) ProtoMessage()               {} | |
| func (*AssignRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } | |
| 
 | |
| func (m *AssignRequest) GetCount() uint64 { | |
| 	if m != nil { | |
| 		return m.Count | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *AssignRequest) GetReplication() string { | |
| 	if m != nil { | |
| 		return m.Replication | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignRequest) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignRequest) GetTtl() string { | |
| 	if m != nil { | |
| 		return m.Ttl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignRequest) GetDataCenter() string { | |
| 	if m != nil { | |
| 		return m.DataCenter | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignRequest) GetRack() string { | |
| 	if m != nil { | |
| 		return m.Rack | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignRequest) GetDataNode() string { | |
| 	if m != nil { | |
| 		return m.DataNode | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignRequest) GetMemoryMapMaxSizeMb() uint32 { | |
| 	if m != nil { | |
| 		return m.MemoryMapMaxSizeMb | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *AssignRequest) GetWritableVolumeCount() uint32 { | |
| 	if m != nil { | |
| 		return m.WritableVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type AssignResponse struct { | |
| 	Fid       string `protobuf:"bytes,1,opt,name=fid" json:"fid,omitempty"` | |
| 	Url       string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` | |
| 	PublicUrl string `protobuf:"bytes,3,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"` | |
| 	Count     uint64 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"` | |
| 	Error     string `protobuf:"bytes,5,opt,name=error" json:"error,omitempty"` | |
| 	Auth      string `protobuf:"bytes,6,opt,name=auth" json:"auth,omitempty"` | |
| } | |
| 
 | |
| func (m *AssignResponse) Reset()                    { *m = AssignResponse{} } | |
| func (m *AssignResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*AssignResponse) ProtoMessage()               {} | |
| func (*AssignResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } | |
| 
 | |
| func (m *AssignResponse) GetFid() string { | |
| 	if m != nil { | |
| 		return m.Fid | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignResponse) GetUrl() string { | |
| 	if m != nil { | |
| 		return m.Url | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignResponse) GetPublicUrl() string { | |
| 	if m != nil { | |
| 		return m.PublicUrl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignResponse) GetCount() uint64 { | |
| 	if m != nil { | |
| 		return m.Count | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *AssignResponse) GetError() string { | |
| 	if m != nil { | |
| 		return m.Error | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *AssignResponse) GetAuth() string { | |
| 	if m != nil { | |
| 		return m.Auth | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type StatisticsRequest struct { | |
| 	Replication string `protobuf:"bytes,1,opt,name=replication" json:"replication,omitempty"` | |
| 	Collection  string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"` | |
| 	Ttl         string `protobuf:"bytes,3,opt,name=ttl" json:"ttl,omitempty"` | |
| } | |
| 
 | |
| func (m *StatisticsRequest) Reset()                    { *m = StatisticsRequest{} } | |
| func (m *StatisticsRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*StatisticsRequest) ProtoMessage()               {} | |
| func (*StatisticsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } | |
| 
 | |
| func (m *StatisticsRequest) GetReplication() string { | |
| 	if m != nil { | |
| 		return m.Replication | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StatisticsRequest) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StatisticsRequest) GetTtl() string { | |
| 	if m != nil { | |
| 		return m.Ttl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type StatisticsResponse struct { | |
| 	Replication string `protobuf:"bytes,1,opt,name=replication" json:"replication,omitempty"` | |
| 	Collection  string `protobuf:"bytes,2,opt,name=collection" json:"collection,omitempty"` | |
| 	Ttl         string `protobuf:"bytes,3,opt,name=ttl" json:"ttl,omitempty"` | |
| 	TotalSize   uint64 `protobuf:"varint,4,opt,name=total_size,json=totalSize" json:"total_size,omitempty"` | |
| 	UsedSize    uint64 `protobuf:"varint,5,opt,name=used_size,json=usedSize" json:"used_size,omitempty"` | |
| 	FileCount   uint64 `protobuf:"varint,6,opt,name=file_count,json=fileCount" json:"file_count,omitempty"` | |
| } | |
| 
 | |
| func (m *StatisticsResponse) Reset()                    { *m = StatisticsResponse{} } | |
| func (m *StatisticsResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*StatisticsResponse) ProtoMessage()               {} | |
| func (*StatisticsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } | |
| 
 | |
| func (m *StatisticsResponse) GetReplication() string { | |
| 	if m != nil { | |
| 		return m.Replication | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StatisticsResponse) GetCollection() string { | |
| 	if m != nil { | |
| 		return m.Collection | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StatisticsResponse) GetTtl() string { | |
| 	if m != nil { | |
| 		return m.Ttl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StatisticsResponse) GetTotalSize() uint64 { | |
| 	if m != nil { | |
| 		return m.TotalSize | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *StatisticsResponse) GetUsedSize() uint64 { | |
| 	if m != nil { | |
| 		return m.UsedSize | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *StatisticsResponse) GetFileCount() uint64 { | |
| 	if m != nil { | |
| 		return m.FileCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type StorageType struct { | |
| 	Replication string `protobuf:"bytes,1,opt,name=replication" json:"replication,omitempty"` | |
| 	Ttl         string `protobuf:"bytes,2,opt,name=ttl" json:"ttl,omitempty"` | |
| } | |
| 
 | |
| func (m *StorageType) Reset()                    { *m = StorageType{} } | |
| func (m *StorageType) String() string            { return proto.CompactTextString(m) } | |
| func (*StorageType) ProtoMessage()               {} | |
| func (*StorageType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } | |
| 
 | |
| func (m *StorageType) GetReplication() string { | |
| 	if m != nil { | |
| 		return m.Replication | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *StorageType) GetTtl() string { | |
| 	if m != nil { | |
| 		return m.Ttl | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type Collection struct { | |
| 	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` | |
| } | |
| 
 | |
| func (m *Collection) Reset()                    { *m = Collection{} } | |
| func (m *Collection) String() string            { return proto.CompactTextString(m) } | |
| func (*Collection) ProtoMessage()               {} | |
| func (*Collection) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } | |
| 
 | |
| func (m *Collection) GetName() string { | |
| 	if m != nil { | |
| 		return m.Name | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type CollectionListRequest struct { | |
| 	IncludeNormalVolumes bool `protobuf:"varint,1,opt,name=include_normal_volumes,json=includeNormalVolumes" json:"include_normal_volumes,omitempty"` | |
| 	IncludeEcVolumes     bool `protobuf:"varint,2,opt,name=include_ec_volumes,json=includeEcVolumes" json:"include_ec_volumes,omitempty"` | |
| } | |
| 
 | |
| func (m *CollectionListRequest) Reset()                    { *m = CollectionListRequest{} } | |
| func (m *CollectionListRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*CollectionListRequest) ProtoMessage()               {} | |
| func (*CollectionListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } | |
| 
 | |
| func (m *CollectionListRequest) GetIncludeNormalVolumes() bool { | |
| 	if m != nil { | |
| 		return m.IncludeNormalVolumes | |
| 	} | |
| 	return false | |
| } | |
| 
 | |
| func (m *CollectionListRequest) GetIncludeEcVolumes() bool { | |
| 	if m != nil { | |
| 		return m.IncludeEcVolumes | |
| 	} | |
| 	return false | |
| } | |
| 
 | |
| type CollectionListResponse struct { | |
| 	Collections []*Collection `protobuf:"bytes,1,rep,name=collections" json:"collections,omitempty"` | |
| } | |
| 
 | |
| func (m *CollectionListResponse) Reset()                    { *m = CollectionListResponse{} } | |
| func (m *CollectionListResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*CollectionListResponse) ProtoMessage()               {} | |
| func (*CollectionListResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } | |
| 
 | |
| func (m *CollectionListResponse) GetCollections() []*Collection { | |
| 	if m != nil { | |
| 		return m.Collections | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type CollectionDeleteRequest struct { | |
| 	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` | |
| } | |
| 
 | |
| func (m *CollectionDeleteRequest) Reset()                    { *m = CollectionDeleteRequest{} } | |
| func (m *CollectionDeleteRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*CollectionDeleteRequest) ProtoMessage()               {} | |
| func (*CollectionDeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } | |
| 
 | |
| func (m *CollectionDeleteRequest) GetName() string { | |
| 	if m != nil { | |
| 		return m.Name | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type CollectionDeleteResponse struct { | |
| } | |
| 
 | |
| func (m *CollectionDeleteResponse) Reset()                    { *m = CollectionDeleteResponse{} } | |
| func (m *CollectionDeleteResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*CollectionDeleteResponse) ProtoMessage()               {} | |
| func (*CollectionDeleteResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } | |
| 
 | |
| // | |
| // volume related | |
| // | |
| type DataNodeInfo struct { | |
| 	Id                string                             `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` | |
| 	VolumeCount       uint64                             `protobuf:"varint,2,opt,name=volume_count,json=volumeCount" json:"volume_count,omitempty"` | |
| 	MaxVolumeCount    uint64                             `protobuf:"varint,3,opt,name=max_volume_count,json=maxVolumeCount" json:"max_volume_count,omitempty"` | |
| 	FreeVolumeCount   uint64                             `protobuf:"varint,4,opt,name=free_volume_count,json=freeVolumeCount" json:"free_volume_count,omitempty"` | |
| 	ActiveVolumeCount uint64                             `protobuf:"varint,5,opt,name=active_volume_count,json=activeVolumeCount" json:"active_volume_count,omitempty"` | |
| 	VolumeInfos       []*VolumeInformationMessage        `protobuf:"bytes,6,rep,name=volume_infos,json=volumeInfos" json:"volume_infos,omitempty"` | |
| 	EcShardInfos      []*VolumeEcShardInformationMessage `protobuf:"bytes,7,rep,name=ec_shard_infos,json=ecShardInfos" json:"ec_shard_infos,omitempty"` | |
| 	RemoteVolumeCount uint64                             `protobuf:"varint,8,opt,name=remote_volume_count,json=remoteVolumeCount" json:"remote_volume_count,omitempty"` | |
| } | |
| 
 | |
| func (m *DataNodeInfo) Reset()                    { *m = DataNodeInfo{} } | |
| func (m *DataNodeInfo) String() string            { return proto.CompactTextString(m) } | |
| func (*DataNodeInfo) ProtoMessage()               {} | |
| func (*DataNodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } | |
| 
 | |
| func (m *DataNodeInfo) GetId() string { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.VolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetMaxVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.MaxVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetFreeVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.FreeVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetActiveVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.ActiveVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetVolumeInfos() []*VolumeInformationMessage { | |
| 	if m != nil { | |
| 		return m.VolumeInfos | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetEcShardInfos() []*VolumeEcShardInformationMessage { | |
| 	if m != nil { | |
| 		return m.EcShardInfos | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *DataNodeInfo) GetRemoteVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.RemoteVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type RackInfo struct { | |
| 	Id                string          `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` | |
| 	VolumeCount       uint64          `protobuf:"varint,2,opt,name=volume_count,json=volumeCount" json:"volume_count,omitempty"` | |
| 	MaxVolumeCount    uint64          `protobuf:"varint,3,opt,name=max_volume_count,json=maxVolumeCount" json:"max_volume_count,omitempty"` | |
| 	FreeVolumeCount   uint64          `protobuf:"varint,4,opt,name=free_volume_count,json=freeVolumeCount" json:"free_volume_count,omitempty"` | |
| 	ActiveVolumeCount uint64          `protobuf:"varint,5,opt,name=active_volume_count,json=activeVolumeCount" json:"active_volume_count,omitempty"` | |
| 	DataNodeInfos     []*DataNodeInfo `protobuf:"bytes,6,rep,name=data_node_infos,json=dataNodeInfos" json:"data_node_infos,omitempty"` | |
| 	RemoteVolumeCount uint64          `protobuf:"varint,7,opt,name=remote_volume_count,json=remoteVolumeCount" json:"remote_volume_count,omitempty"` | |
| } | |
| 
 | |
| func (m *RackInfo) Reset()                    { *m = RackInfo{} } | |
| func (m *RackInfo) String() string            { return proto.CompactTextString(m) } | |
| func (*RackInfo) ProtoMessage()               {} | |
| func (*RackInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } | |
| 
 | |
| func (m *RackInfo) GetId() string { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *RackInfo) GetVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.VolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *RackInfo) GetMaxVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.MaxVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *RackInfo) GetFreeVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.FreeVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *RackInfo) GetActiveVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.ActiveVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *RackInfo) GetDataNodeInfos() []*DataNodeInfo { | |
| 	if m != nil { | |
| 		return m.DataNodeInfos | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *RackInfo) GetRemoteVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.RemoteVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type DataCenterInfo struct { | |
| 	Id                string      `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` | |
| 	VolumeCount       uint64      `protobuf:"varint,2,opt,name=volume_count,json=volumeCount" json:"volume_count,omitempty"` | |
| 	MaxVolumeCount    uint64      `protobuf:"varint,3,opt,name=max_volume_count,json=maxVolumeCount" json:"max_volume_count,omitempty"` | |
| 	FreeVolumeCount   uint64      `protobuf:"varint,4,opt,name=free_volume_count,json=freeVolumeCount" json:"free_volume_count,omitempty"` | |
| 	ActiveVolumeCount uint64      `protobuf:"varint,5,opt,name=active_volume_count,json=activeVolumeCount" json:"active_volume_count,omitempty"` | |
| 	RackInfos         []*RackInfo `protobuf:"bytes,6,rep,name=rack_infos,json=rackInfos" json:"rack_infos,omitempty"` | |
| 	RemoteVolumeCount uint64      `protobuf:"varint,7,opt,name=remote_volume_count,json=remoteVolumeCount" json:"remote_volume_count,omitempty"` | |
| } | |
| 
 | |
| func (m *DataCenterInfo) Reset()                    { *m = DataCenterInfo{} } | |
| func (m *DataCenterInfo) String() string            { return proto.CompactTextString(m) } | |
| func (*DataCenterInfo) ProtoMessage()               {} | |
| func (*DataCenterInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } | |
| 
 | |
| func (m *DataCenterInfo) GetId() string { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *DataCenterInfo) GetVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.VolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataCenterInfo) GetMaxVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.MaxVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataCenterInfo) GetFreeVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.FreeVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataCenterInfo) GetActiveVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.ActiveVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *DataCenterInfo) GetRackInfos() []*RackInfo { | |
| 	if m != nil { | |
| 		return m.RackInfos | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *DataCenterInfo) GetRemoteVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.RemoteVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type TopologyInfo struct { | |
| 	Id                string            `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` | |
| 	VolumeCount       uint64            `protobuf:"varint,2,opt,name=volume_count,json=volumeCount" json:"volume_count,omitempty"` | |
| 	MaxVolumeCount    uint64            `protobuf:"varint,3,opt,name=max_volume_count,json=maxVolumeCount" json:"max_volume_count,omitempty"` | |
| 	FreeVolumeCount   uint64            `protobuf:"varint,4,opt,name=free_volume_count,json=freeVolumeCount" json:"free_volume_count,omitempty"` | |
| 	ActiveVolumeCount uint64            `protobuf:"varint,5,opt,name=active_volume_count,json=activeVolumeCount" json:"active_volume_count,omitempty"` | |
| 	DataCenterInfos   []*DataCenterInfo `protobuf:"bytes,6,rep,name=data_center_infos,json=dataCenterInfos" json:"data_center_infos,omitempty"` | |
| 	RemoteVolumeCount uint64            `protobuf:"varint,7,opt,name=remote_volume_count,json=remoteVolumeCount" json:"remote_volume_count,omitempty"` | |
| } | |
| 
 | |
| func (m *TopologyInfo) Reset()                    { *m = TopologyInfo{} } | |
| func (m *TopologyInfo) String() string            { return proto.CompactTextString(m) } | |
| func (*TopologyInfo) ProtoMessage()               {} | |
| func (*TopologyInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } | |
| 
 | |
| func (m *TopologyInfo) GetId() string { | |
| 	if m != nil { | |
| 		return m.Id | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *TopologyInfo) GetVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.VolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *TopologyInfo) GetMaxVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.MaxVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *TopologyInfo) GetFreeVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.FreeVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *TopologyInfo) GetActiveVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.ActiveVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *TopologyInfo) GetDataCenterInfos() []*DataCenterInfo { | |
| 	if m != nil { | |
| 		return m.DataCenterInfos | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *TopologyInfo) GetRemoteVolumeCount() uint64 { | |
| 	if m != nil { | |
| 		return m.RemoteVolumeCount | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type VolumeListRequest struct { | |
| } | |
| 
 | |
| func (m *VolumeListRequest) Reset()                    { *m = VolumeListRequest{} } | |
| func (m *VolumeListRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*VolumeListRequest) ProtoMessage()               {} | |
| func (*VolumeListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } | |
| 
 | |
| type VolumeListResponse struct { | |
| 	TopologyInfo      *TopologyInfo `protobuf:"bytes,1,opt,name=topology_info,json=topologyInfo" json:"topology_info,omitempty"` | |
| 	VolumeSizeLimitMb uint64        `protobuf:"varint,2,opt,name=volume_size_limit_mb,json=volumeSizeLimitMb" json:"volume_size_limit_mb,omitempty"` | |
| } | |
| 
 | |
| func (m *VolumeListResponse) Reset()                    { *m = VolumeListResponse{} } | |
| func (m *VolumeListResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*VolumeListResponse) ProtoMessage()               {} | |
| func (*VolumeListResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } | |
| 
 | |
| func (m *VolumeListResponse) GetTopologyInfo() *TopologyInfo { | |
| 	if m != nil { | |
| 		return m.TopologyInfo | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func (m *VolumeListResponse) GetVolumeSizeLimitMb() uint64 { | |
| 	if m != nil { | |
| 		return m.VolumeSizeLimitMb | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type LookupEcVolumeRequest struct { | |
| 	VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` | |
| } | |
| 
 | |
| func (m *LookupEcVolumeRequest) Reset()                    { *m = LookupEcVolumeRequest{} } | |
| func (m *LookupEcVolumeRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*LookupEcVolumeRequest) ProtoMessage()               {} | |
| func (*LookupEcVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } | |
| 
 | |
| func (m *LookupEcVolumeRequest) GetVolumeId() uint32 { | |
| 	if m != nil { | |
| 		return m.VolumeId | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type LookupEcVolumeResponse struct { | |
| 	VolumeId         uint32                                      `protobuf:"varint,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` | |
| 	ShardIdLocations []*LookupEcVolumeResponse_EcShardIdLocation `protobuf:"bytes,2,rep,name=shard_id_locations,json=shardIdLocations" json:"shard_id_locations,omitempty"` | |
| } | |
| 
 | |
| func (m *LookupEcVolumeResponse) Reset()                    { *m = LookupEcVolumeResponse{} } | |
| func (m *LookupEcVolumeResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*LookupEcVolumeResponse) ProtoMessage()               {} | |
| func (*LookupEcVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } | |
| 
 | |
| func (m *LookupEcVolumeResponse) GetVolumeId() uint32 { | |
| 	if m != nil { | |
| 		return m.VolumeId | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *LookupEcVolumeResponse) GetShardIdLocations() []*LookupEcVolumeResponse_EcShardIdLocation { | |
| 	if m != nil { | |
| 		return m.ShardIdLocations | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type LookupEcVolumeResponse_EcShardIdLocation struct { | |
| 	ShardId   uint32      `protobuf:"varint,1,opt,name=shard_id,json=shardId" json:"shard_id,omitempty"` | |
| 	Locations []*Location `protobuf:"bytes,2,rep,name=locations" json:"locations,omitempty"` | |
| } | |
| 
 | |
| func (m *LookupEcVolumeResponse_EcShardIdLocation) Reset() { | |
| 	*m = LookupEcVolumeResponse_EcShardIdLocation{} | |
| } | |
| func (m *LookupEcVolumeResponse_EcShardIdLocation) String() string { return proto.CompactTextString(m) } | |
| func (*LookupEcVolumeResponse_EcShardIdLocation) ProtoMessage()    {} | |
| func (*LookupEcVolumeResponse_EcShardIdLocation) Descriptor() ([]byte, []int) { | |
| 	return fileDescriptor0, []int{30, 0} | |
| } | |
| 
 | |
| func (m *LookupEcVolumeResponse_EcShardIdLocation) GetShardId() uint32 { | |
| 	if m != nil { | |
| 		return m.ShardId | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| func (m *LookupEcVolumeResponse_EcShardIdLocation) GetLocations() []*Location { | |
| 	if m != nil { | |
| 		return m.Locations | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| type GetMasterConfigurationRequest struct { | |
| } | |
| 
 | |
| func (m *GetMasterConfigurationRequest) Reset()                    { *m = GetMasterConfigurationRequest{} } | |
| func (m *GetMasterConfigurationRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*GetMasterConfigurationRequest) ProtoMessage()               {} | |
| func (*GetMasterConfigurationRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } | |
| 
 | |
| type GetMasterConfigurationResponse struct { | |
| 	MetricsAddress         string `protobuf:"bytes,1,opt,name=metrics_address,json=metricsAddress" json:"metrics_address,omitempty"` | |
| 	MetricsIntervalSeconds uint32 `protobuf:"varint,2,opt,name=metrics_interval_seconds,json=metricsIntervalSeconds" json:"metrics_interval_seconds,omitempty"` | |
| } | |
| 
 | |
| func (m *GetMasterConfigurationResponse) Reset()         { *m = GetMasterConfigurationResponse{} } | |
| func (m *GetMasterConfigurationResponse) String() string { return proto.CompactTextString(m) } | |
| func (*GetMasterConfigurationResponse) ProtoMessage()    {} | |
| func (*GetMasterConfigurationResponse) Descriptor() ([]byte, []int) { | |
| 	return fileDescriptor0, []int{32} | |
| } | |
| 
 | |
| func (m *GetMasterConfigurationResponse) GetMetricsAddress() string { | |
| 	if m != nil { | |
| 		return m.MetricsAddress | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| func (m *GetMasterConfigurationResponse) GetMetricsIntervalSeconds() uint32 { | |
| 	if m != nil { | |
| 		return m.MetricsIntervalSeconds | |
| 	} | |
| 	return 0 | |
| } | |
| 
 | |
| type ListMasterClientsRequest struct { | |
| 	ClientType string `protobuf:"bytes,1,opt,name=client_type,json=clientType" json:"client_type,omitempty"` | |
| } | |
| 
 | |
| func (m *ListMasterClientsRequest) Reset()                    { *m = ListMasterClientsRequest{} } | |
| func (m *ListMasterClientsRequest) String() string            { return proto.CompactTextString(m) } | |
| func (*ListMasterClientsRequest) ProtoMessage()               {} | |
| func (*ListMasterClientsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } | |
| 
 | |
| func (m *ListMasterClientsRequest) GetClientType() string { | |
| 	if m != nil { | |
| 		return m.ClientType | |
| 	} | |
| 	return "" | |
| } | |
| 
 | |
| type ListMasterClientsResponse struct { | |
| 	GrpcAddresses []string `protobuf:"bytes,1,rep,name=grpc_addresses,json=grpcAddresses" json:"grpc_addresses,omitempty"` | |
| } | |
| 
 | |
| func (m *ListMasterClientsResponse) Reset()                    { *m = ListMasterClientsResponse{} } | |
| func (m *ListMasterClientsResponse) String() string            { return proto.CompactTextString(m) } | |
| func (*ListMasterClientsResponse) ProtoMessage()               {} | |
| func (*ListMasterClientsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } | |
| 
 | |
| func (m *ListMasterClientsResponse) GetGrpcAddresses() []string { | |
| 	if m != nil { | |
| 		return m.GrpcAddresses | |
| 	} | |
| 	return nil | |
| } | |
| 
 | |
| func init() { | |
| 	proto.RegisterType((*Heartbeat)(nil), "master_pb.Heartbeat") | |
| 	proto.RegisterType((*HeartbeatResponse)(nil), "master_pb.HeartbeatResponse") | |
| 	proto.RegisterType((*VolumeInformationMessage)(nil), "master_pb.VolumeInformationMessage") | |
| 	proto.RegisterType((*VolumeShortInformationMessage)(nil), "master_pb.VolumeShortInformationMessage") | |
| 	proto.RegisterType((*VolumeEcShardInformationMessage)(nil), "master_pb.VolumeEcShardInformationMessage") | |
| 	proto.RegisterType((*StorageBackend)(nil), "master_pb.StorageBackend") | |
| 	proto.RegisterType((*Empty)(nil), "master_pb.Empty") | |
| 	proto.RegisterType((*SuperBlockExtra)(nil), "master_pb.SuperBlockExtra") | |
| 	proto.RegisterType((*SuperBlockExtra_ErasureCoding)(nil), "master_pb.SuperBlockExtra.ErasureCoding") | |
| 	proto.RegisterType((*KeepConnectedRequest)(nil), "master_pb.KeepConnectedRequest") | |
| 	proto.RegisterType((*VolumeLocation)(nil), "master_pb.VolumeLocation") | |
| 	proto.RegisterType((*LookupVolumeRequest)(nil), "master_pb.LookupVolumeRequest") | |
| 	proto.RegisterType((*LookupVolumeResponse)(nil), "master_pb.LookupVolumeResponse") | |
| 	proto.RegisterType((*LookupVolumeResponse_VolumeIdLocation)(nil), "master_pb.LookupVolumeResponse.VolumeIdLocation") | |
| 	proto.RegisterType((*Location)(nil), "master_pb.Location") | |
| 	proto.RegisterType((*AssignRequest)(nil), "master_pb.AssignRequest") | |
| 	proto.RegisterType((*AssignResponse)(nil), "master_pb.AssignResponse") | |
| 	proto.RegisterType((*StatisticsRequest)(nil), "master_pb.StatisticsRequest") | |
| 	proto.RegisterType((*StatisticsResponse)(nil), "master_pb.StatisticsResponse") | |
| 	proto.RegisterType((*StorageType)(nil), "master_pb.StorageType") | |
| 	proto.RegisterType((*Collection)(nil), "master_pb.Collection") | |
| 	proto.RegisterType((*CollectionListRequest)(nil), "master_pb.CollectionListRequest") | |
| 	proto.RegisterType((*CollectionListResponse)(nil), "master_pb.CollectionListResponse") | |
| 	proto.RegisterType((*CollectionDeleteRequest)(nil), "master_pb.CollectionDeleteRequest") | |
| 	proto.RegisterType((*CollectionDeleteResponse)(nil), "master_pb.CollectionDeleteResponse") | |
| 	proto.RegisterType((*DataNodeInfo)(nil), "master_pb.DataNodeInfo") | |
| 	proto.RegisterType((*RackInfo)(nil), "master_pb.RackInfo") | |
| 	proto.RegisterType((*DataCenterInfo)(nil), "master_pb.DataCenterInfo") | |
| 	proto.RegisterType((*TopologyInfo)(nil), "master_pb.TopologyInfo") | |
| 	proto.RegisterType((*VolumeListRequest)(nil), "master_pb.VolumeListRequest") | |
| 	proto.RegisterType((*VolumeListResponse)(nil), "master_pb.VolumeListResponse") | |
| 	proto.RegisterType((*LookupEcVolumeRequest)(nil), "master_pb.LookupEcVolumeRequest") | |
| 	proto.RegisterType((*LookupEcVolumeResponse)(nil), "master_pb.LookupEcVolumeResponse") | |
| 	proto.RegisterType((*LookupEcVolumeResponse_EcShardIdLocation)(nil), "master_pb.LookupEcVolumeResponse.EcShardIdLocation") | |
| 	proto.RegisterType((*GetMasterConfigurationRequest)(nil), "master_pb.GetMasterConfigurationRequest") | |
| 	proto.RegisterType((*GetMasterConfigurationResponse)(nil), "master_pb.GetMasterConfigurationResponse") | |
| 	proto.RegisterType((*ListMasterClientsRequest)(nil), "master_pb.ListMasterClientsRequest") | |
| 	proto.RegisterType((*ListMasterClientsResponse)(nil), "master_pb.ListMasterClientsResponse") | |
| } | |
| 
 | |
| // Reference imports to suppress errors if they are not otherwise used. | |
| var _ context.Context | |
| var _ grpc.ClientConn | |
| 
 | |
| // This is a compile-time assertion to ensure that this generated file | |
| // is compatible with the grpc package it is being compiled against. | |
| const _ = grpc.SupportPackageIsVersion4 | |
| 
 | |
| // Client API for Seaweed service | |
|  | |
| type SeaweedClient interface { | |
| 	SendHeartbeat(ctx context.Context, opts ...grpc.CallOption) (Seaweed_SendHeartbeatClient, error) | |
| 	KeepConnected(ctx context.Context, opts ...grpc.CallOption) (Seaweed_KeepConnectedClient, error) | |
| 	LookupVolume(ctx context.Context, in *LookupVolumeRequest, opts ...grpc.CallOption) (*LookupVolumeResponse, error) | |
| 	Assign(ctx context.Context, in *AssignRequest, opts ...grpc.CallOption) (*AssignResponse, error) | |
| 	Statistics(ctx context.Context, in *StatisticsRequest, opts ...grpc.CallOption) (*StatisticsResponse, error) | |
| 	CollectionList(ctx context.Context, in *CollectionListRequest, opts ...grpc.CallOption) (*CollectionListResponse, error) | |
| 	CollectionDelete(ctx context.Context, in *CollectionDeleteRequest, opts ...grpc.CallOption) (*CollectionDeleteResponse, error) | |
| 	VolumeList(ctx context.Context, in *VolumeListRequest, opts ...grpc.CallOption) (*VolumeListResponse, error) | |
| 	LookupEcVolume(ctx context.Context, in *LookupEcVolumeRequest, opts ...grpc.CallOption) (*LookupEcVolumeResponse, error) | |
| 	GetMasterConfiguration(ctx context.Context, in *GetMasterConfigurationRequest, opts ...grpc.CallOption) (*GetMasterConfigurationResponse, error) | |
| 	ListMasterClients(ctx context.Context, in *ListMasterClientsRequest, opts ...grpc.CallOption) (*ListMasterClientsResponse, error) | |
| } | |
| 
 | |
| type seaweedClient struct { | |
| 	cc *grpc.ClientConn | |
| } | |
| 
 | |
| func NewSeaweedClient(cc *grpc.ClientConn) SeaweedClient { | |
| 	return &seaweedClient{cc} | |
| } | |
| 
 | |
| func (c *seaweedClient) SendHeartbeat(ctx context.Context, opts ...grpc.CallOption) (Seaweed_SendHeartbeatClient, error) { | |
| 	stream, err := grpc.NewClientStream(ctx, &_Seaweed_serviceDesc.Streams[0], c.cc, "/master_pb.Seaweed/SendHeartbeat", opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	x := &seaweedSendHeartbeatClient{stream} | |
| 	return x, nil | |
| } | |
| 
 | |
| type Seaweed_SendHeartbeatClient interface { | |
| 	Send(*Heartbeat) error | |
| 	Recv() (*HeartbeatResponse, error) | |
| 	grpc.ClientStream | |
| } | |
| 
 | |
| type seaweedSendHeartbeatClient struct { | |
| 	grpc.ClientStream | |
| } | |
| 
 | |
| func (x *seaweedSendHeartbeatClient) Send(m *Heartbeat) error { | |
| 	return x.ClientStream.SendMsg(m) | |
| } | |
| 
 | |
| func (x *seaweedSendHeartbeatClient) Recv() (*HeartbeatResponse, error) { | |
| 	m := new(HeartbeatResponse) | |
| 	if err := x.ClientStream.RecvMsg(m); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return m, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) KeepConnected(ctx context.Context, opts ...grpc.CallOption) (Seaweed_KeepConnectedClient, error) { | |
| 	stream, err := grpc.NewClientStream(ctx, &_Seaweed_serviceDesc.Streams[1], c.cc, "/master_pb.Seaweed/KeepConnected", opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	x := &seaweedKeepConnectedClient{stream} | |
| 	return x, nil | |
| } | |
| 
 | |
| type Seaweed_KeepConnectedClient interface { | |
| 	Send(*KeepConnectedRequest) error | |
| 	Recv() (*VolumeLocation, error) | |
| 	grpc.ClientStream | |
| } | |
| 
 | |
| type seaweedKeepConnectedClient struct { | |
| 	grpc.ClientStream | |
| } | |
| 
 | |
| func (x *seaweedKeepConnectedClient) Send(m *KeepConnectedRequest) error { | |
| 	return x.ClientStream.SendMsg(m) | |
| } | |
| 
 | |
| func (x *seaweedKeepConnectedClient) Recv() (*VolumeLocation, error) { | |
| 	m := new(VolumeLocation) | |
| 	if err := x.ClientStream.RecvMsg(m); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return m, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) LookupVolume(ctx context.Context, in *LookupVolumeRequest, opts ...grpc.CallOption) (*LookupVolumeResponse, error) { | |
| 	out := new(LookupVolumeResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/LookupVolume", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) Assign(ctx context.Context, in *AssignRequest, opts ...grpc.CallOption) (*AssignResponse, error) { | |
| 	out := new(AssignResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/Assign", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) Statistics(ctx context.Context, in *StatisticsRequest, opts ...grpc.CallOption) (*StatisticsResponse, error) { | |
| 	out := new(StatisticsResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/Statistics", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) CollectionList(ctx context.Context, in *CollectionListRequest, opts ...grpc.CallOption) (*CollectionListResponse, error) { | |
| 	out := new(CollectionListResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/CollectionList", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) CollectionDelete(ctx context.Context, in *CollectionDeleteRequest, opts ...grpc.CallOption) (*CollectionDeleteResponse, error) { | |
| 	out := new(CollectionDeleteResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/CollectionDelete", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) VolumeList(ctx context.Context, in *VolumeListRequest, opts ...grpc.CallOption) (*VolumeListResponse, error) { | |
| 	out := new(VolumeListResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/VolumeList", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) LookupEcVolume(ctx context.Context, in *LookupEcVolumeRequest, opts ...grpc.CallOption) (*LookupEcVolumeResponse, error) { | |
| 	out := new(LookupEcVolumeResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/LookupEcVolume", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) GetMasterConfiguration(ctx context.Context, in *GetMasterConfigurationRequest, opts ...grpc.CallOption) (*GetMasterConfigurationResponse, error) { | |
| 	out := new(GetMasterConfigurationResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/GetMasterConfiguration", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| func (c *seaweedClient) ListMasterClients(ctx context.Context, in *ListMasterClientsRequest, opts ...grpc.CallOption) (*ListMasterClientsResponse, error) { | |
| 	out := new(ListMasterClientsResponse) | |
| 	err := grpc.Invoke(ctx, "/master_pb.Seaweed/ListMasterClients", in, out, c.cc, opts...) | |
| 	if err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return out, nil | |
| } | |
| 
 | |
| // Server API for Seaweed service | |
|  | |
| type SeaweedServer interface { | |
| 	SendHeartbeat(Seaweed_SendHeartbeatServer) error | |
| 	KeepConnected(Seaweed_KeepConnectedServer) error | |
| 	LookupVolume(context.Context, *LookupVolumeRequest) (*LookupVolumeResponse, error) | |
| 	Assign(context.Context, *AssignRequest) (*AssignResponse, error) | |
| 	Statistics(context.Context, *StatisticsRequest) (*StatisticsResponse, error) | |
| 	CollectionList(context.Context, *CollectionListRequest) (*CollectionListResponse, error) | |
| 	CollectionDelete(context.Context, *CollectionDeleteRequest) (*CollectionDeleteResponse, error) | |
| 	VolumeList(context.Context, *VolumeListRequest) (*VolumeListResponse, error) | |
| 	LookupEcVolume(context.Context, *LookupEcVolumeRequest) (*LookupEcVolumeResponse, error) | |
| 	GetMasterConfiguration(context.Context, *GetMasterConfigurationRequest) (*GetMasterConfigurationResponse, error) | |
| 	ListMasterClients(context.Context, *ListMasterClientsRequest) (*ListMasterClientsResponse, error) | |
| } | |
| 
 | |
| func RegisterSeaweedServer(s *grpc.Server, srv SeaweedServer) { | |
| 	s.RegisterService(&_Seaweed_serviceDesc, srv) | |
| } | |
| 
 | |
| func _Seaweed_SendHeartbeat_Handler(srv interface{}, stream grpc.ServerStream) error { | |
| 	return srv.(SeaweedServer).SendHeartbeat(&seaweedSendHeartbeatServer{stream}) | |
| } | |
| 
 | |
| type Seaweed_SendHeartbeatServer interface { | |
| 	Send(*HeartbeatResponse) error | |
| 	Recv() (*Heartbeat, error) | |
| 	grpc.ServerStream | |
| } | |
| 
 | |
| type seaweedSendHeartbeatServer struct { | |
| 	grpc.ServerStream | |
| } | |
| 
 | |
| func (x *seaweedSendHeartbeatServer) Send(m *HeartbeatResponse) error { | |
| 	return x.ServerStream.SendMsg(m) | |
| } | |
| 
 | |
| func (x *seaweedSendHeartbeatServer) Recv() (*Heartbeat, error) { | |
| 	m := new(Heartbeat) | |
| 	if err := x.ServerStream.RecvMsg(m); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return m, nil | |
| } | |
| 
 | |
| func _Seaweed_KeepConnected_Handler(srv interface{}, stream grpc.ServerStream) error { | |
| 	return srv.(SeaweedServer).KeepConnected(&seaweedKeepConnectedServer{stream}) | |
| } | |
| 
 | |
| type Seaweed_KeepConnectedServer interface { | |
| 	Send(*VolumeLocation) error | |
| 	Recv() (*KeepConnectedRequest, error) | |
| 	grpc.ServerStream | |
| } | |
| 
 | |
| type seaweedKeepConnectedServer struct { | |
| 	grpc.ServerStream | |
| } | |
| 
 | |
| func (x *seaweedKeepConnectedServer) Send(m *VolumeLocation) error { | |
| 	return x.ServerStream.SendMsg(m) | |
| } | |
| 
 | |
| func (x *seaweedKeepConnectedServer) Recv() (*KeepConnectedRequest, error) { | |
| 	m := new(KeepConnectedRequest) | |
| 	if err := x.ServerStream.RecvMsg(m); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	return m, nil | |
| } | |
| 
 | |
| func _Seaweed_LookupVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(LookupVolumeRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).LookupVolume(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/LookupVolume", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).LookupVolume(ctx, req.(*LookupVolumeRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_Assign_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(AssignRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).Assign(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/Assign", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).Assign(ctx, req.(*AssignRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_Statistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(StatisticsRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).Statistics(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/Statistics", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).Statistics(ctx, req.(*StatisticsRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_CollectionList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(CollectionListRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).CollectionList(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/CollectionList", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).CollectionList(ctx, req.(*CollectionListRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_CollectionDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(CollectionDeleteRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).CollectionDelete(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/CollectionDelete", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).CollectionDelete(ctx, req.(*CollectionDeleteRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_VolumeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(VolumeListRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).VolumeList(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/VolumeList", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).VolumeList(ctx, req.(*VolumeListRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_LookupEcVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(LookupEcVolumeRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).LookupEcVolume(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/LookupEcVolume", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).LookupEcVolume(ctx, req.(*LookupEcVolumeRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_GetMasterConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(GetMasterConfigurationRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).GetMasterConfiguration(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/GetMasterConfiguration", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).GetMasterConfiguration(ctx, req.(*GetMasterConfigurationRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| func _Seaweed_ListMasterClients_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { | |
| 	in := new(ListMasterClientsRequest) | |
| 	if err := dec(in); err != nil { | |
| 		return nil, err | |
| 	} | |
| 	if interceptor == nil { | |
| 		return srv.(SeaweedServer).ListMasterClients(ctx, in) | |
| 	} | |
| 	info := &grpc.UnaryServerInfo{ | |
| 		Server:     srv, | |
| 		FullMethod: "/master_pb.Seaweed/ListMasterClients", | |
| 	} | |
| 	handler := func(ctx context.Context, req interface{}) (interface{}, error) { | |
| 		return srv.(SeaweedServer).ListMasterClients(ctx, req.(*ListMasterClientsRequest)) | |
| 	} | |
| 	return interceptor(ctx, in, info, handler) | |
| } | |
| 
 | |
| var _Seaweed_serviceDesc = grpc.ServiceDesc{ | |
| 	ServiceName: "master_pb.Seaweed", | |
| 	HandlerType: (*SeaweedServer)(nil), | |
| 	Methods: []grpc.MethodDesc{ | |
| 		{ | |
| 			MethodName: "LookupVolume", | |
| 			Handler:    _Seaweed_LookupVolume_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "Assign", | |
| 			Handler:    _Seaweed_Assign_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "Statistics", | |
| 			Handler:    _Seaweed_Statistics_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "CollectionList", | |
| 			Handler:    _Seaweed_CollectionList_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "CollectionDelete", | |
| 			Handler:    _Seaweed_CollectionDelete_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "VolumeList", | |
| 			Handler:    _Seaweed_VolumeList_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "LookupEcVolume", | |
| 			Handler:    _Seaweed_LookupEcVolume_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "GetMasterConfiguration", | |
| 			Handler:    _Seaweed_GetMasterConfiguration_Handler, | |
| 		}, | |
| 		{ | |
| 			MethodName: "ListMasterClients", | |
| 			Handler:    _Seaweed_ListMasterClients_Handler, | |
| 		}, | |
| 	}, | |
| 	Streams: []grpc.StreamDesc{ | |
| 		{ | |
| 			StreamName:    "SendHeartbeat", | |
| 			Handler:       _Seaweed_SendHeartbeat_Handler, | |
| 			ServerStreams: true, | |
| 			ClientStreams: true, | |
| 		}, | |
| 		{ | |
| 			StreamName:    "KeepConnected", | |
| 			Handler:       _Seaweed_KeepConnected_Handler, | |
| 			ServerStreams: true, | |
| 			ClientStreams: true, | |
| 		}, | |
| 	}, | |
| 	Metadata: "master.proto", | |
| } | |
| 
 | |
| func init() { proto.RegisterFile("master.proto", fileDescriptor0) } | |
| 
 | |
| var fileDescriptor0 = []byte{ | |
| 	// 2183 bytes of a gzipped FileDescriptorProto | |
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7, | |
| 	0x15, 0xf7, 0x92, 0x94, 0x48, 0x3e, 0x7e, 0x8f, 0x64, 0x85, 0x66, 0x62, 0x8b, 0xde, 0xa4, 0x88, | |
| 	0xec, 0xa6, 0x6a, 0xaa, 0x04, 0x68, 0xd0, 0x34, 0x08, 0x2c, 0x59, 0x71, 0x05, 0x5b, 0x8a, 0xbd, | |
| 	0x72, 0x1d, 0xa0, 0x40, 0xb1, 0x19, 0xee, 0x8e, 0xa4, 0x85, 0xf6, 0xab, 0xbb, 0x43, 0x59, 0x4c, | |
| 	0x2f, 0x05, 0x7a, 0xec, 0xa9, 0xe8, 0xa1, 0xff, 0x42, 0x2f, 0x3d, 0xb5, 0x97, 0x5e, 0x72, 0xe9, | |
| 	0x7f, 0xd4, 0x6b, 0x2e, 0xc5, 0x7c, 0xed, 0xce, 0x2e, 0x49, 0x29, 0x0a, 0x90, 0x83, 0x6f, 0xbb, | |
| 	0xef, 0xbd, 0x79, 0xf3, 0xf6, 0xf7, 0xe6, 0xbd, 0xf9, 0x3d, 0x12, 0xda, 0x01, 0x4e, 0x29, 0x49, | |
| 	0xb6, 0xe3, 0x24, 0xa2, 0x11, 0x6a, 0x8a, 0x37, 0x3b, 0x9e, 0x98, 0x7f, 0x59, 0x85, 0xe6, 0x6f, | |
| 	0x08, 0x4e, 0xe8, 0x84, 0x60, 0x8a, 0xba, 0x50, 0xf1, 0xe2, 0xa1, 0x31, 0x36, 0xb6, 0x9a, 0x56, | |
| 	0xc5, 0x8b, 0x11, 0x82, 0x5a, 0x1c, 0x25, 0x74, 0x58, 0x19, 0x1b, 0x5b, 0x1d, 0x8b, 0x3f, 0xa3, | |
| 	0xbb, 0x00, 0xf1, 0x74, 0xe2, 0x7b, 0x8e, 0x3d, 0x4d, 0xfc, 0x61, 0x95, 0xdb, 0x36, 0x85, 0xe4, | |
| 	0xb7, 0x89, 0x8f, 0xb6, 0xa0, 0x1f, 0xe0, 0x4b, 0xfb, 0x22, 0xf2, 0xa7, 0x01, 0xb1, 0x9d, 0x68, | |
| 	0x1a, 0xd2, 0x61, 0x8d, 0x2f, 0xef, 0x06, 0xf8, 0xf2, 0x15, 0x17, 0xef, 0x31, 0x29, 0x1a, 0xb3, | |
| 	0xa8, 0x2e, 0xed, 0x13, 0xcf, 0x27, 0xf6, 0x39, 0x99, 0x0d, 0x57, 0xc6, 0xc6, 0x56, 0xcd, 0x82, | |
| 	0x00, 0x5f, 0x7e, 0xe1, 0xf9, 0xe4, 0x29, 0x99, 0xa1, 0x4d, 0x68, 0xb9, 0x98, 0x62, 0xdb, 0x21, | |
| 	0x21, 0x25, 0xc9, 0x70, 0x95, 0xef, 0x05, 0x4c, 0xb4, 0xc7, 0x25, 0x2c, 0xbe, 0x04, 0x3b, 0xe7, | |
| 	0xc3, 0x3a, 0xd7, 0xf0, 0x67, 0x16, 0x1f, 0x76, 0x03, 0x2f, 0xb4, 0x79, 0xe4, 0x0d, 0xbe, 0x75, | |
| 	0x93, 0x4b, 0x9e, 0xb3, 0xf0, 0x3f, 0x83, 0xba, 0x88, 0x2d, 0x1d, 0x36, 0xc7, 0xd5, 0xad, 0xd6, | |
| 	0xce, 0xbb, 0xdb, 0x19, 0x1a, 0xdb, 0x22, 0xbc, 0x83, 0xf0, 0x24, 0x4a, 0x02, 0x4c, 0xbd, 0x28, | |
| 	0x3c, 0x24, 0x69, 0x8a, 0x4f, 0x89, 0xa5, 0xd6, 0xa0, 0x03, 0x68, 0x85, 0xe4, 0xb5, 0xad, 0x5c, | |
| 	0x00, 0x77, 0xb1, 0x35, 0xe7, 0xe2, 0xf8, 0x2c, 0x4a, 0xe8, 0x02, 0x3f, 0x10, 0x92, 0xd7, 0xaf, | |
| 	0xa4, 0xab, 0x17, 0xd0, 0x73, 0x89, 0x4f, 0x28, 0x71, 0x33, 0x77, 0xad, 0x1b, 0xba, 0xeb, 0x4a, | |
| 	0x07, 0xca, 0xe5, 0x7b, 0xd0, 0x3d, 0xc3, 0xa9, 0x1d, 0x46, 0x99, 0xc7, 0xf6, 0xd8, 0xd8, 0x6a, | |
| 	0x58, 0xed, 0x33, 0x9c, 0x1e, 0x45, 0xca, 0xea, 0x09, 0x34, 0x89, 0x63, 0xa7, 0x67, 0x38, 0x71, | |
| 	0xd3, 0x61, 0x9f, 0x6f, 0xf9, 0x70, 0x6e, 0xcb, 0x7d, 0xe7, 0x98, 0x19, 0x2c, 0xd8, 0xb4, 0x41, | |
| 	0x84, 0x2a, 0x45, 0x47, 0xd0, 0x61, 0x60, 0xe4, 0xce, 0x06, 0x37, 0x76, 0xc6, 0xd0, 0xdc, 0x57, | |
| 	0xfe, 0x5e, 0xc1, 0x40, 0x21, 0x92, 0xfb, 0x44, 0x37, 0xf6, 0xa9, 0x60, 0xcd, 0xfc, 0xbe, 0x0f, | |
| 	0x7d, 0x09, 0x4b, 0xee, 0x76, 0x8d, 0x03, 0xd3, 0xe1, 0xc0, 0x28, 0x43, 0xf3, 0x4f, 0x15, 0x18, | |
| 	0x64, 0xd5, 0x60, 0x91, 0x34, 0x8e, 0xc2, 0x94, 0xa0, 0x87, 0x30, 0x90, 0xc7, 0x39, 0xf5, 0xbe, | |
| 	0x21, 0xb6, 0xef, 0x05, 0x1e, 0xe5, 0x45, 0x52, 0xb3, 0x7a, 0x42, 0x71, 0xec, 0x7d, 0x43, 0x9e, | |
| 	0x31, 0x31, 0xda, 0x80, 0x55, 0x9f, 0x60, 0x97, 0x24, 0xbc, 0x66, 0x9a, 0x96, 0x7c, 0x43, 0xef, | |
| 	0x43, 0x2f, 0x20, 0x34, 0xf1, 0x9c, 0xd4, 0xc6, 0xae, 0x9b, 0x90, 0x34, 0x95, 0xa5, 0xd3, 0x95, | |
| 	0xe2, 0x47, 0x42, 0x8a, 0x3e, 0x81, 0xa1, 0x32, 0xf4, 0xd8, 0x19, 0xbf, 0xc0, 0xbe, 0x9d, 0x12, | |
| 	0x27, 0x0a, 0xdd, 0x54, 0xd6, 0xd1, 0x86, 0xd4, 0x1f, 0x48, 0xf5, 0xb1, 0xd0, 0xa2, 0xc7, 0xd0, | |
| 	0x4f, 0x69, 0x94, 0xe0, 0x53, 0x62, 0x4f, 0xb0, 0x73, 0x4e, 0xd8, 0x8a, 0x15, 0x0e, 0xde, 0x1d, | |
| 	0x0d, 0xbc, 0x63, 0x61, 0xb2, 0x2b, 0x2c, 0xac, 0x5e, 0x5a, 0x78, 0x4f, 0xcd, 0xef, 0xaa, 0x30, | |
| 	0x5c, 0x56, 0x06, 0xbc, 0x3f, 0xb8, 0xfc, 0xd3, 0x3b, 0x56, 0xc5, 0x73, 0x59, 0xfd, 0x31, 0x48, | |
| 	0xf8, 0xb7, 0xd6, 0x2c, 0xfe, 0x8c, 0xee, 0x01, 0x38, 0x91, 0xef, 0x13, 0x87, 0x2d, 0x94, 0x1f, | |
| 	0xa9, 0x49, 0x58, 0x7d, 0xf2, 0x92, 0xcf, 0x5b, 0x43, 0xcd, 0x6a, 0x32, 0x89, 0xe8, 0x0a, 0xf7, | |
| 	0xa1, 0x2d, 0xd2, 0x27, 0x0d, 0x44, 0x57, 0x68, 0x09, 0x99, 0x30, 0xf9, 0x00, 0x90, 0x3a, 0x26, | |
| 	0x93, 0x59, 0x66, 0xb8, 0xca, 0x0d, 0xfb, 0x52, 0xb3, 0x3b, 0x53, 0xd6, 0x6f, 0x43, 0x33, 0x21, | |
| 	0xd8, 0xb5, 0xa3, 0xd0, 0x9f, 0xf1, 0x46, 0xd1, 0xb0, 0x1a, 0x4c, 0xf0, 0x65, 0xe8, 0xcf, 0xd0, | |
| 	0x4f, 0x61, 0x90, 0x90, 0xd8, 0xf7, 0x1c, 0x6c, 0xc7, 0x3e, 0x76, 0x48, 0x40, 0x42, 0xd5, 0x33, | |
| 	0xfa, 0x52, 0xf1, 0x5c, 0xc9, 0xd1, 0x10, 0xea, 0x17, 0x24, 0x49, 0xd9, 0x67, 0x35, 0xb9, 0x89, | |
| 	0x7a, 0x45, 0x7d, 0xa8, 0x52, 0xea, 0x0f, 0x81, 0x4b, 0xd9, 0x23, 0x7a, 0x00, 0x7d, 0x27, 0x0a, | |
| 	0x62, 0xec, 0x50, 0x3b, 0x21, 0x17, 0x1e, 0x5f, 0xd4, 0xe2, 0xea, 0x9e, 0x94, 0x5b, 0x52, 0xcc, | |
| 	0x3e, 0x27, 0x88, 0x5c, 0xef, 0xc4, 0x23, 0xae, 0x8d, 0xa9, 0x4c, 0x36, 0x2f, 0xdc, 0xaa, 0xd5, | |
| 	0x57, 0x9a, 0x47, 0x54, 0xa4, 0x19, 0x6d, 0xc3, 0x5a, 0x42, 0x82, 0x88, 0x12, 0x5b, 0x25, 0x3b, | |
| 	0xc4, 0x01, 0x19, 0x76, 0x38, 0xce, 0x03, 0xa1, 0x92, 0x39, 0x3e, 0xc2, 0x01, 0x61, 0xde, 0x4b, | |
| 	0xf6, 0xac, 0xd7, 0x76, 0xb9, 0x79, 0xbf, 0x60, 0xfe, 0x94, 0xcc, 0xcc, 0x7f, 0x18, 0x70, 0xf7, | |
| 	0xca, 0x96, 0x33, 0x77, 0x04, 0xae, 0x4b, 0xf7, 0x8f, 0x85, 0xb0, 0x39, 0x85, 0xcd, 0x6b, 0x1a, | |
| 	0xc1, 0x35, 0xb1, 0x56, 0xe6, 0x62, 0x35, 0xa1, 0x43, 0x1c, 0xdb, 0x0b, 0x5d, 0x72, 0x69, 0x4f, | |
| 	0x3c, 0x2a, 0x4a, 0xb4, 0x63, 0xb5, 0x88, 0x73, 0xc0, 0x64, 0xbb, 0x1e, 0x4d, 0xcd, 0x6f, 0x0d, | |
| 	0xe8, 0x16, 0x6b, 0x88, 0x55, 0x01, 0x9d, 0xc5, 0x44, 0xde, 0x9b, 0xfc, 0x59, 0x6e, 0x5d, 0x91, | |
| 	0x37, 0xa9, 0x8b, 0x0e, 0x00, 0xe2, 0x24, 0x8a, 0x49, 0x42, 0x3d, 0xc2, 0xfc, 0xb2, 0xb2, 0x7c, | |
| 	0xb0, 0xb4, 0x2c, 0xb7, 0x9f, 0x67, 0xb6, 0xfb, 0x21, 0x4d, 0x66, 0x96, 0xb6, 0x78, 0xf4, 0x19, | |
| 	0xf4, 0x4a, 0x6a, 0x86, 0x0e, 0xcb, 0xaa, 0x08, 0x80, 0x3d, 0xa2, 0x75, 0x58, 0xb9, 0xc0, 0xfe, | |
| 	0x94, 0xc8, 0x10, 0xc4, 0xcb, 0xaf, 0x2a, 0x9f, 0x18, 0x66, 0x1d, 0x56, 0xf6, 0x83, 0x98, 0xce, | |
| 	0xd8, 0x97, 0xf4, 0x8e, 0xa7, 0x31, 0x49, 0x76, 0xfd, 0xc8, 0x39, 0xdf, 0xbf, 0xa4, 0x09, 0x46, | |
| 	0x5f, 0x42, 0x97, 0x24, 0x38, 0x9d, 0x26, 0xac, 0xaa, 0x5c, 0x2f, 0x3c, 0xe5, 0x3e, 0x8b, 0x57, | |
| 	0x52, 0x69, 0xcd, 0xf6, 0xbe, 0x58, 0xb0, 0xc7, 0xed, 0xad, 0x0e, 0xd1, 0x5f, 0x47, 0xbf, 0x83, | |
| 	0x4e, 0x41, 0xcf, 0xc0, 0x62, 0x17, 0xb8, 0xcc, 0x0a, 0x7f, 0x66, 0x4d, 0x33, 0xc6, 0x89, 0x47, | |
| 	0x67, 0x92, 0x68, 0xc8, 0x37, 0xd6, 0x2a, 0x64, 0xe3, 0xf5, 0x5c, 0x01, 0x5a, 0xc7, 0x6a, 0x0a, | |
| 	0xc9, 0x81, 0x9b, 0x9a, 0x4f, 0x60, 0xfd, 0x29, 0x21, 0xf1, 0x5e, 0x14, 0x86, 0xc4, 0xa1, 0xc4, | |
| 	0xb5, 0xc8, 0x1f, 0xa6, 0x24, 0xa5, 0x6c, 0x0b, 0x5e, 0x13, 0x32, 0x1f, 0xec, 0x99, 0x75, 0x81, | |
| 	0xd3, 0x24, 0x76, 0x6c, 0x8d, 0xce, 0x34, 0x98, 0x80, 0x71, 0x02, 0xf3, 0xef, 0x06, 0x74, 0xc5, | |
| 	0x59, 0x7a, 0x16, 0x39, 0xfc, 0x04, 0x31, 0x44, 0x19, 0xbd, 0x91, 0x88, 0x4e, 0x13, 0xbf, 0xc4, | |
| 	0x7b, 0x2a, 0x65, 0xde, 0x73, 0x07, 0x1a, 0x9c, 0x18, 0xe4, 0x91, 0xd6, 0xd9, 0x5d, 0xef, 0xb9, | |
| 	0x69, 0xde, 0xd2, 0x5c, 0xa1, 0xae, 0x71, 0x75, 0x4b, 0xdd, 0xdd, 0xcc, 0x24, 0xbf, 0x36, 0x56, | |
| 	0xf4, 0x6b, 0xc3, 0x7c, 0x09, 0x6b, 0xcf, 0xa2, 0xe8, 0x7c, 0x1a, 0x8b, 0xf0, 0xd4, 0x17, 0x16, | |
| 	0x81, 0x31, 0xc6, 0x55, 0x16, 0x4b, 0x06, 0xcc, 0x75, 0xe7, 0xdc, 0xfc, 0x9f, 0x01, 0xeb, 0x45, | |
| 	0xb7, 0xf2, 0xa6, 0xfb, 0x1a, 0xd6, 0x32, 0xbf, 0xb6, 0x2f, 0xb1, 0x10, 0x1b, 0xb4, 0x76, 0x3e, | |
| 	0xd4, 0xce, 0xc0, 0xa2, 0xd5, 0x8a, 0x3d, 0xb9, 0x0a, 0x44, 0x6b, 0x70, 0x51, 0x92, 0xa4, 0xa3, | |
| 	0x4b, 0xe8, 0x97, 0xcd, 0x58, 0x6e, 0xb2, 0x5d, 0x25, 0xe2, 0x0d, 0xb5, 0x12, 0xfd, 0x02, 0x9a, | |
| 	0x79, 0x20, 0x15, 0x1e, 0xc8, 0x5a, 0x21, 0x10, 0xb9, 0x57, 0x6e, 0xc5, 0xce, 0x3e, 0x49, 0x92, | |
| 	0x28, 0x91, 0xdd, 0x48, 0xbc, 0x98, 0x9f, 0x42, 0xe3, 0x07, 0x67, 0xd7, 0xfc, 0x57, 0x05, 0x3a, | |
| 	0x8f, 0xd2, 0xd4, 0x3b, 0x0d, 0x55, 0x0a, 0xd6, 0x61, 0x45, 0xdc, 0x3b, 0x82, 0x08, 0x88, 0x17, | |
| 	0x34, 0x86, 0x96, 0x6c, 0x6a, 0x1a, 0xf4, 0xba, 0xe8, 0xda, 0x7e, 0x29, 0x1b, 0x5d, 0x4d, 0x84, | |
| 	0xc6, 0xae, 0x92, 0x12, 0x0b, 0x5e, 0x59, 0xca, 0x82, 0x57, 0x35, 0x16, 0xfc, 0x36, 0x34, 0xf9, | |
| 	0xa2, 0x30, 0x72, 0x89, 0xa4, 0xc7, 0x0d, 0x26, 0x38, 0x8a, 0x5c, 0x82, 0x76, 0x60, 0x23, 0x20, | |
| 	0x41, 0x94, 0xcc, 0xec, 0x00, 0xc7, 0x36, 0x23, 0xe1, 0x9c, 0xd8, 0x04, 0x13, 0xd9, 0x98, 0x91, | |
| 	0xd0, 0x1e, 0xe2, 0xf8, 0x10, 0x5f, 0x32, 0x6e, 0x73, 0x38, 0x41, 0x3b, 0x70, 0xfb, 0xab, 0xc4, | |
| 	0xa3, 0x78, 0xe2, 0x93, 0x22, 0xb9, 0x17, 0x8d, 0x7a, 0x4d, 0x29, 0x35, 0x86, 0x6f, 0xfe, 0xcd, | |
| 	0x80, 0xae, 0x42, 0x4d, 0x9e, 0xb0, 0x3e, 0x54, 0x4f, 0xb2, 0x2c, 0xb3, 0x47, 0x95, 0x8b, 0xca, | |
| 	0xb2, 0x5c, 0xcc, 0x4d, 0x18, 0x19, 0xf2, 0x35, 0x1d, 0xf9, 0x2c, 0xe9, 0x2b, 0x5a, 0xd2, 0x19, | |
| 	0x34, 0x78, 0x4a, 0xcf, 0x14, 0x34, 0xec, 0xd9, 0x3c, 0x85, 0xc1, 0x31, 0xc5, 0xd4, 0x4b, 0xa9, | |
| 	0xe7, 0xa4, 0x2a, 0x9d, 0xa5, 0xc4, 0x19, 0xd7, 0x25, 0xae, 0xb2, 0x2c, 0x71, 0xd5, 0x2c, 0x71, | |
| 	0xe6, 0x7f, 0x0d, 0x40, 0xfa, 0x4e, 0x12, 0x82, 0x1f, 0x61, 0x2b, 0x06, 0x19, 0x8d, 0x28, 0xa3, | |
| 	0x8a, 0x8c, 0x8e, 0x49, 0x52, 0xc5, 0x25, 0x2c, 0x7d, 0xec, 0x34, 0x4c, 0x53, 0xe2, 0x0a, 0xad, | |
| 	0x60, 0x54, 0x0d, 0x26, 0xe0, 0xca, 0x22, 0x21, 0x5b, 0x2d, 0x11, 0x32, 0xf3, 0x11, 0xb4, 0xe4, | |
| 	0xe5, 0xf4, 0x92, 0x5d, 0x6c, 0xd7, 0x47, 0x2f, 0xa3, 0xab, 0xe4, 0x40, 0x8c, 0x01, 0xf6, 0xf2, | |
| 	0xe8, 0x17, 0xb4, 0x67, 0xf3, 0x8f, 0x70, 0x3b, 0xb7, 0x78, 0xe6, 0xa5, 0x54, 0xe5, 0xe5, 0x63, | |
| 	0xd8, 0xf0, 0x42, 0xc7, 0x9f, 0xba, 0xc4, 0x0e, 0xd9, 0xf5, 0xee, 0x67, 0x93, 0x8d, 0xc1, 0xa9, | |
| 	0xdc, 0xba, 0xd4, 0x1e, 0x71, 0xa5, 0x9a, 0x70, 0x3e, 0x00, 0xa4, 0x56, 0x11, 0x27, 0x5b, 0x51, | |
| 	0xe1, 0x2b, 0xfa, 0x52, 0xb3, 0xef, 0x48, 0x6b, 0xf3, 0x05, 0x6c, 0x94, 0x37, 0x97, 0xa9, 0xfa, | |
| 	0x25, 0xb4, 0x72, 0xd8, 0x55, 0x1f, 0xbc, 0xad, 0xb5, 0x9f, 0x7c, 0x9d, 0xa5, 0x5b, 0x9a, 0x3f, | |
| 	0x83, 0xb7, 0x72, 0xd5, 0x63, 0xde, 0xe8, 0xaf, 0xb8, 0x9d, 0xcc, 0x11, 0x0c, 0xe7, 0xcd, 0x45, | |
| 	0x0c, 0xe6, 0x5f, 0xab, 0xd0, 0x7e, 0x2c, 0x2b, 0x97, 0x71, 0x1c, 0x8d, 0xd5, 0x08, 0x6a, 0x71, | |
| 	0x1f, 0xda, 0x85, 0x82, 0x14, 0x64, 0xbc, 0x75, 0xa1, 0x8d, 0xda, 0x8b, 0x86, 0xf2, 0x2a, 0x37, | |
| 	0x2b, 0x0f, 0xe5, 0x0f, 0x61, 0x70, 0x92, 0x10, 0x32, 0x3f, 0xbf, 0xd7, 0xac, 0x1e, 0x53, 0xe8, | |
| 	0xb6, 0xdb, 0xb0, 0x86, 0x1d, 0xea, 0x5d, 0x94, 0xac, 0xc5, 0xf9, 0x1a, 0x08, 0x95, 0x6e, 0xff, | |
| 	0x45, 0x16, 0xa8, 0x17, 0x9e, 0x44, 0xe9, 0x70, 0xf5, 0xfb, 0xcf, 0xdf, 0xf2, 0x6b, 0x98, 0x26, | |
| 	0x45, 0xcf, 0xa1, 0xab, 0xe6, 0x38, 0xe9, 0xa9, 0x7e, 0xe3, 0x19, 0xb1, 0x4d, 0x72, 0x55, 0xaa, | |
| 	0x91, 0xea, 0xc2, 0x97, 0x34, 0xc4, 0x97, 0x08, 0x95, 0xde, 0xd8, 0xfe, 0x5d, 0x81, 0x86, 0x85, | |
| 	0x9d, 0xf3, 0x37, 0x3b, 0x1f, 0x9f, 0x43, 0x2f, 0xbb, 0x23, 0x0a, 0x29, 0x79, 0x4b, 0x03, 0x52, | |
| 	0x3f, 0x7a, 0x56, 0xc7, 0xd5, 0xde, 0x96, 0xc2, 0x56, 0x5f, 0x06, 0xdb, 0x3f, 0x2b, 0xd0, 0x7d, | |
| 	0x9c, 0xdd, 0x5b, 0x6f, 0x36, 0x78, 0x3b, 0x00, 0xec, 0xa2, 0x2d, 0xe0, 0xa6, 0x13, 0x13, 0x75, | |
| 	0x3c, 0xac, 0x66, 0x22, 0x9f, 0x6e, 0x8e, 0xd7, 0xb7, 0x15, 0x68, 0xbf, 0x8c, 0xe2, 0xc8, 0x8f, | |
| 	0x4e, 0x67, 0x6f, 0x36, 0x5a, 0xfb, 0x30, 0xd0, 0x38, 0x4c, 0x01, 0xb4, 0x3b, 0xa5, 0xc3, 0x96, | |
| 	0x1f, 0x0e, 0xab, 0xe7, 0x16, 0xde, 0x6f, 0x0e, 0xe0, 0x1a, 0x0c, 0x24, 0xaf, 0xcf, 0xaf, 0x14, | |
| 	0xf3, 0xcf, 0x06, 0x20, 0x5d, 0x2a, 0x7b, 0xfd, 0xaf, 0xa1, 0x43, 0x25, 0xd6, 0x3c, 0x3e, 0x39, | |
| 	0xf9, 0xe8, 0xb5, 0xa0, 0xe7, 0xc2, 0x6a, 0x53, 0x3d, 0x33, 0x3f, 0x87, 0xf5, 0xb9, 0xdf, 0x88, | |
| 	0x18, 0xa1, 0x12, 0x19, 0x19, 0x94, 0x7e, 0x26, 0x3a, 0x9c, 0x98, 0x1f, 0xc3, 0x6d, 0x41, 0xa2, | |
| 	0xd5, 0x3d, 0xa4, 0xee, 0x87, 0x39, 0x36, 0xdc, 0xc9, 0xd9, 0xb0, 0xf9, 0x9d, 0x01, 0x1b, 0xe5, | |
| 	0x65, 0x32, 0xfe, 0xab, 0xd6, 0x21, 0x0c, 0x48, 0xf6, 0x4b, 0x9d, 0xd7, 0x0b, 0x3a, 0xfd, 0xd1, | |
| 	0x1c, 0xaf, 0x2f, 0xfb, 0xde, 0x56, 0x7d, 0x34, 0xa7, 0xf6, 0xfd, 0xb4, 0x28, 0x48, 0x47, 0x18, | |
| 	0x06, 0x73, 0x66, 0x6c, 0x2a, 0x52, 0xfb, 0xca, 0x98, 0xea, 0x72, 0xe1, 0x0f, 0x20, 0xf6, 0xe6, | |
| 	0x26, 0xdc, 0x7d, 0x42, 0xe8, 0x21, 0xb7, 0xd9, 0x8b, 0xc2, 0x13, 0xef, 0x74, 0x9a, 0x08, 0xa3, | |
| 	0x3c, 0xb5, 0xf7, 0x96, 0x59, 0x48, 0x98, 0x16, 0xfc, 0x10, 0x67, 0xdc, 0xf8, 0x87, 0xb8, 0xca, | |
| 	0x55, 0x3f, 0xc4, 0x99, 0x9f, 0xc2, 0x90, 0x9d, 0x2c, 0x19, 0x85, 0xef, 0x91, 0x90, 0x66, 0x3c, | |
| 	0x73, 0x13, 0x5a, 0x0e, 0x97, 0xd8, 0xda, 0x4f, 0x06, 0x20, 0x44, 0x8c, 0x5f, 0x99, 0xbb, 0x70, | |
| 	0x67, 0xc1, 0x62, 0x19, 0xfc, 0x4f, 0xa0, 0xcb, 0xa7, 0x58, 0x19, 0x39, 0x51, 0xb3, 0x5f, 0x87, | |
| 	0x49, 0x1f, 0x29, 0xe1, 0xce, 0x7f, 0xea, 0x50, 0x3f, 0x26, 0xf8, 0x35, 0x21, 0x2e, 0x3a, 0x80, | |
| 	0xce, 0x31, 0x09, 0xdd, 0xfc, 0x37, 0xfe, 0x75, 0x0d, 0xe4, 0x4c, 0x3a, 0x7a, 0x67, 0x91, 0x34, | |
| 	0xe3, 0x20, 0xb7, 0xb6, 0x8c, 0x0f, 0x0d, 0xf4, 0x02, 0x3a, 0x85, 0x79, 0x1b, 0x6d, 0x6a, 0x8b, | |
| 	0x16, 0x4d, 0xe2, 0xa3, 0x3b, 0x73, 0x37, 0xb2, 0x4a, 0x6b, 0xe6, 0xb2, 0xad, 0x8f, 0x92, 0xe8, | |
| 	0xde, 0xd2, 0x19, 0x53, 0x38, 0xdc, 0xbc, 0x66, 0x06, 0x35, 0x6f, 0xa1, 0xcf, 0x61, 0x55, 0xcc, | |
| 	0x1c, 0x68, 0xa8, 0x19, 0x17, 0x86, 0xb7, 0x42, 0x5c, 0xc5, 0x01, 0xc5, 0xbc, 0x85, 0x9e, 0x02, | |
| 	0xe4, 0xac, 0x1d, 0xbd, 0x53, 0xf8, 0x91, 0xa6, 0x34, 0x36, 0x8c, 0xee, 0x2e, 0xd1, 0x66, 0xce, | |
| 	0xbe, 0x82, 0x6e, 0x91, 0x5b, 0xa2, 0xf1, 0x42, 0xfa, 0xa8, 0x35, 0xa8, 0xd1, 0xfd, 0x2b, 0x2c, | |
| 	0x32, 0xc7, 0xbf, 0x87, 0x7e, 0x99, 0x32, 0x22, 0x73, 0xe1, 0xc2, 0x02, 0xfd, 0x1c, 0xbd, 0x7b, | |
| 	0xa5, 0x8d, 0x0e, 0x42, 0xde, 0x23, 0x0b, 0x20, 0xcc, 0x35, 0xd4, 0x02, 0x08, 0xf3, 0x8d, 0x55, | |
| 	0x80, 0x50, 0x6c, 0x2c, 0x05, 0x10, 0x16, 0xb6, 0xc1, 0x02, 0x08, 0x8b, 0xbb, 0x92, 0x79, 0x0b, | |
| 	0x45, 0xb0, 0xb1, 0xb8, 0xdc, 0x91, 0xfe, 0x83, 0xd5, 0x95, 0x3d, 0x63, 0xf4, 0xe0, 0x7b, 0x58, | |
| 	0x66, 0x1b, 0x7e, 0x0d, 0x83, 0xb9, 0xea, 0x44, 0x3a, 0xa4, 0xcb, 0x0a, 0x7f, 0xf4, 0xde, 0xd5, | |
| 	0x46, 0x6a, 0x87, 0xc9, 0x2a, 0xff, 0x8b, 0xee, 0xa3, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x6a, | |
| 	0xee, 0xfc, 0x90, 0xb2, 0x1b, 0x00, 0x00, | |
| }
 |