// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 // protoc v3.19.4 // source: common.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 RoadClass int32 const ( RoadClass_kMotorway RoadClass = 0 RoadClass_kTrunk RoadClass = 1 RoadClass_kPrimary RoadClass = 2 RoadClass_kSecondary RoadClass = 3 RoadClass_kTertiary RoadClass = 4 RoadClass_kUnclassified RoadClass = 5 RoadClass_kResidential RoadClass = 6 RoadClass_kServiceOther RoadClass = 7 ) // Enum value maps for RoadClass. var ( RoadClass_name = map[int32]string{ 0: "kMotorway", 1: "kTrunk", 2: "kPrimary", 3: "kSecondary", 4: "kTertiary", 5: "kUnclassified", 6: "kResidential", 7: "kServiceOther", } RoadClass_value = map[string]int32{ "kMotorway": 0, "kTrunk": 1, "kPrimary": 2, "kSecondary": 3, "kTertiary": 4, "kUnclassified": 5, "kResidential": 6, "kServiceOther": 7, } ) func (x RoadClass) Enum() *RoadClass { p := new(RoadClass) *p = x return p } func (x RoadClass) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RoadClass) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[0].Descriptor() } func (RoadClass) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[0] } func (x RoadClass) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RoadClass.Descriptor instead. func (RoadClass) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{0} } type TravelMode int32 const ( TravelMode_kDrive TravelMode = 0 TravelMode_kPedestrian TravelMode = 1 TravelMode_kBicycle TravelMode = 2 TravelMode_kTransit TravelMode = 3 ) // Enum value maps for TravelMode. var ( TravelMode_name = map[int32]string{ 0: "kDrive", 1: "kPedestrian", 2: "kBicycle", 3: "kTransit", } TravelMode_value = map[string]int32{ "kDrive": 0, "kPedestrian": 1, "kBicycle": 2, "kTransit": 3, } ) func (x TravelMode) Enum() *TravelMode { p := new(TravelMode) *p = x return p } func (x TravelMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TravelMode) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[1].Descriptor() } func (TravelMode) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[1] } func (x TravelMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TravelMode.Descriptor instead. func (TravelMode) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{1} } // TODO: review and update as needed type VehicleType int32 const ( VehicleType_kCar VehicleType = 0 VehicleType_kMotorcycle VehicleType = 1 VehicleType_kAutoBus VehicleType = 2 VehicleType_kTractorTrailer VehicleType = 3 VehicleType_kMotorScooter VehicleType = 4 ) // Enum value maps for VehicleType. var ( VehicleType_name = map[int32]string{ 0: "kCar", 1: "kMotorcycle", 2: "kAutoBus", 3: "kTractorTrailer", 4: "kMotorScooter", } VehicleType_value = map[string]int32{ "kCar": 0, "kMotorcycle": 1, "kAutoBus": 2, "kTractorTrailer": 3, "kMotorScooter": 4, } ) func (x VehicleType) Enum() *VehicleType { p := new(VehicleType) *p = x return p } func (x VehicleType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (VehicleType) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[2].Descriptor() } func (VehicleType) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[2] } func (x VehicleType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use VehicleType.Descriptor instead. func (VehicleType) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{2} } // TODO: review and update as needed type PedestrianType int32 const ( PedestrianType_kFoot PedestrianType = 0 PedestrianType_kWheelchair PedestrianType = 1 PedestrianType_kSegway PedestrianType = 2 ) // Enum value maps for PedestrianType. var ( PedestrianType_name = map[int32]string{ 0: "kFoot", 1: "kWheelchair", 2: "kSegway", } PedestrianType_value = map[string]int32{ "kFoot": 0, "kWheelchair": 1, "kSegway": 2, } ) func (x PedestrianType) Enum() *PedestrianType { p := new(PedestrianType) *p = x return p } func (x PedestrianType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PedestrianType) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[3].Descriptor() } func (PedestrianType) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[3] } func (x PedestrianType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PedestrianType.Descriptor instead. func (PedestrianType) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{3} } type BicycleType int32 const ( BicycleType_kRoad BicycleType = 0 BicycleType_kCross BicycleType = 1 BicycleType_kHybrid BicycleType = 2 BicycleType_kMountain BicycleType = 3 ) // Enum value maps for BicycleType. var ( BicycleType_name = map[int32]string{ 0: "kRoad", 1: "kCross", 2: "kHybrid", 3: "kMountain", } BicycleType_value = map[string]int32{ "kRoad": 0, "kCross": 1, "kHybrid": 2, "kMountain": 3, } ) func (x BicycleType) Enum() *BicycleType { p := new(BicycleType) *p = x return p } func (x BicycleType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BicycleType) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[4].Descriptor() } func (BicycleType) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[4] } func (x BicycleType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BicycleType.Descriptor instead. func (BicycleType) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{4} } type TransitType int32 const ( TransitType_kTram TransitType = 0 TransitType_kMetro TransitType = 1 TransitType_kRail TransitType = 2 TransitType_kBus TransitType = 3 TransitType_kFerry TransitType = 4 TransitType_kCableCar TransitType = 5 TransitType_kGondola TransitType = 6 TransitType_kFunicular TransitType = 7 ) // Enum value maps for TransitType. var ( TransitType_name = map[int32]string{ 0: "kTram", 1: "kMetro", 2: "kRail", 3: "kBus", 4: "kFerry", 5: "kCableCar", 6: "kGondola", 7: "kFunicular", } TransitType_value = map[string]int32{ "kTram": 0, "kMetro": 1, "kRail": 2, "kBus": 3, "kFerry": 4, "kCableCar": 5, "kGondola": 6, "kFunicular": 7, } ) func (x TransitType) Enum() *TransitType { p := new(TransitType) *p = x return p } func (x TransitType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TransitType) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[5].Descriptor() } func (TransitType) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[5] } func (x TransitType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TransitType.Descriptor instead. func (TransitType) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{5} } type Location_Type int32 const ( Location_kBreak Location_Type = 0 Location_kThrough Location_Type = 1 Location_kVia Location_Type = 2 Location_kBreakThrough Location_Type = 3 ) // Enum value maps for Location_Type. var ( Location_Type_name = map[int32]string{ 0: "kBreak", 1: "kThrough", 2: "kVia", 3: "kBreakThrough", } Location_Type_value = map[string]int32{ "kBreak": 0, "kThrough": 1, "kVia": 2, "kBreakThrough": 3, } ) func (x Location_Type) Enum() *Location_Type { p := new(Location_Type) *p = x return p } func (x Location_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Location_Type) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[6].Descriptor() } func (Location_Type) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[6] } func (x Location_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Location_Type.Descriptor instead. func (Location_Type) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{5, 0} } type Location_PreferredSide int32 const ( Location_either Location_PreferredSide = 0 Location_same Location_PreferredSide = 1 Location_opposite Location_PreferredSide = 2 ) // Enum value maps for Location_PreferredSide. var ( Location_PreferredSide_name = map[int32]string{ 0: "either", 1: "same", 2: "opposite", } Location_PreferredSide_value = map[string]int32{ "either": 0, "same": 1, "opposite": 2, } ) func (x Location_PreferredSide) Enum() *Location_PreferredSide { p := new(Location_PreferredSide) *p = x return p } func (x Location_PreferredSide) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Location_PreferredSide) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[7].Descriptor() } func (Location_PreferredSide) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[7] } func (x Location_PreferredSide) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Location_PreferredSide.Descriptor instead. func (Location_PreferredSide) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{5, 1} } type Location_SideOfStreet int32 const ( Location_kNone Location_SideOfStreet = 0 Location_kLeft Location_SideOfStreet = 1 Location_kRight Location_SideOfStreet = 2 ) // Enum value maps for Location_SideOfStreet. var ( Location_SideOfStreet_name = map[int32]string{ 0: "kNone", 1: "kLeft", 2: "kRight", } Location_SideOfStreet_value = map[string]int32{ "kNone": 0, "kLeft": 1, "kRight": 2, } ) func (x Location_SideOfStreet) Enum() *Location_SideOfStreet { p := new(Location_SideOfStreet) *p = x return p } func (x Location_SideOfStreet) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Location_SideOfStreet) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[8].Descriptor() } func (Location_SideOfStreet) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[8] } func (x Location_SideOfStreet) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Location_SideOfStreet.Descriptor instead. func (Location_SideOfStreet) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{5, 2} } type TransitPlatformInfo_Type int32 const ( TransitPlatformInfo_kStop TransitPlatformInfo_Type = 0 TransitPlatformInfo_kStation TransitPlatformInfo_Type = 1 ) // Enum value maps for TransitPlatformInfo_Type. var ( TransitPlatformInfo_Type_name = map[int32]string{ 0: "kStop", 1: "kStation", } TransitPlatformInfo_Type_value = map[string]int32{ "kStop": 0, "kStation": 1, } ) func (x TransitPlatformInfo_Type) Enum() *TransitPlatformInfo_Type { p := new(TransitPlatformInfo_Type) *p = x return p } func (x TransitPlatformInfo_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TransitPlatformInfo_Type) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[9].Descriptor() } func (TransitPlatformInfo_Type) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[9] } func (x TransitPlatformInfo_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TransitPlatformInfo_Type.Descriptor instead. func (TransitPlatformInfo_Type) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{9, 0} } type Pronunciation_Alphabet int32 const ( Pronunciation_kIpa Pronunciation_Alphabet = 0 Pronunciation_kXKatakana Pronunciation_Alphabet = 1 Pronunciation_kXJeita Pronunciation_Alphabet = 2 Pronunciation_kNtSampa Pronunciation_Alphabet = 3 ) // Enum value maps for Pronunciation_Alphabet. var ( Pronunciation_Alphabet_name = map[int32]string{ 0: "kIpa", 1: "kXKatakana", 2: "kXJeita", 3: "kNtSampa", } Pronunciation_Alphabet_value = map[string]int32{ "kIpa": 0, "kXKatakana": 1, "kXJeita": 2, "kNtSampa": 3, } ) func (x Pronunciation_Alphabet) Enum() *Pronunciation_Alphabet { p := new(Pronunciation_Alphabet) *p = x return p } func (x Pronunciation_Alphabet) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Pronunciation_Alphabet) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[10].Descriptor() } func (Pronunciation_Alphabet) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[10] } func (x Pronunciation_Alphabet) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Pronunciation_Alphabet.Descriptor instead. func (Pronunciation_Alphabet) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{11, 0} } type TurnLane_State int32 const ( TurnLane_kInvalid TurnLane_State = 0 TurnLane_kValid TurnLane_State = 1 TurnLane_kActive TurnLane_State = 2 ) // Enum value maps for TurnLane_State. var ( TurnLane_State_name = map[int32]string{ 0: "kInvalid", 1: "kValid", 2: "kActive", } TurnLane_State_value = map[string]int32{ "kInvalid": 0, "kValid": 1, "kActive": 2, } ) func (x TurnLane_State) Enum() *TurnLane_State { p := new(TurnLane_State) *p = x return p } func (x TurnLane_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TurnLane_State) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[11].Descriptor() } func (TurnLane_State) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[11] } func (x TurnLane_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TurnLane_State.Descriptor instead. func (TurnLane_State) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{13, 0} } // dont renumber these they match the c++ definitions type TaggedValue_Type int32 const ( TaggedValue_kNone TaggedValue_Type = 0 TaggedValue_kLayer TaggedValue_Type = 1 TaggedValue_kPronunciation TaggedValue_Type = 2 TaggedValue_kBssInfo TaggedValue_Type = 3 TaggedValue_kLevel TaggedValue_Type = 4 TaggedValue_kLevelRef TaggedValue_Type = 5 TaggedValue_kTunnel TaggedValue_Type = 49 TaggedValue_kBridge TaggedValue_Type = 50 ) // Enum value maps for TaggedValue_Type. var ( TaggedValue_Type_name = map[int32]string{ 0: "kNone", 1: "kLayer", 2: "kPronunciation", 3: "kBssInfo", 4: "kLevel", 5: "kLevelRef", 49: "kTunnel", 50: "kBridge", } TaggedValue_Type_value = map[string]int32{ "kNone": 0, "kLayer": 1, "kPronunciation": 2, "kBssInfo": 3, "kLevel": 4, "kLevelRef": 5, "kTunnel": 49, "kBridge": 50, } ) func (x TaggedValue_Type) Enum() *TaggedValue_Type { p := new(TaggedValue_Type) *p = x return p } func (x TaggedValue_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (TaggedValue_Type) Descriptor() protoreflect.EnumDescriptor { return file_common_proto_enumTypes[12].Descriptor() } func (TaggedValue_Type) Type() protoreflect.EnumType { return &file_common_proto_enumTypes[12] } func (x TaggedValue_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use TaggedValue_Type.Descriptor instead. func (TaggedValue_Type) EnumDescriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{14, 0} } type LatLng struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to HasLat: // *LatLng_Lat HasLat isLatLng_HasLat `protobuf_oneof:"has_lat"` // Types that are assignable to HasLng: // *LatLng_Lng HasLng isLatLng_HasLng `protobuf_oneof:"has_lng"` } func (x *LatLng) Reset() { *x = LatLng{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LatLng) String() string { return protoimpl.X.MessageStringOf(x) } func (*LatLng) ProtoMessage() {} func (x *LatLng) ProtoReflect() protoreflect.Message { mi := &file_common_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 LatLng.ProtoReflect.Descriptor instead. func (*LatLng) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{0} } func (m *LatLng) GetHasLat() isLatLng_HasLat { if m != nil { return m.HasLat } return nil } func (x *LatLng) GetLat() float64 { if x, ok := x.GetHasLat().(*LatLng_Lat); ok { return x.Lat } return 0 } func (m *LatLng) GetHasLng() isLatLng_HasLng { if m != nil { return m.HasLng } return nil } func (x *LatLng) GetLng() float64 { if x, ok := x.GetHasLng().(*LatLng_Lng); ok { return x.Lng } return 0 } type isLatLng_HasLat interface { isLatLng_HasLat() } type LatLng_Lat struct { Lat float64 `protobuf:"fixed64,1,opt,name=lat,proto3,oneof"` } func (*LatLng_Lat) isLatLng_HasLat() {} type isLatLng_HasLng interface { isLatLng_HasLng() } type LatLng_Lng struct { Lng float64 `protobuf:"fixed64,2,opt,name=lng,proto3,oneof"` } func (*LatLng_Lng) isLatLng_HasLng() {} type BoundingBox struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MinLl *LatLng `protobuf:"bytes,1,opt,name=min_ll,json=minLl,proto3" json:"min_ll,omitempty"` MaxLl *LatLng `protobuf:"bytes,2,opt,name=max_ll,json=maxLl,proto3" json:"max_ll,omitempty"` } func (x *BoundingBox) Reset() { *x = BoundingBox{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BoundingBox) String() string { return protoimpl.X.MessageStringOf(x) } func (*BoundingBox) ProtoMessage() {} func (x *BoundingBox) ProtoReflect() protoreflect.Message { mi := &file_common_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 BoundingBox.ProtoReflect.Descriptor instead. func (*BoundingBox) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{1} } func (x *BoundingBox) GetMinLl() *LatLng { if x != nil { return x.MinLl } return nil } func (x *BoundingBox) GetMaxLl() *LatLng { if x != nil { return x.MaxLl } return nil } type SearchFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // frc // // Types that are assignable to HasMinRoadClass: // *SearchFilter_MinRoadClass HasMinRoadClass isSearchFilter_HasMinRoadClass `protobuf_oneof:"has_min_road_class"` // Types that are assignable to HasMaxRoadClass: // *SearchFilter_MaxRoadClass HasMaxRoadClass isSearchFilter_HasMaxRoadClass `protobuf_oneof:"has_max_road_class"` // form of way ExcludeTunnel bool `protobuf:"varint,3,opt,name=exclude_tunnel,json=excludeTunnel,proto3" json:"exclude_tunnel,omitempty"` // whether to exclude tunnels from loki results [default = false] ExcludeBridge bool `protobuf:"varint,4,opt,name=exclude_bridge,json=excludeBridge,proto3" json:"exclude_bridge,omitempty"` // whether to exclude bridges from loki results [default = false] ExcludeRamp bool `protobuf:"varint,5,opt,name=exclude_ramp,json=excludeRamp,proto3" json:"exclude_ramp,omitempty"` // whether to exclude roads with ramp use from loki results [default = false] // Types that are assignable to HasExcludeClosures: // *SearchFilter_ExcludeClosures HasExcludeClosures isSearchFilter_HasExcludeClosures `protobuf_oneof:"has_exclude_closures"` } func (x *SearchFilter) Reset() { *x = SearchFilter{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchFilter) ProtoMessage() {} func (x *SearchFilter) ProtoReflect() protoreflect.Message { mi := &file_common_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 SearchFilter.ProtoReflect.Descriptor instead. func (*SearchFilter) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{2} } func (m *SearchFilter) GetHasMinRoadClass() isSearchFilter_HasMinRoadClass { if m != nil { return m.HasMinRoadClass } return nil } func (x *SearchFilter) GetMinRoadClass() RoadClass { if x, ok := x.GetHasMinRoadClass().(*SearchFilter_MinRoadClass); ok { return x.MinRoadClass } return RoadClass_kMotorway } func (m *SearchFilter) GetHasMaxRoadClass() isSearchFilter_HasMaxRoadClass { if m != nil { return m.HasMaxRoadClass } return nil } func (x *SearchFilter) GetMaxRoadClass() RoadClass { if x, ok := x.GetHasMaxRoadClass().(*SearchFilter_MaxRoadClass); ok { return x.MaxRoadClass } return RoadClass_kMotorway } func (x *SearchFilter) GetExcludeTunnel() bool { if x != nil { return x.ExcludeTunnel } return false } func (x *SearchFilter) GetExcludeBridge() bool { if x != nil { return x.ExcludeBridge } return false } func (x *SearchFilter) GetExcludeRamp() bool { if x != nil { return x.ExcludeRamp } return false } func (m *SearchFilter) GetHasExcludeClosures() isSearchFilter_HasExcludeClosures { if m != nil { return m.HasExcludeClosures } return nil } func (x *SearchFilter) GetExcludeClosures() bool { if x, ok := x.GetHasExcludeClosures().(*SearchFilter_ExcludeClosures); ok { return x.ExcludeClosures } return false } type isSearchFilter_HasMinRoadClass interface { isSearchFilter_HasMinRoadClass() } type SearchFilter_MinRoadClass struct { MinRoadClass RoadClass `protobuf:"varint,1,opt,name=min_road_class,json=minRoadClass,proto3,enum=valhalla.RoadClass,oneof"` // lowest road class to allow in loki results [default = kServiceOther] } func (*SearchFilter_MinRoadClass) isSearchFilter_HasMinRoadClass() {} type isSearchFilter_HasMaxRoadClass interface { isSearchFilter_HasMaxRoadClass() } type SearchFilter_MaxRoadClass struct { MaxRoadClass RoadClass `protobuf:"varint,2,opt,name=max_road_class,json=maxRoadClass,proto3,enum=valhalla.RoadClass,oneof"` // highest road class to allow in loki results [default = kMotorway] } func (*SearchFilter_MaxRoadClass) isSearchFilter_HasMaxRoadClass() {} type isSearchFilter_HasExcludeClosures interface { isSearchFilter_HasExcludeClosures() } type SearchFilter_ExcludeClosures struct { ExcludeClosures bool `protobuf:"varint,6,opt,name=exclude_closures,json=excludeClosures,proto3,oneof"` // whether to exclude roads marked as closed due to traffic [default = true] } func (*SearchFilter_ExcludeClosures) isSearchFilter_HasExcludeClosures() {} type PathEdge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GraphId uint64 `protobuf:"varint,1,opt,name=graph_id,json=graphId,proto3" json:"graph_id,omitempty"` PercentAlong float64 `protobuf:"fixed64,2,opt,name=percent_along,json=percentAlong,proto3" json:"percent_along,omitempty"` Ll *LatLng `protobuf:"bytes,3,opt,name=ll,proto3" json:"ll,omitempty"` SideOfStreet Location_SideOfStreet `protobuf:"varint,4,opt,name=side_of_street,json=sideOfStreet,proto3,enum=valhalla.Location_SideOfStreet" json:"side_of_street,omitempty"` Distance float64 `protobuf:"fixed64,5,opt,name=distance,proto3" json:"distance,omitempty"` BeginNode bool `protobuf:"varint,7,opt,name=begin_node,json=beginNode,proto3" json:"begin_node,omitempty"` EndNode bool `protobuf:"varint,8,opt,name=end_node,json=endNode,proto3" json:"end_node,omitempty"` Names []string `protobuf:"bytes,10,rep,name=names,proto3" json:"names,omitempty"` OutboundReach int32 `protobuf:"varint,11,opt,name=outbound_reach,json=outboundReach,proto3" json:"outbound_reach,omitempty"` InboundReach int32 `protobuf:"varint,12,opt,name=inbound_reach,json=inboundReach,proto3" json:"inbound_reach,omitempty"` Heading float32 `protobuf:"fixed32,13,opt,name=heading,proto3" json:"heading,omitempty"` } func (x *PathEdge) Reset() { *x = PathEdge{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PathEdge) String() string { return protoimpl.X.MessageStringOf(x) } func (*PathEdge) ProtoMessage() {} func (x *PathEdge) ProtoReflect() protoreflect.Message { mi := &file_common_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 PathEdge.ProtoReflect.Descriptor instead. func (*PathEdge) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{3} } func (x *PathEdge) GetGraphId() uint64 { if x != nil { return x.GraphId } return 0 } func (x *PathEdge) GetPercentAlong() float64 { if x != nil { return x.PercentAlong } return 0 } func (x *PathEdge) GetLl() *LatLng { if x != nil { return x.Ll } return nil } func (x *PathEdge) GetSideOfStreet() Location_SideOfStreet { if x != nil { return x.SideOfStreet } return Location_kNone } func (x *PathEdge) GetDistance() float64 { if x != nil { return x.Distance } return 0 } func (x *PathEdge) GetBeginNode() bool { if x != nil { return x.BeginNode } return false } func (x *PathEdge) GetEndNode() bool { if x != nil { return x.EndNode } return false } func (x *PathEdge) GetNames() []string { if x != nil { return x.Names } return nil } func (x *PathEdge) GetOutboundReach() int32 { if x != nil { return x.OutboundReach } return 0 } func (x *PathEdge) GetInboundReach() int32 { if x != nil { return x.InboundReach } return 0 } func (x *PathEdge) GetHeading() float32 { if x != nil { return x.Heading } return 0 } // Output information about how the location object below is correlated to the graph or to the route etc type Correlation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Edges []*PathEdge `protobuf:"bytes,1,rep,name=edges,proto3" json:"edges,omitempty"` FilteredEdges []*PathEdge `protobuf:"bytes,2,rep,name=filtered_edges,json=filteredEdges,proto3" json:"filtered_edges,omitempty"` OriginalIndex uint32 `protobuf:"varint,3,opt,name=original_index,json=originalIndex,proto3" json:"original_index,omitempty"` ProjectedLl *LatLng `protobuf:"bytes,4,opt,name=projected_ll,json=projectedLl,proto3" json:"projected_ll,omitempty"` LegShapeIndex uint32 `protobuf:"varint,5,opt,name=leg_shape_index,json=legShapeIndex,proto3" json:"leg_shape_index,omitempty"` DistanceFromLegOrigin float64 `protobuf:"fixed64,6,opt,name=distance_from_leg_origin,json=distanceFromLegOrigin,proto3" json:"distance_from_leg_origin,omitempty"` RouteIndex uint32 `protobuf:"varint,7,opt,name=route_index,json=routeIndex,proto3" json:"route_index,omitempty"` // primarily for matchings index in osrm map matching WaypointIndex uint32 `protobuf:"varint,8,opt,name=waypoint_index,json=waypointIndex,proto3" json:"waypoint_index,omitempty"` // primarily for matched point index in osrm map matching } func (x *Correlation) Reset() { *x = Correlation{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Correlation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Correlation) ProtoMessage() {} func (x *Correlation) ProtoReflect() protoreflect.Message { mi := &file_common_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 Correlation.ProtoReflect.Descriptor instead. func (*Correlation) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{4} } func (x *Correlation) GetEdges() []*PathEdge { if x != nil { return x.Edges } return nil } func (x *Correlation) GetFilteredEdges() []*PathEdge { if x != nil { return x.FilteredEdges } return nil } func (x *Correlation) GetOriginalIndex() uint32 { if x != nil { return x.OriginalIndex } return 0 } func (x *Correlation) GetProjectedLl() *LatLng { if x != nil { return x.ProjectedLl } return nil } func (x *Correlation) GetLegShapeIndex() uint32 { if x != nil { return x.LegShapeIndex } return 0 } func (x *Correlation) GetDistanceFromLegOrigin() float64 { if x != nil { return x.DistanceFromLegOrigin } return 0 } func (x *Correlation) GetRouteIndex() uint32 { if x != nil { return x.RouteIndex } return 0 } func (x *Correlation) GetWaypointIndex() uint32 { if x != nil { return x.WaypointIndex } return 0 } type Location struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ll *LatLng `protobuf:"bytes,1,opt,name=ll,proto3" json:"ll,omitempty"` Type Location_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.Location_Type" json:"type,omitempty"` // [default = kBreak] // Types that are assignable to HasHeading: // *Location_Heading HasHeading isLocation_HasHeading `protobuf_oneof:"has_heading"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` Street string `protobuf:"bytes,5,opt,name=street,proto3" json:"street,omitempty"` DateTime string `protobuf:"bytes,12,opt,name=date_time,json=dateTime,proto3" json:"date_time,omitempty"` SideOfStreet Location_SideOfStreet `protobuf:"varint,13,opt,name=side_of_street,json=sideOfStreet,proto3,enum=valhalla.Location_SideOfStreet" json:"side_of_street,omitempty"` // Types that are assignable to HasHeadingTolerance: // *Location_HeadingTolerance HasHeadingTolerance isLocation_HasHeadingTolerance `protobuf_oneof:"has_heading_tolerance"` // Types that are assignable to HasNodeSnapTolerance: // *Location_NodeSnapTolerance HasNodeSnapTolerance isLocation_HasNodeSnapTolerance `protobuf_oneof:"has_node_snap_tolerance"` // Types that are assignable to HasMinimumReachability: // *Location_MinimumReachability HasMinimumReachability isLocation_HasMinimumReachability `protobuf_oneof:"has_minimum_reachability"` // Types that are assignable to HasRadius: // *Location_Radius HasRadius isLocation_HasRadius `protobuf_oneof:"has_radius"` // Types that are assignable to HasAccuracy: // *Location_Accuracy HasAccuracy isLocation_HasAccuracy `protobuf_oneof:"has_accuracy"` // Types that are assignable to HasTime: // *Location_Time HasTime isLocation_HasTime `protobuf_oneof:"has_time"` SkipRankingCandidates bool `protobuf:"varint,21,opt,name=skip_ranking_candidates,json=skipRankingCandidates,proto3" json:"skip_ranking_candidates,omitempty"` PreferredSide Location_PreferredSide `protobuf:"varint,22,opt,name=preferred_side,json=preferredSide,proto3,enum=valhalla.Location_PreferredSide" json:"preferred_side,omitempty"` DisplayLl *LatLng `protobuf:"bytes,23,opt,name=display_ll,json=displayLl,proto3" json:"display_ll,omitempty"` // Types that are assignable to HasSearchCutoff: // *Location_SearchCutoff HasSearchCutoff isLocation_HasSearchCutoff `protobuf_oneof:"has_search_cutoff"` // Types that are assignable to HasStreetSideTolerance: // *Location_StreetSideTolerance HasStreetSideTolerance isLocation_HasStreetSideTolerance `protobuf_oneof:"has_street_side_tolerance"` SearchFilter *SearchFilter `protobuf:"bytes,26,opt,name=search_filter,json=searchFilter,proto3" json:"search_filter,omitempty"` // Types that are assignable to HasStreetSideMaxDistance: // *Location_StreetSideMaxDistance HasStreetSideMaxDistance isLocation_HasStreetSideMaxDistance `protobuf_oneof:"has_street_side_max_distance"` // Types that are assignable to HasPreferredLayer: // *Location_PreferredLayer HasPreferredLayer isLocation_HasPreferredLayer `protobuf_oneof:"has_preferred_layer"` WaitingSecs float32 `protobuf:"fixed32,29,opt,name=waiting_secs,json=waitingSecs,proto3" json:"waiting_secs,omitempty"` // waiting period before a new leg starts, e.g. for servicing/loading goods // This information will be ignored if provided in the request. Instead it will be filled in as the request is handled Correlation *Correlation `protobuf:"bytes,90,opt,name=correlation,proto3" json:"correlation,omitempty"` } func (x *Location) Reset() { *x = Location{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Location) String() string { return protoimpl.X.MessageStringOf(x) } func (*Location) ProtoMessage() {} func (x *Location) ProtoReflect() protoreflect.Message { mi := &file_common_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 Location.ProtoReflect.Descriptor instead. func (*Location) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{5} } func (x *Location) GetLl() *LatLng { if x != nil { return x.Ll } return nil } func (x *Location) GetType() Location_Type { if x != nil { return x.Type } return Location_kBreak } func (m *Location) GetHasHeading() isLocation_HasHeading { if m != nil { return m.HasHeading } return nil } func (x *Location) GetHeading() uint32 { if x, ok := x.GetHasHeading().(*Location_Heading); ok { return x.Heading } return 0 } func (x *Location) GetName() string { if x != nil { return x.Name } return "" } func (x *Location) GetStreet() string { if x != nil { return x.Street } return "" } func (x *Location) GetDateTime() string { if x != nil { return x.DateTime } return "" } func (x *Location) GetSideOfStreet() Location_SideOfStreet { if x != nil { return x.SideOfStreet } return Location_kNone } func (m *Location) GetHasHeadingTolerance() isLocation_HasHeadingTolerance { if m != nil { return m.HasHeadingTolerance } return nil } func (x *Location) GetHeadingTolerance() uint32 { if x, ok := x.GetHasHeadingTolerance().(*Location_HeadingTolerance); ok { return x.HeadingTolerance } return 0 } func (m *Location) GetHasNodeSnapTolerance() isLocation_HasNodeSnapTolerance { if m != nil { return m.HasNodeSnapTolerance } return nil } func (x *Location) GetNodeSnapTolerance() uint32 { if x, ok := x.GetHasNodeSnapTolerance().(*Location_NodeSnapTolerance); ok { return x.NodeSnapTolerance } return 0 } func (m *Location) GetHasMinimumReachability() isLocation_HasMinimumReachability { if m != nil { return m.HasMinimumReachability } return nil } func (x *Location) GetMinimumReachability() uint32 { if x, ok := x.GetHasMinimumReachability().(*Location_MinimumReachability); ok { return x.MinimumReachability } return 0 } func (m *Location) GetHasRadius() isLocation_HasRadius { if m != nil { return m.HasRadius } return nil } func (x *Location) GetRadius() uint32 { if x, ok := x.GetHasRadius().(*Location_Radius); ok { return x.Radius } return 0 } func (m *Location) GetHasAccuracy() isLocation_HasAccuracy { if m != nil { return m.HasAccuracy } return nil } func (x *Location) GetAccuracy() uint32 { if x, ok := x.GetHasAccuracy().(*Location_Accuracy); ok { return x.Accuracy } return 0 } func (m *Location) GetHasTime() isLocation_HasTime { if m != nil { return m.HasTime } return nil } func (x *Location) GetTime() float64 { if x, ok := x.GetHasTime().(*Location_Time); ok { return x.Time } return 0 } func (x *Location) GetSkipRankingCandidates() bool { if x != nil { return x.SkipRankingCandidates } return false } func (x *Location) GetPreferredSide() Location_PreferredSide { if x != nil { return x.PreferredSide } return Location_either } func (x *Location) GetDisplayLl() *LatLng { if x != nil { return x.DisplayLl } return nil } func (m *Location) GetHasSearchCutoff() isLocation_HasSearchCutoff { if m != nil { return m.HasSearchCutoff } return nil } func (x *Location) GetSearchCutoff() uint32 { if x, ok := x.GetHasSearchCutoff().(*Location_SearchCutoff); ok { return x.SearchCutoff } return 0 } func (m *Location) GetHasStreetSideTolerance() isLocation_HasStreetSideTolerance { if m != nil { return m.HasStreetSideTolerance } return nil } func (x *Location) GetStreetSideTolerance() uint32 { if x, ok := x.GetHasStreetSideTolerance().(*Location_StreetSideTolerance); ok { return x.StreetSideTolerance } return 0 } func (x *Location) GetSearchFilter() *SearchFilter { if x != nil { return x.SearchFilter } return nil } func (m *Location) GetHasStreetSideMaxDistance() isLocation_HasStreetSideMaxDistance { if m != nil { return m.HasStreetSideMaxDistance } return nil } func (x *Location) GetStreetSideMaxDistance() uint32 { if x, ok := x.GetHasStreetSideMaxDistance().(*Location_StreetSideMaxDistance); ok { return x.StreetSideMaxDistance } return 0 } func (m *Location) GetHasPreferredLayer() isLocation_HasPreferredLayer { if m != nil { return m.HasPreferredLayer } return nil } func (x *Location) GetPreferredLayer() int32 { if x, ok := x.GetHasPreferredLayer().(*Location_PreferredLayer); ok { return x.PreferredLayer } return 0 } func (x *Location) GetWaitingSecs() float32 { if x != nil { return x.WaitingSecs } return 0 } func (x *Location) GetCorrelation() *Correlation { if x != nil { return x.Correlation } return nil } type isLocation_HasHeading interface { isLocation_HasHeading() } type Location_Heading struct { Heading uint32 `protobuf:"varint,3,opt,name=heading,proto3,oneof"` // 0-359 } func (*Location_Heading) isLocation_HasHeading() {} type isLocation_HasHeadingTolerance interface { isLocation_HasHeadingTolerance() } type Location_HeadingTolerance struct { HeadingTolerance uint32 `protobuf:"varint,14,opt,name=heading_tolerance,json=headingTolerance,proto3,oneof"` } func (*Location_HeadingTolerance) isLocation_HasHeadingTolerance() {} type isLocation_HasNodeSnapTolerance interface { isLocation_HasNodeSnapTolerance() } type Location_NodeSnapTolerance struct { NodeSnapTolerance uint32 `protobuf:"varint,15,opt,name=node_snap_tolerance,json=nodeSnapTolerance,proto3,oneof"` } func (*Location_NodeSnapTolerance) isLocation_HasNodeSnapTolerance() {} type isLocation_HasMinimumReachability interface { isLocation_HasMinimumReachability() } type Location_MinimumReachability struct { MinimumReachability uint32 `protobuf:"varint,17,opt,name=minimum_reachability,json=minimumReachability,proto3,oneof"` } func (*Location_MinimumReachability) isLocation_HasMinimumReachability() {} type isLocation_HasRadius interface { isLocation_HasRadius() } type Location_Radius struct { Radius uint32 `protobuf:"varint,18,opt,name=radius,proto3,oneof"` } func (*Location_Radius) isLocation_HasRadius() {} type isLocation_HasAccuracy interface { isLocation_HasAccuracy() } type Location_Accuracy struct { Accuracy uint32 `protobuf:"varint,19,opt,name=accuracy,proto3,oneof"` } func (*Location_Accuracy) isLocation_HasAccuracy() {} type isLocation_HasTime interface { isLocation_HasTime() } type Location_Time struct { Time float64 `protobuf:"fixed64,20,opt,name=time,proto3,oneof"` } func (*Location_Time) isLocation_HasTime() {} type isLocation_HasSearchCutoff interface { isLocation_HasSearchCutoff() } type Location_SearchCutoff struct { SearchCutoff uint32 `protobuf:"varint,24,opt,name=search_cutoff,json=searchCutoff,proto3,oneof"` } func (*Location_SearchCutoff) isLocation_HasSearchCutoff() {} type isLocation_HasStreetSideTolerance interface { isLocation_HasStreetSideTolerance() } type Location_StreetSideTolerance struct { StreetSideTolerance uint32 `protobuf:"varint,25,opt,name=street_side_tolerance,json=streetSideTolerance,proto3,oneof"` } func (*Location_StreetSideTolerance) isLocation_HasStreetSideTolerance() {} type isLocation_HasStreetSideMaxDistance interface { isLocation_HasStreetSideMaxDistance() } type Location_StreetSideMaxDistance struct { StreetSideMaxDistance uint32 `protobuf:"varint,27,opt,name=street_side_max_distance,json=streetSideMaxDistance,proto3,oneof"` } func (*Location_StreetSideMaxDistance) isLocation_HasStreetSideMaxDistance() {} type isLocation_HasPreferredLayer interface { isLocation_HasPreferredLayer() } type Location_PreferredLayer struct { PreferredLayer int32 `protobuf:"varint,28,opt,name=preferred_layer,json=preferredLayer,proto3,oneof"` } func (*Location_PreferredLayer) isLocation_HasPreferredLayer() {} type TransitEgressInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OnestopId string `protobuf:"bytes,1,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` // Unique transitland ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // The name of the egress Ll *LatLng `protobuf:"bytes,3,opt,name=ll,proto3" json:"ll,omitempty"` // Latitude, longitude of the egress } func (x *TransitEgressInfo) Reset() { *x = TransitEgressInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransitEgressInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransitEgressInfo) ProtoMessage() {} func (x *TransitEgressInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 TransitEgressInfo.ProtoReflect.Descriptor instead. func (*TransitEgressInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{6} } func (x *TransitEgressInfo) GetOnestopId() string { if x != nil { return x.OnestopId } return "" } func (x *TransitEgressInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *TransitEgressInfo) GetLl() *LatLng { if x != nil { return x.Ll } return nil } type TransitStationInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OnestopId string `protobuf:"bytes,1,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` // Unique transitland ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // The name of the station Ll *LatLng `protobuf:"bytes,3,opt,name=ll,proto3" json:"ll,omitempty"` // Latitude, longitude of the station } func (x *TransitStationInfo) Reset() { *x = TransitStationInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransitStationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransitStationInfo) ProtoMessage() {} func (x *TransitStationInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 TransitStationInfo.ProtoReflect.Descriptor instead. func (*TransitStationInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{7} } func (x *TransitStationInfo) GetOnestopId() string { if x != nil { return x.OnestopId } return "" } func (x *TransitStationInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *TransitStationInfo) GetLl() *LatLng { if x != nil { return x.Ll } return nil } type BikeShareStationInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` Capacity uint32 `protobuf:"varint,3,opt,name=capacity,proto3" json:"capacity,omitempty"` Network string `protobuf:"bytes,4,opt,name=network,proto3" json:"network,omitempty"` Operator string `protobuf:"bytes,5,opt,name=operator,proto3" json:"operator,omitempty"` RentCost float32 `protobuf:"fixed32,6,opt,name=rent_cost,json=rentCost,proto3" json:"rent_cost,omitempty"` ReturnCost float32 `protobuf:"fixed32,7,opt,name=return_cost,json=returnCost,proto3" json:"return_cost,omitempty"` } func (x *BikeShareStationInfo) Reset() { *x = BikeShareStationInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BikeShareStationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BikeShareStationInfo) ProtoMessage() {} func (x *BikeShareStationInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 BikeShareStationInfo.ProtoReflect.Descriptor instead. func (*BikeShareStationInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{8} } func (x *BikeShareStationInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *BikeShareStationInfo) GetRef() string { if x != nil { return x.Ref } return "" } func (x *BikeShareStationInfo) GetCapacity() uint32 { if x != nil { return x.Capacity } return 0 } func (x *BikeShareStationInfo) GetNetwork() string { if x != nil { return x.Network } return "" } func (x *BikeShareStationInfo) GetOperator() string { if x != nil { return x.Operator } return "" } func (x *BikeShareStationInfo) GetRentCost() float32 { if x != nil { return x.RentCost } return 0 } func (x *BikeShareStationInfo) GetReturnCost() float32 { if x != nil { return x.ReturnCost } return 0 } type TransitPlatformInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type TransitPlatformInfo_Type `protobuf:"varint,1,opt,name=type,proto3,enum=valhalla.TransitPlatformInfo_Type" json:"type,omitempty"` // The type of stop (station or simple stop) OnestopId string `protobuf:"bytes,2,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` // Unique transitland ID Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // The name of the platform ArrivalDateTime string `protobuf:"bytes,4,opt,name=arrival_date_time,json=arrivalDateTime,proto3" json:"arrival_date_time,omitempty"` // ISO 8601 arrival date/time YYYY-MM-DDThh:mm DepartureDateTime string `protobuf:"bytes,5,opt,name=departure_date_time,json=departureDateTime,proto3" json:"departure_date_time,omitempty"` // ISO 8601 departure date/time YYYY-MM-DDThh:mm AssumedSchedule bool `protobuf:"varint,6,opt,name=assumed_schedule,json=assumedSchedule,proto3" json:"assumed_schedule,omitempty"` // true if the times are based on an assumed schedule Ll *LatLng `protobuf:"bytes,7,opt,name=ll,proto3" json:"ll,omitempty"` // Latitude, longitude of the transit stop StationOnestopId string `protobuf:"bytes,8,opt,name=station_onestop_id,json=stationOnestopId,proto3" json:"station_onestop_id,omitempty"` // Unique transitland station ID StationName string `protobuf:"bytes,9,opt,name=station_name,json=stationName,proto3" json:"station_name,omitempty"` // The station name of the platform } func (x *TransitPlatformInfo) Reset() { *x = TransitPlatformInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransitPlatformInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransitPlatformInfo) ProtoMessage() {} func (x *TransitPlatformInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 TransitPlatformInfo.ProtoReflect.Descriptor instead. func (*TransitPlatformInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{9} } func (x *TransitPlatformInfo) GetType() TransitPlatformInfo_Type { if x != nil { return x.Type } return TransitPlatformInfo_kStop } func (x *TransitPlatformInfo) GetOnestopId() string { if x != nil { return x.OnestopId } return "" } func (x *TransitPlatformInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *TransitPlatformInfo) GetArrivalDateTime() string { if x != nil { return x.ArrivalDateTime } return "" } func (x *TransitPlatformInfo) GetDepartureDateTime() string { if x != nil { return x.DepartureDateTime } return "" } func (x *TransitPlatformInfo) GetAssumedSchedule() bool { if x != nil { return x.AssumedSchedule } return false } func (x *TransitPlatformInfo) GetLl() *LatLng { if x != nil { return x.Ll } return nil } func (x *TransitPlatformInfo) GetStationOnestopId() string { if x != nil { return x.StationOnestopId } return "" } func (x *TransitPlatformInfo) GetStationName() string { if x != nil { return x.StationName } return "" } type TransitRouteInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OnestopId string `protobuf:"bytes,1,opt,name=onestop_id,json=onestopId,proto3" json:"onestop_id,omitempty"` BlockId uint32 `protobuf:"varint,2,opt,name=block_id,json=blockId,proto3" json:"block_id,omitempty"` TripId uint32 `protobuf:"varint,3,opt,name=trip_id,json=tripId,proto3" json:"trip_id,omitempty"` ShortName string `protobuf:"bytes,4,opt,name=short_name,json=shortName,proto3" json:"short_name,omitempty"` LongName string `protobuf:"bytes,5,opt,name=long_name,json=longName,proto3" json:"long_name,omitempty"` Headsign string `protobuf:"bytes,6,opt,name=headsign,proto3" json:"headsign,omitempty"` Color uint32 `protobuf:"varint,7,opt,name=color,proto3" json:"color,omitempty"` TextColor uint32 `protobuf:"varint,8,opt,name=text_color,json=textColor,proto3" json:"text_color,omitempty"` Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` OperatorOnestopId string `protobuf:"bytes,10,opt,name=operator_onestop_id,json=operatorOnestopId,proto3" json:"operator_onestop_id,omitempty"` OperatorName string `protobuf:"bytes,11,opt,name=operator_name,json=operatorName,proto3" json:"operator_name,omitempty"` OperatorUrl string `protobuf:"bytes,12,opt,name=operator_url,json=operatorUrl,proto3" json:"operator_url,omitempty"` TransitStops []*TransitPlatformInfo `protobuf:"bytes,13,rep,name=transit_stops,json=transitStops,proto3" json:"transit_stops,omitempty"` } func (x *TransitRouteInfo) Reset() { *x = TransitRouteInfo{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TransitRouteInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TransitRouteInfo) ProtoMessage() {} func (x *TransitRouteInfo) ProtoReflect() protoreflect.Message { mi := &file_common_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 TransitRouteInfo.ProtoReflect.Descriptor instead. func (*TransitRouteInfo) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{10} } func (x *TransitRouteInfo) GetOnestopId() string { if x != nil { return x.OnestopId } return "" } func (x *TransitRouteInfo) GetBlockId() uint32 { if x != nil { return x.BlockId } return 0 } func (x *TransitRouteInfo) GetTripId() uint32 { if x != nil { return x.TripId } return 0 } func (x *TransitRouteInfo) GetShortName() string { if x != nil { return x.ShortName } return "" } func (x *TransitRouteInfo) GetLongName() string { if x != nil { return x.LongName } return "" } func (x *TransitRouteInfo) GetHeadsign() string { if x != nil { return x.Headsign } return "" } func (x *TransitRouteInfo) GetColor() uint32 { if x != nil { return x.Color } return 0 } func (x *TransitRouteInfo) GetTextColor() uint32 { if x != nil { return x.TextColor } return 0 } func (x *TransitRouteInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *TransitRouteInfo) GetOperatorOnestopId() string { if x != nil { return x.OperatorOnestopId } return "" } func (x *TransitRouteInfo) GetOperatorName() string { if x != nil { return x.OperatorName } return "" } func (x *TransitRouteInfo) GetOperatorUrl() string { if x != nil { return x.OperatorUrl } return "" } func (x *TransitRouteInfo) GetTransitStops() []*TransitPlatformInfo { if x != nil { return x.TransitStops } return nil } type Pronunciation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Alphabet Pronunciation_Alphabet `protobuf:"varint,1,opt,name=alphabet,proto3,enum=valhalla.Pronunciation_Alphabet" json:"alphabet,omitempty"` Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *Pronunciation) Reset() { *x = Pronunciation{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Pronunciation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Pronunciation) ProtoMessage() {} func (x *Pronunciation) ProtoReflect() protoreflect.Message { mi := &file_common_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 Pronunciation.ProtoReflect.Descriptor instead. func (*Pronunciation) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{11} } func (x *Pronunciation) GetAlphabet() Pronunciation_Alphabet { if x != nil { return x.Alphabet } return Pronunciation_kIpa } func (x *Pronunciation) GetValue() string { if x != nil { return x.Value } return "" } type StreetName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The actual street name value, examples: I 95 North or Derry Street IsRouteNumber bool `protobuf:"varint,2,opt,name=is_route_number,json=isRouteNumber,proto3" json:"is_route_number,omitempty"` // true if the street name is a reference route number such as: I 81 South or US 322 West Pronunciation *Pronunciation `protobuf:"bytes,3,opt,name=pronunciation,proto3" json:"pronunciation,omitempty"` // The pronunciation associated with this street name } func (x *StreetName) Reset() { *x = StreetName{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreetName) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreetName) ProtoMessage() {} func (x *StreetName) ProtoReflect() protoreflect.Message { mi := &file_common_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 StreetName.ProtoReflect.Descriptor instead. func (*StreetName) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{12} } func (x *StreetName) GetValue() string { if x != nil { return x.Value } return "" } func (x *StreetName) GetIsRouteNumber() bool { if x != nil { return x.IsRouteNumber } return false } func (x *StreetName) GetPronunciation() *Pronunciation { if x != nil { return x.Pronunciation } return nil } type TurnLane struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DirectionsMask uint32 `protobuf:"varint,1,opt,name=directions_mask,json=directionsMask,proto3" json:"directions_mask,omitempty"` State TurnLane_State `protobuf:"varint,2,opt,name=state,proto3,enum=valhalla.TurnLane_State" json:"state,omitempty"` ActiveDirection uint32 `protobuf:"varint,3,opt,name=active_direction,json=activeDirection,proto3" json:"active_direction,omitempty"` } func (x *TurnLane) Reset() { *x = TurnLane{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TurnLane) String() string { return protoimpl.X.MessageStringOf(x) } func (*TurnLane) ProtoMessage() {} func (x *TurnLane) ProtoReflect() protoreflect.Message { mi := &file_common_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 TurnLane.ProtoReflect.Descriptor instead. func (*TurnLane) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{13} } func (x *TurnLane) GetDirectionsMask() uint32 { if x != nil { return x.DirectionsMask } return 0 } func (x *TurnLane) GetState() TurnLane_State { if x != nil { return x.State } return TurnLane_kInvalid } func (x *TurnLane) GetActiveDirection() uint32 { if x != nil { return x.ActiveDirection } return 0 } type TaggedValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The actual tagged name value, examples: Ted Williams Tunnel Type TaggedValue_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.TaggedValue_Type" json:"type,omitempty"` // The type of tagged name (tunnel or bridge) } func (x *TaggedValue) Reset() { *x = TaggedValue{} if protoimpl.UnsafeEnabled { mi := &file_common_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TaggedValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*TaggedValue) ProtoMessage() {} func (x *TaggedValue) ProtoReflect() protoreflect.Message { mi := &file_common_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 TaggedValue.ProtoReflect.Descriptor instead. func (*TaggedValue) Descriptor() ([]byte, []int) { return file_common_proto_rawDescGZIP(), []int{14} } func (x *TaggedValue) GetValue() []byte { if x != nil { return x.Value } return nil } func (x *TaggedValue) GetType() TaggedValue_Type { if x != nil { return x.Type } return TaggedValue_kNone } var File_common_proto protoreflect.FileDescriptor var file_common_proto_rawDesc = []byte{ 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x22, 0x46, 0x0a, 0x06, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x03, 0x6c, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6e, 0x67, 0x22, 0x5f, 0x0a, 0x0b, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x4c, 0x6c, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x05, 0x6d, 0x61, 0x78, 0x4c, 0x6c, 0x22, 0xea, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 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, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 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, 0x48, 0x01, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x22, 0x85, 0x03, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x45, 0x64, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x68, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xf7, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x64, 0x67, 0x65, 0x52, 0x05, 0x65, 0x64, 0x67, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x64, 0x67, 0x65, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x65, 0x67, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x65, 0x67, 0x53, 0x68, 0x61, 0x70, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x37, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x65, 0x67, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x65, 0x67, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x77, 0x61, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x8f, 0x0b, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x12, 0x2b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x11, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x48, 0x06, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6c, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4c, 0x6c, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x13, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x53, 0x69, 0x64, 0x65, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x18, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, 0x52, 0x15, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x53, 0x69, 0x64, 0x65, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x56, 0x69, 0x61, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x03, 0x22, 0x33, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x53, 0x69, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x10, 0x02, 0x22, 0x30, 0x0a, 0x0c, 0x53, 0x69, 0x64, 0x65, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 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, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x42, 0x1b, 0x0a, 0x19, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x22, 0x69, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x22, 0xcc, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6f, 0x73, 0x74, 0x22, 0x9b, 0x03, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 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, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x02, 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x1f, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x53, 0x74, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x22, 0xd0, 0x03, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x72, 0x69, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x42, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x03, 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, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x08, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x52, 0x08, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3f, 0x0a, 0x08, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x49, 0x70, 0x61, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x58, 0x4b, 0x61, 0x74, 0x61, 0x6b, 0x61, 0x6e, 0x61, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x58, 0x4a, 0x65, 0x69, 0x74, 0x61, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x4e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x61, 0x10, 0x03, 0x22, 0x89, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, 0x0a, 0x08, 0x54, 0x75, 0x72, 0x6e, 0x4c, 0x61, 0x6e, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x75, 0x72, 0x6e, 0x4c, 0x61, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x22, 0xc9, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x6b, 0x50, 0x72, 0x6f, 0x6e, 0x75, 0x6e, 0x63, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x31, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x10, 0x32, 0x2a, 0x8b, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x61, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x77, 0x61, 0x79, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x54, 0x65, 0x72, 0x74, 0x69, 0x61, 0x72, 0x79, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x6b, 0x52, 0x65, 0x73, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x2a, 0x45, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x42, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x10, 0x03, 0x2a, 0x5e, 0x0a, 0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x43, 0x61, 0x72, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x75, 0x73, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x6b, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x53, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x10, 0x04, 0x2a, 0x39, 0x0a, 0x0e, 0x50, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x46, 0x6f, 0x6f, 0x74, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6b, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x53, 0x65, 0x67, 0x77, 0x61, 0x79, 0x10, 0x02, 0x2a, 0x40, 0x0a, 0x0b, 0x42, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x52, 0x6f, 0x61, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6b, 0x48, 0x79, 0x62, 0x72, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x10, 0x03, 0x2a, 0x72, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x54, 0x72, 0x61, 0x6d, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6b, 0x52, 0x61, 0x69, 0x6c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x42, 0x75, 0x73, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6b, 0x46, 0x65, 0x72, 0x72, 0x79, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x6b, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x6b, 0x47, 0x6f, 0x6e, 0x64, 0x6f, 0x6c, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x46, 0x75, 0x6e, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x10, 0x07, 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, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_common_proto_rawDescOnce sync.Once file_common_proto_rawDescData = file_common_proto_rawDesc ) func file_common_proto_rawDescGZIP() []byte { file_common_proto_rawDescOnce.Do(func() { file_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_common_proto_rawDescData) }) return file_common_proto_rawDescData } var file_common_proto_enumTypes = make([]protoimpl.EnumInfo, 13) var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_common_proto_goTypes = []interface{}{ (RoadClass)(0), // 0: valhalla.RoadClass (TravelMode)(0), // 1: valhalla.TravelMode (VehicleType)(0), // 2: valhalla.VehicleType (PedestrianType)(0), // 3: valhalla.PedestrianType (BicycleType)(0), // 4: valhalla.BicycleType (TransitType)(0), // 5: valhalla.TransitType (Location_Type)(0), // 6: valhalla.Location.Type (Location_PreferredSide)(0), // 7: valhalla.Location.PreferredSide (Location_SideOfStreet)(0), // 8: valhalla.Location.SideOfStreet (TransitPlatformInfo_Type)(0), // 9: valhalla.TransitPlatformInfo.Type (Pronunciation_Alphabet)(0), // 10: valhalla.Pronunciation.Alphabet (TurnLane_State)(0), // 11: valhalla.TurnLane.State (TaggedValue_Type)(0), // 12: valhalla.TaggedValue.Type (*LatLng)(nil), // 13: valhalla.LatLng (*BoundingBox)(nil), // 14: valhalla.BoundingBox (*SearchFilter)(nil), // 15: valhalla.SearchFilter (*PathEdge)(nil), // 16: valhalla.PathEdge (*Correlation)(nil), // 17: valhalla.Correlation (*Location)(nil), // 18: valhalla.Location (*TransitEgressInfo)(nil), // 19: valhalla.TransitEgressInfo (*TransitStationInfo)(nil), // 20: valhalla.TransitStationInfo (*BikeShareStationInfo)(nil), // 21: valhalla.BikeShareStationInfo (*TransitPlatformInfo)(nil), // 22: valhalla.TransitPlatformInfo (*TransitRouteInfo)(nil), // 23: valhalla.TransitRouteInfo (*Pronunciation)(nil), // 24: valhalla.Pronunciation (*StreetName)(nil), // 25: valhalla.StreetName (*TurnLane)(nil), // 26: valhalla.TurnLane (*TaggedValue)(nil), // 27: valhalla.TaggedValue } var file_common_proto_depIdxs = []int32{ 13, // 0: valhalla.BoundingBox.min_ll:type_name -> valhalla.LatLng 13, // 1: valhalla.BoundingBox.max_ll:type_name -> valhalla.LatLng 0, // 2: valhalla.SearchFilter.min_road_class:type_name -> valhalla.RoadClass 0, // 3: valhalla.SearchFilter.max_road_class:type_name -> valhalla.RoadClass 13, // 4: valhalla.PathEdge.ll:type_name -> valhalla.LatLng 8, // 5: valhalla.PathEdge.side_of_street:type_name -> valhalla.Location.SideOfStreet 16, // 6: valhalla.Correlation.edges:type_name -> valhalla.PathEdge 16, // 7: valhalla.Correlation.filtered_edges:type_name -> valhalla.PathEdge 13, // 8: valhalla.Correlation.projected_ll:type_name -> valhalla.LatLng 13, // 9: valhalla.Location.ll:type_name -> valhalla.LatLng 6, // 10: valhalla.Location.type:type_name -> valhalla.Location.Type 8, // 11: valhalla.Location.side_of_street:type_name -> valhalla.Location.SideOfStreet 7, // 12: valhalla.Location.preferred_side:type_name -> valhalla.Location.PreferredSide 13, // 13: valhalla.Location.display_ll:type_name -> valhalla.LatLng 15, // 14: valhalla.Location.search_filter:type_name -> valhalla.SearchFilter 17, // 15: valhalla.Location.correlation:type_name -> valhalla.Correlation 13, // 16: valhalla.TransitEgressInfo.ll:type_name -> valhalla.LatLng 13, // 17: valhalla.TransitStationInfo.ll:type_name -> valhalla.LatLng 9, // 18: valhalla.TransitPlatformInfo.type:type_name -> valhalla.TransitPlatformInfo.Type 13, // 19: valhalla.TransitPlatformInfo.ll:type_name -> valhalla.LatLng 22, // 20: valhalla.TransitRouteInfo.transit_stops:type_name -> valhalla.TransitPlatformInfo 10, // 21: valhalla.Pronunciation.alphabet:type_name -> valhalla.Pronunciation.Alphabet 24, // 22: valhalla.StreetName.pronunciation:type_name -> valhalla.Pronunciation 11, // 23: valhalla.TurnLane.state:type_name -> valhalla.TurnLane.State 12, // 24: valhalla.TaggedValue.type:type_name -> valhalla.TaggedValue.Type 25, // [25:25] is the sub-list for method output_type 25, // [25:25] is the sub-list for method input_type 25, // [25:25] is the sub-list for extension type_name 25, // [25:25] is the sub-list for extension extendee 0, // [0:25] is the sub-list for field type_name } func init() { file_common_proto_init() } func file_common_proto_init() { if File_common_proto != nil { return } if !protoimpl.UnsafeEnabled { file_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LatLng); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoundingBox); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PathEdge); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Correlation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Location); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransitEgressInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransitStationInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BikeShareStationInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransitPlatformInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransitRouteInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Pronunciation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreetName); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TurnLane); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TaggedValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_common_proto_msgTypes[0].OneofWrappers = []interface{}{ (*LatLng_Lat)(nil), (*LatLng_Lng)(nil), } file_common_proto_msgTypes[2].OneofWrappers = []interface{}{ (*SearchFilter_MinRoadClass)(nil), (*SearchFilter_MaxRoadClass)(nil), (*SearchFilter_ExcludeClosures)(nil), } file_common_proto_msgTypes[5].OneofWrappers = []interface{}{ (*Location_Heading)(nil), (*Location_HeadingTolerance)(nil), (*Location_NodeSnapTolerance)(nil), (*Location_MinimumReachability)(nil), (*Location_Radius)(nil), (*Location_Accuracy)(nil), (*Location_Time)(nil), (*Location_SearchCutoff)(nil), (*Location_StreetSideTolerance)(nil), (*Location_StreetSideMaxDistance)(nil), (*Location_PreferredLayer)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_common_proto_rawDesc, NumEnums: 13, NumMessages: 15, NumExtensions: 0, NumServices: 0, }, GoTypes: file_common_proto_goTypes, DependencyIndexes: file_common_proto_depIdxs, EnumInfos: file_common_proto_enumTypes, MessageInfos: file_common_proto_msgTypes, }.Build() File_common_proto = out.File file_common_proto_rawDesc = nil file_common_proto_goTypes = nil file_common_proto_depIdxs = nil }