{"version":3,"sources":["webpack:///./src/components/device-setup/editing/PresetEdit.vue?952b","webpack:///./src/components/device-setup/tables/DeviceTable.vue?5684","webpack:///./src/components/device-setup/CameraPreview.vue?1aef","webpack:///./src/components/device-setup/editing/ChildDeviceEdit.vue?7b24","webpack:///./src/views/DeviceSetup.vue?0a75","webpack:///./src/components/device-setup/GetConfig.vue?18e8","webpack:///./src/components/device-setup/CameraPreview.vue?ddb6","webpack:///./src/components/device-setup/CameraPreview.vue?4ba5","webpack:///./src/components/device-setup/CameraPreview.vue?e979","webpack:///./src/components/device-setup/CameraPreview.vue","webpack:///./src/components/device-setup/tabs/ChildDeviceTabWrapper.vue?be42","webpack:///./src/components/device-setup/tables/ChildDeviceTable.vue?df1e","webpack:///./src/components/device-setup/tables/ChildDeviceTable.vue?ab32","webpack:///./src/components/device-setup/tables/ChildDeviceTable.vue?d99b","webpack:///./src/components/device-setup/tables/ChildDeviceTable.vue","webpack:///./src/components/device-setup/tabs/ChildDeviceTabWrapper.vue?27ff","webpack:///./src/components/device-setup/tabs/ChildDeviceTabWrapper.vue?cfe1","webpack:///./src/components/device-setup/tabs/ChildDeviceTabWrapper.vue","webpack:///./src/components/device-setup/editing/ChildDeviceEdit.vue?b809","webpack:///./src/components/device-setup/editing/AudioEdit.vue?211b","webpack:///./src/components/device-setup/editing/ChildDeviceEditMixin.ts","webpack:///./src/components/device-setup/editing/AudioEdit.vue?e479","webpack:///./src/components/device-setup/editing/AudioEdit.vue?f208","webpack:///./src/components/device-setup/editing/AudioEdit.vue","webpack:///./src/components/device-setup/editing/CameraEdit.vue?7fe7","webpack:///./src/components/device-setup/editing/PresetEdit.vue?cd56","webpack:///./src/components/device-setup/editing/PresetEdit.vue?4f7c","webpack:///./src/components/device-setup/editing/PresetEdit.vue?84c3","webpack:///./src/components/device-setup/editing/PresetEdit.vue","webpack:///./src/components/device-setup/editing/CameraEdit.vue?b60c","webpack:///./src/components/device-setup/editing/CameraEdit.vue?a8d5","webpack:///./src/components/device-setup/editing/CameraEdit.vue","webpack:///./src/components/device-setup/editing/RelayEdit.vue?fece","webpack:///./src/components/device-setup/editing/RelayEdit.vue?8c20","webpack:///./src/components/device-setup/editing/RelayEdit.vue?bf0a","webpack:///./src/components/device-setup/editing/RelayEdit.vue","webpack:///./src/components/device-setup/editing/ChildDeviceEdit.vue?bed1","webpack:///./src/components/device-setup/editing/ChildDeviceEdit.vue?9937","webpack:///./src/components/device-setup/editing/ChildDeviceEdit.vue","webpack:///./src/components/device-setup/confirmation-modals/DeleteChildDeviceModal.vue?a8af","webpack:///./src/components/device-setup/confirmation-modals/DeleteChildDeviceModal.vue?9c26","webpack:///./src/components/device-setup/confirmation-modals/DeleteChildDeviceModal.vue?602f","webpack:///./src/components/device-setup/confirmation-modals/DeleteChildDeviceModal.vue","webpack:///./src/components/device-setup/tables/DeviceTable.vue?f6f7","webpack:///./src/components/device-setup/confirmation-modals/DeleteDeviceModal.vue?ce90","webpack:///./src/components/device-setup/confirmation-modals/DeleteDeviceModal.vue?1769","webpack:///./src/components/device-setup/confirmation-modals/DeleteDeviceModal.vue?8d97","webpack:///./src/components/device-setup/confirmation-modals/DeleteDeviceModal.vue","webpack:///./src/components/device-setup/editing/DeviceEdit.vue?ac9b","webpack:///./src/components/device-setup/editing/DeviceEdit.vue?aaa4","webpack:///./src/components/device-setup/editing/DeviceEdit.vue?c288","webpack:///./src/components/device-setup/editing/DeviceEdit.vue","webpack:///./src/components/device-setup/GetConfig.vue?8894","webpack:///./src/components/device-setup/GetConfig.vue?520a","webpack:///./src/components/device-setup/GetConfig.vue","webpack:///./src/components/device-setup/tables/DeviceTable.vue?74e6","webpack:///./src/components/device-setup/tables/DeviceTable.vue?168e","webpack:///./src/components/device-setup/tables/DeviceTable.vue","webpack:///./src/views/DeviceSetup.vue?02ee","webpack:///./src/views/DeviceSetup.vue?61ea","webpack:///./src/views/DeviceSetup.vue","webpack:///./src/components/device-setup/tabs/ChildDeviceTabWrapper.vue?3e1c","webpack:///./src/components/device-setup/tables/ChildDeviceTable.vue?f31f","webpack:///./src/components/device-setup/GetConfig.vue?a8a1","webpack:///./src/views/DeviceSetup.vue?4c87"],"names":["GetConfigStatus","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","model","value","callback","$$v","tabIndex","expression","scopedSlots","_u","key","fn","_v","_s","deviceTypeCounts","devices","_e","proxy","_l","childDeviceTypeId","staticRenderFns","title","on","$event","handleModalHidden","handleTakeReferenceShotClick","ref","shouldDefaultToMechanicalPtz","device","deviceID","input1","input2","extraValue","SettingsStore","Devices","SessionStore","SMCameras","PrefsOfInterest","UseMechanicalPtzByDefault","groupID","prefTypeID","getPrefBoolValue","setCameraPreviewModalVisibility","created","Promise","deviceServerNotInList","getServer","serverID","mounted","getPrefsFromList","updateSession","resourceId","Proxy","cameraControl","startCamera","undefined","deviceServer","serversList","find","s","serverTypes","st","serverTypeID","serverType","usesExtraCameraIds","usesDeviceExtraValue","canvas","document","createElement","width","$refs","video","videoControl","videoWidth","height","videoHeight","getContext","drawImage","image","toDataURL","split","cameraReferenceShot","DeviceID","Image","setCameraDefaultReferenceShot","setCameraScreenshot","Action","Mutation","State","state","Getter","CameraPreview","allowsDevices","tabLoaded","handleTabLoaded","directives","name","rawName","getTitleText","modifiers","class","iconClass","deviceCount","toLocaleString","isForAllServers","visible","deviceTypeIdentifier","handleSearchInput","searchTermPersisted","handleAddDevice","handleScrollBarReachEnd","devicesToDisplay","fields","tableIsBusy","row","item","getPreviewImageSource","defaultReferenceShot","handleEditClick","handlePreviewCameraClick","handleDeleteClick","loadingMoreRecords","childDeviceTitles","Camera","Audio","Output","Door","outputSettingsMetaLabel","axiosCancelTokenSource","displayFilteredRecords","filteredRecordsPage","recordsPage","recordsPageSize","searchTerm","label","sortable","performSearch","deviceTypeId","includeReferenceShots","adjustRecordsPageSizeToMakeResponseQuicker","addAllServersSpecificFields","addChildSpecificFields","hasEditPermission","addEditPermissionsSpecificFields","notEnoughRecordsShownForCurrentServer","getDevices","Math","floor","length","tableIsForCameras","featuresList","splice","push","formatter","getAudioCapability","sortByFormatted","getDeviceTitle","getGroupTitle","permissions","isAdmin","canEditSiteSetup","canViewCameras","queryParams","page","pageSize","serverId","currentServer","queryIsForRelays","adjustQueryForRelays","cancellableQuery","params","cancelTokenSource","fetchDevicesForAllGroupsByType","selectOutputs","Relay","UserGroups","ug","audioSettings","transmitEnabled","receiveEnabled","server","serverTitle","filter","d","deviceTypeID","updateRetrievalStatus","newRetrievalStatus","recordsRetrievalStatus","allFilteredCamerasRetrieved","allFilteredAudiosRetrieved","allFilteredDoorsRetrieved","allFilteredOutputsRetrieved","updateRecordsRetrievalStatus","updateCurrentServerRecordsRetrievalStatus","setIsLoading","newDevice","setDevice","setCurrentDeviceTypeIdentifier","setEditChildDeviceModalVisibility","allCamerasRetrieved","allAudiosRetrieved","allDoorsRetrieved","allOutputsRetrieved","allRecordsInCurrentQueryAreRetrieved","toLowerCase","searchTermAsNumber","Number","searchNumericFields","isNaN","includes","g","relaySettings","relayType","setDeleteChildDeviceModalVisibility","previewBase64","required","type","default","Boolean","ChildDeviceTable","components","SureViewIcon","childDeviceIcons","some","numCameras","numAudioInputs","numRelays","cameras","audios","doors","outputs","text","ChildDeviceTabWrapper","editChildDeviceModalVisible","deviceIsInvalid","handleSaveClick","preventDefault","handleSubmit","slot","creatingFromMainTab","isEditing","handleServerSelected","loading","handleServerSearch","selectedServer","$set","childDeviceComponent","tag","handleValidationChanged","handleDeviceDetailsChanged","deviceFromStore","setSettingsMetasIfNeeded","currentDeviceTypeIdentifier","cameraSettings","handleValidationChange","$invalid","deep","ChildDeviceEditMixin","originalAudioSettings","AudioEdit","validations","hasSettingsMetaChanged","qualityOptions","handleTelemetryEnabledInput","telemetryEnabled","telemetrySpeedOptions","presets","presetConfigFields","presetFieldIsInEditMode","field","position","toString","presetPositionErrorClass","dataType","presetPositionConflictClass","editing","creating","editPreset","allowedToUpdate","updatePreset","cancelEditPreset","deletePreset","allowedToSave","createPreset","cancelCreatePreset","currentlyCreating","addBlankPreset","nilNumber","preset","editable","getCameraPresets","presetsFromDb","map","presetNumber","presetCheck","parseInt","presetToFind","presetValidityCSSClass","presetsBeingCreated","presetBeingCreated","remove","createNewCameraPreset","deviceId","groupId","updateCameraPreset","presetToRemove","deleteCameraPreset","removeWhere","newPreset","PresetEdit","originalCameraSettings","telemServerId","hasMatrixBuiltIn","CameraEdit","originalRelaySettings","RelayEdit","childDeviceComponents","childDeviceIsInvalid","debounceSearch","component","searchServers","ChildDeviceEdit","filterServersListForDeviceType","notEnoughServersDisplayed","serversWithEnabledDeviceTypesParams","adjustQueryForDeviceType","getServersWithEnabledDeviceTypes","setInitialSelectedServer","serversListFromStore","serverTypesForThisDeviceType","serverTypesFromStore","deviceType","invalid","$v","dataUnchanged","updateDevice","addDevice","camerasEnabled","audiosEnabled","relaysEnabled","usesExtraAudioIds","usesExtraRelayIds","minValue","maxValue","handleDeleteConfirmClick","handleCloseDeleteModalClick","deviceTypeTitle","deleteDevice","DeleteChildDeviceModal","serversToDisplay","serverModalOpened","editModalTitle","handleEditModalCloseClick","serverModelDetails","handleServerSaveClick","handleServerModelDetailsChanged","deviceEditComponentLoaded","isGetConfigDisabled","getConfigTooltipText","showGetConfig","allowsAlarms","alarmCount","selectedServerId","showDeleteModal","handleDeleteModalClose","closeModal","deleteServer","getDeviceTypeCounts","DeleteDeviceModal","group","id","areaSelectComponentLoaded","serverTypeIsAlarmPanel","extraValueLabel","extraValuePlaceholder","updateExtraValue","alarmGroupingOptions","handleAlarmGroupingSelected","alarmGrouping","serverLineProfiles","serverLineProfile","serverLineProfileId","AlarmGroupingNone","AlarmGroupingResponse","AlarmGroupingDefault","deviceEditLoaded","areaSelectLoaded","setAlarmGroupingOption","ev","setExtraValue","isRaiseIndividual","isRaiseGrouped","onComponentLoaded","newValue","oldValue","$emit","handleServerDetailsChanged","selectedServerType","extraValueName","isAlarmPanel","DeviceEdit","AreaTreeSelect","accountNumber","maxLength","hasDataChanged","selectedServerWithValidationFieldsOnly","storeServerWithValidationFieldsOnly","propFromSelectedServer","propFromStoreServer","progress","changeErrorsCount","serverDeviceErrorsCount","hasDevices","doGetConfig","doReGetConfig","cameraChangeErrorsCount","changeErrors","cameraChanges","deviceChangeFields","audioChangeErrorsCount","audioChanges","outputChangeErrorsCount","outputChanges","doorChangeErrorsCount","doorChanges","alarmChangeErrorsCount","alarmChanges","cameraErrorsCount","deviceConfigurationErrors","deviceErrorFields","audioErrorsCount","outputErrorsCount","doorErrorsCount","alarmErrorsCount","alarms","responseErrorFields","gettingConfig","settingConfig","changesTotal","cameraChangesTotal","toggleCameraChanges","deviceChanges","cameraChangesTableIsBusy","domProps","Array","isArray","selected","_i","$$a","$$el","target","$$c","checked","$$i","concat","slice","loadingMoreCameras","audioChangesTotal","toggleAudioChanges","audioChangesTableIsBusy","loadingMoreAudios","outputChangesTotal","toggleOutputChanges","outputChangesTableIsBusy","loadingMoreOutputs","doorChangesTotal","toggleDoorChanges","doorChangesTableIsBusy","loadingMoreDoors","alarmChangesTotal","toggleAlarmChanges","alarmChangesTableIsBusy","loadingMoreAlarms","saveChanges","cancel","camerasTotal","handleCameraScrollBarReachEnd","toggleCameras","serverConfigData","deviceFields","cameraTableIsBusy","audiosTotal","handleAudioScrollBarReachEnd","toggleAudios","audioTableIsBusy","outputsTotal","handleOutputScrollBarReachEnd","toggleOutputs","outputTableIsBusy","doorsTotal","handleDoorScrollBarReachEnd","toggleDoors","doorTableIsBusy","alarmsTotal","handleAlarmScrollBarReachEnd","toggleAlarms","responseFields","alarmTableIsBusy","save","SiteMonitor","getConfigStatus","Inactive","camerasPage","camerasPageSize","alarmsPage","alarmsPageSize","audiosPage","audiosPageSize","doorsPage","doorsPageSize","outputsPage","outputsPageSize","getConfigHasBeenRan","loadingMoreCameraChanges","loadingMoreAlarmChanges","loadingMoreAudioChanges","loadingMoreDoorChanges","outputChangeTableIsBusy","loadingMoreOutputChanges","allCamerasSelected","allAudiosSelected","allAlarmsSelected","allOutputsSelected","allDoorsSelected","allCameraChangesSelected","allAudioChangesSelected","allAlarmChangesSelected","allOutputChangesSelected","allDoorChangesSelected","noCameraChangesSelected","noAudioChangesSelected","noAlarmChangesSelected","noOutputChangesSelected","noDoorChangesSelected","noCamerasSelected","noAudiosSelected","noAlarmsSelected","noOutputsSelected","noDoorsSelected","cameraAccordionTabOpened","alarmAccordionTabOpened","audioAccordionTabOpened","doorAccordionTabOpened","outputAccordionTabOpened","deviceCounts","$root","$on","collapseId","isJustShown","resetModal","deviceResponseRecordsRetrievalStatus","allCamerasInCurrentQueryAreRetrieved","getCamerasForScroll","getCameras","allAlarmsRetrieved","allAlarmsInCurrentQueryAreRetrieved","getAlarmsForScroll","getAlarms","allAudiosInCurrentQueryAreRetrieved","getAudiosForScroll","getAudios","allDoorsInCurrentQueryAreRetrieved","getDoorsForScroll","getDoors","allOutputsInCurrentQueryAreRetrieved","getOutputsForScroll","getOutputs","populateLocalReGetConfigData","serverConfigAlreadySet","populateLocalData","serverConfigDataList","serverConfig","relays","serverConfigDataOutputs","obj","serverConfigDataDoors","host","port","username","password","syncIdentifier","users","Done","urlBase","window","location","origin","deviceService","authSessionID","getSession","Connecting","all","fetchServerConfig","getCurrentServer","auth","then","values","deviceConfiguration","fetchServerReConfig","startIndex","totalWillbeReached","endIndex","camerasWithSelect","i","newCamera","hasPtz","referenceImage","features","latLong","prototype","apply","alarmsWithSelect","newAlarm","eventType","linkedCameraInput","highPriority","audiosWithSelect","newAudio","doorsWithSelect","newRelay","outputsWithSelect","addConfig","addDevicesForServer","response","getSelectedChanges","selectedDeviceChanges","applyDeviceChangesForServer","setSettingConfig","selectedCameras","selectedAlarms","selectedAudios","selectedDoors","selectedOutputs","selectedRelays","selectedConfig","forEach","index","alarmErrorCount","cameraErrorCount","audioErrorCount","doorErrorCount","outputErrorCount","GetConfig","showModal","alarmTabLoaded","baseChildDeviceTypeIds","defaultResponseGrouping","showEditModal","getServerTypeTitle","openModal","getFeaturesList","canGetConfig","isGetConfigInDevicesEnabled","addChildDeviceTypes","hasAdvancedAlarmGroupingFlag","addAdvancedAlarmGroupingSpecificFields","getServers","getDeviceTypes","fetchUserGroups","getDefaultResponseGrouping","getServerLineProfiles","getAlarmGroupingTitle","getFilteredServersPaginated","data","allFilteredServersRetrieved","allServersRetrieved","setCurrentServer","setServerModalVisible","isEditingServer","updateServer","addServer","numAlarmInputs","aCount","DeviceTable","AlarmSetupTable","childDeviceTypeIds","resetDevicesState","canViewSiteSetup","notify","notificationOptions","$notify","setNotificationOptions","DeviceSetup","NavHeader"],"mappings":"kKAAA,yBAA0gB,EAAG,G,oCCA7gB,yBAA+kB,EAAG,G,oCCAllB,yBAA4jB,EAAG,G,6DCA/jB,yBAAmlB,EAAG,G,kHCAtlB,I,QCiCKA,EDjCDC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQ,kBAAmBP,EAAsB,mBAAEI,EAAG,MAAM,CAACA,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,IAAIC,MAAM,CAACC,MAAOT,EAAY,SAAEU,SAAS,SAAUC,GAAMX,EAAIY,SAASD,GAAKE,WAAW,aAAa,CAACT,EAAG,QAAQ,CAACG,MAAM,CAAC,OAAS,IAAIO,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACb,EAAG,IAAI,CAACE,YAAY,qBAAqBN,EAAIkB,GAAG,mCAAoClB,EAAoB,iBAAEI,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,cAAc,CAACP,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIoB,iBAAiBC,SAAS,kBAAkBrB,EAAIsB,OAAOC,OAAM,IAAO,MAAK,EAAM,WAAW,CAACnB,EAAG,eAAe,CAACG,MAAM,CAAC,QAA2B,IAAjBP,EAAIY,aAAmB,GAAGZ,EAAIwB,GAAIxB,EAAsB,oBAAE,SAASyB,GAAmB,OAAOrB,EAAG,2BAA2B,CAACY,IAAIS,EAAkBlB,MAAM,CAAC,iBAAkB,EAAK,QAAUP,EAAIY,WAAaa,EAAkB,qBAAuBA,SAAwB,GAAGrB,EAAG,6BAA8BJ,EAA+B,4BAAEI,EAAG,qBAAqBJ,EAAIsB,KAAMtB,EAA6B,0BAAEI,EAAG,kBAAkBJ,EAAIsB,MAAM,GAAGlB,EAAG,MAAM,CAACA,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACN,EAAIkB,GAAG,oDAAoD,IACxxCQ,EAAkB,G,wEEDlB,EAAS,WAAa,IAAI1B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,GAAG,OAAS,GAAG,KAAO,KAAK,SAAW,GAAG,MAAQP,EAAI2B,MAAM,gBAAgB,mBAAmB,eAAe,0BAA0BC,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAO7B,EAAI8B,sBAAsBhB,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,eAAeC,GAAG,WAAW,MAAO,CAACb,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,YAAY,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI+B,kCAAkC,CAAC/B,EAAIkB,GAAG,uCAAuCd,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,YAAY,UAAU,iBAAiBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8B,uBAAuB,CAAC9B,EAAIkB,GAAG,2BAA2BK,OAAM,MAAS,CAACnB,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,iBAAiB,CAAC4B,IAAI,gBAAgBzB,MAAM,CAAC,qBAAuBP,EAAIiC,iCAAiC,GAAG7B,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,iBAAiB,CAACF,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,UAAU,CAACN,EAAIkB,GAAG,gBAAgBd,EAAG,KAAK,CAACJ,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIkC,OAAOC,eAAe/B,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,UAAU,CAACN,EAAIkB,GAAG,cAAcd,EAAG,KAAK,CAACJ,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIkC,OAAOE,aAAcpC,EAAc,WAAEI,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,UAAU,CAACN,EAAIkB,GAAG,cAAcd,EAAG,KAAK,CAACJ,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIkC,OAAOG,aAAarC,EAAIsB,KAAMtB,EAAkB,eAAEI,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,oBAAoB,CAACN,EAAIkB,GAAG,kBAAkBd,EAAG,KAAK,CAACE,YAAY,YAAY,CAACF,EAAG,MAAM,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,mBAAmBlB,EAAImB,GAAGnB,EAAIkC,OAAOI,YAAY,wBAAwBtC,EAAIsB,cACplD,EAAkB,G,8CCOhBiB,EAAgB,uBAAU,YAE1BC,EAAU,uBAAU,WACpBC,EAAe,uBAAU,YACzBC,EAAY,uBAAU,sBAEtBC,EAAkB,CACvBC,0BAA2B,CAC1BC,QAAS,KACTC,WAAY,OAAcF,4BAK5B,2B,+CA6EA,OA7E2C,oBAgB1C,sBAAY,2CAA4B,C,IAAxC,WACC,OAAO3C,KAAK8C,iBAAiBJ,EAAgBC,4B,gCAGtC,YAAAd,kBAAR,WACC7B,KAAK+C,iCAAgC,IAGxB,YAAAC,QAAd,W,kCAAyBC,SAAO,W,sEAC3BjD,KAAKkD,sBACR,GAAMlD,KAAKmD,UAAUnD,KAAKiC,OAAOmB,WAD9B,M,OACH,S,mCAIY,YAAAC,QAAd,W,kCAAyBJ,SAAO,W,+DAC/B,SAAMjD,KAAKsD,iBAAiB,CAACZ,EAAgBC,6B,OAC7C,OADA,SACA,GAAM3C,KAAKuD,cAAc,CAAEC,WAAY,OAAaC,S,OACpD,OADA,SACA,GAAMzD,KAAK0D,cAAcC,YAAY3D,KAAKiC,OAAOC,W,cAAjD,S,YAGD,sBAAY,oCAAqB,C,IAAjC,WACC,YAA6B0B,IAAtB5D,KAAK6D,c,gCAGb,sBAAY,oBAAK,C,IAAjB,WACC,MAAO,YAAY7D,KAAKiC,OAAOP,O,gCAGhC,sBAAY,2BAAY,C,IAAxB,sBACC,OAAO1B,KAAK8D,YAAYC,MAAK,SAAAC,GAAK,OAAAA,EAAEZ,WAAa,EAAKnB,OAApB,a,gCAGnC,sBAAY,yBAAU,C,IAAtB,sBACC,OAAOjC,KAAKiE,YAAYF,MAAK,SAAAG,GAAE,MAAI,OAAAA,EAAGC,eAAiC,QAArB,EAAI,EAAKN,oBAAY,eAAEM,kB,gCAG1E,sBAAY,yBAAU,C,IAAtB,W,MACC,OAA+C,KAAzB,QAAf,EAAAnE,KAAKoE,kBAAU,eAAEC,qB,gCAGzB,sBAAY,6BAAc,C,IAA1B,W,MACC,OAAiD,KAA3B,QAAf,EAAArE,KAAKoE,kBAAU,eAAEE,uB,gCAGX,YAAAxC,6BAAd,W,kCAA8CmB,SAAO,W,yEAepD,OAbIsB,EAASC,SAASC,cAAc,UAEpCF,EAAOG,MAAQ1E,KAAK0D,cAAciB,MAAMC,MAAMD,MAAME,aAAaC,WACjEP,EAAOQ,OAAS/E,KAAK0D,cAAciB,MAAMC,MAAMD,MAAME,aAAaG,YAElET,EACEU,WAAW,MACXC,UAAUlF,KAAK0D,cAAciB,MAAMC,MAAMD,MAAME,aAAc,EAAG,EAAGN,EAAOG,MAAOH,EAAOQ,QAEpFI,EAAQZ,EAAOa,YAAYC,MAAM,YAAY,GAC7CC,EAAsB,CAAEC,SAAUvF,KAAKiC,OAAOC,SAAUsD,MAAOL,GAErEnF,KAAKyF,8BAA8BH,GACnC,GAAMtF,KAAK0F,oBAAoBJ,I,cAA/B,S,YA1Ee,gBAAf/C,EAAQoD,Q,gCACS,gBAAjBpD,EAAQqD,U,sDACS,gBAAjBrD,EAAQqD,U,oDAC6C,gBAArDrD,EAAQsD,OAAM,SAACC,GAAwB,OAAAA,EAAA,W,6BACmB,gBAA1DvD,EAAQsD,OAAM,SAACC,GAAwB,OAAAA,EAAA,gB,kCACmB,gBAA1DvD,EAAQsD,OAAM,SAACC,GAAwB,OAAAA,EAAA,gB,kCAEnB,gBAApBtD,EAAamD,Q,oCACI,gBAAjBlD,EAAUkD,Q,0CAEW,gBAArBrD,EAAcqD,Q,uCACO,gBAArBrD,EAAcyD,Q,uCAER,gBAAN,oB,oCAdmBC,EAAa,gBADjC,uBAAU,KACUA,GA6ErB,EA7EA,CAA2C,UAAtB,ICtBqY,I,wBCQtZ,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,I,QCnBX,EAAS,WAAa,IAAIjG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,UAAYP,EAAIkG,cAAc,MAAQlG,EAAImG,UAAU,UAAU,cAAcvE,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIoG,oBAAoBtF,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACb,EAAG,OAAO,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,0BAA0B9F,MAAOT,EAAIwG,aAAaxG,EAAI2B,OAAQd,WAAW,sBAAsB4F,UAAU,CAAC,OAAQ,EAAK,OAAQ,KAAQC,MAAM,CAAE,iBAAkB1G,EAAIkG,eAAgB3F,MAAM,CAAC,QAAU,YAAY,CAACH,EAAG,IAAI,CAACE,YAAY,YAAYoG,MAAM1G,EAAI2G,YAAY3G,EAAIkB,GAAG,WAAWlB,EAAImB,GAAGnB,EAAI2B,OAAO,YAAa3B,EAAoB,iBAAEI,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,cAAc,CAACP,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAI4G,YAAYC,qBAAqB7G,EAAIsB,MAAM,KAAKC,OAAM,MAAS,CAACnB,EAAG,qBAAqB,CAACG,MAAM,CAAC,gBAAkBP,EAAI8G,gBAAgB,QAAU9G,EAAI+G,QAAQ,aAAe/G,EAAIgH,yBAAyB,IACv7B,EAAkB,GCDlB,EAAS,WAAa,IAAIhH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAW,QAAEI,EAAG,MAAM,CAACG,MAAM,CAAC,UAAU,uBAAuB,CAACH,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,SAAS,YAAc,YAAY,IAAM,MAAM,UAAU,UAAUqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIiH,kBAAkBpF,KAAUrB,MAAM,CAACC,MAAOT,EAAuB,oBAAEU,SAAS,SAAUC,GAAMX,EAAIkH,oBAAoBvG,GAAKE,WAAW,0BAA0B,GAAIb,EAAqB,kBAAEI,EAAG,QAAQ,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,UAAU,UAAU,cAAcqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAImH,qBAAqB,CAACnH,EAAIkB,GAAG,OAAOlB,EAAImB,GAAGnB,EAAI2B,WAAW,GAAG3B,EAAIsB,MAAM,GAAGlB,EAAG,wBAAwB,CAACE,YAAY,mCAAmCC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAIoH,6BAA6B,CAAChH,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQP,EAAIqH,iBAAiB,OAASrH,EAAIsH,OAAO,MAAQ,GAAG,eAAe,OAAO,KAAOtH,EAAIuH,aAAazG,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,gBAAgBC,GAAG,SAASuG,GAAK,MAAO,CAAEA,EAAIC,KAAyB,qBAAErH,EAAG,MAAM,CAACE,YAAY,iBAAiBC,MAAM,CAAC,IAAMP,EAAI0H,sBAAsBF,EAAIC,KAAKE,sBAAsB,UAAU,4BAA4BvH,EAAG,IAAI,CAACE,YAAY,4DAA4D,CAACU,IAAI,mBAAmBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,MAAM,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAGlB,EAAImB,GAAGqG,EAAIC,KAAKnF,kBAAkB,CAACtB,IAAI,gBAAgBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,IAAI,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,8BAA8BE,UAAU,CAAC,OAAQ,EAAK,aAAY,KAAQnG,YAAY,yBAAyBC,MAAM,CAAC,MAAQ,OAAO,UAAU,eAAeqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI4H,gBAAgBJ,EAAIC,UAAWzH,EAAyB,sBAAEI,EAAG,IAAI,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,8BAA8BE,UAAU,CAAC,OAAQ,EAAK,aAAY,KAAQnG,YAAY,8BAA8BC,MAAM,CAAC,MAAQ,UAAU,UAAU,kBAAkBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI6H,yBAAyBL,EAAIC,UAAUzH,EAAIsB,KAAKlB,EAAG,IAAI,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,8BAA8BE,UAAU,CAAC,OAAQ,EAAK,aAAY,KAAQnG,YAAY,+BAA+BC,MAAM,CAAC,MAAQ,SAAS,UAAU,iBAAiBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8H,kBAAkBN,EAAIC,aAAezH,EAAI+H,mBAAgN,KAA5L,CAAC/G,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,GAAGvB,EAAIsB,MACr7F,EAAkB,G,2FCoBhB,EAAU,uBAAU,WAEpB0G,GAAiB,KACtB,EAAC,OAAqBC,QAAS,SAC/B,EAAC,OAAqBC,OAAQ,QAC9B,EAAC,OAAqBC,QAAS,SAC/B,EAAC,OAAqBC,MAAO,OAC7B,GAEKC,EAA0B,SAQhC,yE,OAgCS,EAAAC,uBAA4C,KAC5C,EAAAC,wBAAkC,EAClC,EAAAC,oBAA8B,EAC9B,EAAAT,oBAA8B,EAC9B,EAAAU,YAAsB,EACtB,EAAAC,gBAA0B,IAC1B,EAAAC,WAAqB,GACrB,EAAAzB,oBAA8B,GAC9B,EAAAK,aAAuB,EACvB,EAAA5F,MAAgB,GAEhB,EAAA2F,OAA8B,CACrC,CAAEtG,IAAK,QAAS4H,MAAO,QAASC,UAAU,GAC1C,CACC7H,IAAK,SACL4H,MAAO,UACPC,UAAU,GAEX,CACC7H,IAAK,SACL4H,MAAO,UACPC,UAAU,GAEX,CACC7H,IAAK,aACL4H,MAAO,cACPC,UAAU,EACVnC,MAAO,uBAqLD,EAAAO,kBAAoB,uBAAS,SAAO0B,GAAkB,+BAAGzF,SAAO,W,+DACvE,SAAMjD,KAAK6I,cAAcH,I,cAAzB,S,aACE,kB,EA8KJ,OAha8C,oBA+D/B,YAAA1F,QAAd,W,kCAAyBC,SAAO,W,sEAC/BjD,KAAK0B,MAAQqG,EAAkB/H,KAAK8I,cAEhC9I,KAAK+I,uBACR/I,KAAKgJ,6CAGFhJ,KAAK6G,iBACR7G,KAAKiJ,8BAGNjJ,KAAKkJ,yBAEDlJ,KAAKmJ,mBACRnJ,KAAKoJ,mCAGFpJ,KAAK6G,kBAAqB7G,KAAK6G,iBAAmB7G,KAAKqJ,wCAC1D,GAAMrJ,KAAKsJ,cADR,M,cACH,S,aACWtJ,KAAK6G,kBAEhB7G,KAAKwI,YAAce,KAAKC,MAAMxJ,KAAKoH,iBAAiBqC,OAASzJ,KAAKyI,iBAAmB,G,mCAIvF,sBAAY,oCAAqB,C,IAAjC,WACC,OAAOzI,KAAK0J,mBAAqB,iBAAI1J,KAAK2J,aAAc,CAAC,UAAW,wB,gCAGrE,sBAAY,gCAAiB,C,IAA7B,WACC,OAAO3J,KAAK8I,eAAiB,OAAqBd,Q,gCAG3C,YAAAgB,2CAAR,WACChJ,KAAKyI,gBAAkB,IAGhB,YAAAS,uBAAR,sBACKlJ,KAAK+I,uBACR/I,KAAKqH,OAAOuC,OAAO,EAAG,EAAG,CACxB7I,IAAK,UACL4H,MAAO,UACPC,UAAU,IAIR5I,KAAK8I,eAAiB,OAAqBb,OAC9CjI,KAAKqH,OAAOwC,KAAK,CAChB9I,IAAK,eACL4H,MAAO,eACPC,UAAU,EACVkB,UAAW,SAACtJ,EAAOO,EAAKyG,GACvB,OAAO,EAAKuC,mBAAmBvC,IAEhCwC,iBAAiB,KAKZ,YAAAf,4BAAR,sBACCjJ,KAAKqH,OAAOuC,OAAO,EAAG,EAAG,CACxB7I,IAAK,WACL4H,MAAO,SACPC,UAAU,EACVkB,UAAW,SAACtJ,EAAOO,EAAKyG,GACvB,OAAO,EAAKyC,eAAezC,IAE5BwC,iBAAiB,IAGlBhK,KAAKqH,OAAOuC,OAAO,EAAG,EAAG,CACxB7I,IAAK,UACL4H,MAAO,OACPC,UAAU,EACVkB,UAAW,SAAAlH,GACV,OAAO,EAAKsH,cAActH,IAE3BoH,iBAAiB,KAInB,sBAAY,gCAAiB,C,IAA7B,WACC,OAAOhK,KAAKmK,YAAYC,SAAWpK,KAAKmK,YAAYE,kB,gCAGrD,sBAAY,oCAAqB,C,IAAjC,WACC,OAAOrK,KAAK0J,oBAAsB1J,KAAKmK,YAAYC,SAAWpK,KAAKmK,YAAYG,iB,gCAGxE,YAAAlB,iCAAR,WACCpJ,KAAKqH,OAAOwC,KAAK,CAAE9I,IAAK,UAAW4H,MAAO,UAAWC,UAAU,EAAOnC,MAAO,iBAGhE,YAAA6C,WAAd,W,kCAA4BrG,SAAO,W,uEAiClC,OAhCAjD,KAAKsH,aAAc,EAEbiD,EAAsC,CAC3CzB,aAAc9I,KAAK8I,aACnB0B,KAAMxK,KAAKwI,YACXiC,SAAUzK,KAAKyI,iBAGZzI,KAAK+I,wBACRwB,EAAYxB,uBAAwB,GAGhC/I,KAAK6G,kBACT0D,EAAYG,SAAW1K,KAAK2K,cAAcvH,UAGvCpD,KAAK0I,aACR6B,EAAYC,KAAOxK,KAAKuI,oBACxBgC,EAAY7B,WAAa1I,KAAK0I,YAG3B1I,KAAK4K,kBACR5K,KAAK6K,qBAAqBN,GAG3BvK,KAAKqI,uBAAyB,eAAwBrI,KAAKqI,wBAAwB,GAE7EyC,EAA6D,CAClEC,OAAQR,EACRS,kBAAmBhL,KAAKqI,wBAGzB,GAAMrI,KAAKiL,+BAA+BH,I,cAA1C,SAEA9K,KAAKsH,aAAc,E,YAGpB,sBAAY,+BAAgB,C,IAA5B,WACC,OAAOtH,KAAK8I,eAAiB,OAAqBZ,QAAUlI,KAAK8I,eAAiB,OAAqBX,M,gCAGhG,YAAA0C,qBAAR,SAA6BN,GAC5BA,EAAYW,cAAgBX,EAAYzB,eAAiB,OAAqBZ,OAC9EqC,EAAYzB,aAAe,OAAWqC,OAG/B,YAAAjB,cAAR,SAAsBtH,G,MACrB,OAAwD,QAAxD,EAAO5C,KAAKoL,WAAWrH,MAAK,SAAAsH,GAAM,OAAAA,EAAGzI,SAAH,YAAsB,eAAElB,OAGnD,YAAAqI,mBAAR,SAA2B9H,G,YAC1B,OAAwB,QAApB,EAAAA,EAAOqJ,qBAAa,eAAEC,mBAAuC,QAAxB,EAAItJ,EAAOqJ,qBAAa,eAAEE,gBAC3D,eAGgB,QAAxB,EAAIvJ,EAAOqJ,qBAAa,eAAEC,iBAClB,YAGgB,QAAxB,EAAItJ,EAAOqJ,qBAAa,eAAEE,gBAClB,UAGD,IAGA,YAAAvB,eAAR,SAAuBhI,GACtB,IAAMwJ,EAASzL,KAAK8D,YAAYC,MAAK,SAAAC,GAAK,OAAAA,EAAEZ,UAAYnB,EAAd,YAE1C,OAAIwJ,EACIA,EAAO/J,MAGRO,EAAOyJ,aAGP,YAAArC,sCAAR,sBACC,OACCrJ,KAAKoB,QAAQuK,QAAO,SAAAC,GAAK,OAAAA,EAAEC,eAAiB,EAAK/C,cAAgB8C,EAAExI,WAAa,EAAKuH,cAA5D,YACvBlB,OAASzJ,KAAKyI,iBAQJ,YAAAI,cAAd,SAA4BH,G,kCAAqBzF,SAAO,W,+DAKvD,OAJAjD,KAAK8L,wBAEL9L,KAAK0I,WAAaA,EAEb1I,KAAK0I,WAKV,GAAM1I,KAAKsJ,eAJVtJ,KAAKsI,wBAAyB,EAC9B,K,cAGD,SAEAtI,KAAKsI,wBAAyB,E,YAGvB,YAAAwD,sBAAR,WACC,IAAIC,EAAkB,kBAClB/L,KAAKgM,wBAST,OANKhM,KAAK6G,kBACTkF,EAAqB,OAAH,OAAG,CAAH,GACd/L,KAAK2K,cAAcqB,yBAIhBhM,KAAK8I,cACZ,KAAK,OAAqBd,OACzB+D,EAAmBE,6BAA8B,EACjD,MAED,KAAK,OAAqBhE,MACzB8D,EAAmBG,4BAA6B,EAChD,MAED,KAAK,OAAqB/D,KACzB4D,EAAmBI,2BAA4B,EAC/C,MAED,KAAK,OAAqBjE,OACzB6D,EAAmBK,6BAA8B,EACjD,MAIEpM,KAAK6G,gBACR7G,KAAKqM,6BAA6BN,GAElC/L,KAAKsM,0CAA0CP,IAIzC,YAAA7E,gBAAR,WACClH,KAAKuM,cAAa,GAElB,IAAMC,EAAY,iBAClBA,EAAUX,aAAe7L,KAAK8I,aAE1B9I,KAAK8I,eAAiB,OAAqBX,MAAQnI,KAAK8I,eAAiB,OAAqBZ,SACjGsE,EAAUX,aAAe,OAAWV,OAGjCnL,KAAK2K,gBACR6B,EAAUpJ,SAAWpD,KAAK2K,cAAcvH,UAGzCpD,KAAKyM,UAAUD,GACfxM,KAAK0M,+BAA+B1M,KAAK8I,cACzC9I,KAAK2M,mCAAkC,IAGxC,sBAAY,mDAAoC,C,IAAhD,WACC,IAAIX,EAAuDhM,KAAKgM,uBAMhE,OAJKhM,KAAK6G,kBACTmF,EAAyBhM,KAAK2K,cAAcqB,wBAGrChM,KAAK8I,cACZ,KAAK,OAAqBd,OACzB,OAAOhI,KAAKsI,uBACT0D,EAAuBC,4BACvBD,EAAuBY,oBAE3B,KAAK,OAAqB3E,MACzB,OAAOjI,KAAKsI,uBACT0D,EAAuBE,2BACvBF,EAAuBa,mBAE3B,KAAK,OAAqB1E,KACzB,OAAOnI,KAAKsI,uBACT0D,EAAuBG,0BACvBH,EAAuBc,kBAE3B,KAAK,OAAqB5E,OACzB,OAAOlI,KAAKsI,uBACT0D,EAAuBI,4BACvBJ,EAAuBe,oBAI5B,OAAO,G,gCAGM,YAAA5F,wBAAd,W,kCAAyClE,SAAO,W,+DAC/C,OAAKjD,KAAK8G,SAAW9G,KAAKsH,aAAetH,KAAKgN,sCAAwChN,KAAK8H,mBAC1F,KAGD9H,KAAK8H,oBAAqB,EAC1B9H,KAAK0I,WAAa1I,KAAKuI,sBAAwBvI,KAAKwI,cAEpD,GAAMxI,KAAKsJ,e,cAAX,SAEAtJ,KAAK8H,oBAAqB,E,YAG3B,sBAAY,+BAAgB,C,IAA5B,sBACKgB,EAAe9I,KAAK8I,aAEpB9I,KAAK4K,mBACR9B,EAAe,OAAWqC,OAG3B,IAAMzC,EAAa1I,KAAK0I,WAAWuE,cAC7BC,EAAqBC,OAAOnN,KAAK0I,YACjC0E,GAAuBC,MAAMH,GAEnC,OAAOlN,KAAKoB,QAAQuK,QACnB,SAAAC,GACC,OAAAA,EAAEC,eAAiB/C,IAClB,EAAKjC,kBAAqB,EAAKA,iBAAmB+E,EAAExI,WAAa,EAAKuH,cAAcvH,aACnF,EAAKkF,wBACL,EAAKA,yBACJsD,EAAElK,MAAMuL,cAAcK,SAAS5E,IAC9BkD,EAAEvJ,YAAcuJ,EAAEvJ,WAAW4K,cAAcK,SAAS5E,IACpD0E,IACCxB,EAAEzJ,SAAW+K,GAAsBtB,EAAExJ,SAAW8K,IACjD,EAAKrG,kBACJ+E,EAAEF,YAAYuB,cAAcK,SAAS5E,IACrC,EAAK0C,WAAWrH,MAAK,SAAAwJ,GAAK,OAAAA,EAAE3K,UAAYgJ,EAAd,WACxBlK,MAAMuL,cACNK,SAAS5E,SACd,EAAKkC,kBACL,EAAKA,mBACJ,EAAK9B,eAAiB,OAAqBZ,OACzC0D,EAAE4B,cAAcC,YAAcrF,EAC9BwD,EAAE4B,cAAcC,YAAcrF,Q,gCAI9B,YAAAT,gBAAR,SAAwB1F,GACvBjC,KAAKuM,cAAa,GAClBvM,KAAKyM,UAAUxK,GACfjC,KAAK0M,+BAA+B1M,KAAK8I,cACzC9I,KAAK2M,mCAAkC,IAGhC,YAAA/E,yBAAR,SAAiC3F,GAChCjC,KAAKyM,UAAUxK,GACfjC,KAAK+C,iCAAgC,IAG9B,YAAA8E,kBAAR,SAA0B5F,GACzBjC,KAAKyM,UAAUxK,GACfjC,KAAK0M,+BAA+B1M,KAAK8I,cACzC9I,KAAK0N,qCAAoC,IAGlC,YAAAjG,sBAAR,SAA8BkG,GAC7B,MAAO,qBAAqBA,GA7ZW,gBAAvC,kBAAK,CAAEC,UAAU,EAAMC,KAAMV,U,mCAC2B,gBAAxD,kBAAK,CAAES,UAAU,EAAME,SAAS,EAAOD,KAAME,W,sCACW,gBAAxD,kBAAK,CAAEH,UAAU,EAAME,SAAS,EAAOD,KAAME,W,8BAEpB,gBAAzB,oBAAO,mB,kCACD,gBAAN,Y,mCACM,gBAAN,Y,iCAES,gBAAT,e,mCAEe,gBAAf,EAAQpI,Q,qDAIS,gBAAjB,EAAQC,U,gEAGS,gBAAjB,EAAQA,U,mDAGS,gBAAjB,EAAQA,U,sDACS,gBAAjB,EAAQA,U,qDACS,gBAAjB,EAAQA,U,0DACS,gBAAjB,EAAQA,U,gCACS,gBAAjB,EAAQA,U,wDAEM,gBAAd,EAAQC,O,oCACM,gBAAd,EAAQA,O,8BACM,gBAAd,EAAQA,O,6CACM,gBAAd,EAAQA,O,kCA9BWmI,EAAgB,gBANpC,uBAAU,CACVC,WAAY,CACX,gBAAiBC,EAAA,KACjB,wBAAyB,QAGNF,GAgarB,EAhaA,CAA8C,UAAzB,ICtC0Z,ICQ3a,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCZT,EAAU,uBAAU,WAEpBG,GAAgB,KACrB,EAAC,OAAqBnG,QAAS,UAC/B,EAAC,OAAqBC,OAAQ,gBAC9B,EAAC,OAAqBC,QAAS,sBAC/B,EAAC,OAAqBC,MAAO,eAC7B,GAEK,GAAiB,KACtB,EAAC,OAAqBH,QAAS,UAC/B,EAAC,OAAqBC,OAAQ,SAC9B,EAAC,OAAqBC,QAAS,UAC/B,EAAC,OAAqBC,MAAO,QAC7B,GAOD,yE,OASS,EAAAzB,UAAoB,GACpB,EAAAR,WAAqB,EACrB,EAAAxE,MAAgB,G,EA0FzB,OArGmD,oBAa1C,YAAAsB,QAAR,WACChD,KAAK0G,UAAYyH,EAAiBnO,KAAK+G,sBACvC/G,KAAK0B,MAAQ,EAAkB1B,KAAK+G,uBAGrC,sBAAY,4BAAa,C,IAAzB,sBACC,GAAI/G,KAAK6G,gBACR,OAAQ7G,KAAK+G,sBACZ,KAAK,OAAqBiB,OACzB,OAAOhI,KAAKiE,YAAYmK,MAAK,SAAAlK,GAAM,WAAAA,EAAGmK,cACvC,KAAK,OAAqBpG,MACzB,OAAOjI,KAAKiE,YAAYmK,MAAK,SAAAlK,GAAM,WAAAA,EAAGoK,kBACvC,KAAK,OAAqBnG,KAC1B,KAAK,OAAqBD,OACzB,OAAOlI,KAAKiE,YAAYmK,MAAK,SAAAlK,GAAM,WAAAA,EAAGqK,iBAElC,CACN,IAAMnK,EAAyBpE,KAAKiE,YAAYF,MAC/C,SAAAG,GAAM,OAAAA,EAAGC,eAAiB,EAAKwG,cAAzB,gBAGP,OAAQ3K,KAAK+G,sBACZ,KAAK,OAAqBiB,OACzB,OAAO5D,GAAwC,IAA1BA,EAAWiK,WACjC,KAAK,OAAqBpG,MACzB,OAAO7D,GAA4C,IAA9BA,EAAWkK,eACjC,KAAK,OAAqBnG,KAC1B,KAAK,OAAqBD,OACzB,OAAO9D,GAAuC,IAAzBA,EAAWmK,WAInC,OAAO,G,gCAGR,sBAAY,0BAAW,C,IAAvB,WACC,GAAIvO,KAAK6G,gBACR,OAAQ7G,KAAK+G,sBACZ,KAAK,OAAqBiB,OACzB,OAAOhI,KAAKmB,iBAAiBqN,QAC9B,KAAK,OAAqBvG,MACzB,OAAOjI,KAAKmB,iBAAiBsN,OAC9B,KAAK,OAAqBtG,KACzB,OAAOnI,KAAKmB,iBAAiBuN,MAC9B,KAAK,OAAqBxG,OACzB,OAAOlI,KAAKmB,iBAAiBwN,aAG/B,OAAQ3O,KAAK+G,sBACZ,KAAK,OAAqBiB,OACzB,OAAOhI,KAAK2K,cAAcxJ,iBAAiBqN,QAC5C,KAAK,OAAqBvG,MACzB,OAAOjI,KAAK2K,cAAcxJ,iBAAiBsN,OAC5C,KAAK,OAAqBtG,KACzB,OAAOnI,KAAK2K,cAAcxJ,iBAAiBuN,MAC5C,KAAK,OAAqBxG,OACzB,OAAOlI,KAAK2K,cAAcxJ,iBAAiBwN,QAI9C,OAAO,G,gCAGR,sBAAY,+BAAgB,C,IAA5B,WACC,SACE3O,KAAK6G,iBAAmB7G,KAAKmB,mBAC5BnB,KAAK6G,iBAAmB7G,KAAK2K,cAAcxJ,mB,gCAQvC,YAAAgF,gBAAR,WACCnG,KAAKkG,WAAY,GAGV,YAAAK,aAAR,SAAqB7E,GACpB,IAAIkN,EAAO,GAOX,OANK5O,KAAKiG,eAAkBjG,KAAK6G,kBAChC+H,EAAUlN,EAAK,sCAEX1B,KAAKiG,eAAiBjG,KAAK6G,kBAC/B+H,EAAO,6CAA6ClN,GAE9CkN,GAlGgC,gBAAvC,kBAAK,CAAEhB,UAAU,EAAMC,KAAMV,U,2CAC0B,gBAAvD,kBAAK,CAAES,UAAU,EAAME,SAAS,EAAMD,KAAME,W,sCACY,gBAAxD,kBAAK,CAAEH,UAAU,EAAME,SAAS,EAAOD,KAAME,W,8BAE/B,gBAAd,EAAQlI,O,oCACM,gBAAd,EAAQA,O,uCACM,gBAAd,EAAQA,O,kCAPWgJ,EAAqB,gBALzC,uBAAU,CACVZ,WAAY,CACX,qBAAsB,MAGHY,GAqGrB,EArGA,CAAmD,UAA9B,IC5B+Z,ICQhb,I,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI9O,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACG,MAAM,CAAC,QAAUP,EAAI+O,4BAA4B,KAAO,KAAK,OAAS,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,SAAW,GAAG,MAAQ/O,EAAI2B,MAAM,UAAU,qBAAqBC,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAO7B,EAAI8B,sBAAsBhB,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,eAAeC,GAAG,WAAW,MAAO,CAACb,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,UAAU,SAAWP,EAAIgP,gBAAgB,UAAU,eAAepN,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIiP,qBAAqB,CAACjP,EAAIkB,GAAG,wBAAwBd,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,YAAY,UAAU,iBAAiBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8B,uBAAuB,CAAC9B,EAAIkB,GAAG,4BAA4BK,OAAM,MAAS,CAACnB,EAAG,wBAAwB,CAACE,YAAY,eAAe,CAACF,EAAG,SAAS,CAACwB,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAOqN,iBAAwBlP,EAAImP,kBAAkB,CAAC/O,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,YAAY,SAAS,gBAAgB,MAAM,CAACH,EAAG,WAAW,CAACgP,KAAK,SAAS,CAACpP,EAAIkB,GAAG,uCAAuCd,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,SAAUlB,EAAIqP,qBAAuBrP,EAAIsP,UAAWlP,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAI+D,YAAY,YAAc,SAAS,MAAQ,QAAQ,YAAa,EAAM,aAAe,GAAG,UAAU,iBAAiBnC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIuP,wBAAwB,OAAS,SAAU5G,EAAY6G,GAAW,OAAOxP,EAAIyP,mBAAmB9G,EAAY6G,KAAahP,MAAM,CAACC,MAAOT,EAAkB,eAAEU,SAAS,SAAUC,GAAMX,EAAI0P,eAAe/O,GAAKE,WAAW,mBAAmB,CAACT,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,cAAc6O,KAAK,cAAc,CAACpP,EAAIkB,GAAG,qCAAqCd,EAAG,eAAe,CAACG,MAAM,CAAC,SAAW,IAAIC,MAAM,CAACC,MAAOT,EAAI0P,eAAoB,MAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,QAAS/O,IAAME,WAAW,2BAA2B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,YAAY,QAAQ,gBAAgB,MAAM,CAACH,EAAG,WAAW,CAACgP,KAAK,SAAS,CAACpP,EAAIkB,GAAG,sCAAsCd,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,SAASd,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,QAAQ,YAAc,SAASC,MAAM,CAACC,MAAOT,EAAIkC,OAAY,MAAExB,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAQ,QAASvB,IAAME,WAAW,mBAAmB,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,YAAY,UAAU,gBAAgB,MAAM,CAACH,EAAG,WAAW,CAACgP,KAAK,SAAS,CAACpP,EAAIkB,GAAG,wCAAwCd,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,SAASd,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,UAAU,KAAO,SAAS,YAAc,WAAWC,MAAM,CAACC,MAAOT,EAAIkC,OAAa,OAAExB,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAQ,SAAUvB,IAAME,WAAW,oBAAoB,IAAI,GAAIb,EAAc,WAAEI,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,UAAU,YAAY,UAAU,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,UAAU,YAAc,UAAU,KAAO,UAAUC,MAAM,CAACC,MAAOT,EAAIkC,OAAa,OAAExB,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAQ,SAAUvB,IAAME,WAAW,oBAAoB,IAAI,GAAGb,EAAIsB,KAAMtB,EAAkB,eAAEI,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ,cAAc,YAAY,cAAc,gBAAgB,IAAI,cAAc,SAAS,CAACH,EAAG,kBAAkB,CAACE,YAAY,eAAeC,MAAM,CAAC,GAAK,cAAc,YAAc,eAAeC,MAAM,CAACC,MAAOT,EAAIkC,OAAiB,WAAExB,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAQ,aAAcvB,IAAME,WAAW,wBAAwB,IAAI,GAAGb,EAAIsB,KAAKlB,EAAGJ,EAAI4P,qBAAqB,CAACC,IAAI,YAAYtP,MAAM,CAAC,SAAWP,EAAIkC,OAAOmB,UAAUzB,GAAG,CAAC,qBAAqB,SAASC,GAAQ,OAAO7B,EAAI8P,wBAAwBjO,IAAS,yBAAyB,SAASA,GAAQ,OAAO7B,EAAI+P,2BAA2BlO,QAAa,IAAI,IAAI,IAC91H,GAAkB,G,8DCDlB,GAAS,WAAa,IAAI7B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,YAAY,YAAY,WAAW,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,WAAW,UAAU,qBAAqBC,MAAM,CAACC,MAAOT,EAAIkC,OAAOqJ,cAA6B,gBAAE7K,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOqJ,cAAe,kBAAmB5K,IAAME,WAAW,yCAAyC,CAACb,EAAIkB,GAAG,0BAA0B,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,WAAW,YAAY,UAAU,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,WAAWC,MAAM,CAACC,MAAOT,EAAIkC,OAAOqJ,cAA4B,eAAE7K,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOqJ,cAAe,iBAAkB5K,IAAME,WAAW,wCAAwC,CAACb,EAAIkB,GAAG,0BAA0B,IAAI,IAAI,IACj8B,GAAkB,GCWhB,GAAU,uBAAU,WAG1B,0E,OAIQ,EAAAgB,OAAwB,K,EAkDhC,OAtDkD,oBAM1C,YAAAe,QAAP,WACChD,KAAKiC,OAAS,uBAAUjC,KAAK+P,iBAC7B/P,KAAKgQ,4BAGE,YAAAA,yBAAR,WACC,OAAQhQ,KAAKiQ,6BACZ,KAAK,OAAqBjI,OACpBhI,KAAKiC,OAAOiO,iBAChBlQ,KAAKiC,OAAOiO,eAAiB,kBAE9B,MAED,KAAK,OAAqBjI,MACpBjI,KAAKiC,OAAOqJ,gBAChBtL,KAAKiC,OAAOqJ,cAAgB,kBAE7B,MAED,KAAK,OAAqBpD,OACpBlI,KAAKiC,OAAOuL,gBAChBxN,KAAKiC,OAAOuL,cAAgB,kBAE7B,MAED,KAAK,OAAqBrF,KACpBnI,KAAKiC,OAAOuL,gBAChBxN,KAAKiC,OAAOuL,cAAgB,kBAG7B,QAKH,sBAAW,wBAAS,C,IAApB,WACC,OAAOxN,KAAKiC,OAAOC,SAAW,G,gCAKvB,YAAAiO,uBAAR,SAA+BC,GAC9B,OAAOA,GAKA,YAAAN,2BAAR,aApDe,gBAAd,GAAQjK,O,kDACgB,gBAAxB,GAAQA,MAAM,W,sCA6Cf,gBAFC,mBAAM,eACN,kBAAK,uB,qCAGL,MAID,gBAFC,mBAAM,SAAU,CAAEwK,MAAM,IACxB,kBAAK,2B,yCACuC,MArDzBC,EAAoB,gBADxC,gBACoBA,GAsDrB,EAtDA,CAAkD,UAA7B,MCWrB,IAfgB,uBAAU,WAe1B,uE,OACS,EAAAC,sBAA2C,K,EAKpD,OANuC,oBAG/B,YAAAvN,QAAP,WACChD,KAAKuQ,sBAAqB,kBAAQvQ,KAAKiC,OAAOqJ,gBAJ3BkF,EAAS,gBAb7B,uBAAU,CACVvC,WAAY,CACX,aAAc,MAEfwC,YAAa,CACZxO,OAAQ,CAAE2L,SAAQ,gBAClB8C,uBAAwB,CACvB9C,SAAU,0BAAW,WACpB,OAAO5N,KAAKqP,WAAa,qBAAQrP,KAAKiC,OAAOqJ,cAAetL,KAAKuQ,+BAKhDC,GAMrB,EANA,CAAuC,oBAAO,GAAsB,yBAA/C,MC1BmZ,MCOpa,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIzQ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAEJ,EAAoB,iBAAEI,EAAG,MAAM,CAACG,MAAM,CAAC,UAAU,yBAAyB,CAACH,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,WAAW,YAAY,iBAAiB,gBAAgB,MAAM,CAACH,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAI4Q,eAAe,YAAc,gBAAgB,YAAa,EAAM,aAAe,IAAIpQ,MAAM,CAACC,MAAOT,EAAIkC,OAAOiO,eAAmB,KAAEzP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOiO,eAAgB,OAAQxP,IAAME,WAAW,+BAA+B,CAACT,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,cAAc6O,KAAK,cAAc,CAACpP,EAAIkB,GAAG,sCAAsC,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,OAAO,YAAY,YAAY,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,YAAY,UAAU,sBAAsBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI6Q,gCAAgCrQ,MAAM,CAACC,MAAOT,EAAoB,iBAAEU,SAAS,SAAUC,GAAMX,EAAI8Q,iBAAiBnQ,GAAKE,WAAW,qBAAqB,CAACb,EAAIkB,GAAG,8BAA8B,IAAI,GAAIlB,EAAoB,iBAAEI,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,aAAa,YAAY,kBAAkB,gBAAgB,MAAM,CAACH,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAI+Q,sBAAsB,YAAc,gBAAgB,YAAa,EAAM,aAAe,IAAIvQ,MAAM,CAACC,MAAOT,EAAIkC,OAAOiO,eAAyB,WAAEzP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOiO,eAAgB,aAAcxP,IAAME,WAAW,qCAAqC,CAACT,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,cAAc6O,KAAK,cAAc,CAACpP,EAAIkB,GAAG,qCAAqC,GAAGd,EAAG,gBAAgB,GAAGJ,EAAIsB,MAAM,GAAGtB,EAAIsB,QAC1vD,GAAkB,GCDlB,GAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,GAAG,MAAQ,GAAG,MAAQP,EAAIgR,QAAQ,OAAShR,EAAIiR,oBAAoBnQ,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAAExH,EAAIkR,wBAAwB1J,EAAIC,KAAMD,EAAI2J,OAAQ/Q,EAAG,UAAU,CAACY,IAAI,CAACwG,EAAI2J,MAAMnQ,IAAKwG,EAAIC,KAAK2J,UAAUC,WAAW3K,MAAM1G,EAAIsR,yBAAyB9J,EAAIC,MAAMlH,MAAM,CAAC,KAAOiH,EAAI2J,MAAMI,UAAU/Q,MAAM,CAACC,MAAO+G,EAAIC,KAAKD,EAAI2J,MAAMnQ,KAAMN,SAAS,SAAUC,GAAMX,EAAI2P,KAAKnI,EAAIC,KAAMD,EAAI2J,MAAMnQ,IAAKL,IAAME,WAAW,6BAA6BT,EAAG,OAAO,CAACY,IAAI,CAACwG,EAAI2J,MAAMnQ,IAAKwG,EAAIC,KAAK2J,UAAUC,WAAW3K,MAAM1G,EAAIwR,4BAA4BhK,EAAIC,OAAO,CAACzH,EAAIkB,GAAG,aAAalB,EAAImB,GAAGqG,EAAIC,KAAKD,EAAI2J,MAAMnQ,MAAM,iBAAiB,CAACA,IAAI,aAAaC,GAAG,SAASuG,GAAK,MAAO,CAAExH,EAAIkR,wBAAwB1J,EAAIC,KAAMD,EAAI2J,OAAQ/Q,EAAG,UAAU,CAACY,IAAI,CAACwG,EAAI2J,MAAMnQ,IAAKwG,EAAIC,KAAK2J,UAAUC,WAAW9Q,MAAM,CAAC,KAAOiH,EAAI2J,MAAMI,UAAU/Q,MAAM,CAACC,MAAO+G,EAAIC,KAAKD,EAAI2J,MAAMnQ,KAAMN,SAAS,SAAUC,GAAMX,EAAI2P,KAAKnI,EAAIC,KAAMD,EAAI2J,MAAMnQ,IAAKL,IAAME,WAAW,6BAA6BT,EAAG,OAAO,CAACY,IAAI,CAACwG,EAAI2J,MAAMnQ,IAAKwG,EAAIC,KAAK2J,UAAUC,YAAY,CAACrR,EAAIkB,GAAG,aAAalB,EAAImB,GAAGqG,EAAIC,KAAKD,EAAI2J,MAAMnQ,MAAM,iBAAiB,CAACA,IAAI,gBAAgBC,GAAG,SAASuG,GAAK,MAAO,CAAGA,EAAIC,KAAKgK,SAAYjK,EAAIC,KAAKiK,SAA8K1R,EAAIsB,KAAxKlB,EAAG,IAAI,CAACE,YAAY,8BAA8BC,MAAM,CAAC,KAAO,KAAK,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI2R,WAAWnK,EAAIC,UAAoBD,EAAIC,KAAKgK,SAAWzR,EAAI4R,gBAAgBpK,EAAIC,MAAOrH,EAAG,IAAI,CAACE,YAAY,qDAAqDC,MAAM,CAAC,KAAO,KAAK,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI6R,aAAarK,EAAIC,UAAUzH,EAAIsB,KAAMkG,EAAIC,KAAY,QAAErH,EAAG,IAAI,CAACE,YAAY,kDAAkDC,MAAM,CAAC,KAAO,KAAK,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8R,iBAAiBtK,EAAIC,UAAUzH,EAAIsB,KAAMkG,EAAIC,KAAY,QAAErH,EAAG,IAAI,CAACE,YAAY,oDAAoDC,MAAM,CAAC,KAAO,KAAK,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI+R,aAAavK,EAAIC,UAAUzH,EAAIsB,KAAMkG,EAAIC,KAAKiK,UAAY1R,EAAIgS,cAAcxK,EAAIC,MAAOrH,EAAG,IAAI,CAACE,YAAY,qDAAqDC,MAAM,CAAC,KAAO,KAAK,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIiS,aAAazK,EAAIC,UAAUzH,EAAIsB,KAAMkG,EAAIC,KAAa,SAAErH,EAAG,IAAI,CAACE,YAAY,kDAAkDC,MAAM,CAAC,KAAO,KAAK,UAAU,oBAAoBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIkS,mBAAmB1K,EAAIC,UAAUzH,EAAIsB,YAAYlB,EAAG,MAAM,CAACE,YAAY,eAAe,CAAGN,EAAImS,kBAAgMnS,EAAIsB,KAAjLlB,EAAG,QAAQ,CAACG,MAAM,CAAC,QAAU,UAAU,UAAU,sBAAsBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIoS,oBAAoB,CAACpS,EAAIkB,GAAG,mCAA4C,IAAI,IAC72F,GAAkB,GCQhB,I,UAAU,uBAAU,YAI1B,0E,OAOS,EAAAmR,UAAoB,gBAErB,EAAArB,QAAiD,G,EAkKzD,OA3KwC,oBAWvC,sBAAW,yBAAU,C,IAArB,WACC,OAAO/Q,KAAKgR,mBAAmBrF,QAAO,SAAA0G,GAAU,kBAAAA,EAAOtR,Q,gCAGxD,sBAAW,iCAAkB,C,IAA7B,WAEC,IAAIsG,EAAS,CACZ,CACCtG,IAAK,WACL4H,MAAO,sBACP2J,UAAU,EACVhB,SAAU,UAEX,CACCvQ,IAAK,OACL4H,MAAO,kBACP2J,UAAU,EACVhB,SAAU,QAEX,CACCvQ,IAAK,UACL4H,MAAO,UACP2J,UAAU,IAIZ,OAAOjL,G,gCAGK,YAAAhE,QAAb,W,0HACqB,SAAMrD,KAAKuS,iBAAiBvS,KAAKiC,S,cAAjDuQ,EAAgB,SACpBxS,KAAK+Q,QAAUyB,EAAcC,KAAI,SAAAJ,GAAY,OAAO,iCAAIA,GAAM,CAAEb,SAAS,EAAOC,UAAU,OAEtFzR,KAAK+Q,UACR/Q,KAAKiC,OAAO8O,QAAU/Q,KAAK+Q,QAAQ0B,KAAI,SAAAJ,GACtC,MAAO,CACNK,aAAcL,EAAOlB,SACrBzP,MAAO2Q,EAAOhM,U,YAMV,YAAA4K,wBAAR,SAAgCoB,EAA6CnB,GAC5E,OAAQmB,EAAOb,SAAWN,EAAMoB,UAAaD,EAAOZ,UAGrD,sBAAY,gCAAiB,C,IAA7B,WACC,OAAOzR,KAAK+Q,QAAQ3C,MAAK,SAAAiE,GAAU,OAAAA,EAAA,a,gCAG5B,YAAAN,cAAR,SAAsBM,GAAtB,WACC,OAAwB,OAApBA,EAAOlB,eAAyCvN,IAApByO,EAAOlB,WAA0B9D,MAAMgF,EAAOlB,cAIrEnR,KAAK+Q,QAAQpF,QAAO,SAAAgH,GAAW,QACtC,OAAAC,SAASD,EAAYxB,SAASC,cAAgBwB,UAAU,EAAe,QAAf,EAAAP,EAAOlB,gBAAQ,eAAEC,WAAW,uBAAI,EAAKgB,eAC5F3I,OAAS,KAOJ4D,MAAMuF,SAASP,EAAOlB,SAASC,eAGhC,YAAAO,gBAAR,SAAwBU,GACvB,OAAOrS,KAAK+R,cAAcM,IAAWA,EAAOhM,OAASrG,KAAKiC,OAAO8O,QAAQhN,MAAK,SAAA8O,GAAgB,OAAAA,EAAaH,eAAiBL,EAA9B,YAA+C3Q,OAGtI,YAAAoR,uBAAR,SAA+BT,GAC9B,OAAIA,EAAOZ,SACHzR,KAAKqR,yBAAyBgB,GAG9BrS,KAAKuR,4BAA4Bc,IAIlC,YAAAhB,yBAAR,SAAiCgB,GAChC,OAAQrS,KAAK+R,cAAcM,GAAoB,GAAV,SAG9B,YAAAd,4BAAR,SAAoCc,GAApC,WACKU,EAAsB/S,KAAK+Q,QAAQpF,QAAO,SAAAgH,GAC7C,OAAyB,IAAzBA,EAAYlB,YAGb,OAAIsB,EAAoBtJ,OAAS,EACzB,GAIDsJ,EAAoB3E,MAAK,SAAA4E,GAAkB,QACjD,OAAAJ,UAAU,EAA2B,QAA3B,EAAAI,EAAmB7B,gBAAQ,eAAEC,WAAW,uBAAI,EAAKgB,cAAeQ,SAASP,EAAOlB,SAASC,eAChG,WAAa,IAGV,YAAAa,mBAAR,SAA2BI,GAC1BA,EAAOZ,UAAW,EAClBzR,KAAK+Q,QAAQkC,OAAOZ,IAGP,YAAAL,aAAd,SAA2BK,G,wCAA8CpP,SAAO,W,+DAC3E,SAAMjD,KAAKkT,sBAAsB,CACpCC,SAAUnT,KAAKiC,OAAOC,SACtBkR,SAAO,EAAEpT,KAAKiC,OAAOW,QAAO,uBAAI,GAChCuO,SAAUyB,SAASP,EAAOlB,SAASC,YACnC/K,KAAMgM,EAAOhM,Q,cAJV,WAOHrG,KAAKiC,OAAO8O,QAAQlH,KAAK,CAAC6I,aAAcL,EAAOlB,SAAUzP,MAAO2Q,EAAOhM,OACvEgM,EAAOZ,UAAW,G,YAIN,YAAAG,aAAd,SAA2BS,G,wCAA8CpP,SAAO,W,+DAC3E,SAAMjD,KAAKqT,mBAAmB,CACjCF,SAAUnT,KAAKiC,OAAOC,SACtBkR,SAAO,EAAEpT,KAAKiC,OAAOW,QAAO,uBAAI,GAChCuO,SAAUyB,SAASP,EAAOlB,SAASC,YACnC/K,KAAMgM,EAAOhM,Q,cAJV,WAOHrG,KAAKiC,OAAO8O,QAAQhN,MAAK,SAAAuP,GAAkB,OAAAA,EAAeZ,eAAiBL,EAAhC,YAAiD3Q,MAAQ2Q,EAAOhM,KAC3GgM,EAAOb,SAAU,G,YAIX,YAAAE,WAAR,SAAmBW,GAClBA,EAAOb,SAAU,GAGJ,YAAAM,aAAd,SAA2BO,G,wCAA8CpP,SAAO,W,+DAC3E,SAAMjD,KAAKuT,mBAAmB,CACjCJ,SAAUnT,KAAKiC,OAAOC,SACtBkR,SAAO,EAAEpT,KAAKiC,OAAOW,QAAO,uBAAI,GAChCuO,SAAUyB,SAASP,EAAOlB,SAASC,YACnC/K,KAAMgM,EAAOhM,Q,cAJV,WAOHrG,KAAKiC,OAAO8O,QAAQyC,aAAY,SAAAF,GAAkB,OAAAA,EAAeZ,eAAiBL,EAAhC,YAClDrS,KAAK+Q,QAAQkC,OAAOZ,I,YAId,YAAAR,iBAAR,SAAyBQ,GACxBA,EAAOb,SAAU,EACjBa,EAAOhM,KAAOrG,KAAKiC,OAAO8O,QAAQhN,MAAK,SAAA8O,GAAgB,OAAAA,EAAaH,eAAiBL,EAA9B,YAA+C3Q,OAG/F,YAAAyQ,eAAR,WACC,IAAIsB,EAAY,CAACpN,KAAM,aAAc8K,SAAU,KAAMK,SAAS,EAAOC,UAAU,GAI/E,OAHAzR,KAAK+Q,QAAQlH,KAAK4J,GAGXA,GAvKQ,gBAAf,GAAQ9N,Q,uCACO,gBAAf,GAAQA,Q,4CACO,gBAAf,GAAQA,Q,yCACO,gBAAf,GAAQA,Q,yCALW+N,EAAU,gBAF9B,uBAAU,KAEUA,GA2KrB,EA3KA,CAAwC,oBAAO,GAAsB,wBAAhD,MCboZ,MCQra,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCNT,GAAU,uBAAU,WAgB1B,0E,OAMS,EAAAC,uBAA6C,KAC7C,EAAA9C,kBAA4B,E,EAsCrC,OA7CwC,oBAShC,YAAA7N,QAAP,WACChD,KAAK2T,uBAAsB,kBAAQ3T,KAAKiC,OAAOiO,gBAC/ClQ,KAAK6Q,iBAAgE,IAA7C7Q,KAAKiC,OAAOiO,eAAe0D,eAGpD,sBAAY,6BAAc,C,IAA1B,WACC,MAAO,CAAC,UAAW,SAAU,MAAO,SAAU,OAAQ,Y,gCAGvD,sBAAY,oCAAqB,C,IAAjC,WACC,MAAO,CAAC,UAAW,UAAW,OAAQ,SAAU,OAAQ,Y,gCAGzD,sBAAY,+BAAgB,C,IAA5B,sBACC,IAAK5T,KAAK0K,SACT,OAAO,EAGR,IAAMe,EAAwBzL,KAAK8D,YAAYC,MAAK,SAAAC,GAAK,OAAAA,EAAEZ,WAAa,EAAf,YAEzD,IAAKqI,EACJ,OAAO,EAGR,IAAMrH,EAAyBpE,KAAKiE,YAAYF,MAAK,SAAAG,GAAM,OAAAA,EAAGC,cAAgBsH,EAAnB,gBAE3D,QAAKrH,GAIEA,EAAWyP,kB,gCAGX,YAAAjD,4BAAR,WACC5Q,KAAKiC,OAAOiO,eAAe0D,cAAgB5T,KAAK6Q,iBAAmB,GAAK,GA1CjD,gBAAvB,kBAAK,CAAEhD,KAAMV,U,+BAEC,gBAAd,GAAQtH,O,kCACM,gBAAd,GAAQA,O,kCAJWiO,EAAU,gBAd9B,uBAAU,CACV7F,WAAY,CACX,aAAc,KACd,cAAe,IAEhBwC,YAAa,CACZxO,OAAQ,CAAE2L,SAAQ,gBAClB8C,uBAAwB,CACvB9C,SAAU,0BAAW,WACpB,OAAO5N,KAAKqP,WAAa,qBAAQrP,KAAKiC,OAAOiO,eAAgBlQ,KAAK2T,gCAKjDG,GA6CrB,EA7CA,CAAwC,oBAAO,GAAsB,wBAAhD,MC7BoZ,MCOra,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/T,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,UAAU,YAAY,QAAQ,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,QAAQ,UAAU,kBAAkBC,MAAM,CAACC,MAAOT,EAAIkC,OAAOuL,cAA0B,aAAE/M,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOuL,cAAe,eAAgB9M,IAAME,WAAW,sCAAsC,CAACb,EAAIkB,GAAG,0BAA0B,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,SAAS,YAAY,QAAQ,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,SAASC,MAAM,CAACC,MAAOT,EAAIkC,OAAOuL,cAA0B,aAAE/M,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOuL,cAAe,eAAgB9M,IAAME,WAAW,sCAAsC,CAACb,EAAIkB,GAAG,0BAA0B,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,yBAAyB,YAAY,cAAc,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,eAAeC,MAAM,CAACC,MAAOT,EAAIkC,OAAOuL,cAAgC,mBAAE/M,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOuL,cAAe,qBAAsB9M,IAAME,WAAW,4CAA4C,CAACb,EAAIkB,GAAG,0BAA0B,IAAI,GAAIlB,EAAIkC,OAAOuL,cAAgC,mBAAErN,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,oBAAoB,YAAY,0BAA0B,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,2BAA2BC,MAAM,CAACC,MAAOT,EAAIkC,OAAOuL,cAAqC,wBAAE/M,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAIkC,OAAOuL,cAAe,0BAA2B9M,IAAME,WAAW,iDAAiD,CAACb,EAAIkB,GAAG,0BAA0B,IAAI,GAAGlB,EAAIsB,MAAM,IACp3D,GAAkB,GCyBtB,IAfgB,uBAAU,WAe1B,uE,OACS,EAAA0S,sBAA2C,K,EAKpD,OANuC,oBAG/B,YAAA/Q,QAAP,WACChD,KAAK+T,sBAAqB,kBAAQ/T,KAAKiC,OAAOuL,gBAJ3BwG,EAAS,gBAb7B,uBAAU,CACV/F,WAAY,CACX,aAAc,MAEfwC,YAAa,CACZxO,OAAQ,CAAE2L,SAAQ,gBAClB8C,uBAAwB,CACvB9C,SAAU,0BAAW,WACpB,OAAO5N,KAAKqP,WAAa,qBAAQrP,KAAKiC,OAAOuL,cAAexN,KAAK+T,+BAKhDC,GAMrB,EANA,CAAuC,oBAAO,GAAsB,yBAA/C,MC1BmZ,MCOpa,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCMT,GAAU,uBAAU,WAEpBC,IAAqB,KAC1B,EAAC,OAAqBhM,OAAQ,GAC9B,EAAC,OAAqBD,QAAS,GAC/B,EAAC,OAAqBE,QAAS,GAC/B,EAAC,OAAqBC,MAAO,GAC7B,GA4BD,0E,OAiBS,EAAA+L,sBAAgC,EAChC,EAAAjS,OAAwB,KACxB,EAAAyG,WAAqB,GACrB,EAAA+G,eAAgC,KAChC,EAAA3L,YAA+B,GAwH/B,EAAAqQ,eAAiB,uBACxB,SACCC,EACA1L,EACA6G,GAA0B,+BACxBtM,SAAO,W,+DAET,OADAmR,EAAU1L,WAAaA,EACvB,GAAM1I,KAAKqU,cAAc9E,I,cAAzB,S,aAED,kB,EAsEF,OA5N6C,oBAAxB+E,EAuBN,YAAAtR,QAAd,W,kCAAyBC,SAAO,W,4EAC/BjD,KAAKiC,OAAM,kBAAQjC,KAAK+P,iBACxB/P,KAAKuU,kCAEAvU,KAAKoP,qBAAuBpP,KAAKqP,YAAcrP,KAAKwU,2BAClDC,EAA2E,CAAEjK,KAAM,EAAGC,SAAU,KAEtGzK,KAAK0U,yBAAyBD,GAE9B,GAAMzU,KAAK2U,iCAAiCF,KALzC,M,OAKH,SACAzU,KAAKuU,iC,wBAGFvU,KAAKqP,WAAarP,KAAKkD,sBAC1B,GAAMlD,KAAKmD,UAAUnD,KAAKiC,OAAOmB,WAD9B,M,OACH,SACApD,KAAKuU,iC,wBAGNvU,KAAK4U,2BACL5U,KAAKuM,cAAa,G,YAGX,YAAAgI,+BAAR,sBACCvU,KAAK8D,YAAc9D,KAAK6U,qBAAqBlJ,QAC5C,SAAA3H,GACC,SAAK8Q,6BAA6B1G,MAAK,SAAAlK,GAAM,OAAAA,EAAGC,eAAiBH,EAApB,mBAC3C,EAAK0E,YAAc1E,EAAEtC,MAAMuL,cAAcK,SAAS,EAAK5E,WAAWuE,oBAIvE,sBAAY,2CAA4B,C,IAAxC,WACC,OAAQjN,KAAKiC,OAAO4J,cACnB,KAAK,OAAW5D,MACf,OAAOjI,KAAK+U,qBAAqBpJ,QAAO,SAAAzH,GAAM,WAAAA,EAAGoK,kBAClD,KAAK,OAAWnD,MACf,OAAOnL,KAAK+U,qBAAqBpJ,QAAO,SAAAzH,GAAM,WAAAA,EAAGqK,aAClD,QACC,OAAOvO,KAAK+U,qBAAqBpJ,QAAO,SAAAzH,GAAM,WAAAA,EAAGmK,gB,gCAIpD,sBAAY,wCAAyB,C,IAArC,WACC,OAAOrO,KAAK8D,YAAY2F,OAAS,K,gCAGlC,sBAAY,oCAAqB,C,IAAjC,sBACC,YAA0E7F,IAAnE5D,KAAK8D,YAAYC,MAAK,SAAAC,GAAK,OAAAA,EAAEZ,UAAY,EAAKnB,OAAnB,a,gCAG3B,YAAA2S,yBAAR,sBACC5U,KAAKyP,eAAiBzP,KAAK6U,qBAAqB9Q,MAAK,SAAAC,GAAK,OAAAA,EAAEZ,WAAa,EAAKnB,OAApB,aAG3D,sBAAY,wBAAS,C,IAArB,WACC,OAAOjC,KAAKiC,OAAOC,SAAW,G,gCAG/B,sBAAY,oBAAK,C,IAAjB,WACC,IAAM8S,EAAa,OAAqBhV,KAAKiQ,6BAE7C,OAAOjQ,KAAKqP,UACT,WAAW2F,EAAU,YAAYhV,KAAK+P,gBAAgBrO,MAAK,IAC3D,UAAUsT,EAAU,W,gCAGxB,sBAAY,kCAAmB,C,IAA/B,WACC,OAA8B,OAAvBhV,KAAK2K,e,gCAGL,YAAA2E,qBAAR,WACCtP,KAAKiC,OAAOmB,SAAWpD,KAAKyP,gBAAkBzP,KAAKyP,eAAerM,UAGnE,sBAAY,mCAAoB,C,IAAhC,WACC,OAAO6Q,GAAsBjU,KAAKiQ,8B,gCAG3B,YAAAJ,wBAAR,SAAgCoF,GAC/BjV,KAAKkU,qBAAuBe,GAGrB,YAAAnF,2BAAR,SAAmC7N,GAClCjC,KAAKiC,OAAM,iCACPA,GAAM,CACTP,MAAO1B,KAAKiC,OAAOP,MACnB0B,SAAUpD,KAAKiC,OAAOmB,SACtBjB,OAAQnC,KAAKiC,OAAOE,UAId,YAAAN,kBAAR,WACC7B,KAAK2M,mCAAkC,IAGxC,sBAAY,8BAAe,C,IAA3B,WACC,OAAO3M,KAAKkV,GAAGjT,OAAOmO,UAAapQ,KAAKkV,GAAGC,cAAc/E,UAAYpQ,KAAKkU,sB,gCAG7D,YAAAlF,gBAAd,W,kCAAiC/L,SAAO,W,sEAElCjD,KAAKiC,OAAOG,QAAiC,IAAvBpC,KAAKiC,OAAOG,SACtCpC,KAAKiC,OAAOG,QAAU,GAGnBpC,KAAKqP,UACR,GAAMrP,KAAKoV,aAAapV,KAAKiC,SAD1B,M,cACH,S,aAEA,SAAMjC,KAAKqV,UAAUrV,KAAKiC,S,OAA1B,S,wBAGDjC,KAAK2M,mCAAkC,G,YAGhC,YAAA6C,mBAAR,SAA2B9G,EAAoB6G,GAC9CA,GAAQ,GACRvP,KAAKmU,eAAenU,KAAM0I,EAAY6G,IAezB,YAAA8E,cAAd,SAA4B9E,G,kCAA6BtM,SAAO,W,4EAC3DjD,KAAK0I,YACF+L,EAA2E,CAChFjK,KAAM,EACNC,SAAU,IACV/B,WAAY1I,KAAK0I,YAGlB1I,KAAK0U,yBAAyBD,GAE9B,GAAMzU,KAAK2U,iCAAiCF,KATzC,M,OASH,S,wBAGDzU,KAAKuU,iCAELhF,GAAQ,G,YAGD,YAAAmF,yBAAR,SAAiCD,GAChC,OAAQzU,KAAKiC,OAAO4J,cACnB,KAAK,OAAW7D,OACfyM,EAAoCa,gBAAiB,EACrD,MAED,KAAK,OAAWrN,MACfwM,EAAoCc,eAAgB,EACpD,MAED,KAAK,OAAWpK,MACfsJ,EAAoCe,eAAgB,EACpD,QAKH,sBAAY,yBAAU,C,IAAtB,sBACOpR,EAAyBpE,KAAK+U,qBAAqBhR,MACxD,SAAAG,GAAE,MAAI,OAAAA,EAAGC,eAAmC,QAAvB,EAAI,EAAKsL,sBAAc,eAAEtL,iBAG/C,IAAKC,EACJ,OAAO,EAGR,OAAQpE,KAAKiC,OAAO4J,cACnB,KAAK,OAAW7D,OACf,OAAO5D,EAAWC,mBACnB,KAAK,OAAW4D,MACf,OAAO7D,EAAWqR,kBACnB,KAAK,OAAWtK,MACf,OAAO/G,EAAWsR,kBAGpB,OAAO,G,gCAGR,sBAAY,6BAAc,C,IAA1B,sBACOtR,EAAyBpE,KAAK+U,qBAAqBhR,MACxD,SAAAG,GAAE,MAAI,OAAAA,EAAGC,eAAmC,QAAvB,EAAI,EAAKsL,sBAAc,eAAEtL,iBAG/C,QAAKC,GAIEA,EAAWE,sB,gCAzNT,gBAAT,e,mCAEe,gBAAf,GAAQqB,Q,gCACO,gBAAf,GAAQA,Q,gCACO,gBAAf,GAAQA,Q,uDAGO,gBAAf,GAAQA,Q,mCACS,gBAAjB,GAAQC,U,wDACM,gBAAd,GAAQC,O,kDACM,gBAAd,GAAQA,O,oCACgB,gBAAxB,GAAQA,MAAM,W,sCACA,gBAAd,GAAQA,O,kDACqB,gBAA7B,GAAQA,MAAM,gB,2CACe,gBAA7B,GAAQA,MAAM,gB,2CAfKyO,EAAe,gBA1BnC,uBAAU,CACVrG,WAAY,CACX,aAAc,KACd,wBAAyB,KAE1BwC,YAAa,CACZxO,OAAQ,CACPmB,SAAU,CAAEwK,SAAQ,eAAE+H,SAAU,uBAAS,IACzCjU,MAAO,CAAEkM,SAAQ,gBACjBzL,OAAQ,CAAEyL,SAAQ,eAAE+H,SAAU,wBAAU,GAAIC,SAAU,uBAAS,aAC/DxT,OAAQ,CAAEuT,SAAU,wBAAU,GAAIC,SAAU,uBAAS,cAEtDT,cAAe,CACdvH,SAAU,0BAAW,W,QACpB,OACC5N,KAAKiC,QACLjC,KAAKiC,OAAOP,QAAU1B,KAAK+P,gBAAgBrO,OAC3C1B,KAAKiC,OAAOmB,WAAapD,KAAK+P,gBAAgB3M,UAC9CpD,KAAKiC,OAAOE,OAAOiP,aAAepR,KAAK+P,gBAAgB5N,OAAOiP,aAC7D,EAAApR,KAAKiC,OAAOI,YAAU,uBAAI,OAAQ,EAACrC,KAAK+P,gBAAgB1N,WAAU,uBAAI,MACvErC,KAAKiC,OAAOG,OAAOgP,aAAepR,KAAK+P,gBAAgB3N,OAAOgP,mBAM9CkD,GA4NrB,EA5NA,CAA6C,oBAAO,wBAA/B,MC3DyZ,MCQ1a,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIvU,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAiC,8BAAEI,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,GAAG,KAAO,KAAK,SAAW,GAAG,eAAe,uBAAuB,uBAAuB,GAAG,kBAAkB,GAAG,UAAU,4BAA4B,OAAS,IAAIO,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,eAAeC,GAAG,WAAW,MAAO,CAACb,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,SAAS,UAAU,yBAAyBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8V,8BAA8B,CAAC9V,EAAIkB,GAAG,0BAA0Bd,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,YAAY,UAAU,gBAAgBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI+V,iCAAiC,CAAC/V,EAAIkB,GAAG,4BAA4BK,OAAM,IAAO,MAAK,EAAM,aAAa,CAACnB,EAAG,WAAW,CAACE,YAAY,4BAA4B8O,KAAK,gBAAgB,CAAChP,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,IAAI,CAACE,YAAY,kCAAkCF,EAAG,KAAK,CAACJ,EAAIkB,GAAG,UAAUlB,EAAImB,GAAGnB,EAAIgW,wBAAwB5V,EAAG,KAAK,CAACJ,EAAIkB,GAAG,6CAA6ClB,EAAImB,GAAGnB,EAAIgW,iBAAiB,UAAU5V,EAAG,SAAS,CAACJ,EAAIkB,GAAG,IAAKlB,EAAImB,GAAGnB,EAAIkC,OAAOP,OAAO,WAAY,GAAG3B,EAAIsB,MAC3qC,GAAkB,GCKhB,GAAU,uBAAU,WAG1B,4B,+CAmBA,OAnBoD,oBAO3C,YAAAyU,4BAAR,WACC9V,KAAK0N,qCAAoC,IAG5B,YAAAmI,yBAAd,W,kCAA0C5S,SAAO,W,+DAChD,SAAMjD,KAAKgW,aAAahW,KAAKiC,S,cAA7B,SACAjC,KAAK0N,qCAAoC,G,YAG1C,sBAAY,8BAAe,C,IAA3B,WACC,OAAO,OAAqB1N,KAAKiQ,6BAA6BhD,e,gCAhB/C,gBAAf,GAAQtH,Q,mCACS,gBAAjB,GAAQC,U,0DACM,gBAAd,GAAQC,O,kDACM,gBAAd,GAAQA,O,oDACM,gBAAd,GAAQA,O,6BALWoQ,EAAsB,gBAD1C,uBAAU,KACUA,GAmBrB,EAnBA,CAAoD,UAA/B,MCTga,MCOjb,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIlW,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAW,QAAEI,EAAG,MAAM,CAACG,MAAM,CAAC,UAAU,iBAAiB,CAACH,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,SAAS,YAAc,YAAY,IAAM,MAAM,UAAU,UAAUqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIiH,kBAAkBpF,KAAUrB,MAAM,CAACC,MAAOT,EAAuB,oBAAEU,SAAS,SAAUC,GAAMX,EAAIkH,oBAAoBvG,GAAKE,WAAW,0BAA0B,GAAIb,EAAqB,kBAAEI,EAAG,QAAQ,CAACG,MAAM,CAAC,KAAO,SAAS,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,UAAU,UAAU,cAAcqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAImH,qBAAqB,CAACnH,EAAIkB,GAAG,iBAAiB,GAAGlB,EAAIsB,MAAM,GAAGlB,EAAG,wBAAwB,CAACE,YAAY,cAAcC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAIoH,6BAA6B,CAAChH,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQP,EAAImW,iBAAiB,OAASnW,EAAIsH,OAAO,MAAQ,GAAG,eAAe,OAAO,KAAOtH,EAAIuH,aAAazG,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,gBAAgBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,IAAI,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,mCAAmCE,UAAU,CAAC,OAAQ,EAAK,MAAO,EAAK,aAAY,KAAQnG,YAAY,yBAAyBC,MAAM,CAAC,MAAQ,OAAO,UAAU,eAAeqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI4H,gBAAgBJ,EAAIC,UAAUrH,EAAG,IAAI,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oCAAoCE,UAAU,CAAC,OAAQ,EAAK,OAAQ,EAAK,aAAY,KAAQnG,YAAY,+BAA+BC,MAAM,CAAC,MAAQ,SAAS,UAAU,iBAAiBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8H,kBAAkBN,EAAIC,aAAezH,EAAI+H,mBAAgN,KAA5L,CAAC/G,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,GAAIvB,EAAqB,kBAAEI,EAAG,UAAU,CAACG,MAAM,CAAC,QAAUP,EAAIoW,kBAAkB,KAAO,KAAK,OAAS,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,eAAe,QAAQtV,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,eAAeC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACF,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACE,YAAY,OAAO,CAACN,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAIqW,qBAAsBrW,EAAI4K,cAAyB,YAAExK,EAAG,IAAI,CAACE,YAAY,kDAAkDC,MAAM,CAAC,GAAK,iBAAiBP,EAAIsB,KAAMtB,EAAI4K,cAAyB,YAAExK,EAAG,YAAY,CAACG,MAAM,CAAC,OAAS,cAAc,SAAW,QAAQ,QAAU,YAAY,CAACH,EAAG,KAAK,CAACE,YAAY,iBAAiB,CAACN,EAAIkB,GAAG,cAAcd,EAAG,IAAI,CAACJ,EAAIkB,GAAG,+GAA+GlB,EAAIsB,KAAKlB,EAAG,SAAS,CAACE,YAAY,QAAQC,MAAM,CAAC,KAAO,SAAS,UAAU,2BAA2BqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIsW,+BAA+B,CAACtW,EAAIkB,GAAG,8BAA8B,KAAKK,OAAM,GAAM,CAACP,IAAI,eAAeC,GAAG,WAAW,MAAO,CAACb,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAAS9F,MAAwB,IAAjBT,EAAIY,SAAgBC,WAAW,mBAAmBN,MAAM,CAAC,QAAU,UAAU,UAAU,cAAc,SAAWP,EAAIuW,mBAAmBrB,SAAStT,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIwW,2BAA2B,CAACxW,EAAIkB,GAAG,4BAA4Bd,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,YAAY,UAAU,iBAAiBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIsW,+BAA+B,CAACtW,EAAIkB,GAAG,gCAAgCK,OAAM,IAAO,MAAK,EAAM,aAAa,CAACnB,EAAG,SAAS,CAACE,YAAY,iBAAiBC,MAAM,CAAC,KAAO,GAAG,SAAW,IAAIC,MAAM,CAACC,MAAOT,EAAY,SAAEU,SAAS,SAAUC,GAAMX,EAAIY,SAASD,GAAKE,WAAW,aAAa,CAACT,EAAG,QAAQ,CAACE,YAAY,OAAOC,MAAM,CAAC,OAAS,IAAIO,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACb,EAAG,IAAI,CAACE,YAAY,6BAA6BN,EAAIkB,GAAG,8CAA8CK,OAAM,IAAO,MAAK,EAAM,aAAa,CAACnB,EAAG,cAAc,CAACG,MAAM,CAAC,UAAU,eAAeqB,GAAG,CAAC,+BAA+B,SAASC,GAAQ,OAAO7B,EAAIyW,gCAAgC5U,IAAS,mBAAmB,SAASA,GAAQ,OAAO7B,EAAI0W,iCAAiC,GAAIzW,KAAkB,cAAEG,EAAG,QAAQ,CAACG,MAAM,CAAC,SAAWP,EAAI2W,oBAAoB,KAAO,IAAI7V,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACb,EAAG,OAAO,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,oCAAoCE,UAAU,CAAC,OAAQ,EAAK,OAAQ,EAAK,aAAY,KAAQnG,YAAY,aAAaC,MAAM,CAAC,MAAQP,EAAI4W,uBAAuB,CAACxW,EAAG,IAAI,CAACE,YAAY,gBAAgBN,EAAIkB,GAAG,wDAAwDK,OAAM,IAAO,MAAK,EAAM,YAAY,CAACnB,EAAG,cAAc,GAAGJ,EAAIsB,KAAKtB,EAAIwB,GAAIxB,EAAsB,oBAAE,SAASyB,GAAmB,OAAOrB,EAAG,2BAA2B,CAACY,IAAIS,EAAkBlB,MAAM,CAAC,iBAAkB,EAAM,QAAUP,EAAIY,WAAaa,GAAqBzB,EAAI6W,cAAgB,EAAI,GAAG,qBAAuBpV,QAAuBrB,EAAG,QAAQ,CAACU,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,QAAQC,GAAG,WAAW,MAAO,CAACb,EAAG,OAAO,CAACiG,WAAW,CAAC,CAACC,KAAK,YAAYC,QAAQ,0BAA0B9F,MAAOT,EAAqB,kBAAEa,WAAW,oBAAoB4F,UAAU,CAAC,OAAQ,EAAK,OAAQ,KAAQC,MAAM,CAAE,iBAAkB1G,EAAI8W,cAAevW,MAAM,CAAC,QAAU,YAAY,CAACH,EAAG,IAAI,CAACE,YAAY,gBAAgBN,EAAIkB,GAAG,sCAAsCd,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,cAAc,CAACP,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAI+W,WAAWlQ,sBAAsB,KAAKtF,OAAM,IAAO,MAAK,EAAM,aAAa,CAACnB,EAAG,oBAAoB,CAACE,YAAY,gBAAgBC,MAAM,CAAC,UAAY,GAAG,YAAa,EAAM,UAAU,qBAAqB,iBAAmBP,EAAIgX,qBAAqB,IAAI,IAAI,GAAGhX,EAAIsB,KAAKlB,EAAG,sBAAsB,CAACG,MAAM,CAAC,aAAaP,EAAIiX,gBAAgB,UAAU,uBAAuBrV,GAAG,CAAC,cAAc,SAASC,GAAQ,OAAO7B,EAAIkX,8BAA8B,GAAGlX,EAAIsB,MAC1kM,GAAkB,G,mCCDlB,GAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAa,UAAEI,EAAG,UAAU,CAACG,MAAM,CAAC,QAAU,GAAG,KAAO,KAAK,SAAW,GAAG,eAAe,uBAAuB,uBAAuB,GAAG,kBAAkB,GAAG,OAAS,GAAG,UAAU,uBAAuBO,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,eAAeC,GAAG,WAAW,MAAO,CAACb,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,SAAS,UAAU,yBAAyBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8V,8BAA8B,CAAC9V,EAAIkB,GAAG,0BAA0Bd,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,YAAY,UAAU,gBAAgBqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI+V,iCAAiC,CAAC/V,EAAIkB,GAAG,4BAA4BK,OAAM,IAAO,MAAK,EAAM,aAAa,CAACnB,EAAG,WAAW,CAACE,YAAY,4BAA4B8O,KAAK,gBAAgB,CAAChP,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,IAAI,CAACE,YAAY,kCAAkCF,EAAG,KAAK,CAACJ,EAAIkB,GAAG,uBAAuBd,EAAG,KAAK,CAACJ,EAAIkB,GAAG,0DAA0Dd,EAAG,SAAS,CAACJ,EAAIkB,GAAG,IAAKlB,EAAImB,GAAGnB,EAAI4K,cAAcjJ,OAAO,UAAWvB,EAAG,KAAK,CAACE,YAAY,QAAQ,CAACN,EAAIkB,GAAG,uBAAuBd,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAIkB,GAAG,oDAAoDd,EAAG,KAAK,CAACJ,EAAIkB,GAAG,mDAAmDd,EAAG,KAAK,CAACJ,EAAIkB,GAAG,kDAAkDd,EAAG,KAAK,CAACJ,EAAIkB,GAAG,oDAAoDd,EAAG,KAAK,CAACJ,EAAIkB,GAAG,sDAAsD,GAAGlB,EAAIsB,MAChgD,GAAkB,GCKhB,GAAU,uBAAU,WAG1B,4B,+CAmBA,OAnB+C,oBAOtC,YAAAyU,4BAAR,WACC9V,KAAKkX,cAGQ,YAAArB,yBAAd,W,kCAA0C5S,SAAO,W,+DAChD,SAAMjD,KAAKmX,aAAanX,KAAK2K,cAAcvH,W,OAC3C,OADA,SACA,GAAMpD,KAAKoX,oBAAoB,O,cAA/B,SACApX,KAAKkX,a,YAIE,YAAAA,WAAR,aAjByC,gBAAxC,kBAAK,CAAErJ,KAAME,QAASH,UAAU,K,gCAEjB,gBAAf,GAAQjI,Q,mCACO,gBAAf,GAAQA,Q,0CACM,gBAAd,GAAQE,O,oCAaT,gBADC,kBAAK,gB,yBACuB,MAlBTwR,EAAiB,gBADrC,uBAAU,KACUA,GAmBrB,EAnBA,CAA+C,UAA1B,MCT2Z,MCO5a,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAItX,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,wBAAwB,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,QAAQ,CAACA,EAAG,SAAS,CAACG,MAAM,CAAC,OAAU,UAAaP,EAAI0P,eAAuB,SAAI,WAAY,eAAe,OAAO,CAACtP,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,YAAY,QAAQ,gBAAgB,MAAM,CAACH,EAAG,WAAW,CAACgP,KAAK,SAAS,CAACpP,EAAIkB,GAAG,0CAA0Cd,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,SAASd,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,QAAQ,YAAc,SAASC,MAAM,CAACC,MAAOT,EAAI0P,eAAoB,MAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,QAAS/O,IAAME,WAAW,2BAA2B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,YAAY,OAAO,gBAAgB,MAAM,CAACH,EAAG,WAAW,CAACgP,KAAK,SAAS,CAACpP,EAAIkB,GAAG,yCAAyCd,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,SAASd,EAAG,mBAAmB,CAACE,YAAY,yBAAyBC,MAAM,CAAC,OAAS,SAAUgX,GAAS,OAAOA,EAAMC,KAAO5V,GAAG,CAAC,mBAAmB5B,EAAIyX,2BAA2BjX,MAAM,CAACC,MAAOT,EAAI0P,eAAsB,QAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,UAAW/O,IAAME,WAAW,6BAA6B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,YAAY,OAAO,gBAAgB,MAAM,CAACH,EAAG,WAAW,CAACgP,KAAK,SAAS,CAACpP,EAAIkB,GAAG,yCAAyCd,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIkB,GAAG,SAASd,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAIkE,YAAY,YAAc,SAAS,MAAQ,QAAQ,OAAS,SAAUG,GAAc,OAAOA,EAAWD,eAAiB5D,MAAM,CAACC,MAAOT,EAAI0P,eAA2B,aAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,eAAgB/O,IAAME,WAAW,gCAAgC,CAACT,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,cAAc6O,KAAK,cAAc,CAACpP,EAAIkB,GAAG,oCAAoC,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,QAAQ,YAAY,OAAO,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,OAAO,YAAc,OAAO,SAAWP,EAAI0X,wBAAwBlX,MAAM,CAACC,MAAOT,EAAI0P,eAAmB,KAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,OAAQ/O,IAAME,WAAW,0BAA0B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,QAAQ,YAAY,OAAO,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,OAAO,YAAc,OAAO,KAAO,SAAS,SAAWP,EAAI0X,wBAAwBlX,MAAM,CAACC,MAAOT,EAAI0P,eAAmB,KAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,OAAQ/O,IAAME,WAAW,0BAA0B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,YAAY,YAAY,WAAW,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,WAAW,YAAc,WAAW,SAAWP,EAAI0X,wBAAwBlX,MAAM,CAACC,MAAOT,EAAI0P,eAAuB,SAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,WAAY/O,IAAME,WAAW,8BAA8B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,YAAY,YAAY,WAAW,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,WAAW,YAAc,WAAW,KAAO,WAAW,SAAWP,EAAI0X,wBAAwBlX,MAAM,CAACC,MAAOT,EAAI0P,eAAuB,SAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,WAAY/O,IAAME,WAAW,8BAA8B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQP,EAAI2X,gBAAgB,YAAY,aAAa,gBAAgB,IAAI,UAAU,2BAA2B,CAACvX,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,aAAa,YAAcP,EAAI4X,sBAAsB,MAAQ5X,EAAIsC,YAAYV,GAAG,CAAC,MAAQ5B,EAAI6X,qBAAqB,IAAI,GAAGzX,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,kBAAkB,YAAY,iBAAiB,gBAAgB,MAAM,CAACH,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAI8X,qBAAqB,MAAQ,QAAQ,YAAc,SAAS,aAAe,GAAG,UAAU,yBAAyBlW,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI+X,gCAAgCvX,MAAM,CAACC,MAAOT,EAAiB,cAAEU,SAAS,SAAUC,GAAMX,EAAIgY,cAAcrX,GAAKE,WAAW,kBAAkB,CAACT,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,cAAc6O,KAAK,cAAc,CAACpP,EAAIkB,GAAG,6CAA6C,IAAI,IAAI,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,OAAS,eAAe,eAAe,OAAO,CAACH,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,YAAY,YAAY,UAAU,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,UAAU,YAAc,YAAYC,MAAM,CAACC,MAAOT,EAAI0P,eAAuB,SAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,WAAY/O,IAAME,WAAW,8BAA8B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,aAAa,YAAY,WAAW,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,WAAW,YAAc,aAAaC,MAAM,CAACC,MAAOT,EAAI0P,eAAuB,SAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,WAAY/O,IAAME,WAAW,8BAA8B,IAAI,GAAGT,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,iBAAiB,YAAY,eAAe,gBAAgB,MAAM,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,eAAe,YAAc,gBAAgB,KAAO,YAAYC,MAAM,CAACC,MAAOT,EAAI0P,eAA2B,aAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,eAAgB/O,IAAME,WAAW,kCAAkC,IAAI,IAAI,GAAGT,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,OAAS,qBAAqB,eAAe,OAAO,CAACH,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,4BAA4B,YAAY,yBAAyB,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,0BAA0BC,MAAM,CAACC,MAAOT,EAAI0P,eAAqC,uBAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,yBAA0B/O,IAAME,WAAW,0CAA0C,CAACb,EAAIkB,GAAG,sCAAsC,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,uBAAuB,YAAY,oBAAoB,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,qBAAqBC,MAAM,CAACC,MAAOT,EAAI0P,eAAgC,kBAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,oBAAqB/O,IAAME,WAAW,qCAAqC,CAACb,EAAIkB,GAAG,sCAAsC,IAAI,GAAGd,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,qBAAqB,YAAY,kBAAkB,gBAAgB,MAAM,CAACH,EAAG,kBAAkB,CAACG,MAAM,CAAC,GAAK,mBAAmBC,MAAM,CAACC,MAAOT,EAAI0P,eAAuB,SAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,WAAY/O,IAAME,WAAW,4BAA4B,CAACb,EAAIkB,GAAG,sCAAsC,IAAI,GAAIlB,EAA0B,uBAAEI,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,gBAAgB,YAAY,cAAc,gBAAgB,IAAI,UAAU,iBAAiB,CAACH,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAIiY,mBAAmB,MAAQ,QAAQ,YAAc,SAAS,OAAS,SAAUC,GAAqB,OAAOA,EAAkBC,qBAAuB,aAAe,IAAI3X,MAAM,CAACC,MAAOT,EAAI0P,eAAkC,oBAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,sBAAuB/O,IAAME,WAAW,uCAAuC,CAACT,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,cAAc6O,KAAK,cAAc,CAACpP,EAAIkB,GAAG,0CAA0C,IAAI,GAAGlB,EAAIsB,KAAMtB,EAA0B,uBAAEI,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQ,kBAAkB,YAAY,gBAAgB,gBAAgB,IAAI,UAAU,mBAAmB,CAACH,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,gBAAgB,YAAc,kBAAkBC,MAAM,CAACC,MAAOT,EAAI0P,eAA4B,cAAEhP,SAAS,SAAUC,GAAMX,EAAI2P,KAAK3P,EAAI0P,eAAgB,gBAAiB/O,IAAME,WAAW,mCAAmC,IAAI,GAAGb,EAAIsB,MAAM,IAAI,IAAI,IAAI,IAC/vQ,GAAkB,G,aCYhB,GAAU,uBAAU,WAEpB8W,GAA4B,cAC5BC,GAAgC,cAChCC,GAA+B,UA6CrC,0E,OAOS,EAAAN,cAAwBM,GACxB,EAAA5I,eAAgC,KAChC,EAAA6I,kBAA4B,EAC5B,EAAAC,kBAA4B,E,EA6GrC,OAvHwC,oBAYzB,YAAAvV,QAAd,W,kCAAyBC,SAAO,W,sEAC/BjD,KAAKyP,eAAc,kBAAQzP,KAAK2K,eAE5B3K,KAAKqP,WACRrP,KAAKwY,yBACL,GAAMxY,KAAKoX,oBAAoBpX,KAAKyP,eAAerM,YAFhD,M,OAEH,S,wBAGDpD,KAAKsY,kBAAmB,E,YAGjB,YAAAV,iBAAR,SAAyBa,GACxBzY,KAAK0Y,cAAcD,IAGZ,YAAAD,uBAAR,WACKxY,KAAKyP,eAAekJ,kBACvB3Y,KAAK+X,cAAgBI,GACXnY,KAAKyP,eAAemJ,eAC9B5Y,KAAK+X,cAAgBK,GAErBpY,KAAK+X,cAAgBM,IAKf,YAAAQ,kBAAR,SAA0BC,EAAmBC,GACxCD,GAAYA,GAAYC,GAC3B/Y,KAAKgZ,MAAM,qBAIb,sBAAY,8BAAe,C,IAA3B,WACC,OAAOhZ,KAAKsY,kBAAoBtY,KAAKuY,kB,gCAGtC,sBAAY,wBAAS,C,IAArB,WACC,OAAOvY,KAAKyP,eAAerM,SAAW,G,gCAGvC,sBAAY,mCAAoB,C,IAAhC,WACC,MAAO,CAAC+U,GAAmBC,GAAuBC,K,gCAG3C,YAAAP,4BAAR,WACC,OAAQ9X,KAAK+X,eACZ,KAAKI,GACJnY,KAAKyP,eAAekJ,mBAAoB,EACxC3Y,KAAKyP,eAAemJ,gBAAiB,EACrC,MACD,KAAKR,GACJpY,KAAKyP,eAAekJ,mBAAoB,EACxC3Y,KAAKyP,eAAemJ,gBAAiB,EACrC,MACD,QACC5Y,KAAKyP,eAAekJ,mBAAoB,EACxC3Y,KAAKyP,eAAemJ,gBAAiB,IAOhC,YAAAK,2BAAR,WACC,MAAO,CAAEhE,QAASjV,KAAKkV,GAAG9E,SAAUX,eAAgBzP,KAAKyP,iBAG1D,sBAAY,8BAAe,C,IAA3B,WACC,OAAUzP,KAAK2X,sBAAqB,K,gCAGrC,sBAAY,oCAAqB,C,IAAjC,WACC,IAAMvT,EAAapE,KAAKkZ,mBAExB,OAAI9U,GAAcA,EAAW+U,eACrB/U,EAAW+U,eAGZ,e,gCAGR,sBAAY,iCAAkB,C,IAA9B,sBACC,OAAOnZ,KAAKiE,YAAYF,MAAK,SAAAG,GAAM,OAAAA,EAAGC,eAAiB,EAAKsL,eAAzB,iB,gCAGpC,sBAAY,qCAAsB,C,IAAlC,WACC,IAAMrL,EAAapE,KAAKkZ,mBAExB,SAAI9U,IAAcA,EAAWgV,e,gCAOtB,YAAA5B,0BAAR,WACCxX,KAAKuY,kBAAmB,GAGzB,sBAAW,yBAAU,C,IAArB,WAEC,OAAIvY,KAAK2K,cACD3K,KAAK2K,cAActI,WAGpB,I,gCApHQ,gBAAf,GAAQsD,Q,0CACM,gBAAd,GAAQE,O,oCACM,gBAAd,GAAQA,O,yCACM,gBAAd,GAAQA,O,kCACS,gBAAjB,GAAQD,U,oCAiCT,gBADC,mBAAM,oB,gCAKN,MAiCD,gBAHC,mBAAM,iBAAkB,CAAEyK,MAAM,IAChC,mBAAM,gBAAiB,CAAEA,MAAM,IAC/B,kBAAK,iC,yCAGL,MA7EmBgJ,EAAU,gBA3C9B,uBAAU,CACVpL,WAAY,CACX,mBAAoBqL,GAAA,KACpB,aAAc,KACd,wBAAyB,KAE1B7I,YAAa,CACZhB,eAAgB,CACf7M,QAAS,CAAEgL,SAAQ,eAAE+H,SAAU,uBAAS,IACxCxR,aAAc,CAAEyJ,SAAQ,eAAE+H,SAAU,uBAAS,IAC7CjU,MAAO,CAAEkM,SAAQ,gBACjB2L,cAAe,CAAEC,UAAW,wBAAU,MAEvCC,eAAgB,CACf7L,SAAU,0BAAW,WACpB,IAAM8L,EAAyC,OAAH,OAAG,CAAH,kBACxC1Z,KAAKyP,gBAAc,CACtBtO,iBAAkB,KAClB6K,uBAAwB,OAGnB2N,EAAsC,OAAH,OAAG,CAAH,kBACrC3Z,KAAK2K,eAAa,CACrBxJ,iBAAkB,KAClB6K,uBAAwB,OAGzB,OAAO,yBACN0N,EACAC,GACA,SAACC,EAAwBC,GACxB,IAC6B,OAA3BD,GAA8D,KAA3BA,KACX,OAAxBC,GAAwD,KAAxBA,GAEjC,OAAO,aAQOR,GAuHrB,EAvHA,CAAwC,oBAAO,wBAA1B,MC9DoZ,MCOra,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAItZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,KAAK,CAACJ,EAAIkB,GAAG,0BAA0Bd,EAAG,IAAI,CAACJ,EAAIkB,GAAG,wEAAwEd,EAAG,IAAI,CAACJ,EAAIkB,GAAGlB,EAAImB,GAAGnB,EAAI0P,eAAe/N,UAAU3B,EAAIkB,GAAG,0EAA0Ed,EAAG,IAAI,CAACJ,EAAIkB,GAAG,6EAA6Ed,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,qBAAqBC,MAAM,CAAC,MAAQP,EAAI2X,gBAAgB,YAAY,aAAa,gBAAgB,IAAI,UAAU,2BAA2B,CAACvX,EAAG,eAAe,CAACG,MAAM,CAAC,GAAK,aAAa,YAAcP,EAAI4X,sBAAsB,MAAQ5X,EAAIsC,YAAYV,GAAG,CAAC,MAAQ5B,EAAI6X,qBAAqB,IAAI,GAAGzX,EAAG,UAAU,IAAqB,GAAhBJ,EAAI+Z,UAAiB/Z,EAAIga,kBAAoB,GAAKha,EAAIia,wBAA0B,KAAOja,EAAIka,WAAY9Z,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,UAAU,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIma,iBAAiB,CAACna,EAAIkB,GAAG,4CAA4ClB,EAAIsB,MAAuB,GAAhBtB,EAAI+Z,UAAiB/Z,EAAIga,kBAAoB,GAAKha,EAAIia,wBAA0B,IAAMja,EAAIka,WAAY9Z,EAAG,WAAW,CAACG,MAAM,CAAC,QAAU,UAAU,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIoa,mBAAmB,CAACpa,EAAIkB,GAAG,+CAA+ClB,EAAIsB,KAAKlB,EAAG,MAAM,CAAEJ,EAAIga,kBAAoB,GAAqB,KAAhBha,EAAI+Z,SAAiB3Z,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,qBAAqB,yBAAyB,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,2BAA2BE,UAAU,CAAC,iBAAgB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,kBAAkBlB,EAAImB,GAAGnB,EAAIga,mBAAmB,QAAQ,GAAG5Z,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,gBAAgB,UAAY,0BAA0B,KAAO,WAAW,QAAU,KAAK,CAACH,EAAG,cAAc,CAACJ,EAAIkB,GAAG,8EAA8Ed,EAAG,MAAMJ,EAAIkB,GAAG,sDAAsDd,EAAG,MAAMA,EAAG,MAAOJ,EAAIqa,wBAA0B,EAAGja,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,kCAAkCE,UAAU,CAAC,wBAAuB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,kBAAkBlB,EAAImB,GAAGnB,EAAIqa,yBAAyB,OAAOja,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,uBAAuB,UAAY,iCAAiC,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,4BAA4BzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIsa,aAAaC,cAAc,OAASva,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGxa,EAAIsB,KAAMtB,EAAIya,uBAAyB,EAAGra,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,iCAAiCE,UAAU,CAAC,uBAAsB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIya,wBAAwB,OAAOra,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,sBAAsB,UAAY,gCAAgC,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,2BAA2BzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIsa,aAAaI,aAAa,OAAS1a,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGxa,EAAIsB,KAAMtB,EAAI2a,wBAA0B,EAAGva,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,kCAAkCE,UAAU,CAAC,wBAAuB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,kBAAkBlB,EAAImB,GAAGnB,EAAI2a,yBAAyB,OAAOva,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,uBAAuB,UAAY,iCAAiC,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,4BAA4BzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIsa,aAAaM,cAAc,OAAS5a,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGxa,EAAIsB,KAAMtB,EAAI6a,sBAAwB,EAAGza,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,gCAAgCE,UAAU,CAAC,sBAAqB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,gBAAgBlB,EAAImB,GAAGnB,EAAI6a,uBAAuB,OAAOza,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,qBAAqB,UAAY,+BAA+B,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,0BAA0BzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIsa,aAAaQ,YAAY,OAAS9a,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGxa,EAAIsB,KAAMtB,EAAI+a,uBAAyB,EAAG3a,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,iCAAiCE,UAAU,CAAC,uBAAsB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAI+a,wBAAwB,OAAO3a,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,sBAAsB,UAAY,gCAAgC,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,2BAA2BzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIsa,aAAaU,aAAa,OAAShb,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGxa,EAAIsB,QAAQ,IAAI,IAAI,IAAI,GAAGtB,EAAIsB,KAAMtB,EAAIia,wBAA0B,GAAqB,KAAhBja,EAAI+Z,SAAiB3Z,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,qBAAqB,yBAAyB,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,2BAA2BE,UAAU,CAAC,iBAAgB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,kBAAkBlB,EAAImB,GAAGnB,EAAIia,yBAAyB,QAAQ,GAAG7Z,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,gBAAgB,UAAY,0BAA0B,KAAO,WAAW,QAAU,KAAK,CAACH,EAAG,cAAc,CAACJ,EAAIkB,GAAG,iFAAiFd,EAAG,MAAMJ,EAAIkB,GAAG,sDAAsDd,EAAG,MAAMA,EAAG,MAAOJ,EAAIib,kBAAoB,EAAG7a,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,2BAA2BE,UAAU,CAAC,iBAAgB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,kBAAkBlB,EAAImB,GAAGnB,EAAIib,mBAAmB,OAAO7a,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,gBAAgB,UAAY,0BAA0B,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,qBAAqBzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIkb,0BAA0BzM,QAAQ,OAASzO,EAAImb,kBAAkB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGnb,EAAIsB,KAAMtB,EAAIob,iBAAmB,EAAGhb,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,0BAA0BE,UAAU,CAAC,gBAAe,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIob,kBAAkB,OAAOhb,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,eAAe,UAAY,yBAAyB,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,oBAAoBzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIkb,0BAA0BxM,OAAO,OAAS1O,EAAImb,kBAAkB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGnb,EAAIsB,KAAMtB,EAAIqb,kBAAoB,EAAGjb,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,2BAA2BE,UAAU,CAAC,iBAAgB,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,kBAAkBlB,EAAImB,GAAGnB,EAAIqb,mBAAmB,OAAOjb,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,gBAAgB,UAAY,0BAA0B,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,qBAAqBzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIkb,0BAA0BtM,QAAQ,OAAS5O,EAAImb,kBAAkB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGnb,EAAIsB,KAAMtB,EAAIsb,gBAAkB,EAAGlb,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,yBAAyBE,UAAU,CAAC,eAAc,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,gBAAgBlB,EAAImB,GAAGnB,EAAIsb,iBAAiB,OAAOlb,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,cAAc,UAAY,wBAAwB,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,mBAAmBzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIkb,0BAA0BvM,MAAM,OAAS3O,EAAImb,kBAAkB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGnb,EAAIsB,KAAMtB,EAAIub,iBAAmB,EAAGnb,EAAG,MAAM,CAACA,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,0BAA0BE,UAAU,CAAC,gBAAe,KAAQnG,YAAY,eAAeC,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,iBAAiBlB,EAAImB,GAAGnB,EAAIub,kBAAkB,OAAOnb,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,eAAe,UAAY,yBAAyB,KAAO,aAAa,CAACH,EAAG,UAAU,CAAC4B,IAAI,oBAAoBzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIkb,0BAA0BM,OAAO,OAASxb,EAAIyb,oBAAoB,gBAAgB,OAAO,eAAe,WAAW,IAAI,GAAGzb,EAAIsB,QAAQ,IAAI,IAAI,IAAI,GAAGtB,EAAIsB,KAAOtB,EAAI0b,eAAkB1b,EAAI2b,eAAiC,KAAhB3b,EAAI+Z,WAAmB/Z,EAAIka,YAA6C,GAA/Bla,EAAIia,yBAAyD,GAAzBja,EAAIga,kBAA6qXha,EAAIsB,KAAzpXlB,EAAG,MAAM,CAACE,YAAY,WAAW,CAAsB,GAApBN,EAAI4b,aAAmBxb,EAAG,MAAM,CAACE,YAAY,cAAc,CAACN,EAAIkB,GAAG,qDAAqDlB,EAAIsB,KAAKlB,EAAG,aAAa,CAACG,MAAM,CAAC,qBAAqB,yBAAyB,CAACH,EAAG,MAAM,CAACE,YAAY,YAAYC,MAAM,CAAC,KAAO,YAAY,CAAEP,EAAI6b,mBAAqB,EAAGzb,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,sCAAsCE,UAAU,CAAC,4BAA2B,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,YAAYlB,EAAImB,GAAGnB,EAAI6b,oBAAoB,QAAQ,GAAGzb,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,2BAA2B,UAAY,wBAAwB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8b,qBAAoB,MAAS,CAAC9b,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI8b,qBAAoB,MAAU,CAAC9b,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAAC4B,IAAI,uBAAuBzB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAI+b,cAAcxB,cAAc,OAASva,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,OAAO,KAAOxa,EAAIgc,0BAA0Blb,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAI8c,mBAAgN,KAA5L,CAAC9b,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAI+c,kBAAoB,EAAG3c,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,qCAAqCE,UAAU,CAAC,2BAA0B,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,UAAUlB,EAAImB,GAAGnB,EAAI+c,mBAAmB,QAAQ,GAAG3c,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,0BAA0B,UAAY,wBAAwB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIgd,oBAAmB,MAAS,CAAChd,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIgd,oBAAmB,MAAU,CAAChd,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAI+b,cAAcrB,aAAa,OAAS1a,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,OAAO,KAAOxa,EAAIid,yBAAyBnc,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAIkd,kBAA+M,KAA5L,CAAClc,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAqB,kBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAImd,mBAAqB,EAAG/c,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,sCAAsCE,UAAU,CAAC,4BAA2B,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,YAAYlB,EAAImB,GAAGnB,EAAImd,oBAAoB,QAAQ,GAAG/c,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,2BAA2B,UAAY,wBAAwB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIod,qBAAoB,MAAS,CAACpd,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIod,qBAAoB,MAAU,CAACpd,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAI+b,cAAcnB,cAAc,OAAS5a,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,OAAO,KAAOxa,EAAIqd,0BAA0Bvc,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAIsd,mBAAgN,KAA5L,CAACtc,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAIud,iBAAmB,EAAGnd,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,oCAAoCE,UAAU,CAAC,0BAAyB,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,UAAUlB,EAAImB,GAAGnB,EAAIud,kBAAkB,QAAQ,GAAGnd,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,yBAAyB,UAAY,wBAAwB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIwd,mBAAkB,MAAS,CAACxd,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIwd,mBAAkB,MAAU,CAACxd,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAI+b,cAAcjB,YAAY,OAAS9a,EAAIwa,mBAAmB,gBAAgB,OAAO,eAAe,OAAO,KAAOxa,EAAIyd,wBAAwB3c,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAI0d,iBAA8M,KAA5L,CAAC1c,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAoB,iBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAI2d,kBAAoB,EAAGvd,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,qCAAqCE,UAAU,CAAC,2BAA0B,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,WAAWlB,EAAImB,GAAGnB,EAAI2d,mBAAmB,QAAQ,GAAGvd,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,0BAA0B,UAAY,wBAAwB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI4d,oBAAmB,MAAS,CAAC5d,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI4d,oBAAmB,MAAU,CAAC5d,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAI+b,cAAcf,aAAa,OAAShb,EAAIwa,mBAAmB,eAAe,OAAO,KAAOxa,EAAI6d,yBAAyB/c,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAI8d,kBAA+M,KAA5L,CAAC9c,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAqB,kBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,GAAGvB,EAAIsB,MAAM,KAAMtB,EAAI4b,aAAe,EAAGxb,EAAG,WAAW,CAACE,YAAY,kBAAkBC,MAAM,CAAC,QAAU,WAAWqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI+d,iBAAiB,CAAC/d,EAAIkB,GAAG,UAAUlB,EAAIsB,KAAKtB,EAAIkB,GAAG,0BAA0Bd,EAAG,WAAW,CAACE,YAAY,gCAAgCsB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIge,YAAY,CAAChe,EAAIkB,GAAG,aAAa,GAAclB,EAAI0b,eAAkB1b,EAAI2b,eAAiC,KAAhB3b,EAAI+Z,UAAoB/Z,EAAIka,YAA6C,GAA/Bla,EAAIia,yBAAyD,GAAzBja,EAAIga,kBAA4lYha,EAAIsB,KAAxkYlB,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,qBAAqB,yBAAyB,CAACH,EAAG,MAAM,CAACE,YAAY,YAAYC,MAAM,CAAC,KAAO,YAAY,CAAEP,EAAIie,aAAe,EAAG7d,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,+BAA+BE,UAAU,CAAC,qBAAoB,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,YAAYlB,EAAImB,GAAGnB,EAAIie,cAAc,QAAQ,GAAG7d,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,oBAAoB,UAAY,sBAAsB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,wBAAwB,CAACE,YAAY,cAAcC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAIke,mCAAmC,CAAC9d,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIme,eAAc,MAAS,CAACne,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIme,eAAc,MAAU,CAACne,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAAC4B,IAAI,eAAezB,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIoe,iBAAiB3P,QAAQ,OAASzO,EAAIqe,aAAa,gBAAgB,OAAO,eAAe,OAAO,KAAOre,EAAIse,mBAAmBxd,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAI8c,mBAAgN,KAA5L,CAAC9b,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAIue,YAAc,EAAGne,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,8BAA8BE,UAAU,CAAC,oBAAmB,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,UAAUlB,EAAImB,GAAGnB,EAAIue,aAAa,QAAQ,GAAGne,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,mBAAmB,UAAY,sBAAsB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,wBAAwB,CAACE,YAAY,cAAcC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAIwe,kCAAkC,CAACpe,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIye,cAAa,MAAS,CAACze,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIye,cAAa,MAAU,CAACze,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIoe,iBAAiB1P,OAAO,OAAS1O,EAAIqe,aAAa,gBAAgB,OAAO,eAAe,OAAO,KAAOre,EAAI0e,kBAAkB5d,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAIkd,kBAA+M,KAA5L,CAAClc,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAqB,kBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAI2e,aAAe,EAAGve,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,+BAA+BE,UAAU,CAAC,qBAAoB,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,YAAYlB,EAAImB,GAAGnB,EAAI2e,cAAc,QAAQ,GAAGve,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,oBAAoB,UAAY,sBAAsB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,wBAAwB,CAACE,YAAY,cAAcC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAI4e,mCAAmC,CAACxe,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI6e,eAAc,MAAS,CAAC7e,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAI6e,eAAc,MAAU,CAAC7e,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIoe,iBAAiBxP,QAAQ,OAAS5O,EAAIqe,aAAa,gBAAgB,OAAO,eAAe,OAAO,KAAOre,EAAI8e,mBAAmBhe,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAIsd,mBAAgN,KAA5L,CAACtc,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAsB,mBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAI+e,WAAa,EAAG3e,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,6BAA6BE,UAAU,CAAC,mBAAkB,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,UAAUlB,EAAImB,GAAGnB,EAAI+e,YAAY,QAAQ,GAAG3e,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,kBAAkB,UAAY,sBAAsB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,wBAAwB,CAACE,YAAY,cAAcC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAIgf,iCAAiC,CAAC5e,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIif,aAAY,MAAS,CAACjf,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIif,aAAY,MAAU,CAACjf,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIoe,iBAAiBzP,MAAM,OAAS3O,EAAIqe,aAAa,gBAAgB,OAAO,eAAe,OAAO,KAAOre,EAAIkf,iBAAiBpe,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAI0d,iBAA8M,KAA5L,CAAC1c,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAoB,iBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,IAAI,GAAGvB,EAAIsB,KAAMtB,EAAImf,YAAc,EAAG/e,EAAG,SAAS,CAACE,YAAY,OAAOC,MAAM,CAAC,UAAU,KAAK,CAACH,EAAG,gBAAgB,CAACE,YAAY,MAAMC,MAAM,CAAC,aAAa,SAAS,KAAO,QAAQ,CAACH,EAAG,WAAW,CAACiG,WAAW,CAAC,CAACC,KAAK,WAAWC,QAAQ,8BAA8BE,UAAU,CAAC,oBAAmB,KAAQlG,MAAM,CAAC,MAAQ,KAAK,CAACP,EAAIkB,GAAG,WAAWlB,EAAImB,GAAGnB,EAAImf,aAAa,QAAQ,GAAG/e,EAAG,aAAa,CAACG,MAAM,CAAC,GAAK,mBAAmB,UAAY,sBAAsB,KAAO,aAAa,CAACH,EAAG,cAAc,CAACA,EAAG,wBAAwB,CAACE,YAAY,cAAcC,MAAM,CAAC,UAAU,yBAAyBqB,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAO7B,EAAIof,kCAAkC,CAAChf,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIqf,cAAa,MAAS,CAACrf,EAAIkB,GAAG,SAASlB,EAAIkB,GAAG,OAAOd,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,KAAKqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIqf,cAAa,MAAU,CAACrf,EAAIkB,GAAG,YAAYd,EAAG,UAAU,CAACG,MAAM,CAAC,WAAa,GAAG,QAAU,GAAG,aAAa,GAAG,QAAU,KAAK,MAAQ,GAAG,MAAQP,EAAIoe,iBAAiB5C,OAAO,OAASxb,EAAIsf,eAAe,eAAe,OAAO,KAAOtf,EAAIuf,kBAAkBze,YAAYd,EAAIe,GAAG,CAAC,CAACC,IAAI,iBAAiBC,GAAG,SAASuG,GAAK,MAAO,CAACpH,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACiG,WAAW,CAAC,CAACC,KAAK,QAAQC,QAAQ,UAAU9F,MAAO+G,EAAIC,KAAa,SAAE5G,WAAW,sBAAsBN,MAAM,CAAC,KAAO,WAAW,QAAU,IAAI0b,SAAS,CAAC,QAAUC,MAAMC,QAAQ3U,EAAIC,KAAK2U,UAAUpc,EAAIqc,GAAG7U,EAAIC,KAAK2U,SAAS,OAAO,EAAG5U,EAAIC,KAAa,UAAG7F,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIya,EAAI9U,EAAIC,KAAK2U,SAASG,EAAK1a,EAAO2a,OAAOC,IAAIF,EAAKG,QAAuB,GAAGR,MAAMC,QAAQG,GAAK,CAAC,IAAI3b,EAAI,KAAKgc,EAAI3c,EAAIqc,GAAGC,EAAI3b,GAAQ4b,EAAKG,QAASC,EAAI,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIM,OAAO,CAACjc,KAAagc,GAAK,GAAI3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAY6U,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAY3c,EAAI2P,KAAKnI,EAAIC,KAAM,WAAYgV,YAAiBzc,EAAI8d,kBAA+M,KAA5L,CAAC9c,IAAI,aAAaC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,KAAKgB,OAAM,GAAW,CAACP,IAAI,gBAAgBC,GAAG,WAAW,MAAO,CAAEjB,EAAqB,kBAAEI,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,aAAa,SAAW,cAAc,GAAGP,EAAIsB,OAAOC,OAAM,IAAO,MAAK,MAAS,IAAI,IAAI,IAAI,GAAGvB,EAAIsB,MAAM,KAAKlB,EAAG,WAAW,CAACE,YAAY,kBAAkBC,MAAM,CAAC,QAAU,WAAWqB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIwf,UAAU,CAACxf,EAAIkB,GAAG,UAAUlB,EAAIkB,GAAG,0BAA0Bd,EAAG,WAAW,CAACE,YAAY,gCAAgCsB,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAO7B,EAAIge,YAAY,CAAChe,EAAIkB,GAAG,aAAa,KAAelB,EAAI0b,eAAiB1b,EAAI+Z,SAAW,IAAK3Z,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAQ,sBAAyBP,EAAI0P,eAAoB,MAAI,OAAQ,SAAW,cAAc,KAAK1P,EAAIsB,KAAMtB,EAAiB,cAAEI,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,MAAM,CAACE,YAAY,oCAAoC,CAACF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAQ,uBAA0BP,EAAI0P,eAAoB,MAAI,OAAQ,SAAW,cAAc,KAAK1P,EAAIsB,MAAM,IACh7jC,GAAkB,G,c/CgCtB,SAAKxB,GACJ,yBACA,6BACA,2BACA,6BACA,iBACA,oBAND,CAAKA,MAAe,KASpB,IAAM,GAAU,uBAAU,WACpB2f,GAAc,uBAAU,eACxB,GAAe,uBAAU,YAK/B,0E,OACS,EAAAnY,OAA8B,CACrC,CAAEtG,IAAK,QAAS4H,MAAO,QAASC,UAAU,GAC1C,CAAE7H,IAAK,eAAgB4H,MAAO,iBAAkBC,UAAU,GAC1D,CAAE7H,IAAK,UAAW4H,MAAO,OAAQC,UAAU,GAC3C,CAAE7H,IAAK,OAAQ4H,MAAO,OAAQC,UAAU,GACxC,CAAE7H,IAAK,OAAQ4H,MAAO,OAAQC,UAAU,GACxC,CAAE7H,IAAK,oBAAqB4H,MAAO,oBAAqBC,UAAU,EAAOnC,MAAO,YAChF,CAAE1F,IAAK,iBAAkB4H,MAAO,iBAAkBC,UAAU,EAAOnC,MAAO,YAC1E,CAAE1F,IAAK,UAAW4H,MAAO,UAAWC,UAAU,IAwEvC,EAAA6W,gBAAmC5f,EAAgB6f,SACnD,EAAA5F,SAAW,EACX,EAAA6F,YAAsB,EACtB,EAAAC,gBAA0B,IAE1B,EAAAC,WAAqB,EACrB,EAAAC,eAAyB,IAEzB,EAAAC,WAAqB,EACrB,EAAAC,eAAyB,IAEzB,EAAAC,UAAoB,EACpB,EAAAC,cAAwB,IAExB,EAAAC,YAAsB,EACtB,EAAAC,gBAA0B,IAE1B,EAAAC,qBAAsB,EACtB,EAAA/X,wBAAkC,EAClC,EAAA+V,mBAA6B,EAC7B,EAAAxB,oBAA8B,EAE9B,EAAAyC,kBAA4B,EAC5B,EAAAzB,mBAA6B,EAE7B,EAAAY,kBAA4B,EAC5B,EAAAxB,mBAA6B,EAE7B,EAAAgC,iBAA2B,EAC3B,EAAAxB,kBAA4B,EAE5B,EAAAoB,mBAA6B,EAC7B,EAAAxB,oBAA8B,EAE9B,EAAAtB,0BAAoC,EACpC,EAAAuE,0BAAoC,EAEpC,EAAA1C,yBAAmC,EACnC,EAAA2C,yBAAmC,EAEnC,EAAAvD,yBAAmC,EACnC,EAAAwD,yBAAmC,EAEnC,EAAAhD,wBAAkC,EAClC,EAAAiD,wBAAkC,EAElC,EAAAC,yBAAmC,EACnC,EAAAC,0BAAoC,EAEpC,EAAAC,oBAA8B,EAC9B,EAAAC,mBAA6B,EAC7B,EAAAC,mBAA6B,EAC7B,EAAAC,oBAA8B,EAC9B,EAAAC,kBAA4B,EAE5B,EAAAC,0BAAoC,EACpC,EAAAC,yBAAmC,EACnC,EAAAC,yBAAmC,EACnC,EAAAC,0BAAoC,EACpC,EAAAC,wBAAkC,EAElC,EAAAC,yBAAmC,EACnC,EAAAC,wBAAkC,EAClC,EAAAC,wBAAkC,EAClC,EAAAC,yBAAmC,EACnC,EAAAC,uBAAiC,EAEjC,EAAAC,mBAA6B,EAC7B,EAAAC,kBAA4B,EAC5B,EAAAC,kBAA4B,EAC5B,EAAAC,mBAA6B,EAC7B,EAAAC,iBAA2B,EAE3B,EAAA/D,aAAe,EACf,EAAAkB,YAAc,EACd,EAAAZ,YAAc,EACd,EAAAQ,WAAa,EACb,EAAAJ,aAAe,EAEf,EAAA9C,mBAAqB,EACrB,EAAA8B,kBAAoB,EACpB,EAAAZ,kBAAoB,EACpB,EAAAQ,iBAAmB,EACnB,EAAAJ,mBAAqB,EAErB,EAAA8E,0BAA2B,EAC3B,EAAAC,yBAA0B,EAC1B,EAAAC,yBAA0B,EAC1B,EAAAC,wBAAyB,EACzB,EAAAC,0BAA2B,E,EA6kCpC,OAvvCuC,oBAwCtC,YAAApf,QAAA,WACChD,KAAKuD,cAAc,CAAEC,WAAY,IACjCxD,KAAKyP,eAAc,kBAAQzP,KAAK2K,eAChC3K,KAAKqiB,aAAY,kBAAQriB,KAAKmB,mBAG/B,YAAAkC,QAAA,sBACCrD,KAAKsiB,MAAMC,IAAI,uBAAuB,SAACC,EAAYC,GAClD,OAAQD,GACP,IAAK,oBACJ,EAAKR,yBAA2BS,EAChC,MAED,IAAK,mBACJ,EAAKR,wBAA0BQ,EAC/B,MAED,IAAK,mBACJ,EAAKP,wBAA0BO,EAC/B,MAED,IAAK,kBACJ,EAAKN,uBAAyBM,EAC9B,MAED,IAAK,oBACJ,EAAKL,yBAA2BK,EAChC,WAMI,YAAA7K,iBAAR,SAAyBa,GACxBzY,KAAK0Y,cAAcD,IAGpB,YAAAiK,WAAA,aAoGA,sBAAY,8BAAe,C,IAA3B,WACC,OAAU1iB,KAAK2X,sBAAqB,K,gCAGrC,sBAAY,oCAAqB,C,IAAjC,WACC,IAAMvT,EAAapE,KAAKkZ,mBAExB,OAAI9U,GAAcA,EAAW+U,eACrB/U,EAAW+U,eAGZ,e,gCAGR,sBAAY,iCAAkB,C,IAA9B,sBACC,OAAOnZ,KAAKiE,YAAYF,MAAK,SAACG,GAAO,OAAAA,EAAGC,eAAiB,EAAKsL,eAAzB,iB,gCAGtC,sBAAY,yBAAU,C,IAAtB,WACC,OAA2C,MAAvCzP,KAAK2K,cAAcxJ,mBAA6BnB,KAAK2K,cAAcxJ,iBAAiBC,QAAU,GAAIpB,KAAK2K,cAAcxJ,iBAAiBqN,QAAU,GAChJxO,KAAK2K,cAAcxJ,iBAAiBsN,OAAS,GAAKzO,KAAK2K,cAAcxJ,iBAAiBuN,MAAQ,GAAK1O,KAAK2K,cAAcxJ,iBAAiBwN,QAAU,GACpJ3O,KAAK2K,cAAcxJ,iBAAiBoa,OAAS,I,gCAO/C,sBAAY,mDAAoC,C,IAAhD,WAIC,OAAOvb,KAAK2iB,qCAAqC/V,qB,gCAI1C,YAAAqR,8BAAR,WACC,GACCje,KAAKqe,mBACLre,KAAK4iB,sCACL5iB,KAAK6c,qBACJ7c,KAAKgiB,yBAEN,OAAO,EAGRhiB,KAAK6c,oBAAqB,EAE1B7c,KAAK2f,cACL3f,KAAK6iB,sBACL7iB,KAAK6c,oBAAqB,GAGnB,YAAAgG,oBAAR,WACC7iB,KAAKqe,mBAAoB,EAOzBre,KAAK8iB,aACL9iB,KAAKqe,mBAAoB,GAG1B,sBAAY,kDAAmC,C,IAA/C,WAIC,OAAOre,KAAK2iB,qCAAqCI,oB,gCAI1C,YAAA5D,6BAAR,WACC,GACCnf,KAAKsf,kBACLtf,KAAKgjB,qCACLhjB,KAAK6d,oBACJ7d,KAAKiiB,wBAEN,OAAO,EAGRjiB,KAAK6c,oBAAqB,EAE1B7c,KAAK6f,aACL7f,KAAKijB,qBACLjjB,KAAK6d,mBAAoB,GAGlB,YAAAoF,mBAAR,WACCjjB,KAAKsf,kBAAmB,EAOxBtf,KAAKkjB,YACLljB,KAAKsf,kBAAmB,GAGzB,sBAAY,kDAAmC,C,IAA/C,WAIC,OAAOtf,KAAK2iB,qCAAqC9V,oB,gCAI1C,YAAA0R,6BAAR,WACC,GACCve,KAAKye,kBACLze,KAAKmjB,qCACLnjB,KAAKid,oBACJjd,KAAKkiB,wBAEN,OAAO,EAGRliB,KAAKid,mBAAoB,EAEzBjd,KAAK+f,aACL/f,KAAKojB,qBACLpjB,KAAKid,mBAAoB,GAGlB,YAAAmG,mBAAR,WACCpjB,KAAKye,kBAAmB,EAOxBze,KAAKqjB,YACLrjB,KAAKye,kBAAmB,GAGzB,sBAAY,iDAAkC,C,IAA9C,WAIC,OAAOze,KAAK2iB,qCAAqC7V,mB,gCAI1C,YAAAiS,4BAAR,WACC,GACC/e,KAAKif,iBACLjf,KAAKsjB,oCACLtjB,KAAKyd,mBACJzd,KAAKmiB,uBAEN,OAAO,EAGRniB,KAAKyd,kBAAmB,EAExBzd,KAAKigB,YACLjgB,KAAKujB,oBACLvjB,KAAKyd,kBAAmB,GAGjB,YAAA8F,kBAAR,WACCvjB,KAAKif,iBAAkB,EAOvBjf,KAAKwjB,WACLxjB,KAAKif,iBAAkB,GAGxB,sBAAY,mDAAoC,C,IAAhD,WAIC,OAAOjf,KAAK2iB,qCAAqCvW,6B,gCAI1C,YAAAuS,8BAAR,WACC,GACC3e,KAAK6e,mBACL7e,KAAKyjB,sCACLzjB,KAAKqd,qBACJrd,KAAKoiB,yBAEN,OAAO,EAGRpiB,KAAKqd,oBAAqB,EAE1Brd,KAAKmgB,cACLngB,KAAK0jB,sBACL1jB,KAAKqd,oBAAqB,GAGnB,YAAAqG,oBAAR,WACC1jB,KAAK6e,mBAAoB,EAOzB7e,KAAK2jB,aACL3jB,KAAK6e,mBAAoB,GAElB,YAAA+E,6BAAR,SAAqCC,GACV,MAAtB7jB,KAAK8b,gBACR9b,KAAK4b,mBAAyD,MAApC5b,KAAK8b,cAAcxB,cAAwBta,KAAK8b,cAAcxB,cAAc7Q,OAAS,EAC/GzJ,KAAK8c,kBAAuD,MAAnC9c,KAAK8b,cAAcrB,aAAuBza,KAAK8b,cAAcrB,aAAahR,OAAS,EAC5GzJ,KAAKkd,mBAAyD,MAApCld,KAAK8b,cAAcnB,cAAwB3a,KAAK8b,cAAcnB,cAAclR,OAAS,EAC/GzJ,KAAKsd,iBAAqD,MAAlCtd,KAAK8b,cAAcjB,YAAsB7a,KAAK8b,cAAcjB,YAAYpR,OAAS,EACzGzJ,KAAK0d,kBAAuD,MAAnC1d,KAAK8b,cAAcf,aAAuB/a,KAAK8b,cAAcf,aAAatR,OAAS,GAG7GzJ,KAAK8Z,SAAW,KAGT,YAAAgK,kBAAR,SAA0BD,GACK,MAA1BA,GAAmCA,IACtC7jB,KAAK+jB,qBAAuB/jB,KAAKgkB,cAGU,MAAxChkB,KAAK+jB,qBAAqB,GAAGvV,SAAmBxO,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,OAAS,IACjGzJ,KAAKge,aAAehe,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,QAGf,MAAvCzJ,KAAK+jB,qBAAqB,GAAGxI,QAAkBvb,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,OAAS,IAC/FzJ,KAAKkf,YAAclf,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,QAGb,MAAvCzJ,KAAK+jB,qBAAqB,GAAGtV,QAAkBzO,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,OAAS,IAC/FzJ,KAAKse,YAActe,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,QAGb,MAAvCzJ,KAAK+jB,qBAAqB,GAAGE,QAAkBjkB,KAAK+jB,qBAAqB,GAAGE,OAAOxa,OAAS,IAC/FzJ,KAAKkkB,wBAA0BlkB,KAAK+jB,qBAAqB,GAAGE,OAAOtY,QAAO,SAAUwY,GACnF,OAAmB,GAAZA,EAAItW,QAEZ7N,KAAK0e,aAA+C,MAAhC1e,KAAKkkB,wBAAkClkB,KAAKkkB,wBAAwBza,OAAS,EACjGzJ,KAAKokB,sBAAwBpkB,KAAK+jB,qBAAqB,GAAGE,OAAOtY,QAAO,SAAUwY,GACjF,OAAmB,GAAZA,EAAItW,QAEZ7N,KAAK8e,WAA2C,MAA9B9e,KAAKokB,sBAAgCpkB,KAAKokB,sBAAsB3a,OAAS,GAI3D,MAA7BzJ,KAAK+jB,sBAAgC/jB,KAAK+jB,qBAAqBta,OAAS,IAC3EzJ,KAAKme,iBAAmB,CACvB9X,KAAMrG,KAAK+jB,qBAAqB,GAAG1d,KACnChE,WAAYrC,KAAK+jB,qBAAqB,GAAG1hB,WACzCgiB,KAAMrkB,KAAK+jB,qBAAqB,GAAGM,KACnCC,KAAMtkB,KAAK+jB,qBAAqB,GAAGO,KACnCC,SAAUvkB,KAAK+jB,qBAAqB,GAAGQ,SACvCC,SAAUxkB,KAAK+jB,qBAAqB,GAAGS,SACvCC,eAAgBzkB,KAAK+jB,qBAAqB,GAAGU,eAC7ClJ,OAAQ,KACR/M,QAAS,KACTC,OAAQ,KACRC,MAAO,KACPC,QAAS,KACT+V,MAAO1kB,KAAK+jB,qBAAqB,GAAGW,OAGrC1kB,KAAK8iB,aACL9iB,KAAKkjB,YACLljB,KAAKqjB,YACLrjB,KAAKwjB,WACLxjB,KAAK2jB,cAGN3jB,KAAKyf,gBAAkB5f,EAAgB8kB,KACvC3kB,KAAKqgB,qBAAsB,EAC3BrgB,KAAK8Z,SAAW,KAGH,YAAAI,YAAd,W,qIAQC,OAPI0K,EAAUC,OAAOC,SAASC,OAC1BC,EAAgB,IAAI,oBAAcJ,GAClCK,EAAgBjlB,KAAKklB,WAAW,KACpCF,EAAcC,cAAgBA,EAC9BjlB,KAAKyf,gBAAkB5f,EAAgBslB,WACvCnlB,KAAK8Z,SAAW,EAEhB,GAAM7W,QAAQmiB,IAAI,CAACplB,KAAKqlB,kBAAkB,CAAE5Z,OAAQzL,KAAKslB,iBAAkBlhB,WAAYpE,KAAKkZ,mBAAoBqM,KAAMP,EAAcC,kBAAmBO,MACtJ,SAACC,GACA,EAAK3B,mBAAkB,O,cAFzB,S,YAOa,YAAA3J,cAAd,W,uIAUC,OATIyK,EAAUC,OAAOC,SAASC,OAC1BC,EAAgB,IAAI,oBAAcJ,GAClCK,EAAgBjlB,KAAKklB,WAAW,KACpCF,EAAcC,cAAgBA,EAC9BjlB,KAAKyf,gBAAkB5f,EAAgBslB,WACvCnlB,KAAK8Z,SAAW,EAIhB,GAAM7W,QAAQmiB,IAAI,CAACplB,KAAKqlB,kBAAkB,CAAE5Z,OAAQzL,KAAKslB,iBAAkBlhB,WAAYpE,KAAKkZ,mBAAoBqM,KAAMP,EAAcC,kBAAmBO,MACtJ,SAACC,GACA,EAAK1B,qBAAuB,EAAKC,aAEjCA,EAAe,CACdtZ,SAAU,EAAK+E,eAAerM,SAC9Bf,WAAY,EAAKijB,iBAAiBjjB,WAClCqjB,oBAAqB,EAAK3B,qBAAqB,Q,OAKlD,OAZA,SAYA,GAAM9gB,QAAQmiB,IAAI,CAACplB,KAAK2lB,oBAAoB3B,KAAgBwB,MAC1D,SAACC,GACA,EAAK7B,8BAA6B,O,cAFrC,S,YAOa,YAAAd,WAAd,W,+GACC,GAC0B,MAAzB9iB,KAAKme,kBAC+B,GAApCne,KAAK+jB,qBAAqBta,QACM,MAAhCzJ,KAAK+jB,qBAAqB,GAE1B,UAUD,GAP4C,MAAxC/jB,KAAK+jB,qBAAqB,GAAGvV,UAChCxO,KAAK+jB,qBAAqB,GAAGvV,QAAU,IAIpCoX,GAAc5lB,KAAK2f,YAAc,GAAK3f,KAAK4f,gBAE3CgG,GAAc5lB,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,OAGtD,OADAzJ,KAAK2iB,qCAAqC/V,qBAAsB,EAChE,IAcD,IAXIiZ,GAAqB,EACrBC,EAAWF,EAAa5lB,KAAK4f,gBAE7BkG,GAAY9lB,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,SACpDoc,GAAqB,EACrBC,EAAW9lB,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,QAG7Csc,EAA0D,GAC1D5J,GAAqBnc,KAAK2hB,kBAErBqE,EAAIJ,EAAYI,EAAIF,EAAUE,IAClCC,EAAgD,CACnD5f,KAAMrG,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAG3f,KAC9ClE,OAAQnC,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAG7jB,OAChD+jB,OAAQlmB,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAGE,OAChDnV,QAAS/Q,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAGjV,QACjDoV,eAAgBnmB,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAGG,eACxD1B,eAAgBzkB,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAGvB,eACxDpiB,WAAYrC,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAG3jB,WACpD+jB,SAAUpmB,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAGI,SAClDC,QAASrmB,KAAK+jB,qBAAqB,GAAGvV,QAAQwX,GAAGK,QACjDlK,SAAUA,GAEX4J,EAAkBlc,KAAKoc,G,OAGa,MAAjCjmB,KAAKme,iBAAiB3P,UACzBxO,KAAKme,iBAAiB3P,QAAU,IAIjCyN,MAAMqK,UAAUzc,KAAK0c,MAAMvmB,KAAKme,iBAAiB3P,QAASuX,GAEtDF,IACH7lB,KAAK2iB,qCAAqC/V,qBAAsB,G,WAIpD,YAAAsW,UAAd,W,+GACC,GAC0B,MAAzBljB,KAAKme,kBAC+B,GAApCne,KAAK+jB,qBAAqBta,QACM,MAAhCzJ,KAAK+jB,qBAAqB,GAE1B,UAUD,GAP2C,MAAvC/jB,KAAK+jB,qBAAqB,GAAGxI,SAChCvb,KAAK+jB,qBAAqB,GAAGxI,OAAS,IAInCqK,GAAc5lB,KAAK6f,WAAa,GAAK7f,KAAK8f,eAE1C8F,GAAc5lB,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,OAGrD,OADAzJ,KAAK2iB,qCAAqCI,oBAAqB,EAC/D,IAcD,IAXI8C,GAAqB,EACrBC,EAAWF,EAAa5lB,KAAK8f,eAE7BgG,GAAY9lB,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,SACnDoc,GAAqB,EACrBC,EAAW9lB,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,QAG5C+c,EAAwD,GACxDrK,GAAqBnc,KAAK6hB,iBAErBmE,EAAIJ,EAAYI,EAAIF,EAAUE,IAClCS,EAA8C,CACjD/kB,MAAO1B,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAGtkB,MAC9CS,OAAQnC,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAG7jB,OAC/CC,OAAQpC,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAG5jB,OAC/CskB,UAAW1mB,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAGU,UAClDjC,eAAgBzkB,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAGvB,eACvDpiB,WAAYrC,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAG3jB,WACnDskB,kBAAmB3mB,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAGW,kBAC1DC,aAAc5mB,KAAK+jB,qBAAqB,GAAGxI,OAAOyK,GAAGY,aACrDzK,SAAUA,GAEXqK,EAAiB3c,KAAK4c,G,OAGa,MAAhCzmB,KAAKme,iBAAiB5C,SACzBvb,KAAKme,iBAAiB5C,OAAS,IAIhCU,MAAMqK,UAAUzc,KAAK0c,MAAMvmB,KAAKme,iBAAiB5C,OAAQiL,GAErDX,IACH7lB,KAAK2iB,qCAAqCI,oBAAqB,G,WAInD,YAAAM,UAAd,W,+GACC,GAC0B,MAAzBrjB,KAAKme,kBAC+B,GAApCne,KAAK+jB,qBAAqBta,QACM,MAAhCzJ,KAAK+jB,qBAAqB,GAE1B,UAUD,GAP2C,MAAvC/jB,KAAK+jB,qBAAqB,GAAGtV,SAChCzO,KAAK+jB,qBAAqB,GAAGtV,OAAS,IAInCmX,GAAc5lB,KAAK+f,WAAa,GAAK/f,KAAKggB,eAE1C4F,GAAc5lB,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,OAGrD,OADAzJ,KAAK2iB,qCAAqC9V,oBAAqB,EAC/D,IAcD,IAXIgZ,GAAqB,EACrBC,EAAWF,EAAa5lB,KAAKggB,eAE7B8F,GAAY9lB,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,SACnDoc,GAAqB,EACrBC,EAAW9lB,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,QAG5Cod,EAAwD,GACxD1K,GAAqBnc,KAAK4hB,iBAErBoE,EAAIJ,EAAYI,EAAIF,EAAUE,IAClCc,EAA8C,CACjDzgB,KAAMrG,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAG3f,KAC7ClE,OAAQnC,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAG7jB,OAC/C0L,KAAM7N,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAGnY,KAC7C4W,eAAgBzkB,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAGvB,eACvDpiB,WAAYrC,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAG3jB,WACnD+jB,SAAUpmB,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAGI,SACjDC,QAASrmB,KAAK+jB,qBAAqB,GAAGtV,OAAOuX,GAAGK,QAChDlK,SAAUA,GAEX0K,EAAiBhd,KAAKid,G,OAGa,MAAhC9mB,KAAKme,iBAAiB1P,SACzBzO,KAAKme,iBAAiB1P,OAAS,IAIhCwN,MAAMqK,UAAUzc,KAAK0c,MAAMvmB,KAAKme,iBAAiB1P,OAAQoY,GAErDhB,IACH7lB,KAAK2iB,qCAAqC9V,oBAAqB,G,WAInD,YAAA2W,SAAd,W,+GACC,GAA6B,MAAzBxjB,KAAKme,kBAAgE,GAApCne,KAAK+jB,qBAAqBta,OAC9D,UAUD,GAPkC,MAA9BzJ,KAAKokB,wBACRpkB,KAAKokB,sBAAwB,IAI1BwB,GAAc5lB,KAAKigB,UAAY,GAAKjgB,KAAKkgB,cAEzC0F,GAAc5lB,KAAKokB,sBAAsB3a,OAG5C,OADAzJ,KAAK2iB,qCAAqC7V,mBAAoB,EAC9D,IAcD,IAXI+Y,GAAqB,EACrBC,EAAWF,EAAa5lB,KAAKkgB,cAE7B4F,GAAY9lB,KAAKokB,sBAAsB3a,SAC1Coc,GAAqB,EACrBC,EAAW9lB,KAAKokB,sBAAsB3a,QAGnCsd,EAAuD,GACvD5K,GAAqBnc,KAAK+hB,gBAErBiE,EAAIJ,EAAYI,EAAIF,EAAUE,IAClCgB,EAA8C,CACjD3gB,KAAMrG,KAAKokB,sBAAsB4B,GAAG3f,KACpClE,OAAQnC,KAAKokB,sBAAsB4B,GAAG7jB,OACtCC,OAAQpC,KAAKokB,sBAAsB4B,GAAG5jB,OACtCyL,KAAM7N,KAAKokB,sBAAsB4B,GAAGnY,KACpC4W,eAAgBzkB,KAAKokB,sBAAsB4B,GAAGvB,eAC9CpiB,WAAYrC,KAAKokB,sBAAsB4B,GAAG3jB,WAC1C+jB,SAAUpmB,KAAKokB,sBAAsB4B,GAAGI,SACxCC,QAASrmB,KAAKokB,sBAAsB4B,GAAGK,QACvClK,SAAUA,GAEX4K,EAAgBld,KAAKmd,G,OAGa,MAA/BhnB,KAAKme,iBAAiBzP,QACzB1O,KAAKme,iBAAiBzP,MAAQ,IAI/BuN,MAAMqK,UAAUzc,KAAK0c,MAAMvmB,KAAKme,iBAAiBzP,MAAOqY,GAEpDlB,IACH7lB,KAAK2iB,qCAAqC7V,mBAAoB,G,WAIlD,YAAA6W,WAAd,W,+GACC,GAA6B,MAAzB3jB,KAAKme,kBAAgE,GAApCne,KAAK+jB,qBAAqBta,OAC9D,UAUD,GAPoC,MAAhCzJ,KAAKkkB,0BACRlkB,KAAKkkB,wBAA0B,IAI5B0B,GAAc5lB,KAAKmgB,YAAc,GAAKngB,KAAKmgB,YAE3CyF,GAAc5lB,KAAKkkB,wBAAwBza,OAG9C,OADAzJ,KAAK2iB,qCAAqCvW,6BAA8B,EACxE,IAcD,IAXIyZ,GAAqB,EACrBC,EAAWF,EAAa5lB,KAAKogB,gBAE7B0F,GAAY9lB,KAAKkkB,wBAAwBza,SAC5Coc,GAAqB,EACrBC,EAAW9lB,KAAKkkB,wBAAwBza,QAGrCwd,EAAyD,GACzD9K,GAAqBnc,KAAK8hB,kBAErBkE,EAAIJ,EAAYI,EAAIF,EAAUE,IAClCgB,EAA8C,CACjD3gB,KAAMrG,KAAKkkB,wBAAwB8B,GAAG3f,KACtClE,OAAQnC,KAAKkkB,wBAAwB8B,GAAG7jB,OACxCC,OAAQpC,KAAKkkB,wBAAwB8B,GAAG5jB,OACxCyL,KAAM7N,KAAKkkB,wBAAwB8B,GAAGnY,KACtC4W,eAAgBzkB,KAAKkkB,wBAAwB8B,GAAGvB,eAChDpiB,WAAYrC,KAAKkkB,wBAAwB8B,GAAG3jB,WAC5C+jB,SAAUpmB,KAAKkkB,wBAAwB8B,GAAGI,SAC1CC,QAASrmB,KAAKkkB,wBAAwB8B,GAAGK,QACzClK,SAAUA,GAEX8K,EAAkBpd,KAAKmd,G,OAGa,MAAjChnB,KAAKme,iBAAiBxP,UACzB3O,KAAKme,iBAAiBxP,QAAU,IAIjCsN,MAAMqK,UAAUzc,KAAK0c,MAAMvmB,KAAKme,iBAAiBxP,QAASsY,GAEtDpB,IACH7lB,KAAK2iB,qCAAqCvW,6BAA8B,G,WAI1E,sBAAY,2BAAY,C,IAAxB,WACC,IAAI/E,EAAS,CACZ,CAAEtG,IAAK,WAAY4H,MAAO,WAAYC,UAAU,GAChD,CAAE7H,IAAK,SAAU4H,MAAO,SAAUC,UAAU,GAC5C,CAAE7H,IAAK,OAAQ4H,MAAO,OAAQC,UAAU,IAGzC,OAAOvB,G,gCAGR,sBAAY,iCAAkB,C,IAA9B,WACC,IAAIA,EAAS,CACZ,CAAEtG,IAAK,WAAY4H,MAAO,WAAYC,UAAU,GAChD,CAAE7H,IAAK,UAAW4H,MAAO,UAAWC,UAAU,IAG/C,OAAOvB,G,gCAGR,sBAAY,6BAAc,C,IAA1B,WACC,IAAIA,EAAS,CACZ,CAAEtG,IAAK,WAAY4H,MAAO,WAAYC,UAAU,GAChD,CAAE7H,IAAK,SAAU4H,MAAO,SAAUC,UAAU,GAC5C,CAAE7H,IAAK,QAAS4H,MAAO,OAAQC,UAAU,IAG1C,OAAOvB,G,gCAGR,sBAAY,gCAAiB,C,IAA7B,WACC,IAAIA,EAAS,CACZ,CAAEtG,IAAK,OAAQ4H,MAAO,OAAQC,UAAU,GACxC,CAAE7H,IAAK,SAAU4H,MAAO,SAAUC,UAAU,IAG7C,OAAOvB,G,gCAGR,sBAAY,kCAAmB,C,IAA/B,WACC,IAAIA,EAAS,CACZ,CAAEtG,IAAK,QAAS4H,MAAO,OAAQC,UAAU,GACzC,CAAE7H,IAAK,SAAU4H,MAAO,SAAUC,UAAU,IAG7C,OAAOvB,G,gCAGA,YAAA0W,OAAR,WACC/d,KAAK8Z,SAAW,EAChB9Z,KAAKqgB,qBAAsB,EAC3BrgB,KAAKyf,gBAAkB5f,EAAgB6f,UAG1B,YAAAwH,UAAd,SAAwBlD,G,kCAAoC/gB,SAAO,W,0EAClE,SAAMA,QAAQmiB,IAAI,CAACplB,KAAKmnB,oBAAoBnD,KAAgBwB,MAAK,SAAC4B,GACjE,EAAKtN,SAAW,Q,cADjB,S,YAKO,YAAAuN,mBAAR,WACC,IAAIC,EAAuCtnB,KAAK8b,cAgChD,OA9BwC,MAApC9b,KAAK8b,cAAcxB,gBACtBgN,EAAsBhN,cAAgBta,KAAK8b,cAAcxB,cAAc3O,QAAO,SAAUwY,GACvF,OAAwB,IAAjBA,EAAIhI,aAI0B,MAAnCnc,KAAK8b,cAAcrB,eACtB6M,EAAsB7M,aAAeza,KAAK8b,cAAcrB,aAAa9O,QAAO,SAAUwY,GACrF,OAAwB,IAAjBA,EAAIhI,aAI2B,MAApCnc,KAAK8b,cAAcnB,gBACtB2M,EAAsB3M,cAAgB3a,KAAK8b,cAAcnB,cAAchP,QAAO,SAAUwY,GACvF,OAAwB,IAAjBA,EAAIhI,aAIyB,MAAlCnc,KAAK8b,cAAcjB,cACtByM,EAAsBzM,YAAc7a,KAAK8b,cAAcjB,YAAYlP,QAAO,SAAUwY,GACnF,OAAwB,IAAjBA,EAAIhI,aAI0B,MAAnCnc,KAAK8b,cAAcf,eACtBuM,EAAsBvM,aAAe/a,KAAK8b,cAAcf,aAAapP,QAAO,SAAUwY,GACrF,OAAwB,IAAjBA,EAAIhI,aAINmL,GAGM,YAAAxJ,YAAd,W,iIAGC,OAFIwJ,EAAuCtnB,KAAKqnB,qBAEhD,GAAMpkB,QAAQmiB,IAAI,CAACplB,KAAKunB,4BAA4BD,KAAyB9B,MAAK,SAAC4B,GAClF,EAAKtN,SAAW,Q,cADjB,S,YAKO,YAAAyF,KAAR,WACCvf,KAAK8Z,SAAW,EAChB9Z,KAAKwnB,kBAAiB,GAEtB,IAAIC,EAA+C,GACd,MAAjCznB,KAAKme,iBAAiB3P,UACzBiZ,EAAkBznB,KAAKme,iBAAiB3P,QAAQ7C,QAAO,SAAUwY,GAChE,OAAwB,IAAjBA,EAAIhI,aAIb,IAAIuL,EAA6C,GACb,MAAhC1nB,KAAKme,iBAAiB5C,SACzBmM,EAAiB1nB,KAAKme,iBAAiB5C,OAAO5P,QAAO,SAAUwY,GAC9D,OAAwB,IAAjBA,EAAIhI,aAIb,IAAIwL,EAA6C,GACb,MAAhC3nB,KAAKme,iBAAiB1P,SACzBkZ,EAAiB3nB,KAAKme,iBAAiB1P,OAAO9C,QAAO,SAAUwY,GAC9D,OAAwB,IAAjBA,EAAIhI,aAIb,IAAIyL,EAA4C,GACb,MAA/B5nB,KAAKme,iBAAiBzP,QACzBkZ,EAAgB5nB,KAAKme,iBAAiBzP,MAAM/C,QAAO,SAAUwY,GAC5D,OAAwB,IAAjBA,EAAIhI,aAIb,IAAI0L,EAA8C,GACb,MAAjC7nB,KAAKme,iBAAiBxP,UACzBkZ,EAAkB7nB,KAAKme,iBAAiBxP,QAAQhD,QAAO,SAAUwY,GAChE,OAAwB,IAAjBA,EAAIhI,aAIb,IAAI2L,EAA6C,GAGL,MAAxC9nB,KAAK+jB,qBAAqB,GAAGvV,UACK,MAAjCxO,KAAKme,iBAAiB3P,UACzBxO,KAAKme,iBAAiB3P,QAAU,IAE7BxO,KAAKme,iBAAiB3P,QAAQ/E,OAASzJ,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,QAE/EwS,MAAMqK,UAAUzc,KAAK0c,MACpBkB,EACAznB,KAAK+jB,qBAAqB,GAAGvV,QAAQoO,MACpC5c,KAAKme,iBAAiB3P,QAAQ/E,OAC9BzJ,KAAK+jB,qBAAqB,GAAGvV,QAAQ/E,UAME,MAAvCzJ,KAAK+jB,qBAAqB,GAAGxI,SACI,MAAhCvb,KAAKme,iBAAiB5C,SACzBvb,KAAKme,iBAAiB5C,OAAS,IAE5Bvb,KAAKme,iBAAiB5C,OAAO9R,OAASzJ,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,QAE7EwS,MAAMqK,UAAUzc,KAAK0c,MACpBmB,EACA1nB,KAAK+jB,qBAAqB,GAAGxI,OAAOqB,MACnC5c,KAAKme,iBAAiB5C,OAAO9R,OAC7BzJ,KAAK+jB,qBAAqB,GAAGxI,OAAO9R,UAMG,MAAvCzJ,KAAK+jB,qBAAqB,GAAGtV,SACI,MAAhCzO,KAAKme,iBAAiB1P,SACzBzO,KAAKme,iBAAiB1P,OAAS,IAE5BzO,KAAKme,iBAAiB1P,OAAOhF,OAASzJ,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,QAE7EwS,MAAMqK,UAAUzc,KAAK0c,MACpBoB,EACA3nB,KAAK+jB,qBAAqB,GAAGtV,OAAOmO,MACnC5c,KAAKme,iBAAiB1P,OAAOhF,OAC7BzJ,KAAK+jB,qBAAqB,GAAGtV,OAAOhF,UAMG,MAAvCzJ,KAAK+jB,qBAAqB,GAAGE,SACG,MAA/BjkB,KAAKme,iBAAiBzP,QACzB1O,KAAKme,iBAAiBzP,MAAQ,IAE3B1O,KAAKme,iBAAiBzP,MAAMjF,OAASzJ,KAAKokB,sBAAsB3a,QAEnEwS,MAAMqK,UAAUzc,KAAK0c,MACpBqB,EACA5nB,KAAKokB,sBAAsBxH,MAAM5c,KAAKme,iBAAiBzP,MAAMjF,OAAQzJ,KAAKokB,sBAAsB3a,SAKlGwS,MAAMqK,UAAUzc,KAAK0c,MAAMuB,EAAgBF,GAEN,MAAjC5nB,KAAKme,iBAAiBxP,UACzB3O,KAAKme,iBAAiBxP,QAAU,IAE7B3O,KAAKme,iBAAiBxP,QAAQlF,OAASzJ,KAAKkkB,wBAAwBza,QAEvEwS,MAAMqK,UAAUzc,KAAK0c,MACpBsB,EACA7nB,KAAKkkB,wBAAwBtH,MAAM5c,KAAKme,iBAAiBxP,QAAQlF,OAAQzJ,KAAKkkB,wBAAwBza,SAKxGwS,MAAMqK,UAAUzc,KAAK0c,MAAMuB,EAAgBD,IAG5C,IAAIE,EAAsC,CACzC1hB,KAAMrG,KAAKme,iBAAiB9X,KAC5BhE,WAAYrC,KAAKme,iBAAiB9b,WAClCgiB,KAAMrkB,KAAKme,iBAAiBkG,KAC5BC,KAAMtkB,KAAKme,iBAAiBmG,KAC5BC,SAAUvkB,KAAKme,iBAAiBoG,SAChCC,SAAUxkB,KAAKme,iBAAiBqG,SAChCC,eAAgBzkB,KAAKme,iBAAiBsG,eACtClJ,OAAQmM,EACRlZ,QAASiZ,EACThZ,OAAQkZ,EACR1D,OAAQ6D,EACRpD,MAAO1kB,KAAKme,iBAAiBuG,OAG1BV,EAAoC,CACvCtZ,SAAU1K,KAAKyP,eAAerM,SAC9Bf,WAAYrC,KAAKslB,iBAAiBjjB,WAClCqjB,oBAAqBqC,GAGtB/nB,KAAKknB,UAAUlD,IAGhB,sBAAW,yBAAU,C,IAArB,WACC,OAAIhkB,KAAK2K,cACD3K,KAAK2K,cAActI,WAGpB,I,gCAGA,YAAAwZ,oBAAR,SAA4BuJ,GAC3BplB,KAAKihB,yBAA2BmE,EAChCplB,KAAKshB,yBAA2B8D,EAEhCplB,KAAK8b,cAAcxB,cAAc0N,SAAQ,SAACxgB,EAAMygB,GAC/CzgB,EAAK2U,SAAWiJ,MAIV,YAAArI,mBAAR,SAA2BqI,GAC1BplB,KAAKkhB,wBAA0BkE,EAC/BplB,KAAKuhB,wBAA0B6D,EAE/BplB,KAAK8b,cAAcrB,aAAauN,SAAQ,SAACxgB,EAAMygB,GAC9CzgB,EAAK2U,SAAWiJ,MAIV,YAAAzH,mBAAR,SAA2ByH,GAC1BplB,KAAKmhB,wBAA0BiE,EAC/BplB,KAAKwhB,wBAA0B4D,EAE/BplB,KAAK8b,cAAcf,aAAaiN,SAAQ,SAACxgB,EAAMygB,GAC9CzgB,EAAK2U,SAAWiJ,MAIV,YAAAjI,oBAAR,SAA4BiI,GAC3BplB,KAAKohB,yBAA2BgE,EAChCplB,KAAKyhB,yBAA2B2D,EAEhCplB,KAAK8b,cAAcnB,cAAcqN,SAAQ,SAACxgB,EAAMygB,GAC/CzgB,EAAK2U,SAAWiJ,MAIV,YAAA7H,kBAAR,SAA0B6H,GACzBplB,KAAKqhB,uBAAyB+D,EAC9BplB,KAAK0hB,uBAAyB0D,EAE9BplB,KAAK8b,cAAcjB,YAAYmN,SAAQ,SAACxgB,EAAMygB,GAC7CzgB,EAAK2U,SAAWiJ,MAIV,YAAAlH,cAAR,SAAsBkH,GACrBplB,KAAK4gB,mBAAqBwE,EAC1BplB,KAAK2hB,mBAAqByD,EAE1BplB,KAAKme,iBAAiB3P,QAAQwZ,SAAQ,SAACxgB,EAAMygB,GAC5CzgB,EAAK2U,SAAWiJ,MAIV,YAAA5G,aAAR,SAAqB4G,GACpBplB,KAAK6gB,kBAAoBuE,EACzBplB,KAAK4hB,kBAAoBwD,EAEzBplB,KAAKme,iBAAiB1P,OAAOuZ,SAAQ,SAACxgB,EAAMygB,GAC3CzgB,EAAK2U,SAAWiJ,MAIV,YAAAhG,aAAR,SAAqBgG,GACpBplB,KAAK8gB,kBAAoBsE,EACzBplB,KAAK6hB,kBAAoBuD,EAEzBplB,KAAKme,iBAAiB5C,OAAOyM,SAAQ,SAACxgB,EAAMygB,GAC3CzgB,EAAK2U,SAAWiJ,MAIV,YAAAxG,cAAR,SAAsBwG,GACrBplB,KAAK+gB,mBAAqBqE,EAC1BplB,KAAK8hB,mBAAqBsD,EAE1BplB,KAAKme,iBAAiBxP,QAAQqZ,SAAQ,SAACxgB,EAAMygB,GAC5CzgB,EAAK2U,SAAWiJ,MAIV,YAAApG,YAAR,SAAoBoG,GACnBplB,KAAKghB,iBAAmBoE,EACxBplB,KAAK+hB,iBAAmBqD,EAExBplB,KAAKme,iBAAiBzP,MAAMsZ,SAAQ,SAACxgB,EAAMygB,GAC1CzgB,EAAK2U,SAAWiJ,MAIlB,sBAAY,2BAAY,C,IAAxB,WACC,OAAOplB,KAAK4b,mBAAqB5b,KAAK8c,kBAAoB9c,KAAKkd,mBAAqBld,KAAKsd,iBAAmBtd,KAAK0d,mB,gCAGlH,sBAAY,gCAAiB,C,IAA7B,WACC,OAAO1d,KAAK8a,uBAAyB9a,KAAKoa,wBAA0Bpa,KAAK0a,wBAA0B1a,KAAK4a,sBAAwB5a,KAAKwa,wB,gCAGtI,sBAAY,qCAAsB,C,IAAlC,WACC,IAAI0N,EAAkB,EAQtB,OANIloB,KAAKqa,cAC8B,MAAlCra,KAAKqa,aAAaU,eACrBmN,GAAmBloB,KAAKqa,aAAaU,aAAatR,QAI7Cye,G,gCAGR,sBAAY,sCAAuB,C,IAAnC,WACC,IAAIC,EAAmB,EAQvB,OANInoB,KAAKqa,cAC+B,MAAnCra,KAAKqa,aAAaC,gBACrB6N,GAAoBnoB,KAAKqa,aAAaC,cAAc7Q,QAI/C0e,G,gCAGR,sBAAY,qCAAsB,C,IAAlC,WACC,IAAIC,EAAkB,EAQtB,OANIpoB,KAAKqa,cAC8B,MAAlCra,KAAKqa,aAAaI,eACrB2N,GAAmBpoB,KAAKqa,aAAaI,aAAahR,QAI7C2e,G,gCAGR,sBAAY,oCAAqB,C,IAAjC,WACC,IAAIC,EAAiB,EAQrB,OANIroB,KAAKqa,cAC6B,MAAjCra,KAAKqa,aAAaQ,cACrBwN,GAAkBroB,KAAKqa,aAAaQ,YAAYpR,QAI3C4e,G,gCAGR,sBAAY,sCAAuB,C,IAAnC,WACC,IAAIC,EAAmB,EAQvB,OANItoB,KAAKqa,cAC+B,MAAnCra,KAAKqa,aAAaM,gBACrB2N,GAAoBtoB,KAAKqa,aAAaM,cAAclR,QAI/C6e,G,gCAGR,sBAAY,sCAAuB,C,IAAnC,WACC,OAAOtoB,KAAKsb,iBAAmBtb,KAAKgb,kBAAoBhb,KAAKob,kBAAoBpb,KAAKqb,gBAAkBrb,KAAKmb,kB,gCAG9G,sBAAY,+BAAgB,C,IAA5B,WACC,IAAI+M,EAAkB,EAQtB,OANIloB,KAAKib,2BACqC,MAAzCjb,KAAKib,0BAA0BM,SAClC2M,GAAmBloB,KAAKib,0BAA0BM,OAAO9R,QAIpDye,G,gCAGR,sBAAY,gCAAiB,C,IAA7B,WACC,IAAIC,EAAmB,EAQvB,OANInoB,KAAKib,2BACsC,MAA1Cjb,KAAKib,0BAA0BzM,UAClC2Z,GAAoBnoB,KAAKib,0BAA0BzM,QAAQ/E,QAItD0e,G,gCAGR,sBAAY,gCAAiB,C,IAA7B,WACC,IAAIG,EAAmB,EAQvB,OANItoB,KAAKib,2BACsC,MAA1Cjb,KAAKib,0BAA0BtM,UAClC2Z,GAAoBtoB,KAAKib,0BAA0BtM,QAAQlF,QAItD6e,G,gCAGR,sBAAY,8BAAe,C,IAA3B,WACC,IAAID,EAAiB,EAQrB,OANIroB,KAAKib,2BACoC,MAAxCjb,KAAKib,0BAA0BvM,QAClC2Z,GAAkBroB,KAAKib,0BAA0BvM,MAAMjF,QAIlD4e,G,gCAGR,sBAAY,+BAAgB,C,IAA5B,WACC,IAAID,EAAkB,EAQtB,OANIpoB,KAAKib,2BACqC,MAAzCjb,KAAKib,0BAA0BxM,SAClC2Z,GAAmBpoB,KAAKib,0BAA0BxM,OAAOhF,QAIpD2e,G,gCAzuCQ,gBAAf,GAAQziB,Q,0CACO,gBAAf,GAAQA,Q,wCACO,gBAAf,GAAQA,Q,0CACO,gBAAf,GAAQA,Q,kDAEM,gBAAd,GAAQE,O,oCACM,gBAAd,GAAQA,O,kCACM,gBAAd,GAAQA,O,uCACO,gBAAf,GAAQE,Q,oCACO,gBAAf,GAAQA,Q,oCACO,gBAAf,GAAQA,Q,mCACO,gBAAf,GAAQA,Q,uCACO,gBAAf,GAAQA,Q,gDACO,gBAAf,GAAQA,Q,mCACO,gBAAf,GAAQA,Q,oCAES,gBAAjB,GAAQH,U,uCACS,gBAAjB,GAAQA,U,oCACS,gBAAjB,GAAQA,U,4CACM,gBAAd,GAAQC,O,2DAEK,gBAAb,kBAAKsH,S,8BAEe,gBAApB,GAAapH,Q,iCACO,gBAApB,GAAaJ,Q,oCAEM,gBAAnB6Z,GAAYzZ,Q,sCAtCOwiB,EAAS,gBAH7B,uBAAU,CACVta,WAAY,CAAE,wBAAyB,IAAqB,gBAAiBC,EAAA,SAEzDqa,GAuvCrB,EAvvCA,CAAuC,UAAlB,MgDjDiY,MCQlZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCaT,GAAU,uBAAU,WAa1B,0E,OAmCS,EAAAC,WAAqB,EACrB,EAAAC,gBAA0B,EAG1B,EAAAhZ,eAAkB,CACzB/N,MAAO,GACPgJ,SAAU,GAQH,EAAAiB,OAAS,GAET,EAAAtD,uBAA4C,KAC5C,EAAAqgB,uBAAmC,GACnC,EAAAC,wBAAkC,GAClC,EAAArgB,wBAAkC,EAClC,EAAAC,oBAA8B,EAC9B,EAAAT,oBAA8B,EAC9B,EAAAU,YAAsB,EACtB,EAAAC,gBAA0B,IAC1B,EAAAC,WAAqB,GACrB,EAAAzB,oBAA8B,GAC9B,EAAAqP,mBAAyC,CAAErB,SAAS,EAAMxF,eAAgB,MAC1E,EAAAuH,iBAA2B,EAC3B,EAAA4R,eAAyB,EACzB,EAAAjoB,SAAmB,EACnB,EAAA2G,aAAuB,EAEvB,EAAAD,OAA8B,CACrC,CAAEtG,IAAK,QAAS4H,MAAO,QAASC,UAAU,GAC1C,CACC7H,IAAK,eACL4H,MAAO,OACPC,UAAU,EACVkB,UAAW,SAAA3F,GACV,OAAO,EAAK0kB,mBAAmB1kB,IAEhC6F,iBAAiB,GAElB,CACCjJ,IAAK,UACL4H,MAAO,OACPC,UAAU,EACVkB,UAAW,SAAAlH,GACV,OAAO,EAAKsH,cAActH,IAE3BoH,iBAAiB,GAElB,CAAEjJ,IAAK,OAAQ4H,MAAO,OAAQC,UAAU,GACxC,CAAE7H,IAAK,OAAQ4H,MAAO,OAAQC,UAAU,IAiNjC,EAAA5B,kBAAoB,uBAAS,SAAO0B,GAAkB,+BAAGzF,SAAO,W,+DACvE,SAAMjD,KAAK6I,cAAcH,I,cAAzB,S,aACE,kB,EA6FJ,OAxYyC,oBA4C1B,YAAAogB,UAAd,SAAwBvhB,G,oGACvBvH,KAAKwoB,WAAY,EACjBxoB,KAAKyP,eAAiBlI,EAAIC,K,WA6C3B,sBAAY,0CAA2B,C,IAAvC,WACC,OAAO,iBAAIxH,KAAK+oB,gBAAiB,CAAC,UAAW,mB,gCAG9C,sBAAY,4BAAa,C,IAAzB,WACC,OAAmC,MAA3B/oB,KAAKsW,oBAAwE,MAA1CtW,KAAKsW,mBAAmB7G,gBAAqD,MAA3BzP,KAAKkZ,oBAC1FlZ,KAAKkZ,mBAAmB8P,cAAgBhpB,KAAKipB,6B,gCAGtD,sBAAY,kCAAmB,C,IAA/B,WAEC,OAAkD,MAA1CjpB,KAAKsW,mBAAmB7G,gBAA6E,MAAnDzP,KAAKsW,mBAAmB7G,eAAerM,UAAuE,GAAnDpD,KAAKsW,mBAAmB7G,eAAerM,U,gCAG7J,sBAAY,mCAAoB,C,IAAhC,WACC,OAAOpD,KAAK0W,oBAAsB,+DAAiE,I,gCAGtF,YAAA1T,QAAd,W,kCAAyBC,SAAO,W,+DAW/B,OAVAjD,KAAKkpB,sBAEDlpB,KAAKmpB,8BACRnpB,KAAKopB,yCAGFppB,KAAKmJ,mBACRnJ,KAAKoJ,mCAGN,GAAMnG,QAAQmiB,IAAI,CACjBplB,KAAKqpB,aACLrpB,KAAKspB,iBACLtpB,KAAKupB,kBACLvpB,KAAKwpB,6BACLxpB,KAAKypB,2B,cALN,S,YASO,YAAAP,oBAAR,WACC,IAAK,IAAIniB,KAAwB,OAAsB,CACtD,IAAMwQ,EAAKpK,OAAOpG,GAEbsG,MAAMkK,IACVvX,KAAK0oB,uBAAuB7e,KAAK0N,KAK5B,YAAA6R,uCAAR,sBACCppB,KAAKqH,OAAOwC,KAAK,CAChB9I,IAAK,gBACL4H,MAAO,iBACPC,UAAU,EACVkB,UAAW,SAACtJ,EAAOO,EAAKyG,GAAS,SAAKkiB,sBAAL,OAInC,sBAAY,gCAAiB,C,IAA7B,WACC,OAAO1pB,KAAKmK,YAAYC,SAAWpK,KAAKmK,YAAYE,kB,gCAG7C,YAAAjB,iCAAR,WACCpJ,KAAKqH,OAAOwC,KAAK,CAAE9I,IAAK,UAAW4H,MAAO,UAAWC,UAAU,EAAOnC,MAAO,iBAGhE,YAAA4iB,WAAd,W,kCAA4BpmB,SAAO,W,qEAelC,OAdAjD,KAAKsH,aAAc,EAEnBtH,KAAKqI,uBAAyB,eAAwBrI,KAAKqI,wBAAwB,GAE7EyC,EAAiE,CACtEC,OAAQ,CAAEP,KAAMxK,KAAKwI,YAAaiC,SAAUzK,KAAKyI,iBACjDuC,kBAAmBhL,KAAKqI,wBAGrBrI,KAAK0I,aACRoC,EAAiBC,OAAOP,KAAOxK,KAAKuI,oBACpCuC,EAAiBC,OAAOrC,WAAa1I,KAAK0I,YAG3C,GAAM1I,KAAK2pB,4BAA4B7e,I,cAAvC,SAEA9K,KAAKsH,aAAc,E,YAKN,YAAAkiB,2BAAd,W,kCAA4CvmB,SAAO,W,qEACf,SAAM,QAAIumB,8B,cAArCI,EAA2B,SAAvB,KACZ5pB,KAAK2oB,wBAA0BiB,E,YAGxB,YAAAf,mBAAR,SAA2B1kB,G,MAC1B,OAAmE,QAAnE,EAAOnE,KAAKiE,YAAYF,MAAK,SAAAG,GAAM,OAAAA,EAAGC,cAAH,YAAgC,eAAEzC,OAGtE,sBAAY,iCAAkB,C,IAA9B,sBACC,OAAO1B,KAAKiE,YAAYF,MAAK,SAAAG,GAAM,OAAAA,EAAGC,eAAiB,EAAKmS,mBAAmB7G,eAA5C,iB,gCAG5B,YAAAvF,cAAR,SAAsBtH,G,MACrB,OAAwD,QAAxD,EAAO5C,KAAKoL,WAAWrH,MAAK,SAAAsH,GAAM,OAAAA,EAAGzI,SAAH,YAAsB,eAAElB,OAG3D,sBAAY,2CAA4B,C,IAAxC,WACC,OAAO,iBAAI1B,KAAK2J,aAAc,CAAC,SAAU,2B,gCAGlC,YAAA+f,sBAAR,SAA8Bje,GAC7B,OAAIA,EAAOkN,kBACH,cAGJlN,EAAOmN,eACH,cAGD5Y,KAAK2oB,yBAGb,sBAAY,+BAAgB,C,IAA5B,sBACC,GAAI3oB,KAAKsI,uBAAwB,CAChC,IAAM,EAAatI,KAAK0I,WAAWuE,cAC7BC,EAAqBC,OAAOnN,KAAK0I,YACjC,GAAuB2E,MAAMH,GAEnC,OAAOlN,KAAK8D,YAAY6H,QACvB,SAAA3H,G,QACC,OAAAA,EAAEtC,MAAMuL,cAAcK,SAAS,IAC9BtJ,EAAEqgB,MAAQrgB,EAAEqgB,KAAKpX,cAAcK,SAAS,IACxC,GAAuBtJ,EAAEsgB,KAAKlT,WAAWnE,gBAAkB,IACV,QADqB,EACvE,EAAK7B,WAAWrH,MAAK,SAAAwJ,GAAK,OAAAA,EAAE3K,UAAYoB,EAAd,kBAAwB,eAC/CtC,MAAMuL,cACPK,SAAS,MAEqC,QAF1B,EACtB,EAAKrJ,YACHF,MAAK,SAAAG,GAAM,OAAAA,EAAGC,eAAiBH,EAApB,uBAAmC,eAC7CtC,MAAMuL,cACPK,SAAS,OAId,OAAOtN,KAAK8D,a,gCAGb,sBAAY,mDAAoC,C,IAAhD,WACC,OAAO9D,KAAKsI,uBACTtI,KAAKgM,uBAAuB6d,4BAC5B7pB,KAAKgM,uBAAuB8d,qB,gCAGlB,YAAA3iB,wBAAd,W,kCAAyClE,SAAO,W,+DAC/C,OAAKjD,KAAK8G,SAAW9G,KAAKsH,aAAetH,KAAKgN,sCAAwChN,KAAK8H,mBAC1F,KAGD9H,KAAK8H,oBAAqB,EAC1B9H,KAAK0I,WAAa1I,KAAKuI,sBAAwBvI,KAAKwI,cAEpD,GAAMxI,KAAKqpB,e,cAAX,SAEArpB,KAAK8H,oBAAqB,E,YAGnB,YAAAZ,gBAAR,WACClH,KAAKuM,cAAa,GAClBvM,KAAK+pB,iBAAiB,kBACtB/pB,KAAKgqB,uBAAsB,GAC3BhqB,KAAK4oB,eAAgB,GAGd,YAAAvS,0BAAR,WACCrW,KAAKgqB,uBAAsB,GAC3BhqB,KAAK4oB,eAAgB,EACrB5oB,KAAK+pB,iBAAiB,OAGf,YAAApiB,gBAAR,SAAwB8D,GACvBzL,KAAKuM,cAAa,GAClBvM,KAAK+pB,iBAAiBte,GACtBzL,KAAKsM,0CAA0C,kBAC/CtM,KAAKgqB,uBAAsB,GAC3BhqB,KAAK4oB,eAAgB,GAGd,YAAA/gB,kBAAR,SAA0B4D,GACzBzL,KAAK+pB,iBAAiBte,GACtBzL,KAAKgX,iBAAkB,GAGhB,YAAAC,uBAAR,WACCjX,KAAKgX,iBAAkB,EACvBhX,KAAK+pB,iBAAiB,OAGvB,sBAAY,6BAAc,C,IAA1B,WACC,OAAI/pB,KAAKiqB,gBACD,WAAWjqB,KAAK2K,cAAcjJ,MAG/B,qB,gCAGR,sBAAY,8BAAe,C,IAA3B,WACC,OAAO1B,KAAK2K,eAAiB3K,KAAK2K,cAAcvH,SAAW,G,gCAO9C,YAAAyF,cAAd,SAA4BH,G,kCAAqBzF,SAAO,W,qEAUvD,OATM8I,EAAkB,iCACpB/L,KAAKgM,wBAAsB,CAC9B6d,6BAA6B,IAG9B7pB,KAAKqM,6BAA6BN,GAElC/L,KAAK0I,WAAaA,EAEb1I,KAAK0I,WAKV,GAAM1I,KAAKqpB,eAJVrpB,KAAKsI,wBAAyB,EAC9B,K,cAGD,SACAtI,KAAKsI,wBAAyB,E,YAG/B,sBAAY,iCAAkB,C,IAA9B,WACC,OAAItI,KAAKiqB,gBACDjqB,KAAK0oB,uBAGN,I,gCAGA,YAAAlS,gCAAR,SAAwCF,GACvCtW,KAAKsW,mBAAqBA,GAGb,YAAAC,sBAAd,W,kCAAuCtT,SAAO,W,4EACzCjD,KAAKsW,mBAAmB7G,eAAerM,UACtCqM,EAAiBzP,KAAKsW,mBAAmB7G,eAC7CA,EAAepN,WAAarC,KAAKqC,WACjC,GAAMrC,KAAKkqB,aAAaza,KAHrB,M,OAIH,OADA,SACA,I,OAGD,SAAMzP,KAAKmqB,UAAUnqB,KAAKsW,mBAAmB7G,iB,cAA7C,S,YAGO,YAAAgH,0BAAR,WACCzW,KAAKuM,cAAa,IAGnB,sBAAW,yBAAU,C,IAArB,WAEC,OAAIvM,KAAK2K,cACD3K,KAAK2K,cAActI,WAGpB,I,gCAGR,sBAAY,2BAAY,C,IAAxB,sBACO+B,EAAyBpE,KAAKiE,YAAYF,MAC9C,SAAAG,GAAM,OAAAA,EAAGC,eAAiB,EAAKwG,cAAzB,gBAER,OAAOvG,GAA4C,IAA9BA,EAAWgmB,gB,gCAGjC,sBAAY,yBAAU,C,IAAtB,WACC,IAAIC,EAAS,EAKb,OAJ0B,MAAtBrqB,KAAK2K,eAAgE,MAAvC3K,KAAK2K,cAAcxJ,kBAA0E,MAA9CnB,KAAK2K,cAAcxJ,iBAAiBoa,SACpH8O,EAASrqB,KAAK2K,cAAcxJ,iBAAiBoa,QAGvC8O,G,gCAGR,sBAAY,+BAAgB,C,IAA5B,WACC,IAAI9S,EAAK,EAKT,OAJ0B,MAAtBvX,KAAK2K,gBACR4M,EAAMvX,KAAK2K,cAAcvH,UAGnBmU,G,gCAGA,YAAApR,gBAAR,WACCnG,KAAKyoB,gBAAiB,GAGvB,sBAAY,gCAAiB,C,IAA7B,WACC,IAAI7Z,EAAO,GAIX,OAHK5O,KAAK6W,eACTjI,EAAO,2CAEDA,G,gCArYiD,gBAAxD,kBAAK,CAAEhB,UAAU,EAAME,SAAS,EAAOD,KAAME,W,8BACtC,gBAAP,a,sCACO,gBAAP,a,sCACyB,gBAAzB,oBAAO,mB,kCACD,gBAAN,Y,mCACM,gBAAN,Y,iCAES,gBAAT,e,mCAEe,gBAAf,GAAQpI,Q,gCACO,gBAAf,GAAQA,Q,qCACO,gBAAf,GAAQA,Q,kDAGO,gBAAf,GAAQA,Q,4CACO,gBAAf,GAAQA,Q,mCACS,gBAAjB,GAAQC,U,uCAES,gBAAjB,GAAQA,U,gEAGS,gBAAjB,GAAQA,U,mDAGS,gBAAjB,GAAQA,U,4CAEM,gBAAd,GAAQC,O,oCACM,gBAAd,GAAQA,O,6CACM,gBAAd,GAAQA,O,kCACM,gBAAd,GAAQA,O,kCACM,gBAAd,GAAQA,O,wCAED,gBAAP,qB,8BAjCmBykB,EAAW,gBAX/B,uBAAU,CACVrc,WAAY,CACX,2BAA4B,GAC5B,sBAAuB,GACvB,cAAe,GACf,gBAAiBC,EAAA,KACjB,wBAAyB,IACzBqa,UAAW,GACX,oBAAqBgC,GAAA,SAGFD,GAwYrB,EAxYA,CAAyC,UAApB,MC7CqZ,MCQta,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCLT,GAAU,uBAAU,WAY1B,0E,OAgBS,EAAAE,mBAA+B,GAC/B,EAAA7pB,SAAmB,E,EAmC5B,OApDyC,oBAmB1B,YAAAqC,QAAd,W,kCAAyBC,SAAO,W,+DAI/B,OAHAjD,KAAKkpB,sBACLlpB,KAAKyqB,oBAEL,GAAMzqB,KAAKoX,oBAAoB,O,cAA/B,S,YAGO,YAAA8R,oBAAR,WACC,IAAK,IAAIniB,KAAwB,OAAsB,CACtD,IAAMwQ,EAAKpK,OAAOpG,GAEbsG,MAAMkK,IACVvX,KAAKwqB,mBAAmB3gB,KAAK0N,KAKhC,sBAAY,iCAAkB,C,IAA9B,WACC,OACC,iBAAIvX,KAAK2J,aAAc,CAAC,cACvB3J,KAAKmK,YAAYC,SAAWpK,KAAKmK,YAAYE,kBAAoBrK,KAAKmK,YAAYugB,mB,gCAK7E,YAAAC,OAAR,SAAeC,GACTA,IAIL5qB,KAAK6qB,QAAQD,GACb5qB,KAAK8qB,uBAAuB,QAjDH,gBAAzB,oBAAO,mB,kCACD,gBAAN,Y,mCAEe,gBAAf,GAAQnlB,Q,0CAEuB,gBAA/B,GAAQC,SAAS,e,wCAC0B,gBAA3C,GAAQA,SAAS,2B,6CAIH,gBAAd,GAAQC,O,gDACM,gBAAd,GAAQA,O,uCACM,gBAAd,GAAQA,O,kDACM,gBAAd,GAAQA,O,0CA8BT,gBADC,mBAAM,wB,qBAQN,MAnDmBklB,EAAW,gBAV/B,uBAAU,CACV9c,WAAY,CACX,iBAAkB,EAClB,2BAA4B,GAC5B,oBAAqB,GACrB,4BAA6B,GAC7B,eAAgB,GAChB,aAAc+c,GAAA,SAGKD,GAoDrB,EApDA,CAAyC,UAApB,MC1BiX,MCQlY,I,UAAY,eACd,GACAjrB,EACA2B,GACA,EACA,KACA,WACA,OAIa,gB,6CCnBf,yBAAylB,EAAG,G,yDCA5lB,yBAAolB,EAAG,G,yDCAvlB,yBAAwjB,EAAG,G,kCCA3jB,yBAAqiB,EAAG","file":"js/chunk-5285cb13.f22c9b28.js","sourcesContent":["import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PresetEdit.vue?vue&type=style&index=0&id=e4b69c82&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PresetEdit.vue?vue&type=style&index=0&id=e4b69c82&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceTable.vue?vue&type=style&index=0&id=22197d9e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceTable.vue?vue&type=style&index=0&id=22197d9e&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPreview.vue?vue&type=style&index=0&id=fe4339c4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPreview.vue?vue&type=style&index=0&id=fe4339c4&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceEdit.vue?vue&type=style&index=0&id=57d9e408&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceEdit.vue?vue&type=style&index=0&id=57d9e408&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card card-secondary h-100\"},[_c('nav-header',{attrs:{\"title\":\"Device Setup\"}}),(_vm.canViewDeviceSetup)?_c('div',[_c('b-tabs',{attrs:{\"card\":\"\"},model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{attrs:{\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('i',{staticClass:\"fas fa-power-off\"}),_vm._v(\"\\n\\t\\t\\t\\t\\tDevices\\n\\t\\t\\t\\t\\t\"),(_vm.deviceTypeCounts)?_c('b-badge',{attrs:{\"variant\":\"secondary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.deviceTypeCounts.devices)+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,94635628)},[_c('device-table',{attrs:{\"visible\":_vm.tabIndex === 0}})],1),_vm._l((_vm.childDeviceTypeIds),function(childDeviceTypeId){return _c('child-device-tab-wrapper',{key:childDeviceTypeId,attrs:{\"isForAllServers\":true,\"visible\":_vm.tabIndex === childDeviceTypeId,\"deviceTypeIdentifier\":childDeviceTypeId}})})],2),_c('delete-child-device-modal'),(_vm.editChildDeviceModalVisible)?_c('child-device-edit'):_vm._e(),(_vm.cameraPreviewModalVisible)?_c('camera-preview'):_vm._e()],1):_c('div',[_c('h3',{staticClass:\"pt-4 text-center\"},[_vm._v(\"You don't have permission to view this page\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, Watch } from \"vue-property-decorator\";\r\nimport { namespace, Getter, Mutation, Action } from \"vuex-class\";\r\nimport { get } from \"lodash\";\r\nimport { VueBootstrapField, FeaturesList, PaginatedQueryParams } from \"@/store/types\";\r\nimport {\r\n\tServerDetails,\r\n\tServerType,\r\n\tDeviceConfiguration,\r\n\tDeviceConfigurationErrors,\r\n\tServerConfiguration,\r\n\tDeviceConfigurationSelections,\r\n\tDeviceConfigurationCamera,\r\n\tDeviceConfigurationCameraSelection,\r\n\tDeviceConfigurationAlarm,\r\n\tDeviceConfigurationAlarmSelection,\r\n\tDeviceConfigurationAudio,\r\n\tDeviceConfigurationAudioSelection,\r\n\tDeviceConfigurationRelay,\r\n\tDeviceConfigurationRelaySelection,\r\n\tDeviceResponseRecordsRetrievalStatus,\r\n\tAddDevicesForServerParams,\r\n\tFetchConfigForServerParams,\r\n DeviceTypeCounts,\r\n DeviceChange,\r\n DeviceChanges\r\n} from \"@/store/devices/types\";\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\r\nimport SureViewIcon from \"../SureViewIcon.vue\";\r\nimport { devicesApi } from \"@/services/api.devices.service\";\r\nimport { DeviceService } from \"@sureview/v2-cameras\";\r\nimport { EventDetails } from \"@/store/site-monitor/types\";\r\n\r\nenum GetConfigStatus {\r\n\tInactive = \"inactive\",\r\n\tConnecting = \"connecting\",\r\n\tConnected = \"connected\",\r\n\tProcessing = \"processing\",\r\n\tDone = \"done\",\r\n\tError = \"error\",\r\n}\r\n\r\nconst Devices = namespace(\"devices\");\r\nconst SiteMonitor = namespace(\"siteMonitor\");\r\nconst SessionStore = namespace(\"sessions\");\r\n\r\n@Component({\r\n\tcomponents: { \"vue-perfect-scrollbar\": VuePerfectScrollbar, \"sureview-icon\": SureViewIcon },\r\n})\r\nexport default class GetConfig extends Vue {\r\n\tprivate fields: VueBootstrapField[] = [\r\n\t\t{ key: \"title\", label: \"Title\", sortable: false },\r\n\t\t{ key: \"serverTypeID\", label: \"Server Type ID\", sortable: false },\r\n\t\t{ key: \"groupID\", label: \"Area\", sortable: false },\r\n\t\t{ key: \"host\", label: \"Host\", sortable: false },\r\n\t\t{ key: \"port\", label: \"Port\", sortable: false },\r\n\t\t{ key: \"isRaiseIndividual\", label: \"IsRaiseIndividual\", sortable: false, class: \"centered\" },\r\n\t\t{ key: \"isRaiseGrouped\", label: \"IsRaiseGrouped\", sortable: false, class: \"centered\" },\r\n\t\t{ key: \"actions\", label: \"Actions\", sortable: false },\r\n\t];\r\n\r\n\t@Devices.Action private addDevicesForServer: (serverConfig: ServerConfiguration) => Promise;\r\n\t@Devices.Action private fetchServerConfig: (params: FetchConfigForServerParams) => Promise;\r\n\t@Devices.Action private fetchServerReConfig: (serverConfig: ServerConfiguration) => Promise;\r\n\t@Devices.Action private applyDeviceChangesForServer: (changes: DeviceChanges) => Promise; \r\n\r\n\t@Devices.State private currentServer: ServerDetails;\r\n\t@Devices.State private serverTypes: ServerType[];\r\n\t@Devices.State private deviceTypeCounts: DeviceTypeCounts;\r\n\t@Devices.Getter gettingConfig: boolean;\r\n\t@Devices.Getter settingConfig: boolean;\r\n\t@Devices.Getter serverConfig: DeviceConfiguration[];\r\n\t@Devices.Getter getCurrentServer: ServerDetails;\r\n\t@Devices.Getter deviceConfigurationErrors: DeviceConfigurationErrors;\r\n\t@Devices.Getter changeErrors: DeviceChanges;\r\n\t@Devices.Getter deviceChanges: DeviceChanges;\r\n\r\n\t@Devices.Mutation private setSettingConfig: (settingConfig: boolean) => void;\r\n\t@Devices.Mutation private setExtraValue: (extraValue: string) => void;\r\n\t@Devices.Mutation setServerModalVisible: (IsVisible: boolean) => void;\r\n\t@Devices.State private deviceResponseRecordsRetrievalStatus: DeviceResponseRecordsRetrievalStatus;\r\n\t\r\n\t@Prop(Number) eventid?: number;\r\n\r\n\t@SessionStore.Getter getSession: any;\r\n\t@SessionStore.Action updateSession: any;\r\n\r\n\t@SiteMonitor.Getter getEventDetails: EventDetails;\r\n\r\n\tcreated() {\r\n\t\tthis.updateSession({ resourceId: 3 });\r\n\t\tthis.selectedServer = { ...this.currentServer };\r\n\t\tthis.deviceCounts = { ...this.deviceTypeCounts };\r\n\t}\r\n\r\n\tmounted() {\r\n\t\tthis.$root.$on(\"bv::collapse::state\", (collapseId, isJustShown) => {\r\n\t\t\tswitch (collapseId) {\r\n\t\t\t\tcase \"accordion-cameras\": {\r\n\t\t\t\t\tthis.cameraAccordionTabOpened = isJustShown;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase \"accordion-alarms\": {\r\n\t\t\t\t\tthis.alarmAccordionTabOpened = isJustShown;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase \"accordion-audios\": {\r\n\t\t\t\t\tthis.audioAccordionTabOpened = isJustShown;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase \"accordion-doors\": {\r\n\t\t\t\t\tthis.doorAccordionTabOpened = isJustShown;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tcase \"accordion-outputs\": {\r\n\t\t\t\t\tthis.outputAccordionTabOpened = isJustShown;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate updateExtraValue(ev) {\r\n\t\tthis.setExtraValue(ev);\r\n\t}\r\n\r\n\tresetModal() {}\r\n\r\n\tprivate selectedServer: ServerDetails;\r\n\tprivate deviceCounts: DeviceTypeCounts;\r\n\tprivate getConfigStatus: GetConfigStatus = GetConfigStatus.Inactive;\r\n\tprivate progress = 0;\r\n\tprivate camerasPage: number = 1;\r\n\tprivate camerasPageSize: number = 200;\r\n\r\n\tprivate alarmsPage: number = 1;\r\n\tprivate alarmsPageSize: number = 200;\r\n\r\n\tprivate audiosPage: number = 1;\r\n\tprivate audiosPageSize: number = 200;\r\n\r\n\tprivate doorsPage: number = 1;\r\n\tprivate doorsPageSize: number = 200;\r\n\r\n\tprivate outputsPage: number = 1;\r\n\tprivate outputsPageSize: number = 200;\r\n\r\n\tprivate getConfigHasBeenRan = false;\r\n\tprivate displayFilteredRecords: boolean = false;\r\n\tprivate cameraTableIsBusy: boolean = false;\r\n\tprivate loadingMoreCameras: boolean = false;\r\n\r\n\tprivate alarmTableIsBusy: boolean = false;\r\n\tprivate loadingMoreAlarms: boolean = false;\r\n\r\n\tprivate audioTableIsBusy: boolean = false;\r\n\tprivate loadingMoreAudios: boolean = false;\r\n\r\n\tprivate doorTableIsBusy: boolean = false;\r\n\tprivate loadingMoreDoors: boolean = false;\r\n\r\n\tprivate outputTableIsBusy: boolean = false;\r\n\tprivate loadingMoreOutputs: boolean = false;\r\n\r\n\tprivate cameraChangesTableIsBusy: boolean = false;\r\n\tprivate loadingMoreCameraChanges: boolean = false;\r\n\r\n\tprivate alarmChangesTableIsBusy: boolean = false;\r\n\tprivate loadingMoreAlarmChanges: boolean = false;\r\n\r\n\tprivate audioChangesTableIsBusy: boolean = false;\r\n\tprivate loadingMoreAudioChanges: boolean = false;\r\n\r\n\tprivate doorChangesTableIsBusy: boolean = false;\r\n\tprivate loadingMoreDoorChanges: boolean = false;\r\n\r\n\tprivate outputChangeTableIsBusy: boolean = false;\r\n\tprivate loadingMoreOutputChanges: boolean = false;\r\n\r\n\tprivate allCamerasSelected: boolean = true;\r\n\tprivate allAudiosSelected: boolean = true;\r\n\tprivate allAlarmsSelected: boolean = true;\r\n\tprivate allOutputsSelected: boolean = true;\r\n\tprivate allDoorsSelected: boolean = true;\r\n\r\n\tprivate allCameraChangesSelected: boolean = true;\r\n\tprivate allAudioChangesSelected: boolean = true;\r\n\tprivate allAlarmChangesSelected: boolean = true;\r\n\tprivate allOutputChangesSelected: boolean = true;\r\n\tprivate allDoorChangesSelected: boolean = true;\r\n\r\n\tprivate noCameraChangesSelected: boolean = false;\r\n\tprivate noAudioChangesSelected: boolean = false;\r\n\tprivate noAlarmChangesSelected: boolean = false;\r\n\tprivate noOutputChangesSelected: boolean = false;\r\n\tprivate noDoorChangesSelected: boolean = false;\r\n\r\n\tprivate noCamerasSelected: boolean = false;\r\n\tprivate noAudiosSelected: boolean = false;\r\n\tprivate noAlarmsSelected: boolean = false;\r\n\tprivate noOutputsSelected: boolean = false;\r\n\tprivate noDoorsSelected: boolean = false;\r\n\r\n\tprivate camerasTotal = 0;\r\n\tprivate alarmsTotal = 0;\r\n\tprivate audiosTotal = 0;\r\n\tprivate doorsTotal = 0;\r\n\tprivate outputsTotal = 0;\r\n\r\n\tprivate cameraChangesTotal = 0;\r\n\tprivate alarmChangesTotal = 0;\r\n\tprivate audioChangesTotal = 0;\r\n\tprivate doorChangesTotal = 0;\r\n\tprivate outputChangesTotal = 0;\r\n\r\n\tprivate cameraAccordionTabOpened = false;\r\n\tprivate alarmAccordionTabOpened = false;\r\n\tprivate audioAccordionTabOpened = false;\r\n\tprivate doorAccordionTabOpened = false;\r\n\tprivate outputAccordionTabOpened = false;\r\n\r\n\tprivate serverConfigDataList: DeviceConfiguration[];\r\n\tprivate serverConfigData: DeviceConfigurationSelections;\r\n\tprivate serverConfigDataDoors: DeviceConfigurationRelay[];\r\n\tprivate serverConfigDataOutputs: DeviceConfigurationRelay[];\r\n\r\n\tprivate get extraValueLabel(): string {\r\n\t\treturn `${this.extraValuePlaceholder}:`;\r\n\t}\r\n\r\n\tprivate get extraValuePlaceholder(): string {\r\n\t\tconst serverType = this.selectedServerType;\r\n\r\n\t\tif (serverType && serverType.extraValueName) {\r\n\t\t\treturn serverType.extraValueName;\r\n\t\t}\r\n\r\n\t\treturn \"Extra Value\";\r\n\t}\r\n\r\n\tprivate get selectedServerType(): ServerType {\r\n\t\treturn this.serverTypes.find((st) => st.serverTypeID === this.selectedServer.serverTypeID);\r\n\t}\r\n\r\n\tprivate get hasDevices(): Boolean {\r\n\t\tif (this.currentServer.deviceTypeCounts != null && (this.currentServer.deviceTypeCounts.devices > 0 ||this.currentServer.deviceTypeCounts.cameras > 0 ||\r\n\t\t this.currentServer.deviceTypeCounts.audios > 0 || this.currentServer.deviceTypeCounts.doors > 0 || this.currentServer.deviceTypeCounts.outputs > 0 ||\r\n\t\t\tthis.currentServer.deviceTypeCounts.alarms > 0)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tprivate get allCamerasInCurrentQueryAreRetrieved(): boolean {\r\n\t\t/*return this.displayFilteredRecords\r\n\t\t\t? this.recordsRetrievalStatus.allFilteredServersRetrieved\r\n\t\t\t: this.recordsRetrievalStatus.allServersRetrieved;*/\r\n\t\treturn this.deviceResponseRecordsRetrievalStatus.allCamerasRetrieved;\r\n\t\t//return this.displayFilteredRecords ? this.recordsRetrievalStatus.allCamerasRetrieved : false;\r\n\t}\r\n\r\n\tprivate handleCameraScrollBarReachEnd() {\r\n\t\tif (\r\n\t\t\tthis.cameraTableIsBusy ||\r\n\t\t\tthis.allCamerasInCurrentQueryAreRetrieved ||\r\n\t\t\tthis.loadingMoreCameras ||\r\n\t\t\t!this.cameraAccordionTabOpened\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreCameras = true;\r\n\t\t//this.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\t\tthis.camerasPage++;\r\n\t\tthis.getCamerasForScroll();\r\n\t\tthis.loadingMoreCameras = false;\r\n\t}\r\n\r\n\tprivate getCamerasForScroll() {\r\n\t\tthis.cameraTableIsBusy = true;\r\n\r\n\t\t/*if (this.searchTerm) {\r\n\t\t\tcancellableQuery.params.page = this.filteredRecordsPage;\r\n\t\t\tcancellableQuery.params.searchTerm = this.searchTerm;\r\n\t\t}*/\r\n\r\n\t\tthis.getCameras();\r\n\t\tthis.cameraTableIsBusy = false;\r\n\t}\r\n\r\n\tprivate get allAlarmsInCurrentQueryAreRetrieved(): boolean {\r\n\t\t/*return this.displayFilteredRecords\r\n\t\t\t? this.recordsRetrievalStatus.allFilteredServersRetrieved\r\n\t\t\t: this.recordsRetrievalStatus.allServersRetrieved;*/\r\n\t\treturn this.deviceResponseRecordsRetrievalStatus.allAlarmsRetrieved;\r\n\t\t//return this.displayFilteredRecords ? this.recordsRetrievalStatus.allCamerasRetrieved : false;\r\n\t}\r\n\r\n\tprivate handleAlarmScrollBarReachEnd() {\r\n\t\tif (\r\n\t\t\tthis.alarmTableIsBusy ||\r\n\t\t\tthis.allAlarmsInCurrentQueryAreRetrieved ||\r\n\t\t\tthis.loadingMoreAlarms ||\r\n\t\t\t!this.alarmAccordionTabOpened\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreCameras = true;\r\n\t\t//this.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\t\tthis.alarmsPage++;\r\n\t\tthis.getAlarmsForScroll();\r\n\t\tthis.loadingMoreAlarms = false;\r\n\t}\r\n\r\n\tprivate getAlarmsForScroll() {\r\n\t\tthis.alarmTableIsBusy = true;\r\n\r\n\t\t/*if (this.searchTerm) {\r\n\t\t\tcancellableQuery.params.page = this.filteredRecordsPage;\r\n\t\t\tcancellableQuery.params.searchTerm = this.searchTerm;\r\n\t\t}*/\r\n\r\n\t\tthis.getAlarms();\r\n\t\tthis.alarmTableIsBusy = false;\r\n\t}\r\n\r\n\tprivate get allAudiosInCurrentQueryAreRetrieved(): boolean {\r\n\t\t/*return this.displayFilteredRecords\r\n\t\t\t? this.recordsRetrievalStatus.allFilteredServersRetrieved\r\n\t\t\t: this.recordsRetrievalStatus.allServersRetrieved;*/\r\n\t\treturn this.deviceResponseRecordsRetrievalStatus.allAudiosRetrieved;\r\n\t\t//return this.displayFilteredRecords ? this.recordsRetrievalStatus.allCamerasRetrieved : false;\r\n\t}\r\n\r\n\tprivate handleAudioScrollBarReachEnd() {\r\n\t\tif (\r\n\t\t\tthis.audioTableIsBusy ||\r\n\t\t\tthis.allAudiosInCurrentQueryAreRetrieved ||\r\n\t\t\tthis.loadingMoreAudios ||\r\n\t\t\t!this.audioAccordionTabOpened\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreAudios = true;\r\n\t\t//this.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\t\tthis.audiosPage++;\r\n\t\tthis.getAudiosForScroll();\r\n\t\tthis.loadingMoreAudios = false;\r\n\t}\r\n\r\n\tprivate getAudiosForScroll() {\r\n\t\tthis.audioTableIsBusy = true;\r\n\r\n\t\t/*if (this.searchTerm) {\r\n\t\t\tcancellableQuery.params.page = this.filteredRecordsPage;\r\n\t\t\tcancellableQuery.params.searchTerm = this.searchTerm;\r\n\t\t}*/\r\n\r\n\t\tthis.getAudios();\r\n\t\tthis.audioTableIsBusy = false;\r\n\t}\r\n\r\n\tprivate get allDoorsInCurrentQueryAreRetrieved(): boolean {\r\n\t\t/*return this.displayFilteredRecords\r\n\t\t\t? this.recordsRetrievalStatus.allFilteredServersRetrieved\r\n\t\t\t: this.recordsRetrievalStatus.allServersRetrieved;*/\r\n\t\treturn this.deviceResponseRecordsRetrievalStatus.allDoorsRetrieved;\r\n\t\t//return this.displayFilteredRecords ? this.recordsRetrievalStatus.allCamerasRetrieved : false;\r\n\t}\r\n\r\n\tprivate handleDoorScrollBarReachEnd() {\r\n\t\tif (\r\n\t\t\tthis.doorTableIsBusy ||\r\n\t\t\tthis.allDoorsInCurrentQueryAreRetrieved ||\r\n\t\t\tthis.loadingMoreDoors ||\r\n\t\t\t!this.doorAccordionTabOpened\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreDoors = true;\r\n\t\t//this.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\t\tthis.doorsPage++;\r\n\t\tthis.getDoorsForScroll();\r\n\t\tthis.loadingMoreDoors = false;\r\n\t}\r\n\r\n\tprivate getDoorsForScroll() {\r\n\t\tthis.doorTableIsBusy = true;\r\n\r\n\t\t/*if (this.searchTerm) {\r\n\t\t\tcancellableQuery.params.page = this.filteredRecordsPage;\r\n\t\t\tcancellableQuery.params.searchTerm = this.searchTerm;\r\n\t\t}*/\r\n\r\n\t\tthis.getDoors();\r\n\t\tthis.doorTableIsBusy = false;\r\n\t}\r\n\r\n\tprivate get allOutputsInCurrentQueryAreRetrieved(): boolean {\r\n\t\t/*return this.displayFilteredRecords\r\n\t\t\t? this.recordsRetrievalStatus.allFilteredServersRetrieved\r\n\t\t\t: this.recordsRetrievalStatus.allServersRetrieved;*/\r\n\t\treturn this.deviceResponseRecordsRetrievalStatus.allFilteredOutputsRetrieved;\r\n\t\t//return this.displayFilteredRecords ? this.recordsRetrievalStatus.allCamerasRetrieved : false;\r\n\t}\r\n\r\n\tprivate handleOutputScrollBarReachEnd() {\r\n\t\tif (\r\n\t\t\tthis.outputTableIsBusy ||\r\n\t\t\tthis.allOutputsInCurrentQueryAreRetrieved ||\r\n\t\t\tthis.loadingMoreOutputs ||\r\n\t\t\t!this.outputAccordionTabOpened\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreOutputs = true;\r\n\t\t//this.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\t\tthis.outputsPage++;\r\n\t\tthis.getOutputsForScroll();\r\n\t\tthis.loadingMoreOutputs = false;\r\n\t}\r\n\r\n\tprivate getOutputsForScroll() {\r\n\t\tthis.outputTableIsBusy = true;\r\n\r\n\t\t/*if (this.searchTerm) {\r\n\t\t\tcancellableQuery.params.page = this.filteredRecordsPage;\r\n\t\t\tcancellableQuery.params.searchTerm = this.searchTerm;\r\n\t\t}*/\r\n\r\n\t\tthis.getOutputs();\r\n\t\tthis.outputTableIsBusy = false;\r\n\t}\r\n\tprivate populateLocalReGetConfigData(serverConfigAlreadySet: boolean) {\r\n\t\tif (this.deviceChanges != null) {\r\n\t\t\tthis.cameraChangesTotal = this.deviceChanges.cameraChanges != null ? this.deviceChanges.cameraChanges.length : 0;\r\n\t\t\tthis.audioChangesTotal = this.deviceChanges.audioChanges != null ? this.deviceChanges.audioChanges.length : 0;\r\n\t\t\tthis.outputChangesTotal = this.deviceChanges.outputChanges != null ? this.deviceChanges.outputChanges.length : 0;\r\n\t\t\tthis.doorChangesTotal = this.deviceChanges.doorChanges != null ? this.deviceChanges.doorChanges.length : 0;\r\n\t\t\tthis.alarmChangesTotal = this.deviceChanges.alarmChanges != null ? this.deviceChanges.alarmChanges.length : 0;\r\n\t\t}\r\n\t\t\r\n\t\tthis.progress = 100;\r\n\t}\r\n\r\n\tprivate populateLocalData(serverConfigAlreadySet: boolean) {\r\n\t\tif (serverConfigAlreadySet == null || !serverConfigAlreadySet) {\r\n\t\t\tthis.serverConfigDataList = this.serverConfig;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].cameras != null && this.serverConfigDataList[0].cameras.length > 0) {\r\n\t\t\tthis.camerasTotal = this.serverConfigDataList[0].cameras.length;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].alarms != null && this.serverConfigDataList[0].alarms.length > 0) {\r\n\t\t\tthis.alarmsTotal = this.serverConfigDataList[0].alarms.length;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].audios != null && this.serverConfigDataList[0].audios.length > 0) {\r\n\t\t\tthis.audiosTotal = this.serverConfigDataList[0].audios.length;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].relays != null && this.serverConfigDataList[0].relays.length > 0) {\r\n\t\t\tthis.serverConfigDataOutputs = this.serverConfigDataList[0].relays.filter(function (obj) {\r\n\t\t\t\treturn obj.type == 0;\r\n\t\t\t});\r\n\t\t\tthis.outputsTotal = this.serverConfigDataOutputs != null ? this.serverConfigDataOutputs.length : 0;\r\n\t\t\tthis.serverConfigDataDoors = this.serverConfigDataList[0].relays.filter(function (obj) {\r\n\t\t\t\treturn obj.type != 0;\r\n\t\t\t});\r\n\t\t\tthis.doorsTotal = this.serverConfigDataDoors != null ? this.serverConfigDataDoors.length : 0;\r\n\t\t}\r\n\r\n\t\t//Map the config data retrieved to also include selected property in the arrays (set to true by default)\r\n\t\tif (this.serverConfigDataList != null && this.serverConfigDataList.length > 0) {\r\n\t\t\tthis.serverConfigData = {\r\n\t\t\t\tname: this.serverConfigDataList[0].name,\r\n\t\t\t\textraValue: this.serverConfigDataList[0].extraValue,\r\n\t\t\t\thost: this.serverConfigDataList[0].host,\r\n\t\t\t\tport: this.serverConfigDataList[0].port,\r\n\t\t\t\tusername: this.serverConfigDataList[0].username,\r\n\t\t\t\tpassword: this.serverConfigDataList[0].password,\r\n\t\t\t\tsyncIdentifier: this.serverConfigDataList[0].syncIdentifier,\r\n\t\t\t\talarms: null,\r\n\t\t\t\tcameras: null,\r\n\t\t\t\taudios: null,\r\n\t\t\t\tdoors: null,\r\n\t\t\t\toutputs: null,\r\n\t\t\t\tusers: this.serverConfigDataList[0].users,\r\n\t\t\t};\r\n\r\n\t\t\tthis.getCameras();\r\n\t\t\tthis.getAlarms();\r\n\t\t\tthis.getAudios();\r\n\t\t\tthis.getDoors();\r\n\t\t\tthis.getOutputs();\r\n\t\t}\r\n\r\n\t\tthis.getConfigStatus = GetConfigStatus.Done;\r\n\t\tthis.getConfigHasBeenRan = true;\r\n\t\tthis.progress = 100;\r\n\t}\r\n\r\n\tprivate async doGetConfig() {\r\n\t\tlet urlBase = window.location.origin;\r\n\t\tlet deviceService = new DeviceService(urlBase);\r\n\t\tlet authSessionID = this.getSession(\"3\");\r\n\t\tdeviceService.authSessionID = authSessionID;\r\n\t\tthis.getConfigStatus = GetConfigStatus.Connecting;\r\n\t\tthis.progress = 0;\r\n\r\n\t\tawait Promise.all([this.fetchServerConfig({ server: this.getCurrentServer, serverType: this.selectedServerType, auth: deviceService.authSessionID })]).then(\r\n\t\t\t(values) => {\r\n\t\t\t\tthis.populateLocalData(false);\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tprivate async doReGetConfig() {\r\n\t\tlet urlBase = window.location.origin;\r\n\t\tlet deviceService = new DeviceService(urlBase);\r\n\t\tlet authSessionID = this.getSession(\"3\");\r\n\t\tdeviceService.authSessionID = authSessionID;\r\n\t\tthis.getConfigStatus = GetConfigStatus.Connecting;\r\n\t\tthis.progress = 0;\r\n\r\n let serverConfig: ServerConfiguration;\r\n\r\n\t\tawait Promise.all([this.fetchServerConfig({ server: this.getCurrentServer, serverType: this.selectedServerType, auth: deviceService.authSessionID })]).then(\r\n\t\t\t(values) => {\r\n\t\t\t\tthis.serverConfigDataList = this.serverConfig;\r\n\r\n\t\t\t\tserverConfig = {\r\n\t\t\t\t\tserverId: this.selectedServer.serverID,\r\n\t\t\t\t\textraValue: this.getCurrentServer.extraValue,\r\n\t\t\t\t\tdeviceConfiguration: this.serverConfigDataList[0]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tawait Promise.all([this.fetchServerReConfig(serverConfig)]).then(\r\n\t\t\t\t(values) => {\r\n\t\t\t\t\tthis.populateLocalReGetConfigData(false);\r\n\t\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tprivate async getCameras() {\r\n\t\tif (\r\n\t\t\tthis.serverConfigData == null ||\r\n\t\t\tthis.serverConfigDataList.length == 0 ||\r\n\t\t\tthis.serverConfigDataList[0] == null\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].cameras == null) {\r\n\t\t\tthis.serverConfigDataList[0].cameras = [];\r\n\t\t}\r\n\r\n\t\t//read page number and page size to work out start and end points\r\n\t\tlet startIndex = (this.camerasPage - 1) * this.camerasPageSize;\r\n\r\n\t\tif (startIndex >= this.serverConfigDataList[0].cameras.length) {\r\n\t\t\t//all cameras loaded\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allCamerasRetrieved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet totalWillbeReached = false;\r\n\t\tlet endIndex = startIndex + this.camerasPageSize;\r\n\r\n\t\tif (endIndex >= this.serverConfigDataList[0].cameras.length) {\r\n\t\t\ttotalWillbeReached = true;\r\n\t\t\tendIndex = this.serverConfigDataList[0].cameras.length;\r\n\t\t}\r\n\r\n\t\tlet camerasWithSelect: DeviceConfigurationCameraSelection[] = [];\r\n\t\tlet selected: boolean = !this.noCamerasSelected;\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet newCamera: DeviceConfigurationCameraSelection = {\r\n\t\t\t\tname: this.serverConfigDataList[0].cameras[i].name,\r\n\t\t\t\tinput1: this.serverConfigDataList[0].cameras[i].input1,\r\n\t\t\t\thasPtz: this.serverConfigDataList[0].cameras[i].hasPtz,\r\n\t\t\t\tpresets: this.serverConfigDataList[0].cameras[i].presets,\r\n\t\t\t\treferenceImage: this.serverConfigDataList[0].cameras[i].referenceImage,\r\n\t\t\t\tsyncIdentifier: this.serverConfigDataList[0].cameras[i].syncIdentifier,\r\n\t\t\t\textraValue: this.serverConfigDataList[0].cameras[i].extraValue,\r\n\t\t\t\tfeatures: this.serverConfigDataList[0].cameras[i].features,\r\n\t\t\t\tlatLong: this.serverConfigDataList[0].cameras[i].latLong,\r\n\t\t\t\tselected: selected,\r\n\t\t\t};\r\n\t\t\tcamerasWithSelect.push(newCamera);\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigData.cameras == null) {\r\n\t\t\tthis.serverConfigData.cameras = [];\r\n\t\t}\r\n\r\n\t\t//this.serverConfigData.cameras.push(...camerasWithSelect);\r\n\t\tArray.prototype.push.apply(this.serverConfigData.cameras, camerasWithSelect);\r\n\r\n\t\tif (totalWillbeReached) {\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allCamerasRetrieved = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async getAlarms() {\r\n\t\tif (\r\n\t\t\tthis.serverConfigData == null ||\r\n\t\t\tthis.serverConfigDataList.length == 0 ||\r\n\t\t\tthis.serverConfigDataList[0] == null\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].alarms == null) {\r\n\t\t\tthis.serverConfigDataList[0].alarms = [];\r\n\t\t}\r\n\r\n\t\t//read page number and page size to work out start and end points\r\n\t\tlet startIndex = (this.alarmsPage - 1) * this.alarmsPageSize;\r\n\r\n\t\tif (startIndex >= this.serverConfigDataList[0].alarms.length) {\r\n\t\t\t//all alarms loaded\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allAlarmsRetrieved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet totalWillbeReached = false;\r\n\t\tlet endIndex = startIndex + this.alarmsPageSize;\r\n\r\n\t\tif (endIndex >= this.serverConfigDataList[0].alarms.length) {\r\n\t\t\ttotalWillbeReached = true;\r\n\t\t\tendIndex = this.serverConfigDataList[0].alarms.length;\r\n\t\t}\r\n\r\n\t\tlet alarmsWithSelect: DeviceConfigurationAlarmSelection[] = [];\r\n\t\tlet selected: boolean = !this.noAlarmsSelected;\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet newAlarm: DeviceConfigurationAlarmSelection = {\r\n\t\t\t\ttitle: this.serverConfigDataList[0].alarms[i].title,\r\n\t\t\t\tinput1: this.serverConfigDataList[0].alarms[i].input1,\r\n\t\t\t\tinput2: this.serverConfigDataList[0].alarms[i].input2,\r\n\t\t\t\teventType: this.serverConfigDataList[0].alarms[i].eventType,\r\n\t\t\t\tsyncIdentifier: this.serverConfigDataList[0].alarms[i].syncIdentifier,\r\n\t\t\t\textraValue: this.serverConfigDataList[0].alarms[i].extraValue,\r\n\t\t\t\tlinkedCameraInput: this.serverConfigDataList[0].alarms[i].linkedCameraInput,\r\n\t\t\t\thighPriority: this.serverConfigDataList[0].alarms[i].highPriority,\r\n\t\t\t\tselected: selected,\r\n\t\t\t};\r\n\t\t\talarmsWithSelect.push(newAlarm);\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigData.alarms == null) {\r\n\t\t\tthis.serverConfigData.alarms = [];\r\n\t\t}\r\n\r\n\t\t//this.serverConfigData.alarms.push(...alarmsWithSelect);\r\n\t\tArray.prototype.push.apply(this.serverConfigData.alarms, alarmsWithSelect);\r\n\r\n\t\tif (totalWillbeReached) {\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allAlarmsRetrieved = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async getAudios() {\r\n\t\tif (\r\n\t\t\tthis.serverConfigData == null ||\r\n\t\t\tthis.serverConfigDataList.length == 0 ||\r\n\t\t\tthis.serverConfigDataList[0] == null\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].audios == null) {\r\n\t\t\tthis.serverConfigDataList[0].audios = [];\r\n\t\t}\r\n\r\n\t\t//read page number and page size to work out start and end points\r\n\t\tlet startIndex = (this.audiosPage - 1) * this.audiosPageSize;\r\n\r\n\t\tif (startIndex >= this.serverConfigDataList[0].audios.length) {\r\n\t\t\t//all audios loaded\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allAudiosRetrieved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet totalWillbeReached = false;\r\n\t\tlet endIndex = startIndex + this.audiosPageSize;\r\n\r\n\t\tif (endIndex >= this.serverConfigDataList[0].audios.length) {\r\n\t\t\ttotalWillbeReached = true;\r\n\t\t\tendIndex = this.serverConfigDataList[0].audios.length;\r\n\t\t}\r\n\r\n\t\tlet audiosWithSelect: DeviceConfigurationAudioSelection[] = [];\r\n\t\tlet selected: boolean = !this.noAudiosSelected;\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet newAudio: DeviceConfigurationAudioSelection = {\r\n\t\t\t\tname: this.serverConfigDataList[0].audios[i].name,\r\n\t\t\t\tinput1: this.serverConfigDataList[0].audios[i].input1,\r\n\t\t\t\ttype: this.serverConfigDataList[0].audios[i].type,\r\n\t\t\t\tsyncIdentifier: this.serverConfigDataList[0].audios[i].syncIdentifier,\r\n\t\t\t\textraValue: this.serverConfigDataList[0].audios[i].extraValue,\r\n\t\t\t\tfeatures: this.serverConfigDataList[0].audios[i].features,\r\n\t\t\t\tlatLong: this.serverConfigDataList[0].audios[i].latLong,\r\n\t\t\t\tselected: selected,\r\n\t\t\t};\r\n\t\t\taudiosWithSelect.push(newAudio);\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigData.audios == null) {\r\n\t\t\tthis.serverConfigData.audios = [];\r\n\t\t}\r\n\r\n\t\t//this.serverConfigData.audios.push(...audiosWithSelect);\r\n\t\tArray.prototype.push.apply(this.serverConfigData.audios, audiosWithSelect);\r\n\r\n\t\tif (totalWillbeReached) {\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allAudiosRetrieved = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async getDoors() {\r\n\t\tif (this.serverConfigData == null || this.serverConfigDataList.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataDoors == null) {\r\n\t\t\tthis.serverConfigDataDoors = [];\r\n\t\t}\r\n\r\n\t\t//read page number and page size to work out start and end points\r\n\t\tlet startIndex = (this.doorsPage - 1) * this.doorsPageSize;\r\n\r\n\t\tif (startIndex >= this.serverConfigDataDoors.length) {\r\n\t\t\t//all doors loaded\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allDoorsRetrieved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet totalWillbeReached = false;\r\n\t\tlet endIndex = startIndex + this.doorsPageSize;\r\n\r\n\t\tif (endIndex >= this.serverConfigDataDoors.length) {\r\n\t\t\ttotalWillbeReached = true;\r\n\t\t\tendIndex = this.serverConfigDataDoors.length;\r\n\t\t}\r\n\r\n\t\tlet doorsWithSelect: DeviceConfigurationRelaySelection[] = [];\r\n\t\tlet selected: boolean = !this.noDoorsSelected;\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet newRelay: DeviceConfigurationRelaySelection = {\r\n\t\t\t\tname: this.serverConfigDataDoors[i].name,\r\n\t\t\t\tinput1: this.serverConfigDataDoors[i].input1,\r\n\t\t\t\tinput2: this.serverConfigDataDoors[i].input2,\r\n\t\t\t\ttype: this.serverConfigDataDoors[i].type,\r\n\t\t\t\tsyncIdentifier: this.serverConfigDataDoors[i].syncIdentifier,\r\n\t\t\t\textraValue: this.serverConfigDataDoors[i].extraValue,\r\n\t\t\t\tfeatures: this.serverConfigDataDoors[i].features,\r\n\t\t\t\tlatLong: this.serverConfigDataDoors[i].latLong,\r\n\t\t\t\tselected: selected,\r\n\t\t\t};\r\n\t\t\tdoorsWithSelect.push(newRelay);\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigData.doors == null) {\r\n\t\t\tthis.serverConfigData.doors = [];\r\n\t\t}\r\n\r\n\t\t//this.serverConfigData.doors.push(...doorsWithSelect);\r\n\t\tArray.prototype.push.apply(this.serverConfigData.doors, doorsWithSelect);\r\n\r\n\t\tif (totalWillbeReached) {\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allDoorsRetrieved = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async getOutputs() {\r\n\t\tif (this.serverConfigData == null || this.serverConfigDataList.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataOutputs == null) {\r\n\t\t\tthis.serverConfigDataOutputs = [];\r\n\t\t}\r\n\r\n\t\t//read page number and page size to work out start and end points\r\n\t\tlet startIndex = (this.outputsPage - 1) * this.outputsPage;\r\n\r\n\t\tif (startIndex >= this.serverConfigDataOutputs.length) {\r\n\t\t\t//all outputs loaded\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allFilteredOutputsRetrieved = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet totalWillbeReached = false;\r\n\t\tlet endIndex = startIndex + this.outputsPageSize;\r\n\r\n\t\tif (endIndex >= this.serverConfigDataOutputs.length) {\r\n\t\t\ttotalWillbeReached = true;\r\n\t\t\tendIndex = this.serverConfigDataOutputs.length;\r\n\t\t}\r\n\r\n\t\tlet outputsWithSelect: DeviceConfigurationRelaySelection[] = [];\r\n\t\tlet selected: boolean = !this.noOutputsSelected;\r\n\r\n\t\tfor (let i = startIndex; i < endIndex; i++) {\r\n\t\t\tlet newRelay: DeviceConfigurationRelaySelection = {\r\n\t\t\t\tname: this.serverConfigDataOutputs[i].name,\r\n\t\t\t\tinput1: this.serverConfigDataOutputs[i].input1,\r\n\t\t\t\tinput2: this.serverConfigDataOutputs[i].input2,\r\n\t\t\t\ttype: this.serverConfigDataOutputs[i].type,\r\n\t\t\t\tsyncIdentifier: this.serverConfigDataOutputs[i].syncIdentifier,\r\n\t\t\t\textraValue: this.serverConfigDataOutputs[i].extraValue,\r\n\t\t\t\tfeatures: this.serverConfigDataOutputs[i].features,\r\n\t\t\t\tlatLong: this.serverConfigDataOutputs[i].latLong,\r\n\t\t\t\tselected: selected,\r\n\t\t\t};\r\n\t\t\toutputsWithSelect.push(newRelay);\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigData.outputs == null) {\r\n\t\t\tthis.serverConfigData.outputs = [];\r\n\t\t}\r\n\r\n\t\t//this.serverConfigData.outputs.push(...outputsWithSelect);\r\n\t\tArray.prototype.push.apply(this.serverConfigData.outputs, outputsWithSelect);\r\n\r\n\t\tif (totalWillbeReached) {\r\n\t\t\tthis.deviceResponseRecordsRetrievalStatus.allFilteredOutputsRetrieved = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get deviceFields() {\r\n\t\tlet fields = [\r\n\t\t\t{ key: \"selected\", label: \"Selected\", sortable: false },\r\n\t\t\t{ key: \"input1\", label: \"Input1\", sortable: false },\r\n\t\t\t{ key: \"name\", label: \"Name\", sortable: false },\r\n\t\t];\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\tprivate get deviceChangeFields() {\r\n\t\tlet fields = [\r\n\t\t\t{ key: \"selected\", label: \"Selected\", sortable: false },\r\n\t\t\t{ key: \"details\", label: \"Details\", sortable: false },\r\n\t\t];\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\tprivate get responseFields() {\r\n\t\tlet fields = [\r\n\t\t\t{ key: \"selected\", label: \"Selected\", sortable: false },\r\n\t\t\t{ key: \"input1\", label: \"Input1\", sortable: false },\r\n\t\t\t{ key: \"title\", label: \"Name\", sortable: false },\r\n\t\t];\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\tprivate get deviceErrorFields() {\r\n\t\tlet fields = [\r\n\t\t\t{ key: \"name\", label: \"Name\", sortable: false },\r\n\t\t\t{ key: \"input1\", label: \"Input1\", sortable: false },\r\n\t\t];\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\tprivate get responseErrorFields() {\r\n\t\tlet fields = [\r\n\t\t\t{ key: \"title\", label: \"Name\", sortable: false },\r\n\t\t\t{ key: \"input1\", label: \"Input1\", sortable: false },\r\n\t\t];\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\tprivate cancel() {\r\n\t\tthis.progress = 0;\r\n\t\tthis.getConfigHasBeenRan = false;\r\n\t\tthis.getConfigStatus = GetConfigStatus.Inactive;\r\n\t}\r\n\r\n\tprivate async addConfig(serverConfig: ServerConfiguration): Promise {\r\n\t\tawait Promise.all([this.addDevicesForServer(serverConfig)]).then((response) => {\r\n\t\t\tthis.progress = 100;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getSelectedChanges(): DeviceChanges {\r\n\t\tlet selectedDeviceChanges: DeviceChanges = this.deviceChanges;\r\n\r\n\t\tif (this.deviceChanges.cameraChanges != null) {\r\n\t\t\tselectedDeviceChanges.cameraChanges = this.deviceChanges.cameraChanges.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.deviceChanges.audioChanges != null) {\r\n\t\t\tselectedDeviceChanges.audioChanges = this.deviceChanges.audioChanges.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.deviceChanges.outputChanges != null) {\r\n\t\t\tselectedDeviceChanges.outputChanges = this.deviceChanges.outputChanges.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.deviceChanges.doorChanges != null) {\r\n\t\t\tselectedDeviceChanges.doorChanges = this.deviceChanges.doorChanges.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.deviceChanges.alarmChanges != null) {\r\n\t\t\tselectedDeviceChanges.alarmChanges = this.deviceChanges.alarmChanges.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn selectedDeviceChanges;\r\n\t}\r\n\r\n\tprivate async saveChanges() {\r\n\t\tlet selectedDeviceChanges: DeviceChanges = this.getSelectedChanges();\r\n\r\n\t\tawait Promise.all([this.applyDeviceChangesForServer(selectedDeviceChanges)]).then((response) => {\r\n\t\t\tthis.progress = 100;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate save() {\r\n\t\tthis.progress = 0;\r\n\t\tthis.setSettingConfig(true);\r\n\r\n\t\tlet selectedCameras: DeviceConfigurationCamera[] = [];\r\n\t\tif (this.serverConfigData.cameras != null) {\r\n\t\t\tselectedCameras = this.serverConfigData.cameras.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet selectedAlarms: DeviceConfigurationAlarm[] = [];\r\n\t\tif (this.serverConfigData.alarms != null) {\r\n\t\t\tselectedAlarms = this.serverConfigData.alarms.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet selectedAudios: DeviceConfigurationAudio[] = [];\r\n\t\tif (this.serverConfigData.audios != null) {\r\n\t\t\tselectedAudios = this.serverConfigData.audios.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet selectedDoors: DeviceConfigurationRelay[] = [];\r\n\t\tif (this.serverConfigData.doors != null) {\r\n\t\t\tselectedDoors = this.serverConfigData.doors.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet selectedOutputs: DeviceConfigurationRelay[] = [];\r\n\t\tif (this.serverConfigData.outputs != null) {\r\n\t\t\tselectedOutputs = this.serverConfigData.outputs.filter(function (obj) {\r\n\t\t\t\treturn obj.selected === true;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet selectedRelays: DeviceConfigurationRelay[] = [];\r\n\r\n\t\t//Add unloaded (through pagination) devices to the lists\r\n\t\tif (this.serverConfigDataList[0].cameras != null) {\r\n\t\t\tif (this.serverConfigData.cameras == null) {\r\n\t\t\t\tthis.serverConfigData.cameras = [];\r\n\t\t\t}\r\n\t\t\tif (this.serverConfigData.cameras.length < this.serverConfigDataList[0].cameras.length) {\r\n\t\t\t\t//selectedCameras.push(...devices.cameras.slice(0, selectedCameras.length));\r\n\t\t\t\tArray.prototype.push.apply(\r\n\t\t\t\t\tselectedCameras,\r\n\t\t\t\t\tthis.serverConfigDataList[0].cameras.slice(\r\n\t\t\t\t\t\tthis.serverConfigData.cameras.length,\r\n\t\t\t\t\t\tthis.serverConfigDataList[0].cameras.length\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].alarms != null) {\r\n\t\t\tif (this.serverConfigData.alarms == null) {\r\n\t\t\t\tthis.serverConfigData.alarms = [];\r\n\t\t\t}\r\n\t\t\tif (this.serverConfigData.alarms.length < this.serverConfigDataList[0].alarms.length) {\r\n\t\t\t\t//selectedAlarms.push(...devices.alarms.slice(0, selectedAlarms.length));\r\n\t\t\t\tArray.prototype.push.apply(\r\n\t\t\t\t\tselectedAlarms,\r\n\t\t\t\t\tthis.serverConfigDataList[0].alarms.slice(\r\n\t\t\t\t\t\tthis.serverConfigData.alarms.length,\r\n\t\t\t\t\t\tthis.serverConfigDataList[0].alarms.length\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].audios != null) {\r\n\t\t\tif (this.serverConfigData.audios == null) {\r\n\t\t\t\tthis.serverConfigData.audios = [];\r\n\t\t\t}\r\n\t\t\tif (this.serverConfigData.audios.length < this.serverConfigDataList[0].audios.length) {\r\n\t\t\t\t//selectedAudios.push(...devices.audios.slice(0, selectedAudios.length));\r\n\t\t\t\tArray.prototype.push.apply(\r\n\t\t\t\t\tselectedAudios,\r\n\t\t\t\t\tthis.serverConfigDataList[0].audios.slice(\r\n\t\t\t\t\t\tthis.serverConfigData.audios.length,\r\n\t\t\t\t\t\tthis.serverConfigDataList[0].audios.length\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.serverConfigDataList[0].relays != null) {\r\n\t\t\tif (this.serverConfigData.doors == null) {\r\n\t\t\t\tthis.serverConfigData.doors = [];\r\n\t\t\t}\r\n\t\t\tif (this.serverConfigData.doors.length < this.serverConfigDataDoors.length) {\r\n\t\t\t\t//selectedDoors.push(...this.serverConfigDataDoors.slice(this.serverConfigData.doors.length, this.serverConfigDataDoors.length));\r\n\t\t\t\tArray.prototype.push.apply(\r\n\t\t\t\t\tselectedDoors,\r\n\t\t\t\t\tthis.serverConfigDataDoors.slice(this.serverConfigData.doors.length, this.serverConfigDataDoors.length)\r\n\t\t\t\t);\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\t//selectedRelays.push(...selectedDoors);\r\n\t\t\tArray.prototype.push.apply(selectedRelays, selectedDoors);\r\n\r\n\t\t\tif (this.serverConfigData.outputs == null) {\r\n\t\t\t\tthis.serverConfigData.outputs = [];\r\n\t\t\t}\r\n\t\t\tif (this.serverConfigData.outputs.length < this.serverConfigDataOutputs.length) {\r\n\t\t\t\t//selectedOutputs.push(...this.serverConfigDataOutputs.slice(this.serverConfigData.outputs.length, this.serverConfigDataOutputs.length));\r\n\t\t\t\tArray.prototype.push.apply(\r\n\t\t\t\t\tselectedOutputs,\r\n\t\t\t\t\tthis.serverConfigDataOutputs.slice(this.serverConfigData.outputs.length, this.serverConfigDataOutputs.length)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t//selectedRelays.push(...selectedOutputs);\r\n\t\t\tArray.prototype.push.apply(selectedRelays, selectedOutputs);\r\n\t\t}\r\n\r\n\t\tlet selectedConfig: DeviceConfiguration = {\r\n\t\t\tname: this.serverConfigData.name,\r\n\t\t\textraValue: this.serverConfigData.extraValue,\r\n\t\t\thost: this.serverConfigData.host,\r\n\t\t\tport: this.serverConfigData.port,\r\n\t\t\tusername: this.serverConfigData.username,\r\n\t\t\tpassword: this.serverConfigData.password,\r\n\t\t\tsyncIdentifier: this.serverConfigData.syncIdentifier,\r\n\t\t\talarms: selectedAlarms,\r\n\t\t\tcameras: selectedCameras,\r\n\t\t\taudios: selectedAudios,\r\n\t\t\trelays: selectedRelays,\r\n\t\t\tusers: this.serverConfigData.users,\r\n\t\t};\r\n\r\n\t\tlet serverConfig: ServerConfiguration = {\r\n\t\t\tserverId: this.selectedServer.serverID,\r\n\t\t\textraValue: this.getCurrentServer.extraValue,\r\n\t\t\tdeviceConfiguration: selectedConfig,\r\n\t\t};\r\n\r\n\t\tthis.addConfig(serverConfig);\r\n\t}\r\n\r\n\tpublic get extraValue(): string {\r\n\t\tif (this.currentServer) {\r\n\t\t\treturn this.currentServer.extraValue;\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tprivate toggleCameraChanges(all: boolean) {\r\n\t\tthis.allCameraChangesSelected = all;\r\n\t\tthis.noCameraChangesSelected = !all;\r\n\r\n\t\tthis.deviceChanges.cameraChanges.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleAudioChanges(all: boolean) {\r\n\t\tthis.allAudioChangesSelected = all;\r\n\t\tthis.noAudioChangesSelected = !all;\r\n\r\n\t\tthis.deviceChanges.audioChanges.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleAlarmChanges(all: boolean) {\r\n\t\tthis.allAlarmChangesSelected = all;\r\n\t\tthis.noAlarmChangesSelected = !all;\r\n\r\n\t\tthis.deviceChanges.alarmChanges.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleOutputChanges(all: boolean) {\r\n\t\tthis.allOutputChangesSelected = all;\r\n\t\tthis.noOutputChangesSelected = !all;\r\n\r\n\t\tthis.deviceChanges.outputChanges.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleDoorChanges(all: boolean) {\r\n\t\tthis.allDoorChangesSelected = all;\r\n\t\tthis.noDoorChangesSelected = !all;\r\n\r\n\t\tthis.deviceChanges.doorChanges.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleCameras(all: boolean) {\r\n\t\tthis.allCamerasSelected = all;\r\n\t\tthis.noCamerasSelected = !all;\r\n\r\n\t\tthis.serverConfigData.cameras.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleAudios(all) {\r\n\t\tthis.allAudiosSelected = all;\r\n\t\tthis.noAudiosSelected = !all;\r\n\r\n\t\tthis.serverConfigData.audios.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleAlarms(all) {\r\n\t\tthis.allAlarmsSelected = all;\r\n\t\tthis.noAlarmsSelected = !all;\r\n\r\n\t\tthis.serverConfigData.alarms.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleOutputs(all) {\r\n\t\tthis.allOutputsSelected = all;\r\n\t\tthis.noOutputsSelected = !all;\r\n\r\n\t\tthis.serverConfigData.outputs.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toggleDoors(all) {\r\n\t\tthis.allDoorsSelected = all;\r\n\t\tthis.noDoorsSelected = !all;\r\n\r\n\t\tthis.serverConfigData.doors.forEach((item, index) => {\r\n\t\t\titem.selected = all;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate get changesTotal(): number {\r\n\t\treturn this.cameraChangesTotal + this.audioChangesTotal + this.outputChangesTotal + this.doorChangesTotal + this.alarmChangesTotal;\r\n\t}\r\n\r\n\tprivate get changeErrorsCount(): number {\r\n\t\treturn this.alarmChangeErrorsCount + this.cameraChangeErrorsCount + this.outputChangeErrorsCount + this.doorChangeErrorsCount + this.audioChangeErrorsCount;\r\n\t}\r\n\r\n\tprivate get alarmChangeErrorsCount(): number {\r\n\t\tlet alarmErrorCount = 0;\r\n\r\n\t\tif (this.changeErrors) {\r\n\t\t\tif (this.changeErrors.alarmChanges != null) {\r\n\t\t\t\talarmErrorCount += this.changeErrors.alarmChanges.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn alarmErrorCount;\r\n\t}\r\n\r\n\tprivate get cameraChangeErrorsCount(): number {\r\n\t\tlet cameraErrorCount = 0;\r\n\r\n\t\tif (this.changeErrors) {\r\n\t\t\tif (this.changeErrors.cameraChanges != null) {\r\n\t\t\t\tcameraErrorCount += this.changeErrors.cameraChanges.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn cameraErrorCount;\r\n\t}\r\n\r\n\tprivate get audioChangeErrorsCount(): number {\r\n\t\tlet audioErrorCount = 0;\r\n\r\n\t\tif (this.changeErrors) {\r\n\t\t\tif (this.changeErrors.audioChanges != null) {\r\n\t\t\t\taudioErrorCount += this.changeErrors.audioChanges.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn audioErrorCount;\r\n\t}\r\n\r\n\tprivate get doorChangeErrorsCount(): number {\r\n\t\tlet doorErrorCount = 0;\r\n\r\n\t\tif (this.changeErrors) {\r\n\t\t\tif (this.changeErrors.doorChanges != null) {\r\n\t\t\t\tdoorErrorCount += this.changeErrors.doorChanges.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn doorErrorCount;\r\n\t}\r\n\r\n\tprivate get outputChangeErrorsCount(): number {\r\n\t\tlet outputErrorCount = 0;\r\n\r\n\t\tif (this.changeErrors) {\r\n\t\t\tif (this.changeErrors.outputChanges != null) {\r\n\t\t\t\toutputErrorCount += this.changeErrors.outputChanges.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn outputErrorCount;\r\n\t}\r\n\r\n\tprivate get serverDeviceErrorsCount(): number {\r\n\t\treturn this.alarmErrorsCount + this.cameraErrorsCount + this.outputErrorsCount + this.doorErrorsCount + this.audioErrorsCount;\r\n\t}\r\n\r\n\tprivate get alarmErrorsCount(): number {\r\n\t\tlet alarmErrorCount = 0;\r\n\r\n\t\tif (this.deviceConfigurationErrors) {\r\n\t\t\tif (this.deviceConfigurationErrors.alarms != null) {\r\n\t\t\t\talarmErrorCount += this.deviceConfigurationErrors.alarms.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn alarmErrorCount;\r\n\t}\r\n\r\n\tprivate get cameraErrorsCount(): number {\r\n\t\tlet cameraErrorCount = 0;\r\n\r\n\t\tif (this.deviceConfigurationErrors) {\r\n\t\t\tif (this.deviceConfigurationErrors.cameras != null) {\r\n\t\t\t\tcameraErrorCount += this.deviceConfigurationErrors.cameras.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn cameraErrorCount;\r\n\t}\r\n\r\n\tprivate get outputErrorsCount(): number {\r\n\t\tlet outputErrorCount = 0;\r\n\r\n\t\tif (this.deviceConfigurationErrors) {\r\n\t\t\tif (this.deviceConfigurationErrors.outputs != null) {\r\n\t\t\t\toutputErrorCount += this.deviceConfigurationErrors.outputs.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn outputErrorCount;\r\n\t}\r\n\r\n\tprivate get doorErrorsCount(): number {\r\n\t\tlet doorErrorCount = 0;\r\n\r\n\t\tif (this.deviceConfigurationErrors) {\r\n\t\t\tif (this.deviceConfigurationErrors.doors != null) {\r\n\t\t\t\tdoorErrorCount += this.deviceConfigurationErrors.doors.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn doorErrorCount;\r\n\t}\r\n\r\n\tprivate get audioErrorsCount(): number {\r\n\t\tlet audioErrorCount = 0;\r\n\r\n\t\tif (this.deviceConfigurationErrors) {\r\n\t\t\tif (this.deviceConfigurationErrors.audios != null) {\r\n\t\t\t\taudioErrorCount += this.deviceConfigurationErrors.audios.length;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn audioErrorCount;\r\n\t}\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"visible\":\"\",\"static\":\"\",\"size\":\"xl\",\"centered\":\"\",\"title\":_vm.title,\"content-class\":\"modal-xl-content\",\"dialog-class\":\"justify-content-center\"},on:{\"hidden\":function($event){return _vm.handleModalHidden()}},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"take-shot-button\"},on:{\"click\":function($event){return _vm.handleTakeReferenceShotClick()}}},[_vm._v(\"\\n\\t\\t\\tTake Reference Shot\\n\\t\\t\")]),_c('b-button',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"cancel-button\"},on:{\"click\":function($event){return _vm.handleModalHidden()}}},[_vm._v(\"\\n\\t\\t\\tClose\\n\\t\\t\")])]},proxy:true}])},[_c('div',{staticClass:\"camera-control-container\"},[_c('camera-control',{ref:\"cameraControl\",attrs:{\"defaultMechanicalPtz\":_vm.shouldDefaultToMechanicalPtz}})],1),_c('div',{staticClass:\"mt-3\"},[_c('table',{staticClass:\"table striped\"},[_c('tbody',[_c('tr',[_c('th',{staticClass:\"w-80px\"},[_vm._v(\"Device Id:\")]),_c('td',[_vm._v(_vm._s(_vm.device.deviceID))])]),_c('tr',[_c('th',{staticClass:\"w-80px\"},[_vm._v(\"Input 1:\")]),_c('td',[_vm._v(_vm._s(_vm.device.input1))])]),(_vm.usesInput2)?_c('tr',[_c('th',{staticClass:\"w-80px\"},[_vm._v(\"Input 2:\")]),_c('td',[_vm._v(_vm._s(_vm.device.input2))])]):_vm._e(),(_vm.usesExtraValue)?_c('tr',[_c('th',{staticClass:\"w-80px align-top\"},[_vm._v(\"Extra Value:\")]),_c('td',{staticClass:\"mw-400px\"},[_c('div',{staticClass:\"extra-value\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.device.extraValue)+\"\\n\\t\\t\\t\\t\\t\\t\")])])]):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Ref, Vue } from \"vue-property-decorator\";\nimport { namespace } from \"vuex-class\";\n\nimport { CameraReferenceShot, DeviceDetails, DevicesState, ServerDetails, ServerType } from \"@/store/devices/types\";\nimport { ResourceType, UpdateSessionParams } from \"@/store/sessions/types\";\nimport { PrefTypesEnum, PrefTypeRequest } from '@/store/settings/types';\n\nconst SettingsStore = namespace(\"settings\");\n\nconst Devices = namespace(\"devices\");\nconst SessionStore = namespace(\"sessions\");\nconst SMCameras = namespace(\"siteMonitorCameras\");\n\nconst PrefsOfInterest = {\n\tUseMechanicalPtzByDefault: {\n\t\tgroupID: null,\n\t\tprefTypeID: PrefTypesEnum.UseMechanicalPtzByDefault\n\t} as PrefTypeRequest\n};\n\n@Component({})\nexport default class CameraPreview extends Vue {\n\t@Devices.Action private getServer: (serverId: number) => Promise;\n\t@Devices.Mutation private setCameraPreviewModalVisibility: (visible: boolean) => void;\n\t@Devices.Mutation private setCameraDefaultReferenceShot: (params: CameraReferenceShot) => void;\n\t@Devices.State((state: DevicesState) => state.device) private device: DeviceDetails;\n\t@Devices.State((state: DevicesState) => state.serversList) private serversList: ServerDetails[];\n\t@Devices.State((state: DevicesState) => state.serverTypes) private serverTypes: ServerType[];\n\n\t@SessionStore.Action private updateSession: (params: UpdateSessionParams) => Promise;\n\t@SMCameras.Action private setCameraScreenshot: (params: CameraReferenceShot) => Promise;\n\n\t@SettingsStore.Action getPrefsFromList: (prefEnumList: PrefTypeRequest[]) => void;\n\t@SettingsStore.Getter getPrefBoolValue: (prefType: PrefTypeRequest) => boolean;\n\n\t@Ref() private cameraControl: any;\n\n\tprivate get shouldDefaultToMechanicalPtz(): boolean {\n\t\treturn this.getPrefBoolValue(PrefsOfInterest.UseMechanicalPtzByDefault);\n\t}\n\n\tprivate handleModalHidden(): void {\n\t\tthis.setCameraPreviewModalVisibility(false);\n\t}\n\n\tprivate async created(): Promise {\n\t\tif (this.deviceServerNotInList) {\n\t\t\tawait this.getServer(this.device.serverID);\n\t\t}\n\t}\n\n\tprivate async mounted(): Promise {\n\t\tawait this.getPrefsFromList([PrefsOfInterest.UseMechanicalPtzByDefault]);\n\t\tawait this.updateSession({ resourceId: ResourceType.Proxy });\n\t\tawait this.cameraControl.startCamera(this.device.deviceID);\n\t}\n\n\tprivate get deviceServerNotInList(): boolean {\n\t\treturn this.deviceServer === undefined;\n\t}\n\n\tprivate get title(): string {\n\t\treturn `Preview: ${this.device.title}`;\n\t}\n\n\tprivate get deviceServer(): ServerDetails {\n\t\treturn this.serversList.find(s => s.serverID === this.device.serverID);\n\t}\n\n\tprivate get serverType(): ServerType {\n\t\treturn this.serverTypes.find(st => st.serverTypeID == this.deviceServer?.serverTypeID);\n\t}\n\n\tprivate get usesInput2(): boolean {\n\t\treturn this.serverType?.usesExtraCameraIds === true;\n\t}\n\n\tprivate get usesExtraValue(): boolean {\n\t\treturn this.serverType?.usesDeviceExtraValue === true;\n\t}\n\n\tprivate async handleTakeReferenceShotClick(): Promise {\n\t\t//tech debt - remove usage of refs if V2Cameras is changed to accomodate props\n\t\tvar canvas = document.createElement(\"canvas\");\n\n\t\tcanvas.width = this.cameraControl.$refs.video.$refs.videoControl.videoWidth;\n\t\tcanvas.height = this.cameraControl.$refs.video.$refs.videoControl.videoHeight;\n\n\t\tcanvas\n\t\t\t.getContext(\"2d\")\n\t\t\t.drawImage(this.cameraControl.$refs.video.$refs.videoControl, 0, 0, canvas.width, canvas.height);\n\n\t\tconst image = canvas.toDataURL().split(\";base64,\")[1];\n\t\tconst cameraReferenceShot = { DeviceID: this.device.deviceID, Image: image };\n\n\t\tthis.setCameraDefaultReferenceShot(cameraReferenceShot);\n\t\tawait this.setCameraScreenshot(cameraReferenceShot);\n\t}\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CameraPreview.vue?vue&type=template&id=fe4339c4&scoped=true&\"\nimport script from \"./CameraPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./CameraPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CameraPreview.vue?vue&type=style&index=0&id=fe4339c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fe4339c4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',{attrs:{\"disabled\":!_vm.allowsDevices,\"lazy\":!_vm.tabLoaded,\"data-cy\":\"tab-button\"},on:{\"click\":function($event){return _vm.handleTabLoaded()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",value:(_vm.getTitleText(_vm.title)),expression:\"getTitleText(title)\",modifiers:{\"hover\":true,\"right\":true}}],class:{ 'disabled-fade': !_vm.allowsDevices },attrs:{\"variant\":\"primary\"}},[_c('i',{staticClass:\"fas fa-fw\",class:_vm.iconClass}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\"),(_vm.showDeviceCounts)?_c('b-badge',{attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.deviceCount.toLocaleString()))]):_vm._e()],1)]},proxy:true}])},[_c('child-device-table',{attrs:{\"isForAllServers\":_vm.isForAllServers,\"visible\":_vm.visible,\"deviceTypeId\":_vm.deviceTypeIdentifier}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{attrs:{\"data-cy\":\"child-device-table\"}},[_c('b-row',{staticClass:\"mb-4\"},[_c('b-col',[_c('b-form-input',{attrs:{\"type\":\"search\",\"placeholder\":\"Search...\",\"max\":\"250\",\"data-cy\":\"search\"},on:{\"input\":function($event){return _vm.handleSearchInput($event)}},model:{value:(_vm.searchTermPersisted),callback:function ($$v) {_vm.searchTermPersisted=$$v},expression:\"searchTermPersisted\"}})],1),(_vm.hasEditPermission)?_c('b-col',{attrs:{\"cols\":\"auto\"}},[_c('b-button',{attrs:{\"variant\":\"primary\",\"data-cy\":\"add-button\"},on:{\"click\":function($event){return _vm.handleAddDevice()}}},[_vm._v(\"Add \"+_vm._s(_vm.title))])],1):_vm._e()],1),_c('vue-perfect-scrollbar',{staticClass:\"scroll-area scroll-area-override\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleScrollBarReachEnd()}}},[_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"items\":_vm.devicesToDisplay,\"fields\":_vm.fields,\"hover\":\"\",\"head-variant\":\"dark\",\"busy\":_vm.tableIsBusy},scopedSlots:_vm._u([{key:\"cell(preview)\",fn:function(row){return [(row.item.defaultReferenceShot)?_c('img',{staticClass:\"reference-shot\",attrs:{\"src\":_vm.getPreviewImageSource(row.item.defaultReferenceShot),\"data-cy\":\"default-reference-shot\"}}):_c('i',{staticClass:\"fal fa-fw fa-image font-weight-light no-preview-icon\"})]}},{key:\"cell(extraValue)\",fn:function(row){return [_c('div',{staticClass:\"extra-value\"},[_vm._v(_vm._s(row.item.extraValue))])]}},{key:\"cell(actions)\",fn:function(row){return [_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-primary\",modifiers:{\"hover\":true,\"v-primary\":true}}],staticClass:\"fas fa-edit hover-icon\",attrs:{\"title\":\"Edit\",\"data-cy\":\"edit-button\"},on:{\"click\":function($event){return _vm.handleEditClick(row.item)}}}),(_vm.showCameraPreviewIcon)?_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-primary\",modifiers:{\"hover\":true,\"v-primary\":true}}],staticClass:\"fas fa-cctv hover-icon ml-1\",attrs:{\"title\":\"Preview\",\"data-cy\":\"preview-button\"},on:{\"click\":function($event){return _vm.handlePreviewCameraClick(row.item)}}}):_vm._e(),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.v-primary\",modifiers:{\"hover\":true,\"v-primary\":true}}],staticClass:\"fas fa-trash hover-icon mx-1\",attrs:{\"title\":\"Delete\",\"data-cy\":\"delete-button\"},on:{\"click\":function($event){return _vm.handleDeleteClick(row.item)}}})]}},(!_vm.loadingMoreRecords)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreRecords)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Getter, namespace, State, Mutation } from \"vuex-class\";\r\nimport { debounce, get } from \"lodash\";\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\r\nimport { CancelTokenSource } from \"axios\";\r\n\r\nimport { getDebouncePeriod } from \"@/utils/debounce-helper\";\r\nimport { getNewCancelTokenSource } from \"@/utils/cancellableQueryHelper\";\r\nimport { CancellableQuery, FeaturesList, UserGroup, UserPermissions, VueBootstrapField } from \"@/store/types\";\r\nimport {\r\n\tDeviceDetails,\r\n\tDeviceRecordsRetrievalStatus,\r\n\tDeviceType,\r\n\tDeviceTypeIdentifier,\r\n\tGetDevicesByTypeParams,\r\n\tServerDetails\r\n} from \"@/store/devices/types\";\r\nimport { getNewDeviceDetailsTemplate } from \"@/store/devices/templates\";\r\nimport SureViewIcon from \"@/components/SureViewIcon.vue\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\nconst childDeviceTitles: Record = {\r\n\t[DeviceTypeIdentifier.Camera]: \"Camera\",\r\n\t[DeviceTypeIdentifier.Audio]: \"Audio\",\r\n\t[DeviceTypeIdentifier.Output]: \"Output\",\r\n\t[DeviceTypeIdentifier.Door]: \"Door\"\r\n};\r\n\r\nconst outputSettingsMetaLabel = \"Output\";\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"sureview-icon\": SureViewIcon,\r\n\t\t\"vue-perfect-scrollbar\": VuePerfectScrollbar\r\n\t}\r\n})\r\nexport default class ChildDeviceTable extends Vue {\r\n\t@Prop({ required: true, type: Number }) private deviceTypeId: number;\r\n\t@Prop({ required: true, default: false, type: Boolean }) private isForAllServers: boolean;\r\n\t@Prop({ required: true, default: false, type: Boolean }) private visible;\r\n\r\n\t@Getter(\"getPermissions\") private permissions: UserPermissions;\r\n\t@State private featuresList: FeaturesList;\r\n\t@State private UserGroups: UserGroup[];\r\n\r\n\t@Mutation private setIsLoading: (loading: boolean) => void;\r\n\r\n\t@Devices.Action private fetchDevicesForAllGroupsByType: (\r\n\t\tparams: CancellableQuery\r\n\t) => Promise;\r\n\r\n\t@Devices.Mutation private updateCurrentServerRecordsRetrievalStatus: (\r\n\t\trecordsRetrievalStatus: DeviceRecordsRetrievalStatus\r\n\t) => void;\r\n\t@Devices.Mutation private updateRecordsRetrievalStatus: (\r\n\t\trecordsRetrievalStatus: DeviceRecordsRetrievalStatus\r\n\t) => void;\r\n\t@Devices.Mutation private setCameraPreviewModalVisibility: (visible: boolean) => void;\r\n\t@Devices.Mutation private setCurrentDeviceTypeIdentifier: (deviceTypeIdentifier: DeviceTypeIdentifier) => void;\r\n\t@Devices.Mutation private setDeleteChildDeviceModalVisibility: (visible: boolean) => void;\r\n\t@Devices.Mutation private setDevice: (device: DeviceDetails) => void;\r\n\t@Devices.Mutation private setEditChildDeviceModalVisibility: (visible: boolean) => void;\r\n\r\n\t@Devices.State private currentServer: ServerDetails;\r\n\t@Devices.State private devices: DeviceDetails[];\r\n\t@Devices.State private recordsRetrievalStatus: DeviceRecordsRetrievalStatus;\r\n\t@Devices.State private serversList: ServerDetails[];\r\n\r\n\tprivate axiosCancelTokenSource: CancelTokenSource = null;\r\n\tprivate displayFilteredRecords: boolean = false;\r\n\tprivate filteredRecordsPage: number = 1;\r\n\tprivate loadingMoreRecords: boolean = false;\r\n\tprivate recordsPage: number = 1;\r\n\tprivate recordsPageSize: number = 100;\r\n\tprivate searchTerm: string = \"\";\r\n\tprivate searchTermPersisted: string = \"\";\r\n\tprivate tableIsBusy: boolean = false;\r\n\tprivate title: string = \"\";\r\n\r\n\tprivate fields: VueBootstrapField[] = [\r\n\t\t{ key: \"title\", label: \"Title\", sortable: true },\r\n\t\t{\r\n\t\t\tkey: \"input1\",\r\n\t\t\tlabel: \"Input 1\",\r\n\t\t\tsortable: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"input2\",\r\n\t\t\tlabel: \"Input 2\",\r\n\t\t\tsortable: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"extraValue\",\r\n\t\t\tlabel: \"Extra Value\",\r\n\t\t\tsortable: true,\r\n\t\t\tclass: \"extra-value-column\"\r\n\t\t}\r\n\t];\r\n\r\n\tprivate async created(): Promise {\r\n\t\tthis.title = childDeviceTitles[this.deviceTypeId];\r\n\r\n\t\tif (this.includeReferenceShots) {\r\n\t\t\tthis.adjustRecordsPageSizeToMakeResponseQuicker();\r\n\t\t}\r\n\r\n\t\tif (this.isForAllServers) {\r\n\t\t\tthis.addAllServersSpecificFields();\r\n\t\t}\r\n\r\n\t\tthis.addChildSpecificFields();\r\n\r\n\t\tif (this.hasEditPermission) {\r\n\t\t\tthis.addEditPermissionsSpecificFields();\r\n\t\t}\r\n\r\n\t\tif (this.isForAllServers || (!this.isForAllServers && this.notEnoughRecordsShownForCurrentServer())) {\r\n\t\t\tawait this.getDevices();\r\n\t\t} else if (!this.isForAllServers) {\r\n\t\t\t//Records may have been added from outside this component, so we need to set the page to prevent needless API requests\r\n\t\t\tthis.recordsPage = Math.floor(this.devicesToDisplay.length / this.recordsPageSize) + 1;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get includeReferenceShots(): boolean {\r\n\t\treturn this.tableIsForCameras && get(this.featuresList, [\"Devices\", \"ShowReferenceShots\"]);\r\n\t}\r\n\r\n\tprivate get tableIsForCameras(): boolean {\r\n\t\treturn this.deviceTypeId === DeviceTypeIdentifier.Camera;\r\n\t}\r\n\r\n\tprivate adjustRecordsPageSizeToMakeResponseQuicker() {\r\n\t\tthis.recordsPageSize = 25;\r\n\t}\r\n\r\n\tprivate addChildSpecificFields(): void {\r\n\t\tif (this.includeReferenceShots) {\r\n\t\t\tthis.fields.splice(0, 0, {\r\n\t\t\t\tkey: \"preview\",\r\n\t\t\t\tlabel: \"Preview\",\r\n\t\t\t\tsortable: false\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.deviceTypeId === DeviceTypeIdentifier.Audio) {\r\n\t\t\tthis.fields.push({\r\n\t\t\t\tkey: \"capabilities\",\r\n\t\t\t\tlabel: \"Capabilities\",\r\n\t\t\t\tsortable: true,\r\n\t\t\t\tformatter: (value, key, item: DeviceDetails) => {\r\n\t\t\t\t\treturn this.getAudioCapability(item);\r\n\t\t\t\t},\r\n\t\t\t\tsortByFormatted: true\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addAllServersSpecificFields(): void {\r\n\t\tthis.fields.splice(1, 0, {\r\n\t\t\tkey: \"serverID\",\r\n\t\t\tlabel: \"Device\",\r\n\t\t\tsortable: true,\r\n\t\t\tformatter: (value, key, item: DeviceDetails) => {\r\n\t\t\t\treturn this.getDeviceTitle(item);\r\n\t\t\t},\r\n\t\t\tsortByFormatted: true\r\n\t\t});\r\n\r\n\t\tthis.fields.splice(2, 0, {\r\n\t\t\tkey: \"groupID\",\r\n\t\t\tlabel: \"Area\",\r\n\t\t\tsortable: true,\r\n\t\t\tformatter: groupID => {\r\n\t\t\t\treturn this.getGroupTitle(groupID);\r\n\t\t\t},\r\n\t\t\tsortByFormatted: true\r\n\t\t});\r\n\t}\r\n\r\n\tprivate get hasEditPermission(): boolean {\r\n\t\treturn this.permissions.isAdmin || this.permissions.canEditSiteSetup;\r\n\t}\r\n\r\n\tprivate get showCameraPreviewIcon(): boolean {\r\n\t\treturn this.tableIsForCameras && (this.permissions.isAdmin || this.permissions.canViewCameras);\r\n\t}\r\n\r\n\tprivate addEditPermissionsSpecificFields(): void {\r\n\t\tthis.fields.push({ key: \"actions\", label: \"Actions\", sortable: false, class: \"text-center\" });\r\n\t}\r\n\r\n\tprivate async getDevices(): Promise {\r\n\t\tthis.tableIsBusy = true;\r\n\r\n\t\tconst queryParams: GetDevicesByTypeParams = {\r\n\t\t\tdeviceTypeId: this.deviceTypeId,\r\n\t\t\tpage: this.recordsPage,\r\n\t\t\tpageSize: this.recordsPageSize\r\n\t\t};\r\n\r\n\t\tif (this.includeReferenceShots) {\r\n\t\t\tqueryParams.includeReferenceShots = true;\r\n\t\t}\r\n\r\n\t\tif (!this.isForAllServers) {\r\n\t\t\tqueryParams.serverId = this.currentServer.serverID;\r\n\t\t}\r\n\r\n\t\tif (this.searchTerm) {\r\n\t\t\tqueryParams.page = this.filteredRecordsPage;\r\n\t\t\tqueryParams.searchTerm = this.searchTerm;\r\n\t\t}\r\n\r\n\t\tif (this.queryIsForRelays) {\r\n\t\t\tthis.adjustQueryForRelays(queryParams);\r\n\t\t}\r\n\r\n\t\tthis.axiosCancelTokenSource = getNewCancelTokenSource(this.axiosCancelTokenSource, true);\r\n\r\n\t\tconst cancellableQuery: CancellableQuery = {\r\n\t\t\tparams: queryParams,\r\n\t\t\tcancelTokenSource: this.axiosCancelTokenSource\r\n\t\t};\r\n\r\n\t\tawait this.fetchDevicesForAllGroupsByType(cancellableQuery);\r\n\r\n\t\tthis.tableIsBusy = false;\r\n\t}\r\n\r\n\tprivate get queryIsForRelays(): boolean {\r\n\t\treturn this.deviceTypeId === DeviceTypeIdentifier.Output || this.deviceTypeId === DeviceTypeIdentifier.Door;\r\n\t}\r\n\r\n\tprivate adjustQueryForRelays(queryParams: GetDevicesByTypeParams): void {\r\n\t\tqueryParams.selectOutputs = queryParams.deviceTypeId === DeviceTypeIdentifier.Output;\r\n\t\tqueryParams.deviceTypeId = DeviceType.Relay;\r\n\t}\r\n\r\n\tprivate getGroupTitle(groupID: number): string {\r\n\t\treturn this.UserGroups.find(ug => ug.groupID == groupID)?.title;\r\n\t}\r\n\r\n\tprivate getAudioCapability(device: DeviceDetails): string {\r\n\t\tif (device.audioSettings?.transmitEnabled && device.audioSettings?.receiveEnabled) {\r\n\t\t\treturn \"2-Way Audio\";\r\n\t\t}\r\n\r\n\t\tif (device.audioSettings?.transmitEnabled) {\r\n\t\t\treturn \"Transmit\";\r\n\t\t}\r\n\r\n\t\tif (device.audioSettings?.receiveEnabled) {\r\n\t\t\treturn \"Receive\";\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tprivate getDeviceTitle(device: DeviceDetails): string {\r\n\t\tconst server = this.serversList.find(s => s.serverID == device.serverID);\r\n\r\n\t\tif (server) {\r\n\t\t\treturn server.title;\r\n\t\t}\r\n\r\n\t\treturn device.serverTitle;\r\n\t}\r\n\r\n\tprivate notEnoughRecordsShownForCurrentServer(): boolean {\r\n\t\treturn (\r\n\t\t\tthis.devices.filter(d => d.deviceTypeID === this.deviceTypeId && d.serverID === this.currentServer.serverID)\r\n\t\t\t\t.length < this.recordsPageSize\r\n\t\t);\r\n\t}\r\n\r\n\tprivate handleSearchInput = debounce(async (searchTerm: string): Promise => {\r\n\t\tawait this.performSearch(searchTerm);\r\n\t}, getDebouncePeriod());\r\n\r\n\tprivate async performSearch(searchTerm: string): Promise {\r\n\t\tthis.updateRetrievalStatus();\r\n\r\n\t\tthis.searchTerm = searchTerm;\r\n\r\n\t\tif (!this.searchTerm) {\r\n\t\t\tthis.displayFilteredRecords = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.getDevices();\r\n\r\n\t\tthis.displayFilteredRecords = true;\r\n\t}\r\n\r\n\tprivate updateRetrievalStatus(): void {\r\n\t\tlet newRetrievalStatus: DeviceRecordsRetrievalStatus = {\r\n\t\t\t...this.recordsRetrievalStatus\r\n\t\t};\r\n\r\n\t\tif (!this.isForAllServers) {\r\n\t\t\tnewRetrievalStatus = {\r\n\t\t\t\t...this.currentServer.recordsRetrievalStatus\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tswitch (this.deviceTypeId) {\r\n\t\t\tcase DeviceTypeIdentifier.Camera: {\r\n\t\t\t\tnewRetrievalStatus.allFilteredCamerasRetrieved = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Audio: {\r\n\t\t\t\tnewRetrievalStatus.allFilteredAudiosRetrieved = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Door: {\r\n\t\t\t\tnewRetrievalStatus.allFilteredDoorsRetrieved = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Output: {\r\n\t\t\t\tnewRetrievalStatus.allFilteredOutputsRetrieved = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isForAllServers) {\r\n\t\t\tthis.updateRecordsRetrievalStatus(newRetrievalStatus);\r\n\t\t} else {\r\n\t\t\tthis.updateCurrentServerRecordsRetrievalStatus(newRetrievalStatus);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate handleAddDevice(): void {\r\n\t\tthis.setIsLoading(true);\r\n\r\n\t\tconst newDevice = getNewDeviceDetailsTemplate();\r\n\t\tnewDevice.deviceTypeID = this.deviceTypeId;\r\n\r\n\t\tif (this.deviceTypeId === DeviceTypeIdentifier.Door || this.deviceTypeId === DeviceTypeIdentifier.Output) {\r\n\t\t\tnewDevice.deviceTypeID = DeviceType.Relay;\r\n\t\t}\r\n\r\n\t\tif (this.currentServer) {\r\n\t\t\tnewDevice.serverID = this.currentServer.serverID;\r\n\t\t}\r\n\r\n\t\tthis.setDevice(newDevice);\r\n\t\tthis.setCurrentDeviceTypeIdentifier(this.deviceTypeId);\r\n\t\tthis.setEditChildDeviceModalVisibility(true);\r\n\t}\r\n\r\n\tprivate get allRecordsInCurrentQueryAreRetrieved(): boolean {\r\n\t\tlet recordsRetrievalStatus: DeviceRecordsRetrievalStatus = this.recordsRetrievalStatus;\r\n\r\n\t\tif (!this.isForAllServers) {\r\n\t\t\trecordsRetrievalStatus = this.currentServer.recordsRetrievalStatus;\r\n\t\t}\r\n\r\n\t\tswitch (this.deviceTypeId) {\r\n\t\t\tcase DeviceTypeIdentifier.Camera: {\r\n\t\t\t\treturn this.displayFilteredRecords\r\n\t\t\t\t\t? recordsRetrievalStatus.allFilteredCamerasRetrieved\r\n\t\t\t\t\t: recordsRetrievalStatus.allCamerasRetrieved;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Audio: {\r\n\t\t\t\treturn this.displayFilteredRecords\r\n\t\t\t\t\t? recordsRetrievalStatus.allFilteredAudiosRetrieved\r\n\t\t\t\t\t: recordsRetrievalStatus.allAudiosRetrieved;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Door: {\r\n\t\t\t\treturn this.displayFilteredRecords\r\n\t\t\t\t\t? recordsRetrievalStatus.allFilteredDoorsRetrieved\r\n\t\t\t\t\t: recordsRetrievalStatus.allDoorsRetrieved;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Output: {\r\n\t\t\t\treturn this.displayFilteredRecords\r\n\t\t\t\t\t? recordsRetrievalStatus.allFilteredOutputsRetrieved\r\n\t\t\t\t\t: recordsRetrievalStatus.allOutputsRetrieved;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate async handleScrollBarReachEnd(): Promise {\r\n\t\tif (!this.visible || this.tableIsBusy || this.allRecordsInCurrentQueryAreRetrieved || this.loadingMoreRecords) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreRecords = true;\r\n\t\tthis.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\r\n\t\tawait this.getDevices();\r\n\r\n\t\tthis.loadingMoreRecords = false;\r\n\t}\r\n\r\n\tprivate get devicesToDisplay(): DeviceDetails[] {\r\n\t\tlet deviceTypeId = this.deviceTypeId;\r\n\r\n\t\tif (this.queryIsForRelays) {\r\n\t\t\tdeviceTypeId = DeviceType.Relay;\r\n\t\t}\r\n\r\n\t\tconst searchTerm = this.searchTerm.toLowerCase();\r\n\t\tconst searchTermAsNumber = Number(this.searchTerm);\r\n\t\tconst searchNumericFields = !isNaN(searchTermAsNumber);\r\n\r\n\t\treturn this.devices.filter(\r\n\t\t\td =>\r\n\t\t\t\td.deviceTypeID === deviceTypeId &&\r\n\t\t\t\t(this.isForAllServers || (!this.isForAllServers && d.serverID === this.currentServer.serverID)) &&\r\n\t\t\t\t(!this.displayFilteredRecords ||\r\n\t\t\t\t\t(this.displayFilteredRecords &&\r\n\t\t\t\t\t\t(d.title.toLowerCase().includes(searchTerm) ||\r\n\t\t\t\t\t\t\t(d.extraValue && d.extraValue.toLowerCase().includes(searchTerm)) ||\r\n\t\t\t\t\t\t\t(searchNumericFields &&\r\n\t\t\t\t\t\t\t\t(d.input1 === searchTermAsNumber || d.input2 === searchTermAsNumber)) ||\r\n\t\t\t\t\t\t\t(this.isForAllServers &&\r\n\t\t\t\t\t\t\t\t(d.serverTitle.toLowerCase().includes(searchTerm) ||\r\n\t\t\t\t\t\t\t\t\tthis.UserGroups.find(g => g.groupID === d.groupID)\r\n\t\t\t\t\t\t\t\t\t\t.title.toLowerCase()\r\n\t\t\t\t\t\t\t\t\t\t.includes(searchTerm)))))) &&\r\n\t\t\t\t(!this.queryIsForRelays ||\r\n\t\t\t\t\t(this.queryIsForRelays &&\r\n\t\t\t\t\t\t(this.deviceTypeId === DeviceTypeIdentifier.Output\r\n\t\t\t\t\t\t\t? d.relaySettings.relayType === outputSettingsMetaLabel\r\n\t\t\t\t\t\t\t: d.relaySettings.relayType !== outputSettingsMetaLabel)))\r\n\t\t);\r\n\t}\r\n\r\n\tprivate handleEditClick(device: DeviceDetails): void {\r\n\t\tthis.setIsLoading(true);\r\n\t\tthis.setDevice(device);\r\n\t\tthis.setCurrentDeviceTypeIdentifier(this.deviceTypeId);\r\n\t\tthis.setEditChildDeviceModalVisibility(true);\r\n\t}\r\n\r\n\tprivate handlePreviewCameraClick(device: DeviceDetails): void {\r\n\t\tthis.setDevice(device);\r\n\t\tthis.setCameraPreviewModalVisibility(true);\r\n\t}\r\n\r\n\tprivate handleDeleteClick(device: DeviceDetails): void {\r\n\t\tthis.setDevice(device);\r\n\t\tthis.setCurrentDeviceTypeIdentifier(this.deviceTypeId);\r\n\t\tthis.setDeleteChildDeviceModalVisibility(true);\r\n\t}\r\n\r\n\tprivate getPreviewImageSource(previewBase64: string): string {\r\n\t\treturn `data:image;base64,${previewBase64}`;\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChildDeviceTable.vue?vue&type=template&id=29b45446&scoped=true&\"\nimport script from \"./ChildDeviceTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChildDeviceTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChildDeviceTable.vue?vue&type=style&index=0&id=29b45446&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29b45446\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\n\r\nimport { DeviceTypeCounts, DeviceTypeIdentifier, ServerDetails, ServerType } from \"@/store/devices/types\";\r\nimport ChildDeviceTable from \"@/components/device-setup/tables/ChildDeviceTable.vue\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\nconst childDeviceIcons: Record = {\r\n\t[DeviceTypeIdentifier.Camera]: \"fa-cctv\",\r\n\t[DeviceTypeIdentifier.Audio]: \"fa-microphone\",\r\n\t[DeviceTypeIdentifier.Output]: \"fa-light-switch-off\",\r\n\t[DeviceTypeIdentifier.Door]: \"fa-door-open\"\r\n};\r\n\r\nconst childDeviceTitles: Record = {\r\n\t[DeviceTypeIdentifier.Camera]: \"Cameras\",\r\n\t[DeviceTypeIdentifier.Audio]: \"Audios\",\r\n\t[DeviceTypeIdentifier.Output]: \"Outputs\",\r\n\t[DeviceTypeIdentifier.Door]: \"Doors\"\r\n};\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"child-device-table\": ChildDeviceTable\r\n\t}\r\n})\r\nexport default class ChildDeviceTabWrapper extends Vue {\r\n\t@Prop({ required: true, type: Number }) private deviceTypeIdentifier: number;\r\n\t@Prop({ required: true, default: true, type: Boolean }) private isForAllServers: boolean;\r\n\t@Prop({ required: true, default: false, type: Boolean }) private visible: boolean;\r\n\r\n\t@Devices.State private currentServer: ServerDetails;\r\n\t@Devices.State private deviceTypeCounts: DeviceTypeCounts;\r\n\t@Devices.State private serverTypes: ServerType[];\r\n\r\n\tprivate iconClass: string = \"\";\r\n\tprivate tabLoaded: boolean = false;\r\n\tprivate title: string = \"\";\r\n\r\n\tprivate created(): void {\r\n\t\tthis.iconClass = childDeviceIcons[this.deviceTypeIdentifier];\r\n\t\tthis.title = childDeviceTitles[this.deviceTypeIdentifier];\r\n\t}\r\n\r\n\tprivate get allowsDevices(): boolean {\r\n\t\tif (this.isForAllServers) {\r\n\t\t\tswitch (this.deviceTypeIdentifier) {\r\n\t\t\t\tcase DeviceTypeIdentifier.Camera:\r\n\t\t\t\t\treturn this.serverTypes.some(st => st.numCameras !== 0);\r\n\t\t\t\tcase DeviceTypeIdentifier.Audio:\r\n\t\t\t\t\treturn this.serverTypes.some(st => st.numAudioInputs !== 0);\r\n\t\t\t\tcase DeviceTypeIdentifier.Door:\r\n\t\t\t\tcase DeviceTypeIdentifier.Output:\r\n\t\t\t\t\treturn this.serverTypes.some(st => st.numRelays !== 0);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst serverType: ServerType = this.serverTypes.find(\r\n\t\t\t\tst => st.serverTypeID === this.currentServer.serverTypeID\r\n\t\t\t);\r\n\r\n\t\t\tswitch (this.deviceTypeIdentifier) {\r\n\t\t\t\tcase DeviceTypeIdentifier.Camera:\r\n\t\t\t\t\treturn serverType && serverType.numCameras !== 0;\r\n\t\t\t\tcase DeviceTypeIdentifier.Audio:\r\n\t\t\t\t\treturn serverType && serverType.numAudioInputs !== 0;\r\n\t\t\t\tcase DeviceTypeIdentifier.Door:\r\n\t\t\t\tcase DeviceTypeIdentifier.Output:\r\n\t\t\t\t\treturn serverType && serverType.numRelays !== 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate get deviceCount(): number {\r\n\t\tif (this.isForAllServers) {\r\n\t\t\tswitch (this.deviceTypeIdentifier) {\r\n\t\t\t\tcase DeviceTypeIdentifier.Camera:\r\n\t\t\t\t\treturn this.deviceTypeCounts.cameras;\r\n\t\t\t\tcase DeviceTypeIdentifier.Audio:\r\n\t\t\t\t\treturn this.deviceTypeCounts.audios;\r\n\t\t\t\tcase DeviceTypeIdentifier.Door:\r\n\t\t\t\t\treturn this.deviceTypeCounts.doors;\r\n\t\t\t\tcase DeviceTypeIdentifier.Output:\r\n\t\t\t\t\treturn this.deviceTypeCounts.outputs;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tswitch (this.deviceTypeIdentifier) {\r\n\t\t\t\tcase DeviceTypeIdentifier.Camera:\r\n\t\t\t\t\treturn this.currentServer.deviceTypeCounts.cameras;\r\n\t\t\t\tcase DeviceTypeIdentifier.Audio:\r\n\t\t\t\t\treturn this.currentServer.deviceTypeCounts.audios;\r\n\t\t\t\tcase DeviceTypeIdentifier.Door:\r\n\t\t\t\t\treturn this.currentServer.deviceTypeCounts.doors;\r\n\t\t\t\tcase DeviceTypeIdentifier.Output:\r\n\t\t\t\t\treturn this.currentServer.deviceTypeCounts.outputs;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tprivate get showDeviceCounts(): boolean {\r\n\t\tif (\r\n\t\t\t(this.isForAllServers && this.deviceTypeCounts) ||\r\n\t\t\t(!this.isForAllServers && this.currentServer.deviceTypeCounts)\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate handleTabLoaded(): void {\r\n\t\tthis.tabLoaded = true;\r\n\t}\r\n\r\n\tprivate getTitleText(title: string): string {\r\n\t\tlet text = \"\";\r\n\t\tif (!this.allowsDevices && !this.isForAllServers) {\r\n\t\t\ttext = `${title} are not supported on this device`;\r\n\t\t}\r\n\t\tif (!this.allowsDevices && this.isForAllServers) {\r\n\t\t\ttext = `There are Devices configured that support ${title}`;\r\n\t\t}\r\n\t\treturn text;\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTabWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTabWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChildDeviceTabWrapper.vue?vue&type=template&id=32c8ad2a&scoped=true&\"\nimport script from \"./ChildDeviceTabWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChildDeviceTabWrapper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChildDeviceTabWrapper.vue?vue&type=style&index=0&id=32c8ad2a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32c8ad2a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{\"visible\":_vm.editChildDeviceModalVisible,\"size\":\"lg\",\"static\":\"\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"centered\":\"\",\"title\":_vm.title,\"data-cy\":\"edit-device-modal\"},on:{\"hidden\":function($event){return _vm.handleModalHidden()}},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"primary\",\"disabled\":_vm.deviceIsInvalid,\"data-cy\":\"save-button\"},on:{\"click\":function($event){return _vm.handleSaveClick()}}},[_vm._v(\"\\n\\t\\t\\tSave\\n\\t\\t\")]),_c('b-button',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"cancel-button\"},on:{\"click\":function($event){return _vm.handleModalHidden()}}},[_vm._v(\"\\n\\t\\t\\tCancel\\n\\t\\t\")])]},proxy:true}])},[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\"},[_c('b-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit()}}},[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label-for\":\"Device\",\"label-cols-sm\":\"2\"}},[_c('template',{slot:\"label\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tDevice:\\n\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),(_vm.creatingFromMainTab || _vm.isEditing)?_c('v-select-3',{attrs:{\"options\":_vm.serversList,\"placeholder\":\"Search\",\"label\":\"title\",\"filterable\":false,\"appendToBody\":\"\",\"data-cy\":\"server-select\"},on:{\"input\":function($event){return _vm.handleServerSelected()},\"search\":function (searchTerm, loading) { return _vm.handleServerSearch(searchTerm, loading); }},model:{value:(_vm.selectedServer),callback:function ($$v) {_vm.selectedServer=$$v},expression:\"selectedServer\"}},[_c('span',{attrs:{\"slot\":\"no-options\"},slot:\"no-options\"},[_vm._v(\"Sorry, no devices were found.\")])]):_c('b-form-input',{attrs:{\"readonly\":\"\"},model:{value:(_vm.selectedServer.title),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"title\", $$v)},expression:\"selectedServer.title\"}})],2)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label-for\":\"title\",\"label-cols-sm\":\"2\"}},[_c('template',{slot:\"label\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tTitle:\\n\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('b-form-input',{attrs:{\"id\":\"title\",\"placeholder\":\"Title\"},model:{value:(_vm.device.title),callback:function ($$v) {_vm.$set(_vm.device, \"title\", $$v)},expression:\"device.title\"}})],2)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label-for\":\"input-1\",\"label-cols-sm\":\"2\"}},[_c('template',{slot:\"label\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tInput 1:\\n\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('b-form-input',{attrs:{\"id\":\"input-1\",\"type\":\"number\",\"placeholder\":\"Input 1\"},model:{value:(_vm.device.input1),callback:function ($$v) {_vm.$set(_vm.device, \"input1\", $$v)},expression:\"device.input1\"}})],2)],1),(_vm.usesInput2)?_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Input 2\",\"label-for\":\"input-2\",\"label-cols-sm\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"input-2\",\"placeholder\":\"Input 2\",\"type\":\"number\"},model:{value:(_vm.device.input2),callback:function ($$v) {_vm.$set(_vm.device, \"input2\", $$v)},expression:\"device.input2\"}})],1)],1):_vm._e(),(_vm.usesExtraValue)?_c('b-col',{staticClass:\"pt-3\"},[_c('b-form-group',{attrs:{\"label\":\"Extra value\",\"label-for\":\"extra-value\",\"label-cols-sm\":\"2\",\"label-class\":\"py-0\"}},[_c('b-form-textarea',{staticClass:\"py-0 mh-75px\",attrs:{\"id\":\"extra-value\",\"placeholder\":\"Extra value\"},model:{value:(_vm.device.extraValue),callback:function ($$v) {_vm.$set(_vm.device, \"extraValue\", $$v)},expression:\"device.extraValue\"}})],1)],1):_vm._e(),_c(_vm.childDeviceComponent,{tag:\"component\",attrs:{\"serverId\":_vm.device.serverID},on:{\"validation-changed\":function($event){return _vm.handleValidationChanged($event)},\"device-details-changed\":function($event){return _vm.handleDeviceDetailsChanged($event)}}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Transmit:\",\"label-for\":\"transmit\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"transmit\",\"data-cy\":\"transmit-checkbox\"},model:{value:(_vm.device.audioSettings.transmitEnabled),callback:function ($$v) {_vm.$set(_vm.device.audioSettings, \"transmitEnabled\", $$v)},expression:\"device.audioSettings.transmitEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\\t \\n\\t\\t\\t\")])],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Receive:\",\"label-for\":\"receive\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"receive\"},model:{value:(_vm.device.audioSettings.receiveEnabled),callback:function ($$v) {_vm.$set(_vm.device.audioSettings, \"receiveEnabled\", $$v)},expression:\"device.audioSettings.receiveEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\\t \\n\\t\\t\\t\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Vue, Watch } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\nimport {\r\n\tgetAudioSettingsDefaults,\r\n\tgetCameraSettingsDefaults,\r\n\tgetDoorRelaySettingsDefaults,\r\n\tgetOutputRelaySettingsDefaults\r\n} from \"@/store/devices/templates\";\r\nimport { DeviceDetails, DeviceTypeIdentifier } from \"@/store/devices/types\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component\r\nexport default class ChildDeviceEditMixin extends Vue {\r\n\t@Devices.State private currentDeviceTypeIdentifier: DeviceTypeIdentifier;\r\n\t@Devices.State(\"device\") private deviceFromStore: DeviceDetails;\r\n\r\n\tpublic device: DeviceDetails = null;\r\n\r\n\tpublic created(): void {\r\n\t\tthis.device = cloneDeep(this.deviceFromStore);\r\n\t\tthis.setSettingsMetasIfNeeded();\r\n\t}\r\n\r\n\tprivate setSettingsMetasIfNeeded(): void {\r\n\t\tswitch (this.currentDeviceTypeIdentifier) {\r\n\t\t\tcase DeviceTypeIdentifier.Camera: {\r\n\t\t\t\tif (!this.device.cameraSettings) {\r\n\t\t\t\t\tthis.device.cameraSettings = getCameraSettingsDefaults();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Audio: {\r\n\t\t\t\tif (!this.device.audioSettings) {\r\n\t\t\t\t\tthis.device.audioSettings = getAudioSettingsDefaults();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Output: {\r\n\t\t\t\tif (!this.device.relaySettings) {\r\n\t\t\t\t\tthis.device.relaySettings = getOutputRelaySettingsDefaults();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase DeviceTypeIdentifier.Door: {\r\n\t\t\t\tif (!this.device.relaySettings) {\r\n\t\t\t\t\tthis.device.relaySettings = getDoorRelaySettingsDefaults();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic get isEditing(): boolean {\r\n\t\treturn this.device.deviceID > 0;\r\n\t}\r\n\r\n\t@Watch(\"$v.$invalid\")\r\n\t@Emit(\"validation-changed\")\r\n\tprivate handleValidationChange($invalid: boolean): boolean {\r\n\t\treturn $invalid;\r\n\t}\r\n\r\n\t@Watch(\"device\", { deep: true })\r\n\t@Emit(\"device-details-changed\")\r\n\tprivate handleDeviceDetailsChanged(): void {}\r\n}\r\n","\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { required, requiredIf } from \"vuelidate/lib/validators\";\r\nimport vselect3 from \"vselect3\";\r\nimport { isEqual } from \"lodash\";\r\n\r\nimport ChildDeviceEditMixin from \"@/components/device-setup/editing/ChildDeviceEditMixin\";\r\nimport { AudioSettingsMeta } from \"@/store/devices/types\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select-3\": vselect3\r\n\t},\r\n\tvalidations: {\r\n\t\tdevice: { required },\r\n\t\thasSettingsMetaChanged: {\r\n\t\t\trequired: requiredIf(function() {\r\n\t\t\t\treturn this.isEditing && isEqual(this.device.audioSettings, this.originalAudioSettings);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n})\r\nexport default class AudioEdit extends Mixins(ChildDeviceEditMixin, validationMixin) {\r\n\tprivate originalAudioSettings: AudioSettingsMeta = null;\r\n\r\n\tpublic created(): void {\r\n\t\tthis.originalAudioSettings = { ...this.device.audioSettings };\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AudioEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AudioEdit.vue?vue&type=template&id=eea533de&\"\nimport script from \"./AudioEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./AudioEdit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.hasMatrixBuiltIn)?_c('div',{attrs:{\"data-cy\":\"matrix-functionality\"}},[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Quality:\",\"label-for\":\"record-quality\",\"label-cols-sm\":\"2\"}},[_c('v-select-3',{attrs:{\"options\":_vm.qualityOptions,\"placeholder\":\"Please select\",\"searchable\":false,\"appendToBody\":\"\"},model:{value:(_vm.device.cameraSettings.qual),callback:function ($$v) {_vm.$set(_vm.device.cameraSettings, \"qual\", $$v)},expression:\"device.cameraSettings.qual\"}},[_c('span',{attrs:{\"slot\":\"no-options\"},slot:\"no-options\"},[_vm._v(\"Sorry, no actions were found.\")])])],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"PTZ:\",\"label-for\":\"telemetry\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"telemetry\",\"data-cy\":\"telemetry-checkbox\"},on:{\"input\":function($event){return _vm.handleTelemetryEnabledInput()}},model:{value:(_vm.telemetryEnabled),callback:function ($$v) {_vm.telemetryEnabled=$$v},expression:\"telemetryEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\")])],1)],1),(_vm.telemetryEnabled)?_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"PTZ speed:\",\"label-for\":\"telemetry-speed\",\"label-cols-sm\":\"2\"}},[_c('v-select-3',{attrs:{\"options\":_vm.telemetrySpeedOptions,\"placeholder\":\"Please select\",\"searchable\":false,\"appendToBody\":\"\"},model:{value:(_vm.device.cameraSettings.telemSpeed),callback:function ($$v) {_vm.$set(_vm.device.cameraSettings, \"telemSpeed\", $$v)},expression:\"device.cameraSettings.telemSpeed\"}},[_c('span',{attrs:{\"slot\":\"no-options\"},slot:\"no-options\"},[_vm._v(\"Sorry, no speeds were found.\")])])],1),_c('preset-edit')],1):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-table',{attrs:{\"striped\":\"\",\"hover\":\"\",\"items\":_vm.presets,\"fields\":_vm.presetConfigFields},scopedSlots:_vm._u([{key:\"cell(position)\",fn:function(row){return [(_vm.presetFieldIsInEditMode(row.item, row.field))?_c('b-input',{key:[row.field.key, row.item.position].toString(),class:_vm.presetPositionErrorClass(row.item),attrs:{\"type\":row.field.dataType},model:{value:(row.item[row.field.key]),callback:function ($$v) {_vm.$set(row.item, row.field.key, $$v)},expression:\"row.item[row.field.key]\"}}):_c('span',{key:[row.field.key, row.item.position].toString(),class:_vm.presetPositionConflictClass(row.item)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(row.item[row.field.key])+\"\\n\\t\\t\\t\")])]}},{key:\"cell(name)\",fn:function(row){return [(_vm.presetFieldIsInEditMode(row.item, row.field))?_c('b-input',{key:[row.field.key, row.item.position].toString(),attrs:{\"type\":row.field.dataType},model:{value:(row.item[row.field.key]),callback:function ($$v) {_vm.$set(row.item, row.field.key, $$v)},expression:\"row.item[row.field.key]\"}}):_c('span',{key:[row.field.key, row.item.position].toString()},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(row.item[row.field.key])+\"\\n\\t\\t\\t\")])]}},{key:\"cell(actions)\",fn:function(row){return [(!row.item.editing && !row.item.creating)?_c('i',{staticClass:\"fas fa-edit hover-icon px-1\",attrs:{\"size\":\"sm\",\"data-cy\":\"btn-edit-contact\"},on:{\"click\":function($event){return _vm.editPreset(row.item)}}}):_vm._e(),(row.item.editing && _vm.allowedToUpdate(row.item))?_c('i',{staticClass:\"fas fa-check hover-icon px-1 text-success col-sm-4\",attrs:{\"size\":\"sm\",\"data-cy\":\"btn-edit-contact\"},on:{\"click\":function($event){return _vm.updatePreset(row.item)}}}):_vm._e(),(row.item.editing)?_c('i',{staticClass:\"fas fa-times hover-icon px-1 text-info col-sm-4\",attrs:{\"size\":\"sm\",\"data-cy\":\"btn-edit-contact\"},on:{\"click\":function($event){return _vm.cancelEditPreset(row.item)}}}):_vm._e(),(row.item.editing)?_c('i',{staticClass:\"fas fa-trash hover-icon px-1 text-danger col-sm-4\",attrs:{\"size\":\"sm\",\"data-cy\":\"btn-edit-contact\"},on:{\"click\":function($event){return _vm.deletePreset(row.item)}}}):_vm._e(),(row.item.creating && _vm.allowedToSave(row.item))?_c('i',{staticClass:\"fas fa-check hover-icon px-1 text-success col-sm-4\",attrs:{\"size\":\"sm\",\"data-cy\":\"btn-edit-contact\"},on:{\"click\":function($event){return _vm.createPreset(row.item)}}}):_vm._e(),(row.item.creating)?_c('i',{staticClass:\"fas fa-times hover-icon px-1 text-info col-sm-4\",attrs:{\"size\":\"sm\",\"data-cy\":\"btn-edit-contact\"},on:{\"click\":function($event){return _vm.cancelCreatePreset(row.item)}}}):_vm._e()]}}])}),_c('div',{staticClass:\"text-center\"},[(!_vm.currentlyCreating)?_c('b-btn',{attrs:{\"variant\":\"success\",\"data-cy\":\"AddNewPresetButton\"},on:{\"click\":function($event){return _vm.addBlankPreset()}}},[_vm._v(\"\\n\\t\\t\\tAdd new preset\\n\\t\\t\")]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\nimport { validationMixin } from \"vuelidate\";\r\n\r\nimport ChildDeviceEditMixin from \"@/components/device-setup/editing/ChildDeviceEditMixin\";\r\nimport { DevicePreset, DeviceDetails, DeviceConfigurationPreset, DeviceConfigurationPresetTableItems, DeviceConfigurationPresetPayload } from '@/store/devices/types';\r\nimport { VueBootstrapField } from '@/store/types';\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({\r\n})\r\nexport default class PresetEdit extends Mixins(ChildDeviceEditMixin, validationMixin) {\r\n\r\n\t@Devices.Action private getCameraPresets: (device: DeviceDetails) => Promise;\r\n\t@Devices.Action private createNewCameraPreset: (presetConfigPayload : DeviceConfigurationPresetPayload) => Promise;\r\n\t@Devices.Action private updateCameraPreset: (presetConfigPayload : DeviceConfigurationPresetPayload) => Promise;\r\n\t@Devices.Action private deleteCameraPreset: (presetConfigPayload : DeviceConfigurationPresetPayload) => Promise;\r\n\r\n\tprivate nilNumber: string = \"-897432897543\";\r\n\r\n\tpublic presets: DeviceConfigurationPresetTableItems[] = [];\r\n\r\n\tpublic get dataFields(): VueBootstrapField[] {\r\n\t\treturn this.presetConfigFields.filter(preset => preset.key !== \"actions\");\r\n\t}\r\n\r\n\tpublic get presetConfigFields(): VueBootstrapField[] {\r\n\r\n\t\tlet fields = [\r\n\t\t\t{\r\n\t\t\t\tkey: \"position\",\r\n\t\t\t\tlabel: \"PTZ Preset Position\",\r\n\t\t\t\teditable: false,\r\n\t\t\t\tdataType: \"number\"\r\n\t\t\t} as VueBootstrapField,\r\n\t\t\t{\r\n\t\t\t\tkey: \"name\",\r\n\t\t\t\tlabel: \"PTZ Preset Name\",\r\n\t\t\t\teditable: true,\r\n\t\t\t\tdataType: \"text\"\r\n\t\t\t} as VueBootstrapField,\r\n\t\t\t{\r\n\t\t\t\tkey: \"actions\",\r\n\t\t\t\tlabel: \"Actions\",\r\n\t\t\t\teditable: false\r\n\t\t\t} as VueBootstrapField\r\n\t\t] as VueBootstrapField[];\r\n\r\n\t\treturn fields;\r\n\t}\r\n\r\n\tpublic async mounted() {\r\n\t\tlet presetsFromDb = await this.getCameraPresets(this.device);\r\n\t\tthis.presets = presetsFromDb.map(preset => { return {...preset, editing: false, creating: false} as DeviceConfigurationPresetTableItems});\r\n\r\n\t\tif (this.presets) {\r\n\t\t\tthis.device.presets = this.presets.map(preset => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpresetNumber: preset.position,\r\n\t\t\t\t\ttitle: preset.name\r\n\t\t\t\t} as DevicePreset\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate presetFieldIsInEditMode(preset: DeviceConfigurationPresetTableItems, field: VueBootstrapField): boolean {\r\n\t\treturn (preset.editing && field.editable) || preset.creating;\r\n\t}\r\n\r\n\tprivate get currentlyCreating(): boolean {\r\n\t\treturn this.presets.some(preset => preset.creating);\r\n\t}\r\n\r\n\tprivate allowedToSave(preset: DeviceConfigurationPresetTableItems): boolean {\r\n\t\tif (preset.position === null || preset.position === undefined || isNaN(preset.position))\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (this.presets.filter(presetCheck => \r\n\t\t\t\tparseInt(presetCheck.position.toString()) === parseInt((preset.position?.toString()) ?? this.nilNumber)\r\n\t\t\t).length > 1\r\n\t\t)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\treturn !isNaN(parseInt(preset.position.toString()));\r\n\t}\r\n\r\n\tprivate allowedToUpdate(preset: DeviceConfigurationPresetTableItems): boolean {\r\n\t\treturn this.allowedToSave(preset) && preset.name !== this.device.presets.find(presetToFind => presetToFind.presetNumber === preset.position).title;\r\n\t}\r\n\r\n\tprivate presetValidityCSSClass(preset: DeviceConfigurationPresetTableItems) : string {\r\n\t\tif (preset.creating) {\r\n\t\t\treturn this.presetPositionErrorClass(preset);\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this.presetPositionConflictClass(preset);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate presetPositionErrorClass(preset: DeviceConfigurationPresetTableItems): string {\r\n\t\treturn !this.allowedToSave(preset) ? \"error\" : \"\";\r\n\t}\r\n\r\n\tprivate presetPositionConflictClass(preset: DeviceConfigurationPresetTableItems): string {\r\n\t\tlet presetsBeingCreated = this.presets.filter(presetCheck => \r\n\t\t\tpresetCheck.creating === true\r\n\t\t);\r\n\r\n\t\tif (presetsBeingCreated.length < 1) {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\t\r\n\t\treturn presetsBeingCreated.some(presetBeingCreated => \r\n\t\t\tparseInt((presetBeingCreated.position?.toString()) ?? this.nilNumber) === parseInt(preset.position.toString())\r\n\t\t) ? \"conflict\" : \"\";\r\n\t}\r\n\r\n\tprivate cancelCreatePreset(preset: DeviceConfigurationPresetTableItems): void {\r\n\t\tpreset.creating = false;\r\n\t\tthis.presets.remove(preset);\r\n\t}\r\n\r\n\tprivate async createPreset(preset: DeviceConfigurationPresetTableItems): Promise {\r\n\t\tif (await this.createNewCameraPreset({ \r\n\t\t\tdeviceId: this.device.deviceID,\r\n\t\t\tgroupId: this.device.groupID ?? 0,\r\n\t\t\tposition: parseInt(preset.position.toString()),\r\n\t\t\tname: preset.name\r\n\t\t} as DeviceConfigurationPresetPayload))\r\n\t\t{\r\n\t\t\tthis.device.presets.push({presetNumber: preset.position, title: preset.name} as DevicePreset);\r\n\t\t\tpreset.creating = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async updatePreset(preset: DeviceConfigurationPresetTableItems): Promise {\r\n\t\tif (await this.updateCameraPreset({ \r\n\t\t\tdeviceId: this.device.deviceID,\r\n\t\t\tgroupId: this.device.groupID ?? 0,\r\n\t\t\tposition: parseInt(preset.position.toString()),\r\n\t\t\tname: preset.name\r\n\t\t} as DeviceConfigurationPresetPayload))\r\n\t\t{\r\n\t\t\tthis.device.presets.find(presetToRemove => presetToRemove.presetNumber === preset.position).title = preset.name;\r\n\t\t\tpreset.editing = false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate editPreset(preset: DeviceConfigurationPresetTableItems): void {\r\n\t\tpreset.editing = true;\r\n\t}\r\n\r\n\tprivate async deletePreset(preset: DeviceConfigurationPresetTableItems): Promise {\r\n\t\tif (await this.deleteCameraPreset({ \r\n\t\t\tdeviceId: this.device.deviceID,\r\n\t\t\tgroupId: this.device.groupID ?? 0,\r\n\t\t\tposition: parseInt(preset.position.toString()),\r\n\t\t\tname: preset.name\r\n\t\t} as DeviceConfigurationPresetPayload))\r\n\t\t{\r\n\t\t\tthis.device.presets.removeWhere(presetToRemove => presetToRemove.presetNumber === preset.position);\r\n\t\t\tthis.presets.remove(preset);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate cancelEditPreset(preset: DeviceConfigurationPresetTableItems): void {\r\n\t\tpreset.editing = false;\r\n\t\tpreset.name = this.device.presets.find(presetToFind => presetToFind.presetNumber === preset.position).title;\r\n\t}\r\n\r\n\tprivate addBlankPreset(): DeviceConfigurationPresetTableItems {\r\n\t\tlet newPreset = {name: \"New Preset\", position: null, editing: false, creating: true} as DeviceConfigurationPresetTableItems;\r\n\t\tthis.presets.push(newPreset);\r\n\r\n\t\t// return just for easier unit tests.\r\n\t\treturn newPreset;\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PresetEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PresetEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PresetEdit.vue?vue&type=template&id=e4b69c82&scoped=true&\"\nimport script from \"./PresetEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./PresetEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PresetEdit.vue?vue&type=style&index=0&id=e4b69c82&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e4b69c82\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { required, requiredIf } from \"vuelidate/lib/validators\";\r\nimport vselect3 from \"vselect3\";\r\nimport { isEqual } from \"lodash\";\r\n\r\nimport { extractPropertyFromXml } from \"@/utils/string-utils\";\r\nimport ChildDeviceEditMixin from \"@/components/device-setup/editing/ChildDeviceEditMixin\";\r\nimport { CameraSettingsMeta, ServerDetails, ServerType } from \"@/store/devices/types\";\r\nimport PresetEdit from \"@/components/device-setup/editing/PresetEdit.vue\"\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select-3\": vselect3,\r\n\t\t\"preset-edit\": PresetEdit\r\n\t},\r\n\tvalidations: {\r\n\t\tdevice: { required },\r\n\t\thasSettingsMetaChanged: {\r\n\t\t\trequired: requiredIf(function() {\r\n\t\t\t\treturn this.isEditing && isEqual(this.device.cameraSettings, this.originalCameraSettings);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n})\r\nexport default class CameraEdit extends Mixins(ChildDeviceEditMixin, validationMixin) {\r\n\t@Prop({ type: Number }) private serverId: number;\r\n\r\n\t@Devices.State private serversList: ServerDetails[];\r\n\t@Devices.State private serverTypes: ServerType[];\r\n\r\n\tprivate originalCameraSettings: CameraSettingsMeta = null;\r\n\tprivate telemetryEnabled: boolean = false;\r\n\r\n\tpublic created(): void {\r\n\t\tthis.originalCameraSettings = { ...this.device.cameraSettings };\r\n\t\tthis.telemetryEnabled = this.device.cameraSettings.telemServerId === 0;\r\n\t}\r\n\r\n\tprivate get qualityOptions(): string[] {\r\n\t\treturn [\"Default\", \"Lowest\", \"Low\", \"Medium\", \"High\", \"Highest\"];\r\n\t}\r\n\r\n\tprivate get telemetrySpeedOptions(): string[] {\r\n\t\treturn [\"Default\", \"Slowest\", \"Slow\", \"Medium\", \"Fast\", \"Fastest\"];\r\n\t}\r\n\r\n\tprivate get hasMatrixBuiltIn(): boolean {\r\n\t\tif (!this.serverId) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst server: ServerDetails = this.serversList.find(s => s.serverID === this.serverId);\r\n\r\n\t\tif (!server) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tconst serverType: ServerType = this.serverTypes.find(st => st.serverTypeID == server.serverTypeID);\r\n\r\n\t\tif (!serverType) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn serverType.hasMatrixBuiltIn;\r\n\t}\r\n\r\n\tprivate handleTelemetryEnabledInput(): void {\r\n\t\tthis.device.cameraSettings.telemServerId = this.telemetryEnabled ? 0 : -1;\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CameraEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CameraEdit.vue?vue&type=template&id=4cbcf3ea&\"\nimport script from \"./CameraEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./CameraEdit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"On/Off:\",\"label-for\":\"onOff\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"onOff\",\"data-cy\":\"onoff-checkbox\"},model:{value:(_vm.device.relaySettings.onOffEnabled),callback:function ($$v) {_vm.$set(_vm.device.relaySettings, \"onOffEnabled\", $$v)},expression:\"device.relaySettings.onOffEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\\t \\n\\t\\t\\t\")])],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Pulse:\",\"label-for\":\"pulse\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"pulse\"},model:{value:(_vm.device.relaySettings.pulseEnabled),callback:function ($$v) {_vm.$set(_vm.device.relaySettings, \"pulseEnabled\", $$v)},expression:\"device.relaySettings.pulseEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\\t \\n\\t\\t\\t\")])],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Default State Enabled:\",\"label-for\":\"stateSwitch\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"stateSwitch\"},model:{value:(_vm.device.relaySettings.stateSwitchEnabled),callback:function ($$v) {_vm.$set(_vm.device.relaySettings, \"stateSwitchEnabled\", $$v)},expression:\"device.relaySettings.stateSwitchEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\\t \\n\\t\\t\\t\")])],1)],1),(_vm.device.relaySettings.stateSwitchEnabled)?_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Default State On:\",\"label-for\":\"stateSwitchDefaultState\",\"label-cols-sm\":\"2\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"stateSwitchDefaultState\"},model:{value:(_vm.device.relaySettings.stateSwitchDefaultState),callback:function ($$v) {_vm.$set(_vm.device.relaySettings, \"stateSwitchDefaultState\", $$v)},expression:\"device.relaySettings.stateSwitchDefaultState\"}},[_vm._v(\"\\n\\t\\t\\t\\t \\n\\t\\t\\t\")])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { required, requiredIf } from \"vuelidate/lib/validators\";\r\nimport vselect3 from \"vselect3\";\r\nimport { isEqual } from \"lodash\";\r\n\r\nimport ChildDeviceEditMixin from \"@/components/device-setup/editing/ChildDeviceEditMixin\";\r\nimport { RelaySettingsMeta } from \"@/store/devices/types\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"v-select-3\": vselect3\r\n\t},\r\n\tvalidations: {\r\n\t\tdevice: { required },\r\n\t\thasSettingsMetaChanged: {\r\n\t\t\trequired: requiredIf(function() {\r\n\t\t\t\treturn this.isEditing && isEqual(this.device.relaySettings, this.originalRelaySettings);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n})\r\nexport default class RelayEdit extends Mixins(ChildDeviceEditMixin, validationMixin) {\r\n\tprivate originalRelaySettings: RelaySettingsMeta = null;\r\n\r\n\tpublic created(): void {\r\n\t\tthis.originalRelaySettings = { ...this.device.relaySettings };\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RelayEdit.vue?vue&type=template&id=30d74d66&\"\nimport script from \"./RelayEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./RelayEdit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { VNode } from \"vue\";\nimport { Component, Mixins } from \"vue-property-decorator\";\nimport { namespace, Mutation } from \"vuex-class\";\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\nimport vselect3 from \"vselect3\";\nimport { validationMixin } from \"vuelidate\";\nimport { maxValue, minValue, required, requiredIf } from \"vuelidate/lib/validators\";\nimport { debounce, isEqual } from \"lodash\";\n\nimport { getDebouncePeriod } from \"@/utils/debounce-helper\";\nimport AudioEdit from \"@/components/device-setup/editing/AudioEdit.vue\";\nimport CameraEdit from \"@/components/device-setup/editing/CameraEdit.vue\";\nimport RelayEdit from \"@/components/device-setup/editing/RelayEdit.vue\";\n\nimport {\n\tDeviceDetails,\n\tDeviceType,\n\tDeviceTypeIdentifier,\n\tServerDetails,\n\tServerType,\n\tServersWithEnabledDeviceTypesParams\n} from \"@/store/devices/types\";\n\nconst Devices = namespace(\"devices\");\n\nconst childDeviceComponents: Record = {\n\t[DeviceTypeIdentifier.Audio]: AudioEdit,\n\t[DeviceTypeIdentifier.Camera]: CameraEdit,\n\t[DeviceTypeIdentifier.Output]: RelayEdit,\n\t[DeviceTypeIdentifier.Door]: RelayEdit\n};\n\n@Component({\n\tcomponents: {\n\t\t\"v-select-3\": vselect3,\n\t\t\"vue-perfect-scrollbar\": VuePerfectScrollbar\n\t},\n\tvalidations: {\n\t\tdevice: {\n\t\t\tserverID: { required, minValue: minValue(1) },\n\t\t\ttitle: { required },\n\t\t\tinput1: { required, minValue: minValue(-1), maxValue: maxValue(2147483647) },\n\t\t\tinput2: { minValue: minValue(-1), maxValue: maxValue(2147483647) }\n\t\t},\n\t\tdataUnchanged: {\n\t\t\trequired: requiredIf(function() {\n\t\t\t\treturn (\n\t\t\t\t\tthis.device &&\n\t\t\t\t\tthis.device.title === this.deviceFromStore.title &&\n\t\t\t\t\tthis.device.serverID === this.deviceFromStore.serverID &&\n\t\t\t\t\tthis.device.input1.toString() === this.deviceFromStore.input1.toString() &&\n\t\t\t\t\t(this.device.extraValue ?? \"\") === (this.deviceFromStore.extraValue ?? \"\") &&\n\t\t\t\t\tthis.device.input2.toString() === this.deviceFromStore.input2.toString()\n\t\t\t\t);\n\t\t\t})\n\t\t}\n\t}\n})\nexport default class ChildDeviceEdit extends Mixins(validationMixin) {\n\t@Mutation private setIsLoading: (loading: boolean) => void;\n\n\t@Devices.Action private addDevice: (device: DeviceDetails) => Promise;\n\t@Devices.Action private getServer: (serverId: number) => Promise;\n\t@Devices.Action private getServersWithEnabledDeviceTypes: (\n\t\tparams: ServersWithEnabledDeviceTypesParams\n\t) => Promise;\n\t@Devices.Action private updateDevice: (device: DeviceDetails) => Promise;\n\t@Devices.Mutation private setEditChildDeviceModalVisibility: (visible: boolean) => void;\n\t@Devices.State private currentDeviceTypeIdentifier: DeviceTypeIdentifier;\n\t@Devices.State private currentServer: ServerDetails;\n\t@Devices.State(\"device\") private deviceFromStore: DeviceDetails;\n\t@Devices.State private editChildDeviceModalVisible: boolean;\n\t@Devices.State(\"serversList\") private serversListFromStore: ServerDetails[];\n\t@Devices.State(\"serverTypes\") private serverTypesFromStore: ServerType[];\n\n\tprivate childDeviceIsInvalid: boolean = true;\n\tprivate device: DeviceDetails = null;\n\tprivate searchTerm: string = \"\";\n\tprivate selectedServer: ServerDetails = null;\n\tprivate serversList: ServerDetails[] = [];\n\n\tprivate async created(): Promise {\n\t\tthis.device = { ...this.deviceFromStore };\n\t\tthis.filterServersListForDeviceType();\n\n\t\tif ((this.creatingFromMainTab || this.isEditing) && this.notEnoughServersDisplayed) {\n\t\t\tconst serversWithEnabledDeviceTypesParams: ServersWithEnabledDeviceTypesParams = { page: 1, pageSize: 100 };\n\n\t\t\tthis.adjustQueryForDeviceType(serversWithEnabledDeviceTypesParams);\n\n\t\t\tawait this.getServersWithEnabledDeviceTypes(serversWithEnabledDeviceTypesParams);\n\t\t\tthis.filterServersListForDeviceType();\n\t\t}\n\n\t\tif (this.isEditing && this.deviceServerNotInList) {\n\t\t\tawait this.getServer(this.device.serverID);\n\t\t\tthis.filterServersListForDeviceType();\n\t\t}\n\n\t\tthis.setInitialSelectedServer();\n\t\tthis.setIsLoading(false);\n\t}\n\n\tprivate filterServersListForDeviceType(): void {\n\t\tthis.serversList = this.serversListFromStore.filter(\n\t\t\ts =>\n\t\t\t\tthis.serverTypesForThisDeviceType.some(st => st.serverTypeID === s.serverTypeID) &&\n\t\t\t\t(!this.searchTerm || s.title.toLowerCase().includes(this.searchTerm.toLowerCase()))\n\t\t);\n\t}\n\n\tprivate get serverTypesForThisDeviceType(): ServerType[] {\n\t\tswitch (this.device.deviceTypeID) {\n\t\t\tcase DeviceType.Audio:\n\t\t\t\treturn this.serverTypesFromStore.filter(st => st.numAudioInputs !== 0);\n\t\t\tcase DeviceType.Relay:\n\t\t\t\treturn this.serverTypesFromStore.filter(st => st.numRelays !== 0);\n\t\t\tdefault:\n\t\t\t\treturn this.serverTypesFromStore.filter(st => st.numCameras !== 0);\n\t\t}\n\t}\n\n\tprivate get notEnoughServersDisplayed(): boolean {\n\t\treturn this.serversList.length < 100;\n\t}\n\n\tprivate get deviceServerNotInList(): boolean {\n\t\treturn this.serversList.find(s => s.serverID == this.device.serverID) === undefined;\n\t}\n\n\tprivate setInitialSelectedServer(): void {\n\t\tthis.selectedServer = this.serversListFromStore.find(s => s.serverID === this.device.serverID);\n\t}\n\n\tprivate get isEditing(): boolean {\n\t\treturn this.device.deviceID > 0;\n\t}\n\n\tprivate get title(): string {\n\t\tconst deviceType = DeviceTypeIdentifier[this.currentDeviceTypeIdentifier];\n\n\t\treturn this.isEditing\n\t\t\t? `Editing ${deviceType} Device \"${this.deviceFromStore.title}\"`\n\t\t\t: `Create ${deviceType} Device`;\n\t}\n\n\tprivate get creatingFromMainTab(): boolean {\n\t\treturn this.currentServer === null;\n\t}\n\n\tprivate handleServerSelected(): void {\n\t\tthis.device.serverID = this.selectedServer && this.selectedServer.serverID;\n\t}\n\n\tprivate get childDeviceComponent(): VNode {\n\t\treturn childDeviceComponents[this.currentDeviceTypeIdentifier];\n\t}\n\n\tprivate handleValidationChanged(invalid: boolean): void {\n\t\tthis.childDeviceIsInvalid = invalid;\n\t}\n\n\tprivate handleDeviceDetailsChanged(device: DeviceDetails): void {\n\t\tthis.device = {\n\t\t\t...device,\n\t\t\ttitle: this.device.title,\n\t\t\tserverID: this.device.serverID,\n\t\t\tinput1: this.device.input1\n\t\t};\n\t}\n\n\tprivate handleModalHidden(): void {\n\t\tthis.setEditChildDeviceModalVisibility(false);\n\t}\n\n\tprivate get deviceIsInvalid(): boolean {\n\t\treturn this.$v.device.$invalid || (this.$v.dataUnchanged.$invalid && this.childDeviceIsInvalid);\n\t}\n\n\tprivate async handleSaveClick(): Promise {\n\t\t//API will default input2 to 0 if it's empty\n\t\tif (!this.device.input2 && this.device.input2 !== 0) {\n\t\t\tthis.device.input2 = -1;\n\t\t}\n\n\t\tif (this.isEditing) {\n\t\t\tawait this.updateDevice(this.device);\n\t\t} else {\n\t\t\tawait this.addDevice(this.device);\n\t\t}\n\n\t\tthis.setEditChildDeviceModalVisibility(false);\n\t}\n\n\tprivate handleServerSearch(searchTerm: string, loading: (boolean) => void): void {\n\t\tloading(true);\n\t\tthis.debounceSearch(this, searchTerm, loading);\n\t}\n\n\tprivate debounceSearch = debounce(\n\t\tasync (\n\t\t\tcomponent: InstanceType,\n\t\t\tsearchTerm: string,\n\t\t\tloading: (boolean) => void\n\t\t): Promise => {\n\t\t\tcomponent.searchTerm = searchTerm;\n\t\t\tawait this.searchServers(loading);\n\t\t},\n\t\tgetDebouncePeriod()\n\t);\n\n\tprivate async searchServers(loading: (boolean) => void): Promise {\n\t\tif (this.searchTerm) {\n\t\t\tconst serversWithEnabledDeviceTypesParams: ServersWithEnabledDeviceTypesParams = {\n\t\t\t\tpage: 1,\n\t\t\t\tpageSize: 100,\n\t\t\t\tsearchTerm: this.searchTerm\n\t\t\t};\n\n\t\t\tthis.adjustQueryForDeviceType(serversWithEnabledDeviceTypesParams);\n\n\t\t\tawait this.getServersWithEnabledDeviceTypes(serversWithEnabledDeviceTypesParams);\n\t\t}\n\n\t\tthis.filterServersListForDeviceType();\n\n\t\tloading(false);\n\t}\n\n\tprivate adjustQueryForDeviceType(serversWithEnabledDeviceTypesParams: ServersWithEnabledDeviceTypesParams): void {\n\t\tswitch (this.device.deviceTypeID) {\n\t\t\tcase DeviceType.Camera: {\n\t\t\t\tserversWithEnabledDeviceTypesParams.camerasEnabled = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DeviceType.Audio: {\n\t\t\t\tserversWithEnabledDeviceTypesParams.audiosEnabled = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DeviceType.Relay: {\n\t\t\t\tserversWithEnabledDeviceTypesParams.relaysEnabled = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate get usesInput2(): boolean {\n\t\tconst serverType: ServerType = this.serverTypesFromStore.find(\n\t\t\tst => st.serverTypeID == this.selectedServer?.serverTypeID\n\t\t);\n\n\t\tif (!serverType) {\n\t\t\treturn false;\n\t\t}\n\n\t\tswitch (this.device.deviceTypeID) {\n\t\t\tcase DeviceType.Camera:\n\t\t\t\treturn serverType.usesExtraCameraIds;\n\t\t\tcase DeviceType.Audio:\n\t\t\t\treturn serverType.usesExtraAudioIds;\n\t\t\tcase DeviceType.Relay:\n\t\t\t\treturn serverType.usesExtraRelayIds;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate get usesExtraValue(): boolean {\n\t\tconst serverType: ServerType = this.serverTypesFromStore.find(\n\t\t\tst => st.serverTypeID == this.selectedServer?.serverTypeID\n\t\t);\n\n\t\tif (!serverType) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn serverType.usesDeviceExtraValue;\n\t}\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChildDeviceEdit.vue?vue&type=template&id=57d9e408&scoped=true&\"\nimport script from \"./ChildDeviceEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChildDeviceEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChildDeviceEdit.vue?vue&type=style&index=0&id=57d9e408&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"57d9e408\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.deleteChildDeviceModalVisible)?_c('b-modal',{attrs:{\"visible\":\"\",\"size\":\"lg\",\"centered\":\"\",\"header-class\":\"delete-confirm-modal\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"data-cy\":\"delete-child-device-modal\",\"static\":\"\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"danger\",\"data-cy\":\"confirm-delete-button\"},on:{\"click\":function($event){return _vm.handleDeleteConfirmClick()}}},[_vm._v(\"\\n\\t\\t\\tDelete\\n\\t\\t\")]),_c('b-button',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"close-button\"},on:{\"click\":function($event){return _vm.handleCloseDeleteModalClick()}}},[_vm._v(\"\\n\\t\\t\\tCancel\\n\\t\\t\")])]},proxy:true}],null,false,3524796827)},[_c('template',{staticClass:\"d-flex align-items-center\",slot:\"modal-header\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('i',{staticClass:\"fas fa-trash text-danger mr-2\"}),_c('h4',[_vm._v(\"Delete \"+_vm._s(_vm.deviceTypeTitle))])])]),_c('h5',[_vm._v(\"\\n\\t\\tAre you sure you want to delete the \"+_vm._s(_vm.deviceTypeTitle)+\"\\n\\t\\t\"),_c('strong',[_vm._v(\"\\\"\"+_vm._s(_vm.device.title)+\"\\\"?\")])])],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\n\r\nimport { DeviceDetails, DeviceTypeIdentifier } from \"@/store/devices/types\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({})\r\nexport default class DeleteChildDeviceModal extends Vue {\r\n\t@Devices.Action private deleteDevice: (device: DeviceDetails) => Promise;\r\n\t@Devices.Mutation private setDeleteChildDeviceModalVisibility: (visible: boolean) => void;\r\n\t@Devices.State private currentDeviceTypeIdentifier: DeviceTypeIdentifier;\r\n\t@Devices.State private deleteChildDeviceModalVisible: boolean;\r\n\t@Devices.State private device: DeviceDetails;\r\n\r\n\tprivate handleCloseDeleteModalClick(): void {\r\n\t\tthis.setDeleteChildDeviceModalVisibility(false);\r\n\t}\r\n\r\n\tprivate async handleDeleteConfirmClick(): Promise {\r\n\t\tawait this.deleteDevice(this.device);\r\n\t\tthis.setDeleteChildDeviceModalVisibility(false);\r\n\t}\r\n\r\n\tprivate get deviceTypeTitle(): string {\r\n\t\treturn DeviceTypeIdentifier[this.currentDeviceTypeIdentifier].toLowerCase();\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteChildDeviceModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteChildDeviceModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeleteChildDeviceModal.vue?vue&type=template&id=8993a9c2&\"\nimport script from \"./DeleteChildDeviceModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeleteChildDeviceModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{attrs:{\"data-cy\":\"device-table\"}},[_c('b-row',{staticClass:\"mb-4\"},[_c('b-col',[_c('b-form-input',{attrs:{\"type\":\"search\",\"placeholder\":\"Search...\",\"max\":\"250\",\"data-cy\":\"search\"},on:{\"input\":function($event){return _vm.handleSearchInput($event)}},model:{value:(_vm.searchTermPersisted),callback:function ($$v) {_vm.searchTermPersisted=$$v},expression:\"searchTermPersisted\"}})],1),(_vm.hasEditPermission)?_c('b-col',{attrs:{\"cols\":\"auto\"}},[_c('b-button',{attrs:{\"variant\":\"primary\",\"data-cy\":\"add-button\"},on:{\"click\":function($event){return _vm.handleAddDevice()}}},[_vm._v(\"Add Device\")])],1):_vm._e()],1),_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleScrollBarReachEnd()}}},[_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"items\":_vm.serversToDisplay,\"fields\":_vm.fields,\"hover\":\"\",\"head-variant\":\"dark\",\"busy\":_vm.tableIsBusy},scopedSlots:_vm._u([{key:\"cell(actions)\",fn:function(row){return [_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.left.v-primary\",modifiers:{\"hover\":true,\"left\":true,\"v-primary\":true}}],staticClass:\"fas fa-edit hover-icon\",attrs:{\"title\":\"Edit\",\"data-cy\":\"edit-button\"},on:{\"click\":function($event){return _vm.handleEditClick(row.item)}}}),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right.v-primary\",modifiers:{\"hover\":true,\"right\":true,\"v-primary\":true}}],staticClass:\"fas fa-trash hover-icon mx-1\",attrs:{\"title\":\"Delete\",\"data-cy\":\"delete-button\"},on:{\"click\":function($event){return _vm.handleDeleteClick(row.item)}}})]}},(!_vm.loadingMoreRecords)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreRecords)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1),(_vm.serverModalOpened)?_c('b-modal',{attrs:{\"visible\":_vm.serverModalOpened,\"size\":\"xl\",\"static\":\"\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"footer-class\":\"mt-3\"},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return [_c('div',{staticClass:\"d-flex w-100 align-items-center\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('span',{staticClass:\"h-5\"},[_vm._v(_vm._s(_vm.editModalTitle))])]),(_vm.currentServer.groupSyncId)?_c('i',{staticClass:\"fas fa-exclamation-triangle text-warning pt-6px\",attrs:{\"id\":\"syncWarning\"}}):_vm._e(),(_vm.currentServer.groupSyncId)?_c('b-tooltip',{attrs:{\"target\":\"syncWarning\",\"triggers\":\"hover\",\"variant\":\"warning\"}},[_c('h4',{staticClass:\"alert-heading\"},[_vm._v(\"Caution!\")]),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tThis device was added to the system via Sync; any changes may be overwritten.\\n\\t\\t\\t\\t\\t\")])]):_vm._e(),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-cy\":\"close-edit-modal-button\"},on:{\"click\":function($event){return _vm.handleEditModalCloseClick()}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t×\\n\\t\\t\\t\\t\")])],1)]},proxy:true},{key:\"modal-footer\",fn:function(){return [_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tabIndex === 0),expression:\"tabIndex === 0\"}],attrs:{\"variant\":\"primary\",\"data-cy\":\"save-button\",\"disabled\":_vm.serverModelDetails.invalid},on:{\"click\":function($event){return _vm.handleServerSaveClick()}}},[_vm._v(\"\\n\\t\\t\\t\\tSave\\n\\t\\t\\t\")]),_c('b-button',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"cancel-button\"},on:{\"click\":function($event){return _vm.handleEditModalCloseClick()}}},[_vm._v(\"\\n\\t\\t\\t\\tCancel\\n\\t\\t\\t\")])]},proxy:true}],null,false,3555636474)},[_c('b-tabs',{staticClass:\"tab-min-height\",attrs:{\"card\":\"\",\"vertical\":\"\"},model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{staticClass:\"py-0\",attrs:{\"active\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('i',{staticClass:\"fas fa-fw fa-info-square\"}),_vm._v(\"\\n\\t\\t\\t\\t\\tDevice Information\\n\\t\\t\\t\\t\")]},proxy:true}],null,false,3174875288)},[_c('device-edit',{attrs:{\"data-cy\":\"device-edit\"},on:{\"server-model-details-changed\":function($event){return _vm.handleServerModelDetailsChanged($event)},\"component-loaded\":function($event){return _vm.deviceEditComponentLoaded()}}})],1),(this.showGetConfig)?_c('b-tab',{attrs:{\"disabled\":_vm.isGetConfigDisabled,\"lazy\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right.v-primary\",modifiers:{\"hover\":true,\"right\":true,\"v-primary\":true}}],staticClass:\"hover-icon\",attrs:{\"title\":_vm.getConfigTooltipText}},[_c('i',{staticClass:\"fal fa-cogs\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t Device Configuration\\n\\t\\t\\t\\t\\t\")])]},proxy:true}],null,false,974452518)},[_c('GetConfig')],1):_vm._e(),_vm._l((_vm.childDeviceTypeIds),function(childDeviceTypeId){return _c('child-device-tab-wrapper',{key:childDeviceTypeId,attrs:{\"isForAllServers\":false,\"visible\":_vm.tabIndex === childDeviceTypeId + (_vm.showGetConfig ? 1 : 0),\"deviceTypeIdentifier\":childDeviceTypeId}})}),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover.right\",value:(_vm.getAlarmTitleText),expression:\"getAlarmTitleText\",modifiers:{\"hover\":true,\"right\":true}}],class:{ 'disabled-fade': !_vm.allowsAlarms },attrs:{\"variant\":\"primary\"}},[_c('i',{staticClass:\"fas fa-bell\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\tAlarms\\n\\t\\t\\t\\t\\t\\t\"),_c('b-badge',{attrs:{\"variant\":\"secondary\"}},[_vm._v(_vm._s(_vm.alarmCount.toLocaleString()))])],1)]},proxy:true}],null,false,2375783186)},[_c('alarm-setup-table',{staticClass:\"card-body p-0\",attrs:{\"queryable\":\"\",\"bulkImport\":false,\"data-cy\":\"responseSetupTable\",\"selectedServerId\":_vm.selectedServerId}})],1)],2)],1):_vm._e(),_c('delete-device-modal',{attrs:{\"show-modal\":_vm.showDeleteModal,\"data-cy\":\"delete-device-modal\"},on:{\"close-modal\":function($event){return _vm.handleDeleteModalClose()}}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showModal)?_c('b-modal',{attrs:{\"visible\":\"\",\"size\":\"lg\",\"centered\":\"\",\"header-class\":\"delete-confirm-modal\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"static\":\"\",\"data-cy\":\"delete-device-modal\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-button',{attrs:{\"variant\":\"danger\",\"data-cy\":\"confirm-delete-button\"},on:{\"click\":function($event){return _vm.handleDeleteConfirmClick()}}},[_vm._v(\"\\n\\t\\t\\tDelete\\n\\t\\t\")]),_c('b-button',{attrs:{\"variant\":\"secondary\",\"data-cy\":\"close-button\"},on:{\"click\":function($event){return _vm.handleCloseDeleteModalClick()}}},[_vm._v(\"\\n\\t\\t\\tCancel\\n\\t\\t\")])]},proxy:true}],null,false,3524796827)},[_c('template',{staticClass:\"d-flex align-items-center\",slot:\"modal-header\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('i',{staticClass:\"fas fa-trash text-danger mr-2\"}),_c('h4',[_vm._v(\"Delete device\")])])]),_c('h5',[_vm._v(\"\\n\\t\\tAre you sure you want to delete the device\\n\\t\\t\"),_c('strong',[_vm._v(\"\\\"\"+_vm._s(_vm.currentServer.title)+\"\\\"?\")])]),_c('h5',{staticClass:\"mt-2\"},[_vm._v(\"This action will:\")]),_c('ul',[_c('li',[_vm._v(\"Delete all cameras associated with this device\")]),_c('li',[_vm._v(\"Delete all audios associated with this device\")]),_c('li',[_vm._v(\"Delete all doors associated with this device\")]),_c('li',[_vm._v(\"Delete all outputs associated with this device\")]),_c('li',[_vm._v(\"Delete all alarms associated with this device\")])])],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\nimport { namespace } from \"vuex-class\";\r\n\r\nimport { ServerDetails } from \"@/store/devices/types\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({})\r\nexport default class DeleteDeviceModal extends Vue {\r\n\t@Prop({ type: Boolean, required: true }) private showModal: boolean;\r\n\r\n\t@Devices.Action private deleteServer: (serverId: number) => Promise;\r\n\t@Devices.Action private getDeviceTypeCounts: (serverId: number) => Promise;\r\n\t@Devices.State private currentServer: ServerDetails;\r\n\r\n\tprivate handleCloseDeleteModalClick(): void {\r\n\t\tthis.closeModal();\r\n\t}\r\n\r\n\tprivate async handleDeleteConfirmClick(): Promise {\r\n\t\tawait this.deleteServer(this.currentServer.serverID);\r\n\t\tawait this.getDeviceTypeCounts(null);\r\n\t\tthis.closeModal();\r\n\t}\r\n\r\n\t@Emit(\"close-modal\")\r\n\tprivate closeModal(): void {}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteDeviceModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteDeviceModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeleteDeviceModal.vue?vue&type=template&id=0028072b&\"\nimport script from \"./DeleteDeviceModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeleteDeviceModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vue-perfect-scrollbar',{staticClass:\"scroll-area\"},[_c('b-row',{staticClass:\"mx-0 mb-2\"},[_c('b-col',[_c('b-card',{attrs:{\"header\":(\"Device \" + (_vm.selectedServer.serverID) + \" Details\"),\"header-class\":\"h4\"}},[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label-for\":\"title\",\"label-cols-lg\":\"2\"}},[_c('template',{slot:\"label\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tTitle:\\n\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('b-form-input',{attrs:{\"id\":\"title\",\"placeholder\":\"Title\"},model:{value:(_vm.selectedServer.title),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"title\", $$v)},expression:\"selectedServer.title\"}})],2)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label-for\":\"area\",\"label-cols-lg\":\"2\"}},[_c('template',{slot:\"label\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tArea:\\n\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('area-tree-select',{staticClass:\"flex-search w-100 mt-2\",attrs:{\"reduce\":function (group) { return group.id; }},on:{\"component-loaded\":_vm.areaSelectComponentLoaded},model:{value:(_vm.selectedServer.groupID),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"groupID\", $$v)},expression:\"selectedServer.groupID\"}})],2)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label-for\":\"type\",\"label-cols-lg\":\"2\"}},[_c('template',{slot:\"label\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tType:\\n\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-danger\"},[_vm._v(\"*\")])]),_c('v-select-3',{attrs:{\"options\":_vm.serverTypes,\"placeholder\":\"Search\",\"label\":\"title\",\"reduce\":function (serverType) { return serverType.serverTypeID; }},model:{value:(_vm.selectedServer.serverTypeID),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"serverTypeID\", $$v)},expression:\"selectedServer.serverTypeID\"}},[_c('span',{attrs:{\"slot\":\"no-options\"},slot:\"no-options\"},[_vm._v(\"Sorry, no types were found.\")])])],2)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Host:\",\"label-for\":\"host\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"host\",\"placeholder\":\"Host\",\"disabled\":_vm.serverTypeIsAlarmPanel},model:{value:(_vm.selectedServer.host),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"host\", $$v)},expression:\"selectedServer.host\"}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Port:\",\"label-for\":\"port\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"port\",\"placeholder\":\"Port\",\"type\":\"number\",\"disabled\":_vm.serverTypeIsAlarmPanel},model:{value:(_vm.selectedServer.port),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"port\", $$v)},expression:\"selectedServer.port\"}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Username:\",\"label-for\":\"username\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"username\",\"placeholder\":\"Username\",\"disabled\":_vm.serverTypeIsAlarmPanel},model:{value:(_vm.selectedServer.username),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"username\", $$v)},expression:\"selectedServer.username\"}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Password:\",\"label-for\":\"password\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"password\",\"placeholder\":\"Password\",\"type\":\"password\",\"disabled\":_vm.serverTypeIsAlarmPanel},model:{value:(_vm.selectedServer.password),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"password\", $$v)},expression:\"selectedServer.password\"}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":_vm.extraValueLabel,\"label-for\":\"extraValue\",\"label-cols-lg\":\"2\",\"data-cy\":\"extra-value-form-group\"}},[_c('b-form-input',{attrs:{\"id\":\"extraValue\",\"placeholder\":_vm.extraValuePlaceholder,\"value\":_vm.extraValue},on:{\"input\":_vm.updateExtraValue}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Alarm Grouping:\",\"label-for\":\"alarm-grouping\",\"label-cols-lg\":\"2\"}},[_c('v-select-3',{attrs:{\"options\":_vm.alarmGroupingOptions,\"label\":\"title\",\"placeholder\":\"Search\",\"appendToBody\":\"\",\"data-cy\":\"alarm-grouping-select\"},on:{\"input\":function($event){return _vm.handleAlarmGroupingSelected()}},model:{value:(_vm.alarmGrouping),callback:function ($$v) {_vm.alarmGrouping=$$v},expression:\"alarmGrouping\"}},[_c('span',{attrs:{\"slot\":\"no-options\"},slot:\"no-options\"},[_vm._v(\"Sorry, no grouping option was found.\")])])],1)],1)],1)],1),_c('b-col',[_c('b-card',{staticClass:\"mb-3\",attrs:{\"header\":\"Edge Details\",\"header-class\":\"h4\"}},[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Edge URL:\",\"label-for\":\"edgeUrl\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"edgeUrl\",\"placeholder\":\"Edge URL\"},model:{value:(_vm.selectedServer.edgePath),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"edgePath\", $$v)},expression:\"selectedServer.edgePath\"}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Edge User:\",\"label-for\":\"edgeUser\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"edgeUser\",\"placeholder\":\"Edge User\"},model:{value:(_vm.selectedServer.edgeUser),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"edgeUser\", $$v)},expression:\"selectedServer.edgeUser\"}})],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Edge Password:\",\"label-for\":\"edgePassword\",\"label-cols-lg\":\"2\"}},[_c('b-form-input',{attrs:{\"id\":\"edgePassword\",\"placeholder\":\"Edge Password\",\"type\":\"password\"},model:{value:(_vm.selectedServer.edgePassword),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"edgePassword\", $$v)},expression:\"selectedServer.edgePassword\"}})],1)],1)],1),_c('b-card',{staticClass:\"mb-3\",attrs:{\"header\":\"Additional Details\",\"header-class\":\"h4\"}},[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Receive undefined alarms:\",\"label-for\":\"receiveUndefinedAlarms\",\"label-cols-lg\":\"3\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"receiveUndefinedAlarms\"},model:{value:(_vm.selectedServer.receiveUndefinedAlarms),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"receiveUndefinedAlarms\", $$v)},expression:\"selectedServer.receiveUndefinedAlarms\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\")])],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Log disarmed alarms:\",\"label-for\":\"logDisarmedAlarms\",\"label-cols-lg\":\"3\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"logDisarmedAlarms\"},model:{value:(_vm.selectedServer.logDisarmedAlarms),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"logDisarmedAlarms\", $$v)},expression:\"selectedServer.logDisarmedAlarms\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\")])],1)],1),_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Display edge link:\",\"label-for\":\"displayEdgeLink\",\"label-cols-lg\":\"3\"}},[_c('b-form-checkbox',{attrs:{\"id\":\"displayEdgeLink\"},model:{value:(_vm.selectedServer.showEdge),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"showEdge\", $$v)},expression:\"selectedServer.showEdge\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\")])],1)],1),(_vm.serverTypeIsAlarmPanel)?_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Line profile:\",\"label-for\":\"lineProfile\",\"label-cols-lg\":\"3\",\"data-cy\":\"line-profile\"}},[_c('v-select-3',{attrs:{\"options\":_vm.serverLineProfiles,\"label\":\"title\",\"placeholder\":\"Search\",\"reduce\":function (serverLineProfile) { return serverLineProfile.serverLineProfileId; },\"appendToBody\":\"\"},model:{value:(_vm.selectedServer.serverLineProfileId),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"serverLineProfileId\", $$v)},expression:\"selectedServer.serverLineProfileId\"}},[_c('span',{attrs:{\"slot\":\"no-options\"},slot:\"no-options\"},[_vm._v(\"Sorry, no line profile was found.\")])])],1)],1):_vm._e(),(_vm.serverTypeIsAlarmPanel)?_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":\"Account number:\",\"label-for\":\"accountNumber\",\"label-cols-lg\":\"3\",\"data-cy\":\"account-number\"}},[_c('b-form-input',{attrs:{\"id\":\"accountNumber\",\"placeholder\":\"Account Number\"},model:{value:(_vm.selectedServer.accountNumber),callback:function ($$v) {_vm.$set(_vm.selectedServer, \"accountNumber\", $$v)},expression:\"selectedServer.accountNumber\"}})],1)],1):_vm._e()],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Emit, Mixins, Watch } from \"vue-property-decorator\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { namespace } from \"vuex-class\";\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\r\nimport vselect3 from \"vselect3\";\r\nimport { maxLength, minValue, required, requiredIf } from \"vuelidate/lib/validators\";\r\nimport { isEqualWith } from \"lodash\";\r\n\r\nimport { ServerModelDetails } from \"@/components/device-setup/tables/DeviceTable.vue\";\r\nimport { ServerDetails, ServerLineProfile, ServerType } from \"@/store/devices/types\";\r\nimport AreaTreeSelect from \"@/components/form/AreaTreeSelect.vue\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\nconst AlarmGroupingNone: string = \"No Grouping\";\r\nconst AlarmGroupingResponse: string = \"By Response\";\r\nconst AlarmGroupingDefault: string = \"By Area\";\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"area-tree-select\": AreaTreeSelect,\r\n\t\t\"v-select-3\": vselect3,\r\n\t\t\"vue-perfect-scrollbar\": VuePerfectScrollbar\r\n\t},\r\n\tvalidations: {\r\n\t\tselectedServer: {\r\n\t\t\tgroupID: { required, minValue: minValue(1) },\r\n\t\t\tserverTypeID: { required, minValue: minValue(1) },\r\n\t\t\ttitle: { required },\r\n\t\t\taccountNumber: { maxLength: maxLength(20) }\r\n\t\t},\r\n\t\thasDataChanged: {\r\n\t\t\trequired: requiredIf(function() {\r\n\t\t\t\tconst selectedServerWithValidationFieldsOnly = {\r\n\t\t\t\t\t...this.selectedServer,\r\n\t\t\t\t\tdeviceTypeCounts: null,\r\n\t\t\t\t\trecordsRetrievalStatus: null\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst storeServerWithValidationFieldsOnly = {\r\n\t\t\t\t\t...this.currentServer,\r\n\t\t\t\t\tdeviceTypeCounts: null,\r\n\t\t\t\t\trecordsRetrievalStatus: null\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn isEqualWith(\r\n\t\t\t\t\tselectedServerWithValidationFieldsOnly,\r\n\t\t\t\t\tstoreServerWithValidationFieldsOnly,\r\n\t\t\t\t\t(propFromSelectedServer, propFromStoreServer) => {\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t(propFromSelectedServer === null || propFromSelectedServer === \"\") &&\r\n\t\t\t\t\t\t\t(propFromStoreServer === null || propFromStoreServer === \"\")\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n})\r\nexport default class DeviceEdit extends Mixins(validationMixin) {\r\n\t@Devices.Action private getDeviceTypeCounts: (serverId: number) => Promise;\r\n\t@Devices.State private currentServer: ServerDetails;\r\n\t@Devices.State private serverLineProfiles: ServerLineProfile[];\r\n\t@Devices.State private serverTypes: ServerType[];\r\n\t@Devices.Mutation private setExtraValue: (extraValue: string) => void;\r\n\r\n\tprivate alarmGrouping: string = AlarmGroupingDefault;\r\n\tprivate selectedServer: ServerDetails = null;\r\n\tprivate deviceEditLoaded: boolean = false;\r\n\tprivate areaSelectLoaded: boolean = false;\r\n\r\n\tprivate async created(): Promise {\r\n\t\tthis.selectedServer = { ...this.currentServer };\r\n\r\n\t\tif (this.isEditing) {\r\n\t\t\tthis.setAlarmGroupingOption();\r\n\t\t\tawait this.getDeviceTypeCounts(this.selectedServer.serverID);\r\n\t\t}\r\n\r\n\t\tthis.deviceEditLoaded = true;\r\n\t}\r\n\r\n\tprivate updateExtraValue(ev) {\r\n\t\tthis.setExtraValue(ev);\r\n\t}\r\n\r\n\tprivate setAlarmGroupingOption(): void {\r\n\t\tif (this.selectedServer.isRaiseIndividual) {\r\n\t\t\tthis.alarmGrouping = AlarmGroupingNone;\r\n\t\t} else if (this.selectedServer.isRaiseGrouped) {\r\n\t\t\tthis.alarmGrouping = AlarmGroupingResponse;\r\n\t\t} else {\r\n\t\t\tthis.alarmGrouping = AlarmGroupingDefault;\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"componentLoaded\")\r\n\tprivate onComponentLoaded(newValue: boolean, oldValue: boolean) {\r\n\t\tif (newValue && newValue != oldValue) {\r\n\t\t\tthis.$emit(\"component-loaded\");\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get componentLoaded(): boolean {\r\n\t\treturn this.deviceEditLoaded && this.areaSelectLoaded;\r\n\t}\r\n\r\n\tprivate get isEditing(): boolean {\r\n\t\treturn this.selectedServer.serverID > 0;\r\n\t}\r\n\r\n\tprivate get alarmGroupingOptions(): string[] {\r\n\t\treturn [AlarmGroupingNone, AlarmGroupingResponse, AlarmGroupingDefault];\r\n\t}\r\n\r\n\tprivate handleAlarmGroupingSelected(): void {\r\n\t\tswitch (this.alarmGrouping) {\r\n\t\t\tcase AlarmGroupingNone:\r\n\t\t\t\tthis.selectedServer.isRaiseIndividual = true;\r\n\t\t\t\tthis.selectedServer.isRaiseGrouped = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase AlarmGroupingResponse:\r\n\t\t\t\tthis.selectedServer.isRaiseIndividual = false;\r\n\t\t\t\tthis.selectedServer.isRaiseGrouped = true;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthis.selectedServer.isRaiseIndividual = false;\r\n\t\t\t\tthis.selectedServer.isRaiseGrouped = false;\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch(\"selectedServer\", { deep: true })\r\n\t@Watch(\"currentServer\", { deep: true })\r\n\t@Emit(\"server-model-details-changed\")\r\n\tprivate handleServerDetailsChanged(): ServerModelDetails {\r\n\t\treturn { invalid: this.$v.$invalid, selectedServer: this.selectedServer };\r\n\t}\r\n\r\n\tprivate get extraValueLabel(): string {\r\n\t\treturn `${this.extraValuePlaceholder}:`;\r\n\t}\r\n\r\n\tprivate get extraValuePlaceholder(): string {\r\n\t\tconst serverType = this.selectedServerType;\r\n\r\n\t\tif (serverType && serverType.extraValueName) {\r\n\t\t\treturn serverType.extraValueName;\r\n\t\t}\r\n\r\n\t\treturn \"Extra Value\";\r\n\t}\r\n\r\n\tprivate get selectedServerType(): ServerType {\r\n\t\treturn this.serverTypes.find(st => st.serverTypeID === this.selectedServer.serverTypeID);\r\n\t}\r\n\r\n\tprivate get serverTypeIsAlarmPanel(): boolean {\r\n\t\tconst serverType = this.selectedServerType;\r\n\r\n\t\tif (serverType && serverType.isAlarmPanel) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate areaSelectComponentLoaded(): void {\r\n\t\tthis.areaSelectLoaded = true;\r\n\t}\r\n\r\n\tpublic get extraValue(): string {\r\n\r\n\t\tif (this.currentServer) {\r\n\t\t\treturn this.currentServer.extraValue;\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceEdit.vue?vue&type=template&id=23060c37&\"\nimport script from \"./DeviceEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeviceEdit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"scrollable-results\"},[_c('h2',[_vm._v(\"Device Configuration\")]),_c('p',[_vm._v(\"\\n\\t\\t\\tPressing the button below will attempt to connect to\\n\\t\\t\\t\"),_c('b',[_vm._v(_vm._s(_vm.selectedServer.title))]),_vm._v(\"\\n\\t\\t\\tand import Cameras, Audios, Outputs, Doors and Alarms.\\n\\t\\t\")]),_c('p',[_vm._v(\"You can then select what you want to import from the available results.\")]),_c('b-row',{staticClass:\"mx-0 mb-2\"},[_c('b-col',[_c('b-form-group',{staticClass:\"align-items-center\",attrs:{\"label\":_vm.extraValueLabel,\"label-for\":\"extraValue\",\"label-cols-lg\":\"2\",\"data-cy\":\"extra-value-form-group\"}},[_c('b-form-input',{attrs:{\"id\":\"extraValue\",\"placeholder\":_vm.extraValuePlaceholder,\"value\":_vm.extraValue},on:{\"input\":_vm.updateExtraValue}})],1)],1),_c('b-col')],1),((_vm.progress == 0 || _vm.changeErrorsCount > 0 || _vm.serverDeviceErrorsCount > 0) && !_vm.hasDevices)?_c('b-button',{attrs:{\"variant\":\"primary\",\"href\":\"#\"},on:{\"click\":function($event){return _vm.doGetConfig()}}},[_vm._v(\"\\n\\t\\t\\tGet Device Configuration\\n\\t\\t\")]):_vm._e(),((_vm.progress == 0 || _vm.changeErrorsCount > 0 || _vm.serverDeviceErrorsCount > 0) && _vm.hasDevices)?_c('b-button',{attrs:{\"variant\":\"primary\",\"href\":\"#\"},on:{\"click\":function($event){return _vm.doReGetConfig()}}},[_vm._v(\"\\n\\t\\t\\tRe-Get Device Configuration\\n\\t\\t\")]):_vm._e(),_c('div',[(_vm.changeErrorsCount > 0 && _vm.progress == 100)?_c('div',{staticClass:\"results errors-accordion\"},[_c('transition',{attrs:{\"enter-active-class\":\"animated slideInDown\"}},[_c('bcard',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.change-errors\",modifiers:{\"change-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Device Errors (\"+_vm._s(_vm.changeErrorsCount)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"change-errors\",\"accordion\":\"change-errors-accordion\",\"role\":\"tabpanel\",\"visible\":\"\"}},[_c('b-card-body',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tThe following changes were not applied to the database. \"),_c('br'),_vm._v(\" Please check the error log for more information. \"),_c('br'),_c('br'),(_vm.cameraChangeErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.camera-change-errors\",modifiers:{\"camera-change-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Camera Errors (\"+_vm._s(_vm.cameraChangeErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"camera-change-errors\",\"accordion\":\"camera-change-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"camera-change-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.changeErrors.cameraChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.audioChangeErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.audio-change-errors\",modifiers:{\"audio-change-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Audio Errors (\"+_vm._s(_vm.audioChangeErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"audio-change-errors\",\"accordion\":\"audio-change-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"audio-change-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.changeErrors.audioChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.outputChangeErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.output-change-errors\",modifiers:{\"output-change-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Output Errors (\"+_vm._s(_vm.outputChangeErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"output-change-errors\",\"accordion\":\"output-change-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"output-change-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.changeErrors.outputChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.doorChangeErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.door-change-errors\",modifiers:{\"door-change-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Door Errors (\"+_vm._s(_vm.doorChangeErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"door-change-errors\",\"accordion\":\"door-change-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"door-change-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.changeErrors.doorChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.alarmChangeErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.alarm-change-errors\",modifiers:{\"alarm-change-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Alarm Errors (\"+_vm._s(_vm.alarmChangeErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"alarm-change-errors\",\"accordion\":\"alarm-change-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"alarm-change-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.changeErrors.alarmChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e()])],1)],1)],1)],1):_vm._e(),(_vm.serverDeviceErrorsCount > 0 && _vm.progress == 100)?_c('div',{staticClass:\"results errors-accordion\"},[_c('transition',{attrs:{\"enter-active-class\":\"animated slideInDown\"}},[_c('bcard',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.device-errors\",modifiers:{\"device-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Device Errors (\"+_vm._s(_vm.serverDeviceErrorsCount)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"device-errors\",\"accordion\":\"device-errors-accordion\",\"role\":\"tabpanel\",\"visible\":\"\"}},[_c('b-card-body',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tThe following devices were not added to the configuration. \"),_c('br'),_vm._v(\" Please check the error log for more information. \"),_c('br'),_c('br'),(_vm.cameraErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.camera-errors\",modifiers:{\"camera-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Camera Errors (\"+_vm._s(_vm.cameraErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"camera-errors\",\"accordion\":\"camera-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"camera-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceConfigurationErrors.cameras,\"fields\":_vm.deviceErrorFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.audioErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.audio-errors\",modifiers:{\"audio-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Audio Errors (\"+_vm._s(_vm.audioErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"audio-errors\",\"accordion\":\"audio-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"audio-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceConfigurationErrors.audios,\"fields\":_vm.deviceErrorFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.outputErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.output-errors\",modifiers:{\"output-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Output Errors (\"+_vm._s(_vm.outputErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"output-errors\",\"accordion\":\"output-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"output-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceConfigurationErrors.outputs,\"fields\":_vm.deviceErrorFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.doorErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.door-errors\",modifiers:{\"door-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Door Errors (\"+_vm._s(_vm.doorErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"door-errors\",\"accordion\":\"door-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"door-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceConfigurationErrors.doors,\"fields\":_vm.deviceErrorFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e(),(_vm.alarmErrorsCount > 0)?_c('div',[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.alarm-errors\",modifiers:{\"alarm-errors\":true}}],staticClass:\"error-button\",attrs:{\"block\":\"\"}},[_vm._v(\"Alarm Errors (\"+_vm._s(_vm.alarmErrorsCount)+\")\")]),_c('b-collapse',{attrs:{\"id\":\"alarm-errors\",\"accordion\":\"alarm-errors-accordion\",\"role\":\"tabpanel\"}},[_c('b-table',{ref:\"alarm-error-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceConfigurationErrors.alarms,\"fields\":_vm.responseErrorFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\"}})],1)],1):_vm._e()])],1)],1)],1)],1):_vm._e(),(!_vm.gettingConfig && !_vm.settingConfig && _vm.progress == 100 && _vm.hasDevices && _vm.serverDeviceErrorsCount == 0 && _vm.changeErrorsCount == 0)?_c('div',{staticClass:\"results\"},[(_vm.changesTotal == 0)?_c('div',{staticClass:\"no-results\"},[_vm._v(\"\\n\\t\\t\\t\\t\\tNo differences were found\\n\\t\\t\\t\\t\")]):_vm._e(),_c('transition',{attrs:{\"enter-active-class\":\"animated slideInDown\"}},[_c('div',{staticClass:\"accordion\",attrs:{\"role\":\"tablist\"}},[(_vm.cameraChangesTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-camera-changes\",modifiers:{\"accordion-camera-changes\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Cameras (\"+_vm._s(_vm.cameraChangesTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-camera-changes\",\"accordion\":\"regetconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleCameraChanges(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleCameraChanges(false)}}},[_vm._v(\"None\")])]),_c('b-table',{ref:\"camera-changes-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceChanges.cameraChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.cameraChangesTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreCameras)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreCameras)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1):_vm._e(),(_vm.audioChangesTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-audio-changes\",modifiers:{\"accordion-audio-changes\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Audio (\"+_vm._s(_vm.audioChangesTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-audio-changes\",\"accordion\":\"regetconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAudioChanges(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAudioChanges(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceChanges.audioChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.audioChangesTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreAudios)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreAudios)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1):_vm._e(),(_vm.outputChangesTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-output-changes\",modifiers:{\"accordion-output-changes\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Outputs (\"+_vm._s(_vm.outputChangesTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-output-changes\",\"accordion\":\"regetconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleOutputChanges(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleOutputChanges(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceChanges.outputChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.outputChangesTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreOutputs)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreOutputs)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1):_vm._e(),(_vm.doorChangesTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-door-changes\",modifiers:{\"accordion-door-changes\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Doors (\"+_vm._s(_vm.doorChangesTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-door-changes\",\"accordion\":\"regetconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleDoorChanges(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleDoorChanges(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceChanges.doorChanges,\"fields\":_vm.deviceChangeFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.doorChangesTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreDoors)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreDoors)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1):_vm._e(),(_vm.alarmChangesTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-alarm-changes\",modifiers:{\"accordion-alarm-changes\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Alarms (\"+_vm._s(_vm.alarmChangesTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-alarm-changes\",\"accordion\":\"regetconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAlarmChanges(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAlarmChanges(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.deviceChanges.alarmChanges,\"fields\":_vm.deviceChangeFields,\"head-variant\":\"dark\",\"busy\":_vm.alarmChangesTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreAlarms)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreAlarms)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1):_vm._e()],1)]),(_vm.changesTotal > 0)?_c('b-button',{staticClass:\"float-right m-1\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.saveChanges()}}},[_vm._v(\"Save\")]):_vm._e(),_vm._v(\"\\n\\t\\t\\t\\t  \\n\\t\\t\\t\\t\"),_c('b-button',{staticClass:\"float-right cancel-button m-1\",on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(\"Cancel\")])],1):_vm._e(),(!_vm.gettingConfig && !_vm.settingConfig && _vm.progress == 100 && !_vm.hasDevices && _vm.serverDeviceErrorsCount == 0 && _vm.changeErrorsCount == 0)?_c('div',{staticClass:\"results\"},[_c('transition',{attrs:{\"enter-active-class\":\"animated slideInDown\"}},[_c('div',{staticClass:\"accordion\",attrs:{\"role\":\"tablist\"}},[(_vm.camerasTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-cameras\",modifiers:{\"accordion-cameras\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Cameras (\"+_vm._s(_vm.camerasTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-cameras\",\"accordion\":\"getconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleCameraScrollBarReachEnd()}}},[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleCameras(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleCameras(false)}}},[_vm._v(\"None\")])]),_c('b-table',{ref:\"camera-table\",attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.serverConfigData.cameras,\"fields\":_vm.deviceFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.cameraTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreCameras)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreCameras)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1)],1):_vm._e(),(_vm.audiosTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-audios\",modifiers:{\"accordion-audios\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Audio (\"+_vm._s(_vm.audiosTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-audios\",\"accordion\":\"getconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleAudioScrollBarReachEnd()}}},[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAudios(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAudios(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.serverConfigData.audios,\"fields\":_vm.deviceFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.audioTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreAudios)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreAudios)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1)],1):_vm._e(),(_vm.outputsTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-outputs\",modifiers:{\"accordion-outputs\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Outputs (\"+_vm._s(_vm.outputsTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-outputs\",\"accordion\":\"getconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleOutputScrollBarReachEnd()}}},[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleOutputs(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleOutputs(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.serverConfigData.outputs,\"fields\":_vm.deviceFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.outputTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreOutputs)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreOutputs)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1)],1):_vm._e(),(_vm.doorsTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-doors\",modifiers:{\"accordion-doors\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Doors (\"+_vm._s(_vm.doorsTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-doors\",\"accordion\":\"getconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleDoorScrollBarReachEnd()}}},[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleDoors(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleDoors(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.serverConfigData.doors,\"fields\":_vm.deviceFields,\"sticky-header\":\"20vh\",\"head-variant\":\"dark\",\"busy\":_vm.doorTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreDoors)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreDoors)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1)],1):_vm._e(),(_vm.alarmsTotal > 0)?_c('b-card',{staticClass:\"mb-1\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"p-1\",attrs:{\"header-tag\":\"header\",\"role\":\"tab\"}},[_c('b-button',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle.accordion-alarms\",modifiers:{\"accordion-alarms\":true}}],attrs:{\"block\":\"\"}},[_vm._v(\"Alarms (\"+_vm._s(_vm.alarmsTotal)+\")\")])],1),_c('b-collapse',{attrs:{\"id\":\"accordion-alarms\",\"accordion\":\"getconfig-accordion\",\"role\":\"tabpanel\"}},[_c('b-card-body',[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"data-cy\":\"vue-perfect-scrollbar\"},on:{\"ps-y-reach-end\":function($event){return _vm.handleAlarmScrollBarReachEnd()}}},[_c('div',{staticClass:\"toggleSelections\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAlarms(true)}}},[_vm._v(\"All\")]),_vm._v(\" | \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.toggleAlarms(false)}}},[_vm._v(\"None\")])]),_c('b-table',{attrs:{\"responsive\":\"\",\"striped\":\"\",\"show-empty\":\"\",\"stacked\":\"md\",\"hover\":\"\",\"items\":_vm.serverConfigData.alarms,\"fields\":_vm.responseFields,\"head-variant\":\"dark\",\"busy\":_vm.alarmTableIsBusy},scopedSlots:_vm._u([{key:\"cell(selected)\",fn:function(row){return [_c('b-form-group',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.item.selected),expression:\"row.item.selected\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"\"},domProps:{\"checked\":Array.isArray(row.item.selected)?_vm._i(row.item.selected,null)>-1:(row.item.selected)},on:{\"change\":function($event){var $$a=row.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row.item, \"selected\", $$c)}}}})])]}},(!_vm.loadingMoreAlarms)?{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1)]},proxy:true}:null,{key:\"table-caption\",fn:function(){return [(_vm.loadingMoreAlarms)?_c('div',{staticClass:\"text-center text-white py-2 b-table-busy\"},[_c('sureview-icon',{attrs:{\"text\":'Loading...',\"svgClass\":'fa-spin'}})],1):_vm._e()]},proxy:true}],null,true)})],1)],1)],1)],1):_vm._e()],1)]),_c('b-button',{staticClass:\"float-right m-1\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save\")]),_vm._v(\"\\n\\t\\t\\t\\t  \\n\\t\\t\\t\\t\"),_c('b-button',{staticClass:\"float-right cancel-button m-1\",on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(\"Cancel\")])],1):_vm._e()]),(_vm.gettingConfig && _vm.progress < 100)?_c('div',{staticClass:\"progress-container\"},[_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":(\"Getting Config for \" + (_vm.selectedServer.title) + \" ...\"),\"svgClass\":'fa-spin'}})],1)]):_vm._e(),(_vm.settingConfig)?_c('div',{staticClass:\"progress-container\"},[_c('div',{staticClass:\"text-center text-white my-2 py-4\"},[_c('sureview-icon',{attrs:{\"text\":(\"Creating Config for \" + (_vm.selectedServer.title) + \" ...\"),\"svgClass\":'fa-spin'}})],1)]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GetConfig.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GetConfig.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GetConfig.vue?vue&type=template&id=3dfe9a96&scoped=true&\"\nimport script from \"./GetConfig.vue?vue&type=script&lang=ts&\"\nexport * from \"./GetConfig.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GetConfig.vue?vue&type=style&index=0&id=3dfe9a96&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3dfe9a96\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Action, Getter, namespace, State, Mutation } from \"vuex-class\";\r\nimport VuePerfectScrollbar from \"vue-perfect-scrollbar\";\r\nimport { debounce, get } from \"lodash\";\r\nimport { CancelTokenSource } from \"axios\";\r\n\r\nimport { getDebouncePeriod } from \"@/utils/debounce-helper\";\r\nimport { getNewCancelTokenSource } from \"@/utils/cancellableQueryHelper\";\r\nimport {\r\n\tCancellableQuery,\r\n\tFeaturesList,\r\n\tPaginatedSearchQueryParams,\r\n\tUserGroup,\r\n\tUserPermissions,\r\n\tVueBootstrapField\r\n} from \"@/store/types\";\r\nimport { DeviceTypeCounts, DeviceRecordsRetrievalStatus, DeviceTypeIdentifier, ServerDetails, ServerType } from \"@/store/devices/types\";\r\nimport { getNewServerDetailsTemplate, getRecordsRetrievalStatusDefaults } from \"@/store/devices/templates\";\r\nimport api from \"@/services/api.service\";\r\nimport ChildDeviceTabWrapper from \"@/components/device-setup/tabs/ChildDeviceTabWrapper.vue\";\r\nimport DeleteDeviceModal from \"@/components/device-setup/confirmation-modals/DeleteDeviceModal.vue\";\r\nimport DeviceEdit from \"@/components/device-setup/editing/DeviceEdit.vue\";\r\nimport SureViewIcon from \"@/components/SureViewIcon.vue\";\r\nimport GetConfig from \"../GetConfig.vue\";\r\nimport AlarmSetupTable from \"@/components/setup/alarm-setup/AlarmSetupTable.vue\";\r\n\r\nexport interface ServerModelDetails {\r\n\tinvalid: boolean;\r\n\tselectedServer: ServerDetails;\r\n}\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"child-device-tab-wrapper\": ChildDeviceTabWrapper,\r\n\t\t\"delete-device-modal\": DeleteDeviceModal,\r\n\t\t\"device-edit\": DeviceEdit,\r\n\t\t\"sureview-icon\": SureViewIcon,\r\n\t\t\"vue-perfect-scrollbar\": VuePerfectScrollbar,\r\n\t\tGetConfig: GetConfig,\r\n\t\t\"alarm-setup-table\": AlarmSetupTable\r\n\t}\r\n})\r\nexport default class DeviceTable extends Vue {\r\n\t@Prop({ required: true, default: false, type: Boolean }) private visible;\r\n\t@Getter private getFeaturesList: FeaturesList;\r\n\t@Action private fetchUserGroups: () => Promise;\r\n\t@Getter(\"getPermissions\") private permissions: UserPermissions;\r\n\t@State private featuresList: FeaturesList;\r\n\t@State private UserGroups: UserGroup[];\r\n\r\n\t@Mutation private setIsLoading: (loading: boolean) => void;\r\n\r\n\t@Devices.Action private addServer: (server: ServerDetails) => Promise;\r\n\t@Devices.Action private getDeviceTypes: () => Promise;\r\n\t@Devices.Action private getFilteredServersPaginated: (\r\n\t\tparams: CancellableQuery\r\n\t) => Promise;\r\n\t@Devices.Action private getServerLineProfiles: () => Promise;\r\n\t@Devices.Action private updateServer: (server: ServerDetails) => Promise;\r\n\t@Devices.Mutation private setCurrentServer: (server: ServerDetails) => void;\r\n\r\n\t@Devices.Mutation private updateCurrentServerRecordsRetrievalStatus: (\r\n\t\trecordsRetrievalStatus: DeviceRecordsRetrievalStatus\r\n\t) => void;\r\n\t@Devices.Mutation private updateRecordsRetrievalStatus: (\r\n\t\trecordsRetrievalStatus: DeviceRecordsRetrievalStatus\r\n\t) => void;\r\n\t@Devices.Mutation setServerModalVisible: (IsVisible: boolean) => void;\r\n\r\n\t@Devices.State private currentServer: ServerDetails;\r\n\t@Devices.State private recordsRetrievalStatus: DeviceRecordsRetrievalStatus;\r\n\t@Devices.State private serversList: ServerDetails[];\r\n\t@Devices.State private serverTypes: ServerType[];\r\n\t@Devices.State private serverModalOpened: boolean;\r\n\r\n\t@Prop() devices: ServerDetails[];\r\n\r\n\tprivate showModal: boolean = false;\r\n\tprivate alarmTabLoaded: boolean = false;\r\n\r\n\r\n\tprivate selectedServer = ({\r\n\t\ttitle: \"\",\r\n\t\tserverId: 0\r\n\t} as unknown) as ServerDetails;\r\n\r\n\tprivate async openModal(row) {\r\n\t\tthis.showModal = true;\r\n\t\tthis.selectedServer = row.item;\r\n\t}\r\n\r\n\tprivate filter = \"\";\r\n\r\n\tprivate axiosCancelTokenSource: CancelTokenSource = null;\r\n\tprivate baseChildDeviceTypeIds: number[] = [];\r\n\tprivate defaultResponseGrouping: string = \"\";\r\n\tprivate displayFilteredRecords: boolean = false;\r\n\tprivate filteredRecordsPage: number = 1;\r\n\tprivate loadingMoreRecords: boolean = false;\r\n\tprivate recordsPage: number = 1;\r\n\tprivate recordsPageSize: number = 100;\r\n\tprivate searchTerm: string = \"\";\r\n\tprivate searchTermPersisted: string = \"\";\r\n\tprivate serverModelDetails: ServerModelDetails = { invalid: true, selectedServer: null };\r\n\tprivate showDeleteModal: boolean = false;\r\n\tprivate showEditModal: boolean = false;\r\n\tprivate tabIndex: number = 0;\r\n\tprivate tableIsBusy: boolean = false;\r\n\r\n\tprivate fields: VueBootstrapField[] = [\r\n\t\t{ key: \"title\", label: \"Title\", sortable: true },\r\n\t\t{\r\n\t\t\tkey: \"serverTypeID\",\r\n\t\t\tlabel: \"Type\",\r\n\t\t\tsortable: true,\r\n\t\t\tformatter: serverTypeID => {\r\n\t\t\t\treturn this.getServerTypeTitle(serverTypeID);\r\n\t\t\t},\r\n\t\t\tsortByFormatted: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: \"groupID\",\r\n\t\t\tlabel: \"Area\",\r\n\t\t\tsortable: true,\r\n\t\t\tformatter: groupID => {\r\n\t\t\t\treturn this.getGroupTitle(groupID);\r\n\t\t\t},\r\n\t\t\tsortByFormatted: true\r\n\t\t},\r\n\t\t{ key: \"host\", label: \"Host\", sortable: true },\r\n\t\t{ key: \"port\", label: \"Port\", sortable: true }\r\n\t];\r\n\r\n\tprivate get isGetConfigInDevicesEnabled(): boolean {\r\n\t\treturn get(this.getFeaturesList, [\"Devices\", \"ShowGetConfig\"]);\r\n\t}\r\n\r\n\tprivate get showGetConfig(): boolean {\r\n\t\treturn (this.serverModelDetails != null && this.serverModelDetails.selectedServer != null && this.selectedServerType != null &&\r\n\t\t this.selectedServerType.canGetConfig && this.isGetConfigInDevicesEnabled);\r\n\t}\r\n\r\n\tprivate get isGetConfigDisabled(): boolean {\r\n\t\t//return false;\r\n\t\treturn (this.serverModelDetails.selectedServer == null || this.serverModelDetails.selectedServer.serverID == null || this.serverModelDetails.selectedServer.serverID == 0);\r\n\t}\r\n\r\n\tprivate get getConfigTooltipText(): string {\r\n\t\treturn this.isGetConfigDisabled ? \"Please click save to create the server before getting config\" : \"\";\r\n\t}\r\n\r\n\tprivate async created(): Promise {\r\n\t\tthis.addChildDeviceTypes();\r\n\r\n\t\tif (this.hasAdvancedAlarmGroupingFlag) {\r\n\t\t\tthis.addAdvancedAlarmGroupingSpecificFields();\r\n\t\t}\r\n\r\n\t\tif (this.hasEditPermission) {\r\n\t\t\tthis.addEditPermissionsSpecificFields();\r\n\t\t}\r\n\r\n\t\tawait Promise.all([\r\n\t\t\tthis.getServers(),\r\n\t\t\tthis.getDeviceTypes(),\r\n\t\t\tthis.fetchUserGroups(),\r\n\t\t\tthis.getDefaultResponseGrouping(),\r\n\t\t\tthis.getServerLineProfiles()\r\n\t\t]);\r\n\t}\r\n\r\n\tprivate addChildDeviceTypes(): void {\r\n\t\tfor (let deviceTypeIdentifier in DeviceTypeIdentifier) {\r\n\t\t\tconst id = Number(deviceTypeIdentifier);\r\n\r\n\t\t\tif (!isNaN(id)) {\r\n\t\t\t\tthis.baseChildDeviceTypeIds.push(id);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addAdvancedAlarmGroupingSpecificFields(): void {\r\n\t\tthis.fields.push({\r\n\t\t\tkey: \"alarmGrouping\",\r\n\t\t\tlabel: \"Alarm Grouping\",\r\n\t\t\tsortable: true,\r\n\t\t\tformatter: (value, key, item) => this.getAlarmGroupingTitle(item)\r\n\t\t});\r\n\t}\r\n\r\n\tprivate get hasEditPermission(): boolean {\r\n\t\treturn this.permissions.isAdmin || this.permissions.canEditSiteSetup;\r\n\t}\r\n\r\n\tprivate addEditPermissionsSpecificFields(): void {\r\n\t\tthis.fields.push({ key: \"actions\", label: \"Actions\", sortable: false, class: \"text-center\" });\r\n\t}\r\n\r\n\tprivate async getServers(): Promise {\r\n\t\tthis.tableIsBusy = true;\r\n\r\n\t\tthis.axiosCancelTokenSource = getNewCancelTokenSource(this.axiosCancelTokenSource, true);\r\n\r\n\t\tconst cancellableQuery: CancellableQuery = {\r\n\t\t\tparams: { page: this.recordsPage, pageSize: this.recordsPageSize },\r\n\t\t\tcancelTokenSource: this.axiosCancelTokenSource\r\n\t\t};\r\n\r\n\t\tif (this.searchTerm) {\r\n\t\t\tcancellableQuery.params.page = this.filteredRecordsPage;\r\n\t\t\tcancellableQuery.params.searchTerm = this.searchTerm;\r\n\t\t}\r\n\r\n\t\tawait this.getFilteredServersPaginated(cancellableQuery);\r\n\r\n\t\tthis.tableIsBusy = false;\r\n\t}\r\n\r\n\t/** If the alarm doesn't have any grouping options set,\r\n\t * then grouping is set in accordance with settings */\r\n\tprivate async getDefaultResponseGrouping(): Promise {\r\n\t\tconst { data }: { data: string } = await api.getDefaultResponseGrouping();\r\n\t\tthis.defaultResponseGrouping = data;\r\n\t}\r\n\r\n\tprivate getServerTypeTitle(serverTypeID: number): string {\r\n\t\treturn this.serverTypes.find(st => st.serverTypeID == serverTypeID)?.title;\r\n\t}\r\n\r\n\tprivate get selectedServerType(): ServerType {\r\n\t\treturn this.serverTypes.find(st => st.serverTypeID === this.serverModelDetails.selectedServer.serverTypeID);\r\n\t}\r\n\r\n\tprivate getGroupTitle(groupID: number): string {\r\n\t\treturn this.UserGroups.find(ug => ug.groupID == groupID)?.title;\r\n\t}\r\n\r\n\tprivate get hasAdvancedAlarmGroupingFlag(): boolean {\r\n\t\treturn get(this.featuresList, [\"Alarms\", \"AdvancedAlarmGrouping\"]);\r\n\t}\r\n\r\n\tprivate getAlarmGroupingTitle(server: ServerDetails): string {\r\n\t\tif (server.isRaiseIndividual) {\r\n\t\t\treturn \"No Grouping\";\r\n\t\t}\r\n\r\n\t\tif (server.isRaiseGrouped) {\r\n\t\t\treturn \"By Response\";\r\n\t\t}\r\n\r\n\t\treturn this.defaultResponseGrouping;\r\n\t}\r\n\r\n\tprivate get serversToDisplay(): ServerDetails[] {\r\n\t\tif (this.displayFilteredRecords) {\r\n\t\t\tconst searchTerm = this.searchTerm.toLowerCase();\r\n\t\t\tconst searchTermAsNumber = Number(this.searchTerm);\r\n\t\t\tconst searchNumericFields = !isNaN(searchTermAsNumber);\r\n\r\n\t\t\treturn this.serversList.filter(\r\n\t\t\t\ts =>\r\n\t\t\t\t\ts.title.toLowerCase().includes(searchTerm) ||\r\n\t\t\t\t\t(s.host && s.host.toLowerCase().includes(searchTerm)) ||\r\n\t\t\t\t\t(searchNumericFields && s.port.toString().toLowerCase() === searchTerm) ||\r\n\t\t\t\t\tthis.UserGroups.find(g => g.groupID === s.groupID)\r\n\t\t\t\t\t\t?.title.toLowerCase()\r\n\t\t\t\t\t\t.includes(searchTerm) ||\r\n\t\t\t\t\tthis.serverTypes\r\n\t\t\t\t\t\t.find(st => st.serverTypeID === s.serverTypeID)\r\n\t\t\t\t\t\t?.title.toLowerCase()\r\n\t\t\t\t\t\t.includes(searchTerm)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn this.serversList;\r\n\t}\r\n\r\n\tprivate get allRecordsInCurrentQueryAreRetrieved(): boolean {\r\n\t\treturn this.displayFilteredRecords\r\n\t\t\t? this.recordsRetrievalStatus.allFilteredServersRetrieved\r\n\t\t\t: this.recordsRetrievalStatus.allServersRetrieved;\r\n\t}\r\n\r\n\tprivate async handleScrollBarReachEnd(): Promise {\r\n\t\tif (!this.visible || this.tableIsBusy || this.allRecordsInCurrentQueryAreRetrieved || this.loadingMoreRecords) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.loadingMoreRecords = true;\r\n\t\tthis.searchTerm ? this.filteredRecordsPage++ : this.recordsPage++;\r\n\r\n\t\tawait this.getServers();\r\n\r\n\t\tthis.loadingMoreRecords = false;\r\n\t}\r\n\r\n\tprivate handleAddDevice(): void {\r\n\t\tthis.setIsLoading(true);\r\n\t\tthis.setCurrentServer(getNewServerDetailsTemplate());\r\n\t\tthis.setServerModalVisible(true);\r\n\t\tthis.showEditModal = true;\r\n\t}\r\n\r\n\tprivate handleEditModalCloseClick(): void {\r\n\t\tthis.setServerModalVisible(false);\r\n\t\tthis.showEditModal = false;\r\n\t\tthis.setCurrentServer(null);\r\n\t}\r\n\r\n\tprivate handleEditClick(server: ServerDetails): void {\r\n\t\tthis.setIsLoading(true);\r\n\t\tthis.setCurrentServer(server);\r\n\t\tthis.updateCurrentServerRecordsRetrievalStatus(getRecordsRetrievalStatusDefaults());\r\n\t\tthis.setServerModalVisible(true);\r\n\t\tthis.showEditModal = true;\r\n\t}\r\n\r\n\tprivate handleDeleteClick(server: ServerDetails): void {\r\n\t\tthis.setCurrentServer(server);\r\n\t\tthis.showDeleteModal = true;\r\n\t}\r\n\r\n\tprivate handleDeleteModalClose(): void {\r\n\t\tthis.showDeleteModal = false;\r\n\t\tthis.setCurrentServer(null);\r\n\t}\r\n\r\n\tprivate get editModalTitle(): string {\r\n\t\tif (this.isEditingServer) {\r\n\t\t\treturn `Editing ${this.currentServer.title}`;\r\n\t\t}\r\n\r\n\t\treturn \"Create new device\";\r\n\t}\r\n\r\n\tprivate get isEditingServer(): boolean {\r\n\t\treturn this.currentServer && this.currentServer.serverID > 0;\r\n\t}\r\n\r\n\tprivate handleSearchInput = debounce(async (searchTerm: string): Promise => {\r\n\t\tawait this.performSearch(searchTerm);\r\n\t}, getDebouncePeriod());\r\n\r\n\tprivate async performSearch(searchTerm: string): Promise {\r\n\t\tconst newRetrievalStatus: DeviceRecordsRetrievalStatus = {\r\n\t\t\t...this.recordsRetrievalStatus,\r\n\t\t\tallFilteredServersRetrieved: false\r\n\t\t};\r\n\r\n\t\tthis.updateRecordsRetrievalStatus(newRetrievalStatus);\r\n\r\n\t\tthis.searchTerm = searchTerm;\r\n\r\n\t\tif (!this.searchTerm) {\r\n\t\t\tthis.displayFilteredRecords = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.getServers();\r\n\t\tthis.displayFilteredRecords = true;\r\n\t}\r\n\r\n\tprivate get childDeviceTypeIds(): number[] {\r\n\t\tif (this.isEditingServer) {\r\n\t\t\treturn this.baseChildDeviceTypeIds;\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t}\r\n\r\n\tprivate handleServerModelDetailsChanged(serverModelDetails: ServerModelDetails): void {\r\n\t\tthis.serverModelDetails = serverModelDetails;\r\n\t}\r\n\r\n\tprivate async handleServerSaveClick(): Promise {\r\n\t\tif (this.serverModelDetails.selectedServer.serverID) {\r\n\t\t\tlet selectedServer = this.serverModelDetails.selectedServer;\r\n\t\t\tselectedServer.extraValue = this.extraValue;\r\n\t\t\tawait this.updateServer(selectedServer);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawait this.addServer(this.serverModelDetails.selectedServer);\r\n\t}\r\n\r\n\tprivate deviceEditComponentLoaded(): void {\r\n\t\tthis.setIsLoading(false);\r\n\t}\r\n\r\n\tpublic get extraValue(): string {\r\n\r\n\t\tif (this.currentServer) {\r\n\t\t\treturn this.currentServer.extraValue;\r\n\t\t}\r\n\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tprivate get allowsAlarms(): boolean {\r\n\t\tconst serverType: ServerType = this.serverTypes.find(\r\n\t\t\t\tst => st.serverTypeID === this.currentServer.serverTypeID\r\n\t\t\t);\r\n\t\treturn serverType && serverType.numAlarmInputs !== 0;\r\n\t}\r\n\r\n\tprivate get alarmCount(): number {\r\n\t\tlet aCount = 0;\r\n\t\tif (this.currentServer != null && this.currentServer.deviceTypeCounts != null && this.currentServer.deviceTypeCounts.alarms != null) {\r\n\t\t\taCount = this.currentServer.deviceTypeCounts.alarms;\r\n\t\t}\r\n\r\n\t\treturn aCount;\r\n\t}\r\n\r\n\tprivate get selectedServerId(): number {\r\n\t\tlet id = 0;\r\n\t\tif (this.currentServer != null) {\r\n\t\t\tid = this.currentServer.serverID;\r\n\t\t}\r\n\r\n\t\treturn id;\r\n\t}\r\n\r\n\tprivate handleTabLoaded(): void {\r\n\t\tthis.alarmTabLoaded = true;\r\n\t}\r\n\r\n\tprivate get getAlarmTitleText(): string {\r\n\t\tlet text = \"\";\r\n\t\tif (!this.allowsAlarms) {\r\n\t\t\ttext = `Alarms are not supported on this device`;\r\n\t\t}\r\n\t\treturn text;\r\n\t}\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceTable.vue?vue&type=template&id=22197d9e&scoped=true&\"\nimport script from \"./DeviceTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeviceTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeviceTable.vue?vue&type=style&index=0&id=22197d9e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22197d9e\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport { Getter, namespace, State } from \"vuex-class\";\r\nimport { get } from \"lodash\";\r\nimport { NotificationOptions } from \"vue-notification\";\r\nimport { FeaturesList, UserPermissions } from \"@/store/types\";\r\nimport { DeviceTypeCounts, DeviceTypeIdentifier } from \"@/store/devices/types\";\r\nimport CameraPreview from \"@/components/device-setup/CameraPreview.vue\";\r\nimport ChildDeviceTabWrapper from \"@/components/device-setup/tabs/ChildDeviceTabWrapper.vue\";\r\nimport ChildDeviceEdit from \"@/components/device-setup/editing/ChildDeviceEdit.vue\";\r\nimport DeleteChildDeviceModal from \"@/components/device-setup/confirmation-modals/DeleteChildDeviceModal.vue\";\r\nimport DeviceTable from \"@/components/device-setup/tables/DeviceTable.vue\";\r\nimport NavHeader from \"@/components/NavHeader.vue\";\r\n\r\nconst Devices = namespace(\"devices\");\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\t\"camera-preview\": CameraPreview,\r\n\t\t\"child-device-tab-wrapper\": ChildDeviceTabWrapper,\r\n\t\t\"child-device-edit\": ChildDeviceEdit,\r\n\t\t\"delete-child-device-modal\": DeleteChildDeviceModal,\r\n\t\t\"device-table\": DeviceTable,\r\n\t\t\"nav-header\": NavHeader\r\n\t}\r\n})\r\nexport default class DeviceSetup extends Vue {\r\n\t@Getter(\"getPermissions\") private permissions: UserPermissions;\r\n\t@State private featuresList: FeaturesList;\r\n\r\n\t@Devices.Action private getDeviceTypeCounts: (serverId: number) => Promise;\r\n\r\n\t@Devices.Mutation(\"resetState\") private resetDevicesState: () => void;\r\n\t@Devices.Mutation(\"setNotificationOptions\") private setNotificationOptions: (\r\n\t\tnotificationOptions: NotificationOptions\r\n\t) => void;\r\n\r\n\t@Devices.State private cameraPreviewModalVisible: boolean;\r\n\t@Devices.State private deviceTypeCounts: DeviceTypeCounts;\r\n\t@Devices.State private editChildDeviceModalVisible: boolean;\r\n\t@Devices.State private notificationOptions: NotificationOptions;\r\n\r\n\tprivate childDeviceTypeIds: number[] = [];\r\n\tprivate tabIndex: number = 0;\r\n\r\n\tprivate async created(): Promise {\r\n\t\tthis.addChildDeviceTypes();\r\n\t\tthis.resetDevicesState();\r\n\r\n\t\tawait this.getDeviceTypeCounts(null);\r\n\t}\r\n\r\n\tprivate addChildDeviceTypes(): void {\r\n\t\tfor (let deviceTypeIdentifier in DeviceTypeIdentifier) {\r\n\t\t\tconst id = Number(deviceTypeIdentifier);\r\n\r\n\t\t\tif (!isNaN(id)) {\r\n\t\t\t\tthis.childDeviceTypeIds.push(id);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate get canViewDeviceSetup(): boolean {\r\n\t\treturn (\r\n\t\t\tget(this.featuresList, [\"Devices\"]) &&\r\n\t\t\t(this.permissions.isAdmin || this.permissions.canEditSiteSetup || this.permissions.canViewSiteSetup)\r\n\t\t);\r\n\t}\r\n\r\n\t@Watch(\"notificationOptions\")\r\n\tprivate notify(notificationOptions: NotificationOptions): void {\r\n\t\tif (!notificationOptions) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.$notify(notificationOptions);\r\n\t\tthis.setNotificationOptions(null);\r\n\t}\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceSetup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceSetup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceSetup.vue?vue&type=template&id=0160dac2&scoped=true&\"\nimport script from \"./DeviceSetup.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeviceSetup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeviceSetup.vue?vue&type=style&index=0&id=0160dac2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0160dac2\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTabWrapper.vue?vue&type=style&index=0&id=32c8ad2a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTabWrapper.vue?vue&type=style&index=0&id=32c8ad2a&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTable.vue?vue&type=style&index=0&id=29b45446&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChildDeviceTable.vue?vue&type=style&index=0&id=29b45446&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GetConfig.vue?vue&type=style&index=0&id=3dfe9a96&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GetConfig.vue?vue&type=style&index=0&id=3dfe9a96&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceSetup.vue?vue&type=style&index=0&id=0160dac2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceSetup.vue?vue&type=style&index=0&id=0160dac2&lang=scss&scoped=true&\""],"sourceRoot":""}