rts-sim-testing-service/ts/protos/graphicData/stationLayoutGraphics.pb.go

5714 lines
211 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v4.23.1
// source: stationLayoutGraphics.proto
package graphicData
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// * 左右行 *
type Direction int32
const (
Direction_LEFT Direction = 0
Direction_RIGHT Direction = 1
)
// Enum value maps for Direction.
var (
Direction_name = map[int32]string{
0: "LEFT",
1: "RIGHT",
}
Direction_value = map[string]int32{
"LEFT": 0,
"RIGHT": 1,
}
)
func (x Direction) Enum() *Direction {
p := new(Direction)
*p = x
return p
}
func (x Direction) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Direction) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[0].Descriptor()
}
func (Direction) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[0]
}
func (x Direction) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Direction.Descriptor instead.
func (Direction) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{0}
}
type AxleCounting_TypeDetectionPoint int32
const (
AxleCounting_AxleCounting AxleCounting_TypeDetectionPoint = 0
AxleCounting_SectionBoundary AxleCounting_TypeDetectionPoint = 1
)
// Enum value maps for AxleCounting_TypeDetectionPoint.
var (
AxleCounting_TypeDetectionPoint_name = map[int32]string{
0: "AxleCounting",
1: "SectionBoundary",
}
AxleCounting_TypeDetectionPoint_value = map[string]int32{
"AxleCounting": 0,
"SectionBoundary": 1,
}
)
func (x AxleCounting_TypeDetectionPoint) Enum() *AxleCounting_TypeDetectionPoint {
p := new(AxleCounting_TypeDetectionPoint)
*p = x
return p
}
func (x AxleCounting_TypeDetectionPoint) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AxleCounting_TypeDetectionPoint) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[1].Descriptor()
}
func (AxleCounting_TypeDetectionPoint) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[1]
}
func (x AxleCounting_TypeDetectionPoint) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AxleCounting_TypeDetectionPoint.Descriptor instead.
func (AxleCounting_TypeDetectionPoint) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{12, 0}
}
type Turnout_SwitchMachineType int32
const (
Turnout_Unknown Turnout_SwitchMachineType = 0
Turnout_ZDJ9_Single Turnout_SwitchMachineType = 1
Turnout_ZDJ9_Double Turnout_SwitchMachineType = 2
)
// Enum value maps for Turnout_SwitchMachineType.
var (
Turnout_SwitchMachineType_name = map[int32]string{
0: "Unknown",
1: "ZDJ9_Single",
2: "ZDJ9_Double",
}
Turnout_SwitchMachineType_value = map[string]int32{
"Unknown": 0,
"ZDJ9_Single": 1,
"ZDJ9_Double": 2,
}
)
func (x Turnout_SwitchMachineType) Enum() *Turnout_SwitchMachineType {
p := new(Turnout_SwitchMachineType)
*p = x
return p
}
func (x Turnout_SwitchMachineType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Turnout_SwitchMachineType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[2].Descriptor()
}
func (Turnout_SwitchMachineType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[2]
}
func (x Turnout_SwitchMachineType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Turnout_SwitchMachineType.Descriptor instead.
func (Turnout_SwitchMachineType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{14, 0}
}
// 信号机模型类型枚举
// 从左向右,最左边为靠近灯座的灯
type Signal_Model int32
const (
Signal_HLU Signal_Model = 0 //红绿黄
Signal_HL Signal_Model = 1 //红绿,
Signal_HLU_FU Signal_Model = 2 //红绿黄,封黄灯
Signal_HLU_FL Signal_Model = 3 //红绿黄,封绿
Signal_AB Signal_Model = 4 //蓝白
Signal_HBU Signal_Model = 5 //红白黄
)
// Enum value maps for Signal_Model.
var (
Signal_Model_name = map[int32]string{
0: "HLU",
1: "HL",
2: "HLU_FU",
3: "HLU_FL",
4: "AB",
5: "HBU",
}
Signal_Model_value = map[string]int32{
"HLU": 0,
"HL": 1,
"HLU_FU": 2,
"HLU_FL": 3,
"AB": 4,
"HBU": 5,
}
)
func (x Signal_Model) Enum() *Signal_Model {
p := new(Signal_Model)
*p = x
return p
}
func (x Signal_Model) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Signal_Model) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[3].Descriptor()
}
func (Signal_Model) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[3]
}
func (x Signal_Model) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Signal_Model.Descriptor instead.
func (Signal_Model) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{16, 0}
}
type Section_SectionType int32
const (
Section_Physical Section_SectionType = 0
Section_TurnoutPhysical Section_SectionType = 2
)
// Enum value maps for Section_SectionType.
var (
Section_SectionType_name = map[int32]string{
0: "Physical",
2: "TurnoutPhysical",
}
Section_SectionType_value = map[string]int32{
"Physical": 0,
"TurnoutPhysical": 2,
}
)
func (x Section_SectionType) Enum() *Section_SectionType {
p := new(Section_SectionType)
*p = x
return p
}
func (x Section_SectionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Section_SectionType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[4].Descriptor()
}
func (Section_SectionType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[4]
}
func (x Section_SectionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Section_SectionType.Descriptor instead.
func (Section_SectionType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{17, 0}
}
type RelatedRef_DeviceType int32
const (
RelatedRef_Section RelatedRef_DeviceType = 0
RelatedRef_Turnout RelatedRef_DeviceType = 1
RelatedRef_TrainWindow RelatedRef_DeviceType = 2
RelatedRef_AxleCounting RelatedRef_DeviceType = 3
RelatedRef_SectionLink RelatedRef_DeviceType = 4
RelatedRef_signal RelatedRef_DeviceType = 5
RelatedRef_station RelatedRef_DeviceType = 6
RelatedRef_ScreenDoor RelatedRef_DeviceType = 7
RelatedRef_SignalFaultAlarm RelatedRef_DeviceType = 8
RelatedRef_Breakers RelatedRef_DeviceType = 9 //断路器
RelatedRef_PowerScreen RelatedRef_DeviceType = 10 //电源屏
)
// Enum value maps for RelatedRef_DeviceType.
var (
RelatedRef_DeviceType_name = map[int32]string{
0: "Section",
1: "Turnout",
2: "TrainWindow",
3: "AxleCounting",
4: "SectionLink",
5: "signal",
6: "station",
7: "ScreenDoor",
8: "SignalFaultAlarm",
9: "Breakers",
10: "PowerScreen",
}
RelatedRef_DeviceType_value = map[string]int32{
"Section": 0,
"Turnout": 1,
"TrainWindow": 2,
"AxleCounting": 3,
"SectionLink": 4,
"signal": 5,
"station": 6,
"ScreenDoor": 7,
"SignalFaultAlarm": 8,
"Breakers": 9,
"PowerScreen": 10,
}
)
func (x RelatedRef_DeviceType) Enum() *RelatedRef_DeviceType {
p := new(RelatedRef_DeviceType)
*p = x
return p
}
func (x RelatedRef_DeviceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RelatedRef_DeviceType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[5].Descriptor()
}
func (RelatedRef_DeviceType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[5]
}
func (x RelatedRef_DeviceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RelatedRef_DeviceType.Descriptor instead.
func (RelatedRef_DeviceType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18, 0}
}
type RelatedRef_DevicePort int32
const (
RelatedRef_A RelatedRef_DevicePort = 0
RelatedRef_B RelatedRef_DevicePort = 1
RelatedRef_C RelatedRef_DevicePort = 2
)
// Enum value maps for RelatedRef_DevicePort.
var (
RelatedRef_DevicePort_name = map[int32]string{
0: "A",
1: "B",
2: "C",
}
RelatedRef_DevicePort_value = map[string]int32{
"A": 0,
"B": 1,
"C": 2,
}
)
func (x RelatedRef_DevicePort) Enum() *RelatedRef_DevicePort {
p := new(RelatedRef_DevicePort)
*p = x
return p
}
func (x RelatedRef_DevicePort) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (RelatedRef_DevicePort) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[6].Descriptor()
}
func (RelatedRef_DevicePort) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[6]
}
func (x RelatedRef_DevicePort) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use RelatedRef_DevicePort.Descriptor instead.
func (RelatedRef_DevicePort) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18, 1}
}
type SimpleRef_DeviceType int32
const (
SimpleRef_Turnout SimpleRef_DeviceType = 0
SimpleRef_AxleCounting SimpleRef_DeviceType = 1
)
// Enum value maps for SimpleRef_DeviceType.
var (
SimpleRef_DeviceType_name = map[int32]string{
0: "Turnout",
1: "AxleCounting",
}
SimpleRef_DeviceType_value = map[string]int32{
"Turnout": 0,
"AxleCounting": 1,
}
)
func (x SimpleRef_DeviceType) Enum() *SimpleRef_DeviceType {
p := new(SimpleRef_DeviceType)
*p = x
return p
}
func (x SimpleRef_DeviceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (SimpleRef_DeviceType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[7].Descriptor()
}
func (SimpleRef_DeviceType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[7]
}
func (x SimpleRef_DeviceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use SimpleRef_DeviceType.Descriptor instead.
func (SimpleRef_DeviceType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22, 0}
}
type TrackSection_TrackSectionType int32
const (
TrackSection_NORMAL TrackSection_TrackSectionType = 0 //非岔区
TrackSection_FORK TrackSection_TrackSectionType = 1 //岔区
)
// Enum value maps for TrackSection_TrackSectionType.
var (
TrackSection_TrackSectionType_name = map[int32]string{
0: "NORMAL",
1: "FORK",
}
TrackSection_TrackSectionType_value = map[string]int32{
"NORMAL": 0,
"FORK": 1,
}
)
func (x TrackSection_TrackSectionType) Enum() *TrackSection_TrackSectionType {
p := new(TrackSection_TrackSectionType)
*p = x
return p
}
func (x TrackSection_TrackSectionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TrackSection_TrackSectionType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[8].Descriptor()
}
func (TrackSection_TrackSectionType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[8]
}
func (x TrackSection_TrackSectionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TrackSection_TrackSectionType.Descriptor instead.
func (TrackSection_TrackSectionType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{26, 0}
}
type StopPosition_CoachNum int32
const (
StopPosition_Four StopPosition_CoachNum = 0
StopPosition_Six StopPosition_CoachNum = 1
StopPosition_Eight StopPosition_CoachNum = 2
)
// Enum value maps for StopPosition_CoachNum.
var (
StopPosition_CoachNum_name = map[int32]string{
0: "Four",
1: "Six",
2: "Eight",
}
StopPosition_CoachNum_value = map[string]int32{
"Four": 0,
"Six": 1,
"Eight": 2,
}
)
func (x StopPosition_CoachNum) Enum() *StopPosition_CoachNum {
p := new(StopPosition_CoachNum)
*p = x
return p
}
func (x StopPosition_CoachNum) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StopPosition_CoachNum) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[9].Descriptor()
}
func (StopPosition_CoachNum) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[9]
}
func (x StopPosition_CoachNum) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StopPosition_CoachNum.Descriptor instead.
func (StopPosition_CoachNum) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{28, 0}
}
type Beacon_BeaconType int32
const (
Beacon_Static Beacon_BeaconType = 0
Beacon_Dynamic Beacon_BeaconType = 1
)
// Enum value maps for Beacon_BeaconType.
var (
Beacon_BeaconType_name = map[int32]string{
0: "Static",
1: "Dynamic",
}
Beacon_BeaconType_value = map[string]int32{
"Static": 0,
"Dynamic": 1,
}
)
func (x Beacon_BeaconType) Enum() *Beacon_BeaconType {
p := new(Beacon_BeaconType)
*p = x
return p
}
func (x Beacon_BeaconType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Beacon_BeaconType) Descriptor() protoreflect.EnumDescriptor {
return file_stationLayoutGraphics_proto_enumTypes[10].Descriptor()
}
func (Beacon_BeaconType) Type() protoreflect.EnumType {
return &file_stationLayoutGraphics_proto_enumTypes[10]
}
func (x Beacon_BeaconType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Beacon_BeaconType.Descriptor instead.
func (Beacon_BeaconType) EnumDescriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{34, 0}
}
type RtssGraphicStorage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Canvas *Canvas `protobuf:"bytes,1,opt,name=canvas,proto3" json:"canvas,omitempty"`
// repeated Link links = 2;
// repeated IscsFan iscsFans = 3;
Platforms []*Platform `protobuf:"bytes,4,rep,name=Platforms,proto3" json:"Platforms,omitempty"`
Stations []*Station `protobuf:"bytes,5,rep,name=stations,proto3" json:"stations,omitempty"`
// repeated Rect rects = 6;
// repeated Train train = 7;
Signals []*Signal `protobuf:"bytes,8,rep,name=signals,proto3" json:"signals,omitempty"`
Turnouts []*Turnout `protobuf:"bytes,9,rep,name=turnouts,proto3" json:"turnouts,omitempty"`
Section []*Section `protobuf:"bytes,10,rep,name=section,proto3" json:"section,omitempty"`
// repeated Polygon polygons = 11;
TrainWindows []*TrainWindow `protobuf:"bytes,12,rep,name=trainWindows,proto3" json:"trainWindows,omitempty"`
AxleCountings []*AxleCounting `protobuf:"bytes,13,rep,name=axleCountings,proto3" json:"axleCountings,omitempty"`
Separators []*Separator `protobuf:"bytes,14,rep,name=separators,proto3" json:"separators,omitempty"`
SectionLinks []*SectionLink `protobuf:"bytes,15,rep,name=sectionLinks,proto3" json:"sectionLinks,omitempty"`
AxleCountingSections []*AxleCountingSection `protobuf:"bytes,16,rep,name=axleCountingSections,proto3" json:"axleCountingSections,omitempty"`
LogicSections []*LogicSection `protobuf:"bytes,17,rep,name=logicSections,proto3" json:"logicSections,omitempty"`
StopPositions []*StopPosition `protobuf:"bytes,18,rep,name=stopPositions,proto3" json:"stopPositions,omitempty"`
SpksSwitchs []*SpksSwitch `protobuf:"bytes,19,rep,name=spksSwitchs,proto3" json:"spksSwitchs,omitempty"`
EsbButtons []*EsbButton `protobuf:"bytes,20,rep,name=esbButtons,proto3" json:"esbButtons,omitempty"` // 紧急关闭按钮
GateBoxs []*GatedBox `protobuf:"bytes,21,rep,name=gateBoxs,proto3" json:"gateBoxs,omitempty"` // 站台开门/关门/发车按钮整合控制箱
Transponders []*Transponder `protobuf:"bytes,22,rep,name=transponders,proto3" json:"transponders,omitempty"` // 应答器
Slopes []*Slope `protobuf:"bytes,23,rep,name=slopes,proto3" json:"slopes,omitempty"` // 坡度
CalculateLink []*CalculateLink `protobuf:"bytes,24,rep,name=CalculateLink,proto3" json:"CalculateLink,omitempty"` // 计算link信息
SlopeKiloMarker []*SlopeKiloMarker `protobuf:"bytes,25,rep,name=slopeKiloMarker,proto3" json:"slopeKiloMarker,omitempty"` //坡度公里标
CurvatureKiloMarker []*CurvatureKiloMarker `protobuf:"bytes,26,rep,name=curvatureKiloMarker,proto3" json:"curvatureKiloMarker,omitempty"` //曲度公里标
Curvatures []*Curvature `protobuf:"bytes,27,rep,name=curvatures,proto3" json:"curvatures,omitempty"` // 曲度
TrackSections []*TrackSection `protobuf:"bytes,28,rep,name=trackSections,proto3" json:"trackSections,omitempty"` //轨道区段
TrackLogicSections []*TrackLogicSection `protobuf:"bytes,29,rep,name=trackLogicSections,proto3" json:"trackLogicSections,omitempty"` //轨道逻辑区段
// UniqueIdType UniqueIdPrefix = 30;//设备唯一编码--前缀
UniqueIdPrefix *UniqueIdOfStationLayout `protobuf:"bytes,31,opt,name=UniqueIdPrefix,proto3" json:"UniqueIdPrefix,omitempty"` //设备唯一编码--前缀
KilometerConvertList []*KilometerConvert `protobuf:"bytes,32,rep,name=kilometerConvertList,proto3" json:"kilometerConvertList,omitempty"` //公里标转换列表
ScreenDoors []*ScreenDoor `protobuf:"bytes,33,rep,name=screenDoors,proto3" json:"screenDoors,omitempty"`
StationRelateDeviceList []*StationRelateDevice `protobuf:"bytes,34,rep,name=stationRelateDeviceList,proto3" json:"stationRelateDeviceList,omitempty"` // 关联设备列表
SectionCodePointList []*SectionCodePoint `protobuf:"bytes,35,rep,name=sectionCodePointList,proto3" json:"sectionCodePointList,omitempty"` // 物理区段码位表
ScreenDoorConfig *ScreenDoorConfig `protobuf:"bytes,36,opt,name=screenDoorConfig,proto3" json:"screenDoorConfig,omitempty"` //屏蔽门的配置--子屏蔽门的数量和编组列表
Beacons []*Beacon `protobuf:"bytes,37,rep,name=beacons,proto3" json:"beacons,omitempty"`
GenerateAxleCountingConfig *GenerateAxleCountingConfig `protobuf:"bytes,38,opt,name=generateAxleCountingConfig,proto3" json:"generateAxleCountingConfig,omitempty"` //一键生成计轴的配置
}
func (x *RtssGraphicStorage) Reset() {
*x = RtssGraphicStorage{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RtssGraphicStorage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RtssGraphicStorage) ProtoMessage() {}
func (x *RtssGraphicStorage) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 RtssGraphicStorage.ProtoReflect.Descriptor instead.
func (*RtssGraphicStorage) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{0}
}
func (x *RtssGraphicStorage) GetCanvas() *Canvas {
if x != nil {
return x.Canvas
}
return nil
}
func (x *RtssGraphicStorage) GetPlatforms() []*Platform {
if x != nil {
return x.Platforms
}
return nil
}
func (x *RtssGraphicStorage) GetStations() []*Station {
if x != nil {
return x.Stations
}
return nil
}
func (x *RtssGraphicStorage) GetSignals() []*Signal {
if x != nil {
return x.Signals
}
return nil
}
func (x *RtssGraphicStorage) GetTurnouts() []*Turnout {
if x != nil {
return x.Turnouts
}
return nil
}
func (x *RtssGraphicStorage) GetSection() []*Section {
if x != nil {
return x.Section
}
return nil
}
func (x *RtssGraphicStorage) GetTrainWindows() []*TrainWindow {
if x != nil {
return x.TrainWindows
}
return nil
}
func (x *RtssGraphicStorage) GetAxleCountings() []*AxleCounting {
if x != nil {
return x.AxleCountings
}
return nil
}
func (x *RtssGraphicStorage) GetSeparators() []*Separator {
if x != nil {
return x.Separators
}
return nil
}
func (x *RtssGraphicStorage) GetSectionLinks() []*SectionLink {
if x != nil {
return x.SectionLinks
}
return nil
}
func (x *RtssGraphicStorage) GetAxleCountingSections() []*AxleCountingSection {
if x != nil {
return x.AxleCountingSections
}
return nil
}
func (x *RtssGraphicStorage) GetLogicSections() []*LogicSection {
if x != nil {
return x.LogicSections
}
return nil
}
func (x *RtssGraphicStorage) GetStopPositions() []*StopPosition {
if x != nil {
return x.StopPositions
}
return nil
}
func (x *RtssGraphicStorage) GetSpksSwitchs() []*SpksSwitch {
if x != nil {
return x.SpksSwitchs
}
return nil
}
func (x *RtssGraphicStorage) GetEsbButtons() []*EsbButton {
if x != nil {
return x.EsbButtons
}
return nil
}
func (x *RtssGraphicStorage) GetGateBoxs() []*GatedBox {
if x != nil {
return x.GateBoxs
}
return nil
}
func (x *RtssGraphicStorage) GetTransponders() []*Transponder {
if x != nil {
return x.Transponders
}
return nil
}
func (x *RtssGraphicStorage) GetSlopes() []*Slope {
if x != nil {
return x.Slopes
}
return nil
}
func (x *RtssGraphicStorage) GetCalculateLink() []*CalculateLink {
if x != nil {
return x.CalculateLink
}
return nil
}
func (x *RtssGraphicStorage) GetSlopeKiloMarker() []*SlopeKiloMarker {
if x != nil {
return x.SlopeKiloMarker
}
return nil
}
func (x *RtssGraphicStorage) GetCurvatureKiloMarker() []*CurvatureKiloMarker {
if x != nil {
return x.CurvatureKiloMarker
}
return nil
}
func (x *RtssGraphicStorage) GetCurvatures() []*Curvature {
if x != nil {
return x.Curvatures
}
return nil
}
func (x *RtssGraphicStorage) GetTrackSections() []*TrackSection {
if x != nil {
return x.TrackSections
}
return nil
}
func (x *RtssGraphicStorage) GetTrackLogicSections() []*TrackLogicSection {
if x != nil {
return x.TrackLogicSections
}
return nil
}
func (x *RtssGraphicStorage) GetUniqueIdPrefix() *UniqueIdOfStationLayout {
if x != nil {
return x.UniqueIdPrefix
}
return nil
}
func (x *RtssGraphicStorage) GetKilometerConvertList() []*KilometerConvert {
if x != nil {
return x.KilometerConvertList
}
return nil
}
func (x *RtssGraphicStorage) GetScreenDoors() []*ScreenDoor {
if x != nil {
return x.ScreenDoors
}
return nil
}
func (x *RtssGraphicStorage) GetStationRelateDeviceList() []*StationRelateDevice {
if x != nil {
return x.StationRelateDeviceList
}
return nil
}
func (x *RtssGraphicStorage) GetSectionCodePointList() []*SectionCodePoint {
if x != nil {
return x.SectionCodePointList
}
return nil
}
func (x *RtssGraphicStorage) GetScreenDoorConfig() *ScreenDoorConfig {
if x != nil {
return x.ScreenDoorConfig
}
return nil
}
func (x *RtssGraphicStorage) GetBeacons() []*Beacon {
if x != nil {
return x.Beacons
}
return nil
}
func (x *RtssGraphicStorage) GetGenerateAxleCountingConfig() *GenerateAxleCountingConfig {
if x != nil {
return x.GenerateAxleCountingConfig
}
return nil
}
type Canvas struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 画布宽
Width int32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"`
// 画布高
Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
// 背景色
BackgroundColor string `protobuf:"bytes,3,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"`
// 视口变换
ViewportTransform *Transform `protobuf:"bytes,4,opt,name=viewportTransform,proto3" json:"viewportTransform,omitempty"`
}
func (x *Canvas) Reset() {
*x = Canvas{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Canvas) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Canvas) ProtoMessage() {}
func (x *Canvas) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 Canvas.ProtoReflect.Descriptor instead.
func (*Canvas) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{1}
}
func (x *Canvas) GetWidth() int32 {
if x != nil {
return x.Width
}
return 0
}
func (x *Canvas) GetHeight() int32 {
if x != nil {
return x.Height
}
return 0
}
func (x *Canvas) GetBackgroundColor() string {
if x != nil {
return x.BackgroundColor
}
return ""
}
func (x *Canvas) GetViewportTransform() *Transform {
if x != nil {
return x.ViewportTransform
}
return nil
}
type Point struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// x坐标
X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"`
// y坐标
Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"`
}
func (x *Point) Reset() {
*x = Point{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Point) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Point) ProtoMessage() {}
func (x *Point) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 Point.ProtoReflect.Descriptor instead.
func (*Point) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{2}
}
func (x *Point) GetX() float32 {
if x != nil {
return x.X
}
return 0
}
func (x *Point) GetY() float32 {
if x != nil {
return x.Y
}
return 0
}
// 变换
type Transform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 位移
Position *Point `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"`
// 缩放
Scale *Point `protobuf:"bytes,2,opt,name=scale,proto3" json:"scale,omitempty"`
// 旋转弧度
Rotation float32 `protobuf:"fixed32,3,opt,name=rotation,proto3" json:"rotation,omitempty"`
// 歪斜
Skew *Point `protobuf:"bytes,4,opt,name=skew,proto3" json:"skew,omitempty"`
}
func (x *Transform) Reset() {
*x = Transform{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transform) ProtoMessage() {}
func (x *Transform) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 Transform.ProtoReflect.Descriptor instead.
func (*Transform) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{3}
}
func (x *Transform) GetPosition() *Point {
if x != nil {
return x.Position
}
return nil
}
func (x *Transform) GetScale() *Point {
if x != nil {
return x.Scale
}
return nil
}
func (x *Transform) GetRotation() float32 {
if x != nil {
return x.Rotation
}
return 0
}
func (x *Transform) GetSkew() *Point {
if x != nil {
return x.Skew
}
return nil
}
// 子元素变换
type ChildTransform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 子元素名称
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// 子元素变换
Transform *Transform `protobuf:"bytes,2,opt,name=transform,proto3" json:"transform,omitempty"`
}
func (x *ChildTransform) Reset() {
*x = ChildTransform{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ChildTransform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChildTransform) ProtoMessage() {}
func (x *ChildTransform) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 ChildTransform.ProtoReflect.Descriptor instead.
func (*ChildTransform) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{4}
}
func (x *ChildTransform) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ChildTransform) GetTransform() *Transform {
if x != nil {
return x.Transform
}
return nil
}
// 公共属性
type CommonInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
GraphicType string `protobuf:"bytes,2,opt,name=graphicType,proto3" json:"graphicType,omitempty"`
Transform *Transform `protobuf:"bytes,3,opt,name=transform,proto3" json:"transform,omitempty"`
ChildTransforms []*ChildTransform `protobuf:"bytes,4,rep,name=childTransforms,proto3" json:"childTransforms,omitempty"`
}
func (x *CommonInfo) Reset() {
*x = CommonInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommonInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommonInfo) ProtoMessage() {}
func (x *CommonInfo) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 CommonInfo.ProtoReflect.Descriptor instead.
func (*CommonInfo) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{5}
}
func (x *CommonInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CommonInfo) GetGraphicType() string {
if x != nil {
return x.GraphicType
}
return ""
}
func (x *CommonInfo) GetTransform() *Transform {
if x != nil {
return x.Transform
}
return nil
}
func (x *CommonInfo) GetChildTransforms() []*ChildTransform {
if x != nil {
return x.ChildTransforms
}
return nil
}
type Platform struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
// bool hasdoor = 3; // 是否有屏蔽门
// string direction = 4; // 屏蔽门上下
Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //索引
// int32 refStationIndex = 6; //关联车站索引
// repeated string centralizedStations = 7; // 集中站列表
// repeated RelatedRef platformRef = 8; //站台关联的车站和物理区段
RefStationId string `protobuf:"bytes,9,opt,name=refStationId,proto3" json:"refStationId,omitempty"` //关联的车站的id
RefSectionId string `protobuf:"bytes,10,opt,name=refSectionId,proto3" json:"refSectionId,omitempty"` //关联的物理区段id
}
func (x *Platform) Reset() {
*x = Platform{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Platform) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Platform) ProtoMessage() {}
func (x *Platform) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 Platform.ProtoReflect.Descriptor instead.
func (*Platform) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{6}
}
func (x *Platform) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Platform) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Platform) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *Platform) GetRefStationId() string {
if x != nil {
return x.RefStationId
}
return ""
}
func (x *Platform) GetRefSectionId() string {
if x != nil {
return x.RefSectionId
}
return ""
}
type ScreenDoor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
// int32 sonDoorAmount = 3; //子屏蔽门的数量
RefPlatformId string `protobuf:"bytes,4,opt,name=refPlatformId,proto3" json:"refPlatformId,omitempty"` //关联的站台
}
func (x *ScreenDoor) Reset() {
*x = ScreenDoor{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScreenDoor) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScreenDoor) ProtoMessage() {}
func (x *ScreenDoor) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 ScreenDoor.ProtoReflect.Descriptor instead.
func (*ScreenDoor) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{7}
}
func (x *ScreenDoor) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *ScreenDoor) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *ScreenDoor) GetRefPlatformId() string {
if x != nil {
return x.RefPlatformId
}
return ""
}
type ScreenDoorConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SonDoorAmount int32 `protobuf:"varint,1,opt,name=sonDoorAmount,proto3" json:"sonDoorAmount,omitempty"` //子屏蔽门的数量
ScreenDoorGroupList []*ScreenDoorGroup `protobuf:"bytes,2,rep,name=screenDoorGroupList,proto3" json:"screenDoorGroupList,omitempty"` //编组列表
}
func (x *ScreenDoorConfig) Reset() {
*x = ScreenDoorConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScreenDoorConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScreenDoorConfig) ProtoMessage() {}
func (x *ScreenDoorConfig) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 ScreenDoorConfig.ProtoReflect.Descriptor instead.
func (*ScreenDoorConfig) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{8}
}
func (x *ScreenDoorConfig) GetSonDoorAmount() int32 {
if x != nil {
return x.SonDoorAmount
}
return 0
}
func (x *ScreenDoorConfig) GetScreenDoorGroupList() []*ScreenDoorGroup {
if x != nil {
return x.ScreenDoorGroupList
}
return nil
}
type ScreenDoorGroup struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TrainGroupAmount int32 `protobuf:"varint,1,opt,name=trainGroupAmount,proto3" json:"trainGroupAmount,omitempty"` //列车编组数量
StartSmallDoor int32 `protobuf:"varint,2,opt,name=startSmallDoor,proto3" json:"startSmallDoor,omitempty"` //起始的屏蔽门编号
EndSmallDoor int32 `protobuf:"varint,3,opt,name=endSmallDoor,proto3" json:"endSmallDoor,omitempty"` //结束的屏蔽门编号
}
func (x *ScreenDoorGroup) Reset() {
*x = ScreenDoorGroup{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ScreenDoorGroup) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ScreenDoorGroup) ProtoMessage() {}
func (x *ScreenDoorGroup) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 ScreenDoorGroup.ProtoReflect.Descriptor instead.
func (*ScreenDoorGroup) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{9}
}
func (x *ScreenDoorGroup) GetTrainGroupAmount() int32 {
if x != nil {
return x.TrainGroupAmount
}
return 0
}
func (x *ScreenDoorGroup) GetStartSmallDoor() int32 {
if x != nil {
return x.StartSmallDoor
}
return 0
}
func (x *ScreenDoorGroup) GetEndSmallDoor() int32 {
if x != nil {
return x.EndSmallDoor
}
return 0
}
type Station struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` //车站站名
// bool hasControl = 3; // 是否有控制
ConcentrationStations bool `protobuf:"varint,4,opt,name=concentrationStations,proto3" json:"concentrationStations,omitempty"` //是否集中站
// string kilometerCode = 5; //公里标
KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标
Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"`
RefIbpMapCode string `protobuf:"bytes,8,opt,name=refIbpMapCode,proto3" json:"refIbpMapCode,omitempty"` // 关联IBP地图Code
StationName string `protobuf:"bytes,9,opt,name=stationName,proto3" json:"stationName,omitempty"` //车站名
}
func (x *Station) Reset() {
*x = Station{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Station) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Station) ProtoMessage() {}
func (x *Station) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 Station.ProtoReflect.Descriptor instead.
func (*Station) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{10}
}
func (x *Station) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Station) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Station) GetConcentrationStations() bool {
if x != nil {
return x.ConcentrationStations
}
return false
}
func (x *Station) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Station) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *Station) GetRefIbpMapCode() string {
if x != nil {
return x.RefIbpMapCode
}
return ""
}
func (x *Station) GetStationName() string {
if x != nil {
return x.StationName
}
return ""
}
type TrainWindow struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
SectionId string `protobuf:"bytes,3,opt,name=sectionId,proto3" json:"sectionId,omitempty"`
}
func (x *TrainWindow) Reset() {
*x = TrainWindow{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrainWindow) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrainWindow) ProtoMessage() {}
func (x *TrainWindow) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 TrainWindow.ProtoReflect.Descriptor instead.
func (*TrainWindow) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{11}
}
func (x *TrainWindow) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *TrainWindow) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *TrainWindow) GetSectionId() string {
if x != nil {
return x.SectionId
}
return ""
}
type AxleCounting struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称
KilometerSystem *KilometerSystem `protobuf:"bytes,3,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标
AxleCountingRef []*RelatedRef `protobuf:"bytes,4,rep,name=axleCountingRef,proto3" json:"axleCountingRef,omitempty"` // 计轴关联的非岔区物理区段和道岔设备id和端口
Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //计轴的索引编号
// bool invent = 6; //是否虚拟计轴--一般是最末端
Type AxleCounting_TypeDetectionPoint `protobuf:"varint,7,opt,name=type,proto3,enum=graphicData.AxleCounting_TypeDetectionPoint" json:"type,omitempty"` //检测点的类型:计轴、区段边界
CentralizedStations []string `protobuf:"bytes,8,rep,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站列表
}
func (x *AxleCounting) Reset() {
*x = AxleCounting{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AxleCounting) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AxleCounting) ProtoMessage() {}
func (x *AxleCounting) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_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 AxleCounting.ProtoReflect.Descriptor instead.
func (*AxleCounting) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{12}
}
func (x *AxleCounting) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *AxleCounting) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *AxleCounting) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *AxleCounting) GetAxleCountingRef() []*RelatedRef {
if x != nil {
return x.AxleCountingRef
}
return nil
}
func (x *AxleCounting) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *AxleCounting) GetType() AxleCounting_TypeDetectionPoint {
if x != nil {
return x.Type
}
return AxleCounting_AxleCounting
}
func (x *AxleCounting) GetCentralizedStations() []string {
if x != nil {
return x.CentralizedStations
}
return nil
}
type GenerateAxleCountingConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BbConnect []string `protobuf:"bytes,1,rep,name=bbConnect,proto3" json:"bbConnect,omitempty"` //需要在道岔bb连接处生成计轴的道岔id(填一个就行)
NoGenerateGroup []string `protobuf:"bytes,2,rep,name=noGenerateGroup,proto3" json:"noGenerateGroup,omitempty"` //指定的道岔组不生成计轴
}
func (x *GenerateAxleCountingConfig) Reset() {
*x = GenerateAxleCountingConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GenerateAxleCountingConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GenerateAxleCountingConfig) ProtoMessage() {}
func (x *GenerateAxleCountingConfig) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GenerateAxleCountingConfig.ProtoReflect.Descriptor instead.
func (*GenerateAxleCountingConfig) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{13}
}
func (x *GenerateAxleCountingConfig) GetBbConnect() []string {
if x != nil {
return x.BbConnect
}
return nil
}
func (x *GenerateAxleCountingConfig) GetNoGenerateGroup() []string {
if x != nil {
return x.NoGenerateGroup
}
return nil
}
type Turnout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
PointA []*Point `protobuf:"bytes,6,rep,name=pointA,proto3" json:"pointA,omitempty"` // A端坐标列表
PointB []*Point `protobuf:"bytes,7,rep,name=pointB,proto3" json:"pointB,omitempty"` // B端坐标列表
PointC []*Point `protobuf:"bytes,8,rep,name=pointC,proto3" json:"pointC,omitempty"` // C端坐标列表
PaRef *RelatedRef `protobuf:"bytes,9,opt,name=paRef,proto3" json:"paRef,omitempty"` // 道岔A端关联的设备
PbRef *RelatedRef `protobuf:"bytes,10,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 道岔B端关联的设备
PcRef *RelatedRef `protobuf:"bytes,11,opt,name=pcRef,proto3" json:"pcRef,omitempty"` // 道岔C端关联的设备
// KilometerSystem kilometerSystem = 12; // 道岔公里标
KilometerSystem []*KilometerSystem `protobuf:"bytes,13,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` // 道岔公里标
Index int32 `protobuf:"varint,14,opt,name=index,proto3" json:"index,omitempty"` //索引
PaTrackSectionId string `protobuf:"bytes,15,opt,name=paTrackSectionId,proto3" json:"paTrackSectionId,omitempty"` // A端轨道区段id
PbTrackSectionId string `protobuf:"bytes,16,opt,name=pbTrackSectionId,proto3" json:"pbTrackSectionId,omitempty"` // B端轨道区段id
PcTrackSectionId string `protobuf:"bytes,17,opt,name=pcTrackSectionId,proto3" json:"pcTrackSectionId,omitempty"` // C端轨道区段id
SwitchMachineType Turnout_SwitchMachineType `protobuf:"varint,18,opt,name=switchMachineType,proto3,enum=graphicData.Turnout_SwitchMachineType" json:"switchMachineType,omitempty"` // 转辙机类型
CentralizedStations []string `protobuf:"bytes,19,rep,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站列表
}
func (x *Turnout) Reset() {
*x = Turnout{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Turnout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Turnout) ProtoMessage() {}
func (x *Turnout) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Turnout.ProtoReflect.Descriptor instead.
func (*Turnout) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{14}
}
func (x *Turnout) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Turnout) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Turnout) GetPointA() []*Point {
if x != nil {
return x.PointA
}
return nil
}
func (x *Turnout) GetPointB() []*Point {
if x != nil {
return x.PointB
}
return nil
}
func (x *Turnout) GetPointC() []*Point {
if x != nil {
return x.PointC
}
return nil
}
func (x *Turnout) GetPaRef() *RelatedRef {
if x != nil {
return x.PaRef
}
return nil
}
func (x *Turnout) GetPbRef() *RelatedRef {
if x != nil {
return x.PbRef
}
return nil
}
func (x *Turnout) GetPcRef() *RelatedRef {
if x != nil {
return x.PcRef
}
return nil
}
func (x *Turnout) GetKilometerSystem() []*KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Turnout) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *Turnout) GetPaTrackSectionId() string {
if x != nil {
return x.PaTrackSectionId
}
return ""
}
func (x *Turnout) GetPbTrackSectionId() string {
if x != nil {
return x.PbTrackSectionId
}
return ""
}
func (x *Turnout) GetPcTrackSectionId() string {
if x != nil {
return x.PcTrackSectionId
}
return ""
}
func (x *Turnout) GetSwitchMachineType() Turnout_SwitchMachineType {
if x != nil {
return x.SwitchMachineType
}
return Turnout_Unknown
}
func (x *Turnout) GetCentralizedStations() []string {
if x != nil {
return x.CentralizedStations
}
return nil
}
type KilometerSystem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Kilometer int64 `protobuf:"varint,1,opt,name=kilometer,proto3" json:"kilometer,omitempty"` //公里标mm
CoordinateSystem string `protobuf:"bytes,2,opt,name=coordinateSystem,proto3" json:"coordinateSystem,omitempty"` //坐标系
Direction Direction `protobuf:"varint,3,opt,name=direction,proto3,enum=graphicData.Direction" json:"direction,omitempty"` //左右行
}
func (x *KilometerSystem) Reset() {
*x = KilometerSystem{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KilometerSystem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KilometerSystem) ProtoMessage() {}
func (x *KilometerSystem) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KilometerSystem.ProtoReflect.Descriptor instead.
func (*KilometerSystem) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{15}
}
func (x *KilometerSystem) GetKilometer() int64 {
if x != nil {
return x.Kilometer
}
return 0
}
func (x *KilometerSystem) GetCoordinateSystem() string {
if x != nil {
return x.CoordinateSystem
}
return ""
}
func (x *KilometerSystem) GetDirection() Direction {
if x != nil {
return x.Direction
}
return Direction_LEFT
}
type Signal struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Mirror bool `protobuf:"varint,3,opt,name=mirror,proto3" json:"mirror,omitempty"`
// int64 kilometer = 4;
// string coordinateSystem = 5;
KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"`
Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` //索引
RefDev *RelatedRef `protobuf:"bytes,8,opt,name=refDev,proto3" json:"refDev,omitempty"` //关联设备(区段/道岔)
CentralizedStations []string `protobuf:"bytes,9,rep,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站列表
// 信号机模型类型
Mt Signal_Model `protobuf:"varint,10,opt,name=mt,proto3,enum=graphicData.Signal_Model" json:"mt,omitempty"`
}
func (x *Signal) Reset() {
*x = Signal{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Signal) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Signal) ProtoMessage() {}
func (x *Signal) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Signal.ProtoReflect.Descriptor instead.
func (*Signal) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{16}
}
func (x *Signal) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Signal) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Signal) GetMirror() bool {
if x != nil {
return x.Mirror
}
return false
}
func (x *Signal) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Signal) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *Signal) GetRefDev() *RelatedRef {
if x != nil {
return x.RefDev
}
return nil
}
func (x *Signal) GetCentralizedStations() []string {
if x != nil {
return x.CentralizedStations
}
return nil
}
func (x *Signal) GetMt() Signal_Model {
if x != nil {
return x.Mt
}
return Signal_HLU
}
// * 物理区段(包含岔区和非岔区)
type Section struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 编号
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"` // 点列表
PaRef *RelatedRef `protobuf:"bytes,4,opt,name=paRef,proto3" json:"paRef,omitempty"` // 区段A端关联的设备(非岔区)(后端不关注)
PbRef *RelatedRef `protobuf:"bytes,5,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 区段B端关联的设备(非岔区)(后端不关注)
SectionType Section_SectionType `protobuf:"varint,6,opt,name=sectionType,proto3,enum=graphicData.Section_SectionType" json:"sectionType,omitempty"` // 区段类型
AxleCountings []string `protobuf:"bytes,7,rep,name=axleCountings,proto3" json:"axleCountings,omitempty"` // 区段对应的计轴
Index int32 `protobuf:"varint,8,opt,name=index,proto3" json:"index,omitempty"` // 索引
TrackSectionId string `protobuf:"bytes,9,opt,name=trackSectionId,proto3" json:"trackSectionId,omitempty"` // 下属轨道区段id
IsCurve bool `protobuf:"varint,10,opt,name=isCurve,proto3" json:"isCurve,omitempty"` // 是否曲线
SegmentsCount int32 `protobuf:"varint,12,opt,name=segmentsCount,proto3" json:"segmentsCount,omitempty"` // 曲线分段数
CentralizedStations []string `protobuf:"bytes,13,rep,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站列表
}
func (x *Section) Reset() {
*x = Section{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Section) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Section) ProtoMessage() {}
func (x *Section) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Section.ProtoReflect.Descriptor instead.
func (*Section) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{17}
}
func (x *Section) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Section) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Section) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *Section) GetPaRef() *RelatedRef {
if x != nil {
return x.PaRef
}
return nil
}
func (x *Section) GetPbRef() *RelatedRef {
if x != nil {
return x.PbRef
}
return nil
}
func (x *Section) GetSectionType() Section_SectionType {
if x != nil {
return x.SectionType
}
return Section_Physical
}
func (x *Section) GetAxleCountings() []string {
if x != nil {
return x.AxleCountings
}
return nil
}
func (x *Section) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *Section) GetTrackSectionId() string {
if x != nil {
return x.TrackSectionId
}
return ""
}
func (x *Section) GetIsCurve() bool {
if x != nil {
return x.IsCurve
}
return false
}
func (x *Section) GetSegmentsCount() int32 {
if x != nil {
return x.SegmentsCount
}
return 0
}
func (x *Section) GetCentralizedStations() []string {
if x != nil {
return x.CentralizedStations
}
return nil
}
// 关联设备
type RelatedRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceType RelatedRef_DeviceType `protobuf:"varint,1,opt,name=deviceType,proto3,enum=graphicData.RelatedRef_DeviceType" json:"deviceType,omitempty"` //关联的设备类型
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` //关联的设备ID
DevicePort RelatedRef_DevicePort `protobuf:"varint,3,opt,name=devicePort,proto3,enum=graphicData.RelatedRef_DevicePort" json:"devicePort,omitempty"` //关联的设备端口
}
func (x *RelatedRef) Reset() {
*x = RelatedRef{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RelatedRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RelatedRef) ProtoMessage() {}
func (x *RelatedRef) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RelatedRef.ProtoReflect.Descriptor instead.
func (*RelatedRef) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{18}
}
func (x *RelatedRef) GetDeviceType() RelatedRef_DeviceType {
if x != nil {
return x.DeviceType
}
return RelatedRef_Section
}
func (x *RelatedRef) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *RelatedRef) GetDevicePort() RelatedRef_DevicePort {
if x != nil {
return x.DevicePort
}
return RelatedRef_A
}
// 计轴区段与道岔的位置关系
type TurnoutPosRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //道岔的ID
Position int32 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` //道岔的正反为0是定位1是反位
}
func (x *TurnoutPosRef) Reset() {
*x = TurnoutPosRef{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TurnoutPosRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TurnoutPosRef) ProtoMessage() {}
func (x *TurnoutPosRef) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TurnoutPosRef.ProtoReflect.Descriptor instead.
func (*TurnoutPosRef) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{19}
}
func (x *TurnoutPosRef) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *TurnoutPosRef) GetPosition() int32 {
if x != nil {
return x.Position
}
return 0
}
type Separator struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
SeparatorType string `protobuf:"bytes,3,opt,name=separatorType,proto3" json:"separatorType,omitempty"`
}
func (x *Separator) Reset() {
*x = Separator{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Separator) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Separator) ProtoMessage() {}
func (x *Separator) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Separator.ProtoReflect.Descriptor instead.
func (*Separator) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{20}
}
func (x *Separator) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Separator) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Separator) GetSeparatorType() string {
if x != nil {
return x.SeparatorType
}
return ""
}
type Transponder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
TransponderType int32 `protobuf:"varint,3,opt,name=transponderType,proto3" json:"transponderType,omitempty"`
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` // 索引编号
KilometerSystem *KilometerSystem `protobuf:"bytes,5,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标
TransponderRef *RelatedRef `protobuf:"bytes,6,opt,name=TransponderRef,proto3" json:"TransponderRef,omitempty"` //关联关系
CentralizedStations []string `protobuf:"bytes,7,rep,name=centralizedStations,proto3" json:"centralizedStations,omitempty"` // 集中站列表
}
func (x *Transponder) Reset() {
*x = Transponder{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transponder) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transponder) ProtoMessage() {}
func (x *Transponder) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Transponder.ProtoReflect.Descriptor instead.
func (*Transponder) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{21}
}
func (x *Transponder) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Transponder) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Transponder) GetTransponderType() int32 {
if x != nil {
return x.TransponderType
}
return 0
}
func (x *Transponder) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *Transponder) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *Transponder) GetTransponderRef() *RelatedRef {
if x != nil {
return x.TransponderRef
}
return nil
}
func (x *Transponder) GetCentralizedStations() []string {
if x != nil {
return x.CentralizedStations
}
return nil
}
type SimpleRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DeviceType SimpleRef_DeviceType `protobuf:"varint,1,opt,name=deviceType,proto3,enum=graphicData.SimpleRef_DeviceType" json:"deviceType,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *SimpleRef) Reset() {
*x = SimpleRef{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SimpleRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SimpleRef) ProtoMessage() {}
func (x *SimpleRef) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SimpleRef.ProtoReflect.Descriptor instead.
func (*SimpleRef) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{22}
}
func (x *SimpleRef) GetDeviceType() SimpleRef_DeviceType {
if x != nil {
return x.DeviceType
}
return SimpleRef_Turnout
}
func (x *SimpleRef) GetId() string {
if x != nil {
return x.Id
}
return ""
}
type SectionLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
Up bool `protobuf:"varint,4,opt,name=up,proto3" json:"up,omitempty"` // 是否上行
ASimRef *SimpleRef `protobuf:"bytes,5,opt,name=aSimRef,proto3" json:"aSimRef,omitempty"` // SectionLink A端连接设备构建关系 AxleCounting/Turnout //端点
BSimRef *SimpleRef `protobuf:"bytes,6,opt,name=bSimRef,proto3" json:"bSimRef,omitempty"` // SectionLink B端连接设备构建关系 AxleCounting/Turnout //端点
ARef *RelatedRef `protobuf:"bytes,7,opt,name=aRef,proto3" json:"aRef,omitempty"` // SectionLink A端连接设备端口关系 SectionLink/Turnout
BRef *RelatedRef `protobuf:"bytes,8,opt,name=bRef,proto3" json:"bRef,omitempty"` // SectionLink B端连接设备端口关系
// SectionLink/Turnout
Index int32 `protobuf:"varint,9,opt,name=index,proto3" json:"index,omitempty"` // 索引编号
}
func (x *SectionLink) Reset() {
*x = SectionLink{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionLink) ProtoMessage() {}
func (x *SectionLink) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SectionLink.ProtoReflect.Descriptor instead.
func (*SectionLink) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{23}
}
func (x *SectionLink) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *SectionLink) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *SectionLink) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *SectionLink) GetUp() bool {
if x != nil {
return x.Up
}
return false
}
func (x *SectionLink) GetASimRef() *SimpleRef {
if x != nil {
return x.ASimRef
}
return nil
}
func (x *SectionLink) GetBSimRef() *SimpleRef {
if x != nil {
return x.BSimRef
}
return nil
}
func (x *SectionLink) GetARef() *RelatedRef {
if x != nil {
return x.ARef
}
return nil
}
func (x *SectionLink) GetBRef() *RelatedRef {
if x != nil {
return x.BRef
}
return nil
}
func (x *SectionLink) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
type AxleCountingSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
PaRef *RelatedRef `protobuf:"bytes,4,opt,name=paRef,proto3" json:"paRef,omitempty"` // 计轴区段A端关联的计轴
PbRef *RelatedRef `protobuf:"bytes,5,opt,name=pbRef,proto3" json:"pbRef,omitempty"` // 计轴区段B端关联的计轴
TurnoutPos []*TurnoutPosRef `protobuf:"bytes,6,rep,name=turnoutPos,proto3" json:"turnoutPos,omitempty"` //关联道岔的正反位--0是定位1是反位
Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` //计轴区段的索引编号
}
func (x *AxleCountingSection) Reset() {
*x = AxleCountingSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AxleCountingSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AxleCountingSection) ProtoMessage() {}
func (x *AxleCountingSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AxleCountingSection.ProtoReflect.Descriptor instead.
func (*AxleCountingSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{24}
}
func (x *AxleCountingSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *AxleCountingSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *AxleCountingSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *AxleCountingSection) GetPaRef() *RelatedRef {
if x != nil {
return x.PaRef
}
return nil
}
func (x *AxleCountingSection) GetPbRef() *RelatedRef {
if x != nil {
return x.PbRef
}
return nil
}
func (x *AxleCountingSection) GetTurnoutPos() []*TurnoutPosRef {
if x != nil {
return x.TurnoutPos
}
return nil
}
func (x *AxleCountingSection) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
type LogicSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` // 名称
Points []*Point `protobuf:"bytes,3,rep,name=points,proto3" json:"points,omitempty"`
AxleSectionId string `protobuf:"bytes,4,opt,name=axleSectionId,proto3" json:"axleSectionId,omitempty"` // 关联的计轴区段Id
Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` // 索引编号
TurnoutId string `protobuf:"bytes,6,opt,name=turnoutId,proto3" json:"turnoutId,omitempty"` // 关联的岔芯对应的道岔id此时该逻辑区段为该道岔C端关联的轨道link
}
func (x *LogicSection) Reset() {
*x = LogicSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LogicSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LogicSection) ProtoMessage() {}
func (x *LogicSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LogicSection.ProtoReflect.Descriptor instead.
func (*LogicSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{25}
}
func (x *LogicSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *LogicSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *LogicSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *LogicSection) GetAxleSectionId() string {
if x != nil {
return x.AxleSectionId
}
return ""
}
func (x *LogicSection) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *LogicSection) GetTurnoutId() string {
if x != nil {
return x.TurnoutId
}
return ""
}
type TrackSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` //名称
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引
Type TrackSection_TrackSectionType `protobuf:"varint,5,opt,name=type,proto3,enum=graphicData.TrackSection_TrackSectionType" json:"type,omitempty"` //类型
DestinationCode string `protobuf:"bytes,6,opt,name=destinationCode,proto3" json:"destinationCode,omitempty"` //目的地码
TrackLogicSection []string `protobuf:"bytes,7,rep,name=trackLogicSection,proto3" json:"trackLogicSection,omitempty"` //下属的逻辑区段id(非岔区)
// //关联的物理设备id(物理区段/道岔)由另一端(物理区段/道岔处理)
IsCurve bool `protobuf:"varint,8,opt,name=isCurve,proto3" json:"isCurve,omitempty"` // 是否曲线
SegmentsCount int32 `protobuf:"varint,9,opt,name=segmentsCount,proto3" json:"segmentsCount,omitempty"` // 曲线分段数
}
func (x *TrackSection) Reset() {
*x = TrackSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrackSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrackSection) ProtoMessage() {}
func (x *TrackSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrackSection.ProtoReflect.Descriptor instead.
func (*TrackSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{26}
}
func (x *TrackSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *TrackSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *TrackSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *TrackSection) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *TrackSection) GetType() TrackSection_TrackSectionType {
if x != nil {
return x.Type
}
return TrackSection_NORMAL
}
func (x *TrackSection) GetDestinationCode() string {
if x != nil {
return x.DestinationCode
}
return ""
}
func (x *TrackSection) GetTrackLogicSection() []string {
if x != nil {
return x.TrackLogicSection
}
return nil
}
func (x *TrackSection) GetIsCurve() bool {
if x != nil {
return x.IsCurve
}
return false
}
func (x *TrackSection) GetSegmentsCount() int32 {
if x != nil {
return x.SegmentsCount
}
return 0
}
type TrackLogicSection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` //名称
Length int32 `protobuf:"varint,4,opt,name=length,proto3" json:"length,omitempty"` //长度(mm)
}
func (x *TrackLogicSection) Reset() {
*x = TrackLogicSection{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrackLogicSection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrackLogicSection) ProtoMessage() {}
func (x *TrackLogicSection) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrackLogicSection.ProtoReflect.Descriptor instead.
func (*TrackLogicSection) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{27}
}
func (x *TrackLogicSection) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *TrackLogicSection) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *TrackLogicSection) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *TrackLogicSection) GetLength() int32 {
if x != nil {
return x.Length
}
return 0
}
type StopPosition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
CoachNum StopPosition_CoachNum `protobuf:"varint,4,opt,name=coachNum,proto3,enum=graphicData.StopPosition_CoachNum" json:"coachNum,omitempty"` //编组数量
Index int32 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` //索引
KilometerSystem *KilometerSystem `protobuf:"bytes,6,opt,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"`
RefDev *RelatedRef `protobuf:"bytes,7,opt,name=refDev,proto3" json:"refDev,omitempty"` // 关联设备(区段)
}
func (x *StopPosition) Reset() {
*x = StopPosition{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StopPosition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StopPosition) ProtoMessage() {}
func (x *StopPosition) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StopPosition.ProtoReflect.Descriptor instead.
func (*StopPosition) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{28}
}
func (x *StopPosition) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *StopPosition) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *StopPosition) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *StopPosition) GetCoachNum() StopPosition_CoachNum {
if x != nil {
return x.CoachNum
}
return StopPosition_Four
}
func (x *StopPosition) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *StopPosition) GetKilometerSystem() *KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
func (x *StopPosition) GetRefDev() *RelatedRef {
if x != nil {
return x.RefDev
}
return nil
}
type SpksSwitch struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引
// int32 refStand = 5; //关联站台索引
RefSections []string `protobuf:"bytes,6,rep,name=refSections,proto3" json:"refSections,omitempty"` // 关联物理区段id
RefStand string `protobuf:"bytes,7,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台
}
func (x *SpksSwitch) Reset() {
*x = SpksSwitch{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SpksSwitch) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SpksSwitch) ProtoMessage() {}
func (x *SpksSwitch) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SpksSwitch.ProtoReflect.Descriptor instead.
func (*SpksSwitch) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{29}
}
func (x *SpksSwitch) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *SpksSwitch) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *SpksSwitch) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *SpksSwitch) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *SpksSwitch) GetRefSections() []string {
if x != nil {
return x.RefSections
}
return nil
}
func (x *SpksSwitch) GetRefStand() string {
if x != nil {
return x.RefStand
}
return ""
}
type EsbButton struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引
// int32 refStand = 5; // 关联站台索引
RefStand string `protobuf:"bytes,6,opt,name=refStand,proto3" json:"refStand,omitempty"` // 关联站台
}
func (x *EsbButton) Reset() {
*x = EsbButton{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EsbButton) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EsbButton) ProtoMessage() {}
func (x *EsbButton) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EsbButton.ProtoReflect.Descriptor instead.
func (*EsbButton) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{30}
}
func (x *EsbButton) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *EsbButton) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *EsbButton) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *EsbButton) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *EsbButton) GetRefStand() string {
if x != nil {
return x.RefStand
}
return ""
}
type GatedBox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Flip bool `protobuf:"varint,3,opt,name=flip,proto3" json:"flip,omitempty"` // 是否翻转(前端显示)
Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` //索引
RefScreenDoor string `protobuf:"bytes,5,opt,name=refScreenDoor,proto3" json:"refScreenDoor,omitempty"` // 关联屏蔽门
RefGatedBoxMapCode string `protobuf:"bytes,6,opt,name=refGatedBoxMapCode,proto3" json:"refGatedBoxMapCode,omitempty"` // 关联门控箱地图Code
}
func (x *GatedBox) Reset() {
*x = GatedBox{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GatedBox) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GatedBox) ProtoMessage() {}
func (x *GatedBox) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GatedBox.ProtoReflect.Descriptor instead.
func (*GatedBox) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{31}
}
func (x *GatedBox) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *GatedBox) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *GatedBox) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
func (x *GatedBox) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
func (x *GatedBox) GetRefScreenDoor() string {
if x != nil {
return x.RefScreenDoor
}
return ""
}
func (x *GatedBox) GetRefGatedBoxMapCode() string {
if x != nil {
return x.RefGatedBoxMapCode
}
return ""
}
// * 坡度公里标
type SlopeKiloMarker struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
KilometerSystem []*KilometerSystem `protobuf:"bytes,4,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标数据
}
func (x *SlopeKiloMarker) Reset() {
*x = SlopeKiloMarker{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SlopeKiloMarker) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SlopeKiloMarker) ProtoMessage() {}
func (x *SlopeKiloMarker) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SlopeKiloMarker.ProtoReflect.Descriptor instead.
func (*SlopeKiloMarker) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{32}
}
func (x *SlopeKiloMarker) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *SlopeKiloMarker) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *SlopeKiloMarker) GetKilometerSystem() []*KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
// * 曲度公里标
type CurvatureKiloMarker struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
KilometerSystem []*KilometerSystem `protobuf:"bytes,4,rep,name=kilometerSystem,proto3" json:"kilometerSystem,omitempty"` //公里标数据
}
func (x *CurvatureKiloMarker) Reset() {
*x = CurvatureKiloMarker{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CurvatureKiloMarker) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CurvatureKiloMarker) ProtoMessage() {}
func (x *CurvatureKiloMarker) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CurvatureKiloMarker.ProtoReflect.Descriptor instead.
func (*CurvatureKiloMarker) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{33}
}
func (x *CurvatureKiloMarker) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *CurvatureKiloMarker) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *CurvatureKiloMarker) GetKilometerSystem() []*KilometerSystem {
if x != nil {
return x.KilometerSystem
}
return nil
}
// * 信标
type Beacon struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"`
Type Beacon_BeaconType `protobuf:"varint,3,opt,name=type,proto3,enum=graphicData.Beacon_BeaconType" json:"type,omitempty"`
Flip bool `protobuf:"varint,4,opt,name=flip,proto3" json:"flip,omitempty"`
}
func (x *Beacon) Reset() {
*x = Beacon{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Beacon) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Beacon) ProtoMessage() {}
func (x *Beacon) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Beacon.ProtoReflect.Descriptor instead.
func (*Beacon) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{34}
}
func (x *Beacon) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Beacon) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *Beacon) GetType() Beacon_BeaconType {
if x != nil {
return x.Type
}
return Beacon_Static
}
func (x *Beacon) GetFlip() bool {
if x != nil {
return x.Flip
}
return false
}
type Slope struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
SlopeNumber int32 `protobuf:"zigzag32,3,opt,name=slopeNumber,proto3" json:"slopeNumber,omitempty"` //坡度的值--正负代表上下坡
RefDeviceId []string `protobuf:"bytes,4,rep,name=refDeviceId,proto3" json:"refDeviceId,omitempty"` // 坡度关联的(坡度公里标)
}
func (x *Slope) Reset() {
*x = Slope{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Slope) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Slope) ProtoMessage() {}
func (x *Slope) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Slope.ProtoReflect.Descriptor instead.
func (*Slope) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{35}
}
func (x *Slope) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Slope) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *Slope) GetSlopeNumber() int32 {
if x != nil {
return x.SlopeNumber
}
return 0
}
func (x *Slope) GetRefDeviceId() []string {
if x != nil {
return x.RefDeviceId
}
return nil
}
type Curvature struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
CurvatureNumber int32 `protobuf:"zigzag32,3,opt,name=curvatureNumber,proto3" json:"curvatureNumber,omitempty"` //曲线的半径--正代表外侧;负代表内侧
RefDeviceId []string `protobuf:"bytes,4,rep,name=refDeviceId,proto3" json:"refDeviceId,omitempty"` // 曲线关联的(曲度公里标)
}
func (x *Curvature) Reset() {
*x = Curvature{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Curvature) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Curvature) ProtoMessage() {}
func (x *Curvature) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Curvature.ProtoReflect.Descriptor instead.
func (*Curvature) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{36}
}
func (x *Curvature) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *Curvature) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *Curvature) GetCurvatureNumber() int32 {
if x != nil {
return x.CurvatureNumber
}
return 0
}
func (x *Curvature) GetRefDeviceId() []string {
if x != nil {
return x.RefDeviceId
}
return nil
}
// 计算link结构
type CalculateLink struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Common *CommonInfo `protobuf:"bytes,1,opt,name=common,proto3" json:"common,omitempty"`
Points []*Point `protobuf:"bytes,2,rep,name=points,proto3" json:"points,omitempty"`
Length int32 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"` //长度mm
ARelatedRef *RelatedRef `protobuf:"bytes,4,opt,name=aRelatedRef,proto3" json:"aRelatedRef,omitempty"` // A端最小端关联的端点 (道岔端点)
BRelatedRef *RelatedRef `protobuf:"bytes,5,opt,name=bRelatedRef,proto3" json:"bRelatedRef,omitempty"` // B端最大端关联的端点 (道岔端点)
DevicePositions []*CalculateLink_DevicePosition `protobuf:"bytes,6,rep,name=devicePositions,proto3" json:"devicePositions,omitempty"` //设备在link上的位置
Index int32 `protobuf:"varint,7,opt,name=index,proto3" json:"index,omitempty"` // link唯一标识
}
func (x *CalculateLink) Reset() {
*x = CalculateLink{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CalculateLink) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CalculateLink) ProtoMessage() {}
func (x *CalculateLink) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CalculateLink.ProtoReflect.Descriptor instead.
func (*CalculateLink) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{37}
}
func (x *CalculateLink) GetCommon() *CommonInfo {
if x != nil {
return x.Common
}
return nil
}
func (x *CalculateLink) GetPoints() []*Point {
if x != nil {
return x.Points
}
return nil
}
func (x *CalculateLink) GetLength() int32 {
if x != nil {
return x.Length
}
return 0
}
func (x *CalculateLink) GetARelatedRef() *RelatedRef {
if x != nil {
return x.ARelatedRef
}
return nil
}
func (x *CalculateLink) GetBRelatedRef() *RelatedRef {
if x != nil {
return x.BRelatedRef
}
return nil
}
func (x *CalculateLink) GetDevicePositions() []*CalculateLink_DevicePosition {
if x != nil {
return x.DevicePositions
}
return nil
}
func (x *CalculateLink) GetIndex() int32 {
if x != nil {
return x.Index
}
return 0
}
type UniqueIdOfStationLayout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
City string `protobuf:"bytes,1,opt,name=city,proto3" json:"city,omitempty"` //城市
LineId string `protobuf:"bytes,2,opt,name=lineId,proto3" json:"lineId,omitempty"` //线路号
MainCoordinateSystem string `protobuf:"bytes,3,opt,name=mainCoordinateSystem,proto3" json:"mainCoordinateSystem,omitempty"` //地图的公里标主坐标系
}
func (x *UniqueIdOfStationLayout) Reset() {
*x = UniqueIdOfStationLayout{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UniqueIdOfStationLayout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UniqueIdOfStationLayout) ProtoMessage() {}
func (x *UniqueIdOfStationLayout) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UniqueIdOfStationLayout.ProtoReflect.Descriptor instead.
func (*UniqueIdOfStationLayout) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{38}
}
func (x *UniqueIdOfStationLayout) GetCity() string {
if x != nil {
return x.City
}
return ""
}
func (x *UniqueIdOfStationLayout) GetLineId() string {
if x != nil {
return x.LineId
}
return ""
}
func (x *UniqueIdOfStationLayout) GetMainCoordinateSystem() string {
if x != nil {
return x.MainCoordinateSystem
}
return ""
}
// 公里标转换
type KilometerConvert struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
KmA *KilometerSystem `protobuf:"bytes,1,opt,name=kmA,proto3" json:"kmA,omitempty"`
KmB *KilometerSystem `protobuf:"bytes,2,opt,name=kmB,proto3" json:"kmB,omitempty"`
SameTrend bool `protobuf:"varint,3,opt,name=sameTrend,proto3" json:"sameTrend,omitempty"` //相同趋势(同增同减)?
}
func (x *KilometerConvert) Reset() {
*x = KilometerConvert{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KilometerConvert) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KilometerConvert) ProtoMessage() {}
func (x *KilometerConvert) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KilometerConvert.ProtoReflect.Descriptor instead.
func (*KilometerConvert) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{39}
}
func (x *KilometerConvert) GetKmA() *KilometerSystem {
if x != nil {
return x.KmA
}
return nil
}
func (x *KilometerConvert) GetKmB() *KilometerSystem {
if x != nil {
return x.KmB
}
return nil
}
func (x *KilometerConvert) GetSameTrend() bool {
if x != nil {
return x.SameTrend
}
return false
}
// 车站关联的设备列表
type StationRelateDevice struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` //设备编号
Combinationtypes []*DeviceCombinationtype `protobuf:"bytes,2,rep,name=combinationtypes,proto3" json:"combinationtypes,omitempty"` //组合类型
DeviceType RelatedRef_DeviceType `protobuf:"varint,3,opt,name=deviceType,proto3,enum=graphicData.RelatedRef_DeviceType" json:"deviceType,omitempty"` //设备类型
}
func (x *StationRelateDevice) Reset() {
*x = StationRelateDevice{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StationRelateDevice) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StationRelateDevice) ProtoMessage() {}
func (x *StationRelateDevice) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StationRelateDevice.ProtoReflect.Descriptor instead.
func (*StationRelateDevice) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{40}
}
func (x *StationRelateDevice) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *StationRelateDevice) GetCombinationtypes() []*DeviceCombinationtype {
if x != nil {
return x.Combinationtypes
}
return nil
}
func (x *StationRelateDevice) GetDeviceType() RelatedRef_DeviceType {
if x != nil {
return x.DeviceType
}
return RelatedRef_Section
}
type DeviceCombinationtype struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"`
RefDevices []string `protobuf:"bytes,2,rep,name=refDevices,proto3" json:"refDevices,omitempty"` //车站关联的设备
}
func (x *DeviceCombinationtype) Reset() {
*x = DeviceCombinationtype{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeviceCombinationtype) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeviceCombinationtype) ProtoMessage() {}
func (x *DeviceCombinationtype) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeviceCombinationtype.ProtoReflect.Descriptor instead.
func (*DeviceCombinationtype) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{41}
}
func (x *DeviceCombinationtype) GetCode() string {
if x != nil {
return x.Code
}
return ""
}
func (x *DeviceCombinationtype) GetRefDevices() []string {
if x != nil {
return x.RefDevices
}
return nil
}
type SectionCodePoint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CentralizedStation string `protobuf:"bytes,1,opt,name=centralizedStation,proto3" json:"centralizedStation,omitempty"`
SectionIds []string `protobuf:"bytes,2,rep,name=sectionIds,proto3" json:"sectionIds,omitempty"` //物理区段id列表
}
func (x *SectionCodePoint) Reset() {
*x = SectionCodePoint{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SectionCodePoint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SectionCodePoint) ProtoMessage() {}
func (x *SectionCodePoint) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SectionCodePoint.ProtoReflect.Descriptor instead.
func (*SectionCodePoint) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{42}
}
func (x *SectionCodePoint) GetCentralizedStation() string {
if x != nil {
return x.CentralizedStation
}
return ""
}
func (x *SectionCodePoint) GetSectionIds() []string {
if x != nil {
return x.SectionIds
}
return nil
}
type CalculateLink_DevicePosition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Offset int32 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
DeviceId string `protobuf:"bytes,2,opt,name=deviceId,proto3" json:"deviceId,omitempty"`
DeviceType string `protobuf:"bytes,3,opt,name=deviceType,proto3" json:"deviceType,omitempty"`
}
func (x *CalculateLink_DevicePosition) Reset() {
*x = CalculateLink_DevicePosition{}
if protoimpl.UnsafeEnabled {
mi := &file_stationLayoutGraphics_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CalculateLink_DevicePosition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CalculateLink_DevicePosition) ProtoMessage() {}
func (x *CalculateLink_DevicePosition) ProtoReflect() protoreflect.Message {
mi := &file_stationLayoutGraphics_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CalculateLink_DevicePosition.ProtoReflect.Descriptor instead.
func (*CalculateLink_DevicePosition) Descriptor() ([]byte, []int) {
return file_stationLayoutGraphics_proto_rawDescGZIP(), []int{37, 0}
}
func (x *CalculateLink_DevicePosition) GetOffset() int32 {
if x != nil {
return x.Offset
}
return 0
}
func (x *CalculateLink_DevicePosition) GetDeviceId() string {
if x != nil {
return x.DeviceId
}
return ""
}
func (x *CalculateLink_DevicePosition) GetDeviceType() string {
if x != nil {
return x.DeviceType
}
return ""
}
var File_stationLayoutGraphics_proto protoreflect.FileDescriptor
var file_stationLayoutGraphics_proto_rawDesc = []byte{
0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x22, 0xab, 0x10, 0x0a, 0x12, 0x52,
0x74, 0x73, 0x73, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x12, 0x2b, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x12, 0x33,
0x0a, 0x09, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73,
0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x07, 0x73, 0x69, 0x67,
0x6e, 0x61, 0x6c, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73,
0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x74, 0x75,
0x72, 0x6e, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x57,
0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e,
0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e,
0x64, 0x6f, 0x77, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74,
0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f,
0x72, 0x52, 0x0a, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a,
0x0c, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0f, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0c, 0x73,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x54, 0x0a, 0x14, 0x61,
0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x78, 0x6c,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63,
0x68, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63,
0x68, 0x52, 0x0b, 0x73, 0x70, 0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x73, 0x12, 0x36,
0x0a, 0x0a, 0x65, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x45, 0x73, 0x62, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x73, 0x62, 0x42,
0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f,
0x78, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x52,
0x08, 0x67, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x78, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x18, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72,
0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73,
0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x70, 0x65,
0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x06, 0x73, 0x6c, 0x6f,
0x70, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65,
0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61,
0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0d, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74,
0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4b, 0x69,
0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x6f,
0x70, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x0f, 0x73, 0x6c,
0x6f, 0x70, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x52, 0x0a,
0x13, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61,
0x72, 0x6b, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75,
0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x13, 0x63, 0x75,
0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65,
0x72, 0x12, 0x36, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18,
0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x63,
0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x12, 0x74, 0x72,
0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67,
0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x55, 0x6e,
0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x1f, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x0e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65,
0x49, 0x64, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x51, 0x0a, 0x14, 0x6b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74,
0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x14, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x73,
0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53,
0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x65, 0x65,
0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73,
0x74, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c,
0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x17, 0x73, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69,
0x73, 0x74, 0x12, 0x51, 0x0a, 0x14, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64,
0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52,
0x14, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e,
0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44,
0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1d, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x63,
0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10,
0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x12, 0x2d, 0x0a, 0x07, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x12,
0x67, 0x0a, 0x1a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x26, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x1a, 0x67, 0x65,
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69,
0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa6, 0x01, 0x0a, 0x06, 0x43, 0x61, 0x6e,
0x76, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
0x74, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43,
0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b,
0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x11, 0x76,
0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d,
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x11,
0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72,
0x6d, 0x22, 0x23, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18,
0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20,
0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0xa9, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
0x52, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x6b,
0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x73, 0x6b,
0x65, 0x77, 0x22, 0x5a, 0x0a, 0x0e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
0x6f, 0x72, 0x6d, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xbb,
0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a,
0x0b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12,
0x34, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x72,
0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x69,
0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x0f, 0x63, 0x68, 0x69,
0x6c, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x22, 0xad, 0x01, 0x0a,
0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69,
0x6e, 0x64, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x53,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x53,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
0x72, 0x65, 0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x0a,
0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x50, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x49, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x10, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e,
0x44, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x6f,
0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0d, 0x73, 0x6f, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x4e, 0x0a, 0x13, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x63, 0x72, 0x65,
0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x13, 0x73, 0x63, 0x72,
0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74,
0x22, 0x89, 0x01, 0x0a, 0x0f, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
0x74, 0x72, 0x61, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x44, 0x6f,
0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53,
0x6d, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x53,
0x6d, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
0x65, 0x6e, 0x64, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x44, 0x6f, 0x6f, 0x72, 0x22, 0xaa, 0x02, 0x0a,
0x07, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a,
0x15, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x63, 0x6f,
0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69,
0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x49, 0x62, 0x70, 0x4d, 0x61, 0x70, 0x43, 0x6f,
0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x49, 0x62, 0x70,
0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x0b, 0x54, 0x72, 0x61,
0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a,
0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xa5, 0x03, 0x0a, 0x0c,
0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x06,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79,
0x73, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x41, 0x0a, 0x0f, 0x61, 0x78, 0x6c,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0f, 0x61, 0x78, 0x6c,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05,
0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x2c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41,
0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, 0x65,
0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04,
0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28,
0x09, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3b, 0x0a, 0x12, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65,
0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x0c,
0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x13,
0x0a, 0x0f, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72,
0x79, 0x10, 0x01, 0x22, 0x64, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41,
0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01,
0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x62, 0x62, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12,
0x28, 0x0a, 0x0f, 0x6e, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x6f, 0x47, 0x65, 0x6e, 0x65,
0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x8d, 0x06, 0x0a, 0x07, 0x54, 0x75,
0x72, 0x6e, 0x6f, 0x75, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x41, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42,
0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e,
0x74, 0x42, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x18, 0x08, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x43, 0x12, 0x2d,
0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61,
0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x12, 0x2d, 0x0a,
0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74,
0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x12, 0x2d, 0x0a, 0x05,
0x70, 0x63, 0x52, 0x65, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65,
0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x63, 0x52, 0x65, 0x66, 0x12, 0x46, 0x0a, 0x0f, 0x6b,
0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x0d,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74,
0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73,
0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x61, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x0f, 0x20,
0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x61, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x62, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52,
0x10, 0x70, 0x62, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x63, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x63, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x54, 0x0a,
0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79,
0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x2e, 0x53,
0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65,
0x52, 0x11, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54,
0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09,
0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x42, 0x0a, 0x11, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4d,
0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e,
0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39, 0x5f,
0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x5a, 0x44, 0x4a, 0x39,
0x5f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x10, 0x02, 0x22, 0x91, 0x01, 0x0a, 0x0f, 0x4b, 0x69,
0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a,
0x09, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x52, 0x09, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63,
0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74,
0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x34, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x03,
0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a,
0x06, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6d,
0x69, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c,
0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69,
0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a,
0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e,
0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x06, 0x72, 0x65,
0x66, 0x44, 0x65, 0x76, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
0x09, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x02, 0x6d, 0x74, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x02, 0x6d,
0x74, 0x22, 0x41, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x4c,
0x55, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x48,
0x4c, 0x55, 0x5f, 0x46, 0x55, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4c, 0x55, 0x5f, 0x46,
0x4c, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x42, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x48,
0x42, 0x55, 0x10, 0x05, 0x22, 0xa4, 0x04, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x73, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66,
0x12, 0x2d, 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x12,
0x42, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12,
0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x43, 0x75, 0x72,
0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x43, 0x75, 0x72, 0x76,
0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72,
0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d,
0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65,
0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x30, 0x0a, 0x0b, 0x53, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x68, 0x79, 0x73,
0x69, 0x63, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75,
0x74, 0x50, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x10, 0x02, 0x22, 0x82, 0x03, 0x0a, 0x0a,
0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x12, 0x42, 0x0a, 0x0a, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c,
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79,
0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x42,
0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f,
0x72, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x0b,
0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54,
0x72, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c,
0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0f,
0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x10, 0x04, 0x12,
0x0a, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x73,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x65,
0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e,
0x61, 0x6c, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x6c, 0x61, 0x72, 0x6d, 0x10, 0x08, 0x12, 0x0c,
0x0a, 0x08, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b,
0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x10, 0x0a, 0x22, 0x21, 0x0a,
0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x05, 0x0a, 0x01, 0x41,
0x10, 0x00, 0x12, 0x05, 0x0a, 0x01, 0x42, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x43, 0x10, 0x02,
0x22, 0x3b, 0x0a, 0x0d, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x65,
0x66, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a,
0x09, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x24, 0x0a, 0x0d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f,
0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0xcd, 0x02, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
0x6f, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x72,
0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72,
0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69,
0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74,
0x65, 0x6d, 0x12, 0x3f, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65,
0x72, 0x52, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64,
0x52, 0x65, 0x66, 0x52, 0x0e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x65, 0x72,
0x52, 0x65, 0x66, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09,
0x52, 0x13, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x09, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65,
0x52, 0x65, 0x66, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x2e,
0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x10,
0x00, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e,
0x67, 0x10, 0x01, 0x22, 0xe2, 0x02, 0x0a, 0x0b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
0x69, 0x6e, 0x6b, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e,
0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
0x52, 0x02, 0x75, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x61, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52, 0x07, 0x61,
0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x53, 0x69, 0x6d, 0x52, 0x65,
0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x52,
0x07, 0x62, 0x53, 0x69, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x52, 0x65, 0x66,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52,
0x04, 0x61, 0x52, 0x65, 0x66, 0x12, 0x2b, 0x0a, 0x04, 0x62, 0x52, 0x65, 0x66, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x04, 0x62, 0x52,
0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb6, 0x02, 0x0a, 0x13, 0x41, 0x78, 0x6c,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44,
0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x73, 0x12, 0x2d, 0x0a, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x61, 0x52, 0x65, 0x66,
0x12, 0x2d, 0x0a, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x05, 0x70, 0x62, 0x52, 0x65, 0x66, 0x12,
0x3a, 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x66, 0x52,
0x0a, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69,
0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
0x78, 0x22, 0xd9, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69,
0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x78, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x78, 0x6c, 0x65,
0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12,
0x1c, 0x0a, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x22, 0x97, 0x03,
0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f,
0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12,
0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52,
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x2c, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x63,
0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,
0x07, 0x69, 0x73, 0x43, 0x75, 0x72, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
0x69, 0x73, 0x43, 0x75, 0x72, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65,
0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d,
0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x28, 0x0a,
0x10, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x08, 0x0a,
0x04, 0x46, 0x4f, 0x52, 0x4b, 0x10, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x63,
0x6b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a,
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a,
0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69,
0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16,
0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x50,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70,
0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f,
0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d,
0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69,
0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b,
0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2f,
0x0a, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c,
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x06, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x22,
0x28, 0x0a, 0x08, 0x43, 0x6f, 0x61, 0x63, 0x68, 0x4e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x46,
0x6f, 0x75, 0x72, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x69, 0x78, 0x10, 0x01, 0x12, 0x09,
0x0a, 0x05, 0x45, 0x69, 0x67, 0x68, 0x74, 0x10, 0x02, 0x22, 0xb9, 0x01, 0x0a, 0x0a, 0x53, 0x70,
0x6b, 0x73, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68,
0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a,
0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69,
0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x53, 0x65,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65,
0x66, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66,
0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x66,
0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0x96, 0x01, 0x0a, 0x09, 0x45, 0x73, 0x62, 0x42, 0x75, 0x74,
0x74, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70,
0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05,
0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x18, 0x06,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x66, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x22, 0xcf,
0x01, 0x0a, 0x08, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x2f, 0x0a, 0x06, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72,
0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
0x66, 0x6c, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65,
0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0d, 0x72, 0x65, 0x66, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x44, 0x6f, 0x6f, 0x72,
0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d,
0x61, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65,
0x66, 0x47, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x4d, 0x61, 0x70, 0x43, 0x6f, 0x64, 0x65,
0x22, 0x9e, 0x01, 0x0a, 0x0f, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x4b, 0x69, 0x6c, 0x6f, 0x4d, 0x61,
0x72, 0x6b, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63,
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46, 0x0a, 0x0f, 0x6b, 0x69, 0x6c,
0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x22, 0xa2, 0x01, 0x0a, 0x13, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b,
0x69, 0x6c, 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x46,
0x0a, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65,
0x6d, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0f, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xbc, 0x01, 0x0a, 0x06, 0x42, 0x65, 0x61, 0x63, 0x6f,
0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61,
0x74, 0x61, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c,
0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x22, 0x25,
0x0a, 0x0a, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06,
0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x79, 0x6e, 0x61,
0x6d, 0x69, 0x63, 0x10, 0x01, 0x22, 0xa8, 0x01, 0x0a, 0x05, 0x53, 0x6c, 0x6f, 0x70, 0x65, 0x12,
0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f,
0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50,
0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b,
0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
0x11, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20,
0x0a, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64,
0x22, 0xb4, 0x01, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2f,
0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12,
0x2a, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f,
0x69, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x63,
0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x11, 0x52, 0x0f, 0x63, 0x75, 0x72, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x22, 0xcb, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x63,
0x75, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x6f,
0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72, 0x61,
0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06,
0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x39,
0x0a, 0x0b, 0x61, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0b, 0x61, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x52, 0x65,
0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c,
0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x52, 0x0b, 0x62, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65,
0x64, 0x52, 0x65, 0x66, 0x12, 0x53, 0x0a, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f,
0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e,
0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6c, 0x63,
0x75, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64,
0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a,
0x64, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76,
0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76,
0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63,
0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x79, 0x0a, 0x17, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,
0x64, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74,
0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x14,
0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79,
0x73, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x69, 0x6e,
0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
0x22, 0x90, 0x01, 0x0a, 0x10, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x41, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
0x52, 0x03, 0x6b, 0x6d, 0x41, 0x12, 0x2e, 0x0a, 0x03, 0x6b, 0x6d, 0x42, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61,
0x2e, 0x4b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
0x52, 0x03, 0x6b, 0x6d, 0x42, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54, 0x72, 0x65,
0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x54, 0x72,
0x65, 0x6e, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x65, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63,
0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
0x4e, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79,
0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f,
0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x52, 0x10, 0x63,
0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12,
0x42, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74,
0x61, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x2e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x22, 0x4b, 0x0a, 0x15, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d,
0x62, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73,
0x22, 0x62, 0x0a, 0x10, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x50,
0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x12, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x64, 0x73, 0x2a, 0x20, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52,
0x49, 0x47, 0x48, 0x54, 0x10, 0x01, 0x42, 0x55, 0x0a, 0x25, 0x63, 0x6c, 0x75, 0x62, 0x2e, 0x6a,
0x6f, 0x79, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x62, 0x6a, 0x72, 0x74, 0x73, 0x73, 0x2e, 0x61, 0x74,
0x73, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x42,
0x13, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x17, 0x2e, 0x2f, 0x74, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x73, 0x2f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_stationLayoutGraphics_proto_rawDescOnce sync.Once
file_stationLayoutGraphics_proto_rawDescData = file_stationLayoutGraphics_proto_rawDesc
)
func file_stationLayoutGraphics_proto_rawDescGZIP() []byte {
file_stationLayoutGraphics_proto_rawDescOnce.Do(func() {
file_stationLayoutGraphics_proto_rawDescData = protoimpl.X.CompressGZIP(file_stationLayoutGraphics_proto_rawDescData)
})
return file_stationLayoutGraphics_proto_rawDescData
}
var file_stationLayoutGraphics_proto_enumTypes = make([]protoimpl.EnumInfo, 11)
var file_stationLayoutGraphics_proto_msgTypes = make([]protoimpl.MessageInfo, 44)
var file_stationLayoutGraphics_proto_goTypes = []interface{}{
(Direction)(0), // 0: graphicData.Direction
(AxleCounting_TypeDetectionPoint)(0), // 1: graphicData.AxleCounting.TypeDetectionPoint
(Turnout_SwitchMachineType)(0), // 2: graphicData.Turnout.SwitchMachineType
(Signal_Model)(0), // 3: graphicData.Signal.Model
(Section_SectionType)(0), // 4: graphicData.Section.SectionType
(RelatedRef_DeviceType)(0), // 5: graphicData.RelatedRef.DeviceType
(RelatedRef_DevicePort)(0), // 6: graphicData.RelatedRef.DevicePort
(SimpleRef_DeviceType)(0), // 7: graphicData.SimpleRef.DeviceType
(TrackSection_TrackSectionType)(0), // 8: graphicData.TrackSection.TrackSectionType
(StopPosition_CoachNum)(0), // 9: graphicData.StopPosition.CoachNum
(Beacon_BeaconType)(0), // 10: graphicData.Beacon.BeaconType
(*RtssGraphicStorage)(nil), // 11: graphicData.RtssGraphicStorage
(*Canvas)(nil), // 12: graphicData.Canvas
(*Point)(nil), // 13: graphicData.Point
(*Transform)(nil), // 14: graphicData.Transform
(*ChildTransform)(nil), // 15: graphicData.ChildTransform
(*CommonInfo)(nil), // 16: graphicData.CommonInfo
(*Platform)(nil), // 17: graphicData.Platform
(*ScreenDoor)(nil), // 18: graphicData.ScreenDoor
(*ScreenDoorConfig)(nil), // 19: graphicData.ScreenDoorConfig
(*ScreenDoorGroup)(nil), // 20: graphicData.ScreenDoorGroup
(*Station)(nil), // 21: graphicData.Station
(*TrainWindow)(nil), // 22: graphicData.TrainWindow
(*AxleCounting)(nil), // 23: graphicData.AxleCounting
(*GenerateAxleCountingConfig)(nil), // 24: graphicData.GenerateAxleCountingConfig
(*Turnout)(nil), // 25: graphicData.Turnout
(*KilometerSystem)(nil), // 26: graphicData.KilometerSystem
(*Signal)(nil), // 27: graphicData.Signal
(*Section)(nil), // 28: graphicData.Section
(*RelatedRef)(nil), // 29: graphicData.RelatedRef
(*TurnoutPosRef)(nil), // 30: graphicData.TurnoutPosRef
(*Separator)(nil), // 31: graphicData.Separator
(*Transponder)(nil), // 32: graphicData.Transponder
(*SimpleRef)(nil), // 33: graphicData.SimpleRef
(*SectionLink)(nil), // 34: graphicData.SectionLink
(*AxleCountingSection)(nil), // 35: graphicData.AxleCountingSection
(*LogicSection)(nil), // 36: graphicData.LogicSection
(*TrackSection)(nil), // 37: graphicData.TrackSection
(*TrackLogicSection)(nil), // 38: graphicData.TrackLogicSection
(*StopPosition)(nil), // 39: graphicData.StopPosition
(*SpksSwitch)(nil), // 40: graphicData.SpksSwitch
(*EsbButton)(nil), // 41: graphicData.EsbButton
(*GatedBox)(nil), // 42: graphicData.GatedBox
(*SlopeKiloMarker)(nil), // 43: graphicData.SlopeKiloMarker
(*CurvatureKiloMarker)(nil), // 44: graphicData.CurvatureKiloMarker
(*Beacon)(nil), // 45: graphicData.Beacon
(*Slope)(nil), // 46: graphicData.Slope
(*Curvature)(nil), // 47: graphicData.Curvature
(*CalculateLink)(nil), // 48: graphicData.CalculateLink
(*UniqueIdOfStationLayout)(nil), // 49: graphicData.UniqueIdOfStationLayout
(*KilometerConvert)(nil), // 50: graphicData.KilometerConvert
(*StationRelateDevice)(nil), // 51: graphicData.StationRelateDevice
(*DeviceCombinationtype)(nil), // 52: graphicData.DeviceCombinationtype
(*SectionCodePoint)(nil), // 53: graphicData.SectionCodePoint
(*CalculateLink_DevicePosition)(nil), // 54: graphicData.CalculateLink.DevicePosition
}
var file_stationLayoutGraphics_proto_depIdxs = []int32{
12, // 0: graphicData.RtssGraphicStorage.canvas:type_name -> graphicData.Canvas
17, // 1: graphicData.RtssGraphicStorage.Platforms:type_name -> graphicData.Platform
21, // 2: graphicData.RtssGraphicStorage.stations:type_name -> graphicData.Station
27, // 3: graphicData.RtssGraphicStorage.signals:type_name -> graphicData.Signal
25, // 4: graphicData.RtssGraphicStorage.turnouts:type_name -> graphicData.Turnout
28, // 5: graphicData.RtssGraphicStorage.section:type_name -> graphicData.Section
22, // 6: graphicData.RtssGraphicStorage.trainWindows:type_name -> graphicData.TrainWindow
23, // 7: graphicData.RtssGraphicStorage.axleCountings:type_name -> graphicData.AxleCounting
31, // 8: graphicData.RtssGraphicStorage.separators:type_name -> graphicData.Separator
34, // 9: graphicData.RtssGraphicStorage.sectionLinks:type_name -> graphicData.SectionLink
35, // 10: graphicData.RtssGraphicStorage.axleCountingSections:type_name -> graphicData.AxleCountingSection
36, // 11: graphicData.RtssGraphicStorage.logicSections:type_name -> graphicData.LogicSection
39, // 12: graphicData.RtssGraphicStorage.stopPositions:type_name -> graphicData.StopPosition
40, // 13: graphicData.RtssGraphicStorage.spksSwitchs:type_name -> graphicData.SpksSwitch
41, // 14: graphicData.RtssGraphicStorage.esbButtons:type_name -> graphicData.EsbButton
42, // 15: graphicData.RtssGraphicStorage.gateBoxs:type_name -> graphicData.GatedBox
32, // 16: graphicData.RtssGraphicStorage.transponders:type_name -> graphicData.Transponder
46, // 17: graphicData.RtssGraphicStorage.slopes:type_name -> graphicData.Slope
48, // 18: graphicData.RtssGraphicStorage.CalculateLink:type_name -> graphicData.CalculateLink
43, // 19: graphicData.RtssGraphicStorage.slopeKiloMarker:type_name -> graphicData.SlopeKiloMarker
44, // 20: graphicData.RtssGraphicStorage.curvatureKiloMarker:type_name -> graphicData.CurvatureKiloMarker
47, // 21: graphicData.RtssGraphicStorage.curvatures:type_name -> graphicData.Curvature
37, // 22: graphicData.RtssGraphicStorage.trackSections:type_name -> graphicData.TrackSection
38, // 23: graphicData.RtssGraphicStorage.trackLogicSections:type_name -> graphicData.TrackLogicSection
49, // 24: graphicData.RtssGraphicStorage.UniqueIdPrefix:type_name -> graphicData.UniqueIdOfStationLayout
50, // 25: graphicData.RtssGraphicStorage.kilometerConvertList:type_name -> graphicData.KilometerConvert
18, // 26: graphicData.RtssGraphicStorage.screenDoors:type_name -> graphicData.ScreenDoor
51, // 27: graphicData.RtssGraphicStorage.stationRelateDeviceList:type_name -> graphicData.StationRelateDevice
53, // 28: graphicData.RtssGraphicStorage.sectionCodePointList:type_name -> graphicData.SectionCodePoint
19, // 29: graphicData.RtssGraphicStorage.screenDoorConfig:type_name -> graphicData.ScreenDoorConfig
45, // 30: graphicData.RtssGraphicStorage.beacons:type_name -> graphicData.Beacon
24, // 31: graphicData.RtssGraphicStorage.generateAxleCountingConfig:type_name -> graphicData.GenerateAxleCountingConfig
14, // 32: graphicData.Canvas.viewportTransform:type_name -> graphicData.Transform
13, // 33: graphicData.Transform.position:type_name -> graphicData.Point
13, // 34: graphicData.Transform.scale:type_name -> graphicData.Point
13, // 35: graphicData.Transform.skew:type_name -> graphicData.Point
14, // 36: graphicData.ChildTransform.transform:type_name -> graphicData.Transform
14, // 37: graphicData.CommonInfo.transform:type_name -> graphicData.Transform
15, // 38: graphicData.CommonInfo.childTransforms:type_name -> graphicData.ChildTransform
16, // 39: graphicData.Platform.common:type_name -> graphicData.CommonInfo
16, // 40: graphicData.ScreenDoor.common:type_name -> graphicData.CommonInfo
20, // 41: graphicData.ScreenDoorConfig.screenDoorGroupList:type_name -> graphicData.ScreenDoorGroup
16, // 42: graphicData.Station.common:type_name -> graphicData.CommonInfo
26, // 43: graphicData.Station.kilometerSystem:type_name -> graphicData.KilometerSystem
16, // 44: graphicData.TrainWindow.common:type_name -> graphicData.CommonInfo
16, // 45: graphicData.AxleCounting.common:type_name -> graphicData.CommonInfo
26, // 46: graphicData.AxleCounting.kilometerSystem:type_name -> graphicData.KilometerSystem
29, // 47: graphicData.AxleCounting.axleCountingRef:type_name -> graphicData.RelatedRef
1, // 48: graphicData.AxleCounting.type:type_name -> graphicData.AxleCounting.TypeDetectionPoint
16, // 49: graphicData.Turnout.common:type_name -> graphicData.CommonInfo
13, // 50: graphicData.Turnout.pointA:type_name -> graphicData.Point
13, // 51: graphicData.Turnout.pointB:type_name -> graphicData.Point
13, // 52: graphicData.Turnout.pointC:type_name -> graphicData.Point
29, // 53: graphicData.Turnout.paRef:type_name -> graphicData.RelatedRef
29, // 54: graphicData.Turnout.pbRef:type_name -> graphicData.RelatedRef
29, // 55: graphicData.Turnout.pcRef:type_name -> graphicData.RelatedRef
26, // 56: graphicData.Turnout.kilometerSystem:type_name -> graphicData.KilometerSystem
2, // 57: graphicData.Turnout.switchMachineType:type_name -> graphicData.Turnout.SwitchMachineType
0, // 58: graphicData.KilometerSystem.direction:type_name -> graphicData.Direction
16, // 59: graphicData.Signal.common:type_name -> graphicData.CommonInfo
26, // 60: graphicData.Signal.kilometerSystem:type_name -> graphicData.KilometerSystem
29, // 61: graphicData.Signal.refDev:type_name -> graphicData.RelatedRef
3, // 62: graphicData.Signal.mt:type_name -> graphicData.Signal.Model
16, // 63: graphicData.Section.common:type_name -> graphicData.CommonInfo
13, // 64: graphicData.Section.points:type_name -> graphicData.Point
29, // 65: graphicData.Section.paRef:type_name -> graphicData.RelatedRef
29, // 66: graphicData.Section.pbRef:type_name -> graphicData.RelatedRef
4, // 67: graphicData.Section.sectionType:type_name -> graphicData.Section.SectionType
5, // 68: graphicData.RelatedRef.deviceType:type_name -> graphicData.RelatedRef.DeviceType
6, // 69: graphicData.RelatedRef.devicePort:type_name -> graphicData.RelatedRef.DevicePort
16, // 70: graphicData.Separator.common:type_name -> graphicData.CommonInfo
16, // 71: graphicData.Transponder.common:type_name -> graphicData.CommonInfo
26, // 72: graphicData.Transponder.kilometerSystem:type_name -> graphicData.KilometerSystem
29, // 73: graphicData.Transponder.TransponderRef:type_name -> graphicData.RelatedRef
7, // 74: graphicData.SimpleRef.deviceType:type_name -> graphicData.SimpleRef.DeviceType
16, // 75: graphicData.SectionLink.common:type_name -> graphicData.CommonInfo
13, // 76: graphicData.SectionLink.points:type_name -> graphicData.Point
33, // 77: graphicData.SectionLink.aSimRef:type_name -> graphicData.SimpleRef
33, // 78: graphicData.SectionLink.bSimRef:type_name -> graphicData.SimpleRef
29, // 79: graphicData.SectionLink.aRef:type_name -> graphicData.RelatedRef
29, // 80: graphicData.SectionLink.bRef:type_name -> graphicData.RelatedRef
16, // 81: graphicData.AxleCountingSection.common:type_name -> graphicData.CommonInfo
13, // 82: graphicData.AxleCountingSection.points:type_name -> graphicData.Point
29, // 83: graphicData.AxleCountingSection.paRef:type_name -> graphicData.RelatedRef
29, // 84: graphicData.AxleCountingSection.pbRef:type_name -> graphicData.RelatedRef
30, // 85: graphicData.AxleCountingSection.turnoutPos:type_name -> graphicData.TurnoutPosRef
16, // 86: graphicData.LogicSection.common:type_name -> graphicData.CommonInfo
13, // 87: graphicData.LogicSection.points:type_name -> graphicData.Point
16, // 88: graphicData.TrackSection.common:type_name -> graphicData.CommonInfo
13, // 89: graphicData.TrackSection.points:type_name -> graphicData.Point
8, // 90: graphicData.TrackSection.type:type_name -> graphicData.TrackSection.TrackSectionType
16, // 91: graphicData.TrackLogicSection.common:type_name -> graphicData.CommonInfo
13, // 92: graphicData.TrackLogicSection.points:type_name -> graphicData.Point
16, // 93: graphicData.StopPosition.common:type_name -> graphicData.CommonInfo
9, // 94: graphicData.StopPosition.coachNum:type_name -> graphicData.StopPosition.CoachNum
26, // 95: graphicData.StopPosition.kilometerSystem:type_name -> graphicData.KilometerSystem
29, // 96: graphicData.StopPosition.refDev:type_name -> graphicData.RelatedRef
16, // 97: graphicData.SpksSwitch.common:type_name -> graphicData.CommonInfo
16, // 98: graphicData.EsbButton.common:type_name -> graphicData.CommonInfo
16, // 99: graphicData.GatedBox.common:type_name -> graphicData.CommonInfo
16, // 100: graphicData.SlopeKiloMarker.common:type_name -> graphicData.CommonInfo
26, // 101: graphicData.SlopeKiloMarker.kilometerSystem:type_name -> graphicData.KilometerSystem
16, // 102: graphicData.CurvatureKiloMarker.common:type_name -> graphicData.CommonInfo
26, // 103: graphicData.CurvatureKiloMarker.kilometerSystem:type_name -> graphicData.KilometerSystem
16, // 104: graphicData.Beacon.common:type_name -> graphicData.CommonInfo
10, // 105: graphicData.Beacon.type:type_name -> graphicData.Beacon.BeaconType
16, // 106: graphicData.Slope.common:type_name -> graphicData.CommonInfo
13, // 107: graphicData.Slope.points:type_name -> graphicData.Point
16, // 108: graphicData.Curvature.common:type_name -> graphicData.CommonInfo
13, // 109: graphicData.Curvature.points:type_name -> graphicData.Point
16, // 110: graphicData.CalculateLink.common:type_name -> graphicData.CommonInfo
13, // 111: graphicData.CalculateLink.points:type_name -> graphicData.Point
29, // 112: graphicData.CalculateLink.aRelatedRef:type_name -> graphicData.RelatedRef
29, // 113: graphicData.CalculateLink.bRelatedRef:type_name -> graphicData.RelatedRef
54, // 114: graphicData.CalculateLink.devicePositions:type_name -> graphicData.CalculateLink.DevicePosition
26, // 115: graphicData.KilometerConvert.kmA:type_name -> graphicData.KilometerSystem
26, // 116: graphicData.KilometerConvert.kmB:type_name -> graphicData.KilometerSystem
52, // 117: graphicData.StationRelateDevice.combinationtypes:type_name -> graphicData.DeviceCombinationtype
5, // 118: graphicData.StationRelateDevice.deviceType:type_name -> graphicData.RelatedRef.DeviceType
119, // [119:119] is the sub-list for method output_type
119, // [119:119] is the sub-list for method input_type
119, // [119:119] is the sub-list for extension type_name
119, // [119:119] is the sub-list for extension extendee
0, // [0:119] is the sub-list for field type_name
}
func init() { file_stationLayoutGraphics_proto_init() }
func file_stationLayoutGraphics_proto_init() {
if File_stationLayoutGraphics_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_stationLayoutGraphics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RtssGraphicStorage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Canvas); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Point); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ChildTransform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommonInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Platform); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScreenDoor); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScreenDoorConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ScreenDoorGroup); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Station); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrainWindow); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AxleCounting); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenerateAxleCountingConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Turnout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KilometerSystem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Signal); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Section); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelatedRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TurnoutPosRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Separator); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transponder); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SimpleRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AxleCountingSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LogicSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrackSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrackLogicSection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StopPosition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SpksSwitch); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EsbButton); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GatedBox); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SlopeKiloMarker); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CurvatureKiloMarker); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Beacon); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Slope); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Curvature); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CalculateLink); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UniqueIdOfStationLayout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KilometerConvert); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StationRelateDevice); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeviceCombinationtype); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SectionCodePoint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_stationLayoutGraphics_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CalculateLink_DevicePosition); 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_stationLayoutGraphics_proto_rawDesc,
NumEnums: 11,
NumMessages: 44,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_stationLayoutGraphics_proto_goTypes,
DependencyIndexes: file_stationLayoutGraphics_proto_depIdxs,
EnumInfos: file_stationLayoutGraphics_proto_enumTypes,
MessageInfos: file_stationLayoutGraphics_proto_msgTypes,
}.Build()
File_stationLayoutGraphics_proto = out.File
file_stationLayoutGraphics_proto_rawDesc = nil
file_stationLayoutGraphics_proto_goTypes = nil
file_stationLayoutGraphics_proto_depIdxs = nil
}