// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 // protoc v3.11.4 // source: mtp2.proto package pb import ( proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 //交易规则信息子集 type TradeRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RuleID *uint32 `protobuf:"varint,1,opt,name=RuleID" json:"RuleID,omitempty"` // 交易规则ID ParamValue *float64 `protobuf:"fixed64,2,opt,name=ParamValue" json:"ParamValue,omitempty"` // 参数值 } func (x *TradeRule) Reset() { *x = TradeRule{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TradeRule) String() string { return protoimpl.X.MessageStringOf(x) } func (*TradeRule) ProtoMessage() {} func (x *TradeRule) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 TradeRule.ProtoReflect.Descriptor instead. func (*TradeRule) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{0} } func (x *TradeRule) GetRuleID() uint32 { if x != nil && x.RuleID != nil { return *x.RuleID } return 0 } func (x *TradeRule) GetParamValue() float64 { if x != nil && x.ParamValue != nil { return *x.ParamValue } return 0 } //交易规则信息 type TradeRuleInfoStruct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AccountID *uint64 `protobuf:"varint,1,opt,name=AccountID" json:"AccountID,omitempty"` // 资金账号 GoodsID *uint32 `protobuf:"varint,2,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品id TradeRules []*TradeRule `protobuf:"bytes,3,rep,name=TradeRules" json:"TradeRules,omitempty"` // 交易规则 } func (x *TradeRuleInfoStruct) Reset() { *x = TradeRuleInfoStruct{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TradeRuleInfoStruct) String() string { return protoimpl.X.MessageStringOf(x) } func (*TradeRuleInfoStruct) ProtoMessage() {} func (x *TradeRuleInfoStruct) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 TradeRuleInfoStruct.ProtoReflect.Descriptor instead. func (*TradeRuleInfoStruct) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{1} } func (x *TradeRuleInfoStruct) GetAccountID() uint64 { if x != nil && x.AccountID != nil { return *x.AccountID } return 0 } func (x *TradeRuleInfoStruct) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *TradeRuleInfoStruct) GetTradeRules() []*TradeRule { if x != nil { return x.TradeRules } return nil } // 日期类型定义 type Date struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DateStr *string `protobuf:"bytes,1,opt,name=DateStr" json:"DateStr,omitempty"` // 日期时间 } func (x *Date) Reset() { *x = Date{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Date) String() string { return protoimpl.X.MessageStringOf(x) } func (*Date) ProtoMessage() {} func (x *Date) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Date.ProtoReflect.Descriptor instead. func (*Date) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{2} } func (x *Date) GetDateStr() string { if x != nil && x.DateStr != nil { return *x.DateStr } return "" } // ERMS2_ARBITRAGESTRATEGY 期现套利策略表 type Erms2ArbitrageStrategy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 ASApplyId *uint64 `protobuf:"varint,1,opt,name=ASApplyId" json:"ASApplyId,omitempty"` // 策略申请ID(702+Unix秒时间戳(10位)+xxxxxx) ASNo *string `protobuf:"bytes,2,opt,name=ASNo" json:"ASNo,omitempty"` // 策略编号 BizType *uint32 `protobuf:"varint,3,opt,name=BizType" json:"BizType,omitempty"` // 业务类型 - 1:正向套利 -1:反向套利 UserId *uint32 `protobuf:"varint,4,opt,name=UserId" json:"UserId,omitempty"` // 所属机构 DeliveryGoodsId *uint32 `protobuf:"varint,5,opt,name=DeliveryGoodsId" json:"DeliveryGoodsId,omitempty"` // 现货品种ID GoodsGroupId *uint32 `protobuf:"varint,6,opt,name=GoodsGroupId" json:"GoodsGroupId,omitempty"` // 期货品种ID SpotQuota *float64 `protobuf:"fixed64,7,opt,name=SpotQuota" json:"SpotQuota,omitempty"` // 现货额度 FutureQuote *float64 `protobuf:"fixed64,8,opt,name=FutureQuote" json:"FutureQuote,omitempty"` // 期货额度 ApplyBasis *float64 `protobuf:"fixed64,9,opt,name=ApplyBasis" json:"ApplyBasis,omitempty"` // 申请基差 StrategyStatus *uint32 `protobuf:"varint,10,opt,name=StrategyStatus" json:"StrategyStatus,omitempty"` // 策略状态 - 0:未结束 1:已结束 Remark *string `protobuf:"bytes,11,opt,name=Remark" json:"Remark,omitempty"` // 备注 MarketId *uint32 `protobuf:"varint,12,opt,name=MarketId" json:"MarketId,omitempty"` // 市场ID TradeDate *string `protobuf:"bytes,13,opt,name=TradeDate" json:"TradeDate,omitempty"` // 交易日(yyyyMMdd) CloseTradeDate *string `protobuf:"bytes,14,opt,name=CloseTradeDate" json:"CloseTradeDate,omitempty"` // 完结交易日(yyyyMMdd) UsedQuota *float64 `protobuf:"fixed64,15,opt,name=UsedQuota" json:"UsedQuota,omitempty"` // 已占用资金 FutureQty *float64 `protobuf:"fixed64,16,opt,name=FutureQty" json:"FutureQty,omitempty"` // 期货持仓数量 FutureAvgPrice *float64 `protobuf:"fixed64,17,opt,name=FutureAvgPrice" json:"FutureAvgPrice,omitempty"` // 期货建仓均价 FuturePL *float64 `protobuf:"fixed64,18,opt,name=FuturePL" json:"FuturePL,omitempty"` // 期货总盈亏[结算更新] PricedSpotQty *float64 `protobuf:"fixed64,19,opt,name=PricedSpotQty" json:"PricedSpotQty,omitempty"` // 已定价现货数量 PricedSpotQtyNoTax *float64 `protobuf:"fixed64,20,opt,name=PricedSpotQtyNoTax" json:"PricedSpotQtyNoTax,omitempty"` // 已定价现货不含税数量 SpotavgPrice *float64 `protobuf:"fixed64,21,opt,name=SpotavgPrice" json:"SpotavgPrice,omitempty"` // 现货均价 SpotPL *float64 `protobuf:"fixed64,22,opt,name=SpotPL" json:"SpotPL,omitempty"` // 现货总盈亏[结算更新] NetExposure *float64 `protobuf:"fixed64,23,opt,name=NetExposure" json:"NetExposure,omitempty"` // 单笔业务头寸净敞口 = 期货持仓数量 + 已定价现货不含税数量 NetExposureRate *float64 `protobuf:"fixed64,24,opt,name=NetExposureRate" json:"NetExposureRate,omitempty"` // 净敞口比例 - 0:未结束 = (NetExposure/PriceSpotQtyNoTax) ; 已结束为0 TotalPL *float64 `protobuf:"fixed64,25,opt,name=TotalPL" json:"TotalPL,omitempty"` // 业务合计损益 = FuturePL + SpotPL [结算更新] OpenBasis *float64 `protobuf:"fixed64,26,opt,name=OpenBasis" json:"OpenBasis,omitempty"` // 建仓基差 CurBasis *float64 `protobuf:"fixed64,27,opt,name=CurBasis" json:"CurBasis,omitempty"` // 当前基差[结算更新] BasisChangePL *float64 `protobuf:"fixed64,28,opt,name=BasisChangePL" json:"BasisChangePL,omitempty"` // 基差变动损益[结算更新] NetExposurePL *float64 `protobuf:"fixed64,29,opt,name=NetExposurePL" json:"NetExposurePL,omitempty"` // 净敞口损益 = TotalPL - BasisChangePL[结算更新] SpotUsedQuota *float64 `protobuf:"fixed64,30,opt,name=SpotUsedQuota" json:"SpotUsedQuota,omitempty"` // 现货占用资金 FutureOpenQty *float64 `protobuf:"fixed64,31,opt,name=FutureOpenQty" json:"FutureOpenQty,omitempty"` // 期货开仓数量 FutureOpenAmount *float64 `protobuf:"fixed64,32,opt,name=FutureOpenAmount" json:"FutureOpenAmount,omitempty"` // 期货开仓金额 FutureCloseQty *float64 `protobuf:"fixed64,33,opt,name=FutureCloseQty" json:"FutureCloseQty,omitempty"` // 期货平仓数量 FutureCloseAmount *float64 `protobuf:"fixed64,34,opt,name=FutureCloseAmount" json:"FutureCloseAmount,omitempty"` // 期货平仓金额 SpotBuyAmount *float64 `protobuf:"fixed64,35,opt,name=SpotBuyAmount" json:"SpotBuyAmount,omitempty"` // 现货采购金额 SpotBuyQty *float64 `protobuf:"fixed64,36,opt,name=SpotBuyQty" json:"SpotBuyQty,omitempty"` // 现货采购数量 SpotSellAmount *float64 `protobuf:"fixed64,37,opt,name=SpotSellAmount" json:"SpotSellAmount,omitempty"` // 现货销售金额 SpotSellQty *float64 `protobuf:"fixed64,38,opt,name=SpotSellQty" json:"SpotSellQty,omitempty"` // 现货销售数量 UpDatetime *Date `protobuf:"bytes,39,opt,name=UpDatetime" json:"UpDatetime,omitempty"` // 更新时间 ASName *string `protobuf:"bytes,40,opt,name=ASName" json:"ASName,omitempty"` // 策略名称 } func (x *Erms2ArbitrageStrategy) Reset() { *x = Erms2ArbitrageStrategy{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Erms2ArbitrageStrategy) String() string { return protoimpl.X.MessageStringOf(x) } func (*Erms2ArbitrageStrategy) ProtoMessage() {} func (x *Erms2ArbitrageStrategy) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Erms2ArbitrageStrategy.ProtoReflect.Descriptor instead. func (*Erms2ArbitrageStrategy) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{3} } func (x *Erms2ArbitrageStrategy) GetASApplyId() uint64 { if x != nil && x.ASApplyId != nil { return *x.ASApplyId } return 0 } func (x *Erms2ArbitrageStrategy) GetASNo() string { if x != nil && x.ASNo != nil { return *x.ASNo } return "" } func (x *Erms2ArbitrageStrategy) GetBizType() uint32 { if x != nil && x.BizType != nil { return *x.BizType } return 0 } func (x *Erms2ArbitrageStrategy) GetUserId() uint32 { if x != nil && x.UserId != nil { return *x.UserId } return 0 } func (x *Erms2ArbitrageStrategy) GetDeliveryGoodsId() uint32 { if x != nil && x.DeliveryGoodsId != nil { return *x.DeliveryGoodsId } return 0 } func (x *Erms2ArbitrageStrategy) GetGoodsGroupId() uint32 { if x != nil && x.GoodsGroupId != nil { return *x.GoodsGroupId } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotQuota() float64 { if x != nil && x.SpotQuota != nil { return *x.SpotQuota } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureQuote() float64 { if x != nil && x.FutureQuote != nil { return *x.FutureQuote } return 0 } func (x *Erms2ArbitrageStrategy) GetApplyBasis() float64 { if x != nil && x.ApplyBasis != nil { return *x.ApplyBasis } return 0 } func (x *Erms2ArbitrageStrategy) GetStrategyStatus() uint32 { if x != nil && x.StrategyStatus != nil { return *x.StrategyStatus } return 0 } func (x *Erms2ArbitrageStrategy) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *Erms2ArbitrageStrategy) GetMarketId() uint32 { if x != nil && x.MarketId != nil { return *x.MarketId } return 0 } func (x *Erms2ArbitrageStrategy) GetTradeDate() string { if x != nil && x.TradeDate != nil { return *x.TradeDate } return "" } func (x *Erms2ArbitrageStrategy) GetCloseTradeDate() string { if x != nil && x.CloseTradeDate != nil { return *x.CloseTradeDate } return "" } func (x *Erms2ArbitrageStrategy) GetUsedQuota() float64 { if x != nil && x.UsedQuota != nil { return *x.UsedQuota } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureQty() float64 { if x != nil && x.FutureQty != nil { return *x.FutureQty } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureAvgPrice() float64 { if x != nil && x.FutureAvgPrice != nil { return *x.FutureAvgPrice } return 0 } func (x *Erms2ArbitrageStrategy) GetFuturePL() float64 { if x != nil && x.FuturePL != nil { return *x.FuturePL } return 0 } func (x *Erms2ArbitrageStrategy) GetPricedSpotQty() float64 { if x != nil && x.PricedSpotQty != nil { return *x.PricedSpotQty } return 0 } func (x *Erms2ArbitrageStrategy) GetPricedSpotQtyNoTax() float64 { if x != nil && x.PricedSpotQtyNoTax != nil { return *x.PricedSpotQtyNoTax } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotavgPrice() float64 { if x != nil && x.SpotavgPrice != nil { return *x.SpotavgPrice } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotPL() float64 { if x != nil && x.SpotPL != nil { return *x.SpotPL } return 0 } func (x *Erms2ArbitrageStrategy) GetNetExposure() float64 { if x != nil && x.NetExposure != nil { return *x.NetExposure } return 0 } func (x *Erms2ArbitrageStrategy) GetNetExposureRate() float64 { if x != nil && x.NetExposureRate != nil { return *x.NetExposureRate } return 0 } func (x *Erms2ArbitrageStrategy) GetTotalPL() float64 { if x != nil && x.TotalPL != nil { return *x.TotalPL } return 0 } func (x *Erms2ArbitrageStrategy) GetOpenBasis() float64 { if x != nil && x.OpenBasis != nil { return *x.OpenBasis } return 0 } func (x *Erms2ArbitrageStrategy) GetCurBasis() float64 { if x != nil && x.CurBasis != nil { return *x.CurBasis } return 0 } func (x *Erms2ArbitrageStrategy) GetBasisChangePL() float64 { if x != nil && x.BasisChangePL != nil { return *x.BasisChangePL } return 0 } func (x *Erms2ArbitrageStrategy) GetNetExposurePL() float64 { if x != nil && x.NetExposurePL != nil { return *x.NetExposurePL } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotUsedQuota() float64 { if x != nil && x.SpotUsedQuota != nil { return *x.SpotUsedQuota } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureOpenQty() float64 { if x != nil && x.FutureOpenQty != nil { return *x.FutureOpenQty } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureOpenAmount() float64 { if x != nil && x.FutureOpenAmount != nil { return *x.FutureOpenAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureCloseQty() float64 { if x != nil && x.FutureCloseQty != nil { return *x.FutureCloseQty } return 0 } func (x *Erms2ArbitrageStrategy) GetFutureCloseAmount() float64 { if x != nil && x.FutureCloseAmount != nil { return *x.FutureCloseAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotBuyAmount() float64 { if x != nil && x.SpotBuyAmount != nil { return *x.SpotBuyAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotBuyQty() float64 { if x != nil && x.SpotBuyQty != nil { return *x.SpotBuyQty } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotSellAmount() float64 { if x != nil && x.SpotSellAmount != nil { return *x.SpotSellAmount } return 0 } func (x *Erms2ArbitrageStrategy) GetSpotSellQty() float64 { if x != nil && x.SpotSellQty != nil { return *x.SpotSellQty } return 0 } func (x *Erms2ArbitrageStrategy) GetUpDatetime() *Date { if x != nil { return x.UpDatetime } return nil } func (x *Erms2ArbitrageStrategy) GetASName() string { if x != nil && x.ASName != nil { return *x.ASName } return "" } // ERMCP_AREASPOT 企业现货表 type ErmcpAreaSpot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 2 WrStandardID *uint32 `protobuf:"varint,1,opt,name=WrStandardID" json:"WrStandardID,omitempty"` // 现货商品ID AreaUserID *uint32 `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 所属机构 OriBuyPlanQty *float64 `protobuf:"fixed64,3,opt,name=OriBuyPlanQty" json:"OriBuyPlanQty,omitempty"` // 期初采购计划数量 OriBuyPricedQty *float64 `protobuf:"fixed64,4,opt,name=OriBuyPricedQty" json:"OriBuyPricedQty,omitempty"` // 期初采购合同已定价数量 OriSellPlanQty *float64 `protobuf:"fixed64,5,opt,name=OriSellPlanQty" json:"OriSellPlanQty,omitempty"` // 期初销售计划数量 OriSellPricedQty *float64 `protobuf:"fixed64,6,opt,name=OriSellPricedQty" json:"OriSellPricedQty,omitempty"` // 期初销售合同已定价数量 BuyPlanQty *float64 `protobuf:"fixed64,7,opt,name=BuyPlanQty" json:"BuyPlanQty,omitempty"` // 采购计划数量 BuyPricedQty *float64 `protobuf:"fixed64,8,opt,name=BuyPricedQty" json:"BuyPricedQty,omitempty"` // 采购合同已定价数量 SellPlanQty *float64 `protobuf:"fixed64,9,opt,name=SellPlanQty" json:"SellPlanQty,omitempty"` // 销售计划数量 SellPricedQty *float64 `protobuf:"fixed64,10,opt,name=SellPricedQty" json:"SellPricedQty,omitempty"` // 销售合同已定价数量 TotalSpotQty *float64 `protobuf:"fixed64,11,opt,name=TotalSpotQty" json:"TotalSpotQty,omitempty"` // 现货头寸总量 = (销售计划数量 - 销售已定价数量) - (采购计划数量 - 采购已定价数量) UpdateTime *Date `protobuf:"bytes,12,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 } func (x *ErmcpAreaSpot) Reset() { *x = ErmcpAreaSpot{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ErmcpAreaSpot) String() string { return protoimpl.X.MessageStringOf(x) } func (*ErmcpAreaSpot) ProtoMessage() {} func (x *ErmcpAreaSpot) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ErmcpAreaSpot.ProtoReflect.Descriptor instead. func (*ErmcpAreaSpot) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{4} } func (x *ErmcpAreaSpot) GetWrStandardID() uint32 { if x != nil && x.WrStandardID != nil { return *x.WrStandardID } return 0 } func (x *ErmcpAreaSpot) GetAreaUserID() uint32 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *ErmcpAreaSpot) GetOriBuyPlanQty() float64 { if x != nil && x.OriBuyPlanQty != nil { return *x.OriBuyPlanQty } return 0 } func (x *ErmcpAreaSpot) GetOriBuyPricedQty() float64 { if x != nil && x.OriBuyPricedQty != nil { return *x.OriBuyPricedQty } return 0 } func (x *ErmcpAreaSpot) GetOriSellPlanQty() float64 { if x != nil && x.OriSellPlanQty != nil { return *x.OriSellPlanQty } return 0 } func (x *ErmcpAreaSpot) GetOriSellPricedQty() float64 { if x != nil && x.OriSellPricedQty != nil { return *x.OriSellPricedQty } return 0 } func (x *ErmcpAreaSpot) GetBuyPlanQty() float64 { if x != nil && x.BuyPlanQty != nil { return *x.BuyPlanQty } return 0 } func (x *ErmcpAreaSpot) GetBuyPricedQty() float64 { if x != nil && x.BuyPricedQty != nil { return *x.BuyPricedQty } return 0 } func (x *ErmcpAreaSpot) GetSellPlanQty() float64 { if x != nil && x.SellPlanQty != nil { return *x.SellPlanQty } return 0 } func (x *ErmcpAreaSpot) GetSellPricedQty() float64 { if x != nil && x.SellPricedQty != nil { return *x.SellPricedQty } return 0 } func (x *ErmcpAreaSpot) GetTotalSpotQty() float64 { if x != nil && x.TotalSpotQty != nil { return *x.TotalSpotQty } return 0 } func (x *ErmcpAreaSpot) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } // ERMCP_AREAEXPOSURE 企业敞口表 type ErmcpAreaExposure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 2 //nkey: 1 MiddleGoodsID *uint32 `protobuf:"varint,1,opt,name=MiddleGoodsID" json:"MiddleGoodsID,omitempty"` // 套保品种 AreaUserID *uint32 `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 所属机构 OriBuyPlanQty *float64 `protobuf:"fixed64,3,opt,name=OriBuyPlanQty" json:"OriBuyPlanQty,omitempty"` // 期初采购计划数量 OriBuyPricedQty *float64 `protobuf:"fixed64,4,opt,name=OriBuyPricedQty" json:"OriBuyPricedQty,omitempty"` // 期初采购合同已定价数量 OriSellPlanQty *float64 `protobuf:"fixed64,5,opt,name=OriSellPlanQty" json:"OriSellPlanQty,omitempty"` // 期初销售计划数量 OriSellPricedQty *float64 `protobuf:"fixed64,6,opt,name=OriSellPricedQty" json:"OriSellPricedQty,omitempty"` // 期初销售合同已定价数量 OriBuyFutureQty *uint64 `protobuf:"varint,7,opt,name=OriBuyFutureQty" json:"OriBuyFutureQty,omitempty"` // 期初买入期货数量 OriSellFutureQty *uint64 `protobuf:"varint,8,opt,name=OriSellFutureQty" json:"OriSellFutureQty,omitempty"` // 期初卖出期货数量 BuyPlanQty *float64 `protobuf:"fixed64,9,opt,name=BuyPlanQty" json:"BuyPlanQty,omitempty"` // 采购计划数量 BuyPricedQty *float64 `protobuf:"fixed64,10,opt,name=BuyPricedQty" json:"BuyPricedQty,omitempty"` // 采购合同已定价数量 SellPlanQty *float64 `protobuf:"fixed64,11,opt,name=SellPlanQty" json:"SellPlanQty,omitempty"` // 销售计划数量 SellPricedQty *float64 `protobuf:"fixed64,12,opt,name=SellPricedQty" json:"SellPricedQty,omitempty"` // 销售合同已定价数量 BuyFutureQty *float64 `protobuf:"fixed64,13,opt,name=BuyFutureQty" json:"BuyFutureQty,omitempty"` // 买入期货数量 SellFutureQty *float64 `protobuf:"fixed64,14,opt,name=SellFutureQty" json:"SellFutureQty,omitempty"` // 卖出期货数量 TotalSpotQty *float64 `protobuf:"fixed64,15,opt,name=TotalSpotQty" json:"TotalSpotQty,omitempty"` // 现货头寸总量 TotalFutureQty *float64 `protobuf:"fixed64,16,opt,name=TotalFutureQty" json:"TotalFutureQty,omitempty"` // 期货头寸总量 TotalExposure *float64 `protobuf:"fixed64,17,opt,name=TotalExposure" json:"TotalExposure,omitempty"` // 实时总敞口 TotalHedgeRatio *float64 `protobuf:"fixed64,18,opt,name=TotalHedgeRatio" json:"TotalHedgeRatio,omitempty"` // 总套保比率 TotalNeedHedgeQty *float64 `protobuf:"fixed64,19,opt,name=TotalNeedHedgeQty" json:"TotalNeedHedgeQty,omitempty"` // 应套保总量 NeedHedgeExposoure *float64 `protobuf:"fixed64,20,opt,name=NeedHedgeExposoure" json:"NeedHedgeExposoure,omitempty"` // 应套保敞口 NeedHedgeRatio *float64 `protobuf:"fixed64,21,opt,name=NeedHedgeRatio" json:"NeedHedgeRatio,omitempty"` // 应套保比率 UpdateTime *Date `protobuf:"bytes,22,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 } func (x *ErmcpAreaExposure) Reset() { *x = ErmcpAreaExposure{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ErmcpAreaExposure) String() string { return protoimpl.X.MessageStringOf(x) } func (*ErmcpAreaExposure) ProtoMessage() {} func (x *ErmcpAreaExposure) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 ErmcpAreaExposure.ProtoReflect.Descriptor instead. func (*ErmcpAreaExposure) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{5} } func (x *ErmcpAreaExposure) GetMiddleGoodsID() uint32 { if x != nil && x.MiddleGoodsID != nil { return *x.MiddleGoodsID } return 0 } func (x *ErmcpAreaExposure) GetAreaUserID() uint32 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *ErmcpAreaExposure) GetOriBuyPlanQty() float64 { if x != nil && x.OriBuyPlanQty != nil { return *x.OriBuyPlanQty } return 0 } func (x *ErmcpAreaExposure) GetOriBuyPricedQty() float64 { if x != nil && x.OriBuyPricedQty != nil { return *x.OriBuyPricedQty } return 0 } func (x *ErmcpAreaExposure) GetOriSellPlanQty() float64 { if x != nil && x.OriSellPlanQty != nil { return *x.OriSellPlanQty } return 0 } func (x *ErmcpAreaExposure) GetOriSellPricedQty() float64 { if x != nil && x.OriSellPricedQty != nil { return *x.OriSellPricedQty } return 0 } func (x *ErmcpAreaExposure) GetOriBuyFutureQty() uint64 { if x != nil && x.OriBuyFutureQty != nil { return *x.OriBuyFutureQty } return 0 } func (x *ErmcpAreaExposure) GetOriSellFutureQty() uint64 { if x != nil && x.OriSellFutureQty != nil { return *x.OriSellFutureQty } return 0 } func (x *ErmcpAreaExposure) GetBuyPlanQty() float64 { if x != nil && x.BuyPlanQty != nil { return *x.BuyPlanQty } return 0 } func (x *ErmcpAreaExposure) GetBuyPricedQty() float64 { if x != nil && x.BuyPricedQty != nil { return *x.BuyPricedQty } return 0 } func (x *ErmcpAreaExposure) GetSellPlanQty() float64 { if x != nil && x.SellPlanQty != nil { return *x.SellPlanQty } return 0 } func (x *ErmcpAreaExposure) GetSellPricedQty() float64 { if x != nil && x.SellPricedQty != nil { return *x.SellPricedQty } return 0 } func (x *ErmcpAreaExposure) GetBuyFutureQty() float64 { if x != nil && x.BuyFutureQty != nil { return *x.BuyFutureQty } return 0 } func (x *ErmcpAreaExposure) GetSellFutureQty() float64 { if x != nil && x.SellFutureQty != nil { return *x.SellFutureQty } return 0 } func (x *ErmcpAreaExposure) GetTotalSpotQty() float64 { if x != nil && x.TotalSpotQty != nil { return *x.TotalSpotQty } return 0 } func (x *ErmcpAreaExposure) GetTotalFutureQty() float64 { if x != nil && x.TotalFutureQty != nil { return *x.TotalFutureQty } return 0 } func (x *ErmcpAreaExposure) GetTotalExposure() float64 { if x != nil && x.TotalExposure != nil { return *x.TotalExposure } return 0 } func (x *ErmcpAreaExposure) GetTotalHedgeRatio() float64 { if x != nil && x.TotalHedgeRatio != nil { return *x.TotalHedgeRatio } return 0 } func (x *ErmcpAreaExposure) GetTotalNeedHedgeQty() float64 { if x != nil && x.TotalNeedHedgeQty != nil { return *x.TotalNeedHedgeQty } return 0 } func (x *ErmcpAreaExposure) GetNeedHedgeExposoure() float64 { if x != nil && x.NeedHedgeExposoure != nil { return *x.NeedHedgeExposoure } return 0 } func (x *ErmcpAreaExposure) GetNeedHedgeRatio() float64 { if x != nil && x.NeedHedgeRatio != nil { return *x.NeedHedgeRatio } return 0 } func (x *ErmcpAreaExposure) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } // GoodsMarginCfgStruct 商品保证金配置 type GoodsMarginCfgStruct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GoodsID *uint32 `protobuf:"varint,1,opt,name=GoodsID" json:"GoodsID,omitempty"` // 商品ID CustomerTypeID *uint32 `protobuf:"varint,2,opt,name=CustomerTypeID" json:"CustomerTypeID,omitempty"` // 投资者客户类型 MarginAlgorithm *uint32 `protobuf:"varint,3,opt,name=MarginAlgorithm" json:"MarginAlgorithm,omitempty"` // 保证金计算方式 MarketMarginValue *float64 `protobuf:"fixed64,4,opt,name=MarketMarginValue" json:"MarketMarginValue,omitempty"` // 即市保证金值 ReckonMarginValue *float64 `protobuf:"fixed64,5,opt,name=ReckonMarginValue" json:"ReckonMarginValue,omitempty"` // 结算保证金值 LockMarginValue *float64 `protobuf:"fixed64,6,opt,name=LockMarginValue" json:"LockMarginValue,omitempty"` // 锁仓保证金 RealMarginValue *float64 `protobuf:"fixed64,7,opt,name=RealMarginValue" json:"RealMarginValue,omitempty"` // 实付比例 RealMarginAlgorithm *uint32 `protobuf:"varint,8,opt,name=RealMarginAlgorithm" json:"RealMarginAlgorithm,omitempty"` // 实付保证金计算方式 IsDefault *uint32 `protobuf:"varint,9,opt,name=IsDefault" json:"IsDefault,omitempty"` // 是否默认标志位 } func (x *GoodsMarginCfgStruct) Reset() { *x = GoodsMarginCfgStruct{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoodsMarginCfgStruct) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoodsMarginCfgStruct) ProtoMessage() {} func (x *GoodsMarginCfgStruct) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 GoodsMarginCfgStruct.ProtoReflect.Descriptor instead. func (*GoodsMarginCfgStruct) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{6} } func (x *GoodsMarginCfgStruct) GetGoodsID() uint32 { if x != nil && x.GoodsID != nil { return *x.GoodsID } return 0 } func (x *GoodsMarginCfgStruct) GetCustomerTypeID() uint32 { if x != nil && x.CustomerTypeID != nil { return *x.CustomerTypeID } return 0 } func (x *GoodsMarginCfgStruct) GetMarginAlgorithm() uint32 { if x != nil && x.MarginAlgorithm != nil { return *x.MarginAlgorithm } return 0 } func (x *GoodsMarginCfgStruct) GetMarketMarginValue() float64 { if x != nil && x.MarketMarginValue != nil { return *x.MarketMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetReckonMarginValue() float64 { if x != nil && x.ReckonMarginValue != nil { return *x.ReckonMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetLockMarginValue() float64 { if x != nil && x.LockMarginValue != nil { return *x.LockMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetRealMarginValue() float64 { if x != nil && x.RealMarginValue != nil { return *x.RealMarginValue } return 0 } func (x *GoodsMarginCfgStruct) GetRealMarginAlgorithm() uint32 { if x != nil && x.RealMarginAlgorithm != nil { return *x.RealMarginAlgorithm } return 0 } func (x *GoodsMarginCfgStruct) GetIsDefault() uint32 { if x != nil && x.IsDefault != nil { return *x.IsDefault } return 0 } // ERMCP2_HEDGEDITEM 被套期项目表 type Ermcp2HedgedItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 HedgedItemID *uint64 `protobuf:"varint,1,opt,name=HedgedItemID" json:"HedgedItemID,omitempty"` // 被套期项目ID(624+Unix秒时间戳(10位)+xxxxxx) HedgedItemNum *string `protobuf:"bytes,2,opt,name=HedgedItemNum" json:"HedgedItemNum,omitempty"` // 项目编号 HedgedItemName *string `protobuf:"bytes,3,opt,name=HedgedItemName" json:"HedgedItemName,omitempty"` // 项目名称 HedgedType *uint64 `protobuf:"varint,4,opt,name=HedgedType" json:"HedgedType,omitempty"` // 套期类型 - 1:采购计划项目 2:销售计划项目 3:现货贸易项目 4:库存存货项目 5:定价采购合同项目 PlanStartDate *Date `protobuf:"bytes,5,opt,name=PlanStartDate" json:"PlanStartDate,omitempty"` // 计划开始日期 --DATE PlanEndDate *Date `protobuf:"bytes,6,opt,name=PlanEndDate" json:"PlanEndDate,omitempty"` // 计划结束日期 --DATE HedgeRate *float64 `protobuf:"fixed64,7,opt,name=HedgeRate" json:"HedgeRate,omitempty"` // 套保比率 TradeUserID *uint64 `protobuf:"varint,8,opt,name=TradeUserID" json:"TradeUserID,omitempty"` // 交易用户ID AreaUserID *uint64 `protobuf:"varint,9,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 企业ID HedgedItemStatus *uint64 `protobuf:"varint,10,opt,name=HedgedItemStatus" json:"HedgedItemStatus,omitempty"` // 项目状态 - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回 ApplySrc *uint64 `protobuf:"varint,11,opt,name=ApplySrc" json:"ApplySrc,omitempty"` // 申请来源 - 1:管理端 2:终端 ApplyID *uint64 `protobuf:"varint,12,opt,name=ApplyID" json:"ApplyID,omitempty"` // 申请人 Remark *string `protobuf:"bytes,13,opt,name=Remark" json:"Remark,omitempty"` // 备注 CreateTime *Date `protobuf:"bytes,14,opt,name=CreateTime" json:"CreateTime,omitempty"` // 申请时间 --DATE AuditTradeDate *string `protobuf:"bytes,15,opt,name=AuditTradeDate" json:"AuditTradeDate,omitempty"` // 审核交易日(yyyyMMdd) AuditID *uint64 `protobuf:"varint,16,opt,name=AuditID" json:"AuditID,omitempty"` // 审核人 AuditSrc *uint64 `protobuf:"varint,17,opt,name=AuditSrc" json:"AuditSrc,omitempty"` // 审核来源 - 1:管理端 2:终端 AuditTime *string `protobuf:"bytes,18,opt,name=AuditTime" json:"AuditTime,omitempty"` // 审核时间 --DATE AuditRemark *string `protobuf:"bytes,19,opt,name=AuditRemark" json:"AuditRemark,omitempty"` // 审核备注 DeliveryGoodsID *uint64 `protobuf:"varint,20,opt,name=DeliveryGoodsID" json:"DeliveryGoodsID,omitempty"` // 现货品种ID WrStandardID *uint64 `protobuf:"varint,21,opt,name=WrStandardID" json:"WrStandardID,omitempty"` // 现货商品ID VatRate *float64 `protobuf:"fixed64,22,opt,name=VatRate" json:"VatRate,omitempty"` // 增值税 HedgeQty *float64 `protobuf:"fixed64,23,opt,name=HedgeQty" json:"HedgeQty,omitempty"` // 套期现货量 HedgeAmount *float64 `protobuf:"fixed64,24,opt,name=HedgeAmount" json:"HedgeAmount,omitempty"` // 套期市价总额 HedgeRestAmount *float64 `protobuf:"fixed64,25,opt,name=HedgeRestAmount" json:"HedgeRestAmount,omitempty"` // 套期剩余市价总额【现货贸易】 HedgeContractAmount *float64 `protobuf:"fixed64,26,opt,name=HedgeContractAmount" json:"HedgeContractAmount,omitempty"` // 套期定价总额 【定价采购合同】【现货贸易】 OriAvgPrice *float64 `protobuf:"fixed64,27,opt,name=OriAvgPrice" json:"OriAvgPrice,omitempty"` // 期初市场均价 = 套期市价总额 / 套期现货量 ExeQty *float64 `protobuf:"fixed64,28,opt,name=ExeQty" json:"ExeQty,omitempty"` // 执行现货量 ExeAmount *float64 `protobuf:"fixed64,29,opt,name=ExeAmount" json:"ExeAmount,omitempty"` // 执行市价总额 ExeRestAmount *float64 `protobuf:"fixed64,30,opt,name=ExeRestAmount" json:"ExeRestAmount,omitempty"` // 执行剩余市价总额【现货贸易】 ExeAvgPrice *float64 `protobuf:"fixed64,31,opt,name=ExeAvgPrice" json:"ExeAvgPrice,omitempty"` // 执行市场均价= 执行市价总额 / 执行现货量 ExeContractAmount *float64 `protobuf:"fixed64,32,opt,name=ExeContractAmount" json:"ExeContractAmount,omitempty"` // 执行定价总额 CurPrice *float64 `protobuf:"fixed64,33,opt,name=CurPrice" json:"CurPrice,omitempty"` // 当前市场价 UnExeQty *float64 `protobuf:"fixed64,34,opt,name=UnExeQty" json:"UnExeQty,omitempty"` // 未执行现货量 = 套期现货量 - 执行现货量 SpotHedgePL *float64 `protobuf:"fixed64,35,opt,name=SpotHedgePL" json:"SpotHedgePL,omitempty"` // 现货套期损益 =(执行市场均价-期初市场均价)*执行现货量 * 方向(销售计划 为 -1, 其它为1) SpotPL *float64 `protobuf:"fixed64,36,opt,name=SpotPL" json:"SpotPL,omitempty"` // 现货套期损益 = 现货实际损益 + 现货浮动损益 FutureHedgePL *float64 `protobuf:"fixed64,37,opt,name=FutureHedgePL" json:"FutureHedgePL,omitempty"` // 期货实际损益 FuturePL *float64 `protobuf:"fixed64,38,opt,name=FuturePL" json:"FuturePL,omitempty"` // 期货套期损益 HedgeSumPL *float64 `protobuf:"fixed64,39,opt,name=HedgeSumPL" json:"HedgeSumPL,omitempty"` // 套期汇总损益 = 期货汇总损益 + 现货汇总损益 SpotTradePL *float64 `protobuf:"fixed64,40,opt,name=SpotTradePL" json:"SpotTradePL,omitempty"` // 现货贸易损益【现货贸易】= 执行合同定价总额 - 套期合同定价总额 VatPL *float64 `protobuf:"fixed64,41,opt,name=VatPL" json:"VatPL,omitempty"` // 增值税损益【现货贸易】= 现货贸易损益 * (增值税率 /(1+增值税率)) SumObsPL *float64 `protobuf:"fixed64,42,opt,name=SumObsPL" json:"SumObsPL,omitempty"` // 汇总绝对损益【现货贸易】=现货贸易损益+增值税损益+期货套期损益 SpotBookAmount *float64 `protobuf:"fixed64,43,opt,name=SpotBookAmount" json:"SpotBookAmount,omitempty"` // 现货账面总额 CurStock *float64 `protobuf:"fixed64,44,opt,name=CurStock" json:"CurStock,omitempty"` // 期末库存量 = 采购总量 - 销售总量 EndDate *Date `protobuf:"bytes,45,opt,name=EndDate" json:"EndDate,omitempty"` // 完成日期 --DATE EndTradeDate *string `protobuf:"bytes,46,opt,name=EndTradeDate" json:"EndTradeDate,omitempty"` // 完成交易日 UpdateTime *Date `protobuf:"bytes,47,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 --DATE OriSpotHedgePL *float64 `protobuf:"fixed64,48,opt,name=OriSpotHedgePL" json:"OriSpotHedgePL,omitempty"` // 期初现货实际损益 OriFutureHedgePL *float64 `protobuf:"fixed64,49,opt,name=OriFutureHedgePL" json:"OriFutureHedgePL,omitempty"` // 期初期货实际损益 OriSpotPL *float64 `protobuf:"fixed64,50,opt,name=OriSpotPL" json:"OriSpotPL,omitempty"` // 期初现货套期损益 OriFuturePL *float64 `protobuf:"fixed64,51,opt,name=OriFuturePL" json:"OriFuturePL,omitempty"` // 期初期货套期损益 SpotFloatPL *float64 `protobuf:"fixed64,52,opt,name=SpotFloatPL" json:"SpotFloatPL,omitempty"` // 现货浮动损益 =(当前市场价 - 期初市场价)*未执行现货量 * 方向(销售计划 为 -1, 其它为1) FutureFloatPL *float64 `protobuf:"fixed64,53,opt,name=FutureFloatPL" json:"FutureFloatPL,omitempty"` // 期货浮动损益 IsRelated *uint32 `protobuf:"varint,54,opt,name=IsRelated" json:"IsRelated,omitempty"` //是否关联 - 0:未关联 1:已关联 } func (x *Ermcp2HedgedItem) Reset() { *x = Ermcp2HedgedItem{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ermcp2HedgedItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ermcp2HedgedItem) ProtoMessage() {} func (x *Ermcp2HedgedItem) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Ermcp2HedgedItem.ProtoReflect.Descriptor instead. func (*Ermcp2HedgedItem) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{7} } func (x *Ermcp2HedgedItem) GetHedgedItemID() uint64 { if x != nil && x.HedgedItemID != nil { return *x.HedgedItemID } return 0 } func (x *Ermcp2HedgedItem) GetHedgedItemNum() string { if x != nil && x.HedgedItemNum != nil { return *x.HedgedItemNum } return "" } func (x *Ermcp2HedgedItem) GetHedgedItemName() string { if x != nil && x.HedgedItemName != nil { return *x.HedgedItemName } return "" } func (x *Ermcp2HedgedItem) GetHedgedType() uint64 { if x != nil && x.HedgedType != nil { return *x.HedgedType } return 0 } func (x *Ermcp2HedgedItem) GetPlanStartDate() *Date { if x != nil { return x.PlanStartDate } return nil } func (x *Ermcp2HedgedItem) GetPlanEndDate() *Date { if x != nil { return x.PlanEndDate } return nil } func (x *Ermcp2HedgedItem) GetHedgeRate() float64 { if x != nil && x.HedgeRate != nil { return *x.HedgeRate } return 0 } func (x *Ermcp2HedgedItem) GetTradeUserID() uint64 { if x != nil && x.TradeUserID != nil { return *x.TradeUserID } return 0 } func (x *Ermcp2HedgedItem) GetAreaUserID() uint64 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *Ermcp2HedgedItem) GetHedgedItemStatus() uint64 { if x != nil && x.HedgedItemStatus != nil { return *x.HedgedItemStatus } return 0 } func (x *Ermcp2HedgedItem) GetApplySrc() uint64 { if x != nil && x.ApplySrc != nil { return *x.ApplySrc } return 0 } func (x *Ermcp2HedgedItem) GetApplyID() uint64 { if x != nil && x.ApplyID != nil { return *x.ApplyID } return 0 } func (x *Ermcp2HedgedItem) GetRemark() string { if x != nil && x.Remark != nil { return *x.Remark } return "" } func (x *Ermcp2HedgedItem) GetCreateTime() *Date { if x != nil { return x.CreateTime } return nil } func (x *Ermcp2HedgedItem) GetAuditTradeDate() string { if x != nil && x.AuditTradeDate != nil { return *x.AuditTradeDate } return "" } func (x *Ermcp2HedgedItem) GetAuditID() uint64 { if x != nil && x.AuditID != nil { return *x.AuditID } return 0 } func (x *Ermcp2HedgedItem) GetAuditSrc() uint64 { if x != nil && x.AuditSrc != nil { return *x.AuditSrc } return 0 } func (x *Ermcp2HedgedItem) GetAuditTime() string { if x != nil && x.AuditTime != nil { return *x.AuditTime } return "" } func (x *Ermcp2HedgedItem) GetAuditRemark() string { if x != nil && x.AuditRemark != nil { return *x.AuditRemark } return "" } func (x *Ermcp2HedgedItem) GetDeliveryGoodsID() uint64 { if x != nil && x.DeliveryGoodsID != nil { return *x.DeliveryGoodsID } return 0 } func (x *Ermcp2HedgedItem) GetWrStandardID() uint64 { if x != nil && x.WrStandardID != nil { return *x.WrStandardID } return 0 } func (x *Ermcp2HedgedItem) GetVatRate() float64 { if x != nil && x.VatRate != nil { return *x.VatRate } return 0 } func (x *Ermcp2HedgedItem) GetHedgeQty() float64 { if x != nil && x.HedgeQty != nil { return *x.HedgeQty } return 0 } func (x *Ermcp2HedgedItem) GetHedgeAmount() float64 { if x != nil && x.HedgeAmount != nil { return *x.HedgeAmount } return 0 } func (x *Ermcp2HedgedItem) GetHedgeRestAmount() float64 { if x != nil && x.HedgeRestAmount != nil { return *x.HedgeRestAmount } return 0 } func (x *Ermcp2HedgedItem) GetHedgeContractAmount() float64 { if x != nil && x.HedgeContractAmount != nil { return *x.HedgeContractAmount } return 0 } func (x *Ermcp2HedgedItem) GetOriAvgPrice() float64 { if x != nil && x.OriAvgPrice != nil { return *x.OriAvgPrice } return 0 } func (x *Ermcp2HedgedItem) GetExeQty() float64 { if x != nil && x.ExeQty != nil { return *x.ExeQty } return 0 } func (x *Ermcp2HedgedItem) GetExeAmount() float64 { if x != nil && x.ExeAmount != nil { return *x.ExeAmount } return 0 } func (x *Ermcp2HedgedItem) GetExeRestAmount() float64 { if x != nil && x.ExeRestAmount != nil { return *x.ExeRestAmount } return 0 } func (x *Ermcp2HedgedItem) GetExeAvgPrice() float64 { if x != nil && x.ExeAvgPrice != nil { return *x.ExeAvgPrice } return 0 } func (x *Ermcp2HedgedItem) GetExeContractAmount() float64 { if x != nil && x.ExeContractAmount != nil { return *x.ExeContractAmount } return 0 } func (x *Ermcp2HedgedItem) GetCurPrice() float64 { if x != nil && x.CurPrice != nil { return *x.CurPrice } return 0 } func (x *Ermcp2HedgedItem) GetUnExeQty() float64 { if x != nil && x.UnExeQty != nil { return *x.UnExeQty } return 0 } func (x *Ermcp2HedgedItem) GetSpotHedgePL() float64 { if x != nil && x.SpotHedgePL != nil { return *x.SpotHedgePL } return 0 } func (x *Ermcp2HedgedItem) GetSpotPL() float64 { if x != nil && x.SpotPL != nil { return *x.SpotPL } return 0 } func (x *Ermcp2HedgedItem) GetFutureHedgePL() float64 { if x != nil && x.FutureHedgePL != nil { return *x.FutureHedgePL } return 0 } func (x *Ermcp2HedgedItem) GetFuturePL() float64 { if x != nil && x.FuturePL != nil { return *x.FuturePL } return 0 } func (x *Ermcp2HedgedItem) GetHedgeSumPL() float64 { if x != nil && x.HedgeSumPL != nil { return *x.HedgeSumPL } return 0 } func (x *Ermcp2HedgedItem) GetSpotTradePL() float64 { if x != nil && x.SpotTradePL != nil { return *x.SpotTradePL } return 0 } func (x *Ermcp2HedgedItem) GetVatPL() float64 { if x != nil && x.VatPL != nil { return *x.VatPL } return 0 } func (x *Ermcp2HedgedItem) GetSumObsPL() float64 { if x != nil && x.SumObsPL != nil { return *x.SumObsPL } return 0 } func (x *Ermcp2HedgedItem) GetSpotBookAmount() float64 { if x != nil && x.SpotBookAmount != nil { return *x.SpotBookAmount } return 0 } func (x *Ermcp2HedgedItem) GetCurStock() float64 { if x != nil && x.CurStock != nil { return *x.CurStock } return 0 } func (x *Ermcp2HedgedItem) GetEndDate() *Date { if x != nil { return x.EndDate } return nil } func (x *Ermcp2HedgedItem) GetEndTradeDate() string { if x != nil && x.EndTradeDate != nil { return *x.EndTradeDate } return "" } func (x *Ermcp2HedgedItem) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } func (x *Ermcp2HedgedItem) GetOriSpotHedgePL() float64 { if x != nil && x.OriSpotHedgePL != nil { return *x.OriSpotHedgePL } return 0 } func (x *Ermcp2HedgedItem) GetOriFutureHedgePL() float64 { if x != nil && x.OriFutureHedgePL != nil { return *x.OriFutureHedgePL } return 0 } func (x *Ermcp2HedgedItem) GetOriSpotPL() float64 { if x != nil && x.OriSpotPL != nil { return *x.OriSpotPL } return 0 } func (x *Ermcp2HedgedItem) GetOriFuturePL() float64 { if x != nil && x.OriFuturePL != nil { return *x.OriFuturePL } return 0 } func (x *Ermcp2HedgedItem) GetSpotFloatPL() float64 { if x != nil && x.SpotFloatPL != nil { return *x.SpotFloatPL } return 0 } func (x *Ermcp2HedgedItem) GetFutureFloatPL() float64 { if x != nil && x.FutureFloatPL != nil { return *x.FutureFloatPL } return 0 } func (x *Ermcp2HedgedItem) GetIsRelated() uint32 { if x != nil && x.IsRelated != nil { return *x.IsRelated } return 0 } // ERMCP2_HEDGEDITEM 被套期项目表扩展 type Ermcp2HedgedItemExt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Item *Ermcp2HedgedItem `protobuf:"bytes,1,opt,name=item" json:"item,omitempty"` Accountname *string `protobuf:"bytes,2,opt,name=accountname" json:"accountname,omitempty"` Wrstandardname *string `protobuf:"bytes,3,opt,name=wrstandardname" json:"wrstandardname,omitempty"` Unitid *uint32 `protobuf:"varint,4,opt,name=unitid" json:"unitid,omitempty"` } func (x *Ermcp2HedgedItemExt) Reset() { *x = Ermcp2HedgedItemExt{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ermcp2HedgedItemExt) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ermcp2HedgedItemExt) ProtoMessage() {} func (x *Ermcp2HedgedItemExt) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Ermcp2HedgedItemExt.ProtoReflect.Descriptor instead. func (*Ermcp2HedgedItemExt) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{8} } func (x *Ermcp2HedgedItemExt) GetItem() *Ermcp2HedgedItem { if x != nil { return x.Item } return nil } func (x *Ermcp2HedgedItemExt) GetAccountname() string { if x != nil && x.Accountname != nil { return *x.Accountname } return "" } func (x *Ermcp2HedgedItemExt) GetWrstandardname() string { if x != nil && x.Wrstandardname != nil { return *x.Wrstandardname } return "" } func (x *Ermcp2HedgedItemExt) GetUnitid() uint32 { if x != nil && x.Unitid != nil { return *x.Unitid } return 0 } // ERMCP2_HIMIDDLEGOODS 项目套保品种明细 type Ermcp2HIMiddleGoods struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 2 HedgedItemID *uint64 `protobuf:"varint,1,opt,name=HedgedItemID" json:"HedgedItemID,omitempty"` // 被套期项目ID(624+Unix秒时间戳(10位)+xxxxxx) MiddleGoodsID *uint64 `protobuf:"varint,2,opt,name=MiddleGoodsID" json:"MiddleGoodsID,omitempty"` // 套保品种ID DeliveryGoodsID *uint64 `protobuf:"varint,3,opt,name=DeliveryGoodsID" json:"DeliveryGoodsID,omitempty"` // 现货品种ID WrstandardID *uint64 `protobuf:"varint,4,opt,name=WrstandardID" json:"WrstandardID,omitempty"` // 现货商品ID VatRate *float64 `protobuf:"fixed64,5,opt,name=VatRate" json:"VatRate,omitempty"` // 增值税 SpotConvertRatio *float64 `protobuf:"fixed64,6,opt,name=SpotConvertRatio" json:"SpotConvertRatio,omitempty"` // 折算系数 [现货] UnexeSpotQty *float64 `protobuf:"fixed64,7,opt,name=UnexeSpotQty" json:"UnexeSpotQty,omitempty"` // 未执行现货量 UnexeHedgeQty *float64 `protobuf:"fixed64,8,opt,name=UnexeHedgeQty" json:"UnexeHedgeQty,omitempty"` // 未执行套期量 = 未执行现货量*折算系数* (1/(1+增值税)) * 套期比例(项目上) FutureHedgeQty *float64 `protobuf:"fixed64,9,opt,name=FutureHedgeQty" json:"FutureHedgeQty,omitempty"` // 期货持仓套期量 HIExpsoure *float64 `protobuf:"fixed64,10,opt,name=HIExpsoure" json:"HIExpsoure,omitempty"` // 期现敞口量 = 未执行套期量 + 期货持仓套期量 TradeUserID *uint64 `protobuf:"varint,11,opt,name=TradeUserID" json:"TradeUserID,omitempty"` // 交易用户ID AreaUserID *uint64 `protobuf:"varint,12,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 企业ID CreateTime *Date `protobuf:"bytes,13,opt,name=CreateTime" json:"CreateTime,omitempty"` // 创建时间 --DATE UpdateTime *Date `protobuf:"bytes,14,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 --DATE } func (x *Ermcp2HIMiddleGoods) Reset() { *x = Ermcp2HIMiddleGoods{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ermcp2HIMiddleGoods) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ermcp2HIMiddleGoods) ProtoMessage() {} func (x *Ermcp2HIMiddleGoods) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Ermcp2HIMiddleGoods.ProtoReflect.Descriptor instead. func (*Ermcp2HIMiddleGoods) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{9} } func (x *Ermcp2HIMiddleGoods) GetHedgedItemID() uint64 { if x != nil && x.HedgedItemID != nil { return *x.HedgedItemID } return 0 } func (x *Ermcp2HIMiddleGoods) GetMiddleGoodsID() uint64 { if x != nil && x.MiddleGoodsID != nil { return *x.MiddleGoodsID } return 0 } func (x *Ermcp2HIMiddleGoods) GetDeliveryGoodsID() uint64 { if x != nil && x.DeliveryGoodsID != nil { return *x.DeliveryGoodsID } return 0 } func (x *Ermcp2HIMiddleGoods) GetWrstandardID() uint64 { if x != nil && x.WrstandardID != nil { return *x.WrstandardID } return 0 } func (x *Ermcp2HIMiddleGoods) GetVatRate() float64 { if x != nil && x.VatRate != nil { return *x.VatRate } return 0 } func (x *Ermcp2HIMiddleGoods) GetSpotConvertRatio() float64 { if x != nil && x.SpotConvertRatio != nil { return *x.SpotConvertRatio } return 0 } func (x *Ermcp2HIMiddleGoods) GetUnexeSpotQty() float64 { if x != nil && x.UnexeSpotQty != nil { return *x.UnexeSpotQty } return 0 } func (x *Ermcp2HIMiddleGoods) GetUnexeHedgeQty() float64 { if x != nil && x.UnexeHedgeQty != nil { return *x.UnexeHedgeQty } return 0 } func (x *Ermcp2HIMiddleGoods) GetFutureHedgeQty() float64 { if x != nil && x.FutureHedgeQty != nil { return *x.FutureHedgeQty } return 0 } func (x *Ermcp2HIMiddleGoods) GetHIExpsoure() float64 { if x != nil && x.HIExpsoure != nil { return *x.HIExpsoure } return 0 } func (x *Ermcp2HIMiddleGoods) GetTradeUserID() uint64 { if x != nil && x.TradeUserID != nil { return *x.TradeUserID } return 0 } func (x *Ermcp2HIMiddleGoods) GetAreaUserID() uint64 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *Ermcp2HIMiddleGoods) GetCreateTime() *Date { if x != nil { return x.CreateTime } return nil } func (x *Ermcp2HIMiddleGoods) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } // ERMCP2_HIMIDDLEGOODS 项目套保品种明细扩展 type Ermcp2HIMiddleGoodsExt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Middlegoods *Ermcp2HIMiddleGoods `protobuf:"bytes,1,opt,name=middlegoods" json:"middlegoods,omitempty"` Middlegoodsname *string `protobuf:"bytes,2,opt,name=middlegoodsname" json:"middlegoodsname,omitempty"` } func (x *Ermcp2HIMiddleGoodsExt) Reset() { *x = Ermcp2HIMiddleGoodsExt{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ermcp2HIMiddleGoodsExt) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ermcp2HIMiddleGoodsExt) ProtoMessage() {} func (x *Ermcp2HIMiddleGoodsExt) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Ermcp2HIMiddleGoodsExt.ProtoReflect.Descriptor instead. func (*Ermcp2HIMiddleGoodsExt) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{10} } func (x *Ermcp2HIMiddleGoodsExt) GetMiddlegoods() *Ermcp2HIMiddleGoods { if x != nil { return x.Middlegoods } return nil } func (x *Ermcp2HIMiddleGoodsExt) GetMiddlegoodsname() string { if x != nil && x.Middlegoodsname != nil { return *x.Middlegoodsname } return "" } //被套期项目表信息 type Ermcp2HedgedItemInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Hedgeditemext *Ermcp2HedgedItemExt `protobuf:"bytes,1,opt,name=hedgeditemext" json:"hedgeditemext,omitempty"` //被套期项目 Himiddlegoodsext []*Ermcp2HIMiddleGoodsExt `protobuf:"bytes,2,rep,name=himiddlegoodsext" json:"himiddlegoodsext,omitempty"` } func (x *Ermcp2HedgedItemInfo) Reset() { *x = Ermcp2HedgedItemInfo{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ermcp2HedgedItemInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ermcp2HedgedItemInfo) ProtoMessage() {} func (x *Ermcp2HedgedItemInfo) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Ermcp2HedgedItemInfo.ProtoReflect.Descriptor instead. func (*Ermcp2HedgedItemInfo) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{11} } func (x *Ermcp2HedgedItemInfo) GetHedgeditemext() *Ermcp2HedgedItemExt { if x != nil { return x.Hedgeditemext } return nil } func (x *Ermcp2HedgedItemInfo) GetHimiddlegoodsext() []*Ermcp2HIMiddleGoodsExt { if x != nil { return x.Himiddlegoodsext } return nil } // ERMCP2_AREAEXPOSURE 企业敞口表_New type Ermcp2AreaExposure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //mkey: 1 2 MiddleGoodsID *uint64 `protobuf:"varint,1,opt,name=MiddleGoodsID" json:"MiddleGoodsID,omitempty"` // 套保品种 AreaUserID *uint64 `protobuf:"varint,2,opt,name=AreaUserID" json:"AreaUserID,omitempty"` // 所属机构 SpotQty *float64 `protobuf:"fixed64,3,opt,name=SpotQty" json:"SpotQty,omitempty"` // 现货总量 HedgeSpotQty *float64 `protobuf:"fixed64,4,opt,name=HedgeSpotQty" json:"HedgeSpotQty,omitempty"` // 被套期现货量 HedgePlanQty *float64 `protobuf:"fixed64,5,opt,name=HedgePlanQty" json:"HedgePlanQty,omitempty"` // 套期计划量 FutureQty *float64 `protobuf:"fixed64,6,opt,name=FutureQty" json:"FutureQty,omitempty"` // 期货套期量 SpotExposure *float64 `protobuf:"fixed64,7,opt,name=SpotExposure" json:"SpotExposure,omitempty"` // 现货敞口量 TotalExposure *float64 `protobuf:"fixed64,8,opt,name=TotalExposure" json:"TotalExposure,omitempty"` // 总敞口量 = 现货敞口量 + 期货套期量 SpRatio *float64 `protobuf:"fixed64,9,opt,name=SpRatio" json:"SpRatio,omitempty"` // 总期现比例 = 期货套期量/现货敞口量 HedgedSpotExposure *float64 `protobuf:"fixed64,10,opt,name=HedgedSpotExposure" json:"HedgedSpotExposure,omitempty"` // 被套期现货敞口量 HedgedTotalExposure *float64 `protobuf:"fixed64,11,opt,name=HedgedTotalExposure" json:"HedgedTotalExposure,omitempty"` // 套期敞口量 = 被套期现货敞口量+期货套期量 HedgedSpRatio *float64 `protobuf:"fixed64,12,opt,name=HedgedSpRatio" json:"HedgedSpRatio,omitempty"` // 套期期现比例 = 期货套期量/被套期现货敞口量 OriSpotQty *float64 `protobuf:"fixed64,13,opt,name=OriSpotQty" json:"OriSpotQty,omitempty"` // 期初现货总量 OriHedgeSpotQty *float64 `protobuf:"fixed64,14,opt,name=OriHedgeSpotQty" json:"OriHedgeSpotQty,omitempty"` // 期初被套期现货量 OriHedgePlanQty *float64 `protobuf:"fixed64,15,opt,name=OriHedgePlanQty" json:"OriHedgePlanQty,omitempty"` // 期初套期计划量 OriFutureQty *float64 `protobuf:"fixed64,16,opt,name=OriFutureQty" json:"OriFutureQty,omitempty"` // 期初期货套期量 OriSpotExposure *float64 `protobuf:"fixed64,17,opt,name=OriSpotExposure" json:"OriSpotExposure,omitempty"` // 期初现货敞口量 OriTotalExposure *float64 `protobuf:"fixed64,18,opt,name=OriTotalExposure" json:"OriTotalExposure,omitempty"` // 期初总敞口量 OriHedgedSpotExposure *float64 `protobuf:"fixed64,19,opt,name=OriHedgedSpotExposure" json:"OriHedgedSpotExposure,omitempty"` // 期初被套期现货敞口量 OriHedgedTotalExposure *float64 `protobuf:"fixed64,20,opt,name=OriHedgedTotalExposure" json:"OriHedgedTotalExposure,omitempty"` // 期初套期敞口量 UpdateTime *Date `protobuf:"bytes,21,opt,name=UpdateTime" json:"UpdateTime,omitempty"` // 更新时间 --DATE MiddleGoodsName *string `protobuf:"bytes,22,opt,name=MiddleGoodsName" json:"MiddleGoodsName,omitempty"` //套保品种名称 GoodsUnitID *uint32 `protobuf:"varint,23,opt,name=GoodsUnitID" json:"GoodsUnitID,omitempty"` //单位ID } func (x *Ermcp2AreaExposure) Reset() { *x = Ermcp2AreaExposure{} if protoimpl.UnsafeEnabled { mi := &file_mtp2_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ermcp2AreaExposure) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ermcp2AreaExposure) ProtoMessage() {} func (x *Ermcp2AreaExposure) ProtoReflect() protoreflect.Message { mi := &file_mtp2_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 Ermcp2AreaExposure.ProtoReflect.Descriptor instead. func (*Ermcp2AreaExposure) Descriptor() ([]byte, []int) { return file_mtp2_proto_rawDescGZIP(), []int{12} } func (x *Ermcp2AreaExposure) GetMiddleGoodsID() uint64 { if x != nil && x.MiddleGoodsID != nil { return *x.MiddleGoodsID } return 0 } func (x *Ermcp2AreaExposure) GetAreaUserID() uint64 { if x != nil && x.AreaUserID != nil { return *x.AreaUserID } return 0 } func (x *Ermcp2AreaExposure) GetSpotQty() float64 { if x != nil && x.SpotQty != nil { return *x.SpotQty } return 0 } func (x *Ermcp2AreaExposure) GetHedgeSpotQty() float64 { if x != nil && x.HedgeSpotQty != nil { return *x.HedgeSpotQty } return 0 } func (x *Ermcp2AreaExposure) GetHedgePlanQty() float64 { if x != nil && x.HedgePlanQty != nil { return *x.HedgePlanQty } return 0 } func (x *Ermcp2AreaExposure) GetFutureQty() float64 { if x != nil && x.FutureQty != nil { return *x.FutureQty } return 0 } func (x *Ermcp2AreaExposure) GetSpotExposure() float64 { if x != nil && x.SpotExposure != nil { return *x.SpotExposure } return 0 } func (x *Ermcp2AreaExposure) GetTotalExposure() float64 { if x != nil && x.TotalExposure != nil { return *x.TotalExposure } return 0 } func (x *Ermcp2AreaExposure) GetSpRatio() float64 { if x != nil && x.SpRatio != nil { return *x.SpRatio } return 0 } func (x *Ermcp2AreaExposure) GetHedgedSpotExposure() float64 { if x != nil && x.HedgedSpotExposure != nil { return *x.HedgedSpotExposure } return 0 } func (x *Ermcp2AreaExposure) GetHedgedTotalExposure() float64 { if x != nil && x.HedgedTotalExposure != nil { return *x.HedgedTotalExposure } return 0 } func (x *Ermcp2AreaExposure) GetHedgedSpRatio() float64 { if x != nil && x.HedgedSpRatio != nil { return *x.HedgedSpRatio } return 0 } func (x *Ermcp2AreaExposure) GetOriSpotQty() float64 { if x != nil && x.OriSpotQty != nil { return *x.OriSpotQty } return 0 } func (x *Ermcp2AreaExposure) GetOriHedgeSpotQty() float64 { if x != nil && x.OriHedgeSpotQty != nil { return *x.OriHedgeSpotQty } return 0 } func (x *Ermcp2AreaExposure) GetOriHedgePlanQty() float64 { if x != nil && x.OriHedgePlanQty != nil { return *x.OriHedgePlanQty } return 0 } func (x *Ermcp2AreaExposure) GetOriFutureQty() float64 { if x != nil && x.OriFutureQty != nil { return *x.OriFutureQty } return 0 } func (x *Ermcp2AreaExposure) GetOriSpotExposure() float64 { if x != nil && x.OriSpotExposure != nil { return *x.OriSpotExposure } return 0 } func (x *Ermcp2AreaExposure) GetOriTotalExposure() float64 { if x != nil && x.OriTotalExposure != nil { return *x.OriTotalExposure } return 0 } func (x *Ermcp2AreaExposure) GetOriHedgedSpotExposure() float64 { if x != nil && x.OriHedgedSpotExposure != nil { return *x.OriHedgedSpotExposure } return 0 } func (x *Ermcp2AreaExposure) GetOriHedgedTotalExposure() float64 { if x != nil && x.OriHedgedTotalExposure != nil { return *x.OriHedgedTotalExposure } return 0 } func (x *Ermcp2AreaExposure) GetUpdateTime() *Date { if x != nil { return x.UpdateTime } return nil } func (x *Ermcp2AreaExposure) GetMiddleGoodsName() string { if x != nil && x.MiddleGoodsName != nil { return *x.MiddleGoodsName } return "" } func (x *Ermcp2AreaExposure) GetGoodsUnitID() uint32 { if x != nil && x.GoodsUnitID != nil { return *x.GoodsUnitID } return 0 } var File_mtp2_proto protoreflect.FileDescriptor var file_mtp2_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x6d, 0x74, 0x70, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x43, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7c, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x20, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x22, 0xea, 0x0a, 0x0a, 0x16, 0x45, 0x72, 0x6d, 0x73, 0x32, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x53, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x41, 0x53, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x53, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x53, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x4e, 0x6f, 0x54, 0x61, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x4e, 0x6f, 0x54, 0x61, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x61, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x4c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x42, 0x61, 0x73, 0x69, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x43, 0x75, 0x72, 0x42, 0x61, 0x73, 0x69, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x73, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x42, 0x61, 0x73, 0x69, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4e, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x55, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x51, 0x74, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x75, 0x79, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x74, 0x79, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x6c, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x44, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x41, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd1, 0x03, 0x0a, 0x0d, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x41, 0x72, 0x65, 0x61, 0x53, 0x70, 0x6f, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf5, 0x06, 0x0a, 0x11, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x41, 0x72, 0x65, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x42, 0x75, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x64, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x42, 0x75, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x53, 0x65, 0x6c, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4e, 0x65, 0x65, 0x64, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x14, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x43, 0x66, 0x67, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6b, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x52, 0x65, 0x63, 0x6b, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x52, 0x65, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xca, 0x0e, 0x0a, 0x10, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x75, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x50, 0x6c, 0x61, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x6e, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x72, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x72, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x75, 0x64, 0x69, 0x74, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x41, 0x75, 0x64, 0x69, 0x74, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x72, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x41, 0x75, 0x64, 0x69, 0x74, 0x53, 0x72, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x75, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x75, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x72, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x61, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x56, 0x61, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x65, 0x64, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x48, 0x65, 0x64, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x48, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x48, 0x65, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x48, 0x65, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x72, 0x69, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4f, 0x72, 0x69, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x65, 0x51, 0x74, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x45, 0x78, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x45, 0x78, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x52, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x45, 0x78, 0x65, 0x52, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x45, 0x78, 0x65, 0x41, 0x76, 0x67, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x45, 0x78, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x43, 0x75, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x6e, 0x45, 0x78, 0x65, 0x51, 0x74, 0x79, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x55, 0x6e, 0x45, 0x78, 0x65, 0x51, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x65, 0x64, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x4c, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x48, 0x65, 0x64, 0x67, 0x65, 0x53, 0x75, 0x6d, 0x50, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x4c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x50, 0x4c, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x74, 0x50, 0x4c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x56, 0x61, 0x74, 0x50, 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x75, 0x6d, 0x4f, 0x62, 0x73, 0x50, 0x4c, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x53, 0x75, 0x6d, 0x4f, 0x62, 0x73, 0x50, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x53, 0x74, 0x6f, 0x63, 0x6b, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x43, 0x75, 0x72, 0x53, 0x74, 0x6f, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x45, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x64, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x30, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x18, 0x31, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x50, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x72, 0x69, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x18, 0x33, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x4f, 0x72, 0x69, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x4c, 0x18, 0x34, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x53, 0x70, 0x6f, 0x74, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x4c, 0x12, 0x24, 0x0a, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x4c, 0x18, 0x35, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x50, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x13, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x64, 0x22, 0x9b, 0x04, 0x0a, 0x13, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x49, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x57, 0x72, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x61, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x56, 0x61, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x53, 0x70, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x55, 0x6e, 0x65, 0x78, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x55, 0x6e, 0x65, 0x78, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x55, 0x6e, 0x65, 0x78, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x55, 0x6e, 0x65, 0x78, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x48, 0x65, 0x64, 0x67, 0x65, 0x51, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x49, 0x45, 0x78, 0x70, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x48, 0x49, 0x45, 0x78, 0x70, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7d, 0x0a, 0x16, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x49, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x78, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x49, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x52, 0x0b, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x14, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x0d, 0x68, 0x65, 0x64, 0x67, 0x65, 0x64, 0x69, 0x74, 0x65, 0x6d, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x78, 0x74, 0x52, 0x0d, 0x68, 0x65, 0x64, 0x67, 0x65, 0x64, 0x69, 0x74, 0x65, 0x6d, 0x65, 0x78, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x68, 0x69, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x48, 0x49, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x45, 0x78, 0x74, 0x52, 0x10, 0x68, 0x69, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x67, 0x6f, 0x6f, 0x64, 0x73, 0x65, 0x78, 0x74, 0x22, 0x98, 0x07, 0x0a, 0x12, 0x45, 0x72, 0x6d, 0x63, 0x70, 0x32, 0x41, 0x72, 0x65, 0x61, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x53, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2e, 0x0a, 0x12, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x53, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x53, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x51, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x4f, 0x72, 0x69, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x4f, 0x72, 0x69, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x51, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x4f, 0x72, 0x69, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4f, 0x72, 0x69, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x4f, 0x72, 0x69, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x4f, 0x72, 0x69, 0x48, 0x65, 0x64, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x55, 0x6e, 0x69, 0x74, 0x49, 0x44, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x55, 0x6e, 0x69, 0x74, 0x49, 0x44, } var ( file_mtp2_proto_rawDescOnce sync.Once file_mtp2_proto_rawDescData = file_mtp2_proto_rawDesc ) func file_mtp2_proto_rawDescGZIP() []byte { file_mtp2_proto_rawDescOnce.Do(func() { file_mtp2_proto_rawDescData = protoimpl.X.CompressGZIP(file_mtp2_proto_rawDescData) }) return file_mtp2_proto_rawDescData } var file_mtp2_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_mtp2_proto_goTypes = []interface{}{ (*TradeRule)(nil), // 0: pb.TradeRule (*TradeRuleInfoStruct)(nil), // 1: pb.TradeRuleInfoStruct (*Date)(nil), // 2: pb.Date (*Erms2ArbitrageStrategy)(nil), // 3: pb.Erms2ArbitrageStrategy (*ErmcpAreaSpot)(nil), // 4: pb.ErmcpAreaSpot (*ErmcpAreaExposure)(nil), // 5: pb.ErmcpAreaExposure (*GoodsMarginCfgStruct)(nil), // 6: pb.GoodsMarginCfgStruct (*Ermcp2HedgedItem)(nil), // 7: pb.Ermcp2HedgedItem (*Ermcp2HedgedItemExt)(nil), // 8: pb.Ermcp2HedgedItemExt (*Ermcp2HIMiddleGoods)(nil), // 9: pb.Ermcp2HIMiddleGoods (*Ermcp2HIMiddleGoodsExt)(nil), // 10: pb.Ermcp2HIMiddleGoodsExt (*Ermcp2HedgedItemInfo)(nil), // 11: pb.Ermcp2HedgedItemInfo (*Ermcp2AreaExposure)(nil), // 12: pb.Ermcp2AreaExposure } var file_mtp2_proto_depIdxs = []int32{ 0, // 0: pb.TradeRuleInfoStruct.TradeRules:type_name -> pb.TradeRule 2, // 1: pb.Erms2ArbitrageStrategy.UpDatetime:type_name -> pb.Date 2, // 2: pb.ErmcpAreaSpot.UpdateTime:type_name -> pb.Date 2, // 3: pb.ErmcpAreaExposure.UpdateTime:type_name -> pb.Date 2, // 4: pb.Ermcp2HedgedItem.PlanStartDate:type_name -> pb.Date 2, // 5: pb.Ermcp2HedgedItem.PlanEndDate:type_name -> pb.Date 2, // 6: pb.Ermcp2HedgedItem.CreateTime:type_name -> pb.Date 2, // 7: pb.Ermcp2HedgedItem.EndDate:type_name -> pb.Date 2, // 8: pb.Ermcp2HedgedItem.UpdateTime:type_name -> pb.Date 7, // 9: pb.Ermcp2HedgedItemExt.item:type_name -> pb.Ermcp2HedgedItem 2, // 10: pb.Ermcp2HIMiddleGoods.CreateTime:type_name -> pb.Date 2, // 11: pb.Ermcp2HIMiddleGoods.UpdateTime:type_name -> pb.Date 9, // 12: pb.Ermcp2HIMiddleGoodsExt.middlegoods:type_name -> pb.Ermcp2HIMiddleGoods 8, // 13: pb.Ermcp2HedgedItemInfo.hedgeditemext:type_name -> pb.Ermcp2HedgedItemExt 10, // 14: pb.Ermcp2HedgedItemInfo.himiddlegoodsext:type_name -> pb.Ermcp2HIMiddleGoodsExt 2, // 15: pb.Ermcp2AreaExposure.UpdateTime:type_name -> pb.Date 16, // [16:16] is the sub-list for method output_type 16, // [16:16] is the sub-list for method input_type 16, // [16:16] is the sub-list for extension type_name 16, // [16:16] is the sub-list for extension extendee 0, // [0:16] is the sub-list for field type_name } func init() { file_mtp2_proto_init() } func file_mtp2_proto_init() { if File_mtp2_proto != nil { return } if !protoimpl.UnsafeEnabled { file_mtp2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradeRule); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradeRuleInfoStruct); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Date); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Erms2ArbitrageStrategy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErmcpAreaSpot); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErmcpAreaExposure); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoodsMarginCfgStruct); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ermcp2HedgedItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ermcp2HedgedItemExt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ermcp2HIMiddleGoods); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ermcp2HIMiddleGoodsExt); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ermcp2HedgedItemInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_mtp2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ermcp2AreaExposure); 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_mtp2_proto_rawDesc, NumEnums: 0, NumMessages: 13, NumExtensions: 0, NumServices: 0, }, GoTypes: file_mtp2_proto_goTypes, DependencyIndexes: file_mtp2_proto_depIdxs, MessageInfos: file_mtp2_proto_msgTypes, }.Build() File_mtp2_proto = out.File file_mtp2_proto_rawDesc = nil file_mtp2_proto_goTypes = nil file_mtp2_proto_depIdxs = nil }