@webex/calling 3.0.0-next.8 → 3.0.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.
Files changed (219) hide show
  1. package/dist/CallHistory/CallHistory.js +49 -49
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallHistory/CallHistory.test.js +9 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -1
  5. package/dist/CallHistory/callHistoryFixtures.js +63 -7
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
  7. package/dist/CallHistory/constants.js +9 -18
  8. package/dist/CallHistory/constants.js.map +1 -1
  9. package/dist/CallHistory/types.js.map +1 -1
  10. package/dist/CallSettings/CallSettings.js +18 -13
  11. package/dist/CallSettings/CallSettings.js.map +1 -1
  12. package/dist/CallSettings/CallSettings.test.js.map +1 -1
  13. package/dist/CallSettings/UcmBackendConnector.js +7 -8
  14. package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
  15. package/dist/CallSettings/UcmBackendConnector.test.js +69 -37
  16. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
  17. package/dist/CallSettings/WxCallBackendConnector.js +19 -13
  18. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
  19. package/dist/CallSettings/WxCallBackendConnector.test.js +2 -2
  20. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
  21. package/dist/CallSettings/constants.js +11 -22
  22. package/dist/CallSettings/constants.js.map +1 -1
  23. package/dist/CallSettings/testFixtures.js +4 -8
  24. package/dist/CallSettings/testFixtures.js.map +1 -1
  25. package/dist/CallSettings/types.js.map +1 -1
  26. package/dist/CallingClient/CallingClient.js +134 -75
  27. package/dist/CallingClient/CallingClient.js.map +1 -1
  28. package/dist/CallingClient/CallingClient.test.js +170 -109
  29. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  30. package/dist/CallingClient/callRecordFixtures.js +2 -4
  31. package/dist/CallingClient/callRecordFixtures.js.map +1 -1
  32. package/dist/CallingClient/calling/CallerId/index.js +9 -29
  33. package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
  34. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
  35. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  36. package/dist/CallingClient/calling/call.js +140 -80
  37. package/dist/CallingClient/calling/call.js.map +1 -1
  38. package/dist/CallingClient/calling/call.test.js +651 -409
  39. package/dist/CallingClient/calling/call.test.js.map +1 -1
  40. package/dist/CallingClient/calling/callManager.js +3 -14
  41. package/dist/CallingClient/calling/callManager.js.map +1 -1
  42. package/dist/CallingClient/calling/callManager.test.js +1 -1
  43. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  44. package/dist/CallingClient/calling/types.js +31 -33
  45. package/dist/CallingClient/calling/types.js.map +1 -1
  46. package/dist/CallingClient/callingClientFixtures.js +107 -17
  47. package/dist/CallingClient/callingClientFixtures.js.map +1 -1
  48. package/dist/CallingClient/constants.js +101 -193
  49. package/dist/CallingClient/constants.js.map +1 -1
  50. package/dist/CallingClient/line/index.js +20 -18
  51. package/dist/CallingClient/line/index.js.map +1 -1
  52. package/dist/CallingClient/line/line.test.js +13 -13
  53. package/dist/CallingClient/line/line.test.js.map +1 -1
  54. package/dist/CallingClient/line/types.js +7 -11
  55. package/dist/CallingClient/line/types.js.map +1 -1
  56. package/dist/CallingClient/registration/register.js +102 -111
  57. package/dist/CallingClient/registration/register.js.map +1 -1
  58. package/dist/CallingClient/registration/register.test.js +33 -32
  59. package/dist/CallingClient/registration/register.test.js.map +1 -1
  60. package/dist/CallingClient/registration/registerFixtures.js +5 -10
  61. package/dist/CallingClient/registration/registerFixtures.js.map +1 -1
  62. package/dist/CallingClient/registration/types.js.map +1 -1
  63. package/dist/CallingClient/types.js.map +1 -1
  64. package/dist/Contacts/ContactsClient.js +30 -19
  65. package/dist/Contacts/ContactsClient.js.map +1 -1
  66. package/dist/Contacts/ContactsClient.test.js +4 -4
  67. package/dist/Contacts/ContactsClient.test.js.map +1 -1
  68. package/dist/Contacts/constants.js +10 -18
  69. package/dist/Contacts/constants.js.map +1 -1
  70. package/dist/Contacts/contactFixtures.js +26 -52
  71. package/dist/Contacts/contactFixtures.js.map +1 -1
  72. package/dist/Contacts/types.js +29 -9
  73. package/dist/Contacts/types.js.map +1 -1
  74. package/dist/Errors/catalog/CallError.js +3 -5
  75. package/dist/Errors/catalog/CallError.js.map +1 -1
  76. package/dist/Errors/catalog/CallingDeviceError.js +4 -6
  77. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
  78. package/dist/Errors/catalog/ExtendedError.js +2 -3
  79. package/dist/Errors/catalog/ExtendedError.js.map +1 -1
  80. package/dist/Errors/catalog/LineError.js +5 -7
  81. package/dist/Errors/catalog/LineError.js.map +1 -1
  82. package/dist/Errors/index.js +7 -0
  83. package/dist/Errors/index.js.map +1 -1
  84. package/dist/Errors/types.js +15 -20
  85. package/dist/Errors/types.js.map +1 -1
  86. package/dist/Events/impl/index.js +2 -3
  87. package/dist/Events/impl/index.js.map +1 -1
  88. package/dist/Events/types.js +44 -52
  89. package/dist/Events/types.js.map +1 -1
  90. package/dist/Logger/index.js +1 -2
  91. package/dist/Logger/index.js.map +1 -1
  92. package/dist/Logger/index.test.js.map +1 -1
  93. package/dist/Logger/types.js +9 -12
  94. package/dist/Logger/types.js.map +1 -1
  95. package/dist/Metrics/index.js +2 -4
  96. package/dist/Metrics/index.js.map +1 -1
  97. package/dist/Metrics/index.test.js +3 -3
  98. package/dist/Metrics/index.test.js.map +1 -1
  99. package/dist/Metrics/types.js +15 -20
  100. package/dist/Metrics/types.js.map +1 -1
  101. package/dist/SDKConnector/index.js +1 -2
  102. package/dist/SDKConnector/index.js.map +1 -1
  103. package/dist/SDKConnector/types.js.map +1 -1
  104. package/dist/SDKConnector/utils.js +1 -2
  105. package/dist/SDKConnector/utils.js.map +1 -1
  106. package/dist/Voicemail/BroadworksBackendConnector.js +21 -12
  107. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
  108. package/dist/Voicemail/BroadworksBackendConnector.test.js +2 -2
  109. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
  110. package/dist/Voicemail/UcmBackendConnector.js +19 -11
  111. package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
  112. package/dist/Voicemail/UcmBackendConnector.test.js +5 -4
  113. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
  114. package/dist/Voicemail/Voicemail.js +35 -33
  115. package/dist/Voicemail/Voicemail.js.map +1 -1
  116. package/dist/Voicemail/Voicemail.test.js.map +1 -1
  117. package/dist/Voicemail/WxCallBackendConnector.js +18 -11
  118. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  119. package/dist/Voicemail/WxCallBackendConnector.test.js +4 -4
  120. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
  121. package/dist/Voicemail/constants.js +29 -58
  122. package/dist/Voicemail/constants.js.map +1 -1
  123. package/dist/Voicemail/types.js.map +1 -1
  124. package/dist/Voicemail/voicemailFixture.js +35 -70
  125. package/dist/Voicemail/voicemailFixture.js.map +1 -1
  126. package/dist/api.js +13 -20
  127. package/dist/api.js.map +1 -1
  128. package/dist/common/Utils.js +18 -25
  129. package/dist/common/Utils.js.map +1 -1
  130. package/dist/common/Utils.test.js +3 -3
  131. package/dist/common/Utils.test.js.map +1 -1
  132. package/dist/common/constants.js +41 -82
  133. package/dist/common/constants.js.map +1 -1
  134. package/dist/common/testUtil.js +12 -21
  135. package/dist/common/testUtil.js.map +1 -1
  136. package/dist/common/types.js +34 -43
  137. package/dist/common/types.js.map +1 -1
  138. package/dist/index.js +246 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/module/CallHistory/CallHistory.js +7 -5
  141. package/dist/module/CallHistory/callHistoryFixtures.js +59 -0
  142. package/dist/module/CallSettings/UcmBackendConnector.js +4 -4
  143. package/dist/module/CallingClient/CallingClient.js +59 -42
  144. package/dist/module/CallingClient/calling/CallerId/index.js +3 -23
  145. package/dist/module/CallingClient/calling/call.js +69 -26
  146. package/dist/module/CallingClient/calling/callManager.js +0 -6
  147. package/dist/module/CallingClient/callingClientFixtures.js +119 -1
  148. package/dist/module/CallingClient/constants.js +8 -4
  149. package/dist/module/CallingClient/line/index.js +9 -12
  150. package/dist/module/CallingClient/line/types.js +0 -5
  151. package/dist/module/CallingClient/registration/register.js +28 -20
  152. package/dist/module/Errors/catalog/CallingDeviceError.js +2 -2
  153. package/dist/module/Errors/catalog/LineError.js +2 -2
  154. package/dist/module/Errors/index.js +1 -0
  155. package/dist/module/Events/types.js +2 -0
  156. package/dist/module/common/Utils.js +14 -19
  157. package/dist/module/common/testUtil.js +2 -1
  158. package/dist/module/common/types.js +6 -5
  159. package/dist/module/index.js +9 -0
  160. package/dist/types/CallHistory/CallHistory.d.ts +2 -1
  161. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  162. package/dist/types/CallHistory/callHistoryFixtures.d.ts +1 -0
  163. package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
  164. package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -1
  165. package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
  166. package/dist/types/CallSettings/types.d.ts +1 -0
  167. package/dist/types/CallSettings/types.d.ts.map +1 -1
  168. package/dist/types/CallingClient/CallingClient.d.ts +2 -0
  169. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  170. package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
  171. package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
  172. package/dist/types/CallingClient/calling/call.d.ts +2 -0
  173. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  174. package/dist/types/CallingClient/calling/callManager.d.ts +0 -1
  175. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  176. package/dist/types/CallingClient/calling/types.d.ts +30 -30
  177. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  178. package/dist/types/CallingClient/callingClientFixtures.d.ts +69 -1
  179. package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -1
  180. package/dist/types/CallingClient/constants.d.ts +7 -3
  181. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  182. package/dist/types/CallingClient/line/index.d.ts +6 -6
  183. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  184. package/dist/types/CallingClient/line/types.d.ts +11 -23
  185. package/dist/types/CallingClient/line/types.d.ts.map +1 -1
  186. package/dist/types/CallingClient/registration/register.d.ts +3 -3
  187. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  188. package/dist/types/CallingClient/registration/types.d.ts +14 -14
  189. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  190. package/dist/types/CallingClient/types.d.ts +6 -4
  191. package/dist/types/CallingClient/types.d.ts.map +1 -1
  192. package/dist/types/Contacts/ContactsClient.d.ts +1 -1
  193. package/dist/types/Errors/catalog/CallingDeviceError.d.ts +4 -4
  194. package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -1
  195. package/dist/types/Errors/catalog/LineError.d.ts +4 -4
  196. package/dist/types/Errors/catalog/LineError.d.ts.map +1 -1
  197. package/dist/types/Errors/index.d.ts +1 -0
  198. package/dist/types/Errors/index.d.ts.map +1 -1
  199. package/dist/types/Errors/types.d.ts +2 -3
  200. package/dist/types/Errors/types.d.ts.map +1 -1
  201. package/dist/types/Events/types.d.ts +28 -5
  202. package/dist/types/Events/types.d.ts.map +1 -1
  203. package/dist/types/SDKConnector/types.d.ts +2 -1
  204. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  205. package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
  206. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  207. package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
  208. package/dist/types/Voicemail/types.d.ts +10 -10
  209. package/dist/types/Voicemail/types.d.ts.map +1 -1
  210. package/dist/types/api.d.ts +4 -5
  211. package/dist/types/api.d.ts.map +1 -1
  212. package/dist/types/common/Utils.d.ts.map +1 -1
  213. package/dist/types/common/testUtil.d.ts +1 -0
  214. package/dist/types/common/testUtil.d.ts.map +1 -1
  215. package/dist/types/common/types.d.ts +3 -2
  216. package/dist/types/common/types.d.ts.map +1 -1
  217. package/dist/types/index.d.ts +13 -0
  218. package/dist/types/index.d.ts.map +1 -1
  219. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants","_line","_types4","_types5","_Metrics","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","valueOf","e","CallingClient","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee2","registration","wrap","_callee2$","_context2","prev","next","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","log","file","CALLING_CLIENT_FILE","method","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","setWebex","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","logger","level","LOGGER","ERROR","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","primaryMobiusUris","backupMobiusUris","registerSessionsListener","setLogger","registerCallsClearedListener","_createClass2","value","_init","_callee3","_callee3$","_context3","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","setInterval","_callee4","_callee4$","_context4","internal","mercury","connected","_keys","getActiveCalls","length","warn","name","lineEmitter","LINE_EVENTS","UNREGISTERED","clearKeepaliveTimer","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","regionInfo","_headers","temp","myIP","response","clientRegionInfo","_callee6$","_context6","request","uri","concat","services","_serviceUrls","mobius","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","t0","handleCallingClientErrors","clientError","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","emit","CALLING_CLIENT_EVENT_KEYS","GET_MOBIUS_SERVERS_UTIL","abrupt","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","_headers3","mobiusServers","mobiusUris","_callee7$","_context7","discovery","country","region","info","filterMobiusUris","primary","backup","logContext","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","i","_callee8$","_context8","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_callee9$","_context9","Line","userId","LineStatus","INACTIVE","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","Eventing","exports","createClient","_ref5","_callee10","callingClientInstance","_callee10$","_context10","_x2","_x3"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {filterMobiusUris, handleCallingClientErrors, validateServiceData} from '../common/Utils';\nimport {LOGGER, LogContext} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IpInfo,\n MobiusServers,\n WebexRequestPayload,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n} from './constants';\nimport Line from './line';\nimport {ILine, LINE_EVENTS, LineStatus} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\n\n/**\n *\n */\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n /**\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n\n this.registerSessionsListener();\n\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n\n this.registerCallsClearedListener();\n }\n\n // async calls required to run after constructor\n public async init() {\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n let retry = false;\n\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: this.detectNetworkChange.name,\n });\n\n line.lineEmitter(LINE_EVENTS.UNREGISTERED);\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n retry = await line.registration.handleConnectionRestoration(retry);\n }\n }, NETWORK_FLAP_TIMEOUT);\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n const regionInfo = {} as RegionInfo;\n\n try {\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.webex.internal.services._serviceUrls.mobius}${URL_ENDPOINT}${IP_ENDPOINT}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion ? clientRegionInfo.clientRegion : '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode ? clientRegionInfo.countryCode : '';\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.info('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n } else {\n log.info('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n '' as LogContext\n );\n\n try {\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.webex.internal.services._serviceUrls.mobius}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n log.log('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(\n mobiusServers,\n this.webex.internal.services._serviceUrls.mobius\n );\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\n );\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n useDefault = true;\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn('Error in finding Mobius Servers. Will use the default URL.', '' as LogContext);\n this.primaryMobiusUris = [\n `${this.webex.internal.services._serviceUrls.mobius}${URL_ENDPOINT}`,\n ];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n const logContext = {\n file: CALLING_CLIENT_FILE,\n method: this.registerCallsClearedListener.name,\n };\n\n log.log('Registering listener for all calls cleared event', logContext);\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.log('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n *\n * @returns - Log level.\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n *\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n /**\n *\n */\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n LineStatus.INACTIVE,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n * so this API will return a single line object\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n}\n\n/**\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Media","_interopRequireWildcard","require","_asyncMutex","_Utils","_types","_SDKConnector","_interopRequireDefault","_impl","_types2","_types3","_Logger","_callManager","_constants","_line","_types4","_Metrics","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","valueOf","CallingClient","exports","_Eventing","_inherits2","_super","webex","config","_this$sdkConfig","_this$sdkConfig$servi","_this$sdkConfig2","_this$sdkConfig2$logg","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_asyncToGenerator2","_regenerator","mark","_callee2","registration","wrap","_callee2$","_context2","prev","_values","lineDict","isDeviceRegistered","mutex","runExclusive","_callee","_callee$","_context","isReconnectPending","log","file","CALLING_CLIENT_FILE","method","CALLS_CLEARED_HANDLER_UTIL","reconnectOnFailure","stop","sdkConnector","SDKConnector","getWebex","setWebex","Mutex","sdkConfig","serviceData","indicator","ServiceIndicator","CALLING","domain","logLevel","logger","level","LOGGER","ERROR","validateServiceData","callManager","getCallManager","metricManager","getMetricManager","mediaEngine","primaryMobiusUris","backupMobiusUris","mobiusClusters","internal","services","_hostCatalog","MOBIUS_US_PROD","MOBIUS_EU_PROD","MOBIUS_US_INT","MOBIUS_EU_INT","mobiusHost","registerSessionsListener","setLogger","registerCallsClearedListener","_createClass2","key","_init","_callee3","_callee3$","_context3","getMobiusServers","createLine","detectNetworkChange","init","_detectNetworkChange","_callee5","_this2","retry","line","_callee5$","_context5","setInterval","_callee4","_callee4$","_context4","mercury","connected","_keys","getActiveCalls","warn","clearKeepaliveTimer","getStatus","RegistrationStatus","IDLE","handleConnectionRestoration","sent","NETWORK_FLAP_TIMEOUT","_getClientRegionInfo","_callee6","_this3","regionInfo","_iterator","_step","mobius","temp","myIP","response","clientRegionInfo","_callee6$","_context6","concat","host","API_V1","request","uri","URL_ENDPOINT","IP_ENDPOINT","HTTP_METHODS","GET","headers","CISCO_DEVICE_URL","device","url","SPARK_USER_AGENT","CALLING_USER_AGENT","service","ALLOWED_SERVICES","MOBIUS","body","ipv4","DISCOVERY_URL","addAuthHeader","clientRegion","countryCode","abrupt","t0","handleCallingClientErrors","clientError","submitRegistrationMetric","METRIC_EVENT","REGISTRATION_ERROR","REG_ACTION","REGISTER","METRIC_TYPE","BEHAVIORAL","emit","CALLING_CLIENT_EVENT_KEYS","GET_MOBIUS_SERVERS_UTIL","t1","finish","getClientRegionInfo","_getMobiusServers","_callee7","_this$sdkConfig3","_this$sdkConfig3$disc","_this$sdkConfig4","_this$sdkConfig4$disc","_this4","useDefault","_this$sdkConfig5","_this$sdkConfig5$disc","_this$sdkConfig6","_this$sdkConfig6$disc","mobiusServers","mobiusUris","_callee7$","_context7","discovery","country","region","info","_serviceUrls","filterMobiusUris","primary","backup","logContext","on","ALL_CALLS_CLEARED","callsClearedHandler","getLoggingLevel","getLogLevel","getSDKConnector","_this5","registerListener","MOBIUS_EVENT_KEYS","CALL_SESSION_EVENT_INCLUSIVE","_ref4","_callee8","event","sessionArr","_callee8$","_context8","data","userSessions","sessionType","SessionType","WEBEX_CALLING","splice","USER_SESSION_INFO","_x","_createLine","_callee9","_this$sdkConfig7","_callee9$","_context9","Line","userId","lineId","getLines","activeCalls","calls","forEach","correlationId","push","getConnectedCall","connectCall","isConnected","isHeld","Eventing","createClient","_ref5","_callee10","callingClientInstance","_callee10$","_context10","_x2","_x3"],"sources":["CallingClient.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport * as Media from '@webex/internal-media-core';\nimport {Mutex} from 'async-mutex';\nimport {filterMobiusUris, handleCallingClientErrors, validateServiceData} from '../common/Utils';\nimport {LOGGER, LogContext} from '../Logger/types';\nimport SDKConnector from '../SDKConnector';\nimport {ClientRegionInfo, ISDKConnector, ServiceHost, WebexSDK} from '../SDKConnector/types';\nimport {Eventing} from '../Events/impl';\nimport {\n CallingClientEventTypes,\n MOBIUS_EVENT_KEYS,\n CallSessionEvent,\n SessionType,\n CALLING_CLIENT_EVENT_KEYS,\n} from '../Events/types';\nimport {\n ServiceIndicator,\n RegionInfo,\n ALLOWED_SERVICES,\n HTTP_METHODS,\n IpInfo,\n MobiusServers,\n WebexRequestPayload,\n RegistrationStatus,\n} from '../common/types';\nimport {ICallingClient, CallingClientConfig} from './types';\nimport {ICall, ICallManager} from './calling/types';\nimport log from '../Logger';\nimport {getCallManager} from './calling/callManager';\nimport {\n CALLING_CLIENT_FILE,\n CALLS_CLEARED_HANDLER_UTIL,\n CALLING_USER_AGENT,\n CISCO_DEVICE_URL,\n DISCOVERY_URL,\n GET_MOBIUS_SERVERS_UTIL,\n IP_ENDPOINT,\n SPARK_USER_AGENT,\n URL_ENDPOINT,\n NETWORK_FLAP_TIMEOUT,\n API_V1,\n MOBIUS_US_PROD,\n MOBIUS_EU_PROD,\n MOBIUS_US_INT,\n MOBIUS_EU_INT,\n} from './constants';\nimport Line from './line';\nimport {ILine} from './line/types';\nimport {METRIC_EVENT, REG_ACTION, METRIC_TYPE, IMetricManager} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\n\n/**\n * The `CallingClient` module provides a set of APIs for line registration and calling functionalities within the SDK.\n *\n * The following code snippet demonstrates how to create an instance of `CallingClient` using a `webex` instance and `callingConfig`:\n *\n * @example\n * ```javascript\n * const callingClient = createClient(webex, callingConfig);\n * ```\n */\n\nexport class CallingClient extends Eventing<CallingClientEventTypes> implements ICallingClient {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private mutex: Mutex;\n\n private callManager: ICallManager;\n\n private metricManager: IMetricManager;\n\n private sdkConfig?: CallingClientConfig;\n\n private primaryMobiusUris: string[];\n\n private backupMobiusUris: string[];\n\n private mobiusClusters: ServiceHost[];\n\n private mobiusHost: string;\n\n public mediaEngine: typeof Media;\n\n private lineDict: Record<string, ILine> = {};\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, config?: CallingClientConfig) {\n super();\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.mutex = new Mutex();\n this.webex = this.sdkConnector.getWebex();\n\n this.sdkConfig = config;\n const serviceData = this.sdkConfig?.serviceData?.indicator\n ? this.sdkConfig.serviceData\n : {indicator: ServiceIndicator.CALLING, domain: ''};\n\n const logLevel = this.sdkConfig?.logger?.level ? this.sdkConfig.logger.level : LOGGER.ERROR;\n validateServiceData(serviceData);\n\n this.callManager = getCallManager(this.webex, serviceData.indicator);\n this.metricManager = getMetricManager(this.webex, serviceData.indicator);\n\n this.mediaEngine = Media;\n\n this.primaryMobiusUris = [];\n this.backupMobiusUris = [];\n this.mobiusClusters =\n this.webex.internal.services._hostCatalog[MOBIUS_US_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_PROD] ||\n this.webex.internal.services._hostCatalog[MOBIUS_US_INT] ||\n this.webex.internal.services._hostCatalog[MOBIUS_EU_INT];\n this.mobiusHost = '';\n\n this.registerSessionsListener();\n\n log.setLogger(logLevel, CALLING_CLIENT_FILE);\n\n this.registerCallsClearedListener();\n }\n\n // async calls required to run after constructor\n\n /**\n * Initializes the `CallingClient` by performing the following steps:\n *\n * 1. Retrieves list of servers.\n * 2. Creates a line.\n * 3. Sets up network change detection.\n *\n * This method should be called once to initialize the `callingClient`.\n *\n * @returns A promise that resolves when the initialization is complete.\n * @ignore\n */\n public async init() {\n await this.getMobiusServers();\n await this.createLine();\n\n /* Better to run the timer once rather than after every registration */\n this.detectNetworkChange();\n }\n\n /**\n * Register callbacks for network changes.\n */\n private async detectNetworkChange() {\n let retry = false;\n\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const line = Object.values(this.lineDict)[0];\n\n setInterval(async () => {\n if (\n !this.webex.internal.mercury.connected &&\n !retry &&\n !Object.keys(this.callManager.getActiveCalls()).length\n ) {\n log.warn(`Network has flapped, waiting for mercury connection to be up`, {\n file: CALLING_CLIENT_FILE,\n method: this.detectNetworkChange.name,\n });\n\n line.registration.clearKeepaliveTimer();\n\n retry = true;\n }\n\n if (retry && this.webex.internal.mercury.connected) {\n if (line.getStatus() !== RegistrationStatus.IDLE) {\n retry = await line.registration.handleConnectionRestoration(retry);\n } else {\n retry = false;\n }\n }\n }, NETWORK_FLAP_TIMEOUT);\n }\n\n /**\n * Fetches countryCode and region of the client.\n */\n private async getClientRegionInfo(): Promise<RegionInfo> {\n const regionInfo = {} as RegionInfo;\n\n for (const mobius of this.mobiusClusters) {\n this.mobiusHost = `https://${mobius.host}${API_V1}`;\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}${IP_ENDPOINT}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n const myIP = (temp.body as IpInfo).ipv4;\n // eslint-disable-next-line no-await-in-loop\n const response = <WebexRequestPayload>await this.webex.request({\n uri: `${DISCOVERY_URL}/${myIP}`,\n method: HTTP_METHODS.GET,\n addAuthHeader: false,\n headers: {\n [SPARK_USER_AGENT]: null,\n },\n });\n\n const clientRegionInfo = response.body as ClientRegionInfo;\n\n regionInfo.clientRegion = clientRegionInfo?.clientRegion\n ? clientRegionInfo.clientRegion\n : '';\n\n regionInfo.countryCode = clientRegionInfo?.countryCode ? clientRegionInfo.countryCode : '';\n break;\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n regionInfo.clientRegion = '';\n regionInfo.countryCode = '';\n }\n }\n\n return regionInfo;\n }\n\n /**\n * Local method for finding the mobius servers.\n */\n private async getMobiusServers() {\n /* Following operations are performed in a synchronous way ->\n\n 1. Get RegionInfo\n 2. Get Mobius Server with that RegionInfo\n 3. Check whether Mobius server was found without any error\n 4. If there is error , we don't need to send registration\n 5. Otherwise send registration\n */\n\n let useDefault = false;\n\n let clientRegion: string;\n let countryCode: string;\n\n if (this.sdkConfig?.discovery?.country && this.sdkConfig?.discovery?.region) {\n log.info('Updating region and country from the SDK config', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n clientRegion = this.sdkConfig?.discovery?.region;\n countryCode = this.sdkConfig?.discovery?.country;\n this.mobiusHost = this.webex.internal.services._serviceUrls.mobius;\n } else {\n log.info('Updating region and country through Region discovery', {\n file: CALLING_CLIENT_FILE,\n method: GET_MOBIUS_SERVERS_UTIL,\n });\n\n const regionInfo = await this.getClientRegionInfo();\n\n clientRegion = regionInfo.clientRegion;\n countryCode = regionInfo.countryCode;\n }\n\n if (clientRegion && countryCode) {\n log.log(\n `Found Region: ${clientRegion} and country: ${countryCode}, going to fetch Mobius server`,\n '' as LogContext\n );\n\n try {\n // eslint-disable-next-line no-await-in-loop\n const temp = <WebexRequestPayload>await this.webex.request({\n uri: `${this.mobiusHost}${URL_ENDPOINT}?regionCode=${clientRegion}&countryCode=${countryCode}`,\n method: HTTP_METHODS.GET,\n headers: {\n [CISCO_DEVICE_URL]: this.webex.internal.device.url,\n [SPARK_USER_AGENT]: CALLING_USER_AGENT,\n },\n service: ALLOWED_SERVICES.MOBIUS,\n });\n\n log.log('Mobius Server found for the region', '' as LogContext);\n const mobiusServers = temp.body as MobiusServers;\n\n /* update arrays of Mobius Uris. */\n const mobiusUris = filterMobiusUris(mobiusServers, this.mobiusHost);\n this.primaryMobiusUris = mobiusUris.primary;\n this.backupMobiusUris = mobiusUris.backup;\n log.info(\n `Final list of Mobius Servers, primary: ${mobiusUris.primary} and backup: ${mobiusUris.backup}`,\n '' as LogContext\n );\n } catch (err: unknown) {\n handleCallingClientErrors(\n err as WebexRequestPayload,\n (clientError) => {\n this.metricManager.submitRegistrationMetric(\n METRIC_EVENT.REGISTRATION_ERROR,\n REG_ACTION.REGISTER,\n METRIC_TYPE.BEHAVIORAL,\n clientError\n );\n this.emit(CALLING_CLIENT_EVENT_KEYS.ERROR, clientError);\n },\n {method: GET_MOBIUS_SERVERS_UTIL, file: CALLING_CLIENT_FILE}\n );\n\n useDefault = true;\n }\n } else {\n /* Setting this to true because region info is possibly undefined */\n useDefault = true;\n }\n\n /* Use a default URL if Mobius discovery fails either because of region info failure\n * or because the discovered Mobius couldn't be reached\n */\n\n if (useDefault) {\n log.warn(\n `Couldn't resolve the region and country code. Defaulting to the catalog entries to discover mobius servers`,\n '' as LogContext\n );\n this.mobiusHost = `https://${this.mobiusClusters[0].host}${API_V1}`;\n this.primaryMobiusUris = [`${this.mobiusHost}${URL_ENDPOINT}`];\n }\n }\n\n /**\n * Registers a listener/handler for ALL_CALLS_CLEARED\n * event emitted by callManager when all the calls\n * present on sdk are cleaned up.\n */\n private registerCallsClearedListener() {\n const logContext = {\n file: CALLING_CLIENT_FILE,\n method: this.registerCallsClearedListener.name,\n };\n\n log.log('Registering listener for all calls cleared event', logContext);\n this.callManager.on(CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED, this.callsClearedHandler);\n }\n\n /**\n * Handler registered for ALL_CALLS_CLEARED event emitted by callManager.\n *\n * If re-register attempt was deferred earlier due to active call(s), then it\n * will be attempted here on receiving a notification from callManager that all\n * calls are cleaned up.\n */\n private callsClearedHandler = async () => {\n // this is a temporary logic to get registration obj\n // it will change once we have proper lineId and multiple lines as well\n const {registration} = Object.values(this.lineDict)[0];\n\n if (!registration.isDeviceRegistered()) {\n await this.mutex.runExclusive(async () => {\n if (registration.isReconnectPending()) {\n log.log('All calls cleared, reconnecting', {\n file: CALLING_CLIENT_FILE,\n method: CALLS_CLEARED_HANDLER_UTIL,\n });\n await registration.reconnectOnFailure(CALLS_CLEARED_HANDLER_UTIL);\n }\n });\n }\n };\n\n /**\n * To get the current log Level.\n * @ignore\n */\n public getLoggingLevel(): LOGGER {\n return log.getLogLevel();\n }\n\n /**\n * To return the `sdkConnector` instance that was used during sdk initialisation.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n\n private registerSessionsListener() {\n this.sdkConnector.registerListener<CallSessionEvent>(\n MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE,\n async (event?: CallSessionEvent) => {\n if (event && event.data.userSessions.userSessions) {\n const sessionArr = event?.data.userSessions.userSessions;\n\n if (sessionArr.length === 1) {\n if (sessionArr[0].sessionType !== SessionType.WEBEX_CALLING) {\n return;\n }\n }\n\n for (let i = 0; i < sessionArr.length; i += 1) {\n if (sessionArr[i].sessionType !== SessionType.WEBEX_CALLING) {\n sessionArr.splice(i, 1);\n }\n }\n this.emit(CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO, event as CallSessionEvent);\n }\n }\n );\n }\n\n /**\n * Creates line object inside calling client per user\n * NOTE: currently multiple lines are not supported\n */\n private async createLine(): Promise<void> {\n const line = new Line(\n this.webex.internal.device.userId,\n this.webex.internal.device.url,\n this.mutex,\n this.primaryMobiusUris,\n this.backupMobiusUris,\n this.getLoggingLevel(),\n this.sdkConfig?.serviceData\n );\n\n this.lineDict[line.lineId] = line;\n }\n\n /**\n * Retrieves details of all the Line objects belonging to a User\n * NOTE: currently multiple lines are not supported\n */\n public getLines(): Record<string, ILine> {\n return this.lineDict;\n }\n\n /**\n * Retrieves call objects for all the active calls present in the client\n */\n public getActiveCalls(): Record<string, ICall[]> {\n const activeCalls = {};\n const calls = this.callManager.getActiveCalls();\n Object.keys(calls).forEach((correlationId) => {\n const call = calls[correlationId];\n if (!activeCalls[call.lineId]) {\n activeCalls[call.lineId] = [];\n }\n activeCalls[call.lineId].push(call);\n });\n\n return activeCalls;\n }\n\n /**\n * Retrieves call object for the connected call in the client\n */\n public getConnectedCall(): ICall | undefined {\n let connectCall;\n const calls = this.callManager.getActiveCalls();\n\n Object.keys(calls).forEach((correlationId) => {\n if (calls[correlationId].isConnected() && !calls[correlationId].isHeld()) {\n connectCall = calls[correlationId];\n }\n });\n\n return connectCall;\n }\n}\n\n/**\n * Create the `CallingClient` instance using the `webex` object and callingSdk `config`\n * @param webex - A webex instance.\n * @param config - Config to start the CallingClient with.\n */\nexport const createClient = async (\n webex: WebexSDK,\n config?: CallingClientConfig\n): Promise<ICallingClient> => {\n const callingClientInstance = new CallingClient(webex, config);\n await callingClientInstance.init();\n\n return callingClientInstance;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAOA,IAAAQ,OAAA,GAAAR,OAAA;AAYA,IAAAS,OAAA,GAAAJ,sBAAA,CAAAL,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAiBA,IAAAY,KAAA,GAAAP,sBAAA,CAAAL,OAAA;AAEA,IAAAa,OAAA,GAAAb,OAAA;AACA,IAAAc,QAAA,GAAAd,OAAA;AAA4C,SAAAe,yBAAAC,CAAA,6BAAAC,QAAA,mBAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAjB,wBAAAiB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAc,CAAA,SAAAK,CAAA,GAAAR,CAAA,GAAAE,gCAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAK,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,sBAAA,CAAAH,CAAA,EAAAK,CAAA,EAAAK,CAAA,IAAAV,CAAA,CAAAK,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAL,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA,SAAAY,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,OAAA,oBAAAH,CAAA,CAAAI,gBAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,cAAA,CAAAL,CAAA,MAAAE,EAAA,GAAAI,2BAAA,CAAAN,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAO,MAAA,qBAAAL,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAL,CAAA,UAAAW,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAArB,CAAA,WAAAA,EAAA,QAAAU,CAAA,IAAAG,CAAA,CAAAO,MAAA,WAAAG,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAX,CAAA,CAAAH,CAAA,UAAAnB,CAAA,WAAAA,EAAAkC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAR,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAAN,IAAA,CAAAI,CAAA,MAAAb,CAAA,WAAAA,EAAA,QAAA+B,IAAA,GAAAhB,EAAA,CAAAiB,IAAA,IAAAJ,gBAAA,GAAAG,IAAA,CAAAR,IAAA,SAAAQ,IAAA,KAAAxC,CAAA,WAAAA,EAAA0C,GAAA,IAAAJ,MAAA,SAAAC,GAAA,GAAAG,GAAA,KAAAP,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAb,EAAA,CAAAmB,MAAA,UAAAnB,EAAA,CAAAmB,MAAA,oBAAAL,MAAA,QAAAC,GAAA;AAAA,SAAAX,4BAAAN,CAAA,EAAAsB,MAAA,SAAAtB,CAAA,qBAAAA,CAAA,sBAAAuB,iBAAA,CAAAvB,CAAA,EAAAsB,MAAA,OAAAnC,CAAA,GAAAM,MAAA,CAAAC,SAAA,CAAA8B,QAAA,CAAA5B,IAAA,CAAAI,CAAA,EAAAyB,KAAA,aAAAtC,CAAA,iBAAAa,CAAA,CAAA0B,WAAA,EAAAvC,CAAA,GAAAa,CAAA,CAAA0B,WAAA,CAAAC,IAAA,MAAAxC,CAAA,cAAAA,CAAA,mBAAAyC,WAAA,CAAA5B,CAAA,OAAAb,CAAA,+DAAA0C,IAAA,CAAA1C,CAAA,UAAAoC,iBAAA,CAAAvB,CAAA,EAAAsB,MAAA;AAAA,SAAAC,kBAAAO,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAvB,MAAA,EAAAwB,GAAA,GAAAD,GAAA,CAAAvB,MAAA,WAAAV,CAAA,MAAAmC,IAAA,OAAAC,KAAA,CAAAF,GAAA,GAAAlC,CAAA,GAAAkC,GAAA,EAAAlC,CAAA,IAAAmC,IAAA,CAAAnC,CAAA,IAAAiC,GAAA,CAAAjC,CAAA,UAAAmC,IAAA;AAAA,SAAAE,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAxD,OAAA,EAAAmD,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAAxD,OAAA,QAAA0C,WAAA,EAAAe,MAAA,GAAAE,kBAAA,CAAAJ,KAAA,EAAAK,SAAA,EAAAF,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAM,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAA9D,OAAA,QAAAyD,MAAA;AAAA,SAAAJ,0BAAA,eAAAU,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAxD,SAAA,CAAAyD,OAAA,CAAAvD,IAAA,CAAA+C,kBAAA,CAAAO,OAAA,8CAAAxE,CAAA,sBAnD5C,0CACA,iCACA;AAmDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAWa0E,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAAE,SAAA;EAAA,IAAAC,UAAA,CAAAvE,OAAA,EAAAoE,aAAA,EAAAE,SAAA;EAAA,IAAAE,MAAA,GAAAtB,YAAA,CAAAkB,aAAA;EAyBxB;AACF;AACA;EACE,SAAAA,cAAYK,KAAe,EAAEC,MAA4B,EAAE;IAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,qBAAA;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAhF,OAAA,QAAAoE,aAAA;IACzDW,KAAA,GAAAP,MAAA,CAAA5D,IAAA;IAAQ,IAAAqE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA;IAAA,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA,eANgC,CAAC,CAAC;IA0R5C;AACF;AACA;AACA;AACA;AACA;AACA;IANE,IAAAE,gBAAA,CAAAjF,OAAA,MAAAkF,uBAAA,CAAAlF,OAAA,EAAA+E,KAAA,2CAAAI,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAO8B,SAAAC,SAAA;MAAA,IAAAC,YAAA;MAAA,OAAAH,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAvD,IAAA;UAAA;YAC5B;YACA;YACOoD,YAAY,GAAI,IAAAK,OAAA,CAAA5F,OAAA,EAAc+E,KAAA,CAAKc,QAAQ,CAAC,CAAC,CAAC,CAAC,CAA/CN,YAAY;YAAA,IAEdA,YAAY,CAACO,kBAAkB,CAAC,CAAC;cAAAJ,SAAA,CAAAvD,IAAA;cAAA;YAAA;YAAAuD,SAAA,CAAAvD,IAAA;YAAA,OAC9B4C,KAAA,CAAKgB,KAAK,CAACC,YAAY,mBAAAb,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAAC,SAAAY,QAAA;cAAA,OAAAb,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAU,SAAAC,QAAA;gBAAA,kBAAAA,QAAA,CAAAR,IAAA,GAAAQ,QAAA,CAAAhE,IAAA;kBAAA;oBAAA,KACxBoD,YAAY,CAACa,kBAAkB,CAAC,CAAC;sBAAAD,QAAA,CAAAhE,IAAA;sBAAA;oBAAA;oBACnCkE,eAAG,CAACA,GAAG,CAAC,iCAAiC,EAAE;sBACzCC,IAAI,EAAEC,8BAAmB;sBACzBC,MAAM,EAAEC;oBACV,CAAC,CAAC;oBAACN,QAAA,CAAAhE,IAAA;oBAAA,OACGoD,YAAY,CAACmB,kBAAkB,CAACD,qCAA0B,CAAC;kBAAA;kBAAA;oBAAA,OAAAN,QAAA,CAAAQ,IAAA;gBAAA;cAAA,GAAAV,OAAA;YAAA,CAEpE,GAAC;UAAA;UAAA;YAAA,OAAAP,SAAA,CAAAiB,IAAA;QAAA;MAAA,GAAArB,QAAA;IAAA,CAEL;IA1SCP,KAAA,CAAK6B,YAAY,GAAGC,qBAAY;IAEhC,IAAI,CAAC9B,KAAA,CAAK6B,YAAY,CAACE,QAAQ,CAAC,CAAC,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAACtC,KAAK,CAAC;IAC9B;IACAM,KAAA,CAAKgB,KAAK,GAAG,IAAIiB,iBAAK,CAAC,CAAC;IACxBjC,KAAA,CAAKN,KAAK,GAAGM,KAAA,CAAK6B,YAAY,CAACE,QAAQ,CAAC,CAAC;IAEzC/B,KAAA,CAAKkC,SAAS,GAAGvC,MAAM;IACvB,IAAMwC,WAAW,GAAG,CAAAvC,eAAA,GAAAI,KAAA,CAAKkC,SAAS,cAAAtC,eAAA,gBAAAC,qBAAA,GAAdD,eAAA,CAAgBuC,WAAW,cAAAtC,qBAAA,eAA3BA,qBAAA,CAA6BuC,SAAS,GACtDpC,KAAA,CAAKkC,SAAS,CAACC,WAAW,GAC1B;MAACC,SAAS,EAAEC,wBAAgB,CAACC,OAAO;MAAEC,MAAM,EAAE;IAAE,CAAC;IAErD,IAAMC,QAAQ,GAAG,CAAA1C,gBAAA,GAAAE,KAAA,CAAKkC,SAAS,cAAApC,gBAAA,gBAAAC,qBAAA,GAAdD,gBAAA,CAAgB2C,MAAM,cAAA1C,qBAAA,eAAtBA,qBAAA,CAAwB2C,KAAK,GAAG1C,KAAA,CAAKkC,SAAS,CAACO,MAAM,CAACC,KAAK,GAAGC,aAAM,CAACC,KAAK;IAC3F,IAAAC,0BAAmB,EAACV,WAAW,CAAC;IAEhCnC,KAAA,CAAK8C,WAAW,GAAG,IAAAC,2BAAc,EAAC/C,KAAA,CAAKN,KAAK,EAAEyC,WAAW,CAACC,SAAS,CAAC;IACpEpC,KAAA,CAAKgD,aAAa,GAAG,IAAAC,yBAAgB,EAACjD,KAAA,CAAKN,KAAK,EAAEyC,WAAW,CAACC,SAAS,CAAC;IAExEpC,KAAA,CAAKkD,WAAW,GAAGzJ,KAAK;IAExBuG,KAAA,CAAKmD,iBAAiB,GAAG,EAAE;IAC3BnD,KAAA,CAAKoD,gBAAgB,GAAG,EAAE;IAC1BpD,KAAA,CAAKqD,cAAc,GACjBrD,KAAA,CAAKN,KAAK,CAAC4D,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACC,yBAAc,CAAC,IACzDzD,KAAA,CAAKN,KAAK,CAAC4D,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACE,yBAAc,CAAC,IACzD1D,KAAA,CAAKN,KAAK,CAAC4D,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACG,wBAAa,CAAC,IACxD3D,KAAA,CAAKN,KAAK,CAAC4D,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACI,wBAAa,CAAC;IAC1D5D,KAAA,CAAK6D,UAAU,GAAG,EAAE;IAEpB7D,KAAA,CAAK8D,wBAAwB,CAAC,CAAC;IAE/BxC,eAAG,CAACyC,SAAS,CAACvB,QAAQ,EAAEhB,8BAAmB,CAAC;IAE5CxB,KAAA,CAAKgE,4BAA4B,CAAC,CAAC;IAAC,OAAAhE,KAAA;EACtC;;EAEA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAXE,IAAAiE,aAAA,CAAAhJ,OAAA,EAAAoE,aAAA;IAAA6E,GAAA;IAAAtH,KAAA;MAAA,IAAAuH,KAAA,OAAA/D,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAYA,SAAA8D,SAAA;QAAA,OAAA/D,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAA4D,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1D,IAAA,GAAA0D,SAAA,CAAAlH,IAAA;YAAA;cAAAkH,SAAA,CAAAlH,IAAA;cAAA,OACQ,IAAI,CAACmH,gBAAgB,CAAC,CAAC;YAAA;cAAAD,SAAA,CAAAlH,IAAA;cAAA,OACvB,IAAI,CAACoH,UAAU,CAAC,CAAC;YAAA;cAEvB;cACA,IAAI,CAACC,mBAAmB,CAAC,CAAC;YAAC;YAAA;cAAA,OAAAH,SAAA,CAAA1C,IAAA;UAAA;QAAA,GAAAwC,QAAA;MAAA,CAC5B;MAAA,SAAAM,KAAA;QAAA,OAAAP,KAAA,CAAArF,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA6F,IAAA;IAAA;IAED;AACF;AACA;EAFE;IAAAR,GAAA;IAAAtH,KAAA;MAAA,IAAA+H,oBAAA,OAAAvE,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAGA,SAAAsE,SAAA;QAAA,IAAAC,MAAA;QAAA,IAAAC,KAAA,EAAAC,IAAA;QAAA,OAAA1E,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAuE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAArE,IAAA,GAAAqE,SAAA,CAAA7H,IAAA;YAAA;cACM0H,KAAK,GAAG,KAAK,EAEjB;cACA;cACMC,IAAI,GAAG,IAAAlE,OAAA,CAAA5F,OAAA,EAAc,IAAI,CAAC6F,QAAQ,CAAC,CAAC,CAAC,CAAC;cAE5CoE,WAAW,mBAAA9E,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAAC,SAAA6E,SAAA;gBAAA,OAAA9E,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAA2E,UAAAC,SAAA;kBAAA,kBAAAA,SAAA,CAAAzE,IAAA,GAAAyE,SAAA,CAAAjI,IAAA;oBAAA;sBACV,IACE,CAACyH,MAAI,CAACnF,KAAK,CAAC4D,QAAQ,CAACgC,OAAO,CAACC,SAAS,IACtC,CAACT,KAAK,IACN,CAAC,IAAAU,KAAA,CAAAvK,OAAA,EAAY4J,MAAI,CAAC/B,WAAW,CAAC2C,cAAc,CAAC,CAAC,CAAC,CAACjJ,MAAM,EACtD;wBACA8E,eAAG,CAACoE,IAAI,iEAAiE;0BACvEnE,IAAI,EAAEC,8BAAmB;0BACzBC,MAAM,EAAEoD,MAAI,CAACJ,mBAAmB,CAAC7G;wBACnC,CAAC,CAAC;wBAEFmH,IAAI,CAACvE,YAAY,CAACmF,mBAAmB,CAAC,CAAC;wBAEvCb,KAAK,GAAG,IAAI;sBACd;sBAAC,MAEGA,KAAK,IAAID,MAAI,CAACnF,KAAK,CAAC4D,QAAQ,CAACgC,OAAO,CAACC,SAAS;wBAAAF,SAAA,CAAAjI,IAAA;wBAAA;sBAAA;sBAAA,MAC5C2H,IAAI,CAACa,SAAS,CAAC,CAAC,KAAKC,0BAAkB,CAACC,IAAI;wBAAAT,SAAA,CAAAjI,IAAA;wBAAA;sBAAA;sBAAAiI,SAAA,CAAAjI,IAAA;sBAAA,OAChC2H,IAAI,CAACvE,YAAY,CAACuF,2BAA2B,CAACjB,KAAK,CAAC;oBAAA;sBAAlEA,KAAK,GAAAO,SAAA,CAAAW,IAAA;sBAAAX,SAAA,CAAAjI,IAAA;sBAAA;oBAAA;sBAEL0H,KAAK,GAAG,KAAK;oBAAC;oBAAA;sBAAA,OAAAO,SAAA,CAAAzD,IAAA;kBAAA;gBAAA,GAAAuD,QAAA;cAAA,CAGnB,IAAEc,+BAAoB,CAAC;YAAC;YAAA;cAAA,OAAAhB,SAAA,CAAArD,IAAA;UAAA;QAAA,GAAAgD,QAAA;MAAA,CAC1B;MAAA,SAAAH,oBAAA;QAAA,OAAAE,oBAAA,CAAA7F,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA4F,mBAAA;IAAA;IAED;AACF;AACA;IAFE;EAAA;IAAAP,GAAA;IAAAtH,KAAA;MAAA,IAAAsJ,oBAAA,OAAA9F,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAGA,SAAA6F,SAAA;QAAA,IAAAC,MAAA;QAAA,IAAAC,UAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,QAAA,EAAAC,gBAAA;QAAA,OAAAvG,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAoG,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlG,IAAA,GAAAkG,SAAA,CAAA1J,IAAA;YAAA;cACQiJ,UAAU,GAAG,CAAC,CAAC;cAAAC,SAAA,GAAAtK,0BAAA,CAEA,IAAI,CAACqH,cAAc;cAAAyD,SAAA,CAAAlG,IAAA;cAAA0F,SAAA,CAAA5J,CAAA;YAAA;cAAA,KAAA6J,KAAA,GAAAD,SAAA,CAAAlL,CAAA,IAAAuB,IAAA;gBAAAmK,SAAA,CAAA1J,IAAA;gBAAA;cAAA;cAA7BoJ,MAAM,GAAAD,KAAA,CAAA3J,KAAA;cACf,IAAI,CAACiH,UAAU,cAAAkD,MAAA,CAAcP,MAAM,CAACQ,IAAI,EAAAD,MAAA,CAAGE,iBAAM,CAAE;cAACH,SAAA,CAAAlG,IAAA;cAAAkG,SAAA,CAAA1J,IAAA;cAAA,OAIV,IAAI,CAACsC,KAAK,CAACwH,OAAO,CAAC;gBACzDC,GAAG,KAAAJ,MAAA,CAAK,IAAI,CAAClD,UAAU,EAAAkD,MAAA,CAAGK,uBAAY,EAAAL,MAAA,CAAGM,sBAAW,CAAE;gBACtD5F,MAAM,EAAE6F,oBAAY,CAACC,GAAG;gBACxBC,OAAO,MAAAtH,gBAAA,CAAAjF,OAAA,MAAAiF,gBAAA,CAAAjF,OAAA,MACJwM,2BAAgB,EAAG,IAAI,CAAC/H,KAAK,CAAC4D,QAAQ,CAACoE,MAAM,CAACC,GAAG,GACjDC,2BAAgB,EAAGC,6BAAkB,CACvC;gBACDC,OAAO,EAAEC,wBAAgB,CAACC;cAC5B,CAAC,CAAC;YAAA;cARIvB,IAAI,GAAAK,SAAA,CAAAd,IAAA;cAUJU,IAAI,GAAID,IAAI,CAACwB,IAAI,CAAYC,IAAI,EACvC;cAAApB,SAAA,CAAA1J,IAAA;cAAA,OAC4C,IAAI,CAACsC,KAAK,CAACwH,OAAO,CAAC;gBAC7DC,GAAG,KAAAJ,MAAA,CAAKoB,wBAAa,OAAApB,MAAA,CAAIL,IAAI,CAAE;gBAC/BjF,MAAM,EAAE6F,oBAAY,CAACC,GAAG;gBACxBa,aAAa,EAAE,KAAK;gBACpBZ,OAAO,MAAAtH,gBAAA,CAAAjF,OAAA,MACJ2M,2BAAgB,EAAG,IAAI;cAE5B,CAAC,CAAC;YAAA;cAPIjB,QAAQ,GAAAG,SAAA,CAAAd,IAAA;cASRY,gBAAgB,GAAGD,QAAQ,CAACsB,IAAI;cAEtC5B,UAAU,CAACgC,YAAY,GAAGzB,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEyB,YAAY,GACpDzB,gBAAgB,CAACyB,YAAY,GAC7B,EAAE;cAENhC,UAAU,CAACiC,WAAW,GAAG1B,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAE0B,WAAW,GAAG1B,gBAAgB,CAAC0B,WAAW,GAAG,EAAE;cAAC,OAAAxB,SAAA,CAAAyB,MAAA;YAAA;cAAAzB,SAAA,CAAAlG,IAAA;cAAAkG,SAAA,CAAA0B,EAAA,GAAA1B,SAAA;cAG3F,IAAA2B,gCAAyB,EAAA3B,SAAA,CAAA0B,EAAA,EAEvB,UAACE,WAAW,EAAK;gBACftC,MAAI,CAACpD,aAAa,CAAC2F,wBAAwB,CACzCC,oBAAY,CAACC,kBAAkB,EAC/BC,kBAAU,CAACC,QAAQ,EACnBC,mBAAW,CAACC,UAAU,EACtBP,WACF,CAAC;gBACDtC,MAAI,CAAC8C,IAAI,CAACC,iCAAyB,CAACvG,KAAK,EAAE8F,WAAW,CAAC;cACzD,CAAC,EACD;gBAACjH,MAAM,EAAE2H,kCAAuB;gBAAE7H,IAAI,EAAEC;cAAmB,CAC7D,CAAC;cACD6E,UAAU,CAACgC,YAAY,GAAG,EAAE;cAC5BhC,UAAU,CAACiC,WAAW,GAAG,EAAE;YAAC;cAAAxB,SAAA,CAAA1J,IAAA;cAAA;YAAA;cAAA0J,SAAA,CAAA1J,IAAA;cAAA;YAAA;cAAA0J,SAAA,CAAAlG,IAAA;cAAAkG,SAAA,CAAAuC,EAAA,GAAAvC,SAAA;cAAAR,SAAA,CAAA3L,CAAA,CAAAmM,SAAA,CAAAuC,EAAA;YAAA;cAAAvC,SAAA,CAAAlG,IAAA;cAAA0F,SAAA,CAAAxJ,CAAA;cAAA,OAAAgK,SAAA,CAAAwC,MAAA;YAAA;cAAA,OAAAxC,SAAA,CAAAyB,MAAA,WAIzBlC,UAAU;YAAA;YAAA;cAAA,OAAAS,SAAA,CAAAlF,IAAA;UAAA;QAAA,GAAAuE,QAAA;MAAA,CAClB;MAAA,SAAAoD,oBAAA;QAAA,OAAArD,oBAAA,CAAApH,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA0K,mBAAA;IAAA;IAED;AACF;AACA;IAFE;EAAA;IAAArF,GAAA;IAAAtH,KAAA;MAAA,IAAA4M,iBAAA,OAAApJ,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAGA,SAAAmJ,SAAA;QAAA,IAAAC,gBAAA;UAAAC,qBAAA;UAAAC,gBAAA;UAAAC,qBAAA;UAAAC,MAAA;QAAA,IAAAC,UAAA,EAAA1B,YAAA,EAAAC,WAAA,EAAA0B,gBAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAA9D,UAAA,EAAAI,IAAA,EAAA2D,aAAA,EAAAC,UAAA;QAAA,OAAAhK,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAA6J,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA3J,IAAA,GAAA2J,SAAA,CAAAnN,IAAA;YAAA;cACE;AACJ;AACA;AACA;AACA;AACA;AACA;cAGQ2M,UAAU,GAAG,KAAK;cAAA,MAKlB,CAAAL,gBAAA,OAAI,CAACxH,SAAS,cAAAwH,gBAAA,gBAAAC,qBAAA,GAAdD,gBAAA,CAAgBc,SAAS,cAAAb,qBAAA,eAAzBA,qBAAA,CAA2Bc,OAAO,KAAAb,gBAAA,GAAI,IAAI,CAAC1H,SAAS,cAAA0H,gBAAA,gBAAAC,qBAAA,GAAdD,gBAAA,CAAgBY,SAAS,cAAAX,qBAAA,eAAzBA,qBAAA,CAA2Ba,MAAM;gBAAAH,SAAA,CAAAnN,IAAA;gBAAA;cAAA;cACzEkE,eAAG,CAACqJ,IAAI,CAAC,iDAAiD,EAAE;gBAC1DpJ,IAAI,EAAEC,8BAAmB;gBACzBC,MAAM,EAAE2H;cACV,CAAC,CAAC;cACFf,YAAY,IAAA2B,gBAAA,GAAG,IAAI,CAAC9H,SAAS,cAAA8H,gBAAA,wBAAAC,qBAAA,GAAdD,gBAAA,CAAgBQ,SAAS,cAAAP,qBAAA,uBAAzBA,qBAAA,CAA2BS,MAAM;cAChDpC,WAAW,IAAA4B,gBAAA,GAAG,IAAI,CAAChI,SAAS,cAAAgI,gBAAA,wBAAAC,qBAAA,GAAdD,gBAAA,CAAgBM,SAAS,cAAAL,qBAAA,uBAAzBA,qBAAA,CAA2BM,OAAO;cAChD,IAAI,CAAC5G,UAAU,GAAG,IAAI,CAACnE,KAAK,CAAC4D,QAAQ,CAACC,QAAQ,CAACqH,YAAY,CAACpE,MAAM;cAAC+D,SAAA,CAAAnN,IAAA;cAAA;YAAA;cAEnEkE,eAAG,CAACqJ,IAAI,CAAC,sDAAsD,EAAE;gBAC/DpJ,IAAI,EAAEC,8BAAmB;gBACzBC,MAAM,EAAE2H;cACV,CAAC,CAAC;cAACmB,SAAA,CAAAnN,IAAA;cAAA,OAEsB,IAAI,CAACmM,mBAAmB,CAAC,CAAC;YAAA;cAA7ClD,UAAU,GAAAkE,SAAA,CAAAvE,IAAA;cAEhBqC,YAAY,GAAGhC,UAAU,CAACgC,YAAY;cACtCC,WAAW,GAAGjC,UAAU,CAACiC,WAAW;YAAC;cAAA,MAGnCD,YAAY,IAAIC,WAAW;gBAAAiC,SAAA,CAAAnN,IAAA;gBAAA;cAAA;cAC7BkE,eAAG,CAACA,GAAG,kBAAAyF,MAAA,CACYsB,YAAY,oBAAAtB,MAAA,CAAiBuB,WAAW,qCACzD,EACF,CAAC;cAACiC,SAAA,CAAA3J,IAAA;cAAA2J,SAAA,CAAAnN,IAAA;cAAA,OAIwC,IAAI,CAACsC,KAAK,CAACwH,OAAO,CAAC;gBACzDC,GAAG,KAAAJ,MAAA,CAAK,IAAI,CAAClD,UAAU,EAAAkD,MAAA,CAAGK,uBAAY,kBAAAL,MAAA,CAAesB,YAAY,mBAAAtB,MAAA,CAAgBuB,WAAW,CAAE;gBAC9F7G,MAAM,EAAE6F,oBAAY,CAACC,GAAG;gBACxBC,OAAO,MAAAtH,gBAAA,CAAAjF,OAAA,MAAAiF,gBAAA,CAAAjF,OAAA,MACJwM,2BAAgB,EAAG,IAAI,CAAC/H,KAAK,CAAC4D,QAAQ,CAACoE,MAAM,CAACC,GAAG,GACjDC,2BAAgB,EAAGC,6BAAkB,CACvC;gBACDC,OAAO,EAAEC,wBAAgB,CAACC;cAC5B,CAAC,CAAC;YAAA;cARIvB,IAAI,GAAA8D,SAAA,CAAAvE,IAAA;cAUV1E,eAAG,CAACA,GAAG,CAAC,oCAAoC,EAAE,EAAgB,CAAC;cACzD8I,aAAa,GAAG3D,IAAI,CAACwB,IAAI;cAE/B;cACMoC,UAAU,GAAG,IAAAQ,uBAAgB,EAACT,aAAa,EAAE,IAAI,CAACvG,UAAU,CAAC;cACnE,IAAI,CAACV,iBAAiB,GAAGkH,UAAU,CAACS,OAAO;cAC3C,IAAI,CAAC1H,gBAAgB,GAAGiH,UAAU,CAACU,MAAM;cACzCzJ,eAAG,CAACqJ,IAAI,2CAAA5D,MAAA,CACoCsD,UAAU,CAACS,OAAO,mBAAA/D,MAAA,CAAgBsD,UAAU,CAACU,MAAM,GAC7F,EACF,CAAC;cAACR,SAAA,CAAAnN,IAAA;cAAA;YAAA;cAAAmN,SAAA,CAAA3J,IAAA;cAAA2J,SAAA,CAAA/B,EAAA,GAAA+B,SAAA;cAEF,IAAA9B,gCAAyB,EAAA8B,SAAA,CAAA/B,EAAA,EAEvB,UAACE,WAAW,EAAK;gBACfoB,MAAI,CAAC9G,aAAa,CAAC2F,wBAAwB,CACzCC,oBAAY,CAACC,kBAAkB,EAC/BC,kBAAU,CAACC,QAAQ,EACnBC,mBAAW,CAACC,UAAU,EACtBP,WACF,CAAC;gBACDoB,MAAI,CAACZ,IAAI,CAACC,iCAAyB,CAACvG,KAAK,EAAE8F,WAAW,CAAC;cACzD,CAAC,EACD;gBAACjH,MAAM,EAAE2H,kCAAuB;gBAAE7H,IAAI,EAAEC;cAAmB,CAC7D,CAAC;cAEDuI,UAAU,GAAG,IAAI;YAAC;cAAAQ,SAAA,CAAAnN,IAAA;cAAA;YAAA;cAGpB;cACA2M,UAAU,GAAG,IAAI;YAAC;cAGpB;AACJ;AACA;;cAEI,IAAIA,UAAU,EAAE;gBACdzI,eAAG,CAACoE,IAAI,+GAEN,EACF,CAAC;gBACD,IAAI,CAAC7B,UAAU,cAAAkD,MAAA,CAAc,IAAI,CAAC1D,cAAc,CAAC,CAAC,CAAC,CAAC2D,IAAI,EAAAD,MAAA,CAAGE,iBAAM,CAAE;gBACnE,IAAI,CAAC9D,iBAAiB,GAAG,IAAA4D,MAAA,CAAI,IAAI,CAAClD,UAAU,EAAAkD,MAAA,CAAGK,uBAAY,EAAG;cAChE;YAAC;YAAA;cAAA,OAAAmD,SAAA,CAAA3I,IAAA;UAAA;QAAA,GAAA6H,QAAA;MAAA,CACF;MAAA,SAAAlF,iBAAA;QAAA,OAAAiF,iBAAA,CAAA1K,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA0F,gBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;IAJE;EAAA;IAAAL,GAAA;IAAAtH,KAAA,EAKA,SAAAoH,6BAAA,EAAuC;MACrC,IAAMgH,UAAU,GAAG;QACjBzJ,IAAI,EAAEC,8BAAmB;QACzBC,MAAM,EAAE,IAAI,CAACuC,4BAA4B,CAACpG;MAC5C,CAAC;MAED0D,eAAG,CAACA,GAAG,CAAC,kDAAkD,EAAE0J,UAAU,CAAC;MACvE,IAAI,CAAClI,WAAW,CAACmI,EAAE,CAAC9B,iCAAyB,CAAC+B,iBAAiB,EAAE,IAAI,CAACC,mBAAmB,CAAC;IAC5F;EAAC;IAAAjH,GAAA;IAAAtH,KAAA;IA2BD;AACF;AACA;AACA;IACE,SAAAwO,gBAAA,EAAiC;MAC/B,OAAO9J,eAAG,CAAC+J,WAAW,CAAC,CAAC;IAC1B;;IAEA;AACF;AACA;AACA;EAHE;IAAAnH,GAAA;IAAAtH,KAAA,EAIA,SAAA0O,gBAAA,EAAwC;MACtC,OAAO,IAAI,CAACzJ,YAAY;IAC1B;EAAC;IAAAqC,GAAA;IAAAtH,KAAA,EAED,SAAAkH,yBAAA,EAAmC;MAAA,IAAAyH,MAAA;MACjC,IAAI,CAAC1J,YAAY,CAAC2J,gBAAgB,CAChCC,yBAAiB,CAACC,4BAA4B;QAAA,IAAAC,KAAA,OAAAvL,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAC9C,SAAAsL,SAAOC,KAAwB;UAAA,IAAAC,UAAA,EAAAhQ,CAAA;UAAA,OAAAuE,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAsL,UAAAC,SAAA;YAAA,kBAAAA,SAAA,CAAApL,IAAA,GAAAoL,SAAA,CAAA5O,IAAA;cAAA;gBAAA,MACzByO,KAAK,IAAIA,KAAK,CAACI,IAAI,CAACC,YAAY,CAACA,YAAY;kBAAAF,SAAA,CAAA5O,IAAA;kBAAA;gBAAA;gBACzC0O,UAAU,GAAGD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEI,IAAI,CAACC,YAAY,CAACA,YAAY;gBAAA,MAEpDJ,UAAU,CAACtP,MAAM,KAAK,CAAC;kBAAAwP,SAAA,CAAA5O,IAAA;kBAAA;gBAAA;gBAAA,MACrB0O,UAAU,CAAC,CAAC,CAAC,CAACK,WAAW,KAAKC,mBAAW,CAACC,aAAa;kBAAAL,SAAA,CAAA5O,IAAA;kBAAA;gBAAA;gBAAA,OAAA4O,SAAA,CAAAzD,MAAA;cAAA;gBAK7D,KAASzM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgQ,UAAU,CAACtP,MAAM,EAAEV,CAAC,IAAI,CAAC,EAAE;kBAC7C,IAAIgQ,UAAU,CAAChQ,CAAC,CAAC,CAACqQ,WAAW,KAAKC,mBAAW,CAACC,aAAa,EAAE;oBAC3DP,UAAU,CAACQ,MAAM,CAACxQ,CAAC,EAAE,CAAC,CAAC;kBACzB;gBACF;gBACAyP,MAAI,CAACrC,IAAI,CAACC,iCAAyB,CAACoD,iBAAiB,EAAEV,KAAyB,CAAC;cAAC;cAAA;gBAAA,OAAAG,SAAA,CAAApK,IAAA;YAAA;UAAA,GAAAgK,QAAA;QAAA,CAErF;QAAA,iBAAAY,EAAA;UAAA,OAAAb,KAAA,CAAA7M,KAAA,OAAAD,SAAA;QAAA;MAAA,GACH,CAAC;IACH;;IAEA;AACF;AACA;AACA;EAHE;IAAAqF,GAAA;IAAAtH,KAAA;MAAA,IAAA6P,WAAA,OAAArM,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAIA,SAAAoM,SAAA;QAAA,IAAAC,gBAAA;QAAA,IAAA5H,IAAA;QAAA,OAAA1E,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAmM,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAjM,IAAA,GAAAiM,SAAA,CAAAzP,IAAA;YAAA;cACQ2H,IAAI,GAAG,IAAI+H,aAAI,CACnB,IAAI,CAACpN,KAAK,CAAC4D,QAAQ,CAACoE,MAAM,CAACqF,MAAM,EACjC,IAAI,CAACrN,KAAK,CAAC4D,QAAQ,CAACoE,MAAM,CAACC,GAAG,EAC9B,IAAI,CAAC3G,KAAK,EACV,IAAI,CAACmC,iBAAiB,EACtB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACgI,eAAe,CAAC,CAAC,GAAAuB,gBAAA,GACtB,IAAI,CAACzK,SAAS,cAAAyK,gBAAA,uBAAdA,gBAAA,CAAgBxK,WAClB,CAAC;cAED,IAAI,CAACrB,QAAQ,CAACiE,IAAI,CAACiI,MAAM,CAAC,GAAGjI,IAAI;YAAC;YAAA;cAAA,OAAA8H,SAAA,CAAAjL,IAAA;UAAA;QAAA,GAAA8K,QAAA;MAAA,CACnC;MAAA,SAAAlI,WAAA;QAAA,OAAAiI,WAAA,CAAA3N,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA2F,UAAA;IAAA;IAED;AACF;AACA;AACA;IAHE;EAAA;IAAAN,GAAA;IAAAtH,KAAA,EAIA,SAAAqQ,SAAA,EAAyC;MACvC,OAAO,IAAI,CAACnM,QAAQ;IACtB;;IAEA;AACF;AACA;EAFE;IAAAoD,GAAA;IAAAtH,KAAA,EAGA,SAAA6I,eAAA,EAAiD;MAC/C,IAAMyH,WAAW,GAAG,CAAC,CAAC;MACtB,IAAMC,KAAK,GAAG,IAAI,CAACrK,WAAW,CAAC2C,cAAc,CAAC,CAAC;MAC/C,IAAAD,KAAA,CAAAvK,OAAA,EAAYkS,KAAK,CAAC,CAACC,OAAO,CAAC,UAACC,aAAa,EAAK;QAC5C,IAAMxR,IAAI,GAAGsR,KAAK,CAACE,aAAa,CAAC;QACjC,IAAI,CAACH,WAAW,CAACrR,IAAI,CAACmR,MAAM,CAAC,EAAE;UAC7BE,WAAW,CAACrR,IAAI,CAACmR,MAAM,CAAC,GAAG,EAAE;QAC/B;QACAE,WAAW,CAACrR,IAAI,CAACmR,MAAM,CAAC,CAACM,IAAI,CAACzR,IAAI,CAAC;MACrC,CAAC,CAAC;MAEF,OAAOqR,WAAW;IACpB;;IAEA;AACF;AACA;EAFE;IAAAhJ,GAAA;IAAAtH,KAAA,EAGA,SAAA2Q,iBAAA,EAA6C;MAC3C,IAAIC,WAAW;MACf,IAAML,KAAK,GAAG,IAAI,CAACrK,WAAW,CAAC2C,cAAc,CAAC,CAAC;MAE/C,IAAAD,KAAA,CAAAvK,OAAA,EAAYkS,KAAK,CAAC,CAACC,OAAO,CAAC,UAACC,aAAa,EAAK;QAC5C,IAAIF,KAAK,CAACE,aAAa,CAAC,CAACI,WAAW,CAAC,CAAC,IAAI,CAACN,KAAK,CAACE,aAAa,CAAC,CAACK,MAAM,CAAC,CAAC,EAAE;UACxEF,WAAW,GAAGL,KAAK,CAACE,aAAa,CAAC;QACpC;MACF,CAAC,CAAC;MAEF,OAAOG,WAAW;IACpB;EAAC;EAAA,OAAAnO,aAAA;AAAA,EA3agCsO,cAAQ;AA8a3C;AACA;AACA;AACA;AACA;AACO,IAAMC,YAAY,GAAAtO,OAAA,CAAAsO,YAAA;EAAA,IAAAC,KAAA,OAAAzN,kBAAA,CAAAnF,OAAA,gBAAAoF,YAAA,CAAApF,OAAA,CAAAqF,IAAA,CAAG,SAAAwN,UAC1BpO,KAAe,EACfC,MAA4B;IAAA,IAAAoO,qBAAA;IAAA,OAAA1N,YAAA,CAAApF,OAAA,CAAAwF,IAAA,UAAAuN,WAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAArN,IAAA,GAAAqN,UAAA,CAAA7Q,IAAA;QAAA;UAEtB2Q,qBAAqB,GAAG,IAAI1O,aAAa,CAACK,KAAK,EAAEC,MAAM,CAAC;UAAAsO,UAAA,CAAA7Q,IAAA;UAAA,OACxD2Q,qBAAqB,CAACrJ,IAAI,CAAC,CAAC;QAAA;UAAA,OAAAuJ,UAAA,CAAA1F,MAAA,WAE3BwF,qBAAqB;QAAA;QAAA;UAAA,OAAAE,UAAA,CAAArM,IAAA;MAAA;IAAA,GAAAkM,SAAA;EAAA,CAC7B;EAAA,gBARYF,YAAYA,CAAAM,GAAA,EAAAC,GAAA;IAAA,OAAAN,KAAA,CAAA/O,KAAA,OAAAD,SAAA;EAAA;AAAA,GAQxB"}