// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 // protoc v3.19.4 // source: trip.proto package valhalla 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 TripLeg_Traversability int32 const ( TripLeg_kNone TripLeg_Traversability = 0 TripLeg_kForward TripLeg_Traversability = 1 TripLeg_kBackward TripLeg_Traversability = 2 TripLeg_kBoth TripLeg_Traversability = 3 ) // Enum value maps for TripLeg_Traversability. var ( TripLeg_Traversability_name = map[int32]string{ 0: "kNone", 1: "kForward", 2: "kBackward", 3: "kBoth", } TripLeg_Traversability_value = map[string]int32{ "kNone": 0, "kForward": 1, "kBackward": 2, "kBoth": 3, } ) func (x TripLeg_Traversability) Enum() *TripLeg_Traversability { p := new(TripLeg_Traversability) *p = x return p } func (x TripLeg_Traversability) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_Traversability) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[0].Descriptor() } func (TripLeg_Traversability) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[0] } func (x TripLeg_Traversability) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_Traversability.Descriptor instead. func (TripLeg_Traversability) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 0} } type TripLeg_Use int32 const ( TripLeg_kRoadUse TripLeg_Use = 0 TripLeg_kRampUse TripLeg_Use = 1 // Link - exits/entrance ramps. TripLeg_kTurnChannelUse TripLeg_Use = 2 // Link - turn lane. TripLeg_kTrackUse TripLeg_Use = 3 // Agricultural use; forest tracks TripLeg_kDrivewayUse TripLeg_Use = 4 // Driveway/private service TripLeg_kAlleyUse TripLeg_Use = 5 // Service road - limited route use TripLeg_kParkingAisleUse TripLeg_Use = 6 // Access roads in parking areas TripLeg_kEmergencyAccessUse TripLeg_Use = 7 // Emergency vehicles only TripLeg_kDriveThruUse TripLeg_Use = 8 // Commercial drive-thru (banks/fast-food) TripLeg_kCuldesacUse TripLeg_Use = 9 // Cul-de-sac (edge that forms a loop and is only // connected at one node to another edge. TripLeg_kLivingStreetUse TripLeg_Use = 10 // Shared space for cars, bikes, pedestrians TripLeg_kServiceRoadUse TripLeg_Use = 11 // Generic service road (not driveway, alley, parking aisle, etc.) // Bicycle specific uses TripLeg_kCyclewayUse TripLeg_Use = 20 // Dedicated bicycle path TripLeg_kMountainBikeUse TripLeg_Use = 21 // Mountain bike trail TripLeg_kSidewalkUse TripLeg_Use = 24 // Pedestrian specific uses TripLeg_kFootwayUse TripLeg_Use = 25 TripLeg_kStepsUse TripLeg_Use = 26 // Stairs TripLeg_kPathUse TripLeg_Use = 27 TripLeg_kPedestrianUse TripLeg_Use = 28 TripLeg_kBridlewayUse TripLeg_Use = 29 TripLeg_kPedestrianCrossingUse TripLeg_Use = 32 TripLeg_kElevatorUse TripLeg_Use = 33 TripLeg_kEscalatorUse TripLeg_Use = 34 //Rest/Service Areas TripLeg_kRestAreaUse TripLeg_Use = 30 TripLeg_kServiceAreaUse TripLeg_Use = 31 // Other... TripLeg_kOtherUse TripLeg_Use = 40 // Ferry and rail ferry TripLeg_kFerryUse TripLeg_Use = 41 TripLeg_kRailFerryUse TripLeg_Use = 42 TripLeg_kConstructionUse TripLeg_Use = 43 // Road under construction // Transit specific uses. Must be last in the list TripLeg_kRailUse TripLeg_Use = 50 // Rail line TripLeg_kBusUse TripLeg_Use = 51 // Bus line TripLeg_kEgressConnectionUse TripLeg_Use = 52 // Connection between transit station and transit egress TripLeg_kPlatformConnectionUse TripLeg_Use = 53 // Connection between transit station and transit platform TripLeg_kTransitConnectionUse TripLeg_Use = 54 // Connection between road network and transit egress ) // Enum value maps for TripLeg_Use. var ( TripLeg_Use_name = map[int32]string{ 0: "kRoadUse", 1: "kRampUse", 2: "kTurnChannelUse", 3: "kTrackUse", 4: "kDrivewayUse", 5: "kAlleyUse", 6: "kParkingAisleUse", 7: "kEmergencyAccessUse", 8: "kDriveThruUse", 9: "kCuldesacUse", 10: "kLivingStreetUse", 11: "kServiceRoadUse", 20: "kCyclewayUse", 21: "kMountainBikeUse", 24: "kSidewalkUse", 25: "kFootwayUse", 26: "kStepsUse", 27: "kPathUse", 28: "kPedestrianUse", 29: "kBridlewayUse", 32: "kPedestrianCrossingUse", 33: "kElevatorUse", 34: "kEscalatorUse", 30: "kRestAreaUse", 31: "kServiceAreaUse", 40: "kOtherUse", 41: "kFerryUse", 42: "kRailFerryUse", 43: "kConstructionUse", 50: "kRailUse", 51: "kBusUse", 52: "kEgressConnectionUse", 53: "kPlatformConnectionUse", 54: "kTransitConnectionUse", } TripLeg_Use_value = map[string]int32{ "kRoadUse": 0, "kRampUse": 1, "kTurnChannelUse": 2, "kTrackUse": 3, "kDrivewayUse": 4, "kAlleyUse": 5, "kParkingAisleUse": 6, "kEmergencyAccessUse": 7, "kDriveThruUse": 8, "kCuldesacUse": 9, "kLivingStreetUse": 10, "kServiceRoadUse": 11, "kCyclewayUse": 20, "kMountainBikeUse": 21, "kSidewalkUse": 24, "kFootwayUse": 25, "kStepsUse": 26, "kPathUse": 27, "kPedestrianUse": 28, "kBridlewayUse": 29, "kPedestrianCrossingUse": 32, "kElevatorUse": 33, "kEscalatorUse": 34, "kRestAreaUse": 30, "kServiceAreaUse": 31, "kOtherUse": 40, "kFerryUse": 41, "kRailFerryUse": 42, "kConstructionUse": 43, "kRailUse": 50, "kBusUse": 51, "kEgressConnectionUse": 52, "kPlatformConnectionUse": 53, "kTransitConnectionUse": 54, } ) func (x TripLeg_Use) Enum() *TripLeg_Use { p := new(TripLeg_Use) *p = x return p } func (x TripLeg_Use) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_Use) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[1].Descriptor() } func (TripLeg_Use) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[1] } func (x TripLeg_Use) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_Use.Descriptor instead. func (TripLeg_Use) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 1} } type TripLeg_Surface int32 const ( TripLeg_kPavedSmooth TripLeg_Surface = 0 TripLeg_kPaved TripLeg_Surface = 1 TripLeg_kPavedRough TripLeg_Surface = 2 TripLeg_kCompacted TripLeg_Surface = 3 TripLeg_kDirt TripLeg_Surface = 4 TripLeg_kGravel TripLeg_Surface = 5 TripLeg_kPath TripLeg_Surface = 6 TripLeg_kImpassable TripLeg_Surface = 7 ) // Enum value maps for TripLeg_Surface. var ( TripLeg_Surface_name = map[int32]string{ 0: "kPavedSmooth", 1: "kPaved", 2: "kPavedRough", 3: "kCompacted", 4: "kDirt", 5: "kGravel", 6: "kPath", 7: "kImpassable", } TripLeg_Surface_value = map[string]int32{ "kPavedSmooth": 0, "kPaved": 1, "kPavedRough": 2, "kCompacted": 3, "kDirt": 4, "kGravel": 5, "kPath": 6, "kImpassable": 7, } ) func (x TripLeg_Surface) Enum() *TripLeg_Surface { p := new(TripLeg_Surface) *p = x return p } func (x TripLeg_Surface) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_Surface) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[2].Descriptor() } func (TripLeg_Surface) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[2] } func (x TripLeg_Surface) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_Surface.Descriptor instead. func (TripLeg_Surface) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 2} } type TripLeg_CycleLane int32 const ( TripLeg_kNoCycleLane TripLeg_CycleLane = 0 TripLeg_kShared TripLeg_CycleLane = 1 // Shared use lane (could be shared with pedestrians) TripLeg_kDedicated TripLeg_CycleLane = 2 // Dedicated cycle lane TripLeg_kSeparated TripLeg_CycleLane = 3 // A separate cycle lane (physical separation from the main carriageway ) // Enum value maps for TripLeg_CycleLane. var ( TripLeg_CycleLane_name = map[int32]string{ 0: "kNoCycleLane", 1: "kShared", 2: "kDedicated", 3: "kSeparated", } TripLeg_CycleLane_value = map[string]int32{ "kNoCycleLane": 0, "kShared": 1, "kDedicated": 2, "kSeparated": 3, } ) func (x TripLeg_CycleLane) Enum() *TripLeg_CycleLane { p := new(TripLeg_CycleLane) *p = x return p } func (x TripLeg_CycleLane) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_CycleLane) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[3].Descriptor() } func (TripLeg_CycleLane) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[3] } func (x TripLeg_CycleLane) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_CycleLane.Descriptor instead. func (TripLeg_CycleLane) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 3} } type TripLeg_SacScale int32 const ( TripLeg_kNoSacScale TripLeg_SacScale = 0 TripLeg_kHiking TripLeg_SacScale = 1 TripLeg_kMountainHiking TripLeg_SacScale = 2 TripLeg_kDemandingMountainHiking TripLeg_SacScale = 3 TripLeg_kAlpineHiking TripLeg_SacScale = 4 TripLeg_kDemandingAlpineHiking TripLeg_SacScale = 5 TripLeg_kDifficultAlpineHiking TripLeg_SacScale = 6 ) // Enum value maps for TripLeg_SacScale. var ( TripLeg_SacScale_name = map[int32]string{ 0: "kNoSacScale", 1: "kHiking", 2: "kMountainHiking", 3: "kDemandingMountainHiking", 4: "kAlpineHiking", 5: "kDemandingAlpineHiking", 6: "kDifficultAlpineHiking", } TripLeg_SacScale_value = map[string]int32{ "kNoSacScale": 0, "kHiking": 1, "kMountainHiking": 2, "kDemandingMountainHiking": 3, "kAlpineHiking": 4, "kDemandingAlpineHiking": 5, "kDifficultAlpineHiking": 6, } ) func (x TripLeg_SacScale) Enum() *TripLeg_SacScale { p := new(TripLeg_SacScale) *p = x return p } func (x TripLeg_SacScale) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_SacScale) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[4].Descriptor() } func (TripLeg_SacScale) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[4] } func (x TripLeg_SacScale) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_SacScale.Descriptor instead. func (TripLeg_SacScale) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 4} } type TripLeg_Sidewalk int32 const ( TripLeg_kNoSidewalk TripLeg_Sidewalk = 0 TripLeg_kLeft TripLeg_Sidewalk = 1 TripLeg_kRight TripLeg_Sidewalk = 2 TripLeg_kBothSides TripLeg_Sidewalk = 3 ) // Enum value maps for TripLeg_Sidewalk. var ( TripLeg_Sidewalk_name = map[int32]string{ 0: "kNoSidewalk", 1: "kLeft", 2: "kRight", 3: "kBothSides", } TripLeg_Sidewalk_value = map[string]int32{ "kNoSidewalk": 0, "kLeft": 1, "kRight": 2, "kBothSides": 3, } ) func (x TripLeg_Sidewalk) Enum() *TripLeg_Sidewalk { p := new(TripLeg_Sidewalk) *p = x return p } func (x TripLeg_Sidewalk) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_Sidewalk) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[5].Descriptor() } func (TripLeg_Sidewalk) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[5] } func (x TripLeg_Sidewalk) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_Sidewalk.Descriptor instead. func (TripLeg_Sidewalk) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 5} } type TripLeg_Node_Type int32 const ( TripLeg_Node_kStreetIntersection TripLeg_Node_Type = 0 // Regular intersection of 2+ roads TripLeg_Node_kGate TripLeg_Node_Type = 1 // Gate or rising bollard TripLeg_Node_kBollard TripLeg_Node_Type = 2 // Bollard (fixed obstruction) TripLeg_Node_kTollBooth TripLeg_Node_Type = 3 // Toll booth / fare collection // TODO - for now there is no differentiation between bus and rail stops... TripLeg_Node_kTransitEgress TripLeg_Node_Type = 4 // Transit egress TripLeg_Node_kTransitStation TripLeg_Node_Type = 5 // Transit station TripLeg_Node_kTransitPlatform TripLeg_Node_Type = 6 // Transit platform (rail and bus) TripLeg_Node_kBikeShare TripLeg_Node_Type = 7 // Bike share location TripLeg_Node_kParking TripLeg_Node_Type = 8 // Parking location TripLeg_Node_kMotorwayJunction TripLeg_Node_Type = 9 // Highway = motorway_junction TripLeg_Node_kBorderControl TripLeg_Node_Type = 10 // Border control TripLeg_Node_kTollGantry TripLeg_Node_Type = 11 // Toll gantry TripLeg_Node_kSumpBuster TripLeg_Node_Type = 12 // Sump Buster TripLeg_Node_kBuildingEntrance TripLeg_Node_Type = 13 // Building Entrance TripLeg_Node_kElevator TripLeg_Node_Type = 14 // Elevator ) // Enum value maps for TripLeg_Node_Type. var ( TripLeg_Node_Type_name = map[int32]string{ 0: "kStreetIntersection", 1: "kGate", 2: "kBollard", 3: "kTollBooth", 4: "kTransitEgress", 5: "kTransitStation", 6: "kTransitPlatform", 7: "kBikeShare", 8: "kParking", 9: "kMotorwayJunction", 10: "kBorderControl", 11: "kTollGantry", 12: "kSumpBuster", 13: "kBuildingEntrance", 14: "kElevator", } TripLeg_Node_Type_value = map[string]int32{ "kStreetIntersection": 0, "kGate": 1, "kBollard": 2, "kTollBooth": 3, "kTransitEgress": 4, "kTransitStation": 5, "kTransitPlatform": 6, "kBikeShare": 7, "kParking": 8, "kMotorwayJunction": 9, "kBorderControl": 10, "kTollGantry": 11, "kSumpBuster": 12, "kBuildingEntrance": 13, "kElevator": 14, } ) func (x TripLeg_Node_Type) Enum() *TripLeg_Node_Type { p := new(TripLeg_Node_Type) *p = x return p } func (x TripLeg_Node_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TripLeg_Node_Type) Descriptor() protoreflect.EnumDescriptor { return file_trip_proto_enumTypes[6].Descriptor() } func (TripLeg_Node_Type) Type() protoreflect.EnumType { return &file_trip_proto_enumTypes[6] } func (x TripLeg_Node_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TripLeg_Node_Type.Descriptor instead. func (TripLeg_Node_Type) EnumDescriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 7, 0} } type TripLeg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OsmChangeset uint64 `protobuf:"varint,1,opt,name=osm_changeset,json=osmChangeset,proto3" json:"osm_changeset,omitempty"` TripId uint64 `protobuf:"varint,2,opt,name=trip_id,json=tripId,proto3" json:"trip_id,omitempty"` LegId uint32 `protobuf:"varint,3,opt,name=leg_id,json=legId,proto3" json:"leg_id,omitempty"` LegCount uint32 `protobuf:"varint,4,opt,name=leg_count,json=legCount,proto3" json:"leg_count,omitempty"` Location []*Location `protobuf:"bytes,5,rep,name=location,proto3" json:"location,omitempty"` Node []*TripLeg_Node `protobuf:"bytes,6,rep,name=node,proto3" json:"node,omitempty"` Admin []*TripLeg_Admin `protobuf:"bytes,7,rep,name=admin,proto3" json:"admin,omitempty"` Shape string `protobuf:"bytes,8,opt,name=shape,proto3" json:"shape,omitempty"` Bbox *BoundingBox `protobuf:"bytes,9,opt,name=bbox,proto3" json:"bbox,omitempty"` ShapeAttributes *TripLeg_ShapeAttributes `protobuf:"bytes,10,opt,name=shape_attributes,json=shapeAttributes,proto3" json:"shape_attributes,omitempty"` Incidents []*TripLeg_Incident `protobuf:"bytes,11,rep,name=incidents,proto3" json:"incidents,omitempty"` Algorithms []string `protobuf:"bytes,12,rep,name=algorithms,proto3" json:"algorithms,omitempty"` Closures []*TripLeg_Closure `protobuf:"bytes,13,rep,name=closures,proto3" json:"closures,omitempty"` } func (x *TripLeg) Reset() { *x = TripLeg{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg) ProtoMessage() {} func (x *TripLeg) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg.ProtoReflect.Descriptor instead. func (*TripLeg) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0} } func (x *TripLeg) GetOsmChangeset() uint64 { if x != nil { return x.OsmChangeset } return 0 } func (x *TripLeg) GetTripId() uint64 { if x != nil { return x.TripId } return 0 } func (x *TripLeg) GetLegId() uint32 { if x != nil { return x.LegId } return 0 } func (x *TripLeg) GetLegCount() uint32 { if x != nil { return x.LegCount } return 0 } func (x *TripLeg) GetLocation() []*Location { if x != nil { return x.Location } return nil } func (x *TripLeg) GetNode() []*TripLeg_Node { if x != nil { return x.Node } return nil } func (x *TripLeg) GetAdmin() []*TripLeg_Admin { if x != nil { return x.Admin } return nil } func (x *TripLeg) GetShape() string { if x != nil { return x.Shape } return "" } func (x *TripLeg) GetBbox() *BoundingBox { if x != nil { return x.Bbox } return nil } func (x *TripLeg) GetShapeAttributes() *TripLeg_ShapeAttributes { if x != nil { return x.ShapeAttributes } return nil } func (x *TripLeg) GetIncidents() []*TripLeg_Incident { if x != nil { return x.Incidents } return nil } func (x *TripLeg) GetAlgorithms() []string { if x != nil { return x.Algorithms } return nil } func (x *TripLeg) GetClosures() []*TripLeg_Closure { if x != nil { return x.Closures } return nil } type TripRoute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Legs []*TripLeg `protobuf:"bytes,1,rep,name=legs,proto3" json:"legs,omitempty"` } func (x *TripRoute) Reset() { *x = TripRoute{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripRoute) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripRoute) ProtoMessage() {} func (x *TripRoute) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripRoute.ProtoReflect.Descriptor instead. func (*TripRoute) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{1} } func (x *TripRoute) GetLegs() []*TripLeg { if x != nil { return x.Legs } return nil } type Trip struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Routes []*TripRoute `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` } func (x *Trip) Reset() { *x = Trip{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Trip) String() string { return protoimpl.X.MessageStringOf(x) } func (*Trip) ProtoMessage() {} func (x *Trip) ProtoReflect() protoreflect.Message { mi := &file_trip_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 Trip.ProtoReflect.Descriptor instead. func (*Trip) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{2} } func (x *Trip) GetRoutes() []*TripRoute { if x != nil { return x.Routes } return nil } type TripLeg_LaneConnectivity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FromWayId uint64 `protobuf:"varint,1,opt,name=from_way_id,json=fromWayId,proto3" json:"from_way_id,omitempty"` FromLanes string `protobuf:"bytes,2,opt,name=from_lanes,json=fromLanes,proto3" json:"from_lanes,omitempty"` ToLanes string `protobuf:"bytes,3,opt,name=to_lanes,json=toLanes,proto3" json:"to_lanes,omitempty"` } func (x *TripLeg_LaneConnectivity) Reset() { *x = TripLeg_LaneConnectivity{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_LaneConnectivity) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_LaneConnectivity) ProtoMessage() {} func (x *TripLeg_LaneConnectivity) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_LaneConnectivity.ProtoReflect.Descriptor instead. func (*TripLeg_LaneConnectivity) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 0} } func (x *TripLeg_LaneConnectivity) GetFromWayId() uint64 { if x != nil { return x.FromWayId } return 0 } func (x *TripLeg_LaneConnectivity) GetFromLanes() string { if x != nil { return x.FromLanes } return "" } func (x *TripLeg_LaneConnectivity) GetToLanes() string { if x != nil { return x.ToLanes } return "" } type TripLeg_TrafficSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SegmentId uint64 `protobuf:"varint,1,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"` BeginPercent float32 `protobuf:"fixed32,2,opt,name=begin_percent,json=beginPercent,proto3" json:"begin_percent,omitempty"` EndPercent float32 `protobuf:"fixed32,3,opt,name=end_percent,json=endPercent,proto3" json:"end_percent,omitempty"` StartsSegment bool `protobuf:"varint,4,opt,name=starts_segment,json=startsSegment,proto3" json:"starts_segment,omitempty"` EndsSegment bool `protobuf:"varint,5,opt,name=ends_segment,json=endsSegment,proto3" json:"ends_segment,omitempty"` } func (x *TripLeg_TrafficSegment) Reset() { *x = TripLeg_TrafficSegment{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_TrafficSegment) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_TrafficSegment) ProtoMessage() {} func (x *TripLeg_TrafficSegment) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_TrafficSegment.ProtoReflect.Descriptor instead. func (*TripLeg_TrafficSegment) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 1} } func (x *TripLeg_TrafficSegment) GetSegmentId() uint64 { if x != nil { return x.SegmentId } return 0 } func (x *TripLeg_TrafficSegment) GetBeginPercent() float32 { if x != nil { return x.BeginPercent } return 0 } func (x *TripLeg_TrafficSegment) GetEndPercent() float32 { if x != nil { return x.EndPercent } return 0 } func (x *TripLeg_TrafficSegment) GetStartsSegment() bool { if x != nil { return x.StartsSegment } return false } func (x *TripLeg_TrafficSegment) GetEndsSegment() bool { if x != nil { return x.EndsSegment } return false } type TripLeg_Restriction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` } func (x *TripLeg_Restriction) Reset() { *x = TripLeg_Restriction{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Restriction) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Restriction) ProtoMessage() {} func (x *TripLeg_Restriction) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Restriction.ProtoReflect.Descriptor instead. func (*TripLeg_Restriction) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 2} } func (x *TripLeg_Restriction) GetType() uint32 { if x != nil { return x.Type } return 0 } type TripLeg_Edge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name []*StreetName `protobuf:"bytes,1,rep,name=name,proto3" json:"name,omitempty"` // street names LengthKm float32 `protobuf:"fixed32,2,opt,name=length_km,json=lengthKm,proto3" json:"length_km,omitempty"` // km Speed float32 `protobuf:"fixed32,3,opt,name=speed,proto3" json:"speed,omitempty"` // km/h RoadClass RoadClass `protobuf:"varint,4,opt,name=road_class,json=roadClass,proto3,enum=valhalla.RoadClass" json:"road_class,omitempty"` BeginHeading uint32 `protobuf:"varint,5,opt,name=begin_heading,json=beginHeading,proto3" json:"begin_heading,omitempty"` // 0-359 EndHeading uint32 `protobuf:"varint,6,opt,name=end_heading,json=endHeading,proto3" json:"end_heading,omitempty"` // 0-359 BeginShapeIndex uint32 `protobuf:"varint,7,opt,name=begin_shape_index,json=beginShapeIndex,proto3" json:"begin_shape_index,omitempty"` // inclusive EndShapeIndex uint32 `protobuf:"varint,8,opt,name=end_shape_index,json=endShapeIndex,proto3" json:"end_shape_index,omitempty"` // inclusive Traversability TripLeg_Traversability `protobuf:"varint,9,opt,name=traversability,proto3,enum=valhalla.TripLeg_Traversability" json:"traversability,omitempty"` Use TripLeg_Use `protobuf:"varint,10,opt,name=use,proto3,enum=valhalla.TripLeg_Use" json:"use,omitempty"` Toll bool `protobuf:"varint,11,opt,name=toll,proto3" json:"toll,omitempty"` Unpaved bool `protobuf:"varint,12,opt,name=unpaved,proto3" json:"unpaved,omitempty"` Tunnel bool `protobuf:"varint,13,opt,name=tunnel,proto3" json:"tunnel,omitempty"` Bridge bool `protobuf:"varint,14,opt,name=bridge,proto3" json:"bridge,omitempty"` Roundabout bool `protobuf:"varint,15,opt,name=roundabout,proto3" json:"roundabout,omitempty"` InternalIntersection bool `protobuf:"varint,16,opt,name=internal_intersection,json=internalIntersection,proto3" json:"internal_intersection,omitempty"` DriveOnLeft bool `protobuf:"varint,17,opt,name=drive_on_left,json=driveOnLeft,proto3" json:"drive_on_left,omitempty"` // [default = false] Surface TripLeg_Surface `protobuf:"varint,18,opt,name=surface,proto3,enum=valhalla.TripLeg_Surface" json:"surface,omitempty"` Sign *TripSign `protobuf:"bytes,19,opt,name=sign,proto3" json:"sign,omitempty"` TravelMode TravelMode `protobuf:"varint,20,opt,name=travel_mode,json=travelMode,proto3,enum=valhalla.TravelMode" json:"travel_mode,omitempty"` VehicleType VehicleType `protobuf:"varint,21,opt,name=vehicle_type,json=vehicleType,proto3,enum=valhalla.VehicleType" json:"vehicle_type,omitempty"` PedestrianType PedestrianType `protobuf:"varint,22,opt,name=pedestrian_type,json=pedestrianType,proto3,enum=valhalla.PedestrianType" json:"pedestrian_type,omitempty"` BicycleType BicycleType `protobuf:"varint,23,opt,name=bicycle_type,json=bicycleType,proto3,enum=valhalla.BicycleType" json:"bicycle_type,omitempty"` TransitType TransitType `protobuf:"varint,24,opt,name=transit_type,json=transitType,proto3,enum=valhalla.TransitType" json:"transit_type,omitempty"` TransitRouteInfo *TransitRouteInfo `protobuf:"bytes,25,opt,name=transit_route_info,json=transitRouteInfo,proto3" json:"transit_route_info,omitempty"` Id uint64 `protobuf:"varint,26,opt,name=id,proto3" json:"id,omitempty"` WayId uint64 `protobuf:"varint,27,opt,name=way_id,json=wayId,proto3" json:"way_id,omitempty"` WeightedGrade float32 `protobuf:"fixed32,28,opt,name=weighted_grade,json=weightedGrade,proto3" json:"weighted_grade,omitempty"` MaxUpwardGrade int32 `protobuf:"varint,29,opt,name=max_upward_grade,json=maxUpwardGrade,proto3" json:"max_upward_grade,omitempty"` // set to 32768 if no elevation data MaxDownwardGrade int32 `protobuf:"varint,30,opt,name=max_downward_grade,json=maxDownwardGrade,proto3" json:"max_downward_grade,omitempty"` // set to 32768 if no elevation data LaneCount uint32 `protobuf:"varint,31,opt,name=lane_count,json=laneCount,proto3" json:"lane_count,omitempty"` CycleLane TripLeg_CycleLane `protobuf:"varint,32,opt,name=cycle_lane,json=cycleLane,proto3,enum=valhalla.TripLeg_CycleLane" json:"cycle_lane,omitempty"` BicycleNetwork bool `protobuf:"varint,33,opt,name=bicycle_network,json=bicycleNetwork,proto3" json:"bicycle_network,omitempty"` // true if the edge is part of a bike network Sidewalk TripLeg_Sidewalk `protobuf:"varint,34,opt,name=sidewalk,proto3,enum=valhalla.TripLeg_Sidewalk" json:"sidewalk,omitempty"` Density uint32 `protobuf:"varint,35,opt,name=density,proto3" json:"density,omitempty"` SpeedLimit uint32 `protobuf:"varint,36,opt,name=speed_limit,json=speedLimit,proto3" json:"speed_limit,omitempty"` // 0 if unavailable, 255 if unlimited TruckSpeed float32 `protobuf:"fixed32,37,opt,name=truck_speed,json=truckSpeed,proto3" json:"truck_speed,omitempty"` // km/h, 0 if unavailable TruckRoute bool `protobuf:"varint,38,opt,name=truck_route,json=truckRoute,proto3" json:"truck_route,omitempty"` LaneConnectivity []*TripLeg_LaneConnectivity `protobuf:"bytes,39,rep,name=lane_connectivity,json=laneConnectivity,proto3" json:"lane_connectivity,omitempty"` MeanElevation int32 `protobuf:"varint,40,opt,name=mean_elevation,json=meanElevation,proto3" json:"mean_elevation,omitempty"` // set to 32768 if no elevation data TrafficSegment []*TripLeg_TrafficSegment `protobuf:"bytes,41,rep,name=traffic_segment,json=trafficSegment,proto3" json:"traffic_segment,omitempty"` TurnLanes []*TurnLane `protobuf:"bytes,42,rep,name=turn_lanes,json=turnLanes,proto3" json:"turn_lanes,omitempty"` HasTimeRestrictions bool `protobuf:"varint,43,opt,name=has_time_restrictions,json=hasTimeRestrictions,proto3" json:"has_time_restrictions,omitempty"` DefaultSpeed float32 `protobuf:"fixed32,44,opt,name=default_speed,json=defaultSpeed,proto3" json:"default_speed,omitempty"` // km/h Restriction *TripLeg_Restriction `protobuf:"bytes,45,opt,name=restriction,proto3" json:"restriction,omitempty"` DestinationOnly bool `protobuf:"varint,46,opt,name=destination_only,json=destinationOnly,proto3" json:"destination_only,omitempty"` IsUrban bool `protobuf:"varint,47,opt,name=is_urban,json=isUrban,proto3" json:"is_urban,omitempty"` // uses edge density to decide if edge is in an urban area TaggedValue []*TaggedValue `protobuf:"bytes,48,rep,name=tagged_value,json=taggedValue,proto3" json:"tagged_value,omitempty"` // for the part of the edge that is used in the path we must know where // it starts and ends along the length of the edge as a percentage SourceAlongEdge float32 `protobuf:"fixed32,49,opt,name=source_along_edge,json=sourceAlongEdge,proto3" json:"source_along_edge,omitempty"` TargetAlongEdge float32 `protobuf:"fixed32,50,opt,name=target_along_edge,json=targetAlongEdge,proto3" json:"target_along_edge,omitempty"` SacScale TripLeg_SacScale `protobuf:"varint,51,opt,name=sac_scale,json=sacScale,proto3,enum=valhalla.TripLeg_SacScale" json:"sac_scale,omitempty"` Shoulder bool `protobuf:"varint,52,opt,name=shoulder,proto3" json:"shoulder,omitempty"` Indoor bool `protobuf:"varint,53,opt,name=indoor,proto3" json:"indoor,omitempty"` } func (x *TripLeg_Edge) Reset() { *x = TripLeg_Edge{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Edge) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Edge) ProtoMessage() {} func (x *TripLeg_Edge) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Edge.ProtoReflect.Descriptor instead. func (*TripLeg_Edge) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 3} } func (x *TripLeg_Edge) GetName() []*StreetName { if x != nil { return x.Name } return nil } func (x *TripLeg_Edge) GetLengthKm() float32 { if x != nil { return x.LengthKm } return 0 } func (x *TripLeg_Edge) GetSpeed() float32 { if x != nil { return x.Speed } return 0 } func (x *TripLeg_Edge) GetRoadClass() RoadClass { if x != nil { return x.RoadClass } return RoadClass_kMotorway } func (x *TripLeg_Edge) GetBeginHeading() uint32 { if x != nil { return x.BeginHeading } return 0 } func (x *TripLeg_Edge) GetEndHeading() uint32 { if x != nil { return x.EndHeading } return 0 } func (x *TripLeg_Edge) GetBeginShapeIndex() uint32 { if x != nil { return x.BeginShapeIndex } return 0 } func (x *TripLeg_Edge) GetEndShapeIndex() uint32 { if x != nil { return x.EndShapeIndex } return 0 } func (x *TripLeg_Edge) GetTraversability() TripLeg_Traversability { if x != nil { return x.Traversability } return TripLeg_kNone } func (x *TripLeg_Edge) GetUse() TripLeg_Use { if x != nil { return x.Use } return TripLeg_kRoadUse } func (x *TripLeg_Edge) GetToll() bool { if x != nil { return x.Toll } return false } func (x *TripLeg_Edge) GetUnpaved() bool { if x != nil { return x.Unpaved } return false } func (x *TripLeg_Edge) GetTunnel() bool { if x != nil { return x.Tunnel } return false } func (x *TripLeg_Edge) GetBridge() bool { if x != nil { return x.Bridge } return false } func (x *TripLeg_Edge) GetRoundabout() bool { if x != nil { return x.Roundabout } return false } func (x *TripLeg_Edge) GetInternalIntersection() bool { if x != nil { return x.InternalIntersection } return false } func (x *TripLeg_Edge) GetDriveOnLeft() bool { if x != nil { return x.DriveOnLeft } return false } func (x *TripLeg_Edge) GetSurface() TripLeg_Surface { if x != nil { return x.Surface } return TripLeg_kPavedSmooth } func (x *TripLeg_Edge) GetSign() *TripSign { if x != nil { return x.Sign } return nil } func (x *TripLeg_Edge) GetTravelMode() TravelMode { if x != nil { return x.TravelMode } return TravelMode_kDrive } func (x *TripLeg_Edge) GetVehicleType() VehicleType { if x != nil { return x.VehicleType } return VehicleType_kCar } func (x *TripLeg_Edge) GetPedestrianType() PedestrianType { if x != nil { return x.PedestrianType } return PedestrianType_kFoot } func (x *TripLeg_Edge) GetBicycleType() BicycleType { if x != nil { return x.BicycleType } return BicycleType_kRoad } func (x *TripLeg_Edge) GetTransitType() TransitType { if x != nil { return x.TransitType } return TransitType_kTram } func (x *TripLeg_Edge) GetTransitRouteInfo() *TransitRouteInfo { if x != nil { return x.TransitRouteInfo } return nil } func (x *TripLeg_Edge) GetId() uint64 { if x != nil { return x.Id } return 0 } func (x *TripLeg_Edge) GetWayId() uint64 { if x != nil { return x.WayId } return 0 } func (x *TripLeg_Edge) GetWeightedGrade() float32 { if x != nil { return x.WeightedGrade } return 0 } func (x *TripLeg_Edge) GetMaxUpwardGrade() int32 { if x != nil { return x.MaxUpwardGrade } return 0 } func (x *TripLeg_Edge) GetMaxDownwardGrade() int32 { if x != nil { return x.MaxDownwardGrade } return 0 } func (x *TripLeg_Edge) GetLaneCount() uint32 { if x != nil { return x.LaneCount } return 0 } func (x *TripLeg_Edge) GetCycleLane() TripLeg_CycleLane { if x != nil { return x.CycleLane } return TripLeg_kNoCycleLane } func (x *TripLeg_Edge) GetBicycleNetwork() bool { if x != nil { return x.BicycleNetwork } return false } func (x *TripLeg_Edge) GetSidewalk() TripLeg_Sidewalk { if x != nil { return x.Sidewalk } return TripLeg_kNoSidewalk } func (x *TripLeg_Edge) GetDensity() uint32 { if x != nil { return x.Density } return 0 } func (x *TripLeg_Edge) GetSpeedLimit() uint32 { if x != nil { return x.SpeedLimit } return 0 } func (x *TripLeg_Edge) GetTruckSpeed() float32 { if x != nil { return x.TruckSpeed } return 0 } func (x *TripLeg_Edge) GetTruckRoute() bool { if x != nil { return x.TruckRoute } return false } func (x *TripLeg_Edge) GetLaneConnectivity() []*TripLeg_LaneConnectivity { if x != nil { return x.LaneConnectivity } return nil } func (x *TripLeg_Edge) GetMeanElevation() int32 { if x != nil { return x.MeanElevation } return 0 } func (x *TripLeg_Edge) GetTrafficSegment() []*TripLeg_TrafficSegment { if x != nil { return x.TrafficSegment } return nil } func (x *TripLeg_Edge) GetTurnLanes() []*TurnLane { if x != nil { return x.TurnLanes } return nil } func (x *TripLeg_Edge) GetHasTimeRestrictions() bool { if x != nil { return x.HasTimeRestrictions } return false } func (x *TripLeg_Edge) GetDefaultSpeed() float32 { if x != nil { return x.DefaultSpeed } return 0 } func (x *TripLeg_Edge) GetRestriction() *TripLeg_Restriction { if x != nil { return x.Restriction } return nil } func (x *TripLeg_Edge) GetDestinationOnly() bool { if x != nil { return x.DestinationOnly } return false } func (x *TripLeg_Edge) GetIsUrban() bool { if x != nil { return x.IsUrban } return false } func (x *TripLeg_Edge) GetTaggedValue() []*TaggedValue { if x != nil { return x.TaggedValue } return nil } func (x *TripLeg_Edge) GetSourceAlongEdge() float32 { if x != nil { return x.SourceAlongEdge } return 0 } func (x *TripLeg_Edge) GetTargetAlongEdge() float32 { if x != nil { return x.TargetAlongEdge } return 0 } func (x *TripLeg_Edge) GetSacScale() TripLeg_SacScale { if x != nil { return x.SacScale } return TripLeg_kNoSacScale } func (x *TripLeg_Edge) GetShoulder() bool { if x != nil { return x.Shoulder } return false } func (x *TripLeg_Edge) GetIndoor() bool { if x != nil { return x.Indoor } return false } type TripLeg_IntersectingEdge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BeginHeading uint32 `protobuf:"varint,1,opt,name=begin_heading,json=beginHeading,proto3" json:"begin_heading,omitempty"` // 0-359 PrevNameConsistency bool `protobuf:"varint,2,opt,name=prev_name_consistency,json=prevNameConsistency,proto3" json:"prev_name_consistency,omitempty"` CurrNameConsistency bool `protobuf:"varint,3,opt,name=curr_name_consistency,json=currNameConsistency,proto3" json:"curr_name_consistency,omitempty"` Driveability TripLeg_Traversability `protobuf:"varint,4,opt,name=driveability,proto3,enum=valhalla.TripLeg_Traversability" json:"driveability,omitempty"` Cyclability TripLeg_Traversability `protobuf:"varint,5,opt,name=cyclability,proto3,enum=valhalla.TripLeg_Traversability" json:"cyclability,omitempty"` Walkability TripLeg_Traversability `protobuf:"varint,6,opt,name=walkability,proto3,enum=valhalla.TripLeg_Traversability" json:"walkability,omitempty"` Use TripLeg_Use `protobuf:"varint,7,opt,name=use,proto3,enum=valhalla.TripLeg_Use" json:"use,omitempty"` RoadClass RoadClass `protobuf:"varint,8,opt,name=road_class,json=roadClass,proto3,enum=valhalla.RoadClass" json:"road_class,omitempty"` LaneCount uint32 `protobuf:"varint,9,opt,name=lane_count,json=laneCount,proto3" json:"lane_count,omitempty"` Sign *TripSign `protobuf:"bytes,10,opt,name=sign,proto3" json:"sign,omitempty"` } func (x *TripLeg_IntersectingEdge) Reset() { *x = TripLeg_IntersectingEdge{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_IntersectingEdge) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_IntersectingEdge) ProtoMessage() {} func (x *TripLeg_IntersectingEdge) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_IntersectingEdge.ProtoReflect.Descriptor instead. func (*TripLeg_IntersectingEdge) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 4} } func (x *TripLeg_IntersectingEdge) GetBeginHeading() uint32 { if x != nil { return x.BeginHeading } return 0 } func (x *TripLeg_IntersectingEdge) GetPrevNameConsistency() bool { if x != nil { return x.PrevNameConsistency } return false } func (x *TripLeg_IntersectingEdge) GetCurrNameConsistency() bool { if x != nil { return x.CurrNameConsistency } return false } func (x *TripLeg_IntersectingEdge) GetDriveability() TripLeg_Traversability { if x != nil { return x.Driveability } return TripLeg_kNone } func (x *TripLeg_IntersectingEdge) GetCyclability() TripLeg_Traversability { if x != nil { return x.Cyclability } return TripLeg_kNone } func (x *TripLeg_IntersectingEdge) GetWalkability() TripLeg_Traversability { if x != nil { return x.Walkability } return TripLeg_kNone } func (x *TripLeg_IntersectingEdge) GetUse() TripLeg_Use { if x != nil { return x.Use } return TripLeg_kRoadUse } func (x *TripLeg_IntersectingEdge) GetRoadClass() RoadClass { if x != nil { return x.RoadClass } return RoadClass_kMotorway } func (x *TripLeg_IntersectingEdge) GetLaneCount() uint32 { if x != nil { return x.LaneCount } return 0 } func (x *TripLeg_IntersectingEdge) GetSign() *TripSign { if x != nil { return x.Sign } return nil } type TripLeg_Cost struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Seconds float64 `protobuf:"fixed64,1,opt,name=seconds,proto3" json:"seconds,omitempty"` Cost float64 `protobuf:"fixed64,2,opt,name=cost,proto3" json:"cost,omitempty"` } func (x *TripLeg_Cost) Reset() { *x = TripLeg_Cost{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Cost) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Cost) ProtoMessage() {} func (x *TripLeg_Cost) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Cost.ProtoReflect.Descriptor instead. func (*TripLeg_Cost) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 5} } func (x *TripLeg_Cost) GetSeconds() float64 { if x != nil { return x.Seconds } return 0 } func (x *TripLeg_Cost) GetCost() float64 { if x != nil { return x.Cost } return 0 } type TripLeg_PathCost struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ElapsedCost *TripLeg_Cost `protobuf:"bytes,1,opt,name=elapsed_cost,json=elapsedCost,proto3" json:"elapsed_cost,omitempty"` TransitionCost *TripLeg_Cost `protobuf:"bytes,2,opt,name=transition_cost,json=transitionCost,proto3" json:"transition_cost,omitempty"` } func (x *TripLeg_PathCost) Reset() { *x = TripLeg_PathCost{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_PathCost) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_PathCost) ProtoMessage() {} func (x *TripLeg_PathCost) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_PathCost.ProtoReflect.Descriptor instead. func (*TripLeg_PathCost) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 6} } func (x *TripLeg_PathCost) GetElapsedCost() *TripLeg_Cost { if x != nil { return x.ElapsedCost } return nil } func (x *TripLeg_PathCost) GetTransitionCost() *TripLeg_Cost { if x != nil { return x.TransitionCost } return nil } type TripLeg_Node struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Edge *TripLeg_Edge `protobuf:"bytes,1,opt,name=edge,proto3" json:"edge,omitempty"` IntersectingEdge []*TripLeg_IntersectingEdge `protobuf:"bytes,2,rep,name=intersecting_edge,json=intersectingEdge,proto3" json:"intersecting_edge,omitempty"` AdminIndex uint32 `protobuf:"varint,3,opt,name=admin_index,json=adminIndex,proto3" json:"admin_index,omitempty"` // index into the admin list, 0 if unknown Type TripLeg_Node_Type `protobuf:"varint,4,opt,name=type,proto3,enum=valhalla.TripLeg_Node_Type" json:"type,omitempty"` // The type of node Fork bool `protobuf:"varint,5,opt,name=fork,proto3" json:"fork,omitempty"` // Fork TransitPlatformInfo *TransitPlatformInfo `protobuf:"bytes,6,opt,name=transit_platform_info,json=transitPlatformInfo,proto3" json:"transit_platform_info,omitempty"` TransitStationInfo *TransitStationInfo `protobuf:"bytes,7,opt,name=transit_station_info,json=transitStationInfo,proto3" json:"transit_station_info,omitempty"` TransitEgressInfo *TransitEgressInfo `protobuf:"bytes,10,opt,name=transit_egress_info,json=transitEgressInfo,proto3" json:"transit_egress_info,omitempty"` TimeZone string `protobuf:"bytes,11,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` Cost *TripLeg_PathCost `protobuf:"bytes,12,opt,name=cost,proto3" json:"cost,omitempty"` // how much cost did it take at this node in the path Recosts []*TripLeg_PathCost `protobuf:"bytes,13,rep,name=recosts,proto3" json:"recosts,omitempty"` // how much cost did it take at this node in the path for recostings BssInfo *BikeShareStationInfo `protobuf:"bytes,14,opt,name=bss_info,json=bssInfo,proto3" json:"bss_info,omitempty"` } func (x *TripLeg_Node) Reset() { *x = TripLeg_Node{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Node) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Node) ProtoMessage() {} func (x *TripLeg_Node) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Node.ProtoReflect.Descriptor instead. func (*TripLeg_Node) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 7} } func (x *TripLeg_Node) GetEdge() *TripLeg_Edge { if x != nil { return x.Edge } return nil } func (x *TripLeg_Node) GetIntersectingEdge() []*TripLeg_IntersectingEdge { if x != nil { return x.IntersectingEdge } return nil } func (x *TripLeg_Node) GetAdminIndex() uint32 { if x != nil { return x.AdminIndex } return 0 } func (x *TripLeg_Node) GetType() TripLeg_Node_Type { if x != nil { return x.Type } return TripLeg_Node_kStreetIntersection } func (x *TripLeg_Node) GetFork() bool { if x != nil { return x.Fork } return false } func (x *TripLeg_Node) GetTransitPlatformInfo() *TransitPlatformInfo { if x != nil { return x.TransitPlatformInfo } return nil } func (x *TripLeg_Node) GetTransitStationInfo() *TransitStationInfo { if x != nil { return x.TransitStationInfo } return nil } func (x *TripLeg_Node) GetTransitEgressInfo() *TransitEgressInfo { if x != nil { return x.TransitEgressInfo } return nil } func (x *TripLeg_Node) GetTimeZone() string { if x != nil { return x.TimeZone } return "" } func (x *TripLeg_Node) GetCost() *TripLeg_PathCost { if x != nil { return x.Cost } return nil } func (x *TripLeg_Node) GetRecosts() []*TripLeg_PathCost { if x != nil { return x.Recosts } return nil } func (x *TripLeg_Node) GetBssInfo() *BikeShareStationInfo { if x != nil { return x.BssInfo } return nil } type TripLeg_Admin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CountryCode string `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` CountryText string `protobuf:"bytes,2,opt,name=country_text,json=countryText,proto3" json:"country_text,omitempty"` StateCode string `protobuf:"bytes,3,opt,name=state_code,json=stateCode,proto3" json:"state_code,omitempty"` StateText string `protobuf:"bytes,4,opt,name=state_text,json=stateText,proto3" json:"state_text,omitempty"` } func (x *TripLeg_Admin) Reset() { *x = TripLeg_Admin{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Admin) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Admin) ProtoMessage() {} func (x *TripLeg_Admin) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Admin.ProtoReflect.Descriptor instead. func (*TripLeg_Admin) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 8} } func (x *TripLeg_Admin) GetCountryCode() string { if x != nil { return x.CountryCode } return "" } func (x *TripLeg_Admin) GetCountryText() string { if x != nil { return x.CountryText } return "" } func (x *TripLeg_Admin) GetStateCode() string { if x != nil { return x.StateCode } return "" } func (x *TripLeg_Admin) GetStateText() string { if x != nil { return x.StateText } return "" } type TripLeg_ShapeAttributes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Time []uint32 `protobuf:"varint,1,rep,packed,name=time,proto3" json:"time,omitempty"` // milliseconds Length []uint32 `protobuf:"varint,2,rep,packed,name=length,proto3" json:"length,omitempty"` // decimeters Speed []uint32 `protobuf:"varint,3,rep,packed,name=speed,proto3" json:"speed,omitempty"` // decimeters per sec // 4 is reserved SpeedLimit []uint32 `protobuf:"varint,5,rep,packed,name=speed_limit,json=speedLimit,proto3" json:"speed_limit,omitempty"` // speed limit in kph } func (x *TripLeg_ShapeAttributes) Reset() { *x = TripLeg_ShapeAttributes{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_ShapeAttributes) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_ShapeAttributes) ProtoMessage() {} func (x *TripLeg_ShapeAttributes) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_ShapeAttributes.ProtoReflect.Descriptor instead. func (*TripLeg_ShapeAttributes) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 9} } func (x *TripLeg_ShapeAttributes) GetTime() []uint32 { if x != nil { return x.Time } return nil } func (x *TripLeg_ShapeAttributes) GetLength() []uint32 { if x != nil { return x.Length } return nil } func (x *TripLeg_ShapeAttributes) GetSpeed() []uint32 { if x != nil { return x.Speed } return nil } func (x *TripLeg_ShapeAttributes) GetSpeedLimit() []uint32 { if x != nil { return x.SpeedLimit } return nil } // we encapsulate the real incident object here so we can add information // about where it is along the route, ie once its referenced to the route type TripLeg_Incident struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Metadata *IncidentsTile_Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // Valhalla additions to incident metadata goes here BeginShapeIndex uint32 `protobuf:"varint,3,opt,name=begin_shape_index,json=beginShapeIndex,proto3" json:"begin_shape_index,omitempty"` EndShapeIndex uint32 `protobuf:"varint,4,opt,name=end_shape_index,json=endShapeIndex,proto3" json:"end_shape_index,omitempty"` } func (x *TripLeg_Incident) Reset() { *x = TripLeg_Incident{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Incident) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Incident) ProtoMessage() {} func (x *TripLeg_Incident) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Incident.ProtoReflect.Descriptor instead. func (*TripLeg_Incident) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 10} } func (x *TripLeg_Incident) GetMetadata() *IncidentsTile_Metadata { if x != nil { return x.Metadata } return nil } func (x *TripLeg_Incident) GetBeginShapeIndex() uint32 { if x != nil { return x.BeginShapeIndex } return 0 } func (x *TripLeg_Incident) GetEndShapeIndex() uint32 { if x != nil { return x.EndShapeIndex } return 0 } type TripLeg_Closure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to HasBeginShapeIndex: // *TripLeg_Closure_BeginShapeIndex HasBeginShapeIndex isTripLeg_Closure_HasBeginShapeIndex `protobuf_oneof:"has_begin_shape_index"` // Types that are assignable to HasEndShapeIndex: // *TripLeg_Closure_EndShapeIndex HasEndShapeIndex isTripLeg_Closure_HasEndShapeIndex `protobuf_oneof:"has_end_shape_index"` } func (x *TripLeg_Closure) Reset() { *x = TripLeg_Closure{} if protoimpl.UnsafeEnabled { mi := &file_trip_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TripLeg_Closure) String() string { return protoimpl.X.MessageStringOf(x) } func (*TripLeg_Closure) ProtoMessage() {} func (x *TripLeg_Closure) ProtoReflect() protoreflect.Message { mi := &file_trip_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 TripLeg_Closure.ProtoReflect.Descriptor instead. func (*TripLeg_Closure) Descriptor() ([]byte, []int) { return file_trip_proto_rawDescGZIP(), []int{0, 11} } func (m *TripLeg_Closure) GetHasBeginShapeIndex() isTripLeg_Closure_HasBeginShapeIndex { if m != nil { return m.HasBeginShapeIndex } return nil } func (x *TripLeg_Closure) GetBeginShapeIndex() uint32 { if x, ok := x.GetHasBeginShapeIndex().(*TripLeg_Closure_BeginShapeIndex); ok { return x.BeginShapeIndex } return 0 } func (m *TripLeg_Closure) GetHasEndShapeIndex() isTripLeg_Closure_HasEndShapeIndex { if m != nil { return m.HasEndShapeIndex } return nil } func (x *TripLeg_Closure) GetEndShapeIndex() uint32 { if x, ok := x.GetHasEndShapeIndex().(*TripLeg_Closure_EndShapeIndex); ok { return x.EndShapeIndex } return 0 } type isTripLeg_Closure_HasBeginShapeIndex interface { isTripLeg_Closure_HasBeginShapeIndex() } type TripLeg_Closure_BeginShapeIndex struct { BeginShapeIndex uint32 `protobuf:"varint,1,opt,name=begin_shape_index,json=beginShapeIndex,proto3,oneof"` } func (*TripLeg_Closure_BeginShapeIndex) isTripLeg_Closure_HasBeginShapeIndex() {} type isTripLeg_Closure_HasEndShapeIndex interface { isTripLeg_Closure_HasEndShapeIndex() } type TripLeg_Closure_EndShapeIndex struct { EndShapeIndex uint32 `protobuf:"varint,2,opt,name=end_shape_index,json=endShapeIndex,proto3,oneof"` } func (*TripLeg_Closure_EndShapeIndex) isTripLeg_Closure_HasEndShapeIndex() {} var File_trip_proto protoreflect.FileDescriptor var file_trip_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x33, 0x0a, 0x07, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x73, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x73, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x65, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x67, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x04, 0x62, 0x62, 0x6f, 0x78, 0x12, 0x4c, 0x0a, 0x10, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x6c, 0x0a, 0x10, 0x4c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x57, 0x61, 0x79, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x1a, 0xbf, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x21, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xfe, 0x11, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6b, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4b, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x09, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x48, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x75, 0x73, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x55, 0x73, 0x65, 0x52, 0x03, 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x6f, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x07, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x35, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x77, 0x61, 0x72, 0x64, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x44, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x52, 0x09, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x52, 0x08, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x4c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x10, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x61, 0x6e, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x4c, 0x61, 0x6e, 0x65, 0x52, 0x09, 0x74, 0x75, 0x72, 0x6e, 0x4c, 0x61, 0x6e, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x55, 0x72, 0x62, 0x61, 0x6e, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x45, 0x64, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x45, 0x64, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x61, 0x63, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x53, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x52, 0x08, 0x73, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x64, 0x6f, 0x6f, 0x72, 0x1a, 0x91, 0x04, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x64, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x44, 0x0a, 0x0c, 0x64, 0x72, 0x69, 0x76, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x64, 0x72, 0x69, 0x76, 0x65, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x63, 0x79, 0x63, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x79, 0x63, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x77, 0x61, 0x6c, 0x6b, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x77, 0x61, 0x6c, 0x6b, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x03, 0x75, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x55, 0x73, 0x65, 0x52, 0x03, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x09, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x1a, 0x34, 0x0a, 0x04, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x1a, 0x86, 0x01, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x0b, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x73, 0x74, 0x1a, 0xb2, 0x07, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x65, 0x64, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x52, 0x04, 0x65, 0x64, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x64, 0x67, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x64, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x12, 0x51, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4e, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x62, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x42, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x98, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x47, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x54, 0x6f, 0x6c, 0x6c, 0x42, 0x6f, 0x6f, 0x74, 0x68, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x42, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x77, 0x61, 0x79, 0x4a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x42, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x54, 0x6f, 0x6c, 0x6c, 0x47, 0x61, 0x6e, 0x74, 0x72, 0x79, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x53, 0x75, 0x6d, 0x70, 0x42, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x6b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x0e, 0x1a, 0x8b, 0x01, 0x0a, 0x05, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x1a, 0x84, 0x01, 0x0a, 0x0f, 0x53, 0x68, 0x61, 0x70, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x9c, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x49, 0x6e, 0x63, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x54, 0x69, 0x6c, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x91, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x43, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x42, 0x6f, 0x74, 0x68, 0x10, 0x03, 0x22, 0x8f, 0x05, 0x0a, 0x03, 0x55, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x52, 0x6f, 0x61, 0x64, 0x55, 0x73, 0x65, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x52, 0x61, 0x6d, 0x70, 0x55, 0x73, 0x65, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x54, 0x75, 0x72, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x41, 0x6c, 0x6c, 0x65, 0x79, 0x55, 0x73, 0x65, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x50, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x69, 0x73, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x54, 0x68, 0x72, 0x75, 0x55, 0x73, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x43, 0x75, 0x6c, 0x64, 0x65, 0x73, 0x61, 0x63, 0x55, 0x73, 0x65, 0x10, 0x09, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x55, 0x73, 0x65, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x61, 0x64, 0x55, 0x73, 0x65, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x14, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x42, 0x69, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x10, 0x15, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x53, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x55, 0x73, 0x65, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x46, 0x6f, 0x6f, 0x74, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x53, 0x74, 0x65, 0x70, 0x73, 0x55, 0x73, 0x65, 0x10, 0x1a, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x55, 0x73, 0x65, 0x10, 0x1b, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x1c, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x42, 0x72, 0x69, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x79, 0x55, 0x73, 0x65, 0x10, 0x1d, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x10, 0x20, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x10, 0x21, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x45, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x52, 0x65, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x10, 0x1e, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x72, 0x65, 0x61, 0x55, 0x73, 0x65, 0x10, 0x1f, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x55, 0x73, 0x65, 0x10, 0x28, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x55, 0x73, 0x65, 0x10, 0x29, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x52, 0x61, 0x69, 0x6c, 0x46, 0x65, 0x72, 0x72, 0x79, 0x55, 0x73, 0x65, 0x10, 0x2a, 0x12, 0x14, 0x0a, 0x10, 0x6b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x2b, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x52, 0x61, 0x69, 0x6c, 0x55, 0x73, 0x65, 0x10, 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x42, 0x75, 0x73, 0x55, 0x73, 0x65, 0x10, 0x33, 0x12, 0x18, 0x0a, 0x14, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x34, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x35, 0x12, 0x19, 0x0a, 0x15, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x10, 0x36, 0x22, 0x7c, 0x0a, 0x07, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x50, 0x61, 0x76, 0x65, 0x64, 0x53, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x50, 0x61, 0x76, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x50, 0x61, 0x76, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x44, 0x69, 0x72, 0x74, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x47, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x50, 0x61, 0x74, 0x68, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x49, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x07, 0x22, 0x4a, 0x0a, 0x09, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x4e, 0x6f, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa6, 0x01, 0x0a, 0x08, 0x53, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x4e, 0x6f, 0x53, 0x61, 0x63, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x6b, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x41, 0x6c, 0x70, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x70, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x6b, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x41, 0x6c, 0x70, 0x69, 0x6e, 0x65, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x22, 0x42, 0x0a, 0x08, 0x53, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x4e, 0x6f, 0x53, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x42, 0x6f, 0x74, 0x68, 0x53, 0x69, 0x64, 0x65, 0x73, 0x10, 0x03, 0x22, 0x32, 0x0a, 0x09, 0x54, 0x72, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x65, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x4c, 0x65, 0x67, 0x52, 0x04, 0x6c, 0x65, 0x67, 0x73, 0x22, 0x33, 0x0a, 0x04, 0x54, 0x72, 0x69, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x72, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x50, 0x00, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_trip_proto_rawDescOnce sync.Once file_trip_proto_rawDescData = file_trip_proto_rawDesc ) func file_trip_proto_rawDescGZIP() []byte { file_trip_proto_rawDescOnce.Do(func() { file_trip_proto_rawDescData = protoimpl.X.CompressGZIP(file_trip_proto_rawDescData) }) return file_trip_proto_rawDescData } var file_trip_proto_enumTypes = make([]protoimpl.EnumInfo, 7) var file_trip_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_trip_proto_goTypes = []interface{}{ (TripLeg_Traversability)(0), // 0: valhalla.TripLeg.Traversability (TripLeg_Use)(0), // 1: valhalla.TripLeg.Use (TripLeg_Surface)(0), // 2: valhalla.TripLeg.Surface (TripLeg_CycleLane)(0), // 3: valhalla.TripLeg.CycleLane (TripLeg_SacScale)(0), // 4: valhalla.TripLeg.SacScale (TripLeg_Sidewalk)(0), // 5: valhalla.TripLeg.Sidewalk (TripLeg_Node_Type)(0), // 6: valhalla.TripLeg.Node.Type (*TripLeg)(nil), // 7: valhalla.TripLeg (*TripRoute)(nil), // 8: valhalla.TripRoute (*Trip)(nil), // 9: valhalla.Trip (*TripLeg_LaneConnectivity)(nil), // 10: valhalla.TripLeg.LaneConnectivity (*TripLeg_TrafficSegment)(nil), // 11: valhalla.TripLeg.TrafficSegment (*TripLeg_Restriction)(nil), // 12: valhalla.TripLeg.Restriction (*TripLeg_Edge)(nil), // 13: valhalla.TripLeg.Edge (*TripLeg_IntersectingEdge)(nil), // 14: valhalla.TripLeg.IntersectingEdge (*TripLeg_Cost)(nil), // 15: valhalla.TripLeg.Cost (*TripLeg_PathCost)(nil), // 16: valhalla.TripLeg.PathCost (*TripLeg_Node)(nil), // 17: valhalla.TripLeg.Node (*TripLeg_Admin)(nil), // 18: valhalla.TripLeg.Admin (*TripLeg_ShapeAttributes)(nil), // 19: valhalla.TripLeg.ShapeAttributes (*TripLeg_Incident)(nil), // 20: valhalla.TripLeg.Incident (*TripLeg_Closure)(nil), // 21: valhalla.TripLeg.Closure (*Location)(nil), // 22: valhalla.Location (*BoundingBox)(nil), // 23: valhalla.BoundingBox (*StreetName)(nil), // 24: valhalla.StreetName (RoadClass)(0), // 25: valhalla.RoadClass (*TripSign)(nil), // 26: valhalla.TripSign (TravelMode)(0), // 27: valhalla.TravelMode (VehicleType)(0), // 28: valhalla.VehicleType (PedestrianType)(0), // 29: valhalla.PedestrianType (BicycleType)(0), // 30: valhalla.BicycleType (TransitType)(0), // 31: valhalla.TransitType (*TransitRouteInfo)(nil), // 32: valhalla.TransitRouteInfo (*TurnLane)(nil), // 33: valhalla.TurnLane (*TaggedValue)(nil), // 34: valhalla.TaggedValue (*TransitPlatformInfo)(nil), // 35: valhalla.TransitPlatformInfo (*TransitStationInfo)(nil), // 36: valhalla.TransitStationInfo (*TransitEgressInfo)(nil), // 37: valhalla.TransitEgressInfo (*BikeShareStationInfo)(nil), // 38: valhalla.BikeShareStationInfo (*IncidentsTile_Metadata)(nil), // 39: valhalla.IncidentsTile.Metadata } var file_trip_proto_depIdxs = []int32{ 22, // 0: valhalla.TripLeg.location:type_name -> valhalla.Location 17, // 1: valhalla.TripLeg.node:type_name -> valhalla.TripLeg.Node 18, // 2: valhalla.TripLeg.admin:type_name -> valhalla.TripLeg.Admin 23, // 3: valhalla.TripLeg.bbox:type_name -> valhalla.BoundingBox 19, // 4: valhalla.TripLeg.shape_attributes:type_name -> valhalla.TripLeg.ShapeAttributes 20, // 5: valhalla.TripLeg.incidents:type_name -> valhalla.TripLeg.Incident 21, // 6: valhalla.TripLeg.closures:type_name -> valhalla.TripLeg.Closure 7, // 7: valhalla.TripRoute.legs:type_name -> valhalla.TripLeg 8, // 8: valhalla.Trip.routes:type_name -> valhalla.TripRoute 24, // 9: valhalla.TripLeg.Edge.name:type_name -> valhalla.StreetName 25, // 10: valhalla.TripLeg.Edge.road_class:type_name -> valhalla.RoadClass 0, // 11: valhalla.TripLeg.Edge.traversability:type_name -> valhalla.TripLeg.Traversability 1, // 12: valhalla.TripLeg.Edge.use:type_name -> valhalla.TripLeg.Use 2, // 13: valhalla.TripLeg.Edge.surface:type_name -> valhalla.TripLeg.Surface 26, // 14: valhalla.TripLeg.Edge.sign:type_name -> valhalla.TripSign 27, // 15: valhalla.TripLeg.Edge.travel_mode:type_name -> valhalla.TravelMode 28, // 16: valhalla.TripLeg.Edge.vehicle_type:type_name -> valhalla.VehicleType 29, // 17: valhalla.TripLeg.Edge.pedestrian_type:type_name -> valhalla.PedestrianType 30, // 18: valhalla.TripLeg.Edge.bicycle_type:type_name -> valhalla.BicycleType 31, // 19: valhalla.TripLeg.Edge.transit_type:type_name -> valhalla.TransitType 32, // 20: valhalla.TripLeg.Edge.transit_route_info:type_name -> valhalla.TransitRouteInfo 3, // 21: valhalla.TripLeg.Edge.cycle_lane:type_name -> valhalla.TripLeg.CycleLane 5, // 22: valhalla.TripLeg.Edge.sidewalk:type_name -> valhalla.TripLeg.Sidewalk 10, // 23: valhalla.TripLeg.Edge.lane_connectivity:type_name -> valhalla.TripLeg.LaneConnectivity 11, // 24: valhalla.TripLeg.Edge.traffic_segment:type_name -> valhalla.TripLeg.TrafficSegment 33, // 25: valhalla.TripLeg.Edge.turn_lanes:type_name -> valhalla.TurnLane 12, // 26: valhalla.TripLeg.Edge.restriction:type_name -> valhalla.TripLeg.Restriction 34, // 27: valhalla.TripLeg.Edge.tagged_value:type_name -> valhalla.TaggedValue 4, // 28: valhalla.TripLeg.Edge.sac_scale:type_name -> valhalla.TripLeg.SacScale 0, // 29: valhalla.TripLeg.IntersectingEdge.driveability:type_name -> valhalla.TripLeg.Traversability 0, // 30: valhalla.TripLeg.IntersectingEdge.cyclability:type_name -> valhalla.TripLeg.Traversability 0, // 31: valhalla.TripLeg.IntersectingEdge.walkability:type_name -> valhalla.TripLeg.Traversability 1, // 32: valhalla.TripLeg.IntersectingEdge.use:type_name -> valhalla.TripLeg.Use 25, // 33: valhalla.TripLeg.IntersectingEdge.road_class:type_name -> valhalla.RoadClass 26, // 34: valhalla.TripLeg.IntersectingEdge.sign:type_name -> valhalla.TripSign 15, // 35: valhalla.TripLeg.PathCost.elapsed_cost:type_name -> valhalla.TripLeg.Cost 15, // 36: valhalla.TripLeg.PathCost.transition_cost:type_name -> valhalla.TripLeg.Cost 13, // 37: valhalla.TripLeg.Node.edge:type_name -> valhalla.TripLeg.Edge 14, // 38: valhalla.TripLeg.Node.intersecting_edge:type_name -> valhalla.TripLeg.IntersectingEdge 6, // 39: valhalla.TripLeg.Node.type:type_name -> valhalla.TripLeg.Node.Type 35, // 40: valhalla.TripLeg.Node.transit_platform_info:type_name -> valhalla.TransitPlatformInfo 36, // 41: valhalla.TripLeg.Node.transit_station_info:type_name -> valhalla.TransitStationInfo 37, // 42: valhalla.TripLeg.Node.transit_egress_info:type_name -> valhalla.TransitEgressInfo 16, // 43: valhalla.TripLeg.Node.cost:type_name -> valhalla.TripLeg.PathCost 16, // 44: valhalla.TripLeg.Node.recosts:type_name -> valhalla.TripLeg.PathCost 38, // 45: valhalla.TripLeg.Node.bss_info:type_name -> valhalla.BikeShareStationInfo 39, // 46: valhalla.TripLeg.Incident.metadata:type_name -> valhalla.IncidentsTile.Metadata 47, // [47:47] is the sub-list for method output_type 47, // [47:47] is the sub-list for method input_type 47, // [47:47] is the sub-list for extension type_name 47, // [47:47] is the sub-list for extension extendee 0, // [0:47] is the sub-list for field type_name } func init() { file_trip_proto_init() } func file_trip_proto_init() { if File_trip_proto != nil { return } file_common_proto_init() file_sign_proto_init() file_incidents_proto_init() if !protoimpl.UnsafeEnabled { file_trip_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripRoute); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Trip); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_LaneConnectivity); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_TrafficSegment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Restriction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Edge); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_IntersectingEdge); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Cost); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_PathCost); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Node); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Admin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_ShapeAttributes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Incident); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_trip_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TripLeg_Closure); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_trip_proto_msgTypes[14].OneofWrappers = []interface{}{ (*TripLeg_Closure_BeginShapeIndex)(nil), (*TripLeg_Closure_EndShapeIndex)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_trip_proto_rawDesc, NumEnums: 7, NumMessages: 15, NumExtensions: 0, NumServices: 0, }, GoTypes: file_trip_proto_goTypes, DependencyIndexes: file_trip_proto_depIdxs, EnumInfos: file_trip_proto_enumTypes, MessageInfos: file_trip_proto_msgTypes, }.Build() File_trip_proto = out.File file_trip_proto_rawDesc = nil file_trip_proto_goTypes = nil file_trip_proto_depIdxs = nil }