From 1c114fa0c09a73ec12e47e0d4472ff34f22836a7 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Wed, 5 Nov 2025 19:58:08 -0800 Subject: [PATCH 1/8] Add redacted field options to egress fields --- protobufs/livekit_egress.proto | 198 ++++++++++++++++----------------- 1 file changed, 99 insertions(+), 99 deletions(-) diff --git a/protobufs/livekit_egress.proto b/protobufs/livekit_egress.proto index 1630b6ed3..8209b8c3b 100644 --- a/protobufs/livekit_egress.proto +++ b/protobufs/livekit_egress.proto @@ -17,6 +17,7 @@ syntax = "proto3"; package livekit; import "livekit_models.proto"; +import "logger/options.proto"; option go_package = "github.com/livekit/protocol/livekit"; option csharp_namespace = "LiveKit.Proto"; @@ -45,27 +46,27 @@ service Egress { // composite using a web browser message RoomCompositeEgressRequest { - string room_name = 1; // required - string layout = 2; // (optional) - bool audio_only = 3; // (default false) - AudioMixing audio_mixing = 15; // only applies to audio_only egress (default DEFAULT_MIXING) - bool video_only = 4; // (default false) - string custom_base_url = 5; // template base url (default https://recorder.livekit.io) - oneof output { // deprecated (use _output fields) + string room_name = 1; // required + string layout = 2; // (optional) + bool audio_only = 3; // (default false) + AudioMixing audio_mixing = 15; // only applies to audio_only egress (default DEFAULT_MIXING) + bool video_only = 4; // (default false) + string custom_base_url = 5; // template base url (default https://recorder.livekit.io) + oneof output { // deprecated (use _output fields) EncodedFileOutput file = 6 [deprecated = true]; StreamOutput stream = 7 [deprecated = true]; SegmentedFileOutput segments = 10 [deprecated = true]; } oneof options { - EncodingOptionsPreset preset = 8; // (default H264_720P_30) - EncodingOptions advanced = 9; // (optional) + EncodingOptionsPreset preset = 8; // (default H264_720P_30) + EncodingOptions advanced = 9; // (optional) } repeated EncodedFileOutput file_outputs = 11; repeated StreamOutput stream_outputs = 12; repeated SegmentedFileOutput segment_outputs = 13; repeated ImageOutput image_outputs = 14; - repeated WebhookConfig webhooks = 16; // extra webhooks to call for this request + repeated WebhookConfig webhooks = 16; // extra webhooks to call for this request // NEXT_ID: 17 } @@ -76,7 +77,7 @@ message WebEgressRequest { bool audio_only = 2; bool video_only = 3; bool await_start_signal = 12; - oneof output { // deprecated (use _output fields) + oneof output { // deprecated (use _output fields) EncodedFileOutput file = 4 [deprecated = true]; StreamOutput stream = 5 [deprecated = true]; SegmentedFileOutput segments = 6 [deprecated = true]; @@ -90,80 +91,79 @@ message WebEgressRequest { repeated SegmentedFileOutput segment_outputs = 11; repeated ImageOutput image_outputs = 13; - repeated WebhookConfig webhooks = 14; // extra webhooks to call for this request + repeated WebhookConfig webhooks = 14; // extra webhooks to call for this request // NEXT_ID: 15 - } // record audio and video from a single participant message ParticipantEgressRequest { - string room_name = 1; // required - string identity = 2; // required - bool screen_share = 3; // (default false) + string room_name = 1; // required + string identity = 2; // required + bool screen_share = 3; // (default false) oneof options { - EncodingOptionsPreset preset = 4; // (default H264_720P_30) - EncodingOptions advanced = 5; // (optional) + EncodingOptionsPreset preset = 4; // (default H264_720P_30) + EncodingOptions advanced = 5; // (optional) } repeated EncodedFileOutput file_outputs = 6; repeated StreamOutput stream_outputs = 7; repeated SegmentedFileOutput segment_outputs = 8; repeated ImageOutput image_outputs = 9; - repeated WebhookConfig webhooks = 10; // extra webhooks to call for this request + repeated WebhookConfig webhooks = 10; // extra webhooks to call for this request // NEXT_ID: 11 } // containerize up to one audio and one video track message TrackCompositeEgressRequest { - string room_name = 1; // required - string audio_track_id = 2; // (optional) - string video_track_id = 3; // (optional) - oneof output { // deprecated (use _output fields) + string room_name = 1; // required + string audio_track_id = 2; // (optional) + string video_track_id = 3; // (optional) + oneof output { // deprecated (use _output fields) EncodedFileOutput file = 4 [deprecated = true]; StreamOutput stream = 5 [deprecated = true]; SegmentedFileOutput segments = 8 [deprecated = true]; } oneof options { - EncodingOptionsPreset preset = 6; // (default H264_720P_30) - EncodingOptions advanced = 7; // (optional) + EncodingOptionsPreset preset = 6; // (default H264_720P_30) + EncodingOptions advanced = 7; // (optional) } repeated EncodedFileOutput file_outputs = 11; repeated StreamOutput stream_outputs = 12; repeated SegmentedFileOutput segment_outputs = 13; repeated ImageOutput image_outputs = 14; - repeated WebhookConfig webhooks = 15; // extra webhooks to call for this request + repeated WebhookConfig webhooks = 15; // extra webhooks to call for this request // NEXT_ID: 16 } // record tracks individually, without transcoding message TrackEgressRequest { - string room_name = 1; // required - string track_id = 2; // required - oneof output { // required + string room_name = 1; // required + string track_id = 2; // required + oneof output { // required DirectFileOutput file = 3; string websocket_url = 4; } - repeated WebhookConfig webhooks = 5; // extra webhooks to call for this request + repeated WebhookConfig webhooks = 5; // extra webhooks to call for this request // NEXT_ID: 6 } enum EncodedFileType { - DEFAULT_FILETYPE = 0; // file type chosen based on codecs - MP4 = 1; + DEFAULT_FILETYPE = 0; // file type chosen based on codecs + MP4 = 1; OGG = 2; MP3 = 3; } message EncodedFileOutput { - EncodedFileType file_type = 1; // (optional) - string filepath = 2; // see egress docs for templating (default {room_name}-{time}) - bool disable_manifest = 6; // disable upload of manifest file (default false) + EncodedFileType file_type = 1; // (optional) + string filepath = 2; // see egress docs for templating (default {room_name}-{time}) + bool disable_manifest = 6; // disable upload of manifest file (default false) oneof output { S3Upload s3 = 3; GCPUpload gcp = 4; @@ -184,14 +184,14 @@ enum SegmentedFileSuffix { // Used to generate HLS segments or other kind of segmented output message SegmentedFileOutput { - SegmentedFileProtocol protocol = 1; // (optional) - string filename_prefix = 2; // (optional) - string playlist_name = 3; // (optional) - string live_playlist_name = 11; // (optional, disabled if not provided). Path of a live playlist - uint32 segment_duration = 4; // in seconds (optional) - SegmentedFileSuffix filename_suffix = 10; // (optional, default INDEX) - bool disable_manifest = 8; // disable upload of manifest file (default false) - oneof output { // required + SegmentedFileProtocol protocol = 1; // (optional) + string filename_prefix = 2; // (optional) + string playlist_name = 3; // (optional) + string live_playlist_name = 11; // (optional, disabled if not provided). Path of a live playlist + uint32 segment_duration = 4; // in seconds (optional) + SegmentedFileSuffix filename_suffix = 10; // (optional, default INDEX) + bool disable_manifest = 8; // disable upload of manifest file (default false) + oneof output { // required S3Upload s3 = 5; GCPUpload gcp = 6; AzureBlobUpload azure = 7; @@ -200,8 +200,8 @@ message SegmentedFileOutput { } message DirectFileOutput { - string filepath = 1; // see egress docs for templating (default {track_id}-{time}) - bool disable_manifest = 5; // disable upload of manifest file (default false) + string filepath = 1; // see egress docs for templating (default {track_id}-{time}) + bool disable_manifest = 5; // disable upload of manifest file (default false) oneof output { S3Upload s3 = 2; GCPUpload gcp = 3; @@ -213,18 +213,18 @@ message DirectFileOutput { enum ImageFileSuffix { IMAGE_SUFFIX_INDEX = 0; IMAGE_SUFFIX_TIMESTAMP = 1; - IMAGE_SUFFIX_NONE_OVERWRITE = 2; // Do not append any suffix and overwrite the existing image with the latest + IMAGE_SUFFIX_NONE_OVERWRITE = 2; // Do not append any suffix and overwrite the existing image with the latest } message ImageOutput { - uint32 capture_interval = 1; // in seconds (required) - int32 width = 2; // (optional, defaults to track width) - int32 height = 3; // (optional, defaults to track height) - string filename_prefix = 4; // (optional) - ImageFileSuffix filename_suffix = 5; // (optional, default INDEX) - ImageCodec image_codec = 6; // (optional) - bool disable_manifest = 7; // disable upload of manifest file (default false) - oneof output { // required + uint32 capture_interval = 1; // in seconds (required) + int32 width = 2; // (optional, defaults to track width) + int32 height = 3; // (optional, defaults to track height) + string filename_prefix = 4; // (optional) + ImageFileSuffix filename_suffix = 5; // (optional, default INDEX) + ImageCodec image_codec = 6; // (optional) + bool disable_manifest = 7; // disable upload of manifest file (default false) + oneof output { // required S3Upload s3 = 8; GCPUpload gcp = 9; AzureBlobUpload azure = 10; @@ -233,39 +233,39 @@ message ImageOutput { } message S3Upload { - string access_key = 1; - string secret = 2; + string access_key = 1 [(logger.redact) = true]; + string secret = 2 [(logger.redact) = true]; string session_token = 11; - string assume_role_arn = 12; // ARN of the role to assume for file upload. Egress will make an AssumeRole API call using the provided access_key and secret to assume that role. On LiveKit cloud, this is only available on accounts that have the feature enabled - string assume_role_external_id = 13; // ExternalID to use when assuming role for upload + string assume_role_arn = 12 [(logger.redact) = true]; // ARN of the role to assume for file upload. Egress will make an AssumeRole API call using the provided access_key and secret to assume that role. On LiveKit cloud, this is only available on accounts that have the feature enabled + string assume_role_external_id = 13; // ExternalID to use when assuming role for upload string region = 3; string endpoint = 4; string bucket = 5; bool force_path_style = 6; map metadata = 7; string tagging = 8; - string content_disposition = 9; // Content-Disposition header + string content_disposition = 9; // Content-Disposition header ProxyConfig proxy = 10; - // NEXT_ID: 14 + // NEXT_ID: 14 } message GCPUpload { // service account credentials serialized in JSON "credentials.json" - string credentials = 1; + string credentials = 1 [(logger.redact) = true]; string bucket = 2; ProxyConfig proxy = 3; } message AzureBlobUpload { - string account_name = 1; - string account_key = 2; + string account_name = 1 [(logger.redact) = true]; + string account_key = 2 [(logger.redact) = true]; string container_name = 3; } message AliOSSUpload { - string access_key = 1; - string secret = 2; + string access_key = 1 [(logger.redact) = true]; + string secret = 2 [(logger.redact) = true]; string region = 3; string endpoint = 4; string bucket = 5; @@ -278,46 +278,46 @@ message ProxyConfig { } enum StreamProtocol { - DEFAULT_PROTOCOL = 0; // protocol chosen based on urls + DEFAULT_PROTOCOL = 0; // protocol chosen based on urls RTMP = 1; SRT = 2; } message StreamOutput { - StreamProtocol protocol = 1; // required - repeated string urls = 2; // required + StreamProtocol protocol = 1; // required + repeated string urls = 2; // required } enum AudioMixing { - DEFAULT_MIXING = 0; // all users are mixed together - DUAL_CHANNEL_AGENT = 1; // agent audio in the left channel, all other audio in the right channel - DUAL_CHANNEL_ALTERNATE = 2; // each new audio track alternates between left and right channels + DEFAULT_MIXING = 0; // all users are mixed together + DUAL_CHANNEL_AGENT = 1; // agent audio in the left channel, all other audio in the right channel + DUAL_CHANNEL_ALTERNATE = 2; // each new audio track alternates between left and right channels } message EncodingOptions { - int32 width = 1; // (default 1920) - int32 height = 2; // (default 1080) - int32 depth = 3; // (default 24) - int32 framerate = 4; // (default 30) - AudioCodec audio_codec = 5; // (default OPUS) - int32 audio_bitrate = 6; // (default 128) - int32 audio_quality = 11; // quality setting on audio encoder - int32 audio_frequency = 7; // (default 44100) - VideoCodec video_codec = 8; // (default H264_MAIN) - int32 video_bitrate = 9; // (default 4500) - int32 video_quality = 12; // quality setting on video encoder - double key_frame_interval = 10; // in seconds (default 4s for streaming, segment duration for segmented output, encoder default for files) + int32 width = 1; // (default 1920) + int32 height = 2; // (default 1080) + int32 depth = 3; // (default 24) + int32 framerate = 4; // (default 30) + AudioCodec audio_codec = 5; // (default OPUS) + int32 audio_bitrate = 6; // (default 128) + int32 audio_quality = 11; // quality setting on audio encoder + int32 audio_frequency = 7; // (default 44100) + VideoCodec video_codec = 8; // (default H264_MAIN) + int32 video_bitrate = 9; // (default 4500) + int32 video_quality = 12; // quality setting on video encoder + double key_frame_interval = 10; // in seconds (default 4s for streaming, segment duration for segmented output, encoder default for files) } enum EncodingOptionsPreset { - H264_720P_30 = 0; // 1280x720, 30fps, 3000kpbs, H.264_MAIN / OPUS - H264_720P_60 = 1; // 1280x720, 60fps, 4500kbps, H.264_MAIN / OPUS - H264_1080P_30 = 2; // 1920x1080, 30fps, 4500kbps, H.264_MAIN / OPUS - H264_1080P_60 = 3; // 1920x1080, 60fps, 6000kbps, H.264_MAIN / OPUS - PORTRAIT_H264_720P_30 = 4; // 720x1280, 30fps, 3000kpbs, H.264_MAIN / OPUS - PORTRAIT_H264_720P_60 = 5; // 720x1280, 60fps, 4500kbps, H.264_MAIN / OPUS - PORTRAIT_H264_1080P_30 = 6; // 1080x1920, 30fps, 4500kbps, H.264_MAIN / OPUS - PORTRAIT_H264_1080P_60 = 7; // 1080x1920, 60fps, 6000kbps, H.264_MAIN / OPUS + H264_720P_30 = 0; // 1280x720, 30fps, 3000kpbs, H.264_MAIN / OPUS + H264_720P_60 = 1; // 1280x720, 60fps, 4500kbps, H.264_MAIN / OPUS + H264_1080P_30 = 2; // 1920x1080, 30fps, 4500kbps, H.264_MAIN / OPUS + H264_1080P_60 = 3; // 1920x1080, 60fps, 6000kbps, H.264_MAIN / OPUS + PORTRAIT_H264_720P_30 = 4; // 720x1280, 30fps, 3000kpbs, H.264_MAIN / OPUS + PORTRAIT_H264_720P_60 = 5; // 720x1280, 60fps, 4500kbps, H.264_MAIN / OPUS + PORTRAIT_H264_1080P_30 = 6; // 1080x1920, 30fps, 4500kbps, H.264_MAIN / OPUS + PORTRAIT_H264_1080P_60 = 7; // 1080x1920, 60fps, 6000kbps, H.264_MAIN / OPUS } message UpdateLayoutRequest { @@ -332,9 +332,9 @@ message UpdateStreamRequest { } message ListEgressRequest { - string room_name = 1; // (optional, filter by room name) - string egress_id = 2; // (optional, filter by egress ID) - bool active = 3; // (optional, list active egress only) + string room_name = 1; // (optional, filter by room name) + string egress_id = 2; // (optional, filter by egress ID) + bool active = 3; // (optional, list active egress only) } message ListEgressResponse { @@ -379,7 +379,7 @@ message EgressInfo { TrackCompositeEgressRequest track_composite = 5; TrackEgressRequest track = 6; } - oneof result { // deprecated (use _result fields) + oneof result { // deprecated (use _result fields) StreamInfoList stream = 7 [deprecated = true]; FileInfo file = 8 [deprecated = true]; SegmentsInfo segments = 12 [deprecated = true]; @@ -443,16 +443,16 @@ message ImagesInfo { message AutoParticipantEgress { oneof options { - EncodingOptionsPreset preset = 1; // (default H264_720P_30) - EncodingOptions advanced = 2; // (optional) + EncodingOptionsPreset preset = 1; // (default H264_720P_30) + EncodingOptions advanced = 2; // (optional) } repeated EncodedFileOutput file_outputs = 3; repeated SegmentedFileOutput segment_outputs = 4; } message AutoTrackEgress { - string filepath = 1; // see docs for templating (default {track_id}-{time}) - bool disable_manifest = 5; // disables upload of json manifest file (default false) + string filepath = 1; // see docs for templating (default {track_id}-{time}) + bool disable_manifest = 5; // disables upload of json manifest file (default false) oneof output { S3Upload s3 = 2; GCPUpload gcp = 3; From 5c17efb4ebfec64db91070b8099723f20aaf7316 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Wed, 5 Nov 2025 21:57:38 -0800 Subject: [PATCH 2/8] Add unit test --- livekit/egress_test.go | 57 ++++++++++++++++++++++++++++++++++ logger/proto.go | 2 +- protobufs/logger/options.proto | 2 +- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 livekit/egress_test.go diff --git a/livekit/egress_test.go b/livekit/egress_test.go new file mode 100644 index 000000000..7478153bf --- /dev/null +++ b/livekit/egress_test.go @@ -0,0 +1,57 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package livekit + +import ( + "testing" + + "github.com/stretchr/testify/require" + "go.uber.org/zap/zapcore" + + "github.com/livekit/protocol/logger" + "github.com/livekit/protocol/logger/testutil" + "github.com/livekit/protocol/logger/zaputil" +) + +type TestEgressLogOutput struct { + testutil.TestLogOutput + S3 map[string]string +} + +func TestLoggerProto(t *testing.T) { + ws := &testutil.BufferedWriteSyncer{} + l, err := logger.NewZapLogger(&logger.Config{}, logger.WithTap(zaputil.NewWriteEnabler(ws, zapcore.DebugLevel))) + require.NoError(t, err) + + s3 := &S3Upload{ + AccessKey: "Field1", + Secret: "Field2", + AssumeRoleArn: "Field3", + SessionToken: "Field4", + } + + l.Debugw("foo", "s3", logger.Proto(s3)) + + var log TestEgressLogOutput + require.NoError(t, ws.Unmarshal(&log)) + + require.NotEqual(t, 0, log.TS) + require.NotEqual(t, "", log.Caller) + require.Equal(t, "foo", log.Msg) + require.Equal(t, "", log.S3["accessKey"]) + require.Equal(t, "", log.S3["secret"]) + require.Equal(t, "", log.S3["assumeRoleArn"]) + require.Equal(t, "Field4", log.S3["sessionToken"]) +} diff --git a/logger/proto.go b/logger/proto.go index 6ff2f7c68..36de0904a 100644 --- a/logger/proto.go +++ b/logger/proto.go @@ -49,7 +49,7 @@ func (p protoMarshaller) MarshalLogObject(e zapcore.ObjectEncoder) error { v := p.m.Get(f) if proto.HasExtension(f.Options(), logger.E_Redact) { - e.AddString(k, "") + e.AddString(k, fmt.Sprintf("<%s>", f.TextName())) continue } diff --git a/protobufs/logger/options.proto b/protobufs/logger/options.proto index 8ca017f5a..c5c406af6 100644 --- a/protobufs/logger/options.proto +++ b/protobufs/logger/options.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package logger; -option go_package = "github.com/livekit/protocol/logger"; +option go_package = "github.com/livekit/protocol/livekit/logger"; import "google/protobuf/descriptor.proto"; From 6ce8f45d998565f277bac45abf7724d8fff0f627 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 05:59:35 +0000 Subject: [PATCH 3/8] generated protobuf --- livekit/livekit_egress.pb.go | 37 +-- livekit/livekit_egress.twirp.go | 414 ++++++++++++++++---------------- livekit/livekit_sip.twirp.go | 48 ++-- livekit/logger/options.pb.go | 2 +- 4 files changed, 252 insertions(+), 249 deletions(-) diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index 887a86472..f79221889 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -21,6 +21,7 @@ package livekit import ( + _ "github.com/livekit/protocol/livekit/logger" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -3882,7 +3883,7 @@ var File_livekit_egress_proto protoreflect.FileDescriptor const file_livekit_egress_proto_rawDesc = "" + "\n" + - "\x14livekit_egress.proto\x12\alivekit\x1a\x14livekit_models.proto\"\xd5\x06\n" + + "\x14livekit_egress.proto\x12\alivekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\xd5\x06\n" + "\x1aRoomCompositeEgressRequest\x12\x1b\n" + "\troom_name\x18\x01 \x01(\tR\broomName\x12\x16\n" + "\x06layout\x18\x02 \x01(\tR\x06layout\x12\x1d\n" + @@ -4006,13 +4007,13 @@ const file_livekit_egress_proto_rawDesc = "" + "\x05azure\x18\n" + " \x01(\v2\x18.livekit.AzureBlobUploadH\x00R\x05azure\x12/\n" + "\x06aliOSS\x18\v \x01(\v2\x15.livekit.AliOSSUploadH\x00R\x06aliOSSB\b\n" + - "\x06output\"\xac\x04\n" + - "\bS3Upload\x12\x1d\n" + + "\x06output\"\xbe\x04\n" + + "\bS3Upload\x12#\n" + "\n" + - "access_key\x18\x01 \x01(\tR\taccessKey\x12\x16\n" + - "\x06secret\x18\x02 \x01(\tR\x06secret\x12#\n" + - "\rsession_token\x18\v \x01(\tR\fsessionToken\x12&\n" + - "\x0fassume_role_arn\x18\f \x01(\tR\rassumeRoleArn\x125\n" + + "access_key\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01R\taccessKey\x12\x1c\n" + + "\x06secret\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01R\x06secret\x12#\n" + + "\rsession_token\x18\v \x01(\tR\fsessionToken\x12,\n" + + "\x0fassume_role_arn\x18\f \x01(\tB\x04\x88\xb5\x18\x01R\rassumeRoleArn\x125\n" + "\x17assume_role_external_id\x18\r \x01(\tR\x14assumeRoleExternalId\x12\x16\n" + "\x06region\x18\x03 \x01(\tR\x06region\x12\x1a\n" + "\bendpoint\x18\x04 \x01(\tR\bendpoint\x12\x16\n" + @@ -4025,20 +4026,20 @@ const file_livekit_egress_proto_rawDesc = "" + " \x01(\v2\x14.livekit.ProxyConfigR\x05proxy\x1a;\n" + "\rMetadataEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"q\n" + - "\tGCPUpload\x12 \n" + - "\vcredentials\x18\x01 \x01(\tR\vcredentials\x12\x16\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"w\n" + + "\tGCPUpload\x12&\n" + + "\vcredentials\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01R\vcredentials\x12\x16\n" + "\x06bucket\x18\x02 \x01(\tR\x06bucket\x12*\n" + - "\x05proxy\x18\x03 \x01(\v2\x14.livekit.ProxyConfigR\x05proxy\"|\n" + - "\x0fAzureBlobUpload\x12!\n" + - "\faccount_name\x18\x01 \x01(\tR\vaccountName\x12\x1f\n" + - "\vaccount_key\x18\x02 \x01(\tR\n" + + "\x05proxy\x18\x03 \x01(\v2\x14.livekit.ProxyConfigR\x05proxy\"\x88\x01\n" + + "\x0fAzureBlobUpload\x12'\n" + + "\faccount_name\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01R\vaccountName\x12%\n" + + "\vaccount_key\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01R\n" + "accountKey\x12%\n" + - "\x0econtainer_name\x18\x03 \x01(\tR\rcontainerName\"\x91\x01\n" + - "\fAliOSSUpload\x12\x1d\n" + + "\x0econtainer_name\x18\x03 \x01(\tR\rcontainerName\"\x9d\x01\n" + + "\fAliOSSUpload\x12#\n" + "\n" + - "access_key\x18\x01 \x01(\tR\taccessKey\x12\x16\n" + - "\x06secret\x18\x02 \x01(\tR\x06secret\x12\x16\n" + + "access_key\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01R\taccessKey\x12\x1c\n" + + "\x06secret\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01R\x06secret\x12\x16\n" + "\x06region\x18\x03 \x01(\tR\x06region\x12\x1a\n" + "\bendpoint\x18\x04 \x01(\tR\bendpoint\x12\x16\n" + "\x06bucket\x18\x05 \x01(\tR\x06bucket\"W\n" + diff --git a/livekit/livekit_egress.twirp.go b/livekit/livekit_egress.twirp.go index 11e395659..ab28124b9 100644 --- a/livekit/livekit_egress.twirp.go +++ b/livekit/livekit_egress.twirp.go @@ -2754,210 +2754,212 @@ func (s *egressServer) PathPrefix() string { } var twirpFileDescriptor1 = []byte{ - // 3278 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xc9, 0x73, 0x1b, 0xc7, - 0xd5, 0xe7, 0x60, 0xc7, 0xc3, 0xc2, 0x61, 0x93, 0xa2, 0x20, 0xca, 0x9f, 0x25, 0x43, 0x5e, 0x64, - 0xda, 0xa6, 0xf8, 0x89, 0xb2, 0x2c, 0xcb, 0x9f, 0xfd, 0x05, 0x24, 0x87, 0x24, 0x6c, 0x90, 0x40, - 0x06, 0xa0, 0xe4, 0xe4, 0x32, 0x35, 0x04, 0x9a, 0xe4, 0x14, 0x81, 0x19, 0x78, 0xba, 0x41, 0x09, - 0xae, 0xfc, 0x01, 0x39, 0x66, 0xb9, 0xa5, 0x52, 0x95, 0x4b, 0x2a, 0x87, 0x94, 0xef, 0xf9, 0x1f, - 0x92, 0x43, 0x0e, 0xa9, 0xfc, 0x03, 0x39, 0x26, 0x95, 0xdc, 0x72, 0x4f, 0xf5, 0x32, 0x0b, 0x06, - 0x43, 0x8a, 0x8b, 0xaa, 0x72, 0x48, 0x6e, 0xd3, 0x6f, 0xc3, 0xeb, 0xee, 0x5f, 0xbf, 0xd7, 0xef, - 0x35, 0x60, 0xa1, 0x6f, 0x9d, 0xe2, 0x13, 0x8b, 0x1a, 0xf8, 0xc8, 0xc5, 0x84, 0xac, 0x0c, 0x5d, - 0x87, 0x3a, 0x28, 0x2b, 0xa9, 0x4b, 0x3e, 0x7b, 0xe0, 0xf4, 0x70, 0x5f, 0xb2, 0xab, 0x7f, 0xce, - 0xc0, 0x92, 0xee, 0x38, 0x83, 0x0d, 0x67, 0x30, 0x74, 0x88, 0x45, 0xb1, 0xc6, 0x95, 0x75, 0xfc, - 0xcd, 0x08, 0x13, 0x8a, 0x6e, 0x43, 0xde, 0x75, 0x9c, 0x81, 0x61, 0x9b, 0x03, 0x5c, 0x51, 0xee, - 0x2a, 0xf7, 0xf3, 0x7a, 0x8e, 0x11, 0xf6, 0xcc, 0x01, 0x46, 0x8b, 0x90, 0xe9, 0x9b, 0x63, 0x67, - 0x44, 0x2b, 0x09, 0xce, 0x91, 0x23, 0xf4, 0x3f, 0x00, 0xe6, 0xa8, 0x67, 0x39, 0x86, 0x63, 0xf7, - 0xc7, 0x95, 0xe4, 0x5d, 0xe5, 0x7e, 0x4e, 0xcf, 0x73, 0x4a, 0xd3, 0xee, 0x8f, 0xd1, 0x27, 0x50, - 0x14, 0xec, 0x81, 0xf5, 0xd2, 0xb2, 0x8f, 0x2a, 0xb3, 0x77, 0x95, 0xfb, 0xe5, 0x87, 0x0b, 0x2b, - 0xd2, 0xbf, 0x95, 0x1a, 0x63, 0xee, 0x72, 0x9e, 0x5e, 0x30, 0x83, 0x01, 0xb3, 0x7b, 0x6a, 0xf5, - 0xb0, 0xb4, 0x9b, 0x12, 0x76, 0x39, 0x85, 0xdb, 0x7d, 0x17, 0x66, 0xbb, 0x23, 0x42, 0x9d, 0x81, - 0x71, 0x60, 0x12, 0x6c, 0x8c, 0xdc, 0x7e, 0x25, 0xcd, 0xfd, 0x2a, 0x09, 0xf2, 0xba, 0x49, 0xf0, - 0xbe, 0xdb, 0x47, 0x8f, 0x20, 0x75, 0x68, 0xf5, 0x71, 0x25, 0x73, 0x57, 0xb9, 0x5f, 0x78, 0xb8, - 0xe4, 0xff, 0xae, 0x66, 0x77, 0x9d, 0x1e, 0xee, 0x6d, 0x59, 0x7d, 0xdc, 0x1c, 0xd1, 0xe1, 0x88, - 0xae, 0x27, 0x2a, 0xca, 0xce, 0x8c, 0xce, 0xa5, 0xd1, 0x1a, 0x64, 0x08, 0x75, 0xb1, 0x39, 0xa8, - 0x64, 0xb9, 0xde, 0x0d, 0x5f, 0xaf, 0xcd, 0xc9, 0x13, 0x2a, 0x52, 0x14, 0x7d, 0x01, 0x39, 0x82, - 0x8f, 0x06, 0xd8, 0xa6, 0xa4, 0x02, 0x5c, 0xed, 0x8d, 0x40, 0x4d, 0x30, 0x62, 0x7e, 0xd0, 0xd7, - 0x41, 0x4f, 0x20, 0x33, 0x74, 0x31, 0xc1, 0xb4, 0x92, 0xe3, 0x8b, 0xf4, 0xe6, 0xa4, 0xb3, 0x96, - 0x7d, 0xd4, 0x1c, 0x52, 0xcb, 0xb1, 0x49, 0x8b, 0x4b, 0xed, 0x28, 0xba, 0x94, 0x47, 0x8f, 0x21, - 0x67, 0xf6, 0x4e, 0x4d, 0xbb, 0x8b, 0x7b, 0x95, 0x3c, 0xff, 0xe5, 0xca, 0x59, 0xba, 0x3b, 0x8a, - 0xee, 0xcb, 0xa2, 0xcf, 0xa1, 0xc8, 0xa6, 0x6b, 0x38, 0xdc, 0x21, 0x52, 0x29, 0xdc, 0x4d, 0x9e, - 0xbf, 0x48, 0x7a, 0xe1, 0xd0, 0xff, 0x26, 0xe8, 0xff, 0xa0, 0x2c, 0xa6, 0xee, 0x1b, 0x28, 0x72, - 0x03, 0xf1, 0xab, 0xa5, 0x97, 0x48, 0x68, 0x44, 0x90, 0x06, 0xb3, 0x72, 0xea, 0xbe, 0x7a, 0x89, - 0xab, 0x9f, 0xbb, 0x6a, 0x7a, 0x59, 0x2a, 0x79, 0x66, 0x3e, 0x85, 0x92, 0x35, 0x30, 0x8f, 0x82, - 0x49, 0x94, 0xb9, 0x91, 0x00, 0x61, 0x75, 0xc6, 0x95, 0xca, 0x45, 0x2b, 0x18, 0x10, 0xf4, 0x10, - 0x72, 0x2f, 0xf0, 0xc1, 0xb1, 0xe3, 0x9c, 0x90, 0x8a, 0xca, 0xb5, 0x16, 0x7d, 0xad, 0xe7, 0x82, - 0xb1, 0xe1, 0xd8, 0x87, 0xd6, 0x91, 0xee, 0xcb, 0xad, 0xe7, 0x20, 0x23, 0x7e, 0x68, 0x3d, 0x0f, - 0x59, 0x47, 0xac, 0x69, 0xf5, 0x9f, 0x69, 0x50, 0x9f, 0xe3, 0x83, 0xc9, 0xd3, 0xa4, 0x42, 0x92, - 0xa1, 0x52, 0x9c, 0x23, 0xf6, 0x19, 0x39, 0x2a, 0x89, 0xe8, 0x51, 0x99, 0x44, 0x7c, 0x32, 0x8a, - 0xf8, 0x0f, 0x01, 0x99, 0x2f, 0x4c, 0x8b, 0x1a, 0x84, 0x9a, 0x2e, 0x35, 0x88, 0x75, 0x64, 0x9b, - 0xfd, 0x4a, 0x91, 0x8b, 0xa9, 0x9c, 0xd3, 0x66, 0x8c, 0x36, 0xa7, 0xfb, 0xb8, 0x4f, 0x5d, 0x11, - 0xf7, 0xe9, 0xab, 0xe1, 0x3e, 0x73, 0x2d, 0xdc, 0x67, 0xaf, 0x81, 0xfb, 0xdc, 0x35, 0x70, 0x9f, - 0xbf, 0x2e, 0xee, 0xe1, 0x7a, 0xb8, 0x2f, 0xbc, 0x0e, 0xdc, 0x97, 0xae, 0x84, 0xfb, 0xf2, 0x75, - 0x70, 0xff, 0x9b, 0x14, 0x54, 0x5a, 0xa6, 0x4b, 0xad, 0xae, 0x35, 0x34, 0x6d, 0x7a, 0x89, 0x6c, - 0xb2, 0x04, 0x39, 0xab, 0x87, 0x6d, 0x6a, 0xd1, 0xb1, 0xcc, 0x27, 0xfe, 0x18, 0xbd, 0x05, 0x45, - 0xd2, 0x75, 0x31, 0xb6, 0x0d, 0x72, 0x6c, 0xba, 0x58, 0x9e, 0x84, 0x82, 0xa0, 0xb5, 0x19, 0x29, - 0x04, 0x99, 0xd4, 0x85, 0x20, 0x33, 0x13, 0x0b, 0x99, 0xf4, 0x2b, 0x20, 0x33, 0x73, 0x0e, 0x64, - 0x32, 0xd7, 0x85, 0x4c, 0xf6, 0x7a, 0x90, 0xc9, 0xbd, 0x0e, 0xc8, 0xe4, 0xaf, 0x04, 0x19, 0xb8, - 0x20, 0x64, 0x42, 0x40, 0xf9, 0x5b, 0x1a, 0x6e, 0x77, 0x5c, 0xb3, 0x7b, 0x72, 0x95, 0x9b, 0xc7, - 0xdb, 0x50, 0x16, 0x61, 0x93, 0x32, 0x0b, 0x86, 0xd5, 0x93, 0x88, 0x11, 0x17, 0x0b, 0x6e, 0xb6, - 0xde, 0x63, 0x52, 0x22, 0x7a, 0xfa, 0x52, 0x49, 0x21, 0xc5, 0xa9, 0x9e, 0xd4, 0xbf, 0x29, 0x2c, - 0xe6, 0xae, 0x15, 0x16, 0x33, 0xd7, 0x08, 0x8b, 0xd9, 0xff, 0x5e, 0x07, 0xae, 0x82, 0xf1, 0xd9, - 0xeb, 0x84, 0xc5, 0xbf, 0x28, 0x80, 0x38, 0xe0, 0x2e, 0x01, 0xf2, 0x5b, 0x90, 0x8b, 0xc0, 0x3b, - 0x4b, 0x25, 0x66, 0x1f, 0x48, 0xcc, 0x26, 0xf9, 0x56, 0xde, 0xf2, 0x7d, 0xda, 0xb4, 0x5c, 0xdc, - 0xa5, 0xc1, 0x5a, 0xf8, 0x70, 0x7d, 0x07, 0x4a, 0x2f, 0xf0, 0x01, 0x71, 0xba, 0x27, 0x98, 0xf2, - 0x9b, 0x31, 0x43, 0x7b, 0x7e, 0x67, 0x46, 0x2f, 0xfa, 0x64, 0x76, 0x35, 0x0e, 0xcf, 0x37, 0x7d, - 0xd9, 0xf9, 0x56, 0xff, 0x90, 0x80, 0xb9, 0x29, 0x40, 0xa0, 0x8f, 0x21, 0xcf, 0x21, 0x44, 0xc7, - 0x43, 0x31, 0xc7, 0x72, 0x14, 0x7b, 0x42, 0xbc, 0x33, 0x1e, 0x62, 0x3d, 0x77, 0x28, 0xbf, 0x58, - 0x3a, 0x60, 0xdf, 0x43, 0x93, 0x1e, 0x7b, 0xe9, 0xc0, 0x1b, 0xa3, 0xf7, 0x41, 0xed, 0x59, 0xc4, - 0x3c, 0xe8, 0x63, 0x63, 0x60, 0xda, 0xd6, 0x21, 0x26, 0xe2, 0x44, 0xe4, 0xf4, 0x59, 0x49, 0xdf, - 0x95, 0x64, 0x74, 0x0f, 0x12, 0x64, 0x4d, 0xae, 0xd3, 0x5c, 0x00, 0x9b, 0xb5, 0xfd, 0x61, 0xdf, - 0x31, 0x7b, 0x3b, 0x33, 0x7a, 0x82, 0xac, 0xa1, 0x77, 0x21, 0x79, 0xd4, 0x1d, 0xca, 0x08, 0x80, - 0x7c, 0xa9, 0xed, 0x8d, 0x96, 0x2f, 0xc6, 0x04, 0xd0, 0x2a, 0xa4, 0xcd, 0x6f, 0x47, 0x2e, 0x9e, - 0x4a, 0x13, 0x35, 0x46, 0x5d, 0xef, 0x3b, 0x07, 0xbe, 0xbc, 0x10, 0x44, 0x0f, 0x20, 0x63, 0xf6, - 0xad, 0x66, 0xbb, 0x3d, 0x55, 0x35, 0xd4, 0x38, 0xd9, 0x97, 0x97, 0x62, 0xa1, 0xd5, 0xfc, 0x75, - 0x0a, 0xe6, 0x63, 0xe0, 0x8d, 0x9e, 0x42, 0x8e, 0x97, 0x6e, 0x5d, 0xa7, 0x2f, 0x97, 0xf3, 0xcd, - 0xf8, 0xe3, 0xd0, 0x92, 0x52, 0xba, 0x2f, 0x8f, 0xde, 0x83, 0x59, 0xb6, 0x88, 0x0c, 0x6e, 0xc6, - 0xd0, 0xc5, 0x87, 0xd6, 0x4b, 0xb9, 0xb6, 0x65, 0x8f, 0xdc, 0xe2, 0x54, 0x74, 0x0f, 0x4a, 0xc3, - 0xbe, 0x39, 0xee, 0x5b, 0x84, 0x0a, 0x70, 0xca, 0xc8, 0xe9, 0x11, 0x39, 0x40, 0x3f, 0x04, 0xc4, - 0x7e, 0xd8, 0x98, 0x94, 0x2c, 0x70, 0x49, 0x95, 0x71, 0x5a, 0x61, 0xe9, 0xf7, 0x41, 0xf5, 0x4e, - 0x73, 0x6f, 0xe4, 0x9a, 0xec, 0x5c, 0xf0, 0x15, 0x2f, 0xe9, 0xde, 0x29, 0xdf, 0x94, 0x64, 0x76, - 0xf0, 0x7d, 0x37, 0xc9, 0xe8, 0x90, 0xb9, 0x09, 0x7c, 0xa6, 0x67, 0x1c, 0xfc, 0x36, 0x97, 0x09, - 0x26, 0x21, 0xc6, 0xb1, 0x30, 0xc9, 0x9d, 0x07, 0x93, 0xf4, 0x85, 0x60, 0x92, 0xb9, 0x30, 0x4c, - 0xb2, 0x97, 0x87, 0x49, 0xfe, 0xb2, 0x30, 0xf9, 0x79, 0x02, 0xd4, 0xe8, 0xb1, 0x9f, 0x38, 0x3c, - 0xca, 0x05, 0x0e, 0x4f, 0xfa, 0xbc, 0x55, 0x49, 0x5c, 0x68, 0x55, 0x92, 0x17, 0x5e, 0x95, 0xd4, - 0xe5, 0x57, 0x25, 0x73, 0xd9, 0x55, 0xf9, 0x7b, 0x12, 0x0a, 0xa1, 0xb0, 0xce, 0x26, 0xdd, 0x35, - 0x87, 0x74, 0xe4, 0x62, 0xc3, 0xb2, 0x29, 0x76, 0x4f, 0x4d, 0x71, 0x78, 0x4a, 0xfa, 0xac, 0xa4, - 0xd7, 0x25, 0x19, 0x2d, 0x40, 0xfa, 0x85, 0xd5, 0x93, 0x51, 0x27, 0xad, 0x8b, 0x01, 0x5a, 0x84, - 0xcc, 0x31, 0xb6, 0x8e, 0x8e, 0x29, 0x9f, 0x68, 0x5a, 0x97, 0xa3, 0xb8, 0x13, 0x95, 0x8a, 0x3d, - 0x51, 0xb5, 0x69, 0x4c, 0xa7, 0x23, 0xc1, 0x90, 0x3b, 0x7c, 0x0e, 0x9e, 0x1f, 0x41, 0x41, 0x24, - 0x32, 0x16, 0x33, 0xbb, 0xf2, 0x0e, 0x30, 0x3f, 0xa9, 0xbe, 0xc1, 0x58, 0x3a, 0x58, 0xfe, 0x77, - 0xec, 0x7e, 0x67, 0xcf, 0xdb, 0xef, 0xdc, 0x85, 0xf6, 0x3b, 0x7f, 0xe1, 0xfd, 0x86, 0xcb, 0xef, - 0x77, 0xe1, 0xb2, 0xfb, 0xfd, 0x5d, 0x0a, 0x72, 0x9e, 0x9f, 0xbc, 0xa8, 0xee, 0x76, 0x31, 0x21, - 0xc6, 0x09, 0x1e, 0x4b, 0xfc, 0xe7, 0x05, 0xe5, 0x2b, 0x3c, 0x66, 0x5b, 0x49, 0x70, 0xd7, 0xc5, - 0x7e, 0xdb, 0x4a, 0x8c, 0x58, 0xcc, 0x23, 0x98, 0x10, 0xcb, 0xb1, 0x0d, 0xea, 0x9c, 0x60, 0x5b, - 0x46, 0xb2, 0xa2, 0x24, 0x76, 0x18, 0x0d, 0xbd, 0x0b, 0xb3, 0x26, 0x21, 0xa3, 0x01, 0x36, 0x5c, - 0xa7, 0x8f, 0x0d, 0xd3, 0xb5, 0x79, 0xbd, 0x9d, 0xd7, 0x4b, 0x82, 0xac, 0x3b, 0x7d, 0x5c, 0x73, - 0x6d, 0xf4, 0x31, 0xdc, 0x0c, 0xcb, 0xe1, 0x97, 0x14, 0xbb, 0xb6, 0xd9, 0x67, 0xb9, 0xbc, 0xc4, - 0xe5, 0x17, 0x02, 0x79, 0x4d, 0x32, 0xeb, 0x3d, 0xe6, 0x9b, 0x8b, 0x8f, 0x58, 0x68, 0x14, 0x01, - 0x57, 0x8e, 0xd8, 0x81, 0xc6, 0x76, 0x6f, 0xe8, 0x58, 0x36, 0x95, 0xf8, 0xf2, 0xc7, 0x4c, 0xe7, - 0x60, 0xc4, 0x32, 0xb8, 0x6c, 0x77, 0xc9, 0x11, 0xba, 0x0f, 0xea, 0xa1, 0xe3, 0x76, 0xb1, 0xc1, - 0x8e, 0xbd, 0x41, 0xe8, 0x58, 0xf6, 0xbc, 0x72, 0x7a, 0x99, 0xd3, 0x5b, 0x26, 0x3d, 0x6e, 0x33, - 0x2a, 0xfa, 0x0c, 0x72, 0x03, 0x4c, 0xcd, 0x9e, 0x49, 0x4d, 0x59, 0x84, 0xdc, 0x99, 0xda, 0xfd, - 0x95, 0x5d, 0x29, 0xa1, 0xd9, 0xd4, 0x1d, 0xeb, 0xbe, 0x02, 0xaa, 0x40, 0x96, 0x9a, 0x47, 0x47, - 0x96, 0x7d, 0xc4, 0x91, 0xc3, 0x6e, 0x29, 0x62, 0x88, 0x1e, 0xc0, 0x7c, 0xd7, 0xb1, 0x29, 0x8f, - 0xf8, 0x16, 0xe1, 0x97, 0x7c, 0x36, 0xb3, 0x3c, 0x97, 0x42, 0x92, 0xb5, 0x19, 0x70, 0xd0, 0x32, - 0xa4, 0x87, 0xae, 0xf3, 0x72, 0x2c, 0x21, 0x13, 0xdc, 0xd0, 0x5a, 0x8c, 0x2a, 0x6f, 0x1e, 0x42, - 0x64, 0xe9, 0x33, 0x28, 0x4d, 0x78, 0x84, 0x54, 0x48, 0x06, 0xdb, 0xcd, 0x3e, 0xd9, 0x49, 0x3e, - 0x35, 0xfb, 0x23, 0x2c, 0xf7, 0x59, 0x0c, 0x9e, 0x26, 0x9e, 0x28, 0xd5, 0x6f, 0x20, 0xef, 0xe3, - 0x15, 0xdd, 0x85, 0x42, 0xd7, 0xc5, 0xbc, 0xd4, 0x34, 0xfb, 0x44, 0x1a, 0x08, 0x93, 0x42, 0x2b, - 0x9c, 0x98, 0x58, 0x61, 0xdf, 0xdf, 0xe4, 0x2b, 0xfd, 0xad, 0xfe, 0x08, 0x66, 0x23, 0xc0, 0x67, - 0x55, 0xad, 0xd9, 0xed, 0x3a, 0x23, 0x9b, 0x86, 0x2f, 0x80, 0x05, 0x49, 0xe3, 0x49, 0xf3, 0x0e, - 0x78, 0x43, 0x8e, 0x65, 0xf1, 0xf3, 0x20, 0x49, 0x0c, 0xcc, 0xef, 0x40, 0x99, 0x2d, 0xa4, 0x69, - 0xd9, 0xd8, 0x0d, 0x67, 0xea, 0x92, 0x4f, 0x65, 0x76, 0xaa, 0x3f, 0x55, 0xa0, 0x18, 0x3e, 0x44, - 0x57, 0x3d, 0x23, 0xaf, 0x11, 0x9f, 0xd5, 0xe7, 0x50, 0x08, 0xad, 0x53, 0x4c, 0x73, 0x6c, 0x09, - 0x72, 0x23, 0xc2, 0x4e, 0xc6, 0xc0, 0xdb, 0x42, 0x7f, 0xcc, 0x78, 0x43, 0x93, 0x90, 0x17, 0x8e, - 0xeb, 0x55, 0x75, 0xfe, 0xb8, 0xfa, 0x1c, 0x8a, 0xe1, 0xb2, 0x02, 0xad, 0x4d, 0xdd, 0x98, 0x6e, - 0x46, 0xea, 0x8f, 0x98, 0xab, 0x12, 0x82, 0xd4, 0xc8, 0xed, 0x93, 0x4a, 0xe2, 0x6e, 0xf2, 0x7e, - 0x5e, 0xe7, 0xdf, 0xd5, 0xdf, 0x27, 0x61, 0x36, 0x52, 0x2d, 0x05, 0xe9, 0x42, 0x89, 0x4f, 0x17, - 0x89, 0x89, 0x74, 0xb1, 0x00, 0xe9, 0x1e, 0x1e, 0xd2, 0x63, 0x99, 0x45, 0xc4, 0x00, 0xbd, 0x01, - 0xf9, 0x43, 0xd7, 0x1c, 0x60, 0xd7, 0xa4, 0x22, 0x3d, 0xa6, 0xf5, 0x80, 0xc0, 0xc2, 0xbe, 0x28, - 0x76, 0x45, 0xd8, 0x4f, 0x47, 0xc2, 0x3e, 0x6f, 0x97, 0xcb, 0xb0, 0x6f, 0xfa, 0xdf, 0x2c, 0x9a, - 0x09, 0xad, 0x03, 0x8b, 0x72, 0xbb, 0x19, 0x6e, 0x57, 0x54, 0xc8, 0xeb, 0x82, 0x16, 0x08, 0x7d, - 0x33, 0x32, 0xfb, 0x16, 0x1d, 0xf3, 0x90, 0xe7, 0x09, 0x7d, 0x5f, 0xd0, 0x58, 0x8a, 0x13, 0x42, - 0x87, 0x2e, 0x2b, 0x5b, 0xec, 0xee, 0x98, 0xe7, 0x8f, 0xb4, 0x2e, 0x6a, 0xf0, 0x2d, 0x8f, 0xca, - 0x1c, 0x15, 0xf5, 0xb6, 0x70, 0x34, 0x17, 0x71, 0xf4, 0x19, 0xe3, 0x49, 0x47, 0x4f, 0xfd, 0x6f, - 0xe6, 0x83, 0xd0, 0xf2, 0x1c, 0xcd, 0x0b, 0x1f, 0x38, 0x31, 0xe4, 0xa8, 0x10, 0xf2, 0x1c, 0x2d, - 0x86, 0x84, 0x3c, 0x47, 0x3f, 0x04, 0x74, 0x82, 0xc7, 0x06, 0x5f, 0xb9, 0x20, 0xcd, 0xb3, 0x58, - 0xa2, 0xe8, 0xea, 0x09, 0x1e, 0x6f, 0x31, 0x86, 0x97, 0xe7, 0xab, 0x5f, 0xc2, 0xfc, 0xfe, 0xb0, - 0x67, 0x52, 0xdc, 0xe0, 0xaf, 0x16, 0xa1, 0x92, 0x4c, 0xbc, 0x9f, 0xb0, 0x50, 0x2d, 0xef, 0x4e, - 0x82, 0x20, 0xc2, 0x73, 0xdc, 0x8b, 0x47, 0xf5, 0xc7, 0x8a, 0x67, 0x4c, 0xe0, 0xe9, 0x42, 0xc6, - 0x58, 0x2a, 0xe9, 0xf5, 0x64, 0x55, 0x6a, 0x84, 0xc0, 0x56, 0x32, 0x7b, 0x3d, 0x01, 0xdd, 0x7d, - 0xb7, 0x4f, 0xd8, 0xb4, 0x5c, 0x3c, 0x70, 0x4e, 0xf1, 0x84, 0x68, 0x92, 0x8b, 0xaa, 0x82, 0x13, - 0x48, 0x57, 0x31, 0xcc, 0x35, 0x2c, 0x72, 0x99, 0xc6, 0xdb, 0x84, 0x93, 0x89, 0xe9, 0x19, 0x9b, - 0x5d, 0x6a, 0x9d, 0x7a, 0x3d, 0x37, 0x39, 0xaa, 0xfe, 0x3f, 0xa0, 0xf0, 0xcf, 0x90, 0xa1, 0x63, - 0x13, 0x76, 0xc7, 0x4f, 0x5b, 0x14, 0x0f, 0x58, 0x10, 0x65, 0x59, 0x24, 0xd8, 0x7b, 0x21, 0x57, - 0xb7, 0x0f, 0x1d, 0x5d, 0x48, 0x54, 0x57, 0x61, 0xae, 0x4d, 0x9d, 0xe1, 0x94, 0x9f, 0x67, 0xae, - 0x57, 0xf5, 0x77, 0x79, 0x80, 0xc0, 0xce, 0xf9, 0x6b, 0x7b, 0x13, 0xb2, 0x7c, 0xc2, 0xfe, 0x8c, - 0x32, 0x6c, 0x58, 0xef, 0x4d, 0xae, 0x44, 0x29, 0xb2, 0x12, 0x4f, 0xa1, 0x40, 0x9c, 0x11, 0x4b, - 0x99, 0xbc, 0x58, 0x5d, 0xe2, 0x00, 0xbe, 0x15, 0x99, 0x44, 0x9b, 0x4b, 0xf0, 0x6a, 0x15, 0x88, - 0xff, 0x8d, 0x3e, 0x82, 0x0c, 0xa1, 0x26, 0x1d, 0x11, 0xbe, 0x50, 0xe5, 0xd0, 0xe5, 0x45, 0xaa, - 0x71, 0xa6, 0x2e, 0x85, 0x58, 0xfc, 0xe5, 0x4d, 0x7b, 0xdc, 0x33, 0x4c, 0xca, 0x31, 0x9a, 0xd4, - 0xf3, 0x92, 0x52, 0xa3, 0xac, 0xf6, 0xc7, 0x76, 0x4f, 0x30, 0x0b, 0x9c, 0x99, 0xe5, 0xe3, 0x1a, - 0x7f, 0x5d, 0x1b, 0x71, 0xa8, 0x71, 0x26, 0x12, 0x9a, 0x92, 0x52, 0xa3, 0x2c, 0x1d, 0xf7, 0x30, - 0x35, 0xad, 0x3e, 0xa9, 0xdc, 0x10, 0xe9, 0x58, 0x0e, 0x59, 0xec, 0xc1, 0xae, 0xeb, 0xb8, 0x32, - 0x01, 0x8b, 0x01, 0x33, 0xc7, 0x3f, 0xf8, 0xa1, 0xad, 0x2c, 0x8a, 0xe0, 0xc3, 0x29, 0xec, 0x78, - 0xa2, 0x06, 0x94, 0xf9, 0x7a, 0x75, 0xbd, 0x2e, 0x9d, 0xbc, 0xbe, 0xdf, 0xf3, 0xa7, 0x77, 0xf6, - 0xeb, 0xe1, 0xce, 0x8c, 0x5e, 0x72, 0xc3, 0x5c, 0xf4, 0x11, 0x24, 0x5f, 0xe0, 0x83, 0x4a, 0x39, - 0xd2, 0xb6, 0x88, 0x3e, 0x94, 0xb0, 0x2b, 0xe4, 0x0b, 0x7c, 0x80, 0x34, 0x28, 0x0c, 0x83, 0x5e, - 0x72, 0x65, 0x9e, 0xab, 0xbd, 0x15, 0x64, 0xd9, 0x33, 0xfa, 0xcc, 0x3b, 0x33, 0x7a, 0x58, 0x0f, - 0x35, 0x61, 0x56, 0x34, 0x52, 0x82, 0x49, 0x88, 0x4a, 0xef, 0x6d, 0xdf, 0xd4, 0x39, 0x9d, 0xc8, - 0x9d, 0x19, 0xbd, 0x4c, 0x27, 0xd8, 0x68, 0x0d, 0xd2, 0x9c, 0x22, 0xeb, 0x92, 0xdb, 0x93, 0x66, - 0xa2, 0xda, 0x42, 0x16, 0x7d, 0x1c, 0x79, 0x40, 0x8c, 0xe6, 0x20, 0x06, 0x6a, 0x76, 0xa4, 0x78, - 0xd7, 0x4f, 0xf1, 0x7b, 0x86, 0x1f, 0xc8, 0x56, 0x4f, 0xf4, 0x56, 0xce, 0xea, 0x04, 0xa6, 0x22, - 0xc5, 0x45, 0x9b, 0xe7, 0x93, 0x50, 0x83, 0xb1, 0x18, 0xed, 0x4b, 0x4a, 0x46, 0x48, 0x29, 0xe8, - 0x2c, 0x3e, 0xf5, 0x1b, 0x75, 0x2e, 0x26, 0xa3, 0x3e, 0xf5, 0xda, 0x5d, 0xf3, 0x31, 0x4e, 0x7a, - 0x6d, 0x3a, 0x5d, 0x48, 0xa2, 0x47, 0xb2, 0x47, 0xe8, 0x69, 0x8a, 0x77, 0xb3, 0x69, 0x4f, 0x45, - 0x6b, 0xd0, 0xd3, 0xfa, 0x22, 0x68, 0xee, 0x79, 0x8a, 0x73, 0xd1, 0xde, 0x60, 0xc8, 0x63, 0xbf, - 0xab, 0xe7, 0xe9, 0x3f, 0xf1, 0xba, 0x7a, 0x9e, 0xf6, 0x42, 0xc4, 0x61, 0x5e, 0x0e, 0x09, 0x5d, - 0xd1, 0xd4, 0xf3, 0x34, 0x3f, 0x80, 0x39, 0xaf, 0x10, 0x32, 0xfa, 0x4e, 0x57, 0x74, 0x22, 0x6e, - 0x8a, 0xae, 0x85, 0xc7, 0x68, 0x48, 0x3a, 0x5a, 0x81, 0xf9, 0x03, 0xb3, 0x7b, 0x32, 0x1a, 0x1a, - 0x84, 0x3a, 0x2e, 0xfb, 0xbd, 0x11, 0xc1, 0xbd, 0xca, 0x2d, 0x1e, 0x0c, 0xe7, 0x04, 0xab, 0x2d, - 0x38, 0xfb, 0x04, 0xf7, 0xd6, 0xf3, 0x90, 0x75, 0xc5, 0xce, 0xb3, 0xea, 0x44, 0xf8, 0x56, 0xfd, - 0x1c, 0xca, 0x93, 0x7b, 0x8c, 0xde, 0x83, 0x94, 0x65, 0x1f, 0x3a, 0x53, 0x71, 0x32, 0xb4, 0xca, - 0x5c, 0xe0, 0x69, 0xa2, 0xa2, 0x54, 0xff, 0xa1, 0x00, 0x04, 0x8c, 0xf8, 0x57, 0xc4, 0x50, 0x30, - 0x49, 0x9c, 0x17, 0x4c, 0x92, 0x93, 0xc1, 0x64, 0x09, 0x72, 0x13, 0xcd, 0x98, 0xa4, 0xee, 0x8f, - 0xd1, 0x43, 0x3f, 0xa2, 0x89, 0x2b, 0xc7, 0x52, 0x8c, 0x97, 0x2b, 0x91, 0xb0, 0xe6, 0xc7, 0x98, - 0x4c, 0x28, 0xc6, 0x54, 0x57, 0x20, 0x23, 0xe4, 0x10, 0x40, 0xa6, 0xb6, 0xd1, 0xa9, 0x3f, 0xd3, - 0xd4, 0x19, 0x54, 0x84, 0xdc, 0x56, 0x7d, 0xaf, 0xde, 0xde, 0xd1, 0x36, 0x55, 0x85, 0x71, 0xb6, - 0x6a, 0xf5, 0x86, 0xb6, 0xa9, 0x26, 0xaa, 0xdf, 0x29, 0x90, 0xf3, 0x50, 0xe3, 0xf5, 0x32, 0xc2, - 0xa9, 0xcb, 0x1b, 0xbf, 0xa6, 0x89, 0x67, 0x22, 0x13, 0x47, 0x90, 0x22, 0xd6, 0xb7, 0x58, 0x2e, - 0x08, 0xff, 0x66, 0xf2, 0x3e, 0x56, 0xc4, 0x35, 0xd6, 0x1f, 0x57, 0xff, 0x94, 0x80, 0x62, 0x18, - 0xab, 0xd3, 0xdd, 0x33, 0xe5, 0xc2, 0xdd, 0xb3, 0xdc, 0x19, 0xdd, 0xb3, 0xb0, 0xbf, 0x89, 0x33, - 0xfc, 0x4d, 0x86, 0xfc, 0xfd, 0x00, 0xe6, 0x7c, 0xc3, 0xbe, 0xe3, 0xe2, 0x66, 0xae, 0x7a, 0x0c, - 0x1f, 0xe4, 0x8f, 0x60, 0x71, 0xd2, 0x15, 0x5f, 0x43, 0xa4, 0x8a, 0x85, 0xb0, 0x3b, 0xbe, 0x16, - 0xaf, 0x97, 0xc5, 0x09, 0xe6, 0xe5, 0x08, 0x5f, 0x97, 0x24, 0xab, 0x97, 0x39, 0x71, 0x83, 0xd1, - 0x22, 0x3b, 0x94, 0x39, 0x6f, 0x87, 0xb2, 0x13, 0x3b, 0x54, 0xfd, 0x89, 0x02, 0x10, 0x9c, 0xe1, - 0x8b, 0x37, 0x5a, 0xee, 0x04, 0x5d, 0x12, 0xe6, 0x94, 0xc2, 0xad, 0x7a, 0x0d, 0x91, 0x69, 0x97, - 0x2e, 0x01, 0x9a, 0xea, 0x2f, 0x12, 0x70, 0xa3, 0x36, 0xa2, 0xce, 0x54, 0xe2, 0x09, 0xbd, 0xcc, - 0x28, 0xd7, 0x78, 0x7d, 0x4c, 0x5c, 0xe3, 0xf5, 0x31, 0x79, 0xb9, 0x97, 0x99, 0x98, 0xb7, 0x95, - 0xd4, 0xe5, 0xdf, 0x56, 0xc2, 0x4f, 0x1c, 0x3f, 0x4b, 0xc0, 0x2c, 0x5b, 0x9c, 0x50, 0x0e, 0xfc, - 0x8f, 0xef, 0x43, 0x2e, 0xaf, 0xcb, 0x82, 0x31, 0x78, 0xe2, 0x40, 0x0b, 0xa0, 0x6e, 0x6a, 0x5b, - 0xb5, 0xfd, 0x46, 0xc7, 0xd8, 0xaa, 0x37, 0xb4, 0xce, 0x0f, 0x5a, 0x2c, 0x18, 0x66, 0x21, 0xb9, - 0xdb, 0x7a, 0xa4, 0x2a, 0xec, 0xa3, 0xb9, 0xbd, 0xad, 0x26, 0x04, 0x65, 0x4d, 0x4d, 0x2e, 0xef, - 0xc1, 0x8d, 0xd8, 0xbe, 0x3e, 0xba, 0x07, 0x77, 0x3c, 0x4b, 0x6d, 0x6d, 0x7b, 0x57, 0xdb, 0xeb, - 0x68, 0x9b, 0xdc, 0xa6, 0xd1, 0xd2, 0x9b, 0x9d, 0xe6, 0x46, 0xb3, 0xa1, 0xce, 0x20, 0x15, 0x8a, - 0x3b, 0x8d, 0x76, 0x40, 0x51, 0x96, 0x1f, 0x44, 0xde, 0x15, 0x64, 0x77, 0x31, 0x0f, 0xe9, 0xfa, - 0xde, 0xa6, 0xf6, 0xb5, 0x3a, 0x83, 0x4a, 0x90, 0xef, 0xd4, 0x77, 0xb5, 0x76, 0xa7, 0xb6, 0xdb, - 0x52, 0x95, 0xe5, 0x43, 0x98, 0x8d, 0xb4, 0x26, 0xd1, 0x22, 0xa0, 0xfa, 0x6e, 0x6d, 0x5b, 0x33, - 0xda, 0xfb, 0x5b, 0x5b, 0xf5, 0xaf, 0x0d, 0x4f, 0x73, 0x09, 0x16, 0x27, 0xe8, 0x21, 0x33, 0xe8, - 0x0e, 0xdc, 0x9e, 0xe0, 0xed, 0x35, 0xf7, 0x34, 0xa3, 0xf9, 0x4c, 0xd3, 0x9f, 0xeb, 0xf5, 0x8e, - 0xa6, 0x26, 0x96, 0x3f, 0xf5, 0xd2, 0xa4, 0x3f, 0xc3, 0xd0, 0x5a, 0x85, 0xa6, 0x94, 0x83, 0x94, - 0xde, 0xe1, 0x26, 0xb3, 0x90, 0x6c, 0xeb, 0x1d, 0x35, 0xb1, 0xbc, 0x0f, 0x85, 0xd0, 0xdf, 0xc6, - 0x10, 0x82, 0xb2, 0xa7, 0xb7, 0x5b, 0xff, 0xba, 0xbe, 0xb7, 0xad, 0xce, 0x30, 0x97, 0x37, 0xf7, - 0x6b, 0x0d, 0x63, 0x63, 0xa7, 0xb6, 0xb7, 0xa7, 0x35, 0x8c, 0xda, 0xb6, 0xb6, 0xd7, 0x51, 0x15, - 0xe6, 0xf2, 0x24, 0xbd, 0xd1, 0xd1, 0xf4, 0xbd, 0x1a, 0xf7, 0xe8, 0x8f, 0x0a, 0xdc, 0x88, 0x3d, - 0xc0, 0x7c, 0x59, 0x1f, 0x3e, 0x7e, 0x64, 0x7c, 0xf2, 0x70, 0xb5, 0x65, 0xac, 0xad, 0xca, 0x85, - 0xf6, 0x29, 0x8f, 0x57, 0x55, 0x05, 0xcd, 0x41, 0x89, 0x53, 0xfe, 0x77, 0xf5, 0x89, 0x10, 0x4a, - 0x44, 0x48, 0x8f, 0x57, 0xd5, 0x24, 0xba, 0x05, 0x37, 0x5a, 0x4d, 0xbd, 0xa3, 0xd7, 0xea, 0x1d, - 0x63, 0xc2, 0x64, 0xea, 0x0c, 0xd6, 0xe3, 0x55, 0x35, 0xcd, 0xbc, 0x9e, 0x64, 0xf9, 0x3f, 0x92, - 0x39, 0x8b, 0xf7, 0x78, 0x55, 0xcd, 0x2e, 0xff, 0x4a, 0x81, 0x62, 0xb8, 0x20, 0x41, 0xf3, 0x30, - 0xab, 0x6d, 0xeb, 0x5a, 0xbb, 0x6d, 0xb4, 0x3b, 0x35, 0xbd, 0x23, 0xd6, 0x6a, 0x0e, 0x4a, 0x92, - 0x28, 0xb3, 0xb5, 0x12, 0x22, 0x69, 0x7b, 0x9b, 0x4c, 0x2a, 0x11, 0x52, 0xdd, 0x68, 0xee, 0xb6, - 0x1a, 0x5a, 0x47, 0x53, 0x93, 0x21, 0x39, 0x99, 0xce, 0x53, 0x6c, 0x37, 0x3c, 0x6b, 0xeb, 0x4d, - 0xbd, 0xa3, 0x6d, 0xaa, 0x69, 0x54, 0x81, 0x05, 0x49, 0x6b, 0xd4, 0x77, 0xeb, 0x1d, 0x43, 0xd7, - 0x6a, 0x1b, 0xec, 0x22, 0x90, 0x59, 0xfe, 0x12, 0xd4, 0x68, 0xa1, 0xc5, 0x66, 0xe4, 0x39, 0xd9, - 0xdc, 0xd7, 0x37, 0x34, 0x83, 0x9d, 0x1a, 0xe3, 0xb9, 0xb6, 0x2e, 0x20, 0x17, 0xc3, 0x6b, 0x6f, - 0x7e, 0xa5, 0x2a, 0x0f, 0x7f, 0x99, 0x86, 0x8c, 0x0c, 0x45, 0x1d, 0xa8, 0xf0, 0x3f, 0x43, 0xc5, - 0x94, 0x2b, 0xe8, 0x22, 0xc5, 0xcc, 0x52, 0x5c, 0x31, 0x8b, 0xbe, 0xc7, 0x20, 0x6b, 0xba, 0xd4, - 0xaf, 0x60, 0xd0, 0xd9, 0x55, 0x4d, 0xbc, 0x85, 0x16, 0x2c, 0x72, 0x0b, 0xd3, 0x39, 0xe5, 0xd5, - 0x85, 0x4e, 0xbc, 0xc5, 0x67, 0x70, 0x8b, 0x5b, 0x8c, 0xab, 0x69, 0xd0, 0x85, 0x4a, 0x9e, 0x78, - 0xbb, 0x9b, 0xa0, 0x06, 0x76, 0xa5, 0xb9, 0xf3, 0x4a, 0x9f, 0x78, 0x2b, 0x35, 0x28, 0x86, 0xdb, - 0x2e, 0x28, 0xc8, 0x37, 0x31, 0xdd, 0x98, 0x57, 0x98, 0x10, 0xd1, 0x62, 0xca, 0xc4, 0x44, 0x0f, - 0x26, 0xde, 0x84, 0x06, 0x10, 0xb4, 0x2f, 0x50, 0x90, 0x35, 0xa7, 0x5a, 0x27, 0x4b, 0xb7, 0x63, - 0x79, 0xb2, 0xdf, 0xf1, 0x39, 0xbb, 0x98, 0x7b, 0x4d, 0x0c, 0x14, 0xbe, 0x20, 0x47, 0x3a, 0x1b, - 0xb1, 0x5e, 0xac, 0x6f, 0xfd, 0xf0, 0xde, 0x91, 0x45, 0x8f, 0x47, 0x07, 0x2b, 0x5d, 0x67, 0xf0, - 0x40, 0x0a, 0x3c, 0xf0, 0x5a, 0x90, 0x1e, 0xe1, 0xb7, 0x89, 0x52, 0xc3, 0x3a, 0xc5, 0x5f, 0x89, - 0xbe, 0x32, 0x75, 0xfe, 0x9a, 0x28, 0xcb, 0xf1, 0xd3, 0xa7, 0x9c, 0x70, 0x90, 0xe1, 0x2a, 0x6b, - 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xc7, 0xa9, 0x24, 0x1b, 0x02, 0x2c, 0x00, 0x00, + // 3306 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x4b, 0x73, 0xdb, 0xd6, + 0x15, 0x16, 0xf8, 0xe6, 0xe1, 0x43, 0xd0, 0x95, 0x2c, 0xd3, 0x72, 0x12, 0x3b, 0x74, 0xe2, 0x38, + 0x8a, 0x23, 0xab, 0x96, 0xe3, 0x38, 0x4e, 0x93, 0x96, 0x92, 0x20, 0x89, 0x09, 0x25, 0xb2, 0x20, + 0x65, 0xa7, 0xdd, 0x60, 0x20, 0xf2, 0x8a, 0xc2, 0x08, 0x04, 0x18, 0xe0, 0x52, 0x32, 0xf3, 0x0b, + 0xb2, 0xec, 0xb4, 0xbb, 0x4e, 0x3b, 0xdd, 0x74, 0xba, 0xe8, 0x74, 0xdb, 0xe9, 0xae, 0x3f, 0xa0, + 0x5d, 0x74, 0xd1, 0xe9, 0x1f, 0xe8, 0xb2, 0x9d, 0x76, 0xd7, 0x7d, 0xe7, 0x3e, 0xf0, 0x20, 0x08, + 0xc9, 0x92, 0xe5, 0x99, 0x2e, 0xda, 0x1d, 0xee, 0x79, 0xf1, 0xdc, 0x83, 0xef, 0x9e, 0x73, 0xcf, + 0x01, 0x61, 0xc1, 0x34, 0x4e, 0xf0, 0xb1, 0x41, 0x34, 0xdc, 0x77, 0xb0, 0xeb, 0xae, 0x0c, 0x1d, + 0x9b, 0xd8, 0x28, 0x2b, 0xa8, 0x4b, 0x3e, 0x7b, 0x60, 0xf7, 0xb0, 0x29, 0xd8, 0x4b, 0x0b, 0xa6, + 0xdd, 0xef, 0x63, 0xe7, 0x81, 0x3d, 0x24, 0x86, 0x6d, 0x09, 0x6a, 0xf5, 0xaf, 0x19, 0x58, 0x52, + 0x6d, 0x7b, 0xb0, 0x61, 0x0f, 0x86, 0xb6, 0x6b, 0x10, 0xac, 0x30, 0x93, 0x2a, 0xfe, 0x7a, 0x84, + 0x5d, 0x82, 0x6e, 0x42, 0xde, 0xb1, 0xed, 0x81, 0x66, 0xe9, 0x03, 0x5c, 0x91, 0x6e, 0x4b, 0xf7, + 0xf2, 0x6a, 0x8e, 0x12, 0xf6, 0xf4, 0x01, 0x46, 0x8b, 0x90, 0x31, 0xf5, 0xb1, 0x3d, 0x22, 0x95, + 0x04, 0xe3, 0x88, 0x15, 0x7a, 0x13, 0x40, 0x1f, 0xf5, 0x0c, 0x5b, 0xb3, 0x2d, 0x73, 0x5c, 0x49, + 0xde, 0x96, 0xee, 0xe5, 0xd4, 0x3c, 0xa3, 0x34, 0x2d, 0x73, 0x8c, 0x3e, 0x86, 0x22, 0x67, 0x0f, + 0x8c, 0x17, 0x86, 0xd5, 0xaf, 0xcc, 0xde, 0x96, 0xee, 0x95, 0x1f, 0x2e, 0xac, 0x08, 0xaf, 0x57, + 0x6a, 0x94, 0xb9, 0xcb, 0x78, 0x6a, 0x41, 0x0f, 0x16, 0xd4, 0xee, 0x89, 0xd1, 0xc3, 0xc2, 0x6e, + 0x8a, 0xdb, 0x65, 0x14, 0x66, 0xf7, 0x2e, 0xcc, 0x76, 0x47, 0x2e, 0xb1, 0x07, 0xda, 0x81, 0xee, + 0x62, 0x6d, 0xe4, 0x98, 0x95, 0x34, 0xf3, 0xab, 0xc4, 0xc9, 0xeb, 0xba, 0x8b, 0xf7, 0x1d, 0x13, + 0x3d, 0x82, 0xd4, 0xa1, 0x61, 0xe2, 0x4a, 0xe6, 0xb6, 0x74, 0xaf, 0xf0, 0x70, 0xc9, 0xff, 0x5d, + 0xc5, 0xea, 0xda, 0x3d, 0xdc, 0xdb, 0x32, 0x4c, 0xdc, 0x1c, 0x91, 0xe1, 0x88, 0xac, 0x27, 0x2a, + 0xd2, 0xce, 0x8c, 0xca, 0xa4, 0xd1, 0x1a, 0x64, 0x5c, 0xe2, 0x60, 0x7d, 0x50, 0xc9, 0x32, 0xbd, + 0x6b, 0xbe, 0x5e, 0x9b, 0x91, 0x27, 0x54, 0x84, 0x28, 0xfa, 0x1c, 0x72, 0x2e, 0xee, 0x0f, 0xb0, + 0x45, 0xdc, 0x0a, 0x30, 0xb5, 0x37, 0x02, 0x35, 0xce, 0x88, 0xf9, 0x41, 0x5f, 0x07, 0x3d, 0x81, + 0xcc, 0xd0, 0xc1, 0x2e, 0x26, 0x95, 0x1c, 0x0b, 0xd2, 0x5b, 0x93, 0xce, 0x1a, 0x56, 0xbf, 0xc9, + 0xdf, 0x66, 0x8b, 0x49, 0xed, 0x48, 0xaa, 0x90, 0x47, 0x8f, 0x21, 0xa7, 0xf7, 0x4e, 0x74, 0xab, + 0x8b, 0x7b, 0x95, 0x3c, 0xfb, 0xe5, 0xca, 0x59, 0xba, 0x3b, 0x92, 0xea, 0xcb, 0xa2, 0xcf, 0xa0, + 0x48, 0xb7, 0xab, 0xd9, 0xcc, 0x21, 0xb7, 0x52, 0xb8, 0x9d, 0x3c, 0x3f, 0x48, 0x6a, 0xe1, 0xd0, + 0x7f, 0x76, 0xd1, 0x77, 0xa1, 0xcc, 0xb7, 0xee, 0x1b, 0x28, 0x32, 0x03, 0xf1, 0xd1, 0x52, 0x4b, + 0x6e, 0x68, 0xe5, 0x22, 0x05, 0x66, 0xc5, 0xd6, 0x7d, 0xf5, 0x12, 0x53, 0x3f, 0x37, 0x6a, 0x6a, + 0x59, 0x28, 0x79, 0x66, 0x3e, 0x81, 0x92, 0x31, 0xd0, 0xfb, 0xc1, 0x26, 0xca, 0xcc, 0x48, 0x80, + 0xb0, 0x3a, 0xe5, 0x0a, 0xe5, 0xa2, 0x11, 0x2c, 0x5c, 0xf4, 0x10, 0x72, 0xa7, 0xf8, 0xe0, 0xc8, + 0xb6, 0x8f, 0xdd, 0x8a, 0xcc, 0xb4, 0x16, 0x7d, 0xad, 0xe7, 0x9c, 0xb1, 0x61, 0x5b, 0x87, 0x46, + 0x5f, 0xf5, 0xe5, 0xd6, 0x73, 0x90, 0xe1, 0x3f, 0xb4, 0x9e, 0x87, 0xac, 0x38, 0x5d, 0xd5, 0x7f, + 0xa7, 0x41, 0x7e, 0x8e, 0x0f, 0x26, 0x4f, 0x93, 0x0c, 0x49, 0x8a, 0x4a, 0x7e, 0x8e, 0xe8, 0x63, + 0xe4, 0xa8, 0x24, 0xa2, 0x47, 0x65, 0x12, 0xf1, 0xc9, 0x28, 0xe2, 0xef, 0x03, 0xd2, 0x4f, 0x75, + 0x83, 0x68, 0x2e, 0xd1, 0x1d, 0xa2, 0xb9, 0x46, 0xdf, 0xd2, 0xcd, 0x4a, 0x91, 0x89, 0xc9, 0x8c, + 0xd3, 0xa6, 0x8c, 0x36, 0xa3, 0xfb, 0xb8, 0x4f, 0xbd, 0x22, 0xee, 0xd3, 0xaf, 0x86, 0xfb, 0xcc, + 0x95, 0x70, 0x9f, 0xbd, 0x02, 0xee, 0x73, 0x57, 0xc0, 0x7d, 0xfe, 0xaa, 0xb8, 0x87, 0xab, 0xe1, + 0xbe, 0xf0, 0x3a, 0x70, 0x5f, 0x7a, 0x25, 0xdc, 0x97, 0xaf, 0x82, 0xfb, 0x5f, 0xa7, 0xa0, 0xd2, + 0xd2, 0x1d, 0x62, 0x74, 0x8d, 0xa1, 0x6e, 0x91, 0x4b, 0x54, 0x93, 0x25, 0xc8, 0x19, 0x3d, 0x6c, + 0x11, 0x83, 0x8c, 0x45, 0x3d, 0xf1, 0xd7, 0xe8, 0x6d, 0x28, 0xba, 0x5d, 0x07, 0x63, 0x4b, 0x73, + 0x8f, 0x74, 0x07, 0x8b, 0x93, 0x50, 0xe0, 0xb4, 0x36, 0x25, 0x85, 0x20, 0x93, 0xba, 0x10, 0x64, + 0x66, 0x62, 0x21, 0x93, 0x7e, 0x09, 0x64, 0x66, 0xce, 0x81, 0x4c, 0xe6, 0xaa, 0x90, 0xc9, 0x5e, + 0x0d, 0x32, 0xb9, 0xd7, 0x01, 0x99, 0xfc, 0x2b, 0x41, 0x06, 0x2e, 0x08, 0x99, 0x10, 0x50, 0xfe, + 0x91, 0x86, 0x9b, 0x1d, 0x47, 0xef, 0x1e, 0xbf, 0xca, 0xcd, 0xe3, 0x1d, 0x28, 0xf3, 0xb4, 0x49, + 0xa8, 0x05, 0xcd, 0xe8, 0x09, 0xc4, 0xf0, 0x8b, 0x05, 0x33, 0x5b, 0xef, 0x51, 0x29, 0x9e, 0x3d, + 0x7d, 0xa9, 0x24, 0x97, 0x62, 0x54, 0x4f, 0xea, 0xbf, 0x94, 0x16, 0x73, 0x57, 0x4a, 0x8b, 0x99, + 0x2b, 0xa4, 0xc5, 0xec, 0xff, 0xaf, 0x03, 0xaf, 0x82, 0xf1, 0xd9, 0xab, 0xa4, 0xc5, 0xbf, 0x49, + 0x80, 0x18, 0xe0, 0x2e, 0x01, 0xf2, 0x1b, 0x90, 0x8b, 0xc0, 0x3b, 0x4b, 0x04, 0x66, 0x1f, 0x08, + 0xcc, 0x26, 0xd9, 0xab, 0xbc, 0xe1, 0xfb, 0xb4, 0x69, 0x38, 0xb8, 0x4b, 0x82, 0x58, 0xf8, 0x70, + 0x7d, 0x17, 0x4a, 0xa7, 0xf8, 0xc0, 0xb5, 0xbb, 0xc7, 0x98, 0xb0, 0x9b, 0x31, 0x45, 0x7b, 0x7e, + 0x67, 0x46, 0x2d, 0xfa, 0x64, 0x7a, 0x35, 0x0e, 0xef, 0x37, 0x7d, 0xd9, 0xfd, 0x56, 0xff, 0x94, + 0x80, 0xb9, 0x29, 0x40, 0xa0, 0x8f, 0x20, 0xcf, 0x20, 0x44, 0xc6, 0x43, 0xbe, 0xc7, 0x72, 0x14, + 0x7b, 0x5c, 0xbc, 0x33, 0x1e, 0x62, 0x35, 0x77, 0x28, 0x9e, 0x68, 0x39, 0xa0, 0xcf, 0x43, 0x9d, + 0x1c, 0x79, 0xe5, 0xc0, 0x5b, 0xa3, 0xf7, 0x41, 0xee, 0x19, 0xae, 0x7e, 0x60, 0x62, 0x6d, 0xa0, + 0x5b, 0xc6, 0x21, 0x76, 0xf9, 0x89, 0xc8, 0xa9, 0xb3, 0x82, 0xbe, 0x2b, 0xc8, 0xe8, 0x0e, 0x24, + 0xdc, 0x35, 0x11, 0xa7, 0xb9, 0x00, 0x36, 0x6b, 0xfb, 0x43, 0xd3, 0xd6, 0x7b, 0x3b, 0x33, 0x6a, + 0xc2, 0x5d, 0x43, 0x77, 0x21, 0xd9, 0xef, 0x0e, 0x45, 0x06, 0x40, 0xbe, 0xd4, 0xf6, 0x46, 0xcb, + 0x17, 0xa3, 0x02, 0x68, 0x15, 0xd2, 0xfa, 0x37, 0x23, 0x07, 0x4f, 0x95, 0x89, 0x1a, 0xa5, 0xae, + 0x9b, 0xf6, 0x81, 0x2f, 0xcf, 0x05, 0xd1, 0x03, 0xc8, 0xe8, 0xa6, 0xd1, 0x6c, 0xb7, 0xa7, 0xba, + 0x86, 0x1a, 0x23, 0xfb, 0xf2, 0x42, 0x2c, 0x14, 0xcd, 0x5f, 0xa5, 0x60, 0x3e, 0x06, 0xde, 0xe8, + 0x29, 0xe4, 0x58, 0xeb, 0xd6, 0xb5, 0x4d, 0x11, 0xce, 0xb7, 0xe2, 0x8f, 0x43, 0x4b, 0x48, 0xa9, + 0xbe, 0x3c, 0x7a, 0x0f, 0x66, 0x69, 0x10, 0x29, 0xdc, 0xb4, 0xa1, 0x83, 0x0f, 0x8d, 0x17, 0x22, + 0xb6, 0x65, 0x8f, 0xdc, 0x62, 0x54, 0x74, 0x07, 0x4a, 0x43, 0x53, 0x1f, 0x9b, 0x86, 0x4b, 0x38, + 0x38, 0x45, 0xe6, 0xf4, 0x88, 0x0c, 0xa0, 0xf7, 0x01, 0xd1, 0x1f, 0xd6, 0x26, 0x25, 0x0b, 0x4c, + 0x52, 0xa6, 0x9c, 0x56, 0x58, 0xfa, 0x7d, 0x90, 0xbd, 0xd3, 0xdc, 0x1b, 0x39, 0x3a, 0x3d, 0x17, + 0x2c, 0xe2, 0x25, 0xd5, 0x3b, 0xe5, 0x9b, 0x82, 0x4c, 0x0f, 0xbe, 0xef, 0xa6, 0x3b, 0x3a, 0xa4, + 0x6e, 0x02, 0xdb, 0xe9, 0x19, 0x07, 0xbf, 0xcd, 0x64, 0x82, 0x4d, 0xf0, 0x75, 0x2c, 0x4c, 0x72, + 0xe7, 0xc1, 0x24, 0x7d, 0x21, 0x98, 0x64, 0x2e, 0x0c, 0x93, 0xec, 0xe5, 0x61, 0x92, 0xbf, 0x2c, + 0x4c, 0x7e, 0x9a, 0x00, 0x39, 0x7a, 0xec, 0x27, 0x0e, 0x8f, 0x74, 0x81, 0xc3, 0x93, 0x3e, 0x2f, + 0x2a, 0x89, 0x0b, 0x45, 0x25, 0x79, 0xe1, 0xa8, 0xa4, 0x2e, 0x1f, 0x95, 0xcc, 0x65, 0xa3, 0xf2, + 0xcf, 0x24, 0x14, 0x42, 0x69, 0x9d, 0x6e, 0xba, 0xab, 0x0f, 0xc9, 0xc8, 0xc1, 0x9a, 0x61, 0x11, + 0xec, 0x9c, 0xe8, 0xfc, 0xf0, 0x94, 0xd4, 0x59, 0x41, 0xaf, 0x0b, 0x32, 0x5a, 0x80, 0xf4, 0xa9, + 0xd1, 0x13, 0x59, 0x27, 0xad, 0xf2, 0x05, 0x5a, 0x84, 0xcc, 0x11, 0x36, 0xfa, 0x47, 0x84, 0x6d, + 0x34, 0xad, 0x8a, 0x55, 0xdc, 0x89, 0x4a, 0xc5, 0x9e, 0xa8, 0xda, 0x34, 0xa6, 0xd3, 0x91, 0x64, + 0xc8, 0x1c, 0x3e, 0x07, 0xcf, 0x8f, 0xa0, 0xc0, 0x0b, 0x19, 0xcd, 0x99, 0x5d, 0x71, 0x07, 0x98, + 0x9f, 0x54, 0xdf, 0xa0, 0x2c, 0x15, 0x0c, 0xff, 0x39, 0xf6, 0x7d, 0x67, 0xcf, 0x7b, 0xdf, 0xb9, + 0x0b, 0xbd, 0xef, 0xfc, 0x85, 0xdf, 0x37, 0x5c, 0xfe, 0x7d, 0x17, 0x2e, 0xfb, 0xbe, 0xff, 0x90, + 0x82, 0x9c, 0xe7, 0x27, 0xba, 0x03, 0xa0, 0x77, 0xbb, 0xd8, 0x75, 0xb5, 0x63, 0x3c, 0xe6, 0xf8, + 0x5f, 0x4f, 0x7d, 0xfb, 0xbb, 0x8a, 0xa4, 0xe6, 0x39, 0xfd, 0x4b, 0x3c, 0x46, 0x6f, 0x40, 0xc6, + 0xc5, 0x5d, 0x07, 0x8b, 0xe1, 0x95, 0x10, 0x10, 0x34, 0x9a, 0xff, 0x5c, 0xec, 0xba, 0x86, 0x6d, + 0x69, 0xc4, 0x3e, 0xc6, 0x96, 0xc8, 0x6a, 0x45, 0x41, 0xec, 0x50, 0x1a, 0xba, 0x0f, 0xb3, 0xba, + 0xeb, 0x8e, 0x06, 0x58, 0x73, 0x6c, 0x13, 0x6b, 0xba, 0x63, 0xb1, 0xde, 0xdb, 0xb3, 0x55, 0xe2, + 0x4c, 0xd5, 0x36, 0x71, 0xcd, 0xb1, 0xd0, 0x47, 0x70, 0x3d, 0x2c, 0x8d, 0x5f, 0x10, 0xec, 0x58, + 0xba, 0x49, 0xab, 0x7b, 0x89, 0x19, 0x5f, 0x08, 0xe4, 0x15, 0xc1, 0xac, 0xf7, 0x28, 0xf0, 0x1c, + 0xdc, 0xa7, 0xc9, 0x92, 0xa7, 0x60, 0xb1, 0xa2, 0x47, 0x1c, 0x5b, 0xbd, 0xa1, 0x6d, 0x58, 0x44, + 0x20, 0xce, 0x5f, 0x53, 0x9d, 0x83, 0x11, 0xad, 0xe9, 0x62, 0x00, 0x26, 0x56, 0xe8, 0x1e, 0xc8, + 0x87, 0xb6, 0xd3, 0xc5, 0x1a, 0x4d, 0x04, 0x9a, 0x4b, 0xc6, 0x62, 0x0a, 0x96, 0x53, 0xcb, 0x8c, + 0xde, 0xd2, 0xc9, 0x51, 0x9b, 0x52, 0xd1, 0xa7, 0x90, 0x1b, 0x60, 0xa2, 0xf7, 0x74, 0xa2, 0x8b, + 0xb6, 0xe4, 0xd6, 0x14, 0x1e, 0x56, 0x76, 0x85, 0x84, 0x62, 0x11, 0x67, 0xac, 0xfa, 0x0a, 0xa8, + 0x02, 0x59, 0xa2, 0xf7, 0xfb, 0x86, 0xd5, 0x67, 0x58, 0xa2, 0xf7, 0x16, 0xbe, 0x44, 0x0f, 0x60, + 0xbe, 0x6b, 0x5b, 0x84, 0xd5, 0x00, 0xc3, 0x65, 0xd7, 0x7e, 0xba, 0xb3, 0x3c, 0x93, 0x42, 0x82, + 0xb5, 0x19, 0x70, 0xd0, 0x32, 0xa4, 0x87, 0x8e, 0xfd, 0x62, 0x2c, 0x40, 0x14, 0xdc, 0xd9, 0x5a, + 0x94, 0x2a, 0xee, 0x22, 0x5c, 0x64, 0xe9, 0x53, 0x28, 0x4d, 0x78, 0x84, 0x64, 0x48, 0xfa, 0x00, + 0x50, 0xe9, 0x23, 0x3d, 0xdb, 0x27, 0xba, 0x39, 0xc2, 0xa2, 0xea, 0xf1, 0xc5, 0xd3, 0xc4, 0x13, + 0xa9, 0x7a, 0x0a, 0x79, 0x1f, 0xc1, 0xe8, 0x2e, 0x14, 0xba, 0x0e, 0x66, 0xcd, 0xa7, 0x6e, 0xba, + 0x13, 0x08, 0x0a, 0x33, 0x42, 0x71, 0x4e, 0x4c, 0xc4, 0xd9, 0xf7, 0x3a, 0xf9, 0x52, 0xaf, 0xab, + 0xdf, 0x4a, 0x30, 0x1b, 0x39, 0x11, 0xe8, 0x3d, 0x28, 0xea, 0xdd, 0xae, 0x3d, 0xb2, 0x48, 0xe8, + 0x66, 0xe8, 0x39, 0x20, 0x38, 0xac, 0xa6, 0xbe, 0x0b, 0xde, 0x92, 0x41, 0x3d, 0x8c, 0x64, 0x10, + 0x0c, 0x8a, 0xf5, 0x77, 0xa1, 0x4c, 0x63, 0xab, 0x1b, 0x16, 0x76, 0xc2, 0xe5, 0xbc, 0xe4, 0x53, + 0xa9, 0xb5, 0xea, 0x2f, 0x24, 0x28, 0x86, 0x4f, 0xda, 0xeb, 0x38, 0x48, 0xaf, 0x11, 0xbe, 0xd5, + 0xe7, 0x50, 0x08, 0x05, 0x30, 0x66, 0x9a, 0xb6, 0x04, 0xb9, 0x91, 0x4b, 0x0f, 0xce, 0xc0, 0x7b, + 0xc3, 0xfe, 0x9a, 0xf2, 0x86, 0xba, 0xeb, 0x9e, 0xda, 0x8e, 0xd7, 0x06, 0xfa, 0xeb, 0xea, 0x73, + 0x28, 0x86, 0xfb, 0x10, 0xb4, 0x36, 0x75, 0xc5, 0xba, 0x1e, 0x69, 0x58, 0x62, 0xee, 0x56, 0x08, + 0x52, 0x23, 0xc7, 0x74, 0x2b, 0x89, 0xdb, 0xc9, 0x7b, 0x79, 0x95, 0x3d, 0x57, 0xff, 0x98, 0x84, + 0xd9, 0x48, 0x7b, 0x15, 0xd4, 0x17, 0x29, 0xbe, 0xbe, 0x24, 0x26, 0xea, 0xcb, 0x02, 0xa4, 0x7b, + 0x78, 0x48, 0x8e, 0x44, 0xd9, 0xe1, 0x0b, 0xf4, 0x06, 0xe4, 0x0f, 0x1d, 0x7d, 0x80, 0x1d, 0x9d, + 0xf0, 0x7a, 0x9a, 0x56, 0x03, 0x02, 0xad, 0x13, 0xbc, 0x3b, 0xe6, 0x75, 0x22, 0x1d, 0xa9, 0x13, + 0x6c, 0xbe, 0x2e, 0xea, 0x84, 0xee, 0x3f, 0xd3, 0x94, 0xc7, 0xb5, 0x0e, 0x0c, 0xc2, 0xec, 0x66, + 0x98, 0x5d, 0xde, 0x52, 0xaf, 0x73, 0x5a, 0x20, 0xf4, 0xf5, 0x48, 0x37, 0x0d, 0x32, 0x66, 0x79, + 0xd1, 0x13, 0xfa, 0x01, 0xa7, 0xd1, 0x9a, 0xc8, 0x85, 0x0e, 0x1d, 0xda, 0xe7, 0x58, 0xdd, 0x31, + 0x2b, 0x38, 0x69, 0x95, 0x37, 0xed, 0x5b, 0x1e, 0x95, 0x3a, 0xca, 0x1b, 0x74, 0xee, 0x68, 0x2e, + 0xe2, 0xe8, 0x33, 0xca, 0x13, 0x8e, 0x9e, 0xf8, 0xcf, 0xd4, 0x07, 0xae, 0xe5, 0x39, 0x9a, 0xe7, + 0x3e, 0x30, 0x62, 0xc8, 0x51, 0x2e, 0xe4, 0x39, 0x5a, 0x0c, 0x09, 0x79, 0x8e, 0xde, 0x07, 0x74, + 0x8c, 0xc7, 0x1a, 0x8b, 0x5c, 0x70, 0x2f, 0xa0, 0xa9, 0x46, 0x52, 0xe5, 0x63, 0x3c, 0xde, 0xa2, + 0x0c, 0xef, 0x62, 0x50, 0xfd, 0x02, 0xe6, 0xf7, 0x87, 0x3d, 0x9d, 0xe0, 0x06, 0xfb, 0xcc, 0x11, + 0xea, 0xe1, 0xf8, 0x67, 0x18, 0x9a, 0xc9, 0xc5, 0x65, 0x8b, 0x13, 0x78, 0xf6, 0x8e, 0xfb, 0x44, + 0x42, 0x4f, 0xbd, 0x30, 0xc6, 0xf1, 0x74, 0x21, 0x63, 0x77, 0x61, 0x56, 0xef, 0xf5, 0x44, 0x1b, + 0xab, 0x85, 0xc0, 0x56, 0xd2, 0x7b, 0x3d, 0x0e, 0xdd, 0x7d, 0xc7, 0x74, 0xe9, 0xb6, 0x1c, 0x3c, + 0xb0, 0x4f, 0xf0, 0x84, 0x68, 0x92, 0x89, 0xca, 0x9c, 0x13, 0x48, 0x57, 0x31, 0xcc, 0x35, 0x0c, + 0xf7, 0x32, 0x93, 0xba, 0x09, 0x27, 0x13, 0xd3, 0x3b, 0xd6, 0xbb, 0xc4, 0x38, 0xf1, 0x86, 0x74, + 0x62, 0x55, 0xfd, 0x1e, 0xa0, 0xf0, 0xcf, 0xb8, 0x43, 0xdb, 0x72, 0x69, 0x53, 0x90, 0x36, 0x08, + 0x1e, 0xd0, 0x1c, 0x4b, 0x8b, 0x4c, 0xf0, 0xee, 0xb9, 0x5c, 0xdd, 0x3a, 0xb4, 0x55, 0x2e, 0x51, + 0x5d, 0x85, 0xb9, 0x36, 0xb1, 0x87, 0x53, 0x7e, 0x9e, 0x19, 0xaf, 0xea, 0xef, 0xf3, 0x00, 0x81, + 0x9d, 0xf3, 0x63, 0x7b, 0x1d, 0xb2, 0x6c, 0xc3, 0xfe, 0x8e, 0x32, 0x74, 0x59, 0xef, 0x4d, 0x46, + 0xa2, 0x14, 0x89, 0xc4, 0x53, 0x28, 0xb8, 0xf6, 0x88, 0x56, 0x54, 0xd6, 0xdd, 0x2e, 0x31, 0x00, + 0xdf, 0x88, 0x6c, 0xa2, 0xcd, 0x24, 0x58, 0x7b, 0x0b, 0xae, 0xff, 0x8c, 0x3e, 0x84, 0x8c, 0x4b, + 0x74, 0x32, 0x72, 0x59, 0xa0, 0xca, 0xa1, 0xdb, 0x8e, 0x50, 0x63, 0x4c, 0x55, 0x08, 0xa1, 0x37, + 0x01, 0xd8, 0x94, 0x1f, 0xf7, 0x34, 0x9d, 0x30, 0x8c, 0x26, 0xd5, 0xbc, 0xa0, 0xd4, 0x08, 0xba, + 0xc1, 0xf2, 0x29, 0x67, 0x16, 0x18, 0x33, 0xcb, 0xd6, 0x35, 0xf6, 0x39, 0x6e, 0xc4, 0xa0, 0xc6, + 0x98, 0x88, 0x6b, 0x0a, 0x4a, 0x8d, 0xd0, 0x6a, 0xdd, 0xc3, 0x44, 0x37, 0x4c, 0xb7, 0x72, 0x8d, + 0x57, 0x6b, 0xb1, 0xa4, 0xb9, 0x07, 0x3b, 0x8e, 0xed, 0x88, 0xfa, 0xcc, 0x17, 0xd4, 0x1c, 0x7b, + 0x60, 0x87, 0xb6, 0xb2, 0xc8, 0x93, 0x0f, 0xa3, 0xd0, 0xe3, 0x89, 0x1a, 0x50, 0x66, 0xf1, 0xea, + 0x7a, 0x63, 0x3d, 0x71, 0xdf, 0xbf, 0xe3, 0x6f, 0xef, 0xec, 0xcf, 0x8d, 0x3b, 0x33, 0x6a, 0xc9, + 0x09, 0x73, 0xd1, 0x87, 0x90, 0x3c, 0xc5, 0x07, 0x95, 0x72, 0x64, 0xce, 0x11, 0xfd, 0xb2, 0x42, + 0xef, 0x9c, 0xa7, 0xf8, 0x00, 0x29, 0x50, 0x18, 0x06, 0xc3, 0xe7, 0xca, 0x3c, 0x53, 0x7b, 0x3b, + 0x28, 0xbf, 0x67, 0x0c, 0xa6, 0x77, 0x66, 0xd4, 0xb0, 0x1e, 0x6a, 0xc2, 0x2c, 0x9f, 0xbc, 0x04, + 0x9b, 0xe0, 0xad, 0xe1, 0x3b, 0xbe, 0xa9, 0x73, 0x46, 0x97, 0x3b, 0x33, 0x6a, 0x99, 0x4c, 0xb0, + 0xd1, 0x1a, 0xa4, 0x19, 0x45, 0x34, 0x32, 0x37, 0x27, 0xcd, 0x44, 0xb5, 0xb9, 0x2c, 0xfa, 0x28, + 0xf2, 0xc5, 0x31, 0x5a, 0x83, 0x28, 0xa8, 0xe9, 0x91, 0x62, 0x63, 0x42, 0xc9, 0x1f, 0x32, 0x7e, + 0x20, 0x66, 0x43, 0xd1, 0x6b, 0x3c, 0x6d, 0x2c, 0xa8, 0x8a, 0x10, 0xe7, 0x73, 0xa1, 0x8f, 0x43, + 0x13, 0xc9, 0x62, 0x74, 0x90, 0x29, 0x18, 0x21, 0xa5, 0x60, 0x14, 0xf9, 0xd4, 0x9f, 0xec, 0x39, + 0xd8, 0x1d, 0x99, 0xc4, 0x9b, 0x8f, 0xcd, 0xc7, 0x38, 0xe9, 0xcd, 0xf5, 0x54, 0x2e, 0x89, 0x1e, + 0x89, 0xa1, 0xa2, 0xa7, 0xc9, 0x3f, 0xb4, 0x4d, 0x7b, 0xca, 0x67, 0x89, 0x9e, 0xd6, 0xe7, 0xc1, + 0x34, 0xd0, 0x53, 0x9c, 0x8b, 0x0e, 0x13, 0x43, 0x1e, 0xfb, 0x63, 0x40, 0x4f, 0xff, 0x89, 0x37, + 0x06, 0xf4, 0xb4, 0x17, 0x22, 0x0e, 0xb3, 0xfe, 0x89, 0xeb, 0xf2, 0x29, 0xa0, 0xa7, 0xf9, 0x01, + 0xcc, 0x79, 0x9d, 0x93, 0x66, 0xda, 0x5d, 0x3e, 0xba, 0xb8, 0xce, 0xc7, 0x1c, 0x1e, 0xa3, 0x21, + 0xe8, 0x68, 0x05, 0xe6, 0x0f, 0xf4, 0xee, 0xf1, 0x68, 0xa8, 0xb9, 0xc4, 0x76, 0xe8, 0xef, 0x8d, + 0x5c, 0xdc, 0xab, 0xdc, 0x60, 0xc9, 0x70, 0x8e, 0xb3, 0xda, 0x9c, 0xb3, 0xef, 0xe2, 0xde, 0x7a, + 0x1e, 0xb2, 0x0e, 0x7f, 0xf3, 0xb4, 0x9d, 0xe1, 0xbe, 0x55, 0x3f, 0x83, 0xf2, 0xe4, 0x3b, 0x46, + 0xef, 0x41, 0xca, 0xb0, 0x0e, 0xed, 0xa9, 0x3c, 0x19, 0x8a, 0x32, 0x13, 0x78, 0x9a, 0xa8, 0x48, + 0xd5, 0x7f, 0x49, 0x00, 0x01, 0x23, 0xfe, 0xb3, 0x63, 0x28, 0x99, 0x24, 0xce, 0x4b, 0x26, 0xc9, + 0xc9, 0x64, 0xb2, 0x04, 0xb9, 0x89, 0xe9, 0x4d, 0x52, 0xf5, 0xd7, 0xe8, 0xa1, 0x9f, 0xd1, 0xf8, + 0x95, 0x63, 0x29, 0xc6, 0xcb, 0x95, 0x48, 0x5a, 0xf3, 0x73, 0x4c, 0x26, 0x94, 0x63, 0xaa, 0x2b, + 0x90, 0xe1, 0x72, 0x08, 0x20, 0x53, 0xdb, 0xe8, 0xd4, 0x9f, 0x29, 0xf2, 0x0c, 0x2a, 0x42, 0x6e, + 0xab, 0xbe, 0x57, 0x6f, 0xef, 0x28, 0x9b, 0xb2, 0x44, 0x39, 0x5b, 0xb5, 0x7a, 0x43, 0xd9, 0x94, + 0x13, 0xd5, 0xdf, 0x4a, 0x90, 0xf3, 0x50, 0xe3, 0x0d, 0x3f, 0xc2, 0xa5, 0xcb, 0x5b, 0xbf, 0xa6, + 0x8d, 0x67, 0x22, 0x1b, 0x47, 0x90, 0x72, 0x8d, 0x6f, 0xb0, 0x08, 0x08, 0x7b, 0xa6, 0xf2, 0x3e, + 0x56, 0xf8, 0x35, 0xd6, 0x5f, 0x57, 0xff, 0x92, 0x80, 0x62, 0x18, 0xab, 0xd3, 0xe3, 0x36, 0xe9, + 0xc2, 0xe3, 0xb6, 0xdc, 0x19, 0xe3, 0xb6, 0xb0, 0xbf, 0x89, 0x33, 0xfc, 0x4d, 0x86, 0xfc, 0xfd, + 0x00, 0xe6, 0x7c, 0xc3, 0xbe, 0xe3, 0xfc, 0x66, 0x2e, 0x7b, 0x0c, 0x1f, 0xe4, 0x8f, 0x60, 0x71, + 0xd2, 0x15, 0x5f, 0x83, 0x97, 0x8a, 0x85, 0xb0, 0x3b, 0xbe, 0x16, 0x6b, 0xaa, 0xf9, 0x09, 0x66, + 0xad, 0x09, 0x8b, 0x4b, 0x92, 0x36, 0xd5, 0x8c, 0xb8, 0x41, 0x69, 0x91, 0x37, 0x94, 0x39, 0xef, + 0x0d, 0x65, 0x27, 0xde, 0x50, 0xf5, 0xc7, 0x12, 0x40, 0x70, 0x86, 0x2f, 0x3e, 0x99, 0xb9, 0x15, + 0x8c, 0x55, 0xa8, 0x53, 0x12, 0xb3, 0xea, 0x4d, 0x50, 0xa6, 0x5d, 0xba, 0x04, 0x68, 0xaa, 0x3f, + 0x4b, 0xc0, 0xb5, 0xda, 0x88, 0xd8, 0x53, 0x85, 0x27, 0xf4, 0x29, 0x47, 0xba, 0xc2, 0xe7, 0xca, + 0xc4, 0x15, 0x3e, 0x57, 0x26, 0x2f, 0xf7, 0x29, 0x27, 0xe6, 0x63, 0x4c, 0xea, 0xf2, 0x1f, 0x63, + 0xc2, 0xdf, 0x44, 0x7e, 0x92, 0x80, 0x59, 0x1a, 0x9c, 0x50, 0x0d, 0xfc, 0x9f, 0x1f, 0x5c, 0x2e, + 0xaf, 0x8b, 0x86, 0x31, 0xf8, 0x26, 0x82, 0x16, 0x40, 0xde, 0x54, 0xb6, 0x6a, 0xfb, 0x8d, 0x8e, + 0xb6, 0x55, 0x6f, 0x28, 0x9d, 0x1f, 0xb6, 0x68, 0x32, 0xcc, 0x42, 0x72, 0xb7, 0xf5, 0x48, 0x96, + 0xe8, 0x43, 0x73, 0x7b, 0x5b, 0x4e, 0x70, 0xca, 0x9a, 0x9c, 0x5c, 0xde, 0x83, 0x6b, 0xb1, 0x1f, + 0x02, 0xd0, 0x1d, 0xb8, 0xe5, 0x59, 0x6a, 0x2b, 0xdb, 0xbb, 0xca, 0x5e, 0x47, 0xd9, 0x64, 0x36, + 0xb5, 0x96, 0xda, 0xec, 0x34, 0x37, 0x9a, 0x0d, 0x79, 0x06, 0xc9, 0x50, 0xdc, 0x69, 0xb4, 0x03, + 0x8a, 0xb4, 0xfc, 0x20, 0xf2, 0x21, 0x42, 0x8c, 0x23, 0xf3, 0x90, 0xae, 0xef, 0x6d, 0x2a, 0x5f, + 0xc9, 0x33, 0xa8, 0x04, 0xf9, 0x4e, 0x7d, 0x57, 0x69, 0x77, 0x6a, 0xbb, 0x2d, 0x59, 0x5a, 0x3e, + 0x84, 0xd9, 0xc8, 0x2c, 0x13, 0x2d, 0x02, 0xaa, 0xef, 0xd6, 0xb6, 0x15, 0xad, 0xbd, 0xbf, 0xb5, + 0x55, 0xff, 0x4a, 0xf3, 0x34, 0x97, 0x60, 0x71, 0x82, 0x1e, 0x32, 0x83, 0x6e, 0xc1, 0xcd, 0x09, + 0xde, 0x5e, 0x73, 0x4f, 0xd1, 0x9a, 0xcf, 0x14, 0xf5, 0xb9, 0x5a, 0xef, 0x28, 0x72, 0x62, 0xf9, + 0x13, 0xaf, 0x4c, 0xfa, 0x3b, 0x0c, 0xc5, 0x2a, 0xb4, 0xa5, 0x1c, 0xa4, 0xd4, 0x0e, 0x33, 0x99, + 0x85, 0x64, 0x5b, 0xed, 0xc8, 0x89, 0xe5, 0x7d, 0x28, 0x84, 0xfe, 0x67, 0x86, 0x10, 0x94, 0x3d, + 0xbd, 0xdd, 0xfa, 0x57, 0xf5, 0xbd, 0x6d, 0x79, 0x86, 0xba, 0xbc, 0xb9, 0x5f, 0x6b, 0x68, 0x1b, + 0x3b, 0xb5, 0xbd, 0x3d, 0xa5, 0xa1, 0xd5, 0xb6, 0x95, 0xbd, 0x8e, 0x2c, 0x51, 0x97, 0x27, 0xe9, + 0x8d, 0x8e, 0xa2, 0xee, 0xd5, 0x98, 0x47, 0x7f, 0x96, 0xe0, 0x5a, 0xec, 0x01, 0x66, 0x61, 0x7d, + 0xf8, 0xf8, 0x91, 0xf6, 0xf1, 0xc3, 0xd5, 0x96, 0xb6, 0xb6, 0x2a, 0x02, 0xed, 0x53, 0x1e, 0xaf, + 0xca, 0x12, 0x9a, 0x83, 0x12, 0xa3, 0x7c, 0x67, 0xf5, 0x09, 0x17, 0x4a, 0x44, 0x48, 0x8f, 0x57, + 0xe5, 0x24, 0xba, 0x01, 0xd7, 0x5a, 0x4d, 0xb5, 0xa3, 0xd6, 0xea, 0x1d, 0x6d, 0xc2, 0x64, 0xea, + 0x0c, 0xd6, 0xe3, 0x55, 0x39, 0x4d, 0xbd, 0x9e, 0x64, 0xf9, 0x3f, 0x92, 0x39, 0x8b, 0xf7, 0x78, + 0x55, 0xce, 0x2e, 0xff, 0x52, 0x82, 0x62, 0xb8, 0x21, 0x41, 0xf3, 0x30, 0xab, 0x6c, 0xab, 0x4a, + 0xbb, 0xad, 0xb5, 0x3b, 0x35, 0xb5, 0xc3, 0x63, 0x35, 0x07, 0x25, 0x41, 0x14, 0xd5, 0x5a, 0x0a, + 0x91, 0x94, 0xbd, 0x4d, 0x2a, 0x95, 0x08, 0xa9, 0x6e, 0x34, 0x77, 0x5b, 0x0d, 0xa5, 0xa3, 0xc8, + 0xc9, 0x90, 0x9c, 0x28, 0xe7, 0x29, 0xfa, 0x36, 0x3c, 0x6b, 0xeb, 0x4d, 0xb5, 0xa3, 0x6c, 0xca, + 0x69, 0x54, 0x81, 0x05, 0x41, 0x6b, 0xd4, 0x77, 0xeb, 0x1d, 0x4d, 0x55, 0x6a, 0x1b, 0xf4, 0x22, + 0x90, 0x59, 0xfe, 0x02, 0xe4, 0x68, 0xa3, 0x45, 0x77, 0xe4, 0x39, 0xd9, 0xdc, 0x57, 0x37, 0x14, + 0x8d, 0x9e, 0x1a, 0xed, 0xb9, 0xb2, 0xce, 0x21, 0x17, 0xc3, 0x6b, 0x6f, 0x7e, 0x29, 0x4b, 0x0f, + 0x7f, 0x9e, 0x86, 0x8c, 0x48, 0x45, 0x1d, 0xa8, 0xb0, 0x7f, 0x4f, 0xc5, 0xb4, 0x2b, 0xe8, 0x22, + 0xcd, 0xcc, 0x52, 0x5c, 0x33, 0x8b, 0xbe, 0x4f, 0x21, 0xab, 0x3b, 0xc4, 0xef, 0x60, 0xd0, 0xd9, + 0x5d, 0x4d, 0xbc, 0x85, 0x16, 0x2c, 0x32, 0x0b, 0xd3, 0x35, 0xe5, 0xe5, 0x8d, 0x4e, 0xbc, 0xc5, + 0x67, 0x70, 0x83, 0x59, 0x8c, 0xeb, 0x69, 0xd0, 0x85, 0x5a, 0x9e, 0x78, 0xbb, 0x9b, 0x20, 0x07, + 0x76, 0x85, 0xb9, 0xf3, 0x5a, 0x9f, 0x78, 0x2b, 0x35, 0x28, 0x86, 0xc7, 0x2e, 0x28, 0xa8, 0x37, + 0x31, 0xd3, 0x98, 0x97, 0x98, 0xe0, 0xd9, 0x62, 0xca, 0xc4, 0xc4, 0x0c, 0x26, 0xde, 0x84, 0x02, + 0x10, 0x8c, 0x2f, 0x50, 0x50, 0x35, 0xa7, 0x46, 0x27, 0x4b, 0x37, 0x63, 0x79, 0x62, 0xde, 0xf1, + 0x19, 0xbd, 0x98, 0x7b, 0x43, 0x0c, 0x14, 0xbe, 0x20, 0x47, 0x26, 0x1b, 0xb1, 0x5e, 0xac, 0x6f, + 0xfd, 0xe8, 0x4e, 0xdf, 0x20, 0x47, 0xa3, 0x83, 0x95, 0xae, 0x3d, 0x78, 0x20, 0x04, 0x1e, 0x78, + 0x23, 0x48, 0x8f, 0xf0, 0x9b, 0x44, 0xa9, 0x61, 0x9c, 0xe0, 0x2f, 0xf9, 0xc0, 0x99, 0xd8, 0x7f, + 0x4f, 0x94, 0xc5, 0xfa, 0xe9, 0x53, 0x46, 0x38, 0xc8, 0x30, 0x95, 0xb5, 0xff, 0x04, 0x00, 0x00, + 0xff, 0xff, 0xd9, 0xd3, 0x1d, 0x14, 0x49, 0x2c, 0x00, 0x00, } diff --git a/livekit/livekit_sip.twirp.go b/livekit/livekit_sip.twirp.go index 39aadd869..03c4ef3ba 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -16,7 +16,7 @@ import proto "google.golang.org/protobuf/proto" import twirp "github.com/twitchtv/twirp" import ctxsetters "github.com/twitchtv/twirp/ctxsetters" -import google_protobuf3 "google.golang.org/protobuf/types/known/emptypb" +import google_protobuf4 "google.golang.org/protobuf/types/known/emptypb" // Version compatibility assertion. // If the constant is not defined in the package, that likely means @@ -59,7 +59,7 @@ type SIP interface { CreateSIPParticipant(context.Context, *CreateSIPParticipantRequest) (*SIPParticipantInfo, error) - TransferSIPParticipant(context.Context, *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) + TransferSIPParticipant(context.Context, *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) } // =================== @@ -813,13 +813,13 @@ func (c *sIPProtobufClient) callCreateSIPParticipant(ctx context.Context, in *Cr return out, nil } -func (c *sIPProtobufClient) TransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { +func (c *sIPProtobufClient) TransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "SIP") ctx = ctxsetters.WithMethodName(ctx, "TransferSIPParticipant") caller := c.callTransferSIPParticipant if c.interceptor != nil { - caller = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { + caller = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { resp, err := c.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { typedReq, ok := req.(*TransferSIPParticipantRequest) @@ -830,9 +830,9 @@ func (c *sIPProtobufClient) TransferSIPParticipant(ctx context.Context, in *Tran }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf3.Empty) + typedResp, ok := resp.(*google_protobuf4.Empty) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf3.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf4.Empty) when calling interceptor") } return typedResp, err } @@ -842,8 +842,8 @@ func (c *sIPProtobufClient) TransferSIPParticipant(ctx context.Context, in *Tran return caller(ctx, in) } -func (c *sIPProtobufClient) callTransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { - out := new(google_protobuf3.Empty) +func (c *sIPProtobufClient) callTransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { + out := new(google_protobuf4.Empty) ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[15], in, out) if err != nil { twerr, ok := err.(twirp.Error) @@ -1610,13 +1610,13 @@ func (c *sIPJSONClient) callCreateSIPParticipant(ctx context.Context, in *Create return out, nil } -func (c *sIPJSONClient) TransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { +func (c *sIPJSONClient) TransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "SIP") ctx = ctxsetters.WithMethodName(ctx, "TransferSIPParticipant") caller := c.callTransferSIPParticipant if c.interceptor != nil { - caller = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { + caller = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { resp, err := c.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { typedReq, ok := req.(*TransferSIPParticipantRequest) @@ -1627,9 +1627,9 @@ func (c *sIPJSONClient) TransferSIPParticipant(ctx context.Context, in *Transfer }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf3.Empty) + typedResp, ok := resp.(*google_protobuf4.Empty) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf3.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf4.Empty) when calling interceptor") } return typedResp, err } @@ -1639,8 +1639,8 @@ func (c *sIPJSONClient) TransferSIPParticipant(ctx context.Context, in *Transfer return caller(ctx, in) } -func (c *sIPJSONClient) callTransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { - out := new(google_protobuf3.Empty) +func (c *sIPJSONClient) callTransferSIPParticipant(ctx context.Context, in *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { + out := new(google_protobuf4.Empty) ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[15], in, out) if err != nil { twerr, ok := err.(twirp.Error) @@ -4550,7 +4550,7 @@ func (s *sIPServer) serveTransferSIPParticipantJSON(ctx context.Context, resp ht handler := s.SIP.TransferSIPParticipant if s.interceptor != nil { - handler = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { + handler = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { resp, err := s.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { typedReq, ok := req.(*TransferSIPParticipantRequest) @@ -4561,9 +4561,9 @@ func (s *sIPServer) serveTransferSIPParticipantJSON(ctx context.Context, resp ht }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf3.Empty) + typedResp, ok := resp.(*google_protobuf4.Empty) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf3.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf4.Empty) when calling interceptor") } return typedResp, err } @@ -4572,7 +4572,7 @@ func (s *sIPServer) serveTransferSIPParticipantJSON(ctx context.Context, resp ht } // Call service method - var respContent *google_protobuf3.Empty + var respContent *google_protobuf4.Empty func() { defer ensurePanicResponses(ctx, resp, s.hooks) respContent, err = handler(ctx, reqContent) @@ -4583,7 +4583,7 @@ func (s *sIPServer) serveTransferSIPParticipantJSON(ctx context.Context, resp ht return } if respContent == nil { - s.writeError(ctx, resp, twirp.InternalError("received a nil *google_protobuf3.Empty and nil error while calling TransferSIPParticipant. nil responses are not supported")) + s.writeError(ctx, resp, twirp.InternalError("received a nil *google_protobuf4.Empty and nil error while calling TransferSIPParticipant. nil responses are not supported")) return } @@ -4631,7 +4631,7 @@ func (s *sIPServer) serveTransferSIPParticipantProtobuf(ctx context.Context, res handler := s.SIP.TransferSIPParticipant if s.interceptor != nil { - handler = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf3.Empty, error) { + handler = func(ctx context.Context, req *TransferSIPParticipantRequest) (*google_protobuf4.Empty, error) { resp, err := s.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { typedReq, ok := req.(*TransferSIPParticipantRequest) @@ -4642,9 +4642,9 @@ func (s *sIPServer) serveTransferSIPParticipantProtobuf(ctx context.Context, res }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf3.Empty) + typedResp, ok := resp.(*google_protobuf4.Empty) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf3.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf4.Empty) when calling interceptor") } return typedResp, err } @@ -4653,7 +4653,7 @@ func (s *sIPServer) serveTransferSIPParticipantProtobuf(ctx context.Context, res } // Call service method - var respContent *google_protobuf3.Empty + var respContent *google_protobuf4.Empty func() { defer ensurePanicResponses(ctx, resp, s.hooks) respContent, err = handler(ctx, reqContent) @@ -4664,7 +4664,7 @@ func (s *sIPServer) serveTransferSIPParticipantProtobuf(ctx context.Context, res return } if respContent == nil { - s.writeError(ctx, resp, twirp.InternalError("received a nil *google_protobuf3.Empty and nil error while calling TransferSIPParticipant. nil responses are not supported")) + s.writeError(ctx, resp, twirp.InternalError("received a nil *google_protobuf4.Empty and nil error while calling TransferSIPParticipant. nil responses are not supported")) return } diff --git a/livekit/logger/options.pb.go b/livekit/logger/options.pb.go index 6376f910d..fc3cd3f6c 100644 --- a/livekit/logger/options.pb.go +++ b/livekit/logger/options.pb.go @@ -43,7 +43,7 @@ var File_logger_options_proto protoreflect.FileDescriptor const file_logger_options_proto_rawDesc = "" + "\n" + "\x14logger/options.proto\x12\x06logger\x1a google/protobuf/descriptor.proto:7\n" + - "\x06redact\x12\x1d.google.protobuf.FieldOptions\x18ц\x03 \x01(\bR\x06redactB$Z\"github.com/livekit/protocol/loggerb\x06proto3" + "\x06redact\x12\x1d.google.protobuf.FieldOptions\x18ц\x03 \x01(\bR\x06redactB,Z*github.com/livekit/protocol/livekit/loggerb\x06proto3" var file_logger_options_proto_goTypes = []any{ (*descriptorpb.FieldOptions)(nil), // 0: google.protobuf.FieldOptions From 9d8fce164e2f2ebb6cca5a8e2f2d53e48cc300a7 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Thu, 6 Nov 2025 12:08:52 -0800 Subject: [PATCH 4/8] Redact SessionToken, restore making redacted fields as --- egress/redact.go | 1 + egress/redact_test.go | 2 ++ livekit/egress_test.go | 10 ++++++---- logger/proto.go | 2 +- protobufs/livekit_egress.proto | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/egress/redact.go b/egress/redact.go index 3bf9a9560..5b599bdf2 100644 --- a/egress/redact.go +++ b/egress/redact.go @@ -24,6 +24,7 @@ func RedactUpload(req UploadRequest) { s3.AccessKey = utils.Redact(s3.AccessKey, "{access_key}") s3.Secret = utils.Redact(s3.Secret, "{secret}") s3.AssumeRoleExternalId = utils.Redact(s3.AssumeRoleExternalId, "{external_id}") + s3.SessionToken = utils.Redact(s3.AssumeRoleExternalId, "{session_token}") return } diff --git a/egress/redact_test.go b/egress/redact_test.go index 35fc44c3c..561e67276 100644 --- a/egress/redact_test.go +++ b/egress/redact_test.go @@ -30,6 +30,7 @@ var ( AccessKey: "ACCESS_KEY", Secret: "LONG_SECRET_STRING", AssumeRoleExternalId: "EXTERNAL_ID", + SessionToken: "SESSION_TOKEN", }, }, } @@ -68,6 +69,7 @@ func TestRedactUpload(t *testing.T) { require.Equal(t, "{access_key}", cl.(*livekit.EncodedFileOutput).Output.(*livekit.EncodedFileOutput_S3).S3.AccessKey) require.Equal(t, "{secret}", cl.(*livekit.EncodedFileOutput).Output.(*livekit.EncodedFileOutput_S3).S3.Secret) require.Equal(t, "{external_id}", cl.(*livekit.EncodedFileOutput).Output.(*livekit.EncodedFileOutput_S3).S3.AssumeRoleExternalId) + require.Equal(t, "{session_token}", cl.(*livekit.EncodedFileOutput).Output.(*livekit.EncodedFileOutput_S3).S3.SessionToken) cl = proto.Clone(image) RedactUpload(cl.(UploadRequest)) diff --git a/livekit/egress_test.go b/livekit/egress_test.go index 7478153bf..0d3d1b549 100644 --- a/livekit/egress_test.go +++ b/livekit/egress_test.go @@ -40,6 +40,7 @@ func TestLoggerProto(t *testing.T) { Secret: "Field2", AssumeRoleArn: "Field3", SessionToken: "Field4", + Endpoint: "Field5", } l.Debugw("foo", "s3", logger.Proto(s3)) @@ -50,8 +51,9 @@ func TestLoggerProto(t *testing.T) { require.NotEqual(t, 0, log.TS) require.NotEqual(t, "", log.Caller) require.Equal(t, "foo", log.Msg) - require.Equal(t, "", log.S3["accessKey"]) - require.Equal(t, "", log.S3["secret"]) - require.Equal(t, "", log.S3["assumeRoleArn"]) - require.Equal(t, "Field4", log.S3["sessionToken"]) + require.Equal(t, "", log.S3["accessKey"]) + require.Equal(t, "", log.S3["secret"]) + require.Equal(t, "", log.S3["assumeRoleArn"]) + require.Equal(t, "", log.S3["sessionToken"]) + require.Equal(t, "Field5", log.S3["endpoint"]) } diff --git a/logger/proto.go b/logger/proto.go index 36de0904a..6ff2f7c68 100644 --- a/logger/proto.go +++ b/logger/proto.go @@ -49,7 +49,7 @@ func (p protoMarshaller) MarshalLogObject(e zapcore.ObjectEncoder) error { v := p.m.Get(f) if proto.HasExtension(f.Options(), logger.E_Redact) { - e.AddString(k, fmt.Sprintf("<%s>", f.TextName())) + e.AddString(k, "") continue } diff --git a/protobufs/livekit_egress.proto b/protobufs/livekit_egress.proto index 8209b8c3b..9f20f0ce0 100644 --- a/protobufs/livekit_egress.proto +++ b/protobufs/livekit_egress.proto @@ -235,7 +235,7 @@ message ImageOutput { message S3Upload { string access_key = 1 [(logger.redact) = true]; string secret = 2 [(logger.redact) = true]; - string session_token = 11; + string session_token = 11 [(logger.redact) = true]; string assume_role_arn = 12 [(logger.redact) = true]; // ARN of the role to assume for file upload. Egress will make an AssumeRole API call using the provided access_key and secret to assume that role. On LiveKit cloud, this is only available on accounts that have the feature enabled string assume_role_external_id = 13; // ExternalID to use when assuming role for upload string region = 3; From 6dd52368c0299342115e80f133161874302d78b2 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 20:10:30 +0000 Subject: [PATCH 5/8] generated protobuf --- livekit/livekit_egress.pb.go | 6 +- livekit/livekit_egress.twirp.go | 256 ++++++++++++++++---------------- 2 files changed, 131 insertions(+), 131 deletions(-) diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index f79221889..59317819b 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -4007,12 +4007,12 @@ const file_livekit_egress_proto_rawDesc = "" + "\x05azure\x18\n" + " \x01(\v2\x18.livekit.AzureBlobUploadH\x00R\x05azure\x12/\n" + "\x06aliOSS\x18\v \x01(\v2\x15.livekit.AliOSSUploadH\x00R\x06aliOSSB\b\n" + - "\x06output\"\xbe\x04\n" + + "\x06output\"\xc4\x04\n" + "\bS3Upload\x12#\n" + "\n" + "access_key\x18\x01 \x01(\tB\x04\x88\xb5\x18\x01R\taccessKey\x12\x1c\n" + - "\x06secret\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01R\x06secret\x12#\n" + - "\rsession_token\x18\v \x01(\tR\fsessionToken\x12,\n" + + "\x06secret\x18\x02 \x01(\tB\x04\x88\xb5\x18\x01R\x06secret\x12)\n" + + "\rsession_token\x18\v \x01(\tB\x04\x88\xb5\x18\x01R\fsessionToken\x12,\n" + "\x0fassume_role_arn\x18\f \x01(\tB\x04\x88\xb5\x18\x01R\rassumeRoleArn\x125\n" + "\x17assume_role_external_id\x18\r \x01(\tR\x14assumeRoleExternalId\x12\x16\n" + "\x06region\x18\x03 \x01(\tR\x06region\x12\x1a\n" + diff --git a/livekit/livekit_egress.twirp.go b/livekit/livekit_egress.twirp.go index ab28124b9..aab322766 100644 --- a/livekit/livekit_egress.twirp.go +++ b/livekit/livekit_egress.twirp.go @@ -2754,12 +2754,12 @@ func (s *egressServer) PathPrefix() string { } var twirpFileDescriptor1 = []byte{ - // 3306 bytes of a gzipped FileDescriptorProto + // 3310 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x4b, 0x73, 0xdb, 0xd6, 0x15, 0x16, 0xf8, 0xe6, 0xe1, 0x43, 0xd0, 0x95, 0x2c, 0xd3, 0x72, 0x12, 0x3b, 0x74, 0xe2, 0x38, 0x8a, 0x23, 0xab, 0x96, 0xe3, 0x38, 0x4e, 0x93, 0x96, 0x92, 0x20, 0x89, 0x09, 0x25, 0xb2, 0x20, 0x65, 0xa7, 0xdd, 0x60, 0x20, 0xf2, 0x8a, 0xc2, 0x08, 0x04, 0x18, 0xe0, 0x52, 0x32, 0xf3, 0x0b, - 0xb2, 0xec, 0xb4, 0xbb, 0x4e, 0x3b, 0xdd, 0x74, 0xba, 0xe8, 0x74, 0xdb, 0xe9, 0xae, 0x3f, 0xa0, + 0xb2, 0xec, 0xb4, 0xbb, 0x4e, 0x3b, 0xdd, 0x74, 0xba, 0xe8, 0x74, 0xdb, 0xe9, 0x1f, 0xe8, 0xaa, 0x5d, 0x74, 0xd1, 0xe9, 0x1f, 0xe8, 0xb2, 0x9d, 0x76, 0xd7, 0x7d, 0xe7, 0x3e, 0xf0, 0x20, 0x08, 0xc9, 0x92, 0xe5, 0x99, 0x2e, 0xda, 0x1d, 0xee, 0x79, 0xf1, 0xdc, 0x83, 0xef, 0x9e, 0x73, 0xcf, 0x01, 0x61, 0xc1, 0x34, 0x4e, 0xf0, 0xb1, 0x41, 0x34, 0xdc, 0x77, 0xb0, 0xeb, 0xae, 0x0c, 0x1d, @@ -2836,130 +2836,130 @@ var twirpFileDescriptor1 = []byte{ 0x0b, 0xbd, 0xef, 0xfc, 0x85, 0xdf, 0x37, 0x5c, 0xfe, 0x7d, 0x17, 0x2e, 0xfb, 0xbe, 0xff, 0x90, 0x82, 0x9c, 0xe7, 0x27, 0xba, 0x03, 0xa0, 0x77, 0xbb, 0xd8, 0x75, 0xb5, 0x63, 0x3c, 0xe6, 0xf8, 0x5f, 0x4f, 0x7d, 0xfb, 0xbb, 0x8a, 0xa4, 0xe6, 0x39, 0xfd, 0x4b, 0x3c, 0x46, 0x6f, 0x40, 0xc6, - 0xc5, 0x5d, 0x07, 0x8b, 0xe1, 0x95, 0x10, 0x10, 0x34, 0x9a, 0xff, 0x5c, 0xec, 0xba, 0x86, 0x6d, - 0x69, 0xc4, 0x3e, 0xc6, 0x96, 0xc8, 0x6a, 0x45, 0x41, 0xec, 0x50, 0x1a, 0xba, 0x0f, 0xb3, 0xba, - 0xeb, 0x8e, 0x06, 0x58, 0x73, 0x6c, 0x13, 0x6b, 0xba, 0x63, 0xb1, 0xde, 0xdb, 0xb3, 0x55, 0xe2, - 0x4c, 0xd5, 0x36, 0x71, 0xcd, 0xb1, 0xd0, 0x47, 0x70, 0x3d, 0x2c, 0x8d, 0x5f, 0x10, 0xec, 0x58, - 0xba, 0x49, 0xab, 0x7b, 0x89, 0x19, 0x5f, 0x08, 0xe4, 0x15, 0xc1, 0xac, 0xf7, 0x28, 0xf0, 0x1c, - 0xdc, 0xa7, 0xc9, 0x92, 0xa7, 0x60, 0xb1, 0xa2, 0x47, 0x1c, 0x5b, 0xbd, 0xa1, 0x6d, 0x58, 0x44, - 0x20, 0xce, 0x5f, 0x53, 0x9d, 0x83, 0x11, 0xad, 0xe9, 0x62, 0x00, 0x26, 0x56, 0xe8, 0x1e, 0xc8, - 0x87, 0xb6, 0xd3, 0xc5, 0x1a, 0x4d, 0x04, 0x9a, 0x4b, 0xc6, 0x62, 0x0a, 0x96, 0x53, 0xcb, 0x8c, - 0xde, 0xd2, 0xc9, 0x51, 0x9b, 0x52, 0xd1, 0xa7, 0x90, 0x1b, 0x60, 0xa2, 0xf7, 0x74, 0xa2, 0x8b, - 0xb6, 0xe4, 0xd6, 0x14, 0x1e, 0x56, 0x76, 0x85, 0x84, 0x62, 0x11, 0x67, 0xac, 0xfa, 0x0a, 0xa8, - 0x02, 0x59, 0xa2, 0xf7, 0xfb, 0x86, 0xd5, 0x67, 0x58, 0xa2, 0xf7, 0x16, 0xbe, 0x44, 0x0f, 0x60, - 0xbe, 0x6b, 0x5b, 0x84, 0xd5, 0x00, 0xc3, 0x65, 0xd7, 0x7e, 0xba, 0xb3, 0x3c, 0x93, 0x42, 0x82, - 0xb5, 0x19, 0x70, 0xd0, 0x32, 0xa4, 0x87, 0x8e, 0xfd, 0x62, 0x2c, 0x40, 0x14, 0xdc, 0xd9, 0x5a, - 0x94, 0x2a, 0xee, 0x22, 0x5c, 0x64, 0xe9, 0x53, 0x28, 0x4d, 0x78, 0x84, 0x64, 0x48, 0xfa, 0x00, - 0x50, 0xe9, 0x23, 0x3d, 0xdb, 0x27, 0xba, 0x39, 0xc2, 0xa2, 0xea, 0xf1, 0xc5, 0xd3, 0xc4, 0x13, - 0xa9, 0x7a, 0x0a, 0x79, 0x1f, 0xc1, 0xe8, 0x2e, 0x14, 0xba, 0x0e, 0x66, 0xcd, 0xa7, 0x6e, 0xba, - 0x13, 0x08, 0x0a, 0x33, 0x42, 0x71, 0x4e, 0x4c, 0xc4, 0xd9, 0xf7, 0x3a, 0xf9, 0x52, 0xaf, 0xab, - 0xdf, 0x4a, 0x30, 0x1b, 0x39, 0x11, 0xe8, 0x3d, 0x28, 0xea, 0xdd, 0xae, 0x3d, 0xb2, 0x48, 0xe8, - 0x66, 0xe8, 0x39, 0x20, 0x38, 0xac, 0xa6, 0xbe, 0x0b, 0xde, 0x92, 0x41, 0x3d, 0x8c, 0x64, 0x10, - 0x0c, 0x8a, 0xf5, 0x77, 0xa1, 0x4c, 0x63, 0xab, 0x1b, 0x16, 0x76, 0xc2, 0xe5, 0xbc, 0xe4, 0x53, - 0xa9, 0xb5, 0xea, 0x2f, 0x24, 0x28, 0x86, 0x4f, 0xda, 0xeb, 0x38, 0x48, 0xaf, 0x11, 0xbe, 0xd5, - 0xe7, 0x50, 0x08, 0x05, 0x30, 0x66, 0x9a, 0xb6, 0x04, 0xb9, 0x91, 0x4b, 0x0f, 0xce, 0xc0, 0x7b, - 0xc3, 0xfe, 0x9a, 0xf2, 0x86, 0xba, 0xeb, 0x9e, 0xda, 0x8e, 0xd7, 0x06, 0xfa, 0xeb, 0xea, 0x73, - 0x28, 0x86, 0xfb, 0x10, 0xb4, 0x36, 0x75, 0xc5, 0xba, 0x1e, 0x69, 0x58, 0x62, 0xee, 0x56, 0x08, - 0x52, 0x23, 0xc7, 0x74, 0x2b, 0x89, 0xdb, 0xc9, 0x7b, 0x79, 0x95, 0x3d, 0x57, 0xff, 0x98, 0x84, - 0xd9, 0x48, 0x7b, 0x15, 0xd4, 0x17, 0x29, 0xbe, 0xbe, 0x24, 0x26, 0xea, 0xcb, 0x02, 0xa4, 0x7b, - 0x78, 0x48, 0x8e, 0x44, 0xd9, 0xe1, 0x0b, 0xf4, 0x06, 0xe4, 0x0f, 0x1d, 0x7d, 0x80, 0x1d, 0x9d, - 0xf0, 0x7a, 0x9a, 0x56, 0x03, 0x02, 0xad, 0x13, 0xbc, 0x3b, 0xe6, 0x75, 0x22, 0x1d, 0xa9, 0x13, - 0x6c, 0xbe, 0x2e, 0xea, 0x84, 0xee, 0x3f, 0xd3, 0x94, 0xc7, 0xb5, 0x0e, 0x0c, 0xc2, 0xec, 0x66, - 0x98, 0x5d, 0xde, 0x52, 0xaf, 0x73, 0x5a, 0x20, 0xf4, 0xf5, 0x48, 0x37, 0x0d, 0x32, 0x66, 0x79, - 0xd1, 0x13, 0xfa, 0x01, 0xa7, 0xd1, 0x9a, 0xc8, 0x85, 0x0e, 0x1d, 0xda, 0xe7, 0x58, 0xdd, 0x31, - 0x2b, 0x38, 0x69, 0x95, 0x37, 0xed, 0x5b, 0x1e, 0x95, 0x3a, 0xca, 0x1b, 0x74, 0xee, 0x68, 0x2e, - 0xe2, 0xe8, 0x33, 0xca, 0x13, 0x8e, 0x9e, 0xf8, 0xcf, 0xd4, 0x07, 0xae, 0xe5, 0x39, 0x9a, 0xe7, - 0x3e, 0x30, 0x62, 0xc8, 0x51, 0x2e, 0xe4, 0x39, 0x5a, 0x0c, 0x09, 0x79, 0x8e, 0xde, 0x07, 0x74, - 0x8c, 0xc7, 0x1a, 0x8b, 0x5c, 0x70, 0x2f, 0xa0, 0xa9, 0x46, 0x52, 0xe5, 0x63, 0x3c, 0xde, 0xa2, - 0x0c, 0xef, 0x62, 0x50, 0xfd, 0x02, 0xe6, 0xf7, 0x87, 0x3d, 0x9d, 0xe0, 0x06, 0xfb, 0xcc, 0x11, - 0xea, 0xe1, 0xf8, 0x67, 0x18, 0x9a, 0xc9, 0xc5, 0x65, 0x8b, 0x13, 0x78, 0xf6, 0x8e, 0xfb, 0x44, - 0x42, 0x4f, 0xbd, 0x30, 0xc6, 0xf1, 0x74, 0x21, 0x63, 0x77, 0x61, 0x56, 0xef, 0xf5, 0x44, 0x1b, - 0xab, 0x85, 0xc0, 0x56, 0xd2, 0x7b, 0x3d, 0x0e, 0xdd, 0x7d, 0xc7, 0x74, 0xe9, 0xb6, 0x1c, 0x3c, - 0xb0, 0x4f, 0xf0, 0x84, 0x68, 0x92, 0x89, 0xca, 0x9c, 0x13, 0x48, 0x57, 0x31, 0xcc, 0x35, 0x0c, - 0xf7, 0x32, 0x93, 0xba, 0x09, 0x27, 0x13, 0xd3, 0x3b, 0xd6, 0xbb, 0xc4, 0x38, 0xf1, 0x86, 0x74, - 0x62, 0x55, 0xfd, 0x1e, 0xa0, 0xf0, 0xcf, 0xb8, 0x43, 0xdb, 0x72, 0x69, 0x53, 0x90, 0x36, 0x08, - 0x1e, 0xd0, 0x1c, 0x4b, 0x8b, 0x4c, 0xf0, 0xee, 0xb9, 0x5c, 0xdd, 0x3a, 0xb4, 0x55, 0x2e, 0x51, - 0x5d, 0x85, 0xb9, 0x36, 0xb1, 0x87, 0x53, 0x7e, 0x9e, 0x19, 0xaf, 0xea, 0xef, 0xf3, 0x00, 0x81, - 0x9d, 0xf3, 0x63, 0x7b, 0x1d, 0xb2, 0x6c, 0xc3, 0xfe, 0x8e, 0x32, 0x74, 0x59, 0xef, 0x4d, 0x46, - 0xa2, 0x14, 0x89, 0xc4, 0x53, 0x28, 0xb8, 0xf6, 0x88, 0x56, 0x54, 0xd6, 0xdd, 0x2e, 0x31, 0x00, - 0xdf, 0x88, 0x6c, 0xa2, 0xcd, 0x24, 0x58, 0x7b, 0x0b, 0xae, 0xff, 0x8c, 0x3e, 0x84, 0x8c, 0x4b, - 0x74, 0x32, 0x72, 0x59, 0xa0, 0xca, 0xa1, 0xdb, 0x8e, 0x50, 0x63, 0x4c, 0x55, 0x08, 0xa1, 0x37, - 0x01, 0xd8, 0x94, 0x1f, 0xf7, 0x34, 0x9d, 0x30, 0x8c, 0x26, 0xd5, 0xbc, 0xa0, 0xd4, 0x08, 0xba, - 0xc1, 0xf2, 0x29, 0x67, 0x16, 0x18, 0x33, 0xcb, 0xd6, 0x35, 0xf6, 0x39, 0x6e, 0xc4, 0xa0, 0xc6, - 0x98, 0x88, 0x6b, 0x0a, 0x4a, 0x8d, 0xd0, 0x6a, 0xdd, 0xc3, 0x44, 0x37, 0x4c, 0xb7, 0x72, 0x8d, - 0x57, 0x6b, 0xb1, 0xa4, 0xb9, 0x07, 0x3b, 0x8e, 0xed, 0x88, 0xfa, 0xcc, 0x17, 0xd4, 0x1c, 0x7b, - 0x60, 0x87, 0xb6, 0xb2, 0xc8, 0x93, 0x0f, 0xa3, 0xd0, 0xe3, 0x89, 0x1a, 0x50, 0x66, 0xf1, 0xea, - 0x7a, 0x63, 0x3d, 0x71, 0xdf, 0xbf, 0xe3, 0x6f, 0xef, 0xec, 0xcf, 0x8d, 0x3b, 0x33, 0x6a, 0xc9, - 0x09, 0x73, 0xd1, 0x87, 0x90, 0x3c, 0xc5, 0x07, 0x95, 0x72, 0x64, 0xce, 0x11, 0xfd, 0xb2, 0x42, - 0xef, 0x9c, 0xa7, 0xf8, 0x00, 0x29, 0x50, 0x18, 0x06, 0xc3, 0xe7, 0xca, 0x3c, 0x53, 0x7b, 0x3b, - 0x28, 0xbf, 0x67, 0x0c, 0xa6, 0x77, 0x66, 0xd4, 0xb0, 0x1e, 0x6a, 0xc2, 0x2c, 0x9f, 0xbc, 0x04, - 0x9b, 0xe0, 0xad, 0xe1, 0x3b, 0xbe, 0xa9, 0x73, 0x46, 0x97, 0x3b, 0x33, 0x6a, 0x99, 0x4c, 0xb0, - 0xd1, 0x1a, 0xa4, 0x19, 0x45, 0x34, 0x32, 0x37, 0x27, 0xcd, 0x44, 0xb5, 0xb9, 0x2c, 0xfa, 0x28, - 0xf2, 0xc5, 0x31, 0x5a, 0x83, 0x28, 0xa8, 0xe9, 0x91, 0x62, 0x63, 0x42, 0xc9, 0x1f, 0x32, 0x7e, - 0x20, 0x66, 0x43, 0xd1, 0x6b, 0x3c, 0x6d, 0x2c, 0xa8, 0x8a, 0x10, 0xe7, 0x73, 0xa1, 0x8f, 0x43, - 0x13, 0xc9, 0x62, 0x74, 0x90, 0x29, 0x18, 0x21, 0xa5, 0x60, 0x14, 0xf9, 0xd4, 0x9f, 0xec, 0x39, - 0xd8, 0x1d, 0x99, 0xc4, 0x9b, 0x8f, 0xcd, 0xc7, 0x38, 0xe9, 0xcd, 0xf5, 0x54, 0x2e, 0x89, 0x1e, - 0x89, 0xa1, 0xa2, 0xa7, 0xc9, 0x3f, 0xb4, 0x4d, 0x7b, 0xca, 0x67, 0x89, 0x9e, 0xd6, 0xe7, 0xc1, - 0x34, 0xd0, 0x53, 0x9c, 0x8b, 0x0e, 0x13, 0x43, 0x1e, 0xfb, 0x63, 0x40, 0x4f, 0xff, 0x89, 0x37, - 0x06, 0xf4, 0xb4, 0x17, 0x22, 0x0e, 0xb3, 0xfe, 0x89, 0xeb, 0xf2, 0x29, 0xa0, 0xa7, 0xf9, 0x01, - 0xcc, 0x79, 0x9d, 0x93, 0x66, 0xda, 0x5d, 0x3e, 0xba, 0xb8, 0xce, 0xc7, 0x1c, 0x1e, 0xa3, 0x21, - 0xe8, 0x68, 0x05, 0xe6, 0x0f, 0xf4, 0xee, 0xf1, 0x68, 0xa8, 0xb9, 0xc4, 0x76, 0xe8, 0xef, 0x8d, - 0x5c, 0xdc, 0xab, 0xdc, 0x60, 0xc9, 0x70, 0x8e, 0xb3, 0xda, 0x9c, 0xb3, 0xef, 0xe2, 0xde, 0x7a, - 0x1e, 0xb2, 0x0e, 0x7f, 0xf3, 0xb4, 0x9d, 0xe1, 0xbe, 0x55, 0x3f, 0x83, 0xf2, 0xe4, 0x3b, 0x46, - 0xef, 0x41, 0xca, 0xb0, 0x0e, 0xed, 0xa9, 0x3c, 0x19, 0x8a, 0x32, 0x13, 0x78, 0x9a, 0xa8, 0x48, - 0xd5, 0x7f, 0x49, 0x00, 0x01, 0x23, 0xfe, 0xb3, 0x63, 0x28, 0x99, 0x24, 0xce, 0x4b, 0x26, 0xc9, - 0xc9, 0x64, 0xb2, 0x04, 0xb9, 0x89, 0xe9, 0x4d, 0x52, 0xf5, 0xd7, 0xe8, 0xa1, 0x9f, 0xd1, 0xf8, - 0x95, 0x63, 0x29, 0xc6, 0xcb, 0x95, 0x48, 0x5a, 0xf3, 0x73, 0x4c, 0x26, 0x94, 0x63, 0xaa, 0x2b, - 0x90, 0xe1, 0x72, 0x08, 0x20, 0x53, 0xdb, 0xe8, 0xd4, 0x9f, 0x29, 0xf2, 0x0c, 0x2a, 0x42, 0x6e, - 0xab, 0xbe, 0x57, 0x6f, 0xef, 0x28, 0x9b, 0xb2, 0x44, 0x39, 0x5b, 0xb5, 0x7a, 0x43, 0xd9, 0x94, - 0x13, 0xd5, 0xdf, 0x4a, 0x90, 0xf3, 0x50, 0xe3, 0x0d, 0x3f, 0xc2, 0xa5, 0xcb, 0x5b, 0xbf, 0xa6, - 0x8d, 0x67, 0x22, 0x1b, 0x47, 0x90, 0x72, 0x8d, 0x6f, 0xb0, 0x08, 0x08, 0x7b, 0xa6, 0xf2, 0x3e, - 0x56, 0xf8, 0x35, 0xd6, 0x5f, 0x57, 0xff, 0x92, 0x80, 0x62, 0x18, 0xab, 0xd3, 0xe3, 0x36, 0xe9, - 0xc2, 0xe3, 0xb6, 0xdc, 0x19, 0xe3, 0xb6, 0xb0, 0xbf, 0x89, 0x33, 0xfc, 0x4d, 0x86, 0xfc, 0xfd, - 0x00, 0xe6, 0x7c, 0xc3, 0xbe, 0xe3, 0xfc, 0x66, 0x2e, 0x7b, 0x0c, 0x1f, 0xe4, 0x8f, 0x60, 0x71, - 0xd2, 0x15, 0x5f, 0x83, 0x97, 0x8a, 0x85, 0xb0, 0x3b, 0xbe, 0x16, 0x6b, 0xaa, 0xf9, 0x09, 0x66, - 0xad, 0x09, 0x8b, 0x4b, 0x92, 0x36, 0xd5, 0x8c, 0xb8, 0x41, 0x69, 0x91, 0x37, 0x94, 0x39, 0xef, - 0x0d, 0x65, 0x27, 0xde, 0x50, 0xf5, 0xc7, 0x12, 0x40, 0x70, 0x86, 0x2f, 0x3e, 0x99, 0xb9, 0x15, - 0x8c, 0x55, 0xa8, 0x53, 0x12, 0xb3, 0xea, 0x4d, 0x50, 0xa6, 0x5d, 0xba, 0x04, 0x68, 0xaa, 0x3f, - 0x4b, 0xc0, 0xb5, 0xda, 0x88, 0xd8, 0x53, 0x85, 0x27, 0xf4, 0x29, 0x47, 0xba, 0xc2, 0xe7, 0xca, - 0xc4, 0x15, 0x3e, 0x57, 0x26, 0x2f, 0xf7, 0x29, 0x27, 0xe6, 0x63, 0x4c, 0xea, 0xf2, 0x1f, 0x63, - 0xc2, 0xdf, 0x44, 0x7e, 0x92, 0x80, 0x59, 0x1a, 0x9c, 0x50, 0x0d, 0xfc, 0x9f, 0x1f, 0x5c, 0x2e, - 0xaf, 0x8b, 0x86, 0x31, 0xf8, 0x26, 0x82, 0x16, 0x40, 0xde, 0x54, 0xb6, 0x6a, 0xfb, 0x8d, 0x8e, - 0xb6, 0x55, 0x6f, 0x28, 0x9d, 0x1f, 0xb6, 0x68, 0x32, 0xcc, 0x42, 0x72, 0xb7, 0xf5, 0x48, 0x96, - 0xe8, 0x43, 0x73, 0x7b, 0x5b, 0x4e, 0x70, 0xca, 0x9a, 0x9c, 0x5c, 0xde, 0x83, 0x6b, 0xb1, 0x1f, - 0x02, 0xd0, 0x1d, 0xb8, 0xe5, 0x59, 0x6a, 0x2b, 0xdb, 0xbb, 0xca, 0x5e, 0x47, 0xd9, 0x64, 0x36, - 0xb5, 0x96, 0xda, 0xec, 0x34, 0x37, 0x9a, 0x0d, 0x79, 0x06, 0xc9, 0x50, 0xdc, 0x69, 0xb4, 0x03, - 0x8a, 0xb4, 0xfc, 0x20, 0xf2, 0x21, 0x42, 0x8c, 0x23, 0xf3, 0x90, 0xae, 0xef, 0x6d, 0x2a, 0x5f, - 0xc9, 0x33, 0xa8, 0x04, 0xf9, 0x4e, 0x7d, 0x57, 0x69, 0x77, 0x6a, 0xbb, 0x2d, 0x59, 0x5a, 0x3e, - 0x84, 0xd9, 0xc8, 0x2c, 0x13, 0x2d, 0x02, 0xaa, 0xef, 0xd6, 0xb6, 0x15, 0xad, 0xbd, 0xbf, 0xb5, - 0x55, 0xff, 0x4a, 0xf3, 0x34, 0x97, 0x60, 0x71, 0x82, 0x1e, 0x32, 0x83, 0x6e, 0xc1, 0xcd, 0x09, - 0xde, 0x5e, 0x73, 0x4f, 0xd1, 0x9a, 0xcf, 0x14, 0xf5, 0xb9, 0x5a, 0xef, 0x28, 0x72, 0x62, 0xf9, - 0x13, 0xaf, 0x4c, 0xfa, 0x3b, 0x0c, 0xc5, 0x2a, 0xb4, 0xa5, 0x1c, 0xa4, 0xd4, 0x0e, 0x33, 0x99, - 0x85, 0x64, 0x5b, 0xed, 0xc8, 0x89, 0xe5, 0x7d, 0x28, 0x84, 0xfe, 0x67, 0x86, 0x10, 0x94, 0x3d, - 0xbd, 0xdd, 0xfa, 0x57, 0xf5, 0xbd, 0x6d, 0x79, 0x86, 0xba, 0xbc, 0xb9, 0x5f, 0x6b, 0x68, 0x1b, - 0x3b, 0xb5, 0xbd, 0x3d, 0xa5, 0xa1, 0xd5, 0xb6, 0x95, 0xbd, 0x8e, 0x2c, 0x51, 0x97, 0x27, 0xe9, - 0x8d, 0x8e, 0xa2, 0xee, 0xd5, 0x98, 0x47, 0x7f, 0x96, 0xe0, 0x5a, 0xec, 0x01, 0x66, 0x61, 0x7d, - 0xf8, 0xf8, 0x91, 0xf6, 0xf1, 0xc3, 0xd5, 0x96, 0xb6, 0xb6, 0x2a, 0x02, 0xed, 0x53, 0x1e, 0xaf, - 0xca, 0x12, 0x9a, 0x83, 0x12, 0xa3, 0x7c, 0x67, 0xf5, 0x09, 0x17, 0x4a, 0x44, 0x48, 0x8f, 0x57, - 0xe5, 0x24, 0xba, 0x01, 0xd7, 0x5a, 0x4d, 0xb5, 0xa3, 0xd6, 0xea, 0x1d, 0x6d, 0xc2, 0x64, 0xea, - 0x0c, 0xd6, 0xe3, 0x55, 0x39, 0x4d, 0xbd, 0x9e, 0x64, 0xf9, 0x3f, 0x92, 0x39, 0x8b, 0xf7, 0x78, - 0x55, 0xce, 0x2e, 0xff, 0x52, 0x82, 0x62, 0xb8, 0x21, 0x41, 0xf3, 0x30, 0xab, 0x6c, 0xab, 0x4a, - 0xbb, 0xad, 0xb5, 0x3b, 0x35, 0xb5, 0xc3, 0x63, 0x35, 0x07, 0x25, 0x41, 0x14, 0xd5, 0x5a, 0x0a, - 0x91, 0x94, 0xbd, 0x4d, 0x2a, 0x95, 0x08, 0xa9, 0x6e, 0x34, 0x77, 0x5b, 0x0d, 0xa5, 0xa3, 0xc8, - 0xc9, 0x90, 0x9c, 0x28, 0xe7, 0x29, 0xfa, 0x36, 0x3c, 0x6b, 0xeb, 0x4d, 0xb5, 0xa3, 0x6c, 0xca, - 0x69, 0x54, 0x81, 0x05, 0x41, 0x6b, 0xd4, 0x77, 0xeb, 0x1d, 0x4d, 0x55, 0x6a, 0x1b, 0xf4, 0x22, - 0x90, 0x59, 0xfe, 0x02, 0xe4, 0x68, 0xa3, 0x45, 0x77, 0xe4, 0x39, 0xd9, 0xdc, 0x57, 0x37, 0x14, - 0x8d, 0x9e, 0x1a, 0xed, 0xb9, 0xb2, 0xce, 0x21, 0x17, 0xc3, 0x6b, 0x6f, 0x7e, 0x29, 0x4b, 0x0f, - 0x7f, 0x9e, 0x86, 0x8c, 0x48, 0x45, 0x1d, 0xa8, 0xb0, 0x7f, 0x4f, 0xc5, 0xb4, 0x2b, 0xe8, 0x22, - 0xcd, 0xcc, 0x52, 0x5c, 0x33, 0x8b, 0xbe, 0x4f, 0x21, 0xab, 0x3b, 0xc4, 0xef, 0x60, 0xd0, 0xd9, - 0x5d, 0x4d, 0xbc, 0x85, 0x16, 0x2c, 0x32, 0x0b, 0xd3, 0x35, 0xe5, 0xe5, 0x8d, 0x4e, 0xbc, 0xc5, - 0x67, 0x70, 0x83, 0x59, 0x8c, 0xeb, 0x69, 0xd0, 0x85, 0x5a, 0x9e, 0x78, 0xbb, 0x9b, 0x20, 0x07, - 0x76, 0x85, 0xb9, 0xf3, 0x5a, 0x9f, 0x78, 0x2b, 0x35, 0x28, 0x86, 0xc7, 0x2e, 0x28, 0xa8, 0x37, - 0x31, 0xd3, 0x98, 0x97, 0x98, 0xe0, 0xd9, 0x62, 0xca, 0xc4, 0xc4, 0x0c, 0x26, 0xde, 0x84, 0x02, - 0x10, 0x8c, 0x2f, 0x50, 0x50, 0x35, 0xa7, 0x46, 0x27, 0x4b, 0x37, 0x63, 0x79, 0x62, 0xde, 0xf1, - 0x19, 0xbd, 0x98, 0x7b, 0x43, 0x0c, 0x14, 0xbe, 0x20, 0x47, 0x26, 0x1b, 0xb1, 0x5e, 0xac, 0x6f, - 0xfd, 0xe8, 0x4e, 0xdf, 0x20, 0x47, 0xa3, 0x83, 0x95, 0xae, 0x3d, 0x78, 0x20, 0x04, 0x1e, 0x78, - 0x23, 0x48, 0x8f, 0xf0, 0x9b, 0x44, 0xa9, 0x61, 0x9c, 0xe0, 0x2f, 0xf9, 0xc0, 0x99, 0xd8, 0x7f, - 0x4f, 0x94, 0xc5, 0xfa, 0xe9, 0x53, 0x46, 0x38, 0xc8, 0x30, 0x95, 0xb5, 0xff, 0x04, 0x00, 0x00, - 0xff, 0xff, 0xd9, 0xd3, 0x1d, 0x14, 0x49, 0x2c, 0x00, 0x00, + 0xc5, 0x5d, 0x07, 0x8b, 0xe1, 0x95, 0x10, 0x10, 0x34, 0xf4, 0x3e, 0x94, 0x5c, 0xec, 0xba, 0x86, + 0x6d, 0x69, 0xc4, 0x3e, 0xc6, 0x16, 0xcf, 0x6a, 0x42, 0xa8, 0x28, 0x58, 0x1d, 0xca, 0x41, 0xf7, + 0x61, 0x56, 0x77, 0xdd, 0xd1, 0x00, 0x6b, 0x8e, 0x6d, 0x62, 0x4d, 0x77, 0x2c, 0xd6, 0x81, 0x7b, + 0xc2, 0x25, 0xce, 0x54, 0x6d, 0x13, 0xd7, 0x1c, 0x0b, 0x7d, 0x04, 0xd7, 0xc3, 0xd2, 0xf8, 0x05, + 0xc1, 0x8e, 0xa5, 0x9b, 0xb4, 0xc6, 0x97, 0x18, 0x6e, 0x16, 0x02, 0x79, 0x45, 0x30, 0xeb, 0x3d, + 0x0a, 0x3f, 0x07, 0xf7, 0x69, 0xca, 0xe4, 0x89, 0x58, 0xac, 0xe8, 0x41, 0xc7, 0x56, 0x6f, 0x68, + 0x1b, 0x16, 0x11, 0xb8, 0xf3, 0xd7, 0x54, 0xe7, 0x60, 0x44, 0x2b, 0xbb, 0x18, 0x83, 0x89, 0x15, + 0xba, 0x07, 0xf2, 0xa1, 0xed, 0x74, 0xb1, 0x46, 0xd3, 0x81, 0xe6, 0x92, 0xb1, 0x98, 0x85, 0xe5, + 0xd4, 0x32, 0xa3, 0xb7, 0x74, 0x72, 0xd4, 0xa6, 0x54, 0xf4, 0x29, 0xe4, 0x06, 0x98, 0xe8, 0x3d, + 0x9d, 0xe8, 0xa2, 0x39, 0xb9, 0x35, 0x85, 0x8a, 0x95, 0x5d, 0x21, 0xa1, 0x58, 0xc4, 0x19, 0xab, + 0xbe, 0x02, 0xaa, 0x40, 0x96, 0xe8, 0xfd, 0xbe, 0x61, 0xf5, 0x19, 0xa2, 0xe8, 0xed, 0x85, 0x2f, + 0xd1, 0x03, 0x98, 0xef, 0xda, 0x16, 0x61, 0x95, 0xc0, 0x70, 0xd9, 0xe5, 0x9f, 0xee, 0x2c, 0xcf, + 0xa4, 0x90, 0x60, 0x6d, 0x06, 0x1c, 0xb4, 0x0c, 0xe9, 0xa1, 0x63, 0xbf, 0x18, 0x0b, 0x28, 0x05, + 0x37, 0xb7, 0x16, 0xa5, 0x8a, 0x1b, 0x09, 0x17, 0x59, 0xfa, 0x14, 0x4a, 0x13, 0x1e, 0x21, 0x19, + 0x92, 0x3e, 0x0c, 0x54, 0xfa, 0x48, 0x4f, 0xf8, 0x89, 0x6e, 0x8e, 0xb0, 0xa8, 0x7d, 0x7c, 0xf1, + 0x34, 0xf1, 0x44, 0xaa, 0x9e, 0x42, 0xde, 0xc7, 0x31, 0xba, 0x0b, 0x85, 0xae, 0x83, 0x59, 0x0b, + 0xaa, 0x9b, 0xee, 0x04, 0x8e, 0xc2, 0x8c, 0x50, 0x9c, 0x13, 0x13, 0x71, 0xf6, 0xbd, 0x4e, 0xbe, + 0xd4, 0xeb, 0xea, 0xb7, 0x12, 0xcc, 0x46, 0xce, 0x05, 0x7a, 0x0f, 0x8a, 0x7a, 0xb7, 0x6b, 0x8f, + 0x2c, 0x12, 0xba, 0x1f, 0x7a, 0x0e, 0x08, 0x0e, 0xab, 0xac, 0xef, 0x82, 0xb7, 0x64, 0x80, 0x0f, + 0xe3, 0x19, 0x04, 0x83, 0x22, 0xfe, 0x5d, 0x28, 0xd3, 0xd8, 0xea, 0x86, 0x85, 0x9d, 0x70, 0x51, + 0x2f, 0xf9, 0x54, 0x6a, 0xad, 0xfa, 0x0b, 0x09, 0x8a, 0xe1, 0xf3, 0xf6, 0x3a, 0x8e, 0xd3, 0x6b, + 0x84, 0x6f, 0xf5, 0x39, 0x14, 0x42, 0x01, 0x8c, 0x99, 0xa9, 0x2d, 0x41, 0x6e, 0xe4, 0xd2, 0x83, + 0x33, 0xf0, 0xde, 0xb0, 0xbf, 0xa6, 0xbc, 0xa1, 0xee, 0xba, 0xa7, 0xb6, 0xe3, 0x35, 0x83, 0xfe, + 0xba, 0xfa, 0x1c, 0x8a, 0xe1, 0x6e, 0x04, 0xad, 0x4d, 0x5d, 0xb4, 0xae, 0x47, 0xda, 0x96, 0x98, + 0x1b, 0x16, 0x82, 0xd4, 0xc8, 0x31, 0xdd, 0x4a, 0xe2, 0x76, 0xf2, 0x5e, 0x5e, 0x65, 0xcf, 0xd5, + 0x3f, 0x26, 0x61, 0x36, 0xd2, 0x64, 0x05, 0x55, 0x46, 0x8a, 0xaf, 0x32, 0x89, 0x89, 0x2a, 0xb3, + 0x00, 0xe9, 0x1e, 0x1e, 0x92, 0x23, 0x51, 0x7c, 0xf8, 0x02, 0xbd, 0x01, 0xf9, 0x43, 0x47, 0x1f, + 0x60, 0x47, 0x27, 0xbc, 0xaa, 0xa6, 0xd5, 0x80, 0x40, 0xab, 0x05, 0xef, 0x91, 0x79, 0xb5, 0x48, + 0x47, 0xaa, 0x05, 0x9b, 0xb2, 0x8b, 0x6a, 0xa1, 0xfb, 0xcf, 0xf4, 0xe2, 0xc7, 0xb5, 0x0e, 0x0c, + 0xc2, 0xec, 0x66, 0x98, 0x5d, 0xde, 0x58, 0xaf, 0x73, 0x5a, 0x20, 0xf4, 0xf5, 0x48, 0x37, 0x0d, + 0x32, 0x66, 0xd9, 0xd1, 0x13, 0xfa, 0x01, 0xa7, 0xd1, 0xca, 0xc8, 0x85, 0x0e, 0x1d, 0xda, 0xed, + 0x58, 0xdd, 0x31, 0x2b, 0x3b, 0x69, 0x95, 0xb7, 0xee, 0x5b, 0x1e, 0x95, 0x3a, 0xca, 0xdb, 0x74, + 0xee, 0x68, 0x2e, 0xe2, 0xe8, 0x33, 0xca, 0x13, 0x8e, 0x9e, 0xf8, 0xcf, 0xd4, 0x07, 0xae, 0xe5, + 0x39, 0x9a, 0xe7, 0x3e, 0x30, 0x62, 0xc8, 0x51, 0x2e, 0xe4, 0x39, 0x5a, 0x0c, 0x09, 0x79, 0x8e, + 0xde, 0x07, 0x74, 0x8c, 0xc7, 0x1a, 0x8b, 0x5c, 0x70, 0x3b, 0xa0, 0xa9, 0x46, 0x52, 0xe5, 0x63, + 0x3c, 0xde, 0xa2, 0x0c, 0xef, 0x7a, 0x50, 0xfd, 0x02, 0xe6, 0xf7, 0x87, 0x3d, 0x9d, 0xe0, 0x06, + 0xfb, 0xd8, 0x11, 0xea, 0xe4, 0xf8, 0xc7, 0x18, 0x9a, 0xc9, 0xc5, 0x95, 0x8b, 0x13, 0x78, 0xf6, + 0x8e, 0xfb, 0x50, 0x42, 0x4f, 0xbd, 0x30, 0xc6, 0xf1, 0x74, 0x21, 0x63, 0x77, 0x61, 0x56, 0xef, + 0xf5, 0x44, 0x33, 0xab, 0x85, 0xc0, 0x56, 0xd2, 0x7b, 0x3d, 0x0e, 0xdd, 0x7d, 0xc7, 0x74, 0xe9, + 0xb6, 0x1c, 0x3c, 0xb0, 0x4f, 0xf0, 0x84, 0x68, 0x92, 0x89, 0xca, 0x9c, 0x13, 0x48, 0x57, 0x31, + 0xcc, 0x35, 0x0c, 0xf7, 0x32, 0xf3, 0xba, 0x09, 0x27, 0x13, 0xd3, 0x3b, 0xd6, 0xbb, 0xc4, 0x38, + 0xf1, 0x46, 0x75, 0x62, 0x55, 0xfd, 0x1e, 0xa0, 0xf0, 0xcf, 0xb8, 0x43, 0xdb, 0x72, 0x69, 0x6b, + 0x90, 0x36, 0x08, 0x1e, 0xd0, 0x1c, 0x4b, 0x8b, 0x4c, 0xf0, 0xee, 0xb9, 0x5c, 0xdd, 0x3a, 0xb4, + 0x55, 0x2e, 0x51, 0x5d, 0x85, 0xb9, 0x36, 0xb1, 0x87, 0x53, 0x7e, 0x9e, 0x19, 0xaf, 0xea, 0xef, + 0xf3, 0x00, 0x81, 0x9d, 0xf3, 0x63, 0x7b, 0x1d, 0xb2, 0x6c, 0xc3, 0xfe, 0x8e, 0x32, 0x74, 0x59, + 0xef, 0x4d, 0x46, 0xa2, 0x14, 0x89, 0xc4, 0x53, 0x28, 0xb8, 0xf6, 0x88, 0x56, 0x54, 0xd6, 0xe3, + 0x2e, 0x31, 0x00, 0xdf, 0x88, 0x6c, 0xa2, 0xcd, 0x24, 0x58, 0x93, 0x0b, 0xae, 0xff, 0x8c, 0x3e, + 0x84, 0x8c, 0x4b, 0x74, 0x32, 0x72, 0x59, 0xa0, 0xca, 0xa1, 0x3b, 0x8f, 0x50, 0x63, 0x4c, 0x55, + 0x08, 0xa1, 0x37, 0x01, 0xd8, 0xac, 0x1f, 0xf7, 0x34, 0x9d, 0x30, 0x8c, 0x26, 0xd5, 0xbc, 0xa0, + 0xd4, 0x08, 0xba, 0xc1, 0xf2, 0x29, 0x67, 0x16, 0x18, 0x33, 0xcb, 0xd6, 0x35, 0xf6, 0x51, 0x6e, + 0xc4, 0xa0, 0xc6, 0x98, 0x88, 0x6b, 0x0a, 0x4a, 0x8d, 0xd0, 0x6a, 0xdd, 0xc3, 0x44, 0x37, 0x4c, + 0xb7, 0x72, 0x8d, 0x57, 0x6b, 0xb1, 0xa4, 0xb9, 0x07, 0x3b, 0x8e, 0xed, 0x88, 0xfa, 0xcc, 0x17, + 0xd4, 0x1c, 0x7b, 0x60, 0x87, 0xb6, 0xb2, 0xc8, 0x93, 0x0f, 0xa3, 0xd0, 0xe3, 0x89, 0x1a, 0x50, + 0x66, 0xf1, 0xea, 0x7a, 0xc3, 0x3d, 0x71, 0xeb, 0xbf, 0xe3, 0x6f, 0xef, 0xec, 0x8f, 0x8e, 0x3b, + 0x33, 0x6a, 0xc9, 0x09, 0x73, 0xd1, 0x87, 0x90, 0x3c, 0xc5, 0x07, 0x95, 0x72, 0x64, 0xda, 0x11, + 0xfd, 0xbe, 0x42, 0x6f, 0x9e, 0xa7, 0xf8, 0x00, 0x29, 0x50, 0x18, 0x06, 0x23, 0xe8, 0xca, 0x3c, + 0x53, 0x7b, 0x3b, 0x28, 0xbf, 0x67, 0x8c, 0xa7, 0x77, 0x66, 0xd4, 0xb0, 0x1e, 0x6a, 0xc2, 0x2c, + 0x9f, 0xbf, 0x04, 0x9b, 0xe0, 0x0d, 0xe2, 0x3b, 0xbe, 0xa9, 0x73, 0x06, 0x98, 0x3b, 0x33, 0x6a, + 0x99, 0x4c, 0xb0, 0xd1, 0x1a, 0xa4, 0x19, 0x45, 0xb4, 0x33, 0x37, 0x27, 0xcd, 0x44, 0xb5, 0xb9, + 0x2c, 0xfa, 0x28, 0xf2, 0xdd, 0x31, 0x5a, 0x83, 0x28, 0xa8, 0xe9, 0x91, 0x62, 0xc3, 0x42, 0xc9, + 0x1f, 0x35, 0x7e, 0x20, 0x26, 0x44, 0xd1, 0xcb, 0x3c, 0x6d, 0x2f, 0xa8, 0x8a, 0x10, 0xe7, 0xd3, + 0xa1, 0x8f, 0x43, 0x73, 0xc9, 0x62, 0x74, 0x9c, 0x29, 0x18, 0x21, 0xa5, 0x60, 0x20, 0xf9, 0xd4, + 0x9f, 0xef, 0x39, 0xd8, 0x1d, 0x99, 0xc4, 0x9b, 0x92, 0xcd, 0xc7, 0x38, 0xe9, 0x4d, 0xf7, 0x54, + 0x2e, 0x89, 0x1e, 0x89, 0xd1, 0xa2, 0xa7, 0xc9, 0x3f, 0xb7, 0x4d, 0x7b, 0xca, 0x27, 0x8a, 0x9e, + 0xd6, 0xe7, 0xc1, 0x4c, 0xd0, 0x53, 0x9c, 0x8b, 0x8e, 0x14, 0x43, 0x1e, 0xfb, 0xc3, 0x40, 0x4f, + 0xff, 0x89, 0x37, 0x0c, 0xf4, 0xb4, 0x17, 0x22, 0x0e, 0xb3, 0x2e, 0x8a, 0xeb, 0xf2, 0x59, 0xa0, + 0xa7, 0xf9, 0x01, 0xcc, 0x79, 0xfd, 0x93, 0x66, 0xda, 0x5d, 0x3e, 0xc0, 0xb8, 0xce, 0x87, 0x1d, + 0x1e, 0xa3, 0x21, 0xe8, 0x68, 0x05, 0xe6, 0x0f, 0xf4, 0xee, 0xf1, 0x68, 0xa8, 0xb9, 0xc4, 0x76, + 0xe8, 0xef, 0x8d, 0x5c, 0xdc, 0xab, 0xdc, 0x60, 0xc9, 0x70, 0x8e, 0xb3, 0xda, 0x9c, 0xb3, 0xef, + 0xe2, 0xde, 0x7a, 0x1e, 0xb2, 0x0e, 0x7f, 0xf3, 0xb4, 0xa9, 0xe1, 0xbe, 0x55, 0x3f, 0x83, 0xf2, + 0xe4, 0x3b, 0x46, 0xef, 0x41, 0xca, 0xb0, 0x0e, 0xed, 0xa9, 0x3c, 0x19, 0x8a, 0x32, 0x13, 0x78, + 0x9a, 0xa8, 0x48, 0xd5, 0x7f, 0x49, 0x00, 0x01, 0x23, 0xfe, 0xe3, 0x63, 0x28, 0x99, 0x24, 0xce, + 0x4b, 0x26, 0xc9, 0xc9, 0x64, 0xb2, 0x04, 0xb9, 0x89, 0x19, 0x4e, 0x52, 0xf5, 0xd7, 0xe8, 0xa1, + 0x9f, 0xd1, 0xf8, 0x95, 0x63, 0x29, 0xc6, 0xcb, 0x95, 0x48, 0x5a, 0xf3, 0x73, 0x4c, 0x26, 0x94, + 0x63, 0xaa, 0x2b, 0x90, 0xe1, 0x72, 0x08, 0x20, 0x53, 0xdb, 0xe8, 0xd4, 0x9f, 0x29, 0xf2, 0x0c, + 0x2a, 0x42, 0x6e, 0xab, 0xbe, 0x57, 0x6f, 0xef, 0x28, 0x9b, 0xb2, 0x44, 0x39, 0x5b, 0xb5, 0x7a, + 0x43, 0xd9, 0x94, 0x13, 0xd5, 0xdf, 0x4a, 0x90, 0xf3, 0x50, 0xe3, 0x8d, 0x40, 0xc2, 0xa5, 0xcb, + 0x5b, 0xbf, 0xa6, 0x8d, 0x67, 0x22, 0x1b, 0x47, 0x90, 0x72, 0x8d, 0x6f, 0xb0, 0x08, 0x08, 0x7b, + 0xa6, 0xf2, 0x3e, 0x56, 0xf8, 0x35, 0xd6, 0x5f, 0x57, 0xff, 0x92, 0x80, 0x62, 0x18, 0xab, 0xd3, + 0x43, 0x37, 0xe9, 0xc2, 0x43, 0xb7, 0xdc, 0x19, 0x43, 0xb7, 0xb0, 0xbf, 0x89, 0x33, 0xfc, 0x4d, + 0x86, 0xfc, 0xfd, 0x00, 0xe6, 0x7c, 0xc3, 0xbe, 0xe3, 0xfc, 0x66, 0x2e, 0x7b, 0x0c, 0x1f, 0xe4, + 0x8f, 0x60, 0x71, 0xd2, 0x15, 0x5f, 0x83, 0x97, 0x8a, 0x85, 0xb0, 0x3b, 0xbe, 0xd6, 0x1d, 0xda, + 0x5a, 0xf3, 0x13, 0xcc, 0x5a, 0x13, 0x16, 0x97, 0x24, 0x6d, 0xaa, 0x19, 0x71, 0x83, 0xd2, 0x22, + 0x6f, 0x28, 0x73, 0xde, 0x1b, 0xca, 0x4e, 0xbc, 0xa1, 0xea, 0x8f, 0x25, 0x80, 0xe0, 0x0c, 0x5f, + 0x7c, 0x3e, 0x73, 0x2b, 0x18, 0xae, 0x50, 0xa7, 0x24, 0x66, 0xd5, 0x9b, 0xa3, 0x4c, 0xbb, 0x74, + 0x09, 0xd0, 0x54, 0x7f, 0x96, 0x80, 0x6b, 0xb5, 0x11, 0xb1, 0xa7, 0x0a, 0x4f, 0xe8, 0x83, 0x8e, + 0x74, 0x85, 0x8f, 0x96, 0x89, 0x2b, 0x7c, 0xb4, 0x4c, 0x5e, 0xee, 0x83, 0x4e, 0xcc, 0x27, 0x99, + 0xd4, 0xe5, 0x3f, 0xc9, 0x84, 0xbf, 0x8c, 0xfc, 0x24, 0x01, 0xb3, 0x34, 0x38, 0xa1, 0x1a, 0xf8, + 0x3f, 0x3f, 0xbe, 0x5c, 0x5e, 0x17, 0x0d, 0x63, 0xf0, 0x65, 0x04, 0x2d, 0x80, 0xbc, 0xa9, 0x6c, + 0xd5, 0xf6, 0x1b, 0x1d, 0x6d, 0xab, 0xde, 0x50, 0x3a, 0x3f, 0x6c, 0xd1, 0x64, 0x98, 0x85, 0xe4, + 0x6e, 0xeb, 0x91, 0x2c, 0xd1, 0x87, 0xe6, 0xf6, 0xb6, 0x9c, 0xe0, 0x94, 0x35, 0x39, 0xb9, 0xbc, + 0x07, 0xd7, 0x62, 0x3f, 0x07, 0xa0, 0x3b, 0x70, 0xcb, 0xb3, 0xd4, 0x56, 0xb6, 0x77, 0x95, 0xbd, + 0x8e, 0xb2, 0xc9, 0x6c, 0x6a, 0x2d, 0xb5, 0xd9, 0x69, 0x6e, 0x34, 0x1b, 0xf2, 0x0c, 0x92, 0xa1, + 0xb8, 0xd3, 0x68, 0x07, 0x14, 0x69, 0xf9, 0x41, 0xe4, 0x73, 0x84, 0x18, 0x4a, 0xe6, 0x21, 0x5d, + 0xdf, 0xdb, 0x54, 0xbe, 0x92, 0x67, 0x50, 0x09, 0xf2, 0x9d, 0xfa, 0xae, 0xd2, 0xee, 0xd4, 0x76, + 0x5b, 0xb2, 0xb4, 0x7c, 0x08, 0xb3, 0x91, 0x89, 0x26, 0x5a, 0x04, 0x54, 0xdf, 0xad, 0x6d, 0x2b, + 0x5a, 0x7b, 0x7f, 0x6b, 0xab, 0xfe, 0x95, 0xe6, 0x69, 0x2e, 0xc1, 0xe2, 0x04, 0x3d, 0x64, 0x06, + 0xdd, 0x82, 0x9b, 0x13, 0xbc, 0xbd, 0xe6, 0x9e, 0xa2, 0x35, 0x9f, 0x29, 0xea, 0x73, 0xb5, 0xde, + 0x51, 0xe4, 0xc4, 0xf2, 0x27, 0x5e, 0x99, 0xf4, 0x77, 0x18, 0x8a, 0x55, 0x68, 0x4b, 0x39, 0x48, + 0xa9, 0x1d, 0x66, 0x32, 0x0b, 0xc9, 0xb6, 0xda, 0x91, 0x13, 0xcb, 0xfb, 0x50, 0x08, 0xfd, 0xdb, + 0x0c, 0x21, 0x28, 0x7b, 0x7a, 0xbb, 0xf5, 0xaf, 0xea, 0x7b, 0xdb, 0xf2, 0x0c, 0x75, 0x79, 0x73, + 0xbf, 0xd6, 0xd0, 0x36, 0x76, 0x6a, 0x7b, 0x7b, 0x4a, 0x43, 0xab, 0x6d, 0x2b, 0x7b, 0x1d, 0x59, + 0xa2, 0x2e, 0x4f, 0xd2, 0x1b, 0x1d, 0x45, 0xdd, 0xab, 0x31, 0x8f, 0xfe, 0x2c, 0xc1, 0xb5, 0xd8, + 0x03, 0xcc, 0xc2, 0xfa, 0xf0, 0xf1, 0x23, 0xed, 0xe3, 0x87, 0xab, 0x2d, 0x6d, 0x6d, 0x55, 0x04, + 0xda, 0xa7, 0x3c, 0x5e, 0x95, 0x25, 0x34, 0x07, 0x25, 0x46, 0xf9, 0xce, 0xea, 0x13, 0x2e, 0x94, + 0x88, 0x90, 0x1e, 0xaf, 0xca, 0x49, 0x74, 0x03, 0xae, 0xb5, 0x9a, 0x6a, 0x47, 0xad, 0xd5, 0x3b, + 0xda, 0x84, 0xc9, 0xd4, 0x19, 0xac, 0xc7, 0xab, 0x72, 0x9a, 0x7a, 0x3d, 0xc9, 0xf2, 0x7f, 0x24, + 0x73, 0x16, 0xef, 0xf1, 0xaa, 0x9c, 0x5d, 0xfe, 0xa5, 0x04, 0xc5, 0x70, 0x43, 0x82, 0xe6, 0x61, + 0x56, 0xd9, 0x56, 0x95, 0x76, 0x5b, 0x6b, 0x77, 0x6a, 0x6a, 0x87, 0xc7, 0x6a, 0x0e, 0x4a, 0x82, + 0x28, 0xaa, 0xb5, 0x14, 0x22, 0x29, 0x7b, 0x9b, 0x54, 0x2a, 0x11, 0x52, 0xdd, 0x68, 0xee, 0xb6, + 0x1a, 0x4a, 0x47, 0x91, 0x93, 0x21, 0x39, 0x51, 0xce, 0x53, 0xf4, 0x6d, 0x78, 0xd6, 0xd6, 0x9b, + 0x6a, 0x47, 0xd9, 0x94, 0xd3, 0xa8, 0x02, 0x0b, 0x82, 0xd6, 0xa8, 0xef, 0xd6, 0x3b, 0x9a, 0xaa, + 0xd4, 0x36, 0xe8, 0x45, 0x20, 0xb3, 0xfc, 0x05, 0xc8, 0xd1, 0x46, 0x8b, 0xee, 0xc8, 0x73, 0xb2, + 0xb9, 0xaf, 0x6e, 0x28, 0x1a, 0x3d, 0x35, 0xda, 0x73, 0x65, 0x9d, 0x43, 0x2e, 0x86, 0xd7, 0xde, + 0xfc, 0x52, 0x96, 0x1e, 0xfe, 0x3c, 0x0d, 0x19, 0x91, 0x8a, 0x3a, 0x50, 0x61, 0xff, 0xa1, 0x8a, + 0x69, 0x57, 0xd0, 0x45, 0x9a, 0x99, 0xa5, 0xb8, 0x66, 0x16, 0x7d, 0x9f, 0x42, 0x56, 0x77, 0x88, + 0xdf, 0xc1, 0xa0, 0xb3, 0xbb, 0x9a, 0x78, 0x0b, 0x2d, 0x58, 0x64, 0x16, 0xa6, 0x6b, 0xca, 0xcb, + 0x1b, 0x9d, 0x78, 0x8b, 0xcf, 0xe0, 0x06, 0xb3, 0x18, 0xd7, 0xd3, 0xa0, 0x0b, 0xb5, 0x3c, 0xf1, + 0x76, 0x37, 0x41, 0x0e, 0xec, 0x0a, 0x73, 0xe7, 0xb5, 0x3e, 0xf1, 0x56, 0x6a, 0x50, 0x0c, 0x8f, + 0x5d, 0x50, 0x50, 0x6f, 0x62, 0xa6, 0x31, 0x2f, 0x31, 0xc1, 0xb3, 0xc5, 0x94, 0x89, 0x89, 0x19, + 0x4c, 0xbc, 0x09, 0x05, 0x20, 0x18, 0x5f, 0xa0, 0xa0, 0x6a, 0x4e, 0x8d, 0x4e, 0x96, 0x6e, 0xc6, + 0xf2, 0xc4, 0xbc, 0xe3, 0x33, 0x7a, 0x31, 0xf7, 0x86, 0x18, 0x28, 0x7c, 0x41, 0x8e, 0x4c, 0x36, + 0x62, 0xbd, 0x58, 0xdf, 0xfa, 0xd1, 0x9d, 0xbe, 0x41, 0x8e, 0x46, 0x07, 0x2b, 0x5d, 0x7b, 0xf0, + 0x40, 0x08, 0x3c, 0xf0, 0x46, 0x90, 0x1e, 0xe1, 0x37, 0x89, 0x52, 0xc3, 0x38, 0xc1, 0x5f, 0xf2, + 0x81, 0x33, 0xb1, 0xff, 0x9e, 0x28, 0x8b, 0xf5, 0xd3, 0xa7, 0x8c, 0x70, 0x90, 0x61, 0x2a, 0x6b, + 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x3d, 0x14, 0x42, 0x4f, 0x2c, 0x00, 0x00, } From d61b87b0dfc7685d076653489729d30de28e3206 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Wed, 12 Nov 2025 13:36:25 -0800 Subject: [PATCH 6/8] redact token --- protobufs/rpc/egress.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/protobufs/rpc/egress.proto b/protobufs/rpc/egress.proto index 934e6892a..18987f89d 100644 --- a/protobufs/rpc/egress.proto +++ b/protobufs/rpc/egress.proto @@ -19,6 +19,7 @@ package rpc; option go_package = "github.com/livekit/protocol/rpc"; import "options.proto"; +import "logger/options.proto"; import "livekit_egress.proto"; service EgressInternal { @@ -56,7 +57,7 @@ message StartEgressRequest { // connection info string room_id = 3; - string token = 8; + string token = 8 [(logger.redact) = true]; string ws_url = 9; // cloud only From ffed47861be9a69ecffc4f0ec8937445c1845976 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Wed, 12 Nov 2025 13:37:51 -0800 Subject: [PATCH 7/8] Create tall-dogs-notice.md --- .changeset/tall-dogs-notice.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tall-dogs-notice.md diff --git a/.changeset/tall-dogs-notice.md b/.changeset/tall-dogs-notice.md new file mode 100644 index 000000000..f2fca337b --- /dev/null +++ b/.changeset/tall-dogs-notice.md @@ -0,0 +1,5 @@ +--- +"@livekit/protocol": patch +--- + +Add redacted field options to egress fields From 8a286d3feec88bf15ceb25a6eadc81440ea1d54a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 21:39:12 +0000 Subject: [PATCH 8/8] generated protobuf --- rpc/egress.pb.go | 7 +++-- rpc/egress.psrpc.go | 71 +++++++++++++++++++++++---------------------- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index 10517255b..8483fa6a3 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -22,6 +22,7 @@ package rpc import ( livekit "github.com/livekit/protocol/livekit" + _ "github.com/livekit/protocol/livekit/logger" _ "github.com/livekit/psrpc/protoc-gen-psrpc/options" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -304,7 +305,7 @@ var File_rpc_egress_proto protoreflect.FileDescriptor const file_rpc_egress_proto_rawDesc = "" + "\n" + - "\x10rpc/egress.proto\x12\x03rpc\x1a\roptions.proto\x1a\x14livekit_egress.proto\"\xa3\x04\n" + + "\x10rpc/egress.proto\x12\x03rpc\x1a\roptions.proto\x1a\x14logger/options.proto\x1a\x14livekit_egress.proto\"\xa9\x04\n" + "\x12StartEgressRequest\x12\x1b\n" + "\tegress_id\x18\x01 \x01(\tR\begressId\x12L\n" + "\x0eroom_composite\x18\x05 \x01(\v2#.livekit.RoomCompositeEgressRequestH\x00R\rroomComposite\x12-\n" + @@ -312,8 +313,8 @@ const file_rpc_egress_proto_rawDesc = "" + "\vparticipant\x18\r \x01(\v2!.livekit.ParticipantEgressRequestH\x00R\vparticipant\x12O\n" + "\x0ftrack_composite\x18\x06 \x01(\v2$.livekit.TrackCompositeEgressRequestH\x00R\x0etrackComposite\x123\n" + "\x05track\x18\a \x01(\v2\x1b.livekit.TrackEgressRequestH\x00R\x05track\x12\x17\n" + - "\aroom_id\x18\x03 \x01(\tR\x06roomId\x12\x14\n" + - "\x05token\x18\b \x01(\tR\x05token\x12\x15\n" + + "\aroom_id\x18\x03 \x01(\tR\x06roomId\x12\x1a\n" + + "\x05token\x18\b \x01(\tB\x04\x88\xb5\x18\x01R\x05token\x12\x15\n" + "\x06ws_url\x18\t \x01(\tR\x05wsUrl\x120\n" + "\x14cloud_backup_enabled\x18\n" + " \x01(\bR\x12cloudBackupEnabled\x12#\n" + diff --git a/rpc/egress.psrpc.go b/rpc/egress.psrpc.go index 907980c8e..746d573de 100644 --- a/rpc/egress.psrpc.go +++ b/rpc/egress.psrpc.go @@ -312,39 +312,40 @@ func (UnimplementedEgressHandlerServer) StopEgress(context.Context, *livekit4.St } var psrpcFileDescriptor2 = []byte{ - // 544 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xd1, 0x4e, 0xdb, 0x3e, - 0x14, 0xc6, 0xff, 0xa6, 0x7f, 0x02, 0x39, 0xa5, 0x5d, 0xe5, 0x31, 0x61, 0x0a, 0x68, 0xa5, 0xec, - 0x22, 0x37, 0x4b, 0x11, 0x5c, 0xed, 0x6e, 0x03, 0x55, 0xa3, 0x12, 0xd2, 0xa6, 0x74, 0x68, 0xd2, - 0x76, 0x11, 0x25, 0x8e, 0xc7, 0xac, 0x26, 0xb1, 0x67, 0x3b, 0xf4, 0x19, 0x78, 0x8c, 0x69, 0x6f, - 0xc0, 0xc5, 0x9e, 0x6f, 0xaa, 0xd3, 0x86, 0xb4, 0xa8, 0xd3, 0x2e, 0xfd, 0x7d, 0xe7, 0xfb, 0xe5, - 0x9c, 0xa3, 0x13, 0xe8, 0x28, 0x49, 0x07, 0xec, 0x56, 0x31, 0xad, 0x7d, 0xa9, 0x84, 0x11, 0xb8, - 0xa1, 0x24, 0xed, 0xb6, 0x84, 0x34, 0x5c, 0xe4, 0x73, 0xad, 0xbb, 0x9b, 0xf2, 0x3b, 0x36, 0xe1, - 0x26, 0xac, 0x57, 0xf6, 0x7f, 0xfd, 0x0f, 0x78, 0x6c, 0x22, 0x65, 0x86, 0x56, 0x0d, 0xd8, 0x8f, - 0x82, 0x69, 0x83, 0x0f, 0xc0, 0x2d, 0xcb, 0x42, 0x9e, 0x10, 0xd4, 0x43, 0x9e, 0x1b, 0x6c, 0x97, - 0xc2, 0x28, 0xc1, 0xd7, 0xd0, 0x56, 0x42, 0x64, 0x21, 0x15, 0x99, 0x14, 0x9a, 0x1b, 0x46, 0x36, - 0x7b, 0xc8, 0x6b, 0x9e, 0x9d, 0xf8, 0xf3, 0x4f, 0xf8, 0x81, 0x10, 0xd9, 0xe5, 0xc2, 0x5d, 0x22, - 0x5f, 0xfd, 0x17, 0xb4, 0x54, 0xdd, 0xc5, 0xaf, 0xa1, 0x31, 0x65, 0x31, 0x69, 0x5a, 0xc4, 0x7e, - 0x85, 0xf8, 0xcc, 0xe2, 0xd5, 0xe0, 0xac, 0x0e, 0x0f, 0xa1, 0x29, 0x23, 0x65, 0x38, 0xe5, 0x32, - 0xca, 0x0d, 0x69, 0xd9, 0xd8, 0x71, 0x15, 0xfb, 0xf8, 0xe8, 0xad, 0xc6, 0xeb, 0x39, 0xfc, 0x01, - 0x9e, 0x19, 0x15, 0xd1, 0x49, 0x6d, 0x08, 0xc7, 0xa2, 0x5e, 0x55, 0xa8, 0x4f, 0x33, 0x7f, 0xed, - 0x14, 0x6d, 0xb3, 0x64, 0xe3, 0x73, 0xd8, 0xb4, 0x0a, 0xd9, 0xb2, 0x98, 0x83, 0x65, 0xcc, 0x6a, - 0xba, 0xac, 0xc5, 0x7b, 0xb0, 0x65, 0x37, 0xc9, 0x13, 0xd2, 0xb0, 0x4b, 0x76, 0x66, 0xcf, 0x51, - 0x82, 0x77, 0x61, 0xd3, 0x88, 0x09, 0xcb, 0xc9, 0xb6, 0x95, 0xcb, 0x07, 0x7e, 0x01, 0xce, 0x54, - 0x87, 0x85, 0x4a, 0x89, 0x5b, 0xca, 0x53, 0x7d, 0xa3, 0x52, 0x7c, 0x0a, 0xbb, 0x34, 0x15, 0x45, - 0x12, 0xc6, 0x11, 0x9d, 0x14, 0x32, 0x64, 0x79, 0x14, 0xa7, 0x2c, 0x21, 0xd0, 0x43, 0xde, 0x76, - 0x80, 0xad, 0x77, 0x61, 0xad, 0x61, 0xe9, 0xe0, 0x13, 0x68, 0x31, 0x6d, 0x78, 0x16, 0x19, 0x96, - 0x84, 0x54, 0x16, 0xa4, 0xdd, 0x43, 0x1e, 0x0a, 0x76, 0x2a, 0xf1, 0x52, 0x16, 0x17, 0x2e, 0x6c, - 0xa9, 0xb2, 0xe1, 0xfe, 0x3e, 0xec, 0x5d, 0x73, 0x6d, 0xde, 0x51, 0xc3, 0xef, 0x96, 0x37, 0xd1, - 0x7f, 0x03, 0xe4, 0xa9, 0xa5, 0xa5, 0xc8, 0x35, 0xc3, 0x47, 0x00, 0xd5, 0x15, 0x69, 0x82, 0x7a, - 0x0d, 0xcf, 0x0d, 0xdc, 0xc5, 0x19, 0xe9, 0xb3, 0xdf, 0x08, 0xda, 0x65, 0x62, 0x94, 0x1b, 0xa6, - 0xf2, 0x28, 0xc5, 0xef, 0xa1, 0x59, 0xbb, 0x46, 0xbc, 0xe7, 0x2b, 0x49, 0xfd, 0xa7, 0xf7, 0xd9, - 0x7d, 0x5e, 0xad, 0x77, 0x01, 0xf8, 0x26, 0xfa, 0xf0, 0x70, 0x8f, 0x9c, 0x0e, 0x7a, 0x8b, 0x4e, - 0x11, 0xfe, 0x0a, 0x9d, 0xd5, 0xb6, 0xf0, 0xa1, 0xa5, 0xad, 0x19, 0xa4, 0x7b, 0xb4, 0xc6, 0x2d, - 0x67, 0xa9, 0xe0, 0x1b, 0x1e, 0x3a, 0xfb, 0x89, 0xa0, 0x55, 0xda, 0x57, 0x51, 0x9e, 0xa4, 0x4c, - 0xe1, 0x11, 0xec, 0xdc, 0xc8, 0x24, 0x32, 0x6c, 0x6c, 0x14, 0x8b, 0x32, 0x7c, 0x58, 0xf5, 0x57, - 0x97, 0xff, 0xda, 0xbd, 0xf3, 0x70, 0x8f, 0x36, 0x3a, 0x08, 0x0f, 0x01, 0xc6, 0x46, 0xc8, 0x79, - 0xcf, 0xdd, 0xaa, 0xf4, 0x51, 0xfc, 0x17, 0xcc, 0xc5, 0xf1, 0x97, 0x97, 0xb7, 0xdc, 0x7c, 0x2f, - 0x62, 0x9f, 0x8a, 0x6c, 0x30, 0x2f, 0x1c, 0xd8, 0x9f, 0x9e, 0x8a, 0x74, 0xa0, 0x24, 0x8d, 0x1d, - 0xfb, 0x3a, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xc8, 0xf7, 0xcf, 0x40, 0x04, 0x00, 0x00, + // 557 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x41, 0x6f, 0xd3, 0x30, + 0x14, 0xc7, 0xf1, 0xba, 0x76, 0xeb, 0xeb, 0x5a, 0x2a, 0x33, 0x34, 0x2f, 0xdb, 0x44, 0xd7, 0x71, + 0xc8, 0x85, 0x74, 0xda, 0x4e, 0xdc, 0xa0, 0x53, 0xc5, 0x2a, 0x4d, 0x02, 0x65, 0x4c, 0x48, 0x70, + 0x88, 0x12, 0xc7, 0x14, 0xab, 0x49, 0x6c, 0x6c, 0x67, 0xfb, 0x0a, 0xec, 0x63, 0x70, 0xe4, 0x3a, + 0x09, 0x3e, 0x1f, 0xaa, 0xd3, 0x65, 0x69, 0xa7, 0x22, 0x8e, 0xfe, 0xff, 0xdf, 0xff, 0x97, 0xf7, + 0x9e, 0x5e, 0xa0, 0xab, 0x24, 0x1d, 0xb0, 0x89, 0x62, 0x5a, 0x7b, 0x52, 0x09, 0x23, 0x70, 0x4d, + 0x49, 0xea, 0xb4, 0x85, 0x34, 0x5c, 0x64, 0x73, 0xcd, 0xd9, 0x4e, 0xc4, 0x64, 0xc2, 0xd4, 0x60, + 0x59, 0xe5, 0xd7, 0x6c, 0xca, 0x4d, 0x50, 0xcd, 0xf7, 0x7f, 0xad, 0x03, 0xbe, 0x34, 0xa1, 0x32, + 0x23, 0xab, 0xfa, 0xec, 0x7b, 0xce, 0xb4, 0xc1, 0x7b, 0xd0, 0x2c, 0xca, 0x02, 0x1e, 0x13, 0xd4, + 0x43, 0x6e, 0xd3, 0xdf, 0x2c, 0x84, 0x71, 0x8c, 0x2f, 0xa0, 0xa3, 0x84, 0x48, 0x03, 0x2a, 0x52, + 0x29, 0x34, 0x37, 0x8c, 0xd4, 0x7b, 0xc8, 0x6d, 0x9d, 0x1c, 0x79, 0xf3, 0x4f, 0x78, 0xbe, 0x10, + 0xe9, 0xd9, 0xbd, 0xbb, 0x40, 0x3e, 0x7f, 0xe2, 0xb7, 0x55, 0xd5, 0xc5, 0xaf, 0xa0, 0x76, 0xc3, + 0x22, 0xd2, 0xb2, 0x88, 0xdd, 0x12, 0xf1, 0x89, 0x45, 0xcb, 0xc1, 0x59, 0x1d, 0x1e, 0x41, 0x4b, + 0x86, 0xca, 0x70, 0xca, 0x65, 0x98, 0x19, 0xd2, 0xb6, 0xb1, 0xc3, 0x32, 0xf6, 0xe1, 0xc1, 0x5b, + 0x8e, 0x57, 0x73, 0xf8, 0x3d, 0x3c, 0x35, 0x2a, 0xa4, 0xd3, 0xca, 0x10, 0x0d, 0x8b, 0x7a, 0x59, + 0xa2, 0x3e, 0xce, 0xfc, 0x95, 0x53, 0x74, 0xcc, 0x82, 0x8d, 0x4f, 0xa1, 0x6e, 0x15, 0xb2, 0x61, + 0x31, 0x7b, 0x8b, 0x98, 0xe5, 0x74, 0x51, 0x8b, 0x77, 0x60, 0xc3, 0x6e, 0x92, 0xc7, 0xa4, 0x66, + 0x97, 0xdc, 0x98, 0x3d, 0xc7, 0x31, 0x76, 0xa0, 0x6e, 0xc4, 0x94, 0x65, 0x64, 0x73, 0x26, 0x0f, + 0xd7, 0x7f, 0xfc, 0x26, 0xc8, 0x2f, 0x24, 0xfc, 0x1c, 0x1a, 0x37, 0x3a, 0xc8, 0x55, 0x42, 0x9a, + 0x36, 0x53, 0xbf, 0xd1, 0x57, 0x2a, 0xc1, 0xc7, 0xb0, 0x4d, 0x13, 0x91, 0xc7, 0x41, 0x14, 0xd2, + 0x69, 0x2e, 0x03, 0x96, 0x85, 0x51, 0xc2, 0x62, 0x02, 0x3d, 0xe4, 0x6e, 0xfa, 0xd8, 0x7a, 0x43, + 0x6b, 0x8d, 0x0a, 0x07, 0x1f, 0x41, 0x9b, 0x69, 0xc3, 0xd3, 0xd0, 0xb0, 0x38, 0xa0, 0x32, 0x27, + 0x9d, 0x1e, 0x72, 0x91, 0xbf, 0x55, 0x8a, 0x67, 0x32, 0x1f, 0x36, 0x61, 0x43, 0x15, 0x6d, 0xf7, + 0x77, 0x61, 0xe7, 0x82, 0x6b, 0xf3, 0x96, 0x1a, 0x7e, 0xbd, 0xb8, 0x8f, 0xfe, 0x6b, 0x20, 0x8f, + 0x2d, 0x2d, 0x45, 0xa6, 0x19, 0x3e, 0x00, 0x28, 0x6f, 0x49, 0x13, 0xd4, 0xab, 0xb9, 0x4d, 0xbf, + 0x79, 0x7f, 0x4c, 0xfa, 0xe4, 0x0f, 0x82, 0x4e, 0x91, 0x18, 0x67, 0x86, 0xa9, 0x2c, 0x4c, 0xf0, + 0x3b, 0x68, 0x55, 0x6e, 0x12, 0xef, 0x78, 0x4a, 0x52, 0xef, 0xf1, 0x95, 0x3a, 0xcf, 0xca, 0x25, + 0xdf, 0x03, 0xbe, 0x8a, 0x3e, 0xdc, 0xdd, 0xa2, 0x46, 0x17, 0xbd, 0x41, 0xc7, 0x08, 0x7f, 0x81, + 0xee, 0x72, 0x5b, 0x78, 0xdf, 0xd2, 0x56, 0x0c, 0xe2, 0x1c, 0xac, 0x70, 0x8b, 0x59, 0x4a, 0xf8, + 0x9a, 0x8b, 0x4e, 0x7e, 0x22, 0x68, 0x17, 0xf6, 0x79, 0x98, 0xc5, 0x09, 0x53, 0x78, 0x0c, 0x5b, + 0x57, 0x32, 0x0e, 0x0d, 0xbb, 0x34, 0x8a, 0x85, 0x29, 0xde, 0x2f, 0xfb, 0xab, 0xca, 0xff, 0xec, + 0xbe, 0x71, 0x77, 0x8b, 0xd6, 0xba, 0x08, 0x8f, 0x00, 0x2e, 0x8d, 0x90, 0xf3, 0x9e, 0x9d, 0xb2, + 0xf4, 0x41, 0xfc, 0x1f, 0xcc, 0xf0, 0xf0, 0xf3, 0x8b, 0x09, 0x37, 0xdf, 0xf2, 0xc8, 0xa3, 0x22, + 0x1d, 0xcc, 0x0b, 0x07, 0xf6, 0xd7, 0xa7, 0x22, 0x19, 0x28, 0x49, 0xa3, 0x86, 0x7d, 0x9d, 0xfe, + 0x0d, 0x00, 0x00, 0xff, 0xff, 0x99, 0x7e, 0x7d, 0x79, 0x5c, 0x04, 0x00, 0x00, }