diff --git a/BuildScripts~/generate_proto.sh b/BuildScripts~/generate_proto.sh
index 2e5005b0..ebbcf047 100755
--- a/BuildScripts~/generate_proto.sh
+++ b/BuildScripts~/generate_proto.sh
@@ -17,4 +17,5 @@ protoc \
$FFI_PROTOCOL/e2ee.proto \
$FFI_PROTOCOL/stats.proto \
$FFI_PROTOCOL/rpc.proto \
- $FFI_PROTOCOL/data_stream.proto
\ No newline at end of file
+ $FFI_PROTOCOL/data_stream.proto \
+ $FFI_PROTOCOL/data_track.proto
\ No newline at end of file
diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataTrack.cs
new file mode 100644
index 00000000..be119518
--- /dev/null
+++ b/Runtime/Scripts/DataTrack.cs
@@ -0,0 +1,469 @@
+using System;
+using LiveKit.Internal;
+using LiveKit.Internal.FFIClients.Requests;
+using LiveKit.Proto;
+using UnityEngine;
+
+namespace LiveKit
+{
+ ///
+ /// Information about a published data track.
+ ///
+ public sealed class DataTrackInfo
+ {
+ ///
+ /// Unique track identifier assigned by the SFU.
+ ///
+ ///
+ /// This identifier may change if a reconnect occurs. Use
+ /// if a stable identifier is needed.
+ ///
+ public string Sid { get; }
+
+ ///
+ /// Name of the track assigned by the publisher.
+ ///
+ public string Name { get; }
+
+ ///
+ /// Whether or not frames sent on the track use end-to-end encryption.
+ ///
+ public bool UsesE2EE { get; }
+
+ internal DataTrackInfo(Proto.DataTrackInfo proto)
+ {
+ Sid = proto.Sid;
+ Name = proto.Name;
+ UsesE2EE = proto.UsesE2Ee;
+ }
+ }
+
+ ///
+ /// Options for publishing a data track.
+ ///
+ public class DataTrackOptions
+ {
+ ///
+ /// The track name is used to identify the track to other participants.
+ /// Must not be empty and must be unique per publisher.
+ ///
+ public string Name { get; set; }
+
+ public DataTrackOptions(string name)
+ {
+ Name = name;
+ }
+ }
+
+ ///
+ /// Options for subscribing to a remote data track.
+ ///
+ public class DataTrackSubscribeOptions
+ {
+ ///
+ /// Sets the maximum number of received frames buffered internally.
+ ///
+ ///
+ /// Zero is not a valid buffer size; if a value of zero is provided, it will be clamped to one.
+ ///
+ /// If there is already an active subscription for a given track, specifying a
+ /// different buffer size when obtaining a new subscription will have no effect.
+ ///
+ public uint? BufferSize { get; set; }
+ }
+
+ ///
+ /// A frame published on a data track, consisting of a payload and optional metadata.
+ ///
+ public class DataTrackFrame
+ {
+ ///
+ /// The frame's payload.
+ ///
+ public byte[] Payload { get; }
+
+ ///
+ /// The frame's user timestamp in milliseconds, if one is associated.
+ ///
+ public ulong? UserTimestamp { get; }
+
+ ///
+ /// Creates a new data track frame.
+ ///
+ /// The frame's payload.
+ /// Optional user timestamp in milliseconds.
+ public DataTrackFrame(byte[] payload, ulong? userTimestamp = null)
+ {
+ Payload = payload;
+ UserTimestamp = userTimestamp;
+ }
+
+ internal DataTrackFrame(Proto.DataTrackFrame proto)
+ {
+ Payload = proto.Payload.ToByteArray();
+ UserTimestamp = proto.HasUserTimestamp ? proto.UserTimestamp : null;
+ }
+
+ private static ulong TimestampNowMs()
+ {
+ return (ulong)DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+ }
+
+ ///
+ /// Associates the current Unix timestamp (in milliseconds) with the frame.
+ /// Returns a new with the timestamp set; the original is
+ /// not modified.
+ ///
+ /// A new with the current timestamp.
+ public DataTrackFrame WithUserTimestampNow()
+ {
+ return new DataTrackFrame(Payload, TimestampNowMs());
+ }
+
+ ///
+ /// If the frame has a user timestamp, calculates how long has passed
+ /// relative to the current system time.
+ ///
+ ///
+ /// The timestamp is assumed to be a Unix timestamp in milliseconds
+ /// (as set by on the publisher side).
+ ///
+ /// The elapsed duration in seconds, or null if no timestamp is set.
+ public double? DurationSinceTimestamp()
+ {
+ if (UserTimestamp == null)
+ return null;
+ var elapsedMs = TimestampNowMs() - UserTimestamp.Value;
+ return elapsedMs / 1000.0;
+ }
+ }
+
+ ///
+ /// An error that can occur when pushing a frame to a data track.
+ ///
+ ///
+ /// Pushing a frame can fail for several reasons:
+ ///
+ /// - The track has been unpublished by the local participant or SFU
+ /// - The room is no longer connected
+ /// - Frames are being pushed too fast
+ ///
+ ///
+ public sealed class PushFrameError : Exception
+ {
+ public PushFrameError(string message) : base(message) { }
+ }
+
+ ///
+ /// An error that can occur when subscribing to a data track.
+ ///
+ public sealed class SubscribeDataTrackError : Exception
+ {
+ public SubscribeDataTrackError(string message) : base(message) { }
+ }
+
+ ///
+ /// An error that can occur when publishing a data track.
+ ///
+ public sealed class PublishDataTrackError : Exception
+ {
+ public PublishDataTrackError(string message) : base(message) { }
+ }
+
+ ///
+ /// Data track published by the local participant.
+ ///
+ public sealed class LocalDataTrack
+ {
+ private readonly FfiHandle _handle;
+ private readonly DataTrackInfo _info;
+
+ internal LocalDataTrack(OwnedLocalDataTrack owned)
+ {
+ _handle = FfiHandle.FromOwnedHandle(owned.Handle);
+ _info = new DataTrackInfo(owned.Info);
+ }
+
+ ///
+ /// Information about the data track.
+ ///
+ public DataTrackInfo Info => _info;
+
+ ///
+ /// Try pushing a frame to subscribers of the track.
+ ///
+ ///
+ /// See for how to construct a frame and attach metadata.
+ ///
+ /// The data track frame to send.
+ /// Thrown if the push fails.
+ public void TryPush(DataTrackFrame frame)
+ {
+ using var request = FFIBridge.Instance.NewRequest();
+ var pushReq = request.request;
+ pushReq.TrackHandle = (ulong)_handle.DangerousGetHandle();
+
+ var protoFrame = new Proto.DataTrackFrame
+ {
+ Payload = Google.Protobuf.ByteString.CopyFrom(frame.Payload)
+ };
+ if (frame.UserTimestamp != null)
+ {
+ protoFrame.UserTimestamp = frame.UserTimestamp.Value;
+ }
+ pushReq.Frame = protoFrame;
+
+ using var response = request.Send();
+ FfiResponse res = response;
+ if (res.LocalDataTrackTryPush.HasError)
+ {
+ throw new PushFrameError(res.LocalDataTrackTryPush.Error);
+ }
+ }
+
+ ///
+ /// Whether or not the track is still published.
+ ///
+ /// true if the track is published; false otherwise.
+ public bool IsPublished()
+ {
+ using var request = FFIBridge.Instance.NewRequest();
+ var isPublishedReq = request.request;
+ isPublishedReq.TrackHandle = (ulong)_handle.DangerousGetHandle();
+
+ using var response = request.Send();
+ FfiResponse res = response;
+ return res.LocalDataTrackIsPublished.IsPublished;
+ }
+
+ ///
+ /// Unpublishes the track.
+ ///
+ public void Unpublish()
+ {
+ using var request = FFIBridge.Instance.NewRequest();
+ var unpublishReq = request.request;
+ unpublishReq.TrackHandle = (ulong)_handle.DangerousGetHandle();
+ request.Send();
+ }
+ }
+
+ ///
+ /// Data track published by a remote participant.
+ ///
+ public sealed class RemoteDataTrack
+ {
+ private readonly FfiHandle _handle;
+ private readonly DataTrackInfo _info;
+ private readonly string _publisherIdentity;
+
+ internal RemoteDataTrack(OwnedRemoteDataTrack owned)
+ {
+ _handle = FfiHandle.FromOwnedHandle(owned.Handle);
+ _info = new DataTrackInfo(owned.Info);
+ _publisherIdentity = owned.PublisherIdentity;
+ }
+
+ ///
+ /// Information about the data track.
+ ///
+ public DataTrackInfo Info => _info;
+
+ ///
+ /// Identity of the participant who published the track.
+ ///
+ public string PublisherIdentity => _publisherIdentity;
+
+ ///
+ /// Subscribes to the data track to receive frames.
+ ///
+ /// Options for the subscription, such as buffer size.
+ /// A for reading frames.
+ public DataTrackSubscription Subscribe(DataTrackSubscribeOptions options)
+ {
+ using var request = FFIBridge.Instance.NewRequest();
+ var subReq = request.request;
+ subReq.TrackHandle = (ulong)_handle.DangerousGetHandle();
+
+ var protoOptions = new Proto.DataTrackSubscribeOptions();
+ if (options.BufferSize.HasValue)
+ protoOptions.BufferSize = options.BufferSize.Value;
+ subReq.Options = protoOptions;
+
+ using var response = request.Send();
+ FfiResponse res = response;
+ return new DataTrackSubscription(res.SubscribeDataTrack.Subscription);
+ }
+
+ ///
+ /// Subscribes to the data track to receive frames using default options.
+ ///
+ ///
+ /// Use the overload to configure subscription options.
+ ///
+ /// A for reading frames.
+ public DataTrackSubscription Subscribe()
+ {
+ return Subscribe(new DataTrackSubscribeOptions());
+ }
+
+ ///
+ /// Whether or not the track is still published.
+ ///
+ /// true if the track is published; false otherwise.
+ public bool IsPublished()
+ {
+ using var request = FFIBridge.Instance.NewRequest();
+ var isPublishedReq = request.request;
+ isPublishedReq.TrackHandle = (ulong)_handle.DangerousGetHandle();
+
+ using var response = request.Send();
+ FfiResponse res = response;
+ return res.RemoteDataTrackIsPublished.IsPublished;
+ }
+ }
+
+ ///
+ /// An active subscription to a remote data track.
+ ///
+ ///
+ /// Use in a coroutine loop to receive frames:
+ ///
+ /// while (!subscription.IsEos)
+ /// {
+ /// var frameInstruction = subscription.ReadFrame();
+ /// yield return frameInstruction;
+ /// if (frameInstruction.IsCurrentReadDone)
+ /// {
+ /// ProcessFrame(frameInstruction.Frame);
+ /// }
+ /// }
+ ///
+ /// Calling or dropping the subscription unsubscribes from the track.
+ ///
+ public sealed class DataTrackSubscription
+ {
+ private readonly FfiHandle _handle;
+ private readonly ulong _handleId;
+ private ReadFrameInstruction _currentInstruction;
+ private bool _closed;
+
+ internal DataTrackSubscription(OwnedDataTrackSubscription owned)
+ {
+ _handle = FfiHandle.FromOwnedHandle(owned.Handle);
+ _handleId = owned.Handle.Id;
+ FfiClient.Instance.DataTrackSubscriptionEventReceived += OnSubscriptionEvent;
+ }
+
+ ///
+ /// True if the subscription has ended (end of stream).
+ ///
+ public bool IsEos { get; private set; }
+
+ ///
+ /// Prepares to read the next frame from the subscription.
+ ///
+ ///
+ /// A that completes when a frame is received
+ /// or the subscription ends.
+ ///
+ public ReadFrameInstruction ReadFrame()
+ {
+ _currentInstruction = new ReadFrameInstruction();
+
+ using var request = FFIBridge.Instance.NewRequest();
+ request.request.SubscriptionHandle = _handleId;
+ using var response = request.Send();
+
+ return _currentInstruction;
+ }
+
+ private void OnSubscriptionEvent(DataTrackSubscriptionEvent callback)
+ {
+ if (callback.SubscriptionHandle != _handleId)
+ return;
+
+ switch (callback.DetailCase)
+ {
+ case DataTrackSubscriptionEvent.DetailOneofCase.FrameReceived:
+ _currentInstruction?.SetFrame(new DataTrackFrame(callback.FrameReceived.Frame));
+ break;
+ case DataTrackSubscriptionEvent.DetailOneofCase.Eos:
+ SubscribeDataTrackError error = null;
+ if (callback.Eos.HasError)
+ error = new SubscribeDataTrackError(callback.Eos.Error);
+ IsEos = true;
+ _currentInstruction?.SetEos(error);
+ Cleanup();
+ break;
+ }
+ }
+
+ ///
+ /// Explicitly close the subscription and unsubscribe from the track.
+ ///
+ public void Close()
+ {
+ if (_closed) return;
+ Cleanup();
+ _handle.Dispose();
+ }
+
+ private void Cleanup()
+ {
+ if (_closed) return;
+ _closed = true;
+ FfiClient.Instance.DataTrackSubscriptionEventReceived -= OnSubscriptionEvent;
+ }
+
+ ///
+ /// YieldInstruction for reading a single frame from a .
+ ///
+ ///
+ /// Usage: while is false (i.e. the subscription has not ended),
+ /// call , yield the instruction,
+ /// then check and access .
+ ///
+ public sealed class ReadFrameInstruction : CustomYieldInstruction
+ {
+ private DataTrackFrame _frame;
+
+ internal ReadFrameInstruction() { }
+
+ ///
+ /// True if the subscription has ended (end of stream).
+ ///
+ public bool IsEos { get; private set; }
+
+ ///
+ /// True if a frame has been received for the current read.
+ ///
+ public bool IsCurrentReadDone { get; private set; }
+
+ public override bool keepWaiting => !IsCurrentReadDone && !IsEos;
+
+ internal void SetFrame(DataTrackFrame frame)
+ {
+ _frame = frame;
+ IsCurrentReadDone = true;
+ }
+
+ internal void SetEos(SubscribeDataTrackError error = null)
+ {
+ Error = error;
+ IsEos = true;
+ }
+
+ ///
+ /// If the track could not be subscribed to, a desciption of the error.
+ /// Null if the stream ended normally (i.e., due to the track being unpublished).
+ ///
+ public SubscribeDataTrackError Error { get; private set; }
+
+ ///
+ /// The received data track frame.
+ ///
+ public DataTrackFrame Frame => _frame;
+ }
+ }
+}
diff --git a/Runtime/Scripts/DataTrack.cs.meta b/Runtime/Scripts/DataTrack.cs.meta
new file mode 100644
index 00000000..d3602372
--- /dev/null
+++ b/Runtime/Scripts/DataTrack.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aa5b8cb768085410a8bd45eeb569c2ba
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Scripts/Internal/FFIClient.cs b/Runtime/Scripts/Internal/FFIClient.cs
index 5f83ee7b..938a4f62 100644
--- a/Runtime/Scripts/Internal/FFIClient.cs
+++ b/Runtime/Scripts/Internal/FFIClient.cs
@@ -61,6 +61,9 @@ internal sealed class FfiClient : IFFIClient
public event ByteStreamReaderEventReceivedDelegate? ByteStreamReaderEventReceived;
public event TextStreamReaderEventReceivedDelegate? TextStreamReaderEventReceived;
+ // Data Track
+ public event DataTrackSubscriptionEventReceivedDelegate? DataTrackSubscriptionEventReceived;
+
public FfiClient() : this(Pools.NewFfiResponsePool(), new ArrayMemoryPool())
{
}
@@ -331,6 +334,10 @@ static unsafe void FFICallback(UIntPtr data, UIntPtr size)
case FfiEvent.MessageOneofCase.TextStreamReaderEvent:
Instance.TextStreamReaderEventReceived?.Invoke(r.TextStreamReaderEvent!);
break;
+ // Data Track
+ case FfiEvent.MessageOneofCase.DataTrackSubscriptionEvent:
+ Instance.DataTrackSubscriptionEventReceived?.Invoke(r.DataTrackSubscriptionEvent!);
+ break;
case FfiEvent.MessageOneofCase.Panic:
break;
default:
@@ -395,6 +402,7 @@ private bool TryDispatchPendingCallback(ulong requestAsyncId, FfiEvent ffiEvent)
FfiEvent.MessageOneofCase.TextStreamWriterWrite => ffiEvent.TextStreamWriterWrite?.AsyncId,
FfiEvent.MessageOneofCase.TextStreamWriterClose => ffiEvent.TextStreamWriterClose?.AsyncId,
FfiEvent.MessageOneofCase.SendText => ffiEvent.SendText?.AsyncId,
+ FfiEvent.MessageOneofCase.PublishDataTrack => ffiEvent.PublishDataTrack?.AsyncId,
_ => null,
};
}
diff --git a/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs b/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs
index 94f0b1da..fd3f4389 100644
--- a/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs
+++ b/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs
@@ -70,4 +70,9 @@ namespace LiveKit.Internal
internal delegate void ByteStreamReaderEventReceivedDelegate(ByteStreamReaderEvent e);
internal delegate void TextStreamReaderEventReceivedDelegate(TextStreamReaderEvent e);
+
+ // Data Track
+ internal delegate void PublishDataTrackReceivedDelegate(PublishDataTrackCallback e);
+
+ internal delegate void DataTrackSubscriptionEventReceivedDelegate(DataTrackSubscriptionEvent e);
}
\ No newline at end of file
diff --git a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs
index 5e1ef535..f7d3d2f7 100644
--- a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs
+++ b/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs
@@ -211,6 +211,28 @@ public static void Inject(this FfiRequest ffiRequest, T request)
case SetRemoteTrackPublicationQualityRequest setRemoteTrackPublicationQualityRequest:
ffiRequest.SetRemoteTrackPublicationQuality = setRemoteTrackPublicationQualityRequest;
break;
+ // Data Track
+ case PublishDataTrackRequest publishDataTrackRequest:
+ ffiRequest.PublishDataTrack = publishDataTrackRequest;
+ break;
+ case LocalDataTrackTryPushRequest localDataTrackTryPushRequest:
+ ffiRequest.LocalDataTrackTryPush = localDataTrackTryPushRequest;
+ break;
+ case LocalDataTrackUnpublishRequest localDataTrackUnpublishRequest:
+ ffiRequest.LocalDataTrackUnpublish = localDataTrackUnpublishRequest;
+ break;
+ case LocalDataTrackIsPublishedRequest localDataTrackIsPublishedRequest:
+ ffiRequest.LocalDataTrackIsPublished = localDataTrackIsPublishedRequest;
+ break;
+ case SubscribeDataTrackRequest subscribeDataTrackRequest:
+ ffiRequest.SubscribeDataTrack = subscribeDataTrackRequest;
+ break;
+ case RemoteDataTrackIsPublishedRequest remoteDataTrackIsPublishedRequest:
+ ffiRequest.RemoteDataTrackIsPublished = remoteDataTrackIsPublishedRequest;
+ break;
+ case DataTrackSubscriptionReadRequest dataTrackSubscriptionReadRequest:
+ ffiRequest.DataTrackSubscriptionRead = dataTrackSubscriptionReadRequest;
+ break;
default:
throw new Exception($"Unknown request type: {request?.GetType().FullName ?? "null"}");
}
@@ -266,6 +288,16 @@ public static void EnsureClean(this FfiRequest request)
|| request.UnregisterRpcMethod != null
|| request.PerformRpc != null
|| request.RpcMethodInvocationResponse != null
+ ||
+
+ // Data Track
+ request.PublishDataTrack != null
+ || request.LocalDataTrackTryPush != null
+ || request.LocalDataTrackUnpublish != null
+ || request.LocalDataTrackIsPublished != null
+ || request.SubscribeDataTrack != null
+ || request.RemoteDataTrackIsPublished != null
+ || request.DataTrackSubscriptionRead != null
)
{
throw new InvalidOperationException("Request is not cleared");
@@ -322,6 +354,16 @@ public static void EnsureClean(this FfiResponse response)
|| response.UnregisterRpcMethod != null
|| response.PerformRpc != null
|| response.RpcMethodInvocationResponse != null
+ ||
+
+ // Data Track
+ response.PublishDataTrack != null
+ || response.LocalDataTrackTryPush != null
+ || response.LocalDataTrackUnpublish != null
+ || response.LocalDataTrackIsPublished != null
+ || response.SubscribeDataTrack != null
+ || response.RemoteDataTrackIsPublished != null
+ || response.DataTrackSubscriptionRead != null
)
{
throw new InvalidOperationException("Response is not cleared: ");
diff --git a/Runtime/Scripts/Participant.cs b/Runtime/Scripts/Participant.cs
index a9a71943..81a61cc8 100644
--- a/Runtime/Scripts/Participant.cs
+++ b/Runtime/Scripts/Participant.cs
@@ -541,6 +541,47 @@ public StreamTextInstruction StreamText(string topic)
var options = new StreamTextOptions { Topic = topic };
return StreamText(options);
}
+
+ ///
+ /// Publishes a data track.
+ ///
+ /// Options for the data track, including the track name.
+ ///
+ /// A that completes when the track is published or errors.
+ /// Check and access
+ /// to get the published track.
+ /// Use to send data frames on the track.
+ ///
+ public PublishDataTrackInstruction PublishDataTrack(DataTrackOptions options)
+ {
+ using var request = FFIBridge.Instance.NewRequest();
+ var publishReq = request.request;
+ publishReq.LocalParticipantHandle = (ulong)Handle.DangerousGetHandle();
+ publishReq.Options = new Proto.DataTrackOptions { Name = options.Name };
+
+ var instruction = new PublishDataTrackInstruction(request.RequestAsyncId);
+ using var response = request.Send();
+ return instruction;
+ }
+
+ ///
+ /// Publishes a data track.
+ ///
+ /// The track name used to identify the track to other participants.
+ /// Must not be empty and must be unique per publisher.
+ ///
+ /// Use the overload to set additional options.
+ ///
+ ///
+ /// A that completes when the track is published or errors.
+ /// Check and access
+ /// to get the published track.
+ /// Use to send data frames on the track.
+ ///
+ public PublishDataTrackInstruction PublishDataTrack(string name)
+ {
+ return PublishDataTrack(new DataTrackOptions(name));
+ }
}
public sealed class RemoteParticipant : Participant
@@ -973,4 +1014,63 @@ public ByteStreamWriter Writer
public StreamError Error { get; private set; }
}
+
+ ///
+ /// YieldInstruction for publishing a data track. Returned by .
+ ///
+ ///
+ /// Access after checking .
+ ///
+ public sealed class PublishDataTrackInstruction : YieldInstruction
+ {
+ private ulong _asyncId;
+ private LocalDataTrack _track;
+
+ internal PublishDataTrackInstruction(ulong asyncId)
+ {
+ _asyncId = asyncId;
+ FfiClient.Instance.RegisterPendingCallback(asyncId, static e => e.PublishDataTrack, OnPublishDataTrack, OnCanceled);
+ }
+
+ internal void OnPublishDataTrack(PublishDataTrackCallback e)
+ {
+ if (e.AsyncId != _asyncId)
+ return;
+
+ switch (e.ResultCase)
+ {
+ case PublishDataTrackCallback.ResultOneofCase.Error:
+ Error = new PublishDataTrackError(e.Error);
+ IsError = true;
+ break;
+ case PublishDataTrackCallback.ResultOneofCase.Track:
+ _track = new LocalDataTrack(e.Track);
+ break;
+ }
+ IsDone = true;
+ }
+
+ void OnCanceled()
+ {
+ Error = new PublishDataTrackError("Canceled");
+ IsError = true;
+ IsDone = true;
+ }
+
+ ///
+ /// The published data track. Use to send
+ /// data frames on the track.
+ ///
+ /// Thrown if the publish operation failed.
+ public LocalDataTrack Track
+ {
+ get
+ {
+ if (IsError) throw Error;
+ return _track;
+ }
+ }
+
+ public PublishDataTrackError Error { get; private set; }
+ }
}
diff --git a/Runtime/Scripts/Proto/DataTrack.cs b/Runtime/Scripts/Proto/DataTrack.cs
new file mode 100644
index 00000000..1e66d79c
--- /dev/null
+++ b/Runtime/Scripts/Proto/DataTrack.cs
@@ -0,0 +1,6157 @@
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: data_track.proto
+//
+#pragma warning disable 1591, 0612, 3021, 8981
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace LiveKit.Proto {
+
+ /// Holder for reflection information generated from data_track.proto
+ public static partial class DataTrackReflection {
+
+ #region Descriptor
+ /// File descriptor for data_track.proto
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static DataTrackReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChBkYXRhX3RyYWNrLnByb3RvEg1saXZla2l0LnByb3RvGgxoYW5kbGUucHJv",
+ "dG8iPQoNRGF0YVRyYWNrSW5mbxIMCgRuYW1lGAEgAigJEgsKA3NpZBgCIAIo",
+ "CRIRCgl1c2VzX2UyZWUYAyACKAgiOQoORGF0YVRyYWNrRnJhbWUSDwoHcGF5",
+ "bG9hZBgBIAIoDBIWCg51c2VyX3RpbWVzdGFtcBgCIAEoBCIgChBEYXRhVHJh",
+ "Y2tPcHRpb25zEgwKBG5hbWUYASACKAkihwEKF1B1Ymxpc2hEYXRhVHJhY2tS",
+ "ZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIwCgdv",
+ "cHRpb25zGAIgAigLMh8ubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tPcHRpb25z",
+ "EhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiLAoYUHVibGlzaERhdGFUcmFj",
+ "a1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEInwKGFB1Ymxpc2hEYXRhVHJh",
+ "Y2tDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIzCgV0cmFjaxgCIAEoCzIi",
+ "LmxpdmVraXQucHJvdG8uT3duZWRMb2NhbERhdGFUcmFja0gAEg8KBWVycm9y",
+ "GAMgASgJSABCCAoGcmVzdWx0InAKE093bmVkTG9jYWxEYXRhVHJhY2sSLQoG",
+ "aGFuZGxlGAEgAigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZRIq",
+ "CgRpbmZvGAIgAigLMhwubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tJbmZvImIK",
+ "HExvY2FsRGF0YVRyYWNrVHJ5UHVzaFJlcXVlc3QSFAoMdHJhY2tfaGFuZGxl",
+ "GAEgAigEEiwKBWZyYW1lGAIgAigLMh0ubGl2ZWtpdC5wcm90by5EYXRhVHJh",
+ "Y2tGcmFtZSIuCh1Mb2NhbERhdGFUcmFja1RyeVB1c2hSZXNwb25zZRINCgVl",
+ "cnJvchgCIAEoCSI4CiBMb2NhbERhdGFUcmFja0lzUHVibGlzaGVkUmVxdWVz",
+ "dBIUCgx0cmFja19oYW5kbGUYASACKAQiOQohTG9jYWxEYXRhVHJhY2tJc1B1",
+ "Ymxpc2hlZFJlc3BvbnNlEhQKDGlzX3B1Ymxpc2hlZBgBIAIoCCI2Ch5Mb2Nh",
+ "bERhdGFUcmFja1VucHVibGlzaFJlcXVlc3QSFAoMdHJhY2tfaGFuZGxlGAEg",
+ "AigEIiEKH0xvY2FsRGF0YVRyYWNrVW5wdWJsaXNoUmVzcG9uc2UijQEKFE93",
+ "bmVkUmVtb3RlRGF0YVRyYWNrEi0KBmhhbmRsZRgBIAIoCzIdLmxpdmVraXQu",
+ "cHJvdG8uRmZpT3duZWRIYW5kbGUSKgoEaW5mbxgCIAIoCzIcLmxpdmVraXQu",
+ "cHJvdG8uRGF0YVRyYWNrSW5mbxIaChJwdWJsaXNoZXJfaWRlbnRpdHkYAyAC",
+ "KAkiSwoaT3duZWREYXRhVHJhY2tTdWJzY3JpcHRpb24SLQoGaGFuZGxlGAEg",
+ "AigLMh0ubGl2ZWtpdC5wcm90by5GZmlPd25lZEhhbmRsZSIwChlEYXRhVHJh",
+ "Y2tTdWJzY3JpYmVPcHRpb25zEhMKC2J1ZmZlcl9zaXplGAEgASgNIjkKIVJl",
+ "bW90ZURhdGFUcmFja0lzUHVibGlzaGVkUmVxdWVzdBIUCgx0cmFja19oYW5k",
+ "bGUYASACKAQiOgoiUmVtb3RlRGF0YVRyYWNrSXNQdWJsaXNoZWRSZXNwb25z",
+ "ZRIUCgxpc19wdWJsaXNoZWQYASACKAgibAoZU3Vic2NyaWJlRGF0YVRyYWNr",
+ "UmVxdWVzdBIUCgx0cmFja19oYW5kbGUYASACKAQSOQoHb3B0aW9ucxgCIAIo",
+ "CzIoLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrU3Vic2NyaWJlT3B0aW9ucyJd",
+ "ChpTdWJzY3JpYmVEYXRhVHJhY2tSZXNwb25zZRI/CgxzdWJzY3JpcHRpb24Y",
+ "ASACKAsyKS5saXZla2l0LnByb3RvLk93bmVkRGF0YVRyYWNrU3Vic2NyaXB0",
+ "aW9uIj8KIERhdGFUcmFja1N1YnNjcmlwdGlvblJlYWRSZXF1ZXN0EhsKE3N1",
+ "YnNjcmlwdGlvbl9oYW5kbGUYASACKAQiIwohRGF0YVRyYWNrU3Vic2NyaXB0",
+ "aW9uUmVhZFJlc3BvbnNlIsgBChpEYXRhVHJhY2tTdWJzY3JpcHRpb25FdmVu",
+ "dBIbChNzdWJzY3JpcHRpb25faGFuZGxlGAEgAigEEksKDmZyYW1lX3JlY2Vp",
+ "dmVkGAIgASgLMjEubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRp",
+ "b25GcmFtZVJlY2VpdmVkSAASNgoDZW9zGAMgASgLMicubGl2ZWtpdC5wcm90",
+ "by5EYXRhVHJhY2tTdWJzY3JpcHRpb25FT1NIAEIICgZkZXRhaWwiUgoiRGF0",
+ "YVRyYWNrU3Vic2NyaXB0aW9uRnJhbWVSZWNlaXZlZBIsCgVmcmFtZRgBIAIo",
+ "CzIdLmxpdmVraXQucHJvdG8uRGF0YVRyYWNrRnJhbWUiKQoYRGF0YVRyYWNr",
+ "U3Vic2NyaXB0aW9uRU9TEg0KBWVycm9yGAEgASgJQhCqAg1MaXZlS2l0LlBy",
+ "b3Rv"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { global::LiveKit.Proto.HandleReflection.Descriptor, },
+ new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackInfo), global::LiveKit.Proto.DataTrackInfo.Parser, new[]{ "Name", "Sid", "UsesE2Ee" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackFrame), global::LiveKit.Proto.DataTrackFrame.Parser, new[]{ "Payload", "UserTimestamp" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackOptions), global::LiveKit.Proto.DataTrackOptions.Parser, new[]{ "Name" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataTrackRequest), global::LiveKit.Proto.PublishDataTrackRequest.Parser, new[]{ "LocalParticipantHandle", "Options", "RequestAsyncId" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataTrackResponse), global::LiveKit.Proto.PublishDataTrackResponse.Parser, new[]{ "AsyncId" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.PublishDataTrackCallback), global::LiveKit.Proto.PublishDataTrackCallback.Parser, new[]{ "AsyncId", "Track", "Error" }, new[]{ "Result" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedLocalDataTrack), global::LiveKit.Proto.OwnedLocalDataTrack.Parser, new[]{ "Handle", "Info" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackTryPushRequest), global::LiveKit.Proto.LocalDataTrackTryPushRequest.Parser, new[]{ "TrackHandle", "Frame" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackTryPushResponse), global::LiveKit.Proto.LocalDataTrackTryPushResponse.Parser, new[]{ "Error" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackIsPublishedRequest), global::LiveKit.Proto.LocalDataTrackIsPublishedRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackIsPublishedResponse), global::LiveKit.Proto.LocalDataTrackIsPublishedResponse.Parser, new[]{ "IsPublished" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackUnpublishRequest), global::LiveKit.Proto.LocalDataTrackUnpublishRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.LocalDataTrackUnpublishResponse), global::LiveKit.Proto.LocalDataTrackUnpublishResponse.Parser, null, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRemoteDataTrack), global::LiveKit.Proto.OwnedRemoteDataTrack.Parser, new[]{ "Handle", "Info", "PublisherIdentity" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedDataTrackSubscription), global::LiveKit.Proto.OwnedDataTrackSubscription.Parser, new[]{ "Handle" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscribeOptions), global::LiveKit.Proto.DataTrackSubscribeOptions.Parser, new[]{ "BufferSize" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest), global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest.Parser, new[]{ "TrackHandle" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse), global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse.Parser, new[]{ "IsPublished" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackRequest), global::LiveKit.Proto.SubscribeDataTrackRequest.Parser, new[]{ "TrackHandle", "Options" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SubscribeDataTrackResponse), global::LiveKit.Proto.SubscribeDataTrackResponse.Parser, new[]{ "Subscription" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionReadRequest), global::LiveKit.Proto.DataTrackSubscriptionReadRequest.Parser, new[]{ "SubscriptionHandle" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionReadResponse), global::LiveKit.Proto.DataTrackSubscriptionReadResponse.Parser, null, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionEvent), global::LiveKit.Proto.DataTrackSubscriptionEvent.Parser, new[]{ "SubscriptionHandle", "FrameReceived", "Eos" }, new[]{ "Detail" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionFrameReceived), global::LiveKit.Proto.DataTrackSubscriptionFrameReceived.Parser, new[]{ "Frame" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackSubscriptionEOS), global::LiveKit.Proto.DataTrackSubscriptionEOS.Parser, new[]{ "Error" }, null, null, null, null)
+ }));
+ }
+ #endregion
+
+ }
+ #region Messages
+ ///
+ /// Information about a published data track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackInfo : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackInfo());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[0]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackInfo() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackInfo(DataTrackInfo other) : this() {
+ _hasBits0 = other._hasBits0;
+ name_ = other.name_;
+ sid_ = other.sid_;
+ usesE2Ee_ = other.usesE2Ee_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackInfo Clone() {
+ return new DataTrackInfo(this);
+ }
+
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 1;
+ private readonly static string NameDefaultValue = "";
+
+ private string name_;
+ ///
+ /// Name of the track assigned by the publisher.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Name {
+ get { return name_ ?? NameDefaultValue; }
+ set {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "name" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasName {
+ get { return name_ != null; }
+ }
+ /// Clears the value of the "name" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearName() {
+ name_ = null;
+ }
+
+ /// Field number for the "sid" field.
+ public const int SidFieldNumber = 2;
+ private readonly static string SidDefaultValue = "";
+
+ private string sid_;
+ ///
+ /// SFU-assigned track identifier.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Sid {
+ get { return sid_ ?? SidDefaultValue; }
+ set {
+ sid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "sid" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasSid {
+ get { return sid_ != null; }
+ }
+ /// Clears the value of the "sid" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearSid() {
+ sid_ = null;
+ }
+
+ /// Field number for the "uses_e2ee" field.
+ public const int UsesE2EeFieldNumber = 3;
+ private readonly static bool UsesE2EeDefaultValue = false;
+
+ private bool usesE2Ee_;
+ ///
+ /// Whether or not frames sent on the track use end-to-end encryption.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool UsesE2Ee {
+ get { if ((_hasBits0 & 1) != 0) { return usesE2Ee_; } else { return UsesE2EeDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ usesE2Ee_ = value;
+ }
+ }
+ /// Gets whether the "uses_e2ee" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasUsesE2Ee {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "uses_e2ee" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearUsesE2Ee() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackInfo);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackInfo other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Name != other.Name) return false;
+ if (Sid != other.Sid) return false;
+ if (UsesE2Ee != other.UsesE2Ee) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasName) hash ^= Name.GetHashCode();
+ if (HasSid) hash ^= Sid.GetHashCode();
+ if (HasUsesE2Ee) hash ^= UsesE2Ee.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasName) {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (HasSid) {
+ output.WriteRawTag(18);
+ output.WriteString(Sid);
+ }
+ if (HasUsesE2Ee) {
+ output.WriteRawTag(24);
+ output.WriteBool(UsesE2Ee);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasName) {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (HasSid) {
+ output.WriteRawTag(18);
+ output.WriteString(Sid);
+ }
+ if (HasUsesE2Ee) {
+ output.WriteRawTag(24);
+ output.WriteBool(UsesE2Ee);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasName) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ if (HasSid) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Sid);
+ }
+ if (HasUsesE2Ee) {
+ size += 1 + 1;
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackInfo other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasSid) {
+ Sid = other.Sid;
+ }
+ if (other.HasUsesE2Ee) {
+ UsesE2Ee = other.UsesE2Ee;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Name = input.ReadString();
+ break;
+ }
+ case 18: {
+ Sid = input.ReadString();
+ break;
+ }
+ case 24: {
+ UsesE2Ee = input.ReadBool();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ Name = input.ReadString();
+ break;
+ }
+ case 18: {
+ Sid = input.ReadString();
+ break;
+ }
+ case 24: {
+ UsesE2Ee = input.ReadBool();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// A frame published on a data track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackFrame : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackFrame());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[1]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackFrame() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackFrame(DataTrackFrame other) : this() {
+ _hasBits0 = other._hasBits0;
+ payload_ = other.payload_;
+ userTimestamp_ = other.userTimestamp_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackFrame Clone() {
+ return new DataTrackFrame(this);
+ }
+
+ /// Field number for the "payload" field.
+ public const int PayloadFieldNumber = 1;
+ private readonly static pb::ByteString PayloadDefaultValue = pb::ByteString.Empty;
+
+ private pb::ByteString payload_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public pb::ByteString Payload {
+ get { return payload_ ?? PayloadDefaultValue; }
+ set {
+ payload_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "payload" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasPayload {
+ get { return payload_ != null; }
+ }
+ /// Clears the value of the "payload" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearPayload() {
+ payload_ = null;
+ }
+
+ /// Field number for the "user_timestamp" field.
+ public const int UserTimestampFieldNumber = 2;
+ private readonly static ulong UserTimestampDefaultValue = 0UL;
+
+ private ulong userTimestamp_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong UserTimestamp {
+ get { if ((_hasBits0 & 1) != 0) { return userTimestamp_; } else { return UserTimestampDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ userTimestamp_ = value;
+ }
+ }
+ /// Gets whether the "user_timestamp" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasUserTimestamp {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "user_timestamp" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearUserTimestamp() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackFrame);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackFrame other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Payload != other.Payload) return false;
+ if (UserTimestamp != other.UserTimestamp) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasPayload) hash ^= Payload.GetHashCode();
+ if (HasUserTimestamp) hash ^= UserTimestamp.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasPayload) {
+ output.WriteRawTag(10);
+ output.WriteBytes(Payload);
+ }
+ if (HasUserTimestamp) {
+ output.WriteRawTag(16);
+ output.WriteUInt64(UserTimestamp);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasPayload) {
+ output.WriteRawTag(10);
+ output.WriteBytes(Payload);
+ }
+ if (HasUserTimestamp) {
+ output.WriteRawTag(16);
+ output.WriteUInt64(UserTimestamp);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasPayload) {
+ size += 1 + pb::CodedOutputStream.ComputeBytesSize(Payload);
+ }
+ if (HasUserTimestamp) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(UserTimestamp);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackFrame other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasPayload) {
+ Payload = other.Payload;
+ }
+ if (other.HasUserTimestamp) {
+ UserTimestamp = other.UserTimestamp;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Payload = input.ReadBytes();
+ break;
+ }
+ case 16: {
+ UserTimestamp = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ Payload = input.ReadBytes();
+ break;
+ }
+ case 16: {
+ UserTimestamp = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Options for publishing a data track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackOptions : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackOptions());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[2]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackOptions() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackOptions(DataTrackOptions other) : this() {
+ name_ = other.name_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackOptions Clone() {
+ return new DataTrackOptions(this);
+ }
+
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 1;
+ private readonly static string NameDefaultValue = "";
+
+ private string name_;
+ ///
+ /// Track name used to identify the track to other participants.
+ ///
+ /// Must not be empty and must be unique per publisher.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Name {
+ get { return name_ ?? NameDefaultValue; }
+ set {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "name" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasName {
+ get { return name_ != null; }
+ }
+ /// Clears the value of the "name" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearName() {
+ name_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackOptions);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackOptions other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Name != other.Name) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasName) hash ^= Name.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasName) {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasName) {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasName) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackOptions other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Name = input.ReadString();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ Name = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Publish a data track
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class PublishDataTrackRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishDataTrackRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[3]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackRequest(PublishDataTrackRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ localParticipantHandle_ = other.localParticipantHandle_;
+ options_ = other.options_ != null ? other.options_.Clone() : null;
+ requestAsyncId_ = other.requestAsyncId_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackRequest Clone() {
+ return new PublishDataTrackRequest(this);
+ }
+
+ /// Field number for the "local_participant_handle" field.
+ public const int LocalParticipantHandleFieldNumber = 1;
+ private readonly static ulong LocalParticipantHandleDefaultValue = 0UL;
+
+ private ulong localParticipantHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong LocalParticipantHandle {
+ get { if ((_hasBits0 & 1) != 0) { return localParticipantHandle_; } else { return LocalParticipantHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ localParticipantHandle_ = value;
+ }
+ }
+ /// Gets whether the "local_participant_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasLocalParticipantHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "local_participant_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearLocalParticipantHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ /// Field number for the "options" field.
+ public const int OptionsFieldNumber = 2;
+ private global::LiveKit.Proto.DataTrackOptions options_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackOptions Options {
+ get { return options_; }
+ set {
+ options_ = value;
+ }
+ }
+
+ /// Field number for the "request_async_id" field.
+ public const int RequestAsyncIdFieldNumber = 3;
+ private readonly static ulong RequestAsyncIdDefaultValue = 0UL;
+
+ private ulong requestAsyncId_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong RequestAsyncId {
+ get { if ((_hasBits0 & 2) != 0) { return requestAsyncId_; } else { return RequestAsyncIdDefaultValue; } }
+ set {
+ _hasBits0 |= 2;
+ requestAsyncId_ = value;
+ }
+ }
+ /// Gets whether the "request_async_id" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasRequestAsyncId {
+ get { return (_hasBits0 & 2) != 0; }
+ }
+ /// Clears the value of the "request_async_id" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearRequestAsyncId() {
+ _hasBits0 &= ~2;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as PublishDataTrackRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(PublishDataTrackRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (LocalParticipantHandle != other.LocalParticipantHandle) return false;
+ if (!object.Equals(Options, other.Options)) return false;
+ if (RequestAsyncId != other.RequestAsyncId) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasLocalParticipantHandle) hash ^= LocalParticipantHandle.GetHashCode();
+ if (options_ != null) hash ^= Options.GetHashCode();
+ if (HasRequestAsyncId) hash ^= RequestAsyncId.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasLocalParticipantHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(LocalParticipantHandle);
+ }
+ if (options_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Options);
+ }
+ if (HasRequestAsyncId) {
+ output.WriteRawTag(24);
+ output.WriteUInt64(RequestAsyncId);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasLocalParticipantHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(LocalParticipantHandle);
+ }
+ if (options_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Options);
+ }
+ if (HasRequestAsyncId) {
+ output.WriteRawTag(24);
+ output.WriteUInt64(RequestAsyncId);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasLocalParticipantHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(LocalParticipantHandle);
+ }
+ if (options_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
+ }
+ if (HasRequestAsyncId) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(RequestAsyncId);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(PublishDataTrackRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasLocalParticipantHandle) {
+ LocalParticipantHandle = other.LocalParticipantHandle;
+ }
+ if (other.options_ != null) {
+ if (options_ == null) {
+ Options = new global::LiveKit.Proto.DataTrackOptions();
+ }
+ Options.MergeFrom(other.Options);
+ }
+ if (other.HasRequestAsyncId) {
+ RequestAsyncId = other.RequestAsyncId;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ LocalParticipantHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (options_ == null) {
+ Options = new global::LiveKit.Proto.DataTrackOptions();
+ }
+ input.ReadMessage(Options);
+ break;
+ }
+ case 24: {
+ RequestAsyncId = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ LocalParticipantHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (options_ == null) {
+ Options = new global::LiveKit.Proto.DataTrackOptions();
+ }
+ input.ReadMessage(Options);
+ break;
+ }
+ case 24: {
+ RequestAsyncId = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class PublishDataTrackResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishDataTrackResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[4]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackResponse(PublishDataTrackResponse other) : this() {
+ _hasBits0 = other._hasBits0;
+ asyncId_ = other.asyncId_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackResponse Clone() {
+ return new PublishDataTrackResponse(this);
+ }
+
+ /// Field number for the "async_id" field.
+ public const int AsyncIdFieldNumber = 1;
+ private readonly static ulong AsyncIdDefaultValue = 0UL;
+
+ private ulong asyncId_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong AsyncId {
+ get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ asyncId_ = value;
+ }
+ }
+ /// Gets whether the "async_id" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasAsyncId {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "async_id" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearAsyncId() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as PublishDataTrackResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(PublishDataTrackResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (AsyncId != other.AsyncId) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasAsyncId) hash ^= AsyncId.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasAsyncId) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(AsyncId);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasAsyncId) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(AsyncId);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasAsyncId) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(PublishDataTrackResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasAsyncId) {
+ AsyncId = other.AsyncId;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ AsyncId = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ AsyncId = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class PublishDataTrackCallback : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new PublishDataTrackCallback());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[5]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackCallback() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackCallback(PublishDataTrackCallback other) : this() {
+ _hasBits0 = other._hasBits0;
+ asyncId_ = other.asyncId_;
+ switch (other.ResultCase) {
+ case ResultOneofCase.Track:
+ Track = other.Track.Clone();
+ break;
+ case ResultOneofCase.Error:
+ Error = other.Error;
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public PublishDataTrackCallback Clone() {
+ return new PublishDataTrackCallback(this);
+ }
+
+ /// Field number for the "async_id" field.
+ public const int AsyncIdFieldNumber = 1;
+ private readonly static ulong AsyncIdDefaultValue = 0UL;
+
+ private ulong asyncId_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong AsyncId {
+ get { if ((_hasBits0 & 1) != 0) { return asyncId_; } else { return AsyncIdDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ asyncId_ = value;
+ }
+ }
+ /// Gets whether the "async_id" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasAsyncId {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "async_id" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearAsyncId() {
+ _hasBits0 &= ~1;
+ }
+
+ /// Field number for the "track" field.
+ public const int TrackFieldNumber = 2;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.OwnedLocalDataTrack Track {
+ get { return resultCase_ == ResultOneofCase.Track ? (global::LiveKit.Proto.OwnedLocalDataTrack) result_ : null; }
+ set {
+ result_ = value;
+ resultCase_ = value == null ? ResultOneofCase.None : ResultOneofCase.Track;
+ }
+ }
+
+ /// Field number for the "error" field.
+ public const int ErrorFieldNumber = 3;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Error {
+ get { return HasError ? (string) result_ : ""; }
+ set {
+ result_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ resultCase_ = ResultOneofCase.Error;
+ }
+ }
+ /// Gets whether the "error" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasError {
+ get { return resultCase_ == ResultOneofCase.Error; }
+ }
+ /// Clears the value of the oneof if it's currently set to "error"
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearError() {
+ if (HasError) {
+ ClearResult();
+ }
+ }
+
+ private object result_;
+ /// Enum of possible cases for the "result" oneof.
+ public enum ResultOneofCase {
+ None = 0,
+ Track = 2,
+ Error = 3,
+ }
+ private ResultOneofCase resultCase_ = ResultOneofCase.None;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ResultOneofCase ResultCase {
+ get { return resultCase_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearResult() {
+ resultCase_ = ResultOneofCase.None;
+ result_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as PublishDataTrackCallback);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(PublishDataTrackCallback other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (AsyncId != other.AsyncId) return false;
+ if (!object.Equals(Track, other.Track)) return false;
+ if (Error != other.Error) return false;
+ if (ResultCase != other.ResultCase) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasAsyncId) hash ^= AsyncId.GetHashCode();
+ if (resultCase_ == ResultOneofCase.Track) hash ^= Track.GetHashCode();
+ if (HasError) hash ^= Error.GetHashCode();
+ hash ^= (int) resultCase_;
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasAsyncId) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(AsyncId);
+ }
+ if (resultCase_ == ResultOneofCase.Track) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Track);
+ }
+ if (HasError) {
+ output.WriteRawTag(26);
+ output.WriteString(Error);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasAsyncId) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(AsyncId);
+ }
+ if (resultCase_ == ResultOneofCase.Track) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Track);
+ }
+ if (HasError) {
+ output.WriteRawTag(26);
+ output.WriteString(Error);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasAsyncId) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(AsyncId);
+ }
+ if (resultCase_ == ResultOneofCase.Track) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Track);
+ }
+ if (HasError) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Error);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(PublishDataTrackCallback other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasAsyncId) {
+ AsyncId = other.AsyncId;
+ }
+ switch (other.ResultCase) {
+ case ResultOneofCase.Track:
+ if (Track == null) {
+ Track = new global::LiveKit.Proto.OwnedLocalDataTrack();
+ }
+ Track.MergeFrom(other.Track);
+ break;
+ case ResultOneofCase.Error:
+ Error = other.Error;
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ AsyncId = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ global::LiveKit.Proto.OwnedLocalDataTrack subBuilder = new global::LiveKit.Proto.OwnedLocalDataTrack();
+ if (resultCase_ == ResultOneofCase.Track) {
+ subBuilder.MergeFrom(Track);
+ }
+ input.ReadMessage(subBuilder);
+ Track = subBuilder;
+ break;
+ }
+ case 26: {
+ Error = input.ReadString();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ AsyncId = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ global::LiveKit.Proto.OwnedLocalDataTrack subBuilder = new global::LiveKit.Proto.OwnedLocalDataTrack();
+ if (resultCase_ == ResultOneofCase.Track) {
+ subBuilder.MergeFrom(Track);
+ }
+ input.ReadMessage(subBuilder);
+ Track = subBuilder;
+ break;
+ }
+ case 26: {
+ Error = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class OwnedLocalDataTrack : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedLocalDataTrack());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[6]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedLocalDataTrack() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedLocalDataTrack(OwnedLocalDataTrack other) : this() {
+ handle_ = other.handle_ != null ? other.handle_.Clone() : null;
+ info_ = other.info_ != null ? other.info_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedLocalDataTrack Clone() {
+ return new OwnedLocalDataTrack(this);
+ }
+
+ /// Field number for the "handle" field.
+ public const int HandleFieldNumber = 1;
+ private global::LiveKit.Proto.FfiOwnedHandle handle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.FfiOwnedHandle Handle {
+ get { return handle_; }
+ set {
+ handle_ = value;
+ }
+ }
+
+ /// Field number for the "info" field.
+ public const int InfoFieldNumber = 2;
+ private global::LiveKit.Proto.DataTrackInfo info_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackInfo Info {
+ get { return info_; }
+ set {
+ info_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as OwnedLocalDataTrack);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(OwnedLocalDataTrack other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(Handle, other.Handle)) return false;
+ if (!object.Equals(Info, other.Info)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (handle_ != null) hash ^= Handle.GetHashCode();
+ if (info_ != null) hash ^= Info.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (handle_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Handle);
+ }
+ if (info_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Info);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (handle_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Handle);
+ }
+ if (info_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Info);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (handle_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle);
+ }
+ if (info_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(OwnedLocalDataTrack other) {
+ if (other == null) {
+ return;
+ }
+ if (other.handle_ != null) {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ Handle.MergeFrom(other.Handle);
+ }
+ if (other.info_ != null) {
+ if (info_ == null) {
+ Info = new global::LiveKit.Proto.DataTrackInfo();
+ }
+ Info.MergeFrom(other.Info);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ input.ReadMessage(Handle);
+ break;
+ }
+ case 18: {
+ if (info_ == null) {
+ Info = new global::LiveKit.Proto.DataTrackInfo();
+ }
+ input.ReadMessage(Info);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ input.ReadMessage(Handle);
+ break;
+ }
+ case 18: {
+ if (info_ == null) {
+ Info = new global::LiveKit.Proto.DataTrackInfo();
+ }
+ input.ReadMessage(Info);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Try pushing a frame to subscribers of the track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class LocalDataTrackTryPushRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackTryPushRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[7]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackTryPushRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackTryPushRequest(LocalDataTrackTryPushRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ trackHandle_ = other.trackHandle_;
+ frame_ = other.frame_ != null ? other.frame_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackTryPushRequest Clone() {
+ return new LocalDataTrackTryPushRequest(this);
+ }
+
+ /// Field number for the "track_handle" field.
+ public const int TrackHandleFieldNumber = 1;
+ private readonly static ulong TrackHandleDefaultValue = 0UL;
+
+ private ulong trackHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong TrackHandle {
+ get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ trackHandle_ = value;
+ }
+ }
+ /// Gets whether the "track_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasTrackHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "track_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearTrackHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ /// Field number for the "frame" field.
+ public const int FrameFieldNumber = 2;
+ private global::LiveKit.Proto.DataTrackFrame frame_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackFrame Frame {
+ get { return frame_; }
+ set {
+ frame_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as LocalDataTrackTryPushRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(LocalDataTrackTryPushRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (TrackHandle != other.TrackHandle) return false;
+ if (!object.Equals(Frame, other.Frame)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasTrackHandle) hash ^= TrackHandle.GetHashCode();
+ if (frame_ != null) hash ^= Frame.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (frame_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Frame);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (frame_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Frame);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasTrackHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle);
+ }
+ if (frame_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Frame);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(LocalDataTrackTryPushRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasTrackHandle) {
+ TrackHandle = other.TrackHandle;
+ }
+ if (other.frame_ != null) {
+ if (frame_ == null) {
+ Frame = new global::LiveKit.Proto.DataTrackFrame();
+ }
+ Frame.MergeFrom(other.Frame);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (frame_ == null) {
+ Frame = new global::LiveKit.Proto.DataTrackFrame();
+ }
+ input.ReadMessage(Frame);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (frame_ == null) {
+ Frame = new global::LiveKit.Proto.DataTrackFrame();
+ }
+ input.ReadMessage(Frame);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class LocalDataTrackTryPushResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackTryPushResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[8]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackTryPushResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackTryPushResponse(LocalDataTrackTryPushResponse other) : this() {
+ error_ = other.error_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackTryPushResponse Clone() {
+ return new LocalDataTrackTryPushResponse(this);
+ }
+
+ /// Field number for the "error" field.
+ public const int ErrorFieldNumber = 2;
+ private readonly static string ErrorDefaultValue = "";
+
+ private string error_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Error {
+ get { return error_ ?? ErrorDefaultValue; }
+ set {
+ error_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "error" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasError {
+ get { return error_ != null; }
+ }
+ /// Clears the value of the "error" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearError() {
+ error_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as LocalDataTrackTryPushResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(LocalDataTrackTryPushResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Error != other.Error) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasError) hash ^= Error.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasError) {
+ output.WriteRawTag(18);
+ output.WriteString(Error);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasError) {
+ output.WriteRawTag(18);
+ output.WriteString(Error);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasError) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Error);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(LocalDataTrackTryPushResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasError) {
+ Error = other.Error;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 18: {
+ Error = input.ReadString();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 18: {
+ Error = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Checks if the track is still published.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class LocalDataTrackIsPublishedRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackIsPublishedRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[9]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackIsPublishedRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackIsPublishedRequest(LocalDataTrackIsPublishedRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ trackHandle_ = other.trackHandle_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackIsPublishedRequest Clone() {
+ return new LocalDataTrackIsPublishedRequest(this);
+ }
+
+ /// Field number for the "track_handle" field.
+ public const int TrackHandleFieldNumber = 1;
+ private readonly static ulong TrackHandleDefaultValue = 0UL;
+
+ private ulong trackHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong TrackHandle {
+ get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ trackHandle_ = value;
+ }
+ }
+ /// Gets whether the "track_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasTrackHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "track_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearTrackHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as LocalDataTrackIsPublishedRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(LocalDataTrackIsPublishedRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (TrackHandle != other.TrackHandle) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasTrackHandle) hash ^= TrackHandle.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasTrackHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(LocalDataTrackIsPublishedRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasTrackHandle) {
+ TrackHandle = other.TrackHandle;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class LocalDataTrackIsPublishedResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackIsPublishedResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[10]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackIsPublishedResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackIsPublishedResponse(LocalDataTrackIsPublishedResponse other) : this() {
+ _hasBits0 = other._hasBits0;
+ isPublished_ = other.isPublished_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackIsPublishedResponse Clone() {
+ return new LocalDataTrackIsPublishedResponse(this);
+ }
+
+ /// Field number for the "is_published" field.
+ public const int IsPublishedFieldNumber = 1;
+ private readonly static bool IsPublishedDefaultValue = false;
+
+ private bool isPublished_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool IsPublished {
+ get { if ((_hasBits0 & 1) != 0) { return isPublished_; } else { return IsPublishedDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ isPublished_ = value;
+ }
+ }
+ /// Gets whether the "is_published" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasIsPublished {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "is_published" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearIsPublished() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as LocalDataTrackIsPublishedResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(LocalDataTrackIsPublishedResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (IsPublished != other.IsPublished) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasIsPublished) hash ^= IsPublished.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasIsPublished) {
+ output.WriteRawTag(8);
+ output.WriteBool(IsPublished);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasIsPublished) {
+ output.WriteRawTag(8);
+ output.WriteBool(IsPublished);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasIsPublished) {
+ size += 1 + 1;
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(LocalDataTrackIsPublishedResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasIsPublished) {
+ IsPublished = other.IsPublished;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ IsPublished = input.ReadBool();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ IsPublished = input.ReadBool();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Unpublishes the track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class LocalDataTrackUnpublishRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackUnpublishRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[11]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackUnpublishRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackUnpublishRequest(LocalDataTrackUnpublishRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ trackHandle_ = other.trackHandle_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackUnpublishRequest Clone() {
+ return new LocalDataTrackUnpublishRequest(this);
+ }
+
+ /// Field number for the "track_handle" field.
+ public const int TrackHandleFieldNumber = 1;
+ private readonly static ulong TrackHandleDefaultValue = 0UL;
+
+ private ulong trackHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong TrackHandle {
+ get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ trackHandle_ = value;
+ }
+ }
+ /// Gets whether the "track_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasTrackHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "track_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearTrackHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as LocalDataTrackUnpublishRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(LocalDataTrackUnpublishRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (TrackHandle != other.TrackHandle) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasTrackHandle) hash ^= TrackHandle.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasTrackHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(LocalDataTrackUnpublishRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasTrackHandle) {
+ TrackHandle = other.TrackHandle;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class LocalDataTrackUnpublishResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new LocalDataTrackUnpublishResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[12]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackUnpublishResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackUnpublishResponse(LocalDataTrackUnpublishResponse other) : this() {
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public LocalDataTrackUnpublishResponse Clone() {
+ return new LocalDataTrackUnpublishResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as LocalDataTrackUnpublishResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(LocalDataTrackUnpublishResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(LocalDataTrackUnpublishResponse other) {
+ if (other == null) {
+ return;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class OwnedRemoteDataTrack : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedRemoteDataTrack());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[13]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedRemoteDataTrack() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedRemoteDataTrack(OwnedRemoteDataTrack other) : this() {
+ handle_ = other.handle_ != null ? other.handle_.Clone() : null;
+ info_ = other.info_ != null ? other.info_.Clone() : null;
+ publisherIdentity_ = other.publisherIdentity_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedRemoteDataTrack Clone() {
+ return new OwnedRemoteDataTrack(this);
+ }
+
+ /// Field number for the "handle" field.
+ public const int HandleFieldNumber = 1;
+ private global::LiveKit.Proto.FfiOwnedHandle handle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.FfiOwnedHandle Handle {
+ get { return handle_; }
+ set {
+ handle_ = value;
+ }
+ }
+
+ /// Field number for the "info" field.
+ public const int InfoFieldNumber = 2;
+ private global::LiveKit.Proto.DataTrackInfo info_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackInfo Info {
+ get { return info_; }
+ set {
+ info_ = value;
+ }
+ }
+
+ /// Field number for the "publisher_identity" field.
+ public const int PublisherIdentityFieldNumber = 3;
+ private readonly static string PublisherIdentityDefaultValue = "";
+
+ private string publisherIdentity_;
+ ///
+ /// Identity of the remote participant who published the track.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string PublisherIdentity {
+ get { return publisherIdentity_ ?? PublisherIdentityDefaultValue; }
+ set {
+ publisherIdentity_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "publisher_identity" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasPublisherIdentity {
+ get { return publisherIdentity_ != null; }
+ }
+ /// Clears the value of the "publisher_identity" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearPublisherIdentity() {
+ publisherIdentity_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as OwnedRemoteDataTrack);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(OwnedRemoteDataTrack other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(Handle, other.Handle)) return false;
+ if (!object.Equals(Info, other.Info)) return false;
+ if (PublisherIdentity != other.PublisherIdentity) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (handle_ != null) hash ^= Handle.GetHashCode();
+ if (info_ != null) hash ^= Info.GetHashCode();
+ if (HasPublisherIdentity) hash ^= PublisherIdentity.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (handle_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Handle);
+ }
+ if (info_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Info);
+ }
+ if (HasPublisherIdentity) {
+ output.WriteRawTag(26);
+ output.WriteString(PublisherIdentity);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (handle_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Handle);
+ }
+ if (info_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Info);
+ }
+ if (HasPublisherIdentity) {
+ output.WriteRawTag(26);
+ output.WriteString(PublisherIdentity);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (handle_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle);
+ }
+ if (info_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Info);
+ }
+ if (HasPublisherIdentity) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(PublisherIdentity);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(OwnedRemoteDataTrack other) {
+ if (other == null) {
+ return;
+ }
+ if (other.handle_ != null) {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ Handle.MergeFrom(other.Handle);
+ }
+ if (other.info_ != null) {
+ if (info_ == null) {
+ Info = new global::LiveKit.Proto.DataTrackInfo();
+ }
+ Info.MergeFrom(other.Info);
+ }
+ if (other.HasPublisherIdentity) {
+ PublisherIdentity = other.PublisherIdentity;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ input.ReadMessage(Handle);
+ break;
+ }
+ case 18: {
+ if (info_ == null) {
+ Info = new global::LiveKit.Proto.DataTrackInfo();
+ }
+ input.ReadMessage(Info);
+ break;
+ }
+ case 26: {
+ PublisherIdentity = input.ReadString();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ input.ReadMessage(Handle);
+ break;
+ }
+ case 18: {
+ if (info_ == null) {
+ Info = new global::LiveKit.Proto.DataTrackInfo();
+ }
+ input.ReadMessage(Info);
+ break;
+ }
+ case 26: {
+ PublisherIdentity = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Handle to an active data track subscription.
+ ///
+ /// Dropping the handle will unsubscribe from the track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class OwnedDataTrackSubscription : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new OwnedDataTrackSubscription());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[14]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedDataTrackSubscription() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedDataTrackSubscription(OwnedDataTrackSubscription other) : this() {
+ handle_ = other.handle_ != null ? other.handle_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public OwnedDataTrackSubscription Clone() {
+ return new OwnedDataTrackSubscription(this);
+ }
+
+ /// Field number for the "handle" field.
+ public const int HandleFieldNumber = 1;
+ private global::LiveKit.Proto.FfiOwnedHandle handle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.FfiOwnedHandle Handle {
+ get { return handle_; }
+ set {
+ handle_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as OwnedDataTrackSubscription);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(OwnedDataTrackSubscription other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(Handle, other.Handle)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (handle_ != null) hash ^= Handle.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (handle_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Handle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (handle_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Handle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (handle_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Handle);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(OwnedDataTrackSubscription other) {
+ if (other == null) {
+ return;
+ }
+ if (other.handle_ != null) {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ Handle.MergeFrom(other.Handle);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ input.ReadMessage(Handle);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (handle_ == null) {
+ Handle = new global::LiveKit.Proto.FfiOwnedHandle();
+ }
+ input.ReadMessage(Handle);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Reserved for future subscription options.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackSubscribeOptions : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscribeOptions());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[15]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscribeOptions() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscribeOptions(DataTrackSubscribeOptions other) : this() {
+ _hasBits0 = other._hasBits0;
+ bufferSize_ = other.bufferSize_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscribeOptions Clone() {
+ return new DataTrackSubscribeOptions(this);
+ }
+
+ /// Field number for the "buffer_size" field.
+ public const int BufferSizeFieldNumber = 1;
+ private readonly static uint BufferSizeDefaultValue = 0;
+
+ private uint bufferSize_;
+ ///
+ /// Maximum number of frames to buffer internally.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public uint BufferSize {
+ get { if ((_hasBits0 & 1) != 0) { return bufferSize_; } else { return BufferSizeDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ bufferSize_ = value;
+ }
+ }
+ /// Gets whether the "buffer_size" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasBufferSize {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "buffer_size" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearBufferSize() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackSubscribeOptions);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackSubscribeOptions other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (BufferSize != other.BufferSize) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasBufferSize) hash ^= BufferSize.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasBufferSize) {
+ output.WriteRawTag(8);
+ output.WriteUInt32(BufferSize);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasBufferSize) {
+ output.WriteRawTag(8);
+ output.WriteUInt32(BufferSize);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasBufferSize) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt32Size(BufferSize);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackSubscribeOptions other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasBufferSize) {
+ BufferSize = other.BufferSize;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ BufferSize = input.ReadUInt32();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ BufferSize = input.ReadUInt32();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Checks if the track is still published.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class RemoteDataTrackIsPublishedRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RemoteDataTrackIsPublishedRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[16]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public RemoteDataTrackIsPublishedRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public RemoteDataTrackIsPublishedRequest(RemoteDataTrackIsPublishedRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ trackHandle_ = other.trackHandle_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public RemoteDataTrackIsPublishedRequest Clone() {
+ return new RemoteDataTrackIsPublishedRequest(this);
+ }
+
+ /// Field number for the "track_handle" field.
+ public const int TrackHandleFieldNumber = 1;
+ private readonly static ulong TrackHandleDefaultValue = 0UL;
+
+ private ulong trackHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong TrackHandle {
+ get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ trackHandle_ = value;
+ }
+ }
+ /// Gets whether the "track_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasTrackHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "track_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearTrackHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as RemoteDataTrackIsPublishedRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(RemoteDataTrackIsPublishedRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (TrackHandle != other.TrackHandle) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasTrackHandle) hash ^= TrackHandle.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasTrackHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(RemoteDataTrackIsPublishedRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasTrackHandle) {
+ TrackHandle = other.TrackHandle;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class RemoteDataTrackIsPublishedResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RemoteDataTrackIsPublishedResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[17]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public RemoteDataTrackIsPublishedResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public RemoteDataTrackIsPublishedResponse(RemoteDataTrackIsPublishedResponse other) : this() {
+ _hasBits0 = other._hasBits0;
+ isPublished_ = other.isPublished_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public RemoteDataTrackIsPublishedResponse Clone() {
+ return new RemoteDataTrackIsPublishedResponse(this);
+ }
+
+ /// Field number for the "is_published" field.
+ public const int IsPublishedFieldNumber = 1;
+ private readonly static bool IsPublishedDefaultValue = false;
+
+ private bool isPublished_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool IsPublished {
+ get { if ((_hasBits0 & 1) != 0) { return isPublished_; } else { return IsPublishedDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ isPublished_ = value;
+ }
+ }
+ /// Gets whether the "is_published" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasIsPublished {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "is_published" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearIsPublished() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as RemoteDataTrackIsPublishedResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(RemoteDataTrackIsPublishedResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (IsPublished != other.IsPublished) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasIsPublished) hash ^= IsPublished.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasIsPublished) {
+ output.WriteRawTag(8);
+ output.WriteBool(IsPublished);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasIsPublished) {
+ output.WriteRawTag(8);
+ output.WriteBool(IsPublished);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasIsPublished) {
+ size += 1 + 1;
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(RemoteDataTrackIsPublishedResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasIsPublished) {
+ IsPublished = other.IsPublished;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ IsPublished = input.ReadBool();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ IsPublished = input.ReadBool();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Subscribe to a data track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class SubscribeDataTrackRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SubscribeDataTrackRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[18]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public SubscribeDataTrackRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public SubscribeDataTrackRequest(SubscribeDataTrackRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ trackHandle_ = other.trackHandle_;
+ options_ = other.options_ != null ? other.options_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public SubscribeDataTrackRequest Clone() {
+ return new SubscribeDataTrackRequest(this);
+ }
+
+ /// Field number for the "track_handle" field.
+ public const int TrackHandleFieldNumber = 1;
+ private readonly static ulong TrackHandleDefaultValue = 0UL;
+
+ private ulong trackHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong TrackHandle {
+ get { if ((_hasBits0 & 1) != 0) { return trackHandle_; } else { return TrackHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ trackHandle_ = value;
+ }
+ }
+ /// Gets whether the "track_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasTrackHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "track_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearTrackHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ /// Field number for the "options" field.
+ public const int OptionsFieldNumber = 2;
+ private global::LiveKit.Proto.DataTrackSubscribeOptions options_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackSubscribeOptions Options {
+ get { return options_; }
+ set {
+ options_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as SubscribeDataTrackRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(SubscribeDataTrackRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (TrackHandle != other.TrackHandle) return false;
+ if (!object.Equals(Options, other.Options)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasTrackHandle) hash ^= TrackHandle.GetHashCode();
+ if (options_ != null) hash ^= Options.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (options_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Options);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasTrackHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(TrackHandle);
+ }
+ if (options_ != null) {
+ output.WriteRawTag(18);
+ output.WriteMessage(Options);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasTrackHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TrackHandle);
+ }
+ if (options_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(SubscribeDataTrackRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasTrackHandle) {
+ TrackHandle = other.TrackHandle;
+ }
+ if (other.options_ != null) {
+ if (options_ == null) {
+ Options = new global::LiveKit.Proto.DataTrackSubscribeOptions();
+ }
+ Options.MergeFrom(other.Options);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (options_ == null) {
+ Options = new global::LiveKit.Proto.DataTrackSubscribeOptions();
+ }
+ input.ReadMessage(Options);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ TrackHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ if (options_ == null) {
+ Options = new global::LiveKit.Proto.DataTrackSubscribeOptions();
+ }
+ input.ReadMessage(Options);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class SubscribeDataTrackResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SubscribeDataTrackResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[19]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public SubscribeDataTrackResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public SubscribeDataTrackResponse(SubscribeDataTrackResponse other) : this() {
+ subscription_ = other.subscription_ != null ? other.subscription_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public SubscribeDataTrackResponse Clone() {
+ return new SubscribeDataTrackResponse(this);
+ }
+
+ /// Field number for the "subscription" field.
+ public const int SubscriptionFieldNumber = 1;
+ private global::LiveKit.Proto.OwnedDataTrackSubscription subscription_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.OwnedDataTrackSubscription Subscription {
+ get { return subscription_; }
+ set {
+ subscription_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as SubscribeDataTrackResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(SubscribeDataTrackResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(Subscription, other.Subscription)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (subscription_ != null) hash ^= Subscription.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (subscription_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Subscription);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (subscription_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Subscription);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (subscription_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Subscription);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(SubscribeDataTrackResponse other) {
+ if (other == null) {
+ return;
+ }
+ if (other.subscription_ != null) {
+ if (subscription_ == null) {
+ Subscription = new global::LiveKit.Proto.OwnedDataTrackSubscription();
+ }
+ Subscription.MergeFrom(other.Subscription);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (subscription_ == null) {
+ Subscription = new global::LiveKit.Proto.OwnedDataTrackSubscription();
+ }
+ input.ReadMessage(Subscription);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (subscription_ == null) {
+ Subscription = new global::LiveKit.Proto.OwnedDataTrackSubscription();
+ }
+ input.ReadMessage(Subscription);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Signal readiness to handle the next frame.
+ ///
+ /// This allows the client to put backpressure on the internal receive buffer.
+ /// Sending this request will cause the next frame to be sent via `DataTrackSubscriptionFrameReceived`
+ /// once one is available.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackSubscriptionReadRequest : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionReadRequest());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[20]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionReadRequest() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionReadRequest(DataTrackSubscriptionReadRequest other) : this() {
+ _hasBits0 = other._hasBits0;
+ subscriptionHandle_ = other.subscriptionHandle_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionReadRequest Clone() {
+ return new DataTrackSubscriptionReadRequest(this);
+ }
+
+ /// Field number for the "subscription_handle" field.
+ public const int SubscriptionHandleFieldNumber = 1;
+ private readonly static ulong SubscriptionHandleDefaultValue = 0UL;
+
+ private ulong subscriptionHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong SubscriptionHandle {
+ get { if ((_hasBits0 & 1) != 0) { return subscriptionHandle_; } else { return SubscriptionHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ subscriptionHandle_ = value;
+ }
+ }
+ /// Gets whether the "subscription_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasSubscriptionHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "subscription_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearSubscriptionHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackSubscriptionReadRequest);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackSubscriptionReadRequest other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (SubscriptionHandle != other.SubscriptionHandle) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasSubscriptionHandle) hash ^= SubscriptionHandle.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasSubscriptionHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(SubscriptionHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasSubscriptionHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(SubscriptionHandle);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasSubscriptionHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SubscriptionHandle);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackSubscriptionReadRequest other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasSubscriptionHandle) {
+ SubscriptionHandle = other.SubscriptionHandle;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ SubscriptionHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ SubscriptionHandle = input.ReadUInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackSubscriptionReadResponse : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionReadResponse());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[21]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionReadResponse() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionReadResponse(DataTrackSubscriptionReadResponse other) : this() {
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionReadResponse Clone() {
+ return new DataTrackSubscriptionReadResponse(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackSubscriptionReadResponse);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackSubscriptionReadResponse other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackSubscriptionReadResponse other) {
+ if (other == null) {
+ return;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Event emitted on an active subscription.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackSubscriptionEvent : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionEvent());
+ private pb::UnknownFieldSet _unknownFields;
+ private int _hasBits0;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[22]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionEvent() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionEvent(DataTrackSubscriptionEvent other) : this() {
+ _hasBits0 = other._hasBits0;
+ subscriptionHandle_ = other.subscriptionHandle_;
+ switch (other.DetailCase) {
+ case DetailOneofCase.FrameReceived:
+ FrameReceived = other.FrameReceived.Clone();
+ break;
+ case DetailOneofCase.Eos:
+ Eos = other.Eos.Clone();
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionEvent Clone() {
+ return new DataTrackSubscriptionEvent(this);
+ }
+
+ /// Field number for the "subscription_handle" field.
+ public const int SubscriptionHandleFieldNumber = 1;
+ private readonly static ulong SubscriptionHandleDefaultValue = 0UL;
+
+ private ulong subscriptionHandle_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public ulong SubscriptionHandle {
+ get { if ((_hasBits0 & 1) != 0) { return subscriptionHandle_; } else { return SubscriptionHandleDefaultValue; } }
+ set {
+ _hasBits0 |= 1;
+ subscriptionHandle_ = value;
+ }
+ }
+ /// Gets whether the "subscription_handle" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasSubscriptionHandle {
+ get { return (_hasBits0 & 1) != 0; }
+ }
+ /// Clears the value of the "subscription_handle" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearSubscriptionHandle() {
+ _hasBits0 &= ~1;
+ }
+
+ /// Field number for the "frame_received" field.
+ public const int FrameReceivedFieldNumber = 2;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackSubscriptionFrameReceived FrameReceived {
+ get { return detailCase_ == DetailOneofCase.FrameReceived ? (global::LiveKit.Proto.DataTrackSubscriptionFrameReceived) detail_ : null; }
+ set {
+ detail_ = value;
+ detailCase_ = value == null ? DetailOneofCase.None : DetailOneofCase.FrameReceived;
+ }
+ }
+
+ /// Field number for the "eos" field.
+ public const int EosFieldNumber = 3;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackSubscriptionEOS Eos {
+ get { return detailCase_ == DetailOneofCase.Eos ? (global::LiveKit.Proto.DataTrackSubscriptionEOS) detail_ : null; }
+ set {
+ detail_ = value;
+ detailCase_ = value == null ? DetailOneofCase.None : DetailOneofCase.Eos;
+ }
+ }
+
+ private object detail_;
+ /// Enum of possible cases for the "detail" oneof.
+ public enum DetailOneofCase {
+ None = 0,
+ FrameReceived = 2,
+ Eos = 3,
+ }
+ private DetailOneofCase detailCase_ = DetailOneofCase.None;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DetailOneofCase DetailCase {
+ get { return detailCase_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearDetail() {
+ detailCase_ = DetailOneofCase.None;
+ detail_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackSubscriptionEvent);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackSubscriptionEvent other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (SubscriptionHandle != other.SubscriptionHandle) return false;
+ if (!object.Equals(FrameReceived, other.FrameReceived)) return false;
+ if (!object.Equals(Eos, other.Eos)) return false;
+ if (DetailCase != other.DetailCase) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasSubscriptionHandle) hash ^= SubscriptionHandle.GetHashCode();
+ if (detailCase_ == DetailOneofCase.FrameReceived) hash ^= FrameReceived.GetHashCode();
+ if (detailCase_ == DetailOneofCase.Eos) hash ^= Eos.GetHashCode();
+ hash ^= (int) detailCase_;
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasSubscriptionHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(SubscriptionHandle);
+ }
+ if (detailCase_ == DetailOneofCase.FrameReceived) {
+ output.WriteRawTag(18);
+ output.WriteMessage(FrameReceived);
+ }
+ if (detailCase_ == DetailOneofCase.Eos) {
+ output.WriteRawTag(26);
+ output.WriteMessage(Eos);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasSubscriptionHandle) {
+ output.WriteRawTag(8);
+ output.WriteUInt64(SubscriptionHandle);
+ }
+ if (detailCase_ == DetailOneofCase.FrameReceived) {
+ output.WriteRawTag(18);
+ output.WriteMessage(FrameReceived);
+ }
+ if (detailCase_ == DetailOneofCase.Eos) {
+ output.WriteRawTag(26);
+ output.WriteMessage(Eos);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasSubscriptionHandle) {
+ size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SubscriptionHandle);
+ }
+ if (detailCase_ == DetailOneofCase.FrameReceived) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(FrameReceived);
+ }
+ if (detailCase_ == DetailOneofCase.Eos) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Eos);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackSubscriptionEvent other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasSubscriptionHandle) {
+ SubscriptionHandle = other.SubscriptionHandle;
+ }
+ switch (other.DetailCase) {
+ case DetailOneofCase.FrameReceived:
+ if (FrameReceived == null) {
+ FrameReceived = new global::LiveKit.Proto.DataTrackSubscriptionFrameReceived();
+ }
+ FrameReceived.MergeFrom(other.FrameReceived);
+ break;
+ case DetailOneofCase.Eos:
+ if (Eos == null) {
+ Eos = new global::LiveKit.Proto.DataTrackSubscriptionEOS();
+ }
+ Eos.MergeFrom(other.Eos);
+ break;
+ }
+
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ SubscriptionHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ global::LiveKit.Proto.DataTrackSubscriptionFrameReceived subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionFrameReceived();
+ if (detailCase_ == DetailOneofCase.FrameReceived) {
+ subBuilder.MergeFrom(FrameReceived);
+ }
+ input.ReadMessage(subBuilder);
+ FrameReceived = subBuilder;
+ break;
+ }
+ case 26: {
+ global::LiveKit.Proto.DataTrackSubscriptionEOS subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEOS();
+ if (detailCase_ == DetailOneofCase.Eos) {
+ subBuilder.MergeFrom(Eos);
+ }
+ input.ReadMessage(subBuilder);
+ Eos = subBuilder;
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ SubscriptionHandle = input.ReadUInt64();
+ break;
+ }
+ case 18: {
+ global::LiveKit.Proto.DataTrackSubscriptionFrameReceived subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionFrameReceived();
+ if (detailCase_ == DetailOneofCase.FrameReceived) {
+ subBuilder.MergeFrom(FrameReceived);
+ }
+ input.ReadMessage(subBuilder);
+ FrameReceived = subBuilder;
+ break;
+ }
+ case 26: {
+ global::LiveKit.Proto.DataTrackSubscriptionEOS subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEOS();
+ if (detailCase_ == DetailOneofCase.Eos) {
+ subBuilder.MergeFrom(Eos);
+ }
+ input.ReadMessage(subBuilder);
+ Eos = subBuilder;
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// A frame was received.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackSubscriptionFrameReceived : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionFrameReceived());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[23]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionFrameReceived() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionFrameReceived(DataTrackSubscriptionFrameReceived other) : this() {
+ frame_ = other.frame_ != null ? other.frame_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionFrameReceived Clone() {
+ return new DataTrackSubscriptionFrameReceived(this);
+ }
+
+ /// Field number for the "frame" field.
+ public const int FrameFieldNumber = 1;
+ private global::LiveKit.Proto.DataTrackFrame frame_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackFrame Frame {
+ get { return frame_; }
+ set {
+ frame_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackSubscriptionFrameReceived);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackSubscriptionFrameReceived other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(Frame, other.Frame)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (frame_ != null) hash ^= Frame.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (frame_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Frame);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (frame_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Frame);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (frame_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Frame);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackSubscriptionFrameReceived other) {
+ if (other == null) {
+ return;
+ }
+ if (other.frame_ != null) {
+ if (frame_ == null) {
+ Frame = new global::LiveKit.Proto.DataTrackFrame();
+ }
+ Frame.MergeFrom(other.Frame);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (frame_ == null) {
+ Frame = new global::LiveKit.Proto.DataTrackFrame();
+ }
+ input.ReadMessage(Frame);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (frame_ == null) {
+ Frame = new global::LiveKit.Proto.DataTrackFrame();
+ }
+ input.ReadMessage(Frame);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// Subscription has ended (end of stream).
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackSubscriptionEOS : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackSubscriptionEOS());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.DataTrackReflection.Descriptor.MessageTypes[24]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionEOS() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionEOS(DataTrackSubscriptionEOS other) : this() {
+ error_ = other.error_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackSubscriptionEOS Clone() {
+ return new DataTrackSubscriptionEOS(this);
+ }
+
+ /// Field number for the "error" field.
+ public const int ErrorFieldNumber = 1;
+ private readonly static string ErrorDefaultValue = "";
+
+ private string error_;
+ ///
+ /// If the track could not be subscribed to, a message describing the error.
+ /// Absent if the stream ended normally.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Error {
+ get { return error_ ?? ErrorDefaultValue; }
+ set {
+ error_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "error" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasError {
+ get { return error_ != null; }
+ }
+ /// Clears the value of the "error" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearError() {
+ error_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackSubscriptionEOS);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackSubscriptionEOS other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Error != other.Error) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasError) hash ^= Error.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasError) {
+ output.WriteRawTag(10);
+ output.WriteString(Error);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasError) {
+ output.WriteRawTag(10);
+ output.WriteString(Error);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasError) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Error);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackSubscriptionEOS other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasError) {
+ Error = other.Error;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Error = input.ReadString();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ Error = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/Runtime/Scripts/Proto/DataTrack.cs.meta b/Runtime/Scripts/Proto/DataTrack.cs.meta
new file mode 100644
index 00000000..c0cd2e4a
--- /dev/null
+++ b/Runtime/Scripts/Proto/DataTrack.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5bb8f4b61313248248b43d1323a2756b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Scripts/Proto/Ffi.cs b/Runtime/Scripts/Proto/Ffi.cs
index 8a62dcf7..87dd0e91 100644
--- a/Runtime/Scripts/Proto/Ffi.cs
+++ b/Runtime/Scripts/Proto/Ffi.cs
@@ -27,297 +27,327 @@ static FfiReflection() {
"CglmZmkucHJvdG8SDWxpdmVraXQucHJvdG8aCmUyZWUucHJvdG8aC3RyYWNr",
"LnByb3RvGhd0cmFja19wdWJsaWNhdGlvbi5wcm90bxoKcm9vbS5wcm90bxoR",
"dmlkZW9fZnJhbWUucHJvdG8aEWF1ZGlvX2ZyYW1lLnByb3RvGglycGMucHJv",
- "dG8aEWRhdGFfc3RyZWFtLnByb3RvIuYlCgpGZmlSZXF1ZXN0EjAKB2Rpc3Bv",
- "c2UYAiABKAsyHS5saXZla2l0LnByb3RvLkRpc3Bvc2VSZXF1ZXN0SAASMAoH",
- "Y29ubmVjdBgDIAEoCzIdLmxpdmVraXQucHJvdG8uQ29ubmVjdFJlcXVlc3RI",
- "ABI2CgpkaXNjb25uZWN0GAQgASgLMiAubGl2ZWtpdC5wcm90by5EaXNjb25u",
- "ZWN0UmVxdWVzdEgAEjsKDXB1Ymxpc2hfdHJhY2sYBSABKAsyIi5saXZla2l0",
- "LnByb3RvLlB1Ymxpc2hUcmFja1JlcXVlc3RIABI/Cg91bnB1Ymxpc2hfdHJh",
- "Y2sYBiABKAsyJC5saXZla2l0LnByb3RvLlVucHVibGlzaFRyYWNrUmVxdWVz",
- "dEgAEjkKDHB1Ymxpc2hfZGF0YRgHIAEoCzIhLmxpdmVraXQucHJvdG8uUHVi",
- "bGlzaERhdGFSZXF1ZXN0SAASPQoOc2V0X3N1YnNjcmliZWQYCCABKAsyIy5s",
- "aXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRSZXF1ZXN0SAASRAoSc2V0X2xv",
- "Y2FsX21ldGFkYXRhGAkgASgLMiYubGl2ZWtpdC5wcm90by5TZXRMb2NhbE1l",
- "dGFkYXRhUmVxdWVzdEgAEjwKDnNldF9sb2NhbF9uYW1lGAogASgLMiIubGl2",
- "ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVSZXF1ZXN0SAASSAoUc2V0X2xvY2Fs",
- "X2F0dHJpYnV0ZXMYCyABKAsyKC5saXZla2l0LnByb3RvLlNldExvY2FsQXR0",
- "cmlidXRlc1JlcXVlc3RIABJCChFnZXRfc2Vzc2lvbl9zdGF0cxgMIAEoCzIl",
- "LmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0YXRzUmVxdWVzdEgAEksKFXB1",
- "Ymxpc2hfdHJhbnNjcmlwdGlvbhgNIAEoCzIqLmxpdmVraXQucHJvdG8uUHVi",
- "bGlzaFRyYW5zY3JpcHRpb25SZXF1ZXN0SAASQAoQcHVibGlzaF9zaXBfZHRt",
- "ZhgOIAEoCzIkLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZSZXF1ZXN0",
- "SAASRAoSY3JlYXRlX3ZpZGVvX3RyYWNrGA8gASgLMiYubGl2ZWtpdC5wcm90",
- "by5DcmVhdGVWaWRlb1RyYWNrUmVxdWVzdEgAEkQKEmNyZWF0ZV9hdWRpb190",
- "cmFjaxgQIAEoCzImLmxpdmVraXQucHJvdG8uQ3JlYXRlQXVkaW9UcmFja1Jl",
- "cXVlc3RIABJAChBsb2NhbF90cmFja19tdXRlGBEgASgLMiQubGl2ZWtpdC5w",
- "cm90by5Mb2NhbFRyYWNrTXV0ZVJlcXVlc3RIABJGChNlbmFibGVfcmVtb3Rl",
- "X3RyYWNrGBIgASgLMicubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVUcmFj",
- "a1JlcXVlc3RIABIzCglnZXRfc3RhdHMYEyABKAsyHi5saXZla2l0LnByb3Rv",
- "LkdldFN0YXRzUmVxdWVzdEgAEmMKInNldF90cmFja19zdWJzY3JpcHRpb25f",
- "cGVybWlzc2lvbnMYMCABKAsyNS5saXZla2l0LnByb3RvLlNldFRyYWNrU3Vi",
- "c2NyaXB0aW9uUGVybWlzc2lvbnNSZXF1ZXN0SAASQAoQbmV3X3ZpZGVvX3N0",
- "cmVhbRgUIAEoCzIkLmxpdmVraXQucHJvdG8uTmV3VmlkZW9TdHJlYW1SZXF1",
- "ZXN0SAASQAoQbmV3X3ZpZGVvX3NvdXJjZRgVIAEoCzIkLmxpdmVraXQucHJv",
- "dG8uTmV3VmlkZW9Tb3VyY2VSZXF1ZXN0SAASRgoTY2FwdHVyZV92aWRlb19m",
- "cmFtZRgWIAEoCzInLmxpdmVraXQucHJvdG8uQ2FwdHVyZVZpZGVvRnJhbWVS",
- "ZXF1ZXN0SAASOwoNdmlkZW9fY29udmVydBgXIAEoCzIiLmxpdmVraXQucHJv",
- "dG8uVmlkZW9Db252ZXJ0UmVxdWVzdEgAElkKHXZpZGVvX3N0cmVhbV9mcm9t",
- "X3BhcnRpY2lwYW50GBggASgLMjAubGl2ZWtpdC5wcm90by5WaWRlb1N0cmVh",
- "bUZyb21QYXJ0aWNpcGFudFJlcXVlc3RIABJAChBuZXdfYXVkaW9fc3RyZWFt",
- "GBkgASgLMiQubGl2ZWtpdC5wcm90by5OZXdBdWRpb1N0cmVhbVJlcXVlc3RI",
- "ABJAChBuZXdfYXVkaW9fc291cmNlGBogASgLMiQubGl2ZWtpdC5wcm90by5O",
- "ZXdBdWRpb1NvdXJjZVJlcXVlc3RIABJGChNjYXB0dXJlX2F1ZGlvX2ZyYW1l",
- "GBsgASgLMicubGl2ZWtpdC5wcm90by5DYXB0dXJlQXVkaW9GcmFtZVJlcXVl",
- "c3RIABJEChJjbGVhcl9hdWRpb19idWZmZXIYHCABKAsyJi5saXZla2l0LnBy",
- "b3RvLkNsZWFyQXVkaW9CdWZmZXJSZXF1ZXN0SAASRgoTbmV3X2F1ZGlvX3Jl",
- "c2FtcGxlchgdIAEoCzInLmxpdmVraXQucHJvdG8uTmV3QXVkaW9SZXNhbXBs",
- "ZXJSZXF1ZXN0SAASRAoScmVtaXhfYW5kX3Jlc2FtcGxlGB4gASgLMiYubGl2",
- "ZWtpdC5wcm90by5SZW1peEFuZFJlc2FtcGxlUmVxdWVzdEgAEioKBGUyZWUY",
- "HyABKAsyGi5saXZla2l0LnByb3RvLkUyZWVSZXF1ZXN0SAASWQodYXVkaW9f",
- "c3RyZWFtX2Zyb21fcGFydGljaXBhbnQYICABKAsyMC5saXZla2l0LnByb3Rv",
- "LkF1ZGlvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVxdWVzdEgAEkIKEW5ld19z",
- "b3hfcmVzYW1wbGVyGCEgASgLMiUubGl2ZWtpdC5wcm90by5OZXdTb3hSZXNh",
- "bXBsZXJSZXF1ZXN0SAASRAoScHVzaF9zb3hfcmVzYW1wbGVyGCIgASgLMiYu",
- "bGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1wbGVyUmVxdWVzdEgAEkYKE2Zs",
- "dXNoX3NveF9yZXNhbXBsZXIYIyABKAsyJy5saXZla2l0LnByb3RvLkZsdXNo",
- "U294UmVzYW1wbGVyUmVxdWVzdEgAEkIKEXNlbmRfY2hhdF9tZXNzYWdlGCQg",
- "ASgLMiUubGl2ZWtpdC5wcm90by5TZW5kQ2hhdE1lc3NhZ2VSZXF1ZXN0SAAS",
- "QgoRZWRpdF9jaGF0X21lc3NhZ2UYJSABKAsyJS5saXZla2l0LnByb3RvLkVk",
- "aXRDaGF0TWVzc2FnZVJlcXVlc3RIABI3CgtwZXJmb3JtX3JwYxgmIAEoCzIg",
- "LmxpdmVraXQucHJvdG8uUGVyZm9ybVJwY1JlcXVlc3RIABJGChNyZWdpc3Rl",
- "cl9ycGNfbWV0aG9kGCcgASgLMicubGl2ZWtpdC5wcm90by5SZWdpc3RlclJw",
- "Y01ldGhvZFJlcXVlc3RIABJKChV1bnJlZ2lzdGVyX3JwY19tZXRob2QYKCAB",
- "KAsyKS5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNNZXRob2RSZXF1ZXN0",
- "SAASWwoecnBjX21ldGhvZF9pbnZvY2F0aW9uX3Jlc3BvbnNlGCkgASgLMjEu",
- "bGl2ZWtpdC5wcm90by5ScGNNZXRob2RJbnZvY2F0aW9uUmVzcG9uc2VSZXF1",
- "ZXN0SAASXQofZW5hYmxlX3JlbW90ZV90cmFja19wdWJsaWNhdGlvbhgqIAEo",
- "CzIyLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3RlVHJhY2tQdWJsaWNhdGlv",
- "blJlcXVlc3RIABJwCil1cGRhdGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9u",
- "X2RpbWVuc2lvbhgrIAEoCzI7LmxpdmVraXQucHJvdG8uVXBkYXRlUmVtb3Rl",
- "VHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlcXVlc3RIABJEChJzZW5kX3N0",
- "cmVhbV9oZWFkZXIYLCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1I",
- "ZWFkZXJSZXF1ZXN0SAASQgoRc2VuZF9zdHJlYW1fY2h1bmsYLSABKAsyJS5s",
- "aXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVua1JlcXVlc3RIABJGChNzZW5k",
- "X3N0cmVhbV90cmFpbGVyGC4gASgLMicubGl2ZWtpdC5wcm90by5TZW5kU3Ry",
- "ZWFtVHJhaWxlclJlcXVlc3RIABJ4Ci5zZXRfZGF0YV9jaGFubmVsX2J1ZmZl",
- "cmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGC8gASgLMj4ubGl2ZWtpdC5wcm90",
- "by5TZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkUmVx",
- "dWVzdEgAEk8KGGxvYWRfYXVkaW9fZmlsdGVyX3BsdWdpbhgxIAEoCzIrLmxp",
- "dmVraXQucHJvdG8uTG9hZEF1ZGlvRmlsdGVyUGx1Z2luUmVxdWVzdEgAEi8K",
- "B25ld19hcG0YMiABKAsyHC5saXZla2l0LnByb3RvLk5ld0FwbVJlcXVlc3RI",
- "ABJEChJhcG1fcHJvY2Vzc19zdHJlYW0YMyABKAsyJi5saXZla2l0LnByb3Rv",
- "LkFwbVByb2Nlc3NTdHJlYW1SZXF1ZXN0SAASUwoaYXBtX3Byb2Nlc3NfcmV2",
- "ZXJzZV9zdHJlYW0YNCABKAsyLS5saXZla2l0LnByb3RvLkFwbVByb2Nlc3NS",
- "ZXZlcnNlU3RyZWFtUmVxdWVzdEgAEkcKFGFwbV9zZXRfc3RyZWFtX2RlbGF5",
- "GDUgASgLMicubGl2ZWtpdC5wcm90by5BcG1TZXRTdHJlYW1EZWxheVJlcXVl",
- "c3RIABJWChVieXRlX3JlYWRfaW5jcmVtZW50YWwYNiABKAsyNS5saXZla2l0",
- "LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJSZWFkSW5jcmVtZW50YWxSZXF1ZXN0",
- "SAASRgoNYnl0ZV9yZWFkX2FsbBg3IAEoCzItLmxpdmVraXQucHJvdG8uQnl0",
- "ZVN0cmVhbVJlYWRlclJlYWRBbGxSZXF1ZXN0SAASTwoSYnl0ZV93cml0ZV90",
- "b19maWxlGDggASgLMjEubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVy",
- "V3JpdGVUb0ZpbGVSZXF1ZXN0SAASVgoVdGV4dF9yZWFkX2luY3JlbWVudGFs",
- "GDkgASgLMjUubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtUmVhZGVyUmVhZElu",
- "Y3JlbWVudGFsUmVxdWVzdEgAEkYKDXRleHRfcmVhZF9hbGwYOiABKAsyLS5s",
- "aXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFkZXJSZWFkQWxsUmVxdWVzdEgA",
- "EjkKCXNlbmRfZmlsZRg7IAEoCzIkLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu",
- "ZEZpbGVSZXF1ZXN0SAASOQoJc2VuZF90ZXh0GDwgASgLMiQubGl2ZWtpdC5w",
- "cm90by5TdHJlYW1TZW5kVGV4dFJlcXVlc3RIABJAChBieXRlX3N0cmVhbV9v",
- "cGVuGD0gASgLMiQubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtT3BlblJlcXVl",
- "c3RIABJIChFieXRlX3N0cmVhbV93cml0ZRg+IAEoCzIrLmxpdmVraXQucHJv",
- "dG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRlUmVxdWVzdEgAEkgKEWJ5dGVfc3Ry",
- "ZWFtX2Nsb3NlGD8gASgLMisubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtV3Jp",
- "dGVyQ2xvc2VSZXF1ZXN0SAASQAoQdGV4dF9zdHJlYW1fb3BlbhhAIAEoCzIk",
- "LmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9wZW5SZXF1ZXN0SAASSAoRdGV4",
- "dF9zdHJlYW1fd3JpdGUYQSABKAsyKy5saXZla2l0LnByb3RvLlRleHRTdHJl",
- "YW1Xcml0ZXJXcml0ZVJlcXVlc3RIABJIChF0ZXh0X3N0cmVhbV9jbG9zZRhC",
- "IAEoCzIrLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVdyaXRlckNsb3NlUmVx",
- "dWVzdEgAEjsKCnNlbmRfYnl0ZXMYQyABKAsyJS5saXZla2l0LnByb3RvLlN0",
- "cmVhbVNlbmRCeXRlc1JlcXVlc3RIABJmCiRzZXRfcmVtb3RlX3RyYWNrX3B1",
- "YmxpY2F0aW9uX3F1YWxpdHkYRCABKAsyNi5saXZla2l0LnByb3RvLlNldFJl",
- "bW90ZVRyYWNrUHVibGljYXRpb25RdWFsaXR5UmVxdWVzdEgAQgkKB21lc3Nh",
- "Z2Ui5SUKC0ZmaVJlc3BvbnNlEjEKB2Rpc3Bvc2UYAiABKAsyHi5saXZla2l0",
- "LnByb3RvLkRpc3Bvc2VSZXNwb25zZUgAEjEKB2Nvbm5lY3QYAyABKAsyHi5s",
- "aXZla2l0LnByb3RvLkNvbm5lY3RSZXNwb25zZUgAEjcKCmRpc2Nvbm5lY3QY",
- "BCABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RSZXNwb25zZUgAEjwK",
- "DXB1Ymxpc2hfdHJhY2sYBSABKAsyIy5saXZla2l0LnByb3RvLlB1Ymxpc2hU",
- "cmFja1Jlc3BvbnNlSAASQAoPdW5wdWJsaXNoX3RyYWNrGAYgASgLMiUubGl2",
- "ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja1Jlc3BvbnNlSAASOgoMcHVibGlz",
- "aF9kYXRhGAcgASgLMiIubGl2ZWtpdC5wcm90by5QdWJsaXNoRGF0YVJlc3Bv",
- "bnNlSAASPgoOc2V0X3N1YnNjcmliZWQYCCABKAsyJC5saXZla2l0LnByb3Rv",
- "LlNldFN1YnNjcmliZWRSZXNwb25zZUgAEkUKEnNldF9sb2NhbF9tZXRhZGF0",
- "YRgJIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9jYWxNZXRhZGF0YVJlc3Bv",
- "bnNlSAASPQoOc2V0X2xvY2FsX25hbWUYCiABKAsyIy5saXZla2l0LnByb3Rv",
- "LlNldExvY2FsTmFtZVJlc3BvbnNlSAASSQoUc2V0X2xvY2FsX2F0dHJpYnV0",
- "ZXMYCyABKAsyKS5saXZla2l0LnByb3RvLlNldExvY2FsQXR0cmlidXRlc1Jl",
- "c3BvbnNlSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMYDCABKAsyJi5saXZla2l0",
- "LnByb3RvLkdldFNlc3Npb25TdGF0c1Jlc3BvbnNlSAASTAoVcHVibGlzaF90",
- "cmFuc2NyaXB0aW9uGA0gASgLMisubGl2ZWtpdC5wcm90by5QdWJsaXNoVHJh",
- "bnNjcmlwdGlvblJlc3BvbnNlSAASQQoQcHVibGlzaF9zaXBfZHRtZhgOIAEo",
- "CzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZSZXNwb25zZUgAEkUK",
- "EmNyZWF0ZV92aWRlb190cmFjaxgPIAEoCzInLmxpdmVraXQucHJvdG8uQ3Jl",
- "YXRlVmlkZW9UcmFja1Jlc3BvbnNlSAASRQoSY3JlYXRlX2F1ZGlvX3RyYWNr",
- "GBAgASgLMicubGl2ZWtpdC5wcm90by5DcmVhdGVBdWRpb1RyYWNrUmVzcG9u",
- "c2VIABJBChBsb2NhbF90cmFja19tdXRlGBEgASgLMiUubGl2ZWtpdC5wcm90",
- "by5Mb2NhbFRyYWNrTXV0ZVJlc3BvbnNlSAASRwoTZW5hYmxlX3JlbW90ZV90",
- "cmFjaxgSIAEoCzIoLmxpdmVraXQucHJvdG8uRW5hYmxlUmVtb3RlVHJhY2tS",
- "ZXNwb25zZUgAEjQKCWdldF9zdGF0cxgTIAEoCzIfLmxpdmVraXQucHJvdG8u",
- "R2V0U3RhdHNSZXNwb25zZUgAEmQKInNldF90cmFja19zdWJzY3JpcHRpb25f",
- "cGVybWlzc2lvbnMYLyABKAsyNi5saXZla2l0LnByb3RvLlNldFRyYWNrU3Vi",
- "c2NyaXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZUgAEkEKEG5ld192aWRlb19z",
- "dHJlYW0YFCABKAsyJS5saXZla2l0LnByb3RvLk5ld1ZpZGVvU3RyZWFtUmVz",
- "cG9uc2VIABJBChBuZXdfdmlkZW9fc291cmNlGBUgASgLMiUubGl2ZWtpdC5w",
- "cm90by5OZXdWaWRlb1NvdXJjZVJlc3BvbnNlSAASRwoTY2FwdHVyZV92aWRl",
- "b19mcmFtZRgWIAEoCzIoLmxpdmVraXQucHJvdG8uQ2FwdHVyZVZpZGVvRnJh",
- "bWVSZXNwb25zZUgAEjwKDXZpZGVvX2NvbnZlcnQYFyABKAsyIy5saXZla2l0",
- "LnByb3RvLlZpZGVvQ29udmVydFJlc3BvbnNlSAASWgoddmlkZW9fc3RyZWFt",
- "X2Zyb21fcGFydGljaXBhbnQYGCABKAsyMS5saXZla2l0LnByb3RvLlZpZGVv",
- "U3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2VIABJBChBuZXdfYXVkaW9f",
- "c3RyZWFtGBkgASgLMiUubGl2ZWtpdC5wcm90by5OZXdBdWRpb1N0cmVhbVJl",
- "c3BvbnNlSAASQQoQbmV3X2F1ZGlvX3NvdXJjZRgaIAEoCzIlLmxpdmVraXQu",
- "cHJvdG8uTmV3QXVkaW9Tb3VyY2VSZXNwb25zZUgAEkcKE2NhcHR1cmVfYXVk",
- "aW9fZnJhbWUYGyABKAsyKC5saXZla2l0LnByb3RvLkNhcHR1cmVBdWRpb0Zy",
- "YW1lUmVzcG9uc2VIABJFChJjbGVhcl9hdWRpb19idWZmZXIYHCABKAsyJy5s",
- "aXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJSZXNwb25zZUgAEkcKE25l",
- "d19hdWRpb19yZXNhbXBsZXIYHSABKAsyKC5saXZla2l0LnByb3RvLk5ld0F1",
- "ZGlvUmVzYW1wbGVyUmVzcG9uc2VIABJFChJyZW1peF9hbmRfcmVzYW1wbGUY",
- "HiABKAsyJy5saXZla2l0LnByb3RvLlJlbWl4QW5kUmVzYW1wbGVSZXNwb25z",
- "ZUgAEloKHWF1ZGlvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GB8gASgLMjEu",
- "bGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJlc3Bv",
- "bnNlSAASKwoEZTJlZRggIAEoCzIbLmxpdmVraXQucHJvdG8uRTJlZVJlc3Bv",
- "bnNlSAASQwoRbmV3X3NveF9yZXNhbXBsZXIYISABKAsyJi5saXZla2l0LnBy",
- "b3RvLk5ld1NveFJlc2FtcGxlclJlc3BvbnNlSAASRQoScHVzaF9zb3hfcmVz",
- "YW1wbGVyGCIgASgLMicubGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1wbGVy",
- "UmVzcG9uc2VIABJHChNmbHVzaF9zb3hfcmVzYW1wbGVyGCMgASgLMigubGl2",
- "ZWtpdC5wcm90by5GbHVzaFNveFJlc2FtcGxlclJlc3BvbnNlSAASQwoRc2Vu",
- "ZF9jaGF0X21lc3NhZ2UYJCABKAsyJi5saXZla2l0LnByb3RvLlNlbmRDaGF0",
- "TWVzc2FnZVJlc3BvbnNlSAASOAoLcGVyZm9ybV9ycGMYJSABKAsyIS5saXZl",
- "a2l0LnByb3RvLlBlcmZvcm1ScGNSZXNwb25zZUgAEkcKE3JlZ2lzdGVyX3Jw",
- "Y19tZXRob2QYJiABKAsyKC5saXZla2l0LnByb3RvLlJlZ2lzdGVyUnBjTWV0",
- "aG9kUmVzcG9uc2VIABJLChV1bnJlZ2lzdGVyX3JwY19tZXRob2QYJyABKAsy",
- "Ki5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNNZXRob2RSZXNwb25zZUgA",
- "ElwKHnJwY19tZXRob2RfaW52b2NhdGlvbl9yZXNwb25zZRgoIAEoCzIyLmxp",
- "dmVraXQucHJvdG8uUnBjTWV0aG9kSW52b2NhdGlvblJlc3BvbnNlUmVzcG9u",
- "c2VIABJeCh9lbmFibGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uGCkgASgL",
- "MjMubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVUcmFja1B1YmxpY2F0aW9u",
- "UmVzcG9uc2VIABJxCil1cGRhdGVfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9u",
- "X2RpbWVuc2lvbhgqIAEoCzI8LmxpdmVraXQucHJvdG8uVXBkYXRlUmVtb3Rl",
- "VHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlc3BvbnNlSAASRQoSc2VuZF9z",
- "dHJlYW1faGVhZGVyGCsgASgLMicubGl2ZWtpdC5wcm90by5TZW5kU3RyZWFt",
- "SGVhZGVyUmVzcG9uc2VIABJDChFzZW5kX3N0cmVhbV9jaHVuaxgsIAEoCzIm",
- "LmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUNodW5rUmVzcG9uc2VIABJHChNz",
- "ZW5kX3N0cmVhbV90cmFpbGVyGC0gASgLMigubGl2ZWtpdC5wcm90by5TZW5k",
- "U3RyZWFtVHJhaWxlclJlc3BvbnNlSAASeQouc2V0X2RhdGFfY2hhbm5lbF9i",
- "dWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBguIAEoCzI/LmxpdmVraXQu",
- "cHJvdG8uU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFtb3VudExvd1RocmVzaG9s",
- "ZFJlc3BvbnNlSAASUAoYbG9hZF9hdWRpb19maWx0ZXJfcGx1Z2luGDAgASgL",
- "MiwubGl2ZWtpdC5wcm90by5Mb2FkQXVkaW9GaWx0ZXJQbHVnaW5SZXNwb25z",
- "ZUgAEjAKB25ld19hcG0YMSABKAsyHS5saXZla2l0LnByb3RvLk5ld0FwbVJl",
- "c3BvbnNlSAASRQoSYXBtX3Byb2Nlc3Nfc3RyZWFtGDIgASgLMicubGl2ZWtp",
- "dC5wcm90by5BcG1Qcm9jZXNzU3RyZWFtUmVzcG9uc2VIABJUChphcG1fcHJv",
- "Y2Vzc19yZXZlcnNlX3N0cmVhbRgzIAEoCzIuLmxpdmVraXQucHJvdG8uQXBt",
- "UHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZUgAEkgKFGFwbV9zZXRfc3Ry",
- "ZWFtX2RlbGF5GDQgASgLMigubGl2ZWtpdC5wcm90by5BcG1TZXRTdHJlYW1E",
- "ZWxheVJlc3BvbnNlSAASVwoVYnl0ZV9yZWFkX2luY3JlbWVudGFsGDUgASgL",
- "MjYubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEluY3JlbWVu",
- "dGFsUmVzcG9uc2VIABJHCg1ieXRlX3JlYWRfYWxsGDYgASgLMi4ubGl2ZWtp",
- "dC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFsbFJlc3BvbnNlSAASUAoS",
- "Ynl0ZV93cml0ZV90b19maWxlGDcgASgLMjIubGl2ZWtpdC5wcm90by5CeXRl",
- "U3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXNwb25zZUgAElcKFXRleHRfcmVh",
- "ZF9pbmNyZW1lbnRhbBg4IAEoCzI2LmxpdmVraXQucHJvdG8uVGV4dFN0cmVh",
- "bVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNlSAASRwoNdGV4dF9yZWFk",
- "X2FsbBg5IAEoCzIuLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRlclJl",
- "YWRBbGxSZXNwb25zZUgAEjoKCXNlbmRfZmlsZRg6IAEoCzIlLmxpdmVraXQu",
- "cHJvdG8uU3RyZWFtU2VuZEZpbGVSZXNwb25zZUgAEjoKCXNlbmRfdGV4dBg7",
- "IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZFRleHRSZXNwb25zZUgA",
- "EkEKEGJ5dGVfc3RyZWFtX29wZW4YPCABKAsyJS5saXZla2l0LnByb3RvLkJ5",
- "dGVTdHJlYW1PcGVuUmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV93cml0ZRg9",
- "IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRlUmVz",
- "cG9uc2VIABJJChFieXRlX3N0cmVhbV9jbG9zZRg+IAEoCzIsLmxpdmVraXQu",
- "cHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVzcG9uc2VIABJBChB0ZXh0",
- "X3N0cmVhbV9vcGVuGD8gASgLMiUubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFt",
- "T3BlblJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1fd3JpdGUYQCABKAsyLC5s",
- "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZVJlc3BvbnNlSAAS",
- "SQoRdGV4dF9zdHJlYW1fY2xvc2UYQSABKAsyLC5saXZla2l0LnByb3RvLlRl",
- "eHRTdHJlYW1Xcml0ZXJDbG9zZVJlc3BvbnNlSAASPAoKc2VuZF9ieXRlcxhC",
- "IAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEJ5dGVzUmVzcG9uc2VI",
- "ABJnCiRzZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uX3F1YWxpdHkYQyAB",
- "KAsyNy5saXZla2l0LnByb3RvLlNldFJlbW90ZVRyYWNrUHVibGljYXRpb25R",
- "dWFsaXR5UmVzcG9uc2VIAEIJCgdtZXNzYWdlIoUVCghGZmlFdmVudBIuCgpy",
- "b29tX2V2ZW50GAEgASgLMhgubGl2ZWtpdC5wcm90by5Sb29tRXZlbnRIABIw",
- "Cgt0cmFja19ldmVudBgCIAEoCzIZLmxpdmVraXQucHJvdG8uVHJhY2tFdmVu",
- "dEgAEj0KEnZpZGVvX3N0cmVhbV9ldmVudBgDIAEoCzIfLmxpdmVraXQucHJv",
- "dG8uVmlkZW9TdHJlYW1FdmVudEgAEj0KEmF1ZGlvX3N0cmVhbV9ldmVudBgE",
- "IAEoCzIfLmxpdmVraXQucHJvdG8uQXVkaW9TdHJlYW1FdmVudEgAEjEKB2Nv",
- "bm5lY3QYBSABKAsyHi5saXZla2l0LnByb3RvLkNvbm5lY3RDYWxsYmFja0gA",
- "EjcKCmRpc2Nvbm5lY3QYByABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5l",
- "Y3RDYWxsYmFja0gAEjEKB2Rpc3Bvc2UYCCABKAsyHi5saXZla2l0LnByb3Rv",
- "LkRpc3Bvc2VDYWxsYmFja0gAEjwKDXB1Ymxpc2hfdHJhY2sYCSABKAsyIy5s",
- "aXZla2l0LnByb3RvLlB1Ymxpc2hUcmFja0NhbGxiYWNrSAASQAoPdW5wdWJs",
- "aXNoX3RyYWNrGAogASgLMiUubGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFj",
- "a0NhbGxiYWNrSAASOgoMcHVibGlzaF9kYXRhGAsgASgLMiIubGl2ZWtpdC5w",
- "cm90by5QdWJsaXNoRGF0YUNhbGxiYWNrSAASTAoVcHVibGlzaF90cmFuc2Ny",
- "aXB0aW9uGAwgASgLMisubGl2ZWtpdC5wcm90by5QdWJsaXNoVHJhbnNjcmlw",
- "dGlvbkNhbGxiYWNrSAASRwoTY2FwdHVyZV9hdWRpb19mcmFtZRgNIAEoCzIo",
- "LmxpdmVraXQucHJvdG8uQ2FwdHVyZUF1ZGlvRnJhbWVDYWxsYmFja0gAEkUK",
- "EnNldF9sb2NhbF9tZXRhZGF0YRgOIAEoCzInLmxpdmVraXQucHJvdG8uU2V0",
- "TG9jYWxNZXRhZGF0YUNhbGxiYWNrSAASPQoOc2V0X2xvY2FsX25hbWUYDyAB",
- "KAsyIy5saXZla2l0LnByb3RvLlNldExvY2FsTmFtZUNhbGxiYWNrSAASSQoU",
- "c2V0X2xvY2FsX2F0dHJpYnV0ZXMYECABKAsyKS5saXZla2l0LnByb3RvLlNl",
- "dExvY2FsQXR0cmlidXRlc0NhbGxiYWNrSAASNAoJZ2V0X3N0YXRzGBEgASgL",
- "Mh8ubGl2ZWtpdC5wcm90by5HZXRTdGF0c0NhbGxiYWNrSAASJwoEbG9ncxgS",
- "IAEoCzIXLmxpdmVraXQucHJvdG8uTG9nQmF0Y2hIABJDChFnZXRfc2Vzc2lv",
- "bl9zdGF0cxgTIAEoCzImLmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0YXRz",
- "Q2FsbGJhY2tIABIlCgVwYW5pYxgUIAEoCzIULmxpdmVraXQucHJvdG8uUGFu",
- "aWNIABJBChBwdWJsaXNoX3NpcF9kdG1mGBUgASgLMiUubGl2ZWtpdC5wcm90",
- "by5QdWJsaXNoU2lwRHRtZkNhbGxiYWNrSAASPgoMY2hhdF9tZXNzYWdlGBYg",
- "ASgLMiYubGl2ZWtpdC5wcm90by5TZW5kQ2hhdE1lc3NhZ2VDYWxsYmFja0gA",
- "EjgKC3BlcmZvcm1fcnBjGBcgASgLMiEubGl2ZWtpdC5wcm90by5QZXJmb3Jt",
- "UnBjQ2FsbGJhY2tIABJIChVycGNfbWV0aG9kX2ludm9jYXRpb24YGCABKAsy",
- "Jy5saXZla2l0LnByb3RvLlJwY01ldGhvZEludm9jYXRpb25FdmVudEgAEkUK",
- "EnNlbmRfc3RyZWFtX2hlYWRlchgZIAEoCzInLmxpdmVraXQucHJvdG8uU2Vu",
- "ZFN0cmVhbUhlYWRlckNhbGxiYWNrSAASQwoRc2VuZF9zdHJlYW1fY2h1bmsY",
- "GiABKAsyJi5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVua0NhbGxiYWNr",
- "SAASRwoTc2VuZF9zdHJlYW1fdHJhaWxlchgbIAEoCzIoLmxpdmVraXQucHJv",
- "dG8uU2VuZFN0cmVhbVRyYWlsZXJDYWxsYmFja0gAEkgKGGJ5dGVfc3RyZWFt",
- "X3JlYWRlcl9ldmVudBgcIAEoCzIkLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVh",
- "bVJlYWRlckV2ZW50SAASVQobYnl0ZV9zdHJlYW1fcmVhZGVyX3JlYWRfYWxs",
- "GB0gASgLMi4ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFs",
- "bENhbGxiYWNrSAASXgogYnl0ZV9zdHJlYW1fcmVhZGVyX3dyaXRlX3RvX2Zp",
- "bGUYHiABKAsyMi5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJXcml0",
- "ZVRvRmlsZUNhbGxiYWNrSAASQQoQYnl0ZV9zdHJlYW1fb3BlbhgfIAEoCzIl",
- "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbU9wZW5DYWxsYmFja0gAElAKGGJ5",
- "dGVfc3RyZWFtX3dyaXRlcl93cml0ZRggIAEoCzIsLmxpdmVraXQucHJvdG8u",
- "Qnl0ZVN0cmVhbVdyaXRlcldyaXRlQ2FsbGJhY2tIABJQChhieXRlX3N0cmVh",
- "bV93cml0ZXJfY2xvc2UYISABKAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJl",
- "YW1Xcml0ZXJDbG9zZUNhbGxiYWNrSAASOgoJc2VuZF9maWxlGCIgASgLMiUu",
- "bGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kRmlsZUNhbGxiYWNrSAASSAoYdGV4",
- "dF9zdHJlYW1fcmVhZGVyX2V2ZW50GCMgASgLMiQubGl2ZWtpdC5wcm90by5U",
- "ZXh0U3RyZWFtUmVhZGVyRXZlbnRIABJVCht0ZXh0X3N0cmVhbV9yZWFkZXJf",
- "cmVhZF9hbGwYJCABKAsyLi5saXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFk",
- "ZXJSZWFkQWxsQ2FsbGJhY2tIABJBChB0ZXh0X3N0cmVhbV9vcGVuGCUgASgL",
- "MiUubGl2ZWtpdC5wcm90by5UZXh0U3RyZWFtT3BlbkNhbGxiYWNrSAASUAoY",
- "dGV4dF9zdHJlYW1fd3JpdGVyX3dyaXRlGCYgASgLMiwubGl2ZWtpdC5wcm90",
- "by5UZXh0U3RyZWFtV3JpdGVyV3JpdGVDYWxsYmFja0gAElAKGHRleHRfc3Ry",
- "ZWFtX3dyaXRlcl9jbG9zZRgnIAEoCzIsLmxpdmVraXQucHJvdG8uVGV4dFN0",
- "cmVhbVdyaXRlckNsb3NlQ2FsbGJhY2tIABI6CglzZW5kX3RleHQYKCABKAsy",
- "JS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRUZXh0Q2FsbGJhY2tIABI8Cgpz",
- "ZW5kX2J5dGVzGCkgASgLMiYubGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kQnl0",
- "ZXNDYWxsYmFja0gAQgkKB21lc3NhZ2UiHwoORGlzcG9zZVJlcXVlc3QSDQoF",
- "YXN5bmMYASACKAgiIwoPRGlzcG9zZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEg",
- "ASgEIiMKD0Rpc3Bvc2VDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBCKFAQoJ",
- "TG9nUmVjb3JkEiYKBWxldmVsGAEgAigOMhcubGl2ZWtpdC5wcm90by5Mb2dM",
- "ZXZlbBIOCgZ0YXJnZXQYAiACKAkSEwoLbW9kdWxlX3BhdGgYAyABKAkSDAoE",
- "ZmlsZRgEIAEoCRIMCgRsaW5lGAUgASgNEg8KB21lc3NhZ2UYBiACKAkiNQoI",
- "TG9nQmF0Y2gSKQoHcmVjb3JkcxgBIAMoCzIYLmxpdmVraXQucHJvdG8uTG9n",
- "UmVjb3JkIhgKBVBhbmljEg8KB21lc3NhZ2UYASACKAkqUwoITG9nTGV2ZWwS",
- "DQoJTE9HX0VSUk9SEAASDAoITE9HX1dBUk4QARIMCghMT0dfSU5GTxACEg0K",
- "CUxPR19ERUJVRxADEg0KCUxPR19UUkFDRRAEQhCqAg1MaXZlS2l0LlByb3Rv"));
+ "dG8aEWRhdGFfc3RyZWFtLnByb3RvGhBkYXRhX3RyYWNrLnByb3RvIqwqCgpG",
+ "ZmlSZXF1ZXN0EjAKB2Rpc3Bvc2UYAiABKAsyHS5saXZla2l0LnByb3RvLkRp",
+ "c3Bvc2VSZXF1ZXN0SAASMAoHY29ubmVjdBgDIAEoCzIdLmxpdmVraXQucHJv",
+ "dG8uQ29ubmVjdFJlcXVlc3RIABI2CgpkaXNjb25uZWN0GAQgASgLMiAubGl2",
+ "ZWtpdC5wcm90by5EaXNjb25uZWN0UmVxdWVzdEgAEjsKDXB1Ymxpc2hfdHJh",
+ "Y2sYBSABKAsyIi5saXZla2l0LnByb3RvLlB1Ymxpc2hUcmFja1JlcXVlc3RI",
+ "ABI/Cg91bnB1Ymxpc2hfdHJhY2sYBiABKAsyJC5saXZla2l0LnByb3RvLlVu",
+ "cHVibGlzaFRyYWNrUmVxdWVzdEgAEjkKDHB1Ymxpc2hfZGF0YRgHIAEoCzIh",
+ "LmxpdmVraXQucHJvdG8uUHVibGlzaERhdGFSZXF1ZXN0SAASPQoOc2V0X3N1",
+ "YnNjcmliZWQYCCABKAsyIy5saXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRS",
+ "ZXF1ZXN0SAASRAoSc2V0X2xvY2FsX21ldGFkYXRhGAkgASgLMiYubGl2ZWtp",
+ "dC5wcm90by5TZXRMb2NhbE1ldGFkYXRhUmVxdWVzdEgAEjwKDnNldF9sb2Nh",
+ "bF9uYW1lGAogASgLMiIubGl2ZWtpdC5wcm90by5TZXRMb2NhbE5hbWVSZXF1",
+ "ZXN0SAASSAoUc2V0X2xvY2FsX2F0dHJpYnV0ZXMYCyABKAsyKC5saXZla2l0",
+ "LnByb3RvLlNldExvY2FsQXR0cmlidXRlc1JlcXVlc3RIABJCChFnZXRfc2Vz",
+ "c2lvbl9zdGF0cxgMIAEoCzIlLmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0",
+ "YXRzUmVxdWVzdEgAEksKFXB1Ymxpc2hfdHJhbnNjcmlwdGlvbhgNIAEoCzIq",
+ "LmxpdmVraXQucHJvdG8uUHVibGlzaFRyYW5zY3JpcHRpb25SZXF1ZXN0SAAS",
+ "QAoQcHVibGlzaF9zaXBfZHRtZhgOIAEoCzIkLmxpdmVraXQucHJvdG8uUHVi",
+ "bGlzaFNpcER0bWZSZXF1ZXN0SAASRAoSY3JlYXRlX3ZpZGVvX3RyYWNrGA8g",
+ "ASgLMiYubGl2ZWtpdC5wcm90by5DcmVhdGVWaWRlb1RyYWNrUmVxdWVzdEgA",
+ "EkQKEmNyZWF0ZV9hdWRpb190cmFjaxgQIAEoCzImLmxpdmVraXQucHJvdG8u",
+ "Q3JlYXRlQXVkaW9UcmFja1JlcXVlc3RIABJAChBsb2NhbF90cmFja19tdXRl",
+ "GBEgASgLMiQubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrTXV0ZVJlcXVlc3RI",
+ "ABJGChNlbmFibGVfcmVtb3RlX3RyYWNrGBIgASgLMicubGl2ZWtpdC5wcm90",
+ "by5FbmFibGVSZW1vdGVUcmFja1JlcXVlc3RIABIzCglnZXRfc3RhdHMYEyAB",
+ "KAsyHi5saXZla2l0LnByb3RvLkdldFN0YXRzUmVxdWVzdEgAEmMKInNldF90",
+ "cmFja19zdWJzY3JpcHRpb25fcGVybWlzc2lvbnMYMCABKAsyNS5saXZla2l0",
+ "LnByb3RvLlNldFRyYWNrU3Vic2NyaXB0aW9uUGVybWlzc2lvbnNSZXF1ZXN0",
+ "SAASQAoQbmV3X3ZpZGVvX3N0cmVhbRgUIAEoCzIkLmxpdmVraXQucHJvdG8u",
+ "TmV3VmlkZW9TdHJlYW1SZXF1ZXN0SAASQAoQbmV3X3ZpZGVvX3NvdXJjZRgV",
+ "IAEoCzIkLmxpdmVraXQucHJvdG8uTmV3VmlkZW9Tb3VyY2VSZXF1ZXN0SAAS",
+ "RgoTY2FwdHVyZV92aWRlb19mcmFtZRgWIAEoCzInLmxpdmVraXQucHJvdG8u",
+ "Q2FwdHVyZVZpZGVvRnJhbWVSZXF1ZXN0SAASOwoNdmlkZW9fY29udmVydBgX",
+ "IAEoCzIiLmxpdmVraXQucHJvdG8uVmlkZW9Db252ZXJ0UmVxdWVzdEgAElkK",
+ "HXZpZGVvX3N0cmVhbV9mcm9tX3BhcnRpY2lwYW50GBggASgLMjAubGl2ZWtp",
+ "dC5wcm90by5WaWRlb1N0cmVhbUZyb21QYXJ0aWNpcGFudFJlcXVlc3RIABJA",
+ "ChBuZXdfYXVkaW9fc3RyZWFtGBkgASgLMiQubGl2ZWtpdC5wcm90by5OZXdB",
+ "dWRpb1N0cmVhbVJlcXVlc3RIABJAChBuZXdfYXVkaW9fc291cmNlGBogASgL",
+ "MiQubGl2ZWtpdC5wcm90by5OZXdBdWRpb1NvdXJjZVJlcXVlc3RIABJGChNj",
+ "YXB0dXJlX2F1ZGlvX2ZyYW1lGBsgASgLMicubGl2ZWtpdC5wcm90by5DYXB0",
+ "dXJlQXVkaW9GcmFtZVJlcXVlc3RIABJEChJjbGVhcl9hdWRpb19idWZmZXIY",
+ "HCABKAsyJi5saXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJSZXF1ZXN0",
+ "SAASRgoTbmV3X2F1ZGlvX3Jlc2FtcGxlchgdIAEoCzInLmxpdmVraXQucHJv",
+ "dG8uTmV3QXVkaW9SZXNhbXBsZXJSZXF1ZXN0SAASRAoScmVtaXhfYW5kX3Jl",
+ "c2FtcGxlGB4gASgLMiYubGl2ZWtpdC5wcm90by5SZW1peEFuZFJlc2FtcGxl",
+ "UmVxdWVzdEgAEioKBGUyZWUYHyABKAsyGi5saXZla2l0LnByb3RvLkUyZWVS",
+ "ZXF1ZXN0SAASWQodYXVkaW9fc3RyZWFtX2Zyb21fcGFydGljaXBhbnQYICAB",
+ "KAsyMC5saXZla2l0LnByb3RvLkF1ZGlvU3RyZWFtRnJvbVBhcnRpY2lwYW50",
+ "UmVxdWVzdEgAEkIKEW5ld19zb3hfcmVzYW1wbGVyGCEgASgLMiUubGl2ZWtp",
+ "dC5wcm90by5OZXdTb3hSZXNhbXBsZXJSZXF1ZXN0SAASRAoScHVzaF9zb3hf",
+ "cmVzYW1wbGVyGCIgASgLMiYubGl2ZWtpdC5wcm90by5QdXNoU294UmVzYW1w",
+ "bGVyUmVxdWVzdEgAEkYKE2ZsdXNoX3NveF9yZXNhbXBsZXIYIyABKAsyJy5s",
+ "aXZla2l0LnByb3RvLkZsdXNoU294UmVzYW1wbGVyUmVxdWVzdEgAEkIKEXNl",
+ "bmRfY2hhdF9tZXNzYWdlGCQgASgLMiUubGl2ZWtpdC5wcm90by5TZW5kQ2hh",
+ "dE1lc3NhZ2VSZXF1ZXN0SAASQgoRZWRpdF9jaGF0X21lc3NhZ2UYJSABKAsy",
+ "JS5saXZla2l0LnByb3RvLkVkaXRDaGF0TWVzc2FnZVJlcXVlc3RIABI3Cgtw",
+ "ZXJmb3JtX3JwYxgmIAEoCzIgLmxpdmVraXQucHJvdG8uUGVyZm9ybVJwY1Jl",
+ "cXVlc3RIABJGChNyZWdpc3Rlcl9ycGNfbWV0aG9kGCcgASgLMicubGl2ZWtp",
+ "dC5wcm90by5SZWdpc3RlclJwY01ldGhvZFJlcXVlc3RIABJKChV1bnJlZ2lz",
+ "dGVyX3JwY19tZXRob2QYKCABKAsyKS5saXZla2l0LnByb3RvLlVucmVnaXN0",
+ "ZXJScGNNZXRob2RSZXF1ZXN0SAASWwoecnBjX21ldGhvZF9pbnZvY2F0aW9u",
+ "X3Jlc3BvbnNlGCkgASgLMjEubGl2ZWtpdC5wcm90by5ScGNNZXRob2RJbnZv",
+ "Y2F0aW9uUmVzcG9uc2VSZXF1ZXN0SAASXQofZW5hYmxlX3JlbW90ZV90cmFj",
+ "a19wdWJsaWNhdGlvbhgqIAEoCzIyLmxpdmVraXQucHJvdG8uRW5hYmxlUmVt",
+ "b3RlVHJhY2tQdWJsaWNhdGlvblJlcXVlc3RIABJwCil1cGRhdGVfcmVtb3Rl",
+ "X3RyYWNrX3B1YmxpY2F0aW9uX2RpbWVuc2lvbhgrIAEoCzI7LmxpdmVraXQu",
+ "cHJvdG8uVXBkYXRlUmVtb3RlVHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJl",
+ "cXVlc3RIABJEChJzZW5kX3N0cmVhbV9oZWFkZXIYLCABKAsyJi5saXZla2l0",
+ "LnByb3RvLlNlbmRTdHJlYW1IZWFkZXJSZXF1ZXN0SAASQgoRc2VuZF9zdHJl",
+ "YW1fY2h1bmsYLSABKAsyJS5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1DaHVu",
+ "a1JlcXVlc3RIABJGChNzZW5kX3N0cmVhbV90cmFpbGVyGC4gASgLMicubGl2",
+ "ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlclJlcXVlc3RIABJ4Ci5zZXRf",
+ "ZGF0YV9jaGFubmVsX2J1ZmZlcmVkX2Ftb3VudF9sb3dfdGhyZXNob2xkGC8g",
+ "ASgLMj4ubGl2ZWtpdC5wcm90by5TZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1v",
+ "dW50TG93VGhyZXNob2xkUmVxdWVzdEgAEk8KGGxvYWRfYXVkaW9fZmlsdGVy",
+ "X3BsdWdpbhgxIAEoCzIrLmxpdmVraXQucHJvdG8uTG9hZEF1ZGlvRmlsdGVy",
+ "UGx1Z2luUmVxdWVzdEgAEi8KB25ld19hcG0YMiABKAsyHC5saXZla2l0LnBy",
+ "b3RvLk5ld0FwbVJlcXVlc3RIABJEChJhcG1fcHJvY2Vzc19zdHJlYW0YMyAB",
+ "KAsyJi5saXZla2l0LnByb3RvLkFwbVByb2Nlc3NTdHJlYW1SZXF1ZXN0SAAS",
+ "UwoaYXBtX3Byb2Nlc3NfcmV2ZXJzZV9zdHJlYW0YNCABKAsyLS5saXZla2l0",
+ "LnByb3RvLkFwbVByb2Nlc3NSZXZlcnNlU3RyZWFtUmVxdWVzdEgAEkcKFGFw",
+ "bV9zZXRfc3RyZWFtX2RlbGF5GDUgASgLMicubGl2ZWtpdC5wcm90by5BcG1T",
+ "ZXRTdHJlYW1EZWxheVJlcXVlc3RIABJWChVieXRlX3JlYWRfaW5jcmVtZW50",
+ "YWwYNiABKAsyNS5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJSZWFk",
+ "SW5jcmVtZW50YWxSZXF1ZXN0SAASRgoNYnl0ZV9yZWFkX2FsbBg3IAEoCzIt",
+ "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVJlYWRlclJlYWRBbGxSZXF1ZXN0",
+ "SAASTwoSYnl0ZV93cml0ZV90b19maWxlGDggASgLMjEubGl2ZWtpdC5wcm90",
+ "by5CeXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXF1ZXN0SAASVgoVdGV4",
+ "dF9yZWFkX2luY3JlbWVudGFsGDkgASgLMjUubGl2ZWtpdC5wcm90by5UZXh0",
+ "U3RyZWFtUmVhZGVyUmVhZEluY3JlbWVudGFsUmVxdWVzdEgAEkYKDXRleHRf",
+ "cmVhZF9hbGwYOiABKAsyLS5saXZla2l0LnByb3RvLlRleHRTdHJlYW1SZWFk",
+ "ZXJSZWFkQWxsUmVxdWVzdEgAEjkKCXNlbmRfZmlsZRg7IAEoCzIkLmxpdmVr",
+ "aXQucHJvdG8uU3RyZWFtU2VuZEZpbGVSZXF1ZXN0SAASOQoJc2VuZF90ZXh0",
+ "GDwgASgLMiQubGl2ZWtpdC5wcm90by5TdHJlYW1TZW5kVGV4dFJlcXVlc3RI",
+ "ABJAChBieXRlX3N0cmVhbV9vcGVuGD0gASgLMiQubGl2ZWtpdC5wcm90by5C",
+ "eXRlU3RyZWFtT3BlblJlcXVlc3RIABJIChFieXRlX3N0cmVhbV93cml0ZRg+",
+ "IAEoCzIrLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlcldyaXRlUmVx",
+ "dWVzdEgAEkgKEWJ5dGVfc3RyZWFtX2Nsb3NlGD8gASgLMisubGl2ZWtpdC5w",
+ "cm90by5CeXRlU3RyZWFtV3JpdGVyQ2xvc2VSZXF1ZXN0SAASQAoQdGV4dF9z",
+ "dHJlYW1fb3BlbhhAIAEoCzIkLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9w",
+ "ZW5SZXF1ZXN0SAASSAoRdGV4dF9zdHJlYW1fd3JpdGUYQSABKAsyKy5saXZl",
+ "a2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJXcml0ZVJlcXVlc3RIABJIChF0",
+ "ZXh0X3N0cmVhbV9jbG9zZRhCIAEoCzIrLmxpdmVraXQucHJvdG8uVGV4dFN0",
+ "cmVhbVdyaXRlckNsb3NlUmVxdWVzdEgAEjsKCnNlbmRfYnl0ZXMYQyABKAsy",
+ "JS5saXZla2l0LnByb3RvLlN0cmVhbVNlbmRCeXRlc1JlcXVlc3RIABJmCiRz",
+ "ZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0aW9uX3F1YWxpdHkYRCABKAsyNi5s",
+ "aXZla2l0LnByb3RvLlNldFJlbW90ZVRyYWNrUHVibGljYXRpb25RdWFsaXR5",
+ "UmVxdWVzdEgAEkQKEnB1Ymxpc2hfZGF0YV90cmFjaxhFIAEoCzImLmxpdmVr",
+ "aXQucHJvdG8uUHVibGlzaERhdGFUcmFja1JlcXVlc3RIABJQChlsb2NhbF9k",
+ "YXRhX3RyYWNrX3RyeV9wdXNoGEYgASgLMisubGl2ZWtpdC5wcm90by5Mb2Nh",
+ "bERhdGFUcmFja1RyeVB1c2hSZXF1ZXN0SAASUwoabG9jYWxfZGF0YV90cmFj",
+ "a191bnB1Ymxpc2gYRyABKAsyLS5saXZla2l0LnByb3RvLkxvY2FsRGF0YVRy",
+ "YWNrVW5wdWJsaXNoUmVxdWVzdEgAElgKHWxvY2FsX2RhdGFfdHJhY2tfaXNf",
+ "cHVibGlzaGVkGEggASgLMi8ubGl2ZWtpdC5wcm90by5Mb2NhbERhdGFUcmFj",
+ "a0lzUHVibGlzaGVkUmVxdWVzdEgAEkgKFHN1YnNjcmliZV9kYXRhX3RyYWNr",
+ "GEkgASgLMigubGl2ZWtpdC5wcm90by5TdWJzY3JpYmVEYXRhVHJhY2tSZXF1",
+ "ZXN0SAASWgoecmVtb3RlX2RhdGFfdHJhY2tfaXNfcHVibGlzaGVkGEogASgL",
+ "MjAubGl2ZWtpdC5wcm90by5SZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJl",
+ "cXVlc3RIABJXChxkYXRhX3RyYWNrX3N1YnNjcmlwdGlvbl9yZWFkGEsgASgL",
+ "Mi8ubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRpb25SZWFkUmVx",
+ "dWVzdEgAQgkKB21lc3NhZ2UisioKC0ZmaVJlc3BvbnNlEjEKB2Rpc3Bvc2UY",
+ "AiABKAsyHi5saXZla2l0LnByb3RvLkRpc3Bvc2VSZXNwb25zZUgAEjEKB2Nv",
+ "bm5lY3QYAyABKAsyHi5saXZla2l0LnByb3RvLkNvbm5lY3RSZXNwb25zZUgA",
+ "EjcKCmRpc2Nvbm5lY3QYBCABKAsyIS5saXZla2l0LnByb3RvLkRpc2Nvbm5l",
+ "Y3RSZXNwb25zZUgAEjwKDXB1Ymxpc2hfdHJhY2sYBSABKAsyIy5saXZla2l0",
+ "LnByb3RvLlB1Ymxpc2hUcmFja1Jlc3BvbnNlSAASQAoPdW5wdWJsaXNoX3Ry",
+ "YWNrGAYgASgLMiUubGl2ZWtpdC5wcm90by5VbnB1Ymxpc2hUcmFja1Jlc3Bv",
+ "bnNlSAASOgoMcHVibGlzaF9kYXRhGAcgASgLMiIubGl2ZWtpdC5wcm90by5Q",
+ "dWJsaXNoRGF0YVJlc3BvbnNlSAASPgoOc2V0X3N1YnNjcmliZWQYCCABKAsy",
+ "JC5saXZla2l0LnByb3RvLlNldFN1YnNjcmliZWRSZXNwb25zZUgAEkUKEnNl",
+ "dF9sb2NhbF9tZXRhZGF0YRgJIAEoCzInLmxpdmVraXQucHJvdG8uU2V0TG9j",
+ "YWxNZXRhZGF0YVJlc3BvbnNlSAASPQoOc2V0X2xvY2FsX25hbWUYCiABKAsy",
+ "Iy5saXZla2l0LnByb3RvLlNldExvY2FsTmFtZVJlc3BvbnNlSAASSQoUc2V0",
+ "X2xvY2FsX2F0dHJpYnV0ZXMYCyABKAsyKS5saXZla2l0LnByb3RvLlNldExv",
+ "Y2FsQXR0cmlidXRlc1Jlc3BvbnNlSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMY",
+ "DCABKAsyJi5saXZla2l0LnByb3RvLkdldFNlc3Npb25TdGF0c1Jlc3BvbnNl",
+ "SAASTAoVcHVibGlzaF90cmFuc2NyaXB0aW9uGA0gASgLMisubGl2ZWtpdC5w",
+ "cm90by5QdWJsaXNoVHJhbnNjcmlwdGlvblJlc3BvbnNlSAASQQoQcHVibGlz",
+ "aF9zaXBfZHRtZhgOIAEoCzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0",
+ "bWZSZXNwb25zZUgAEkUKEmNyZWF0ZV92aWRlb190cmFjaxgPIAEoCzInLmxp",
+ "dmVraXQucHJvdG8uQ3JlYXRlVmlkZW9UcmFja1Jlc3BvbnNlSAASRQoSY3Jl",
+ "YXRlX2F1ZGlvX3RyYWNrGBAgASgLMicubGl2ZWtpdC5wcm90by5DcmVhdGVB",
+ "dWRpb1RyYWNrUmVzcG9uc2VIABJBChBsb2NhbF90cmFja19tdXRlGBEgASgL",
+ "MiUubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrTXV0ZVJlc3BvbnNlSAASRwoT",
+ "ZW5hYmxlX3JlbW90ZV90cmFjaxgSIAEoCzIoLmxpdmVraXQucHJvdG8uRW5h",
+ "YmxlUmVtb3RlVHJhY2tSZXNwb25zZUgAEjQKCWdldF9zdGF0cxgTIAEoCzIf",
+ "LmxpdmVraXQucHJvdG8uR2V0U3RhdHNSZXNwb25zZUgAEmQKInNldF90cmFj",
+ "a19zdWJzY3JpcHRpb25fcGVybWlzc2lvbnMYLyABKAsyNi5saXZla2l0LnBy",
+ "b3RvLlNldFRyYWNrU3Vic2NyaXB0aW9uUGVybWlzc2lvbnNSZXNwb25zZUgA",
+ "EkEKEG5ld192aWRlb19zdHJlYW0YFCABKAsyJS5saXZla2l0LnByb3RvLk5l",
+ "d1ZpZGVvU3RyZWFtUmVzcG9uc2VIABJBChBuZXdfdmlkZW9fc291cmNlGBUg",
+ "ASgLMiUubGl2ZWtpdC5wcm90by5OZXdWaWRlb1NvdXJjZVJlc3BvbnNlSAAS",
+ "RwoTY2FwdHVyZV92aWRlb19mcmFtZRgWIAEoCzIoLmxpdmVraXQucHJvdG8u",
+ "Q2FwdHVyZVZpZGVvRnJhbWVSZXNwb25zZUgAEjwKDXZpZGVvX2NvbnZlcnQY",
+ "FyABKAsyIy5saXZla2l0LnByb3RvLlZpZGVvQ29udmVydFJlc3BvbnNlSAAS",
+ "WgoddmlkZW9fc3RyZWFtX2Zyb21fcGFydGljaXBhbnQYGCABKAsyMS5saXZl",
+ "a2l0LnByb3RvLlZpZGVvU3RyZWFtRnJvbVBhcnRpY2lwYW50UmVzcG9uc2VI",
+ "ABJBChBuZXdfYXVkaW9fc3RyZWFtGBkgASgLMiUubGl2ZWtpdC5wcm90by5O",
+ "ZXdBdWRpb1N0cmVhbVJlc3BvbnNlSAASQQoQbmV3X2F1ZGlvX3NvdXJjZRga",
+ "IAEoCzIlLmxpdmVraXQucHJvdG8uTmV3QXVkaW9Tb3VyY2VSZXNwb25zZUgA",
+ "EkcKE2NhcHR1cmVfYXVkaW9fZnJhbWUYGyABKAsyKC5saXZla2l0LnByb3Rv",
+ "LkNhcHR1cmVBdWRpb0ZyYW1lUmVzcG9uc2VIABJFChJjbGVhcl9hdWRpb19i",
+ "dWZmZXIYHCABKAsyJy5saXZla2l0LnByb3RvLkNsZWFyQXVkaW9CdWZmZXJS",
+ "ZXNwb25zZUgAEkcKE25ld19hdWRpb19yZXNhbXBsZXIYHSABKAsyKC5saXZl",
+ "a2l0LnByb3RvLk5ld0F1ZGlvUmVzYW1wbGVyUmVzcG9uc2VIABJFChJyZW1p",
+ "eF9hbmRfcmVzYW1wbGUYHiABKAsyJy5saXZla2l0LnByb3RvLlJlbWl4QW5k",
+ "UmVzYW1wbGVSZXNwb25zZUgAEloKHWF1ZGlvX3N0cmVhbV9mcm9tX3BhcnRp",
+ "Y2lwYW50GB8gASgLMjEubGl2ZWtpdC5wcm90by5BdWRpb1N0cmVhbUZyb21Q",
+ "YXJ0aWNpcGFudFJlc3BvbnNlSAASKwoEZTJlZRggIAEoCzIbLmxpdmVraXQu",
+ "cHJvdG8uRTJlZVJlc3BvbnNlSAASQwoRbmV3X3NveF9yZXNhbXBsZXIYISAB",
+ "KAsyJi5saXZla2l0LnByb3RvLk5ld1NveFJlc2FtcGxlclJlc3BvbnNlSAAS",
+ "RQoScHVzaF9zb3hfcmVzYW1wbGVyGCIgASgLMicubGl2ZWtpdC5wcm90by5Q",
+ "dXNoU294UmVzYW1wbGVyUmVzcG9uc2VIABJHChNmbHVzaF9zb3hfcmVzYW1w",
+ "bGVyGCMgASgLMigubGl2ZWtpdC5wcm90by5GbHVzaFNveFJlc2FtcGxlclJl",
+ "c3BvbnNlSAASQwoRc2VuZF9jaGF0X21lc3NhZ2UYJCABKAsyJi5saXZla2l0",
+ "LnByb3RvLlNlbmRDaGF0TWVzc2FnZVJlc3BvbnNlSAASOAoLcGVyZm9ybV9y",
+ "cGMYJSABKAsyIS5saXZla2l0LnByb3RvLlBlcmZvcm1ScGNSZXNwb25zZUgA",
+ "EkcKE3JlZ2lzdGVyX3JwY19tZXRob2QYJiABKAsyKC5saXZla2l0LnByb3Rv",
+ "LlJlZ2lzdGVyUnBjTWV0aG9kUmVzcG9uc2VIABJLChV1bnJlZ2lzdGVyX3Jw",
+ "Y19tZXRob2QYJyABKAsyKi5saXZla2l0LnByb3RvLlVucmVnaXN0ZXJScGNN",
+ "ZXRob2RSZXNwb25zZUgAElwKHnJwY19tZXRob2RfaW52b2NhdGlvbl9yZXNw",
+ "b25zZRgoIAEoCzIyLmxpdmVraXQucHJvdG8uUnBjTWV0aG9kSW52b2NhdGlv",
+ "blJlc3BvbnNlUmVzcG9uc2VIABJeCh9lbmFibGVfcmVtb3RlX3RyYWNrX3B1",
+ "YmxpY2F0aW9uGCkgASgLMjMubGl2ZWtpdC5wcm90by5FbmFibGVSZW1vdGVU",
+ "cmFja1B1YmxpY2F0aW9uUmVzcG9uc2VIABJxCil1cGRhdGVfcmVtb3RlX3Ry",
+ "YWNrX3B1YmxpY2F0aW9uX2RpbWVuc2lvbhgqIAEoCzI8LmxpdmVraXQucHJv",
+ "dG8uVXBkYXRlUmVtb3RlVHJhY2tQdWJsaWNhdGlvbkRpbWVuc2lvblJlc3Bv",
+ "bnNlSAASRQoSc2VuZF9zdHJlYW1faGVhZGVyGCsgASgLMicubGl2ZWtpdC5w",
+ "cm90by5TZW5kU3RyZWFtSGVhZGVyUmVzcG9uc2VIABJDChFzZW5kX3N0cmVh",
+ "bV9jaHVuaxgsIAEoCzImLmxpdmVraXQucHJvdG8uU2VuZFN0cmVhbUNodW5r",
+ "UmVzcG9uc2VIABJHChNzZW5kX3N0cmVhbV90cmFpbGVyGC0gASgLMigubGl2",
+ "ZWtpdC5wcm90by5TZW5kU3RyZWFtVHJhaWxlclJlc3BvbnNlSAASeQouc2V0",
+ "X2RhdGFfY2hhbm5lbF9idWZmZXJlZF9hbW91bnRfbG93X3RocmVzaG9sZBgu",
+ "IAEoCzI/LmxpdmVraXQucHJvdG8uU2V0RGF0YUNoYW5uZWxCdWZmZXJlZEFt",
+ "b3VudExvd1RocmVzaG9sZFJlc3BvbnNlSAASUAoYbG9hZF9hdWRpb19maWx0",
+ "ZXJfcGx1Z2luGDAgASgLMiwubGl2ZWtpdC5wcm90by5Mb2FkQXVkaW9GaWx0",
+ "ZXJQbHVnaW5SZXNwb25zZUgAEjAKB25ld19hcG0YMSABKAsyHS5saXZla2l0",
+ "LnByb3RvLk5ld0FwbVJlc3BvbnNlSAASRQoSYXBtX3Byb2Nlc3Nfc3RyZWFt",
+ "GDIgASgLMicubGl2ZWtpdC5wcm90by5BcG1Qcm9jZXNzU3RyZWFtUmVzcG9u",
+ "c2VIABJUChphcG1fcHJvY2Vzc19yZXZlcnNlX3N0cmVhbRgzIAEoCzIuLmxp",
+ "dmVraXQucHJvdG8uQXBtUHJvY2Vzc1JldmVyc2VTdHJlYW1SZXNwb25zZUgA",
+ "EkgKFGFwbV9zZXRfc3RyZWFtX2RlbGF5GDQgASgLMigubGl2ZWtpdC5wcm90",
+ "by5BcG1TZXRTdHJlYW1EZWxheVJlc3BvbnNlSAASVwoVYnl0ZV9yZWFkX2lu",
+ "Y3JlbWVudGFsGDUgASgLMjYubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVh",
+ "ZGVyUmVhZEluY3JlbWVudGFsUmVzcG9uc2VIABJHCg1ieXRlX3JlYWRfYWxs",
+ "GDYgASgLMi4ubGl2ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyUmVhZEFs",
+ "bFJlc3BvbnNlSAASUAoSYnl0ZV93cml0ZV90b19maWxlGDcgASgLMjIubGl2",
+ "ZWtpdC5wcm90by5CeXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVSZXNwb25z",
+ "ZUgAElcKFXRleHRfcmVhZF9pbmNyZW1lbnRhbBg4IAEoCzI2LmxpdmVraXQu",
+ "cHJvdG8uVGV4dFN0cmVhbVJlYWRlclJlYWRJbmNyZW1lbnRhbFJlc3BvbnNl",
+ "SAASRwoNdGV4dF9yZWFkX2FsbBg5IAEoCzIuLmxpdmVraXQucHJvdG8uVGV4",
+ "dFN0cmVhbVJlYWRlclJlYWRBbGxSZXNwb25zZUgAEjoKCXNlbmRfZmlsZRg6",
+ "IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEZpbGVSZXNwb25zZUgA",
+ "EjoKCXNlbmRfdGV4dBg7IAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu",
+ "ZFRleHRSZXNwb25zZUgAEkEKEGJ5dGVfc3RyZWFtX29wZW4YPCABKAsyJS5s",
+ "aXZla2l0LnByb3RvLkJ5dGVTdHJlYW1PcGVuUmVzcG9uc2VIABJJChFieXRl",
+ "X3N0cmVhbV93cml0ZRg9IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVh",
+ "bVdyaXRlcldyaXRlUmVzcG9uc2VIABJJChFieXRlX3N0cmVhbV9jbG9zZRg+",
+ "IAEoCzIsLmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbVdyaXRlckNsb3NlUmVz",
+ "cG9uc2VIABJBChB0ZXh0X3N0cmVhbV9vcGVuGD8gASgLMiUubGl2ZWtpdC5w",
+ "cm90by5UZXh0U3RyZWFtT3BlblJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1f",
+ "d3JpdGUYQCABKAsyLC5saXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJX",
+ "cml0ZVJlc3BvbnNlSAASSQoRdGV4dF9zdHJlYW1fY2xvc2UYQSABKAsyLC5s",
+ "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJDbG9zZVJlc3BvbnNlSAAS",
+ "PAoKc2VuZF9ieXRlcxhCIAEoCzImLmxpdmVraXQucHJvdG8uU3RyZWFtU2Vu",
+ "ZEJ5dGVzUmVzcG9uc2VIABJnCiRzZXRfcmVtb3RlX3RyYWNrX3B1YmxpY2F0",
+ "aW9uX3F1YWxpdHkYQyABKAsyNy5saXZla2l0LnByb3RvLlNldFJlbW90ZVRy",
+ "YWNrUHVibGljYXRpb25RdWFsaXR5UmVzcG9uc2VIABJFChJwdWJsaXNoX2Rh",
+ "dGFfdHJhY2sYRCABKAsyJy5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhVHJh",
+ "Y2tSZXNwb25zZUgAElEKGWxvY2FsX2RhdGFfdHJhY2tfdHJ5X3B1c2gYRSAB",
+ "KAsyLC5saXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrVHJ5UHVzaFJlc3Bv",
+ "bnNlSAASVAoabG9jYWxfZGF0YV90cmFja191bnB1Ymxpc2gYRiABKAsyLi5s",
+ "aXZla2l0LnByb3RvLkxvY2FsRGF0YVRyYWNrVW5wdWJsaXNoUmVzcG9uc2VI",
+ "ABJZCh1sb2NhbF9kYXRhX3RyYWNrX2lzX3B1Ymxpc2hlZBhHIAEoCzIwLmxp",
+ "dmVraXQucHJvdG8uTG9jYWxEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNl",
+ "SAASSQoUc3Vic2NyaWJlX2RhdGFfdHJhY2sYSCABKAsyKS5saXZla2l0LnBy",
+ "b3RvLlN1YnNjcmliZURhdGFUcmFja1Jlc3BvbnNlSAASWwoecmVtb3RlX2Rh",
+ "dGFfdHJhY2tfaXNfcHVibGlzaGVkGEkgASgLMjEubGl2ZWtpdC5wcm90by5S",
+ "ZW1vdGVEYXRhVHJhY2tJc1B1Ymxpc2hlZFJlc3BvbnNlSAASWAocZGF0YV90",
+ "cmFja19zdWJzY3JpcHRpb25fcmVhZBhKIAEoCzIwLmxpdmVraXQucHJvdG8u",
+ "RGF0YVRyYWNrU3Vic2NyaXB0aW9uUmVhZFJlc3BvbnNlSABCCQoHbWVzc2Fn",
+ "ZSKgFgoIRmZpRXZlbnQSLgoKcm9vbV9ldmVudBgBIAEoCzIYLmxpdmVraXQu",
+ "cHJvdG8uUm9vbUV2ZW50SAASMAoLdHJhY2tfZXZlbnQYAiABKAsyGS5saXZl",
+ "a2l0LnByb3RvLlRyYWNrRXZlbnRIABI9ChJ2aWRlb19zdHJlYW1fZXZlbnQY",
+ "AyABKAsyHy5saXZla2l0LnByb3RvLlZpZGVvU3RyZWFtRXZlbnRIABI9ChJh",
+ "dWRpb19zdHJlYW1fZXZlbnQYBCABKAsyHy5saXZla2l0LnByb3RvLkF1ZGlv",
+ "U3RyZWFtRXZlbnRIABIxCgdjb25uZWN0GAUgASgLMh4ubGl2ZWtpdC5wcm90",
+ "by5Db25uZWN0Q2FsbGJhY2tIABI3CgpkaXNjb25uZWN0GAcgASgLMiEubGl2",
+ "ZWtpdC5wcm90by5EaXNjb25uZWN0Q2FsbGJhY2tIABIxCgdkaXNwb3NlGAgg",
+ "ASgLMh4ubGl2ZWtpdC5wcm90by5EaXNwb3NlQ2FsbGJhY2tIABI8Cg1wdWJs",
+ "aXNoX3RyYWNrGAkgASgLMiMubGl2ZWtpdC5wcm90by5QdWJsaXNoVHJhY2tD",
+ "YWxsYmFja0gAEkAKD3VucHVibGlzaF90cmFjaxgKIAEoCzIlLmxpdmVraXQu",
+ "cHJvdG8uVW5wdWJsaXNoVHJhY2tDYWxsYmFja0gAEjoKDHB1Ymxpc2hfZGF0",
+ "YRgLIAEoCzIiLmxpdmVraXQucHJvdG8uUHVibGlzaERhdGFDYWxsYmFja0gA",
+ "EkwKFXB1Ymxpc2hfdHJhbnNjcmlwdGlvbhgMIAEoCzIrLmxpdmVraXQucHJv",
+ "dG8uUHVibGlzaFRyYW5zY3JpcHRpb25DYWxsYmFja0gAEkcKE2NhcHR1cmVf",
+ "YXVkaW9fZnJhbWUYDSABKAsyKC5saXZla2l0LnByb3RvLkNhcHR1cmVBdWRp",
+ "b0ZyYW1lQ2FsbGJhY2tIABJFChJzZXRfbG9jYWxfbWV0YWRhdGEYDiABKAsy",
+ "Jy5saXZla2l0LnByb3RvLlNldExvY2FsTWV0YWRhdGFDYWxsYmFja0gAEj0K",
+ "DnNldF9sb2NhbF9uYW1lGA8gASgLMiMubGl2ZWtpdC5wcm90by5TZXRMb2Nh",
+ "bE5hbWVDYWxsYmFja0gAEkkKFHNldF9sb2NhbF9hdHRyaWJ1dGVzGBAgASgL",
+ "MikubGl2ZWtpdC5wcm90by5TZXRMb2NhbEF0dHJpYnV0ZXNDYWxsYmFja0gA",
+ "EjQKCWdldF9zdGF0cxgRIAEoCzIfLmxpdmVraXQucHJvdG8uR2V0U3RhdHND",
+ "YWxsYmFja0gAEicKBGxvZ3MYEiABKAsyFy5saXZla2l0LnByb3RvLkxvZ0Jh",
+ "dGNoSAASQwoRZ2V0X3Nlc3Npb25fc3RhdHMYEyABKAsyJi5saXZla2l0LnBy",
+ "b3RvLkdldFNlc3Npb25TdGF0c0NhbGxiYWNrSAASJQoFcGFuaWMYFCABKAsy",
+ "FC5saXZla2l0LnByb3RvLlBhbmljSAASQQoQcHVibGlzaF9zaXBfZHRtZhgV",
+ "IAEoCzIlLmxpdmVraXQucHJvdG8uUHVibGlzaFNpcER0bWZDYWxsYmFja0gA",
+ "Ej4KDGNoYXRfbWVzc2FnZRgWIAEoCzImLmxpdmVraXQucHJvdG8uU2VuZENo",
+ "YXRNZXNzYWdlQ2FsbGJhY2tIABI4CgtwZXJmb3JtX3JwYxgXIAEoCzIhLmxp",
+ "dmVraXQucHJvdG8uUGVyZm9ybVJwY0NhbGxiYWNrSAASSAoVcnBjX21ldGhv",
+ "ZF9pbnZvY2F0aW9uGBggASgLMicubGl2ZWtpdC5wcm90by5ScGNNZXRob2RJ",
+ "bnZvY2F0aW9uRXZlbnRIABJFChJzZW5kX3N0cmVhbV9oZWFkZXIYGSABKAsy",
+ "Jy5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1IZWFkZXJDYWxsYmFja0gAEkMK",
+ "EXNlbmRfc3RyZWFtX2NodW5rGBogASgLMiYubGl2ZWtpdC5wcm90by5TZW5k",
+ "U3RyZWFtQ2h1bmtDYWxsYmFja0gAEkcKE3NlbmRfc3RyZWFtX3RyYWlsZXIY",
+ "GyABKAsyKC5saXZla2l0LnByb3RvLlNlbmRTdHJlYW1UcmFpbGVyQ2FsbGJh",
+ "Y2tIABJIChhieXRlX3N0cmVhbV9yZWFkZXJfZXZlbnQYHCABKAsyJC5saXZl",
+ "a2l0LnByb3RvLkJ5dGVTdHJlYW1SZWFkZXJFdmVudEgAElUKG2J5dGVfc3Ry",
+ "ZWFtX3JlYWRlcl9yZWFkX2FsbBgdIAEoCzIuLmxpdmVraXQucHJvdG8uQnl0",
+ "ZVN0cmVhbVJlYWRlclJlYWRBbGxDYWxsYmFja0gAEl4KIGJ5dGVfc3RyZWFt",
+ "X3JlYWRlcl93cml0ZV90b19maWxlGB4gASgLMjIubGl2ZWtpdC5wcm90by5C",
+ "eXRlU3RyZWFtUmVhZGVyV3JpdGVUb0ZpbGVDYWxsYmFja0gAEkEKEGJ5dGVf",
+ "c3RyZWFtX29wZW4YHyABKAsyJS5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1P",
+ "cGVuQ2FsbGJhY2tIABJQChhieXRlX3N0cmVhbV93cml0ZXJfd3JpdGUYICAB",
+ "KAsyLC5saXZla2l0LnByb3RvLkJ5dGVTdHJlYW1Xcml0ZXJXcml0ZUNhbGxi",
+ "YWNrSAASUAoYYnl0ZV9zdHJlYW1fd3JpdGVyX2Nsb3NlGCEgASgLMiwubGl2",
+ "ZWtpdC5wcm90by5CeXRlU3RyZWFtV3JpdGVyQ2xvc2VDYWxsYmFja0gAEjoK",
+ "CXNlbmRfZmlsZRgiIAEoCzIlLmxpdmVraXQucHJvdG8uU3RyZWFtU2VuZEZp",
+ "bGVDYWxsYmFja0gAEkgKGHRleHRfc3RyZWFtX3JlYWRlcl9ldmVudBgjIAEo",
+ "CzIkLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVJlYWRlckV2ZW50SAASVQob",
+ "dGV4dF9zdHJlYW1fcmVhZGVyX3JlYWRfYWxsGCQgASgLMi4ubGl2ZWtpdC5w",
+ "cm90by5UZXh0U3RyZWFtUmVhZGVyUmVhZEFsbENhbGxiYWNrSAASQQoQdGV4",
+ "dF9zdHJlYW1fb3BlbhglIAEoCzIlLmxpdmVraXQucHJvdG8uVGV4dFN0cmVh",
+ "bU9wZW5DYWxsYmFja0gAElAKGHRleHRfc3RyZWFtX3dyaXRlcl93cml0ZRgm",
+ "IAEoCzIsLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbVdyaXRlcldyaXRlQ2Fs",
+ "bGJhY2tIABJQChh0ZXh0X3N0cmVhbV93cml0ZXJfY2xvc2UYJyABKAsyLC5s",
+ "aXZla2l0LnByb3RvLlRleHRTdHJlYW1Xcml0ZXJDbG9zZUNhbGxiYWNrSAAS",
+ "OgoJc2VuZF90ZXh0GCggASgLMiUubGl2ZWtpdC5wcm90by5TdHJlYW1TZW5k",
+ "VGV4dENhbGxiYWNrSAASPAoKc2VuZF9ieXRlcxgpIAEoCzImLmxpdmVraXQu",
+ "cHJvdG8uU3RyZWFtU2VuZEJ5dGVzQ2FsbGJhY2tIABJFChJwdWJsaXNoX2Rh",
+ "dGFfdHJhY2sYKiABKAsyJy5saXZla2l0LnByb3RvLlB1Ymxpc2hEYXRhVHJh",
+ "Y2tDYWxsYmFja0gAElIKHWRhdGFfdHJhY2tfc3Vic2NyaXB0aW9uX2V2ZW50",
+ "GCsgASgLMikubGl2ZWtpdC5wcm90by5EYXRhVHJhY2tTdWJzY3JpcHRpb25F",
+ "dmVudEgAQgkKB21lc3NhZ2UiHwoORGlzcG9zZVJlcXVlc3QSDQoFYXN5bmMY",
+ "ASACKAgiIwoPRGlzcG9zZVJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgASgEIiMK",
+ "D0Rpc3Bvc2VDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBCKFAQoJTG9nUmVj",
+ "b3JkEiYKBWxldmVsGAEgAigOMhcubGl2ZWtpdC5wcm90by5Mb2dMZXZlbBIO",
+ "CgZ0YXJnZXQYAiACKAkSEwoLbW9kdWxlX3BhdGgYAyABKAkSDAoEZmlsZRgE",
+ "IAEoCRIMCgRsaW5lGAUgASgNEg8KB21lc3NhZ2UYBiACKAkiNQoITG9nQmF0",
+ "Y2gSKQoHcmVjb3JkcxgBIAMoCzIYLmxpdmVraXQucHJvdG8uTG9nUmVjb3Jk",
+ "IhgKBVBhbmljEg8KB21lc3NhZ2UYASACKAkqUwoITG9nTGV2ZWwSDQoJTE9H",
+ "X0VSUk9SEAASDAoITE9HX1dBUk4QARIMCghMT0dfSU5GTxACEg0KCUxPR19E",
+ "RUJVRxADEg0KCUxPR19UUkFDRRAEQhCqAg1MaXZlS2l0LlByb3Rv"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.TrackPublicationReflection.Descriptor, global::LiveKit.Proto.RoomReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.AudioFrameReflection.Descriptor, global::LiveKit.Proto.RpcReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.TrackPublicationReflection.Descriptor, global::LiveKit.Proto.RoomReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.AudioFrameReflection.Descriptor, global::LiveKit.Proto.RpcReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.LogLevel), }, null, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality" }, new[]{ "Message" }, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality" }, new[]{ "Message" }, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes" }, new[]{ "Message" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiRequest), global::LiveKit.Proto.FfiRequest.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "E2Ee", "AudioStreamFromParticipant", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "EditChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackSubscriptionRead" }, new[]{ "Message" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiResponse), global::LiveKit.Proto.FfiResponse.Parser, new[]{ "Dispose", "Connect", "Disconnect", "PublishTrack", "UnpublishTrack", "PublishData", "SetSubscribed", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetSessionStats", "PublishTranscription", "PublishSipDtmf", "CreateVideoTrack", "CreateAudioTrack", "LocalTrackMute", "EnableRemoteTrack", "GetStats", "SetTrackSubscriptionPermissions", "NewVideoStream", "NewVideoSource", "CaptureVideoFrame", "VideoConvert", "VideoStreamFromParticipant", "NewAudioStream", "NewAudioSource", "CaptureAudioFrame", "ClearAudioBuffer", "NewAudioResampler", "RemixAndResample", "AudioStreamFromParticipant", "E2Ee", "NewSoxResampler", "PushSoxResampler", "FlushSoxResampler", "SendChatMessage", "PerformRpc", "RegisterRpcMethod", "UnregisterRpcMethod", "RpcMethodInvocationResponse", "EnableRemoteTrackPublication", "UpdateRemoteTrackPublicationDimension", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "SetDataChannelBufferedAmountLowThreshold", "LoadAudioFilterPlugin", "NewApm", "ApmProcessStream", "ApmProcessReverseStream", "ApmSetStreamDelay", "ByteReadIncremental", "ByteReadAll", "ByteWriteToFile", "TextReadIncremental", "TextReadAll", "SendFile", "SendText", "ByteStreamOpen", "ByteStreamWrite", "ByteStreamClose", "TextStreamOpen", "TextStreamWrite", "TextStreamClose", "SendBytes", "SetRemoteTrackPublicationQuality", "PublishDataTrack", "LocalDataTrackTryPush", "LocalDataTrackUnpublish", "LocalDataTrackIsPublished", "SubscribeDataTrack", "RemoteDataTrackIsPublished", "DataTrackSubscriptionRead" }, new[]{ "Message" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.FfiEvent), global::LiveKit.Proto.FfiEvent.Parser, new[]{ "RoomEvent", "TrackEvent", "VideoStreamEvent", "AudioStreamEvent", "Connect", "Disconnect", "Dispose", "PublishTrack", "UnpublishTrack", "PublishData", "PublishTranscription", "CaptureAudioFrame", "SetLocalMetadata", "SetLocalName", "SetLocalAttributes", "GetStats", "Logs", "GetSessionStats", "Panic", "PublishSipDtmf", "ChatMessage", "PerformRpc", "RpcMethodInvocation", "SendStreamHeader", "SendStreamChunk", "SendStreamTrailer", "ByteStreamReaderEvent", "ByteStreamReaderReadAll", "ByteStreamReaderWriteToFile", "ByteStreamOpen", "ByteStreamWriterWrite", "ByteStreamWriterClose", "SendFile", "TextStreamReaderEvent", "TextStreamReaderReadAll", "TextStreamOpen", "TextStreamWriterWrite", "TextStreamWriterClose", "SendText", "SendBytes", "PublishDataTrack", "DataTrackSubscriptionEvent" }, new[]{ "Message" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeRequest), global::LiveKit.Proto.DisposeRequest.Parser, new[]{ "Async" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeResponse), global::LiveKit.Proto.DisposeResponse.Parser, new[]{ "AsyncId" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DisposeCallback), global::LiveKit.Proto.DisposeCallback.Parser, new[]{ "AsyncId" }, null, null, null, null),
@@ -582,6 +612,27 @@ public FfiRequest(FfiRequest other) : this() {
case MessageOneofCase.SetRemoteTrackPublicationQuality:
SetRemoteTrackPublicationQuality = other.SetRemoteTrackPublicationQuality.Clone();
break;
+ case MessageOneofCase.PublishDataTrack:
+ PublishDataTrack = other.PublishDataTrack.Clone();
+ break;
+ case MessageOneofCase.LocalDataTrackTryPush:
+ LocalDataTrackTryPush = other.LocalDataTrackTryPush.Clone();
+ break;
+ case MessageOneofCase.LocalDataTrackUnpublish:
+ LocalDataTrackUnpublish = other.LocalDataTrackUnpublish.Clone();
+ break;
+ case MessageOneofCase.LocalDataTrackIsPublished:
+ LocalDataTrackIsPublished = other.LocalDataTrackIsPublished.Clone();
+ break;
+ case MessageOneofCase.SubscribeDataTrack:
+ SubscribeDataTrack = other.SubscribeDataTrack.Clone();
+ break;
+ case MessageOneofCase.RemoteDataTrackIsPublished:
+ RemoteDataTrackIsPublished = other.RemoteDataTrackIsPublished.Clone();
+ break;
+ case MessageOneofCase.DataTrackSubscriptionRead:
+ DataTrackSubscriptionRead = other.DataTrackSubscriptionRead.Clone();
+ break;
}
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
@@ -1427,6 +1478,96 @@ public FfiRequest Clone() {
}
}
+ /// Field number for the "publish_data_track" field.
+ public const int PublishDataTrackFieldNumber = 69;
+ ///
+ /// Data Track (local)
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.PublishDataTrackRequest PublishDataTrack {
+ get { return messageCase_ == MessageOneofCase.PublishDataTrack ? (global::LiveKit.Proto.PublishDataTrackRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PublishDataTrack;
+ }
+ }
+
+ /// Field number for the "local_data_track_try_push" field.
+ public const int LocalDataTrackTryPushFieldNumber = 70;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.LocalDataTrackTryPushRequest LocalDataTrackTryPush {
+ get { return messageCase_ == MessageOneofCase.LocalDataTrackTryPush ? (global::LiveKit.Proto.LocalDataTrackTryPushRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackTryPush;
+ }
+ }
+
+ /// Field number for the "local_data_track_unpublish" field.
+ public const int LocalDataTrackUnpublishFieldNumber = 71;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.LocalDataTrackUnpublishRequest LocalDataTrackUnpublish {
+ get { return messageCase_ == MessageOneofCase.LocalDataTrackUnpublish ? (global::LiveKit.Proto.LocalDataTrackUnpublishRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackUnpublish;
+ }
+ }
+
+ /// Field number for the "local_data_track_is_published" field.
+ public const int LocalDataTrackIsPublishedFieldNumber = 72;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.LocalDataTrackIsPublishedRequest LocalDataTrackIsPublished {
+ get { return messageCase_ == MessageOneofCase.LocalDataTrackIsPublished ? (global::LiveKit.Proto.LocalDataTrackIsPublishedRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackIsPublished;
+ }
+ }
+
+ /// Field number for the "subscribe_data_track" field.
+ public const int SubscribeDataTrackFieldNumber = 73;
+ ///
+ /// Data Track (remote)
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.SubscribeDataTrackRequest SubscribeDataTrack {
+ get { return messageCase_ == MessageOneofCase.SubscribeDataTrack ? (global::LiveKit.Proto.SubscribeDataTrackRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SubscribeDataTrack;
+ }
+ }
+
+ /// Field number for the "remote_data_track_is_published" field.
+ public const int RemoteDataTrackIsPublishedFieldNumber = 74;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest RemoteDataTrackIsPublished {
+ get { return messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished ? (global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.RemoteDataTrackIsPublished;
+ }
+ }
+
+ /// Field number for the "data_track_subscription_read" field.
+ public const int DataTrackSubscriptionReadFieldNumber = 75;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackSubscriptionReadRequest DataTrackSubscriptionRead {
+ get { return messageCase_ == MessageOneofCase.DataTrackSubscriptionRead ? (global::LiveKit.Proto.DataTrackSubscriptionReadRequest) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackSubscriptionRead;
+ }
+ }
+
private object message_;
/// Enum of possible cases for the "message" oneof.
public enum MessageOneofCase {
@@ -1498,6 +1639,13 @@ public enum MessageOneofCase {
TextStreamClose = 66,
SendBytes = 67,
SetRemoteTrackPublicationQuality = 68,
+ PublishDataTrack = 69,
+ LocalDataTrackTryPush = 70,
+ LocalDataTrackUnpublish = 71,
+ LocalDataTrackIsPublished = 72,
+ SubscribeDataTrack = 73,
+ RemoteDataTrackIsPublished = 74,
+ DataTrackSubscriptionRead = 75,
}
private MessageOneofCase messageCase_ = MessageOneofCase.None;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1595,6 +1743,13 @@ public bool Equals(FfiRequest other) {
if (!object.Equals(TextStreamClose, other.TextStreamClose)) return false;
if (!object.Equals(SendBytes, other.SendBytes)) return false;
if (!object.Equals(SetRemoteTrackPublicationQuality, other.SetRemoteTrackPublicationQuality)) return false;
+ if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false;
+ if (!object.Equals(LocalDataTrackTryPush, other.LocalDataTrackTryPush)) return false;
+ if (!object.Equals(LocalDataTrackUnpublish, other.LocalDataTrackUnpublish)) return false;
+ if (!object.Equals(LocalDataTrackIsPublished, other.LocalDataTrackIsPublished)) return false;
+ if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false;
+ if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false;
+ if (!object.Equals(DataTrackSubscriptionRead, other.DataTrackSubscriptionRead)) return false;
if (MessageCase != other.MessageCase) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -1670,6 +1825,13 @@ public override int GetHashCode() {
if (messageCase_ == MessageOneofCase.TextStreamClose) hash ^= TextStreamClose.GetHashCode();
if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode();
if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) hash ^= SetRemoteTrackPublicationQuality.GetHashCode();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) hash ^= LocalDataTrackTryPush.GetHashCode();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) hash ^= LocalDataTrackUnpublish.GetHashCode();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) hash ^= LocalDataTrackIsPublished.GetHashCode();
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode();
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) hash ^= DataTrackSubscriptionRead.GetHashCode();
hash ^= (int) messageCase_;
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
@@ -1957,6 +2119,34 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(162, 4);
output.WriteMessage(SetRemoteTrackPublicationQuality);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ output.WriteRawTag(170, 4);
+ output.WriteMessage(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ output.WriteRawTag(178, 4);
+ output.WriteMessage(LocalDataTrackTryPush);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ output.WriteRawTag(186, 4);
+ output.WriteMessage(LocalDataTrackUnpublish);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ output.WriteRawTag(194, 4);
+ output.WriteMessage(LocalDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ output.WriteRawTag(202, 4);
+ output.WriteMessage(SubscribeDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ output.WriteRawTag(210, 4);
+ output.WriteMessage(RemoteDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ output.WriteRawTag(218, 4);
+ output.WriteMessage(DataTrackSubscriptionRead);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -2235,6 +2425,34 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(162, 4);
output.WriteMessage(SetRemoteTrackPublicationQuality);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ output.WriteRawTag(170, 4);
+ output.WriteMessage(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ output.WriteRawTag(178, 4);
+ output.WriteMessage(LocalDataTrackTryPush);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ output.WriteRawTag(186, 4);
+ output.WriteMessage(LocalDataTrackUnpublish);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ output.WriteRawTag(194, 4);
+ output.WriteMessage(LocalDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ output.WriteRawTag(202, 4);
+ output.WriteMessage(SubscribeDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ output.WriteRawTag(210, 4);
+ output.WriteMessage(RemoteDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ output.WriteRawTag(218, 4);
+ output.WriteMessage(DataTrackSubscriptionRead);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -2446,6 +2664,27 @@ public int CalculateSize() {
if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) {
size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetRemoteTrackPublicationQuality);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackTryPush);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackUnpublish);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(SubscribeDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackSubscriptionRead);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -2861,6 +3100,48 @@ public void MergeFrom(FfiRequest other) {
}
SetRemoteTrackPublicationQuality.MergeFrom(other.SetRemoteTrackPublicationQuality);
break;
+ case MessageOneofCase.PublishDataTrack:
+ if (PublishDataTrack == null) {
+ PublishDataTrack = new global::LiveKit.Proto.PublishDataTrackRequest();
+ }
+ PublishDataTrack.MergeFrom(other.PublishDataTrack);
+ break;
+ case MessageOneofCase.LocalDataTrackTryPush:
+ if (LocalDataTrackTryPush == null) {
+ LocalDataTrackTryPush = new global::LiveKit.Proto.LocalDataTrackTryPushRequest();
+ }
+ LocalDataTrackTryPush.MergeFrom(other.LocalDataTrackTryPush);
+ break;
+ case MessageOneofCase.LocalDataTrackUnpublish:
+ if (LocalDataTrackUnpublish == null) {
+ LocalDataTrackUnpublish = new global::LiveKit.Proto.LocalDataTrackUnpublishRequest();
+ }
+ LocalDataTrackUnpublish.MergeFrom(other.LocalDataTrackUnpublish);
+ break;
+ case MessageOneofCase.LocalDataTrackIsPublished:
+ if (LocalDataTrackIsPublished == null) {
+ LocalDataTrackIsPublished = new global::LiveKit.Proto.LocalDataTrackIsPublishedRequest();
+ }
+ LocalDataTrackIsPublished.MergeFrom(other.LocalDataTrackIsPublished);
+ break;
+ case MessageOneofCase.SubscribeDataTrack:
+ if (SubscribeDataTrack == null) {
+ SubscribeDataTrack = new global::LiveKit.Proto.SubscribeDataTrackRequest();
+ }
+ SubscribeDataTrack.MergeFrom(other.SubscribeDataTrack);
+ break;
+ case MessageOneofCase.RemoteDataTrackIsPublished:
+ if (RemoteDataTrackIsPublished == null) {
+ RemoteDataTrackIsPublished = new global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest();
+ }
+ RemoteDataTrackIsPublished.MergeFrom(other.RemoteDataTrackIsPublished);
+ break;
+ case MessageOneofCase.DataTrackSubscriptionRead:
+ if (DataTrackSubscriptionRead == null) {
+ DataTrackSubscriptionRead = new global::LiveKit.Proto.DataTrackSubscriptionReadRequest();
+ }
+ DataTrackSubscriptionRead.MergeFrom(other.DataTrackSubscriptionRead);
+ break;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
@@ -3485,6 +3766,69 @@ public void MergeFrom(pb::CodedInputStream input) {
SetRemoteTrackPublicationQuality = subBuilder;
break;
}
+ case 554: {
+ global::LiveKit.Proto.PublishDataTrackRequest subBuilder = new global::LiveKit.Proto.PublishDataTrackRequest();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ subBuilder.MergeFrom(PublishDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ PublishDataTrack = subBuilder;
+ break;
+ }
+ case 562: {
+ global::LiveKit.Proto.LocalDataTrackTryPushRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushRequest();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ subBuilder.MergeFrom(LocalDataTrackTryPush);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackTryPush = subBuilder;
+ break;
+ }
+ case 570: {
+ global::LiveKit.Proto.LocalDataTrackUnpublishRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishRequest();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ subBuilder.MergeFrom(LocalDataTrackUnpublish);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackUnpublish = subBuilder;
+ break;
+ }
+ case 578: {
+ global::LiveKit.Proto.LocalDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedRequest();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ subBuilder.MergeFrom(LocalDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 586: {
+ global::LiveKit.Proto.SubscribeDataTrackRequest subBuilder = new global::LiveKit.Proto.SubscribeDataTrackRequest();
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ subBuilder.MergeFrom(SubscribeDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ SubscribeDataTrack = subBuilder;
+ break;
+ }
+ case 594: {
+ global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest();
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ subBuilder.MergeFrom(RemoteDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ RemoteDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 602: {
+ global::LiveKit.Proto.DataTrackSubscriptionReadRequest subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadRequest();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ subBuilder.MergeFrom(DataTrackSubscriptionRead);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackSubscriptionRead = subBuilder;
+ break;
+ }
}
}
#endif
@@ -4107,6 +4451,69 @@ public void MergeFrom(pb::CodedInputStream input) {
SetRemoteTrackPublicationQuality = subBuilder;
break;
}
+ case 554: {
+ global::LiveKit.Proto.PublishDataTrackRequest subBuilder = new global::LiveKit.Proto.PublishDataTrackRequest();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ subBuilder.MergeFrom(PublishDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ PublishDataTrack = subBuilder;
+ break;
+ }
+ case 562: {
+ global::LiveKit.Proto.LocalDataTrackTryPushRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushRequest();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ subBuilder.MergeFrom(LocalDataTrackTryPush);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackTryPush = subBuilder;
+ break;
+ }
+ case 570: {
+ global::LiveKit.Proto.LocalDataTrackUnpublishRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishRequest();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ subBuilder.MergeFrom(LocalDataTrackUnpublish);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackUnpublish = subBuilder;
+ break;
+ }
+ case 578: {
+ global::LiveKit.Proto.LocalDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedRequest();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ subBuilder.MergeFrom(LocalDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 586: {
+ global::LiveKit.Proto.SubscribeDataTrackRequest subBuilder = new global::LiveKit.Proto.SubscribeDataTrackRequest();
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ subBuilder.MergeFrom(SubscribeDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ SubscribeDataTrack = subBuilder;
+ break;
+ }
+ case 594: {
+ global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedRequest();
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ subBuilder.MergeFrom(RemoteDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ RemoteDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 602: {
+ global::LiveKit.Proto.DataTrackSubscriptionReadRequest subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadRequest();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ subBuilder.MergeFrom(DataTrackSubscriptionRead);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackSubscriptionRead = subBuilder;
+ break;
+ }
}
}
}
@@ -4351,6 +4758,27 @@ public FfiResponse(FfiResponse other) : this() {
case MessageOneofCase.SetRemoteTrackPublicationQuality:
SetRemoteTrackPublicationQuality = other.SetRemoteTrackPublicationQuality.Clone();
break;
+ case MessageOneofCase.PublishDataTrack:
+ PublishDataTrack = other.PublishDataTrack.Clone();
+ break;
+ case MessageOneofCase.LocalDataTrackTryPush:
+ LocalDataTrackTryPush = other.LocalDataTrackTryPush.Clone();
+ break;
+ case MessageOneofCase.LocalDataTrackUnpublish:
+ LocalDataTrackUnpublish = other.LocalDataTrackUnpublish.Clone();
+ break;
+ case MessageOneofCase.LocalDataTrackIsPublished:
+ LocalDataTrackIsPublished = other.LocalDataTrackIsPublished.Clone();
+ break;
+ case MessageOneofCase.SubscribeDataTrack:
+ SubscribeDataTrack = other.SubscribeDataTrack.Clone();
+ break;
+ case MessageOneofCase.RemoteDataTrackIsPublished:
+ RemoteDataTrackIsPublished = other.RemoteDataTrackIsPublished.Clone();
+ break;
+ case MessageOneofCase.DataTrackSubscriptionRead:
+ DataTrackSubscriptionRead = other.DataTrackSubscriptionRead.Clone();
+ break;
}
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
@@ -5184,6 +5612,96 @@ public FfiResponse Clone() {
}
}
+ /// Field number for the "publish_data_track" field.
+ public const int PublishDataTrackFieldNumber = 68;
+ ///
+ /// Data Track (local)
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.PublishDataTrackResponse PublishDataTrack {
+ get { return messageCase_ == MessageOneofCase.PublishDataTrack ? (global::LiveKit.Proto.PublishDataTrackResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PublishDataTrack;
+ }
+ }
+
+ /// Field number for the "local_data_track_try_push" field.
+ public const int LocalDataTrackTryPushFieldNumber = 69;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.LocalDataTrackTryPushResponse LocalDataTrackTryPush {
+ get { return messageCase_ == MessageOneofCase.LocalDataTrackTryPush ? (global::LiveKit.Proto.LocalDataTrackTryPushResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackTryPush;
+ }
+ }
+
+ /// Field number for the "local_data_track_unpublish" field.
+ public const int LocalDataTrackUnpublishFieldNumber = 70;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.LocalDataTrackUnpublishResponse LocalDataTrackUnpublish {
+ get { return messageCase_ == MessageOneofCase.LocalDataTrackUnpublish ? (global::LiveKit.Proto.LocalDataTrackUnpublishResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackUnpublish;
+ }
+ }
+
+ /// Field number for the "local_data_track_is_published" field.
+ public const int LocalDataTrackIsPublishedFieldNumber = 71;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.LocalDataTrackIsPublishedResponse LocalDataTrackIsPublished {
+ get { return messageCase_ == MessageOneofCase.LocalDataTrackIsPublished ? (global::LiveKit.Proto.LocalDataTrackIsPublishedResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.LocalDataTrackIsPublished;
+ }
+ }
+
+ /// Field number for the "subscribe_data_track" field.
+ public const int SubscribeDataTrackFieldNumber = 72;
+ ///
+ /// Data Track (remote)
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.SubscribeDataTrackResponse SubscribeDataTrack {
+ get { return messageCase_ == MessageOneofCase.SubscribeDataTrack ? (global::LiveKit.Proto.SubscribeDataTrackResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.SubscribeDataTrack;
+ }
+ }
+
+ /// Field number for the "remote_data_track_is_published" field.
+ public const int RemoteDataTrackIsPublishedFieldNumber = 73;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse RemoteDataTrackIsPublished {
+ get { return messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished ? (global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.RemoteDataTrackIsPublished;
+ }
+ }
+
+ /// Field number for the "data_track_subscription_read" field.
+ public const int DataTrackSubscriptionReadFieldNumber = 74;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackSubscriptionReadResponse DataTrackSubscriptionRead {
+ get { return messageCase_ == MessageOneofCase.DataTrackSubscriptionRead ? (global::LiveKit.Proto.DataTrackSubscriptionReadResponse) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackSubscriptionRead;
+ }
+ }
+
private object message_;
/// Enum of possible cases for the "message" oneof.
public enum MessageOneofCase {
@@ -5254,6 +5772,13 @@ public enum MessageOneofCase {
TextStreamClose = 65,
SendBytes = 66,
SetRemoteTrackPublicationQuality = 67,
+ PublishDataTrack = 68,
+ LocalDataTrackTryPush = 69,
+ LocalDataTrackUnpublish = 70,
+ LocalDataTrackIsPublished = 71,
+ SubscribeDataTrack = 72,
+ RemoteDataTrackIsPublished = 73,
+ DataTrackSubscriptionRead = 74,
}
private MessageOneofCase messageCase_ = MessageOneofCase.None;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5350,6 +5875,13 @@ public bool Equals(FfiResponse other) {
if (!object.Equals(TextStreamClose, other.TextStreamClose)) return false;
if (!object.Equals(SendBytes, other.SendBytes)) return false;
if (!object.Equals(SetRemoteTrackPublicationQuality, other.SetRemoteTrackPublicationQuality)) return false;
+ if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false;
+ if (!object.Equals(LocalDataTrackTryPush, other.LocalDataTrackTryPush)) return false;
+ if (!object.Equals(LocalDataTrackUnpublish, other.LocalDataTrackUnpublish)) return false;
+ if (!object.Equals(LocalDataTrackIsPublished, other.LocalDataTrackIsPublished)) return false;
+ if (!object.Equals(SubscribeDataTrack, other.SubscribeDataTrack)) return false;
+ if (!object.Equals(RemoteDataTrackIsPublished, other.RemoteDataTrackIsPublished)) return false;
+ if (!object.Equals(DataTrackSubscriptionRead, other.DataTrackSubscriptionRead)) return false;
if (MessageCase != other.MessageCase) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -5424,6 +5956,13 @@ public override int GetHashCode() {
if (messageCase_ == MessageOneofCase.TextStreamClose) hash ^= TextStreamClose.GetHashCode();
if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode();
if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) hash ^= SetRemoteTrackPublicationQuality.GetHashCode();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) hash ^= LocalDataTrackTryPush.GetHashCode();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) hash ^= LocalDataTrackUnpublish.GetHashCode();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) hash ^= LocalDataTrackIsPublished.GetHashCode();
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) hash ^= SubscribeDataTrack.GetHashCode();
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) hash ^= RemoteDataTrackIsPublished.GetHashCode();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) hash ^= DataTrackSubscriptionRead.GetHashCode();
hash ^= (int) messageCase_;
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
@@ -5707,6 +6246,34 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(154, 4);
output.WriteMessage(SetRemoteTrackPublicationQuality);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ output.WriteRawTag(162, 4);
+ output.WriteMessage(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ output.WriteRawTag(170, 4);
+ output.WriteMessage(LocalDataTrackTryPush);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ output.WriteRawTag(178, 4);
+ output.WriteMessage(LocalDataTrackUnpublish);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ output.WriteRawTag(186, 4);
+ output.WriteMessage(LocalDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ output.WriteRawTag(194, 4);
+ output.WriteMessage(SubscribeDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ output.WriteRawTag(202, 4);
+ output.WriteMessage(RemoteDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ output.WriteRawTag(210, 4);
+ output.WriteMessage(DataTrackSubscriptionRead);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -5981,6 +6548,34 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(154, 4);
output.WriteMessage(SetRemoteTrackPublicationQuality);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ output.WriteRawTag(162, 4);
+ output.WriteMessage(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ output.WriteRawTag(170, 4);
+ output.WriteMessage(LocalDataTrackTryPush);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ output.WriteRawTag(178, 4);
+ output.WriteMessage(LocalDataTrackUnpublish);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ output.WriteRawTag(186, 4);
+ output.WriteMessage(LocalDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ output.WriteRawTag(194, 4);
+ output.WriteMessage(SubscribeDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ output.WriteRawTag(202, 4);
+ output.WriteMessage(RemoteDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ output.WriteRawTag(210, 4);
+ output.WriteMessage(DataTrackSubscriptionRead);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -6189,6 +6784,27 @@ public int CalculateSize() {
if (messageCase_ == MessageOneofCase.SetRemoteTrackPublicationQuality) {
size += 2 + pb::CodedOutputStream.ComputeMessageSize(SetRemoteTrackPublicationQuality);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackTryPush);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackUnpublish);
+ }
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(LocalDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(SubscribeDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(RemoteDataTrackIsPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackSubscriptionRead);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -6598,6 +7214,48 @@ public void MergeFrom(FfiResponse other) {
}
SetRemoteTrackPublicationQuality.MergeFrom(other.SetRemoteTrackPublicationQuality);
break;
+ case MessageOneofCase.PublishDataTrack:
+ if (PublishDataTrack == null) {
+ PublishDataTrack = new global::LiveKit.Proto.PublishDataTrackResponse();
+ }
+ PublishDataTrack.MergeFrom(other.PublishDataTrack);
+ break;
+ case MessageOneofCase.LocalDataTrackTryPush:
+ if (LocalDataTrackTryPush == null) {
+ LocalDataTrackTryPush = new global::LiveKit.Proto.LocalDataTrackTryPushResponse();
+ }
+ LocalDataTrackTryPush.MergeFrom(other.LocalDataTrackTryPush);
+ break;
+ case MessageOneofCase.LocalDataTrackUnpublish:
+ if (LocalDataTrackUnpublish == null) {
+ LocalDataTrackUnpublish = new global::LiveKit.Proto.LocalDataTrackUnpublishResponse();
+ }
+ LocalDataTrackUnpublish.MergeFrom(other.LocalDataTrackUnpublish);
+ break;
+ case MessageOneofCase.LocalDataTrackIsPublished:
+ if (LocalDataTrackIsPublished == null) {
+ LocalDataTrackIsPublished = new global::LiveKit.Proto.LocalDataTrackIsPublishedResponse();
+ }
+ LocalDataTrackIsPublished.MergeFrom(other.LocalDataTrackIsPublished);
+ break;
+ case MessageOneofCase.SubscribeDataTrack:
+ if (SubscribeDataTrack == null) {
+ SubscribeDataTrack = new global::LiveKit.Proto.SubscribeDataTrackResponse();
+ }
+ SubscribeDataTrack.MergeFrom(other.SubscribeDataTrack);
+ break;
+ case MessageOneofCase.RemoteDataTrackIsPublished:
+ if (RemoteDataTrackIsPublished == null) {
+ RemoteDataTrackIsPublished = new global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse();
+ }
+ RemoteDataTrackIsPublished.MergeFrom(other.RemoteDataTrackIsPublished);
+ break;
+ case MessageOneofCase.DataTrackSubscriptionRead:
+ if (DataTrackSubscriptionRead == null) {
+ DataTrackSubscriptionRead = new global::LiveKit.Proto.DataTrackSubscriptionReadResponse();
+ }
+ DataTrackSubscriptionRead.MergeFrom(other.DataTrackSubscriptionRead);
+ break;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
@@ -7213,6 +7871,69 @@ public void MergeFrom(pb::CodedInputStream input) {
SetRemoteTrackPublicationQuality = subBuilder;
break;
}
+ case 546: {
+ global::LiveKit.Proto.PublishDataTrackResponse subBuilder = new global::LiveKit.Proto.PublishDataTrackResponse();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ subBuilder.MergeFrom(PublishDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ PublishDataTrack = subBuilder;
+ break;
+ }
+ case 554: {
+ global::LiveKit.Proto.LocalDataTrackTryPushResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushResponse();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ subBuilder.MergeFrom(LocalDataTrackTryPush);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackTryPush = subBuilder;
+ break;
+ }
+ case 562: {
+ global::LiveKit.Proto.LocalDataTrackUnpublishResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishResponse();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ subBuilder.MergeFrom(LocalDataTrackUnpublish);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackUnpublish = subBuilder;
+ break;
+ }
+ case 570: {
+ global::LiveKit.Proto.LocalDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedResponse();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ subBuilder.MergeFrom(LocalDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 578: {
+ global::LiveKit.Proto.SubscribeDataTrackResponse subBuilder = new global::LiveKit.Proto.SubscribeDataTrackResponse();
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ subBuilder.MergeFrom(SubscribeDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ SubscribeDataTrack = subBuilder;
+ break;
+ }
+ case 586: {
+ global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse();
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ subBuilder.MergeFrom(RemoteDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ RemoteDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 594: {
+ global::LiveKit.Proto.DataTrackSubscriptionReadResponse subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadResponse();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ subBuilder.MergeFrom(DataTrackSubscriptionRead);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackSubscriptionRead = subBuilder;
+ break;
+ }
}
}
#endif
@@ -7826,6 +8547,69 @@ public void MergeFrom(pb::CodedInputStream input) {
SetRemoteTrackPublicationQuality = subBuilder;
break;
}
+ case 546: {
+ global::LiveKit.Proto.PublishDataTrackResponse subBuilder = new global::LiveKit.Proto.PublishDataTrackResponse();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ subBuilder.MergeFrom(PublishDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ PublishDataTrack = subBuilder;
+ break;
+ }
+ case 554: {
+ global::LiveKit.Proto.LocalDataTrackTryPushResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackTryPushResponse();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackTryPush) {
+ subBuilder.MergeFrom(LocalDataTrackTryPush);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackTryPush = subBuilder;
+ break;
+ }
+ case 562: {
+ global::LiveKit.Proto.LocalDataTrackUnpublishResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackUnpublishResponse();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackUnpublish) {
+ subBuilder.MergeFrom(LocalDataTrackUnpublish);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackUnpublish = subBuilder;
+ break;
+ }
+ case 570: {
+ global::LiveKit.Proto.LocalDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.LocalDataTrackIsPublishedResponse();
+ if (messageCase_ == MessageOneofCase.LocalDataTrackIsPublished) {
+ subBuilder.MergeFrom(LocalDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ LocalDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 578: {
+ global::LiveKit.Proto.SubscribeDataTrackResponse subBuilder = new global::LiveKit.Proto.SubscribeDataTrackResponse();
+ if (messageCase_ == MessageOneofCase.SubscribeDataTrack) {
+ subBuilder.MergeFrom(SubscribeDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ SubscribeDataTrack = subBuilder;
+ break;
+ }
+ case 586: {
+ global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse subBuilder = new global::LiveKit.Proto.RemoteDataTrackIsPublishedResponse();
+ if (messageCase_ == MessageOneofCase.RemoteDataTrackIsPublished) {
+ subBuilder.MergeFrom(RemoteDataTrackIsPublished);
+ }
+ input.ReadMessage(subBuilder);
+ RemoteDataTrackIsPublished = subBuilder;
+ break;
+ }
+ case 594: {
+ global::LiveKit.Proto.DataTrackSubscriptionReadResponse subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionReadResponse();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionRead) {
+ subBuilder.MergeFrom(DataTrackSubscriptionRead);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackSubscriptionRead = subBuilder;
+ break;
+ }
}
}
}
@@ -7994,6 +8778,12 @@ public FfiEvent(FfiEvent other) : this() {
case MessageOneofCase.SendBytes:
SendBytes = other.SendBytes.Clone();
break;
+ case MessageOneofCase.PublishDataTrack:
+ PublishDataTrack = other.PublishDataTrack.Clone();
+ break;
+ case MessageOneofCase.DataTrackSubscriptionEvent:
+ DataTrackSubscriptionEvent = other.DataTrackSubscriptionEvent.Clone();
+ break;
}
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
@@ -8491,6 +9281,36 @@ public FfiEvent Clone() {
}
}
+ /// Field number for the "publish_data_track" field.
+ public const int PublishDataTrackFieldNumber = 42;
+ ///
+ /// Data Track (local)
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.PublishDataTrackCallback PublishDataTrack {
+ get { return messageCase_ == MessageOneofCase.PublishDataTrack ? (global::LiveKit.Proto.PublishDataTrackCallback) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.PublishDataTrack;
+ }
+ }
+
+ /// Field number for the "data_track_subscription_event" field.
+ public const int DataTrackSubscriptionEventFieldNumber = 43;
+ ///
+ /// Data Track (remote)
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackSubscriptionEvent DataTrackSubscriptionEvent {
+ get { return messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent ? (global::LiveKit.Proto.DataTrackSubscriptionEvent) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackSubscriptionEvent;
+ }
+ }
+
private object message_;
/// Enum of possible cases for the "message" oneof.
public enum MessageOneofCase {
@@ -8535,6 +9355,8 @@ public enum MessageOneofCase {
TextStreamWriterClose = 39,
SendText = 40,
SendBytes = 41,
+ PublishDataTrack = 42,
+ DataTrackSubscriptionEvent = 43,
}
private MessageOneofCase messageCase_ = MessageOneofCase.None;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8605,6 +9427,8 @@ public bool Equals(FfiEvent other) {
if (!object.Equals(TextStreamWriterClose, other.TextStreamWriterClose)) return false;
if (!object.Equals(SendText, other.SendText)) return false;
if (!object.Equals(SendBytes, other.SendBytes)) return false;
+ if (!object.Equals(PublishDataTrack, other.PublishDataTrack)) return false;
+ if (!object.Equals(DataTrackSubscriptionEvent, other.DataTrackSubscriptionEvent)) return false;
if (MessageCase != other.MessageCase) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -8653,6 +9477,8 @@ public override int GetHashCode() {
if (messageCase_ == MessageOneofCase.TextStreamWriterClose) hash ^= TextStreamWriterClose.GetHashCode();
if (messageCase_ == MessageOneofCase.SendText) hash ^= SendText.GetHashCode();
if (messageCase_ == MessageOneofCase.SendBytes) hash ^= SendBytes.GetHashCode();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) hash ^= PublishDataTrack.GetHashCode();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) hash ^= DataTrackSubscriptionEvent.GetHashCode();
hash ^= (int) messageCase_;
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
@@ -8832,6 +9658,14 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(202, 2);
output.WriteMessage(SendBytes);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ output.WriteRawTag(210, 2);
+ output.WriteMessage(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) {
+ output.WriteRawTag(218, 2);
+ output.WriteMessage(DataTrackSubscriptionEvent);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -9002,6 +9836,14 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(202, 2);
output.WriteMessage(SendBytes);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ output.WriteRawTag(210, 2);
+ output.WriteMessage(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) {
+ output.WriteRawTag(218, 2);
+ output.WriteMessage(DataTrackSubscriptionEvent);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -9132,6 +9974,12 @@ public int CalculateSize() {
if (messageCase_ == MessageOneofCase.SendBytes) {
size += 2 + pb::CodedOutputStream.ComputeMessageSize(SendBytes);
}
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(PublishDataTrack);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackSubscriptionEvent);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -9385,6 +10233,18 @@ public void MergeFrom(FfiEvent other) {
}
SendBytes.MergeFrom(other.SendBytes);
break;
+ case MessageOneofCase.PublishDataTrack:
+ if (PublishDataTrack == null) {
+ PublishDataTrack = new global::LiveKit.Proto.PublishDataTrackCallback();
+ }
+ PublishDataTrack.MergeFrom(other.PublishDataTrack);
+ break;
+ case MessageOneofCase.DataTrackSubscriptionEvent:
+ if (DataTrackSubscriptionEvent == null) {
+ DataTrackSubscriptionEvent = new global::LiveKit.Proto.DataTrackSubscriptionEvent();
+ }
+ DataTrackSubscriptionEvent.MergeFrom(other.DataTrackSubscriptionEvent);
+ break;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
@@ -9766,6 +10626,24 @@ public void MergeFrom(pb::CodedInputStream input) {
SendBytes = subBuilder;
break;
}
+ case 338: {
+ global::LiveKit.Proto.PublishDataTrackCallback subBuilder = new global::LiveKit.Proto.PublishDataTrackCallback();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ subBuilder.MergeFrom(PublishDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ PublishDataTrack = subBuilder;
+ break;
+ }
+ case 346: {
+ global::LiveKit.Proto.DataTrackSubscriptionEvent subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEvent();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) {
+ subBuilder.MergeFrom(DataTrackSubscriptionEvent);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackSubscriptionEvent = subBuilder;
+ break;
+ }
}
}
#endif
@@ -10145,6 +11023,24 @@ public void MergeFrom(pb::CodedInputStream input) {
SendBytes = subBuilder;
break;
}
+ case 338: {
+ global::LiveKit.Proto.PublishDataTrackCallback subBuilder = new global::LiveKit.Proto.PublishDataTrackCallback();
+ if (messageCase_ == MessageOneofCase.PublishDataTrack) {
+ subBuilder.MergeFrom(PublishDataTrack);
+ }
+ input.ReadMessage(subBuilder);
+ PublishDataTrack = subBuilder;
+ break;
+ }
+ case 346: {
+ global::LiveKit.Proto.DataTrackSubscriptionEvent subBuilder = new global::LiveKit.Proto.DataTrackSubscriptionEvent();
+ if (messageCase_ == MessageOneofCase.DataTrackSubscriptionEvent) {
+ subBuilder.MergeFrom(DataTrackSubscriptionEvent);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackSubscriptionEvent = subBuilder;
+ break;
+ }
}
}
}
diff --git a/Runtime/Scripts/Proto/Room.cs b/Runtime/Scripts/Proto/Room.cs
index feb2afb5..676bbd6a 100644
--- a/Runtime/Scripts/Proto/Room.cs
+++ b/Runtime/Scripts/Proto/Room.cs
@@ -27,323 +27,329 @@ static RoomReflection() {
"Cgpyb29tLnByb3RvEg1saXZla2l0LnByb3RvGgplMmVlLnByb3RvGgxoYW5k",
"bGUucHJvdG8aEXBhcnRpY2lwYW50LnByb3RvGgt0cmFjay5wcm90bxoRdmlk",
"ZW9fZnJhbWUucHJvdG8aC3N0YXRzLnByb3RvGhFkYXRhX3N0cmVhbS5wcm90",
- "byJzCg5Db25uZWN0UmVxdWVzdBILCgN1cmwYASACKAkSDQoFdG9rZW4YAiAC",
- "KAkSKwoHb3B0aW9ucxgDIAIoCzIaLmxpdmVraXQucHJvdG8uUm9vbU9wdGlv",
- "bnMSGAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIjCg9Db25uZWN0UmVzcG9u",
- "c2USEAoIYXN5bmNfaWQYASACKAQivwMKD0Nvbm5lY3RDYWxsYmFjaxIQCghh",
- "c3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEjcKBnJlc3VsdBgDIAEo",
- "CzIlLmxpdmVraXQucHJvdG8uQ29ubmVjdENhbGxiYWNrLlJlc3VsdEgAGokB",
- "ChVQYXJ0aWNpcGFudFdpdGhUcmFja3MSNAoLcGFydGljaXBhbnQYASACKAsy",
- "Hy5saXZla2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQSOgoMcHVibGljYXRp",
- "b25zGAIgAygLMiQubGl2ZWtpdC5wcm90by5Pd25lZFRyYWNrUHVibGljYXRp",
- "b24auAEKBlJlc3VsdBImCgRyb29tGAEgAigLMhgubGl2ZWtpdC5wcm90by5P",
- "d25lZFJvb20SOgoRbG9jYWxfcGFydGljaXBhbnQYAiACKAsyHy5saXZla2l0",
- "LnByb3RvLk93bmVkUGFydGljaXBhbnQSSgoMcGFydGljaXBhbnRzGAMgAygL",
- "MjQubGl2ZWtpdC5wcm90by5Db25uZWN0Q2FsbGJhY2suUGFydGljaXBhbnRX",
- "aXRoVHJhY2tzQgkKB21lc3NhZ2UicwoRRGlzY29ubmVjdFJlcXVlc3QSEwoL",
- "cm9vbV9oYW5kbGUYASACKAQSGAoQcmVxdWVzdF9hc3luY19pZBgCIAEoBBIv",
- "CgZyZWFzb24YAyABKA4yHy5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RSZWFz",
- "b24iJgoSRGlzY29ubmVjdFJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIiYK",
- "EkRpc2Nvbm5lY3RDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBCKcAQoTUHVi",
- "bGlzaFRyYWNrUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY",
- "ASACKAQSFAoMdHJhY2tfaGFuZGxlGAIgAigEEjMKB29wdGlvbnMYAyACKAsy",
- "Ii5saXZla2l0LnByb3RvLlRyYWNrUHVibGlzaE9wdGlvbnMSGAoQcmVxdWVz",
- "dF9hc3luY19pZBgEIAEoBCIoChRQdWJsaXNoVHJhY2tSZXNwb25zZRIQCghh",
- "c3luY19pZBgBIAIoBCKBAQoUUHVibGlzaFRyYWNrQ2FsbGJhY2sSEAoIYXN5",
- "bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlIABI7CgtwdWJsaWNhdGlvbhgD",
- "IAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRUcmFja1B1YmxpY2F0aW9uSABC",
- "CQoHbWVzc2FnZSKBAQoVVW5wdWJsaXNoVHJhY2tSZXF1ZXN0EiAKGGxvY2Fs",
- "X3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIRCgl0cmFja19zaWQYAiACKAkS",
- "GQoRc3RvcF9vbl91bnB1Ymxpc2gYAyACKAgSGAoQcmVxdWVzdF9hc3luY19p",
- "ZBgEIAEoBCIqChZVbnB1Ymxpc2hUcmFja1Jlc3BvbnNlEhAKCGFzeW5jX2lk",
- "GAEgAigEIjkKFlVucHVibGlzaFRyYWNrQ2FsbGJhY2sSEAoIYXN5bmNfaWQY",
- "ASACKAQSDQoFZXJyb3IYAiABKAki0wEKElB1Ymxpc2hEYXRhUmVxdWVzdBIg",
- "Chhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEAoIZGF0YV9wdHIY",
- "AiACKAQSEAoIZGF0YV9sZW4YAyACKAQSEAoIcmVsaWFibGUYBCACKAgSHAoQ",
- "ZGVzdGluYXRpb25fc2lkcxgFIAMoCUICGAESDQoFdG9waWMYBiABKAkSHgoW",
- "ZGVzdGluYXRpb25faWRlbnRpdGllcxgHIAMoCRIYChByZXF1ZXN0X2FzeW5j",
- "X2lkGAggASgEIicKE1B1Ymxpc2hEYXRhUmVzcG9uc2USEAoIYXN5bmNfaWQY",
- "ASACKAQiNgoTUHVibGlzaERhdGFDYWxsYmFjaxIQCghhc3luY19pZBgBIAIo",
- "BBINCgVlcnJvchgCIAEoCSLAAQobUHVibGlzaFRyYW5zY3JpcHRpb25SZXF1",
- "ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIcChRwYXJ0",
- "aWNpcGFudF9pZGVudGl0eRgCIAIoCRIQCgh0cmFja19pZBgDIAIoCRI1Cghz",
- "ZWdtZW50cxgEIAMoCzIjLmxpdmVraXQucHJvdG8uVHJhbnNjcmlwdGlvblNl",
- "Z21lbnQSGAoQcmVxdWVzdF9hc3luY19pZBgFIAEoBCIwChxQdWJsaXNoVHJh",
- "bnNjcmlwdGlvblJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIj8KHFB1Ymxp",
- "c2hUcmFuc2NyaXB0aW9uQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoF",
- "ZXJyb3IYAiABKAkikAEKFVB1Ymxpc2hTaXBEdG1mUmVxdWVzdBIgChhsb2Nh",
- "bF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSDAoEY29kZRgCIAIoDRINCgVk",
- "aWdpdBgDIAIoCRIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAQgAygJEhgK",
- "EHJlcXVlc3RfYXN5bmNfaWQYBSABKAQiKgoWUHVibGlzaFNpcER0bWZSZXNw",
- "b25zZRIQCghhc3luY19pZBgBIAIoBCI5ChZQdWJsaXNoU2lwRHRtZkNhbGxi",
- "YWNrEhAKCGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJImcKF1NldExv",
- "Y2FsTWV0YWRhdGFSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRs",
- "ZRgBIAIoBBIQCghtZXRhZGF0YRgCIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lk",
- "GAMgASgEIiwKGFNldExvY2FsTWV0YWRhdGFSZXNwb25zZRIQCghhc3luY19p",
- "ZBgBIAIoBCI7ChhTZXRMb2NhbE1ldGFkYXRhQ2FsbGJhY2sSEAoIYXN5bmNf",
- "aWQYASACKAQSDQoFZXJyb3IYAiABKAkingEKFlNlbmRDaGF0TWVzc2FnZVJl",
- "cXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEg8KB21l",
- "c3NhZ2UYAiACKAkSHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgDIAMoCRIX",
- "Cg9zZW5kZXJfaWRlbnRpdHkYBCABKAkSGAoQcmVxdWVzdF9hc3luY19pZBgF",
- "IAEoBCLWAQoWRWRpdENoYXRNZXNzYWdlUmVxdWVzdBIgChhsb2NhbF9wYXJ0",
- "aWNpcGFudF9oYW5kbGUYASACKAQSEQoJZWRpdF90ZXh0GAIgAigJEjQKEG9y",
- "aWdpbmFsX21lc3NhZ2UYAyACKAsyGi5saXZla2l0LnByb3RvLkNoYXRNZXNz",
- "YWdlEh4KFmRlc3RpbmF0aW9uX2lkZW50aXRpZXMYBCADKAkSFwoPc2VuZGVy",
- "X2lkZW50aXR5GAUgASgJEhgKEHJlcXVlc3RfYXN5bmNfaWQYBiABKAQiKwoX",
- "U2VuZENoYXRNZXNzYWdlUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiewoX",
- "U2VuZENoYXRNZXNzYWdlQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDwoF",
- "ZXJyb3IYAiABKAlIABIyCgxjaGF0X21lc3NhZ2UYAyABKAsyGi5saXZla2l0",
- "LnByb3RvLkNoYXRNZXNzYWdlSABCCQoHbWVzc2FnZSKLAQoZU2V0TG9jYWxB",
- "dHRyaWJ1dGVzUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY",
- "ASACKAQSMgoKYXR0cmlidXRlcxgCIAMoCzIeLmxpdmVraXQucHJvdG8uQXR0",
- "cmlidXRlc0VudHJ5EhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiLQoPQXR0",
- "cmlidXRlc0VudHJ5EgsKA2tleRgBIAIoCRINCgV2YWx1ZRgCIAIoCSIuChpT",
- "ZXRMb2NhbEF0dHJpYnV0ZXNSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI9",
- "ChpTZXRMb2NhbEF0dHJpYnV0ZXNDYWxsYmFjaxIQCghhc3luY19pZBgBIAIo",
- "BBINCgVlcnJvchgCIAEoCSJfChNTZXRMb2NhbE5hbWVSZXF1ZXN0EiAKGGxv",
- "Y2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIMCgRuYW1lGAIgAigJEhgK",
- "EHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiKAoUU2V0TG9jYWxOYW1lUmVzcG9u",
- "c2USEAoIYXN5bmNfaWQYASACKAQiNwoUU2V0TG9jYWxOYW1lQ2FsbGJhY2sS",
- "EAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkiRQoUU2V0U3Vic2Ny",
- "aWJlZFJlcXVlc3QSEQoJc3Vic2NyaWJlGAEgAigIEhoKEnB1YmxpY2F0aW9u",
- "X2hhbmRsZRgCIAIoBCIXChVTZXRTdWJzY3JpYmVkUmVzcG9uc2UiRwoWR2V0",
- "U2Vzc2lvblN0YXRzUmVxdWVzdBITCgtyb29tX2hhbmRsZRgBIAIoBBIYChBy",
- "ZXF1ZXN0X2FzeW5jX2lkGAIgASgEIisKF0dldFNlc3Npb25TdGF0c1Jlc3Bv",
- "bnNlEhAKCGFzeW5jX2lkGAEgAigEIvcBChdHZXRTZXNzaW9uU3RhdHNDYWxs",
- "YmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEoCUgAEj8KBnJl",
- "c3VsdBgDIAEoCzItLmxpdmVraXQucHJvdG8uR2V0U2Vzc2lvblN0YXRzQ2Fs",
- "bGJhY2suUmVzdWx0SAAabQoGUmVzdWx0EjAKD3B1Ymxpc2hlcl9zdGF0cxgB",
- "IAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3RhdHMSMQoQc3Vic2NyaWJlcl9z",
- "dGF0cxgCIAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3RhdHNCCQoHbWVzc2Fn",
- "ZSI7Cg1WaWRlb0VuY29kaW5nEhMKC21heF9iaXRyYXRlGAEgAigEEhUKDW1h",
- "eF9mcmFtZXJhdGUYAiACKAEiJAoNQXVkaW9FbmNvZGluZxITCgttYXhfYml0",
- "cmF0ZRgBIAIoBCK1AgoTVHJhY2tQdWJsaXNoT3B0aW9ucxI0Cg52aWRlb19l",
- "bmNvZGluZxgBIAEoCzIcLmxpdmVraXQucHJvdG8uVmlkZW9FbmNvZGluZxI0",
- "Cg5hdWRpb19lbmNvZGluZxgCIAEoCzIcLmxpdmVraXQucHJvdG8uQXVkaW9F",
- "bmNvZGluZxIuCgt2aWRlb19jb2RlYxgDIAEoDjIZLmxpdmVraXQucHJvdG8u",
- "VmlkZW9Db2RlYxILCgNkdHgYBCABKAgSCwoDcmVkGAUgASgIEhEKCXNpbXVs",
- "Y2FzdBgGIAEoCBIqCgZzb3VyY2UYByABKA4yGi5saXZla2l0LnByb3RvLlRy",
- "YWNrU291cmNlEg4KBnN0cmVhbRgIIAEoCRIZChFwcmVjb25uZWN0X2J1ZmZl",
- "chgJIAEoCCI9CglJY2VTZXJ2ZXISDAoEdXJscxgBIAMoCRIQCgh1c2VybmFt",
- "ZRgCIAEoCRIQCghwYXNzd29yZBgDIAEoCSLEAQoJUnRjQ29uZmlnEjsKEmlj",
- "ZV90cmFuc3BvcnRfdHlwZRgBIAEoDjIfLmxpdmVraXQucHJvdG8uSWNlVHJh",
- "bnNwb3J0VHlwZRJLChpjb250aW51YWxfZ2F0aGVyaW5nX3BvbGljeRgCIAEo",
- "DjInLmxpdmVraXQucHJvdG8uQ29udGludWFsR2F0aGVyaW5nUG9saWN5Ei0K",
- "C2ljZV9zZXJ2ZXJzGAMgAygLMhgubGl2ZWtpdC5wcm90by5JY2VTZXJ2ZXIi",
- "rgIKC1Jvb21PcHRpb25zEhYKDmF1dG9fc3Vic2NyaWJlGAEgASgIEhcKD2Fk",
- "YXB0aXZlX3N0cmVhbRgCIAEoCBIQCghkeW5hY2FzdBgDIAEoCBIsCgRlMmVl",
- "GAQgASgLMhoubGl2ZWtpdC5wcm90by5FMmVlT3B0aW9uc0ICGAESLAoKcnRj",
- "X2NvbmZpZxgFIAEoCzIYLmxpdmVraXQucHJvdG8uUnRjQ29uZmlnEhQKDGpv",
- "aW5fcmV0cmllcxgGIAEoDRIuCgplbmNyeXB0aW9uGAcgASgLMhoubGl2ZWtp",
- "dC5wcm90by5FMmVlT3B0aW9ucxIeChZzaW5nbGVfcGVlcl9jb25uZWN0aW9u",
- "GAggASgIEhoKEmNvbm5lY3RfdGltZW91dF9tcxgJIAEoBCJ3ChRUcmFuc2Ny",
- "aXB0aW9uU2VnbWVudBIKCgJpZBgBIAIoCRIMCgR0ZXh0GAIgAigJEhIKCnN0",
- "YXJ0X3RpbWUYAyACKAQSEAoIZW5kX3RpbWUYBCACKAQSDQoFZmluYWwYBSAC",
- "KAgSEAoIbGFuZ3VhZ2UYBiACKAkiMAoKQnVmZmVySW5mbxIQCghkYXRhX3B0",
- "chgBIAIoBBIQCghkYXRhX2xlbhgCIAIoBCJlCgtPd25lZEJ1ZmZlchItCgZo",
- "YW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEicK",
- "BGRhdGEYAiACKAsyGS5saXZla2l0LnByb3RvLkJ1ZmZlckluZm8iuxUKCVJv",
- "b21FdmVudBITCgtyb29tX2hhbmRsZRgBIAIoBBJEChVwYXJ0aWNpcGFudF9j",
- "b25uZWN0ZWQYAiABKAsyIy5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50Q29u",
- "bmVjdGVkSAASSgoYcGFydGljaXBhbnRfZGlzY29ubmVjdGVkGAMgASgLMiYu",
- "bGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudERpc2Nvbm5lY3RlZEgAEkMKFWxv",
- "Y2FsX3RyYWNrX3B1Ymxpc2hlZBgEIAEoCzIiLmxpdmVraXQucHJvdG8uTG9j",
- "YWxUcmFja1B1Ymxpc2hlZEgAEkcKF2xvY2FsX3RyYWNrX3VucHVibGlzaGVk",
- "GAUgASgLMiQubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrVW5wdWJsaXNoZWRI",
- "ABJFChZsb2NhbF90cmFja19zdWJzY3JpYmVkGAYgASgLMiMubGl2ZWtpdC5w",
- "cm90by5Mb2NhbFRyYWNrU3Vic2NyaWJlZEgAEjgKD3RyYWNrX3B1Ymxpc2hl",
- "ZBgHIAEoCzIdLmxpdmVraXQucHJvdG8uVHJhY2tQdWJsaXNoZWRIABI8ChF0",
- "cmFja191bnB1Ymxpc2hlZBgIIAEoCzIfLmxpdmVraXQucHJvdG8uVHJhY2tV",
- "bnB1Ymxpc2hlZEgAEjoKEHRyYWNrX3N1YnNjcmliZWQYCSABKAsyHi5saXZl",
- "a2l0LnByb3RvLlRyYWNrU3Vic2NyaWJlZEgAEj4KEnRyYWNrX3Vuc3Vic2Ny",
- "aWJlZBgKIAEoCzIgLmxpdmVraXQucHJvdG8uVHJhY2tVbnN1YnNjcmliZWRI",
- "ABJLChl0cmFja19zdWJzY3JpcHRpb25fZmFpbGVkGAsgASgLMiYubGl2ZWtp",
- "dC5wcm90by5UcmFja1N1YnNjcmlwdGlvbkZhaWxlZEgAEjAKC3RyYWNrX211",
- "dGVkGAwgASgLMhkubGl2ZWtpdC5wcm90by5UcmFja011dGVkSAASNAoNdHJh",
- "Y2tfdW5tdXRlZBgNIAEoCzIbLmxpdmVraXQucHJvdG8uVHJhY2tVbm11dGVk",
- "SAASRwoXYWN0aXZlX3NwZWFrZXJzX2NoYW5nZWQYDiABKAsyJC5saXZla2l0",
- "LnByb3RvLkFjdGl2ZVNwZWFrZXJzQ2hhbmdlZEgAEkMKFXJvb21fbWV0YWRh",
- "dGFfY2hhbmdlZBgPIAEoCzIiLmxpdmVraXQucHJvdG8uUm9vbU1ldGFkYXRh",
- "Q2hhbmdlZEgAEjkKEHJvb21fc2lkX2NoYW5nZWQYECABKAsyHS5saXZla2l0",
- "LnByb3RvLlJvb21TaWRDaGFuZ2VkSAASUQoccGFydGljaXBhbnRfbWV0YWRh",
- "dGFfY2hhbmdlZBgRIAEoCzIpLmxpdmVraXQucHJvdG8uUGFydGljaXBhbnRN",
- "ZXRhZGF0YUNoYW5nZWRIABJJChhwYXJ0aWNpcGFudF9uYW1lX2NoYW5nZWQY",
- "EiABKAsyJS5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50TmFtZUNoYW5nZWRI",
- "ABJVCh5wYXJ0aWNpcGFudF9hdHRyaWJ1dGVzX2NoYW5nZWQYEyABKAsyKy5s",
- "aXZla2l0LnByb3RvLlBhcnRpY2lwYW50QXR0cmlidXRlc0NoYW5nZWRIABJN",
- "Chpjb25uZWN0aW9uX3F1YWxpdHlfY2hhbmdlZBgUIAEoCzInLmxpdmVraXQu",
- "cHJvdG8uQ29ubmVjdGlvblF1YWxpdHlDaGFuZ2VkSAASSQoYY29ubmVjdGlv",
- "bl9zdGF0ZV9jaGFuZ2VkGBUgASgLMiUubGl2ZWtpdC5wcm90by5Db25uZWN0",
- "aW9uU3RhdGVDaGFuZ2VkSAASMwoMZGlzY29ubmVjdGVkGBYgASgLMhsubGl2",
- "ZWtpdC5wcm90by5EaXNjb25uZWN0ZWRIABIzCgxyZWNvbm5lY3RpbmcYFyAB",
- "KAsyGy5saXZla2l0LnByb3RvLlJlY29ubmVjdGluZ0gAEjEKC3JlY29ubmVj",
- "dGVkGBggASgLMhoubGl2ZWtpdC5wcm90by5SZWNvbm5lY3RlZEgAEj0KEmUy",
- "ZWVfc3RhdGVfY2hhbmdlZBgZIAEoCzIfLmxpdmVraXQucHJvdG8uRTJlZVN0",
- "YXRlQ2hhbmdlZEgAEiUKA2VvcxgaIAEoCzIWLmxpdmVraXQucHJvdG8uUm9v",
- "bUVPU0gAEkEKFGRhdGFfcGFja2V0X3JlY2VpdmVkGBsgASgLMiEubGl2ZWtp",
- "dC5wcm90by5EYXRhUGFja2V0UmVjZWl2ZWRIABJGChZ0cmFuc2NyaXB0aW9u",
- "X3JlY2VpdmVkGBwgASgLMiQubGl2ZWtpdC5wcm90by5UcmFuc2NyaXB0aW9u",
- "UmVjZWl2ZWRIABI6CgxjaGF0X21lc3NhZ2UYHSABKAsyIi5saXZla2l0LnBy",
- "b3RvLkNoYXRNZXNzYWdlUmVjZWl2ZWRIABJJChZzdHJlYW1faGVhZGVyX3Jl",
- "Y2VpdmVkGB4gASgLMicubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtSGVhZGVy",
- "UmVjZWl2ZWRIABJHChVzdHJlYW1fY2h1bmtfcmVjZWl2ZWQYHyABKAsyJi5s",
- "aXZla2l0LnByb3RvLkRhdGFTdHJlYW1DaHVua1JlY2VpdmVkSAASSwoXc3Ry",
- "ZWFtX3RyYWlsZXJfcmVjZWl2ZWQYICABKAsyKC5saXZla2l0LnByb3RvLkRh",
- "dGFTdHJlYW1UcmFpbGVyUmVjZWl2ZWRIABJpCiJkYXRhX2NoYW5uZWxfbG93",
- "X3RocmVzaG9sZF9jaGFuZ2VkGCEgASgLMjsubGl2ZWtpdC5wcm90by5EYXRh",
- "Q2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkQ2hhbmdlZEgAEj0K",
- "EmJ5dGVfc3RyZWFtX29wZW5lZBgiIAEoCzIfLmxpdmVraXQucHJvdG8uQnl0",
- "ZVN0cmVhbU9wZW5lZEgAEj0KEnRleHRfc3RyZWFtX29wZW5lZBgjIAEoCzIf",
- "LmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9wZW5lZEgAEi8KDHJvb21fdXBk",
- "YXRlZBgkIAEoCzIXLmxpdmVraXQucHJvdG8uUm9vbUluZm9IABIoCgVtb3Zl",
- "ZBglIAEoCzIXLmxpdmVraXQucHJvdG8uUm9vbUluZm9IABJCChRwYXJ0aWNp",
- "cGFudHNfdXBkYXRlZBgmIAEoCzIiLmxpdmVraXQucHJvdG8uUGFydGljaXBh",
- "bnRzVXBkYXRlZEgAEmIKJXBhcnRpY2lwYW50X2VuY3J5cHRpb25fc3RhdHVz",
- "X2NoYW5nZWQYJyABKAsyMS5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50RW5j",
- "cnlwdGlvblN0YXR1c0NoYW5nZWRIABJVCh5wYXJ0aWNpcGFudF9wZXJtaXNz",
- "aW9uX2NoYW5nZWQYKSABKAsyKy5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50",
- "UGVybWlzc2lvbkNoYW5nZWRIABI4Cg90b2tlbl9yZWZyZXNoZWQYKCABKAsy",
- "HS5saXZla2l0LnByb3RvLlRva2VuUmVmcmVzaGVkSABCCQoHbWVzc2FnZSLJ",
- "AgoIUm9vbUluZm8SCwoDc2lkGAEgASgJEgwKBG5hbWUYAiACKAkSEAoIbWV0",
- "YWRhdGEYAyACKAkSLgombG9zc3lfZGNfYnVmZmVyZWRfYW1vdW50X2xvd190",
- "aHJlc2hvbGQYBCACKAQSMQopcmVsaWFibGVfZGNfYnVmZmVyZWRfYW1vdW50",
- "X2xvd190aHJlc2hvbGQYBSACKAQSFQoNZW1wdHlfdGltZW91dBgGIAIoDRIZ",
- "ChFkZXBhcnR1cmVfdGltZW91dBgHIAIoDRIYChBtYXhfcGFydGljaXBhbnRz",
- "GAggAigNEhUKDWNyZWF0aW9uX3RpbWUYCSACKAMSGAoQbnVtX3BhcnRpY2lw",
- "YW50cxgKIAIoDRIWCg5udW1fcHVibGlzaGVycxgLIAIoDRIYChBhY3RpdmVf",
- "cmVjb3JkaW5nGAwgAigIImEKCU93bmVkUm9vbRItCgZoYW5kbGUYASACKAsy",
- "HS5saXZla2l0LnByb3RvLkZmaU93bmVkSGFuZGxlEiUKBGluZm8YAiACKAsy",
- "Fy5saXZla2l0LnByb3RvLlJvb21JbmZvIksKE1BhcnRpY2lwYW50c1VwZGF0",
- "ZWQSNAoMcGFydGljaXBhbnRzGAEgAygLMh4ubGl2ZWtpdC5wcm90by5QYXJ0",
- "aWNpcGFudEluZm8iRQoUUGFydGljaXBhbnRDb25uZWN0ZWQSLQoEaW5mbxgB",
- "IAIoCzIfLmxpdmVraXQucHJvdG8uT3duZWRQYXJ0aWNpcGFudCJzChdQYXJ0",
- "aWNpcGFudERpc2Nvbm5lY3RlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB",
- "IAIoCRI6ChFkaXNjb25uZWN0X3JlYXNvbhgCIAIoDjIfLmxpdmVraXQucHJv",
- "dG8uRGlzY29ubmVjdFJlYXNvbiIoChNMb2NhbFRyYWNrUHVibGlzaGVkEhEK",
- "CXRyYWNrX3NpZBgBIAIoCSIwChVMb2NhbFRyYWNrVW5wdWJsaXNoZWQSFwoP",
- "cHVibGljYXRpb25fc2lkGAEgAigJIikKFExvY2FsVHJhY2tTdWJzY3JpYmVk",
- "EhEKCXRyYWNrX3NpZBgCIAIoCSJpCg5UcmFja1B1Ymxpc2hlZBIcChRwYXJ0",
- "aWNpcGFudF9pZGVudGl0eRgBIAIoCRI5CgtwdWJsaWNhdGlvbhgCIAIoCzIk",
- "LmxpdmVraXQucHJvdG8uT3duZWRUcmFja1B1YmxpY2F0aW9uIkkKEFRyYWNr",
- "VW5wdWJsaXNoZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSFwoP",
- "cHVibGljYXRpb25fc2lkGAIgAigJIlkKD1RyYWNrU3Vic2NyaWJlZBIcChRw",
- "YXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIoCgV0cmFjaxgCIAIoCzIZLmxp",
- "dmVraXQucHJvdG8uT3duZWRUcmFjayJEChFUcmFja1Vuc3Vic2NyaWJlZBIc",
- "ChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIRCgl0cmFja19zaWQYAiAC",
- "KAkiWQoXVHJhY2tTdWJzY3JpcHRpb25GYWlsZWQSHAoUcGFydGljaXBhbnRf",
- "aWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJEg0KBWVycm9yGAMg",
- "AigJIj0KClRyYWNrTXV0ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASAC",
- "KAkSEQoJdHJhY2tfc2lkGAIgAigJIj8KDFRyYWNrVW5tdXRlZBIcChRwYXJ0",
- "aWNpcGFudF9pZGVudGl0eRgBIAIoCRIRCgl0cmFja19zaWQYAiACKAkiXwoQ",
- "RTJlZVN0YXRlQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIo",
- "CRItCgVzdGF0ZRgCIAIoDjIeLmxpdmVraXQucHJvdG8uRW5jcnlwdGlvblN0",
- "YXRlIjcKFUFjdGl2ZVNwZWFrZXJzQ2hhbmdlZBIeChZwYXJ0aWNpcGFudF9p",
- "ZGVudGl0aWVzGAEgAygJIicKE1Jvb21NZXRhZGF0YUNoYW5nZWQSEAoIbWV0",
- "YWRhdGEYASACKAkiHQoOUm9vbVNpZENoYW5nZWQSCwoDc2lkGAEgAigJIkwK",
- "GlBhcnRpY2lwYW50TWV0YWRhdGFDaGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lk",
- "ZW50aXR5GAEgAigJEhAKCG1ldGFkYXRhGAIgAigJIqwBChxQYXJ0aWNpcGFu",
- "dEF0dHJpYnV0ZXNDaGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEg",
- "AigJEjIKCmF0dHJpYnV0ZXMYAiADKAsyHi5saXZla2l0LnByb3RvLkF0dHJp",
- "YnV0ZXNFbnRyeRI6ChJjaGFuZ2VkX2F0dHJpYnV0ZXMYAyADKAsyHi5saXZl",
- "a2l0LnByb3RvLkF0dHJpYnV0ZXNFbnRyeSJYCiJQYXJ0aWNpcGFudEVuY3J5",
- "cHRpb25TdGF0dXNDaGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEg",
- "AigJEhQKDGlzX2VuY3J5cHRlZBgCIAIoCCJEChZQYXJ0aWNpcGFudE5hbWVD",
- "aGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEgwKBG5hbWUY",
- "AiACKAkidgocUGFydGljaXBhbnRQZXJtaXNzaW9uQ2hhbmdlZBIcChRwYXJ0",
- "aWNpcGFudF9pZGVudGl0eRgBIAIoCRI4CgpwZXJtaXNzaW9uGAIgASgLMiQu",
- "bGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudFBlcm1pc3Npb24iawoYQ29ubmVj",
- "dGlvblF1YWxpdHlDaGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEg",
- "AigJEjEKB3F1YWxpdHkYAiACKA4yIC5saXZla2l0LnByb3RvLkNvbm5lY3Rp",
- "b25RdWFsaXR5IkUKClVzZXJQYWNrZXQSKAoEZGF0YRgBIAIoCzIaLmxpdmVr",
- "aXQucHJvdG8uT3duZWRCdWZmZXISDQoFdG9waWMYAiABKAkieQoLQ2hhdE1l",
- "c3NhZ2USCgoCaWQYASACKAkSEQoJdGltZXN0YW1wGAIgAigDEg8KB21lc3Nh",
- "Z2UYAyACKAkSFgoOZWRpdF90aW1lc3RhbXAYBCABKAMSDwoHZGVsZXRlZBgF",
- "IAEoCBIRCglnZW5lcmF0ZWQYBiABKAgiYAoTQ2hhdE1lc3NhZ2VSZWNlaXZl",
- "ZBIrCgdtZXNzYWdlGAEgAigLMhoubGl2ZWtpdC5wcm90by5DaGF0TWVzc2Fn",
- "ZRIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCSImCgdTaXBEVE1GEgwK",
- "BGNvZGUYASACKA0SDQoFZGlnaXQYAiABKAkivwEKEkRhdGFQYWNrZXRSZWNl",
- "aXZlZBIrCgRraW5kGAEgAigOMh0ubGl2ZWtpdC5wcm90by5EYXRhUGFja2V0",
- "S2luZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCRIpCgR1c2VyGAQg",
- "ASgLMhkubGl2ZWtpdC5wcm90by5Vc2VyUGFja2V0SAASKgoIc2lwX2R0bWYY",
- "BSABKAsyFi5saXZla2l0LnByb3RvLlNpcERUTUZIAEIHCgV2YWx1ZSJ/ChVU",
- "cmFuc2NyaXB0aW9uUmVjZWl2ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY",
- "ASABKAkSEQoJdHJhY2tfc2lkGAIgASgJEjUKCHNlZ21lbnRzGAMgAygLMiMu",
- "bGl2ZWtpdC5wcm90by5UcmFuc2NyaXB0aW9uU2VnbWVudCJHChZDb25uZWN0",
- "aW9uU3RhdGVDaGFuZ2VkEi0KBXN0YXRlGAEgAigOMh4ubGl2ZWtpdC5wcm90",
- "by5Db25uZWN0aW9uU3RhdGUiCwoJQ29ubmVjdGVkIj8KDERpc2Nvbm5lY3Rl",
- "ZBIvCgZyZWFzb24YASACKA4yHy5saXZla2l0LnByb3RvLkRpc2Nvbm5lY3RS",
- "ZWFzb24iDgoMUmVjb25uZWN0aW5nIg0KC1JlY29ubmVjdGVkIh8KDlRva2Vu",
- "UmVmcmVzaGVkEg0KBXRva2VuGAEgAigJIgkKB1Jvb21FT1MijgcKCkRhdGFT",
- "dHJlYW0aqgEKClRleHRIZWFkZXISPwoOb3BlcmF0aW9uX3R5cGUYASACKA4y",
- "Jy5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uT3BlcmF0aW9uVHlwZRIPCgd2",
- "ZXJzaW9uGAIgASgFEhoKEnJlcGx5X3RvX3N0cmVhbV9pZBgDIAEoCRIbChNh",
- "dHRhY2hlZF9zdHJlYW1faWRzGAQgAygJEhEKCWdlbmVyYXRlZBgFIAEoCBoa",
- "CgpCeXRlSGVhZGVyEgwKBG5hbWUYASACKAka6wIKBkhlYWRlchIRCglzdHJl",
- "YW1faWQYASACKAkSEQoJdGltZXN0YW1wGAIgAigDEhEKCW1pbWVfdHlwZRgD",
- "IAIoCRINCgV0b3BpYxgEIAIoCRIUCgx0b3RhbF9sZW5ndGgYBSABKAQSRAoK",
- "YXR0cmlidXRlcxgGIAMoCzIwLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5I",
- "ZWFkZXIuQXR0cmlidXRlc0VudHJ5EjsKC3RleHRfaGVhZGVyGAcgASgLMiQu",
- "bGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLlRleHRIZWFkZXJIABI7CgtieXRl",
- "X2hlYWRlchgIIAEoCzIkLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5CeXRl",
- "SGVhZGVySAAaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2",
- "YWx1ZRgCIAEoCToCOAFCEAoOY29udGVudF9oZWFkZXIaXQoFQ2h1bmsSEQoJ",
- "c3RyZWFtX2lkGAEgAigJEhMKC2NodW5rX2luZGV4GAIgAigEEg8KB2NvbnRl",
- "bnQYAyACKAwSDwoHdmVyc2lvbhgEIAEoBRIKCgJpdhgFIAEoDBqmAQoHVHJh",
- "aWxlchIRCglzdHJlYW1faWQYASACKAkSDgoGcmVhc29uGAIgAigJEkUKCmF0",
- "dHJpYnV0ZXMYAyADKAsyMS5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVHJh",
- "aWxlci5BdHRyaWJ1dGVzRW50cnkaMQoPQXR0cmlidXRlc0VudHJ5EgsKA2tl",
- "eRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQQoNT3BlcmF0aW9uVHlwZRIK",
- "CgZDUkVBVEUQABIKCgZVUERBVEUQARIKCgZERUxFVEUQAhIMCghSRUFDVElP",
- "ThADImoKGERhdGFTdHJlYW1IZWFkZXJSZWNlaXZlZBIcChRwYXJ0aWNpcGFu",
- "dF9pZGVudGl0eRgBIAIoCRIwCgZoZWFkZXIYAiACKAsyIC5saXZla2l0LnBy",
- "b3RvLkRhdGFTdHJlYW0uSGVhZGVyImcKF0RhdGFTdHJlYW1DaHVua1JlY2Vp",
- "dmVkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEi4KBWNodW5rGAIg",
- "AigLMh8ubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLkNodW5rIm0KGURhdGFT",
- "dHJlYW1UcmFpbGVyUmVjZWl2ZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkY",
- "ASACKAkSMgoHdHJhaWxlchgCIAIoCzIhLmxpdmVraXQucHJvdG8uRGF0YVN0",
- "cmVhbS5UcmFpbGVyIsABChdTZW5kU3RyZWFtSGVhZGVyUmVxdWVzdBIgChhs",
- "b2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSMAoGaGVhZGVyGAIgAigL",
- "MiAubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFtLkhlYWRlchIeChZkZXN0aW5h",
- "dGlvbl9pZGVudGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAIo",
- "CRIYChByZXF1ZXN0X2FzeW5jX2lkGAUgASgEIr0BChZTZW5kU3RyZWFtQ2h1",
- "bmtSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIu",
- "CgVjaHVuaxgCIAIoCzIfLmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5DaHVu",
- "axIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAMgAygJEhcKD3NlbmRlcl9p",
- "ZGVudGl0eRgEIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lkGAUgASgEIsMBChhT",
- "ZW5kU3RyZWFtVHJhaWxlclJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRf",
- "aGFuZGxlGAEgAigEEjIKB3RyYWlsZXIYAiACKAsyIS5saXZla2l0LnByb3Rv",
- "LkRhdGFTdHJlYW0uVHJhaWxlchIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVz",
- "GAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAIoCRIYChByZXF1ZXN0X2Fz",
- "eW5jX2lkGAUgASgEIiwKGFNlbmRTdHJlYW1IZWFkZXJSZXNwb25zZRIQCghh",
- "c3luY19pZBgBIAIoBCIrChdTZW5kU3RyZWFtQ2h1bmtSZXNwb25zZRIQCghh",
- "c3luY19pZBgBIAIoBCItChlTZW5kU3RyZWFtVHJhaWxlclJlc3BvbnNlEhAK",
- "CGFzeW5jX2lkGAEgAigEIjsKGFNlbmRTdHJlYW1IZWFkZXJDYWxsYmFjaxIQ",
- "Cghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSI6ChdTZW5kU3RyZWFt",
- "Q2h1bmtDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEo",
- "CSI8ChlTZW5kU3RyZWFtVHJhaWxlckNhbGxiYWNrEhAKCGFzeW5jX2lkGAEg",
- "AigEEg0KBWVycm9yGAIgASgJIpMBCi9TZXREYXRhQ2hhbm5lbEJ1ZmZlcmVk",
- "QW1vdW50TG93VGhyZXNob2xkUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFu",
- "dF9oYW5kbGUYASACKAQSEQoJdGhyZXNob2xkGAIgAigEEisKBGtpbmQYAyAC",
- "KA4yHS5saXZla2l0LnByb3RvLkRhdGFQYWNrZXRLaW5kIjIKMFNldERhdGFD",
- "aGFubmVsQnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGRSZXNwb25zZSJuCixE",
- "YXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkQ2hhbmdlZBIr",
- "CgRraW5kGAEgAigOMh0ubGl2ZWtpdC5wcm90by5EYXRhUGFja2V0S2luZBIR",
- "Cgl0aHJlc2hvbGQYAiACKAQiZgoQQnl0ZVN0cmVhbU9wZW5lZBI0CgZyZWFk",
- "ZXIYASACKAsyJC5saXZla2l0LnByb3RvLk93bmVkQnl0ZVN0cmVhbVJlYWRl",
- "chIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCSJmChBUZXh0U3RyZWFt",
- "T3BlbmVkEjQKBnJlYWRlchgBIAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRU",
- "ZXh0U3RyZWFtUmVhZGVyEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAIgAigJ",
- "KlAKEEljZVRyYW5zcG9ydFR5cGUSEwoPVFJBTlNQT1JUX1JFTEFZEAASFAoQ",
- "VFJBTlNQT1JUX05PSE9TVBABEhEKDVRSQU5TUE9SVF9BTEwQAipDChhDb250",
- "aW51YWxHYXRoZXJpbmdQb2xpY3kSDwoLR0FUSEVSX09OQ0UQABIWChJHQVRI",
- "RVJfQ09OVElOVUFMTFkQASpgChFDb25uZWN0aW9uUXVhbGl0eRIQCgxRVUFM",
- "SVRZX1BPT1IQABIQCgxRVUFMSVRZX0dPT0QQARIVChFRVUFMSVRZX0VYQ0VM",
- "TEVOVBACEhAKDFFVQUxJVFlfTE9TVBADKlMKD0Nvbm5lY3Rpb25TdGF0ZRIV",
- "ChFDT05OX0RJU0NPTk5FQ1RFRBAAEhIKDkNPTk5fQ09OTkVDVEVEEAESFQoR",
- "Q09OTl9SRUNPTk5FQ1RJTkcQAiozCg5EYXRhUGFja2V0S2luZBIOCgpLSU5E",
- "X0xPU1NZEAASEQoNS0lORF9SRUxJQUJMRRABQhCqAg1MaXZlS2l0LlByb3Rv"));
+ "bxoQZGF0YV90cmFjay5wcm90byJzCg5Db25uZWN0UmVxdWVzdBILCgN1cmwY",
+ "ASACKAkSDQoFdG9rZW4YAiACKAkSKwoHb3B0aW9ucxgDIAIoCzIaLmxpdmVr",
+ "aXQucHJvdG8uUm9vbU9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgEIAEo",
+ "BCIjCg9Db25uZWN0UmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQivwMKD0Nv",
+ "bm5lY3RDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVlcnJvchgCIAEo",
+ "CUgAEjcKBnJlc3VsdBgDIAEoCzIlLmxpdmVraXQucHJvdG8uQ29ubmVjdENh",
+ "bGxiYWNrLlJlc3VsdEgAGokBChVQYXJ0aWNpcGFudFdpdGhUcmFja3MSNAoL",
+ "cGFydGljaXBhbnQYASACKAsyHy5saXZla2l0LnByb3RvLk93bmVkUGFydGlj",
+ "aXBhbnQSOgoMcHVibGljYXRpb25zGAIgAygLMiQubGl2ZWtpdC5wcm90by5P",
+ "d25lZFRyYWNrUHVibGljYXRpb24auAEKBlJlc3VsdBImCgRyb29tGAEgAigL",
+ "MhgubGl2ZWtpdC5wcm90by5Pd25lZFJvb20SOgoRbG9jYWxfcGFydGljaXBh",
+ "bnQYAiACKAsyHy5saXZla2l0LnByb3RvLk93bmVkUGFydGljaXBhbnQSSgoM",
+ "cGFydGljaXBhbnRzGAMgAygLMjQubGl2ZWtpdC5wcm90by5Db25uZWN0Q2Fs",
+ "bGJhY2suUGFydGljaXBhbnRXaXRoVHJhY2tzQgkKB21lc3NhZ2UicwoRRGlz",
+ "Y29ubmVjdFJlcXVlc3QSEwoLcm9vbV9oYW5kbGUYASACKAQSGAoQcmVxdWVz",
+ "dF9hc3luY19pZBgCIAEoBBIvCgZyZWFzb24YAyABKA4yHy5saXZla2l0LnBy",
+ "b3RvLkRpc2Nvbm5lY3RSZWFzb24iJgoSRGlzY29ubmVjdFJlc3BvbnNlEhAK",
+ "CGFzeW5jX2lkGAEgAigEIiYKEkRpc2Nvbm5lY3RDYWxsYmFjaxIQCghhc3lu",
+ "Y19pZBgBIAIoBCKcAQoTUHVibGlzaFRyYWNrUmVxdWVzdBIgChhsb2NhbF9w",
+ "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSFAoMdHJhY2tfaGFuZGxlGAIgAigE",
+ "EjMKB29wdGlvbnMYAyACKAsyIi5saXZla2l0LnByb3RvLlRyYWNrUHVibGlz",
+ "aE9wdGlvbnMSGAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIoChRQdWJsaXNo",
+ "VHJhY2tSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCKBAQoUUHVibGlzaFRy",
+ "YWNrQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlI",
+ "ABI7CgtwdWJsaWNhdGlvbhgDIAEoCzIkLmxpdmVraXQucHJvdG8uT3duZWRU",
+ "cmFja1B1YmxpY2F0aW9uSABCCQoHbWVzc2FnZSKBAQoVVW5wdWJsaXNoVHJh",
+ "Y2tSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIR",
+ "Cgl0cmFja19zaWQYAiACKAkSGQoRc3RvcF9vbl91bnB1Ymxpc2gYAyACKAgS",
+ "GAoQcmVxdWVzdF9hc3luY19pZBgEIAEoBCIqChZVbnB1Ymxpc2hUcmFja1Jl",
+ "c3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjkKFlVucHVibGlzaFRyYWNrQ2Fs",
+ "bGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAki0wEKElB1",
+ "Ymxpc2hEYXRhUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY",
+ "ASACKAQSEAoIZGF0YV9wdHIYAiACKAQSEAoIZGF0YV9sZW4YAyACKAQSEAoI",
+ "cmVsaWFibGUYBCACKAgSHAoQZGVzdGluYXRpb25fc2lkcxgFIAMoCUICGAES",
+ "DQoFdG9waWMYBiABKAkSHgoWZGVzdGluYXRpb25faWRlbnRpdGllcxgHIAMo",
+ "CRIYChByZXF1ZXN0X2FzeW5jX2lkGAggASgEIicKE1B1Ymxpc2hEYXRhUmVz",
+ "cG9uc2USEAoIYXN5bmNfaWQYASACKAQiNgoTUHVibGlzaERhdGFDYWxsYmFj",
+ "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSLAAQobUHVibGlz",
+ "aFRyYW5zY3JpcHRpb25SZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hh",
+ "bmRsZRgBIAIoBBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgCIAIoCRIQCgh0",
+ "cmFja19pZBgDIAIoCRI1CghzZWdtZW50cxgEIAMoCzIjLmxpdmVraXQucHJv",
+ "dG8uVHJhbnNjcmlwdGlvblNlZ21lbnQSGAoQcmVxdWVzdF9hc3luY19pZBgF",
+ "IAEoBCIwChxQdWJsaXNoVHJhbnNjcmlwdGlvblJlc3BvbnNlEhAKCGFzeW5j",
+ "X2lkGAEgAigEIj8KHFB1Ymxpc2hUcmFuc2NyaXB0aW9uQ2FsbGJhY2sSEAoI",
+ "YXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkikAEKFVB1Ymxpc2hTaXBE",
+ "dG1mUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQS",
+ "DAoEY29kZRgCIAIoDRINCgVkaWdpdBgDIAIoCRIeChZkZXN0aW5hdGlvbl9p",
+ "ZGVudGl0aWVzGAQgAygJEhgKEHJlcXVlc3RfYXN5bmNfaWQYBSABKAQiKgoW",
+ "UHVibGlzaFNpcER0bWZSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI5ChZQ",
+ "dWJsaXNoU2lwRHRtZkNhbGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg0KBWVy",
+ "cm9yGAIgASgJImcKF1NldExvY2FsTWV0YWRhdGFSZXF1ZXN0EiAKGGxvY2Fs",
+ "X3BhcnRpY2lwYW50X2hhbmRsZRgBIAIoBBIQCghtZXRhZGF0YRgCIAIoCRIY",
+ "ChByZXF1ZXN0X2FzeW5jX2lkGAMgASgEIiwKGFNldExvY2FsTWV0YWRhdGFS",
+ "ZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCI7ChhTZXRMb2NhbE1ldGFkYXRh",
+ "Q2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IYAiABKAkingEK",
+ "FlNlbmRDaGF0TWVzc2FnZVJlcXVlc3QSIAoYbG9jYWxfcGFydGljaXBhbnRf",
+ "aGFuZGxlGAEgAigEEg8KB21lc3NhZ2UYAiACKAkSHgoWZGVzdGluYXRpb25f",
+ "aWRlbnRpdGllcxgDIAMoCRIXCg9zZW5kZXJfaWRlbnRpdHkYBCABKAkSGAoQ",
+ "cmVxdWVzdF9hc3luY19pZBgFIAEoBCLWAQoWRWRpdENoYXRNZXNzYWdlUmVx",
+ "dWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEQoJZWRp",
+ "dF90ZXh0GAIgAigJEjQKEG9yaWdpbmFsX21lc3NhZ2UYAyACKAsyGi5saXZl",
+ "a2l0LnByb3RvLkNoYXRNZXNzYWdlEh4KFmRlc3RpbmF0aW9uX2lkZW50aXRp",
+ "ZXMYBCADKAkSFwoPc2VuZGVyX2lkZW50aXR5GAUgASgJEhgKEHJlcXVlc3Rf",
+ "YXN5bmNfaWQYBiABKAQiKwoXU2VuZENoYXRNZXNzYWdlUmVzcG9uc2USEAoI",
+ "YXN5bmNfaWQYASACKAQiewoXU2VuZENoYXRNZXNzYWdlQ2FsbGJhY2sSEAoI",
+ "YXN5bmNfaWQYASACKAQSDwoFZXJyb3IYAiABKAlIABIyCgxjaGF0X21lc3Nh",
+ "Z2UYAyABKAsyGi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlSABCCQoHbWVz",
+ "c2FnZSKLAQoZU2V0TG9jYWxBdHRyaWJ1dGVzUmVxdWVzdBIgChhsb2NhbF9w",
+ "YXJ0aWNpcGFudF9oYW5kbGUYASACKAQSMgoKYXR0cmlidXRlcxgCIAMoCzIe",
+ "LmxpdmVraXQucHJvdG8uQXR0cmlidXRlc0VudHJ5EhgKEHJlcXVlc3RfYXN5",
+ "bmNfaWQYAyABKAQiLQoPQXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAIoCRIN",
+ "CgV2YWx1ZRgCIAIoCSIuChpTZXRMb2NhbEF0dHJpYnV0ZXNSZXNwb25zZRIQ",
+ "Cghhc3luY19pZBgBIAIoBCI9ChpTZXRMb2NhbEF0dHJpYnV0ZXNDYWxsYmFj",
+ "axIQCghhc3luY19pZBgBIAIoBBINCgVlcnJvchgCIAEoCSJfChNTZXRMb2Nh",
+ "bE5hbWVSZXF1ZXN0EiAKGGxvY2FsX3BhcnRpY2lwYW50X2hhbmRsZRgBIAIo",
+ "BBIMCgRuYW1lGAIgAigJEhgKEHJlcXVlc3RfYXN5bmNfaWQYAyABKAQiKAoU",
+ "U2V0TG9jYWxOYW1lUmVzcG9uc2USEAoIYXN5bmNfaWQYASACKAQiNwoUU2V0",
+ "TG9jYWxOYW1lQ2FsbGJhY2sSEAoIYXN5bmNfaWQYASACKAQSDQoFZXJyb3IY",
+ "AiABKAkiRQoUU2V0U3Vic2NyaWJlZFJlcXVlc3QSEQoJc3Vic2NyaWJlGAEg",
+ "AigIEhoKEnB1YmxpY2F0aW9uX2hhbmRsZRgCIAIoBCIXChVTZXRTdWJzY3Jp",
+ "YmVkUmVzcG9uc2UiRwoWR2V0U2Vzc2lvblN0YXRzUmVxdWVzdBITCgtyb29t",
+ "X2hhbmRsZRgBIAIoBBIYChByZXF1ZXN0X2FzeW5jX2lkGAIgASgEIisKF0dl",
+ "dFNlc3Npb25TdGF0c1Jlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIvcBChdH",
+ "ZXRTZXNzaW9uU3RhdHNDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBIPCgVl",
+ "cnJvchgCIAEoCUgAEj8KBnJlc3VsdBgDIAEoCzItLmxpdmVraXQucHJvdG8u",
+ "R2V0U2Vzc2lvblN0YXRzQ2FsbGJhY2suUmVzdWx0SAAabQoGUmVzdWx0EjAK",
+ "D3B1Ymxpc2hlcl9zdGF0cxgBIAMoCzIXLmxpdmVraXQucHJvdG8uUnRjU3Rh",
+ "dHMSMQoQc3Vic2NyaWJlcl9zdGF0cxgCIAMoCzIXLmxpdmVraXQucHJvdG8u",
+ "UnRjU3RhdHNCCQoHbWVzc2FnZSI7Cg1WaWRlb0VuY29kaW5nEhMKC21heF9i",
+ "aXRyYXRlGAEgAigEEhUKDW1heF9mcmFtZXJhdGUYAiACKAEiJAoNQXVkaW9F",
+ "bmNvZGluZxITCgttYXhfYml0cmF0ZRgBIAIoBCK1AgoTVHJhY2tQdWJsaXNo",
+ "T3B0aW9ucxI0Cg52aWRlb19lbmNvZGluZxgBIAEoCzIcLmxpdmVraXQucHJv",
+ "dG8uVmlkZW9FbmNvZGluZxI0Cg5hdWRpb19lbmNvZGluZxgCIAEoCzIcLmxp",
+ "dmVraXQucHJvdG8uQXVkaW9FbmNvZGluZxIuCgt2aWRlb19jb2RlYxgDIAEo",
+ "DjIZLmxpdmVraXQucHJvdG8uVmlkZW9Db2RlYxILCgNkdHgYBCABKAgSCwoD",
+ "cmVkGAUgASgIEhEKCXNpbXVsY2FzdBgGIAEoCBIqCgZzb3VyY2UYByABKA4y",
+ "Gi5saXZla2l0LnByb3RvLlRyYWNrU291cmNlEg4KBnN0cmVhbRgIIAEoCRIZ",
+ "ChFwcmVjb25uZWN0X2J1ZmZlchgJIAEoCCI9CglJY2VTZXJ2ZXISDAoEdXJs",
+ "cxgBIAMoCRIQCgh1c2VybmFtZRgCIAEoCRIQCghwYXNzd29yZBgDIAEoCSLE",
+ "AQoJUnRjQ29uZmlnEjsKEmljZV90cmFuc3BvcnRfdHlwZRgBIAEoDjIfLmxp",
+ "dmVraXQucHJvdG8uSWNlVHJhbnNwb3J0VHlwZRJLChpjb250aW51YWxfZ2F0",
+ "aGVyaW5nX3BvbGljeRgCIAEoDjInLmxpdmVraXQucHJvdG8uQ29udGludWFs",
+ "R2F0aGVyaW5nUG9saWN5Ei0KC2ljZV9zZXJ2ZXJzGAMgAygLMhgubGl2ZWtp",
+ "dC5wcm90by5JY2VTZXJ2ZXIirgIKC1Jvb21PcHRpb25zEhYKDmF1dG9fc3Vi",
+ "c2NyaWJlGAEgASgIEhcKD2FkYXB0aXZlX3N0cmVhbRgCIAEoCBIQCghkeW5h",
+ "Y2FzdBgDIAEoCBIsCgRlMmVlGAQgASgLMhoubGl2ZWtpdC5wcm90by5FMmVl",
+ "T3B0aW9uc0ICGAESLAoKcnRjX2NvbmZpZxgFIAEoCzIYLmxpdmVraXQucHJv",
+ "dG8uUnRjQ29uZmlnEhQKDGpvaW5fcmV0cmllcxgGIAEoDRIuCgplbmNyeXB0",
+ "aW9uGAcgASgLMhoubGl2ZWtpdC5wcm90by5FMmVlT3B0aW9ucxIeChZzaW5n",
+ "bGVfcGVlcl9jb25uZWN0aW9uGAggASgIEhoKEmNvbm5lY3RfdGltZW91dF9t",
+ "cxgJIAEoBCJ3ChRUcmFuc2NyaXB0aW9uU2VnbWVudBIKCgJpZBgBIAIoCRIM",
+ "CgR0ZXh0GAIgAigJEhIKCnN0YXJ0X3RpbWUYAyACKAQSEAoIZW5kX3RpbWUY",
+ "BCACKAQSDQoFZmluYWwYBSACKAgSEAoIbGFuZ3VhZ2UYBiACKAkiMAoKQnVm",
+ "ZmVySW5mbxIQCghkYXRhX3B0chgBIAIoBBIQCghkYXRhX2xlbhgCIAIoBCJl",
+ "CgtPd25lZEJ1ZmZlchItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3Rv",
+ "LkZmaU93bmVkSGFuZGxlEicKBGRhdGEYAiACKAsyGS5saXZla2l0LnByb3Rv",
+ "LkJ1ZmZlckluZm8ixRYKCVJvb21FdmVudBITCgtyb29tX2hhbmRsZRgBIAIo",
+ "BBJEChVwYXJ0aWNpcGFudF9jb25uZWN0ZWQYAiABKAsyIy5saXZla2l0LnBy",
+ "b3RvLlBhcnRpY2lwYW50Q29ubmVjdGVkSAASSgoYcGFydGljaXBhbnRfZGlz",
+ "Y29ubmVjdGVkGAMgASgLMiYubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudERp",
+ "c2Nvbm5lY3RlZEgAEkMKFWxvY2FsX3RyYWNrX3B1Ymxpc2hlZBgEIAEoCzIi",
+ "LmxpdmVraXQucHJvdG8uTG9jYWxUcmFja1B1Ymxpc2hlZEgAEkcKF2xvY2Fs",
+ "X3RyYWNrX3VucHVibGlzaGVkGAUgASgLMiQubGl2ZWtpdC5wcm90by5Mb2Nh",
+ "bFRyYWNrVW5wdWJsaXNoZWRIABJFChZsb2NhbF90cmFja19zdWJzY3JpYmVk",
+ "GAYgASgLMiMubGl2ZWtpdC5wcm90by5Mb2NhbFRyYWNrU3Vic2NyaWJlZEgA",
+ "EjgKD3RyYWNrX3B1Ymxpc2hlZBgHIAEoCzIdLmxpdmVraXQucHJvdG8uVHJh",
+ "Y2tQdWJsaXNoZWRIABI8ChF0cmFja191bnB1Ymxpc2hlZBgIIAEoCzIfLmxp",
+ "dmVraXQucHJvdG8uVHJhY2tVbnB1Ymxpc2hlZEgAEjoKEHRyYWNrX3N1YnNj",
+ "cmliZWQYCSABKAsyHi5saXZla2l0LnByb3RvLlRyYWNrU3Vic2NyaWJlZEgA",
+ "Ej4KEnRyYWNrX3Vuc3Vic2NyaWJlZBgKIAEoCzIgLmxpdmVraXQucHJvdG8u",
+ "VHJhY2tVbnN1YnNjcmliZWRIABJLChl0cmFja19zdWJzY3JpcHRpb25fZmFp",
+ "bGVkGAsgASgLMiYubGl2ZWtpdC5wcm90by5UcmFja1N1YnNjcmlwdGlvbkZh",
+ "aWxlZEgAEjAKC3RyYWNrX211dGVkGAwgASgLMhkubGl2ZWtpdC5wcm90by5U",
+ "cmFja011dGVkSAASNAoNdHJhY2tfdW5tdXRlZBgNIAEoCzIbLmxpdmVraXQu",
+ "cHJvdG8uVHJhY2tVbm11dGVkSAASRwoXYWN0aXZlX3NwZWFrZXJzX2NoYW5n",
+ "ZWQYDiABKAsyJC5saXZla2l0LnByb3RvLkFjdGl2ZVNwZWFrZXJzQ2hhbmdl",
+ "ZEgAEkMKFXJvb21fbWV0YWRhdGFfY2hhbmdlZBgPIAEoCzIiLmxpdmVraXQu",
+ "cHJvdG8uUm9vbU1ldGFkYXRhQ2hhbmdlZEgAEjkKEHJvb21fc2lkX2NoYW5n",
+ "ZWQYECABKAsyHS5saXZla2l0LnByb3RvLlJvb21TaWRDaGFuZ2VkSAASUQoc",
+ "cGFydGljaXBhbnRfbWV0YWRhdGFfY2hhbmdlZBgRIAEoCzIpLmxpdmVraXQu",
+ "cHJvdG8uUGFydGljaXBhbnRNZXRhZGF0YUNoYW5nZWRIABJJChhwYXJ0aWNp",
+ "cGFudF9uYW1lX2NoYW5nZWQYEiABKAsyJS5saXZla2l0LnByb3RvLlBhcnRp",
+ "Y2lwYW50TmFtZUNoYW5nZWRIABJVCh5wYXJ0aWNpcGFudF9hdHRyaWJ1dGVz",
+ "X2NoYW5nZWQYEyABKAsyKy5saXZla2l0LnByb3RvLlBhcnRpY2lwYW50QXR0",
+ "cmlidXRlc0NoYW5nZWRIABJNChpjb25uZWN0aW9uX3F1YWxpdHlfY2hhbmdl",
+ "ZBgUIAEoCzInLmxpdmVraXQucHJvdG8uQ29ubmVjdGlvblF1YWxpdHlDaGFu",
+ "Z2VkSAASSQoYY29ubmVjdGlvbl9zdGF0ZV9jaGFuZ2VkGBUgASgLMiUubGl2",
+ "ZWtpdC5wcm90by5Db25uZWN0aW9uU3RhdGVDaGFuZ2VkSAASMwoMZGlzY29u",
+ "bmVjdGVkGBYgASgLMhsubGl2ZWtpdC5wcm90by5EaXNjb25uZWN0ZWRIABIz",
+ "CgxyZWNvbm5lY3RpbmcYFyABKAsyGy5saXZla2l0LnByb3RvLlJlY29ubmVj",
+ "dGluZ0gAEjEKC3JlY29ubmVjdGVkGBggASgLMhoubGl2ZWtpdC5wcm90by5S",
+ "ZWNvbm5lY3RlZEgAEj0KEmUyZWVfc3RhdGVfY2hhbmdlZBgZIAEoCzIfLmxp",
+ "dmVraXQucHJvdG8uRTJlZVN0YXRlQ2hhbmdlZEgAEiUKA2VvcxgaIAEoCzIW",
+ "LmxpdmVraXQucHJvdG8uUm9vbUVPU0gAEkEKFGRhdGFfcGFja2V0X3JlY2Vp",
+ "dmVkGBsgASgLMiEubGl2ZWtpdC5wcm90by5EYXRhUGFja2V0UmVjZWl2ZWRI",
+ "ABJGChZ0cmFuc2NyaXB0aW9uX3JlY2VpdmVkGBwgASgLMiQubGl2ZWtpdC5w",
+ "cm90by5UcmFuc2NyaXB0aW9uUmVjZWl2ZWRIABI6CgxjaGF0X21lc3NhZ2UY",
+ "HSABKAsyIi5saXZla2l0LnByb3RvLkNoYXRNZXNzYWdlUmVjZWl2ZWRIABJJ",
+ "ChZzdHJlYW1faGVhZGVyX3JlY2VpdmVkGB4gASgLMicubGl2ZWtpdC5wcm90",
+ "by5EYXRhU3RyZWFtSGVhZGVyUmVjZWl2ZWRIABJHChVzdHJlYW1fY2h1bmtf",
+ "cmVjZWl2ZWQYHyABKAsyJi5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1DaHVu",
+ "a1JlY2VpdmVkSAASSwoXc3RyZWFtX3RyYWlsZXJfcmVjZWl2ZWQYICABKAsy",
+ "KC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW1UcmFpbGVyUmVjZWl2ZWRIABJp",
+ "CiJkYXRhX2NoYW5uZWxfbG93X3RocmVzaG9sZF9jaGFuZ2VkGCEgASgLMjsu",
+ "bGl2ZWtpdC5wcm90by5EYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhy",
+ "ZXNob2xkQ2hhbmdlZEgAEj0KEmJ5dGVfc3RyZWFtX29wZW5lZBgiIAEoCzIf",
+ "LmxpdmVraXQucHJvdG8uQnl0ZVN0cmVhbU9wZW5lZEgAEj0KEnRleHRfc3Ry",
+ "ZWFtX29wZW5lZBgjIAEoCzIfLmxpdmVraXQucHJvdG8uVGV4dFN0cmVhbU9w",
+ "ZW5lZEgAEi8KDHJvb21fdXBkYXRlZBgkIAEoCzIXLmxpdmVraXQucHJvdG8u",
+ "Um9vbUluZm9IABIoCgVtb3ZlZBglIAEoCzIXLmxpdmVraXQucHJvdG8uUm9v",
+ "bUluZm9IABJCChRwYXJ0aWNpcGFudHNfdXBkYXRlZBgmIAEoCzIiLmxpdmVr",
+ "aXQucHJvdG8uUGFydGljaXBhbnRzVXBkYXRlZEgAEmIKJXBhcnRpY2lwYW50",
+ "X2VuY3J5cHRpb25fc3RhdHVzX2NoYW5nZWQYJyABKAsyMS5saXZla2l0LnBy",
+ "b3RvLlBhcnRpY2lwYW50RW5jcnlwdGlvblN0YXR1c0NoYW5nZWRIABJVCh5w",
+ "YXJ0aWNpcGFudF9wZXJtaXNzaW9uX2NoYW5nZWQYKSABKAsyKy5saXZla2l0",
+ "LnByb3RvLlBhcnRpY2lwYW50UGVybWlzc2lvbkNoYW5nZWRIABI4Cg90b2tl",
+ "bl9yZWZyZXNoZWQYKCABKAsyHS5saXZla2l0LnByb3RvLlRva2VuUmVmcmVz",
+ "aGVkSAASQQoUZGF0YV90cmFja19wdWJsaXNoZWQYKiABKAsyIS5saXZla2l0",
+ "LnByb3RvLkRhdGFUcmFja1B1Ymxpc2hlZEgAEkUKFmRhdGFfdHJhY2tfdW5w",
+ "dWJsaXNoZWQYKyABKAsyIy5saXZla2l0LnByb3RvLkRhdGFUcmFja1VucHVi",
+ "bGlzaGVkSABCCQoHbWVzc2FnZSLJAgoIUm9vbUluZm8SCwoDc2lkGAEgASgJ",
+ "EgwKBG5hbWUYAiACKAkSEAoIbWV0YWRhdGEYAyACKAkSLgombG9zc3lfZGNf",
+ "YnVmZmVyZWRfYW1vdW50X2xvd190aHJlc2hvbGQYBCACKAQSMQopcmVsaWFi",
+ "bGVfZGNfYnVmZmVyZWRfYW1vdW50X2xvd190aHJlc2hvbGQYBSACKAQSFQoN",
+ "ZW1wdHlfdGltZW91dBgGIAIoDRIZChFkZXBhcnR1cmVfdGltZW91dBgHIAIo",
+ "DRIYChBtYXhfcGFydGljaXBhbnRzGAggAigNEhUKDWNyZWF0aW9uX3RpbWUY",
+ "CSACKAMSGAoQbnVtX3BhcnRpY2lwYW50cxgKIAIoDRIWCg5udW1fcHVibGlz",
+ "aGVycxgLIAIoDRIYChBhY3RpdmVfcmVjb3JkaW5nGAwgAigIImEKCU93bmVk",
+ "Um9vbRItCgZoYW5kbGUYASACKAsyHS5saXZla2l0LnByb3RvLkZmaU93bmVk",
+ "SGFuZGxlEiUKBGluZm8YAiACKAsyFy5saXZla2l0LnByb3RvLlJvb21JbmZv",
+ "IksKE1BhcnRpY2lwYW50c1VwZGF0ZWQSNAoMcGFydGljaXBhbnRzGAEgAygL",
+ "Mh4ubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFudEluZm8iRQoUUGFydGljaXBh",
+ "bnRDb25uZWN0ZWQSLQoEaW5mbxgBIAIoCzIfLmxpdmVraXQucHJvdG8uT3du",
+ "ZWRQYXJ0aWNpcGFudCJzChdQYXJ0aWNpcGFudERpc2Nvbm5lY3RlZBIcChRw",
+ "YXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRI6ChFkaXNjb25uZWN0X3JlYXNv",
+ "bhgCIAIoDjIfLmxpdmVraXQucHJvdG8uRGlzY29ubmVjdFJlYXNvbiIoChNM",
+ "b2NhbFRyYWNrUHVibGlzaGVkEhEKCXRyYWNrX3NpZBgBIAIoCSIwChVMb2Nh",
+ "bFRyYWNrVW5wdWJsaXNoZWQSFwoPcHVibGljYXRpb25fc2lkGAEgAigJIikK",
+ "FExvY2FsVHJhY2tTdWJzY3JpYmVkEhEKCXRyYWNrX3NpZBgCIAIoCSJpCg5U",
+ "cmFja1B1Ymxpc2hlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRI5",
+ "CgtwdWJsaWNhdGlvbhgCIAIoCzIkLmxpdmVraXQucHJvdG8uT3duZWRUcmFj",
+ "a1B1YmxpY2F0aW9uIkkKEFRyYWNrVW5wdWJsaXNoZWQSHAoUcGFydGljaXBh",
+ "bnRfaWRlbnRpdHkYASACKAkSFwoPcHVibGljYXRpb25fc2lkGAIgAigJIlkK",
+ "D1RyYWNrU3Vic2NyaWJlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIo",
+ "CRIoCgV0cmFjaxgCIAIoCzIZLmxpdmVraXQucHJvdG8uT3duZWRUcmFjayJE",
+ "ChFUcmFja1Vuc3Vic2NyaWJlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgB",
+ "IAIoCRIRCgl0cmFja19zaWQYAiACKAkiWQoXVHJhY2tTdWJzY3JpcHRpb25G",
+ "YWlsZWQSHAoUcGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tf",
+ "c2lkGAIgAigJEg0KBWVycm9yGAMgAigJIj0KClRyYWNrTXV0ZWQSHAoUcGFy",
+ "dGljaXBhbnRfaWRlbnRpdHkYASACKAkSEQoJdHJhY2tfc2lkGAIgAigJIj8K",
+ "DFRyYWNrVW5tdXRlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIR",
+ "Cgl0cmFja19zaWQYAiACKAkiXwoQRTJlZVN0YXRlQ2hhbmdlZBIcChRwYXJ0",
+ "aWNpcGFudF9pZGVudGl0eRgBIAIoCRItCgVzdGF0ZRgCIAIoDjIeLmxpdmVr",
+ "aXQucHJvdG8uRW5jcnlwdGlvblN0YXRlIjcKFUFjdGl2ZVNwZWFrZXJzQ2hh",
+ "bmdlZBIeChZwYXJ0aWNpcGFudF9pZGVudGl0aWVzGAEgAygJIicKE1Jvb21N",
+ "ZXRhZGF0YUNoYW5nZWQSEAoIbWV0YWRhdGEYASACKAkiHQoOUm9vbVNpZENo",
+ "YW5nZWQSCwoDc2lkGAEgAigJIkwKGlBhcnRpY2lwYW50TWV0YWRhdGFDaGFu",
+ "Z2VkEhwKFHBhcnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhAKCG1ldGFkYXRh",
+ "GAIgAigJIqwBChxQYXJ0aWNpcGFudEF0dHJpYnV0ZXNDaGFuZ2VkEhwKFHBh",
+ "cnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjIKCmF0dHJpYnV0ZXMYAiADKAsy",
+ "Hi5saXZla2l0LnByb3RvLkF0dHJpYnV0ZXNFbnRyeRI6ChJjaGFuZ2VkX2F0",
+ "dHJpYnV0ZXMYAyADKAsyHi5saXZla2l0LnByb3RvLkF0dHJpYnV0ZXNFbnRy",
+ "eSJYCiJQYXJ0aWNpcGFudEVuY3J5cHRpb25TdGF0dXNDaGFuZ2VkEhwKFHBh",
+ "cnRpY2lwYW50X2lkZW50aXR5GAEgAigJEhQKDGlzX2VuY3J5cHRlZBgCIAIo",
+ "CCJEChZQYXJ0aWNpcGFudE5hbWVDaGFuZ2VkEhwKFHBhcnRpY2lwYW50X2lk",
+ "ZW50aXR5GAEgAigJEgwKBG5hbWUYAiACKAkidgocUGFydGljaXBhbnRQZXJt",
+ "aXNzaW9uQ2hhbmdlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRI4",
+ "CgpwZXJtaXNzaW9uGAIgASgLMiQubGl2ZWtpdC5wcm90by5QYXJ0aWNpcGFu",
+ "dFBlcm1pc3Npb24iawoYQ29ubmVjdGlvblF1YWxpdHlDaGFuZ2VkEhwKFHBh",
+ "cnRpY2lwYW50X2lkZW50aXR5GAEgAigJEjEKB3F1YWxpdHkYAiACKA4yIC5s",
+ "aXZla2l0LnByb3RvLkNvbm5lY3Rpb25RdWFsaXR5IkUKClVzZXJQYWNrZXQS",
+ "KAoEZGF0YRgBIAIoCzIaLmxpdmVraXQucHJvdG8uT3duZWRCdWZmZXISDQoF",
+ "dG9waWMYAiABKAkieQoLQ2hhdE1lc3NhZ2USCgoCaWQYASACKAkSEQoJdGlt",
+ "ZXN0YW1wGAIgAigDEg8KB21lc3NhZ2UYAyACKAkSFgoOZWRpdF90aW1lc3Rh",
+ "bXAYBCABKAMSDwoHZGVsZXRlZBgFIAEoCBIRCglnZW5lcmF0ZWQYBiABKAgi",
+ "YAoTQ2hhdE1lc3NhZ2VSZWNlaXZlZBIrCgdtZXNzYWdlGAEgAigLMhoubGl2",
+ "ZWtpdC5wcm90by5DaGF0TWVzc2FnZRIcChRwYXJ0aWNpcGFudF9pZGVudGl0",
+ "eRgCIAIoCSImCgdTaXBEVE1GEgwKBGNvZGUYASACKA0SDQoFZGlnaXQYAiAB",
+ "KAkivwEKEkRhdGFQYWNrZXRSZWNlaXZlZBIrCgRraW5kGAEgAigOMh0ubGl2",
+ "ZWtpdC5wcm90by5EYXRhUGFja2V0S2luZBIcChRwYXJ0aWNpcGFudF9pZGVu",
+ "dGl0eRgCIAIoCRIpCgR1c2VyGAQgASgLMhkubGl2ZWtpdC5wcm90by5Vc2Vy",
+ "UGFja2V0SAASKgoIc2lwX2R0bWYYBSABKAsyFi5saXZla2l0LnByb3RvLlNp",
+ "cERUTUZIAEIHCgV2YWx1ZSJ/ChVUcmFuc2NyaXB0aW9uUmVjZWl2ZWQSHAoU",
+ "cGFydGljaXBhbnRfaWRlbnRpdHkYASABKAkSEQoJdHJhY2tfc2lkGAIgASgJ",
+ "EjUKCHNlZ21lbnRzGAMgAygLMiMubGl2ZWtpdC5wcm90by5UcmFuc2NyaXB0",
+ "aW9uU2VnbWVudCJHChZDb25uZWN0aW9uU3RhdGVDaGFuZ2VkEi0KBXN0YXRl",
+ "GAEgAigOMh4ubGl2ZWtpdC5wcm90by5Db25uZWN0aW9uU3RhdGUiCwoJQ29u",
+ "bmVjdGVkIj8KDERpc2Nvbm5lY3RlZBIvCgZyZWFzb24YASACKA4yHy5saXZl",
+ "a2l0LnByb3RvLkRpc2Nvbm5lY3RSZWFzb24iDgoMUmVjb25uZWN0aW5nIg0K",
+ "C1JlY29ubmVjdGVkIh8KDlRva2VuUmVmcmVzaGVkEg0KBXRva2VuGAEgAigJ",
+ "IgkKB1Jvb21FT1MijgcKCkRhdGFTdHJlYW0aqgEKClRleHRIZWFkZXISPwoO",
+ "b3BlcmF0aW9uX3R5cGUYASACKA4yJy5saXZla2l0LnByb3RvLkRhdGFTdHJl",
+ "YW0uT3BlcmF0aW9uVHlwZRIPCgd2ZXJzaW9uGAIgASgFEhoKEnJlcGx5X3Rv",
+ "X3N0cmVhbV9pZBgDIAEoCRIbChNhdHRhY2hlZF9zdHJlYW1faWRzGAQgAygJ",
+ "EhEKCWdlbmVyYXRlZBgFIAEoCBoaCgpCeXRlSGVhZGVyEgwKBG5hbWUYASAC",
+ "KAka6wIKBkhlYWRlchIRCglzdHJlYW1faWQYASACKAkSEQoJdGltZXN0YW1w",
+ "GAIgAigDEhEKCW1pbWVfdHlwZRgDIAIoCRINCgV0b3BpYxgEIAIoCRIUCgx0",
+ "b3RhbF9sZW5ndGgYBSABKAQSRAoKYXR0cmlidXRlcxgGIAMoCzIwLmxpdmVr",
+ "aXQucHJvdG8uRGF0YVN0cmVhbS5IZWFkZXIuQXR0cmlidXRlc0VudHJ5EjsK",
+ "C3RleHRfaGVhZGVyGAcgASgLMiQubGl2ZWtpdC5wcm90by5EYXRhU3RyZWFt",
+ "LlRleHRIZWFkZXJIABI7CgtieXRlX2hlYWRlchgIIAEoCzIkLmxpdmVraXQu",
+ "cHJvdG8uRGF0YVN0cmVhbS5CeXRlSGVhZGVySAAaMQoPQXR0cmlidXRlc0Vu",
+ "dHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCEAoOY29udGVu",
+ "dF9oZWFkZXIaXQoFQ2h1bmsSEQoJc3RyZWFtX2lkGAEgAigJEhMKC2NodW5r",
+ "X2luZGV4GAIgAigEEg8KB2NvbnRlbnQYAyACKAwSDwoHdmVyc2lvbhgEIAEo",
+ "BRIKCgJpdhgFIAEoDBqmAQoHVHJhaWxlchIRCglzdHJlYW1faWQYASACKAkS",
+ "DgoGcmVhc29uGAIgAigJEkUKCmF0dHJpYnV0ZXMYAyADKAsyMS5saXZla2l0",
+ "LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxlci5BdHRyaWJ1dGVzRW50cnkaMQoP",
+ "QXR0cmlidXRlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToC",
+ "OAEiQQoNT3BlcmF0aW9uVHlwZRIKCgZDUkVBVEUQABIKCgZVUERBVEUQARIK",
+ "CgZERUxFVEUQAhIMCghSRUFDVElPThADImoKGERhdGFTdHJlYW1IZWFkZXJS",
+ "ZWNlaXZlZBIcChRwYXJ0aWNpcGFudF9pZGVudGl0eRgBIAIoCRIwCgZoZWFk",
+ "ZXIYAiACKAsyIC5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uSGVhZGVyImcK",
+ "F0RhdGFTdHJlYW1DaHVua1JlY2VpdmVkEhwKFHBhcnRpY2lwYW50X2lkZW50",
+ "aXR5GAEgAigJEi4KBWNodW5rGAIgAigLMh8ubGl2ZWtpdC5wcm90by5EYXRh",
+ "U3RyZWFtLkNodW5rIm0KGURhdGFTdHJlYW1UcmFpbGVyUmVjZWl2ZWQSHAoU",
+ "cGFydGljaXBhbnRfaWRlbnRpdHkYASACKAkSMgoHdHJhaWxlchgCIAIoCzIh",
+ "LmxpdmVraXQucHJvdG8uRGF0YVN0cmVhbS5UcmFpbGVyIsABChdTZW5kU3Ry",
+ "ZWFtSGVhZGVyUmVxdWVzdBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUY",
+ "ASACKAQSMAoGaGVhZGVyGAIgAigLMiAubGl2ZWtpdC5wcm90by5EYXRhU3Ry",
+ "ZWFtLkhlYWRlchIeChZkZXN0aW5hdGlvbl9pZGVudGl0aWVzGAMgAygJEhcK",
+ "D3NlbmRlcl9pZGVudGl0eRgEIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lkGAUg",
+ "ASgEIr0BChZTZW5kU3RyZWFtQ2h1bmtSZXF1ZXN0EiAKGGxvY2FsX3BhcnRp",
+ "Y2lwYW50X2hhbmRsZRgBIAIoBBIuCgVjaHVuaxgCIAIoCzIfLmxpdmVraXQu",
+ "cHJvdG8uRGF0YVN0cmVhbS5DaHVuaxIeChZkZXN0aW5hdGlvbl9pZGVudGl0",
+ "aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0eRgEIAIoCRIYChByZXF1ZXN0",
+ "X2FzeW5jX2lkGAUgASgEIsMBChhTZW5kU3RyZWFtVHJhaWxlclJlcXVlc3QS",
+ "IAoYbG9jYWxfcGFydGljaXBhbnRfaGFuZGxlGAEgAigEEjIKB3RyYWlsZXIY",
+ "AiACKAsyIS5saXZla2l0LnByb3RvLkRhdGFTdHJlYW0uVHJhaWxlchIeChZk",
+ "ZXN0aW5hdGlvbl9pZGVudGl0aWVzGAMgAygJEhcKD3NlbmRlcl9pZGVudGl0",
+ "eRgEIAIoCRIYChByZXF1ZXN0X2FzeW5jX2lkGAUgASgEIiwKGFNlbmRTdHJl",
+ "YW1IZWFkZXJSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCIrChdTZW5kU3Ry",
+ "ZWFtQ2h1bmtSZXNwb25zZRIQCghhc3luY19pZBgBIAIoBCItChlTZW5kU3Ry",
+ "ZWFtVHJhaWxlclJlc3BvbnNlEhAKCGFzeW5jX2lkGAEgAigEIjsKGFNlbmRT",
+ "dHJlYW1IZWFkZXJDYWxsYmFjaxIQCghhc3luY19pZBgBIAIoBBINCgVlcnJv",
+ "chgCIAEoCSI6ChdTZW5kU3RyZWFtQ2h1bmtDYWxsYmFjaxIQCghhc3luY19p",
+ "ZBgBIAIoBBINCgVlcnJvchgCIAEoCSI8ChlTZW5kU3RyZWFtVHJhaWxlckNh",
+ "bGxiYWNrEhAKCGFzeW5jX2lkGAEgAigEEg0KBWVycm9yGAIgASgJIpMBCi9T",
+ "ZXREYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50TG93VGhyZXNob2xkUmVxdWVz",
+ "dBIgChhsb2NhbF9wYXJ0aWNpcGFudF9oYW5kbGUYASACKAQSEQoJdGhyZXNo",
+ "b2xkGAIgAigEEisKBGtpbmQYAyACKA4yHS5saXZla2l0LnByb3RvLkRhdGFQ",
+ "YWNrZXRLaW5kIjIKMFNldERhdGFDaGFubmVsQnVmZmVyZWRBbW91bnRMb3dU",
+ "aHJlc2hvbGRSZXNwb25zZSJuCixEYXRhQ2hhbm5lbEJ1ZmZlcmVkQW1vdW50",
+ "TG93VGhyZXNob2xkQ2hhbmdlZBIrCgRraW5kGAEgAigOMh0ubGl2ZWtpdC5w",
+ "cm90by5EYXRhUGFja2V0S2luZBIRCgl0aHJlc2hvbGQYAiACKAQiZgoQQnl0",
+ "ZVN0cmVhbU9wZW5lZBI0CgZyZWFkZXIYASACKAsyJC5saXZla2l0LnByb3Rv",
+ "Lk93bmVkQnl0ZVN0cmVhbVJlYWRlchIcChRwYXJ0aWNpcGFudF9pZGVudGl0",
+ "eRgCIAIoCSJmChBUZXh0U3RyZWFtT3BlbmVkEjQKBnJlYWRlchgBIAIoCzIk",
+ "LmxpdmVraXQucHJvdG8uT3duZWRUZXh0U3RyZWFtUmVhZGVyEhwKFHBhcnRp",
+ "Y2lwYW50X2lkZW50aXR5GAIgAigJIkgKEkRhdGFUcmFja1B1Ymxpc2hlZBIy",
+ "CgV0cmFjaxgBIAIoCzIjLmxpdmVraXQucHJvdG8uT3duZWRSZW1vdGVEYXRh",
+ "VHJhY2siIwoURGF0YVRyYWNrVW5wdWJsaXNoZWQSCwoDc2lkGAEgAigJKlAK",
+ "EEljZVRyYW5zcG9ydFR5cGUSEwoPVFJBTlNQT1JUX1JFTEFZEAASFAoQVFJB",
+ "TlNQT1JUX05PSE9TVBABEhEKDVRSQU5TUE9SVF9BTEwQAipDChhDb250aW51",
+ "YWxHYXRoZXJpbmdQb2xpY3kSDwoLR0FUSEVSX09OQ0UQABIWChJHQVRIRVJf",
+ "Q09OVElOVUFMTFkQASpgChFDb25uZWN0aW9uUXVhbGl0eRIQCgxRVUFMSVRZ",
+ "X1BPT1IQABIQCgxRVUFMSVRZX0dPT0QQARIVChFRVUFMSVRZX0VYQ0VMTEVO",
+ "VBACEhAKDFFVQUxJVFlfTE9TVBADKlMKD0Nvbm5lY3Rpb25TdGF0ZRIVChFD",
+ "T05OX0RJU0NPTk5FQ1RFRBAAEhIKDkNPTk5fQ09OTkVDVEVEEAESFQoRQ09O",
+ "Tl9SRUNPTk5FQ1RJTkcQAiozCg5EYXRhUGFja2V0S2luZBIOCgpLSU5EX0xP",
+ "U1NZEAASEQoNS0lORF9SRUxJQUJMRRABQhCqAg1MaXZlS2l0LlByb3Rv"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.ParticipantReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, },
+ new pbr::FileDescriptor[] { global::LiveKit.Proto.E2EeReflection.Descriptor, global::LiveKit.Proto.HandleReflection.Descriptor, global::LiveKit.Proto.ParticipantReflection.Descriptor, global::LiveKit.Proto.TrackReflection.Descriptor, global::LiveKit.Proto.VideoFrameReflection.Descriptor, global::LiveKit.Proto.StatsReflection.Descriptor, global::LiveKit.Proto.DataStreamReflection.Descriptor, global::LiveKit.Proto.DataTrackReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::LiveKit.Proto.IceTransportType), typeof(global::LiveKit.Proto.ContinualGatheringPolicy), typeof(global::LiveKit.Proto.ConnectionQuality), typeof(global::LiveKit.Proto.ConnectionState), typeof(global::LiveKit.Proto.DataPacketKind), }, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectRequest), global::LiveKit.Proto.ConnectRequest.Parser, new[]{ "Url", "Token", "Options", "RequestAsyncId" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ConnectResponse), global::LiveKit.Proto.ConnectResponse.Parser, new[]{ "AsyncId" }, null, null, null, null),
@@ -395,7 +401,7 @@ static RoomReflection() {
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TranscriptionSegment), global::LiveKit.Proto.TranscriptionSegment.Parser, new[]{ "Id", "Text", "StartTime", "EndTime", "Final", "Language" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.BufferInfo), global::LiveKit.Proto.BufferInfo.Parser, new[]{ "DataPtr", "DataLen" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedBuffer), global::LiveKit.Proto.OwnedBuffer.Parser, new[]{ "Handle", "Data" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed" }, new[]{ "Message" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomEvent), global::LiveKit.Proto.RoomEvent.Parser, new[]{ "RoomHandle", "ParticipantConnected", "ParticipantDisconnected", "LocalTrackPublished", "LocalTrackUnpublished", "LocalTrackSubscribed", "TrackPublished", "TrackUnpublished", "TrackSubscribed", "TrackUnsubscribed", "TrackSubscriptionFailed", "TrackMuted", "TrackUnmuted", "ActiveSpeakersChanged", "RoomMetadataChanged", "RoomSidChanged", "ParticipantMetadataChanged", "ParticipantNameChanged", "ParticipantAttributesChanged", "ConnectionQualityChanged", "ConnectionStateChanged", "Disconnected", "Reconnecting", "Reconnected", "E2EeStateChanged", "Eos", "DataPacketReceived", "TranscriptionReceived", "ChatMessage", "StreamHeaderReceived", "StreamChunkReceived", "StreamTrailerReceived", "DataChannelLowThresholdChanged", "ByteStreamOpened", "TextStreamOpened", "RoomUpdated", "Moved", "ParticipantsUpdated", "ParticipantEncryptionStatusChanged", "ParticipantPermissionChanged", "TokenRefreshed", "DataTrackPublished", "DataTrackUnpublished" }, new[]{ "Message" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.RoomInfo), global::LiveKit.Proto.RoomInfo.Parser, new[]{ "Sid", "Name", "Metadata", "LossyDcBufferedAmountLowThreshold", "ReliableDcBufferedAmountLowThreshold", "EmptyTimeout", "DepartureTimeout", "MaxParticipants", "CreationTime", "NumParticipants", "NumPublishers", "ActiveRecording" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.OwnedRoom), global::LiveKit.Proto.OwnedRoom.Parser, new[]{ "Handle", "Info" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ParticipantsUpdated), global::LiveKit.Proto.ParticipantsUpdated.Parser, new[]{ "Participants" }, null, null, null, null),
@@ -455,7 +461,9 @@ static RoomReflection() {
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.SetDataChannelBufferedAmountLowThresholdResponse), global::LiveKit.Proto.SetDataChannelBufferedAmountLowThresholdResponse.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataChannelBufferedAmountLowThresholdChanged), global::LiveKit.Proto.DataChannelBufferedAmountLowThresholdChanged.Parser, new[]{ "Kind", "Threshold" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.ByteStreamOpened), global::LiveKit.Proto.ByteStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpened), global::LiveKit.Proto.TextStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.TextStreamOpened), global::LiveKit.Proto.TextStreamOpened.Parser, new[]{ "Reader", "ParticipantIdentity" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackPublished), global::LiveKit.Proto.DataTrackPublished.Parser, new[]{ "Track" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::LiveKit.Proto.DataTrackUnpublished), global::LiveKit.Proto.DataTrackUnpublished.Parser, new[]{ "Sid" }, null, null, null, null)
}));
}
#endregion
@@ -16245,6 +16253,12 @@ public RoomEvent(RoomEvent other) : this() {
case MessageOneofCase.TokenRefreshed:
TokenRefreshed = other.TokenRefreshed.Clone();
break;
+ case MessageOneofCase.DataTrackPublished:
+ DataTrackPublished = other.DataTrackPublished.Clone();
+ break;
+ case MessageOneofCase.DataTrackUnpublished:
+ DataTrackUnpublished = other.DataTrackUnpublished.Clone();
+ break;
}
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
@@ -16784,6 +16798,30 @@ public void ClearRoomHandle() {
}
}
+ /// Field number for the "data_track_published" field.
+ public const int DataTrackPublishedFieldNumber = 42;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackPublished DataTrackPublished {
+ get { return messageCase_ == MessageOneofCase.DataTrackPublished ? (global::LiveKit.Proto.DataTrackPublished) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackPublished;
+ }
+ }
+
+ /// Field number for the "data_track_unpublished" field.
+ public const int DataTrackUnpublishedFieldNumber = 43;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.DataTrackUnpublished DataTrackUnpublished {
+ get { return messageCase_ == MessageOneofCase.DataTrackUnpublished ? (global::LiveKit.Proto.DataTrackUnpublished) message_ : null; }
+ set {
+ message_ = value;
+ messageCase_ = value == null ? MessageOneofCase.None : MessageOneofCase.DataTrackUnpublished;
+ }
+ }
+
private object message_;
/// Enum of possible cases for the "message" oneof.
public enum MessageOneofCase {
@@ -16828,6 +16866,8 @@ public enum MessageOneofCase {
ParticipantEncryptionStatusChanged = 39,
ParticipantPermissionChanged = 41,
TokenRefreshed = 40,
+ DataTrackPublished = 42,
+ DataTrackUnpublished = 43,
}
private MessageOneofCase messageCase_ = MessageOneofCase.None;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -16899,6 +16939,8 @@ public bool Equals(RoomEvent other) {
if (!object.Equals(ParticipantEncryptionStatusChanged, other.ParticipantEncryptionStatusChanged)) return false;
if (!object.Equals(ParticipantPermissionChanged, other.ParticipantPermissionChanged)) return false;
if (!object.Equals(TokenRefreshed, other.TokenRefreshed)) return false;
+ if (!object.Equals(DataTrackPublished, other.DataTrackPublished)) return false;
+ if (!object.Equals(DataTrackUnpublished, other.DataTrackUnpublished)) return false;
if (MessageCase != other.MessageCase) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -16948,6 +16990,8 @@ public override int GetHashCode() {
if (messageCase_ == MessageOneofCase.ParticipantEncryptionStatusChanged) hash ^= ParticipantEncryptionStatusChanged.GetHashCode();
if (messageCase_ == MessageOneofCase.ParticipantPermissionChanged) hash ^= ParticipantPermissionChanged.GetHashCode();
if (messageCase_ == MessageOneofCase.TokenRefreshed) hash ^= TokenRefreshed.GetHashCode();
+ if (messageCase_ == MessageOneofCase.DataTrackPublished) hash ^= DataTrackPublished.GetHashCode();
+ if (messageCase_ == MessageOneofCase.DataTrackUnpublished) hash ^= DataTrackUnpublished.GetHashCode();
hash ^= (int) messageCase_;
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
@@ -17131,6 +17175,14 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(202, 2);
output.WriteMessage(ParticipantPermissionChanged);
}
+ if (messageCase_ == MessageOneofCase.DataTrackPublished) {
+ output.WriteRawTag(210, 2);
+ output.WriteMessage(DataTrackPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackUnpublished) {
+ output.WriteRawTag(218, 2);
+ output.WriteMessage(DataTrackUnpublished);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -17305,6 +17357,14 @@ public void WriteTo(pb::CodedOutputStream output) {
output.WriteRawTag(202, 2);
output.WriteMessage(ParticipantPermissionChanged);
}
+ if (messageCase_ == MessageOneofCase.DataTrackPublished) {
+ output.WriteRawTag(210, 2);
+ output.WriteMessage(DataTrackPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackUnpublished) {
+ output.WriteRawTag(218, 2);
+ output.WriteMessage(DataTrackUnpublished);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -17438,6 +17498,12 @@ public int CalculateSize() {
if (messageCase_ == MessageOneofCase.TokenRefreshed) {
size += 2 + pb::CodedOutputStream.ComputeMessageSize(TokenRefreshed);
}
+ if (messageCase_ == MessageOneofCase.DataTrackPublished) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackPublished);
+ }
+ if (messageCase_ == MessageOneofCase.DataTrackUnpublished) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(DataTrackUnpublished);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -17694,6 +17760,18 @@ public void MergeFrom(RoomEvent other) {
}
TokenRefreshed.MergeFrom(other.TokenRefreshed);
break;
+ case MessageOneofCase.DataTrackPublished:
+ if (DataTrackPublished == null) {
+ DataTrackPublished = new global::LiveKit.Proto.DataTrackPublished();
+ }
+ DataTrackPublished.MergeFrom(other.DataTrackPublished);
+ break;
+ case MessageOneofCase.DataTrackUnpublished:
+ if (DataTrackUnpublished == null) {
+ DataTrackUnpublished = new global::LiveKit.Proto.DataTrackUnpublished();
+ }
+ DataTrackUnpublished.MergeFrom(other.DataTrackUnpublished);
+ break;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
@@ -18079,6 +18157,24 @@ public void MergeFrom(pb::CodedInputStream input) {
ParticipantPermissionChanged = subBuilder;
break;
}
+ case 338: {
+ global::LiveKit.Proto.DataTrackPublished subBuilder = new global::LiveKit.Proto.DataTrackPublished();
+ if (messageCase_ == MessageOneofCase.DataTrackPublished) {
+ subBuilder.MergeFrom(DataTrackPublished);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackPublished = subBuilder;
+ break;
+ }
+ case 346: {
+ global::LiveKit.Proto.DataTrackUnpublished subBuilder = new global::LiveKit.Proto.DataTrackUnpublished();
+ if (messageCase_ == MessageOneofCase.DataTrackUnpublished) {
+ subBuilder.MergeFrom(DataTrackUnpublished);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackUnpublished = subBuilder;
+ break;
+ }
}
}
#endif
@@ -18462,6 +18558,24 @@ public void MergeFrom(pb::CodedInputStream input) {
ParticipantPermissionChanged = subBuilder;
break;
}
+ case 338: {
+ global::LiveKit.Proto.DataTrackPublished subBuilder = new global::LiveKit.Proto.DataTrackPublished();
+ if (messageCase_ == MessageOneofCase.DataTrackPublished) {
+ subBuilder.MergeFrom(DataTrackPublished);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackPublished = subBuilder;
+ break;
+ }
+ case 346: {
+ global::LiveKit.Proto.DataTrackUnpublished subBuilder = new global::LiveKit.Proto.DataTrackUnpublished();
+ if (messageCase_ == MessageOneofCase.DataTrackUnpublished) {
+ subBuilder.MergeFrom(DataTrackUnpublished);
+ }
+ input.ReadMessage(subBuilder);
+ DataTrackUnpublished = subBuilder;
+ break;
+ }
}
}
}
@@ -35166,6 +35280,434 @@ public void MergeFrom(pb::CodedInputStream input) {
}
+ ///
+ /// A remote participant published a data track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackPublished : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackPublished());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[106]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackPublished() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackPublished(DataTrackPublished other) : this() {
+ track_ = other.track_ != null ? other.track_.Clone() : null;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackPublished Clone() {
+ return new DataTrackPublished(this);
+ }
+
+ /// Field number for the "track" field.
+ public const int TrackFieldNumber = 1;
+ private global::LiveKit.Proto.OwnedRemoteDataTrack track_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::LiveKit.Proto.OwnedRemoteDataTrack Track {
+ get { return track_; }
+ set {
+ track_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackPublished);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackPublished other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (!object.Equals(Track, other.Track)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (track_ != null) hash ^= Track.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (track_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Track);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (track_ != null) {
+ output.WriteRawTag(10);
+ output.WriteMessage(Track);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (track_ != null) {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Track);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackPublished other) {
+ if (other == null) {
+ return;
+ }
+ if (other.track_ != null) {
+ if (track_ == null) {
+ Track = new global::LiveKit.Proto.OwnedRemoteDataTrack();
+ }
+ Track.MergeFrom(other.Track);
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ if (track_ == null) {
+ Track = new global::LiveKit.Proto.OwnedRemoteDataTrack();
+ }
+ input.ReadMessage(Track);
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ if (track_ == null) {
+ Track = new global::LiveKit.Proto.OwnedRemoteDataTrack();
+ }
+ input.ReadMessage(Track);
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
+ ///
+ /// A remote participant unpublished a data track.
+ ///
+ [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
+ public sealed partial class DataTrackUnpublished : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new DataTrackUnpublished());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::LiveKit.Proto.RoomReflection.Descriptor.MessageTypes[107]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackUnpublished() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackUnpublished(DataTrackUnpublished other) : this() {
+ sid_ = other.sid_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public DataTrackUnpublished Clone() {
+ return new DataTrackUnpublished(this);
+ }
+
+ /// Field number for the "sid" field.
+ public const int SidFieldNumber = 1;
+ private readonly static string SidDefaultValue = "";
+
+ private string sid_;
+ ///
+ /// SID of the track that was unpublished.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public string Sid {
+ get { return sid_ ?? SidDefaultValue; }
+ set {
+ sid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
+ /// Gets whether the "sid" field is set
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool HasSid {
+ get { return sid_ != null; }
+ }
+ /// Clears the value of the "sid" field
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void ClearSid() {
+ sid_ = null;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override bool Equals(object other) {
+ return Equals(other as DataTrackUnpublished);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public bool Equals(DataTrackUnpublished other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (Sid != other.Sid) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (HasSid) hash ^= Sid.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (HasSid) {
+ output.WriteRawTag(10);
+ output.WriteString(Sid);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (HasSid) {
+ output.WriteRawTag(10);
+ output.WriteString(Sid);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public int CalculateSize() {
+ int size = 0;
+ if (HasSid) {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Sid);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(DataTrackUnpublished other) {
+ if (other == null) {
+ return;
+ }
+ if (other.HasSid) {
+ Sid = other.Sid;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10: {
+ Sid = input.ReadString();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ if ((tag & 7) == 4) {
+ // Abort on any end group tag.
+ return;
+ }
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 10: {
+ Sid = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
#endregion
}
diff --git a/Runtime/Scripts/Room.cs b/Runtime/Scripts/Room.cs
index 81038ebb..202fa600 100644
--- a/Runtime/Scripts/Room.cs
+++ b/Runtime/Scripts/Room.cs
@@ -126,6 +126,8 @@ public class Room
public delegate void ConnectionStateChangeDelegate(ConnectionState connectionState);
public delegate void ConnectionDelegate(Room room);
public delegate void E2EeStateChangedDelegate(Participant participant, EncryptionState state);
+ public delegate void DataTrackPublishedDelegate(RemoteDataTrack track);
+ public delegate void DataTrackUnpublishedDelegate(string sid);
public string Sid { private set; get; }
public string Name { private set; get; }
@@ -161,6 +163,8 @@ public class Room
public event ParticipantDelegate ParticipantMetadataChanged;
public event ParticipantDelegate ParticipantNameChanged;
public event ParticipantDelegate ParticipantAttributesChanged;
+ public event DataTrackPublishedDelegate DataTrackPublished;
+ public event DataTrackUnpublishedDelegate DataTrackUnpublished;
public ConnectInstruction Connect(string url, string token, RoomOptions options)
{
@@ -242,7 +246,7 @@ internal void UpdateFromInfo(RoomInfo info)
Sid = info.Sid;
Name = info.Name;
Metadata = info.Metadata;
- NumParticipants = info.NumParticipants;
+ NumParticipants = info.NumParticipants;
}
internal void OnRpcMethodInvocationReceived(RpcMethodInvocationEvent e)
@@ -509,10 +513,20 @@ internal void OnEventReceived(RoomEvent e)
break;
case RoomEvent.MessageOneofCase.Moved:
{
- // Participants moved to new room.
UpdateFromInfo(e.Moved);
}
break;
+ case RoomEvent.MessageOneofCase.DataTrackPublished:
+ {
+ var track = new RemoteDataTrack(e.DataTrackPublished.Track);
+ DataTrackPublished?.Invoke(track);
+ }
+ break;
+ case RoomEvent.MessageOneofCase.DataTrackUnpublished:
+ {
+ DataTrackUnpublished?.Invoke(e.DataTrackUnpublished.Sid);
+ }
+ break;
}
}
diff --git a/Tests/PlayMode/DataTrackTests.cs b/Tests/PlayMode/DataTrackTests.cs
new file mode 100644
index 00000000..1e3b6c5d
--- /dev/null
+++ b/Tests/PlayMode/DataTrackTests.cs
@@ -0,0 +1,296 @@
+using System.Collections;
+using NUnit.Framework;
+using UnityEngine.TestTools;
+using LiveKit.PlayModeTests.Utils;
+
+namespace LiveKit.PlayModeTests
+{
+ public class DataTrackTests
+ {
+ const string TestTrackName = "test-track";
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator PublishDataTrack_Succeeds()
+ {
+ using var context = new TestRoomContext();
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var room = context.Rooms[0];
+ var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+
+ Assert.IsFalse(publishInstruction.IsError);
+ Assert.IsNotNull(publishInstruction.Track);
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator PublishDataTrack_TrackInfoMatchesOptions()
+ {
+ using var context = new TestRoomContext();
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var room = context.Rooms[0];
+ var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+
+ Assert.IsFalse(publishInstruction.IsError);
+ var track = publishInstruction.Track;
+ Assert.AreEqual(TestTrackName, track.Info.Name);
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator PublishDataTrack_IsPublishedReturnsTrue()
+ {
+ using var context = new TestRoomContext();
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var room = context.Rooms[0];
+ var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+
+ Assert.IsFalse(publishInstruction.IsError);
+ Assert.IsTrue(publishInstruction.Track.IsPublished());
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator TryPush_Succeeds()
+ {
+ using var context = new TestRoomContext();
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var room = context.Rooms[0];
+ var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+
+ Assert.IsFalse(publishInstruction.IsError);
+ var track = publishInstruction.Track;
+
+ Assert.DoesNotThrow(() =>
+ {
+ track.TryPush(new DataTrackFrame(new byte[] { 0x01, 0x02, 0x03 }));
+ });
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator Unpublish_IsPublishedReturnsFalse()
+ {
+ using var context = new TestRoomContext();
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var room = context.Rooms[0];
+ var publishInstruction = room.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+
+ Assert.IsFalse(publishInstruction.IsError);
+ var track = publishInstruction.Track;
+ Assert.IsTrue(track.IsPublished());
+
+ track.Unpublish();
+ Assert.IsFalse(track.IsPublished());
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator PublishAndUnpublish_TriggersEvents()
+ {
+ var publisher = TestRoomContext.ConnectionOptions.Default;
+ publisher.Identity = "publisher";
+ var subscriber = TestRoomContext.ConnectionOptions.Default;
+ subscriber.Identity = "subscriber";
+
+ using var context = new TestRoomContext(new[] { publisher, subscriber });
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var subscriberRoom = context.Rooms[1];
+ var publishedExpectation = new Expectation(timeoutSeconds: 10f);
+ RemoteDataTrack receivedTrack = null;
+
+ subscriberRoom.DataTrackPublished += (track) =>
+ {
+ receivedTrack = track;
+ publishedExpectation.Fulfill();
+ };
+
+ var publisherRoom = context.Rooms[0];
+ var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+ Assert.IsFalse(publishInstruction.IsError);
+
+ yield return publishedExpectation.Wait();
+ Assert.IsNull(publishedExpectation.Error);
+ Assert.AreEqual(TestTrackName, receivedTrack.Info.Name);
+ Assert.AreEqual(publisher.Identity, receivedTrack.PublisherIdentity);
+
+ var unpublishedExpectation = new Expectation(timeoutSeconds: 10f);
+ string unpublishedSid = null;
+
+ subscriberRoom.DataTrackUnpublished += (sid) =>
+ {
+ unpublishedSid = sid;
+ unpublishedExpectation.Fulfill();
+ };
+
+ publishInstruction.Track.Unpublish();
+
+ yield return unpublishedExpectation.Wait();
+ Assert.IsNull(unpublishedExpectation.Error);
+ Assert.AreEqual(receivedTrack.Info.Sid, unpublishedSid);
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator Subscribe_Succeeds()
+ {
+ var publisher = TestRoomContext.ConnectionOptions.Default;
+ publisher.Identity = "publisher";
+ var subscriber = TestRoomContext.ConnectionOptions.Default;
+ subscriber.Identity = "subscriber";
+
+ using var context = new TestRoomContext(new[] { publisher, subscriber });
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var subscriberRoom = context.Rooms[1];
+ var trackExpectation = new Expectation(timeoutSeconds: 10f);
+ RemoteDataTrack remoteTrack = null;
+
+ subscriberRoom.DataTrackPublished += (track) =>
+ {
+ remoteTrack = track;
+ trackExpectation.Fulfill();
+ };
+
+ var publisherRoom = context.Rooms[0];
+ var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+ Assert.IsFalse(publishInstruction.IsError);
+
+ yield return trackExpectation.Wait();
+ Assert.IsNull(trackExpectation.Error);
+
+ var subscription = remoteTrack.Subscribe();
+ Assert.IsNotNull(subscription);
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator PushAndReceive_FramePayloadMatches()
+ {
+ var publisher = TestRoomContext.ConnectionOptions.Default;
+ publisher.Identity = "publisher";
+ var subscriber = TestRoomContext.ConnectionOptions.Default;
+ subscriber.Identity = "subscriber";
+
+ using var context = new TestRoomContext(new[] { publisher, subscriber });
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var subscriberRoom = context.Rooms[1];
+ var trackExpectation = new Expectation(timeoutSeconds: 10f);
+ RemoteDataTrack remoteTrack = null;
+
+ subscriberRoom.DataTrackPublished += (track) =>
+ {
+ remoteTrack = track;
+ trackExpectation.Fulfill();
+ };
+
+ var publisherRoom = context.Rooms[0];
+ var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+ Assert.IsFalse(publishInstruction.IsError);
+
+ yield return trackExpectation.Wait();
+ Assert.IsNull(trackExpectation.Error);
+
+ var subscription = remoteTrack.Subscribe();
+
+ var sentPayload = new byte[] { 0xDE, 0xAD, 0xBE, 0xEF };
+ publishInstruction.Track.TryPush(new DataTrackFrame(sentPayload));
+
+ var frameInstruction = subscription.ReadFrame();
+ yield return frameInstruction;
+
+ Assert.IsNull(frameInstruction.Error);
+ Assert.IsTrue(frameInstruction.IsCurrentReadDone, "Should have received a frame");
+ Assert.AreEqual(sentPayload, frameInstruction.Frame.Payload);
+ }
+
+ [UnityTest, Category("E2E")]
+ public IEnumerator PushAndReceive_TimestampIsPreserved()
+ {
+ var publisher = TestRoomContext.ConnectionOptions.Default;
+ publisher.Identity = "publisher";
+ var subscriber = TestRoomContext.ConnectionOptions.Default;
+ subscriber.Identity = "subscriber";
+
+ using var context = new TestRoomContext(new[] { publisher, subscriber });
+ yield return context.ConnectAll();
+ Assert.IsNull(context.ConnectionError);
+
+ var subscriberRoom = context.Rooms[1];
+ var trackExpectation = new Expectation(timeoutSeconds: 10f);
+ RemoteDataTrack remoteTrack = null;
+
+ subscriberRoom.DataTrackPublished += (track) =>
+ {
+ remoteTrack = track;
+ trackExpectation.Fulfill();
+ };
+
+ var publisherRoom = context.Rooms[0];
+ var publishInstruction = publisherRoom.LocalParticipant.PublishDataTrack(TestTrackName);
+ yield return publishInstruction;
+ Assert.IsFalse(publishInstruction.IsError);
+
+ yield return trackExpectation.Wait();
+ Assert.IsNull(trackExpectation.Error);
+
+ var subscription = remoteTrack.Subscribe();
+
+ var frame = new DataTrackFrame(new byte[] { 0x01 }).WithUserTimestampNow();
+ publishInstruction.Track.TryPush(frame);
+
+ var frameInstruction = subscription.ReadFrame();
+ yield return frameInstruction;
+
+ Assert.IsNull(frameInstruction.Error);
+ Assert.IsTrue(frameInstruction.IsCurrentReadDone, "Should have received a frame");
+ Assert.IsNotNull(frameInstruction.Frame.UserTimestamp, "Timestamp should be preserved");
+
+ var latency = frameInstruction.Frame.DurationSinceTimestamp();
+ Assert.IsNotNull(latency);
+ Assert.Less(latency.Value, 5.0, "Latency should be reasonable");
+ }
+
+ [Test]
+ public void DataTrackFrame_WithUserTimestampNow_SetsTimestamp()
+ {
+ var frame = new DataTrackFrame(new byte[] { 0x01, 0x02 });
+ Assert.IsNull(frame.UserTimestamp);
+
+ var stamped = frame.WithUserTimestampNow();
+ Assert.IsNotNull(stamped.UserTimestamp);
+ Assert.AreEqual(frame.Payload, stamped.Payload);
+ }
+
+ [Test]
+ public void DataTrackFrame_DurationSinceTimestamp_NullWithoutTimestamp()
+ {
+ var frame = new DataTrackFrame(new byte[] { 0x01 });
+ Assert.IsNull(frame.DurationSinceTimestamp());
+ }
+
+ [Test]
+ public void DataTrackFrame_DurationSinceTimestamp_ReturnsValue()
+ {
+ var frame = new DataTrackFrame(new byte[] { 0x01 }).WithUserTimestampNow();
+ var duration = frame.DurationSinceTimestamp();
+ Assert.IsNotNull(duration);
+ Assert.GreaterOrEqual(duration.Value, 0.0);
+ }
+ }
+}
diff --git a/Tests/PlayMode/DataTrackTests.cs.meta b/Tests/PlayMode/DataTrackTests.cs.meta
new file mode 100644
index 00000000..61e8b16f
--- /dev/null
+++ b/Tests/PlayMode/DataTrackTests.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8774d5b919bdc49f4b50e9365781b7e0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/client-sdk-rust~ b/client-sdk-rust~
index 20e442ed..5150309f 160000
--- a/client-sdk-rust~
+++ b/client-sdk-rust~
@@ -1 +1 @@
-Subproject commit 20e442edab8e91f399ca62e0f5d811ed0002a4b2
+Subproject commit 5150309fd69f660d61c0b858921ae446ba6c2530