// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        (unknown)
// source: quote/api.proto

package quotev1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// 协议指令定义
type Command int32

const (
	Command_UNKNOWN_COMMAND                Command = 0
	Command_HEART_BEAT                     Command = 1   //心跳
	Command_AUTH                           Command = 2   //鉴权
	Command_RECONNECT                      Command = 3   //重新连接
	Command_Subscription                   Command = 5   //查询连接的已订阅数据
	Command_Subscribe                      Command = 6   //订阅行情数据
	Command_Unsubscribe                    Command = 7   //取消订阅行情数据
	Command_QueryMarketTradePeriod         Command = 8   //查询各市场的当日交易时段
	Command_QueryMarketTradeDay            Command = 9   //查询交易日
	Command_QuerySecurityStaticInfo        Command = 10  //查询标的基础信息
	Command_QuerySecurityQuote             Command = 11  //查询标的行情(所有标的通用行情)
	Command_QueryOptionQuote               Command = 12  //查询期权行情(仅支持期权)
	Command_QueryWarrantQuote              Command = 13  //查询轮证行情(仅支持轮证)
	Command_QueryDepth                     Command = 14  //查询盘口
	Command_QueryBrokers                   Command = 15  //查询经纪队列
	Command_QueryParticipantBrokerIds      Command = 16  //查询券商经纪席位
	Command_QueryTrade                     Command = 17  //查询成交明细
	Command_QueryIntraday                  Command = 18  //查询当日分时
	Command_QueryCandlestick               Command = 19  //查询k线
	Command_QueryOptionChainDate           Command = 20  //查询标的期权链日期列表
	Command_QueryOptionChainDateStrikeInfo Command = 21  //查询标的期权链某日的行权价信息
	Command_QueryWarrantIssuerInfo         Command = 22  //查询轮证发行商对应Id
	Command_QueryWarrantFilterList         Command = 23  //查询轮证筛选列表
	Command_PushQuoteData                  Command = 101 //推送行情
	Command_PushDepthData                  Command = 102 //推送盘口
	Command_PushBrokersData                Command = 103 //推送经纪队列
	Command_PushTradeData                  Command = 104 //推送成交明细
)

// Enum value maps for Command.
var (
	Command_name = map[int32]string{
		0:   "UNKNOWN_COMMAND",
		1:   "HEART_BEAT",
		2:   "AUTH",
		3:   "RECONNECT",
		5:   "Subscription",
		6:   "Subscribe",
		7:   "Unsubscribe",
		8:   "QueryMarketTradePeriod",
		9:   "QueryMarketTradeDay",
		10:  "QuerySecurityStaticInfo",
		11:  "QuerySecurityQuote",
		12:  "QueryOptionQuote",
		13:  "QueryWarrantQuote",
		14:  "QueryDepth",
		15:  "QueryBrokers",
		16:  "QueryParticipantBrokerIds",
		17:  "QueryTrade",
		18:  "QueryIntraday",
		19:  "QueryCandlestick",
		20:  "QueryOptionChainDate",
		21:  "QueryOptionChainDateStrikeInfo",
		22:  "QueryWarrantIssuerInfo",
		23:  "QueryWarrantFilterList",
		101: "PushQuoteData",
		102: "PushDepthData",
		103: "PushBrokersData",
		104: "PushTradeData",
	}
	Command_value = map[string]int32{
		"UNKNOWN_COMMAND":                0,
		"HEART_BEAT":                     1,
		"AUTH":                           2,
		"RECONNECT":                      3,
		"Subscription":                   5,
		"Subscribe":                      6,
		"Unsubscribe":                    7,
		"QueryMarketTradePeriod":         8,
		"QueryMarketTradeDay":            9,
		"QuerySecurityStaticInfo":        10,
		"QuerySecurityQuote":             11,
		"QueryOptionQuote":               12,
		"QueryWarrantQuote":              13,
		"QueryDepth":                     14,
		"QueryBrokers":                   15,
		"QueryParticipantBrokerIds":      16,
		"QueryTrade":                     17,
		"QueryIntraday":                  18,
		"QueryCandlestick":               19,
		"QueryOptionChainDate":           20,
		"QueryOptionChainDateStrikeInfo": 21,
		"QueryWarrantIssuerInfo":         22,
		"QueryWarrantFilterList":         23,
		"PushQuoteData":                  101,
		"PushDepthData":                  102,
		"PushBrokersData":                103,
		"PushTradeData":                  104,
	}
)

func (x Command) Enum() *Command {
	p := new(Command)
	*p = x
	return p
}

func (x Command) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Command) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[0].Descriptor()
}

func (Command) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[0]
}

func (x Command) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Command.Descriptor instead.
func (Command) EnumDescriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{0}
}

type TradeStatus int32

const (
	TradeStatus_NORMAL               TradeStatus = 0
	TradeStatus_HALTED               TradeStatus = 1
	TradeStatus_DELISTED             TradeStatus = 2
	TradeStatus_FUSE                 TradeStatus = 3
	TradeStatus_PREPARE_LIST         TradeStatus = 4
	TradeStatus_CODE_MOVED           TradeStatus = 5
	TradeStatus_TO_BE_OPENED         TradeStatus = 6
	TradeStatus_SPLIT_STOCK_HALTS    TradeStatus = 7
	TradeStatus_EXPIRED              TradeStatus = 8
	TradeStatus_WARRANT_PREPARE_LIST TradeStatus = 9
	TradeStatus_SUSPEND_TRADE        TradeStatus = 10
)

// Enum value maps for TradeStatus.
var (
	TradeStatus_name = map[int32]string{
		0:  "NORMAL",
		1:  "HALTED",
		2:  "DELISTED",
		3:  "FUSE",
		4:  "PREPARE_LIST",
		5:  "CODE_MOVED",
		6:  "TO_BE_OPENED",
		7:  "SPLIT_STOCK_HALTS",
		8:  "EXPIRED",
		9:  "WARRANT_PREPARE_LIST",
		10: "SUSPEND_TRADE",
	}
	TradeStatus_value = map[string]int32{
		"NORMAL":               0,
		"HALTED":               1,
		"DELISTED":             2,
		"FUSE":                 3,
		"PREPARE_LIST":         4,
		"CODE_MOVED":           5,
		"TO_BE_OPENED":         6,
		"SPLIT_STOCK_HALTS":    7,
		"EXPIRED":              8,
		"WARRANT_PREPARE_LIST": 9,
		"SUSPEND_TRADE":        10,
	}
)

func (x TradeStatus) Enum() *TradeStatus {
	p := new(TradeStatus)
	*p = x
	return p
}

func (x TradeStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TradeStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[1].Descriptor()
}

func (TradeStatus) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[1]
}

func (x TradeStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use TradeStatus.Descriptor instead.
func (TradeStatus) EnumDescriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{1}
}

type TradeSession int32

const (
	TradeSession_NORMAL_TRADE TradeSession = 0
	TradeSession_PRE_TRADE    TradeSession = 1
	TradeSession_POST_TRADE   TradeSession = 2
)

// Enum value maps for TradeSession.
var (
	TradeSession_name = map[int32]string{
		0: "NORMAL_TRADE",
		1: "PRE_TRADE",
		2: "POST_TRADE",
	}
	TradeSession_value = map[string]int32{
		"NORMAL_TRADE": 0,
		"PRE_TRADE":    1,
		"POST_TRADE":   2,
	}
)

func (x TradeSession) Enum() *TradeSession {
	p := new(TradeSession)
	*p = x
	return p
}

func (x TradeSession) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TradeSession) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[2].Descriptor()
}

func (TradeSession) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[2]
}

func (x TradeSession) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use TradeSession.Descriptor instead.
func (TradeSession) EnumDescriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{2}
}

type AdjustType int32

const (
	AdjustType_NO_ADJUST      AdjustType = 0
	AdjustType_FORWARD_ADJUST AdjustType = 1
)

// Enum value maps for AdjustType.
var (
	AdjustType_name = map[int32]string{
		0: "NO_ADJUST",
		1: "FORWARD_ADJUST",
	}
	AdjustType_value = map[string]int32{
		"NO_ADJUST":      0,
		"FORWARD_ADJUST": 1,
	}
)

func (x AdjustType) Enum() *AdjustType {
	p := new(AdjustType)
	*p = x
	return p
}

func (x AdjustType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AdjustType) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[3].Descriptor()
}

func (AdjustType) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[3]
}

func (x AdjustType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use AdjustType.Descriptor instead.
func (AdjustType) EnumDescriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{3}
}

type Period int32

const (
	Period_UNKNOWN_PERIOD Period = 0
	Period_ONE_MINUTE     Period = 1
	Period_FIVE_MINUTE    Period = 5
	Period_FIFTEEN_MINUTE Period = 15
	Period_THIRTY_MINUTE  Period = 30
	Period_SIXTY_MINUTE   Period = 60
	Period_DAY            Period = 1000
	Period_WEEK           Period = 2000
	Period_MONTH          Period = 3000
	Period_YEAR           Period = 4000
)

// Enum value maps for Period.
var (
	Period_name = map[int32]string{
		0:    "UNKNOWN_PERIOD",
		1:    "ONE_MINUTE",
		5:    "FIVE_MINUTE",
		15:   "FIFTEEN_MINUTE",
		30:   "THIRTY_MINUTE",
		60:   "SIXTY_MINUTE",
		1000: "DAY",
		2000: "WEEK",
		3000: "MONTH",
		4000: "YEAR",
	}
	Period_value = map[string]int32{
		"UNKNOWN_PERIOD": 0,
		"ONE_MINUTE":     1,
		"FIVE_MINUTE":    5,
		"FIFTEEN_MINUTE": 15,
		"THIRTY_MINUTE":  30,
		"SIXTY_MINUTE":   60,
		"DAY":            1000,
		"WEEK":           2000,
		"MONTH":          3000,
		"YEAR":           4000,
	}
)

func (x Period) Enum() *Period {
	p := new(Period)
	*p = x
	return p
}

func (x Period) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Period) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[4].Descriptor()
}

func (Period) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[4]
}

func (x Period) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Period.Descriptor instead.
func (Period) EnumDescriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{4}
}

type SubType int32

const (
	SubType_UNKNOWN_TYPE SubType = 0
	SubType_QUOTE        SubType = 1
	SubType_DEPTH        SubType = 2
	SubType_BROKERS      SubType = 3
	SubType_TRADE        SubType = 4
)

// Enum value maps for SubType.
var (
	SubType_name = map[int32]string{
		0: "UNKNOWN_TYPE",
		1: "QUOTE",
		2: "DEPTH",
		3: "BROKERS",
		4: "TRADE",
	}
	SubType_value = map[string]int32{
		"UNKNOWN_TYPE": 0,
		"QUOTE":        1,
		"DEPTH":        2,
		"BROKERS":      3,
		"TRADE":        4,
	}
)

func (x SubType) Enum() *SubType {
	p := new(SubType)
	*p = x
	return p
}

func (x SubType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SubType) Descriptor() protoreflect.EnumDescriptor {
	return file_quote_api_proto_enumTypes[5].Descriptor()
}

func (SubType) Type() protoreflect.EnumType {
	return &file_quote_api_proto_enumTypes[5]
}

func (x SubType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SubType.Descriptor instead.
func (SubType) EnumDescriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{5}
}

type SecurityRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

func (x *SecurityRequest) Reset() {
	*x = SecurityRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityRequest) ProtoMessage() {}

func (x *SecurityRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityRequest.ProtoReflect.Descriptor instead.
func (*SecurityRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{0}
}

func (x *SecurityRequest) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

type MultiSecurityRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol []string `protobuf:"bytes,1,rep,name=symbol,proto3" json:"symbol,omitempty"`
}

func (x *MultiSecurityRequest) Reset() {
	*x = MultiSecurityRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiSecurityRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiSecurityRequest) ProtoMessage() {}

func (x *MultiSecurityRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MultiSecurityRequest.ProtoReflect.Descriptor instead.
func (*MultiSecurityRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{1}
}

func (x *MultiSecurityRequest) GetSymbol() []string {
	if x != nil {
		return x.Symbol
	}
	return nil
}

type SecurityStaticInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SecuStaticInfo []*StaticInfo `protobuf:"bytes,1,rep,name=secu_static_info,json=secuStaticInfo,proto3" json:"secu_static_info,omitempty"`
}

func (x *SecurityStaticInfoResponse) Reset() {
	*x = SecurityStaticInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityStaticInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityStaticInfoResponse) ProtoMessage() {}

func (x *SecurityStaticInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityStaticInfoResponse.ProtoReflect.Descriptor instead.
func (*SecurityStaticInfoResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{2}
}

func (x *SecurityStaticInfoResponse) GetSecuStaticInfo() []*StaticInfo {
	if x != nil {
		return x.SecuStaticInfo
	}
	return nil
}

type StaticInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol            string  `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	NameCn            string  `protobuf:"bytes,2,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"`
	NameEn            string  `protobuf:"bytes,3,opt,name=name_en,json=nameEn,proto3" json:"name_en,omitempty"`
	NameHk            string  `protobuf:"bytes,4,opt,name=name_hk,json=nameHk,proto3" json:"name_hk,omitempty"`
	ListingDate       string  `protobuf:"bytes,5,opt,name=listing_date,json=listingDate,proto3" json:"listing_date,omitempty"`
	Exchange          string  `protobuf:"bytes,6,opt,name=exchange,proto3" json:"exchange,omitempty"`
	Currency          string  `protobuf:"bytes,7,opt,name=currency,proto3" json:"currency,omitempty"`
	LotSize           int32   `protobuf:"varint,8,opt,name=lot_size,json=lotSize,proto3" json:"lot_size,omitempty"`
	TotalShares       int64   `protobuf:"varint,9,opt,name=total_shares,json=totalShares,proto3" json:"total_shares,omitempty"`
	CirculatingShares int64   `protobuf:"varint,10,opt,name=circulating_shares,json=circulatingShares,proto3" json:"circulating_shares,omitempty"`
	HkShares          int64   `protobuf:"varint,11,opt,name=hk_shares,json=hkShares,proto3" json:"hk_shares,omitempty"`
	Eps               string  `protobuf:"bytes,12,opt,name=eps,proto3" json:"eps,omitempty"`
	EpsTtm            string  `protobuf:"bytes,13,opt,name=eps_ttm,json=epsTtm,proto3" json:"eps_ttm,omitempty"`
	Bps               string  `protobuf:"bytes,14,opt,name=bps,proto3" json:"bps,omitempty"`
	DividendYield     string  `protobuf:"bytes,15,opt,name=dividend_yield,json=dividendYield,proto3" json:"dividend_yield,omitempty"`
	StockDerivatives  []int32 `protobuf:"varint,16,rep,packed,name=stock_derivatives,json=stockDerivatives,proto3" json:"stock_derivatives,omitempty"`
}

func (x *StaticInfo) Reset() {
	*x = StaticInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StaticInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StaticInfo) ProtoMessage() {}

func (x *StaticInfo) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StaticInfo.ProtoReflect.Descriptor instead.
func (*StaticInfo) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{3}
}

func (x *StaticInfo) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *StaticInfo) GetNameCn() string {
	if x != nil {
		return x.NameCn
	}
	return ""
}

func (x *StaticInfo) GetNameEn() string {
	if x != nil {
		return x.NameEn
	}
	return ""
}

func (x *StaticInfo) GetNameHk() string {
	if x != nil {
		return x.NameHk
	}
	return ""
}

func (x *StaticInfo) GetListingDate() string {
	if x != nil {
		return x.ListingDate
	}
	return ""
}

func (x *StaticInfo) GetExchange() string {
	if x != nil {
		return x.Exchange
	}
	return ""
}

func (x *StaticInfo) GetCurrency() string {
	if x != nil {
		return x.Currency
	}
	return ""
}

func (x *StaticInfo) GetLotSize() int32 {
	if x != nil {
		return x.LotSize
	}
	return 0
}

func (x *StaticInfo) GetTotalShares() int64 {
	if x != nil {
		return x.TotalShares
	}
	return 0
}

func (x *StaticInfo) GetCirculatingShares() int64 {
	if x != nil {
		return x.CirculatingShares
	}
	return 0
}

func (x *StaticInfo) GetHkShares() int64 {
	if x != nil {
		return x.HkShares
	}
	return 0
}

func (x *StaticInfo) GetEps() string {
	if x != nil {
		return x.Eps
	}
	return ""
}

func (x *StaticInfo) GetEpsTtm() string {
	if x != nil {
		return x.EpsTtm
	}
	return ""
}

func (x *StaticInfo) GetBps() string {
	if x != nil {
		return x.Bps
	}
	return ""
}

func (x *StaticInfo) GetDividendYield() string {
	if x != nil {
		return x.DividendYield
	}
	return ""
}

func (x *StaticInfo) GetStockDerivatives() []int32 {
	if x != nil {
		return x.StockDerivatives
	}
	return nil
}

type SecurityQuoteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SecuQuote []*SecurityQuote `protobuf:"bytes,1,rep,name=secu_quote,json=secuQuote,proto3" json:"secu_quote,omitempty"`
}

func (x *SecurityQuoteResponse) Reset() {
	*x = SecurityQuoteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityQuoteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityQuoteResponse) ProtoMessage() {}

func (x *SecurityQuoteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityQuoteResponse.ProtoReflect.Descriptor instead.
func (*SecurityQuoteResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{4}
}

func (x *SecurityQuoteResponse) GetSecuQuote() []*SecurityQuote {
	if x != nil {
		return x.SecuQuote
	}
	return nil
}

type SecurityQuote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol          string        `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone        string        `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	PrevClose       string        `protobuf:"bytes,3,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
	Open            string        `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High            string        `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low             string        `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp       int64         `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume          int64         `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover        string        `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus     TradeStatus   `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridgeapp.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	PreMarketQuote  *PrePostQuote `protobuf:"bytes,11,opt,name=pre_market_quote,json=preMarketQuote,proto3" json:"pre_market_quote,omitempty"`
	PostMarketQuote *PrePostQuote `protobuf:"bytes,12,opt,name=post_market_quote,json=postMarketQuote,proto3" json:"post_market_quote,omitempty"`
}

func (x *SecurityQuote) Reset() {
	*x = SecurityQuote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityQuote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityQuote) ProtoMessage() {}

func (x *SecurityQuote) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityQuote.ProtoReflect.Descriptor instead.
func (*SecurityQuote) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{5}
}

func (x *SecurityQuote) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *SecurityQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

func (x *SecurityQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *SecurityQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *SecurityQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *SecurityQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *SecurityQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *SecurityQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *SecurityQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *SecurityQuote) GetPreMarketQuote() *PrePostQuote {
	if x != nil {
		return x.PreMarketQuote
	}
	return nil
}

func (x *SecurityQuote) GetPostMarketQuote() *PrePostQuote {
	if x != nil {
		return x.PostMarketQuote
	}
	return nil
}

type PrePostQuote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	LastDone  string `protobuf:"bytes,1,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	Timestamp int64  `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume    int64  `protobuf:"varint,3,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover  string `protobuf:"bytes,4,opt,name=turnover,proto3" json:"turnover,omitempty"`
	High      string `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low       string `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	PrevClose string `protobuf:"bytes,7,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
}

func (x *PrePostQuote) Reset() {
	*x = PrePostQuote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PrePostQuote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PrePostQuote) ProtoMessage() {}

func (x *PrePostQuote) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PrePostQuote.ProtoReflect.Descriptor instead.
func (*PrePostQuote) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{6}
}

func (x *PrePostQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *PrePostQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *PrePostQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *PrePostQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *PrePostQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *PrePostQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *PrePostQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

type OptionQuoteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SecuQuote []*OptionQuote `protobuf:"bytes,1,rep,name=secu_quote,json=secuQuote,proto3" json:"secu_quote,omitempty"`
}

func (x *OptionQuoteResponse) Reset() {
	*x = OptionQuoteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OptionQuoteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionQuoteResponse) ProtoMessage() {}

func (x *OptionQuoteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionQuoteResponse.ProtoReflect.Descriptor instead.
func (*OptionQuoteResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{7}
}

func (x *OptionQuoteResponse) GetSecuQuote() []*OptionQuote {
	if x != nil {
		return x.SecuQuote
	}
	return nil
}

type OptionQuote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol       string        `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone     string        `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	PrevClose    string        `protobuf:"bytes,3,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
	Open         string        `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High         string        `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low          string        `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp    int64         `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume       int64         `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover     string        `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus  TradeStatus   `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridgeapp.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	OptionExtend *OptionExtend `protobuf:"bytes,11,opt,name=option_extend,json=optionExtend,proto3" json:"option_extend,omitempty"`
}

func (x *OptionQuote) Reset() {
	*x = OptionQuote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OptionQuote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionQuote) ProtoMessage() {}

func (x *OptionQuote) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionQuote.ProtoReflect.Descriptor instead.
func (*OptionQuote) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{8}
}

func (x *OptionQuote) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *OptionQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *OptionQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

func (x *OptionQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *OptionQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *OptionQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *OptionQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *OptionQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *OptionQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *OptionQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *OptionQuote) GetOptionExtend() *OptionExtend {
	if x != nil {
		return x.OptionExtend
	}
	return nil
}

type OptionExtend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ImpliedVolatility    string `protobuf:"bytes,1,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	OpenInterest         int64  `protobuf:"varint,2,opt,name=open_interest,json=openInterest,proto3" json:"open_interest,omitempty"`
	ExpiryDate           string `protobuf:"bytes,3,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	StrikePrice          string `protobuf:"bytes,4,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	ContractMultiplier   string `protobuf:"bytes,5,opt,name=contract_multiplier,json=contractMultiplier,proto3" json:"contract_multiplier,omitempty"`
	ContractType         string `protobuf:"bytes,6,opt,name=contract_type,json=contractType,proto3" json:"contract_type,omitempty"`
	ContractSize         string `protobuf:"bytes,7,opt,name=contract_size,json=contractSize,proto3" json:"contract_size,omitempty"`
	Direction            string `protobuf:"bytes,8,opt,name=direction,proto3" json:"direction,omitempty"`
	HistoricalVolatility string `protobuf:"bytes,9,opt,name=historical_volatility,json=historicalVolatility,proto3" json:"historical_volatility,omitempty"`
	UnderlyingSymbol     string `protobuf:"bytes,10,opt,name=underlying_symbol,json=underlyingSymbol,proto3" json:"underlying_symbol,omitempty"`
}

func (x *OptionExtend) Reset() {
	*x = OptionExtend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OptionExtend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionExtend) ProtoMessage() {}

func (x *OptionExtend) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionExtend.ProtoReflect.Descriptor instead.
func (*OptionExtend) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{9}
}

func (x *OptionExtend) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *OptionExtend) GetOpenInterest() int64 {
	if x != nil {
		return x.OpenInterest
	}
	return 0
}

func (x *OptionExtend) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *OptionExtend) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *OptionExtend) GetContractMultiplier() string {
	if x != nil {
		return x.ContractMultiplier
	}
	return ""
}

func (x *OptionExtend) GetContractType() string {
	if x != nil {
		return x.ContractType
	}
	return ""
}

func (x *OptionExtend) GetContractSize() string {
	if x != nil {
		return x.ContractSize
	}
	return ""
}

func (x *OptionExtend) GetDirection() string {
	if x != nil {
		return x.Direction
	}
	return ""
}

func (x *OptionExtend) GetHistoricalVolatility() string {
	if x != nil {
		return x.HistoricalVolatility
	}
	return ""
}

func (x *OptionExtend) GetUnderlyingSymbol() string {
	if x != nil {
		return x.UnderlyingSymbol
	}
	return ""
}

type WarrantQuoteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SecuQuote []*WarrantQuote `protobuf:"bytes,2,rep,name=secu_quote,json=secuQuote,proto3" json:"secu_quote,omitempty"`
}

func (x *WarrantQuoteResponse) Reset() {
	*x = WarrantQuoteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WarrantQuoteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WarrantQuoteResponse) ProtoMessage() {}

func (x *WarrantQuoteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WarrantQuoteResponse.ProtoReflect.Descriptor instead.
func (*WarrantQuoteResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{10}
}

func (x *WarrantQuoteResponse) GetSecuQuote() []*WarrantQuote {
	if x != nil {
		return x.SecuQuote
	}
	return nil
}

type WarrantQuote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol        string         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	LastDone      string         `protobuf:"bytes,2,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	PrevClose     string         `protobuf:"bytes,3,opt,name=prev_close,json=prevClose,proto3" json:"prev_close,omitempty"`
	Open          string         `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High          string         `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low           string         `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp     int64          `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume        int64          `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover      string         `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus   TradeStatus    `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridgeapp.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	WarrantExtend *WarrantExtend `protobuf:"bytes,11,opt,name=warrant_extend,json=warrantExtend,proto3" json:"warrant_extend,omitempty"`
}

func (x *WarrantQuote) Reset() {
	*x = WarrantQuote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WarrantQuote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WarrantQuote) ProtoMessage() {}

func (x *WarrantQuote) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WarrantQuote.ProtoReflect.Descriptor instead.
func (*WarrantQuote) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{11}
}

func (x *WarrantQuote) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *WarrantQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *WarrantQuote) GetPrevClose() string {
	if x != nil {
		return x.PrevClose
	}
	return ""
}

func (x *WarrantQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *WarrantQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *WarrantQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *WarrantQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *WarrantQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *WarrantQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *WarrantQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *WarrantQuote) GetWarrantExtend() *WarrantExtend {
	if x != nil {
		return x.WarrantExtend
	}
	return nil
}

type WarrantExtend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ImpliedVolatility string `protobuf:"bytes,1,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	ExpiryDate        string `protobuf:"bytes,2,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	LastTradeDate     string `protobuf:"bytes,3,opt,name=last_trade_date,json=lastTradeDate,proto3" json:"last_trade_date,omitempty"`
	OutstandingRatio  string `protobuf:"bytes,4,opt,name=outstanding_ratio,json=outstandingRatio,proto3" json:"outstanding_ratio,omitempty"`
	OutstandingQty    int64  `protobuf:"varint,5,opt,name=outstanding_qty,json=outstandingQty,proto3" json:"outstanding_qty,omitempty"`
	ConversionRatio   string `protobuf:"bytes,6,opt,name=conversion_ratio,json=conversionRatio,proto3" json:"conversion_ratio,omitempty"`
	Category          string `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"`
	StrikePrice       string `protobuf:"bytes,8,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	UpperStrikePrice  string `protobuf:"bytes,9,opt,name=upper_strike_price,json=upperStrikePrice,proto3" json:"upper_strike_price,omitempty"`
	LowerStrikePrice  string `protobuf:"bytes,10,opt,name=lower_strike_price,json=lowerStrikePrice,proto3" json:"lower_strike_price,omitempty"`
	CallPrice         string `protobuf:"bytes,11,opt,name=call_price,json=callPrice,proto3" json:"call_price,omitempty"`
	UnderlyingSymbol  string `protobuf:"bytes,12,opt,name=underlying_symbol,json=underlyingSymbol,proto3" json:"underlying_symbol,omitempty"`
}

func (x *WarrantExtend) Reset() {
	*x = WarrantExtend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WarrantExtend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WarrantExtend) ProtoMessage() {}

func (x *WarrantExtend) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WarrantExtend.ProtoReflect.Descriptor instead.
func (*WarrantExtend) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{12}
}

func (x *WarrantExtend) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *WarrantExtend) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *WarrantExtend) GetLastTradeDate() string {
	if x != nil {
		return x.LastTradeDate
	}
	return ""
}

func (x *WarrantExtend) GetOutstandingRatio() string {
	if x != nil {
		return x.OutstandingRatio
	}
	return ""
}

func (x *WarrantExtend) GetOutstandingQty() int64 {
	if x != nil {
		return x.OutstandingQty
	}
	return 0
}

func (x *WarrantExtend) GetConversionRatio() string {
	if x != nil {
		return x.ConversionRatio
	}
	return ""
}

func (x *WarrantExtend) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *WarrantExtend) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *WarrantExtend) GetUpperStrikePrice() string {
	if x != nil {
		return x.UpperStrikePrice
	}
	return ""
}

func (x *WarrantExtend) GetLowerStrikePrice() string {
	if x != nil {
		return x.LowerStrikePrice
	}
	return ""
}

func (x *WarrantExtend) GetCallPrice() string {
	if x != nil {
		return x.CallPrice
	}
	return ""
}

func (x *WarrantExtend) GetUnderlyingSymbol() string {
	if x != nil {
		return x.UnderlyingSymbol
	}
	return ""
}

type SecurityDepthResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Ask    []*Depth `protobuf:"bytes,2,rep,name=ask,proto3" json:"ask,omitempty"`
	Bid    []*Depth `protobuf:"bytes,3,rep,name=bid,proto3" json:"bid,omitempty"`
}

func (x *SecurityDepthResponse) Reset() {
	*x = SecurityDepthResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityDepthResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityDepthResponse) ProtoMessage() {}

func (x *SecurityDepthResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityDepthResponse.ProtoReflect.Descriptor instead.
func (*SecurityDepthResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{13}
}

func (x *SecurityDepthResponse) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityDepthResponse) GetAsk() []*Depth {
	if x != nil {
		return x.Ask
	}
	return nil
}

func (x *SecurityDepthResponse) GetBid() []*Depth {
	if x != nil {
		return x.Bid
	}
	return nil
}

type Depth struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Position int32  `protobuf:"varint,1,opt,name=position,proto3" json:"position,omitempty"`
	Price    string `protobuf:"bytes,2,opt,name=price,proto3" json:"price,omitempty"`
	Volume   int64  `protobuf:"varint,3,opt,name=volume,proto3" json:"volume,omitempty"`
	OrderNum int64  `protobuf:"varint,4,opt,name=order_num,json=orderNum,proto3" json:"order_num,omitempty"`
}

func (x *Depth) Reset() {
	*x = Depth{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Depth) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Depth) ProtoMessage() {}

func (x *Depth) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Depth.ProtoReflect.Descriptor instead.
func (*Depth) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{14}
}

func (x *Depth) GetPosition() int32 {
	if x != nil {
		return x.Position
	}
	return 0
}

func (x *Depth) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *Depth) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Depth) GetOrderNum() int64 {
	if x != nil {
		return x.OrderNum
	}
	return 0
}

type SecurityBrokersResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol     string     `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	AskBrokers []*Brokers `protobuf:"bytes,2,rep,name=ask_brokers,json=askBrokers,proto3" json:"ask_brokers,omitempty"`
	BidBrokers []*Brokers `protobuf:"bytes,3,rep,name=bid_brokers,json=bidBrokers,proto3" json:"bid_brokers,omitempty"`
}

func (x *SecurityBrokersResponse) Reset() {
	*x = SecurityBrokersResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityBrokersResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityBrokersResponse) ProtoMessage() {}

func (x *SecurityBrokersResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityBrokersResponse.ProtoReflect.Descriptor instead.
func (*SecurityBrokersResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{15}
}

func (x *SecurityBrokersResponse) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityBrokersResponse) GetAskBrokers() []*Brokers {
	if x != nil {
		return x.AskBrokers
	}
	return nil
}

func (x *SecurityBrokersResponse) GetBidBrokers() []*Brokers {
	if x != nil {
		return x.BidBrokers
	}
	return nil
}

type Brokers struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Position  int32   `protobuf:"varint,1,opt,name=position,proto3" json:"position,omitempty"`
	BrokerIds []int32 `protobuf:"varint,2,rep,packed,name=broker_ids,json=brokerIds,proto3" json:"broker_ids,omitempty"`
}

func (x *Brokers) Reset() {
	*x = Brokers{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Brokers) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Brokers) ProtoMessage() {}

func (x *Brokers) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Brokers.ProtoReflect.Descriptor instead.
func (*Brokers) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{16}
}

func (x *Brokers) GetPosition() int32 {
	if x != nil {
		return x.Position
	}
	return 0
}

func (x *Brokers) GetBrokerIds() []int32 {
	if x != nil {
		return x.BrokerIds
	}
	return nil
}

type ParticipantBrokerIdsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ParticipantBrokerNumbers []*ParticipantInfo `protobuf:"bytes,1,rep,name=participant_broker_numbers,json=participantBrokerNumbers,proto3" json:"participant_broker_numbers,omitempty"`
}

func (x *ParticipantBrokerIdsResponse) Reset() {
	*x = ParticipantBrokerIdsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ParticipantBrokerIdsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ParticipantBrokerIdsResponse) ProtoMessage() {}

func (x *ParticipantBrokerIdsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ParticipantBrokerIdsResponse.ProtoReflect.Descriptor instead.
func (*ParticipantBrokerIdsResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{17}
}

func (x *ParticipantBrokerIdsResponse) GetParticipantBrokerNumbers() []*ParticipantInfo {
	if x != nil {
		return x.ParticipantBrokerNumbers
	}
	return nil
}

type ParticipantInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BrokerIds         []int32 `protobuf:"varint,1,rep,packed,name=broker_ids,json=brokerIds,proto3" json:"broker_ids,omitempty"`
	ParticipantNameCn string  `protobuf:"bytes,2,opt,name=participant_name_cn,json=participantNameCn,proto3" json:"participant_name_cn,omitempty"`
	ParticipantNameEn string  `protobuf:"bytes,3,opt,name=participant_name_en,json=participantNameEn,proto3" json:"participant_name_en,omitempty"`
	ParticipantNameHk string  `protobuf:"bytes,4,opt,name=participant_name_hk,json=participantNameHk,proto3" json:"participant_name_hk,omitempty"`
}

func (x *ParticipantInfo) Reset() {
	*x = ParticipantInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ParticipantInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ParticipantInfo) ProtoMessage() {}

func (x *ParticipantInfo) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ParticipantInfo.ProtoReflect.Descriptor instead.
func (*ParticipantInfo) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{18}
}

func (x *ParticipantInfo) GetBrokerIds() []int32 {
	if x != nil {
		return x.BrokerIds
	}
	return nil
}

func (x *ParticipantInfo) GetParticipantNameCn() string {
	if x != nil {
		return x.ParticipantNameCn
	}
	return ""
}

func (x *ParticipantInfo) GetParticipantNameEn() string {
	if x != nil {
		return x.ParticipantNameEn
	}
	return ""
}

func (x *ParticipantInfo) GetParticipantNameHk() string {
	if x != nil {
		return x.ParticipantNameHk
	}
	return ""
}

type SecurityTradeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Count  int32  `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
}

func (x *SecurityTradeRequest) Reset() {
	*x = SecurityTradeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityTradeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityTradeRequest) ProtoMessage() {}

func (x *SecurityTradeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityTradeRequest.ProtoReflect.Descriptor instead.
func (*SecurityTradeRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{19}
}

func (x *SecurityTradeRequest) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityTradeRequest) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

type SecurityTradeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Trades []*Trade `protobuf:"bytes,2,rep,name=trades,proto3" json:"trades,omitempty"`
}

func (x *SecurityTradeResponse) Reset() {
	*x = SecurityTradeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityTradeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityTradeResponse) ProtoMessage() {}

func (x *SecurityTradeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityTradeResponse.ProtoReflect.Descriptor instead.
func (*SecurityTradeResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{20}
}

func (x *SecurityTradeResponse) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityTradeResponse) GetTrades() []*Trade {
	if x != nil {
		return x.Trades
	}
	return nil
}

type Trade struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Price        string       `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
	Volume       int64        `protobuf:"varint,2,opt,name=volume,proto3" json:"volume,omitempty"`
	Timestamp    int64        `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	TradeType    string       `protobuf:"bytes,4,opt,name=trade_type,json=tradeType,proto3" json:"trade_type,omitempty"`
	Direction    int32        `protobuf:"varint,5,opt,name=direction,proto3" json:"direction,omitempty"`
	TradeSession TradeSession `protobuf:"varint,6,opt,name=trade_session,json=tradeSession,proto3,enum=longbridgeapp.quote.v1.TradeSession" json:"trade_session,omitempty"`
}

func (x *Trade) Reset() {
	*x = Trade{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Trade) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Trade) ProtoMessage() {}

func (x *Trade) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Trade.ProtoReflect.Descriptor instead.
func (*Trade) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{21}
}

func (x *Trade) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *Trade) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Trade) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Trade) GetTradeType() string {
	if x != nil {
		return x.TradeType
	}
	return ""
}

func (x *Trade) GetDirection() int32 {
	if x != nil {
		return x.Direction
	}
	return 0
}

func (x *Trade) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

type SecurityIntradayRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
}

func (x *SecurityIntradayRequest) Reset() {
	*x = SecurityIntradayRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityIntradayRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityIntradayRequest) ProtoMessage() {}

func (x *SecurityIntradayRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityIntradayRequest.ProtoReflect.Descriptor instead.
func (*SecurityIntradayRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{22}
}

func (x *SecurityIntradayRequest) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

type SecurityIntradayResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol string  `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Lines  []*Line `protobuf:"bytes,2,rep,name=lines,proto3" json:"lines,omitempty"`
}

func (x *SecurityIntradayResponse) Reset() {
	*x = SecurityIntradayResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityIntradayResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityIntradayResponse) ProtoMessage() {}

func (x *SecurityIntradayResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityIntradayResponse.ProtoReflect.Descriptor instead.
func (*SecurityIntradayResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{23}
}

func (x *SecurityIntradayResponse) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityIntradayResponse) GetLines() []*Line {
	if x != nil {
		return x.Lines
	}
	return nil
}

type Line struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Price     string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
	Timestamp int64  `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume    int64  `protobuf:"varint,3,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover  string `protobuf:"bytes,4,opt,name=turnover,proto3" json:"turnover,omitempty"`
	AvgPrice  string `protobuf:"bytes,5,opt,name=avg_price,json=avgPrice,proto3" json:"avg_price,omitempty"`
}

func (x *Line) Reset() {
	*x = Line{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Line) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Line) ProtoMessage() {}

func (x *Line) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Line.ProtoReflect.Descriptor instead.
func (*Line) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{24}
}

func (x *Line) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *Line) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Line) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Line) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *Line) GetAvgPrice() string {
	if x != nil {
		return x.AvgPrice
	}
	return ""
}

type SecurityCandlestickRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol     string     `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Period     Period     `protobuf:"varint,2,opt,name=period,proto3,enum=longbridgeapp.quote.v1.Period" json:"period,omitempty"`
	Count      int32      `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
	AdjustType AdjustType `protobuf:"varint,4,opt,name=adjust_type,json=adjustType,proto3,enum=longbridgeapp.quote.v1.AdjustType" json:"adjust_type,omitempty"`
}

func (x *SecurityCandlestickRequest) Reset() {
	*x = SecurityCandlestickRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityCandlestickRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityCandlestickRequest) ProtoMessage() {}

func (x *SecurityCandlestickRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityCandlestickRequest.ProtoReflect.Descriptor instead.
func (*SecurityCandlestickRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{25}
}

func (x *SecurityCandlestickRequest) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityCandlestickRequest) GetPeriod() Period {
	if x != nil {
		return x.Period
	}
	return Period_UNKNOWN_PERIOD
}

func (x *SecurityCandlestickRequest) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *SecurityCandlestickRequest) GetAdjustType() AdjustType {
	if x != nil {
		return x.AdjustType
	}
	return AdjustType_NO_ADJUST
}

type SecurityCandlestickResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol       string         `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Candlesticks []*Candlestick `protobuf:"bytes,2,rep,name=candlesticks,proto3" json:"candlesticks,omitempty"`
}

func (x *SecurityCandlestickResponse) Reset() {
	*x = SecurityCandlestickResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SecurityCandlestickResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityCandlestickResponse) ProtoMessage() {}

func (x *SecurityCandlestickResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityCandlestickResponse.ProtoReflect.Descriptor instead.
func (*SecurityCandlestickResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{26}
}

func (x *SecurityCandlestickResponse) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SecurityCandlestickResponse) GetCandlesticks() []*Candlestick {
	if x != nil {
		return x.Candlesticks
	}
	return nil
}

type Candlestick struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Close     string `protobuf:"bytes,1,opt,name=close,proto3" json:"close,omitempty"`
	Open      string `protobuf:"bytes,2,opt,name=open,proto3" json:"open,omitempty"`
	Low       string `protobuf:"bytes,3,opt,name=low,proto3" json:"low,omitempty"`
	High      string `protobuf:"bytes,4,opt,name=high,proto3" json:"high,omitempty"`
	Volume    int64  `protobuf:"varint,5,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover  string `protobuf:"bytes,6,opt,name=turnover,proto3" json:"turnover,omitempty"`
	Timestamp int64  `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
}

func (x *Candlestick) Reset() {
	*x = Candlestick{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Candlestick) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Candlestick) ProtoMessage() {}

func (x *Candlestick) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Candlestick.ProtoReflect.Descriptor instead.
func (*Candlestick) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{27}
}

func (x *Candlestick) GetClose() string {
	if x != nil {
		return x.Close
	}
	return ""
}

func (x *Candlestick) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *Candlestick) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *Candlestick) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *Candlestick) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *Candlestick) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *Candlestick) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

type OptionChainDateListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ExpiryDate []string `protobuf:"bytes,1,rep,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
}

func (x *OptionChainDateListResponse) Reset() {
	*x = OptionChainDateListResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OptionChainDateListResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionChainDateListResponse) ProtoMessage() {}

func (x *OptionChainDateListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionChainDateListResponse.ProtoReflect.Descriptor instead.
func (*OptionChainDateListResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{28}
}

func (x *OptionChainDateListResponse) GetExpiryDate() []string {
	if x != nil {
		return x.ExpiryDate
	}
	return nil
}

type OptionChainDateStrikeInfoRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol     string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	ExpiryDate string `protobuf:"bytes,2,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
}

func (x *OptionChainDateStrikeInfoRequest) Reset() {
	*x = OptionChainDateStrikeInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OptionChainDateStrikeInfoRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionChainDateStrikeInfoRequest) ProtoMessage() {}

func (x *OptionChainDateStrikeInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionChainDateStrikeInfoRequest.ProtoReflect.Descriptor instead.
func (*OptionChainDateStrikeInfoRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{29}
}

func (x *OptionChainDateStrikeInfoRequest) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *OptionChainDateStrikeInfoRequest) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

type OptionChainDateStrikeInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StrikePriceInfo []*StrikePriceInfo `protobuf:"bytes,1,rep,name=strike_price_info,json=strikePriceInfo,proto3" json:"strike_price_info,omitempty"`
}

func (x *OptionChainDateStrikeInfoResponse) Reset() {
	*x = OptionChainDateStrikeInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OptionChainDateStrikeInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OptionChainDateStrikeInfoResponse) ProtoMessage() {}

func (x *OptionChainDateStrikeInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[30]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OptionChainDateStrikeInfoResponse.ProtoReflect.Descriptor instead.
func (*OptionChainDateStrikeInfoResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{30}
}

func (x *OptionChainDateStrikeInfoResponse) GetStrikePriceInfo() []*StrikePriceInfo {
	if x != nil {
		return x.StrikePriceInfo
	}
	return nil
}

type StrikePriceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Price      string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"`
	CallSymbol string `protobuf:"bytes,2,opt,name=call_symbol,json=callSymbol,proto3" json:"call_symbol,omitempty"`
	PutSymbol  string `protobuf:"bytes,3,opt,name=put_symbol,json=putSymbol,proto3" json:"put_symbol,omitempty"`
	Standard   bool   `protobuf:"varint,4,opt,name=standard,proto3" json:"standard,omitempty"`
}

func (x *StrikePriceInfo) Reset() {
	*x = StrikePriceInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *StrikePriceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StrikePriceInfo) ProtoMessage() {}

func (x *StrikePriceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[31]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StrikePriceInfo.ProtoReflect.Descriptor instead.
func (*StrikePriceInfo) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{31}
}

func (x *StrikePriceInfo) GetPrice() string {
	if x != nil {
		return x.Price
	}
	return ""
}

func (x *StrikePriceInfo) GetCallSymbol() string {
	if x != nil {
		return x.CallSymbol
	}
	return ""
}

func (x *StrikePriceInfo) GetPutSymbol() string {
	if x != nil {
		return x.PutSymbol
	}
	return ""
}

func (x *StrikePriceInfo) GetStandard() bool {
	if x != nil {
		return x.Standard
	}
	return false
}

type IssuerInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IssuerInfo []*IssuerInfo `protobuf:"bytes,1,rep,name=issuer_info,json=issuerInfo,proto3" json:"issuer_info,omitempty"`
}

func (x *IssuerInfoResponse) Reset() {
	*x = IssuerInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IssuerInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IssuerInfoResponse) ProtoMessage() {}

func (x *IssuerInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[32]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IssuerInfoResponse.ProtoReflect.Descriptor instead.
func (*IssuerInfoResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{32}
}

func (x *IssuerInfoResponse) GetIssuerInfo() []*IssuerInfo {
	if x != nil {
		return x.IssuerInfo
	}
	return nil
}

type IssuerInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     int32  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	NameCn string `protobuf:"bytes,2,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"`
	NameEn string `protobuf:"bytes,3,opt,name=name_en,json=nameEn,proto3" json:"name_en,omitempty"`
	NameHk string `protobuf:"bytes,4,opt,name=name_hk,json=nameHk,proto3" json:"name_hk,omitempty"`
}

func (x *IssuerInfo) Reset() {
	*x = IssuerInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IssuerInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IssuerInfo) ProtoMessage() {}

func (x *IssuerInfo) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[33]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IssuerInfo.ProtoReflect.Descriptor instead.
func (*IssuerInfo) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{33}
}

func (x *IssuerInfo) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *IssuerInfo) GetNameCn() string {
	if x != nil {
		return x.NameCn
	}
	return ""
}

func (x *IssuerInfo) GetNameEn() string {
	if x != nil {
		return x.NameEn
	}
	return ""
}

func (x *IssuerInfo) GetNameHk() string {
	if x != nil {
		return x.NameHk
	}
	return ""
}

type WarrantFilterListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol       string        `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	FilterConfig *FilterConfig `protobuf:"bytes,2,opt,name=filter_config,json=filterConfig,proto3" json:"filter_config,omitempty"`
	Language     int32         `protobuf:"varint,3,opt,name=language,proto3" json:"language,omitempty"`
}

func (x *WarrantFilterListRequest) Reset() {
	*x = WarrantFilterListRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WarrantFilterListRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WarrantFilterListRequest) ProtoMessage() {}

func (x *WarrantFilterListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[34]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WarrantFilterListRequest.ProtoReflect.Descriptor instead.
func (*WarrantFilterListRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{34}
}

func (x *WarrantFilterListRequest) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *WarrantFilterListRequest) GetFilterConfig() *FilterConfig {
	if x != nil {
		return x.FilterConfig
	}
	return nil
}

func (x *WarrantFilterListRequest) GetLanguage() int32 {
	if x != nil {
		return x.Language
	}
	return 0
}

type FilterConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SortBy     int32   `protobuf:"varint,1,opt,name=sort_by,json=sortBy,proto3" json:"sort_by,omitempty"`
	SortOrder  int32   `protobuf:"varint,2,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
	SortOffset int32   `protobuf:"varint,3,opt,name=sort_offset,json=sortOffset,proto3" json:"sort_offset,omitempty"`
	SortCount  int32   `protobuf:"varint,4,opt,name=sort_count,json=sortCount,proto3" json:"sort_count,omitempty"`
	Type       []int32 `protobuf:"varint,5,rep,packed,name=type,proto3" json:"type,omitempty"`
	Issuer     []int32 `protobuf:"varint,6,rep,packed,name=issuer,proto3" json:"issuer,omitempty"`
	ExpiryDate []int32 `protobuf:"varint,7,rep,packed,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	PriceType  []int32 `protobuf:"varint,8,rep,packed,name=price_type,json=priceType,proto3" json:"price_type,omitempty"`
	Status     []int32 `protobuf:"varint,9,rep,packed,name=status,proto3" json:"status,omitempty"`
}

func (x *FilterConfig) Reset() {
	*x = FilterConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FilterConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FilterConfig) ProtoMessage() {}

func (x *FilterConfig) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FilterConfig.ProtoReflect.Descriptor instead.
func (*FilterConfig) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{35}
}

func (x *FilterConfig) GetSortBy() int32 {
	if x != nil {
		return x.SortBy
	}
	return 0
}

func (x *FilterConfig) GetSortOrder() int32 {
	if x != nil {
		return x.SortOrder
	}
	return 0
}

func (x *FilterConfig) GetSortOffset() int32 {
	if x != nil {
		return x.SortOffset
	}
	return 0
}

func (x *FilterConfig) GetSortCount() int32 {
	if x != nil {
		return x.SortCount
	}
	return 0
}

func (x *FilterConfig) GetType() []int32 {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *FilterConfig) GetIssuer() []int32 {
	if x != nil {
		return x.Issuer
	}
	return nil
}

func (x *FilterConfig) GetExpiryDate() []int32 {
	if x != nil {
		return x.ExpiryDate
	}
	return nil
}

func (x *FilterConfig) GetPriceType() []int32 {
	if x != nil {
		return x.PriceType
	}
	return nil
}

func (x *FilterConfig) GetStatus() []int32 {
	if x != nil {
		return x.Status
	}
	return nil
}

type WarrantFilterListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	WarrantList []*FilterWarrant `protobuf:"bytes,1,rep,name=warrant_list,json=warrantList,proto3" json:"warrant_list,omitempty"`
	TotalCount  int32            `protobuf:"varint,2,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
}

func (x *WarrantFilterListResponse) Reset() {
	*x = WarrantFilterListResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WarrantFilterListResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WarrantFilterListResponse) ProtoMessage() {}

func (x *WarrantFilterListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WarrantFilterListResponse.ProtoReflect.Descriptor instead.
func (*WarrantFilterListResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{36}
}

func (x *WarrantFilterListResponse) GetWarrantList() []*FilterWarrant {
	if x != nil {
		return x.WarrantList
	}
	return nil
}

func (x *WarrantFilterListResponse) GetTotalCount() int32 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

type FilterWarrant struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol            string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Name              string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	LastDone          string `protobuf:"bytes,3,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	ChangeRate        string `protobuf:"bytes,4,opt,name=change_rate,json=changeRate,proto3" json:"change_rate,omitempty"`
	ChangeVal         string `protobuf:"bytes,5,opt,name=change_val,json=changeVal,proto3" json:"change_val,omitempty"`
	Volume            int64  `protobuf:"varint,6,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover          string `protobuf:"bytes,7,opt,name=turnover,proto3" json:"turnover,omitempty"`
	ExpiryDate        string `protobuf:"bytes,8,opt,name=expiry_date,json=expiryDate,proto3" json:"expiry_date,omitempty"`
	StrikePrice       string `protobuf:"bytes,9,opt,name=strike_price,json=strikePrice,proto3" json:"strike_price,omitempty"`
	UpperStrikePrice  string `protobuf:"bytes,10,opt,name=upper_strike_price,json=upperStrikePrice,proto3" json:"upper_strike_price,omitempty"`
	LowerStrikePrice  string `protobuf:"bytes,11,opt,name=lower_strike_price,json=lowerStrikePrice,proto3" json:"lower_strike_price,omitempty"`
	OutstandingQty    string `protobuf:"bytes,12,opt,name=outstanding_qty,json=outstandingQty,proto3" json:"outstanding_qty,omitempty"`
	OutstandingRatio  string `protobuf:"bytes,13,opt,name=outstanding_ratio,json=outstandingRatio,proto3" json:"outstanding_ratio,omitempty"`
	Premium           string `protobuf:"bytes,14,opt,name=premium,proto3" json:"premium,omitempty"`
	ItmOtm            string `protobuf:"bytes,15,opt,name=itm_otm,json=itmOtm,proto3" json:"itm_otm,omitempty"`
	ImpliedVolatility string `protobuf:"bytes,16,opt,name=implied_volatility,json=impliedVolatility,proto3" json:"implied_volatility,omitempty"`
	Delta             string `protobuf:"bytes,17,opt,name=delta,proto3" json:"delta,omitempty"`
	CallPrice         string `protobuf:"bytes,18,opt,name=call_price,json=callPrice,proto3" json:"call_price,omitempty"`
	ToCallPrice       string `protobuf:"bytes,19,opt,name=to_call_price,json=toCallPrice,proto3" json:"to_call_price,omitempty"`
	EffectiveLeverage string `protobuf:"bytes,20,opt,name=effective_leverage,json=effectiveLeverage,proto3" json:"effective_leverage,omitempty"`
	LeverageRatio     string `protobuf:"bytes,21,opt,name=leverage_ratio,json=leverageRatio,proto3" json:"leverage_ratio,omitempty"`
	ConversionRatio   string `protobuf:"bytes,22,opt,name=conversion_ratio,json=conversionRatio,proto3" json:"conversion_ratio,omitempty"`
	BalancePoint      string `protobuf:"bytes,23,opt,name=balance_point,json=balancePoint,proto3" json:"balance_point,omitempty"`
	State             string `protobuf:"bytes,24,opt,name=state,proto3" json:"state,omitempty"`
}

func (x *FilterWarrant) Reset() {
	*x = FilterWarrant{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FilterWarrant) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FilterWarrant) ProtoMessage() {}

func (x *FilterWarrant) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[37]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FilterWarrant.ProtoReflect.Descriptor instead.
func (*FilterWarrant) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{37}
}

func (x *FilterWarrant) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *FilterWarrant) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *FilterWarrant) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *FilterWarrant) GetChangeRate() string {
	if x != nil {
		return x.ChangeRate
	}
	return ""
}

func (x *FilterWarrant) GetChangeVal() string {
	if x != nil {
		return x.ChangeVal
	}
	return ""
}

func (x *FilterWarrant) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *FilterWarrant) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *FilterWarrant) GetExpiryDate() string {
	if x != nil {
		return x.ExpiryDate
	}
	return ""
}

func (x *FilterWarrant) GetStrikePrice() string {
	if x != nil {
		return x.StrikePrice
	}
	return ""
}

func (x *FilterWarrant) GetUpperStrikePrice() string {
	if x != nil {
		return x.UpperStrikePrice
	}
	return ""
}

func (x *FilterWarrant) GetLowerStrikePrice() string {
	if x != nil {
		return x.LowerStrikePrice
	}
	return ""
}

func (x *FilterWarrant) GetOutstandingQty() string {
	if x != nil {
		return x.OutstandingQty
	}
	return ""
}

func (x *FilterWarrant) GetOutstandingRatio() string {
	if x != nil {
		return x.OutstandingRatio
	}
	return ""
}

func (x *FilterWarrant) GetPremium() string {
	if x != nil {
		return x.Premium
	}
	return ""
}

func (x *FilterWarrant) GetItmOtm() string {
	if x != nil {
		return x.ItmOtm
	}
	return ""
}

func (x *FilterWarrant) GetImpliedVolatility() string {
	if x != nil {
		return x.ImpliedVolatility
	}
	return ""
}

func (x *FilterWarrant) GetDelta() string {
	if x != nil {
		return x.Delta
	}
	return ""
}

func (x *FilterWarrant) GetCallPrice() string {
	if x != nil {
		return x.CallPrice
	}
	return ""
}

func (x *FilterWarrant) GetToCallPrice() string {
	if x != nil {
		return x.ToCallPrice
	}
	return ""
}

func (x *FilterWarrant) GetEffectiveLeverage() string {
	if x != nil {
		return x.EffectiveLeverage
	}
	return ""
}

func (x *FilterWarrant) GetLeverageRatio() string {
	if x != nil {
		return x.LeverageRatio
	}
	return ""
}

func (x *FilterWarrant) GetConversionRatio() string {
	if x != nil {
		return x.ConversionRatio
	}
	return ""
}

func (x *FilterWarrant) GetBalancePoint() string {
	if x != nil {
		return x.BalancePoint
	}
	return ""
}

func (x *FilterWarrant) GetState() string {
	if x != nil {
		return x.State
	}
	return ""
}

type MarketTradePeriodResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MarketTradeSession []*MarketTradePeriod `protobuf:"bytes,1,rep,name=market_trade_session,json=marketTradeSession,proto3" json:"market_trade_session,omitempty"`
}

func (x *MarketTradePeriodResponse) Reset() {
	*x = MarketTradePeriodResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MarketTradePeriodResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MarketTradePeriodResponse) ProtoMessage() {}

func (x *MarketTradePeriodResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[38]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MarketTradePeriodResponse.ProtoReflect.Descriptor instead.
func (*MarketTradePeriodResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{38}
}

func (x *MarketTradePeriodResponse) GetMarketTradeSession() []*MarketTradePeriod {
	if x != nil {
		return x.MarketTradeSession
	}
	return nil
}

type MarketTradePeriod struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Market       string         `protobuf:"bytes,1,opt,name=market,proto3" json:"market,omitempty"`
	TradeSession []*TradePeriod `protobuf:"bytes,2,rep,name=trade_session,json=tradeSession,proto3" json:"trade_session,omitempty"`
}

func (x *MarketTradePeriod) Reset() {
	*x = MarketTradePeriod{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MarketTradePeriod) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MarketTradePeriod) ProtoMessage() {}

func (x *MarketTradePeriod) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[39]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MarketTradePeriod.ProtoReflect.Descriptor instead.
func (*MarketTradePeriod) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{39}
}

func (x *MarketTradePeriod) GetMarket() string {
	if x != nil {
		return x.Market
	}
	return ""
}

func (x *MarketTradePeriod) GetTradeSession() []*TradePeriod {
	if x != nil {
		return x.TradeSession
	}
	return nil
}

type TradePeriod struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BegTime      int32        `protobuf:"varint,1,opt,name=beg_time,json=begTime,proto3" json:"beg_time,omitempty"`
	EndTime      int32        `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	TradeSession TradeSession `protobuf:"varint,3,opt,name=trade_session,json=tradeSession,proto3,enum=longbridgeapp.quote.v1.TradeSession" json:"trade_session,omitempty"`
}

func (x *TradePeriod) Reset() {
	*x = TradePeriod{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TradePeriod) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TradePeriod) ProtoMessage() {}

func (x *TradePeriod) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[40]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TradePeriod.ProtoReflect.Descriptor instead.
func (*TradePeriod) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{40}
}

func (x *TradePeriod) GetBegTime() int32 {
	if x != nil {
		return x.BegTime
	}
	return 0
}

func (x *TradePeriod) GetEndTime() int32 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *TradePeriod) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

type SubscriptionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SubscriptionRequest) Reset() {
	*x = SubscriptionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionRequest) ProtoMessage() {}

func (x *SubscriptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[41]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscriptionRequest.ProtoReflect.Descriptor instead.
func (*SubscriptionRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{41}
}

type SubscriptionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SubList []*SubTypeList `protobuf:"bytes,1,rep,name=sub_list,json=subList,proto3" json:"sub_list,omitempty"`
}

func (x *SubscriptionResponse) Reset() {
	*x = SubscriptionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionResponse) ProtoMessage() {}

func (x *SubscriptionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[42]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscriptionResponse.ProtoReflect.Descriptor instead.
func (*SubscriptionResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{42}
}

func (x *SubscriptionResponse) GetSubList() []*SubTypeList {
	if x != nil {
		return x.SubList
	}
	return nil
}

type SubTypeList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol  string    `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	SubType []SubType `protobuf:"varint,2,rep,packed,name=sub_type,json=subType,proto3,enum=longbridgeapp.quote.v1.SubType" json:"sub_type,omitempty"`
}

func (x *SubTypeList) Reset() {
	*x = SubTypeList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubTypeList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubTypeList) ProtoMessage() {}

func (x *SubTypeList) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[43]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubTypeList.ProtoReflect.Descriptor instead.
func (*SubTypeList) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{43}
}

func (x *SubTypeList) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *SubTypeList) GetSubType() []SubType {
	if x != nil {
		return x.SubType
	}
	return nil
}

type SubscribeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol      []string  `protobuf:"bytes,1,rep,name=symbol,proto3" json:"symbol,omitempty"`
	SubType     []SubType `protobuf:"varint,2,rep,packed,name=sub_type,json=subType,proto3,enum=longbridgeapp.quote.v1.SubType" json:"sub_type,omitempty"`
	IsFirstPush bool      `protobuf:"varint,3,opt,name=is_first_push,json=isFirstPush,proto3" json:"is_first_push,omitempty"`
}

func (x *SubscribeRequest) Reset() {
	*x = SubscribeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscribeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribeRequest) ProtoMessage() {}

func (x *SubscribeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[44]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead.
func (*SubscribeRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{44}
}

func (x *SubscribeRequest) GetSymbol() []string {
	if x != nil {
		return x.Symbol
	}
	return nil
}

func (x *SubscribeRequest) GetSubType() []SubType {
	if x != nil {
		return x.SubType
	}
	return nil
}

func (x *SubscribeRequest) GetIsFirstPush() bool {
	if x != nil {
		return x.IsFirstPush
	}
	return false
}

type UnsubscribeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol   []string  `protobuf:"bytes,1,rep,name=symbol,proto3" json:"symbol,omitempty"`
	SubType  []SubType `protobuf:"varint,2,rep,packed,name=sub_type,json=subType,proto3,enum=longbridgeapp.quote.v1.SubType" json:"sub_type,omitempty"`
	UnsubAll bool      `protobuf:"varint,3,opt,name=unsub_all,json=unsubAll,proto3" json:"unsub_all,omitempty"`
}

func (x *UnsubscribeRequest) Reset() {
	*x = UnsubscribeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UnsubscribeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UnsubscribeRequest) ProtoMessage() {}

func (x *UnsubscribeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[45]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UnsubscribeRequest.ProtoReflect.Descriptor instead.
func (*UnsubscribeRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{45}
}

func (x *UnsubscribeRequest) GetSymbol() []string {
	if x != nil {
		return x.Symbol
	}
	return nil
}

func (x *UnsubscribeRequest) GetSubType() []SubType {
	if x != nil {
		return x.SubType
	}
	return nil
}

func (x *UnsubscribeRequest) GetUnsubAll() bool {
	if x != nil {
		return x.UnsubAll
	}
	return false
}

type UnsubscribeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *UnsubscribeResponse) Reset() {
	*x = UnsubscribeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UnsubscribeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UnsubscribeResponse) ProtoMessage() {}

func (x *UnsubscribeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[46]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UnsubscribeResponse.ProtoReflect.Descriptor instead.
func (*UnsubscribeResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{46}
}

type PushQuote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol       string       `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence     int64        `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	LastDone     string       `protobuf:"bytes,3,opt,name=last_done,json=lastDone,proto3" json:"last_done,omitempty"`
	Open         string       `protobuf:"bytes,4,opt,name=open,proto3" json:"open,omitempty"`
	High         string       `protobuf:"bytes,5,opt,name=high,proto3" json:"high,omitempty"`
	Low          string       `protobuf:"bytes,6,opt,name=low,proto3" json:"low,omitempty"`
	Timestamp    int64        `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Volume       int64        `protobuf:"varint,8,opt,name=volume,proto3" json:"volume,omitempty"`
	Turnover     string       `protobuf:"bytes,9,opt,name=turnover,proto3" json:"turnover,omitempty"`
	TradeStatus  TradeStatus  `protobuf:"varint,10,opt,name=trade_status,json=tradeStatus,proto3,enum=longbridgeapp.quote.v1.TradeStatus" json:"trade_status,omitempty"`
	TradeSession TradeSession `protobuf:"varint,11,opt,name=trade_session,json=tradeSession,proto3,enum=longbridgeapp.quote.v1.TradeSession" json:"trade_session,omitempty"`
}

func (x *PushQuote) Reset() {
	*x = PushQuote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PushQuote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PushQuote) ProtoMessage() {}

func (x *PushQuote) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[47]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PushQuote.ProtoReflect.Descriptor instead.
func (*PushQuote) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{47}
}

func (x *PushQuote) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *PushQuote) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushQuote) GetLastDone() string {
	if x != nil {
		return x.LastDone
	}
	return ""
}

func (x *PushQuote) GetOpen() string {
	if x != nil {
		return x.Open
	}
	return ""
}

func (x *PushQuote) GetHigh() string {
	if x != nil {
		return x.High
	}
	return ""
}

func (x *PushQuote) GetLow() string {
	if x != nil {
		return x.Low
	}
	return ""
}

func (x *PushQuote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *PushQuote) GetVolume() int64 {
	if x != nil {
		return x.Volume
	}
	return 0
}

func (x *PushQuote) GetTurnover() string {
	if x != nil {
		return x.Turnover
	}
	return ""
}

func (x *PushQuote) GetTradeStatus() TradeStatus {
	if x != nil {
		return x.TradeStatus
	}
	return TradeStatus_NORMAL
}

func (x *PushQuote) GetTradeSession() TradeSession {
	if x != nil {
		return x.TradeSession
	}
	return TradeSession_NORMAL_TRADE
}

type PushDepth struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol   string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence int64    `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Ask      []*Depth `protobuf:"bytes,3,rep,name=ask,proto3" json:"ask,omitempty"`
	Bid      []*Depth `protobuf:"bytes,4,rep,name=bid,proto3" json:"bid,omitempty"`
}

func (x *PushDepth) Reset() {
	*x = PushDepth{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PushDepth) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PushDepth) ProtoMessage() {}

func (x *PushDepth) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[48]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PushDepth.ProtoReflect.Descriptor instead.
func (*PushDepth) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{48}
}

func (x *PushDepth) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *PushDepth) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushDepth) GetAsk() []*Depth {
	if x != nil {
		return x.Ask
	}
	return nil
}

func (x *PushDepth) GetBid() []*Depth {
	if x != nil {
		return x.Bid
	}
	return nil
}

type PushBrokers struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol     string     `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence   int64      `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	AskBrokers []*Brokers `protobuf:"bytes,3,rep,name=ask_brokers,json=askBrokers,proto3" json:"ask_brokers,omitempty"`
	BidBrokers []*Brokers `protobuf:"bytes,4,rep,name=bid_brokers,json=bidBrokers,proto3" json:"bid_brokers,omitempty"`
}

func (x *PushBrokers) Reset() {
	*x = PushBrokers{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PushBrokers) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PushBrokers) ProtoMessage() {}

func (x *PushBrokers) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[49]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PushBrokers.ProtoReflect.Descriptor instead.
func (*PushBrokers) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{49}
}

func (x *PushBrokers) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *PushBrokers) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushBrokers) GetAskBrokers() []*Brokers {
	if x != nil {
		return x.AskBrokers
	}
	return nil
}

func (x *PushBrokers) GetBidBrokers() []*Brokers {
	if x != nil {
		return x.BidBrokers
	}
	return nil
}

type PushTrade struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Symbol   string   `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
	Sequence int64    `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Trade    []*Trade `protobuf:"bytes,3,rep,name=trade,proto3" json:"trade,omitempty"`
}

func (x *PushTrade) Reset() {
	*x = PushTrade{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PushTrade) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PushTrade) ProtoMessage() {}

func (x *PushTrade) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[50]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PushTrade.ProtoReflect.Descriptor instead.
func (*PushTrade) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{50}
}

func (x *PushTrade) GetSymbol() string {
	if x != nil {
		return x.Symbol
	}
	return ""
}

func (x *PushTrade) GetSequence() int64 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *PushTrade) GetTrade() []*Trade {
	if x != nil {
		return x.Trade
	}
	return nil
}

type MarketTradeDayRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Market string `protobuf:"bytes,1,opt,name=market,proto3" json:"market,omitempty"`
	BegDay string `protobuf:"bytes,2,opt,name=beg_day,json=begDay,proto3" json:"beg_day,omitempty"`
	EndDay string `protobuf:"bytes,3,opt,name=end_day,json=endDay,proto3" json:"end_day,omitempty"`
}

func (x *MarketTradeDayRequest) Reset() {
	*x = MarketTradeDayRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MarketTradeDayRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MarketTradeDayRequest) ProtoMessage() {}

func (x *MarketTradeDayRequest) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[51]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MarketTradeDayRequest.ProtoReflect.Descriptor instead.
func (*MarketTradeDayRequest) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{51}
}

func (x *MarketTradeDayRequest) GetMarket() string {
	if x != nil {
		return x.Market
	}
	return ""
}

func (x *MarketTradeDayRequest) GetBegDay() string {
	if x != nil {
		return x.BegDay
	}
	return ""
}

func (x *MarketTradeDayRequest) GetEndDay() string {
	if x != nil {
		return x.EndDay
	}
	return ""
}

type MarketTradeDayResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	TradeDay     []string `protobuf:"bytes,1,rep,name=trade_day,json=tradeDay,proto3" json:"trade_day,omitempty"`
	HalfTradeDay []string `protobuf:"bytes,2,rep,name=half_trade_day,json=halfTradeDay,proto3" json:"half_trade_day,omitempty"`
}

func (x *MarketTradeDayResponse) Reset() {
	*x = MarketTradeDayResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_quote_api_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MarketTradeDayResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MarketTradeDayResponse) ProtoMessage() {}

func (x *MarketTradeDayResponse) ProtoReflect() protoreflect.Message {
	mi := &file_quote_api_proto_msgTypes[52]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MarketTradeDayResponse.ProtoReflect.Descriptor instead.
func (*MarketTradeDayResponse) Descriptor() ([]byte, []int) {
	return file_quote_api_proto_rawDescGZIP(), []int{52}
}

func (x *MarketTradeDayResponse) GetTradeDay() []string {
	if x != nil {
		return x.TradeDay
	}
	return nil
}

func (x *MarketTradeDayResponse) GetHalfTradeDay() []string {
	if x != nil {
		return x.HalfTradeDay
	}
	return nil
}

var File_quote_api_proto protoreflect.FileDescriptor

var file_quote_api_proto_rawDesc = []byte{
	0x0a, 0x0f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x16, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x22, 0x29, 0x0a, 0x0f, 0x53, 0x65, 0x63,
	0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x2e, 0x0a, 0x14, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x63,
	0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x6a, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
	0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69,
	0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f,
	0x22, 0xe5, 0x03, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f,
	0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e,
	0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x68, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65,
	0x48, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e,
	0x67, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x19, 0x0a,
	0x08, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x6c, 0x6f, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61,
	0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63,
	0x69, 0x72, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x69, 0x72, 0x63, 0x75, 0x6c, 0x61,
	0x74, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6b,
	0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x68,
	0x6b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x70, 0x73, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x70, 0x73,
	0x5f, 0x74, 0x74, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x70, 0x73, 0x54,
	0x74, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x62, 0x70, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x64,
	0x5f, 0x79, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69,
	0x76, 0x69, 0x64, 0x65, 0x6e, 0x64, 0x59, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73,
	0x74, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73,
	0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x72,
	0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x22, 0x5d, 0x0a, 0x15, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x44, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x09, 0x73, 0x65,
	0x63, 0x75, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x22, 0xd9, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x75,
	0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d,
	0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65,
	0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x74, 0x72, 0x61,
	0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x23, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x4e, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x12, 0x50, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
	0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f,
	0x74, 0x65, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x51, 0x75,
	0x6f, 0x74, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x51,
	0x75, 0x6f, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
	0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f,
	0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f,
	0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65,
	0x76, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70,
	0x72, 0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x13, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x42, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
	0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x09, 0x73, 0x65, 0x63, 0x75, 0x51, 0x75,
	0x6f, 0x74, 0x65, 0x22, 0x80, 0x03, 0x0a, 0x0b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75,
	0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6c,
	0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x76,
	0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72,
	0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68,
	0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12,
	0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f,
	0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
	0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f,
	0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f,
	0x76, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b,
	0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x6f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61,
	0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x22, 0xa1, 0x03, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6c, 0x69,
	0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x61,
	0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69,
	0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6f,
	0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c,
	0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12,
	0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74,
	0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f,
	0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72,
	0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
	0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
	0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f,
	0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69,
	0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x15, 0x68, 0x69, 0x73, 0x74,
	0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69,
	0x63, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a,
	0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c,
	0x79, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x5b, 0x0a, 0x14, 0x57, 0x61,
	0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x75, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69,
	0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x09, 0x73, 0x65,
	0x63, 0x75, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x22, 0x84, 0x03, 0x0a, 0x0c, 0x57, 0x61, 0x72, 0x72,
	0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d, 0x0a,
	0x0a, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x70, 0x72, 0x65, 0x76, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e,
	0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64,
	0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x4c, 0x0a, 0x0e, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65,
	0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x52,
	0x0d, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x22, 0xef,
	0x03, 0x0a, 0x0d, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
	0x12, 0x2d, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61,
	0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d,
	0x70, 0x6c, 0x69, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12,
	0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65,
	0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64,
	0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54,
	0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x73,
	0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e,
	0x64, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e,
	0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x51, 0x74, 0x79, 0x12, 0x29,
	0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74,
	0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74,
	0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f,
	0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72,
	0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x70, 0x65,
	0x72, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b,
	0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f,
	0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x50, 0x72,
	0x69, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e,
	0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
	0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x22, 0x91, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x70,
	0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x12, 0x2f, 0x0a, 0x03, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03,
	0x61, 0x73, 0x6b, 0x12, 0x2f, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1d, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52,
	0x03, 0x62, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x05, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x1a, 0x0a,
	0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x64, 0x65,
	0x72, 0x4e, 0x75, 0x6d, 0x22, 0xb5, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,
	0x79, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x73, 0x6b, 0x5f,
	0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75,
	0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0a,
	0x61, 0x73, 0x6b, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x62, 0x69,
	0x64, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73,
	0x52, 0x0a, 0x62, 0x69, 0x64, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x44, 0x0a, 0x07,
	0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49,
	0x64, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
	0x6e, 0x74, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x1a, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
	0x6e, 0x74, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x6f,
	0x6b, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0f, 0x50,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d,
	0x0a, 0x0a, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x2e, 0x0a,
	0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x2e, 0x0a,
	0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x12, 0x2e, 0x0a,
	0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x5f, 0x68, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x6b, 0x22, 0x44, 0x0a,
	0x14, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x14, 0x0a,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x15, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x54,
	0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67,
	0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72,
	0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xdb, 0x01, 0x0a, 0x05,
	0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76,
	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c,
	0x75, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49,
	0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64,
	0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54,
	0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61,
	0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x17, 0x53, 0x65, 0x63,
	0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x66, 0x0a, 0x18,
	0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x79,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62,
	0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x1c, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x05, 0x6c,
	0x69, 0x6e, 0x65, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72,
	0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72,
	0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72,
	0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f,
	0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x61, 0x64, 0x6a, 0x75, 0x73,
	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0a, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7e, 0x0a, 0x1b,
	0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74,
	0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69,
	0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x52, 0x0c,
	0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x22, 0xaf, 0x01, 0x0a,
	0x0b, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05,
	0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x6f,
	0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x16, 0x0a, 0x06,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72,
	0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3e,
	0x0a, 0x1b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a,
	0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x22, 0x5b,
	0x0a, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74,
	0x65, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78,
	0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74, 0x65, 0x22, 0x78, 0x0a, 0x21, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74,
	0x72, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x53, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65,
	0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69,
	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12,
	0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12,
	0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x08, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x22, 0x59, 0x0a, 0x12, 0x49,
	0x73, 0x73, 0x75, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x43, 0x0a, 0x0b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69,
	0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x73, 0x73, 0x75,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x67, 0x0a, 0x0a, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x17, 0x0a,
	0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x6e, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68,
	0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6b, 0x22,
	0x99, 0x01, 0x0a, 0x18, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65,
	0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79,
	0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x49, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x0c,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, 0x07,
	0x73, 0x6f, 0x72, 0x74, 0x5f, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
	0x6f, 0x72, 0x74, 0x42, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x72,
	0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x66,
	0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x4f,
	0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6f, 0x72, 0x74, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75,
	0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72,
	0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18,
	0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74,
	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x19, 0x57, 0x61, 0x72,
	0x72, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e,
	0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c,
	0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f,
	0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x57, 0x61, 0x72, 0x72,
	0x61, 0x6e, 0x74, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x22, 0xb9, 0x06, 0x0a, 0x0d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x57, 0x61, 0x72, 0x72,
	0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a,
	0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06,
	0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72,
	0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x61, 0x74,
	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63,
	0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50,
	0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74,
	0x72, 0x69, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x10, 0x75, 0x70, 0x70, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69,
	0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x69,
	0x6b, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
	0x6c, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6b, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65,
	0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f,
	0x71, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x73, 0x74,
	0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x51, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x6f, 0x75, 0x74,
	0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e,
	0x67, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75,
	0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d,
	0x12, 0x17, 0x0a, 0x07, 0x69, 0x74, 0x6d, 0x5f, 0x6f, 0x74, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x69, 0x74, 0x6d, 0x4f, 0x74, 0x6d, 0x12, 0x2d, 0x0a, 0x12, 0x69, 0x6d, 0x70,
	0x6c, 0x69, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x56, 0x6f,
	0x6c, 0x61, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x74,
	0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1d,
	0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a,
	0x0d, 0x74, 0x6f, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x13,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63,
	0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6c,
	0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65,
	0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65,
	0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61,
	0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74,
	0x69, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x6c, 0x61, 0x6e,
	0x63, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x78, 0x0a,
	0x19, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69,
	0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x6d, 0x61,
	0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x52, 0x12, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65,
	0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65,
	0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06,
	0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61,
	0x72, 0x6b, 0x65, 0x74, 0x12, 0x48, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
	0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8e,
	0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x19,
	0x0a, 0x08, 0x62, 0x65, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x07, 0x62, 0x65, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x6e, 0x64,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65,
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22,
	0x15, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e,
	0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x61,
	0x0a, 0x0b, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70,
	0x65, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3a,
	0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70,
	0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73,
	0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0b, 0x69, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x50, 0x75, 0x73, 0x68, 0x22, 0x85,
	0x01, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x3a, 0x0a,
	0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32,
	0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6e, 0x73,
	0x75, 0x62, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x75, 0x6e,
	0x73, 0x75, 0x62, 0x41, 0x6c, 0x6c, 0x22, 0x15, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xfb, 0x02,
	0x0a, 0x09, 0x50, 0x75, 0x73, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12,
	0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04,
	0x6f, 0x70, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e,
	0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x74, 0x75, 0x72, 0x6e, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64,
	0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23,
	0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x49, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa1, 0x01, 0x0a, 0x09,
	0x50, 0x75, 0x73, 0x68, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d,
	0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
	0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a,
	0x03, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x6f, 0x6e,
	0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03, 0x61, 0x73, 0x6b, 0x12, 0x2f,
	0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x52, 0x03, 0x62, 0x69, 0x64, 0x22,
	0xc5, 0x01, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65,
	0x6e, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x73, 0x6b, 0x5f, 0x62, 0x72, 0x6f, 0x6b, 0x65,
	0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62,
	0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x61, 0x73, 0x6b, 0x42, 0x72,
	0x6f, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x62, 0x69, 0x64, 0x5f, 0x62, 0x72, 0x6f,
	0x6b, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x6f, 0x6e,
	0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x62, 0x69, 0x64,
	0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x74, 0x0a, 0x09, 0x50, 0x75, 0x73, 0x68, 0x54,
	0x72, 0x61, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08,
	0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,
	0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64,
	0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x22, 0x61, 0x0a,
	0x15, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x17,
	0x0a, 0x07, 0x62, 0x65, 0x67, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x62, 0x65, 0x67, 0x44, 0x61, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x64,
	0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x79,
	0x22, 0x5b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44,
	0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72,
	0x61, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74,
	0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x61, 0x6c, 0x66, 0x5f,
	0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x0c, 0x68, 0x61, 0x6c, 0x66, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x2a, 0xce, 0x04,
	0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0e,
	0x0a, 0x0a, 0x48, 0x45, 0x41, 0x52, 0x54, 0x5f, 0x42, 0x45, 0x41, 0x54, 0x10, 0x01, 0x12, 0x08,
	0x0a, 0x04, 0x41, 0x55, 0x54, 0x48, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x43, 0x4f,
	0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x65, 0x72,
	0x69, 0x6f, 0x64, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61,
	0x72, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x79, 0x10, 0x09, 0x12, 0x1b,
	0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53,
	0x74, 0x61, 0x74, 0x69, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x51, 0x75, 0x6f, 0x74,
	0x65, 0x10, 0x0b, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x10, 0x0d,
	0x12, 0x0e, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x74, 0x68, 0x10, 0x0e,
	0x12, 0x10, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x73,
	0x10, 0x0f, 0x12, 0x1d, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x74, 0x69,
	0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x42, 0x72, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x73, 0x10,
	0x10, 0x12, 0x0e, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x72, 0x61, 0x64, 0x65, 0x10,
	0x11, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x74, 0x72, 0x61, 0x64,
	0x61, 0x79, 0x10, 0x12, 0x12, 0x14, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61,
	0x74, 0x65, 0x10, 0x14, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x69,
	0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x57, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x49, 0x6e,
	0x66, 0x6f, 0x10, 0x16, 0x12, 0x1a, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x61, 0x72,
	0x72, 0x61, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x17,
	0x12, 0x11, 0x0a, 0x0d, 0x50, 0x75, 0x73, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x44, 0x61, 0x74,
	0x61, 0x10, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x75, 0x73, 0x68, 0x44, 0x65, 0x70, 0x74, 0x68,
	0x44, 0x61, 0x74, 0x61, 0x10, 0x66, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x75, 0x73, 0x68, 0x42, 0x72,
	0x6f, 0x6b, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x10, 0x67, 0x12, 0x11, 0x0a, 0x0d, 0x50,
	0x75, 0x73, 0x68, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x10, 0x68, 0x2a, 0xc2,
	0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a,
	0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x41,
	0x4c, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x49, 0x53, 0x54,
	0x45, 0x44, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x53, 0x45, 0x10, 0x03, 0x12, 0x10,
	0x0a, 0x0c, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x04,
	0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x05,
	0x12, 0x10, 0x0a, 0x0c, 0x54, 0x4f, 0x5f, 0x42, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44,
	0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x43,
	0x4b, 0x5f, 0x48, 0x41, 0x4c, 0x54, 0x53, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50,
	0x49, 0x52, 0x45, 0x44, 0x10, 0x08, 0x12, 0x18, 0x0a, 0x14, 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e,
	0x54, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x09,
	0x12, 0x11, 0x0a, 0x0d, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x44,
	0x45, 0x10, 0x0a, 0x2a, 0x3f, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x64, 0x65, 0x53, 0x65, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x54, 0x52,
	0x41, 0x44, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x5f, 0x54, 0x52, 0x41,
	0x44, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x54, 0x52, 0x41,
	0x44, 0x45, 0x10, 0x02, 0x2a, 0x2f, 0x0a, 0x0a, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10,
	0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x5f, 0x41, 0x44, 0x4a,
	0x55, 0x53, 0x54, 0x10, 0x01, 0x2a, 0xa2, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
	0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x49,
	0x4f, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x55,
	0x54, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x49, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e,
	0x55, 0x54, 0x45, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x49, 0x46, 0x54, 0x45, 0x45, 0x4e,
	0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x48, 0x49,
	0x52, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x1e, 0x12, 0x10, 0x0a, 0x0c,
	0x53, 0x49, 0x58, 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, 0x10, 0x3c, 0x12, 0x08,
	0x0a, 0x03, 0x44, 0x41, 0x59, 0x10, 0xe8, 0x07, 0x12, 0x09, 0x0a, 0x04, 0x57, 0x45, 0x45, 0x4b,
	0x10, 0xd0, 0x0f, 0x12, 0x0a, 0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0xb8, 0x17, 0x12,
	0x09, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52, 0x10, 0xa0, 0x1f, 0x2a, 0x49, 0x0a, 0x07, 0x53, 0x75,
	0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
	0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x51, 0x55, 0x4f, 0x54, 0x45,
	0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x50, 0x54, 0x48, 0x10, 0x02, 0x12, 0x0b, 0x0a,
	0x07, 0x42, 0x52, 0x4f, 0x4b, 0x45, 0x52, 0x53, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52,
	0x41, 0x44, 0x45, 0x10, 0x04, 0x42, 0xe1, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x6c, 0x6f,
	0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x71, 0x75, 0x6f, 0x74,
	0x65, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
	0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x6f, 0x6e,
	0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61,
	0x70, 0x69, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x2f, 0x67, 0x65, 0x6e,
	0x2f, 0x67, 0x6f, 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x3b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x76,
	0x31, 0xa2, 0x02, 0x03, 0x4c, 0x51, 0x58, 0xaa, 0x02, 0x16, 0x4c, 0x6f, 0x6e, 0x67, 0x62, 0x72,
	0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x56, 0x31,
	0xca, 0x02, 0x16, 0x4c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70,
	0x5c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x4c, 0x6f, 0x6e, 0x67,
	0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x5c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x5c,
	0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02,
	0x18, 0x4c, 0x6f, 0x6e, 0x67, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x61, 0x70, 0x70, 0x3a, 0x3a,
	0x51, 0x75, 0x6f, 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x33,
}

var (
	file_quote_api_proto_rawDescOnce sync.Once
	file_quote_api_proto_rawDescData = file_quote_api_proto_rawDesc
)

func file_quote_api_proto_rawDescGZIP() []byte {
	file_quote_api_proto_rawDescOnce.Do(func() {
		file_quote_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_quote_api_proto_rawDescData)
	})
	return file_quote_api_proto_rawDescData
}

var file_quote_api_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_quote_api_proto_msgTypes = make([]protoimpl.MessageInfo, 53)
var file_quote_api_proto_goTypes = []interface{}{
	(Command)(0),                              // 0: longbridgeapp.quote.v1.Command
	(TradeStatus)(0),                          // 1: longbridgeapp.quote.v1.TradeStatus
	(TradeSession)(0),                         // 2: longbridgeapp.quote.v1.TradeSession
	(AdjustType)(0),                           // 3: longbridgeapp.quote.v1.AdjustType
	(Period)(0),                               // 4: longbridgeapp.quote.v1.Period
	(SubType)(0),                              // 5: longbridgeapp.quote.v1.SubType
	(*SecurityRequest)(nil),                   // 6: longbridgeapp.quote.v1.SecurityRequest
	(*MultiSecurityRequest)(nil),              // 7: longbridgeapp.quote.v1.MultiSecurityRequest
	(*SecurityStaticInfoResponse)(nil),        // 8: longbridgeapp.quote.v1.SecurityStaticInfoResponse
	(*StaticInfo)(nil),                        // 9: longbridgeapp.quote.v1.StaticInfo
	(*SecurityQuoteResponse)(nil),             // 10: longbridgeapp.quote.v1.SecurityQuoteResponse
	(*SecurityQuote)(nil),                     // 11: longbridgeapp.quote.v1.SecurityQuote
	(*PrePostQuote)(nil),                      // 12: longbridgeapp.quote.v1.PrePostQuote
	(*OptionQuoteResponse)(nil),               // 13: longbridgeapp.quote.v1.OptionQuoteResponse
	(*OptionQuote)(nil),                       // 14: longbridgeapp.quote.v1.OptionQuote
	(*OptionExtend)(nil),                      // 15: longbridgeapp.quote.v1.OptionExtend
	(*WarrantQuoteResponse)(nil),              // 16: longbridgeapp.quote.v1.WarrantQuoteResponse
	(*WarrantQuote)(nil),                      // 17: longbridgeapp.quote.v1.WarrantQuote
	(*WarrantExtend)(nil),                     // 18: longbridgeapp.quote.v1.WarrantExtend
	(*SecurityDepthResponse)(nil),             // 19: longbridgeapp.quote.v1.SecurityDepthResponse
	(*Depth)(nil),                             // 20: longbridgeapp.quote.v1.Depth
	(*SecurityBrokersResponse)(nil),           // 21: longbridgeapp.quote.v1.SecurityBrokersResponse
	(*Brokers)(nil),                           // 22: longbridgeapp.quote.v1.Brokers
	(*ParticipantBrokerIdsResponse)(nil),      // 23: longbridgeapp.quote.v1.ParticipantBrokerIdsResponse
	(*ParticipantInfo)(nil),                   // 24: longbridgeapp.quote.v1.ParticipantInfo
	(*SecurityTradeRequest)(nil),              // 25: longbridgeapp.quote.v1.SecurityTradeRequest
	(*SecurityTradeResponse)(nil),             // 26: longbridgeapp.quote.v1.SecurityTradeResponse
	(*Trade)(nil),                             // 27: longbridgeapp.quote.v1.Trade
	(*SecurityIntradayRequest)(nil),           // 28: longbridgeapp.quote.v1.SecurityIntradayRequest
	(*SecurityIntradayResponse)(nil),          // 29: longbridgeapp.quote.v1.SecurityIntradayResponse
	(*Line)(nil),                              // 30: longbridgeapp.quote.v1.Line
	(*SecurityCandlestickRequest)(nil),        // 31: longbridgeapp.quote.v1.SecurityCandlestickRequest
	(*SecurityCandlestickResponse)(nil),       // 32: longbridgeapp.quote.v1.SecurityCandlestickResponse
	(*Candlestick)(nil),                       // 33: longbridgeapp.quote.v1.Candlestick
	(*OptionChainDateListResponse)(nil),       // 34: longbridgeapp.quote.v1.OptionChainDateListResponse
	(*OptionChainDateStrikeInfoRequest)(nil),  // 35: longbridgeapp.quote.v1.OptionChainDateStrikeInfoRequest
	(*OptionChainDateStrikeInfoResponse)(nil), // 36: longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse
	(*StrikePriceInfo)(nil),                   // 37: longbridgeapp.quote.v1.StrikePriceInfo
	(*IssuerInfoResponse)(nil),                // 38: longbridgeapp.quote.v1.IssuerInfoResponse
	(*IssuerInfo)(nil),                        // 39: longbridgeapp.quote.v1.IssuerInfo
	(*WarrantFilterListRequest)(nil),          // 40: longbridgeapp.quote.v1.WarrantFilterListRequest
	(*FilterConfig)(nil),                      // 41: longbridgeapp.quote.v1.FilterConfig
	(*WarrantFilterListResponse)(nil),         // 42: longbridgeapp.quote.v1.WarrantFilterListResponse
	(*FilterWarrant)(nil),                     // 43: longbridgeapp.quote.v1.FilterWarrant
	(*MarketTradePeriodResponse)(nil),         // 44: longbridgeapp.quote.v1.MarketTradePeriodResponse
	(*MarketTradePeriod)(nil),                 // 45: longbridgeapp.quote.v1.MarketTradePeriod
	(*TradePeriod)(nil),                       // 46: longbridgeapp.quote.v1.TradePeriod
	(*SubscriptionRequest)(nil),               // 47: longbridgeapp.quote.v1.SubscriptionRequest
	(*SubscriptionResponse)(nil),              // 48: longbridgeapp.quote.v1.SubscriptionResponse
	(*SubTypeList)(nil),                       // 49: longbridgeapp.quote.v1.SubTypeList
	(*SubscribeRequest)(nil),                  // 50: longbridgeapp.quote.v1.SubscribeRequest
	(*UnsubscribeRequest)(nil),                // 51: longbridgeapp.quote.v1.UnsubscribeRequest
	(*UnsubscribeResponse)(nil),               // 52: longbridgeapp.quote.v1.UnsubscribeResponse
	(*PushQuote)(nil),                         // 53: longbridgeapp.quote.v1.PushQuote
	(*PushDepth)(nil),                         // 54: longbridgeapp.quote.v1.PushDepth
	(*PushBrokers)(nil),                       // 55: longbridgeapp.quote.v1.PushBrokers
	(*PushTrade)(nil),                         // 56: longbridgeapp.quote.v1.PushTrade
	(*MarketTradeDayRequest)(nil),             // 57: longbridgeapp.quote.v1.MarketTradeDayRequest
	(*MarketTradeDayResponse)(nil),            // 58: longbridgeapp.quote.v1.MarketTradeDayResponse
}
var file_quote_api_proto_depIdxs = []int32{
	9,  // 0: longbridgeapp.quote.v1.SecurityStaticInfoResponse.secu_static_info:type_name -> longbridgeapp.quote.v1.StaticInfo
	11, // 1: longbridgeapp.quote.v1.SecurityQuoteResponse.secu_quote:type_name -> longbridgeapp.quote.v1.SecurityQuote
	1,  // 2: longbridgeapp.quote.v1.SecurityQuote.trade_status:type_name -> longbridgeapp.quote.v1.TradeStatus
	12, // 3: longbridgeapp.quote.v1.SecurityQuote.pre_market_quote:type_name -> longbridgeapp.quote.v1.PrePostQuote
	12, // 4: longbridgeapp.quote.v1.SecurityQuote.post_market_quote:type_name -> longbridgeapp.quote.v1.PrePostQuote
	14, // 5: longbridgeapp.quote.v1.OptionQuoteResponse.secu_quote:type_name -> longbridgeapp.quote.v1.OptionQuote
	1,  // 6: longbridgeapp.quote.v1.OptionQuote.trade_status:type_name -> longbridgeapp.quote.v1.TradeStatus
	15, // 7: longbridgeapp.quote.v1.OptionQuote.option_extend:type_name -> longbridgeapp.quote.v1.OptionExtend
	17, // 8: longbridgeapp.quote.v1.WarrantQuoteResponse.secu_quote:type_name -> longbridgeapp.quote.v1.WarrantQuote
	1,  // 9: longbridgeapp.quote.v1.WarrantQuote.trade_status:type_name -> longbridgeapp.quote.v1.TradeStatus
	18, // 10: longbridgeapp.quote.v1.WarrantQuote.warrant_extend:type_name -> longbridgeapp.quote.v1.WarrantExtend
	20, // 11: longbridgeapp.quote.v1.SecurityDepthResponse.ask:type_name -> longbridgeapp.quote.v1.Depth
	20, // 12: longbridgeapp.quote.v1.SecurityDepthResponse.bid:type_name -> longbridgeapp.quote.v1.Depth
	22, // 13: longbridgeapp.quote.v1.SecurityBrokersResponse.ask_brokers:type_name -> longbridgeapp.quote.v1.Brokers
	22, // 14: longbridgeapp.quote.v1.SecurityBrokersResponse.bid_brokers:type_name -> longbridgeapp.quote.v1.Brokers
	24, // 15: longbridgeapp.quote.v1.ParticipantBrokerIdsResponse.participant_broker_numbers:type_name -> longbridgeapp.quote.v1.ParticipantInfo
	27, // 16: longbridgeapp.quote.v1.SecurityTradeResponse.trades:type_name -> longbridgeapp.quote.v1.Trade
	2,  // 17: longbridgeapp.quote.v1.Trade.trade_session:type_name -> longbridgeapp.quote.v1.TradeSession
	30, // 18: longbridgeapp.quote.v1.SecurityIntradayResponse.lines:type_name -> longbridgeapp.quote.v1.Line
	4,  // 19: longbridgeapp.quote.v1.SecurityCandlestickRequest.period:type_name -> longbridgeapp.quote.v1.Period
	3,  // 20: longbridgeapp.quote.v1.SecurityCandlestickRequest.adjust_type:type_name -> longbridgeapp.quote.v1.AdjustType
	33, // 21: longbridgeapp.quote.v1.SecurityCandlestickResponse.candlesticks:type_name -> longbridgeapp.quote.v1.Candlestick
	37, // 22: longbridgeapp.quote.v1.OptionChainDateStrikeInfoResponse.strike_price_info:type_name -> longbridgeapp.quote.v1.StrikePriceInfo
	39, // 23: longbridgeapp.quote.v1.IssuerInfoResponse.issuer_info:type_name -> longbridgeapp.quote.v1.IssuerInfo
	41, // 24: longbridgeapp.quote.v1.WarrantFilterListRequest.filter_config:type_name -> longbridgeapp.quote.v1.FilterConfig
	43, // 25: longbridgeapp.quote.v1.WarrantFilterListResponse.warrant_list:type_name -> longbridgeapp.quote.v1.FilterWarrant
	45, // 26: longbridgeapp.quote.v1.MarketTradePeriodResponse.market_trade_session:type_name -> longbridgeapp.quote.v1.MarketTradePeriod
	46, // 27: longbridgeapp.quote.v1.MarketTradePeriod.trade_session:type_name -> longbridgeapp.quote.v1.TradePeriod
	2,  // 28: longbridgeapp.quote.v1.TradePeriod.trade_session:type_name -> longbridgeapp.quote.v1.TradeSession
	49, // 29: longbridgeapp.quote.v1.SubscriptionResponse.sub_list:type_name -> longbridgeapp.quote.v1.SubTypeList
	5,  // 30: longbridgeapp.quote.v1.SubTypeList.sub_type:type_name -> longbridgeapp.quote.v1.SubType
	5,  // 31: longbridgeapp.quote.v1.SubscribeRequest.sub_type:type_name -> longbridgeapp.quote.v1.SubType
	5,  // 32: longbridgeapp.quote.v1.UnsubscribeRequest.sub_type:type_name -> longbridgeapp.quote.v1.SubType
	1,  // 33: longbridgeapp.quote.v1.PushQuote.trade_status:type_name -> longbridgeapp.quote.v1.TradeStatus
	2,  // 34: longbridgeapp.quote.v1.PushQuote.trade_session:type_name -> longbridgeapp.quote.v1.TradeSession
	20, // 35: longbridgeapp.quote.v1.PushDepth.ask:type_name -> longbridgeapp.quote.v1.Depth
	20, // 36: longbridgeapp.quote.v1.PushDepth.bid:type_name -> longbridgeapp.quote.v1.Depth
	22, // 37: longbridgeapp.quote.v1.PushBrokers.ask_brokers:type_name -> longbridgeapp.quote.v1.Brokers
	22, // 38: longbridgeapp.quote.v1.PushBrokers.bid_brokers:type_name -> longbridgeapp.quote.v1.Brokers
	27, // 39: longbridgeapp.quote.v1.PushTrade.trade:type_name -> longbridgeapp.quote.v1.Trade
	40, // [40:40] is the sub-list for method output_type
	40, // [40:40] is the sub-list for method input_type
	40, // [40:40] is the sub-list for extension type_name
	40, // [40:40] is the sub-list for extension extendee
	0,  // [0:40] is the sub-list for field type_name
}

func init() { file_quote_api_proto_init() }
func file_quote_api_proto_init() {
	if File_quote_api_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_quote_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiSecurityRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityStaticInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StaticInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrePostQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionExtend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantQuoteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantExtend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityDepthResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Depth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityBrokersResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Brokers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParticipantBrokerIdsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ParticipantInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityTradeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityTradeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Trade); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityIntradayRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityIntradayResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Line); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCandlestickRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SecurityCandlestickResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Candlestick); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionChainDateListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionChainDateStrikeInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OptionChainDateStrikeInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StrikePriceInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IssuerInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IssuerInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantFilterListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FilterConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WarrantFilterListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FilterWarrant); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradePeriodResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradePeriod); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TradePeriod); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubTypeList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscribeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnsubscribeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UnsubscribeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushQuote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushDepth); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushBrokers); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PushTrade); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradeDayRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_quote_api_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MarketTradeDayResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_quote_api_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   53,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_quote_api_proto_goTypes,
		DependencyIndexes: file_quote_api_proto_depIdxs,
		EnumInfos:         file_quote_api_proto_enumTypes,
		MessageInfos:      file_quote_api_proto_msgTypes,
	}.Build()
	File_quote_api_proto = out.File
	file_quote_api_proto_rawDesc = nil
	file_quote_api_proto_goTypes = nil
	file_quote_api_proto_depIdxs = nil
}
