diff --git a/cmd/livepeer/livepeer.go b/cmd/livepeer/livepeer.go index 030d897957..b25472f7fa 100755 --- a/cmd/livepeer/livepeer.go +++ b/cmd/livepeer/livepeer.go @@ -127,6 +127,7 @@ func parseLivepeerConfig() starter.LivepeerConfig { cfg.OrchAddr = flag.String("orchAddr", *cfg.OrchAddr, "Comma-separated list of orchestrators to connect to") cfg.OrchWebhookURL = flag.String("orchWebhookUrl", *cfg.OrchWebhookURL, "Orchestrator discovery callback URL") cfg.OrchBlacklist = flag.String("orchBlocklist", "", "Comma-separated list of blocklisted orchestrators") + cfg.OrchMinLivepeerVersion = flag.String("orchMinLivepeerVersion", *cfg.OrchMinLivepeerVersion, "Minimal go-livepeer version orchestrator should have to be selected") cfg.SelectRandWeight = flag.Float64("selectRandFreq", *cfg.SelectRandWeight, "Weight of the random factor in the orchestrator selection algorithm") cfg.SelectStakeWeight = flag.Float64("selectStakeWeight", *cfg.SelectStakeWeight, "Weight of the stake factor in the orchestrator selection algorithm") cfg.SelectPriceWeight = flag.Float64("selectPriceWeight", *cfg.SelectPriceWeight, "Weight of the price factor in the orchestrator selection algorithm") diff --git a/cmd/livepeer/starter/starter.go b/cmd/livepeer/starter/starter.go index f9296abfa6..84ff08c330 100755 --- a/cmd/livepeer/starter/starter.go +++ b/cmd/livepeer/starter/starter.go @@ -144,6 +144,7 @@ type LivepeerConfig struct { AuthWebhookURL *string OrchWebhookURL *string OrchBlacklist *string + OrchMinLivepeerVersion *string TestOrchAvail *bool } @@ -230,6 +231,7 @@ func DefaultLivepeerConfig() LivepeerConfig { // API defaultAuthWebhookURL := "" defaultOrchWebhookURL := "" + defaultMinLivepeerVersion := "" // Flags defaultTestOrchAvail := true @@ -314,8 +316,9 @@ func DefaultLivepeerConfig() LivepeerConfig { FVfailGsKey: &defaultFVfailGsKey, // API - AuthWebhookURL: &defaultAuthWebhookURL, - OrchWebhookURL: &defaultOrchWebhookURL, + AuthWebhookURL: &defaultAuthWebhookURL, + OrchWebhookURL: &defaultOrchWebhookURL, + OrchMinLivepeerVersion: &defaultMinLivepeerVersion, // Flags TestOrchAvail: &defaultTestOrchAvail, @@ -1169,6 +1172,9 @@ func StartLivepeer(ctx context.Context, cfg LivepeerConfig) { } n.Capabilities = core.NewCapabilities(transcoderCaps, core.MandatoryOCapabilities()) + if cfg.OrchMinLivepeerVersion != nil { + n.Capabilities.SetMinVersionConstraint(*cfg.OrchMinLivepeerVersion) + } if drivers.NodeStorage == nil { // base URI will be empty for broadcasters; that's OK diff --git a/core/capabilities.go b/core/capabilities.go index 9d54c41e16..7bd4f00f5f 100644 --- a/core/capabilities.go +++ b/core/capabilities.go @@ -3,9 +3,10 @@ package core import ( "errors" "fmt" - "sync" + "github.com/Masterminds/semver/v3" + "github.com/golang/glog" "github.com/livepeer/go-livepeer/net" "github.com/livepeer/go-tools/drivers" "github.com/livepeer/lpms/ffmpeg" @@ -13,10 +14,13 @@ import ( type Capability int type CapabilityString []uint64 -type Constraints struct{} +type Constraints struct { + minVersion string +} type Capabilities struct { bitstring CapabilityString mandatories CapabilityString + version string constraints Constraints capacities map[Capability]int mutex sync.Mutex @@ -316,6 +320,34 @@ func JobCapabilities(params *StreamParameters, segPar *SegmentParameters) (*Capa return &Capabilities{bitstring: NewCapabilityString(capList)}, nil } +func (bcast *Capabilities) LivepeerVersionCompatibleWith(orch *net.Capabilities) bool { + if bcast == nil || orch == nil || bcast.constraints.minVersion == "" { + // should not happen, but just in case, return true by default + return true + } + if orch.Version == "" || orch.Version == "undefined" { + // Orchestrator/Transcoder version is not set, so it's incompatible + return false + } + + minVer, err := semver.NewVersion(bcast.constraints.minVersion) + if err != nil { + glog.Warningf("error while parsing minVersion: %v", err) + return true + } + ver, err := semver.NewVersion(orch.Version) + if err != nil { + glog.Warningf("error while parsing version: %v", err) + return false + } + + // Ignore prerelease versions as in go-livepeer we actually define post-release suffixes + minVerNoSuffix, _ := minVer.SetPrerelease("") + verNoSuffix, _ := ver.SetPrerelease("") + + return !verNoSuffix.LessThan(&minVerNoSuffix) +} + func (bcast *Capabilities) CompatibleWith(orch *net.Capabilities) bool { // Ensure bcast and orch are compatible with one another. @@ -325,6 +357,9 @@ func (bcast *Capabilities) CompatibleWith(orch *net.Capabilities) bool { // cf. common.CapabilityComparator return false } + if !bcast.LivepeerVersionCompatibleWith(orch) { + return false + } // For now, check this: // ( orch.mandatories AND bcast.bitstring ) == orch.mandatories && @@ -346,7 +381,7 @@ func (c *Capabilities) ToNetCapabilities() *net.Capabilities { } c.mutex.Lock() defer c.mutex.Unlock() - netCaps := &net.Capabilities{Bitstring: c.bitstring, Mandatories: c.mandatories, Capacities: make(map[uint32]uint32)} + netCaps := &net.Capabilities{Bitstring: c.bitstring, Mandatories: c.mandatories, Version: c.version, Capacities: make(map[uint32]uint32), Constraints: &net.Capabilities_Constraints{MinVersion: c.constraints.minVersion}} for capability, capacity := range c.capacities { netCaps.Capacities[uint32(capability)] = uint32(capacity) } @@ -361,6 +396,8 @@ func CapabilitiesFromNetCapabilities(caps *net.Capabilities) *Capabilities { bitstring: caps.Bitstring, mandatories: caps.Mandatories, capacities: make(map[Capability]int), + version: caps.Version, + constraints: Constraints{minVersion: caps.Constraints.GetMinVersion()}, } if caps.Capacities == nil || len(caps.Capacities) == 0 { // build capacities map if not present (struct received from previous versions) @@ -381,7 +418,7 @@ func CapabilitiesFromNetCapabilities(caps *net.Capabilities) *Capabilities { } func NewCapabilities(caps []Capability, m []Capability) *Capabilities { - c := &Capabilities{capacities: make(map[Capability]int)} + c := &Capabilities{capacities: make(map[Capability]int), version: LivepeerVersion} if len(caps) > 0 { c.bitstring = NewCapabilityString(caps) // initialize capacities to 1 by default, mandatory capabilities doesn't have capacities @@ -567,3 +604,16 @@ func (bcast *Capabilities) LegacyOnly() bool { } return bcast.bitstring.CompatibleWith(legacyCapabilityString) } + +func (bcast *Capabilities) SetMinVersionConstraint(minVersionConstraint string) { + if bcast != nil { + bcast.constraints.minVersion = minVersionConstraint + } +} + +func (bcast *Capabilities) MinVersionConstraint() string { + if bcast != nil { + return bcast.constraints.minVersion + } + return "" +} diff --git a/core/capabilities_test.go b/core/capabilities_test.go index c9c1ee319f..b165a3d9ca 100644 --- a/core/capabilities_test.go +++ b/core/capabilities_test.go @@ -331,6 +331,20 @@ func TestCapability_CompatibleWithNetCap(t *testing.T) { orch = NewCapabilities(nil, nil) bcast = NewCapabilities(nil, []Capability{1}) assert.True(bcast.CompatibleWith(orch.ToNetCapabilities())) + + // broadcaster is not compatible with orchestrator - old O's version + orch = NewCapabilities(nil, nil) + bcast = NewCapabilities(nil, nil) + bcast.constraints.minVersion = "0.4.1" + orch.version = "0.4.0" + assert.False(bcast.CompatibleWith(orch.ToNetCapabilities())) + + // broadcaster is not compatible with orchestrator - the same version + orch = NewCapabilities(nil, nil) + bcast = NewCapabilities(nil, nil) + bcast.constraints.minVersion = "0.4.1" + orch.version = "0.4.1" + assert.True(bcast.CompatibleWith(orch.ToNetCapabilities())) } func TestCapability_RoundTrip_Net(t *testing.T) { @@ -474,3 +488,92 @@ func TestCapabilities_LegacyCheck(t *testing.T) { assert.Len(legacyCapabilities, legacyLen) // sanity check no modifications } + +func TestLiveeerVersionCompatibleWith(t *testing.T) { + tests := []struct { + name string + broadcasterMinVersion string + transcoderVersion string + expected bool + }{ + { + name: "broadcaster required version is the same as the transcoder version", + broadcasterMinVersion: "0.4.1", + transcoderVersion: "0.4.1", + expected: true, + }, + { + name: "broadcaster required version is less than the transcoder version", + broadcasterMinVersion: "0.4.0", + transcoderVersion: "0.4.1", + expected: true, + }, + { + name: "broadcaster required version is more than the transcoder version", + broadcasterMinVersion: "0.4.2", + transcoderVersion: "0.4.1", + expected: false, + }, + { + name: "broadcaster required version is the same as the transcoder dirty version", + broadcasterMinVersion: "0.4.1", + transcoderVersion: "0.4.1-b3278dce-dirty", + expected: true, + }, + { + name: "broadcaster required version is before the transcoder dirty version", + broadcasterMinVersion: "0.4.0", + transcoderVersion: "0.4.1-b3278dce-dirty", + expected: true, + }, + { + name: "broadcaster required version is after the transcoder dirty version", + broadcasterMinVersion: "0.4.2", + transcoderVersion: "0.4.1-b3278dce-dirty", + expected: false, + }, + { + name: "broadcaster required version is empty", + broadcasterMinVersion: "", + transcoderVersion: "0.4.1", + expected: true, + }, + { + name: "both versions are undefined", + broadcasterMinVersion: "", + transcoderVersion: "", + expected: true, + }, + { + name: "transcoder version is empty", + broadcasterMinVersion: "0.4.0", + transcoderVersion: "", + expected: false, + }, + { + name: "transcoder version is undefined", + broadcasterMinVersion: "0.4.0", + transcoderVersion: "undefined", + expected: false, + }, + { + name: "unparsable broadcaster's min version", + broadcasterMinVersion: "nonparsablesemversion", + transcoderVersion: "0.4.1", + expected: true, + }, + { + name: "unparsable transcoder's version", + broadcasterMinVersion: "0.4.1", + transcoderVersion: "nonparsablesemversion", + expected: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + bCapabilities := &Capabilities{constraints: Constraints{minVersion: tt.broadcasterMinVersion}} + tCapabilities := &Capabilities{version: tt.transcoderVersion} + assert.Equal(t, tt.expected, bCapabilities.LivepeerVersionCompatibleWith(tCapabilities.ToNetCapabilities())) + }) + } +} diff --git a/core/livepeernode.go b/core/livepeernode.go index f4741aae93..19839a185b 100644 --- a/core/livepeernode.go +++ b/core/livepeernode.go @@ -108,7 +108,7 @@ func NewLivepeerNode(e eth.LivepeerEthClient, wd string, dbh *common.DB) (*Livep AutoAdjustPrice: true, SegmentChans: make(map[ManifestID]SegmentChan), segmentMutex: &sync.RWMutex{}, - Capabilities: &Capabilities{capacities: map[Capability]int{}}, + Capabilities: &Capabilities{capacities: map[Capability]int{}, version: LivepeerVersion}, priceInfo: make(map[string]*AutoConvertedPrice), StorageConfigs: make(map[string]*transcodeConfig), storageMutex: &sync.RWMutex{}, diff --git a/core/orch_test.go b/core/orch_test.go index dcc8a6c2d9..72aa9cb8bb 100644 --- a/core/orch_test.go +++ b/core/orch_test.go @@ -245,7 +245,10 @@ func TestSelectTranscoder(t *testing.T) { strm := &StubTranscoderServer{manager: m, WithholdResults: false} strm2 := &StubTranscoderServer{manager: m} + LivepeerVersion = "0.4.1" capabilities := NewCapabilities(DefaultCapabilities(), []Capability{}) + LivepeerVersion = "undefined" + richCapabilities := NewCapabilities(append(DefaultCapabilities(), Capability_HEVC_Encode), []Capability{}) allCapabilities := NewCapabilities(append(DefaultCapabilities(), OptionalCapabilities()...), []Capability{}) @@ -259,7 +262,7 @@ func TestSelectTranscoder(t *testing.T) { go func() { m.Manage(strm, 1, capabilities.ToNetCapabilities()) }() time.Sleep(1 * time.Millisecond) // allow time for first stream to register go func() { m.Manage(strm2, 1, richCapabilities.ToNetCapabilities()); wg.Done() }() - time.Sleep(1 * time.Millisecond) // allow time for second stream to register + time.Sleep(1 * time.Millisecond) // allow time for second stream to register e for third stream to register assert.NotNil(m.liveTranscoders[strm]) assert.NotNil(m.liveTranscoders[strm2]) @@ -341,6 +344,20 @@ func TestSelectTranscoder(t *testing.T) { assert.Equal(1, t1.load) m.completeStreamSession(testSessionId) assert.Equal(0, t1.load) + + // assert one transcoder with the correct Livepeer version is selected + minVersionCapabilities := NewCapabilities(DefaultCapabilities(), []Capability{}) + minVersionCapabilities.SetMinVersionConstraint("0.4.0") + currentTranscoder, err = m.selectTranscoder(testSessionId, minVersionCapabilities) + assert.Nil(err) + m.completeStreamSession(testSessionId) + + // assert no transcoders available for min version higher than any transcoder + minVersionHighCapabilities := NewCapabilities(DefaultCapabilities(), []Capability{}) + minVersionHighCapabilities.SetMinVersionConstraint("0.4.2") + currentTranscoder, err = m.selectTranscoder(testSessionId, minVersionHighCapabilities) + assert.NotNil(err) + m.completeStreamSession(testSessionId) } func TestCompleteStreamSession(t *testing.T) { diff --git a/core/orchestrator.go b/core/orchestrator.go index d7314a4581..50d6ea9757 100644 --- a/core/orchestrator.go +++ b/core/orchestrator.go @@ -981,7 +981,9 @@ func (rtm *RemoteTranscoderManager) selectTranscoder(sessionId string, caps *Cap findCompatibleTranscoder := func(rtm *RemoteTranscoderManager) int { for i := len(rtm.remoteTranscoders) - 1; i >= 0; i-- { // no capabilities = default capabilities, all transcoders must support them - if caps == nil || caps.bitstring.CompatibleWith(rtm.remoteTranscoders[i].capabilities.bitstring) { + if caps == nil || + (caps.bitstring.CompatibleWith(rtm.remoteTranscoders[i].capabilities.bitstring) && + caps.LivepeerVersionCompatibleWith(rtm.remoteTranscoders[i].capabilities.ToNetCapabilities())) { return i } } diff --git a/go.mod b/go.mod index fd1a55b99f..e4837beb3b 100644 --- a/go.mod +++ b/go.mod @@ -41,6 +41,7 @@ require ( dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/DataDog/zstd v1.4.5 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.1 // indirect github.com/StackExchange/wmi v1.2.1 // indirect diff --git a/go.sum b/go.sum index 984557a611..cad66eecff 100644 --- a/go.sum +++ b/go.sum @@ -60,6 +60,8 @@ github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.1 h1:hJ3s7GbWlGK4YVV92sO88BQSyF4ZLVy7/awqOlPxFbA= diff --git a/net/lp_rpc.pb.go b/net/lp_rpc.pb.go index 5e6ac70297..d5102d77c5 100644 --- a/net/lp_rpc.pb.go +++ b/net/lp_rpc.pb.go @@ -1,24 +1,24 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v4.25.2 // source: net/lp_rpc.proto package net import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" + fmt "fmt" + proto "github.com/golang/protobuf/proto" + math "math" ) -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) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type OSInfo_StorageType int32 @@ -28,45 +28,24 @@ const ( OSInfo_GOOGLE OSInfo_StorageType = 2 ) -// Enum value maps for OSInfo_StorageType. -var ( - OSInfo_StorageType_name = map[int32]string{ - 0: "DIRECT", - 1: "S3", - 2: "GOOGLE", - } - OSInfo_StorageType_value = map[string]int32{ - "DIRECT": 0, - "S3": 1, - "GOOGLE": 2, - } -) - -func (x OSInfo_StorageType) Enum() *OSInfo_StorageType { - p := new(OSInfo_StorageType) - *p = x - return p +var OSInfo_StorageType_name = map[int32]string{ + 0: "DIRECT", + 1: "S3", + 2: "GOOGLE", } -func (x OSInfo_StorageType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +var OSInfo_StorageType_value = map[string]int32{ + "DIRECT": 0, + "S3": 1, + "GOOGLE": 2, } -func (OSInfo_StorageType) Descriptor() protoreflect.EnumDescriptor { - return file_net_lp_rpc_proto_enumTypes[0].Descriptor() -} - -func (OSInfo_StorageType) Type() protoreflect.EnumType { - return &file_net_lp_rpc_proto_enumTypes[0] -} - -func (x OSInfo_StorageType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +func (x OSInfo_StorageType) String() string { + return proto.EnumName(OSInfo_StorageType_name, int32(x)) } -// Deprecated: Use OSInfo_StorageType.Descriptor instead. func (OSInfo_StorageType) EnumDescriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{4, 0} + return fileDescriptor_034e29c79f9ba827, []int{4, 0} } // Desired output format @@ -77,43 +56,22 @@ const ( VideoProfile_MP4 VideoProfile_Format = 1 ) -// Enum value maps for VideoProfile_Format. -var ( - VideoProfile_Format_name = map[int32]string{ - 0: "MPEGTS", - 1: "MP4", - } - VideoProfile_Format_value = map[string]int32{ - "MPEGTS": 0, - "MP4": 1, - } -) - -func (x VideoProfile_Format) Enum() *VideoProfile_Format { - p := new(VideoProfile_Format) - *p = x - return p -} - -func (x VideoProfile_Format) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (VideoProfile_Format) Descriptor() protoreflect.EnumDescriptor { - return file_net_lp_rpc_proto_enumTypes[1].Descriptor() +var VideoProfile_Format_name = map[int32]string{ + 0: "MPEGTS", + 1: "MP4", } -func (VideoProfile_Format) Type() protoreflect.EnumType { - return &file_net_lp_rpc_proto_enumTypes[1] +var VideoProfile_Format_value = map[string]int32{ + "MPEGTS": 0, + "MP4": 1, } -func (x VideoProfile_Format) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +func (x VideoProfile_Format) String() string { + return proto.EnumName(VideoProfile_Format_name, int32(x)) } -// Deprecated: Use VideoProfile_Format.Descriptor instead. func (VideoProfile_Format) EnumDescriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{12, 0} + return fileDescriptor_034e29c79f9ba827, []int{12, 0} } type VideoProfile_Profile int32 @@ -126,49 +84,28 @@ const ( VideoProfile_H264_CONSTRAINED_HIGH VideoProfile_Profile = 4 ) -// Enum value maps for VideoProfile_Profile. -var ( - VideoProfile_Profile_name = map[int32]string{ - 0: "ENCODER_DEFAULT", - 1: "H264_BASELINE", - 2: "H264_MAIN", - 3: "H264_HIGH", - 4: "H264_CONSTRAINED_HIGH", - } - VideoProfile_Profile_value = map[string]int32{ - "ENCODER_DEFAULT": 0, - "H264_BASELINE": 1, - "H264_MAIN": 2, - "H264_HIGH": 3, - "H264_CONSTRAINED_HIGH": 4, - } -) - -func (x VideoProfile_Profile) Enum() *VideoProfile_Profile { - p := new(VideoProfile_Profile) - *p = x - return p -} - -func (x VideoProfile_Profile) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +var VideoProfile_Profile_name = map[int32]string{ + 0: "ENCODER_DEFAULT", + 1: "H264_BASELINE", + 2: "H264_MAIN", + 3: "H264_HIGH", + 4: "H264_CONSTRAINED_HIGH", } -func (VideoProfile_Profile) Descriptor() protoreflect.EnumDescriptor { - return file_net_lp_rpc_proto_enumTypes[2].Descriptor() +var VideoProfile_Profile_value = map[string]int32{ + "ENCODER_DEFAULT": 0, + "H264_BASELINE": 1, + "H264_MAIN": 2, + "H264_HIGH": 3, + "H264_CONSTRAINED_HIGH": 4, } -func (VideoProfile_Profile) Type() protoreflect.EnumType { - return &file_net_lp_rpc_proto_enumTypes[2] -} - -func (x VideoProfile_Profile) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +func (x VideoProfile_Profile) String() string { + return proto.EnumName(VideoProfile_Profile_name, int32(x)) } -// Deprecated: Use VideoProfile_Profile.Descriptor instead. func (VideoProfile_Profile) EnumDescriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{12, 1} + return fileDescriptor_034e29c79f9ba827, []int{12, 1} } type VideoProfile_VideoCodec int32 @@ -180,47 +117,26 @@ const ( VideoProfile_VP9 VideoProfile_VideoCodec = 3 ) -// Enum value maps for VideoProfile_VideoCodec. -var ( - VideoProfile_VideoCodec_name = map[int32]string{ - 0: "H264", - 1: "H265", - 2: "VP8", - 3: "VP9", - } - VideoProfile_VideoCodec_value = map[string]int32{ - "H264": 0, - "H265": 1, - "VP8": 2, - "VP9": 3, - } -) - -func (x VideoProfile_VideoCodec) Enum() *VideoProfile_VideoCodec { - p := new(VideoProfile_VideoCodec) - *p = x - return p +var VideoProfile_VideoCodec_name = map[int32]string{ + 0: "H264", + 1: "H265", + 2: "VP8", + 3: "VP9", } -func (x VideoProfile_VideoCodec) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (VideoProfile_VideoCodec) Descriptor() protoreflect.EnumDescriptor { - return file_net_lp_rpc_proto_enumTypes[3].Descriptor() +var VideoProfile_VideoCodec_value = map[string]int32{ + "H264": 0, + "H265": 1, + "VP8": 2, + "VP9": 3, } -func (VideoProfile_VideoCodec) Type() protoreflect.EnumType { - return &file_net_lp_rpc_proto_enumTypes[3] -} - -func (x VideoProfile_VideoCodec) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +func (x VideoProfile_VideoCodec) String() string { + return proto.EnumName(VideoProfile_VideoCodec_name, int32(x)) } -// Deprecated: Use VideoProfile_VideoCodec.Descriptor instead. func (VideoProfile_VideoCodec) EnumDescriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{12, 2} + return fileDescriptor_034e29c79f9ba827, []int{12, 2} } type VideoProfile_ChromaSubsampling int32 @@ -231,237 +147,185 @@ const ( VideoProfile_CHROMA_444 VideoProfile_ChromaSubsampling = 2 ) -// Enum value maps for VideoProfile_ChromaSubsampling. -var ( - VideoProfile_ChromaSubsampling_name = map[int32]string{ - 0: "CHROMA_420", - 1: "CHROMA_422", - 2: "CHROMA_444", - } - VideoProfile_ChromaSubsampling_value = map[string]int32{ - "CHROMA_420": 0, - "CHROMA_422": 1, - "CHROMA_444": 2, - } -) - -func (x VideoProfile_ChromaSubsampling) Enum() *VideoProfile_ChromaSubsampling { - p := new(VideoProfile_ChromaSubsampling) - *p = x - return p -} - -func (x VideoProfile_ChromaSubsampling) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (VideoProfile_ChromaSubsampling) Descriptor() protoreflect.EnumDescriptor { - return file_net_lp_rpc_proto_enumTypes[4].Descriptor() +var VideoProfile_ChromaSubsampling_name = map[int32]string{ + 0: "CHROMA_420", + 1: "CHROMA_422", + 2: "CHROMA_444", } -func (VideoProfile_ChromaSubsampling) Type() protoreflect.EnumType { - return &file_net_lp_rpc_proto_enumTypes[4] +var VideoProfile_ChromaSubsampling_value = map[string]int32{ + "CHROMA_420": 0, + "CHROMA_422": 1, + "CHROMA_444": 2, } -func (x VideoProfile_ChromaSubsampling) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +func (x VideoProfile_ChromaSubsampling) String() string { + return proto.EnumName(VideoProfile_ChromaSubsampling_name, int32(x)) } -// Deprecated: Use VideoProfile_ChromaSubsampling.Descriptor instead. func (VideoProfile_ChromaSubsampling) EnumDescriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{12, 3} + return fileDescriptor_034e29c79f9ba827, []int{12, 3} } type PingPong struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Implementation defined - Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PingPong) Reset() { - *x = PingPong{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PingPong) Reset() { *m = PingPong{} } +func (m *PingPong) String() string { return proto.CompactTextString(m) } +func (*PingPong) ProtoMessage() {} +func (*PingPong) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{0} } -func (x *PingPong) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PingPong) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PingPong.Unmarshal(m, b) } - -func (*PingPong) ProtoMessage() {} - -func (x *PingPong) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *PingPong) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PingPong.Marshal(b, m, deterministic) } - -// Deprecated: Use PingPong.ProtoReflect.Descriptor instead. -func (*PingPong) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{0} +func (m *PingPong) XXX_Merge(src proto.Message) { + xxx_messageInfo_PingPong.Merge(m, src) +} +func (m *PingPong) XXX_Size() int { + return xxx_messageInfo_PingPong.Size(m) } +func (m *PingPong) XXX_DiscardUnknown() { + xxx_messageInfo_PingPong.DiscardUnknown(m) +} + +var xxx_messageInfo_PingPong proto.InternalMessageInfo -func (x *PingPong) GetValue() []byte { - if x != nil { - return x.Value +func (m *PingPong) GetValue() []byte { + if m != nil { + return m.Value } return nil } // sent by Broadcaster to Orchestrator to terminate the transcoding session and free resources (used for verification sessions) type EndTranscodingSessionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Data for transcoding authentication - AuthToken *AuthToken `protobuf:"bytes,1,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"` + AuthToken *AuthToken `protobuf:"bytes,1,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *EndTranscodingSessionRequest) Reset() { - *x = EndTranscodingSessionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *EndTranscodingSessionRequest) Reset() { *m = EndTranscodingSessionRequest{} } +func (m *EndTranscodingSessionRequest) String() string { return proto.CompactTextString(m) } +func (*EndTranscodingSessionRequest) ProtoMessage() {} +func (*EndTranscodingSessionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{1} } -func (x *EndTranscodingSessionRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *EndTranscodingSessionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EndTranscodingSessionRequest.Unmarshal(m, b) } - -func (*EndTranscodingSessionRequest) ProtoMessage() {} - -func (x *EndTranscodingSessionRequest) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *EndTranscodingSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EndTranscodingSessionRequest.Marshal(b, m, deterministic) } - -// Deprecated: Use EndTranscodingSessionRequest.ProtoReflect.Descriptor instead. -func (*EndTranscodingSessionRequest) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{1} +func (m *EndTranscodingSessionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndTranscodingSessionRequest.Merge(m, src) +} +func (m *EndTranscodingSessionRequest) XXX_Size() int { + return xxx_messageInfo_EndTranscodingSessionRequest.Size(m) } +func (m *EndTranscodingSessionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_EndTranscodingSessionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_EndTranscodingSessionRequest proto.InternalMessageInfo -func (x *EndTranscodingSessionRequest) GetAuthToken() *AuthToken { - if x != nil { - return x.AuthToken +func (m *EndTranscodingSessionRequest) GetAuthToken() *AuthToken { + if m != nil { + return m.AuthToken } return nil } type EndTranscodingSessionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *EndTranscodingSessionResponse) Reset() { - *x = EndTranscodingSessionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *EndTranscodingSessionResponse) Reset() { *m = EndTranscodingSessionResponse{} } +func (m *EndTranscodingSessionResponse) String() string { return proto.CompactTextString(m) } +func (*EndTranscodingSessionResponse) ProtoMessage() {} +func (*EndTranscodingSessionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{2} } -func (x *EndTranscodingSessionResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *EndTranscodingSessionResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EndTranscodingSessionResponse.Unmarshal(m, b) } - -func (*EndTranscodingSessionResponse) ProtoMessage() {} - -func (x *EndTranscodingSessionResponse) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *EndTranscodingSessionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EndTranscodingSessionResponse.Marshal(b, m, deterministic) } - -// Deprecated: Use EndTranscodingSessionResponse.ProtoReflect.Descriptor instead. -func (*EndTranscodingSessionResponse) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{2} +func (m *EndTranscodingSessionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_EndTranscodingSessionResponse.Merge(m, src) +} +func (m *EndTranscodingSessionResponse) XXX_Size() int { + return xxx_messageInfo_EndTranscodingSessionResponse.Size(m) +} +func (m *EndTranscodingSessionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_EndTranscodingSessionResponse.DiscardUnknown(m) } +var xxx_messageInfo_EndTranscodingSessionResponse proto.InternalMessageInfo + // This request is sent by the broadcaster in `GetTranscoder` to request // information on which transcoder to use. type OrchestratorRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Ethereum address of the broadcaster Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // Broadcaster's signature over its address - Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` + Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OrchestratorRequest) Reset() { - *x = OrchestratorRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *OrchestratorRequest) Reset() { *m = OrchestratorRequest{} } +func (m *OrchestratorRequest) String() string { return proto.CompactTextString(m) } +func (*OrchestratorRequest) ProtoMessage() {} +func (*OrchestratorRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{3} } -func (x *OrchestratorRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *OrchestratorRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrchestratorRequest.Unmarshal(m, b) } - -func (*OrchestratorRequest) ProtoMessage() {} - -func (x *OrchestratorRequest) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *OrchestratorRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrchestratorRequest.Marshal(b, m, deterministic) } - -// Deprecated: Use OrchestratorRequest.ProtoReflect.Descriptor instead. -func (*OrchestratorRequest) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{3} +func (m *OrchestratorRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrchestratorRequest.Merge(m, src) +} +func (m *OrchestratorRequest) XXX_Size() int { + return xxx_messageInfo_OrchestratorRequest.Size(m) +} +func (m *OrchestratorRequest) XXX_DiscardUnknown() { + xxx_messageInfo_OrchestratorRequest.DiscardUnknown(m) } -func (x *OrchestratorRequest) GetAddress() []byte { - if x != nil { - return x.Address +var xxx_messageInfo_OrchestratorRequest proto.InternalMessageInfo + +func (m *OrchestratorRequest) GetAddress() []byte { + if m != nil { + return m.Address } return nil } -func (x *OrchestratorRequest) GetSig() []byte { - if x != nil { - return x.Sig +func (m *OrchestratorRequest) GetSig() []byte { + if m != nil { + return m.Sig } return nil } @@ -469,66 +333,54 @@ func (x *OrchestratorRequest) GetSig() []byte { // OSInfo needed to negotiate storages that will be used. // It carries info needed to write to the storage. type OSInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Storage type: direct, s3, ipfs. - StorageType OSInfo_StorageType `protobuf:"varint,1,opt,name=storageType,proto3,enum=net.OSInfo_StorageType" json:"storageType,omitempty"` - S3Info *S3OSInfo `protobuf:"bytes,16,opt,name=s3info,proto3" json:"s3info,omitempty"` + StorageType OSInfo_StorageType `protobuf:"varint,1,opt,name=storageType,proto3,enum=net.OSInfo_StorageType" json:"storageType,omitempty"` + S3Info *S3OSInfo `protobuf:"bytes,16,opt,name=s3info,proto3" json:"s3info,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OSInfo) Reset() { - *x = OSInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *OSInfo) Reset() { *m = OSInfo{} } +func (m *OSInfo) String() string { return proto.CompactTextString(m) } +func (*OSInfo) ProtoMessage() {} +func (*OSInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{4} } -func (x *OSInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *OSInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OSInfo.Unmarshal(m, b) } - -func (*OSInfo) ProtoMessage() {} - -func (x *OSInfo) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *OSInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OSInfo.Marshal(b, m, deterministic) } - -// Deprecated: Use OSInfo.ProtoReflect.Descriptor instead. -func (*OSInfo) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{4} +func (m *OSInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_OSInfo.Merge(m, src) +} +func (m *OSInfo) XXX_Size() int { + return xxx_messageInfo_OSInfo.Size(m) } +func (m *OSInfo) XXX_DiscardUnknown() { + xxx_messageInfo_OSInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_OSInfo proto.InternalMessageInfo -func (x *OSInfo) GetStorageType() OSInfo_StorageType { - if x != nil { - return x.StorageType +func (m *OSInfo) GetStorageType() OSInfo_StorageType { + if m != nil { + return m.StorageType } return OSInfo_DIRECT } -func (x *OSInfo) GetS3Info() *S3OSInfo { - if x != nil { - return x.S3Info +func (m *OSInfo) GetS3Info() *S3OSInfo { + if m != nil { + return m.S3Info } return nil } type S3OSInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Host to use to connect to S3 Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` // Key (prefix) to use when uploading the object. @@ -540,215 +392,247 @@ type S3OSInfo struct { // Needed for POST policy. Credential string `protobuf:"bytes,5,opt,name=credential,proto3" json:"credential,omitempty"` // Needed for POST policy. - XAmzDate string `protobuf:"bytes,6,opt,name=xAmzDate,proto3" json:"xAmzDate,omitempty"` + XAmzDate string `protobuf:"bytes,6,opt,name=xAmzDate,proto3" json:"xAmzDate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *S3OSInfo) Reset() { - *x = S3OSInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *S3OSInfo) Reset() { *m = S3OSInfo{} } +func (m *S3OSInfo) String() string { return proto.CompactTextString(m) } +func (*S3OSInfo) ProtoMessage() {} +func (*S3OSInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{5} } -func (x *S3OSInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *S3OSInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_S3OSInfo.Unmarshal(m, b) } - -func (*S3OSInfo) ProtoMessage() {} - -func (x *S3OSInfo) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *S3OSInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_S3OSInfo.Marshal(b, m, deterministic) } - -// Deprecated: Use S3OSInfo.ProtoReflect.Descriptor instead. -func (*S3OSInfo) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{5} +func (m *S3OSInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_S3OSInfo.Merge(m, src) +} +func (m *S3OSInfo) XXX_Size() int { + return xxx_messageInfo_S3OSInfo.Size(m) } +func (m *S3OSInfo) XXX_DiscardUnknown() { + xxx_messageInfo_S3OSInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_S3OSInfo proto.InternalMessageInfo -func (x *S3OSInfo) GetHost() string { - if x != nil { - return x.Host +func (m *S3OSInfo) GetHost() string { + if m != nil { + return m.Host } return "" } -func (x *S3OSInfo) GetKey() string { - if x != nil { - return x.Key +func (m *S3OSInfo) GetKey() string { + if m != nil { + return m.Key } return "" } -func (x *S3OSInfo) GetPolicy() string { - if x != nil { - return x.Policy +func (m *S3OSInfo) GetPolicy() string { + if m != nil { + return m.Policy } return "" } -func (x *S3OSInfo) GetSignature() string { - if x != nil { - return x.Signature +func (m *S3OSInfo) GetSignature() string { + if m != nil { + return m.Signature } return "" } -func (x *S3OSInfo) GetCredential() string { - if x != nil { - return x.Credential +func (m *S3OSInfo) GetCredential() string { + if m != nil { + return m.Credential } return "" } -func (x *S3OSInfo) GetXAmzDate() string { - if x != nil { - return x.XAmzDate +func (m *S3OSInfo) GetXAmzDate() string { + if m != nil { + return m.XAmzDate } return "" } // PriceInfo conveys pricing info for transcoding services type PriceInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // price in wei PricePerUnit int64 `protobuf:"varint,1,opt,name=pricePerUnit,proto3" json:"pricePerUnit,omitempty"` // Pixels covered in the price // Set price to 1 wei and pixelsPerUnit > 1 to have a smaller price granularity per pixel than 1 wei - PixelsPerUnit int64 `protobuf:"varint,2,opt,name=pixelsPerUnit,proto3" json:"pixelsPerUnit,omitempty"` + PixelsPerUnit int64 `protobuf:"varint,2,opt,name=pixelsPerUnit,proto3" json:"pixelsPerUnit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PriceInfo) Reset() { - *x = PriceInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PriceInfo) Reset() { *m = PriceInfo{} } +func (m *PriceInfo) String() string { return proto.CompactTextString(m) } +func (*PriceInfo) ProtoMessage() {} +func (*PriceInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{6} } -func (x *PriceInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PriceInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PriceInfo.Unmarshal(m, b) } - -func (*PriceInfo) ProtoMessage() {} - -func (x *PriceInfo) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *PriceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PriceInfo.Marshal(b, m, deterministic) } - -// Deprecated: Use PriceInfo.ProtoReflect.Descriptor instead. -func (*PriceInfo) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{6} +func (m *PriceInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PriceInfo.Merge(m, src) +} +func (m *PriceInfo) XXX_Size() int { + return xxx_messageInfo_PriceInfo.Size(m) +} +func (m *PriceInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PriceInfo.DiscardUnknown(m) } -func (x *PriceInfo) GetPricePerUnit() int64 { - if x != nil { - return x.PricePerUnit +var xxx_messageInfo_PriceInfo proto.InternalMessageInfo + +func (m *PriceInfo) GetPricePerUnit() int64 { + if m != nil { + return m.PricePerUnit } return 0 } -func (x *PriceInfo) GetPixelsPerUnit() int64 { - if x != nil { - return x.PixelsPerUnit +func (m *PriceInfo) GetPixelsPerUnit() int64 { + if m != nil { + return m.PixelsPerUnit } return 0 } type Capabilities struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Bit string of supported features - one bit per feature Bitstring []uint64 `protobuf:"varint,1,rep,packed,name=bitstring,proto3" json:"bitstring,omitempty"` // Bit string of features that are required to be supported Mandatories []uint64 `protobuf:"varint,2,rep,packed,name=mandatories,proto3" json:"mandatories,omitempty"` // Capacity corresponding to each capability - Capacities map[uint32]uint32 `protobuf:"bytes,3,rep,name=capacities,proto3" json:"capacities,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Capacities map[uint32]uint32 `protobuf:"bytes,3,rep,name=capacities,proto3" json:"capacities,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + Constraints *Capabilities_Constraints `protobuf:"bytes,5,opt,name=constraints,proto3" json:"constraints,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Capabilities) Reset() { - *x = Capabilities{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *Capabilities) Reset() { *m = Capabilities{} } +func (m *Capabilities) String() string { return proto.CompactTextString(m) } +func (*Capabilities) ProtoMessage() {} +func (*Capabilities) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{7} } -func (x *Capabilities) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *Capabilities) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Capabilities.Unmarshal(m, b) +} +func (m *Capabilities) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Capabilities.Marshal(b, m, deterministic) +} +func (m *Capabilities) XXX_Merge(src proto.Message) { + xxx_messageInfo_Capabilities.Merge(m, src) +} +func (m *Capabilities) XXX_Size() int { + return xxx_messageInfo_Capabilities.Size(m) +} +func (m *Capabilities) XXX_DiscardUnknown() { + xxx_messageInfo_Capabilities.DiscardUnknown(m) } -func (*Capabilities) ProtoMessage() {} +var xxx_messageInfo_Capabilities proto.InternalMessageInfo -func (x *Capabilities) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (m *Capabilities) GetBitstring() []uint64 { + if m != nil { + return m.Bitstring } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Capabilities.ProtoReflect.Descriptor instead. -func (*Capabilities) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{7} +func (m *Capabilities) GetMandatories() []uint64 { + if m != nil { + return m.Mandatories + } + return nil } -func (x *Capabilities) GetBitstring() []uint64 { - if x != nil { - return x.Bitstring +func (m *Capabilities) GetCapacities() map[uint32]uint32 { + if m != nil { + return m.Capacities } return nil } -func (x *Capabilities) GetMandatories() []uint64 { - if x != nil { - return x.Mandatories +func (m *Capabilities) GetVersion() string { + if m != nil { + return m.Version } - return nil + return "" } -func (x *Capabilities) GetCapacities() map[uint32]uint32 { - if x != nil { - return x.Capacities +func (m *Capabilities) GetConstraints() *Capabilities_Constraints { + if m != nil { + return m.Constraints } return nil } +// Non-binary capability constraints, such as supported ranges. +type Capabilities_Constraints struct { + MinVersion string `protobuf:"bytes,1,opt,name=minVersion,proto3" json:"minVersion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Capabilities_Constraints) Reset() { *m = Capabilities_Constraints{} } +func (m *Capabilities_Constraints) String() string { return proto.CompactTextString(m) } +func (*Capabilities_Constraints) ProtoMessage() {} +func (*Capabilities_Constraints) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{7, 1} +} + +func (m *Capabilities_Constraints) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Capabilities_Constraints.Unmarshal(m, b) +} +func (m *Capabilities_Constraints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Capabilities_Constraints.Marshal(b, m, deterministic) +} +func (m *Capabilities_Constraints) XXX_Merge(src proto.Message) { + xxx_messageInfo_Capabilities_Constraints.Merge(m, src) +} +func (m *Capabilities_Constraints) XXX_Size() int { + return xxx_messageInfo_Capabilities_Constraints.Size(m) +} +func (m *Capabilities_Constraints) XXX_DiscardUnknown() { + xxx_messageInfo_Capabilities_Constraints.DiscardUnknown(m) +} + +var xxx_messageInfo_Capabilities_Constraints proto.InternalMessageInfo + +func (m *Capabilities_Constraints) GetMinVersion() string { + if m != nil { + return m.MinVersion + } + return "" +} + // The orchestrator sends this in response to `GetOrchestrator`, containing // miscellaneous data related to the job. type OrchestratorInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // URI of the transcoder to use for submitting segments. Transcoder string `protobuf:"bytes,1,opt,name=transcoder,proto3" json:"transcoder,omitempty"` // Parameters for probabilistic micropayment tickets @@ -762,164 +646,148 @@ type OrchestratorInfo struct { // Data for transcoding authentication AuthToken *AuthToken `protobuf:"bytes,6,opt,name=auth_token,json=authToken,proto3" json:"auth_token,omitempty"` // Orchestrator returns info about own input object storage, if it wants it to be used. - Storage []*OSInfo `protobuf:"bytes,32,rep,name=storage,proto3" json:"storage,omitempty"` + Storage []*OSInfo `protobuf:"bytes,32,rep,name=storage,proto3" json:"storage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OrchestratorInfo) Reset() { - *x = OrchestratorInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *OrchestratorInfo) Reset() { *m = OrchestratorInfo{} } +func (m *OrchestratorInfo) String() string { return proto.CompactTextString(m) } +func (*OrchestratorInfo) ProtoMessage() {} +func (*OrchestratorInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{8} } -func (x *OrchestratorInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *OrchestratorInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OrchestratorInfo.Unmarshal(m, b) } - -func (*OrchestratorInfo) ProtoMessage() {} - -func (x *OrchestratorInfo) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *OrchestratorInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OrchestratorInfo.Marshal(b, m, deterministic) } - -// Deprecated: Use OrchestratorInfo.ProtoReflect.Descriptor instead. -func (*OrchestratorInfo) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{8} +func (m *OrchestratorInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrchestratorInfo.Merge(m, src) } +func (m *OrchestratorInfo) XXX_Size() int { + return xxx_messageInfo_OrchestratorInfo.Size(m) +} +func (m *OrchestratorInfo) XXX_DiscardUnknown() { + xxx_messageInfo_OrchestratorInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_OrchestratorInfo proto.InternalMessageInfo -func (x *OrchestratorInfo) GetTranscoder() string { - if x != nil { - return x.Transcoder +func (m *OrchestratorInfo) GetTranscoder() string { + if m != nil { + return m.Transcoder } return "" } -func (x *OrchestratorInfo) GetTicketParams() *TicketParams { - if x != nil { - return x.TicketParams +func (m *OrchestratorInfo) GetTicketParams() *TicketParams { + if m != nil { + return m.TicketParams } return nil } -func (x *OrchestratorInfo) GetPriceInfo() *PriceInfo { - if x != nil { - return x.PriceInfo +func (m *OrchestratorInfo) GetPriceInfo() *PriceInfo { + if m != nil { + return m.PriceInfo } return nil } -func (x *OrchestratorInfo) GetAddress() []byte { - if x != nil { - return x.Address +func (m *OrchestratorInfo) GetAddress() []byte { + if m != nil { + return m.Address } return nil } -func (x *OrchestratorInfo) GetCapabilities() *Capabilities { - if x != nil { - return x.Capabilities +func (m *OrchestratorInfo) GetCapabilities() *Capabilities { + if m != nil { + return m.Capabilities } return nil } -func (x *OrchestratorInfo) GetAuthToken() *AuthToken { - if x != nil { - return x.AuthToken +func (m *OrchestratorInfo) GetAuthToken() *AuthToken { + if m != nil { + return m.AuthToken } return nil } -func (x *OrchestratorInfo) GetStorage() []*OSInfo { - if x != nil { - return x.Storage +func (m *OrchestratorInfo) GetStorage() []*OSInfo { + if m != nil { + return m.Storage } return nil } // Data for transcoding authentication that is included in the OrchestratorInfo message during discovery type AuthToken struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Record used to authenticate for a transcode session // Opaque to the receiver Token []byte `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` // ID of the transcode session that the token is authenticating for SessionId string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` // Timestamp when the token expires - Expiration int64 `protobuf:"varint,3,opt,name=expiration,proto3" json:"expiration,omitempty"` + Expiration int64 `protobuf:"varint,3,opt,name=expiration,proto3" json:"expiration,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AuthToken) Reset() { - *x = AuthToken{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *AuthToken) Reset() { *m = AuthToken{} } +func (m *AuthToken) String() string { return proto.CompactTextString(m) } +func (*AuthToken) ProtoMessage() {} +func (*AuthToken) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{9} } -func (x *AuthToken) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *AuthToken) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AuthToken.Unmarshal(m, b) } - -func (*AuthToken) ProtoMessage() {} - -func (x *AuthToken) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *AuthToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AuthToken.Marshal(b, m, deterministic) } - -// Deprecated: Use AuthToken.ProtoReflect.Descriptor instead. -func (*AuthToken) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{9} +func (m *AuthToken) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthToken.Merge(m, src) +} +func (m *AuthToken) XXX_Size() int { + return xxx_messageInfo_AuthToken.Size(m) } +func (m *AuthToken) XXX_DiscardUnknown() { + xxx_messageInfo_AuthToken.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthToken proto.InternalMessageInfo -func (x *AuthToken) GetToken() []byte { - if x != nil { - return x.Token +func (m *AuthToken) GetToken() []byte { + if m != nil { + return m.Token } return nil } -func (x *AuthToken) GetSessionId() string { - if x != nil { - return x.SessionId +func (m *AuthToken) GetSessionId() string { + if m != nil { + return m.SessionId } return "" } -func (x *AuthToken) GetExpiration() int64 { - if x != nil { - return x.Expiration +func (m *AuthToken) GetExpiration() int64 { + if m != nil { + return m.Expiration } return 0 } // Data included by the broadcaster when submitting a segment for transcoding. type SegData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Manifest ID this segment belongs to ManifestId []byte `protobuf:"bytes,1,opt,name=manifestId,proto3" json:"manifestId,omitempty"` // Sequence number of the segment to be transcoded @@ -953,210 +821,194 @@ type SegData struct { // Transcoding parameters specific to this segment SegmentParameters *SegParameters `protobuf:"bytes,37,opt,name=segment_parameters,json=segmentParameters,proto3" json:"segment_parameters,omitempty"` // Force HW Session Reinit - ForceSessionReinit bool `protobuf:"varint,38,opt,name=ForceSessionReinit,proto3" json:"ForceSessionReinit,omitempty"` + ForceSessionReinit bool `protobuf:"varint,38,opt,name=ForceSessionReinit,proto3" json:"ForceSessionReinit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SegData) Reset() { - *x = SegData{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *SegData) Reset() { *m = SegData{} } +func (m *SegData) String() string { return proto.CompactTextString(m) } +func (*SegData) ProtoMessage() {} +func (*SegData) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{10} } -func (x *SegData) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *SegData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SegData.Unmarshal(m, b) } - -func (*SegData) ProtoMessage() {} - -func (x *SegData) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *SegData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SegData.Marshal(b, m, deterministic) } - -// Deprecated: Use SegData.ProtoReflect.Descriptor instead. -func (*SegData) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{10} +func (m *SegData) XXX_Merge(src proto.Message) { + xxx_messageInfo_SegData.Merge(m, src) +} +func (m *SegData) XXX_Size() int { + return xxx_messageInfo_SegData.Size(m) } +func (m *SegData) XXX_DiscardUnknown() { + xxx_messageInfo_SegData.DiscardUnknown(m) +} + +var xxx_messageInfo_SegData proto.InternalMessageInfo -func (x *SegData) GetManifestId() []byte { - if x != nil { - return x.ManifestId +func (m *SegData) GetManifestId() []byte { + if m != nil { + return m.ManifestId } return nil } -func (x *SegData) GetSeq() int64 { - if x != nil { - return x.Seq +func (m *SegData) GetSeq() int64 { + if m != nil { + return m.Seq } return 0 } -func (x *SegData) GetHash() []byte { - if x != nil { - return x.Hash +func (m *SegData) GetHash() []byte { + if m != nil { + return m.Hash } return nil } -func (x *SegData) GetProfiles() []byte { - if x != nil { - return x.Profiles +func (m *SegData) GetProfiles() []byte { + if m != nil { + return m.Profiles } return nil } -func (x *SegData) GetSig() []byte { - if x != nil { - return x.Sig +func (m *SegData) GetSig() []byte { + if m != nil { + return m.Sig } return nil } -func (x *SegData) GetDuration() int32 { - if x != nil { - return x.Duration +func (m *SegData) GetDuration() int32 { + if m != nil { + return m.Duration } return 0 } -func (x *SegData) GetCapabilities() *Capabilities { - if x != nil { - return x.Capabilities +func (m *SegData) GetCapabilities() *Capabilities { + if m != nil { + return m.Capabilities } return nil } -func (x *SegData) GetAuthToken() *AuthToken { - if x != nil { - return x.AuthToken +func (m *SegData) GetAuthToken() *AuthToken { + if m != nil { + return m.AuthToken } return nil } -func (x *SegData) GetCalcPerceptualHash() bool { - if x != nil { - return x.CalcPerceptualHash +func (m *SegData) GetCalcPerceptualHash() bool { + if m != nil { + return m.CalcPerceptualHash } return false } -func (x *SegData) GetStorage() []*OSInfo { - if x != nil { - return x.Storage +func (m *SegData) GetStorage() []*OSInfo { + if m != nil { + return m.Storage } return nil } -func (x *SegData) GetFullProfiles() []*VideoProfile { - if x != nil { - return x.FullProfiles +func (m *SegData) GetFullProfiles() []*VideoProfile { + if m != nil { + return m.FullProfiles } return nil } -func (x *SegData) GetFullProfiles2() []*VideoProfile { - if x != nil { - return x.FullProfiles2 +func (m *SegData) GetFullProfiles2() []*VideoProfile { + if m != nil { + return m.FullProfiles2 } return nil } -func (x *SegData) GetFullProfiles3() []*VideoProfile { - if x != nil { - return x.FullProfiles3 +func (m *SegData) GetFullProfiles3() []*VideoProfile { + if m != nil { + return m.FullProfiles3 } return nil } -func (x *SegData) GetSegmentParameters() *SegParameters { - if x != nil { - return x.SegmentParameters +func (m *SegData) GetSegmentParameters() *SegParameters { + if m != nil { + return m.SegmentParameters } return nil } -func (x *SegData) GetForceSessionReinit() bool { - if x != nil { - return x.ForceSessionReinit +func (m *SegData) GetForceSessionReinit() bool { + if m != nil { + return m.ForceSessionReinit } return false } type SegParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Start timestamp from which to start encoding // Milliseconds, from start of the file From uint64 `protobuf:"varint,1,opt,name=from,proto3" json:"from,omitempty"` // Skip all frames after that timestamp // Milliseconds, from start of the file - To uint64 `protobuf:"varint,2,opt,name=to,proto3" json:"to,omitempty"` + To uint64 `protobuf:"varint,2,opt,name=to,proto3" json:"to,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SegParameters) Reset() { - *x = SegParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *SegParameters) Reset() { *m = SegParameters{} } +func (m *SegParameters) String() string { return proto.CompactTextString(m) } +func (*SegParameters) ProtoMessage() {} +func (*SegParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{11} } -func (x *SegParameters) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *SegParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SegParameters.Unmarshal(m, b) } - -func (*SegParameters) ProtoMessage() {} - -func (x *SegParameters) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *SegParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SegParameters.Marshal(b, m, deterministic) } - -// Deprecated: Use SegParameters.ProtoReflect.Descriptor instead. -func (*SegParameters) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{11} +func (m *SegParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_SegParameters.Merge(m, src) +} +func (m *SegParameters) XXX_Size() int { + return xxx_messageInfo_SegParameters.Size(m) +} +func (m *SegParameters) XXX_DiscardUnknown() { + xxx_messageInfo_SegParameters.DiscardUnknown(m) } -func (x *SegParameters) GetFrom() uint64 { - if x != nil { - return x.From +var xxx_messageInfo_SegParameters proto.InternalMessageInfo + +func (m *SegParameters) GetFrom() uint64 { + if m != nil { + return m.From } return 0 } -func (x *SegParameters) GetTo() uint64 { - if x != nil { - return x.To +func (m *SegParameters) GetTo() uint64 { + if m != nil { + return m.To } return 0 } type VideoProfile struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Name of VideoProfile Name string `protobuf:"bytes,16,opt,name=name,proto3" json:"name,omitempty"` // Width of VideoProfile @@ -1175,318 +1027,306 @@ type VideoProfile struct { // GOP interval Gop int32 `protobuf:"varint,24,opt,name=gop,proto3" json:"gop,omitempty"` // Encoder (video codec) - Encoder VideoProfile_VideoCodec `protobuf:"varint,25,opt,name=encoder,proto3,enum=net.VideoProfile_VideoCodec" json:"encoder,omitempty"` - ColorDepth int32 `protobuf:"varint,26,opt,name=colorDepth,proto3" json:"colorDepth,omitempty"` - ChromaFormat VideoProfile_ChromaSubsampling `protobuf:"varint,27,opt,name=chromaFormat,proto3,enum=net.VideoProfile_ChromaSubsampling" json:"chromaFormat,omitempty"` - Quality uint32 `protobuf:"varint,28,opt,name=quality,proto3" json:"quality,omitempty"` + Encoder VideoProfile_VideoCodec `protobuf:"varint,25,opt,name=encoder,proto3,enum=net.VideoProfile_VideoCodec" json:"encoder,omitempty"` + ColorDepth int32 `protobuf:"varint,26,opt,name=colorDepth,proto3" json:"colorDepth,omitempty"` + ChromaFormat VideoProfile_ChromaSubsampling `protobuf:"varint,27,opt,name=chromaFormat,proto3,enum=net.VideoProfile_ChromaSubsampling" json:"chromaFormat,omitempty"` + Quality uint32 `protobuf:"varint,28,opt,name=quality,proto3" json:"quality,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VideoProfile) Reset() { *m = VideoProfile{} } +func (m *VideoProfile) String() string { return proto.CompactTextString(m) } +func (*VideoProfile) ProtoMessage() {} +func (*VideoProfile) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{12} } -func (x *VideoProfile) Reset() { - *x = VideoProfile{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *VideoProfile) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VideoProfile.Unmarshal(m, b) } - -func (x *VideoProfile) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *VideoProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VideoProfile.Marshal(b, m, deterministic) } - -func (*VideoProfile) ProtoMessage() {} - -func (x *VideoProfile) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *VideoProfile) XXX_Merge(src proto.Message) { + xxx_messageInfo_VideoProfile.Merge(m, src) } - -// Deprecated: Use VideoProfile.ProtoReflect.Descriptor instead. -func (*VideoProfile) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{12} +func (m *VideoProfile) XXX_Size() int { + return xxx_messageInfo_VideoProfile.Size(m) +} +func (m *VideoProfile) XXX_DiscardUnknown() { + xxx_messageInfo_VideoProfile.DiscardUnknown(m) } -func (x *VideoProfile) GetName() string { - if x != nil { - return x.Name +var xxx_messageInfo_VideoProfile proto.InternalMessageInfo + +func (m *VideoProfile) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *VideoProfile) GetWidth() int32 { - if x != nil { - return x.Width +func (m *VideoProfile) GetWidth() int32 { + if m != nil { + return m.Width } return 0 } -func (x *VideoProfile) GetHeight() int32 { - if x != nil { - return x.Height +func (m *VideoProfile) GetHeight() int32 { + if m != nil { + return m.Height } return 0 } -func (x *VideoProfile) GetBitrate() int32 { - if x != nil { - return x.Bitrate +func (m *VideoProfile) GetBitrate() int32 { + if m != nil { + return m.Bitrate } return 0 } -func (x *VideoProfile) GetFps() uint32 { - if x != nil { - return x.Fps +func (m *VideoProfile) GetFps() uint32 { + if m != nil { + return m.Fps } return 0 } -func (x *VideoProfile) GetFormat() VideoProfile_Format { - if x != nil { - return x.Format +func (m *VideoProfile) GetFormat() VideoProfile_Format { + if m != nil { + return m.Format } return VideoProfile_MPEGTS } -func (x *VideoProfile) GetFpsDen() uint32 { - if x != nil { - return x.FpsDen +func (m *VideoProfile) GetFpsDen() uint32 { + if m != nil { + return m.FpsDen } return 0 } -func (x *VideoProfile) GetProfile() VideoProfile_Profile { - if x != nil { - return x.Profile +func (m *VideoProfile) GetProfile() VideoProfile_Profile { + if m != nil { + return m.Profile } return VideoProfile_ENCODER_DEFAULT } -func (x *VideoProfile) GetGop() int32 { - if x != nil { - return x.Gop +func (m *VideoProfile) GetGop() int32 { + if m != nil { + return m.Gop } return 0 } -func (x *VideoProfile) GetEncoder() VideoProfile_VideoCodec { - if x != nil { - return x.Encoder +func (m *VideoProfile) GetEncoder() VideoProfile_VideoCodec { + if m != nil { + return m.Encoder } return VideoProfile_H264 } -func (x *VideoProfile) GetColorDepth() int32 { - if x != nil { - return x.ColorDepth +func (m *VideoProfile) GetColorDepth() int32 { + if m != nil { + return m.ColorDepth } return 0 } -func (x *VideoProfile) GetChromaFormat() VideoProfile_ChromaSubsampling { - if x != nil { - return x.ChromaFormat +func (m *VideoProfile) GetChromaFormat() VideoProfile_ChromaSubsampling { + if m != nil { + return m.ChromaFormat } return VideoProfile_CHROMA_420 } -func (x *VideoProfile) GetQuality() uint32 { - if x != nil { - return x.Quality +func (m *VideoProfile) GetQuality() uint32 { + if m != nil { + return m.Quality } return 0 } // Individual transcoded segment data. type TranscodedSegmentData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // URL where the transcoded data can be downloaded from. Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` // Amount of pixels processed (output pixels) Pixels int64 `protobuf:"varint,2,opt,name=pixels,proto3" json:"pixels,omitempty"` // URL where the perceptual hash data can be downloaded from (can be empty) - PerceptualHashUrl string `protobuf:"bytes,3,opt,name=perceptual_hash_url,json=perceptualHashUrl,proto3" json:"perceptual_hash_url,omitempty"` + PerceptualHashUrl string `protobuf:"bytes,3,opt,name=perceptual_hash_url,json=perceptualHashUrl,proto3" json:"perceptual_hash_url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TranscodedSegmentData) Reset() { - *x = TranscodedSegmentData{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TranscodedSegmentData) Reset() { *m = TranscodedSegmentData{} } +func (m *TranscodedSegmentData) String() string { return proto.CompactTextString(m) } +func (*TranscodedSegmentData) ProtoMessage() {} +func (*TranscodedSegmentData) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{13} } -func (x *TranscodedSegmentData) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TranscodedSegmentData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TranscodedSegmentData.Unmarshal(m, b) } - -func (*TranscodedSegmentData) ProtoMessage() {} - -func (x *TranscodedSegmentData) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *TranscodedSegmentData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TranscodedSegmentData.Marshal(b, m, deterministic) } - -// Deprecated: Use TranscodedSegmentData.ProtoReflect.Descriptor instead. -func (*TranscodedSegmentData) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{13} +func (m *TranscodedSegmentData) XXX_Merge(src proto.Message) { + xxx_messageInfo_TranscodedSegmentData.Merge(m, src) +} +func (m *TranscodedSegmentData) XXX_Size() int { + return xxx_messageInfo_TranscodedSegmentData.Size(m) +} +func (m *TranscodedSegmentData) XXX_DiscardUnknown() { + xxx_messageInfo_TranscodedSegmentData.DiscardUnknown(m) } -func (x *TranscodedSegmentData) GetUrl() string { - if x != nil { - return x.Url +var xxx_messageInfo_TranscodedSegmentData proto.InternalMessageInfo + +func (m *TranscodedSegmentData) GetUrl() string { + if m != nil { + return m.Url } return "" } -func (x *TranscodedSegmentData) GetPixels() int64 { - if x != nil { - return x.Pixels +func (m *TranscodedSegmentData) GetPixels() int64 { + if m != nil { + return m.Pixels } return 0 } -func (x *TranscodedSegmentData) GetPerceptualHashUrl() string { - if x != nil { - return x.PerceptualHashUrl +func (m *TranscodedSegmentData) GetPerceptualHashUrl() string { + if m != nil { + return m.PerceptualHashUrl } return "" } // A set of transcoded segments following the profiles specified in the job. type TranscodeData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Transcoded data, in the order specified in the job options Segments []*TranscodedSegmentData `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` // Signature of the hash of the concatenated hashes - Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` + Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TranscodeData) Reset() { - *x = TranscodeData{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TranscodeData) Reset() { *m = TranscodeData{} } +func (m *TranscodeData) String() string { return proto.CompactTextString(m) } +func (*TranscodeData) ProtoMessage() {} +func (*TranscodeData) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{14} } -func (x *TranscodeData) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TranscodeData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TranscodeData.Unmarshal(m, b) } - -func (*TranscodeData) ProtoMessage() {} - -func (x *TranscodeData) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *TranscodeData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TranscodeData.Marshal(b, m, deterministic) } - -// Deprecated: Use TranscodeData.ProtoReflect.Descriptor instead. -func (*TranscodeData) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{14} +func (m *TranscodeData) XXX_Merge(src proto.Message) { + xxx_messageInfo_TranscodeData.Merge(m, src) +} +func (m *TranscodeData) XXX_Size() int { + return xxx_messageInfo_TranscodeData.Size(m) +} +func (m *TranscodeData) XXX_DiscardUnknown() { + xxx_messageInfo_TranscodeData.DiscardUnknown(m) } -func (x *TranscodeData) GetSegments() []*TranscodedSegmentData { - if x != nil { - return x.Segments +var xxx_messageInfo_TranscodeData proto.InternalMessageInfo + +func (m *TranscodeData) GetSegments() []*TranscodedSegmentData { + if m != nil { + return m.Segments } return nil } -func (x *TranscodeData) GetSig() []byte { - if x != nil { - return x.Sig +func (m *TranscodeData) GetSig() []byte { + if m != nil { + return m.Sig } return nil } // Response that a transcoder sends after transcoding a segment. type TranscodeResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Sequence number of the transcoded results. Seq int64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // Result of transcoding can be an error, or successful with more info // - // Types that are assignable to Result: + // Types that are valid to be assigned to Result: // // *TranscodeResult_Error // *TranscodeResult_Data Result isTranscodeResult_Result `protobuf_oneof:"result"` // Used to notify a broadcaster of updated orchestrator information - Info *OrchestratorInfo `protobuf:"bytes,16,opt,name=info,proto3" json:"info,omitempty"` + Info *OrchestratorInfo `protobuf:"bytes,16,opt,name=info,proto3" json:"info,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TranscodeResult) Reset() { - *x = TranscodeResult{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TranscodeResult) Reset() { *m = TranscodeResult{} } +func (m *TranscodeResult) String() string { return proto.CompactTextString(m) } +func (*TranscodeResult) ProtoMessage() {} +func (*TranscodeResult) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{15} } -func (x *TranscodeResult) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TranscodeResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TranscodeResult.Unmarshal(m, b) +} +func (m *TranscodeResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TranscodeResult.Marshal(b, m, deterministic) +} +func (m *TranscodeResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_TranscodeResult.Merge(m, src) +} +func (m *TranscodeResult) XXX_Size() int { + return xxx_messageInfo_TranscodeResult.Size(m) +} +func (m *TranscodeResult) XXX_DiscardUnknown() { + xxx_messageInfo_TranscodeResult.DiscardUnknown(m) } -func (*TranscodeResult) ProtoMessage() {} +var xxx_messageInfo_TranscodeResult proto.InternalMessageInfo -func (x *TranscodeResult) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (m *TranscodeResult) GetSeq() int64 { + if m != nil { + return m.Seq } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use TranscodeResult.ProtoReflect.Descriptor instead. -func (*TranscodeResult) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{15} +type isTranscodeResult_Result interface { + isTranscodeResult_Result() } -func (x *TranscodeResult) GetSeq() int64 { - if x != nil { - return x.Seq - } - return 0 +type TranscodeResult_Error struct { + Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"` } +type TranscodeResult_Data struct { + Data *TranscodeData `protobuf:"bytes,3,opt,name=data,proto3,oneof"` +} + +func (*TranscodeResult_Error) isTranscodeResult_Result() {} + +func (*TranscodeResult_Data) isTranscodeResult_Result() {} + func (m *TranscodeResult) GetResult() isTranscodeResult_Result { if m != nil { return m.Result @@ -1494,116 +1334,96 @@ func (m *TranscodeResult) GetResult() isTranscodeResult_Result { return nil } -func (x *TranscodeResult) GetError() string { - if x, ok := x.GetResult().(*TranscodeResult_Error); ok { +func (m *TranscodeResult) GetError() string { + if x, ok := m.GetResult().(*TranscodeResult_Error); ok { return x.Error } return "" } -func (x *TranscodeResult) GetData() *TranscodeData { - if x, ok := x.GetResult().(*TranscodeResult_Data); ok { +func (m *TranscodeResult) GetData() *TranscodeData { + if x, ok := m.GetResult().(*TranscodeResult_Data); ok { return x.Data } return nil } -func (x *TranscodeResult) GetInfo() *OrchestratorInfo { - if x != nil { - return x.Info +func (m *TranscodeResult) GetInfo() *OrchestratorInfo { + if m != nil { + return m.Info } return nil } -type isTranscodeResult_Result interface { - isTranscodeResult_Result() -} - -type TranscodeResult_Error struct { - Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"` -} - -type TranscodeResult_Data struct { - Data *TranscodeData `protobuf:"bytes,3,opt,name=data,proto3,oneof"` +// XXX_OneofWrappers is for the internal use of the proto package. +func (*TranscodeResult) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*TranscodeResult_Error)(nil), + (*TranscodeResult_Data)(nil), + } } -func (*TranscodeResult_Error) isTranscodeResult_Result() {} - -func (*TranscodeResult_Data) isTranscodeResult_Result() {} - // Sent by the transcoder to register itself to the orchestrator. type RegisterRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Shared secret for auth Secret string `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` // Transcoder capacity Capacity int64 `protobuf:"varint,2,opt,name=capacity,proto3" json:"capacity,omitempty"` // Transcoder capabilities - Capabilities *Capabilities `protobuf:"bytes,3,opt,name=capabilities,proto3" json:"capabilities,omitempty"` + Capabilities *Capabilities `protobuf:"bytes,3,opt,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *RegisterRequest) Reset() { - *x = RegisterRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *RegisterRequest) Reset() { *m = RegisterRequest{} } +func (m *RegisterRequest) String() string { return proto.CompactTextString(m) } +func (*RegisterRequest) ProtoMessage() {} +func (*RegisterRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{16} } -func (x *RegisterRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *RegisterRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RegisterRequest.Unmarshal(m, b) } - -func (*RegisterRequest) ProtoMessage() {} - -func (x *RegisterRequest) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *RegisterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RegisterRequest.Marshal(b, m, deterministic) } - -// Deprecated: Use RegisterRequest.ProtoReflect.Descriptor instead. -func (*RegisterRequest) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{16} +func (m *RegisterRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegisterRequest.Merge(m, src) +} +func (m *RegisterRequest) XXX_Size() int { + return xxx_messageInfo_RegisterRequest.Size(m) +} +func (m *RegisterRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RegisterRequest.DiscardUnknown(m) } -func (x *RegisterRequest) GetSecret() string { - if x != nil { - return x.Secret +var xxx_messageInfo_RegisterRequest proto.InternalMessageInfo + +func (m *RegisterRequest) GetSecret() string { + if m != nil { + return m.Secret } return "" } -func (x *RegisterRequest) GetCapacity() int64 { - if x != nil { - return x.Capacity +func (m *RegisterRequest) GetCapacity() int64 { + if m != nil { + return m.Capacity } return 0 } -func (x *RegisterRequest) GetCapabilities() *Capabilities { - if x != nil { - return x.Capabilities +func (m *RegisterRequest) GetCapabilities() *Capabilities { + if m != nil { + return m.Capabilities } return nil } // Sent by the orchestrator to the transcoder type NotifySegment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // URL of the segment to transcode. Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` // Configuration for the transcoding job @@ -1612,75 +1432,67 @@ type NotifySegment struct { TaskId int64 `protobuf:"varint,16,opt,name=taskId,proto3" json:"taskId,omitempty"` // Deprecated by fullProfiles. Set of presets to transcode into. // Should be set to an invalid value to induce failures - Profiles []byte `protobuf:"bytes,17,opt,name=profiles,proto3" json:"profiles,omitempty"` + Profiles []byte `protobuf:"bytes,17,opt,name=profiles,proto3" json:"profiles,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *NotifySegment) Reset() { - *x = NotifySegment{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *NotifySegment) Reset() { *m = NotifySegment{} } +func (m *NotifySegment) String() string { return proto.CompactTextString(m) } +func (*NotifySegment) ProtoMessage() {} +func (*NotifySegment) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{17} } -func (x *NotifySegment) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *NotifySegment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NotifySegment.Unmarshal(m, b) } - -func (*NotifySegment) ProtoMessage() {} - -func (x *NotifySegment) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_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) +func (m *NotifySegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NotifySegment.Marshal(b, m, deterministic) } - -// Deprecated: Use NotifySegment.ProtoReflect.Descriptor instead. -func (*NotifySegment) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{17} +func (m *NotifySegment) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotifySegment.Merge(m, src) +} +func (m *NotifySegment) XXX_Size() int { + return xxx_messageInfo_NotifySegment.Size(m) +} +func (m *NotifySegment) XXX_DiscardUnknown() { + xxx_messageInfo_NotifySegment.DiscardUnknown(m) } -func (x *NotifySegment) GetUrl() string { - if x != nil { - return x.Url +var xxx_messageInfo_NotifySegment proto.InternalMessageInfo + +func (m *NotifySegment) GetUrl() string { + if m != nil { + return m.Url } return "" } -func (x *NotifySegment) GetSegData() *SegData { - if x != nil { - return x.SegData +func (m *NotifySegment) GetSegData() *SegData { + if m != nil { + return m.SegData } return nil } -func (x *NotifySegment) GetTaskId() int64 { - if x != nil { - return x.TaskId +func (m *NotifySegment) GetTaskId() int64 { + if m != nil { + return m.TaskId } return 0 } -func (x *NotifySegment) GetProfiles() []byte { - if x != nil { - return x.Profiles +func (m *NotifySegment) GetProfiles() []byte { + if m != nil { + return m.Profiles } return nil } // Required parameters for probabilistic micropayment tickets type TicketParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // ETH address of the recipient Recipient []byte `protobuf:"bytes,1,opt,name=recipient,proto3" json:"recipient,omitempty"` // Pay out (in Wei) to the recipient if the ticket wins @@ -1696,203 +1508,183 @@ type TicketParams struct { // Block number at which the current set of advertised TicketParams is no longer valid ExpirationBlock []byte `protobuf:"bytes,6,opt,name=expiration_block,json=expirationBlock,proto3" json:"expiration_block,omitempty"` // Expected ticket expiration params - ExpirationParams *TicketExpirationParams `protobuf:"bytes,7,opt,name=expiration_params,json=expirationParams,proto3" json:"expiration_params,omitempty"` + ExpirationParams *TicketExpirationParams `protobuf:"bytes,7,opt,name=expiration_params,json=expirationParams,proto3" json:"expiration_params,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TicketParams) Reset() { - *x = TicketParams{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TicketParams) Reset() { *m = TicketParams{} } +func (m *TicketParams) String() string { return proto.CompactTextString(m) } +func (*TicketParams) ProtoMessage() {} +func (*TicketParams) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{18} } -func (x *TicketParams) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TicketParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TicketParams.Unmarshal(m, b) } - -func (*TicketParams) ProtoMessage() {} - -func (x *TicketParams) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *TicketParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TicketParams.Marshal(b, m, deterministic) } - -// Deprecated: Use TicketParams.ProtoReflect.Descriptor instead. -func (*TicketParams) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{18} +func (m *TicketParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_TicketParams.Merge(m, src) +} +func (m *TicketParams) XXX_Size() int { + return xxx_messageInfo_TicketParams.Size(m) } +func (m *TicketParams) XXX_DiscardUnknown() { + xxx_messageInfo_TicketParams.DiscardUnknown(m) +} + +var xxx_messageInfo_TicketParams proto.InternalMessageInfo -func (x *TicketParams) GetRecipient() []byte { - if x != nil { - return x.Recipient +func (m *TicketParams) GetRecipient() []byte { + if m != nil { + return m.Recipient } return nil } -func (x *TicketParams) GetFaceValue() []byte { - if x != nil { - return x.FaceValue +func (m *TicketParams) GetFaceValue() []byte { + if m != nil { + return m.FaceValue } return nil } -func (x *TicketParams) GetWinProb() []byte { - if x != nil { - return x.WinProb +func (m *TicketParams) GetWinProb() []byte { + if m != nil { + return m.WinProb } return nil } -func (x *TicketParams) GetRecipientRandHash() []byte { - if x != nil { - return x.RecipientRandHash +func (m *TicketParams) GetRecipientRandHash() []byte { + if m != nil { + return m.RecipientRandHash } return nil } -func (x *TicketParams) GetSeed() []byte { - if x != nil { - return x.Seed +func (m *TicketParams) GetSeed() []byte { + if m != nil { + return m.Seed } return nil } -func (x *TicketParams) GetExpirationBlock() []byte { - if x != nil { - return x.ExpirationBlock +func (m *TicketParams) GetExpirationBlock() []byte { + if m != nil { + return m.ExpirationBlock } return nil } -func (x *TicketParams) GetExpirationParams() *TicketExpirationParams { - if x != nil { - return x.ExpirationParams +func (m *TicketParams) GetExpirationParams() *TicketExpirationParams { + if m != nil { + return m.ExpirationParams } return nil } // Sender Params (nonces and signatures) type TicketSenderParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Monotonically increasing counter that makes the ticket // unique relative to a particular hash commitment to a recipient's random number SenderNonce uint32 `protobuf:"varint,1,opt,name=sender_nonce,json=senderNonce,proto3" json:"sender_nonce,omitempty"` // Sender signature over the ticket - Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` + Sig []byte `protobuf:"bytes,2,opt,name=sig,proto3" json:"sig,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TicketSenderParams) Reset() { - *x = TicketSenderParams{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TicketSenderParams) Reset() { *m = TicketSenderParams{} } +func (m *TicketSenderParams) String() string { return proto.CompactTextString(m) } +func (*TicketSenderParams) ProtoMessage() {} +func (*TicketSenderParams) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{19} } -func (x *TicketSenderParams) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TicketSenderParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TicketSenderParams.Unmarshal(m, b) } - -func (*TicketSenderParams) ProtoMessage() {} - -func (x *TicketSenderParams) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *TicketSenderParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TicketSenderParams.Marshal(b, m, deterministic) } - -// Deprecated: Use TicketSenderParams.ProtoReflect.Descriptor instead. -func (*TicketSenderParams) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{19} +func (m *TicketSenderParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_TicketSenderParams.Merge(m, src) +} +func (m *TicketSenderParams) XXX_Size() int { + return xxx_messageInfo_TicketSenderParams.Size(m) } +func (m *TicketSenderParams) XXX_DiscardUnknown() { + xxx_messageInfo_TicketSenderParams.DiscardUnknown(m) +} + +var xxx_messageInfo_TicketSenderParams proto.InternalMessageInfo -func (x *TicketSenderParams) GetSenderNonce() uint32 { - if x != nil { - return x.SenderNonce +func (m *TicketSenderParams) GetSenderNonce() uint32 { + if m != nil { + return m.SenderNonce } return 0 } -func (x *TicketSenderParams) GetSig() []byte { - if x != nil { - return x.Sig +func (m *TicketSenderParams) GetSig() []byte { + if m != nil { + return m.Sig } return nil } // Ticket params for expiration related validation type TicketExpirationParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Round during which tickets are created CreationRound int64 `protobuf:"varint,1,opt,name=creation_round,json=creationRound,proto3" json:"creation_round,omitempty"` // Block hash associated with creation_round - CreationRoundBlockHash []byte `protobuf:"bytes,2,opt,name=creation_round_block_hash,json=creationRoundBlockHash,proto3" json:"creation_round_block_hash,omitempty"` + CreationRoundBlockHash []byte `protobuf:"bytes,2,opt,name=creation_round_block_hash,json=creationRoundBlockHash,proto3" json:"creation_round_block_hash,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TicketExpirationParams) Reset() { - *x = TicketExpirationParams{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TicketExpirationParams) Reset() { *m = TicketExpirationParams{} } +func (m *TicketExpirationParams) String() string { return proto.CompactTextString(m) } +func (*TicketExpirationParams) ProtoMessage() {} +func (*TicketExpirationParams) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{20} } -func (x *TicketExpirationParams) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TicketExpirationParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TicketExpirationParams.Unmarshal(m, b) } - -func (*TicketExpirationParams) ProtoMessage() {} - -func (x *TicketExpirationParams) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *TicketExpirationParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TicketExpirationParams.Marshal(b, m, deterministic) } - -// Deprecated: Use TicketExpirationParams.ProtoReflect.Descriptor instead. -func (*TicketExpirationParams) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{20} +func (m *TicketExpirationParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_TicketExpirationParams.Merge(m, src) +} +func (m *TicketExpirationParams) XXX_Size() int { + return xxx_messageInfo_TicketExpirationParams.Size(m) +} +func (m *TicketExpirationParams) XXX_DiscardUnknown() { + xxx_messageInfo_TicketExpirationParams.DiscardUnknown(m) } -func (x *TicketExpirationParams) GetCreationRound() int64 { - if x != nil { - return x.CreationRound +var xxx_messageInfo_TicketExpirationParams proto.InternalMessageInfo + +func (m *TicketExpirationParams) GetCreationRound() int64 { + if m != nil { + return m.CreationRound } return 0 } -func (x *TicketExpirationParams) GetCreationRoundBlockHash() []byte { - if x != nil { - return x.CreationRoundBlockHash +func (m *TicketExpirationParams) GetCreationRoundBlockHash() []byte { + if m != nil { + return m.CreationRoundBlockHash } return nil } @@ -1901,10 +1693,6 @@ func (x *TicketExpirationParams) GetCreationRoundBlockHash() []byte { // A payment can constitute of multiple tickets // A broadcaster might need to send multiple tickets to top up his credit with an Orchestrator type Payment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // Probabilistic micropayment ticket parameters // These remain the same even when sending multiple tickets TicketParams *TicketParams `protobuf:"bytes,1,opt,name=ticket_params,json=ticketParams,proto3" json:"ticket_params,omitempty"` @@ -1914,792 +1702,228 @@ type Payment struct { ExpirationParams *TicketExpirationParams `protobuf:"bytes,3,opt,name=expiration_params,json=expirationParams,proto3" json:"expiration_params,omitempty"` TicketSenderParams []*TicketSenderParams `protobuf:"bytes,4,rep,name=ticket_sender_params,json=ticketSenderParams,proto3" json:"ticket_sender_params,omitempty"` // O's last known price - ExpectedPrice *PriceInfo `protobuf:"bytes,5,opt,name=expected_price,json=expectedPrice,proto3" json:"expected_price,omitempty"` + ExpectedPrice *PriceInfo `protobuf:"bytes,5,opt,name=expected_price,json=expectedPrice,proto3" json:"expected_price,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Payment) Reset() { - *x = Payment{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *Payment) Reset() { *m = Payment{} } +func (m *Payment) String() string { return proto.CompactTextString(m) } +func (*Payment) ProtoMessage() {} +func (*Payment) Descriptor() ([]byte, []int) { + return fileDescriptor_034e29c79f9ba827, []int{21} } -func (x *Payment) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *Payment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Payment.Unmarshal(m, b) } - -func (*Payment) ProtoMessage() {} - -func (x *Payment) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *Payment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Payment.Marshal(b, m, deterministic) } - -// Deprecated: Use Payment.ProtoReflect.Descriptor instead. -func (*Payment) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{21} +func (m *Payment) XXX_Merge(src proto.Message) { + xxx_messageInfo_Payment.Merge(m, src) } - -func (x *Payment) GetTicketParams() *TicketParams { - if x != nil { - return x.TicketParams - } - return nil +func (m *Payment) XXX_Size() int { + return xxx_messageInfo_Payment.Size(m) } - -func (x *Payment) GetSender() []byte { - if x != nil { - return x.Sender - } - return nil +func (m *Payment) XXX_DiscardUnknown() { + xxx_messageInfo_Payment.DiscardUnknown(m) } -func (x *Payment) GetExpirationParams() *TicketExpirationParams { - if x != nil { - return x.ExpirationParams +var xxx_messageInfo_Payment proto.InternalMessageInfo + +func (m *Payment) GetTicketParams() *TicketParams { + if m != nil { + return m.TicketParams } return nil } -func (x *Payment) GetTicketSenderParams() []*TicketSenderParams { - if x != nil { - return x.TicketSenderParams +func (m *Payment) GetSender() []byte { + if m != nil { + return m.Sender } return nil } -func (x *Payment) GetExpectedPrice() *PriceInfo { - if x != nil { - return x.ExpectedPrice +func (m *Payment) GetExpirationParams() *TicketExpirationParams { + if m != nil { + return m.ExpirationParams } return nil } -// Non-binary capability constraints, such as supported ranges. -type Capabilities_Constraints struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *Capabilities_Constraints) Reset() { - *x = Capabilities_Constraints{} - if protoimpl.UnsafeEnabled { - mi := &file_net_lp_rpc_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (m *Payment) GetTicketSenderParams() []*TicketSenderParams { + if m != nil { + return m.TicketSenderParams } + return nil } -func (x *Capabilities_Constraints) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Capabilities_Constraints) ProtoMessage() {} - -func (x *Capabilities_Constraints) ProtoReflect() protoreflect.Message { - mi := &file_net_lp_rpc_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (m *Payment) GetExpectedPrice() *PriceInfo { + if m != nil { + return m.ExpectedPrice } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Capabilities_Constraints.ProtoReflect.Descriptor instead. -func (*Capabilities_Constraints) Descriptor() ([]byte, []int) { - return file_net_lp_rpc_proto_rawDescGZIP(), []int{7, 1} -} - -var File_net_lp_rpc_proto protoreflect.FileDescriptor - -var file_net_lp_rpc_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x2f, 0x6c, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x03, 0x6e, 0x65, 0x74, 0x22, 0x20, 0x0a, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x50, - 0x6f, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4d, 0x0a, 0x1c, 0x45, 0x6e, 0x64, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0a, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6e, 0x65, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1f, 0x0a, 0x1d, 0x45, 0x6e, 0x64, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x13, 0x4f, 0x72, 0x63, - 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x99, 0x01, 0x0a, - 0x06, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6e, - 0x65, 0x74, 0x2e, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x73, 0x33, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x4f, 0x53, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x06, 0x73, 0x33, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x2d, 0x0a, 0x0b, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x49, 0x52, 0x45, - 0x43, 0x54, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x53, 0x33, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xa2, 0x01, 0x0a, 0x08, 0x53, 0x33, 0x4f, - 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x78, 0x41, 0x6d, 0x7a, 0x44, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x78, 0x41, 0x6d, 0x7a, 0x44, 0x61, 0x74, 0x65, 0x22, 0x55, 0x0a, - 0x09, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x70, 0x72, 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x24, - 0x0a, 0x0d, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x50, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x50, 0x65, 0x72, - 0x55, 0x6e, 0x69, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x69, 0x74, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x62, 0x69, 0x74, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x74, 0x2e, - 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x43, 0x61, 0x70, - 0x61, 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, - 0x70, 0x61, 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x61, - 0x63, 0x69, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x0d, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, - 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x4f, 0x72, 0x63, 0x68, 0x65, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0d, 0x74, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x70, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x0c, - 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x20, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0x60, 0x0a, 0x09, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf4, 0x04, 0x0a, 0x07, - 0x53, 0x65, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x69, 0x66, - 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6e, 0x65, 0x74, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, - 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x0a, - 0x14, 0x63, 0x61, 0x6c, 0x63, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x75, 0x61, 0x6c, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x61, 0x6c, - 0x63, 0x50, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x25, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0b, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, - 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x37, 0x0a, - 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x32, 0x18, 0x22, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x32, 0x12, 0x37, 0x0a, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x33, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6e, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x52, 0x0d, 0x66, 0x75, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x33, 0x12, - 0x41, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6e, 0x65, - 0x74, 0x2e, 0x53, 0x65, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x11, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, - 0x46, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x69, 0x6e, - 0x69, 0x74, 0x22, 0x33, 0x0a, 0x0d, 0x53, 0x65, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x6f, 0x22, 0xcc, 0x05, 0x0a, 0x0c, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x70, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x66, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x70, 0x73, 0x44, - 0x65, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x70, 0x73, 0x44, 0x65, 0x6e, - 0x12, 0x33, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x6f, 0x70, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x67, 0x6f, 0x70, 0x12, 0x36, 0x0a, 0x07, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x56, - 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x07, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x65, 0x70, 0x74, 0x68, 0x18, 0x1a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, - 0x47, 0x0a, 0x0c, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, - 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, - 0x6f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x61, 0x53, - 0x75, 0x62, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x63, 0x68, 0x72, 0x6f, - 0x6d, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x22, 0x1d, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0a, 0x0a, 0x06, - 0x4d, 0x50, 0x45, 0x47, 0x54, 0x53, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x50, 0x34, 0x10, - 0x01, 0x22, 0x6a, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x13, 0x0a, 0x0f, - 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, - 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, - 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x4d, 0x41, 0x49, - 0x4e, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x48, 0x49, 0x47, 0x48, - 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, - 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x22, 0x32, 0x0a, - 0x0a, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x48, - 0x32, 0x36, 0x34, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x32, 0x36, 0x35, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x56, 0x50, 0x38, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x50, 0x39, 0x10, - 0x03, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x61, 0x53, 0x75, 0x62, 0x73, 0x61, - 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x41, - 0x5f, 0x34, 0x32, 0x30, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x41, - 0x5f, 0x34, 0x32, 0x32, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x41, - 0x5f, 0x34, 0x34, 0x34, 0x10, 0x02, 0x22, 0x71, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x6f, 0x64, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, - 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x70, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x65, 0x72, 0x63, 0x65, 0x70, 0x74, 0x75, - 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x55, 0x72, 0x6c, 0x22, 0x59, 0x0a, 0x0d, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, - 0x65, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x73, 0x69, 0x67, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6e, 0x65, 0x74, - 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x7c, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, - 0x89, 0x01, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x07, 0x73, 0x65, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x74, - 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x4a, - 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x21, 0x10, 0x22, 0x22, 0x9f, 0x02, 0x0a, 0x0c, - 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x66, 0x61, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x77, 0x69, 0x6e, - 0x50, 0x72, 0x6f, 0x62, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x11, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x64, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x48, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x10, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x49, 0x0a, - 0x12, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x7a, 0x0a, 0x16, 0x54, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x22, 0xa5, 0x02, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x54, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0c, 0x74, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x48, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, - 0x74, 0x2e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x49, 0x0a, 0x14, 0x74, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x54, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x12, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x35, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6e, 0x65, 0x74, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x32, 0xd8, 0x01, 0x0a, - 0x0c, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x42, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x18, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6e, 0x65, 0x74, - 0x2e, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x5e, 0x0a, 0x15, 0x45, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, - 0x69, 0x6e, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x6e, 0x65, 0x74, - 0x2e, 0x45, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, - 0x6e, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x24, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x0d, 0x2e, 0x6e, 0x65, 0x74, 0x2e, - 0x50, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6e, 0x67, 0x1a, 0x0d, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x50, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6e, 0x67, 0x32, 0x4e, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x6e, 0x65, - 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x12, 0x2e, 0x6e, 0x65, 0x74, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x6e, 0x65, 0x74, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_net_lp_rpc_proto_rawDescOnce sync.Once - file_net_lp_rpc_proto_rawDescData = file_net_lp_rpc_proto_rawDesc -) - -func file_net_lp_rpc_proto_rawDescGZIP() []byte { - file_net_lp_rpc_proto_rawDescOnce.Do(func() { - file_net_lp_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_net_lp_rpc_proto_rawDescData) - }) - return file_net_lp_rpc_proto_rawDescData -} - -var file_net_lp_rpc_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_net_lp_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 24) -var file_net_lp_rpc_proto_goTypes = []interface{}{ - (OSInfo_StorageType)(0), // 0: net.OSInfo.StorageType - (VideoProfile_Format)(0), // 1: net.VideoProfile.Format - (VideoProfile_Profile)(0), // 2: net.VideoProfile.Profile - (VideoProfile_VideoCodec)(0), // 3: net.VideoProfile.VideoCodec - (VideoProfile_ChromaSubsampling)(0), // 4: net.VideoProfile.ChromaSubsampling - (*PingPong)(nil), // 5: net.PingPong - (*EndTranscodingSessionRequest)(nil), // 6: net.EndTranscodingSessionRequest - (*EndTranscodingSessionResponse)(nil), // 7: net.EndTranscodingSessionResponse - (*OrchestratorRequest)(nil), // 8: net.OrchestratorRequest - (*OSInfo)(nil), // 9: net.OSInfo - (*S3OSInfo)(nil), // 10: net.S3OSInfo - (*PriceInfo)(nil), // 11: net.PriceInfo - (*Capabilities)(nil), // 12: net.Capabilities - (*OrchestratorInfo)(nil), // 13: net.OrchestratorInfo - (*AuthToken)(nil), // 14: net.AuthToken - (*SegData)(nil), // 15: net.SegData - (*SegParameters)(nil), // 16: net.SegParameters - (*VideoProfile)(nil), // 17: net.VideoProfile - (*TranscodedSegmentData)(nil), // 18: net.TranscodedSegmentData - (*TranscodeData)(nil), // 19: net.TranscodeData - (*TranscodeResult)(nil), // 20: net.TranscodeResult - (*RegisterRequest)(nil), // 21: net.RegisterRequest - (*NotifySegment)(nil), // 22: net.NotifySegment - (*TicketParams)(nil), // 23: net.TicketParams - (*TicketSenderParams)(nil), // 24: net.TicketSenderParams - (*TicketExpirationParams)(nil), // 25: net.TicketExpirationParams - (*Payment)(nil), // 26: net.Payment - nil, // 27: net.Capabilities.CapacitiesEntry - (*Capabilities_Constraints)(nil), // 28: net.Capabilities.Constraints -} -var file_net_lp_rpc_proto_depIdxs = []int32{ - 14, // 0: net.EndTranscodingSessionRequest.auth_token:type_name -> net.AuthToken - 0, // 1: net.OSInfo.storageType:type_name -> net.OSInfo.StorageType - 10, // 2: net.OSInfo.s3info:type_name -> net.S3OSInfo - 27, // 3: net.Capabilities.capacities:type_name -> net.Capabilities.CapacitiesEntry - 23, // 4: net.OrchestratorInfo.ticket_params:type_name -> net.TicketParams - 11, // 5: net.OrchestratorInfo.price_info:type_name -> net.PriceInfo - 12, // 6: net.OrchestratorInfo.capabilities:type_name -> net.Capabilities - 14, // 7: net.OrchestratorInfo.auth_token:type_name -> net.AuthToken - 9, // 8: net.OrchestratorInfo.storage:type_name -> net.OSInfo - 12, // 9: net.SegData.capabilities:type_name -> net.Capabilities - 14, // 10: net.SegData.auth_token:type_name -> net.AuthToken - 9, // 11: net.SegData.storage:type_name -> net.OSInfo - 17, // 12: net.SegData.fullProfiles:type_name -> net.VideoProfile - 17, // 13: net.SegData.fullProfiles2:type_name -> net.VideoProfile - 17, // 14: net.SegData.fullProfiles3:type_name -> net.VideoProfile - 16, // 15: net.SegData.segment_parameters:type_name -> net.SegParameters - 1, // 16: net.VideoProfile.format:type_name -> net.VideoProfile.Format - 2, // 17: net.VideoProfile.profile:type_name -> net.VideoProfile.Profile - 3, // 18: net.VideoProfile.encoder:type_name -> net.VideoProfile.VideoCodec - 4, // 19: net.VideoProfile.chromaFormat:type_name -> net.VideoProfile.ChromaSubsampling - 18, // 20: net.TranscodeData.segments:type_name -> net.TranscodedSegmentData - 19, // 21: net.TranscodeResult.data:type_name -> net.TranscodeData - 13, // 22: net.TranscodeResult.info:type_name -> net.OrchestratorInfo - 12, // 23: net.RegisterRequest.capabilities:type_name -> net.Capabilities - 15, // 24: net.NotifySegment.segData:type_name -> net.SegData - 25, // 25: net.TicketParams.expiration_params:type_name -> net.TicketExpirationParams - 23, // 26: net.Payment.ticket_params:type_name -> net.TicketParams - 25, // 27: net.Payment.expiration_params:type_name -> net.TicketExpirationParams - 24, // 28: net.Payment.ticket_sender_params:type_name -> net.TicketSenderParams - 11, // 29: net.Payment.expected_price:type_name -> net.PriceInfo - 8, // 30: net.Orchestrator.GetOrchestrator:input_type -> net.OrchestratorRequest - 6, // 31: net.Orchestrator.EndTranscodingSession:input_type -> net.EndTranscodingSessionRequest - 5, // 32: net.Orchestrator.Ping:input_type -> net.PingPong - 21, // 33: net.Transcoder.RegisterTranscoder:input_type -> net.RegisterRequest - 13, // 34: net.Orchestrator.GetOrchestrator:output_type -> net.OrchestratorInfo - 7, // 35: net.Orchestrator.EndTranscodingSession:output_type -> net.EndTranscodingSessionResponse - 5, // 36: net.Orchestrator.Ping:output_type -> net.PingPong - 22, // 37: net.Transcoder.RegisterTranscoder:output_type -> net.NotifySegment - 34, // [34:38] is the sub-list for method output_type - 30, // [30:34] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name -} - -func init() { file_net_lp_rpc_proto_init() } -func file_net_lp_rpc_proto_init() { - if File_net_lp_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_net_lp_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingPong); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EndTranscodingSessionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EndTranscodingSessionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrchestratorRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OSInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*S3OSInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Capabilities); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrchestratorInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthToken); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SegData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SegParameters); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoProfile); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TranscodedSegmentData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TranscodeData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TranscodeResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifySegment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TicketParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TicketSenderParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TicketExpirationParams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Payment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_net_lp_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Capabilities_Constraints); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_net_lp_rpc_proto_msgTypes[15].OneofWrappers = []interface{}{ - (*TranscodeResult_Error)(nil), - (*TranscodeResult_Data)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_net_lp_rpc_proto_rawDesc, - NumEnums: 5, - NumMessages: 24, - NumExtensions: 0, - NumServices: 2, - }, - GoTypes: file_net_lp_rpc_proto_goTypes, - DependencyIndexes: file_net_lp_rpc_proto_depIdxs, - EnumInfos: file_net_lp_rpc_proto_enumTypes, - MessageInfos: file_net_lp_rpc_proto_msgTypes, - }.Build() - File_net_lp_rpc_proto = out.File - file_net_lp_rpc_proto_rawDesc = nil - file_net_lp_rpc_proto_goTypes = nil - file_net_lp_rpc_proto_depIdxs = nil +func init() { + proto.RegisterEnum("net.OSInfo_StorageType", OSInfo_StorageType_name, OSInfo_StorageType_value) + proto.RegisterEnum("net.VideoProfile_Format", VideoProfile_Format_name, VideoProfile_Format_value) + proto.RegisterEnum("net.VideoProfile_Profile", VideoProfile_Profile_name, VideoProfile_Profile_value) + proto.RegisterEnum("net.VideoProfile_VideoCodec", VideoProfile_VideoCodec_name, VideoProfile_VideoCodec_value) + proto.RegisterEnum("net.VideoProfile_ChromaSubsampling", VideoProfile_ChromaSubsampling_name, VideoProfile_ChromaSubsampling_value) + proto.RegisterType((*PingPong)(nil), "net.PingPong") + proto.RegisterType((*EndTranscodingSessionRequest)(nil), "net.EndTranscodingSessionRequest") + proto.RegisterType((*EndTranscodingSessionResponse)(nil), "net.EndTranscodingSessionResponse") + proto.RegisterType((*OrchestratorRequest)(nil), "net.OrchestratorRequest") + proto.RegisterType((*OSInfo)(nil), "net.OSInfo") + proto.RegisterType((*S3OSInfo)(nil), "net.S3OSInfo") + proto.RegisterType((*PriceInfo)(nil), "net.PriceInfo") + proto.RegisterType((*Capabilities)(nil), "net.Capabilities") + proto.RegisterMapType((map[uint32]uint32)(nil), "net.Capabilities.CapacitiesEntry") + proto.RegisterType((*Capabilities_Constraints)(nil), "net.Capabilities.Constraints") + proto.RegisterType((*OrchestratorInfo)(nil), "net.OrchestratorInfo") + proto.RegisterType((*AuthToken)(nil), "net.AuthToken") + proto.RegisterType((*SegData)(nil), "net.SegData") + proto.RegisterType((*SegParameters)(nil), "net.SegParameters") + proto.RegisterType((*VideoProfile)(nil), "net.VideoProfile") + proto.RegisterType((*TranscodedSegmentData)(nil), "net.TranscodedSegmentData") + proto.RegisterType((*TranscodeData)(nil), "net.TranscodeData") + proto.RegisterType((*TranscodeResult)(nil), "net.TranscodeResult") + proto.RegisterType((*RegisterRequest)(nil), "net.RegisterRequest") + proto.RegisterType((*NotifySegment)(nil), "net.NotifySegment") + proto.RegisterType((*TicketParams)(nil), "net.TicketParams") + proto.RegisterType((*TicketSenderParams)(nil), "net.TicketSenderParams") + proto.RegisterType((*TicketExpirationParams)(nil), "net.TicketExpirationParams") + proto.RegisterType((*Payment)(nil), "net.Payment") +} + +func init() { + proto.RegisterFile("net/lp_rpc.proto", fileDescriptor_034e29c79f9ba827) +} + +var fileDescriptor_034e29c79f9ba827 = []byte{ + // 1911 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xef, 0x6e, 0x1b, 0xc7, + 0x11, 0x17, 0xff, 0x88, 0x7f, 0x86, 0xa4, 0x74, 0x5c, 0x4b, 0xca, 0x49, 0xb1, 0x53, 0xf9, 0x12, + 0x07, 0xca, 0x07, 0x2b, 0x06, 0x25, 0xbb, 0x71, 0x81, 0xa2, 0xa5, 0x24, 0x5a, 0x62, 0x60, 0x49, + 0xc4, 0x52, 0x36, 0xd0, 0x7e, 0x28, 0x7b, 0xba, 0x5b, 0x92, 0x57, 0x91, 0x7b, 0xe7, 0xbd, 0x65, + 0x6c, 0x05, 0x7d, 0x81, 0x3e, 0x42, 0xfb, 0xa5, 0x40, 0x81, 0xbe, 0x47, 0x1f, 0xa0, 0x0f, 0x50, + 0xf4, 0x39, 0xfa, 0x00, 0xc5, 0xce, 0xee, 0x1d, 0x8f, 0xa2, 0x92, 0x18, 0xf9, 0xb6, 0xf3, 0x9b, + 0xd9, 0xd9, 0xd9, 0x99, 0x9d, 0x3f, 0x77, 0x60, 0x71, 0x26, 0xbf, 0x9e, 0x44, 0x03, 0x11, 0x79, + 0xfb, 0x91, 0x08, 0x65, 0x48, 0x0a, 0x9c, 0x49, 0x67, 0x17, 0x2a, 0xbd, 0x80, 0x8f, 0x7a, 0x21, + 0x1f, 0x91, 0x0d, 0x58, 0xfd, 0xce, 0x9d, 0xcc, 0x98, 0x9d, 0xdb, 0xcd, 0xed, 0xd5, 0xa9, 0x26, + 0x9c, 0x73, 0x78, 0xd8, 0xe1, 0xfe, 0x95, 0x70, 0x79, 0xec, 0x85, 0x7e, 0xc0, 0x47, 0x7d, 0x16, + 0xc7, 0x41, 0xc8, 0x29, 0x7b, 0x37, 0x63, 0xb1, 0x24, 0x4f, 0x01, 0xdc, 0x99, 0x1c, 0x0f, 0x64, + 0x78, 0xc3, 0x38, 0x6e, 0xad, 0xb5, 0xd6, 0xf6, 0x39, 0x93, 0xfb, 0xed, 0x99, 0x1c, 0x5f, 0x29, + 0x94, 0x56, 0xdd, 0x64, 0xe9, 0xfc, 0x02, 0x1e, 0xfd, 0x80, 0xba, 0x38, 0x0a, 0x79, 0xcc, 0x9c, + 0x36, 0x3c, 0xb8, 0x14, 0xde, 0x98, 0xc5, 0x52, 0xb8, 0x32, 0x14, 0xc9, 0x31, 0x36, 0x94, 0x5d, + 0xdf, 0x17, 0x2c, 0x8e, 0x8d, 0x79, 0x09, 0x49, 0x2c, 0x28, 0xc4, 0xc1, 0xc8, 0xce, 0x23, 0xaa, + 0x96, 0xce, 0x5f, 0x73, 0x50, 0xba, 0xec, 0x77, 0xf9, 0x30, 0x24, 0x2f, 0xa1, 0x16, 0xcb, 0x50, + 0xb8, 0x23, 0x76, 0x75, 0x1b, 0xe9, 0x9b, 0xad, 0xb5, 0x3e, 0x41, 0xf3, 0xb4, 0xc4, 0x7e, 0x7f, + 0xce, 0xa6, 0x59, 0x59, 0xf2, 0x04, 0x4a, 0xf1, 0x41, 0xc0, 0x87, 0xa1, 0x6d, 0xe1, 0xa5, 0x1a, + 0xb8, 0xab, 0x7f, 0xa0, 0xf7, 0x51, 0xc3, 0x74, 0x9e, 0x42, 0x2d, 0xa3, 0x82, 0x00, 0x94, 0x4e, + 0xba, 0xb4, 0x73, 0x7c, 0x65, 0xad, 0x90, 0x12, 0xe4, 0xfb, 0x07, 0x56, 0x4e, 0x61, 0xa7, 0x97, + 0x97, 0xa7, 0xaf, 0x3b, 0x56, 0xde, 0xf9, 0x47, 0x0e, 0x2a, 0x89, 0x0e, 0x42, 0xa0, 0x38, 0x0e, + 0x63, 0x89, 0x66, 0x55, 0x29, 0xae, 0xd5, 0x75, 0x6e, 0xd8, 0x2d, 0x5e, 0xa7, 0x4a, 0xd5, 0x92, + 0x6c, 0x41, 0x29, 0x0a, 0x27, 0x81, 0x77, 0x6b, 0x17, 0x10, 0x34, 0x14, 0x79, 0x08, 0xd5, 0x38, + 0x18, 0x71, 0x57, 0xce, 0x04, 0xb3, 0x8b, 0xc8, 0x9a, 0x03, 0xe4, 0x33, 0x00, 0x4f, 0x30, 0x9f, + 0x71, 0x19, 0xb8, 0x13, 0x7b, 0x15, 0xd9, 0x19, 0x84, 0xec, 0x40, 0xe5, 0x43, 0x7b, 0xfa, 0xfd, + 0x89, 0x2b, 0x99, 0x5d, 0x42, 0x6e, 0x4a, 0x3b, 0x6f, 0xa0, 0xda, 0x13, 0x81, 0xc7, 0xd0, 0x48, + 0x07, 0xea, 0x91, 0x22, 0x7a, 0x4c, 0xbc, 0xe1, 0x81, 0x36, 0xb6, 0x40, 0x17, 0x30, 0xf2, 0x05, + 0x34, 0xa2, 0xe0, 0x03, 0x9b, 0xc4, 0x89, 0x50, 0x1e, 0x85, 0x16, 0x41, 0xe7, 0xbf, 0x79, 0xa8, + 0x1f, 0xbb, 0x91, 0x7b, 0x1d, 0x4c, 0x02, 0x19, 0xb0, 0x58, 0xdd, 0xe0, 0x3a, 0x90, 0xb1, 0x14, + 0x01, 0x1f, 0xd9, 0xb9, 0xdd, 0xc2, 0x5e, 0x91, 0xce, 0x01, 0xb2, 0x0b, 0xb5, 0xa9, 0xcb, 0x7d, + 0xf5, 0x0a, 0x02, 0x16, 0xdb, 0x79, 0xe4, 0x67, 0x21, 0xd2, 0x06, 0xf0, 0xdc, 0xc8, 0xf5, 0x50, + 0x9b, 0x5d, 0xd8, 0x2d, 0xec, 0xd5, 0x5a, 0x8f, 0x31, 0x4c, 0xd9, 0x63, 0x90, 0xd0, 0x32, 0x1d, + 0x2e, 0xc5, 0x2d, 0xcd, 0x6c, 0x52, 0xef, 0xea, 0x3b, 0x26, 0xd4, 0x0b, 0x34, 0x2e, 0x4c, 0x48, + 0xf2, 0x1b, 0xa8, 0x79, 0x21, 0x57, 0xcf, 0x30, 0xe0, 0x32, 0x46, 0x0f, 0xd6, 0x5a, 0x8f, 0xee, + 0xd1, 0x3e, 0x17, 0xa2, 0xd9, 0x1d, 0x3b, 0xbf, 0x86, 0xf5, 0x3b, 0x27, 0x27, 0xc1, 0x55, 0x2e, + 0x6c, 0xe8, 0xe0, 0xa6, 0x49, 0x97, 0x47, 0x4c, 0x13, 0xbf, 0xca, 0x7f, 0x93, 0xdb, 0x79, 0x0a, + 0xb5, 0x8c, 0x6a, 0x15, 0xcf, 0x69, 0xc0, 0xdf, 0x1a, 0x5b, 0xf5, 0x8b, 0xc9, 0x20, 0xce, 0xbf, + 0xf2, 0x60, 0x65, 0x13, 0x07, 0x63, 0xf7, 0x19, 0x80, 0x34, 0xa9, 0xc6, 0x44, 0xb2, 0x69, 0x8e, + 0x90, 0x17, 0xd0, 0x90, 0x81, 0x77, 0xc3, 0xe4, 0x20, 0x72, 0x85, 0x3b, 0x8d, 0xd1, 0x8a, 0x5a, + 0xab, 0x89, 0xb7, 0xbc, 0x42, 0x4e, 0x0f, 0x19, 0xb4, 0x2e, 0x33, 0x94, 0x4a, 0x7a, 0x8c, 0xff, + 0x00, 0xf3, 0xa3, 0x90, 0x49, 0xfa, 0xf4, 0xdd, 0xd0, 0x6a, 0x94, 0x3e, 0xa1, 0x4c, 0xf2, 0x16, + 0x17, 0x93, 0xf7, 0x39, 0xd4, 0xbd, 0x8c, 0x33, 0x8d, 0x97, 0x9b, 0x4b, 0x5e, 0xa6, 0x0b, 0x62, + 0x77, 0x8a, 0x4e, 0xe9, 0x27, 0x8a, 0x0e, 0x79, 0x02, 0x65, 0x93, 0xd9, 0xf6, 0x2e, 0x3e, 0x92, + 0x5a, 0xa6, 0x02, 0xd0, 0x84, 0xe7, 0xfc, 0x11, 0xaa, 0xe9, 0x76, 0x15, 0x98, 0x79, 0x49, 0xab, + 0x53, 0x4d, 0x90, 0x47, 0x00, 0xb1, 0x2e, 0x58, 0x83, 0xc0, 0x37, 0x49, 0x5a, 0x35, 0x48, 0xd7, + 0x57, 0xfe, 0x66, 0x1f, 0xa2, 0x40, 0xb8, 0x52, 0x05, 0xa9, 0x80, 0x49, 0x90, 0x41, 0x9c, 0xff, + 0x15, 0xa1, 0xdc, 0x67, 0xa3, 0x13, 0x57, 0xba, 0x18, 0x50, 0x97, 0x07, 0x43, 0x16, 0xcb, 0xae, + 0x6f, 0x4e, 0xc9, 0x20, 0x58, 0xd7, 0xd8, 0x3b, 0x93, 0x49, 0x6a, 0x89, 0xe5, 0xc2, 0x8d, 0xc7, + 0xa8, 0xb7, 0x4e, 0x71, 0xad, 0xd2, 0x38, 0x12, 0xe1, 0x30, 0x98, 0xb0, 0xc4, 0xb7, 0x29, 0x9d, + 0x54, 0xc6, 0xd5, 0xb4, 0x32, 0x2a, 0x69, 0x7f, 0x66, 0xac, 0x53, 0x5e, 0x5b, 0xa5, 0x29, 0xbd, + 0x14, 0x8a, 0xf2, 0xcf, 0x09, 0x45, 0xe5, 0xa7, 0x42, 0xf1, 0x0c, 0x36, 0x3c, 0x77, 0xe2, 0x0d, + 0x22, 0x26, 0x3c, 0x16, 0xc9, 0x99, 0x3b, 0x19, 0xe0, 0x9d, 0x60, 0x37, 0xb7, 0x57, 0xa1, 0x44, + 0xf1, 0x7a, 0x29, 0xeb, 0x4c, 0xdd, 0xf0, 0xe3, 0x82, 0xa7, 0xcc, 0x1f, 0xce, 0x26, 0x93, 0x5e, + 0xe2, 0x8c, 0xc7, 0x28, 0xab, 0xcd, 0x7f, 0x1b, 0xf8, 0x2c, 0x34, 0x1c, 0xba, 0x20, 0x46, 0x7e, + 0x09, 0x8d, 0x2c, 0xdd, 0xb2, 0x9d, 0x1f, 0xda, 0xb7, 0x28, 0x77, 0x77, 0xe3, 0x81, 0xfd, 0xf9, + 0x47, 0x6d, 0x3c, 0x20, 0x6d, 0x20, 0x31, 0x1b, 0x4d, 0x19, 0x37, 0x49, 0xc7, 0x24, 0x13, 0xb1, + 0xfd, 0x04, 0x1d, 0x47, 0x74, 0x8f, 0x61, 0xa3, 0x5e, 0xca, 0xa1, 0x4d, 0x23, 0x3d, 0x87, 0xc8, + 0x3e, 0x90, 0x57, 0xa1, 0xf0, 0x58, 0xda, 0x3b, 0x03, 0x55, 0x73, 0xbf, 0xd4, 0x2e, 0x5c, 0xe6, + 0x38, 0x07, 0xd0, 0x58, 0xd0, 0xa9, 0x5e, 0xd2, 0x50, 0x84, 0x53, 0x7c, 0x75, 0x45, 0x8a, 0x6b, + 0xb2, 0x06, 0x79, 0x19, 0xe2, 0x73, 0x2b, 0xd2, 0xbc, 0x0c, 0x9d, 0x7f, 0xaf, 0x42, 0x3d, 0x7b, + 0x0f, 0xb5, 0x89, 0xbb, 0x53, 0x86, 0xed, 0xb0, 0x4a, 0x71, 0xad, 0xb2, 0xe4, 0x7d, 0xe0, 0xcb, + 0xb1, 0xdd, 0xc4, 0xd7, 0xa4, 0x09, 0xd5, 0xb1, 0xc6, 0x2c, 0x18, 0x8d, 0xa5, 0x4d, 0x10, 0x36, + 0x94, 0xaa, 0x03, 0xd7, 0x81, 0x2a, 0x4f, 0xcc, 0x7e, 0x80, 0x8c, 0x84, 0x54, 0x4f, 0x75, 0x18, + 0xc5, 0xf6, 0x86, 0x2e, 0x8c, 0xc3, 0x28, 0x26, 0xcf, 0xa0, 0x34, 0x0c, 0xc5, 0xd4, 0x95, 0xf6, + 0x26, 0x36, 0x6d, 0x7b, 0xc9, 0xb1, 0xfb, 0xaf, 0x90, 0x4f, 0x8d, 0x9c, 0x3a, 0x75, 0x18, 0xc5, + 0x27, 0x8c, 0xdb, 0x5b, 0xa8, 0xc6, 0x50, 0xe4, 0x00, 0xca, 0x26, 0x25, 0xec, 0x4f, 0x50, 0xd5, + 0xf6, 0xb2, 0xaa, 0x24, 0x56, 0x89, 0xa4, 0x32, 0x68, 0x14, 0x46, 0xb6, 0x8d, 0x66, 0xaa, 0x25, + 0x79, 0x01, 0x65, 0xc6, 0x75, 0x21, 0xdd, 0x46, 0x35, 0x0f, 0x97, 0xd5, 0x20, 0x71, 0x1c, 0xfa, + 0xcc, 0xa3, 0x89, 0x30, 0x36, 0xe2, 0x70, 0x12, 0x8a, 0x13, 0x16, 0xc9, 0xb1, 0xbd, 0x83, 0x0a, + 0x33, 0x08, 0x39, 0x85, 0xba, 0x37, 0x16, 0xe1, 0xd4, 0xd5, 0xd7, 0xb1, 0x3f, 0x45, 0xe5, 0x9f, + 0x2f, 0x2b, 0x3f, 0x46, 0xa9, 0xfe, 0xec, 0x3a, 0x76, 0xa7, 0xd1, 0x24, 0xe0, 0x23, 0xba, 0xb0, + 0x51, 0x79, 0xf7, 0xdd, 0xcc, 0x9d, 0x04, 0xf2, 0xd6, 0x7e, 0x88, 0x0e, 0x48, 0x48, 0xe7, 0x11, + 0x94, 0x8c, 0x0c, 0x40, 0xe9, 0xbc, 0xd7, 0x39, 0xbd, 0xea, 0x5b, 0x2b, 0xa4, 0x0c, 0x85, 0xf3, + 0xde, 0xa1, 0x95, 0x73, 0xfe, 0x04, 0xe5, 0x24, 0xc6, 0x0f, 0x60, 0xbd, 0x73, 0x71, 0x7c, 0x79, + 0xd2, 0xa1, 0x83, 0x93, 0xce, 0xab, 0xf6, 0x9b, 0xd7, 0x6a, 0x8e, 0x69, 0x42, 0xe3, 0xac, 0xf5, + 0xe2, 0x70, 0x70, 0xd4, 0xee, 0x77, 0x5e, 0x77, 0x2f, 0x3a, 0x56, 0x8e, 0x34, 0xa0, 0x8a, 0xd0, + 0x79, 0xbb, 0x7b, 0x61, 0xe5, 0x53, 0xf2, 0xac, 0x7b, 0x7a, 0x66, 0x15, 0xc8, 0x36, 0x6c, 0x22, + 0x79, 0x7c, 0x79, 0xd1, 0xbf, 0xa2, 0xed, 0xee, 0x45, 0xe7, 0x44, 0xb3, 0x8a, 0x4e, 0x0b, 0x60, + 0xee, 0x24, 0x52, 0x81, 0xa2, 0x12, 0xb4, 0x56, 0xcc, 0xea, 0xb9, 0x95, 0x53, 0x66, 0xbd, 0xed, + 0x7d, 0x63, 0xe5, 0xf5, 0xe2, 0xa5, 0x55, 0x70, 0x8e, 0xa1, 0xb9, 0x74, 0x77, 0xb2, 0x06, 0x70, + 0x7c, 0x46, 0x2f, 0xcf, 0xdb, 0x83, 0xc3, 0xd6, 0x33, 0x6b, 0x65, 0x81, 0x6e, 0x59, 0xb9, 0x2c, + 0x7d, 0x78, 0x68, 0xe5, 0x9d, 0x77, 0xb0, 0x99, 0x4c, 0x9d, 0xcc, 0xef, 0xeb, 0x94, 0xc2, 0x3a, + 0x6c, 0x41, 0x61, 0x26, 0x26, 0xa6, 0x39, 0xaa, 0x25, 0x0e, 0x5c, 0x38, 0xb8, 0x98, 0xe2, 0x6b, + 0x28, 0xb2, 0x0f, 0x0f, 0xee, 0x94, 0xad, 0x81, 0xda, 0xa9, 0xa7, 0xb2, 0x66, 0xb4, 0x50, 0xb6, + 0xde, 0x88, 0x89, 0xf3, 0x3b, 0x68, 0xa4, 0x47, 0xe2, 0x51, 0x2f, 0xa0, 0x62, 0x92, 0x39, 0xc6, + 0x71, 0xa7, 0xd6, 0xda, 0xd1, 0x9d, 0xf6, 0x3e, 0xc3, 0x68, 0x2a, 0x7b, 0xcf, 0x88, 0xfb, 0xb7, + 0x1c, 0xac, 0xa7, 0xbb, 0x28, 0x8b, 0x67, 0x13, 0x99, 0x34, 0x8c, 0xdc, 0xbc, 0x61, 0x6c, 0xc1, + 0x2a, 0x13, 0x22, 0x14, 0xba, 0x51, 0x9d, 0xad, 0x50, 0x4d, 0x92, 0x3d, 0x28, 0xfa, 0xae, 0x74, + 0x4d, 0xe3, 0x26, 0x8b, 0x36, 0xa8, 0xb3, 0xcf, 0x56, 0x28, 0x4a, 0x90, 0xaf, 0xa0, 0x98, 0x19, + 0x81, 0x37, 0x75, 0xe5, 0xbd, 0x33, 0x65, 0x50, 0x14, 0x39, 0xaa, 0x40, 0x49, 0xa0, 0x21, 0xce, + 0x9f, 0x61, 0x9d, 0xb2, 0x51, 0x10, 0x4b, 0x96, 0x8e, 0xef, 0x5b, 0x50, 0x8a, 0x99, 0x27, 0x58, + 0x32, 0xeb, 0x1a, 0x4a, 0x35, 0x24, 0x33, 0x8c, 0xdd, 0x1a, 0x67, 0xa7, 0xf4, 0x52, 0x43, 0x2a, + 0x7c, 0x54, 0x43, 0x72, 0xfe, 0x92, 0x83, 0xc6, 0x45, 0x28, 0x83, 0xe1, 0xad, 0x71, 0xe6, 0x3d, + 0x11, 0xfe, 0x12, 0xca, 0xb1, 0x6e, 0xc3, 0x46, 0x6b, 0x3d, 0x29, 0xbc, 0xe8, 0xf9, 0x84, 0xa9, + 0xcc, 0x96, 0x6e, 0x7c, 0xd3, 0xf5, 0xd1, 0x01, 0x05, 0x6a, 0xa8, 0x85, 0xae, 0xdb, 0x5c, 0xec, + 0xba, 0xdf, 0x16, 0x2b, 0x79, 0xab, 0xf0, 0x6d, 0xb1, 0xf2, 0xd8, 0x72, 0x9c, 0xbf, 0xe7, 0xa1, + 0x9e, 0x1d, 0xa3, 0xd4, 0xc4, 0x2b, 0x98, 0x17, 0x44, 0x01, 0xe3, 0xd2, 0xf4, 0xfc, 0x39, 0xa0, + 0xa6, 0x8b, 0xa1, 0xeb, 0xb1, 0xc1, 0x7c, 0x22, 0xac, 0xd3, 0xaa, 0x42, 0xde, 0x2a, 0x80, 0x6c, + 0x43, 0xe5, 0x7d, 0xc0, 0x07, 0x91, 0x08, 0xaf, 0xcd, 0x0c, 0x50, 0x7e, 0x1f, 0xf0, 0x9e, 0x08, + 0xaf, 0xd5, 0xd3, 0x4c, 0xd5, 0x0c, 0x84, 0xcb, 0x7d, 0xdd, 0x55, 0xf5, 0x44, 0xd0, 0x4c, 0x59, + 0xd4, 0xe5, 0x3e, 0x36, 0x55, 0x02, 0xc5, 0x98, 0x31, 0xdf, 0xcc, 0x06, 0xb8, 0x26, 0x5f, 0x81, + 0x35, 0x1f, 0x55, 0x06, 0xd7, 0x93, 0xd0, 0xbb, 0xc1, 0x21, 0xa1, 0x4e, 0xd7, 0xe7, 0xf8, 0x91, + 0x82, 0xc9, 0x19, 0x34, 0x33, 0xa2, 0x66, 0x76, 0xd4, 0x03, 0xc3, 0xa7, 0x99, 0xd9, 0xb1, 0x93, + 0xca, 0x98, 0x29, 0x32, 0x73, 0x80, 0x46, 0x9c, 0x2e, 0x10, 0x2d, 0xdb, 0x67, 0xdc, 0x67, 0xc2, + 0xb8, 0xe9, 0x31, 0xd4, 0x63, 0xa4, 0x07, 0x3c, 0xe4, 0x1e, 0x33, 0x03, 0x73, 0x4d, 0x63, 0x17, + 0x0a, 0xba, 0x27, 0x27, 0xbe, 0x87, 0xad, 0xfb, 0x8f, 0x25, 0x4f, 0x60, 0xcd, 0x13, 0x4c, 0x1b, + 0x2b, 0xc2, 0x19, 0xf7, 0x4d, 0x92, 0x34, 0x12, 0x94, 0x2a, 0x90, 0xbc, 0x84, 0xed, 0x45, 0x31, + 0xed, 0x04, 0xed, 0x4a, 0x7d, 0xd0, 0xd6, 0xc2, 0x0e, 0x74, 0x86, 0xf2, 0xa7, 0xf3, 0xcf, 0x3c, + 0x94, 0x7b, 0xee, 0x2d, 0x3e, 0xb7, 0xa5, 0xa1, 0x3a, 0xf7, 0x71, 0x43, 0x35, 0xe6, 0x88, 0xba, + 0xa0, 0x39, 0xcb, 0x50, 0xf7, 0x3b, 0xbb, 0xf0, 0x33, 0x9c, 0x4d, 0xba, 0xb0, 0x61, 0x2c, 0x33, + 0xde, 0x35, 0xca, 0x8a, 0x58, 0x8b, 0x3e, 0xc9, 0x28, 0xcb, 0x46, 0x83, 0x12, 0xb9, 0x1c, 0xa1, + 0xe7, 0xb0, 0xc6, 0x3e, 0x44, 0xcc, 0x93, 0xcc, 0x1f, 0xe0, 0xa0, 0x6f, 0x46, 0xf7, 0xbb, 0x5f, + 0x01, 0x8d, 0x44, 0x0a, 0xa1, 0xd6, 0x7f, 0x72, 0x50, 0xcf, 0xd6, 0x0f, 0x72, 0x04, 0xeb, 0xa7, + 0x4c, 0x2e, 0x40, 0xf6, 0x52, 0x95, 0x31, 0x55, 0x64, 0xe7, 0xfe, 0xfa, 0x43, 0xfe, 0x00, 0x9b, + 0xf7, 0xfe, 0x53, 0x20, 0xfa, 0x5b, 0xf0, 0xc7, 0x7e, 0x5f, 0xec, 0x38, 0x3f, 0x26, 0xa2, 0x7f, + 0x49, 0x90, 0x2f, 0xa0, 0xd8, 0x53, 0x2d, 0x47, 0xff, 0x01, 0x48, 0xfe, 0x97, 0xec, 0x2c, 0x92, + 0xad, 0x0b, 0x80, 0xab, 0xf9, 0x97, 0xd5, 0x6f, 0x81, 0x24, 0x35, 0x30, 0x83, 0x6e, 0xe0, 0x96, + 0x3b, 0xc5, 0x71, 0x47, 0x17, 0xe0, 0x85, 0x9a, 0xf5, 0x2c, 0x77, 0x54, 0xfe, 0xfd, 0xea, 0xfe, + 0xd7, 0x9c, 0xc9, 0xeb, 0x12, 0xfe, 0xaf, 0x39, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8c, + 0x55, 0x8b, 0x9a, 0xc3, 0x11, 0x00, 0x00, } diff --git a/net/lp_rpc.proto b/net/lp_rpc.proto index c7854f5980..e53a594fcf 100644 --- a/net/lp_rpc.proto +++ b/net/lp_rpc.proto @@ -105,9 +105,13 @@ message Capabilities { // Capacity corresponding to each capability map capacities = 3; + string version = 4; + + Constraints constraints = 5; + // Non-binary capability constraints, such as supported ranges. message Constraints { - // Empty for now + string minVersion = 1; } } diff --git a/net/lp_rpc_grpc.pb.go b/net/lp_rpc_grpc.pb.go index 3743d79756..64a0935463 100644 --- a/net/lp_rpc_grpc.pb.go +++ b/net/lp_rpc_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v4.25.2 +// - protoc v3.21.4 // source: net/lp_rpc.proto package net diff --git a/net/redeemer.pb.go b/net/redeemer.pb.go index 132a70cf49..87d1869b4d 100644 --- a/net/redeemer.pb.go +++ b/net/redeemer.pb.go @@ -319,7 +319,6 @@ func file_net_redeemer_proto_init() { if File_net_redeemer_proto != nil { return } - file_net_lp_rpc_proto_init() if !protoimpl.UnsafeEnabled { file_net_redeemer_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ticket); i { diff --git a/server/broadcast.go b/server/broadcast.go index 2edcd4f58d..150d66ea86 100755 --- a/server/broadcast.go +++ b/server/broadcast.go @@ -448,6 +448,9 @@ func (bsm *BroadcastSessionsManager) shouldSkipVerification(sessions []*Broadcas } func NewSessionManager(ctx context.Context, node *core.LivepeerNode, params *core.StreamParameters, sel BroadcastSessionsSelectorFactory) *BroadcastSessionsManager { + if node.Capabilities != nil { + params.Capabilities.SetMinVersionConstraint(node.Capabilities.MinVersionConstraint()) + } var trustedPoolSize, untrustedPoolSize float64 if node.OrchestratorPool != nil { trustedPoolSize = float64(node.OrchestratorPool.SizeWith(common.ScoreAtLeast(common.Score_Trusted))) diff --git a/server/mediaserver.go b/server/mediaserver.go index c123c578a9..7f57e6b823 100644 --- a/server/mediaserver.go +++ b/server/mediaserver.go @@ -433,6 +433,7 @@ func gotRTMPStreamHandler(s *LivepeerServer) func(url *url.URL, rtmpStrm stream. func endRTMPStreamHandler(s *LivepeerServer) func(url *url.URL, rtmpStrm stream.RTMPVideoStream) error { return func(url *url.URL, rtmpStrm stream.RTMPVideoStream) error { params := streamParams(rtmpStrm.AppData()) + params.Capabilities.SetMinVersionConstraint(s.LivepeerNode.Capabilities.MinVersionConstraint()) if params == nil { return errMismatchedParams }