@basmilius/apple-airplay 0.0.64 → 0.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/test.js.map DELETED
@@ -1,96 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/test.ts", "../src/protocol/protocol.ts", "../src/protocol/utils.ts", "../src/protocol/dataStream.ts", "../src/proto/AudioFadeMessage_pb.ts", "../src/proto/ProtocolMessage_pb.ts", "../src/proto/PlayerPath_pb.ts", "../src/proto/Origin_pb.ts", "../src/proto/DeviceInfoMessage_pb.ts", "../src/proto/Common_pb.ts", "../src/proto/NowPlayingClient_pb.ts", "../src/proto/NowPlayingPlayer_pb.ts", "../src/proto/AudioFadeResponseMessage_pb.ts", "../src/proto/AudioFormatSettingsMessage_pb.ts", "../src/proto/ClientUpdatesConfigMessage_pb.ts", "../src/proto/CommandInfo_pb.ts", "../src/proto/CommandOptions_pb.ts", "../src/proto/ConfigureConnectionMessage_pb.ts", "../src/proto/ContentItem_pb.ts", "../src/proto/ContentItemMetadata_pb.ts", "../src/proto/LanguageOption_pb.ts", "../src/proto/CryptoPairingMessage_pb.ts", "../src/proto/GenericMessage_pb.ts", "../src/proto/GetKeyboardSessionMessage_pb.ts", "../src/proto/GetRemoteTextInputSessionMessage_pb.ts", "../src/proto/GetVolumeMessage_pb.ts", "../src/proto/GetVolumeResultMessage_pb.ts", "../src/proto/KeyboardMessage_pb.ts", "../src/proto/ModifyOutputContextRequestMessage_pb.ts", "../src/proto/NotificationMessage_pb.ts", "../src/proto/NowPlayingInfo_pb.ts", "../src/proto/OriginClientPropertiesMessage_pb.ts", "../src/proto/PlaybackQueue_pb.ts", "../src/proto/PlaybackQueueContext_pb.ts", "../src/proto/PlaybackQueueCapabilities_pb.ts", "../src/proto/PlaybackQueueRequestMessage_pb.ts", "../src/proto/PlayerClientPropertiesMessage_pb.ts", "../src/proto/RegisterForGameControllerEventsMessage_pb.ts", "../src/proto/RegisterHIDDeviceMessage_pb.ts", "../src/proto/VirtualTouchDeviceDescriptorMessage_pb.ts", "../src/proto/RegisterHIDDeviceResultMessage_pb.ts", "../src/proto/RegisterVoiceInputDeviceMessage_pb.ts", "../src/proto/VoiceInputDeviceDescriptorMessage_pb.ts", "../src/proto/RegisterVoiceInputDeviceResponseMessage_pb.ts", "../src/proto/RemoteTextInputMessage_pb.ts", "../src/proto/RemoveClientMessage_pb.ts", "../src/proto/RemoveEndpointsMessage_pb.ts", "../src/proto/RemoveOutputDevicesMessage_pb.ts", "../src/proto/RemovePlayerMessage_pb.ts", "../src/proto/SendButtonEventMessage_pb.ts", "../src/proto/SendCommandMessage_pb.ts", "../src/proto/SendCommandResultMessage_pb.ts", "../src/proto/SendHIDEventMessage_pb.ts", "../src/proto/SendPackedVirtualTouchEventMessage_pb.ts", "../src/proto/SendVoiceInputMessage_pb.ts", "../src/proto/SetArtworkMessage_pb.ts", "../src/proto/SetConnectionStateMessage_pb.ts", "../src/proto/SetDefaultSupportedCommandsMessage_pb.ts", "../src/proto/SupportedCommands_pb.ts", "../src/proto/SetDiscoveryModeMessage_pb.ts", "../src/proto/SetHiliteModeMessage_pb.ts", "../src/proto/SetNowPlayingClientMessage_pb.ts", "../src/proto/SetNowPlayingPlayerMessage_pb.ts", "../src/proto/SetRecordingStateMessage_pb.ts", "../src/proto/SetStateMessage_pb.ts", "../src/proto/SetVolumeMessage_pb.ts", "../src/proto/TextInputMessage_pb.ts", "../src/proto/TransactionKey_pb.ts", "../src/proto/TransactionMessage_pb.ts", "../src/proto/TransactionPackets_pb.ts", "../src/proto/TransactionPacket_pb.ts", "../src/proto/UpdateClientMessage_pb.ts", "../src/proto/UpdateContentItemArtworkMessage_pb.ts", "../src/proto/UpdateContentItemMessage_pb.ts", "../src/proto/UpdateEndPointsMessage_pb.ts", "../src/proto/UpdateOutputDeviceMessage_pb.ts", "../src/proto/UpdatePlayerPath_pb.ts", "../src/proto/VolumeControlAvailabilityMessage_pb.ts", "../src/proto/VolumeControlCapabilitiesDidChangeMessage_pb.ts", "../src/proto/VolumeDidChangeMessage_pb.ts", "../src/proto/WakeDeviceMessage_pb.ts", "../src/protocol/dataStreamMessages.ts", "../src/protocol/stream.ts", "../src/protocol/eventStream.ts", "../src/protocol/pairing.ts", "../src/protocol/rtsp.ts", "../src/protocol/verify.ts"],
4
- "sourcesContent": [
5
- "import { Discovery, prompt, reporter, TimingServer } from '@basmilius/apple-common';\nimport { create } from '@bufbuild/protobuf';\nimport { AirPlay } from './protocol';\nimport * as Proto from './proto';\n\nreporter.all();\n\nasync function homepod(): Promise<void> {\n const discovery = Discovery.airplay();\n const discoveryResult = await discovery.findUntil('Woonkamer HomePod._airplay._tcp.local');\n const protocol = new AirPlay(discoveryResult);\n\n await protocol.connect();\n\n await protocol.pairing.start();\n const keys = await protocol.pairing.transient();\n\n await protocol.rtsp.enableEncryption(\n keys.accessoryToControllerKey,\n keys.controllerToAccessoryKey\n );\n\n await protocol.setupTimingServer(new TimingServer());\n await protocol.setupEventStream(keys.pairingId, keys.sharedSecret);\n await protocol.setupDataStream(keys.sharedSecret);\n\n setInterval(() => protocol.feedback(), 2000);\n\n // await protocol.dataStream.exchange(protocol.dataStream.messages.configureConnection(``));\n await protocol.dataStream.exchange(protocol.dataStream.messages.deviceInfo(keys.pairingId));\n\n protocol.dataStream.addListener('deviceInfo', async () => {\n await protocol.dataStream.exchange(protocol.dataStream.messages.setConnectionState());\n await protocol.dataStream.exchange(protocol.dataStream.messages.clientUpdatesConfig());\n\n // await waitFor(1000);\n //\n // const response = await protocol.rtsp.post('/play', Buffer.from(serializeBinaryPlist({\n // 'Content-Location': 'https://bmcdn.nl/doorbell.ogg',\n // 'Start-Position-Seconds': 0,\n // 'uuid': uuid().toUpperCase(),\n // 'streamType': 1,\n // 'mediaType': 'file',\n // 'mightSupportStorePastisKeyRequests': true,\n // 'playbackRestrictions': 0,\n // 'secureConnectionMs': 22,\n // 'volume': 0.5,\n // 'infoMs': 122,\n // 'connectMs': 18,\n // 'authMs': 0,\n // 'bonjourMs': 0,\n // 'referenceRestrictions': 3,\n // 'SenderMACAddress': getMacAddress().toUpperCase(),\n // 'model': 'iPhone16,2',\n // 'postAuthMs': 0,\n // 'clientBundleID': 'com.basmilius.airplay',\n // 'clientProcName': 'com.basmilius.airplay',\n // 'osBuildVersion': '23C5027f',\n // 'rate': 1.0\n // })), {\n // 'Content-Type': 'application/x-apple-binary-plist',\n // 'X-Apple-Session-ID': protocol.sessionUUID,\n // 'X-Apple-Stream-ID': '1'\n // });\n //\n // console.log(response);\n });\n}\n\nasync function tv(): Promise<void> {\n const discovery = Discovery.airplay();\n const device = await discovery.findUntil('Woonkamer TV._airplay._tcp.local');\n const protocol = new AirPlay(device);\n\n await protocol.connect();\n\n const keys = await protocol.verify.start({\n accessoryIdentifier: '7EEEA518-06CC-486C-A8B8-4A07CDBE6267',\n accessoryLongTermPublicKey: Buffer.from('cfb3fb0e0eb494d9058d5051c94400b35251e3faad66542b9551a1496570628d', 'hex'),\n pairingId: Buffer.from('38393044453445352d463738442d344131332d393231392d434231433237304438323341', 'hex'),\n publicKey: Buffer.from('a3dfd6e3956006afd91204d68ddf9c26c7d9d77eee5506c69e7fe3af1288d0f4', 'hex'),\n secretKey: Buffer.from('6961e16b52f5f0be1b7723c9436356d498b4f9629f0227706a1465c5d18dbf0ba3dfd6e3956006afd91204d68ddf9c26c7d9d77eee5506c69e7fe3af1288d0f4', 'hex')\n });\n\n await protocol.rtsp.enableEncryption(\n keys.accessoryToControllerKey,\n keys.controllerToAccessoryKey\n );\n\n await protocol.setupTimingServer(new TimingServer());\n await protocol.setupEventStream(keys.pairingId, keys.sharedSecret);\n await protocol.setupDataStream(keys.sharedSecret);\n\n setInterval(() => protocol.feedback(), 2000);\n\n await protocol.dataStream.exchange(protocol.dataStream.messages.deviceInfo(keys.pairingId));\n\n protocol.dataStream.addListener('deviceInfo', async () => {\n await protocol.dataStream.exchange(protocol.dataStream.messages.setConnectionState());\n await protocol.dataStream.exchange(protocol.dataStream.messages.clientUpdatesConfig());\n // await protocol.dataStream.exchange(protocol.dataStream.messages.sendCommand(Proto.Command.Rewind15Seconds));\n\n // await waitFor(1000);\n\n // const options = create(Proto.CommandOptionsSchema, {\n // stationURL: 'https://bmcdn.nl/doorbell.ogg'\n // });\n\n // await protocol.dataStream.exchange(protocol.dataStream.messages.sendCommand(Proto.Command.Play, options));\n\n // await protocol.dataStream.exchange(protocol.dataStream.messages.sendButtonEvent(12, 0x40, true));\n // await protocol.dataStream.exchange(protocol.dataStream.messages.sendButtonEvent(12, 0x40, false));\n\n // await waitFor(1000);\n\n // const response = await protocol.rtsp.post('/play', Buffer.from(serializeBinaryPlist({\n // 'Content-Location': 'https://bmcdn.nl/doorbell.ogg',\n // 'Start-Position-Seconds': 0,\n // 'uuid': uuid().toUpperCase(),\n // 'streamType': 1,\n // 'mediaType': 'file',\n // 'mightSupportStorePastisKeyRequests': true,\n // 'playbackRestrictions': 0,\n // 'secureConnectionMs': 22,\n // 'volume': 0.5,\n // 'infoMs': 122,\n // 'connectMs': 18,\n // 'authMs': 0,\n // 'bonjourMs': 0,\n // 'referenceRestrictions': 3,\n // 'SenderMACAddress': getMacAddress().toUpperCase(),\n // 'model': 'iPhone16,2',\n // 'postAuthMs': 0,\n // 'clientBundleID': 'com.basmilius.airplay',\n // 'clientProcName': 'com.basmilius.airplay',\n // 'osBuildVersion': '23C5027f',\n // 'rate': 1.0\n // })), {\n // 'Content-Type': 'application/x-apple-binary-plist',\n // 'X-Apple-Session-ID': protocol.sessionUUID,\n // 'X-Apple-Stream-ID': '1'\n // });\n //\n // console.log(response);\n });\n}\n\nasync function tvPair(): Promise<void> {\n const discovery = Discovery.airplay();\n const device = await discovery.findUntil('Woonkamer TV._airplay._tcp.local');\n const protocol = new AirPlay(device);\n\n await protocol.connect();\n await protocol.pairing.start();\n\n const credentials = await protocol.pairing.pin(async () => await prompt('Enter PIN'));\n\n console.log({\n accessoryIdentifier: credentials.accessoryIdentifier,\n accessoryLongTermPublicKey: credentials.accessoryLongTermPublicKey.toString('hex'),\n pairingId: credentials.pairingId.toString('hex'),\n publicKey: credentials.publicKey.toString('hex'),\n secretKey: credentials.secretKey.toString('hex')\n });\n}\n\nconst what = process.argv[2] ?? null;\n\nswitch (what) {\n case 'homepod':\n await homepod();\n break;\n\n case 'tv':\n await tv();\n break;\n\n case 'tvPair':\n await tvPair();\n break;\n\n default:\n console.error(`Unknown test ${what}, please use specify either homepod, tv or tvPair.`);\n break;\n}\n",
6
- "import { type DiscoveryResult, getMacAddress, parseBinaryPlist, reporter, serializeBinaryPlist, TimingServer, uuid } from '@basmilius/apple-common';\nimport { randomInt64 } from './utils';\nimport DataStream from './dataStream';\nimport EventStream from './eventStream';\nimport Pairing from './pairing';\nimport RTSP from './rtsp';\nimport Verify from './verify';\n\nexport default class AirPlay {\n get device(): DiscoveryResult {\n return this.#device;\n }\n\n get dataStream(): DataStream | undefined {\n return this.#dataStream;\n }\n\n get eventStream(): EventStream | undefined {\n return this.#eventStream;\n }\n\n get pairing(): Pairing {\n return this.#pairing;\n }\n\n get rtsp(): RTSP {\n return this.#rtsp;\n }\n\n get sessionUUID(): string {\n return this.#sessionUUID;\n }\n\n get verify(): Verify {\n return this.#verify;\n }\n\n readonly #device: DiscoveryResult;\n readonly #pairing: Pairing;\n readonly #rtsp: RTSP;\n readonly #verify: Verify;\n readonly #sessionUUID: string;\n #dataStream?: DataStream;\n #eventStream?: EventStream;\n #timingServer?: TimingServer;\n\n constructor(device: DiscoveryResult) {\n this.#device = device;\n this.#rtsp = new RTSP(device.address, device.service.port);\n this.#pairing = new Pairing(this);\n this.#verify = new Verify(this);\n this.#sessionUUID = uuid();\n }\n\n async connect(): Promise<void> {\n await this.#rtsp.connect();\n }\n\n async disconnect(): Promise<void> {\n await this.#rtsp.disconnect();\n }\n\n async feedback(): Promise<void> {\n await this.#rtsp.post('/feedback');\n }\n\n async setupDataStream(sharedSecret: Buffer): Promise<void> {\n const seed = randomInt64();\n const request = serializeBinaryPlist({\n streams: [\n {\n controlType: 2,\n channelID: uuid().toUpperCase(),\n seed,\n clientUUID: uuid().toUpperCase(),\n type: 130,\n wantsDedicatedSocket: true,\n clientTypeUUID: '1910A70F-DBC0-4242-AF95-115DB30604E1'\n }\n ]\n });\n\n const response = await this.#rtsp.setup(`/${this.rtsp.sessionId}`, Buffer.from(request), {\n 'Content-Type': 'application/x-apple-binary-plist'\n });\n\n const plist = parseBinaryPlist(await response.arrayBuffer()) as any;\n const dataPort = plist.streams[0].dataPort & 0xFFFF;\n reporter.net(`Connecting to data stream on port ${dataPort}...`);\n\n this.#dataStream = new DataStream(this.#rtsp.address, dataPort);\n await this.#dataStream.setup(sharedSecret, seed);\n await this.#dataStream.connect();\n }\n\n async setupEventStream(pairingId: Buffer, sharedSecret: Buffer): Promise<void> {\n const body: Record<string, string | boolean | number> = {\n deviceID: pairingId.toString(),\n macAddress: getMacAddress().toUpperCase(),\n name: 'iPhone van Bas',\n model: 'iPhone16,2',\n osBuildVersion: '23C5027f',\n osName: 'iPhone OS',\n osVersion: '26.2',\n sourceVersion: '925.3.2',\n sessionUUID: this.#sessionUUID,\n sessionCorrelationUUID: uuid().toUpperCase(),\n timingProtocol: 'None',\n isRemoteControlOnly: true,\n statsCollectionEnabled: false,\n updateSessionRequest: false\n };\n\n if (this.#timingServer) {\n body.timingPort = this.#timingServer.port;\n body.timingProtocol = 'NTP';\n }\n\n const request = serializeBinaryPlist(body);\n const response = await this.#rtsp.setup(`/${this.rtsp.sessionId}`, Buffer.from(request), {\n 'Content-Type': 'application/x-apple-binary-plist'\n });\n\n if (response.status !== 200) {\n reporter.error('Cannot setup event stream', response.status, response.statusText, await response.text());\n\n throw new Error('Cannot setup event stream.');\n }\n\n const plist = parseBinaryPlist(await response.arrayBuffer()) as any;\n const eventPort = plist.eventPort & 0xFFFF;\n reporter.net(`Connecting to event stream on port ${eventPort}...`);\n\n this.#eventStream = new EventStream(this.#rtsp.address, eventPort);\n await this.#eventStream.setup(sharedSecret);\n await this.#eventStream.connect();\n\n await this.#rtsp.record(`/${this.rtsp.sessionId}`);\n }\n\n async setupTimingServer(timing: TimingServer): Promise<void> {\n this.#timingServer = timing;\n }\n}\n",
7
- "import { randomBytes } from 'node:crypto';\nimport type { RTSPMethod } from './types';\n\nexport function makeHttpHeader(method: RTSPMethod, path: string, headers: HeadersInit, cseq: number): string {\n const lines = [];\n lines.push(`${method} ${path} RTSP/1.0`);\n lines.push(`CSeq: ${cseq}`);\n lines.push('User-Agent: AirPlay/320.20');\n lines.push('X-Apple-ProtocolVersion: 1');\n lines.push('X-ProtocolVersion: 1');\n\n for (const [name, value] of Object.entries(headers)) {\n lines.push(`${name}: ${value}`);\n }\n\n lines.push('');\n lines.push('');\n\n return lines.join('\\r\\n');\n}\n\nexport function makeHttpRequest(buffer: Buffer): HttpRequest | null {\n const headerLength = buffer.indexOf('\\r\\n\\r\\n');\n const {headers, method, path} = parseRequestHeaders(buffer.subarray(0, headerLength));\n\n let contentLength = headers['Content-Length'] ? Number(headers['Content-Length']) : 0;\n\n if (isNaN(contentLength)) {\n contentLength = 0;\n }\n\n const requestLength = headerLength + 4 + contentLength;\n\n if (buffer.byteLength < requestLength) {\n return null;\n }\n\n const body = buffer.subarray(headerLength + 4, requestLength);\n\n return {\n headers,\n method,\n path,\n body,\n requestLength\n };\n}\n\nexport function makeHttpResponse(buffer: Buffer): HttpResponse | null {\n const headerLength = buffer.indexOf('\\r\\n\\r\\n');\n const {headers, status, statusText} = parseResponseHeaders(buffer.subarray(0, headerLength));\n\n let contentLength = headers['Content-Length'] ? Number(headers['Content-Length']) : 0;\n\n if (isNaN(contentLength)) {\n contentLength = 0;\n }\n\n const responseLength = headerLength + 4 + contentLength;\n\n // not enough data yet\n if (buffer.byteLength < responseLength) {\n return null;\n }\n\n const body = buffer.subarray(headerLength + 4, responseLength);\n const response = new Response(body, {\n status,\n statusText,\n headers\n });\n\n return {\n response,\n responseLength\n };\n}\n\nexport function randomInt32(): number {\n return randomBytes(4).readUInt32BE(0);\n}\n\nexport function randomInt64(): bigint {\n return randomBytes(8).readBigUint64LE(0);\n}\n\nfunction parseHeaders(lines: string[]): Record<string, string> {\n const headers: Record<string, string> = {};\n\n for (let i = 0; i < lines.length; i++) {\n const colon = lines[i].indexOf(':');\n\n if (colon <= 0) {\n continue;\n }\n\n const name = lines[i].substring(0, colon).trim();\n headers[name] = lines[i].substring(colon + 1).trim();\n }\n\n return headers;\n}\n\nfunction parseRequestHeaders(buffer: Buffer): HttpRequestHeader {\n const lines = buffer.toString('utf8').split('\\r\\n');\n\n const rawRequest = lines[0].match(/^(\\S+)\\s+(\\S+)\\s+RTSP\\/1\\.0$/);\n const method = rawRequest[1] as RTSPMethod;\n const path = rawRequest[2];\n const headers: Record<string, string> = parseHeaders(lines.slice(1));\n\n return {\n headers,\n method,\n path\n };\n}\n\nfunction parseResponseHeaders(buffer: Buffer): HttpResponseHeader {\n const lines = buffer.toString('utf8').split('\\r\\n');\n\n const rawStatus = lines[0].match(/(HTTP|RTSP)\\/[\\d.]+\\s+(\\d+)\\s+(.+)/);\n const status = Number(rawStatus[2]);\n const statusText = rawStatus[3];\n const headers: Record<string, string> = parseHeaders(lines.slice(1));\n\n return {\n headers,\n status,\n statusText\n };\n}\n\ntype HttpRequestHeader = {\n readonly headers: Record<string, string>;\n readonly method: RTSPMethod;\n readonly path: string;\n};\n\ntype HttpResponseHeader = {\n readonly headers: Record<string, string>;\n readonly status: number;\n readonly statusText: string;\n};\n\ntype HttpRequest = {\n readonly headers: Record<string, string>;\n readonly method: RTSPMethod;\n readonly path: string;\n readonly body: Buffer;\n readonly requestLength: number;\n};\n\ntype HttpResponse = {\n readonly response: Response;\n readonly responseLength: number;\n};\n",
8
- "import { decryptChacha20, encryptChacha20, hkdf, parseBinaryPlist, reporter, serializeBinaryPlist } from '@basmilius/apple-common';\nimport { fromBinary, getExtension, toBinary } from '@bufbuild/protobuf';\nimport * as Proto from '../proto';\nimport { randomInt32 } from './utils';\nimport AirPlayDataStreamMessages from './dataStreamMessages';\nimport AirPlayStream from './stream';\n\nconst DATA_HEADER_LENGTH = 32; // 4 + 12 + 4 + 8 + 4\n\ntype EventMap = {\n readonly deviceInfo: [Proto.DeviceInfoMessage];\n readonly originClientProperties: [Proto.OriginClientPropertiesMessage];\n readonly playerClientProperties: [Proto.PlayerClientPropertiesMessage];\n readonly sendCommandResult: [Proto.SendCommandResultMessage];\n readonly setArtwork: [Proto.SetArtworkMessage];\n readonly setDefaultSupportedCommands: [Proto.SetDefaultSupportedCommandsMessage];\n readonly setNowPlayingClient: [Proto.SetNowPlayingClientMessage];\n readonly setNowPlayingPlayer: [Proto.SetNowPlayingPlayerMessage];\n readonly setState: [Proto.SetStateMessage];\n readonly updateClient: [Proto.UpdateClientMessage];\n readonly updateContentItem: [Proto.UpdateContentItemMessage];\n readonly updateContentItemArtwork: [Proto.UpdateContentItemArtworkMessage];\n readonly updatePlayer: [Proto.UpdatePlayerMessage];\n readonly updateOutputDevice: [Proto.UpdateOutputDeviceMessage];\n readonly volumeControlAvailability: [Proto.VolumeControlAvailabilityMessage];\n readonly volumeControlCapabilitiesDidChange: [Proto.VolumeControlCapabilitiesDidChangeMessage];\n readonly volumeDidChange: [Proto.VolumeDidChangeMessage];\n};\n\nexport default class AirPlayDataStream extends AirPlayStream<EventMap> {\n get messages(): AirPlayDataStreamMessages {\n return this.#messages;\n }\n\n readonly #messages: AirPlayDataStreamMessages;\n #buffer: Buffer = Buffer.alloc(0);\n #seqno: bigint;\n #readCount: number;\n #writeCount: number;\n #handler?: [Function, Function];\n\n constructor(address: string, port: number) {\n super(address, port);\n\n this.#messages = new AirPlayDataStreamMessages();\n this.#seqno = 0x100000000n + BigInt(randomInt32());\n this.#writeCount = 0;\n }\n\n async exchange(message: Proto.ProtocolMessage): Promise<Proto.ProtocolMessage> {\n return new Promise(async (resolve, reject) => {\n this.#handler = [resolve, reject];\n await this.send(message);\n });\n }\n\n async reply(seqno: bigint): Promise<void> {\n const rply = buildReply(seqno);\n\n reporter.raw(`[datastream] Sending reply for seqno ${seqno}.`);\n\n this.socket.write(await this.#encrypt(rply));\n }\n\n async send(message: Proto.ProtocolMessage): Promise<void> {\n const bytes = toBinary(Proto.ProtocolMessageSchema, message, {writeUnknownFields: true});\n const lenPrefix = Buffer.from(encodeVarint(bytes.length));\n const pbPayload = Buffer.concat([lenPrefix, Buffer.from(bytes)]);\n\n const plistPayload = Buffer.from(\n serializeBinaryPlist({\n params: {\n data: pbPayload.buffer.slice(pbPayload.byteOffset, pbPayload.byteOffset + pbPayload.byteLength)\n }\n } as any)\n );\n\n const header = buildHeader(DATA_HEADER_LENGTH + plistPayload.byteLength, this.#seqno++);\n const frame = Buffer.concat([header, plistPayload]);\n const encrypted = await this.#encrypt(frame);\n\n reporter.raw('[datastream] Sending message.', message);\n\n this.socket.write(encrypted);\n }\n\n async setup(sharedSecret: Buffer, seed: bigint): Promise<void> {\n const readKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from(`DataStream-Salt${seed}`),\n info: Buffer.from('DataStream-Input-Encryption-Key')\n });\n\n const writeKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from(`DataStream-Salt${seed}`),\n info: Buffer.from('DataStream-Output-Encryption-Key')\n });\n\n await this.enableEncryption(readKey, writeKey);\n }\n\n async onData(buffer: Buffer): Promise<void> {\n try {\n this.#buffer = Buffer.concat([this.#buffer, buffer]);\n this.#buffer = await this.#decrypt(this.#buffer);\n\n while (this.#buffer.byteLength > DATA_HEADER_LENGTH) {\n const header = this.#buffer.subarray(0, DATA_HEADER_LENGTH);\n const totalLength = header.readUint32BE();\n\n if (this.#buffer.byteLength < totalLength) {\n reporter.warn(`Not enough data yet, waiting on the next frame.. needed=${totalLength} available=${this.#buffer.byteLength} receivedLength=${buffer.byteLength}`);\n return;\n }\n\n const frame = this.#buffer.subarray(DATA_HEADER_LENGTH, totalLength);\n const plist = parseBinaryPlist(frame.buffer.slice(frame.byteOffset, frame.byteOffset + frame.byteLength) as any) as any;\n const command = header.toString('ascii', 4, 8);\n\n reporter.raw('Raw data received', header.toString());\n\n this.#buffer = this.#buffer.subarray(totalLength);\n\n if (!plist || !plist.params || !plist.params.data) {\n if (command === 'rply') {\n reporter.raw('Got reply...');\n } else if (command === 'sync') {\n await this.reply(parseHeaderSeqno(header));\n }\n\n if (this.#handler) {\n const [resolve] = this.#handler;\n this.#handler = undefined;\n\n resolve();\n }\n\n continue;\n }\n\n const content = Buffer.from(plist.params.data);\n\n for (const message of await parseMessages(content)) {\n await this.#handleMessage(message);\n }\n\n if (command === 'sync') {\n await this.reply(parseHeaderSeqno(header));\n }\n }\n } catch (err) {\n reporter.error('Error in onData', err);\n }\n }\n\n async #onDeviceInfoMessage(message: Proto.DeviceInfoMessage): Promise<void> {\n reporter.info('Connected to device', message.name);\n\n this.emit('deviceInfo', message);\n }\n\n async #onOriginClientPropertiesMessage(message: Proto.OriginClientPropertiesMessage): Promise<void> {\n reporter.raw('Origin client properties', message);\n\n this.emit('originClientProperties', message);\n }\n\n async #onPlayerClientPropertiesMessage(message: Proto.PlayerClientPropertiesMessage): Promise<void> {\n reporter.raw('Player client properties', message);\n\n this.emit('playerClientProperties', message);\n }\n\n async #onSendCommandResultMessage(message: Proto.SendCommandResultMessage): Promise<void> {\n reporter.info('Send command result', message);\n\n this.emit('sendCommandResult', message);\n }\n\n async #onSetArtworkMessage(message: Proto.SetArtworkMessage): Promise<void> {\n reporter.info('Set artwork', message);\n\n this.emit('setArtwork', message);\n }\n\n async #onSetDefaultSupportedCommandsMessage(message: Proto.SetDefaultSupportedCommandsMessage): Promise<void> {\n reporter.info('Set default supported commands', message);\n\n this.emit('setDefaultSupportedCommands', message);\n }\n\n async #onSetNowPlayingClientMessage(message: Proto.SetNowPlayingClientMessage): Promise<void> {\n reporter.info('Set now playing client', message);\n\n this.emit('setNowPlayingClient', message);\n }\n\n async #onSetNowPlayingPlayerMessage(message: Proto.SetNowPlayingPlayerMessage): Promise<void> {\n reporter.info('Set now playing player', message);\n\n this.emit('setNowPlayingPlayer', message);\n }\n\n async #onSetStateMessage(message: Proto.SetStateMessage): Promise<void> {\n reporter.info('Set state', message);\n\n this.emit('setState', message);\n }\n\n async #onUpdateClientMessage(message: Proto.UpdateClientMessage): Promise<void> {\n reporter.info('Update client', message);\n\n this.emit('updateClient', message);\n }\n\n async #onUpdateContentItemMessage(message: Proto.UpdateContentItemMessage): Promise<void> {\n reporter.info('Update content item', message);\n\n this.emit('updateContentItem', message);\n }\n\n async #onUpdateContentItemArtworkMessage(message: Proto.UpdateContentItemArtworkMessage): Promise<void> {\n reporter.info('Update content artwork', message);\n\n this.emit('updateContentItemArtwork', message);\n }\n\n async #onUpdatePlayerMessage(message: Proto.UpdatePlayerMessage): Promise<void> {\n reporter.info('Update player', message);\n\n this.emit('updatePlayer', message);\n }\n\n async #onUpdateOutputDeviceMessage(message: Proto.UpdateOutputDeviceMessage): Promise<void> {\n reporter.info('Update output device', message);\n\n this.emit('updateOutputDevice', message);\n }\n\n async #onVolumeControlAvailabilityMessage(message: Proto.VolumeControlAvailabilityMessage): Promise<void> {\n reporter.info('Volume control availability', message);\n\n this.emit('volumeControlAvailability', message);\n }\n\n async #onVolumeControlCapabilitiesDidChangeMessage(message: Proto.VolumeControlCapabilitiesDidChangeMessage): Promise<void> {\n reporter.info('Volume control capabilities did change', message);\n\n this.emit('volumeControlCapabilitiesDidChange', message);\n }\n\n async #onVolumeDidChangeMessage(message: Proto.VolumeDidChangeMessage): Promise<void> {\n reporter.info('VolumeDidChange message', message);\n\n this.emit('volumeDidChange', message);\n }\n\n async #decrypt(data: Buffer): Promise<Buffer> {\n const result: Buffer[] = [];\n let offset = 0;\n let readCount = this.#readCount ?? 0;\n\n while (offset < data.length) {\n if (offset + 2 > data.length) {\n reporter.warn('Truncated frame length');\n return this.#buffer;\n }\n\n const frameLength = data.readUInt16LE(offset);\n offset += 2;\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(readCount++), 4);\n\n const end = offset + frameLength + 16;\n\n if (end > data.length) {\n reporter.warn(`Truncated frame end=${end} length=${data.length}`);\n return this.#buffer;\n }\n\n const ciphertext = data.subarray(offset, offset + frameLength);\n const authTag = data.subarray(offset + frameLength, end);\n offset = end;\n\n const plaintext = decryptChacha20(\n this.readKey,\n nonce,\n Buffer.from(Uint16Array.of(frameLength).buffer.slice(0, 2)), // same AAD = leLength\n ciphertext,\n authTag\n );\n\n result.push(plaintext);\n }\n\n this.#readCount = readCount;\n\n return Buffer.concat(result);\n }\n\n async #encrypt(data: Buffer): Promise<Buffer> {\n const FRAME_LENGTH = 1024;\n const result: Buffer[] = [];\n\n for (let offset = 0; offset < data.length;) {\n const frame = data.subarray(offset, offset + FRAME_LENGTH);\n offset += frame.length;\n\n const leLength = Buffer.alloc(2);\n leLength.writeUInt16LE(frame.length, 0);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#writeCount++), 4);\n\n const encrypted = encryptChacha20(\n this.writeKey,\n nonce,\n leLength,\n frame\n );\n\n result.push(leLength, encrypted.ciphertext, encrypted.authTag);\n }\n\n return Buffer.concat(result);\n }\n\n async #handleMessage(message: Proto.ProtocolMessage): Promise<void> {\n if (this.#handler) {\n const [resolve] = this.#handler;\n this.#handler = undefined;\n\n resolve(message);\n }\n\n switch (message.type) {\n case Proto.ProtocolMessage_Type.DEVICE_INFO_MESSAGE:\n await this.#onDeviceInfoMessage(getExtension(message, Proto.deviceInfoMessage));\n break;\n\n case Proto.ProtocolMessage_Type.ORIGIN_CLIENT_PROPERTIES_MESSAGE:\n await this.#onOriginClientPropertiesMessage(getExtension(message, Proto.originClientPropertiesMessage));\n break;\n\n case Proto.ProtocolMessage_Type.PLAYER_CLIENT_PROPERTIES_MESSAGE:\n await this.#onPlayerClientPropertiesMessage(getExtension(message, Proto.playerClientPropertiesMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SEND_COMMAND_RESULT_MESSAGE:\n await this.#onSendCommandResultMessage(getExtension(message, Proto.sendCommandResultMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_ARTWORK_MESSAGE:\n await this.#onSetArtworkMessage(getExtension(message, Proto.setArtworkMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE:\n await this.#onSetDefaultSupportedCommandsMessage(getExtension(message, Proto.setDefaultSupportedCommandsMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_NOW_PLAYING_CLIENT_MESSAGE:\n await this.#onSetNowPlayingClientMessage(getExtension(message, Proto.setNowPlayingClientMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_NOW_PLAYING_PLAYER_MESSAGE:\n await this.#onSetNowPlayingPlayerMessage(getExtension(message, Proto.setNowPlayingPlayerMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_STATE_MESSAGE:\n await this.#onSetStateMessage(getExtension(message, Proto.setStateMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_CLIENT_MESSAGE:\n await this.#onUpdateClientMessage(getExtension(message, Proto.updateClientMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_CONTENT_ITEM_MESSAGE:\n await this.#onUpdateContentItemMessage(getExtension(message, Proto.updateContentItemMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_CONTENT_ITEM_ARTWORK_MESSAGE:\n await this.#onUpdateContentItemArtworkMessage(getExtension(message, Proto.updateContentItemArtworkMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_PLAYER_MESSAGE:\n await this.#onUpdatePlayerMessage(getExtension(message, Proto.updatePlayerMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_OUTPUT_DEVICE_MESSAGE:\n await this.#onUpdateOutputDeviceMessage(getExtension(message, Proto.updateOutputDeviceMessage));\n break;\n\n case Proto.ProtocolMessage_Type.VOLUME_CONTROL_AVAILABILITY_MESSAGE:\n await this.#onVolumeControlAvailabilityMessage(getExtension(message, Proto.volumeControlAvailabilityMessage));\n break;\n\n case Proto.ProtocolMessage_Type.VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE:\n await this.#onVolumeControlCapabilitiesDidChangeMessage(getExtension(message, Proto.volumeControlCapabilitiesDidChangeMessage));\n break;\n\n case Proto.ProtocolMessage_Type.VOLUME_DID_CHANGE_MESSAGE:\n await this.#onVolumeDidChangeMessage(getExtension(message, Proto.volumeDidChangeMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UNKNOWN_MESSAGE:\n break;\n\n default:\n reporter.warn('Received unknown message.', message);\n break;\n }\n }\n}\n\nfunction buildHeader(totalSize: number, seqno: bigint): Buffer {\n const buf = Buffer.alloc(32);\n\n buf.writeUInt32BE(totalSize, 0);\n buf.write('sync', 4, 'ascii');\n buf.fill(0, 8, 16);\n buf.write('comm', 16, 'ascii');\n buf.writeBigUInt64BE(seqno, 20);\n buf.writeUInt32BE(0, 28);\n\n return buf;\n}\n\nfunction buildReply(seqno: bigint): Buffer {\n const header = Buffer.alloc(32);\n header.writeUInt32BE(0, 0); // placeholder\n header.write('rply', 4, 'ascii');\n header.fill(0, 8, 16);\n header.writeBigUInt64BE(seqno, 20);\n header.writeUInt32BE(0, 28);\n\n const plist = Buffer.from(\n serializeBinaryPlist(Buffer.alloc(0) as any)\n );\n\n const total = header.length + plist.length;\n header.writeUInt32BE(total, 0);\n\n return Buffer.concat([header, plist]);\n}\n\nfunction encodeVarint(value: number): Uint8Array {\n if (value < 0) {\n throw new RangeError('Varint only supports non-negative integers');\n }\n\n const bytes: number[] = [];\n while (value > 127) {\n bytes.push((value & 0x7f) | 0x80);\n value >>>= 7;\n }\n\n bytes.push(value);\n\n return Uint8Array.from(bytes);\n}\n\nfunction parseHeaderSeqno(header: Buffer): bigint {\n if (header.length < 28) {\n throw new Error('Header too short');\n }\n\n return header.readBigUInt64BE(20);\n}\n\nasync function parseMessages(content: Buffer): Promise<Proto.ProtocolMessage[]> {\n const messages: Proto.ProtocolMessage[] = [];\n let offset = 0;\n\n while (offset < content.length) {\n const firstByte = content[offset];\n\n if (firstByte === 0x08) {\n const message = content.subarray(offset);\n const decoded = fromBinary(Proto.ProtocolMessageSchema, message, {readUnknownFields: true});\n messages.push(decoded);\n break;\n }\n\n const [length, variantLen] = readVariant(content, offset);\n offset += variantLen;\n\n if (offset + length > content.length) {\n break;\n }\n\n const message = content.subarray(offset, offset + length);\n offset += length;\n\n const decoded = fromBinary(Proto.ProtocolMessageSchema, message, {readUnknownFields: true});\n messages.push(decoded);\n }\n\n return messages;\n}\n\nfunction readVariant(buf: Buffer, offset = 0): [number, number] {\n let result = 0;\n let shift = 0;\n let bytesRead = 0;\n\n while (true) {\n const byte = buf[offset + bytesRead++];\n result |= (byte & 0x7f) << shift;\n\n if ((byte & 0x80) === 0) {\n break;\n }\n\n shift += 7;\n }\n\n return [result, bytesRead];\n}\n",
9
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file AudioFadeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file AudioFadeMessage.proto.\n */\nexport const file_AudioFadeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZBdWRpb0ZhZGVNZXNzYWdlLnByb3RvIkUKEEF1ZGlvRmFkZU1lc3NhZ2USHwoKcGxheWVyUGF0aBgBIAEoCzILLlBsYXllclBhdGgSEAoIZmFkZVR5cGUYAiABKAU6TwoQYXVkaW9GYWRlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhYIAEoCzIRLkF1ZGlvRmFkZU1lc3NhZ2VSEGF1ZGlvRmFkZU1lc3NhZ2U\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message AudioFadeMessage\n */\nexport type AudioFadeMessage = Message<\"AudioFadeMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional int32 fadeType = 2;\n */\n fadeType: number;\n};\n\n/**\n * Describes the message AudioFadeMessage.\n * Use `create(AudioFadeMessageSchema)` to create a new message.\n */\nexport const AudioFadeMessageSchema: GenMessage<AudioFadeMessage> = /*@__PURE__*/\n messageDesc(file_AudioFadeMessage, 0);\n\n/**\n * @generated from extension: optional AudioFadeMessage audioFadeMessage = 88;\n */\nexport const audioFadeMessage: GenExtension<ProtocolMessage, AudioFadeMessage> = /*@__PURE__*/\n extDesc(file_AudioFadeMessage, 0);\n\n",
10
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ProtocolMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ProtocolMessage.proto.\n */\nexport const file_ProtocolMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChVQcm90b2NvbE1lc3NhZ2UucHJvdG8i4RQKCUVycm9yQ29kZSLTFAoERW51bRILCgdOb0Vycm9yEAASEAoMVW5rbm93bkVycm9yEAESFAoQSW52YWxpZE9wZXJhdGlvbhACEhkKFU9wZXJhdGlvbk5vdFBlcm1pdHRlZBADEhYKEkNsaWVudERvZXNOb3RFeGlzdBAEEhYKEk9yaWdpbkRvZXNOb3RFeGlzdBAFEhgKFFVuc3VwcG9ydGVkT3BlcmF0aW9uEAYSGgoWRmFpbGVkVG9TZXRQaWNrZWRSb3V0ZRAHEiAKHEZhaWxlZFRvUmVnaXN0ZXJDdXN0b21PcmlnaW4QCBIeChpGYWlsZWRUb1JlbW92ZUN1c3RvbU9yaWdpbhAJEiYKIlRoZUFwcGxpY2F0aW9uQWN0aXZpdHlEb2VzTm90RXhpc3QQChIuCipUaGVBcHBIYXNOb3RTZXR1cEFCcm93c2FibGVDb250ZW50RW5kcG9pbnQQCxJBCj1UaGVSZXF1ZXN0ZWRCcm93c2FibGVDb250ZW50QXBpSXNOb3RTdXBwb3J0ZWRCeVRoZUFwcGxpY2F0aW9uEAwSMgouVGhlTm90ZmljYXRpb25IYXNOb3RCZWVuV2hpdGVsaXN0ZWRCeVRoZVNlcnZlchANEjgKNE9wZXJhdGlvblJlcXVpcmVzQUNsaWVudENhbGxiYWNrVG9IYXZlQmVlblJlZ2lzdGVyZWQQDhI6CjZPcGVyYXRpb25SZXF1aXJlc0FDbGllbnREYXRhU291cmNlVG9IYXZlQmVlblJlZ2lzdGVyZWQQDxI1CjFSZXF1ZXN0ZWREYXRhSXNPdXRPZkRhdGVBbmRTaG91bGRCZVJlcXVlc3RlZEFnYWluEBASMAosVGhlRGV2aWNlc0VuZm9yY2VkVm9sdW1lTGltaXRIYXNCZWVuRXhjZWVkZWQQERIbChdWb2x1bWVWYWx1ZUlzT3V0T2ZSYW5nZRASEiQKIFZvbHVtZUlzQWxyZWFkeUF0VGhlTWF4aW11bVZhbHVlEBMSGAoUVm9sdW1lSXNBbHJlYWR5TXV0ZWQQFBIiCh5Wb2ljZUlucHV0RW5kcG9pbnREb2VzTm90RXhpc3QQFRI0CjBUaGVWb2ljZUlucHV0RGV2aWNlSXNOb3RSZWdpc3RlcmVkT3JEb2VzTm90RXhpc3QQFhIVChFFbmNyeXB0aW9uRmFpbHVyZRAXEhgKFEVuZHBvaW50RG9lc05vdEV4aXN0EBgSLgoqVGhlQ2xpZW50c0FwcGxpY2F0aW9uQ2FuY2VsbGVkVGhlT3BlcmF0aW9uEBkSGAoUVGhlT3BlcmF0aW9uVGltZWRPdXQQGhIqCiZUaGVTcGVjaWZpZWRQbGF5ZXJQYXRoT2JqZWN0V2FzSW52YWxpZBAbEjoKNkFkZGluZ09yUmVtb3ZpbmdEZXZpY2VzRnJvbVRoZUF2T3V0cHV0Q29udGV4dEhhc0ZhaWxlZBAcEiwKKENvdWxkTm90RmluZFRoZVNwZWNpZmllZE5vd1BsYXlpbmdQbGF5ZXIQHRInCiNUaGVTcGVjaWZpZWRDb250ZW50SXRlbURvZXNOb3RFeGlzdBAeEh8KG1RoZVNwZWNpZmllZE9mZnNldElzSW52YWxpZBAfEiYKIlRoZVNwZWNpZmllZE91dHB1dENvbnRleHRJc0ludmFsaWQQIBIyCi5PbmVPck1vcmVTcGVjaWZpZWRPdXRwdXREZXZpY2VzQXJlTm90R3JvdXBhYmxlECESSApEVGhlU3BlY2lmaWVkT3V0cHV0Q29udGV4dERvZXNOb3RTdXBwb3J0QWRkaW5nTW9yZVRoYW5PbmVPdXRwdXREZXZpY2UQIhIsCihDb3VsZE5vdEZpbmRUaGVTcGVjaWZpZWROb3dQbGF5aW5nQ2xpZW50ECMSUApMRW5kcG9pbnRWb2x1bWVDb250cm9sSXNPbmx5UG9zc2libGVJZlRoZUVuZHBvaW50SXNQaWNrZWRPclJlbW90ZUNvbnRyb2xsYWJsZRAkElQKUE91dHB1dERldmljZVZvbHVtZUNvbnRyb2xJc09ubHlQb3NzaWJsZUlmVGhlRW5kcG9pbnRJc1BpY2tlZE9yUmVtb3RlQ29udHJvbGxhYmxlECUSIgoeQ29kZXJNdXN0U3VwcG9ydEtleVZhbHVlQ29kaW5nECYSJAogQ291bGROb3RGaW5kVGhlR2l2ZW5PdXRwdXRkZXZpY2UQJxIhCh1GYWlsZWRUb0Nvbm5lY3RUb1JlbW90ZURldmljZRBkEiAKHEF1dGhlbnRpY2F0aW9uVG9rZW5Jc0ludmFsaWQQZRIzCi9SZWNvcmRpbmdTZXNzaW9uSXNBbHJlYWR5SW5Qcm9ncmVzc09uVGhpc0RldmljZRBmEiQKIFRoZURldmljZUlzTm90Q3VycmVudGx5UmVjb3JkaW5nEGcSHAoYVGhlQ2xpZW50SGFzRGlzY29ubmVjdGVkEGgSHAoYVGhlU2VydmVySGFzRGlzY29ubmVjdGVkEGkSLAooVGhlQ29ubmVjdGlvbkhhc0JlZW5DYW5jZWxsZWRCeVRoZUNsaWVudBBqEjQKMFBhaXJpbmdGdW5jdGlvbmFsaXR5SXNMb2NrZWREdWVUb1NlY3VyaXR5UmVhc29ucxBrEiwKKFRoZUNsaWVudHNPcGVyYXRpbmdTeXN0ZW1WZXJzaW9uSXNUb29PbGQQbBIoCiRUaGVDbGllbnRzQXBwbGljYXRpb25WZXJzaW9uSXNUb29PbGQQbRIYChRUaGVEZXZpY2VJc05vdFBhaXJlZBBuEj8KO1RoZVBpblBhaXJpbmdEaWFsb2dXYXNSZW1vdmVkQnlUaGVVc2VyQmVmb3JlUGFpcmluZ09jY291cmVkEG8SQAo8VGhlUGluUGFpcmluZ0RpYWxvZ1dhc1JlbW92ZWRCeUFUaW1lb3V0QmVmb3JlUGFpcmluZ09jY291cmVkEHASGQoVVGhlQ29ubmVjdGlvblRpbWVkb3V0EHESIgoeUGFpcmluZ1dpdGhUaGlzRGV2aWNlSXNCbG9ja2VkEHISGwoXVGhlRGV2aWNlSXNHb2luZ1RvU2xlZXAQcxIdChlDb25uZWN0aW9uQmxvY2tlZEJ5U2VydmVyEHQSPAo4TXJhdmVuZHBvaW50V2FzRGVhbGxvY2F0ZWRXaGlsZVdhaXRpbmdGb3JEZXZpY2VUb0Nvbm5lY3QQdRJICkNPdXRwdXRDb250ZXh0TW9kaWZpY2F0aW9uQ2F1c2VkQURldmljZVRvTm9Mb25nZXJCZUFQcm94eUdyb3VwUGxheWVyEMgBEkQKP091dHB1dENvbnRleHRNb2RpZmljYXRpb25DYXVzZWRBRGV2aWNlVG9CZWNvbWVBUHJveHlHcm91cFBsYXllchDJARI3CjJPdXRwdXRDb250ZXh0TW9kaWZpY2F0aW9uUmVxdWVzdGVkTm9Ub3BvbG9neUNoYW5nZRDKARIWChFPdGhlclVua25vd25FcnJvchCrAiLAGAoPUHJvdG9jb2xNZXNzYWdlEiMKBHR5cGUYASABKA4yFS5Qcm90b2NvbE1lc3NhZ2UuVHlwZRISCgppZGVudGlmaWVyGAIgASgJEhsKE2F1dGhlbnRpY2F0aW9uVG9rZW4YAyABKAkSIgoJZXJyb3JDb2RlGAQgASgOMg8uRXJyb3JDb2RlLkVudW0SEQoJdGltZXN0YW1wGAUgASgEEhgKEGVycm9yRGVzY3JpcHRpb24YTiABKAkSGAoQdW5pcXVlSWRlbnRpZmllchhVIAEoCSLVFgoEVHlwZRITCg9VTktOT1dOX01FU1NBR0UQABIYChRTRU5EX0NPTU1BTkRfTUVTU0FHRRABEh8KG1NFTkRfQ09NTUFORF9SRVNVTFRfTUVTU0FHRRACEhUKEUdFVF9TVEFURV9NRVNTQUdFEAMSFQoRU0VUX1NUQVRFX01FU1NBR0UQBBIXChNTRVRfQVJUV09SS19NRVNTQUdFEAUSHwobUkVHSVNURVJfSElEX0RFVklDRV9NRVNTQUdFEAYSJgoiUkVHSVNURVJfSElEX0RFVklDRV9SRVNVTFRfTUVTU0FHRRAHEhoKFlNFTkRfSElEX0VWRU5UX01FU1NBR0UQCBIbChdTRU5EX0hJRF9SRVBPUlRfTUVTU0FHRRAJEiQKIFNFTkRfVklSVFVBTF9UT1VDSF9FVkVOVF9NRVNTQUdFEAoSGAoUTk9USUZJQ0FUSU9OX01FU1NBR0UQCxIuCipDT05URU5UX0lURU1TX0NIQU5HRURfTk9USUZJQ0FUSU9OX01FU1NBR0UQDBIXChNERVZJQ0VfSU5GT19NRVNTQUdFEA8SIQodQ0xJRU5UX1VQREFURVNfQ09ORklHX01FU1NBR0UQEBInCiNWT0xVTUVfQ09OVFJPTF9BVkFJTEFCSUxJVFlfTUVTU0FHRRAREhsKF0dBTUVfQ09OVFJPTExFUl9NRVNTQUdFEBISJAogUkVHSVNURVJfR0FNRV9DT05UUk9MTEVSX01FU1NBR0UQExItCilSRUdJU1RFUl9HQU1FX0NPTlRST0xMRVJfUkVTUE9OU0VfTUVTU0FHRRAUEiYKIlVOUkVHSVNURVJfR0FNRV9DT05UUk9MTEVSX01FU1NBR0UQFRIvCitSRUdJU1RFUl9GT1JfR0FNRV9DT05UUk9MTEVSX0VWRU5UU19NRVNTQUdFEBYSFAoQS0VZQk9BUkRfTUVTU0FHRRAXEiAKHEdFVF9LRVlCT0FSRF9TRVNTSU9OX01FU1NBR0UQGBIWChJURVhUX0lOUFVUX01FU1NBR0UQGRIjCh9HRVRfVk9JQ0VfSU5QVVRfREVWSUNFU19NRVNTQUdFEBoSLAooR0VUX1ZPSUNFX0lOUFVUX0RFVklDRVNfUkVTUE9OU0VfTUVTU0FHRRAbEicKI1JFR0lTVEVSX1ZPSUNFX0lOUFVUX0RFVklDRV9NRVNTQUdFEBwSMAosUkVHSVNURVJfVk9JQ0VfSU5QVVRfREVWSUNFX1JFU1BPTlNFX01FU1NBR0UQHRIfChtTRVRfUkVDT1JESU5HX1NUQVRFX01FU1NBR0UQHhIcChhTRU5EX1ZPSUNFX0lOUFVUX01FU1NBR0UQHxIiCh5QTEFZQkFDS19RVUVVRV9SRVFVRVNUX01FU1NBR0UQIBIXChNUUkFOU0FDVElPTl9NRVNTQUdFECESGgoWQ1JZUFRPX1BBSVJJTkdfTUVTU0FHRRAiEiYKIkdBTUVfQ09OVFJPTExFUl9QUk9QRVJUSUVTX01FU1NBR0UQIxIbChdTRVRfUkVBRFlfU1RBVEVfTUVTU0FHRRAkEh4KGkRFVklDRV9JTkZPX1VQREFURV9NRVNTQUdFECUSIAocU0VUX0NPTk5FQ1RJT05fU1RBVEVfTUVTU0FHRRAmEh0KGVNFTkRfQlVUVE9OX0VWRU5UX01FU1NBR0UQJxIbChdTRVRfSElMSVRFX01PREVfTUVTU0FHRRAoEhcKE1dBS0VfREVWSUNFX01FU1NBR0UQKRITCg9HRU5FUklDX01FU1NBR0UQKhIrCidTRU5EX1BBQ0tFRF9WSVJUVUFMX1RPVUNIX0VWRU5UX01FU1NBR0UQKxIVChFTRU5EX0xZUklDU19FVkVOVBAsEiIKHlNFVF9OT1dfUExBWUlOR19DTElFTlRfTUVTU0FHRRAuEiIKHlNFVF9OT1dfUExBWUlOR19QTEFZRVJfTUVTU0FHRRAvEikKJU1PRElGWV9PVVRQVVRfQ09OVEVYVF9SRVFVRVNUX01FU1NBR0UQMBIWChJHRVRfVk9MVU1FX01FU1NBR0UQMRIdChlHRVRfVk9MVU1FX1JFU1VMVF9NRVNTQUdFEDISFgoSU0VUX1ZPTFVNRV9NRVNTQUdFEDMSHQoZVk9MVU1FX0RJRF9DSEFOR0VfTUVTU0FHRRA0EhkKFVJFTU9WRV9DTElFTlRfTUVTU0FHRRA1EhkKFVJFTU9WRV9QTEFZRVJfTUVTU0FHRRA2EhkKFVVQREFURV9DTElFTlRfTUVTU0FHRRA3Eh8KG1VQREFURV9DT05URU5UX0lURU1fTUVTU0FHRRA4EicKI1VQREFURV9DT05URU5UX0lURU1fQVJUV09SS19NRVNTQUdFEDkSGQoVVVBEQVRFX1BMQVlFUl9NRVNTQUdFEDoSKgomUFJPTVBUX0ZPUl9ST1VURV9BVVRIT1JJWkFUSU9OX01FU1NBR0UQOxIzCi9QUk9NUFRfRk9SX1JPVVRFX0FVVEhPUklaQVRJT05fUkVTUE9OU0VfTUVTU0FHRRA8Ei4KKlBSRVNFTlRfUk9VVEVfQVVUSE9SSVpBVElPTl9TVEFUVVNfTUVTU0FHRRA9EisKJ0dFVF9WT0xVTUVfQ09OVFJPTF9DQVBBQklMSVRJRVNfTUVTU0FHRRA+EjIKLkdFVF9WT0xVTUVfQ09OVFJPTF9DQVBBQklMSVRJRVNfUkVTVUxUX01FU1NBR0UQPxIyCi5WT0xVTUVfQ09OVFJPTF9DQVBBQklMSVRJRVNfRElEX0NIQU5HRV9NRVNTQUdFEEASIAocVVBEQVRFX09VVFBVVF9ERVZJQ0VfTUVTU0FHRRBBEiEKHVJFTU9WRV9PVVRQVVRfREVWSUNFU19NRVNTQUdFEEISHQoZUkVNT1RFX1RFWFRfSU5QVVRfTUVTU0FHRRBDEikKJUdFVF9SRU1PVEVfVEVYVF9JTlBVVF9TRVNTSU9OX01FU1NBR0UQRBIiCh5SRU1PVkVfT1VUUFVUX0RFVklDRVNfTUVTU0FHRTIQRRIkCiBQTEFZQkFDS19TRVNTSU9OX1JFUVVFU1RfTUVTU0FHRRBGEiUKIVBMQVlCQUNLX1NFU1NJT05fUkVTUE9OU0VfTUVTU0FHRRBHEioKJlNFVF9ERUZBVUxUX1NVUFBPUlRFRF9DT01NQU5EU19NRVNTQUdFEEgSLAooUExBWUJBQ0tfU0VTU0lPTl9NSUdSQVRFX1JFUVVFU1RfTUVTU0FHRRBJEi0KKVBMQVlCQUNLX1NFU1NJT05fTUlHUkFURV9SRVNQT05TRV9NRVNTQUdFEEoSKgomUExBWUJBQ0tfU0VTU0lPTl9NSUdSQVRFX0JFR0lOX01FU1NBR0UQSxIoCiRQTEFZQkFDS19TRVNTSU9OX01JR1JBVEVfRU5EX01FU1NBR0UQTBIpCiVVUERBVEVfQUNUSVZFX1NZU1RFTV9FTkRQT0lOVF9NRVNTQUdFEE0SHgoaU0VUX0RJU0NPVkVSWV9NT0RFX01FU1NBR0UQZRIdChlVUERBVEVfRU5EX1BPSU5UU19NRVNTQUdFEGYSHAoYUkVNT1ZFX0VORFBPSU5UU19NRVNTQUdFEGcSJAogUExBWUVSX0NMSUVOVF9QUk9QRVJUSUVTX01FU1NBR0UQaBIkCiBPUklHSU5fQ0xJRU5UX1BST1BFUlRJRVNfTUVTU0FHRRBpEhYKEkFVRElPX0ZBREVfTUVTU0FHRRBqEh8KG0FVRElPX0ZBREVfUkVTUE9OU0VfTUVTU0FHRRBrEiAKHENPTkZJR1VSRV9DT05ORUNUSU9OX01FU1NBR0UQeCoECAYQTioECE8QVSoICFYQgICAgAI\");\n\n/**\n * @generated from message ErrorCode\n */\nexport type ErrorCode = Message<\"ErrorCode\"> & {\n};\n\n/**\n * Describes the message ErrorCode.\n * Use `create(ErrorCodeSchema)` to create a new message.\n */\nexport const ErrorCodeSchema: GenMessage<ErrorCode> = /*@__PURE__*/\n messageDesc(file_ProtocolMessage, 0);\n\n/**\n * @generated from enum ErrorCode.Enum\n */\nexport enum ErrorCode_Enum {\n /**\n * @generated from enum value: NoError = 0;\n */\n NoError = 0,\n\n /**\n * @generated from enum value: UnknownError = 1;\n */\n UnknownError = 1,\n\n /**\n * @generated from enum value: InvalidOperation = 2;\n */\n InvalidOperation = 2,\n\n /**\n * @generated from enum value: OperationNotPermitted = 3;\n */\n OperationNotPermitted = 3,\n\n /**\n * @generated from enum value: ClientDoesNotExist = 4;\n */\n ClientDoesNotExist = 4,\n\n /**\n * @generated from enum value: OriginDoesNotExist = 5;\n */\n OriginDoesNotExist = 5,\n\n /**\n * @generated from enum value: UnsupportedOperation = 6;\n */\n UnsupportedOperation = 6,\n\n /**\n * @generated from enum value: FailedToSetPickedRoute = 7;\n */\n FailedToSetPickedRoute = 7,\n\n /**\n * @generated from enum value: FailedToRegisterCustomOrigin = 8;\n */\n FailedToRegisterCustomOrigin = 8,\n\n /**\n * @generated from enum value: FailedToRemoveCustomOrigin = 9;\n */\n FailedToRemoveCustomOrigin = 9,\n\n /**\n * @generated from enum value: TheApplicationActivityDoesNotExist = 10;\n */\n TheApplicationActivityDoesNotExist = 10,\n\n /**\n * @generated from enum value: TheAppHasNotSetupABrowsableContentEndpoint = 11;\n */\n TheAppHasNotSetupABrowsableContentEndpoint = 11,\n\n /**\n * @generated from enum value: TheRequestedBrowsableContentApiIsNotSupportedByTheApplication = 12;\n */\n TheRequestedBrowsableContentApiIsNotSupportedByTheApplication = 12,\n\n /**\n * @generated from enum value: TheNotficationHasNotBeenWhitelistedByTheServer = 13;\n */\n TheNotficationHasNotBeenWhitelistedByTheServer = 13,\n\n /**\n * @generated from enum value: OperationRequiresAClientCallbackToHaveBeenRegistered = 14;\n */\n OperationRequiresAClientCallbackToHaveBeenRegistered = 14,\n\n /**\n * @generated from enum value: OperationRequiresAClientDataSourceToHaveBeenRegistered = 15;\n */\n OperationRequiresAClientDataSourceToHaveBeenRegistered = 15,\n\n /**\n * @generated from enum value: RequestedDataIsOutOfDateAndShouldBeRequestedAgain = 16;\n */\n RequestedDataIsOutOfDateAndShouldBeRequestedAgain = 16,\n\n /**\n * The system will ignore the volume adjustment until overridden.\n *\n * @generated from enum value: TheDevicesEnforcedVolumeLimitHasBeenExceeded = 17;\n */\n TheDevicesEnforcedVolumeLimitHasBeenExceeded = 17,\n\n /**\n * between 0.0 and 1.0, where 1.0 is the loudest\n *\n * @generated from enum value: VolumeValueIsOutOfRange = 18;\n */\n VolumeValueIsOutOfRange = 18,\n\n /**\n * @generated from enum value: VolumeIsAlreadyAtTheMaximumValue = 19;\n */\n VolumeIsAlreadyAtTheMaximumValue = 19,\n\n /**\n * @generated from enum value: VolumeIsAlreadyMuted = 20;\n */\n VolumeIsAlreadyMuted = 20,\n\n /**\n * @generated from enum value: VoiceInputEndpointDoesNotExist = 21;\n */\n VoiceInputEndpointDoesNotExist = 21,\n\n /**\n * @generated from enum value: TheVoiceInputDeviceIsNotRegisteredOrDoesNotExist = 22;\n */\n TheVoiceInputDeviceIsNotRegisteredOrDoesNotExist = 22,\n\n /**\n * @generated from enum value: EncryptionFailure = 23;\n */\n EncryptionFailure = 23,\n\n /**\n * @generated from enum value: EndpointDoesNotExist = 24;\n */\n EndpointDoesNotExist = 24,\n\n /**\n * @generated from enum value: TheClientsApplicationCancelledTheOperation = 25;\n */\n TheClientsApplicationCancelledTheOperation = 25,\n\n /**\n * @generated from enum value: TheOperationTimedOut = 26;\n */\n TheOperationTimedOut = 26,\n\n /**\n * @generated from enum value: TheSpecifiedPlayerPathObjectWasInvalid = 27;\n */\n TheSpecifiedPlayerPathObjectWasInvalid = 27,\n\n /**\n * @generated from enum value: AddingOrRemovingDevicesFromTheAvOutputContextHasFailed = 28;\n */\n AddingOrRemovingDevicesFromTheAvOutputContextHasFailed = 28,\n\n /**\n * @generated from enum value: CouldNotFindTheSpecifiedNowPlayingPlayer = 29;\n */\n CouldNotFindTheSpecifiedNowPlayingPlayer = 29,\n\n /**\n * @generated from enum value: TheSpecifiedContentItemDoesNotExist = 30;\n */\n TheSpecifiedContentItemDoesNotExist = 30,\n\n /**\n * @generated from enum value: TheSpecifiedOffsetIsInvalid = 31;\n */\n TheSpecifiedOffsetIsInvalid = 31,\n\n /**\n * @generated from enum value: TheSpecifiedOutputContextIsInvalid = 32;\n */\n TheSpecifiedOutputContextIsInvalid = 32,\n\n /**\n * @generated from enum value: OneOrMoreSpecifiedOutputDevicesAreNotGroupable = 33;\n */\n OneOrMoreSpecifiedOutputDevicesAreNotGroupable = 33,\n\n /**\n * @generated from enum value: TheSpecifiedOutputContextDoesNotSupportAddingMoreThanOneOutputDevice = 34;\n */\n TheSpecifiedOutputContextDoesNotSupportAddingMoreThanOneOutputDevice = 34,\n\n /**\n * @generated from enum value: CouldNotFindTheSpecifiedNowPlayingClient = 35;\n */\n CouldNotFindTheSpecifiedNowPlayingClient = 35,\n\n /**\n * @generated from enum value: EndpointVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 36;\n */\n EndpointVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 36,\n\n /**\n * @generated from enum value: OutputDeviceVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 37;\n */\n OutputDeviceVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 37,\n\n /**\n * @generated from enum value: CoderMustSupportKeyValueCoding = 38;\n */\n CoderMustSupportKeyValueCoding = 38,\n\n /**\n * @generated from enum value: CouldNotFindTheGivenOutputdevice = 39;\n */\n CouldNotFindTheGivenOutputdevice = 39,\n\n /**\n * @generated from enum value: FailedToConnectToRemoteDevice = 100;\n */\n FailedToConnectToRemoteDevice = 100,\n\n /**\n * @generated from enum value: AuthenticationTokenIsInvalid = 101;\n */\n AuthenticationTokenIsInvalid = 101,\n\n /**\n * @generated from enum value: RecordingSessionIsAlreadyInProgressOnThisDevice = 102;\n */\n RecordingSessionIsAlreadyInProgressOnThisDevice = 102,\n\n /**\n * @generated from enum value: TheDeviceIsNotCurrentlyRecording = 103;\n */\n TheDeviceIsNotCurrentlyRecording = 103,\n\n /**\n * @generated from enum value: TheClientHasDisconnected = 104;\n */\n TheClientHasDisconnected = 104,\n\n /**\n * @generated from enum value: TheServerHasDisconnected = 105;\n */\n TheServerHasDisconnected = 105,\n\n /**\n * @generated from enum value: TheConnectionHasBeenCancelledByTheClient = 106;\n */\n TheConnectionHasBeenCancelledByTheClient = 106,\n\n /**\n * @generated from enum value: PairingFunctionalityIsLockedDueToSecurityReasons = 107;\n */\n PairingFunctionalityIsLockedDueToSecurityReasons = 107,\n\n /**\n * @generated from enum value: TheClientsOperatingSystemVersionIsTooOld = 108;\n */\n TheClientsOperatingSystemVersionIsTooOld = 108,\n\n /**\n * @generated from enum value: TheClientsApplicationVersionIsTooOld = 109;\n */\n TheClientsApplicationVersionIsTooOld = 109,\n\n /**\n * @generated from enum value: TheDeviceIsNotPaired = 110;\n */\n TheDeviceIsNotPaired = 110,\n\n /**\n * @generated from enum value: ThePinPairingDialogWasRemovedByTheUserBeforePairingOccoured = 111;\n */\n ThePinPairingDialogWasRemovedByTheUserBeforePairingOccoured = 111,\n\n /**\n * @generated from enum value: ThePinPairingDialogWasRemovedByATimeoutBeforePairingOccoured = 112;\n */\n ThePinPairingDialogWasRemovedByATimeoutBeforePairingOccoured = 112,\n\n /**\n * @generated from enum value: TheConnectionTimedout = 113;\n */\n TheConnectionTimedout = 113,\n\n /**\n * @generated from enum value: PairingWithThisDeviceIsBlocked = 114;\n */\n PairingWithThisDeviceIsBlocked = 114,\n\n /**\n * @generated from enum value: TheDeviceIsGoingToSleep = 115;\n */\n TheDeviceIsGoingToSleep = 115,\n\n /**\n * @generated from enum value: ConnectionBlockedByServer = 116;\n */\n ConnectionBlockedByServer = 116,\n\n /**\n * @generated from enum value: MravendpointWasDeallocatedWhileWaitingForDeviceToConnect = 117;\n */\n MravendpointWasDeallocatedWhileWaitingForDeviceToConnect = 117,\n\n /**\n * @generated from enum value: OutputContextModificationCausedADeviceToNoLongerBeAProxyGroupPlayer = 200;\n */\n OutputContextModificationCausedADeviceToNoLongerBeAProxyGroupPlayer = 200,\n\n /**\n * @generated from enum value: OutputContextModificationCausedADeviceToBecomeAProxyGroupPlayer = 201;\n */\n OutputContextModificationCausedADeviceToBecomeAProxyGroupPlayer = 201,\n\n /**\n * @generated from enum value: OutputContextModificationRequestedNoTopologyChange = 202;\n */\n OutputContextModificationRequestedNoTopologyChange = 202,\n\n /**\n * @generated from enum value: OtherUnknownError = 299;\n */\n OtherUnknownError = 299,\n}\n\n/**\n * Describes the enum ErrorCode.Enum.\n */\nexport const ErrorCode_EnumSchema: GenEnum<ErrorCode_Enum> = /*@__PURE__*/\n enumDesc(file_ProtocolMessage, 0, 0);\n\n/**\n * @generated from message ProtocolMessage\n */\nexport type ProtocolMessage = Message<\"ProtocolMessage\"> & {\n /**\n * Identifies which underlying message is filled in.\n *\n * @generated from field: optional ProtocolMessage.Type type = 1;\n */\n type: ProtocolMessage_Type;\n\n /**\n * @generated from field: optional string identifier = 2;\n */\n identifier: string;\n\n /**\n * @generated from field: optional string authenticationToken = 3;\n */\n authenticationToken: string;\n\n /**\n * @generated from field: optional ErrorCode.Enum errorCode = 4;\n */\n errorCode: ErrorCode_Enum;\n\n /**\n * @generated from field: optional uint64 timestamp = 5;\n */\n timestamp: bigint;\n\n /**\n * @generated from field: optional string errorDescription = 78;\n */\n errorDescription: string;\n\n /**\n * @generated from field: optional string uniqueIdentifier = 85;\n */\n uniqueIdentifier: string;\n};\n\n/**\n * Describes the message ProtocolMessage.\n * Use `create(ProtocolMessageSchema)` to create a new message.\n */\nexport const ProtocolMessageSchema: GenMessage<ProtocolMessage> = /*@__PURE__*/\n messageDesc(file_ProtocolMessage, 1);\n\n/**\n * @generated from enum ProtocolMessage.Type\n */\nexport enum ProtocolMessage_Type {\n /**\n * @generated from enum value: UNKNOWN_MESSAGE = 0;\n */\n UNKNOWN_MESSAGE = 0,\n\n /**\n * @generated from enum value: SEND_COMMAND_MESSAGE = 1;\n */\n SEND_COMMAND_MESSAGE = 1,\n\n /**\n * @generated from enum value: SEND_COMMAND_RESULT_MESSAGE = 2;\n */\n SEND_COMMAND_RESULT_MESSAGE = 2,\n\n /**\n * @generated from enum value: GET_STATE_MESSAGE = 3;\n */\n GET_STATE_MESSAGE = 3,\n\n /**\n * @generated from enum value: SET_STATE_MESSAGE = 4;\n */\n SET_STATE_MESSAGE = 4,\n\n /**\n * @generated from enum value: SET_ARTWORK_MESSAGE = 5;\n */\n SET_ARTWORK_MESSAGE = 5,\n\n /**\n * @generated from enum value: REGISTER_HID_DEVICE_MESSAGE = 6;\n */\n REGISTER_HID_DEVICE_MESSAGE = 6,\n\n /**\n * @generated from enum value: REGISTER_HID_DEVICE_RESULT_MESSAGE = 7;\n */\n REGISTER_HID_DEVICE_RESULT_MESSAGE = 7,\n\n /**\n * @generated from enum value: SEND_HID_EVENT_MESSAGE = 8;\n */\n SEND_HID_EVENT_MESSAGE = 8,\n\n /**\n * @generated from enum value: SEND_HID_REPORT_MESSAGE = 9;\n */\n SEND_HID_REPORT_MESSAGE = 9,\n\n /**\n * @generated from enum value: SEND_VIRTUAL_TOUCH_EVENT_MESSAGE = 10;\n */\n SEND_VIRTUAL_TOUCH_EVENT_MESSAGE = 10,\n\n /**\n * @generated from enum value: NOTIFICATION_MESSAGE = 11;\n */\n NOTIFICATION_MESSAGE = 11,\n\n /**\n * @generated from enum value: CONTENT_ITEMS_CHANGED_NOTIFICATION_MESSAGE = 12;\n */\n CONTENT_ITEMS_CHANGED_NOTIFICATION_MESSAGE = 12,\n\n /**\n * @generated from enum value: DEVICE_INFO_MESSAGE = 15;\n */\n DEVICE_INFO_MESSAGE = 15,\n\n /**\n * @generated from enum value: CLIENT_UPDATES_CONFIG_MESSAGE = 16;\n */\n CLIENT_UPDATES_CONFIG_MESSAGE = 16,\n\n /**\n * @generated from enum value: VOLUME_CONTROL_AVAILABILITY_MESSAGE = 17;\n */\n VOLUME_CONTROL_AVAILABILITY_MESSAGE = 17,\n\n /**\n * @generated from enum value: GAME_CONTROLLER_MESSAGE = 18;\n */\n GAME_CONTROLLER_MESSAGE = 18,\n\n /**\n * @generated from enum value: REGISTER_GAME_CONTROLLER_MESSAGE = 19;\n */\n REGISTER_GAME_CONTROLLER_MESSAGE = 19,\n\n /**\n * @generated from enum value: REGISTER_GAME_CONTROLLER_RESPONSE_MESSAGE = 20;\n */\n REGISTER_GAME_CONTROLLER_RESPONSE_MESSAGE = 20,\n\n /**\n * @generated from enum value: UNREGISTER_GAME_CONTROLLER_MESSAGE = 21;\n */\n UNREGISTER_GAME_CONTROLLER_MESSAGE = 21,\n\n /**\n * @generated from enum value: REGISTER_FOR_GAME_CONTROLLER_EVENTS_MESSAGE = 22;\n */\n REGISTER_FOR_GAME_CONTROLLER_EVENTS_MESSAGE = 22,\n\n /**\n * @generated from enum value: KEYBOARD_MESSAGE = 23;\n */\n KEYBOARD_MESSAGE = 23,\n\n /**\n * @generated from enum value: GET_KEYBOARD_SESSION_MESSAGE = 24;\n */\n GET_KEYBOARD_SESSION_MESSAGE = 24,\n\n /**\n * @generated from enum value: TEXT_INPUT_MESSAGE = 25;\n */\n TEXT_INPUT_MESSAGE = 25,\n\n /**\n * @generated from enum value: GET_VOICE_INPUT_DEVICES_MESSAGE = 26;\n */\n GET_VOICE_INPUT_DEVICES_MESSAGE = 26,\n\n /**\n * @generated from enum value: GET_VOICE_INPUT_DEVICES_RESPONSE_MESSAGE = 27;\n */\n GET_VOICE_INPUT_DEVICES_RESPONSE_MESSAGE = 27,\n\n /**\n * @generated from enum value: REGISTER_VOICE_INPUT_DEVICE_MESSAGE = 28;\n */\n REGISTER_VOICE_INPUT_DEVICE_MESSAGE = 28,\n\n /**\n * @generated from enum value: REGISTER_VOICE_INPUT_DEVICE_RESPONSE_MESSAGE = 29;\n */\n REGISTER_VOICE_INPUT_DEVICE_RESPONSE_MESSAGE = 29,\n\n /**\n * @generated from enum value: SET_RECORDING_STATE_MESSAGE = 30;\n */\n SET_RECORDING_STATE_MESSAGE = 30,\n\n /**\n * @generated from enum value: SEND_VOICE_INPUT_MESSAGE = 31;\n */\n SEND_VOICE_INPUT_MESSAGE = 31,\n\n /**\n * @generated from enum value: PLAYBACK_QUEUE_REQUEST_MESSAGE = 32;\n */\n PLAYBACK_QUEUE_REQUEST_MESSAGE = 32,\n\n /**\n * @generated from enum value: TRANSACTION_MESSAGE = 33;\n */\n TRANSACTION_MESSAGE = 33,\n\n /**\n * @generated from enum value: CRYPTO_PAIRING_MESSAGE = 34;\n */\n CRYPTO_PAIRING_MESSAGE = 34,\n\n /**\n * @generated from enum value: GAME_CONTROLLER_PROPERTIES_MESSAGE = 35;\n */\n GAME_CONTROLLER_PROPERTIES_MESSAGE = 35,\n\n /**\n * @generated from enum value: SET_READY_STATE_MESSAGE = 36;\n */\n SET_READY_STATE_MESSAGE = 36,\n\n /**\n * @generated from enum value: DEVICE_INFO_UPDATE_MESSAGE = 37;\n */\n DEVICE_INFO_UPDATE_MESSAGE = 37,\n\n /**\n * @generated from enum value: SET_CONNECTION_STATE_MESSAGE = 38;\n */\n SET_CONNECTION_STATE_MESSAGE = 38,\n\n /**\n * @generated from enum value: SEND_BUTTON_EVENT_MESSAGE = 39;\n */\n SEND_BUTTON_EVENT_MESSAGE = 39,\n\n /**\n * @generated from enum value: SET_HILITE_MODE_MESSAGE = 40;\n */\n SET_HILITE_MODE_MESSAGE = 40,\n\n /**\n * @generated from enum value: WAKE_DEVICE_MESSAGE = 41;\n */\n WAKE_DEVICE_MESSAGE = 41,\n\n /**\n * @generated from enum value: GENERIC_MESSAGE = 42;\n */\n GENERIC_MESSAGE = 42,\n\n /**\n * @generated from enum value: SEND_PACKED_VIRTUAL_TOUCH_EVENT_MESSAGE = 43;\n */\n SEND_PACKED_VIRTUAL_TOUCH_EVENT_MESSAGE = 43,\n\n /**\n * @generated from enum value: SEND_LYRICS_EVENT = 44;\n */\n SEND_LYRICS_EVENT = 44,\n\n /**\n * @generated from enum value: SET_NOW_PLAYING_CLIENT_MESSAGE = 46;\n */\n SET_NOW_PLAYING_CLIENT_MESSAGE = 46,\n\n /**\n * @generated from enum value: SET_NOW_PLAYING_PLAYER_MESSAGE = 47;\n */\n SET_NOW_PLAYING_PLAYER_MESSAGE = 47,\n\n /**\n * @generated from enum value: MODIFY_OUTPUT_CONTEXT_REQUEST_MESSAGE = 48;\n */\n MODIFY_OUTPUT_CONTEXT_REQUEST_MESSAGE = 48,\n\n /**\n * @generated from enum value: GET_VOLUME_MESSAGE = 49;\n */\n GET_VOLUME_MESSAGE = 49,\n\n /**\n * @generated from enum value: GET_VOLUME_RESULT_MESSAGE = 50;\n */\n GET_VOLUME_RESULT_MESSAGE = 50,\n\n /**\n * @generated from enum value: SET_VOLUME_MESSAGE = 51;\n */\n SET_VOLUME_MESSAGE = 51,\n\n /**\n * @generated from enum value: VOLUME_DID_CHANGE_MESSAGE = 52;\n */\n VOLUME_DID_CHANGE_MESSAGE = 52,\n\n /**\n * @generated from enum value: REMOVE_CLIENT_MESSAGE = 53;\n */\n REMOVE_CLIENT_MESSAGE = 53,\n\n /**\n * @generated from enum value: REMOVE_PLAYER_MESSAGE = 54;\n */\n REMOVE_PLAYER_MESSAGE = 54,\n\n /**\n * @generated from enum value: UPDATE_CLIENT_MESSAGE = 55;\n */\n UPDATE_CLIENT_MESSAGE = 55,\n\n /**\n * @generated from enum value: UPDATE_CONTENT_ITEM_MESSAGE = 56;\n */\n UPDATE_CONTENT_ITEM_MESSAGE = 56,\n\n /**\n * @generated from enum value: UPDATE_CONTENT_ITEM_ARTWORK_MESSAGE = 57;\n */\n UPDATE_CONTENT_ITEM_ARTWORK_MESSAGE = 57,\n\n /**\n * @generated from enum value: UPDATE_PLAYER_MESSAGE = 58;\n */\n UPDATE_PLAYER_MESSAGE = 58,\n\n /**\n * @generated from enum value: PROMPT_FOR_ROUTE_AUTHORIZATION_MESSAGE = 59;\n */\n PROMPT_FOR_ROUTE_AUTHORIZATION_MESSAGE = 59,\n\n /**\n * @generated from enum value: PROMPT_FOR_ROUTE_AUTHORIZATION_RESPONSE_MESSAGE = 60;\n */\n PROMPT_FOR_ROUTE_AUTHORIZATION_RESPONSE_MESSAGE = 60,\n\n /**\n * @generated from enum value: PRESENT_ROUTE_AUTHORIZATION_STATUS_MESSAGE = 61;\n */\n PRESENT_ROUTE_AUTHORIZATION_STATUS_MESSAGE = 61,\n\n /**\n * @generated from enum value: GET_VOLUME_CONTROL_CAPABILITIES_MESSAGE = 62;\n */\n GET_VOLUME_CONTROL_CAPABILITIES_MESSAGE = 62,\n\n /**\n * @generated from enum value: GET_VOLUME_CONTROL_CAPABILITIES_RESULT_MESSAGE = 63;\n */\n GET_VOLUME_CONTROL_CAPABILITIES_RESULT_MESSAGE = 63,\n\n /**\n * @generated from enum value: VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE = 64;\n */\n VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE = 64,\n\n /**\n * @generated from enum value: UPDATE_OUTPUT_DEVICE_MESSAGE = 65;\n */\n UPDATE_OUTPUT_DEVICE_MESSAGE = 65,\n\n /**\n * @generated from enum value: REMOVE_OUTPUT_DEVICES_MESSAGE = 66;\n */\n REMOVE_OUTPUT_DEVICES_MESSAGE = 66,\n\n /**\n * @generated from enum value: REMOTE_TEXT_INPUT_MESSAGE = 67;\n */\n REMOTE_TEXT_INPUT_MESSAGE = 67,\n\n /**\n * @generated from enum value: GET_REMOTE_TEXT_INPUT_SESSION_MESSAGE = 68;\n */\n GET_REMOTE_TEXT_INPUT_SESSION_MESSAGE = 68,\n\n /**\n * Same as 66?\n *\n * @generated from enum value: REMOVE_OUTPUT_DEVICES_MESSAGE2 = 69;\n */\n REMOVE_OUTPUT_DEVICES_MESSAGE2 = 69,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_REQUEST_MESSAGE = 70;\n */\n PLAYBACK_SESSION_REQUEST_MESSAGE = 70,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_RESPONSE_MESSAGE = 71;\n */\n PLAYBACK_SESSION_RESPONSE_MESSAGE = 71,\n\n /**\n * @generated from enum value: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE = 72;\n */\n SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE = 72,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_REQUEST_MESSAGE = 73;\n */\n PLAYBACK_SESSION_MIGRATE_REQUEST_MESSAGE = 73,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_RESPONSE_MESSAGE = 74;\n */\n PLAYBACK_SESSION_MIGRATE_RESPONSE_MESSAGE = 74,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_BEGIN_MESSAGE = 75;\n */\n PLAYBACK_SESSION_MIGRATE_BEGIN_MESSAGE = 75,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_END_MESSAGE = 76;\n */\n PLAYBACK_SESSION_MIGRATE_END_MESSAGE = 76,\n\n /**\n * @generated from enum value: UPDATE_ACTIVE_SYSTEM_ENDPOINT_MESSAGE = 77;\n */\n UPDATE_ACTIVE_SYSTEM_ENDPOINT_MESSAGE = 77,\n\n /**\n * @generated from enum value: SET_DISCOVERY_MODE_MESSAGE = 101;\n */\n SET_DISCOVERY_MODE_MESSAGE = 101,\n\n /**\n * @generated from enum value: UPDATE_END_POINTS_MESSAGE = 102;\n */\n UPDATE_END_POINTS_MESSAGE = 102,\n\n /**\n * @generated from enum value: REMOVE_ENDPOINTS_MESSAGE = 103;\n */\n REMOVE_ENDPOINTS_MESSAGE = 103,\n\n /**\n * @generated from enum value: PLAYER_CLIENT_PROPERTIES_MESSAGE = 104;\n */\n PLAYER_CLIENT_PROPERTIES_MESSAGE = 104,\n\n /**\n * @generated from enum value: ORIGIN_CLIENT_PROPERTIES_MESSAGE = 105;\n */\n ORIGIN_CLIENT_PROPERTIES_MESSAGE = 105,\n\n /**\n * @generated from enum value: AUDIO_FADE_MESSAGE = 106;\n */\n AUDIO_FADE_MESSAGE = 106,\n\n /**\n * @generated from enum value: AUDIO_FADE_RESPONSE_MESSAGE = 107;\n */\n AUDIO_FADE_RESPONSE_MESSAGE = 107,\n\n /**\n * @generated from enum value: CONFIGURE_CONNECTION_MESSAGE = 120;\n */\n CONFIGURE_CONNECTION_MESSAGE = 120,\n}\n\n/**\n * Describes the enum ProtocolMessage.Type.\n */\nexport const ProtocolMessage_TypeSchema: GenEnum<ProtocolMessage_Type> = /*@__PURE__*/\n enumDesc(file_ProtocolMessage, 1, 0);\n\n",
11
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlayerPath.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Origin } from \"./Origin_pb\";\nimport { file_Origin } from \"./Origin_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { NowPlayingPlayer } from \"./NowPlayingPlayer_pb\";\nimport { file_NowPlayingPlayer } from \"./NowPlayingPlayer_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlayerPath.proto.\n */\nexport const file_PlayerPath: GenFile = /*@__PURE__*/\n fileDesc(\"ChBQbGF5ZXJQYXRoLnByb3RvImsKClBsYXllclBhdGgSFwoGb3JpZ2luGAEgASgLMgcuT3JpZ2luEiEKBmNsaWVudBgCIAEoCzIRLk5vd1BsYXlpbmdDbGllbnQSIQoGcGxheWVyGAMgASgLMhEuTm93UGxheWluZ1BsYXllcg\", [file_Origin, file_NowPlayingClient, file_NowPlayingPlayer]);\n\n/**\n * @generated from message PlayerPath\n */\nexport type PlayerPath = Message<\"PlayerPath\"> & {\n /**\n * @generated from field: optional Origin origin = 1;\n */\n origin?: Origin;\n\n /**\n * @generated from field: optional NowPlayingClient client = 2;\n */\n client?: NowPlayingClient;\n\n /**\n * @generated from field: optional NowPlayingPlayer player = 3;\n */\n player?: NowPlayingPlayer;\n};\n\n/**\n * Describes the message PlayerPath.\n * Use `create(PlayerPathSchema)` to create a new message.\n */\nexport const PlayerPathSchema: GenMessage<PlayerPath> = /*@__PURE__*/\n messageDesc(file_PlayerPath, 0);\n\n",
12
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file Origin.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { DeviceInfoMessage } from \"./DeviceInfoMessage_pb\";\nimport { file_DeviceInfoMessage } from \"./DeviceInfoMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file Origin.proto.\n */\nexport const file_Origin: GenFile = /*@__PURE__*/\n fileDesc(\"CgxPcmlnaW4ucHJvdG8iugEKBk9yaWdpbhIaCgR0eXBlGAEgASgOMgwuT3JpZ2luLlR5cGUSEwoLZGlzcGxheU5hbWUYAiABKAkSEgoKaWRlbnRpZmllchgDIAEoBRImCgpkZXZpY2VJbmZvGAQgASgLMhIuRGV2aWNlSW5mb01lc3NhZ2USFwoPaXNMb2NhbGx5SG9zdGVkGAUgASgIIioKBFR5cGUSCwoHVW5rbm93bhAAEgkKBUxvY2FsEAESCgoGQ3VzdG9tEAI\", [file_DeviceInfoMessage]);\n\n/**\n * @generated from message Origin\n */\nexport type Origin = Message<\"Origin\"> & {\n /**\n * @generated from field: optional Origin.Type type = 1;\n */\n type: Origin_Type;\n\n /**\n * @generated from field: optional string displayName = 2;\n */\n displayName: string;\n\n /**\n * @generated from field: optional int32 identifier = 3;\n */\n identifier: number;\n\n /**\n * @generated from field: optional DeviceInfoMessage deviceInfo = 4;\n */\n deviceInfo?: DeviceInfoMessage;\n\n /**\n * @generated from field: optional bool isLocallyHosted = 5;\n */\n isLocallyHosted: boolean;\n};\n\n/**\n * Describes the message Origin.\n * Use `create(OriginSchema)` to create a new message.\n */\nexport const OriginSchema: GenMessage<Origin> = /*@__PURE__*/\n messageDesc(file_Origin, 0);\n\n/**\n * @generated from enum Origin.Type\n */\nexport enum Origin_Type {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Local = 1;\n */\n Local = 1,\n\n /**\n * @generated from enum value: Custom = 2;\n */\n Custom = 2,\n}\n\n/**\n * Describes the enum Origin.Type.\n */\nexport const Origin_TypeSchema: GenEnum<Origin_Type> = /*@__PURE__*/\n enumDesc(file_Origin, 0, 0);\n\n",
13
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file DeviceInfoMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { DeviceClass_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file DeviceInfoMessage.proto.\n */\nexport const file_DeviceInfoMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChdEZXZpY2VJbmZvTWVzc2FnZS5wcm90byIyChFQcmVmZXJyZWRFbmNvZGluZyIdCgRFbnVtEgsKB0RlZmF1bHQQABIICgRKU09OEAEirAsKEURldmljZUluZm9NZXNzYWdlEhgKEHVuaXF1ZUlkZW50aWZpZXIYASABKAkSDAoEbmFtZRgCIAIoCRIaChJsb2NhbGl6ZWRNb2RlbE5hbWUYAyABKAkSGgoSc3lzdGVtQnVpbGRWZXJzaW9uGAQgASgJEiMKG2FwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllchgFIAEoCRIgChhhcHBsaWNhdGlvbkJ1bmRsZVZlcnNpb24YBiABKAkSFwoPcHJvdG9jb2xWZXJzaW9uGAcgASgFEiAKGGxhc3RTdXBwb3J0ZWRNZXNzYWdlVHlwZRgIIAEoDRIdChVzdXBwb3J0c1N5c3RlbVBhaXJpbmcYCSABKAgSFQoNYWxsb3dzUGFpcmluZxgKIAEoCBIRCgljb25uZWN0ZWQYCyABKAgSHgoWc3lzdGVtTWVkaWFBcHBsaWNhdGlvbhgMIAEoCRITCgtzdXBwb3J0c0FDTBgNIAEoCBIbChNzdXBwb3J0c1NoYXJlZFF1ZXVlGA4gASgIEh4KFnN1cHBvcnRzRXh0ZW5kZWRNb3Rpb24YDyABKAgSGAoQYmx1ZXRvb3RoQWRkcmVzcxgQIAEoDBIaChJzaGFyZWRRdWV1ZVZlcnNpb24YESABKA0SEQoJZGV2aWNlVUlEGBMgASgJEh0KFW1hbmFnZWRDb25maWdEZXZpY2VJRBgUIAEoCRImCgtkZXZpY2VDbGFzcxgVIAEoDjIRLkRldmljZUNsYXNzLkVudW0SGgoSbG9naWNhbERldmljZUNvdW50GBYgASgNEhoKEnRpZ2h0bHlTeW5jZWRHcm91cBgXIAEoCBIaChJpc1Byb3h5R3JvdXBQbGF5ZXIYGCABKAgSFAoMdGlnaHRTeW5jVUlEGBkgASgJEhAKCGdyb3VwVUlEGBogASgJEhEKCWdyb3VwTmFtZRgbIAEoCRIqCg5ncm91cGVkRGV2aWNlcxgcIAMoCzISLkRldmljZUluZm9NZXNzYWdlEhUKDWlzR3JvdXBMZWFkZXIYHSABKAgSFwoPaXNBaXJwbGF5QWN0aXZlGB4gASgIEiAKGHN5c3RlbVBvZGNhc3RBcHBsaWNhdGlvbhgfIAEoCRIdChVzZW5kZXJEZWZhdWx0R3JvdXBVSUQYICABKAkSGAoQYWlycGxheVJlY2VpdmVycxghIAMoCRIRCglsaW5rQWdlbnQYIiABKAkSEQoJY2x1c3RlcklEGCMgASgJEhcKD2NsdXN0ZXJMZWFkZXJJRBgkIAEoCRITCgtjbHVzdGVyVHlwZRglIAEoDRIWCg5pc0NsdXN0ZXJBd2FyZRgmIAEoCBIPCgdtb2RlbElEGCcgASgJEhsKE3N1cHBvcnRzTXVsdGlwbGF5ZXIYKCABKAgSGAoQcm91dGluZ0NvbnRleHRJRBgpIAEoCRIWCg5haXJQbGF5R3JvdXBJRBgqIAEoCRIeChZzeXN0ZW1Cb29rc0FwcGxpY2F0aW9uGCsgASgJEiwKEGNsdXN0ZXJlZERldmljZXMYLCADKAsyEi5EZXZpY2VJbmZvTWVzc2FnZRIyCipwYXJlbnRHcm91cENvbnRhaW5zRGlzY292ZXJhYmxlR3JvdXBMZWFkZXIYLSABKA0SLAokZ3JvdXBDb250YWluc0Rpc2NvdmVyYWJsZUdyb3VwTGVhZGVyGC4gASgNEhwKFGxhc3RLbm93bkNsdXN0ZXJUeXBlGC8gASgNEiEKGXN1cHBvcnRzT3V0cHV0Q29udGV4dFN5bmMYMSABKAgSFAoMY29tcHV0ZXJOYW1lGDIgASgJEh0KFWNvbmZpZ3VyZWRDbHVzdGVyU2l6ZRgzIAEoDRIyChFwcmVmZXJyZWRFbmNvZGluZxg0IAEoDjIXLlByZWZlcnJlZEVuY29kaW5nLkVudW06UgoRZGV2aWNlSW5mb01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYFCABKAsyEi5EZXZpY2VJbmZvTWVzc2FnZVIRZGV2aWNlSW5mb01lc3NhZ2U\", [file_ProtocolMessage, file_Common]);\n\n/**\n * @generated from message PreferredEncoding\n */\nexport type PreferredEncoding = Message<\"PreferredEncoding\"> & {\n};\n\n/**\n * Describes the message PreferredEncoding.\n * Use `create(PreferredEncodingSchema)` to create a new message.\n */\nexport const PreferredEncodingSchema: GenMessage<PreferredEncoding> = /*@__PURE__*/\n messageDesc(file_DeviceInfoMessage, 0);\n\n/**\n * @generated from enum PreferredEncoding.Enum\n */\nexport enum PreferredEncoding_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: JSON = 1;\n */\n JSON = 1,\n}\n\n/**\n * Describes the enum PreferredEncoding.Enum.\n */\nexport const PreferredEncoding_EnumSchema: GenEnum<PreferredEncoding_Enum> = /*@__PURE__*/\n enumDesc(file_DeviceInfoMessage, 0, 0);\n\n/**\n * @generated from message DeviceInfoMessage\n */\nexport type DeviceInfoMessage = Message<\"DeviceInfoMessage\"> & {\n /**\n * Example: B8D8678C-9DA9-4D29-9338-5D6B827B8063\n *\n * @generated from field: optional string uniqueIdentifier = 1;\n */\n uniqueIdentifier: string;\n\n /**\n * Example: Jean's iPhone\n *\n * @generated from field: required string name = 2;\n */\n name: string;\n\n /**\n * Example: iPhone\n *\n * @generated from field: optional string localizedModelName = 3;\n */\n localizedModelName: string;\n\n /**\n * Example: 13F69\n *\n * @generated from field: optional string systemBuildVersion = 4;\n */\n systemBuildVersion: string;\n\n /**\n * Example: com.example.myremote\n *\n * @generated from field: optional string applicationBundleIdentifier = 5;\n */\n applicationBundleIdentifier: string;\n\n /**\n * Example: 107\n *\n * @generated from field: optional string applicationBundleVersion = 6;\n */\n applicationBundleVersion: string;\n\n /**\n * Example: 1\n *\n * @generated from field: optional int32 protocolVersion = 7;\n */\n protocolVersion: number;\n\n /**\n * @generated from field: optional uint32 lastSupportedMessageType = 8;\n */\n lastSupportedMessageType: number;\n\n /**\n * @generated from field: optional bool supportsSystemPairing = 9;\n */\n supportsSystemPairing: boolean;\n\n /**\n * @generated from field: optional bool allowsPairing = 10;\n */\n allowsPairing: boolean;\n\n /**\n * @generated from field: optional bool connected = 11;\n */\n connected: boolean;\n\n /**\n * @generated from field: optional string systemMediaApplication = 12;\n */\n systemMediaApplication: string;\n\n /**\n * @generated from field: optional bool supportsACL = 13;\n */\n supportsACL: boolean;\n\n /**\n * @generated from field: optional bool supportsSharedQueue = 14;\n */\n supportsSharedQueue: boolean;\n\n /**\n * @generated from field: optional bool supportsExtendedMotion = 15;\n */\n supportsExtendedMotion: boolean;\n\n /**\n * @generated from field: optional bytes bluetoothAddress = 16;\n */\n bluetoothAddress: Uint8Array;\n\n /**\n * @generated from field: optional uint32 sharedQueueVersion = 17;\n */\n sharedQueueVersion: number;\n\n /**\n * @generated from field: optional string deviceUID = 19;\n */\n deviceUID: string;\n\n /**\n * @generated from field: optional string managedConfigDeviceID = 20;\n */\n managedConfigDeviceID: string;\n\n /**\n * @generated from field: optional DeviceClass.Enum deviceClass = 21;\n */\n deviceClass: DeviceClass_Enum;\n\n /**\n * @generated from field: optional uint32 logicalDeviceCount = 22;\n */\n logicalDeviceCount: number;\n\n /**\n * @generated from field: optional bool tightlySyncedGroup = 23;\n */\n tightlySyncedGroup: boolean;\n\n /**\n * @generated from field: optional bool isProxyGroupPlayer = 24;\n */\n isProxyGroupPlayer: boolean;\n\n /**\n * @generated from field: optional string tightSyncUID = 25;\n */\n tightSyncUID: string;\n\n /**\n * @generated from field: optional string groupUID = 26;\n */\n groupUID: string;\n\n /**\n * @generated from field: optional string groupName = 27;\n */\n groupName: string;\n\n /**\n * @generated from field: repeated DeviceInfoMessage groupedDevices = 28;\n */\n groupedDevices: DeviceInfoMessage[];\n\n /**\n * @generated from field: optional bool isGroupLeader = 29;\n */\n isGroupLeader: boolean;\n\n /**\n * @generated from field: optional bool isAirplayActive = 30;\n */\n isAirplayActive: boolean;\n\n /**\n * @generated from field: optional string systemPodcastApplication = 31;\n */\n systemPodcastApplication: string;\n\n /**\n * @generated from field: optional string senderDefaultGroupUID = 32;\n */\n senderDefaultGroupUID: string;\n\n /**\n * @generated from field: repeated string airplayReceivers = 33;\n */\n airplayReceivers: string[];\n\n /**\n * @generated from field: optional string linkAgent = 34;\n */\n linkAgent: string;\n\n /**\n * @generated from field: optional string clusterID = 35;\n */\n clusterID: string;\n\n /**\n * @generated from field: optional string clusterLeaderID = 36;\n */\n clusterLeaderID: string;\n\n /**\n * @generated from field: optional uint32 clusterType = 37;\n */\n clusterType: number;\n\n /**\n * @generated from field: optional bool isClusterAware = 38;\n */\n isClusterAware: boolean;\n\n /**\n * @generated from field: optional string modelID = 39;\n */\n modelID: string;\n\n /**\n * @generated from field: optional bool supportsMultiplayer = 40;\n */\n supportsMultiplayer: boolean;\n\n /**\n * Example: 577E1BCA-2D9B-41C2-A8F8-C515CE8072D4\n *\n * @generated from field: optional string routingContextID = 41;\n */\n routingContextID: string;\n\n /**\n * Example: 6E0ED14E-0BA4-4A84-AF30-9EB080E7AA73\n *\n * @generated from field: optional string airPlayGroupID = 42;\n */\n airPlayGroupID: string;\n\n /**\n * Example: com.apple.iBooks\n *\n * @generated from field: optional string systemBooksApplication = 43;\n */\n systemBooksApplication: string;\n\n /**\n * @generated from field: repeated DeviceInfoMessage clusteredDevices = 44;\n */\n clusteredDevices: DeviceInfoMessage[];\n\n /**\n * @generated from field: optional uint32 parentGroupContainsDiscoverableGroupLeader = 45;\n */\n parentGroupContainsDiscoverableGroupLeader: number;\n\n /**\n * @generated from field: optional uint32 groupContainsDiscoverableGroupLeader = 46;\n */\n groupContainsDiscoverableGroupLeader: number;\n\n /**\n * @generated from field: optional uint32 lastKnownClusterType = 47;\n */\n lastKnownClusterType: number;\n\n /**\n * repeated ... allClusteredDevices = 48;\n *\n * @generated from field: optional bool supportsOutputContextSync = 49;\n */\n supportsOutputContextSync: boolean;\n\n /**\n * @generated from field: optional string computerName = 50;\n */\n computerName: string;\n\n /**\n * @generated from field: optional uint32 configuredClusterSize = 51;\n */\n configuredClusterSize: number;\n\n /**\n * @generated from field: optional PreferredEncoding.Enum preferredEncoding = 52;\n */\n preferredEncoding: PreferredEncoding_Enum;\n};\n\n/**\n * Describes the message DeviceInfoMessage.\n * Use `create(DeviceInfoMessageSchema)` to create a new message.\n */\nexport const DeviceInfoMessageSchema: GenMessage<DeviceInfoMessage> = /*@__PURE__*/\n messageDesc(file_DeviceInfoMessage, 1);\n\n/**\n * @generated from extension: optional DeviceInfoMessage deviceInfoMessage = 20;\n */\nexport const deviceInfoMessage: GenExtension<ProtocolMessage, DeviceInfoMessage> = /*@__PURE__*/\n extDesc(file_DeviceInfoMessage, 0);\n\n",
14
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file Common.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file Common.proto.\n */\nexport const file_Common: GenFile = /*@__PURE__*/\n fileDesc(\"CgxDb21tb24ucHJvdG8iPAoKUmVwZWF0TW9kZSIuCgRFbnVtEgsKB1Vua25vd24QABIHCgNPZmYQARIHCgNPbmUQAhIHCgNBbGwQAyJCCgtTaHVmZmxlTW9kZSIzCgRFbnVtEgsKB1Vua25vd24QABIHCgNPZmYQARIKCgZBbGJ1bXMQAhIJCgVTb25ncxADIokBCgtEZXZpY2VDbGFzcyJ6CgRFbnVtEgsKB0ludmFsaWQQABIKCgZpUGhvbmUQARIICgRpUG9kEAISCAoEaVBhZBADEgsKB0FwcGxlVFYQBBIJCgVpRlBHQRAFEgkKBVdhdGNoEAYSDQoJQWNjZXNzb3J5EAcSCgoGQnJpZGdlEAgSBwoDTWFjEAkiYgoKRGV2aWNlVHlwZSJUCgRFbnVtEgsKB1Vua25vd24QABILCgdBaXJQbGF5EAESDQoJQmx1ZXRvb3RoEAISCwoHQ2FyUGxheRADEgsKB0J1aWx0SW4QBBIJCgVXaXJlZBAFIoACCg1EZXZpY2VTdWJUeXBlIu4BCgRFbnVtEgsKB0RlZmF1bHQQABILCgdTcGVha2VyEAESDgoKSGVhZHBob25lcxACEgsKB0hlYWRzZXQQAxIMCghSZWNlaXZlchAEEgsKB0xpbmVPdXQQBRIHCgNVU0IQBhIPCgtEaXNwbGF5UG9ydBAHEggKBEhETUkQCBINCglMb3dFbmVyZ3kQCRIJCgVTUERJRhAKEgYKAlRWEAsSCwoHSG9tZVBvZBAMEgsKB0FwcGxlVFYQDRILCgdWZWhpY2xlEA4SCwoHQ2x1c3RlchAPEg0KCVNldFRvcEJveBAQEgsKB1RWU3RpY2sQESJoCg1QbGF5YmFja1N0YXRlIlcKBEVudW0SCwoHVW5rbm93bhAAEgsKB1BsYXlpbmcQARIKCgZQYXVzZWQQAhILCgdTdG9wcGVkEAMSDwoLSW50ZXJydXB0ZWQQBBILCgdTZWVraW5nEAU\");\n\n/**\n * @generated from message RepeatMode\n */\nexport type RepeatMode = Message<\"RepeatMode\"> & {\n};\n\n/**\n * Describes the message RepeatMode.\n * Use `create(RepeatModeSchema)` to create a new message.\n */\nexport const RepeatModeSchema: GenMessage<RepeatMode> = /*@__PURE__*/\n messageDesc(file_Common, 0);\n\n/**\n * @generated from enum RepeatMode.Enum\n */\nexport enum RepeatMode_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Off = 1;\n */\n Off = 1,\n\n /**\n * @generated from enum value: One = 2;\n */\n One = 2,\n\n /**\n * @generated from enum value: All = 3;\n */\n All = 3,\n}\n\n/**\n * Describes the enum RepeatMode.Enum.\n */\nexport const RepeatMode_EnumSchema: GenEnum<RepeatMode_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 0, 0);\n\n/**\n * @generated from message ShuffleMode\n */\nexport type ShuffleMode = Message<\"ShuffleMode\"> & {\n};\n\n/**\n * Describes the message ShuffleMode.\n * Use `create(ShuffleModeSchema)` to create a new message.\n */\nexport const ShuffleModeSchema: GenMessage<ShuffleMode> = /*@__PURE__*/\n messageDesc(file_Common, 1);\n\n/**\n * @generated from enum ShuffleMode.Enum\n */\nexport enum ShuffleMode_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Off = 1;\n */\n Off = 1,\n\n /**\n * @generated from enum value: Albums = 2;\n */\n Albums = 2,\n\n /**\n * @generated from enum value: Songs = 3;\n */\n Songs = 3,\n}\n\n/**\n * Describes the enum ShuffleMode.Enum.\n */\nexport const ShuffleMode_EnumSchema: GenEnum<ShuffleMode_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 1, 0);\n\n/**\n * @generated from message DeviceClass\n */\nexport type DeviceClass = Message<\"DeviceClass\"> & {\n};\n\n/**\n * Describes the message DeviceClass.\n * Use `create(DeviceClassSchema)` to create a new message.\n */\nexport const DeviceClassSchema: GenMessage<DeviceClass> = /*@__PURE__*/\n messageDesc(file_Common, 2);\n\n/**\n * @generated from enum DeviceClass.Enum\n */\nexport enum DeviceClass_Enum {\n /**\n * @generated from enum value: Invalid = 0;\n */\n Invalid = 0,\n\n /**\n * @generated from enum value: iPhone = 1;\n */\n iPhone = 1,\n\n /**\n * @generated from enum value: iPod = 2;\n */\n iPod = 2,\n\n /**\n * @generated from enum value: iPad = 3;\n */\n iPad = 3,\n\n /**\n * @generated from enum value: AppleTV = 4;\n */\n AppleTV = 4,\n\n /**\n * @generated from enum value: iFPGA = 5;\n */\n iFPGA = 5,\n\n /**\n * @generated from enum value: Watch = 6;\n */\n Watch = 6,\n\n /**\n * @generated from enum value: Accessory = 7;\n */\n Accessory = 7,\n\n /**\n * @generated from enum value: Bridge = 8;\n */\n Bridge = 8,\n\n /**\n * @generated from enum value: Mac = 9;\n */\n Mac = 9,\n}\n\n/**\n * Describes the enum DeviceClass.Enum.\n */\nexport const DeviceClass_EnumSchema: GenEnum<DeviceClass_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 2, 0);\n\n/**\n * @generated from message DeviceType\n */\nexport type DeviceType = Message<\"DeviceType\"> & {\n};\n\n/**\n * Describes the message DeviceType.\n * Use `create(DeviceTypeSchema)` to create a new message.\n */\nexport const DeviceTypeSchema: GenMessage<DeviceType> = /*@__PURE__*/\n messageDesc(file_Common, 3);\n\n/**\n * @generated from enum DeviceType.Enum\n */\nexport enum DeviceType_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: AirPlay = 1;\n */\n AirPlay = 1,\n\n /**\n * @generated from enum value: Bluetooth = 2;\n */\n Bluetooth = 2,\n\n /**\n * @generated from enum value: CarPlay = 3;\n */\n CarPlay = 3,\n\n /**\n * @generated from enum value: BuiltIn = 4;\n */\n BuiltIn = 4,\n\n /**\n * @generated from enum value: Wired = 5;\n */\n Wired = 5,\n}\n\n/**\n * Describes the enum DeviceType.Enum.\n */\nexport const DeviceType_EnumSchema: GenEnum<DeviceType_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 3, 0);\n\n/**\n * @generated from message DeviceSubType\n */\nexport type DeviceSubType = Message<\"DeviceSubType\"> & {\n};\n\n/**\n * Describes the message DeviceSubType.\n * Use `create(DeviceSubTypeSchema)` to create a new message.\n */\nexport const DeviceSubTypeSchema: GenMessage<DeviceSubType> = /*@__PURE__*/\n messageDesc(file_Common, 4);\n\n/**\n * @generated from enum DeviceSubType.Enum\n */\nexport enum DeviceSubType_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: Speaker = 1;\n */\n Speaker = 1,\n\n /**\n * @generated from enum value: Headphones = 2;\n */\n Headphones = 2,\n\n /**\n * @generated from enum value: Headset = 3;\n */\n Headset = 3,\n\n /**\n * @generated from enum value: Receiver = 4;\n */\n Receiver = 4,\n\n /**\n * @generated from enum value: LineOut = 5;\n */\n LineOut = 5,\n\n /**\n * @generated from enum value: USB = 6;\n */\n USB = 6,\n\n /**\n * @generated from enum value: DisplayPort = 7;\n */\n DisplayPort = 7,\n\n /**\n * @generated from enum value: HDMI = 8;\n */\n HDMI = 8,\n\n /**\n * @generated from enum value: LowEnergy = 9;\n */\n LowEnergy = 9,\n\n /**\n * @generated from enum value: SPDIF = 10;\n */\n SPDIF = 10,\n\n /**\n * @generated from enum value: TV = 11;\n */\n TV = 11,\n\n /**\n * @generated from enum value: HomePod = 12;\n */\n HomePod = 12,\n\n /**\n * @generated from enum value: AppleTV = 13;\n */\n AppleTV = 13,\n\n /**\n * @generated from enum value: Vehicle = 14;\n */\n Vehicle = 14,\n\n /**\n * @generated from enum value: Cluster = 15;\n */\n Cluster = 15,\n\n /**\n * @generated from enum value: SetTopBox = 16;\n */\n SetTopBox = 16,\n\n /**\n * @generated from enum value: TVStick = 17;\n */\n TVStick = 17,\n}\n\n/**\n * Describes the enum DeviceSubType.Enum.\n */\nexport const DeviceSubType_EnumSchema: GenEnum<DeviceSubType_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 4, 0);\n\n/**\n * @generated from message PlaybackState\n */\nexport type PlaybackState = Message<\"PlaybackState\"> & {\n};\n\n/**\n * Describes the message PlaybackState.\n * Use `create(PlaybackStateSchema)` to create a new message.\n */\nexport const PlaybackStateSchema: GenMessage<PlaybackState> = /*@__PURE__*/\n messageDesc(file_Common, 5);\n\n/**\n * @generated from enum PlaybackState.Enum\n */\nexport enum PlaybackState_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Playing = 1;\n */\n Playing = 1,\n\n /**\n * @generated from enum value: Paused = 2;\n */\n Paused = 2,\n\n /**\n * @generated from enum value: Stopped = 3;\n */\n Stopped = 3,\n\n /**\n * @generated from enum value: Interrupted = 4;\n */\n Interrupted = 4,\n\n /**\n * @generated from enum value: Seeking = 5;\n */\n Seeking = 5,\n}\n\n/**\n * Describes the enum PlaybackState.Enum.\n */\nexport const PlaybackState_EnumSchema: GenEnum<PlaybackState_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 5, 0);\n\n",
15
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NowPlayingClient.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NowPlayingClient.proto.\n */\nexport const file_NowPlayingClient: GenFile = /*@__PURE__*/\n fileDesc(\"ChZOb3dQbGF5aW5nQ2xpZW50LnByb3RvIugBChBOb3dQbGF5aW5nQ2xpZW50EhkKEXByb2Nlc3NJZGVudGlmaWVyGAEgASgFEhgKEGJ1bmRsZUlkZW50aWZpZXIYAiABKAkSKQohcGFyZW50QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyGAMgASgJEh0KFXByb2Nlc3NVc2VySWRlbnRpZmllchgEIAEoBRIcChRub3dQbGF5aW5nVmlzaWJpbGl0eRgFIAEoBRITCgtkaXNwbGF5TmFtZRgHIAEoCRIiChpidW5kbGVJZGVudGlmaWVySGllcmFyY2h5cxgIIAMoCQ\");\n\n/**\n * @generated from message NowPlayingClient\n */\nexport type NowPlayingClient = Message<\"NowPlayingClient\"> & {\n /**\n * @generated from field: optional int32 processIdentifier = 1;\n */\n processIdentifier: number;\n\n /**\n * @generated from field: optional string bundleIdentifier = 2;\n */\n bundleIdentifier: string;\n\n /**\n * @generated from field: optional string parentApplicationBundleIdentifier = 3;\n */\n parentApplicationBundleIdentifier: string;\n\n /**\n * @generated from field: optional int32 processUserIdentifier = 4;\n */\n processUserIdentifier: number;\n\n /**\n * @generated from field: optional int32 nowPlayingVisibility = 5;\n */\n nowPlayingVisibility: number;\n\n /**\n * optional TintColor tintColor = 6;\n *\n * @generated from field: optional string displayName = 7;\n */\n displayName: string;\n\n /**\n * @generated from field: repeated string bundleIdentifierHierarchys = 8;\n */\n bundleIdentifierHierarchys: string[];\n};\n\n/**\n * Describes the message NowPlayingClient.\n * Use `create(NowPlayingClientSchema)` to create a new message.\n */\nexport const NowPlayingClientSchema: GenMessage<NowPlayingClient> = /*@__PURE__*/\n messageDesc(file_NowPlayingClient, 0);\n\n",
16
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NowPlayingPlayer.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NowPlayingPlayer.proto.\n */\nexport const file_NowPlayingPlayer: GenFile = /*@__PURE__*/\n fileDesc(\"ChZOb3dQbGF5aW5nUGxheWVyLnByb3RvIq0BChBOb3dQbGF5aW5nUGxheWVyEhIKCmlkZW50aWZpZXIYASABKAkSEwoLZGlzcGxheU5hbWUYAiABKAkSFwoPaXNEZWZhdWx0UGxheWVyGAMgASgIEhgKEGF1ZGlvU2Vzc2lvblR5cGUYBCABKAUSFAoMbXhTZXNzaW9uSURzGAUgASgDEhYKDmF1ZGlvU2Vzc2lvbklEGAYgASgNEg8KB2ljb25VUkwYByABKAk\");\n\n/**\n * @generated from message NowPlayingPlayer\n */\nexport type NowPlayingPlayer = Message<\"NowPlayingPlayer\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional string displayName = 2;\n */\n displayName: string;\n\n /**\n * @generated from field: optional bool isDefaultPlayer = 3;\n */\n isDefaultPlayer: boolean;\n\n /**\n * @generated from field: optional int32 audioSessionType = 4;\n */\n audioSessionType: number;\n\n /**\n * @generated from field: optional int64 mxSessionIDs = 5;\n */\n mxSessionIDs: bigint;\n\n /**\n * @generated from field: optional uint32 audioSessionID = 6;\n */\n audioSessionID: number;\n\n /**\n * @generated from field: optional string iconURL = 7;\n */\n iconURL: string;\n};\n\n/**\n * Describes the message NowPlayingPlayer.\n * Use `create(NowPlayingPlayerSchema)` to create a new message.\n */\nexport const NowPlayingPlayerSchema: GenMessage<NowPlayingPlayer> = /*@__PURE__*/\n messageDesc(file_NowPlayingPlayer, 0);\n\n",
17
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file AudioFadeResponseMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file AudioFadeResponseMessage.proto.\n */\nexport const file_AudioFadeResponseMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5BdWRpb0ZhZGVSZXNwb25zZU1lc3NhZ2UucHJvdG8iMAoYQXVkaW9GYWRlUmVzcG9uc2VNZXNzYWdlEhQKDGZhZGVEdXJhdGlvbhgBIAEoAzpnChhhdWRpb0ZhZGVSZXNwb25zZU1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYWSABKAsyGS5BdWRpb0ZhZGVSZXNwb25zZU1lc3NhZ2VSGGF1ZGlvRmFkZVJlc3BvbnNlTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message AudioFadeResponseMessage\n */\nexport type AudioFadeResponseMessage = Message<\"AudioFadeResponseMessage\"> & {\n /**\n * @generated from field: optional int64 fadeDuration = 1;\n */\n fadeDuration: bigint;\n};\n\n/**\n * Describes the message AudioFadeResponseMessage.\n * Use `create(AudioFadeResponseMessageSchema)` to create a new message.\n */\nexport const AudioFadeResponseMessageSchema: GenMessage<AudioFadeResponseMessage> = /*@__PURE__*/\n messageDesc(file_AudioFadeResponseMessage, 0);\n\n/**\n * @generated from extension: optional AudioFadeResponseMessage audioFadeResponseMessage = 89;\n */\nexport const audioFadeResponseMessage: GenExtension<ProtocolMessage, AudioFadeResponseMessage> = /*@__PURE__*/\n extDesc(file_AudioFadeResponseMessage, 0);\n\n",
18
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file AudioFormatSettingsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file AudioFormatSettingsMessage.proto.\n */\nexport const file_AudioFormatSettingsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBBdWRpb0Zvcm1hdFNldHRpbmdzTWVzc2FnZS5wcm90byI2ChNBdWRpb0Zvcm1hdFNldHRpbmdzEh8KF2Zvcm1hdFNldHRpbmdzUGxpc3REYXRhGAEgASgM\");\n\n/**\n * @generated from message AudioFormatSettings\n */\nexport type AudioFormatSettings = Message<\"AudioFormatSettings\"> & {\n /**\n * @generated from field: optional bytes formatSettingsPlistData = 1;\n */\n formatSettingsPlistData: Uint8Array;\n};\n\n/**\n * Describes the message AudioFormatSettings.\n * Use `create(AudioFormatSettingsSchema)` to create a new message.\n */\nexport const AudioFormatSettingsSchema: GenMessage<AudioFormatSettings> = /*@__PURE__*/\n messageDesc(file_AudioFormatSettingsMessage, 0);\n\n",
19
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ClientUpdatesConfigMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ClientUpdatesConfigMessage.proto.\n */\nexport const file_ClientUpdatesConfigMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBDbGllbnRVcGRhdGVzQ29uZmlnTWVzc2FnZS5wcm90byKwAQoaQ2xpZW50VXBkYXRlc0NvbmZpZ01lc3NhZ2USFgoOYXJ0d29ya1VwZGF0ZXMYASABKAgSGQoRbm93UGxheWluZ1VwZGF0ZXMYAiABKAgSFQoNdm9sdW1lVXBkYXRlcxgDIAEoCBIXCg9rZXlib2FyZFVwZGF0ZXMYBCABKAgSGwoTb3V0cHV0RGV2aWNlVXBkYXRlcxgFIAEoCBISCgpfX3Vua25vd24xGAYgASgIOm0KGmNsaWVudFVwZGF0ZXNDb25maWdNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGBUgASgLMhsuQ2xpZW50VXBkYXRlc0NvbmZpZ01lc3NhZ2VSGmNsaWVudFVwZGF0ZXNDb25maWdNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ClientUpdatesConfigMessage\n */\nexport type ClientUpdatesConfigMessage = Message<\"ClientUpdatesConfigMessage\"> & {\n /**\n * @generated from field: optional bool artworkUpdates = 1;\n */\n artworkUpdates: boolean;\n\n /**\n * @generated from field: optional bool nowPlayingUpdates = 2;\n */\n nowPlayingUpdates: boolean;\n\n /**\n * @generated from field: optional bool volumeUpdates = 3;\n */\n volumeUpdates: boolean;\n\n /**\n * @generated from field: optional bool keyboardUpdates = 4;\n */\n keyboardUpdates: boolean;\n\n /**\n * @generated from field: optional bool outputDeviceUpdates = 5;\n */\n outputDeviceUpdates: boolean;\n\n /**\n * @generated from field: optional bool __unknown1 = 6;\n */\n Unknown1: boolean;\n};\n\n/**\n * Describes the message ClientUpdatesConfigMessage.\n * Use `create(ClientUpdatesConfigMessageSchema)` to create a new message.\n */\nexport const ClientUpdatesConfigMessageSchema: GenMessage<ClientUpdatesConfigMessage> = /*@__PURE__*/\n messageDesc(file_ClientUpdatesConfigMessage, 0);\n\n/**\n * @generated from extension: optional ClientUpdatesConfigMessage clientUpdatesConfigMessage = 21;\n */\nexport const clientUpdatesConfigMessage: GenExtension<ProtocolMessage, ClientUpdatesConfigMessage> = /*@__PURE__*/\n extDesc(file_ClientUpdatesConfigMessage, 0);\n\n",
20
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file CommandInfo.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { RepeatMode_Enum, ShuffleMode_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file CommandInfo.proto.\n */\nexport const file_CommandInfo: GenFile = /*@__PURE__*/\n fileDesc(\"ChFDb21tYW5kSW5mby5wcm90byJMCg5RdWV1ZUVuZEFjdGlvbiI6CgRFbnVtEg8KC0NsZWFyQWN0aW9uEAASCAoETm9uZRABEgkKBVJlc2V0EAISDAoIQXV0b1BsYXkQAyJKCg1EaXNhYmxlUmVhc29uIjkKBEVudW0SCwoHVW5rbm93bhAAEg4KCkFkUGxheWJhY2sQARIUChBTa2lwTGltaXRSZWFjaGVkEAIigwEKHFByZWxvYWRlZFBsYXliYWNrU2Vzc2lvbkluZm8SIQoZcGxheWJhY2tTZXNzaW9uSWRlbnRpZmllchgBIAEoCRIfChdwbGF5YmFja1Nlc3Npb25SZXZpc2lvbhgCIAEoCRIfChdwbGF5YmFja1Nlc3Npb25Qcmlvcml0eRgDIAEoBSK/BwoLQ29tbWFuZEluZm8SGQoHY29tbWFuZBgBIAEoDjIILkNvbW1hbmQSDwoHZW5hYmxlZBgCIAEoCBIOCgZhY3RpdmUYAyABKAgSGgoScHJlZmVycmVkSW50ZXJ2YWxzGAQgAygBEhYKDmxvY2FsaXplZFRpdGxlGAUgASgJEhUKDW1pbmltdW1SYXRpbmcYBiABKAISFQoNbWF4aW11bVJhdGluZxgHIAEoAhIWCg5zdXBwb3J0ZWRSYXRlcxgIIAMoAhIbChNsb2NhbGl6ZWRTaG9ydFRpdGxlGAkgASgJEiQKCnJlcGVhdE1vZGUYCiABKA4yEC5SZXBlYXRNb2RlLkVudW0SJgoLc2h1ZmZsZU1vZGUYCyABKA4yES5TaHVmZmxlTW9kZS5FbnVtEhkKEXByZXNlbnRhdGlvblN0eWxlGAwgASgFEhQKDHNraXBJbnRlcnZhbBgNIAEoBRIZChFudW1BdmFpbGFibGVTa2lwcxgOIAEoBRIVCg1za2lwRnJlcXVlbmN5GA8gASgFEhAKCGNhblNjcnViGBAgASgFEiMKG3N1cHBvcnRlZFBsYXliYWNrUXVldWVUeXBlcxgRIAMoBRInCh9zdXBwb3J0ZWRDdXN0b21RdWV1ZUlkZW50aWZpZXJzGBIgAygJEiMKG3N1cHBvcnRlZEluc2VydGlvblBvc2l0aW9ucxgTIAMoBRIbChNzdXBwb3J0c1NoYXJlZFF1ZXVlGBQgASgIEhcKD3VwTmV4dEl0ZW1Db3VudBgVIAEoBRIdChVwcmVmZXJyZWRQbGF5YmFja1JhdGUYFiABKAISJQodc3VwcG9ydGVkUGxheWJhY2tTZXNzaW9uVHlwZXMYFyADKAkSIwobY3VycmVudFBsYXliYWNrU2Vzc2lvblR5cGVzGBggAygJEiEKGXBsYXliYWNrU2Vzc2lvbklkZW50aWZpZXIYGSABKAkSMwoVY3VycmVudFF1ZXVlRW5kQWN0aW9uGBogASgOMhQuUXVldWVFbmRBY3Rpb24uRW51bRI2ChhzdXBwb3J0ZWRFbmRRdWV1ZUFjdGlvbnMYGyADKA4yFC5RdWV1ZUVuZEFjdGlvbi5FbnVtEioKDWRpc2FibGVSZWFzb24YHCABKA4yEy5EaXNhYmxlUmVhc29uLkVudW0SSgojc3VwcG9ydGVkUGxheWJhY2tTZXNzaW9uSWRlbnRpZmllcnMYHSADKAsyHS5QcmVsb2FkZWRQbGF5YmFja1Nlc3Npb25JbmZvKsIJCgdDb21tYW5kEgsKB1Vua25vd24QABIICgRQbGF5EAESCQoFUGF1c2UQAhITCg9Ub2dnbGVQbGF5UGF1c2UQAxIICgRTdG9wEAQSDQoJTmV4dFRyYWNrEAUSEQoNUHJldmlvdXNUcmFjaxAGEhYKEkFkdmFuY2VTaHVmZmxlTW9kZRAHEhUKEUFkdmFuY2VSZXBlYXRNb2RlEAgSFAoQQmVnaW5GYXN0Rm9yd2FyZBAJEhIKDkVuZEZhc3RGb3J3YXJkEAoSDwoLQmVnaW5SZXdpbmQQCxINCglFbmRSZXdpbmQQDBITCg9SZXdpbmQxNVNlY29uZHMQDRIYChRGYXN0Rm9yd2FyZDE1U2Vjb25kcxAOEhMKD1Jld2luZDMwU2Vjb25kcxAPEhgKFEZhc3RGb3J3YXJkMzBTZWNvbmRzEBASDwoLU2tpcEZvcndhcmQQEhIQCgxTa2lwQmFja3dhcmQQExIWChJDaGFuZ2VQbGF5YmFja1JhdGUQFBINCglSYXRlVHJhY2sQFRINCglMaWtlVHJhY2sQFhIQCgxEaXNsaWtlVHJhY2sQFxIRCg1Cb29rbWFya1RyYWNrEBgSGgoWU2Vla1RvUGxheWJhY2tQb3NpdGlvbhAtEhQKEENoYW5nZVJlcGVhdE1vZGUQLhIVChFDaGFuZ2VTaHVmZmxlTW9kZRAvEhgKFEVuYWJsZUxhbmd1YWdlT3B0aW9uEDUSGQoVRGlzYWJsZUxhbmd1YWdlT3B0aW9uEDYSDwoLTmV4dENoYXB0ZXIQGRITCg9QcmV2aW91c0NoYXB0ZXIQGhINCglOZXh0QWxidW0QGxIRCg1QcmV2aW91c0FsYnVtEBwSEAoMTmV4dFBsYXlsaXN0EB0SFAoQUHJldmlvdXNQbGF5bGlzdBAeEgwKCEJhblRyYWNrEB8SFgoSQWRkVHJhY2tUb1dpc2hMaXN0ECASGwoXUmVtb3ZlVHJhY2tGcm9tV2lzaExpc3QQIRIRCg1OZXh0SW5Db250ZXh0ECISFQoRUHJldmlvdXNJbkNvbnRleHQQIxIYChRSZXNldFBsYXliYWNrVGltZW91dBApEhQKEFNldFBsYXliYWNrUXVldWUQMBIeChpBZGROb3dQbGF5aW5nSXRlbVRvTGlicmFyeRAxEhYKEkNyZWF0ZVJhZGlvU3RhdGlvbhAyEhQKEEFkZEl0ZW1Ub0xpYnJhcnkQMxIbChdJbnNlcnRJbnRvUGxheWJhY2tRdWV1ZRA0EhgKFFJlb3JkZXJQbGF5YmFja1F1ZXVlEDcSGwoXUmVtb3ZlRnJvbVBsYXliYWNrUXVldWUQOBIbChdQbGF5SXRlbUluUGxheWJhY2tRdWV1ZRA5EhYKElByZXBhcmVGb3JTZXRRdWV1ZRA6EhYKElNldFBsYXliYWNrU2Vzc2lvbhA7EhwKGFByZWxvYWRlZFBsYXliYWNrU2Vzc2lvbhA8EiEKHVNldFByaW9yaXR5Rm9yUGxheWJhY2tTZXNzaW9uED0SGgoWRGlzY2FyZFBsYXliYWNrU2Vzc2lvbhA+Eg0KCVJlc2h1ZmZsZRA/EhkKFENoYW5nZVF1ZXVlRW5kQWN0aW9uEIcB\", [file_Common]);\n\n/**\n * @generated from message QueueEndAction\n */\nexport type QueueEndAction = Message<\"QueueEndAction\"> & {\n};\n\n/**\n * Describes the message QueueEndAction.\n * Use `create(QueueEndActionSchema)` to create a new message.\n */\nexport const QueueEndActionSchema: GenMessage<QueueEndAction> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 0);\n\n/**\n * @generated from enum QueueEndAction.Enum\n */\nexport enum QueueEndAction_Enum {\n /**\n * @generated from enum value: ClearAction = 0;\n */\n ClearAction = 0,\n\n /**\n * @generated from enum value: None = 1;\n */\n None = 1,\n\n /**\n * @generated from enum value: Reset = 2;\n */\n Reset = 2,\n\n /**\n * @generated from enum value: AutoPlay = 3;\n */\n AutoPlay = 3,\n}\n\n/**\n * Describes the enum QueueEndAction.Enum.\n */\nexport const QueueEndAction_EnumSchema: GenEnum<QueueEndAction_Enum> = /*@__PURE__*/\n enumDesc(file_CommandInfo, 0, 0);\n\n/**\n * @generated from message DisableReason\n */\nexport type DisableReason = Message<\"DisableReason\"> & {\n};\n\n/**\n * Describes the message DisableReason.\n * Use `create(DisableReasonSchema)` to create a new message.\n */\nexport const DisableReasonSchema: GenMessage<DisableReason> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 1);\n\n/**\n * @generated from enum DisableReason.Enum\n */\nexport enum DisableReason_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: AdPlayback = 1;\n */\n AdPlayback = 1,\n\n /**\n * @generated from enum value: SkipLimitReached = 2;\n */\n SkipLimitReached = 2,\n}\n\n/**\n * Describes the enum DisableReason.Enum.\n */\nexport const DisableReason_EnumSchema: GenEnum<DisableReason_Enum> = /*@__PURE__*/\n enumDesc(file_CommandInfo, 1, 0);\n\n/**\n * @generated from message PreloadedPlaybackSessionInfo\n */\nexport type PreloadedPlaybackSessionInfo = Message<\"PreloadedPlaybackSessionInfo\"> & {\n /**\n * @generated from field: optional string playbackSessionIdentifier = 1;\n */\n playbackSessionIdentifier: string;\n\n /**\n * @generated from field: optional string playbackSessionRevision = 2;\n */\n playbackSessionRevision: string;\n\n /**\n * @generated from field: optional int32 playbackSessionPriority = 3;\n */\n playbackSessionPriority: number;\n};\n\n/**\n * Describes the message PreloadedPlaybackSessionInfo.\n * Use `create(PreloadedPlaybackSessionInfoSchema)` to create a new message.\n */\nexport const PreloadedPlaybackSessionInfoSchema: GenMessage<PreloadedPlaybackSessionInfo> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 2);\n\n/**\n * @generated from message CommandInfo\n */\nexport type CommandInfo = Message<\"CommandInfo\"> & {\n /**\n * @generated from field: optional Command command = 1;\n */\n command: Command;\n\n /**\n * @generated from field: optional bool enabled = 2;\n */\n enabled: boolean;\n\n /**\n * @generated from field: optional bool active = 3;\n */\n active: boolean;\n\n /**\n * @generated from field: repeated double preferredIntervals = 4;\n */\n preferredIntervals: number[];\n\n /**\n * @generated from field: optional string localizedTitle = 5;\n */\n localizedTitle: string;\n\n /**\n * @generated from field: optional float minimumRating = 6;\n */\n minimumRating: number;\n\n /**\n * @generated from field: optional float maximumRating = 7;\n */\n maximumRating: number;\n\n /**\n * @generated from field: repeated float supportedRates = 8;\n */\n supportedRates: number[];\n\n /**\n * @generated from field: optional string localizedShortTitle = 9;\n */\n localizedShortTitle: string;\n\n /**\n * @generated from field: optional RepeatMode.Enum repeatMode = 10;\n */\n repeatMode: RepeatMode_Enum;\n\n /**\n * @generated from field: optional ShuffleMode.Enum shuffleMode = 11;\n */\n shuffleMode: ShuffleMode_Enum;\n\n /**\n * @generated from field: optional int32 presentationStyle = 12;\n */\n presentationStyle: number;\n\n /**\n * @generated from field: optional int32 skipInterval = 13;\n */\n skipInterval: number;\n\n /**\n * @generated from field: optional int32 numAvailableSkips = 14;\n */\n numAvailableSkips: number;\n\n /**\n * @generated from field: optional int32 skipFrequency = 15;\n */\n skipFrequency: number;\n\n /**\n * @generated from field: optional int32 canScrub = 16;\n */\n canScrub: number;\n\n /**\n * @generated from field: repeated int32 supportedPlaybackQueueTypes = 17;\n */\n supportedPlaybackQueueTypes: number[];\n\n /**\n * @generated from field: repeated string supportedCustomQueueIdentifiers = 18;\n */\n supportedCustomQueueIdentifiers: string[];\n\n /**\n * @generated from field: repeated int32 supportedInsertionPositions = 19;\n */\n supportedInsertionPositions: number[];\n\n /**\n * @generated from field: optional bool supportsSharedQueue = 20;\n */\n supportsSharedQueue: boolean;\n\n /**\n * @generated from field: optional int32 upNextItemCount = 21;\n */\n upNextItemCount: number;\n\n /**\n * @generated from field: optional float preferredPlaybackRate = 22;\n */\n preferredPlaybackRate: number;\n\n /**\n * @generated from field: repeated string supportedPlaybackSessionTypes = 23;\n */\n supportedPlaybackSessionTypes: string[];\n\n /**\n * @generated from field: repeated string currentPlaybackSessionTypes = 24;\n */\n currentPlaybackSessionTypes: string[];\n\n /**\n * @generated from field: optional string playbackSessionIdentifier = 25;\n */\n playbackSessionIdentifier: string;\n\n /**\n * @generated from field: optional QueueEndAction.Enum currentQueueEndAction = 26;\n */\n currentQueueEndAction: QueueEndAction_Enum;\n\n /**\n * @generated from field: repeated QueueEndAction.Enum supportedEndQueueActions = 27;\n */\n supportedEndQueueActions: QueueEndAction_Enum[];\n\n /**\n * @generated from field: optional DisableReason.Enum disableReason = 28;\n */\n disableReason: DisableReason_Enum;\n\n /**\n * @generated from field: repeated PreloadedPlaybackSessionInfo supportedPlaybackSessionIdentifiers = 29;\n */\n supportedPlaybackSessionIdentifiers: PreloadedPlaybackSessionInfo[];\n};\n\n/**\n * Describes the message CommandInfo.\n * Use `create(CommandInfoSchema)` to create a new message.\n */\nexport const CommandInfoSchema: GenMessage<CommandInfo> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 3);\n\n/**\n * @generated from enum Command\n */\nexport enum Command {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Play = 1;\n */\n Play = 1,\n\n /**\n * @generated from enum value: Pause = 2;\n */\n Pause = 2,\n\n /**\n * @generated from enum value: TogglePlayPause = 3;\n */\n TogglePlayPause = 3,\n\n /**\n * @generated from enum value: Stop = 4;\n */\n Stop = 4,\n\n /**\n * @generated from enum value: NextTrack = 5;\n */\n NextTrack = 5,\n\n /**\n * @generated from enum value: PreviousTrack = 6;\n */\n PreviousTrack = 6,\n\n /**\n * @generated from enum value: AdvanceShuffleMode = 7;\n */\n AdvanceShuffleMode = 7,\n\n /**\n * @generated from enum value: AdvanceRepeatMode = 8;\n */\n AdvanceRepeatMode = 8,\n\n /**\n * @generated from enum value: BeginFastForward = 9;\n */\n BeginFastForward = 9,\n\n /**\n * @generated from enum value: EndFastForward = 10;\n */\n EndFastForward = 10,\n\n /**\n * @generated from enum value: BeginRewind = 11;\n */\n BeginRewind = 11,\n\n /**\n * @generated from enum value: EndRewind = 12;\n */\n EndRewind = 12,\n\n /**\n * @generated from enum value: Rewind15Seconds = 13;\n */\n Rewind15Seconds = 13,\n\n /**\n * @generated from enum value: FastForward15Seconds = 14;\n */\n FastForward15Seconds = 14,\n\n /**\n * @generated from enum value: Rewind30Seconds = 15;\n */\n Rewind30Seconds = 15,\n\n /**\n * @generated from enum value: FastForward30Seconds = 16;\n */\n FastForward30Seconds = 16,\n\n /**\n * @generated from enum value: SkipForward = 18;\n */\n SkipForward = 18,\n\n /**\n * @generated from enum value: SkipBackward = 19;\n */\n SkipBackward = 19,\n\n /**\n * @generated from enum value: ChangePlaybackRate = 20;\n */\n ChangePlaybackRate = 20,\n\n /**\n * @generated from enum value: RateTrack = 21;\n */\n RateTrack = 21,\n\n /**\n * @generated from enum value: LikeTrack = 22;\n */\n LikeTrack = 22,\n\n /**\n * @generated from enum value: DislikeTrack = 23;\n */\n DislikeTrack = 23,\n\n /**\n * @generated from enum value: BookmarkTrack = 24;\n */\n BookmarkTrack = 24,\n\n /**\n * @generated from enum value: SeekToPlaybackPosition = 45;\n */\n SeekToPlaybackPosition = 45,\n\n /**\n * @generated from enum value: ChangeRepeatMode = 46;\n */\n ChangeRepeatMode = 46,\n\n /**\n * @generated from enum value: ChangeShuffleMode = 47;\n */\n ChangeShuffleMode = 47,\n\n /**\n * @generated from enum value: EnableLanguageOption = 53;\n */\n EnableLanguageOption = 53,\n\n /**\n * @generated from enum value: DisableLanguageOption = 54;\n */\n DisableLanguageOption = 54,\n\n /**\n * @generated from enum value: NextChapter = 25;\n */\n NextChapter = 25,\n\n /**\n * @generated from enum value: PreviousChapter = 26;\n */\n PreviousChapter = 26,\n\n /**\n * @generated from enum value: NextAlbum = 27;\n */\n NextAlbum = 27,\n\n /**\n * @generated from enum value: PreviousAlbum = 28;\n */\n PreviousAlbum = 28,\n\n /**\n * @generated from enum value: NextPlaylist = 29;\n */\n NextPlaylist = 29,\n\n /**\n * @generated from enum value: PreviousPlaylist = 30;\n */\n PreviousPlaylist = 30,\n\n /**\n * @generated from enum value: BanTrack = 31;\n */\n BanTrack = 31,\n\n /**\n * @generated from enum value: AddTrackToWishList = 32;\n */\n AddTrackToWishList = 32,\n\n /**\n * @generated from enum value: RemoveTrackFromWishList = 33;\n */\n RemoveTrackFromWishList = 33,\n\n /**\n * @generated from enum value: NextInContext = 34;\n */\n NextInContext = 34,\n\n /**\n * @generated from enum value: PreviousInContext = 35;\n */\n PreviousInContext = 35,\n\n /**\n * @generated from enum value: ResetPlaybackTimeout = 41;\n */\n ResetPlaybackTimeout = 41,\n\n /**\n * @generated from enum value: SetPlaybackQueue = 48;\n */\n SetPlaybackQueue = 48,\n\n /**\n * @generated from enum value: AddNowPlayingItemToLibrary = 49;\n */\n AddNowPlayingItemToLibrary = 49,\n\n /**\n * @generated from enum value: CreateRadioStation = 50;\n */\n CreateRadioStation = 50,\n\n /**\n * @generated from enum value: AddItemToLibrary = 51;\n */\n AddItemToLibrary = 51,\n\n /**\n * @generated from enum value: InsertIntoPlaybackQueue = 52;\n */\n InsertIntoPlaybackQueue = 52,\n\n /**\n * @generated from enum value: ReorderPlaybackQueue = 55;\n */\n ReorderPlaybackQueue = 55,\n\n /**\n * @generated from enum value: RemoveFromPlaybackQueue = 56;\n */\n RemoveFromPlaybackQueue = 56,\n\n /**\n * @generated from enum value: PlayItemInPlaybackQueue = 57;\n */\n PlayItemInPlaybackQueue = 57,\n\n /**\n * @generated from enum value: PrepareForSetQueue = 58;\n */\n PrepareForSetQueue = 58,\n\n /**\n * @generated from enum value: SetPlaybackSession = 59;\n */\n SetPlaybackSession = 59,\n\n /**\n * @generated from enum value: PreloadedPlaybackSession = 60;\n */\n PreloadedPlaybackSession = 60,\n\n /**\n * @generated from enum value: SetPriorityForPlaybackSession = 61;\n */\n SetPriorityForPlaybackSession = 61,\n\n /**\n * @generated from enum value: DiscardPlaybackSession = 62;\n */\n DiscardPlaybackSession = 62,\n\n /**\n * @generated from enum value: Reshuffle = 63;\n */\n Reshuffle = 63,\n\n /**\n * @generated from enum value: ChangeQueueEndAction = 135;\n */\n ChangeQueueEndAction = 135,\n}\n\n/**\n * Describes the enum Command.\n */\nexport const CommandSchema: GenEnum<Command> = /*@__PURE__*/\n enumDesc(file_CommandInfo, 0);\n\n",
21
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file CommandOptions.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { RepeatMode_Enum, ShuffleMode_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file CommandOptions.proto.\n */\nexport const file_CommandOptions: GenFile = /*@__PURE__*/\n fileDesc(\"ChRDb21tYW5kT3B0aW9ucy5wcm90byLhBgoOQ29tbWFuZE9wdGlvbnMSEAoIc291cmNlSWQYAiABKAkSEQoJbWVkaWFUeXBlGAMgASgJEh0KFWV4dGVybmFsUGxheWVyQ29tbWFuZBgEIAEoCBIUCgxza2lwSW50ZXJ2YWwYBSABKAISFAoMcGxheWJhY2tSYXRlGAYgASgCEg4KBnJhdGluZxgHIAEoAhIQCghuZWdhdGl2ZRgIIAEoCBIYChBwbGF5YmFja1Bvc2l0aW9uGAkgASgBEiQKCnJlcGVhdE1vZGUYCiABKA4yEC5SZXBlYXRNb2RlLkVudW0SJgoLc2h1ZmZsZU1vZGUYCyABKA4yES5TaHVmZmxlTW9kZS5FbnVtEg8KB3RyYWNrSUQYDCABKAQSFgoOcmFkaW9TdGF0aW9uSUQYDSABKAMSGAoQcmFkaW9TdGF0aW9uSGFzaBgOIAEoCRIiChpzeXN0ZW1BcHBQbGF5YmFja1F1ZXVlRGF0YRgPIAEoDBIfChdkZXN0aW5hdGlvbkFwcERpc3BsYXlJRBgQIAEoCRITCgtzZW5kT3B0aW9ucxgRIAEoDRIvCidyZXF1ZXN0RGVmZXJtZW50VG9QbGF5YmFja1F1ZXVlUG9zaXRpb24YEiABKAgSEQoJY29udGV4dElEGBMgASgJEioKInNob3VsZE92ZXJyaWRlTWFudWFsbHlDdXJhdGVkUXVldWUYFCABKAgSEgoKc3RhdGlvblVSTBgVIAEoCRIgChhzaG91bGRCZWdpblJhZGlvUGxheWJhY2sYFiABKAgSJgoecGxheWJhY2tRdWV1ZUluc2VydGlvblBvc2l0aW9uGBcgASgFEhUKDWNvbnRlbnRJdGVtSUQYGCABKAkSGwoTcGxheWJhY2tRdWV1ZU9mZnNldBgZIAEoBRImCh5wbGF5YmFja1F1ZXVlRGVzdGluYXRpb25PZmZzZXQYGiABKAUSFgoObGFuZ3VhZ2VPcHRpb24YGyABKAwSHAoUcGxheWJhY2tRdWV1ZUNvbnRleHQYHCABKAwSIAoYaW5zZXJ0QWZ0ZXJDb250ZW50SXRlbUlEGB0gASgJEh8KF25vd1BsYXlpbmdDb250ZW50SXRlbUlEGB4gASgJEhUKDXJlcGxhY2VJbnRlbnQYHyABKAU\", [file_Common]);\n\n/**\n * @generated from message CommandOptions\n */\nexport type CommandOptions = Message<\"CommandOptions\"> & {\n /**\n * @generated from field: optional string sourceId = 2;\n */\n sourceId: string;\n\n /**\n * @generated from field: optional string mediaType = 3;\n */\n mediaType: string;\n\n /**\n * @generated from field: optional bool externalPlayerCommand = 4;\n */\n externalPlayerCommand: boolean;\n\n /**\n * @generated from field: optional float skipInterval = 5;\n */\n skipInterval: number;\n\n /**\n * @generated from field: optional float playbackRate = 6;\n */\n playbackRate: number;\n\n /**\n * @generated from field: optional float rating = 7;\n */\n rating: number;\n\n /**\n * @generated from field: optional bool negative = 8;\n */\n negative: boolean;\n\n /**\n * @generated from field: optional double playbackPosition = 9;\n */\n playbackPosition: number;\n\n /**\n * @generated from field: optional RepeatMode.Enum repeatMode = 10;\n */\n repeatMode: RepeatMode_Enum;\n\n /**\n * @generated from field: optional ShuffleMode.Enum shuffleMode = 11;\n */\n shuffleMode: ShuffleMode_Enum;\n\n /**\n * @generated from field: optional uint64 trackID = 12;\n */\n trackID: bigint;\n\n /**\n * @generated from field: optional int64 radioStationID = 13;\n */\n radioStationID: bigint;\n\n /**\n * @generated from field: optional string radioStationHash = 14;\n */\n radioStationHash: string;\n\n /**\n * @generated from field: optional bytes systemAppPlaybackQueueData = 15;\n */\n systemAppPlaybackQueueData: Uint8Array;\n\n /**\n * @generated from field: optional string destinationAppDisplayID = 16;\n */\n destinationAppDisplayID: string;\n\n /**\n * @generated from field: optional uint32 sendOptions = 17;\n */\n sendOptions: number;\n\n /**\n * @generated from field: optional bool requestDefermentToPlaybackQueuePosition = 18;\n */\n requestDefermentToPlaybackQueuePosition: boolean;\n\n /**\n * @generated from field: optional string contextID = 19;\n */\n contextID: string;\n\n /**\n * @generated from field: optional bool shouldOverrideManuallyCuratedQueue = 20;\n */\n shouldOverrideManuallyCuratedQueue: boolean;\n\n /**\n * @generated from field: optional string stationURL = 21;\n */\n stationURL: string;\n\n /**\n * @generated from field: optional bool shouldBeginRadioPlayback = 22;\n */\n shouldBeginRadioPlayback: boolean;\n\n /**\n * @generated from field: optional int32 playbackQueueInsertionPosition = 23;\n */\n playbackQueueInsertionPosition: number;\n\n /**\n * @generated from field: optional string contentItemID = 24;\n */\n contentItemID: string;\n\n /**\n * @generated from field: optional int32 playbackQueueOffset = 25;\n */\n playbackQueueOffset: number;\n\n /**\n * @generated from field: optional int32 playbackQueueDestinationOffset = 26;\n */\n playbackQueueDestinationOffset: number;\n\n /**\n * @generated from field: optional bytes languageOption = 27;\n */\n languageOption: Uint8Array;\n\n /**\n * @generated from field: optional bytes playbackQueueContext = 28;\n */\n playbackQueueContext: Uint8Array;\n\n /**\n * @generated from field: optional string insertAfterContentItemID = 29;\n */\n insertAfterContentItemID: string;\n\n /**\n * @generated from field: optional string nowPlayingContentItemID = 30;\n */\n nowPlayingContentItemID: string;\n\n /**\n * @generated from field: optional int32 replaceIntent = 31;\n */\n replaceIntent: number;\n};\n\n/**\n * Describes the message CommandOptions.\n * Use `create(CommandOptionsSchema)` to create a new message.\n */\nexport const CommandOptionsSchema: GenMessage<CommandOptions> = /*@__PURE__*/\n messageDesc(file_CommandOptions, 0);\n\n",
22
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ConfigureConnectionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ConfigureConnectionMessage.proto.\n */\nexport const file_ConfigureConnectionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBDb25maWd1cmVDb25uZWN0aW9uTWVzc2FnZS5wcm90byItChpDb25maWd1cmVDb25uZWN0aW9uTWVzc2FnZRIPCgdncm91cElEGAEgASgJOm0KGmNvbmZpZ3VyZUNvbm5lY3Rpb25NZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGF4gASgLMhsuQ29uZmlndXJlQ29ubmVjdGlvbk1lc3NhZ2VSGmNvbmZpZ3VyZUNvbm5lY3Rpb25NZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ConfigureConnectionMessage\n */\nexport type ConfigureConnectionMessage = Message<\"ConfigureConnectionMessage\"> & {\n /**\n * @generated from field: optional string groupID = 1;\n */\n groupID: string;\n};\n\n/**\n * Describes the message ConfigureConnectionMessage.\n * Use `create(ConfigureConnectionMessageSchema)` to create a new message.\n */\nexport const ConfigureConnectionMessageSchema: GenMessage<ConfigureConnectionMessage> = /*@__PURE__*/\n messageDesc(file_ConfigureConnectionMessage, 0);\n\n/**\n * @generated from extension: optional ConfigureConnectionMessage configureConnectionMessage = 94;\n */\nexport const configureConnectionMessage: GenExtension<ProtocolMessage, ConfigureConnectionMessage> = /*@__PURE__*/\n extDesc(file_ConfigureConnectionMessage, 0);\n\n",
23
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ContentItem.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ContentItemMetadata } from \"./ContentItemMetadata_pb\";\nimport { file_ContentItemMetadata } from \"./ContentItemMetadata_pb\";\nimport type { LanguageOption } from \"./LanguageOption_pb\";\nimport { file_LanguageOption } from \"./LanguageOption_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ContentItem.proto.\n */\nexport const file_ContentItem: GenFile = /*@__PURE__*/\n fileDesc(\"ChFDb250ZW50SXRlbS5wcm90byKMAQoTTGFuZ3VhZ2VPcHRpb25Hcm91cBIbChNhbGxvd0VtcHR5U2VsZWN0aW9uGAEgASgIEi4KFWRlZmF1bHRMYW5ndWFnZU9wdGlvbhgCIAEoCzIPLkxhbmd1YWdlT3B0aW9uEigKD2xhbmd1YWdlT3B0aW9ucxgDIAMoCzIPLkxhbmd1YWdlT3B0aW9uIvQCCgtDb250ZW50SXRlbRISCgppZGVudGlmaWVyGAEgASgJEiYKCG1ldGFkYXRhGAIgASgLMhQuQ29udGVudEl0ZW1NZXRhZGF0YRITCgthcnR3b3JrRGF0YRgDIAEoDBIMCgRpbmZvGAQgASgJEjYKGGF2YWlsYWJsZUxhbmd1YWdlT3B0aW9ucxgFIAMoCzIULkxhbmd1YWdlT3B0aW9uR3JvdXASLwoWY3VycmVudExhbmd1YWdlT3B0aW9ucxgGIAMoCzIPLkxhbmd1YWdlT3B0aW9uEhgKEHBhcmVudElkZW50aWZpZXIYCSABKAkSGgoSYW5jZXN0b3JJZGVudGlmaWVyGAogASgJEhcKD3F1ZXVlSWRlbnRpZmllchgLIAEoCRIZChFyZXF1ZXN0SWRlbnRpZmllchgMIAEoCRIYChBhcnR3b3JrRGF0YVdpZHRoGA0gASgFEhkKEWFydHdvcmtEYXRhSGVpZ2h0GA4gASgF\", [file_ContentItemMetadata, file_LanguageOption]);\n\n/**\n * @generated from message LanguageOptionGroup\n */\nexport type LanguageOptionGroup = Message<\"LanguageOptionGroup\"> & {\n /**\n * @generated from field: optional bool allowEmptySelection = 1;\n */\n allowEmptySelection: boolean;\n\n /**\n * @generated from field: optional LanguageOption defaultLanguageOption = 2;\n */\n defaultLanguageOption?: LanguageOption;\n\n /**\n * @generated from field: repeated LanguageOption languageOptions = 3;\n */\n languageOptions: LanguageOption[];\n};\n\n/**\n * Describes the message LanguageOptionGroup.\n * Use `create(LanguageOptionGroupSchema)` to create a new message.\n */\nexport const LanguageOptionGroupSchema: GenMessage<LanguageOptionGroup> = /*@__PURE__*/\n messageDesc(file_ContentItem, 0);\n\n/**\n * @generated from message ContentItem\n */\nexport type ContentItem = Message<\"ContentItem\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional ContentItemMetadata metadata = 2;\n */\n metadata?: ContentItemMetadata;\n\n /**\n * @generated from field: optional bytes artworkData = 3;\n */\n artworkData: Uint8Array;\n\n /**\n * @generated from field: optional string info = 4;\n */\n info: string;\n\n /**\n * @generated from field: repeated LanguageOptionGroup availableLanguageOptions = 5;\n */\n availableLanguageOptions: LanguageOptionGroup[];\n\n /**\n * @generated from field: repeated LanguageOption currentLanguageOptions = 6;\n */\n currentLanguageOptions: LanguageOption[];\n\n /**\n * optional Lyrics lyrics = 7;\n * repeated Sections sections = 8;\n *\n * @generated from field: optional string parentIdentifier = 9;\n */\n parentIdentifier: string;\n\n /**\n * @generated from field: optional string ancestorIdentifier = 10;\n */\n ancestorIdentifier: string;\n\n /**\n * @generated from field: optional string queueIdentifier = 11;\n */\n queueIdentifier: string;\n\n /**\n * @generated from field: optional string requestIdentifier = 12;\n */\n requestIdentifier: string;\n\n /**\n * @generated from field: optional int32 artworkDataWidth = 13;\n */\n artworkDataWidth: number;\n\n /**\n * @generated from field: optional int32 artworkDataHeight = 14;\n */\n artworkDataHeight: number;\n};\n\n/**\n * Describes the message ContentItem.\n * Use `create(ContentItemSchema)` to create a new message.\n */\nexport const ContentItemSchema: GenMessage<ContentItem> = /*@__PURE__*/\n messageDesc(file_ContentItem, 1);\n\n",
24
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ContentItemMetadata.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ContentItemMetadata.proto.\n */\nexport const file_ContentItemMetadata: GenFile = /*@__PURE__*/\n fileDesc(\"ChlDb250ZW50SXRlbU1ldGFkYXRhLnByb3RvIrkBCg5BdWRpb1JvdXRlVHlwZSKmAQoERW51bRILCgdVbmtub3duEAASEgoORGV2aWNlc1NwZWFrZXIQARILCgdMaW5lT3V0EAISDgoKSGVhZHBob25lcxADEhcKE0JsdWV0b290aEhlYWRwaG9uZXMQBBIUChBCbHVldG9vdGhTcGVha2VyEAUSDAoIVVNCQXVkaW8QBhIMCghDYXJBdWRpbxAHEggKBEhETUkQCBILCgdBaXJQbGF5EAkiWQoKQXVkaW9Sb3V0ZRIdCgR0eXBlGAEgASgLMg8uQXVkaW9Sb3V0ZVR5cGUSDAoEbmFtZRgCIAEoCRIeChZzdXBwb3J0c1NwYXRpYWxpemF0aW9uGAMgASgIInkKCUF1ZGlvVGllciJsCgRFbnVtEhYKEkxvd0JhbmR3aWR0aFN0ZXJlbxABEhUKEUhpZ2hRdWFsaXR5U3RlcmVvEAISDAoITG9zc2xlc3MQAxIaChZIaWdoUmVzb2x1dGlvbkxvc3NsZXNzEAQSCwoHU3BhdGlhbBAFIocBCgpTb25nVHJhaXRzInkKBEVudW0SCAoETm9uZRAAEhcKE0FwcGxlRGlnaXRpYWxNYXN0ZXIQARIMCghMb3NzbGVzcxACEhoKFkhpZ2hSZXNvbHV0aW9uTG9zc2xlc3MQBBILCgdTcGF0aWFsEAgSCQoFQXRtb3MQEBIMCghTdXJyb3VuZBAgIogBCgtBbGJ1bVRyYWl0cyJ5CgRFbnVtEggKBE5vbmUQABIXChNBcHBsZURpZ2l0aWFsTWFzdGVyEAESDAoITG9zc2xlc3MQAhIaChZIaWdoUmVzb2x1dGlvbkxvc3NsZXNzEAQSCwoHU3BhdGlhbBAIEgkKBUF0bW9zEBASDAoIU3Vycm91bmQQICJICg5QbGF5bGlzdFRyYWl0cyI2CgRFbnVtEggKBE5vbmUQABILCgdTcGF0aWFsEAgSCQoFQXRtb3MQEBIMCghTdXJyb3VuZBAgIrwBChlBY3RpdmVGb3JtYXRKdXN0aWZpY2F0aW9uIp4BCgRFbnVtEgsKB1Vua25vd24QABIPCgtVbmF2YWlsYWJsZRABEhIKDlVzZXJQcmVmZXJlbmNlEGQSEAoMVXNlckRvd25sb2FkEGUSFgoRUm91dGVJbmNvbXBhdGlibGUQ9AMSHgoZUm91dGVVbmtub3duQ29tcGF0aWJpbGl0eRD1AxIaChVCYW5kd2lkdGhJbnN1ZmZpY2llbnQQ6AciegoKRm9ybWF0VGllciJsCgRFbnVtEhYKEkxvd0JhbmR3aWR0aFN0ZXJlbxABEhUKEUhpZ2hRdWFsaXR5U3RlcmVvEAISDAoITG9zc2xlc3MQBBIaChZIaWdoUmVzb2x1dGlvbkxvc3NsZXNzEAgSCwoHU3BhdGlhbBAQIoUCCgtBdWRpb0Zvcm1hdBIdCgR0aWVyGAEgASgOMg8uQXVkaW9UaWVyLkVudW0SDwoHYml0cmF0ZRgCIAEoAxISCgpzYW1wbGVSYXRlGAMgASgDEhAKCGJpdERlcHRoGAQgASgDEg0KBWNvZGVjGAUgASgNEhMKC3NwYXRpYWxpemVkGAYgASgIEhQKDG11bHRpQ2hhbm5lbBgHIAEoCBIVCg1jaGFubmVsTGF5b3V0GAggASgNEiUKHWF1ZGlvQ2hhbm5lbExheW91dERlc2NyaXB0aW9uGAkgASgJEg8KB2dyb3VwSUQYCiABKAkSFwoPc3RhYmxlVmFyaWFudElEGAsgASgJIucUChNDb250ZW50SXRlbU1ldGFkYXRhEg0KBXRpdGxlGAEgASgJEhAKCHN1YnRpdGxlGAIgASgJEhMKC2lzQ29udGFpbmVyGAMgASgIEhIKCmlzUGxheWFibGUYBCABKAgSGAoQcGxheWJhY2tQcm9ncmVzcxgFIAEoAhIRCglhbGJ1bU5hbWUYBiABKAkSFwoPdHJhY2tBcnRpc3ROYW1lGAcgASgJEhcKD2FsYnVtQXJ0aXN0TmFtZRgIIAEoCRIUCgxkaXJlY3Rvck5hbWUYCSABKAkSFAoMc2Vhc29uTnVtYmVyGAogASgFEhUKDWVwaXNvZGVOdW1iZXIYCyABKAUSEwoLcmVsZWFzZURhdGUYDCABKAESEQoJcGxheUNvdW50GA0gASgFEhAKCGR1cmF0aW9uGA4gASgBEh4KFmxvY2FsaXplZENvbnRlbnRSYXRpbmcYDyABKAkSFgoOaXNFeHBsaWNpdEl0ZW0YECABKAgSFAoMcGxheWxpc3RUeXBlGBEgASgFEhgKEHJhZGlvU3RhdGlvblR5cGUYEiABKAUSGAoQYXJ0d29ya0F2YWlsYWJsZRgTIAEoCBIVCg1pbmZvQXZhaWxhYmxlGBUgASgIEiAKGGxhbmd1YWdlT3B0aW9uc0F2YWlsYWJsZRgWIAEoCBIYChBudW1iZXJPZlNlY3Rpb25zGBcgASgFEhcKD2x5cmljc0F2YWlsYWJsZRgYIAEoCBIZChFlZGl0aW5nU3R5bGVGbGFncxgZIAEoBRIaChJpc1N0cmVhbWluZ0NvbnRlbnQYGiABKAgSGgoSaXNDdXJyZW50bHlQbGF5aW5nGBsgASgIEhwKFGNvbGxlY3Rpb25JZGVudGlmaWVyGBwgASgJEhkKEXByb2ZpbGVJZGVudGlmaWVyGB0gASgJEhEKCXN0YXJ0VGltZRgeIAEoARIXCg9hcnR3b3JrTUlNRVR5cGUYHyABKAkSFgoOYXNzZXRVUkxTdHJpbmcYICABKAkSEAoIY29tcG9zZXIYISABKAkSEgoKZGlzY051bWJlchgiIAEoBRITCgtlbGFwc2VkVGltZRgjIAEoARINCgVnZW5yZRgkIAEoCRIUCgxpc0Fsd2F5c0xpdmUYJSABKAgSFAoMcGxheWJhY2tSYXRlGCcgASgCEhQKDGNoYXB0ZXJDb3VudBgoIAEoBRIWCg50b3RhbERpc2NDb3VudBgpIAEoBRIXCg90b3RhbFRyYWNrQ291bnQYKiABKAUSEwoLdHJhY2tOdW1iZXIYKyABKAUSGQoRY29udGVudElkZW50aWZpZXIYLCABKAkSEgoKaXNTaGFyYWJsZRguIAEoCBIPCgdpc0xpa2VkGDAgASgIEhQKDGlzSW5XaXNoTGlzdBgxIAEoCBIeChZyYWRpb1N0YXRpb25JZGVudGlmaWVyGDIgASgDEhgKEHJhZGlvU3RhdGlvbk5hbWUYNCABKAkSGgoScmFkaW9TdGF0aW9uU3RyaW5nGDUgASgJEh0KFWlUdW5lc1N0b3JlSWRlbnRpZmllchg2IAEoAxIpCiFpVHVuZXNTdG9yZVN1YnNjcmlwdGlvbklkZW50aWZpZXIYNyABKAMSIwobaVR1bmVzU3RvcmVBcnRpc3RJZGVudGlmaWVyGDggASgDEiIKGmlUdW5lc1N0b3JlQWxidW1JZGVudGlmaWVyGDkgASgDEhgKEHB1cmNoYXNlSW5mb0RhdGEYOiABKAwSGwoTZGVmYXVsdFBsYXliYWNrUmF0ZRg7IAEoAhIVCg1kb3dubG9hZFN0YXRlGDwgASgFEhgKEGRvd25sb2FkUHJvZ3Jlc3MYPSABKAISFgoOYXBwTWV0cmljc0RhdGEYPiABKAwSEgoKc2VyaWVzTmFtZRg/IAEoCRIxCgltZWRpYVR5cGUYQCABKA4yHi5Db250ZW50SXRlbU1ldGFkYXRhLk1lZGlhVHlwZRI3CgxtZWRpYVN1YlR5cGUYQSABKA4yIS5Db250ZW50SXRlbU1ldGFkYXRhLk1lZGlhU3ViVHlwZRIaChJub3dQbGF5aW5nSW5mb0RhdGEYQyABKAwSFAoMdXNlckluZm9EYXRhGEQgASgMEhMKC2lzU3RlZXJhYmxlGEUgASgIEhIKCmFydHdvcmtVUkwYRiABKAkSEQoJbHlyaWNzVVJMGEcgASgJEiIKGmRldmljZVNwZWNpZmljVXNlckluZm9EYXRhGEggASgMEhoKEmNvbGxlY3Rpb25JbmZvRGF0YRhJIAEoDBIcChRlbGFwc2VkVGltZVRpbWVzdGFtcBhKIAEoARIZChFpbmZlcnJlZFRpbWVzdGFtcBhLIAEoARIZChFzZXJ2aWNlSWRlbnRpZmllchhMIAEoCRIYChBhcnR3b3JrRGF0YVdpZHRoGE0gASgFEhkKEWFydHdvcmtEYXRhSGVpZ2h0GE4gASgFEh8KF2N1cnJlbnRQbGF5YmFja0RhdGVEYXRhGE8gASgMEhkKEWFydHdvcmtJZGVudGlmaWVyGFAgASgJEhEKCWlzTG9hZGluZxhRIAEoCBIfChdhcnR3b3JrVVJMVGVtcGxhdGVzRGF0YRhSIAEoDBIeChZsZWdhY3lVbmlxdWVJZGVudGlmaWVyGFMgASgDEhMKC2VwaXNvZGVUeXBlGFQgASgFEhYKDmFydHdvcmtGaWxlVVJMGFUgASgJEhcKD2JyYW5kSWRlbnRpZmllchhWIAEoCRIfChdsb2NhbGl6ZWREdXJhdGlvblN0cmluZxhXIAEoCRIRCglhbGJ1bVllYXIYWCABKAkSJAoKc29uZ1RyYWl0cxhZIAEoDjIQLlNvbmdUcmFpdHMuRW51bRImCgthbGJ1bVRyYWl0cxhaIAEoDjIRLkFsYnVtVHJhaXRzLkVudW0SLAoOcGxheWxpc3RUcmFpdHMYWyABKA4yFC5QbGF5bGlzdFRyYWl0cy5FbnVtEiUKD3ByZWZlcnJlZEZvcm1hdBhcIAEoCzIMLkF1ZGlvRm9ybWF0EiIKDGFjdGl2ZUZvcm1hdBhdIAEoCzIMLkF1ZGlvRm9ybWF0EkIKGWFjdGl2ZUZvcm1hdEp1c3RpZmljYXRpb24YXiABKA4yHy5BY3RpdmVGb3JtYXRKdXN0aWZpY2F0aW9uLkVudW0SLgoUZm9ybWF0VGllclByZWZlcmVuY2UYXyABKA4yEC5Gb3JtYXRUaWVyLkVudW0SHwoKYXVkaW9Sb3V0ZRhgIAEoCzILLkF1ZGlvUm91dGUSKAoSYWx0ZXJuYXRpdmVGb3JtYXRzGGEgAygLMgwuQXVkaW9Gb3JtYXQiNwoJTWVkaWFUeXBlEhQKEFVua25vd25NZWRpYVR5cGUQABIJCgVBdWRpbxABEgkKBVZpZGVvEAIiWwoMTWVkaWFTdWJUeXBlEhcKE1Vua25vd25NZWRpYVN1YlR5cGUQABIJCgVNdXNpYxABEgsKB1BvZGNhc3QQBBINCglBdWRpb0Jvb2sQBRILCgdJVHVuZXNVEAY\");\n\n/**\n * @generated from message AudioRouteType\n */\nexport type AudioRouteType = Message<\"AudioRouteType\"> & {\n};\n\n/**\n * Describes the message AudioRouteType.\n * Use `create(AudioRouteTypeSchema)` to create a new message.\n */\nexport const AudioRouteTypeSchema: GenMessage<AudioRouteType> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 0);\n\n/**\n * @generated from enum AudioRouteType.Enum\n */\nexport enum AudioRouteType_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: DevicesSpeaker = 1;\n */\n DevicesSpeaker = 1,\n\n /**\n * @generated from enum value: LineOut = 2;\n */\n LineOut = 2,\n\n /**\n * @generated from enum value: Headphones = 3;\n */\n Headphones = 3,\n\n /**\n * @generated from enum value: BluetoothHeadphones = 4;\n */\n BluetoothHeadphones = 4,\n\n /**\n * @generated from enum value: BluetoothSpeaker = 5;\n */\n BluetoothSpeaker = 5,\n\n /**\n * @generated from enum value: USBAudio = 6;\n */\n USBAudio = 6,\n\n /**\n * @generated from enum value: CarAudio = 7;\n */\n CarAudio = 7,\n\n /**\n * @generated from enum value: HDMI = 8;\n */\n HDMI = 8,\n\n /**\n * @generated from enum value: AirPlay = 9;\n */\n AirPlay = 9,\n}\n\n/**\n * Describes the enum AudioRouteType.Enum.\n */\nexport const AudioRouteType_EnumSchema: GenEnum<AudioRouteType_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 0, 0);\n\n/**\n * @generated from message AudioRoute\n */\nexport type AudioRoute = Message<\"AudioRoute\"> & {\n /**\n * @generated from field: optional AudioRouteType type = 1;\n */\n type?: AudioRouteType;\n\n /**\n * @generated from field: optional string name = 2;\n */\n name: string;\n\n /**\n * @generated from field: optional bool supportsSpatialization = 3;\n */\n supportsSpatialization: boolean;\n};\n\n/**\n * Describes the message AudioRoute.\n * Use `create(AudioRouteSchema)` to create a new message.\n */\nexport const AudioRouteSchema: GenMessage<AudioRoute> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 1);\n\n/**\n * @generated from message AudioTier\n */\nexport type AudioTier = Message<\"AudioTier\"> & {\n};\n\n/**\n * Describes the message AudioTier.\n * Use `create(AudioTierSchema)` to create a new message.\n */\nexport const AudioTierSchema: GenMessage<AudioTier> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 2);\n\n/**\n * @generated from enum AudioTier.Enum\n */\nexport enum AudioTier_Enum {\n /**\n * @generated from enum value: LowBandwidthStereo = 1;\n */\n LowBandwidthStereo = 1,\n\n /**\n * @generated from enum value: HighQualityStereo = 2;\n */\n HighQualityStereo = 2,\n\n /**\n * @generated from enum value: Lossless = 3;\n */\n Lossless = 3,\n\n /**\n * @generated from enum value: HighResolutionLossless = 4;\n */\n HighResolutionLossless = 4,\n\n /**\n * @generated from enum value: Spatial = 5;\n */\n Spatial = 5,\n}\n\n/**\n * Describes the enum AudioTier.Enum.\n */\nexport const AudioTier_EnumSchema: GenEnum<AudioTier_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 2, 0);\n\n/**\n * @generated from message SongTraits\n */\nexport type SongTraits = Message<\"SongTraits\"> & {\n};\n\n/**\n * Describes the message SongTraits.\n * Use `create(SongTraitsSchema)` to create a new message.\n */\nexport const SongTraitsSchema: GenMessage<SongTraits> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 3);\n\n/**\n * @generated from enum SongTraits.Enum\n */\nexport enum SongTraits_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: AppleDigitialMaster = 1;\n */\n AppleDigitialMaster = 1,\n\n /**\n * @generated from enum value: Lossless = 2;\n */\n Lossless = 2,\n\n /**\n * @generated from enum value: HighResolutionLossless = 4;\n */\n HighResolutionLossless = 4,\n\n /**\n * @generated from enum value: Spatial = 8;\n */\n Spatial = 8,\n\n /**\n * @generated from enum value: Atmos = 16;\n */\n Atmos = 16,\n\n /**\n * @generated from enum value: Surround = 32;\n */\n Surround = 32,\n}\n\n/**\n * Describes the enum SongTraits.Enum.\n */\nexport const SongTraits_EnumSchema: GenEnum<SongTraits_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 3, 0);\n\n/**\n * @generated from message AlbumTraits\n */\nexport type AlbumTraits = Message<\"AlbumTraits\"> & {\n};\n\n/**\n * Describes the message AlbumTraits.\n * Use `create(AlbumTraitsSchema)` to create a new message.\n */\nexport const AlbumTraitsSchema: GenMessage<AlbumTraits> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 4);\n\n/**\n * @generated from enum AlbumTraits.Enum\n */\nexport enum AlbumTraits_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: AppleDigitialMaster = 1;\n */\n AppleDigitialMaster = 1,\n\n /**\n * @generated from enum value: Lossless = 2;\n */\n Lossless = 2,\n\n /**\n * @generated from enum value: HighResolutionLossless = 4;\n */\n HighResolutionLossless = 4,\n\n /**\n * @generated from enum value: Spatial = 8;\n */\n Spatial = 8,\n\n /**\n * @generated from enum value: Atmos = 16;\n */\n Atmos = 16,\n\n /**\n * @generated from enum value: Surround = 32;\n */\n Surround = 32,\n}\n\n/**\n * Describes the enum AlbumTraits.Enum.\n */\nexport const AlbumTraits_EnumSchema: GenEnum<AlbumTraits_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 4, 0);\n\n/**\n * @generated from message PlaylistTraits\n */\nexport type PlaylistTraits = Message<\"PlaylistTraits\"> & {\n};\n\n/**\n * Describes the message PlaylistTraits.\n * Use `create(PlaylistTraitsSchema)` to create a new message.\n */\nexport const PlaylistTraitsSchema: GenMessage<PlaylistTraits> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 5);\n\n/**\n * @generated from enum PlaylistTraits.Enum\n */\nexport enum PlaylistTraits_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Spatial = 8;\n */\n Spatial = 8,\n\n /**\n * @generated from enum value: Atmos = 16;\n */\n Atmos = 16,\n\n /**\n * @generated from enum value: Surround = 32;\n */\n Surround = 32,\n}\n\n/**\n * Describes the enum PlaylistTraits.Enum.\n */\nexport const PlaylistTraits_EnumSchema: GenEnum<PlaylistTraits_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 5, 0);\n\n/**\n * @generated from message ActiveFormatJustification\n */\nexport type ActiveFormatJustification = Message<\"ActiveFormatJustification\"> & {\n};\n\n/**\n * Describes the message ActiveFormatJustification.\n * Use `create(ActiveFormatJustificationSchema)` to create a new message.\n */\nexport const ActiveFormatJustificationSchema: GenMessage<ActiveFormatJustification> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 6);\n\n/**\n * @generated from enum ActiveFormatJustification.Enum\n */\nexport enum ActiveFormatJustification_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Unavailable = 1;\n */\n Unavailable = 1,\n\n /**\n * @generated from enum value: UserPreference = 100;\n */\n UserPreference = 100,\n\n /**\n * @generated from enum value: UserDownload = 101;\n */\n UserDownload = 101,\n\n /**\n * @generated from enum value: RouteIncompatible = 500;\n */\n RouteIncompatible = 500,\n\n /**\n * @generated from enum value: RouteUnknownCompatibility = 501;\n */\n RouteUnknownCompatibility = 501,\n\n /**\n * @generated from enum value: BandwidthInsufficient = 1000;\n */\n BandwidthInsufficient = 1000,\n}\n\n/**\n * Describes the enum ActiveFormatJustification.Enum.\n */\nexport const ActiveFormatJustification_EnumSchema: GenEnum<ActiveFormatJustification_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 6, 0);\n\n/**\n * @generated from message FormatTier\n */\nexport type FormatTier = Message<\"FormatTier\"> & {\n};\n\n/**\n * Describes the message FormatTier.\n * Use `create(FormatTierSchema)` to create a new message.\n */\nexport const FormatTierSchema: GenMessage<FormatTier> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 7);\n\n/**\n * @generated from enum FormatTier.Enum\n */\nexport enum FormatTier_Enum {\n /**\n * @generated from enum value: LowBandwidthStereo = 1;\n */\n LowBandwidthStereo = 1,\n\n /**\n * @generated from enum value: HighQualityStereo = 2;\n */\n HighQualityStereo = 2,\n\n /**\n * @generated from enum value: Lossless = 4;\n */\n Lossless = 4,\n\n /**\n * @generated from enum value: HighResolutionLossless = 8;\n */\n HighResolutionLossless = 8,\n\n /**\n * @generated from enum value: Spatial = 16;\n */\n Spatial = 16,\n}\n\n/**\n * Describes the enum FormatTier.Enum.\n */\nexport const FormatTier_EnumSchema: GenEnum<FormatTier_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 7, 0);\n\n/**\n * @generated from message AudioFormat\n */\nexport type AudioFormat = Message<\"AudioFormat\"> & {\n /**\n * @generated from field: optional AudioTier.Enum tier = 1;\n */\n tier: AudioTier_Enum;\n\n /**\n * @generated from field: optional int64 bitrate = 2;\n */\n bitrate: bigint;\n\n /**\n * @generated from field: optional int64 sampleRate = 3;\n */\n sampleRate: bigint;\n\n /**\n * @generated from field: optional int64 bitDepth = 4;\n */\n bitDepth: bigint;\n\n /**\n * @generated from field: optional uint32 codec = 5;\n */\n codec: number;\n\n /**\n * @generated from field: optional bool spatialized = 6;\n */\n spatialized: boolean;\n\n /**\n * @generated from field: optional bool multiChannel = 7;\n */\n multiChannel: boolean;\n\n /**\n * @generated from field: optional uint32 channelLayout = 8;\n */\n channelLayout: number;\n\n /**\n * @generated from field: optional string audioChannelLayoutDescription = 9;\n */\n audioChannelLayoutDescription: string;\n\n /**\n * @generated from field: optional string groupID = 10;\n */\n groupID: string;\n\n /**\n * @generated from field: optional string stableVariantID = 11;\n */\n stableVariantID: string;\n};\n\n/**\n * Describes the message AudioFormat.\n * Use `create(AudioFormatSchema)` to create a new message.\n */\nexport const AudioFormatSchema: GenMessage<AudioFormat> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 8);\n\n/**\n * @generated from message ContentItemMetadata\n */\nexport type ContentItemMetadata = Message<\"ContentItemMetadata\"> & {\n /**\n * @generated from field: optional string title = 1;\n */\n title: string;\n\n /**\n * @generated from field: optional string subtitle = 2;\n */\n subtitle: string;\n\n /**\n * @generated from field: optional bool isContainer = 3;\n */\n isContainer: boolean;\n\n /**\n * @generated from field: optional bool isPlayable = 4;\n */\n isPlayable: boolean;\n\n /**\n * @generated from field: optional float playbackProgress = 5;\n */\n playbackProgress: number;\n\n /**\n * @generated from field: optional string albumName = 6;\n */\n albumName: string;\n\n /**\n * @generated from field: optional string trackArtistName = 7;\n */\n trackArtistName: string;\n\n /**\n * @generated from field: optional string albumArtistName = 8;\n */\n albumArtistName: string;\n\n /**\n * @generated from field: optional string directorName = 9;\n */\n directorName: string;\n\n /**\n * @generated from field: optional int32 seasonNumber = 10;\n */\n seasonNumber: number;\n\n /**\n * @generated from field: optional int32 episodeNumber = 11;\n */\n episodeNumber: number;\n\n /**\n * @generated from field: optional double releaseDate = 12;\n */\n releaseDate: number;\n\n /**\n * @generated from field: optional int32 playCount = 13;\n */\n playCount: number;\n\n /**\n * @generated from field: optional double duration = 14;\n */\n duration: number;\n\n /**\n * @generated from field: optional string localizedContentRating = 15;\n */\n localizedContentRating: string;\n\n /**\n * @generated from field: optional bool isExplicitItem = 16;\n */\n isExplicitItem: boolean;\n\n /**\n * @generated from field: optional int32 playlistType = 17;\n */\n playlistType: number;\n\n /**\n * @generated from field: optional int32 radioStationType = 18;\n */\n radioStationType: number;\n\n /**\n * @generated from field: optional bool artworkAvailable = 19;\n */\n artworkAvailable: boolean;\n\n /**\n * @generated from field: optional bool infoAvailable = 21;\n */\n infoAvailable: boolean;\n\n /**\n * @generated from field: optional bool languageOptionsAvailable = 22;\n */\n languageOptionsAvailable: boolean;\n\n /**\n * @generated from field: optional int32 numberOfSections = 23;\n */\n numberOfSections: number;\n\n /**\n * @generated from field: optional bool lyricsAvailable = 24;\n */\n lyricsAvailable: boolean;\n\n /**\n * @generated from field: optional int32 editingStyleFlags = 25;\n */\n editingStyleFlags: number;\n\n /**\n * @generated from field: optional bool isStreamingContent = 26;\n */\n isStreamingContent: boolean;\n\n /**\n * @generated from field: optional bool isCurrentlyPlaying = 27;\n */\n isCurrentlyPlaying: boolean;\n\n /**\n * @generated from field: optional string collectionIdentifier = 28;\n */\n collectionIdentifier: string;\n\n /**\n * @generated from field: optional string profileIdentifier = 29;\n */\n profileIdentifier: string;\n\n /**\n * @generated from field: optional double startTime = 30;\n */\n startTime: number;\n\n /**\n * @generated from field: optional string artworkMIMEType = 31;\n */\n artworkMIMEType: string;\n\n /**\n * @generated from field: optional string assetURLString = 32;\n */\n assetURLString: string;\n\n /**\n * @generated from field: optional string composer = 33;\n */\n composer: string;\n\n /**\n * @generated from field: optional int32 discNumber = 34;\n */\n discNumber: number;\n\n /**\n * @generated from field: optional double elapsedTime = 35;\n */\n elapsedTime: number;\n\n /**\n * @generated from field: optional string genre = 36;\n */\n genre: string;\n\n /**\n * @generated from field: optional bool isAlwaysLive = 37;\n */\n isAlwaysLive: boolean;\n\n /**\n * @generated from field: optional float playbackRate = 39;\n */\n playbackRate: number;\n\n /**\n * @generated from field: optional int32 chapterCount = 40;\n */\n chapterCount: number;\n\n /**\n * @generated from field: optional int32 totalDiscCount = 41;\n */\n totalDiscCount: number;\n\n /**\n * @generated from field: optional int32 totalTrackCount = 42;\n */\n totalTrackCount: number;\n\n /**\n * @generated from field: optional int32 trackNumber = 43;\n */\n trackNumber: number;\n\n /**\n * @generated from field: optional string contentIdentifier = 44;\n */\n contentIdentifier: string;\n\n /**\n * @generated from field: optional bool isSharable = 46;\n */\n isSharable: boolean;\n\n /**\n * @generated from field: optional bool isLiked = 48;\n */\n isLiked: boolean;\n\n /**\n * @generated from field: optional bool isInWishList = 49;\n */\n isInWishList: boolean;\n\n /**\n * @generated from field: optional int64 radioStationIdentifier = 50;\n */\n radioStationIdentifier: bigint;\n\n /**\n * @generated from field: optional string radioStationName = 52;\n */\n radioStationName: string;\n\n /**\n * @generated from field: optional string radioStationString = 53;\n */\n radioStationString: string;\n\n /**\n * @generated from field: optional int64 iTunesStoreIdentifier = 54;\n */\n iTunesStoreIdentifier: bigint;\n\n /**\n * @generated from field: optional int64 iTunesStoreSubscriptionIdentifier = 55;\n */\n iTunesStoreSubscriptionIdentifier: bigint;\n\n /**\n * @generated from field: optional int64 iTunesStoreArtistIdentifier = 56;\n */\n iTunesStoreArtistIdentifier: bigint;\n\n /**\n * @generated from field: optional int64 iTunesStoreAlbumIdentifier = 57;\n */\n iTunesStoreAlbumIdentifier: bigint;\n\n /**\n * @generated from field: optional bytes purchaseInfoData = 58;\n */\n purchaseInfoData: Uint8Array;\n\n /**\n * @generated from field: optional float defaultPlaybackRate = 59;\n */\n defaultPlaybackRate: number;\n\n /**\n * @generated from field: optional int32 downloadState = 60;\n */\n downloadState: number;\n\n /**\n * @generated from field: optional float downloadProgress = 61;\n */\n downloadProgress: number;\n\n /**\n * @generated from field: optional bytes appMetricsData = 62;\n */\n appMetricsData: Uint8Array;\n\n /**\n * @generated from field: optional string seriesName = 63;\n */\n seriesName: string;\n\n /**\n * @generated from field: optional ContentItemMetadata.MediaType mediaType = 64;\n */\n mediaType: ContentItemMetadata_MediaType;\n\n /**\n * @generated from field: optional ContentItemMetadata.MediaSubType mediaSubType = 65;\n */\n mediaSubType: ContentItemMetadata_MediaSubType;\n\n /**\n * @generated from field: optional bytes nowPlayingInfoData = 67;\n */\n nowPlayingInfoData: Uint8Array;\n\n /**\n * @generated from field: optional bytes userInfoData = 68;\n */\n userInfoData: Uint8Array;\n\n /**\n * @generated from field: optional bool isSteerable = 69;\n */\n isSteerable: boolean;\n\n /**\n * @generated from field: optional string artworkURL = 70;\n */\n artworkURL: string;\n\n /**\n * @generated from field: optional string lyricsURL = 71;\n */\n lyricsURL: string;\n\n /**\n * @generated from field: optional bytes deviceSpecificUserInfoData = 72;\n */\n deviceSpecificUserInfoData: Uint8Array;\n\n /**\n * @generated from field: optional bytes collectionInfoData = 73;\n */\n collectionInfoData: Uint8Array;\n\n /**\n * @generated from field: optional double elapsedTimeTimestamp = 74;\n */\n elapsedTimeTimestamp: number;\n\n /**\n * @generated from field: optional double inferredTimestamp = 75;\n */\n inferredTimestamp: number;\n\n /**\n * @generated from field: optional string serviceIdentifier = 76;\n */\n serviceIdentifier: string;\n\n /**\n * @generated from field: optional int32 artworkDataWidth = 77;\n */\n artworkDataWidth: number;\n\n /**\n * @generated from field: optional int32 artworkDataHeight = 78;\n */\n artworkDataHeight: number;\n\n /**\n * @generated from field: optional bytes currentPlaybackDateData = 79;\n */\n currentPlaybackDateData: Uint8Array;\n\n /**\n * @generated from field: optional string artworkIdentifier = 80;\n */\n artworkIdentifier: string;\n\n /**\n * @generated from field: optional bool isLoading = 81;\n */\n isLoading: boolean;\n\n /**\n * @generated from field: optional bytes artworkURLTemplatesData = 82;\n */\n artworkURLTemplatesData: Uint8Array;\n\n /**\n * @generated from field: optional int64 legacyUniqueIdentifier = 83;\n */\n legacyUniqueIdentifier: bigint;\n\n /**\n * @generated from field: optional int32 episodeType = 84;\n */\n episodeType: number;\n\n /**\n * @generated from field: optional string artworkFileURL = 85;\n */\n artworkFileURL: string;\n\n /**\n * @generated from field: optional string brandIdentifier = 86;\n */\n brandIdentifier: string;\n\n /**\n * @generated from field: optional string localizedDurationString = 87;\n */\n localizedDurationString: string;\n\n /**\n * @generated from field: optional string albumYear = 88;\n */\n albumYear: string;\n\n /**\n * @generated from field: optional SongTraits.Enum songTraits = 89;\n */\n songTraits: SongTraits_Enum;\n\n /**\n * @generated from field: optional AlbumTraits.Enum albumTraits = 90;\n */\n albumTraits: AlbumTraits_Enum;\n\n /**\n * @generated from field: optional PlaylistTraits.Enum playlistTraits = 91;\n */\n playlistTraits: PlaylistTraits_Enum;\n\n /**\n * @generated from field: optional AudioFormat preferredFormat = 92;\n */\n preferredFormat?: AudioFormat;\n\n /**\n * @generated from field: optional AudioFormat activeFormat = 93;\n */\n activeFormat?: AudioFormat;\n\n /**\n * @generated from field: optional ActiveFormatJustification.Enum activeFormatJustification = 94;\n */\n activeFormatJustification: ActiveFormatJustification_Enum;\n\n /**\n * @generated from field: optional FormatTier.Enum formatTierPreference = 95;\n */\n formatTierPreference: FormatTier_Enum;\n\n /**\n * @generated from field: optional AudioRoute audioRoute = 96;\n */\n audioRoute?: AudioRoute;\n\n /**\n * @generated from field: repeated AudioFormat alternativeFormats = 97;\n */\n alternativeFormats: AudioFormat[];\n};\n\n/**\n * Describes the message ContentItemMetadata.\n * Use `create(ContentItemMetadataSchema)` to create a new message.\n */\nexport const ContentItemMetadataSchema: GenMessage<ContentItemMetadata> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 9);\n\n/**\n * @generated from enum ContentItemMetadata.MediaType\n */\nexport enum ContentItemMetadata_MediaType {\n /**\n * @generated from enum value: UnknownMediaType = 0;\n */\n UnknownMediaType = 0,\n\n /**\n * @generated from enum value: Audio = 1;\n */\n Audio = 1,\n\n /**\n * @generated from enum value: Video = 2;\n */\n Video = 2,\n}\n\n/**\n * Describes the enum ContentItemMetadata.MediaType.\n */\nexport const ContentItemMetadata_MediaTypeSchema: GenEnum<ContentItemMetadata_MediaType> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 9, 0);\n\n/**\n * @generated from enum ContentItemMetadata.MediaSubType\n */\nexport enum ContentItemMetadata_MediaSubType {\n /**\n * @generated from enum value: UnknownMediaSubType = 0;\n */\n UnknownMediaSubType = 0,\n\n /**\n * @generated from enum value: Music = 1;\n */\n Music = 1,\n\n /**\n * @generated from enum value: Podcast = 4;\n */\n Podcast = 4,\n\n /**\n * @generated from enum value: AudioBook = 5;\n */\n AudioBook = 5,\n\n /**\n * @generated from enum value: ITunesU = 6;\n */\n ITunesU = 6,\n}\n\n/**\n * Describes the enum ContentItemMetadata.MediaSubType.\n */\nexport const ContentItemMetadata_MediaSubTypeSchema: GenEnum<ContentItemMetadata_MediaSubType> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 9, 1);\n\n",
25
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file LanguageOption.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file LanguageOption.proto.\n */\nexport const file_LanguageOption: GenFile = /*@__PURE__*/\n fileDesc(\"ChRMYW5ndWFnZU9wdGlvbi5wcm90byJ1Cg5MYW5ndWFnZU9wdGlvbhIMCgR0eXBlGAEgASgFEhMKC2xhbmd1YWdlVGFnGAIgASgJEhcKD2NoYXJhY3RlcmlzdGljcxgDIAMoCRITCgtkaXNwbGF5TmFtZRgEIAEoCRISCgppZGVudGlmaWVyGAUgASgJ\");\n\n/**\n * @generated from message LanguageOption\n */\nexport type LanguageOption = Message<\"LanguageOption\"> & {\n /**\n * @generated from field: optional int32 type = 1;\n */\n type: number;\n\n /**\n * @generated from field: optional string languageTag = 2;\n */\n languageTag: string;\n\n /**\n * @generated from field: repeated string characteristics = 3;\n */\n characteristics: string[];\n\n /**\n * @generated from field: optional string displayName = 4;\n */\n displayName: string;\n\n /**\n * @generated from field: optional string identifier = 5;\n */\n identifier: string;\n};\n\n/**\n * Describes the message LanguageOption.\n * Use `create(LanguageOptionSchema)` to create a new message.\n */\nexport const LanguageOptionSchema: GenMessage<LanguageOption> = /*@__PURE__*/\n messageDesc(file_LanguageOption, 0);\n\n",
26
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file CryptoPairingMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file CryptoPairingMessage.proto.\n */\nexport const file_CryptoPairingMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChpDcnlwdG9QYWlyaW5nTWVzc2FnZS5wcm90byJ8ChRDcnlwdG9QYWlyaW5nTWVzc2FnZRITCgtwYWlyaW5nRGF0YRgBIAEoDBIOCgZzdGF0dXMYAiABKAUSEgoKaXNSZXRyeWluZxgDIAEoCBIcChRpc1VzaW5nU3lzdGVtUGFpcmluZxgEIAEoCBINCgVzdGF0ZRgFIAEoBTpbChRjcnlwdG9QYWlyaW5nTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgnIAEoCzIVLkNyeXB0b1BhaXJpbmdNZXNzYWdlUhRjcnlwdG9QYWlyaW5nTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message CryptoPairingMessage\n */\nexport type CryptoPairingMessage = Message<\"CryptoPairingMessage\"> & {\n /**\n * Example: <00010006 0101>\n *\n * @generated from field: optional bytes pairingData = 1;\n */\n pairingData: Uint8Array;\n\n /**\n * Example: 0\n *\n * @generated from field: optional int32 status = 2;\n */\n status: number;\n\n /**\n * @generated from field: optional bool isRetrying = 3;\n */\n isRetrying: boolean;\n\n /**\n * @generated from field: optional bool isUsingSystemPairing = 4;\n */\n isUsingSystemPairing: boolean;\n\n /**\n * @generated from field: optional int32 state = 5;\n */\n state: number;\n};\n\n/**\n * Describes the message CryptoPairingMessage.\n * Use `create(CryptoPairingMessageSchema)` to create a new message.\n */\nexport const CryptoPairingMessageSchema: GenMessage<CryptoPairingMessage> = /*@__PURE__*/\n messageDesc(file_CryptoPairingMessage, 0);\n\n/**\n * @generated from extension: optional CryptoPairingMessage cryptoPairingMessage = 39;\n */\nexport const cryptoPairingMessage: GenExtension<ProtocolMessage, CryptoPairingMessage> = /*@__PURE__*/\n extDesc(file_CryptoPairingMessage, 0);\n\n",
27
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GenericMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GenericMessage.proto.\n */\nexport const file_GenericMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChRHZW5lcmljTWVzc2FnZS5wcm90byIsCg5HZW5lcmljTWVzc2FnZRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAw6SQoOZ2VuZXJpY01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYLiABKAsyDy5HZW5lcmljTWVzc2FnZVIOZ2VuZXJpY01lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GenericMessage\n */\nexport type GenericMessage = Message<\"GenericMessage\"> & {\n /**\n * @generated from field: optional string key = 1;\n */\n key: string;\n\n /**\n * @generated from field: optional bytes value = 2;\n */\n value: Uint8Array;\n};\n\n/**\n * Describes the message GenericMessage.\n * Use `create(GenericMessageSchema)` to create a new message.\n */\nexport const GenericMessageSchema: GenMessage<GenericMessage> = /*@__PURE__*/\n messageDesc(file_GenericMessage, 0);\n\n/**\n * @generated from extension: optional GenericMessage genericMessage = 46;\n */\nexport const genericMessage: GenExtension<ProtocolMessage, GenericMessage> = /*@__PURE__*/\n extDesc(file_GenericMessage, 0);\n\n",
28
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetKeyboardSessionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetKeyboardSessionMessage.proto.\n */\nexport const file_GetKeyboardSessionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9HZXRLZXlib2FyZFNlc3Npb25NZXNzYWdlLnByb3RvIhsKGUdldEtleWJvYXJkU2Vzc2lvbk1lc3NhZ2U6TgoZZ2V0S2V5Ym9hcmRTZXNzaW9uTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgdIAEoCVIZZ2V0S2V5Ym9hcmRTZXNzaW9uTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetKeyboardSessionMessage\n */\nexport type GetKeyboardSessionMessage = Message<\"GetKeyboardSessionMessage\"> & {\n};\n\n/**\n * Describes the message GetKeyboardSessionMessage.\n * Use `create(GetKeyboardSessionMessageSchema)` to create a new message.\n */\nexport const GetKeyboardSessionMessageSchema: GenMessage<GetKeyboardSessionMessage> = /*@__PURE__*/\n messageDesc(file_GetKeyboardSessionMessage, 0);\n\n/**\n * @generated from extension: optional string getKeyboardSessionMessage = 29;\n */\nexport const getKeyboardSessionMessage: GenExtension<ProtocolMessage, string> = /*@__PURE__*/\n extDesc(file_GetKeyboardSessionMessage, 0);\n\n",
29
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetRemoteTextInputSessionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetRemoteTextInputSessionMessage.proto.\n */\nexport const file_GetRemoteTextInputSessionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiZHZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZS5wcm90byIiCiBHZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZTp/CiBnZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhIIAEoCzIhLkdldFJlbW90ZVRleHRJbnB1dFNlc3Npb25NZXNzYWdlUiBnZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetRemoteTextInputSessionMessage\n */\nexport type GetRemoteTextInputSessionMessage = Message<\"GetRemoteTextInputSessionMessage\"> & {\n};\n\n/**\n * Describes the message GetRemoteTextInputSessionMessage.\n * Use `create(GetRemoteTextInputSessionMessageSchema)` to create a new message.\n */\nexport const GetRemoteTextInputSessionMessageSchema: GenMessage<GetRemoteTextInputSessionMessage> = /*@__PURE__*/\n messageDesc(file_GetRemoteTextInputSessionMessage, 0);\n\n/**\n * @generated from extension: optional GetRemoteTextInputSessionMessage getRemoteTextInputSessionMessage = 72;\n */\nexport const getRemoteTextInputSessionMessage: GenExtension<ProtocolMessage, GetRemoteTextInputSessionMessage> = /*@__PURE__*/\n extDesc(file_GetRemoteTextInputSessionMessage, 0);\n\n",
30
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetVolumeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetVolumeMessage.proto.\n */\nexport const file_GetVolumeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZHZXRWb2x1bWVNZXNzYWdlLnByb3RvIisKEEdldFZvbHVtZU1lc3NhZ2USFwoPb3V0cHV0RGV2aWNlVUlEGAEgASgJOk8KEGdldFZvbHVtZU1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYNSABKAsyES5HZXRWb2x1bWVNZXNzYWdlUhBnZXRWb2x1bWVNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetVolumeMessage\n */\nexport type GetVolumeMessage = Message<\"GetVolumeMessage\"> & {\n /**\n * @generated from field: optional string outputDeviceUID = 1;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message GetVolumeMessage.\n * Use `create(GetVolumeMessageSchema)` to create a new message.\n */\nexport const GetVolumeMessageSchema: GenMessage<GetVolumeMessage> = /*@__PURE__*/\n messageDesc(file_GetVolumeMessage, 0);\n\n/**\n * @generated from extension: optional GetVolumeMessage getVolumeMessage = 53;\n */\nexport const getVolumeMessage: GenExtension<ProtocolMessage, GetVolumeMessage> = /*@__PURE__*/\n extDesc(file_GetVolumeMessage, 0);\n\n",
31
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetVolumeResultMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetVolumeResultMessage.proto.\n */\nexport const file_GetVolumeResultMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxHZXRWb2x1bWVSZXN1bHRNZXNzYWdlLnByb3RvIigKFkdldFZvbHVtZVJlc3VsdE1lc3NhZ2USDgoGdm9sdW1lGAEgASgCOmEKFmdldFZvbHVtZVJlc3VsdE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYNiABKAsyFy5HZXRWb2x1bWVSZXN1bHRNZXNzYWdlUhZnZXRWb2x1bWVSZXN1bHRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetVolumeResultMessage\n */\nexport type GetVolumeResultMessage = Message<\"GetVolumeResultMessage\"> & {\n /**\n * @generated from field: optional float volume = 1;\n */\n volume: number;\n};\n\n/**\n * Describes the message GetVolumeResultMessage.\n * Use `create(GetVolumeResultMessageSchema)` to create a new message.\n */\nexport const GetVolumeResultMessageSchema: GenMessage<GetVolumeResultMessage> = /*@__PURE__*/\n messageDesc(file_GetVolumeResultMessage, 0);\n\n/**\n * @generated from extension: optional GetVolumeResultMessage getVolumeResultMessage = 54;\n */\nexport const getVolumeResultMessage: GenExtension<ProtocolMessage, GetVolumeResultMessage> = /*@__PURE__*/\n extDesc(file_GetVolumeResultMessage, 0);\n\n",
32
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file KeyboardMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file KeyboardMessage.proto.\n */\nexport const file_KeyboardMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChVLZXlib2FyZE1lc3NhZ2UucHJvdG8iigEKDUtleWJvYXJkU3RhdGUieQoERW51bRILCgdVbmtub3duEAASDgoKTm90RWRpdGluZxABEhMKD0RpZEJlZ2luRWRpdGluZxACEgsKB0VkaXRpbmcQAxIRCg1UZXh0RGlkQ2hhbmdlEAQSEQoNRGlkRW5kRWRpdGluZxAFEgwKCFJlc3BvbnNlEAYiVwoWQXV0b2NhcGl0YWxpemF0aW9uVHlwZSI9CgRFbnVtEggKBE5vbmUQABIJCgVXb3JkcxABEg0KCVNlbnRlbmNlcxACEhEKDUFsbENoYXJhY3RlcnMQAyLnAQoMS2V5Ym9hcmRUeXBlItYBCgRFbnVtEgsKB0RlZmF1bHQQABIRCg1BU0NJSV9DYXBhYmxlEAESGQoVTnVtYmVyc0FuZFB1bmN0dWF0aW9uEAISBwoDVVJMEAMSDQoJTnVtYmVyUGFkEAQSDAoIUGhvbmVQYWQQBRIQCgxOYW1lUGhvbmVQYWQQBhIQCgxFbWFpbEFkZHJlc3MQBxIOCgpEZWNpbWFsUGFkEAgSCwoHVHdpdHRlchAJEg0KCVdlYlNlYXJjaBAKEgwKCEFscGhhbmV0EAsSDwoLUGFzc2NvZGVQYWQQDCKkAQoNUmV0dXJuS2V5VHlwZSKSAQoERW51bRILCgdEZWZhdWx0EAASBgoCR28QARIKCgZHb29nbGUQAhIICgRKb2luEAMSCAoETmV4dBAEEgkKBVJvdXRlEAUSCgoGU2VhcmNoEAYSCAoEU2VuZBAHEgkKBVlhaG9vEAgSCAoERG9uZRAJEhEKDUVtZXJnZW5jeUNhbGwQChIMCghDb250aW51ZRALIvQCCg9UZXh0SW5wdXRUcmFpdHMSPAoWYXV0b2NhcGl0YWxpemF0aW9uVHlwZRgBIAEoDjIcLkF1dG9jYXBpdGFsaXphdGlvblR5cGUuRW51bRIoCgxrZXlib2FyZFR5cGUYAiABKA4yEi5LZXlib2FyZFR5cGUuRW51bRIqCg1yZXR1cm5LZXlUeXBlGAMgASgOMhMuUmV0dXJuS2V5VHlwZS5FbnVtEhYKDmF1dG9jb3JyZWN0aW9uGAQgASgIEhUKDXNwZWxsY2hlY2tpbmcYBSABKAgSJQodZW5hYmxlc1JldHVybktleUF1dG9tYXRpY2FsbHkYBiABKAgSFwoPc2VjdXJlVGV4dEVudHJ5GAcgASgIEh4KFnZhbGlkVGV4dFJhbmdlTG9jYXRpb24YCCABKAQSHAoUdmFsaWRUZXh0UmFuZ2VMZW5ndGgYCSABKAQSIAoYcElORW50cnlTZXBhcmF0b3JJbmRleGVzGAogAygEIl0KFVRleHRFZGl0aW5nQXR0cmlidXRlcxINCgV0aXRsZRgBIAEoCRIOCgZwcm9tcHQYAiABKAkSJQoLaW5wdXRUcmFpdHMYAyABKAsyEC5UZXh0SW5wdXRUcmFpdHMiggEKD0tleWJvYXJkTWVzc2FnZRIiCgVzdGF0ZRgBIAEoDjITLktleWJvYXJkU3RhdGUuRW51bRIqCgphdHRyaWJ1dGVzGAMgASgLMhYuVGV4dEVkaXRpbmdBdHRyaWJ1dGVzEh8KF2VuY3J5cHRlZFRleHRDeXBoZXJ0ZXh0GAQgASgMOkwKD2tleWJvYXJkTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgcIAEoCzIQLktleWJvYXJkTWVzc2FnZVIPa2V5Ym9hcmRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message KeyboardState\n */\nexport type KeyboardState = Message<\"KeyboardState\"> & {\n};\n\n/**\n * Describes the message KeyboardState.\n * Use `create(KeyboardStateSchema)` to create a new message.\n */\nexport const KeyboardStateSchema: GenMessage<KeyboardState> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 0);\n\n/**\n * @generated from enum KeyboardState.Enum\n */\nexport enum KeyboardState_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: NotEditing = 1;\n */\n NotEditing = 1,\n\n /**\n * @generated from enum value: DidBeginEditing = 2;\n */\n DidBeginEditing = 2,\n\n /**\n * @generated from enum value: Editing = 3;\n */\n Editing = 3,\n\n /**\n * @generated from enum value: TextDidChange = 4;\n */\n TextDidChange = 4,\n\n /**\n * @generated from enum value: DidEndEditing = 5;\n */\n DidEndEditing = 5,\n\n /**\n * @generated from enum value: Response = 6;\n */\n Response = 6,\n}\n\n/**\n * Describes the enum KeyboardState.Enum.\n */\nexport const KeyboardState_EnumSchema: GenEnum<KeyboardState_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 0, 0);\n\n/**\n * @generated from message AutocapitalizationType\n */\nexport type AutocapitalizationType = Message<\"AutocapitalizationType\"> & {\n};\n\n/**\n * Describes the message AutocapitalizationType.\n * Use `create(AutocapitalizationTypeSchema)` to create a new message.\n */\nexport const AutocapitalizationTypeSchema: GenMessage<AutocapitalizationType> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 1);\n\n/**\n * @generated from enum AutocapitalizationType.Enum\n */\nexport enum AutocapitalizationType_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Words = 1;\n */\n Words = 1,\n\n /**\n * @generated from enum value: Sentences = 2;\n */\n Sentences = 2,\n\n /**\n * @generated from enum value: AllCharacters = 3;\n */\n AllCharacters = 3,\n}\n\n/**\n * Describes the enum AutocapitalizationType.Enum.\n */\nexport const AutocapitalizationType_EnumSchema: GenEnum<AutocapitalizationType_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 1, 0);\n\n/**\n * @generated from message KeyboardType\n */\nexport type KeyboardType = Message<\"KeyboardType\"> & {\n};\n\n/**\n * Describes the message KeyboardType.\n * Use `create(KeyboardTypeSchema)` to create a new message.\n */\nexport const KeyboardTypeSchema: GenMessage<KeyboardType> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 2);\n\n/**\n * @generated from enum KeyboardType.Enum\n */\nexport enum KeyboardType_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: ASCII_Capable = 1;\n */\n ASCII_Capable = 1,\n\n /**\n * @generated from enum value: NumbersAndPunctuation = 2;\n */\n NumbersAndPunctuation = 2,\n\n /**\n * @generated from enum value: URL = 3;\n */\n URL = 3,\n\n /**\n * @generated from enum value: NumberPad = 4;\n */\n NumberPad = 4,\n\n /**\n * @generated from enum value: PhonePad = 5;\n */\n PhonePad = 5,\n\n /**\n * @generated from enum value: NamePhonePad = 6;\n */\n NamePhonePad = 6,\n\n /**\n * @generated from enum value: EmailAddress = 7;\n */\n EmailAddress = 7,\n\n /**\n * @generated from enum value: DecimalPad = 8;\n */\n DecimalPad = 8,\n\n /**\n * @generated from enum value: Twitter = 9;\n */\n Twitter = 9,\n\n /**\n * @generated from enum value: WebSearch = 10;\n */\n WebSearch = 10,\n\n /**\n * @generated from enum value: Alphanet = 11;\n */\n Alphanet = 11,\n\n /**\n * @generated from enum value: PasscodePad = 12;\n */\n PasscodePad = 12,\n}\n\n/**\n * Describes the enum KeyboardType.Enum.\n */\nexport const KeyboardType_EnumSchema: GenEnum<KeyboardType_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 2, 0);\n\n/**\n * @generated from message ReturnKeyType\n */\nexport type ReturnKeyType = Message<\"ReturnKeyType\"> & {\n};\n\n/**\n * Describes the message ReturnKeyType.\n * Use `create(ReturnKeyTypeSchema)` to create a new message.\n */\nexport const ReturnKeyTypeSchema: GenMessage<ReturnKeyType> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 3);\n\n/**\n * @generated from enum ReturnKeyType.Enum\n */\nexport enum ReturnKeyType_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: Go = 1;\n */\n Go = 1,\n\n /**\n * @generated from enum value: Google = 2;\n */\n Google = 2,\n\n /**\n * @generated from enum value: Join = 3;\n */\n Join = 3,\n\n /**\n * @generated from enum value: Next = 4;\n */\n Next = 4,\n\n /**\n * @generated from enum value: Route = 5;\n */\n Route = 5,\n\n /**\n * @generated from enum value: Search = 6;\n */\n Search = 6,\n\n /**\n * @generated from enum value: Send = 7;\n */\n Send = 7,\n\n /**\n * @generated from enum value: Yahoo = 8;\n */\n Yahoo = 8,\n\n /**\n * @generated from enum value: Done = 9;\n */\n Done = 9,\n\n /**\n * @generated from enum value: EmergencyCall = 10;\n */\n EmergencyCall = 10,\n\n /**\n * @generated from enum value: Continue = 11;\n */\n Continue = 11,\n}\n\n/**\n * Describes the enum ReturnKeyType.Enum.\n */\nexport const ReturnKeyType_EnumSchema: GenEnum<ReturnKeyType_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 3, 0);\n\n/**\n * @generated from message TextInputTraits\n */\nexport type TextInputTraits = Message<\"TextInputTraits\"> & {\n /**\n * @generated from field: optional AutocapitalizationType.Enum autocapitalizationType = 1;\n */\n autocapitalizationType: AutocapitalizationType_Enum;\n\n /**\n * @generated from field: optional KeyboardType.Enum keyboardType = 2;\n */\n keyboardType: KeyboardType_Enum;\n\n /**\n * @generated from field: optional ReturnKeyType.Enum returnKeyType = 3;\n */\n returnKeyType: ReturnKeyType_Enum;\n\n /**\n * @generated from field: optional bool autocorrection = 4;\n */\n autocorrection: boolean;\n\n /**\n * @generated from field: optional bool spellchecking = 5;\n */\n spellchecking: boolean;\n\n /**\n * @generated from field: optional bool enablesReturnKeyAutomatically = 6;\n */\n enablesReturnKeyAutomatically: boolean;\n\n /**\n * @generated from field: optional bool secureTextEntry = 7;\n */\n secureTextEntry: boolean;\n\n /**\n * @generated from field: optional uint64 validTextRangeLocation = 8;\n */\n validTextRangeLocation: bigint;\n\n /**\n * @generated from field: optional uint64 validTextRangeLength = 9;\n */\n validTextRangeLength: bigint;\n\n /**\n * @generated from field: repeated uint64 pINEntrySeparatorIndexes = 10;\n */\n pINEntrySeparatorIndexes: bigint[];\n};\n\n/**\n * Describes the message TextInputTraits.\n * Use `create(TextInputTraitsSchema)` to create a new message.\n */\nexport const TextInputTraitsSchema: GenMessage<TextInputTraits> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 4);\n\n/**\n * @generated from message TextEditingAttributes\n */\nexport type TextEditingAttributes = Message<\"TextEditingAttributes\"> & {\n /**\n * @generated from field: optional string title = 1;\n */\n title: string;\n\n /**\n * @generated from field: optional string prompt = 2;\n */\n prompt: string;\n\n /**\n * @generated from field: optional TextInputTraits inputTraits = 3;\n */\n inputTraits?: TextInputTraits;\n};\n\n/**\n * Describes the message TextEditingAttributes.\n * Use `create(TextEditingAttributesSchema)` to create a new message.\n */\nexport const TextEditingAttributesSchema: GenMessage<TextEditingAttributes> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 5);\n\n/**\n * @generated from message KeyboardMessage\n */\nexport type KeyboardMessage = Message<\"KeyboardMessage\"> & {\n /**\n * @generated from field: optional KeyboardState.Enum state = 1;\n */\n state: KeyboardState_Enum;\n\n /**\n * @generated from field: optional TextEditingAttributes attributes = 3;\n */\n attributes?: TextEditingAttributes;\n\n /**\n * @generated from field: optional bytes encryptedTextCyphertext = 4;\n */\n encryptedTextCyphertext: Uint8Array;\n};\n\n/**\n * Describes the message KeyboardMessage.\n * Use `create(KeyboardMessageSchema)` to create a new message.\n */\nexport const KeyboardMessageSchema: GenMessage<KeyboardMessage> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 6);\n\n/**\n * @generated from extension: optional KeyboardMessage keyboardMessage = 28;\n */\nexport const keyboardMessage: GenExtension<ProtocolMessage, KeyboardMessage> = /*@__PURE__*/\n extDesc(file_KeyboardMessage, 0);\n\n",
33
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ModifyOutputContextRequestMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ModifyOutputContextRequestMessage.proto.\n */\nexport const file_ModifyOutputContextRequestMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CidNb2RpZnlPdXRwdXRDb250ZXh0UmVxdWVzdE1lc3NhZ2UucHJvdG8iRQoeTW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RUeXBlIiMKBEVudW0SGwoXU2hhcmVkQXVkaW9QcmVzZW50YXRpb24QASKLAgohTW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RNZXNzYWdlEjIKBHR5cGUYASABKA4yJC5Nb2RpZnlPdXRwdXRDb250ZXh0UmVxdWVzdFR5cGUuRW51bRIVCg1hZGRpbmdEZXZpY2VzGAIgAygJEhcKD3JlbW92aW5nRGV2aWNlcxgDIAMoCRIWCg5zZXR0aW5nRGV2aWNlcxgEIAMoCRIhChljbHVzdGVyQXdhcmVBZGRpbmdEZXZpY2VzGAUgAygJEiMKG2NsdXN0ZXJBd2FyZVJlbW92aW5nRGV2aWNlcxgGIAMoCRIiChpjbHVzdGVyQXdhcmVTZXR0aW5nRGV2aWNlcxgHIAMoCTqCAQohbW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDQgASgLMiIuTW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RNZXNzYWdlUiFtb2RpZnlPdXRwdXRDb250ZXh0UmVxdWVzdE1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ModifyOutputContextRequestType\n */\nexport type ModifyOutputContextRequestType = Message<\"ModifyOutputContextRequestType\"> & {\n};\n\n/**\n * Describes the message ModifyOutputContextRequestType.\n * Use `create(ModifyOutputContextRequestTypeSchema)` to create a new message.\n */\nexport const ModifyOutputContextRequestTypeSchema: GenMessage<ModifyOutputContextRequestType> = /*@__PURE__*/\n messageDesc(file_ModifyOutputContextRequestMessage, 0);\n\n/**\n * @generated from enum ModifyOutputContextRequestType.Enum\n */\nexport enum ModifyOutputContextRequestType_Enum {\n /**\n * @generated from enum value: SharedAudioPresentation = 1;\n */\n SharedAudioPresentation = 1,\n}\n\n/**\n * Describes the enum ModifyOutputContextRequestType.Enum.\n */\nexport const ModifyOutputContextRequestType_EnumSchema: GenEnum<ModifyOutputContextRequestType_Enum> = /*@__PURE__*/\n enumDesc(file_ModifyOutputContextRequestMessage, 0, 0);\n\n/**\n * @generated from message ModifyOutputContextRequestMessage\n */\nexport type ModifyOutputContextRequestMessage = Message<\"ModifyOutputContextRequestMessage\"> & {\n /**\n * @generated from field: optional ModifyOutputContextRequestType.Enum type = 1;\n */\n type: ModifyOutputContextRequestType_Enum;\n\n /**\n * @generated from field: repeated string addingDevices = 2;\n */\n addingDevices: string[];\n\n /**\n * @generated from field: repeated string removingDevices = 3;\n */\n removingDevices: string[];\n\n /**\n * @generated from field: repeated string settingDevices = 4;\n */\n settingDevices: string[];\n\n /**\n * @generated from field: repeated string clusterAwareAddingDevices = 5;\n */\n clusterAwareAddingDevices: string[];\n\n /**\n * @generated from field: repeated string clusterAwareRemovingDevices = 6;\n */\n clusterAwareRemovingDevices: string[];\n\n /**\n * @generated from field: repeated string clusterAwareSettingDevices = 7;\n */\n clusterAwareSettingDevices: string[];\n};\n\n/**\n * Describes the message ModifyOutputContextRequestMessage.\n * Use `create(ModifyOutputContextRequestMessageSchema)` to create a new message.\n */\nexport const ModifyOutputContextRequestMessageSchema: GenMessage<ModifyOutputContextRequestMessage> = /*@__PURE__*/\n messageDesc(file_ModifyOutputContextRequestMessage, 1);\n\n/**\n * @generated from extension: optional ModifyOutputContextRequestMessage modifyOutputContextRequestMessage = 52;\n */\nexport const modifyOutputContextRequestMessage: GenExtension<ProtocolMessage, ModifyOutputContextRequestMessage> = /*@__PURE__*/\n extDesc(file_ModifyOutputContextRequestMessage, 0);\n\n",
34
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NotificationMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NotificationMessage.proto.\n */\nexport const file_NotificationMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlOb3RpZmljYXRpb25NZXNzYWdlLnByb3RvIj0KE05vdGlmaWNhdGlvbk1lc3NhZ2USFAoMbm90aWZpY2F0aW9uGAEgAygJEhAKCHVzZXJJbmZvGAIgAygMOlgKE25vdGlmaWNhdGlvbk1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYECABKAsyFC5Ob3RpZmljYXRpb25NZXNzYWdlUhNub3RpZmljYXRpb25NZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message NotificationMessage\n */\nexport type NotificationMessage = Message<\"NotificationMessage\"> & {\n /**\n * @generated from field: repeated string notification = 1;\n */\n notification: string[];\n\n /**\n * @generated from field: repeated bytes userInfo = 2;\n */\n userInfo: Uint8Array[];\n};\n\n/**\n * Describes the message NotificationMessage.\n * Use `create(NotificationMessageSchema)` to create a new message.\n */\nexport const NotificationMessageSchema: GenMessage<NotificationMessage> = /*@__PURE__*/\n messageDesc(file_NotificationMessage, 0);\n\n/**\n * @generated from extension: optional NotificationMessage notificationMessage = 16;\n */\nexport const notificationMessage: GenExtension<ProtocolMessage, NotificationMessage> = /*@__PURE__*/\n extDesc(file_NotificationMessage, 0);\n\n",
35
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NowPlayingInfo.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { RepeatMode_Enum, ShuffleMode_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NowPlayingInfo.proto.\n */\nexport const file_NowPlayingInfo: GenFile = /*@__PURE__*/\n fileDesc(\"ChROb3dQbGF5aW5nSW5mby5wcm90byLBAwoOTm93UGxheWluZ0luZm8SDQoFYWxidW0YASABKAkSDgoGYXJ0aXN0GAIgASgJEhAKCGR1cmF0aW9uGAMgASgBEhMKC2VsYXBzZWRUaW1lGAQgASgBEhQKDHBsYXliYWNrUmF0ZRgFIAEoAhIkCgpyZXBlYXRNb2RlGAYgASgOMhAuUmVwZWF0TW9kZS5FbnVtEiYKC3NodWZmbGVNb2RlGAcgASgOMhEuU2h1ZmZsZU1vZGUuRW51bRIRCgl0aW1lc3RhbXAYCCABKAESDQoFdGl0bGUYCSABKAkSGAoQdW5pcXVlSWRlbnRpZmllchgKIAEoBBIXCg9pc0V4cGxpY2l0VHJhY2sYCyABKAgSEgoKaXNNdXNpY0FwcBgMIAEoCBIeChZyYWRpb1N0YXRpb25JZGVudGlmaWVyGA0gASgDEhgKEHJhZGlvU3RhdGlvbkhhc2gYDiABKAkSGAoQcmFkaW9TdGF0aW9uTmFtZRgPIAEoCRIZChFhcnR3b3JrRGF0YURpZ2VzdBgQIAEoDBIUCgxpc0Fsd2F5c0xpdmUYESABKAgSFwoPaXNBZHZlcnRpc2VtZW50GBIgASgI\", [file_Common]);\n\n/**\n * @generated from message NowPlayingInfo\n */\nexport type NowPlayingInfo = Message<\"NowPlayingInfo\"> & {\n /**\n * @generated from field: optional string album = 1;\n */\n album: string;\n\n /**\n * @generated from field: optional string artist = 2;\n */\n artist: string;\n\n /**\n * @generated from field: optional double duration = 3;\n */\n duration: number;\n\n /**\n * @generated from field: optional double elapsedTime = 4;\n */\n elapsedTime: number;\n\n /**\n * @generated from field: optional float playbackRate = 5;\n */\n playbackRate: number;\n\n /**\n * @generated from field: optional RepeatMode.Enum repeatMode = 6;\n */\n repeatMode: RepeatMode_Enum;\n\n /**\n * @generated from field: optional ShuffleMode.Enum shuffleMode = 7;\n */\n shuffleMode: ShuffleMode_Enum;\n\n /**\n * @generated from field: optional double timestamp = 8;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional string title = 9;\n */\n title: string;\n\n /**\n * @generated from field: optional uint64 uniqueIdentifier = 10;\n */\n uniqueIdentifier: bigint;\n\n /**\n * @generated from field: optional bool isExplicitTrack = 11;\n */\n isExplicitTrack: boolean;\n\n /**\n * @generated from field: optional bool isMusicApp = 12;\n */\n isMusicApp: boolean;\n\n /**\n * @generated from field: optional int64 radioStationIdentifier = 13;\n */\n radioStationIdentifier: bigint;\n\n /**\n * @generated from field: optional string radioStationHash = 14;\n */\n radioStationHash: string;\n\n /**\n * @generated from field: optional string radioStationName = 15;\n */\n radioStationName: string;\n\n /**\n * @generated from field: optional bytes artworkDataDigest = 16;\n */\n artworkDataDigest: Uint8Array;\n\n /**\n * @generated from field: optional bool isAlwaysLive = 17;\n */\n isAlwaysLive: boolean;\n\n /**\n * @generated from field: optional bool isAdvertisement = 18;\n */\n isAdvertisement: boolean;\n};\n\n/**\n * Describes the message NowPlayingInfo.\n * Use `create(NowPlayingInfoSchema)` to create a new message.\n */\nexport const NowPlayingInfoSchema: GenMessage<NowPlayingInfo> = /*@__PURE__*/\n messageDesc(file_NowPlayingInfo, 0);\n\n",
36
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file OriginClientPropertiesMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file OriginClientPropertiesMessage.proto.\n */\nexport const file_OriginClientPropertiesMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiNPcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZS5wcm90byI9Ch1PcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIcChRsYXN0UGxheWluZ1RpbWVzdGFtcBgBIAEoATp2Ch1vcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhXIAEoCzIeLk9yaWdpbkNsaWVudFByb3BlcnRpZXNNZXNzYWdlUh1vcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message OriginClientPropertiesMessage\n */\nexport type OriginClientPropertiesMessage = Message<\"OriginClientPropertiesMessage\"> & {\n /**\n * @generated from field: optional double lastPlayingTimestamp = 1;\n */\n lastPlayingTimestamp: number;\n};\n\n/**\n * Describes the message OriginClientPropertiesMessage.\n * Use `create(OriginClientPropertiesMessageSchema)` to create a new message.\n */\nexport const OriginClientPropertiesMessageSchema: GenMessage<OriginClientPropertiesMessage> = /*@__PURE__*/\n messageDesc(file_OriginClientPropertiesMessage, 0);\n\n/**\n * @generated from extension: optional OriginClientPropertiesMessage originClientPropertiesMessage = 87;\n */\nexport const originClientPropertiesMessage: GenExtension<ProtocolMessage, OriginClientPropertiesMessage> = /*@__PURE__*/\n extDesc(file_OriginClientPropertiesMessage, 0);\n\n",
37
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueue.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ContentItem } from \"./ContentItem_pb\";\nimport { file_ContentItem } from \"./ContentItem_pb\";\nimport type { PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport { file_PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueue.proto.\n */\nexport const file_PlaybackQueue: GenFile = /*@__PURE__*/\n fileDesc(\"ChNQbGF5YmFja1F1ZXVlLnByb3RvIusBCg1QbGF5YmFja1F1ZXVlEhAKCGxvY2F0aW9uGAEgASgFEiIKDGNvbnRlbnRJdGVtcxgCIAMoCzIMLkNvbnRlbnRJdGVtEiYKB2NvbnRleHQYAyABKAsyFS5QbGF5YmFja1F1ZXVlQ29udGV4dBIRCglyZXF1ZXN0SWQYBCABKAkSJwoScmVzb2x2ZWRQbGF5ZXJQYXRoGAUgASgLMgsuUGxheWVyUGF0aBInCh9zZW5kaW5nUGxheWJhY2tRdWV1ZVRyYW5zYWN0aW9uGAYgASgIEhcKD3F1ZXVlSWRlbnRpZmllchgHIAEoCQ\", [file_ContentItem, file_PlaybackQueueContext, file_PlayerPath]);\n\n/**\n * @generated from message PlaybackQueue\n */\nexport type PlaybackQueue = Message<\"PlaybackQueue\"> & {\n /**\n * @generated from field: optional int32 location = 1;\n */\n location: number;\n\n /**\n * @generated from field: repeated ContentItem contentItems = 2;\n */\n contentItems: ContentItem[];\n\n /**\n * @generated from field: optional PlaybackQueueContext context = 3;\n */\n context?: PlaybackQueueContext;\n\n /**\n * @generated from field: optional string requestId = 4;\n */\n requestId: string;\n\n /**\n * @generated from field: optional PlayerPath resolvedPlayerPath = 5;\n */\n resolvedPlayerPath?: PlayerPath;\n\n /**\n * @generated from field: optional bool sendingPlaybackQueueTransaction = 6;\n */\n sendingPlaybackQueueTransaction: boolean;\n\n /**\n * @generated from field: optional string queueIdentifier = 7;\n */\n queueIdentifier: string;\n};\n\n/**\n * Describes the message PlaybackQueue.\n * Use `create(PlaybackQueueSchema)` to create a new message.\n */\nexport const PlaybackQueueSchema: GenMessage<PlaybackQueue> = /*@__PURE__*/\n messageDesc(file_PlaybackQueue, 0);\n\n",
38
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueueContext.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueueContext.proto.\n */\nexport const file_PlaybackQueueContext: GenFile = /*@__PURE__*/\n fileDesc(\"ChpQbGF5YmFja1F1ZXVlQ29udGV4dC5wcm90byIoChRQbGF5YmFja1F1ZXVlQ29udGV4dBIQCghyZXZpc2lvbhgBIAEoCQ\");\n\n/**\n * @generated from message PlaybackQueueContext\n */\nexport type PlaybackQueueContext = Message<\"PlaybackQueueContext\"> & {\n /**\n * @generated from field: optional string revision = 1;\n */\n revision: string;\n};\n\n/**\n * Describes the message PlaybackQueueContext.\n * Use `create(PlaybackQueueContextSchema)` to create a new message.\n */\nexport const PlaybackQueueContextSchema: GenMessage<PlaybackQueueContext> = /*@__PURE__*/\n messageDesc(file_PlaybackQueueContext, 0);\n\n",
39
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueueCapabilities.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueueCapabilities.proto.\n */\nexport const file_PlaybackQueueCapabilities: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9QbGF5YmFja1F1ZXVlQ2FwYWJpbGl0aWVzLnByb3RvImsKGVBsYXliYWNrUXVldWVDYXBhYmlsaXRpZXMSFgoOcmVxdWVzdEJ5UmFuZ2UYASABKAgSHAoUcmVxdWVzdEJ5SWRlbnRpZmllcnMYAiABKAgSGAoQcmVxdWVzdEJ5UmVxdWVzdBgDIAEoCA\");\n\n/**\n * @generated from message PlaybackQueueCapabilities\n */\nexport type PlaybackQueueCapabilities = Message<\"PlaybackQueueCapabilities\"> & {\n /**\n * @generated from field: optional bool requestByRange = 1;\n */\n requestByRange: boolean;\n\n /**\n * @generated from field: optional bool requestByIdentifiers = 2;\n */\n requestByIdentifiers: boolean;\n\n /**\n * @generated from field: optional bool requestByRequest = 3;\n */\n requestByRequest: boolean;\n};\n\n/**\n * Describes the message PlaybackQueueCapabilities.\n * Use `create(PlaybackQueueCapabilitiesSchema)` to create a new message.\n */\nexport const PlaybackQueueCapabilitiesSchema: GenMessage<PlaybackQueueCapabilities> = /*@__PURE__*/\n messageDesc(file_PlaybackQueueCapabilities, 0);\n\n",
40
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueueRequestMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport { file_PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueueRequestMessage.proto.\n */\nexport const file_PlaybackQueueRequestMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiFQbGF5YmFja1F1ZXVlUmVxdWVzdE1lc3NhZ2UucHJvdG8i5AMKG1BsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZRIQCghsb2NhdGlvbhgBIAEoBRIOCgZsZW5ndGgYAiABKAUSFwoPaW5jbHVkZU1ldGFkYXRhGAMgASgIEhQKDGFydHdvcmtXaWR0aBgEIAEoARIVCg1hcnR3b3JrSGVpZ2h0GAUgASgBEhUKDWluY2x1ZGVMeXJpY3MYBiABKAgSFwoPaW5jbHVkZVNlY3Rpb25zGAcgASgIEhMKC2luY2x1ZGVJbmZvGAggASgIEh4KFmluY2x1ZGVMYW5ndWFnZU9wdGlvbnMYCSABKAgSJgoHY29udGV4dBgKIAEoCzIVLlBsYXliYWNrUXVldWVDb250ZXh0EhEKCXJlcXVlc3RJRBgLIAEoCRIeChZjb250ZW50SXRlbUlkZW50aWZpZXJzGAwgAygJEi8KJ3JldHVybkNvbnRlbnRJdGVtQXNzZXRzSW5Vc2VyQ29tcGxldGlvbhgNIAEoCBIfCgpwbGF5ZXJQYXRoGA4gASgLMgsuUGxheWVyUGF0aBIVCg1jYWNoaW5nUG9saWN5GA8gASgFEg0KBWxhYmVsGBAgASgJEiUKHWlzTGVnYWN5Tm93UGxheWluZ0luZm9SZXF1ZXN0GBEgASgIOnAKG3BsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRglIAEoCzIcLlBsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZVIbcGxheWJhY2tRdWV1ZVJlcXVlc3RNZXNzYWdl\", [file_ProtocolMessage, file_PlaybackQueueContext, file_PlayerPath]);\n\n/**\n * @generated from message PlaybackQueueRequestMessage\n */\nexport type PlaybackQueueRequestMessage = Message<\"PlaybackQueueRequestMessage\"> & {\n /**\n * @generated from field: optional int32 location = 1;\n */\n location: number;\n\n /**\n * @generated from field: optional int32 length = 2;\n */\n length: number;\n\n /**\n * @generated from field: optional bool includeMetadata = 3;\n */\n includeMetadata: boolean;\n\n /**\n * @generated from field: optional double artworkWidth = 4;\n */\n artworkWidth: number;\n\n /**\n * @generated from field: optional double artworkHeight = 5;\n */\n artworkHeight: number;\n\n /**\n * @generated from field: optional bool includeLyrics = 6;\n */\n includeLyrics: boolean;\n\n /**\n * @generated from field: optional bool includeSections = 7;\n */\n includeSections: boolean;\n\n /**\n * @generated from field: optional bool includeInfo = 8;\n */\n includeInfo: boolean;\n\n /**\n * @generated from field: optional bool includeLanguageOptions = 9;\n */\n includeLanguageOptions: boolean;\n\n /**\n * @generated from field: optional PlaybackQueueContext context = 10;\n */\n context?: PlaybackQueueContext;\n\n /**\n * @generated from field: optional string requestID = 11;\n */\n requestID: string;\n\n /**\n * @generated from field: repeated string contentItemIdentifiers = 12;\n */\n contentItemIdentifiers: string[];\n\n /**\n * @generated from field: optional bool returnContentItemAssetsInUserCompletion = 13;\n */\n returnContentItemAssetsInUserCompletion: boolean;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 14;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional int32 cachingPolicy = 15;\n */\n cachingPolicy: number;\n\n /**\n * @generated from field: optional string label = 16;\n */\n label: string;\n\n /**\n * @generated from field: optional bool isLegacyNowPlayingInfoRequest = 17;\n */\n isLegacyNowPlayingInfoRequest: boolean;\n};\n\n/**\n * Describes the message PlaybackQueueRequestMessage.\n * Use `create(PlaybackQueueRequestMessageSchema)` to create a new message.\n */\nexport const PlaybackQueueRequestMessageSchema: GenMessage<PlaybackQueueRequestMessage> = /*@__PURE__*/\n messageDesc(file_PlaybackQueueRequestMessage, 0);\n\n/**\n * @generated from extension: optional PlaybackQueueRequestMessage playbackQueueRequestMessage = 37;\n */\nexport const playbackQueueRequestMessage: GenExtension<ProtocolMessage, PlaybackQueueRequestMessage> = /*@__PURE__*/\n extDesc(file_PlaybackQueueRequestMessage, 0);\n\n",
41
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlayerClientPropertiesMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlayerClientPropertiesMessage.proto.\n */\nexport const file_PlayerClientPropertiesMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiNQbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZS5wcm90byJeCh1QbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIfCgpwbGF5ZXJQYXRoGAEgASgLMgsuUGxheWVyUGF0aBIcChRsYXN0UGxheWluZ1RpbWVzdGFtcBgCIAEoATp2Ch1wbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhWIAEoCzIeLlBsYXllckNsaWVudFByb3BlcnRpZXNNZXNzYWdlUh1wbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZQ\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message PlayerClientPropertiesMessage\n */\nexport type PlayerClientPropertiesMessage = Message<\"PlayerClientPropertiesMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional double lastPlayingTimestamp = 2;\n */\n lastPlayingTimestamp: number;\n};\n\n/**\n * Describes the message PlayerClientPropertiesMessage.\n * Use `create(PlayerClientPropertiesMessageSchema)` to create a new message.\n */\nexport const PlayerClientPropertiesMessageSchema: GenMessage<PlayerClientPropertiesMessage> = /*@__PURE__*/\n messageDesc(file_PlayerClientPropertiesMessage, 0);\n\n/**\n * @generated from extension: optional PlayerClientPropertiesMessage playerClientPropertiesMessage = 86;\n */\nexport const playerClientPropertiesMessage: GenExtension<ProtocolMessage, PlayerClientPropertiesMessage> = /*@__PURE__*/\n extDesc(file_PlayerClientPropertiesMessage, 0);\n\n",
42
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterForGameControllerEventsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterForGameControllerEventsMessage.proto.\n */\nexport const file_RegisterForGameControllerEventsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CixSZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZS5wcm90byK8AQomUmVnaXN0ZXJGb3JHYW1lQ29udHJvbGxlckV2ZW50c01lc3NhZ2USTgoOaW5wdXRNb2RlRmxhZ3MYASABKA4yNi5SZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZS5JbnB1dE1vZGVGbGFncyJCCg5JbnB1dE1vZGVGbGFncxIICgROb25lEAASCgoGTW90aW9uEAESCwoHQnV0dG9ucxACEg0KCURpZ2l0aXplchADOpEBCiZyZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgbIAEoCzInLlJlZ2lzdGVyRm9yR2FtZUNvbnRyb2xsZXJFdmVudHNNZXNzYWdlUiZyZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RegisterForGameControllerEventsMessage\n */\nexport type RegisterForGameControllerEventsMessage = Message<\"RegisterForGameControllerEventsMessage\"> & {\n /**\n * @generated from field: optional RegisterForGameControllerEventsMessage.InputModeFlags inputModeFlags = 1;\n */\n inputModeFlags: RegisterForGameControllerEventsMessage_InputModeFlags;\n};\n\n/**\n * Describes the message RegisterForGameControllerEventsMessage.\n * Use `create(RegisterForGameControllerEventsMessageSchema)` to create a new message.\n */\nexport const RegisterForGameControllerEventsMessageSchema: GenMessage<RegisterForGameControllerEventsMessage> = /*@__PURE__*/\n messageDesc(file_RegisterForGameControllerEventsMessage, 0);\n\n/**\n * @generated from enum RegisterForGameControllerEventsMessage.InputModeFlags\n */\nexport enum RegisterForGameControllerEventsMessage_InputModeFlags {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Motion = 1;\n */\n Motion = 1,\n\n /**\n * @generated from enum value: Buttons = 2;\n */\n Buttons = 2,\n\n /**\n * @generated from enum value: Digitizer = 3;\n */\n Digitizer = 3,\n}\n\n/**\n * Describes the enum RegisterForGameControllerEventsMessage.InputModeFlags.\n */\nexport const RegisterForGameControllerEventsMessage_InputModeFlagsSchema: GenEnum<RegisterForGameControllerEventsMessage_InputModeFlags> = /*@__PURE__*/\n enumDesc(file_RegisterForGameControllerEventsMessage, 0, 0);\n\n/**\n * @generated from extension: optional RegisterForGameControllerEventsMessage registerForGameControllerEventsMessage = 27;\n */\nexport const registerForGameControllerEventsMessage: GenExtension<ProtocolMessage, RegisterForGameControllerEventsMessage> = /*@__PURE__*/\n extDesc(file_RegisterForGameControllerEventsMessage, 0);\n\n",
43
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterHIDDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { VirtualTouchDeviceDescriptor } from \"./VirtualTouchDeviceDescriptorMessage_pb\";\nimport { file_VirtualTouchDeviceDescriptorMessage } from \"./VirtualTouchDeviceDescriptorMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterHIDDeviceMessage.proto.\n */\nexport const file_RegisterHIDDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5SZWdpc3RlckhJRERldmljZU1lc3NhZ2UucHJvdG8iUwoYUmVnaXN0ZXJISUREZXZpY2VNZXNzYWdlEjcKEGRldmljZURlc2NyaXB0b3IYASABKAsyHS5WaXJ0dWFsVG91Y2hEZXZpY2VEZXNjcmlwdG9yOmcKGHJlZ2lzdGVySElERGV2aWNlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgLIAEoCzIZLlJlZ2lzdGVySElERGV2aWNlTWVzc2FnZVIYcmVnaXN0ZXJISUREZXZpY2VNZXNzYWdl\", [file_ProtocolMessage, file_VirtualTouchDeviceDescriptorMessage]);\n\n/**\n * @generated from message RegisterHIDDeviceMessage\n */\nexport type RegisterHIDDeviceMessage = Message<\"RegisterHIDDeviceMessage\"> & {\n /**\n * @generated from field: optional VirtualTouchDeviceDescriptor deviceDescriptor = 1;\n */\n deviceDescriptor?: VirtualTouchDeviceDescriptor;\n};\n\n/**\n * Describes the message RegisterHIDDeviceMessage.\n * Use `create(RegisterHIDDeviceMessageSchema)` to create a new message.\n */\nexport const RegisterHIDDeviceMessageSchema: GenMessage<RegisterHIDDeviceMessage> = /*@__PURE__*/\n messageDesc(file_RegisterHIDDeviceMessage, 0);\n\n/**\n * @generated from extension: optional RegisterHIDDeviceMessage registerHIDDeviceMessage = 11;\n */\nexport const registerHIDDeviceMessage: GenExtension<ProtocolMessage, RegisterHIDDeviceMessage> = /*@__PURE__*/\n extDesc(file_RegisterHIDDeviceMessage, 0);\n\n",
44
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VirtualTouchDeviceDescriptorMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VirtualTouchDeviceDescriptorMessage.proto.\n */\nexport const file_VirtualTouchDeviceDescriptorMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CilWaXJ0dWFsVG91Y2hEZXZpY2VEZXNjcmlwdG9yTWVzc2FnZS5wcm90byJ+ChxWaXJ0dWFsVG91Y2hEZXZpY2VEZXNjcmlwdG9yEhAKCGFic29sdXRlGAEgASgIEhkKEWludGVncmF0ZWREaXNwbGF5GAIgASgIEhcKD3NjcmVlblNpemVXaWR0aBgDIAEoAhIYChBzY3JlZW5TaXplSGVpZ2h0GAQgASgC\");\n\n/**\n * @generated from message VirtualTouchDeviceDescriptor\n */\nexport type VirtualTouchDeviceDescriptor = Message<\"VirtualTouchDeviceDescriptor\"> & {\n /**\n * @generated from field: optional bool absolute = 1;\n */\n absolute: boolean;\n\n /**\n * @generated from field: optional bool integratedDisplay = 2;\n */\n integratedDisplay: boolean;\n\n /**\n * @generated from field: optional float screenSizeWidth = 3;\n */\n screenSizeWidth: number;\n\n /**\n * @generated from field: optional float screenSizeHeight = 4;\n */\n screenSizeHeight: number;\n};\n\n/**\n * Describes the message VirtualTouchDeviceDescriptor.\n * Use `create(VirtualTouchDeviceDescriptorSchema)` to create a new message.\n */\nexport const VirtualTouchDeviceDescriptorSchema: GenMessage<VirtualTouchDeviceDescriptor> = /*@__PURE__*/\n messageDesc(file_VirtualTouchDeviceDescriptorMessage, 0);\n\n",
45
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterHIDDeviceResultMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterHIDDeviceResultMessage.proto.\n */\nexport const file_RegisterHIDDeviceResultMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiRSZWdpc3RlckhJRERldmljZVJlc3VsdE1lc3NhZ2UucHJvdG8iTQoeUmVnaXN0ZXJISUREZXZpY2VSZXN1bHRNZXNzYWdlEhEKCWVycm9yQ29kZRgBIAEoBRIYChBkZXZpY2VJZGVudGlmaWVyGAIgASgFOnkKHnJlZ2lzdGVySElERGV2aWNlUmVzdWx0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgMIAEoCzIfLlJlZ2lzdGVySElERGV2aWNlUmVzdWx0TWVzc2FnZVIecmVnaXN0ZXJISUREZXZpY2VSZXN1bHRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RegisterHIDDeviceResultMessage\n */\nexport type RegisterHIDDeviceResultMessage = Message<\"RegisterHIDDeviceResultMessage\"> & {\n /**\n * @generated from field: optional int32 errorCode = 1;\n */\n errorCode: number;\n\n /**\n * @generated from field: optional int32 deviceIdentifier = 2;\n */\n deviceIdentifier: number;\n};\n\n/**\n * Describes the message RegisterHIDDeviceResultMessage.\n * Use `create(RegisterHIDDeviceResultMessageSchema)` to create a new message.\n */\nexport const RegisterHIDDeviceResultMessageSchema: GenMessage<RegisterHIDDeviceResultMessage> = /*@__PURE__*/\n messageDesc(file_RegisterHIDDeviceResultMessage, 0);\n\n/**\n * @generated from extension: optional RegisterHIDDeviceResultMessage registerHIDDeviceResultMessage = 12;\n */\nexport const registerHIDDeviceResultMessage: GenExtension<ProtocolMessage, RegisterHIDDeviceResultMessage> = /*@__PURE__*/\n extDesc(file_RegisterHIDDeviceResultMessage, 0);\n\n",
46
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterVoiceInputDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { VoiceInputDeviceDescriptor } from \"./VoiceInputDeviceDescriptorMessage_pb\";\nimport { file_VoiceInputDeviceDescriptorMessage } from \"./VoiceInputDeviceDescriptorMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterVoiceInputDeviceMessage.proto.\n */\nexport const file_RegisterVoiceInputDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiVSZWdpc3RlclZvaWNlSW5wdXREZXZpY2VNZXNzYWdlLnByb3RvIlgKH1JlZ2lzdGVyVm9pY2VJbnB1dERldmljZU1lc3NhZ2USNQoQZGV2aWNlRGVzY3JpcHRvchgBIAEoCzIbLlZvaWNlSW5wdXREZXZpY2VEZXNjcmlwdG9yOnwKH3JlZ2lzdGVyVm9pY2VJbnB1dERldmljZU1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYISABKAsyIC5SZWdpc3RlclZvaWNlSW5wdXREZXZpY2VNZXNzYWdlUh9yZWdpc3RlclZvaWNlSW5wdXREZXZpY2VNZXNzYWdl\", [file_ProtocolMessage, file_VoiceInputDeviceDescriptorMessage]);\n\n/**\n * @generated from message RegisterVoiceInputDeviceMessage\n */\nexport type RegisterVoiceInputDeviceMessage = Message<\"RegisterVoiceInputDeviceMessage\"> & {\n /**\n * @generated from field: optional VoiceInputDeviceDescriptor deviceDescriptor = 1;\n */\n deviceDescriptor?: VoiceInputDeviceDescriptor;\n};\n\n/**\n * Describes the message RegisterVoiceInputDeviceMessage.\n * Use `create(RegisterVoiceInputDeviceMessageSchema)` to create a new message.\n */\nexport const RegisterVoiceInputDeviceMessageSchema: GenMessage<RegisterVoiceInputDeviceMessage> = /*@__PURE__*/\n messageDesc(file_RegisterVoiceInputDeviceMessage, 0);\n\n/**\n * @generated from extension: optional RegisterVoiceInputDeviceMessage registerVoiceInputDeviceMessage = 33;\n */\nexport const registerVoiceInputDeviceMessage: GenExtension<ProtocolMessage, RegisterVoiceInputDeviceMessage> = /*@__PURE__*/\n extDesc(file_RegisterVoiceInputDeviceMessage, 0);\n\n",
47
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VoiceInputDeviceDescriptorMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { AudioFormatSettings } from \"./AudioFormatSettingsMessage_pb\";\nimport { file_AudioFormatSettingsMessage } from \"./AudioFormatSettingsMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VoiceInputDeviceDescriptorMessage.proto.\n */\nexport const file_VoiceInputDeviceDescriptorMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CidWb2ljZUlucHV0RGV2aWNlRGVzY3JpcHRvck1lc3NhZ2UucHJvdG8ieQoaVm9pY2VJbnB1dERldmljZURlc2NyaXB0b3ISKwoNZGVmYXVsdEZvcm1hdBgBIAEoCzIULkF1ZGlvRm9ybWF0U2V0dGluZ3MSLgoQc3VwcG9ydGVkRm9ybWF0cxgCIAMoCzIULkF1ZGlvRm9ybWF0U2V0dGluZ3M\", [file_AudioFormatSettingsMessage]);\n\n/**\n * @generated from message VoiceInputDeviceDescriptor\n */\nexport type VoiceInputDeviceDescriptor = Message<\"VoiceInputDeviceDescriptor\"> & {\n /**\n * @generated from field: optional AudioFormatSettings defaultFormat = 1;\n */\n defaultFormat?: AudioFormatSettings;\n\n /**\n * @generated from field: repeated AudioFormatSettings supportedFormats = 2;\n */\n supportedFormats: AudioFormatSettings[];\n};\n\n/**\n * Describes the message VoiceInputDeviceDescriptor.\n * Use `create(VoiceInputDeviceDescriptorSchema)` to create a new message.\n */\nexport const VoiceInputDeviceDescriptorSchema: GenMessage<VoiceInputDeviceDescriptor> = /*@__PURE__*/\n messageDesc(file_VoiceInputDeviceDescriptorMessage, 0);\n\n",
48
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterVoiceInputDeviceResponseMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterVoiceInputDeviceResponseMessage.proto.\n */\nexport const file_RegisterVoiceInputDeviceResponseMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ci1SZWdpc3RlclZvaWNlSW5wdXREZXZpY2VSZXNwb25zZU1lc3NhZ2UucHJvdG8iTgonUmVnaXN0ZXJWb2ljZUlucHV0RGV2aWNlUmVzcG9uc2VNZXNzYWdlEhAKCGRldmljZUlEGAEgASgFEhEKCWVycm9yQ29kZRgCIAEoBTqUAQoncmVnaXN0ZXJWb2ljZUlucHV0RGV2aWNlUmVzcG9uc2VNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCIgASgLMiguUmVnaXN0ZXJWb2ljZUlucHV0RGV2aWNlUmVzcG9uc2VNZXNzYWdlUidyZWdpc3RlclZvaWNlSW5wdXREZXZpY2VSZXNwb25zZU1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RegisterVoiceInputDeviceResponseMessage\n */\nexport type RegisterVoiceInputDeviceResponseMessage = Message<\"RegisterVoiceInputDeviceResponseMessage\"> & {\n /**\n * @generated from field: optional int32 deviceID = 1;\n */\n deviceID: number;\n\n /**\n * @generated from field: optional int32 errorCode = 2;\n */\n errorCode: number;\n};\n\n/**\n * Describes the message RegisterVoiceInputDeviceResponseMessage.\n * Use `create(RegisterVoiceInputDeviceResponseMessageSchema)` to create a new message.\n */\nexport const RegisterVoiceInputDeviceResponseMessageSchema: GenMessage<RegisterVoiceInputDeviceResponseMessage> = /*@__PURE__*/\n messageDesc(file_RegisterVoiceInputDeviceResponseMessage, 0);\n\n/**\n * @generated from extension: optional RegisterVoiceInputDeviceResponseMessage registerVoiceInputDeviceResponseMessage = 34;\n */\nexport const registerVoiceInputDeviceResponseMessage: GenExtension<ProtocolMessage, RegisterVoiceInputDeviceResponseMessage> = /*@__PURE__*/\n extDesc(file_RegisterVoiceInputDeviceResponseMessage, 0);\n\n",
49
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoteTextInputMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoteTextInputMessage.proto.\n */\nexport const file_RemoteTextInputMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxSZW1vdGVUZXh0SW5wdXRNZXNzYWdlLnByb3RvIkoKFlJlbW90ZVRleHRJbnB1dE1lc3NhZ2USEQoJdGltZXN0YW1wGAEgASgBEg8KB3ZlcnNpb24YAiABKAQSDAoEZGF0YRgDIAEoDDphChZyZW1vdGVUZXh0SW5wdXRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGEcgASgLMhcuUmVtb3RlVGV4dElucHV0TWVzc2FnZVIWcmVtb3RlVGV4dElucHV0TWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RemoteTextInputMessage\n */\nexport type RemoteTextInputMessage = Message<\"RemoteTextInputMessage\"> & {\n /**\n * @generated from field: optional double timestamp = 1;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional uint64 version = 2;\n */\n version: bigint;\n\n /**\n * @generated from field: optional bytes data = 3;\n */\n data: Uint8Array;\n};\n\n/**\n * Describes the message RemoteTextInputMessage.\n * Use `create(RemoteTextInputMessageSchema)` to create a new message.\n */\nexport const RemoteTextInputMessageSchema: GenMessage<RemoteTextInputMessage> = /*@__PURE__*/\n messageDesc(file_RemoteTextInputMessage, 0);\n\n/**\n * @generated from extension: optional RemoteTextInputMessage remoteTextInputMessage = 71;\n */\nexport const remoteTextInputMessage: GenExtension<ProtocolMessage, RemoteTextInputMessage> = /*@__PURE__*/\n extDesc(file_RemoteTextInputMessage, 0);\n\n",
50
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoveClientMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoveClientMessage.proto.\n */\nexport const file_RemoveClientMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlSZW1vdmVDbGllbnRNZXNzYWdlLnByb3RvIjgKE1JlbW92ZUNsaWVudE1lc3NhZ2USIQoGY2xpZW50GAEgASgLMhEuTm93UGxheWluZ0NsaWVudDpYChNyZW1vdmVDbGllbnRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDkgASgLMhQuUmVtb3ZlQ2xpZW50TWVzc2FnZVITcmVtb3ZlQ2xpZW50TWVzc2FnZQ\", [file_ProtocolMessage, file_NowPlayingClient]);\n\n/**\n * @generated from message RemoveClientMessage\n */\nexport type RemoveClientMessage = Message<\"RemoveClientMessage\"> & {\n /**\n * @generated from field: optional NowPlayingClient client = 1;\n */\n client?: NowPlayingClient;\n};\n\n/**\n * Describes the message RemoveClientMessage.\n * Use `create(RemoveClientMessageSchema)` to create a new message.\n */\nexport const RemoveClientMessageSchema: GenMessage<RemoveClientMessage> = /*@__PURE__*/\n messageDesc(file_RemoveClientMessage, 0);\n\n/**\n * @generated from extension: optional RemoveClientMessage removeClientMessage = 57;\n */\nexport const removeClientMessage: GenExtension<ProtocolMessage, RemoveClientMessage> = /*@__PURE__*/\n extDesc(file_RemoveClientMessage, 0);\n\n",
51
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoveEndpointsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoveEndpointsMessage.proto.\n */\nexport const file_RemoveEndpointsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxSZW1vdmVFbmRwb2ludHNNZXNzYWdlLnByb3RvIi4KFlJlbW92ZUVuZHBvaW50c01lc3NhZ2USFAoMZW5kcG9pbnRVSURzGAEgAygJOmEKFnJlbW92ZUVuZHBvaW50c01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYVCABKAsyFy5SZW1vdmVFbmRwb2ludHNNZXNzYWdlUhZyZW1vdmVFbmRwb2ludHNNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RemoveEndpointsMessage\n */\nexport type RemoveEndpointsMessage = Message<\"RemoveEndpointsMessage\"> & {\n /**\n * @generated from field: repeated string endpointUIDs = 1;\n */\n endpointUIDs: string[];\n};\n\n/**\n * Describes the message RemoveEndpointsMessage.\n * Use `create(RemoveEndpointsMessageSchema)` to create a new message.\n */\nexport const RemoveEndpointsMessageSchema: GenMessage<RemoveEndpointsMessage> = /*@__PURE__*/\n messageDesc(file_RemoveEndpointsMessage, 0);\n\n/**\n * @generated from extension: optional RemoveEndpointsMessage removeEndpointsMessage = 84;\n */\nexport const removeEndpointsMessage: GenExtension<ProtocolMessage, RemoveEndpointsMessage> = /*@__PURE__*/\n extDesc(file_RemoveEndpointsMessage, 0);\n\n",
52
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoveOutputDevicesMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoveOutputDevicesMessage.proto.\n */\nexport const file_RemoveOutputDevicesMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBSZW1vdmVPdXRwdXREZXZpY2VzTWVzc2FnZS5wcm90byJLChpSZW1vdmVPdXRwdXREZXZpY2VzTWVzc2FnZRIYChBvdXRwdXREZXZpY2VVSURzGAEgAygJEhMKC2VuZHBvaW50VUlEGAIgASgJOm0KGnJlbW92ZU91dHB1dERldmljZXNNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGEYgASgLMhsuUmVtb3ZlT3V0cHV0RGV2aWNlc01lc3NhZ2VSGnJlbW92ZU91dHB1dERldmljZXNNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RemoveOutputDevicesMessage\n */\nexport type RemoveOutputDevicesMessage = Message<\"RemoveOutputDevicesMessage\"> & {\n /**\n * @generated from field: repeated string outputDeviceUIDs = 1;\n */\n outputDeviceUIDs: string[];\n\n /**\n * @generated from field: optional string endpointUID = 2;\n */\n endpointUID: string;\n};\n\n/**\n * Describes the message RemoveOutputDevicesMessage.\n * Use `create(RemoveOutputDevicesMessageSchema)` to create a new message.\n */\nexport const RemoveOutputDevicesMessageSchema: GenMessage<RemoveOutputDevicesMessage> = /*@__PURE__*/\n messageDesc(file_RemoveOutputDevicesMessage, 0);\n\n/**\n * @generated from extension: optional RemoveOutputDevicesMessage removeOutputDevicesMessage = 70;\n */\nexport const removeOutputDevicesMessage: GenExtension<ProtocolMessage, RemoveOutputDevicesMessage> = /*@__PURE__*/\n extDesc(file_RemoveOutputDevicesMessage, 0);\n\n",
53
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemovePlayerMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemovePlayerMessage.proto.\n */\nexport const file_RemovePlayerMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlSZW1vdmVQbGF5ZXJNZXNzYWdlLnByb3RvIjYKE1JlbW92ZVBsYXllck1lc3NhZ2USHwoKcGxheWVyUGF0aBgBIAEoCzILLlBsYXllclBhdGg6WAoTcmVtb3ZlUGxheWVyTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg6IAEoCzIULlJlbW92ZVBsYXllck1lc3NhZ2VSE3JlbW92ZVBsYXllck1lc3NhZ2U\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message RemovePlayerMessage\n */\nexport type RemovePlayerMessage = Message<\"RemovePlayerMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message RemovePlayerMessage.\n * Use `create(RemovePlayerMessageSchema)` to create a new message.\n */\nexport const RemovePlayerMessageSchema: GenMessage<RemovePlayerMessage> = /*@__PURE__*/\n messageDesc(file_RemovePlayerMessage, 0);\n\n/**\n * @generated from extension: optional RemovePlayerMessage removePlayerMessage = 58;\n */\nexport const removePlayerMessage: GenExtension<ProtocolMessage, RemovePlayerMessage> = /*@__PURE__*/\n extDesc(file_RemovePlayerMessage, 0);\n\n",
54
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendButtonEventMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendButtonEventMessage.proto.\n */\nexport const file_SendButtonEventMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxTZW5kQnV0dG9uRXZlbnRNZXNzYWdlLnByb3RvIk4KFlNlbmRCdXR0b25FdmVudE1lc3NhZ2USEQoJdXNhZ2VQYWdlGAEgASgNEg0KBXVzYWdlGAIgASgNEhIKCmJ1dHRvbkRvd24YAyABKAg6YQoWc2VuZEJ1dHRvbkV2ZW50TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgrIAEoCzIXLlNlbmRCdXR0b25FdmVudE1lc3NhZ2VSFnNlbmRCdXR0b25FdmVudE1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SendButtonEventMessage\n */\nexport type SendButtonEventMessage = Message<\"SendButtonEventMessage\"> & {\n /**\n * @generated from field: optional uint32 usagePage = 1;\n */\n usagePage: number;\n\n /**\n * @generated from field: optional uint32 usage = 2;\n */\n usage: number;\n\n /**\n * @generated from field: optional bool buttonDown = 3;\n */\n buttonDown: boolean;\n};\n\n/**\n * Describes the message SendButtonEventMessage.\n * Use `create(SendButtonEventMessageSchema)` to create a new message.\n */\nexport const SendButtonEventMessageSchema: GenMessage<SendButtonEventMessage> = /*@__PURE__*/\n messageDesc(file_SendButtonEventMessage, 0);\n\n/**\n * @generated from extension: optional SendButtonEventMessage sendButtonEventMessage = 43;\n */\nexport const sendButtonEventMessage: GenExtension<ProtocolMessage, SendButtonEventMessage> = /*@__PURE__*/\n extDesc(file_SendButtonEventMessage, 0);\n\n",
55
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendCommandMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Command } from \"./CommandInfo_pb\";\nimport { file_CommandInfo } from \"./CommandInfo_pb\";\nimport type { CommandOptions } from \"./CommandOptions_pb\";\nimport { file_CommandOptions } from \"./CommandOptions_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendCommandMessage.proto.\n */\nexport const file_SendCommandMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChhTZW5kQ29tbWFuZE1lc3NhZ2UucHJvdG8icgoSU2VuZENvbW1hbmRNZXNzYWdlEhkKB2NvbW1hbmQYASABKA4yCC5Db21tYW5kEiAKB29wdGlvbnMYAiABKAsyDy5Db21tYW5kT3B0aW9ucxIfCgpwbGF5ZXJQYXRoGAMgASgLMgsuUGxheWVyUGF0aDpVChJzZW5kQ29tbWFuZE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYBiABKAsyEy5TZW5kQ29tbWFuZE1lc3NhZ2VSEnNlbmRDb21tYW5kTWVzc2FnZQ\", [file_ProtocolMessage, file_CommandInfo, file_CommandOptions, file_PlayerPath]);\n\n/**\n * @generated from message SendCommandMessage\n */\nexport type SendCommandMessage = Message<\"SendCommandMessage\"> & {\n /**\n * @generated from field: optional Command command = 1;\n */\n command: Command;\n\n /**\n * @generated from field: optional CommandOptions options = 2;\n */\n options?: CommandOptions;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 3;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message SendCommandMessage.\n * Use `create(SendCommandMessageSchema)` to create a new message.\n */\nexport const SendCommandMessageSchema: GenMessage<SendCommandMessage> = /*@__PURE__*/\n messageDesc(file_SendCommandMessage, 0);\n\n/**\n * @generated from extension: optional SendCommandMessage sendCommandMessage = 6;\n */\nexport const sendCommandMessage: GenExtension<ProtocolMessage, SendCommandMessage> = /*@__PURE__*/\n extDesc(file_SendCommandMessage, 0);\n\n",
56
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendCommandResultMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendCommandResultMessage.proto.\n */\nexport const file_SendCommandResultMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5TZW5kQ29tbWFuZFJlc3VsdE1lc3NhZ2UucHJvdG8i/AEKCVNlbmRFcnJvciLuAQoERW51bRILCgdOb0Vycm9yEAASFwoTQXBwbGljYXRpb25Ob3RGb3VuZBABEhQKEENvbm5lY3Rpb25GYWlsZWQQAhILCgdJZ25vcmVkEAMSHQoZQ291bGROb3RMYXVuY2hBcHBsaWNhdGlvbhAEEgwKCFRpbWVkT3V0EAUSFgoST3JpZ2luRG9lc05vdEV4aXN0EAYSEgoOSW52YWxpZE9wdGlvbnMQBxIVChFOb0NvbW1hbmRIYW5kbGVycxAIEhsKF0FwcGxpY2F0aW9uTm90SW5zdGFsbGVkEAkSEAoMTm90U3VwcG9ydGVkEAoi8wMKE0hhbmRsZXJSZXR1cm5TdGF0dXMi2wMKBEVudW0SCwoHU3VjY2VzcxAAEhEKDU5vU3VjaENvbnRlbnQQARIRCg1Db21tYW5kRmFpbGVkEAISHgoaTm9BY3Rpb25hYmxlTm93UGxheWluZ0l0ZW0QChISCg5EZXZpY2VOb3RGb3VuZBAUEg8KC1VJS2l0TGVnYWN5EAMSFAoQU2tpcEFkUHJvaGliaXRlZBBkEhYKElF1ZXVlSXNVc2VyQ3VyYXRlZBBlEh0KGVVzZXJNb2RpZmllZFF1ZXVlRGlzYWJsZWQQZhIzCi9Vc2VyUXVldWVNb2RpZmljYXRpb25Ob3RTdXBwb3J0ZWRGb3JDdXJyZW50SXRlbRBnEiYKIlN1YnNjcmlwdGlvblJlcXVpcmVkRm9yU2hhcmVkUXVldWUQaBIhCh1JbnNlcnRpb25Qb3NpdGlvbk5vdFNwZWNpZmllZBBpEhwKGEludmFsaWRJbnNlcnRpb25Qb3NpdGlvbhBqEiAKHFJlcXVlc3RQYXJhbWV0ZXJzT3V0T2ZCb3VuZHMQaxIUChBTa2lwTGltaXRSZWFjaGVkEGwSGgoVQXV0aGVudGljYXRpb25GYWlsdXJlEJEDEhwKF01lZGlhU2VydmljZVVuYXZhaWxhYmxlEPUDIvUDChVTZW5kQ29tbWFuZFN0YXR1c0NvZGUi2wMKBEVudW0SCwoHU3VjY2VzcxAAEhEKDU5vU3VjaENvbnRlbnQQARIRCg1Db21tYW5kRmFpbGVkEAISHgoaTm9BY3Rpb25hYmxlTm93UGxheWluZ0l0ZW0QChISCg5EZXZpY2VOb3RGb3VuZBAUEg8KC1VJS2l0TGVnYWN5EAMSFAoQU2tpcEFkUHJvaGliaXRlZBBkEhYKElF1ZXVlSXNVc2VyQ3VyYXRlZBBlEh0KGVVzZXJNb2RpZmllZFF1ZXVlRGlzYWJsZWQQZhIzCi9Vc2VyUXVldWVNb2RpZmljYXRpb25Ob3RTdXBwb3J0ZWRGb3JDdXJyZW50SXRlbRBnEiYKIlN1YnNjcmlwdGlvblJlcXVpcmVkRm9yU2hhcmVkUXVldWUQaBIhCh1JbnNlcnRpb25Qb3NpdGlvbk5vdFNwZWNpZmllZBBpEhwKGEludmFsaWRJbnNlcnRpb25Qb3NpdGlvbhBqEiAKHFJlcXVlc3RQYXJhbWV0ZXJzT3V0T2ZCb3VuZHMQaxIUChBTa2lwTGltaXRSZWFjaGVkEGwSGgoVQXV0aGVudGljYXRpb25GYWlsdXJlEJEDEhwKF01lZGlhU2VydmljZVVuYXZhaWxhYmxlEPUDIkMKFVNlbmRDb21tYW5kUmVzdWx0VHlwZSIqCgRFbnVtEgoKBkRpYWxvZxABEgkKBUVycm9yEAISCwoGQ3VzdG9tEOcHIqEBChdTZW5kQ29tbWFuZFJlc3VsdFN0YXR1cxIvCgpzdGF0dXNDb2RlGAEgASgOMhsuU2VuZENvbW1hbmRTdGF0dXNDb2RlLkVudW0SKQoEdHlwZRgCIAEoDjIbLlNlbmRDb21tYW5kUmVzdWx0VHlwZS5FbnVtEhIKCmN1c3RvbURhdGEYBSABKAwSFgoOY3VzdG9tRGF0YVR5cGUYBiABKAkihAEKEVNlbmRDb21tYW5kUmVzdWx0Eh8KCnBsYXllclBhdGgYASABKAsyCy5QbGF5ZXJQYXRoEiIKCXNlbmRFcnJvchgCIAEoDjIPLlNlbmRFcnJvci5FbnVtEioKCHN0YXR1c2VzGAMgAygLMhguU2VuZENvbW1hbmRSZXN1bHRTdGF0dXMi9wEKGFNlbmRDb21tYW5kUmVzdWx0TWVzc2FnZRIiCglzZW5kRXJyb3IYASABKA4yDy5TZW5kRXJyb3IuRW51bRI2ChNoYW5kbGVyUmV0dXJuU3RhdHVzGAIgASgOMhkuSGFuZGxlclJldHVyblN0YXR1cy5FbnVtEiAKGGhhbmRsZXJSZXR1cm5TdGF0dXNEYXRhcxgDIAMoDBIRCgljb21tYW5kSUQYBCABKAkSHwoKcGxheWVyUGF0aBgFIAEoCzILLlBsYXllclBhdGgSKQoNY29tbWFuZFJlc3VsdBgGIAEoCzISLlNlbmRDb21tYW5kUmVzdWx0OmcKGHNlbmRDb21tYW5kUmVzdWx0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgHIAEoCzIZLlNlbmRDb21tYW5kUmVzdWx0TWVzc2FnZVIYc2VuZENvbW1hbmRSZXN1bHRNZXNzYWdl\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message SendError\n */\nexport type SendError = Message<\"SendError\"> & {\n};\n\n/**\n * Describes the message SendError.\n * Use `create(SendErrorSchema)` to create a new message.\n */\nexport const SendErrorSchema: GenMessage<SendError> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 0);\n\n/**\n * @generated from enum SendError.Enum\n */\nexport enum SendError_Enum {\n /**\n * This is None in original message definitions (no-go with python)\n *\n * @generated from enum value: NoError = 0;\n */\n NoError = 0,\n\n /**\n * @generated from enum value: ApplicationNotFound = 1;\n */\n ApplicationNotFound = 1,\n\n /**\n * @generated from enum value: ConnectionFailed = 2;\n */\n ConnectionFailed = 2,\n\n /**\n * @generated from enum value: Ignored = 3;\n */\n Ignored = 3,\n\n /**\n * @generated from enum value: CouldNotLaunchApplication = 4;\n */\n CouldNotLaunchApplication = 4,\n\n /**\n * @generated from enum value: TimedOut = 5;\n */\n TimedOut = 5,\n\n /**\n * @generated from enum value: OriginDoesNotExist = 6;\n */\n OriginDoesNotExist = 6,\n\n /**\n * @generated from enum value: InvalidOptions = 7;\n */\n InvalidOptions = 7,\n\n /**\n * @generated from enum value: NoCommandHandlers = 8;\n */\n NoCommandHandlers = 8,\n\n /**\n * @generated from enum value: ApplicationNotInstalled = 9;\n */\n ApplicationNotInstalled = 9,\n\n /**\n * @generated from enum value: NotSupported = 10;\n */\n NotSupported = 10,\n}\n\n/**\n * Describes the enum SendError.Enum.\n */\nexport const SendError_EnumSchema: GenEnum<SendError_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 0, 0);\n\n/**\n * @generated from message HandlerReturnStatus\n */\nexport type HandlerReturnStatus = Message<\"HandlerReturnStatus\"> & {\n};\n\n/**\n * Describes the message HandlerReturnStatus.\n * Use `create(HandlerReturnStatusSchema)` to create a new message.\n */\nexport const HandlerReturnStatusSchema: GenMessage<HandlerReturnStatus> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 1);\n\n/**\n * @generated from enum HandlerReturnStatus.Enum\n */\nexport enum HandlerReturnStatus_Enum {\n /**\n * @generated from enum value: Success = 0;\n */\n Success = 0,\n\n /**\n * @generated from enum value: NoSuchContent = 1;\n */\n NoSuchContent = 1,\n\n /**\n * @generated from enum value: CommandFailed = 2;\n */\n CommandFailed = 2,\n\n /**\n * @generated from enum value: NoActionableNowPlayingItem = 10;\n */\n NoActionableNowPlayingItem = 10,\n\n /**\n * @generated from enum value: DeviceNotFound = 20;\n */\n DeviceNotFound = 20,\n\n /**\n * @generated from enum value: UIKitLegacy = 3;\n */\n UIKitLegacy = 3,\n\n /**\n * @generated from enum value: SkipAdProhibited = 100;\n */\n SkipAdProhibited = 100,\n\n /**\n * @generated from enum value: QueueIsUserCurated = 101;\n */\n QueueIsUserCurated = 101,\n\n /**\n * @generated from enum value: UserModifiedQueueDisabled = 102;\n */\n UserModifiedQueueDisabled = 102,\n\n /**\n * @generated from enum value: UserQueueModificationNotSupportedForCurrentItem = 103;\n */\n UserQueueModificationNotSupportedForCurrentItem = 103,\n\n /**\n * @generated from enum value: SubscriptionRequiredForSharedQueue = 104;\n */\n SubscriptionRequiredForSharedQueue = 104,\n\n /**\n * @generated from enum value: InsertionPositionNotSpecified = 105;\n */\n InsertionPositionNotSpecified = 105,\n\n /**\n * @generated from enum value: InvalidInsertionPosition = 106;\n */\n InvalidInsertionPosition = 106,\n\n /**\n * @generated from enum value: RequestParametersOutOfBounds = 107;\n */\n RequestParametersOutOfBounds = 107,\n\n /**\n * @generated from enum value: SkipLimitReached = 108;\n */\n SkipLimitReached = 108,\n\n /**\n * @generated from enum value: AuthenticationFailure = 401;\n */\n AuthenticationFailure = 401,\n\n /**\n * @generated from enum value: MediaServiceUnavailable = 501;\n */\n MediaServiceUnavailable = 501,\n}\n\n/**\n * Describes the enum HandlerReturnStatus.Enum.\n */\nexport const HandlerReturnStatus_EnumSchema: GenEnum<HandlerReturnStatus_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 1, 0);\n\n/**\n * @generated from message SendCommandStatusCode\n */\nexport type SendCommandStatusCode = Message<\"SendCommandStatusCode\"> & {\n};\n\n/**\n * Describes the message SendCommandStatusCode.\n * Use `create(SendCommandStatusCodeSchema)` to create a new message.\n */\nexport const SendCommandStatusCodeSchema: GenMessage<SendCommandStatusCode> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 2);\n\n/**\n * @generated from enum SendCommandStatusCode.Enum\n */\nexport enum SendCommandStatusCode_Enum {\n /**\n * @generated from enum value: Success = 0;\n */\n Success = 0,\n\n /**\n * @generated from enum value: NoSuchContent = 1;\n */\n NoSuchContent = 1,\n\n /**\n * @generated from enum value: CommandFailed = 2;\n */\n CommandFailed = 2,\n\n /**\n * @generated from enum value: NoActionableNowPlayingItem = 10;\n */\n NoActionableNowPlayingItem = 10,\n\n /**\n * @generated from enum value: DeviceNotFound = 20;\n */\n DeviceNotFound = 20,\n\n /**\n * @generated from enum value: UIKitLegacy = 3;\n */\n UIKitLegacy = 3,\n\n /**\n * @generated from enum value: SkipAdProhibited = 100;\n */\n SkipAdProhibited = 100,\n\n /**\n * @generated from enum value: QueueIsUserCurated = 101;\n */\n QueueIsUserCurated = 101,\n\n /**\n * @generated from enum value: UserModifiedQueueDisabled = 102;\n */\n UserModifiedQueueDisabled = 102,\n\n /**\n * @generated from enum value: UserQueueModificationNotSupportedForCurrentItem = 103;\n */\n UserQueueModificationNotSupportedForCurrentItem = 103,\n\n /**\n * @generated from enum value: SubscriptionRequiredForSharedQueue = 104;\n */\n SubscriptionRequiredForSharedQueue = 104,\n\n /**\n * @generated from enum value: InsertionPositionNotSpecified = 105;\n */\n InsertionPositionNotSpecified = 105,\n\n /**\n * @generated from enum value: InvalidInsertionPosition = 106;\n */\n InvalidInsertionPosition = 106,\n\n /**\n * @generated from enum value: RequestParametersOutOfBounds = 107;\n */\n RequestParametersOutOfBounds = 107,\n\n /**\n * @generated from enum value: SkipLimitReached = 108;\n */\n SkipLimitReached = 108,\n\n /**\n * @generated from enum value: AuthenticationFailure = 401;\n */\n AuthenticationFailure = 401,\n\n /**\n * @generated from enum value: MediaServiceUnavailable = 501;\n */\n MediaServiceUnavailable = 501,\n}\n\n/**\n * Describes the enum SendCommandStatusCode.Enum.\n */\nexport const SendCommandStatusCode_EnumSchema: GenEnum<SendCommandStatusCode_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 2, 0);\n\n/**\n * @generated from message SendCommandResultType\n */\nexport type SendCommandResultType = Message<\"SendCommandResultType\"> & {\n};\n\n/**\n * Describes the message SendCommandResultType.\n * Use `create(SendCommandResultTypeSchema)` to create a new message.\n */\nexport const SendCommandResultTypeSchema: GenMessage<SendCommandResultType> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 3);\n\n/**\n * @generated from enum SendCommandResultType.Enum\n */\nexport enum SendCommandResultType_Enum {\n /**\n * @generated from enum value: Dialog = 1;\n */\n Dialog = 1,\n\n /**\n * @generated from enum value: Error = 2;\n */\n Error = 2,\n\n /**\n * @generated from enum value: Custom = 999;\n */\n Custom = 999,\n}\n\n/**\n * Describes the enum SendCommandResultType.Enum.\n */\nexport const SendCommandResultType_EnumSchema: GenEnum<SendCommandResultType_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 3, 0);\n\n/**\n * @generated from message SendCommandResultStatus\n */\nexport type SendCommandResultStatus = Message<\"SendCommandResultStatus\"> & {\n /**\n * @generated from field: optional SendCommandStatusCode.Enum statusCode = 1;\n */\n statusCode: SendCommandStatusCode_Enum;\n\n /**\n * @generated from field: optional SendCommandResultType.Enum type = 2;\n */\n type: SendCommandResultType_Enum;\n\n /**\n * optional ... dialog = 3;\n * optional ... error = 4;\n *\n * @generated from field: optional bytes customData = 5;\n */\n customData: Uint8Array;\n\n /**\n * @generated from field: optional string customDataType = 6;\n */\n customDataType: string;\n};\n\n/**\n * Describes the message SendCommandResultStatus.\n * Use `create(SendCommandResultStatusSchema)` to create a new message.\n */\nexport const SendCommandResultStatusSchema: GenMessage<SendCommandResultStatus> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 4);\n\n/**\n * @generated from message SendCommandResult\n */\nexport type SendCommandResult = Message<\"SendCommandResult\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional SendError.Enum sendError = 2;\n */\n sendError: SendError_Enum;\n\n /**\n * @generated from field: repeated SendCommandResultStatus statuses = 3;\n */\n statuses: SendCommandResultStatus[];\n};\n\n/**\n * Describes the message SendCommandResult.\n * Use `create(SendCommandResultSchema)` to create a new message.\n */\nexport const SendCommandResultSchema: GenMessage<SendCommandResult> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 5);\n\n/**\n * @generated from message SendCommandResultMessage\n */\nexport type SendCommandResultMessage = Message<\"SendCommandResultMessage\"> & {\n /**\n * @generated from field: optional SendError.Enum sendError = 1;\n */\n sendError: SendError_Enum;\n\n /**\n * @generated from field: optional HandlerReturnStatus.Enum handlerReturnStatus = 2;\n */\n handlerReturnStatus: HandlerReturnStatus_Enum;\n\n /**\n * @generated from field: repeated bytes handlerReturnStatusDatas = 3;\n */\n handlerReturnStatusDatas: Uint8Array[];\n\n /**\n * @generated from field: optional string commandID = 4;\n */\n commandID: string;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 5;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional SendCommandResult commandResult = 6;\n */\n commandResult?: SendCommandResult;\n};\n\n/**\n * Describes the message SendCommandResultMessage.\n * Use `create(SendCommandResultMessageSchema)` to create a new message.\n */\nexport const SendCommandResultMessageSchema: GenMessage<SendCommandResultMessage> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 6);\n\n/**\n * @generated from extension: optional SendCommandResultMessage sendCommandResultMessage = 7;\n */\nexport const sendCommandResultMessage: GenExtension<ProtocolMessage, SendCommandResultMessage> = /*@__PURE__*/\n extDesc(file_SendCommandResultMessage, 0);\n\n",
57
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendHIDEventMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendHIDEventMessage.proto.\n */\nexport const file_SendHIDEventMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlTZW5kSElERXZlbnRNZXNzYWdlLnByb3RvIisKE1NlbmRISURFdmVudE1lc3NhZ2USFAoMaGlkRXZlbnREYXRhGAEgASgMOlgKE3NlbmRISURFdmVudE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYDSABKAsyFC5TZW5kSElERXZlbnRNZXNzYWdlUhNzZW5kSElERXZlbnRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SendHIDEventMessage\n */\nexport type SendHIDEventMessage = Message<\"SendHIDEventMessage\"> & {\n /**\n * This data corresponds to a \"keyboardEvent\" in IOHIDEvent.h encoded as raw\n * data. Here is one source:\n *\n * https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-308/IOHIDFamily/IOHIDEvent.h.auto.html\n *\n * The interesting parts are:\n * - usagePage (UInt32)\n * - usage (Uint32)\n * - down (bool)\n *\n * The parameters usagePage and usage corresponds to the key being pressed.\n * It is mapped to the USB HID values, which can be found here:\n *\n * https://github.com/Daij-Djan/DDHidLib/blob/master/usb_hid_usages.txt\n *\n * Pressing left key would for instance map to usagePage=0x01, usage=0x8B. In\n * the hid data, these values are stored as big endian uint16 values in the\n * mentioned order. So the same example would be: 0x0001008B0001, assuming\n * down = true (key being pressed). For each key press, the same usagePage\n * and usage are sent with down=true and down=false (key down + key up).\n *\n * There is a bit of magic in the raw data that's just not decoded yet, but\n * that doesn't matter. Just use this and it will work:\n *\n * 438922cf080200000000000000000000010000000000000002000000200000000300000001000000000000<data>0000000000000001000000\n *\n * <data> corresponds to the values above, e.g. 0001008B0001. The first 8\n * bytes is a timestamp (mach AbsoluteTime). It's a bit tricky to derive but\n * tvOS seems to accept old timestamps here. So it's probably fine to send\n * anything.\n *\n * @generated from field: optional bytes hidEventData = 1;\n */\n hidEventData: Uint8Array;\n};\n\n/**\n * Describes the message SendHIDEventMessage.\n * Use `create(SendHIDEventMessageSchema)` to create a new message.\n */\nexport const SendHIDEventMessageSchema: GenMessage<SendHIDEventMessage> = /*@__PURE__*/\n messageDesc(file_SendHIDEventMessage, 0);\n\n/**\n * @generated from extension: optional SendHIDEventMessage sendHIDEventMessage = 13;\n */\nexport const sendHIDEventMessage: GenExtension<ProtocolMessage, SendHIDEventMessage> = /*@__PURE__*/\n extDesc(file_SendHIDEventMessage, 0);\n\n",
58
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendPackedVirtualTouchEventMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendPackedVirtualTouchEventMessage.proto.\n */\nexport const file_SendPackedVirtualTouchEventMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CihTZW5kUGFja2VkVmlydHVhbFRvdWNoRXZlbnRNZXNzYWdlLnByb3RvInsKIlNlbmRQYWNrZWRWaXJ0dWFsVG91Y2hFdmVudE1lc3NhZ2USDAoEZGF0YRgBIAEoDCJHCgVQaGFzZRIJCgVCZWdhbhABEgkKBU1vdmVkEAISDgoKU3RhdGlvbmFyeRADEgkKBUVuZGVkEAQSDQoJQ2FuY2VsbGVkEAU6hQEKInNlbmRQYWNrZWRWaXJ0dWFsVG91Y2hFdmVudE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYLyABKAsyIy5TZW5kUGFja2VkVmlydHVhbFRvdWNoRXZlbnRNZXNzYWdlUiJzZW5kUGFja2VkVmlydHVhbFRvdWNoRXZlbnRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SendPackedVirtualTouchEventMessage\n */\nexport type SendPackedVirtualTouchEventMessage = Message<\"SendPackedVirtualTouchEventMessage\"> & {\n /**\n * The packed version of VirtualTouchEvent contains X, Y, phase, deviceID\n * and finger stored as a byte array. Each value is written as 16bit little\n * endian integers.\n *\n * @generated from field: optional bytes data = 1;\n */\n data: Uint8Array;\n};\n\n/**\n * Describes the message SendPackedVirtualTouchEventMessage.\n * Use `create(SendPackedVirtualTouchEventMessageSchema)` to create a new message.\n */\nexport const SendPackedVirtualTouchEventMessageSchema: GenMessage<SendPackedVirtualTouchEventMessage> = /*@__PURE__*/\n messageDesc(file_SendPackedVirtualTouchEventMessage, 0);\n\n/**\n * Corresponds to \"phase\" in data\n *\n * @generated from enum SendPackedVirtualTouchEventMessage.Phase\n */\nexport enum SendPackedVirtualTouchEventMessage_Phase {\n /**\n * @generated from enum value: Began = 1;\n */\n Began = 1,\n\n /**\n * @generated from enum value: Moved = 2;\n */\n Moved = 2,\n\n /**\n * @generated from enum value: Stationary = 3;\n */\n Stationary = 3,\n\n /**\n * @generated from enum value: Ended = 4;\n */\n Ended = 4,\n\n /**\n * @generated from enum value: Cancelled = 5;\n */\n Cancelled = 5,\n}\n\n/**\n * Describes the enum SendPackedVirtualTouchEventMessage.Phase.\n */\nexport const SendPackedVirtualTouchEventMessage_PhaseSchema: GenEnum<SendPackedVirtualTouchEventMessage_Phase> = /*@__PURE__*/\n enumDesc(file_SendPackedVirtualTouchEventMessage, 0, 0);\n\n/**\n * @generated from extension: optional SendPackedVirtualTouchEventMessage sendPackedVirtualTouchEventMessage = 47;\n */\nexport const sendPackedVirtualTouchEventMessage: GenExtension<ProtocolMessage, SendPackedVirtualTouchEventMessage> = /*@__PURE__*/\n extDesc(file_SendPackedVirtualTouchEventMessage, 0);\n\n",
59
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendVoiceInputMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { AudioFormatSettings } from \"./AudioFormatSettingsMessage_pb\";\nimport { file_AudioFormatSettingsMessage } from \"./AudioFormatSettingsMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendVoiceInputMessage.proto.\n */\nexport const file_SendVoiceInputMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChtTZW5kVm9pY2VJbnB1dE1lc3NhZ2UucHJvdG8iaQocQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbhITCgtzdGFydE9mZnNldBgBIAEoAxIeChZ2YXJpYWJsZUZyYW1lc0luUGFja2V0GAIgASgNEhQKDGRhdGFCeXRlU2l6ZRgDIAEoDSLQAQoLQXVkaW9CdWZmZXISLAoOZm9ybWF0U2V0dGluZ3MYASABKAsyFC5BdWRpb0Zvcm1hdFNldHRpbmdzEhYKDnBhY2tldENhcGFjaXR5GAIgASgDEhkKEW1heGltdW1QYWNrZXRTaXplGAMgASgDEhMKC3BhY2tldENvdW50GAQgASgDEhAKCGNvbnRlbnRzGAUgASgMEjkKEnBhY2tldERlc2NyaXB0aW9ucxgGIAMoCzIdLkF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24iMgoJQXVkaW9UaW1lEhEKCXRpbWVzdGFtcBgBIAEoARISCgpzYW1wbGVSYXRlGAIgASgBIlYKDkF1ZGlvRGF0YUJsb2NrEhwKBmJ1ZmZlchgBIAEoCzIMLkF1ZGlvQnVmZmVyEhgKBHRpbWUYAiABKAsyCi5BdWRpb1RpbWUSDAoEZ2FpbhgDIAEoASI7ChVTZW5kVm9pY2VJbnB1dE1lc3NhZ2USIgoJZGF0YUJsb2NrGAEgASgLMg8uQXVkaW9EYXRhQmxvY2s6XgoVc2VuZFZvaWNlSW5wdXRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCQgASgLMhYuU2VuZFZvaWNlSW5wdXRNZXNzYWdlUhVzZW5kVm9pY2VJbnB1dE1lc3NhZ2U\", [file_ProtocolMessage, file_AudioFormatSettingsMessage]);\n\n/**\n * @generated from message AudioStreamPacketDescription\n */\nexport type AudioStreamPacketDescription = Message<\"AudioStreamPacketDescription\"> & {\n /**\n * @generated from field: optional int64 startOffset = 1;\n */\n startOffset: bigint;\n\n /**\n * @generated from field: optional uint32 variableFramesInPacket = 2;\n */\n variableFramesInPacket: number;\n\n /**\n * @generated from field: optional uint32 dataByteSize = 3;\n */\n dataByteSize: number;\n};\n\n/**\n * Describes the message AudioStreamPacketDescription.\n * Use `create(AudioStreamPacketDescriptionSchema)` to create a new message.\n */\nexport const AudioStreamPacketDescriptionSchema: GenMessage<AudioStreamPacketDescription> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 0);\n\n/**\n * @generated from message AudioBuffer\n */\nexport type AudioBuffer = Message<\"AudioBuffer\"> & {\n /**\n * @generated from field: optional AudioFormatSettings formatSettings = 1;\n */\n formatSettings?: AudioFormatSettings;\n\n /**\n * @generated from field: optional int64 packetCapacity = 2;\n */\n packetCapacity: bigint;\n\n /**\n * @generated from field: optional int64 maximumPacketSize = 3;\n */\n maximumPacketSize: bigint;\n\n /**\n * @generated from field: optional int64 packetCount = 4;\n */\n packetCount: bigint;\n\n /**\n * @generated from field: optional bytes contents = 5;\n */\n contents: Uint8Array;\n\n /**\n * @generated from field: repeated AudioStreamPacketDescription packetDescriptions = 6;\n */\n packetDescriptions: AudioStreamPacketDescription[];\n};\n\n/**\n * Describes the message AudioBuffer.\n * Use `create(AudioBufferSchema)` to create a new message.\n */\nexport const AudioBufferSchema: GenMessage<AudioBuffer> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 1);\n\n/**\n * @generated from message AudioTime\n */\nexport type AudioTime = Message<\"AudioTime\"> & {\n /**\n * @generated from field: optional double timestamp = 1;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional double sampleRate = 2;\n */\n sampleRate: number;\n};\n\n/**\n * Describes the message AudioTime.\n * Use `create(AudioTimeSchema)` to create a new message.\n */\nexport const AudioTimeSchema: GenMessage<AudioTime> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 2);\n\n/**\n * @generated from message AudioDataBlock\n */\nexport type AudioDataBlock = Message<\"AudioDataBlock\"> & {\n /**\n * @generated from field: optional AudioBuffer buffer = 1;\n */\n buffer?: AudioBuffer;\n\n /**\n * @generated from field: optional AudioTime time = 2;\n */\n time?: AudioTime;\n\n /**\n * @generated from field: optional double gain = 3;\n */\n gain: number;\n};\n\n/**\n * Describes the message AudioDataBlock.\n * Use `create(AudioDataBlockSchema)` to create a new message.\n */\nexport const AudioDataBlockSchema: GenMessage<AudioDataBlock> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 3);\n\n/**\n * @generated from message SendVoiceInputMessage\n */\nexport type SendVoiceInputMessage = Message<\"SendVoiceInputMessage\"> & {\n /**\n * @generated from field: optional AudioDataBlock dataBlock = 1;\n */\n dataBlock?: AudioDataBlock;\n};\n\n/**\n * Describes the message SendVoiceInputMessage.\n * Use `create(SendVoiceInputMessageSchema)` to create a new message.\n */\nexport const SendVoiceInputMessageSchema: GenMessage<SendVoiceInputMessage> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 4);\n\n/**\n * @generated from extension: optional SendVoiceInputMessage sendVoiceInputMessage = 36;\n */\nexport const sendVoiceInputMessage: GenExtension<ProtocolMessage, SendVoiceInputMessage> = /*@__PURE__*/\n extDesc(file_SendVoiceInputMessage, 0);\n\n",
60
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetArtworkMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetArtworkMessage.proto.\n */\nexport const file_SetArtworkMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChdTZXRBcnR3b3JrTWVzc2FnZS5wcm90byIlChFTZXRBcnR3b3JrTWVzc2FnZRIQCghqcGVnRGF0YRgBIAEoDDpSChFzZXRBcnR3b3JrTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgKIAEoCzISLlNldEFydHdvcmtNZXNzYWdlUhFzZXRBcnR3b3JrTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetArtworkMessage\n */\nexport type SetArtworkMessage = Message<\"SetArtworkMessage\"> & {\n /**\n * @generated from field: optional bytes jpegData = 1;\n */\n jpegData: Uint8Array;\n};\n\n/**\n * Describes the message SetArtworkMessage.\n * Use `create(SetArtworkMessageSchema)` to create a new message.\n */\nexport const SetArtworkMessageSchema: GenMessage<SetArtworkMessage> = /*@__PURE__*/\n messageDesc(file_SetArtworkMessage, 0);\n\n/**\n * @generated from extension: optional SetArtworkMessage setArtworkMessage = 10;\n */\nexport const setArtworkMessage: GenExtension<ProtocolMessage, SetArtworkMessage> = /*@__PURE__*/\n extDesc(file_SetArtworkMessage, 0);\n\n",
61
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetConnectionStateMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetConnectionStateMessage.proto.\n */\nexport const file_SetConnectionStateMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9TZXRDb25uZWN0aW9uU3RhdGVNZXNzYWdlLnByb3RvIqQBChlTZXRDb25uZWN0aW9uU3RhdGVNZXNzYWdlEjkKBXN0YXRlGAEgASgOMiouU2V0Q29ubmVjdGlvblN0YXRlTWVzc2FnZS5Db25uZWN0aW9uU3RhdGUiTAoPQ29ubmVjdGlvblN0YXRlEggKBE5vbmUQABIOCgpDb25uZWN0aW5nEAESDQoJQ29ubmVjdGVkEAISEAoMRGlzY29ubmVjdGVkEAM6agoZc2V0Q29ubmVjdGlvblN0YXRlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgqIAEoCzIaLlNldENvbm5lY3Rpb25TdGF0ZU1lc3NhZ2VSGXNldENvbm5lY3Rpb25TdGF0ZU1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetConnectionStateMessage\n */\nexport type SetConnectionStateMessage = Message<\"SetConnectionStateMessage\"> & {\n /**\n * @generated from field: optional SetConnectionStateMessage.ConnectionState state = 1;\n */\n state: SetConnectionStateMessage_ConnectionState;\n};\n\n/**\n * Describes the message SetConnectionStateMessage.\n * Use `create(SetConnectionStateMessageSchema)` to create a new message.\n */\nexport const SetConnectionStateMessageSchema: GenMessage<SetConnectionStateMessage> = /*@__PURE__*/\n messageDesc(file_SetConnectionStateMessage, 0);\n\n/**\n * @generated from enum SetConnectionStateMessage.ConnectionState\n */\nexport enum SetConnectionStateMessage_ConnectionState {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Connecting = 1;\n */\n Connecting = 1,\n\n /**\n * @generated from enum value: Connected = 2;\n */\n Connected = 2,\n\n /**\n * @generated from enum value: Disconnected = 3;\n */\n Disconnected = 3,\n}\n\n/**\n * Describes the enum SetConnectionStateMessage.ConnectionState.\n */\nexport const SetConnectionStateMessage_ConnectionStateSchema: GenEnum<SetConnectionStateMessage_ConnectionState> = /*@__PURE__*/\n enumDesc(file_SetConnectionStateMessage, 0, 0);\n\n/**\n * @generated from extension: optional SetConnectionStateMessage setConnectionStateMessage = 42;\n */\nexport const setConnectionStateMessage: GenExtension<ProtocolMessage, SetConnectionStateMessage> = /*@__PURE__*/\n extDesc(file_SetConnectionStateMessage, 0);\n\n",
62
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetDefaultSupportedCommandsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport { file_NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport type { PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport { file_PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport type { SupportedCommands } from \"./SupportedCommands_pb\";\nimport { file_SupportedCommands } from \"./SupportedCommands_pb\";\nimport type { PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport { file_PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport { file_PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport type { PlaybackState_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetDefaultSupportedCommandsMessage.proto.\n */\nexport const file_SetDefaultSupportedCommandsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CihTZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdlLnByb3RvIqYDCiJTZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdlEicKDm5vd1BsYXlpbmdJbmZvGAEgASgLMg8uTm93UGxheWluZ0luZm8SLQoRc3VwcG9ydGVkQ29tbWFuZHMYAiABKAsyEi5TdXBwb3J0ZWRDb21tYW5kcxIlCg1wbGF5YmFja1F1ZXVlGAMgASgLMg4uUGxheWJhY2tRdWV1ZRIRCglkaXNwbGF5SUQYBCABKAkSEwoLZGlzcGxheU5hbWUYBSABKAkSKgoNcGxheWJhY2tTdGF0ZRgGIAEoDjITLlBsYXliYWNrU3RhdGUuRW51bRI9ChlwbGF5YmFja1F1ZXVlQ2FwYWJpbGl0aWVzGAggASgLMhouUGxheWJhY2tRdWV1ZUNhcGFiaWxpdGllcxIfCgpwbGF5ZXJQYXRoGAkgASgLMgsuUGxheWVyUGF0aBItCgdyZXF1ZXN0GAogASgLMhwuUGxheWJhY2tRdWV1ZVJlcXVlc3RNZXNzYWdlEh4KFnBsYXliYWNrU3RhdGVUaW1lc3RhbXAYCyABKAE6hQEKInNldERlZmF1bHRTdXBwb3J0ZWRDb21tYW5kc01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYSyABKAsyIy5TZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdlUiJzZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdl\", [file_ProtocolMessage, file_NowPlayingInfo, file_PlaybackQueue, file_SupportedCommands, file_PlaybackQueueCapabilities, file_PlayerPath, file_PlaybackQueueRequestMessage, file_Common]);\n\n/**\n * Seems to be the same as SetStateMessage\n *\n * @generated from message SetDefaultSupportedCommandsMessage\n */\nexport type SetDefaultSupportedCommandsMessage = Message<\"SetDefaultSupportedCommandsMessage\"> & {\n /**\n * @generated from field: optional NowPlayingInfo nowPlayingInfo = 1;\n */\n nowPlayingInfo?: NowPlayingInfo;\n\n /**\n * @generated from field: optional SupportedCommands supportedCommands = 2;\n */\n supportedCommands?: SupportedCommands;\n\n /**\n * @generated from field: optional PlaybackQueue playbackQueue = 3;\n */\n playbackQueue?: PlaybackQueue;\n\n /**\n * @generated from field: optional string displayID = 4;\n */\n displayID: string;\n\n /**\n * @generated from field: optional string displayName = 5;\n */\n displayName: string;\n\n /**\n * @generated from field: optional PlaybackState.Enum playbackState = 6;\n */\n playbackState: PlaybackState_Enum;\n\n /**\n * @generated from field: optional PlaybackQueueCapabilities playbackQueueCapabilities = 8;\n */\n playbackQueueCapabilities?: PlaybackQueueCapabilities;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 9;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional PlaybackQueueRequestMessage request = 10;\n */\n request?: PlaybackQueueRequestMessage;\n\n /**\n * @generated from field: optional double playbackStateTimestamp = 11;\n */\n playbackStateTimestamp: number;\n};\n\n/**\n * Describes the message SetDefaultSupportedCommandsMessage.\n * Use `create(SetDefaultSupportedCommandsMessageSchema)` to create a new message.\n */\nexport const SetDefaultSupportedCommandsMessageSchema: GenMessage<SetDefaultSupportedCommandsMessage> = /*@__PURE__*/\n messageDesc(file_SetDefaultSupportedCommandsMessage, 0);\n\n/**\n * @generated from extension: optional SetDefaultSupportedCommandsMessage setDefaultSupportedCommandsMessage = 75;\n */\nexport const setDefaultSupportedCommandsMessage: GenExtension<ProtocolMessage, SetDefaultSupportedCommandsMessage> = /*@__PURE__*/\n extDesc(file_SetDefaultSupportedCommandsMessage, 0);\n\n",
63
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SupportedCommands.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { CommandInfo } from \"./CommandInfo_pb\";\nimport { file_CommandInfo } from \"./CommandInfo_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SupportedCommands.proto.\n */\nexport const file_SupportedCommands: GenFile = /*@__PURE__*/\n fileDesc(\"ChdTdXBwb3J0ZWRDb21tYW5kcy5wcm90byI8ChFTdXBwb3J0ZWRDb21tYW5kcxInChFzdXBwb3J0ZWRDb21tYW5kcxgBIAMoCzIMLkNvbW1hbmRJbmZv\", [file_CommandInfo]);\n\n/**\n * @generated from message SupportedCommands\n */\nexport type SupportedCommands = Message<\"SupportedCommands\"> & {\n /**\n * @generated from field: repeated CommandInfo supportedCommands = 1;\n */\n supportedCommands: CommandInfo[];\n};\n\n/**\n * Describes the message SupportedCommands.\n * Use `create(SupportedCommandsSchema)` to create a new message.\n */\nexport const SupportedCommandsSchema: GenMessage<SupportedCommands> = /*@__PURE__*/\n messageDesc(file_SupportedCommands, 0);\n\n",
64
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetDiscoveryModeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetDiscoveryModeMessage.proto.\n */\nexport const file_SetDiscoveryModeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch1TZXREaXNjb3ZlcnlNb2RlTWVzc2FnZS5wcm90byI5ChdTZXREaXNjb3ZlcnlNb2RlTWVzc2FnZRIMCgRtb2RlGAEgASgFEhAKCGZlYXR1cmVzGAIgASgFOmQKF3NldERpc2NvdmVyeU1vZGVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGFIgASgLMhguU2V0RGlzY292ZXJ5TW9kZU1lc3NhZ2VSF3NldERpc2NvdmVyeU1vZGVNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetDiscoveryModeMessage\n */\nexport type SetDiscoveryModeMessage = Message<\"SetDiscoveryModeMessage\"> & {\n /**\n * @generated from field: optional int32 mode = 1;\n */\n mode: number;\n\n /**\n * @generated from field: optional int32 features = 2;\n */\n features: number;\n};\n\n/**\n * Describes the message SetDiscoveryModeMessage.\n * Use `create(SetDiscoveryModeMessageSchema)` to create a new message.\n */\nexport const SetDiscoveryModeMessageSchema: GenMessage<SetDiscoveryModeMessage> = /*@__PURE__*/\n messageDesc(file_SetDiscoveryModeMessage, 0);\n\n/**\n * @generated from extension: optional SetDiscoveryModeMessage setDiscoveryModeMessage = 82;\n */\nexport const setDiscoveryModeMessage: GenExtension<ProtocolMessage, SetDiscoveryModeMessage> = /*@__PURE__*/\n extDesc(file_SetDiscoveryModeMessage, 0);\n\n",
65
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetHiliteModeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetHiliteModeMessage.proto.\n */\nexport const file_SetHiliteModeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChpTZXRIaWxpdGVNb2RlTWVzc2FnZS5wcm90byIqChRTZXRIaWxpdGVNb2RlTWVzc2FnZRISCgpoaWxpdGVNb2RlGAEgASgFOlsKFHNldEhpbGl0ZU1vZGVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCwgASgLMhUuU2V0SGlsaXRlTW9kZU1lc3NhZ2VSFHNldEhpbGl0ZU1vZGVNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetHiliteModeMessage\n */\nexport type SetHiliteModeMessage = Message<\"SetHiliteModeMessage\"> & {\n /**\n * @generated from field: optional int32 hiliteMode = 1;\n */\n hiliteMode: number;\n};\n\n/**\n * Describes the message SetHiliteModeMessage.\n * Use `create(SetHiliteModeMessageSchema)` to create a new message.\n */\nexport const SetHiliteModeMessageSchema: GenMessage<SetHiliteModeMessage> = /*@__PURE__*/\n messageDesc(file_SetHiliteModeMessage, 0);\n\n/**\n * @generated from extension: optional SetHiliteModeMessage setHiliteModeMessage = 44;\n */\nexport const setHiliteModeMessage: GenExtension<ProtocolMessage, SetHiliteModeMessage> = /*@__PURE__*/\n extDesc(file_SetHiliteModeMessage, 0);\n\n",
66
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetNowPlayingClientMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetNowPlayingClientMessage.proto.\n */\nexport const file_SetNowPlayingClientMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBTZXROb3dQbGF5aW5nQ2xpZW50TWVzc2FnZS5wcm90byI/ChpTZXROb3dQbGF5aW5nQ2xpZW50TWVzc2FnZRIhCgZjbGllbnQYASABKAsyES5Ob3dQbGF5aW5nQ2xpZW50Om0KGnNldE5vd1BsYXlpbmdDbGllbnRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDIgASgLMhsuU2V0Tm93UGxheWluZ0NsaWVudE1lc3NhZ2VSGnNldE5vd1BsYXlpbmdDbGllbnRNZXNzYWdl\", [file_ProtocolMessage, file_NowPlayingClient]);\n\n/**\n * @generated from message SetNowPlayingClientMessage\n */\nexport type SetNowPlayingClientMessage = Message<\"SetNowPlayingClientMessage\"> & {\n /**\n * @generated from field: optional NowPlayingClient client = 1;\n */\n client?: NowPlayingClient;\n};\n\n/**\n * Describes the message SetNowPlayingClientMessage.\n * Use `create(SetNowPlayingClientMessageSchema)` to create a new message.\n */\nexport const SetNowPlayingClientMessageSchema: GenMessage<SetNowPlayingClientMessage> = /*@__PURE__*/\n messageDesc(file_SetNowPlayingClientMessage, 0);\n\n/**\n * @generated from extension: optional SetNowPlayingClientMessage setNowPlayingClientMessage = 50;\n */\nexport const setNowPlayingClientMessage: GenExtension<ProtocolMessage, SetNowPlayingClientMessage> = /*@__PURE__*/\n extDesc(file_SetNowPlayingClientMessage, 0);\n\n",
67
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetNowPlayingPlayerMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetNowPlayingPlayerMessage.proto.\n */\nexport const file_SetNowPlayingPlayerMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBTZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZS5wcm90byI9ChpTZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZRIfCgpwbGF5ZXJQYXRoGAEgASgLMgsuUGxheWVyUGF0aDptChpzZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgzIAEoCzIbLlNldE5vd1BsYXlpbmdQbGF5ZXJNZXNzYWdlUhpzZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZQ\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message SetNowPlayingPlayerMessage\n */\nexport type SetNowPlayingPlayerMessage = Message<\"SetNowPlayingPlayerMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message SetNowPlayingPlayerMessage.\n * Use `create(SetNowPlayingPlayerMessageSchema)` to create a new message.\n */\nexport const SetNowPlayingPlayerMessageSchema: GenMessage<SetNowPlayingPlayerMessage> = /*@__PURE__*/\n messageDesc(file_SetNowPlayingPlayerMessage, 0);\n\n/**\n * @generated from extension: optional SetNowPlayingPlayerMessage setNowPlayingPlayerMessage = 51;\n */\nexport const setNowPlayingPlayerMessage: GenExtension<ProtocolMessage, SetNowPlayingPlayerMessage> = /*@__PURE__*/\n extDesc(file_SetNowPlayingPlayerMessage, 0);\n\n",
68
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetRecordingStateMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetRecordingStateMessage.proto.\n */\nexport const file_SetRecordingStateMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5TZXRSZWNvcmRpbmdTdGF0ZU1lc3NhZ2UucHJvdG8ikwEKGFNldFJlY29yZGluZ1N0YXRlTWVzc2FnZRI3CgVzdGF0ZRgBIAEoDjIoLlNldFJlY29yZGluZ1N0YXRlTWVzc2FnZS5SZWNvcmRpbmdTdGF0ZSI+Cg5SZWNvcmRpbmdTdGF0ZRILCgdVbmtub3duEAASDQoJUmVjb3JkaW5nEAESEAoMTm90UmVjb3JkaW5nEAI6ZwoYc2V0UmVjb3JkaW5nU3RhdGVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCMgASgLMhkuU2V0UmVjb3JkaW5nU3RhdGVNZXNzYWdlUhhzZXRSZWNvcmRpbmdTdGF0ZU1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetRecordingStateMessage\n */\nexport type SetRecordingStateMessage = Message<\"SetRecordingStateMessage\"> & {\n /**\n * @generated from field: optional SetRecordingStateMessage.RecordingState state = 1;\n */\n state: SetRecordingStateMessage_RecordingState;\n};\n\n/**\n * Describes the message SetRecordingStateMessage.\n * Use `create(SetRecordingStateMessageSchema)` to create a new message.\n */\nexport const SetRecordingStateMessageSchema: GenMessage<SetRecordingStateMessage> = /*@__PURE__*/\n messageDesc(file_SetRecordingStateMessage, 0);\n\n/**\n * @generated from enum SetRecordingStateMessage.RecordingState\n */\nexport enum SetRecordingStateMessage_RecordingState {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Recording = 1;\n */\n Recording = 1,\n\n /**\n * @generated from enum value: NotRecording = 2;\n */\n NotRecording = 2,\n}\n\n/**\n * Describes the enum SetRecordingStateMessage.RecordingState.\n */\nexport const SetRecordingStateMessage_RecordingStateSchema: GenEnum<SetRecordingStateMessage_RecordingState> = /*@__PURE__*/\n enumDesc(file_SetRecordingStateMessage, 0, 0);\n\n/**\n * @generated from extension: optional SetRecordingStateMessage setRecordingStateMessage = 35;\n */\nexport const setRecordingStateMessage: GenExtension<ProtocolMessage, SetRecordingStateMessage> = /*@__PURE__*/\n extDesc(file_SetRecordingStateMessage, 0);\n\n",
69
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetStateMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport { file_NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport type { PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport { file_PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport type { SupportedCommands } from \"./SupportedCommands_pb\";\nimport { file_SupportedCommands } from \"./SupportedCommands_pb\";\nimport type { PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport { file_PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport { file_PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport type { PlaybackState_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetStateMessage.proto.\n */\nexport const file_SetStateMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChVTZXRTdGF0ZU1lc3NhZ2UucHJvdG8ikwMKD1NldFN0YXRlTWVzc2FnZRInCg5ub3dQbGF5aW5nSW5mbxgBIAEoCzIPLk5vd1BsYXlpbmdJbmZvEi0KEXN1cHBvcnRlZENvbW1hbmRzGAIgASgLMhIuU3VwcG9ydGVkQ29tbWFuZHMSJQoNcGxheWJhY2tRdWV1ZRgDIAEoCzIOLlBsYXliYWNrUXVldWUSEQoJZGlzcGxheUlEGAQgASgJEhMKC2Rpc3BsYXlOYW1lGAUgASgJEioKDXBsYXliYWNrU3RhdGUYBiABKA4yEy5QbGF5YmFja1N0YXRlLkVudW0SPQoZcGxheWJhY2tRdWV1ZUNhcGFiaWxpdGllcxgIIAEoCzIaLlBsYXliYWNrUXVldWVDYXBhYmlsaXRpZXMSHwoKcGxheWVyUGF0aBgJIAEoCzILLlBsYXllclBhdGgSLQoHcmVxdWVzdBgKIAEoCzIcLlBsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZRIeChZwbGF5YmFja1N0YXRlVGltZXN0YW1wGAsgASgBOkwKD3NldFN0YXRlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgJIAEoCzIQLlNldFN0YXRlTWVzc2FnZVIPc2V0U3RhdGVNZXNzYWdl\", [file_ProtocolMessage, file_NowPlayingInfo, file_PlaybackQueue, file_SupportedCommands, file_PlaybackQueueCapabilities, file_PlayerPath, file_PlaybackQueueRequestMessage, file_Common]);\n\n/**\n * @generated from message SetStateMessage\n */\nexport type SetStateMessage = Message<\"SetStateMessage\"> & {\n /**\n * @generated from field: optional NowPlayingInfo nowPlayingInfo = 1;\n */\n nowPlayingInfo?: NowPlayingInfo;\n\n /**\n * @generated from field: optional SupportedCommands supportedCommands = 2;\n */\n supportedCommands?: SupportedCommands;\n\n /**\n * @generated from field: optional PlaybackQueue playbackQueue = 3;\n */\n playbackQueue?: PlaybackQueue;\n\n /**\n * @generated from field: optional string displayID = 4;\n */\n displayID: string;\n\n /**\n * @generated from field: optional string displayName = 5;\n */\n displayName: string;\n\n /**\n * @generated from field: optional PlaybackState.Enum playbackState = 6;\n */\n playbackState: PlaybackState_Enum;\n\n /**\n * @generated from field: optional PlaybackQueueCapabilities playbackQueueCapabilities = 8;\n */\n playbackQueueCapabilities?: PlaybackQueueCapabilities;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 9;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional PlaybackQueueRequestMessage request = 10;\n */\n request?: PlaybackQueueRequestMessage;\n\n /**\n * @generated from field: optional double playbackStateTimestamp = 11;\n */\n playbackStateTimestamp: number;\n};\n\n/**\n * Describes the message SetStateMessage.\n * Use `create(SetStateMessageSchema)` to create a new message.\n */\nexport const SetStateMessageSchema: GenMessage<SetStateMessage> = /*@__PURE__*/\n messageDesc(file_SetStateMessage, 0);\n\n/**\n * @generated from extension: optional SetStateMessage setStateMessage = 9;\n */\nexport const setStateMessage: GenExtension<ProtocolMessage, SetStateMessage> = /*@__PURE__*/\n extDesc(file_SetStateMessage, 0);\n\n",
70
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetVolumeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetVolumeMessage.proto.\n */\nexport const file_SetVolumeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZTZXRWb2x1bWVNZXNzYWdlLnByb3RvIjsKEFNldFZvbHVtZU1lc3NhZ2USDgoGdm9sdW1lGAEgASgCEhcKD291dHB1dERldmljZVVJRBgCIAEoCTpPChBzZXRWb2x1bWVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDcgASgLMhEuU2V0Vm9sdW1lTWVzc2FnZVIQc2V0Vm9sdW1lTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetVolumeMessage\n */\nexport type SetVolumeMessage = Message<\"SetVolumeMessage\"> & {\n /**\n * @generated from field: optional float volume = 1;\n */\n volume: number;\n\n /**\n * @generated from field: optional string outputDeviceUID = 2;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message SetVolumeMessage.\n * Use `create(SetVolumeMessageSchema)` to create a new message.\n */\nexport const SetVolumeMessageSchema: GenMessage<SetVolumeMessage> = /*@__PURE__*/\n messageDesc(file_SetVolumeMessage, 0);\n\n/**\n * @generated from extension: optional SetVolumeMessage setVolumeMessage = 55;\n */\nexport const setVolumeMessage: GenExtension<ProtocolMessage, SetVolumeMessage> = /*@__PURE__*/\n extDesc(file_SetVolumeMessage, 0);\n\n",
71
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TextInputMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TextInputMessage.proto.\n */\nexport const file_TextInputMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZUZXh0SW5wdXRNZXNzYWdlLnByb3RvIlMKCkFjdGlvblR5cGUiRQoERW51bRILCgdVbmtub3duEAASCgoGSW5zZXJ0EAESBwoDU2V0EAISCgoGRGVsZXRlEAMSDwoLQ2xlYXJBY3Rpb24QBCJZChBUZXh0SW5wdXRNZXNzYWdlEhEKCXRpbWVzdGFtcBgBIAEoARIMCgR0ZXh0GAIgASgJEiQKCmFjdGlvblR5cGUYAyABKA4yEC5BY3Rpb25UeXBlLkVudW06TwoQdGV4dElucHV0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgeIAEoCzIRLlRleHRJbnB1dE1lc3NhZ2VSEHRleHRJbnB1dE1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ActionType\n */\nexport type ActionType = Message<\"ActionType\"> & {\n};\n\n/**\n * Describes the message ActionType.\n * Use `create(ActionTypeSchema)` to create a new message.\n */\nexport const ActionTypeSchema: GenMessage<ActionType> = /*@__PURE__*/\n messageDesc(file_TextInputMessage, 0);\n\n/**\n * @generated from enum ActionType.Enum\n */\nexport enum ActionType_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Insert = 1;\n */\n Insert = 1,\n\n /**\n * @generated from enum value: Set = 2;\n */\n Set = 2,\n\n /**\n * @generated from enum value: Delete = 3;\n */\n Delete = 3,\n\n /**\n * \"Clear\" clashes with something, making mypy unhappy \n *\n * @generated from enum value: ClearAction = 4;\n */\n ClearAction = 4,\n}\n\n/**\n * Describes the enum ActionType.Enum.\n */\nexport const ActionType_EnumSchema: GenEnum<ActionType_Enum> = /*@__PURE__*/\n enumDesc(file_TextInputMessage, 0, 0);\n\n/**\n * @generated from message TextInputMessage\n */\nexport type TextInputMessage = Message<\"TextInputMessage\"> & {\n /**\n * @generated from field: optional double timestamp = 1;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional string text = 2;\n */\n text: string;\n\n /**\n * @generated from field: optional ActionType.Enum actionType = 3;\n */\n actionType: ActionType_Enum;\n};\n\n/**\n * Describes the message TextInputMessage.\n * Use `create(TextInputMessageSchema)` to create a new message.\n */\nexport const TextInputMessageSchema: GenMessage<TextInputMessage> = /*@__PURE__*/\n messageDesc(file_TextInputMessage, 1);\n\n/**\n * @generated from extension: optional TextInputMessage textInputMessage = 30;\n */\nexport const textInputMessage: GenExtension<ProtocolMessage, TextInputMessage> = /*@__PURE__*/\n extDesc(file_TextInputMessage, 0);\n\n",
72
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionKey.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionKey.proto.\n */\nexport const file_TransactionKey: GenFile = /*@__PURE__*/\n fileDesc(\"ChRUcmFuc2FjdGlvbktleS5wcm90byI2Cg5UcmFuc2FjdGlvbktleRISCgppZGVudGlmaWVyGAEgASgJEhAKCHVzZXJEYXRhGAIgASgM\");\n\n/**\n * @generated from message TransactionKey\n */\nexport type TransactionKey = Message<\"TransactionKey\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional bytes userData = 2;\n */\n userData: Uint8Array;\n};\n\n/**\n * Describes the message TransactionKey.\n * Use `create(TransactionKeySchema)` to create a new message.\n */\nexport const TransactionKeySchema: GenMessage<TransactionKey> = /*@__PURE__*/\n messageDesc(file_TransactionKey, 0);\n\n",
73
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { TransactionPackets } from \"./TransactionPackets_pb\";\nimport { file_TransactionPackets } from \"./TransactionPackets_pb\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionMessage.proto.\n */\nexport const file_TransactionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChhUcmFuc2FjdGlvbk1lc3NhZ2UucHJvdG8iaQoSVHJhbnNhY3Rpb25NZXNzYWdlEgwKBG5hbWUYASABKAQSJAoHcGFja2V0cxgCIAEoCzITLlRyYW5zYWN0aW9uUGFja2V0cxIfCgpwbGF5ZXJQYXRoGAMgASgLMgsuUGxheWVyUGF0aDpVChJ0cmFuc2FjdGlvbk1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYJiABKAsyEy5UcmFuc2FjdGlvbk1lc3NhZ2VSEnRyYW5zYWN0aW9uTWVzc2FnZQ\", [file_TransactionPackets, file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message TransactionMessage\n */\nexport type TransactionMessage = Message<\"TransactionMessage\"> & {\n /**\n * @generated from field: optional uint64 name = 1;\n */\n name: bigint;\n\n /**\n * @generated from field: optional TransactionPackets packets = 2;\n */\n packets?: TransactionPackets;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 3;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message TransactionMessage.\n * Use `create(TransactionMessageSchema)` to create a new message.\n */\nexport const TransactionMessageSchema: GenMessage<TransactionMessage> = /*@__PURE__*/\n messageDesc(file_TransactionMessage, 0);\n\n/**\n * @generated from extension: optional TransactionMessage transactionMessage = 38;\n */\nexport const transactionMessage: GenExtension<ProtocolMessage, TransactionMessage> = /*@__PURE__*/\n extDesc(file_TransactionMessage, 0);\n\n",
74
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionPackets.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { TransactionPacket } from \"./TransactionPacket_pb\";\nimport { file_TransactionPacket } from \"./TransactionPacket_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionPackets.proto.\n */\nexport const file_TransactionPackets: GenFile = /*@__PURE__*/\n fileDesc(\"ChhUcmFuc2FjdGlvblBhY2tldHMucHJvdG8iOQoSVHJhbnNhY3Rpb25QYWNrZXRzEiMKB3BhY2tldHMYASADKAsyEi5UcmFuc2FjdGlvblBhY2tldA\", [file_TransactionPacket]);\n\n/**\n * @generated from message TransactionPackets\n */\nexport type TransactionPackets = Message<\"TransactionPackets\"> & {\n /**\n * @generated from field: repeated TransactionPacket packets = 1;\n */\n packets: TransactionPacket[];\n};\n\n/**\n * Describes the message TransactionPackets.\n * Use `create(TransactionPacketsSchema)` to create a new message.\n */\nexport const TransactionPacketsSchema: GenMessage<TransactionPackets> = /*@__PURE__*/\n messageDesc(file_TransactionPackets, 0);\n\n",
75
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionPacket.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { TransactionKey } from \"./TransactionKey_pb\";\nimport { file_TransactionKey } from \"./TransactionKey_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionPacket.proto.\n */\nexport const file_TransactionPacket: GenFile = /*@__PURE__*/\n fileDesc(\"ChdUcmFuc2FjdGlvblBhY2tldC5wcm90byKKAQoRVHJhbnNhY3Rpb25QYWNrZXQSHAoDa2V5GAEgASgLMg8uVHJhbnNhY3Rpb25LZXkSEgoKcGFja2V0RGF0YRgCIAEoDBISCgppZGVudGlmaWVyGAMgASgJEhMKC3RvdGFsTGVuZ3RoGAQgASgEEhoKEnRvdGFsV3JpdGVQb3NpdGlvbhgFIAEoBA\", [file_TransactionKey]);\n\n/**\n * @generated from message TransactionPacket\n */\nexport type TransactionPacket = Message<\"TransactionPacket\"> & {\n /**\n * @generated from field: optional TransactionKey key = 1;\n */\n key?: TransactionKey;\n\n /**\n * @generated from field: optional bytes packetData = 2;\n */\n packetData: Uint8Array;\n\n /**\n * @generated from field: optional string identifier = 3;\n */\n identifier: string;\n\n /**\n * @generated from field: optional uint64 totalLength = 4;\n */\n totalLength: bigint;\n\n /**\n * @generated from field: optional uint64 totalWritePosition = 5;\n */\n totalWritePosition: bigint;\n};\n\n/**\n * Describes the message TransactionPacket.\n * Use `create(TransactionPacketSchema)` to create a new message.\n */\nexport const TransactionPacketSchema: GenMessage<TransactionPacket> = /*@__PURE__*/\n messageDesc(file_TransactionPacket, 0);\n\n",
76
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateClientMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateClientMessage.proto.\n */\nexport const file_UpdateClientMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlVcGRhdGVDbGllbnRNZXNzYWdlLnByb3RvIjgKE1VwZGF0ZUNsaWVudE1lc3NhZ2USIQoGY2xpZW50GAEgASgLMhEuTm93UGxheWluZ0NsaWVudDpYChN1cGRhdGVDbGllbnRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDsgASgLMhQuVXBkYXRlQ2xpZW50TWVzc2FnZVITdXBkYXRlQ2xpZW50TWVzc2FnZQ\", [file_ProtocolMessage, file_NowPlayingClient]);\n\n/**\n * @generated from message UpdateClientMessage\n */\nexport type UpdateClientMessage = Message<\"UpdateClientMessage\"> & {\n /**\n * @generated from field: optional NowPlayingClient client = 1;\n */\n client?: NowPlayingClient;\n};\n\n/**\n * Describes the message UpdateClientMessage.\n * Use `create(UpdateClientMessageSchema)` to create a new message.\n */\nexport const UpdateClientMessageSchema: GenMessage<UpdateClientMessage> = /*@__PURE__*/\n messageDesc(file_UpdateClientMessage, 0);\n\n/**\n * @generated from extension: optional UpdateClientMessage updateClientMessage = 59;\n */\nexport const updateClientMessage: GenExtension<ProtocolMessage, UpdateClientMessage> = /*@__PURE__*/\n extDesc(file_UpdateClientMessage, 0);\n\n",
77
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateContentItemArtworkMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { ContentItem } from \"./ContentItem_pb\";\nimport { file_ContentItem } from \"./ContentItem_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateContentItemArtworkMessage.proto.\n */\nexport const file_UpdateContentItemArtworkMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiVVcGRhdGVDb250ZW50SXRlbUFydHdvcmtNZXNzYWdlLnByb3RvImYKH1VwZGF0ZUNvbnRlbnRJdGVtQXJ0d29ya01lc3NhZ2USIgoMY29udGVudEl0ZW1zGAEgAygLMgwuQ29udGVudEl0ZW0SHwoKcGxheWVyUGF0aBgCIAEoCzILLlBsYXllclBhdGg6fAofdXBkYXRlQ29udGVudEl0ZW1BcnR3b3JrTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg9IAEoCzIgLlVwZGF0ZUNvbnRlbnRJdGVtQXJ0d29ya01lc3NhZ2VSH3VwZGF0ZUNvbnRlbnRJdGVtQXJ0d29ya01lc3NhZ2U\", [file_ProtocolMessage, file_ContentItem, file_PlayerPath]);\n\n/**\n * @generated from message UpdateContentItemArtworkMessage\n */\nexport type UpdateContentItemArtworkMessage = Message<\"UpdateContentItemArtworkMessage\"> & {\n /**\n * @generated from field: repeated ContentItem contentItems = 1;\n */\n contentItems: ContentItem[];\n\n /**\n * @generated from field: optional PlayerPath playerPath = 2;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message UpdateContentItemArtworkMessage.\n * Use `create(UpdateContentItemArtworkMessageSchema)` to create a new message.\n */\nexport const UpdateContentItemArtworkMessageSchema: GenMessage<UpdateContentItemArtworkMessage> = /*@__PURE__*/\n messageDesc(file_UpdateContentItemArtworkMessage, 0);\n\n/**\n * @generated from extension: optional UpdateContentItemArtworkMessage updateContentItemArtworkMessage = 61;\n */\nexport const updateContentItemArtworkMessage: GenExtension<ProtocolMessage, UpdateContentItemArtworkMessage> = /*@__PURE__*/\n extDesc(file_UpdateContentItemArtworkMessage, 0);\n\n",
78
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateContentItemMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { ContentItem } from \"./ContentItem_pb\";\nimport { file_ContentItem } from \"./ContentItem_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateContentItemMessage.proto.\n */\nexport const file_UpdateContentItemMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5VcGRhdGVDb250ZW50SXRlbU1lc3NhZ2UucHJvdG8iXwoYVXBkYXRlQ29udGVudEl0ZW1NZXNzYWdlEiIKDGNvbnRlbnRJdGVtcxgBIAMoCzIMLkNvbnRlbnRJdGVtEh8KCnBsYXllclBhdGgYAiABKAsyCy5QbGF5ZXJQYXRoOmcKGHVwZGF0ZUNvbnRlbnRJdGVtTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg8IAEoCzIZLlVwZGF0ZUNvbnRlbnRJdGVtTWVzc2FnZVIYdXBkYXRlQ29udGVudEl0ZW1NZXNzYWdl\", [file_ProtocolMessage, file_ContentItem, file_PlayerPath]);\n\n/**\n * @generated from message UpdateContentItemMessage\n */\nexport type UpdateContentItemMessage = Message<\"UpdateContentItemMessage\"> & {\n /**\n * @generated from field: repeated ContentItem contentItems = 1;\n */\n contentItems: ContentItem[];\n\n /**\n * @generated from field: optional PlayerPath playerPath = 2;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message UpdateContentItemMessage.\n * Use `create(UpdateContentItemMessageSchema)` to create a new message.\n */\nexport const UpdateContentItemMessageSchema: GenMessage<UpdateContentItemMessage> = /*@__PURE__*/\n messageDesc(file_UpdateContentItemMessage, 0);\n\n/**\n * @generated from extension: optional UpdateContentItemMessage updateContentItemMessage = 60;\n */\nexport const updateContentItemMessage: GenExtension<ProtocolMessage, UpdateContentItemMessage> = /*@__PURE__*/\n extDesc(file_UpdateContentItemMessage, 0);\n\n",
79
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateEndPointsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateEndPointsMessage.proto.\n */\nexport const file_UpdateEndPointsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxVcGRhdGVFbmRQb2ludHNNZXNzYWdlLnByb3RvIskBChRBVkVuZHBvaW50RGVzY3JpcHRvchIMCgRuYW1lGAEgASgJEhgKEHVuaXF1ZUlkZW50aWZpZXIYAiABKAkSFwoPaXNMb2NhbEVuZHBvaW50GAUgASgIEhoKEmluc3RhbmNlSWRlbnRpZmllchgGIAEoCRIaChJpc1Byb3h5R3JvdXBQbGF5ZXIYByABKAgSFgoOY29ubmVjdGlvblR5cGUYCCABKAUSIAoYY2FuTW9kaWZ5R3JvdXBNZW1iZXJzaGlwGAkgASgIIlwKFlVwZGF0ZUVuZFBvaW50c01lc3NhZ2USKAoJZW5kcG9pbnRzGAEgASgLMhUuQVZFbmRwb2ludERlc2NyaXB0b3ISGAoQZW5kcG9pbnRGZWF0dXJlcxgCIAEoBTphChZ1cGRhdGVFbmRQb2ludHNNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGFMgASgLMhcuVXBkYXRlRW5kUG9pbnRzTWVzc2FnZVIWdXBkYXRlRW5kUG9pbnRzTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message AVEndpointDescriptor\n */\nexport type AVEndpointDescriptor = Message<\"AVEndpointDescriptor\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string uniqueIdentifier = 2;\n */\n uniqueIdentifier: string;\n\n /**\n * repeated ... outputDevices = 3;\n * optional ... designatedGroupLeader = 4;\n *\n * @generated from field: optional bool isLocalEndpoint = 5;\n */\n isLocalEndpoint: boolean;\n\n /**\n * @generated from field: optional string instanceIdentifier = 6;\n */\n instanceIdentifier: string;\n\n /**\n * @generated from field: optional bool isProxyGroupPlayer = 7;\n */\n isProxyGroupPlayer: boolean;\n\n /**\n * @generated from field: optional int32 connectionType = 8;\n */\n connectionType: number;\n\n /**\n * repeated ... _personalOutputDevices = 10;\n *\n * @generated from field: optional bool canModifyGroupMembership = 9;\n */\n canModifyGroupMembership: boolean;\n};\n\n/**\n * Describes the message AVEndpointDescriptor.\n * Use `create(AVEndpointDescriptorSchema)` to create a new message.\n */\nexport const AVEndpointDescriptorSchema: GenMessage<AVEndpointDescriptor> = /*@__PURE__*/\n messageDesc(file_UpdateEndPointsMessage, 0);\n\n/**\n * @generated from message UpdateEndPointsMessage\n */\nexport type UpdateEndPointsMessage = Message<\"UpdateEndPointsMessage\"> & {\n /**\n * @generated from field: optional AVEndpointDescriptor endpoints = 1;\n */\n endpoints?: AVEndpointDescriptor;\n\n /**\n * @generated from field: optional int32 endpointFeatures = 2;\n */\n endpointFeatures: number;\n};\n\n/**\n * Describes the message UpdateEndPointsMessage.\n * Use `create(UpdateEndPointsMessageSchema)` to create a new message.\n */\nexport const UpdateEndPointsMessageSchema: GenMessage<UpdateEndPointsMessage> = /*@__PURE__*/\n messageDesc(file_UpdateEndPointsMessage, 1);\n\n/**\n * @generated from extension: optional UpdateEndPointsMessage updateEndPointsMessage = 83;\n */\nexport const updateEndPointsMessage: GenExtension<ProtocolMessage, UpdateEndPointsMessage> = /*@__PURE__*/\n extDesc(file_UpdateEndPointsMessage, 0);\n\n",
80
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateOutputDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { DeviceSubType_Enum, DeviceType_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateOutputDeviceMessage.proto.\n */\nexport const file_UpdateOutputDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9VcGRhdGVPdXRwdXREZXZpY2VNZXNzYWdlLnByb3RvIlUKGEFWT3V0cHV0RGV2aWNlU291cmNlSW5mbxIZChFyb3V0aW5nQ29udGV4dFVJRBgBIAEoCRIeChZtdWx0aXBsZUJ1aWx0SW5EZXZpY2VzGAIgASgIIvUPChhBVk91dHB1dERldmljZURlc2NyaXB0b3ISDAoEbmFtZRgBIAEoCRIYChB1bmlxdWVJZGVudGlmaWVyGAIgASgJEg8KB2dyb3VwSUQYAyABKAkSDwoHbW9kZWxJRBgEIAEoCRISCgptYWNBZGRyZXNzGAUgASgMEh0KFWNhbkFjY2Vzc1JlbW90ZUFzc2V0cxgGIAEoCBIcChRpc1JlbW90ZUNvbnRyb2xsYWJsZRgHIAEoCBIVCg1pc0dyb3VwTGVhZGVyGAggASgIEhMKC2lzR3JvdXBhYmxlGAkgASgIEiQKCmRldmljZVR5cGUYCiABKA4yEC5EZXZpY2VUeXBlLkVudW0SKgoNZGV2aWNlU3ViVHlwZRgLIAEoDjITLkRldmljZVN1YlR5cGUuRW51bRIdChVtb2RlbFNwZWNpZmljSW5mb0RhdGEYDCABKAwSFAoMYmF0dGVyeUxldmVsGA0gASgCEhUKDWlzTG9jYWxEZXZpY2UYDiABKAgSHgoWc3VwcG9ydHNFeHRlcm5hbFNjcmVlbhgPIAEoCBIdChVyZXF1aXJlc0F1dGhvcml6YXRpb24YECABKAgSKAogc2hvdWxkRm9yY2VSZW1vdGVDb250cm9sYWJpbGxpdHkYESABKAgSLQoKc291cmNlSW5mbxgSIAEoCzIZLkFWT3V0cHV0RGV2aWNlU291cmNlSW5mbxIZChFpc0RldmljZUdyb3VwYWJsZRgTIAEoCBIkChxjYW5SZWxheUNvbW11bmljYXRpb25DaGFubmVsGBQgASgIEhcKD2xvZ2ljYWxEZXZpY2VJRBgVIAEoCRIaChJpc1Byb3h5R3JvdXBQbGF5ZXIYFiABKAgSFwoPZmlybXdhcmVWZXJzaW9uGBcgASgJEg4KBnZvbHVtZRgYIAEoAhIgChhpc1ZvbHVtZUNvbnRyb2xBdmFpbGFibGUYGSABKAgSGwoTY2FuQWNjZXNzQXBwbGVNdXNpYxgaIAEoCBIjChtjYW5BY2Nlc3NpQ2xvdWRNdXNpY0xpYnJhcnkYGyABKAgSIAoYZ3JvdXBDb250YWluc0dyb3VwTGVhZGVyGBwgASgIEh8KF3N1cHBvcnRzQnVmZmVyZWRBaXJQbGF5GB0gASgIEjEKKWNhblBsYXlFbmNyeXB0ZWRQcm9ncmVzc2l2ZURvd25sb2FkQXNzZXRzGB4gASgIEiMKG2NhbkZldGNoTWVkaWFEYXRhRnJvbVNlbmRlchgfIAEoCBJGCj5yZXNlbnRzT3B0aW1pemVkVXNlckludGVyZmFjZVdoZW5QbGF5aW5nRmV0Y2hlZEF1ZGlvT25seUFzc2V0cxggIAEoCBImCh5pc0FpclBsYXlSZWNlaXZlclNlc3Npb25BY3RpdmUYISABKAgSHQoVcGFyZW50R3JvdXBJZGVudGlmaWVyGCIgASgJEi0KJXBhcmVudEdyb3VwQ29udGFpbnNEaXNjb3ZlcmFibGVMZWFkZXIYIyABKAgSGAoQaXNBZGRlZFRvSG9tZUtpdBgkIAEoCBIaChJ2b2x1bWVDYXBhYmlsaXRpZXMYJSABKAUSEwoLYmx1ZXRvb3RoSUQYJiABKAkSEwoLc3VwcG9ydHNIQVAYJyABKAgSGQoRdXNpbmdKU09OUHJvdG9jb2wYKCABKAgSNgoTY2x1c3RlckNvbXBvc2l0aW9ucxgpIAMoCzIZLkFWT3V0cHV0RGV2aWNlRGVzY3JpcHRvchITCgtjbHVzdGVyVHlwZRgqIAEoDRISCgpwcmltYXJ5VUlEGCsgASgJEh0KFWNvbmZpZ3VyZWRDbHVzdGVyU2l6ZRgsIAEoDRItCiVzdXBwb3J0c1JhcHBvcnRSZW1vdGVDb250cm9sVHJhbnNwb3J0GC0gASgIEiUKHWN1cnJlbnRCbHVldG9vdGhMaXN0ZW5pbmdNb2RlGC4gASgJEigKIGF2YWlsYWJsZUJsdWV0b290aExpc3RlbmluZ01vZGVzGC8gAygJEhsKE3N1cHBvcnRzTXVsdGlwbGF5ZXIYMCADKAgSIAoYcHJvZHVjZXNMb3dGaWRlbGl0eUF1ZGlvGDEgASgIEhcKD2hvc3REZXZpY2VDbGFzcxgyIAEoBRIWCg5haXJQbGF5R3JvdXBJRBgzIAEoCRIgChhzdXBwb3J0c1NoYXJlUGxheUhhbmRvZmYYNCABKAgSEAoIZGlzdGFuY2UYNSABKAISHQoVZGlzY292ZXJlZE9uU2FtZUluZnJhGDYgASgIEjoKF2FjdGl2YXRlZENsdXN0ZXJNZW1iZXJzGDcgAygLMhkuQVZPdXRwdXREZXZpY2VEZXNjcmlwdG9yEhAKCHBpY2thYmxlGDggAygIEhUKDXRyYW5zcG9ydFR5cGUYOSABKAUSEQoJY2x1c3RlcklEGDogASgJEhcKD2lzQ2x1c3RlckxlYWRlchg7IAEoCBIYChBpc0FwcGxlQWNjZXNzb3J5GDwgASgIEh4KFnBhcmVudFVuaXF1ZUlkZW50aWZpZXIYPSABKAkSDgoGcm9vbUlEGD4gASgJEhAKCHJvb21OYW1lGD8gASgJEjQKEWFsbENsdXN0ZXJNZW1iZXJzGEAgAygLMhkuQVZPdXRwdXREZXZpY2VEZXNjcmlwdG9yEh8KF2VuZ2FnZU9uQ2x1c3RlckFjdGl2YXRlGEMgASgIIqABChlVcGRhdGVPdXRwdXREZXZpY2VNZXNzYWdlEjAKDW91dHB1dERldmljZXMYASADKAsyGS5BVk91dHB1dERldmljZURlc2NyaXB0b3ISEwoLZW5kcG9pbnRVSUQYAiABKAkSPAoZY2x1c3RlckF3YXJlT3V0cHV0RGV2aWNlcxgDIAMoCzIZLkFWT3V0cHV0RGV2aWNlRGVzY3JpcHRvcjpqChl1cGRhdGVPdXRwdXREZXZpY2VNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGEUgASgLMhouVXBkYXRlT3V0cHV0RGV2aWNlTWVzc2FnZVIZdXBkYXRlT3V0cHV0RGV2aWNlTWVzc2FnZQ\", [file_ProtocolMessage, file_Common]);\n\n/**\n * @generated from message AVOutputDeviceSourceInfo\n */\nexport type AVOutputDeviceSourceInfo = Message<\"AVOutputDeviceSourceInfo\"> & {\n /**\n * @generated from field: optional string routingContextUID = 1;\n */\n routingContextUID: string;\n\n /**\n * @generated from field: optional bool multipleBuiltInDevices = 2;\n */\n multipleBuiltInDevices: boolean;\n};\n\n/**\n * Describes the message AVOutputDeviceSourceInfo.\n * Use `create(AVOutputDeviceSourceInfoSchema)` to create a new message.\n */\nexport const AVOutputDeviceSourceInfoSchema: GenMessage<AVOutputDeviceSourceInfo> = /*@__PURE__*/\n messageDesc(file_UpdateOutputDeviceMessage, 0);\n\n/**\n * @generated from message AVOutputDeviceDescriptor\n */\nexport type AVOutputDeviceDescriptor = Message<\"AVOutputDeviceDescriptor\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string uniqueIdentifier = 2;\n */\n uniqueIdentifier: string;\n\n /**\n * @generated from field: optional string groupID = 3;\n */\n groupID: string;\n\n /**\n * @generated from field: optional string modelID = 4;\n */\n modelID: string;\n\n /**\n * @generated from field: optional bytes macAddress = 5;\n */\n macAddress: Uint8Array;\n\n /**\n * @generated from field: optional bool canAccessRemoteAssets = 6;\n */\n canAccessRemoteAssets: boolean;\n\n /**\n * @generated from field: optional bool isRemoteControllable = 7;\n */\n isRemoteControllable: boolean;\n\n /**\n * @generated from field: optional bool isGroupLeader = 8;\n */\n isGroupLeader: boolean;\n\n /**\n * @generated from field: optional bool isGroupable = 9;\n */\n isGroupable: boolean;\n\n /**\n * @generated from field: optional DeviceType.Enum deviceType = 10;\n */\n deviceType: DeviceType_Enum;\n\n /**\n * @generated from field: optional DeviceSubType.Enum deviceSubType = 11;\n */\n deviceSubType: DeviceSubType_Enum;\n\n /**\n * @generated from field: optional bytes modelSpecificInfoData = 12;\n */\n modelSpecificInfoData: Uint8Array;\n\n /**\n * @generated from field: optional float batteryLevel = 13;\n */\n batteryLevel: number;\n\n /**\n * @generated from field: optional bool isLocalDevice = 14;\n */\n isLocalDevice: boolean;\n\n /**\n * @generated from field: optional bool supportsExternalScreen = 15;\n */\n supportsExternalScreen: boolean;\n\n /**\n * @generated from field: optional bool requiresAuthorization = 16;\n */\n requiresAuthorization: boolean;\n\n /**\n * @generated from field: optional bool shouldForceRemoteControlabillity = 17;\n */\n shouldForceRemoteControlabillity: boolean;\n\n /**\n * @generated from field: optional AVOutputDeviceSourceInfo sourceInfo = 18;\n */\n sourceInfo?: AVOutputDeviceSourceInfo;\n\n /**\n * @generated from field: optional bool isDeviceGroupable = 19;\n */\n isDeviceGroupable: boolean;\n\n /**\n * @generated from field: optional bool canRelayCommunicationChannel = 20;\n */\n canRelayCommunicationChannel: boolean;\n\n /**\n * @generated from field: optional string logicalDeviceID = 21;\n */\n logicalDeviceID: string;\n\n /**\n * @generated from field: optional bool isProxyGroupPlayer = 22;\n */\n isProxyGroupPlayer: boolean;\n\n /**\n * @generated from field: optional string firmwareVersion = 23;\n */\n firmwareVersion: string;\n\n /**\n * @generated from field: optional float volume = 24;\n */\n volume: number;\n\n /**\n * @generated from field: optional bool isVolumeControlAvailable = 25;\n */\n isVolumeControlAvailable: boolean;\n\n /**\n * @generated from field: optional bool canAccessAppleMusic = 26;\n */\n canAccessAppleMusic: boolean;\n\n /**\n * @generated from field: optional bool canAccessiCloudMusicLibrary = 27;\n */\n canAccessiCloudMusicLibrary: boolean;\n\n /**\n * @generated from field: optional bool groupContainsGroupLeader = 28;\n */\n groupContainsGroupLeader: boolean;\n\n /**\n * @generated from field: optional bool supportsBufferedAirPlay = 29;\n */\n supportsBufferedAirPlay: boolean;\n\n /**\n * @generated from field: optional bool canPlayEncryptedProgressiveDownloadAssets = 30;\n */\n canPlayEncryptedProgressiveDownloadAssets: boolean;\n\n /**\n * @generated from field: optional bool canFetchMediaDataFromSender = 31;\n */\n canFetchMediaDataFromSender: boolean;\n\n /**\n * @generated from field: optional bool resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets = 32;\n */\n resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: boolean;\n\n /**\n * @generated from field: optional bool isAirPlayReceiverSessionActive = 33;\n */\n isAirPlayReceiverSessionActive: boolean;\n\n /**\n * @generated from field: optional string parentGroupIdentifier = 34;\n */\n parentGroupIdentifier: string;\n\n /**\n * @generated from field: optional bool parentGroupContainsDiscoverableLeader = 35;\n */\n parentGroupContainsDiscoverableLeader: boolean;\n\n /**\n * @generated from field: optional bool isAddedToHomeKit = 36;\n */\n isAddedToHomeKit: boolean;\n\n /**\n * @generated from field: optional int32 volumeCapabilities = 37;\n */\n volumeCapabilities: number;\n\n /**\n * @generated from field: optional string bluetoothID = 38;\n */\n bluetoothID: string;\n\n /**\n * @generated from field: optional bool supportsHAP = 39;\n */\n supportsHAP: boolean;\n\n /**\n * @generated from field: optional bool usingJSONProtocol = 40;\n */\n usingJSONProtocol: boolean;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor clusterCompositions = 41;\n */\n clusterCompositions: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: optional uint32 clusterType = 42;\n */\n clusterType: number;\n\n /**\n * @generated from field: optional string primaryUID = 43;\n */\n primaryUID: string;\n\n /**\n * @generated from field: optional uint32 configuredClusterSize = 44;\n */\n configuredClusterSize: number;\n\n /**\n * @generated from field: optional bool supportsRapportRemoteControlTransport = 45;\n */\n supportsRapportRemoteControlTransport: boolean;\n\n /**\n * @generated from field: optional string currentBluetoothListeningMode = 46;\n */\n currentBluetoothListeningMode: string;\n\n /**\n * @generated from field: repeated string availableBluetoothListeningModes = 47;\n */\n availableBluetoothListeningModes: string[];\n\n /**\n * @generated from field: repeated bool supportsMultiplayer = 48;\n */\n supportsMultiplayer: boolean[];\n\n /**\n * @generated from field: optional bool producesLowFidelityAudio = 49;\n */\n producesLowFidelityAudio: boolean;\n\n /**\n * @generated from field: optional int32 hostDeviceClass = 50;\n */\n hostDeviceClass: number;\n\n /**\n * @generated from field: optional string airPlayGroupID = 51;\n */\n airPlayGroupID: string;\n\n /**\n * @generated from field: optional bool supportsSharePlayHandoff = 52;\n */\n supportsSharePlayHandoff: boolean;\n\n /**\n * @generated from field: optional float distance = 53;\n */\n distance: number;\n\n /**\n * @generated from field: optional bool discoveredOnSameInfra = 54;\n */\n discoveredOnSameInfra: boolean;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor activatedClusterMembers = 55;\n */\n activatedClusterMembers: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: repeated bool pickable = 56;\n */\n pickable: boolean[];\n\n /**\n * @generated from field: optional int32 transportType = 57;\n */\n transportType: number;\n\n /**\n * @generated from field: optional string clusterID = 58;\n */\n clusterID: string;\n\n /**\n * @generated from field: optional bool isClusterLeader = 59;\n */\n isClusterLeader: boolean;\n\n /**\n * @generated from field: optional bool isAppleAccessory = 60;\n */\n isAppleAccessory: boolean;\n\n /**\n * @generated from field: optional string parentUniqueIdentifier = 61;\n */\n parentUniqueIdentifier: string;\n\n /**\n * @generated from field: optional string roomID = 62;\n */\n roomID: string;\n\n /**\n * @generated from field: optional string roomName = 63;\n */\n roomName: string;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor allClusterMembers = 64;\n */\n allClusterMembers: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: optional bool engageOnClusterActivate = 67;\n */\n engageOnClusterActivate: boolean;\n};\n\n/**\n * Describes the message AVOutputDeviceDescriptor.\n * Use `create(AVOutputDeviceDescriptorSchema)` to create a new message.\n */\nexport const AVOutputDeviceDescriptorSchema: GenMessage<AVOutputDeviceDescriptor> = /*@__PURE__*/\n messageDesc(file_UpdateOutputDeviceMessage, 1);\n\n/**\n * @generated from message UpdateOutputDeviceMessage\n */\nexport type UpdateOutputDeviceMessage = Message<\"UpdateOutputDeviceMessage\"> & {\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor outputDevices = 1;\n */\n outputDevices: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: optional string endpointUID = 2;\n */\n endpointUID: string;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor clusterAwareOutputDevices = 3;\n */\n clusterAwareOutputDevices: AVOutputDeviceDescriptor[];\n};\n\n/**\n * Describes the message UpdateOutputDeviceMessage.\n * Use `create(UpdateOutputDeviceMessageSchema)` to create a new message.\n */\nexport const UpdateOutputDeviceMessageSchema: GenMessage<UpdateOutputDeviceMessage> = /*@__PURE__*/\n messageDesc(file_UpdateOutputDeviceMessage, 2);\n\n/**\n * @generated from extension: optional UpdateOutputDeviceMessage updateOutputDeviceMessage = 69;\n */\nexport const updateOutputDeviceMessage: GenExtension<ProtocolMessage, UpdateOutputDeviceMessage> = /*@__PURE__*/\n extDesc(file_UpdateOutputDeviceMessage, 0);\n\n",
81
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdatePlayerPath.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdatePlayerPath.proto.\n */\nexport const file_UpdatePlayerPath: GenFile = /*@__PURE__*/\n fileDesc(\"ChZVcGRhdGVQbGF5ZXJQYXRoLnByb3RvIjYKE1VwZGF0ZVBsYXllck1lc3NhZ2USHwoKcGxheWVyUGF0aBgBIAEoCzILLlBsYXllclBhdGg6WAoTdXBkYXRlUGxheWVyTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg+IAEoCzIULlVwZGF0ZVBsYXllck1lc3NhZ2VSE3VwZGF0ZVBsYXllck1lc3NhZ2U\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message UpdatePlayerMessage\n */\nexport type UpdatePlayerMessage = Message<\"UpdatePlayerMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message UpdatePlayerMessage.\n * Use `create(UpdatePlayerMessageSchema)` to create a new message.\n */\nexport const UpdatePlayerMessageSchema: GenMessage<UpdatePlayerMessage> = /*@__PURE__*/\n messageDesc(file_UpdatePlayerPath, 0);\n\n/**\n * @generated from extension: optional UpdatePlayerMessage updatePlayerMessage = 62;\n */\nexport const updatePlayerMessage: GenExtension<ProtocolMessage, UpdatePlayerMessage> = /*@__PURE__*/\n extDesc(file_UpdatePlayerPath, 0);\n\n",
82
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VolumeControlAvailabilityMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VolumeControlAvailabilityMessage.proto.\n */\nexport const file_VolumeControlAvailabilityMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiZWb2x1bWVDb250cm9sQXZhaWxhYmlsaXR5TWVzc2FnZS5wcm90byJMChJWb2x1bWVDYXBhYmlsaXRpZXMiNgoERW51bRIICgROb25lEAASDAoIUmVsYXRpdmUQARIMCghBYnNvbHV0ZRACEggKBEJvdGgQAyJ4CiBWb2x1bWVDb250cm9sQXZhaWxhYmlsaXR5TWVzc2FnZRIeChZ2b2x1bWVDb250cm9sQXZhaWxhYmxlGAEgASgIEjQKEnZvbHVtZUNhcGFiaWxpdGllcxgCIAEoDjIYLlZvbHVtZUNhcGFiaWxpdGllcy5FbnVtOn8KIHZvbHVtZUNvbnRyb2xBdmFpbGFiaWxpdHlNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGBYgASgLMiEuVm9sdW1lQ29udHJvbEF2YWlsYWJpbGl0eU1lc3NhZ2VSIHZvbHVtZUNvbnRyb2xBdmFpbGFiaWxpdHlNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message VolumeCapabilities\n */\nexport type VolumeCapabilities = Message<\"VolumeCapabilities\"> & {\n};\n\n/**\n * Describes the message VolumeCapabilities.\n * Use `create(VolumeCapabilitiesSchema)` to create a new message.\n */\nexport const VolumeCapabilitiesSchema: GenMessage<VolumeCapabilities> = /*@__PURE__*/\n messageDesc(file_VolumeControlAvailabilityMessage, 0);\n\n/**\n * This is really a bitmap but protobuf has no type for that, so lets just add a \"Both\"\n * option since only two values exist anyway\n *\n * @generated from enum VolumeCapabilities.Enum\n */\nexport enum VolumeCapabilities_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Relative = 1;\n */\n Relative = 1,\n\n /**\n * @generated from enum value: Absolute = 2;\n */\n Absolute = 2,\n\n /**\n * @generated from enum value: Both = 3;\n */\n Both = 3,\n}\n\n/**\n * Describes the enum VolumeCapabilities.Enum.\n */\nexport const VolumeCapabilities_EnumSchema: GenEnum<VolumeCapabilities_Enum> = /*@__PURE__*/\n enumDesc(file_VolumeControlAvailabilityMessage, 0, 0);\n\n/**\n * @generated from message VolumeControlAvailabilityMessage\n */\nexport type VolumeControlAvailabilityMessage = Message<\"VolumeControlAvailabilityMessage\"> & {\n /**\n * @generated from field: optional bool volumeControlAvailable = 1;\n */\n volumeControlAvailable: boolean;\n\n /**\n * @generated from field: optional VolumeCapabilities.Enum volumeCapabilities = 2;\n */\n volumeCapabilities: VolumeCapabilities_Enum;\n};\n\n/**\n * Describes the message VolumeControlAvailabilityMessage.\n * Use `create(VolumeControlAvailabilityMessageSchema)` to create a new message.\n */\nexport const VolumeControlAvailabilityMessageSchema: GenMessage<VolumeControlAvailabilityMessage> = /*@__PURE__*/\n messageDesc(file_VolumeControlAvailabilityMessage, 1);\n\n/**\n * @generated from extension: optional VolumeControlAvailabilityMessage volumeControlAvailabilityMessage = 22;\n */\nexport const volumeControlAvailabilityMessage: GenExtension<ProtocolMessage, VolumeControlAvailabilityMessage> = /*@__PURE__*/\n extDesc(file_VolumeControlAvailabilityMessage, 0);\n\n",
83
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VolumeControlCapabilitiesDidChangeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { VolumeControlAvailabilityMessage } from \"./VolumeControlAvailabilityMessage_pb\";\nimport { file_VolumeControlAvailabilityMessage } from \"./VolumeControlAvailabilityMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VolumeControlCapabilitiesDidChangeMessage.proto.\n */\nexport const file_VolumeControlCapabilitiesDidChangeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ci9Wb2x1bWVDb250cm9sQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlTWVzc2FnZS5wcm90byKSAQopVm9sdW1lQ29udHJvbENhcGFiaWxpdGllc0RpZENoYW5nZU1lc3NhZ2USNwoMY2FwYWJpbGl0aWVzGAEgASgLMiEuVm9sdW1lQ29udHJvbEF2YWlsYWJpbGl0eU1lc3NhZ2USEwoLZW5kcG9pbnRVSUQYAyABKAkSFwoPb3V0cHV0RGV2aWNlVUlEGAQgASgJOpoBCil2b2x1bWVDb250cm9sQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhEIAEoCzIqLlZvbHVtZUNvbnRyb2xDYXBhYmlsaXRpZXNEaWRDaGFuZ2VNZXNzYWdlUil2b2x1bWVDb250cm9sQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlTWVzc2FnZQ\", [file_ProtocolMessage, file_VolumeControlAvailabilityMessage]);\n\n/**\n * @generated from message VolumeControlCapabilitiesDidChangeMessage\n */\nexport type VolumeControlCapabilitiesDidChangeMessage = Message<\"VolumeControlCapabilitiesDidChangeMessage\"> & {\n /**\n * @generated from field: optional VolumeControlAvailabilityMessage capabilities = 1;\n */\n capabilities?: VolumeControlAvailabilityMessage;\n\n /**\n * @generated from field: optional string endpointUID = 3;\n */\n endpointUID: string;\n\n /**\n * @generated from field: optional string outputDeviceUID = 4;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message VolumeControlCapabilitiesDidChangeMessage.\n * Use `create(VolumeControlCapabilitiesDidChangeMessageSchema)` to create a new message.\n */\nexport const VolumeControlCapabilitiesDidChangeMessageSchema: GenMessage<VolumeControlCapabilitiesDidChangeMessage> = /*@__PURE__*/\n messageDesc(file_VolumeControlCapabilitiesDidChangeMessage, 0);\n\n/**\n * @generated from extension: optional VolumeControlCapabilitiesDidChangeMessage volumeControlCapabilitiesDidChangeMessage = 68;\n */\nexport const volumeControlCapabilitiesDidChangeMessage: GenExtension<ProtocolMessage, VolumeControlCapabilitiesDidChangeMessage> = /*@__PURE__*/\n extDesc(file_VolumeControlCapabilitiesDidChangeMessage, 0);\n\n",
84
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VolumeDidChangeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VolumeDidChangeMessage.proto.\n */\nexport const file_VolumeDidChangeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxWb2x1bWVEaWRDaGFuZ2VNZXNzYWdlLnByb3RvIlYKFlZvbHVtZURpZENoYW5nZU1lc3NhZ2USDgoGdm9sdW1lGAEgASgCEhMKC2VuZHBvaW50VUlEGAIgASgJEhcKD291dHB1dERldmljZVVJRBgDIAEoCTphChZ2b2x1bWVEaWRDaGFuZ2VNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDggASgLMhcuVm9sdW1lRGlkQ2hhbmdlTWVzc2FnZVIWdm9sdW1lRGlkQ2hhbmdlTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message VolumeDidChangeMessage\n */\nexport type VolumeDidChangeMessage = Message<\"VolumeDidChangeMessage\"> & {\n /**\n * @generated from field: optional float volume = 1;\n */\n volume: number;\n\n /**\n * @generated from field: optional string endpointUID = 2;\n */\n endpointUID: string;\n\n /**\n * @generated from field: optional string outputDeviceUID = 3;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message VolumeDidChangeMessage.\n * Use `create(VolumeDidChangeMessageSchema)` to create a new message.\n */\nexport const VolumeDidChangeMessageSchema: GenMessage<VolumeDidChangeMessage> = /*@__PURE__*/\n messageDesc(file_VolumeDidChangeMessage, 0);\n\n/**\n * @generated from extension: optional VolumeDidChangeMessage volumeDidChangeMessage = 56;\n */\nexport const volumeDidChangeMessage: GenExtension<ProtocolMessage, VolumeDidChangeMessage> = /*@__PURE__*/\n extDesc(file_VolumeDidChangeMessage, 0);\n\n",
85
- "// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file WakeDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file WakeDeviceMessage.proto.\n */\nexport const file_WakeDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChdXYWtlRGV2aWNlTWVzc2FnZS5wcm90byITChFXYWtlRGV2aWNlTWVzc2FnZTpSChF3YWtlRGV2aWNlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgtIAEoCzISLldha2VEZXZpY2VNZXNzYWdlUhF3YWtlRGV2aWNlTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message WakeDeviceMessage\n */\nexport type WakeDeviceMessage = Message<\"WakeDeviceMessage\"> & {\n};\n\n/**\n * Describes the message WakeDeviceMessage.\n * Use `create(WakeDeviceMessageSchema)` to create a new message.\n */\nexport const WakeDeviceMessageSchema: GenMessage<WakeDeviceMessage> = /*@__PURE__*/\n messageDesc(file_WakeDeviceMessage, 0);\n\n/**\n * @generated from extension: optional WakeDeviceMessage wakeDeviceMessage = 45;\n */\nexport const wakeDeviceMessage: GenExtension<ProtocolMessage, WakeDeviceMessage> = /*@__PURE__*/\n extDesc(file_WakeDeviceMessage, 0);\n\n",
86
- "import { uint16ToBE, uuid } from '@basmilius/apple-common';\nimport { create, setExtension } from '@bufbuild/protobuf';\nimport * as Proto from '../proto';\n\nexport default class {\n clientUpdatesConfig(): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.CLIENT_UPDATES_CONFIG_MESSAGE);\n const message = create(Proto.ClientUpdatesConfigMessageSchema, {\n artworkUpdates: true,\n nowPlayingUpdates: true,\n volumeUpdates: true,\n keyboardUpdates: false,\n outputDeviceUpdates: true,\n Unknown1: false\n });\n\n setExtension(protocolMessage, Proto.clientUpdatesConfigMessage, message);\n\n return protocolMessage;\n }\n\n configureConnection(groupId: string): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.CONFIGURE_CONNECTION_MESSAGE);\n const message = create(Proto.ConfigureConnectionMessageSchema, {\n groupID: groupId\n });\n\n setExtension(protocolMessage, Proto.configureConnectionMessage, message);\n\n return protocolMessage;\n }\n\n deviceInfo(pairingId: Buffer): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.DEVICE_INFO_MESSAGE);\n const message = create(Proto.DeviceInfoMessageSchema, {\n uniqueIdentifier: pairingId.toString(),\n name: 'iPhone van Bas',\n localizedModelName: 'iPhone',\n systemBuildVersion: '23C5027f',\n applicationBundleIdentifier: 'com.apple.mediaremoted',\n protocolVersion: 1,\n lastSupportedMessageType: 139,\n supportsSystemPairing: true,\n allowsPairing: true,\n systemMediaApplication: 'com.apple.Music',\n supportsACL: true,\n supportsSharedQueue: true,\n sharedQueueVersion: 3,\n managedConfigDeviceID: 'c4:c1:7d:93:d2:13',\n deviceClass: Proto.DeviceClass_Enum.iPhone,\n logicalDeviceCount: 1,\n isProxyGroupPlayer: false,\n groupUID: uuid().toUpperCase(),\n isGroupLeader: true,\n isAirplayActive: false,\n systemPodcastApplication: 'com.apple.podcasts',\n senderDefaultGroupUID: uuid().toUpperCase(),\n clusterType: 0,\n isClusterAware: true,\n modelID: 'iPhone16,2',\n supportsMultiplayer: false,\n routingContextID: uuid().toUpperCase(),\n airPlayGroupID: uuid().toUpperCase(),\n systemBooksApplication: 'com.apple.iBooks',\n parentGroupContainsDiscoverableGroupLeader: 1,\n groupContainsDiscoverableGroupLeader: 1,\n lastKnownClusterType: 2,\n supportsOutputContextSync: true,\n computerName: 'iPhone van Bas',\n configuredClusterSize: 0\n // applicationBundleVersion: '344.28',\n // supportsExtendedMotion: true\n });\n\n setExtension(protocolMessage, Proto.deviceInfoMessage, message);\n\n return protocolMessage;\n }\n\n playbackQueueRequest(location: number, length: number, includeMetadata: boolean = true, includeLanguageOptions: boolean = true): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.PLAYBACK_QUEUE_REQUEST_MESSAGE);\n const message = create(Proto.PlaybackQueueRequestMessageSchema, {\n location,\n length,\n includeMetadata,\n includeLanguageOptions,\n artworkHeight: 600,\n artworkWidth: 600,\n includeInfo: true,\n includeLyrics: true,\n includeSections: true,\n returnContentItemAssetsInUserCompletion: true\n });\n\n setExtension(protocolMessage, Proto.playbackQueueRequestMessage, message);\n\n return protocolMessage;\n }\n\n protocol(type: Proto.ProtocolMessage_Type, errorCode: Proto.ErrorCode_Enum = Proto.ErrorCode_Enum.NoError): Proto.ProtocolMessage {\n return create(Proto.ProtocolMessageSchema, {\n type,\n errorCode,\n identifier: uuid().toUpperCase(),\n uniqueIdentifier: uuid().toUpperCase()\n });\n }\n\n sendButtonEvent(usagePage: number, usage: number, buttonDown: boolean): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SEND_BUTTON_EVENT_MESSAGE);\n const message = create(Proto.SendButtonEventMessageSchema, {\n usagePage,\n usage,\n buttonDown\n });\n\n setExtension(protocolMessage, Proto.sendButtonEventMessage, message);\n\n return protocolMessage;\n }\n\n sendCommand(command: Proto.Command, options?: Proto.CommandOptions): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SEND_COMMAND_MESSAGE);\n const message = create(Proto.SendCommandMessageSchema, {\n command,\n options\n });\n\n setExtension(protocolMessage, Proto.sendCommandMessage, message);\n\n return protocolMessage;\n }\n\n sendHIDEvent(usePage: number, usage: number, down: boolean): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SEND_HID_EVENT_MESSAGE);\n const message = create(Proto.SendHIDEventMessageSchema, {\n hidEventData: Buffer.concat([\n Buffer.from('438922cf08020000', 'hex'), // time\n Buffer.from('00000000000000000100000000000000020' + '00000200000000300000001000000000000', 'hex'),\n Buffer.concat([\n uint16ToBE(usePage),\n uint16ToBE(usage),\n uint16ToBE(down ? 1 : 0)\n ]), // data\n Buffer.from('0000000000000001000000', 'hex')\n ])\n });\n\n setExtension(protocolMessage, Proto.sendHIDEventMessage, message);\n\n return protocolMessage;\n }\n\n setConnectionState(state: Proto.SetConnectionStateMessage_ConnectionState = Proto.SetConnectionStateMessage_ConnectionState.Connected): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SET_CONNECTION_STATE_MESSAGE);\n const message = create(Proto.SetConnectionStateMessageSchema, {\n state\n });\n\n setExtension(protocolMessage, Proto.setConnectionStateMessage, message);\n\n return protocolMessage;\n }\n\n setVolume(volume: number): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SET_VOLUME_MESSAGE);\n const message = create(Proto.SetVolumeMessageSchema, {\n volume\n });\n\n setExtension(protocolMessage, Proto.setVolumeMessage, message);\n\n return protocolMessage;\n }\n\n wakeDevice(): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.WAKE_DEVICE_MESSAGE);\n const message = create(Proto.WakeDeviceMessageSchema, {});\n\n setExtension(protocolMessage, Proto.wakeDeviceMessage, message);\n\n return protocolMessage;\n }\n}\n",
87
- "import { Socket } from 'node:net';\nimport { BaseSocket, decryptChacha20, encryptChacha20, reporter } from '@basmilius/apple-common';\n\ntype EventMap = {\n close: [];\n connect: [];\n error: [Error];\n timeout: [];\n};\n\nexport default class AirPlayStream<TEventMap extends Record<string, any>> extends BaseSocket<EventMap & TEventMap> {\n get isConnected(): boolean {\n return this.#socket.readyState === 'open';\n }\n\n get isEncrypted(): boolean {\n return !!this.#readKey && !!this.#writeKey;\n }\n\n get socket(): Socket {\n return this.#socket;\n }\n\n get readKey(): Buffer {\n return this.#readKey;\n }\n\n get writeKey(): Buffer {\n return this.#writeKey;\n }\n\n readonly #socket: Socket;\n #buffer: Buffer = Buffer.alloc(0);\n #readCount: number;\n #readKey?: Buffer;\n #writeCount: number;\n #writeKey?: Buffer;\n\n constructor(address: string, port: number) {\n super(address, port);\n\n this.onClose = this.onClose.bind(this);\n this.onConnect = this.onConnect.bind(this);\n this.onData = this.onData.bind(this);\n this.onEnd = this.onEnd.bind(this);\n this.onError = this.onError.bind(this);\n this.onTimeout = this.onTimeout.bind(this);\n\n this.#socket = new Socket();\n this.#socket.on('close', this.onClose);\n this.#socket.on('connect', this.onConnect);\n this.#socket.on('data', this.onData);\n this.#socket.on('end', this.onEnd);\n this.#socket.on('error', this.onError);\n this.#socket.on('timeout', this.onTimeout);\n }\n\n async connect(): Promise<void> {\n reporter.net(`Connecting to ${this.address}:${this.port}...`);\n\n return await new Promise(resolve => {\n this.#socket.connect({\n host: this.address,\n port: this.port,\n keepAlive: true\n }, resolve);\n });\n }\n\n async disconnect(): Promise<void> {\n this.#socket.destroy();\n }\n\n async enableEncryption(readKey: Buffer, writeKey: Buffer): Promise<void> {\n this.#readKey = readKey;\n this.#writeKey = writeKey;\n this.#readCount = 0;\n this.#writeCount = 0;\n }\n\n async decrypt(data: Buffer): Promise<Buffer> {\n if (this.#buffer) {\n data = Buffer.concat([this.#buffer, data]);\n this.#buffer = undefined;\n }\n\n let result = Buffer.alloc(0);\n let offset = 0;\n\n while (offset + 2 <= data.length) {\n const length = data.readUInt16LE(offset);\n\n const totalChunkLength = 2 + length + 16;\n\n if (offset + totalChunkLength > data.length) {\n this.#buffer = data.subarray(offset);\n break;\n }\n\n const aad = data.subarray(offset, offset + 2);\n const ciphertext = data.subarray(offset + 2, offset + 2 + length);\n const authTag = data.subarray(offset + 2 + length, offset + 2 + length + 16);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#readCount++), 4);\n\n const plaintext = decryptChacha20(\n this.#readKey,\n nonce,\n aad,\n ciphertext,\n authTag\n );\n\n result = Buffer.concat([result, plaintext]);\n offset += totalChunkLength;\n }\n\n return result;\n }\n\n async encrypt(data: Buffer): Promise<Buffer> {\n const total = data.length;\n let result = Buffer.alloc(0);\n\n for (let offset = 0; offset < total;) {\n const length = Math.min(total - offset, 0x400);\n const leLength = Buffer.alloc(2);\n leLength.writeUInt16LE(length, 0);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#writeCount++), 4);\n\n const encrypted = encryptChacha20(\n this.#writeKey,\n nonce,\n leLength,\n data.subarray(offset, offset + length)\n );\n\n offset += length;\n result = Buffer.concat([result, leLength, encrypted.ciphertext, encrypted.authTag]);\n }\n\n return result;\n }\n\n async onClose(): Promise<void> {\n await super.onClose();\n\n reporter.net(`Connection closed from ${this.address}:${this.port}`);\n }\n\n async onConnect(): Promise<void> {\n await super.onConnect();\n\n reporter.net(`Connected to ${this.address}:${this.port}`);\n }\n\n async onData(buffer: Buffer): Promise<void> {\n reporter.raw('Data frame received', buffer.toString());\n }\n\n async onEnd(): Promise<void> {\n reporter.net('Connection ended');\n }\n\n async onError(err: Error): Promise<void> {\n await super.onError(err);\n\n reporter.error('Error received', err);\n }\n}\n",
88
- "import { hkdf, parseBinaryPlist, reporter } from '@basmilius/apple-common';\nimport type { RTSPMethod } from './types';\nimport { makeHttpRequest } from './utils';\nimport AirPlayStream from './stream';\n\nexport default class AirPlayEventStream extends AirPlayStream<never> {\n #buffer: Buffer = Buffer.alloc(0);\n\n async respond(response: Response): Promise<void> {\n const body = Buffer.from(await response.arrayBuffer());\n\n const header = [];\n header.push(`RTSP/1.0 ${response.status} ${response.statusText}`);\n\n for (const [name, value] of Object.entries(response.headers)) {\n header.push(`${name}: ${value}`);\n }\n\n if (body.byteLength > 0) {\n header.push(`Content-Length: ${body.byteLength}`);\n } else {\n header.push('Content-Length: 0');\n }\n\n header.push('');\n header.push('');\n\n const headers = header.join('\\r\\n');\n let data: Buffer;\n\n if (response.body) {\n data = Buffer.concat([\n Buffer.from(headers),\n body\n ]);\n } else {\n data = Buffer.from(headers);\n }\n\n if (this.isEncrypted) {\n data = await this.encrypt(data);\n }\n\n this.socket.write(data);\n }\n\n async setup(sharedSecret: Buffer): Promise<void> {\n const readKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from('Events-Salt'),\n info: Buffer.from('Events-Read-Encryption-Key')\n });\n\n const writeKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from('Events-Salt'),\n info: Buffer.from('Events-Write-Encryption-Key')\n });\n\n await this.enableEncryption(writeKey, readKey);\n }\n\n async onData(buffer: Buffer): Promise<void> {\n this.#buffer = Buffer.concat([this.#buffer, buffer]);\n\n if (this.isEncrypted) {\n this.#buffer = await this.decrypt(this.#buffer);\n }\n\n // reporter.raw('Event stream received data', this.#buffer.toString());\n\n while (this.#buffer.byteLength > 0) {\n const result = makeHttpRequest(this.#buffer);\n\n if (result === null) {\n return;\n }\n\n this.#buffer = this.#buffer.subarray(result.requestLength);\n\n await this.#handle(result.method, result.path, result.headers, result.body);\n }\n }\n\n async #handle(method: RTSPMethod, path: string, headers: Record<string, string>, body: Buffer): Promise<void> {\n const key = `${method} ${path}`;\n\n switch (key) {\n case 'POST /command':\n const data = parseBinaryPlist(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength) as any) as any;\n\n reporter.info('Received event stream request.', data);\n\n const response = new Response(null, {\n status: 200,\n statusText: 'OK',\n headers: {\n 'Audio-Latency': '0',\n 'CSeq': (headers['CSeq'] ?? 0).toString()\n }\n });\n\n await this.respond(response);\n break;\n\n default:\n reporter.warn('No handler for url', key);\n break;\n }\n }\n}\n",
89
- "import { type AccessoryCredentials, type AccessoryKeys, AccessoryPair } from '@basmilius/apple-common';\nimport type AirPlay from './protocol';\nimport type AirPlayRTSP from './rtsp';\n\nexport default class AirPlayPairing {\n get internal(): AccessoryPair {\n return this.#internal;\n }\n\n get rtsp(): AirPlayRTSP {\n return this.#protocol.rtsp;\n }\n\n readonly #internal: AccessoryPair;\n readonly #protocol: AirPlay;\n #hkp: 3 | 4;\n\n constructor(protocol: AirPlay) {\n this.#internal = new AccessoryPair(this.#request.bind(this));\n this.#protocol = protocol;\n }\n\n async start(): Promise<void> {\n await this.#internal.start();\n }\n\n async pin(askPin: () => Promise<string>): Promise<AccessoryCredentials> {\n this.#hkp = 3;\n\n await this.#pinStart();\n\n return this.#internal.pin(askPin);\n }\n\n async pinStart(): Promise<void> {\n this.#hkp = 3;\n\n await this.#pinStart();\n }\n\n async transient(): Promise<AccessoryKeys> {\n this.#hkp = 4;\n\n await this.#pinStart();\n\n return this.#internal.transient();\n }\n\n async #pinStart(): Promise<void> {\n const response = await this.rtsp.post('/pair-pin-start', null, {\n 'Content-Type': 'application/octet-stream',\n 'X-Apple-HKP': this.#hkp.toString()\n });\n\n if (response.status !== 200) {\n throw new Error('Cannot start pairing session.');\n }\n }\n\n async #request(_: 'm1' | 'm3' | 'm5', data: Buffer): Promise<Buffer> {\n const response = await this.rtsp.post('/pair-setup', data, {\n 'Content-Type': 'application/octet-stream',\n 'X-Apple-HKP': this.#hkp.toString()\n });\n\n return Buffer.from(await response.arrayBuffer());\n }\n}\n",
90
- "import { HTTP_TIMEOUT, reporter } from '@basmilius/apple-common';\nimport type { RTSPMethod } from './types';\nimport { makeHttpHeader, makeHttpResponse } from './utils';\nimport AirPlayStream from './stream';\n\nexport default class AirPlayRTSP extends AirPlayStream<{}> {\n get activeRemote(): string {\n return this.#activeRemote;\n }\n\n get dacpId(): string {\n return this.#dacpId;\n }\n\n get sessionId(): string {\n return this.#sessionId;\n }\n\n readonly #activeRemote: string;\n readonly #dacpId: string;\n readonly #sessionId: string;\n #buffer: Buffer = Buffer.alloc(0);\n #cseq: number = 0;\n #requesting: boolean = false;\n #reject: Function;\n #resolve: Function;\n\n constructor(address: string, port: number) {\n super(address, port);\n\n this.#activeRemote = Math.floor(Math.random() * 2 ** 32).toString(10);\n this.#dacpId = Math.floor(Math.random() * 2 ** 64).toString(16).toUpperCase();\n this.#sessionId = Math.floor(Math.random() * 2 ** 32).toString(10);\n }\n\n async get(path: string, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('GET', path, null, headers);\n }\n\n async post(path: string, body: Buffer | string | null = null, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('POST', path, body, headers);\n }\n\n async record(path: string, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('RECORD', path, null, headers);\n }\n\n async setup(path: string, body: Buffer | string | null = null, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('SETUP', path, body, headers);\n }\n\n async onClose(): Promise<void> {\n await super.onClose();\n await this.#handle(undefined, new Error('Connection closed.'));\n }\n\n async onData(buffer: Buffer): Promise<void> {\n this.#buffer = Buffer.concat([this.#buffer, buffer]);\n\n if (this.isEncrypted) {\n this.#buffer = await this.decrypt(this.#buffer);\n }\n\n while (this.#buffer.byteLength > 0) {\n const result = makeHttpResponse(this.#buffer);\n\n if (result === null) {\n return;\n }\n\n this.#buffer = this.#buffer.subarray(result.responseLength);\n\n await this.#handle(result.response, undefined);\n }\n }\n\n async onError(err: Error): Promise<void> {\n await super.onError(err);\n await this.#handle(undefined, err);\n }\n\n async onTimeout(): Promise<void> {\n await super.onTimeout();\n await this.#handle(undefined, new Error('Request timed out.'));\n }\n\n async #handle(data: unknown, err?: Error): Promise<void> {\n if (err) {\n this.#reject?.(err);\n } else {\n this.#resolve?.(data);\n }\n\n this.#reject = undefined;\n this.#resolve = undefined;\n this.#requesting = false;\n }\n\n async #request(method: RTSPMethod, path: string, body: Buffer | string | null, headers: HeadersInit): Promise<Response> {\n if (!this.isConnected) {\n return Promise.reject(new Error('Accessory not connected.'));\n }\n\n if (this.#requesting) {\n return Promise.reject(new Error('Another request is currently being made.'));\n }\n\n this.#requesting = true;\n\n headers['Active-Remote'] = this.activeRemote;\n headers['Client-Instance'] = this.dacpId;\n headers['DACP-ID'] = this.dacpId;\n\n const cseq = this.#cseq++;\n let data: Buffer;\n\n if (body) {\n headers['Content-Length'] = Buffer.byteLength(body).toString();\n\n data = Buffer.concat([\n Buffer.from(makeHttpHeader(method, path, headers, cseq)),\n Buffer.from(body)\n ]);\n } else {\n headers['Content-Length'] = '0';\n\n data = Buffer.from(makeHttpHeader(method, path, headers, cseq));\n }\n\n reporter.net('[rtsp]', method, path, `cseq = ${cseq}`);\n\n if (this.isEncrypted) {\n data = await this.encrypt(data);\n }\n\n return new Promise(async (resolve, reject) => {\n let timer: any;\n\n this.#reject = (reason: Error): void => {\n reject(reason);\n clearTimeout(timer);\n };\n\n this.#resolve = (response: Response): void => {\n resolve(response);\n clearTimeout(timer);\n };\n\n timer = setTimeout(() => reject(new Error('Request timed out')), HTTP_TIMEOUT);\n\n this.socket.write(data);\n });\n }\n}\n",
91
- "import { type AccessoryCredentials, type AccessoryKeys, AccessoryVerify, hkdf } from '@basmilius/apple-common';\nimport type AirPlay from './protocol';\nimport type AirPlayRTSP from './rtsp';\n\nexport default class AirPlayVerify {\n get rtsp(): AirPlayRTSP {\n return this.#protocol.rtsp;\n }\n\n readonly #internal: AccessoryVerify;\n readonly #protocol: AirPlay;\n\n constructor(protocol: AirPlay) {\n this.#internal = new AccessoryVerify(this.#request.bind(this));\n this.#protocol = protocol;\n }\n\n async start(credentials: AccessoryCredentials): Promise<AccessoryKeys> {\n const keys = await this.#internal.start(credentials);\n\n const accessoryToControllerKey = hkdf({\n hash: 'sha512',\n key: keys.sharedSecret,\n length: 32,\n salt: Buffer.from('Control-Salt'),\n info: Buffer.from('Control-Read-Encryption-Key')\n });\n\n const controllerToAccessoryKey = hkdf({\n hash: 'sha512',\n key: keys.sharedSecret,\n length: 32,\n salt: Buffer.from('Control-Salt'),\n info: Buffer.from('Control-Write-Encryption-Key')\n });\n\n return {\n accessoryToControllerKey,\n controllerToAccessoryKey,\n pairingId: keys.pairingId,\n sharedSecret: keys.sharedSecret\n };\n }\n\n async #request(_: 'm1' | 'm3' | 'm5', data: Buffer): Promise<Buffer> {\n const response = await this.rtsp.post('/pair-verify', data, {\n 'Content-Type': 'application/octet-stream',\n 'X-Apple-HKP': '3'\n });\n\n return Buffer.from(await response.arrayBuffer());\n }\n}\n"
92
- ],
93
- "mappings": "iIAAA,oBAAS,aAAW,eAAQ,mBAAU,iCCAtC,wBAA+B,uBAAe,eAAkB,2BAAU,WAAoC,iCCA9G,sBAAS,qBAGF,SAAS,EAAc,CAAC,EAAoB,EAAc,EAAsB,EAAsB,CACzG,IAAM,EAAQ,CAAC,EACf,EAAM,KAAK,GAAG,KAAU,YAAe,EACvC,EAAM,KAAK,SAAS,GAAM,EAC1B,EAAM,KAAK,4BAA4B,EACvC,EAAM,KAAK,4BAA4B,EACvC,EAAM,KAAK,sBAAsB,EAEjC,QAAY,EAAM,KAAU,OAAO,QAAQ,CAAO,EAC9C,EAAM,KAAK,GAAG,MAAS,GAAO,EAMlC,OAHA,EAAM,KAAK,EAAE,EACb,EAAM,KAAK,EAAE,EAEN,EAAM,KAAK;AAAA,CAAM,EAGrB,SAAS,EAAe,CAAC,EAAoC,CAChE,IAAM,EAAe,EAAO,QAAQ;AAAA;AAAA,CAAU,GACvC,UAAS,SAAQ,QAAQ,GAAoB,EAAO,SAAS,EAAG,CAAY,CAAC,EAEhF,EAAgB,EAAQ,kBAAoB,OAAO,EAAQ,iBAAiB,EAAI,EAEpF,GAAI,MAAM,CAAa,EACnB,EAAgB,EAGpB,IAAM,EAAgB,EAAe,EAAI,EAEzC,GAAI,EAAO,WAAa,EACpB,OAAO,KAGX,IAAM,EAAO,EAAO,SAAS,EAAe,EAAG,CAAa,EAE5D,MAAO,CACH,UACA,SACA,OACA,OACA,eACJ,EAGG,SAAS,EAAgB,CAAC,EAAqC,CAClE,IAAM,EAAe,EAAO,QAAQ;AAAA;AAAA,CAAU,GACvC,UAAS,SAAQ,cAAc,GAAqB,EAAO,SAAS,EAAG,CAAY,CAAC,EAEvF,EAAgB,EAAQ,kBAAoB,OAAO,EAAQ,iBAAiB,EAAI,EAEpF,GAAI,MAAM,CAAa,EACnB,EAAgB,EAGpB,IAAM,EAAiB,EAAe,EAAI,EAG1C,GAAI,EAAO,WAAa,EACpB,OAAO,KAGX,IAAM,EAAO,EAAO,SAAS,EAAe,EAAG,CAAc,EAO7D,MAAO,CACH,SAPa,IAAI,SAAS,EAAM,CAChC,SACA,aACA,SACJ,CAAC,EAIG,gBACJ,EAGG,SAAS,EAAW,EAAW,CAClC,OAAO,GAAY,CAAC,EAAE,aAAa,CAAC,EAGjC,SAAS,EAAW,EAAW,CAClC,OAAO,GAAY,CAAC,EAAE,gBAAgB,CAAC,EAG3C,SAAS,EAAY,CAAC,EAAyC,CAC3D,IAAM,EAAkC,CAAC,EAEzC,QAAS,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACnC,IAAM,EAAQ,EAAM,GAAG,QAAQ,GAAG,EAElC,GAAI,GAAS,EACT,SAGJ,IAAM,EAAO,EAAM,GAAG,UAAU,EAAG,CAAK,EAAE,KAAK,EAC/C,EAAQ,GAAQ,EAAM,GAAG,UAAU,EAAQ,CAAC,EAAE,KAAK,EAGvD,OAAO,EAGX,SAAS,EAAmB,CAAC,EAAmC,CAC5D,IAAM,EAAQ,EAAO,SAAS,MAAM,EAAE,MAAM;AAAA,CAAM,EAE5C,EAAa,EAAM,GAAG,MAAM,8BAA8B,EAC1D,EAAS,EAAW,GACpB,EAAO,EAAW,GAGxB,MAAO,CACH,QAHoC,GAAa,EAAM,MAAM,CAAC,CAAC,EAI/D,SACA,MACJ,EAGJ,SAAS,EAAoB,CAAC,EAAoC,CAC9D,IAAM,EAAQ,EAAO,SAAS,MAAM,EAAE,MAAM;AAAA,CAAM,EAE5C,EAAY,EAAM,GAAG,MAAM,oCAAoC,EAC/D,EAAS,OAAO,EAAU,EAAE,EAC5B,EAAa,EAAU,GAG7B,MAAO,CACH,QAHoC,GAAa,EAAM,MAAM,CAAC,CAAC,EAI/D,SACA,YACJ,EClIJ,0BAAS,sBAAiB,WAAiB,uBAAM,eAAkB,0BAAU,iCAC7E,qBAAS,mBAAY,cAAc,2oVCInC,kBAAS,eAAS,kBAAU,sCCA5B,mBAAS,eAAU,kBAAU,sCAMtB,IAAM,EACX,GAAS,qlPAAqlP,EAYnlP,GACX,GAAY,EAAsB,CAAC,EAKzB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,iBAAe,GAAf,eAKA,qBAAmB,GAAnB,mBAKA,0BAAwB,GAAxB,wBAKA,uBAAqB,GAArB,qBAKA,uBAAqB,GAArB,qBAKA,yBAAuB,GAAvB,uBAKA,2BAAyB,GAAzB,yBAKA,iCAA+B,GAA/B,+BAKA,+BAA6B,GAA7B,6BAKA,uCAAqC,IAArC,qCAKA,+CAA6C,IAA7C,6CAKA,kEAAgE,IAAhE,gEAKA,mDAAiD,IAAjD,iDAKA,yDAAuD,IAAvD,uDAKA,2DAAyD,IAAzD,yDAKA,sDAAoD,IAApD,oDAOA,iDAA+C,IAA/C,+CAOA,4BAA0B,IAA1B,0BAKA,qCAAmC,IAAnC,mCAKA,yBAAuB,IAAvB,uBAKA,mCAAiC,IAAjC,iCAKA,qDAAmD,IAAnD,mDAKA,sBAAoB,IAApB,oBAKA,yBAAuB,IAAvB,uBAKA,+CAA6C,IAA7C,6CAKA,yBAAuB,IAAvB,uBAKA,2CAAyC,IAAzC,yCAKA,2DAAyD,IAAzD,yDAKA,6CAA2C,IAA3C,2CAKA,wCAAsC,IAAtC,sCAKA,gCAA8B,IAA9B,8BAKA,uCAAqC,IAArC,qCAKA,mDAAiD,IAAjD,iDAKA,yEAAuE,IAAvE,uEAKA,6CAA2C,IAA3C,2CAKA,iFAA+E,IAA/E,+EAKA,qFAAmF,IAAnF,mFAKA,mCAAiC,IAAjC,iCAKA,qCAAmC,IAAnC,mCAKA,kCAAgC,KAAhC,gCAKA,iCAA+B,KAA/B,+BAKA,oDAAkD,KAAlD,kDAKA,qCAAmC,KAAnC,mCAKA,6BAA2B,KAA3B,2BAKA,6BAA2B,KAA3B,2BAKA,6CAA2C,KAA3C,2CAKA,qDAAmD,KAAnD,mDAKA,6CAA2C,KAA3C,2CAKA,yCAAuC,KAAvC,uCAKA,yBAAuB,KAAvB,uBAKA,gEAA8D,KAA9D,8DAKA,iEAA+D,KAA/D,+DAKA,0BAAwB,KAAxB,wBAKA,mCAAiC,KAAjC,iCAKA,4BAA0B,KAA1B,0BAKA,8BAA4B,KAA5B,4BAKA,6DAA2D,KAA3D,2DAKA,wEAAsE,KAAtE,sEAKA,oEAAkE,KAAlE,kEAKA,uDAAqD,KAArD,qDAKA,sBAAoB,KAApB,sBAzTU,SA+TL,IAAM,GACX,GAAS,EAAsB,EAAG,CAAC,EAgDxB,EACX,GAAY,EAAsB,CAAC,EAKzB,IAAL,CAAK,IAAL,CAIL,oBAAkB,GAAlB,kBAKA,yBAAuB,GAAvB,uBAKA,gCAA8B,GAA9B,8BAKA,sBAAoB,GAApB,oBAKA,sBAAoB,GAApB,oBAKA,wBAAsB,GAAtB,sBAKA,gCAA8B,GAA9B,8BAKA,uCAAqC,GAArC,qCAKA,2BAAyB,GAAzB,yBAKA,4BAA0B,GAA1B,0BAKA,qCAAmC,IAAnC,mCAKA,yBAAuB,IAAvB,uBAKA,+CAA6C,IAA7C,6CAKA,wBAAsB,IAAtB,sBAKA,kCAAgC,IAAhC,gCAKA,wCAAsC,IAAtC,sCAKA,4BAA0B,IAA1B,0BAKA,qCAAmC,IAAnC,mCAKA,8CAA4C,IAA5C,4CAKA,uCAAqC,IAArC,qCAKA,gDAA8C,IAA9C,8CAKA,qBAAmB,IAAnB,mBAKA,iCAA+B,IAA/B,+BAKA,uBAAqB,IAArB,qBAKA,oCAAkC,IAAlC,kCAKA,6CAA2C,IAA3C,2CAKA,wCAAsC,IAAtC,sCAKA,iDAA+C,IAA/C,+CAKA,gCAA8B,IAA9B,8BAKA,6BAA2B,IAA3B,2BAKA,mCAAiC,IAAjC,iCAKA,wBAAsB,IAAtB,sBAKA,2BAAyB,IAAzB,yBAKA,uCAAqC,IAArC,qCAKA,4BAA0B,IAA1B,0BAKA,+BAA6B,IAA7B,6BAKA,iCAA+B,IAA/B,+BAKA,8BAA4B,IAA5B,4BAKA,4BAA0B,IAA1B,0BAKA,wBAAsB,IAAtB,sBAKA,oBAAkB,IAAlB,kBAKA,4CAA0C,IAA1C,0CAKA,sBAAoB,IAApB,oBAKA,mCAAiC,IAAjC,iCAKA,mCAAiC,IAAjC,iCAKA,0CAAwC,IAAxC,wCAKA,uBAAqB,IAArB,qBAKA,8BAA4B,IAA5B,4BAKA,uBAAqB,IAArB,qBAKA,8BAA4B,IAA5B,4BAKA,0BAAwB,IAAxB,wBAKA,0BAAwB,IAAxB,wBAKA,0BAAwB,IAAxB,wBAKA,gCAA8B,IAA9B,8BAKA,wCAAsC,IAAtC,sCAKA,0BAAwB,IAAxB,wBAKA,2CAAyC,IAAzC,yCAKA,oDAAkD,IAAlD,kDAKA,+CAA6C,IAA7C,6CAKA,4CAA0C,IAA1C,0CAKA,mDAAiD,IAAjD,iDAKA,mDAAiD,IAAjD,iDAKA,iCAA+B,IAA/B,+BAKA,kCAAgC,IAAhC,gCAKA,8BAA4B,IAA5B,4BAKA,0CAAwC,IAAxC,wCAOA,mCAAiC,IAAjC,iCAKA,qCAAmC,IAAnC,mCAKA,sCAAoC,IAApC,oCAKA,2CAAyC,IAAzC,yCAKA,6CAA2C,IAA3C,2CAKA,8CAA4C,IAA5C,4CAKA,2CAAyC,IAAzC,yCAKA,yCAAuC,IAAvC,uCAKA,0CAAwC,IAAxC,wCAKA,+BAA6B,KAA7B,6BAKA,8BAA4B,KAA5B,4BAKA,6BAA2B,KAA3B,2BAKA,qCAAmC,KAAnC,mCAKA,qCAAmC,KAAnC,mCAKA,uBAAqB,KAArB,qBAKA,gCAA8B,KAA9B,8BAKA,iCAA+B,KAA/B,iCAhaU,SAsaL,IAAM,GACX,GAAS,EAAsB,EAAG,CAAC,ECtzBrC,mBAAS,kBAAU,sCCAnB,mBAAS,eAAU,kBAAU,sCCA7B,mBAAS,cAAU,eAAS,kBAAU,sCCAtC,mBAAS,cAAU,kBAAU,qCAMtB,IAAM,EACX,GAAS,y+BAAy+B,EAYv+B,GACX,EAAY,EAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,QAAM,GAAN,MAKA,QAAM,GAAN,MAKA,QAAM,GAAN,QAnBU,SAyBL,IAAM,GACX,EAAS,EAAa,EAAG,CAAC,EAYf,GACX,EAAY,EAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,QAAM,GAAN,MAKA,WAAS,GAAT,SAKA,UAAQ,GAAR,UAnBU,SAyBL,IAAM,GACX,EAAS,EAAa,EAAG,CAAC,EAYf,GACX,EAAY,EAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,WAAS,GAAT,SAKA,SAAO,GAAP,OAKA,SAAO,GAAP,OAKA,YAAU,GAAV,UAKA,UAAQ,GAAR,QAKA,UAAQ,GAAR,QAKA,cAAY,GAAZ,YAKA,WAAS,GAAT,SAKA,QAAM,GAAN,QAjDU,SAuDL,IAAM,GACX,EAAS,EAAa,EAAG,CAAC,EAYf,GACX,EAAY,EAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,YAAU,GAAV,UAKA,cAAY,GAAZ,YAKA,YAAU,GAAV,UAKA,YAAU,GAAV,UAKA,UAAQ,GAAR,UA7BU,SAmCL,IAAM,GACX,EAAS,EAAa,EAAG,CAAC,EAYf,GACX,EAAY,EAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,YAAU,GAAV,UAKA,eAAa,GAAb,aAKA,YAAU,GAAV,UAKA,aAAW,GAAX,WAKA,YAAU,GAAV,UAKA,QAAM,GAAN,MAKA,gBAAc,GAAd,cAKA,SAAO,GAAP,OAKA,cAAY,GAAZ,YAKA,UAAQ,IAAR,QAKA,OAAK,IAAL,KAKA,YAAU,IAAV,UAKA,YAAU,IAAV,UAKA,YAAU,IAAV,UAKA,YAAU,IAAV,UAKA,cAAY,IAAZ,YAKA,YAAU,IAAV,YAzFU,SA+FL,IAAM,GACX,EAAS,EAAa,EAAG,CAAC,EAYf,GACX,EAAY,EAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,YAAU,GAAV,UAKA,WAAS,GAAT,SAKA,YAAU,GAAV,UAKA,gBAAc,GAAd,cAKA,YAAU,GAAV,YA7BU,SAmCL,IAAM,GACX,EAAS,EAAa,EAAG,CAAC,ED7XrB,IAAM,EACX,GAAS,8mEAA+mE,CAAC,EAAsB,CAAW,CAAC,EAYhpE,GACX,GAAY,EAAwB,CAAC,EAK3B,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,SAAO,GAAP,SATU,SAeL,IAAM,GACX,GAAS,EAAwB,EAAG,CAAC,EA2R1B,GACX,GAAY,EAAwB,CAAC,EAK1B,EACX,GAAQ,EAAwB,CAAC,EDvU5B,IAAM,GACX,GAAS,kRAAmR,CAAC,CAAsB,CAAC,EAoCzS,GACX,GAAY,GAAa,CAAC,EAKhB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,UAAQ,GAAR,QAKA,WAAS,GAAT,WAdU,SAoBL,IAAM,GACX,GAAS,GAAa,EAAG,CAAC,EGxE5B,mBAAS,kBAAU,sCAMZ,IAAM,EACX,GAAS,4VAA4V,EAgD1V,GACX,GAAY,EAAuB,CAAC,ECxDtC,mBAAS,kBAAU,sCAMZ,IAAM,GACX,GAAS,6QAA6Q,EA8C3Q,GACX,GAAY,GAAuB,CAAC,EL1C/B,IAAM,EACX,GAAS,6KAA8K,CAAC,GAAa,EAAuB,EAAqB,CAAC,EA0BvO,GACX,GAAY,EAAiB,CAAC,EF9BzB,IAAM,GACX,GAAS,8OAA+O,CAAC,EAAsB,CAAe,CAAC,EAqBpR,GACX,GAAY,GAAuB,CAAC,EAKzB,GACX,GAAQ,GAAuB,CAAC,EQvClC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,6PAA8P,CAAC,CAAoB,CAAC,EAgBlR,GACX,GAAY,GAA+B,CAAC,EAKjC,GACX,GAAQ,GAA+B,CAAC,EChC1C,mBAAS,kBAAU,sCAMZ,IAAM,EACX,GAAS,0HAA0H,EAgBxH,GACX,GAAY,EAAiC,CAAC,ECxBhD,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,mbAAob,CAAC,CAAoB,CAAC,EAyCxc,GACX,GAAY,GAAiC,CAAC,EAKnC,GACX,GAAQ,GAAiC,CAAC,ECzD5C,mBAAS,eAAU,kBAAU,sCAQtB,IAAM,EACX,GAAS,2vGAA4vG,CAAC,CAAW,CAAC,EAYvwG,GACX,GAAY,EAAkB,CAAC,EAKrB,IAAL,CAAK,IAAL,CAIL,gBAAc,GAAd,cAKA,SAAO,GAAP,OAKA,UAAQ,GAAR,QAKA,aAAW,GAAX,aAnBU,SAyBL,IAAM,GACX,GAAS,EAAkB,EAAG,CAAC,EAYpB,GACX,GAAY,EAAkB,CAAC,EAKrB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,eAAa,GAAb,aAKA,qBAAmB,GAAnB,qBAdU,SAoBL,IAAM,GACX,GAAS,EAAkB,EAAG,CAAC,EA0BpB,GACX,GAAY,EAAkB,CAAC,EA4JpB,GACX,GAAY,EAAkB,CAAC,EAKrB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,SAAO,GAAP,OAKA,UAAQ,GAAR,QAKA,oBAAkB,GAAlB,kBAKA,SAAO,GAAP,OAKA,cAAY,GAAZ,YAKA,kBAAgB,GAAhB,gBAKA,uBAAqB,GAArB,qBAKA,sBAAoB,GAApB,oBAKA,qBAAmB,GAAnB,mBAKA,mBAAiB,IAAjB,iBAKA,gBAAc,IAAd,cAKA,cAAY,IAAZ,YAKA,oBAAkB,IAAlB,kBAKA,yBAAuB,IAAvB,uBAKA,oBAAkB,IAAlB,kBAKA,yBAAuB,IAAvB,uBAKA,gBAAc,IAAd,cAKA,iBAAe,IAAf,eAKA,uBAAqB,IAArB,qBAKA,cAAY,IAAZ,YAKA,cAAY,IAAZ,YAKA,iBAAe,IAAf,eAKA,kBAAgB,IAAhB,gBAKA,2BAAyB,IAAzB,yBAKA,qBAAmB,IAAnB,mBAKA,sBAAoB,IAApB,oBAKA,yBAAuB,IAAvB,uBAKA,0BAAwB,IAAxB,wBAKA,gBAAc,IAAd,cAKA,oBAAkB,IAAlB,kBAKA,cAAY,IAAZ,YAKA,kBAAgB,IAAhB,gBAKA,iBAAe,IAAf,eAKA,qBAAmB,IAAnB,mBAKA,aAAW,IAAX,WAKA,uBAAqB,IAArB,qBAKA,4BAA0B,IAA1B,0BAKA,kBAAgB,IAAhB,gBAKA,sBAAoB,IAApB,oBAKA,yBAAuB,IAAvB,uBAKA,qBAAmB,IAAnB,mBAKA,+BAA6B,IAA7B,6BAKA,uBAAqB,IAArB,qBAKA,qBAAmB,IAAnB,mBAKA,4BAA0B,IAA1B,0BAKA,yBAAuB,IAAvB,uBAKA,4BAA0B,IAA1B,0BAKA,4BAA0B,IAA1B,0BAKA,uBAAqB,IAArB,qBAKA,uBAAqB,IAArB,qBAKA,6BAA2B,IAA3B,2BAKA,kCAAgC,IAAhC,gCAKA,2BAAyB,IAAzB,yBAKA,cAAY,IAAZ,YAKA,yBAAuB,KAAvB,yBAvRU,SA6RL,IAAM,GACX,GAAS,EAAkB,CAAC,ECvjB9B,mBAAS,kBAAU,sCAQZ,IAAM,GACX,GAAS,sqCAAuqC,CAAC,CAAW,CAAC,EAiKlrC,GACX,GAAY,GAAqB,CAAC,EC3KpC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,mQAAoQ,CAAC,CAAoB,CAAC,EAgBxR,GACX,GAAY,GAAiC,CAAC,EAKnC,GACX,GAAQ,GAAiC,CAAC,EChC5C,mBAAS,kBAAU,sCCAnB,mBAAS,cAAU,kBAAU,qCAMtB,IAAM,EACX,GAAS,yvKAAyvK,EAYvvK,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,mBAAiB,GAAjB,iBAKA,YAAU,GAAV,UAKA,eAAa,GAAb,aAKA,wBAAsB,GAAtB,sBAKA,qBAAmB,GAAnB,mBAKA,aAAW,GAAX,WAKA,aAAW,GAAX,WAKA,SAAO,GAAP,OAKA,YAAU,GAAV,YAjDU,SAuDL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EA0B5B,GACX,EAAY,EAA0B,CAAC,EAY5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,uBAAqB,GAArB,qBAKA,sBAAoB,GAApB,oBAKA,aAAW,GAAX,WAKA,2BAAyB,GAAzB,yBAKA,YAAU,GAAV,YAxBU,SA8BL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAY5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,wBAAsB,GAAtB,sBAKA,aAAW,GAAX,WAKA,2BAAyB,GAAzB,yBAKA,YAAU,GAAV,UAKA,UAAQ,IAAR,QAKA,aAAW,IAAX,aAlCU,SAwCL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAY5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,wBAAsB,GAAtB,sBAKA,aAAW,GAAX,WAKA,2BAAyB,GAAzB,yBAKA,YAAU,GAAV,UAKA,UAAQ,IAAR,QAKA,aAAW,IAAX,aAlCU,SAwCL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAY5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,YAAU,GAAV,UAKA,UAAQ,IAAR,QAKA,aAAW,IAAX,aAnBU,SAyBL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAY5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,gBAAc,GAAd,cAKA,mBAAiB,KAAjB,iBAKA,iBAAe,KAAf,eAKA,sBAAoB,KAApB,oBAKA,8BAA4B,KAA5B,4BAKA,0BAAwB,MAAxB,0BAlCU,SAwCL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAY5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,uBAAqB,GAArB,qBAKA,sBAAoB,GAApB,oBAKA,aAAW,GAAX,WAKA,2BAAyB,GAAzB,yBAKA,YAAU,IAAV,YAxBU,SA8BL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAkE5B,GACX,EAAY,EAA0B,CAAC,EAkd5B,GACX,EAAY,EAA0B,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,qBAAmB,GAAnB,mBAKA,UAAQ,GAAR,QAKA,UAAQ,GAAR,UAdU,SAoBL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EAK7B,IAAL,CAAK,IAAL,CAIL,wBAAsB,GAAtB,sBAKA,UAAQ,GAAR,QAKA,YAAU,GAAV,UAKA,cAAY,GAAZ,YAKA,YAAU,GAAV,YAxBU,SA8BL,IAAM,GACX,EAAS,EAA0B,EAAG,CAAC,EC//BzC,mBAAS,kBAAU,sCAMZ,IAAM,GACX,GAAS,8LAA8L,EAoC5L,GACX,GAAY,GAAqB,CAAC,EFlC7B,IAAM,EACX,GAAS,+sBAAgtB,CAAC,EAA0B,EAAmB,CAAC,EA0B7vB,GACX,GAAY,EAAkB,CAAC,EA0EpB,GACX,GAAY,EAAkB,CAAC,EGjHjC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,6UAA8U,CAAC,CAAoB,CAAC,EAwClW,GACX,GAAY,GAA2B,CAAC,EAK7B,GACX,GAAQ,GAA2B,CAAC,ECxDtC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,kMAAmM,CAAC,CAAoB,CAAC,EAqBvN,GACX,GAAY,GAAqB,CAAC,EAKvB,GACX,GAAQ,GAAqB,CAAC,ECrChC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,iMAAkM,CAAC,CAAoB,CAAC,EAYtN,GACX,GAAY,GAAgC,CAAC,EAKlC,GACX,GAAQ,GAAgC,CAAC,EC5B3C,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,qRAAsR,CAAC,CAAoB,CAAC,EAY1S,GACX,GAAY,GAAuC,CAAC,EAKzC,GACX,GAAQ,GAAuC,CAAC,EC5BlD,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,2MAA4M,CAAC,CAAoB,CAAC,EAgBhO,GACX,GAAY,GAAuB,CAAC,EAKzB,GACX,GAAQ,GAAuB,CAAC,EChClC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,uOAAwO,CAAC,CAAoB,CAAC,EAgB5P,GACX,GAAY,GAA6B,CAAC,EAK/B,GACX,GAAQ,GAA6B,CAAC,EChCxC,mBAAS,cAAU,eAAS,kBAAU,qCAQ/B,IAAM,EACX,GAAS,uvDAAwvD,CAAC,CAAoB,CAAC,EAY5wD,GACX,EAAY,EAAsB,CAAC,EAKzB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,eAAa,GAAb,aAKA,oBAAkB,GAAlB,kBAKA,YAAU,GAAV,UAKA,kBAAgB,GAAhB,gBAKA,kBAAgB,GAAhB,gBAKA,aAAW,GAAX,aAlCU,SAwCL,IAAM,GACX,GAAS,EAAsB,EAAG,CAAC,EAYxB,GACX,EAAY,EAAsB,CAAC,EAKzB,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,UAAQ,GAAR,QAKA,cAAY,GAAZ,YAKA,kBAAgB,GAAhB,kBAnBU,SAyBL,IAAM,GACX,GAAS,EAAsB,EAAG,CAAC,EAYxB,GACX,EAAY,EAAsB,CAAC,EAKzB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,kBAAgB,GAAhB,gBAKA,0BAAwB,GAAxB,wBAKA,QAAM,GAAN,MAKA,cAAY,GAAZ,YAKA,aAAW,GAAX,WAKA,iBAAe,GAAf,eAKA,iBAAe,GAAf,eAKA,eAAa,GAAb,aAKA,YAAU,GAAV,UAKA,cAAY,IAAZ,YAKA,aAAW,IAAX,WAKA,gBAAc,IAAd,gBAhEU,SAsEL,IAAM,GACX,GAAS,EAAsB,EAAG,CAAC,EAYxB,GACX,EAAY,EAAsB,CAAC,EAKzB,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,OAAK,GAAL,KAKA,WAAS,GAAT,SAKA,SAAO,GAAP,OAKA,SAAO,GAAP,OAKA,UAAQ,GAAR,QAKA,WAAS,GAAT,SAKA,SAAO,GAAP,OAKA,UAAQ,GAAR,QAKA,SAAO,GAAP,OAKA,kBAAgB,IAAhB,gBAKA,aAAW,IAAX,aA3DU,SAiEL,IAAM,GACX,GAAS,EAAsB,EAAG,CAAC,EA6DxB,GACX,EAAY,EAAsB,CAAC,EA0BxB,GACX,EAAY,EAAsB,CAAC,EA0BxB,GACX,EAAY,EAAsB,CAAC,EAKxB,GACX,GAAQ,EAAsB,CAAC,ECvZjC,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,GACX,GAAS,krBAAmrB,CAAC,CAAoB,CAAC,EAYvsB,GACX,GAAY,GAAwC,CAAC,EAK3C,IAAL,CAAK,IAIV,4BAA0B,GAA1B,2BAJU,SAUL,IAAM,GACX,GAAS,GAAwC,EAAG,CAAC,EA8C1C,GACX,GAAY,GAAwC,CAAC,EAK1C,GACX,GAAQ,GAAwC,CAAC,EC3FnD,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,mPAAoP,CAAC,CAAoB,CAAC,EAqBxQ,GACX,GAAY,GAA0B,CAAC,EAK5B,GACX,GAAQ,GAA0B,CAAC,ECrCrC,mBAAS,kBAAU,sCAQZ,IAAM,EACX,GAAS,2nBAA4nB,CAAC,CAAW,CAAC,EAqGvoB,GACX,GAAY,EAAqB,CAAC,EC/GpC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,ySAA0S,CAAC,CAAoB,CAAC,EAgB9T,GACX,GAAY,GAAoC,CAAC,EAKtC,GACX,GAAQ,GAAoC,CAAC,EChC/C,mBAAS,kBAAU,sCCAnB,mBAAS,kBAAU,sCAMZ,IAAM,EACX,GAAS,gGAAgG,EAgB9F,GACX,GAAY,EAA2B,CAAC,EDZnC,IAAM,EACX,GAAS,6VAA8V,CAAC,EAAkB,EAA2B,CAAe,CAAC,EA8C1Z,GACX,GAAY,EAAoB,CAAC,EE5DnC,mBAAS,kBAAU,sCAMZ,IAAM,EACX,GAAS,gMAAgM,EA0B9L,GACX,GAAY,EAAgC,CAAC,EClC/C,kBAAS,eAAS,kBAAU,sCAYrB,IAAM,EACX,GAAS,m1BAAo1B,CAAC,EAAsB,EAA2B,CAAe,CAAC,EAgGp5B,GACX,GAAY,EAAkC,CAAC,EAKpC,GACX,GAAQ,EAAkC,CAAC,ECpH7C,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,qVAAsV,CAAC,EAAsB,CAAe,CAAC,EAqB3X,GACX,GAAY,GAAoC,CAAC,EAKtC,GACX,GAAQ,GAAoC,CAAC,ECvC/C,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,GACX,GAAS,qgBAAsgB,CAAC,CAAoB,CAAC,EAgB1hB,GACX,GAAY,GAA6C,CAAC,EAKhD,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,WAAS,GAAT,SAKA,YAAU,GAAV,UAKA,cAAY,GAAZ,cAnBU,SAyBL,IAAM,GACX,GAAS,GAA6C,EAAG,CAAC,EAK/C,GACX,GAAQ,GAA6C,CAAC,EC/DxD,kBAAS,eAAS,kBAAU,sCCA5B,mBAAS,kBAAU,sCAMZ,IAAM,GACX,GAAS,sOAAsO,EA+BpO,GACX,GAAY,GAA0C,CAAC,ED7BlD,IAAM,GACX,GAAS,2SAA4S,CAAC,EAAsB,EAAwC,CAAC,EAgB1W,GACX,GAAY,GAA+B,CAAC,EAKjC,GACX,GAAQ,GAA+B,CAAC,EElC1C,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,mUAAoU,CAAC,CAAoB,CAAC,EAqBxV,GACX,GAAY,GAAqC,CAAC,EAKvC,GACX,GAAQ,GAAqC,CAAC,ECrChD,kBAAS,eAAS,kBAAU,sCCA5B,mBAAS,kBAAU,sCAQZ,IAAM,GACX,GAAS,8NAA+N,CAAC,CAA+B,CAAC,EAqB9P,GACX,GAAY,GAAwC,CAAC,EDrBhD,IAAM,GACX,GAAS,uVAAwV,CAAC,EAAsB,EAAsC,CAAC,EAgBpZ,GACX,GAAY,GAAsC,CAAC,EAKxC,GACX,GAAQ,GAAsC,CAAC,EElCjD,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,sXAAuX,CAAC,CAAoB,CAAC,EAqB3Y,GACX,GAAY,GAA8C,CAAC,EAKhD,GACX,GAAQ,GAA8C,CAAC,ECrCzD,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,qRAAsR,CAAC,CAAoB,CAAC,EA0B1S,GACX,GAAY,GAA6B,CAAC,EAK/B,GACX,GAAQ,GAA6B,CAAC,EC1CxC,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,6OAA8O,CAAC,EAAsB,CAAqB,CAAC,EAgBzR,GACX,GAAY,GAA0B,CAAC,EAK5B,GACX,GAAQ,GAA0B,CAAC,EClCrC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,+OAAgP,CAAC,CAAoB,CAAC,EAgBpQ,GACX,GAAY,GAA6B,CAAC,EAK/B,GACX,GAAQ,GAA6B,CAAC,EChCxC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,2SAA4S,CAAC,CAAoB,CAAC,EAqBhU,GACX,GAAY,GAAiC,CAAC,EAKnC,GACX,GAAQ,GAAiC,CAAC,ECrC5C,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,0OAA2O,CAAC,EAAsB,CAAe,CAAC,EAgBhR,GACX,GAAY,GAA0B,CAAC,EAK5B,GACX,GAAQ,GAA0B,CAAC,EClCrC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,0RAA2R,CAAC,CAAoB,CAAC,EA0B/S,GACX,GAAY,GAA6B,CAAC,EAK/B,GACX,GAAQ,GAA6B,CAAC,EC1CxC,kBAAS,eAAS,kBAAU,sCAcrB,IAAM,GACX,GAAS,qTAAsT,CAAC,EAAsB,EAAkB,GAAqB,CAAe,CAAC,EA0BlY,GACX,GAAY,GAAyB,CAAC,EAK3B,GACX,GAAQ,GAAyB,CAAC,EChDpC,mBAAS,cAAU,eAAS,kBAAU,qCAU/B,IAAM,EACX,GAAS,moFAAooF,CAAC,EAAsB,CAAe,CAAC,EAYzqF,GACX,EAAY,EAA+B,CAAC,EAKlC,IAAL,CAAK,IAAL,CAML,YAAU,GAAV,UAKA,wBAAsB,GAAtB,sBAKA,qBAAmB,GAAnB,mBAKA,YAAU,GAAV,UAKA,8BAA4B,GAA5B,4BAKA,aAAW,GAAX,WAKA,uBAAqB,GAArB,qBAKA,mBAAiB,GAAjB,iBAKA,sBAAoB,GAApB,oBAKA,4BAA0B,GAA1B,0BAKA,iBAAe,IAAf,iBAxDU,SA8DL,IAAM,GACX,GAAS,EAA+B,EAAG,CAAC,EAYjC,GACX,EAAY,EAA+B,CAAC,EAKlC,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,kBAAgB,GAAhB,gBAKA,kBAAgB,GAAhB,gBAKA,+BAA6B,IAA7B,6BAKA,mBAAiB,IAAjB,iBAKA,gBAAc,GAAd,cAKA,qBAAmB,KAAnB,mBAKA,uBAAqB,KAArB,qBAKA,8BAA4B,KAA5B,4BAKA,oDAAkD,KAAlD,kDAKA,uCAAqC,KAArC,qCAKA,kCAAgC,KAAhC,gCAKA,6BAA2B,KAA3B,2BAKA,iCAA+B,KAA/B,+BAKA,qBAAmB,KAAnB,mBAKA,0BAAwB,KAAxB,wBAKA,4BAA0B,KAA1B,4BApFU,SA0FL,IAAM,GACX,GAAS,EAA+B,EAAG,CAAC,EAYjC,GACX,EAAY,EAA+B,CAAC,EAKlC,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,kBAAgB,GAAhB,gBAKA,kBAAgB,GAAhB,gBAKA,+BAA6B,IAA7B,6BAKA,mBAAiB,IAAjB,iBAKA,gBAAc,GAAd,cAKA,qBAAmB,KAAnB,mBAKA,uBAAqB,KAArB,qBAKA,8BAA4B,KAA5B,4BAKA,oDAAkD,KAAlD,kDAKA,uCAAqC,KAArC,qCAKA,kCAAgC,KAAhC,gCAKA,6BAA2B,KAA3B,2BAKA,iCAA+B,KAA/B,+BAKA,qBAAmB,KAAnB,mBAKA,0BAAwB,KAAxB,wBAKA,4BAA0B,KAA1B,4BApFU,SA0FL,IAAM,GACX,GAAS,EAA+B,EAAG,CAAC,EAYjC,GACX,EAAY,EAA+B,CAAC,EAKlC,IAAL,CAAK,IAAL,CAIL,WAAS,GAAT,SAKA,UAAQ,GAAR,QAKA,WAAS,KAAT,WAdU,SAoBL,IAAM,GACX,GAAS,EAA+B,EAAG,CAAC,EAkCjC,GACX,EAAY,EAA+B,CAAC,EA0BjC,GACX,EAAY,EAA+B,CAAC,EAyCjC,GACX,EAAY,EAA+B,CAAC,EAKjC,GACX,GAAQ,EAA+B,CAAC,EC3c1C,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,2NAA4N,CAAC,CAAoB,CAAC,EA+ChP,GACX,GAAY,GAA0B,CAAC,EAK5B,GACX,GAAQ,GAA0B,CAAC,EC/DrC,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,GACX,GAAS,uZAAwZ,CAAC,CAAoB,CAAC,EAoB5a,GACX,GAAY,GAAyC,CAAC,EAO5C,IAAL,CAAK,IAAL,CAIL,UAAQ,GAAR,QAKA,UAAQ,GAAR,QAKA,eAAa,GAAb,aAKA,UAAQ,GAAR,QAKA,cAAY,GAAZ,cAxBU,SA8BL,IAAM,GACX,GAAS,GAAyC,EAAG,CAAC,EAK3C,GACX,GAAQ,GAAyC,CAAC,EC1EpD,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,EACX,GAAS,81BAA+1B,CAAC,EAAsB,CAA+B,CAAC,EA0Bp5B,GACX,GAAY,EAA4B,CAAC,EAyC9B,GACX,GAAY,EAA4B,CAAC,EAqB9B,GACX,GAAY,EAA4B,CAAC,EA0B9B,GACX,GAAY,EAA4B,CAAC,EAgB9B,GACX,GAAY,EAA4B,CAAC,EAK9B,GACX,GAAQ,EAA4B,CAAC,ECxJvC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,yMAA0M,CAAC,CAAoB,CAAC,EAgB9N,GACX,GAAY,GAAwB,CAAC,EAK1B,GACX,GAAQ,GAAwB,CAAC,EChCnC,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,GACX,GAAS,8ZAA+Z,CAAC,CAAoB,CAAC,EAgBnb,GACX,GAAY,GAAgC,CAAC,EAKnC,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,eAAa,GAAb,aAKA,cAAY,GAAZ,YAKA,iBAAe,GAAf,iBAnBU,SAyBL,IAAM,GACX,GAAS,GAAgC,EAAG,CAAC,EAKlC,GACX,GAAQ,GAAgC,CAAC,EC/D3C,kBAAS,eAAS,kBAAU,sCCA5B,mBAAS,kBAAU,sCAQZ,IAAM,EACX,GAAS,uHAAwH,CAAC,CAAgB,CAAC,EAgBxI,GACX,GAAY,EAAwB,CAAC,EDJhC,IAAM,GACX,GAAS,uyBAAwyB,CAAC,EAAsB,EAAqB,EAAoB,EAAwB,EAAgC,EAAiB,EAAkC,CAAW,CAAC,EA+D79B,GACX,GAAY,GAAyC,CAAC,EAK3C,GACX,GAAQ,GAAyC,CAAC,EE7FpD,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,mQAAoQ,CAAC,CAAoB,CAAC,EAqBxR,GACX,GAAY,GAA8B,CAAC,EAKhC,GACX,GAAQ,GAA8B,CAAC,ECrCzC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,+NAAgO,CAAC,CAAoB,CAAC,EAgBpP,GACX,GAAY,GAA2B,CAAC,EAK7B,GACX,GAAQ,GAA2B,CAAC,EChCtC,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,2RAA4R,CAAC,EAAsB,CAAqB,CAAC,EAgBvU,GACX,GAAY,GAAiC,CAAC,EAKnC,GACX,GAAQ,GAAiC,CAAC,EClC5C,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,yRAA0R,CAAC,EAAsB,CAAe,CAAC,EAgB/T,GACX,GAAY,GAAiC,CAAC,EAKnC,GACX,GAAQ,GAAiC,CAAC,EClC5C,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,GACX,GAAS,kYAAmY,CAAC,CAAoB,CAAC,EAgBvZ,GACX,GAAY,GAA+B,CAAC,EAKlC,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,cAAY,GAAZ,YAKA,iBAAe,GAAf,iBAdU,SAoBL,IAAM,GACX,GAAS,GAA+B,EAAG,CAAC,EAKjC,GACX,GAAQ,GAA+B,CAAC,EC1D1C,kBAAS,eAAS,kBAAU,sCAsBrB,IAAM,GACX,GAAS,uqBAAwqB,CAAC,EAAsB,EAAqB,EAAoB,EAAwB,EAAgC,EAAiB,EAAkC,CAAW,CAAC,EA6D71B,GACX,GAAY,GAAsB,CAAC,EAKxB,GACX,GAAQ,GAAsB,CAAC,EC3FjC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,iOAAkO,CAAC,CAAoB,CAAC,EAqBtP,GACX,GAAY,GAAuB,CAAC,EAKzB,GACX,GAAQ,GAAuB,CAAC,ECrClC,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,GACX,GAAS,0XAA2X,CAAC,CAAoB,CAAC,EAY/Y,GACX,GAAY,GAAuB,CAAC,EAK1B,IAAL,CAAK,IAAL,CAIL,YAAU,GAAV,UAKA,WAAS,GAAT,SAKA,QAAM,GAAN,MAKA,WAAS,GAAT,SAOA,gBAAc,GAAd,gBA1BU,SAgCL,IAAM,GACX,GAAS,GAAuB,EAAG,CAAC,EA0BzB,GACX,GAAY,GAAuB,CAAC,EAKzB,GACX,GAAQ,GAAuB,CAAC,EC7FlC,mBAAS,kBAAU,sCAMZ,IAAM,GACX,GAAS,0GAA0G,EAqBxG,GACX,GAAY,GAAqB,CAAC,EC7BpC,kBAAS,eAAS,kBAAU,sCCA5B,mBAAS,kBAAU,sCCAnB,mBAAS,kBAAU,sCAQZ,IAAM,GACX,GAAS,iOAAkO,CAAC,EAAmB,CAAC,EAoCrP,GACX,GAAY,GAAwB,CAAC,EDtChC,IAAM,GACX,GAAS,qHAAsH,CAAC,EAAsB,CAAC,EAgB5I,GACX,GAAY,GAAyB,CAAC,EDdjC,IAAM,GACX,GAAS,ySAA0S,CAAC,GAAyB,EAAsB,CAAe,CAAC,EA0BxW,GACX,GAAY,GAAyB,CAAC,EAK3B,GACX,GAAQ,GAAyB,CAAC,EG9CpC,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,6OAA8O,CAAC,EAAsB,CAAqB,CAAC,EAgBzR,GACX,GAAY,GAA0B,CAAC,EAK5B,GACX,GAAQ,GAA0B,CAAC,EClCrC,kBAAS,eAAS,kBAAU,sCAYrB,IAAM,GACX,GAAS,0WAA2W,CAAC,EAAsB,EAAkB,CAAe,CAAC,EAqBla,GACX,GAAY,GAAsC,CAAC,EAKxC,GACX,GAAQ,GAAsC,CAAC,ECzCjD,kBAAS,eAAS,kBAAU,sCAYrB,IAAM,GACX,GAAS,2TAA4T,CAAC,EAAsB,EAAkB,CAAe,CAAC,EAqBnX,GACX,GAAY,GAA+B,CAAC,EAKjC,GACX,GAAQ,GAA+B,CAAC,ECzC1C,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,6jBAA8jB,CAAC,CAAoB,CAAC,EAmDllB,GACX,GAAY,GAA6B,CAAC,EAqB/B,GACX,GAAY,GAA6B,CAAC,EAK/B,GACX,GAAQ,GAA6B,CAAC,ECzFxC,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,6qGAA8qG,CAAC,EAAsB,CAAW,CAAC,EAqB/sG,GACX,GAAY,GAAgC,CAAC,EAgVlC,GACX,GAAY,GAAgC,CAAC,EA0BlC,GACX,GAAY,GAAgC,CAAC,EAKlC,GACX,GAAQ,GAAgC,CAAC,ECnZ3C,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,sOAAuO,CAAC,EAAsB,CAAe,CAAC,EAgB5Q,GACX,GAAY,GAAuB,CAAC,EAKzB,GACX,GAAQ,GAAuB,CAAC,EClClC,mBAAS,cAAU,eAAS,kBAAU,sCAQ/B,IAAM,EACX,GAAS,+eAAgf,CAAC,CAAoB,CAAC,EAYpgB,GACX,GAAY,EAAuC,CAAC,EAQ1C,IAAL,CAAK,IAAL,CAIL,SAAO,GAAP,OAKA,aAAW,GAAX,WAKA,aAAW,GAAX,WAKA,SAAO,GAAP,SAnBU,SAyBL,IAAM,GACX,GAAS,EAAuC,EAAG,CAAC,EAqBzC,GACX,GAAY,EAAuC,CAAC,EAKzC,GACX,GAAQ,EAAuC,CAAC,ECpFlD,kBAAS,eAAS,kBAAU,sCAUrB,IAAM,GACX,GAAS,6dAA8d,CAAC,EAAsB,CAAqC,CAAC,EA0BzhB,GACX,GAAY,GAAgD,CAAC,EAKlD,GACX,GAAQ,GAAgD,CAAC,EC5C3D,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,qSAAsS,CAAC,CAAoB,CAAC,EA0B1T,GACX,GAAY,GAA6B,CAAC,EAK/B,GACX,GAAQ,GAA6B,CAAC,EC1CxC,kBAAS,eAAS,kBAAU,sCAQrB,IAAM,GACX,GAAS,iLAAkL,CAAC,CAAoB,CAAC,EAYtM,GACX,GAAY,GAAwB,CAAC,EAK1B,GACX,GAAQ,GAAwB,CAAC,ECjCnC,qBAAS,WAAY,gCACrB,iBAAS,kBAAQ,2BAGjB,MAAO,EAAc,CACjB,mBAAmB,EAA0B,CACzC,IAAM,EAAkB,KAAK,WAAiE,EACxF,EAAU,EAAa,GAAkC,CAC3D,eAAgB,GAChB,kBAAmB,GACnB,cAAe,GACf,gBAAiB,GACjB,oBAAqB,GACrB,SAAU,EACd,CAAC,EAID,OAFA,EAAa,EAAuB,GAA4B,CAAO,EAEhE,EAGX,mBAAmB,CAAC,EAAwC,CACxD,IAAM,EAAkB,KAAK,YAAgE,EACvF,EAAU,EAAa,GAAkC,CAC3D,QAAS,CACb,CAAC,EAID,OAFA,EAAa,EAAuB,GAA4B,CAAO,EAEhE,EAGX,UAAU,CAAC,EAA0C,CACjD,IAAM,EAAkB,KAAK,WAAuD,EAC9E,EAAU,EAAa,GAAyB,CAClD,iBAAkB,EAAU,SAAS,EACrC,KAAM,iBACN,mBAAoB,SACpB,mBAAoB,WACpB,4BAA6B,yBAC7B,gBAAiB,EACjB,yBAA0B,IAC1B,sBAAuB,GACvB,cAAe,GACf,uBAAwB,kBACxB,YAAa,GACb,oBAAqB,GACrB,mBAAoB,EACpB,sBAAuB,oBACvB,cACA,mBAAoB,EACpB,mBAAoB,GACpB,SAAU,EAAK,EAAE,YAAY,EAC7B,cAAe,GACf,gBAAiB,GACjB,yBAA0B,qBAC1B,sBAAuB,EAAK,EAAE,YAAY,EAC1C,YAAa,EACb,eAAgB,GAChB,QAAS,aACT,oBAAqB,GACrB,iBAAkB,EAAK,EAAE,YAAY,EACrC,eAAgB,EAAK,EAAE,YAAY,EACnC,uBAAwB,mBACxB,2CAA4C,EAC5C,qCAAsC,EACtC,qBAAsB,EACtB,0BAA2B,GAC3B,aAAc,iBACd,sBAAuB,CAG3B,CAAC,EAID,OAFA,EAAa,EAAuB,EAAmB,CAAO,EAEvD,EAGX,oBAAoB,CAAC,EAAkB,EAAgB,EAA2B,GAAM,EAAkC,GAA6B,CACnJ,IAAM,EAAkB,KAAK,WAAkE,EACzF,EAAU,EAAa,GAAmC,CAC5D,WACA,SACA,kBACA,yBACA,cAAe,IACf,aAAc,IACd,YAAa,GACb,cAAe,GACf,gBAAiB,GACjB,wCAAyC,EAC7C,CAAC,EAID,OAFA,EAAa,EAAuB,GAA6B,CAAO,EAEjE,EAGX,QAAQ,CAAC,EAAkC,IAAuF,CAC9H,OAAO,EAAa,EAAuB,CACvC,OACA,YACA,WAAY,EAAK,EAAE,YAAY,EAC/B,iBAAkB,EAAK,EAAE,YAAY,CACzC,CAAC,EAGL,eAAe,CAAC,EAAmB,EAAe,EAA4C,CAC1F,IAAM,EAAkB,KAAK,WAA6D,EACpF,EAAU,EAAa,GAA8B,CACvD,YACA,QACA,YACJ,CAAC,EAID,OAFA,EAAa,EAAuB,GAAwB,CAAO,EAE5D,EAGX,WAAW,CAAC,EAAwB,EAAuD,CACvF,IAAM,EAAkB,KAAK,UAAwD,EAC/E,EAAU,EAAa,GAA0B,CACnD,UACA,SACJ,CAAC,EAID,OAFA,EAAa,EAAuB,GAAoB,CAAO,EAExD,EAGX,YAAY,CAAC,EAAiB,EAAe,EAAsC,CAC/E,IAAM,EAAkB,KAAK,UAA0D,EACjF,EAAU,EAAa,GAA2B,CACpD,aAAc,OAAO,OAAO,CACxB,OAAO,KAAK,mBAAoB,KAAK,EACrC,OAAO,KAAK,yEAA+E,KAAK,EAChG,OAAO,OAAO,CACV,GAAW,CAAO,EAClB,GAAW,CAAK,EAChB,GAAW,EAAO,EAAI,CAAC,CAC3B,CAAC,EACD,OAAO,KAAK,yBAA0B,KAAK,CAC/C,CAAC,CACL,CAAC,EAID,OAFA,EAAa,EAAuB,GAAqB,CAAO,EAEzD,EAGX,kBAAkB,CAAC,IAA2I,CAC1J,IAAM,EAAkB,KAAK,WAAgE,EACvF,EAAU,EAAa,GAAiC,CAC1D,OACJ,CAAC,EAID,OAFA,EAAa,EAAuB,GAA2B,CAAO,EAE/D,EAGX,SAAS,CAAC,EAAuC,CAC7C,IAAM,EAAkB,KAAK,WAAsD,EAC7E,EAAU,EAAa,GAAwB,CACjD,QACJ,CAAC,EAID,OAFA,EAAa,EAAuB,GAAkB,CAAO,EAEtD,EAGX,UAAU,EAA0B,CAChC,IAAM,EAAkB,KAAK,WAAuD,EAC9E,EAAU,EAAa,GAAyB,CAAC,CAAC,EAIxD,OAFA,EAAa,EAAuB,GAAmB,CAAO,EAEvD,EAEf,CCvLA,iBAAS,kBACT,qBAAS,sBAAY,sBAAiB,eAAiB,gCASvD,MAAqB,UAA6D,EAAiC,IAC3G,YAAW,EAAY,CACvB,OAAO,KAAK,GAAQ,aAAe,UAGnC,YAAW,EAAY,CACvB,MAAO,CAAC,CAAC,KAAK,IAAY,CAAC,CAAC,KAAK,MAGjC,OAAM,EAAW,CACjB,OAAO,KAAK,MAGZ,QAAO,EAAW,CAClB,OAAO,KAAK,MAGZ,SAAQ,EAAW,CACnB,OAAO,KAAK,GAGP,GACT,GAAkB,OAAO,MAAM,CAAC,EAChC,GACA,GACA,GACA,GAEA,WAAW,CAAC,EAAiB,EAAc,CACvC,MAAM,EAAS,CAAI,EAEnB,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,MAAQ,KAAK,MAAM,KAAK,IAAI,EACjC,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EAEzC,KAAK,GAAU,IAAI,GACnB,KAAK,GAAQ,GAAG,QAAS,KAAK,OAAO,EACrC,KAAK,GAAQ,GAAG,UAAW,KAAK,SAAS,EACzC,KAAK,GAAQ,GAAG,OAAQ,KAAK,MAAM,EACnC,KAAK,GAAQ,GAAG,MAAO,KAAK,KAAK,EACjC,KAAK,GAAQ,GAAG,QAAS,KAAK,OAAO,EACrC,KAAK,GAAQ,GAAG,UAAW,KAAK,SAAS,OAGvC,QAAO,EAAkB,CAG3B,OAFA,EAAS,IAAI,iBAAiB,KAAK,WAAW,KAAK,SAAS,EAErD,MAAM,IAAI,QAAQ,KAAW,CAChC,KAAK,GAAQ,QAAQ,CACjB,KAAM,KAAK,QACX,KAAM,KAAK,KACX,UAAW,EACf,EAAG,CAAO,EACb,OAGC,WAAU,EAAkB,CAC9B,KAAK,GAAQ,QAAQ,OAGnB,iBAAgB,CAAC,EAAiB,EAAiC,CACrE,KAAK,GAAW,EAChB,KAAK,GAAY,EACjB,KAAK,GAAa,EAClB,KAAK,GAAc,OAGjB,QAAO,CAAC,EAA+B,CACzC,GAAI,KAAK,GACL,EAAO,OAAO,OAAO,CAAC,KAAK,GAAS,CAAI,CAAC,EACzC,KAAK,GAAU,OAGnB,IAAI,EAAS,OAAO,MAAM,CAAC,EACvB,EAAS,EAEb,MAAO,EAAS,GAAK,EAAK,OAAQ,CAC9B,IAAM,EAAS,EAAK,aAAa,CAAM,EAEjC,EAAmB,EAAI,EAAS,GAEtC,GAAI,EAAS,EAAmB,EAAK,OAAQ,CACzC,KAAK,GAAU,EAAK,SAAS,CAAM,EACnC,MAGJ,IAAM,EAAM,EAAK,SAAS,EAAQ,EAAS,CAAC,EACtC,EAAa,EAAK,SAAS,EAAS,EAAG,EAAS,EAAI,CAAM,EAC1D,EAAU,EAAK,SAAS,EAAS,EAAI,EAAQ,EAAS,EAAI,EAAS,EAAE,EAErE,EAAQ,OAAO,MAAM,EAAE,EAC7B,EAAM,iBAAiB,OAAO,KAAK,IAAY,EAAG,CAAC,EAEnD,IAAM,EAAY,GACd,KAAK,GACL,EACA,EACA,EACA,CACJ,EAEA,EAAS,OAAO,OAAO,CAAC,EAAQ,CAAS,CAAC,EAC1C,GAAU,EAGd,OAAO,OAGL,QAAO,CAAC,EAA+B,CACzC,IAAM,EAAQ,EAAK,OACf,EAAS,OAAO,MAAM,CAAC,EAE3B,QAAS,EAAS,EAAG,EAAS,GAAQ,CAClC,IAAM,EAAS,KAAK,IAAI,EAAQ,EAAQ,IAAK,EACvC,EAAW,OAAO,MAAM,CAAC,EAC/B,EAAS,cAAc,EAAQ,CAAC,EAEhC,IAAM,EAAQ,OAAO,MAAM,EAAE,EAC7B,EAAM,iBAAiB,OAAO,KAAK,IAAa,EAAG,CAAC,EAEpD,IAAM,EAAY,GACd,KAAK,GACL,EACA,EACA,EAAK,SAAS,EAAQ,EAAS,CAAM,CACzC,EAEA,GAAU,EACV,EAAS,OAAO,OAAO,CAAC,EAAQ,EAAU,EAAU,WAAY,EAAU,OAAO,CAAC,EAGtF,OAAO,OAGL,QAAO,EAAkB,CAC3B,MAAM,MAAM,QAAQ,EAEpB,EAAS,IAAI,0BAA0B,KAAK,WAAW,KAAK,MAAM,OAGhE,UAAS,EAAkB,CAC7B,MAAM,MAAM,UAAU,EAEtB,EAAS,IAAI,gBAAgB,KAAK,WAAW,KAAK,MAAM,OAGtD,OAAM,CAAC,EAA+B,CACxC,EAAS,IAAI,sBAAuB,EAAO,SAAS,CAAC,OAGnD,MAAK,EAAkB,CACzB,EAAS,IAAI,kBAAkB,OAG7B,QAAO,CAAC,EAA2B,CACrC,MAAM,MAAM,QAAQ,CAAG,EAEvB,EAAS,MAAM,iBAAkB,CAAG,EAE5C,C/ErKA,IAAM,GAAqB,GAsB3B,MAAqB,WAA0B,CAAwB,IAC/D,SAAQ,EAA8B,CACtC,OAAO,KAAK,GAGP,GACT,GAAkB,OAAO,MAAM,CAAC,EAChC,GACA,GACA,GACA,GAEA,WAAW,CAAC,EAAiB,EAAc,CACvC,MAAM,EAAS,CAAI,EAEnB,KAAK,GAAY,IAAI,GACrB,KAAK,GAAS,aAAe,OAAO,GAAY,CAAC,EACjD,KAAK,GAAc,OAGjB,SAAQ,CAAC,EAAgE,CAC3E,OAAO,IAAI,QAAQ,MAAO,EAAS,IAAW,CAC1C,KAAK,GAAW,CAAC,EAAS,CAAM,EAChC,MAAM,KAAK,KAAK,CAAO,EAC1B,OAGC,MAAK,CAAC,EAA8B,CACtC,IAAM,EAAO,GAAW,CAAK,EAE7B,EAAS,IAAI,wCAAwC,IAAQ,EAE7D,KAAK,OAAO,MAAM,MAAM,KAAK,GAAS,CAAI,CAAC,OAGzC,KAAI,CAAC,EAA+C,CACtD,IAAM,EAAQ,GAAe,EAAuB,EAAS,CAAC,mBAAoB,EAAI,CAAC,EACjF,EAAY,OAAO,KAAK,GAAa,EAAM,MAAM,CAAC,EAClD,EAAY,OAAO,OAAO,CAAC,EAAW,OAAO,KAAK,CAAK,CAAC,CAAC,EAEzD,EAAe,OAAO,KACxB,GAAqB,CACjB,OAAQ,CACJ,KAAM,EAAU,OAAO,MAAM,EAAU,WAAY,EAAU,WAAa,EAAU,UAAU,CAClG,CACJ,CAAQ,CACZ,EAEM,EAAS,GAAY,GAAqB,EAAa,WAAY,KAAK,IAAQ,EAChF,EAAQ,OAAO,OAAO,CAAC,EAAQ,CAAY,CAAC,EAC5C,EAAY,MAAM,KAAK,GAAS,CAAK,EAE3C,EAAS,IAAI,gCAAiC,CAAO,EAErD,KAAK,OAAO,MAAM,CAAS,OAGzB,MAAK,CAAC,EAAsB,EAA6B,CAC3D,IAAM,EAAU,GAAK,CACjB,KAAM,SACN,IAAK,EACL,OAAQ,GACR,KAAM,OAAO,KAAK,kBAAkB,GAAM,EAC1C,KAAM,OAAO,KAAK,iCAAiC,CACvD,CAAC,EAEK,EAAW,GAAK,CAClB,KAAM,SACN,IAAK,EACL,OAAQ,GACR,KAAM,OAAO,KAAK,kBAAkB,GAAM,EAC1C,KAAM,OAAO,KAAK,kCAAkC,CACxD,CAAC,EAED,MAAM,KAAK,iBAAiB,EAAS,CAAQ,OAG3C,OAAM,CAAC,EAA+B,CACxC,GAAI,CACA,KAAK,GAAU,OAAO,OAAO,CAAC,KAAK,GAAS,CAAM,CAAC,EACnD,KAAK,GAAU,MAAM,KAAK,GAAS,KAAK,EAAO,EAE/C,MAAO,KAAK,GAAQ,WAAa,GAAoB,CACjD,IAAM,EAAS,KAAK,GAAQ,SAAS,EAAG,EAAkB,EACpD,EAAc,EAAO,aAAa,EAExC,GAAI,KAAK,GAAQ,WAAa,EAAa,CACvC,EAAS,KAAK,2DAA2D,eAAyB,KAAK,GAAQ,6BAA6B,EAAO,YAAY,EAC/J,OAGJ,IAAM,EAAQ,KAAK,GAAQ,SAAS,GAAoB,CAAW,EAC7D,EAAQ,GAAiB,EAAM,OAAO,MAAM,EAAM,WAAY,EAAM,WAAa,EAAM,UAAU,CAAQ,EACzG,EAAU,EAAO,SAAS,QAAS,EAAG,CAAC,EAM7C,GAJA,EAAS,IAAI,oBAAqB,EAAO,SAAS,CAAC,EAEnD,KAAK,GAAU,KAAK,GAAQ,SAAS,CAAW,EAE5C,CAAC,GAAS,CAAC,EAAM,QAAU,CAAC,EAAM,OAAO,KAAM,CAC/C,GAAI,IAAY,OACZ,EAAS,IAAI,cAAc,EACxB,QAAI,IAAY,OACnB,MAAM,KAAK,MAAM,GAAiB,CAAM,CAAC,EAG7C,GAAI,KAAK,GAAU,CACf,IAAO,GAAW,KAAK,GACvB,KAAK,GAAW,OAEhB,EAAQ,EAGZ,SAGJ,IAAM,EAAU,OAAO,KAAK,EAAM,OAAO,IAAI,EAE7C,QAAW,KAAW,MAAM,GAAc,CAAO,EAC7C,MAAM,KAAK,GAAe,CAAO,EAGrC,GAAI,IAAY,OACZ,MAAM,KAAK,MAAM,GAAiB,CAAM,CAAC,GAGnD,MAAO,EAAK,CACV,EAAS,MAAM,kBAAmB,CAAG,QAIvC,EAAoB,CAAC,EAAiD,CACxE,EAAS,KAAK,sBAAuB,EAAQ,IAAI,EAEjD,KAAK,KAAK,aAAc,CAAO,OAG7B,EAAgC,CAAC,EAA6D,CAChG,EAAS,IAAI,2BAA4B,CAAO,EAEhD,KAAK,KAAK,yBAA0B,CAAO,OAGzC,EAAgC,CAAC,EAA6D,CAChG,EAAS,IAAI,2BAA4B,CAAO,EAEhD,KAAK,KAAK,yBAA0B,CAAO,OAGzC,EAA2B,CAAC,EAAwD,CACtF,EAAS,KAAK,sBAAuB,CAAO,EAE5C,KAAK,KAAK,oBAAqB,CAAO,OAGpC,EAAoB,CAAC,EAAiD,CACxE,EAAS,KAAK,cAAe,CAAO,EAEpC,KAAK,KAAK,aAAc,CAAO,OAG7B,EAAqC,CAAC,EAAkE,CAC1G,EAAS,KAAK,iCAAkC,CAAO,EAEvD,KAAK,KAAK,8BAA+B,CAAO,OAG9C,EAA6B,CAAC,EAA0D,CAC1F,EAAS,KAAK,yBAA0B,CAAO,EAE/C,KAAK,KAAK,sBAAuB,CAAO,OAGtC,EAA6B,CAAC,EAA0D,CAC1F,EAAS,KAAK,yBAA0B,CAAO,EAE/C,KAAK,KAAK,sBAAuB,CAAO,OAGtC,EAAkB,CAAC,EAA+C,CACpE,EAAS,KAAK,YAAa,CAAO,EAElC,KAAK,KAAK,WAAY,CAAO,OAG3B,EAAsB,CAAC,EAAmD,CAC5E,EAAS,KAAK,gBAAiB,CAAO,EAEtC,KAAK,KAAK,eAAgB,CAAO,OAG/B,EAA2B,CAAC,EAAwD,CACtF,EAAS,KAAK,sBAAuB,CAAO,EAE5C,KAAK,KAAK,oBAAqB,CAAO,OAGpC,EAAkC,CAAC,EAA+D,CACpG,EAAS,KAAK,yBAA0B,CAAO,EAE/C,KAAK,KAAK,2BAA4B,CAAO,OAG3C,EAAsB,CAAC,EAAmD,CAC5E,EAAS,KAAK,gBAAiB,CAAO,EAEtC,KAAK,KAAK,eAAgB,CAAO,OAG/B,EAA4B,CAAC,EAAyD,CACxF,EAAS,KAAK,uBAAwB,CAAO,EAE7C,KAAK,KAAK,qBAAsB,CAAO,OAGrC,EAAmC,CAAC,EAAgE,CACtG,EAAS,KAAK,8BAA+B,CAAO,EAEpD,KAAK,KAAK,4BAA6B,CAAO,OAG5C,EAA4C,CAAC,EAAyE,CACxH,EAAS,KAAK,yCAA0C,CAAO,EAE/D,KAAK,KAAK,qCAAsC,CAAO,OAGrD,EAAyB,CAAC,EAAsD,CAClF,EAAS,KAAK,0BAA2B,CAAO,EAEhD,KAAK,KAAK,kBAAmB,CAAO,OAGlC,EAAQ,CAAC,EAA+B,CAC1C,IAAM,EAAmB,CAAC,EACtB,EAAS,EACT,EAAY,KAAK,IAAc,EAEnC,MAAO,EAAS,EAAK,OAAQ,CACzB,GAAI,EAAS,EAAI,EAAK,OAElB,OADA,EAAS,KAAK,wBAAwB,EAC/B,KAAK,GAGhB,IAAM,EAAc,EAAK,aAAa,CAAM,EAC5C,GAAU,EAEV,IAAM,EAAQ,OAAO,MAAM,EAAE,EAC7B,EAAM,iBAAiB,OAAO,GAAW,EAAG,CAAC,EAE7C,IAAM,EAAM,EAAS,EAAc,GAEnC,GAAI,EAAM,EAAK,OAEX,OADA,EAAS,KAAK,uBAAuB,YAAc,EAAK,QAAQ,EACzD,KAAK,GAGhB,IAAM,EAAa,EAAK,SAAS,EAAQ,EAAS,CAAW,EACvD,EAAU,EAAK,SAAS,EAAS,EAAa,CAAG,EACvD,EAAS,EAET,IAAM,EAAY,GACd,KAAK,QACL,EACA,OAAO,KAAK,YAAY,GAAG,CAAW,EAAE,OAAO,MAAM,EAAG,CAAC,CAAC,EAC1D,EACA,CACJ,EAEA,EAAO,KAAK,CAAS,EAKzB,OAFA,KAAK,GAAa,EAEX,OAAO,OAAO,CAAM,OAGzB,EAAQ,CAAC,EAA+B,CAE1C,IAAM,EAAmB,CAAC,EAE1B,QAAS,EAAS,EAAG,EAAS,EAAK,QAAS,CACxC,IAAM,EAAQ,EAAK,SAAS,EAAQ,EAJnB,IAIwC,EACzD,GAAU,EAAM,OAEhB,IAAM,EAAW,OAAO,MAAM,CAAC,EAC/B,EAAS,cAAc,EAAM,OAAQ,CAAC,EAEtC,IAAM,EAAQ,OAAO,MAAM,EAAE,EAC7B,EAAM,iBAAiB,OAAO,KAAK,IAAa,EAAG,CAAC,EAEpD,IAAM,EAAY,GACd,KAAK,SACL,EACA,EACA,CACJ,EAEA,EAAO,KAAK,EAAU,EAAU,WAAY,EAAU,OAAO,EAGjE,OAAO,OAAO,OAAO,CAAM,OAGzB,EAAc,CAAC,EAA+C,CAChE,GAAI,KAAK,GAAU,CACf,IAAO,GAAW,KAAK,GACvB,KAAK,GAAW,OAEhB,EAAQ,CAAO,EAGnB,OAAQ,EAAQ,cAER,MAAM,KAAK,GAAqB,EAAa,EAAe,CAAiB,CAAC,EAC9E,eAGA,MAAM,KAAK,GAAiC,EAAa,EAAe,EAA6B,CAAC,EACtG,eAGA,MAAM,KAAK,GAAiC,EAAa,EAAe,EAA6B,CAAC,EACtG,aAGA,MAAM,KAAK,GAA4B,EAAa,EAAe,EAAwB,CAAC,EAC5F,aAGA,MAAM,KAAK,GAAqB,EAAa,EAAe,EAAiB,CAAC,EAC9E,cAGA,MAAM,KAAK,GAAsC,EAAa,EAAe,EAAkC,CAAC,EAChH,cAGA,MAAM,KAAK,GAA8B,EAAa,EAAe,EAA0B,CAAC,EAChG,cAGA,MAAM,KAAK,GAA8B,EAAa,EAAe,EAA0B,CAAC,EAChG,aAGA,MAAM,KAAK,GAAmB,EAAa,EAAe,EAAe,CAAC,EAC1E,cAGA,MAAM,KAAK,GAAuB,EAAa,EAAe,EAAmB,CAAC,EAClF,cAGA,MAAM,KAAK,GAA4B,EAAa,EAAe,EAAwB,CAAC,EAC5F,cAGA,MAAM,KAAK,GAAmC,EAAa,EAAe,EAA+B,CAAC,EAC1G,cAGA,MAAM,KAAK,GAAuB,EAAa,EAAe,EAAmB,CAAC,EAClF,cAGA,MAAM,KAAK,GAA6B,EAAa,EAAe,EAAyB,CAAC,EAC9F,cAGA,MAAM,KAAK,GAAoC,EAAa,EAAe,EAAgC,CAAC,EAC5G,cAGA,MAAM,KAAK,GAA6C,EAAa,EAAe,EAAyC,CAAC,EAC9H,cAGA,MAAM,KAAK,GAA0B,EAAa,EAAe,EAAsB,CAAC,EACxF,aAGA,cAGA,EAAS,KAAK,4BAA6B,CAAO,EAClD,OAGhB,CAEA,SAAS,EAAW,CAAC,EAAmB,EAAuB,CAC3D,IAAM,EAAM,OAAO,MAAM,EAAE,EAS3B,OAPA,EAAI,cAAc,EAAW,CAAC,EAC9B,EAAI,MAAM,OAAQ,EAAG,OAAO,EAC5B,EAAI,KAAK,EAAG,EAAG,EAAE,EACjB,EAAI,MAAM,OAAQ,GAAI,OAAO,EAC7B,EAAI,iBAAiB,EAAO,EAAE,EAC9B,EAAI,cAAc,EAAG,EAAE,EAEhB,EAGX,SAAS,EAAU,CAAC,EAAuB,CACvC,IAAM,EAAS,OAAO,MAAM,EAAE,EAC9B,EAAO,cAAc,EAAG,CAAC,EACzB,EAAO,MAAM,OAAQ,EAAG,OAAO,EAC/B,EAAO,KAAK,EAAG,EAAG,EAAE,EACpB,EAAO,iBAAiB,EAAO,EAAE,EACjC,EAAO,cAAc,EAAG,EAAE,EAE1B,IAAM,EAAQ,OAAO,KACjB,GAAqB,OAAO,MAAM,CAAC,CAAQ,CAC/C,EAEM,EAAQ,EAAO,OAAS,EAAM,OAGpC,OAFA,EAAO,cAAc,EAAO,CAAC,EAEtB,OAAO,OAAO,CAAC,EAAQ,CAAK,CAAC,EAGxC,SAAS,EAAY,CAAC,EAA2B,CAC7C,GAAI,EAAQ,EACR,MAAU,WAAW,4CAA4C,EAGrE,IAAM,EAAkB,CAAC,EACzB,MAAO,EAAQ,IACX,EAAM,KAAM,EAAQ,IAAQ,GAAI,EAChC,KAAW,EAKf,OAFA,EAAM,KAAK,CAAK,EAET,WAAW,KAAK,CAAK,EAGhC,SAAS,EAAgB,CAAC,EAAwB,CAC9C,GAAI,EAAO,OAAS,GAChB,MAAU,MAAM,kBAAkB,EAGtC,OAAO,EAAO,gBAAgB,EAAE,EAGpC,eAAe,EAAa,CAAC,EAAmD,CAC5E,IAAM,EAAoC,CAAC,EACvC,EAAS,EAEb,MAAO,EAAS,EAAQ,OAAQ,CAG5B,GAFkB,EAAQ,KAER,EAAM,CACpB,IAAM,EAAU,EAAQ,SAAS,CAAM,EACjC,EAAU,GAAiB,EAAuB,EAAS,CAAC,kBAAmB,EAAI,CAAC,EAC1F,EAAS,KAAK,CAAO,EACrB,MAGJ,IAAO,EAAQ,GAAc,GAAY,EAAS,CAAM,EAGxD,GAFA,GAAU,EAEN,EAAS,EAAS,EAAQ,OAC1B,MAGJ,IAAM,EAAU,EAAQ,SAAS,EAAQ,EAAS,CAAM,EACxD,GAAU,EAEV,IAAM,EAAU,GAAiB,EAAuB,EAAS,CAAC,kBAAmB,EAAI,CAAC,EAC1F,EAAS,KAAK,CAAO,EAGzB,OAAO,EAGX,SAAS,EAAW,CAAC,EAAa,EAAS,EAAqB,CAC5D,IAAI,EAAS,EACT,EAAQ,EACR,EAAY,EAEhB,MAAO,GAAM,CACT,IAAM,EAAO,EAAI,EAAS,KAG1B,GAFA,IAAW,EAAO,MAAS,GAEtB,EAAO,OAAU,EAClB,MAGJ,GAAS,EAGb,MAAO,CAAC,EAAQ,CAAS,EgF1gB7B,eAAS,uBAAM,eAAkB,iCAKjC,MAAqB,WAA2B,CAAqB,CACjE,GAAkB,OAAO,MAAM,CAAC,OAE1B,QAAO,CAAC,EAAmC,CAC7C,IAAM,EAAO,OAAO,KAAK,MAAM,EAAS,YAAY,CAAC,EAE/C,EAAS,CAAC,EAChB,EAAO,KAAK,YAAY,EAAS,UAAU,EAAS,YAAY,EAEhE,QAAY,EAAM,KAAU,OAAO,QAAQ,EAAS,OAAO,EACvD,EAAO,KAAK,GAAG,MAAS,GAAO,EAGnC,GAAI,EAAK,WAAa,EAClB,EAAO,KAAK,mBAAmB,EAAK,YAAY,EAEhD,OAAO,KAAK,mBAAmB,EAGnC,EAAO,KAAK,EAAE,EACd,EAAO,KAAK,EAAE,EAEd,IAAM,EAAU,EAAO,KAAK;AAAA,CAAM,EAC9B,EAEJ,GAAI,EAAS,KACT,EAAO,OAAO,OAAO,CACjB,OAAO,KAAK,CAAO,EACnB,CACJ,CAAC,EAED,OAAO,OAAO,KAAK,CAAO,EAG9B,GAAI,KAAK,YACL,EAAO,MAAM,KAAK,QAAQ,CAAI,EAGlC,KAAK,OAAO,MAAM,CAAI,OAGpB,MAAK,CAAC,EAAqC,CAC7C,IAAM,EAAU,GAAK,CACjB,KAAM,SACN,IAAK,EACL,OAAQ,GACR,KAAM,OAAO,KAAK,aAAa,EAC/B,KAAM,OAAO,KAAK,4BAA4B,CAClD,CAAC,EAEK,EAAW,GAAK,CAClB,KAAM,SACN,IAAK,EACL,OAAQ,GACR,KAAM,OAAO,KAAK,aAAa,EAC/B,KAAM,OAAO,KAAK,6BAA6B,CACnD,CAAC,EAED,MAAM,KAAK,iBAAiB,EAAU,CAAO,OAG3C,OAAM,CAAC,EAA+B,CAGxC,GAFA,KAAK,GAAU,OAAO,OAAO,CAAC,KAAK,GAAS,CAAM,CAAC,EAE/C,KAAK,YACL,KAAK,GAAU,MAAM,KAAK,QAAQ,KAAK,EAAO,EAKlD,MAAO,KAAK,GAAQ,WAAa,EAAG,CAChC,IAAM,EAAS,GAAgB,KAAK,EAAO,EAE3C,GAAI,IAAW,KACX,OAGJ,KAAK,GAAU,KAAK,GAAQ,SAAS,EAAO,aAAa,EAEzD,MAAM,KAAK,GAAQ,EAAO,OAAQ,EAAO,KAAM,EAAO,QAAS,EAAO,IAAI,QAI5E,EAAO,CAAC,EAAoB,EAAc,EAAiC,EAA6B,CAC1G,IAAM,EAAM,GAAG,KAAU,IAEzB,OAAQ,OACC,gBACD,IAAM,EAAO,GAAiB,EAAK,OAAO,MAAM,EAAK,WAAY,EAAK,WAAa,EAAK,UAAU,CAAQ,EAE1G,GAAS,KAAK,iCAAkC,CAAI,EAEpD,IAAM,EAAW,IAAI,SAAS,KAAM,CAChC,OAAQ,IACR,WAAY,KACZ,QAAS,CACL,gBAAiB,IACjB,MAAS,EAAQ,MAAW,GAAG,SAAS,CAC5C,CACJ,CAAC,EAED,MAAM,KAAK,QAAQ,CAAQ,EAC3B,cAGA,GAAS,KAAK,qBAAsB,CAAG,EACvC,OAGhB,CClHA,wBAAwD,iCAIxD,MAAqB,EAAe,IAC5B,SAAQ,EAAkB,CAC1B,OAAO,KAAK,MAGZ,KAAI,EAAgB,CACpB,OAAO,KAAK,GAAU,KAGjB,GACA,GACT,GAEA,WAAW,CAAC,EAAmB,CAC3B,KAAK,GAAY,IAAI,GAAc,KAAK,GAAS,KAAK,IAAI,CAAC,EAC3D,KAAK,GAAY,OAGf,MAAK,EAAkB,CACzB,MAAM,KAAK,GAAU,MAAM,OAGzB,IAAG,CAAC,EAA8D,CAKpE,OAJA,KAAK,GAAO,EAEZ,MAAM,KAAK,GAAU,EAEd,KAAK,GAAU,IAAI,CAAM,OAG9B,SAAQ,EAAkB,CAC5B,KAAK,GAAO,EAEZ,MAAM,KAAK,GAAU,OAGnB,UAAS,EAA2B,CAKtC,OAJA,KAAK,GAAO,EAEZ,MAAM,KAAK,GAAU,EAEd,KAAK,GAAU,UAAU,OAG9B,EAAS,EAAkB,CAM7B,IALiB,MAAM,KAAK,KAAK,KAAK,kBAAmB,KAAM,CAC3D,eAAgB,2BAChB,cAAe,KAAK,GAAK,SAAS,CACtC,CAAC,GAEY,SAAW,IACpB,MAAU,MAAM,+BAA+B,OAIjD,EAAQ,CAAC,EAAuB,EAA+B,CACjE,IAAM,EAAW,MAAM,KAAK,KAAK,KAAK,cAAe,EAAM,CACvD,eAAgB,2BAChB,cAAe,KAAK,GAAK,SAAS,CACtC,CAAC,EAED,OAAO,OAAO,KAAK,MAAM,EAAS,YAAY,CAAC,EAEvD,CCnEA,uBAAS,eAAc,iCAKvB,MAAqB,WAAoB,CAAkB,IACnD,aAAY,EAAW,CACvB,OAAO,KAAK,MAGZ,OAAM,EAAW,CACjB,OAAO,KAAK,MAGZ,UAAS,EAAW,CACpB,OAAO,KAAK,GAGP,GACA,GACA,GACT,GAAkB,OAAO,MAAM,CAAC,EAChC,GAAgB,EAChB,GAAuB,GACvB,GACA,GAEA,WAAW,CAAC,EAAiB,EAAc,CACvC,MAAM,EAAS,CAAI,EAEnB,KAAK,GAAgB,KAAK,MAAM,KAAK,OAAO,EAAI,UAAO,EAAE,SAAS,EAAE,EACpE,KAAK,GAAU,KAAK,MAAM,KAAK,OAAO,EAAI,oBAAO,EAAE,SAAS,EAAE,EAAE,YAAY,EAC5E,KAAK,GAAa,KAAK,MAAM,KAAK,OAAO,EAAI,UAAO,EAAE,SAAS,EAAE,OAG/D,IAAG,CAAC,EAAc,EAAuB,CAAC,EAAsB,CAClE,OAAO,MAAM,KAAK,GAAS,MAAO,EAAM,KAAM,CAAO,OAGnD,KAAI,CAAC,EAAc,EAA+B,KAAM,EAAuB,CAAC,EAAsB,CACxG,OAAO,MAAM,KAAK,GAAS,OAAQ,EAAM,EAAM,CAAO,OAGpD,OAAM,CAAC,EAAc,EAAuB,CAAC,EAAsB,CACrE,OAAO,MAAM,KAAK,GAAS,SAAU,EAAM,KAAM,CAAO,OAGtD,MAAK,CAAC,EAAc,EAA+B,KAAM,EAAuB,CAAC,EAAsB,CACzG,OAAO,MAAM,KAAK,GAAS,QAAS,EAAM,EAAM,CAAO,OAGrD,QAAO,EAAkB,CAC3B,MAAM,MAAM,QAAQ,EACpB,MAAM,KAAK,GAAQ,OAAe,MAAM,oBAAoB,CAAC,OAG3D,OAAM,CAAC,EAA+B,CAGxC,GAFA,KAAK,GAAU,OAAO,OAAO,CAAC,KAAK,GAAS,CAAM,CAAC,EAE/C,KAAK,YACL,KAAK,GAAU,MAAM,KAAK,QAAQ,KAAK,EAAO,EAGlD,MAAO,KAAK,GAAQ,WAAa,EAAG,CAChC,IAAM,EAAS,GAAiB,KAAK,EAAO,EAE5C,GAAI,IAAW,KACX,OAGJ,KAAK,GAAU,KAAK,GAAQ,SAAS,EAAO,cAAc,EAE1D,MAAM,KAAK,GAAQ,EAAO,SAAU,MAAS,QAI/C,QAAO,CAAC,EAA2B,CACrC,MAAM,MAAM,QAAQ,CAAG,EACvB,MAAM,KAAK,GAAQ,OAAW,CAAG,OAG/B,UAAS,EAAkB,CAC7B,MAAM,MAAM,UAAU,EACtB,MAAM,KAAK,GAAQ,OAAe,MAAM,oBAAoB,CAAC,OAG3D,EAAO,CAAC,EAAe,EAA4B,CACrD,GAAI,EACA,KAAK,KAAU,CAAG,EAElB,UAAK,KAAW,CAAI,EAGxB,KAAK,GAAU,OACf,KAAK,GAAW,OAChB,KAAK,GAAc,QAGjB,EAAQ,CAAC,EAAoB,EAAc,EAA8B,EAAyC,CACpH,GAAI,CAAC,KAAK,YACN,OAAO,QAAQ,OAAW,MAAM,0BAA0B,CAAC,EAG/D,GAAI,KAAK,GACL,OAAO,QAAQ,OAAW,MAAM,0CAA0C,CAAC,EAG/E,KAAK,GAAc,GAEnB,EAAQ,iBAAmB,KAAK,aAChC,EAAQ,mBAAqB,KAAK,OAClC,EAAQ,WAAa,KAAK,OAE1B,IAAM,EAAO,KAAK,KACd,EAEJ,GAAI,EACA,EAAQ,kBAAoB,OAAO,WAAW,CAAI,EAAE,SAAS,EAE7D,EAAO,OAAO,OAAO,CACjB,OAAO,KAAK,GAAe,EAAQ,EAAM,EAAS,CAAI,CAAC,EACvD,OAAO,KAAK,CAAI,CACpB,CAAC,EAED,OAAQ,kBAAoB,IAE5B,EAAO,OAAO,KAAK,GAAe,EAAQ,EAAM,EAAS,CAAI,CAAC,EAKlE,GAFA,GAAS,IAAI,SAAU,EAAQ,EAAM,UAAU,GAAM,EAEjD,KAAK,YACL,EAAO,MAAM,KAAK,QAAQ,CAAI,EAGlC,OAAO,IAAI,QAAQ,MAAO,EAAS,IAAW,CAC1C,IAAI,EAEJ,KAAK,GAAU,CAAC,IAAwB,CACpC,EAAO,CAAM,EACb,aAAa,CAAK,GAGtB,KAAK,GAAW,CAAC,IAA6B,CAC1C,EAAQ,CAAQ,EAChB,aAAa,CAAK,GAGtB,EAAQ,WAAW,IAAM,EAAW,MAAM,mBAAmB,CAAC,EAAG,EAAY,EAE7E,KAAK,OAAO,MAAM,CAAI,EACzB,EAET,CCzJA,0BAAwD,WAAiB,iCAIzE,MAAqB,EAAc,IAC3B,KAAI,EAAgB,CACpB,OAAO,KAAK,GAAU,KAGjB,GACA,GAET,WAAW,CAAC,EAAmB,CAC3B,KAAK,GAAY,IAAI,GAAgB,KAAK,GAAS,KAAK,IAAI,CAAC,EAC7D,KAAK,GAAY,OAGf,MAAK,CAAC,EAA2D,CACnE,IAAM,EAAO,MAAM,KAAK,GAAU,MAAM,CAAW,EAE7C,EAA2B,GAAK,CAClC,KAAM,SACN,IAAK,EAAK,aACV,OAAQ,GACR,KAAM,OAAO,KAAK,cAAc,EAChC,KAAM,OAAO,KAAK,6BAA6B,CACnD,CAAC,EAEK,EAA2B,GAAK,CAClC,KAAM,SACN,IAAK,EAAK,aACV,OAAQ,GACR,KAAM,OAAO,KAAK,cAAc,EAChC,KAAM,OAAO,KAAK,8BAA8B,CACpD,CAAC,EAED,MAAO,CACH,2BACA,2BACA,UAAW,EAAK,UAChB,aAAc,EAAK,YACvB,OAGE,EAAQ,CAAC,EAAuB,EAA+B,CACjE,IAAM,EAAW,MAAM,KAAK,KAAK,KAAK,eAAgB,EAAM,CACxD,eAAgB,2BAChB,cAAe,GACnB,CAAC,EAED,OAAO,OAAO,KAAK,MAAM,EAAS,YAAY,CAAC,EAEvD,CrF5CA,MAAqB,CAAQ,IACrB,OAAM,EAAoB,CAC1B,OAAO,KAAK,MAGZ,WAAU,EAA2B,CACrC,OAAO,KAAK,MAGZ,YAAW,EAA4B,CACvC,OAAO,KAAK,MAGZ,QAAO,EAAY,CACnB,OAAO,KAAK,MAGZ,KAAI,EAAS,CACb,OAAO,KAAK,MAGZ,YAAW,EAAW,CACtB,OAAO,KAAK,MAGZ,OAAM,EAAW,CACjB,OAAO,KAAK,GAGP,GACA,GACA,GACA,GACA,GACT,GACA,GACA,GAEA,WAAW,CAAC,EAAyB,CACjC,KAAK,GAAU,EACf,KAAK,GAAQ,IAAI,GAAK,EAAO,QAAS,EAAO,QAAQ,IAAI,EACzD,KAAK,GAAW,IAAI,GAAQ,IAAI,EAChC,KAAK,GAAU,IAAI,GAAO,IAAI,EAC9B,KAAK,GAAe,GAAK,OAGvB,QAAO,EAAkB,CAC3B,MAAM,KAAK,GAAM,QAAQ,OAGvB,WAAU,EAAkB,CAC9B,MAAM,KAAK,GAAM,WAAW,OAG1B,SAAQ,EAAkB,CAC5B,MAAM,KAAK,GAAM,KAAK,WAAW,OAG/B,gBAAe,CAAC,EAAqC,CACvD,IAAM,EAAO,GAAY,EACnB,EAAU,GAAqB,CACjC,QAAS,CACL,CACI,YAAa,EACb,UAAW,GAAK,EAAE,YAAY,EAC9B,OACA,WAAY,GAAK,EAAE,YAAY,EAC/B,KAAM,IACN,qBAAsB,GACtB,eAAgB,sCACpB,CACJ,CACJ,CAAC,EAEK,EAAW,MAAM,KAAK,GAAM,MAAM,IAAI,KAAK,KAAK,YAAa,OAAO,KAAK,CAAO,EAAG,CACrF,eAAgB,kCACpB,CAAC,EAGK,EADQ,GAAiB,MAAM,EAAS,YAAY,CAAC,EACpC,QAAQ,GAAG,SAAW,MAC7C,GAAS,IAAI,qCAAqC,MAAa,EAE/D,KAAK,GAAc,IAAI,GAAW,KAAK,GAAM,QAAS,CAAQ,EAC9D,MAAM,KAAK,GAAY,MAAM,EAAc,CAAI,EAC/C,MAAM,KAAK,GAAY,QAAQ,OAG7B,iBAAgB,CAAC,EAAmB,EAAqC,CAC3E,IAAM,EAAkD,CACpD,SAAU,EAAU,SAAS,EAC7B,WAAY,GAAc,EAAE,YAAY,EACxC,KAAM,iBACN,MAAO,aACP,eAAgB,WAChB,OAAQ,YACR,UAAW,OACX,cAAe,UACf,YAAa,KAAK,GAClB,uBAAwB,GAAK,EAAE,YAAY,EAC3C,eAAgB,OAChB,oBAAqB,GACrB,uBAAwB,GACxB,qBAAsB,EAC1B,EAEA,GAAI,KAAK,GACL,EAAK,WAAa,KAAK,GAAc,KACrC,EAAK,eAAiB,MAG1B,IAAM,EAAU,GAAqB,CAAI,EACnC,EAAW,MAAM,KAAK,GAAM,MAAM,IAAI,KAAK,KAAK,YAAa,OAAO,KAAK,CAAO,EAAG,CACrF,eAAgB,kCACpB,CAAC,EAED,GAAI,EAAS,SAAW,IAGpB,MAFA,GAAS,MAAM,4BAA6B,EAAS,OAAQ,EAAS,WAAY,MAAM,EAAS,KAAK,CAAC,EAE7F,MAAM,4BAA4B,EAIhD,IAAM,EADQ,GAAiB,MAAM,EAAS,YAAY,CAAC,EACnC,UAAY,MACpC,GAAS,IAAI,sCAAsC,MAAc,EAEjE,KAAK,GAAe,IAAI,GAAY,KAAK,GAAM,QAAS,CAAS,EACjE,MAAM,KAAK,GAAa,MAAM,CAAY,EAC1C,MAAM,KAAK,GAAa,QAAQ,EAEhC,MAAM,KAAK,GAAM,OAAO,IAAI,KAAK,KAAK,WAAW,OAG/C,kBAAiB,CAAC,EAAqC,CACzD,KAAK,GAAgB,EAE7B,CD1IA,GAAS,IAAI,EAEb,eAAe,EAAO,EAAkB,CAEpC,IAAM,EAAkB,MADN,GAAU,QAAQ,EACI,UAAU,uCAAuC,EACnF,EAAW,IAAI,EAAQ,CAAe,EAE5C,MAAM,EAAS,QAAQ,EAEvB,MAAM,EAAS,QAAQ,MAAM,EAC7B,IAAM,EAAO,MAAM,EAAS,QAAQ,UAAU,EAE9C,MAAM,EAAS,KAAK,iBAChB,EAAK,yBACL,EAAK,wBACT,EAEA,MAAM,EAAS,kBAAkB,IAAI,EAAc,EACnD,MAAM,EAAS,iBAAiB,EAAK,UAAW,EAAK,YAAY,EACjE,MAAM,EAAS,gBAAgB,EAAK,YAAY,EAEhD,YAAY,IAAM,EAAS,SAAS,EAAG,IAAI,EAG3C,MAAM,EAAS,WAAW,SAAS,EAAS,WAAW,SAAS,WAAW,EAAK,SAAS,CAAC,EAE1F,EAAS,WAAW,YAAY,aAAc,SAAY,CACtD,MAAM,EAAS,WAAW,SAAS,EAAS,WAAW,SAAS,mBAAmB,CAAC,EACpF,MAAM,EAAS,WAAW,SAAS,EAAS,WAAW,SAAS,oBAAoB,CAAC,EAiCxF,EAGL,eAAe,EAAE,EAAkB,CAE/B,IAAM,EAAS,MADG,GAAU,QAAQ,EACL,UAAU,kCAAkC,EACrE,EAAW,IAAI,EAAQ,CAAM,EAEnC,MAAM,EAAS,QAAQ,EAEvB,IAAM,EAAO,MAAM,EAAS,OAAO,MAAM,CACrC,oBAAqB,uCACrB,2BAA4B,OAAO,KAAK,mEAAoE,KAAK,EACjH,UAAW,OAAO,KAAK,2EAA4E,KAAK,EACxG,UAAW,OAAO,KAAK,mEAAoE,KAAK,EAChG,UAAW,OAAO,KAAK,mIAAoI,KAAK,CACpK,CAAC,EAED,MAAM,EAAS,KAAK,iBAChB,EAAK,yBACL,EAAK,wBACT,EAEA,MAAM,EAAS,kBAAkB,IAAI,EAAc,EACnD,MAAM,EAAS,iBAAiB,EAAK,UAAW,EAAK,YAAY,EACjE,MAAM,EAAS,gBAAgB,EAAK,YAAY,EAEhD,YAAY,IAAM,EAAS,SAAS,EAAG,IAAI,EAE3C,MAAM,EAAS,WAAW,SAAS,EAAS,WAAW,SAAS,WAAW,EAAK,SAAS,CAAC,EAE1F,EAAS,WAAW,YAAY,aAAc,SAAY,CACtD,MAAM,EAAS,WAAW,SAAS,EAAS,WAAW,SAAS,mBAAmB,CAAC,EACpF,MAAM,EAAS,WAAW,SAAS,EAAS,WAAW,SAAS,oBAAoB,CAAC,EA6CxF,EAGL,eAAe,EAAM,EAAkB,CAEnC,IAAM,EAAS,MADG,GAAU,QAAQ,EACL,UAAU,kCAAkC,EACrE,EAAW,IAAI,EAAQ,CAAM,EAEnC,MAAM,EAAS,QAAQ,EACvB,MAAM,EAAS,QAAQ,MAAM,EAE7B,IAAM,EAAc,MAAM,EAAS,QAAQ,IAAI,SAAY,MAAM,GAAO,WAAW,CAAC,EAEpF,QAAQ,IAAI,CACR,oBAAqB,EAAY,oBACjC,2BAA4B,EAAY,2BAA2B,SAAS,KAAK,EACjF,UAAW,EAAY,UAAU,SAAS,KAAK,EAC/C,UAAW,EAAY,UAAU,SAAS,KAAK,EAC/C,UAAW,EAAY,UAAU,SAAS,KAAK,CACnD,CAAC,EAGL,IAAM,GAAO,QAAQ,KAAK,IAAM,KAEhC,OAAQ,QACC,UACD,MAAM,GAAQ,EACd,UAEC,KACD,MAAM,GAAG,EACT,UAEC,SACD,MAAM,GAAO,EACb,cAGA,QAAQ,MAAM,gBAAgB,sDAAwD,EACtF",
94
- "debugId": "46A4987225C7348364756E2164756E21",
95
- "names": []
96
- }