Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/grumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerrick <actown@users.noreply.github.com>2020-04-12 23:15:57 +0300
committerDerrick <actown@users.noreply.github.com>2020-04-12 23:15:57 +0300
commitc8919d4338f6c11c317d963da535f04df0a8f06d (patch)
tree27bad0e41b9e8c0b9a80762939df8cbf95017815
parent30e28d06aa466574cfd964cbfadeb6fa5ebb342f (diff)
Update the mumble proto.
-rw-r--r--pkg/mumbleproto/Mumble.pb.go1557
-rw-r--r--pkg/mumbleproto/Mumble.proto36
2 files changed, 1176 insertions, 417 deletions
diff --git a/pkg/mumbleproto/Mumble.pb.go b/pkg/mumbleproto/Mumble.pb.go
index 965c6a1..df0fee0 100644
--- a/pkg/mumbleproto/Mumble.pb.go
+++ b/pkg/mumbleproto/Mumble.pb.go
@@ -1,46 +1,13 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: Mumble.proto
-// DO NOT EDIT!
-
-/*
-Package mumbleproto is a generated protocol buffer package.
-
-It is generated from these files:
- Mumble.proto
-
-It has these top-level messages:
- Version
- UDPTunnel
- Authenticate
- Ping
- Reject
- ServerSync
- ChannelRemove
- ChannelState
- UserRemove
- UserState
- BanList
- TextMessage
- PermissionDenied
- ACL
- QueryUsers
- CryptSetup
- ContextActionModify
- ContextAction
- UserList
- VoiceTarget
- PermissionQuery
- CodecVersion
- UserStats
- RequestBlob
- ServerConfig
- SuggestConfig
-*/
+
package mumbleproto
-import proto "github.com/golang/protobuf/proto"
-import fmt "fmt"
-import math "math"
+import (
+ fmt "fmt"
+ proto "github.com/golang/protobuf/proto"
+ math "math"
+)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -49,12 +16,15 @@ 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.
-const _ = proto.ProtoPackageIsVersion1
+// 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 Reject_RejectType int32
const (
- // TODO ??
+ // The rejection reason is unknown (details should be available
+ // in Reject.reason).
Reject_None Reject_RejectType = 0
// The client attempted to connect with an incompatible version.
Reject_WrongVersion Reject_RejectType = 1
@@ -86,6 +56,7 @@ var Reject_RejectType_name = map[int32]string{
7: "NoCertificate",
8: "AuthenticatorFail",
}
+
var Reject_RejectType_value = map[string]int32{
"None": 0,
"WrongVersion": 1,
@@ -103,9 +74,11 @@ func (x Reject_RejectType) Enum() *Reject_RejectType {
*p = x
return p
}
+
func (x Reject_RejectType) String() string {
return proto.EnumName(Reject_RejectType_name, int32(x))
}
+
func (x *Reject_RejectType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(Reject_RejectType_value, data, "Reject_RejectType")
if err != nil {
@@ -114,7 +87,10 @@ func (x *Reject_RejectType) UnmarshalJSON(data []byte) error {
*x = Reject_RejectType(value)
return nil
}
-func (Reject_RejectType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} }
+
+func (Reject_RejectType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{4, 0}
+}
type PermissionDenied_DenyType int32
@@ -138,8 +114,11 @@ const (
// Invalid username.
PermissionDenied_UserName PermissionDenied_DenyType = 8
// Channel is full.
- PermissionDenied_ChannelFull PermissionDenied_DenyType = 9
+ PermissionDenied_ChannelFull PermissionDenied_DenyType = 9
+ // Channels are nested too deply.
PermissionDenied_NestingLimit PermissionDenied_DenyType = 10
+ // Maximum channel count reached.
+ PermissionDenied_ChannelCountLimit PermissionDenied_DenyType = 11
)
var PermissionDenied_DenyType_name = map[int32]string{
@@ -154,7 +133,9 @@ var PermissionDenied_DenyType_name = map[int32]string{
8: "UserName",
9: "ChannelFull",
10: "NestingLimit",
+ 11: "ChannelCountLimit",
}
+
var PermissionDenied_DenyType_value = map[string]int32{
"Text": 0,
"Permission": 1,
@@ -167,6 +148,7 @@ var PermissionDenied_DenyType_value = map[string]int32{
"UserName": 8,
"ChannelFull": 9,
"NestingLimit": 10,
+ "ChannelCountLimit": 11,
}
func (x PermissionDenied_DenyType) Enum() *PermissionDenied_DenyType {
@@ -174,9 +156,11 @@ func (x PermissionDenied_DenyType) Enum() *PermissionDenied_DenyType {
*p = x
return p
}
+
func (x PermissionDenied_DenyType) String() string {
return proto.EnumName(PermissionDenied_DenyType_name, int32(x))
}
+
func (x *PermissionDenied_DenyType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(PermissionDenied_DenyType_value, data, "PermissionDenied_DenyType")
if err != nil {
@@ -185,8 +169,9 @@ func (x *PermissionDenied_DenyType) UnmarshalJSON(data []byte) error {
*x = PermissionDenied_DenyType(value)
return nil
}
+
func (PermissionDenied_DenyType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{12, 0}
+ return fileDescriptor_56c09c2dce0fb003, []int{12, 0}
}
type ContextActionModify_Context int32
@@ -205,6 +190,7 @@ var ContextActionModify_Context_name = map[int32]string{
2: "Channel",
4: "User",
}
+
var ContextActionModify_Context_value = map[string]int32{
"Server": 1,
"Channel": 2,
@@ -216,9 +202,11 @@ func (x ContextActionModify_Context) Enum() *ContextActionModify_Context {
*p = x
return p
}
+
func (x ContextActionModify_Context) String() string {
return proto.EnumName(ContextActionModify_Context_name, int32(x))
}
+
func (x *ContextActionModify_Context) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ContextActionModify_Context_value, data, "ContextActionModify_Context")
if err != nil {
@@ -227,8 +215,9 @@ func (x *ContextActionModify_Context) UnmarshalJSON(data []byte) error {
*x = ContextActionModify_Context(value)
return nil
}
+
func (ContextActionModify_Context) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{16, 0}
+ return fileDescriptor_56c09c2dce0fb003, []int{16, 0}
}
type ContextActionModify_Operation int32
@@ -242,6 +231,7 @@ var ContextActionModify_Operation_name = map[int32]string{
0: "Add",
1: "Remove",
}
+
var ContextActionModify_Operation_value = map[string]int32{
"Add": 0,
"Remove": 1,
@@ -252,9 +242,11 @@ func (x ContextActionModify_Operation) Enum() *ContextActionModify_Operation {
*p = x
return p
}
+
func (x ContextActionModify_Operation) String() string {
return proto.EnumName(ContextActionModify_Operation_name, int32(x))
}
+
func (x *ContextActionModify_Operation) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ContextActionModify_Operation_value, data, "ContextActionModify_Operation")
if err != nil {
@@ -263,8 +255,9 @@ func (x *ContextActionModify_Operation) UnmarshalJSON(data []byte) error {
*x = ContextActionModify_Operation(value)
return nil
}
+
func (ContextActionModify_Operation) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{16, 1}
+ return fileDescriptor_56c09c2dce0fb003, []int{16, 1}
}
type Version struct {
@@ -276,14 +269,36 @@ type Version struct {
// Client OS name.
Os *string `protobuf:"bytes,3,opt,name=os" json:"os,omitempty"`
// Client OS version.
- OsVersion *string `protobuf:"bytes,4,opt,name=os_version,json=osVersion" json:"os_version,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ OsVersion *string `protobuf:"bytes,4,opt,name=os_version,json=osVersion" json:"os_version,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *Version) Reset() { *m = Version{} }
-func (m *Version) String() string { return proto.CompactTextString(m) }
-func (*Version) ProtoMessage() {}
-func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+func (m *Version) Reset() { *m = Version{} }
+func (m *Version) String() string { return proto.CompactTextString(m) }
+func (*Version) ProtoMessage() {}
+func (*Version) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{0}
+}
+
+func (m *Version) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Version.Unmarshal(m, b)
+}
+func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Version.Marshal(b, m, deterministic)
+}
+func (m *Version) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Version.Merge(m, src)
+}
+func (m *Version) XXX_Size() int {
+ return xxx_messageInfo_Version.Size(m)
+}
+func (m *Version) XXX_DiscardUnknown() {
+ xxx_messageInfo_Version.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Version proto.InternalMessageInfo
func (m *Version) GetCryptoModes() []string {
if m != nil {
@@ -323,14 +338,36 @@ func (m *Version) GetOsVersion() string {
// Not used. Not even for tunneling UDP through TCP.
type UDPTunnel struct {
// Not used.
- Packet []byte `protobuf:"bytes,1,req,name=packet" json:"packet,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Packet []byte `protobuf:"bytes,1,req,name=packet" json:"packet,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UDPTunnel) Reset() { *m = UDPTunnel{} }
+func (m *UDPTunnel) String() string { return proto.CompactTextString(m) }
+func (*UDPTunnel) ProtoMessage() {}
+func (*UDPTunnel) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{1}
}
-func (m *UDPTunnel) Reset() { *m = UDPTunnel{} }
-func (m *UDPTunnel) String() string { return proto.CompactTextString(m) }
-func (*UDPTunnel) ProtoMessage() {}
-func (*UDPTunnel) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+func (m *UDPTunnel) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UDPTunnel.Unmarshal(m, b)
+}
+func (m *UDPTunnel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UDPTunnel.Marshal(b, m, deterministic)
+}
+func (m *UDPTunnel) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UDPTunnel.Merge(m, src)
+}
+func (m *UDPTunnel) XXX_Size() int {
+ return xxx_messageInfo_UDPTunnel.Size(m)
+}
+func (m *UDPTunnel) XXX_DiscardUnknown() {
+ xxx_messageInfo_UDPTunnel.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UDPTunnel proto.InternalMessageInfo
func (m *UDPTunnel) GetPacket() []byte {
if m != nil {
@@ -348,15 +385,37 @@ type Authenticate struct {
// Additional access tokens for server ACL groups.
Tokens []string `protobuf:"bytes,3,rep,name=tokens" json:"tokens,omitempty"`
// A list of CELT bitstream version constants supported by the client.
- CeltVersions []int32 `protobuf:"varint,4,rep,name=celt_versions,json=celtVersions" json:"celt_versions,omitempty"`
- Opus *bool `protobuf:"varint,5,opt,name=opus,def=0" json:"opus,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ CeltVersions []int32 `protobuf:"varint,4,rep,name=celt_versions,json=celtVersions" json:"celt_versions,omitempty"`
+ Opus *bool `protobuf:"varint,5,opt,name=opus,def=0" json:"opus,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Authenticate) Reset() { *m = Authenticate{} }
+func (m *Authenticate) String() string { return proto.CompactTextString(m) }
+func (*Authenticate) ProtoMessage() {}
+func (*Authenticate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{2}
}
-func (m *Authenticate) Reset() { *m = Authenticate{} }
-func (m *Authenticate) String() string { return proto.CompactTextString(m) }
-func (*Authenticate) ProtoMessage() {}
-func (*Authenticate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+func (m *Authenticate) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Authenticate.Unmarshal(m, b)
+}
+func (m *Authenticate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Authenticate.Marshal(b, m, deterministic)
+}
+func (m *Authenticate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Authenticate.Merge(m, src)
+}
+func (m *Authenticate) XXX_Size() int {
+ return xxx_messageInfo_Authenticate.Size(m)
+}
+func (m *Authenticate) XXX_DiscardUnknown() {
+ xxx_messageInfo_Authenticate.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Authenticate proto.InternalMessageInfo
const Default_Authenticate_Opus bool = false
@@ -420,14 +479,36 @@ type Ping struct {
// TCP ping average.
TcpPingAvg *float32 `protobuf:"fixed32,10,opt,name=tcp_ping_avg,json=tcpPingAvg" json:"tcp_ping_avg,omitempty"`
// TCP ping variance.
- TcpPingVar *float32 `protobuf:"fixed32,11,opt,name=tcp_ping_var,json=tcpPingVar" json:"tcp_ping_var,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ TcpPingVar *float32 `protobuf:"fixed32,11,opt,name=tcp_ping_var,json=tcpPingVar" json:"tcp_ping_var,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *Ping) Reset() { *m = Ping{} }
-func (m *Ping) String() string { return proto.CompactTextString(m) }
-func (*Ping) ProtoMessage() {}
-func (*Ping) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+func (m *Ping) Reset() { *m = Ping{} }
+func (m *Ping) String() string { return proto.CompactTextString(m) }
+func (*Ping) ProtoMessage() {}
+func (*Ping) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{3}
+}
+
+func (m *Ping) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Ping.Unmarshal(m, b)
+}
+func (m *Ping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Ping.Marshal(b, m, deterministic)
+}
+func (m *Ping) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Ping.Merge(m, src)
+}
+func (m *Ping) XXX_Size() int {
+ return xxx_messageInfo_Ping.Size(m)
+}
+func (m *Ping) XXX_DiscardUnknown() {
+ xxx_messageInfo_Ping.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Ping proto.InternalMessageInfo
func (m *Ping) GetTimestamp() uint64 {
if m != nil && m.Timestamp != nil {
@@ -511,14 +592,36 @@ type Reject struct {
// Rejection type.
Type *Reject_RejectType `protobuf:"varint,1,opt,name=type,enum=mumbleproto.Reject_RejectType" json:"type,omitempty"`
// Human readable rejection reason.
- Reason *string `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Reason *string `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *Reject) Reset() { *m = Reject{} }
-func (m *Reject) String() string { return proto.CompactTextString(m) }
-func (*Reject) ProtoMessage() {}
-func (*Reject) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
+func (m *Reject) Reset() { *m = Reject{} }
+func (m *Reject) String() string { return proto.CompactTextString(m) }
+func (*Reject) ProtoMessage() {}
+func (*Reject) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{4}
+}
+
+func (m *Reject) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Reject.Unmarshal(m, b)
+}
+func (m *Reject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Reject.Marshal(b, m, deterministic)
+}
+func (m *Reject) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Reject.Merge(m, src)
+}
+func (m *Reject) XXX_Size() int {
+ return xxx_messageInfo_Reject.Size(m)
+}
+func (m *Reject) XXX_DiscardUnknown() {
+ xxx_messageInfo_Reject.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Reject proto.InternalMessageInfo
func (m *Reject) GetType() Reject_RejectType {
if m != nil && m.Type != nil {
@@ -543,15 +646,37 @@ type ServerSync struct {
MaxBandwidth *uint32 `protobuf:"varint,2,opt,name=max_bandwidth,json=maxBandwidth" json:"max_bandwidth,omitempty"`
// Server welcome text.
WelcomeText *string `protobuf:"bytes,3,opt,name=welcome_text,json=welcomeText" json:"welcome_text,omitempty"`
- // Current user permissions TODO: Confirm??
- Permissions *uint64 `protobuf:"varint,4,opt,name=permissions" json:"permissions,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ // Current user permissions in the root channel.
+ Permissions *uint64 `protobuf:"varint,4,opt,name=permissions" json:"permissions,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ServerSync) Reset() { *m = ServerSync{} }
+func (m *ServerSync) String() string { return proto.CompactTextString(m) }
+func (*ServerSync) ProtoMessage() {}
+func (*ServerSync) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{5}
+}
+
+func (m *ServerSync) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ServerSync.Unmarshal(m, b)
+}
+func (m *ServerSync) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ServerSync.Marshal(b, m, deterministic)
+}
+func (m *ServerSync) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ServerSync.Merge(m, src)
+}
+func (m *ServerSync) XXX_Size() int {
+ return xxx_messageInfo_ServerSync.Size(m)
+}
+func (m *ServerSync) XXX_DiscardUnknown() {
+ xxx_messageInfo_ServerSync.DiscardUnknown(m)
}
-func (m *ServerSync) Reset() { *m = ServerSync{} }
-func (m *ServerSync) String() string { return proto.CompactTextString(m) }
-func (*ServerSync) ProtoMessage() {}
-func (*ServerSync) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
+var xxx_messageInfo_ServerSync proto.InternalMessageInfo
func (m *ServerSync) GetSession() uint32 {
if m != nil && m.Session != nil {
@@ -584,14 +709,36 @@ func (m *ServerSync) GetPermissions() uint64 {
// Sent by the client when it wants a channel removed. Sent by the server when
// a channel has been removed and clients should be notified.
type ChannelRemove struct {
- ChannelId *uint32 `protobuf:"varint,1,req,name=channel_id,json=channelId" json:"channel_id,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ ChannelId *uint32 `protobuf:"varint,1,req,name=channel_id,json=channelId" json:"channel_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChannelRemove) Reset() { *m = ChannelRemove{} }
+func (m *ChannelRemove) String() string { return proto.CompactTextString(m) }
+func (*ChannelRemove) ProtoMessage() {}
+func (*ChannelRemove) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{6}
+}
+
+func (m *ChannelRemove) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChannelRemove.Unmarshal(m, b)
+}
+func (m *ChannelRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChannelRemove.Marshal(b, m, deterministic)
+}
+func (m *ChannelRemove) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChannelRemove.Merge(m, src)
+}
+func (m *ChannelRemove) XXX_Size() int {
+ return xxx_messageInfo_ChannelRemove.Size(m)
+}
+func (m *ChannelRemove) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChannelRemove.DiscardUnknown(m)
}
-func (m *ChannelRemove) Reset() { *m = ChannelRemove{} }
-func (m *ChannelRemove) String() string { return proto.CompactTextString(m) }
-func (*ChannelRemove) ProtoMessage() {}
-func (*ChannelRemove) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
+var xxx_messageInfo_ChannelRemove proto.InternalMessageInfo
func (m *ChannelRemove) GetChannelId() uint32 {
if m != nil && m.ChannelId != nil {
@@ -629,14 +776,40 @@ type ChannelState struct {
// Maximum number of users allowed in the channel. If this value is zero,
// the maximum number of users allowed in the channel is given by the
// server's "usersperchannel" setting.
- MaxUsers *uint32 `protobuf:"varint,11,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ MaxUsers *uint32 `protobuf:"varint,11,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"`
+ // Whether this channel has enter restrictions (ACL denying ENTER) set
+ IsEnterRestricted *bool `protobuf:"varint,12,opt,name=is_enter_restricted,json=isEnterRestricted" json:"is_enter_restricted,omitempty"`
+ // Whether the receiver of this msg is considered to be able to enter this channel
+ CanEnter *bool `protobuf:"varint,13,opt,name=can_enter,json=canEnter" json:"can_enter,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ChannelState) Reset() { *m = ChannelState{} }
+func (m *ChannelState) String() string { return proto.CompactTextString(m) }
+func (*ChannelState) ProtoMessage() {}
+func (*ChannelState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{7}
+}
+
+func (m *ChannelState) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ChannelState.Unmarshal(m, b)
+}
+func (m *ChannelState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ChannelState.Marshal(b, m, deterministic)
+}
+func (m *ChannelState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChannelState.Merge(m, src)
+}
+func (m *ChannelState) XXX_Size() int {
+ return xxx_messageInfo_ChannelState.Size(m)
+}
+func (m *ChannelState) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChannelState.DiscardUnknown(m)
}
-func (m *ChannelState) Reset() { *m = ChannelState{} }
-func (m *ChannelState) String() string { return proto.CompactTextString(m) }
-func (*ChannelState) ProtoMessage() {}
-func (*ChannelState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
+var xxx_messageInfo_ChannelState proto.InternalMessageInfo
const Default_ChannelState_Temporary bool = false
const Default_ChannelState_Position int32 = 0
@@ -718,6 +891,20 @@ func (m *ChannelState) GetMaxUsers() uint32 {
return 0
}
+func (m *ChannelState) GetIsEnterRestricted() bool {
+ if m != nil && m.IsEnterRestricted != nil {
+ return *m.IsEnterRestricted
+ }
+ return false
+}
+
+func (m *ChannelState) GetCanEnter() bool {
+ if m != nil && m.CanEnter != nil {
+ return *m.CanEnter
+ }
+ return false
+}
+
// Used to communicate user leaving or being kicked. May be sent by the client
// when it attempts to kick a user. Sent by the server when it informs the
// clients that a user is not present anymore.
@@ -731,14 +918,36 @@ type UserRemove struct {
// Reason for the kick, stored as the ban reason if the user is banned.
Reason *string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"`
// True if the kick should result in a ban.
- Ban *bool `protobuf:"varint,4,opt,name=ban" json:"ban,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Ban *bool `protobuf:"varint,4,opt,name=ban" json:"ban,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *UserRemove) Reset() { *m = UserRemove{} }
-func (m *UserRemove) String() string { return proto.CompactTextString(m) }
-func (*UserRemove) ProtoMessage() {}
-func (*UserRemove) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
+func (m *UserRemove) Reset() { *m = UserRemove{} }
+func (m *UserRemove) String() string { return proto.CompactTextString(m) }
+func (*UserRemove) ProtoMessage() {}
+func (*UserRemove) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{8}
+}
+
+func (m *UserRemove) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserRemove.Unmarshal(m, b)
+}
+func (m *UserRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserRemove.Marshal(b, m, deterministic)
+}
+func (m *UserRemove) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserRemove.Merge(m, src)
+}
+func (m *UserRemove) XXX_Size() int {
+ return xxx_messageInfo_UserRemove.Size(m)
+}
+func (m *UserRemove) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserRemove.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserRemove proto.InternalMessageInfo
func (m *UserRemove) GetSession() uint32 {
if m != nil && m.Session != nil {
@@ -796,9 +1005,14 @@ type UserState struct {
SelfDeaf *bool `protobuf:"varint,10,opt,name=self_deaf,json=selfDeaf" json:"self_deaf,omitempty"`
// User image if it is less than 128 bytes.
Texture []byte `protobuf:"bytes,11,opt,name=texture" json:"texture,omitempty"`
- // TODO ??
+ // The positional audio plugin identifier.
+ // Positional audio information is only sent to users who share
+ // identical plugin contexts.
+ //
+ // This value is not trasmitted to clients.
PluginContext []byte `protobuf:"bytes,12,opt,name=plugin_context,json=pluginContext" json:"plugin_context,omitempty"`
- // TODO ??
+ // The user's plugin-specific identity.
+ // This value is not transmitted to clients.
PluginIdentity *string `protobuf:"bytes,13,opt,name=plugin_identity,json=pluginIdentity" json:"plugin_identity,omitempty"`
// User comment if it is less than 128 bytes.
Comment *string `protobuf:"bytes,14,opt,name=comment" json:"comment,omitempty"`
@@ -811,14 +1025,38 @@ type UserState struct {
// True if the user is a priority speaker.
PrioritySpeaker *bool `protobuf:"varint,18,opt,name=priority_speaker,json=prioritySpeaker" json:"priority_speaker,omitempty"`
// True if the user is currently recording.
- Recording *bool `protobuf:"varint,19,opt,name=recording" json:"recording,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Recording *bool `protobuf:"varint,19,opt,name=recording" json:"recording,omitempty"`
+ // A list of temporary acces tokens to be respected when processing this request.
+ TemporaryAccessTokens []string `protobuf:"bytes,20,rep,name=temporary_access_tokens,json=temporaryAccessTokens" json:"temporary_access_tokens,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UserState) Reset() { *m = UserState{} }
+func (m *UserState) String() string { return proto.CompactTextString(m) }
+func (*UserState) ProtoMessage() {}
+func (*UserState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{9}
+}
+
+func (m *UserState) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserState.Unmarshal(m, b)
+}
+func (m *UserState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserState.Marshal(b, m, deterministic)
+}
+func (m *UserState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserState.Merge(m, src)
+}
+func (m *UserState) XXX_Size() int {
+ return xxx_messageInfo_UserState.Size(m)
+}
+func (m *UserState) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserState.DiscardUnknown(m)
}
-func (m *UserState) Reset() { *m = UserState{} }
-func (m *UserState) String() string { return proto.CompactTextString(m) }
-func (*UserState) ProtoMessage() {}
-func (*UserState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
+var xxx_messageInfo_UserState proto.InternalMessageInfo
func (m *UserState) GetSession() uint32 {
if m != nil && m.Session != nil {
@@ -953,6 +1191,13 @@ func (m *UserState) GetRecording() bool {
return false
}
+func (m *UserState) GetTemporaryAccessTokens() []string {
+ if m != nil {
+ return m.TemporaryAccessTokens
+ }
+ return nil
+}
+
// Relays information on the bans. The client may send the BanList message to
// either modify the list of bans or query them from the server. The server
// sends this list only after a client queries for it.
@@ -961,14 +1206,36 @@ type BanList struct {
Bans []*BanList_BanEntry `protobuf:"bytes,1,rep,name=bans" json:"bans,omitempty"`
// True if the server should return the list, false if it should replace old
// ban list with the one provided.
- Query *bool `protobuf:"varint,2,opt,name=query,def=0" json:"query,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Query *bool `protobuf:"varint,2,opt,name=query,def=0" json:"query,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *BanList) Reset() { *m = BanList{} }
+func (m *BanList) String() string { return proto.CompactTextString(m) }
+func (*BanList) ProtoMessage() {}
+func (*BanList) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{10}
+}
+
+func (m *BanList) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BanList.Unmarshal(m, b)
+}
+func (m *BanList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BanList.Marshal(b, m, deterministic)
+}
+func (m *BanList) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BanList.Merge(m, src)
+}
+func (m *BanList) XXX_Size() int {
+ return xxx_messageInfo_BanList.Size(m)
+}
+func (m *BanList) XXX_DiscardUnknown() {
+ xxx_messageInfo_BanList.DiscardUnknown(m)
}
-func (m *BanList) Reset() { *m = BanList{} }
-func (m *BanList) String() string { return proto.CompactTextString(m) }
-func (*BanList) ProtoMessage() {}
-func (*BanList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
+var xxx_messageInfo_BanList proto.InternalMessageInfo
const Default_BanList_Query bool = false
@@ -993,21 +1260,43 @@ type BanList_BanEntry struct {
Mask *uint32 `protobuf:"varint,2,req,name=mask" json:"mask,omitempty"`
// User name for identification purposes (does not affect the ban).
Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
- // TODO ??
+ // The certificate hash of the banned user.
Hash *string `protobuf:"bytes,4,opt,name=hash" json:"hash,omitempty"`
// Reason for the ban (does not affect the ban).
Reason *string `protobuf:"bytes,5,opt,name=reason" json:"reason,omitempty"`
// Ban start time.
Start *string `protobuf:"bytes,6,opt,name=start" json:"start,omitempty"`
// Ban duration in seconds.
- Duration *uint32 `protobuf:"varint,7,opt,name=duration" json:"duration,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Duration *uint32 `protobuf:"varint,7,opt,name=duration" json:"duration,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *BanList_BanEntry) Reset() { *m = BanList_BanEntry{} }
-func (m *BanList_BanEntry) String() string { return proto.CompactTextString(m) }
-func (*BanList_BanEntry) ProtoMessage() {}
-func (*BanList_BanEntry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 0} }
+func (m *BanList_BanEntry) Reset() { *m = BanList_BanEntry{} }
+func (m *BanList_BanEntry) String() string { return proto.CompactTextString(m) }
+func (*BanList_BanEntry) ProtoMessage() {}
+func (*BanList_BanEntry) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{10, 0}
+}
+
+func (m *BanList_BanEntry) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BanList_BanEntry.Unmarshal(m, b)
+}
+func (m *BanList_BanEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BanList_BanEntry.Marshal(b, m, deterministic)
+}
+func (m *BanList_BanEntry) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BanList_BanEntry.Merge(m, src)
+}
+func (m *BanList_BanEntry) XXX_Size() int {
+ return xxx_messageInfo_BanList_BanEntry.Size(m)
+}
+func (m *BanList_BanEntry) XXX_DiscardUnknown() {
+ xxx_messageInfo_BanList_BanEntry.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_BanList_BanEntry proto.InternalMessageInfo
func (m *BanList_BanEntry) GetAddress() []byte {
if m != nil {
@@ -1071,14 +1360,36 @@ type TextMessage struct {
// identified by their channel_ids.
TreeId []uint32 `protobuf:"varint,4,rep,name=tree_id,json=treeId" json:"tree_id,omitempty"`
// The UTF-8 encoded message. May be HTML if the server allows.
- Message *string `protobuf:"bytes,5,req,name=message" json:"message,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Message *string `protobuf:"bytes,5,req,name=message" json:"message,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *TextMessage) Reset() { *m = TextMessage{} }
-func (m *TextMessage) String() string { return proto.CompactTextString(m) }
-func (*TextMessage) ProtoMessage() {}
-func (*TextMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
+func (m *TextMessage) Reset() { *m = TextMessage{} }
+func (m *TextMessage) String() string { return proto.CompactTextString(m) }
+func (*TextMessage) ProtoMessage() {}
+func (*TextMessage) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{11}
+}
+
+func (m *TextMessage) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TextMessage.Unmarshal(m, b)
+}
+func (m *TextMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TextMessage.Marshal(b, m, deterministic)
+}
+func (m *TextMessage) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TextMessage.Merge(m, src)
+}
+func (m *TextMessage) XXX_Size() int {
+ return xxx_messageInfo_TextMessage.Size(m)
+}
+func (m *TextMessage) XXX_DiscardUnknown() {
+ xxx_messageInfo_TextMessage.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TextMessage proto.InternalMessageInfo
func (m *TextMessage) GetActor() uint32 {
if m != nil && m.Actor != nil {
@@ -1128,14 +1439,36 @@ type PermissionDenied struct {
// Type of the denial.
Type *PermissionDenied_DenyType `protobuf:"varint,5,opt,name=type,enum=mumbleproto.PermissionDenied_DenyType" json:"type,omitempty"`
// The name that is invalid when type is UserName.
- Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *PermissionDenied) Reset() { *m = PermissionDenied{} }
+func (m *PermissionDenied) String() string { return proto.CompactTextString(m) }
+func (*PermissionDenied) ProtoMessage() {}
+func (*PermissionDenied) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{12}
+}
+
+func (m *PermissionDenied) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PermissionDenied.Unmarshal(m, b)
+}
+func (m *PermissionDenied) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PermissionDenied.Marshal(b, m, deterministic)
+}
+func (m *PermissionDenied) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PermissionDenied.Merge(m, src)
+}
+func (m *PermissionDenied) XXX_Size() int {
+ return xxx_messageInfo_PermissionDenied.Size(m)
+}
+func (m *PermissionDenied) XXX_DiscardUnknown() {
+ xxx_messageInfo_PermissionDenied.DiscardUnknown(m)
}
-func (m *PermissionDenied) Reset() { *m = PermissionDenied{} }
-func (m *PermissionDenied) String() string { return proto.CompactTextString(m) }
-func (*PermissionDenied) ProtoMessage() {}
-func (*PermissionDenied) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
+var xxx_messageInfo_PermissionDenied proto.InternalMessageInfo
func (m *PermissionDenied) GetPermission() uint32 {
if m != nil && m.Permission != nil {
@@ -1189,14 +1522,36 @@ type ACL struct {
// ACL specifications.
Acls []*ACL_ChanACL `protobuf:"bytes,4,rep,name=acls" json:"acls,omitempty"`
// True if the message is a query for ACLs instead of setting them.
- Query *bool `protobuf:"varint,5,opt,name=query,def=0" json:"query,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Query *bool `protobuf:"varint,5,opt,name=query,def=0" json:"query,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ACL) Reset() { *m = ACL{} }
+func (m *ACL) String() string { return proto.CompactTextString(m) }
+func (*ACL) ProtoMessage() {}
+func (*ACL) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{13}
+}
+
+func (m *ACL) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ACL.Unmarshal(m, b)
+}
+func (m *ACL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ACL.Marshal(b, m, deterministic)
+}
+func (m *ACL) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ACL.Merge(m, src)
+}
+func (m *ACL) XXX_Size() int {
+ return xxx_messageInfo_ACL.Size(m)
+}
+func (m *ACL) XXX_DiscardUnknown() {
+ xxx_messageInfo_ACL.DiscardUnknown(m)
}
-func (m *ACL) Reset() { *m = ACL{} }
-func (m *ACL) String() string { return proto.CompactTextString(m) }
-func (*ACL) ProtoMessage() {}
-func (*ACL) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
+var xxx_messageInfo_ACL proto.InternalMessageInfo
const Default_ACL_InheritAcls bool = true
const Default_ACL_Query bool = false
@@ -1251,14 +1606,36 @@ type ACL_ChanGroup struct {
// has been inherited, identified by user_id.
Remove []uint32 `protobuf:"varint,6,rep,name=remove" json:"remove,omitempty"`
// Users inherited, identified by user_id.
- InheritedMembers []uint32 `protobuf:"varint,7,rep,name=inherited_members,json=inheritedMembers" json:"inherited_members,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ InheritedMembers []uint32 `protobuf:"varint,7,rep,name=inherited_members,json=inheritedMembers" json:"inherited_members,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *ACL_ChanGroup) Reset() { *m = ACL_ChanGroup{} }
-func (m *ACL_ChanGroup) String() string { return proto.CompactTextString(m) }
-func (*ACL_ChanGroup) ProtoMessage() {}
-func (*ACL_ChanGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13, 0} }
+func (m *ACL_ChanGroup) Reset() { *m = ACL_ChanGroup{} }
+func (m *ACL_ChanGroup) String() string { return proto.CompactTextString(m) }
+func (*ACL_ChanGroup) ProtoMessage() {}
+func (*ACL_ChanGroup) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{13, 0}
+}
+
+func (m *ACL_ChanGroup) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ACL_ChanGroup.Unmarshal(m, b)
+}
+func (m *ACL_ChanGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ACL_ChanGroup.Marshal(b, m, deterministic)
+}
+func (m *ACL_ChanGroup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ACL_ChanGroup.Merge(m, src)
+}
+func (m *ACL_ChanGroup) XXX_Size() int {
+ return xxx_messageInfo_ACL_ChanGroup.Size(m)
+}
+func (m *ACL_ChanGroup) XXX_DiscardUnknown() {
+ xxx_messageInfo_ACL_ChanGroup.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ACL_ChanGroup proto.InternalMessageInfo
const Default_ACL_ChanGroup_Inherited bool = true
const Default_ACL_ChanGroup_Inherit bool = true
@@ -1327,14 +1704,36 @@ type ACL_ChanACL struct {
// Bit flag field of the permissions granted by this ACL.
Grant *uint32 `protobuf:"varint,6,opt,name=grant" json:"grant,omitempty"`
// Bit flag field of the permissions denied by this ACL.
- Deny *uint32 `protobuf:"varint,7,opt,name=deny" json:"deny,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Deny *uint32 `protobuf:"varint,7,opt,name=deny" json:"deny,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *ACL_ChanACL) Reset() { *m = ACL_ChanACL{} }
-func (m *ACL_ChanACL) String() string { return proto.CompactTextString(m) }
-func (*ACL_ChanACL) ProtoMessage() {}
-func (*ACL_ChanACL) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13, 1} }
+func (m *ACL_ChanACL) Reset() { *m = ACL_ChanACL{} }
+func (m *ACL_ChanACL) String() string { return proto.CompactTextString(m) }
+func (*ACL_ChanACL) ProtoMessage() {}
+func (*ACL_ChanACL) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{13, 1}
+}
+
+func (m *ACL_ChanACL) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ACL_ChanACL.Unmarshal(m, b)
+}
+func (m *ACL_ChanACL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ACL_ChanACL.Marshal(b, m, deterministic)
+}
+func (m *ACL_ChanACL) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ACL_ChanACL.Merge(m, src)
+}
+func (m *ACL_ChanACL) XXX_Size() int {
+ return xxx_messageInfo_ACL_ChanACL.Size(m)
+}
+func (m *ACL_ChanACL) XXX_DiscardUnknown() {
+ xxx_messageInfo_ACL_ChanACL.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ACL_ChanACL proto.InternalMessageInfo
const Default_ACL_ChanACL_ApplyHere bool = true
const Default_ACL_ChanACL_ApplySubs bool = true
@@ -1396,14 +1795,36 @@ type QueryUsers struct {
// user_ids.
Ids []uint32 `protobuf:"varint,1,rep,name=ids" json:"ids,omitempty"`
// User names in the same order as ids.
- Names []string `protobuf:"bytes,2,rep,name=names" json:"names,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Names []string `protobuf:"bytes,2,rep,name=names" json:"names,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *QueryUsers) Reset() { *m = QueryUsers{} }
+func (m *QueryUsers) String() string { return proto.CompactTextString(m) }
+func (*QueryUsers) ProtoMessage() {}
+func (*QueryUsers) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{14}
+}
+
+func (m *QueryUsers) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_QueryUsers.Unmarshal(m, b)
+}
+func (m *QueryUsers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_QueryUsers.Marshal(b, m, deterministic)
+}
+func (m *QueryUsers) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryUsers.Merge(m, src)
+}
+func (m *QueryUsers) XXX_Size() int {
+ return xxx_messageInfo_QueryUsers.Size(m)
+}
+func (m *QueryUsers) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryUsers.DiscardUnknown(m)
}
-func (m *QueryUsers) Reset() { *m = QueryUsers{} }
-func (m *QueryUsers) String() string { return proto.CompactTextString(m) }
-func (*QueryUsers) ProtoMessage() {}
-func (*QueryUsers) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
+var xxx_messageInfo_QueryUsers proto.InternalMessageInfo
func (m *QueryUsers) GetIds() []uint32 {
if m != nil {
@@ -1429,14 +1850,36 @@ type CryptSetup struct {
// Client nonce.
ClientNonce []byte `protobuf:"bytes,2,opt,name=client_nonce,json=clientNonce" json:"client_nonce,omitempty"`
// Server nonce.
- ServerNonce []byte `protobuf:"bytes,3,opt,name=server_nonce,json=serverNonce" json:"server_nonce,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ ServerNonce []byte `protobuf:"bytes,3,opt,name=server_nonce,json=serverNonce" json:"server_nonce,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *CryptSetup) Reset() { *m = CryptSetup{} }
-func (m *CryptSetup) String() string { return proto.CompactTextString(m) }
-func (*CryptSetup) ProtoMessage() {}
-func (*CryptSetup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
+func (m *CryptSetup) Reset() { *m = CryptSetup{} }
+func (m *CryptSetup) String() string { return proto.CompactTextString(m) }
+func (*CryptSetup) ProtoMessage() {}
+func (*CryptSetup) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{15}
+}
+
+func (m *CryptSetup) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CryptSetup.Unmarshal(m, b)
+}
+func (m *CryptSetup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CryptSetup.Marshal(b, m, deterministic)
+}
+func (m *CryptSetup) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CryptSetup.Merge(m, src)
+}
+func (m *CryptSetup) XXX_Size() int {
+ return xxx_messageInfo_CryptSetup.Size(m)
+}
+func (m *CryptSetup) XXX_DiscardUnknown() {
+ xxx_messageInfo_CryptSetup.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CryptSetup proto.InternalMessageInfo
func (m *CryptSetup) GetKey() []byte {
if m != nil {
@@ -1465,15 +1908,37 @@ type ContextActionModify struct {
// The display name of the action.
Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
// Context bit flags defining where the action should be displayed.
- Context *uint32 `protobuf:"varint,3,opt,name=context" json:"context,omitempty"`
- Operation *ContextActionModify_Operation `protobuf:"varint,4,opt,name=operation,enum=mumbleproto.ContextActionModify_Operation" json:"operation,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Context *uint32 `protobuf:"varint,3,opt,name=context" json:"context,omitempty"`
+ Operation *ContextActionModify_Operation `protobuf:"varint,4,opt,name=operation,enum=mumbleproto.ContextActionModify_Operation" json:"operation,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ContextActionModify) Reset() { *m = ContextActionModify{} }
+func (m *ContextActionModify) String() string { return proto.CompactTextString(m) }
+func (*ContextActionModify) ProtoMessage() {}
+func (*ContextActionModify) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{16}
+}
+
+func (m *ContextActionModify) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ContextActionModify.Unmarshal(m, b)
+}
+func (m *ContextActionModify) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ContextActionModify.Marshal(b, m, deterministic)
+}
+func (m *ContextActionModify) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContextActionModify.Merge(m, src)
+}
+func (m *ContextActionModify) XXX_Size() int {
+ return xxx_messageInfo_ContextActionModify.Size(m)
+}
+func (m *ContextActionModify) XXX_DiscardUnknown() {
+ xxx_messageInfo_ContextActionModify.DiscardUnknown(m)
}
-func (m *ContextActionModify) Reset() { *m = ContextActionModify{} }
-func (m *ContextActionModify) String() string { return proto.CompactTextString(m) }
-func (*ContextActionModify) ProtoMessage() {}
-func (*ContextActionModify) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
+var xxx_messageInfo_ContextActionModify proto.InternalMessageInfo
func (m *ContextActionModify) GetAction() string {
if m != nil && m.Action != nil {
@@ -1510,14 +1975,36 @@ type ContextAction struct {
// The target Channel for the action, identified by channel_id.
ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
// The action that should be executed.
- Action *string `protobuf:"bytes,3,req,name=action" json:"action,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Action *string `protobuf:"bytes,3,req,name=action" json:"action,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *ContextAction) Reset() { *m = ContextAction{} }
-func (m *ContextAction) String() string { return proto.CompactTextString(m) }
-func (*ContextAction) ProtoMessage() {}
-func (*ContextAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
+func (m *ContextAction) Reset() { *m = ContextAction{} }
+func (m *ContextAction) String() string { return proto.CompactTextString(m) }
+func (*ContextAction) ProtoMessage() {}
+func (*ContextAction) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{17}
+}
+
+func (m *ContextAction) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ContextAction.Unmarshal(m, b)
+}
+func (m *ContextAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ContextAction.Marshal(b, m, deterministic)
+}
+func (m *ContextAction) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ContextAction.Merge(m, src)
+}
+func (m *ContextAction) XXX_Size() int {
+ return xxx_messageInfo_ContextAction.Size(m)
+}
+func (m *ContextAction) XXX_DiscardUnknown() {
+ xxx_messageInfo_ContextAction.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ContextAction proto.InternalMessageInfo
func (m *ContextAction) GetSession() uint32 {
if m != nil && m.Session != nil {
@@ -1543,14 +2030,36 @@ func (m *ContextAction) GetAction() string {
// Lists the registered users.
type UserList struct {
// A list of registered users.
- Users []*UserList_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Users []*UserList_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *UserList) Reset() { *m = UserList{} }
-func (m *UserList) String() string { return proto.CompactTextString(m) }
-func (*UserList) ProtoMessage() {}
-func (*UserList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
+func (m *UserList) Reset() { *m = UserList{} }
+func (m *UserList) String() string { return proto.CompactTextString(m) }
+func (*UserList) ProtoMessage() {}
+func (*UserList) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{18}
+}
+
+func (m *UserList) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserList.Unmarshal(m, b)
+}
+func (m *UserList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserList.Marshal(b, m, deterministic)
+}
+func (m *UserList) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserList.Merge(m, src)
+}
+func (m *UserList) XXX_Size() int {
+ return xxx_messageInfo_UserList.Size(m)
+}
+func (m *UserList) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserList.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserList proto.InternalMessageInfo
func (m *UserList) GetUsers() []*UserList_User {
if m != nil {
@@ -1563,16 +2072,38 @@ type UserList_User struct {
// Registered user ID.
UserId *uint32 `protobuf:"varint,1,req,name=user_id,json=userId" json:"user_id,omitempty"`
// Registered user name.
- Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
- LastSeen *string `protobuf:"bytes,3,opt,name=last_seen,json=lastSeen" json:"last_seen,omitempty"`
- LastChannel *uint32 `protobuf:"varint,4,opt,name=last_channel,json=lastChannel" json:"last_channel,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+ LastSeen *string `protobuf:"bytes,3,opt,name=last_seen,json=lastSeen" json:"last_seen,omitempty"`
+ LastChannel *uint32 `protobuf:"varint,4,opt,name=last_channel,json=lastChannel" json:"last_channel,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UserList_User) Reset() { *m = UserList_User{} }
+func (m *UserList_User) String() string { return proto.CompactTextString(m) }
+func (*UserList_User) ProtoMessage() {}
+func (*UserList_User) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{18, 0}
+}
+
+func (m *UserList_User) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserList_User.Unmarshal(m, b)
+}
+func (m *UserList_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserList_User.Marshal(b, m, deterministic)
+}
+func (m *UserList_User) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserList_User.Merge(m, src)
+}
+func (m *UserList_User) XXX_Size() int {
+ return xxx_messageInfo_UserList_User.Size(m)
+}
+func (m *UserList_User) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserList_User.DiscardUnknown(m)
}
-func (m *UserList_User) Reset() { *m = UserList_User{} }
-func (m *UserList_User) String() string { return proto.CompactTextString(m) }
-func (*UserList_User) ProtoMessage() {}
-func (*UserList_User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18, 0} }
+var xxx_messageInfo_UserList_User proto.InternalMessageInfo
func (m *UserList_User) GetUserId() uint32 {
if m != nil && m.UserId != nil {
@@ -1610,14 +2141,36 @@ type VoiceTarget struct {
// Voice target ID.
Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
// The receivers that this voice target includes.
- Targets []*VoiceTarget_Target `protobuf:"bytes,2,rep,name=targets" json:"targets,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Targets []*VoiceTarget_Target `protobuf:"bytes,2,rep,name=targets" json:"targets,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *VoiceTarget) Reset() { *m = VoiceTarget{} }
+func (m *VoiceTarget) String() string { return proto.CompactTextString(m) }
+func (*VoiceTarget) ProtoMessage() {}
+func (*VoiceTarget) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{19}
+}
+
+func (m *VoiceTarget) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_VoiceTarget.Unmarshal(m, b)
+}
+func (m *VoiceTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_VoiceTarget.Marshal(b, m, deterministic)
+}
+func (m *VoiceTarget) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_VoiceTarget.Merge(m, src)
+}
+func (m *VoiceTarget) XXX_Size() int {
+ return xxx_messageInfo_VoiceTarget.Size(m)
+}
+func (m *VoiceTarget) XXX_DiscardUnknown() {
+ xxx_messageInfo_VoiceTarget.DiscardUnknown(m)
}
-func (m *VoiceTarget) Reset() { *m = VoiceTarget{} }
-func (m *VoiceTarget) String() string { return proto.CompactTextString(m) }
-func (*VoiceTarget) ProtoMessage() {}
-func (*VoiceTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
+var xxx_messageInfo_VoiceTarget proto.InternalMessageInfo
func (m *VoiceTarget) GetId() uint32 {
if m != nil && m.Id != nil {
@@ -1636,22 +2189,44 @@ func (m *VoiceTarget) GetTargets() []*VoiceTarget_Target {
type VoiceTarget_Target struct {
// Users that are included as targets.
Session []uint32 `protobuf:"varint,1,rep,name=session" json:"session,omitempty"`
- // Channels that are included as targets.
+ // Channel that is included as a target.
ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
- // TODO ??
+ // ACL group that is included as a target.
Group *string `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"`
// True if the voice should follow links from the specified channel.
Links *bool `protobuf:"varint,4,opt,name=links,def=0" json:"links,omitempty"`
// True if the voice should also be sent to children of the specific
// channel.
- Children *bool `protobuf:"varint,5,opt,name=children,def=0" json:"children,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Children *bool `protobuf:"varint,5,opt,name=children,def=0" json:"children,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *VoiceTarget_Target) Reset() { *m = VoiceTarget_Target{} }
+func (m *VoiceTarget_Target) String() string { return proto.CompactTextString(m) }
+func (*VoiceTarget_Target) ProtoMessage() {}
+func (*VoiceTarget_Target) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{19, 0}
+}
+
+func (m *VoiceTarget_Target) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_VoiceTarget_Target.Unmarshal(m, b)
+}
+func (m *VoiceTarget_Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_VoiceTarget_Target.Marshal(b, m, deterministic)
+}
+func (m *VoiceTarget_Target) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_VoiceTarget_Target.Merge(m, src)
+}
+func (m *VoiceTarget_Target) XXX_Size() int {
+ return xxx_messageInfo_VoiceTarget_Target.Size(m)
+}
+func (m *VoiceTarget_Target) XXX_DiscardUnknown() {
+ xxx_messageInfo_VoiceTarget_Target.DiscardUnknown(m)
}
-func (m *VoiceTarget_Target) Reset() { *m = VoiceTarget_Target{} }
-func (m *VoiceTarget_Target) String() string { return proto.CompactTextString(m) }
-func (*VoiceTarget_Target) ProtoMessage() {}
-func (*VoiceTarget_Target) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} }
+var xxx_messageInfo_VoiceTarget_Target proto.InternalMessageInfo
const Default_VoiceTarget_Target_Links bool = false
const Default_VoiceTarget_Target_Children bool = false
@@ -1701,14 +2276,36 @@ type PermissionQuery struct {
Permissions *uint32 `protobuf:"varint,2,opt,name=permissions" json:"permissions,omitempty"`
// True if the client should drop its current permission information for all
// channels.
- Flush *bool `protobuf:"varint,3,opt,name=flush,def=0" json:"flush,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Flush *bool `protobuf:"varint,3,opt,name=flush,def=0" json:"flush,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *PermissionQuery) Reset() { *m = PermissionQuery{} }
-func (m *PermissionQuery) String() string { return proto.CompactTextString(m) }
-func (*PermissionQuery) ProtoMessage() {}
-func (*PermissionQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
+func (m *PermissionQuery) Reset() { *m = PermissionQuery{} }
+func (m *PermissionQuery) String() string { return proto.CompactTextString(m) }
+func (*PermissionQuery) ProtoMessage() {}
+func (*PermissionQuery) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{20}
+}
+
+func (m *PermissionQuery) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PermissionQuery.Unmarshal(m, b)
+}
+func (m *PermissionQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PermissionQuery.Marshal(b, m, deterministic)
+}
+func (m *PermissionQuery) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PermissionQuery.Merge(m, src)
+}
+func (m *PermissionQuery) XXX_Size() int {
+ return xxx_messageInfo_PermissionQuery.Size(m)
+}
+func (m *PermissionQuery) XXX_DiscardUnknown() {
+ xxx_messageInfo_PermissionQuery.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PermissionQuery proto.InternalMessageInfo
const Default_PermissionQuery_Flush bool = false
@@ -1741,15 +2338,37 @@ type CodecVersion struct {
// The version of the CELT Beta codec.
Beta *int32 `protobuf:"varint,2,req,name=beta" json:"beta,omitempty"`
// True if the user should prefer Alpha over Beta.
- PreferAlpha *bool `protobuf:"varint,3,req,name=prefer_alpha,json=preferAlpha,def=1" json:"prefer_alpha,omitempty"`
- Opus *bool `protobuf:"varint,4,opt,name=opus,def=0" json:"opus,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ PreferAlpha *bool `protobuf:"varint,3,req,name=prefer_alpha,json=preferAlpha,def=1" json:"prefer_alpha,omitempty"`
+ Opus *bool `protobuf:"varint,4,opt,name=opus,def=0" json:"opus,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *CodecVersion) Reset() { *m = CodecVersion{} }
-func (m *CodecVersion) String() string { return proto.CompactTextString(m) }
-func (*CodecVersion) ProtoMessage() {}
-func (*CodecVersion) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
+func (m *CodecVersion) Reset() { *m = CodecVersion{} }
+func (m *CodecVersion) String() string { return proto.CompactTextString(m) }
+func (*CodecVersion) ProtoMessage() {}
+func (*CodecVersion) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{21}
+}
+
+func (m *CodecVersion) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CodecVersion.Unmarshal(m, b)
+}
+func (m *CodecVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CodecVersion.Marshal(b, m, deterministic)
+}
+func (m *CodecVersion) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CodecVersion.Merge(m, src)
+}
+func (m *CodecVersion) XXX_Size() int {
+ return xxx_messageInfo_CodecVersion.Size(m)
+}
+func (m *CodecVersion) XXX_DiscardUnknown() {
+ xxx_messageInfo_CodecVersion.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CodecVersion proto.InternalMessageInfo
const Default_CodecVersion_PreferAlpha bool = true
const Default_CodecVersion_Opus bool = false
@@ -1820,15 +2439,37 @@ type UserStats struct {
// Duration since last activity.
Idlesecs *uint32 `protobuf:"varint,17,opt,name=idlesecs" json:"idlesecs,omitempty"`
// True if the user has a strong certificate.
- StrongCertificate *bool `protobuf:"varint,18,opt,name=strong_certificate,json=strongCertificate,def=0" json:"strong_certificate,omitempty"`
- Opus *bool `protobuf:"varint,19,opt,name=opus,def=0" json:"opus,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ StrongCertificate *bool `protobuf:"varint,18,opt,name=strong_certificate,json=strongCertificate,def=0" json:"strong_certificate,omitempty"`
+ Opus *bool `protobuf:"varint,19,opt,name=opus,def=0" json:"opus,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UserStats) Reset() { *m = UserStats{} }
+func (m *UserStats) String() string { return proto.CompactTextString(m) }
+func (*UserStats) ProtoMessage() {}
+func (*UserStats) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{22}
}
-func (m *UserStats) Reset() { *m = UserStats{} }
-func (m *UserStats) String() string { return proto.CompactTextString(m) }
-func (*UserStats) ProtoMessage() {}
-func (*UserStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
+func (m *UserStats) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserStats.Unmarshal(m, b)
+}
+func (m *UserStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserStats.Marshal(b, m, deterministic)
+}
+func (m *UserStats) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserStats.Merge(m, src)
+}
+func (m *UserStats) XXX_Size() int {
+ return xxx_messageInfo_UserStats.Size(m)
+}
+func (m *UserStats) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserStats.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserStats proto.InternalMessageInfo
const Default_UserStats_StatsOnly bool = false
const Default_UserStats_StrongCertificate bool = false
@@ -1975,14 +2616,36 @@ type UserStats_Stats struct {
// The amount of packets never received.
Lost *uint32 `protobuf:"varint,3,opt,name=lost" json:"lost,omitempty"`
// The amount of nonce resyncs.
- Resync *uint32 `protobuf:"varint,4,opt,name=resync" json:"resync,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ Resync *uint32 `protobuf:"varint,4,opt,name=resync" json:"resync,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UserStats_Stats) Reset() { *m = UserStats_Stats{} }
+func (m *UserStats_Stats) String() string { return proto.CompactTextString(m) }
+func (*UserStats_Stats) ProtoMessage() {}
+func (*UserStats_Stats) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{22, 0}
+}
+
+func (m *UserStats_Stats) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserStats_Stats.Unmarshal(m, b)
+}
+func (m *UserStats_Stats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserStats_Stats.Marshal(b, m, deterministic)
+}
+func (m *UserStats_Stats) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserStats_Stats.Merge(m, src)
+}
+func (m *UserStats_Stats) XXX_Size() int {
+ return xxx_messageInfo_UserStats_Stats.Size(m)
+}
+func (m *UserStats_Stats) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserStats_Stats.DiscardUnknown(m)
}
-func (m *UserStats_Stats) Reset() { *m = UserStats_Stats{} }
-func (m *UserStats_Stats) String() string { return proto.CompactTextString(m) }
-func (*UserStats_Stats) ProtoMessage() {}
-func (*UserStats_Stats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 0} }
+var xxx_messageInfo_UserStats_Stats proto.InternalMessageInfo
func (m *UserStats_Stats) GetGood() uint32 {
if m != nil && m.Good != nil {
@@ -2026,14 +2689,36 @@ type RequestBlob struct {
// sessions of the requested UserState comments.
SessionComment []uint32 `protobuf:"varint,2,rep,name=session_comment,json=sessionComment" json:"session_comment,omitempty"`
// channel_ids of the requested ChannelState descriptions.
- ChannelDescription []uint32 `protobuf:"varint,3,rep,name=channel_description,json=channelDescription" json:"channel_description,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ ChannelDescription []uint32 `protobuf:"varint,3,rep,name=channel_description,json=channelDescription" json:"channel_description,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *RequestBlob) Reset() { *m = RequestBlob{} }
-func (m *RequestBlob) String() string { return proto.CompactTextString(m) }
-func (*RequestBlob) ProtoMessage() {}
-func (*RequestBlob) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
+func (m *RequestBlob) Reset() { *m = RequestBlob{} }
+func (m *RequestBlob) String() string { return proto.CompactTextString(m) }
+func (*RequestBlob) ProtoMessage() {}
+func (*RequestBlob) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{23}
+}
+
+func (m *RequestBlob) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_RequestBlob.Unmarshal(m, b)
+}
+func (m *RequestBlob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_RequestBlob.Marshal(b, m, deterministic)
+}
+func (m *RequestBlob) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RequestBlob.Merge(m, src)
+}
+func (m *RequestBlob) XXX_Size() int {
+ return xxx_messageInfo_RequestBlob.Size(m)
+}
+func (m *RequestBlob) XXX_DiscardUnknown() {
+ xxx_messageInfo_RequestBlob.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RequestBlob proto.InternalMessageInfo
func (m *RequestBlob) GetSessionTexture() []uint32 {
if m != nil {
@@ -2070,14 +2755,36 @@ type ServerConfig struct {
// Maximum image message length.
ImageMessageLength *uint32 `protobuf:"varint,5,opt,name=image_message_length,json=imageMessageLength" json:"image_message_length,omitempty"`
// The maximum number of users allowed on the server.
- MaxUsers *uint32 `protobuf:"varint,6,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ MaxUsers *uint32 `protobuf:"varint,6,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *ServerConfig) Reset() { *m = ServerConfig{} }
-func (m *ServerConfig) String() string { return proto.CompactTextString(m) }
-func (*ServerConfig) ProtoMessage() {}
-func (*ServerConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
+func (m *ServerConfig) Reset() { *m = ServerConfig{} }
+func (m *ServerConfig) String() string { return proto.CompactTextString(m) }
+func (*ServerConfig) ProtoMessage() {}
+func (*ServerConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{24}
+}
+
+func (m *ServerConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ServerConfig.Unmarshal(m, b)
+}
+func (m *ServerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ServerConfig.Marshal(b, m, deterministic)
+}
+func (m *ServerConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ServerConfig.Merge(m, src)
+}
+func (m *ServerConfig) XXX_Size() int {
+ return xxx_messageInfo_ServerConfig.Size(m)
+}
+func (m *ServerConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_ServerConfig.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ServerConfig proto.InternalMessageInfo
func (m *ServerConfig) GetMaxBandwidth() uint32 {
if m != nil && m.MaxBandwidth != nil {
@@ -2130,14 +2837,36 @@ type SuggestConfig struct {
// server.
Positional *bool `protobuf:"varint,2,opt,name=positional" json:"positional,omitempty"`
// True if the administrator suggests push to talk to be used on this server.
- PushToTalk *bool `protobuf:"varint,3,opt,name=push_to_talk,json=pushToTalk" json:"push_to_talk,omitempty"`
- XXX_unrecognized []byte `json:"-"`
+ PushToTalk *bool `protobuf:"varint,3,opt,name=push_to_talk,json=pushToTalk" json:"push_to_talk,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SuggestConfig) Reset() { *m = SuggestConfig{} }
+func (m *SuggestConfig) String() string { return proto.CompactTextString(m) }
+func (*SuggestConfig) ProtoMessage() {}
+func (*SuggestConfig) Descriptor() ([]byte, []int) {
+ return fileDescriptor_56c09c2dce0fb003, []int{25}
+}
+
+func (m *SuggestConfig) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SuggestConfig.Unmarshal(m, b)
+}
+func (m *SuggestConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SuggestConfig.Marshal(b, m, deterministic)
+}
+func (m *SuggestConfig) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SuggestConfig.Merge(m, src)
+}
+func (m *SuggestConfig) XXX_Size() int {
+ return xxx_messageInfo_SuggestConfig.Size(m)
+}
+func (m *SuggestConfig) XXX_DiscardUnknown() {
+ xxx_messageInfo_SuggestConfig.DiscardUnknown(m)
}
-func (m *SuggestConfig) Reset() { *m = SuggestConfig{} }
-func (m *SuggestConfig) String() string { return proto.CompactTextString(m) }
-func (*SuggestConfig) ProtoMessage() {}
-func (*SuggestConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
+var xxx_messageInfo_SuggestConfig proto.InternalMessageInfo
func (m *SuggestConfig) GetVersion() uint32 {
if m != nil && m.Version != nil {
@@ -2161,6 +2890,10 @@ func (m *SuggestConfig) GetPushToTalk() bool {
}
func init() {
+ proto.RegisterEnum("mumbleproto.Reject_RejectType", Reject_RejectType_name, Reject_RejectType_value)
+ proto.RegisterEnum("mumbleproto.PermissionDenied_DenyType", PermissionDenied_DenyType_name, PermissionDenied_DenyType_value)
+ proto.RegisterEnum("mumbleproto.ContextActionModify_Context", ContextActionModify_Context_name, ContextActionModify_Context_value)
+ proto.RegisterEnum("mumbleproto.ContextActionModify_Operation", ContextActionModify_Operation_name, ContextActionModify_Operation_value)
proto.RegisterType((*Version)(nil), "mumbleproto.Version")
proto.RegisterType((*UDPTunnel)(nil), "mumbleproto.UDPTunnel")
proto.RegisterType((*Authenticate)(nil), "mumbleproto.Authenticate")
@@ -2193,165 +2926,169 @@ func init() {
proto.RegisterType((*RequestBlob)(nil), "mumbleproto.RequestBlob")
proto.RegisterType((*ServerConfig)(nil), "mumbleproto.ServerConfig")
proto.RegisterType((*SuggestConfig)(nil), "mumbleproto.SuggestConfig")
- proto.RegisterEnum("mumbleproto.Reject_RejectType", Reject_RejectType_name, Reject_RejectType_value)
- proto.RegisterEnum("mumbleproto.PermissionDenied_DenyType", PermissionDenied_DenyType_name, PermissionDenied_DenyType_value)
- proto.RegisterEnum("mumbleproto.ContextActionModify_Context", ContextActionModify_Context_name, ContextActionModify_Context_value)
- proto.RegisterEnum("mumbleproto.ContextActionModify_Operation", ContextActionModify_Operation_name, ContextActionModify_Operation_value)
}
-var fileDescriptor0 = []byte{
- // 2439 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x73, 0x23, 0x47,
- 0x15, 0x67, 0xf4, 0x65, 0xe9, 0x49, 0xb2, 0xe5, 0xd9, 0x25, 0x08, 0xe7, 0x6b, 0x33, 0x81, 0x60,
- 0x20, 0x65, 0x82, 0x2b, 0x97, 0xa4, 0x8a, 0x83, 0xd7, 0x4b, 0xf0, 0x16, 0xeb, 0x8d, 0x19, 0x3b,
- 0x9b, 0x03, 0x87, 0x61, 0xac, 0x69, 0x4b, 0x83, 0x47, 0x33, 0xc3, 0xf4, 0xc8, 0x1b, 0x55, 0x71,
- 0x04, 0xae, 0x50, 0xc5, 0x81, 0x1b, 0x7f, 0x00, 0x45, 0xa5, 0x8a, 0x3f, 0x80, 0x0b, 0x7f, 0x01,
- 0xff, 0x00, 0x17, 0xae, 0xdc, 0xa8, 0xe2, 0xce, 0xfb, 0xe8, 0xf9, 0xb2, 0xb5, 0xd9, 0x70, 0xe5,
- 0x22, 0xcd, 0xfb, 0xf5, 0xeb, 0xee, 0xd7, 0xaf, 0xdf, 0x67, 0xc3, 0xe8, 0x74, 0xb5, 0xbc, 0x8c,
- 0xd4, 0x41, 0x9a, 0x25, 0x79, 0x62, 0x0f, 0x97, 0x4c, 0x31, 0xe1, 0xfc, 0xd6, 0x82, 0xad, 0x67,
- 0x2a, 0xd3, 0x61, 0x12, 0xdb, 0x6f, 0xc1, 0x68, 0x96, 0xad, 0xd3, 0x3c, 0xf1, 0x96, 0x49, 0xa0,
- 0xf4, 0xb4, 0xfb, 0xa0, 0xbd, 0x3f, 0x70, 0x87, 0x82, 0x9d, 0x12, 0x64, 0x4f, 0x61, 0xeb, 0x46,
- 0xb8, 0xa7, 0xd6, 0x03, 0x6b, 0x7f, 0xec, 0x16, 0x24, 0x8d, 0x64, 0x2a, 0x52, 0xbe, 0x56, 0xd3,
- 0x16, 0x8e, 0x0c, 0xdc, 0x82, 0xb4, 0xb7, 0xa1, 0x95, 0xe8, 0x69, 0x9b, 0x41, 0xfc, 0xb2, 0x5f,
- 0x07, 0x48, 0xb4, 0x57, 0x2c, 0xd3, 0x61, 0x7c, 0x90, 0x68, 0x23, 0x85, 0xf3, 0x36, 0x0c, 0x3e,
- 0x79, 0x74, 0x76, 0xb1, 0x8a, 0x63, 0x15, 0xd9, 0xaf, 0x40, 0x2f, 0xf5, 0x67, 0xd7, 0x2a, 0xc7,
- 0xed, 0x5a, 0xfb, 0x23, 0xd7, 0x50, 0xce, 0x1f, 0x2d, 0x18, 0x1d, 0xad, 0xf2, 0x85, 0x8a, 0xf3,
- 0x70, 0xe6, 0xe7, 0xca, 0xde, 0x83, 0xfe, 0x4a, 0xab, 0x2c, 0xf6, 0x97, 0x8a, 0x25, 0x1b, 0xb8,
- 0x25, 0x4d, 0x63, 0xa9, 0xaf, 0xf5, 0xf3, 0x24, 0x0b, 0x8c, 0x6c, 0x25, 0x4d, 0x1b, 0xe4, 0xc9,
- 0xb5, 0x8a, 0x49, 0x40, 0x3a, 0xad, 0xa1, 0xec, 0xb7, 0x61, 0x3c, 0x53, 0x51, 0x5e, 0x88, 0xa9,
- 0x51, 0xce, 0xf6, 0x7e, 0xd7, 0x1d, 0x11, 0x68, 0x24, 0xd5, 0xf6, 0xd7, 0xa1, 0x93, 0xa4, 0x2b,
- 0x52, 0x94, 0xb5, 0xdf, 0xff, 0xb0, 0x7b, 0xe5, 0x47, 0x5a, 0xb9, 0x0c, 0x39, 0x7f, 0x6b, 0x41,
- 0xe7, 0x2c, 0x8c, 0xe7, 0xf6, 0x6b, 0x30, 0xc8, 0xc3, 0xa5, 0xd2, 0xb9, 0xbf, 0x4c, 0x59, 0xb2,
- 0x8e, 0x5b, 0x01, 0xb6, 0x0d, 0x9d, 0x79, 0x92, 0x88, 0x58, 0x63, 0x97, 0xbf, 0x09, 0x8b, 0xf0,
- 0x48, 0xac, 0x31, 0xc4, 0xe8, 0x9b, 0xb1, 0x44, 0xe7, 0xac, 0x2d, 0xc2, 0xf0, 0x9b, 0x44, 0xcf,
- 0x94, 0x5e, 0xc7, 0x33, 0xde, 0x7f, 0xec, 0x1a, 0xca, 0x7e, 0x13, 0x86, 0xab, 0x20, 0xf5, 0x44,
- 0x53, 0x7a, 0xda, 0xe3, 0x41, 0x40, 0xe8, 0x4c, 0x10, 0x62, 0xc8, 0x67, 0x15, 0xc3, 0x96, 0x30,
- 0x20, 0x54, 0x30, 0x3c, 0x80, 0x11, 0xaf, 0x80, 0xf2, 0x7b, 0xfe, 0xcd, 0x7c, 0xda, 0x47, 0x8e,
- 0x96, 0x2c, 0x81, 0xd0, 0xd1, 0xcd, 0xbc, 0xc1, 0x71, 0xe3, 0x67, 0xd3, 0x41, 0x83, 0xe3, 0x99,
- 0x9f, 0x11, 0x07, 0x6f, 0x52, 0xac, 0x01, 0xc2, 0x41, 0xbb, 0x54, 0x6b, 0x94, 0x1c, 0xb4, 0xc6,
- 0xb0, 0xc1, 0x81, 0x6b, 0x38, 0xbf, 0x6e, 0x41, 0xcf, 0x55, 0x3f, 0x57, 0xb3, 0xdc, 0x3e, 0x84,
- 0x4e, 0xbe, 0x4e, 0xe5, 0x6e, 0xb7, 0x0f, 0xdf, 0x38, 0xa8, 0xd9, 0xf0, 0x81, 0xb0, 0x98, 0xbf,
- 0x0b, 0xe4, 0x72, 0x99, 0x57, 0x14, 0xe4, 0x6b, 0x34, 0x32, 0xb9, 0x75, 0x43, 0x39, 0x9f, 0x5b,
- 0x00, 0x15, 0xb3, 0xdd, 0x87, 0xce, 0xd3, 0x24, 0x56, 0x93, 0xaf, 0xd8, 0x13, 0x18, 0x7d, 0x9a,
- 0x25, 0xb8, 0xb7, 0x5c, 0xf0, 0xc4, 0xb2, 0xef, 0xc1, 0xce, 0xe3, 0xf8, 0xc6, 0x8f, 0xc2, 0xe0,
- 0x13, 0x63, 0x4d, 0x93, 0x96, 0xbd, 0x03, 0x43, 0x66, 0x23, 0xe8, 0xec, 0xd3, 0x49, 0xdb, 0xde,
- 0x85, 0x31, 0x03, 0xe7, 0x2a, 0xbb, 0x61, 0xa8, 0x43, 0x50, 0x31, 0xe3, 0x71, 0x8c, 0x5f, 0x93,
- 0x2e, 0xfa, 0x01, 0x08, 0xc3, 0x47, 0xab, 0x28, 0x9a, 0xf4, 0x88, 0xe5, 0x69, 0x72, 0xac, 0xb2,
- 0x3c, 0xbc, 0x62, 0x1b, 0x9e, 0x6c, 0xd9, 0x5f, 0x85, 0xdd, 0x9a, 0x55, 0x27, 0xd9, 0x47, 0x7e,
- 0x18, 0x4d, 0xfa, 0xce, 0xef, 0xac, 0x62, 0xea, 0x39, 0x5d, 0x30, 0xba, 0x9a, 0x56, 0xba, 0xee,
- 0x84, 0x86, 0x24, 0xab, 0x5d, 0xfa, 0x9f, 0x79, 0x97, 0x7e, 0x1c, 0x3c, 0x0f, 0x83, 0x7c, 0x61,
- 0xec, 0x6a, 0x84, 0xe0, 0xc3, 0x02, 0x23, 0x37, 0x7f, 0xae, 0xa2, 0x59, 0xb2, 0x54, 0x5e, 0xae,
- 0x3e, 0xcb, 0x8d, 0x67, 0x0e, 0x0d, 0x76, 0x81, 0x10, 0x5e, 0xcd, 0x30, 0x55, 0xd9, 0x32, 0xd4,
- 0x85, 0xed, 0x93, 0xd9, 0xd6, 0x21, 0xe7, 0x00, 0xc6, 0xc7, 0x0b, 0x9f, 0x7c, 0xd4, 0x55, 0xcb,
- 0xe4, 0x46, 0x91, 0x57, 0xcf, 0x04, 0xf0, 0xc2, 0x80, 0xbd, 0x75, 0xec, 0x0e, 0x0c, 0xf2, 0x38,
- 0x70, 0xfe, 0xd1, 0x82, 0x91, 0x99, 0x70, 0x9e, 0x93, 0x45, 0xdf, 0xe6, 0xb7, 0x1a, 0xfc, 0xe2,
- 0xf8, 0x19, 0x2a, 0xc2, 0x1c, 0xc1, 0x50, 0xe4, 0x08, 0xec, 0xe3, 0x22, 0x34, 0x7f, 0xdb, 0xf7,
- 0xa1, 0x1b, 0x85, 0xf1, 0xb5, 0xf8, 0xe8, 0xd8, 0x15, 0x82, 0xce, 0x80, 0x11, 0x6b, 0x96, 0x85,
- 0x69, 0x4e, 0x9a, 0xea, 0xca, 0x29, 0x6b, 0x90, 0xfd, 0x2a, 0x0c, 0x98, 0xd5, 0xf3, 0x83, 0x00,
- 0xdd, 0x84, 0xe6, 0xf6, 0x19, 0x38, 0x0a, 0x02, 0xd2, 0x92, 0x0c, 0x66, 0x7c, 0x3e, 0xf4, 0x12,
- 0x1a, 0x1f, 0x32, 0x66, 0x8e, 0x8c, 0x91, 0x2a, 0x57, 0xcb, 0x34, 0xc9, 0xfc, 0x6c, 0xcd, 0x3e,
- 0x52, 0xc6, 0x80, 0x0a, 0xc7, 0x73, 0xf6, 0xd3, 0x44, 0x87, 0x2c, 0x03, 0x79, 0x49, 0xf7, 0x43,
- 0xeb, 0x3d, 0xb7, 0x84, 0xec, 0x6f, 0xc3, 0xa4, 0x26, 0x92, 0xb7, 0xf0, 0xf5, 0x82, 0x5d, 0x65,
- 0xe4, 0xee, 0xd4, 0xf0, 0x13, 0x84, 0x49, 0x5c, 0xba, 0x5c, 0x0a, 0x6b, 0x9a, 0x9d, 0x05, 0xc5,
- 0x45, 0x80, 0xcc, 0x4c, 0x3b, 0x57, 0x00, 0xf4, 0x61, 0x24, 0x6b, 0x58, 0x48, 0xab, 0x6e, 0x21,
- 0xa8, 0x2b, 0x7f, 0x86, 0x96, 0x65, 0xd4, 0x2a, 0x44, 0xcd, 0x53, 0xda, 0x75, 0x4f, 0x41, 0x87,
- 0x68, 0xa3, 0x2d, 0xf1, 0xfd, 0xf7, 0x5d, 0xfa, 0x74, 0xfe, 0xdc, 0xc1, 0xf0, 0x8c, 0x1b, 0xc9,
- 0x25, 0xbe, 0xd8, 0x12, 0x37, 0xef, 0xb3, 0xe9, 0xf6, 0xbe, 0x06, 0x5b, 0x74, 0x24, 0xb2, 0x02,
- 0x89, 0x6e, 0x3d, 0x22, 0xd1, 0x04, 0x9a, 0x16, 0xd2, 0xbd, 0x6d, 0x21, 0xb8, 0xd6, 0x72, 0x85,
- 0x61, 0xb2, 0xc7, 0xc2, 0xf1, 0x37, 0x61, 0x81, 0xf2, 0xaf, 0x38, 0xa4, 0x21, 0x46, 0xdf, 0x14,
- 0xfd, 0xf5, 0x2a, 0x4d, 0x31, 0x38, 0x6a, 0xb9, 0x24, 0xb7, 0xa4, 0x49, 0xa5, 0x5a, 0x45, 0x57,
- 0x1e, 0x2f, 0x34, 0x30, 0x83, 0x08, 0x9c, 0xd2, 0x62, 0xc5, 0x20, 0xaf, 0x08, 0xd5, 0xe0, 0x23,
- 0x5a, 0x15, 0x4f, 0x4e, 0xce, 0xb3, 0xca, 0x14, 0x5f, 0xc5, 0xc8, 0x2d, 0x48, 0xfb, 0x9b, 0xb0,
- 0x9d, 0x46, 0xab, 0x79, 0x18, 0x7b, 0xb3, 0x24, 0x66, 0x07, 0x1b, 0x31, 0xc3, 0x58, 0xd0, 0x63,
- 0x01, 0xed, 0x6f, 0xc1, 0x8e, 0x61, 0x0b, 0x03, 0xf2, 0xf7, 0x7c, 0x3d, 0x1d, 0xb3, 0x56, 0xcc,
- 0xec, 0xc7, 0x06, 0xa5, 0x9d, 0xd0, 0x2f, 0x97, 0xe4, 0x0a, 0xdb, 0x92, 0x58, 0x0d, 0x49, 0xa7,
- 0x65, 0x7b, 0xd9, 0x11, 0x6d, 0xd2, 0x37, 0xe7, 0x70, 0x19, 0x16, 0x5b, 0x9a, 0xf0, 0xde, 0x43,
- 0x83, 0x9d, 0x18, 0x16, 0x23, 0xab, 0xb0, 0xec, 0x0a, 0x8b, 0xc1, 0x98, 0x05, 0xad, 0x32, 0xcd,
- 0xc2, 0x24, 0xc3, 0xfd, 0x3d, 0x9d, 0x2a, 0xff, 0x5a, 0x65, 0x53, 0x9b, 0x35, 0xb0, 0x53, 0xe0,
- 0xe7, 0x02, 0x53, 0x7e, 0xcb, 0xd4, 0x0c, 0x53, 0x29, 0xc6, 0xec, 0xe9, 0x3d, 0xe6, 0xa9, 0x00,
- 0xe7, 0x37, 0x2d, 0xd8, 0xc2, 0xc8, 0xf3, 0x24, 0xc4, 0x7c, 0xf5, 0x7d, 0xe8, 0xa0, 0x05, 0x69,
- 0xb4, 0x94, 0xf6, 0xfe, 0xf0, 0xf0, 0xf5, 0x46, 0x08, 0x37, 0x3c, 0xf4, 0xff, 0xc3, 0x38, 0xcf,
- 0xd6, 0x2e, 0xb3, 0xe2, 0x15, 0x74, 0x7f, 0xb1, 0x52, 0xe8, 0x5d, 0xad, 0xba, 0x77, 0x09, 0xb6,
- 0xf7, 0x27, 0x0b, 0xfa, 0x05, 0x3f, 0x69, 0x09, 0xbd, 0x98, 0x2f, 0x59, 0x2a, 0x85, 0x82, 0x64,
- 0x3b, 0xf1, 0xf5, 0x35, 0x2e, 0x41, 0x8e, 0xc0, 0xdf, 0x1b, 0xed, 0xb0, 0xd0, 0x66, 0xa7, 0xa6,
- 0xcd, 0xca, 0x2f, 0xba, 0x0d, 0xbf, 0x40, 0xeb, 0xc6, 0xfc, 0x9d, 0xe5, 0x6c, 0x7c, 0x03, 0x57,
- 0x08, 0xb2, 0xb4, 0x60, 0x95, 0xf9, 0xec, 0xea, 0x92, 0x54, 0x4b, 0x9a, 0xea, 0xac, 0x21, 0x85,
- 0xd6, 0x53, 0x14, 0xc9, 0x9f, 0xab, 0xca, 0x3f, 0xac, 0xba, 0x7f, 0xd4, 0xfc, 0xa9, 0xc5, 0xf1,
- 0xa6, 0xf4, 0xa7, 0xa6, 0x33, 0xb4, 0x79, 0xb0, 0xe6, 0x0c, 0xe8, 0x44, 0x79, 0xa6, 0x94, 0x38,
- 0x11, 0x8d, 0xf5, 0x88, 0xc4, 0x01, 0x5c, 0x71, 0x29, 0x5b, 0xe2, 0x11, 0x5a, 0x64, 0x3d, 0x86,
- 0x74, 0x7e, 0xdf, 0x86, 0xc9, 0x59, 0x19, 0xd1, 0x1f, 0xa9, 0x38, 0x54, 0x81, 0xfd, 0x06, 0x40,
- 0x15, 0xe5, 0x8d, 0x6c, 0x35, 0xe4, 0x96, 0x18, 0xad, 0xdb, 0x3e, 0x59, 0x93, 0xbf, 0xdd, 0x8c,
- 0x07, 0x95, 0x26, 0x3b, 0x0d, 0x4d, 0x7e, 0x68, 0xf2, 0x7a, 0x97, 0xf3, 0xfa, 0x3b, 0x0d, 0xa3,
- 0xb8, 0x2d, 0xdd, 0x01, 0xfe, 0xad, 0x6b, 0xf9, 0xbd, 0xb8, 0xc5, 0x5e, 0x75, 0x8b, 0xce, 0x5f,
- 0xd1, 0x28, 0x0a, 0x36, 0xca, 0xec, 0xa4, 0x73, 0xcc, 0xec, 0x98, 0x7b, 0xab, 0xd5, 0x30, 0xaf,
- 0x8f, 0x61, 0x70, 0xbe, 0xc2, 0x73, 0x51, 0x28, 0x93, 0x8c, 0x6e, 0x92, 0xd3, 0x53, 0x4a, 0xf1,
- 0x6d, 0x02, 0x68, 0xe6, 0x45, 0x92, 0x3c, 0xc1, 0xbc, 0x8e, 0xf9, 0x7c, 0x0b, 0xda, 0x27, 0x1f,
- 0xfc, 0x18, 0xb3, 0xf8, 0x7d, 0x98, 0x5c, 0x14, 0xc1, 0xdd, 0xcc, 0xc1, 0x5c, 0xfe, 0x0a, 0xd8,
- 0xa7, 0xb4, 0x78, 0x3c, 0x6f, 0x26, 0xf4, 0x11, 0xf4, 0x69, 0x0b, 0x5e, 0xb5, 0x5f, 0xdb, 0x86,
- 0x4b, 0x80, 0x01, 0x15, 0x1c, 0x4f, 0xb1, 0x12, 0xc4, 0x69, 0x4f, 0xc2, 0x65, 0x98, 0x4f, 0xc0,
- 0xf9, 0x55, 0x17, 0xda, 0x47, 0xc7, 0x4f, 0x5e, 0x92, 0x4e, 0x31, 0x7a, 0x8c, 0xc2, 0x78, 0xa1,
- 0xd0, 0x11, 0x3d, 0x7f, 0x16, 0x69, 0xe3, 0x1f, 0x9d, 0x3c, 0x5b, 0x29, 0x77, 0x68, 0x46, 0x8e,
- 0x70, 0x00, 0xeb, 0xa6, 0xde, 0x3c, 0x4b, 0x56, 0xa9, 0xd4, 0xb7, 0xc3, 0xc3, 0xbd, 0x86, 0x86,
- 0x71, 0xa7, 0x03, 0x92, 0xe8, 0x47, 0xc4, 0xe2, 0x1a, 0x4e, 0xfb, 0x5d, 0xe8, 0xf0, 0xa2, 0x1d,
- 0x9e, 0x31, 0xdd, 0x38, 0x03, 0xff, 0x5d, 0xe6, 0xaa, 0x7c, 0xb4, 0xbb, 0xc1, 0x47, 0xff, 0x69,
- 0xc1, 0xa0, 0xdc, 0xa0, 0xbc, 0x30, 0x8b, 0x2d, 0x51, 0xdc, 0xce, 0x81, 0x81, 0x91, 0x57, 0x05,
- 0x8d, 0x63, 0x54, 0x30, 0x5a, 0xe5, 0x96, 0x21, 0xd8, 0xac, 0x0a, 0x8e, 0x02, 0xb4, 0xdf, 0x81,
- 0xe2, 0xcc, 0x3e, 0x0a, 0x2a, 0xe9, 0xea, 0x96, 0x32, 0x68, 0x80, 0xd2, 0x19, 0xa5, 0xfa, 0x2e,
- 0x7b, 0x08, 0x7d, 0x8a, 0x59, 0x72, 0x7e, 0x97, 0xfc, 0x6f, 0x28, 0xfb, 0xbb, 0xb0, 0x5b, 0x6e,
- 0xef, 0x2d, 0xd5, 0xf2, 0x92, 0x72, 0xae, 0x94, 0x00, 0x93, 0x72, 0xe0, 0x54, 0xf0, 0xbd, 0xbf,
- 0x63, 0x0f, 0x65, 0x74, 0x82, 0x35, 0x01, 0xf8, 0x69, 0x1a, 0xad, 0x3d, 0xe4, 0x91, 0x6a, 0xb5,
- 0x3c, 0x0f, 0xe3, 0x27, 0x08, 0x57, 0x4c, 0x7a, 0x75, 0xd9, 0xbc, 0x3b, 0x61, 0x3a, 0x47, 0xb8,
- 0xa9, 0x98, 0xf6, 0x66, 0xc5, 0xbc, 0x30, 0x77, 0x62, 0x78, 0xe1, 0xcb, 0x34, 0x71, 0x4b, 0x08,
- 0x41, 0xfd, 0x38, 0x37, 0x3d, 0x81, 0x10, 0x92, 0x34, 0xe3, 0xb5, 0x09, 0x59, 0xfc, 0xed, 0xbc,
- 0x0f, 0xf0, 0x13, 0xba, 0x40, 0x2e, 0x2e, 0x48, 0x6f, 0x61, 0x20, 0x81, 0x1b, 0xf5, 0x86, 0x9f,
- 0xb4, 0x12, 0xdd, 0x9e, 0xe6, 0x30, 0x85, 0xeb, 0x33, 0xe1, 0x04, 0x00, 0xc7, 0xd4, 0x2c, 0x9e,
- 0xab, 0x1c, 0x77, 0xc3, 0x59, 0xd7, 0x6a, 0xcd, 0x3a, 0x18, 0xb9, 0xf4, 0xc9, 0xc9, 0x29, 0x0a,
- 0x29, 0x37, 0xc5, 0x49, 0x3c, 0x93, 0x46, 0x91, 0x92, 0x13, 0x63, 0x4f, 0x09, 0x22, 0x16, 0xcd,
- 0x95, 0xae, 0x61, 0x69, 0x0b, 0x8b, 0x60, 0xcc, 0xe2, 0xfc, 0xc7, 0x82, 0x7b, 0x26, 0x8b, 0x1e,
- 0xcd, 0x28, 0xb8, 0x62, 0x6b, 0x1a, 0x5e, 0xad, 0xe9, 0x2e, 0x7d, 0xa6, 0x8d, 0x7d, 0x19, 0x8a,
- 0xce, 0xc7, 0x69, 0x58, 0x9a, 0x00, 0xfe, 0x96, 0xa4, 0x1a, 0x97, 0xe5, 0xef, 0xd8, 0x2d, 0x48,
- 0xfb, 0x04, 0x06, 0x09, 0x06, 0x06, 0x89, 0xe2, 0x1d, 0x8e, 0x4a, 0xdf, 0x69, 0x78, 0xc0, 0x86,
- 0xad, 0x0f, 0x3e, 0x2e, 0x66, 0xb8, 0xd5, 0x64, 0xe7, 0x5d, 0xb4, 0x0a, 0xb3, 0x28, 0x40, 0x4f,
- 0xea, 0x77, 0x0c, 0x3d, 0x43, 0x31, 0x16, 0x8a, 0x1b, 0x2d, 0x8a, 0x50, 0x1c, 0x82, 0x3a, 0xce,
- 0x03, 0x18, 0x94, 0xab, 0x50, 0xb4, 0xc1, 0x1a, 0x14, 0xe3, 0x16, 0x50, 0x03, 0x44, 0x16, 0x39,
- 0xb1, 0x9c, 0x9f, 0x61, 0xc9, 0x5d, 0xdf, 0xfb, 0x0b, 0xaa, 0xaf, 0x97, 0x84, 0xe9, 0x4a, 0x53,
- 0xed, 0xba, 0xa6, 0x9c, 0xbf, 0x58, 0x12, 0xae, 0x38, 0x5d, 0xbf, 0x07, 0x5d, 0x29, 0x35, 0xad,
- 0x0d, 0x81, 0xa3, 0xe0, 0xe2, 0x0f, 0x57, 0x18, 0xf7, 0xb4, 0x1c, 0xa6, 0x6e, 0x95, 0x12, 0xb8,
- 0x0a, 0xab, 0x2c, 0xfc, 0xbf, 0x55, 0x4b, 0xbb, 0x54, 0x84, 0xfb, 0x3a, 0xf7, 0xb4, 0x52, 0x45,
- 0xf5, 0xd9, 0x27, 0xe0, 0x1c, 0x69, 0x2e, 0xc2, 0x69, 0xd0, 0x88, 0x6e, 0x8c, 0x7c, 0x48, 0x98,
- 0xd1, 0xa1, 0xf3, 0x6f, 0x4c, 0xac, 0xcf, 0x92, 0x70, 0xa6, 0x2e, 0xfc, 0x6c, 0xae, 0x72, 0x7a,
- 0x6d, 0x28, 0xfb, 0x09, 0xfc, 0xb2, 0x3f, 0xc0, 0xcc, 0xc8, 0x23, 0x62, 0xab, 0xc3, 0xc3, 0x37,
- 0x1b, 0x07, 0xa9, 0x4d, 0x3d, 0x90, 0x3f, 0xb7, 0xe0, 0xdf, 0xfb, 0x83, 0x05, 0x3d, 0xb3, 0x6a,
- 0x43, 0xd5, 0xed, 0xff, 0x41, 0xd5, 0xa5, 0x23, 0xb6, 0xeb, 0x8e, 0xf8, 0x6a, 0xd5, 0xb1, 0xd4,
- 0x63, 0xa6, 0x34, 0x2e, 0x6f, 0x41, 0x7f, 0xb6, 0x08, 0x23, 0xac, 0x5e, 0xe2, 0x66, 0x4c, 0x2d,
- 0x61, 0x27, 0x81, 0x9d, 0x2a, 0x9d, 0xb1, 0xa3, 0xbe, 0xac, 0x9f, 0xba, 0xd5, 0xd1, 0x89, 0x9c,
- 0x75, 0x88, 0x64, 0xba, 0x8a, 0x56, 0x58, 0x00, 0xb5, 0x1b, 0x32, 0x31, 0xe6, 0xfc, 0x12, 0xbb,
- 0xb7, 0x24, 0x50, 0xb3, 0xe2, 0xa9, 0x88, 0xca, 0x97, 0x28, 0x5d, 0xf8, 0x7c, 0xc1, 0x5d, 0x57,
- 0x08, 0xba, 0xdf, 0x4b, 0x95, 0xfb, 0x5c, 0x6a, 0x75, 0x5d, 0xfe, 0xa6, 0x4c, 0x85, 0xb5, 0xf6,
- 0x15, 0x9a, 0x83, 0x4c, 0x20, 0x8b, 0x2b, 0x83, 0xb3, 0x8c, 0x1c, 0xf1, 0xe4, 0xe2, 0x31, 0xa5,
- 0x73, 0xf7, 0x31, 0xe5, 0xf3, 0x5e, 0xd5, 0x74, 0xe8, 0x2f, 0x30, 0xfb, 0x6f, 0x00, 0x68, 0x62,
- 0xf1, 0x92, 0x38, 0xba, 0x55, 0x33, 0x0e, 0x78, 0xe0, 0x63, 0xc4, 0x31, 0xb0, 0x8e, 0x66, 0x55,
- 0x92, 0x96, 0xc4, 0x38, 0x72, 0x1b, 0x98, 0xfd, 0x03, 0x18, 0x5e, 0x65, 0xc9, 0xd2, 0x93, 0xd0,
- 0xc4, 0x32, 0x0d, 0x0f, 0x5f, 0xbb, 0xe3, 0x02, 0x2c, 0xd0, 0x01, 0xff, 0xba, 0x40, 0x13, 0x8e,
- 0x99, 0xbf, 0x9c, 0x2e, 0x61, 0x8b, 0x6f, 0xf1, 0x4b, 0x4d, 0x97, 0x20, 0xf1, 0xff, 0xf3, 0x82,
- 0x63, 0x1f, 0x54, 0xef, 0x85, 0x23, 0x56, 0xc2, 0xfd, 0xa6, 0xf7, 0xc9, 0x58, 0xf5, 0x8a, 0x78,
- 0xe7, 0xd9, 0x6d, 0xbc, 0xe1, 0xd9, 0xad, 0x56, 0xeb, 0x6f, 0x4b, 0xef, 0x55, 0xd4, 0xfa, 0xd8,
- 0x8c, 0x54, 0x6f, 0x1f, 0x3b, 0xe2, 0x03, 0x25, 0x40, 0xc5, 0x2d, 0x1a, 0x46, 0x18, 0x2b, 0xad,
- 0x66, 0x9a, 0x3b, 0x23, 0x54, 0x5a, 0x85, 0x50, 0xfd, 0x1e, 0x06, 0x91, 0x8c, 0xee, 0x4a, 0xfd,
- 0x5e, 0xd0, 0xf6, 0xfb, 0x60, 0xeb, 0x9c, 0xde, 0x78, 0xbc, 0x9a, 0x9d, 0x48, 0x4f, 0x54, 0x98,
- 0xd8, 0xae, 0x30, 0xd4, 0x0a, 0xc0, 0xd2, 0xa6, 0xef, 0xdd, 0xb1, 0xe9, 0xbd, 0x9f, 0x42, 0x57,
- 0xcc, 0xb9, 0x78, 0x02, 0xb4, 0x36, 0x3c, 0x01, 0xb6, 0x36, 0x3c, 0x01, 0xb6, 0x37, 0x3e, 0x01,
- 0x76, 0xea, 0x4f, 0x80, 0xf4, 0x60, 0x34, 0x74, 0x15, 0x96, 0x60, 0x3a, 0x7f, 0x18, 0x25, 0x97,
- 0xd4, 0x6c, 0x1a, 0x1f, 0xf1, 0x8a, 0xae, 0x55, 0xc2, 0xd8, 0xb6, 0x81, 0x2f, 0x4c, 0xf3, 0x5a,
- 0x63, 0x2c, 0x9a, 0xce, 0x56, 0x83, 0xf1, 0xd8, 0xf4, 0x9e, 0xdf, 0x83, 0x7b, 0x45, 0xb8, 0xa9,
- 0xbf, 0xb2, 0x48, 0x63, 0x62, 0x9b, 0xa1, 0x47, 0xd5, 0x88, 0xf3, 0x2f, 0x0b, 0x46, 0x62, 0xde,
- 0x98, 0xc4, 0xae, 0xc2, 0xf9, 0xdd, 0xb7, 0x2a, 0xeb, 0x4b, 0xbc, 0x55, 0xb5, 0xee, 0xbe, 0x55,
- 0x61, 0xe0, 0xf3, 0xa3, 0x28, 0x79, 0xee, 0x2d, 0xf2, 0x65, 0x24, 0xc1, 0x0b, 0xcb, 0x28, 0x42,
- 0x4e, 0x10, 0xa0, 0x76, 0xdc, 0x74, 0x3c, 0x5e, 0xa4, 0xe2, 0x79, 0xbe, 0x30, 0xaa, 0x1a, 0x1b,
- 0xf4, 0x09, 0x83, 0x98, 0xed, 0xee, 0x87, 0x4b, 0x62, 0xba, 0xc5, 0x2c, 0xcf, 0x0e, 0x36, 0x8f,
- 0x9d, 0x36, 0x66, 0x34, 0x9e, 0x63, 0x7a, 0xb7, 0x9e, 0x63, 0xae, 0x61, 0x7c, 0xbe, 0x9a, 0xcf,
- 0x51, 0xff, 0xe6, 0xb4, 0x2f, 0x7e, 0x38, 0xa7, 0x96, 0xcb, 0xbc, 0x06, 0xf9, 0x91, 0x04, 0x2d,
- 0xb7, 0x86, 0x90, 0x93, 0xa1, 0xbd, 0x2c, 0xbc, 0x3c, 0xf1, 0x72, 0x3f, 0xba, 0x36, 0x27, 0x04,
- 0xc2, 0x2e, 0x92, 0x0b, 0x44, 0x1e, 0xb6, 0x4e, 0xac, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x32,
- 0xa6, 0x1d, 0x72, 0xe3, 0x17, 0x00, 0x00,
+func init() { proto.RegisterFile("Mumble.proto", fileDescriptor_56c09c2dce0fb003) }
+
+var fileDescriptor_56c09c2dce0fb003 = []byte{
+ // 2540 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x72, 0x24, 0x47,
+ 0x11, 0x76, 0xcf, 0xff, 0xe4, 0xcc, 0x48, 0xad, 0x5a, 0xd9, 0x1e, 0x64, 0xaf, 0x2d, 0xf7, 0x82,
+ 0x2d, 0x83, 0x43, 0x18, 0x85, 0x83, 0x08, 0x3b, 0x82, 0x83, 0x56, 0x6b, 0xa3, 0x0d, 0xa4, 0xf5,
+ 0xd2, 0x92, 0xd7, 0x07, 0x0e, 0x4d, 0xa9, 0xbb, 0x34, 0xd3, 0xa8, 0xa7, 0xab, 0xdd, 0x55, 0xad,
+ 0xdd, 0x89, 0xe0, 0x08, 0x5c, 0xf1, 0x8d, 0x1b, 0x0f, 0xe0, 0x83, 0x23, 0x78, 0x05, 0x9e, 0x80,
+ 0x03, 0x4f, 0x40, 0x70, 0xe3, 0x46, 0x04, 0x77, 0x22, 0xb3, 0xaa, 0xff, 0xb4, 0xb2, 0xd7, 0x5c,
+ 0xb9, 0xcc, 0x74, 0x7e, 0x99, 0x55, 0x95, 0x95, 0x95, 0x7f, 0x55, 0x30, 0x3d, 0x2d, 0x56, 0x17,
+ 0x89, 0xd8, 0xcf, 0x72, 0xa9, 0x25, 0x9b, 0xac, 0x88, 0x22, 0xc2, 0xfb, 0xa3, 0x03, 0xc3, 0x27,
+ 0x22, 0x57, 0xb1, 0x4c, 0xd9, 0x5b, 0x30, 0x0d, 0xf3, 0x75, 0xa6, 0x65, 0xb0, 0x92, 0x91, 0x50,
+ 0xf3, 0xfe, 0x6e, 0x77, 0x6f, 0xec, 0x4f, 0x0c, 0x76, 0x8a, 0x10, 0x9b, 0xc3, 0xf0, 0xda, 0x48,
+ 0xcf, 0x9d, 0x5d, 0x67, 0x6f, 0xe6, 0x97, 0x24, 0x72, 0x72, 0x91, 0x08, 0xae, 0xc4, 0xbc, 0xb3,
+ 0xeb, 0xec, 0x8d, 0xfd, 0x92, 0x64, 0x1b, 0xd0, 0x91, 0x6a, 0xde, 0x25, 0xb0, 0x23, 0x15, 0xbb,
+ 0x0b, 0x20, 0x55, 0x50, 0x4e, 0xd3, 0x23, 0x7c, 0x2c, 0x95, 0xd5, 0xc2, 0xbb, 0x07, 0xe3, 0xcf,
+ 0x1e, 0x3c, 0x3e, 0x2f, 0xd2, 0x54, 0x24, 0xec, 0x15, 0x18, 0x64, 0x3c, 0xbc, 0x12, 0x7a, 0xee,
+ 0xec, 0x76, 0xf6, 0xa6, 0xbe, 0xa5, 0xbc, 0x3f, 0x3b, 0x30, 0x3d, 0x2c, 0xf4, 0x52, 0xa4, 0x3a,
+ 0x0e, 0xb9, 0x16, 0x6c, 0x07, 0x46, 0x85, 0x12, 0x79, 0xca, 0x57, 0x82, 0x34, 0x1b, 0xfb, 0x15,
+ 0x8d, 0xbc, 0x8c, 0x2b, 0xf5, 0x54, 0xe6, 0x91, 0xd5, 0xad, 0xa2, 0x71, 0x01, 0x2d, 0xaf, 0x44,
+ 0x8a, 0x0a, 0xe2, 0x6e, 0x2d, 0xc5, 0xee, 0xc1, 0x2c, 0x14, 0x89, 0x2e, 0xd5, 0x54, 0xf3, 0xde,
+ 0x6e, 0x77, 0xaf, 0xef, 0x4f, 0x11, 0xb4, 0x9a, 0x2a, 0xf6, 0x3d, 0xe8, 0xc9, 0xac, 0x40, 0x43,
+ 0x39, 0x7b, 0xa3, 0x8f, 0xfa, 0x97, 0x3c, 0x51, 0xc2, 0x27, 0xc8, 0xfb, 0x6b, 0x07, 0x7a, 0x8f,
+ 0xe3, 0x74, 0xc1, 0x5e, 0x87, 0xb1, 0x8e, 0x57, 0x42, 0x69, 0xbe, 0xca, 0x48, 0xb3, 0x9e, 0x5f,
+ 0x03, 0x8c, 0x41, 0x6f, 0x21, 0xa5, 0x51, 0x6b, 0xe6, 0xd3, 0x37, 0x62, 0x09, 0xd7, 0x82, 0x2c,
+ 0x36, 0xf3, 0xe9, 0x9b, 0x30, 0xa9, 0x34, 0x59, 0x0b, 0x31, 0xa9, 0x34, 0xaa, 0x9e, 0x0b, 0xb5,
+ 0x4e, 0x43, 0x5a, 0x7f, 0xe6, 0x5b, 0x8a, 0xbd, 0x09, 0x93, 0x22, 0xca, 0x02, 0x63, 0x29, 0x35,
+ 0x1f, 0x10, 0x13, 0x8a, 0x28, 0x7b, 0x6c, 0x10, 0x14, 0xd0, 0x61, 0x2d, 0x30, 0x34, 0x02, 0x3a,
+ 0xac, 0x04, 0x76, 0x61, 0x4a, 0x33, 0xc4, 0xe9, 0x22, 0xe0, 0xd7, 0x8b, 0xf9, 0x68, 0xd7, 0xd9,
+ 0xeb, 0x98, 0x29, 0xe2, 0x74, 0x71, 0x78, 0xbd, 0x68, 0x49, 0x5c, 0xf3, 0x7c, 0x3e, 0x6e, 0x49,
+ 0x3c, 0xe1, 0x39, 0x4a, 0xd0, 0x22, 0xe5, 0x1c, 0x60, 0x24, 0x70, 0x95, 0x7a, 0x8e, 0x4a, 0x02,
+ 0xe7, 0x98, 0xb4, 0x24, 0x9e, 0xf0, 0xdc, 0xfb, 0x7d, 0x07, 0x06, 0xbe, 0xf8, 0x8d, 0x08, 0x35,
+ 0x3b, 0x80, 0x9e, 0x5e, 0x67, 0xe6, 0x6c, 0x37, 0x0e, 0xde, 0xd8, 0x6f, 0xf8, 0xf0, 0xbe, 0x11,
+ 0xb1, 0x7f, 0xe7, 0xeb, 0x4c, 0xf8, 0x24, 0x6b, 0x0c, 0xc4, 0x95, 0x4c, 0xed, 0xa9, 0x5b, 0xca,
+ 0xfb, 0xda, 0x01, 0xa8, 0x85, 0xd9, 0x08, 0x7a, 0x8f, 0x64, 0x2a, 0xdc, 0x97, 0x98, 0x0b, 0xd3,
+ 0xcf, 0x73, 0x99, 0x2e, 0xec, 0x01, 0xbb, 0x0e, 0xbb, 0x03, 0x9b, 0x0f, 0xd3, 0x6b, 0x9e, 0xc4,
+ 0xd1, 0x67, 0xd6, 0x9b, 0xdc, 0x0e, 0xdb, 0x84, 0x09, 0x89, 0x21, 0xf4, 0xf8, 0x73, 0xb7, 0xcb,
+ 0xb6, 0x60, 0x46, 0xc0, 0x99, 0xc8, 0xaf, 0x09, 0xea, 0x21, 0x54, 0x8e, 0x78, 0x98, 0x7e, 0xa6,
+ 0x84, 0xdb, 0x67, 0x1b, 0x00, 0x46, 0xe0, 0x93, 0x22, 0x49, 0xdc, 0x01, 0x8a, 0x3c, 0x92, 0x47,
+ 0x22, 0xd7, 0xf1, 0x25, 0xf9, 0xb0, 0x3b, 0x64, 0x2f, 0xc3, 0x56, 0xc3, 0xab, 0x65, 0xfe, 0x09,
+ 0x8f, 0x13, 0x77, 0xe4, 0x7d, 0xe9, 0x94, 0x43, 0xcf, 0xf0, 0x80, 0xe7, 0x30, 0x54, 0x42, 0x35,
+ 0x83, 0xd0, 0x92, 0xe8, 0xb5, 0x2b, 0xfe, 0x2c, 0xb8, 0xe0, 0x69, 0xf4, 0x34, 0x8e, 0xf4, 0xd2,
+ 0xfa, 0xd5, 0x74, 0xc5, 0x9f, 0xdd, 0x2f, 0x31, 0x0c, 0xf3, 0xa7, 0x22, 0x09, 0xe5, 0x4a, 0x04,
+ 0x5a, 0x3c, 0xd3, 0x36, 0x32, 0x27, 0x16, 0x3b, 0x17, 0xcf, 0x34, 0xdb, 0x85, 0x49, 0x26, 0xf2,
+ 0x55, 0xac, 0x4a, 0xdf, 0x47, 0xb7, 0x6d, 0x42, 0xde, 0x3e, 0xcc, 0x8e, 0x96, 0x1c, 0x63, 0xd4,
+ 0x17, 0x2b, 0x79, 0x2d, 0x30, 0xaa, 0x43, 0x03, 0x04, 0x71, 0x44, 0xd1, 0x3a, 0xf3, 0xc7, 0x16,
+ 0x79, 0x18, 0x79, 0x5f, 0x75, 0x61, 0x6a, 0x07, 0x9c, 0x69, 0xf4, 0xe8, 0x9b, 0xf2, 0x4e, 0x4b,
+ 0xde, 0x04, 0x7e, 0x2e, 0x52, 0x6d, 0xb7, 0x60, 0x29, 0x0c, 0x04, 0x8a, 0x71, 0xa3, 0x34, 0x7d,
+ 0xb3, 0x6d, 0xe8, 0x27, 0x71, 0x7a, 0x65, 0x62, 0x74, 0xe6, 0x1b, 0x02, 0xf7, 0x10, 0x09, 0x15,
+ 0xe6, 0x71, 0xa6, 0xd1, 0x52, 0x7d, 0xb3, 0xcb, 0x06, 0xc4, 0x5e, 0x83, 0x31, 0x89, 0x06, 0x3c,
+ 0x8a, 0xe6, 0x03, 0x1a, 0x3b, 0x22, 0xe0, 0x30, 0x8a, 0xd0, 0x4a, 0x86, 0x99, 0xd3, 0xfe, 0xe6,
+ 0x43, 0xe2, 0x4f, 0x08, 0xb3, 0x5b, 0xbe, 0x07, 0x63, 0x2d, 0x56, 0x99, 0xcc, 0x79, 0xbe, 0xa6,
+ 0x18, 0xa9, 0x72, 0x40, 0x8d, 0xb3, 0xbb, 0x30, 0xca, 0xa4, 0x8a, 0x49, 0x07, 0x8c, 0x92, 0xfe,
+ 0x47, 0xce, 0xfb, 0x7e, 0x05, 0xb1, 0x77, 0xc1, 0x6d, 0xa8, 0x14, 0x2c, 0xb9, 0x5a, 0x52, 0xa8,
+ 0x4c, 0xfd, 0xcd, 0x06, 0x7e, 0xcc, 0xd5, 0x12, 0xd5, 0xc5, 0xc3, 0xc5, 0xb4, 0xa6, 0x28, 0x58,
+ 0x66, 0xfe, 0x68, 0xc5, 0x9f, 0xa1, 0x9b, 0x29, 0xb6, 0x0f, 0x77, 0x62, 0x15, 0x88, 0x54, 0x8b,
+ 0x3c, 0xc8, 0x85, 0xd2, 0x79, 0x1c, 0x6a, 0x11, 0xcd, 0xa7, 0xa8, 0x95, 0xbf, 0x15, 0xab, 0x8f,
+ 0x91, 0xe3, 0x57, 0x0c, 0x9c, 0x2c, 0xe4, 0xa9, 0x19, 0x30, 0x9f, 0x91, 0xd4, 0x28, 0xe4, 0x29,
+ 0x89, 0x79, 0x97, 0x00, 0x38, 0xab, 0xdd, 0x66, 0xcb, 0xdd, 0x3a, 0x4d, 0x77, 0xdb, 0x86, 0x3e,
+ 0x0f, 0xb5, 0xcc, 0xed, 0x19, 0x19, 0xa2, 0x11, 0x76, 0xdd, 0x66, 0xd8, 0x31, 0x17, 0xba, 0x17,
+ 0xdc, 0x24, 0xfc, 0x91, 0x8f, 0x9f, 0xde, 0x3f, 0x7b, 0x30, 0xc6, 0x85, 0x8c, 0x47, 0x7c, 0xb3,
+ 0x5b, 0xdf, 0xbe, 0xce, 0x6d, 0xae, 0xf0, 0x2a, 0x0c, 0xd1, 0x3e, 0xe8, 0x52, 0x26, 0x55, 0x0e,
+ 0x90, 0x7c, 0x18, 0xdd, 0x70, 0xb7, 0xfe, 0x4d, 0x77, 0x63, 0xd0, 0x5b, 0x15, 0x5a, 0x50, 0xb2,
+ 0x1c, 0xf9, 0xf4, 0x8d, 0x58, 0x24, 0xf8, 0x25, 0xe5, 0xc7, 0x91, 0x4f, 0xdf, 0x58, 0x4a, 0x54,
+ 0x91, 0x65, 0xb9, 0x50, 0xca, 0x9c, 0xb8, 0x5f, 0xd1, 0x68, 0x52, 0x25, 0x92, 0xcb, 0x80, 0x26,
+ 0x1a, 0x5b, 0xa6, 0x48, 0x2e, 0x4f, 0x71, 0xb2, 0x92, 0x49, 0x33, 0x42, 0xcd, 0x7c, 0x80, 0xb3,
+ 0xce, 0x61, 0x88, 0x91, 0x58, 0xe4, 0x82, 0xce, 0x75, 0xea, 0x97, 0x24, 0xfb, 0x01, 0x6c, 0x64,
+ 0x49, 0xb1, 0x88, 0xd3, 0x20, 0x94, 0x29, 0x45, 0xeb, 0x94, 0x04, 0x66, 0x06, 0x3d, 0x32, 0x20,
+ 0x7b, 0x07, 0x36, 0xad, 0x58, 0x1c, 0x61, 0xf2, 0xd0, 0x6b, 0x3a, 0xd3, 0xb1, 0x6f, 0x47, 0x3f,
+ 0xb4, 0x28, 0xae, 0x14, 0xca, 0xd5, 0x0a, 0xe3, 0x6a, 0xc3, 0x54, 0x69, 0x4b, 0xe2, 0x6e, 0xc9,
+ 0xf9, 0x36, 0x8d, 0x35, 0xf1, 0x9b, 0x1a, 0x02, 0xc3, 0x36, 0x8e, 0xe9, 0xd2, 0xda, 0x13, 0x8b,
+ 0x1d, 0x5b, 0x11, 0xab, 0xab, 0x11, 0xd9, 0x32, 0x22, 0x16, 0x23, 0x91, 0x77, 0xc1, 0xcd, 0xf2,
+ 0x58, 0xe6, 0xb1, 0x5e, 0x07, 0x2a, 0x13, 0xfc, 0x4a, 0xe4, 0x73, 0x46, 0x16, 0xd8, 0x2c, 0xf1,
+ 0x33, 0x03, 0x63, 0xb1, 0xcc, 0x45, 0x28, 0xf3, 0x28, 0x4e, 0x17, 0xf3, 0x3b, 0x24, 0x53, 0x03,
+ 0xec, 0xa7, 0xf0, 0x6a, 0x15, 0x57, 0x01, 0x0f, 0x43, 0xa1, 0x54, 0x60, 0x8b, 0xf7, 0x36, 0x15,
+ 0xef, 0x97, 0x2b, 0xf6, 0x21, 0x71, 0xcf, 0x89, 0xe9, 0xfd, 0xa1, 0x03, 0xc3, 0xfb, 0x3c, 0x3d,
+ 0x89, 0x95, 0x66, 0x3f, 0x81, 0xde, 0x05, 0x4f, 0xd5, 0xdc, 0xd9, 0xed, 0xee, 0x4d, 0x0e, 0xee,
+ 0xb6, 0xea, 0x88, 0x95, 0xc1, 0xff, 0x8f, 0x53, 0x9d, 0xaf, 0x7d, 0x12, 0x65, 0xaf, 0x41, 0xff,
+ 0x8b, 0x42, 0xe4, 0x6b, 0xf2, 0xbe, 0x2a, 0xc4, 0x0d, 0xb6, 0xf3, 0x95, 0x03, 0xa3, 0x52, 0x1e,
+ 0xad, 0xcb, 0xa3, 0x88, 0x9c, 0xc3, 0xb4, 0x2b, 0x25, 0x49, 0xfe, 0xc5, 0xd5, 0xd5, 0xbc, 0x43,
+ 0x01, 0x44, 0xdf, 0xb7, 0xfa, 0x6f, 0x79, 0x0a, 0xbd, 0xc6, 0x29, 0xd4, 0xf1, 0xd4, 0x6f, 0xc5,
+ 0xd3, 0x36, 0xf4, 0x95, 0xe6, 0xb9, 0x26, 0xa7, 0x1d, 0xfb, 0x86, 0x40, 0x0f, 0x8d, 0x8a, 0x9c,
+ 0x53, 0xbe, 0x31, 0x95, 0xbd, 0xa2, 0xb1, 0xd9, 0x9b, 0x60, 0x7e, 0x3f, 0x15, 0x4a, 0xf1, 0x85,
+ 0xa8, 0xe3, 0xca, 0x69, 0xc6, 0x55, 0x23, 0x0e, 0x3b, 0x94, 0xf4, 0xaa, 0x38, 0x6c, 0x07, 0x51,
+ 0x97, 0x98, 0x8d, 0x20, 0x7a, 0x15, 0x86, 0x3a, 0x17, 0xc2, 0x04, 0x1f, 0xf2, 0x06, 0x48, 0x3e,
+ 0x8c, 0x70, 0xc6, 0x95, 0x59, 0x72, 0xde, 0xdf, 0xed, 0xa0, 0xd7, 0x59, 0x12, 0xcb, 0x82, 0xfb,
+ 0xb8, 0x2a, 0x2b, 0x0f, 0x44, 0x1a, 0x8b, 0x88, 0xbd, 0x01, 0x50, 0x97, 0x1a, 0xab, 0x5b, 0x03,
+ 0xb9, 0xa1, 0x46, 0xe7, 0x66, 0x2c, 0x37, 0xf4, 0xef, 0xb6, 0xf3, 0x48, 0x6d, 0xc9, 0x5e, 0xcb,
+ 0x92, 0x1f, 0xd9, 0xe6, 0xa2, 0x4f, 0xcd, 0xc5, 0xdb, 0x2d, 0xa7, 0xb8, 0xa9, 0xdd, 0xfe, 0x03,
+ 0x91, 0xae, 0x1b, 0x4d, 0x46, 0x79, 0x8a, 0x83, 0xfa, 0x14, 0xbd, 0xbf, 0x3b, 0x30, 0x2a, 0xc5,
+ 0xb0, 0xbd, 0x40, 0x9b, 0xbb, 0x2f, 0x61, 0x03, 0x50, 0xcf, 0xe6, 0x3a, 0x6c, 0x06, 0xe3, 0xb3,
+ 0x22, 0x13, 0x39, 0xa6, 0x40, 0xd3, 0x56, 0xd8, 0x0a, 0xf9, 0x08, 0xfb, 0x8c, 0x2e, 0x02, 0x38,
+ 0xf2, 0x5c, 0xca, 0x13, 0x99, 0x2e, 0xdc, 0x1e, 0x1b, 0x42, 0xf7, 0xf8, 0xc3, 0x5f, 0xb8, 0x7d,
+ 0xb6, 0x0d, 0xee, 0x79, 0xe9, 0xea, 0x76, 0x8c, 0x3b, 0x60, 0xaf, 0x00, 0x3b, 0xc5, 0xc9, 0xd3,
+ 0x45, 0xbb, 0xab, 0x98, 0xc2, 0x08, 0x97, 0xa0, 0x59, 0x47, 0x8d, 0x65, 0xa8, 0x0f, 0x19, 0x63,
+ 0xd7, 0xf3, 0x48, 0x28, 0x1d, 0xa7, 0x8b, 0x93, 0x78, 0x15, 0x6b, 0x17, 0xb0, 0x0d, 0xb1, 0x22,
+ 0x47, 0xb2, 0x48, 0xb5, 0x81, 0x27, 0xde, 0xef, 0xfa, 0xd0, 0x3d, 0x3c, 0x3a, 0x79, 0x41, 0xa9,
+ 0x67, 0xef, 0xc0, 0x34, 0x4e, 0x97, 0x22, 0x8f, 0x75, 0xc0, 0xc3, 0x44, 0xd9, 0xb0, 0xe9, 0xe9,
+ 0xbc, 0x10, 0xfe, 0xc4, 0x72, 0x0e, 0xc3, 0x44, 0xb1, 0x03, 0x18, 0x2c, 0x72, 0x59, 0x64, 0xa6,
+ 0xf7, 0x9e, 0x1c, 0xec, 0xb4, 0x0c, 0x7f, 0x78, 0x74, 0xb2, 0x8f, 0x5a, 0xfc, 0x1c, 0x45, 0x7c,
+ 0x2b, 0xc9, 0xde, 0x83, 0x1e, 0x4d, 0xda, 0xa3, 0x11, 0xf3, 0x5b, 0x47, 0x1c, 0x1e, 0x9d, 0xf8,
+ 0x24, 0x55, 0x87, 0x6e, 0xff, 0x96, 0xd0, 0xfd, 0x87, 0x03, 0xe3, 0x6a, 0x81, 0xea, 0x1c, 0x1d,
+ 0x72, 0x50, 0x13, 0x8d, 0x1e, 0x8c, 0xad, 0xbe, 0x22, 0x6a, 0x6d, 0xa3, 0x86, 0xd9, 0x1b, 0x30,
+ 0xb4, 0x04, 0x79, 0x5b, 0x29, 0x51, 0x82, 0xec, 0x6d, 0x28, 0xf7, 0xcc, 0x2f, 0x12, 0x61, 0xaa,
+ 0xdf, 0x0d, 0x63, 0x20, 0x03, 0xab, 0x23, 0xb6, 0x21, 0x7d, 0x0a, 0x1c, 0xfc, 0x34, 0xde, 0x4a,
+ 0xbd, 0x87, 0xe9, 0x4d, 0x2c, 0xc5, 0x7e, 0x04, 0x5b, 0xd5, 0xf2, 0xc1, 0x4a, 0xac, 0x2e, 0xb0,
+ 0x1f, 0x30, 0xed, 0x89, 0x5b, 0x31, 0x4e, 0x0d, 0xbe, 0xf3, 0x37, 0x07, 0x86, 0xd6, 0x26, 0xec,
+ 0x1e, 0x00, 0xcf, 0xb2, 0x64, 0x1d, 0x2c, 0x45, 0x6e, 0x3a, 0xe9, 0x6a, 0x3f, 0x84, 0x1f, 0x8b,
+ 0x5c, 0xd4, 0x42, 0xaa, 0xb8, 0x68, 0x9f, 0x9d, 0x11, 0x3a, 0x2b, 0x2e, 0x54, 0xdb, 0x30, 0xdd,
+ 0xdb, 0x0d, 0xf3, 0x8d, 0xa5, 0x78, 0x1b, 0xfa, 0x74, 0x98, 0x36, 0x9d, 0x19, 0xc2, 0xa0, 0x3c,
+ 0xd5, 0xf6, 0xbe, 0x62, 0x08, 0x53, 0x83, 0xd3, 0xb5, 0xcd, 0x64, 0xf4, 0xed, 0x7d, 0x00, 0xf0,
+ 0x4b, 0x3c, 0x40, 0xd3, 0xf8, 0xb8, 0xd0, 0x8d, 0x23, 0x93, 0xcf, 0x67, 0x3e, 0x7e, 0xe2, 0x4c,
+ 0x78, 0x7a, 0x8a, 0xb2, 0xd7, 0xd8, 0x37, 0x84, 0x17, 0x01, 0x1c, 0xe1, 0x45, 0xf6, 0x4c, 0xe8,
+ 0x22, 0xc3, 0x51, 0x57, 0x62, 0x4d, 0x36, 0x98, 0xfa, 0xf8, 0x49, 0xb5, 0x2e, 0x89, 0xb1, 0xd4,
+ 0xa5, 0x32, 0x0d, 0xcd, 0x25, 0x16, 0x6b, 0x1d, 0x61, 0x8f, 0x10, 0x42, 0x11, 0x45, 0x5d, 0xb8,
+ 0x15, 0xe9, 0x1a, 0x11, 0x83, 0x91, 0x88, 0xf7, 0x1f, 0x07, 0xee, 0xd8, 0xa2, 0x7c, 0x18, 0x62,
+ 0xce, 0x3d, 0x95, 0x51, 0x7c, 0xb9, 0xc6, 0xb3, 0xe4, 0x44, 0x5b, 0xff, 0xb2, 0x14, 0xee, 0x8f,
+ 0xaa, 0xba, 0xb9, 0xa0, 0xd0, 0xb7, 0xa9, 0xd1, 0x69, 0xd5, 0x9a, 0xcf, 0xfc, 0x92, 0x64, 0xc7,
+ 0x30, 0x96, 0x99, 0xb0, 0xc9, 0xbd, 0x47, 0xc9, 0xea, 0x87, 0xad, 0x08, 0xb8, 0x65, 0xe9, 0xfd,
+ 0x4f, 0xcb, 0x11, 0x7e, 0x3d, 0xd8, 0x7b, 0x0f, 0x86, 0x65, 0xef, 0x00, 0x30, 0x30, 0x77, 0x0b,
+ 0xd7, 0x61, 0x13, 0xe3, 0x2c, 0x98, 0x4e, 0x3a, 0x98, 0xb8, 0x28, 0x33, 0xf5, 0xbc, 0x5d, 0x18,
+ 0x57, 0xb3, 0x60, 0x12, 0x3a, 0x8c, 0x22, 0xf7, 0x25, 0x1c, 0x68, 0x3a, 0x44, 0xd7, 0xf1, 0x7e,
+ 0x0d, 0xb3, 0xd6, 0xda, 0xdf, 0xd2, 0xcc, 0xbd, 0x20, 0x7b, 0xd7, 0x96, 0xea, 0x36, 0x2d, 0xe5,
+ 0xfd, 0xc5, 0x31, 0x59, 0x8c, 0xaa, 0xf8, 0xfb, 0xd0, 0x37, 0x6d, 0xb0, 0x73, 0x4b, 0xe2, 0x28,
+ 0xa5, 0xe8, 0xc3, 0x37, 0x82, 0x3b, 0xca, 0x6c, 0xa6, 0xe9, 0x95, 0x26, 0x71, 0x95, 0x5e, 0x59,
+ 0xc6, 0x7f, 0xa7, 0x51, 0x8d, 0xf1, 0x82, 0xc0, 0x95, 0x0e, 0x94, 0x10, 0x65, 0x33, 0x3b, 0x42,
+ 0xe0, 0x4c, 0x08, 0x7a, 0x2d, 0x21, 0xa6, 0x55, 0xdd, 0x3a, 0xf9, 0x04, 0x31, 0x6b, 0x43, 0xef,
+ 0xdf, 0x0e, 0x4c, 0x9e, 0xc8, 0x38, 0x14, 0xe7, 0x3c, 0x5f, 0x08, 0xcd, 0x36, 0xa0, 0x53, 0xdd,
+ 0x75, 0x3a, 0x71, 0xc4, 0x3e, 0x84, 0xa1, 0x26, 0x8e, 0xf1, 0xd5, 0xc9, 0xc1, 0x9b, 0xad, 0x8d,
+ 0x34, 0x86, 0xee, 0x9b, 0x3f, 0xbf, 0x94, 0xdf, 0xf9, 0x93, 0x03, 0x03, 0x3b, 0x6b, 0xcb, 0xd4,
+ 0xdd, 0xff, 0xc1, 0xd4, 0x55, 0x20, 0x76, 0x9b, 0x81, 0xf8, 0x5a, 0x7d, 0x9b, 0x6a, 0xe6, 0x4c,
+ 0x73, 0xa9, 0x7a, 0x0b, 0x46, 0xe1, 0x32, 0x4e, 0xa2, 0x5c, 0xa4, 0xed, 0x9c, 0x5a, 0xc1, 0x9e,
+ 0x84, 0xcd, 0xba, 0xca, 0x51, 0xa0, 0xbe, 0xe8, 0xae, 0x77, 0xe3, 0xb6, 0x69, 0xf4, 0x6c, 0x42,
+ 0xa8, 0xd3, 0x65, 0x52, 0xa8, 0xa5, 0xcd, 0x35, 0xa5, 0x4e, 0x84, 0x79, 0xbf, 0x85, 0xe9, 0x91,
+ 0x8c, 0x44, 0x58, 0x3e, 0x63, 0x61, 0x57, 0x93, 0x64, 0x4b, 0x4e, 0x07, 0xdc, 0xf7, 0x0d, 0x81,
+ 0xe7, 0x7b, 0x21, 0x34, 0xa7, 0x0e, 0xac, 0xef, 0xd3, 0x37, 0x56, 0xaa, 0x2c, 0x17, 0x97, 0x22,
+ 0x0f, 0xcc, 0x00, 0xf4, 0xb8, 0x2a, 0x39, 0x1b, 0xce, 0x21, 0x0d, 0x2e, 0x1f, 0x7a, 0x7a, 0xcf,
+ 0x3f, 0xf4, 0x7c, 0x3d, 0xa8, 0xef, 0x30, 0xea, 0x5b, 0xdc, 0xfe, 0xfb, 0x00, 0x0a, 0x45, 0x02,
+ 0x99, 0x26, 0x37, 0x5a, 0xc9, 0x31, 0x31, 0x3e, 0x4d, 0x93, 0x35, 0xf3, 0x60, 0x1a, 0xd6, 0xb5,
+ 0xdb, 0x14, 0xc6, 0xa9, 0xdf, 0xc2, 0xd8, 0xcf, 0x60, 0x72, 0x99, 0xcb, 0x55, 0x60, 0x52, 0x13,
+ 0xe9, 0x34, 0x39, 0x78, 0xfd, 0xb9, 0x10, 0x20, 0x85, 0xf6, 0xe9, 0xd7, 0x07, 0x1c, 0x70, 0x44,
+ 0xf2, 0xd5, 0x70, 0x93, 0xb6, 0xe8, 0x14, 0xbf, 0xd3, 0x70, 0x93, 0x24, 0xfe, 0x7f, 0x5e, 0x97,
+ 0xd8, 0x7e, 0xfd, 0x96, 0x39, 0x25, 0x23, 0x6c, 0xb7, 0xa3, 0xcf, 0xf0, 0xea, 0x17, 0xce, 0xe7,
+ 0x9e, 0x04, 0x67, 0xb7, 0x3c, 0x09, 0x36, 0xae, 0x00, 0x1b, 0xe6, 0x2a, 0x57, 0x5e, 0x01, 0x5e,
+ 0x87, 0x71, 0xfd, 0x2e, 0xb3, 0x69, 0x62, 0xa0, 0x02, 0xb0, 0xe7, 0x95, 0x69, 0x12, 0xa7, 0x42,
+ 0x89, 0x50, 0xd1, 0x45, 0x6b, 0xe6, 0x37, 0x10, 0x6c, 0xeb, 0xe3, 0x28, 0x31, 0xdc, 0x2d, 0xd3,
+ 0xd6, 0x97, 0x34, 0xfb, 0x00, 0x98, 0xd2, 0xb9, 0x4c, 0x17, 0x41, 0xc3, 0x4f, 0xcc, 0x15, 0xab,
+ 0x74, 0xb1, 0x2d, 0x23, 0xd0, 0xe8, 0x0b, 0x2b, 0x9f, 0xbe, 0xf3, 0x9c, 0x4f, 0xef, 0xfc, 0x0a,
+ 0xfa, 0xc6, 0x9d, 0xcb, 0xe7, 0x49, 0xe7, 0x96, 0xe7, 0xc9, 0xce, 0x2d, 0xcf, 0x93, 0xdd, 0x5b,
+ 0x9f, 0x27, 0x7b, 0xcd, 0xe7, 0x49, 0xef, 0x4b, 0x07, 0x26, 0xbe, 0xf8, 0xa2, 0x10, 0x4a, 0xdf,
+ 0x4f, 0xe4, 0x05, 0xde, 0x5d, 0x6d, 0x8c, 0x04, 0xe5, 0x25, 0xd8, 0xa4, 0xb1, 0x0d, 0x0b, 0x9f,
+ 0xdb, 0xbb, 0x70, 0x43, 0xb0, 0xbc, 0xc3, 0x76, 0x5a, 0x82, 0x47, 0xf6, 0x2a, 0xfb, 0x63, 0xb8,
+ 0x53, 0xa6, 0x9b, 0xe6, 0x0b, 0x90, 0xb9, 0xaf, 0x30, 0xcb, 0x7a, 0x50, 0x73, 0xbc, 0x7f, 0x39,
+ 0x30, 0x35, 0xee, 0x7d, 0x24, 0xd3, 0xcb, 0x78, 0xf1, 0xfc, 0x3b, 0x9a, 0xf3, 0x1d, 0xde, 0xd1,
+ 0x3a, 0xcf, 0xbf, 0xa3, 0xdd, 0x05, 0xe0, 0x49, 0x22, 0x9f, 0x06, 0x4b, 0xbd, 0x4a, 0x4c, 0xf2,
+ 0xf2, 0xc7, 0x84, 0x1c, 0xeb, 0x55, 0x82, 0xb7, 0x7b, 0x7b, 0x11, 0x0a, 0x12, 0x91, 0x2e, 0xf4,
+ 0xd2, 0x9a, 0x6a, 0x66, 0xd1, 0x13, 0x02, 0xd9, 0xfb, 0xb0, 0x1d, 0xaf, 0x50, 0xe8, 0x86, 0xb0,
+ 0x79, 0xc5, 0x60, 0xc4, 0x3b, 0x6d, 0x8d, 0x68, 0x3d, 0x15, 0x0d, 0xda, 0x4f, 0x45, 0xde, 0x15,
+ 0xcc, 0xce, 0x8a, 0xc5, 0x42, 0x28, 0x6d, 0x77, 0xfb, 0xcd, 0x8f, 0xfa, 0x78, 0x13, 0xb3, 0x2f,
+ 0x55, 0x3c, 0x31, 0x49, 0xcb, 0x6f, 0x20, 0x18, 0x64, 0x59, 0xa1, 0x96, 0x81, 0x96, 0x81, 0xe6,
+ 0xc9, 0x95, 0xdd, 0x21, 0x20, 0x76, 0x2e, 0xcf, 0x79, 0x72, 0x75, 0xbf, 0x73, 0xec, 0xfc, 0x37,
+ 0x00, 0x00, 0xff, 0xff, 0x44, 0xa7, 0x15, 0x87, 0x7f, 0x18, 0x00, 0x00,
}
diff --git a/pkg/mumbleproto/Mumble.proto b/pkg/mumbleproto/Mumble.proto
index 0233117..5efba03 100644
--- a/pkg/mumbleproto/Mumble.proto
+++ b/pkg/mumbleproto/Mumble.proto
@@ -1,3 +1,10 @@
+// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+syntax = "proto2";
+
package mumbleproto;
option optimize_for = SPEED;
@@ -65,7 +72,8 @@ message Ping {
// Sent by the server when it rejects the user connection.
message Reject {
enum RejectType {
- // TODO ??
+ // The rejection reason is unknown (details should be available
+ // in Reject.reason).
None = 0;
// The client attempted to connect with an incompatible version.
WrongVersion = 1;
@@ -100,7 +108,7 @@ message ServerSync {
optional uint32 max_bandwidth = 2;
// Server welcome text.
optional string welcome_text = 3;
- // Current user permissions TODO: Confirm??
+ // Current user permissions in the root channel.
optional uint64 permissions = 4;
}
@@ -140,6 +148,10 @@ message ChannelState {
// the maximum number of users allowed in the channel is given by the
// server's "usersperchannel" setting.
optional uint32 max_users = 11;
+ // Whether this channel has enter restrictions (ACL denying ENTER) set
+ optional bool is_enter_restricted = 12;
+ // Whether the receiver of this msg is considered to be able to enter this channel
+ optional bool can_enter = 13;
}
// Used to communicate user leaving or being kicked. May be sent by the client
@@ -186,9 +198,14 @@ message UserState {
optional bool self_deaf = 10;
// User image if it is less than 128 bytes.
optional bytes texture = 11;
- // TODO ??
+ // The positional audio plugin identifier.
+ // Positional audio information is only sent to users who share
+ // identical plugin contexts.
+ //
+ // This value is not trasmitted to clients.
optional bytes plugin_context = 12;
- // TODO ??
+ // The user's plugin-specific identity.
+ // This value is not transmitted to clients.
optional string plugin_identity = 13;
// User comment if it is less than 128 bytes.
optional string comment = 14;
@@ -202,6 +219,8 @@ message UserState {
optional bool priority_speaker = 18;
// True if the user is currently recording.
optional bool recording = 19;
+ // A list of temporary acces tokens to be respected when processing this request.
+ repeated string temporary_access_tokens = 20;
}
// Relays information on the bans. The client may send the BanList message to
@@ -215,7 +234,7 @@ message BanList {
required uint32 mask = 2;
// User name for identification purposes (does not affect the ban).
optional string name = 3;
- // TODO ??
+ // The certificate hash of the banned user.
optional string hash = 4;
// Reason for the ban (does not affect the ban).
optional string reason = 5;
@@ -269,7 +288,10 @@ message PermissionDenied {
UserName = 8;
// Channel is full.
ChannelFull = 9;
+ // Channels are nested too deply.
NestingLimit = 10;
+ // Maximum channel count reached.
+ ChannelCountLimit = 11;
}
// The denied permission when type is Permission.
optional uint32 permission = 1;
@@ -409,9 +431,9 @@ message VoiceTarget {
message Target {
// Users that are included as targets.
repeated uint32 session = 1;
- // Channels that are included as targets.
+ // Channel that is included as a target.
optional uint32 channel_id = 2;
- // TODO ??
+ // ACL group that is included as a target.
optional string group = 3;
// True if the voice should follow links from the specified channel.
optional bool links = 4 [default = false];