@webex/calling 3.10.0-next.8 → 3.10.0-wxc-disconnect.1
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/CallHistory/CallHistory.js +41 -42
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +5 -120
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +6 -6
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +1 -2
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +43 -38
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +1 -4
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +207 -161
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +290 -152
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +53 -50
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +51 -93
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +1 -1
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +4 -5
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +3 -3
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +45 -39
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +3 -4
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Events/impl/index.js +1 -1
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Logger/index.js +3 -3
- package/dist/Logger/index.js.map +1 -1
- package/dist/Logger/index.test.js +1 -1
- package/dist/Logger/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +54 -47
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -10
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +32 -29
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +102 -77
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +59 -46
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +18 -44
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/common/Utils.js +2 -2
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +8 -4
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/testUtil.js +1 -2
- package/dist/common/testUtil.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +11 -20
- package/dist/module/CallSettings/UcmBackendConnector.js +2 -1
- package/dist/module/CallSettings/WxCallBackendConnector.js +15 -10
- package/dist/module/CallingClient/CallingClient.js +123 -83
- package/dist/module/CallingClient/calling/call.js +23 -17
- package/dist/module/CallingClient/registration/register.js +3 -3
- package/dist/module/CallingClient/registration/webWorker.js +2 -2
- package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
- package/dist/module/Contacts/ContactsClient.js +25 -19
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Logger/index.js +2 -2
- package/dist/module/Voicemail/BroadworksBackendConnector.js +18 -10
- package/dist/module/Voicemail/UcmBackendConnector.js +11 -7
- package/dist/module/Voicemail/Voicemail.js +68 -42
- package/dist/module/Voicemail/WxCallBackendConnector.js +28 -14
- package/dist/module/common/Utils.js +2 -2
- package/dist/module/common/testUtil.js +0 -1
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +0 -1
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +2 -1
- package/dist/types/Logger/index.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +0 -10
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +0 -1
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","global","crypto","randomUUID","jest","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","getMobiusClusters","fn","mockReturnValue","mockUSServiceHosts","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","callingClient","wrap","_callee$","_context","prev","next","_hostCatalog","_serviceUrls","mobius","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledTimes","toStrictEqual","stop","_callee2","_callee2$","_context2","mockCatalogEU","mockEUServiceHosts","toBe","afterEach","_callee4","_callee4$","_context4","_callee3","_callee3$","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_callee6$","_context6","indicator","domain","_callee5","_callee5$","_context5","serviceData","_callee7","_callee7$","_context7","t0","message","toEqual","assertions","_callee8","_callee8$","_context8","_callee0","_callee0$","_context0","_callee9","_callee9$","_context9","_callee1","_callee1$","_context1","CONTACT_CENTER","_callee11","_callee11$","_context11","_callee10","_callee10$","_context10","_callee12","_callee12$","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_callee13$","_context13","request","mockResolvedValueOnce","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","uri","concat","DISCOVERY_URL","addAuthHeader","headers","SPARK_USER_AGENT","getMockRequestTemplate","URL_ENDPOINT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_callee14$","_context14","statusCode","mockRejectedValueOnce","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_callee15$","_context15","mockReset","discovery","region","country","toHaveBeenCalledWith","METHOD_START_MESSAGE","toBeCalledOnceWith","toHaveBeenCalled","mobiusCluster","checkCluster","_ref16","_callee16","mockServiceHosts","mockCatalog","_callee16$","_context16","_x","_x2","each","_ref17","_callee17","clusterName","_callee17$","_context17","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","beforeEach","_callee18","_callee18$","_context18","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee19","_callee19$","_context19","useFakeTimers","registrationPayload","window","registration","register","callCollection","_callee20","g","clearKeepaliveSpy","offlineCb","_callee20$","_context20","fetch","mock","calls","stringContaining","_callee21","_callee21$","_context21","any","_callee22","onlineCb","_callee22$","_context22","String","_callee23","mercuryOfflineCb","_callee23$","_context23","mercury","on","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee24","handleConnectionRestoreSpy","mercuryOnlineCb","_callee24$","_context24","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee25","_callee25$","_context25","setStatus","RegistrationStatus","IDLE","_callee26","callKeepaliveSpy","deleteSpy","_callee26$","_context26","createCall","getActiveCalls","state","value","_callee27","_callee27$","_context27","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","url","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","URL","primary","backupMobiusUris","backup","beforeAll","_callee28","_callee28$","_context28","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee29","_callee29$","_context29","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","origRTCPeerConnection","_class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee30","_callee30$","_context30","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {CallType, RegistrationStatus, ServiceIndicator} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockUSServiceHosts);\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockEUServiceHosts);\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusHost']).toBe(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request.mockResolvedValueOnce(regionPayload).mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails with final error', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(regionPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(2);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n uri: `${DISCOVERY_URL}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n webex.internal.services.getMobiusClusters = jest.fn().mockReturnValue(mockServiceHosts);\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAKA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAC,sBAAA,CAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AAEA,IAAAU,MAAA,GAAAR,uBAAA,CAAAF,OAAA;AAAyC,IAAAW,KAAA,GAAAD,MAAA;AACzC,IAAAE,YAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AAQA,IAAAc,mBAAA,GAAAd,OAAA;AAEA,IAAAe,sBAAA,GAAAf,OAAA;AAeA,IAAAgB,KAAA,GAAAR,sBAAA,CAAAR,OAAA;AAEA,IAAAiB,iBAAA,GAAAjB,OAAA;AAGA,IAAAkB,WAAA,GAAAlB,OAAA;AACA,IAAAmB,OAAA,GAAAnB,OAAA;AACA,IAAAoB,8BAAA,GAAAZ,sBAAA,CAAAR,OAAA;AAAuE,SAAAE,wBAAAmB,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAArB,uBAAA,YAAAA,wBAAAmB,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,gBAAAW,OAAA,CAAAX,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAM,GAAA,CAAAZ,CAAA,UAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,GAAAM,CAAA,CAAAQ,GAAA,CAAAd,CAAA,EAAAQ,CAAA,cAAAO,EAAA,IAAAf,CAAA,gBAAAe,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,EAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,sBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,EAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,EAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,EAAA,IAAAf,CAAA,CAAAe,EAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAoB,aAAA,CAAArB,CAAA,OAAAsB,6BAAA,QAAAhB,CAAA,GAAAgB,6BAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAgB,gCAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,OAAA8B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,CAAAtB,OAAA,EAAAV,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAA8B,iCAAA,GAAAC,wBAAA,CAAAlC,CAAA,EAAAiC,iCAAA,CAAAhC,CAAA,KAAAmB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,GAAA8B,OAAA,WAAA5B,CAAA,IAAAe,sBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAgB,gCAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA,IAvCvE;AAyCAmC,MAAM,CAACC,MAAM,GAAG;EACdC,UAAU,EAAE,SAAAA,WAAA;IAAA,OAAM,sCAAsC;EAAA;AAC1D,CAAsB;AAEtBC,IAAI,CAACC,KAAK,CAACjD,KAAK,EAAE,YAAY,CAAC,CAACkD,iBAAiB,CAACC,SAAS,CAAC;AAE5DC,QAAQ,CAAC,qBAAqB,EAAE,YAAM;EACpC;;EAEA,IAAMC,cAAc,GAAGL,IAAI,CAACC,KAAK,CAACjD,KAAK,EAAE,2BAA2B,CAAC;EACrE,IAAMsD,YAAY,GAAGN,IAAI,CAACC,KAAK,CAAC3D,KAAK,EAAE,WAAW,CAAC;EACnD,IAAMiE,KAAK,GAAG,IAAAC,2BAAiB,EAAC,CAAC;EACjCD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,GAAGC,oCAAa;EACvDJ,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACE,iBAAiB,GAAGZ,IAAI,CAACa,EAAE,CAAC,CAAC,CAACC,eAAe,CAACC,yCAAkB,CAAC;EACzF,IAAMC,uBAAuB,GAAGC,wBAAgB,CAACC,OAAO;EACxD,IAAMC,WAAW,GAAG,IAAAC,2BAAc,EAACb,KAAK,EAAES,uBAAuB,CAAC;EAElE,IAAMK,OAAO,GAAGrB,IAAI,CAACC,KAAK,CAACqB,eAAG,EAAE,MAAM,CAAC;EACvC,IAAMC,MAAM,GAAGvB,IAAI,CAACC,KAAK,CAACqB,eAAG,EAAE,KAAK,CAAC;EACrC,IAAME,OAAO,GAAGxB,IAAI,CAACC,KAAK,CAACqB,eAAG,EAAE,MAAM,CAAC;EAEvC,IAAMG,uBAAuB,GAAGC,OAAO,CAACC,QAAQ;EAChD,SAASC,aAAaA,CAAA,EAAG;IACvB,OAAO,IAAAC,QAAA,CAAAzD,OAAA,CAAY,UAAC0D,OAAO,EAAK;MAC9BL,uBAAuB,CAACK,OAAO,CAAC;IAClC,CAAC,CAAC;EACJ;EAEA1B,QAAQ,CAAC,4DAA4D,EAAE,YAAM;IAC3E2B,QAAQ,CAAC,YAAM;MACbZ,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCzB,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAC/C,uDAAuD;MACzDH,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,GAAGC,oCAAa;IACzD,CAAC,CAAC;IAEFsB,EAAE,CAAC,oEAAoE,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAC,QAAA;MAAA,IAAAC,aAAA;MAAA,OAAAH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YACvEpC,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACkC,YAAY,GAAGjC,oCAAa;YACpDJ,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACmC,YAAY,CAACC,MAAM,GAAG,aAAa;YAACL,QAAA,CAAAE,IAAA;YAAA,OAEhC,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAAG,QAAA,CAAAW,IAAA;YACnBC,MAAM,CAAC/C,YAAY,CAAC,CAACgD,qBAAqB,CAAC,CAAC,CAAC;YAC7CD,MAAM,CAACf,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAACiB,aAAa,CAACxC,yCAAkB,CAAC;UAAC;UAAA;YAAA,OAAA0B,QAAA,CAAAe,IAAA;QAAA;MAAA,GAAAnB,OAAA;IAAA,CAC3E,GAAC;IAEFJ,EAAE,CAAC,0DAA0D,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAqB,SAAA;MAAA,IAAAnB,aAAA;MAAA,OAAAH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAmB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAjB,IAAA,GAAAiB,SAAA,CAAAhB,IAAA;UAAA;YAC7DpC,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACkC,YAAY,GAAGgB,oCAAa;YACpDrD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACE,iBAAiB,GAAGZ,IAAI,CAACa,EAAE,CAAC,CAAC,CAACC,eAAe,CAAC+C,yCAAkB,CAAC;YACzFtD,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,GAC/C,yDAAyD;YAACiD,SAAA,CAAAhB,IAAA;YAAA,OAEhC,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAAqB,SAAA,CAAAP,IAAA;YAEnBC,MAAM,CAACf,aAAa,CAAC,YAAY,CAAC,CAAC,CAACwB,IAAI,CACtC,yDACF,CAAC;YACDT,MAAM,CAACf,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAACiB,aAAa,CAACM,yCAAkB,CAAC;UAAC;UAAA;YAAA,OAAAF,SAAA,CAAAH,IAAA;QAAA;MAAA,GAAAC,QAAA;IAAA,CAC3E,GAAC;EACJ,CAAC,CAAC;EAEFrD,QAAQ,CAAC,mBAAmB,EAAE,YAAM;IAClC,IAAIkC,aAAyC;IAE7CyB,SAAS,CAAC,YAAM;MACd5C,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;IAC3B,CAAC,CAAC;;IAEF;AACJ;AACA;AACA;IACI8B,EAAE,CAAC,2DAA2D,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA4B,SAAA;MAAA,OAAA7B,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA0B,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAxB,IAAA,GAAAwB,SAAA,CAAAvB,IAAA;UAAA;YAC9DU,MAAM,kBAAAnB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAA+B,SAAA;cAAA,OAAAhC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA6B,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAA3B,IAAA,GAAA2B,SAAA,CAAA1B,IAAA;kBAAA;oBAAA0B,SAAA,CAAA1B,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACxC,KAAK,CAAC;kBAAA;oBAAzC+B,aAAa,GAAA+B,SAAA,CAAAjB,IAAA;oBACbC,MAAM,CAACf,aAAa,CAAC,CAACgC,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAD,SAAA,CAAAb,IAAA;gBAAA;cAAA,GAAAW,QAAA;YAAA,CACpC,GAAC,CAACI,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAP,SAAA,CAAAV,IAAA;QAAA;MAAA,GAAAQ,QAAA;IAAA,CACvB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;IACI/B,EAAE,CAAC,sDAAsD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAsC,SAAA;MAAA,IAAAC,cAAA;MAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAqC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnC,IAAA,GAAAmC,SAAA,CAAAlC,IAAA;UAAA;YACzD;YACMgC,cAAmB,GAAG;cAACG,SAAS,EAAE,EAAE;cAAEC,MAAM,EAAE;YAAE,CAAC;YAEvD1B,MAAM,kBAAAnB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAA4C,SAAA;cAAA,OAAA7C,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA0C,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAAxC,IAAA,GAAAwC,SAAA,CAAAvC,IAAA;kBAAA;oBAAAuC,SAAA,CAAAvC,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACxC,KAAK,EAAE;sBAAC4E,WAAW,EAAER;oBAAc,CAAC,CAAC;kBAAA;oBAAxErC,aAAa,GAAA4C,SAAA,CAAA9B,IAAA;oBACbC,MAAM,CAACf,aAAa,CAAC,CAACgC,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAY,SAAA,CAAA1B,IAAA;gBAAA;cAAA,GAAAwB,QAAA;YAAA,CACpC,GAAC,CAACT,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAI,SAAA,CAAArB,IAAA;QAAA;MAAA,GAAAkB,QAAA;IAAA,CACvB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACIzC,EAAE,CAAC,gDAAgD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAgD,SAAA;MAAA,IAAAT,cAAA;MAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA8C,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA5C,IAAA,GAAA4C,SAAA,CAAA3C,IAAA;UAAA;YACnD;YACMgC,cAAmB,GAAG;cAACG,SAAS,EAAE,MAAM;cAAEC,MAAM,EAAE;YAAkB,CAAC;YAAAO,SAAA,CAAA5C,IAAA;YAAA4C,SAAA,CAAA3C,IAAA;YAAA,OAGnD,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAAC4E,WAAW,EAAER;YAAc,CAAC,CAAC;UAAA;YAAxErC,aAAa,GAAAgD,SAAA,CAAAlC,IAAA;YAAAkC,SAAA,CAAA3C,IAAA;YAAA;UAAA;YAAA2C,SAAA,CAAA5C,IAAA;YAAA4C,SAAA,CAAAC,EAAA,GAAAD,SAAA;YAEbjC,MAAM,CAACiC,SAAA,CAAAC,EAAA,CAAEC,OAAO,CAAC,CAACC,OAAO,CACvB,wFACF,CAAC;UAAC;YAEJpC,MAAM,CAACqC,UAAU,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAJ,SAAA,CAAA9B,IAAA;QAAA;MAAA,GAAA4B,QAAA;IAAA,CACtB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACInD,EAAE,CAAC,wCAAwC,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAuD,SAAA;MAAA,IAAAhB,cAAA;MAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAqD,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnD,IAAA,GAAAmD,SAAA,CAAAlD,IAAA;UAAA;YACrCgC,cAAc,GAAG;cAACG,SAAS,EAAE7D,wBAAgB,CAACC,OAAO;cAAE6D,MAAM,EAAE;YAAM,CAAC;YAAAc,SAAA,CAAAnD,IAAA;YAAAmD,SAAA,CAAAlD,IAAA;YAAA,OAGpD,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAAC4E,WAAW,EAAER;YAAc,CAAC,CAAC;UAAA;YAAxErC,aAAa,GAAAuD,SAAA,CAAAzC,IAAA;YAAAyC,SAAA,CAAAlD,IAAA;YAAA;UAAA;YAAAkD,SAAA,CAAAnD,IAAA;YAAAmD,SAAA,CAAAN,EAAA,GAAAM,SAAA;YAEbxC,MAAM,CAACwC,SAAA,CAAAN,EAAA,CAAEC,OAAO,CAAC,CAACC,OAAO,CAAC,yBAAyB,CAAC;UAAC;YAEvDpC,MAAM,CAACqC,UAAU,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAG,SAAA,CAAArC,IAAA;QAAA;MAAA,GAAAmC,QAAA;IAAA,CACtB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI1D,EAAE,CAAC,4CAA4C,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA0D,SAAA;MAAA,IAAAnB,cAAA;MAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAwD,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAtD,IAAA,GAAAsD,SAAA,CAAArD,IAAA;UAAA;YACzCgC,cAAc,GAAG;cAACG,SAAS,EAAE7D,wBAAgB,CAACC,OAAO;cAAE6D,MAAM,EAAE;YAAE,CAAC;YAExE1B,MAAM,kBAAAnB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAA6D,SAAA;cAAA,OAAA9D,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA2D,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAAzD,IAAA,GAAAyD,SAAA,CAAAxD,IAAA;kBAAA;oBAAAwD,SAAA,CAAAxD,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACxC,KAAK,EAAE;sBAAC4E,WAAW,EAAER;oBAAc,CAAC,CAAC;kBAAA;oBAAxErC,aAAa,GAAA6D,SAAA,CAAA/C,IAAA;oBACbC,MAAM,CAACf,aAAa,CAAC,CAACgC,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAA6B,SAAA,CAAA3C,IAAA;gBAAA;cAAA,GAAAyC,QAAA;YAAA,CACpC,GAAC,CAAC1B,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAuB,SAAA,CAAAxC,IAAA;QAAA;MAAA,GAAAsC,QAAA;IAAA,CACvB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI7D,EAAE,CAAC,oDAAoD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAgE,SAAA;MAAA,IAAAzB,cAAA;MAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA8D,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAA3D,IAAA;UAAA;YACjDgC,cAAc,GAAG;cAACG,SAAS,EAAE7D,wBAAgB,CAACsF,cAAc;cAAExB,MAAM,EAAE;YAAE,CAAC;YAAAuB,SAAA,CAAA5D,IAAA;YAAA4D,SAAA,CAAA3D,IAAA;YAAA,OAGvD,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAAC4E,WAAW,EAAER;YAAc,CAAC,CAAC;UAAA;YAAxErC,aAAa,GAAAgE,SAAA,CAAAlD,IAAA;YAAAkD,SAAA,CAAA3D,IAAA;YAAA;UAAA;YAAA2D,SAAA,CAAA5D,IAAA;YAAA4D,SAAA,CAAAf,EAAA,GAAAe,SAAA;YAEbjD,MAAM,CAACiD,SAAA,CAAAf,EAAA,CAAEC,OAAO,CAAC,CAACC,OAAO,CAAC,yBAAyB,CAAC;UAAC;YAEvDpC,MAAM,CAACqC,UAAU,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAY,SAAA,CAAA9C,IAAA;QAAA;MAAA,GAAA4C,QAAA;IAAA,CACtB,GAAC;;IAEF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACInE,EAAE,CAAC,4CAA4C,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAoE,UAAA;MAAA,IAAA7B,cAAA;MAAA,OAAAxC,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAkE,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAhE,IAAA,GAAAgE,UAAA,CAAA/D,IAAA;UAAA;YACzCgC,cAAc,GAAG;cACrBG,SAAS,EAAE7D,wBAAgB,CAACsF,cAAc;cAC1CxB,MAAM,EAAE;YACV,CAAC;YAED1B,MAAM,kBAAAnB,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAuE,UAAA;cAAA,OAAAxE,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAqE,WAAAC,UAAA;gBAAA,kBAAAA,UAAA,CAAAnE,IAAA,GAAAmE,UAAA,CAAAlE,IAAA;kBAAA;oBAAAkE,UAAA,CAAAlE,IAAA;oBAAA,OACiB,IAAAI,2BAAY,EAACxC,KAAK,EAAE;sBAAC4E,WAAW,EAAER;oBAAc,CAAC,CAAC;kBAAA;oBAAxErC,aAAa,GAAAuE,UAAA,CAAAzD,IAAA;oBACbC,MAAM,CAACf,aAAa,CAAC,CAACgC,UAAU,CAAC,CAAC;kBAAC;kBAAA;oBAAA,OAAAuC,UAAA,CAAArD,IAAA;gBAAA;cAAA,GAAAmD,SAAA;YAAA,CACpC,GAAC,CAACpC,GAAG,CAACC,OAAO,CAACC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAiC,UAAA,CAAAlD,IAAA;QAAA;MAAA,GAAAgD,SAAA;IAAA,CACvB,GAAC;IAEFvE,EAAE,CAAC,uBAAuB,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA0E,UAAA;MAAA,OAAA3E,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAwE,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAtE,IAAA,GAAAsE,UAAA,CAAArE,IAAA;UAAA;YAAAqE,UAAA,CAAArE,IAAA;YAAA,OACJ,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAA0E,UAAA,CAAA5D,IAAA;YACbC,MAAM,CAACf,aAAa,CAAC,CAACgC,UAAU,CAAC,CAAC;YAClCjB,MAAM,CAACf,aAAa,CAAC2E,eAAe,CAAC,CAAC3C,UAAU,CAAC,CAAC;YAClDjB,MAAM,CAACf,aAAa,CAAC2E,eAAe,CAAC,CAAC,CAAC,CAACxB,OAAO,CAACvC,aAAM,CAACC,IAAI,CAAC;UAAC;UAAA;YAAA,OAAA6D,UAAA,CAAAxD,IAAA;QAAA;MAAA,GAAAsD,SAAA;IAAA,CAC9D,GAAC;EACJ,CAAC,CAAC;EAEF1G,QAAQ,CAAC,+BAA+B,EAAE,YAAM;IAC9C,IAAIkC,aAAa;IAEjByB,SAAS,CAAC,YAAM;MACd/D,IAAI,CAACkH,cAAc,CAAC,CAAC;MACrBlH,IAAI,CAACmH,aAAa,CAAC,CAAC;MACpB7E,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;MACzBH,IAAI,CAACoH,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFnF,EAAE,CAAC,+CAA+C,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAiF,UAAA;MAAA,OAAAlF,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA+E,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAA7E,IAAA,GAAA6E,UAAA,CAAA5E,IAAA;UAAA;YAClDpC,KAAK,CAACiH,OAAO,CAACC,qBAAqB,CAACC,oCAAa,CAAC,CAACD,qBAAqB,CAACE,uCAAgB,CAAC;YAACJ,UAAA,CAAA5E,IAAA;YAAA,OAErE,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAAiF,UAAA,CAAAnE,IAAA;YAEbC,MAAM,CAAC9C,KAAK,CAACiH,OAAO,CAAC,CAACI,eAAe,CAAC,CAAC,CAAC;YACxCvE,MAAM,CAACf,aAAa,CAACuF,iBAAiB,CAAC,CAACpC,OAAO,CAAC,CAACqC,iCAAU,CAAC,CAAC;YAC7DzE,MAAM,CAAChD,cAAc,CAAC,CAACkE,GAAG,CAACwD,UAAU,CAAC,CAAC;YAEvC1E,MAAM,CAAC9C,KAAK,CAACiH,OAAO,CAAC,CAACQ,aAAa,CAAC,CAAC,EAAE;cACrCC,MAAM,EAAE,KAAK;cACbC,GAAG,KAAAC,MAAA,CAAKC,wBAAa,CAAE;cACvBC,aAAa,EAAE,KAAK;cACpBC,OAAO,MAAA5I,gBAAA,CAAAtB,OAAA,MACJmK,2BAAgB,EAAG,IAAI;YAE5B,CAAC,CAAC;YAEFlF,MAAM,CAAC9C,KAAK,CAACiH,OAAO,CAAC,CAACQ,aAAa,CAAC,CAAC,EAAA3I,aAAA,CAAAA,aAAA;cACnC4I,MAAM,EAAE;YAAK,GACV,IAAAO,gCAAsB,EAAC,CAAC;cAC3BN,GAAG,KAAAC,MAAA,CAAK7F,aAAa,CAAC,YAAY,CAAC,EAAA6F,MAAA,CAAGM,uBAAY,kBAAAN,MAAA,CAAeO,iCAAU,CAACC,YAAY,mBAAAR,MAAA,CAAgBO,iCAAU,CAACE,WAAW;YAAE,EACjI,CAAC;UAAC;UAAA;YAAA,OAAArB,UAAA,CAAA/D,IAAA;QAAA;MAAA,GAAA6D,SAAA;IAAA,CACJ,GAAC;IAEFpF,EAAE,CAAC,6FAA6F,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAyG,UAAA;MAAA,IAAAC,cAAA;MAAA,OAAA3G,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAwG,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAtG,IAAA,GAAAsG,UAAA,CAAArG,IAAA;UAAA;YAC1FmG,cAAc,GAAG;cACrBG,UAAU,EAAE;YACd,CAAC;YAED1I,KAAK,CAACiH,OAAO,CAACC,qBAAqB,CAACC,oCAAa,CAAC,CAACwB,qBAAqB,CAACJ,cAAc,CAAC;YAACE,UAAA,CAAArG,IAAA;YAAA,OAEnE,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAA0G,UAAA,CAAA5F,IAAA;YAEbC,MAAM,CAAChD,cAAc,CAAC,CAAC8I,cAAc,CAACL,cAAc,EAAEzF,MAAM,CAAC+F,QAAQ,CAAC,CAAC,EAAE;cACvEC,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CAAC,CAAC;YACF5E,MAAM,CAAC9C,KAAK,CAACiH,OAAO,CAAC,CAACI,eAAe,CAAC,CAAC,CAAC;YAExCvE,MAAM,CAACf,aAAa,CAACuF,iBAAiB,CAAC,CAACpC,OAAO,CAAC,IAAA0C,MAAA,CAC3C7F,aAAa,CAAC,YAAY,CAAC,EAAA6F,MAAA,CAAGM,uBAAY,EAC9C,CAAC;YAEFpF,MAAM,CAAC9C,KAAK,CAACiH,OAAO,CAAC,CAACQ,aAAa,CAAC,CAAC,EAAE;cACrCC,MAAM,EAAE,KAAK;cACbC,GAAG,KAAAC,MAAA,CAAKC,wBAAa,CAAE;cACvBC,aAAa,EAAE,KAAK;cACpBC,OAAO,MAAA5I,gBAAA,CAAAtB,OAAA,MACJmK,2BAAgB,EAAG,IAAI;YAE5B,CAAC,CAAC;YAEFlF,MAAM,CAAC7B,OAAO,CAAC,CAAC2H,cAAc,+GAE5B9F,MAAM,CAACkG,gBAAgB,CAAC;cACtBF,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CAAC,CACH,CAAC;UAAC;UAAA;YAAA,OAAAe,UAAA,CAAAxF,IAAA;QAAA;MAAA,GAAAqF,SAAA;IAAA,CACH,GAAC;IAEF5G,EAAE,CAAC,iGAAiG,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAoH,UAAA;MAAA,OAAArH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAkH,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAhH,IAAA,GAAAgH,UAAA,CAAA/G,IAAA;UAAA;YACpGtB,OAAO,CAACsI,SAAS,CAAC,CAAC;YACnBpJ,KAAK,CAACiH,OAAO,CAACC,qBAAqB,CAACE,uCAAgB,CAAC;YAAC+B,UAAA,CAAA/G,IAAA;YAAA,OAEhC,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cACxCqJ,SAAS,EAAE;gBACTC,MAAM,EAAE,cAAc;gBACtBC,OAAO,EAAE;cACX,CAAC;cACD9G,MAAM,EAAE;gBACNC,KAAK,EAAEC,aAAM,CAACC;cAChB;YACF,CAAC,CAAC;UAAA;YARFb,aAAa,GAAAoH,UAAA,CAAAtG,IAAA;YAUbC,MAAM,CAACf,aAAa,CAACuF,iBAAiB,CAAC,CAACpC,OAAO,CAAC,CAACqC,iCAAU,CAAC,CAAC;YAE7DzE,MAAM,CAAChC,OAAO,CAAC,CAAC0I,oBAAoB,CAACC,gCAAoB,EAAE;cACzDX,IAAI,EAAE,eAAe;cACrBpB,MAAM,EAAE;YACV,CAAC,CAAC;YAEF5E,MAAM,CAAC9C,KAAK,CAACiH,OAAO,CAAC,CAACyC,kBAAkB,CAAA5K,aAAA,CAAAA,aAAA,KACnC,IAAAmJ,gCAAsB,EAAC,CAAC;cAC3BN,GAAG,KAAAC,MAAA,CAAK7F,aAAa,CAAC,YAAY,CAAC,EAAA6F,MAAA,CAAGM,uBAAY,kBAAAN,MAAA,CAAeO,iCAAU,CAACC,YAAY,mBAAAR,MAAA,CAAgBO,iCAAU,CAACE,WAAW,CAAE;cAChIX,MAAM,EAAE;YAAK,EACd,CAAC;YAEF5E,MAAM,CAAChD,cAAc,CAAC,CAACkE,GAAG,CAAC2F,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAR,UAAA,CAAAlG,IAAA;QAAA;MAAA,GAAAgG,SAAA;IAAA,CAC/C,GAAC;EACJ,CAAC,CAAC;EAEFpJ,QAAQ,CAAC,mDAAmD,EAAE,YAAM;IAClE,IAAM+J,aAAa,GAAG,CACpB,0CAA0C,EAC1C,sCAAsC,EACtC,yCAAyC,CAC1C;IAED,IAAMC,YAAY;MAAA,IAAAC,MAAA,OAAAnI,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAG,SAAAkI,UACnBC,gBAA+B,EAC/BC,WAA0C;QAAA,IAAAlI,aAAA;QAAA,OAAAH,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAkI,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAhI,IAAA,GAAAgI,UAAA,CAAA/H,IAAA;YAAA;cAE1CpC,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACkC,YAAY,GAAG4H,WAAW;cAClDjK,KAAK,CAACE,QAAQ,CAACC,QAAQ,CAACE,iBAAiB,GAAGZ,IAAI,CAACa,EAAE,CAAC,CAAC,CAACC,eAAe,CAACyJ,gBAAgB,CAAC;cAACG,UAAA,CAAA/H,IAAA;cAAA,OAC5D,IAAAI,2BAAY,EAACxC,KAAK,EAAE;gBAACyC,MAAM,EAAE;kBAACC,KAAK,EAAEC,aAAM,CAACC;gBAAI;cAAC,CAAC,CAAC;YAAA;cAAzEb,aAAa,GAAAoI,UAAA,CAAAtH,IAAA;cAEnBC,MAAM,CAACf,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAACiB,aAAa,CAACgH,gBAAgB,CAAC;YAAC;YAAA;cAAA,OAAAG,UAAA,CAAAlH,IAAA;UAAA;QAAA,GAAA8G,SAAA;MAAA,CACzE;MAAA,gBATKF,YAAYA,CAAAO,EAAA,EAAAC,GAAA;QAAA,OAAAP,MAAA,CAAAjL,KAAA,OAAAE,SAAA;MAAA;IAAA,GASjB;IAED2C,EAAE,CAAC4I,IAAI,CAACV,aAAa,CAAC,CAAC,IAAI;MAAA,IAAAW,MAAA,OAAA5I,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA2I,UAAOC,WAAW;QAAA,OAAA7I,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA0I,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAxI,IAAA,GAAAwI,UAAA,CAAAvI,IAAA;YAAA;cAAAuI,UAAA,CAAA3F,EAAA,GACrCyF,WAAW;cAAAE,UAAA,CAAAvI,IAAA,GAAAuI,UAAA,CAAA3F,EAAA,KACZ,0CAA0C,OAAA2F,UAAA,CAAA3F,EAAA,KAG1C,sCAAsC,OAAA2F,UAAA,CAAA3F,EAAA,KAGtC,yCAAyC;cAAA;YAAA;cAL5C6E,YAAY,CAACvG,yCAAkB,EAAED,oCAAa,CAAC;cAAC,OAAAsH,UAAA,CAAAC,MAAA;YAAA;cAGhDf,YAAY,CAACgB,0CAAmB,EAAEC,uCAAgB,CAAC;cAAC,OAAAH,UAAA,CAAAC,MAAA;YAAA;cAGpDf,YAAY,CAACkB,4CAAqB,EAAEC,uCAAgB,CAAC;cAAC,OAAAL,UAAA,CAAAC,MAAA;YAAA;cAAA,OAAAD,UAAA,CAAAC,MAAA;YAAA;YAAA;cAAA,OAAAD,UAAA,CAAA1H,IAAA;UAAA;QAAA,GAAAuH,SAAA;MAAA,CAK3D;MAAA,iBAAAS,GAAA;QAAA,OAAAV,MAAA,CAAA1L,KAAA,OAAAE,SAAA;MAAA;IAAA,IAAC;EACJ,CAAC,CAAC;EAEFc,QAAQ,CAAC,qBAAqB,EAAE,YAAM;IACpC,IAAIkC,aAAa;IACjB,IAAImJ,IAAI;IAERC,UAAU,kBAAAxJ,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAuJ,UAAA;MAAA,OAAAxJ,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAqJ,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAnJ,IAAA,GAAAmJ,UAAA,CAAAlJ,IAAA;UAAA;YAAAkJ,UAAA,CAAAlJ,IAAA;YAAA,OACa,IAAAI,2BAAY,EAACxC,KAAK,CAAC;UAAA;YAAzC+B,aAAa,GAAAuJ,UAAA,CAAAzI,IAAA;YACbqI,IAAI,GAAG,IAAAK,OAAA,CAAA1N,OAAA,EAAckE,aAAa,CAACyJ,QAAQ,CAAC,CAAC,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAF,UAAA,CAAArI,IAAA;QAAA;MAAA,GAAAmI,SAAA;IAAA,CACjD,GAAC;IAEF5H,SAAS,CAAC,YAAM;MACd/D,IAAI,CAACkH,cAAc,CAAC,CAAC;MACrBlH,IAAI,CAACmH,aAAa,CAAC,CAAC;MACpB7E,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;MACzBH,IAAI,CAACoH,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFnF,EAAE,CAAC,uCAAuC,EAAE,YAAM;MAChDoB,MAAM,CAACf,aAAa,CAACyJ,QAAQ,CAAC,CAACzH,UAAU,CAAC,CAAC;MAC3CjB,MAAM,CAACoI,IAAI,CAAC,CAACnH,UAAU,CAAC,CAAC;MACzBjB,MAAM,CAAC,IAAA2I,KAAA,CAAA5N,OAAA,EAAYkE,aAAa,CAACyJ,QAAQ,CAAC,CAACxM,MAAM,CAAC,CAACkG,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEFxD,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnCoB,MAAM,CAACf,aAAa,CAAC2J,QAAQ,CAAC,CAAC3H,UAAU,CAAC,CAAC;MAC3CjB,MAAM,CAACf,aAAa,CAAC2J,QAAQ,CAAC,CAAC,CAAC,CAACxG,OAAO,CAACnD,aAAa,CAACyJ,QAAQ,CAAC;IAClE,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3L,QAAQ,CAAC,yCAAyC,EAAE,YAAM;IACxD,IAAIkC,aAA6B;IACjC,IAAImJ,IAAI;IACR,IAAIS,GAAG;IACP,IAAIC,cAAgC;IACpC,IAAIC,QAAQ;IACZ,IAAIC,UAAU;IACd,IAAIC,kBAAkB;IACtB,IAAIC,WAAW;IACf,IAAIC,SAAS;IAEbd,UAAU,kBAAAxJ,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAqK,UAAA;MAAA,OAAAtK,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAmK,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAjK,IAAA,GAAAiK,UAAA,CAAAhK,IAAA;UAAA;YACT3C,IAAI,CAAC4M,aAAa,CAAC,CAAC;YACpBrM,KAAK,CAACiH,OAAO,CACVC,qBAAqB,CAACC,oCAAa,CAAC,CACpCD,qBAAqB,CAACE,uCAAgB,CAAC,CACvCF,qBAAqB,CAACoF,0CAAmB,CAAC;YAE7CV,cAAc,GAAGnM,IAAI,CAACC,KAAK,CAAC6M,MAAM,EAAE,kBAAkB,CAAC;YAACH,UAAA,CAAAhK,IAAA;YAAA,OAClC,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAAqK,UAAA,CAAAvJ,IAAA;YACbqI,IAAI,GAAG,IAAAK,OAAA,CAAA1N,OAAA,EAAckE,aAAa,CAACyJ,QAAQ,CAAC,CAAC,CAAC,CAAU;YACxDG,GAAG,GAAGT,IAAI,CAACsB,YAAY;YAACJ,UAAA,CAAAhK,IAAA;YAAA,OAClB8I,IAAI,CAACuB,QAAQ,CAAC,CAAC;UAAA;YAErBZ,QAAQ,GAAGpM,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,YAAY,CAAC;YACxCG,UAAU,GAAGrM,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,6BAA6B,CAAC;YAC3DI,kBAAkB,GAAGtM,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,qBAAqB,CAAC;YAC3DK,WAAW,GAAGvM,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,gCAAgC,CAAC;YAC/DM,SAAS,GAAGxM,IAAI,CAACC,KAAK,CAACqC,aAAa,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC;UAAC;UAAA;YAAA,OAAAqK,UAAA,CAAAnJ,IAAA;QAAA;MAAA,GAAAiJ,SAAA;IAAA,CACnF,GAAC;IAEF1I,SAAS,CAAC,YAAM;MACd/D,IAAI,CAACkH,cAAc,CAAC,CAAC;MACrBlH,IAAI,CAACmH,aAAa,CAAC,CAAC;MACpB7E,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCM,aAAa,CAAC,aAAa,CAAC,CAAC2K,cAAc,GAAG,CAAC,CAAC;MAChD9L,WAAW,CAACa,kBAAkB,CAAC,CAAC;MAChCM,aAAa,GAAGnC,SAAS;MACzBH,IAAI,CAACoH,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFnF,EAAE,CAAC,0FAA0F,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA8K,UAAA;MAAA,IAAAC,CAAA,EAAAC,iBAAA,EAAAC,SAAA;MAAA,OAAAlL,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA+K,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAA7K,IAAA,GAAA6K,UAAA,CAAA5K,IAAA;UAAA;YACvFwK,CAAC,GAAGtN,MAAM;YAChBsN,CAAC,CAACK,KAAK,GAAGxN,IAAI,CAACa,EAAE,CAAC,CAAC,CAACqI,qBAAqB,CAAC,IAAIzE,KAAK,CAAC,cAAc,CAAC,CAAC;YAE9D2I,iBAAiB,GAAGpN,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,qBAAqB,CAAC;YAE1DmB,SAAS,GAAGlB,cAAc,CAACsB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAH,UAAA,CAAA5K,IAAA;YAAA,OAC3C0K,SAAS,CAAC,CAAC;UAAA;YAEjBhK,MAAM,CAAC7B,OAAO,CAAC,CAACuI,oBAAoB,CAClC1G,MAAM,CAACsK,gBAAgB,CAAC,mCAAmC,CAAC,EAC5D;cACEtE,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CACF,CAAC;YACD5E,MAAM,CAACf,aAAa,CAAC,eAAe,CAAC,CAAC,CAACwB,IAAI,CAAC,IAAI,CAAC;YACjDT,MAAM,CAAC+J,iBAAiB,CAAC,CAAClD,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAqD,UAAA,CAAA/J,IAAA;QAAA;MAAA,GAAA0J,SAAA;IAAA,CAC9C,GAAC;IAEFjL,EAAE,CAAC,2EAA2E,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAwL,UAAA;MAAA,IAAAT,CAAA,EAAAC,iBAAA,EAAAC,SAAA;MAAA,OAAAlL,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAsL,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAApL,IAAA,GAAAoL,UAAA,CAAAnL,IAAA;UAAA;YACxEwK,CAAC,GAAGtN,MAAM;YAChBsN,CAAC,CAACK,KAAK,GAAGxN,IAAI,CAACa,EAAE,CAAC,CAAC,CAAC4G,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAEvC2F,iBAAiB,GAAGpN,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,qBAAqB,CAAC;YAE1DmB,SAAS,GAAGlB,cAAc,CAACsB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAI,UAAA,CAAAnL,IAAA;YAAA,OAC3C0K,SAAS,CAAC,CAAC;UAAA;YAEjBhK,MAAM,CAAC8J,CAAC,CAACK,KAAK,CAAC,CAACzD,oBAAoB,CAClC,qCAAqC,EACrC1G,MAAM,CAAC0K,GAAG,CAACvO,MAAM,CACnB,CAAC;YACD6D,MAAM,CAACf,aAAa,CAAC,eAAe,CAAC,CAAC,CAACwB,IAAI,CAAC,KAAK,CAAC;YAClDT,MAAM,CAAC+J,iBAAiB,CAAC,CAAC7I,GAAG,CAAC2F,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAA4D,UAAA,CAAAtK,IAAA;QAAA;MAAA,GAAAoK,SAAA;IAAA,CAClD,GAAC;IAEF3L,EAAE,CAAC,wDAAwD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA4L,UAAA;MAAA,IAAAC,QAAA;MAAA,OAAA9L,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA2L,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAzL,IAAA,GAAAyL,UAAA,CAAAxL,IAAA;UAAA;YACrDsL,QAAQ,GAAG9B,cAAc,CAACsB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAS,UAAA,CAAAxL,IAAA;YAAA,OAC1CsL,QAAQ,CAAC,CAAC;UAAA;YAEhB5K,MAAM,CAACf,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAACmD,OAAO,CAACpC,MAAM,CAAC0K,GAAG,CAACK,MAAM,CAAC,CAAC;YACvE/K,MAAM,CAAChC,OAAO,CAAC,CAAC0I,oBAAoB,CAACC,gCAAoB,EAAE;cACzDX,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAkG,UAAA,CAAA3K,IAAA;QAAA;MAAA,GAAAwK,SAAA;IAAA,CACJ,GAAC;IAEF/L,EAAE,CAAC,oDAAoD,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAiM,UAAA;MAAA,IAAAC,gBAAA;MAAA,OAAAnM,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAgM,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAA9L,IAAA,GAAA8L,UAAA,CAAA7L,IAAA;UAAA;YACjD2L,gBAAgB,GAAG/N,KAAK,CAACE,QAAQ,CAACgO,OAAO,CAACC,EAAE,CAACjB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAc,UAAA,CAAA7L,IAAA;YAAA,OAC7D2L,gBAAgB,CAAC,CAAC;UAAA;YAExBjL,MAAM,CAAC7B,OAAO,CAAC,CAACuI,oBAAoB,CAClC1G,MAAM,CAACsK,gBAAgB,CAAC,+CAA+C,CAAC,EACxE;cACEtE,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CACF,CAAC;YACD5E,MAAM,CAACf,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAACmD,OAAO,CAACpC,MAAM,CAAC0K,GAAG,CAACK,MAAM,CAAC,CAAC;YACzE/K,MAAM,CAACmJ,SAAS,CAAC,CAACzC,oBAAoB,CACpC4E,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACC,YAAY,EAC9BC,mBAAW,CAACC,UAAU,EACtB3L,MAAM,CAAC0K,GAAG,CAACK,MAAM,CAAC,EAClB,EACF,CAAC;UAAC;UAAA;YAAA,OAAAI,UAAA,CAAAhL,IAAA;QAAA;MAAA,GAAA6K,SAAA;IAAA,CACH,GAAC;IAEFpM,EAAE,CAAC,0FAA0F,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA6M,UAAA;MAAA,IAAAC,0BAAA,EAAAC,eAAA;MAAA,OAAAhN,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA6M,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAA3M,IAAA,GAAA2M,UAAA,CAAA1M,IAAA;UAAA;YACvFuM,0BAA0B,GAAGlP,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,6BAA6B,CAAC;YAEjF5J,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;YACrCA,aAAa,CAAC,sBAAsB,CAAC,GAAG,0BAA0B;YAClEA,aAAa,CAAC,oBAAoB,CAAC,GAAG,0BAA0B;YAE1D6M,eAAe,GAAG5O,KAAK,CAACE,QAAQ,CAACgO,OAAO,CAACC,EAAE,CAACjB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA2B,UAAA,CAAA1M,IAAA;YAAA,OAC5DwM,eAAe,CAAC,CAAC;UAAA;YAEvB;YACAnP,IAAI,CAACsP,mBAAmB,CAACC,+BAAoB,GAAG,GAAG,CAAC;YAACF,UAAA,CAAA1M,IAAA;YAAA,OAE/Cf,aAAa,CAAC,CAAC;UAAA;YAErByB,MAAM,CAAC6L,0BAA0B,CAAC,CAACnF,oBAAoB,CAAC,IAAI,CAAC;YAC7D1G,MAAM,CAAC9B,MAAM,CAAC,CAACwI,oBAAoB,CACjC,kEAAkE,EAClE;cACEV,IAAI,EAAEmG,4BAAiB;cACvBvH,MAAM,EAAE;YACV,CACF,CAAC;YACD5E,MAAM,CAAC+I,QAAQ,CAAC,CAACrC,oBAAoB,CAAC,CAAC;YACvC1G,MAAM,CAACgJ,UAAU,CAAC,CAACtC,oBAAoB,CAAC,6BAA6B,CAAC;YACtE1G,MAAM,CAACiJ,kBAAkB,CAAC,CAACvC,oBAAoB,CAAC,6BAA6B,CAAC;YAC9E1G,MAAM,CAACkJ,WAAW,CAAC,CAACxC,oBAAoB,CAAC,6BAA6B,EAAE,CACtEmC,GAAG,CAACuD,kBAAkB,CAAC,CAAC,CACzB,CAAC;YACFpM,MAAM,CAACkJ,WAAW,CAAC,CAACxC,oBAAoB,CAAC,6BAA6B,EAAE,CAACjC,iCAAU,CAAC,CAAC;YACrFzE,MAAM,CAACmJ,SAAS,CAAC,CAACzC,oBAAoB,CACpC4E,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACa,YAAY,EAC9BX,mBAAW,CAACC,UAAU,EACtB,0BAA0B,EAC1B,0BACF,CAAC;UAAC;UAAA;YAAA,OAAAK,UAAA,CAAA7L,IAAA;QAAA;MAAA,GAAAyL,SAAA;IAAA,CACH,GAAC;IAEFhN,EAAE,CAAC,2GAA2G,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAuN,UAAA;MAAA,IAAAT,0BAAA,EAAAC,eAAA;MAAA,OAAAhN,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAqN,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAnN,IAAA,GAAAmN,UAAA,CAAAlN,IAAA;UAAA;YACxGuM,0BAA0B,GAAGlP,IAAI,CAACC,KAAK,CAACiM,GAAG,EAAE,6BAA6B,CAAC;YAEjF5J,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;YACrCA,aAAa,CAAC,sBAAsB,CAAC,GAAG,0BAA0B;YAClEA,aAAa,CAAC,oBAAoB,CAAC,GAAG,0BAA0B;YAChE4J,GAAG,CAAC4D,SAAS,CAACC,0BAAkB,CAACC,IAAI,CAAC;YAEhCb,eAAe,GAAG5O,KAAK,CAACE,QAAQ,CAACgO,OAAO,CAACC,EAAE,CAACjB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAmC,UAAA,CAAAlN,IAAA;YAAA,OAC5DwM,eAAe,CAAC,CAAC;UAAA;YAEvB;YACAnP,IAAI,CAACsP,mBAAmB,CAACC,+BAAoB,GAAG,GAAG,CAAC;YAACM,UAAA,CAAAlN,IAAA;YAAA,OAE/Cf,aAAa,CAAC,CAAC;UAAA;YAErByB,MAAM,CAAC6L,0BAA0B,CAAC,CAAC3K,GAAG,CAACwF,oBAAoB,CAAC,IAAI,CAAC;YACjE1G,MAAM,CAAC9B,MAAM,CAAC,CAACgD,GAAG,CAACwF,oBAAoB,CACrC,kEAAkE,EAClE;cACEV,IAAI,EAAEmG,4BAAiB;cACvBvH,MAAM,EAAE;YACV,CACF,CAAC;YACD5E,MAAM,CAAC+I,QAAQ,CAAC,CAAC7H,GAAG,CAACwF,oBAAoB,CAAC,CAAC;YAC3C1G,MAAM,CAACgJ,UAAU,CAAC,CAAC9H,GAAG,CAACwF,oBAAoB,CAAC,6BAA6B,CAAC;YAC1E1G,MAAM,CAACiJ,kBAAkB,CAAC,CAAC/H,GAAG,CAACwF,oBAAoB,CAAC,6BAA6B,CAAC;YAClF1G,MAAM,CAACkJ,WAAW,CAAC,CAAChI,GAAG,CAACwF,oBAAoB,CAAC,6BAA6B,EAAE,CAC1EmC,GAAG,CAACuD,kBAAkB,CAAC,CAAC,CACzB,CAAC;YACFpM,MAAM,CAACkJ,WAAW,CAAC,CAAChI,GAAG,CAACwF,oBAAoB,CAAC,6BAA6B,EAAE,CAACjC,iCAAU,CAAC,CAAC;YACzFzE,MAAM,CAACmJ,SAAS,CAAC,CAACzC,oBAAoB,CACpC4E,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACa,YAAY,EAC9BX,mBAAW,CAACC,UAAU,EACtB,0BAA0B,EAC1B,0BACF,CAAC;UAAC;UAAA;YAAA,OAAAa,UAAA,CAAArM,IAAA;QAAA;MAAA,GAAAmM,SAAA;IAAA,CACH,GAAC;IAEF1N,EAAE,CAAC,2EAA2E,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAA6N,UAAA;MAAA,IAAAtR,IAAA,EAAAuR,gBAAA,EAAAC,SAAA,EAAAhB,eAAA;MAAA,OAAAhN,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAA6N,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAA3N,IAAA,GAAA2N,UAAA,CAAA1N,IAAA;UAAA;YAC9EL,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;YAC/B3D,IAAI,GAAG2D,aAAa,CAAC,aAAa,CAAC,CAACgO,UAAU,CAAC,CAAC;YAChDJ,gBAAgB,GAAGlQ,IAAI,CAC1BC,KAAK,CAACtB,IAAI,EAAE,YAAY,CAAC,CACzBuK,qBAAqB,CAAC,IAAIzE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/C0L,SAAS,GAAGnQ,IAAI,CAACC,KAAK,CAACtB,IAAI,EAAE,QAAQ,CAAC;YAC5C0E,MAAM,CAAC,IAAA2I,KAAA,CAAA5N,OAAA,EAAYkE,aAAa,CAAC,aAAa,CAAC,CAACiO,cAAc,CAAC,CAAC,CAAC,CAAChR,MAAM,CAAC,CAACuE,IAAI,CAAC,CAAC,CAAC;YAE3EqL,eAAe,GAAG5O,KAAK,CAACE,QAAQ,CAACgO,OAAO,CAACC,EAAE,CAACjB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA2C,UAAA,CAAA1N,IAAA;YAAA,OAC5DwM,eAAe,CAAC,CAAC;UAAA;YAEvB9L,MAAM,CAAC6M,gBAAgB,CAAC,CAAChG,gBAAgB,CAAC,CAAC;YAACmG,UAAA,CAAA1N,IAAA;YAAA,OAEtCf,aAAa,CAAC,CAAC;UAAA;YAErByB,MAAM,CAAC7B,OAAO,CAAC,CAACuI,oBAAoB,CAAC1G,MAAM,CAACsK,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;cACrFtE,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CAAC,CAAC;YACF5E,MAAM,CAAC1E,IAAI,CAAC,kBAAkB,CAAC,CAAC6R,KAAK,CAACC,KAAK,CAAC,CAAC3M,IAAI,CAAC,gBAAgB,CAAC;YACnET,MAAM,CAAC8M,SAAS,CAAC,CAACjG,gBAAgB,CAAC,CAAC;YAEpC7G,MAAM,CAAC,IAAA2I,KAAA,CAAA5N,OAAA,EAAY8N,GAAG,CAAC/K,WAAW,CAACoP,cAAc,CAAC,CAAC,CAAC,CAAChR,MAAM,CAAC,CAACuE,IAAI,CAAC,CAAC,CAAC;YACpET,MAAM,CAACmJ,SAAS,CAAC,CAACzC,oBAAoB,CACpC4E,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACa,YAAY,EAC9BX,mBAAW,CAACC,UAAU,EACtB3L,MAAM,CAAC0K,GAAG,CAACK,MAAM,CAAC,EAClB/K,MAAM,CAAC0K,GAAG,CAACK,MAAM,CACnB,CAAC;UAAC;UAAA;YAAA,OAAAiC,UAAA,CAAA7M,IAAA;QAAA;MAAA,GAAAyM,SAAA;IAAA,CACH,GAAC;IAEFhO,EAAE,CAAC,0EAA0E,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAsO,UAAA;MAAA,IAAA/R,IAAA,EAAAuR,gBAAA,EAAAC,SAAA,EAAAhB,eAAA;MAAA,OAAAhN,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAoO,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAlO,IAAA,GAAAkO,UAAA,CAAAjO,IAAA;UAAA;YACvEhE,IAAI,GAAG2D,aAAa,CAAC,aAAa,CAAC,CAACgO,UAAU,CAAC,CAAC;YAChDJ,gBAAgB,GAAGlQ,IAAI,CAC1BC,KAAK,CAACtB,IAAI,EAAE,YAAY,CAAC,CACzBuK,qBAAqB,CAAC,IAAIzE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/C0L,SAAS,GAAGnQ,IAAI,CAACC,KAAK,CAACtB,IAAI,EAAE,QAAQ,CAAC;YAC5C0E,MAAM,CAAC,IAAA2I,KAAA,CAAA5N,OAAA,EAAYkE,aAAa,CAAC,aAAa,CAAC,CAACiO,cAAc,CAAC,CAAC,CAAC,CAAChR,MAAM,CAAC,CAACuE,IAAI,CAAC,CAAC,CAAC;YAE3EqL,eAAe,GAAG5O,KAAK,CAACE,QAAQ,CAACgO,OAAO,CAACC,EAAE,CAACjB,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAAkD,UAAA,CAAAjO,IAAA;YAAA,OAC5DwM,eAAe,CAAC,CAAC;UAAA;YAEvB9L,MAAM,CAAC6M,gBAAgB,CAAC,CAAChG,gBAAgB,CAAC,CAAC;YAAC0G,UAAA,CAAAjO,IAAA;YAAA,OAEtCf,aAAa,CAAC,CAAC;UAAA;YAErByB,MAAM,CAAC7B,OAAO,CAAC,CAACuI,oBAAoB,CAAC1G,MAAM,CAACsK,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;cACrFtE,IAAI,EAAEC,8BAAmB;cACzBrB,MAAM,EAAE;YACV,CAAC,CAAC;YACF5E,MAAM,CAAC1E,IAAI,CAAC,kBAAkB,CAAC,CAAC6R,KAAK,CAACC,KAAK,CAAC,CAAC3M,IAAI,CAAC,gBAAgB,CAAC;YACnET,MAAM,CAAC8M,SAAS,CAAC,CAACjG,gBAAgB,CAAC,CAAC;YAEpC7G,MAAM,CAAC,IAAA2I,KAAA,CAAA5N,OAAA,EAAY8N,GAAG,CAAC/K,WAAW,CAACoP,cAAc,CAAC,CAAC,CAAC,CAAChR,MAAM,CAAC,CAACuE,IAAI,CAAC,CAAC,CAAC;YACpET,MAAM,CAACmJ,SAAS,CAAC,CAACzC,oBAAoB,CACpC4E,oBAAY,CAACC,gBAAgB,EAC7BC,yBAAiB,CAACgC,UAAU,EAC5B9B,mBAAW,CAACC,UAAU,EACtB3L,MAAM,CAAC0K,GAAG,CAACK,MAAM,CAAC,EAClB/K,MAAM,CAAC0K,GAAG,CAACK,MAAM,CACnB,CAAC;UAAC;UAAA;YAAA,OAAAwC,UAAA,CAAApN,IAAA;QAAA;MAAA,GAAAkN,SAAA;IAAA,CACH,GAAC;EACJ,CAAC,CAAC;;EAEF;EACAtQ,QAAQ,CAAC,eAAe,EAAE,YAAM;IAC9B,IAAM0Q,KAAK,GAAG,IAAIC,iBAAK,CAAC,CAAC;IACzB,IAAMC,MAAM,GAAGzQ,KAAK,CAACE,QAAQ,CAACwQ,MAAM,CAACD,MAAM;IAC3C,IAAME,eAAe,GAAG3Q,KAAK,CAACE,QAAQ,CAACwQ,MAAM,CAACE,GAAG;IACjD,IAAMC,UAAU,GAAG,IAAAC,uBAAgB,EAAC,IAAAC,oCAA0B,EAAC,CAAC,EAAEC,qBAAG,CAAC;IACtE,IAAM1J,iBAAiB,GAAG7H,IAAI,CAACa,EAAE,CAAC;MAAA,OAAMuQ,UAAU,CAACI,OAAO;IAAA,EAAC;IAC3D,IAAMC,gBAAgB,GAAGzR,IAAI,CAACa,EAAE,CAAC;MAAA,OAAMuQ,UAAU,CAACM,MAAM;IAAA,EAAC;IAEzD,IAAIpP,aAAa;IACjB,IAAImJ,IAAU;IAEdkG,SAAS,kBAAAzP,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAwP,UAAA;MAAA,IAAAlE,KAAA;MAAA,OAAAvL,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAsP,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAApP,IAAA,GAAAoP,UAAA,CAAAnP,IAAA;UAAA;YAAAmP,UAAA,CAAAnP,IAAA;YAAA,OACc,IAAAI,2BAAY,EAACxC,KAAK,CAAC;UAAA;YAAzC+B,aAAa,GAAAwP,UAAA,CAAA1O,IAAA;YACbqI,IAAI,GAAG,IAAIsG,aAAI,CACbf,MAAM,EACNE,eAAe,EACfJ,KAAK,EACLjJ,iBAAiB,CAAC,CAAC,EACnB4J,gBAAgB,CAAC,CAAC,EAClBvO,aAAM,CAACC,IACT,CAAC;YACKuK,KAAK,GAAG,IAAA5B,OAAA,CAAA1N,OAAA,EAAc+C,WAAW,CAACoP,cAAc,CAAC,CAAC,CAAC;YACzD7C,KAAK,CAACjO,OAAO,CAAC,UAACd,IAAI,EAAK;cACtBA,IAAI,CAACqT,GAAG,CAAC,CAAC;YACZ,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAF,UAAA,CAAAtO,IAAA;QAAA;MAAA,GAAAoO,SAAA;IAAA,CACJ,GAAC;IAEF7P,QAAQ,CAAC,YAAM;MACbO,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;IAClC,CAAC,CAAC;IAEFC,EAAE,CAAC,8BAA8B,EAAE,YAAM;MACvCoB,MAAM,CAACf,aAAa,CAAC2P,eAAe,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACzR,QAAQ,CAACwQ,MAAM,CAACD,MAAM,CAAC,CAAClN,IAAI,CAC5E,sCACF,CAAC;IACH,CAAC,CAAC;IAEF7B,EAAE,CAAC,mDAAmD,EAAE,YAAM;MAC5DwJ,IAAI,CAACuB,QAAQ,CAAC,CAAC;MACfvB,IAAI,CAAC0G,QAAQ,CAAC;QAACC,OAAO,EAAE,QAAQ;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACtDlP,MAAM,CAACf,aAAa,CAACkQ,gBAAgB,CAAC,CAAC,CAAC,CAAC/M,OAAO,CAACtF,SAAS,CAAC;IAC7D,CAAC,CAAC;IAEF8B,EAAE,CAAC,4BAA4B,EAAE,YAAM;MACrCwJ,IAAI,CAACuB,QAAQ,CAAC,CAAC;MACf,IAAMyF,QAAQ,GAAGhH,IAAI,CAAC0G,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACrE,IAAMG,SAAS,GAAGjH,IAAI,CAAC0G,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACtE;MACAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI;MAC5BA,QAAQ,CAAC,YAAY,CAAC,GAAG,KAAK;MAC9BA,QAAQ,CAAC,kBAAkB,CAAC,CAACjC,KAAK,CAACC,KAAK,GAAG,oBAAoB;;MAE/D;MACAiC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI;MAC7BA,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;MACxBA,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK;MAC/BA,SAAS,CAAC,kBAAkB,CAAC,CAAClC,KAAK,CAACC,KAAK,GAAG,aAAa;MAEzD,IAAMkC,eAAsC,GAAG;QAC7CC,iBAAiB,EAAEH,QAAiB;QACpCI,kBAAkB,EAAEH;MACtB,CAAC;MAED1S,IAAI,CAACC,KAAK,CAACkB,WAAW,EAAE,gBAAgB,CAAC,CAACL,eAAe,CAAC6R,eAAe,CAAC;MAC1EtP,MAAM,CAACf,aAAa,CAACkQ,gBAAgB,CAAC,CAAC,CAAC,CAAC/M,OAAO,CAACgN,QAAQ,CAAC;IAC5D,CAAC,CAAC;IACFxQ,EAAE,CAAC,0BAA0B,EAAE,YAAM;MACnCK,aAAa,CAACyJ,QAAQ,GAAG;QACvB+G,YAAY,EAAE;UAACC,MAAM,EAAE;QAAY,CAAU;QAC7CC,aAAa,EAAE;UAACD,MAAM,EAAE;QAAa;MACvC,CAAC;MAED,IAAMN,QAAQ,GAAGhH,IAAI,CAAC0G,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACrE,IAAMG,SAAS,GAAGjH,IAAI,CAAC0G,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MACtE,IAAMU,SAAS,GAAGxH,IAAI,CAAC0G,QAAQ,CAAC;QAACC,OAAO,EAAE,MAAM;QAAEC,IAAI,EAAEC,gBAAQ,CAACC;MAAG,CAAC,CAAC;MAEtEE,QAAQ,CAACM,MAAM,GAAG,YAAY;MAC9BL,SAAS,CAACK,MAAM,GAAG,aAAa;MAChCE,SAAS,CAACF,MAAM,GAAG,aAAa;MAEhC,IAAMJ,eAAsC,GAAG;QAC7CC,iBAAiB,EAAEH,QAAiB;QACpCI,kBAAkB,EAAEH,SAAkB;QACtCQ,kBAAkB,EAAED;MACtB,CAAC;MAEDjT,IAAI,CAACC,KAAK,CAACkB,WAAW,EAAE,gBAAgB,CAAC,CAACL,eAAe,CAAC6R,eAAe,CAAC;MAC1EtP,MAAM,CAACf,aAAa,CAACiO,cAAc,CAAC,CAAC,CAAC,CAAC9K,OAAO,CAAC;QAC7C0N,UAAU,EAAE,CAACV,QAAQ,CAAC;QACtBW,WAAW,EAAE,CAACV,SAAS,EAAEO,SAAS;MACpC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF7S,QAAQ,CAAC,yBAAyB,EAAE,YAAM;IACxC,IAAMiT,MAAM,GAAG9S,KAAK,CAACE,QAAQ,CAACgO,OAAO,CAACC,EAAE;IACxC,IAAIpM,aAA6B;IAEjCoJ,UAAU,kBAAAxJ,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAC,SAAAkR,UAAA;MAAA,OAAAnR,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAgR,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAA9Q,IAAA,GAAA8Q,UAAA,CAAA7Q,IAAA;UAAA;YAAA6Q,UAAA,CAAA7Q,IAAA;YAAA,OACa,IAAAI,2BAAY,EAACxC,KAAK,EAAE;cAACyC,MAAM,EAAE;gBAACC,KAAK,EAAEC,aAAM,CAACC;cAAI;YAAC,CAAC,CAAC;UAAA;YAAzEb,aAAa,GAAAkR,UAAA,CAAApQ,IAAA;UAAA;UAAA;YAAA,OAAAoQ,UAAA,CAAAhQ,IAAA;QAAA;MAAA,GAAA8P,SAAA;IAAA,CACd,GAAC;IAEFvP,SAAS,CAAC,YAAM;MACdzB,aAAa,CAACN,kBAAkB,CAAC,CAAC;MAClCb,WAAW,CAACa,kBAAkB,CAAC,CAAC;IAClC,CAAC,CAAC;IAEFC,EAAE,CAAC,uCAAuC,EAAE,UAACwR,IAAI,EAAK;MACpDpQ,MAAM,CAACqC,UAAU,CAAC,CAAC,CAAC;MACpBpD,aAAa,CAACoM,EAAE,CAACgF,iCAAyB,CAACC,iBAAiB,EAAE,UAACC,KAAuB,EAAK;QACzFvQ,MAAM,CAACuQ,KAAK,CAACC,IAAI,CAAC,CAACpO,OAAO,CAACqO,sCAAkB,CAACD,IAAI,CAAC;QACnDJ,IAAI,CAAC,CAAC;MACR,CAAC,CAAC;MAEFpQ,MAAM,CAACgQ,MAAM,CAAC5F,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACjI,OAAO,CAACsO,yBAAiB,CAACC,4BAA4B,CAAC;MACvF,IAAMC,mBAAmB,GAAGZ,MAAM,CAAC5F,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAEnDuG,mBAAmB,CAACH,sCAAkB,CAAC;IACzC,CAAC,CAAC;IAEF7R,EAAE,CAAC,gEAAgE,EAAE,UAACwR,IAAI,EAAK;MAC7EpQ,MAAM,CAACqC,UAAU,CAAC,CAAC,CAAC;MACpBpD,aAAa,CAACoM,EAAE,CAACgF,iCAAyB,CAACC,iBAAiB,EAAE,UAACC,KAAuB,EAAK;QACzFvQ,MAAM,CAACuQ,KAAK,CAACC,IAAI,CAACK,YAAY,CAACA,YAAY,CAAC3U,MAAM,CAAC,CAACkG,OAAO,CAAC,CAAC,CAAC;QAC9DgO,IAAI,CAAC,CAAC;MACR,CAAC,CAAC;MAEFpQ,MAAM,CAACgQ,MAAM,CAAC5F,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACjI,OAAO,CAACsO,yBAAiB,CAACC,4BAA4B,CAAC;MACvF,IAAMC,mBAAmB,GAAGZ,MAAM,CAAC5F,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAEnDuG,mBAAmB,CAACE,gDAA4B,CAAC;IACnD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF/T,QAAQ,CAAC,0BAA0B,EAAE,YAAM;IACzC,IAAIgU,qBAA0B;IAE9BzC,SAAS,CAAC,YAAM;MAAA,IAAA0C,MAAA;MACdD,qBAAqB,GAAGvU,MAAM,CAACyU,iBAAiB;MAChD;MACAzU,MAAM,CAACyU,iBAAiB,IAAAD,MAAA;QAMtB,SAAAA,OAAA,EAAc;UAAA,IAAAE,gBAAA,CAAAnW,OAAA,QAAAiW,MAAA;UAAA,IAAA3U,gBAAA,CAAAtB,OAAA,6BAJM,UAAU;UAAA,IAAAsB,gBAAA,CAAAtB,OAAA,4BACX,IAAI;UAAA,IAAAsB,gBAAA,CAAAtB,OAAA,6BACH,IAAI;UAAA,IAAAsB,gBAAA,CAAAtB,OAAA,0BACoB,IAAI;UAE7C,IAAI,CAACoW,WAAW,CAASC,SAAS,CAACtV,IAAI,CAAC,IAAI,CAAC;QAChD;QAAC,IAAAuV,aAAA,CAAAtW,OAAA,EAAAiW,MAAA;UAAAM,GAAA;UAAAlE,KAAA,EAED,SAAAmE,kBAAA,EAAoB;YAClB,OAAO,CAAC,CAAC;UACX;QAAC;UAAAD,GAAA;UAAAlE,KAAA,EAED,SAAAoE,eAAA,EAAiB;YACf,OAAO,CAAC,CAAC;UACX;QAAC;UAAAF,GAAA;UAAAlE,KAAA,EAED,SAAAqE,YAAA,EAAc;YACZ,OAAOjT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC;cAACiT,GAAG,EAAE,OAAO;cAAE1C,IAAI,EAAE;YAAO,CAAC,CAAC;UACvD;QAAC;UAAAsC,GAAA;UAAAlE,KAAA,EAED,SAAAuE,oBAAoBC,IAAS,EAAE;YAC7B,IAAI,CAACC,gBAAgB,GAAGD,IAAI;YAE5B,OAAOpT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC,CAAC;UAC1B;QAAC;UAAA6S,GAAA;UAAAlE,KAAA,EAED,SAAA0E,qBAAqBF,IAAS,EAAE;YAC9B,IAAI,CAACG,iBAAiB,GAAGH,IAAI;YAE7B,OAAOpT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC,CAAC;UAC1B;QAAC;UAAA6S,GAAA;UAAAlE,KAAA,EAED,SAAA4E,aAAA,EAAe;YACb,OAAOxT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC;cAACiT,GAAG,EAAE,QAAQ;cAAE1C,IAAI,EAAE;YAAQ,CAAC,CAAC;UACzD;QAAC;UAAAsC,GAAA;UAAAlE,KAAA,EAED,SAAA6E,gBAAA,EAAkB;YAChB,OAAOzT,QAAA,CAAAzD,OAAA,CAAQ0D,OAAO,CAAC,CAAC;UAC1B;QAAC;UAAA6S,GAAA;UAAAlE,KAAA,EAED,SAAA8E,MAAA,EAAQ,CAAC;QAAC;UAAAZ,GAAA;UAAAlE,KAAA,EACV,SAAA+E,iBAAA,EAAmB,CAAC;QAAC;UAAAb,GAAA;UAAAlE,KAAA,EACrB,SAAAgF,oBAAA,EAAsB,CAAC;QAAC;QAAA,OAAApB,MAAA;MAAA,SAAA3U,gBAAA,CAAAtB,OAAA,EAAAiW,MAAA,eA3CE,EAAE,GAAAA,MAAA,CA4C7B;IACH,CAAC,CAAC;IAEFtS,QAAQ,CAAC,YAAM;MACblC,MAAM,CAACyU,iBAAiB,GAAGF,qBAAqB;IAClD,CAAC,CAAC;IAEFnS,EAAE,CAAC,kCAAkC,mBAAAC,kBAAA,CAAA9D,OAAA,eAAA+D,YAAA,CAAA/D,OAAA,CAAAgE,IAAA,CAAE,SAAAsT,UAAA;MAAA,OAAAvT,YAAA,CAAA/D,OAAA,CAAAmE,IAAA,UAAAoT,WAAAC,UAAA;QAAA,kBAAAA,UAAA,CAAAlT,IAAA,GAAAkT,UAAA,CAAAjT,IAAA;UAAA;YAAAiT,UAAA,CAAAjT,IAAA;YAAA,OAC/BU,MAAM,CAAC,IAAAwS,sCAAwB,EAAC,CAAC,CAAC,CAAC,CAAC,CAACC,QAAQ,CAACvR,GAAG,CAACC,OAAO,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAoR,UAAA,CAAApS,IAAA;QAAA;MAAA,GAAAkS,SAAA;IAAA,CAClE,GAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_asyncMutex","require","Media","_interopRequireWildcard","_types","_testUtil","_types2","_types3","_Logger","_interopRequireDefault","_CallingClient","_Utils","utils","_callManager","_constants","_callRecordFixtures","_callingClientFixtures","_line","_registerFixtures","_constants2","_types4","_windowsChromiumIceWarmupUtils","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys2","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","global","crypto","randomUUID","jest","spyOn","mockResolvedValue","undefined","describe","handleErrorSpy","setLoggerSpy","webex","getTestUtilsWebex","internal","services","mockCatalogUS","defaultServiceIndicator","ServiceIndicator","CALLING","callManager","getCallManager","infoSpy","log","logSpy","warnSpy","originalProcessNextTick","process","nextTick","flushPromises","_promise","resolve","afterAll","removeAllListeners","it","_asyncToGenerator2","_regenerator","mark","_callee","urlSpy","callingClient","wrap","_callee$","_context","prev","next","_hostCatalog","mockCatalogEU","window","mockImplementation","url","URL","createClient","logger","level","LOGGER","INFO","sent","expect","toHaveBeenCalledWith","toStrictEqual","mockEUServiceHosts","mockRestore","stop","_callee2","_callee2$","_context2","_serviceUrls","mobius","toHaveBeenCalledTimes","mockUSServiceHosts","afterEach","_callee4","_callee4$","_context4","_callee3","_callee3$","_context3","toBeTruthy","not","toThrow","Error","_callee6","serviceDataObj","_callee6$","_context6","indicator","domain","_callee5","_callee5$","_context5","serviceData","_callee7","_callee7$","_context7","t0","message","toEqual","assertions","_callee8","_callee8$","_context8","_callee0","_callee0$","_context0","_callee9","_callee9$","_context9","_callee1","_callee1$","_context1","CONTACT_CENTER","_callee11","_callee11$","_context11","_callee10","_callee10$","_context10","_callee12","_callee12$","_context12","getLoggingLevel","clearAllTimers","clearAllMocks","useRealTimers","_callee13","_callee13$","_context13","request","mockResolvedValueOnce","ipPayload","regionPayload","discoveryPayload","toBeCalledTimes","primaryMobiusUris","primaryUrl","toBeCalled","nthCalledWith","method","getMockRequestTemplate","uri","concat","URL_ENDPOINT","IP_ENDPOINT","DISCOVERY_URL","myIP","addAuthHeader","headers","SPARK_USER_AGENT","regionBody","clientRegion","countryCode","_callee14","failurePayload","_callee14$","_context14","statusCode","mockRejectedValue","toBeCalledWith","anything","file","CALLING_CLIENT_FILE","objectContaining","_callee15","_callee15$","_context15","mockRejectedValueOnce","toBeCalledOnceWith","_callee16","_callee16$","_context16","_callee17","_callee17$","_context17","_callee18","_callee18$","_context18","mockReset","discovery","region","country","METHOD_START_MESSAGE","toHaveBeenCalled","mobiusCluster","checkCluster","_ref19","_callee19","mockServiceHosts","mockCatalog","_callee19$","_context19","_x","_x2","each","_ref20","_callee20","clusterName","_callee20$","_context20","abrupt","mockIntServiceHosts","mockCatalogUSInt","mockEUIntServiceHosts","mockCatalogEUInt","_x3","line","beforeEach","_callee21","_callee21$","_context21","_values","lineDict","_keys","getLines","reg","windowEventSpy","deRegSpy","restoreSpy","restartRegisterSpy","registerSpy","metricSpy","_callee22","_callee22$","_context22","useFakeTimers","registrationPayload","registration","register","callCollection","_callee23","g","clearKeepaliveSpy","offlineCb","_callee23$","_context23","fetch","fn","mock","calls","stringContaining","toBe","_callee24","_callee24$","_context24","any","_callee25","onlineCb","_callee25$","_context25","String","_callee26","mercuryOfflineCb","_callee26$","_context26","mercury","on","METRIC_EVENT","CONNECTION_ERROR","CONNECTION_ACTION","MERCURY_DOWN","METRIC_TYPE","BEHAVIORAL","_callee27","handleConnectionRestoreSpy","mercuryOnlineCb","_callee27$","_context27","advanceTimersByTime","NETWORK_FLAP_TIMEOUT","REGISTRATION_FILE","getActiveMobiusUrl","NETWORK_FLAP","_callee28","_callee28$","_context28","setStatus","RegistrationStatus","IDLE","_callee29","callKeepaliveSpy","deleteSpy","_callee29$","_context29","createCall","getActiveCalls","state","value","_callee30","_callee30$","_context30","MERCURY_UP","mutex","Mutex","userId","device","clientDeviceUri","mobiusUris","filterMobiusUris","getMobiusDiscoveryResponse","primary","backupMobiusUris","backup","beforeAll","_callee31","_callee31$","_context31","Line","end","getSDKConnector","getWebex","makeCall","address","type","CallType","URI","getConnectedCall","mockCall","mockCall2","mockActiveCalls","mockCorrelationId","mockCorrelationId2","mockReturnValue","mockDeviceId","lineId","mockDeviceId2","mockCall3","mockCorrelationId3","mockLineId","mockLineId2","mockOn","_callee32","_callee32$","_context32","done","CALLING_CLIENT_EVENT_KEYS","USER_SESSION_INFO","event","data","MOCK_SESSION_EVENT","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","callSessionCallback","userSessions","MOCK_MULTIPLE_SESSIONS_EVENT","origRTCPeerConnection","_class","RTCPeerConnection","_classCallCheck2","constructor","instances","_createClass2","key","createDataChannel","addTransceiver","createOffer","sdp","setLocalDescription","desc","localDescription","setRemoteDescription","remoteDescription","createAnswer","addIceCandidate","close","addEventListener","removeEventListener","_callee33","_callee33$","_context33","windowsChromiumIceWarmup","resolves"],"sources":["CallingClient.test.ts"],"sourcesContent":["import {Mutex} from 'async-mutex';\nimport * as Media from '@webex/internal-media-core';\nimport {LOGGER} from '../Logger/types';\nimport {\n getTestUtilsWebex,\n getMockRequestTemplate,\n getMobiusDiscoveryResponse,\n} from '../common/testUtil';\nimport {CallType, RegistrationStatus, ServiceIndicator} from '../common/types';\n/* eslint-disable dot-notation */\nimport {CALLING_CLIENT_EVENT_KEYS, CallSessionEvent, MOBIUS_EVENT_KEYS} from '../Events/types';\nimport log from '../Logger';\nimport {createClient} from './CallingClient';\nimport {ICallingClient} from './types';\nimport * as utils from '../common/Utils';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n DISCOVERY_URL,\n IP_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n REGISTRATION_FILE,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n} from './constants';\nimport {MOCK_MULTIPLE_SESSIONS_EVENT, MOCK_SESSION_EVENT} from './callRecordFixtures';\nimport {ILine} from './line/types';\nimport {\n ipPayload,\n regionBody,\n regionPayload,\n primaryUrl,\n discoveryPayload,\n registrationPayload,\n myIP,\n mockEUServiceHosts,\n mockIntServiceHosts,\n mockEUIntServiceHosts,\n mockCatalogEU,\n mockCatalogUSInt,\n mockCatalogUS,\n mockCatalogEUInt,\n mockUSServiceHosts,\n} from './callingClientFixtures';\nimport Line from './line';\nimport {filterMobiusUris} from '../common/Utils';\nimport {URL} from './registration/registerFixtures';\nimport {ICall} from './calling/types';\nimport {ServiceHost} from '../SDKConnector/types';\nimport {METHOD_START_MESSAGE} from '../common/constants';\nimport {METRIC_EVENT, CONNECTION_ACTION, METRIC_TYPE} from '../Metrics/types';\nimport windowsChromiumIceWarmup from './windowsChromiumIceWarmupUtils';\n\nglobal.crypto = {\n randomUUID: () => '12345678-1234-5678-1234-567812345678',\n} as unknown as Crypto;\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('CallingClient Tests', () => {\n // Common initializers\n\n const handleErrorSpy = jest.spyOn(utils, 'handleCallingClientErrors');\n const setLoggerSpy = jest.spyOn(Media, 'setLogger');\n const webex = getTestUtilsWebex();\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n const defaultServiceIndicator = ServiceIndicator.CALLING;\n const callManager = getCallManager(webex, defaultServiceIndicator);\n\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n const warnSpy = jest.spyOn(log, 'warn');\n\n const originalProcessNextTick = process.nextTick;\n function flushPromises() {\n return new Promise((resolve) => {\n originalProcessNextTick(resolve);\n });\n }\n\n describe('CallingClient pick Mobius cluster using Service Host Tests', () => {\n afterAll(() => {\n callManager.removeAllListeners();\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius.aintgen-a-1.int.infra.webex.com/api/v1';\n webex.internal.services['_hostCatalog'] = mockCatalogUS;\n });\n\n it('should set mobiusServiceHost correctly when URL is valid', async () => {\n webex.internal.services._hostCatalog = mockCatalogEU;\n webex.internal.services['_serviceUrls']['mobius'] =\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1';\n const urlSpy = jest.spyOn(window, 'URL').mockImplementation((url) => new window.URL(url));\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(urlSpy).toHaveBeenCalledWith(\n 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1'\n );\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockEUServiceHosts);\n\n urlSpy.mockRestore();\n });\n\n it('should use default mobius service host when Service URL is invalid', async () => {\n webex.internal.services._hostCatalog = mockCatalogUS;\n webex.internal.services._serviceUrls.mobius = 'invalid-url';\n\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(setLoggerSpy).toHaveBeenCalledTimes(1);\n expect(callingClient['mobiusClusters']).toStrictEqual(mockUSServiceHosts);\n });\n });\n\n describe('ServiceData tests', () => {\n let callingClient: ICallingClient | undefined;\n\n afterEach(() => {\n callManager.removeAllListeners();\n callingClient = undefined;\n });\n\n /**\n * No input sdk config to callingClient, it should default to service type\n * calling and empty domain value.\n */\n it('Verify valid calling serviceData with no input sdk config', async () => {\n expect(async () => {\n callingClient = await createClient(webex);\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying empty string for\n * both indicator and domain in it.\n *\n * It should default to service type calling and empty domain value.\n *\n */\n it('Verify invalid empty service indicator, empty domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: '', domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying invalid value for indicator\n * and valid domain type string for domain field in it.\n *\n * It should throw error and abort execution as indicator value is invalid.\n *\n * INDICATOR value MUST MATCH with one of the values in ServiceIndicator enum.\n */\n it('Verify invalid service indicator, valid domain', async () => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const serviceDataObj: any = {indicator: 'test', domain: 'test.example.com'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual(\n 'Invalid service indicator, Allowed values are: calling, contactcenter and guestcalling'\n );\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', but an invalid domain type string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type calling is allowed to be empty but if it carries a non-empty\n * string then it must be of valid domain type.\n */\n it('CALLING: verify invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: 'test'};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'calling', and an empty string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'calling' is allowed to be empty.\n */\n it('CALLING: verify valid empty service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CALLING, domain: ''};\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter', but an empty string for domain field in it.\n *\n * It should throw error and abort execution as domain value is invalid.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify empty invalid service domain', async () => {\n const serviceDataObj = {indicator: ServiceIndicator.CONTACT_CENTER, domain: ''};\n\n try {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n } catch (e) {\n expect(e.message).toEqual('Invalid service domain.');\n }\n expect.assertions(1);\n });\n\n /**\n * Input sdk config to callingClient with serviceData carrying valid value for indicator\n * 'contactcenter' , and a valid domain type string for domain field in it.\n *\n * Execution should proceed properly and createRegistration should be called with same serviceData.\n *\n * DOMAIN field for service type 'contactcenter' must carry a non-empty valid domain type string.\n */\n it('ContactCenter: verify valid service domain', async () => {\n const serviceDataObj = {\n indicator: ServiceIndicator.CONTACT_CENTER,\n domain: 'test.example.com',\n };\n\n expect(async () => {\n callingClient = await createClient(webex, {serviceData: serviceDataObj});\n expect(callingClient).toBeTruthy();\n }).not.toThrow(Error);\n });\n\n it('Get current log level', async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n expect(callingClient).toBeTruthy();\n expect(callingClient.getLoggingLevel).toBeTruthy();\n expect(callingClient.getLoggingLevel()).toEqual(LOGGER.INFO);\n });\n });\n\n describe('Mobius Server discovery tests', () => {\n let callingClient;\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify successful mobius server url discovery', async () => {\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(3);\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n expect(handleErrorSpy).not.toBeCalled();\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}${IP_ENDPOINT}`,\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(webex.request).nthCalledWith(3, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n });\n });\n\n it('case when region discovery fails', async () => {\n const failurePayload = {\n statusCode: 500,\n };\n\n webex.request.mockRejectedValue(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).nthCalledWith(1, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(2, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-ca-central-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(3, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-eu-central-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(4, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-ap-southeast-2.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('case when /myIP failed with 401', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('when region discovery succeeds but region based mobius url discovery fails', async () => {\n const failurePayload = {\n statusCode: 500,\n };\n\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(handleErrorSpy).toBeCalledWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n expect(webex.request).toBeCalledTimes(3);\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(webex.request).nthCalledWith(1, {\n method: 'GET',\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}${IP_ENDPOINT}`,\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('case when discovery failed with 401', async () => {\n const failurePayload = {\n statusCode: 401,\n };\n\n webex.request.mockResolvedValueOnce(ipPayload).mockRejectedValueOnce(failurePayload);\n\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).nthCalledWith(1, {\n ...getMockRequestTemplate(),\n uri: 'https://mobius-us-east-1.prod.infra.webex.com/api/v1/calling/web/myip',\n method: 'GET',\n });\n\n expect(webex.request).nthCalledWith(2, {\n method: 'GET',\n uri: `${DISCOVERY_URL}/${myIP}`,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([\n `${callingClient['mobiusHost']}${URL_ENDPOINT}`,\n ]);\n\n expect(warnSpy).toBeCalledWith(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n expect.objectContaining({\n file: CALLING_CLIENT_FILE,\n method: 'getMobiusServers',\n })\n );\n });\n\n it('Verify successful mobius server url discovery after initializing callingClient through a config', async () => {\n infoSpy.mockReset();\n webex.request.mockResolvedValueOnce(discoveryPayload);\n\n callingClient = await createClient(webex, {\n discovery: {\n region: 'AP-SOUTHEAST',\n country: 'IN',\n },\n logger: {\n level: LOGGER.INFO,\n },\n });\n\n expect(callingClient.primaryMobiusUris).toEqual([primaryUrl]);\n\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: 'CallingClient',\n method: 'getMobiusServers',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n ...getMockRequestTemplate(),\n uri: `${callingClient['mobiusHost']}${URL_ENDPOINT}?regionCode=${regionBody.clientRegion}&countryCode=${regionBody.countryCode}`,\n method: 'GET',\n });\n\n expect(handleErrorSpy).not.toHaveBeenCalled();\n });\n });\n\n describe('Testing each cluster present withing host catalog', () => {\n const mobiusCluster = [\n 'mobius-eu-central-1.prod.infra.webex.com',\n 'mobius-us-east-1.int.infra.webex.com',\n 'mobius-eu-central-1.int.infra.webex.com',\n ];\n\n const checkCluster = async (\n mockServiceHosts: ServiceHost[],\n mockCatalog: Record<string, ServiceHost[]>\n ) => {\n webex.internal.services._hostCatalog = mockCatalog;\n const callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n\n expect(callingClient['mobiusClusters']).toStrictEqual(mockServiceHosts);\n };\n\n it.each(mobiusCluster)('%s', async (clusterName) => {\n switch (clusterName) {\n case 'mobius-eu-central-1.prod.infra.webex.com':\n checkCluster(mockEUServiceHosts, mockCatalogEU);\n break;\n case 'mobius-us-east-1.int.infra.webex.com':\n checkCluster(mockIntServiceHosts, mockCatalogUSInt);\n break;\n case 'mobius-eu-central-1.int.infra.webex.com':\n checkCluster(mockEUIntServiceHosts, mockCatalogEUInt);\n break;\n default:\n break;\n }\n });\n });\n\n describe('Line creation tests', () => {\n let callingClient;\n let line;\n\n beforeEach(async () => {\n callingClient = await createClient(webex);\n line = Object.values(callingClient.lineDict)[0];\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('verify line dict successfully created', () => {\n expect(callingClient.lineDict).toBeTruthy();\n expect(line).toBeTruthy();\n expect(Object.keys(callingClient.lineDict).length).toEqual(1);\n });\n\n it('verify getLines response', () => {\n expect(callingClient.getLines).toBeTruthy();\n expect(callingClient.getLines()).toEqual(callingClient.lineDict);\n });\n });\n\n describe('Connectivity and Mercury event handlers', () => {\n let callingClient: ICallingClient;\n let line;\n let reg;\n let windowEventSpy: jest.SpyInstance;\n let deRegSpy;\n let restoreSpy;\n let restartRegisterSpy;\n let registerSpy;\n let metricSpy;\n\n beforeEach(async () => {\n jest.useFakeTimers();\n webex.request\n .mockResolvedValueOnce(ipPayload)\n .mockResolvedValueOnce(regionPayload)\n .mockResolvedValueOnce(discoveryPayload)\n .mockResolvedValueOnce(registrationPayload);\n\n windowEventSpy = jest.spyOn(window, 'addEventListener');\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n line = Object.values(callingClient.lineDict)[0] as ILine;\n reg = line.registration;\n await line.register();\n\n deRegSpy = jest.spyOn(reg, 'deregister');\n restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');\n restartRegisterSpy = jest.spyOn(reg, 'restartRegistration');\n registerSpy = jest.spyOn(reg, 'attemptRegistrationWithServers');\n metricSpy = jest.spyOn(callingClient['metricManager'], 'submitConnectionMetrics');\n });\n\n afterEach(() => {\n jest.clearAllTimers();\n jest.clearAllMocks();\n callingClient.removeAllListeners();\n callingClient['callManager'].callCollection = {};\n callManager.removeAllListeners();\n callingClient = undefined;\n jest.useRealTimers();\n });\n\n it('window offline handler sets networkDown and clears keepalive when network is unreachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockRejectedValueOnce(new Error('network fail'));\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Network connectivity probe failed'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'pingExternal',\n }\n );\n expect(callingClient['isNetworkDown']).toBe(true);\n expect(clearKeepaliveSpy).toHaveBeenCalled();\n });\n\n it('window offline handler does not clear keepalive when network is reachable', async () => {\n const g = global;\n g.fetch = jest.fn().mockResolvedValueOnce({});\n\n const clearKeepaliveSpy = jest.spyOn(reg, 'clearKeepaliveTimer');\n\n const offlineCb = windowEventSpy.mock.calls[1][1];\n await offlineCb();\n\n expect(g.fetch).toHaveBeenCalledWith(\n 'https://www.google.com/generate_204',\n expect.any(Object)\n );\n expect(callingClient['isNetworkDown']).toBe(false);\n expect(clearKeepaliveSpy).not.toHaveBeenCalled();\n });\n\n it('window online handler sets networkUpTimestamp and logs', async () => {\n const onlineCb = windowEventSpy.mock.calls[0][1];\n await onlineCb();\n\n expect(callingClient['networkUpTimestamp']).toEqual(expect.any(String));\n expect(infoSpy).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CALLING_CLIENT_FILE,\n method: 'handleNetworkOnline',\n });\n });\n\n it('mercury offline submits metrics and sets timestamp', async () => {\n const mercuryOfflineCb = webex.internal.mercury.on.mock.calls[1][1];\n await mercuryOfflineCb();\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mercury down, waiting for connection to be up'),\n {\n file: CALLING_CLIENT_FILE,\n method: 'handleMercuryOffline',\n }\n );\n expect(callingClient['mercuryDownTimestamp']).toEqual(expect.any(String));\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_DOWN,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n ''\n );\n });\n\n it('handles reconnection with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).toHaveBeenCalledWith(true);\n expect(logSpy).toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).toHaveBeenCalledWith();\n expect(restoreSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('no reconnection for idle registration with no active calls after network flap, once mercury comes back up', async () => {\n const handleConnectionRestoreSpy = jest.spyOn(reg, 'handleConnectionRestoration');\n\n callingClient['isNetworkDown'] = true;\n callingClient['networkDownTimestamp'] = '2023-01-01T00:00:00.000Z';\n callingClient['networkUpTimestamp'] = '2023-01-01T00:01:00.000Z';\n reg.setStatus(RegistrationStatus.IDLE);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n // Run the interval once\n jest.advanceTimersByTime(NETWORK_FLAP_TIMEOUT + 100);\n\n await flushPromises();\n\n expect(handleConnectionRestoreSpy).not.toHaveBeenCalledWith(true);\n expect(logSpy).not.toHaveBeenCalledWith(\n 'Network is up again, re-registering with Webex Calling if needed',\n {\n file: REGISTRATION_FILE,\n method: 'handleConnectionRestoration',\n }\n );\n expect(deRegSpy).not.toHaveBeenCalledWith();\n expect(restoreSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(restartRegisterSpy).not.toHaveBeenCalledWith('handleConnectionRestoration');\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [\n reg.getActiveMobiusUrl(),\n ]);\n expect(registerSpy).not.toHaveBeenCalledWith('handleConnectionRestoration', [primaryUrl]);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n '2023-01-01T00:00:00.000Z',\n '2023-01-01T00:01:00.000Z'\n );\n });\n\n it('handle calls status check once mercury comes back up after a network flap', async () => {\n callingClient['isNetworkDown'] = true;\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.NETWORK_FLAP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n\n it('handle calls status check once mercury comes back up with stable network', async () => {\n const call = callingClient['callManager'].createCall();\n const callKeepaliveSpy = jest\n .spyOn(call, 'postStatus')\n .mockRejectedValueOnce(new Error('keepalive fail'));\n const deleteSpy = jest.spyOn(call, 'delete');\n expect(Object.keys(callingClient['callManager'].getActiveCalls()).length).toBe(1);\n\n const mercuryOnlineCb = webex.internal.mercury.on.mock.calls[2][1];\n await mercuryOnlineCb();\n\n expect(callKeepaliveSpy).toHaveBeenCalled();\n\n await flushPromises();\n\n expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('Call Keepalive failed'), {\n file: CALLING_CLIENT_FILE,\n method: 'checkCallStatus',\n });\n expect(call['callStateMachine'].state.value).toBe('S_CALL_CLEARED');\n expect(deleteSpy).toHaveBeenCalled();\n\n expect(Object.keys(reg.callManager.getActiveCalls()).length).toBe(0);\n expect(metricSpy).toHaveBeenCalledWith(\n METRIC_EVENT.CONNECTION_ERROR,\n CONNECTION_ACTION.MERCURY_UP,\n METRIC_TYPE.BEHAVIORAL,\n expect.any(String),\n expect.any(String)\n );\n });\n });\n\n // Calling related test cases\n describe('Calling tests', () => {\n const mutex = new Mutex();\n const userId = webex.internal.device.userId;\n const clientDeviceUri = webex.internal.device.url;\n const mobiusUris = filterMobiusUris(getMobiusDiscoveryResponse(), URL);\n const primaryMobiusUris = jest.fn(() => mobiusUris.primary);\n const backupMobiusUris = jest.fn(() => mobiusUris.backup);\n\n let callingClient;\n let line: Line;\n\n beforeAll(async () => {\n callingClient = await createClient(webex);\n line = new Line(\n userId,\n clientDeviceUri,\n mutex,\n primaryMobiusUris(),\n backupMobiusUris(),\n LOGGER.INFO\n );\n const calls = Object.values(callManager.getActiveCalls());\n calls.forEach((call) => {\n call.end();\n });\n });\n\n afterAll(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify calling client object', () => {\n expect(callingClient.getSDKConnector().getWebex().internal.device.userId).toBe(\n '8a67806f-fc4d-446b-a131-31e71ea5b0e9'\n );\n });\n\n it('returns undefined when there is no connected call', () => {\n line.register();\n line.makeCall({address: '123456', type: CallType.URI});\n expect(callingClient.getConnectedCall()).toEqual(undefined);\n });\n\n it('returns the connected call', () => {\n line.register();\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n // Connected call\n mockCall['connected'] = true;\n mockCall['earlyMedia'] = false;\n mockCall['callStateMachine'].state.value = 'S_CALL_ESTABLISHED';\n\n // Held call\n mockCall2['connected'] = true;\n mockCall2['held'] = true;\n mockCall2['earlyMedia'] = false;\n mockCall2['callStateMachine'].state.value = 'S_CALL_HOLD';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getConnectedCall()).toEqual(mockCall);\n });\n it('returns all active calls', () => {\n callingClient.lineDict = {\n mockDeviceId: {lineId: 'mockLineId'} as ILine,\n mockDeviceId2: {lineId: 'mockLineId2'} as ILine,\n };\n\n const mockCall = line.makeCall({address: '1234', type: CallType.URI});\n const mockCall2 = line.makeCall({address: '5678', type: CallType.URI});\n const mockCall3 = line.makeCall({address: '9101', type: CallType.URI});\n\n mockCall.lineId = 'mockLineId';\n mockCall2.lineId = 'mockLineId2';\n mockCall3.lineId = 'mockLineId2';\n\n const mockActiveCalls: Record<string, ICall> = {\n mockCorrelationId: mockCall as ICall,\n mockCorrelationId2: mockCall2 as ICall,\n mockCorrelationId3: mockCall3 as ICall,\n };\n\n jest.spyOn(callManager, 'getActiveCalls').mockReturnValue(mockActiveCalls);\n expect(callingClient.getActiveCalls()).toEqual({\n mockLineId: [mockCall],\n mockLineId2: [mockCall2, mockCall3],\n });\n });\n });\n\n describe('Call Session Event test', () => {\n const mockOn = webex.internal.mercury.on;\n let callingClient: ICallingClient;\n\n beforeEach(async () => {\n callingClient = await createClient(webex, {logger: {level: LOGGER.INFO}});\n });\n\n afterEach(() => {\n callingClient.removeAllListeners();\n callManager.removeAllListeners();\n });\n\n it('verify the recent user session event ', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data).toEqual(MOCK_SESSION_EVENT.data);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_SESSION_EVENT);\n });\n\n it('drop the recent user session if there is no webex calling type', (done) => {\n expect.assertions(2);\n callingClient.on(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, (event: CallSessionEvent) => {\n expect(event.data.userSessions.userSessions.length).toEqual(1);\n done();\n });\n\n expect(mockOn.mock.calls[0][0]).toEqual(MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE);\n const callSessionCallback = mockOn.mock.calls[0][1];\n\n callSessionCallback(MOCK_MULTIPLE_SESSIONS_EVENT);\n });\n });\n\n describe('windowsChromiumIceWarmup', () => {\n let origRTCPeerConnection: any;\n\n beforeAll(() => {\n origRTCPeerConnection = global.RTCPeerConnection;\n // Minimal mock for RTCPeerConnection\n global.RTCPeerConnection = class {\n static instances: any[] = [];\n iceGatheringState = 'complete';\n localDescription = null;\n remoteDescription = null;\n onicecandidate: ((e: any) => void) | null = null;\n constructor() {\n (this.constructor as any).instances.push(this);\n }\n\n createDataChannel() {\n return {};\n }\n\n addTransceiver() {\n return {};\n }\n\n createOffer() {\n return Promise.resolve({sdp: 'offer', type: 'offer'});\n }\n\n setLocalDescription(desc: any) {\n this.localDescription = desc;\n\n return Promise.resolve();\n }\n\n setRemoteDescription(desc: any) {\n this.remoteDescription = desc;\n\n return Promise.resolve();\n }\n\n createAnswer() {\n return Promise.resolve({sdp: 'answer', type: 'answer'});\n }\n\n addIceCandidate() {\n return Promise.resolve();\n }\n\n close() {}\n addEventListener() {}\n removeEventListener() {}\n };\n });\n\n afterAll(() => {\n global.RTCPeerConnection = origRTCPeerConnection;\n });\n\n it('should complete without throwing', async () => {\n await expect(windowsChromiumIceWarmup({})).resolves.not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|