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

package btrpc

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	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)
)

// struct definitions
type StrategySettings struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name                            string            `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	UseSimultaneousSignalProcessing bool              `protobuf:"varint,2,opt,name=use_simultaneous_signal_processing,json=useSimultaneousSignalProcessing,proto3" json:"use_simultaneous_signal_processing,omitempty"`
	DisableUsdTracking              bool              `protobuf:"varint,3,opt,name=disable_usd_tracking,json=disableUsdTracking,proto3" json:"disable_usd_tracking,omitempty"`
	CustomSettings                  []*CustomSettings `protobuf:"bytes,4,rep,name=custom_settings,json=customSettings,proto3" json:"custom_settings,omitempty"`
}

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

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

func (*StrategySettings) ProtoMessage() {}

func (x *StrategySettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StrategySettings.ProtoReflect.Descriptor instead.
func (*StrategySettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{0}
}

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

func (x *StrategySettings) GetUseSimultaneousSignalProcessing() bool {
	if x != nil {
		return x.UseSimultaneousSignalProcessing
	}
	return false
}

func (x *StrategySettings) GetDisableUsdTracking() bool {
	if x != nil {
		return x.DisableUsdTracking
	}
	return false
}

func (x *StrategySettings) GetCustomSettings() []*CustomSettings {
	if x != nil {
		return x.CustomSettings
	}
	return nil
}

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

	KeyField string `protobuf:"bytes,1,opt,name=key_field,json=keyField,proto3" json:"key_field,omitempty"`
	KeyValue string `protobuf:"bytes,2,opt,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"`
}

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

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

func (*CustomSettings) ProtoMessage() {}

func (x *CustomSettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 CustomSettings.ProtoReflect.Descriptor instead.
func (*CustomSettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{1}
}

func (x *CustomSettings) GetKeyField() string {
	if x != nil {
		return x.KeyField
	}
	return ""
}

func (x *CustomSettings) GetKeyValue() string {
	if x != nil {
		return x.KeyValue
	}
	return ""
}

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

	ExchangeName string `protobuf:"bytes,1,opt,name=exchange_name,json=exchangeName,proto3" json:"exchange_name,omitempty"`
	Asset        string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"`
	Currency     string `protobuf:"bytes,3,opt,name=currency,proto3" json:"currency,omitempty"`
	InitialFunds string `protobuf:"bytes,4,opt,name=initial_funds,json=initialFunds,proto3" json:"initial_funds,omitempty"`
	TransferFee  string `protobuf:"bytes,5,opt,name=transfer_fee,json=transferFee,proto3" json:"transfer_fee,omitempty"`
}

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

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

func (*ExchangeLevelFunding) ProtoMessage() {}

func (x *ExchangeLevelFunding) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ExchangeLevelFunding.ProtoReflect.Descriptor instead.
func (*ExchangeLevelFunding) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{2}
}

func (x *ExchangeLevelFunding) GetExchangeName() string {
	if x != nil {
		return x.ExchangeName
	}
	return ""
}

func (x *ExchangeLevelFunding) GetAsset() string {
	if x != nil {
		return x.Asset
	}
	return ""
}

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

func (x *ExchangeLevelFunding) GetInitialFunds() string {
	if x != nil {
		return x.InitialFunds
	}
	return ""
}

func (x *ExchangeLevelFunding) GetTransferFee() string {
	if x != nil {
		return x.TransferFee
	}
	return ""
}

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

	UseExchangeLevelFunding bool                    `protobuf:"varint,1,opt,name=use_exchange_level_funding,json=useExchangeLevelFunding,proto3" json:"use_exchange_level_funding,omitempty"`
	ExchangeLevelFunding    []*ExchangeLevelFunding `protobuf:"bytes,2,rep,name=exchange_level_funding,json=exchangeLevelFunding,proto3" json:"exchange_level_funding,omitempty"`
}

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

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

func (*FundingSettings) ProtoMessage() {}

func (x *FundingSettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 FundingSettings.ProtoReflect.Descriptor instead.
func (*FundingSettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{3}
}

func (x *FundingSettings) GetUseExchangeLevelFunding() bool {
	if x != nil {
		return x.UseExchangeLevelFunding
	}
	return false
}

func (x *FundingSettings) GetExchangeLevelFunding() []*ExchangeLevelFunding {
	if x != nil {
		return x.ExchangeLevelFunding
	}
	return nil
}

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

	MinimumSize  string `protobuf:"bytes,1,opt,name=minimum_size,json=minimumSize,proto3" json:"minimum_size,omitempty"`
	MaximumSize  string `protobuf:"bytes,2,opt,name=maximum_size,json=maximumSize,proto3" json:"maximum_size,omitempty"`
	MaximumTotal string `protobuf:"bytes,3,opt,name=maximum_total,json=maximumTotal,proto3" json:"maximum_total,omitempty"`
}

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

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

func (*PurchaseSide) ProtoMessage() {}

func (x *PurchaseSide) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 PurchaseSide.ProtoReflect.Descriptor instead.
func (*PurchaseSide) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{4}
}

func (x *PurchaseSide) GetMinimumSize() string {
	if x != nil {
		return x.MinimumSize
	}
	return ""
}

func (x *PurchaseSide) GetMaximumSize() string {
	if x != nil {
		return x.MaximumSize
	}
	return ""
}

func (x *PurchaseSide) GetMaximumTotal() string {
	if x != nil {
		return x.MaximumTotal
	}
	return ""
}

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

	InitialBaseFunds  string `protobuf:"bytes,1,opt,name=initial_base_funds,json=initialBaseFunds,proto3" json:"initial_base_funds,omitempty"`
	InitialQuoteFunds string `protobuf:"bytes,2,opt,name=initial_quote_funds,json=initialQuoteFunds,proto3" json:"initial_quote_funds,omitempty"`
}

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

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

func (*SpotDetails) ProtoMessage() {}

func (x *SpotDetails) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 SpotDetails.ProtoReflect.Descriptor instead.
func (*SpotDetails) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{5}
}

func (x *SpotDetails) GetInitialBaseFunds() string {
	if x != nil {
		return x.InitialBaseFunds
	}
	return ""
}

func (x *SpotDetails) GetInitialQuoteFunds() string {
	if x != nil {
		return x.InitialQuoteFunds
	}
	return ""
}

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

	Leverage *Leverage `protobuf:"bytes,1,opt,name=leverage,proto3" json:"leverage,omitempty"`
}

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

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

func (*FuturesDetails) ProtoMessage() {}

func (x *FuturesDetails) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 FuturesDetails.ProtoReflect.Descriptor instead.
func (*FuturesDetails) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{6}
}

func (x *FuturesDetails) GetLeverage() *Leverage {
	if x != nil {
		return x.Leverage
	}
	return nil
}

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

	ExchangeName              string          `protobuf:"bytes,1,opt,name=exchange_name,json=exchangeName,proto3" json:"exchange_name,omitempty"`
	Asset                     string          `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"`
	Base                      string          `protobuf:"bytes,3,opt,name=base,proto3" json:"base,omitempty"`
	Quote                     string          `protobuf:"bytes,4,opt,name=quote,proto3" json:"quote,omitempty"`
	BuySide                   *PurchaseSide   `protobuf:"bytes,5,opt,name=buy_side,json=buySide,proto3" json:"buy_side,omitempty"`
	SellSide                  *PurchaseSide   `protobuf:"bytes,6,opt,name=sell_side,json=sellSide,proto3" json:"sell_side,omitempty"`
	MinSlippagePercent        string          `protobuf:"bytes,7,opt,name=min_slippage_percent,json=minSlippagePercent,proto3" json:"min_slippage_percent,omitempty"`
	MaxSlippagePercent        string          `protobuf:"bytes,8,opt,name=max_slippage_percent,json=maxSlippagePercent,proto3" json:"max_slippage_percent,omitempty"`
	MakerFeeOverride          string          `protobuf:"bytes,9,opt,name=maker_fee_override,json=makerFeeOverride,proto3" json:"maker_fee_override,omitempty"`
	TakerFeeOverride          string          `protobuf:"bytes,10,opt,name=taker_fee_override,json=takerFeeOverride,proto3" json:"taker_fee_override,omitempty"`
	MaximumHoldingsRatio      string          `protobuf:"bytes,11,opt,name=maximum_holdings_ratio,json=maximumHoldingsRatio,proto3" json:"maximum_holdings_ratio,omitempty"`
	SkipCandleVolumeFitting   bool            `protobuf:"varint,12,opt,name=skip_candle_volume_fitting,json=skipCandleVolumeFitting,proto3" json:"skip_candle_volume_fitting,omitempty"`
	UseExchangeOrderLimits    bool            `protobuf:"varint,13,opt,name=use_exchange_order_limits,json=useExchangeOrderLimits,proto3" json:"use_exchange_order_limits,omitempty"`
	UseExchangePnlCalculation bool            `protobuf:"varint,14,opt,name=use_exchange_pnl_calculation,json=useExchangePnlCalculation,proto3" json:"use_exchange_pnl_calculation,omitempty"`
	SpotDetails               *SpotDetails    `protobuf:"bytes,15,opt,name=spot_details,json=spotDetails,proto3" json:"spot_details,omitempty"`
	FuturesDetails            *FuturesDetails `protobuf:"bytes,16,opt,name=futures_details,json=futuresDetails,proto3" json:"futures_details,omitempty"`
}

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

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

func (*CurrencySettings) ProtoMessage() {}

func (x *CurrencySettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 CurrencySettings.ProtoReflect.Descriptor instead.
func (*CurrencySettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{7}
}

func (x *CurrencySettings) GetExchangeName() string {
	if x != nil {
		return x.ExchangeName
	}
	return ""
}

func (x *CurrencySettings) GetAsset() string {
	if x != nil {
		return x.Asset
	}
	return ""
}

func (x *CurrencySettings) GetBase() string {
	if x != nil {
		return x.Base
	}
	return ""
}

func (x *CurrencySettings) GetQuote() string {
	if x != nil {
		return x.Quote
	}
	return ""
}

func (x *CurrencySettings) GetBuySide() *PurchaseSide {
	if x != nil {
		return x.BuySide
	}
	return nil
}

func (x *CurrencySettings) GetSellSide() *PurchaseSide {
	if x != nil {
		return x.SellSide
	}
	return nil
}

func (x *CurrencySettings) GetMinSlippagePercent() string {
	if x != nil {
		return x.MinSlippagePercent
	}
	return ""
}

func (x *CurrencySettings) GetMaxSlippagePercent() string {
	if x != nil {
		return x.MaxSlippagePercent
	}
	return ""
}

func (x *CurrencySettings) GetMakerFeeOverride() string {
	if x != nil {
		return x.MakerFeeOverride
	}
	return ""
}

func (x *CurrencySettings) GetTakerFeeOverride() string {
	if x != nil {
		return x.TakerFeeOverride
	}
	return ""
}

func (x *CurrencySettings) GetMaximumHoldingsRatio() string {
	if x != nil {
		return x.MaximumHoldingsRatio
	}
	return ""
}

func (x *CurrencySettings) GetSkipCandleVolumeFitting() bool {
	if x != nil {
		return x.SkipCandleVolumeFitting
	}
	return false
}

func (x *CurrencySettings) GetUseExchangeOrderLimits() bool {
	if x != nil {
		return x.UseExchangeOrderLimits
	}
	return false
}

func (x *CurrencySettings) GetUseExchangePnlCalculation() bool {
	if x != nil {
		return x.UseExchangePnlCalculation
	}
	return false
}

func (x *CurrencySettings) GetSpotDetails() *SpotDetails {
	if x != nil {
		return x.SpotDetails
	}
	return nil
}

func (x *CurrencySettings) GetFuturesDetails() *FuturesDetails {
	if x != nil {
		return x.FuturesDetails
	}
	return nil
}

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

	StartDate        *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	EndDate          *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	InclusiveEndDate bool                   `protobuf:"varint,3,opt,name=inclusive_end_date,json=inclusiveEndDate,proto3" json:"inclusive_end_date,omitempty"`
}

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

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

func (*ApiData) ProtoMessage() {}

func (x *ApiData) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ApiData.ProtoReflect.Descriptor instead.
func (*ApiData) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{8}
}

func (x *ApiData) GetStartDate() *timestamppb.Timestamp {
	if x != nil {
		return x.StartDate
	}
	return nil
}

func (x *ApiData) GetEndDate() *timestamppb.Timestamp {
	if x != nil {
		return x.EndDate
	}
	return nil
}

func (x *ApiData) GetInclusiveEndDate() bool {
	if x != nil {
		return x.InclusiveEndDate
	}
	return false
}

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

	Enabled  bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Verbose  bool   `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"`
	Driver   string `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"`
	Host     string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
	Port     uint32 `protobuf:"varint,5,opt,name=port,proto3" json:"port,omitempty"`
	Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"`
	Password string `protobuf:"bytes,7,opt,name=password,proto3" json:"password,omitempty"`
	Database string `protobuf:"bytes,8,opt,name=database,proto3" json:"database,omitempty"`
	SslMode  string `protobuf:"bytes,9,opt,name=ssl_mode,json=sslMode,proto3" json:"ssl_mode,omitempty"`
}

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

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

func (*DbConfig) ProtoMessage() {}

func (x *DbConfig) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 DbConfig.ProtoReflect.Descriptor instead.
func (*DbConfig) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{9}
}

func (x *DbConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *DbConfig) GetVerbose() bool {
	if x != nil {
		return x.Verbose
	}
	return false
}

func (x *DbConfig) GetDriver() string {
	if x != nil {
		return x.Driver
	}
	return ""
}

func (x *DbConfig) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *DbConfig) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *DbConfig) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *DbConfig) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *DbConfig) GetDatabase() string {
	if x != nil {
		return x.Database
	}
	return ""
}

func (x *DbConfig) GetSslMode() string {
	if x != nil {
		return x.SslMode
	}
	return ""
}

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

	StartDate        *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	EndDate          *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	Config           *DbConfig              `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
	Path             string                 `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	InclusiveEndDate bool                   `protobuf:"varint,5,opt,name=inclusive_end_date,json=inclusiveEndDate,proto3" json:"inclusive_end_date,omitempty"`
}

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

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

func (*DbData) ProtoMessage() {}

func (x *DbData) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 DbData.ProtoReflect.Descriptor instead.
func (*DbData) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{10}
}

func (x *DbData) GetStartDate() *timestamppb.Timestamp {
	if x != nil {
		return x.StartDate
	}
	return nil
}

func (x *DbData) GetEndDate() *timestamppb.Timestamp {
	if x != nil {
		return x.EndDate
	}
	return nil
}

func (x *DbData) GetConfig() *DbConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *DbData) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *DbData) GetInclusiveEndDate() bool {
	if x != nil {
		return x.InclusiveEndDate
	}
	return false
}

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

	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

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

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

func (*CsvData) ProtoMessage() {}

func (x *CsvData) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 CsvData.ProtoReflect.Descriptor instead.
func (*CsvData) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{11}
}

func (x *CsvData) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

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

	Host     string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
	Port     uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	UserName string `protobuf:"bytes,3,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"`
	Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"`
	Database string `protobuf:"bytes,5,opt,name=database,proto3" json:"database,omitempty"`
	SslMode  string `protobuf:"bytes,6,opt,name=ssl_mode,json=sslMode,proto3" json:"ssl_mode,omitempty"`
}

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

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

func (*DatabaseConnectionDetails) ProtoMessage() {}

func (x *DatabaseConnectionDetails) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 DatabaseConnectionDetails.ProtoReflect.Descriptor instead.
func (*DatabaseConnectionDetails) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{12}
}

func (x *DatabaseConnectionDetails) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *DatabaseConnectionDetails) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *DatabaseConnectionDetails) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *DatabaseConnectionDetails) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

func (x *DatabaseConnectionDetails) GetDatabase() string {
	if x != nil {
		return x.Database
	}
	return ""
}

func (x *DatabaseConnectionDetails) GetSslMode() string {
	if x != nil {
		return x.SslMode
	}
	return ""
}

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

	Enabled bool                       `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Verbose bool                       `protobuf:"varint,2,opt,name=verbose,proto3" json:"verbose,omitempty"`
	Driver  string                     `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"`
	Config  *DatabaseConnectionDetails `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
}

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

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

func (*DatabaseConfig) ProtoMessage() {}

func (x *DatabaseConfig) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 DatabaseConfig.ProtoReflect.Descriptor instead.
func (*DatabaseConfig) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{13}
}

func (x *DatabaseConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *DatabaseConfig) GetVerbose() bool {
	if x != nil {
		return x.Verbose
	}
	return false
}

func (x *DatabaseConfig) GetDriver() string {
	if x != nil {
		return x.Driver
	}
	return ""
}

func (x *DatabaseConfig) GetConfig() *DatabaseConnectionDetails {
	if x != nil {
		return x.Config
	}
	return nil
}

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

	StartDate        *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	EndDate          *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	Config           *DatabaseConfig        `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
	Path             string                 `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"`
	InclusiveEndDate bool                   `protobuf:"varint,5,opt,name=inclusive_end_date,json=inclusiveEndDate,proto3" json:"inclusive_end_date,omitempty"`
}

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

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

func (*DatabaseData) ProtoMessage() {}

func (x *DatabaseData) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 DatabaseData.ProtoReflect.Descriptor instead.
func (*DatabaseData) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{14}
}

func (x *DatabaseData) GetStartDate() *timestamppb.Timestamp {
	if x != nil {
		return x.StartDate
	}
	return nil
}

func (x *DatabaseData) GetEndDate() *timestamppb.Timestamp {
	if x != nil {
		return x.EndDate
	}
	return nil
}

func (x *DatabaseData) GetConfig() *DatabaseConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *DatabaseData) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *DatabaseData) GetInclusiveEndDate() bool {
	if x != nil {
		return x.InclusiveEndDate
	}
	return false
}

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

	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

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

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

func (*CSVData) ProtoMessage() {}

func (x *CSVData) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 CSVData.ProtoReflect.Descriptor instead.
func (*CSVData) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{15}
}

func (x *CSVData) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

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

	NewEventTimeout           int64          `protobuf:"varint,1,opt,name=new_event_timeout,json=newEventTimeout,proto3" json:"new_event_timeout,omitempty"`
	DataCheckTimer            int64          `protobuf:"varint,2,opt,name=data_check_timer,json=dataCheckTimer,proto3" json:"data_check_timer,omitempty"`
	RealOrders                bool           `protobuf:"varint,3,opt,name=real_orders,json=realOrders,proto3" json:"real_orders,omitempty"`
	ClosePositionsOnStop      bool           `protobuf:"varint,4,opt,name=close_positions_on_stop,json=closePositionsOnStop,proto3" json:"close_positions_on_stop,omitempty"`
	DataRequestRetryTolerance int64          `protobuf:"varint,5,opt,name=data_request_retry_tolerance,json=dataRequestRetryTolerance,proto3" json:"data_request_retry_tolerance,omitempty"`
	DataRequestRetryWaitTime  int64          `protobuf:"varint,6,opt,name=data_request_retry_wait_time,json=dataRequestRetryWaitTime,proto3" json:"data_request_retry_wait_time,omitempty"`
	UseRealOrders             bool           `protobuf:"varint,7,opt,name=use_real_orders,json=useRealOrders,proto3" json:"use_real_orders,omitempty"`
	Credentials               []*Credentials `protobuf:"bytes,8,rep,name=credentials,proto3" json:"credentials,omitempty"`
}

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

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

func (*LiveData) ProtoMessage() {}

func (x *LiveData) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 LiveData.ProtoReflect.Descriptor instead.
func (*LiveData) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{16}
}

func (x *LiveData) GetNewEventTimeout() int64 {
	if x != nil {
		return x.NewEventTimeout
	}
	return 0
}

func (x *LiveData) GetDataCheckTimer() int64 {
	if x != nil {
		return x.DataCheckTimer
	}
	return 0
}

func (x *LiveData) GetRealOrders() bool {
	if x != nil {
		return x.RealOrders
	}
	return false
}

func (x *LiveData) GetClosePositionsOnStop() bool {
	if x != nil {
		return x.ClosePositionsOnStop
	}
	return false
}

func (x *LiveData) GetDataRequestRetryTolerance() int64 {
	if x != nil {
		return x.DataRequestRetryTolerance
	}
	return 0
}

func (x *LiveData) GetDataRequestRetryWaitTime() int64 {
	if x != nil {
		return x.DataRequestRetryWaitTime
	}
	return 0
}

func (x *LiveData) GetUseRealOrders() bool {
	if x != nil {
		return x.UseRealOrders
	}
	return false
}

func (x *LiveData) GetCredentials() []*Credentials {
	if x != nil {
		return x.Credentials
	}
	return nil
}

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

	Exchange string               `protobuf:"bytes,1,opt,name=exchange,proto3" json:"exchange,omitempty"`
	Keys     *ExchangeCredentials `protobuf:"bytes,2,opt,name=keys,proto3" json:"keys,omitempty"`
}

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

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

func (*Credentials) ProtoMessage() {}

func (x *Credentials) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 Credentials.ProtoReflect.Descriptor instead.
func (*Credentials) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{17}
}

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

func (x *Credentials) GetKeys() *ExchangeCredentials {
	if x != nil {
		return x.Keys
	}
	return nil
}

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

	Key             string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Secret          string `protobuf:"bytes,2,opt,name=secret,proto3" json:"secret,omitempty"`
	ClientId        string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	PemKey          string `protobuf:"bytes,4,opt,name=pem_key,json=pemKey,proto3" json:"pem_key,omitempty"`
	SubAccount      string `protobuf:"bytes,5,opt,name=sub_account,json=subAccount,proto3" json:"sub_account,omitempty"`
	OneTimePassword string `protobuf:"bytes,6,opt,name=one_time_password,json=oneTimePassword,proto3" json:"one_time_password,omitempty"`
}

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

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

func (*ExchangeCredentials) ProtoMessage() {}

func (x *ExchangeCredentials) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ExchangeCredentials.ProtoReflect.Descriptor instead.
func (*ExchangeCredentials) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{18}
}

func (x *ExchangeCredentials) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *ExchangeCredentials) GetSecret() string {
	if x != nil {
		return x.Secret
	}
	return ""
}

func (x *ExchangeCredentials) GetClientId() string {
	if x != nil {
		return x.ClientId
	}
	return ""
}

func (x *ExchangeCredentials) GetPemKey() string {
	if x != nil {
		return x.PemKey
	}
	return ""
}

func (x *ExchangeCredentials) GetSubAccount() string {
	if x != nil {
		return x.SubAccount
	}
	return ""
}

func (x *ExchangeCredentials) GetOneTimePassword() string {
	if x != nil {
		return x.OneTimePassword
	}
	return ""
}

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

	Interval     uint64        `protobuf:"varint,1,opt,name=interval,proto3" json:"interval,omitempty"`
	Datatype     string        `protobuf:"bytes,2,opt,name=datatype,proto3" json:"datatype,omitempty"`
	ApiData      *ApiData      `protobuf:"bytes,3,opt,name=api_data,json=apiData,proto3" json:"api_data,omitempty"`
	DatabaseData *DatabaseData `protobuf:"bytes,4,opt,name=database_data,json=databaseData,proto3" json:"database_data,omitempty"`
	CsvData      *CSVData      `protobuf:"bytes,5,opt,name=csv_data,json=csvData,proto3" json:"csv_data,omitempty"`
	LiveData     *LiveData     `protobuf:"bytes,6,opt,name=live_data,json=liveData,proto3" json:"live_data,omitempty"`
}

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

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

func (*DataSettings) ProtoMessage() {}

func (x *DataSettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 DataSettings.ProtoReflect.Descriptor instead.
func (*DataSettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{19}
}

func (x *DataSettings) GetInterval() uint64 {
	if x != nil {
		return x.Interval
	}
	return 0
}

func (x *DataSettings) GetDatatype() string {
	if x != nil {
		return x.Datatype
	}
	return ""
}

func (x *DataSettings) GetApiData() *ApiData {
	if x != nil {
		return x.ApiData
	}
	return nil
}

func (x *DataSettings) GetDatabaseData() *DatabaseData {
	if x != nil {
		return x.DatabaseData
	}
	return nil
}

func (x *DataSettings) GetCsvData() *CSVData {
	if x != nil {
		return x.CsvData
	}
	return nil
}

func (x *DataSettings) GetLiveData() *LiveData {
	if x != nil {
		return x.LiveData
	}
	return nil
}

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

	CanUseLeverage                 bool   `protobuf:"varint,1,opt,name=can_use_leverage,json=canUseLeverage,proto3" json:"can_use_leverage,omitempty"`
	MaximumOrdersWithLeverageRatio string `protobuf:"bytes,2,opt,name=maximum_orders_with_leverage_ratio,json=maximumOrdersWithLeverageRatio,proto3" json:"maximum_orders_with_leverage_ratio,omitempty"`
	MaximumLeverageRate            string `protobuf:"bytes,3,opt,name=maximum_leverage_rate,json=maximumLeverageRate,proto3" json:"maximum_leverage_rate,omitempty"`
	MaximumCollateralLeverageRate  string `protobuf:"bytes,4,opt,name=maximum_collateral_leverage_rate,json=maximumCollateralLeverageRate,proto3" json:"maximum_collateral_leverage_rate,omitempty"`
}

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

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

func (*Leverage) ProtoMessage() {}

func (x *Leverage) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 Leverage.ProtoReflect.Descriptor instead.
func (*Leverage) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{20}
}

func (x *Leverage) GetCanUseLeverage() bool {
	if x != nil {
		return x.CanUseLeverage
	}
	return false
}

func (x *Leverage) GetMaximumOrdersWithLeverageRatio() string {
	if x != nil {
		return x.MaximumOrdersWithLeverageRatio
	}
	return ""
}

func (x *Leverage) GetMaximumLeverageRate() string {
	if x != nil {
		return x.MaximumLeverageRate
	}
	return ""
}

func (x *Leverage) GetMaximumCollateralLeverageRate() string {
	if x != nil {
		return x.MaximumCollateralLeverageRate
	}
	return ""
}

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

	Leverage *Leverage     `protobuf:"bytes,1,opt,name=leverage,proto3" json:"leverage,omitempty"`
	BuySide  *PurchaseSide `protobuf:"bytes,2,opt,name=buy_side,json=buySide,proto3" json:"buy_side,omitempty"`
	SellSide *PurchaseSide `protobuf:"bytes,3,opt,name=sell_side,json=sellSide,proto3" json:"sell_side,omitempty"`
}

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

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

func (*PortfolioSettings) ProtoMessage() {}

func (x *PortfolioSettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 PortfolioSettings.ProtoReflect.Descriptor instead.
func (*PortfolioSettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{21}
}

func (x *PortfolioSettings) GetLeverage() *Leverage {
	if x != nil {
		return x.Leverage
	}
	return nil
}

func (x *PortfolioSettings) GetBuySide() *PurchaseSide {
	if x != nil {
		return x.BuySide
	}
	return nil
}

func (x *PortfolioSettings) GetSellSide() *PurchaseSide {
	if x != nil {
		return x.SellSide
	}
	return nil
}

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

	RiskFreeRate string `protobuf:"bytes,1,opt,name=risk_free_rate,json=riskFreeRate,proto3" json:"risk_free_rate,omitempty"`
}

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

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

func (*StatisticSettings) ProtoMessage() {}

func (x *StatisticSettings) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StatisticSettings.ProtoReflect.Descriptor instead.
func (*StatisticSettings) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{22}
}

func (x *StatisticSettings) GetRiskFreeRate() string {
	if x != nil {
		return x.RiskFreeRate
	}
	return ""
}

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

	Nickname          string              `protobuf:"bytes,1,opt,name=nickname,proto3" json:"nickname,omitempty"`
	Goal              string              `protobuf:"bytes,2,opt,name=goal,proto3" json:"goal,omitempty"`
	StrategySettings  *StrategySettings   `protobuf:"bytes,3,opt,name=strategy_settings,json=strategySettings,proto3" json:"strategy_settings,omitempty"`
	FundingSettings   *FundingSettings    `protobuf:"bytes,4,opt,name=funding_settings,json=fundingSettings,proto3" json:"funding_settings,omitempty"`
	CurrencySettings  []*CurrencySettings `protobuf:"bytes,5,rep,name=currency_settings,json=currencySettings,proto3" json:"currency_settings,omitempty"`
	DataSettings      *DataSettings       `protobuf:"bytes,6,opt,name=data_settings,json=dataSettings,proto3" json:"data_settings,omitempty"`
	PortfolioSettings *PortfolioSettings  `protobuf:"bytes,7,opt,name=portfolio_settings,json=portfolioSettings,proto3" json:"portfolio_settings,omitempty"`
	StatisticSettings *StatisticSettings  `protobuf:"bytes,8,opt,name=statistic_settings,json=statisticSettings,proto3" json:"statistic_settings,omitempty"`
}

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

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

func (*Config) ProtoMessage() {}

func (x *Config) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 Config.ProtoReflect.Descriptor instead.
func (*Config) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{23}
}

func (x *Config) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *Config) GetGoal() string {
	if x != nil {
		return x.Goal
	}
	return ""
}

func (x *Config) GetStrategySettings() *StrategySettings {
	if x != nil {
		return x.StrategySettings
	}
	return nil
}

func (x *Config) GetFundingSettings() *FundingSettings {
	if x != nil {
		return x.FundingSettings
	}
	return nil
}

func (x *Config) GetCurrencySettings() []*CurrencySettings {
	if x != nil {
		return x.CurrencySettings
	}
	return nil
}

func (x *Config) GetDataSettings() *DataSettings {
	if x != nil {
		return x.DataSettings
	}
	return nil
}

func (x *Config) GetPortfolioSettings() *PortfolioSettings {
	if x != nil {
		return x.PortfolioSettings
	}
	return nil
}

func (x *Config) GetStatisticSettings() *StatisticSettings {
	if x != nil {
		return x.StatisticSettings
	}
	return nil
}

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

	Id           string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	StrategyName string `protobuf:"bytes,2,opt,name=strategy_name,json=strategyName,proto3" json:"strategy_name,omitempty"`
	DateLoaded   string `protobuf:"bytes,3,opt,name=date_loaded,json=dateLoaded,proto3" json:"date_loaded,omitempty"`
	DateStarted  string `protobuf:"bytes,4,opt,name=date_started,json=dateStarted,proto3" json:"date_started,omitempty"`
	DateEnded    string `protobuf:"bytes,5,opt,name=date_ended,json=dateEnded,proto3" json:"date_ended,omitempty"`
	Closed       bool   `protobuf:"varint,6,opt,name=closed,proto3" json:"closed,omitempty"`
	LiveTesting  bool   `protobuf:"varint,7,opt,name=live_testing,json=liveTesting,proto3" json:"live_testing,omitempty"`
	RealOrders   bool   `protobuf:"varint,8,opt,name=real_orders,json=realOrders,proto3" json:"real_orders,omitempty"`
}

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

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

func (*TaskSummary) ProtoMessage() {}

func (x *TaskSummary) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 TaskSummary.ProtoReflect.Descriptor instead.
func (*TaskSummary) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{24}
}

func (x *TaskSummary) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *TaskSummary) GetStrategyName() string {
	if x != nil {
		return x.StrategyName
	}
	return ""
}

func (x *TaskSummary) GetDateLoaded() string {
	if x != nil {
		return x.DateLoaded
	}
	return ""
}

func (x *TaskSummary) GetDateStarted() string {
	if x != nil {
		return x.DateStarted
	}
	return ""
}

func (x *TaskSummary) GetDateEnded() string {
	if x != nil {
		return x.DateEnded
	}
	return ""
}

func (x *TaskSummary) GetClosed() bool {
	if x != nil {
		return x.Closed
	}
	return false
}

func (x *TaskSummary) GetLiveTesting() bool {
	if x != nil {
		return x.LiveTesting
	}
	return false
}

func (x *TaskSummary) GetRealOrders() bool {
	if x != nil {
		return x.RealOrders
	}
	return false
}

// Requests and responses
type ExecuteStrategyFromFileRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StrategyFilePath    string                 `protobuf:"bytes,1,opt,name=strategy_file_path,json=strategyFilePath,proto3" json:"strategy_file_path,omitempty"`
	DoNotRunImmediately bool                   `protobuf:"varint,2,opt,name=do_not_run_immediately,json=doNotRunImmediately,proto3" json:"do_not_run_immediately,omitempty"`
	DoNotStore          bool                   `protobuf:"varint,3,opt,name=do_not_store,json=doNotStore,proto3" json:"do_not_store,omitempty"`
	StartTimeOverride   *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time_override,json=startTimeOverride,proto3" json:"start_time_override,omitempty"`
	EndTimeOverride     *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end_time_override,json=endTimeOverride,proto3" json:"end_time_override,omitempty"`
	IntervalOverride    uint64                 `protobuf:"varint,6,opt,name=interval_override,json=intervalOverride,proto3" json:"interval_override,omitempty"`
}

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

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

func (*ExecuteStrategyFromFileRequest) ProtoMessage() {}

func (x *ExecuteStrategyFromFileRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ExecuteStrategyFromFileRequest.ProtoReflect.Descriptor instead.
func (*ExecuteStrategyFromFileRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{25}
}

func (x *ExecuteStrategyFromFileRequest) GetStrategyFilePath() string {
	if x != nil {
		return x.StrategyFilePath
	}
	return ""
}

func (x *ExecuteStrategyFromFileRequest) GetDoNotRunImmediately() bool {
	if x != nil {
		return x.DoNotRunImmediately
	}
	return false
}

func (x *ExecuteStrategyFromFileRequest) GetDoNotStore() bool {
	if x != nil {
		return x.DoNotStore
	}
	return false
}

func (x *ExecuteStrategyFromFileRequest) GetStartTimeOverride() *timestamppb.Timestamp {
	if x != nil {
		return x.StartTimeOverride
	}
	return nil
}

func (x *ExecuteStrategyFromFileRequest) GetEndTimeOverride() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTimeOverride
	}
	return nil
}

func (x *ExecuteStrategyFromFileRequest) GetIntervalOverride() uint64 {
	if x != nil {
		return x.IntervalOverride
	}
	return 0
}

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

	Task *TaskSummary `protobuf:"bytes,1,opt,name=task,proto3" json:"task,omitempty"`
}

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

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

func (*ExecuteStrategyResponse) ProtoMessage() {}

func (x *ExecuteStrategyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ExecuteStrategyResponse.ProtoReflect.Descriptor instead.
func (*ExecuteStrategyResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{26}
}

func (x *ExecuteStrategyResponse) GetTask() *TaskSummary {
	if x != nil {
		return x.Task
	}
	return nil
}

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

	DoNotRunImmediately bool    `protobuf:"varint,1,opt,name=do_not_run_immediately,json=doNotRunImmediately,proto3" json:"do_not_run_immediately,omitempty"`
	DoNotStore          bool    `protobuf:"varint,2,opt,name=do_not_store,json=doNotStore,proto3" json:"do_not_store,omitempty"`
	Config              *Config `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
}

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

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

func (*ExecuteStrategyFromConfigRequest) ProtoMessage() {}

func (x *ExecuteStrategyFromConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ExecuteStrategyFromConfigRequest.ProtoReflect.Descriptor instead.
func (*ExecuteStrategyFromConfigRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{27}
}

func (x *ExecuteStrategyFromConfigRequest) GetDoNotRunImmediately() bool {
	if x != nil {
		return x.DoNotRunImmediately
	}
	return false
}

func (x *ExecuteStrategyFromConfigRequest) GetDoNotStore() bool {
	if x != nil {
		return x.DoNotStore
	}
	return false
}

func (x *ExecuteStrategyFromConfigRequest) GetConfig() *Config {
	if x != nil {
		return x.Config
	}
	return nil
}

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

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

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

func (*ListAllTasksRequest) ProtoMessage() {}

func (x *ListAllTasksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ListAllTasksRequest.ProtoReflect.Descriptor instead.
func (*ListAllTasksRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{28}
}

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

	Tasks []*TaskSummary `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"`
}

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

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

func (*ListAllTasksResponse) ProtoMessage() {}

func (x *ListAllTasksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ListAllTasksResponse.ProtoReflect.Descriptor instead.
func (*ListAllTasksResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{29}
}

func (x *ListAllTasksResponse) GetTasks() []*TaskSummary {
	if x != nil {
		return x.Tasks
	}
	return nil
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*StopTaskRequest) ProtoMessage() {}

func (x *StopTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StopTaskRequest.ProtoReflect.Descriptor instead.
func (*StopTaskRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{30}
}

func (x *StopTaskRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

	StoppedTask *TaskSummary `protobuf:"bytes,1,opt,name=stopped_task,json=stoppedTask,proto3" json:"stopped_task,omitempty"`
}

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

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

func (*StopTaskResponse) ProtoMessage() {}

func (x *StopTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StopTaskResponse.ProtoReflect.Descriptor instead.
func (*StopTaskResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{31}
}

func (x *StopTaskResponse) GetStoppedTask() *TaskSummary {
	if x != nil {
		return x.StoppedTask
	}
	return nil
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*StartTaskRequest) ProtoMessage() {}

func (x *StartTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StartTaskRequest.ProtoReflect.Descriptor instead.
func (*StartTaskRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{32}
}

func (x *StartTaskRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

	Started bool `protobuf:"varint,1,opt,name=started,proto3" json:"started,omitempty"`
}

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

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

func (*StartTaskResponse) ProtoMessage() {}

func (x *StartTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StartTaskResponse.ProtoReflect.Descriptor instead.
func (*StartTaskResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{33}
}

func (x *StartTaskResponse) GetStarted() bool {
	if x != nil {
		return x.Started
	}
	return false
}

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

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

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

func (*StartAllTasksRequest) ProtoMessage() {}

func (x *StartAllTasksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StartAllTasksRequest.ProtoReflect.Descriptor instead.
func (*StartAllTasksRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{34}
}

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

	TasksStarted []string `protobuf:"bytes,1,rep,name=tasks_started,json=tasksStarted,proto3" json:"tasks_started,omitempty"`
}

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

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

func (*StartAllTasksResponse) ProtoMessage() {}

func (x *StartAllTasksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StartAllTasksResponse.ProtoReflect.Descriptor instead.
func (*StartAllTasksResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{35}
}

func (x *StartAllTasksResponse) GetTasksStarted() []string {
	if x != nil {
		return x.TasksStarted
	}
	return nil
}

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

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

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

func (*StopAllTasksRequest) ProtoMessage() {}

func (x *StopAllTasksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StopAllTasksRequest.ProtoReflect.Descriptor instead.
func (*StopAllTasksRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{36}
}

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

	TasksStopped []*TaskSummary `protobuf:"bytes,1,rep,name=tasks_stopped,json=tasksStopped,proto3" json:"tasks_stopped,omitempty"`
}

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

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

func (*StopAllTasksResponse) ProtoMessage() {}

func (x *StopAllTasksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 StopAllTasksResponse.ProtoReflect.Descriptor instead.
func (*StopAllTasksResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{37}
}

func (x *StopAllTasksResponse) GetTasksStopped() []*TaskSummary {
	if x != nil {
		return x.TasksStopped
	}
	return nil
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*ClearTaskRequest) ProtoMessage() {}

func (x *ClearTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ClearTaskRequest.ProtoReflect.Descriptor instead.
func (*ClearTaskRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{38}
}

func (x *ClearTaskRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

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

	ClearedTask *TaskSummary `protobuf:"bytes,1,opt,name=cleared_task,json=clearedTask,proto3" json:"cleared_task,omitempty"`
}

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

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

func (*ClearTaskResponse) ProtoMessage() {}

func (x *ClearTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ClearTaskResponse.ProtoReflect.Descriptor instead.
func (*ClearTaskResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{39}
}

func (x *ClearTaskResponse) GetClearedTask() *TaskSummary {
	if x != nil {
		return x.ClearedTask
	}
	return nil
}

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

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

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

func (*ClearAllTasksRequest) ProtoMessage() {}

func (x *ClearAllTasksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ClearAllTasksRequest.ProtoReflect.Descriptor instead.
func (*ClearAllTasksRequest) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{40}
}

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

	ClearedTasks   []*TaskSummary `protobuf:"bytes,1,rep,name=cleared_tasks,json=clearedTasks,proto3" json:"cleared_tasks,omitempty"`
	RemainingTasks []*TaskSummary `protobuf:"bytes,2,rep,name=remaining_tasks,json=remainingTasks,proto3" json:"remaining_tasks,omitempty"`
}

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

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

func (*ClearAllTasksResponse) ProtoMessage() {}

func (x *ClearAllTasksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_btrpc_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 ClearAllTasksResponse.ProtoReflect.Descriptor instead.
func (*ClearAllTasksResponse) Descriptor() ([]byte, []int) {
	return file_btrpc_proto_rawDescGZIP(), []int{41}
}

func (x *ClearAllTasksResponse) GetClearedTasks() []*TaskSummary {
	if x != nil {
		return x.ClearedTasks
	}
	return nil
}

func (x *ClearAllTasksResponse) GetRemainingTasks() []*TaskSummary {
	if x != nil {
		return x.RemainingTasks
	}
	return nil
}

var File_btrpc_proto protoreflect.FileDescriptor

var file_btrpc_proto_rawDesc = []byte{
	0x0a, 0x0b, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x62,
	0x74, 0x72, 0x70, 0x63, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
	0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x22,
	0x75, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73,
	0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69,
	0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x75, 0x73, 0x65, 0x53, 0x69, 0x6d,
	0x75, 0x6c, 0x74, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x50,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e,
	0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x55, 0x73, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x0f, 0x63,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0e, 0x63, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x4a, 0x0a, 0x0e, 0x43,
	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1b, 0x0a,
	0x09, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6b, 0x65, 0x79, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65,
	0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b,
	0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x14, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69,
	0x61, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c,
	0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x46, 0x65, 0x65, 0x22,
	0xa1, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e,
	0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x75, 0x73, 0x65, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x12, 0x51, 0x0a, 0x16, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x76,
	0x65, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x65,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x46, 0x75, 0x6e, 0x64,
	0x69, 0x6e, 0x67, 0x22, 0x79, 0x0a, 0x0c, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53,
	0x69, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x69, 0x6d,
	0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,
	0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61,
	0x78, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78,
	0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x6b,
	0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x0a,
	0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x75,
	0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69,
	0x61, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x69,
	0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6e,
	0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x6c, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x22, 0x3d, 0x0a, 0x0e, 0x46,
	0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2b, 0x0a,
	0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65,
	0x52, 0x08, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x22, 0xff, 0x05, 0x0a, 0x10, 0x43,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12,
	0x23, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61,
	0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71,
	0x75, 0x6f, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x5f, 0x73, 0x69, 0x64, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50,
	0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x07, 0x62, 0x75, 0x79,
	0x53, 0x69, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x73, 0x69, 0x64,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x08, 0x73, 0x65,
	0x6c, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x6c,
	0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67,
	0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f,
	0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x53, 0x6c, 0x69, 0x70, 0x70,
	0x61, 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61,
	0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65,
	0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x6b, 0x65,
	0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x4f, 0x76,
	0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,
	0x6d, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x48,
	0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x1a,
	0x73, 0x6b, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x5f, 0x66, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x43, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x46, 0x69, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x19, 0x75, 0x73, 0x65,
	0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f,
	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x75, 0x73,
	0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69,
	0x6d, 0x69, 0x74, 0x73, 0x12, 0x3f, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x6e, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x75, 0x73, 0x65, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6e, 0x6c, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0c, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x64, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52,
	0x0b, 0x73, 0x70, 0x6f, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x0f,
	0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0e, 0x66, 0x75,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xa9, 0x01, 0x0a,
	0x07, 0x41, 0x70, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44,
	0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e,
	0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,
	0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x08, 0x44, 0x62, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69,
	0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65,
	0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65,
	0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x19, 0x0a,
	0x08, 0x73, 0x73, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x73, 0x73, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x01, 0x0a, 0x06, 0x44, 0x62, 0x44,
	0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35,
	0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e,
	0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x62,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12,
	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61,
	0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,
	0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65,
	0x22, 0x1d, 0x0a, 0x07, 0x43, 0x73, 0x76, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70,
	0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22,
	0xb3, 0x01, 0x0a, 0x19, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a,
	0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73,
	0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a,
	0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x73,
	0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x73,
	0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61,
	0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72,
	0x69, 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74,
	0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf1,
	0x01, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12,
	0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
	0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e,
	0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74,
	0x65, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61,
	0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x70, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,
	0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61,
	0x74, 0x65, 0x22, 0x1d, 0x0a, 0x07, 0x43, 0x53, 0x56, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
	0x68, 0x22, 0x97, 0x03, 0x0a, 0x08, 0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a,
	0x0a, 0x11, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x45, 0x76,
	0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x61,
	0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54,
	0x69, 0x6d, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x70,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x6f, 0x70,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x3f, 0x0a, 0x1c,
	0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x74,
	0x72, 0x79, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x19, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x74, 0x72, 0x79, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3e, 0x0a,
	0x1c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65,
	0x74, 0x72, 0x79, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x18, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x52, 0x65, 0x74, 0x72, 0x79, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a,
	0x0f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x4f,
	0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72,
	0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x0b,
	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x59, 0x0a, 0x0b, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73,
	0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xc2, 0x01, 0x0a, 0x13, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x6d, 0x5f, 0x6b, 0x65, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x6d, 0x4b, 0x65, 0x79, 0x12, 0x1f,
	0x0a, 0x0b, 0x73, 0x75, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x2a, 0x0a, 0x11, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x6e, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0c,
	0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08,
	0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08,
	0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61,
	0x74, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x41,
	0x70, 0x69, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x61, 0x70, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12,
	0x38, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44,
	0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x64, 0x61, 0x74,
	0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x08, 0x63, 0x73, 0x76,
	0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x74,
	0x72, 0x70, 0x63, 0x2e, 0x43, 0x53, 0x56, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x63, 0x73, 0x76,
	0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x09, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x4c, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6c, 0x69, 0x76, 0x65, 0x44, 0x61,
	0x74, 0x61, 0x22, 0xfd, 0x01, 0x0a, 0x08, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12,
	0x28, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72,
	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x55, 0x73,
	0x65, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x4a, 0x0a, 0x22, 0x6d, 0x61, 0x78,
	0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68,
	0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65,
	0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
	0x5f, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4c, 0x65, 0x76,
	0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x6d, 0x61, 0x78,
	0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f,
	0x6c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x1d, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x43, 0x6f, 0x6c, 0x6c,
	0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61,
	0x74, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x65, 0x76, 0x65,
	0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x74, 0x72,
	0x70, 0x63, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6c, 0x65, 0x76,
	0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x75, 0x79, 0x5f, 0x73, 0x69, 0x64,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x07, 0x62, 0x75,
	0x79, 0x53, 0x69, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x73, 0x69,
	0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63,
	0x2e, 0x50, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x53, 0x69, 0x64, 0x65, 0x52, 0x08, 0x73,
	0x65, 0x6c, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x22, 0x39, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x69,
	0x73, 0x74, 0x69, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0e,
	0x72, 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x69, 0x73, 0x6b, 0x46, 0x72, 0x65, 0x65, 0x52, 0x61,
	0x74, 0x65, 0x22, 0xd3, 0x03, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a,
	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x61,
	0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x44, 0x0a,
	0x11, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e,
	0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63,
	0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
	0x73, 0x52, 0x10, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73,
	0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65,
	0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x63, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x10, 0x63, 0x75, 0x72, 0x72,
	0x65, 0x6e, 0x63, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x0d,
	0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65,
	0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f,
	0x6c, 0x69, 0x6f, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66,
	0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x11, 0x70, 0x6f,
	0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12,
	0x47, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x74,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x53, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x11, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x73,
	0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61,
	0x74, 0x65, 0x67, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
	0x0b, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x21,
	0x0a, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65,
	0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x65, 0x64,
	0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x76, 0x65,
	0x5f, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
	0x6c, 0x69, 0x76, 0x65, 0x54, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
	0x65, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0a, 0x72, 0x65, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x22, 0xe6, 0x02, 0x0a,
	0x1e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
	0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65,
	0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x72,
	0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a,
	0x16, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65,
	0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64,
	0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
	0x6c, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x6f,
	0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x53,
	0x74, 0x6f, 0x72, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
	0x12, 0x46, 0x0a, 0x11, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65,
	0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
	0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4f, 0x76, 0x65,
	0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
	0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61,
	0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0xa0, 0x01, 0x0a, 0x20, 0x45, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a,
	0x16, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65,
	0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64,
	0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x75, 0x6e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
	0x6c, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x6f,
	0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x53,
	0x74, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x4c,
	0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x22, 0x40, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73,
	0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x61,
	0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70,
	0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x05, 0x74,
	0x61, 0x73, 0x6b, 0x73, 0x22, 0x21, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x49, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x54,
	0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x73,
	0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75,
	0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x61,
	0x73, 0x6b, 0x22, 0x22, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2d, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
	0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c,
	0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3c, 0x0a,
	0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74,
	0x61, 0x73, 0x6b, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x53,
	0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73,
	0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x74, 0x61,
	0x73, 0x6b, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75,
	0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x74, 0x6f, 0x70,
	0x70, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x11, 0x43, 0x6c, 0x65, 0x61, 0x72,
	0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0c,
	0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53,
	0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x54,
	0x61, 0x73, 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54,
	0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x15,
	0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64,
	0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62,
	0x74, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,
	0x52, 0x0c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3b,
	0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x73, 0x6b,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x54, 0x61, 0x73, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x6d,
	0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x32, 0xbe, 0x07, 0x0a, 0x11,
	0x42, 0x61, 0x63, 0x6b, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x12, 0x85, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72,
	0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x2e,
	0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72,
	0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65,
	0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x1b, 0x2f, 0x76,
	0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
	0x79, 0x66, 0x72, 0x6f, 0x6d, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x19, 0x45, 0x78,
	0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46, 0x72, 0x6f,
	0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x46,
	0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1e, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
	0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78,
	0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x66, 0x72, 0x6f,
	0x6d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x61, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41,
	0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x69,
	0x73, 0x74, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x53, 0x74,
	0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x61,
	0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93,
	0x02, 0x0f, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x61, 0x73,
	0x6b, 0x12, 0x65, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73,
	0x6b, 0x73, 0x12, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x1c, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c,
	0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x13, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x08, 0x53, 0x74, 0x6f, 0x70,
	0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f,
	0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x62,
	0x74, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x22, 0x0c, 0x2f,
	0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x61, 0x0a, 0x0c, 0x53,
	0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1a, 0x2e, 0x62, 0x74,
	0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e,
	0x53, 0x74, 0x6f, 0x70, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x22, 0x10, 0x2f, 0x76,
	0x31, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x55,
	0x0a, 0x09, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x17, 0x2e, 0x62, 0x74,
	0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65,
	0x61, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x65, 0x61,
	0x72, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c,
	0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x1b, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43,
	0x6c, 0x65, 0x61, 0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6c, 0x65, 0x61,
	0x72, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x63,
	0x6c, 0x65, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x42, 0x3a, 0x5a, 0x38,
	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x72, 0x61, 0x73,
	0x68, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x67, 0x6f, 0x63, 0x72, 0x79, 0x70, 0x74,
	0x6f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x72, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x74, 0x65, 0x73, 0x74,
	0x65, 0x72, 0x2f, 0x62, 0x74, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_btrpc_proto_rawDescOnce sync.Once
	file_btrpc_proto_rawDescData = file_btrpc_proto_rawDesc
)

func file_btrpc_proto_rawDescGZIP() []byte {
	file_btrpc_proto_rawDescOnce.Do(func() {
		file_btrpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_btrpc_proto_rawDescData)
	})
	return file_btrpc_proto_rawDescData
}

var file_btrpc_proto_msgTypes = make([]protoimpl.MessageInfo, 42)
var file_btrpc_proto_goTypes = []interface{}{
	(*StrategySettings)(nil),                 // 0: btrpc.StrategySettings
	(*CustomSettings)(nil),                   // 1: btrpc.CustomSettings
	(*ExchangeLevelFunding)(nil),             // 2: btrpc.ExchangeLevelFunding
	(*FundingSettings)(nil),                  // 3: btrpc.FundingSettings
	(*PurchaseSide)(nil),                     // 4: btrpc.PurchaseSide
	(*SpotDetails)(nil),                      // 5: btrpc.SpotDetails
	(*FuturesDetails)(nil),                   // 6: btrpc.FuturesDetails
	(*CurrencySettings)(nil),                 // 7: btrpc.CurrencySettings
	(*ApiData)(nil),                          // 8: btrpc.ApiData
	(*DbConfig)(nil),                         // 9: btrpc.DbConfig
	(*DbData)(nil),                           // 10: btrpc.DbData
	(*CsvData)(nil),                          // 11: btrpc.CsvData
	(*DatabaseConnectionDetails)(nil),        // 12: btrpc.DatabaseConnectionDetails
	(*DatabaseConfig)(nil),                   // 13: btrpc.DatabaseConfig
	(*DatabaseData)(nil),                     // 14: btrpc.DatabaseData
	(*CSVData)(nil),                          // 15: btrpc.CSVData
	(*LiveData)(nil),                         // 16: btrpc.LiveData
	(*Credentials)(nil),                      // 17: btrpc.Credentials
	(*ExchangeCredentials)(nil),              // 18: btrpc.ExchangeCredentials
	(*DataSettings)(nil),                     // 19: btrpc.DataSettings
	(*Leverage)(nil),                         // 20: btrpc.Leverage
	(*PortfolioSettings)(nil),                // 21: btrpc.PortfolioSettings
	(*StatisticSettings)(nil),                // 22: btrpc.StatisticSettings
	(*Config)(nil),                           // 23: btrpc.Config
	(*TaskSummary)(nil),                      // 24: btrpc.TaskSummary
	(*ExecuteStrategyFromFileRequest)(nil),   // 25: btrpc.ExecuteStrategyFromFileRequest
	(*ExecuteStrategyResponse)(nil),          // 26: btrpc.ExecuteStrategyResponse
	(*ExecuteStrategyFromConfigRequest)(nil), // 27: btrpc.ExecuteStrategyFromConfigRequest
	(*ListAllTasksRequest)(nil),              // 28: btrpc.ListAllTasksRequest
	(*ListAllTasksResponse)(nil),             // 29: btrpc.ListAllTasksResponse
	(*StopTaskRequest)(nil),                  // 30: btrpc.StopTaskRequest
	(*StopTaskResponse)(nil),                 // 31: btrpc.StopTaskResponse
	(*StartTaskRequest)(nil),                 // 32: btrpc.StartTaskRequest
	(*StartTaskResponse)(nil),                // 33: btrpc.StartTaskResponse
	(*StartAllTasksRequest)(nil),             // 34: btrpc.StartAllTasksRequest
	(*StartAllTasksResponse)(nil),            // 35: btrpc.StartAllTasksResponse
	(*StopAllTasksRequest)(nil),              // 36: btrpc.StopAllTasksRequest
	(*StopAllTasksResponse)(nil),             // 37: btrpc.StopAllTasksResponse
	(*ClearTaskRequest)(nil),                 // 38: btrpc.ClearTaskRequest
	(*ClearTaskResponse)(nil),                // 39: btrpc.ClearTaskResponse
	(*ClearAllTasksRequest)(nil),             // 40: btrpc.ClearAllTasksRequest
	(*ClearAllTasksResponse)(nil),            // 41: btrpc.ClearAllTasksResponse
	(*timestamppb.Timestamp)(nil),            // 42: google.protobuf.Timestamp
}
var file_btrpc_proto_depIdxs = []int32{
	1,  // 0: btrpc.StrategySettings.custom_settings:type_name -> btrpc.CustomSettings
	2,  // 1: btrpc.FundingSettings.exchange_level_funding:type_name -> btrpc.ExchangeLevelFunding
	20, // 2: btrpc.FuturesDetails.leverage:type_name -> btrpc.Leverage
	4,  // 3: btrpc.CurrencySettings.buy_side:type_name -> btrpc.PurchaseSide
	4,  // 4: btrpc.CurrencySettings.sell_side:type_name -> btrpc.PurchaseSide
	5,  // 5: btrpc.CurrencySettings.spot_details:type_name -> btrpc.SpotDetails
	6,  // 6: btrpc.CurrencySettings.futures_details:type_name -> btrpc.FuturesDetails
	42, // 7: btrpc.ApiData.start_date:type_name -> google.protobuf.Timestamp
	42, // 8: btrpc.ApiData.end_date:type_name -> google.protobuf.Timestamp
	42, // 9: btrpc.DbData.start_date:type_name -> google.protobuf.Timestamp
	42, // 10: btrpc.DbData.end_date:type_name -> google.protobuf.Timestamp
	9,  // 11: btrpc.DbData.config:type_name -> btrpc.DbConfig
	12, // 12: btrpc.DatabaseConfig.config:type_name -> btrpc.DatabaseConnectionDetails
	42, // 13: btrpc.DatabaseData.start_date:type_name -> google.protobuf.Timestamp
	42, // 14: btrpc.DatabaseData.end_date:type_name -> google.protobuf.Timestamp
	13, // 15: btrpc.DatabaseData.config:type_name -> btrpc.DatabaseConfig
	17, // 16: btrpc.LiveData.credentials:type_name -> btrpc.Credentials
	18, // 17: btrpc.Credentials.keys:type_name -> btrpc.ExchangeCredentials
	8,  // 18: btrpc.DataSettings.api_data:type_name -> btrpc.ApiData
	14, // 19: btrpc.DataSettings.database_data:type_name -> btrpc.DatabaseData
	15, // 20: btrpc.DataSettings.csv_data:type_name -> btrpc.CSVData
	16, // 21: btrpc.DataSettings.live_data:type_name -> btrpc.LiveData
	20, // 22: btrpc.PortfolioSettings.leverage:type_name -> btrpc.Leverage
	4,  // 23: btrpc.PortfolioSettings.buy_side:type_name -> btrpc.PurchaseSide
	4,  // 24: btrpc.PortfolioSettings.sell_side:type_name -> btrpc.PurchaseSide
	0,  // 25: btrpc.Config.strategy_settings:type_name -> btrpc.StrategySettings
	3,  // 26: btrpc.Config.funding_settings:type_name -> btrpc.FundingSettings
	7,  // 27: btrpc.Config.currency_settings:type_name -> btrpc.CurrencySettings
	19, // 28: btrpc.Config.data_settings:type_name -> btrpc.DataSettings
	21, // 29: btrpc.Config.portfolio_settings:type_name -> btrpc.PortfolioSettings
	22, // 30: btrpc.Config.statistic_settings:type_name -> btrpc.StatisticSettings
	42, // 31: btrpc.ExecuteStrategyFromFileRequest.start_time_override:type_name -> google.protobuf.Timestamp
	42, // 32: btrpc.ExecuteStrategyFromFileRequest.end_time_override:type_name -> google.protobuf.Timestamp
	24, // 33: btrpc.ExecuteStrategyResponse.task:type_name -> btrpc.TaskSummary
	23, // 34: btrpc.ExecuteStrategyFromConfigRequest.config:type_name -> btrpc.Config
	24, // 35: btrpc.ListAllTasksResponse.tasks:type_name -> btrpc.TaskSummary
	24, // 36: btrpc.StopTaskResponse.stopped_task:type_name -> btrpc.TaskSummary
	24, // 37: btrpc.StopAllTasksResponse.tasks_stopped:type_name -> btrpc.TaskSummary
	24, // 38: btrpc.ClearTaskResponse.cleared_task:type_name -> btrpc.TaskSummary
	24, // 39: btrpc.ClearAllTasksResponse.cleared_tasks:type_name -> btrpc.TaskSummary
	24, // 40: btrpc.ClearAllTasksResponse.remaining_tasks:type_name -> btrpc.TaskSummary
	25, // 41: btrpc.BacktesterService.ExecuteStrategyFromFile:input_type -> btrpc.ExecuteStrategyFromFileRequest
	27, // 42: btrpc.BacktesterService.ExecuteStrategyFromConfig:input_type -> btrpc.ExecuteStrategyFromConfigRequest
	28, // 43: btrpc.BacktesterService.ListAllTasks:input_type -> btrpc.ListAllTasksRequest
	32, // 44: btrpc.BacktesterService.StartTask:input_type -> btrpc.StartTaskRequest
	34, // 45: btrpc.BacktesterService.StartAllTasks:input_type -> btrpc.StartAllTasksRequest
	30, // 46: btrpc.BacktesterService.StopTask:input_type -> btrpc.StopTaskRequest
	36, // 47: btrpc.BacktesterService.StopAllTasks:input_type -> btrpc.StopAllTasksRequest
	38, // 48: btrpc.BacktesterService.ClearTask:input_type -> btrpc.ClearTaskRequest
	40, // 49: btrpc.BacktesterService.ClearAllTasks:input_type -> btrpc.ClearAllTasksRequest
	26, // 50: btrpc.BacktesterService.ExecuteStrategyFromFile:output_type -> btrpc.ExecuteStrategyResponse
	26, // 51: btrpc.BacktesterService.ExecuteStrategyFromConfig:output_type -> btrpc.ExecuteStrategyResponse
	29, // 52: btrpc.BacktesterService.ListAllTasks:output_type -> btrpc.ListAllTasksResponse
	33, // 53: btrpc.BacktesterService.StartTask:output_type -> btrpc.StartTaskResponse
	35, // 54: btrpc.BacktesterService.StartAllTasks:output_type -> btrpc.StartAllTasksResponse
	31, // 55: btrpc.BacktesterService.StopTask:output_type -> btrpc.StopTaskResponse
	37, // 56: btrpc.BacktesterService.StopAllTasks:output_type -> btrpc.StopAllTasksResponse
	39, // 57: btrpc.BacktesterService.ClearTask:output_type -> btrpc.ClearTaskResponse
	41, // 58: btrpc.BacktesterService.ClearAllTasks:output_type -> btrpc.ClearAllTasksResponse
	50, // [50:59] is the sub-list for method output_type
	41, // [41:50] is the sub-list for method input_type
	41, // [41:41] is the sub-list for extension type_name
	41, // [41:41] is the sub-list for extension extendee
	0,  // [0:41] is the sub-list for field type_name
}

func init() { file_btrpc_proto_init() }
func file_btrpc_proto_init() {
	if File_btrpc_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_btrpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StrategySettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CustomSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExchangeLevelFunding); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FundingSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PurchaseSide); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SpotDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FuturesDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CurrencySettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApiData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DbConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DbData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CsvData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DatabaseConnectionDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DatabaseConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DatabaseData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CSVData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LiveData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Credentials); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExchangeCredentials); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DataSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Leverage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PortfolioSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StatisticSettings); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Config); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TaskSummary); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecuteStrategyFromFileRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecuteStrategyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecuteStrategyFromConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListAllTasksRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListAllTasksResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartAllTasksRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StartAllTasksResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopAllTasksRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StopAllTasksResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClearTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClearTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClearAllTasksRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_btrpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClearAllTasksResponse); 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_btrpc_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   42,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_btrpc_proto_goTypes,
		DependencyIndexes: file_btrpc_proto_depIdxs,
		MessageInfos:      file_btrpc_proto_msgTypes,
	}.Build()
	File_btrpc_proto = out.File
	file_btrpc_proto_rawDesc = nil
	file_btrpc_proto_goTypes = nil
	file_btrpc_proto_depIdxs = nil
}
