goplayd/lib/spot/proto/player.pb.go

2724 lines
112 KiB
Go
Raw Permalink Normal View History

2023-01-11 17:08:26 +00:00
// Extracted from: Spotify 1.1.61.583 (Windows)
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.12
// source: player.proto
package proto
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 BitrateLevel int32
const (
BitrateLevel_unknown_bitrate_level BitrateLevel = 0
BitrateLevel_low BitrateLevel = 1
BitrateLevel_normal BitrateLevel = 2
BitrateLevel_high BitrateLevel = 3
BitrateLevel_very_high BitrateLevel = 4
BitrateLevel_hifi BitrateLevel = 5
)
// Enum value maps for BitrateLevel.
var (
BitrateLevel_name = map[int32]string{
0: "unknown_bitrate_level",
1: "low",
2: "normal",
3: "high",
4: "very_high",
5: "hifi",
}
BitrateLevel_value = map[string]int32{
"unknown_bitrate_level": 0,
"low": 1,
"normal": 2,
"high": 3,
"very_high": 4,
"hifi": 5,
}
)
func (x BitrateLevel) Enum() *BitrateLevel {
p := new(BitrateLevel)
*p = x
return p
}
func (x BitrateLevel) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (BitrateLevel) Descriptor() protoreflect.EnumDescriptor {
return file_player_proto_enumTypes[0].Descriptor()
}
func (BitrateLevel) Type() protoreflect.EnumType {
return &file_player_proto_enumTypes[0]
}
func (x BitrateLevel) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use BitrateLevel.Descriptor instead.
func (BitrateLevel) EnumDescriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{0}
}
type BitrateStrategy int32
const (
BitrateStrategy_unknown_strategy BitrateStrategy = 0
BitrateStrategy_best_matching BitrateStrategy = 1
BitrateStrategy_backend_advised BitrateStrategy = 2
BitrateStrategy_offlined_file BitrateStrategy = 3
BitrateStrategy_cached_file BitrateStrategy = 4
BitrateStrategy_local_file BitrateStrategy = 5
)
// Enum value maps for BitrateStrategy.
var (
BitrateStrategy_name = map[int32]string{
0: "unknown_strategy",
1: "best_matching",
2: "backend_advised",
3: "offlined_file",
4: "cached_file",
5: "local_file",
}
BitrateStrategy_value = map[string]int32{
"unknown_strategy": 0,
"best_matching": 1,
"backend_advised": 2,
"offlined_file": 3,
"cached_file": 4,
"local_file": 5,
}
)
func (x BitrateStrategy) Enum() *BitrateStrategy {
p := new(BitrateStrategy)
*p = x
return p
}
func (x BitrateStrategy) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (BitrateStrategy) Descriptor() protoreflect.EnumDescriptor {
return file_player_proto_enumTypes[1].Descriptor()
}
func (BitrateStrategy) Type() protoreflect.EnumType {
return &file_player_proto_enumTypes[1]
}
func (x BitrateStrategy) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use BitrateStrategy.Descriptor instead.
func (BitrateStrategy) EnumDescriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{1}
}
type HiFiStatus int32
const (
HiFiStatus_none HiFiStatus = 0
HiFiStatus_off HiFiStatus = 1
HiFiStatus_on HiFiStatus = 2
)
// Enum value maps for HiFiStatus.
var (
HiFiStatus_name = map[int32]string{
0: "none",
1: "off",
2: "on",
}
HiFiStatus_value = map[string]int32{
"none": 0,
"off": 1,
"on": 2,
}
)
func (x HiFiStatus) Enum() *HiFiStatus {
p := new(HiFiStatus)
*p = x
return p
}
func (x HiFiStatus) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (HiFiStatus) Descriptor() protoreflect.EnumDescriptor {
return file_player_proto_enumTypes[2].Descriptor()
}
func (HiFiStatus) Type() protoreflect.EnumType {
return &file_player_proto_enumTypes[2]
}
func (x HiFiStatus) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use HiFiStatus.Descriptor instead.
func (HiFiStatus) EnumDescriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{2}
}
type PlayerState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
ContextUri string `protobuf:"bytes,2,opt,name=context_uri,json=contextUri,proto3" json:"context_uri,omitempty"`
ContextUrl string `protobuf:"bytes,3,opt,name=context_url,json=contextUrl,proto3" json:"context_url,omitempty"`
ContextRestrictions *Restrictions `protobuf:"bytes,4,opt,name=context_restrictions,json=contextRestrictions,proto3" json:"context_restrictions,omitempty"`
PlayOrigin *PlayOrigin `protobuf:"bytes,5,opt,name=play_origin,json=playOrigin,proto3" json:"play_origin,omitempty"`
Index *ContextIndex `protobuf:"bytes,6,opt,name=index,proto3" json:"index,omitempty"`
Track *ProvidedTrack `protobuf:"bytes,7,opt,name=track,proto3" json:"track,omitempty"`
PlaybackId string `protobuf:"bytes,8,opt,name=playback_id,json=playbackId,proto3" json:"playback_id,omitempty"`
PlaybackSpeed float64 `protobuf:"fixed64,9,opt,name=playback_speed,json=playbackSpeed,proto3" json:"playback_speed,omitempty"`
PositionAsOfTimestamp int64 `protobuf:"varint,10,opt,name=position_as_of_timestamp,json=positionAsOfTimestamp,proto3" json:"position_as_of_timestamp,omitempty"`
Duration int64 `protobuf:"varint,11,opt,name=duration,proto3" json:"duration,omitempty"`
IsPlaying bool `protobuf:"varint,12,opt,name=is_playing,json=isPlaying,proto3" json:"is_playing,omitempty"`
IsPaused bool `protobuf:"varint,13,opt,name=is_paused,json=isPaused,proto3" json:"is_paused,omitempty"`
IsBuffering bool `protobuf:"varint,14,opt,name=is_buffering,json=isBuffering,proto3" json:"is_buffering,omitempty"`
IsSystemInitiated bool `protobuf:"varint,15,opt,name=is_system_initiated,json=isSystemInitiated,proto3" json:"is_system_initiated,omitempty"`
Options *ContextPlayerOptions `protobuf:"bytes,16,opt,name=options,proto3" json:"options,omitempty"`
Restrictions *Restrictions `protobuf:"bytes,17,opt,name=restrictions,proto3" json:"restrictions,omitempty"`
Suppressions *Suppressions `protobuf:"bytes,18,opt,name=suppressions,proto3" json:"suppressions,omitempty"`
PrevTracks []*ProvidedTrack `protobuf:"bytes,19,rep,name=prev_tracks,json=prevTracks,proto3" json:"prev_tracks,omitempty"`
NextTracks []*ProvidedTrack `protobuf:"bytes,20,rep,name=next_tracks,json=nextTracks,proto3" json:"next_tracks,omitempty"`
ContextMetadata map[string]string `protobuf:"bytes,21,rep,name=context_metadata,json=contextMetadata,proto3" json:"context_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
PageMetadata map[string]string `protobuf:"bytes,22,rep,name=page_metadata,json=pageMetadata,proto3" json:"page_metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
SessionId string `protobuf:"bytes,23,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"`
QueueRevision string `protobuf:"bytes,24,opt,name=queue_revision,json=queueRevision,proto3" json:"queue_revision,omitempty"`
Position int64 `protobuf:"varint,25,opt,name=position,proto3" json:"position,omitempty"`
EntityUri string `protobuf:"bytes,26,opt,name=entity_uri,json=entityUri,proto3" json:"entity_uri,omitempty"`
Reverse []*ProvidedTrack `protobuf:"bytes,27,rep,name=reverse,proto3" json:"reverse,omitempty"`
Future []*ProvidedTrack `protobuf:"bytes,28,rep,name=future,proto3" json:"future,omitempty"`
AudioStream string `protobuf:"bytes,29,opt,name=audio_stream,json=audioStream,proto3" json:"audio_stream,omitempty"`
// Deprecated: Do not use.
IsOptional bool `protobuf:"varint,30,opt,name=is_optional,json=isOptional,proto3" json:"is_optional,omitempty"`
// Deprecated: Do not use.
Bitrate int64 `protobuf:"varint,31,opt,name=bitrate,proto3" json:"bitrate,omitempty"`
PlaybackQuality *PlaybackQuality `protobuf:"bytes,32,opt,name=playback_quality,json=playbackQuality,proto3" json:"playback_quality,omitempty"`
}
func (x *PlayerState) Reset() {
*x = PlayerState{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlayerState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlayerState) ProtoMessage() {}
func (x *PlayerState) ProtoReflect() protoreflect.Message {
mi := &file_player_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 PlayerState.ProtoReflect.Descriptor instead.
func (*PlayerState) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{0}
}
func (x *PlayerState) GetTimestamp() int64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *PlayerState) GetContextUri() string {
if x != nil {
return x.ContextUri
}
return ""
}
func (x *PlayerState) GetContextUrl() string {
if x != nil {
return x.ContextUrl
}
return ""
}
func (x *PlayerState) GetContextRestrictions() *Restrictions {
if x != nil {
return x.ContextRestrictions
}
return nil
}
func (x *PlayerState) GetPlayOrigin() *PlayOrigin {
if x != nil {
return x.PlayOrigin
}
return nil
}
func (x *PlayerState) GetIndex() *ContextIndex {
if x != nil {
return x.Index
}
return nil
}
func (x *PlayerState) GetTrack() *ProvidedTrack {
if x != nil {
return x.Track
}
return nil
}
func (x *PlayerState) GetPlaybackId() string {
if x != nil {
return x.PlaybackId
}
return ""
}
func (x *PlayerState) GetPlaybackSpeed() float64 {
if x != nil {
return x.PlaybackSpeed
}
return 0
}
func (x *PlayerState) GetPositionAsOfTimestamp() int64 {
if x != nil {
return x.PositionAsOfTimestamp
}
return 0
}
func (x *PlayerState) GetDuration() int64 {
if x != nil {
return x.Duration
}
return 0
}
func (x *PlayerState) GetIsPlaying() bool {
if x != nil {
return x.IsPlaying
}
return false
}
func (x *PlayerState) GetIsPaused() bool {
if x != nil {
return x.IsPaused
}
return false
}
func (x *PlayerState) GetIsBuffering() bool {
if x != nil {
return x.IsBuffering
}
return false
}
func (x *PlayerState) GetIsSystemInitiated() bool {
if x != nil {
return x.IsSystemInitiated
}
return false
}
func (x *PlayerState) GetOptions() *ContextPlayerOptions {
if x != nil {
return x.Options
}
return nil
}
func (x *PlayerState) GetRestrictions() *Restrictions {
if x != nil {
return x.Restrictions
}
return nil
}
func (x *PlayerState) GetSuppressions() *Suppressions {
if x != nil {
return x.Suppressions
}
return nil
}
func (x *PlayerState) GetPrevTracks() []*ProvidedTrack {
if x != nil {
return x.PrevTracks
}
return nil
}
func (x *PlayerState) GetNextTracks() []*ProvidedTrack {
if x != nil {
return x.NextTracks
}
return nil
}
func (x *PlayerState) GetContextMetadata() map[string]string {
if x != nil {
return x.ContextMetadata
}
return nil
}
func (x *PlayerState) GetPageMetadata() map[string]string {
if x != nil {
return x.PageMetadata
}
return nil
}
func (x *PlayerState) GetSessionId() string {
if x != nil {
return x.SessionId
}
return ""
}
func (x *PlayerState) GetQueueRevision() string {
if x != nil {
return x.QueueRevision
}
return ""
}
func (x *PlayerState) GetPosition() int64 {
if x != nil {
return x.Position
}
return 0
}
func (x *PlayerState) GetEntityUri() string {
if x != nil {
return x.EntityUri
}
return ""
}
func (x *PlayerState) GetReverse() []*ProvidedTrack {
if x != nil {
return x.Reverse
}
return nil
}
func (x *PlayerState) GetFuture() []*ProvidedTrack {
if x != nil {
return x.Future
}
return nil
}
func (x *PlayerState) GetAudioStream() string {
if x != nil {
return x.AudioStream
}
return ""
}
// Deprecated: Do not use.
func (x *PlayerState) GetIsOptional() bool {
if x != nil {
return x.IsOptional
}
return false
}
// Deprecated: Do not use.
func (x *PlayerState) GetBitrate() int64 {
if x != nil {
return x.Bitrate
}
return 0
}
func (x *PlayerState) GetPlaybackQuality() *PlaybackQuality {
if x != nil {
return x.PlaybackQuality
}
return nil
}
type ProvidedTrack struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"`
Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Removed []string `protobuf:"bytes,4,rep,name=removed,proto3" json:"removed,omitempty"`
Blocked []string `protobuf:"bytes,5,rep,name=blocked,proto3" json:"blocked,omitempty"`
Provider string `protobuf:"bytes,6,opt,name=provider,proto3" json:"provider,omitempty"`
Restrictions *Restrictions `protobuf:"bytes,7,opt,name=restrictions,proto3" json:"restrictions,omitempty"`
AlbumUri string `protobuf:"bytes,8,opt,name=album_uri,json=albumUri,proto3" json:"album_uri,omitempty"`
DisallowReasons []string `protobuf:"bytes,9,rep,name=disallow_reasons,json=disallowReasons,proto3" json:"disallow_reasons,omitempty"`
ArtistUri string `protobuf:"bytes,10,opt,name=artist_uri,json=artistUri,proto3" json:"artist_uri,omitempty"`
DisallowUndecided []string `protobuf:"bytes,11,rep,name=disallow_undecided,json=disallowUndecided,proto3" json:"disallow_undecided,omitempty"`
}
func (x *ProvidedTrack) Reset() {
*x = ProvidedTrack{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ProvidedTrack) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ProvidedTrack) ProtoMessage() {}
func (x *ProvidedTrack) ProtoReflect() protoreflect.Message {
mi := &file_player_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 ProvidedTrack.ProtoReflect.Descriptor instead.
func (*ProvidedTrack) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{1}
}
func (x *ProvidedTrack) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *ProvidedTrack) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *ProvidedTrack) GetMetadata() map[string]string {
if x != nil {
return x.Metadata
}
return nil
}
func (x *ProvidedTrack) GetRemoved() []string {
if x != nil {
return x.Removed
}
return nil
}
func (x *ProvidedTrack) GetBlocked() []string {
if x != nil {
return x.Blocked
}
return nil
}
func (x *ProvidedTrack) GetProvider() string {
if x != nil {
return x.Provider
}
return ""
}
func (x *ProvidedTrack) GetRestrictions() *Restrictions {
if x != nil {
return x.Restrictions
}
return nil
}
func (x *ProvidedTrack) GetAlbumUri() string {
if x != nil {
return x.AlbumUri
}
return ""
}
func (x *ProvidedTrack) GetDisallowReasons() []string {
if x != nil {
return x.DisallowReasons
}
return nil
}
func (x *ProvidedTrack) GetArtistUri() string {
if x != nil {
return x.ArtistUri
}
return ""
}
func (x *ProvidedTrack) GetDisallowUndecided() []string {
if x != nil {
return x.DisallowUndecided
}
return nil
}
type ContextIndex struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Page uint32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"`
Track uint32 `protobuf:"varint,2,opt,name=track,proto3" json:"track,omitempty"`
}
func (x *ContextIndex) Reset() {
*x = ContextIndex{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ContextIndex) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ContextIndex) ProtoMessage() {}
func (x *ContextIndex) ProtoReflect() protoreflect.Message {
mi := &file_player_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 ContextIndex.ProtoReflect.Descriptor instead.
func (*ContextIndex) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{2}
}
func (x *ContextIndex) GetPage() uint32 {
if x != nil {
return x.Page
}
return 0
}
func (x *ContextIndex) GetTrack() uint32 {
if x != nil {
return x.Track
}
return 0
}
type Restrictions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DisallowPausingReasons []string `protobuf:"bytes,1,rep,name=disallow_pausing_reasons,json=disallowPausingReasons,proto3" json:"disallow_pausing_reasons,omitempty"`
DisallowResumingReasons []string `protobuf:"bytes,2,rep,name=disallow_resuming_reasons,json=disallowResumingReasons,proto3" json:"disallow_resuming_reasons,omitempty"`
DisallowSeekingReasons []string `protobuf:"bytes,3,rep,name=disallow_seeking_reasons,json=disallowSeekingReasons,proto3" json:"disallow_seeking_reasons,omitempty"`
DisallowPeekingPrevReasons []string `protobuf:"bytes,4,rep,name=disallow_peeking_prev_reasons,json=disallowPeekingPrevReasons,proto3" json:"disallow_peeking_prev_reasons,omitempty"`
DisallowPeekingNextReasons []string `protobuf:"bytes,5,rep,name=disallow_peeking_next_reasons,json=disallowPeekingNextReasons,proto3" json:"disallow_peeking_next_reasons,omitempty"`
DisallowSkippingPrevReasons []string `protobuf:"bytes,6,rep,name=disallow_skipping_prev_reasons,json=disallowSkippingPrevReasons,proto3" json:"disallow_skipping_prev_reasons,omitempty"`
DisallowSkippingNextReasons []string `protobuf:"bytes,7,rep,name=disallow_skipping_next_reasons,json=disallowSkippingNextReasons,proto3" json:"disallow_skipping_next_reasons,omitempty"`
DisallowTogglingRepeatContextReasons []string `protobuf:"bytes,8,rep,name=disallow_toggling_repeat_context_reasons,json=disallowTogglingRepeatContextReasons,proto3" json:"disallow_toggling_repeat_context_reasons,omitempty"`
DisallowTogglingRepeatTrackReasons []string `protobuf:"bytes,9,rep,name=disallow_toggling_repeat_track_reasons,json=disallowTogglingRepeatTrackReasons,proto3" json:"disallow_toggling_repeat_track_reasons,omitempty"`
DisallowTogglingShuffleReasons []string `protobuf:"bytes,10,rep,name=disallow_toggling_shuffle_reasons,json=disallowTogglingShuffleReasons,proto3" json:"disallow_toggling_shuffle_reasons,omitempty"`
DisallowSetQueueReasons []string `protobuf:"bytes,11,rep,name=disallow_set_queue_reasons,json=disallowSetQueueReasons,proto3" json:"disallow_set_queue_reasons,omitempty"`
DisallowInterruptingPlaybackReasons []string `protobuf:"bytes,12,rep,name=disallow_interrupting_playback_reasons,json=disallowInterruptingPlaybackReasons,proto3" json:"disallow_interrupting_playback_reasons,omitempty"`
DisallowTransferringPlaybackReasons []string `protobuf:"bytes,13,rep,name=disallow_transferring_playback_reasons,json=disallowTransferringPlaybackReasons,proto3" json:"disallow_transferring_playback_reasons,omitempty"`
DisallowRemoteControlReasons []string `protobuf:"bytes,14,rep,name=disallow_remote_control_reasons,json=disallowRemoteControlReasons,proto3" json:"disallow_remote_control_reasons,omitempty"`
DisallowInsertingIntoNextTracksReasons []string `protobuf:"bytes,15,rep,name=disallow_inserting_into_next_tracks_reasons,json=disallowInsertingIntoNextTracksReasons,proto3" json:"disallow_inserting_into_next_tracks_reasons,omitempty"`
DisallowInsertingIntoContextTracksReasons []string `protobuf:"bytes,16,rep,name=disallow_inserting_into_context_tracks_reasons,json=disallowInsertingIntoContextTracksReasons,proto3" json:"disallow_inserting_into_context_tracks_reasons,omitempty"`
DisallowReorderingInNextTracksReasons []string `protobuf:"bytes,17,rep,name=disallow_reordering_in_next_tracks_reasons,json=disallowReorderingInNextTracksReasons,proto3" json:"disallow_reordering_in_next_tracks_reasons,omitempty"`
DisallowReorderingInContextTracksReasons []string `protobuf:"bytes,18,rep,name=disallow_reordering_in_context_tracks_reasons,json=disallowReorderingInContextTracksReasons,proto3" json:"disallow_reordering_in_context_tracks_reasons,omitempty"`
DisallowRemovingFromNextTracksReasons []string `protobuf:"bytes,19,rep,name=disallow_removing_from_next_tracks_reasons,json=disallowRemovingFromNextTracksReasons,proto3" json:"disallow_removing_from_next_tracks_reasons,omitempty"`
DisallowRemovingFromContextTracksReasons []string `protobuf:"bytes,20,rep,name=disallow_removing_from_context_tracks_reasons,json=disallowRemovingFromContextTracksReasons,proto3" json:"disallow_removing_from_context_tracks_reasons,omitempty"`
DisallowUpdatingContextReasons []string `protobuf:"bytes,21,rep,name=disallow_updating_context_reasons,json=disallowUpdatingContextReasons,proto3" json:"disallow_updating_context_reasons,omitempty"`
DisallowPlayingReasons []string `protobuf:"bytes,22,rep,name=disallow_playing_reasons,json=disallowPlayingReasons,proto3" json:"disallow_playing_reasons,omitempty"`
DisallowStoppingReasons []string `protobuf:"bytes,23,rep,name=disallow_stopping_reasons,json=disallowStoppingReasons,proto3" json:"disallow_stopping_reasons,omitempty"`
}
func (x *Restrictions) Reset() {
*x = Restrictions{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Restrictions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Restrictions) ProtoMessage() {}
func (x *Restrictions) ProtoReflect() protoreflect.Message {
mi := &file_player_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 Restrictions.ProtoReflect.Descriptor instead.
func (*Restrictions) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{3}
}
func (x *Restrictions) GetDisallowPausingReasons() []string {
if x != nil {
return x.DisallowPausingReasons
}
return nil
}
func (x *Restrictions) GetDisallowResumingReasons() []string {
if x != nil {
return x.DisallowResumingReasons
}
return nil
}
func (x *Restrictions) GetDisallowSeekingReasons() []string {
if x != nil {
return x.DisallowSeekingReasons
}
return nil
}
func (x *Restrictions) GetDisallowPeekingPrevReasons() []string {
if x != nil {
return x.DisallowPeekingPrevReasons
}
return nil
}
func (x *Restrictions) GetDisallowPeekingNextReasons() []string {
if x != nil {
return x.DisallowPeekingNextReasons
}
return nil
}
func (x *Restrictions) GetDisallowSkippingPrevReasons() []string {
if x != nil {
return x.DisallowSkippingPrevReasons
}
return nil
}
func (x *Restrictions) GetDisallowSkippingNextReasons() []string {
if x != nil {
return x.DisallowSkippingNextReasons
}
return nil
}
func (x *Restrictions) GetDisallowTogglingRepeatContextReasons() []string {
if x != nil {
return x.DisallowTogglingRepeatContextReasons
}
return nil
}
func (x *Restrictions) GetDisallowTogglingRepeatTrackReasons() []string {
if x != nil {
return x.DisallowTogglingRepeatTrackReasons
}
return nil
}
func (x *Restrictions) GetDisallowTogglingShuffleReasons() []string {
if x != nil {
return x.DisallowTogglingShuffleReasons
}
return nil
}
func (x *Restrictions) GetDisallowSetQueueReasons() []string {
if x != nil {
return x.DisallowSetQueueReasons
}
return nil
}
func (x *Restrictions) GetDisallowInterruptingPlaybackReasons() []string {
if x != nil {
return x.DisallowInterruptingPlaybackReasons
}
return nil
}
func (x *Restrictions) GetDisallowTransferringPlaybackReasons() []string {
if x != nil {
return x.DisallowTransferringPlaybackReasons
}
return nil
}
func (x *Restrictions) GetDisallowRemoteControlReasons() []string {
if x != nil {
return x.DisallowRemoteControlReasons
}
return nil
}
func (x *Restrictions) GetDisallowInsertingIntoNextTracksReasons() []string {
if x != nil {
return x.DisallowInsertingIntoNextTracksReasons
}
return nil
}
func (x *Restrictions) GetDisallowInsertingIntoContextTracksReasons() []string {
if x != nil {
return x.DisallowInsertingIntoContextTracksReasons
}
return nil
}
func (x *Restrictions) GetDisallowReorderingInNextTracksReasons() []string {
if x != nil {
return x.DisallowReorderingInNextTracksReasons
}
return nil
}
func (x *Restrictions) GetDisallowReorderingInContextTracksReasons() []string {
if x != nil {
return x.DisallowReorderingInContextTracksReasons
}
return nil
}
func (x *Restrictions) GetDisallowRemovingFromNextTracksReasons() []string {
if x != nil {
return x.DisallowRemovingFromNextTracksReasons
}
return nil
}
func (x *Restrictions) GetDisallowRemovingFromContextTracksReasons() []string {
if x != nil {
return x.DisallowRemovingFromContextTracksReasons
}
return nil
}
func (x *Restrictions) GetDisallowUpdatingContextReasons() []string {
if x != nil {
return x.DisallowUpdatingContextReasons
}
return nil
}
func (x *Restrictions) GetDisallowPlayingReasons() []string {
if x != nil {
return x.DisallowPlayingReasons
}
return nil
}
func (x *Restrictions) GetDisallowStoppingReasons() []string {
if x != nil {
return x.DisallowStoppingReasons
}
return nil
}
type PlayOrigin struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FeatureIdentifier string `protobuf:"bytes,1,opt,name=feature_identifier,json=featureIdentifier,proto3" json:"feature_identifier,omitempty"`
FeatureVersion string `protobuf:"bytes,2,opt,name=feature_version,json=featureVersion,proto3" json:"feature_version,omitempty"`
ViewUri string `protobuf:"bytes,3,opt,name=view_uri,json=viewUri,proto3" json:"view_uri,omitempty"`
ExternalReferrer string `protobuf:"bytes,4,opt,name=external_referrer,json=externalReferrer,proto3" json:"external_referrer,omitempty"`
ReferrerIdentifier string `protobuf:"bytes,5,opt,name=referrer_identifier,json=referrerIdentifier,proto3" json:"referrer_identifier,omitempty"`
DeviceIdentifier string `protobuf:"bytes,6,opt,name=device_identifier,json=deviceIdentifier,proto3" json:"device_identifier,omitempty"`
FeatureClasses []string `protobuf:"bytes,7,rep,name=feature_classes,json=featureClasses,proto3" json:"feature_classes,omitempty"`
}
func (x *PlayOrigin) Reset() {
*x = PlayOrigin{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlayOrigin) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlayOrigin) ProtoMessage() {}
func (x *PlayOrigin) ProtoReflect() protoreflect.Message {
mi := &file_player_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 PlayOrigin.ProtoReflect.Descriptor instead.
func (*PlayOrigin) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{4}
}
func (x *PlayOrigin) GetFeatureIdentifier() string {
if x != nil {
return x.FeatureIdentifier
}
return ""
}
func (x *PlayOrigin) GetFeatureVersion() string {
if x != nil {
return x.FeatureVersion
}
return ""
}
func (x *PlayOrigin) GetViewUri() string {
if x != nil {
return x.ViewUri
}
return ""
}
func (x *PlayOrigin) GetExternalReferrer() string {
if x != nil {
return x.ExternalReferrer
}
return ""
}
func (x *PlayOrigin) GetReferrerIdentifier() string {
if x != nil {
return x.ReferrerIdentifier
}
return ""
}
func (x *PlayOrigin) GetDeviceIdentifier() string {
if x != nil {
return x.DeviceIdentifier
}
return ""
}
func (x *PlayOrigin) GetFeatureClasses() []string {
if x != nil {
return x.FeatureClasses
}
return nil
}
type ContextPlayerOptions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ShufflingContext bool `protobuf:"varint,1,opt,name=shuffling_context,json=shufflingContext,proto3" json:"shuffling_context,omitempty"`
RepeatingContext bool `protobuf:"varint,2,opt,name=repeating_context,json=repeatingContext,proto3" json:"repeating_context,omitempty"`
RepeatingTrack bool `protobuf:"varint,3,opt,name=repeating_track,json=repeatingTrack,proto3" json:"repeating_track,omitempty"`
}
func (x *ContextPlayerOptions) Reset() {
*x = ContextPlayerOptions{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ContextPlayerOptions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ContextPlayerOptions) ProtoMessage() {}
func (x *ContextPlayerOptions) ProtoReflect() protoreflect.Message {
mi := &file_player_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 ContextPlayerOptions.ProtoReflect.Descriptor instead.
func (*ContextPlayerOptions) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{5}
}
func (x *ContextPlayerOptions) GetShufflingContext() bool {
if x != nil {
return x.ShufflingContext
}
return false
}
func (x *ContextPlayerOptions) GetRepeatingContext() bool {
if x != nil {
return x.RepeatingContext
}
return false
}
func (x *ContextPlayerOptions) GetRepeatingTrack() bool {
if x != nil {
return x.RepeatingTrack
}
return false
}
type Suppressions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Providers []string `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"`
}
func (x *Suppressions) Reset() {
*x = Suppressions{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Suppressions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Suppressions) ProtoMessage() {}
func (x *Suppressions) ProtoReflect() protoreflect.Message {
mi := &file_player_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 Suppressions.ProtoReflect.Descriptor instead.
func (*Suppressions) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{6}
}
func (x *Suppressions) GetProviders() []string {
if x != nil {
return x.Providers
}
return nil
}
type InstrumentationParams struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
InteractionIds []string `protobuf:"bytes,6,rep,name=interaction_ids,json=interactionIds,proto3" json:"interaction_ids,omitempty"`
PageInstanceIds []string `protobuf:"bytes,7,rep,name=page_instance_ids,json=pageInstanceIds,proto3" json:"page_instance_ids,omitempty"`
}
func (x *InstrumentationParams) Reset() {
*x = InstrumentationParams{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *InstrumentationParams) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*InstrumentationParams) ProtoMessage() {}
func (x *InstrumentationParams) ProtoReflect() protoreflect.Message {
mi := &file_player_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 InstrumentationParams.ProtoReflect.Descriptor instead.
func (*InstrumentationParams) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{7}
}
func (x *InstrumentationParams) GetInteractionIds() []string {
if x != nil {
return x.InteractionIds
}
return nil
}
func (x *InstrumentationParams) GetPageInstanceIds() []string {
if x != nil {
return x.PageInstanceIds
}
return nil
}
type Playback struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
PositionAsOfTimestamp int32 `protobuf:"varint,2,opt,name=position_as_of_timestamp,json=positionAsOfTimestamp,proto3" json:"position_as_of_timestamp,omitempty"`
PlaybackSpeed float64 `protobuf:"fixed64,3,opt,name=playback_speed,json=playbackSpeed,proto3" json:"playback_speed,omitempty"`
IsPaused bool `protobuf:"varint,4,opt,name=is_paused,json=isPaused,proto3" json:"is_paused,omitempty"`
CurrentTrack *ContextTrack `protobuf:"bytes,5,opt,name=current_track,json=currentTrack,proto3" json:"current_track,omitempty"`
}
func (x *Playback) Reset() {
*x = Playback{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Playback) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Playback) ProtoMessage() {}
func (x *Playback) ProtoReflect() protoreflect.Message {
mi := &file_player_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 Playback.ProtoReflect.Descriptor instead.
func (*Playback) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{8}
}
func (x *Playback) GetTimestamp() int64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *Playback) GetPositionAsOfTimestamp() int32 {
if x != nil {
return x.PositionAsOfTimestamp
}
return 0
}
func (x *Playback) GetPlaybackSpeed() float64 {
if x != nil {
return x.PlaybackSpeed
}
return 0
}
func (x *Playback) GetIsPaused() bool {
if x != nil {
return x.IsPaused
}
return false
}
func (x *Playback) GetCurrentTrack() *ContextTrack {
if x != nil {
return x.CurrentTrack
}
return nil
}
type Queue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tracks []*ContextTrack `protobuf:"bytes,1,rep,name=tracks,proto3" json:"tracks,omitempty"`
IsPlayingQueue bool `protobuf:"varint,2,opt,name=is_playing_queue,json=isPlayingQueue,proto3" json:"is_playing_queue,omitempty"`
}
func (x *Queue) Reset() {
*x = Queue{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Queue) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Queue) ProtoMessage() {}
func (x *Queue) ProtoReflect() protoreflect.Message {
mi := &file_player_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 Queue.ProtoReflect.Descriptor instead.
func (*Queue) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{9}
}
func (x *Queue) GetTracks() []*ContextTrack {
if x != nil {
return x.Tracks
}
return nil
}
func (x *Queue) GetIsPlayingQueue() bool {
if x != nil {
return x.IsPlayingQueue
}
return false
}
type Session struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PlayOrigin *PlayOrigin `protobuf:"bytes,1,opt,name=play_origin,json=playOrigin,proto3" json:"play_origin,omitempty"`
Context *Context `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"`
CurrentUid string `protobuf:"bytes,3,opt,name=current_uid,json=currentUid,proto3" json:"current_uid,omitempty"`
OptionOverrides *ContextPlayerOptionOverrides `protobuf:"bytes,4,opt,name=option_overrides,json=optionOverrides,proto3" json:"option_overrides,omitempty"`
Suppressions *Suppressions `protobuf:"bytes,5,opt,name=suppressions,proto3" json:"suppressions,omitempty"`
InstrumentationParams *InstrumentationParams `protobuf:"bytes,6,opt,name=instrumentation_params,json=instrumentationParams,proto3" json:"instrumentation_params,omitempty"`
}
func (x *Session) Reset() {
*x = Session{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Session) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Session) ProtoMessage() {}
func (x *Session) ProtoReflect() protoreflect.Message {
mi := &file_player_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 Session.ProtoReflect.Descriptor instead.
func (*Session) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{10}
}
func (x *Session) GetPlayOrigin() *PlayOrigin {
if x != nil {
return x.PlayOrigin
}
return nil
}
func (x *Session) GetContext() *Context {
if x != nil {
return x.Context
}
return nil
}
func (x *Session) GetCurrentUid() string {
if x != nil {
return x.CurrentUid
}
return ""
}
func (x *Session) GetOptionOverrides() *ContextPlayerOptionOverrides {
if x != nil {
return x.OptionOverrides
}
return nil
}
func (x *Session) GetSuppressions() *Suppressions {
if x != nil {
return x.Suppressions
}
return nil
}
func (x *Session) GetInstrumentationParams() *InstrumentationParams {
if x != nil {
return x.InstrumentationParams
}
return nil
}
type TransferState struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Options *ContextPlayerOptions `protobuf:"bytes,1,opt,name=options,proto3" json:"options,omitempty"`
Playback *Playback `protobuf:"bytes,2,opt,name=playback,proto3" json:"playback,omitempty"`
CurrentSession *Session `protobuf:"bytes,3,opt,name=current_session,json=currentSession,proto3" json:"current_session,omitempty"`
Queue *Queue `protobuf:"bytes,4,opt,name=queue,proto3" json:"queue,omitempty"`
}
func (x *TransferState) Reset() {
*x = TransferState{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TransferState) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TransferState) ProtoMessage() {}
func (x *TransferState) ProtoReflect() protoreflect.Message {
mi := &file_player_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 TransferState.ProtoReflect.Descriptor instead.
func (*TransferState) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{11}
}
func (x *TransferState) GetOptions() *ContextPlayerOptions {
if x != nil {
return x.Options
}
return nil
}
func (x *TransferState) GetPlayback() *Playback {
if x != nil {
return x.Playback
}
return nil
}
func (x *TransferState) GetCurrentSession() *Session {
if x != nil {
return x.CurrentSession
}
return nil
}
func (x *TransferState) GetQueue() *Queue {
if x != nil {
return x.Queue
}
return nil
}
type ContextTrack struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"`
Gid []byte `protobuf:"bytes,3,opt,name=gid,proto3" json:"gid,omitempty"`
Metadata map[string]string `protobuf:"bytes,4,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *ContextTrack) Reset() {
*x = ContextTrack{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ContextTrack) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ContextTrack) ProtoMessage() {}
func (x *ContextTrack) ProtoReflect() protoreflect.Message {
mi := &file_player_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 ContextTrack.ProtoReflect.Descriptor instead.
func (*ContextTrack) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{12}
}
func (x *ContextTrack) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *ContextTrack) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *ContextTrack) GetGid() []byte {
if x != nil {
return x.Gid
}
return nil
}
func (x *ContextTrack) GetMetadata() map[string]string {
if x != nil {
return x.Metadata
}
return nil
}
type ContextPlayerOptionOverrides struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ShufflingContext bool `protobuf:"varint,1,opt,name=shuffling_context,json=shufflingContext,proto3" json:"shuffling_context,omitempty"`
RepeatingContext bool `protobuf:"varint,2,opt,name=repeating_context,json=repeatingContext,proto3" json:"repeating_context,omitempty"`
RepeatingTrack bool `protobuf:"varint,3,opt,name=repeating_track,json=repeatingTrack,proto3" json:"repeating_track,omitempty"`
}
func (x *ContextPlayerOptionOverrides) Reset() {
*x = ContextPlayerOptionOverrides{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ContextPlayerOptionOverrides) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ContextPlayerOptionOverrides) ProtoMessage() {}
func (x *ContextPlayerOptionOverrides) ProtoReflect() protoreflect.Message {
mi := &file_player_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 ContextPlayerOptionOverrides.ProtoReflect.Descriptor instead.
func (*ContextPlayerOptionOverrides) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{13}
}
func (x *ContextPlayerOptionOverrides) GetShufflingContext() bool {
if x != nil {
return x.ShufflingContext
}
return false
}
func (x *ContextPlayerOptionOverrides) GetRepeatingContext() bool {
if x != nil {
return x.RepeatingContext
}
return false
}
func (x *ContextPlayerOptionOverrides) GetRepeatingTrack() bool {
if x != nil {
return x.RepeatingTrack
}
return false
}
type Context struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Restrictions *Restrictions `protobuf:"bytes,4,opt,name=restrictions,proto3" json:"restrictions,omitempty"`
Pages []*ContextPage `protobuf:"bytes,5,rep,name=pages,proto3" json:"pages,omitempty"`
Loading bool `protobuf:"varint,6,opt,name=loading,proto3" json:"loading,omitempty"`
}
func (x *Context) Reset() {
*x = Context{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Context) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Context) ProtoMessage() {}
func (x *Context) ProtoReflect() protoreflect.Message {
mi := &file_player_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 Context.ProtoReflect.Descriptor instead.
func (*Context) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{14}
}
func (x *Context) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *Context) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *Context) GetMetadata() map[string]string {
if x != nil {
return x.Metadata
}
return nil
}
func (x *Context) GetRestrictions() *Restrictions {
if x != nil {
return x.Restrictions
}
return nil
}
func (x *Context) GetPages() []*ContextPage {
if x != nil {
return x.Pages
}
return nil
}
func (x *Context) GetLoading() bool {
if x != nil {
return x.Loading
}
return false
}
type ContextPage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PageUrl string `protobuf:"bytes,1,opt,name=page_url,json=pageUrl,proto3" json:"page_url,omitempty"`
NextPageUrl string `protobuf:"bytes,2,opt,name=next_page_url,json=nextPageUrl,proto3" json:"next_page_url,omitempty"`
Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
Tracks []*ContextTrack `protobuf:"bytes,4,rep,name=tracks,proto3" json:"tracks,omitempty"`
Loading bool `protobuf:"varint,5,opt,name=loading,proto3" json:"loading,omitempty"`
}
func (x *ContextPage) Reset() {
*x = ContextPage{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ContextPage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ContextPage) ProtoMessage() {}
func (x *ContextPage) ProtoReflect() protoreflect.Message {
mi := &file_player_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ContextPage.ProtoReflect.Descriptor instead.
func (*ContextPage) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{15}
}
func (x *ContextPage) GetPageUrl() string {
if x != nil {
return x.PageUrl
}
return ""
}
func (x *ContextPage) GetNextPageUrl() string {
if x != nil {
return x.NextPageUrl
}
return ""
}
func (x *ContextPage) GetMetadata() map[string]string {
if x != nil {
return x.Metadata
}
return nil
}
func (x *ContextPage) GetTracks() []*ContextTrack {
if x != nil {
return x.Tracks
}
return nil
}
func (x *ContextPage) GetLoading() bool {
if x != nil {
return x.Loading
}
return false
}
type PlayerQueue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Revision string `protobuf:"bytes,1,opt,name=revision,proto3" json:"revision,omitempty"`
NextTracks []*ProvidedTrack `protobuf:"bytes,2,rep,name=next_tracks,json=nextTracks,proto3" json:"next_tracks,omitempty"`
PrevTracks []*ProvidedTrack `protobuf:"bytes,3,rep,name=prev_tracks,json=prevTracks,proto3" json:"prev_tracks,omitempty"`
Track *ProvidedTrack `protobuf:"bytes,4,opt,name=track,proto3" json:"track,omitempty"`
}
func (x *PlayerQueue) Reset() {
*x = PlayerQueue{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlayerQueue) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlayerQueue) ProtoMessage() {}
func (x *PlayerQueue) ProtoReflect() protoreflect.Message {
mi := &file_player_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PlayerQueue.ProtoReflect.Descriptor instead.
func (*PlayerQueue) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{16}
}
func (x *PlayerQueue) GetRevision() string {
if x != nil {
return x.Revision
}
return ""
}
func (x *PlayerQueue) GetNextTracks() []*ProvidedTrack {
if x != nil {
return x.NextTracks
}
return nil
}
func (x *PlayerQueue) GetPrevTracks() []*ProvidedTrack {
if x != nil {
return x.PrevTracks
}
return nil
}
func (x *PlayerQueue) GetTrack() *ProvidedTrack {
if x != nil {
return x.Track
}
return nil
}
type PlaybackQuality struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
BitrateLevel BitrateLevel `protobuf:"varint,1,opt,name=bitrate_level,json=bitrateLevel,proto3,enum=spotify.connectstate.BitrateLevel" json:"bitrate_level,omitempty"`
Strategy BitrateStrategy `protobuf:"varint,2,opt,name=strategy,proto3,enum=spotify.connectstate.BitrateStrategy" json:"strategy,omitempty"`
TargetBitrateLevel BitrateLevel `protobuf:"varint,3,opt,name=target_bitrate_level,json=targetBitrateLevel,proto3,enum=spotify.connectstate.BitrateLevel" json:"target_bitrate_level,omitempty"`
TargetBitrateAvailable bool `protobuf:"varint,4,opt,name=target_bitrate_available,json=targetBitrateAvailable,proto3" json:"target_bitrate_available,omitempty"`
HifiStatus HiFiStatus `protobuf:"varint,5,opt,name=hifi_status,json=hifiStatus,proto3,enum=spotify.connectstate.HiFiStatus" json:"hifi_status,omitempty"`
}
func (x *PlaybackQuality) Reset() {
*x = PlaybackQuality{}
if protoimpl.UnsafeEnabled {
mi := &file_player_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PlaybackQuality) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PlaybackQuality) ProtoMessage() {}
func (x *PlaybackQuality) ProtoReflect() protoreflect.Message {
mi := &file_player_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PlaybackQuality.ProtoReflect.Descriptor instead.
func (*PlaybackQuality) Descriptor() ([]byte, []int) {
return file_player_proto_rawDescGZIP(), []int{17}
}
func (x *PlaybackQuality) GetBitrateLevel() BitrateLevel {
if x != nil {
return x.BitrateLevel
}
return BitrateLevel_unknown_bitrate_level
}
func (x *PlaybackQuality) GetStrategy() BitrateStrategy {
if x != nil {
return x.Strategy
}
return BitrateStrategy_unknown_strategy
}
func (x *PlaybackQuality) GetTargetBitrateLevel() BitrateLevel {
if x != nil {
return x.TargetBitrateLevel
}
return BitrateLevel_unknown_bitrate_level
}
func (x *PlaybackQuality) GetTargetBitrateAvailable() bool {
if x != nil {
return x.TargetBitrateAvailable
}
return false
}
func (x *PlaybackQuality) GetHifiStatus() HiFiStatus {
if x != nil {
return x.HifiStatus
}
return HiFiStatus_none
}
var File_player_proto protoreflect.FileDescriptor
var file_player_proto_rawDesc = []byte{
0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73,
0x74, 0x61, 0x74, 0x65, 0x22, 0x81, 0x0e, 0x0a, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53,
0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x75, 0x72,
0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
0x55, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x75,
0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
0x74, 0x55, 0x72, 0x6c, 0x12, 0x55, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f,
0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52,
0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x70,
0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x20, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x69, 0x67,
0x69, 0x6e, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x38,
0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73,
0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65,
0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63,
0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66,
0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50,
0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x05, 0x74, 0x72,
0x61, 0x63, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f,
0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61,
0x63, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b,
0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x70, 0x6c,
0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x70,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x70,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x4f, 0x66, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x12,
0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c,
0x69, 0x73, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12,
0x2e, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x69,
0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73,
0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x12,
0x44, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x2a, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50,
0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a,
0x0c, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f,
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x72,
0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x74, 0x72,
0x61, 0x63, 0x6b, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x6f,
0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74,
0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52,
0x0a, 0x70, 0x72, 0x65, 0x76, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6e,
0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x23, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64,
0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x73, 0x12, 0x61, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x70,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43,
0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x12, 0x58, 0x0a, 0x0d, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x70,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50,
0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x0c, 0x70, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d,
0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a,
0x0e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18,
0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x76, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x1a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x55, 0x72, 0x69, 0x12,
0x3d, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x23, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64,
0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x3b,
0x0a, 0x06, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23,
0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x54, 0x72,
0x61, 0x63, 0x6b, 0x52, 0x06, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61,
0x75, 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x23,
0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x1e, 0x20,
0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x1f,
0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74,
0x65, 0x12, 0x50, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x71, 0x75,
0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x70,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69,
0x74, 0x79, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x61, 0x6c,
0x69, 0x74, 0x79, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65,
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x50, 0x61, 0x67, 0x65, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xed, 0x03, 0x0a, 0x0d, 0x50, 0x72, 0x6f,
0x76, 0x69, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03,
0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x4d,
0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x31, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64,
0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a,
0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65,
0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x46, 0x0a,
0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f,
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72,
0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x5f, 0x75,
0x72, 0x69, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x55,
0x72, 0x69, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x69,
0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a,
0x0a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x55, 0x72, 0x69, 0x12, 0x2d, 0x0a, 0x12,
0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x64,
0x65, 0x64, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x55, 0x6e, 0x64, 0x65, 0x63, 0x69, 0x64, 0x65, 0x64, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x22, 0xec, 0x0d, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
0x70, 0x61, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50,
0x61, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a,
0x19, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x69,
0x6e, 0x67, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x69,
0x6e, 0x67, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x64, 0x69, 0x73,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x73,
0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
0x70, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x61,
0x73, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x64, 0x69, 0x73, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x76, 0x52,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x5f, 0x70, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f,
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x4e, 0x65,
0x78, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x64, 0x69, 0x73,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x70,
0x72, 0x65, 0x76, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
0x09, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x6b, 0x69, 0x70, 0x70,
0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x76, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x43,
0x0a, 0x1e, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70,
0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73,
0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
0x53, 0x6b, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x61, 0x73,
0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x28, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
0x74, 0x6f, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x5f,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18,
0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54,
0x6f, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x26, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67,
0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x22, 0x64, 0x69, 0x73,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70,
0x65, 0x61, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12,
0x49, 0x0a, 0x21, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x6f, 0x67, 0x67,
0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x61,
0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e, 0x64, 0x69, 0x73, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x75, 0x66,
0x66, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x64, 0x69,
0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65,
0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17,
0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x65, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65,
0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x26, 0x64, 0x69, 0x73, 0x61, 0x6c,
0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6e, 0x67,
0x5f, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x23, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61,
0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x26,
0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
0x72, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x72,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x23, 0x64, 0x69,
0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x69,
0x6e, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x73, 0x12, 0x45, 0x0a, 0x1f, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65,
0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x61,
0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x64, 0x69, 0x73, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
0x6c, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x5b, 0x0a, 0x2b, 0x64, 0x69, 0x73, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69,
0x6e, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f,
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x26, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67,
0x49, 0x6e, 0x74, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x6f,
0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f,
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x29, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67,
0x49, 0x6e, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x2a, 0x64, 0x69, 0x73, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f,
0x69, 0x6e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72,
0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x25, 0x64, 0x69,
0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67,
0x49, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x73,
0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x2d, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x6f,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61,
0x73, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x28, 0x64, 0x69, 0x73, 0x61,
0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e,
0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x61,
0x73, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x2a, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e,
0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f,
0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x25, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x65,
0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12,
0x5f, 0x0a, 0x2d, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x6d, 0x6f,
0x76, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73,
0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x28, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
0x52, 0x65, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73,
0x12, 0x49, 0x0a, 0x21, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x64,
0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e, 0x64, 0x69, 0x73,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f,
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x64,
0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x52, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f,
0x6e, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
0x73, 0x22, 0xb3, 0x02, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e,
0x12, 0x2d, 0x0a, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x65,
0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
0x27, 0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77,
0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77,
0x55, 0x72, 0x69, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,
0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72,
0x12, 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x65,
0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72,
0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65,
0x72, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e,
0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x27,
0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65,
0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x12, 0x2b, 0x0a, 0x11, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x68, 0x75,
0x66, 0x66, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2b, 0x0a,
0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65,
0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65,
0x70, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x72,
0x61, 0x63, 0x6b, 0x22, 0x2c, 0x0a, 0x0c, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x73, 0x22, 0x6c, 0x0a, 0x15, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e,
0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74,
0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x73, 0x22,
0xee, 0x01, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09,
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x18, 0x70, 0x6f,
0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x70, 0x6f,
0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x4f, 0x66, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x5f,
0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x70, 0x6c, 0x61,
0x79, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73,
0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69,
0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65,
0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61,
0x63, 0x6b, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x22, 0x6d, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65,
0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x06, 0x74,
0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x79,
0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0e, 0x69, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, 0x75, 0x65, 0x22,
0xb1, 0x03, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x70,
0x6c, 0x61, 0x79, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x20, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x69, 0x67,
0x69, 0x6e, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x37,
0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1d, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65,
0x6e, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75,
0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x69, 0x64, 0x12, 0x5d, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65,
0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76,
0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x72,
0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73,
0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x73, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x62, 0x0a, 0x16, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x2b, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x15, 0x69, 0x6e,
0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x70,
0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73,
0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x08, 0x70,
0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65,
0x6e, 0x74, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1d, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52,
0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
0x31, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x05, 0x71, 0x75, 0x65,
0x75, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72,
0x61, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x69, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x67, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x70,
0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61,
0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x2e,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64,
0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0xa1, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72,
0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x69,
0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x10, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65,
0x78, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f,
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72,
0x65, 0x70, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12,
0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74,
0x69, 0x6e, 0x67, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x22, 0xce, 0x02, 0x0a, 0x07, 0x43, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x70, 0x6f,
0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74,
0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x12, 0x46, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66,
0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52,
0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x73,
0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x61, 0x67,
0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69,
0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x05, 0x70, 0x61, 0x67,
0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20,
0x01, 0x28, 0x08, 0x52, 0x07, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3b, 0x0a, 0x0d,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x02, 0x0a, 0x0b, 0x43, 0x6f,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x61, 0x67,
0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x67,
0x65, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67,
0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x78,
0x74, 0x50, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x4b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x70, 0x6f,
0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74,
0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x65,
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18,
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e,
0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b,
0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01,
0x28, 0x08, 0x52, 0x07, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x50, 0x6c, 0x61,
0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x70, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65,
0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x0a,
0x6e, 0x65, 0x78, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x70, 0x72,
0x65, 0x76, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x23, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73,
0x12, 0x39, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x23, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x54,
0x72, 0x61, 0x63, 0x6b, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x22, 0xf0, 0x02, 0x0a, 0x0f,
0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12,
0x47, 0x0a, 0x0d, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79,
0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x42, 0x69,
0x74, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0c, 0x62, 0x69, 0x74, 0x72,
0x61, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x61,
0x74, 0x65, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x70, 0x6f,
0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74,
0x65, 0x2e, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67,
0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x54, 0x0a, 0x14, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x70, 0x6f, 0x74,
0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65,
0x2e, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x12, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x69, 0x74, 0x72,
0x61, 0x74, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20,
0x01, 0x28, 0x08, 0x52, 0x16, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x69, 0x74, 0x72, 0x61,
0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x68,
0x69, 0x66, 0x69, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x20, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x46, 0x69, 0x53, 0x74, 0x61, 0x74,
0x75, 0x73, 0x52, 0x0a, 0x68, 0x69, 0x66, 0x69, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x61,
0x0a, 0x0c, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19,
0x0a, 0x15, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74,
0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x6f, 0x77,
0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x02, 0x12, 0x08,
0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x76, 0x65, 0x72, 0x79,
0x5f, 0x68, 0x69, 0x67, 0x68, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x68, 0x69, 0x66, 0x69, 0x10,
0x05, 0x2a, 0x83, 0x01, 0x0a, 0x0f, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72,
0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e,
0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x62,
0x65, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x13,
0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x65,
0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x64, 0x5f,
0x66, 0x69, 0x6c, 0x65, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x64,
0x5f, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x5f, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x05, 0x2a, 0x27, 0x0a, 0x0a, 0x48, 0x69, 0x46, 0x69, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12,
0x07, 0x0a, 0x03, 0x6f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x6f, 0x6e, 0x10, 0x02,
0x42, 0x45, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e,
0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x48, 0x02, 0x5a, 0x21, 0x74, 0x75, 0x78, 0x70, 0x61, 0x2e, 0x69, 0x6e, 0x2f, 0x61,
0x2f, 0x67, 0x6f, 0x70, 0x6c, 0x61, 0x79, 0x64, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x73, 0x70, 0x6f,
0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_player_proto_rawDescOnce sync.Once
file_player_proto_rawDescData = file_player_proto_rawDesc
)
func file_player_proto_rawDescGZIP() []byte {
file_player_proto_rawDescOnce.Do(func() {
file_player_proto_rawDescData = protoimpl.X.CompressGZIP(file_player_proto_rawDescData)
})
return file_player_proto_rawDescData
}
var file_player_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_player_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_player_proto_goTypes = []interface{}{
(BitrateLevel)(0), // 0: spotify.connectstate.BitrateLevel
(BitrateStrategy)(0), // 1: spotify.connectstate.BitrateStrategy
(HiFiStatus)(0), // 2: spotify.connectstate.HiFiStatus
(*PlayerState)(nil), // 3: spotify.connectstate.PlayerState
(*ProvidedTrack)(nil), // 4: spotify.connectstate.ProvidedTrack
(*ContextIndex)(nil), // 5: spotify.connectstate.ContextIndex
(*Restrictions)(nil), // 6: spotify.connectstate.Restrictions
(*PlayOrigin)(nil), // 7: spotify.connectstate.PlayOrigin
(*ContextPlayerOptions)(nil), // 8: spotify.connectstate.ContextPlayerOptions
(*Suppressions)(nil), // 9: spotify.connectstate.Suppressions
(*InstrumentationParams)(nil), // 10: spotify.connectstate.InstrumentationParams
(*Playback)(nil), // 11: spotify.connectstate.Playback
(*Queue)(nil), // 12: spotify.connectstate.Queue
(*Session)(nil), // 13: spotify.connectstate.Session
(*TransferState)(nil), // 14: spotify.connectstate.TransferState
(*ContextTrack)(nil), // 15: spotify.connectstate.ContextTrack
(*ContextPlayerOptionOverrides)(nil), // 16: spotify.connectstate.ContextPlayerOptionOverrides
(*Context)(nil), // 17: spotify.connectstate.Context
(*ContextPage)(nil), // 18: spotify.connectstate.ContextPage
(*PlayerQueue)(nil), // 19: spotify.connectstate.PlayerQueue
(*PlaybackQuality)(nil), // 20: spotify.connectstate.PlaybackQuality
nil, // 21: spotify.connectstate.PlayerState.ContextMetadataEntry
nil, // 22: spotify.connectstate.PlayerState.PageMetadataEntry
nil, // 23: spotify.connectstate.ProvidedTrack.MetadataEntry
nil, // 24: spotify.connectstate.ContextTrack.MetadataEntry
nil, // 25: spotify.connectstate.Context.MetadataEntry
nil, // 26: spotify.connectstate.ContextPage.MetadataEntry
}
var file_player_proto_depIdxs = []int32{
6, // 0: spotify.connectstate.PlayerState.context_restrictions:type_name -> spotify.connectstate.Restrictions
7, // 1: spotify.connectstate.PlayerState.play_origin:type_name -> spotify.connectstate.PlayOrigin
5, // 2: spotify.connectstate.PlayerState.index:type_name -> spotify.connectstate.ContextIndex
4, // 3: spotify.connectstate.PlayerState.track:type_name -> spotify.connectstate.ProvidedTrack
8, // 4: spotify.connectstate.PlayerState.options:type_name -> spotify.connectstate.ContextPlayerOptions
6, // 5: spotify.connectstate.PlayerState.restrictions:type_name -> spotify.connectstate.Restrictions
9, // 6: spotify.connectstate.PlayerState.suppressions:type_name -> spotify.connectstate.Suppressions
4, // 7: spotify.connectstate.PlayerState.prev_tracks:type_name -> spotify.connectstate.ProvidedTrack
4, // 8: spotify.connectstate.PlayerState.next_tracks:type_name -> spotify.connectstate.ProvidedTrack
21, // 9: spotify.connectstate.PlayerState.context_metadata:type_name -> spotify.connectstate.PlayerState.ContextMetadataEntry
22, // 10: spotify.connectstate.PlayerState.page_metadata:type_name -> spotify.connectstate.PlayerState.PageMetadataEntry
4, // 11: spotify.connectstate.PlayerState.reverse:type_name -> spotify.connectstate.ProvidedTrack
4, // 12: spotify.connectstate.PlayerState.future:type_name -> spotify.connectstate.ProvidedTrack
20, // 13: spotify.connectstate.PlayerState.playback_quality:type_name -> spotify.connectstate.PlaybackQuality
23, // 14: spotify.connectstate.ProvidedTrack.metadata:type_name -> spotify.connectstate.ProvidedTrack.MetadataEntry
6, // 15: spotify.connectstate.ProvidedTrack.restrictions:type_name -> spotify.connectstate.Restrictions
15, // 16: spotify.connectstate.Playback.current_track:type_name -> spotify.connectstate.ContextTrack
15, // 17: spotify.connectstate.Queue.tracks:type_name -> spotify.connectstate.ContextTrack
7, // 18: spotify.connectstate.Session.play_origin:type_name -> spotify.connectstate.PlayOrigin
17, // 19: spotify.connectstate.Session.context:type_name -> spotify.connectstate.Context
16, // 20: spotify.connectstate.Session.option_overrides:type_name -> spotify.connectstate.ContextPlayerOptionOverrides
9, // 21: spotify.connectstate.Session.suppressions:type_name -> spotify.connectstate.Suppressions
10, // 22: spotify.connectstate.Session.instrumentation_params:type_name -> spotify.connectstate.InstrumentationParams
8, // 23: spotify.connectstate.TransferState.options:type_name -> spotify.connectstate.ContextPlayerOptions
11, // 24: spotify.connectstate.TransferState.playback:type_name -> spotify.connectstate.Playback
13, // 25: spotify.connectstate.TransferState.current_session:type_name -> spotify.connectstate.Session
12, // 26: spotify.connectstate.TransferState.queue:type_name -> spotify.connectstate.Queue
24, // 27: spotify.connectstate.ContextTrack.metadata:type_name -> spotify.connectstate.ContextTrack.MetadataEntry
25, // 28: spotify.connectstate.Context.metadata:type_name -> spotify.connectstate.Context.MetadataEntry
6, // 29: spotify.connectstate.Context.restrictions:type_name -> spotify.connectstate.Restrictions
18, // 30: spotify.connectstate.Context.pages:type_name -> spotify.connectstate.ContextPage
26, // 31: spotify.connectstate.ContextPage.metadata:type_name -> spotify.connectstate.ContextPage.MetadataEntry
15, // 32: spotify.connectstate.ContextPage.tracks:type_name -> spotify.connectstate.ContextTrack
4, // 33: spotify.connectstate.PlayerQueue.next_tracks:type_name -> spotify.connectstate.ProvidedTrack
4, // 34: spotify.connectstate.PlayerQueue.prev_tracks:type_name -> spotify.connectstate.ProvidedTrack
4, // 35: spotify.connectstate.PlayerQueue.track:type_name -> spotify.connectstate.ProvidedTrack
0, // 36: spotify.connectstate.PlaybackQuality.bitrate_level:type_name -> spotify.connectstate.BitrateLevel
1, // 37: spotify.connectstate.PlaybackQuality.strategy:type_name -> spotify.connectstate.BitrateStrategy
0, // 38: spotify.connectstate.PlaybackQuality.target_bitrate_level:type_name -> spotify.connectstate.BitrateLevel
2, // 39: spotify.connectstate.PlaybackQuality.hifi_status:type_name -> spotify.connectstate.HiFiStatus
40, // [40:40] is the sub-list for method output_type
40, // [40:40] is the sub-list for method input_type
40, // [40:40] is the sub-list for extension type_name
40, // [40:40] is the sub-list for extension extendee
0, // [0:40] is the sub-list for field type_name
}
func init() { file_player_proto_init() }
func file_player_proto_init() {
if File_player_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_player_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlayerState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ProvidedTrack); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ContextIndex); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Restrictions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlayOrigin); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ContextPlayerOptions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Suppressions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*InstrumentationParams); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Playback); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Queue); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Session); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TransferState); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ContextTrack); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ContextPlayerOptionOverrides); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Context); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ContextPage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlayerQueue); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_player_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PlaybackQuality); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_player_proto_rawDesc,
NumEnums: 3,
NumMessages: 24,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_player_proto_goTypes,
DependencyIndexes: file_player_proto_depIdxs,
EnumInfos: file_player_proto_enumTypes,
MessageInfos: file_player_proto_msgTypes,
}.Build()
File_player_proto = out.File
file_player_proto_rawDesc = nil
file_player_proto_goTypes = nil
file_player_proto_depIdxs = nil
}