// Code generated by protoc-gen-go. DO NOT EDIT. // source: message.proto /* Package msgpb is a generated protocol buffer package. It is generated from these files: message.proto It has these top-level messages: Status KeyValuePair CollectionName CollectionNameList FieldName Mapping MappingList PartitionParam PartitionList VectorRowRecord EntityIds VectorRecord VectorParam FieldMeta Schema RowData InsertParam SearchParam SearchInSegmentParam Entities QueryResult StringReply BoolReply CollectionRowCount Command IndexParam FlushParam CompactParam DeleteByIDParam CollectionInfo GetEntityIDsParam EntityIdentity VectorFieldParam FieldType FieldParam VectorFieldRecord TermQuery CompareExpr RangeQuery VectorQuery BooleanQuery GeneralQuery SearchParamPB InsertOrDeleteMsg SearchMsg TimeSyncMsg Key2SegMsg */ package msgpb import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" // 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 ErrorCode int32 const ( ErrorCode_SUCCESS ErrorCode = 0 ErrorCode_UNEXPECTED_ERROR ErrorCode = 1 ErrorCode_CONNECT_FAILED ErrorCode = 2 ErrorCode_PERMISSION_DENIED ErrorCode = 3 ErrorCode_COLLECTION_NOT_EXISTS ErrorCode = 4 ErrorCode_ILLEGAL_ARGUMENT ErrorCode = 5 ErrorCode_ILLEGAL_DIMENSION ErrorCode = 7 ErrorCode_ILLEGAL_INDEX_TYPE ErrorCode = 8 ErrorCode_ILLEGAL_COLLECTION_NAME ErrorCode = 9 ErrorCode_ILLEGAL_TOPK ErrorCode = 10 ErrorCode_ILLEGAL_ROWRECORD ErrorCode = 11 ErrorCode_ILLEGAL_VECTOR_ID ErrorCode = 12 ErrorCode_ILLEGAL_SEARCH_RESULT ErrorCode = 13 ErrorCode_FILE_NOT_FOUND ErrorCode = 14 ErrorCode_META_FAILED ErrorCode = 15 ErrorCode_CACHE_FAILED ErrorCode = 16 ErrorCode_CANNOT_CREATE_FOLDER ErrorCode = 17 ErrorCode_CANNOT_CREATE_FILE ErrorCode = 18 ErrorCode_CANNOT_DELETE_FOLDER ErrorCode = 19 ErrorCode_CANNOT_DELETE_FILE ErrorCode = 20 ErrorCode_BUILD_INDEX_ERROR ErrorCode = 21 ErrorCode_ILLEGAL_NLIST ErrorCode = 22 ErrorCode_ILLEGAL_METRIC_TYPE ErrorCode = 23 ErrorCode_OUT_OF_MEMORY ErrorCode = 24 ) var ErrorCode_name = map[int32]string{ 0: "SUCCESS", 1: "UNEXPECTED_ERROR", 2: "CONNECT_FAILED", 3: "PERMISSION_DENIED", 4: "COLLECTION_NOT_EXISTS", 5: "ILLEGAL_ARGUMENT", 7: "ILLEGAL_DIMENSION", 8: "ILLEGAL_INDEX_TYPE", 9: "ILLEGAL_COLLECTION_NAME", 10: "ILLEGAL_TOPK", 11: "ILLEGAL_ROWRECORD", 12: "ILLEGAL_VECTOR_ID", 13: "ILLEGAL_SEARCH_RESULT", 14: "FILE_NOT_FOUND", 15: "META_FAILED", 16: "CACHE_FAILED", 17: "CANNOT_CREATE_FOLDER", 18: "CANNOT_CREATE_FILE", 19: "CANNOT_DELETE_FOLDER", 20: "CANNOT_DELETE_FILE", 21: "BUILD_INDEX_ERROR", 22: "ILLEGAL_NLIST", 23: "ILLEGAL_METRIC_TYPE", 24: "OUT_OF_MEMORY", } var ErrorCode_value = map[string]int32{ "SUCCESS": 0, "UNEXPECTED_ERROR": 1, "CONNECT_FAILED": 2, "PERMISSION_DENIED": 3, "COLLECTION_NOT_EXISTS": 4, "ILLEGAL_ARGUMENT": 5, "ILLEGAL_DIMENSION": 7, "ILLEGAL_INDEX_TYPE": 8, "ILLEGAL_COLLECTION_NAME": 9, "ILLEGAL_TOPK": 10, "ILLEGAL_ROWRECORD": 11, "ILLEGAL_VECTOR_ID": 12, "ILLEGAL_SEARCH_RESULT": 13, "FILE_NOT_FOUND": 14, "META_FAILED": 15, "CACHE_FAILED": 16, "CANNOT_CREATE_FOLDER": 17, "CANNOT_CREATE_FILE": 18, "CANNOT_DELETE_FOLDER": 19, "CANNOT_DELETE_FILE": 20, "BUILD_INDEX_ERROR": 21, "ILLEGAL_NLIST": 22, "ILLEGAL_METRIC_TYPE": 23, "OUT_OF_MEMORY": 24, } func (x ErrorCode) String() string { return proto.EnumName(ErrorCode_name, int32(x)) } func (ErrorCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } // * // @brief Field data type type DataType int32 const ( DataType_NONE DataType = 0 DataType_BOOL DataType = 1 DataType_INT8 DataType = 2 DataType_INT16 DataType = 3 DataType_INT32 DataType = 4 DataType_INT64 DataType = 5 DataType_FLOAT DataType = 10 DataType_DOUBLE DataType = 11 DataType_STRING DataType = 20 DataType_VECTOR_BINARY DataType = 100 DataType_VECTOR_FLOAT DataType = 101 ) var DataType_name = map[int32]string{ 0: "NONE", 1: "BOOL", 2: "INT8", 3: "INT16", 4: "INT32", 5: "INT64", 10: "FLOAT", 11: "DOUBLE", 20: "STRING", 100: "VECTOR_BINARY", 101: "VECTOR_FLOAT", } var DataType_value = map[string]int32{ "NONE": 0, "BOOL": 1, "INT8": 2, "INT16": 3, "INT32": 4, "INT64": 5, "FLOAT": 10, "DOUBLE": 11, "STRING": 20, "VECTOR_BINARY": 100, "VECTOR_FLOAT": 101, } func (x DataType) String() string { return proto.EnumName(DataType_name, int32(x)) } func (DataType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } type CompareOperator int32 const ( CompareOperator_LT CompareOperator = 0 CompareOperator_LTE CompareOperator = 1 CompareOperator_EQ CompareOperator = 2 CompareOperator_GT CompareOperator = 3 CompareOperator_GTE CompareOperator = 4 CompareOperator_NE CompareOperator = 5 ) var CompareOperator_name = map[int32]string{ 0: "LT", 1: "LTE", 2: "EQ", 3: "GT", 4: "GTE", 5: "NE", } var CompareOperator_value = map[string]int32{ "LT": 0, "LTE": 1, "EQ": 2, "GT": 3, "GTE": 4, "NE": 5, } func (x CompareOperator) String() string { return proto.EnumName(CompareOperator_name, int32(x)) } func (CompareOperator) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } type Occur int32 const ( Occur_INVALID Occur = 0 Occur_MUST Occur = 1 Occur_SHOULD Occur = 2 Occur_MUST_NOT Occur = 3 ) var Occur_name = map[int32]string{ 0: "INVALID", 1: "MUST", 2: "SHOULD", 3: "MUST_NOT", } var Occur_value = map[string]int32{ "INVALID": 0, "MUST": 1, "SHOULD": 2, "MUST_NOT": 3, } func (x Occur) String() string { return proto.EnumName(Occur_name, int32(x)) } func (Occur) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } // //////////////////pulsar////////////////////////////////////// type OpType int32 const ( OpType_INSERT OpType = 0 OpType_DELETE OpType = 1 ) var OpType_name = map[int32]string{ 0: "INSERT", 1: "DELETE", } var OpType_value = map[string]int32{ "INSERT": 0, "DELETE": 1, } func (x OpType) String() string { return proto.EnumName(OpType_name, int32(x)) } func (OpType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } type SyncType int32 const ( SyncType_READ SyncType = 0 SyncType_WRITE SyncType = 1 ) var SyncType_name = map[int32]string{ 0: "READ", 1: "WRITE", } var SyncType_value = map[string]int32{ "READ": 0, "WRITE": 1, } func (x SyncType) String() string { return proto.EnumName(SyncType_name, int32(x)) } func (SyncType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } type Status struct { ErrorCode ErrorCode `protobuf:"varint,1,opt,name=error_code,json=errorCode,enum=milvus.grpc.ErrorCode" json:"error_code,omitempty"` Reason string `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"` } func (m *Status) Reset() { *m = Status{} } func (m *Status) String() string { return proto.CompactTextString(m) } func (*Status) ProtoMessage() {} func (*Status) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *Status) GetErrorCode() ErrorCode { if m != nil { return m.ErrorCode } return ErrorCode_SUCCESS } func (m *Status) GetReason() string { if m != nil { return m.Reason } return "" } // * // @brief General usage type KeyValuePair struct { Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` } func (m *KeyValuePair) Reset() { *m = KeyValuePair{} } func (m *KeyValuePair) String() string { return proto.CompactTextString(m) } func (*KeyValuePair) ProtoMessage() {} func (*KeyValuePair) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } func (m *KeyValuePair) GetKey() string { if m != nil { return m.Key } return "" } func (m *KeyValuePair) GetValue() string { if m != nil { return m.Value } return "" } // * // @brief Collection name type CollectionName struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` } func (m *CollectionName) Reset() { *m = CollectionName{} } func (m *CollectionName) String() string { return proto.CompactTextString(m) } func (*CollectionName) ProtoMessage() {} func (*CollectionName) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } func (m *CollectionName) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } // * // @brief Collection name list type CollectionNameList struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` CollectionNames []string `protobuf:"bytes,2,rep,name=collection_names,json=collectionNames" json:"collection_names,omitempty"` } func (m *CollectionNameList) Reset() { *m = CollectionNameList{} } func (m *CollectionNameList) String() string { return proto.CompactTextString(m) } func (*CollectionNameList) ProtoMessage() {} func (*CollectionNameList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } func (m *CollectionNameList) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *CollectionNameList) GetCollectionNames() []string { if m != nil { return m.CollectionNames } return nil } // * // @brief Field name type FieldName struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` FieldName string `protobuf:"bytes,2,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` } func (m *FieldName) Reset() { *m = FieldName{} } func (m *FieldName) String() string { return proto.CompactTextString(m) } func (*FieldName) ProtoMessage() {} func (*FieldName) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } func (m *FieldName) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *FieldName) GetFieldName() string { if m != nil { return m.FieldName } return "" } // * // @brief Collection mapping // @extra_params: key-value pair for extra parameters of the collection // typically usage: // extra_params["params"] = {segment_row_count: 1000000, auto_id: true} // Note: // the segment_row_count specify segment row count limit for merging // the auto_id = true means entity id is auto-generated by milvus type Mapping struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` Schema *Schema `protobuf:"bytes,3,opt,name=schema" json:"schema,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,4,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *Mapping) Reset() { *m = Mapping{} } func (m *Mapping) String() string { return proto.CompactTextString(m) } func (*Mapping) ProtoMessage() {} func (*Mapping) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } func (m *Mapping) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *Mapping) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *Mapping) GetSchema() *Schema { if m != nil { return m.Schema } return nil } func (m *Mapping) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } // * // @brief Collection mapping list type MappingList struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` MappingList []*Mapping `protobuf:"bytes,2,rep,name=mapping_list,json=mappingList" json:"mapping_list,omitempty"` } func (m *MappingList) Reset() { *m = MappingList{} } func (m *MappingList) String() string { return proto.CompactTextString(m) } func (*MappingList) ProtoMessage() {} func (*MappingList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } func (m *MappingList) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *MappingList) GetMappingList() []*Mapping { if m != nil { return m.MappingList } return nil } // * // @brief Parameters of partition type PartitionParam struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` Tag string `protobuf:"bytes,2,opt,name=tag" json:"tag,omitempty"` } func (m *PartitionParam) Reset() { *m = PartitionParam{} } func (m *PartitionParam) String() string { return proto.CompactTextString(m) } func (*PartitionParam) ProtoMessage() {} func (*PartitionParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } func (m *PartitionParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *PartitionParam) GetTag() string { if m != nil { return m.Tag } return "" } // * // @brief Partition list type PartitionList struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` PartitionTagArray []string `protobuf:"bytes,2,rep,name=partition_tag_array,json=partitionTagArray" json:"partition_tag_array,omitempty"` } func (m *PartitionList) Reset() { *m = PartitionList{} } func (m *PartitionList) String() string { return proto.CompactTextString(m) } func (*PartitionList) ProtoMessage() {} func (*PartitionList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } func (m *PartitionList) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *PartitionList) GetPartitionTagArray() []string { if m != nil { return m.PartitionTagArray } return nil } // * // @brief Vector row record type VectorRowRecord struct { FloatData []float32 `protobuf:"fixed32,1,rep,packed,name=float_data,json=floatData" json:"float_data,omitempty"` BinaryData []byte `protobuf:"bytes,2,opt,name=binary_data,json=binaryData,proto3" json:"binary_data,omitempty"` } func (m *VectorRowRecord) Reset() { *m = VectorRowRecord{} } func (m *VectorRowRecord) String() string { return proto.CompactTextString(m) } func (*VectorRowRecord) ProtoMessage() {} func (*VectorRowRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } func (m *VectorRowRecord) GetFloatData() []float32 { if m != nil { return m.FloatData } return nil } func (m *VectorRowRecord) GetBinaryData() []byte { if m != nil { return m.BinaryData } return nil } type EntityIds struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` EntityIdArray []int64 `protobuf:"varint,2,rep,packed,name=entity_id_array,json=entityIdArray" json:"entity_id_array,omitempty"` } func (m *EntityIds) Reset() { *m = EntityIds{} } func (m *EntityIds) String() string { return proto.CompactTextString(m) } func (*EntityIds) ProtoMessage() {} func (*EntityIds) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } func (m *EntityIds) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *EntityIds) GetEntityIdArray() []int64 { if m != nil { return m.EntityIdArray } return nil } type VectorRecord struct { Records []*VectorRowRecord `protobuf:"bytes,1,rep,name=records" json:"records,omitempty"` } func (m *VectorRecord) Reset() { *m = VectorRecord{} } func (m *VectorRecord) String() string { return proto.CompactTextString(m) } func (*VectorRecord) ProtoMessage() {} func (*VectorRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } func (m *VectorRecord) GetRecords() []*VectorRowRecord { if m != nil { return m.Records } return nil } type VectorParam struct { Json string `protobuf:"bytes,1,opt,name=json" json:"json,omitempty"` RowRecord *VectorRecord `protobuf:"bytes,2,opt,name=row_record,json=rowRecord" json:"row_record,omitempty"` } func (m *VectorParam) Reset() { *m = VectorParam{} } func (m *VectorParam) String() string { return proto.CompactTextString(m) } func (*VectorParam) ProtoMessage() {} func (*VectorParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } func (m *VectorParam) GetJson() string { if m != nil { return m.Json } return "" } func (m *VectorParam) GetRowRecord() *VectorRecord { if m != nil { return m.RowRecord } return nil } // * // @brief schema type FieldMeta struct { FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Type DataType `protobuf:"varint,2,opt,name=type,enum=milvus.grpc.DataType" json:"type,omitempty"` Dim int64 `protobuf:"varint,3,opt,name=dim" json:"dim,omitempty"` } func (m *FieldMeta) Reset() { *m = FieldMeta{} } func (m *FieldMeta) String() string { return proto.CompactTextString(m) } func (*FieldMeta) ProtoMessage() {} func (*FieldMeta) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } func (m *FieldMeta) GetFieldName() string { if m != nil { return m.FieldName } return "" } func (m *FieldMeta) GetType() DataType { if m != nil { return m.Type } return DataType_NONE } func (m *FieldMeta) GetDim() int64 { if m != nil { return m.Dim } return 0 } type Schema struct { FieldMetas []*FieldMeta `protobuf:"bytes,1,rep,name=field_metas,json=fieldMetas" json:"field_metas,omitempty"` } func (m *Schema) Reset() { *m = Schema{} } func (m *Schema) String() string { return proto.CompactTextString(m) } func (*Schema) ProtoMessage() {} func (*Schema) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } func (m *Schema) GetFieldMetas() []*FieldMeta { if m != nil { return m.FieldMetas } return nil } type RowData struct { Blob []byte `protobuf:"bytes,1,opt,name=blob,proto3" json:"blob,omitempty"` } func (m *RowData) Reset() { *m = RowData{} } func (m *RowData) String() string { return proto.CompactTextString(m) } func (*RowData) ProtoMessage() {} func (*RowData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } func (m *RowData) GetBlob() []byte { if m != nil { return m.Blob } return nil } // ////////////////////suvlim-proxy/////////////////////////////////// type InsertParam struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` Schema *Schema `protobuf:"bytes,2,opt,name=schema" json:"schema,omitempty"` RowsData []*RowData `protobuf:"bytes,3,rep,name=rows_data,json=rowsData" json:"rows_data,omitempty"` EntityIdArray []int64 `protobuf:"varint,4,rep,packed,name=entity_id_array,json=entityIdArray" json:"entity_id_array,omitempty"` PartitionTag string `protobuf:"bytes,5,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,6,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *InsertParam) Reset() { *m = InsertParam{} } func (m *InsertParam) String() string { return proto.CompactTextString(m) } func (*InsertParam) ProtoMessage() {} func (*InsertParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } func (m *InsertParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *InsertParam) GetSchema() *Schema { if m != nil { return m.Schema } return nil } func (m *InsertParam) GetRowsData() []*RowData { if m != nil { return m.RowsData } return nil } func (m *InsertParam) GetEntityIdArray() []int64 { if m != nil { return m.EntityIdArray } return nil } func (m *InsertParam) GetPartitionTag() string { if m != nil { return m.PartitionTag } return "" } func (m *InsertParam) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type SearchParam struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` VectorParam []*VectorParam `protobuf:"bytes,2,rep,name=vector_param,json=vectorParam" json:"vector_param,omitempty"` Dsl string `protobuf:"bytes,3,opt,name=dsl" json:"dsl,omitempty"` PartitionTag []string `protobuf:"bytes,4,rep,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *SearchParam) Reset() { *m = SearchParam{} } func (m *SearchParam) String() string { return proto.CompactTextString(m) } func (*SearchParam) ProtoMessage() {} func (*SearchParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } func (m *SearchParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *SearchParam) GetVectorParam() []*VectorParam { if m != nil { return m.VectorParam } return nil } func (m *SearchParam) GetDsl() string { if m != nil { return m.Dsl } return "" } func (m *SearchParam) GetPartitionTag() []string { if m != nil { return m.PartitionTag } return nil } func (m *SearchParam) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type SearchInSegmentParam struct { FileIdArray []string `protobuf:"bytes,1,rep,name=file_id_array,json=fileIdArray" json:"file_id_array,omitempty"` SearchParam *SearchParam `protobuf:"bytes,2,opt,name=search_param,json=searchParam" json:"search_param,omitempty"` } func (m *SearchInSegmentParam) Reset() { *m = SearchInSegmentParam{} } func (m *SearchInSegmentParam) String() string { return proto.CompactTextString(m) } func (*SearchInSegmentParam) ProtoMessage() {} func (*SearchInSegmentParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } func (m *SearchInSegmentParam) GetFileIdArray() []string { if m != nil { return m.FileIdArray } return nil } func (m *SearchInSegmentParam) GetSearchParam() *SearchParam { if m != nil { return m.SearchParam } return nil } type Entities struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` Ids []int64 `protobuf:"varint,2,rep,packed,name=ids" json:"ids,omitempty"` ValidRow []bool `protobuf:"varint,3,rep,packed,name=valid_row,json=validRow" json:"valid_row,omitempty"` RowsData []*RowData `protobuf:"bytes,4,rep,name=rows_data,json=rowsData" json:"rows_data,omitempty"` } func (m *Entities) Reset() { *m = Entities{} } func (m *Entities) String() string { return proto.CompactTextString(m) } func (*Entities) ProtoMessage() {} func (*Entities) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } func (m *Entities) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *Entities) GetIds() []int64 { if m != nil { return m.Ids } return nil } func (m *Entities) GetValidRow() []bool { if m != nil { return m.ValidRow } return nil } func (m *Entities) GetRowsData() []*RowData { if m != nil { return m.RowsData } return nil } // * // @brief Query result type QueryResult struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` Entities *Entities `protobuf:"bytes,2,opt,name=entities" json:"entities,omitempty"` RowNum int64 `protobuf:"varint,3,opt,name=row_num,json=rowNum" json:"row_num,omitempty"` Scores []float32 `protobuf:"fixed32,4,rep,packed,name=scores" json:"scores,omitempty"` Distances []float32 `protobuf:"fixed32,5,rep,packed,name=distances" json:"distances,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,6,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *QueryResult) Reset() { *m = QueryResult{} } func (m *QueryResult) String() string { return proto.CompactTextString(m) } func (*QueryResult) ProtoMessage() {} func (*QueryResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } func (m *QueryResult) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *QueryResult) GetEntities() *Entities { if m != nil { return m.Entities } return nil } func (m *QueryResult) GetRowNum() int64 { if m != nil { return m.RowNum } return 0 } func (m *QueryResult) GetScores() []float32 { if m != nil { return m.Scores } return nil } func (m *QueryResult) GetDistances() []float32 { if m != nil { return m.Distances } return nil } func (m *QueryResult) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } // * // @brief Server string Reply type StringReply struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` StringReply string `protobuf:"bytes,2,opt,name=string_reply,json=stringReply" json:"string_reply,omitempty"` } func (m *StringReply) Reset() { *m = StringReply{} } func (m *StringReply) String() string { return proto.CompactTextString(m) } func (*StringReply) ProtoMessage() {} func (*StringReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } func (m *StringReply) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *StringReply) GetStringReply() string { if m != nil { return m.StringReply } return "" } // * // @brief Server bool Reply type BoolReply struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` BoolReply bool `protobuf:"varint,2,opt,name=bool_reply,json=boolReply" json:"bool_reply,omitempty"` } func (m *BoolReply) Reset() { *m = BoolReply{} } func (m *BoolReply) String() string { return proto.CompactTextString(m) } func (*BoolReply) ProtoMessage() {} func (*BoolReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } func (m *BoolReply) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *BoolReply) GetBoolReply() bool { if m != nil { return m.BoolReply } return false } // * // @brief Return collection row count type CollectionRowCount struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` CollectionRowCount int64 `protobuf:"varint,2,opt,name=collection_row_count,json=collectionRowCount" json:"collection_row_count,omitempty"` } func (m *CollectionRowCount) Reset() { *m = CollectionRowCount{} } func (m *CollectionRowCount) String() string { return proto.CompactTextString(m) } func (*CollectionRowCount) ProtoMessage() {} func (*CollectionRowCount) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } func (m *CollectionRowCount) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *CollectionRowCount) GetCollectionRowCount() int64 { if m != nil { return m.CollectionRowCount } return 0 } // * // @brief Server command parameters type Command struct { Cmd string `protobuf:"bytes,1,opt,name=cmd" json:"cmd,omitempty"` } func (m *Command) Reset() { *m = Command{} } func (m *Command) String() string { return proto.CompactTextString(m) } func (*Command) ProtoMessage() {} func (*Command) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } func (m *Command) GetCmd() string { if m != nil { return m.Cmd } return "" } // * // @brief Index params // @collection_name: target collection // @field_name: target field // @index_name: a name for index provided by user, unique within this field // @extra_params: index parameters in json format // for vector field: // extra_params["index_type"] = one of the values: FLAT, IVF_LAT, IVF_SQ8, NSGMIX, IVFSQ8H, // PQ, HNSW, HNSW_SQ8NM, ANNOY // extra_params["metric_type"] = one of the values: L2, IP, HAMMING, JACCARD, TANIMOTO // SUBSTRUCTURE, SUPERSTRUCTURE // extra_params["params"] = extra parameters for index, for example ivflat: {nlist: 2048} // for structured field: // extra_params["index_type"] = one of the values: SORTED type IndexParam struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` CollectionName string `protobuf:"bytes,2,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` FieldName string `protobuf:"bytes,3,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` IndexName string `protobuf:"bytes,4,opt,name=index_name,json=indexName" json:"index_name,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *IndexParam) Reset() { *m = IndexParam{} } func (m *IndexParam) String() string { return proto.CompactTextString(m) } func (*IndexParam) ProtoMessage() {} func (*IndexParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } func (m *IndexParam) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *IndexParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *IndexParam) GetFieldName() string { if m != nil { return m.FieldName } return "" } func (m *IndexParam) GetIndexName() string { if m != nil { return m.IndexName } return "" } func (m *IndexParam) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } // * // @brief Parameters for flush action type FlushParam struct { CollectionNameArray []string `protobuf:"bytes,1,rep,name=collection_name_array,json=collectionNameArray" json:"collection_name_array,omitempty"` } func (m *FlushParam) Reset() { *m = FlushParam{} } func (m *FlushParam) String() string { return proto.CompactTextString(m) } func (*FlushParam) ProtoMessage() {} func (*FlushParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } func (m *FlushParam) GetCollectionNameArray() []string { if m != nil { return m.CollectionNameArray } return nil } // * // @brief Parameters for flush action type CompactParam struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` Threshold float64 `protobuf:"fixed64,2,opt,name=threshold" json:"threshold,omitempty"` } func (m *CompactParam) Reset() { *m = CompactParam{} } func (m *CompactParam) String() string { return proto.CompactTextString(m) } func (*CompactParam) ProtoMessage() {} func (*CompactParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (m *CompactParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *CompactParam) GetThreshold() float64 { if m != nil { return m.Threshold } return 0 } // * // @brief Parameters for deleting entities by id type DeleteByIDParam struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` IdArray []int64 `protobuf:"varint,2,rep,packed,name=id_array,json=idArray" json:"id_array,omitempty"` } func (m *DeleteByIDParam) Reset() { *m = DeleteByIDParam{} } func (m *DeleteByIDParam) String() string { return proto.CompactTextString(m) } func (*DeleteByIDParam) ProtoMessage() {} func (*DeleteByIDParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } func (m *DeleteByIDParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *DeleteByIDParam) GetIdArray() []int64 { if m != nil { return m.IdArray } return nil } // * // @brief Return collection stats // @json_info: collection stats in json format, typically, the format is like: // { // row_count: xxx, // data_size: xxx, // partitions: [ // { // tag: xxx, // id: xxx, // row_count: xxx, // data_size: xxx, // segments: [ // { // id: xxx, // row_count: xxx, // data_size: xxx, // files: [ // { // field: xxx, // name: xxx, // index_type: xxx, // path: xxx, // data_size: xxx, // } // ] // } // ] // } // ] // } type CollectionInfo struct { Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` JsonInfo string `protobuf:"bytes,2,opt,name=json_info,json=jsonInfo" json:"json_info,omitempty"` } func (m *CollectionInfo) Reset() { *m = CollectionInfo{} } func (m *CollectionInfo) String() string { return proto.CompactTextString(m) } func (*CollectionInfo) ProtoMessage() {} func (*CollectionInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } func (m *CollectionInfo) GetStatus() *Status { if m != nil { return m.Status } return nil } func (m *CollectionInfo) GetJsonInfo() string { if m != nil { return m.JsonInfo } return "" } // * // @brief Parameters for returning entities id of a segment type GetEntityIDsParam struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` SegmentId int64 `protobuf:"varint,2,opt,name=segment_id,json=segmentId" json:"segment_id,omitempty"` } func (m *GetEntityIDsParam) Reset() { *m = GetEntityIDsParam{} } func (m *GetEntityIDsParam) String() string { return proto.CompactTextString(m) } func (*GetEntityIDsParam) ProtoMessage() {} func (*GetEntityIDsParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } func (m *GetEntityIDsParam) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *GetEntityIDsParam) GetSegmentId() int64 { if m != nil { return m.SegmentId } return 0 } // * // @brief Entities identity type EntityIdentity struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` IdArray []int64 `protobuf:"varint,2,rep,packed,name=id_array,json=idArray" json:"id_array,omitempty"` FieldNames []string `protobuf:"bytes,3,rep,name=field_names,json=fieldNames" json:"field_names,omitempty"` } func (m *EntityIdentity) Reset() { *m = EntityIdentity{} } func (m *EntityIdentity) String() string { return proto.CompactTextString(m) } func (*EntityIdentity) ProtoMessage() {} func (*EntityIdentity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } func (m *EntityIdentity) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *EntityIdentity) GetIdArray() []int64 { if m != nil { return m.IdArray } return nil } func (m *EntityIdentity) GetFieldNames() []string { if m != nil { return m.FieldNames } return nil } // * // @brief Vector field parameters type VectorFieldParam struct { Dimension int64 `protobuf:"varint,1,opt,name=dimension" json:"dimension,omitempty"` } func (m *VectorFieldParam) Reset() { *m = VectorFieldParam{} } func (m *VectorFieldParam) String() string { return proto.CompactTextString(m) } func (*VectorFieldParam) ProtoMessage() {} func (*VectorFieldParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } func (m *VectorFieldParam) GetDimension() int64 { if m != nil { return m.Dimension } return 0 } // * // @brief Field type type FieldType struct { // Types that are valid to be assigned to Value: // *FieldType_DataType // *FieldType_VectorParam Value isFieldType_Value `protobuf_oneof:"value"` } func (m *FieldType) Reset() { *m = FieldType{} } func (m *FieldType) String() string { return proto.CompactTextString(m) } func (*FieldType) ProtoMessage() {} func (*FieldType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } type isFieldType_Value interface{ isFieldType_Value() } type FieldType_DataType struct { DataType DataType `protobuf:"varint,1,opt,name=data_type,json=dataType,enum=milvus.grpc.DataType,oneof"` } type FieldType_VectorParam struct { VectorParam *VectorFieldParam `protobuf:"bytes,2,opt,name=vector_param,json=vectorParam,oneof"` } func (*FieldType_DataType) isFieldType_Value() {} func (*FieldType_VectorParam) isFieldType_Value() {} func (m *FieldType) GetValue() isFieldType_Value { if m != nil { return m.Value } return nil } func (m *FieldType) GetDataType() DataType { if x, ok := m.GetValue().(*FieldType_DataType); ok { return x.DataType } return DataType_NONE } func (m *FieldType) GetVectorParam() *VectorFieldParam { if x, ok := m.GetValue().(*FieldType_VectorParam); ok { return x.VectorParam } return nil } // XXX_OneofFuncs is for the internal use of the proto package. func (*FieldType) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _FieldType_OneofMarshaler, _FieldType_OneofUnmarshaler, _FieldType_OneofSizer, []interface{}{ (*FieldType_DataType)(nil), (*FieldType_VectorParam)(nil), } } func _FieldType_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*FieldType) // value switch x := m.Value.(type) { case *FieldType_DataType: b.EncodeVarint(1<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.DataType)) case *FieldType_VectorParam: b.EncodeVarint(2<<3 | proto.WireBytes) if err := b.EncodeMessage(x.VectorParam); err != nil { return err } case nil: default: return fmt.Errorf("FieldType.Value has unexpected type %T", x) } return nil } func _FieldType_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*FieldType) switch tag { case 1: // value.data_type if wire != proto.WireVarint { return true, proto.ErrInternalBadWireType } x, err := b.DecodeVarint() m.Value = &FieldType_DataType{DataType(x)} return true, err case 2: // value.vector_param if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(VectorFieldParam) err := b.DecodeMessage(msg) m.Value = &FieldType_VectorParam{msg} return true, err default: return false, nil } } func _FieldType_OneofSizer(msg proto.Message) (n int) { m := msg.(*FieldType) // value switch x := m.Value.(type) { case *FieldType_DataType: n += proto.SizeVarint(1<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.DataType)) case *FieldType_VectorParam: s := proto.Size(x.VectorParam) n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } // * // @brief Field parameters type FieldParam struct { Id uint64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` Type DataType `protobuf:"varint,3,opt,name=type,enum=milvus.grpc.DataType" json:"type,omitempty"` IndexParams []*KeyValuePair `protobuf:"bytes,4,rep,name=index_params,json=indexParams" json:"index_params,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *FieldParam) Reset() { *m = FieldParam{} } func (m *FieldParam) String() string { return proto.CompactTextString(m) } func (*FieldParam) ProtoMessage() {} func (*FieldParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} } func (m *FieldParam) GetId() uint64 { if m != nil { return m.Id } return 0 } func (m *FieldParam) GetName() string { if m != nil { return m.Name } return "" } func (m *FieldParam) GetType() DataType { if m != nil { return m.Type } return DataType_NONE } func (m *FieldParam) GetIndexParams() []*KeyValuePair { if m != nil { return m.IndexParams } return nil } func (m *FieldParam) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } // * // @brief Vector field record type VectorFieldRecord struct { Value []*VectorRowRecord `protobuf:"bytes,1,rep,name=value" json:"value,omitempty"` } func (m *VectorFieldRecord) Reset() { *m = VectorFieldRecord{} } func (m *VectorFieldRecord) String() string { return proto.CompactTextString(m) } func (*VectorFieldRecord) ProtoMessage() {} func (*VectorFieldRecord) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} } func (m *VectorFieldRecord) GetValue() []*VectorRowRecord { if m != nil { return m.Value } return nil } type TermQuery struct { FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` IntValue []int64 `protobuf:"varint,2,rep,packed,name=int_value,json=intValue" json:"int_value,omitempty"` DoubleValue []float64 `protobuf:"fixed64,3,rep,packed,name=double_value,json=doubleValue" json:"double_value,omitempty"` ValueNum int64 `protobuf:"varint,4,opt,name=value_num,json=valueNum" json:"value_num,omitempty"` Boost float32 `protobuf:"fixed32,5,opt,name=boost" json:"boost,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,6,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *TermQuery) Reset() { *m = TermQuery{} } func (m *TermQuery) String() string { return proto.CompactTextString(m) } func (*TermQuery) ProtoMessage() {} func (*TermQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} } func (m *TermQuery) GetFieldName() string { if m != nil { return m.FieldName } return "" } func (m *TermQuery) GetIntValue() []int64 { if m != nil { return m.IntValue } return nil } func (m *TermQuery) GetDoubleValue() []float64 { if m != nil { return m.DoubleValue } return nil } func (m *TermQuery) GetValueNum() int64 { if m != nil { return m.ValueNum } return 0 } func (m *TermQuery) GetBoost() float32 { if m != nil { return m.Boost } return 0 } func (m *TermQuery) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type CompareExpr struct { Operator CompareOperator `protobuf:"varint,1,opt,name=operator,enum=milvus.grpc.CompareOperator" json:"operator,omitempty"` Operand string `protobuf:"bytes,2,opt,name=operand" json:"operand,omitempty"` } func (m *CompareExpr) Reset() { *m = CompareExpr{} } func (m *CompareExpr) String() string { return proto.CompactTextString(m) } func (*CompareExpr) ProtoMessage() {} func (*CompareExpr) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} } func (m *CompareExpr) GetOperator() CompareOperator { if m != nil { return m.Operator } return CompareOperator_LT } func (m *CompareExpr) GetOperand() string { if m != nil { return m.Operand } return "" } type RangeQuery struct { FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` Operand []*CompareExpr `protobuf:"bytes,2,rep,name=operand" json:"operand,omitempty"` Boost float32 `protobuf:"fixed32,3,opt,name=boost" json:"boost,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,4,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *RangeQuery) Reset() { *m = RangeQuery{} } func (m *RangeQuery) String() string { return proto.CompactTextString(m) } func (*RangeQuery) ProtoMessage() {} func (*RangeQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} } func (m *RangeQuery) GetFieldName() string { if m != nil { return m.FieldName } return "" } func (m *RangeQuery) GetOperand() []*CompareExpr { if m != nil { return m.Operand } return nil } func (m *RangeQuery) GetBoost() float32 { if m != nil { return m.Boost } return 0 } func (m *RangeQuery) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type VectorQuery struct { FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName" json:"field_name,omitempty"` QueryBoost float32 `protobuf:"fixed32,2,opt,name=query_boost,json=queryBoost" json:"query_boost,omitempty"` Records []*VectorRowRecord `protobuf:"bytes,3,rep,name=records" json:"records,omitempty"` Topk int64 `protobuf:"varint,4,opt,name=topk" json:"topk,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,5,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *VectorQuery) Reset() { *m = VectorQuery{} } func (m *VectorQuery) String() string { return proto.CompactTextString(m) } func (*VectorQuery) ProtoMessage() {} func (*VectorQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} } func (m *VectorQuery) GetFieldName() string { if m != nil { return m.FieldName } return "" } func (m *VectorQuery) GetQueryBoost() float32 { if m != nil { return m.QueryBoost } return 0 } func (m *VectorQuery) GetRecords() []*VectorRowRecord { if m != nil { return m.Records } return nil } func (m *VectorQuery) GetTopk() int64 { if m != nil { return m.Topk } return 0 } func (m *VectorQuery) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type BooleanQuery struct { Occur Occur `protobuf:"varint,1,opt,name=occur,enum=milvus.grpc.Occur" json:"occur,omitempty"` GeneralQuery []*GeneralQuery `protobuf:"bytes,2,rep,name=general_query,json=generalQuery" json:"general_query,omitempty"` } func (m *BooleanQuery) Reset() { *m = BooleanQuery{} } func (m *BooleanQuery) String() string { return proto.CompactTextString(m) } func (*BooleanQuery) ProtoMessage() {} func (*BooleanQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} } func (m *BooleanQuery) GetOccur() Occur { if m != nil { return m.Occur } return Occur_INVALID } func (m *BooleanQuery) GetGeneralQuery() []*GeneralQuery { if m != nil { return m.GeneralQuery } return nil } type GeneralQuery struct { // Types that are valid to be assigned to Query: // *GeneralQuery_BooleanQuery // *GeneralQuery_TermQuery // *GeneralQuery_RangeQuery // *GeneralQuery_VectorQuery Query isGeneralQuery_Query `protobuf_oneof:"query"` } func (m *GeneralQuery) Reset() { *m = GeneralQuery{} } func (m *GeneralQuery) String() string { return proto.CompactTextString(m) } func (*GeneralQuery) ProtoMessage() {} func (*GeneralQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} } type isGeneralQuery_Query interface{ isGeneralQuery_Query() } type GeneralQuery_BooleanQuery struct { BooleanQuery *BooleanQuery `protobuf:"bytes,1,opt,name=boolean_query,json=booleanQuery,oneof"` } type GeneralQuery_TermQuery struct { TermQuery *TermQuery `protobuf:"bytes,2,opt,name=term_query,json=termQuery,oneof"` } type GeneralQuery_RangeQuery struct { RangeQuery *RangeQuery `protobuf:"bytes,3,opt,name=range_query,json=rangeQuery,oneof"` } type GeneralQuery_VectorQuery struct { VectorQuery *VectorQuery `protobuf:"bytes,4,opt,name=vector_query,json=vectorQuery,oneof"` } func (*GeneralQuery_BooleanQuery) isGeneralQuery_Query() {} func (*GeneralQuery_TermQuery) isGeneralQuery_Query() {} func (*GeneralQuery_RangeQuery) isGeneralQuery_Query() {} func (*GeneralQuery_VectorQuery) isGeneralQuery_Query() {} func (m *GeneralQuery) GetQuery() isGeneralQuery_Query { if m != nil { return m.Query } return nil } func (m *GeneralQuery) GetBooleanQuery() *BooleanQuery { if x, ok := m.GetQuery().(*GeneralQuery_BooleanQuery); ok { return x.BooleanQuery } return nil } func (m *GeneralQuery) GetTermQuery() *TermQuery { if x, ok := m.GetQuery().(*GeneralQuery_TermQuery); ok { return x.TermQuery } return nil } func (m *GeneralQuery) GetRangeQuery() *RangeQuery { if x, ok := m.GetQuery().(*GeneralQuery_RangeQuery); ok { return x.RangeQuery } return nil } func (m *GeneralQuery) GetVectorQuery() *VectorQuery { if x, ok := m.GetQuery().(*GeneralQuery_VectorQuery); ok { return x.VectorQuery } return nil } // XXX_OneofFuncs is for the internal use of the proto package. func (*GeneralQuery) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _GeneralQuery_OneofMarshaler, _GeneralQuery_OneofUnmarshaler, _GeneralQuery_OneofSizer, []interface{}{ (*GeneralQuery_BooleanQuery)(nil), (*GeneralQuery_TermQuery)(nil), (*GeneralQuery_RangeQuery)(nil), (*GeneralQuery_VectorQuery)(nil), } } func _GeneralQuery_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { m := msg.(*GeneralQuery) // query switch x := m.Query.(type) { case *GeneralQuery_BooleanQuery: b.EncodeVarint(1<<3 | proto.WireBytes) if err := b.EncodeMessage(x.BooleanQuery); err != nil { return err } case *GeneralQuery_TermQuery: b.EncodeVarint(2<<3 | proto.WireBytes) if err := b.EncodeMessage(x.TermQuery); err != nil { return err } case *GeneralQuery_RangeQuery: b.EncodeVarint(3<<3 | proto.WireBytes) if err := b.EncodeMessage(x.RangeQuery); err != nil { return err } case *GeneralQuery_VectorQuery: b.EncodeVarint(4<<3 | proto.WireBytes) if err := b.EncodeMessage(x.VectorQuery); err != nil { return err } case nil: default: return fmt.Errorf("GeneralQuery.Query has unexpected type %T", x) } return nil } func _GeneralQuery_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { m := msg.(*GeneralQuery) switch tag { case 1: // query.boolean_query if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(BooleanQuery) err := b.DecodeMessage(msg) m.Query = &GeneralQuery_BooleanQuery{msg} return true, err case 2: // query.term_query if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(TermQuery) err := b.DecodeMessage(msg) m.Query = &GeneralQuery_TermQuery{msg} return true, err case 3: // query.range_query if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(RangeQuery) err := b.DecodeMessage(msg) m.Query = &GeneralQuery_RangeQuery{msg} return true, err case 4: // query.vector_query if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType } msg := new(VectorQuery) err := b.DecodeMessage(msg) m.Query = &GeneralQuery_VectorQuery{msg} return true, err default: return false, nil } } func _GeneralQuery_OneofSizer(msg proto.Message) (n int) { m := msg.(*GeneralQuery) // query switch x := m.Query.(type) { case *GeneralQuery_BooleanQuery: s := proto.Size(x.BooleanQuery) n += proto.SizeVarint(1<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *GeneralQuery_TermQuery: s := proto.Size(x.TermQuery) n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *GeneralQuery_RangeQuery: s := proto.Size(x.RangeQuery) n += proto.SizeVarint(3<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *GeneralQuery_VectorQuery: s := proto.Size(x.VectorQuery) n += proto.SizeVarint(4<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n } type SearchParamPB struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` PartitionTagArray []string `protobuf:"bytes,2,rep,name=partition_tag_array,json=partitionTagArray" json:"partition_tag_array,omitempty"` GeneralQuery *GeneralQuery `protobuf:"bytes,3,opt,name=general_query,json=generalQuery" json:"general_query,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,4,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *SearchParamPB) Reset() { *m = SearchParamPB{} } func (m *SearchParamPB) String() string { return proto.CompactTextString(m) } func (*SearchParamPB) ProtoMessage() {} func (*SearchParamPB) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} } func (m *SearchParamPB) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *SearchParamPB) GetPartitionTagArray() []string { if m != nil { return m.PartitionTagArray } return nil } func (m *SearchParamPB) GetGeneralQuery() *GeneralQuery { if m != nil { return m.GeneralQuery } return nil } func (m *SearchParamPB) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type InsertOrDeleteMsg struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` RowsData *RowData `protobuf:"bytes,2,opt,name=rows_data,json=rowsData" json:"rows_data,omitempty"` Uid int64 `protobuf:"varint,3,opt,name=uid" json:"uid,omitempty"` PartitionTag string `protobuf:"bytes,4,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"` Timestamp uint64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"` SegmentId int64 `protobuf:"varint,6,opt,name=segment_id,json=segmentId" json:"segment_id,omitempty"` ChannelId int64 `protobuf:"varint,7,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"` Op OpType `protobuf:"varint,8,opt,name=op,enum=milvus.grpc.OpType" json:"op,omitempty"` ClientId int64 `protobuf:"varint,9,opt,name=client_id,json=clientId" json:"client_id,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,10,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *InsertOrDeleteMsg) Reset() { *m = InsertOrDeleteMsg{} } func (m *InsertOrDeleteMsg) String() string { return proto.CompactTextString(m) } func (*InsertOrDeleteMsg) ProtoMessage() {} func (*InsertOrDeleteMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} } func (m *InsertOrDeleteMsg) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *InsertOrDeleteMsg) GetRowsData() *RowData { if m != nil { return m.RowsData } return nil } func (m *InsertOrDeleteMsg) GetUid() int64 { if m != nil { return m.Uid } return 0 } func (m *InsertOrDeleteMsg) GetPartitionTag() string { if m != nil { return m.PartitionTag } return "" } func (m *InsertOrDeleteMsg) GetTimestamp() uint64 { if m != nil { return m.Timestamp } return 0 } func (m *InsertOrDeleteMsg) GetSegmentId() int64 { if m != nil { return m.SegmentId } return 0 } func (m *InsertOrDeleteMsg) GetChannelId() int64 { if m != nil { return m.ChannelId } return 0 } func (m *InsertOrDeleteMsg) GetOp() OpType { if m != nil { return m.Op } return OpType_INSERT } func (m *InsertOrDeleteMsg) GetClientId() int64 { if m != nil { return m.ClientId } return 0 } func (m *InsertOrDeleteMsg) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type SearchMsg struct { CollectionName string `protobuf:"bytes,1,opt,name=collection_name,json=collectionName" json:"collection_name,omitempty"` Records *VectorRowRecord `protobuf:"bytes,2,opt,name=records" json:"records,omitempty"` PartitionTag string `protobuf:"bytes,3,opt,name=partition_tag,json=partitionTag" json:"partition_tag,omitempty"` Uid int64 `protobuf:"varint,4,opt,name=uid" json:"uid,omitempty"` Timestamp uint64 `protobuf:"varint,5,opt,name=timestamp" json:"timestamp,omitempty"` ClientId int64 `protobuf:"varint,6,opt,name=client_id,json=clientId" json:"client_id,omitempty"` ExtraParams []*KeyValuePair `protobuf:"bytes,7,rep,name=extra_params,json=extraParams" json:"extra_params,omitempty"` } func (m *SearchMsg) Reset() { *m = SearchMsg{} } func (m *SearchMsg) String() string { return proto.CompactTextString(m) } func (*SearchMsg) ProtoMessage() {} func (*SearchMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} } func (m *SearchMsg) GetCollectionName() string { if m != nil { return m.CollectionName } return "" } func (m *SearchMsg) GetRecords() *VectorRowRecord { if m != nil { return m.Records } return nil } func (m *SearchMsg) GetPartitionTag() string { if m != nil { return m.PartitionTag } return "" } func (m *SearchMsg) GetUid() int64 { if m != nil { return m.Uid } return 0 } func (m *SearchMsg) GetTimestamp() uint64 { if m != nil { return m.Timestamp } return 0 } func (m *SearchMsg) GetClientId() int64 { if m != nil { return m.ClientId } return 0 } func (m *SearchMsg) GetExtraParams() []*KeyValuePair { if m != nil { return m.ExtraParams } return nil } type TimeSyncMsg struct { Peer_Id int64 `protobuf:"varint,1,opt,name=peer_Id,json=peerId" json:"peer_Id,omitempty"` Timestamp uint64 `protobuf:"varint,2,opt,name=Timestamp" json:"Timestamp,omitempty"` SyncType SyncType `protobuf:"varint,3,opt,name=sync_type,json=syncType,enum=milvus.grpc.SyncType" json:"sync_type,omitempty"` } func (m *TimeSyncMsg) Reset() { *m = TimeSyncMsg{} } func (m *TimeSyncMsg) String() string { return proto.CompactTextString(m) } func (*TimeSyncMsg) ProtoMessage() {} func (*TimeSyncMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} } func (m *TimeSyncMsg) GetPeer_Id() int64 { if m != nil { return m.Peer_Id } return 0 } func (m *TimeSyncMsg) GetTimestamp() uint64 { if m != nil { return m.Timestamp } return 0 } func (m *TimeSyncMsg) GetSyncType() SyncType { if m != nil { return m.SyncType } return SyncType_READ } type Key2SegMsg struct { Uid int64 `protobuf:"varint,1,opt,name=uid" json:"uid,omitempty"` Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"` SegmentId []int64 `protobuf:"varint,3,rep,packed,name=segment_id,json=segmentId" json:"segment_id,omitempty"` } func (m *Key2SegMsg) Reset() { *m = Key2SegMsg{} } func (m *Key2SegMsg) String() string { return proto.CompactTextString(m) } func (*Key2SegMsg) ProtoMessage() {} func (*Key2SegMsg) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} } func (m *Key2SegMsg) GetUid() int64 { if m != nil { return m.Uid } return 0 } func (m *Key2SegMsg) GetTimestamp() uint64 { if m != nil { return m.Timestamp } return 0 } func (m *Key2SegMsg) GetSegmentId() []int64 { if m != nil { return m.SegmentId } return nil } func init() { proto.RegisterType((*Status)(nil), "milvus.grpc.Status") proto.RegisterType((*KeyValuePair)(nil), "milvus.grpc.KeyValuePair") proto.RegisterType((*CollectionName)(nil), "milvus.grpc.CollectionName") proto.RegisterType((*CollectionNameList)(nil), "milvus.grpc.CollectionNameList") proto.RegisterType((*FieldName)(nil), "milvus.grpc.FieldName") proto.RegisterType((*Mapping)(nil), "milvus.grpc.Mapping") proto.RegisterType((*MappingList)(nil), "milvus.grpc.MappingList") proto.RegisterType((*PartitionParam)(nil), "milvus.grpc.PartitionParam") proto.RegisterType((*PartitionList)(nil), "milvus.grpc.PartitionList") proto.RegisterType((*VectorRowRecord)(nil), "milvus.grpc.VectorRowRecord") proto.RegisterType((*EntityIds)(nil), "milvus.grpc.EntityIds") proto.RegisterType((*VectorRecord)(nil), "milvus.grpc.VectorRecord") proto.RegisterType((*VectorParam)(nil), "milvus.grpc.VectorParam") proto.RegisterType((*FieldMeta)(nil), "milvus.grpc.FieldMeta") proto.RegisterType((*Schema)(nil), "milvus.grpc.Schema") proto.RegisterType((*RowData)(nil), "milvus.grpc.RowData") proto.RegisterType((*InsertParam)(nil), "milvus.grpc.InsertParam") proto.RegisterType((*SearchParam)(nil), "milvus.grpc.SearchParam") proto.RegisterType((*SearchInSegmentParam)(nil), "milvus.grpc.SearchInSegmentParam") proto.RegisterType((*Entities)(nil), "milvus.grpc.Entities") proto.RegisterType((*QueryResult)(nil), "milvus.grpc.QueryResult") proto.RegisterType((*StringReply)(nil), "milvus.grpc.StringReply") proto.RegisterType((*BoolReply)(nil), "milvus.grpc.BoolReply") proto.RegisterType((*CollectionRowCount)(nil), "milvus.grpc.CollectionRowCount") proto.RegisterType((*Command)(nil), "milvus.grpc.Command") proto.RegisterType((*IndexParam)(nil), "milvus.grpc.IndexParam") proto.RegisterType((*FlushParam)(nil), "milvus.grpc.FlushParam") proto.RegisterType((*CompactParam)(nil), "milvus.grpc.CompactParam") proto.RegisterType((*DeleteByIDParam)(nil), "milvus.grpc.DeleteByIDParam") proto.RegisterType((*CollectionInfo)(nil), "milvus.grpc.CollectionInfo") proto.RegisterType((*GetEntityIDsParam)(nil), "milvus.grpc.GetEntityIDsParam") proto.RegisterType((*EntityIdentity)(nil), "milvus.grpc.EntityIdentity") proto.RegisterType((*VectorFieldParam)(nil), "milvus.grpc.VectorFieldParam") proto.RegisterType((*FieldType)(nil), "milvus.grpc.FieldType") proto.RegisterType((*FieldParam)(nil), "milvus.grpc.FieldParam") proto.RegisterType((*VectorFieldRecord)(nil), "milvus.grpc.VectorFieldRecord") proto.RegisterType((*TermQuery)(nil), "milvus.grpc.TermQuery") proto.RegisterType((*CompareExpr)(nil), "milvus.grpc.CompareExpr") proto.RegisterType((*RangeQuery)(nil), "milvus.grpc.RangeQuery") proto.RegisterType((*VectorQuery)(nil), "milvus.grpc.VectorQuery") proto.RegisterType((*BooleanQuery)(nil), "milvus.grpc.BooleanQuery") proto.RegisterType((*GeneralQuery)(nil), "milvus.grpc.GeneralQuery") proto.RegisterType((*SearchParamPB)(nil), "milvus.grpc.SearchParamPB") proto.RegisterType((*InsertOrDeleteMsg)(nil), "milvus.grpc.InsertOrDeleteMsg") proto.RegisterType((*SearchMsg)(nil), "milvus.grpc.SearchMsg") proto.RegisterType((*TimeSyncMsg)(nil), "milvus.grpc.TimeSyncMsg") proto.RegisterType((*Key2SegMsg)(nil), "milvus.grpc.Key2SegMsg") proto.RegisterEnum("milvus.grpc.ErrorCode", ErrorCode_name, ErrorCode_value) proto.RegisterEnum("milvus.grpc.DataType", DataType_name, DataType_value) proto.RegisterEnum("milvus.grpc.CompareOperator", CompareOperator_name, CompareOperator_value) proto.RegisterEnum("milvus.grpc.Occur", Occur_name, Occur_value) proto.RegisterEnum("milvus.grpc.OpType", OpType_name, OpType_value) proto.RegisterEnum("milvus.grpc.SyncType", SyncType_name, SyncType_value) } func init() { proto.RegisterFile("message.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ // 2841 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5a, 0xdd, 0x72, 0xdb, 0xc6, 0xf5, 0x27, 0x08, 0x8a, 0x24, 0x0e, 0x48, 0x09, 0x5a, 0xcb, 0xb6, 0x6c, 0xc7, 0x7f, 0x3b, 0xf8, 0xcf, 0xb4, 0x8e, 0x3b, 0xe3, 0x49, 0x94, 0xd4, 0x76, 0xeb, 0x24, 0x0d, 0x3f, 0x20, 0x09, 0x35, 0x45, 0xca, 0x4b, 0xc8, 0xce, 0xc7, 0x74, 0x50, 0x88, 0x58, 0xd3, 0x68, 0x48, 0x80, 0x05, 0x40, 0xcb, 0xbc, 0xed, 0x7d, 0x3b, 0xd3, 0xcb, 0xce, 0xf4, 0xa6, 0x7d, 0x85, 0xbe, 0x45, 0x5f, 0x20, 0x17, 0x99, 0xe9, 0x65, 0xa7, 0xcf, 0xd0, 0xab, 0xce, 0x7e, 0x80, 0x04, 0x28, 0x52, 0x22, 0xa3, 0xf6, 0x4a, 0xcb, 0xb3, 0x7b, 0xce, 0xfe, 0xce, 0xe7, 0x9e, 0x5d, 0x08, 0xaa, 0x43, 0x12, 0x45, 0x4e, 0x9f, 0x3c, 0x1a, 0x85, 0x41, 0x1c, 0x20, 0x75, 0xe8, 0x0d, 0xde, 0x8e, 0xa3, 0x47, 0xfd, 0x70, 0xd4, 0xd3, 0x5f, 0x41, 0xb1, 0x1b, 0x3b, 0xf1, 0x38, 0x42, 0x3f, 0x05, 0x20, 0x61, 0x18, 0x84, 0x76, 0x2f, 0x70, 0xc9, 0xae, 0x74, 0x5f, 0x7a, 0xb0, 0xb9, 0x77, 0xe3, 0x51, 0x6a, 0xed, 0x23, 0x83, 0x4e, 0x37, 0x02, 0x97, 0x60, 0x85, 0x24, 0x43, 0x74, 0x03, 0x8a, 0x21, 0x71, 0xa2, 0xc0, 0xdf, 0xcd, 0xdf, 0x97, 0x1e, 0x28, 0x58, 0xfc, 0xd2, 0x1f, 0x43, 0xe5, 0x39, 0x99, 0xbc, 0x74, 0x06, 0x63, 0x72, 0xec, 0x78, 0x21, 0xd2, 0x40, 0xfe, 0x96, 0x4c, 0x98, 0x5c, 0x05, 0xd3, 0x21, 0xda, 0x81, 0x8d, 0xb7, 0x74, 0x5a, 0x30, 0xf2, 0x1f, 0xfa, 0xcf, 0x60, 0xb3, 0x11, 0x0c, 0x06, 0xa4, 0x17, 0x7b, 0x81, 0xdf, 0x76, 0x86, 0x04, 0xfd, 0x18, 0xb6, 0x7a, 0x53, 0x8a, 0xed, 0x3b, 0x43, 0x22, 0xa4, 0x6c, 0xf6, 0x32, 0x0b, 0xf5, 0x01, 0xa0, 0x2c, 0x6b, 0xcb, 0x8b, 0x62, 0xf4, 0x13, 0x28, 0x46, 0x4c, 0x43, 0xc6, 0xa5, 0xee, 0x5d, 0xcb, 0xe8, 0xc4, 0x95, 0xc7, 0x62, 0x09, 0xfa, 0x00, 0xb4, 0xb9, 0xbd, 0xa2, 0xdd, 0xfc, 0x7d, 0xf9, 0x81, 0x82, 0xb7, 0xb2, 0x9b, 0x45, 0x7a, 0x17, 0x94, 0x7d, 0x8f, 0x0c, 0xdc, 0xb5, 0x30, 0xa2, 0xbb, 0x00, 0xaf, 0x29, 0x17, 0x5f, 0xc3, 0x35, 0x57, 0x5e, 0x27, 0x72, 0xf4, 0xbf, 0x4b, 0x50, 0x3a, 0x72, 0x46, 0x23, 0xcf, 0xef, 0xaf, 0x07, 0x7c, 0x01, 0x80, 0xfc, 0x42, 0x00, 0x54, 0x6a, 0xef, 0x0d, 0x19, 0x3a, 0xbb, 0xf2, 0x22, 0xa9, 0x6c, 0x0a, 0x8b, 0x25, 0xe8, 0x53, 0xa8, 0x90, 0x77, 0x71, 0xe8, 0xd8, 0x23, 0x27, 0x74, 0x86, 0xd1, 0x6e, 0xe1, 0xbe, 0xfc, 0x40, 0xdd, 0xbb, 0x95, 0x61, 0x49, 0x7b, 0x19, 0xab, 0x6c, 0xf9, 0x31, 0x5b, 0xad, 0x47, 0xa0, 0x0a, 0x5d, 0xd6, 0x77, 0xc4, 0x13, 0xa8, 0x0c, 0x39, 0xaf, 0x3d, 0xf0, 0xa2, 0x98, 0x39, 0x41, 0xdd, 0xdb, 0xc9, 0xb0, 0x08, 0xe1, 0x58, 0x1d, 0xce, 0x76, 0xd1, 0x9f, 0xc3, 0xe6, 0xb1, 0x13, 0xc6, 0x1e, 0x55, 0x98, 0xe1, 0x58, 0xdd, 0x37, 0x1a, 0xc8, 0xb1, 0xd3, 0x17, 0x76, 0xa3, 0x43, 0x7d, 0x00, 0xd5, 0xa9, 0xb0, 0xf5, 0x75, 0x78, 0x04, 0xd7, 0x46, 0x09, 0xb7, 0x1d, 0x3b, 0x7d, 0xdb, 0x09, 0x43, 0x67, 0x22, 0xe2, 0x69, 0x7b, 0x3a, 0x65, 0x39, 0xfd, 0x1a, 0x9d, 0xd0, 0x5f, 0xc0, 0xd6, 0x4b, 0xd2, 0x8b, 0x83, 0x10, 0x07, 0x67, 0x98, 0xf4, 0x82, 0xd0, 0x65, 0xe1, 0x32, 0x08, 0x9c, 0xd8, 0x76, 0x9d, 0xd8, 0xd9, 0x95, 0xee, 0xcb, 0x0f, 0xf2, 0x58, 0x61, 0x94, 0xa6, 0x13, 0x3b, 0xe8, 0x1e, 0xa8, 0xa7, 0x9e, 0xef, 0x84, 0x13, 0x3e, 0x4f, 0x91, 0x57, 0x30, 0x70, 0x12, 0x5d, 0xa0, 0xff, 0x1a, 0x14, 0xc3, 0x8f, 0xbd, 0x78, 0x62, 0xba, 0xd1, 0x7a, 0xe0, 0x7f, 0x04, 0x5b, 0x84, 0x71, 0xda, 0x9e, 0x9b, 0x02, 0x2e, 0xe3, 0x2a, 0x11, 0x02, 0x39, 0xe8, 0x7d, 0xa8, 0x08, 0xd0, 0x1c, 0xf1, 0x63, 0x28, 0x85, 0x6c, 0x14, 0x31, 0xb8, 0xea, 0xde, 0x7b, 0x99, 0x5d, 0xe6, 0x14, 0xc4, 0xc9, 0x62, 0xfd, 0x1b, 0x50, 0xf9, 0x1c, 0x77, 0x1a, 0x82, 0xc2, 0x6f, 0x68, 0x51, 0xe1, 0x9e, 0x62, 0x63, 0xf4, 0x14, 0x20, 0x0c, 0xce, 0x6c, 0xce, 0xc1, 0x94, 0x9d, 0x8f, 0xc5, 0x34, 0x12, 0xac, 0x84, 0xc9, 0x2e, 0x7a, 0x5f, 0xe4, 0xea, 0x11, 0x89, 0x9d, 0xb9, 0x14, 0x94, 0xe6, 0x52, 0x10, 0x7d, 0x00, 0x85, 0x78, 0x32, 0xe2, 0xe9, 0xb3, 0xb9, 0x77, 0x3d, 0x23, 0x9f, 0xda, 0xd4, 0x9a, 0x8c, 0x08, 0x66, 0x4b, 0x68, 0xc0, 0xb8, 0xde, 0x90, 0x25, 0x92, 0x8c, 0xe9, 0x50, 0xaf, 0x41, 0x91, 0xa7, 0x10, 0x7a, 0x02, 0x2a, 0xdf, 0x65, 0x48, 0x62, 0x27, 0xb1, 0x45, 0xb6, 0x9e, 0x4e, 0x21, 0x61, 0x0e, 0x88, 0x0e, 0x23, 0xfd, 0x2e, 0x94, 0x70, 0x70, 0xc6, 0xdc, 0x8b, 0xa0, 0x70, 0x3a, 0x08, 0x4e, 0x19, 0xc6, 0x0a, 0x66, 0x63, 0xfd, 0x2f, 0x79, 0x50, 0x4d, 0x3f, 0x22, 0x61, 0xbc, 0x66, 0x74, 0xcf, 0x12, 0x3f, 0x7f, 0x79, 0xe2, 0x7f, 0x04, 0xd4, 0x7a, 0x11, 0x0f, 0x2b, 0x79, 0x41, 0xee, 0x09, 0x88, 0xb8, 0x4c, 0x97, 0x31, 0xb0, 0x0b, 0x02, 0xa6, 0xb0, 0x20, 0x60, 0xd0, 0xff, 0x43, 0x35, 0x93, 0x15, 0xbb, 0x1b, 0x0c, 0x6e, 0x25, 0x9d, 0x0f, 0xe7, 0x0a, 0x4f, 0x71, 0xad, 0xc2, 0xf3, 0x2f, 0x09, 0xd4, 0x2e, 0x71, 0xc2, 0xde, 0x9b, 0x35, 0x6d, 0xf4, 0x0c, 0x2a, 0x6f, 0x59, 0x08, 0xf1, 0x7d, 0x45, 0xd5, 0xd9, 0x5d, 0x10, 0x63, 0x4c, 0x30, 0x56, 0xdf, 0xa6, 0x42, 0x96, 0x46, 0x43, 0x34, 0x60, 0xd1, 0xa0, 0x60, 0x3a, 0x3c, 0xaf, 0x6a, 0x81, 0xa5, 0xfe, 0xc5, 0xaa, 0x6e, 0xac, 0xa5, 0xea, 0x19, 0xec, 0x70, 0x4d, 0x4d, 0xbf, 0x4b, 0xfa, 0x43, 0xe2, 0x8b, 0xb0, 0xd0, 0xa1, 0xfa, 0xda, 0x1b, 0x90, 0x99, 0x2f, 0x24, 0xb6, 0xb5, 0x4a, 0x89, 0x89, 0x27, 0x9e, 0x41, 0x25, 0x62, 0xbc, 0x53, 0x6d, 0xa5, 0x73, 0xda, 0xa6, 0xcc, 0x88, 0xd5, 0x68, 0xf6, 0x43, 0xff, 0x93, 0x04, 0x65, 0x56, 0x5a, 0x3c, 0xb2, 0x66, 0x65, 0xd1, 0x40, 0xf6, 0xdc, 0x48, 0x54, 0x13, 0x3a, 0x44, 0x77, 0x40, 0x79, 0xeb, 0x0c, 0x3c, 0xd7, 0x0e, 0x83, 0x33, 0x16, 0x6d, 0x65, 0x5c, 0x66, 0x04, 0x1c, 0x9c, 0x65, 0x43, 0xb1, 0xb0, 0x4a, 0x28, 0xea, 0xff, 0x96, 0x40, 0x7d, 0x31, 0x26, 0xe1, 0x04, 0x93, 0x68, 0x3c, 0x58, 0xb3, 0x6a, 0x7f, 0x04, 0x65, 0x22, 0xf4, 0x12, 0x16, 0xc9, 0xd6, 0x80, 0x44, 0x69, 0x3c, 0x5d, 0x86, 0x6e, 0x42, 0x89, 0x16, 0x26, 0x7f, 0x9c, 0xd4, 0x82, 0x62, 0x18, 0x9c, 0xb5, 0xc7, 0x43, 0xda, 0x1c, 0x45, 0xbd, 0x20, 0x24, 0xfc, 0xe4, 0xcc, 0x63, 0xf1, 0x0b, 0xbd, 0x07, 0x8a, 0xeb, 0x45, 0xb1, 0xe3, 0xf7, 0x08, 0x77, 0x78, 0x1e, 0xcf, 0x08, 0x57, 0x0c, 0xfe, 0x5f, 0x81, 0xda, 0x8d, 0x43, 0x7a, 0x2e, 0x92, 0xd1, 0x60, 0xb2, 0x9e, 0xee, 0xef, 0x43, 0x25, 0x62, 0xbc, 0x76, 0x48, 0x99, 0xc5, 0x51, 0xa8, 0x46, 0x33, 0x79, 0xfa, 0x2b, 0x50, 0xea, 0x41, 0x30, 0xf8, 0x01, 0xc2, 0xef, 0x02, 0x9c, 0x06, 0xc1, 0x20, 0x25, 0xba, 0x8c, 0x95, 0xd3, 0x44, 0x96, 0x1e, 0xa5, 0xbb, 0x37, 0x1c, 0x9c, 0x35, 0x82, 0xb1, 0xbf, 0xa6, 0xeb, 0x3e, 0x84, 0x9d, 0x54, 0x9e, 0x53, 0x97, 0xf4, 0xa8, 0x10, 0xb6, 0x97, 0x8c, 0x51, 0xef, 0x9c, 0x78, 0xfd, 0x0e, 0x94, 0x1a, 0xc1, 0x70, 0xe8, 0xf8, 0x2e, 0x0d, 0xcb, 0xde, 0xd0, 0x4d, 0x1a, 0xd4, 0xde, 0xd0, 0xd5, 0xff, 0x21, 0x01, 0x98, 0xbe, 0x4b, 0xde, 0xf1, 0x94, 0xfa, 0xdf, 0xf4, 0x63, 0xd9, 0xd3, 0x48, 0x9e, 0x3f, 0x8d, 0xee, 0x02, 0x78, 0x14, 0x02, 0x9f, 0x2e, 0xf0, 0x69, 0x46, 0x61, 0xd3, 0x57, 0x2b, 0x1e, 0x5f, 0x00, 0xec, 0x0f, 0xc6, 0x91, 0xa8, 0x92, 0x7b, 0x70, 0x7d, 0x0e, 0x72, 0xa6, 0x74, 0x5c, 0xcb, 0x02, 0xe7, 0xa7, 0xff, 0x09, 0x54, 0x1a, 0xc1, 0x70, 0xe4, 0xf4, 0xd6, 0x3d, 0x8d, 0xde, 0x03, 0x25, 0x7e, 0x13, 0x92, 0xe8, 0x4d, 0x30, 0xe0, 0x47, 0xb9, 0x84, 0x67, 0x04, 0xfd, 0x04, 0xb6, 0x9a, 0x64, 0x40, 0x62, 0x52, 0x9f, 0x98, 0xcd, 0x35, 0x25, 0xdf, 0x82, 0xf2, 0x5c, 0xc7, 0x52, 0xf2, 0x44, 0xaf, 0xf2, 0x75, 0xfa, 0x6e, 0x61, 0xfa, 0xaf, 0x83, 0xf5, 0x7c, 0x7a, 0x07, 0x14, 0xda, 0x87, 0xd8, 0x9e, 0xff, 0x3a, 0x10, 0xde, 0x2c, 0x53, 0x02, 0x95, 0xa4, 0x7f, 0x03, 0xdb, 0x07, 0x24, 0x16, 0xcd, 0x56, 0x33, 0x5a, 0x13, 0xf4, 0x5d, 0x80, 0x88, 0x97, 0x6f, 0xdb, 0x73, 0x45, 0xbc, 0x2a, 0x82, 0x62, 0xba, 0xfa, 0x18, 0x36, 0x93, 0x36, 0x8e, 0x1f, 0xa6, 0xff, 0x0d, 0x73, 0xd0, 0xee, 0x71, 0x16, 0x7a, 0x11, 0x2b, 0xbc, 0x8a, 0x68, 0x45, 0xf8, 0x15, 0xe7, 0x43, 0xd0, 0xf8, 0x69, 0xc7, 0x3a, 0x15, 0xae, 0x12, 0x2b, 0x5d, 0x43, 0xe2, 0x47, 0x9e, 0xe8, 0xce, 0x64, 0x3c, 0x23, 0xe8, 0x7f, 0x90, 0x44, 0xa7, 0x45, 0xbb, 0x24, 0xf4, 0x09, 0x28, 0xb4, 0x6a, 0xdb, 0xac, 0x9f, 0x92, 0x2e, 0xe8, 0xa7, 0x0e, 0x73, 0xb8, 0xec, 0x8a, 0x31, 0xaa, 0x9f, 0x3b, 0x84, 0xa9, 0x67, 0xee, 0x2e, 0x38, 0x84, 0x67, 0xb0, 0x0e, 0x73, 0x99, 0xb3, 0xb8, 0x5e, 0x12, 0x77, 0x4b, 0xfd, 0x3b, 0x09, 0x20, 0x85, 0x7e, 0x13, 0xf2, 0x1e, 0xcf, 0xf1, 0x02, 0xce, 0x7b, 0x2e, 0xed, 0xb0, 0x52, 0xb9, 0xc9, 0xc6, 0xd3, 0x06, 0x50, 0xbe, 0xbc, 0x01, 0xfc, 0x14, 0x2a, 0x3c, 0x3b, 0x57, 0xbe, 0x1f, 0x79, 0xd3, 0x7a, 0x12, 0x5d, 0x31, 0x79, 0x0f, 0x60, 0x3b, 0x65, 0x05, 0xd1, 0x7d, 0xef, 0x25, 0x77, 0xea, 0x55, 0x7a, 0x6f, 0x61, 0xa2, 0xef, 0x25, 0x50, 0x2c, 0x12, 0x0e, 0xd9, 0x89, 0x79, 0x59, 0x77, 0x7c, 0x07, 0x14, 0xcf, 0x8f, 0xed, 0xe4, 0xe2, 0x4e, 0xe3, 0xa9, 0xec, 0xf9, 0x31, 0xc3, 0x48, 0x8f, 0x0f, 0x37, 0x18, 0x9f, 0x0e, 0x88, 0x98, 0xa7, 0x11, 0x25, 0x61, 0x95, 0xd3, 0xf8, 0x12, 0x7e, 0xd4, 0x8f, 0x09, 0x3b, 0x2c, 0x0b, 0x2c, 0x7c, 0xca, 0x8c, 0x40, 0x8f, 0xcb, 0x1d, 0xd8, 0x38, 0x0d, 0x82, 0x28, 0x66, 0x2d, 0x61, 0x1e, 0xf3, 0x1f, 0x57, 0x3c, 0x0e, 0x1d, 0x50, 0x59, 0x85, 0x0a, 0x89, 0xf1, 0x6e, 0x14, 0xa2, 0xa7, 0x50, 0x0e, 0x46, 0x24, 0x74, 0xe2, 0x20, 0x14, 0x11, 0x99, 0xb5, 0x91, 0x58, 0xdb, 0x11, 0x6b, 0xf0, 0x74, 0x35, 0xda, 0x85, 0x12, 0x1b, 0xfb, 0xae, 0x88, 0x96, 0xe4, 0xa7, 0xfe, 0x37, 0x09, 0x00, 0x3b, 0x7e, 0x9f, 0xac, 0x64, 0xc1, 0xbd, 0xb4, 0x9c, 0xf3, 0xed, 0x65, 0x0a, 0xec, 0x74, 0x87, 0x99, 0x61, 0xe4, 0x8b, 0x0c, 0xb3, 0xde, 0xed, 0xfc, 0x3b, 0x29, 0xb9, 0x71, 0xad, 0x04, 0xfb, 0x1e, 0xa8, 0xbf, 0xa5, 0xeb, 0x6c, 0x0e, 0x24, 0xcf, 0x80, 0x00, 0x23, 0xd5, 0x19, 0x9a, 0xd4, 0xc5, 0x4f, 0x5e, 0xe3, 0xe2, 0x47, 0x53, 0x30, 0x0e, 0x46, 0xdf, 0x8a, 0x60, 0x60, 0xe3, 0x2b, 0x66, 0xc6, 0x3b, 0xa8, 0xd0, 0x16, 0x85, 0x38, 0x3e, 0xd7, 0xec, 0x01, 0x6c, 0x04, 0xbd, 0xde, 0x38, 0x71, 0x38, 0xca, 0x88, 0xe9, 0xd0, 0x19, 0xcc, 0x17, 0xa0, 0xcf, 0xa1, 0xda, 0x27, 0x3e, 0x09, 0x9d, 0x81, 0xcd, 0x34, 0x13, 0x1e, 0xca, 0x6e, 0x7c, 0xc0, 0x57, 0xf0, 0x06, 0xb3, 0xd2, 0x4f, 0xfd, 0xd2, 0x7f, 0x9f, 0x87, 0x4a, 0x7a, 0x1a, 0x7d, 0x01, 0xd5, 0x53, 0x0e, 0x45, 0x08, 0x94, 0x16, 0xdc, 0x5a, 0xd3, 0x60, 0x0f, 0x73, 0xb8, 0x72, 0x9a, 0x06, 0xff, 0x04, 0x20, 0x26, 0xe1, 0x70, 0x8a, 0x47, 0x3a, 0x77, 0x8d, 0x9c, 0xe6, 0xee, 0x61, 0x0e, 0x2b, 0xf1, 0x34, 0x91, 0x7f, 0x0e, 0x6a, 0x48, 0x83, 0x52, 0x70, 0xf2, 0xd7, 0x9e, 0x9b, 0xd9, 0xce, 0x79, 0x1a, 0xb4, 0x87, 0x39, 0x0c, 0xe1, 0x2c, 0x84, 0x3f, 0x9b, 0x96, 0x60, 0xce, 0x5c, 0x58, 0x70, 0x33, 0x48, 0xc5, 0xce, 0xac, 0xfa, 0xb2, 0x9f, 0xb4, 0xfa, 0x32, 0x3e, 0xfd, 0x9f, 0x12, 0x54, 0x53, 0x37, 0x88, 0xe3, 0xfa, 0xea, 0xe7, 0xd6, 0x9a, 0x8f, 0x27, 0xe7, 0x5d, 0x27, 0x2f, 0xb0, 0xf4, 0x72, 0xd7, 0x5d, 0x31, 0x99, 0x7e, 0x27, 0xc3, 0x36, 0xbf, 0x95, 0x77, 0x42, 0xde, 0xb9, 0x1c, 0x45, 0xfd, 0xd5, 0x95, 0xcd, 0xdc, 0x71, 0xb8, 0x8f, 0x2f, 0xbb, 0x6e, 0x6b, 0x20, 0x8f, 0x3d, 0x37, 0x79, 0x7b, 0x18, 0x7b, 0xee, 0xa2, 0xdb, 0xe6, 0xf9, 0x8b, 0x35, 0xed, 0xbb, 0xbc, 0x21, 0x89, 0x62, 0x67, 0x38, 0x62, 0x65, 0xb6, 0x80, 0x67, 0x84, 0xb9, 0x36, 0xa4, 0x38, 0xd7, 0x86, 0xd0, 0xe9, 0xde, 0x1b, 0xc7, 0xf7, 0xc9, 0x80, 0x4e, 0x97, 0xf8, 0xb4, 0xa0, 0x98, 0x14, 0x40, 0x3e, 0x18, 0xed, 0x96, 0x59, 0x92, 0x65, 0x1b, 0xa9, 0xce, 0x88, 0x1d, 0x9a, 0xf9, 0x60, 0x44, 0x0f, 0x80, 0xde, 0xc0, 0x13, 0x3b, 0x28, 0xfc, 0x00, 0xe0, 0x04, 0xd3, 0x3d, 0xe7, 0x04, 0x58, 0xcb, 0x09, 0x7f, 0xce, 0x83, 0xc2, 0xa3, 0x6d, 0x2d, 0xe3, 0xa7, 0x0a, 0x17, 0x37, 0xfd, 0x8a, 0x85, 0xeb, 0x9c, 0xbd, 0xe5, 0x05, 0xf6, 0x16, 0x6e, 0x2a, 0xcc, 0xdc, 0x74, 0xb1, 0x07, 0x32, 0xe6, 0x29, 0x5e, 0x62, 0x9e, 0xd2, 0x9a, 0x65, 0x51, 0xb5, 0xbc, 0x21, 0xe9, 0x4e, 0xfc, 0x1e, 0xb5, 0xcf, 0x4d, 0x28, 0x8d, 0x08, 0x09, 0x6d, 0xd3, 0x15, 0x6d, 0x5c, 0x91, 0xfe, 0x34, 0x19, 0x40, 0x6b, 0x0a, 0x30, 0xcf, 0x01, 0x4e, 0x09, 0x68, 0x0f, 0x94, 0x68, 0xe2, 0xf7, 0xec, 0xa5, 0x2d, 0x12, 0x95, 0xcf, 0xbc, 0x5d, 0x8e, 0xc4, 0x48, 0xff, 0x06, 0xe0, 0x39, 0x99, 0xec, 0x75, 0x49, 0x9f, 0x6e, 0x2c, 0x4c, 0x22, 0x2d, 0x31, 0x49, 0xfe, 0xe2, 0xa0, 0x94, 0x59, 0xcf, 0x31, 0x0b, 0xca, 0x87, 0x7f, 0x2d, 0x80, 0x32, 0xfd, 0x32, 0x81, 0x54, 0x28, 0x75, 0x4f, 0x1a, 0x0d, 0xa3, 0xdb, 0xd5, 0x72, 0x68, 0x07, 0xb4, 0x93, 0xb6, 0xf1, 0xe5, 0xb1, 0xd1, 0xb0, 0x8c, 0xa6, 0x6d, 0x60, 0xdc, 0xc1, 0x9a, 0x84, 0x10, 0x6c, 0x36, 0x3a, 0xed, 0xb6, 0xd1, 0xb0, 0xec, 0xfd, 0x9a, 0xd9, 0x32, 0x9a, 0x5a, 0x1e, 0x5d, 0x87, 0xed, 0x63, 0x03, 0x1f, 0x99, 0xdd, 0xae, 0xd9, 0x69, 0xdb, 0x4d, 0xa3, 0x6d, 0x1a, 0x4d, 0x4d, 0x46, 0xb7, 0xe0, 0x7a, 0xa3, 0xd3, 0x6a, 0x19, 0x0d, 0x8b, 0x92, 0xdb, 0x1d, 0xcb, 0x36, 0xbe, 0x34, 0xbb, 0x56, 0x57, 0x2b, 0x50, 0xd9, 0x66, 0xab, 0x65, 0x1c, 0xd4, 0x5a, 0x76, 0x0d, 0x1f, 0x9c, 0x1c, 0x19, 0x6d, 0x4b, 0xdb, 0xa0, 0x72, 0x12, 0x6a, 0xd3, 0x3c, 0x32, 0xda, 0x54, 0x9c, 0x56, 0x42, 0x37, 0x00, 0x25, 0x64, 0xb3, 0xdd, 0x34, 0xbe, 0xb4, 0xad, 0xaf, 0x8e, 0x0d, 0xad, 0x8c, 0xee, 0xc0, 0xcd, 0x84, 0x9e, 0xde, 0xa7, 0x76, 0x64, 0x68, 0x0a, 0xd2, 0xa0, 0x92, 0x4c, 0x5a, 0x9d, 0xe3, 0xe7, 0x1a, 0xa4, 0xa5, 0xe3, 0xce, 0x2b, 0x6c, 0x34, 0x3a, 0xb8, 0xa9, 0xa9, 0x69, 0xf2, 0x4b, 0xa3, 0x61, 0x75, 0xb0, 0x6d, 0x36, 0xb5, 0x0a, 0x05, 0x9f, 0x90, 0xbb, 0x46, 0x0d, 0x37, 0x0e, 0x6d, 0x6c, 0x74, 0x4f, 0x5a, 0x96, 0x56, 0xa5, 0x26, 0xd8, 0x37, 0x5b, 0x06, 0xd3, 0x68, 0xbf, 0x73, 0xd2, 0x6e, 0x6a, 0x9b, 0x68, 0x0b, 0xd4, 0x23, 0xc3, 0xaa, 0x25, 0x36, 0xd9, 0xa2, 0xfb, 0x37, 0x6a, 0x8d, 0x43, 0x23, 0xa1, 0x68, 0x68, 0x17, 0x76, 0x1a, 0xb5, 0x36, 0x65, 0x6a, 0x60, 0xa3, 0x66, 0x19, 0xf6, 0x7e, 0xa7, 0xd5, 0x34, 0xb0, 0xb6, 0x4d, 0x15, 0x9c, 0x9b, 0x31, 0x5b, 0x86, 0x86, 0x52, 0x1c, 0x4d, 0xa3, 0x65, 0xcc, 0x38, 0xae, 0xa5, 0x38, 0x92, 0x19, 0xca, 0xb1, 0x43, 0x95, 0xa9, 0x9f, 0x98, 0xad, 0xa6, 0x30, 0x14, 0x77, 0xda, 0x75, 0xb4, 0x0d, 0xd5, 0x44, 0x99, 0x76, 0xcb, 0xec, 0x5a, 0xda, 0x0d, 0x74, 0x13, 0xae, 0x25, 0xa4, 0x23, 0xc3, 0xc2, 0x66, 0x83, 0x5b, 0xf5, 0x26, 0x5d, 0xdb, 0x39, 0xb1, 0xec, 0xce, 0xbe, 0x7d, 0x64, 0x1c, 0x75, 0xf0, 0x57, 0xda, 0xee, 0xc3, 0x3f, 0x4a, 0x50, 0x4e, 0x7a, 0x77, 0x54, 0x86, 0x42, 0xbb, 0xd3, 0x36, 0xb4, 0x1c, 0x1d, 0xd5, 0x3b, 0x9d, 0x96, 0x26, 0xd1, 0x91, 0xd9, 0xb6, 0x9e, 0x6a, 0x79, 0xa4, 0xc0, 0x86, 0xd9, 0xb6, 0x3e, 0x7a, 0xac, 0xc9, 0x62, 0xf8, 0xf1, 0x9e, 0x56, 0x10, 0xc3, 0xc7, 0x9f, 0x68, 0x1b, 0x74, 0xb8, 0xdf, 0xea, 0xd4, 0x2c, 0x0d, 0x10, 0x40, 0xb1, 0xd9, 0x39, 0xa9, 0xb7, 0x0c, 0x4d, 0xa5, 0xe3, 0xae, 0x85, 0xcd, 0xf6, 0x81, 0xb6, 0x43, 0x11, 0x08, 0x4f, 0xd4, 0xcd, 0x76, 0x0d, 0x7f, 0xa5, 0xb9, 0xd4, 0x9a, 0x82, 0xc4, 0x99, 0xc9, 0xc3, 0x06, 0x6c, 0xcd, 0x75, 0x9b, 0xa8, 0x08, 0xf9, 0x96, 0xa5, 0xe5, 0x50, 0x09, 0xe4, 0x96, 0x65, 0x68, 0x12, 0x25, 0x18, 0x2f, 0xb4, 0x3c, 0xfd, 0x7b, 0x60, 0x69, 0x32, 0x9d, 0x38, 0xb0, 0x0c, 0xad, 0x40, 0x09, 0x6d, 0x43, 0xdb, 0x78, 0xf8, 0x14, 0x36, 0x58, 0x07, 0x43, 0x03, 0xdf, 0x6c, 0xbf, 0xac, 0xb5, 0xcc, 0x26, 0xd7, 0xeb, 0xe8, 0xa4, 0x6b, 0x69, 0x12, 0x43, 0x75, 0xd8, 0x39, 0x69, 0xd1, 0x20, 0xaf, 0x40, 0x99, 0x52, 0xa9, 0xd7, 0x35, 0xf9, 0xe1, 0x7d, 0x28, 0xf2, 0xb2, 0x4c, 0xd7, 0x98, 0xed, 0xae, 0x81, 0xe9, 0xce, 0x54, 0x23, 0xe6, 0x0f, 0x4d, 0x7a, 0x78, 0x0f, 0xca, 0x49, 0x32, 0x53, 0x89, 0xd8, 0xa8, 0x51, 0xd9, 0x0a, 0x6c, 0xbc, 0xc2, 0x26, 0x5d, 0xb0, 0xf7, 0x7d, 0x15, 0xaa, 0x47, 0x2c, 0xf5, 0xbb, 0x24, 0x7c, 0xeb, 0xf5, 0x08, 0xfa, 0x05, 0x68, 0x8d, 0x90, 0x38, 0x31, 0x99, 0xdd, 0xb3, 0xd1, 0xc2, 0x8f, 0x36, 0xb7, 0x17, 0xdd, 0xb4, 0xf5, 0x1c, 0xda, 0x87, 0xea, 0xa1, 0x13, 0xa5, 0xb8, 0xef, 0xcc, 0x75, 0xc7, 0xe9, 0xd2, 0x7d, 0xfb, 0xc6, 0xb9, 0x3e, 0x8a, 0xbf, 0x25, 0xe5, 0x90, 0x09, 0xa8, 0x49, 0xa2, 0x5e, 0xe8, 0x9d, 0x92, 0x55, 0x85, 0x2d, 0xc4, 0xa9, 0xe7, 0xd0, 0x0b, 0xea, 0xa7, 0xb1, 0x1f, 0xaf, 0x2a, 0xe7, 0xde, 0x92, 0xc9, 0xe9, 0xa3, 0x53, 0x0e, 0xfd, 0x12, 0xb6, 0xba, 0x6f, 0xe8, 0xcf, 0x64, 0x2e, 0x9a, 0xb3, 0x92, 0x78, 0x94, 0x5a, 0x2a, 0x2b, 0xf9, 0xba, 0xa9, 0xe7, 0xd0, 0x31, 0xa0, 0xac, 0x2c, 0xf6, 0xb0, 0x71, 0x21, 0xc2, 0x65, 0x93, 0xec, 0x21, 0x23, 0x87, 0x9a, 0xb0, 0xd9, 0x0c, 0x83, 0xd1, 0xaa, 0xfa, 0x2e, 0xf1, 0xe4, 0x67, 0xa0, 0xf2, 0x50, 0x60, 0x4f, 0x68, 0x28, 0xdb, 0x79, 0xce, 0x9e, 0xd5, 0x96, 0xb1, 0x37, 0xa0, 0x9a, 0x38, 0xf0, 0x12, 0x01, 0xcb, 0x26, 0xf4, 0x1c, 0x7a, 0x06, 0x0a, 0xd5, 0xe4, 0x87, 0x21, 0x30, 0x60, 0x8b, 0x2b, 0x30, 0xfd, 0x04, 0x38, 0x67, 0x87, 0xec, 0x77, 0xc6, 0xe5, 0x62, 0x2a, 0x87, 0x4e, 0xb4, 0xa2, 0x8c, 0xe5, 0x01, 0xfd, 0x1c, 0x36, 0xa9, 0x9b, 0xa7, 0xeb, 0xa3, 0x8b, 0x9d, 0x72, 0x7b, 0xf1, 0x2e, 0x22, 0x66, 0xa8, 0x71, 0xc3, 0x60, 0x74, 0x35, 0xc5, 0x3e, 0x85, 0x22, 0x6f, 0x79, 0xd1, 0xee, 0x9c, 0x65, 0xa7, 0x5f, 0xa7, 0xe6, 0xf4, 0x99, 0x7e, 0x8a, 0x64, 0x66, 0xa9, 0x4e, 0xdf, 0xcb, 0xea, 0x13, 0xb3, 0x39, 0x07, 0x21, 0xfb, 0xdc, 0x75, 0x7b, 0xf1, 0x13, 0xbc, 0x9e, 0x43, 0x87, 0xf4, 0xc2, 0x35, 0x7b, 0x76, 0x43, 0xff, 0x37, 0xd7, 0xef, 0xcf, 0xbd, 0xc8, 0x5d, 0x00, 0xe8, 0x73, 0x28, 0xf2, 0xe6, 0x11, 0x2d, 0xfd, 0x02, 0x72, 0x3b, 0x3b, 0x93, 0xfa, 0xc4, 0xc0, 0xf2, 0x70, 0x6b, 0xee, 0x4b, 0x0c, 0x7a, 0x7f, 0x81, 0xa0, 0xec, 0x77, 0x9a, 0x0b, 0x25, 0x3e, 0x01, 0xb9, 0x31, 0x74, 0x97, 0x54, 0x86, 0x39, 0x90, 0xa9, 0x17, 0xfa, 0x1c, 0xaa, 0x01, 0xcc, 0x9e, 0x4f, 0x51, 0xb6, 0x9d, 0x9d, 0x7b, 0x57, 0x5d, 0xe6, 0xdc, 0x03, 0xd8, 0x3e, 0x0e, 0xc9, 0x20, 0x70, 0xdc, 0x2b, 0x96, 0x81, 0x27, 0xb0, 0xc1, 0xde, 0x98, 0xe7, 0xd2, 0x6f, 0xf6, 0xee, 0xbc, 0x8c, 0xf1, 0x19, 0x7b, 0x9a, 0x1f, 0x39, 0xbd, 0x18, 0xdd, 0x3a, 0xff, 0x42, 0x22, 0x1e, 0x9c, 0x97, 0x31, 0xd7, 0xa1, 0x2c, 0xfc, 0x56, 0x47, 0xb7, 0x97, 0xb9, 0xf3, 0xb8, 0x7e, 0x91, 0xf9, 0xeb, 0xa5, 0xaf, 0x37, 0x86, 0x51, 0x7f, 0x74, 0x7a, 0x5a, 0x64, 0xff, 0x37, 0xf3, 0xf1, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x74, 0x17, 0x4d, 0x48, 0x23, 0x00, 0x00, }