query base on timeline (#5279)

query base on timeline, add timestamp on these queries:
- ShowCollections
- HasCollection
- DescribeCollection

Resolves: #5219

Signed-off-by: yefu.chen <yefu.chen@zilliz.com>
pull/5282/head
neza2017 2021-05-18 17:12:17 +08:00 committed by GitHub
parent c3ac1375d8
commit d68ee3fbc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 842 additions and 424 deletions

View File

@ -1036,6 +1036,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::HasCollectionRequest, base_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::HasCollectionRequest, db_name_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::HasCollectionRequest, collection_name_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::HasCollectionRequest, time_stamp_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::BoolResponse, _internal_metadata_),
~0u, // no _extensions_
@ -1059,6 +1060,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionRequest, db_name_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionRequest, collection_name_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionRequest, collectionid_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionRequest, time_stamp_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::DescribeCollectionResponse, _internal_metadata_),
~0u, // no _extensions_
@ -1107,6 +1109,7 @@ const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_milvus_2eproto::offsets[] PROT
~0u, // no _weak_field_map_
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::ShowCollectionsRequest, base_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::ShowCollectionsRequest, db_name_),
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::ShowCollectionsRequest, time_stamp_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::milvus::proto::milvus::ShowCollectionsResponse, _internal_metadata_),
~0u, // no _extensions_
@ -1447,54 +1450,54 @@ static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOB
{ 0, -1, sizeof(::milvus::proto::milvus::CreateCollectionRequest)},
{ 10, -1, sizeof(::milvus::proto::milvus::DropCollectionRequest)},
{ 18, -1, sizeof(::milvus::proto::milvus::HasCollectionRequest)},
{ 26, -1, sizeof(::milvus::proto::milvus::BoolResponse)},
{ 33, -1, sizeof(::milvus::proto::milvus::StringResponse)},
{ 40, -1, sizeof(::milvus::proto::milvus::DescribeCollectionRequest)},
{ 49, -1, sizeof(::milvus::proto::milvus::DescribeCollectionResponse)},
{ 59, -1, sizeof(::milvus::proto::milvus::LoadCollectionRequest)},
{ 67, -1, sizeof(::milvus::proto::milvus::ReleaseCollectionRequest)},
{ 75, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsRequest)},
{ 83, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsResponse)},
{ 90, -1, sizeof(::milvus::proto::milvus::ShowCollectionsRequest)},
{ 97, -1, sizeof(::milvus::proto::milvus::ShowCollectionsResponse)},
{ 104, -1, sizeof(::milvus::proto::milvus::CreatePartitionRequest)},
{ 113, -1, sizeof(::milvus::proto::milvus::DropPartitionRequest)},
{ 122, -1, sizeof(::milvus::proto::milvus::HasPartitionRequest)},
{ 131, -1, sizeof(::milvus::proto::milvus::LoadPartitionsRequest)},
{ 140, -1, sizeof(::milvus::proto::milvus::ReleasePartitionsRequest)},
{ 149, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsRequest)},
{ 158, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsResponse)},
{ 165, -1, sizeof(::milvus::proto::milvus::ShowPartitionsRequest)},
{ 174, -1, sizeof(::milvus::proto::milvus::ShowPartitionsResponse)},
{ 182, -1, sizeof(::milvus::proto::milvus::DescribeSegmentRequest)},
{ 190, -1, sizeof(::milvus::proto::milvus::DescribeSegmentResponse)},
{ 199, -1, sizeof(::milvus::proto::milvus::ShowSegmentsRequest)},
{ 207, -1, sizeof(::milvus::proto::milvus::ShowSegmentsResponse)},
{ 214, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)},
{ 224, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)},
{ 234, -1, sizeof(::milvus::proto::milvus::IndexDescription)},
{ 243, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)},
{ 250, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressRequest)},
{ 260, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressResponse)},
{ 268, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)},
{ 278, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)},
{ 285, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)},
{ 295, -1, sizeof(::milvus::proto::milvus::InsertRequest)},
{ 306, -1, sizeof(::milvus::proto::milvus::InsertResponse)},
{ 314, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
{ 322, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
{ 328, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
{ 341, -1, sizeof(::milvus::proto::milvus::Hits)},
{ 349, -1, sizeof(::milvus::proto::milvus::SearchResults)},
{ 356, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
{ 364, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
{ 378, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
{ 386, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
{ 393, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
{ 405, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
{ 413, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
{ 420, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
{ 425, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
{ 27, -1, sizeof(::milvus::proto::milvus::BoolResponse)},
{ 34, -1, sizeof(::milvus::proto::milvus::StringResponse)},
{ 41, -1, sizeof(::milvus::proto::milvus::DescribeCollectionRequest)},
{ 51, -1, sizeof(::milvus::proto::milvus::DescribeCollectionResponse)},
{ 61, -1, sizeof(::milvus::proto::milvus::LoadCollectionRequest)},
{ 69, -1, sizeof(::milvus::proto::milvus::ReleaseCollectionRequest)},
{ 77, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsRequest)},
{ 85, -1, sizeof(::milvus::proto::milvus::GetCollectionStatisticsResponse)},
{ 92, -1, sizeof(::milvus::proto::milvus::ShowCollectionsRequest)},
{ 100, -1, sizeof(::milvus::proto::milvus::ShowCollectionsResponse)},
{ 107, -1, sizeof(::milvus::proto::milvus::CreatePartitionRequest)},
{ 116, -1, sizeof(::milvus::proto::milvus::DropPartitionRequest)},
{ 125, -1, sizeof(::milvus::proto::milvus::HasPartitionRequest)},
{ 134, -1, sizeof(::milvus::proto::milvus::LoadPartitionsRequest)},
{ 143, -1, sizeof(::milvus::proto::milvus::ReleasePartitionsRequest)},
{ 152, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsRequest)},
{ 161, -1, sizeof(::milvus::proto::milvus::GetPartitionStatisticsResponse)},
{ 168, -1, sizeof(::milvus::proto::milvus::ShowPartitionsRequest)},
{ 177, -1, sizeof(::milvus::proto::milvus::ShowPartitionsResponse)},
{ 185, -1, sizeof(::milvus::proto::milvus::DescribeSegmentRequest)},
{ 193, -1, sizeof(::milvus::proto::milvus::DescribeSegmentResponse)},
{ 202, -1, sizeof(::milvus::proto::milvus::ShowSegmentsRequest)},
{ 210, -1, sizeof(::milvus::proto::milvus::ShowSegmentsResponse)},
{ 217, -1, sizeof(::milvus::proto::milvus::CreateIndexRequest)},
{ 227, -1, sizeof(::milvus::proto::milvus::DescribeIndexRequest)},
{ 237, -1, sizeof(::milvus::proto::milvus::IndexDescription)},
{ 246, -1, sizeof(::milvus::proto::milvus::DescribeIndexResponse)},
{ 253, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressRequest)},
{ 263, -1, sizeof(::milvus::proto::milvus::GetIndexBuildProgressResponse)},
{ 271, -1, sizeof(::milvus::proto::milvus::GetIndexStateRequest)},
{ 281, -1, sizeof(::milvus::proto::milvus::GetIndexStateResponse)},
{ 288, -1, sizeof(::milvus::proto::milvus::DropIndexRequest)},
{ 298, -1, sizeof(::milvus::proto::milvus::InsertRequest)},
{ 309, -1, sizeof(::milvus::proto::milvus::InsertResponse)},
{ 317, -1, sizeof(::milvus::proto::milvus::PlaceholderValue)},
{ 325, -1, sizeof(::milvus::proto::milvus::PlaceholderGroup)},
{ 331, -1, sizeof(::milvus::proto::milvus::SearchRequest)},
{ 344, -1, sizeof(::milvus::proto::milvus::Hits)},
{ 352, -1, sizeof(::milvus::proto::milvus::SearchResults)},
{ 359, -1, sizeof(::milvus::proto::milvus::FlushRequest)},
{ 367, -1, sizeof(::milvus::proto::milvus::PersistentSegmentInfo)},
{ 381, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoRequest)},
{ 389, -1, sizeof(::milvus::proto::milvus::GetPersistentSegmentInfoResponse)},
{ 396, -1, sizeof(::milvus::proto::milvus::QuerySegmentInfo)},
{ 408, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoRequest)},
{ 416, -1, sizeof(::milvus::proto::milvus::GetQuerySegmentInfoResponse)},
{ 423, -1, sizeof(::milvus::proto::milvus::RegisterLinkRequest)},
{ 428, -1, sizeof(::milvus::proto::milvus::RegisterLinkResponse)},
};
static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
@ -1560,237 +1563,238 @@ const char descriptor_table_protodef_milvus_2eproto[] PROTOBUF_SECTION_VARIABLE(
"rds_num\030\005 \001(\005\"m\n\025DropCollectionRequest\022*"
"\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBa"
"se\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003"
" \001(\t\"l\n\024HasCollectionRequest\022*\n\004base\030\001 \001"
"(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db_n"
"ame\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\"J\n\014Bo"
"olResponse\022+\n\006status\030\001 \001(\0132\033.milvus.prot"
"o.common.Status\022\r\n\005value\030\002 \001(\010\"L\n\016String"
"Response\022+\n\006status\030\001 \001(\0132\033.milvus.proto."
"common.Status\022\r\n\005value\030\002 \001(\t\"\207\001\n\031Describ"
"eCollectionRequest\022*\n\004base\030\001 \001(\0132\034.milvu"
"s.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022"
"\027\n\017collection_name\030\003 \001(\t\022\024\n\014collectionID"
"\030\004 \001(\003\"\325\001\n\032DescribeCollectionResponse\022+\n"
"\006status\030\001 \001(\0132\033.milvus.proto.common.Stat"
"us\0225\n\006schema\030\002 \001(\0132%.milvus.proto.schema"
".CollectionSchema\022\024\n\014collectionID\030\003 \001(\003\022"
"\035\n\025virtual_channel_names\030\004 \003(\t\022\036\n\026physic"
"al_channel_names\030\005 \003(\t\"m\n\025LoadCollection"
"Request\022*\n\004base\030\001 \001(\0132\034.milvus.proto.com"
"mon.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collecti"
"on_name\030\003 \001(\t\"p\n\030ReleaseCollectionReques"
"t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms"
"gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam"
"e\030\003 \001(\t\"v\n\036GetCollectionStatisticsReques"
"t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms"
"gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam"
"e\030\003 \001(\t\"\200\001\n\037GetCollectionStatisticsRespo"
"nse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.commo"
"n.Status\0220\n\005stats\030\002 \003(\0132!.milvus.proto.c"
"ommon.KeyValuePair\"U\n\026ShowCollectionsReq"
"uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common"
".MsgBase\022\017\n\007db_name\030\002 \001(\t\"`\n\027ShowCollect"
"ionsResponse\022+\n\006status\030\001 \001(\0132\033.milvus.pr"
"oto.common.Status\022\030\n\020collection_names\030\002 "
"\003(\t\"\206\001\n\026CreatePartitionRequest\022*\n\004base\030\001"
" \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db"
"_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016"
"partition_name\030\004 \001(\t\"\204\001\n\024DropPartitionRe"
"quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo"
"n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection"
"_name\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\203\001\n\023"
"HasPartitionRequest\022*\n\004base\030\001 \001(\0132\034.milv"
"us.proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t"
"\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016partition_n"
"ame\030\004 \001(\t\"\206\001\n\025LoadPartitionsRequest\022*\n\004b"
"ase\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022"
"\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001("
"\t\022\027\n\017partition_names\030\004 \003(\t\"\211\001\n\030ReleasePa"
"rtitionsRequest\022*\n\004base\030\001 \001(\0132\034.milvus.p"
"roto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017"
"collection_name\030\003 \001(\t\022\027\n\017partition_names"
"\030\004 \003(\t\"\215\001\n\035GetPartitionStatisticsRequest"
"\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg"
"Base\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name"
"\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\177\n\036GetPar"
"titionStatisticsResponse\022+\n\006status\030\001 \001(\013"
"2\033.milvus.proto.common.Status\0220\n\005stats\030\002"
" \003(\0132!.milvus.proto.common.KeyValuePair\""
"\203\001\n\025ShowPartitionsRequest\022*\n\004base\030\001 \001(\0132"
"\034.milvus.proto.common.MsgBase\022\017\n\007db_name"
"\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\024\n\014colle"
"ctionID\030\004 \001(\003\"t\n\026ShowPartitionsResponse\022"
"+\n\006status\030\001 \001(\0132\033.milvus.proto.common.St"
"atus\022\027\n\017partition_names\030\002 \003(\t\022\024\n\014partiti"
"onIDs\030\003 \003(\003\"m\n\026DescribeSegmentRequest\022*\n"
"\004base\030\001 \001(\0132\034.milvus.proto.common.MsgBas"
"e\022\024\n\014collectionID\030\002 \001(\003\022\021\n\tsegmentID\030\003 \001"
"(\003\"~\n\027DescribeSegmentResponse\022+\n\006status\030"
"\001 \001(\0132\033.milvus.proto.common.Status\022\017\n\007in"
"dexID\030\002 \001(\003\022\017\n\007buildID\030\003 \001(\003\022\024\n\014enable_i"
"ndex\030\004 \001(\010\"l\n\023ShowSegmentsRequest\022*\n\004bas"
"e\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\024\n"
"\014collectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003"
"\"W\n\024ShowSegmentsResponse\022+\n\006status\030\001 \001(\013"
"2\033.milvus.proto.common.Status\022\022\n\nsegment"
"IDs\030\002 \003(\003\"\267\001\n\022CreateIndexRequest\022*\n\004base"
"\030\001 \001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007"
"db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022"
"\n\nfield_name\030\004 \001(\t\0227\n\014extra_params\030\005 \003(\013"
"2!.milvus.proto.common.KeyValuePair\"\224\001\n\024"
"DescribeIndexRequest\022*\n\004base\030\001 \001(\0132\034.mil"
"vus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001("
"\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfield_name"
"\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"~\n\020IndexDescr"
"iption\022\022\n\nindex_name\030\001 \001(\t\022\017\n\007indexID\030\002 "
"\001(\003\0221\n\006params\030\003 \003(\0132!.milvus.proto.commo"
"n.KeyValuePair\022\022\n\nfield_name\030\004 \001(\t\"\207\001\n\025D"
"escribeIndexResponse\022+\n\006status\030\001 \001(\0132\033.m"
"ilvus.proto.common.Status\022A\n\022index_descr"
"iptions\030\002 \003(\0132%.milvus.proto.milvus.Inde"
"xDescription\"\234\001\n\034GetIndexBuildProgressRe"
"quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo"
"n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection"
"_name\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex"
"_name\030\005 \001(\t\"v\n\035GetIndexBuildProgressResp"
"onse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.comm"
"on.Status\022\024\n\014indexed_rows\030\002 \001(\003\022\022\n\ntotal"
"_rows\030\003 \001(\003\"\224\001\n\024GetIndexStateRequest\022*\n\004"
"base\030\001 \001(\0132\034.milvus.proto.common.MsgBase"
"\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001"
"(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001"
"(\t\"t\n\025GetIndexStateResponse\022+\n\006status\030\001 "
"\001(\0132\033.milvus.proto.common.Status\022.\n\005stat"
"e\030\002 \001(\0162\037.milvus.proto.common.IndexState"
"\"\220\001\n\020DropIndexRequest\022*\n\004base\030\001 \001(\0132\034.mi"
"lvus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001"
"(\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfield_nam"
"e\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"\275\001\n\rInsertRe"
"quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo"
"n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection"
"_name\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\022+\n\010r"
"ow_data\030\005 \003(\0132\031.milvus.proto.common.Blob"
"\022\021\n\thash_keys\030\006 \003(\r\"e\n\016InsertResponse\022+\n"
"\006status\030\001 \001(\0132\033.milvus.proto.common.Stat"
"us\022\023\n\013rowID_begin\030\002 \001(\003\022\021\n\trowID_end\030\003 \001"
"(\003\"c\n\020PlaceholderValue\022\013\n\003tag\030\001 \001(\t\0222\n\004t"
"ype\030\002 \001(\0162$.milvus.proto.milvus.Placehol"
"derType\022\016\n\006values\030\003 \003(\014\"O\n\020PlaceholderGr"
"oup\022;\n\014placeholders\030\001 \003(\0132%.milvus.proto"
".milvus.PlaceholderValue\"\220\002\n\rSearchReque"
" \001(\t\"\200\001\n\024HasCollectionRequest\022*\n\004base\030\001 "
"\001(\0132\034.milvus.proto.common.MsgBase\022\017\n\007db_"
"name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nt"
"ime_stamp\030\004 \001(\004\"J\n\014BoolResponse\022+\n\006statu"
"s\030\001 \001(\0132\033.milvus.proto.common.Status\022\r\n\005"
"value\030\002 \001(\010\"L\n\016StringResponse\022+\n\006status\030"
"\001 \001(\0132\033.milvus.proto.common.Status\022\r\n\005va"
"lue\030\002 \001(\t\"\233\001\n\031DescribeCollectionRequest\022"
"*\n\004base\030\001 \001(\0132\034.milvus.proto.common.MsgB"
"ase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030"
"\003 \001(\t\022\024\n\014collectionID\030\004 \001(\003\022\022\n\ntime_stam"
"p\030\005 \001(\004\"\325\001\n\032DescribeCollectionResponse\022+"
"\n\006status\030\001 \001(\0132\033.milvus.proto.common.Sta"
"tus\0225\n\006schema\030\002 \001(\0132%.milvus.proto.schem"
"a.CollectionSchema\022\024\n\014collectionID\030\003 \001(\003"
"\022\035\n\025virtual_channel_names\030\004 \003(\t\022\036\n\026physi"
"cal_channel_names\030\005 \003(\t\"m\n\025LoadCollectio"
"nRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.co"
"mmon.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collect"
"ion_name\030\003 \001(\t\"p\n\030ReleaseCollectionReque"
"st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M"
"sgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_na"
"me\030\003 \001(\t\022\027\n\017partition_names\030\004 \003(\t\022\013\n\003dsl"
"\030\005 \001(\t\022\031\n\021placeholder_group\030\006 \001(\014\022.\n\010dsl"
"_type\030\007 \001(\0162\034.milvus.proto.common.DslTyp"
"e\0228\n\rsearch_params\030\010 \003(\0132!.milvus.proto."
"common.KeyValuePair\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003"
"\022\020\n\010row_data\030\002 \003(\014\022\016\n\006scores\030\003 \003(\002\"J\n\rSe"
"archResults\022+\n\006status\030\001 \001(\0132\033.milvus.pro"
"to.common.Status\022\014\n\004hits\030\002 \003(\014\"e\n\014FlushR"
"equest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.comm"
"on.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\030\n\020collectio"
"n_names\030\003 \003(\t\"\351\001\n\025PersistentSegmentInfo\022"
"\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003"
"\022\023\n\013partitionID\030\003 \001(\003\022\021\n\topen_time\030\004 \001(\004"
"\022\023\n\013sealed_time\030\005 \001(\004\022\024\n\014flushed_time\030\006 "
"\001(\004\022\020\n\010num_rows\030\007 \001(\003\022\020\n\010mem_size\030\010 \001(\003\022"
"0\n\005state\030\t \001(\0162!.milvus.proto.common.Seg"
"mentState\"u\n\037GetPersistentSegmentInfoReq"
"uest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common"
".MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionNa"
"me\030\003 \001(\t\"\212\001\n GetPersistentSegmentInfoRes"
"me\030\003 \001(\t\"v\n\036GetCollectionStatisticsReque"
"st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M"
"sgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_na"
"me\030\003 \001(\t\"\200\001\n\037GetCollectionStatisticsResp"
"onse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.comm"
"on.Status\0220\n\005stats\030\002 \003(\0132!.milvus.proto."
"common.KeyValuePair\"i\n\026ShowCollectionsRe"
"quest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.commo"
"n.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\022\n\ntime_stamp"
"\030\003 \001(\004\"`\n\027ShowCollectionsResponse\022+\n\006sta"
"tus\030\001 \001(\0132\033.milvus.proto.common.Status\022\030"
"\n\020collection_names\030\002 \003(\t\"\206\001\n\026CreateParti"
"tionRequest\022*\n\004base\030\001 \001(\0132\034.milvus.proto"
".common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017coll"
"ection_name\030\003 \001(\t\022\026\n\016partition_name\030\004 \001("
"\t\"\204\001\n\024DropPartitionRequest\022*\n\004base\030\001 \001(\013"
"2\034.milvus.proto.common.MsgBase\022\017\n\007db_nam"
"e\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016part"
"ition_name\030\004 \001(\t\"\203\001\n\023HasPartitionRequest"
"\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Msg"
"Base\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name"
"\030\003 \001(\t\022\026\n\016partition_name\030\004 \001(\t\"\206\001\n\025LoadP"
"artitionsRequest\022*\n\004base\030\001 \001(\0132\034.milvus."
"proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n"
"\017collection_name\030\003 \001(\t\022\027\n\017partition_name"
"s\030\004 \003(\t\"\211\001\n\030ReleasePartitionsRequest\022*\n\004"
"base\030\001 \001(\0132\034.milvus.proto.common.MsgBase"
"\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_name\030\003 \001"
"(\t\022\027\n\017partition_names\030\004 \003(\t\"\215\001\n\035GetParti"
"tionStatisticsRequest\022*\n\004base\030\001 \001(\0132\034.mi"
"lvus.proto.common.MsgBase\022\017\n\007db_name\030\002 \001"
"(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016partition"
"_name\030\004 \001(\t\"\177\n\036GetPartitionStatisticsRes"
"ponse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.com"
"mon.Status\0229\n\005infos\030\002 \003(\0132*.milvus.proto"
".milvus.PersistentSegmentInfo\"\231\001\n\020QueryS"
"egmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022\024\n\014collect"
"ionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001(\003\022\020\n\010mem_"
"size\030\004 \001(\003\022\020\n\010num_rows\030\005 \001(\003\022\022\n\nindex_na"
"me\030\006 \001(\t\022\017\n\007indexID\030\007 \001(\003\"p\n\032GetQuerySeg"
"mentInfoRequest\022*\n\004base\030\001 \001(\0132\034.milvus.p"
"roto.common.MsgBase\022\016\n\006dbName\030\002 \001(\t\022\026\n\016c"
"ollectionName\030\003 \001(\t\"\200\001\n\033GetQuerySegmentI"
"nfoResponse\022+\n\006status\030\001 \001(\0132\033.milvus.pro"
"to.common.Status\0224\n\005infos\030\002 \003(\0132%.milvus"
".proto.milvus.QuerySegmentInfo\"\025\n\023Regist"
"erLinkRequest\"r\n\024RegisterLinkResponse\022-\n"
"\007address\030\001 \001(\0132\034.milvus.proto.common.Add"
"ress\022+\n\006status\030\002 \001(\0132\033.milvus.proto.comm"
"on.Status*>\n\017PlaceholderType\022\010\n\004None\020\000\022\020"
"\n\014BinaryVector\020d\022\017\n\013FloatVector\020e2\220\025\n\rMi"
"lvusService\022_\n\020CreateCollection\022,.milvus"
".proto.milvus.CreateCollectionRequest\032\033."
"milvus.proto.common.Status\"\000\022[\n\016DropColl"
"ection\022*.milvus.proto.milvus.DropCollect"
"ionRequest\032\033.milvus.proto.common.Status\""
"\000\022_\n\rHasCollection\022).milvus.proto.milvus"
".HasCollectionRequest\032!.milvus.proto.mil"
"vus.BoolResponse\"\000\022[\n\016LoadCollection\022*.m"
"ilvus.proto.milvus.LoadCollectionRequest"
"\032\033.milvus.proto.common.Status\"\000\022a\n\021Relea"
"seCollection\022-.milvus.proto.milvus.Relea"
"seCollectionRequest\032\033.milvus.proto.commo"
"n.Status\"\000\022w\n\022DescribeCollection\022..milvu"
"s.proto.milvus.DescribeCollectionRequest"
"\032/.milvus.proto.milvus.DescribeCollectio"
"nResponse\"\000\022\206\001\n\027GetCollectionStatistics\022"
"3.milvus.proto.milvus.GetCollectionStati"
"sticsRequest\0324.milvus.proto.milvus.GetCo"
"llectionStatisticsResponse\"\000\022n\n\017ShowColl"
"ections\022+.milvus.proto.milvus.ShowCollec"
"tionsRequest\032,.milvus.proto.milvus.ShowC"
"ollectionsResponse\"\000\022]\n\017CreatePartition\022"
"+.milvus.proto.milvus.CreatePartitionReq"
"uest\032\033.milvus.proto.common.Status\"\000\022Y\n\rD"
"ropPartition\022).milvus.proto.milvus.DropP"
"artitionRequest\032\033.milvus.proto.common.St"
"atus\"\000\022]\n\014HasPartition\022(.milvus.proto.mi"
"lvus.HasPartitionRequest\032!.milvus.proto."
"milvus.BoolResponse\"\000\022[\n\016LoadPartitions\022"
"*.milvus.proto.milvus.LoadPartitionsRequ"
"est\032\033.milvus.proto.common.Status\"\000\022a\n\021Re"
"leasePartitions\022-.milvus.proto.milvus.Re"
"leasePartitionsRequest\032\033.milvus.proto.co"
"mmon.Status\"\000\022\203\001\n\026GetPartitionStatistics"
"\0222.milvus.proto.milvus.GetPartitionStati"
"sticsRequest\0323.milvus.proto.milvus.GetPa"
"rtitionStatisticsResponse\"\000\022k\n\016ShowParti"
"tions\022*.milvus.proto.milvus.ShowPartitio"
"nsRequest\032+.milvus.proto.milvus.ShowPart"
"itionsResponse\"\000\022U\n\013CreateIndex\022\'.milvus"
".proto.milvus.CreateIndexRequest\032\033.milvu"
"s.proto.common.Status\"\000\022h\n\rDescribeIndex"
"\022).milvus.proto.milvus.DescribeIndexRequ"
"est\032*.milvus.proto.milvus.DescribeIndexR"
"esponse\"\000\022h\n\rGetIndexState\022).milvus.prot"
"o.milvus.GetIndexStateRequest\032*.milvus.p"
"roto.milvus.GetIndexStateResponse\"\000\022\200\001\n\025"
"GetIndexBuildProgress\0221.milvus.proto.mil"
"vus.GetIndexBuildProgressRequest\0322.milvu"
"s.proto.milvus.GetIndexBuildProgressResp"
"onse\"\000\022Q\n\tDropIndex\022%.milvus.proto.milvu"
"s.DropIndexRequest\032\033.milvus.proto.common"
".Status\"\000\022S\n\006Insert\022\".milvus.proto.milvu"
"s.InsertRequest\032#.milvus.proto.milvus.In"
"sertResponse\"\000\022R\n\006Search\022\".milvus.proto."
"milvus.SearchRequest\032\".milvus.proto.milv"
"us.SearchResults\"\000\022I\n\005Flush\022!.milvus.pro"
"to.milvus.FlushRequest\032\033.milvus.proto.co"
"mmon.Status\"\000\022\211\001\n\030GetPersistentSegmentIn"
"fo\0224.milvus.proto.milvus.GetPersistentSe"
"gmentInfoRequest\0325.milvus.proto.milvus.G"
"etPersistentSegmentInfoResponse\"\000\022z\n\023Get"
"QuerySegmentInfo\022/.milvus.proto.milvus.G"
"etQuerySegmentInfoRequest\0320.milvus.proto"
".milvus.GetQuerySegmentInfoResponse\"\000\022e\n"
"\014RegisterLink\022(.milvus.proto.milvus.Regi"
"sterLinkRequest\032).milvus.proto.milvus.Re"
"gisterLinkResponse\"\0002u\n\014ProxyService\022e\n\014"
"RegisterLink\022(.milvus.proto.milvus.Regis"
"terLinkRequest\032).milvus.proto.milvus.Reg"
"isterLinkResponse\"\000B5Z3github.com/milvus"
"-io/milvus/internal/proto/milvuspbb\006prot"
"o3"
"mon.Status\0220\n\005stats\030\002 \003(\0132!.milvus.proto"
".common.KeyValuePair\"\203\001\n\025ShowPartitionsR"
"equest\022*\n\004base\030\001 \001(\0132\034.milvus.proto.comm"
"on.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collectio"
"n_name\030\003 \001(\t\022\024\n\014collectionID\030\004 \001(\003\"t\n\026Sh"
"owPartitionsResponse\022+\n\006status\030\001 \001(\0132\033.m"
"ilvus.proto.common.Status\022\027\n\017partition_n"
"ames\030\002 \003(\t\022\024\n\014partitionIDs\030\003 \003(\003\"m\n\026Desc"
"ribeSegmentRequest\022*\n\004base\030\001 \001(\0132\034.milvu"
"s.proto.common.MsgBase\022\024\n\014collectionID\030\002"
" \001(\003\022\021\n\tsegmentID\030\003 \001(\003\"~\n\027DescribeSegme"
"ntResponse\022+\n\006status\030\001 \001(\0132\033.milvus.prot"
"o.common.Status\022\017\n\007indexID\030\002 \001(\003\022\017\n\007buil"
"dID\030\003 \001(\003\022\024\n\014enable_index\030\004 \001(\010\"l\n\023ShowS"
"egmentsRequest\022*\n\004base\030\001 \001(\0132\034.milvus.pr"
"oto.common.MsgBase\022\024\n\014collectionID\030\002 \001(\003"
"\022\023\n\013partitionID\030\003 \001(\003\"W\n\024ShowSegmentsRes"
"ponse\022+\n\006status\030\001 \001(\0132\033.milvus.proto.com"
"mon.Status\022\022\n\nsegmentIDs\030\002 \003(\003\"\267\001\n\022Creat"
"eIndexRequest\022*\n\004base\030\001 \001(\0132\034.milvus.pro"
"to.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017co"
"llection_name\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022"
"7\n\014extra_params\030\005 \003(\0132!.milvus.proto.com"
"mon.KeyValuePair\"\224\001\n\024DescribeIndexReques"
"t\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.Ms"
"gBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_nam"
"e\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_nam"
"e\030\005 \001(\t\"~\n\020IndexDescription\022\022\n\nindex_nam"
"e\030\001 \001(\t\022\017\n\007indexID\030\002 \001(\003\0221\n\006params\030\003 \003(\013"
"2!.milvus.proto.common.KeyValuePair\022\022\n\nf"
"ield_name\030\004 \001(\t\"\207\001\n\025DescribeIndexRespons"
"e\022+\n\006status\030\001 \001(\0132\033.milvus.proto.common."
"Status\022A\n\022index_descriptions\030\002 \003(\0132%.mil"
"vus.proto.milvus.IndexDescription\"\234\001\n\034Ge"
"tIndexBuildProgressRequest\022*\n\004base\030\001 \001(\013"
"2\034.milvus.proto.common.MsgBase\022\017\n\007db_nam"
"e\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\022\n\nfiel"
"d_name\030\004 \001(\t\022\022\n\nindex_name\030\005 \001(\t\"v\n\035GetI"
"ndexBuildProgressResponse\022+\n\006status\030\001 \001("
"\0132\033.milvus.proto.common.Status\022\024\n\014indexe"
"d_rows\030\002 \001(\003\022\022\n\ntotal_rows\030\003 \001(\003\"\224\001\n\024Get"
"IndexStateRequest\022*\n\004base\030\001 \001(\0132\034.milvus"
".proto.common.MsgBase\022\017\n\007db_name\030\002 \001(\t\022\027"
"\n\017collection_name\030\003 \001(\t\022\022\n\nfield_name\030\004 "
"\001(\t\022\022\n\nindex_name\030\005 \001(\t\"t\n\025GetIndexState"
"Response\022+\n\006status\030\001 \001(\0132\033.milvus.proto."
"common.Status\022.\n\005state\030\002 \001(\0162\037.milvus.pr"
"oto.common.IndexState\"\220\001\n\020DropIndexReque"
"st\022*\n\004base\030\001 \001(\0132\034.milvus.proto.common.M"
"sgBase\022\017\n\007db_name\030\002 \001(\t\022\027\n\017collection_na"
"me\030\003 \001(\t\022\022\n\nfield_name\030\004 \001(\t\022\022\n\nindex_na"
"me\030\005 \001(\t\"\275\001\n\rInsertRequest\022*\n\004base\030\001 \001(\013"
"2\034.milvus.proto.common.MsgBase\022\017\n\007db_nam"
"e\030\002 \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\026\n\016part"
"ition_name\030\004 \001(\t\022+\n\010row_data\030\005 \003(\0132\031.mil"
"vus.proto.common.Blob\022\021\n\thash_keys\030\006 \003(\r"
"\"e\n\016InsertResponse\022+\n\006status\030\001 \001(\0132\033.mil"
"vus.proto.common.Status\022\023\n\013rowID_begin\030\002"
" \001(\003\022\021\n\trowID_end\030\003 \001(\003\"c\n\020PlaceholderVa"
"lue\022\013\n\003tag\030\001 \001(\t\0222\n\004type\030\002 \001(\0162$.milvus."
"proto.milvus.PlaceholderType\022\016\n\006values\030\003"
" \003(\014\"O\n\020PlaceholderGroup\022;\n\014placeholders"
"\030\001 \003(\0132%.milvus.proto.milvus.Placeholder"
"Value\"\220\002\n\rSearchRequest\022*\n\004base\030\001 \001(\0132\034."
"milvus.proto.common.MsgBase\022\017\n\007db_name\030\002"
" \001(\t\022\027\n\017collection_name\030\003 \001(\t\022\027\n\017partiti"
"on_names\030\004 \003(\t\022\013\n\003dsl\030\005 \001(\t\022\031\n\021placehold"
"er_group\030\006 \001(\014\022.\n\010dsl_type\030\007 \001(\0162\034.milvu"
"s.proto.common.DslType\0228\n\rsearch_params\030"
"\010 \003(\0132!.milvus.proto.common.KeyValuePair"
"\"5\n\004Hits\022\013\n\003IDs\030\001 \003(\003\022\020\n\010row_data\030\002 \003(\014\022"
"\016\n\006scores\030\003 \003(\002\"J\n\rSearchResults\022+\n\006stat"
"us\030\001 \001(\0132\033.milvus.proto.common.Status\022\014\n"
"\004hits\030\002 \003(\014\"e\n\014FlushRequest\022*\n\004base\030\001 \001("
"\0132\034.milvus.proto.common.MsgBase\022\017\n\007db_na"
"me\030\002 \001(\t\022\030\n\020collection_names\030\003 \003(\t\"\351\001\n\025P"
"ersistentSegmentInfo\022\021\n\tsegmentID\030\001 \001(\003\022"
"\024\n\014collectionID\030\002 \001(\003\022\023\n\013partitionID\030\003 \001"
"(\003\022\021\n\topen_time\030\004 \001(\004\022\023\n\013sealed_time\030\005 \001"
"(\004\022\024\n\014flushed_time\030\006 \001(\004\022\020\n\010num_rows\030\007 \001"
"(\003\022\020\n\010mem_size\030\010 \001(\003\0220\n\005state\030\t \001(\0162!.mi"
"lvus.proto.common.SegmentState\"u\n\037GetPer"
"sistentSegmentInfoRequest\022*\n\004base\030\001 \001(\0132"
"\034.milvus.proto.common.MsgBase\022\016\n\006dbName\030"
"\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t\"\212\001\n GetPer"
"sistentSegmentInfoResponse\022+\n\006status\030\001 \001"
"(\0132\033.milvus.proto.common.Status\0229\n\005infos"
"\030\002 \003(\0132*.milvus.proto.milvus.PersistentS"
"egmentInfo\"\231\001\n\020QuerySegmentInfo\022\021\n\tsegme"
"ntID\030\001 \001(\003\022\024\n\014collectionID\030\002 \001(\003\022\023\n\013part"
"itionID\030\003 \001(\003\022\020\n\010mem_size\030\004 \001(\003\022\020\n\010num_r"
"ows\030\005 \001(\003\022\022\n\nindex_name\030\006 \001(\t\022\017\n\007indexID"
"\030\007 \001(\003\"p\n\032GetQuerySegmentInfoRequest\022*\n\004"
"base\030\001 \001(\0132\034.milvus.proto.common.MsgBase"
"\022\016\n\006dbName\030\002 \001(\t\022\026\n\016collectionName\030\003 \001(\t"
"\"\200\001\n\033GetQuerySegmentInfoResponse\022+\n\006stat"
"us\030\001 \001(\0132\033.milvus.proto.common.Status\0224\n"
"\005infos\030\002 \003(\0132%.milvus.proto.milvus.Query"
"SegmentInfo\"\025\n\023RegisterLinkRequest\"r\n\024Re"
"gisterLinkResponse\022-\n\007address\030\001 \001(\0132\034.mi"
"lvus.proto.common.Address\022+\n\006status\030\002 \001("
"\0132\033.milvus.proto.common.Status*>\n\017Placeh"
"olderType\022\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n"
"\013FloatVector\020e2\220\025\n\rMilvusService\022_\n\020Crea"
"teCollection\022,.milvus.proto.milvus.Creat"
"eCollectionRequest\032\033.milvus.proto.common"
".Status\"\000\022[\n\016DropCollection\022*.milvus.pro"
"to.milvus.DropCollectionRequest\032\033.milvus"
".proto.common.Status\"\000\022_\n\rHasCollection\022"
").milvus.proto.milvus.HasCollectionReque"
"st\032!.milvus.proto.milvus.BoolResponse\"\000\022"
"[\n\016LoadCollection\022*.milvus.proto.milvus."
"LoadCollectionRequest\032\033.milvus.proto.com"
"mon.Status\"\000\022a\n\021ReleaseCollection\022-.milv"
"us.proto.milvus.ReleaseCollectionRequest"
"\032\033.milvus.proto.common.Status\"\000\022w\n\022Descr"
"ibeCollection\022..milvus.proto.milvus.Desc"
"ribeCollectionRequest\032/.milvus.proto.mil"
"vus.DescribeCollectionResponse\"\000\022\206\001\n\027Get"
"CollectionStatistics\0223.milvus.proto.milv"
"us.GetCollectionStatisticsRequest\0324.milv"
"us.proto.milvus.GetCollectionStatisticsR"
"esponse\"\000\022n\n\017ShowCollections\022+.milvus.pr"
"oto.milvus.ShowCollectionsRequest\032,.milv"
"us.proto.milvus.ShowCollectionsResponse\""
"\000\022]\n\017CreatePartition\022+.milvus.proto.milv"
"us.CreatePartitionRequest\032\033.milvus.proto"
".common.Status\"\000\022Y\n\rDropPartition\022).milv"
"us.proto.milvus.DropPartitionRequest\032\033.m"
"ilvus.proto.common.Status\"\000\022]\n\014HasPartit"
"ion\022(.milvus.proto.milvus.HasPartitionRe"
"quest\032!.milvus.proto.milvus.BoolResponse"
"\"\000\022[\n\016LoadPartitions\022*.milvus.proto.milv"
"us.LoadPartitionsRequest\032\033.milvus.proto."
"common.Status\"\000\022a\n\021ReleasePartitions\022-.m"
"ilvus.proto.milvus.ReleasePartitionsRequ"
"est\032\033.milvus.proto.common.Status\"\000\022\203\001\n\026G"
"etPartitionStatistics\0222.milvus.proto.mil"
"vus.GetPartitionStatisticsRequest\0323.milv"
"us.proto.milvus.GetPartitionStatisticsRe"
"sponse\"\000\022k\n\016ShowPartitions\022*.milvus.prot"
"o.milvus.ShowPartitionsRequest\032+.milvus."
"proto.milvus.ShowPartitionsResponse\"\000\022U\n"
"\013CreateIndex\022\'.milvus.proto.milvus.Creat"
"eIndexRequest\032\033.milvus.proto.common.Stat"
"us\"\000\022h\n\rDescribeIndex\022).milvus.proto.mil"
"vus.DescribeIndexRequest\032*.milvus.proto."
"milvus.DescribeIndexResponse\"\000\022h\n\rGetInd"
"exState\022).milvus.proto.milvus.GetIndexSt"
"ateRequest\032*.milvus.proto.milvus.GetInde"
"xStateResponse\"\000\022\200\001\n\025GetIndexBuildProgre"
"ss\0221.milvus.proto.milvus.GetIndexBuildPr"
"ogressRequest\0322.milvus.proto.milvus.GetI"
"ndexBuildProgressResponse\"\000\022Q\n\tDropIndex"
"\022%.milvus.proto.milvus.DropIndexRequest\032"
"\033.milvus.proto.common.Status\"\000\022S\n\006Insert"
"\022\".milvus.proto.milvus.InsertRequest\032#.m"
"ilvus.proto.milvus.InsertResponse\"\000\022R\n\006S"
"earch\022\".milvus.proto.milvus.SearchReques"
"t\032\".milvus.proto.milvus.SearchResults\"\000\022"
"I\n\005Flush\022!.milvus.proto.milvus.FlushRequ"
"est\032\033.milvus.proto.common.Status\"\000\022\211\001\n\030G"
"etPersistentSegmentInfo\0224.milvus.proto.m"
"ilvus.GetPersistentSegmentInfoRequest\0325."
"milvus.proto.milvus.GetPersistentSegment"
"InfoResponse\"\000\022z\n\023GetQuerySegmentInfo\022/."
"milvus.proto.milvus.GetQuerySegmentInfoR"
"equest\0320.milvus.proto.milvus.GetQuerySeg"
"mentInfoResponse\"\000\022e\n\014RegisterLink\022(.mil"
"vus.proto.milvus.RegisterLinkRequest\032).m"
"ilvus.proto.milvus.RegisterLinkResponse\""
"\0002u\n\014ProxyService\022e\n\014RegisterLink\022(.milv"
"us.proto.milvus.RegisterLinkRequest\032).mi"
"lvus.proto.milvus.RegisterLinkResponse\"\000"
"B5Z3github.com/milvus-io/milvus/internal"
"/proto/milvuspbb\006proto3"
;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_milvus_2eproto_deps[2] = {
&::descriptor_table_common_2eproto,
@ -1852,7 +1856,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_mil
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_milvus_2eproto_once;
static bool descriptor_table_milvus_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_milvus_2eproto = {
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 9522,
&descriptor_table_milvus_2eproto_initialized, descriptor_table_protodef_milvus_2eproto, "milvus.proto", 9583,
&descriptor_table_milvus_2eproto_once, descriptor_table_milvus_2eproto_sccs, descriptor_table_milvus_2eproto_deps, 51, 2,
schemas, file_default_instances, TableStruct_milvus_2eproto::offsets,
file_level_metadata_milvus_2eproto, 51, file_level_enum_descriptors_milvus_2eproto, file_level_service_descriptors_milvus_2eproto,
@ -2814,6 +2818,7 @@ HasCollectionRequest::HasCollectionRequest(const HasCollectionRequest& from)
} else {
base_ = nullptr;
}
time_stamp_ = from.time_stamp_;
// @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.HasCollectionRequest)
}
@ -2821,7 +2826,9 @@ void HasCollectionRequest::SharedCtor() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_HasCollectionRequest_milvus_2eproto.base);
db_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
collection_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
base_ = nullptr;
::memset(&base_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&time_stamp_) -
reinterpret_cast<char*>(&base_)) + sizeof(time_stamp_));
}
HasCollectionRequest::~HasCollectionRequest() {
@ -2856,6 +2863,7 @@ void HasCollectionRequest::Clear() {
delete base_;
}
base_ = nullptr;
time_stamp_ = PROTOBUF_ULONGLONG(0);
_internal_metadata_.Clear();
}
@ -2888,6 +2896,13 @@ const char* HasCollectionRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAM
CHK_(ptr);
} else goto handle_unusual;
continue;
// uint64 time_stamp = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -2959,6 +2974,19 @@ bool HasCollectionRequest::MergePartialFromCodedStream(
break;
}
// uint64 time_stamp = 4;
case 4: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (32 & 0xFF)) {
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
::PROTOBUF_NAMESPACE_ID::uint64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT64>(
input, &time_stamp_)));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
@ -3012,6 +3040,11 @@ void HasCollectionRequest::SerializeWithCachedSizes(
3, this->collection_name(), output);
}
// uint64 time_stamp = 4;
if (this->time_stamp() != 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(4, this->time_stamp(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -3054,6 +3087,11 @@ void HasCollectionRequest::SerializeWithCachedSizes(
3, this->collection_name(), target);
}
// uint64 time_stamp = 4;
if (this->time_stamp() != 0) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(4, this->time_stamp(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -3096,6 +3134,13 @@ size_t HasCollectionRequest::ByteSizeLong() const {
*base_);
}
// uint64 time_stamp = 4;
if (this->time_stamp() != 0) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
this->time_stamp());
}
int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
SetCachedSize(cached_size);
return total_size;
@ -3134,6 +3179,9 @@ void HasCollectionRequest::MergeFrom(const HasCollectionRequest& from) {
if (from.has_base()) {
mutable_base()->::milvus::proto::common::MsgBase::MergeFrom(from.base());
}
if (from.time_stamp() != 0) {
set_time_stamp(from.time_stamp());
}
}
void HasCollectionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
@ -3162,6 +3210,7 @@ void HasCollectionRequest::InternalSwap(HasCollectionRequest* other) {
collection_name_.Swap(&other->collection_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
GetArenaNoVirtual());
swap(base_, other->base_);
swap(time_stamp_, other->time_stamp_);
}
::PROTOBUF_NAMESPACE_ID::Metadata HasCollectionRequest::GetMetadata() const {
@ -3862,7 +3911,9 @@ DescribeCollectionRequest::DescribeCollectionRequest(const DescribeCollectionReq
} else {
base_ = nullptr;
}
collectionid_ = from.collectionid_;
::memcpy(&collectionid_, &from.collectionid_,
static_cast<size_t>(reinterpret_cast<char*>(&time_stamp_) -
reinterpret_cast<char*>(&collectionid_)) + sizeof(time_stamp_));
// @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.DescribeCollectionRequest)
}
@ -3871,8 +3922,8 @@ void DescribeCollectionRequest::SharedCtor() {
db_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
collection_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
::memset(&base_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&collectionid_) -
reinterpret_cast<char*>(&base_)) + sizeof(collectionid_));
reinterpret_cast<char*>(&time_stamp_) -
reinterpret_cast<char*>(&base_)) + sizeof(time_stamp_));
}
DescribeCollectionRequest::~DescribeCollectionRequest() {
@ -3907,7 +3958,9 @@ void DescribeCollectionRequest::Clear() {
delete base_;
}
base_ = nullptr;
collectionid_ = PROTOBUF_LONGLONG(0);
::memset(&collectionid_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&time_stamp_) -
reinterpret_cast<char*>(&collectionid_)) + sizeof(time_stamp_));
_internal_metadata_.Clear();
}
@ -3947,6 +4000,13 @@ const char* DescribeCollectionRequest::_InternalParse(const char* ptr, ::PROTOBU
CHK_(ptr);
} else goto handle_unusual;
continue;
// uint64 time_stamp = 5;
case 5:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -4031,6 +4091,19 @@ bool DescribeCollectionRequest::MergePartialFromCodedStream(
break;
}
// uint64 time_stamp = 5;
case 5: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (40 & 0xFF)) {
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
::PROTOBUF_NAMESPACE_ID::uint64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT64>(
input, &time_stamp_)));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
@ -4089,6 +4162,11 @@ void DescribeCollectionRequest::SerializeWithCachedSizes(
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64(4, this->collectionid(), output);
}
// uint64 time_stamp = 5;
if (this->time_stamp() != 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(5, this->time_stamp(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -4136,6 +4214,11 @@ void DescribeCollectionRequest::SerializeWithCachedSizes(
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->collectionid(), target);
}
// uint64 time_stamp = 5;
if (this->time_stamp() != 0) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(5, this->time_stamp(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -4185,6 +4268,13 @@ size_t DescribeCollectionRequest::ByteSizeLong() const {
this->collectionid());
}
// uint64 time_stamp = 5;
if (this->time_stamp() != 0) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
this->time_stamp());
}
int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
SetCachedSize(cached_size);
return total_size;
@ -4226,6 +4316,9 @@ void DescribeCollectionRequest::MergeFrom(const DescribeCollectionRequest& from)
if (from.collectionid() != 0) {
set_collectionid(from.collectionid());
}
if (from.time_stamp() != 0) {
set_time_stamp(from.time_stamp());
}
}
void DescribeCollectionRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
@ -4255,6 +4348,7 @@ void DescribeCollectionRequest::InternalSwap(DescribeCollectionRequest* other) {
GetArenaNoVirtual());
swap(base_, other->base_);
swap(collectionid_, other->collectionid_);
swap(time_stamp_, other->time_stamp_);
}
::PROTOBUF_NAMESPACE_ID::Metadata DescribeCollectionRequest::GetMetadata() const {
@ -6327,13 +6421,16 @@ ShowCollectionsRequest::ShowCollectionsRequest(const ShowCollectionsRequest& fro
} else {
base_ = nullptr;
}
time_stamp_ = from.time_stamp_;
// @@protoc_insertion_point(copy_constructor:milvus.proto.milvus.ShowCollectionsRequest)
}
void ShowCollectionsRequest::SharedCtor() {
::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ShowCollectionsRequest_milvus_2eproto.base);
db_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
base_ = nullptr;
::memset(&base_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&time_stamp_) -
reinterpret_cast<char*>(&base_)) + sizeof(time_stamp_));
}
ShowCollectionsRequest::~ShowCollectionsRequest() {
@ -6366,6 +6463,7 @@ void ShowCollectionsRequest::Clear() {
delete base_;
}
base_ = nullptr;
time_stamp_ = PROTOBUF_ULONGLONG(0);
_internal_metadata_.Clear();
}
@ -6391,6 +6489,13 @@ const char* ShowCollectionsRequest::_InternalParse(const char* ptr, ::PROTOBUF_N
CHK_(ptr);
} else goto handle_unusual;
continue;
// uint64 time_stamp = 3;
case 3:
if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
time_stamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
CHK_(ptr);
} else goto handle_unusual;
continue;
default: {
handle_unusual:
if ((tag & 7) == 4 || tag == 0) {
@ -6447,6 +6552,19 @@ bool ShowCollectionsRequest::MergePartialFromCodedStream(
break;
}
// uint64 time_stamp = 3;
case 3: {
if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (24 & 0xFF)) {
DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
::PROTOBUF_NAMESPACE_ID::uint64, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_UINT64>(
input, &time_stamp_)));
} else {
goto handle_unusual;
}
break;
}
default: {
handle_unusual:
if (tag == 0) {
@ -6490,6 +6608,11 @@ void ShowCollectionsRequest::SerializeWithCachedSizes(
2, this->db_name(), output);
}
// uint64 time_stamp = 3;
if (this->time_stamp() != 0) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64(3, this->time_stamp(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
_internal_metadata_.unknown_fields(), output);
@ -6521,6 +6644,11 @@ void ShowCollectionsRequest::SerializeWithCachedSizes(
2, this->db_name(), target);
}
// uint64 time_stamp = 3;
if (this->time_stamp() != 0) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(3, this->time_stamp(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields(), target);
@ -6556,6 +6684,13 @@ size_t ShowCollectionsRequest::ByteSizeLong() const {
*base_);
}
// uint64 time_stamp = 3;
if (this->time_stamp() != 0) {
total_size += 1 +
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::UInt64Size(
this->time_stamp());
}
int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
SetCachedSize(cached_size);
return total_size;
@ -6590,6 +6725,9 @@ void ShowCollectionsRequest::MergeFrom(const ShowCollectionsRequest& from) {
if (from.has_base()) {
mutable_base()->::milvus::proto::common::MsgBase::MergeFrom(from.base());
}
if (from.time_stamp() != 0) {
set_time_stamp(from.time_stamp());
}
}
void ShowCollectionsRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
@ -6616,6 +6754,7 @@ void ShowCollectionsRequest::InternalSwap(ShowCollectionsRequest* other) {
db_name_.Swap(&other->db_name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
GetArenaNoVirtual());
swap(base_, other->base_);
swap(time_stamp_, other->time_stamp_);
}
::PROTOBUF_NAMESPACE_ID::Metadata ShowCollectionsRequest::GetMetadata() const {

View File

@ -757,6 +757,7 @@ class HasCollectionRequest :
kDbNameFieldNumber = 2,
kCollectionNameFieldNumber = 3,
kBaseFieldNumber = 1,
kTimeStampFieldNumber = 4,
};
// string db_name = 2;
void clear_db_name();
@ -788,6 +789,11 @@ class HasCollectionRequest :
::milvus::proto::common::MsgBase* mutable_base();
void set_allocated_base(::milvus::proto::common::MsgBase* base);
// uint64 time_stamp = 4;
void clear_time_stamp();
::PROTOBUF_NAMESPACE_ID::uint64 time_stamp() const;
void set_time_stamp(::PROTOBUF_NAMESPACE_ID::uint64 value);
// @@protoc_insertion_point(class_scope:milvus.proto.milvus.HasCollectionRequest)
private:
class _Internal;
@ -796,6 +802,7 @@ class HasCollectionRequest :
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr db_name_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_name_;
::milvus::proto::common::MsgBase* base_;
::PROTOBUF_NAMESPACE_ID::uint64 time_stamp_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto;
};
@ -1206,6 +1213,7 @@ class DescribeCollectionRequest :
kCollectionNameFieldNumber = 3,
kBaseFieldNumber = 1,
kCollectionIDFieldNumber = 4,
kTimeStampFieldNumber = 5,
};
// string db_name = 2;
void clear_db_name();
@ -1242,6 +1250,11 @@ class DescribeCollectionRequest :
::PROTOBUF_NAMESPACE_ID::int64 collectionid() const;
void set_collectionid(::PROTOBUF_NAMESPACE_ID::int64 value);
// uint64 time_stamp = 5;
void clear_time_stamp();
::PROTOBUF_NAMESPACE_ID::uint64 time_stamp() const;
void set_time_stamp(::PROTOBUF_NAMESPACE_ID::uint64 value);
// @@protoc_insertion_point(class_scope:milvus.proto.milvus.DescribeCollectionRequest)
private:
class _Internal;
@ -1251,6 +1264,7 @@ class DescribeCollectionRequest :
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_name_;
::milvus::proto::common::MsgBase* base_;
::PROTOBUF_NAMESPACE_ID::int64 collectionid_;
::PROTOBUF_NAMESPACE_ID::uint64 time_stamp_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto;
};
@ -2187,6 +2201,7 @@ class ShowCollectionsRequest :
enum : int {
kDbNameFieldNumber = 2,
kBaseFieldNumber = 1,
kTimeStampFieldNumber = 3,
};
// string db_name = 2;
void clear_db_name();
@ -2207,6 +2222,11 @@ class ShowCollectionsRequest :
::milvus::proto::common::MsgBase* mutable_base();
void set_allocated_base(::milvus::proto::common::MsgBase* base);
// uint64 time_stamp = 3;
void clear_time_stamp();
::PROTOBUF_NAMESPACE_ID::uint64 time_stamp() const;
void set_time_stamp(::PROTOBUF_NAMESPACE_ID::uint64 value);
// @@protoc_insertion_point(class_scope:milvus.proto.milvus.ShowCollectionsRequest)
private:
class _Internal;
@ -2214,6 +2234,7 @@ class ShowCollectionsRequest :
::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr db_name_;
::milvus::proto::common::MsgBase* base_;
::PROTOBUF_NAMESPACE_ID::uint64 time_stamp_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
friend struct ::TableStruct_milvus_2eproto;
};
@ -9170,6 +9191,20 @@ inline void HasCollectionRequest::set_allocated_collection_name(std::string* col
// @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.HasCollectionRequest.collection_name)
}
// uint64 time_stamp = 4;
inline void HasCollectionRequest::clear_time_stamp() {
time_stamp_ = PROTOBUF_ULONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 HasCollectionRequest::time_stamp() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.HasCollectionRequest.time_stamp)
return time_stamp_;
}
inline void HasCollectionRequest::set_time_stamp(::PROTOBUF_NAMESPACE_ID::uint64 value) {
time_stamp_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.milvus.HasCollectionRequest.time_stamp)
}
// -------------------------------------------------------------------
// BoolResponse
@ -9498,6 +9533,20 @@ inline void DescribeCollectionRequest::set_collectionid(::PROTOBUF_NAMESPACE_ID:
// @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionRequest.collectionID)
}
// uint64 time_stamp = 5;
inline void DescribeCollectionRequest::clear_time_stamp() {
time_stamp_ = PROTOBUF_ULONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 DescribeCollectionRequest::time_stamp() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.DescribeCollectionRequest.time_stamp)
return time_stamp_;
}
inline void DescribeCollectionRequest::set_time_stamp(::PROTOBUF_NAMESPACE_ID::uint64 value) {
time_stamp_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.milvus.DescribeCollectionRequest.time_stamp)
}
// -------------------------------------------------------------------
// DescribeCollectionResponse
@ -10365,6 +10414,20 @@ inline void ShowCollectionsRequest::set_allocated_db_name(std::string* db_name)
// @@protoc_insertion_point(field_set_allocated:milvus.proto.milvus.ShowCollectionsRequest.db_name)
}
// uint64 time_stamp = 3;
inline void ShowCollectionsRequest::clear_time_stamp() {
time_stamp_ = PROTOBUF_ULONGLONG(0);
}
inline ::PROTOBUF_NAMESPACE_ID::uint64 ShowCollectionsRequest::time_stamp() const {
// @@protoc_insertion_point(field_get:milvus.proto.milvus.ShowCollectionsRequest.time_stamp)
return time_stamp_;
}
inline void ShowCollectionsRequest::set_time_stamp(::PROTOBUF_NAMESPACE_ID::uint64 value) {
time_stamp_ = value;
// @@protoc_insertion_point(field_set:milvus.proto.milvus.ShowCollectionsRequest.time_stamp)
}
// -------------------------------------------------------------------
// ShowCollectionsResponse

View File

@ -254,6 +254,9 @@ func (mt *metaTable) AddCollection(coll *pb.CollectionInfo, part *pb.PartitionIn
if len(coll.FieldIndexes) != len(idx) {
return 0, fmt.Errorf("incorrect index id when creating collection")
}
if _, ok := mt.partitionID2Meta[part.PartitionID]; ok {
return 0, fmt.Errorf("partition id = %d exist", part.PartitionID)
}
coll.PartitionIDs = append(coll.PartitionIDs, part.PartitionID)
mt.collID2Meta[coll.ID] = *coll
@ -460,7 +463,8 @@ func (mt *metaTable) ListCollections(ts typeutil.Timestamp) ([]string, error) {
}
_, vals, err := mt.client.LoadWithPrefix(CollectionMetaPrefix, ts)
if err != nil {
return nil, err
log.Debug("load with prefix error", zap.Uint64("timestamp", ts), zap.Error(err))
return []string{}, nil
}
colls := make([]string, 0, len(vals))
for _, val := range vals {

View File

@ -174,6 +174,7 @@ func TestMetaTable(t *testing.T) {
etcdCli, err := clientv3.New(clientv3.Config{Endpoints: []string{etcdAddr}})
assert.Nil(t, err)
defer etcdCli.Close()
skv, err := newMetaSnapshot(etcdCli, rootPath, TimestampPrefix, 7, ftso)
assert.Nil(t, err)
assert.NotNil(t, skv)
@ -1073,3 +1074,185 @@ func TestMetaTable(t *testing.T) {
assert.EqualError(t, err, "segment id = 222 exist")
})
}
func TestMetaWithTimestamp(t *testing.T) {
rand.Seed(time.Now().UnixNano())
randVal := rand.Int()
Params.Init()
etcdAddr := Params.EtcdAddress
rootPath := fmt.Sprintf("/test/meta/%d", randVal)
var tsoStart typeutil.Timestamp = 100
vtso := tsoStart
ftso := func() typeutil.Timestamp {
vtso++
return vtso
}
etcdCli, err := clientv3.New(clientv3.Config{Endpoints: []string{etcdAddr}})
assert.Nil(t, err)
defer etcdCli.Close()
skv, err := newMetaSnapshot(etcdCli, rootPath, TimestampPrefix, 7, ftso)
assert.Nil(t, err)
assert.NotNil(t, skv)
mt, err := NewMetaTable(skv)
assert.Nil(t, err)
collInfo := &pb.CollectionInfo{
ID: 1,
Schema: &schemapb.CollectionSchema{
Name: "t1",
},
}
partInfo := &pb.PartitionInfo{
PartitionName: "p1",
PartitionID: 11,
SegmentIDs: nil,
}
t1, err := mt.AddCollection(collInfo, partInfo, nil, "")
assert.Nil(t, err)
collInfo.ID = 2
collInfo.PartitionIDs = nil
collInfo.Schema.Name = "t2"
partInfo.PartitionID = 12
partInfo.PartitionName = "p2"
t2, err := mt.AddCollection(collInfo, partInfo, nil, "")
assert.Nil(t, err)
assert.True(t, mt.HasCollection(1, 0))
assert.True(t, mt.HasCollection(2, 0))
assert.True(t, mt.HasCollection(1, t2))
assert.True(t, mt.HasCollection(2, t2))
assert.True(t, mt.HasCollection(1, t1))
assert.False(t, mt.HasCollection(2, t1))
assert.False(t, mt.HasCollection(1, tsoStart))
assert.False(t, mt.HasCollection(2, tsoStart))
c1, err := mt.GetCollectionByID(1, 0)
assert.Nil(t, err)
c2, err := mt.GetCollectionByID(2, 0)
assert.Nil(t, err)
assert.Equal(t, int64(1), c1.ID)
assert.Equal(t, int64(2), c2.ID)
c1, err = mt.GetCollectionByID(1, t2)
assert.Nil(t, err)
c2, err = mt.GetCollectionByID(2, t2)
assert.Nil(t, err)
assert.Equal(t, int64(1), c1.ID)
assert.Equal(t, int64(2), c2.ID)
c1, err = mt.GetCollectionByID(1, t1)
assert.Nil(t, err)
c2, err = mt.GetCollectionByID(2, t1)
assert.NotNil(t, err)
assert.Equal(t, int64(1), c1.ID)
c1, err = mt.GetCollectionByID(1, tsoStart)
assert.NotNil(t, err)
c2, err = mt.GetCollectionByID(2, tsoStart)
assert.NotNil(t, err)
c1, err = mt.GetCollectionByName("t1", 0)
assert.Nil(t, err)
c2, err = mt.GetCollectionByName("t2", 0)
assert.Nil(t, err)
assert.Equal(t, int64(1), c1.ID)
assert.Equal(t, int64(2), c2.ID)
c1, err = mt.GetCollectionByName("t1", t2)
assert.Nil(t, err)
c2, err = mt.GetCollectionByName("t2", t2)
assert.Nil(t, err)
assert.Equal(t, int64(1), c1.ID)
assert.Equal(t, int64(2), c2.ID)
c1, err = mt.GetCollectionByName("t1", t1)
assert.Nil(t, err)
c2, err = mt.GetCollectionByName("t2", t1)
assert.NotNil(t, err)
assert.Equal(t, int64(1), c1.ID)
c1, err = mt.GetCollectionByName("t1", tsoStart)
assert.NotNil(t, err)
c2, err = mt.GetCollectionByName("t2", tsoStart)
assert.NotNil(t, err)
s1, err := mt.ListCollections(0)
assert.Nil(t, err)
assert.Equal(t, 2, len(s1))
assert.ElementsMatch(t, s1, []string{"t1", "t2"})
s1, err = mt.ListCollections(t2)
assert.Nil(t, err)
assert.Equal(t, 2, len(s1))
assert.ElementsMatch(t, s1, []string{"t1", "t2"})
s1, err = mt.ListCollections(t1)
assert.Nil(t, err)
assert.Equal(t, 1, len(s1))
assert.ElementsMatch(t, s1, []string{"t1"})
s1, err = mt.ListCollections(tsoStart)
assert.Nil(t, err)
assert.Equal(t, 0, len(s1))
p1, err := mt.GetPartitionByName(1, "p1", 0)
assert.Nil(t, err)
p2, err := mt.GetPartitionByName(2, "p2", 0)
assert.Nil(t, err)
assert.Equal(t, int64(11), p1.PartitionID)
assert.Equal(t, int64(12), p2.PartitionID)
assert.Nil(t, err)
p1, err = mt.GetPartitionByName(1, "p1", t2)
assert.Nil(t, err)
p2, err = mt.GetPartitionByName(2, "p2", t2)
assert.Nil(t, err)
assert.Equal(t, int64(11), p1.PartitionID)
assert.Equal(t, int64(12), p2.PartitionID)
p1, err = mt.GetPartitionByName(1, "p1", t1)
assert.Nil(t, err)
p2, err = mt.GetPartitionByName(2, "p2", t1)
assert.NotNil(t, err)
assert.Equal(t, int64(11), p1.PartitionID)
p1, err = mt.GetPartitionByName(1, "p1", tsoStart)
assert.NotNil(t, err)
p2, err = mt.GetPartitionByName(2, "p2", tsoStart)
assert.NotNil(t, err)
p1, err = mt.GetPartitionByID(1, 11, 0)
assert.Nil(t, err)
p2, err = mt.GetPartitionByID(2, 12, 0)
assert.Nil(t, err)
assert.Equal(t, int64(11), p1.PartitionID)
assert.Equal(t, int64(12), p2.PartitionID)
assert.Nil(t, err)
p1, err = mt.GetPartitionByID(1, 11, t2)
assert.Nil(t, err)
p2, err = mt.GetPartitionByID(2, 12, t2)
assert.Nil(t, err)
assert.Equal(t, int64(11), p1.PartitionID)
assert.Equal(t, int64(12), p2.PartitionID)
p1, err = mt.GetPartitionByID(1, 11, t1)
assert.Nil(t, err)
p2, err = mt.GetPartitionByID(2, 12, t1)
assert.NotNil(t, err)
assert.Equal(t, int64(11), p1.PartitionID)
p1, err = mt.GetPartitionByID(1, 11, tsoStart)
assert.NotNil(t, err)
p2, err = mt.GetPartitionByID(2, 12, tsoStart)
assert.NotNil(t, err)
}

View File

@ -336,7 +336,7 @@ func (t *HasCollectionReqTask) Execute(ctx context.Context) error {
if t.Type() != commonpb.MsgType_HasCollection {
return fmt.Errorf("has collection, msg type = %s", commonpb.MsgType_name[int32(t.Type())])
}
_, err := t.core.MetaTable.GetCollectionByName(t.Req.CollectionName, 0)
_, err := t.core.MetaTable.GetCollectionByName(t.Req.CollectionName, t.Req.TimeStamp)
if err == nil {
t.HasCollection = true
} else {
@ -375,12 +375,12 @@ func (t *DescribeCollectionReqTask) Execute(ctx context.Context) error {
var err error
if t.Req.CollectionName != "" {
collInfo, err = t.core.MetaTable.GetCollectionByName(t.Req.CollectionName, 0)
collInfo, err = t.core.MetaTable.GetCollectionByName(t.Req.CollectionName, t.Req.TimeStamp)
if err != nil {
return err
}
} else {
collInfo, err = t.core.MetaTable.GetCollectionByID(t.Req.CollectionID, 0)
collInfo, err = t.core.MetaTable.GetCollectionByID(t.Req.CollectionID, t.Req.TimeStamp)
if err != nil {
return err
}
@ -427,7 +427,7 @@ func (t *ShowCollectionReqTask) Execute(ctx context.Context) error {
if t.Type() != commonpb.MsgType_ShowCollections {
return fmt.Errorf("show collection, msg type = %s", commonpb.MsgType_name[int32(t.Type())])
}
coll, err := t.core.MetaTable.ListCollections(0)
coll, err := t.core.MetaTable.ListCollections(t.Req.TimeStamp)
if err != nil {
return err
}

View File

@ -60,6 +60,7 @@ message HasCollectionRequest {
common.MsgBase base = 1;
string db_name = 2;
string collection_name = 3;
uint64 time_stamp = 4;
}
message BoolResponse {
@ -77,6 +78,7 @@ message DescribeCollectionRequest {
string db_name = 2;
string collection_name = 3;
int64 collectionID = 4;
uint64 time_stamp = 5;
}
message DescribeCollectionResponse {
@ -113,6 +115,7 @@ message GetCollectionStatisticsResponse {
message ShowCollectionsRequest {
common.MsgBase base = 1;
string db_name = 2;
uint64 time_stamp = 3;
}
message ShowCollectionsResponse {

View File

@ -185,6 +185,7 @@ type HasCollectionRequest struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"`
CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
TimeStamp uint64 `protobuf:"varint,4,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -236,6 +237,13 @@ func (m *HasCollectionRequest) GetCollectionName() string {
return ""
}
func (m *HasCollectionRequest) GetTimeStamp() uint64 {
if m != nil {
return m.TimeStamp
}
return 0
}
type BoolResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
Value bool `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
@ -335,6 +343,7 @@ type DescribeCollectionRequest struct {
DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"`
CollectionName string `protobuf:"bytes,3,opt,name=collection_name,json=collectionName,proto3" json:"collection_name,omitempty"`
CollectionID int64 `protobuf:"varint,4,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
TimeStamp uint64 `protobuf:"varint,5,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -393,6 +402,13 @@ func (m *DescribeCollectionRequest) GetCollectionID() int64 {
return 0
}
func (m *DescribeCollectionRequest) GetTimeStamp() uint64 {
if m != nil {
return m.TimeStamp
}
return 0
}
type DescribeCollectionResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
Schema *schemapb.CollectionSchema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"`
@ -679,6 +695,7 @@ func (m *GetCollectionStatisticsResponse) GetStats() []*commonpb.KeyValuePair {
type ShowCollectionsRequest struct {
Base *commonpb.MsgBase `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
DbName string `protobuf:"bytes,2,opt,name=db_name,json=dbName,proto3" json:"db_name,omitempty"`
TimeStamp uint64 `protobuf:"varint,3,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -723,6 +740,13 @@ func (m *ShowCollectionsRequest) GetDbName() string {
return ""
}
func (m *ShowCollectionsRequest) GetTimeStamp() uint64 {
if m != nil {
return m.TimeStamp
}
return 0
}
type ShowCollectionsResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
CollectionNames []string `protobuf:"bytes,2,rep,name=collection_names,json=collectionNames,proto3" json:"collection_names,omitempty"`
@ -3112,142 +3136,144 @@ func init() {
func init() { proto.RegisterFile("milvus.proto", fileDescriptor_02345ba45cc0e303) }
var fileDescriptor_02345ba45cc0e303 = []byte{
// 2157 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xdd, 0x6f, 0x1c, 0x49,
0x11, 0x4f, 0xef, 0x97, 0x77, 0x6b, 0x67, 0xed, 0x4d, 0xfb, 0x23, 0x9b, 0x4d, 0x72, 0x59, 0x0f,
0x84, 0x73, 0x92, 0xbb, 0xf8, 0xb0, 0x13, 0x0e, 0x84, 0x40, 0xe0, 0x98, 0x38, 0x56, 0xee, 0x22,
0xdf, 0x38, 0x9c, 0x38, 0x4e, 0xd1, 0x6a, 0x76, 0xa7, 0xe3, 0x1d, 0x65, 0x76, 0x66, 0x99, 0x9e,
0xb5, 0xb3, 0x79, 0x42, 0x3a, 0x84, 0xc4, 0x57, 0x0e, 0x09, 0x84, 0x04, 0x0f, 0x3c, 0x20, 0xdd,
0x33, 0x20, 0x90, 0x90, 0x78, 0xbe, 0x07, 0x24, 0x5e, 0xf8, 0x27, 0x78, 0x83, 0x3f, 0x01, 0x09,
0xf5, 0xc7, 0xce, 0xce, 0x8c, 0x7b, 0xd6, 0xeb, 0xec, 0xe5, 0x6c, 0xbf, 0x4d, 0x57, 0x57, 0x77,
0xff, 0xba, 0xba, 0xaa, 0xba, 0xba, 0x6a, 0x40, 0xeb, 0xda, 0xce, 0x7e, 0x9f, 0xde, 0xea, 0xf9,
0x5e, 0xe0, 0xe1, 0xf9, 0x68, 0xeb, 0x96, 0x68, 0xd4, 0xb5, 0xb6, 0xd7, 0xed, 0x7a, 0xae, 0x20,
0xd6, 0x35, 0xda, 0xee, 0x90, 0xae, 0x29, 0x5a, 0xfa, 0xa7, 0x08, 0x2e, 0xdc, 0xf5, 0x89, 0x19,
0x90, 0xbb, 0x9e, 0xe3, 0x90, 0x76, 0x60, 0x7b, 0xae, 0x41, 0x7e, 0xd0, 0x27, 0x34, 0xc0, 0x6f,
0x41, 0xae, 0x65, 0x52, 0x52, 0x43, 0x0d, 0xb4, 0x52, 0x5e, 0xbb, 0x7c, 0x2b, 0x36, 0xb7, 0x9c,
0xf3, 0x5d, 0xba, 0xb7, 0x61, 0x52, 0x62, 0x70, 0x4e, 0x7c, 0x01, 0x66, 0xac, 0x56, 0xd3, 0x35,
0xbb, 0xa4, 0x96, 0x69, 0xa0, 0x95, 0x92, 0x51, 0xb0, 0x5a, 0x0f, 0xcd, 0x2e, 0xc1, 0xaf, 0xc3,
0x5c, 0x3b, 0x9c, 0x5f, 0x30, 0x64, 0x39, 0xc3, 0xec, 0x88, 0xcc, 0x19, 0x97, 0xa0, 0x20, 0xf0,
0xd5, 0x72, 0x0d, 0xb4, 0xa2, 0x19, 0xb2, 0x85, 0xaf, 0x00, 0xd0, 0x8e, 0xe9, 0x5b, 0xb4, 0xe9,
0xf6, 0xbb, 0xb5, 0x7c, 0x03, 0xad, 0xe4, 0x8d, 0x92, 0xa0, 0x3c, 0xec, 0x77, 0xf5, 0x9f, 0x21,
0x58, 0xdc, 0xf4, 0xbd, 0xde, 0xa9, 0xd8, 0x84, 0xfe, 0x53, 0x04, 0x0b, 0xf7, 0x4d, 0x7a, 0x3a,
0xc0, 0x7c, 0x00, 0xda, 0x86, 0xe7, 0x39, 0x06, 0xa1, 0x3d, 0xcf, 0xa5, 0x04, 0xaf, 0x43, 0x81,
0x06, 0x66, 0xd0, 0xa7, 0x12, 0xc5, 0x25, 0x25, 0x8a, 0x5d, 0xce, 0x62, 0x48, 0x56, 0xbc, 0x00,
0xf9, 0x7d, 0xd3, 0xe9, 0x0b, 0x10, 0x45, 0x43, 0x34, 0xf4, 0x0f, 0x61, 0x76, 0x37, 0xf0, 0x6d,
0x77, 0xef, 0x33, 0x9c, 0xbc, 0x34, 0x9c, 0xfc, 0x2f, 0x08, 0x2e, 0x6e, 0x12, 0xda, 0xf6, 0xed,
0xd6, 0x29, 0xd1, 0x4d, 0x1d, 0xb4, 0x11, 0x65, 0x7b, 0x93, 0x6b, 0x68, 0xd6, 0x88, 0xd1, 0xf4,
0xdf, 0x67, 0xa0, 0xae, 0x42, 0x3d, 0x8d, 0x7c, 0xbe, 0x11, 0xda, 0x44, 0x86, 0x0f, 0xba, 0x16,
0x1f, 0x24, 0xed, 0x79, 0xb4, 0xda, 0x2e, 0x27, 0x84, 0xa6, 0x93, 0x84, 0x9d, 0x3d, 0x0c, 0x1b,
0xaf, 0xc1, 0xe2, 0xbe, 0xed, 0x07, 0x7d, 0xd3, 0x69, 0xb6, 0x3b, 0xa6, 0xeb, 0x12, 0x87, 0x0b,
0x82, 0xd6, 0x72, 0x8d, 0xec, 0x4a, 0xc9, 0x98, 0x97, 0x9d, 0x77, 0x45, 0x1f, 0x93, 0x06, 0xc5,
0xb7, 0x61, 0xa9, 0xd7, 0x19, 0x50, 0xbb, 0x7d, 0x68, 0x50, 0x9e, 0x0f, 0x5a, 0x18, 0xf6, 0x46,
0x47, 0x71, 0x4b, 0x7d, 0xc7, 0x33, 0xad, 0xd3, 0x61, 0x1c, 0x2f, 0x10, 0xd4, 0x0c, 0xe2, 0x10,
0x93, 0x9e, 0x0e, 0x1d, 0xd3, 0x7f, 0x8d, 0xe0, 0xb5, 0x2d, 0x12, 0x44, 0x0e, 0x33, 0x30, 0x03,
0x9b, 0x06, 0x76, 0x9b, 0x9e, 0x24, 0xac, 0x8f, 0x11, 0x5c, 0x4d, 0x85, 0x35, 0x8d, 0x6e, 0xbf,
0x0d, 0x79, 0xf6, 0x45, 0x6b, 0x99, 0x46, 0x76, 0xa5, 0xbc, 0xb6, 0xac, 0x1c, 0xf3, 0x80, 0x0c,
0xde, 0x67, 0x3e, 0x61, 0xc7, 0xb4, 0x7d, 0x43, 0xf0, 0xeb, 0x6d, 0x58, 0xda, 0xed, 0x78, 0x07,
0x23, 0x44, 0xaf, 0x40, 0x3e, 0xfa, 0x00, 0x2e, 0x1c, 0x5a, 0x64, 0x9a, 0xdd, 0x5e, 0x87, 0x6a,
0x42, 0xde, 0x62, 0xe3, 0x25, 0x63, 0x2e, 0x2e, 0x70, 0xca, 0xdc, 0xdf, 0x92, 0xb8, 0x98, 0x77,
0x4c, 0x3f, 0xb0, 0x4f, 0xda, 0xf7, 0x5d, 0x83, 0xd9, 0xde, 0x10, 0x87, 0xe0, 0xcb, 0x71, 0xbe,
0x4a, 0x48, 0xe5, 0x02, 0xfb, 0x33, 0x82, 0x05, 0x76, 0x0f, 0x9f, 0x25, 0xcc, 0x7f, 0x42, 0x30,
0x7f, 0xdf, 0xa4, 0x67, 0x09, 0xf2, 0x5f, 0xa5, 0x13, 0x0d, 0x31, 0x9f, 0xa4, 0x73, 0x60, 0x8c,
0x71, 0xd0, 0xc3, 0x6b, 0x63, 0x36, 0x86, 0x9a, 0xea, 0x7f, 0x1b, 0x79, 0xdb, 0x33, 0x86, 0xfc,
0xef, 0x08, 0xae, 0x6c, 0x91, 0x20, 0x44, 0x7d, 0x2a, 0xbc, 0xf2, 0xa4, 0xda, 0xf2, 0x42, 0xdc,
0x29, 0x4a, 0xf0, 0x27, 0xe2, 0xbb, 0xff, 0x88, 0x60, 0x91, 0xf9, 0xd5, 0xd3, 0xa1, 0x04, 0x93,
0x84, 0x75, 0xbf, 0x43, 0xe2, 0xba, 0x89, 0x22, 0x9e, 0x46, 0x74, 0x0a, 0xc5, 0xcb, 0xa8, 0x14,
0x8f, 0x81, 0x0b, 0x29, 0xdb, 0x9b, 0xb4, 0x96, 0x6d, 0x64, 0x19, 0xb8, 0x28, 0x4d, 0xff, 0x39,
0x82, 0xa5, 0x61, 0xcc, 0xb9, 0x4b, 0xf6, 0xba, 0xc4, 0x0d, 0x5e, 0x5e, 0x9e, 0x49, 0x69, 0x64,
0x14, 0xd1, 0xe2, 0x65, 0x28, 0x51, 0xb1, 0x4e, 0x18, 0x4e, 0x8e, 0x08, 0xfa, 0x27, 0x08, 0x2e,
0x1c, 0x82, 0x33, 0x8d, 0xb0, 0x6a, 0x30, 0x63, 0xbb, 0x16, 0x79, 0x16, 0xa2, 0x19, 0x36, 0x59,
0x4f, 0xab, 0x6f, 0x3b, 0x56, 0x08, 0x63, 0xd8, 0xc4, 0xcb, 0xa0, 0x11, 0xd7, 0x6c, 0x39, 0xa4,
0xc9, 0x79, 0xf9, 0xa1, 0x16, 0x8d, 0xb2, 0xa0, 0x6d, 0x33, 0x92, 0xfe, 0x0b, 0x04, 0xf3, 0xec,
0x4c, 0x25, 0x46, 0xfa, 0x6a, 0x65, 0xd6, 0x80, 0x72, 0xe4, 0xd0, 0x24, 0xdc, 0x28, 0x49, 0x7f,
0x0a, 0x0b, 0x71, 0x38, 0xd3, 0xc8, 0xec, 0x35, 0x80, 0xf0, 0x44, 0x84, 0x6e, 0x65, 0x8d, 0x08,
0x45, 0xff, 0x2f, 0x02, 0x2c, 0xc2, 0x0b, 0x2e, 0x8c, 0x93, 0xb4, 0xbf, 0x2b, 0x00, 0x4f, 0x6c,
0xe2, 0x58, 0x51, 0x0f, 0x56, 0xe2, 0x14, 0xde, 0xbd, 0x09, 0x1a, 0x79, 0x16, 0xf8, 0x66, 0xb3,
0x67, 0xfa, 0x66, 0x57, 0x3c, 0x2e, 0x26, 0x72, 0x36, 0x65, 0x3e, 0x6c, 0x87, 0x8f, 0xd2, 0xff,
0xc1, 0x02, 0x13, 0xa9, 0x94, 0xa7, 0x7d, 0xc7, 0x57, 0x00, 0xb8, 0xd2, 0x8a, 0xee, 0xbc, 0xe8,
0xe6, 0x14, 0xee, 0xce, 0x3f, 0x41, 0x50, 0xe5, 0x5b, 0x10, 0xfb, 0xe9, 0xb1, 0x69, 0x13, 0x63,
0x50, 0x62, 0xcc, 0x18, 0x13, 0xfa, 0x1a, 0x14, 0xa4, 0x60, 0xb3, 0x93, 0x0a, 0x56, 0x0e, 0x38,
0x62, 0x1b, 0xfa, 0x1f, 0x10, 0x2c, 0x26, 0x44, 0x3e, 0x8d, 0x46, 0x3f, 0x02, 0x2c, 0x76, 0x68,
0x8d, 0xb6, 0x3d, 0xbc, 0x7a, 0x12, 0x2f, 0x62, 0xd9, 0x48, 0x0a, 0xc9, 0x38, 0x6f, 0x27, 0x28,
0x54, 0xff, 0x17, 0x82, 0xcb, 0x5b, 0x24, 0xe0, 0xac, 0x1b, 0xcc, 0x77, 0xec, 0xf8, 0xde, 0x9e,
0x4f, 0x28, 0x3d, 0xbb, 0xfa, 0xf1, 0x1b, 0x11, 0xab, 0xa8, 0xb6, 0x34, 0x8d, 0xfc, 0x97, 0x41,
0xe3, 0x6b, 0x10, 0xab, 0xe9, 0x7b, 0x07, 0x54, 0xea, 0x51, 0x59, 0xd2, 0x0c, 0xef, 0x80, 0x2b,
0x44, 0xe0, 0x05, 0xa6, 0x23, 0x18, 0xe4, 0xc5, 0xc0, 0x29, 0xac, 0x9b, 0xdb, 0xe0, 0x10, 0x18,
0x9b, 0x9c, 0x9c, 0x5d, 0x19, 0x7f, 0x84, 0x60, 0x31, 0xb1, 0x95, 0x69, 0x64, 0x7b, 0x47, 0x44,
0x52, 0x62, 0x33, 0xb3, 0x6b, 0x57, 0x95, 0x63, 0x22, 0x8b, 0x09, 0x6e, 0xfd, 0x53, 0x04, 0x55,
0xf6, 0xda, 0x3a, 0xe3, 0x0e, 0xed, 0x7f, 0x08, 0x2a, 0xdb, 0x2e, 0x25, 0x7e, 0x70, 0xfa, 0x83,
0x69, 0x7c, 0x1b, 0x8a, 0xbe, 0x77, 0xd0, 0xb4, 0xcc, 0xc0, 0x94, 0x57, 0xd1, 0x45, 0x25, 0xbc,
0x0d, 0xc7, 0x6b, 0x19, 0x33, 0xbe, 0x77, 0xb0, 0x69, 0x06, 0x26, 0xbe, 0x04, 0xa5, 0x8e, 0x49,
0x3b, 0xcd, 0xa7, 0x64, 0x40, 0x6b, 0x85, 0x46, 0x76, 0xa5, 0x62, 0x14, 0x19, 0xe1, 0x01, 0x19,
0x50, 0xa6, 0x4c, 0xb3, 0xc3, 0xfd, 0x4f, 0xa3, 0x45, 0x57, 0xa1, 0xec, 0x7b, 0x07, 0xdb, 0x9b,
0xcd, 0x16, 0xd9, 0xb3, 0x5d, 0x69, 0xa0, 0xc0, 0x49, 0x1b, 0x8c, 0xc2, 0x50, 0x08, 0x06, 0xe2,
0x5a, 0xd2, 0x3c, 0x8b, 0x9c, 0xf0, 0x1d, 0xd7, 0xd2, 0xf7, 0xa1, 0xba, 0xe3, 0x98, 0x6d, 0xd2,
0xf1, 0x1c, 0x8b, 0xf8, 0xdc, 0xdb, 0xe3, 0x2a, 0x64, 0x03, 0x73, 0x4f, 0x5e, 0x27, 0xec, 0x13,
0x7f, 0x15, 0x72, 0xc1, 0xa0, 0x37, 0x54, 0xd4, 0x2f, 0x2a, 0xfd, 0x6e, 0x64, 0x9a, 0x47, 0x83,
0x1e, 0x31, 0xf8, 0x08, 0xbc, 0x04, 0x05, 0x9e, 0xd8, 0x15, 0x17, 0x8d, 0x66, 0xc8, 0x96, 0xfe,
0x38, 0xb6, 0xee, 0x96, 0xef, 0xf5, 0x7b, 0x78, 0x1b, 0xb4, 0xde, 0x88, 0xc6, 0x84, 0x90, 0xee,
0xe5, 0x93, 0xa0, 0x8d, 0xd8, 0x50, 0xfd, 0x3f, 0x19, 0xa8, 0xec, 0x12, 0xd3, 0x6f, 0x77, 0xce,
0xc2, 0x43, 0x93, 0x49, 0xdc, 0xa2, 0x8e, 0xb4, 0x11, 0xf6, 0x89, 0x6f, 0xc2, 0xf9, 0xc8, 0x86,
0x9a, 0x7b, 0x4c, 0x40, 0xb5, 0x02, 0x2f, 0x8e, 0x54, 0x7b, 0x49, 0xc1, 0xbd, 0x0d, 0x45, 0x8b,
0x3a, 0x4d, 0x7e, 0x44, 0x33, 0xfc, 0x88, 0xd4, 0xfb, 0xdb, 0xa4, 0x0e, 0x3f, 0x9a, 0x19, 0x4b,
0x7c, 0xe0, 0x7b, 0x50, 0xa1, 0x5c, 0x4a, 0xc3, 0x30, 0xab, 0x38, 0x69, 0x34, 0xa0, 0x89, 0x71,
0x32, 0xce, 0x7a, 0x00, 0xb9, 0xfb, 0x76, 0xc0, 0xf7, 0xc1, 0x02, 0x4f, 0xc4, 0x03, 0x4f, 0xf6,
0x89, 0x2f, 0x46, 0x0c, 0x27, 0xc3, 0x35, 0x20, 0xb4, 0x0e, 0x5e, 0xf4, 0xf1, 0x7c, 0xa9, 0x1a,
0x19, 0x43, 0xb6, 0xf4, 0xef, 0x8d, 0x8e, 0x8e, 0xf6, 0x9d, 0x80, 0xbe, 0x9c, 0x59, 0x60, 0xc8,
0x75, 0x6c, 0xf9, 0x4a, 0xd5, 0x0c, 0xfe, 0xad, 0xff, 0x08, 0x81, 0x76, 0xcf, 0xe9, 0xd3, 0x57,
0xa1, 0x14, 0xaa, 0x24, 0x5f, 0x56, 0x9d, 0xe4, 0xfb, 0x67, 0x06, 0x16, 0x77, 0x88, 0x4f, 0x6d,
0x1a, 0x10, 0x37, 0x90, 0x91, 0xff, 0xb6, 0xfb, 0xc4, 0x8b, 0x3f, 0xb1, 0x50, 0xe2, 0x89, 0xf5,
0xd9, 0x3c, 0x38, 0x98, 0x3b, 0xf0, 0x7a, 0xc4, 0x6d, 0x06, 0xb6, 0x74, 0x76, 0x39, 0xa3, 0xc8,
0x08, 0x8f, 0xec, 0x2e, 0x61, 0xce, 0x84, 0x12, 0xd3, 0x21, 0x96, 0xe8, 0xce, 0xf3, 0x6e, 0x10,
0x24, 0xce, 0xb0, 0x0c, 0xda, 0x13, 0x26, 0xc1, 0x21, 0x47, 0x81, 0x73, 0x94, 0x25, 0x8d, 0xb3,
0x5c, 0x84, 0xa2, 0xdb, 0xef, 0x8a, 0x68, 0x60, 0x46, 0x84, 0x9d, 0x6e, 0xbf, 0xcb, 0x43, 0x85,
0x8b, 0x50, 0xec, 0x92, 0x6e, 0x93, 0xda, 0xcf, 0x49, 0xad, 0x28, 0xba, 0xba, 0xa4, 0xbb, 0x6b,
0x3f, 0x27, 0xc3, 0xb4, 0x02, 0xa9, 0x95, 0xb8, 0x02, 0xab, 0x55, 0x50, 0xca, 0x2a, 0x76, 0x1d,
0xfe, 0x4a, 0x24, 0xa9, 0x95, 0x02, 0x7d, 0xf9, 0x73, 0x5e, 0x02, 0x79, 0xb0, 0x89, 0x63, 0xfe,
0x12, 0x24, 0x8c, 0x3c, 0x25, 0x75, 0xfe, 0x5b, 0x04, 0x8d, 0x74, 0x54, 0xd3, 0xf8, 0xfb, 0x6f,
0x41, 0xde, 0x76, 0x9f, 0x78, 0xc3, 0x20, 0xf8, 0x86, 0xda, 0x3d, 0x2a, 0xd7, 0x15, 0x03, 0xf5,
0x7f, 0x23, 0xa8, 0xbe, 0xd7, 0x27, 0xfe, 0xe0, 0xf3, 0x56, 0xbd, 0xe8, 0xf1, 0xe7, 0xe2, 0xc7,
0x1f, 0x55, 0x9a, 0x7c, 0x5c, 0x69, 0xe2, 0x71, 0x44, 0x61, 0xcc, 0x23, 0x67, 0x26, 0xf6, 0xc8,
0xd1, 0x5f, 0x20, 0xa8, 0x6f, 0x91, 0x20, 0xb9, 0xd5, 0x93, 0x53, 0x8a, 0x8f, 0x11, 0x5c, 0x52,
0x02, 0x9a, 0x46, 0x1f, 0xbe, 0x1e, 0xd7, 0x07, 0xf5, 0x75, 0x79, 0x68, 0x49, 0xa9, 0x0a, 0x8b,
0x30, 0x6f, 0x90, 0x3d, 0xa6, 0x29, 0xfe, 0x3b, 0xb6, 0xfb, 0x54, 0x8a, 0x86, 0xc5, 0x26, 0x0b,
0x71, 0xba, 0x44, 0xf8, 0x15, 0x98, 0x31, 0x2d, 0x8b, 0x3d, 0x2b, 0xc6, 0x8a, 0xed, 0xdb, 0x82,
0xc7, 0x18, 0x32, 0x47, 0x76, 0x96, 0x99, 0x78, 0x67, 0x37, 0xbe, 0x09, 0x73, 0x89, 0xa0, 0x02,
0x17, 0x21, 0xf7, 0xd0, 0x73, 0x49, 0xf5, 0x1c, 0xae, 0x82, 0xb6, 0x61, 0xbb, 0xa6, 0x3f, 0x78,
0x9f, 0xb4, 0x03, 0xcf, 0xaf, 0x5a, 0x78, 0x0e, 0xca, 0xf7, 0x1c, 0xcf, 0x0c, 0x24, 0x81, 0xac,
0xfd, 0x72, 0x11, 0x2a, 0xef, 0xf2, 0x65, 0x76, 0x89, 0xbf, 0x6f, 0xb7, 0x09, 0x6e, 0x42, 0x35,
0xf9, 0xdb, 0x03, 0x7e, 0x43, 0x29, 0xb0, 0x94, 0xbf, 0x23, 0xea, 0xe3, 0x80, 0xeb, 0xe7, 0xf0,
0x87, 0x30, 0x1b, 0xff, 0x21, 0x01, 0xab, 0xed, 0x53, 0xf9, 0xd7, 0xc2, 0x51, 0x93, 0x37, 0xa1,
0x12, 0xfb, 0xbf, 0x00, 0x5f, 0x57, 0xce, 0xad, 0xfa, 0x07, 0xa1, 0xbe, 0xac, 0x64, 0x8d, 0xfe,
0x22, 0x20, 0xd0, 0xc7, 0x8b, 0xb4, 0x29, 0xe8, 0x95, 0x95, 0xdc, 0xa3, 0xd0, 0x9b, 0x70, 0xfe,
0x50, 0xcd, 0x15, 0xbf, 0xa9, 0x9c, 0x3f, 0xad, 0x36, 0x7b, 0xd4, 0x12, 0x07, 0x80, 0x0f, 0x57,
0xe1, 0xf1, 0x2d, 0xf5, 0x09, 0xa4, 0xfd, 0x64, 0x50, 0x5f, 0x9d, 0x98, 0x3f, 0x14, 0xdc, 0x8f,
0x11, 0x5c, 0x48, 0x29, 0x94, 0xe2, 0x75, 0xe5, 0x74, 0xe3, 0xab, 0xbd, 0xf5, 0xdb, 0xc7, 0x1b,
0x14, 0x02, 0x71, 0x61, 0x2e, 0x51, 0xba, 0xc4, 0x37, 0x95, 0x53, 0xa9, 0xab, 0xa8, 0xf5, 0x37,
0x26, 0x63, 0x0e, 0xd7, 0x7b, 0x0c, 0x73, 0x89, 0x72, 0x65, 0xca, 0x7a, 0xea, 0xa2, 0xe6, 0x51,
0x07, 0xfa, 0x01, 0x54, 0x62, 0x75, 0xc5, 0x14, 0x8d, 0x57, 0xd5, 0x1e, 0x8f, 0x9a, 0xfa, 0x31,
0x68, 0xd1, 0xf2, 0x1f, 0x5e, 0x49, 0xb3, 0xa5, 0x43, 0x13, 0x1f, 0xc7, 0x94, 0x46, 0x95, 0x83,
0x31, 0xa6, 0x74, 0xa8, 0x20, 0x32, 0xb9, 0x29, 0x45, 0xe6, 0x1f, 0x6b, 0x4a, 0xc7, 0x5e, 0xe2,
0x23, 0x04, 0x4b, 0xea, 0xea, 0x11, 0x5e, 0x4b, 0xd3, 0xcd, 0xf4, 0x3a, 0x59, 0x7d, 0xfd, 0x58,
0x63, 0x42, 0x29, 0x3e, 0x85, 0xd9, 0x78, 0xfd, 0x25, 0x45, 0x8a, 0xca, 0xb2, 0x52, 0xfd, 0xe6,
0x44, 0xbc, 0xe1, 0x62, 0xdf, 0x85, 0x72, 0x24, 0x37, 0x8e, 0x5f, 0x1f, 0xa3, 0xc7, 0xd1, 0xd4,
0xcb, 0x51, 0x92, 0xec, 0x40, 0x25, 0x96, 0x0f, 0x4d, 0xd3, 0x61, 0x45, 0x9a, 0xba, 0x7e, 0x63,
0x12, 0xd6, 0x70, 0x03, 0x1d, 0xa8, 0xc4, 0xb2, 0x53, 0x29, 0x2b, 0xa9, 0x92, 0x71, 0x29, 0x2b,
0x29, 0x93, 0x5d, 0xfa, 0x39, 0xfc, 0xc3, 0x48, 0x22, 0x2c, 0x96, 0x6c, 0xc4, 0x5f, 0x1e, 0x3b,
0x8f, 0x2a, 0xd7, 0x5a, 0x5f, 0x3b, 0xce, 0x90, 0x10, 0xc2, 0x7b, 0x50, 0x0a, 0x93, 0x60, 0xf8,
0x5a, 0xaa, 0x5b, 0x38, 0xce, 0x49, 0xed, 0x42, 0x41, 0x24, 0x64, 0xb0, 0x9e, 0x92, 0x59, 0x8e,
0x64, 0xab, 0xea, 0x5f, 0x18, 0xcb, 0x13, 0xe2, 0x34, 0xa0, 0x20, 0x5e, 0xb3, 0x29, 0x93, 0xc6,
0xb2, 0x14, 0xf5, 0xf1, 0x3c, 0xfc, 0x39, 0xac, 0x9f, 0xc3, 0xdb, 0x90, 0xe7, 0xcf, 0x58, 0xac,
0x76, 0x45, 0xd1, 0x27, 0xee, 0x51, 0x7b, 0xfe, 0x09, 0x82, 0x5a, 0xda, 0x3b, 0x05, 0xa7, 0xde,
0x42, 0xe3, 0x1e, 0x5b, 0xf5, 0x3b, 0xc7, 0x1c, 0x15, 0x8a, 0xea, 0x39, 0xcc, 0x2b, 0xa2, 0x63,
0xbc, 0x9a, 0x36, 0x5f, 0x4a, 0x60, 0x5f, 0x7f, 0x6b, 0xf2, 0x01, 0xe1, 0xda, 0x04, 0xb4, 0x68,
0xc0, 0x9b, 0x72, 0x1d, 0x28, 0x62, 0xe5, 0xfa, 0xf5, 0x09, 0x38, 0x87, 0xcb, 0xac, 0xf5, 0x41,
0xdb, 0xf1, 0xbd, 0x67, 0x83, 0x61, 0x40, 0xfa, 0xf9, 0x2c, 0xbb, 0x71, 0xe7, 0xfb, 0xeb, 0x7b,
0x76, 0xd0, 0xe9, 0xb7, 0xd8, 0xf9, 0xaf, 0x0a, 0xde, 0x37, 0x6d, 0x4f, 0x7e, 0xad, 0xda, 0x6e,
0x40, 0x7c, 0xd7, 0x74, 0x56, 0xf9, 0x5c, 0x92, 0xda, 0x6b, 0xb5, 0x0a, 0xbc, 0xbd, 0xfe, 0xff,
0x00, 0x00, 0x00, 0xff, 0xff, 0x83, 0x86, 0xb3, 0x8f, 0x6e, 0x2c, 0x00, 0x00,
// 2184 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x1a, 0x5d, 0x6f, 0x1b, 0x59,
0xb5, 0xd7, 0x5f, 0xb1, 0x8f, 0xed, 0xc4, 0x7b, 0xf3, 0xe5, 0xb8, 0xed, 0xd6, 0x19, 0x28, 0x9b,
0xb6, 0xbb, 0xcd, 0x92, 0xb4, 0x2c, 0x08, 0x81, 0x20, 0x0d, 0x4d, 0xa3, 0xee, 0x56, 0xd9, 0x71,
0x59, 0xb1, 0xac, 0x2a, 0x6b, 0xec, 0xb9, 0x8d, 0x47, 0x1d, 0xcf, 0x98, 0xb9, 0xe3, 0xa4, 0xee,
0x13, 0x62, 0x11, 0x12, 0x02, 0xba, 0x48, 0x20, 0x24, 0x78, 0xe0, 0x01, 0x69, 0x1f, 0x78, 0x02,
0x04, 0x12, 0x12, 0xcf, 0xfb, 0x80, 0xc4, 0x0b, 0xe2, 0x3f, 0xf0, 0x06, 0x3f, 0x01, 0x09, 0xdd,
0x0f, 0x8f, 0x67, 0x26, 0x77, 0x1c, 0xa7, 0xde, 0x6e, 0x92, 0xb7, 0x99, 0x33, 0xe7, 0xdc, 0x7b,
0xbe, 0xef, 0xb9, 0xe7, 0x0c, 0x94, 0xba, 0x96, 0x7d, 0xd0, 0xa7, 0x37, 0x7b, 0x9e, 0xeb, 0xbb,
0x78, 0x3e, 0xfc, 0x76, 0x53, 0xbc, 0xd4, 0x4a, 0x6d, 0xb7, 0xdb, 0x75, 0x1d, 0x01, 0xac, 0x95,
0x68, 0xbb, 0x43, 0xba, 0x86, 0x78, 0xd3, 0x3e, 0x41, 0xb0, 0x7c, 0xc7, 0x23, 0x86, 0x4f, 0xee,
0xb8, 0xb6, 0x4d, 0xda, 0xbe, 0xe5, 0x3a, 0x3a, 0xf9, 0x5e, 0x9f, 0x50, 0x1f, 0xbf, 0x09, 0x99,
0x96, 0x41, 0x49, 0x15, 0xd5, 0xd1, 0x5a, 0x71, 0xe3, 0xd2, 0xcd, 0xc8, 0xda, 0x72, 0xcd, 0x77,
0xe8, 0xfe, 0x96, 0x41, 0x89, 0xce, 0x31, 0xf1, 0x32, 0xcc, 0x98, 0xad, 0xa6, 0x63, 0x74, 0x49,
0x35, 0x55, 0x47, 0x6b, 0x05, 0x3d, 0x67, 0xb6, 0x1e, 0x18, 0x5d, 0x82, 0x5f, 0x83, 0xb9, 0x76,
0xb0, 0xbe, 0x40, 0x48, 0x73, 0x84, 0xd9, 0x11, 0x98, 0x23, 0x2e, 0x41, 0x4e, 0xf0, 0x57, 0xcd,
0xd4, 0xd1, 0x5a, 0x49, 0x97, 0x6f, 0xf8, 0x32, 0x00, 0xed, 0x18, 0x9e, 0x49, 0x9b, 0x4e, 0xbf,
0x5b, 0xcd, 0xd6, 0xd1, 0x5a, 0x56, 0x2f, 0x08, 0xc8, 0x83, 0x7e, 0x57, 0xfb, 0x09, 0x82, 0xc5,
0x6d, 0xcf, 0xed, 0x9d, 0x09, 0x21, 0xb4, 0xdf, 0x23, 0x58, 0xb8, 0x67, 0xd0, 0xb3, 0xa1, 0xd1,
0xcb, 0x00, 0xbe, 0xd5, 0x25, 0x4d, 0xea, 0x1b, 0xdd, 0x1e, 0xd7, 0x6a, 0x46, 0x2f, 0x30, 0x48,
0x83, 0x01, 0xb4, 0xf7, 0xa1, 0xb4, 0xe5, 0xba, 0xb6, 0x4e, 0x68, 0xcf, 0x75, 0x28, 0xc1, 0x9b,
0x90, 0xa3, 0xbe, 0xe1, 0xf7, 0xa9, 0x64, 0xf2, 0xa2, 0x92, 0xc9, 0x06, 0x47, 0xd1, 0x25, 0x2a,
0x5e, 0x80, 0xec, 0x81, 0x61, 0xf7, 0x05, 0x8f, 0x79, 0x5d, 0xbc, 0x68, 0x1f, 0xc0, 0x6c, 0xc3,
0xf7, 0x2c, 0x67, 0xff, 0x53, 0x5c, 0xbc, 0x30, 0x5c, 0xfc, 0x5f, 0x08, 0x56, 0xb6, 0x09, 0x6d,
0x7b, 0x56, 0xeb, 0x8c, 0xb8, 0xae, 0x06, 0xa5, 0x11, 0x64, 0x77, 0x9b, 0xab, 0x3a, 0xad, 0x47,
0x60, 0x31, 0x63, 0x64, 0xe3, 0xc6, 0xf8, 0x6d, 0x0a, 0x6a, 0x2a, 0xa1, 0xa6, 0x51, 0xdf, 0xd7,
0x82, 0x88, 0x4a, 0x71, 0xa2, 0xab, 0x51, 0x22, 0x99, 0x0d, 0x46, 0xbb, 0x35, 0x38, 0x20, 0x08,
0xbc, 0xb8, 0x54, 0x69, 0x85, 0x54, 0x1b, 0xb0, 0x78, 0x60, 0x79, 0x7e, 0xdf, 0xb0, 0x9b, 0xed,
0x8e, 0xe1, 0x38, 0xc4, 0xe6, 0x7a, 0xa2, 0xd5, 0x4c, 0x3d, 0xbd, 0x56, 0xd0, 0xe7, 0xe5, 0xc7,
0x3b, 0xe2, 0x1b, 0x53, 0x16, 0xc5, 0xb7, 0x60, 0xa9, 0xd7, 0x19, 0x50, 0xab, 0x7d, 0x84, 0x28,
0xcb, 0x89, 0x16, 0x86, 0x5f, 0xc3, 0x54, 0x3c, 0xce, 0xdf, 0x76, 0x0d, 0xf3, 0x6c, 0xc4, 0xf9,
0x73, 0x04, 0x55, 0x9d, 0xd8, 0xc4, 0xa0, 0x67, 0xc3, 0x05, 0xb5, 0x5f, 0x22, 0x78, 0x75, 0x87,
0xf8, 0x21, 0x63, 0xfa, 0x86, 0x6f, 0x51, 0xdf, 0x6a, 0xd3, 0xd3, 0x64, 0xeb, 0x23, 0x04, 0x57,
0x12, 0xd9, 0x9a, 0xc6, 0xb7, 0xdf, 0x82, 0x2c, 0x7b, 0xa2, 0xd5, 0x54, 0x3d, 0xbd, 0x56, 0xdc,
0x58, 0x55, 0xd2, 0xdc, 0x27, 0x83, 0xf7, 0x58, 0xca, 0xd8, 0x33, 0x2c, 0x4f, 0x17, 0xf8, 0xda,
0x0f, 0x10, 0x2c, 0x35, 0x3a, 0xee, 0xe1, 0x88, 0xa5, 0x97, 0xa1, 0xa0, 0x68, 0xb4, 0xa7, 0xe3,
0xd1, 0x3e, 0x80, 0xe5, 0x23, 0x3c, 0x4c, 0xa3, 0x8d, 0x6b, 0x50, 0x89, 0xd9, 0x43, 0x28, 0xa6,
0xa0, 0xcf, 0x45, 0x0d, 0x42, 0xb5, 0x3f, 0x23, 0x58, 0x12, 0xc7, 0xfe, 0x9e, 0xe1, 0xf9, 0xd6,
0x69, 0xa7, 0xce, 0xab, 0x30, 0xdb, 0x1b, 0xf2, 0x21, 0xf0, 0x32, 0x1c, 0xaf, 0x1c, 0x40, 0xb9,
0x1f, 0xfd, 0x09, 0xc1, 0x02, 0x3b, 0xe5, 0xcf, 0x13, 0xcf, 0x7f, 0x44, 0x30, 0x7f, 0xcf, 0xa0,
0xe7, 0x89, 0xe5, 0xbf, 0xc8, 0x24, 0x1b, 0xf0, 0x7c, 0x9a, 0xc9, 0x83, 0x21, 0x46, 0x99, 0x1e,
0x1e, 0x2b, 0xb3, 0x11, 0xae, 0xa9, 0xf6, 0xd7, 0x51, 0x36, 0x3e, 0x67, 0x9c, 0xff, 0x0d, 0xc1,
0xe5, 0x1d, 0xe2, 0x07, 0x5c, 0x9f, 0x89, 0xac, 0x3d, 0xa9, 0xb7, 0x3c, 0x17, 0x67, 0x8e, 0x92,
0xf9, 0x53, 0xc9, 0xed, 0x7f, 0x40, 0xb0, 0xc8, 0xf2, 0xea, 0xd9, 0x70, 0x82, 0x09, 0xaa, 0x42,
0xed, 0x37, 0xf2, 0x34, 0x0a, 0x73, 0x3c, 0x8d, 0xea, 0x14, 0x8e, 0x97, 0x52, 0x39, 0x1e, 0x63,
0x2e, 0x80, 0xec, 0x6e, 0xd3, 0x6a, 0xba, 0x9e, 0x66, 0xcc, 0x85, 0x61, 0xda, 0x4f, 0x11, 0x2c,
0x0d, 0x6b, 0xd2, 0x06, 0xd9, 0xef, 0x12, 0xc7, 0x7f, 0x71, 0x7d, 0xc6, 0xb5, 0x91, 0x52, 0x54,
0x93, 0x97, 0xa0, 0x40, 0xc5, 0x3e, 0x41, 0xb9, 0x39, 0x02, 0x68, 0x1f, 0x23, 0x58, 0x3e, 0xc2,
0xce, 0x34, 0xca, 0xaa, 0xc2, 0x8c, 0xe5, 0x98, 0xe4, 0x69, 0xc0, 0xcd, 0xf0, 0x95, 0x7d, 0x69,
0xf5, 0x2d, 0xdb, 0x0c, 0xd8, 0x18, 0xbe, 0xe2, 0x55, 0x28, 0x11, 0xc7, 0x68, 0xd9, 0xa4, 0xc9,
0x71, 0xb9, 0x51, 0xf3, 0x7a, 0x51, 0xc0, 0x76, 0x19, 0x48, 0xfb, 0x19, 0x82, 0x79, 0x66, 0x53,
0xc9, 0x23, 0x7d, 0xb9, 0x3a, 0xab, 0x43, 0x31, 0x64, 0x34, 0xc9, 0x6e, 0x18, 0xa4, 0x3d, 0x81,
0x85, 0x28, 0x3b, 0xd3, 0xe8, 0xec, 0x55, 0x80, 0xc0, 0x22, 0xc2, 0xb7, 0xd2, 0x7a, 0x08, 0xa2,
0xfd, 0x17, 0x01, 0x16, 0xe5, 0x05, 0x57, 0xc6, 0x29, 0x5f, 0x7f, 0x1f, 0x5b, 0xc4, 0x36, 0xc3,
0x19, 0xac, 0xc0, 0x21, 0xfc, 0xf3, 0x36, 0x94, 0xc8, 0x53, 0xdf, 0x33, 0x9a, 0x3d, 0xc3, 0x33,
0xba, 0xe2, 0xf2, 0x31, 0x51, 0xb2, 0x29, 0x72, 0xb2, 0x3d, 0x4e, 0xa5, 0xfd, 0x9d, 0x15, 0x26,
0xd2, 0x29, 0xcf, 0xba, 0xc4, 0x97, 0x01, 0xb8, 0xd3, 0x8a, 0xcf, 0x59, 0xf1, 0x99, 0x43, 0x78,
0x3a, 0xff, 0x18, 0x41, 0x85, 0x8b, 0x20, 0xe4, 0xe9, 0xb1, 0x65, 0x63, 0x34, 0x28, 0x46, 0x33,
0x26, 0x84, 0xbe, 0x02, 0x39, 0xa9, 0xd8, 0xf4, 0xa4, 0x8a, 0x95, 0x04, 0xc7, 0x88, 0xa1, 0xfd,
0x0e, 0xc1, 0x62, 0x4c, 0xe5, 0xd3, 0x78, 0xf4, 0x43, 0xc0, 0x42, 0x42, 0x73, 0x24, 0xf6, 0xf0,
0xe8, 0x89, 0xdd, 0x98, 0xe5, 0x4b, 0x5c, 0x49, 0xfa, 0x2b, 0x56, 0x0c, 0x42, 0xb5, 0x7f, 0x22,
0xb8, 0xb4, 0x43, 0x7c, 0x8e, 0xba, 0xc5, 0x72, 0xc7, 0x9e, 0xe7, 0xee, 0x7b, 0x84, 0xd2, 0xf3,
0xeb, 0x1f, 0xbf, 0x12, 0xb5, 0x8a, 0x4a, 0xa4, 0x69, 0xf4, 0xbf, 0x0a, 0x25, 0xbe, 0x07, 0x31,
0x9b, 0x9e, 0x7b, 0x48, 0xa5, 0x1f, 0x15, 0x25, 0x4c, 0x77, 0x0f, 0xb9, 0x43, 0xf8, 0xae, 0x6f,
0xd8, 0x02, 0x41, 0x1e, 0x0c, 0x1c, 0xc2, 0x3e, 0xf3, 0x18, 0x1c, 0x32, 0xc6, 0x16, 0x27, 0xe7,
0x57, 0xc7, 0x1f, 0x22, 0x58, 0x8c, 0x89, 0x32, 0x8d, 0x6e, 0x6f, 0x8b, 0x4a, 0x4a, 0x08, 0x33,
0xbb, 0x71, 0x45, 0x49, 0x13, 0xda, 0x4c, 0x60, 0x6b, 0x9f, 0x20, 0xa8, 0xb0, 0xdb, 0xd6, 0x39,
0x4f, 0x68, 0xff, 0x43, 0x50, 0xde, 0x75, 0x28, 0xf1, 0xfc, 0xb3, 0x5f, 0x4c, 0xe3, 0x5b, 0x90,
0xf7, 0xdc, 0xc3, 0xa6, 0x69, 0xf8, 0x86, 0x3c, 0x8a, 0x56, 0x94, 0xec, 0x6d, 0xd9, 0x6e, 0x4b,
0x9f, 0xf1, 0xdc, 0xc3, 0x6d, 0xc3, 0x37, 0xf0, 0x45, 0x28, 0x74, 0x0c, 0xda, 0x69, 0x3e, 0x21,
0x03, 0x5a, 0xcd, 0xd5, 0xd3, 0x6b, 0x65, 0x3d, 0xcf, 0x00, 0xf7, 0xc9, 0x80, 0x32, 0x67, 0x9a,
0x1d, 0xca, 0x3f, 0x8d, 0x17, 0x5d, 0x81, 0xa2, 0xe7, 0x1e, 0xee, 0x6e, 0x37, 0x5b, 0x64, 0xdf,
0x72, 0x64, 0x80, 0x02, 0x07, 0x6d, 0x31, 0x08, 0xe3, 0x42, 0x20, 0x10, 0xc7, 0x94, 0xe1, 0x99,
0xe7, 0x80, 0x6f, 0x39, 0xa6, 0x76, 0x00, 0x95, 0x3d, 0xdb, 0x68, 0x93, 0x8e, 0x6b, 0x9b, 0xc4,
0xe3, 0xd9, 0x1e, 0x57, 0x20, 0xed, 0x1b, 0xfb, 0xf2, 0x38, 0x61, 0x8f, 0xf8, 0xcb, 0x90, 0xf1,
0x07, 0xbd, 0xa1, 0xa3, 0x7e, 0x5e, 0x99, 0x77, 0x43, 0xcb, 0x3c, 0x1c, 0xf4, 0x88, 0xce, 0x29,
0xf0, 0x12, 0xe4, 0x78, 0x5f, 0x58, 0x1c, 0x34, 0x25, 0x5d, 0xbe, 0x69, 0x8f, 0x22, 0xfb, 0xee,
0x78, 0x6e, 0xbf, 0x87, 0x77, 0xa1, 0xd4, 0x1b, 0xc1, 0x98, 0x12, 0x92, 0xb3, 0x7c, 0x9c, 0x69,
0x3d, 0x42, 0xaa, 0xfd, 0x27, 0x05, 0xe5, 0x06, 0x31, 0xbc, 0x76, 0xe7, 0x3c, 0x5c, 0x34, 0x99,
0xc6, 0x4d, 0x6a, 0xcb, 0x18, 0x61, 0x8f, 0xf8, 0x06, 0xbc, 0x12, 0x12, 0xa8, 0xb9, 0xcf, 0x14,
0x54, 0xcd, 0xf1, 0xd1, 0x4b, 0xa5, 0x17, 0x57, 0xdc, 0x5b, 0x90, 0x37, 0xa9, 0xdd, 0xe4, 0x26,
0x9a, 0xe1, 0x26, 0x52, 0xcb, 0xb7, 0x4d, 0x6d, 0x6e, 0x9a, 0x19, 0x53, 0x3c, 0xe0, 0xbb, 0x50,
0xa6, 0x5c, 0x4b, 0xc3, 0x32, 0x2b, 0x3f, 0x69, 0x35, 0x50, 0x12, 0x74, 0xb2, 0xce, 0xba, 0x0f,
0x99, 0x7b, 0x96, 0xcf, 0xe5, 0x60, 0x85, 0x27, 0xe2, 0x85, 0x27, 0x7b, 0xc4, 0x2b, 0xa1, 0xc0,
0x49, 0x71, 0x0f, 0x08, 0xa2, 0x83, 0x8f, 0x94, 0x5c, 0x4f, 0xba, 0x46, 0x4a, 0x97, 0x6f, 0xda,
0x77, 0x46, 0xa6, 0xa3, 0x7d, 0xdb, 0xa7, 0x2f, 0x16, 0x16, 0x18, 0x32, 0x1d, 0x4b, 0xde, 0x52,
0x4b, 0x3a, 0x7f, 0xd6, 0x7e, 0x88, 0xa0, 0x74, 0xd7, 0xee, 0xd3, 0x97, 0xe1, 0x14, 0xaa, 0x26,
0x5f, 0x5a, 0xdd, 0xe4, 0xfb, 0x47, 0x0a, 0x16, 0xf7, 0x88, 0x47, 0x2d, 0xea, 0x13, 0xc7, 0x97,
0x95, 0xff, 0xae, 0xf3, 0xd8, 0x8d, 0x5e, 0xb1, 0x50, 0xec, 0x8a, 0xf5, 0xe9, 0x5c, 0x38, 0x58,
0x3a, 0x70, 0x7b, 0xc4, 0x69, 0xfa, 0x96, 0x4c, 0x76, 0x19, 0x3d, 0xcf, 0x00, 0x0f, 0xad, 0x2e,
0x61, 0xc9, 0x84, 0x12, 0xc3, 0x26, 0xa6, 0xf8, 0x2c, 0x06, 0x21, 0x20, 0x40, 0x1c, 0x61, 0x15,
0x4a, 0x8f, 0x99, 0x06, 0x87, 0x18, 0x39, 0x8e, 0x51, 0x94, 0x30, 0x8e, 0xb2, 0x02, 0x79, 0xa7,
0xdf, 0x15, 0xd5, 0xc0, 0x8c, 0x28, 0x3b, 0x9d, 0x7e, 0x97, 0x97, 0x0a, 0x2b, 0x90, 0xef, 0x92,
0x6e, 0x93, 0x5a, 0xcf, 0x48, 0x35, 0x2f, 0x3e, 0x75, 0x49, 0xb7, 0x61, 0x3d, 0x23, 0xc3, 0xb6,
0x02, 0xa9, 0x16, 0xb8, 0x03, 0xab, 0x5d, 0x50, 0xea, 0x2a, 0x72, 0x1c, 0xfe, 0x42, 0x34, 0xb1,
0x95, 0x0a, 0x7d, 0x71, 0x3b, 0x2f, 0x81, 0x34, 0x6c, 0xcc, 0xcc, 0x5f, 0x80, 0x58, 0x90, 0x27,
0xb4, 0xd6, 0x7f, 0x8d, 0xa0, 0x9e, 0xcc, 0xd5, 0x34, 0xf9, 0xfe, 0x1b, 0x90, 0xb5, 0x9c, 0xc7,
0xee, 0xb0, 0x08, 0xbe, 0xae, 0x4e, 0x8f, 0xca, 0x7d, 0x05, 0xa1, 0xf6, 0x6f, 0x04, 0x95, 0x77,
0xfb, 0xc4, 0x1b, 0x7c, 0xd6, 0xae, 0x17, 0x36, 0x7f, 0x26, 0x6a, 0xfe, 0xb0, 0xd3, 0x64, 0xa3,
0x4e, 0x13, 0xad, 0x23, 0x72, 0x63, 0x2e, 0x39, 0x33, 0x91, 0x4b, 0x8e, 0xf6, 0x1c, 0x41, 0x6d,
0x87, 0xf8, 0x71, 0x51, 0x4f, 0xcf, 0x29, 0x3e, 0x42, 0x70, 0x51, 0xc9, 0xd0, 0x34, 0xfe, 0xf0,
0xd5, 0xa8, 0x3f, 0xa8, 0x8f, 0xcb, 0x23, 0x5b, 0x4a, 0x57, 0x58, 0x84, 0x79, 0x9d, 0xec, 0x33,
0x4f, 0xf1, 0xde, 0xb6, 0x9c, 0x27, 0x52, 0x35, 0xac, 0x36, 0x59, 0x88, 0xc2, 0x25, 0x87, 0x5f,
0x82, 0x19, 0xc3, 0x34, 0xd9, 0xb5, 0x62, 0xac, 0xda, 0xbe, 0x29, 0x70, 0xf4, 0x21, 0x72, 0x48,
0xb2, 0xd4, 0xc4, 0x92, 0x5d, 0xff, 0x3a, 0xcc, 0xc5, 0x8a, 0x0a, 0x9c, 0x87, 0xcc, 0x03, 0xd7,
0x21, 0x95, 0x0b, 0xb8, 0x02, 0xa5, 0x2d, 0xcb, 0x31, 0xbc, 0xc1, 0x7b, 0xa4, 0xed, 0xbb, 0x5e,
0xc5, 0xc4, 0x73, 0x50, 0xbc, 0x6b, 0xbb, 0x86, 0x2f, 0x01, 0x64, 0xe3, 0xe7, 0x8b, 0x50, 0x7e,
0x87, 0x6f, 0xd3, 0x20, 0xde, 0x81, 0xd5, 0x26, 0xb8, 0x09, 0x95, 0xf8, 0x4f, 0x15, 0xf8, 0x75,
0xa5, 0xc2, 0x12, 0xfe, 0xbd, 0xa8, 0x8d, 0x63, 0x5c, 0xbb, 0x80, 0x3f, 0x80, 0xd9, 0xe8, 0xef,
0x0e, 0x58, 0x1d, 0x9f, 0xca, 0x7f, 0x22, 0x8e, 0x5b, 0xbc, 0x09, 0xe5, 0xc8, 0xdf, 0x0b, 0xf8,
0x9a, 0x72, 0x6d, 0xd5, 0x1f, 0x0e, 0xb5, 0x55, 0x25, 0x6a, 0xf8, 0x0f, 0x03, 0xc1, 0x7d, 0x74,
0x88, 0x9b, 0xc0, 0xbd, 0x72, 0xd2, 0x7b, 0x1c, 0xf7, 0x06, 0xbc, 0x72, 0x64, 0x26, 0x8b, 0xdf,
0x50, 0xae, 0x9f, 0x34, 0xbb, 0x3d, 0x6e, 0x8b, 0x43, 0xc0, 0x47, 0xa7, 0xf4, 0xf8, 0xa6, 0xda,
0x02, 0x49, 0xff, 0x28, 0xd4, 0xd6, 0x27, 0xc6, 0x0f, 0x14, 0xf7, 0x23, 0x04, 0xcb, 0x09, 0x83,
0x54, 0xbc, 0xa9, 0x5c, 0x6e, 0xfc, 0x34, 0xb8, 0x76, 0xeb, 0x64, 0x44, 0x01, 0x23, 0x0e, 0xcc,
0xc5, 0x46, 0x97, 0xf8, 0x86, 0x72, 0x29, 0xf5, 0x90, 0xb5, 0xf6, 0xfa, 0x64, 0xc8, 0xc1, 0x7e,
0x8f, 0x60, 0x2e, 0x36, 0xae, 0x4c, 0xd8, 0x4f, 0x3d, 0xd4, 0x3c, 0xce, 0xa0, 0xef, 0x43, 0x39,
0x32, 0x57, 0x4c, 0xf0, 0x78, 0xd5, 0xec, 0xf1, 0xb8, 0xa5, 0x1f, 0x41, 0x29, 0x3c, 0xfe, 0xc3,
0x6b, 0x49, 0xb1, 0x74, 0x64, 0xe1, 0x93, 0x84, 0xd2, 0x68, 0x72, 0x30, 0x26, 0x94, 0x8e, 0x0c,
0x44, 0x26, 0x0f, 0xa5, 0xd0, 0xfa, 0x63, 0x43, 0xe9, 0xc4, 0x5b, 0x7c, 0x88, 0x60, 0x49, 0x3d,
0x3d, 0xc2, 0x1b, 0x49, 0xbe, 0x99, 0x3c, 0x27, 0xab, 0x6d, 0x9e, 0x88, 0x26, 0xd0, 0xe2, 0x13,
0x98, 0x8d, 0xce, 0x5f, 0x12, 0xb4, 0xa8, 0x1c, 0x2b, 0xd5, 0x6e, 0x4c, 0x84, 0x1b, 0x6c, 0xf6,
0x6d, 0x28, 0x86, 0x7a, 0xe3, 0xf8, 0xb5, 0x31, 0x7e, 0x1c, 0x6e, 0xbd, 0x1c, 0xa7, 0xc9, 0x0e,
0x94, 0x23, 0xfd, 0xd0, 0x24, 0x1f, 0x56, 0xb4, 0xa9, 0x6b, 0xd7, 0x27, 0x41, 0x0d, 0x04, 0xe8,
0x40, 0x39, 0xd2, 0x9d, 0x4a, 0xd8, 0x49, 0xd5, 0x8c, 0x4b, 0xd8, 0x49, 0xd9, 0xec, 0xd2, 0x2e,
0xe0, 0xef, 0x87, 0x1a, 0x61, 0x91, 0x66, 0x23, 0xfe, 0xe2, 0xd8, 0x75, 0x54, 0xbd, 0xd6, 0xda,
0xc6, 0x49, 0x48, 0x02, 0x16, 0xde, 0x85, 0x42, 0xd0, 0x04, 0xc3, 0x57, 0x13, 0xd3, 0xc2, 0x49,
0x2c, 0xd5, 0x80, 0x9c, 0x68, 0xc8, 0x60, 0x2d, 0xa1, 0xb3, 0x1c, 0xea, 0x56, 0xd5, 0x3e, 0x37,
0x16, 0x27, 0xe0, 0x53, 0x87, 0x9c, 0xb8, 0xcd, 0x26, 0x2c, 0x1a, 0xe9, 0x52, 0xd4, 0xc6, 0xe3,
0xf0, 0xeb, 0xb0, 0x76, 0x01, 0xef, 0x42, 0x96, 0x5f, 0x63, 0xb1, 0x3a, 0x15, 0x85, 0xaf, 0xb8,
0xc7, 0xc9, 0xfc, 0x63, 0x04, 0xd5, 0xa4, 0x7b, 0x0a, 0x4e, 0x3c, 0x85, 0xc6, 0x5d, 0xb6, 0x6a,
0xb7, 0x4f, 0x48, 0x15, 0xa8, 0xea, 0x19, 0xcc, 0x2b, 0xaa, 0x63, 0xbc, 0x9e, 0xb4, 0x5e, 0x42,
0x61, 0x5f, 0x7b, 0x73, 0x72, 0x82, 0x60, 0x6f, 0x02, 0xa5, 0x70, 0xc1, 0x9b, 0x70, 0x1c, 0x28,
0x6a, 0xe5, 0xda, 0xb5, 0x09, 0x30, 0x87, 0xdb, 0x6c, 0xf4, 0xa1, 0xb4, 0xe7, 0xb9, 0x4f, 0x07,
0xc3, 0x82, 0xf4, 0xb3, 0xd9, 0x76, 0xeb, 0xf6, 0x77, 0x37, 0xf7, 0x2d, 0xbf, 0xd3, 0x6f, 0x31,
0xfb, 0xaf, 0x0b, 0xdc, 0x37, 0x2c, 0x57, 0x3e, 0xad, 0x5b, 0x8e, 0x4f, 0x3c, 0xc7, 0xb0, 0xd7,
0xf9, 0x5a, 0x12, 0xda, 0x6b, 0xb5, 0x72, 0xfc, 0x7d, 0xf3, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff,
0x20, 0x11, 0x9c, 0x73, 0xcc, 0x2c, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.