@cemscale-voip/voip-sdk 2.0.15 → 2.0.17
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/README.md +203 -331
- package/dist/client.d.ts +19 -213
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +24 -219
- package/dist/client.js.map +1 -1
- package/dist/hooks/useVoIP.d.ts +9 -7
- package/dist/hooks/useVoIP.d.ts.map +1 -1
- package/dist/hooks/useVoIP.js +95 -57
- package/dist/hooks/useVoIP.js.map +1 -1
- package/dist/types.d.ts +27 -211
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { VoIPClientConfig, RequestOptions, SipProvisioningInfo, LoginParams, AdminLoginParams, AuthResponse, TurnCredentials, CallListParams, CallListResponse, CallRecord, OriginateParams, OriginateResponse, TransferParams, EavesdropResponse, ActiveCall, CallStats, ExportCallsParams, Extension, CreateExtensionParams, UpdateExtensionParams, Tenant, CreateTenantParams, UpdateTenantParams, DidNumber, CreateDidParams, UpdateDidParams, WhatsAppNumber, ProvisionWhatsAppParams, ProvisionWhatsAppResponse, UpdateWhatsAppParams, IvrMenu, CreateIvrParams, UpdateIvrParams, IvrTtsParams, IvrVoice, PresenceMap, PresenceDetailMap, WsMessage, RecordingUrlResponse, RecordingListParams, RecordingListResponse, Conference, RingGroup, CreateRingGroupParams, CallQueue, CreateQueueParams, QueueStats, Webhook, WebhookDelivery, CreateWebhookParams, VoicemailMessage, VoicemailListParams, VoicemailListResponse, VoicemailCountResponse, VoicemailGreeting, UpdateGreetingParams, CallForwardParams, CallForwardResponse, ParkedCall, PaginationInfo, DashboardStats, CallsByDayResponse, TopExtensionsResponse, BlockedNumber, CreateBlockedNumberParams, BlocklistCheckResponse, BusinessSchedule, CreateScheduleParams, ScheduleStatusResponse, SipTrunk, CreateTrunkParams, GatewayStatus, SipCredentials, ApiKey, CreateApiKeyParams, UpdateApiKeyParams, AddParticipantParams, AddParticipantResponse, MergeCallsParams, MergeCallsResponse, SwapParticipantParams, SwapParticipantResponse, MergeDirectParams, MergeDirectResponse, AiAgentListResponse, AiAgentResponse, AiAgentCreateParams, AiAgentUpdateParams, AiAgentMoveResponse, AiBridgeHealthResponse, AiCallHistoryResponse, PagingGroup, CreatePagingGroupParams, UpdatePagingGroupParams, BroadcastResult, AiVoiceListResponse, VoicePreviewParams } from './types.js';
|
|
1
|
+
import type { VoIPClientConfig, RequestOptions, SipProvisioningInfo, LoginParams, AdminLoginParams, AuthResponse, TurnCredentials, CallListParams, CallListResponse, CallRecord, OriginateParams, OriginateResponse, TransferParams, EavesdropResponse, ActiveCall, CallStats, ExportCallsParams, Extension, CreateExtensionParams, UpdateExtensionParams, Tenant, CreateTenantParams, UpdateTenantParams, DidNumber, CreateDidParams, UpdateDidParams, WhatsAppNumber, ProvisionWhatsAppParams, ProvisionWhatsAppResponse, UpdateWhatsAppParams, IvrMenu, CreateIvrParams, UpdateIvrParams, IvrTtsParams, IvrVoice, PresenceMap, PresenceDetailMap, WsMessage, RecordingUrlResponse, RecordingListParams, RecordingListResponse, Conference, RingGroup, CreateRingGroupParams, CallQueue, CreateQueueParams, QueueStats, Webhook, WebhookDelivery, CreateWebhookParams, VoicemailMessage, VoicemailListParams, VoicemailListResponse, VoicemailCountResponse, VoicemailGreeting, UpdateGreetingParams, CallForwardParams, CallForwardResponse, ParkedCall, PaginationInfo, DashboardStats, CallsByDayResponse, TopExtensionsResponse, BlockedNumber, CreateBlockedNumberParams, BlocklistCheckResponse, BusinessSchedule, CreateScheduleParams, ScheduleStatusResponse, SipTrunk, CreateTrunkParams, GatewayStatus, SipCredentials, ApiKey, CreateApiKeyParams, UpdateApiKeyParams, AddParticipantParams, AddParticipantResponse, CancelAddParticipantParams, MergeThreeWayParams, MergeThreeWayResponse, KickParticipantParams, KickParticipantResponse, MergeCallsParams, MergeCallsResponse, SwapParticipantParams, SwapParticipantResponse, MergeDirectParams, MergeDirectResponse, ThreeWayParticipant, AiAgentListResponse, AiAgentResponse, AiAgentCreateParams, AiAgentUpdateParams, AiAgentMoveResponse, AiBridgeHealthResponse, AiCallHistoryResponse, PagingGroup, CreatePagingGroupParams, UpdatePagingGroupParams, BroadcastResult, AiVoiceListResponse, VoicePreviewParams } from './types.js';
|
|
2
2
|
import { AiPlaygroundSession } from './playground.js';
|
|
3
3
|
declare class HttpError extends Error {
|
|
4
4
|
status: number;
|
|
@@ -1095,47 +1095,20 @@ export declare class VoIPClient {
|
|
|
1095
1095
|
* @see swapCallParticipant (go private with one party)
|
|
1096
1096
|
*/
|
|
1097
1097
|
addCallParticipant(callUuid: string, params: AddParticipantParams, options?: RequestOptions): Promise<AddParticipantResponse>;
|
|
1098
|
-
|
|
1099
|
-
* Cancel a pending add-participant operation (timeout/cancel recovery).
|
|
1100
|
-
*
|
|
1101
|
-
* @description
|
|
1102
|
-
* After calling `addCallParticipant()`, if Person B:
|
|
1103
|
-
* - Doesn't answer within the timeout window (30s for PSTN, 60s for extension)
|
|
1104
|
-
* - Is busy / unavailable
|
|
1105
|
-
* - The user clicks "Cancel" before Person B answers
|
|
1106
|
-
*
|
|
1107
|
-
* Call this to clean up: hangup Person B, unmute Person A, and leave WebRTC + A
|
|
1108
|
-
* in the conference room (2-person conference works fine).
|
|
1109
|
-
*
|
|
1110
|
-
* @param callUuidB — Person B's FreeSWITCH channel UUID (from `addCallParticipant().newCallUuid`)
|
|
1111
|
-
* @param bridgedLegA — Person A's PSTN leg UUID (from `addCallParticipant().originalBridgedLeg`)
|
|
1112
|
-
* @param conferenceName — Conference room name (from `addCallParticipant().conferenceName`)
|
|
1113
|
-
*
|
|
1114
|
-
* @returns `{ message: "Add participant cancelled — call continues with 2 parties" }`
|
|
1115
|
-
*
|
|
1116
|
-
* @example
|
|
1117
|
-
* ```typescript
|
|
1118
|
-
* // Set up a 30-second timeout for PSTN calls
|
|
1119
|
-
* const { newCallUuid, originalBridgedLeg, conferenceName } = await voip.addCallParticipant(
|
|
1120
|
-
* fsUuid, { toNumber: '+17865559999' }
|
|
1121
|
-
* );
|
|
1122
|
-
*
|
|
1123
|
-
* const timeout = setTimeout(async () => {
|
|
1124
|
-
* await voip.cancelAddParticipant(newCallUuid, originalBridgedLeg, conferenceName);
|
|
1125
|
-
* showNotification('Person B did not answer');
|
|
1126
|
-
* }, 30000);
|
|
1127
|
-
*
|
|
1128
|
-
* // Clear timeout if they answer
|
|
1129
|
-
* voip.on('call_answer', (data) => {
|
|
1130
|
-
* if (data.call_uuid === newCallUuid) {
|
|
1131
|
-
* clearTimeout(timeout);
|
|
1132
|
-
* voip.mergeCalls({ callUuidA: fsUuid, callUuidB: newCallUuid, bridgedLegA: originalBridgedLeg, conferenceName });
|
|
1133
|
-
* }
|
|
1134
|
-
* });
|
|
1135
|
-
* ```
|
|
1136
|
-
*/
|
|
1137
|
-
cancelAddParticipant(callUuidB: string, bridgedLegA: string, conferenceName?: string): Promise<{
|
|
1098
|
+
cancelAddParticipant(params: CancelAddParticipantParams, options?: RequestOptions): Promise<{
|
|
1138
1099
|
message: string;
|
|
1100
|
+
conferenceName: string;
|
|
1101
|
+
participants: ThreeWayParticipant[];
|
|
1102
|
+
}>;
|
|
1103
|
+
swapCallParticipant(params: SwapParticipantParams, options?: RequestOptions): Promise<SwapParticipantResponse>;
|
|
1104
|
+
mergeThreeWay(params: MergeThreeWayParams, options?: RequestOptions): Promise<MergeThreeWayResponse>;
|
|
1105
|
+
kickParticipant(params: KickParticipantParams, options?: RequestOptions): Promise<KickParticipantResponse>;
|
|
1106
|
+
getConferenceMembers(conferenceName: string, options?: RequestOptions): Promise<{
|
|
1107
|
+
conference: {
|
|
1108
|
+
name: string;
|
|
1109
|
+
memberCount: number;
|
|
1110
|
+
members: ThreeWayParticipant[];
|
|
1111
|
+
};
|
|
1139
1112
|
}>;
|
|
1140
1113
|
/**
|
|
1141
1114
|
* Merge two active call legs into a three-way conference room (Step 2 of three-way calling).
|
|
@@ -1238,179 +1211,12 @@ export declare class VoIPClient {
|
|
|
1238
1211
|
* @see swapCallParticipant (go private with one party)
|
|
1239
1212
|
* @see mergeDirectCalls (skip addCallParticipant — merge two existing calls)
|
|
1240
1213
|
*/
|
|
1214
|
+
/** @deprecated Use mergeThreeWay() instead. Conference is active from addCallParticipant(). */
|
|
1241
1215
|
mergeCalls(params: MergeCallsParams, options?: RequestOptions): Promise<MergeCallsResponse>;
|
|
1242
|
-
/**
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
* @description
|
|
1247
|
-
* In a three-way conference call, you might need to have a private conversation with
|
|
1248
|
-
* just one participant while the other waits on hold. This method removes one
|
|
1249
|
-
* participant from the conference (they hear hold music) and keeps the other
|
|
1250
|
-
* connected. The held participant can be brought back by calling `mergeCalls()` again.
|
|
1251
|
-
*
|
|
1252
|
-
* **Use case:** You're on a call with a customer (A) and your manager (B).
|
|
1253
|
-
* You need to discuss something privately with your manager:
|
|
1254
|
-
* 1. `swapCallParticipant({ keepUuid: managerUuid, holdUuid: customerUuid })`
|
|
1255
|
-
* 2. Now you and your manager can talk privately — the customer hears hold music
|
|
1256
|
-
* 3. `mergeCalls()` — Bring all three back together
|
|
1257
|
-
*
|
|
1258
|
-
* **CRM UI guidance:**
|
|
1259
|
-
* - Show a "Private" or "Talk Privately" button next to each participant
|
|
1260
|
-
* - After swapping, the held participant's card should show "On Hold" with a "Rejoin" button
|
|
1261
|
-
* - The active participant's card should show "Private Conversation"
|
|
1262
|
-
* - Show a "Rejoin All" button that calls `mergeCalls()` to restore the full conference
|
|
1263
|
-
*
|
|
1264
|
-
* @param params — Swap parameters
|
|
1265
|
-
* @param params.conferenceName — The conference room name, returned by `mergeCalls()`
|
|
1266
|
-
* or `mergeDirectCalls()`. Example: `'conf-abc123'`
|
|
1267
|
-
* @param params.keepUuid — The FreeSWITCH channel UUID of the participant to KEEP
|
|
1268
|
-
* active in the conference (talk privately with this person).
|
|
1269
|
-
* Get this from `mergeCalls()` → `participants[].uuid`.
|
|
1270
|
-
* Example: `'b2c3d4e5-f6a7-8901-bcde-f12345678901'`
|
|
1271
|
-
* @param params.holdUuid — The FreeSWITCH channel UUID of the participant to PLACE
|
|
1272
|
-
* ON HOLD (remove from conference — they hear hold music).
|
|
1273
|
-
* Get this from `mergeCalls()` → `participants[].uuid`.
|
|
1274
|
-
* Example: `'a1b2c3d4-e5f6-7890-abcd-ef1234567890'`
|
|
1275
|
-
* @param options — Optional request overrides
|
|
1276
|
-
* @param options.tenantId — Target tenant UUID (required for superadmin keys only)
|
|
1277
|
-
*
|
|
1278
|
-
* @returns An object containing:
|
|
1279
|
-
* - `message: string` — Confirmation message
|
|
1280
|
-
* - `conferenceName: string` — The same conference name (for subsequent operations)
|
|
1281
|
-
* - `activeUuid: string` — The UUID of the participant still in the conference (the one you kept)
|
|
1282
|
-
* - `heldUuid: string` — The UUID of the participant now on hold (the one you held)
|
|
1283
|
-
*
|
|
1284
|
-
* @throws {HttpError} 400 — Conference not found, UUIDs don't match participants, or invalid state
|
|
1285
|
-
* @throws {HttpError} 401 — Missing or invalid API key
|
|
1286
|
-
* @throws {HttpError} 500 — FreeSWITCH operation failed
|
|
1287
|
-
*
|
|
1288
|
-
* @example
|
|
1289
|
-
* ```typescript
|
|
1290
|
-
* // After mergeCalls, talk privately with the manager
|
|
1291
|
-
* const { conferenceName, participants } = await voip.mergeCalls({
|
|
1292
|
-
* callUuidA: selfUuid,
|
|
1293
|
-
* callUuidB: newCallUuid,
|
|
1294
|
-
* });
|
|
1295
|
-
*
|
|
1296
|
-
* const customer = participants.find(p => p.callerIdNumber === '+17865551234');
|
|
1297
|
-
* const manager = participants.find(p => p.callerIdNumber === '1002');
|
|
1298
|
-
*
|
|
1299
|
-
* // Go private with the manager — customer goes on hold
|
|
1300
|
-
* await voip.swapCallParticipant({
|
|
1301
|
-
* conferenceName,
|
|
1302
|
-
* keepUuid: manager.uuid,
|
|
1303
|
-
* holdUuid: customer.uuid,
|
|
1304
|
-
* });
|
|
1305
|
-
*
|
|
1306
|
-
* // CRM UI: Private conversation with manager
|
|
1307
|
-
* showPrivateBanner('Talking privately with Manager');
|
|
1308
|
-
* showOnHoldBanner(customer.callerIdNumber);
|
|
1309
|
-
*
|
|
1310
|
-
* // Bring everyone back
|
|
1311
|
-
* document.getElementById('rejoin-all-btn').onclick = async () => {
|
|
1312
|
-
* await voip.mergeCalls({
|
|
1313
|
-
* callUuidA: selfUuid,
|
|
1314
|
-
* callUuidB: manager.uuid,
|
|
1315
|
-
* });
|
|
1316
|
-
* showConferenceActiveBanner();
|
|
1317
|
-
* };
|
|
1318
|
-
*
|
|
1319
|
-
* // CRM UI: Swap to talk privately with customer while manager waits
|
|
1320
|
-
* await voip.swapCallParticipant({
|
|
1321
|
-
* conferenceName,
|
|
1322
|
-
* keepUuid: customer.uuid,
|
|
1323
|
-
* holdUuid: manager.uuid,
|
|
1324
|
-
* });
|
|
1325
|
-
* ```
|
|
1326
|
-
*
|
|
1327
|
-
* @see POST /api/calls/three-way/swap
|
|
1328
|
-
* @see mergeCalls (restore full three-way)
|
|
1329
|
-
*/
|
|
1330
|
-
swapCallParticipant(params: SwapParticipantParams, options?: RequestOptions): Promise<SwapParticipantResponse>;
|
|
1331
|
-
/**
|
|
1332
|
-
* Merge two independently-created calls directly into a conference — no
|
|
1333
|
-
* `addCallParticipant()` step required.
|
|
1334
|
-
*
|
|
1335
|
-
* @description
|
|
1336
|
-
* Unlike `mergeCalls()` which requires the `addCallParticipant()` → merge flow,
|
|
1337
|
-
* this method works with ANY two active call UUIDs from any source. Use this when:
|
|
1338
|
-
*
|
|
1339
|
-
* - A desk phone user puts call A on hold (using the phone's Hold button),
|
|
1340
|
-
* dials call B manually, and then wants to merge them
|
|
1341
|
-
* - Two WebRTC calls were originated separately via `originate()`
|
|
1342
|
-
* - You have two active call UUIDs from `getActiveCalls()` and want to merge them
|
|
1343
|
-
*
|
|
1344
|
-
* This is the lower-level "merge any two calls" endpoint. For the guided three-way
|
|
1345
|
-
* flow with auto-hold and dialing, use `addCallParticipant()` + `mergeCalls()` instead.
|
|
1346
|
-
*
|
|
1347
|
-
* **CRM UI guidance:**
|
|
1348
|
-
* - Use this for a "Merge" button in a multi-call view where the user has two
|
|
1349
|
-
* separate active calls
|
|
1350
|
-
* - Show both calls side by side with a "Merge Calls" button between them
|
|
1351
|
-
* - After merge, show the same conference participant panel as `mergeCalls()`
|
|
1352
|
-
*
|
|
1353
|
-
* @param params — Merge parameters
|
|
1354
|
-
* @param params.callUuidA — UUID of the first active call leg.
|
|
1355
|
-
* Example: `'a1b2c3d4-e5f6-7890-abcd-ef1234567890'`
|
|
1356
|
-
* @param params.callUuidB — UUID of the second active call leg.
|
|
1357
|
-
* Example: `'b2c3d4e5-f6a7-8901-bcde-f12345678901'`
|
|
1358
|
-
* @param params.conferenceName — Optional custom conference name. Auto-generated if omitted.
|
|
1359
|
-
* Example: `'manual-merge'`
|
|
1360
|
-
* @param options — Optional request overrides
|
|
1361
|
-
* @param options.tenantId — Target tenant UUID (required for superadmin keys only)
|
|
1362
|
-
*
|
|
1363
|
-
* @returns An object containing:
|
|
1364
|
-
* - `message: string` — Confirmation message
|
|
1365
|
-
* - `conferenceName: string` — The conference room name for subsequent operations
|
|
1366
|
-
* - `participants: ThreeWayParticipant[]` — All participants now in the conference.
|
|
1367
|
-
* Each has `uuid`, `memberId`, `callerIdNumber`, `callerIdName`, `muted`, and `status`.
|
|
1368
|
-
*
|
|
1369
|
-
* @throws {HttpError} 400 — One or both call UUIDs not found or already terminated
|
|
1370
|
-
* @throws {HttpError} 401 — Missing or invalid API key
|
|
1371
|
-
* @throws {HttpError} 500 — FreeSWITCH conference creation failed
|
|
1372
|
-
*
|
|
1373
|
-
* @example
|
|
1374
|
-
* ```typescript
|
|
1375
|
-
* // Desk phone user: held call A, dialed call B, now wants to merge
|
|
1376
|
-
* const { activeCalls } = await voip.getActiveCalls();
|
|
1377
|
-
*
|
|
1378
|
-
* // Find the two calls (one on hold, one active)
|
|
1379
|
-
* const heldCall = activeCalls.find(c => c.on_hold);
|
|
1380
|
-
* const activeCall = activeCalls.find(c => !c.on_hold && c.uuid !== heldCall?.uuid);
|
|
1381
|
-
*
|
|
1382
|
-
* if (heldCall && activeCall) {
|
|
1383
|
-
* const { conferenceName, participants } = await voip.mergeDirectCalls({
|
|
1384
|
-
* callUuidA: heldCall.uuid,
|
|
1385
|
-
* callUuidB: activeCall.uuid,
|
|
1386
|
-
* });
|
|
1387
|
-
* console.log(`Merged into conference: ${conferenceName}`);
|
|
1388
|
-
* }
|
|
1389
|
-
*
|
|
1390
|
-
* // CRM UI: Merge button for two active calls
|
|
1391
|
-
* async function mergeTwoCalls(uuid1: string, uuid2: string) {
|
|
1392
|
-
* try {
|
|
1393
|
-
* const { conferenceName, participants } = await voip.mergeDirectCalls({
|
|
1394
|
-
* callUuidA: uuid1,
|
|
1395
|
-
* callUuidB: uuid2,
|
|
1396
|
-
* });
|
|
1397
|
-
* showConferencePanel(conferenceName, participants);
|
|
1398
|
-
* hideMergeButton();
|
|
1399
|
-
* } catch (err) {
|
|
1400
|
-
* showError('Could not merge calls — one may have ended');
|
|
1401
|
-
* }
|
|
1402
|
-
* }
|
|
1403
|
-
*
|
|
1404
|
-
* // After merge, use the same conference operations
|
|
1405
|
-
* await voip.muteConferenceMember(conferenceName, participants[1].memberId, true);
|
|
1406
|
-
* await voip.kickFromConference(conferenceName, participants[2].memberId);
|
|
1407
|
-
* ```
|
|
1408
|
-
*
|
|
1409
|
-
* @see POST /api/calls/three-way/merge-direct
|
|
1410
|
-
* @see mergeCalls (guided three-way flow with addCallParticipant)
|
|
1411
|
-
* @see swapCallParticipant (go private with one party)
|
|
1412
|
-
*/
|
|
1413
|
-
mergeDirectCalls(params: MergeDirectParams, options?: RequestOptions): Promise<MergeDirectResponse>;
|
|
1216
|
+
/** @deprecated Use swapCallParticipant() with SwapParticipantParams. */
|
|
1217
|
+
swapCallParticipantOld(params: SwapParticipantParams, options?: RequestOptions): Promise<SwapParticipantResponse>;
|
|
1218
|
+
/** @deprecated Use addCallParticipant() + mergeThreeWay() instead. */
|
|
1219
|
+
mergeDirectCalls(_params: MergeDirectParams, _options?: RequestOptions): Promise<MergeDirectResponse>;
|
|
1414
1220
|
/**
|
|
1415
1221
|
* List all extensions for the current tenant.
|
|
1416
1222
|
*
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,OAAO,EACP,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,SAAS,EAET,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAItD,cAAM,SAAU,SAAQ,KAAK;IAElB,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,OAAO;gBAFb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO;CAKvB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC;AAIrB,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IACvC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,gBAAgB;IAYpC,2CAA2C;IAC3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAC/B,8BAA8B;IAC9B,SAAS,IAAI,MAAM,GAAG,IAAI;IAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,4BAA4B;IAC5B,QAAQ,IAAI,MAAM,GAAG,IAAI;IAEzB,8CAA8C;IAC9C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IACnC,WAAW,IAAI,MAAM,GAAG,IAAI;IAM5B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;YAKhB,OAAO;IAuDrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAOvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAOjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACG,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMtE,4BAA4B;IACtB,EAAE,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IAIlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAqBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwEG;IACG,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInE;;;;;;;;;;;;;;;;OAgBG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;IAIxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqEG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GAAG,UAAU,GAChC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4BzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;IAI/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoEG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,QAAQ,GAAG,SAAS,GAAG,OAAkB,GAC9C,OAAO,CAAC,iBAAiB,CAAC;IAI7B,gDAAgD;IAC1C,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GACnC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAI9D,wBAAwB;IAClB,cAAc,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsFG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,sBAAsB,CAAC;IAI5B,oBAAoB,CACxB,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IAItF,mBAAmB,CACvB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAI7B,aAAa,CACjB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,qBAAqB,CAAC;IAI3B,eAAe,CACnB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAI7B,oBAAoB,CACxB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,UAAU,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,mBAAmB,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IAIjG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoGG;IACH,+FAA+F;IACzF,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAOjG,wEAAwE;IAClE,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIvH,sEAAsE;IAChE,gBAAgB,CACpB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,mBAAmB,CAAC;IAQ/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAI5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4EG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAI3I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/D,iDAAiD;IAC3C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIvE,wCAAwC;IAClC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIlG,sCAAsC;IAChC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAIjF,0CAA0C;IACpC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE,CAAC;IAIpM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,cAAc,CAAA;KAAE,CAAC;IAYvI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAInD,0BAA0B;IACpB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxD,wCAAwC;IAClC,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3E,wCAAwC;IAClC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvF;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QACtC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,EAAE,EAAE,OAAO,CAAC;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,OAAO,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,OAAO,CAAC;YACnB,+CAA+C;YAC/C,WAAW,EAAE,MAAM,CAAC;YACpB,+DAA+D;YAC/D,gBAAgB,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAIF,4BAA4B;IACtB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAQ9G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAIhD,gFAAgF;IAC1E,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAA;KAAE,CAAC;IAI/F,6BAA6B;IACvB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAA;KAAE,CAAC;IAIrD,mBAAmB;IACb,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAA;KAAE,CAAC;IAIjF,mBAAmB;IACb,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQzD;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAInE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,iBAAiB,CACrB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,yBAAyB,CAAC;IAIrC;;;;;;;;;;OAUG;IACG,oBAAoB,CACxB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC;IAItC;;;;;;;;OAQG;IACG,oBAAoB,CACxB,EAAE,EAAE,MAAM,EACV,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA8B/B;;;;;;;;;;;;;;;OAeG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAM1E;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAIrF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,aAAa,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAIlG;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAInH;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI/G;;;;;OAKG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI/E;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI1E;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IAEH;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQnH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB;IAY3D,qBAAqB;IACf,YAAY,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAInD,4BAA4B;IACtB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAIxD,sFAAsF;IAChF,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlG,yBAAyB;IACnB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAIpF,6CAA6C;IACvC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI7D;;;;;;;;;OASG;IACG,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,UAAU,GAAG,SAAsB,GAC7C,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IA4B9C;;;;;;OAMG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,UAAU,GAAG,SAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAajG;;;;;OAKG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,UAAU,GAAG,SAAsB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAK9G;;;OAGG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAInG,kDAAkD;IAC5C,aAAa,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IAsCtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACG,cAAc,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,eAAe,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC;IAItE,kCAAkC;IAC5B,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgEG;IACG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkFG;IACG,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxH,sCAAsC;IAChC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxH,+BAA+B;IACzB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIhG,sCAAsC;IAChC,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQzH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAI5D,uBAAuB;IACjB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6EG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAIjH,0BAA0B;IACpB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,CAAC;IAI5G,0BAA0B;IACpB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,gBAAgB,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAIlE,yBAAyB;IACnB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,CAAC;IAIvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqEG;IACG,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,CAAC;IAIzH,4BAA4B;IACtB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,CAAC;IAI3G,4BAA4B;IACtB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0EG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAIpD,uBAAuB;IACjB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAIzD,uFAAuF;IACjF,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAIrG,0BAA0B;IACpB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAIhG,0BAA0B;IACpB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3D,kCAAkC;IAC5B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI7G,iCAAiC;IAC3B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/G,0EAA0E;IACpE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IAQpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACG,YAAY,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAIjF,iDAAiD;IAC3C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAIhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqEG;IACG,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,GAAG;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAI9H,uBAAuB;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAI3H,uBAAuB;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI7D,gCAAgC;IAC1B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3D,oCAAoC;IAC9B,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,eAAe,EAAE,CAAC;QAAC,UAAU,EAAE,cAAc,CAAA;KAAE,CAAC;IAQ9I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4DG;IACG,cAAc,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/D,6BAA6B;IACvB,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQhI,8DAA8D;IACxD,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI1E;;;;;;;;;;;;;;;;;;OAkBG;IACG,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;IAI1I;;;;;;;;;OASG;IACG,4BAA4B,CAChC,SAAS,EAAE,IAAI,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,OAAO,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IA0BzG,kEAAkE;IAC5D,4BAA4B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,WAAW,GAAG,iBAAiB,CAAA;KAAE,CAAC;IAO3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ7I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAIlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACG,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACG,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4DG;IACG,WAAW,CAAC,MAAM,EAAE,yBAAyB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC;IAInH,mCAAmC;IAC7B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0DG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAQnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAIjE,4BAA4B;IACtB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAItE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4DG;IACG,cAAc,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAIrH,uCAAuC;IACjC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAIhH,uCAAuC;IACjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAQpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IAInD,+CAA+C;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC;IAIxD;;;;;;OAMG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAIvJ;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC;IAI/F;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAI1F,0DAA0D;IACpD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;KAAE,CAAC;IAIhH,oDAAoD;IAC9C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAI5G,6CAA6C;IACvC,kBAAkB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAQ3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACG,WAAW,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAInD,kCAAkC;IAC5B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwFG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIrG,yDAAyD;IACnD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvF,yEAAyE;IACnE,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5D,8EAA8E;IACxE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ/D,yCAAyC;IACzC,gBAAgB,IAAI,IAAI;IA+CxB,+BAA+B;IAC/B,mBAAmB,IAAI,IAAI;IAY3B,wDAAwD;IACxD,oBAAoB,IAAI,OAAO;IAI/B,yEAAyE;IACzE,SAAS,CAAC,CAAC,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAQpF,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAQnB,8CAA8C;IAC9C,OAAO,IAAI,IAAI;CAMhB"}
|
package/dist/client.js
CHANGED
|
@@ -1243,51 +1243,20 @@ export class VoIPClient {
|
|
|
1243
1243
|
async addCallParticipant(callUuid, params, options) {
|
|
1244
1244
|
return this.request('POST', `/api/calls/${callUuid}/add-participant`, params, undefined, options);
|
|
1245
1245
|
}
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
* @param conferenceName — Conference room name (from `addCallParticipant().conferenceName`)
|
|
1261
|
-
*
|
|
1262
|
-
* @returns `{ message: "Add participant cancelled — call continues with 2 parties" }`
|
|
1263
|
-
*
|
|
1264
|
-
* @example
|
|
1265
|
-
* ```typescript
|
|
1266
|
-
* // Set up a 30-second timeout for PSTN calls
|
|
1267
|
-
* const { newCallUuid, originalBridgedLeg, conferenceName } = await voip.addCallParticipant(
|
|
1268
|
-
* fsUuid, { toNumber: '+17865559999' }
|
|
1269
|
-
* );
|
|
1270
|
-
*
|
|
1271
|
-
* const timeout = setTimeout(async () => {
|
|
1272
|
-
* await voip.cancelAddParticipant(newCallUuid, originalBridgedLeg, conferenceName);
|
|
1273
|
-
* showNotification('Person B did not answer');
|
|
1274
|
-
* }, 30000);
|
|
1275
|
-
*
|
|
1276
|
-
* // Clear timeout if they answer
|
|
1277
|
-
* voip.on('call_answer', (data) => {
|
|
1278
|
-
* if (data.call_uuid === newCallUuid) {
|
|
1279
|
-
* clearTimeout(timeout);
|
|
1280
|
-
* voip.mergeCalls({ callUuidA: fsUuid, callUuidB: newCallUuid, bridgedLegA: originalBridgedLeg, conferenceName });
|
|
1281
|
-
* }
|
|
1282
|
-
* });
|
|
1283
|
-
* ```
|
|
1284
|
-
*/
|
|
1285
|
-
async cancelAddParticipant(callUuidB, bridgedLegA, conferenceName) {
|
|
1286
|
-
return this.request('POST', '/api/calls/three-way/cancel-add', {
|
|
1287
|
-
callUuidB,
|
|
1288
|
-
bridgedLegA,
|
|
1289
|
-
conferenceName,
|
|
1290
|
-
});
|
|
1246
|
+
async cancelAddParticipant(params, options) {
|
|
1247
|
+
return this.request('POST', '/api/calls/three-way/cancel-add', params, undefined, options);
|
|
1248
|
+
}
|
|
1249
|
+
async swapCallParticipant(params, options) {
|
|
1250
|
+
return this.request('POST', '/api/calls/three-way/swap', params, undefined, options);
|
|
1251
|
+
}
|
|
1252
|
+
async mergeThreeWay(params, options) {
|
|
1253
|
+
return this.request('POST', '/api/calls/three-way/merge', params, undefined, options);
|
|
1254
|
+
}
|
|
1255
|
+
async kickParticipant(params, options) {
|
|
1256
|
+
return this.request('POST', '/api/calls/three-way/kick', params, undefined, options);
|
|
1257
|
+
}
|
|
1258
|
+
async getConferenceMembers(conferenceName, options) {
|
|
1259
|
+
return this.request('GET', `/api/conferences/${conferenceName}`, undefined, undefined, options);
|
|
1291
1260
|
}
|
|
1292
1261
|
/**
|
|
1293
1262
|
* Merge two active call legs into a three-way conference room (Step 2 of three-way calling).
|
|
@@ -1390,184 +1359,20 @@ export class VoIPClient {
|
|
|
1390
1359
|
* @see swapCallParticipant (go private with one party)
|
|
1391
1360
|
* @see mergeDirectCalls (skip addCallParticipant — merge two existing calls)
|
|
1392
1361
|
*/
|
|
1362
|
+
/** @deprecated Use mergeThreeWay() instead. Conference is active from addCallParticipant(). */
|
|
1393
1363
|
async mergeCalls(params, options) {
|
|
1394
|
-
|
|
1364
|
+
if (!params.conferenceName) {
|
|
1365
|
+
throw new Error('mergeCalls is deprecated. Use mergeThreeWay() with the conferenceName returned by addCallParticipant().');
|
|
1366
|
+
}
|
|
1367
|
+
return this.mergeThreeWay({ conferenceName: params.conferenceName }, options);
|
|
1395
1368
|
}
|
|
1396
|
-
/**
|
|
1397
|
-
|
|
1398
|
-
* with one person while the other is placed on hold.
|
|
1399
|
-
*
|
|
1400
|
-
* @description
|
|
1401
|
-
* In a three-way conference call, you might need to have a private conversation with
|
|
1402
|
-
* just one participant while the other waits on hold. This method removes one
|
|
1403
|
-
* participant from the conference (they hear hold music) and keeps the other
|
|
1404
|
-
* connected. The held participant can be brought back by calling `mergeCalls()` again.
|
|
1405
|
-
*
|
|
1406
|
-
* **Use case:** You're on a call with a customer (A) and your manager (B).
|
|
1407
|
-
* You need to discuss something privately with your manager:
|
|
1408
|
-
* 1. `swapCallParticipant({ keepUuid: managerUuid, holdUuid: customerUuid })`
|
|
1409
|
-
* 2. Now you and your manager can talk privately — the customer hears hold music
|
|
1410
|
-
* 3. `mergeCalls()` — Bring all three back together
|
|
1411
|
-
*
|
|
1412
|
-
* **CRM UI guidance:**
|
|
1413
|
-
* - Show a "Private" or "Talk Privately" button next to each participant
|
|
1414
|
-
* - After swapping, the held participant's card should show "On Hold" with a "Rejoin" button
|
|
1415
|
-
* - The active participant's card should show "Private Conversation"
|
|
1416
|
-
* - Show a "Rejoin All" button that calls `mergeCalls()` to restore the full conference
|
|
1417
|
-
*
|
|
1418
|
-
* @param params — Swap parameters
|
|
1419
|
-
* @param params.conferenceName — The conference room name, returned by `mergeCalls()`
|
|
1420
|
-
* or `mergeDirectCalls()`. Example: `'conf-abc123'`
|
|
1421
|
-
* @param params.keepUuid — The FreeSWITCH channel UUID of the participant to KEEP
|
|
1422
|
-
* active in the conference (talk privately with this person).
|
|
1423
|
-
* Get this from `mergeCalls()` → `participants[].uuid`.
|
|
1424
|
-
* Example: `'b2c3d4e5-f6a7-8901-bcde-f12345678901'`
|
|
1425
|
-
* @param params.holdUuid — The FreeSWITCH channel UUID of the participant to PLACE
|
|
1426
|
-
* ON HOLD (remove from conference — they hear hold music).
|
|
1427
|
-
* Get this from `mergeCalls()` → `participants[].uuid`.
|
|
1428
|
-
* Example: `'a1b2c3d4-e5f6-7890-abcd-ef1234567890'`
|
|
1429
|
-
* @param options — Optional request overrides
|
|
1430
|
-
* @param options.tenantId — Target tenant UUID (required for superadmin keys only)
|
|
1431
|
-
*
|
|
1432
|
-
* @returns An object containing:
|
|
1433
|
-
* - `message: string` — Confirmation message
|
|
1434
|
-
* - `conferenceName: string` — The same conference name (for subsequent operations)
|
|
1435
|
-
* - `activeUuid: string` — The UUID of the participant still in the conference (the one you kept)
|
|
1436
|
-
* - `heldUuid: string` — The UUID of the participant now on hold (the one you held)
|
|
1437
|
-
*
|
|
1438
|
-
* @throws {HttpError} 400 — Conference not found, UUIDs don't match participants, or invalid state
|
|
1439
|
-
* @throws {HttpError} 401 — Missing or invalid API key
|
|
1440
|
-
* @throws {HttpError} 500 — FreeSWITCH operation failed
|
|
1441
|
-
*
|
|
1442
|
-
* @example
|
|
1443
|
-
* ```typescript
|
|
1444
|
-
* // After mergeCalls, talk privately with the manager
|
|
1445
|
-
* const { conferenceName, participants } = await voip.mergeCalls({
|
|
1446
|
-
* callUuidA: selfUuid,
|
|
1447
|
-
* callUuidB: newCallUuid,
|
|
1448
|
-
* });
|
|
1449
|
-
*
|
|
1450
|
-
* const customer = participants.find(p => p.callerIdNumber === '+17865551234');
|
|
1451
|
-
* const manager = participants.find(p => p.callerIdNumber === '1002');
|
|
1452
|
-
*
|
|
1453
|
-
* // Go private with the manager — customer goes on hold
|
|
1454
|
-
* await voip.swapCallParticipant({
|
|
1455
|
-
* conferenceName,
|
|
1456
|
-
* keepUuid: manager.uuid,
|
|
1457
|
-
* holdUuid: customer.uuid,
|
|
1458
|
-
* });
|
|
1459
|
-
*
|
|
1460
|
-
* // CRM UI: Private conversation with manager
|
|
1461
|
-
* showPrivateBanner('Talking privately with Manager');
|
|
1462
|
-
* showOnHoldBanner(customer.callerIdNumber);
|
|
1463
|
-
*
|
|
1464
|
-
* // Bring everyone back
|
|
1465
|
-
* document.getElementById('rejoin-all-btn').onclick = async () => {
|
|
1466
|
-
* await voip.mergeCalls({
|
|
1467
|
-
* callUuidA: selfUuid,
|
|
1468
|
-
* callUuidB: manager.uuid,
|
|
1469
|
-
* });
|
|
1470
|
-
* showConferenceActiveBanner();
|
|
1471
|
-
* };
|
|
1472
|
-
*
|
|
1473
|
-
* // CRM UI: Swap to talk privately with customer while manager waits
|
|
1474
|
-
* await voip.swapCallParticipant({
|
|
1475
|
-
* conferenceName,
|
|
1476
|
-
* keepUuid: customer.uuid,
|
|
1477
|
-
* holdUuid: manager.uuid,
|
|
1478
|
-
* });
|
|
1479
|
-
* ```
|
|
1480
|
-
*
|
|
1481
|
-
* @see POST /api/calls/three-way/swap
|
|
1482
|
-
* @see mergeCalls (restore full three-way)
|
|
1483
|
-
*/
|
|
1484
|
-
async swapCallParticipant(params, options) {
|
|
1369
|
+
/** @deprecated Use swapCallParticipant() with SwapParticipantParams. */
|
|
1370
|
+
async swapCallParticipantOld(params, options) {
|
|
1485
1371
|
return this.request('POST', '/api/calls/three-way/swap', params, undefined, options);
|
|
1486
1372
|
}
|
|
1487
|
-
/**
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
*
|
|
1491
|
-
* @description
|
|
1492
|
-
* Unlike `mergeCalls()` which requires the `addCallParticipant()` → merge flow,
|
|
1493
|
-
* this method works with ANY two active call UUIDs from any source. Use this when:
|
|
1494
|
-
*
|
|
1495
|
-
* - A desk phone user puts call A on hold (using the phone's Hold button),
|
|
1496
|
-
* dials call B manually, and then wants to merge them
|
|
1497
|
-
* - Two WebRTC calls were originated separately via `originate()`
|
|
1498
|
-
* - You have two active call UUIDs from `getActiveCalls()` and want to merge them
|
|
1499
|
-
*
|
|
1500
|
-
* This is the lower-level "merge any two calls" endpoint. For the guided three-way
|
|
1501
|
-
* flow with auto-hold and dialing, use `addCallParticipant()` + `mergeCalls()` instead.
|
|
1502
|
-
*
|
|
1503
|
-
* **CRM UI guidance:**
|
|
1504
|
-
* - Use this for a "Merge" button in a multi-call view where the user has two
|
|
1505
|
-
* separate active calls
|
|
1506
|
-
* - Show both calls side by side with a "Merge Calls" button between them
|
|
1507
|
-
* - After merge, show the same conference participant panel as `mergeCalls()`
|
|
1508
|
-
*
|
|
1509
|
-
* @param params — Merge parameters
|
|
1510
|
-
* @param params.callUuidA — UUID of the first active call leg.
|
|
1511
|
-
* Example: `'a1b2c3d4-e5f6-7890-abcd-ef1234567890'`
|
|
1512
|
-
* @param params.callUuidB — UUID of the second active call leg.
|
|
1513
|
-
* Example: `'b2c3d4e5-f6a7-8901-bcde-f12345678901'`
|
|
1514
|
-
* @param params.conferenceName — Optional custom conference name. Auto-generated if omitted.
|
|
1515
|
-
* Example: `'manual-merge'`
|
|
1516
|
-
* @param options — Optional request overrides
|
|
1517
|
-
* @param options.tenantId — Target tenant UUID (required for superadmin keys only)
|
|
1518
|
-
*
|
|
1519
|
-
* @returns An object containing:
|
|
1520
|
-
* - `message: string` — Confirmation message
|
|
1521
|
-
* - `conferenceName: string` — The conference room name for subsequent operations
|
|
1522
|
-
* - `participants: ThreeWayParticipant[]` — All participants now in the conference.
|
|
1523
|
-
* Each has `uuid`, `memberId`, `callerIdNumber`, `callerIdName`, `muted`, and `status`.
|
|
1524
|
-
*
|
|
1525
|
-
* @throws {HttpError} 400 — One or both call UUIDs not found or already terminated
|
|
1526
|
-
* @throws {HttpError} 401 — Missing or invalid API key
|
|
1527
|
-
* @throws {HttpError} 500 — FreeSWITCH conference creation failed
|
|
1528
|
-
*
|
|
1529
|
-
* @example
|
|
1530
|
-
* ```typescript
|
|
1531
|
-
* // Desk phone user: held call A, dialed call B, now wants to merge
|
|
1532
|
-
* const { activeCalls } = await voip.getActiveCalls();
|
|
1533
|
-
*
|
|
1534
|
-
* // Find the two calls (one on hold, one active)
|
|
1535
|
-
* const heldCall = activeCalls.find(c => c.on_hold);
|
|
1536
|
-
* const activeCall = activeCalls.find(c => !c.on_hold && c.uuid !== heldCall?.uuid);
|
|
1537
|
-
*
|
|
1538
|
-
* if (heldCall && activeCall) {
|
|
1539
|
-
* const { conferenceName, participants } = await voip.mergeDirectCalls({
|
|
1540
|
-
* callUuidA: heldCall.uuid,
|
|
1541
|
-
* callUuidB: activeCall.uuid,
|
|
1542
|
-
* });
|
|
1543
|
-
* console.log(`Merged into conference: ${conferenceName}`);
|
|
1544
|
-
* }
|
|
1545
|
-
*
|
|
1546
|
-
* // CRM UI: Merge button for two active calls
|
|
1547
|
-
* async function mergeTwoCalls(uuid1: string, uuid2: string) {
|
|
1548
|
-
* try {
|
|
1549
|
-
* const { conferenceName, participants } = await voip.mergeDirectCalls({
|
|
1550
|
-
* callUuidA: uuid1,
|
|
1551
|
-
* callUuidB: uuid2,
|
|
1552
|
-
* });
|
|
1553
|
-
* showConferencePanel(conferenceName, participants);
|
|
1554
|
-
* hideMergeButton();
|
|
1555
|
-
* } catch (err) {
|
|
1556
|
-
* showError('Could not merge calls — one may have ended');
|
|
1557
|
-
* }
|
|
1558
|
-
* }
|
|
1559
|
-
*
|
|
1560
|
-
* // After merge, use the same conference operations
|
|
1561
|
-
* await voip.muteConferenceMember(conferenceName, participants[1].memberId, true);
|
|
1562
|
-
* await voip.kickFromConference(conferenceName, participants[2].memberId);
|
|
1563
|
-
* ```
|
|
1564
|
-
*
|
|
1565
|
-
* @see POST /api/calls/three-way/merge-direct
|
|
1566
|
-
* @see mergeCalls (guided three-way flow with addCallParticipant)
|
|
1567
|
-
* @see swapCallParticipant (go private with one party)
|
|
1568
|
-
*/
|
|
1569
|
-
async mergeDirectCalls(params, options) {
|
|
1570
|
-
return this.request('POST', '/api/calls/three-way/merge-direct', params, undefined, options);
|
|
1373
|
+
/** @deprecated Use addCallParticipant() + mergeThreeWay() instead. */
|
|
1374
|
+
async mergeDirectCalls(_params, _options) {
|
|
1375
|
+
throw new Error('mergeDirectCalls is deprecated and the backend endpoint has been removed. Use addCallParticipant() + mergeThreeWay() instead.');
|
|
1571
1376
|
}
|
|
1572
1377
|
// -------------------------------------------------------------------
|
|
1573
1378
|
// Extensions
|