// Code generated by protoc-gen-go. DO NOT EDIT.
// source: plan.proto

package planpb

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	schemapb "github.com/milvus-io/milvus/api/schemapb"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type OpType int32

const (
	OpType_Invalid      OpType = 0
	OpType_GreaterThan  OpType = 1
	OpType_GreaterEqual OpType = 2
	OpType_LessThan     OpType = 3
	OpType_LessEqual    OpType = 4
	OpType_Equal        OpType = 5
	OpType_NotEqual     OpType = 6
	OpType_PrefixMatch  OpType = 7
	OpType_PostfixMatch OpType = 8
	OpType_Match        OpType = 9
	OpType_Range        OpType = 10
	OpType_In           OpType = 11
	OpType_NotIn        OpType = 12
)

var OpType_name = map[int32]string{
	0:  "Invalid",
	1:  "GreaterThan",
	2:  "GreaterEqual",
	3:  "LessThan",
	4:  "LessEqual",
	5:  "Equal",
	6:  "NotEqual",
	7:  "PrefixMatch",
	8:  "PostfixMatch",
	9:  "Match",
	10: "Range",
	11: "In",
	12: "NotIn",
}

var OpType_value = map[string]int32{
	"Invalid":      0,
	"GreaterThan":  1,
	"GreaterEqual": 2,
	"LessThan":     3,
	"LessEqual":    4,
	"Equal":        5,
	"NotEqual":     6,
	"PrefixMatch":  7,
	"PostfixMatch": 8,
	"Match":        9,
	"Range":        10,
	"In":           11,
	"NotIn":        12,
}

func (x OpType) String() string {
	return proto.EnumName(OpType_name, int32(x))
}

func (OpType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{0}
}

type ArithOpType int32

const (
	ArithOpType_Unknown ArithOpType = 0
	ArithOpType_Add     ArithOpType = 1
	ArithOpType_Sub     ArithOpType = 2
	ArithOpType_Mul     ArithOpType = 3
	ArithOpType_Div     ArithOpType = 4
	ArithOpType_Mod     ArithOpType = 5
)

var ArithOpType_name = map[int32]string{
	0: "Unknown",
	1: "Add",
	2: "Sub",
	3: "Mul",
	4: "Div",
	5: "Mod",
}

var ArithOpType_value = map[string]int32{
	"Unknown": 0,
	"Add":     1,
	"Sub":     2,
	"Mul":     3,
	"Div":     4,
	"Mod":     5,
}

func (x ArithOpType) String() string {
	return proto.EnumName(ArithOpType_name, int32(x))
}

func (ArithOpType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{1}
}

type UnaryExpr_UnaryOp int32

const (
	UnaryExpr_Invalid UnaryExpr_UnaryOp = 0
	UnaryExpr_Not     UnaryExpr_UnaryOp = 1
)

var UnaryExpr_UnaryOp_name = map[int32]string{
	0: "Invalid",
	1: "Not",
}

var UnaryExpr_UnaryOp_value = map[string]int32{
	"Invalid": 0,
	"Not":     1,
}

func (x UnaryExpr_UnaryOp) String() string {
	return proto.EnumName(UnaryExpr_UnaryOp_name, int32(x))
}

func (UnaryExpr_UnaryOp) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{9, 0}
}

type BinaryExpr_BinaryOp int32

const (
	BinaryExpr_Invalid    BinaryExpr_BinaryOp = 0
	BinaryExpr_LogicalAnd BinaryExpr_BinaryOp = 1
	BinaryExpr_LogicalOr  BinaryExpr_BinaryOp = 2
)

var BinaryExpr_BinaryOp_name = map[int32]string{
	0: "Invalid",
	1: "LogicalAnd",
	2: "LogicalOr",
}

var BinaryExpr_BinaryOp_value = map[string]int32{
	"Invalid":    0,
	"LogicalAnd": 1,
	"LogicalOr":  2,
}

func (x BinaryExpr_BinaryOp) String() string {
	return proto.EnumName(BinaryExpr_BinaryOp_name, int32(x))
}

func (BinaryExpr_BinaryOp) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{10, 0}
}

type GenericValue struct {
	// Types that are valid to be assigned to Val:
	//	*GenericValue_BoolVal
	//	*GenericValue_Int64Val
	//	*GenericValue_FloatVal
	//	*GenericValue_StringVal
	Val                  isGenericValue_Val `protobuf_oneof:"val"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *GenericValue) Reset()         { *m = GenericValue{} }
func (m *GenericValue) String() string { return proto.CompactTextString(m) }
func (*GenericValue) ProtoMessage()    {}
func (*GenericValue) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{0}
}

func (m *GenericValue) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GenericValue.Unmarshal(m, b)
}
func (m *GenericValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GenericValue.Marshal(b, m, deterministic)
}
func (m *GenericValue) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GenericValue.Merge(m, src)
}
func (m *GenericValue) XXX_Size() int {
	return xxx_messageInfo_GenericValue.Size(m)
}
func (m *GenericValue) XXX_DiscardUnknown() {
	xxx_messageInfo_GenericValue.DiscardUnknown(m)
}

var xxx_messageInfo_GenericValue proto.InternalMessageInfo

type isGenericValue_Val interface {
	isGenericValue_Val()
}

type GenericValue_BoolVal struct {
	BoolVal bool `protobuf:"varint,1,opt,name=bool_val,json=boolVal,proto3,oneof"`
}

type GenericValue_Int64Val struct {
	Int64Val int64 `protobuf:"varint,2,opt,name=int64_val,json=int64Val,proto3,oneof"`
}

type GenericValue_FloatVal struct {
	FloatVal float64 `protobuf:"fixed64,3,opt,name=float_val,json=floatVal,proto3,oneof"`
}

type GenericValue_StringVal struct {
	StringVal string `protobuf:"bytes,4,opt,name=string_val,json=stringVal,proto3,oneof"`
}

func (*GenericValue_BoolVal) isGenericValue_Val() {}

func (*GenericValue_Int64Val) isGenericValue_Val() {}

func (*GenericValue_FloatVal) isGenericValue_Val() {}

func (*GenericValue_StringVal) isGenericValue_Val() {}

func (m *GenericValue) GetVal() isGenericValue_Val {
	if m != nil {
		return m.Val
	}
	return nil
}

func (m *GenericValue) GetBoolVal() bool {
	if x, ok := m.GetVal().(*GenericValue_BoolVal); ok {
		return x.BoolVal
	}
	return false
}

func (m *GenericValue) GetInt64Val() int64 {
	if x, ok := m.GetVal().(*GenericValue_Int64Val); ok {
		return x.Int64Val
	}
	return 0
}

func (m *GenericValue) GetFloatVal() float64 {
	if x, ok := m.GetVal().(*GenericValue_FloatVal); ok {
		return x.FloatVal
	}
	return 0
}

func (m *GenericValue) GetStringVal() string {
	if x, ok := m.GetVal().(*GenericValue_StringVal); ok {
		return x.StringVal
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*GenericValue) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*GenericValue_BoolVal)(nil),
		(*GenericValue_Int64Val)(nil),
		(*GenericValue_FloatVal)(nil),
		(*GenericValue_StringVal)(nil),
	}
}

type QueryInfo struct {
	Topk                 int64    `protobuf:"varint,1,opt,name=topk,proto3" json:"topk,omitempty"`
	MetricType           string   `protobuf:"bytes,3,opt,name=metric_type,json=metricType,proto3" json:"metric_type,omitempty"`
	SearchParams         string   `protobuf:"bytes,4,opt,name=search_params,json=searchParams,proto3" json:"search_params,omitempty"`
	RoundDecimal         int64    `protobuf:"varint,5,opt,name=round_decimal,json=roundDecimal,proto3" json:"round_decimal,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QueryInfo) Reset()         { *m = QueryInfo{} }
func (m *QueryInfo) String() string { return proto.CompactTextString(m) }
func (*QueryInfo) ProtoMessage()    {}
func (*QueryInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{1}
}

func (m *QueryInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryInfo.Unmarshal(m, b)
}
func (m *QueryInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryInfo.Marshal(b, m, deterministic)
}
func (m *QueryInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryInfo.Merge(m, src)
}
func (m *QueryInfo) XXX_Size() int {
	return xxx_messageInfo_QueryInfo.Size(m)
}
func (m *QueryInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryInfo.DiscardUnknown(m)
}

var xxx_messageInfo_QueryInfo proto.InternalMessageInfo

func (m *QueryInfo) GetTopk() int64 {
	if m != nil {
		return m.Topk
	}
	return 0
}

func (m *QueryInfo) GetMetricType() string {
	if m != nil {
		return m.MetricType
	}
	return ""
}

func (m *QueryInfo) GetSearchParams() string {
	if m != nil {
		return m.SearchParams
	}
	return ""
}

func (m *QueryInfo) GetRoundDecimal() int64 {
	if m != nil {
		return m.RoundDecimal
	}
	return 0
}

type ColumnInfo struct {
	FieldId              int64             `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	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"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *ColumnInfo) Reset()         { *m = ColumnInfo{} }
func (m *ColumnInfo) String() string { return proto.CompactTextString(m) }
func (*ColumnInfo) ProtoMessage()    {}
func (*ColumnInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{2}
}

func (m *ColumnInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ColumnInfo.Unmarshal(m, b)
}
func (m *ColumnInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ColumnInfo.Marshal(b, m, deterministic)
}
func (m *ColumnInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ColumnInfo.Merge(m, src)
}
func (m *ColumnInfo) XXX_Size() int {
	return xxx_messageInfo_ColumnInfo.Size(m)
}
func (m *ColumnInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_ColumnInfo.DiscardUnknown(m)
}

var xxx_messageInfo_ColumnInfo proto.InternalMessageInfo

func (m *ColumnInfo) GetFieldId() int64 {
	if m != nil {
		return m.FieldId
	}
	return 0
}

func (m *ColumnInfo) GetDataType() schemapb.DataType {
	if m != nil {
		return m.DataType
	}
	return schemapb.DataType_None
}

func (m *ColumnInfo) GetIsPrimaryKey() bool {
	if m != nil {
		return m.IsPrimaryKey
	}
	return false
}

func (m *ColumnInfo) GetIsAutoID() bool {
	if m != nil {
		return m.IsAutoID
	}
	return false
}

type ColumnExpr struct {
	Info                 *ColumnInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *ColumnExpr) Reset()         { *m = ColumnExpr{} }
func (m *ColumnExpr) String() string { return proto.CompactTextString(m) }
func (*ColumnExpr) ProtoMessage()    {}
func (*ColumnExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{3}
}

func (m *ColumnExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ColumnExpr.Unmarshal(m, b)
}
func (m *ColumnExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ColumnExpr.Marshal(b, m, deterministic)
}
func (m *ColumnExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ColumnExpr.Merge(m, src)
}
func (m *ColumnExpr) XXX_Size() int {
	return xxx_messageInfo_ColumnExpr.Size(m)
}
func (m *ColumnExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_ColumnExpr.DiscardUnknown(m)
}

var xxx_messageInfo_ColumnExpr proto.InternalMessageInfo

func (m *ColumnExpr) GetInfo() *ColumnInfo {
	if m != nil {
		return m.Info
	}
	return nil
}

type ValueExpr struct {
	Value                *GenericValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *ValueExpr) Reset()         { *m = ValueExpr{} }
func (m *ValueExpr) String() string { return proto.CompactTextString(m) }
func (*ValueExpr) ProtoMessage()    {}
func (*ValueExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{4}
}

func (m *ValueExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ValueExpr.Unmarshal(m, b)
}
func (m *ValueExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ValueExpr.Marshal(b, m, deterministic)
}
func (m *ValueExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ValueExpr.Merge(m, src)
}
func (m *ValueExpr) XXX_Size() int {
	return xxx_messageInfo_ValueExpr.Size(m)
}
func (m *ValueExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_ValueExpr.DiscardUnknown(m)
}

var xxx_messageInfo_ValueExpr proto.InternalMessageInfo

func (m *ValueExpr) GetValue() *GenericValue {
	if m != nil {
		return m.Value
	}
	return nil
}

type UnaryRangeExpr struct {
	ColumnInfo           *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Op                   OpType        `protobuf:"varint,2,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	Value                *GenericValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *UnaryRangeExpr) Reset()         { *m = UnaryRangeExpr{} }
func (m *UnaryRangeExpr) String() string { return proto.CompactTextString(m) }
func (*UnaryRangeExpr) ProtoMessage()    {}
func (*UnaryRangeExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{5}
}

func (m *UnaryRangeExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnaryRangeExpr.Unmarshal(m, b)
}
func (m *UnaryRangeExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnaryRangeExpr.Marshal(b, m, deterministic)
}
func (m *UnaryRangeExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnaryRangeExpr.Merge(m, src)
}
func (m *UnaryRangeExpr) XXX_Size() int {
	return xxx_messageInfo_UnaryRangeExpr.Size(m)
}
func (m *UnaryRangeExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_UnaryRangeExpr.DiscardUnknown(m)
}

var xxx_messageInfo_UnaryRangeExpr proto.InternalMessageInfo

func (m *UnaryRangeExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *UnaryRangeExpr) GetOp() OpType {
	if m != nil {
		return m.Op
	}
	return OpType_Invalid
}

func (m *UnaryRangeExpr) GetValue() *GenericValue {
	if m != nil {
		return m.Value
	}
	return nil
}

type BinaryRangeExpr struct {
	ColumnInfo           *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	LowerInclusive       bool          `protobuf:"varint,2,opt,name=lower_inclusive,json=lowerInclusive,proto3" json:"lower_inclusive,omitempty"`
	UpperInclusive       bool          `protobuf:"varint,3,opt,name=upper_inclusive,json=upperInclusive,proto3" json:"upper_inclusive,omitempty"`
	LowerValue           *GenericValue `protobuf:"bytes,4,opt,name=lower_value,json=lowerValue,proto3" json:"lower_value,omitempty"`
	UpperValue           *GenericValue `protobuf:"bytes,5,opt,name=upper_value,json=upperValue,proto3" json:"upper_value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *BinaryRangeExpr) Reset()         { *m = BinaryRangeExpr{} }
func (m *BinaryRangeExpr) String() string { return proto.CompactTextString(m) }
func (*BinaryRangeExpr) ProtoMessage()    {}
func (*BinaryRangeExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{6}
}

func (m *BinaryRangeExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryRangeExpr.Unmarshal(m, b)
}
func (m *BinaryRangeExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryRangeExpr.Marshal(b, m, deterministic)
}
func (m *BinaryRangeExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryRangeExpr.Merge(m, src)
}
func (m *BinaryRangeExpr) XXX_Size() int {
	return xxx_messageInfo_BinaryRangeExpr.Size(m)
}
func (m *BinaryRangeExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryRangeExpr.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryRangeExpr proto.InternalMessageInfo

func (m *BinaryRangeExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *BinaryRangeExpr) GetLowerInclusive() bool {
	if m != nil {
		return m.LowerInclusive
	}
	return false
}

func (m *BinaryRangeExpr) GetUpperInclusive() bool {
	if m != nil {
		return m.UpperInclusive
	}
	return false
}

func (m *BinaryRangeExpr) GetLowerValue() *GenericValue {
	if m != nil {
		return m.LowerValue
	}
	return nil
}

func (m *BinaryRangeExpr) GetUpperValue() *GenericValue {
	if m != nil {
		return m.UpperValue
	}
	return nil
}

type CompareExpr struct {
	LeftColumnInfo       *ColumnInfo `protobuf:"bytes,1,opt,name=left_column_info,json=leftColumnInfo,proto3" json:"left_column_info,omitempty"`
	RightColumnInfo      *ColumnInfo `protobuf:"bytes,2,opt,name=right_column_info,json=rightColumnInfo,proto3" json:"right_column_info,omitempty"`
	Op                   OpType      `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *CompareExpr) Reset()         { *m = CompareExpr{} }
func (m *CompareExpr) String() string { return proto.CompactTextString(m) }
func (*CompareExpr) ProtoMessage()    {}
func (*CompareExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{7}
}

func (m *CompareExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CompareExpr.Unmarshal(m, b)
}
func (m *CompareExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CompareExpr.Marshal(b, m, deterministic)
}
func (m *CompareExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CompareExpr.Merge(m, src)
}
func (m *CompareExpr) XXX_Size() int {
	return xxx_messageInfo_CompareExpr.Size(m)
}
func (m *CompareExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_CompareExpr.DiscardUnknown(m)
}

var xxx_messageInfo_CompareExpr proto.InternalMessageInfo

func (m *CompareExpr) GetLeftColumnInfo() *ColumnInfo {
	if m != nil {
		return m.LeftColumnInfo
	}
	return nil
}

func (m *CompareExpr) GetRightColumnInfo() *ColumnInfo {
	if m != nil {
		return m.RightColumnInfo
	}
	return nil
}

func (m *CompareExpr) GetOp() OpType {
	if m != nil {
		return m.Op
	}
	return OpType_Invalid
}

type TermExpr struct {
	ColumnInfo           *ColumnInfo     `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	Values               []*GenericValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *TermExpr) Reset()         { *m = TermExpr{} }
func (m *TermExpr) String() string { return proto.CompactTextString(m) }
func (*TermExpr) ProtoMessage()    {}
func (*TermExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{8}
}

func (m *TermExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TermExpr.Unmarshal(m, b)
}
func (m *TermExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TermExpr.Marshal(b, m, deterministic)
}
func (m *TermExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TermExpr.Merge(m, src)
}
func (m *TermExpr) XXX_Size() int {
	return xxx_messageInfo_TermExpr.Size(m)
}
func (m *TermExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_TermExpr.DiscardUnknown(m)
}

var xxx_messageInfo_TermExpr proto.InternalMessageInfo

func (m *TermExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *TermExpr) GetValues() []*GenericValue {
	if m != nil {
		return m.Values
	}
	return nil
}

type UnaryExpr struct {
	Op                   UnaryExpr_UnaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.UnaryExpr_UnaryOp" json:"op,omitempty"`
	Child                *Expr             `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *UnaryExpr) Reset()         { *m = UnaryExpr{} }
func (m *UnaryExpr) String() string { return proto.CompactTextString(m) }
func (*UnaryExpr) ProtoMessage()    {}
func (*UnaryExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{9}
}

func (m *UnaryExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnaryExpr.Unmarshal(m, b)
}
func (m *UnaryExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnaryExpr.Marshal(b, m, deterministic)
}
func (m *UnaryExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnaryExpr.Merge(m, src)
}
func (m *UnaryExpr) XXX_Size() int {
	return xxx_messageInfo_UnaryExpr.Size(m)
}
func (m *UnaryExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_UnaryExpr.DiscardUnknown(m)
}

var xxx_messageInfo_UnaryExpr proto.InternalMessageInfo

func (m *UnaryExpr) GetOp() UnaryExpr_UnaryOp {
	if m != nil {
		return m.Op
	}
	return UnaryExpr_Invalid
}

func (m *UnaryExpr) GetChild() *Expr {
	if m != nil {
		return m.Child
	}
	return nil
}

type BinaryExpr struct {
	Op                   BinaryExpr_BinaryOp `protobuf:"varint,1,opt,name=op,proto3,enum=milvus.proto.plan.BinaryExpr_BinaryOp" json:"op,omitempty"`
	Left                 *Expr               `protobuf:"bytes,2,opt,name=left,proto3" json:"left,omitempty"`
	Right                *Expr               `protobuf:"bytes,3,opt,name=right,proto3" json:"right,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *BinaryExpr) Reset()         { *m = BinaryExpr{} }
func (m *BinaryExpr) String() string { return proto.CompactTextString(m) }
func (*BinaryExpr) ProtoMessage()    {}
func (*BinaryExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{10}
}

func (m *BinaryExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryExpr.Unmarshal(m, b)
}
func (m *BinaryExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryExpr.Marshal(b, m, deterministic)
}
func (m *BinaryExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryExpr.Merge(m, src)
}
func (m *BinaryExpr) XXX_Size() int {
	return xxx_messageInfo_BinaryExpr.Size(m)
}
func (m *BinaryExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryExpr.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryExpr proto.InternalMessageInfo

func (m *BinaryExpr) GetOp() BinaryExpr_BinaryOp {
	if m != nil {
		return m.Op
	}
	return BinaryExpr_Invalid
}

func (m *BinaryExpr) GetLeft() *Expr {
	if m != nil {
		return m.Left
	}
	return nil
}

func (m *BinaryExpr) GetRight() *Expr {
	if m != nil {
		return m.Right
	}
	return nil
}

type BinaryArithOp struct {
	ColumnInfo           *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	ArithOp              ArithOpType   `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"`
	RightOperand         *GenericValue `protobuf:"bytes,3,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *BinaryArithOp) Reset()         { *m = BinaryArithOp{} }
func (m *BinaryArithOp) String() string { return proto.CompactTextString(m) }
func (*BinaryArithOp) ProtoMessage()    {}
func (*BinaryArithOp) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{11}
}

func (m *BinaryArithOp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryArithOp.Unmarshal(m, b)
}
func (m *BinaryArithOp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryArithOp.Marshal(b, m, deterministic)
}
func (m *BinaryArithOp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryArithOp.Merge(m, src)
}
func (m *BinaryArithOp) XXX_Size() int {
	return xxx_messageInfo_BinaryArithOp.Size(m)
}
func (m *BinaryArithOp) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryArithOp.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryArithOp proto.InternalMessageInfo

func (m *BinaryArithOp) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *BinaryArithOp) GetArithOp() ArithOpType {
	if m != nil {
		return m.ArithOp
	}
	return ArithOpType_Unknown
}

func (m *BinaryArithOp) GetRightOperand() *GenericValue {
	if m != nil {
		return m.RightOperand
	}
	return nil
}

type BinaryArithExpr struct {
	Left                 *Expr       `protobuf:"bytes,1,opt,name=left,proto3" json:"left,omitempty"`
	Right                *Expr       `protobuf:"bytes,2,opt,name=right,proto3" json:"right,omitempty"`
	Op                   ArithOpType `protobuf:"varint,3,opt,name=op,proto3,enum=milvus.proto.plan.ArithOpType" json:"op,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *BinaryArithExpr) Reset()         { *m = BinaryArithExpr{} }
func (m *BinaryArithExpr) String() string { return proto.CompactTextString(m) }
func (*BinaryArithExpr) ProtoMessage()    {}
func (*BinaryArithExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{12}
}

func (m *BinaryArithExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryArithExpr.Unmarshal(m, b)
}
func (m *BinaryArithExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryArithExpr.Marshal(b, m, deterministic)
}
func (m *BinaryArithExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryArithExpr.Merge(m, src)
}
func (m *BinaryArithExpr) XXX_Size() int {
	return xxx_messageInfo_BinaryArithExpr.Size(m)
}
func (m *BinaryArithExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryArithExpr.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryArithExpr proto.InternalMessageInfo

func (m *BinaryArithExpr) GetLeft() *Expr {
	if m != nil {
		return m.Left
	}
	return nil
}

func (m *BinaryArithExpr) GetRight() *Expr {
	if m != nil {
		return m.Right
	}
	return nil
}

func (m *BinaryArithExpr) GetOp() ArithOpType {
	if m != nil {
		return m.Op
	}
	return ArithOpType_Unknown
}

type BinaryArithOpEvalRangeExpr struct {
	ColumnInfo           *ColumnInfo   `protobuf:"bytes,1,opt,name=column_info,json=columnInfo,proto3" json:"column_info,omitempty"`
	ArithOp              ArithOpType   `protobuf:"varint,2,opt,name=arith_op,json=arithOp,proto3,enum=milvus.proto.plan.ArithOpType" json:"arith_op,omitempty"`
	RightOperand         *GenericValue `protobuf:"bytes,3,opt,name=right_operand,json=rightOperand,proto3" json:"right_operand,omitempty"`
	Op                   OpType        `protobuf:"varint,4,opt,name=op,proto3,enum=milvus.proto.plan.OpType" json:"op,omitempty"`
	Value                *GenericValue `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *BinaryArithOpEvalRangeExpr) Reset()         { *m = BinaryArithOpEvalRangeExpr{} }
func (m *BinaryArithOpEvalRangeExpr) String() string { return proto.CompactTextString(m) }
func (*BinaryArithOpEvalRangeExpr) ProtoMessage()    {}
func (*BinaryArithOpEvalRangeExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{13}
}

func (m *BinaryArithOpEvalRangeExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BinaryArithOpEvalRangeExpr.Unmarshal(m, b)
}
func (m *BinaryArithOpEvalRangeExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BinaryArithOpEvalRangeExpr.Marshal(b, m, deterministic)
}
func (m *BinaryArithOpEvalRangeExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BinaryArithOpEvalRangeExpr.Merge(m, src)
}
func (m *BinaryArithOpEvalRangeExpr) XXX_Size() int {
	return xxx_messageInfo_BinaryArithOpEvalRangeExpr.Size(m)
}
func (m *BinaryArithOpEvalRangeExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_BinaryArithOpEvalRangeExpr.DiscardUnknown(m)
}

var xxx_messageInfo_BinaryArithOpEvalRangeExpr proto.InternalMessageInfo

func (m *BinaryArithOpEvalRangeExpr) GetColumnInfo() *ColumnInfo {
	if m != nil {
		return m.ColumnInfo
	}
	return nil
}

func (m *BinaryArithOpEvalRangeExpr) GetArithOp() ArithOpType {
	if m != nil {
		return m.ArithOp
	}
	return ArithOpType_Unknown
}

func (m *BinaryArithOpEvalRangeExpr) GetRightOperand() *GenericValue {
	if m != nil {
		return m.RightOperand
	}
	return nil
}

func (m *BinaryArithOpEvalRangeExpr) GetOp() OpType {
	if m != nil {
		return m.Op
	}
	return OpType_Invalid
}

func (m *BinaryArithOpEvalRangeExpr) GetValue() *GenericValue {
	if m != nil {
		return m.Value
	}
	return nil
}

type UdfParams struct {
	// Types that are valid to be assigned to Val:
	//	*UdfParams_Value
	//	*UdfParams_ColumnInfo
	Val                  isUdfParams_Val `protobuf_oneof:"val"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *UdfParams) Reset()         { *m = UdfParams{} }
func (m *UdfParams) String() string { return proto.CompactTextString(m) }
func (*UdfParams) ProtoMessage()    {}
func (*UdfParams) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{14}
}

func (m *UdfParams) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UdfParams.Unmarshal(m, b)
}
func (m *UdfParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UdfParams.Marshal(b, m, deterministic)
}
func (m *UdfParams) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UdfParams.Merge(m, src)
}
func (m *UdfParams) XXX_Size() int {
	return xxx_messageInfo_UdfParams.Size(m)
}
func (m *UdfParams) XXX_DiscardUnknown() {
	xxx_messageInfo_UdfParams.DiscardUnknown(m)
}

var xxx_messageInfo_UdfParams proto.InternalMessageInfo

type isUdfParams_Val interface {
	isUdfParams_Val()
}

type UdfParams_Value struct {
	Value *GenericValue `protobuf:"bytes,1,opt,name=value,proto3,oneof"`
}

type UdfParams_ColumnInfo struct {
	ColumnInfo *ColumnInfo `protobuf:"bytes,2,opt,name=column_info,json=columnInfo,proto3,oneof"`
}

func (*UdfParams_Value) isUdfParams_Val() {}

func (*UdfParams_ColumnInfo) isUdfParams_Val() {}

func (m *UdfParams) GetVal() isUdfParams_Val {
	if m != nil {
		return m.Val
	}
	return nil
}

func (m *UdfParams) GetValue() *GenericValue {
	if x, ok := m.GetVal().(*UdfParams_Value); ok {
		return x.Value
	}
	return nil
}

func (m *UdfParams) GetColumnInfo() *ColumnInfo {
	if x, ok := m.GetVal().(*UdfParams_ColumnInfo); ok {
		return x.ColumnInfo
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*UdfParams) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*UdfParams_Value)(nil),
		(*UdfParams_ColumnInfo)(nil),
	}
}

type UdfExpr struct {
	UdfFuncName          string              `protobuf:"bytes,1,opt,name=udf_func_name,json=udfFuncName,proto3" json:"udf_func_name,omitempty"`
	UdfParams            []*UdfParams        `protobuf:"bytes,2,rep,name=udf_params,json=udfParams,proto3" json:"udf_params,omitempty"`
	WasmBody             string              `protobuf:"bytes,3,opt,name=wasm_body,json=wasmBody,proto3" json:"wasm_body,omitempty"`
	ArgTypes             []schemapb.DataType `protobuf:"varint,4,rep,packed,name=arg_types,json=argTypes,proto3,enum=milvus.proto.schema.DataType" json:"arg_types,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *UdfExpr) Reset()         { *m = UdfExpr{} }
func (m *UdfExpr) String() string { return proto.CompactTextString(m) }
func (*UdfExpr) ProtoMessage()    {}
func (*UdfExpr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{15}
}

func (m *UdfExpr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UdfExpr.Unmarshal(m, b)
}
func (m *UdfExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UdfExpr.Marshal(b, m, deterministic)
}
func (m *UdfExpr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UdfExpr.Merge(m, src)
}
func (m *UdfExpr) XXX_Size() int {
	return xxx_messageInfo_UdfExpr.Size(m)
}
func (m *UdfExpr) XXX_DiscardUnknown() {
	xxx_messageInfo_UdfExpr.DiscardUnknown(m)
}

var xxx_messageInfo_UdfExpr proto.InternalMessageInfo

func (m *UdfExpr) GetUdfFuncName() string {
	if m != nil {
		return m.UdfFuncName
	}
	return ""
}

func (m *UdfExpr) GetUdfParams() []*UdfParams {
	if m != nil {
		return m.UdfParams
	}
	return nil
}

func (m *UdfExpr) GetWasmBody() string {
	if m != nil {
		return m.WasmBody
	}
	return ""
}

func (m *UdfExpr) GetArgTypes() []schemapb.DataType {
	if m != nil {
		return m.ArgTypes
	}
	return nil
}

type Expr struct {
	// Types that are valid to be assigned to Expr:
	//	*Expr_TermExpr
	//	*Expr_UnaryExpr
	//	*Expr_BinaryExpr
	//	*Expr_CompareExpr
	//	*Expr_UnaryRangeExpr
	//	*Expr_BinaryRangeExpr
	//	*Expr_BinaryArithOpEvalRangeExpr
	//	*Expr_BinaryArithExpr
	//	*Expr_ValueExpr
	//	*Expr_ColumnExpr
	//	*Expr_UdfExpr
	Expr                 isExpr_Expr `protobuf_oneof:"expr"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *Expr) Reset()         { *m = Expr{} }
func (m *Expr) String() string { return proto.CompactTextString(m) }
func (*Expr) ProtoMessage()    {}
func (*Expr) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{16}
}

func (m *Expr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Expr.Unmarshal(m, b)
}
func (m *Expr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Expr.Marshal(b, m, deterministic)
}
func (m *Expr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Expr.Merge(m, src)
}
func (m *Expr) XXX_Size() int {
	return xxx_messageInfo_Expr.Size(m)
}
func (m *Expr) XXX_DiscardUnknown() {
	xxx_messageInfo_Expr.DiscardUnknown(m)
}

var xxx_messageInfo_Expr proto.InternalMessageInfo

type isExpr_Expr interface {
	isExpr_Expr()
}

type Expr_TermExpr struct {
	TermExpr *TermExpr `protobuf:"bytes,1,opt,name=term_expr,json=termExpr,proto3,oneof"`
}

type Expr_UnaryExpr struct {
	UnaryExpr *UnaryExpr `protobuf:"bytes,2,opt,name=unary_expr,json=unaryExpr,proto3,oneof"`
}

type Expr_BinaryExpr struct {
	BinaryExpr *BinaryExpr `protobuf:"bytes,3,opt,name=binary_expr,json=binaryExpr,proto3,oneof"`
}

type Expr_CompareExpr struct {
	CompareExpr *CompareExpr `protobuf:"bytes,4,opt,name=compare_expr,json=compareExpr,proto3,oneof"`
}

type Expr_UnaryRangeExpr struct {
	UnaryRangeExpr *UnaryRangeExpr `protobuf:"bytes,5,opt,name=unary_range_expr,json=unaryRangeExpr,proto3,oneof"`
}

type Expr_BinaryRangeExpr struct {
	BinaryRangeExpr *BinaryRangeExpr `protobuf:"bytes,6,opt,name=binary_range_expr,json=binaryRangeExpr,proto3,oneof"`
}

type Expr_BinaryArithOpEvalRangeExpr struct {
	BinaryArithOpEvalRangeExpr *BinaryArithOpEvalRangeExpr `protobuf:"bytes,7,opt,name=binary_arith_op_eval_range_expr,json=binaryArithOpEvalRangeExpr,proto3,oneof"`
}

type Expr_BinaryArithExpr struct {
	BinaryArithExpr *BinaryArithExpr `protobuf:"bytes,8,opt,name=binary_arith_expr,json=binaryArithExpr,proto3,oneof"`
}

type Expr_ValueExpr struct {
	ValueExpr *ValueExpr `protobuf:"bytes,9,opt,name=value_expr,json=valueExpr,proto3,oneof"`
}

type Expr_ColumnExpr struct {
	ColumnExpr *ColumnExpr `protobuf:"bytes,10,opt,name=column_expr,json=columnExpr,proto3,oneof"`
}

type Expr_UdfExpr struct {
	UdfExpr *UdfExpr `protobuf:"bytes,11,opt,name=udf_expr,json=udfExpr,proto3,oneof"`
}

func (*Expr_TermExpr) isExpr_Expr() {}

func (*Expr_UnaryExpr) isExpr_Expr() {}

func (*Expr_BinaryExpr) isExpr_Expr() {}

func (*Expr_CompareExpr) isExpr_Expr() {}

func (*Expr_UnaryRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryArithOpEvalRangeExpr) isExpr_Expr() {}

func (*Expr_BinaryArithExpr) isExpr_Expr() {}

func (*Expr_ValueExpr) isExpr_Expr() {}

func (*Expr_ColumnExpr) isExpr_Expr() {}

func (*Expr_UdfExpr) isExpr_Expr() {}

func (m *Expr) GetExpr() isExpr_Expr {
	if m != nil {
		return m.Expr
	}
	return nil
}

func (m *Expr) GetTermExpr() *TermExpr {
	if x, ok := m.GetExpr().(*Expr_TermExpr); ok {
		return x.TermExpr
	}
	return nil
}

func (m *Expr) GetUnaryExpr() *UnaryExpr {
	if x, ok := m.GetExpr().(*Expr_UnaryExpr); ok {
		return x.UnaryExpr
	}
	return nil
}

func (m *Expr) GetBinaryExpr() *BinaryExpr {
	if x, ok := m.GetExpr().(*Expr_BinaryExpr); ok {
		return x.BinaryExpr
	}
	return nil
}

func (m *Expr) GetCompareExpr() *CompareExpr {
	if x, ok := m.GetExpr().(*Expr_CompareExpr); ok {
		return x.CompareExpr
	}
	return nil
}

func (m *Expr) GetUnaryRangeExpr() *UnaryRangeExpr {
	if x, ok := m.GetExpr().(*Expr_UnaryRangeExpr); ok {
		return x.UnaryRangeExpr
	}
	return nil
}

func (m *Expr) GetBinaryRangeExpr() *BinaryRangeExpr {
	if x, ok := m.GetExpr().(*Expr_BinaryRangeExpr); ok {
		return x.BinaryRangeExpr
	}
	return nil
}

func (m *Expr) GetBinaryArithOpEvalRangeExpr() *BinaryArithOpEvalRangeExpr {
	if x, ok := m.GetExpr().(*Expr_BinaryArithOpEvalRangeExpr); ok {
		return x.BinaryArithOpEvalRangeExpr
	}
	return nil
}

func (m *Expr) GetBinaryArithExpr() *BinaryArithExpr {
	if x, ok := m.GetExpr().(*Expr_BinaryArithExpr); ok {
		return x.BinaryArithExpr
	}
	return nil
}

func (m *Expr) GetValueExpr() *ValueExpr {
	if x, ok := m.GetExpr().(*Expr_ValueExpr); ok {
		return x.ValueExpr
	}
	return nil
}

func (m *Expr) GetColumnExpr() *ColumnExpr {
	if x, ok := m.GetExpr().(*Expr_ColumnExpr); ok {
		return x.ColumnExpr
	}
	return nil
}

func (m *Expr) GetUdfExpr() *UdfExpr {
	if x, ok := m.GetExpr().(*Expr_UdfExpr); ok {
		return x.UdfExpr
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Expr) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Expr_TermExpr)(nil),
		(*Expr_UnaryExpr)(nil),
		(*Expr_BinaryExpr)(nil),
		(*Expr_CompareExpr)(nil),
		(*Expr_UnaryRangeExpr)(nil),
		(*Expr_BinaryRangeExpr)(nil),
		(*Expr_BinaryArithOpEvalRangeExpr)(nil),
		(*Expr_BinaryArithExpr)(nil),
		(*Expr_ValueExpr)(nil),
		(*Expr_ColumnExpr)(nil),
		(*Expr_UdfExpr)(nil),
	}
}

type VectorANNS struct {
	IsBinary             bool       `protobuf:"varint,1,opt,name=is_binary,json=isBinary,proto3" json:"is_binary,omitempty"`
	FieldId              int64      `protobuf:"varint,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	Predicates           *Expr      `protobuf:"bytes,3,opt,name=predicates,proto3" json:"predicates,omitempty"`
	QueryInfo            *QueryInfo `protobuf:"bytes,4,opt,name=query_info,json=queryInfo,proto3" json:"query_info,omitempty"`
	PlaceholderTag       string     `protobuf:"bytes,5,opt,name=placeholder_tag,json=placeholderTag,proto3" json:"placeholder_tag,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *VectorANNS) Reset()         { *m = VectorANNS{} }
func (m *VectorANNS) String() string { return proto.CompactTextString(m) }
func (*VectorANNS) ProtoMessage()    {}
func (*VectorANNS) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{17}
}

func (m *VectorANNS) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VectorANNS.Unmarshal(m, b)
}
func (m *VectorANNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VectorANNS.Marshal(b, m, deterministic)
}
func (m *VectorANNS) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VectorANNS.Merge(m, src)
}
func (m *VectorANNS) XXX_Size() int {
	return xxx_messageInfo_VectorANNS.Size(m)
}
func (m *VectorANNS) XXX_DiscardUnknown() {
	xxx_messageInfo_VectorANNS.DiscardUnknown(m)
}

var xxx_messageInfo_VectorANNS proto.InternalMessageInfo

func (m *VectorANNS) GetIsBinary() bool {
	if m != nil {
		return m.IsBinary
	}
	return false
}

func (m *VectorANNS) GetFieldId() int64 {
	if m != nil {
		return m.FieldId
	}
	return 0
}

func (m *VectorANNS) GetPredicates() *Expr {
	if m != nil {
		return m.Predicates
	}
	return nil
}

func (m *VectorANNS) GetQueryInfo() *QueryInfo {
	if m != nil {
		return m.QueryInfo
	}
	return nil
}

func (m *VectorANNS) GetPlaceholderTag() string {
	if m != nil {
		return m.PlaceholderTag
	}
	return ""
}

type PlanNode struct {
	// Types that are valid to be assigned to Node:
	//	*PlanNode_VectorAnns
	//	*PlanNode_Predicates
	Node                 isPlanNode_Node `protobuf_oneof:"node"`
	OutputFieldIds       []int64         `protobuf:"varint,3,rep,packed,name=output_field_ids,json=outputFieldIds,proto3" json:"output_field_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PlanNode) Reset()         { *m = PlanNode{} }
func (m *PlanNode) String() string { return proto.CompactTextString(m) }
func (*PlanNode) ProtoMessage()    {}
func (*PlanNode) Descriptor() ([]byte, []int) {
	return fileDescriptor_2d655ab2f7683c23, []int{18}
}

func (m *PlanNode) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PlanNode.Unmarshal(m, b)
}
func (m *PlanNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PlanNode.Marshal(b, m, deterministic)
}
func (m *PlanNode) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PlanNode.Merge(m, src)
}
func (m *PlanNode) XXX_Size() int {
	return xxx_messageInfo_PlanNode.Size(m)
}
func (m *PlanNode) XXX_DiscardUnknown() {
	xxx_messageInfo_PlanNode.DiscardUnknown(m)
}

var xxx_messageInfo_PlanNode proto.InternalMessageInfo

type isPlanNode_Node interface {
	isPlanNode_Node()
}

type PlanNode_VectorAnns struct {
	VectorAnns *VectorANNS `protobuf:"bytes,1,opt,name=vector_anns,json=vectorAnns,proto3,oneof"`
}

type PlanNode_Predicates struct {
	Predicates *Expr `protobuf:"bytes,2,opt,name=predicates,proto3,oneof"`
}

func (*PlanNode_VectorAnns) isPlanNode_Node() {}

func (*PlanNode_Predicates) isPlanNode_Node() {}

func (m *PlanNode) GetNode() isPlanNode_Node {
	if m != nil {
		return m.Node
	}
	return nil
}

func (m *PlanNode) GetVectorAnns() *VectorANNS {
	if x, ok := m.GetNode().(*PlanNode_VectorAnns); ok {
		return x.VectorAnns
	}
	return nil
}

func (m *PlanNode) GetPredicates() *Expr {
	if x, ok := m.GetNode().(*PlanNode_Predicates); ok {
		return x.Predicates
	}
	return nil
}

func (m *PlanNode) GetOutputFieldIds() []int64 {
	if m != nil {
		return m.OutputFieldIds
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PlanNode) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PlanNode_VectorAnns)(nil),
		(*PlanNode_Predicates)(nil),
	}
}

func init() {
	proto.RegisterEnum("milvus.proto.plan.OpType", OpType_name, OpType_value)
	proto.RegisterEnum("milvus.proto.plan.ArithOpType", ArithOpType_name, ArithOpType_value)
	proto.RegisterEnum("milvus.proto.plan.UnaryExpr_UnaryOp", UnaryExpr_UnaryOp_name, UnaryExpr_UnaryOp_value)
	proto.RegisterEnum("milvus.proto.plan.BinaryExpr_BinaryOp", BinaryExpr_BinaryOp_name, BinaryExpr_BinaryOp_value)
	proto.RegisterType((*GenericValue)(nil), "milvus.proto.plan.GenericValue")
	proto.RegisterType((*QueryInfo)(nil), "milvus.proto.plan.QueryInfo")
	proto.RegisterType((*ColumnInfo)(nil), "milvus.proto.plan.ColumnInfo")
	proto.RegisterType((*ColumnExpr)(nil), "milvus.proto.plan.ColumnExpr")
	proto.RegisterType((*ValueExpr)(nil), "milvus.proto.plan.ValueExpr")
	proto.RegisterType((*UnaryRangeExpr)(nil), "milvus.proto.plan.UnaryRangeExpr")
	proto.RegisterType((*BinaryRangeExpr)(nil), "milvus.proto.plan.BinaryRangeExpr")
	proto.RegisterType((*CompareExpr)(nil), "milvus.proto.plan.CompareExpr")
	proto.RegisterType((*TermExpr)(nil), "milvus.proto.plan.TermExpr")
	proto.RegisterType((*UnaryExpr)(nil), "milvus.proto.plan.UnaryExpr")
	proto.RegisterType((*BinaryExpr)(nil), "milvus.proto.plan.BinaryExpr")
	proto.RegisterType((*BinaryArithOp)(nil), "milvus.proto.plan.BinaryArithOp")
	proto.RegisterType((*BinaryArithExpr)(nil), "milvus.proto.plan.BinaryArithExpr")
	proto.RegisterType((*BinaryArithOpEvalRangeExpr)(nil), "milvus.proto.plan.BinaryArithOpEvalRangeExpr")
	proto.RegisterType((*UdfParams)(nil), "milvus.proto.plan.UdfParams")
	proto.RegisterType((*UdfExpr)(nil), "milvus.proto.plan.UdfExpr")
	proto.RegisterType((*Expr)(nil), "milvus.proto.plan.Expr")
	proto.RegisterType((*VectorANNS)(nil), "milvus.proto.plan.VectorANNS")
	proto.RegisterType((*PlanNode)(nil), "milvus.proto.plan.PlanNode")
}

func init() { proto.RegisterFile("plan.proto", fileDescriptor_2d655ab2f7683c23) }

var fileDescriptor_2d655ab2f7683c23 = []byte{
	// 1538 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x73, 0xdb, 0x44,
	0x14, 0xb7, 0xfc, 0x29, 0x3d, 0x3b, 0x8e, 0xaa, 0x0b, 0x6d, 0xd2, 0x36, 0x41, 0x74, 0x68, 0x28,
	0xd3, 0x64, 0x4a, 0x4b, 0x33, 0x2d, 0x53, 0x68, 0x3e, 0xda, 0xd8, 0x43, 0x9b, 0x04, 0x35, 0xcd,
	0x81, 0x8b, 0x66, 0x2d, 0xad, 0x6d, 0x4d, 0xe5, 0x5d, 0x75, 0x25, 0xb9, 0xf5, 0x99, 0x1b, 0x33,
	0x1c, 0xf8, 0x03, 0xb8, 0xc2, 0x1d, 0x4e, 0x70, 0xe1, 0xc0, 0x95, 0x03, 0x47, 0xee, 0xfc, 0x23,
	0xcc, 0xbe, 0x95, 0xbf, 0x3a, 0x76, 0xe3, 0x0c, 0x9d, 0xe1, 0xb6, 0xfb, 0xf6, 0xbd, 0xb7, 0xef,
	0xfd, 0xf6, 0x7d, 0x2d, 0x40, 0x14, 0x12, 0xb6, 0x19, 0x09, 0x9e, 0x70, 0xeb, 0x42, 0x2f, 0x08,
	0xfb, 0x69, 0xac, 0x76, 0x9b, 0xf2, 0x60, 0xa5, 0x16, 0x7b, 0x5d, 0xda, 0x23, 0x8a, 0x64, 0x7f,
	0xaf, 0x41, 0xed, 0x80, 0x32, 0x2a, 0x02, 0xef, 0x94, 0x84, 0x29, 0xb5, 0x56, 0x41, 0x6f, 0x71,
	0x1e, 0xba, 0x7d, 0x12, 0x5e, 0xd4, 0xd6, 0xb5, 0x0d, 0xbd, 0x91, 0x73, 0x2a, 0x92, 0x72, 0x4a,
	0x42, 0xeb, 0x0a, 0x18, 0x01, 0x4b, 0xee, 0xde, 0xc1, 0xd3, 0xfc, 0xba, 0xb6, 0x51, 0x68, 0xe4,
	0x1c, 0x1d, 0x49, 0xd9, 0x71, 0x3b, 0xe4, 0x24, 0xc1, 0xe3, 0xc2, 0xba, 0xb6, 0xa1, 0xc9, 0x63,
	0x24, 0xc9, 0xe3, 0x35, 0x80, 0x38, 0x11, 0x01, 0xeb, 0xe0, 0x79, 0x71, 0x5d, 0xdb, 0x30, 0x1a,
	0x39, 0xc7, 0x50, 0xb4, 0x53, 0x12, 0xee, 0x96, 0xa0, 0xd0, 0x27, 0xa1, 0xfd, 0xad, 0x06, 0xc6,
	0x57, 0x29, 0x15, 0x83, 0x26, 0x6b, 0x73, 0xcb, 0x82, 0x62, 0xc2, 0xa3, 0x17, 0x68, 0x4c, 0xc1,
	0xc1, 0xb5, 0xb5, 0x06, 0xd5, 0x1e, 0x4d, 0x44, 0xe0, 0xb9, 0xc9, 0x20, 0xa2, 0x78, 0x95, 0xe1,
	0x80, 0x22, 0x9d, 0x0c, 0x22, 0x6a, 0x7d, 0x00, 0x4b, 0x31, 0x25, 0xc2, 0xeb, 0xba, 0x11, 0x11,
	0xa4, 0x17, 0xab, 0xdb, 0x9c, 0x9a, 0x22, 0x1e, 0x23, 0x4d, 0x32, 0x09, 0x9e, 0x32, 0xdf, 0xf5,
	0xa9, 0x17, 0xf4, 0x48, 0x78, 0xb1, 0x84, 0x57, 0xd4, 0x90, 0xb8, 0xaf, 0x68, 0xf6, 0x8f, 0x1a,
	0xc0, 0x1e, 0x0f, 0xd3, 0x1e, 0x43, 0x6b, 0x2e, 0x81, 0xde, 0x0e, 0x68, 0xe8, 0xbb, 0x81, 0x9f,
	0x59, 0x54, 0xc1, 0x7d, 0xd3, 0xb7, 0xee, 0x83, 0xe1, 0x93, 0x84, 0x28, 0x93, 0x24, 0x38, 0xf5,
	0x4f, 0xae, 0x6c, 0x4e, 0xe1, 0x9f, 0x21, 0xbf, 0x4f, 0x12, 0x22, 0xad, 0x74, 0x74, 0x3f, 0x5b,
	0x59, 0xd7, 0xa0, 0x1e, 0xc4, 0x6e, 0x24, 0x82, 0x1e, 0x11, 0x03, 0xf7, 0x05, 0x1d, 0xa0, 0x4f,
	0xba, 0x53, 0x0b, 0xe2, 0x63, 0x45, 0xfc, 0x92, 0x0e, 0xac, 0x55, 0x30, 0x82, 0xd8, 0x25, 0x69,
	0xc2, 0x9b, 0xfb, 0xe8, 0x91, 0xee, 0xe8, 0x41, 0xbc, 0x83, 0x7b, 0xfb, 0x8b, 0xa1, 0x9d, 0x8f,
	0x5e, 0x47, 0xc2, 0xba, 0x05, 0xc5, 0x80, 0xb5, 0x39, 0xda, 0x58, 0x7d, 0xd3, 0x0e, 0x0c, 0x90,
	0xb1, 0x53, 0x0e, 0xb2, 0xda, 0xbb, 0x60, 0x60, 0x08, 0xa0, 0xfc, 0xa7, 0x50, 0xea, 0xcb, 0x4d,
	0xa6, 0x60, 0x6d, 0x86, 0x82, 0xc9, 0xb0, 0x71, 0x14, 0xb7, 0xfd, 0xb3, 0x06, 0xf5, 0xe7, 0x8c,
	0x88, 0x81, 0x43, 0x58, 0x47, 0x69, 0xfa, 0x1c, 0xaa, 0x1e, 0x5e, 0xe5, 0x2e, 0x6e, 0x10, 0x78,
	0x63, 0xc4, 0x3f, 0x82, 0x3c, 0x8f, 0x32, 0x3c, 0x2f, 0xcd, 0x10, 0x3b, 0x8a, 0x10, 0xcb, 0x3c,
	0x8f, 0xc6, 0x46, 0x17, 0xce, 0x65, 0xf4, 0x4f, 0x79, 0x58, 0xde, 0x0d, 0xde, 0xad, 0xd5, 0xd7,
	0x61, 0x39, 0xe4, 0xaf, 0xa8, 0x70, 0x03, 0xe6, 0x85, 0x69, 0x1c, 0xf4, 0x55, 0x48, 0xe8, 0x4e,
	0x1d, 0xc9, 0xcd, 0x21, 0x55, 0x32, 0xa6, 0x51, 0x34, 0xc5, 0xa8, 0x9e, 0xbe, 0x8e, 0xe4, 0x31,
	0xe3, 0x43, 0xa8, 0x2a, 0x8d, 0xca, 0xc5, 0xe2, 0x62, 0x2e, 0x02, 0xca, 0xa8, 0xd4, 0x7e, 0x08,
	0x55, 0x75, 0x95, 0xd2, 0x50, 0x5a, 0x50, 0x03, 0xca, 0xe0, 0xda, 0xfe, 0x53, 0x83, 0xea, 0x1e,
	0xef, 0x45, 0x44, 0x28, 0x94, 0x0e, 0xc0, 0x0c, 0x69, 0x3b, 0x71, 0xcf, 0x0d, 0x55, 0x5d, 0x8a,
	0x4d, 0xa4, 0x55, 0x13, 0x2e, 0x88, 0xa0, 0xd3, 0x9d, 0xd6, 0x94, 0x5f, 0x44, 0xd3, 0x32, 0xca,
	0xed, 0xbd, 0x19, 0x2f, 0x85, 0x05, 0xe2, 0xc5, 0xfe, 0x46, 0x03, 0xfd, 0x84, 0x8a, 0xde, 0x3b,
	0x79, 0xf1, 0x6d, 0x28, 0x23, 0xae, 0xf1, 0xc5, 0xfc, 0x7a, 0x61, 0x11, 0x60, 0x33, 0x76, 0x59,
	0x82, 0x0d, 0xcc, 0x19, 0x34, 0xe3, 0x0e, 0x9a, 0xaf, 0xa1, 0xf9, 0xd7, 0x66, 0xa8, 0x18, 0x71,
	0xaa, 0xd5, 0x51, 0x84, 0x91, 0x7f, 0x13, 0x4a, 0x5e, 0x37, 0x08, 0xfd, 0x0c, 0xb3, 0xf7, 0x66,
	0x08, 0x4a, 0x19, 0x47, 0x71, 0xd9, 0x6b, 0x50, 0xc9, 0xa4, 0xad, 0x2a, 0x54, 0x9a, 0xac, 0x4f,
	0xc2, 0xc0, 0x37, 0x73, 0x56, 0x05, 0x0a, 0x87, 0x3c, 0x31, 0x35, 0xfb, 0x6f, 0x0d, 0x40, 0xa5,
	0x04, 0x1a, 0x75, 0x77, 0xc2, 0xa8, 0x0f, 0x67, 0xe8, 0x1e, 0xb3, 0x66, 0xcb, 0xcc, 0xac, 0x8f,
	0xa1, 0x28, 0x1f, 0xfa, 0x2c, 0xab, 0x90, 0x49, 0xfa, 0x80, 0x6f, 0x99, 0x65, 0xef, 0x7c, 0x1f,
	0x90, 0xcb, 0xbe, 0x0b, 0xfa, 0xf0, 0xae, 0x69, 0x27, 0xea, 0x00, 0x4f, 0x78, 0x27, 0xf0, 0x48,
	0xb8, 0xc3, 0x7c, 0x53, 0xb3, 0x96, 0xc0, 0xc8, 0xf6, 0x47, 0xc2, 0xcc, 0xdb, 0x7f, 0x69, 0xb0,
	0xa4, 0x04, 0x77, 0x44, 0x90, 0x74, 0x8f, 0xa2, 0xff, 0xfc, 0xf2, 0xf7, 0x40, 0x27, 0x52, 0x95,
	0x3b, 0xaa, 0x53, 0x57, 0x67, 0x08, 0x67, 0xb7, 0x61, 0xf0, 0x55, 0x48, 0x76, 0xf5, 0x3e, 0x2c,
	0xa9, 0xb8, 0xe7, 0x11, 0x15, 0x84, 0xf9, 0x8b, 0x56, 0xae, 0x1a, 0x4a, 0x1d, 0x29, 0x21, 0xfb,
	0x07, 0x6d, 0x58, 0xc0, 0xf0, 0x12, 0x7c, 0xb2, 0x21, 0xf4, 0xda, 0xb9, 0xa0, 0xcf, 0x2f, 0x02,
	0xbd, 0xb5, 0x39, 0x91, 0x62, 0x67, 0xb9, 0x2a, 0xf3, 0xec, 0xf7, 0x3c, 0xac, 0x4c, 0x41, 0xfe,
	0xa8, 0x4f, 0xc2, 0x77, 0x57, 0x6b, 0xff, 0x6f, 0xfc, 0xb3, 0x92, 0x53, 0x3c, 0x57, 0x8b, 0x2a,
	0x9d, 0xab, 0x45, 0x7d, 0x27, 0x6b, 0x84, 0xdf, 0xce, 0x06, 0x97, 0xed, 0xf3, 0x35, 0xe7, 0x46,
	0x2e, 0x53, 0x23, 0x3b, 0xc0, 0x79, 0x0b, 0x6c, 0x23, 0x37, 0x89, 0xf5, 0x70, 0x44, 0xfb, 0x43,
	0x83, 0xca, 0x73, 0xbf, 0x8d, 0xcf, 0x67, 0xc3, 0x52, 0xea, 0xb7, 0xdd, 0x76, 0xca, 0x3c, 0x97,
	0x91, 0x9e, 0xb2, 0xca, 0x70, 0xaa, 0xa9, 0xdf, 0x7e, 0x9c, 0x32, 0xef, 0x90, 0xf4, 0xa8, 0xf5,
	0x19, 0x80, 0xe4, 0xc9, 0x86, 0x31, 0x55, 0x20, 0x2f, 0xcf, 0xaa, 0x6e, 0x43, 0x1f, 0x1d, 0x23,
	0x1d, 0xb9, 0xbb, 0x0a, 0xc6, 0x2b, 0x12, 0xf7, 0xdc, 0x16, 0xf7, 0x07, 0xd9, 0xac, 0xa7, 0x4b,
	0xc2, 0x2e, 0xf7, 0x07, 0x72, 0xea, 0x22, 0xa2, 0x83, 0x43, 0x97, 0x9c, 0xf2, 0x0a, 0x0b, 0x4c,
	0x5d, 0x44, 0x74, 0xe4, 0x22, 0xb6, 0x7f, 0x29, 0x43, 0x11, 0x5d, 0xb8, 0x0f, 0x46, 0x42, 0x45,
	0xcf, 0xa5, 0xaf, 0x23, 0x91, 0x81, 0xba, 0x3a, 0xc3, 0xba, 0x61, 0xaf, 0x90, 0x53, 0x6d, 0x32,
	0xec, 0x1b, 0x0f, 0x00, 0x52, 0x19, 0xda, 0x4a, 0x58, 0x41, 0x7a, 0xf9, 0x6d, 0x85, 0x5b, 0xce,
	0xbc, 0xe9, 0xa8, 0xb4, 0x3e, 0x84, 0x6a, 0x2b, 0x18, 0xcb, 0x17, 0xe6, 0x3e, 0xc9, 0xb8, 0xc6,
	0xca, 0x27, 0x69, 0x8d, 0x8b, 0xf3, 0x1e, 0xd4, 0x3c, 0xd5, 0x93, 0x95, 0x0a, 0x35, 0x19, 0x5c,
	0x9d, 0xf9, 0xaa, 0xa3, 0xd6, 0xdd, 0xc8, 0x39, 0x55, 0x6f, 0xa2, 0x93, 0x3f, 0x05, 0x53, 0x79,
	0x21, 0x64, 0x5a, 0x2a, 0x45, 0x2a, 0x44, 0xdf, 0x9f, 0xe7, 0xcb, 0x28, 0x81, 0x1b, 0x39, 0xa7,
	0x9e, 0x4e, 0x8f, 0x4f, 0xc7, 0x70, 0x21, 0xf3, 0x6a, 0x42, 0x5f, 0x19, 0xf5, 0xd9, 0x73, 0x7d,
	0x9b, 0x54, 0xb8, 0xdc, 0x7a, 0x63, 0x20, 0x4b, 0x60, 0x2d, 0xd3, 0x38, 0xcc, 0x75, 0x97, 0xf6,
	0x49, 0x38, 0xa9, 0xbf, 0x82, 0xfa, 0x6f, 0xce, 0xd5, 0x3f, 0xab, 0xf8, 0x34, 0x72, 0xce, 0x4a,
	0x6b, 0x7e, 0x69, 0x1a, 0xfb, 0xa1, 0x6e, 0xc5, 0x7b, 0xf4, 0x33, 0xfc, 0x18, 0x15, 0xe1, 0xb1,
	0x1f, 0xe3, 0xba, 0xfc, 0x00, 0x00, 0x73, 0x51, 0xa9, 0x32, 0xe6, 0x86, 0xcb, 0x68, 0x14, 0x97,
	0xe1, 0xd2, 0x1f, 0xcd, 0xe5, 0xe3, 0x0c, 0x46, 0x79, 0x38, 0x23, 0x83, 0x87, 0xe1, 0xe2, 0x8d,
	0x7f, 0x06, 0xdb, 0xa0, 0xcb, 0x54, 0x44, 0xf1, 0x2a, 0x8a, 0xaf, 0xcc, 0x4e, 0xc4, 0x4c, 0xb6,
	0x92, 0xaa, 0xe5, 0x6e, 0x19, 0x8a, 0x52, 0xc8, 0xfe, 0x47, 0x03, 0x38, 0xa5, 0x5e, 0xc2, 0xc5,
	0xce, 0xe1, 0xe1, 0xb3, 0xec, 0x53, 0xa2, 0xdc, 0x54, 0x3f, 0x46, 0xf9, 0x29, 0x51, 0x48, 0x4c,
	0x7d, 0x97, 0xf2, 0xd3, 0xdf, 0xa5, 0x6d, 0x80, 0x48, 0x50, 0x3f, 0xf0, 0x48, 0x42, 0xe3, 0xb3,
	0x7a, 0xfe, 0x04, 0xab, 0xac, 0x25, 0x2f, 0xe5, 0xef, 0x50, 0xd5, 0xb0, 0xe2, 0x5c, 0x04, 0x47,
	0x5f, 0x48, 0xc7, 0x78, 0x39, 0xfa, 0x4d, 0x5e, 0x87, 0xe5, 0x28, 0x24, 0x1e, 0xed, 0xf2, 0xd0,
	0xa7, 0xc2, 0x4d, 0x48, 0x07, 0xc3, 0xdc, 0x70, 0xea, 0x13, 0xe4, 0x13, 0xd2, 0xb1, 0x7f, 0xd5,
	0x40, 0x3f, 0x0e, 0x09, 0x3b, 0xe4, 0x3e, 0xd6, 0xcd, 0x3e, 0x7a, 0xec, 0x12, 0xc6, 0xe2, 0xb7,
	0x74, 0xa8, 0x31, 0x2e, 0x12, 0x75, 0x25, 0xb3, 0xc3, 0x58, 0x6c, 0xdd, 0x9b, 0xf2, 0xf6, 0xed,
	0x6d, 0x56, 0x8a, 0x4e, 0xf8, 0xbb, 0x01, 0x26, 0x4f, 0x93, 0x28, 0x4d, 0xdc, 0x21, 0x94, 0x12,
	0xae, 0xc2, 0x46, 0xc1, 0xa9, 0x2b, 0xfa, 0x63, 0x85, 0x68, 0x2c, 0x5f, 0x88, 0x71, 0x9f, 0xde,
	0xf8, 0x4d, 0x83, 0xb2, 0xea, 0x39, 0xd3, 0x93, 0xd1, 0x32, 0x54, 0x0f, 0x04, 0x25, 0x09, 0x15,
	0x27, 0x5d, 0xc2, 0x4c, 0xcd, 0x32, 0xa1, 0x96, 0x11, 0x1e, 0xbd, 0x4c, 0x49, 0x68, 0xe6, 0xad,
	0x1a, 0xe8, 0x4f, 0x68, 0x1c, 0xe3, 0x79, 0x01, 0x47, 0x27, 0x1a, 0xc7, 0xea, 0xb0, 0x68, 0x19,
	0x50, 0x52, 0xcb, 0x92, 0xe4, 0x3b, 0xe4, 0x89, 0xda, 0x95, 0xa5, 0xe2, 0x63, 0x41, 0xdb, 0xc1,
	0xeb, 0xa7, 0x24, 0xf1, 0xba, 0x66, 0x45, 0x2a, 0x3e, 0xe6, 0x71, 0x32, 0xa2, 0xe8, 0x52, 0x56,
	0x2d, 0x0d, 0xb9, 0xc4, 0x0c, 0x33, 0xc1, 0x2a, 0x43, 0xbe, 0xc9, 0xcc, 0xaa, 0x24, 0x1d, 0xf2,
	0xa4, 0xc9, 0xcc, 0xda, 0x8d, 0x03, 0xa8, 0x4e, 0xb4, 0x6a, 0xe9, 0xc0, 0x73, 0xf6, 0x82, 0xf1,
	0x57, 0x4c, 0xcd, 0xa7, 0x3b, 0xbe, 0x9c, 0xe9, 0x2a, 0x50, 0x78, 0x96, 0xb6, 0xcc, 0xbc, 0x5c,
	0x3c, 0x4d, 0x43, 0xb3, 0x20, 0x17, 0xfb, 0x41, 0xdf, 0x2c, 0x22, 0x85, 0xfb, 0x66, 0x69, 0xf7,
	0xf6, 0xd7, 0xb7, 0x3a, 0x41, 0xd2, 0x4d, 0x5b, 0x9b, 0x1e, 0xef, 0x6d, 0x29, 0xa8, 0x6f, 0x06,
	0x3c, 0x5b, 0x6d, 0x05, 0x2c, 0xa1, 0x82, 0x91, 0x70, 0x0b, 0xd1, 0xdf, 0x92, 0xe8, 0x47, 0xad,
	0x56, 0x19, 0x77, 0xb7, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x70, 0x80, 0xb8, 0x76, 0x45, 0x11,
	0x00, 0x00,
}
