diff --git a/internal/core/src/pb/plan.pb.cc b/internal/core/src/pb/plan.pb.cc index a0f997bbca..c01ae1e95b 100755 --- a/internal/core/src/pb/plan.pb.cc +++ b/internal/core/src/pb/plan.pb.cc @@ -55,7 +55,8 @@ struct QueryInfoDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 QueryInfoDefaultTypeInternal _QueryInfo_default_instance_; PROTOBUF_CONSTEXPR ColumnInfo::ColumnInfo( ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.field_id_)*/int64_t{0} + /*decltype(_impl_.nested_path_)*/{} + , /*decltype(_impl_.field_id_)*/int64_t{0} , /*decltype(_impl_.data_type_)*/0 , /*decltype(_impl_.is_primary_key_)*/false , /*decltype(_impl_.is_autoid_)*/false @@ -332,6 +333,7 @@ const uint32_t TableStruct_plan_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(pro PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::ColumnInfo, _impl_.data_type_), PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::ColumnInfo, _impl_.is_primary_key_), PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::ColumnInfo, _impl_.is_autoid_), + PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::ColumnInfo, _impl_.nested_path_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::milvus::proto::plan::ColumnExpr, _internal_metadata_), ~0u, // no _extensions_ @@ -481,21 +483,21 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 0, -1, -1, sizeof(::milvus::proto::plan::GenericValue)}, { 11, -1, -1, sizeof(::milvus::proto::plan::QueryInfo)}, { 21, -1, -1, sizeof(::milvus::proto::plan::ColumnInfo)}, - { 31, -1, -1, sizeof(::milvus::proto::plan::ColumnExpr)}, - { 38, -1, -1, sizeof(::milvus::proto::plan::ValueExpr)}, - { 45, -1, -1, sizeof(::milvus::proto::plan::UnaryRangeExpr)}, - { 54, -1, -1, sizeof(::milvus::proto::plan::BinaryRangeExpr)}, - { 65, -1, -1, sizeof(::milvus::proto::plan::CompareExpr)}, - { 74, -1, -1, sizeof(::milvus::proto::plan::TermExpr)}, - { 82, -1, -1, sizeof(::milvus::proto::plan::UnaryExpr)}, - { 90, -1, -1, sizeof(::milvus::proto::plan::BinaryExpr)}, - { 99, -1, -1, sizeof(::milvus::proto::plan::BinaryArithOp)}, - { 108, -1, -1, sizeof(::milvus::proto::plan::BinaryArithExpr)}, - { 117, -1, -1, sizeof(::milvus::proto::plan::BinaryArithOpEvalRangeExpr)}, - { 128, -1, -1, sizeof(::milvus::proto::plan::Expr)}, - { 145, -1, -1, sizeof(::milvus::proto::plan::VectorANNS)}, - { 156, -1, -1, sizeof(::milvus::proto::plan::QueryPlanNode)}, - { 164, -1, -1, sizeof(::milvus::proto::plan::PlanNode)}, + { 32, -1, -1, sizeof(::milvus::proto::plan::ColumnExpr)}, + { 39, -1, -1, sizeof(::milvus::proto::plan::ValueExpr)}, + { 46, -1, -1, sizeof(::milvus::proto::plan::UnaryRangeExpr)}, + { 55, -1, -1, sizeof(::milvus::proto::plan::BinaryRangeExpr)}, + { 66, -1, -1, sizeof(::milvus::proto::plan::CompareExpr)}, + { 75, -1, -1, sizeof(::milvus::proto::plan::TermExpr)}, + { 83, -1, -1, sizeof(::milvus::proto::plan::UnaryExpr)}, + { 91, -1, -1, sizeof(::milvus::proto::plan::BinaryExpr)}, + { 100, -1, -1, sizeof(::milvus::proto::plan::BinaryArithOp)}, + { 109, -1, -1, sizeof(::milvus::proto::plan::BinaryArithExpr)}, + { 118, -1, -1, sizeof(::milvus::proto::plan::BinaryArithOpEvalRangeExpr)}, + { 129, -1, -1, sizeof(::milvus::proto::plan::Expr)}, + { 146, -1, -1, sizeof(::milvus::proto::plan::VectorANNS)}, + { 157, -1, -1, sizeof(::milvus::proto::plan::QueryPlanNode)}, + { 165, -1, -1, sizeof(::milvus::proto::plan::PlanNode)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -526,95 +528,95 @@ const char descriptor_table_protodef_plan_2eproto[] PROTOBUF_SECTION_VARIABLE(pr "\001H\000\022\024\n\nstring_val\030\004 \001(\tH\000B\005\n\003val\"\\\n\tQuer" "yInfo\022\014\n\004topk\030\001 \001(\003\022\023\n\013metric_type\030\003 \001(\t" "\022\025\n\rsearch_params\030\004 \001(\t\022\025\n\rround_decimal" - "\030\005 \001(\003\"{\n\nColumnInfo\022\020\n\010field_id\030\001 \001(\003\0220" - "\n\tdata_type\030\002 \001(\0162\035.milvus.proto.schema." - "DataType\022\026\n\016is_primary_key\030\003 \001(\010\022\021\n\tis_a" - "utoID\030\004 \001(\010\"9\n\nColumnExpr\022+\n\004info\030\001 \001(\0132" - "\035.milvus.proto.plan.ColumnInfo\";\n\tValueE" - "xpr\022.\n\005value\030\001 \001(\0132\037.milvus.proto.plan.G" - "enericValue\"\233\001\n\016UnaryRangeExpr\0222\n\013column" - "_info\030\001 \001(\0132\035.milvus.proto.plan.ColumnIn" - "fo\022%\n\002op\030\002 \001(\0162\031.milvus.proto.plan.OpTyp" - "e\022.\n\005value\030\003 \001(\0132\037.milvus.proto.plan.Gen" - "ericValue\"\343\001\n\017BinaryRangeExpr\0222\n\013column_" - "info\030\001 \001(\0132\035.milvus.proto.plan.ColumnInf" - "o\022\027\n\017lower_inclusive\030\002 \001(\010\022\027\n\017upper_incl" - "usive\030\003 \001(\010\0224\n\013lower_value\030\004 \001(\0132\037.milvu" - "s.proto.plan.GenericValue\0224\n\013upper_value" - "\030\005 \001(\0132\037.milvus.proto.plan.GenericValue\"" - "\247\001\n\013CompareExpr\0227\n\020left_column_info\030\001 \001(" - "\0132\035.milvus.proto.plan.ColumnInfo\0228\n\021righ" - "t_column_info\030\002 \001(\0132\035.milvus.proto.plan." - "ColumnInfo\022%\n\002op\030\003 \001(\0162\031.milvus.proto.pl" - "an.OpType\"o\n\010TermExpr\0222\n\013column_info\030\001 \001" - "(\0132\035.milvus.proto.plan.ColumnInfo\022/\n\006val" - "ues\030\002 \003(\0132\037.milvus.proto.plan.GenericVal" - "ue\"\206\001\n\tUnaryExpr\0220\n\002op\030\001 \001(\0162$.milvus.pr" - "oto.plan.UnaryExpr.UnaryOp\022&\n\005child\030\002 \001(" - "\0132\027.milvus.proto.plan.Expr\"\037\n\007UnaryOp\022\013\n" - "\007Invalid\020\000\022\007\n\003Not\020\001\"\307\001\n\nBinaryExpr\0222\n\002op" - "\030\001 \001(\0162&.milvus.proto.plan.BinaryExpr.Bi" - "naryOp\022%\n\004left\030\002 \001(\0132\027.milvus.proto.plan" - ".Expr\022&\n\005right\030\003 \001(\0132\027.milvus.proto.plan" - ".Expr\"6\n\010BinaryOp\022\013\n\007Invalid\020\000\022\016\n\nLogica" - "lAnd\020\001\022\r\n\tLogicalOr\020\002\"\255\001\n\rBinaryArithOp\022" - "2\n\013column_info\030\001 \001(\0132\035.milvus.proto.plan" - ".ColumnInfo\0220\n\010arith_op\030\002 \001(\0162\036.milvus.p" - "roto.plan.ArithOpType\0226\n\rright_operand\030\003" - " \001(\0132\037.milvus.proto.plan.GenericValue\"\214\001" - "\n\017BinaryArithExpr\022%\n\004left\030\001 \001(\0132\027.milvus" - ".proto.plan.Expr\022&\n\005right\030\002 \001(\0132\027.milvus" - ".proto.plan.Expr\022*\n\002op\030\003 \001(\0162\036.milvus.pr" - "oto.plan.ArithOpType\"\221\002\n\032BinaryArithOpEv" - "alRangeExpr\0222\n\013column_info\030\001 \001(\0132\035.milvu" - "s.proto.plan.ColumnInfo\0220\n\010arith_op\030\002 \001(" - "\0162\036.milvus.proto.plan.ArithOpType\0226\n\rrig" - "ht_operand\030\003 \001(\0132\037.milvus.proto.plan.Gen" - "ericValue\022%\n\002op\030\004 \001(\0162\031.milvus.proto.pla" - "n.OpType\022.\n\005value\030\005 \001(\0132\037.milvus.proto.p" - "lan.GenericValue\"\347\004\n\004Expr\0220\n\tterm_expr\030\001" - " \001(\0132\033.milvus.proto.plan.TermExprH\000\0222\n\nu" - "nary_expr\030\002 \001(\0132\034.milvus.proto.plan.Unar" - "yExprH\000\0224\n\013binary_expr\030\003 \001(\0132\035.milvus.pr" - "oto.plan.BinaryExprH\000\0226\n\014compare_expr\030\004 " - "\001(\0132\036.milvus.proto.plan.CompareExprH\000\022=\n" - "\020unary_range_expr\030\005 \001(\0132!.milvus.proto.p" - "lan.UnaryRangeExprH\000\022\?\n\021binary_range_exp" - "r\030\006 \001(\0132\".milvus.proto.plan.BinaryRangeE" - "xprH\000\022X\n\037binary_arith_op_eval_range_expr" - "\030\007 \001(\0132-.milvus.proto.plan.BinaryArithOp" - "EvalRangeExprH\000\022\?\n\021binary_arith_expr\030\010 \001" - "(\0132\".milvus.proto.plan.BinaryArithExprH\000" - "\0222\n\nvalue_expr\030\t \001(\0132\034.milvus.proto.plan" - ".ValueExprH\000\0224\n\013column_expr\030\n \001(\0132\035.milv" - "us.proto.plan.ColumnExprH\000B\006\n\004expr\"\251\001\n\nV" - "ectorANNS\022\021\n\tis_binary\030\001 \001(\010\022\020\n\010field_id" - "\030\002 \001(\003\022+\n\npredicates\030\003 \001(\0132\027.milvus.prot" - "o.plan.Expr\0220\n\nquery_info\030\004 \001(\0132\034.milvus" - ".proto.plan.QueryInfo\022\027\n\017placeholder_tag" - "\030\005 \001(\t\"N\n\rQueryPlanNode\022+\n\npredicates\030\001 " - "\001(\0132\027.milvus.proto.plan.Expr\022\020\n\010is_count" - "\030\002 \001(\010\"\304\001\n\010PlanNode\0224\n\013vector_anns\030\001 \001(\013" - "2\035.milvus.proto.plan.VectorANNSH\000\022-\n\npre" - "dicates\030\002 \001(\0132\027.milvus.proto.plan.ExprH\000" - "\0221\n\005query\030\004 \001(\0132 .milvus.proto.plan.Quer" - "yPlanNodeH\000\022\030\n\020output_field_ids\030\003 \003(\003B\006\n" - "\004node*\272\001\n\006OpType\022\013\n\007Invalid\020\000\022\017\n\013Greater" - "Than\020\001\022\020\n\014GreaterEqual\020\002\022\014\n\010LessThan\020\003\022\r" - "\n\tLessEqual\020\004\022\t\n\005Equal\020\005\022\014\n\010NotEqual\020\006\022\017" - "\n\013PrefixMatch\020\007\022\020\n\014PostfixMatch\020\010\022\t\n\005Mat" - "ch\020\t\022\t\n\005Range\020\n\022\006\n\002In\020\013\022\t\n\005NotIn\020\014*G\n\013Ar" - "ithOpType\022\013\n\007Unknown\020\000\022\007\n\003Add\020\001\022\007\n\003Sub\020\002" - "\022\007\n\003Mul\020\003\022\007\n\003Div\020\004\022\007\n\003Mod\020\005B3Z1github.co" - "m/milvus-io/milvus/internal/proto/planpb" - "b\006proto3" + "\030\005 \001(\003\"\220\001\n\nColumnInfo\022\020\n\010field_id\030\001 \001(\003\022" + "0\n\tdata_type\030\002 \001(\0162\035.milvus.proto.schema" + ".DataType\022\026\n\016is_primary_key\030\003 \001(\010\022\021\n\tis_" + "autoID\030\004 \001(\010\022\023\n\013nested_path\030\005 \003(\t\"9\n\nCol" + "umnExpr\022+\n\004info\030\001 \001(\0132\035.milvus.proto.pla" + "n.ColumnInfo\";\n\tValueExpr\022.\n\005value\030\001 \001(\013" + "2\037.milvus.proto.plan.GenericValue\"\233\001\n\016Un" + "aryRangeExpr\0222\n\013column_info\030\001 \001(\0132\035.milv" + "us.proto.plan.ColumnInfo\022%\n\002op\030\002 \001(\0162\031.m" + "ilvus.proto.plan.OpType\022.\n\005value\030\003 \001(\0132\037" + ".milvus.proto.plan.GenericValue\"\343\001\n\017Bina" + "ryRangeExpr\0222\n\013column_info\030\001 \001(\0132\035.milvu" + "s.proto.plan.ColumnInfo\022\027\n\017lower_inclusi" + "ve\030\002 \001(\010\022\027\n\017upper_inclusive\030\003 \001(\010\0224\n\013low" + "er_value\030\004 \001(\0132\037.milvus.proto.plan.Gener" + "icValue\0224\n\013upper_value\030\005 \001(\0132\037.milvus.pr" + "oto.plan.GenericValue\"\247\001\n\013CompareExpr\0227\n" + "\020left_column_info\030\001 \001(\0132\035.milvus.proto.p" + "lan.ColumnInfo\0228\n\021right_column_info\030\002 \001(" + "\0132\035.milvus.proto.plan.ColumnInfo\022%\n\002op\030\003" + " \001(\0162\031.milvus.proto.plan.OpType\"o\n\010TermE" + "xpr\0222\n\013column_info\030\001 \001(\0132\035.milvus.proto." + "plan.ColumnInfo\022/\n\006values\030\002 \003(\0132\037.milvus" + ".proto.plan.GenericValue\"\206\001\n\tUnaryExpr\0220" + "\n\002op\030\001 \001(\0162$.milvus.proto.plan.UnaryExpr" + ".UnaryOp\022&\n\005child\030\002 \001(\0132\027.milvus.proto.p" + "lan.Expr\"\037\n\007UnaryOp\022\013\n\007Invalid\020\000\022\007\n\003Not\020" + "\001\"\307\001\n\nBinaryExpr\0222\n\002op\030\001 \001(\0162&.milvus.pr" + "oto.plan.BinaryExpr.BinaryOp\022%\n\004left\030\002 \001" + "(\0132\027.milvus.proto.plan.Expr\022&\n\005right\030\003 \001" + "(\0132\027.milvus.proto.plan.Expr\"6\n\010BinaryOp\022" + "\013\n\007Invalid\020\000\022\016\n\nLogicalAnd\020\001\022\r\n\tLogicalO" + "r\020\002\"\255\001\n\rBinaryArithOp\0222\n\013column_info\030\001 \001" + "(\0132\035.milvus.proto.plan.ColumnInfo\0220\n\010ari" + "th_op\030\002 \001(\0162\036.milvus.proto.plan.ArithOpT" + "ype\0226\n\rright_operand\030\003 \001(\0132\037.milvus.prot" + "o.plan.GenericValue\"\214\001\n\017BinaryArithExpr\022" + "%\n\004left\030\001 \001(\0132\027.milvus.proto.plan.Expr\022&" + "\n\005right\030\002 \001(\0132\027.milvus.proto.plan.Expr\022*" + "\n\002op\030\003 \001(\0162\036.milvus.proto.plan.ArithOpTy" + "pe\"\221\002\n\032BinaryArithOpEvalRangeExpr\0222\n\013col" + "umn_info\030\001 \001(\0132\035.milvus.proto.plan.Colum" + "nInfo\0220\n\010arith_op\030\002 \001(\0162\036.milvus.proto.p" + "lan.ArithOpType\0226\n\rright_operand\030\003 \001(\0132\037" + ".milvus.proto.plan.GenericValue\022%\n\002op\030\004 " + "\001(\0162\031.milvus.proto.plan.OpType\022.\n\005value\030" + "\005 \001(\0132\037.milvus.proto.plan.GenericValue\"\347" + "\004\n\004Expr\0220\n\tterm_expr\030\001 \001(\0132\033.milvus.prot" + "o.plan.TermExprH\000\0222\n\nunary_expr\030\002 \001(\0132\034." + "milvus.proto.plan.UnaryExprH\000\0224\n\013binary_" + "expr\030\003 \001(\0132\035.milvus.proto.plan.BinaryExp" + "rH\000\0226\n\014compare_expr\030\004 \001(\0132\036.milvus.proto" + ".plan.CompareExprH\000\022=\n\020unary_range_expr\030" + "\005 \001(\0132!.milvus.proto.plan.UnaryRangeExpr" + "H\000\022\?\n\021binary_range_expr\030\006 \001(\0132\".milvus.p" + "roto.plan.BinaryRangeExprH\000\022X\n\037binary_ar" + "ith_op_eval_range_expr\030\007 \001(\0132-.milvus.pr" + "oto.plan.BinaryArithOpEvalRangeExprH\000\022\?\n" + "\021binary_arith_expr\030\010 \001(\0132\".milvus.proto." + "plan.BinaryArithExprH\000\0222\n\nvalue_expr\030\t \001" + "(\0132\034.milvus.proto.plan.ValueExprH\000\0224\n\013co" + "lumn_expr\030\n \001(\0132\035.milvus.proto.plan.Colu" + "mnExprH\000B\006\n\004expr\"\251\001\n\nVectorANNS\022\021\n\tis_bi" + "nary\030\001 \001(\010\022\020\n\010field_id\030\002 \001(\003\022+\n\npredicat" + "es\030\003 \001(\0132\027.milvus.proto.plan.Expr\0220\n\nque" + "ry_info\030\004 \001(\0132\034.milvus.proto.plan.QueryI" + "nfo\022\027\n\017placeholder_tag\030\005 \001(\t\"N\n\rQueryPla" + "nNode\022+\n\npredicates\030\001 \001(\0132\027.milvus.proto" + ".plan.Expr\022\020\n\010is_count\030\002 \001(\010\"\304\001\n\010PlanNod" + "e\0224\n\013vector_anns\030\001 \001(\0132\035.milvus.proto.pl" + "an.VectorANNSH\000\022-\n\npredicates\030\002 \001(\0132\027.mi" + "lvus.proto.plan.ExprH\000\0221\n\005query\030\004 \001(\0132 ." + "milvus.proto.plan.QueryPlanNodeH\000\022\030\n\020out" + "put_field_ids\030\003 \003(\003B\006\n\004node*\272\001\n\006OpType\022\013" + "\n\007Invalid\020\000\022\017\n\013GreaterThan\020\001\022\020\n\014GreaterE" + "qual\020\002\022\014\n\010LessThan\020\003\022\r\n\tLessEqual\020\004\022\t\n\005E" + "qual\020\005\022\014\n\010NotEqual\020\006\022\017\n\013PrefixMatch\020\007\022\020\n" + "\014PostfixMatch\020\010\022\t\n\005Match\020\t\022\t\n\005Range\020\n\022\006\n" + "\002In\020\013\022\t\n\005NotIn\020\014*G\n\013ArithOpType\022\013\n\007Unkno" + "wn\020\000\022\007\n\003Add\020\001\022\007\n\003Sub\020\002\022\007\n\003Mul\020\003\022\007\n\003Div\020\004" + "\022\007\n\003Mod\020\005B3Z1github.com/milvus-io/milvus" + "/internal/proto/planpbb\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_plan_2eproto_deps[1] = { &::descriptor_table_schema_2eproto, }; static ::_pbi::once_flag descriptor_table_plan_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_plan_2eproto = { - false, false, 3488, descriptor_table_protodef_plan_2eproto, + false, false, 3510, descriptor_table_protodef_plan_2eproto, "plan.proto", &descriptor_table_plan_2eproto_once, descriptor_table_plan_2eproto_deps, 1, 18, schemas, file_default_instances, TableStruct_plan_2eproto::offsets, @@ -1368,7 +1370,8 @@ ColumnInfo::ColumnInfo(const ColumnInfo& from) : ::PROTOBUF_NAMESPACE_ID::Message() { ColumnInfo* const _this = this; (void)_this; new (&_impl_) Impl_{ - decltype(_impl_.field_id_){} + decltype(_impl_.nested_path_){from._impl_.nested_path_} + , decltype(_impl_.field_id_){} , decltype(_impl_.data_type_){} , decltype(_impl_.is_primary_key_){} , decltype(_impl_.is_autoid_){} @@ -1386,7 +1389,8 @@ inline void ColumnInfo::SharedCtor( (void)arena; (void)is_message_owned; new (&_impl_) Impl_{ - decltype(_impl_.field_id_){int64_t{0}} + decltype(_impl_.nested_path_){arena} + , decltype(_impl_.field_id_){int64_t{0}} , decltype(_impl_.data_type_){0} , decltype(_impl_.is_primary_key_){false} , decltype(_impl_.is_autoid_){false} @@ -1405,6 +1409,7 @@ ColumnInfo::~ColumnInfo() { inline void ColumnInfo::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.nested_path_.~RepeatedPtrField(); } void ColumnInfo::SetCachedSize(int size) const { @@ -1417,6 +1422,7 @@ void ColumnInfo::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _impl_.nested_path_.Clear(); ::memset(&_impl_.field_id_, 0, static_cast( reinterpret_cast(&_impl_.is_autoid_) - reinterpret_cast(&_impl_.field_id_)) + sizeof(_impl_.is_autoid_)); @@ -1462,6 +1468,21 @@ const char* ColumnInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ct } else goto handle_unusual; continue; + // repeated string nested_path = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { + ptr -= 1; + do { + ptr += 1; + auto str = _internal_add_nested_path(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "milvus.proto.plan.ColumnInfo.nested_path")); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -1516,6 +1537,16 @@ uint8_t* ColumnInfo::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_is_autoid(), target); } + // repeated string nested_path = 5; + for (int i = 0, n = this->_internal_nested_path_size(); i < n; i++) { + const auto& s = this->_internal_nested_path(i); + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + s.data(), static_cast(s.length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "milvus.proto.plan.ColumnInfo.nested_path"); + target = stream->WriteString(5, s, target); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -1532,6 +1563,14 @@ size_t ColumnInfo::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // repeated string nested_path = 5; + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.nested_path_.size()); + for (int i = 0, n = _impl_.nested_path_.size(); i < n; i++) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + _impl_.nested_path_.Get(i)); + } + // int64 field_id = 1; if (this->_internal_field_id() != 0) { total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_field_id()); @@ -1571,6 +1610,7 @@ void ColumnInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PRO uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_impl_.nested_path_.MergeFrom(from._impl_.nested_path_); if (from._internal_field_id() != 0) { _this->_internal_set_field_id(from._internal_field_id()); } @@ -1600,6 +1640,7 @@ bool ColumnInfo::IsInitialized() const { void ColumnInfo::InternalSwap(ColumnInfo* other) { using std::swap; _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.nested_path_.InternalSwap(&other->_impl_.nested_path_); ::PROTOBUF_NAMESPACE_ID::internal::memswap< PROTOBUF_FIELD_OFFSET(ColumnInfo, _impl_.is_autoid_) + sizeof(ColumnInfo::_impl_.is_autoid_) diff --git a/internal/core/src/pb/plan.pb.h b/internal/core/src/pb/plan.pb.h index d835f7da05..2822cac593 100755 --- a/internal/core/src/pb/plan.pb.h +++ b/internal/core/src/pb/plan.pb.h @@ -785,11 +785,36 @@ class ColumnInfo final : // accessors ------------------------------------------------------- enum : int { + kNestedPathFieldNumber = 5, kFieldIdFieldNumber = 1, kDataTypeFieldNumber = 2, kIsPrimaryKeyFieldNumber = 3, kIsAutoIDFieldNumber = 4, }; + // repeated string nested_path = 5; + int nested_path_size() const; + private: + int _internal_nested_path_size() const; + public: + void clear_nested_path(); + const std::string& nested_path(int index) const; + std::string* mutable_nested_path(int index); + void set_nested_path(int index, const std::string& value); + void set_nested_path(int index, std::string&& value); + void set_nested_path(int index, const char* value); + void set_nested_path(int index, const char* value, size_t size); + std::string* add_nested_path(); + void add_nested_path(const std::string& value); + void add_nested_path(std::string&& value); + void add_nested_path(const char* value); + void add_nested_path(const char* value, size_t size); + const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& nested_path() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_nested_path(); + private: + const std::string& _internal_nested_path(int index) const; + std::string* _internal_add_nested_path(); + public: + // int64 field_id = 1; void clear_field_id(); int64_t field_id() const; @@ -834,6 +859,7 @@ class ColumnInfo final : typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField nested_path_; int64_t field_id_; int data_type_; bool is_primary_key_; @@ -4379,6 +4405,81 @@ inline void ColumnInfo::set_is_autoid(bool value) { // @@protoc_insertion_point(field_set:milvus.proto.plan.ColumnInfo.is_autoID) } +// repeated string nested_path = 5; +inline int ColumnInfo::_internal_nested_path_size() const { + return _impl_.nested_path_.size(); +} +inline int ColumnInfo::nested_path_size() const { + return _internal_nested_path_size(); +} +inline void ColumnInfo::clear_nested_path() { + _impl_.nested_path_.Clear(); +} +inline std::string* ColumnInfo::add_nested_path() { + std::string* _s = _internal_add_nested_path(); + // @@protoc_insertion_point(field_add_mutable:milvus.proto.plan.ColumnInfo.nested_path) + return _s; +} +inline const std::string& ColumnInfo::_internal_nested_path(int index) const { + return _impl_.nested_path_.Get(index); +} +inline const std::string& ColumnInfo::nested_path(int index) const { + // @@protoc_insertion_point(field_get:milvus.proto.plan.ColumnInfo.nested_path) + return _internal_nested_path(index); +} +inline std::string* ColumnInfo::mutable_nested_path(int index) { + // @@protoc_insertion_point(field_mutable:milvus.proto.plan.ColumnInfo.nested_path) + return _impl_.nested_path_.Mutable(index); +} +inline void ColumnInfo::set_nested_path(int index, const std::string& value) { + _impl_.nested_path_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set:milvus.proto.plan.ColumnInfo.nested_path) +} +inline void ColumnInfo::set_nested_path(int index, std::string&& value) { + _impl_.nested_path_.Mutable(index)->assign(std::move(value)); + // @@protoc_insertion_point(field_set:milvus.proto.plan.ColumnInfo.nested_path) +} +inline void ColumnInfo::set_nested_path(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.nested_path_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:milvus.proto.plan.ColumnInfo.nested_path) +} +inline void ColumnInfo::set_nested_path(int index, const char* value, size_t size) { + _impl_.nested_path_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:milvus.proto.plan.ColumnInfo.nested_path) +} +inline std::string* ColumnInfo::_internal_add_nested_path() { + return _impl_.nested_path_.Add(); +} +inline void ColumnInfo::add_nested_path(const std::string& value) { + _impl_.nested_path_.Add()->assign(value); + // @@protoc_insertion_point(field_add:milvus.proto.plan.ColumnInfo.nested_path) +} +inline void ColumnInfo::add_nested_path(std::string&& value) { + _impl_.nested_path_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:milvus.proto.plan.ColumnInfo.nested_path) +} +inline void ColumnInfo::add_nested_path(const char* value) { + GOOGLE_DCHECK(value != nullptr); + _impl_.nested_path_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:milvus.proto.plan.ColumnInfo.nested_path) +} +inline void ColumnInfo::add_nested_path(const char* value, size_t size) { + _impl_.nested_path_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:milvus.proto.plan.ColumnInfo.nested_path) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& +ColumnInfo::nested_path() const { + // @@protoc_insertion_point(field_list:milvus.proto.plan.ColumnInfo.nested_path) + return _impl_.nested_path_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* +ColumnInfo::mutable_nested_path() { + // @@protoc_insertion_point(field_mutable_list:milvus.proto.plan.ColumnInfo.nested_path) + return &_impl_.nested_path_; +} + // ------------------------------------------------------------------- // ColumnExpr diff --git a/internal/proto/plan.proto b/internal/proto/plan.proto index f63fff4d22..eb3747b0c9 100644 --- a/internal/proto/plan.proto +++ b/internal/proto/plan.proto @@ -50,6 +50,7 @@ message ColumnInfo { schema.DataType data_type = 2; bool is_primary_key = 3; bool is_autoID = 4; + repeated string nested_path = 5; } message ColumnExpr { diff --git a/internal/proto/planpb/plan.pb.go b/internal/proto/planpb/plan.pb.go index 0795ac0536..361c9cb000 100644 --- a/internal/proto/planpb/plan.pb.go +++ b/internal/proto/planpb/plan.pb.go @@ -347,6 +347,7 @@ type ColumnInfo struct { DataType schemapb.DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=milvus.proto.schema.DataType" json:"data_type,omitempty"` IsPrimaryKey bool `protobuf:"varint,3,opt,name=is_primary_key,json=isPrimaryKey,proto3" json:"is_primary_key,omitempty"` IsAutoID bool `protobuf:"varint,4,opt,name=is_autoID,json=isAutoID,proto3" json:"is_autoID,omitempty"` + NestedPath []string `protobuf:"bytes,5,rep,name=nested_path,json=nestedPath,proto3" json:"nested_path,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -405,6 +406,13 @@ func (m *ColumnInfo) GetIsAutoID() bool { return false } +func (m *ColumnInfo) GetNestedPath() []string { + if m != nil { + return m.NestedPath + } + return nil +} + type ColumnExpr struct { Info *ColumnInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1443,97 +1451,98 @@ func init() { func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) } var fileDescriptor_2d655ab2f7683c23 = []byte{ - // 1457 bytes of a gzipped FileDescriptorProto + // 1477 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0x3f, 0x73, 0xdb, 0xc6, - 0x12, 0x27, 0xf8, 0x47, 0x04, 0x96, 0x14, 0x05, 0xa3, 0x79, 0xfe, 0xf3, 0x6c, 0xe9, 0xe1, 0x79, - 0x9e, 0xf5, 0x9c, 0xb1, 0x34, 0x8e, 0x1d, 0x3b, 0x76, 0xc6, 0x89, 0xfe, 0x39, 0x22, 0x27, 0xb6, - 0xa4, 0xc0, 0xb2, 0x8a, 0x34, 0x98, 0x23, 0x70, 0x12, 0x6f, 0x0c, 0xe2, 0xe0, 0xc3, 0x81, 0xb6, - 0xea, 0x74, 0xe9, 0xf2, 0x01, 0xd2, 0x26, 0x7d, 0xca, 0x34, 0xf9, 0x02, 0x29, 0x52, 0xa6, 0xcf, - 0x47, 0x48, 0x97, 0x2a, 0x73, 0x7b, 0x20, 0x48, 0x6a, 0x48, 0x8b, 0x9a, 0x78, 0x26, 0xdd, 0x61, - 0x6f, 0x77, 0xef, 0xb7, 0xbf, 0xdd, 0xdb, 0x5b, 0x00, 0x24, 0x11, 0x89, 0xd7, 0x12, 0xc1, 0x25, - 0x77, 0x2e, 0xf5, 0x59, 0x34, 0xc8, 0x52, 0xfd, 0xb5, 0xa6, 0x36, 0xae, 0x36, 0xd3, 0xa0, 0x47, - 0xfb, 0x44, 0x8b, 0xdc, 0x6f, 0x0d, 0x68, 0xee, 0xd2, 0x98, 0x0a, 0x16, 0x1c, 0x91, 0x28, 0xa3, - 0xce, 0x35, 0x30, 0xbb, 0x9c, 0x47, 0xfe, 0x80, 0x44, 0x97, 0x8d, 0x15, 0x63, 0xd5, 0x6c, 0x97, - 0xbc, 0xba, 0x92, 0x1c, 0x91, 0xc8, 0xb9, 0x0e, 0x16, 0x8b, 0xe5, 0x83, 0xfb, 0xb8, 0x5b, 0x5e, - 0x31, 0x56, 0x2b, 0xed, 0x92, 0x67, 0xa2, 0x28, 0xdf, 0x3e, 0x8e, 0x38, 0x91, 0xb8, 0x5d, 0x59, - 0x31, 0x56, 0x0d, 0xb5, 0x8d, 0x22, 0xb5, 0xbd, 0x0c, 0x90, 0x4a, 0xc1, 0xe2, 0x13, 0xdc, 0xaf, - 0xae, 0x18, 0xab, 0x56, 0xbb, 0xe4, 0x59, 0x5a, 0x76, 0x44, 0xa2, 0xad, 0x1a, 0x54, 0x06, 0x24, - 0x72, 0xbf, 0x31, 0xc0, 0xfa, 0x32, 0xa3, 0xe2, 0xb4, 0x13, 0x1f, 0x73, 0xc7, 0x81, 0xaa, 0xe4, - 0xc9, 0x2b, 0x04, 0x53, 0xf1, 0x70, 0xed, 0x2c, 0x43, 0xa3, 0x4f, 0xa5, 0x60, 0x81, 0x2f, 0x4f, - 0x13, 0x8a, 0x47, 0x59, 0x1e, 0x68, 0xd1, 0xe1, 0x69, 0x42, 0x9d, 0xff, 0xc2, 0x62, 0x4a, 0x89, - 0x08, 0x7a, 0x7e, 0x42, 0x04, 0xe9, 0xa7, 0xfa, 0x34, 0xaf, 0xa9, 0x85, 0x07, 0x28, 0x53, 0x4a, - 0x82, 0x67, 0x71, 0xe8, 0x87, 0x34, 0x60, 0x7d, 0x12, 0x5d, 0xae, 0xe1, 0x11, 0x4d, 0x14, 0xee, - 0x68, 0x99, 0xfb, 0xbd, 0x01, 0xb0, 0xcd, 0xa3, 0xac, 0x1f, 0x23, 0x9a, 0x2b, 0x60, 0x1e, 0x33, - 0x1a, 0x85, 0x3e, 0x0b, 0x73, 0x44, 0x75, 0xfc, 0xee, 0x84, 0xce, 0x63, 0xb0, 0x42, 0x22, 0x89, - 0x86, 0xa4, 0xc8, 0x69, 0x7d, 0x78, 0x7d, 0x6d, 0x82, 0xff, 0x9c, 0xf9, 0x1d, 0x22, 0x89, 0x42, - 0xe9, 0x99, 0x61, 0xbe, 0x72, 0x6e, 0x42, 0x8b, 0xa5, 0x7e, 0x22, 0x58, 0x9f, 0x88, 0x53, 0xff, - 0x15, 0x3d, 0xc5, 0x98, 0x4c, 0xaf, 0xc9, 0xd2, 0x03, 0x2d, 0xfc, 0x82, 0x9e, 0x3a, 0xd7, 0xc0, - 0x62, 0xa9, 0x4f, 0x32, 0xc9, 0x3b, 0x3b, 0x18, 0x91, 0xe9, 0x99, 0x2c, 0xdd, 0xc4, 0x6f, 0xf7, - 0xb3, 0x21, 0xce, 0xa7, 0x6f, 0x13, 0xe1, 0xdc, 0x85, 0x2a, 0x8b, 0x8f, 0x39, 0x62, 0x6c, 0x9c, - 0xc5, 0x81, 0x05, 0x32, 0x0a, 0xca, 0x43, 0x55, 0x77, 0x0b, 0x2c, 0x2c, 0x01, 0xb4, 0xff, 0x08, - 0x6a, 0x03, 0xf5, 0x91, 0x3b, 0x58, 0x9e, 0xe2, 0x60, 0xbc, 0x6c, 0x3c, 0xad, 0xed, 0xfe, 0x68, - 0x40, 0xeb, 0x65, 0x4c, 0xc4, 0xa9, 0x47, 0xe2, 0x13, 0xed, 0xe9, 0x53, 0x68, 0x04, 0x78, 0x94, - 0x3f, 0x3f, 0x20, 0x08, 0x46, 0x8c, 0xff, 0x1f, 0xca, 0x3c, 0xc9, 0xf9, 0xbc, 0x32, 0xc5, 0x6c, - 0x3f, 0x41, 0x2e, 0xcb, 0x3c, 0x19, 0x81, 0xae, 0x5c, 0x08, 0xf4, 0x0f, 0x65, 0x58, 0xda, 0x62, - 0xef, 0x17, 0xf5, 0x2d, 0x58, 0x8a, 0xf8, 0x1b, 0x2a, 0x7c, 0x16, 0x07, 0x51, 0x96, 0xb2, 0x81, - 0x2e, 0x09, 0xd3, 0x6b, 0xa1, 0xb8, 0x33, 0x94, 0x2a, 0xc5, 0x2c, 0x49, 0x26, 0x14, 0x75, 0xea, - 0x5b, 0x28, 0x1e, 0x29, 0x6e, 0x40, 0x43, 0x7b, 0xd4, 0x21, 0x56, 0xe7, 0x0b, 0x11, 0xd0, 0x46, - 0x5f, 0xed, 0x0d, 0x68, 0xe8, 0xa3, 0xb4, 0x87, 0xda, 0x9c, 0x1e, 0xd0, 0x06, 0xd7, 0xee, 0x2f, - 0x06, 0x34, 0xb6, 0x79, 0x3f, 0x21, 0x42, 0xb3, 0xb4, 0x0b, 0x76, 0x44, 0x8f, 0xa5, 0x7f, 0x61, - 0xaa, 0x5a, 0xca, 0x6c, 0xec, 0x5a, 0x75, 0xe0, 0x92, 0x60, 0x27, 0xbd, 0x49, 0x4f, 0xe5, 0x79, - 0x3c, 0x2d, 0xa1, 0xdd, 0xf6, 0xd9, 0x7a, 0xa9, 0xcc, 0x51, 0x2f, 0xee, 0xd7, 0x06, 0x98, 0x87, - 0x54, 0xf4, 0xdf, 0x4b, 0xc6, 0x1f, 0xc2, 0x02, 0xf2, 0x9a, 0x5e, 0x2e, 0xaf, 0x54, 0xe6, 0x21, - 0x36, 0x57, 0x57, 0x2d, 0xd8, 0xc2, 0x3b, 0x83, 0x30, 0xee, 0x23, 0x7c, 0x03, 0xe1, 0xdf, 0x9c, - 0xe2, 0xa2, 0xd0, 0xd4, 0xab, 0xfd, 0x04, 0x2b, 0xff, 0x0e, 0xd4, 0x82, 0x1e, 0x8b, 0xc2, 0x9c, - 0xb3, 0x7f, 0x4d, 0x31, 0x54, 0x36, 0x9e, 0xd6, 0x72, 0x97, 0xa1, 0x9e, 0x5b, 0x3b, 0x0d, 0xa8, - 0x77, 0xe2, 0x01, 0x89, 0x58, 0x68, 0x97, 0x9c, 0x3a, 0x54, 0xf6, 0xb8, 0xb4, 0x0d, 0xf7, 0x37, - 0x03, 0x40, 0x5f, 0x09, 0x04, 0xf5, 0x60, 0x0c, 0xd4, 0xff, 0xa6, 0xf8, 0x1e, 0xa9, 0xe6, 0xcb, - 0x1c, 0xd6, 0x07, 0x50, 0x55, 0x89, 0x3e, 0x0f, 0x15, 0x2a, 0xa9, 0x18, 0x30, 0x97, 0xf9, 0xed, - 0x9d, 0x1d, 0x03, 0x6a, 0xb9, 0x0f, 0xc0, 0x1c, 0x9e, 0x35, 0x19, 0x44, 0x0b, 0xe0, 0x19, 0x3f, - 0x61, 0x01, 0x89, 0x36, 0xe3, 0xd0, 0x36, 0x9c, 0x45, 0xb0, 0xf2, 0xef, 0x7d, 0x61, 0x97, 0xdd, - 0x5f, 0x0d, 0x58, 0xd4, 0x86, 0x9b, 0x82, 0xc9, 0xde, 0x7e, 0xf2, 0xb7, 0x33, 0xff, 0x08, 0x4c, - 0xa2, 0x5c, 0xf9, 0x45, 0x9f, 0xba, 0x31, 0xc5, 0x38, 0x3f, 0x0d, 0x8b, 0xaf, 0x4e, 0xf2, 0xa3, - 0x77, 0x60, 0x51, 0xd7, 0x3d, 0x4f, 0xa8, 0x20, 0x71, 0x38, 0x6f, 0xe7, 0x6a, 0xa2, 0xd5, 0xbe, - 0x36, 0x72, 0xbf, 0x33, 0x86, 0x0d, 0x0c, 0x0f, 0xc1, 0x94, 0x0d, 0xa9, 0x37, 0x2e, 0x44, 0x7d, - 0x79, 0x1e, 0xea, 0x9d, 0xb5, 0xb1, 0x2b, 0x76, 0x5e, 0xa8, 0xea, 0x9e, 0xfd, 0x5c, 0x86, 0xab, - 0x13, 0x94, 0x3f, 0x1d, 0x90, 0xe8, 0xfd, 0xf5, 0xda, 0x7f, 0x9a, 0xff, 0xbc, 0xe5, 0x54, 0x2f, - 0xf4, 0x44, 0xd5, 0x2e, 0xf4, 0x44, 0xfd, 0x59, 0x83, 0x2a, 0x72, 0xf5, 0x18, 0x2c, 0x49, 0x45, - 0xdf, 0xa7, 0x6f, 0x13, 0x91, 0x33, 0x75, 0x6d, 0x8a, 0x8f, 0x61, 0x57, 0x53, 0xf3, 0x97, 0x1c, - 0x76, 0xb8, 0x27, 0x00, 0x99, 0x4a, 0x82, 0x36, 0xd6, 0xa9, 0xfe, 0xf7, 0xbb, 0x5a, 0x8c, 0x9a, - 0xce, 0xb2, 0xa2, 0x09, 0x6c, 0x40, 0xa3, 0xcb, 0x46, 0xf6, 0x95, 0x99, 0x69, 0x1a, 0x75, 0x83, - 0x76, 0xc9, 0x83, 0xee, 0xa8, 0x8d, 0x6c, 0x43, 0x33, 0xd0, 0xaf, 0x87, 0x76, 0xa1, 0xdf, 0xb0, - 0x1b, 0x53, 0x33, 0x5d, 0x3c, 0x32, 0xed, 0x92, 0xd7, 0x08, 0xc6, 0xde, 0x9c, 0xe7, 0x60, 0xeb, - 0x28, 0x84, 0x2a, 0x20, 0xed, 0x48, 0x93, 0xf9, 0x9f, 0x59, 0xb1, 0x14, 0xa5, 0xd6, 0x2e, 0x79, - 0xad, 0x6c, 0xf2, 0xa1, 0x3f, 0x80, 0x4b, 0x79, 0x54, 0x63, 0xfe, 0x16, 0xd0, 0x9f, 0x3b, 0x33, - 0xb6, 0x71, 0x87, 0x4b, 0xdd, 0x33, 0xa3, 0x83, 0x84, 0xe5, 0xdc, 0xe3, 0xb0, 0x2a, 0x7d, 0x3a, - 0x20, 0xd1, 0xb8, 0xff, 0x3a, 0xfa, 0xbf, 0x33, 0xd3, 0xff, 0xb4, 0x6b, 0xd2, 0x2e, 0x79, 0x57, - 0xbb, 0xb3, 0x2f, 0xd1, 0x28, 0x0e, 0x7d, 0x2a, 0x9e, 0x63, 0x9e, 0x13, 0x47, 0xd1, 0x2e, 0x46, - 0x71, 0x8c, 0x3a, 0xc8, 0x13, 0x00, 0x2c, 0x3e, 0xed, 0xca, 0x9a, 0x59, 0x2e, 0xc5, 0xd0, 0xa8, - 0xca, 0x65, 0x50, 0x4c, 0x90, 0x1b, 0xc5, 0xad, 0x46, 0x7b, 0x38, 0xe7, 0x56, 0x0f, 0xcb, 0x25, - 0x28, 0xbe, 0xb6, 0x16, 0xa0, 0xaa, 0x4c, 0xdd, 0xdf, 0x0d, 0x80, 0x23, 0x1a, 0x48, 0x2e, 0x36, - 0xf7, 0xf6, 0x5e, 0xe4, 0x53, 0xb0, 0x46, 0xab, 0x7f, 0x51, 0xd4, 0x14, 0xac, 0x03, 0x9a, 0x98, - 0xcf, 0xcb, 0x93, 0xf3, 0xf9, 0x43, 0x80, 0x44, 0xd0, 0x90, 0x05, 0x44, 0xd2, 0xf4, 0xbc, 0x47, - 0x66, 0x4c, 0xd5, 0xf9, 0x04, 0xe0, 0xb5, 0xfa, 0x1d, 0xd1, 0xed, 0xa9, 0x3a, 0x93, 0x88, 0xe2, - 0x9f, 0xc5, 0xb3, 0x5e, 0x17, 0xbf, 0x2f, 0xb7, 0x60, 0x29, 0x89, 0x48, 0x40, 0x7b, 0x3c, 0x0a, - 0xa9, 0xf0, 0x25, 0x39, 0xc1, 0x6a, 0xb5, 0xbc, 0xd6, 0x98, 0xf8, 0x90, 0x9c, 0xb8, 0x01, 0x2c, - 0xa2, 0x83, 0x83, 0x88, 0xc4, 0x7b, 0x3c, 0xa4, 0x67, 0xf0, 0x1a, 0xf3, 0xe3, 0xbd, 0x02, 0x26, - 0x4b, 0xfd, 0x80, 0x67, 0xb1, 0xcc, 0x87, 0xce, 0x3a, 0x4b, 0xb7, 0xd5, 0xa7, 0xfb, 0x87, 0x01, - 0x66, 0x71, 0xc0, 0x06, 0x34, 0x06, 0x48, 0xab, 0x4f, 0xe2, 0x38, 0x7d, 0x47, 0xdf, 0x1d, 0x91, - 0xaf, 0x32, 0xa4, 0x6d, 0x36, 0xe3, 0x38, 0x75, 0x1e, 0x4d, 0x40, 0x7c, 0xf7, 0xe3, 0xa1, 0x4c, - 0xc7, 0x40, 0x7e, 0x0c, 0x35, 0x24, 0x29, 0xe7, 0x73, 0x65, 0x16, 0x9f, 0x43, 0xb4, 0xed, 0x92, - 0xa7, 0x0d, 0x9c, 0x55, 0xb0, 0x79, 0x26, 0x93, 0x4c, 0xfa, 0xc3, 0x4c, 0xab, 0x6c, 0x56, 0x56, - 0x2b, 0x5e, 0x4b, 0xcb, 0x3f, 0xd7, 0x09, 0x4f, 0x55, 0x01, 0xc5, 0x3c, 0xa4, 0xb7, 0x7f, 0x32, - 0x60, 0x41, 0xf7, 0xe0, 0xc9, 0x49, 0x61, 0x09, 0x1a, 0xbb, 0x82, 0x12, 0x49, 0xc5, 0x61, 0x8f, - 0xc4, 0xb6, 0xe1, 0xd8, 0xd0, 0xcc, 0x05, 0x4f, 0x5f, 0x67, 0x24, 0xb2, 0xcb, 0x4e, 0x13, 0xcc, - 0x67, 0x34, 0x4d, 0x71, 0xbf, 0x82, 0xa3, 0x04, 0x4d, 0x53, 0xbd, 0x59, 0x75, 0x2c, 0xa8, 0xe9, - 0x65, 0x4d, 0xe9, 0xed, 0x71, 0xa9, 0xbf, 0x16, 0x94, 0xe3, 0x03, 0x41, 0x8f, 0xd9, 0xdb, 0xe7, - 0x44, 0x06, 0x3d, 0xbb, 0xae, 0x1c, 0x1f, 0xf0, 0x54, 0x16, 0x12, 0x53, 0xd9, 0xea, 0xa5, 0xa5, - 0x96, 0x78, 0x8f, 0x6d, 0x70, 0x16, 0xa0, 0xdc, 0x89, 0xed, 0x86, 0x12, 0xed, 0x71, 0xd9, 0x89, - 0xed, 0xe6, 0xed, 0x5d, 0x68, 0x8c, 0x3d, 0x5d, 0x2a, 0x80, 0x97, 0xf1, 0xab, 0x98, 0xbf, 0x89, - 0xf5, 0xbc, 0xb6, 0x19, 0xaa, 0x19, 0xa7, 0x0e, 0x95, 0x17, 0x59, 0xd7, 0x2e, 0xab, 0xc5, 0xf3, - 0x2c, 0xb2, 0x2b, 0x6a, 0xb1, 0xc3, 0x06, 0x76, 0x15, 0x25, 0x3c, 0xb4, 0x6b, 0x5b, 0xf7, 0xbe, - 0xba, 0x7b, 0xc2, 0x64, 0x2f, 0xeb, 0xae, 0x05, 0xbc, 0xbf, 0xae, 0xe9, 0xbe, 0xc3, 0x78, 0xbe, - 0x5a, 0x67, 0xb1, 0xa4, 0x22, 0x26, 0xd1, 0x3a, 0x66, 0x60, 0x5d, 0x65, 0x20, 0xe9, 0x76, 0x17, - 0xf0, 0xeb, 0xde, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x6c, 0x97, 0x4f, 0x55, 0x10, 0x00, - 0x00, + 0x12, 0x27, 0x08, 0x52, 0x04, 0x96, 0x14, 0x05, 0xa3, 0x79, 0xb2, 0xfd, 0x6c, 0xe9, 0xe1, 0x79, + 0x9e, 0xf5, 0xfc, 0xc6, 0xd2, 0xf8, 0xd9, 0xcf, 0x7e, 0x76, 0xc6, 0x89, 0xfe, 0x39, 0x22, 0x27, + 0xb6, 0xa4, 0xc0, 0xb2, 0x8a, 0x34, 0x98, 0x23, 0x70, 0x12, 0x6f, 0x0c, 0xde, 0xc1, 0xc0, 0x81, + 0xb6, 0xea, 0x74, 0xe9, 0xf2, 0x01, 0x52, 0xa7, 0x4f, 0x99, 0x26, 0x65, 0x9a, 0x14, 0x29, 0xd3, + 0xe7, 0x23, 0xa4, 0x4b, 0x95, 0xb9, 0x3d, 0xf0, 0x9f, 0x86, 0xb4, 0xa8, 0x89, 0x67, 0xd2, 0x1d, + 0xf6, 0x76, 0x7f, 0xb7, 0xfb, 0xdb, 0xbd, 0xbd, 0x05, 0x40, 0x12, 0x13, 0xbe, 0x9e, 0xa4, 0x42, + 0x0a, 0xf7, 0x4a, 0x8f, 0xc5, 0xfd, 0x3c, 0xd3, 0x5f, 0xeb, 0x6a, 0xe3, 0x5a, 0x23, 0x0b, 0xbb, + 0xb4, 0x47, 0xb4, 0xc8, 0xfb, 0xda, 0x80, 0xc6, 0x1e, 0xe5, 0x34, 0x65, 0xe1, 0x31, 0x89, 0x73, + 0xea, 0x5e, 0x07, 0xab, 0x23, 0x44, 0x1c, 0xf4, 0x49, 0xbc, 0x6c, 0xac, 0x1a, 0x6b, 0x56, 0xab, + 0xe4, 0xd7, 0x94, 0xe4, 0x98, 0xc4, 0xee, 0x0d, 0xb0, 0x19, 0x97, 0x0f, 0x1f, 0xe0, 0x6e, 0x79, + 0xd5, 0x58, 0x33, 0x5b, 0x25, 0xdf, 0x42, 0x51, 0xb1, 0x7d, 0x12, 0x0b, 0x22, 0x71, 0xdb, 0x5c, + 0x35, 0xd6, 0x0c, 0xb5, 0x8d, 0x22, 0xb5, 0xbd, 0x02, 0x90, 0xc9, 0x94, 0xf1, 0x53, 0xdc, 0xaf, + 0xac, 0x1a, 0x6b, 0x76, 0xab, 0xe4, 0xdb, 0x5a, 0x76, 0x4c, 0xe2, 0xed, 0x2a, 0x98, 0x7d, 0x12, + 0x7b, 0x5f, 0x19, 0x60, 0x7f, 0x9e, 0xd3, 0xf4, 0xac, 0xcd, 0x4f, 0x84, 0xeb, 0x42, 0x45, 0x8a, + 0xe4, 0x35, 0x3a, 0x63, 0xfa, 0xb8, 0x76, 0x57, 0xa0, 0xde, 0xa3, 0x32, 0x65, 0x61, 0x20, 0xcf, + 0x12, 0x8a, 0x47, 0xd9, 0x3e, 0x68, 0xd1, 0xd1, 0x59, 0x42, 0xdd, 0x7f, 0xc2, 0x62, 0x46, 0x49, + 0x1a, 0x76, 0x83, 0x84, 0xa4, 0xa4, 0x97, 0xe9, 0xd3, 0xfc, 0x86, 0x16, 0x1e, 0xa2, 0x4c, 0x29, + 0xa5, 0x22, 0xe7, 0x51, 0x10, 0xd1, 0x90, 0xf5, 0x48, 0xbc, 0x5c, 0xc5, 0x23, 0x1a, 0x28, 0xdc, + 0xd5, 0x32, 0xef, 0x47, 0x03, 0x60, 0x47, 0xc4, 0x79, 0x8f, 0xa3, 0x37, 0x57, 0xc1, 0x3a, 0x61, + 0x34, 0x8e, 0x02, 0x16, 0x15, 0x1e, 0xd5, 0xf0, 0xbb, 0x1d, 0xb9, 0x4f, 0xc0, 0x8e, 0x88, 0x24, + 0xda, 0x25, 0x45, 0x4e, 0xf3, 0xbf, 0x37, 0xd6, 0x27, 0xf8, 0x2f, 0x98, 0xdf, 0x25, 0x92, 0x28, + 0x2f, 0x7d, 0x2b, 0x2a, 0x56, 0xee, 0x2d, 0x68, 0xb2, 0x2c, 0x48, 0x52, 0xd6, 0x23, 0xe9, 0x59, + 0xf0, 0x9a, 0x9e, 0x61, 0x4c, 0x96, 0xdf, 0x60, 0xd9, 0xa1, 0x16, 0x7e, 0x46, 0xcf, 0xdc, 0xeb, + 0x60, 0xb3, 0x2c, 0x20, 0xb9, 0x14, 0xed, 0x5d, 0x8c, 0xc8, 0xf2, 0x2d, 0x96, 0x6d, 0xe1, 0xb7, + 0xe2, 0x84, 0xd3, 0x4c, 0xd2, 0x28, 0x48, 0x88, 0xec, 0x2e, 0x57, 0x57, 0x4d, 0xc5, 0x89, 0x16, + 0x1d, 0x12, 0xd9, 0xf5, 0x3e, 0x19, 0x04, 0xf2, 0xec, 0x5d, 0x92, 0xba, 0xf7, 0xa0, 0xc2, 0xf8, + 0x89, 0xc0, 0x20, 0xea, 0xe7, 0x1d, 0xc5, 0x0a, 0x1a, 0x45, 0xed, 0xa3, 0xaa, 0xb7, 0x0d, 0x36, + 0xd6, 0x08, 0xda, 0xff, 0x0f, 0xaa, 0x7d, 0xf5, 0x51, 0x00, 0xac, 0x4c, 0x01, 0x18, 0xaf, 0x2b, + 0x5f, 0x6b, 0x7b, 0xdf, 0x19, 0xd0, 0x7c, 0xc5, 0x49, 0x7a, 0xe6, 0x13, 0x7e, 0xaa, 0x91, 0x3e, + 0x86, 0x7a, 0x88, 0x47, 0x05, 0xf3, 0x3b, 0x04, 0xe1, 0x28, 0x25, 0xff, 0x86, 0xb2, 0x48, 0x0a, + 0xc2, 0xaf, 0x4e, 0x31, 0x3b, 0x48, 0x90, 0xec, 0xb2, 0x48, 0x46, 0x4e, 0x9b, 0x97, 0x72, 0xfa, + 0xdb, 0x32, 0x2c, 0x6d, 0xb3, 0x0f, 0xeb, 0xf5, 0x6d, 0x58, 0x8a, 0xc5, 0x5b, 0x9a, 0x06, 0x8c, + 0x87, 0x71, 0x9e, 0xb1, 0xbe, 0xae, 0x19, 0xcb, 0x6f, 0xa2, 0xb8, 0x3d, 0x90, 0x2a, 0xc5, 0x3c, + 0x49, 0x26, 0x14, 0x75, 0x6d, 0x34, 0x51, 0x3c, 0x52, 0xdc, 0x84, 0xba, 0x46, 0xd4, 0x21, 0x56, + 0xe6, 0x0b, 0x11, 0xd0, 0x46, 0xdf, 0xfd, 0x4d, 0xa8, 0xeb, 0xa3, 0x34, 0x42, 0x75, 0x4e, 0x04, + 0xb4, 0xc1, 0xb5, 0xf7, 0x93, 0x01, 0xf5, 0x1d, 0xd1, 0x4b, 0x48, 0xaa, 0x59, 0xda, 0x03, 0x27, + 0xa6, 0x27, 0x32, 0xb8, 0x34, 0x55, 0x4d, 0x65, 0x36, 0x76, 0xef, 0xda, 0x70, 0x25, 0x65, 0xa7, + 0xdd, 0x49, 0xa4, 0xf2, 0x3c, 0x48, 0x4b, 0x68, 0xb7, 0x73, 0xbe, 0x5e, 0xcc, 0x39, 0xea, 0xc5, + 0xfb, 0xd2, 0x00, 0xeb, 0x88, 0xa6, 0xbd, 0x0f, 0x92, 0xf1, 0x47, 0xb0, 0x80, 0xbc, 0x66, 0xcb, + 0xe5, 0x55, 0x73, 0x1e, 0x62, 0x0b, 0x75, 0xd5, 0xa3, 0x6d, 0xbc, 0x33, 0xe8, 0xc6, 0x03, 0x74, + 0xdf, 0x40, 0xf7, 0x6f, 0x4d, 0x81, 0x18, 0x6a, 0xea, 0xd5, 0x41, 0x82, 0x95, 0x7f, 0x17, 0xaa, + 0x61, 0x97, 0xc5, 0x51, 0xc1, 0xd9, 0xdf, 0xa6, 0x18, 0x2a, 0x1b, 0x5f, 0x6b, 0x79, 0x2b, 0x50, + 0x2b, 0xac, 0xdd, 0x3a, 0xd4, 0xda, 0xbc, 0x4f, 0x62, 0x16, 0x39, 0x25, 0xb7, 0x06, 0xe6, 0xbe, + 0x90, 0x8e, 0xe1, 0xfd, 0x62, 0x00, 0xe8, 0x2b, 0x81, 0x4e, 0x3d, 0x1c, 0x73, 0xea, 0x5f, 0x53, + 0xb0, 0x47, 0xaa, 0xc5, 0xb2, 0x70, 0xeb, 0x3f, 0x50, 0x51, 0x89, 0xbe, 0xc8, 0x2b, 0x54, 0x52, + 0x31, 0x60, 0x2e, 0x8b, 0xdb, 0x3b, 0x3b, 0x06, 0xd4, 0xf2, 0x1e, 0x82, 0x35, 0x38, 0x6b, 0x32, + 0x88, 0x26, 0xc0, 0x73, 0x71, 0xca, 0x42, 0x12, 0x6f, 0xf1, 0xc8, 0x31, 0xdc, 0x45, 0xb0, 0x8b, + 0xef, 0x83, 0xd4, 0x29, 0x7b, 0x3f, 0x1b, 0xb0, 0xa8, 0x0d, 0xb7, 0x52, 0x26, 0xbb, 0x07, 0xc9, + 0x9f, 0xce, 0xfc, 0x63, 0xb0, 0x88, 0x82, 0x0a, 0x86, 0x7d, 0xea, 0xe6, 0x14, 0xe3, 0xe2, 0x34, + 0x2c, 0xbe, 0x1a, 0x29, 0x8e, 0xde, 0x85, 0x45, 0x5d, 0xf7, 0x22, 0xa1, 0x29, 0xe1, 0xd1, 0xbc, + 0x9d, 0xab, 0x81, 0x56, 0x07, 0xda, 0xc8, 0xfb, 0xc6, 0x18, 0x34, 0x30, 0x3c, 0x04, 0x53, 0x36, + 0xa0, 0xde, 0xb8, 0x14, 0xf5, 0xe5, 0x79, 0xa8, 0x77, 0xd7, 0xc7, 0xae, 0xd8, 0x45, 0xa1, 0xaa, + 0x7b, 0xf6, 0x43, 0x19, 0xae, 0x4d, 0x50, 0xfe, 0xac, 0x4f, 0xe2, 0x0f, 0xd7, 0x6b, 0xff, 0x6a, + 0xfe, 0x8b, 0x96, 0x53, 0xb9, 0xd4, 0x13, 0x55, 0xbd, 0xd4, 0x13, 0xf5, 0x7b, 0x15, 0x2a, 0xc8, + 0xd5, 0x13, 0xb0, 0x25, 0x4d, 0x7b, 0x01, 0x7d, 0x97, 0xa4, 0x05, 0x53, 0xd7, 0xa7, 0x60, 0x0c, + 0xba, 0x9a, 0x1a, 0xd0, 0xe4, 0xa0, 0xc3, 0x3d, 0x05, 0xc8, 0x55, 0x12, 0xb4, 0xb1, 0x4e, 0xf5, + 0xdf, 0xdf, 0xd7, 0x62, 0xd4, 0xf8, 0x96, 0x0f, 0x9b, 0xc0, 0x26, 0xd4, 0x3b, 0x6c, 0x64, 0x6f, + 0xce, 0x4c, 0xd3, 0xa8, 0x1b, 0xb4, 0x4a, 0x3e, 0x74, 0x46, 0x6d, 0x64, 0x07, 0x1a, 0xa1, 0x7e, + 0x3d, 0x34, 0x84, 0x7e, 0xc3, 0x6e, 0x4e, 0xcd, 0xf4, 0xf0, 0x91, 0x69, 0x95, 0xfc, 0x7a, 0x38, + 0xf6, 0xe6, 0xbc, 0x00, 0x47, 0x47, 0x91, 0xaa, 0x02, 0xd2, 0x40, 0x9a, 0xcc, 0x7f, 0xcc, 0x8a, + 0x65, 0x58, 0x6a, 0xad, 0x92, 0xdf, 0xcc, 0x27, 0x1f, 0xfa, 0x43, 0xb8, 0x52, 0x44, 0x35, 0x86, + 0xb7, 0x80, 0x78, 0xde, 0xcc, 0xd8, 0xc6, 0x01, 0x97, 0x3a, 0xe7, 0x46, 0x07, 0x09, 0x2b, 0x05, + 0xe2, 0xa0, 0x2a, 0x03, 0xda, 0x27, 0xf1, 0x38, 0x7e, 0x0d, 0xf1, 0xef, 0xce, 0xc4, 0x9f, 0x76, + 0x4d, 0x5a, 0x25, 0xff, 0x5a, 0x67, 0xf6, 0x25, 0x1a, 0xc5, 0xa1, 0x4f, 0xc5, 0x73, 0xac, 0x0b, + 0xe2, 0x18, 0xb6, 0x8b, 0x51, 0x1c, 0xa3, 0x0e, 0xf2, 0x14, 0x00, 0x8b, 0x4f, 0x43, 0xd9, 0x33, + 0xcb, 0x65, 0x38, 0x34, 0xaa, 0x72, 0xe9, 0x0f, 0x27, 0xc8, 0xcd, 0xe1, 0xad, 0x46, 0x7b, 0xb8, + 0xe0, 0x56, 0x0f, 0xca, 0x25, 0x1c, 0x7e, 0x6d, 0x2f, 0x40, 0x45, 0x99, 0x7a, 0xbf, 0x1a, 0x00, + 0xc7, 0x34, 0x94, 0x22, 0xdd, 0xda, 0xdf, 0x7f, 0x59, 0x8c, 0xc9, 0xda, 0x5b, 0xfd, 0x0f, 0xa3, + 0xc6, 0x64, 0x1d, 0xd0, 0xc4, 0x00, 0x5f, 0x9e, 0x1c, 0xe0, 0x1f, 0x01, 0x24, 0x29, 0x8d, 0x58, + 0x48, 0x24, 0xcd, 0x2e, 0x7a, 0x64, 0xc6, 0x54, 0xdd, 0x8f, 0x00, 0xde, 0xa8, 0xff, 0x15, 0xdd, + 0x9e, 0x2a, 0x33, 0x89, 0x18, 0xfe, 0xd4, 0xf8, 0xf6, 0x9b, 0xe1, 0xff, 0xcd, 0x6d, 0x58, 0x4a, + 0x62, 0x12, 0xd2, 0xae, 0x88, 0x23, 0x9a, 0x06, 0x92, 0x9c, 0x62, 0xb5, 0xda, 0x7e, 0x73, 0x4c, + 0x7c, 0x44, 0x4e, 0xbd, 0x10, 0x16, 0x11, 0xe0, 0x30, 0x26, 0x7c, 0x5f, 0x44, 0xf4, 0x9c, 0xbf, + 0xc6, 0xfc, 0xfe, 0x5e, 0x05, 0x8b, 0x65, 0x41, 0x28, 0x72, 0x2e, 0x8b, 0xa1, 0xb3, 0xc6, 0xb2, + 0x1d, 0xf5, 0xe9, 0xfd, 0x66, 0x80, 0x35, 0x3c, 0x60, 0x13, 0xea, 0x7d, 0xa4, 0x35, 0x20, 0x9c, + 0x67, 0xef, 0xe9, 0xbb, 0x23, 0xf2, 0x55, 0x86, 0xb4, 0xcd, 0x16, 0xe7, 0x99, 0xfb, 0x78, 0xc2, + 0xc5, 0xf7, 0x3f, 0x1e, 0xca, 0x74, 0xcc, 0xc9, 0xff, 0x43, 0x15, 0x49, 0x2a, 0xf8, 0x5c, 0x9d, + 0xc5, 0xe7, 0xc0, 0xdb, 0x56, 0xc9, 0xd7, 0x06, 0xee, 0x1a, 0x38, 0x22, 0x97, 0x49, 0x2e, 0x83, + 0x41, 0xa6, 0x55, 0x36, 0xcd, 0x35, 0xd3, 0x6f, 0x6a, 0xf9, 0xa7, 0x3a, 0xe1, 0x99, 0x2a, 0x20, + 0x2e, 0x22, 0x7a, 0xe7, 0x7b, 0x03, 0x16, 0x74, 0x0f, 0x9e, 0x9c, 0x14, 0x96, 0xa0, 0xbe, 0x97, + 0x52, 0x22, 0x69, 0x7a, 0xd4, 0x25, 0xdc, 0x31, 0x5c, 0x07, 0x1a, 0x85, 0xe0, 0xd9, 0x9b, 0x9c, + 0xc4, 0x4e, 0xd9, 0x6d, 0x80, 0xf5, 0x9c, 0x66, 0x19, 0xee, 0x9b, 0x38, 0x4a, 0xd0, 0x2c, 0xd3, + 0x9b, 0x15, 0xd7, 0x86, 0xaa, 0x5e, 0x56, 0x95, 0xde, 0xbe, 0x90, 0xfa, 0x6b, 0x41, 0x01, 0x1f, + 0xa6, 0xf4, 0x84, 0xbd, 0x7b, 0x41, 0x64, 0xd8, 0x75, 0x6a, 0x0a, 0xf8, 0x50, 0x64, 0x72, 0x28, + 0xb1, 0x94, 0xad, 0x5e, 0xda, 0x6a, 0x89, 0xf7, 0xd8, 0x01, 0x77, 0x01, 0xca, 0x6d, 0xee, 0xd4, + 0x95, 0x68, 0x5f, 0xc8, 0x36, 0x77, 0x1a, 0x77, 0xf6, 0xa0, 0x3e, 0xf6, 0x74, 0xa9, 0x00, 0x5e, + 0xf1, 0xd7, 0x5c, 0xbc, 0xe5, 0x7a, 0x5e, 0xdb, 0x8a, 0xd4, 0x8c, 0x53, 0x03, 0xf3, 0x65, 0xde, + 0x71, 0xca, 0x6a, 0xf1, 0x22, 0x8f, 0x1d, 0x53, 0x2d, 0x76, 0x59, 0xdf, 0xa9, 0xa0, 0x44, 0x44, + 0x4e, 0x75, 0xfb, 0xfe, 0x17, 0xf7, 0x4e, 0x99, 0xec, 0xe6, 0x9d, 0xf5, 0x50, 0xf4, 0x36, 0x34, + 0xdd, 0x77, 0x99, 0x28, 0x56, 0x1b, 0x8c, 0x4b, 0x9a, 0x72, 0x12, 0x6f, 0x60, 0x06, 0x36, 0x54, + 0x06, 0x92, 0x4e, 0x67, 0x01, 0xbf, 0xee, 0xff, 0x11, 0x00, 0x00, 0xff, 0xff, 0x80, 0xc6, 0x4c, + 0xe0, 0x76, 0x10, 0x00, 0x00, }