{"version":3,"sources":["elements/InputField/index.js","elements/DatePicker/index.js","elements/Accordion/index.js","elements/TableContainer/index.js","elements/PrivateRoute/index.js","utils/getTime.js","fusionChart/fuelChart.js","fusionChart/speedChart.js","fusionChart/batteryVoltageChart.js","fusionChart/fuelAdcChart.js","store/types.js","store/actions/fetchfuelsAction.js","store/actions/fetchThresholdValueAction.js","store/actions/fetchSummaryAction.js","store/actions/fetchfuelTicketAction.js","components/Dashboard/dashboard.styles.js","store/actions/fuelTicketAction.js","components/Dashboard/index.js","components/Home/home.styles.js","components/FuelSummary/fuelSummary.styles.js","components/FuelSummary/index.js","components/Summary/summary.styles.js","models/PointsOnMap.ts","models/Patches.ts","models/Commutes.ts","models/DaySummary.ts","utils/index.js","components/Summary/index.js","components/AppDetails/appDetails.styles.js","components/AppDetails/index.js","components/InstAttempts/instAttempts.styles.js","components/InstAttempts/index.js","components/DeviceMounting/index.js","components/Antennta/index.js","components/Alternator/index.js","components/Connector/index.js","components/GsmGps/gsmGps.styles.js","components/GsmGps/index.js","store/actions/ticketMoreInfoAction.js","components/Modal/modal.styles.js","components/Modal/index.js","components/Ticket/index.js","components/TripReplay/tripReplay.styles.js","assets/home/TractorIcon2.svg","assets/tractor/0-deg.svg","assets/tractor/45-deg.svg","assets/tractor/90-deg.svg","assets/tractor/135-deg.svg","assets/tractor/180-deg.svg","assets/tractor/225-deg.svg","assets/tractor/270deg.svg","assets/tractor/315-deg.svg","utils/getTractor.js","components/TripReplay/index.js","fusionChart/customerChart.js","fusionChart/gsmChart.js","fusionChart/delayChart.js","fusionChart/distanceChart.js","components/QualityChart/index.js","components/FirebaseData/firebaseData.styles.js","components/FirebaseData/index.js","store/actions/fetchFuelSummaryAction.js","store/actions/fetchFuelModelAction.js","store/actions/fetchTicketAction.js","store/actions/fetchAppAction.js","store/actions/fetchInstAttemptsAction.js","store/actions/fetchGsmGpsAction.js","store/actions/fetchInstImageAction.js","store/actions/fetchFirebaseDataAction.js","store/actions/fetchDaySummaryAction.js","store/actions/logoutAction.js","store/actions/simStatusAction.js","store/actions/replacemetDetailAction.js","store/actions/deviceListAction.js","components/SimDetails/simData.styles.js","components/SimDetails/index.js","components/ReplacementDetail/replacementDetail.styles.js","components/ReplacementDetail/index.js","components/Home/index.js","utility/index.js","assets/icons/person.svg","assets/icons/lock.svg","assets/img/home-image@2x.jpg","elements/Input/Input.styled.js","elements/Input/index.js","store/actions/loginAction.js","components/Login/login.styles.js","components/Login/index.js","Routes/index.js","App.js","store/reducers/errorReducer.js","store/reducers/fetchFuelReducer.js","store/reducers/fetchSummaryReducer.js","store/reducers/fetchFuelSummaryReducer.js","store/reducers/fetchFuelModelReducer.js","store/reducers/fetchTicketReducer.js","store/reducers/fetchAppReducer.js","store/reducers/fetchInstAttemptsReducer.js","store/reducers/fetchGsmGpsReducer.js","store/reducers/fetchInstImageReducer.js","store/reducers/fetchFirebaseDataReducer.js","store/reducers/fetchThresholdReducer.js","store/reducers/fetchDaySummaryReducer.js","store/reducers/loginReducer.js","store/reducers/fetchFuelTicketReducer.js","store/reducers/fuelTicketReducer.js","store/reducers/ticketMoreInfoReducer.js","store/reducers/deviceListReducer.js","store/reducers/simStatusReducer.js","store/reducers/replacementDetailReducer.js","store/reducers/index.js","store/actions/errorAction.js","config/index.js","api/index.js","store/sagas/fetchFuelSaga.js","store/sagas/fetchSummarySaga.js","store/sagas/fetchFuelSummarySaga.js","store/sagas/fetchFuelModelSaga.js","store/sagas/fetchTicketSaga.js","store/sagas/fetchAppSaga.js","store/sagas/fetchInstAttemptsSaga.js","store/sagas/fetchGsmGpsSaga.js","store/sagas/fetchInstImageSaga.js","store/sagas/fetchFirebaseDataSaga.js","store/sagas/fetchThresholdSaga.js","store/sagas/fetchDaySummarySaga.js","store/sagas/loginSaga.js","store/sagas/fetchFuelTicketSaga.js","store/sagas/fuelTicketSaga.js","store/sagas/ticketMoreInfoSaga.js","store/sagas/deviceListSaga.js","store/sagas/simStatusSaga.js","store/sagas/replacementDetailSaga.js","store/sagas/index.js","store/index.js","index.js"],"names":["InputField","field","form","other","currentError","errors","name","inputRef","useRef","useEffect","current","addEventListener","e","preventDefault","FormControl","variant","error","InputLabel","htmlFor","label","OutlinedInput","ref","id","type","value","onChange","setFieldValue","target","onError","setFieldError","labelWidth","FormHelperText","DatePicker","AccordionComponent","props","Accordion","AccordionSummary","expandIcon","Typography","header","AccordionDetails","TableComponent","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","values","map","row","actual","href","rel","style","color","reference1","reference2","reference3","PrivateRoute","children","isAuthenticated","rest","render","to","pathname","state","from","location","getTime","time","time12hrFormat","Date","toLocaleTimeString","hour","minute","hour12","split","formattedHour","padStart","charts","FusionCharts","connect","fueldata","fuelReducer","fuel","fuelLoading","loading","fuelTicketData","fuelTicketReducer","resFuelTicket","dispatch","startTime","endTime","useState","series","setSeries","undefined","message","size","timeStampData","Object","time_stamp","fuelLevelData","fuel_level_dashboard","tractorStatus","status","maxFuelValue","Math","max","data","seriesData2","startRange","event_start_ts","endRange","event_end_ts","count","i","push","drawAnchors","anchorRadius","anchorBorderThickness","anchorBorderColor","anchorSides","anchorBgColor","seriesname","event","areaColor","renderAs","dashed","lineThickness","chartConfigs","chart","yaxisname","xAxisName","drawcrossline","numbersuffix","showValues","showBorder","showCanvasBorder","theme","xAxisNameFontSize","xAxisNameFontColor","yAxisNameFontSize","yAxisNameFontColor","labelStep","baseFontSize","categories","category","d","dataset","width","textAlign","padding","CircularProgress","length","dataFormat","height","dataSource","speedData","speed","yAxisName","numberSuffix","plottooltext","voltageThresh","thresholdReducer","thresholdValue","summary","summaryReducer","summaryLoading","threshold","setThreshold","batteryVoltageData","battery_voltage","vbat_thresh","hw_batch","trendlines","line","startvalue","endvalue","displayvalue","valueonright","thickness","fuelLow","setFuelLow","fuelHigh","setFuelHigh","fuelADCData","fuel_adc","threshLowValue","fuel_low","threshHighValue","fuel_high","GET_ERRORS","CLEAR_ERRORS","LOGIN_REQUEST","LOGIN_REQUEST_SUCCESS","LOGIN_REQUEST_FAILURE","LOGOUT_REQUEST","LOGOUT_REQUEST_SUCCESS","LOGOUT_REQUEST_FAILURE","FETCH_FUEL_REQUEST","FETCH_FUEL_SUCCESS","FETCH_FUEL_FAILURE","FETCH_SUMMARY_REQUEST","FETCH_SUMMARY_SUCCESS","FETCH_SUMMARY_FAILURE","FETCH_FUEL_SUMMARY_REQUEST","FETCH_FUEL_SUMMARY_SUCCESS","FETCH_FUEL_SUMMARY_FAILURE","FETCH_FUEL_MODEL_REQUEST","FETCH_FUEL_MODEL_SUCCESS","FETCH_FUEL_MODEL_FAILURE","FETCH_TICKET_REQUEST","FETCH_TICKET_SUCCESS","FETCH_TICKET_FAILURE","FETCH_APP_REQUEST","FETCH_APP_SUCCESS","FETCH_APP_FAILURE","FETCH_INST_ATTEMPTS_REQUEST","FETCH_INST_ATTEMPTS_SUCCESS","FETCH_INST_ATTEMPTS_FAILURE","FETCH_GSM_GPS_REQUEST","FETCH_GSM_GPS_SUCCESS","FETCH_GSM_GPS_FAILURE","FETCH_INST_IMG_REQUEST","FETCH_INST_IMG_SUCCESS","FETCH_INST_IMG_FAILURE","FETCH_FIREBASE_REQUEST","FETCH_FIREBASE_SUCCESS","FETCH_FIREBASE_FAILURE","FETCH_THRESHOLD_REQUEST","FETCH_THRESHOLD_SUCCESS","FETCH_THRESHOLD_FAILURE","DAY_SUMMARY_REQUEST","DAY_SUMMARY_SUCCESS","DAY_SUMMARY_FAILURE","FUEL_TICKET_METADATA_REQUEST","FUEL_TICKET_METADATA_SUCCESS","FUEL_TICKET_METADATA_FAILURE","FUEL_TICKET_REQUEST","FUEL_TICKET_SUCCESS","FUEL_TICKET_FAILURE","FUEL_TICKET_RESET","TICKET_MORE_INFO_REQUEST","TICKET_MORE_INFO_SUCCESS","TICKET_MORE_INFO_FAILURE","DEVICE_LIST_REQUEST","DEVICE_LIST_SUCCESS","DEVICE_LIST_FAILURE","SIM_STATUS_REQUEST","SIM_STATUS_SUCCESS","SIM_STATUS_FAILURE","REPLACEMENT_DATA_REQUEST","REPLACEMENT_DATA_SUCCESS","REPLACEMENT_DATA_FAILURE","fetchFuelRequest","requestData","types","payload","fetchFuelSuccess","fetchFuelFailure","fetchThresholdRequest","requestDevice","fetchThresholdSuccess","fetchThresholdFailure","fetchSummaryRequest","fetchSummarySuccess","fetchSummaryFailure","fetchFuelTicketSuccess","fetchFuelTicketFailure","dashboardStyles","makeStyles","inputEvent","background","borderRadius","display","justifyContent","alignItems","fuelButton","cursor","textTransform","fontSize","border","outline","acceptButton","fuelCloseTicketSuccess","resCloseFuelTicket","fuelCloseTicketFailure","closeTicketData","fuelCloseTicketReducer","closeTicketLoading","fuelSubmit","fuelTicket","requestTicket","fetchFuelTicketRequest","closeTicket","requestCloseFuelTicket","fuelCloseTicketRequest","closeTicketReset","fuelticketMetadata","useParams","ticketId","date","setChart","classes","Number","setStartTime","setEndTime","useLocation","eventStartTime","setEventStartTime","eventEndTime","setEventEndTime","fuelEvent","setFuelEvent","comment","setComment","startsWith","device_id","window","confirm","hours","handleTimeInputChange","user_id","record_id","close_option","dealer_reassign","reject_option","customer_type","customer_index","need_field_action","completion_close_by","gap","flexDirection","Select","defaultValue","chartType","className","MenuItem","ticket_status","marginTop","rows","cols","placeholder","onClick","tags","reject","approve","fuel_event","start_time","end_time","alert","homeStyles","commonTileStyles","boxShadow","root","tilesWrapper","maxWidth","margin","flexWrap","navbar","messageContainer","messageHeading","deviceTiles","overflowY","tiles1","tiles2","tiles4","tiles5","minWidth","minHeight","tiles6","tiles7","tiles8","tiles9","newTiles9","chartTile","chartButton","installationDetailsContent","float","position","bottom","right","backgroundColor","transitionDelay","fuelsummaryStyles","fuelSummaryContent","flex","fontWeight","fuelsummary","fuelSummaryReducer","fuelSummary","fuelSummaryLoading","fuelmodel","fuelModelReducer","fuelModel","modelLoading","FuelSummaryItem","icon","Skeleton","animation","fuelSummaryList","fuel_refill_delta","alert_enable_register","obd_method","fuel_tank_capacity","fuelCoefficients","fuel_coef_a","fuel_coef_b","fuel_coef_c","fuel_coef_d","temperatureCoefficients","temp_coef_c","temp_coef_b","item","index","text","component","Paper","table","aria-label","coeff","scope","summaryStyles","summaryContainer","PointsOnMap","lats","lngs","ids","Patches","duration","area","centroid_lat","centroid_lon","radius","patch_tag","this","Commutes","start","p20","p40","p60","p80","end","DaySummary","$dateId","$date","$computationId","$idling_time","$job_time","$haulage_time","$distance","$total_fuel","$total_fuel_lit","$max_fuel","$min_fuel","$area","$device_fk_id","$details_flag","$patches","$commutes","dateId","computationId","idling_time","job_time","haulage_time","distance","total_fuel","total_fuel_lit","max_fuel","min_fuel","device_fk_id","details_flag","patches","commutes","MAGIC_STRING","BASE","STATUS_MAGIC_STRING","getData","getDate","today","mnth","getMonth","slice","getFullYear","join","getDateDiff","date2","day","Difference_In_Days","getTimeSummary","milliSeconds","parse","dateObject","humanDateFormat","toLocaleDateString","month","year","getTimeStampIST","toLocaleString","tripTimeFromDaySummary","totalTime","dataToDisplay","secs","mins","trunc","parseDayDetails","commutesParsed","addArraysToDecompressedData","patchesParsed","replayParsed","replay","ref_lat","ref_long","ref_lon","commute_lat_array","getFinalReplayArray","commute_lon_array","lons","ts","ref_time","output_array","getIntegerArray","finalData","convertNotificationTimeStampToMillis","getCompleteTripTimeStamp","ref_ts","holder","currentStatus","parseInt","toString","isDigit","updateStatusArray","getIntValue","x","indexOf","getTractorIgnitionStatus","addArraysToDecompressedReplay","formPointsFromCommutesOrPatches","lat","lon","points","formPointsFromReplay","commuteOrPatch","refArray","getFinalArray","commutesOrPatches","inputStr","refArr","opArray","subStrArray","start_ind","end_ind","sub_str","positions","endIndexArr","charAt","unshift","substring","getSubStrings","tempArray","getDiffArray","updateDoubleData","dataList","updated","val","getDifferenceData","originalArray","result","getBaseValueDiff","parseFloat","subStr","pos_arr","end_ind_arr","diffArr","length_arr","getDifferenceToNextNumber","base_arr","temp","j","sum","tempArr","pow","shift","outArray","pop","opDoubleArray","a","inputString","timeStamp","c","includes","intValue","list","resultSum","reverse","parseDaySummary","daySummary","com","pat","commute","patch","running_time","patch_area","lat_centroid","lon_centroid","fuel_consumed","boundary_radius_avg","patch_tags","computation_id","fuel_params","min","appData","appReducer","app","appLoading","sim","simStatusReducer","simLoading","build","version","DetailItem","detailItems","user_name","phone","district","tractor_name","model","operator","sim_status","installation_date","subscription_due_date","dealer_code","Area_Manager","last_ping_time","loc_time_stamp","Customer_registered_on_customer_app","App_first_login_date","firm_name","subscription_days","compareVersions","version1","version2","v1","v2","num1","num2","app_build","app_version","device_tag","appDetailsStyles","appDetailsContent","AppSummaryItem","appSummaryList","Last_open_App","app_language","area_unit","brand","fuelInstAttemptsStyles","fuelInstAttempts","instAttemptsReducer","instAttempts","fuelInstAttemptsLoading","n_installation_attempts","installation_time_mins","toFixed","instImageData","instImageReducer","instImage","instImageLoading","mountData","setMountData","deviceMountData","mount","Device_ID","actual_image","Actual_Image","reference_1","Reference_Image_1","reference_2","Reference_Image_2","reference_3","Reference_Image_3","device","antenntaData","setAntenntaData","antennta","alternatorData","setAlternatorData","alternator","connectorData","setConnectorData","connector","fuelGsmGpsStyles","fuelGsmGps","gsmGpsReducer","gsmGps","fuelGsmGpsLoading","fuelGsm","setFuelGsm","fuelGsmData","created","created_at","lock_percentage","Lock_Percentage","rtpp","RTPP","lockPercentage","rtppData","align","fetchTicketMoreInfoSuccess","resTicket","fetchTicketMoreInfoFailure","modalStyles","modalWrapper","left","top","zIndex","modalContainer","transform","closeModal","marginBottom","tableHeader","ticket","ticketMoreInfoReducer","ticketLoading","ticketReducer","setModalOpen","ticketData","setTicketData","document","body","console","log","getTicketInfo","fetchTicketMoreInfoRequest","ticketdata","modalOpen","device_fk","ticket_id","issue_name","support_comments","ticket_summary","deviceFk","createdAt","ticketStatus","issueName","supportComments","ticketSummary","tripReplayStyles","bigTile","transition","breakpoints","down","controlButton","speedButton","sliderButton","timeButton","summaryButton","getTractor","angle","abs","deg315","deg0","deg270","deg225","deg180","deg135","deg90","deg45","plottedMarkers","dataDaySummary","daySummData","kms","mapPlotLoading","dailyStatus","mapLoaded","setMapLoaded","setMapInstance","maps","setMapsInstance","allPolygons","setPolygons","allPolylines","setPolyLines","gameLoop","setGameLoop","block","setBlock","setTime","showTime","setShowTime","engineStatus","setEngineStatus","setSpeed","toggle","setToggle","clearPolyLinesIfAny","plotFinalPoints","bounds","polylines","polygons","defaultProps","center","lng","zoom","setMap","clearMarkersIfAny","LatLngBounds","allCommuteLats","allCommuteLngs","drawPoints","allPatchLats","allPatchLngs","fitBounds","allLats","allLngs","isPatch","tractorPoint","LatLng","latLng","extend","tractorPatch","Polygon","paths","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","tractorPath","Polyline","path","geodesic","clear","setMapMarkers","devicePostion","marker","Marker","markerIcon","optimized","move","timer","nextlat","nextlng","tractorPosition","point1LatLng","point2LatLng","google","geometry","spherical","computeHeading","actualAngle","Time","image","url","scaledSize","Size","origin","Point","anchor","play","velocity","setInterval","clearInterval","bootstrapURLKeys","key","defaultCenter","defaultZoom","yesIWantToUseGoogleMapApiInternals","onGoogleApiLoaded","setMapTypeId","MapTypeId","HYBRID","onMapLoaded","stop","Slider","getAriaValueText","aria-labelledby","valueLabelDisplay","step","marks","keys","number","customerData","cust_index","gsmData","gsm_quality","delayData","firmware_version","hourConvert","distanceData","FirebaseDataStyles","firebaseContent","firebase","firebaseReducer","firebaseData","firebaseLoading","FirebaseSummaryItem","firebaseList","fetchFuelSummarySuccess","fetchFuelSummaryFailure","fetchFuelModelSuccess","fetchFuelModelFailure","fetchTicketSuccess","fetchTicketFailure","fetchAppSuccess","fetchAppFailure","fetchInstAttemptsSuccess","fetchInstAttemptsFailure","fetchGsmGpsSuccess","fetchGsmGpsFailure","fetchInstImageSuccess","fetchInstImageFailure","fetchFirebaseDataSuccess","fetchFirebaseDataFailure","daySummarySuccess","logoutRequest","simStatusSuccess","simStatusFailure","replacementDetailSuccess","replacementDetail","replacementDetailFailure","deviceListSuccess","resDeviceList","deviceListFailure","SimDetailStyles","sim_ccid","ReplacementDetailStyles","replacementDetailData","replacementDetailReducer","replacementDetailLoading","action_date","effect_from_date","new_label_id","new_sim_ccid","old_sim_ccid","deviceList","deviceListReducer","fetchFuelSummaryRequest","fetchFuelModelRequest","fetchTicketRequest","fetchAppRequest","fetchInstAttemptsRequest","fetchGsmGpsRequest","fetchInstImageRequest","fetchFirebaseDataRequest","getDaySummary","daySummaryRequest","getDeviceListByPhone","requestDeviceList","deviceListRequest","simRequest","simStatusRequest","replacementDetailReq","replacementDetailRequest","logout","deviceId","setDeviceId","selectedDate","setSelectedDate","showGraph","setShowGraph","phoneNumber","setPhoneNumber","deviceData","getDateToday","accordionData","installationImageData","maxLength","input","initialValues","validate","onSubmit","setSubmitting","touched","handleChange","noValidate","TextField","textField","InputLabelProps","shrink","deviceDate","prev","Tooltip","title","IconButton","device_ids","TripReplay","heading","ContainerWrapper","forwardRef","FlexWrapper","styled","FlexGap","css","RowGap","ColumnGap","Flex","direction","justify","span","colors","InputBorder","InputContainer","InputIcon","InputElement","iconposition","InputError","Input","iconPosition","iconClick","src","alt","spellCheck","loginRequestSuccess","loginRequestFailure","loginStyles","login","backgroundSize","backgroundRepeat","backgroundPosition","submit","loginLoading","loginReducer","isLoggedIn","loginMessage","email","password","loginRequest","setError","localStorage","getItem","remember","Boolean","setItem","removeItem","Person","Lock","autoComplete","FormControlLabel","control","Checkbox","checked","disabled","exact","createMuiTheme","palette","primary","main","secondary","accent","light","grey","dark","typography","button","fontFamily","useStyles","App","CssBaseline","ThemeProvider","initialState","msg","errorReducer","action","daySummaryReducer","persistConfig","storage","blacklist","rootReducer","combineReducers","sessionStorage","user","persistReducer","returnErrors","clearErrors","API_ROUTES","API_BASE_URL","LOGIN_URL","process","DATA_URL","FIELD_URL","REACT_FIELD_URL","headerJWTParams","platform","axiosInstance","axios","create","baseURL","headers","interceptors","request","use","config","token","Promise","response","getRefreshAccessToken","originalRequest","loginUser","method","JSON","stringify","user_pwd","err","fuels","post","deviceSummary","deviceFuelSummary","get","deviceFuelModel","deviceTicket","deviceApp","deviceAttempts","deviceGsmGps","deviceInstImg","fetchDaySummary","fetchDayDetail","datee","access_token","store","getFuelTicket","closeFuelTicket","ticketMoreInfo","getDeviceList","deviceSim","getReplacementDetail","asyncFetchFuelSaga","fetchFuelSaga","put","call","_api","takeLatest","asyncFetchSummarySaga","fetchSummarySaga","asyncFetchFuelSummarySaga","fetchFuelSummarySaga","asyncFetchFuelModelSaga","fetchFuelModelSaga","asyncFetchTicketSaga","fetchRealtimeSaga","asyncFetchAppSaga","fetchAppSaga","asyncFetchInstAttemptsSaga","fetchInstAttemptsSaga","asyncFetchGsmGpsSaga","fetchGsmGpsSaga","asyncFetchInstImageSaga","fetchInstImageSaga","asyncFetchFirebaseDataSaga","fetchFirebaseDataSaga","asyncFetchThresholdSaga","fetchThresholdSaga","asyncDaySummary","daySummaryRequestSaga","commutePatchesLength","res2","asyncLoginRequest","asyncLogoutRequest","loginRequestSaga","logoutRequestSaga","res","auth_tokens","refresh_token","asyncFetchFuelTicketSaga","fetchFuelTicketSaga","asyncFuelCloseTicketSaga","fuelCloseTicketSaga","asyncTicketMoreInfoSaga","fetchTicketMoreInfoSaga","asyncDeviceListSaga","deviceListSaga","asyncSimStatusSaga","simStatusSaga","asyncReplacementDetailSaga","replacementDetailSaga","rootSaga","all","fetchTicketSaga","sagaMiddleware","createSagaMiddleware","createStore","composeWithDevTools","applyMiddleware","persistor","persistStore","run","ReactDOM","getElementById"],"mappings":"2RAkDeA,MA5Cf,YAAgD,IAA1BC,EAAyB,EAAzBA,MAAOC,EAAkB,EAAlBA,KAASC,EAAS,gCACvCC,EAAeF,EAAKG,OAAOJ,EAAMK,MACjCC,EAAWC,iBAAO,MAgBxB,OAdAC,qBAAU,WAEJF,GACFA,EAASG,QAAQC,iBAAiB,SAFhB,SAACC,GAAD,OAAOA,EAAEC,sBAW5B,IAGD,eAACC,EAAA,EAAD,CACEC,QAAQ,WAERC,QAAOZ,EAHT,UAKE,cAACa,EAAA,EAAD,CAAYC,QAAQ,yBAApB,SAA8Cf,EAAMgB,QACpD,cAACC,EAAA,EAAD,CACEC,IAAKd,EACLe,GAAInB,EAAMmB,GACVC,KAAMpB,EAAMoB,KAAOpB,EAAMoB,KAAO,SAChCjB,KAAML,EAAMK,KACZkB,MAAOvB,EAAMuB,MACbC,SAAU,SAACb,GAAD,OAAOV,EAAKwB,cAAczB,EAAMK,KAAMM,EAAEe,OAAOH,OAAO,IAChEI,QAAS,SAACZ,GACJA,IAAUZ,GACZF,EAAK2B,cAAc5B,EAAMK,KAAMU,IAGnCc,WAAY3B,EAAM2B,aAEnB1B,GAAgB,cAAC2B,EAAA,EAAD,UAAiB3B,Q,oBCRzB4B,I,sDCnBAC,EAXY,SAAC,GAAkB,IAAbC,EAAY,oBAC3C,OACE,eAACC,EAAA,EAAD,WACE,cAACC,EAAA,EAAD,CAAkBC,WAAY,cAAC,IAAD,IAA9B,SACE,cAACC,EAAA,EAAD,UAAaJ,EAAMK,WAErB,cAACC,EAAA,EAAD,UAAmBN,EAAMV,Y,sDC0EhBiB,EA/EQ,SAAC,GAAkB,IAAbP,EAAY,oBACvC,OACE,cAACQ,EAAA,EAAD,UACE,eAACC,EAAA,EAAD,WACE,cAACC,EAAA,EAAD,UACE,eAACC,EAAA,EAAD,WACE,cAACC,EAAA,EAAD,2BACA,cAACA,EAAA,EAAD,iCACA,cAACA,EAAA,EAAD,gCACA,cAACA,EAAA,EAAD,qCAGJ,cAACC,EAAA,EAAD,UACGb,EAAMc,OAAOC,KAAI,SAACC,GAAD,OAChB,eAACL,EAAA,EAAD,WACE,cAACC,EAAA,EAAD,UACkB,OAAfI,EAAIC,OACH,WAEA,mBACEC,KAAMF,EAAIC,OACVxB,OAAO,SACP0B,IAAI,aACJC,MAAO,CAAEC,MAAO,WAJlB,4BAUJ,cAACT,EAAA,EAAD,UACsB,OAAnBI,EAAIM,WACH,WAEA,mBACEJ,KAAMF,EAAIM,WACV7B,OAAO,SACP0B,IAAI,aACJC,MAAO,CAAEC,MAAO,WAJlB,iCAUJ,cAACT,EAAA,EAAD,UACsB,OAAnBI,EAAIO,WACH,WAEA,mBACEL,KAAMF,EAAIO,WACV9B,OAAO,SACP0B,IAAI,aACJC,MAAO,CAAEC,MAAO,WAJlB,iCAUJ,cAACT,EAAA,EAAD,UACsB,OAAnBI,EAAIQ,WACH,WAEA,mBACEN,KAAMF,EAAIQ,WACV/B,OAAO,SACP0B,IAAI,aACJC,MAAO,CAAEC,MAAO,WAJlB,mCA/CSL,EAAIC,mB,OCHhBQ,EAjBM,SAAC,GAA4C,IAA1CC,EAAyC,EAAzCA,SAAUC,EAA+B,EAA/BA,gBAAoBC,EAAW,8CAC/D,OACE,cAAC,IAAD,2BACMA,GADN,IAEEC,OAAQ,SAAC7B,GAAD,OACN2B,EACED,EAEA,cAAC,IAAD,CACEI,GAAI,CAAEC,SAAU,SAAUC,MAAO,CAAEC,KAAMjC,EAAMkC,kB,oFCX9CC,EAAQ,SAACC,GAClB,IAQIC,EARS,IAAIC,KAAKF,GAQIG,mBAAmB,QAN7B,CACZC,KAAM,UACNC,OAAQ,UACRC,QAAQ,IANa,EAUFL,EAAeM,MAAM,SAVnB,mBAUlBH,EAVkB,KAUZC,EAVY,KAYnBG,EAAgBJ,EAAKK,SAAS,EAAG,KAGvC,OADAR,EAAc,UAAMO,EAAN,YAAuBH,ICLzCK,IAAOC,KAyJP,IAQeC,eARS,SAAChB,GAAD,MAAY,CAClCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,QAC/BC,eAAgBtB,EAAMuB,kBAAkBC,kBAGf,SAACC,GAAD,MAAe,KAE3BT,EA/Jf,YAAmF,IAAD,EAA7DI,EAA6D,EAA7DA,YAAaH,EAAgD,EAAhDA,SAAUS,EAAsC,EAAtCA,UAAWC,EAA2B,EAA3BA,QAASL,EAAkB,EAAlBA,eAAkB,EACpDM,mBAAS,IAD2C,mBACzEC,EADyE,KACjEC,EADiE,KAGhFvF,qBAAU,WACR,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAU9C,IATA,IAcIC,EAdAC,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCC,EAAgBF,OAAOrD,OAAOmC,EAASqB,sBACvCC,EAAgBJ,OAAOrD,OAAOmC,EAASuB,QACvCC,EAAeC,KAAKC,IAAL,MAAAD,KAAI,YAAQL,IAC3BO,EAAO,GACPC,EAAc,GACdC,EAAa3C,EAAO,OAACmB,QAAD,IAACA,OAAD,EAACA,EAAgBsB,KAAKG,gBAC1CC,EAAW7C,EAAO,OAACmB,QAAD,IAACA,OAAD,EAACA,EAAgBsB,KAAKK,cACxCC,EAAQ,EACHC,EAAc,GAAVzB,EAAcyB,EAAY,GAARxB,EAAYwB,KACf,IAAtBd,EAAcc,IAChBD,IAKFjB,EADEiB,EAAQ,IACH,IAEA,IAGT,IAAK,IAAIC,EAAgB,GAAZzB,EAAgByB,EAAc,GAAVxB,EAAcwB,IACxCd,EAAcc,GAAK,EACtBP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAO+E,EAAcc,GAAK,EAAI,EAAEd,EAAcc,GAC9CE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGfd,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAO+E,EAAcc,GACrBE,YAAa,IACbC,aAAc,IACdC,sBAAuBtB,EACvBuB,kBAA8C,KAAP,EAAnBjB,EAAcY,IAAgB,UAAU,UAC5DM,YAAa,IACbC,cAA0C,KAAP,EAAnBnB,EAAcY,IAAgB,UAAU,YAK1DjB,EAAciB,IAAML,GAAcZ,EAAciB,IAAMH,EACtDH,EAAYO,KAAK,CACfnG,MAAOiF,EAAciB,GACrB7F,MAAOmF,EACPa,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBE,cAAe,YAGjBb,EAAYO,KAAK,CAAEnG,MAAOiF,EAAciB,GAAI7F,MAAO,IAIzDwE,EAAU,CACR,CACE6B,WAAW,GAAD,cAAKrC,QAAL,IAAKA,OAAL,EAAKA,EAAgBsB,KAAKgB,OACpChB,KAAMC,EACNxD,MAAsC,YAAjB,OAAdiC,QAAc,IAAdA,OAAA,EAAAA,EAAgBsB,KAAKgB,OAAqB,UAAU,UAC3DC,UAA0C,YAAjB,OAAdvC,QAAc,IAAdA,OAAA,EAAAA,EAAgBsB,KAAKgB,OAAqB,UAAU,UAC/DE,SAAU,OACVC,OAAQ,IACRC,cAAe,KAEjB,CACEL,WAAY,YACZf,KAAMA,EACNvD,MAAO,UACPwE,UAAW,gBAIhB,CAAC5C,EAAUK,EAAgBI,EAAWC,IAEzC,IAAMsC,EAAe,CACnBC,MAAO,CACLC,UAAW,OACXC,UAAU,YACVC,cAAe,IACfC,aAAc,IACdC,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IACbqB,MAAO,QACPC,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,MAEhBC,WAAY,CACV,CACEC,SAAQ,UAAErD,EAAO,UAAT,aAAE,EAAWe,KAAK7D,KAAI,SAACoG,GAAD,MAAQ,CAAElI,MAAOkI,EAAElI,YAGrDmI,QAASvD,GA6BX,OACE,qBAAKzC,MAAO,CAAEiG,MAAO,QAArB,SACIpE,EA3BAG,EAEA,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,MAIJvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAG1C,cAAC,IAAD,CACEpI,KAAK,SACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAIT,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBAAqDtE,QAArD,IAAqDA,OAArD,EAAqDA,EAAUe,UAOpE,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,WCjJV1E,IAAOC,KA4HP,IAMeC,eANS,SAAChB,GAAD,MAAY,CAClCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,YAEN,SAACI,GAAD,MAAe,KAE3BT,EAhIf,YAAmE,IAA7CI,EAA4C,EAA5CA,YAAaH,EAA+B,EAA/BA,SAAUS,EAAqB,EAArBA,UAAUC,EAAW,EAAXA,QAAW,EACpCC,mBAAS,IAD2B,mBACzDC,EADyD,KACjDC,EADiD,KAGhEvF,qBAAU,WACR,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAM9C,IALA,IAWIC,EAXAC,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCyD,EAAY1D,OAAOrD,OAAOmC,EAAS6E,OACnClD,EAAO,GAEPM,EAAQ,EACHC,EAAc,GAAVzB,EAAcyB,EAAY,GAARxB,EAAYwB,KACnB,IAAlB0C,EAAU1C,IACZD,IAMFjB,EADEiB,EAAQ,IACH,IAEA,IAGT,IAAK,IAAIC,EAAc,GAAVzB,EAAcyB,EAAY,GAARxB,EAAYwB,KACnB,IAAlB0C,EAAU1C,GACZP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,KAEd0C,EAAU1C,GAAK,EACxBP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAOuI,EAAU1C,GACjBE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGjBd,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAOuI,EAAU1C,GACjBE,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAKrB5B,EAAUc,MAEX,CAAC3B,EAASS,EAAUC,IAEvB,IAAMsC,EAAe,CACnBC,MAAO,CACLE,UAAW,kBACX2B,UAAW,QACXxB,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IACb2C,aAAc,OACdrB,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXL,MAAO,SACPM,aAAc,KACdiB,aACE,kFAEJrD,KAAMf,GAgCR,OACE,qBAAKzC,MAAO,CAAEiG,MAAO,QAArB,SACIpE,EA7BAG,EAEA,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,MAIJvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAG1C,cAAC,IAAD,CACEpI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAKd,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBAAqDtE,QAArD,IAAqDA,OAArD,EAAqDA,EAAUe,UAQ/D,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,WCpHV1E,IAAOC,KAwKP,IASeC,eATS,SAAChB,GAAD,MAAY,CAChCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,QAC/B6E,cAAelG,EAAMmG,iBAAiBC,eACtCC,QAASrG,EAAMsG,eAAeD,QAC9BE,eAAgBvG,EAAMsG,eAAejF,YAEd,SAACI,GAAD,MAAe,KAE3BT,EA/Kf,YAQI,IAPAI,EAOD,EAPCA,YACAH,EAMD,EANCA,SACAiF,EAKD,EALCA,cACAG,EAID,EAJCA,QACAE,EAGD,EAHCA,eACA7E,EAED,EAFCA,UACAC,EACD,EADCA,QACD,EAC6BC,mBAAS,IADtC,mBACQC,EADR,KACgBC,EADhB,OAEmCF,mBAAS,OAF5C,mBAEQ4E,EAFR,KAEmBC,EAFnB,KAIClK,qBAAU,WACN,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAC5C,IAAIE,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCsE,EAAqBvE,OAAOrD,OAAOmC,EAAS0F,iBAC9BxE,OAAOrD,OAAOoH,EAAcU,aAE9BnB,OAAS,EACrBgB,EAAaP,EAAcU,YAAY,IAElCL,IAE6B,MAAnB,OAAPF,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,WACa,MAAnB,OAAPR,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,UAEbJ,EAAa,KAEbA,EAAa,QAOzB,IAFA,IAQIxE,EARAW,EAAO,GACPM,EAAQ,EACHC,EAAgB,GAAZzB,EAAgByB,EAAc,GAAVxB,EAAcwB,KACZ,IAA3BuD,EAAmBvD,IACnBD,IAMJjB,EADAiB,EAAQ,IACD,IAEA,IAGX,IAAK,IAAIC,EAAgB,GAAZzB,EAAgByB,EAAc,GAAVxB,EAAcwB,KACZ,IAA3BuD,EAAmBvD,GACnBP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,KAElBuD,EAAmBvD,GAAK,EAC/BP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GACrB7F,MAAOoJ,EAAmBvD,GAC1BE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGnBd,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GACrB7F,MAAOoJ,EAAmBvD,GAC1BE,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAK3B5B,EAAUc,MAGf,CAAC3B,EAAUiF,EAAeK,EAAgBF,EAAS3E,EAAWC,IAEjE,IAAMsC,EAAe,CACjBC,MAAO,CACHE,UAAW,kBACX2B,UAAW,uBACXxB,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IACb2C,aAAc,KACdrB,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,KACdiB,aACI,2FACJvB,MAAO,UAEX9B,KAAMf,EACNiF,WAAY,CACR,CACIC,KAAM,CACF,CAEIC,WAAYR,EACZS,SAAU,GACV5H,MAAO,UACP6H,aAAa,GAAD,OAAKV,GACjBW,aAAc,IACdpD,OAAQ,IACRqD,UAAW,SAsC/B,OACI,qBAAKhI,MAAO,CAAEiG,MAAO,QAArB,SACMpE,EA/BFG,EAEI,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,MAIRvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAGxC,cAAC,IAAD,CACIpI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAKhB,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBACKtE,QADL,IACKA,OADL,EACKA,EAAUe,UASf,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,WC9JpB1E,IAAOC,KAsLP,IASeC,eATS,SAAChB,GAAD,MAAY,CAChCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,QAC/B6E,cAAelG,EAAMmG,iBAAiBC,eACtCC,QAASrG,EAAMsG,eAAeD,QAC9BE,eAAgBvG,EAAMsG,eAAejF,YAEd,SAACI,GAAD,MAAe,KAE3BT,EA7Lf,YAQI,IAPAI,EAOD,EAPCA,YACAH,EAMD,EANCA,SACAiF,EAKD,EALCA,cACAG,EAID,EAJCA,QACAE,EAGD,EAHCA,eACA7E,EAED,EAFCA,UACAC,EACD,EADCA,QACD,EAC6BC,mBAAS,IADtC,mBACQC,EADR,KACgBC,EADhB,OAE+BF,mBAAS,KAFxC,mBAEQyF,EAFR,KAEiBC,EAFjB,OAGiC1F,mBAAS,MAH1C,mBAGQ2F,EAHR,KAGkBC,EAHlB,KAKCjL,qBAAU,WACN,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAC5C,IAAIE,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCqF,EAActF,OAAOrD,OAAOmC,EAASyG,UAErCC,EAAiBxF,OAAOrD,OAAOoH,EAAc0B,UAC7CC,EAAkB1F,OAAOrD,OAAOoH,EAAc4B,WAE9CH,EAAelC,OAAS,GAAKoC,EAAgBpC,OAAS,GACtD6B,EAAWpB,EAAc0B,SAAS,IAClCJ,EAAYtB,EAAc4B,UAAU,KAE/BvB,IAE6B,MAAnB,OAAPF,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,WACa,MAAnB,OAAPR,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,WAEbS,EAAW,KACXE,EAAY,QAEZF,EAAW,KACXE,EAAY,QAOxB,IAFA,IAQIvF,EARAW,EAAO,GACPM,EAAQ,EACHC,EAAgB,GAAZzB,EAAgByB,EAAc,GAAVxB,EAAcwB,KACnB,IAApBsE,EAAYtE,IACZD,IAMJjB,EADAiB,EAAQ,IACD,IAEA,IAEX,IAAK,IAAIC,EAAgB,GAAZzB,EAAgByB,EAAc,GAAVxB,EAAcwB,KACnB,IAApBsE,EAAYtE,GACZP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,KAElBsE,EAAYtE,GAAK,EACxBP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GACrB7F,MAAOmK,EAAYtE,GACnBE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGnBd,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GACrB7F,MAAOmK,EAAYtE,GACnBE,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAK3B5B,EAAUc,MAGf,CAAC3B,EAAUiF,EAAeG,EAASE,EAAgB7E,EAAWC,IAEjE,IAAMsC,EAAe,CACjBC,MAAO,CACHE,UAAW,kBACX2B,UAAW,gBACXxB,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IACbsB,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,KACdiB,aACI,oFACJvB,MAAO,UAEX9B,KAAMf,EACNiF,WAAY,CACR,CACIC,KAAM,CACF,CAEIC,WAAYK,EACZJ,SAAU,GACV5H,MAAO,UACP6H,aAAa,GAAD,OAAKG,GACjBF,aAAc,IACdpD,OAAQ,IACRqD,UAAW,KAEf,CAEIJ,WAAYO,EACZN,SAAU,GACV5H,MAAO,UACP6H,aAAa,GAAD,OAAKK,GACjBJ,aAAc,IACdpD,OAAQ,IACRqD,UAAW,SAsC/B,OACI,qBAAKhI,MAAO,CAAEiG,MAAO,QAArB,SACMpE,EA/BFG,EAEI,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,MAIRvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAGxC,cAAC,IAAD,CACIpI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAKhB,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBACKtE,QADL,IACKA,OADL,EACKA,EAAUe,UASf,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,WCpLPuC,EAAa,aACbC,EAAe,eAGfC,EAAgB,gBAChBC,EAAwB,wBACxBC,EAAwB,wBAGxBC,GAAiB,iBACjBC,GAAyB,yBACzBC,GAAyB,yBAGzBC,GAAqB,qBACrBC,GAAqB,qBACrBC,GAAqB,qBAGrBC,GAAwB,wBACxBC,GAAwB,wBACxBC,GAAwB,wBAGxBC,GAA6B,6BAC7BC,GAA6B,6BAC7BC,GAA6B,6BAG7BC,GAA2B,2BAC3BC,GAA2B,2BAC3BC,GAA2B,2BAG3BC,GAAuB,uBACvBC,GAAuB,uBACvBC,GAAuB,uBAGvBC,GAAoB,oBACpBC,GAAoB,oBACpBC,GAAoB,oBAGpBC,GAA8B,8BAC9BC,GAA8B,8BAC9BC,GAA8B,8BAG9BC,GAAwB,wBACxBC,GAAwB,wBACxBC,GAAwB,wBAGxBC,GAAyB,yBACzBC,GAAyB,yBACzBC,GAAyB,yBAGzBC,GAAyB,yBACzBC,GAAyB,yBACzBC,GAAyB,yBAGzBC,GAA0B,0BAC1BC,GAA0B,0BAC1BC,GAA0B,0BAG1BC,GAAsB,sBACtBC,GAAsB,sBACtBC,GAAsB,sBAGtBC,GAA+B,+BAC/BC,GAA+B,+BAC/BC,GAA+B,+BAG/BC,GAAsB,sBACtBC,GAAsB,sBACtBC,GAAsB,sBACtBC,GAAoB,oBAGpBC,GAA2B,2BAC3BC,GAA2B,2BAC3BC,GAA2B,2BAG3BC,GAAsB,sBACtBC,GAAsB,sBACtBC,GAAsB,sBAGtBC,GAAqB,qBACrBC,GAAqB,qBACrBC,GAAqB,qBAGrBC,GAA2B,2BAC3BC,GAA2B,2BAC3BC,GAA2B,2BCrG3BC,GAAmB,SAAC,GAAD,IAAGC,EAAH,EAAGA,YAAH,MAAsB,CACpD1O,KAAM2O,GACNC,QAAS,CACPF,iBAISG,GAAmB,SAAC,GAAD,IAAG/K,EAAH,EAAGA,KAAH,MAAe,CAC7C9D,KAAM2O,GACNC,QAAS,CACP9K,UAISgL,GAAmB,SAAC,GAAD,IAAGrP,EAAH,EAAGA,MAAH,MAAgB,CAC9CO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCjBJoK,GAAwB,SAAC,GAAD,IAAGC,EAAH,EAAGA,cAAH,MAAwB,CAC3DhP,KAAM2O,GACNC,QAAS,CACPI,mBAISC,GAAwB,SAAC,GAAD,IAAGlG,EAAH,EAAGA,eAAH,MAAyB,CAC5D/I,KAAM2O,GACNC,QAAS,CACP7F,oBAISmG,GAAwB,SAAC,GAAD,IAAGzP,EAAH,EAAGA,MAAH,MAAgB,CACnDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCjBJwK,GAAsB,SAAC,GAAD,IAAGH,EAAH,EAAGA,cAAH,MAAwB,CACzDhP,KAAM2O,GACNC,QAAS,CACPI,mBAISI,GAAsB,SAAC,GAAD,IAAGpG,EAAH,EAAGA,QAAH,MAAkB,CACnDhJ,KAAM2O,GACNC,QAAS,CACP5F,aAISqG,GAAsB,SAAC,GAAD,IAAG5P,EAAH,EAAGA,MAAH,MAAgB,CACjDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJ2K,GAAyB,SAAC,GAAD,IAAGnL,EAAH,EAAGA,cAAH,MAAwB,CAC5DnE,KAAM2O,GACNC,QAAS,CACPzK,mBAISoL,GAAyB,SAAC,GAAD,IAAG9P,EAAH,EAAGA,MAAH,MAAgB,CACpDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,W,oBCjBJ6K,GAAkBC,aAAW,SAACpI,GAAD,MAAY,CACpDqI,WAAW,CACTC,WAAY,UACZrH,OAAQ,OACRN,MAAO,QACP4H,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACT2H,QAAS,OACTC,eAAgB,SAChBC,WAAY,UAEdC,WAAW,CACT1H,OAAQ,OACRN,MAAO,QACP4H,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACT2H,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZE,OAAO,UACPC,cAAc,YACdC,SAAS,QACTC,OAAO,OACPC,QAAQ,QAEVC,aAAa,CACXX,WAAW,UACX3N,MAAM,YCtBGuO,GAAyB,SAAC,GAAD,IAAGC,EAAH,EAAGA,mBAAH,MAA6B,CACjExQ,KAAM2O,GACNC,QAAS,CACP4B,wBAISC,GAAyB,SAAC,GAAD,IAAGhR,EAAH,EAAGA,MAAH,MAAgB,CACpDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCoTFhB,gBApBS,SAAChB,GAAD,MAAY,CAClCsB,eAAgBtB,EAAMuB,kBAAkBC,cACxCuM,gBAAiB/N,EAAMgO,uBAAuBH,mBAC9CI,mBAAoBjO,EAAMgO,uBAAuB3M,YAGxB,SAACI,GAAD,MAAe,CACxCyM,WAAY,gBAAGnC,EAAH,EAAGA,YAAH,OAAqBtK,EAASqK,GAAiB,CAAEC,kBAC7DvF,UAAW,gBAAG6F,EAAH,EAAGA,cAAH,OACT5K,EAAS2K,GAAsB,CAAEC,oBACnChG,QAAS,gBAAGgG,EAAH,EAAGA,cAAH,OACP5K,EAAS+K,GAAoB,CAAEH,oBACjC8B,WAAY,gBAAGC,EAAH,EAAGA,cAAH,OACV3M,EH9TkC,SAAC,GAAD,IAAG2M,EAAH,EAAGA,cAAH,MAAwB,CAC5D/Q,KAAM2O,GACNC,QAAS,CACPmC,kBG2TSC,CAAuB,CAAED,oBACpCE,YAAa,gBAAGC,EAAH,EAAGA,uBAAH,OACX9M,EDhUkC,SAAC,GAAD,IAAG8M,EAAH,EAAGA,uBAAH,MAAiC,CACrElR,KAAM2O,GACNC,QAAS,CACPsC,2BC6TSC,CAAuB,CAAED,6BACpCE,iBAAkB,kBAChBhN,ED7SuC,CACzCpE,KAAM2O,SC+SOhL,EAtTG,SAAC,GAAkB,IAAD,QAAZhD,EAAY,oBAC5B0Q,EAAkB,UAAC1Q,EAAMsD,sBAAP,aAAC,EAAsBsB,KADb,EAEG+L,cAA7BC,EAF0B,EAE1BA,SAASxR,EAFiB,EAEjBA,GAAIyR,EAFa,EAEbA,KAAOzO,EAFM,EAENA,KAFM,EAGRwB,mBAAS,GAHD,mBAG3BsC,EAH2B,KAGpB4K,EAHoB,KAI5BC,EAAUlC,KAJkB,EAKAjL,mBAASoN,OAAO5O,IAAS,GALzB,mBAK3BsB,EAL2B,KAKhBuN,EALgB,OAMJrN,mBAASoN,OAAO5O,GAAQ,GAAK,IANzB,mBAM3BuB,EAN2B,KAMlBuN,EANkB,KAO5BhP,EAAWiP,cAPiB,EASSvN,mBAAS,IATlB,mBAS3BwN,EAT2B,KASZC,EATY,OAUKzN,mBAAS,IAVd,mBAU3B0N,EAV2B,KAUdC,EAVc,OAWD3N,mBAAS,gBAXR,mBAW3B4N,EAX2B,KAWjBC,EAXiB,OAYL7N,mBAAS,IAZJ,mBAY3B8N,EAZ2B,KAYnBC,EAZmB,KAelCpT,qBAAU,WACJ,GAAG2D,EAASH,SAAS6P,WAAW,WAAW,CACzC,IAAI7D,EAAc,CAChB8D,UAAWzS,EACXyR,KAAMA,GAEJxC,EAAgB,CAClBwD,UAAWzS,GAETgR,EAAgB,CAClBhR,GAAIwR,GAEN5Q,EAAMkQ,WAAW,CAAEnC,gBACnB/N,EAAMwI,UAAU,CAAE6F,kBAClBrO,EAAMqI,QAAQ,CAAEgG,kBAChBrO,EAAMmQ,WAAW,CAACC,qBAGxB,CAAClO,EAASH,SAAU3C,EAAIyR,IAE1BtS,qBAAU,WAAK,IAAD,IACqB,EAAjC,aAAGyB,EAAM+P,uBAAT,aAAG,EAAuBvL,QACvB,GAAGsN,OAAOC,QAAP,oBAAkB/R,EAAM+P,uBAAxB,aAAkB,EAAuB/L,UAAW,CACtD,IAAIoM,EAAgB,CAChBhR,GAAIwR,GAER5Q,EAAMmQ,WAAW,CAACC,kBAClBpQ,EAAMyQ,yBAEJ,GAAGzQ,EAAM+P,mBAAmB,UAAC/P,EAAM+P,uBAAP,aAAC,EAAuBvL,QAAO,CAAC,IAAD,EAC7D,GAAGsN,OAAOC,QAAP,oBAAkB/R,EAAM+P,uBAAxB,aAAkB,EAAuB/L,UAAW,CACvD,IAAIoM,EAAgB,CAChBhR,GAAIwR,GAER5Q,EAAMmQ,WAAW,CAACC,kBAClBpQ,EAAMyQ,uBAIV,CAACzQ,EAAM+P,kBAyBT,IAAMiC,EAAQ,CACd,CAAE1S,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,EAAGL,MAAO,QACnB,CAAEK,MAAO,GAAIL,MAAO,SACpB,CAAEK,MAAO,GAAIL,MAAO,SACpB,CAAEK,MAAO,GAAIL,MAAO,SACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,QACpB,CAAEK,MAAO,GAAIL,MAAO,SACpB,CAAEK,MAAO,GAAIL,MAAO,UAGdgT,EAAsB,SAACvT,GACN,eAAlBA,EAAEe,OAAOrB,KACViT,EAAkB3S,EAAEe,OAAOH,OACF,aAAlBZ,EAAEe,OAAOrB,KAChBmT,EAAgB7S,EAAEe,OAAOH,OACA,eAAlBZ,EAAEe,OAAOrB,MAChBqT,EAAa/S,EAAEe,OAAOH,QAItBiR,EAAuB,CACrB2B,QAAO,OAAExB,QAAF,IAAEA,OAAF,EAAEA,EAAoBwB,QAC7BC,UAAS,OAAEzB,QAAF,IAAEA,OAAF,EAAEA,EAAoByB,UAC/B9S,KAAM,WACN+S,cAAc,EACdC,iBAAiB,EACjBC,eAAe,EACfC,cAAe,OACfC,eAAgB,QAChBC,mBAAmB,EACnBC,oBAAmB,OAAEhC,QAAF,IAAEA,OAAF,EAAEA,EAAoBwB,SA0C/C,OACE,qCACE,sBACE9Q,MAAO,CACL8N,QAAS,OACTyD,IAAI,MACJpL,QAAS,OAJb,UAOE,sBAAKnG,MAAO,CAAC8N,QAAQ,OAAO0D,cAAc,UAA1C,UACE,iDACA,eAACC,GAAA,EAAD,CACAzT,GAAG,8BACH0T,aAAc,EACdxT,MAAO4G,EACP3G,SA9HY,SAACqG,GACnB,IAAMmN,EAAYnN,EAAMnG,OAAOH,MAC/BwR,EAASiC,IA6HHC,UAAWjC,EAAQhC,WALnB,UAOA,cAACkE,GAAA,EAAD,CAAU3T,MAAO,EAAjB,wBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,yBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,mCACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,kCAGF,sBAAK8B,MAAO,CAAC8N,QAAQ,OAAO0D,cAAc,UAA1C,UACE,+CACF,eAACC,GAAA,EAAD,CACEzT,GAAG,8BACH0T,aAAc,EACdxT,MAAOoE,EACPnE,SAxIgB,SAACqG,GACvBqL,EAAarL,EAAMnG,OAAOH,QAwIpB0T,UAAWjC,EAAQhC,WALrB,UAOGiD,EAAMjR,KAAI,SAAAyB,GAAI,OACX,cAACyQ,GAAA,EAAD,CAA2B3T,MAAOkD,EAAKlD,MAAvC,SACGkD,EAAKvD,OADOuD,EAAKlD,UAIxB,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,yBAGF,sBAAK8B,MAAO,CAAE8N,QAAS,OAAQ0D,cAAe,UAA9C,UACE,6CACA,eAACC,GAAA,EAAD,CACEzT,GAAG,8BACH0T,aAAc,GACdxT,MAAOqE,EACPpE,SArJY,SAACqG,GACrBsL,EAAWtL,EAAMnG,OAAOH,QAqJhB0T,UAAWjC,EAAQhC,WALrB,UAOGiD,EAAMjR,KAAI,SAAAyB,GAAI,OACb,cAACyQ,GAAA,EAAD,CAA2B3T,MAAOkD,EAAKlD,MAAvC,SACGkD,EAAKvD,OADOuD,EAAKlD,UAItB,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,GAAjB,yBAGkC,mBAArC,UAAAU,EAAMsD,sBAAN,eAAsBsB,KAAKgB,QAC5B,qCACI,sBAAKxE,MAAO,CAAC8N,QAAQ,OAAO0D,cAAc,UAA1C,UACE,iDACE,eAACC,GAAA,EAAD,CACAzT,GAAG,8BACHhB,KAAK,aACL0U,aAActB,EACdlS,MAAOkS,EACPwB,UAAWjC,EAAQhC,WACnBxP,SAAU0S,EANV,UAQA,cAACgB,GAAA,EAAD,CAAU3T,MAAM,eAAhB,0BACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAM,SAAhB,oBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAM,aAAhB,8BAGJ,sBAAK8B,MAAO,CAAC8N,QAAQ,OAAO0D,cAAc,UAA1C,UACE,qDACA,uBACAI,UAAWjC,EAAQhC,WACnB3P,GAAG,YACHhB,KAAK,aACLiB,KAAK,iBACLC,MAAO8R,EACP7R,SAAU0S,OAGd,sBAAK7Q,MAAO,CAAC8N,QAAQ,OAAO0D,cAAc,UAA1C,UACI,mDACA,uBACAI,UAAWjC,EAAQhC,WACnB3P,GAAG,YACHhB,KAAK,WACLiB,KAAK,iBACLC,MAAOgS,EACP/R,SAAU0S,aAKlB,oBAAI7Q,MAAO,CAACmG,QAAQ,OAApB,mBAA6BvH,EAAMsD,sBAAnC,aAA6B,EAAsBsB,KAAKgB,QAC7C,IAAVM,EAAc,cAAC,EAAD,CAAWxC,UAAWA,EAAWC,QAASA,IArM7C,IAAVuC,EACK,cAAC,EAAD,CAAYxC,UAAWA,EAAWC,QAASA,IAC/B,IAAVuC,EACF,cAAC,EAAD,CAAgBxC,UAAWA,EAAWC,QAASA,IAE/C,cAAC,EAAD,CAASD,UAAWA,EAAWC,QAASA,IAiMA,aAA7C,UAAA3D,EAAMsD,sBAAN,eAAsBsB,KAAKsO,gBAA+B,qBAAK9R,MAAO,CAAE8N,QAAS,OAAOE,WAAW,SAASD,eAAe,SAASgE,UAAU,MAAMR,IAAI,SAA9F,SACzD3S,EAAMiQ,mBAAqB,cAACzI,EAAA,EAAD,IAC5B,qCACE,8BACE,0BACEpG,MAAO,CAACiG,MAAO,SACf+L,KAAK,IACLC,KAAK,KACL/T,MAAOoS,EACP4B,YAAY,UACZ/T,SAnHc,SAACb,GACzBiT,EAAWjT,EAAEe,OAAOH,YAqHhB,wBAAQ0T,UAAWjC,EAAQ1B,WAAYkE,QAlI1B,WACgB,mBAAZ,OAAlB7C,QAAkB,IAAlBA,OAAA,EAAAA,EAAoB9K,QACnB2K,EAAsB,IAAtB,OAA8BG,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAoB8C,KAAKC,OAAO,GAC9DlD,EAAsB,QAAYmB,GAAW,sBAC7C1R,EAAMsQ,YAAY,CAACC,6BAEjBA,EAAsB,IAAtB,OAA8BG,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAoB8C,KAAKC,OAAO,GAC9DlD,EAAsB,QAAYmB,GAAW,sBAC7C1R,EAAMsQ,YAAY,CAACC,6BA0HrB,oBACA,wBAAQyC,UAAS,UAAKjC,EAAQ1B,WAAb,YAA2B0B,EAAQpB,cAAgB4D,QA1JvD,WACgB,mBAAZ,OAAlB7C,QAAkB,IAAlBA,OAAA,EAAAA,EAAoB9K,QACnB2K,EAAsB,IAAtB,OAA8BG,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAoB8C,KAAKE,QAAQ,GAC/DnD,EAAsB,QAAYmB,GAAW,sBAC7C1R,EAAMsQ,YAAY,CAACC,4BAElBa,GAAkBE,GAAgBE,GACnCjB,EAAsB,IAAtB,OAA8BG,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAoB8C,KAAKE,QAAQ,GAC/DnD,EAAsB,QAAYmB,GAAW,sBAC7CnB,EAAsB,iBAAqB,CACzCoD,WAAW,CACTC,WAAYxC,EACZyC,SAASvC,EACT1L,MAAO4L,IAGbxR,EAAMsQ,YAAY,CAACC,4BAEjBuD,MAAM,qDAwIN,+BCzSKC,GAAajF,aAAW,SAACpI,GAClC,IAAMsN,EAAmB,CACrBC,UAAW,+BACX,qBAAsB,+BACtB,kBAAmB,+BACnBhF,aAAc,QAGlB,MAAO,CACHiF,KAAM,CACF7M,MAAO,OACPM,OAAQ,QAEZwM,aAAc,CACVC,SAAU,SACVzM,OAAQ,OACR0M,OAAQ,WACRnF,QAAS,OACTC,eAAgB,eAChBmF,SAAU,OACV/M,QAAS,WAEbgN,OAAQ,CACJH,SAAU,SACV/M,MAAO,OACP6H,QAAS,OACTE,WAAY,SACZD,eAAgB,gBAChB5H,QAAS,QACT8M,OAAQ,aACRJ,UAAW,iCAEfO,iBAAkB,CACd7M,OAAQ,OACRuH,QAAS,OACTE,WAAY,SACZD,eAAgB,UAEpBsF,eAAgB,CACZnN,UAAW,SACX+M,OAAQ,WACR9M,QAAS,OAEbmN,YAAY,aACRrN,MAAO,OACPE,QAAS,MACToN,UAAW,UACRX,GAEPY,OAAO,aACHvN,MAAO,MACPM,OAAQ,QACRJ,QAAS,MACToN,UAAW,UACRX,GAEPjT,IAAI,aACAsG,MAAO,OACPM,OAAQ,QACR0M,OAAQ,OACRM,UAAW,UACRX,GAEPa,OAAO,aACHxN,MAAO,MACP6H,QAAS,OACT3H,QAAS,OACNyM,GAEPc,OAAO,aACHzN,MAAO,MACPM,OAAQ,QACRgN,UAAW,UACRX,GAEPe,OAAO,aACHC,SAAU,MACVC,UAAW,SACRjB,GAEPkB,OAAO,aACHF,SAAU,MACVrN,OAAQ,SACLqM,GAEPmB,OAAQ,CACJH,SAAU,MACV/F,aAAc,QAElBmG,OAAO,aACH/N,MAAO,QACJ2M,GAEPqB,OAAO,aACHhO,MAAO,QACJ2M,GAEPsB,UAAU,aACNjO,MAAO,QACJ2M,GAEPuB,UAAU,aACNlO,MAAO,OACPgN,OAAQ,QACLL,GAEP9N,MAAM,aACFmB,MAAO,QACJ2M,GAEPwB,YAAa,CACTxG,WAAY,WACZrH,OAAQ,OACRN,MAAO,OACP4H,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACT2H,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZE,OAAQ,WAEZmG,2BAA4B,CACxBvG,QAAS,OACT0D,cAAe,SACfvL,MAAO,OACPsL,IAAK,OAET+C,MAAO,CACHC,SAAU,QACVtO,MAAO,OACPM,OAAQ,OACRiO,OAAQ,OACRC,MAAO,OACPC,gBAAiB,UACjBzU,MAAO,OACP4N,aAAc,OACd3H,UAAW,SACX2M,UAAW,mBACX3E,OAAQ,UACRyG,gBAAiB,OACjB,UAAW,CACP1O,MAAO,OACPM,OAAQ,a,mBC/IXqO,GAAoBlH,aAAW,SAACpI,GAAD,MAAY,CACpDuP,mBAAoB,CAChB/G,QAAS,OACTyD,IAAK,QACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACL7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAEX,WAAY,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,c,oBC4KNlM,gBARS,SAAChB,GAAD,MAAY,CAChCoU,YAAapU,EAAMqU,mBAAmBC,YACtCC,mBAAoBvU,EAAMqU,mBAAmBhT,QAC7CmT,UAAWxU,EAAMyU,iBAAiBC,UAClCC,aAAc3U,EAAMyU,iBAAiBpT,YAEd,SAACI,GAAD,MAAe,KAE3BT,EApLK,SAAC,GAMd,IALHoT,EAKE,EALFA,YACAG,EAIE,EAJFA,mBACAC,EAGE,EAHFA,UACAG,EAEE,EAFFA,aAGM5F,GADJ,+EACciF,MAEVY,EAAkB,SAAC,GAAoC,IAAlCC,EAAiC,EAAjCA,KAAM5X,EAA2B,EAA3BA,MAAO2F,EAAoB,EAApBA,KAAMvB,EAAc,EAAdA,QAC1C,OACI,sBAAK2P,UAAWjC,EAAQkF,mBAAxB,UACI,4BAAIY,GAAQ5X,IACXoE,EACG,cAACyT,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACMzC,EAGE,+BAAOA,IAFP,cAACkS,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,YAUpD2P,EAAkB,CACpB,CACI/X,MAAO,qBACP2F,KAAI,OAAEwR,QAAF,IAAEA,OAAF,EAAEA,EAAaa,kBAAkB,IAEzC,CACIhY,MAAO,yBACP2F,KAAI,OAAEwR,QAAF,IAAEA,OAAF,EAAEA,EAAac,sBAAsB,IAE7C,CACIjY,MAAO,cACP2F,KAAI,OAAEwR,QAAF,IAAEA,OAAF,EAAEA,EAAae,WAAW,IAElC,CACIlY,MAAO,sBACP2F,KAAI,OAAE4R,QAAF,IAAEA,OAAF,EAAEA,EAAWY,mBAAmB,KAItCC,EAAmB,CACrB,CAAEpY,MAAO,cAAeK,MAAK,OAAE8W,QAAF,IAAEA,OAAF,EAAEA,EAAakB,YAAY,IACxD,CAAErY,MAAO,cAAeK,MAAK,OAAE8W,QAAF,IAAEA,OAAF,EAAEA,EAAamB,YAAY,IACxD,CAAEtY,MAAO,cAAeK,MAAK,OAAE8W,QAAF,IAAEA,OAAF,EAAEA,EAAaoB,YAAY,IACxD,CAAEvY,MAAO,cAAeK,MAAK,OAAE8W,QAAF,IAAEA,OAAF,EAAEA,EAAaqB,YAAY,KAGtDC,EAA0B,CAC5B,CAAEzY,MAAO,cAAeK,MAAK,OAAE8W,QAAF,IAAEA,OAAF,EAAEA,EAAauB,YAAY,IACxD,CAAE1Y,MAAO,cAAeK,MAAK,OAAE8W,QAAF,IAAEA,OAAF,EAAEA,EAAawB,YAAY,KAG5D,OACI,gCACI,mCACKZ,EAAgBjW,KAAI,SAAC8W,EAAMC,GAAP,OACjB,cAAClB,EAAD,CAEIC,KAAMgB,EAAKhB,MAAQ,GACnB5X,MAAO4Y,EAAK5Y,OAAS,GACrB2F,KAAMiT,EAAKjT,KACXvB,QAASkT,GAAsBI,GAJ1BmB,QAQjB,gCACI,qBAAK9E,UAAWjC,EAAQgH,KAAM3W,MAAO,CAAEiT,OAAQ,WAA/C,SACI,cAAC7T,EAAA,EAAD,CAAgBwX,UAAWC,KAA3B,SACI,eAACxX,EAAA,EAAD,CACIuS,UAAWjC,EAAQmH,MACnBC,aAAW,eAFf,UAII,cAACzX,EAAA,EAAD,UACI,cAACC,EAAA,EAAD,UACK0W,EAAiBtW,KAAI,SAACqX,GAAD,OAClB,cAACxX,EAAA,EAAD,UACKwX,EAAMnZ,OADKmZ,EAAMnZ,cAMlC,cAAC4B,EAAA,EAAD,UACI,cAACF,EAAA,EAAD,UACK0W,EAAiBtW,KAAI,SAACqX,GAAD,OAClB,cAACxX,EAAA,EAAD,CAEIoX,UAAU,KACVK,MAAM,MAHV,SAKK9B,EACG,cAACO,GAAA,EAAD,CACIC,UAAU,OACV1P,MAAO,KAGX,mCACM+O,EAME,6BAAKgC,EAAM9Y,QALX,cAACwX,GAAA,EAAD,CACIC,UAAU,OACV1P,MAAO,QAdlB+Q,EAAMnZ,qBA4BvC,qBAAK+T,UAAWjC,EAAQgH,KAAM3W,MAAO,CAAEiT,OAAQ,WAA/C,SACI,cAAC7T,EAAA,EAAD,CAAgBwX,UAAWC,KAA3B,SACI,eAACxX,EAAA,EAAD,CACIuS,UAAWjC,EAAQmH,MACnBC,aAAW,eAFf,UAII,cAACzX,EAAA,EAAD,UACI,cAACC,EAAA,EAAD,UACK+W,EAAwB3W,KAAI,SAACqX,GAAD,OACzB,cAACxX,EAAA,EAAD,UACKwX,EAAMnZ,OADKmZ,EAAMnZ,cAMlC,cAAC4B,EAAA,EAAD,UACI,cAACF,EAAA,EAAD,UACK+W,EAAwB3W,KAAI,SAACqX,GAAD,OACzB,cAACxX,EAAA,EAAD,CAEIoX,UAAU,KACVK,MAAM,MAHV,SAKK9B,EACG,cAACO,GAAA,EAAD,CACIC,UAAU,OACV1P,MAAO,KAGX,mCACM+O,EAME,6BAAKgC,EAAM9Y,QALX,cAACwX,GAAA,EAAD,CACIC,UAAU,OACV1P,MAAO,QAdlB+Q,EAAMnZ,8BCrJ1CqZ,GAAgBxJ,aAAW,SAACpI,GAAD,MAAY,CAChD6R,iBAAkB,CACdrJ,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACL7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAEX,WAAY,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,c,SCpBAsJ,G,uCACnBC,U,OACAC,U,OACAC,S,GCHmBC,GAUnB,WACEC,EACAC,EACAC,EACAC,EACA5Z,EACA+D,EACA8V,EACAC,GACC,0BAlBKL,cAkBN,OAjBMC,UAiBN,OAhBMC,kBAgBN,OAfMC,kBAeN,OAdM5Z,QAcN,OAbM+D,UAaN,OAZM8V,YAYN,OAXMC,eAWN,EACAC,KAAKN,SAAWA,EAChBM,KAAKL,KAAOA,EACZK,KAAKJ,aAAeA,EACpBI,KAAKH,aAAeA,EACpBG,KAAK/Z,GAAKA,EACV+Z,KAAKhW,KAAOA,EACZgW,KAAKF,OAASA,EACdE,KAAKD,UAAYA,GC3BAE,GASnB,WACEC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAta,GACC,0BAhBKia,WAgBN,OAfMC,SAeN,OAdMC,SAcN,OAbMC,SAaN,OAZMC,SAYN,OAXMC,SAWN,OAVMta,QAUN,EACA+Z,KAAKE,MAAQA,EACbF,KAAKG,IAAMA,EACXH,KAAKI,IAAMA,EACXJ,KAAKK,IAAMA,EACXL,KAAKM,IAAMA,EACXN,KAAKO,IAAMA,EACXP,KAAK/Z,GAAKA,G,UCrBOua,G,WAkBnB,WACEC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACC,0BAlCKC,YAkCN,OAjCM/J,UAiCN,OAhCMgK,mBAgCN,OA/BMC,iBA+BN,OA9BMC,cA8BN,OA7BMC,kBA6BN,OA5BMC,cA4BN,OA3BMC,gBA2BN,OA1BMC,oBA0BN,OAzBMC,cAyBN,OAxBMC,cAwBN,OAvBMvC,UAuBN,OAtBMwC,kBAsBN,OArBMC,kBAqBN,OApBMC,aAoBN,OAnBMC,cAmBN,EACAtC,KAAKyB,OAAShB,EACdT,KAAKtI,KAAOgJ,EACZV,KAAK0B,cAAgBf,EACrBX,KAAK2B,YAAcf,EACnBZ,KAAK4B,SAAWf,EAChBb,KAAK6B,aAAef,EACpBd,KAAK8B,SAAWf,EAChBf,KAAK+B,WAAaf,EAClBhB,KAAKgC,eAAiBf,EACtBjB,KAAKiC,SAAWf,EAChBlB,KAAKkC,SAAWf,EAChBnB,KAAKL,KAAOyB,EACZpB,KAAKmC,aAAed,EACpBrB,KAAKoC,aAAed,EACpBtB,KAAKqC,QAAUd,EACfvB,KAAKsC,SAAWd,E,0CAOlB,WACE,OAAOxB,KAAKyB,Q,IA+Hd,SAAmBtb,GACjB6Z,KAAKyB,OAAStb,I,iBAzHhB,WACE,OAAO6Z,KAAKtI,M,IA+Hd,SAAiBvR,GACf6Z,KAAKtI,KAAOvR,I,0BAzHd,WACE,OAAO6Z,KAAK0B,e,IA+Hd,SAA0Bvb,GACxB6Z,KAAK0B,cAAgBvb,I,wBAzHvB,WACE,OAAO6Z,KAAK2B,a,IA+Hd,SAAwBxb,GACtB6Z,KAAK2B,YAAcxb,I,qBAzHrB,WACE,OAAO6Z,KAAK4B,U,IA+Hd,SAAqBzb,GACnB6Z,KAAK4B,SAAWzb,I,yBAzHlB,WACE,OAAO6Z,KAAK6B,c,IA+Hd,SAAyB1b,GACvB6Z,KAAK6B,aAAe1b,I,qBAzHtB,WACE,OAAO6Z,KAAK8B,U,IA+Hd,SAAqB3b,GACnB6Z,KAAK8B,SAAW3b,I,uBAzHlB,WACE,OAAO6Z,KAAK+B,Y,IA+Hd,SAAuB5b,GACrB6Z,KAAK+B,WAAa5b,I,2BAzHpB,WACE,OAAO6Z,KAAKgC,gB,IA+Hd,SAA2B7b,GACzB6Z,KAAKgC,eAAiB7b,I,qBAzHxB,WACE,OAAO6Z,KAAKiC,U,IA+Hd,SAAqB9b,GACnB6Z,KAAKiC,SAAW9b,I,qBAzHlB,WACE,OAAO6Z,KAAKkC,U,IA+Hd,SAAqB/b,GACnB6Z,KAAKkC,SAAW/b,I,iBAzHlB,WACE,OAAO6Z,KAAKL,M,IA+Hd,SAAiBxZ,GACf6Z,KAAKL,KAAOxZ,I,yBAzHd,WACE,OAAO6Z,KAAKmC,c,IA+Hd,SAAyBhc,GACvB6Z,KAAKmC,aAAehc,I,yBAzHtB,WACE,OAAO6Z,KAAKoC,c,IA+Hd,SAAyBjc,GACvB6Z,KAAKoC,aAAejc,I,oBAzHtB,WACE,OAAO6Z,KAAKqC,S,IA+Hd,SAAoBlc,GAClB6Z,KAAKqC,QAAUlc,I,qBAzHjB,WACE,OAAO6Z,KAAKsC,U,IA+Hd,SAAqBnc,GACnB6Z,KAAKsC,SAAWnc,M,KCjTdoc,GACJ,sFACIC,GAAO,GACPC,GACJ,4EAEWC,GAAU,SAACjX,GACtB,OAAOA,GAAc,MAGVkX,GAAU,SAACC,GACtB,IAAIlL,EAAO,IAAIvO,KAAKyZ,GAClBC,GAAQ,KAAOnL,EAAKoL,WAAa,IAAIC,OAAO,GAE9C,MAAO,EADE,IAAMrL,EAAKiL,WAAWI,OAAO,GACzBF,EAAMnL,EAAKsL,eAAeC,KAAK,MAGjCC,GAAc,SAACN,GAC1B,IAAIlL,EAAO,IAAIvO,KAAKyZ,GAChBO,EAAQ,IAAIha,KAEZ0Z,GAAQ,KAAOnL,EAAKoL,WAAa,IAAIC,OAAO,GAC5CK,GAAO,IAAM1L,EAAKiL,WAAWI,OAAO,GAIpCM,GAFqB3L,EAAK1O,UAAYma,EAAMna,WAEL,MAE3C,OAAIqa,EAAqB,GAErB,mBAAGpb,MAAO,CAAEC,MAAO,SAAnB,SACG,CAACkb,EAAKP,EAAMnL,EAAKsL,eAAeC,KAAK,OAGjCI,EAAqB,IAAMA,EAAqB,EAEvD,mBAAGpb,MAAO,CAAEC,MAAO,SAAnB,SACG,CAACkb,EAAKP,EAAMnL,EAAKsL,eAAeC,KAAK,OAKxC,mBAAGhb,MAAO,CAAEC,MAAO,OAAnB,SACG,CAACkb,EAAKP,EAAMnL,EAAKsL,eAAeC,KAAK,QAuBjCK,GAAiB,SAAC5L,GAC7B,IAAI6L,EAAepa,KAAKqa,MAAM9L,GACxB+L,EAAa,IAAIta,KAAKoa,GACtBG,EAAkBD,EAAWra,qBAWnC,OAREqa,EAAWE,mBAAmB,QAAS,CAAEP,IAAK,YAC9C,IACAK,EAAWE,mBAAmB,QAAS,CAAEC,MAAO,YAChD,IACAH,EAAWE,mBAAmB,QAAS,CAAEE,KAAM,YAEzB,MAAQH,GAyErBI,GAAkB,SAAC7a,GAC9B,IAAIsa,EAAepa,KAAKqa,MAAMva,GAI9B,OAHmB,IAAIE,KAAKoa,GACOQ,kBAMxBC,GAAyB,SAACC,GACrC,IAAIC,EAAgB,GAChBC,EAAOF,EACPG,EAAO7Y,KAAK8Y,MAAMF,EAAO,IACzBtL,EAAQtN,KAAK8Y,MAAMD,EAAO,IAiB9B,OAfIvL,EAAQ,IACVqL,EAAcjY,KAAK,KACnBiY,EAAcjY,KAAK4M,IAEnBqL,EAAcjY,KAAK4M,GAGrBqL,EAAcjY,KAAK,MACnBmY,GAAQ,IACG,IACTF,EAAcjY,KAAK,KACnBiY,EAAcjY,KAAKmY,IAEnBF,EAAcjY,KAAKmY,GAEdF,EAAcjB,KAAK,KAiEfqB,GAAkB,SAAC7Y,GAC9B,IAAM8Y,EAAiBC,GAA4B/Y,EAAK6W,UAClDmC,EAAgBD,GAA4B/Y,EAAK4W,SACjDqC,EAqBR,SAAuCC,GACrC,IAAIC,EAAU,CAACD,EAAOC,SAClBC,EAAW,CAACF,EAAOG,SACjBC,EAAoBC,GAAoBL,EAAOrF,KAAMsF,GACrDK,EAAoBD,GAAoBL,EAAOO,KAAML,GAErDM,EAoFR,SAAkCA,EAAIC,GACpC,IAAIC,EAAeC,GAAgBH,EAAI,IACnCI,EAAY,GAChBA,EAAUtZ,KAAKuZ,GAAqCJ,IACpD,IAAK,IAAIpZ,EAAI,EAAGA,EAAIqZ,EAAa/W,OAAQtC,IACvCuZ,EAAUtZ,KAAKsZ,EAAUvZ,EAAI,GAAuB,IAAlBqZ,EAAarZ,IAEjD,OAAOuZ,EA3FIE,CAAyBd,EAAOQ,GAAIR,EAAOe,QAChDra,EA6FR,SAAkCA,GAIhC,IAHA,IAAIU,EAAQ,GACR4Z,EAAS,GACTC,EAAgBC,SAASxa,EAAO,GAAGya,YAC9B9Z,EAAI,EAAGA,EAAIX,EAAOiD,OAAQtC,IACjC,GAAI+Z,GAAQ1a,EAAOW,IACjBga,GAAkBC,GAAYN,GAASC,EAAe7Z,GACtD4Z,EAAS,GACTC,EAAgBC,SAASxa,EAAOW,GAAG8Z,gBAC9B,CACL,IAAII,EAAIzD,GAAoB0D,QAAQ9a,EAAOW,IACvCka,EAAI1D,GACNmD,EAAO1Z,KAAKia,GAEZP,EAAO1Z,KAAKia,EAAI1D,IAEdxW,IAAMX,EAAOiD,OAAS,GACxB0X,GAAkBC,GAAYN,GAASC,EAAe7Z,GAI5D,OAAOA,EAlHQqa,CAAyBzB,EAAOtZ,QAM/C,OALAsZ,EAAM,KAAWI,EACjBJ,EAAM,KAAWM,EACjBN,EAAM,GAASQ,EACfR,EAAM,OAAatZ,SACZsZ,EAAM,QACNA,EAlCc0B,CAA8B5a,EAAKkZ,QAMxD,OAJAlZ,EAAI,SAAe6a,GAAgC/B,GACnD9Y,EAAI,QAAc6a,GAAgC7B,GAClDhZ,EAAI,OAuDN,SAA8BkZ,GAS5B,IARA,IAAMrF,EAAOqF,EAAOrF,KACdC,EAAOoF,EAAOO,KAEdqB,EAAM,GACNC,EAAM,GACNvgB,EAAK,GACLkf,EAAKR,EAAOQ,GACZ9Z,EAASsZ,EAAOtZ,OACbW,EAAI,EAAGA,EAAIsT,EAAKhR,OAAQtC,IAC/Bua,EAAIta,KAAKqT,EAAKtT,IACdwa,EAAIva,KAAKsT,EAAKvT,IACd/F,EAAGgG,KAAKhG,EAAG+F,IACXmZ,EAAGlZ,KAAKkZ,EAAGnZ,IACXX,EAAOY,KAAKZ,EAAOW,IAErB,IAAMya,EAAS,IAAIpH,GAMnB,OALAoH,EAAOnH,KAAOiH,EACdE,EAAOlH,KAAOiH,EACdC,EAAOjH,IAAMvZ,EACbwgB,EAAOtB,GAAKA,EACZsB,EAAOpb,OAASA,EACTob,EA7EUC,CAAqBhC,GAE/BjZ,GAGT,SAAS+Y,GAA4BmC,GACnC,IAAIC,EAAWD,EAAe3gB,IAC1B4e,EAAUgC,EAAS,GACnB9B,EAAU8B,EAAS,GACjB7B,EAAoB8B,GAAcF,EAAeJ,IAAK3B,GACtDK,EAAoB4B,GAAcF,EAAeH,IAAK1B,GAI5D,OAHA6B,EAAc,IAAU5B,EACxB4B,EAAc,IAAU1B,SACjB0B,EAAc,IACdA,EAmBT,SAASL,GAAgCQ,GAQvC,IAPA,IAAMxH,EAAOwH,EAAkBP,IACzBhH,EAAOuH,EAAkBN,IACzBhH,EAAMsH,EAAkB7gB,GACxBsgB,EAAM,GACNC,EAAM,GACNvgB,EAAK,GAEF+F,EAAI,EAAGA,EAAIsT,EAAKhR,OAAQtC,IAC/Bua,EAAIta,KAAKqT,EAAKtT,IACdwa,EAAIva,KAAKsT,EAAKvT,IACd/F,EAAGgG,KAAKuT,EAAIxT,IAGd,IAAMya,EAAS,IAAIpH,GAKnB,OAJAoH,EAAOnH,KAAOiH,EACdE,EAAOlH,KAAOiH,EACdC,EAAOjH,IAAMvZ,EAENwgB,EA4BT,SAASI,GAAcE,EAAUC,GAK/B,IAJA,IAAMC,EAAU,GAEVC,EA0DR,SAAuBH,GAMrB,IALA,IAeII,EAAWC,EACXC,EAhBEC,EAAY,GACdC,EAAc,GACZL,EAAc,GAGXlb,EAAI,EAAGA,EAAI+a,EAASzY,OAAQtC,IAC/B+a,EAASS,OAAOxb,KAEVuW,GAAaiF,OAAO,KAC5BF,EAAUrb,KAAKD,GAInBsb,EAAUG,SAAS,GACnBF,EAAcD,EAId,IAAK,IAAItb,EAAI,EAAGA,EAAIub,EAAYjZ,OAAS,EAAGtC,IAC1Cmb,EAAYI,EAAYvb,GAAK,EAC7Bob,EAAUG,EAAYvb,EAAI,GAC1Bqb,EAAUN,EAASW,UAAUP,EAAWC,GACxCF,EAAYjb,KAAKob,GAGnB,OAAOH,EApFaS,CAAcZ,GAEzB/a,EAAI,EAAGA,EAAIkb,EAAY5Y,OAAQtC,IAAK,CAC3C,IACI4b,EAAYC,GADHX,EAAYlb,GACYgb,EAAOhb,IAC5Cib,EAAQhb,KAAK2b,GAEf,OAAOX,EAGT,SAASjC,GAAoB+B,EAAUC,GACrC,IAEIc,EAiLN,SAA2BC,GAEzB,IADA,IAAIC,EAAU,GACLhc,EAAI,EAAGA,EAAI+b,EAASzZ,OAAQtC,IAAK,CACxC,IAAIic,EAAMF,EAAS/b,GAAK,IACxBgc,EAAQ/b,KAAKgc,GAEf,OAAOD,EAvLgBE,CAsKzB,SAA0BC,GACxB,IAAIC,EAAS,GACb,GAAID,EAAc7Z,OAAS,EAAG,CAC5B,IAAK,IAAItC,EAAI,EAAGA,EAAImc,EAAc7Z,OAAQtC,IACxCoc,EAAOnc,KAAKkc,EAAcnc,GAAKmc,EAAc,IAE/C,OAAOC,EAEP,OAAOD,EA/KKE,CADI/C,GAAgByB,EAAU,MAGxCxB,EAAY,GAChBA,EAAUtZ,KAAK+a,GACf,IAAK,IAAIhb,EAAI,EAAGA,EAAI8b,EAAiBxZ,OAAQtC,IAC3CuZ,EAAUtZ,KACRqc,WAAW/C,EAAUvZ,EAAI,IAAMsc,WAAWR,EAAiB9b,KAG/D,OAAOuZ,EAkET,SAASsC,GAAaU,EAAQvB,GAK5B,IAJA,IAAMwB,EAAU,GACVC,EAAc,GACdC,EAAU,GAEP1c,EAAI,EAAGA,EAAIuc,EAAOja,OAAQtC,IACjCwc,EAAQvc,KAAKsW,GAAa4D,QAAQoC,EAAOf,OAAOxb,KAGlD,IAAK,IAAIA,EAAI,EAAGA,EAAIwc,EAAQla,OAAQtC,IAC9Bwc,EAAQxc,GAAKwW,IACfiG,EAAYxc,KAAKD,GAIrByc,EAAYhB,SAAS,GAMrB,IAJA,IAAIkB,EAmHN,SAAmCR,GACjC,IAAMC,EAAS,GACf,GAAID,EAAc7Z,OAAS,EAAG,CAC5B,IAAK,IAAItC,EAAI,EAAGA,GAAKmc,EAAc7Z,OAAS,EAAGtC,IAC7Coc,EAAOnc,KAAKkc,EAAcnc,GAAKmc,EAAcnc,EAAI,IAEnD,OAAOoc,EAEP,OAAOD,EA3HQS,CAA0BH,GACvCtB,EAAY,EACV0B,EAAW,GAER7c,EAAI,EAAGA,EAAI2c,EAAWra,OAAQtC,IAAK,CAK1C,IAJA,IAAIob,EAAUD,EAAYwB,EAAW3c,GAEjC8c,EAAON,EAAQzF,MAAMoE,EAAWC,GAE3B2B,EAAI,EAAGA,EAAID,EAAKxa,OAAS,EAAGya,IACnCD,EAAKC,GAAKD,EAAKC,GAAKvG,GAEtBqG,EAAS5c,KAAK6c,GACd3B,EAAYC,EAGd,IAAK,IAAIpb,EAAI,EAAGA,EAAI6c,EAASva,OAAQtC,IACnC0c,EAAQzc,KAAK,GAKf,IAFA,IAAI+c,EAAM,EAEDhd,EAAI,EAAGA,EAAI6c,EAASva,OAAQtC,IAAK,CACxC,IAAIid,EAAUJ,EAAS7c,GACvBgd,EAAM,EACN,IAAK,IAAID,EAAI,EAAGA,EAAIE,EAAQ3a,OAAQya,IAClCC,GAAOC,EAAQF,GAAKxd,KAAK2d,IAAI1G,GAAMyG,EAAQ3a,OAASya,EAAI,GAE1DL,EAAQ1c,GAAKgd,EAIf,IADA,IAAIG,EAAQT,EAAQ,GACX1c,EAAI,EAAGA,EAAI0c,EAAQpa,OAAQtC,IAClC0c,EAAQ1c,GAAK0c,EAAQ1c,GAAKmd,EAI5B,IADA,IAAMC,EAAW,GACRpd,EAAI,EAAGA,EAAI0c,EAAQpa,OAAS,EAAGtC,IAC5B,IAANA,EACFod,EAASnd,KAAKV,KAAK8Y,MAAe,IAAT2C,IAEzBoC,EAASnd,KAAK,GAIlB,IAAK,IAAID,EAAI,EAAGA,EAAI0c,EAAQpa,OAAQtC,IAClCod,EAASpd,GAAKT,KAAK8Y,MAAM+E,EAASpd,EAAI,GAAK0c,EAAQ1c,IAGrDod,EAASC,MAET,IADA,IAAMC,EAAgB,GACbtd,EAAI,EAAGA,EAAIod,EAAS9a,OAAQtC,IAAK,CACxC,IAAIud,EAAIH,EAASpd,GAAK,IACtBsd,EAAcrd,KAAKsd,GAErB,OAAOD,EAGT,SAAShE,GAAgBkE,EAAahH,GAIpC,IAHA,IACI0D,EADA1J,EAAW,GAEXmJ,EAAS,GACJ3Z,EAAI,EAAGA,EAAIwd,EAAYlb,OAAQtC,KACtCka,EAAI3D,GAAa4D,QAAQqD,EAAYhC,OAAOxb,KACpCwW,EACNmD,EAAO1Z,KAAKia,IAEZP,EAAO1Z,KAAKia,EAAI1D,GAChBhG,EAASvQ,KAAKga,GAAYN,IAC1BA,EAAS,IAGb,OAAOnJ,EAuBT,IAAMgJ,GAAuC,SAACiE,GAAD,OAC3C,IAAItgB,KAAKsgB,EAAY,KAAKzgB,WAEtB+c,GAAU,SAAC2D,GAAD,MAAO,aAAaC,SAASD,IAE7C,SAAS1D,GAAkB4D,EAAUhE,EAAe7Z,GAClD,IAAK,IAAIC,EAAI,EAAGA,EAAI4d,EAAU5d,IAC5BD,EAAME,KAAK2Z,GAIf,SAASK,GAAY4D,GACnB,IAAIC,EAAY,EAChBD,EAAKE,UACL,IAAK,IAAI/d,EAAI,EAAGA,EAAI6d,EAAKvb,OAAQtC,IAC/B8d,GAAwBve,KAAK2d,IAAI,GAAIld,GAAK6d,EAAK7d,GAEjD,OAAO8d,EAqGF,IAAME,GAAkB,SAACC,GAM9B,IAN8C,IACtCxe,EAASwe,EAATxe,KACJ6W,EAAW,GACXD,EAAU,GACV6H,EAAMze,EAAK6W,SACX6H,EAAM1e,EAAK4W,QACNrW,EAAI,EAAGA,EAAIke,EAAIjkB,GAAGqI,OAAQtC,IAAK,CACtC,IAAIoe,EAAU,IAAInK,GAChBiK,EAAIhK,MAAMlU,GACVke,EAAI/J,IAAInU,GACRke,EAAI9J,IAAIpU,GACRke,EAAI7J,IAAIrU,GACRke,EAAI5J,IAAItU,GACRke,EAAI3J,IAAIvU,GACRke,EAAIjkB,GAAG+F,IAETsW,EAASrW,KAAKme,GAGhB,IAAK,IAAIpe,EAAI,EAAGA,EAAIme,EAAIlkB,GAAGqI,OAAQtC,IAAK,CACtC,IAAIqe,EAAQ,IAAI5K,GACd0K,EAAIG,aAAate,GACjBme,EAAII,WAAWve,GACfme,EAAIK,aAAaxe,GACjBme,EAAIM,aAAaze,GACjBme,EAAIlkB,GAAG+F,GACPme,EAAIO,cAAc1e,GAClBme,EAAIQ,oBAAoB3e,GACxBme,EAAIS,WAAW5e,IAEjBqW,EAAQpW,KAAKoe,GAsBf,OAnBsB,IAAI7J,GACxB/U,EAAK0W,aAAe1W,EAAKiM,KACzBjM,EAAKiM,KACLjM,EAAKof,eACLpf,EAAKkW,YACLlW,EAAKmW,SACLnW,EAAKoW,aACLpW,EAAKqW,SACLrW,EAAKsW,WACLtW,EAAKuW,eACLvW,EAAKqf,YAAYtf,IACjBC,EAAKqf,YAAYC,IACjBtf,EAAKkU,KACLlU,EAAK0W,aACL1W,EAAK2W,aACLC,EACAC,I,SCpdWzY,gBAVS,SAAChB,GAAD,MAAY,CAChCqG,QAASrG,EAAMsG,eAAeD,QAC9BE,eAAgBvG,EAAMsG,eAAejF,QACrC8gB,QAASniB,EAAMoiB,WAAWC,IAC1BC,WAAYtiB,EAAMoiB,WAAW/gB,QAC7BkhB,IAAKviB,EAAMwiB,iBAAiBD,IAC5BE,WAAYziB,EAAMwiB,iBAAiBnhB,YAEZ,SAACI,GAAD,MAAe,KAE3BT,EA7NC,SAAC,GAQV,IAAD,wCD8DoB1D,EC0DMolB,EAAOC,EA/HnCtc,EAOE,EAPFA,QACAE,EAME,EANFA,eACA4b,EAKE,EALFA,QACAG,EAIE,EAJFA,WAEAC,GAEE,EAHFE,WAGE,EAFFF,KAGMxT,GADJ,sFACcuH,MAEVsM,EAAa,SAAC,GAAoC,IAAlC/N,EAAiC,EAAjCA,KAAM5X,EAA2B,EAA3BA,MAAO2F,EAAoB,EAApBA,KAAMvB,EAAc,EAAdA,QACrC,OACI,sBAAK2P,UAAWjC,EAAQwH,iBAAxB,UACI,4BAAI1B,GAAQ5X,IACXoE,EACG,cAACyT,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACMzC,EAGE,+BAAOA,IAFP,cAACkS,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,YAUpDwd,EAAc,CAChB,CACIhO,KAAM,cAAC,KAAD,IACNjS,KAAMiX,GAAO,OAACxT,QAAD,IAACA,OAAD,EAACA,EAAU,GAAGyc,YAE/B,CACIjO,KAAM,cAAC,KAAD,IACNjS,KAAMiX,GAAO,OAACxT,QAAD,IAACA,OAAD,EAACA,EAAU,GAAG0c,QAE/B,CACIlO,KAAM,cAAC,KAAD,IACNjS,KAAK,GAAD,cAAKyD,QAAL,IAAKA,GAAL,UAAKA,EAAU,UAAf,aAAK,EAAcnG,SAAnB,oBAAgCmG,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAU,UAA1C,aAAgC,EAAc2c,SAA9C,oBAA2D3c,QAA3D,IAA2DA,GAA3D,UAA2DA,EAAU,UAArE,aAA2D,EAAcrG,QAEjF,CACI6U,KAAM,cAAC,KAAD,IACN5X,MAAO,GACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAc4c,eAEhC,CACIhmB,MAAO,SACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAc6c,QAEhC,CACIjmB,MAAO,kBACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcnB,WAEhC,CACI2P,KAAM,cAAC,KAAD,IACNjS,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAc8c,WAEhC,CACIlmB,MAAO,cACP2F,KAAI,OAAE2f,QAAF,IAAEA,OAAF,EAAEA,EAAKa,YAEf,CACInmB,MAAO,sBACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcpJ,QAEhC,CACIA,MAAO,YACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcQ,WAEhC,CACI5J,MAAO,qBACP2F,KAAMkX,GAAO,OAACzT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcgd,oBAEhC,CACIpmB,MAAO,yBACP2F,KAAMyX,GAAW,OAAChU,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcid,wBAEpC,CACIrmB,MAAO,eACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAckd,cAEhC,CACItmB,MAAO,gBACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcmd,eAEhC,CACIvmB,MAAO,wBACP2F,KAAM6X,GAAc,OAACpU,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcod,iBAEvC,CACIxmB,MAAO,wBACP2F,KAAM6X,GAAc,OAACpU,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcqd,iBAEvC,CACIzmB,MAAO,8BACP2F,MD5BctF,EC4BC,OAAC+I,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcsd,oCD3B1B,OAAVrmB,EACK,MACY,IAAVA,EACF,OAEA,UCwBH,CACIL,MAAO,wBACP2F,KAAMkX,GAAO,OAACzT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcud,uBAEhC,CACI3mB,MAAO,aACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcwd,YAEhC,CACI5mB,MAAO,qBACP2F,KAAMiX,GAAO,OAACxT,QAAD,IAACA,GAAD,UAACA,EAAU,UAAX,aAAC,EAAcyd,qBAI9BC,EAAkB,SAACC,EAAUC,GAI/B,IAHA,IAAMC,EAAKF,EAASrjB,MAAM,KAAK5B,IAAIiQ,QAC7BmV,EAAKF,EAAStjB,MAAM,KAAK5B,IAAIiQ,QAE1B7L,EAAI,EAAGA,EAAIT,KAAKC,IAAIuhB,EAAGze,OAAQ0e,EAAG1e,QAAStC,IAAK,CACrD,IAAMihB,EAAOF,EAAG/gB,IAAM,EAChBkhB,EAAOF,EAAGhhB,IAAM,EAEtB,GAAIihB,EAAOC,EAAM,OAAO,EACxB,GAAID,EAAOC,EAAM,OAAQ,EAE7B,OAAO,GAgBX,OACI,gCACI,yCACA,uBACA,sBAAKrT,UAAWjC,EAAQwH,iBAAxB,UACI,gDACChQ,EACG,cAACuO,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACMgB,EAGE,+BAAOwT,GAAO,OAACxT,QAAD,IAACA,OAAD,EAACA,EAAU,GAAGwJ,aAF5B,cAACiF,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAOlD,mCACKwd,EAAY9jB,KAAI,SAAC8W,EAAMC,GAAP,OACb,cAAC8M,EAAD,CAEI/N,KAAMgB,EAAKhB,MAAQ,GACnB5X,MAAO4Y,EAAK5Y,OAAS,GACrB2F,KAAMiT,EAAKjT,KACXvB,QAASkF,GAJJuP,QAQjB,sBAAK9E,UAAWjC,EAAQwH,iBAAxB,UACI,6CACC+L,EACG,cAACxN,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACM8c,EAGE,sBACI/iB,MAAO,CACHC,OArDJqjB,EAsDQP,EAAQmC,UAtDT3B,EAuDCR,EAAQoC,YAtD1B,aAAV7B,EACOqB,EAAgBpB,EAAS,UAAY,EACtC,UACA,UACW,UAAVD,EACAqB,EAAgBpB,EAAS,WAAa,EACvC,UACA,UAEH,YAyCa,SAQKR,EAAQoC,cAVb,cAACzP,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAgBlD,sBAAK2L,UAAWjC,EAAQwH,iBAAxB,UACI,6CACChQ,EACG,cAACuO,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACMgB,EAGE,sCAAOA,QAAP,IAAOA,GAAP,UAAOA,EAAU,UAAjB,aAAO,EAAcme,WAAWpK,KAAK,SAFrC,cAACtF,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,iBCxNjDof,GAAmB3X,aAAW,SAACpI,GAAD,MAAY,CACnDggB,kBAAmB,CACfxX,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACL7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAEX,SAAU,CACNgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,cCsDNlM,gBANS,SAAChB,GAAD,MAAY,CAChCmiB,QAASniB,EAAMoiB,WAAWC,IAC1BC,WAAYtiB,EAAMoiB,WAAW/gB,YAEN,SAACI,GAAD,MAAe,KAE3BT,EArEI,SAAC,GAA6B,IAA3BmhB,EAA0B,EAA1BA,QAASG,EAAiB,EAAjBA,WACrBvT,EAAU0V,KAEVE,EAAiB,SAAC,GAAoC,IAAlC9P,EAAiC,EAAjCA,KAAM5X,EAA2B,EAA3BA,MAAO2F,EAAoB,EAApBA,KAAMvB,EAAc,EAAdA,QACzC,OACI,sBAAK2P,UAAWjC,EAAQ2V,kBAAxB,UACI,4BAAI7P,GAAQ5X,IACXoE,EACG,cAACyT,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACMzC,EAGE,+BAAOA,IAFP,cAACkS,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,YAUpDuf,EAAiB,CACnB,CACI3nB,MAAO,uBACP2F,KAAMqY,GAAe,OAACkH,QAAD,IAACA,OAAD,EAACA,EAAS0C,gBAEnC,CACI5nB,MAAO,aACP2F,KAAMiX,GAAO,OAACsI,QAAD,IAACA,OAAD,EAACA,EAASmC,YAE3B,CACIrnB,MAAO,eACP2F,KAAMiX,GAAO,OAACsI,QAAD,IAACA,OAAD,EAACA,EAASoC,cAE3B,CACItnB,MAAO,gBACP2F,KAAMiX,GAAO,OAACsI,QAAD,IAACA,OAAD,EAACA,EAAS2C,eAE3B,CACI7nB,MAAO,aACP2F,KAAMiX,GAAO,OAACsI,QAAD,IAACA,OAAD,EAACA,EAAS4C,YAE3B,CACI9nB,MAAO,SACP2F,KAAMiX,GAAO,OAACsI,QAAD,IAACA,OAAD,EAACA,EAAS6C,SAG/B,OACI,8BACKJ,EAAe7lB,KAAI,SAAC8W,EAAMC,GAAP,OAChB,cAAC6O,EAAD,CAEI9P,KAAMgB,EAAKhB,MAAQ,GACnB5X,MAAO4Y,EAAK5Y,OAAS,GACrB2F,KAAMiT,EAAKjT,KACXvB,QAASihB,GAJJxM,WCvDZmP,GAAyBnY,aAAW,SAACpI,GAAD,MAAY,CAC3DqR,KAAM,CACJ7I,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACP7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAET,SAAU,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,cC+BAlM,gBANS,SAAChB,GAAD,MAAY,CAClCklB,iBAAkBllB,EAAMmlB,oBAAoBC,aAC5CC,wBAAyBrlB,EAAMmlB,oBAAoB9jB,YAE1B,SAACI,GAAD,MAAe,KAE3BT,EA9CM,SAAC,GAAmD,IAAjDkkB,EAAgD,EAAhDA,iBAAkBG,EAA8B,EAA9BA,wBAClCtW,EAAUkW,KAChB,OACE,gCACE,sBAAKjU,UAAWjC,EAAQgH,KAAxB,UACE,yDACCsP,EACC,cAACvQ,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI6f,EAGA,+BAAOA,EAAiBI,wBAAwB,KAFhD,cAACxQ,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,2DACCsP,EACC,cAACvQ,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI6f,EAGA,+BACG/iB,OAAOrD,OAAOomB,EAAiBK,wBAA0B,EACtDL,EAAiBK,uBAAuB,GAAGC,QAAQ,GACnD,OALN,cAAC1Q,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,iBCQjCrE,gBANS,SAAChB,GAAD,MAAY,CAClCylB,cAAezlB,EAAM0lB,iBAAiBC,UACtCC,iBAAkB5lB,EAAM0lB,iBAAiBrkB,YAEhB,SAACI,GAAD,MAAe,KAE3BT,EAlCK,SAAC,GAAuB,IAArBykB,EAAoB,EAApBA,cAAoB,EACP7jB,mBAAS,IADF,mBAClCikB,EADkC,KACvBC,EADuB,KAyBzC,OAtBAvpB,qBAAU,WACR,IAAIwpB,EAAkB,GACtB,GAAIN,EAAe,CAMjB,IALA,IAAI5V,EAAY1N,OAAOrD,OAAO2mB,EAAcO,MAAMC,WAC9CC,EAAe/jB,OAAOrD,OAAO2mB,EAAcO,MAAMG,cACjDC,EAAcjkB,OAAOrD,OAAO2mB,EAAcO,MAAMK,mBAChDC,EAAcnkB,OAAOrD,OAAO2mB,EAAcO,MAAMO,mBAChDC,EAAcrkB,OAAOrD,OAAO2mB,EAAcO,MAAMS,mBAC3CtjB,EAAI,EAAGA,EAAI0M,EAAUpK,OAAQtC,IACpC4iB,EAAgB3iB,KAAK,CACnBsjB,OAAQ7W,EAAU1M,GAClBlE,OAAQinB,EAAa/iB,GACrB7D,WAAY8mB,EAAYjjB,GACxB5D,WAAY+mB,EAAYnjB,GACxB3D,WAAYgnB,EAAYrjB,KAG5B2iB,EAAaC,MAGd,CAACN,IAEG,cAAC,EAAD,CAAgB3mB,OAAQ+mB,OCSlB7kB,gBANS,SAAChB,GAAD,MAAY,CAClCylB,cAAezlB,EAAM0lB,iBAAiBC,UACtCC,iBAAkB5lB,EAAM0lB,iBAAiBrkB,YAEhB,SAACI,GAAD,MAAe,KAE3BT,EAlCE,SAAC,GAAuB,IAArBykB,EAAoB,EAApBA,cAAoB,EACE7jB,mBAAS,IADX,mBAC/B+kB,EAD+B,KACjBC,EADiB,KAyBtC,OAtBArqB,qBAAU,WACR,IAAIoqB,EAAe,GACnB,GAAIlB,EAAe,CAMjB,IALA,IAAI5V,EAAY1N,OAAOrD,OAAO2mB,EAAcoB,SAASZ,WACjDC,EAAe/jB,OAAOrD,OAAO2mB,EAAcoB,SAASV,cACpDC,EAAcjkB,OAAOrD,OAAO2mB,EAAcoB,SAASR,mBACnDC,EAAcnkB,OAAOrD,OAAO2mB,EAAcoB,SAASN,mBACnDC,EAAcrkB,OAAOrD,OAAO2mB,EAAcoB,SAASJ,mBAC9CtjB,EAAI,EAAGA,EAAI0M,EAAUpK,OAAQtC,IACpCwjB,EAAavjB,KAAK,CAChBsjB,OAAQ7W,EAAU1M,GAClBlE,OAAQinB,EAAa/iB,GACrB7D,WAAY8mB,EAAYjjB,GACxB5D,WAAY+mB,EAAYnjB,GACxB3D,WAAYgnB,EAAYrjB,KAG5ByjB,EAAgBD,MAGjB,CAAClB,IAEG,cAAC,EAAD,CAAgB3mB,OAAQ6nB,OCelB3lB,gBANS,SAAChB,GAAD,MAAY,CAClCylB,cAAezlB,EAAM0lB,iBAAiBC,UACtCC,iBAAkB5lB,EAAM0lB,iBAAiBrkB,YAEhB,SAACI,GAAD,MAAe,KAE3BT,EAxCI,SAAC,GAAuB,IAArBykB,EAAoB,EAApBA,cAAoB,EACI7jB,mBAAS,IADb,mBACjCklB,EADiC,KACjBC,EADiB,KA+BxC,OA5BAxqB,qBAAU,WACR,IAAIyqB,EAAa,GACjB,GAAIvB,EAAe,CAYjB,IAXA,IAAI5V,EAAY1N,OAAOrD,OAAO2mB,EAAcuB,WAAWf,WACnDC,EAAe/jB,OAAOrD,OAAO2mB,EAAcuB,WAAWb,cACtDC,EAAcjkB,OAAOrD,OACvB2mB,EAAcuB,WAAWX,mBAEvBC,EAAcnkB,OAAOrD,OACvB2mB,EAAcuB,WAAWT,mBAEvBC,EAAcrkB,OAAOrD,OACvB2mB,EAAcuB,WAAWP,mBAElBtjB,EAAI,EAAGA,EAAI0M,EAAUpK,OAAQtC,IACpC6jB,EAAW5jB,KAAK,CACdsjB,OAAQ7W,EAAU1M,GAClBlE,OAAQinB,EAAa/iB,GACrB7D,WAAY8mB,EAAYjjB,GACxB5D,WAAY+mB,EAAYnjB,GACxB3D,WAAYgnB,EAAYrjB,KAG5B4jB,EAAkBC,MAGnB,CAACvB,IAEG,cAAC,EAAD,CAAgB3mB,OAAQgoB,OCSlB9lB,gBANS,SAAChB,GAAD,MAAY,CAClCylB,cAAezlB,EAAM0lB,iBAAiBC,UACtCC,iBAAkB5lB,EAAM0lB,iBAAiBrkB,YAEhB,SAACI,GAAD,MAAe,KAE3BT,EAxCG,SAAC,GAAuB,IAArBykB,EAAoB,EAApBA,cAAoB,EACG7jB,mBAAS,IADZ,mBAChCqlB,EADgC,KACjBC,EADiB,KA+BvC,OA5BA3qB,qBAAU,WACR,IAAI4qB,EAAY,GAChB,GAAI1B,EAAe,CAYjB,IAXA,IAAI5V,EAAY1N,OAAOrD,OAAO2mB,EAAc0B,UAAUlB,WAClDC,EAAe/jB,OAAOrD,OAAO2mB,EAAc0B,UAAUhB,cACrDC,EAAcjkB,OAAOrD,OACvB2mB,EAAc0B,UAAUd,mBAEtBC,EAAcnkB,OAAOrD,OACvB2mB,EAAc0B,UAAUZ,mBAEtBC,EAAcrkB,OAAOrD,OACvB2mB,EAAc0B,UAAUV,mBAEjBtjB,EAAI,EAAGA,EAAI0M,EAAUpK,OAAQtC,IACpCgkB,EAAU/jB,KAAK,CACbsjB,OAAQ7W,EAAU1M,GAClBlE,OAAQinB,EAAa/iB,GACrB7D,WAAY8mB,EAAYjjB,GACxB5D,WAAY+mB,EAAYnjB,GACxB3D,WAAYgnB,EAAYrjB,KAG5B+jB,EAAiBC,MAGlB,CAAC1B,IAEG,cAAC,EAAD,CAAgB3mB,OAAQmoB,OCjCpBG,GAAmBta,aAAW,SAACpI,GAAD,MAAY,CACrDqR,KAAM,CACJ7I,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACP7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,QACVnO,MAAO,WAET,SAAU,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,QACV2G,WAAY,OACZjH,QAAS,cCgDAlM,gBANS,SAAChB,GAAD,MAAY,CAClCqnB,WAAYrnB,EAAMsnB,cAAcC,OAChCC,kBAAmBxnB,EAAMsnB,cAAcjmB,YAEd,SAACI,GAAD,MAAe,KAE3BT,EAzDA,SAAC,GAAoB,IAAlBqmB,EAAiB,EAAjBA,WACVtY,EAAUqY,KADiB,EAEHxlB,mBAAS,IAFN,mBAE1B6lB,EAF0B,KAEjBC,EAFiB,KAuBjC,OAnBAnrB,qBAAU,WACR,IAAIorB,EAAc,GAClB,GAAIN,EAAY,CAId,IAHA,IAAIO,EAAUzlB,OAAOrD,OAAOuoB,EAAWQ,YACnCC,EAAkB3lB,OAAOrD,OAAOuoB,EAAWU,iBAC3CC,EAAO7lB,OAAOrD,OAAOuoB,EAAWY,MAC3B9kB,EAAI,EAAGA,EAAIykB,EAAQniB,OAAQtC,IAClCwkB,EAAYvkB,KAAK,CACfykB,WAAYD,EAAQzkB,GACpB+kB,eAAgBJ,EAAgB3kB,GAChCglB,SAAUH,EAAK7kB,KAGnBukB,EAAWC,MAIZ,CAACN,IAGF,qBAAKjoB,MAAO,CAAEiG,MAAO,OAAQsN,UAAW,SAAUhN,OAAQ,SAA1D,SACE,cAACnH,EAAA,EAAD,CAAgBwX,UAAWC,KAA3B,SACE,eAACxX,EAAA,EAAD,CAAOuS,UAAWjC,EAAQmH,MAAOC,aAAW,eAA5C,UACE,cAACzX,EAAA,EAAD,UACE,eAACC,EAAA,EAAD,WACE,cAACC,EAAA,EAAD,yBACA,cAACA,EAAA,EAAD,CAAWwpB,MAAM,QAAjB,sBACA,cAACxpB,EAAA,EAAD,CAAWwpB,MAAM,QAAjB,0BAGJ,cAACvpB,EAAA,EAAD,UACG4oB,EAAQvN,MAAM,EAAG,IAAInb,KAAI,SAACC,GAAD,OACxB,eAACL,EAAA,EAAD,WACE,cAACC,EAAA,EAAD,CAAWoX,UAAU,KAAKK,MAAM,MAAhC,SACGrX,EAAI6oB,aAEP,cAACjpB,EAAA,EAAD,CAAWwpB,MAAM,QAAjB,SAA0BppB,EAAIkpB,iBAC9B,cAACtpB,EAAA,EAAD,CAAWwpB,MAAM,QAAjB,SAA0BppB,EAAImpB,aALjBnpB,EAAI6oB,2BCtCpBQ,GAA6B,SAAC,GAAD,IAAGC,EAAH,EAAGA,UAAH,MAAoB,CAC1DjrB,KAAM2O,GACNC,QAAS,CACLqc,eAIKC,GAA6B,SAAC,GAAD,IAAGzrB,EAAH,EAAGA,MAAH,MAAgB,CACtDO,KAAM2O,GACNC,QAAS,CACLnP,MAAOA,EAAMkF,WCjBRwmB,GAAc1b,aAAW,SAACpI,GAAD,MAAY,CAC9C+jB,aAAc,CACV9U,SAAU,QACV+U,KAAM,IACN7U,MAAO,IACPD,OAAQ,IACR+U,IAAK,IACL3b,WAAY,2BACZ4b,OAAQ,KAEZC,eAAgB,CACZlV,SAAU,QACV+U,KAAM,MACNC,IAAK,MACLG,UAAW,wBACX9b,WAAY,OACZ3H,MAAO,OACP2N,SAAU,QACVZ,SAAU,QACVzM,OAAQ,QACRgN,UAAW,SACXpN,QAAS,OACT0H,aAAc,SACdC,QAAS,OACT0D,cAAe,SACfgY,OAAQ,KAEZG,WAAY,CACR7b,QAAS,OACTC,eAAgB,MAChB6b,aAAc,OACd1b,OAAQ,WAEZ2b,YAAa,CACTzb,SAAU,OACV2G,WAAY,WCgELnT,gBANS,SAAChB,GAAD,MAAY,CAChCkpB,OAAQlpB,EAAMmpB,sBAAsBb,UACpCc,cAAeppB,EAAMqpB,cAAchoB,YAEZ,SAACI,GAAD,MAAe,KAE3BT,EA3FM,SAAC,GAAwC,IAAtCkoB,EAAqC,EAArCA,OAAQI,EAA6B,EAA7BA,aACtBva,GADmD,yCACzCyZ,MADyC,EAErB5mB,mBAAS,IAFY,mBAElD2nB,EAFkD,KAEtCC,EAFsC,KAsBzD,OAlBAjtB,qBAAU,WAGN,OAFAktB,SAASC,KAAKtqB,MAAMuT,UAAY,SAEzB,WACH8W,SAASC,KAAKtqB,MAAMuT,UAAY,YAGrC,IAEHpW,qBAAU,WACNotB,QAAQC,IAAIV,IACZ,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAQ1mB,UACRgnB,EAAcN,EAAOtmB,MACrB+mB,QAAQC,IAAIL,EAAYL,EAAOtmB,SAGpC,CAACsmB,IAGA,qCACI,qBACIlY,UAAWjC,EAAQ0Z,aACnBlX,QAAS,kBAAM+X,GAAa,MAEhC,sBAAKtY,UAAWjC,EAAQ8Z,eAAxB,UACI,qBACI7X,UAAWjC,EAAQga,WACnBxX,QAAS,kBAAM+X,GAAa,IAFhC,mBAMA,cAAC9qB,EAAA,EAAD,UACI,eAACC,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,UACI,eAACC,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,iCAGA,cAACrqB,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,mCAGA,cAACrqB,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,sBAGA,cAACrqB,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,sBAGA,cAACrqB,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,iBAGA,cAACrqB,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,oBAGA,cAACrqB,EAAA,EAAD,CAAWoS,UAAWjC,EAAQka,YAA9B,uBAKR,cAACpqB,EAAA,EAAD,iBACK0qB,QADL,IACKA,OADL,EACKA,EAAYxqB,KAAI,SAACC,EAAK8W,GAAN,OACb,eAACnX,EAAA,EAAD,WACK,IACD,cAACC,EAAA,EAAD,CAAWoX,UAAU,KAAKK,MAAM,MAAhC,SACKrX,EAAI,IAAM,OAEf,cAACJ,EAAA,EAAD,UAAYI,EAAI,IAAM,OACtB,cAACJ,EAAA,EAAD,UAAYI,EAAI,IAAM,OACtB,cAACJ,EAAA,EAAD,UAAYI,EAAI,IAAM,OACtB,cAACJ,EAAA,EAAD,UAAYI,EAAI,IAAM,OACtB,cAACJ,EAAA,EAAD,UAAYI,EAAI,IAAM,OACtB,cAACJ,EAAA,EAAD,UAAYI,EAAI,IAAM,SAVXA,EAAI,IAAM8W,sBCyC1C9U,gBAVS,SAAChB,GAAD,MAAY,CAChCkpB,OAAQlpB,EAAMqpB,cAAcH,OAC5BE,cAAeppB,EAAMqpB,cAAchoB,YAEZ,SAACI,GAAD,MAAe,CACtCooB,cAAe,YAAwB,IAArBzb,EAAoB,EAApBA,cACd3M,EH7GkC,SAAC,GAAD,IAAG2M,EAAH,EAAGA,cAAH,MAAwB,CAC9D/Q,KAAM2O,GACNC,QAAS,CACLmC,kBG0GS0b,CAA2B,CAAE1b,uBAI/BpN,EAxGA,SAAC,GAA0B,IAAxBkoB,EAAuB,EAAvBA,OAAWlrB,EAAY,4BACD4D,mBAAS,IADR,mBAC9BmoB,EAD8B,KAClBP,EADkB,OAEH5nB,oBAAS,GAFN,mBAE9BooB,EAF8B,KAEnBV,EAFmB,KAkCrC,OA9BA/sB,qBAAU,WACN,IAAIgtB,EAAa,GACjB,GAAIL,EAAQ,CAQR,IAPA,IAAIe,EAAY9nB,OAAOrD,OAAOoqB,EAAO5P,cACjC4Q,EAAY/nB,OAAOrD,OAAOoqB,EAAOgB,WACjCrC,EAAa1lB,OAAOrD,OAAOoqB,EAAOrB,YAClC3W,EAAgB/O,OAAOrD,OAAOoqB,EAAOhY,eACrCiZ,EAAahoB,OAAOrD,OAAOoqB,EAAOiB,YAClCC,EAAmBjoB,OAAOrD,OAAOoqB,EAAOkB,kBACxCC,EAAiBloB,OAAOrD,OAAOoqB,EAAOmB,gBACjClnB,EAAI,EAAGA,EAAI0kB,EAAWpiB,OAAQtC,IAAK,CACxC,IAAIuX,EAAepa,KAAKqa,MAAMkN,EAAW1kB,IAEnC0X,EADa,IAAIva,KAAKoa,GACOQ,iBACnCqO,EAAWnmB,KAAK,CACZknB,SAAUL,EAAU9mB,GACpByL,SAAUsb,EAAU/mB,GACpBonB,UAAW1P,EACX2P,aAActZ,EAAc/N,GAC5BsnB,UAAWN,EAAWhnB,GACtBunB,gBAAiBN,EAAiBjnB,GAClCwnB,cAAeN,EAAelnB,KAGtCqmB,EAAcD,MAInB,CAACL,IAGA,qCACI,qBAAK9pB,MAAO,CAAEuG,OAAQ,QAASgN,UAAW,UAA1C,SACI,cAACnU,EAAA,EAAD,UACI,eAACC,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,UACI,eAACC,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,2BACA,cAACA,EAAA,EAAD,wBACA,cAACA,EAAA,EAAD,+BACA,cAACA,EAAA,EAAD,4BACA,cAACA,EAAA,EAAD,yBACA,cAACA,EAAA,EAAD,kCACA,cAACA,EAAA,EAAD,6BACA,cAACA,EAAA,EAAD,6BAGR,cAACC,EAAA,EAAD,UACKkrB,EAAWhrB,KAAI,SAACC,GAAD,OACZ,eAACL,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,CAAWoX,UAAU,KAAKK,MAAM,MAAhC,SACKrX,EAAIsrB,WAET,cAAC1rB,EAAA,EAAD,UAAYI,EAAI4P,WAChB,cAAChQ,EAAA,EAAD,UAAYI,EAAIurB,YAChB,cAAC3rB,EAAA,EAAD,UAAYI,EAAIwrB,eAChB,cAAC5rB,EAAA,EAAD,UAAYI,EAAIyrB,YAChB,cAAC7rB,EAAA,EAAD,UAAYI,EAAI0rB,kBAChB,cAAC9rB,EAAA,EAAD,UAAYI,EAAI2rB,gBAChB,cAAC/rB,EAAA,EAAD,CACI2S,QAAS,WACL,IAAInD,EAAgB,CAChB8b,UAAWlrB,EAAI4P,UAEnB5Q,EAAM6rB,cAAc,CAChBzb,kBAEJkb,GAAa,IARrB,SAWI,sBACIlqB,MAAO,CACHC,MAAO,UACPiO,OAAQ,WAHhB,uBArBOtO,EAAI4P,sBAoCtCob,GAAa,cAAC,GAAD,CAAOV,aAAcA,U,qCClGlCsB,GAAmB9d,aAAW,SAACpI,GAAD,YAAY,CACrDwN,KAAM,CACJ7M,MAAO,OACPM,OAAQ,QAEVwM,aAAc,CACZC,SAAU,SACVzM,OAAQ,OACRuH,QAAS,OACTE,WAAY,SACZD,eAAgB,gBAChBmF,SAAU,QAEZuY,SAAO,GACL7X,SAAU,QACVC,UAAW,QACXiB,KAAM,EACNhH,QAAS,OACTE,WAAY,SACZwD,cAAe,SAEf3D,aAAc,OACd6d,WAAY,QATP,eAUJpmB,EAAMqmB,YAAYC,KAAK,MAAQ,CAC9BhY,SAAU,UAXP,eAaL,SAbK,cAcHxF,SAAU,UACT9I,EAAMqmB,YAAYC,KAAK,MAAQ,CAC9Bxd,SAAU,YAhBT,GAoBPyd,cAAe,CACbje,WAAY,WACZrH,OAAQ,OACRN,MAAO,OACP4H,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACT2H,QAAS,OACTC,eAAgB,SAChBC,WAAY,UAGd8d,YAAa,CACXle,WAAY,WACZrH,OAAQ,OACRN,MAAO,OACP4H,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACT2H,QAAS,OACTC,eAAgB,SAChBC,WAAY,UAGd+d,aAAc,CACZ5lB,QAAS,UACTF,MAAO,QACP2H,WAAY,UACZC,aAAc,MACdtH,OAAQ,OACRuH,QAAS,OACTE,WAAY,UAGdge,WAAY,CACVle,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZuD,IAAK,QACL3D,WAAY,WACZrH,OAAQ,OACRqN,SAAU,QACV/F,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACTiI,SAAU,OAGZ6d,cAAe,CACbne,QAAS,OACTC,eAAgB,SAChBC,WAAY,SACZwD,cAAe,SACfD,IAAK,QACL3D,WAAY,WACZiG,UAAW,OACXD,SAAU,QACV/F,aAAc,MACd5N,MAAO,UACPkG,QAAS,mB,UC9FE,OAA0B,yCCA1B,OAA0B,kCCA1B,OAA0B,mCCA1B,OAA0B,mCCA1B,OAA0B,oCCA1B,OAA0B,oCCA1B,OAA0B,oCCA1B,OAA0B,mCCA1B,OAA0B,oCCiE1B+lB,OAxDf,SAAoBC,GAElB,IAAIjuB,GAASiuB,EAGb,OAAK,GAAKA,GAASA,EAAQ,EACrB7oB,KAAK8oB,IAAI,GAAKluB,GAASoF,KAAK8oB,IAAI,EAAIluB,GAC/BmuB,GAEAC,IAEC,GAAKH,GAASA,GAAS,GAC7B7oB,KAAK8oB,IAAI,GAAKluB,GAASoF,KAAK8oB,IAAI,GAAKluB,GAChCquB,GAEAF,IAEC,IAAMF,GAASA,GAAS,GAC9B7oB,KAAK8oB,IAAI,IAAMluB,GAASoF,KAAK8oB,IAAI,GAAKluB,GACjCsuB,GAEAD,IAEC,IAAMJ,GAASA,GAAS,IAC9B7oB,KAAK8oB,IAAI,IAAMluB,GAASoF,KAAK8oB,IAAI,IAAMluB,GAClCuuB,GAEAD,IAEC,IAAML,GAASA,GAAS,IAC9B7oB,KAAK8oB,IAAI,IAAMluB,GAASoF,KAAK8oB,IAAI,IAAMluB,GAClCwuB,GAEAD,IAEC,IAAMN,GAASA,GAAS,IAC9B7oB,KAAK8oB,IAAI,IAAMluB,GAASoF,KAAK8oB,IAAI,IAAMluB,GAClCyuB,GAEAD,IAEC,IAAMP,GAASA,GAAS,IAC9B7oB,KAAK8oB,IAAI,IAAMluB,GAASoF,KAAK8oB,IAAI,IAAMluB,GAClC0uB,GAEAD,GAGLrpB,KAAK8oB,IAAI,IAAMluB,GAASoF,KAAK8oB,IAAI,IAAMluB,GAClCouB,GAEAM,I,yEC5CTC,GAAiB,KAkbNjrB,gBAhBS,SAAChB,GAAD,MAAY,CAClCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,QAC/B6qB,eAAgBlsB,EAAMmsB,YAAY/K,WAClC/a,QAASrG,EAAMsG,eAAeD,QAC9ByQ,KAAM9W,EAAMmsB,YAAYrV,KACxBsE,UAAWpb,EAAMmsB,YAAY/Q,UAC7BgR,IAAKpsB,EAAMmsB,YAAYC,IACvBC,eAAgBrsB,EAAMmsB,YAAY9qB,QAClCoY,SAAUzZ,EAAMmsB,YAAY1S,SAC5BD,QAASxZ,EAAMmsB,YAAY3S,QAC3B8S,YAAatsB,EAAMmsB,YAAYG,YAC/BxQ,OAAQ9b,EAAMmsB,YAAYrQ,WAED,SAACra,GAAD,MAAe,KAE3BT,EAjbI,SAAC,GAab,IAAD,IAZJC,EAYI,EAZJA,SACAG,EAWI,EAXJA,YAIAqY,GAOI,EAVJyS,eAUI,EATJG,eASI,EARJhmB,QAQI,EAPJoT,UACAD,EAMI,EANJA,QACAsC,EAKI,EALJA,OACAwQ,EAII,EAJJA,YACAxV,EAGI,EAHJA,KACAsE,EAEI,EAFJA,UACAgR,EACI,EADJA,IAEMrd,EAAU6b,KADZ,EAG8BhpB,oBAAS,GAHvC,mBAGG2qB,EAHH,KAGcC,EAHd,OAI0B5qB,mBAAS,MAJnC,mBAIG7C,EAJH,KAIQ0tB,EAJR,OAK4B7qB,mBAAS,MALrC,mBAKG8qB,EALH,KAKSC,EALT,OAM+B/qB,mBAAS,MANxC,mBAMGgrB,EANH,KAMgBC,EANhB,OAOiCjrB,mBAAS,MAP1C,mBAOGkrB,EAPH,KAOiBC,EAPjB,OAS4BnrB,mBAAS,MATrC,mBASGorB,EATH,KASaC,EATb,OAUsBrrB,oBAAS,GAV/B,mBAUGsrB,EAVH,KAUUC,EAVV,OAWoBvrB,mBAAS,IAX7B,mBAWGxB,EAXH,KAWSgtB,EAXT,OAY4BxrB,oBAAS,GAZrC,mBAYGyrB,EAZH,KAYaC,EAZb,OAaoC1rB,oBAAS,GAb7C,oBAaG2rB,GAbH,MAaiBC,GAbjB,SAcsB5rB,mBAAS,KAd/B,qBAcGkE,GAdH,MAcU2nB,GAdV,SAewB7rB,oBAAS,GAfjC,qBAeG8rB,GAfH,MAeWC,GAfX,MAiBJpxB,qBAAU,WACJ0E,GAAYqrB,GAAeC,IAC7BqB,KACAC,QAGD,CAAC5sB,EAAUqrB,IAEd,IAQIwB,GAHAhY,GAAQxZ,iBAAO,GACfyxB,GAAY,GACZC,GAAW,GAGXC,GAAe,CACjBC,OAAQ,CACNxQ,IAAK,QACLyQ,IAAK,SAEPC,KAAM,IAGFR,GAAsB,WAC1B,GAAqB,OAAjBd,GAAyBA,EAAarnB,OAAS,EAAG,CACpD,IAAK,IAAItC,EAAI,EAAGA,EAAI2pB,EAAarnB,OAAQtC,IACvC2pB,EAAa3pB,GAAGkrB,OAAO,MAEzBtB,EAAa,MAGf,GAAoB,OAAhBH,GAAwBA,EAAYnnB,OAAS,EAAG,CAClD,IAAK,IAAItC,EAAI,EAAGA,EAAIypB,EAAYnnB,OAAQtC,IACtCypB,EAAYzpB,GAAGkrB,OAAO,MAExBxB,EAAY,QAIVyB,GAAoB,WACxB,GAAIrC,IAAkBA,GAAexmB,OAAS,EAC5C,IAAK,IAAItC,EAAI,EAAGA,EAAI8oB,GAAexmB,OAAQtC,IACzC8oB,GAAe9oB,GAAGkrB,OAAO,OAKzBR,GAAe,yCAAG,mCAAAnN,EAAA,sDACtBoN,GAAS,IAAIpB,EAAK6B,aACZC,EAAiB/U,EAAShD,KAC1BgY,EAAiBhV,EAAS/C,KAChCgY,GAAWF,EAAgBC,GAAgB,GAErCE,EAAenV,EAAQ/C,KACvBmY,EAAepV,EAAQ9C,KAC7BgY,GAAWC,EAAcC,GAAc,GACvC7vB,EAAI8vB,UAAUf,IATQ,2CAAH,qDAYrB,SAASY,GAAWI,EAASC,EAASC,GACpC,IAAK,IAAI7rB,EAAI,EAAGA,EAAI2rB,EAAQrpB,OAAQtC,IAAK,CAEvC,IADA,IAAMya,EAAS,GACNsC,EAAI,EAAGA,EAAI4O,EAAQ3rB,GAAGsC,OAAQya,IAAK,CAC1C,IAAI+O,EAAe,IAAIvC,EAAKwC,OAAOJ,EAAQ3rB,GAAG+c,GAAI6O,EAAQ5rB,GAAG+c,IACzDiP,EAAS,CAAEzR,IAAKoR,EAAQ3rB,GAAG+c,GAAIiO,IAAKY,EAAQ5rB,GAAG+c,IACnDtC,EAAOxa,KAAK+rB,GACZrB,GAAOsB,OAAOH,GAGhB,GAAID,EAAS,CACX,IAAMK,EAAe,IAAI3C,EAAK4C,QAAQ,CACpCC,MAAO3R,EACP4R,YAAa,UACbC,cAAe,EACfC,aAAc,EACdC,UAAW,UACXC,YAAa,IAEfP,EAAahB,OAAOtvB,GACpBivB,GAAS5qB,KAAKisB,OACT,CACL,IAAMQ,EAAc,IAAInD,EAAKoD,SAAS,CACpCC,KAAMnS,EACNoS,UAAU,EACVR,YAAa,UACbC,cAAe,EACfC,aAAc,IAGhBG,EAAYxB,OAAOtvB,GACnBgvB,GAAU3qB,KAAKysB,IAInB9C,EAAagB,IACblB,EAAYmB,IAGd,IA8EIiC,GA9EEC,GAAgB,SAACnxB,EAAK2tB,GAC1B4B,KACA,IAAIR,EAAS,IAAIpB,EAAK6B,aAGtB,GAFAtC,GAAiB,GAEbnQ,EAAQ,CACV,IAAIqU,EAAgB,IAAIzD,EAAKwC,OAC3BzV,EAAShD,KAAK,GAAG,GACjBgD,EAAS/C,KAAK,GAAG,IAGf0Z,EAAS,IAAI1D,EAAK2D,OAAO,CAC3B1c,SAAU,CACR+J,IAAKjE,EAAShD,KAAK,GAAG,GACtB0X,IAAK1U,EAAS/C,KAAK,GAAG,IAExB3X,MACA8V,KAAMyb,GACNC,WAAW,IAGbH,EAAO/B,OAAOtvB,GACdktB,GAAe7oB,KAAKgtB,GAEpBtC,EAAOsB,OAAOe,KAIlB,SAASK,GAAK9S,EAAKyQ,EAAKpvB,EAAK2tB,EAAM+D,EAAOC,EAASC,EAASnuB,GAC1D,IAAIsrB,EAAS,IAAIpB,EAAK6B,aAClBqC,EAAkB,IAAIlE,EAAKwC,OAAOzP,WAAW/B,GAAM+B,WAAW0O,IAC5D0C,EAAe,IAAInE,EAAKwC,OAAOxR,EAAKyQ,GACpC2C,EAAe,IAAIpE,EAAKwC,OAAOwB,EAASC,GAExCpF,EAAQzb,OAAOihB,OAAOrE,KAAKsE,SAASC,UAAUC,eAClDL,EACAC,GAGctD,GAAZhrB,EAAS,GAGb,IAAM2uB,EAAc5F,EAAQ,IAE5B,QAAcxpB,IAAV0uB,EAAqB,CACvB,IACMW,EADa,IAAI9wB,KAAKmwB,EAAQ,OACZlwB,mBAAmB,SAC3C6sB,EAAQgE,QAERhE,EAAQ,aAGVkB,KAEA,IAEM+C,EAAQ,CACZC,IAHUhG,GAAW6F,GAIrBI,WAAY,IAAI7E,EAAK8E,KAAK,MAAO,MACjCC,OAAQ,IAAI/E,EAAKgF,MAAM,EAAG,GAC1BC,OAAQ,IAAIjF,EAAKgF,MAAM,GAAI,KAEzBtB,EAAS,IAAI1D,EAAK2D,OAAO,CAC3B1c,SAAU,CACR+J,IAAK+B,WAAW/B,GAChByQ,IAAK1O,WAAW0O,IAElBpvB,IAAKA,EACL8V,KAAMwc,EAENd,WAAW,IAGbH,EAAO/B,OAAOtvB,GACdktB,GAAe7oB,KAAKgtB,GACpBtC,EAAOsB,OAAOwB,GAKhB,IAAMgB,GAAO,SAAC7yB,EAAK2tB,EAAMmF,GACvB,IAAIpB,EAAQ3U,EAAOQ,GACfoB,EAAM5B,EAAOrF,KACb0X,EAAMrS,EAAOpF,KACblU,EAASsZ,EAAOtZ,OACpB2qB,GAAS,GAETG,GAAY,GACZgB,KACA2B,GAAQ6B,aAAY,WAClB7E,EAAYgD,IACRna,GAAMtZ,SAAWkhB,EAAIjY,SACvBqQ,GAAMtZ,QAAU,EAChBu1B,cAAc9B,KAEhBO,GACE9S,EAAI5H,GAAMtZ,SACV2xB,EAAIrY,GAAMtZ,SACVuC,EACA2tB,EACA+D,EAAM3a,GAAMtZ,SACZkhB,EAAI5H,GAAMtZ,QAAU,GACpB2xB,EAAIrY,GAAMtZ,QAAU,GACpBgG,EAAOsT,GAAMtZ,QAAU,IAEzBsZ,GAAMtZ,YACLq1B,IAqCL,OACE,qBAAK7gB,UAAWjC,EAAQoD,aAAxB,SACE,sBAAKnB,UAAWjC,EAAQ8b,QAAxB,UACE,cAAC,KAAD,CACEzrB,MAAO,CACLuU,SAAU,WACVtO,MAAO,MACPM,OAAQ,MACRgN,UAAW,OACXjF,QAAS,OACT2E,OAAQ,OAEV2f,iBAAkB,CAChBC,IAAK,6CAEPC,cAAejE,GAAaC,OAC5BiE,YAAalE,GAAaG,KAC1BgE,oCAAoC,EACpCC,kBAAmB,YAAoB,IAAjBtzB,EAAgB,EAAhBA,IAAK2tB,EAAW,EAAXA,MA9Pf,SAAC3tB,EAAK2tB,GACxB3tB,EAAIuzB,aAAa5F,EAAK6F,UAAUC,QAChCtC,GAAcnxB,EAAK2tB,GA6PX+F,CAAY1zB,EAAK2tB,GACjBC,EAAgBD,GAChBD,EAAe1tB,GACfytB,GAAa,IAnBjB,SAsBGD,GAAaD,GAAe4D,GAAcnxB,EAAK2tB,KAEjDtrB,EACC,qBAAKhC,MAAO,CAAEiT,OAAQ,QAAtB,SACE,cAAC7M,EAAA,EAAD,CAAkBnG,MAAM,gBAG1B,qCACG,IACAitB,GACC,sBACEltB,MAAO,CACLuU,SAAU,WACVtB,OAAQ,OACRhN,MAAO,MACP6H,QAAS,OACTE,WAAY,SACZuD,IAAK,QACLxD,eAAgB,UARpB,UAWE,8BACE,wBACE6D,UAAWjC,EAAQkc,cACnB1Z,QA5DM,YACP,IAAXmc,IACFC,IAAU,GACVF,GAAS,KACTmE,GAAK7yB,EAAK2tB,EAAM,OAEhBiB,IAAU,GA5BZoE,cAAc/E,KAgFA,SAIIU,GAKA,8CACQ,cAAC,KAAD,OALR,6CACO,cAAC,KAAD,WASb,8BACE,yBACE1c,UAAWjC,EAAQkc,cACnB5lB,MAAM,OACNkM,QAAS,kBAhGd,SAACxS,EAAK2tB,GACjB,IAAIhP,EAAMjE,EAAShD,KAAK,GAAG,GACvB0X,EAAM1U,EAAS/C,KAAK,GAAG,GAC3Bqb,cAAc/E,GAEdC,EAAY,MACZU,IAAU,GACVW,KACAkC,GAAK9S,EAAI,GAAIyQ,EAAI,GAAIpvB,EAAK2tB,GAC1B5W,GAAMtZ,QAAU,EAuFek2B,CAAK3zB,EAAK2tB,IAH3B,iBAME,cAAC,KAAD,SAGJ,8BACE,eAAC7b,GAAA,EAAD,CACEzT,GAAG,8BACH0T,aAAc,IACdxT,MAAOwI,GACPvI,SA/FG,SAACqG,GACpBmuB,cAAc/E,GACd,IAAM5N,EAAMxb,EAAMnG,OAAOH,MACzBmwB,GAASrO,GACTwS,GAAK7yB,EAAK2tB,EAAMtN,IA4FApO,UAAWjC,EAAQmc,YALrB,UAOE,cAACja,GAAA,EAAD,CAAU3T,MAAO,IAAjB,gBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,IAAjB,gBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,IAAjB,qBAGJ,qBAAK0T,UAAWjC,EAAQoc,aAAxB,SACE,cAACwH,GAAA,EAAD,CACEr1B,MAAK,UAAEwY,GAAMtZ,eAAR,QAAmB,EACxBo2B,iBAAkB,iBAAM,SACxBC,kBAAgB,kBAChBC,kBAAkB,OAClBzzB,MAAM,YACN0zB,KAAM,EACNC,OAAK,EACL9Q,IAAK,EACLvf,IAAG,UAAER,OAAO8wB,KAAKnX,EAAOrF,MAAMhR,cAA3B,QAAqC,EACxClI,SAAU,SAACb,EAAGw2B,GACZpd,GAAMtZ,QAAU02B,OAIrB7F,GACC,sBAAKrc,UAAWjC,EAAQqc,WAAxB,UACE,6BAAKiC,IAAaH,GAAS9sB,IAC3B,yCACkB,IAAjBmtB,GACC,wBACEnuB,MAAO,CACL0U,gBAAiB,QACjB7G,aAAc,MACdtH,OAAQ,OACRN,MAAO,UAIX,wBACEjG,MAAO,CACL0U,gBAAiB,MACjB7G,aAAc,MACdtH,OAAQ,OACRN,MAAO,aAMjB,sBAAK2L,UAAWjC,EAAQsc,cAAxB,UACE,+CAAkBe,KAClB,8CAAiBhR,KACjB,0CAAatE,sBC5Z/BhW,IAAOC,KA8HP,IAMeC,gBANS,SAAChB,GAAD,MAAY,CAClCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,YAEN,SAACI,GAAD,MAAe,KAE3BT,EAlIf,YAAmD,IAA1BI,EAAyB,EAAzBA,YAAaH,EAAY,EAAZA,SAAY,EACpBW,mBAAS,IADW,mBACzCC,EADyC,KACjCC,EADiC,KAGhDvF,qBAAU,WACR,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAM9C,IALA,IAWIC,EAXAC,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvC+wB,EAAehxB,OAAOrD,OAAOmC,EAASmyB,YACtCxwB,EAAO,GAEPM,EAAQ,EACHC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KACf,IAArBgwB,EAAahwB,IACfD,IAMFjB,EADEiB,EAAQ,IACH,IAEA,MAGT,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KACf,IAArBgwB,EAAahwB,GACfP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,KAEdgwB,EAAahwB,GAAK,EAC3BP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAO61B,EAAahwB,GACpBE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGjBd,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAO61B,EAAahwB,GACpBE,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAKrB5B,EAAUc,MAEX,CAAC3B,IAEJ,IAAMgD,EAAe,CACnBC,MAAO,CACLE,UAAW,kBACX2B,UAAW,WACXxB,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IAEbqB,MAAO,SACPC,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,KACdiB,aACE,qFAIJrD,KAAMf,GAgCR,OACE,qBAAKzC,MAAO,CAAEiG,MAAO,QAArB,SACIpE,EA7BAG,EAEA,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,MAIJvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAG1C,cAAC,IAAD,CACEpI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAKd,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBAAqDtE,QAArD,IAAqDA,OAArD,EAAqDA,EAAUe,UAQ/D,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,WCrHV1E,IAAOC,KAwIP,IAQeC,gBARS,SAAChB,GAAD,MAAY,CAChCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,QAC/BgF,QAASrG,EAAMsG,eAAeD,QAC9BE,eAAgBvG,EAAMsG,eAAejF,YAEd,SAACI,GAAD,MAAe,KAE3BT,EA9If,YAAuE,IAAnDI,EAAkD,EAAlDA,YAAaH,EAAqC,EAArCA,SAAUsF,EAA2B,EAA3BA,eAAgBF,EAAW,EAAXA,QAAW,EACtCzE,mBAAS,IAD6B,mBAC3DC,EAD2D,KACnDC,EADmD,KAGlEvF,qBAAU,WACN,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAK5C,IAJA,IASIC,EATAC,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCixB,EAAUlxB,OAAOrD,OAAOmC,EAASqyB,aACjC1wB,EAAO,GACPM,EAAQ,EACHC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KAClB,IAAhBkwB,EAAQlwB,IACRD,IAKJjB,EADAiB,EAAQ,IACD,IAEA,MAEX,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KAClB,IAAhBkwB,EAAQlwB,GACRP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,KAElBkwB,EAAQlwB,GAAK,EACpBP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GACrB7F,MAAO+1B,EAAQlwB,GACfE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGnBd,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GACrB7F,MAAO+1B,EAAQlwB,GACfE,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAI3B5B,EAAUc,MAEf,CAAC3B,EAAUsF,EAAgBF,IAE9B,IAAMpC,EAAe,CACjBC,MAAO,CACHE,UAAW,kBACX2B,UAAW,cACXxB,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IACbqB,MAAO,SACPC,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,KACdiB,aACI,qFAIRrD,KAAMf,GA+CV,OACI,qBAAKzC,MAAO,CAAEiG,MAAO,QAArB,SACMpE,EA5CFG,EAEI,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,MAIRvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAEvCc,OAAL,EAEkC,MAAnB,OAAPF,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,WACa,MAAnB,OAAPR,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,UAGT,oBAAIzH,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,4CAMA,cAAC,IAAD,CACIlI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAOxB,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBACKtE,QADL,IACKA,OADL,EACKA,EAAUe,UASf,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,WC/HpB1E,IAAOC,KA+IP,IAQeC,gBARS,SAAChB,GAAD,MAAY,CAChCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,QAC/BgF,QAASrG,EAAMsG,eAAeD,QAC9BE,eAAgBvG,EAAMsG,eAAejF,YAEd,SAACI,GAAD,MAAe,KAE3BT,EArJf,YAAyE,IAAnDI,EAAkD,EAAlDA,YAAaH,EAAqC,EAArCA,SAAUoF,EAA2B,EAA3BA,QAASE,EAAkB,EAAlBA,eAAkB,EACxC3E,mBAAS,IAD+B,mBAC7DC,EAD6D,KACrDC,EADqD,KAGpEvF,qBAAU,WACN,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAM5C,IALA,IAWIC,EAXAC,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCmxB,EAAYpxB,OAAOrD,OAAOmC,EAASuyB,kBACnC5wB,EAAO,GAEPM,EAAQ,EACHC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KAChB,IAAlBowB,EAAUpwB,IACVD,IAMJjB,EADAiB,EAAQ,IACD,IAEA,MAGX,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,IACtC,IAAsB,IAAlBowB,EAAUpwB,GACVP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,UAEtB,GAAIowB,EAAUpwB,GAAK,EAAG,CACzB,IAAIswB,EAAcF,EAAUpwB,GAAK,KACjCP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GAErB7F,MAAOm2B,EACPpwB,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,gBAEhB,CACH,IAAI+vB,EAAcF,EAAUpwB,GAAK,KACjCP,EAAKQ,KAAK,CACNnG,MAAOiF,EAAciB,GAErB7F,MAAOm2B,EACPpwB,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAK3B5B,EAAUc,MAEf,CAAC3B,EAAUoF,EAASE,IAEvB,IAAMtC,EAAe,CACjBC,MAAO,CACHE,UAAW,kBACX2B,UAAW,gBACXxB,WAAY,IACZC,WAAY,IACZC,iBAAkB,IAClBpB,YAAa,IAEbqB,MAAO,SACPC,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,KACdiB,aACI,kFAERrD,KAAMf,GA+CV,OACI,qBAAKzC,MAAO,CAAEiG,MAAO,QAArB,SACMpE,EA5CFG,EAEI,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,MAIRvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAEvCc,OAAL,EAEkC,MAAnB,OAAPF,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,WACa,MAAnB,OAAPR,QAAO,IAAPA,OAAA,EAAAA,EAAU,GAAGQ,UAGT,oBAAIzH,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,4CAMA,cAAC,IAAD,CACIlI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAOxB,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,gBACKtE,QADL,IACKA,OADL,EACKA,EAAUe,UASf,qBAAK5C,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACI,cAACC,EAAA,EAAD,WCvIpB1E,IAAOC,KA6HP,IAMeC,gBANS,SAAChB,GAAD,MAAY,CAClCiB,SAAUjB,EAAMkB,YAAYC,KAC5BC,YAAapB,EAAMkB,YAAYG,YAEN,SAACI,GAAD,MAAe,KAE3BT,EAjIf,YAAmD,IAA1BI,EAAyB,EAAzBA,YAAaH,EAAY,EAAZA,SAAY,EACpBW,mBAAS,IADW,mBACzCC,EADyC,KACjCC,EADiC,KAGhDvF,qBAAU,WACR,GAAI0E,QAAiCc,IAArBd,EAASe,QAAuB,CAK9C,IAJA,IAUIC,EAVAC,EAAgBC,OAAOrD,OAAOmC,EAASmB,YACvCsxB,EAAevxB,OAAOrD,OAAOmC,EAASgY,UACtCrW,EAAO,GACPM,EAAQ,EACHC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KACf,IAArBuwB,EAAavwB,IACfD,IAMFjB,EADEiB,EAAQ,IACH,IAEA,MAGT,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,EAAcuD,OAAQtC,KACf,IAArBuwB,EAAavwB,GACfP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,KAEduwB,EAAavwB,GAAK,EAC3BP,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAOo2B,EAAavwB,GACpBE,YAAa,IACbC,aAAc,IACdC,sBAAuB,IACvBC,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAGjBd,EAAKQ,KAAK,CACRnG,MAAOiF,EAAciB,GACrB7F,MAAOo2B,EAAavwB,GACpBE,YAAa,IACbC,aAAc,IAEdC,sBAAuBtB,EACvBuB,kBAAmB,UACnBC,YAAa,IACbC,cAAe,YAKrB5B,EAAUc,MAEX,CAAC3B,IAEJ,IAAMgD,EAAe,CACnBC,MAAO,CACLE,UAAW,kBACX2B,UAAW,0BACXxB,WAAY,IACZC,WAAY,IACZnB,YAAa,IACboB,iBAAkB,IAClBuB,aAAc,IACdtB,MAAO,SACPC,kBAAmB,KACnBC,mBAAoB,UACpBC,kBAAmB,KACnBC,mBAAoB,UACpBC,UAAW,KACXC,aAAc,KACdiB,aACE,qFAIJrD,KAAMf,GAgCR,OACE,qBAAKzC,MAAO,CAAEiG,MAAO,QAArB,SACIpE,EA7BAG,EAEA,qBAAKhC,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,MAIJvE,QACqBc,IAArBd,EAASe,SACTG,OAAOrD,OAAOmC,EAASmB,YAAYqD,OAAS,EAG1C,cAAC,IAAD,CACEpI,KAAK,OACLqI,WAAW,OACXL,MAAM,OACNM,OAAO,MACPC,WAAY3B,IAKd,oBAAI7E,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA3C,2BAQA,qBAAKnG,MAAO,CAAEkG,UAAW,SAAUC,QAAS,OAA5C,SACE,cAACC,EAAA,EAAD,WCrDKxE,gBALS,iBAAO,MACJ,SAACS,GAAD,MAAe,CACxCyM,WAAY,gBAAGnC,EAAH,EAAGA,YAAH,OAAqBtK,EAASqK,GAAiB,CAAEC,qBAGhD/K,EA5DM,SAAC,GAAiB,oBAAC,IAAD,EACXY,mBAAS,GADE,mBAC9BsC,EAD8B,KACvB4K,EADuB,KAkBrC,OACE,qCACE,qBACE1P,MAAO,CACL8N,QAAS,OACTC,eAAgB,gBAChB5H,QAAS,OAJb,SAOE,eAACsL,GAAA,EAAD,CACEzT,GAAG,8BACH0T,aAAc,EACdxT,MAAO4G,EACP3G,SA5BY,SAACqG,GACnB,IAAMmN,EAAYnN,EAAMnG,OAAOH,MAC/BwR,EAASiC,IA2BH3R,MAAO,CACL4N,WAAY,WACZrH,OAAQ,OACRN,MAAO,QACP4H,aAAc,MACd5N,MAAO,UACPkG,QAAS,UACT2H,QAAS,OACTC,eAAgB,SAChBC,WAAY,UAdhB,UAiBE,cAAC6D,GAAA,EAAD,CAAU3T,MAAO,EAAjB,uBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,yBACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,4BACA,cAAC2T,GAAA,EAAD,CAAU3T,MAAO,EAAjB,iCAGO,IAAV4G,EAAc,cAAC,GAAD,IAzCH,IAAVA,EACK,cAAC,GAAD,IACY,IAAVA,EACF,cAAC,GAAD,IAEA,cAAC,GAAD,UCtBAyvB,GAAqB7mB,aAAW,SAACpI,GAAD,MAAY,CACrDkvB,gBAAiB,CACb1mB,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACL7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAEX,WAAY,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,cCyENlM,gBANS,SAAChB,GAAD,MAAY,CAChC6zB,SAAU7zB,EAAM8zB,gBAAgBC,aAChCC,gBAAiBh0B,EAAM8zB,gBAAgBzyB,YAEhB,SAACI,GAAD,MAAe,KAE3BT,EAvFM,SAAC,GAA6C,IAA3C6yB,EAA0C,EAA1CA,SAAUG,EAAgC,EAAhCA,gBACxBjlB,GADwD,8CAC9C4kB,MAEVM,EAAsB,SAAC,GAAoC,IAAlCpf,EAAiC,EAAjCA,KAAM5X,EAA2B,EAA3BA,MAAO2F,EAAoB,EAApBA,KAAMvB,EAAc,EAAdA,QAC9C,OACI,sBAAK2P,UAAWjC,EAAQ6kB,gBAAxB,UACI,4BAAI/e,GAAQ5X,IACXoE,EACG,cAACyT,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACMzC,EAGE,+BAAOA,IAFP,cAACkS,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,YAUpD6uB,EAAe,CACjB,CACIj3B,MAAO,gBACP2F,KACmC,KAAvB,OAARixB,QAAQ,IAARA,OAAA,EAAAA,EAAW,iBACL,mBACA,kBAEd,CACI52B,MAAO,iBACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAW,mBAE7B,CACI52B,MAAO,gBACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAW,kBAE7B,CACI52B,MAAO,oBACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAW,sBAE7B,CACI52B,MAAO,iBACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAW,mBAE7B,CACI52B,MAAO,SACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAQ,QAE1B,CACI52B,MAAO,YACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAQ,WAE1B,CACI52B,MAAO,aACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAQ,YAE1B,CACI52B,MAAO,YACP2F,KAAMiX,GAAO,OAACga,QAAD,IAACA,OAAD,EAACA,EAAW,eAIjC,OACI,8BACI,mCACKK,EAAan1B,KAAI,SAAC8W,EAAMC,GAAP,OACd,cAACme,EAAD,CAEIpf,KAAMgB,EAAKhB,MAAQ,GACnB5X,MAAO4Y,EAAK5Y,OAAS,GACrB2F,KAAMiT,EAAKjT,KACXvB,QAAS2yB,GAJJle,aClEhBqe,GAA0B,SAAC,GAAD,IAAG7f,EAAH,EAAGA,YAAH,MAAsB,CAC3DjX,KAAM2O,GACNC,QAAS,CACPqI,iBAIS8f,GAA0B,SAAC,GAAD,IAAGt3B,EAAH,EAAGA,MAAH,MAAgB,CACrDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJqyB,GAAwB,SAAC,GAAD,IAAG3f,EAAH,EAAGA,UAAH,MAAoB,CACvDrX,KAAM2O,GACNC,QAAS,CACPyI,eAIS4f,GAAwB,SAAC,GAAD,IAAGx3B,EAAH,EAAGA,MAAH,MAAgB,CACnDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJuyB,GAAqB,SAAC,GAAD,IAAGrL,EAAH,EAAGA,OAAH,MAAiB,CACjD7rB,KAAM2O,GACNC,QAAS,CACPid,YAISsL,GAAqB,SAAC,GAAD,IAAG13B,EAAH,EAAGA,MAAH,MAAgB,CAChDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJyyB,GAAkB,SAAC,GAAD,IAAGpS,EAAH,EAAGA,IAAH,MAAc,CAC3ChlB,KAAM2O,GACNC,QAAS,CACPoW,SAISqS,GAAkB,SAAC,GAAD,IAAG53B,EAAH,EAAGA,MAAH,MAAgB,CAC7CO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJ2yB,GAA2B,SAAC,GAAD,IAAGvP,EAAH,EAAGA,aAAH,MAAuB,CAC7D/nB,KAAM2O,GACNC,QAAS,CACPmZ,kBAISwP,GAA2B,SAAC,GAAD,IAAG93B,EAAH,EAAGA,MAAH,MAAgB,CACtDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJ6yB,GAAqB,SAAC,GAAD,IAAGtN,EAAH,EAAGA,OAAH,MAAiB,CACjDlqB,KAAM2O,GACNC,QAAS,CACPsb,YAISuN,GAAqB,SAAC,GAAD,IAAGh4B,EAAH,EAAGA,MAAH,MAAgB,CAChDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJ+yB,GAAwB,SAAC,GAAD,IAAGpP,EAAH,EAAGA,UAAH,MAAoB,CACvDtoB,KAAM2O,GACNC,QAAS,CACP0Z,eAISqP,GAAwB,SAAC,GAAD,IAAGl4B,EAAH,EAAGA,MAAH,MAAgB,CACnDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJizB,GAA2B,SAAC,GAAD,IAAGlB,EAAH,EAAGA,aAAH,MAAuB,CAC7D12B,KAAM2O,GACNC,QAAS,CACP8nB,kBAISmB,GAA2B,SAAC,GAAD,IAAGp4B,EAAH,EAAGA,MAAH,MAAgB,CACtDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCRJmzB,GAAoB,SAAC,GAS3B,IARL/T,EAQI,EARJA,WACA3H,EAOI,EAPJA,SACAD,EAMI,EANJA,QACAsC,EAKI,EALJA,OACAwQ,EAII,EAJJA,YACAxV,EAGI,EAHJA,KACAsE,EAEI,EAFJA,UACAgR,EACI,EADJA,IAEA,MAAO,CACL/uB,KAAM2O,GACNC,QAAS,CACPmV,aACA3H,WACAD,UACAsC,SACAwQ,cACAxV,OACAsE,YACAgR,SC7BOgJ,GAAgB,WAC3B,MAAO,CACL/3B,KAAM2O,KCKGqpB,GAAmB,SAAC,GAAD,IAAG9S,EAAH,EAAGA,IAAH,MAAc,CAC5CllB,KAAM2O,GACNC,QAAS,CACPsW,SAIS+S,GAAmB,SAAC,GAAD,IAAGx4B,EAAH,EAAGA,MAAH,MAAgB,CAC9CO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,WCVJuzB,GAA2B,SAAC,GAAD,IAAGC,EAAH,EAAGA,kBAAH,MAA4B,CAClEn4B,KAAM2O,GACNC,QAAS,CACPupB,uBAISC,GAA2B,SAAC,GAAD,IAAG34B,EAAH,EAAGA,MAAH,MAAgB,CACtDO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,W,yCCVJ0zB,GAAoB,SAAC,GAAD,IAAGC,EAAH,EAAGA,cAAH,MAAwB,CACrDt4B,KAAM2O,GACNC,QAAS,CACL0pB,mBAIKC,GAAoB,SAAC,GAAD,IAAG94B,EAAH,EAAGA,MAAH,MAAgB,CAC7CO,KAAM2O,GACNC,QAAS,CACLnP,MAAOA,EAAMkF,WCjBR6zB,GAAkB/oB,aAAW,SAACpI,GAAD,MAAY,CACpDqR,KAAM,CACJ7I,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACP7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAET,SAAU,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,cCuDAlM,gBANS,SAAChB,GAAD,MAAY,CAClCuiB,IAAKviB,EAAMwiB,iBAAiBD,IAC5BE,WAAYziB,EAAMwiB,iBAAiBnhB,YAEV,SAACI,GAAD,MAAe,KAE3BT,EAtEI,SAAC,GAAyB,IAAvBuhB,EAAsB,EAAtBA,IAAKE,EAAiB,EAAjBA,WACnB1T,EAAU8mB,KAChB,OACE,gCACE,sBAAK7kB,UAAWjC,EAAQgH,KAAxB,UACE,2CACC0M,EACC,cAAC3N,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACIkd,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAK1S,YAFV,cAACiF,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,0CACC0M,EACC,cAAC3N,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACIkd,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAKuT,WAFV,cAAChhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,0CACC0M,EACC,cAAC3N,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACIkd,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAKY,WAFV,cAACrO,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,4CACC0M,EACC,cAAC3N,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACIkd,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAKa,aAFV,cAACtO,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,iBCxDnC0wB,GAA0BjpB,aAAW,SAACpI,GAAD,MAAY,CAC5DqR,KAAM,CACJ7I,QAAS,OACTyD,IAAK,MACLvD,WAAY,SACZD,eAAgB,gBAChB+G,KAAM,EACN,QAAS,CACP7B,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACVnO,MAAO,WAET,SAAU,CACRgT,OAAQ,EACR9M,QAAS,QACTiI,SAAU,MACV2G,WAAY,OACZjH,QAAS,cCgHAlM,gBANS,SAAChB,GAAD,MAAY,CAClCg2B,sBAAuBh2B,EAAMi2B,yBAAyBT,kBACtDU,yBAA0Bl2B,EAAMi2B,yBAAyB50B,YAEhC,SAACI,GAAD,MAAe,KAE3BT,EA9HW,SAAC,GAAyD,IAAvDg1B,EAAsD,EAAtDA,sBAAuBE,EAA+B,EAA/BA,yBAC5CnnB,EAAUgnB,KAChB,OACE,gCACE,sBAAK/kB,UAAWjC,EAAQgH,KAAxB,UACE,2CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAuBnmB,YAF5B,cAACiF,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,6CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,6BAA4C,QAAlB,OAArBA,QAAqB,IAArBA,OAAA,EAAAA,EAAuBG,aAAuB1b,GAAc,OAACub,QAAD,IAACA,OAAD,EAACA,EAAuBG,aAAa,OAFtG,cAACrhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,kDACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAuBI,mBAF5B,cAACthB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,8CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAuBK,eAF5B,cAACvhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,0CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAwB,cAF7B,cAAClhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,0CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAwB,cAF7B,cAAClhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,8CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAuBM,eAF5B,cAACxhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,WAO1C,sBAAK2L,UAAWjC,EAAQgH,KAAxB,UACE,8CACCmgB,EACC,cAACphB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,MAElC,mCACI2wB,EAGA,oCAAKA,QAAL,IAAKA,OAAL,EAAKA,EAAuBO,eAF5B,cAACzhB,GAAA,EAAD,CAAUC,UAAU,OAAO1P,MAAO,iBCgRhD,I,iCA4CerE,gBA5CS,SAAChB,GAAD,MAAY,CAChCoB,YAAapB,EAAMkB,YAAYG,QAC/BmT,UAAWxU,EAAMyU,iBAAiBC,UAClCzT,SAAUjB,EAAMkB,YAAYC,KAC5BiT,YAAapU,EAAMqU,mBAAmBC,YACtC/N,eAAgBvG,EAAMqU,mBAAmBhT,QACzCm1B,WAAYx2B,EAAMy2B,kBAAkBd,kBAGb,SAACl0B,GAAD,MAAe,CACtCyM,WAAY,gBAAGnC,EAAH,EAAGA,YAAH,OACRtK,EAASqK,GAAiB,CAAEC,kBAChC1F,QAAS,gBAAGgG,EAAH,EAAGA,cAAH,OACL5K,EAAS+K,GAAoB,CAAEH,oBACnCiI,YAAa,gBAAGjI,EAAH,EAAGA,cAAH,OACT5K,EjBhZ+B,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CAC7DhP,KAAM2O,GACNC,QAAS,CACPI,kBiB6YaqqB,CAAwB,CAAErqB,oBACvCqI,UAAW,gBAAGrI,EAAH,EAAGA,cAAH,OACP5K,EhBlZ6B,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CAC3DhP,KAAM2O,GACNC,QAAS,CACPI,kBgB+YasqB,CAAsB,CAAEtqB,oBACrC6c,OAAQ,gBAAG7c,EAAH,EAAGA,cAAH,OACJ5K,EfpZ0B,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CACxDhP,KAAM2O,GACNC,QAAS,CACPI,kBeiZauqB,CAAmB,CAAEvqB,oBAClCgW,IAAK,gBAAGhW,EAAH,EAAGA,cAAH,OAAuB5K,EdrZD,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CACrDhP,KAAM2O,GACNC,QAAS,CACPI,kBckZqCwqB,CAAgB,CAAExqB,oBACvD+Y,aAAc,gBAAG/Y,EAAH,EAAGA,cAAH,OACV5K,EbvZgC,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CAC9DhP,KAAM2O,GACNC,QAAS,CACPI,kBaoZayqB,CAAyB,CAAEzqB,oBACxCkb,OAAQ,gBAAGlb,EAAH,EAAGA,cAAH,OACJ5K,EZzZ0B,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CACxDhP,KAAM2O,GACNC,QAAS,CACPI,kBYsZa0qB,CAAmB,CAAE1qB,oBAClCsZ,UAAW,gBAAGtZ,EAAH,EAAGA,cAAH,OACP5K,EX3Z6B,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CAC3DhP,KAAM2O,GACNC,QAAS,CACPI,kBWwZa2qB,CAAsB,CAAE3qB,oBACrCwnB,SAAU,gBAAGxnB,EAAH,EAAGA,cAAH,OACN5K,EV7ZgC,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CAC9DhP,KAAM2O,GACNC,QAAS,CACPI,kBU0Za4qB,CAAyB,CAAE5qB,oBACxC7F,UAAW,gBAAG6F,EAAH,EAAGA,cAAH,OACP5K,EAAS2K,GAAsB,CAAEC,oBACrC6qB,cAAe,gBAAGnrB,EAAH,EAAGA,YAAH,OACXtK,ETjayB,SAAC,GAAqB,IAAnBsK,EAAkB,EAAlBA,YAClC,MAAO,CACL1O,KAAM2O,GACNC,QAAS,CACPF,gBS6ZWorB,CAAkB,CAAEprB,kBACjCqrB,qBAAsB,gBAAGC,EAAH,EAAGA,kBAAH,OAClB51B,ELnayB,SAAC,GAAD,IAAG41B,EAAH,EAAGA,kBAAH,MAA4B,CACzDh6B,KAAM2O,GACNC,QAAS,CACLorB,sBKgaSC,CAAkB,CAAED,wBACjCE,WAAY,gBAAGlrB,EAAH,EAAGA,cAAH,OACR5K,EPrawB,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CACtDhP,KAAM2O,GACNC,QAAS,CACPI,kBOkaamrB,CAAiB,CAAEnrB,oBAChCorB,qBAAsB,gBAAGprB,EAAH,EAAGA,cAAH,OAClB5K,ENvagC,SAAC,GAAD,IAAG4K,EAAH,EAAGA,cAAH,MAAwB,CAC9DhP,KAAM2O,GACNC,QAAS,CACPI,kBMoaaqrB,CAAyB,CAAErrB,oBACxCsrB,OAAQ,WACJl2B,EAAS2zB,UAIFp0B,EA1Xf,YAOG,EANCI,YAMD,EALCH,SAKD,EAJCmT,YAID,EAHC7N,eAGA,IAAD,kBAFCoxB,EAED,EAFCA,OACG35B,EACJ,kFACO+Q,EAAUgD,KADjB,EAEiCnQ,mBAAS,GAF1C,mBAEQg2B,EAFR,KAEkBC,EAFlB,OAGyCj2B,mBAAS,IAAItB,MAHtD,mBAGQw3B,EAHR,KAGsBC,EAHtB,OAImCn2B,oBAAS,GAJ5C,mBAIQo2B,EAJR,KAImBC,EAJnB,OAKuCr2B,mBAAS,IALhD,mBAKQs2B,EALR,KAKqBC,EALrB,KAOKC,EAAaR,EACb7d,EpDdoB,SAACA,GAC3B,IAAIlL,EAAO,IAAIvO,KAAKyZ,GAClBC,GAAQ,KAAOnL,EAAKoL,WAAa,IAAIC,OAAO,GAC5CK,GAAO,IAAM1L,EAAKiL,WAAWI,OAAO,GACtC,MAAO,CAACrL,EAAKsL,cAAeH,EAAMO,GAAKH,KAAK,KoDU9Bie,CAAaP,GAEnBQ,EAAgB,CAClB,CAAEj6B,OAAQ,eAAgBf,MAAO,cAAC,GAAD,KACjC,CAAEe,OAAQ,MAAOf,MAAO,cAAC,GAAD,KACxB,CAAEe,OAAQ,MAAOf,MAAO,cAAC,GAAD,KACxB,CAAEe,OAAQ,sBAAuBf,MAAO,cAAC,GAAD,KACxC,CAAEe,OAAQ,wBAAyBf,MAAO,cAAC,GAAD,KAC1C,CAAEe,OAAQ,UAAWf,MAAO,cAAC,GAAD,KAC5B,CAAEe,OAAQ,gBAAiBf,MAAO,cAAC,GAAD,MAGhCi7B,EAAwB,CAC1B,CAAEl6B,OAAQ,wBAAyBf,MAAO,cAAC,GAAD,KAC1C,CAAEe,OAAQ,qBAAsBf,MAAO,cAAC,GAAD,KACvC,CAAEe,OAAQ,mBAAoBf,MAAO,cAAC,GAAD,KACrC,CAAEe,OAAQ,wBAAyBf,MAAO,cAAC,GAAD,MAsE9C,OACI,sBAAK0T,UAAWjC,EAAQmD,KAAxB,UACI,sBAAKlB,UAAWjC,EAAQwD,OAAxB,UACI,oBAAInT,MAAO,CAAEC,MAAO,WAApB,sCACA,sBACID,MAAO,CACH8N,QAAS,OACTyD,IAAK,MACLvD,WAAY,UAJpB,UAOI,uBACI/P,KAAK,SACLiU,YAAY,eACZhU,MAAO46B,EACP94B,MAAO,CACHiG,MAAO,QACPM,OAAQ,OACRJ,QAAS,OAEbizB,UAAW,GACXj7B,SAnCM,SAACb,GACvB,IAAM+7B,EAAQ/7B,EAAEe,OAAOH,MACnBm7B,EAAMhzB,QAAU,IAChB0yB,EAAeM,MAkCP,wBACIznB,UAAWjC,EAAQyE,YACnBjC,QAhCE,WAClB,IAAI8lB,EAAoB,CACpBtU,MAAOmV,GAEXl6B,EAAMo5B,qBAAqB,CAAEC,uBA0BjB,yBAMA,cAAC,KAAD,CACIqB,cAAe,CACX7oB,UAAW,IAEf8oB,SAAU,SAAC75B,GAEP,MADe,IAGnB85B,SAAU,SAAC95B,EAAD,GAAgC,IAArB+5B,EAAoB,EAApBA,cACXjB,EAAa94B,EAAb84B,SAEN,GADAC,EAAYD,QACK71B,IAAb61B,GAAuC,KAAbA,EAAiB,CAC3C,IAAIvrB,EAAgB,CAChBwD,UAAW+nB,GAEfK,GAAa,GAEbj6B,EAAMqI,QAAQ,CAAEgG,kBAChBrO,EAAMsW,YAAY,CAAEjI,kBACpBrO,EAAM0W,UAAU,CAAErI,kBAClBrO,EAAMkrB,OAAO,CAAE7c,kBACfrO,EAAMqkB,IAAI,CAAEhW,kBACZrO,EAAMonB,aAAa,CAAE/Y,kBACrBrO,EAAMupB,OAAO,CAAElb,kBACfrO,EAAM2nB,UAAU,CAAEtZ,kBAClBrO,EAAM61B,SAAS,CAAExnB,kBACjBrO,EAAMwI,UAAU,CAAE6F,kBAClBrO,EAAMu5B,WAAW,CAAElrB,kBACnBrO,EAAMy5B,qBAAqB,CAAEprB,kBAC7BwsB,GAAc,KA7B1B,SAiCK,cAAG/5B,OAAH,EAAW3C,OAAX,EAAmB28B,QAAnB,EAA4BC,aAA5B,OACG,cAAC,KAAD,UACI,8BACI,cAAC,KAAD,CACI38B,KAAK,WACLgB,GAAG,YACHH,MAAM,YACNW,WAAY,GACZP,KAAK,SACL2Y,UAAWla,WAM/B,sBACIk9B,YAAU,EACV55B,MAAO,CACH8N,QAAS,OACTE,WAAY,WACZD,eAAgB,gBAChB9H,MAAO,MACPhG,MAAO,QAPf,SAUI,cAAC45B,GAAA,EAAD,CACI77B,GAAG,OACHC,KAAK,OACLC,MAAOw6B,EACP9mB,UAAWjC,EAAQmqB,UACnBC,gBAAiB,CACbC,QAAQ,GAEZ77B,SAlKH,SAACb,GAClBq7B,EAAgBr7B,EAAEe,OAAOH,OACzB,IAAI+7B,EAAa38B,EAAEe,OAAOH,MAC1B,GAAiB,IAAbs6B,QAA+B71B,IAAb61B,EAAwB,CAC1C,IAAI7rB,EAAc,CACd8D,UAAW+nB,EACX/oB,KAAMwqB,GAEVr7B,EAAMkQ,WAAW,CAAEnC,gBACnB/N,EAAMk5B,cAAc,CAAEnrB,yBA6JlB,wBACIiF,UAAWjC,EAAQyE,YACnBjC,QA3JQ,WACpB0mB,GAAa,SAACqB,GACV,IAAKA,GAAqB,IAAb1B,QAA+B71B,IAAb61B,EAAwB,CACnD,IAAI7rB,EAAc,CACd8D,UAAW+nB,EACX/oB,KAAMkL,GAEV/b,EAAMk5B,cAAc,CAAEnrB,gBACtB/N,EAAMkQ,WAAW,CAAEnC,gBAEvB,OAAQutB,MA+IJ,SAIMtB,EAGE,mCACI,qDAHJ,qDAOR,qBAAKzmB,QAAS,kBAAMomB,KAApB,SACI,cAAC4B,GAAA,EAAD,CAASC,MAAM,SAAf,SACI,cAACC,GAAA,EAAD,UACI,cAAC,KAAD,aAKfz7B,EAAMw4B,aAAN,UACDx4B,EAAMw4B,kBADL,aACD,EAAkBh0B,UAClB,UAAAxE,EAAMw4B,kBAAN,mBAAkB5zB,YAAlB,mBAAwB82B,kBAAxB,eAAoCj0B,QAAS,EACzC,qBAAKuL,UAAWjC,EAAQoD,aAAxB,SACI,sBAAKnB,UAAWjC,EAAQ2D,YAAxB,UACI,6CAAoB,IADxB,UAEK1U,EAAMw4B,kBAFX,iBAEK,EAAkB5zB,YAFvB,iBAEK,EAAwB82B,kBAF7B,aAEK,EAAoCtf,KAAK,WAIlDpc,EAAMw4B,aAAN,UACAx4B,EAAMw4B,kBADN,aACA,EAAkBh0B,SACd,qBAAKwO,UAAWjC,EAAQoD,aAAxB,SACI,qBAAKnB,UAAWjC,EAAQ2D,YAAxB,SACI,sFAQf1U,EAAMw4B,aAAex4B,EAAMw4B,WAAWh0B,QACnC,qBAAKwO,UAAWjC,EAAQoD,aAAxB,SACI,qBAAKnB,UAAWjC,EAAQ2D,YAAxB,mBACK1U,EAAMw4B,kBADX,aACK,EAAkBx0B,YAIjB,IAAb41B,QAA+B71B,IAAb61B,GAAuC,KAAbA,EACzC,qBAAK5mB,UAAWjC,EAAQyD,iBAAxB,SACI,oBAAIxB,UAAWjC,EAAQ0D,eAAvB,iCAKJ,qCACKulB,GACG,sBAAKhnB,UAAWjC,EAAQoD,aAAxB,UACI,qBAAKnB,UAAWjC,EAAQhQ,IAAxB,SACI,cAAC46B,GAAD,MAEJ,qBAAKv6B,MAAO,CAAEiG,MAAO,OAAQgN,OAAQ,OAArC,SACI,cAAC,GAAD,CAAWqU,OAAQ0R,MAEvB,qBAAKh5B,MAAO,CAAEiG,MAAO,OAAQgN,OAAQ,OAArC,SACI,cAAC,GAAD,CAAcqU,OAAQ0R,SAIlC,sBAAKpnB,UAAWjC,EAAQoD,aAAxB,UACI,qBAAKnB,UAAWjC,EAAQ6D,OAAxB,SACI,cAAC,GAAD,MAEJ,qBAAK5B,UAAWjC,EAAQ+D,OAAxB,SACKwlB,EAAcv5B,KAAI,SAAC8W,EAAMC,GAAP,OACf,qBAAiB1W,MAAO,CAAEiT,OAAQ,OAAlC,SACI,cAAC,EAAD,CACIhU,OAAQwX,EAAKxX,OACbf,MAAOuY,EAAKvY,SAHVwY,WAStB,qBAAK9E,UAAWjC,EAAQoD,aAAxB,SACI,qBAAKnB,UAAWjC,EAAQuE,UAAxB,SACI,eAACrV,EAAA,EAAD,WACI,cAACC,EAAA,EAAD,CACIC,WAAY,cAAC,IAAD,IADhB,SAGI,cAACC,EAAA,EAAD,CAAY4S,UAAWjC,EAAQ6qB,QAA/B,kCAIJ,cAACt7B,EAAA,EAAD,UACI,qBACI0S,UACIjC,EAAQ0E,2BAFhB,SAKK8kB,EAAsBx5B,KACnB,SAAC8W,EAAMC,GAAP,OACI,cAAC,EAAD,CAEIzX,OAAQwX,EAAKxX,OACbf,MAAOuY,EAAKvY,OAFPwY,iBAWrC,qBAAK9E,UAAWjC,EAAQoD,aAAxB,SACI,qBAAKnB,UAAWjC,EAAQqE,OAAxB,SACI,cAAC,EAAD,CACI/U,OAAQ,UACRf,MAAO,cAAC,GAAD,UAInB,qBAAK0T,UAAWjC,EAAQ2E,MAAOnC,QAtQ3B,WAChB,IAAIxF,EAAc,CACd8D,UAAW+nB,EACX/oB,KAAMkL,GAEV,QAAiBhY,IAAb61B,GAAuC,KAAbA,EAAiB,CAC3C,IAAIvrB,EAAgB,CAChBwD,UAAW+nB,GAEf55B,EAAMk5B,cAAc,CAAEnrB,gBACtB/N,EAAMkQ,WAAW,CAAEnC,gBACnB/N,EAAMqI,QAAQ,CAAEgG,kBAChBrO,EAAMsW,YAAY,CAAEjI,kBACpBrO,EAAM0W,UAAU,CAAErI,kBAClBrO,EAAMkrB,OAAO,CAAE7c,kBACfrO,EAAMqkB,IAAI,CAAEhW,kBACZrO,EAAMonB,aAAa,CAAE/Y,kBACrBrO,EAAMupB,OAAO,CAAElb,kBACfrO,EAAM2nB,UAAU,CAAEtZ,kBAClBrO,EAAM61B,SAAS,CAAExnB,kBACjBrO,EAAMwI,UAAU,CAAE6F,kBAClBrO,EAAMu5B,WAAW,CAAElrB,kBACnBrO,EAAMy5B,qBAAqB,CAAEprB,oBAgPrB,SACI,oBAAIjN,MAAO,CAAEmG,QAAS,QAAtB,SACI,cAAC,KAAD,iB,sCCtXtBs0B,GAAmBC,sBACvB,WAAqC38B,GAArC,IAAG6T,EAAH,EAAGA,UAAWiC,EAAd,EAAcA,UAAcjV,EAA5B,gDACE,iCACEgT,UAAWA,EACX7T,IAAKA,EACLiC,MAAO,CAAE6T,UAAWA,IAChBjV,OAcJ+7B,IATYC,aAAOH,GAAPG,CAAH,6HAKC,SAACh8B,GAAD,OAAWA,EAAMiV,aAIb6mB,sBAAW,WAAgC38B,GAAhC,IAAG6T,EAAH,EAAGA,UAAoBhT,GAAvB,EAAckW,KAAd,4CAC7B,iCAAK/W,IAAKA,EAAK6T,UAAWA,GAAehT,QAGrCi8B,GAAUC,aAAH,6CACH,SAACl8B,GAAD,OAAWA,EAAMkW,QAGrBimB,GAASD,aAAH,2EAEQ,SAACl8B,GAAD,OAAWA,EAAM2S,OAI/BypB,GAAYF,aAAH,2EAED,SAACl8B,GAAD,OAAWA,EAAM2S,OAIzB0pB,GAAOL,aAAOD,GAAPC,CAAH,+JAEU,SAACh8B,GAAD,uBAAWA,EAAMs8B,iBAAjB,QAA8B,SACjC,SAACt8B,GAAD,uBAAWA,EAAMoqB,aAAjB,QAA0B,YACtB,SAACpqB,GAAD,uBAAWA,EAAMu8B,eAAjB,QAA4B,mBACrC,SAACv8B,GAAD,OAAWA,EAAM2S,OACzB,SAAC3S,GAAD,OAAWA,EAAMkW,MAAQ+lB,MACzB,gBAAGK,EAAH,EAAGA,UAAW3pB,EAAd,EAAcA,IAAd,OACA2pB,GAAa3pB,GAAqB,WAAd2pB,GAA0BF,MAC9C,gBAAGE,EAAH,EAAGA,UAAW3pB,EAAd,EAAcA,IAAd,OACA2pB,GAAc3pB,GAAqB,WAAd2pB,GAA0BH,MCtDpC,IDyDGH,KAAOQ,KAAV,wLACJ,SAACx8B,GAAD,uBAAWA,EAAMiE,YAAjB,QAAyB,UACxB,SAACjE,GAAD,uBAAWA,EAAMiE,YAAjB,QAAyB,UAErB,SAACjE,GAAD,OAAWA,EAAM0G,MAAM+1B,OAAO,gBAIjC,SAACz8B,GAAD,OACPA,EAAMiE,KAAOjE,EAAMiE,KAAKtB,MAAM,MAAM,GAAK,GAAK,KAAO,UClE5C,IAA0B,oCCA1B,OAA0B,iCCA1B,OAA0B,0CCEnC+5B,GAAcR,aAAH,yDAUXS,GAAiBX,cANO,SAAC,GAAD,IAAGt6B,EAAH,EAAGA,SAAUsR,EAAb,EAAaA,UAAchT,EAA3B,+CAC5B,6CAAKgT,UAAWA,GAAehT,GAA/B,aACG0B,OAIkBs6B,CAAH,yVAIJ,SAACh8B,GAAD,uBAAWA,EAAMgP,kBAAjB,QAA+B,aAIpC,SAAChP,GAAD,OAAYA,EAAMqH,MAAQrH,EAAMqH,MAAQ,UACvC,SAACrH,GAAD,OAAYA,EAAM2H,OAAS3H,EAAM2H,OAAS,UACnC,SAAC3H,GAAD,OAAYA,EAAMlB,MAAQ,IAAM,SACvC,SAACkB,GAAD,MACS,SAAjBA,EAAMyP,OAAoB,OAAS,uBACnC,SAACzP,GAAD,OAAWA,EAAMlB,OAAS49B,MAaxBE,GAAYZ,cANO,SAAC,GAAD,IAAGhpB,EAAH,EAAGA,UAAWtR,EAAd,EAAcA,SAAa1B,EAA3B,+CACvB,8CAAMgT,UAAWA,GAAehT,GAAhC,aACG0B,OAIas6B,CAAH,sFAWTa,GAAeb,cAJO,SAAC,GAAD,IAAGhpB,EAAH,EAAGA,UAAchT,EAAjB,oCAC1B,mCAAOgT,UAAWA,GAAehT,MAGdg8B,CAAH,yLAQP,SAACh8B,GAAD,uBAAWA,EAAMqH,aAAjB,QAA0B,WACzB,SAACrH,GAAD,MACe,UAAvBA,EAAM88B,aAA2B,YAAc,eAO7CC,GAAaf,cAJO,SAAC,GAAD,IAAGt6B,EAAH,EAAGA,SAAa1B,EAAhB,mCACxB,6CAAOA,GAAP,aAAe0B,OAGEs6B,CAAH,wGAIL,SAACh8B,GAAD,OAAWA,EAAM0G,MAAM+1B,OAAZ,WC9DhBO,GAAQ,SAAC,GAA8D,IAA5DnmB,EAA2D,EAA3DA,KAAMomB,EAAqD,EAArDA,aAAcn+B,EAAuC,EAAvCA,MAAOo+B,EAAgC,EAAhCA,UAAW79B,EAAqB,EAArBA,KAASW,EAAY,kEAC1E,OACE,qCACE,eAAC28B,GAAD,WACG9lB,GAAyB,SAAjBomB,GACP,cAACL,GAAD,UACE,qBACEO,IAAKtmB,GAAc,GACnBumB,IAAI,OACJ7pB,QAAS2pB,QAAwBn5B,MAIvC,cAAC84B,GAAD,aACEx9B,KAAMA,EACNg+B,WAAW,QACXP,aAAcG,GACVj9B,IAGL6W,GAAyB,UAAjBomB,GACP,cAACL,GAAD,UACE,qBACEO,IAAKtmB,GAAc,GACnBumB,IAAI,OACJ7pB,QAAS2pB,QAAwBn5B,EACjC3C,MAAO,CAAEkO,OAAO,GAAD,OAAK4tB,EAAY,UAAY,kBAKnDp+B,GAAS,cAACi+B,GAAD,UAAaj+B,QAK7Bk+B,GAAM/M,aAAe,CACnBgN,aAAc,OACd59B,KAAM,QAGO29B,UCxCFM,GAAsB,SAAC,GAAyB,IAAvB94B,EAAsB,EAAtBA,OAAQR,EAAc,EAAdA,QAC5C,MAAO,CACL3E,KAAM2O,EACNxJ,SACAR,YAISu5B,GAAsB,SAAC,GAAyB,IAAvB/4B,EAAsB,EAAtBA,OAAQR,EAAc,EAAdA,QAC5C,MAAO,CACL3E,KAAM2O,EACNxJ,SACAR,YCnBSw5B,GAAc1uB,aAAW,SAACpI,GAAD,MAAY,CAChD+2B,MAAO,CACLp2B,MAAO,OACPM,OAAQ,QACRqH,WAAY,WAEd0b,KAAM,CACJxU,KAAM,IACNvO,OAAQ,QACR+1B,eAAgB,QAChBC,iBAAkB,YAClBC,mBAAoB,UAEtBC,OAAQ,CACNpuB,OAAQ,OACRC,QAAS,OACTJ,OAAQ,UACRL,aAAc,MACdkH,WAAY,OACZjH,QAAS,OACTE,WAAY,SACZ7H,QAAS,MACTiI,SAAU,MACVnI,MAAO,OACPylB,WAAY,eACZhX,gBAAiB,UACjBzU,MAAO,QACPsR,IAAK,WC2IM3P,gBAZS,SAAChB,GAAD,MAAY,CAClC87B,aAAc97B,EAAM+7B,aAAa16B,QACjC26B,WAAYh8B,EAAM+7B,aAAaC,WAC/BC,aAAcj8B,EAAM+7B,aAAa/5B,YAGR,SAACP,GAAD,MAAe,CACxCg6B,MAAO,YAA0B,IAAvBS,EAAsB,EAAtBA,MAAOC,EAAe,EAAfA,SACf16B,EFlKwB,SAAC,GAAyB,IAAvBy6B,EAAsB,EAAtBA,MAAOC,EAAe,EAAfA,SACpC,MAAO,CACL9+B,KAAM2O,EACNC,QAAS,CAAEiwB,QAAOC,aE+JTC,CAAa,CAAEF,QAAOC,kBAIpBn7B,EArJD,SAAC,GAA0D,IAAD,IAatD,EAbDg7B,EAAuD,EAAvDA,WAAYC,EAA2C,EAA3CA,aAAcH,EAA6B,EAA7BA,aAAiB99B,EAAY,4DAC9DgC,EAAUmP,cAAVnP,MAD8D,EAE5C4B,mBAAS,MAFmC,mBAE/D9E,EAF+D,KAExDu/B,EAFwD,KAIhEttB,EAAUysB,KAShB,OAPAj/B,qBAAU,WACHu/B,GAAiBE,GACpBK,EAASJ,KAGV,CAACD,EAAYF,IAEZE,EACK,cAAC,IAAD,CAAUl8B,GAAE,iBAAEE,QAAF,IAAEA,OAAF,EAAEA,EAAOC,YAAT,QAAiB,MAIpC,cAACo6B,GAAD,CAAMrpB,UAAWjC,EAAQ0sB,MAAzB,SACE,cAAC,KAAD,CACE/C,cAAe,CACbwD,MAAK,UAAEI,aAAaC,QAAQ,aAAvB,QAAgC,GACrCJ,SAAU,GACVK,SAAQ,UAAEC,QAAQH,aAAaC,QAAQ,cAA/B,UAEV5D,SAAU,SAAC75B,GACT,IAAM3C,EAAS,GAMf,MALqB,KAAjB2C,EAAOo9B,MACT//B,EAAO+/B,MAAQ,sBACc,KAApBp9B,EAAOq9B,WAChBhgC,EAAOggC,SAAW,yBAEbhgC,GAETy8B,SAAU,SAAC95B,EAAD,GAAgC,IAArB+5B,EAAoB,EAApBA,cACnBwD,EAAS,MACLv9B,EAAO09B,UACTF,aAAaI,QAAQ,KAAM59B,EAAOo9B,OAClCI,aAAaI,QAAQ,MAAM,KAE3BJ,aAAaK,WAAW,MACxBL,aAAaK,WAAW,OAE1B3+B,EAAMy9B,MAAM,CAAES,MAAOp9B,EAAOo9B,MAAOC,SAAUr9B,EAAOq9B,WACpDtD,GAAc,IAzBlB,SA4BG,gBAAG/5B,EAAH,EAAGA,OAAQ3C,EAAX,EAAWA,OAAQ28B,EAAnB,EAAmBA,QAASC,EAA5B,EAA4BA,aAA5B,OACC,qCACE,cAACsB,GAAD,CAAMnmB,KAAM,EAAGlD,UAAWjC,EAAQ2Z,KAAlC,SACE,qBAAKyS,IAAK9J,GAAO+J,IAAI,GAAG/1B,MAAM,OAAOM,OAAO,WAE9C,cAAC00B,GAAD,CAAMjS,MAAM,SAASmS,QAAQ,SAASrmB,KAAM,EAA5C,SACE,eAACmmB,GAAD,CAAMC,UAAU,SAASlS,MAAM,aAAazX,IAAI,QAAhD,UACE,eAAC0pB,GAAD,CAAMC,UAAU,SAASlS,MAAM,aAAamS,QAAQ,SAApD,UACE,kEACA,2EAEF,cAAC,KAAD,UACE,eAACF,GAAD,CAAMC,UAAU,SAASlS,MAAM,aAAazX,IAAI,MAAhD,UACE,wCACA,eAAC0pB,GAAD,CAAMC,UAAU,SAAhB,UACE,cAAC,GAAD,CACEj9B,KAAK,OACLwX,KAAM+nB,GACNxgC,KAAK,QACLkB,MAAOwB,EAAOo9B,MACd3+B,SAAUw7B,EACVznB,YAAY,WACZxU,MAAOg8B,EAAQoD,OAAS//B,EAAO+/B,QAEjC,cAAC,GAAD,CACE7+B,KAAK,WACLwX,KAAMgoB,GACNv/B,MAAOwB,EAAOq9B,SACd5+B,SAAUw7B,EACV38B,KAAK,WACLkV,YAAY,WACZwrB,aAAa,KACbhgC,MAAOg8B,EAAQqD,UAAYhgC,EAAOggC,WAEnCr/B,GACC,cAACu9B,GAAD,CACEjS,MAAM,SACNmS,QAAQ,aACRn7B,MAAO,CAAEiG,MAAO,QAHlB,SAKE,oBAAG2L,UAAU,aAAb,cAA4BlU,OAGhC,cAACu9B,GAAD,CACEjS,MAAM,SACNmS,QAAQ,gBACRrmB,KAAM,EACN9U,MAAO,CAAEiG,MAAO,QAJlB,SAME,cAAC03B,GAAA,EAAD,CACEC,QACE,cAACC,GAAA,EAAD,CACEC,QAASp+B,EAAO09B,SAChBj/B,SAAUw7B,EACV38B,KAAK,aAGTa,MAAM,qBAIZ,wBACE+T,UAAWjC,EAAQ8sB,OACnBx+B,KAAK,SACL8/B,SAAUrB,EAHZ,SAKGA,EACC,qCACE,8CAEA,cAACt2B,EAAA,EAAD,CACEvD,KAAK,MACL7C,MAAO,CAAEC,MAAO,cAIpB,gEC1GT2B,gBANS,SAAChB,GAAD,MAAY,CAChCg8B,WAAYh8B,EAAM+7B,aAAaC,eAGR,iBAAO,KAEnBh7B,EA5BA,SAAC,GAAoB,IAAlBg7B,EAAiB,EAAjBA,WACd,OACI,mCACI,eAAC,IAAD,WACI,cAAC,IAAD,CAAOoB,OAAK,EAACrN,KAAK,SAAlB,SACI,cAAC,GAAD,MAEJ,cAAC,EAAD,CAAcqN,OAAK,EAACrN,KAAK,IAAIpwB,gBAAiBq8B,EAA9C,SACI,cAAC,GAAD,MAEJ,cAAC,EAAD,CACIoB,OAAK,EACLrN,KAAK,oCACLpwB,gBAAiBq8B,EAHrB,SAKI,cAAC,GAAD,cCbdt3B,GAAQ24B,YAAe,CAC3BC,QAAS,CAEPC,QAAS,CACPC,KAAM,YAERC,UAAW,CACTD,KAAM,WAERE,OAAQ,CACNF,KAAM,WAERG,MAAO,CACLH,KAAM,WAERI,KAAM,CACJJ,KAAM,WAERK,KAAM,CACJL,KAAM,WAERM,WAAY,CACVC,OAAQ,CACNxwB,cAAe,QAEjBywB,WAAY,iCAKZC,GAAYnxB,aAAW,SAACpI,GAAD,MAAY,CACvC84B,KAAM,CACJn4B,MAAO,OACP4N,UAAW,aAgBAirB,GAZH,WACV,IAAMnvB,EAAUkvB,KAChB,OACE,sBAAKjtB,UAAWjC,EAAQyuB,KAAxB,UACE,cAACW,EAAA,EAAD,IACA,cAACC,EAAA,EAAD,CAAe15B,MAAOA,GAAtB,SACE,cAAC,GAAD,U,6BCnDF25B,GAAe,CACnBC,IAAK,KACL97B,OAAQ,MAsBK+7B,GAnBM,WAAmC,IAAlCv+B,EAAiC,uDAAzBq+B,GAAcG,EAAW,uCACrD,OAAQA,EAAOnhC,MACb,KAAK2O,EACH,OAAO,2BACFhM,GADL,IAEEs+B,IAAKE,EAAOvyB,QAAQqyB,IACpB97B,OAAQg8B,EAAOvyB,QAAQzJ,SAE3B,KAAKwJ,EACH,OAAO,2BACFhM,GADL,IAEEs+B,IAAK,KACL97B,OAAQ,OAEZ,QACE,OAAOxC,ICpBPq+B,GAAe,CACnBh9B,SAAS,EACTF,KAAM,KACN4K,YAAa,KACbjP,MAAO,MCJT,IAAMuhC,GAAe,CACjBh9B,SAAS,EACTgF,QAAS,KACTgG,cAAe,KACfvP,MAAO,MCJX,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTiT,YAAa,KACbjI,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTqT,UAAW,KACXrI,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACT6nB,OAAQ,KACR7c,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTghB,IAAK,KACLhW,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACT+jB,aAAc,KACd/Y,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTkmB,OAAQ,KACRlb,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTskB,UAAW,KACXtZ,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACT0yB,aAAc,KACd1nB,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACT+E,eAAgB,KAChBiG,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTyV,KAAM,KACN/K,YAAa,KACbqV,WAAY,KACZ3H,SAAU,KACVD,QAAS,KACTsC,OAAQ,KACRwQ,YAAa,KACblR,UAAW,KACXgR,IAAK,KAELtvB,MAAO,MAsCM2hC,GAnCW,WAAmC,IAAlCz+B,EAAiC,uDAAzBq+B,GAAcG,EAAW,uCAC1D,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT0K,YAAayyB,EAAOvyB,QAAQF,cAEhC,KAAKC,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTyV,KAAM0nB,EAAOvyB,QAAQ6K,KACrBsE,UAAWojB,EAAOvyB,QAAQmP,UAC1BgR,IAAKoS,EAAOvyB,QAAQmgB,IAEpBhL,WAAYod,EAAOvyB,QAAQmV,WAC3B3H,SAAU+kB,EAAOvyB,QAAQwN,SACzBD,QAASglB,EAAOvyB,QAAQuN,QACxBsC,OAAQ0iB,EAAOvyB,QAAQ6P,OACvBwQ,YAAakS,EAAOvyB,QAAQqgB,cAEhC,KAAKtgB,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT0K,YAAa,KACbqV,WAAY,KACZtkB,MAAO0hC,EAAOvyB,QAAQnP,QAE1B,QACE,OAAOkD,IC9CPq+B,GAAe,CACjBh9B,SAAS,EACT26B,YAAY,EACZx5B,QAAQ,EACRR,QAAS,KACTlF,MAAO,ICLX,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTG,cAAe,KACf4M,cAAe,KACftR,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTkN,uBAAwB,KACxBV,mBAAoB,KACpB/Q,MAAO,MCJT,IAAMuhC,GAAe,CACjBh9B,SAAS,EACTinB,UAAW,KACXla,cAAe,KACftR,MAAO,MCJX,IAAMuhC,GAAe,CACjBh9B,SAAS,EACTs0B,cAAe,KACf0B,kBAAmB,KACnBv6B,MAAO,MCJX,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTkhB,IAAK,KACLlW,cAAe,KACfvP,MAAO,MCJT,IAAMuhC,GAAe,CACnBh9B,SAAS,EACTm0B,kBAAmB,KACnBnpB,cAAe,KACfvP,MAAO,M,wBCmBH4hC,GAAgB,CAClBzM,IAAK,OACL0M,Q,QAASA,EACTC,UAAW,CACP,cACA,iBACA,qBACA,mBACA,qBACA,gBACA,aACA,sBACA,kBACA,mBACA,cACA,oBACA,yBACA,mBACA,2BACA,sBAIFC,GAAcC,2BAAgB,CAChCP,gBACAr9B,YnBzCW,WAAyD,IAA/BlB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACrE,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT0K,YAAayyB,EAAOvyB,QAAQF,cAGhC,KAAKC,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTF,KAAMq9B,EAAOvyB,QAAQ9K,OAGzB,KAAK6K,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTF,KAAM,KACN4K,YAAa,KACbjP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,ImBgBTsG,elB1CW,WAA4D,IAA/BtG,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACtE,OAAQA,EAAOnhC,MACX,KAAK2O,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGtC,KAAKL,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTgF,QAASm4B,EAAOvyB,QAAQ5F,UAGhC,KAAK2F,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTgF,QAAS,KACTgG,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG9B,QACI,OAAOkD,IkBiBfqU,mBjB3CW,WAAgE,IAA/BrU,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC5E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTiT,YAAakqB,EAAOvyB,QAAQqI,cAGhC,KAAKtI,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTiT,YAAa,KACbjI,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IiBkBTyU,iBhB5CW,WAA8D,IAA/BzU,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC1E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTqT,UAAW8pB,EAAOvyB,QAAQyI,YAG9B,KAAK1I,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTqT,UAAW,KACXrI,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IgBmBTqpB,cf7CW,WAA2D,IAA/BrpB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACvE,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT6nB,OAAQsV,EAAOvyB,QAAQid,SAG3B,KAAKld,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT6nB,OAAQ,KACR7c,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IeoBToiB,Wd9CW,WAAwD,IAA/BpiB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACpE,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTghB,IAAKmc,EAAOvyB,QAAQoW,MAGxB,KAAKrW,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTghB,IAAK,KACLhW,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IcqBTmlB,oBb/CW,WAAiE,IAA/BnlB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC7E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT+jB,aAAcoZ,EAAOvyB,QAAQmZ,eAGjC,KAAKpZ,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT+jB,aAAc,KACd/Y,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IasBTsnB,cZhDW,WAA2D,IAA/BtnB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACvE,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkmB,OAAQiX,EAAOvyB,QAAQsb,SAG3B,KAAKvb,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkmB,OAAQ,KACRlb,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IYuBT0lB,iBXjDW,WAA8D,IAA/B1lB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC1E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTskB,UAAW6Y,EAAOvyB,QAAQ0Z,YAG9B,KAAK3Z,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTskB,UAAW,KACXtZ,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IWwBT8zB,gBVlDW,WAAiE,IAA/B9zB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC7E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT0yB,aAAcyK,EAAOvyB,QAAQ8nB,eAGjC,KAAK/nB,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT0yB,aAAc,KACd1nB,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IUyBTmG,iBTnDW,WAGZ,IAFDnG,EAEA,uDAFQq+B,GACRG,EACA,uCACA,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT+E,eAAgBo4B,EAAOvyB,QAAQ7F,iBAGnC,KAAK4F,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT+E,eAAgB,KAChBiG,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,ISuBTmsB,YAAasS,GACbl9B,kBNrDW,WAA+D,IAA/BvB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC3E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACT+M,cAAeowB,EAAOvyB,QAAQmC,gBAGlC,KAAKpC,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTG,cAAeg9B,EAAOvyB,QAAQzK,gBAGlC,KAAKwK,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTG,cAAe,KACf4M,cAAe,KACftR,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IM4BTgO,uBLtDW,WAA+D,IAA/BhO,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC3E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkN,uBAAwBiwB,EAAOvyB,QAAQsC,yBAG3C,KAAKvC,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTwM,mBAAoB2wB,EAAOvyB,QAAQ4B,qBAGvC,KAAK7B,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkN,uBAAwB,KACxBV,mBAAoB,KACpB/Q,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,KAAKkP,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkN,uBAAwB,KACxBV,mBAAoB,KACpB/Q,MAAO,OAGX,QACE,OAAOkD,IKoBTmpB,sBJvDW,WAA8D,IAA/BnpB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACxE,OAAQA,EAAOnhC,MACX,KAAK2O,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACT+M,cAAeowB,EAAOvyB,QAAQmC,gBAGtC,KAAKpC,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTinB,UAAWkW,EAAOvyB,QAAQqc,YAGlC,KAAKtc,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTinB,UAAW,KACXla,cAAe,KACftR,MAAO0hC,EAAOvyB,QAAQnP,QAG9B,QACI,OAAOkD,II8Bfy2B,kBHxDW,WAA0D,IAA/Bz2B,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACpE,OAAQA,EAAOnhC,MACX,KAAK2O,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTg2B,kBAAmBmH,EAAOvyB,QAAQorB,oBAG1C,KAAKrrB,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTs0B,cAAe6I,EAAOvyB,QAAQ0pB,gBAGtC,KAAK3pB,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTs0B,cAAe,KACf0B,kBAAmB,KACnBv6B,MAAO0hC,EAAOvyB,QAAQnP,QAG9B,QACI,OAAOkD,IG+BfwiB,iBFzDW,WAAyD,IAA/BxiB,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCACrE,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkhB,IAAKic,EAAOvyB,QAAQsW,MAGxB,KAAKvW,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTkhB,IAAK,KACLlW,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,IEgCTi2B,yBD1DW,WAAiE,IAA/Bj2B,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC7E,OAAQA,EAAOnhC,MACb,KAAK2O,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTgL,cAAemyB,EAAOvyB,QAAQI,gBAGlC,KAAKL,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTm0B,kBAAmBgJ,EAAOvyB,QAAQupB,oBAGtC,KAAKxpB,GACH,OAAO,2BACFhM,GADL,IAEEqB,SAAS,EACTm0B,kBAAmB,KACnBnpB,cAAe,KACfvP,MAAO0hC,EAAOvyB,QAAQnP,QAG1B,QACE,OAAOkD,ICiCT+7B,aP1DW,WAAqD,IAA/B/7B,EAA8B,uDAAtBq+B,GAAcG,EAAQ,uCAC/D,OAAQA,EAAOnhC,MACX,KAAK2O,EACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTvE,MAAO,KAEf,KAAKkP,EAED,OADA+yB,eAAerC,QAAQ,YAAY,GAC5B,2BACA18B,GADP,IAEIqB,SAAS,EACT26B,YAAY,EACZx5B,OAAQg8B,EAAOh8B,OACfR,QAASw8B,EAAOx8B,QAChBlF,MAAO,KAEf,KAAKkP,EAED,OADA+yB,eAAepC,WAAW,YACnB,2BACA38B,GADP,IAEIqB,SAAS,EACT26B,YAAY,EACZx5B,OAAQg8B,EAAOh8B,OACfR,QAASw8B,EAAOx8B,QAChBg9B,KAAM,OAEd,KAAKhzB,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,IAEjB,KAAK2K,GAID,OAHA+yB,eAAepC,WAAW,YAC1BL,aAAaK,WAAW,gBACxBL,aAAaK,WAAW,iBACjB,2BACA38B,GADP,IAEIqB,SAAS,EACT26B,YAAY,EACZx5B,OAAQ,KACR1F,MAAO,GACPkF,QAAS,OAEjB,KAAKgK,GACD,OAAO,2BACAhM,GADP,IAEIqB,SAAS,EACTvE,MAAO0hC,EAAO1hC,QAEtB,QACI,OAAOkD,MOSJi/B,gBAAeP,GAAeG,I,QCrEhCK,GAAe,SAAC,GAAqB,IAAnBZ,EAAkB,EAAlBA,IAAK97B,EAAa,EAAbA,OAClC,MAAO,CACLnF,KAAM2O,EACNC,QAAS,CAAEqyB,MAAK97B,YAIP28B,GAAc,WACzB,MAAO,CACL9hC,KAAM2O,I,qBCXGozB,GACF,uBADEA,GAEF,wBAFEA,GAGO,0BAHPA,GAIY,2BAJZA,GAKF,yBALEA,GAMM,6BANNA,GAOJ,uBAPIA,GAQK,4BARLA,GASA,uBATAA,GAUW,kCAVXA,GAWC,uBAXDA,GAYE,uBAZFA,GAaa,+BAbbA,GAcK,qBAdLA,GAeI,iCAfJA,GAgBS,wBAhBTA,GAiBI,+BAjBJA,GAkBJ,0BAlBIA,GAmBW,kCAGXC,GAAe,CACxBC,UACMC,2CAENC,SACMD,2CAENE,UAAWF,4PAAYG,gBACjBH,4PAAYG,gBACZ,8CCxBJC,GAAkB,CACpB,YAAa,UACb,cAAe,OACfC,SAAU,WAGRC,GAAgBC,KAAMC,OAAO,CAC/BC,QAASX,GAAaG,SACtBS,QAAQ,eACDN,MAIXE,GAAcK,aAAaC,QAAQC,KAC/B,SAACC,GACG,IAAMC,EAAQhE,aAAaC,QAAQ,gBAInC,OAHI+D,IACAD,EAAOJ,QAAQ,aAAf,iBAAwCK,IAErCD,KAEX,SAACvjC,GACG,OAAOyjC,QAAQ9uB,OAAO3U,MAI9B+iC,GAAcK,aAAaM,SAASJ,KAChC,SAACI,GAAD,OAAcA,IADlB,iCAAA9f,EAAA,MAEI,WAAO5jB,GAAP,gBAAA4jB,EAAA,0DACQ5jB,EAAM0jC,UAAsC,MAA1B1jC,EAAM0jC,SAASh+B,OADzC,0CAGoCi+B,KAHpC,yCAKsBC,EAAkB5jC,EAAMujC,QACdJ,QACZ,aADJ,iBAEc3D,aAAaC,QAAQ,iBARnD,kBASuBsD,GAAca,IATrC,kFAeU5jC,EAfV,0DAFJ,uDAqBO,IAAM6jC,GAAS,yCAAG,oCAAAjgB,EAAA,6DAASwb,EAAT,EAASA,MAAOC,EAAhB,EAAgBA,SAAhB,kBAEM2D,KAAM,CACzBc,OAAQ,OACRtP,IAAI,GAAD,OAAK+N,GAAaC,WAAlB,OAA8BF,IACjCx8B,KAAMi+B,KAAKC,UAAU,CAAE5wB,QAASgsB,EAAO6E,SAAU5E,IACjD8D,QAAS,CACL,eAAgB,sBAPP,uBAETr9B,EAFS,EAETA,KAFS,kBAUVA,GAVU,sCAYjB+mB,QAAQqX,IAAR,MAZiB,8DAAH,sDAiBTC,GAAK,yCAAG,kCAAAvgB,EAAA,6DAAS3U,EAAT,EAASA,YAAT,kBAEU8zB,GAAcqB,KAAd,UAChB9B,IACHrzB,GAJS,uBAELnJ,EAFK,EAELA,KAFK,kBAMNA,GANM,oGAAH,sDAYLu+B,GAAa,yCAAG,oCAAAzgB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEJqa,EAAWra,EAAtBwD,UAFe,SAGEgwB,GAAcqB,KAAd,UAChB9B,IADgB,OACY1Y,EADZ,KAEnBra,GALiB,uBAGbzJ,EAHa,EAGbA,KAHa,kBAOdA,GAPc,uGAAH,sDAabw+B,GAAiB,yCAAG,oCAAA1gB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAERqa,EAAWra,EAAtBwD,UAFmB,SAGFgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACiB1Y,EADjB,MAHE,uBAGjB9jB,EAHiB,EAGjBA,KAHiB,kBAMlBA,GANkB,uGAAH,sDAYjB0+B,GAAe,yCAAG,oCAAA5gB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAENqa,EAAWra,EAAtBwD,UAFiB,SAGAgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACG1Y,EADH,MAHA,uBAGf9jB,EAHe,EAGfA,KAHe,kBAMhBA,GANgB,uGAAH,sDAYf2+B,GAAY,yCAAG,oCAAA7gB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEHqa,EAAWra,EAAtBwD,UAFc,SAGGgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACW1Y,EADX,MAHH,uBAGZ9jB,EAHY,EAGZA,KAHY,kBAMbA,GANa,uGAAH,sDAYZ4+B,GAAS,yCAAG,oCAAA9gB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEbqa,EAASra,EAAcwD,UAFV,SAGMgwB,GAAcwB,IAAd,UAAqBjC,IAArB,OAAsC1Y,EAAtC,MAHN,uBAGT9jB,EAHS,EAGTA,KAHS,kBAIVA,GAJU,uGAAH,sDAUT6+B,GAAc,yCAAG,oCAAA/gB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAELqa,EAAWra,EAAtBwD,UAFgB,SAGCgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACU1Y,EADV,MAHD,uBAGd9jB,EAHc,EAGdA,KAHc,kBAMfA,GANe,uGAAH,sDAYd8+B,GAAY,yCAAG,oCAAAhhB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEHqa,EAAWra,EAAtBwD,UAFc,SAGGgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACK1Y,EADL,MAHH,uBAGZ9jB,EAHY,EAGZA,KAHY,kBAMbA,GANa,uGAAH,sDAYZ++B,GAAa,yCAAG,oCAAAjhB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEJqa,EAAWra,EAAtBwD,UAFe,SAGEgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACgB1Y,EADhB,MAHF,uBAGb9jB,EAHa,EAGbA,KAHa,kBAMdA,GANc,uGAAH,sDAYbmxB,GAAY,yCAAG,oCAAArT,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEhBqa,EAASra,EAAcwD,UAFP,SAGGiwB,KAAM,CACzBc,OAAQ,OACRtP,IAAI,GAAD,OAAK+N,GAAaG,UAAlB,OAA6BJ,IAA7B,OAAmD1Y,GACtD9jB,KAAMyJ,IANU,uBAGZzJ,EAHY,EAGZA,KAHY,kBAQbA,GARa,uGAAH,sDAcZwD,GAAc,yCAAG,oCAAAsa,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAELqa,EAAWra,EAAtBwD,UAFgB,SAGCgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACO1Y,EADP,MAHD,uBAGd9jB,EAHc,EAGdA,KAHc,kBAMfA,GANe,uGAAH,sDAYdg/B,GAAe,yCAAG,4CAAAlhB,EAAA,6DAAS3U,EAAT,EAASA,YAChC6rB,EAAW7rB,EAAY8D,UACvBhB,EAAO,IAAIvO,KAAKyL,EAAY8C,MAC5BkM,EAAQlM,EAAKoL,WAAa,EAC1Be,EAAOnM,EAAKsL,cACZJ,EAAQlL,EAAKiL,UACbiB,EAAQ,KACRA,EAAQ,IAAMA,GAGdhB,EAAQ,KACRA,EAAQ,IAAMA,GAXS,UAcJ8lB,GAAcwB,IAAd,4BACEzJ,EADF,YACc5c,EADd,YACsBD,EADtB,YAC+BhB,EAD/B,QAdI,wBAcnBnX,EAdmB,EAcnBA,KAdmB,kBAkBpBA,GAlBoB,4CAAH,sDAqBfi/B,GAAc,yCAAG,4CAAAnhB,EAAA,6DAASkX,EAAT,EAASA,SAAU/oB,EAAnB,EAAmBA,KACzCizB,EAAQ,IAAIxhC,KAAKuO,GACjBkM,EAAQ+mB,EAAM7nB,WAAa,EAC3Be,EAAO8mB,EAAM3nB,cACbJ,EAAQ+nB,EAAMhoB,UAEdiB,EAAQ,KACRA,EAAQ,IAAMA,GAGdhB,EAAQ,KACRA,EAAQ,IAAMA,GAXQ,SAgBhB8lB,GAAcwB,IAAd,4BACezJ,EADf,YAC2B5c,EAD3B,YACmCD,EADnC,YAC4ChB,EAD5C,QAhBgB,uBAednX,EAfc,EAetBA,KAAQA,KAfc,kBAmBnB6Y,GAAgB7Y,IAnBG,4CAAH,sDAsBd69B,GAAqB,yCAAG,+BAAA/f,EAAA,+EAENof,KAAM,CACzBc,OAAQ,OACRtP,IAAI,GAAD,OAAK+N,GAAaG,UAAlB,OAA6BJ,IAChCa,QAAQ,2BACDN,IADA,IAEH,YAAY,UAAZ,OAAuBrD,aAAaC,QAAQ,sBAPvB,uBAErB35B,EAFqB,EAErBA,KAQR05B,aAAaI,QAAQ,eAAgB95B,EAAKm/B,cAVb,mBAWtB,GAXsB,sCAa7BhD,eAAerC,QAAQ,YAAY,GACnCJ,aAAaK,WAAW,gBACxBL,aAAaK,WAAW,iBACxBqF,GAAMvgC,SAAS2zB,MAhBc,8DAAH,qDAqBrB6M,GAAa,yCAAG,kCAAAvhB,EAAA,6DAAStS,EAAT,EAASA,cAAT,SACFyxB,GAAcwB,IAAd,UAChBjC,IADgB,OACShxB,EAAchR,GADvB,MADE,uBACjBwF,EADiB,EACjBA,KADiB,kBAKlBA,GALkB,2CAAH,sDAQbs/B,GAAe,yCAAG,kCAAAxhB,EAAA,6DAASnS,EAAT,EAASA,uBAAT,kBAEAsxB,GAAcqB,KAAd,UAChB9B,IACH7wB,GAJmB,uBAEf3L,EAFe,EAEfA,KAFe,kBAMhBA,GANgB,oGAAH,sDAYfu/B,GAAc,yCAAG,oCAAAzhB,EAAA,6DAAStS,EAAT,EAASA,cAAT,SAEL8a,EAAW9a,EAAtB8b,UAFgB,SAGC2V,GAAcwB,IAAd,UAChBjC,IADgB,OACclW,EADd,MAHD,uBAGdtmB,EAHc,EAGdA,KAHc,kBAMfA,GANe,uGAAH,sDAYdw/B,GAAa,yCAAG,kCAAA1hB,EAAA,6DAAS2W,EAAT,EAASA,kBAAT,kBAEEwI,GAAcqB,KAAd,UAChB9B,IACH/H,GAJiB,uBAEbz0B,EAFa,EAEbA,KAFa,kBAMdA,GANc,oGAAH,sDAYby/B,GAAS,yCAAG,oCAAA3hB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAEbqa,EAASra,EAAcwD,UAFV,SAGMgwB,GAAcwB,IAAd,UAAqBjC,IAArB,OAAsC1Y,EAAtC,MAHN,uBAGT9jB,EAHS,EAGTA,KAHS,kBAIVA,GAJU,uGAAH,sDAUT0/B,GAAoB,yCAAG,oCAAA5hB,EAAA,6DAASrU,EAAT,EAASA,cAAT,SAExBqa,EAASra,EAAcwD,UAFC,SAGLgwB,GAAcwB,IAAd,UAChBjC,IADgB,OACgB1Y,EADhB,MAHK,uBAGpB9jB,EAHoB,EAGpBA,KAHoB,kBAMrBA,GANqB,uGAAH,sD,aCzTvB2/B,I,aAaeC,IAbzB,SAAUD,GAAmB/D,GAA7B,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGe,OAHf,SAGqBuD,aAAKC,GAAY,CAChC52B,YAAayyB,EAAOvyB,QAAQF,cAJlC,OAOI,OAJI5K,EAHR,gBAOUshC,aAAIv2B,GAAiB,CAAE/K,UAPjC,+BASI,OATJ,oCASUshC,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAIt2B,GAAiB,CAAErP,MAAM,EAAD,MAVtC,uDAae,SAAU0lC,KAAV,kEACb,OADa,SACPI,aAAW52B,GAA0Bu2B,IAD9B,wC,iBCbLM,I,aAaeC,IAbzB,SAAUD,GAAsBrE,GAAhC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGkB,OAHlB,SAGwBuD,aAAKC,GAAoB,CAC3Ct2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAOI,OAJIhG,EAHR,gBAOUo8B,aAAIh2B,GAAoB,CAAEpG,aAPpC,+BASI,OATJ,oCASUo8B,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAI/1B,GAAoB,CAAE5P,MAAM,EAAD,MAVzC,uDAae,SAAUgmC,KAAV,kEACb,OADa,SACPF,aAAW52B,GAA6B62B,IADjC,wC,iBCbLE,I,aAaeC,IAbzB,SAAUD,GAA0BvE,GAApC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGsB,OAHtB,SAG4BuD,aAAKC,GAAwB,CACnDt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAOI,OAJIiI,EAHR,gBAOUmuB,aAAItO,GAAwB,CAAE7f,iBAPxC,+BASI,OATJ,oCASUmuB,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAIrO,GAAwB,CAAEt3B,MAAM,EAAD,MAV7C,uDAae,SAAUkmC,KAAV,kEACb,OADa,SACPJ,aAAW52B,GAAkC+2B,IADtC,wC,iBCbLE,I,aAYeC,IAZzB,SAAUD,GAAwBzE,GAAlC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGoB,OAHpB,SAG0BuD,aAAKC,GAAsB,CAC/Ct2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAMI,OAHIqI,EAHR,gBAMU+tB,aAAIpO,GAAsB,CAAE3f,eANtC,+BAQI,OARJ,oCAQU+tB,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAInO,GAAsB,CAAEx3B,MAAM,EAAD,MAT3C,uDAYe,SAAUomC,KAAV,kEACb,OADa,SACPN,aAAW52B,GAAgCi3B,IADpC,wC,iBCZLE,I,aAaeC,IAbzB,SAAUD,GAAqB3E,GAA/B,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGiB,OAHjB,SAGuBuD,aAAKC,GAAmB,CACzCt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAOI,OAJI6c,EAHR,gBAOUuZ,aAAIlO,GAAmB,CAAErL,YAPnC,+BASI,OATJ,oCASUuZ,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAIjO,GAAmB,CAAE13B,MAAM,EAAD,MAVxC,uDAae,SAAUsmC,KAAV,kEACb,OADa,SACPR,aAAW52B,GAA4Bm3B,IADhC,wC,iBChBLE,I,aAaeC,IAbzB,SAAUD,GAAkB7E,GAA5B,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGc,OAHd,SAGoBuD,aAAKC,GAAgB,CACnCt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAOI,OAJIgW,EAHR,gBAOUogB,aAAIhO,GAAgB,CAAEpS,SAPhC,+BASI,OATJ,oCASUogB,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAI/N,GAAgB,CAAE53B,MAAM,EAAD,MAVrC,uDAae,SAAUwmC,KAAV,kEACb,OADa,SACPV,aAAW52B,GAAyBq3B,IAD7B,wC,iBCVLE,I,aAaeC,IAbzB,SAAUD,GAA2B/E,GAArC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGuB,OAHvB,SAG6BuD,aAAKC,GAAqB,CACjDt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAOI,OAJI+Y,EAHR,gBAOUqd,aAAI9N,GAAyB,CAAEvP,kBAPzC,+BASI,OATJ,oCASUqd,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAI7N,GAAyB,CAAE93B,MAAM,EAAD,MAV9C,uDAae,SAAU0mC,KAAV,kEACb,OADa,SACPZ,aACJ52B,GACAu3B,IAHW,wC,iBCbLE,I,aAaeC,IAbzB,SAAUD,GAAqBjF,GAA/B,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGiB,OAHjB,SAGuBuD,aAAKC,GAAmB,CACzCt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAOI,OAJIkb,EAHR,gBAOUkb,aAAI5N,GAAmB,CAAEtN,YAPnC,+BASI,OATJ,oCASUkb,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KATrD,QAUI,OAVJ,UAUUigC,aAAI3N,GAAmB,CAAEh4B,MAAM,EAAD,MAVxC,uDAae,SAAU4mC,KAAV,kEACb,OADa,SACPd,aAAW52B,GAA6By3B,IADjC,wC,iBCbLE,I,aAYeC,IAZzB,SAAUD,GAAwBnF,GAAlC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGoB,OAHpB,SAG0BuD,aAAKC,GAAoB,CAC7Ct2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAMI,OAHIsZ,EAHR,gBAMU8c,aAAI1N,GAAsB,CAAEpP,eANtC,+BAQI,OARJ,oCAQU8c,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAIzN,GAAsB,CAAEl4B,MAAM,EAAD,MAT3C,uDAYe,SAAU8mC,KAAV,kEACb,OADa,SACPhB,aAAW52B,GAA8B23B,IADlC,wC,iBCZLE,I,aAYeC,IAZzB,SAAUD,GAA2BrF,GAArC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGuB,OAHvB,SAG6BuD,aAAKC,GAAmB,CAC/Ct2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAMI,OAHI0nB,EAHR,gBAMU0O,aAAIxN,GAAyB,CAAElB,kBANzC,+BAQI,OARJ,oCAQU0O,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAIvN,GAAyB,CAAEp4B,MAAM,EAAD,MAT9C,uDAYe,SAAUgnC,KAAV,kEACb,OADa,SACPlB,aAAW52B,GAA8B63B,IADlC,wC,iBCZLE,I,aAYeC,IAZzB,SAAUD,GAAwBvF,GAAlC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGyB,OAHzB,SAG+BuD,aAAKC,GAAqB,CACnDt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAMI,OAHIjG,EAHR,gBAMUq8B,aAAIn2B,GAAsB,CAAElG,oBANtC,+BAQI,OARJ,oCAQUq8B,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAIl2B,GAAsB,CAAEzP,MAAM,EAAD,MAT3C,uDAYe,SAAUknC,KAAV,kEACb,OADa,SACPpB,aAAW52B,GAA+B+3B,IADnC,wC,iBCRLE,I,aA+DeC,IA/DzB,SAAUD,GAAgBzF,GAA1B,kGAUI,OATE57B,EAAO,KACTkU,EAAO,KACPsE,EAAY,KACZgR,EAAM,KAJV,kBAUUqW,aAAItD,MAVd,OAWuB,OAXvB,SAW6BuD,aAAKC,GAAsB,CAClD52B,YAAayyB,EAAOvyB,QAAQF,cAZlC,YAWUqV,EAXV,UAgBsBA,EAAW5e,OAhBjC,iBAkBM,IADI2hC,EAAuB,EAC3B,MAAgBhiC,OAAO8wB,KAAK7R,EAAWxe,KAAK6W,UAA5C,eAASwY,EAA8C,KACrDkS,GACyB/iB,EAAWxe,KAAK6W,SAASwY,GAAKxsB,OApB/D,KAsBU0+B,EAAuB,GAtBjC,iBAgCqB,OATb7X,EAAclL,EAAW5e,OACzBI,EAAOue,GAAgBC,GAEvBtK,GA5Bc,UA4BNlU,EAAKkU,MAAsB0O,QAAQ,GAC3CpK,EAAYD,GACVvY,EAAKoW,aAAepW,EAAKkW,YAAclW,EAAKmW,UAE9CqT,GAAOxpB,EAAKqW,SAAW,KAAMuM,QAAQ,GA9B7C,UAgC2Bkd,aAAKC,GAAqB,CAC3C/K,SAAUh1B,EAAK0W,aACfzK,KAAM2vB,EAAOvyB,QAAQF,YAAY8C,OAlC3C,QAgCcu1B,EAhCd,OAsCQ3qB,EAAW2qB,EAAK3qB,SAChBD,EAAU4qB,EAAK5qB,QACfsC,EAASsoB,EAAKtoB,OAxCtB,QA4CI,OA5CJ,UA4CU2mB,aACJtN,GAAkB,CAChB/T,aACA3H,WACAD,UACAsC,SACAwQ,cACAxV,OACAsE,YACAgR,SArDR,gCA0DI,OA1DJ,oCA0DUqW,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KA1DrD,QA2DI,OA3DJ,UA2DUigC,cxDpCwB3lC,EwDoCF,EAAD,GxDnCtB,CACLO,KAAM2O,GACNC,QAAS,CACPnP,MAAOA,EAAMkF,YwD3BnB,kCxDuBiC,IAAClF,IwDvBlC,kBA+De,SAAUonC,KAAV,kEACb,OADa,SACPtB,aAAW52B,GAA2Bi4B,IAD/B,wC,iBC/DLI,I,aAoCAC,I,aASeC,I,aAKRC,IAlDjB,SAAUH,GAAkB7F,GAA5B,wEAEQ,OAFR,kBAEciE,aAAItD,MAFlB,OAGoB,OAHpB,SAG0BuD,aAAKC,GAAgB,CACnCzG,MAAOsC,EAAOvyB,QAAQiwB,MACtBC,SAAUqC,EAAOvyB,QAAQkwB,WALrC,YAGcsI,EAHd,QAOgBjiC,OAPhB,iBAgBY,OARA85B,aAAaI,QACT,eACA+H,EAAI7hC,KAAK8hC,YAAY3C,cAEzBzF,aAAaI,QACT,gBACA+H,EAAI7hC,KAAK8hC,YAAYC,eAdrC,UAgBkBlC,aACFnH,GAAoB,CAChB94B,OAAQiiC,EAAIjiC,OACZR,QAASyiC,EAAIziC,WAnBjC,gCAuBY,OAvBZ,UAuBkBygC,aACFlH,GAAoB,CAChB/4B,OAAQiiC,EAAIjiC,OACZR,QAASyiC,EAAIziC,WA1BjC,gCA+BQ,OA/BR,oCA+BcygC,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KA/BzD,QAgCQ,OAhCR,UAgCcigC,aAAIlH,GAAoB,CAAE/4B,QAAQ,EAAOR,QAAS,KAAEA,WAhClE,uDAoCA,SAAUsiC,GAAmB9F,GAA7B,kEAEQ,OAFR,kBAEciE,axD3CL,CACLplC,KAAM2O,KwDwCV,8BAIQ,OAJR,kCAIcy2B,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KAJzD,OAKQ,OALR,UAKcigC,cxDzCuB3lC,EwDyCE,EAAD,GxDxC7B,CACLO,KAAM2O,GACNlP,MAAOA,KwDiCX,kCxDpCoC,IAACA,IwDoCrC,iBASe,SAAUynC,KAAV,kEACX,OADW,SACL9B,aAAItD,MADC,OAEX,OAFW,SAELyD,aAAW52B,EAAqBq4B,IAF3B,wCAKR,SAAUG,KAAV,kEACH,OADG,SACG5B,aAAW52B,GAAsBs4B,IADpC,wC,iBCzDGM,I,aAYeC,IAZzB,SAAUD,GAAyBpG,GAAnC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGwB,OAHxB,SAG8BuD,aAAKC,GAAoB,CACjDv0B,cAAeowB,EAAOvyB,QAAQmC,gBAJpC,OAMI,OAHI5M,EAHR,gBAMUihC,aAAI91B,GAAuB,CAAEnL,mBANvC,+BAQI,OARJ,oCAQUihC,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAI71B,GAAuB,CAAE9P,MAAM,EAAD,MAT5C,uDAYe,SAAU+nC,KAAV,kEACb,OADa,SACPjC,aAAW52B,GAAoC44B,IADxC,wC,iBCZLE,I,aAYeC,IAZzB,SAAUD,GAAyBtG,GAAnC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAG6B,OAH7B,SAGmCuD,aAAKC,GAAsB,CACxDp0B,uBAAwBiwB,EAAOvyB,QAAQsC,yBAJ7C,OAMI,OAHIV,EAHR,gBAMU40B,aAAI70B,GAAuB,CAAEC,wBANvC,+BAQI,OARJ,oCAQU40B,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAI30B,GAAuB,CAAEhR,MAAM,EAAD,MAT5C,uDAYe,SAAUioC,KAAV,kEACb,OADa,SACPnC,aAAW52B,GAA2B84B,IAD/B,wC,iBCTLE,I,aAYeC,IAZzB,SAAUD,GAAwBxG,GAAlC,wEAEQ,OAFR,kBAEciE,aAAItD,MAFlB,OAGwB,OAHxB,SAG8BuD,aAAKC,GAAqB,CAC5Cv0B,cAAeowB,EAAOvyB,QAAQmC,gBAJ1C,OAMQ,OAHIka,EAHZ,gBAMcma,aAAIpa,GAA2B,CAAEC,eAN/C,+BAQQ,OARR,oCAQcma,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARzD,QASQ,OATR,UAScigC,aAAIla,GAA2B,CAAEzrB,MAAM,EAAD,MATpD,uDAYe,SAAUmoC,KAAV,kEACX,OADW,SACLrC,aAAW52B,GAAgCg5B,IADtC,wC,iBCZLE,I,aAYeC,IAZzB,SAAUD,GAAoB1G,GAA9B,wEAEQ,OAFR,kBAEciE,aAAItD,MAFlB,OAG4B,OAH5B,SAGkCuD,aAAKC,GAAoB,CAC/CtL,kBAAmBmH,EAAOvyB,QAAQorB,oBAJ9C,OAMQ,OAHI1B,EAHZ,gBAMc8M,aAAI/M,GAAkB,CAAEC,mBANtC,+BAQQ,OARR,oCAQc8M,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARzD,QASQ,OATR,UAScigC,aAAI7M,GAAkB,CAAE94B,MAAM,EAAD,MAT3C,uDAYe,SAAUqoC,KAAV,kEACX,OADW,SACLvC,aAAW52B,GAA2Bk5B,IADjC,wC,iBCfLE,I,aAYeC,IAZzB,SAAUD,GAAmB5G,GAA7B,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAGc,OAHd,SAGoBuD,aAAKC,GAAgB,CACnCt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAMI,OAHIkW,EAHR,gBAMUkgB,aAAIpN,GAAiB,CAAE9S,SANjC,+BAQI,OARJ,oCAQUkgB,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAInN,GAAiB,CAAEx4B,MAAM,EAAD,MATtC,uDAYe,SAAUuoC,KAAV,kEACb,OADa,SACPzC,aAAW52B,GAA0Bo5B,IAD9B,wC,iBCZLE,I,aAYeC,IAZzB,SAAUD,GAA2B9G,GAArC,wEAEI,OAFJ,kBAEUiE,aAAItD,MAFd,OAG4B,OAH5B,SAGkCuD,aAAKC,GAA2B,CAC5Dt2B,cAAemyB,EAAOvyB,QAAQI,gBAJpC,OAMI,OAHImpB,EAHR,gBAMUiN,aAAIlN,GAAyB,CAAEC,uBANzC,+BAQI,OARJ,oCAQUiN,aAAIvD,GAAa,CAAEZ,IAAK,KAAEt8B,QAASQ,QAAQ,KARrD,QASI,OATJ,UASUigC,aAAIhN,GAAyB,CAAE34B,MAAM,EAAD,MAT9C,uDAYe,SAAUyoC,KAAV,kEACb,OADa,SACP3C,aAAW52B,GAAgCs5B,IADpC,wC,iBCGUE,IAAV,SAAUA,KAAV,kEACX,OADW,SACLC,aAAI,CACNjD,KACAM,KACAE,KACAE,KACAwC,KACApC,KACAE,KACAE,KACAE,KACAE,KACAE,KACAE,KACAK,KACAC,KACAK,KACAE,KACAM,KACAE,KACAN,KACAE,OArBO,wCCbf,IAAMQ,GAAiBC,eAEjB5D,GAAQ6D,uBACZhH,GACAiH,+BAAoBC,2BAAgBJ,MAGlCK,GAAYC,aAAajE,IAC7B2D,GAAeO,IAAIV,I,uBCRnBW,IAAStmC,OACP,cAAC,IAAD,CAAUmiC,MAAOA,GAAjB,SACE,cAAC,KAAD,CAAa3gC,QAAS,KAAM2kC,UAAWA,GAAvC,SACE,cAAC,KAAD,UACE,cAAC,GAAD,UAINvc,SAAS2c,eAAe,W","file":"static/js/main.8af47546.chunk.js","sourcesContent":["import React, { useRef, useEffect } from \"react\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport { FormHelperText } from \"@material-ui/core\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\n\nfunction InputField({ field, form, ...other }) {\n const currentError = form.errors[field.name];\n const inputRef = useRef(null);\n\n useEffect(() => {\n const handleWheel = (e) => e.preventDefault();\n if (inputRef) {\n inputRef.current.addEventListener(\"wheel\", handleWheel);\n }\n\n // return () => {\n // if (inputRef) {\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // inputRef.current.removeEventListener(\"wheel\", handleWheel);\n // }\n // };\n }, []);\n\n return (\n \n {other.label}\n form.setFieldValue(field.name, e.target.value, false)}\n onError={(error) => {\n if (error !== currentError) {\n form.setFieldError(field.name, error);\n }\n }}\n labelWidth={other.labelWidth}\n />\n {currentError && {currentError}}\n \n );\n}\n\nexport default InputField;\n","import React from \"react\";\nimport DateFnsUtils from \"@date-io/date-fns\";\nimport {\n KeyboardDatePicker,\n MuiPickersUtilsProvider,\n} from \"@material-ui/pickers\";\n\nfunction DatePicker({ field, form, ...other }) {\n return (\n <>\n \n form.setFieldValue(field.name, date, false)}\n KeyboardButtonProps={{\n \"aria-label\": \"change date\",\n }}\n />\n \n \n );\n}\n\nexport default DatePicker;\n","import React from \"react\";\nimport Accordion from \"@material-ui/core/Accordion\";\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport Typography from \"@material-ui/core/Typography\";\n\nconst AccordionComponent = ({ ...props }) => {\n return (\n \n }>\n {props.header}\n \n {props.value}\n \n );\n};\n\nexport default AccordionComponent;\n","import React from \"react\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\n\nconst TableComponent = ({ ...props }) => {\n return (\n \n \n \n \n Actual Image\n Reference Image 1 \n Reference Image 2\n Reference Image 3\n \n \n \n {props.values.map((row) => (\n \n \n {row.actual === null ? (\n \"No Image\"\n ) : (\n \n Actual Image\n \n )}\n \n \n {row.reference1 === null ? (\n \"No Image\"\n ) : (\n \n Reference Image 1\n \n )}\n \n \n {row.reference2 === null ? (\n \"No Image\"\n ) : (\n \n Reference Image 2\n \n )}\n \n \n {row.reference3 === null ? (\n \"No Image\"\n ) : (\n \n Reference Image 3\n \n )}\n \n \n ))}\n \n
\n
\n );\n};\n\nexport default TableComponent;\n","import { Route, Redirect } from \"react-router-dom\";\n\nconst PrivateRoute = ({ children, isAuthenticated, ...rest }) => {\n return (\n \n isAuthenticated ? (\n children\n ) : (\n \n )\n }\n />\n );\n};\n\nexport default PrivateRoute;\n","export const getTime=(time)=>{\n const date = new Date(time);\n\n const options = {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n };\n\n let time12hrFormat = date.toLocaleTimeString('en-US', options);\n const [hour, minute] = time12hrFormat.split(/[:\\s]/);\n\n const formattedHour = hour.padStart(2, '0');\n\n time12hrFormat = `${formattedHour}:${minute}`;\n return time12hrFormat\n}","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport ReactFusioncharts from \"react-fusioncharts\";\nimport FusionCharts from \"fusioncharts\";\nimport charts from \"fusioncharts/fusioncharts.charts\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { getTime } from \"../utils/getTime\";\n\n// Resolves charts dependancy\ncharts(FusionCharts);\n\nfunction FuelChart({ fuelLoading, fueldata, startTime, endTime, fuelTicketData }) {\n const [series, setSeries] = useState([]);\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp);\n let fuelLevelData = Object.values(fueldata.fuel_level_dashboard);\n let tractorStatus = Object.values(fueldata.status);\n let maxFuelValue = Math.max(...fuelLevelData);\n let data = [];\n let seriesData2 = [];\n let startRange = getTime(fuelTicketData?.data.event_start_ts);\n let endRange = getTime(fuelTicketData?.data.event_end_ts);\n let count = 0;\n for (let i = startTime*60; i < endTime*60; i++) {\n if (fuelLevelData[i] !== -1) {\n count++;\n }\n }\n let size;\n if (count < 100) {\n size = \"6\";\n } else {\n size = \"3\";\n }\n\n for (let i = startTime * 60; i < endTime * 60; i++) {\n if (fuelLevelData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: fuelLevelData[i] < 0 ? 0:fuelLevelData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n anchorBorderThickness: \"3\",\n anchorBorderColor: \"#FF0000\",\n anchorSides: \"3\",\n anchorBgColor: \"#d3f7ff\",\n });\n } else {\n data.push({\n label: timeStampData[i],\n value: fuelLevelData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n anchorBorderThickness: size,\n anchorBorderColor: (tractorStatus[i] & 1) === 1 ? \"#FFCC00\":\"#FF0000\",\n anchorSides: \"1\",\n anchorBgColor: (tractorStatus[i] & 1) === 1 ? \"#FFCC00\":\"#FF0000\",\n });\n \n }\n\n if (timeStampData[i] >= startRange && timeStampData[i] <= endRange) {\n seriesData2.push({\n label: timeStampData[i],\n value: maxFuelValue,\n anchorRadius: \"1\",\n anchorBorderThickness: \"1\",\n anchorBorderColor: \"#00FF00\",\n anchorBgColor: \"#00FF00\",\n });\n } else {\n seriesData2.push({ label: timeStampData[i], value: 0 });\n }\n }\n\n setSeries([\n {\n seriesname: `${fuelTicketData?.data.event}`,\n data: seriesData2,\n color: fuelTicketData?.data.event === \"Refuel\" ? \"#00ff00\":\"#FF0000\",\n areaColor: fuelTicketData?.data.event === \"Refuel\" ? \"#00ff00\":\"#FF0000\", \n renderAs: \"line\",\n dashed: \"1\", \n lineThickness: \"2\", \n },\n {\n seriesname: \"Fuel Data\",\n data: data,\n color: \"#FFCC00\", \n areaColor: \"#FFCC00\",\n },\n ]);\n }\n }, [fueldata, fuelTicketData, startTime, endTime]);\n\n const chartConfigs = {\n chart: {\n yaxisname: \"Fuel\",\n xAxisName:\"TimeStamp\",\n drawcrossline: \"1\",\n numbersuffix: \"L\",\n showValues: \"0\",\n showBorder: \"0\",\n showCanvasBorder: \"0\",\n drawAnchors: \"0\",\n theme: \"umber\",\n xAxisNameFontSize: \"20\",\n xAxisNameFontColor: \"#651fff\",\n yAxisNameFontSize: \"20\",\n yAxisNameFontColor: \"#651fff\",\n labelStep: \"60\",\n baseFontSize: \"11\",\n },\n categories: [\n {\n category: series[0]?.data.map((d) => ({ label: d.label })),\n },\n ],\n dataset: series,\n };\n\n function ChartData() {\n if (fuelLoading) {\n return (\n
\n \n
\n );\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n return (\n \n );\n } else {\n return

{fueldata?.message}

;\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n );\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n fuelTicketData: state.fuelTicketReducer.resFuelTicket,\n});\n\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FuelChart);\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport ReactFusioncharts from \"react-fusioncharts\";\nimport FusionCharts from \"fusioncharts\";\nimport charts from \"fusioncharts/fusioncharts.charts\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\n// Resolves charts dependancy\ncharts(FusionCharts);\n\nfunction SpeedChart({ fuelLoading, fueldata, startTime,endTime }) {\n const [series, setSeries] = useState([]);\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp);\n let speedData = Object.values(fueldata.speed);\n let data = [];\n\n let count = 0;\n for (let i = startTime*60; i < endTime*60; i++) {\n if (speedData[i] !== -1) {\n count++;\n }\n }\n\n let size;\n if (count < 100) {\n size = \"6\";\n } else {\n size = \"3\";\n }\n\n for (let i = startTime*60; i < endTime*60; i++) {\n if (speedData[i] === -1) {\n data.push({\n label: timeStampData[i],\n });\n } else if (speedData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: speedData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n anchorBorderThickness: \"3\",\n anchorBorderColor: \"#FF0000\",\n anchorSides: \"3\",\n anchorBgColor: \"#d3f7ff\",\n });\n } else {\n data.push({\n label: timeStampData[i],\n value: speedData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n // anchorBorderThickness: \"0.5\",\n anchorBorderThickness: size,\n anchorBorderColor: \"#FFCC00\",\n anchorSides: \"1\",\n anchorBgColor: \"#FFCC00\",\n });\n }\n }\n\n setSeries(data);\n }\n }, [fueldata,startTime,endTime]);\n\n const chartConfigs = {\n chart: {\n xAxisName: \"TimeStamp (IST)\",\n yAxisName: \"Speed\",\n showValues: \"0\",\n showBorder: \"0\",\n showCanvasBorder: \"0\",\n drawAnchors: \"0\",\n numberSuffix: \"Km/h\",\n xAxisNameFontSize: \"20\",\n xAxisNameFontColor: \"#651fff\",\n yAxisNameFontSize: \"20\",\n yAxisNameFontColor: \"#651fff\",\n labelStep: \"60\",\n theme: \"fusion\",\n baseFontSize: \"11\",\n plottooltext:\n \"
TimeStamp : $label

Speed : $dataValue\",\n },\n data: series,\n };\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n );\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n return (\n \n );\n } else {\n return (\n

{fueldata?.message}

\n );\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n );\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SpeedChart);\n","import React, { useState, useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport ReactFusioncharts from 'react-fusioncharts'\nimport FusionCharts from 'fusioncharts'\nimport charts from 'fusioncharts/fusioncharts.charts'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n// Resolves charts dependancy\ncharts(FusionCharts)\n\nfunction BatteryVoltage({\n fuelLoading,\n fueldata,\n voltageThresh,\n summary,\n summaryLoading,\n startTime,\n endTime,\n}) {\n const [series, setSeries] = useState([])\n const [threshold, setThreshold] = useState(13200)\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp)\n let batteryVoltageData = Object.values(fueldata.battery_voltage)\n let threshValue = Object.values(voltageThresh.vbat_thresh)\n\n if (threshValue.length > 0) {\n setThreshold(voltageThresh.vbat_thresh[0])\n } else {\n if (!summaryLoading) {\n if (\n summary?.[0].hw_batch === 49 ||\n summary?.[0].hw_batch === 52\n ) {\n setThreshold(651)\n } else {\n setThreshold(13200)\n }\n }\n }\n\n let data = []\n let count = 0\n for (let i = startTime * 60; i < endTime * 60; i++) {\n if (batteryVoltageData[i] !== -1) {\n count++\n }\n }\n\n let size\n if (count < 100) {\n size = '6'\n } else {\n size = '3'\n }\n\n for (let i = startTime * 60; i < endTime * 60; i++) {\n if (batteryVoltageData[i] === -1) {\n data.push({\n label: timeStampData[i],\n })\n } else if (batteryVoltageData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: batteryVoltageData[i],\n drawAnchors: '1',\n anchorRadius: '1',\n anchorBorderThickness: '3',\n anchorBorderColor: '#FF0000',\n anchorSides: '3',\n anchorBgColor: '#d3f7ff',\n })\n } else {\n data.push({\n label: timeStampData[i],\n value: batteryVoltageData[i],\n drawAnchors: '1',\n anchorRadius: '1',\n // anchorBorderThickness: \"6\",\n anchorBorderThickness: size,\n anchorBorderColor: '#FFCC00',\n anchorSides: '1',\n anchorBgColor: '#FFCC00',\n })\n }\n }\n\n setSeries(data)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fueldata, voltageThresh, summaryLoading, summary, startTime, endTime])\n\n const chartConfigs = {\n chart: {\n xAxisName: 'TimeStamp (IST)',\n yAxisName: 'Battery Voltage Plot',\n showValues: '0',\n showBorder: '0',\n showCanvasBorder: '0',\n drawAnchors: '0',\n numberSuffix: 'mV',\n xAxisNameFontSize: '20',\n xAxisNameFontColor: '#651fff',\n yAxisNameFontSize: '20',\n yAxisNameFontColor: '#651fff',\n labelStep: '60',\n baseFontSize: '11',\n plottooltext:\n \"
TimeStamp : $label

Battery Voltage : $dataValue\",\n theme: 'fusion',\n },\n data: series,\n trendlines: [\n {\n line: [\n {\n // startvalue: \"13200\",\n startvalue: threshold,\n endvalue: '',\n color: '#29C3BE',\n displayvalue: `${threshold}`,\n valueonright: '1',\n dashed: '1',\n thickness: '2',\n },\n ],\n },\n ],\n }\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n )\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n return (\n \n )\n } else {\n return (\n

\n {fueldata?.message}\n

\n )\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n voltageThresh: state.thresholdReducer.thresholdValue,\n summary: state.summaryReducer.summary,\n summaryLoading: state.summaryReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BatteryVoltage)\n","import React, { useState, useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport ReactFusioncharts from 'react-fusioncharts'\nimport FusionCharts from 'fusioncharts'\nimport charts from 'fusioncharts/fusioncharts.charts'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\n// Resolves charts dependancy\ncharts(FusionCharts)\n\nfunction FuelADC({\n fuelLoading,\n fueldata,\n voltageThresh,\n summary,\n summaryLoading,\n startTime,\n endTime,\n}) {\n const [series, setSeries] = useState([])\n const [fuelLow, setFuelLow] = useState(350)\n const [fuelHigh, setFuelHigh] = useState(7500)\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp)\n let fuelADCData = Object.values(fueldata.fuel_adc)\n\n let threshLowValue = Object.values(voltageThresh.fuel_low)\n let threshHighValue = Object.values(voltageThresh.fuel_high)\n\n if (threshLowValue.length > 0 && threshHighValue.length > 0) {\n setFuelLow(voltageThresh.fuel_low[0])\n setFuelHigh(voltageThresh.fuel_high[0])\n } else {\n if (!summaryLoading) {\n if (\n summary?.[0].hw_batch === 49 ||\n summary?.[0].hw_batch === 52\n ) {\n setFuelLow(100)\n setFuelHigh(2100)\n } else {\n setFuelLow(350)\n setFuelHigh(7500)\n }\n }\n }\n\n let data = []\n let count = 0\n for (let i = startTime * 60; i < endTime * 60; i++) {\n if (fuelADCData[i] !== -1) {\n count++\n }\n }\n\n let size\n if (count < 100) {\n size = '6'\n } else {\n size = '3'\n }\n for (let i = startTime * 60; i < endTime * 60; i++) {\n if (fuelADCData[i] === -1) {\n data.push({\n label: timeStampData[i],\n })\n } else if (fuelADCData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: fuelADCData[i],\n drawAnchors: '1',\n anchorRadius: '1',\n anchorBorderThickness: '3',\n anchorBorderColor: '#FF0000',\n anchorSides: '3',\n anchorBgColor: '#d3f7ff',\n })\n } else {\n data.push({\n label: timeStampData[i],\n value: fuelADCData[i],\n drawAnchors: '1',\n anchorRadius: '1',\n // anchorBorderThickness: \"0.5\",\n anchorBorderThickness: size,\n anchorBorderColor: '#FFCC00',\n anchorSides: '1',\n anchorBgColor: '#FFCC00',\n })\n }\n }\n\n setSeries(data)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fueldata, voltageThresh, summary, summaryLoading, startTime, endTime])\n\n const chartConfigs = {\n chart: {\n xAxisName: 'TimeStamp (IST)',\n yAxisName: 'Fuel ADC plot',\n showValues: '0',\n showBorder: '0',\n showCanvasBorder: '0',\n drawAnchors: '0',\n xAxisNameFontSize: '20',\n xAxisNameFontColor: '#651fff',\n yAxisNameFontSize: '20',\n yAxisNameFontColor: '#651fff',\n labelStep: '60',\n baseFontSize: '11',\n plottooltext:\n \"
TimeStamp : $label

Fuel ADC : $dataValue\",\n theme: 'fusion',\n },\n data: series,\n trendlines: [\n {\n line: [\n {\n // startvalue: \"13200\",\n startvalue: fuelLow,\n endvalue: '',\n color: '#29C3BE',\n displayvalue: `${fuelLow}`,\n valueonright: '1',\n dashed: '1',\n thickness: '2',\n },\n {\n // startvalue: \"13200\",\n startvalue: fuelHigh,\n endvalue: '',\n color: '#651fff',\n displayvalue: `${fuelHigh}`,\n valueonright: '1',\n dashed: '1',\n thickness: '2',\n },\n ],\n },\n ],\n }\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n )\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n return (\n \n )\n } else {\n return (\n

\n {fueldata?.message}\n

\n )\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n voltageThresh: state.thresholdReducer.thresholdValue,\n summary: state.summaryReducer.summary,\n summaryLoading: state.summaryReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FuelADC)\n","// ERROR TYPES\nexport const GET_ERRORS = 'GET_ERRORS'\nexport const CLEAR_ERRORS = 'CLEAR_ERRORS'\n\n// LOGIN REQUEST TYPES\nexport const LOGIN_REQUEST = 'LOGIN_REQUEST'\nexport const LOGIN_REQUEST_SUCCESS = 'LOGIN_REQUEST_SUCCESS'\nexport const LOGIN_REQUEST_FAILURE = 'LOGIN_REQUEST_FAILURE'\n\n// LOGOUT REQUEST TYPES\nexport const LOGOUT_REQUEST = 'LOGOUT_REQUEST'\nexport const LOGOUT_REQUEST_SUCCESS = 'LOGOUT_REQUEST_SUCCESS'\nexport const LOGOUT_REQUEST_FAILURE = 'LOGOUT_REQUEST_FAILURE'\n\n//FUEL DATA\nexport const FETCH_FUEL_REQUEST = 'FETCH_FUEL_REQUEST'\nexport const FETCH_FUEL_SUCCESS = 'FETCH_FUEL_SUCCESS'\nexport const FETCH_FUEL_FAILURE = 'FETCH_FUEL_FAILURE'\n\n//SUMMARY\nexport const FETCH_SUMMARY_REQUEST = 'FETCH_SUMMARY_REQUEST'\nexport const FETCH_SUMMARY_SUCCESS = 'FETCH_SUMMARY_SUCCESS'\nexport const FETCH_SUMMARY_FAILURE = 'FETCH_SUMMARY_FAILURE'\n\n//FUEL SUMMARY\nexport const FETCH_FUEL_SUMMARY_REQUEST = 'FETCH_FUEL_SUMMARY_REQUEST'\nexport const FETCH_FUEL_SUMMARY_SUCCESS = 'FETCH_FUEL_SUMMARY_SUCCESS'\nexport const FETCH_FUEL_SUMMARY_FAILURE = 'FETCH_FUEL_SUMMARY_FAILURE'\n\n//FUEL MODEL\nexport const FETCH_FUEL_MODEL_REQUEST = 'FETCH_FUEL_MODEL_REQUEST'\nexport const FETCH_FUEL_MODEL_SUCCESS = 'FETCH_FUEL_MODEL_SUCCESS'\nexport const FETCH_FUEL_MODEL_FAILURE = 'FETCH_FUEL_MODEL_FAILURE'\n\n//TICKET\nexport const FETCH_TICKET_REQUEST = 'FETCH_TICKET_REQUEST'\nexport const FETCH_TICKET_SUCCESS = 'FETCH_TICKET_SUCCESS'\nexport const FETCH_TICKET_FAILURE = 'FETCH_TICKET_FAILURE'\n\n//APP\nexport const FETCH_APP_REQUEST = 'FETCH_APP_REQUEST'\nexport const FETCH_APP_SUCCESS = 'FETCH_APP_SUCCESS'\nexport const FETCH_APP_FAILURE = 'FETCH_APP_FAILURE'\n\n//INST_ATTEMPTS\nexport const FETCH_INST_ATTEMPTS_REQUEST = 'FETCH_INST_ATTEMPTS_REQUEST'\nexport const FETCH_INST_ATTEMPTS_SUCCESS = 'FETCH_INST_ATTEMPTS_SUCCESS'\nexport const FETCH_INST_ATTEMPTS_FAILURE = 'FETCH_INST_ATTEMPTS_FAILURE'\n\n//GSMGPS\nexport const FETCH_GSM_GPS_REQUEST = 'FETCH_GSM_GPS_REQUEST'\nexport const FETCH_GSM_GPS_SUCCESS = 'FETCH_GSM_GPS_SUCCESS'\nexport const FETCH_GSM_GPS_FAILURE = 'FETCH_GSM_GPS_FAILURE'\n\n//INST IMG\nexport const FETCH_INST_IMG_REQUEST = 'FETCH_INST_IMG_REQUEST'\nexport const FETCH_INST_IMG_SUCCESS = 'FETCH_INST_IMG_SUCCESS'\nexport const FETCH_INST_IMG_FAILURE = 'FETCH_INST_IMG_FAILURE'\n\n//FIREBASE DATA\nexport const FETCH_FIREBASE_REQUEST = 'FETCH_FIREBASE_REQUEST'\nexport const FETCH_FIREBASE_SUCCESS = 'FETCH_FIREBASE_SUCCESS'\nexport const FETCH_FIREBASE_FAILURE = 'FETCH_FIREBASE_FAILURE'\n\n//THRESHOLD VALUE\nexport const FETCH_THRESHOLD_REQUEST = 'FETCH_THRESHOLD_REQUEST'\nexport const FETCH_THRESHOLD_SUCCESS = 'FETCH_THRESHOLD_SUCCESS'\nexport const FETCH_THRESHOLD_FAILURE = 'FETCH_THRESHOLD_FAILURE'\n\n// FETCH DAY SUMMARY\nexport const DAY_SUMMARY_REQUEST = 'DAY_SUMMARY_REQUEST'\nexport const DAY_SUMMARY_SUCCESS = 'DAY_SUMMARY_SUCCESS'\nexport const DAY_SUMMARY_FAILURE = 'DAY_SUMMARY_FAILURE'\n\n// FUEL TIKCET_METADATA\nexport const FUEL_TICKET_METADATA_REQUEST = 'FUEL_TICKET_METADATA_REQUEST'\nexport const FUEL_TICKET_METADATA_SUCCESS = 'FUEL_TICKET_METADATA_SUCCESS'\nexport const FUEL_TICKET_METADATA_FAILURE = 'FUEL_TICKET_METADATA_FAILURE'\n\n// FUEl TICKET\nexport const FUEL_TICKET_REQUEST = 'FUEL_TICKET_REQUEST'\nexport const FUEL_TICKET_SUCCESS = 'FUEL_TICKET_SUCCESS'\nexport const FUEL_TICKET_FAILURE = 'FUEL_TICKET_FAILURE'\nexport const FUEL_TICKET_RESET = 'FUEL_TICKET_RESET'\n\n// TICKET MORE INFO\nexport const TICKET_MORE_INFO_REQUEST = 'TICKET_MORE_INFO_REQUEST'\nexport const TICKET_MORE_INFO_SUCCESS = 'TICKET_MORE_INFO_SUCCESS'\nexport const TICKET_MORE_INFO_FAILURE = 'TICKET_MORE_INFO_FAILURE'\n\n// DEVICE LIST\nexport const DEVICE_LIST_REQUEST = 'DEVICE_LIST_REQUEST'\nexport const DEVICE_LIST_SUCCESS = 'DEVICE_LIST_SUCCESS'\nexport const DEVICE_LIST_FAILURE = 'DEVICE_LIST_FAILURE'\n\n// SIM STATUS\nexport const SIM_STATUS_REQUEST = 'SIM_STATUS_REQUEST'\nexport const SIM_STATUS_SUCCESS = 'SIM_STATUS_SUCCESS'\nexport const SIM_STATUS_FAILURE = 'SIM_STATUS_FAILURE'\n\n// REPLACEMENT DATA\nexport const REPLACEMENT_DATA_REQUEST = 'REPLACEMENT_DATA_REQUEST'\nexport const REPLACEMENT_DATA_SUCCESS = 'REPLACEMENT_DATA_SUCCESS'\nexport const REPLACEMENT_DATA_FAILURE = 'REPLACEMENT_DATA_FAILURE'\n","import * as types from \"../types\";\n\nexport const fetchFuelRequest = ({ requestData }) => ({\n type: types.FETCH_FUEL_REQUEST,\n payload: {\n requestData,\n },\n});\n\nexport const fetchFuelSuccess = ({ fuel }) => ({\n type: types.FETCH_FUEL_SUCCESS,\n payload: {\n fuel,\n },\n});\n\nexport const fetchFuelFailure = ({ error }) => ({\n type: types.FETCH_FUEL_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchThresholdRequest = ({ requestDevice }) => ({\n type: types.FETCH_THRESHOLD_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchThresholdSuccess = ({ thresholdValue }) => ({\n type: types.FETCH_THRESHOLD_SUCCESS,\n payload: {\n thresholdValue,\n },\n});\n\nexport const fetchThresholdFailure = ({ error }) => ({\n type: types.FETCH_THRESHOLD_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchSummaryRequest = ({ requestDevice }) => ({\n type: types.FETCH_SUMMARY_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchSummarySuccess = ({ summary }) => ({\n type: types.FETCH_SUMMARY_SUCCESS,\n payload: {\n summary,\n },\n});\n\nexport const fetchSummaryFailure = ({ error }) => ({\n type: types.FETCH_SUMMARY_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchFuelTicketRequest = ({ requestTicket }) => ({\n type: types.FUEL_TICKET_METADATA_REQUEST,\n payload: {\n requestTicket,\n },\n});\n\nexport const fetchFuelTicketSuccess = ({ resFuelTicket }) => ({\n type: types.FUEL_TICKET_METADATA_SUCCESS,\n payload: {\n resFuelTicket,\n },\n});\n\nexport const fetchFuelTicketFailure = ({ error }) => ({\n type: types.FUEL_TICKET_METADATA_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const dashboardStyles = makeStyles((theme) => ({\n inputEvent:{\n background: \"#651fff\",\n height: \"45px\",\n width: \"200px\",\n borderRadius: \"4px\",\n color: \"#FFFFFF\",\n padding: \"0 0.5em\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n fuelButton:{\n height: \"45px\",\n width: \"200px\",\n borderRadius: \"4px\",\n color: \"#000000\",\n padding: \"0 0.5em\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor:\"pointer\",\n textTransform:\"uppercase\",\n fontSize:\"1.5em\",\n border:\"none\",\n outline:\"none\"\n },\n acceptButton:{\n background:\"#651fff\",\n color:\"#fff\"\n }\n}));\n","import * as types from \"../types\";\n\nexport const fuelCloseTicketRequest = ({ requestCloseFuelTicket }) => ({\n type: types.FUEL_TICKET_REQUEST,\n payload: {\n requestCloseFuelTicket,\n },\n});\n\nexport const fuelCloseTicketSuccess = ({ resCloseFuelTicket }) => ({\n type: types.FUEL_TICKET_SUCCESS,\n payload: {\n resCloseFuelTicket,\n },\n});\n\nexport const fuelCloseTicketFailure = ({ error }) => ({\n type: types.FUEL_TICKET_FAILURE,\n payload: {\n error: error.message,\n },\n});\n\nexport const fuelCloseTicketReset = () => ({\n type: types.FUEL_TICKET_RESET,\n});\n","import React, { useEffect, useState } from \"react\";\nimport FuelChart from \"../../fusionChart/fuelChart\";\nimport SpeedChart from \"../../fusionChart/speedChart\";\nimport BatteryVoltage from \"../../fusionChart/batteryVoltageChart\";\nimport FuelADC from \"../../fusionChart/fuelAdcChart\";\nimport { connect } from \"react-redux\";\nimport { fetchFuelRequest } from \"../../store/actions/fetchfuelsAction\";\nimport { fetchThresholdRequest } from \"../../store/actions/fetchThresholdValueAction\";\nimport { fetchSummaryRequest } from \"../../store/actions/fetchSummaryAction\";\nimport { fetchFuelTicketRequest } from \"../../store/actions/fetchfuelTicketAction\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport { useParams, useLocation } from 'react-router-dom';\nimport { dashboardStyles } from \"./dashboard.styles\";\nimport { fuelCloseTicketRequest, fuelCloseTicketReset } from \"../../store/actions/fuelTicketAction\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nconst Dashboard = ({ ...props }) => {\n const fuelticketMetadata=props.fuelTicketData?.data;\n const { ticketId,id, date , time } = useParams();\n const [chart, setChart] = useState(1);\n const classes = dashboardStyles();\n const [startTime, setStartTime] = useState(Number(time) || 0);\n const [endTime, setEndTime] = useState(Number(time) + 2 || 24);\n const location = useLocation();\n \n const [eventStartTime,setEventStartTime] = useState(\"\");\n const [eventEndTime,setEventEndTime] = useState(\"\");\n const [fuelEvent,setFuelEvent] = useState(\"Select Event\");\n const [comment,setComment] = useState(\"\");\n\n\n useEffect(()=>{\n if(location.pathname.startsWith(\"/charts\")){\n let requestData = {\n device_id: id,\n date: date,\n };\n let requestDevice = {\n device_id: id,\n };\n let requestTicket = {\n id: ticketId,\n };\n props.fuelSubmit({ requestData });\n props.threshold({ requestDevice });\n props.summary({ requestDevice });\n props.fuelTicket({requestTicket})\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n },[location.pathname, id, date])\n\n useEffect(()=>{\n if(props.closeTicketData?.status){\n if(window.confirm(`${props.closeTicketData?.message}`)){\n let requestTicket = {\n id: ticketId,\n };\n props.fuelTicket({requestTicket})\n props.closeTicketReset()\n }\n }else if(props.closeTicketData && !props.closeTicketData?.status){\n if(window.confirm(`${props.closeTicketData?.message}`)){\n let requestTicket = {\n id: ticketId,\n };\n props.fuelTicket({requestTicket})\n props.closeTicketReset()\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n },[props.closeTicketData])\n\n const handleChart = (event) => {\n const chartType = event.target.value;\n setChart(chartType);\n };\n\n const handleStartTime = (event) => {\n setStartTime(event.target.value);\n };\n\n const handleEndTime = (event) => {\n setEndTime(event.target.value);\n };\n\n function changeChart() {\n if (chart === 2) {\n return ;\n } else if (chart === 3) {\n return ;\n } else {\n return ;\n }\n }\n\n const hours = [\n { value: 1, label: \"1 AM\" },\n { value: 2, label: \"2 AM\" },\n { value: 3, label: \"3 AM\" },\n { value: 4, label: \"4 AM\" },\n { value: 5, label: \"5 AM\" },\n { value: 6, label: \"6 AM\" },\n { value: 7, label: \"7 AM\" },\n { value: 8, label: \"8 AM\" },\n { value: 9, label: \"9 AM\" },\n { value: 10, label: \"10 AM\" },\n { value: 11, label: \"11 AM\" },\n { value: 12, label: \"12 PM\" },\n { value: 13, label: \"1 PM\" },\n { value: 14, label: \"2 PM\" },\n { value: 15, label: \"3 PM\" },\n { value: 16, label: \"4 PM\" },\n { value: 17, label: \"5 PM\" },\n { value: 18, label: \"6 PM\" },\n { value: 19, label: \"7 PM\" },\n { value: 20, label: \"8 PM\" },\n { value: 21, label: \"9 PM\" },\n { value: 22, label: \"10 PM\" },\n { value: 23, label: \"11 PM\" },\n];\n\n const handleTimeInputChange=(e)=>{\n if(e.target.name === \"startEvent\"){\n setEventStartTime(e.target.value);\n }else if(e.target.name === \"endEvent\"){\n setEventEndTime(e.target.value)\n }else if(e.target.name === \"fuel-event\"){\n setFuelEvent(e.target.value)\n }\n }\n\n let requestCloseFuelTicket={\n user_id: fuelticketMetadata?.user_id,\n record_id: fuelticketMetadata?.record_id,\n type: \"external\",\n close_option: true,\n dealer_reassign: false,\n reject_option: false,\n customer_type: \"Self\",\n customer_index: \"Happy\",\n need_field_action: false,\n completion_close_by: fuelticketMetadata?.user_id,\n }\n\n const handleAccept=()=>{\n if(fuelticketMetadata?.event !== \"No Fuel Event\"){\n requestCloseFuelTicket['tag']=fuelticketMetadata?.tags.approve[0]\n requestCloseFuelTicket['comment']=comment || \"Fuel Event Verified\"\n props.closeTicket({requestCloseFuelTicket})\n }else{\n if(eventStartTime && eventEndTime && fuelEvent){\n requestCloseFuelTicket['tag']=fuelticketMetadata?.tags.approve[1]\n requestCloseFuelTicket['comment']=comment || \"Fuel Event Verified\"\n requestCloseFuelTicket['fuel_alerts_data']={\n fuel_event:{\n start_time :eventStartTime,\n end_time:eventEndTime,\n event :fuelEvent\n }\n }\n props.closeTicket({requestCloseFuelTicket})\n }else{\n alert('Plese Select Event Type, Start Time and End Time')\n }\n }\n }\n\n const handleReject=()=>{\n if(fuelticketMetadata?.event !== \"No Fuel Event\"){\n requestCloseFuelTicket['tag']=fuelticketMetadata?.tags.reject[0]\n requestCloseFuelTicket['comment']=comment || \"Fuel Event Verified\"\n props.closeTicket({requestCloseFuelTicket})\n }else{\n requestCloseFuelTicket['tag']=fuelticketMetadata?.tags.reject[1]\n requestCloseFuelTicket['comment']=comment || \"Fuel Event Verified\"\n props.closeTicket({requestCloseFuelTicket})\n }\n }\n\n const handleCommentChange=(e)=>{\n setComment(e.target.value);\n }\n\n return (\n <>\n \n
\n \n \n Fuel Chart\n Speed Chart\n Battery Voltage Chart\n Fuel ADC Chart\n \n
\n
\n \n \n {hours.map(hour => (\n \n {hour.label}\n \n ))}\n 12 AM\n \n
\n
\n \n \n {hours.map(hour => (\n \n {hour.label}\n \n ))}\n 12 AM\n \n
\n {props.fuelTicketData?.data.event === \"No Fuel Event\" && \n <>\n
\n \n \n Select Event\n Refuel\n Fuel Theft\n \n
\n
\n \n \n
\n
\n \n \n
\n }\n \n

{props.fuelTicketData?.data.event}

\n {chart === 1 ? : changeChart()} \n {props.fuelTicketData?.data.ticket_status === \"Pending\" &&
\n {props.closeTicketLoading ? :\n <>\n
\n \n
\n \n \n \n }\n
}\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n fuelTicketData: state.fuelTicketReducer.resFuelTicket,\n closeTicketData: state.fuelCloseTicketReducer.resCloseFuelTicket,\n closeTicketLoading: state.fuelCloseTicketReducer.loading,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n fuelSubmit: ({ requestData }) => dispatch(fetchFuelRequest({ requestData })),\n threshold: ({ requestDevice }) =>\n dispatch(fetchThresholdRequest({ requestDevice })),\n summary: ({ requestDevice }) =>\n dispatch(fetchSummaryRequest({ requestDevice })),\n fuelTicket: ({ requestTicket }) =>\n dispatch(fetchFuelTicketRequest({ requestTicket })),\n closeTicket: ({ requestCloseFuelTicket }) =>\n dispatch(fuelCloseTicketRequest({ requestCloseFuelTicket })),\n closeTicketReset: () =>\n dispatch(fuelCloseTicketReset()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Dashboard);\n","import { makeStyles } from '@material-ui/core/styles'\n\nexport const homeStyles = makeStyles((theme) => {\n const commonTileStyles = {\n boxShadow: '2px 2px 30px rgba(0,0,0,0.1)',\n '-webkit-box-shadow': '2px 2px 30px rgba(0,0,0,0.1)',\n '-moz-box-shadow': '2px 2px 30px rgba(0,0,0,0.1)',\n borderRadius: '10px',\n }\n\n return {\n root: {\n width: '100%',\n height: '100%',\n },\n tilesWrapper: {\n maxWidth: '1400px',\n height: '100%',\n margin: '1em auto',\n display: 'flex',\n justifyContent: 'space-evenly',\n flexWrap: 'wrap',\n padding: '0.5em 0',\n },\n navbar: {\n maxWidth: '1400px',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '0.5em',\n margin: '0.5em auto',\n boxShadow: '0 2px 2px -2px rgba(0,0,0,.2)',\n },\n messageContainer: {\n height: '90vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n messageHeading: {\n textAlign: 'center',\n margin: '3em auto',\n padding: '8em',\n },\n deviceTiles: {\n width: '100%',\n padding: '1em',\n overflowY: 'scroll',\n ...commonTileStyles,\n },\n tiles1: {\n width: '30%',\n height: '900px',\n padding: '1em',\n overflowY: 'scroll',\n ...commonTileStyles,\n },\n map: {\n width: '100%',\n height: '550px',\n margin: '10px',\n overflowY: 'scroll',\n ...commonTileStyles,\n },\n tiles2: {\n width: '30%',\n display: 'flex',\n padding: '1em',\n ...commonTileStyles,\n },\n tiles4: {\n width: '30%',\n height: '900px',\n overflowY: 'scroll',\n ...commonTileStyles,\n },\n tiles5: {\n minWidth: '65%',\n minHeight: '500px',\n ...commonTileStyles,\n },\n tiles6: {\n minWidth: '28%',\n height: '500px',\n ...commonTileStyles,\n },\n tiles7: {\n minWidth: '70%',\n borderRadius: '10px',\n },\n tiles8: {\n width: '100%',\n ...commonTileStyles,\n },\n tiles9: {\n width: '100%',\n ...commonTileStyles,\n },\n newTiles9: {\n width: '100%',\n ...commonTileStyles,\n },\n chartTile: {\n width: '100%',\n margin: '10px',\n ...commonTileStyles,\n },\n chart: {\n width: '100%',\n ...commonTileStyles,\n },\n chartButton: {\n background: '#651fff ',\n height: '45px',\n width: '10em',\n borderRadius: '4px',\n color: '#FFFFFF',\n padding: '0 0.5em',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: 'pointer',\n },\n installationDetailsContent: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n gap: '1em',\n },\n float: {\n position: 'fixed',\n width: '60px',\n height: '60px',\n bottom: '40px',\n right: '40px',\n backgroundColor: '#651fff',\n color: '#FFF',\n borderRadius: '50px',\n textAlign: 'center',\n boxShadow: '2px 2px 3px #999',\n cursor: 'pointer',\n transitionDelay: '10ms',\n '&:hover': {\n width: '62px',\n height: '62px',\n },\n },\n }\n})\n","import { makeStyles } from '@material-ui/core/styles'\n\nexport const fuelsummaryStyles = makeStyles((theme) => ({\n fuelSummaryContent: {\n display: 'flex',\n gap: '1.5em',\n alignItems: 'center',\n justifyContent: 'space-between',\n flex: 1,\n '& > p': {\n margin: 0,\n padding: '0.5em',\n fontSize: '1em',\n color: '#666666',\n },\n '& > span': {\n margin: 0,\n padding: '0.5em',\n fontSize: '1em',\n fontWeight: 'bold',\n display: 'block',\n },\n },\n}))\n","import React from 'react'\nimport { fuelsummaryStyles } from './fuelSummary.styles'\nimport { connect } from 'react-redux'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport Paper from '@material-ui/core/Paper'\n\nconst FuelSummary = ({\n fuelsummary,\n fuelSummaryLoading,\n fuelmodel,\n modelLoading,\n ...props\n}) => {\n const classes = fuelsummaryStyles()\n\n const FuelSummaryItem = ({ icon, label, data, loading }) => {\n return (\n
\n

{icon || label}

\n {loading ? (\n \n ) : (\n <>\n {!data ? (\n \n ) : (\n {data}\n )}\n \n )}\n
\n )\n }\n\n const fuelSummaryList = [\n {\n label: 'Fuel Refill Delta:',\n data: fuelsummary?.fuel_refill_delta[0],\n },\n {\n label: 'Alert enable register:',\n data: fuelsummary?.alert_enable_register[0],\n },\n {\n label: 'Obd Method:',\n data: fuelsummary?.obd_method[0],\n },\n {\n label: 'Fuel Tank Capacity:',\n data: fuelmodel?.fuel_tank_capacity[0],\n },\n ]\n\n const fuelCoefficients = [\n { label: 'Fuel coef a', value: fuelsummary?.fuel_coef_a[0] },\n { label: 'Fuel coef b', value: fuelsummary?.fuel_coef_b[0] },\n { label: 'Fuel coef c', value: fuelsummary?.fuel_coef_c[0] },\n { label: 'Fuel coef d', value: fuelsummary?.fuel_coef_d[0] },\n ]\n\n const temperatureCoefficients = [\n { label: 'Temp coef c', value: fuelsummary?.temp_coef_c[0] },\n { label: 'Temp coef b', value: fuelsummary?.temp_coef_b[0] },\n ]\n\n return (\n
\n <>\n {fuelSummaryList.map((item, index) => (\n \n ))}\n \n
\n
\n \n \n \n \n {fuelCoefficients.map((coeff) => (\n \n {coeff.label}\n \n ))}\n \n \n \n \n {fuelCoefficients.map((coeff) => (\n \n {fuelSummaryLoading ? (\n \n ) : (\n <>\n {!fuelsummary ? (\n \n ) : (\n
{coeff.value}
\n )}\n \n )}\n \n ))}\n
\n
\n \n
\n
\n
\n \n \n \n \n {temperatureCoefficients.map((coeff) => (\n \n {coeff.label}\n \n ))}\n \n \n \n \n {temperatureCoefficients.map((coeff) => (\n \n {fuelSummaryLoading ? (\n \n ) : (\n <>\n {!fuelsummary ? (\n \n ) : (\n
{coeff.value}
\n )}\n \n )}\n \n ))}\n
\n
\n \n
\n
\n
\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n fuelsummary: state.fuelSummaryReducer.fuelSummary,\n fuelSummaryLoading: state.fuelSummaryReducer.loading,\n fuelmodel: state.fuelModelReducer.fuelModel,\n modelLoading: state.fuelModelReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FuelSummary)\n","import { makeStyles } from '@material-ui/core/styles'\n\nexport const summaryStyles = makeStyles((theme) => ({\n summaryContainer: {\n display: 'flex',\n gap: '2em',\n alignItems: 'center',\n justifyContent: 'space-between',\n flex: 1,\n '& > p': {\n margin: 0,\n padding: '0.4em',\n fontSize: '1em',\n color: '#666666',\n },\n '& > span': {\n margin: 0,\n padding: '0.4em',\n fontSize: '1em',\n fontWeight: 'bold',\n display: 'block',\n },\n },\n}))\n","export default class PointsOnMap {\n lats!: any[];\n lngs!: any[];\n ids!: any[];\n}\n","export default class Patches {\n private duration: number;\n private area: number;\n private centroid_lat: number;\n private centroid_lon: number;\n private id: number;\n private fuel: number;\n private radius: number;\n private patch_tag: string;\n\n constructor(\n duration: number,\n area: number,\n centroid_lat: number,\n centroid_lon: number,\n id: number,\n fuel: number,\n radius: number,\n patch_tag: string\n ) {\n this.duration = duration;\n this.area = area;\n this.centroid_lat = centroid_lat;\n this.centroid_lon = centroid_lon;\n this.id = id;\n this.fuel = fuel;\n this.radius = radius;\n this.patch_tag = patch_tag;\n }\n}\n","export default class Commutes {\n private start: Array;\n private p20: Array;\n private p40: Array;\n private p60: Array;\n private p80: Array;\n private end: Array;\n private id: number;\n\n constructor(\n start: Array,\n p20: Array,\n p40: Array,\n p60: Array,\n p80: Array,\n end: Array,\n id: number\n ) {\n this.start = start;\n this.p20 = p20;\n this.p40 = p40;\n this.p60 = p60;\n this.p80 = p80;\n this.end = end;\n this.id = id;\n }\n}\n","import Commutes from \"./Commutes\";\nimport Patches from \"./Patches\";\n\nexport default class DaySummary {\n private dateId: string; // yyyy-MM-dd \n private date: Date;\n private computationId: number;\n private idling_time: number;\n private job_time: number;\n private haulage_time: number;\n private distance: number;\n private total_fuel: number;\n private total_fuel_lit: number;\n private max_fuel: number;\n private min_fuel: number;\n private area: number;\n private device_fk_id: number;\n private details_flag: number;\n private patches: Patches[];\n private commutes: Commutes[];\n\n constructor(\n $dateId: string,\n $date: Date,\n $computationId: number,\n $idling_time: number,\n $job_time: number,\n $haulage_time: number,\n $distance: number,\n $total_fuel: number,\n $total_fuel_lit: number,\n $max_fuel: number,\n $min_fuel: number,\n $area: number,\n $device_fk_id: number,\n $details_flag: number,\n $patches: Patches[],\n $commutes: Commutes[]\n ) {\n this.dateId = $dateId;\n this.date = $date;\n this.computationId = $computationId;\n this.idling_time = $idling_time;\n this.job_time = $job_time;\n this.haulage_time = $haulage_time;\n this.distance = $distance;\n this.total_fuel = $total_fuel;\n this.total_fuel_lit = $total_fuel_lit;\n this.max_fuel = $max_fuel;\n this.min_fuel = $min_fuel;\n this.area = $area;\n this.device_fk_id = $device_fk_id;\n this.details_flag = $details_flag;\n this.patches = $patches;\n this.commutes = $commutes;\n }\n\n /**\n * Getter $dateId\n * @return {string}\n */\n public get $dateId(): string {\n return this.dateId;\n }\n\n /**\n * Getter $date\n * @return {Date}\n */\n public get $date(): Date {\n return this.date;\n }\n\n /**\n * Getter $computationId\n * @return {number}\n */\n public get $computationId(): number {\n return this.computationId;\n }\n\n /**\n * Getter $idling_time\n * @return {number}\n */\n public get $idling_time(): number {\n return this.idling_time;\n }\n\n /**\n * Getter $job_time\n * @return {number}\n */\n public get $job_time(): number {\n return this.job_time;\n }\n\n /**\n * Getter $haulage_time\n * @return {number}\n */\n public get $haulage_time(): number {\n return this.haulage_time;\n }\n\n /**\n * Getter $distance\n * @return {number}\n */\n public get $distance(): number {\n return this.distance;\n }\n\n /**\n * Getter $total_fuel\n * @return {number}\n */\n public get $total_fuel(): number {\n return this.total_fuel;\n }\n\n /**\n * Getter $total_fuel_lit\n * @return {number}\n */\n public get $total_fuel_lit(): number {\n return this.total_fuel_lit;\n }\n\n /**\n * Getter $max_fuel\n * @return {number}\n */\n public get $max_fuel(): number {\n return this.max_fuel;\n }\n\n /**\n * Getter $min_fuel\n * @return {number}\n */\n public get $min_fuel(): number {\n return this.min_fuel;\n }\n\n /**\n * Getter $area\n * @return {number}\n */\n public get $area(): number {\n return this.area;\n }\n\n /**\n * Getter $device_fk_id\n * @return {number}\n */\n public get $device_fk_id(): number {\n return this.device_fk_id;\n }\n\n /**\n * Getter $details_flag\n * @return {number}\n */\n public get $details_flag(): number {\n return this.details_flag;\n }\n\n /**\n * Getter $patches\n * @return {Array}\n */\n public get $patches(): Array {\n return this.patches;\n }\n\n /**\n * Getter $commutes\n * @return {Array}\n */\n public get $commutes(): Array {\n return this.commutes;\n }\n\n /**\n * Setter $dateId\n * @param {string} value\n */\n public set $dateId(value: string) {\n this.dateId = value;\n }\n\n /**\n * Setter $date\n * @param {Date} value\n */\n public set $date(value: Date) {\n this.date = value;\n }\n\n /**\n * Setter $computationId\n * @param {number} value\n */\n public set $computationId(value: number) {\n this.computationId = value;\n }\n\n /**\n * Setter $idling_time\n * @param {number} value\n */\n public set $idling_time(value: number) {\n this.idling_time = value;\n }\n\n /**\n * Setter $job_time\n * @param {number} value\n */\n public set $job_time(value: number) {\n this.job_time = value;\n }\n\n /**\n * Setter $haulage_time\n * @param {number} value\n */\n public set $haulage_time(value: number) {\n this.haulage_time = value;\n }\n\n /**\n * Setter $distance\n * @param {number} value\n */\n public set $distance(value: number) {\n this.distance = value;\n }\n\n /**\n * Setter $total_fuel\n * @param {number} value\n */\n public set $total_fuel(value: number) {\n this.total_fuel = value;\n }\n\n /**\n * Setter $total_fuel_lit\n * @param {number} value\n */\n public set $total_fuel_lit(value: number) {\n this.total_fuel_lit = value;\n }\n\n /**\n * Setter $max_fuel\n * @param {number} value\n */\n public set $max_fuel(value: number) {\n this.max_fuel = value;\n }\n\n /**\n * Setter $min_fuel\n * @param {number} value\n */\n public set $min_fuel(value: number) {\n this.min_fuel = value;\n }\n\n /**\n * Setter $area\n * @param {number} value\n */\n public set $area(value: number) {\n this.area = value;\n }\n\n /**\n * Setter $device_fk_id\n * @param {number} value\n */\n public set $device_fk_id(value: number) {\n this.device_fk_id = value;\n }\n\n /**\n * Setter $details_flag\n * @param {number} value\n */\n public set $details_flag(value: number) {\n this.details_flag = value;\n }\n\n /**\n * Setter $patches\n * @param {Array} value\n */\n public set $patches(value: Array) {\n this.patches = value;\n }\n\n /**\n * Setter $commutes\n * @param {Array} value\n */\n public set $commutes(value: Array) {\n this.commutes = value;\n }\n}\n","import PointsOnMap from \"../models/PointsOnMap\";\nimport Patches from \"../models/Patches\";\nimport Commutes from \"../models/Commutes\";\nimport DaySummary from \"../models/DaySummary\";\n\nconst MAGIC_STRING =\n \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*_+|:<>?-=.,/\";\nconst BASE = 40;\nconst STATUS_MAGIC_STRING =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*_+|:<>?-=.,/\";\n\nexport const getData = (data) => {\n return data ? data : \"NA\";\n};\n\nexport const getDate = (today) => {\n var date = new Date(today),\n mnth = (\"0\" + (date.getMonth() + 1)).slice(-2),\n day = (\"0\" + date.getDate()).slice(-2);\n return [day, mnth, date.getFullYear()].join(\"-\");\n};\n\nexport const getDateDiff = (today) => {\n var date = new Date(today);\n var date2 = new Date();\n\n var mnth = (\"0\" + (date.getMonth() + 1)).slice(-2);\n var day = (\"0\" + date.getDate()).slice(-2);\n\n var Difference_In_Time = date.getTime() - date2.getTime();\n\n var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);\n\n if (Difference_In_Days > 10) {\n return (\n

\n {[day, mnth, date.getFullYear()].join(\"-\")}\n

\n );\n } else if (Difference_In_Days < 10 && Difference_In_Days > 0) {\n return (\n

\n {[day, mnth, date.getFullYear()].join(\"-\")}\n

\n );\n } else {\n return (\n

\n {[day, mnth, date.getFullYear()].join(\"-\")}\n

\n );\n }\n};\n\nexport const getDateToday = (today) => {\n var date = new Date(today),\n mnth = (\"0\" + (date.getMonth() + 1)).slice(-2),\n day = (\"0\" + date.getDate()).slice(-2);\n return [date.getFullYear(), mnth, day].join(\"-\");\n};\n\nexport const culpritValue = (value) => {\n if (value === \"\") {\n return \"Not a Culprit\";\n } else if (value === true) {\n return \"True\";\n } else {\n return \"False\";\n }\n};\n\nexport const getTimeSummary = (date) => {\n var milliSeconds = Date.parse(date);\n const dateObject = new Date(milliSeconds);\n const humanDateFormat = dateObject.toLocaleTimeString();\n\n const newDate =\n dateObject.toLocaleDateString(\"en-US\", { day: \"numeric\" }) +\n \"-\" +\n dateObject.toLocaleDateString(\"en-US\", { month: \"numeric\" }) +\n \"-\" +\n dateObject.toLocaleDateString(\"en-US\", { year: \"numeric\" });\n\n const check = newDate + \" , \" + humanDateFormat;\n\n return check;\n};\n\nexport const boolValue = (value) => {\n if (value === null) {\n return \"NA\";\n } else if (value === true) {\n return \"True\";\n } else {\n return \"False\";\n }\n};\n\nexport const getPathColor = (value) => {\n console.log(\"value :\", value);\n if (value === 0) {\n console.log(\"yellow\");\n return \"#FFFF00\"; //yellow\n } else if (value === 1) {\n return \"#00FF00\"; //green\n } else if (value === 2) {\n return \"#0000FF\"; //blue\n } else if (value === 3) {\n return \"#808080\"; //grey\n } else if (value === 4) {\n return \"#FFC0CB\"; //pink\n } else if (value === 5) {\n return \"#A52A2A\"; //brown\n } else {\n return \"#FF0000\"; //red\n }\n};\n\nexport const getRange = (arr) => {\n let ranges = [];\n let initial = 0;\n let end = 0;\n let startValue = arr[0];\n\n for (let i = 1; i < arr.length; i++) {\n if (arr[i] === startValue) {\n end++;\n } else {\n startValue = arr[i];\n ranges.push({\n start: initial,\n end: end,\n value: arr[i - 1],\n });\n initial = i;\n end = i;\n }\n }\n if (initial !== arr.length) {\n ranges.push({\n start: initial,\n end: arr.length - 1,\n value: arr[arr.length - 1],\n });\n }\n return ranges;\n};\n\nexport const getCustomerColor = (data) => {\n if (data === 0) {\n return \"#00FF00\";\n } else if (data === 1) {\n return \"#FF0000\"; //red\n }\n};\n\nexport const getTimeStampIST = (time) => {\n var milliSeconds = Date.parse(time);\n const dateObject = new Date(milliSeconds);\n const humanDateFormat = dateObject.toLocaleString();\n\n return humanDateFormat;\n};\n\n//Day summary\nexport const tripTimeFromDaySummary = (totalTime) => {\n let dataToDisplay = [];\n let secs = totalTime;\n let mins = Math.trunc(secs / 60);\n let hours = Math.trunc(mins / 60);\n\n if (hours < 10) {\n dataToDisplay.push(\"0\");\n dataToDisplay.push(hours);\n } else {\n dataToDisplay.push(hours);\n }\n\n dataToDisplay.push(\":\");\n mins %= 60;\n if (mins < 10) {\n dataToDisplay.push(\"0\");\n dataToDisplay.push(mins);\n } else {\n dataToDisplay.push(mins);\n }\n return dataToDisplay.join(\"\");\n};\n\n//Day summary time difference\nexport const getTimeDiff = (deviceTime) => {\n let deviceLastSeen = new Date(deviceTime);\n let currentTime = new Date();\n let diffInMs = currentTime.getTime() - deviceLastSeen.getTime();\n\n const diffTime = [];\n\n const msInDays = 1000 * 60 * 60 * 24;\n const msInHour = 1000 * 60 * 60;\n const msInMinute = 1000 * 60;\n\n let diffInMins = Math.trunc(diffInMs / msInMinute);\n let diffInHrs = Math.trunc(diffInMs / msInHour);\n let diffInDays = Math.trunc(diffInMs / msInDays);\n let diffInMonth = Math.trunc(diffInDays / 30);\n let diffInYear = Math.trunc(diffInMonth / 12);\n\n if (diffInMins < 60) {\n if (diffInMins > 1) {\n diffTime.push(diffInMins, \"Mins\", \" \", \"Ago\");\n } else if (diffInMins === 0) {\n diffTime.push(\"Just Now\");\n } else {\n diffTime.push(diffInMins, \"Min\", \" \", \"Ago\");\n }\n } else if (diffInHrs < 24) {\n if (diffInHrs > 1) {\n diffTime.push(diffInHrs, \"Hours\", \" \", \"Ago\");\n } else {\n diffTime.push(diffInHrs, \"Hour\", \" \", \"Ago\");\n }\n } else if (diffInDays < 30) {\n if (diffInDays > 1) {\n diffTime.push(diffInDays, \"Days\", \" \", \"Ago\");\n } else {\n diffTime.push(diffInDays, \"Day\", \" \", \"Ago\");\n }\n } else if (diffInMonth < 12) {\n if (diffInMonth > 1) {\n diffTime.push(diffInMonth, \"Months\", \" \", \"Ago\");\n } else {\n diffTime.push(diffInMonth, \"Month\", \" \", \"Ago\");\n }\n } else {\n if (diffInYear > 1) {\n diffTime.push(diffInYear, \"Years\", \" \", \"Ago\");\n } else {\n diffTime.push(diffInYear, \"Year \", \" \", \"Ago\");\n }\n }\n\n return diffTime.join(\" \");\n};\n\nexport const getArea = (area) => {\n const SQR_MTS_ACRES = 0.000247105;\n let areas = (area * SQR_MTS_ACRES).toFixed(2);\n\n return areas;\n};\n\nexport const parseDayDetails = (data) => {\n const commutesParsed = addArraysToDecompressedData(data.commutes);\n const patchesParsed = addArraysToDecompressedData(data.patches);\n const replayParsed = addArraysToDecompressedReplay(data.replay);\n // console.log(\"replayParsed :\", replayParsed);\n data[\"commutes\"] = formPointsFromCommutesOrPatches(commutesParsed);\n data[\"patches\"] = formPointsFromCommutesOrPatches(patchesParsed);\n data[\"replay\"] = formPointsFromReplay(replayParsed);\n // console.log(\"data :\", data);\n return data;\n};\n\nfunction addArraysToDecompressedData(commuteOrPatch) {\n let refArray = commuteOrPatch.ref;\n let ref_lat = refArray[0];\n let ref_lon = refArray[1];\n const commute_lat_array = getFinalArray(commuteOrPatch.lat, ref_lat);\n const commute_lon_array = getFinalArray(commuteOrPatch.lon, ref_lon);\n commuteOrPatch[\"lat\"] = commute_lat_array;\n commuteOrPatch[\"lon\"] = commute_lon_array;\n delete commuteOrPatch[\"ref\"];\n return commuteOrPatch;\n}\n\nfunction addArraysToDecompressedReplay(replay) {\n let ref_lat = [replay.ref_lat];\n let ref_long = [replay.ref_lon];\n const commute_lat_array = getFinalReplayArray(replay.lats, ref_lat);\n const commute_lon_array = getFinalReplayArray(replay.lons, ref_long);\n // console.log(\"replay : \", replay);\n const ts = getCompleteTripTimeStamp(replay.ts, replay.ref_ts);\n const status = getTractorIgnitionStatus(replay.status);\n replay[\"lats\"] = commute_lat_array;\n replay[\"lons\"] = commute_lon_array;\n replay[\"ts\"] = ts;\n replay[\"status\"] = status;\n delete replay[\"ref_lat\"];\n return replay;\n}\n\nfunction formPointsFromCommutesOrPatches(commutesOrPatches) {\n const lats = commutesOrPatches.lat;\n const lngs = commutesOrPatches.lon;\n const ids = commutesOrPatches.id;\n const lat = [];\n const lon = [];\n const id = [];\n\n for (let i = 0; i < lats.length; i++) {\n lat.push(lats[i]);\n lon.push(lngs[i]);\n id.push(ids[i]);\n }\n\n const points = new PointsOnMap();\n points.lats = lat;\n points.lngs = lon;\n points.ids = id;\n\n return points;\n}\n\nfunction formPointsFromReplay(replay) {\n const lats = replay.lats;\n const lngs = replay.lons;\n\n const lat = [];\n const lon = [];\n const id = [];\n const ts = replay.ts;\n const status = replay.status;\n for (let i = 0; i < lats.length; i++) {\n lat.push(lats[i]);\n lon.push(lngs[i]);\n id.push(id[i]);\n ts.push(ts[i]);\n status.push(status[i]);\n }\n const points = new PointsOnMap();\n points.lats = lat;\n points.lngs = lon;\n points.ids = id;\n points.ts = ts;\n points.status = status;\n return points;\n}\n\nfunction getFinalArray(inputStr, refArr) {\n const opArray = [];\n\n const subStrArray = getSubStrings(inputStr);\n\n for (let i = 0; i < subStrArray.length; i++) {\n let subStr = subStrArray[i];\n let tempArray = getDiffArray(subStr, refArr[i]);\n opArray.push(tempArray);\n }\n return opArray;\n}\n\nfunction getFinalReplayArray(inputStr, refArr) {\n let outputArray = getIntegerArray(inputStr, 36);\n let diffOut = getBaseValueDiff(outputArray);\n let updateDoubleData = getDifferenceData(diffOut);\n let finalData = [];\n finalData.push(refArr);\n for (let i = 1; i < updateDoubleData.length; i++) {\n finalData.push(\n parseFloat(finalData[i - 1]) + parseFloat(updateDoubleData[i])\n );\n }\n return finalData;\n}\n\nfunction getCompleteTripTimeStamp(ts, ref_time) {\n let output_array = getIntegerArray(ts, 36);\n let finalData = [];\n finalData.push(convertNotificationTimeStampToMillis(ref_time));\n for (let i = 1; i < output_array.length; i++) {\n finalData.push(finalData[i - 1] + output_array[i] * 1000);\n }\n return finalData;\n}\n\nfunction getTractorIgnitionStatus(status) {\n let count = [];\n let holder = [];\n let currentStatus = parseInt(status[0].toString());\n for (let i = 1; i < status.length; i++) {\n if (isDigit(status[i])) {\n updateStatusArray(getIntValue(holder), currentStatus, count);\n holder = [];\n currentStatus = parseInt(status[i].toString());\n } else {\n let x = STATUS_MAGIC_STRING.indexOf(status[i]);\n if (x < BASE) {\n holder.push(x);\n } else {\n holder.push(x - BASE);\n }\n if (i === status.length - 1) {\n updateStatusArray(getIntValue(holder), currentStatus, count);\n }\n }\n }\n return count;\n}\n\nfunction getSubStrings(inputStr) {\n const positions = [];\n let endIndexArr = [];\n const subStrArray = [];\n let x;\n\n for (let i = 0; i < inputStr.length; i++) {\n x = inputStr.charAt(i);\n\n if (x === MAGIC_STRING.charAt(2 * BASE + 1)) {\n positions.push(i);\n }\n }\n\n positions.unshift(-1);\n endIndexArr = positions;\n let start_ind, end_ind;\n let sub_str;\n\n for (let i = 0; i < endIndexArr.length - 1; i++) {\n start_ind = endIndexArr[i] + 1;\n end_ind = endIndexArr[i + 1];\n sub_str = inputStr.substring(start_ind, end_ind);\n subStrArray.push(sub_str);\n }\n\n return subStrArray;\n}\n\nfunction getDiffArray(subStr, refArr) {\n const pos_arr = [];\n const end_ind_arr = [];\n const diffArr = [];\n\n for (let i = 0; i < subStr.length; i++) {\n pos_arr.push(MAGIC_STRING.indexOf(subStr.charAt(i)));\n }\n\n for (let i = 0; i < pos_arr.length; i++) {\n if (pos_arr[i] < BASE) {\n end_ind_arr.push(i);\n }\n }\n\n end_ind_arr.unshift(-1);\n\n let length_arr = getDifferenceToNextNumber(end_ind_arr);\n let start_ind = 0;\n const base_arr = [];\n\n for (let i = 0; i < length_arr.length; i++) {\n let end_ind = start_ind + length_arr[i];\n\n let temp = pos_arr.slice(start_ind, end_ind);\n\n for (let j = 0; j < temp.length - 1; j++) {\n temp[j] = temp[j] - BASE;\n }\n base_arr.push(temp);\n start_ind = end_ind;\n }\n\n for (let i = 0; i < base_arr.length; i++) {\n diffArr.push(0);\n }\n\n let sum = 0;\n\n for (let i = 0; i < base_arr.length; i++) {\n let tempArr = base_arr[i];\n sum = 0;\n for (let j = 0; j < tempArr.length; j++) {\n sum += tempArr[j] * Math.pow(BASE, tempArr.length - j - 1);\n }\n diffArr[i] = sum;\n }\n\n let shift = diffArr[0];\n for (let i = 0; i < diffArr.length; i++) {\n diffArr[i] = diffArr[i] - shift;\n }\n\n const outArray = [];\n for (let i = 0; i < diffArr.length + 1; i++) {\n if (i === 0) {\n outArray.push(Math.trunc(refArr * 1000000));\n } else {\n outArray.push(0);\n }\n }\n\n for (let i = 1; i < diffArr.length; i++) {\n outArray[i] = Math.trunc(outArray[i - 1] + diffArr[i]);\n }\n\n outArray.pop();\n const opDoubleArray = [];\n for (let i = 0; i < outArray.length; i++) {\n let a = outArray[i] / 1000000;\n opDoubleArray.push(a);\n }\n return opDoubleArray;\n}\n\nfunction getIntegerArray(inputString, BASE) {\n let position = [];\n let x;\n let holder = [];\n for (let i = 0; i < inputString.length; i++) {\n x = MAGIC_STRING.indexOf(inputString.charAt(i));\n if (x < BASE) {\n holder.push(x);\n } else {\n holder.push(x - BASE);\n position.push(getIntValue(holder));\n holder = [];\n }\n }\n return position;\n}\n\nfunction getBaseValueDiff(originalArray) {\n let result = [];\n if (originalArray.length > 1) {\n for (let i = 0; i < originalArray.length; i++) {\n result.push(originalArray[i] - originalArray[0]);\n }\n return result;\n } else {\n return originalArray;\n }\n}\nfunction getDifferenceData(dataList) {\n let updated = [];\n for (let i = 0; i < dataList.length; i++) {\n let val = dataList[i] / 100000;\n updated.push(val);\n }\n return updated;\n}\n\nconst convertNotificationTimeStampToMillis = (timeStamp) =>\n new Date(timeStamp + \"Z\").getTime();\n\nconst isDigit = (c) => \"1234567890\".includes(c);\n\nfunction updateStatusArray(intValue, currentStatus, count) {\n for (let i = 0; i < intValue; i++) {\n count.push(currentStatus);\n }\n}\n\nfunction getIntValue(list) {\n let resultSum = 0;\n list.reverse();\n for (let i = 0; i < list.length; i++) {\n resultSum = resultSum + Math.pow(36, i) * list[i];\n }\n return resultSum;\n}\n\nfunction getDifferenceToNextNumber(originalArray) {\n const result = [];\n if (originalArray.length > 1) {\n for (let i = 1; i <= originalArray.length - 1; i++) {\n result.push(originalArray[i] - originalArray[i - 1]);\n }\n return result;\n } else {\n return originalArray;\n }\n}\n\nexport const parsedFuelAndStatus = (realtime, tractor) => {\n const parsed = [];\n if (realtime.status >= 0) {\n let int = parseInt(realtime.status);\n let some = Number(int).toString(2);\n //pad 0 so that length is 32 and replace \" \" with 0\n const charArray = [...some];\n\n let status = updateStatusReg(charArray);\n if (status === \"NO\") {\n if (realtime.speed === 0) {\n status = \"IDLE\";\n } else if (realtime.time < 300000) {\n status = \"ON\";\n } else {\n status = \"--\";\n }\n }\n\n parsed.push(status);\n }\n\n const {\n fuel_range_params: { start_fuel, end_fuel, fuel_accuracy },\n } = tractor;\n\n const fuel = computeFuelToDisplay(\n realtime.fuel_level_dashboard,\n tractor.app_mask_flags.fuel,\n start_fuel,\n end_fuel,\n fuel_accuracy\n );\n parsed.push(fuel);\n\n return parsed;\n};\n\nfunction updateStatusReg(charArray) {\n //0 - trip on/off\n //1 - ign on/off\n //2 - tractor status idle/running\n //3 - pto on/off\n //4 - ploughing on/off\n let status = \"\";\n if (charArray[charArray.length - 1] === \"1\") {\n if (charArray[charArray.length - 3] === \"1\") {\n if (charArray[charArray.length - 4] === \"1\") {\n status = \"ON\";\n } else {\n status = \"ON\";\n }\n } else {\n status = \"IDLE\";\n }\n } else {\n status = \"OFF\";\n }\n return status;\n}\n\nfunction computeFuelToDisplay(\n fuelInLitres,\n fuelMask,\n startFuel,\n endFuel,\n fuelAccuracy\n) {\n if (fuelMask === 1) {\n //show Fuel\n if (fuelInLitres < startFuel) return \"< \" + startFuel;\n else if (fuelInLitres >= endFuel) return \"> \" + endFuel;\n else if (fuelAccuracy > 0) {\n let stepsToCover = fuelInLitres - startFuel;\n let remainderSteps = stepsToCover % fuelAccuracy;\n let rangeStart = fuelInLitres - remainderSteps;\n let rangeEnd = rangeStart + fuelAccuracy;\n return rangeStart + \" - \" + rangeEnd;\n } else {\n return fuelInLitres.toString();\n }\n } else {\n return \"-\";\n }\n}\n\nexport const parseDaySummary = (daySummary) => {\n const { data } = daySummary;\n let commutes = [];\n let patches = [];\n let com = data.commutes;\n let pat = data.patches;\n for (let i = 0; i < com.id.length; i++) {\n let commute = new Commutes(\n com.start[i],\n com.p20[i],\n com.p40[i],\n com.p60[i],\n com.p80[i],\n com.end[i],\n com.id[i]\n );\n commutes.push(commute);\n }\n\n for (let i = 0; i < pat.id.length; i++) {\n let patch = new Patches(\n pat.running_time[i],\n pat.patch_area[i],\n pat.lat_centroid[i],\n pat.lon_centroid[i],\n pat.id[i],\n pat.fuel_consumed[i],\n pat.boundary_radius_avg[i],\n pat.patch_tags[i]\n );\n patches.push(patch);\n }\n\n let finalDaySummary = new DaySummary(\n data.device_fk_id + data.date,\n data.date,\n data.computation_id,\n data.idling_time,\n data.job_time,\n data.haulage_time,\n data.distance,\n data.total_fuel,\n data.total_fuel_lit,\n data.fuel_params.max,\n data.fuel_params.min,\n data.area,\n data.device_fk_id,\n data.details_flag,\n patches,\n commutes\n );\n\n return finalDaySummary;\n};\n","import { summaryStyles } from './summary.styles'\nimport { connect } from 'react-redux'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport {\n getData,\n getDate,\n getTimeSummary,\n boolValue,\n getDateDiff,\n} from '../../utils'\nimport {\n FaMapMarkerAlt,\n FaMobileAlt,\n FaUserAlt,\n FaBroadcastTower,\n FaTractor,\n} from 'react-icons/fa'\n\nconst Summary = ({\n summary,\n summaryLoading,\n appData,\n appLoading,\n simLoading,\n sim,\n ...props\n}) => {\n const classes = summaryStyles()\n\n const DetailItem = ({ icon, label, data, loading }) => {\n return (\n
\n

{icon || label}

\n {loading ? (\n \n ) : (\n <>\n {!data ? (\n \n ) : (\n {data}\n )}\n \n )}\n
\n )\n }\n\n const detailItems = [\n {\n icon: ,\n data: getData(summary?.[0].user_name),\n },\n {\n icon: ,\n data: getData(summary?.[0].phone),\n },\n {\n icon: ,\n data: `${summary?.[0]?.location}, ${summary?.[0]?.district}, ${summary?.[0]?.state}`,\n },\n {\n icon: ,\n label: '',\n data: getData(summary?.[0]?.tractor_name),\n },\n {\n label: 'Model:',\n data: getData(summary?.[0]?.model),\n },\n {\n label: 'Machinery Type:',\n data: getData(summary?.[0]?.category),\n },\n {\n icon: ,\n data: getData(summary?.[0]?.operator),\n },\n {\n label: 'Sim Active:',\n data: sim?.sim_status,\n },\n {\n label: 'Replaced Device ID:',\n data: getData(summary?.[0]?.label),\n },\n {\n label: 'HW Batch:',\n data: getData(summary?.[0]?.hw_batch),\n },\n {\n label: 'Installation Date:',\n data: getDate(summary?.[0]?.installation_date),\n },\n {\n label: 'Subscription Due Date:',\n data: getDateDiff(summary?.[0]?.subscription_due_date),\n },\n {\n label: 'Dealer Code:',\n data: getData(summary?.[0]?.dealer_code),\n },\n {\n label: 'Area Manager:',\n data: getData(summary?.[0]?.Area_Manager),\n },\n {\n label: 'Last Ping Time (IST):',\n data: getTimeSummary(summary?.[0]?.last_ping_time),\n },\n {\n label: 'Loc Time Stamp (IST):',\n data: getTimeSummary(summary?.[0]?.loc_time_stamp),\n },\n {\n label: 'Customer registered on App:',\n data: boolValue(summary?.[0]?.Customer_registered_on_customer_app),\n },\n {\n label: 'App First Login Date:',\n data: getDate(summary?.[0]?.App_first_login_date),\n },\n {\n label: 'Firm Name:',\n data: getData(summary?.[0]?.firm_name),\n },\n {\n label: 'Subscription Days:',\n data: getData(summary?.[0]?.subscription_days),\n },\n ]\n\n const compareVersions = (version1, version2) => {\n const v1 = version1.split('.').map(Number)\n const v2 = version2.split('.').map(Number)\n\n for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n const num1 = v1[i] || 0\n const num2 = v2[i] || 0\n\n if (num1 > num2) return 1\n if (num1 < num2) return -1\n }\n return 0\n }\n\n const getAppVersionColor = (build, version) => {\n if (build === 'mahindra') {\n return compareVersions(version, '1.9.0') >= 0\n ? '#00FF00'\n : '#FF0000'\n } else if (build === 'simha') {\n return compareVersions(version, '27.8.0') >= 0\n ? '#00FF00'\n : '#FF0000'\n }\n return '#000000'\n }\n\n return (\n
\n

Summary

\n
\n
\n

Device Details:

\n {summaryLoading ? (\n \n ) : (\n <>\n {!summary ? (\n \n ) : (\n {getData(summary?.[0].device_id)}\n )}\n \n )}\n
\n <>\n {detailItems.map((item, index) => (\n \n ))}\n \n
\n

App Version:

\n {appLoading ? (\n \n ) : (\n <>\n {!appData ? (\n \n ) : (\n \n {appData.app_version}\n \n )}\n \n )}\n
\n
\n

Device Tags:

\n {summaryLoading ? (\n \n ) : (\n <>\n {!summary ? (\n \n ) : (\n {summary?.[0]?.device_tag.join(' , ')}\n )}\n \n )}\n
\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n summary: state.summaryReducer.summary,\n summaryLoading: state.summaryReducer.loading,\n appData: state.appReducer.app,\n appLoading: state.appReducer.loading,\n sim: state.simStatusReducer.sim,\n simLoading: state.simStatusReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Summary)\n","import { makeStyles } from '@material-ui/core/styles'\n\nexport const appDetailsStyles = makeStyles((theme) => ({\n appDetailsContent: {\n display: 'flex',\n gap: '2em',\n alignItems: 'center',\n justifyContent: 'space-between',\n flex: 1,\n '& > p': {\n margin: 0,\n padding: '0.5em',\n fontSize: '1em',\n color: '#666666',\n },\n '& > h5': {\n margin: 0,\n padding: '0.5em',\n fontSize: '1em',\n fontWeight: 'bold',\n display: 'block',\n },\n },\n}))\n","import { appDetailsStyles } from './appDetails.styles'\nimport { connect } from 'react-redux'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { getTimeStampIST, getData } from '../../utils'\n\nconst AppDetails = ({ appData, appLoading }) => {\n const classes = appDetailsStyles()\n\n const AppSummaryItem = ({ icon, label, data, loading }) => {\n return (\n
\n

{icon || label}

\n {loading ? (\n \n ) : (\n <>\n {!data ? (\n \n ) : (\n {data}\n )}\n \n )}\n
\n )\n }\n\n const appSummaryList = [\n {\n label: 'Last Open App (IST):',\n data: getTimeStampIST(appData?.Last_open_App),\n },\n {\n label: 'App Build:',\n data: getData(appData?.app_build),\n },\n {\n label: 'App Version:',\n data: getData(appData?.app_version),\n },\n {\n label: 'App Language:',\n data: getData(appData?.app_language),\n },\n {\n label: 'Area Unit:',\n data: getData(appData?.area_unit),\n },\n {\n label: 'Brand:',\n data: getData(appData?.brand),\n },\n ]\n return (\n
\n {appSummaryList.map((item, index) => (\n \n ))}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n appData: state.appReducer.app,\n appLoading: state.appReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AppDetails)\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const fuelInstAttemptsStyles = makeStyles((theme) => ({\n text: {\n display: \"flex\",\n gap: \"2em\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n flex: 1,\n \"& > p\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1em\",\n color: \"#666666\",\n },\n \"& > h5\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1em\",\n fontWeight: \"bold\",\n display: \"block\",\n },\n },\n}));\n","import React from \"react\";\nimport { fuelInstAttemptsStyles } from \"./instAttempts.styles\";\nimport { connect } from \"react-redux\";\nimport Skeleton from \"@material-ui/lab/Skeleton\";\n\nconst InstAttempts = ({ fuelInstAttempts, fuelInstAttemptsLoading }) => {\n const classes = fuelInstAttemptsStyles();\n return (\n
\n
\n

N Installation Attempts:

\n {fuelInstAttemptsLoading ? (\n \n ) : (\n <>\n {!fuelInstAttempts ? (\n \n ) : (\n {fuelInstAttempts.n_installation_attempts[0]}\n )}\n \n )}\n
\n
\n

Installation time in mins:

\n {fuelInstAttemptsLoading ? (\n \n ) : (\n <>\n {!fuelInstAttempts ? (\n \n ) : (\n \n {Object.values(fuelInstAttempts.installation_time_mins) > 0\n ? fuelInstAttempts.installation_time_mins[0].toFixed(2)\n : \"NA\"}\n \n )}\n \n )}\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n fuelInstAttempts: state.instAttemptsReducer.instAttempts,\n fuelInstAttemptsLoading: state.instAttemptsReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InstAttempts);\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { TableComponent } from \"../../elements\";\n\nconst DeviceMount = ({ instImageData }) => {\n const [mountData, setMountData] = useState([]);\n\n useEffect(() => {\n let deviceMountData = [];\n if (instImageData) {\n let device_id = Object.values(instImageData.mount.Device_ID);\n let actual_image = Object.values(instImageData.mount.Actual_Image);\n let reference_1 = Object.values(instImageData.mount.Reference_Image_1);\n let reference_2 = Object.values(instImageData.mount.Reference_Image_2);\n let reference_3 = Object.values(instImageData.mount.Reference_Image_3);\n for (let i = 0; i < device_id.length; i++) {\n deviceMountData.push({\n device: device_id[i],\n actual: actual_image[i],\n reference1: reference_1[i],\n reference2: reference_2[i],\n reference3: reference_3[i],\n });\n }\n setMountData(deviceMountData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [instImageData]);\n\n return ;\n};\n\nconst mapStateToProps = (state) => ({\n instImageData: state.instImageReducer.instImage,\n instImageLoading: state.instImageReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DeviceMount);\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { TableComponent } from \"../../elements\";\n\nconst Antennta = ({ instImageData }) => {\n const [antenntaData, setAntenntaData] = useState([]);\n\n useEffect(() => {\n let antenntaData = [];\n if (instImageData) {\n let device_id = Object.values(instImageData.antennta.Device_ID);\n let actual_image = Object.values(instImageData.antennta.Actual_Image);\n let reference_1 = Object.values(instImageData.antennta.Reference_Image_1);\n let reference_2 = Object.values(instImageData.antennta.Reference_Image_2);\n let reference_3 = Object.values(instImageData.antennta.Reference_Image_3);\n for (let i = 0; i < device_id.length; i++) {\n antenntaData.push({\n device: device_id[i],\n actual: actual_image[i],\n reference1: reference_1[i],\n reference2: reference_2[i],\n reference3: reference_3[i],\n });\n }\n setAntenntaData(antenntaData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [instImageData]);\n\n return ;\n};\n\nconst mapStateToProps = (state) => ({\n instImageData: state.instImageReducer.instImage,\n instImageLoading: state.instImageReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Antennta);\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { TableComponent } from \"../../elements\";\n\nconst Alternator = ({ instImageData }) => {\n const [alternatorData, setAlternatorData] = useState([]);\n\n useEffect(() => {\n let alternator = [];\n if (instImageData) {\n let device_id = Object.values(instImageData.alternator.Device_ID);\n let actual_image = Object.values(instImageData.alternator.Actual_Image);\n let reference_1 = Object.values(\n instImageData.alternator.Reference_Image_1\n );\n let reference_2 = Object.values(\n instImageData.alternator.Reference_Image_2\n );\n let reference_3 = Object.values(\n instImageData.alternator.Reference_Image_3\n );\n for (let i = 0; i < device_id.length; i++) {\n alternator.push({\n device: device_id[i],\n actual: actual_image[i],\n reference1: reference_1[i],\n reference2: reference_2[i],\n reference3: reference_3[i],\n });\n }\n setAlternatorData(alternator);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [instImageData]);\n\n return ;\n};\n\nconst mapStateToProps = (state) => ({\n instImageData: state.instImageReducer.instImage,\n instImageLoading: state.instImageReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Alternator);\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { TableComponent } from \"../../elements\";\n\nconst Connector = ({ instImageData }) => {\n const [connectorData, setConnectorData] = useState([]);\n\n useEffect(() => {\n let connector = [];\n if (instImageData) {\n let device_id = Object.values(instImageData.connector.Device_ID);\n let actual_image = Object.values(instImageData.connector.Actual_Image);\n let reference_1 = Object.values(\n instImageData.connector.Reference_Image_1\n );\n let reference_2 = Object.values(\n instImageData.connector.Reference_Image_2\n );\n let reference_3 = Object.values(\n instImageData.connector.Reference_Image_3\n );\n for (let i = 0; i < device_id.length; i++) {\n connector.push({\n device: device_id[i],\n actual: actual_image[i],\n reference1: reference_1[i],\n reference2: reference_2[i],\n reference3: reference_3[i],\n });\n }\n setConnectorData(connector);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [instImageData]);\n\n return ;\n};\n\nconst mapStateToProps = (state) => ({\n instImageData: state.instImageReducer.instImage,\n instImageLoading: state.instImageReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Connector);\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const fuelGsmGpsStyles = makeStyles((theme) => ({\n text: {\n display: \"flex\",\n gap: \"2em\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n flex: 1,\n \"& > p\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1.2em\",\n color: \"#666666\",\n },\n \"& > h5\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1.5em\",\n fontWeight: \"bold\",\n display: \"block\",\n },\n },\n}));\n","import React, { useState, useEffect } from \"react\";\nimport { fuelGsmGpsStyles } from \"./gsmGps.styles\";\nimport { connect } from \"react-redux\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport Paper from \"@material-ui/core/Paper\";\n\nconst Gsmgps = ({ fuelGsmGps }) => {\n const classes = fuelGsmGpsStyles();\n const [fuelGsm, setFuelGsm] = useState([]);\n\n useEffect(() => {\n let fuelGsmData = [];\n if (fuelGsmGps) {\n let created = Object.values(fuelGsmGps.created_at);\n let lock_percentage = Object.values(fuelGsmGps.Lock_Percentage);\n let rtpp = Object.values(fuelGsmGps.RTPP);\n for (let i = 0; i < created.length; i++) {\n fuelGsmData.push({\n created_at: created[i],\n lockPercentage: lock_percentage[i],\n rtppData: rtpp[i],\n });\n }\n setFuelGsm(fuelGsmData);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fuelGsmGps]);\n\n return (\n
\n \n \n \n \n Created at\n Location\n Network\n \n \n \n {fuelGsm.slice(0, 10).map((row) => (\n \n \n {row.created_at}\n \n {row.lockPercentage}\n {row.rtppData}\n \n ))}\n \n
\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n fuelGsmGps: state.gsmGpsReducer.gsmGps,\n fuelGsmGpsLoading: state.gsmGpsReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Gsmgps);\n","import * as types from '../types'\n\nexport const fetchTicketMoreInfoRequest = ({ requestTicket }) => ({\n type: types.TICKET_MORE_INFO_REQUEST,\n payload: {\n requestTicket,\n },\n})\n\nexport const fetchTicketMoreInfoSuccess = ({ resTicket }) => ({\n type: types.TICKET_MORE_INFO_SUCCESS,\n payload: {\n resTicket,\n },\n})\n\nexport const fetchTicketMoreInfoFailure = ({ error }) => ({\n type: types.TICKET_MORE_INFO_FAILURE,\n payload: {\n error: error.message,\n },\n})\n","import { makeStyles } from '@material-ui/core/styles'\n\nexport const modalStyles = makeStyles((theme) => ({\n modalWrapper: {\n position: 'fixed',\n left: '0',\n right: '0',\n bottom: '0',\n top: '0',\n background: 'rgba(198, 198, 198, 0.9)',\n zIndex: '1',\n },\n modalContainer: {\n position: 'fixed',\n left: '50%',\n top: '30%',\n transform: 'translate(-50%, -50%)',\n background: '#fff',\n width: '80vw',\n minWidth: '300px',\n maxWidth: '100vw',\n height: '400px',\n overflowY: 'scroll',\n padding: '1rem',\n borderRadius: '0.5rem',\n display: 'flex',\n flexDirection: 'column',\n zIndex: '1',\n },\n closeModal: {\n display: 'flex',\n justifyContent: 'end',\n marginBottom: '10px',\n cursor: 'pointer',\n },\n tableHeader: {\n fontSize: '16px',\n fontWeight: '600',\n },\n}))\n","import { useState, useEffect } from 'react'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport { connect } from 'react-redux'\nimport { modalStyles } from './modal.styles'\n\nexport const Modal = ({ ticket, setModalOpen, ...props }) => {\n const classes = modalStyles()\n const [ticketData, setTicketData] = useState([])\n\n useEffect(() => {\n document.body.style.overflowY = 'hidden'\n\n return () => {\n document.body.style.overflowY = 'scroll'\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n console.log(ticket)\n if (ticket?.status) {\n setTicketData(ticket.data)\n console.log(ticketData, ticket.data)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ticket])\n\n return (\n <>\n setModalOpen(false)}\n >\n
\n setModalOpen(false)}\n >\n Close\n
\n \n \n \n \n \n Account Assigned to\n \n \n Account Operated From\n \n \n Close By\n \n \n Activity\n \n \n Tag\n \n \n Action\n \n \n Date\n \n \n \n \n {ticketData?.map((row, index) => (\n \n {' '}\n \n {row[0] || 'NA'}\n \n {row[1] || 'NA'}\n {row[2] || 'NA'}\n {row[3] || 'NA'}\n {row[4] || 'NA'}\n {row[5] || 'NA'}\n {row[6] || 'NA'}\n \n ))}\n \n
\n
\n \n \n )\n}\n\nconst mapStateToProps = (state) => ({\n ticket: state.ticketMoreInfoReducer.resTicket,\n ticketLoading: state.ticketReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Modal)\n","import React, { useState, useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableContainer from '@material-ui/core/TableContainer'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport { fetchTicketMoreInfoRequest } from '../../store/actions/ticketMoreInfoAction'\nimport Modal from '../Modal'\n\nconst Ticket = ({ ticket, ...props }) => {\n const [ticketdata, setTicketData] = useState([])\n const [modalOpen, setModalOpen] = useState(false)\n\n useEffect(() => {\n let ticketData = []\n if (ticket) {\n let device_fk = Object.values(ticket.device_fk_id)\n let ticket_id = Object.values(ticket.ticket_id)\n let created_at = Object.values(ticket.created_at)\n let ticket_status = Object.values(ticket.ticket_status)\n let issue_name = Object.values(ticket.issue_name)\n let support_comments = Object.values(ticket.support_comments)\n let ticket_summary = Object.values(ticket.ticket_summary)\n for (let i = 0; i < created_at.length; i++) {\n var milliSeconds = Date.parse(created_at[i])\n const dateObject = new Date(milliSeconds)\n const humanDateFormat = dateObject.toLocaleString()\n ticketData.push({\n deviceFk: device_fk[i],\n ticketId: ticket_id[i],\n createdAt: humanDateFormat,\n ticketStatus: ticket_status[i],\n issueName: issue_name[i],\n supportComments: support_comments[i],\n ticketSummary: ticket_summary[i],\n })\n }\n setTicketData(ticketData)\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ticket])\n\n return (\n <>\n
\n \n \n \n \n Device Fk Id\n Ticket Id\n Created At (IST)\n Ticket Status\n Issue Name\n Supporting Comments\n Ticket Summary\n More Info\n \n \n \n {ticketdata.map((row) => (\n \n \n {row.deviceFk}\n \n {row.ticketId}\n {row.createdAt}\n {row.ticketStatus}\n {row.issueName}\n {row.supportComments}\n {row.ticketSummary}\n {\n let requestTicket = {\n ticket_id: row.ticketId,\n }\n props.getTicketInfo({\n requestTicket,\n })\n setModalOpen(true)\n }}\n >\n \n Click\n \n \n \n ))}\n \n
\n
\n
\n {modalOpen && }\n \n )\n}\n\nconst mapStateToProps = (state) => ({\n ticket: state.ticketReducer.ticket,\n ticketLoading: state.ticketReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({\n getTicketInfo: ({ requestTicket }) => {\n dispatch(fetchTicketMoreInfoRequest({ requestTicket }))\n },\n})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Ticket)\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const tripReplayStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n },\n tilesWrapper: {\n maxWidth: \"1400px\",\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n flexWrap: \"wrap\",\n },\n bigTile: {\n minWidth: \"900px\",\n minHeight: \"500px\",\n flex: 1,\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n\n borderRadius: \"10px\",\n transition: \"0.3s\",\n [theme.breakpoints.down(\"sm\")]: {\n minWidth: \"200px\",\n },\n \"& > h3\": {\n fontSize: \"1.2rem\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"1.4rem\",\n },\n },\n },\n controlButton: {\n background: \"#651fff \",\n height: \"45px\",\n width: \"70px\",\n borderRadius: \"4px\",\n color: \"#FFFFFF\",\n padding: \"0 0.5em\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n\n speedButton: {\n background: \"#651fff \",\n height: \"45px\",\n width: \"70px\",\n borderRadius: \"4px\",\n color: \"#FFFFFF\",\n padding: \"0 0.5em\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n\n sliderButton: {\n padding: \"0 0.5em\",\n width: \"200px\",\n background: \"#651fff\",\n borderRadius: \"4px\",\n height: \"45px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n\n timeButton: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"0.2em\",\n background: \"#651fff \",\n height: \"45px\",\n minWidth: \"180px\",\n borderRadius: \"4px\",\n color: \"#FFFFFF\",\n padding: \"0 0.5em\",\n fontSize: \"1em\",\n },\n\n summaryButton: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n gap: \"0.1em\",\n background: \"#651fff \",\n minHeight: \"45px\",\n minWidth: \"180px\",\n borderRadius: \"4px\",\n color: \"#FFFFFF\",\n padding: \"0.2em 0.5em\",\n },\n}));\n","export default __webpack_public_path__ + \"static/media/TractorIcon2.96c10ac4.svg\";","export default __webpack_public_path__ + \"static/media/0-deg.091f33c6.svg\";","export default __webpack_public_path__ + \"static/media/45-deg.7b1831f5.svg\";","export default __webpack_public_path__ + \"static/media/90-deg.08219b68.svg\";","export default __webpack_public_path__ + \"static/media/135-deg.e0e9535a.svg\";","export default __webpack_public_path__ + \"static/media/180-deg.63cb1a29.svg\";","export default __webpack_public_path__ + \"static/media/225-deg.fed75c7e.svg\";","export default __webpack_public_path__ + \"static/media/270deg.e64feecd.svg\";","export default __webpack_public_path__ + \"static/media/315-deg.120c95ce.svg\";","import deg0 from \"../assets/tractor/0-deg.svg\";\nimport deg45 from \"../assets/tractor/45-deg.svg\";\nimport deg90 from \"../assets/tractor/90-deg.svg\";\nimport deg135 from \"../assets/tractor/135-deg.svg\";\nimport deg180 from \"../assets/tractor/180-deg.svg\";\nimport deg225 from \"../assets/tractor/225-deg.svg\";\nimport deg270 from \"../assets/tractor/270deg.svg\";\nimport deg315 from \"../assets/tractor/315-deg.svg\";\n\nfunction getTractor(angle) {\n // console.log(\"function\", angle);\n let value = -angle;\n // console.log(\"value\", value);\n\n if (-45 < angle && angle < 0) {\n if (Math.abs(45 - value) < Math.abs(0 - value)) {\n return deg315;\n } else {\n return deg0; //neww0\n }\n } else if (-90 < angle && angle < -45) {\n if (Math.abs(90 - value) < Math.abs(45 - value)) {\n return deg270; //neww90\n } else {\n return deg315;\n }\n } else if (-135 < angle && angle < -90) {\n if (Math.abs(135 - value) < Math.abs(90 - value)) {\n return deg225;\n } else {\n return deg270; //neww90\n }\n } else if (-180 < angle && angle < -135) {\n if (Math.abs(180 - value) < Math.abs(135 - value)) {\n return deg180; //neww180\n } else {\n return deg225;\n }\n } else if (-225 < angle && angle < -180) {\n if (Math.abs(225 - value) < Math.abs(180 - value)) {\n return deg135;\n } else {\n return deg180; //neww180\n }\n } else if (-270 < angle && angle < -225) {\n if (Math.abs(270 - value) < Math.abs(225 - value)) {\n return deg90; //neww270\n } else {\n return deg135;\n }\n } else if (-315 < angle && angle < -270) {\n if (Math.abs(315 - value) < Math.abs(270 - value)) {\n return deg45;\n } else {\n return deg90; //neww270\n }\n } else {\n if (Math.abs(360 - value) < Math.abs(315 - value)) {\n return deg0; //neww0\n } else {\n return deg45;\n }\n }\n}\n\nexport default getTractor;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { connect } from \"react-redux\";\nimport { tripReplayStyles } from \"./tripReplay.styles\";\nimport GoogleMapReact from \"google-map-react\";\nimport markerIcon from \"../../assets/home/TractorIcon2.svg\";\nimport getTractor from \"../../utils/getTractor\";\n// import { getTimeDiff } from \"../../utils\";\n\nimport PlayArrowIcon from \"@material-ui/icons/PlayArrow\";\nimport PauseIcon from \"@material-ui/icons/Pause\";\nimport StopIcon from \"@material-ui/icons/Stop\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport Select from \"@material-ui/core/Select\";\nimport Slider from \"@material-ui/core/Slider\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nlet plottedMarkers = null;\nconst GoogleMaps = ({\n fueldata,\n fuelLoading,\n dataDaySummary,\n mapPlotLoading,\n summary,\n commutes,\n patches,\n replay,\n dailyStatus,\n area,\n totalTime,\n kms,\n}) => {\n const classes = tripReplayStyles();\n\n const [mapLoaded, setMapLoaded] = useState(false);\n const [map, setMapInstance] = useState(null);\n const [maps, setMapsInstance] = useState(null);\n const [allPolygons, setPolygons] = useState(null);\n const [allPolylines, setPolyLines] = useState(null);\n\n const [gameLoop, setGameLoop] = useState(null);\n const [block, setBlock] = useState(true);\n const [time, setTime] = useState(\"\");\n const [showTime, setShowTime] = useState(false);\n const [engineStatus, setEngineStatus] = useState(false);\n const [speed, setSpeed] = useState(500);\n const [toggle, setToggle] = useState(false);\n\n useEffect(() => {\n if (fueldata && dailyStatus && mapLoaded) {\n clearPolyLinesIfAny();\n plotFinalPoints();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fueldata, dailyStatus]);\n\n const onMapLoaded = (map, maps) => {\n map.setMapTypeId(maps.MapTypeId.HYBRID);\n setMapMarkers(map, maps);\n };\n\n let index = useRef(1);\n let polylines = [];\n let polygons = [];\n let bounds;\n\n let defaultProps = {\n center: {\n lat: 20.5937,\n lng: 78.9629,\n },\n zoom: 19,\n };\n\n const clearPolyLinesIfAny = () => {\n if (allPolylines !== null && allPolylines.length > 0) {\n for (let i = 0; i < allPolylines.length; i++) {\n allPolylines[i].setMap(null);\n }\n setPolyLines(null);\n }\n\n if (allPolygons !== null && allPolygons.length > 0) {\n for (let i = 0; i < allPolygons.length; i++) {\n allPolygons[i].setMap(null);\n }\n setPolygons(null);\n }\n };\n\n const clearMarkersIfAny = () => {\n if (plottedMarkers && plottedMarkers.length > 0) {\n for (let i = 0; i < plottedMarkers.length; i++) {\n plottedMarkers[i].setMap(null);\n }\n }\n };\n\n const plotFinalPoints = async () => {\n bounds = new maps.LatLngBounds();\n const allCommuteLats = commutes.lats;\n const allCommuteLngs = commutes.lngs;\n drawPoints(allCommuteLats, allCommuteLngs, false);\n\n const allPatchLats = patches.lats;\n const allPatchLngs = patches.lngs;\n drawPoints(allPatchLats, allPatchLngs, true);\n map.fitBounds(bounds);\n };\n\n function drawPoints(allLats, allLngs, isPatch) {\n for (let i = 0; i < allLats.length; i++) {\n const points = [];\n for (let j = 0; j < allLats[i].length; j++) {\n let tractorPoint = new maps.LatLng(allLats[i][j], allLngs[i][j]);\n let latLng = { lat: allLats[i][j], lng: allLngs[i][j] };\n points.push(latLng);\n bounds.extend(tractorPoint);\n }\n\n if (isPatch) {\n const tractorPatch = new maps.Polygon({\n paths: points,\n strokeColor: \"#2196f3\",\n strokeOpacity: 1,\n strokeWeight: 4,\n fillColor: \"#1565c0\",\n fillOpacity: 1,\n });\n tractorPatch.setMap(map);\n polygons.push(tractorPatch);\n } else {\n const tractorPath = new maps.Polyline({\n path: points,\n geodesic: true,\n strokeColor: \"#BE1E2D\",\n strokeOpacity: 1.0,\n strokeWeight: 4,\n });\n\n tractorPath.setMap(map);\n polylines.push(tractorPath);\n }\n }\n\n setPolyLines(polylines);\n setPolygons(polygons);\n }\n\n const setMapMarkers = (map, maps) => {\n clearMarkersIfAny();\n let bounds = new maps.LatLngBounds();\n plottedMarkers = [];\n\n if (replay) {\n let devicePostion = new maps.LatLng(\n commutes.lats[0][0],\n commutes.lngs[0][0]\n );\n\n let marker = new maps.Marker({\n position: {\n lat: commutes.lats[0][0],\n lng: commutes.lngs[0][0],\n },\n map,\n icon: markerIcon,\n optimized: false,\n });\n\n marker.setMap(map);\n plottedMarkers.push(marker);\n\n bounds.extend(devicePostion);\n }\n };\n\n function move(lat, lng, map, maps, timer, nextlat, nextlng, status) {\n let bounds = new maps.LatLngBounds();\n let tractorPosition = new maps.LatLng(parseFloat(lat), parseFloat(lng));\n const point1LatLng = new maps.LatLng(lat, lng);\n const point2LatLng = new maps.LatLng(nextlat, nextlng);\n\n const angle = window.google.maps.geometry.spherical.computeHeading(\n point1LatLng,\n point2LatLng\n );\n\n if (status > 0) setEngineStatus(true);\n else setEngineStatus(false);\n\n const actualAngle = angle - 180;\n\n if (timer !== undefined) {\n const dateObject = new Date(timer - 19800000);\n const Time = dateObject.toLocaleTimeString(\"en-US\");\n setTime(Time);\n } else {\n setTime(\"TimeStamp\");\n }\n\n clearMarkersIfAny();\n\n let Value = getTractor(actualAngle);\n\n const image = {\n url: Value,\n scaledSize: new maps.Size(45.35, 39.5),\n origin: new maps.Point(0, 0),\n anchor: new maps.Point(25, 25),\n };\n let marker = new maps.Marker({\n position: {\n lat: parseFloat(lat),\n lng: parseFloat(lng),\n },\n map: map,\n icon: image,\n\n optimized: false,\n });\n\n marker.setMap(map);\n plottedMarkers.push(marker);\n bounds.extend(tractorPosition);\n }\n\n let clear;\n\n const play = (map, maps, velocity) => {\n let timer = replay.ts;\n let lat = replay.lats;\n let lng = replay.lngs;\n let status = replay.status;\n setBlock(false);\n\n setShowTime(true);\n clearMarkersIfAny();\n clear = setInterval(() => {\n setGameLoop(clear);\n if (index.current >= lat.length) {\n index.current = 1;\n clearInterval(clear);\n }\n move(\n lat[index.current],\n lng[index.current],\n map,\n maps,\n timer[index.current],\n lat[index.current - 1],\n lng[index.current - 1],\n status[index.current - 1]\n );\n index.current++;\n }, velocity);\n };\n\n const pauseGame = (map, maps) => {\n clearInterval(gameLoop);\n };\n\n const stop = (map, maps) => {\n let lat = commutes.lats[0][0];\n let lng = commutes.lngs[0][0];\n clearInterval(gameLoop);\n // setBlock(true);\n setGameLoop(null);\n setToggle(false);\n clearMarkersIfAny();\n move(lat[0], lng[0], map, maps);\n index.current = 1;\n };\n\n const handleChange = (event) => {\n clearInterval(gameLoop);\n const val = event.target.value;\n setSpeed(val);\n play(map, maps, val);\n };\n\n const handlePlayPause = () => {\n if (toggle === false) {\n setToggle(true);\n setSpeed(500);\n play(map, maps, 500);\n } else {\n setToggle(false);\n pauseGame(map, maps);\n }\n };\n\n return (\n
\n
\n {\n onMapLoaded(map, maps);\n setMapsInstance(maps);\n setMapInstance(map);\n setMapLoaded(true);\n }}\n >\n {mapLoaded && dailyStatus && setMapMarkers(map, maps)}\n \n {fuelLoading ? (\n
\n \n
\n ) : (\n <>\n {\" \"}\n {dailyStatus && (\n \n
\n \n {!toggle ? (\n <>\n Play \n \n ) : (\n <>\n Pause \n \n )}\n \n
\n
\n stop(map, maps)}\n >\n Stop\n \n \n
\n
\n \n 1x\n 2x\n 3x\n \n
\n
\n \"hello\"}\n aria-labelledby=\"discrete-slider\"\n valueLabelDisplay=\"auto\"\n color=\"secondary\"\n step={1}\n marks\n min={0}\n max={Object.keys(replay.lats).length ?? 0}\n onChange={(e, number) => {\n index.current = number;\n }}\n />\n
\n {showTime && (\n
\n

{showTime && !block && time}

\n

Status

\n {engineStatus === true ? (\n \n ) : (\n \n )}\n
\n )}\n
\n

Kilo Meters :{kms}

\n

Hours Used :{totalTime}

\n

Acres : {area}

\n {/*

\n Last Active : {getTimeDiff(summary.last_ping_time[0])}\n

*/}\n
\n
\n )}\n \n )}\n
\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n dataDaySummary: state.daySummData.daySummary,\n summary: state.summaryReducer.summary,\n area: state.daySummData.area,\n totalTime: state.daySummData.totalTime,\n kms: state.daySummData.kms,\n mapPlotLoading: state.daySummData.loading,\n commutes: state.daySummData.commutes,\n patches: state.daySummData.patches,\n dailyStatus: state.daySummData.dailyStatus,\n replay: state.daySummData.replay,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GoogleMaps);\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport ReactFusioncharts from \"react-fusioncharts\";\nimport FusionCharts from \"fusioncharts\";\nimport charts from \"fusioncharts/fusioncharts.charts\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\n// Resolves charts dependancy\ncharts(FusionCharts);\n\nfunction CustomerChart({ fuelLoading, fueldata }) {\n const [series, setSeries] = useState([]);\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp);\n let customerData = Object.values(fueldata.cust_index);\n let data = [];\n\n let count = 0;\n for (let i = 0; i < timeStampData.length; i++) {\n if (customerData[i] !== -1) {\n count++;\n }\n }\n\n let size;\n if (count < 100) {\n size = \"6\";\n } else {\n size = \"0.5\";\n }\n\n for (let i = 0; i < timeStampData.length; i++) {\n if (customerData[i] === -1) {\n data.push({\n label: timeStampData[i],\n });\n } else if (customerData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: customerData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n anchorBorderThickness: \"3\",\n anchorBorderColor: \"#FF0000\",\n anchorSides: \"3\",\n anchorBgColor: \"#d3f7ff\",\n });\n } else {\n data.push({\n label: timeStampData[i],\n value: customerData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n // anchorBorderThickness: \"0.5\",\n anchorBorderThickness: size,\n anchorBorderColor: \"#FFCC00\",\n anchorSides: \"1\",\n anchorBgColor: \"#FFCC00\",\n });\n }\n }\n\n setSeries(data);\n }\n }, [fueldata]);\n\n const chartConfigs = {\n chart: {\n xAxisName: \"TimeStamp (IST)\",\n yAxisName: \"Customer\",\n showValues: \"0\",\n showBorder: \"0\",\n showCanvasBorder: \"0\",\n drawAnchors: \"0\",\n // numberSuffix: \"L\",\n theme: \"fusion\",\n xAxisNameFontSize: \"20\",\n xAxisNameFontColor: \"#651fff\",\n yAxisNameFontSize: \"20\",\n yAxisNameFontColor: \"#651fff\",\n labelStep: \"60\",\n baseFontSize: \"11\",\n plottooltext:\n \"
TimeStamp : $label

Customer : $dataValue\",\n // width: \"\",\n // height: \"600\",\n },\n data: series,\n };\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n );\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n return (\n \n );\n } else {\n return (\n

{fueldata?.message}

\n );\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n );\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CustomerChart);\n","import React, { useState, useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport ReactFusioncharts from 'react-fusioncharts'\nimport FusionCharts from 'fusioncharts'\nimport charts from 'fusioncharts/fusioncharts.charts'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\n// Resolves charts dependancy\ncharts(FusionCharts)\n\nfunction GsmChart({ fuelLoading, fueldata, summaryLoading, summary }) {\n const [series, setSeries] = useState([])\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp)\n let gsmData = Object.values(fueldata.gsm_quality)\n let data = []\n let count = 0\n for (let i = 0; i < timeStampData.length; i++) {\n if (gsmData[i] !== -1) {\n count++\n }\n }\n let size\n if (count < 100) {\n size = '6'\n } else {\n size = '0.5'\n }\n for (let i = 0; i < timeStampData.length; i++) {\n if (gsmData[i] === -1) {\n data.push({\n label: timeStampData[i],\n })\n } else if (gsmData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: gsmData[i],\n drawAnchors: '1',\n anchorRadius: '1',\n anchorBorderThickness: '3',\n anchorBorderColor: '#FF0000',\n anchorSides: '3',\n anchorBgColor: '#d3f7ff',\n })\n } else {\n data.push({\n label: timeStampData[i],\n value: gsmData[i],\n drawAnchors: '1',\n anchorRadius: '1',\n // anchorBorderThickness: \"0.5\",\n anchorBorderThickness: size,\n anchorBorderColor: '#FFCC00',\n anchorSides: '1',\n anchorBgColor: '#FFCC00',\n })\n }\n }\n setSeries(data)\n }\n }, [fueldata, summaryLoading, summary])\n\n const chartConfigs = {\n chart: {\n xAxisName: 'TimeStamp (IST)',\n yAxisName: 'Gsm Quality',\n showValues: '0',\n showBorder: '0',\n showCanvasBorder: '0',\n drawAnchors: '0',\n theme: 'fusion',\n xAxisNameFontSize: '20',\n xAxisNameFontColor: '#651fff',\n yAxisNameFontSize: '20',\n yAxisNameFontColor: '#651fff',\n labelStep: '60',\n baseFontSize: '11',\n plottooltext:\n \"
TimeStamp : $label

GSM Plot : $dataValue\",\n // width: \"\",\n // height: \"600\",\n },\n data: series,\n }\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n )\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n if (!summaryLoading) {\n if (\n summary?.[0].hw_batch === 49 ||\n summary?.[0].hw_batch === 52\n ) {\n return (\n

\n No Data for HW Batch 49 and 52\n

\n )\n } else {\n return (\n \n )\n }\n }\n } else {\n return (\n

\n {fueldata?.message}\n

\n )\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n summary: state.summaryReducer.summary,\n summaryLoading: state.summaryReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(GsmChart)\n","import React, { useState, useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport ReactFusioncharts from 'react-fusioncharts'\nimport FusionCharts from 'fusioncharts'\nimport charts from 'fusioncharts/fusioncharts.charts'\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\n// Resolves charts dependancy\ncharts(FusionCharts)\n\nfunction DelayChart({ fuelLoading, fueldata, summary, summaryLoading }) {\n const [series, setSeries] = useState([])\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp)\n let delayData = Object.values(fueldata.firmware_version)\n let data = []\n\n let count = 0\n for (let i = 0; i < timeStampData.length; i++) {\n if (delayData[i] !== -1) {\n count++\n }\n }\n\n let size\n if (count < 100) {\n size = '6'\n } else {\n size = '0.5'\n }\n\n for (let i = 0; i < timeStampData.length; i++) {\n if (delayData[i] === -1) {\n data.push({\n label: timeStampData[i],\n })\n } else if (delayData[i] < 1) {\n let hourConvert = delayData[i] / 3600\n data.push({\n label: timeStampData[i],\n // value: delayData[i],\n value: hourConvert,\n drawAnchors: '1',\n anchorRadius: '1',\n anchorBorderThickness: '3',\n anchorBorderColor: '#FF0000',\n anchorSides: '3',\n anchorBgColor: '#d3f7ff',\n })\n } else {\n let hourConvert = delayData[i] / 3600\n data.push({\n label: timeStampData[i],\n // value: delayData[i],\n value: hourConvert,\n drawAnchors: '1',\n anchorRadius: '1',\n // anchorBorderThickness: \"0.5\",\n anchorBorderThickness: size,\n anchorBorderColor: '#FFCC00',\n anchorSides: '1',\n anchorBgColor: '#FFCC00',\n })\n }\n }\n\n setSeries(data)\n }\n }, [fueldata, summary, summaryLoading])\n\n const chartConfigs = {\n chart: {\n xAxisName: 'TimeStamp (IST)',\n yAxisName: 'Delay (hours)',\n showValues: '0',\n showBorder: '0',\n showCanvasBorder: '0',\n drawAnchors: '0',\n // numberSuffix: \"L\",\n theme: 'fusion',\n xAxisNameFontSize: '20',\n xAxisNameFontColor: '#651fff',\n yAxisNameFontSize: '20',\n yAxisNameFontColor: '#651fff',\n labelStep: '60',\n baseFontSize: '11',\n plottooltext:\n \"
TimeStamp : $label

Delay : $dataValue\",\n },\n data: series,\n }\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n )\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n if (!summaryLoading) {\n if (\n summary?.[0].hw_batch === 49 ||\n summary?.[0].hw_batch === 52\n ) {\n return (\n

\n No Data for HW Batch 49 and 52\n

\n )\n } else {\n return (\n \n )\n }\n }\n } else {\n return (\n

\n {fueldata?.message}\n

\n )\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n summary: state.summaryReducer.summary,\n summaryLoading: state.summaryReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DelayChart)\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport ReactFusioncharts from \"react-fusioncharts\";\nimport FusionCharts from \"fusioncharts\";\nimport charts from \"fusioncharts/fusioncharts.charts\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n// Resolves charts dependancy\ncharts(FusionCharts);\n\nfunction DistanceChart({ fuelLoading, fueldata }) {\n const [series, setSeries] = useState([]);\n\n useEffect(() => {\n if (fueldata && fueldata.message === undefined) {\n let timeStampData = Object.values(fueldata.time_stamp);\n let distanceData = Object.values(fueldata.distance);\n let data = [];\n let count = 0;\n for (let i = 0; i < timeStampData.length; i++) {\n if (distanceData[i] !== -1) {\n count++;\n }\n }\n\n let size;\n if (count < 100) {\n size = \"6\";\n } else {\n size = \"0.5\";\n }\n\n for (let i = 0; i < timeStampData.length; i++) {\n if (distanceData[i] === -1) {\n data.push({\n label: timeStampData[i],\n });\n } else if (distanceData[i] < 1) {\n data.push({\n label: timeStampData[i],\n value: distanceData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n anchorBorderThickness: \"3\",\n anchorBorderColor: \"#FF0000\",\n anchorSides: \"3\",\n anchorBgColor: \"#d3f7ff\",\n });\n } else {\n data.push({\n label: timeStampData[i],\n value: distanceData[i],\n drawAnchors: \"1\",\n anchorRadius: \"1\",\n // anchorBorderThickness: \"0.5\",\n anchorBorderThickness: size,\n anchorBorderColor: \"#FFCC00\",\n anchorSides: \"1\",\n anchorBgColor: \"#FFCC00\",\n });\n }\n }\n\n setSeries(data);\n }\n }, [fueldata]);\n\n const chartConfigs = {\n chart: {\n xAxisName: \"TimeStamp (IST)\",\n yAxisName: \"DIstance Graph (meters)\",\n showValues: \"0\",\n showBorder: \"0\",\n drawAnchors: \"0\",\n showCanvasBorder: \"0\",\n numberSuffix: \"m\",\n theme: \"fusion\",\n xAxisNameFontSize: \"20\",\n xAxisNameFontColor: \"#651fff\",\n yAxisNameFontSize: \"20\",\n yAxisNameFontColor: \"#651fff\",\n labelStep: \"60\",\n baseFontSize: \"11\",\n plottooltext:\n \"
TimeStamp : $label

Distance : $dataValue\",\n // width: \"\",\n // height: \"600\",\n },\n data: series,\n };\n\n function ChartData() {\n // let timeStammp = Object.values(fueldata.time_stamp);\n if (fuelLoading) {\n return (\n
\n \n
\n );\n } else if (\n fueldata &&\n fueldata.message === undefined &&\n Object.values(fueldata.time_stamp).length > 0\n ) {\n return (\n \n );\n } else {\n return (\n

No Data found

\n );\n }\n }\n\n return (\n
\n {!fueldata ? (\n
\n \n
\n ) : (\n ChartData()\n )}\n
\n );\n}\n\nconst mapStateToProps = (state) => ({\n fueldata: state.fuelReducer.fuel,\n fuelLoading: state.fuelReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DistanceChart);\n","import React, { useState } from \"react\";\nimport CustomerChart from \"../../fusionChart/customerChart\";\nimport GsmChart from \"../../fusionChart/gsmChart\";\nimport DelayChart from \"../../fusionChart/delayChart\";\nimport DistanceChart from \"../../fusionChart/distanceChart\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport { connect } from \"react-redux\";\nimport { fetchFuelRequest } from \"../../store/actions/fetchfuelsAction\";\n\nconst QualityChart = ({ ...props }) => {\n const [chart, setChart] = useState(1);\n\n const handleChart = (event) => {\n const chartType = event.target.value;\n setChart(chartType);\n };\n\n function changeChart() {\n if (chart === 2) {\n return ;\n } else if (chart === 3) {\n return ;\n } else {\n return ;\n }\n }\n\n return (\n <>\n \n \n Gsm Chart\n Delay Chart\n Customer Chart\n Distance Chart\n \n \n {chart === 1 ? : changeChart()}\n \n );\n};\n\nconst mapStateToProps = () => ({});\nconst mapDispatchToProps = (dispatch) => ({\n fuelSubmit: ({ requestData }) => dispatch(fetchFuelRequest({ requestData })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(QualityChart);\n","import { makeStyles } from '@material-ui/core/styles'\n\nexport const FirebaseDataStyles = makeStyles((theme) => ({\n firebaseContent: {\n display: 'flex',\n gap: '2em',\n alignItems: 'center',\n justifyContent: 'space-between',\n flex: 1,\n '& > p': {\n margin: 0,\n padding: '0.5em',\n fontSize: '1em',\n color: '#666666',\n },\n '& > span': {\n margin: 0,\n padding: '0.5em',\n fontSize: '1em',\n fontWeight: 'bold',\n display: 'block',\n },\n },\n}))\n","import React from 'react'\nimport { FirebaseDataStyles } from './firebaseData.styles'\nimport { connect } from 'react-redux'\nimport Skeleton from '@material-ui/lab/Skeleton'\nimport { getData } from '../../utils'\n\nconst FirebaseData = ({ firebase, firebaseLoading, ...props }) => {\n const classes = FirebaseDataStyles()\n\n const FirebaseSummaryItem = ({ icon, label, data, loading }) => {\n return (\n
\n

{icon || label}

\n {loading ? (\n \n ) : (\n <>\n {!data ? (\n \n ) : (\n {data}\n )}\n \n )}\n
\n )\n }\n\n const firebaseList = [\n {\n label: 'Is app open?:',\n data:\n firebase?.['Is app open?'] === 0\n ? 'Closed Currently'\n : 'Open Currently',\n },\n {\n label: 'Engine Status:',\n data: getData(firebase?.['Engine Status']),\n },\n {\n label: 'Last Seen At:',\n data: getData(firebase?.['Last Seen At']),\n },\n {\n label: 'Time Stamp (IST):',\n data: getData(firebase?.['Time Stamp (IST)']),\n },\n {\n label: 'Fuel (litres):',\n data: getData(firebase?.['Fuel (litres)']),\n },\n {\n label: 'Speed:',\n data: getData(firebase?.['Speed']),\n },\n {\n label: 'Latitude:',\n data: getData(firebase?.['Latitude']),\n },\n {\n label: 'Longitude:',\n data: getData(firebase?.['Longitude']),\n },\n {\n label: 'GPS Lock:',\n data: getData(firebase?.['GPS Lock']),\n },\n ]\n\n return (\n
\n <>\n {firebaseList.map((item, index) => (\n \n ))}\n \n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n firebase: state.firebaseReducer.firebaseData,\n firebaseLoading: state.firebaseReducer.loading,\n})\nconst mapDispatchToProps = (dispatch) => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(FirebaseData)\n","import * as types from \"../types\";\n\nexport const fetchFuelSummaryRequest = ({ requestDevice }) => ({\n type: types.FETCH_FUEL_SUMMARY_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchFuelSummarySuccess = ({ fuelSummary }) => ({\n type: types.FETCH_FUEL_SUMMARY_SUCCESS,\n payload: {\n fuelSummary,\n },\n});\n\nexport const fetchFuelSummaryFailure = ({ error }) => ({\n type: types.FETCH_FUEL_SUMMARY_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchFuelModelRequest = ({ requestDevice }) => ({\n type: types.FETCH_FUEL_MODEL_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchFuelModelSuccess = ({ fuelModel }) => ({\n type: types.FETCH_FUEL_MODEL_SUCCESS,\n payload: {\n fuelModel,\n },\n});\n\nexport const fetchFuelModelFailure = ({ error }) => ({\n type: types.FETCH_FUEL_MODEL_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchTicketRequest = ({ requestDevice }) => ({\n type: types.FETCH_TICKET_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchTicketSuccess = ({ ticket }) => ({\n type: types.FETCH_TICKET_SUCCESS,\n payload: {\n ticket,\n },\n});\n\nexport const fetchTicketFailure = ({ error }) => ({\n type: types.FETCH_TICKET_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchAppRequest = ({ requestDevice }) => ({\n type: types.FETCH_APP_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchAppSuccess = ({ app }) => ({\n type: types.FETCH_APP_SUCCESS,\n payload: {\n app,\n },\n});\n\nexport const fetchAppFailure = ({ error }) => ({\n type: types.FETCH_APP_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchInstAttemptsRequest = ({ requestDevice }) => ({\n type: types.FETCH_INST_ATTEMPTS_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchInstAttemptsSuccess = ({ instAttempts }) => ({\n type: types.FETCH_INST_ATTEMPTS_SUCCESS,\n payload: {\n instAttempts,\n },\n});\n\nexport const fetchInstAttemptsFailure = ({ error }) => ({\n type: types.FETCH_INST_ATTEMPTS_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchGsmGpsRequest = ({ requestDevice }) => ({\n type: types.FETCH_GSM_GPS_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchGsmGpsSuccess = ({ gsmGps }) => ({\n type: types.FETCH_GSM_GPS_SUCCESS,\n payload: {\n gsmGps,\n },\n});\n\nexport const fetchGsmGpsFailure = ({ error }) => ({\n type: types.FETCH_GSM_GPS_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchInstImageRequest = ({ requestDevice }) => ({\n type: types.FETCH_INST_IMG_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchInstImageSuccess = ({ instImage }) => ({\n type: types.FETCH_INST_IMG_SUCCESS,\n payload: {\n instImage,\n },\n});\n\nexport const fetchInstImageFailure = ({ error }) => ({\n type: types.FETCH_INST_IMG_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const fetchFirebaseDataRequest = ({ requestDevice }) => ({\n type: types.FETCH_FIREBASE_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const fetchFirebaseDataSuccess = ({ firebaseData }) => ({\n type: types.FETCH_FIREBASE_SUCCESS,\n payload: {\n firebaseData,\n },\n});\n\nexport const fetchFirebaseDataFailure = ({ error }) => ({\n type: types.FETCH_FIREBASE_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const daySummaryRequest = ({ requestData }) => {\n return {\n type: types.DAY_SUMMARY_REQUEST,\n payload: {\n requestData,\n },\n };\n};\n\nexport const daySummarySuccess = ({\n daySummary,\n commutes,\n patches,\n replay,\n dailyStatus,\n area,\n totalTime,\n kms,\n}) => {\n return {\n type: types.DAY_SUMMARY_SUCCESS,\n payload: {\n daySummary,\n commutes,\n patches,\n replay,\n dailyStatus,\n area,\n totalTime,\n kms,\n },\n };\n};\n\nexport const daySummaryFailure = (error) => {\n return {\n type: types.DAY_SUMMARY_FAILURE,\n payload: {\n error: error.message,\n },\n };\n};\n","import * as types from \"../types\";\n\nexport const logoutRequest = () => {\n return {\n type: types.LOGOUT_REQUEST,\n };\n};\nexport const logoutRequestSuccess = () => {\n return {\n type: types.LOGOUT_REQUEST_SUCCESS,\n };\n};\n\nexport const logoutRequestFailure = (error) => {\n return {\n type: types.LOGOUT_REQUEST_FAILURE,\n error: error,\n };\n};\n","import * as types from \"../types\";\n\nexport const simStatusRequest = ({ requestDevice }) => ({\n type: types.SIM_STATUS_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const simStatusSuccess = ({ sim }) => ({\n type: types.SIM_STATUS_SUCCESS,\n payload: {\n sim,\n },\n});\n\nexport const simStatusFailure = ({ error }) => ({\n type: types.SIM_STATUS_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from \"../types\";\n\nexport const replacementDetailRequest = ({ requestDevice }) => ({\n type: types.REPLACEMENT_DATA_REQUEST,\n payload: {\n requestDevice,\n },\n});\n\nexport const replacementDetailSuccess = ({ replacementDetail }) => ({\n type: types.REPLACEMENT_DATA_SUCCESS,\n payload: {\n replacementDetail,\n },\n});\n\nexport const replacementDetailFailure = ({ error }) => ({\n type: types.REPLACEMENT_DATA_FAILURE,\n payload: {\n error: error.message,\n },\n});\n","import * as types from '../types'\n\nexport const deviceListRequest = ({ requestDeviceList }) => ({\n type: types.DEVICE_LIST_REQUEST,\n payload: {\n requestDeviceList,\n },\n})\n\nexport const deviceListSuccess = ({ resDeviceList }) => ({\n type: types.DEVICE_LIST_SUCCESS,\n payload: {\n resDeviceList,\n },\n})\n\nexport const deviceListFailure = ({ error }) => ({\n type: types.DEVICE_LIST_FAILURE,\n payload: {\n error: error.message,\n },\n})\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const SimDetailStyles = makeStyles((theme) => ({\n text: {\n display: \"flex\",\n gap: \"2em\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n flex: 1,\n \"& > p\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1em\",\n color: \"#666666\",\n },\n \"& > h5\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1em\",\n fontWeight: \"bold\",\n display: \"block\",\n },\n },\n}));\n","import React from \"react\";\nimport { SimDetailStyles } from \"./simData.styles\";\nimport { connect } from \"react-redux\";\nimport Skeleton from \"@material-ui/lab/Skeleton\";\n\nconst SimDetails = ({ sim, simLoading }) => {\n const classes = SimDetailStyles();\n return (\n
\n
\n

Device ID:

\n {simLoading ? (\n \n ) : (\n <>\n {!sim ? (\n \n ) : (\n

{sim?.device_id}

\n )}\n \n )}\n
\n
\n

Sim CCID:

\n {simLoading ? (\n \n ) : (\n <>\n {!sim ? (\n \n ) : (\n

{sim?.sim_ccid}

\n )}\n \n )}\n
\n
\n

Operator:

\n {simLoading ? (\n \n ) : (\n <>\n {!sim ? (\n \n ) : (\n

{sim?.operator}

\n )}\n \n )}\n
\n
\n

Sim Status:

\n {simLoading ? (\n \n ) : (\n <>\n {!sim ? (\n \n ) : (\n

{sim?.sim_status}

\n )}\n \n )}\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n sim: state.simStatusReducer.sim,\n simLoading: state.simStatusReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SimDetails);\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const ReplacementDetailStyles = makeStyles((theme) => ({\n text: {\n display: \"flex\",\n gap: \"2em\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n flex: 1,\n \"& > p\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1em\",\n color: \"#666666\",\n },\n \"& > h5\": {\n margin: 0,\n padding: \"0.5em\",\n fontSize: \"1em\",\n fontWeight: \"bold\",\n display: \"block\",\n },\n },\n}));\n","import React from \"react\";\nimport { ReplacementDetailStyles } from \"./replacementDetail.styles\";\nimport { connect } from \"react-redux\";\nimport Skeleton from \"@material-ui/lab/Skeleton\";\nimport { getTimeSummary } from \"../../utils\";\n\nconst ReplacementDetail = ({ replacementDetailData, replacementDetailLoading }) => {\n const classes = ReplacementDetailStyles();\n return (\n
\n
\n

Device ID:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.device_id}

\n )}\n \n )}\n
\n
\n

Action Date:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.action_date !== null ? getTimeSummary(replacementDetailData?.action_date):\"NA\"}

\n )}\n \n )}\n
\n
\n

Effect From Date:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.effect_from_date}

\n )}\n \n )}\n
\n
\n

New Label ID:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.new_label_id}

\n )}\n \n )}\n
\n
\n

New IMEI:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.[\"new imei\"]}

\n )}\n \n )}\n
\n
\n

Old IMEI:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.[\"old imei\"]}

\n )}\n \n )}\n
\n
\n

New Sim CCID:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.new_sim_ccid}

\n )}\n \n )}\n
\n
\n

Old Sim CCID:

\n {replacementDetailLoading ? (\n \n ) : (\n <>\n {!replacementDetailData ? (\n \n ) : (\n

{replacementDetailData?.old_sim_ccid}

\n )}\n \n )}\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n replacementDetailData: state.replacementDetailReducer.replacementDetail,\n replacementDetailLoading: state.replacementDetailReducer.loading,\n});\nconst mapDispatchToProps = (dispatch) => ({});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ReplacementDetail);\n","import React, { useState } from 'react'\nimport { homeStyles } from './home.styles'\nimport { connect } from 'react-redux'\nimport { Formik, Form, Field } from 'formik'\nimport { InputField, AccordionComponent } from '../../elements'\nimport TextField from '@material-ui/core/TextField'\n\nimport Dashboard from '../Dashboard'\nimport FuelSummary from '../FuelSummary'\nimport Summary from '../Summary'\nimport AppDetails from '../AppDetails'\nimport InstAttempts from '../InstAttempts'\nimport DeviceMount from '../DeviceMounting'\nimport Antennta from '../Antennta'\nimport Alternator from '../Alternator'\nimport Connector from '../Connector'\nimport Gsmgps from '../GsmGps'\nimport Ticket from '../Ticket'\nimport TripReplay from '../TripReplay'\nimport QualityChart from '../QualityChart'\nimport FirebaseData from '../FirebaseData'\n\nimport { fetchFuelRequest } from '../../store/actions/fetchfuelsAction'\nimport { fetchSummaryRequest } from '../../store/actions/fetchSummaryAction'\nimport { fetchFuelSummaryRequest } from '../../store/actions/fetchFuelSummaryAction'\nimport { fetchFuelModelRequest } from '../../store/actions/fetchFuelModelAction'\nimport { fetchTicketRequest } from '../../store/actions/fetchTicketAction'\nimport { fetchAppRequest } from '../../store/actions/fetchAppAction'\nimport { fetchInstAttemptsRequest } from '../../store/actions/fetchInstAttemptsAction'\nimport { fetchGsmGpsRequest } from '../../store/actions/fetchGsmGpsAction'\nimport { fetchInstImageRequest } from '../../store/actions/fetchInstImageAction'\nimport { fetchFirebaseDataRequest } from '../../store/actions/fetchFirebaseDataAction'\nimport { fetchThresholdRequest } from '../../store/actions/fetchThresholdValueAction'\nimport { daySummaryRequest } from '../../store/actions/fetchDaySummaryAction'\nimport { logoutRequest } from '../../store/actions/logoutAction'\nimport { simStatusRequest } from '../../store/actions/simStatusAction'\nimport { replacementDetailRequest } from '../../store/actions/replacemetDetailAction'\n\nimport Accordion from '@material-ui/core/Accordion'\nimport AccordionSummary from '@material-ui/core/AccordionSummary'\nimport AccordionDetails from '@material-ui/core/AccordionDetails'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport Typography from '@material-ui/core/Typography'\nimport { FaRedoAlt } from 'react-icons/fa'\n\nimport { getDateToday } from '../../utils'\nimport Tooltip from '@mui/material/Tooltip'\nimport IconButton from '@mui/material/IconButton'\nimport ExitToAppIcon from '@mui/icons-material/ExitToApp'\nimport { deviceListRequest } from '../../store/actions/deviceListAction'\nimport SimDetails from '../SimDetails'\nimport ReplacementDetail from '../ReplacementDetail'\n\nfunction Home({\n fuelLoading,\n fueldata,\n fuelsummary,\n summaryLoading,\n logout,\n ...props\n}) {\n const classes = homeStyles()\n const [deviceId, setDeviceId] = useState(0)\n const [selectedDate, setSelectedDate] = useState(new Date())\n const [showGraph, setShowGraph] = useState(false)\n const [phoneNumber, setPhoneNumber] = useState('')\n\n let deviceData = deviceId\n var today = getDateToday(selectedDate)\n\n const accordionData = [\n { header: 'Fuel Summary', value: },\n { header: 'App', value: },\n { header: 'Sim', value: },\n { header: 'Replacement Details', value: },\n { header: 'Installation Attempts', value: },\n { header: 'GSM GPS', value: },\n { header: 'Firebase Data', value: },\n ]\n\n const installationImageData = [\n { header: 'Device Mounting Image', value: },\n { header: 'GPS Antennta Image', value: },\n { header: 'Alternator Image', value: },\n { header: 'Fuel Connection Image', value: },\n ]\n\n const handleChange = (e) => {\n setSelectedDate(e.target.value)\n let deviceDate = e.target.value\n if (deviceId !== 0 && deviceId !== undefined) {\n let requestData = {\n device_id: deviceId,\n date: deviceDate,\n }\n props.fuelSubmit({ requestData })\n props.getDaySummary({ requestData })\n }\n }\n\n const handleShowGraph = () => {\n setShowGraph((prev) => {\n if (!prev && deviceId !== 0 && deviceId !== undefined) {\n let requestData = {\n device_id: deviceId,\n date: today,\n }\n props.getDaySummary({ requestData })\n props.fuelSubmit({ requestData })\n }\n return !prev\n })\n }\n\n const handleReset = () => {\n let requestData = {\n device_id: deviceId,\n date: today,\n }\n if (deviceId !== undefined && deviceId !== '') {\n let requestDevice = {\n device_id: deviceId,\n }\n props.getDaySummary({ requestData })\n props.fuelSubmit({ requestData })\n props.summary({ requestDevice })\n props.fuelSummary({ requestDevice })\n props.fuelModel({ requestDevice })\n props.ticket({ requestDevice })\n props.app({ requestDevice })\n props.instAttempts({ requestDevice })\n props.gsmGps({ requestDevice })\n props.instImage({ requestDevice })\n props.firebase({ requestDevice })\n props.threshold({ requestDevice })\n props.simRequest({ requestDevice })\n props.replacementDetailReq({ requestDevice })\n }\n }\n\n const handlePhoneNumber = (e) => {\n const input = e.target.value\n if (input.length <= 10) {\n setPhoneNumber(input)\n }\n }\n\n const handleDevices = () => {\n let requestDeviceList = {\n phone: phoneNumber,\n }\n props.getDeviceListByPhone({ requestDeviceList })\n }\n\n return (\n
\n
\n

Internal Debug Dashboard

\n \n \n \n Get Devices\n \n {\n const errors = {}\n return errors\n }}\n onSubmit={(values, { setSubmitting }) => {\n let { deviceId } = values\n setDeviceId(deviceId)\n if (deviceId !== undefined && deviceId !== '') {\n let requestDevice = {\n device_id: deviceId,\n }\n setShowGraph(false)\n // setSelectedDate(new Date());\n props.summary({ requestDevice })\n props.fuelSummary({ requestDevice })\n props.fuelModel({ requestDevice })\n props.ticket({ requestDevice })\n props.app({ requestDevice })\n props.instAttempts({ requestDevice })\n props.gsmGps({ requestDevice })\n props.instImage({ requestDevice })\n props.firebase({ requestDevice })\n props.threshold({ requestDevice })\n props.simRequest({ requestDevice })\n props.replacementDetailReq({ requestDevice })\n setSubmitting(false)\n }\n }}\n >\n {({ values, errors, touched, handleChange }) => (\n
\n
\n \n
\n
\n )}\n \n \n \n \n
\n \n {!showGraph ? (\n <>Show Graphs\n ) : (\n <>\n <>Hide Graphs\n \n )}\n \n
logout()}>\n \n \n \n \n \n
\n
\n {props.deviceList &&\n props.deviceList?.status &&\n props.deviceList?.data?.device_ids?.length > 0 ? (\n
\n
\n Device IDs :{' '}\n {props.deviceList?.data?.device_ids?.join(', ')}\n
\n
\n ) : (\n props.deviceList &&\n props.deviceList?.status && (\n
\n
\n \n There is no device ID associated with this\n number\n \n
\n
\n )\n )}\n {props.deviceList && !props.deviceList.status && (\n
\n
\n {props.deviceList?.message}\n
\n
\n )}\n {deviceId === 0 || deviceId === undefined || deviceId === '' ? (\n
\n

\n Enter a Device ID\n

\n
\n ) : (\n <>\n {showGraph && (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n )}\n
\n
\n \n
\n
\n {accordionData.map((item, index) => (\n
\n \n
\n ))}\n
\n
\n
\n
\n \n }\n >\n \n Installation Image\n \n \n \n \n {installationImageData.map(\n (item, index) => (\n \n )\n )}\n
\n \n \n
\n \n
\n
\n }\n />\n
\n
\n
\n

\n \n

\n
\n \n )}\n \n )\n}\n\nconst mapStateToProps = (state) => ({\n fuelLoading: state.fuelReducer.loading,\n fuelmodel: state.fuelModelReducer.fuelModel,\n fueldata: state.fuelReducer.fuel,\n fuelsummary: state.fuelSummaryReducer.fuelSummary,\n summaryLoading: state.fuelSummaryReducer.loading,\n deviceList: state.deviceListReducer.resDeviceList,\n})\n\nconst mapDispatchToProps = (dispatch) => ({\n fuelSubmit: ({ requestData }) =>\n dispatch(fetchFuelRequest({ requestData })),\n summary: ({ requestDevice }) =>\n dispatch(fetchSummaryRequest({ requestDevice })),\n fuelSummary: ({ requestDevice }) =>\n dispatch(fetchFuelSummaryRequest({ requestDevice })),\n fuelModel: ({ requestDevice }) =>\n dispatch(fetchFuelModelRequest({ requestDevice })),\n ticket: ({ requestDevice }) =>\n dispatch(fetchTicketRequest({ requestDevice })),\n app: ({ requestDevice }) => dispatch(fetchAppRequest({ requestDevice })),\n instAttempts: ({ requestDevice }) =>\n dispatch(fetchInstAttemptsRequest({ requestDevice })),\n gsmGps: ({ requestDevice }) =>\n dispatch(fetchGsmGpsRequest({ requestDevice })),\n instImage: ({ requestDevice }) =>\n dispatch(fetchInstImageRequest({ requestDevice })),\n firebase: ({ requestDevice }) =>\n dispatch(fetchFirebaseDataRequest({ requestDevice })),\n threshold: ({ requestDevice }) =>\n dispatch(fetchThresholdRequest({ requestDevice })),\n getDaySummary: ({ requestData }) =>\n dispatch(daySummaryRequest({ requestData })),\n getDeviceListByPhone: ({ requestDeviceList }) =>\n dispatch(deviceListRequest({ requestDeviceList })),\n simRequest: ({ requestDevice }) =>\n dispatch(simStatusRequest({ requestDevice })),\n replacementDetailReq: ({ requestDevice }) =>\n dispatch(replacementDetailRequest({ requestDevice })),\n logout: () => {\n dispatch(logoutRequest())\n },\n})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Home)\n","import styled, { css } from \"styled-components\";\nimport { forwardRef } from \"react\";\n\n//Container\nconst ContainerWrapper = forwardRef(\n ({ className, minHeight, ...props }, ref) => (\n \n )\n);\n\nconst Container = styled(ContainerWrapper)`\n max-width: 1200px;\n width: 100%;\n margin: auto;\n padding: 0 2em;\n min-height: ${(props) => props.minHeight};\n`;\n\n//Flex\nconst FlexWrapper = forwardRef(({ className, flex, ...props }, ref) => (\n
\n));\n\nconst FlexGap = css`\n flex: ${(props) => props.flex};\n`;\n\nconst RowGap = css`\n & > * + * {\n margin: 0 0 0 ${(props) => props.gap};\n }\n`;\n\nconst ColumnGap = css`\n & > * + * {\n margin: ${(props) => props.gap} 0 0 0;\n }\n`;\n\nconst Flex = styled(FlexWrapper)`\n display: flex;\n flex-direction: ${(props) => props.direction ?? \"row\"};\n align-items: ${(props) => props.align ?? \"center\"};\n justify-content: ${(props) => props.justify ?? \"space-between\"};\n /* gap: ${(props) => props.gap}; */\n ${(props) => props.flex && FlexGap}\n ${({ direction, gap }) =>\n direction && gap && direction === \"column\" && ColumnGap}\n ${({ direction, gap }) =>\n direction || (gap && direction !== \"column\" && RowGap)}\n`;\n\nlet IconWrapper = styled.span`\n width: ${(props) => props.size ?? \"80px\"};\n height: ${(props) => props.size ?? \"80px\"};\n border-radius: 50%;\n background: ${(props) => props.theme.colors[\"white-100\"]};\n display: grid;\n place-content: center;\n & > img {\n width: ${(props) =>\n props.size ? props.size.split(\"px\")[0] - 20 + \"px\" : \"30px\"};\n }\n`;\n\nexport { Flex, Container, IconWrapper };\n","export default __webpack_public_path__ + \"static/media/person.eb1d2299.svg\";","export default __webpack_public_path__ + \"static/media/lock.2593b863.svg\";","export default __webpack_public_path__ + \"static/media/home-image@2x.3458e411.jpg\";","import styled, { css } from \"styled-components\";\n\nconst InputBorder = css`\n border: 1px solid red;\n`;\n\nconst InputContainerWrapper = ({ children, className, ...props }) => (\n
\n {children}\n
\n);\n\nconst InputContainer = styled(InputContainerWrapper)`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n background: ${(props) => props.background ?? \"#ffffff\"};\n border-radius: 4px;\n opacity: 1;\n margin: 1em 0;\n width: ${(props) => (props.width ? props.width : \"auto\")};\n height: ${(props) => (props.height ? props.height : \"45px\")};\n margin-bottom: ${(props) => (props.error ? \"0\" : \"1em\")};\n border: ${(props) =>\n props.border === \"none\" ? \"none\" : \"1px solid #999999\"};\n ${(props) => props.error && InputBorder}\n :focus-within {\n outline: none !important;\n border: 1px solid #4d4d4d;\n }\n`;\n\nconst InputIconWrapper = ({ className, children, ...props }) => (\n \n {children}\n \n);\n\nconst InputIcon = styled(InputIconWrapper)`\n padding: 0.5em;\n & > img {\n width: 22px;\n }\n`;\n\nconst InputElementWrapper = ({ className, ...props }) => (\n \n);\n\nconst InputElement = styled(InputElementWrapper)`\n flex: 1;\n outline: none;\n border: none;\n background: none;\n font-size: 1em;\n color: #333333;\n height: 100%;\n width: ${(props) => props.width ?? \"230px\"};\n margin: ${(props) =>\n props.iconposition === \"right\" ? \"0 0 0 1em\" : \"0 1em 0 0\"};\n`;\n\nconst InputErrorWrapper = ({ children, ...props }) => (\n

{children}

\n);\n\nconst InputError = styled(InputErrorWrapper)`\n font-size: 0.7em;\n width: 100%;\n text-align: left;\n color: ${(props) => props.theme.colors[\"primary\"]};\n`;\n\nexport { InputContainer, InputIcon, InputElement, InputError };\n","import React from \"react\";\nimport {\n InputContainer,\n InputIcon,\n InputElement,\n InputError,\n} from \"./Input.styled\";\n\nconst Input = ({ icon, iconPosition, error, iconClick, type, ...props }) => {\n return (\n <>\n \n {icon && iconPosition === \"left\" && (\n \n \n \n )}\n \n\n {icon && iconPosition === \"right\" && (\n \n \n \n )}\n \n {error && {error}}\n \n );\n};\n\nInput.defaultProps = {\n iconPosition: \"left\",\n type: \"text\",\n};\n\nexport default Input;\n","import * as types from \"../types\";\n\nexport const loginRequest = ({ email, password }) => {\n return {\n type: types.LOGIN_REQUEST,\n payload: { email, password },\n };\n};\n\nexport const loginRequestSuccess = ({ status, message }) => {\n return {\n type: types.LOGIN_REQUEST_SUCCESS,\n status,\n message,\n };\n};\n\nexport const loginRequestFailure = ({ status, message }) => {\n return {\n type: types.LOGIN_REQUEST_FAILURE,\n status,\n message,\n };\n};\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const loginStyles = makeStyles((theme) => ({\n login: {\n width: \"100%\",\n height: \"100vh\",\n background: \"#ffffff\",\n },\n left: {\n flex: \"1\",\n height: \"100vh\",\n backgroundSize: \"cover\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center\",\n },\n submit: {\n border: \"none\",\n outline: \"none\",\n cursor: \"pointer\",\n borderRadius: \"4px\",\n fontWeight: \"bold\",\n display: \"flex\",\n alignItems: \"center\",\n padding: \"1em\",\n fontSize: \"1em\",\n width: \"100%\",\n transition: \"0.1s ease-in\",\n backgroundColor: \"#651fff\",\n color: \"white\",\n gap: \"1em\",\n },\n}));\n","import { useEffect, useState } from \"react\";\n\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nimport { Flex } from \"../../utility\";\nimport { Form, Formik } from \"formik\";\nimport { connect } from \"react-redux\";\nimport Person from \"../../assets/icons/person.svg\";\nimport Lock from \"../../assets/icons/lock.svg\";\nimport image from \"../../assets/img/home-image@2x.jpg\";\nimport Input from \"../../elements/Input\";\n\nimport { useLocation, Redirect } from \"react-router-dom\";\nimport { loginRequest } from \"../../store/actions/loginAction\";\n\nimport { loginStyles } from \"./login.styles\";\n\nconst Login = ({ isLoggedIn, loginMessage, loginLoading, ...props }) => {\n const { state } = useLocation();\n const [error, setError] = useState(null);\n\n const classes = loginStyles();\n\n useEffect(() => {\n if (!loginLoading && !isLoggedIn) {\n setError(loginMessage);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoggedIn, loginLoading]);\n\n if (isLoggedIn) {\n return ;\n }\n\n return (\n \n {\n const errors = {};\n if (values.email === \"\") {\n errors.email = \"*Email is Required!\";\n } else if (values.password === \"\") {\n errors.password = \"*Password is Required\";\n }\n return errors;\n }}\n onSubmit={(values, { setSubmitting }) => {\n setError(null);\n if (values.remember) {\n localStorage.setItem(\"_u\", values.email);\n localStorage.setItem(\"_r\", true);\n } else {\n localStorage.removeItem(\"_u\");\n localStorage.removeItem(\"_r\");\n }\n props.login({ email: values.email, password: values.password });\n setSubmitting(false);\n }}\n >\n {({ values, errors, touched, handleChange }) => (\n <>\n \n \"\"\n \n \n \n \n

Welcome to Internal Debug Portal

\n

Please Login Using Your AMK Credentials

\n
\n
\n \n

Log In

\n \n \n \n {error && (\n \n

*{error}

\n
\n )}\n \n \n }\n label=\"Remember me\"\n />\n
\n \n \n {loginLoading ? (\n <>\n Logging In\n\n \n \n ) : (\n Login\n )}\n \n \n \n
\n
\n \n )}\n \n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n loginLoading: state.loginReducer.loading,\n isLoggedIn: state.loginReducer.isLoggedIn,\n loginMessage: state.loginReducer.message,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n login: ({ email, password }) => {\n dispatch(loginRequest({ email, password }));\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","import React from 'react'\n\nimport { Switch, Route } from 'react-router-dom'\nimport { PrivateRoute } from '../elements'\nimport { Home, Login, Dashboard } from '../components'\n\nimport { connect } from 'react-redux'\n\nconst Routes = ({ isLoggedIn }) => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst mapStateToProps = (state) => ({\n isLoggedIn: state.loginReducer.isLoggedIn,\n})\n\nconst mapDispatchToProps = () => ({})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Routes)\n","import React from \"react\";\nimport \"./App.css\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport {\n createMuiTheme,\n makeStyles,\n ThemeProvider,\n} from \"@material-ui/core/styles\";\nimport Routes from \"./Routes\";\n\nconst theme = createMuiTheme({\n palette: {\n // type: \"dark\",\n primary: {\n main: \"#651fff \",\n },\n secondary: {\n main: \"#A9A9A9\",\n },\n accent: {\n main: \"#F37021\",\n },\n light: {\n main: \"#FFFFFF\",\n },\n grey: {\n main: \"#FAF3FF\",\n },\n dark: {\n main: \"#575756\",\n },\n typography: {\n button: {\n textTransform: \"none\",\n },\n fontFamily: \"'Noto Sans JP', sans-serif\",\n },\n },\n});\n\nconst useStyles = makeStyles((theme) => ({\n main: {\n width: \"100%\",\n minHeight: \"100vh\",\n },\n}));\n\nconst App = () => {\n const classes = useStyles();\n return (\n
\n \n \n \n \n
\n );\n};\n\nexport default App;\n","import * as types from \"../types\";\n\nconst initialState = {\n msg: null,\n status: null,\n};\n\nconst errorReducer = (state = initialState, action) => {\n switch (action.type) {\n case types.GET_ERRORS:\n return {\n ...state,\n msg: action.payload.msg,\n status: action.payload.status,\n };\n case types.CLEAR_ERRORS:\n return {\n ...state,\n msg: null,\n status: null,\n };\n default:\n return state;\n }\n};\n\nexport default errorReducer;\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n fuel: null,\n requestData: null,\n error: null,\n};\n\nexport default function fetchFuelReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_FUEL_REQUEST:\n return {\n ...state,\n loading: true,\n requestData: action.payload.requestData,\n };\n\n case types.FETCH_FUEL_SUCCESS:\n return {\n ...state,\n loading: false,\n fuel: action.payload.fuel,\n };\n\n case types.FETCH_FUEL_FAILURE:\n return {\n ...state,\n loading: false,\n fuel: null,\n requestData: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from '../types'\n\nconst initialState = {\n loading: false,\n summary: null,\n requestDevice: null,\n error: null,\n}\n\nexport default function fetchSummaryReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_SUMMARY_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n }\n\n case types.FETCH_SUMMARY_SUCCESS:\n return {\n ...state,\n loading: false,\n summary: action.payload.summary,\n }\n\n case types.FETCH_SUMMARY_FAILURE:\n return {\n ...state,\n loading: false,\n summary: null,\n requestDevice: null,\n error: action.payload.error,\n }\n\n default:\n return state\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n fuelSummary: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchFuelSummaryReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_FUEL_SUMMARY_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_FUEL_SUMMARY_SUCCESS:\n return {\n ...state,\n loading: false,\n fuelSummary: action.payload.fuelSummary,\n };\n\n case types.FETCH_FUEL_SUMMARY_FAILURE:\n return {\n ...state,\n loading: false,\n fuelSummary: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n fuelModel: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchFuelModelReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_FUEL_MODEL_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_FUEL_MODEL_SUCCESS:\n return {\n ...state,\n loading: false,\n fuelModel: action.payload.fuelModel,\n };\n\n case types.FETCH_FUEL_MODEL_FAILURE:\n return {\n ...state,\n loading: false,\n fuelModel: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n ticket: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchTicketReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_TICKET_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_TICKET_SUCCESS:\n return {\n ...state,\n loading: false,\n ticket: action.payload.ticket,\n };\n\n case types.FETCH_TICKET_FAILURE:\n return {\n ...state,\n loading: false,\n ticket: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n app: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchAppReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_APP_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_APP_SUCCESS:\n return {\n ...state,\n loading: false,\n app: action.payload.app,\n };\n\n case types.FETCH_APP_FAILURE:\n return {\n ...state,\n loading: false,\n app: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n instAttempts: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchInstAttemptsReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_INST_ATTEMPTS_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_INST_ATTEMPTS_SUCCESS:\n return {\n ...state,\n loading: false,\n instAttempts: action.payload.instAttempts,\n };\n\n case types.FETCH_INST_ATTEMPTS_FAILURE:\n return {\n ...state,\n loading: false,\n instAttempts: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n gsmGps: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchGsmGpsReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_GSM_GPS_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_GSM_GPS_SUCCESS:\n return {\n ...state,\n loading: false,\n gsmGps: action.payload.gsmGps,\n };\n\n case types.FETCH_GSM_GPS_FAILURE:\n return {\n ...state,\n loading: false,\n gsmGps: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n instImage: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchInstImageReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_INST_IMG_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_INST_IMG_SUCCESS:\n return {\n ...state,\n loading: false,\n instImage: action.payload.instImage,\n };\n\n case types.FETCH_INST_IMG_FAILURE:\n return {\n ...state,\n loading: false,\n instImage: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n firebaseData: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchFirebaseDataReducer(state = initialState, action) {\n switch (action.type) {\n case types.FETCH_FIREBASE_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_FIREBASE_SUCCESS:\n return {\n ...state,\n loading: false,\n firebaseData: action.payload.firebaseData,\n };\n\n case types.FETCH_FIREBASE_FAILURE:\n return {\n ...state,\n loading: false,\n firebaseData: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n thresholdValue: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function fetchThresholdValueReducer(\n state = initialState,\n action\n) {\n switch (action.type) {\n case types.FETCH_THRESHOLD_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.FETCH_THRESHOLD_SUCCESS:\n return {\n ...state,\n loading: false,\n thresholdValue: action.payload.thresholdValue,\n };\n\n case types.FETCH_THRESHOLD_FAILURE:\n return {\n ...state,\n loading: false,\n thresholdValue: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n area: null,\n requestData: null,\n daySummary: null,\n commutes: null,\n patches: null,\n replay: null,\n dailyStatus: null,\n totalTime: null,\n kms: null,\n // lastActive: null,\n error: null,\n};\n\nconst daySummaryReducer = (state = initialState, action) => {\n switch (action.type) {\n case types.DAY_SUMMARY_REQUEST:\n return {\n ...state,\n loading: true,\n requestData: action.payload.requestData,\n };\n case types.DAY_SUMMARY_SUCCESS:\n return {\n ...state,\n loading: false,\n area: action.payload.area,\n totalTime: action.payload.totalTime,\n kms: action.payload.kms,\n // lastActive: action.payload.lastActive,\n daySummary: action.payload.daySummary,\n commutes: action.payload.commutes,\n patches: action.payload.patches,\n replay: action.payload.replay,\n dailyStatus: action.payload.dailyStatus,\n };\n case types.DAY_SUMMARY_FAILURE:\n return {\n ...state,\n loading: false,\n requestData: null,\n daySummary: null,\n error: action.payload.error,\n };\n default:\n return state;\n }\n};\n\nexport default daySummaryReducer;\n","import * as types from '../types'\n\nconst initialState = {\n loading: false,\n isLoggedIn: false,\n status: false,\n message: null,\n error: {},\n}\n\nexport default function loginReducer(state = initialState, action) {\n switch (action.type) {\n case types.LOGIN_REQUEST:\n return {\n ...state,\n loading: true,\n error: {},\n }\n case types.LOGIN_REQUEST_SUCCESS:\n sessionStorage.setItem('loggedIn', true)\n return {\n ...state,\n loading: false,\n isLoggedIn: true,\n status: action.status,\n message: action.message,\n error: {},\n }\n case types.LOGIN_REQUEST_FAILURE:\n sessionStorage.removeItem('loggedIn')\n return {\n ...state,\n loading: false,\n isLoggedIn: false,\n status: action.status,\n message: action.message,\n user: null,\n }\n case types.LOGOUT_REQUEST:\n return {\n ...state,\n loading: true,\n }\n case types.LOGOUT_REQUEST_SUCCESS:\n sessionStorage.removeItem('loggedIn')\n localStorage.removeItem('access_token')\n localStorage.removeItem('refresh_token')\n return {\n ...state,\n loading: false,\n isLoggedIn: false,\n status: null,\n error: {},\n message: null,\n }\n case types.LOGOUT_REQUEST_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.error,\n }\n default:\n return state\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n resFuelTicket: null,\n requestTicket: null,\n error: null,\n};\n\nexport default function fetchFuelTicketReducer(state = initialState, action) {\n switch (action.type) {\n case types.FUEL_TICKET_METADATA_REQUEST:\n return {\n ...state,\n loading: true,\n requestTicket: action.payload.requestTicket,\n };\n\n case types.FUEL_TICKET_METADATA_SUCCESS:\n return {\n ...state,\n loading: false,\n resFuelTicket: action.payload.resFuelTicket,\n };\n\n case types.FUEL_TICKET_METADATA_FAILURE:\n return {\n ...state,\n loading: false,\n resFuelTicket: null,\n requestTicket: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n requestCloseFuelTicket: null,\n resCloseFuelTicket: null,\n error: null,\n};\n\nexport default function fuelCloseTicketReducer(state = initialState, action) {\n switch (action.type) {\n case types.FUEL_TICKET_REQUEST:\n return {\n ...state,\n loading: true,\n requestCloseFuelTicket: action.payload.requestCloseFuelTicket,\n };\n\n case types.FUEL_TICKET_SUCCESS:\n return {\n ...state,\n loading: false,\n resCloseFuelTicket: action.payload.resCloseFuelTicket,\n };\n\n case types.FUEL_TICKET_FAILURE:\n return {\n ...state,\n loading: false,\n requestCloseFuelTicket: null,\n resCloseFuelTicket: null,\n error: action.payload.error,\n };\n\n case types.FUEL_TICKET_RESET:\n return {\n ...state,\n loading: false,\n requestCloseFuelTicket: null,\n resCloseFuelTicket: null,\n error: null,\n };\n\n default:\n return state;\n }\n}\n","import * as types from '../types'\n\nconst initialState = {\n loading: false,\n resTicket: null,\n requestTicket: null,\n error: null,\n}\n\nexport default function ticketMoreInfoReducer(state = initialState, action) {\n switch (action.type) {\n case types.TICKET_MORE_INFO_REQUEST:\n return {\n ...state,\n loading: true,\n requestTicket: action.payload.requestTicket,\n }\n\n case types.TICKET_MORE_INFO_SUCCESS:\n return {\n ...state,\n loading: false,\n resTicket: action.payload.resTicket,\n }\n\n case types.TICKET_MORE_INFO_FAILURE:\n return {\n ...state,\n loading: false,\n resTicket: null,\n requestTicket: null,\n error: action.payload.error,\n }\n\n default:\n return state\n }\n}\n","import * as types from '../types'\n\nconst initialState = {\n loading: false,\n resDeviceList: null,\n requestDeviceList: null,\n error: null,\n}\n\nexport default function deviceListReducer(state = initialState, action) {\n switch (action.type) {\n case types.DEVICE_LIST_REQUEST:\n return {\n ...state,\n loading: true,\n requestDeviceList: action.payload.requestDeviceList,\n }\n\n case types.DEVICE_LIST_SUCCESS:\n return {\n ...state,\n loading: false,\n resDeviceList: action.payload.resDeviceList,\n }\n\n case types.DEVICE_LIST_FAILURE:\n return {\n ...state,\n loading: false,\n resDeviceList: null,\n requestDeviceList: null,\n error: action.payload.error,\n }\n\n default:\n return state\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n sim: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function simStatusReducer(state = initialState, action) {\n switch (action.type) {\n case types.SIM_STATUS_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.SIM_STATUS_SUCCESS:\n return {\n ...state,\n loading: false,\n sim: action.payload.sim,\n };\n\n case types.SIM_STATUS_FAILURE:\n return {\n ...state,\n loading: false,\n sim: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import * as types from \"../types\";\n\nconst initialState = {\n loading: false,\n replacementDetail: null,\n requestDevice: null,\n error: null,\n};\n\nexport default function replacementDetailReducer(state = initialState, action) {\n switch (action.type) {\n case types.REPLACEMENT_DATA_REQUEST:\n return {\n ...state,\n loading: true,\n requestDevice: action.payload.requestDevice,\n };\n\n case types.REPLACEMENT_DATA_SUCCESS:\n return {\n ...state,\n loading: false,\n replacementDetail: action.payload.replacementDetail,\n };\n\n case types.REPLACEMENT_DATA_FAILURE:\n return {\n ...state,\n loading: false,\n replacementDetail: null,\n requestDevice: null,\n error: action.payload.error,\n };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux'\nimport errorReducer from './errorReducer'\nimport fetchFuelReducer from './fetchFuelReducer'\nimport fetchSummaryReducer from './fetchSummaryReducer'\nimport fetchFuelSummaryReducer from './fetchFuelSummaryReducer'\nimport fetchFuelModelReducer from './fetchFuelModelReducer'\nimport fetchTicketReducer from './fetchTicketReducer'\nimport fetchAppReducer from './fetchAppReducer'\nimport fetchInstAttemptsReducer from './fetchInstAttemptsReducer'\nimport fetchGsmGpsReducer from './fetchGsmGpsReducer'\nimport fetchInstImageReducer from './fetchInstImageReducer'\nimport fetchFirebaseDataReducer from './fetchFirebaseDataReducer'\nimport fetchThresholdReducer from './fetchThresholdReducer'\nimport daySummaryReducer from './fetchDaySummaryReducer'\nimport loginReducer from './loginReducer'\nimport fetchFuelTicketReducer from './fetchFuelTicketReducer'\nimport fuelCloseTicketReducer from './fuelTicketReducer'\nimport ticketMoreInfoReducer from './ticketMoreInfoReducer'\nimport deviceListReducer from './deviceListReducer'\nimport simStatusReducer from './simStatusReducer'\nimport replacementDetailReducer from './replacementDetailReducer'\n\nimport { persistReducer } from 'redux-persist'\nimport storage from 'redux-persist/lib/storage'\n\nconst persistConfig = {\n key: 'root',\n storage: storage,\n blacklist: [\n 'fuelReducer',\n 'summaryReducer',\n 'fuelSummaryReducer',\n 'fuelModelReducer',\n 'fuelCulpritReducer',\n 'ticketReducer',\n 'appReducer',\n 'instAttemptsReducer',\n 'firebaseReducer',\n 'thresholdReducer',\n 'daySummData',\n 'fuelTicketReducer',\n 'fuelCloseTicketReducer',\n 'simStatusReducer',\n 'replacementDetailReducer',\n 'deviceListReducer',\n ],\n}\n\nconst rootReducer = combineReducers({\n errorReducer,\n fuelReducer: fetchFuelReducer,\n summaryReducer: fetchSummaryReducer,\n fuelSummaryReducer: fetchFuelSummaryReducer,\n fuelModelReducer: fetchFuelModelReducer,\n ticketReducer: fetchTicketReducer,\n appReducer: fetchAppReducer,\n instAttemptsReducer: fetchInstAttemptsReducer,\n gsmGpsReducer: fetchGsmGpsReducer,\n instImageReducer: fetchInstImageReducer,\n firebaseReducer: fetchFirebaseDataReducer,\n thresholdReducer: fetchThresholdReducer,\n daySummData: daySummaryReducer,\n fuelTicketReducer: fetchFuelTicketReducer,\n fuelCloseTicketReducer,\n ticketMoreInfoReducer,\n deviceListReducer,\n simStatusReducer,\n replacementDetailReducer,\n loginReducer,\n})\n\nexport default persistReducer(persistConfig, rootReducer)\n","import * as types from \"../types\";\n\nexport const returnErrors = ({ msg, status }) => {\n return {\n type: types.GET_ERRORS,\n payload: { msg, status },\n };\n};\n\nexport const clearErrors = () => {\n return {\n type: types.CLEAR_ERRORS,\n };\n};\n","export const API_ROUTES = {\n LOGIN: '/cms/tech/api/login/',\n FUELS: '/debug/get_trip_info/',\n DEVICE_SUMMARY: '/debug/dev/idp/summary/',\n DEVICE_FUEL_SUMMARY: '/debug/get_fuel_summary/',\n MODEL: '/debug/get_fuel_model/',\n DEVICE_TICKET: '/debug/get_ticket_summary/',\n APP: '/debug/get_app_data/',\n INSTALLATION: '/debug/get_inst_attempts/',\n GSM_GPS: '/debug/get_gsm_info/',\n INSTALLATION_IMAGE: '/debug/get_installation_images/',\n FIREBASE: '/cms/check_presence/',\n THRESHOLD: '/debug/get_vbat_thr/',\n REFRESH_ACCESS_TOKEN: '/users/refresh_access_token/',\n CLOSE_TICKET: '/cms/close_ticket/',\n FUEL_TICKET: '/cms/get_fuel_ticket_metadata/',\n TICKET_MORE_INFO: '/cms/support_history/',\n DEVICE_LIST: '/debug/get_devices_by_phone/',\n SIM: '/debug/get_sim_summary/',\n REPLACEMENT_DETAIL: '/debug/get_replacement_summary/',\n}\n\nexport const API_BASE_URL = {\n LOGIN_URL: process.env.REACT_APP_INTERNALS\n ? process.env.REACT_APP_INTERNALS\n : 'https://staging.carnot-traclytics.com',\n DATA_URL: process.env.REACT_APP_DATA\n ? process.env.REACT_APP_DATA\n : 'https://staging.carnot-traclytics.com',\n FIELD_URL: process.env.REACT_FIELD_URL\n ? process.env.REACT_FIELD_URL\n : 'https://field-lambda.carnot-traclytics.com',\n}\n","import axios from 'axios'\nimport { parseDayDetails } from '../utils'\nimport { API_ROUTES, API_BASE_URL } from '../config'\nimport { store } from '../store'\nimport { logoutRequest } from '../store/actions/logoutAction'\n\n// const headerParams = { 'app-version': 26.6 }\nconst headerJWTParams = {\n 'app-build': 'testapp',\n 'app-version': '24.5',\n platform: 'Android',\n}\n\nconst axiosInstance = axios.create({\n baseURL: API_BASE_URL.DATA_URL,\n headers: {\n ...headerJWTParams,\n },\n})\n\naxiosInstance.interceptors.request.use(\n (config) => {\n const token = localStorage.getItem('access_token')\n if (token) {\n config.headers['User-Auth'] = `Bearer ${token}`\n }\n return config\n },\n (error) => {\n return Promise.reject(error)\n }\n)\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n async (error) => {\n if (error.response && error.response.status === 401) {\n try {\n const refreshed = await getRefreshAccessToken()\n if (refreshed) {\n const originalRequest = error.config\n originalRequest.headers[\n 'User-Auth'\n ] = `Bearer ${localStorage.getItem('access_token')}`\n return axiosInstance(originalRequest)\n }\n } catch (refreshError) {\n throw refreshError\n }\n }\n throw error\n }\n)\n\nexport const loginUser = async ({ email, password }) => {\n try {\n const { data } = await axios({\n method: 'post',\n url: `${API_BASE_URL.LOGIN_URL}${API_ROUTES.LOGIN}`,\n data: JSON.stringify({ user_id: email, user_pwd: password }),\n headers: {\n 'content-type': 'application/json',\n },\n })\n return data\n } catch (error) {\n console.err(error)\n throw error\n }\n}\n\nexport const fuels = async ({ requestData }) => {\n try {\n const { data } = await axiosInstance.post(\n `${API_ROUTES.FUELS}`,\n requestData\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceSummary = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.post(\n `${API_ROUTES.DEVICE_SUMMARY}${device}/`,\n requestDevice\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceFuelSummary = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.DEVICE_FUEL_SUMMARY}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceFuelModel = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.MODEL}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceTicket = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.DEVICE_TICKET}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceApp = async ({ requestDevice }) => {\n try {\n let device = requestDevice.device_id\n const { data } = await axiosInstance.get(`${API_ROUTES.APP}${device}/`)\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceAttempts = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.INSTALLATION}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceGsmGps = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.GSM_GPS}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceInstImg = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.INSTALLATION_IMAGE}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const firebaseData = async ({ requestDevice }) => {\n try {\n let device = requestDevice.device_id\n const { data } = await axios({\n method: 'post',\n url: `${API_BASE_URL.DATA_URL}${API_ROUTES.FIREBASE}${device}`,\n data: requestDevice,\n })\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const thresholdValue = async ({ requestDevice }) => {\n try {\n let { device_id: device } = requestDevice\n const { data } = await axiosInstance.get(\n `${API_ROUTES.THRESHOLD}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const fetchDaySummary = async ({ requestData }) => {\n let deviceId = requestData.device_id\n let date = new Date(requestData.date)\n let month = date.getMonth() + 1\n let year = date.getFullYear()\n let today = date.getDate()\n if (month < 10) {\n month = '0' + month\n }\n\n if (today < 10) {\n today = '0' + today\n }\n\n const { data } = await axiosInstance.get(\n `/data/summary/day/${deviceId}/${year}/${month}/${today}/0/`\n )\n\n return data\n}\n\nexport const fetchDayDetail = async ({ deviceId, date }) => {\n let datee = new Date(date)\n let month = datee.getMonth() + 1\n let year = datee.getFullYear()\n let today = datee.getDate()\n\n if (month < 10) {\n month = '0' + month\n }\n\n if (today < 10) {\n today = '0' + today\n }\n\n const {\n data: { data },\n } = await axiosInstance.get(\n `/data/details/day/${deviceId}/${year}/${month}/${today}/0/`\n )\n return parseDayDetails(data)\n}\n\nexport const getRefreshAccessToken = async () => {\n try {\n const { data } = await axios({\n method: 'post',\n url: `${API_BASE_URL.DATA_URL}${API_ROUTES.REFRESH_ACCESS_TOKEN}`,\n headers: {\n ...headerJWTParams,\n 'User-Auth': `Bearer ${localStorage.getItem('refresh_token')}`,\n },\n })\n localStorage.setItem('access_token', data.access_token)\n return true\n } catch (error) {\n sessionStorage.setItem('loggedIn', false)\n localStorage.removeItem('access_token')\n localStorage.removeItem('refresh_token')\n store.dispatch(logoutRequest())\n throw error\n }\n}\n\nexport const getFuelTicket = async ({ requestTicket }) => {\n const { data } = await axiosInstance.get(\n `${API_ROUTES.FUEL_TICKET}${requestTicket.id}/`\n )\n\n return data\n}\n\nexport const closeFuelTicket = async ({ requestCloseFuelTicket }) => {\n try {\n const { data } = await axiosInstance.post(\n `${API_ROUTES.CLOSE_TICKET}`,\n requestCloseFuelTicket\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const ticketMoreInfo = async ({ requestTicket }) => {\n try {\n let { ticket_id: ticket } = requestTicket\n const { data } = await axiosInstance.get(\n `${API_ROUTES.TICKET_MORE_INFO}${ticket}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const getDeviceList = async ({ requestDeviceList }) => {\n try {\n const { data } = await axiosInstance.post(\n `${API_ROUTES.DEVICE_LIST}`,\n requestDeviceList\n )\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const deviceSim = async ({ requestDevice }) => {\n try {\n let device = requestDevice.device_id\n const { data } = await axiosInstance.get(`${API_ROUTES.SIM}${device}/`)\n return data\n } catch (error) {\n throw error\n }\n}\n\nexport const getReplacementDetail = async ({ requestDevice }) => {\n try {\n let device = requestDevice.device_id\n const { data } = await axiosInstance.get(\n `${API_ROUTES.REPLACEMENT_DETAIL}${device}/`\n )\n return data\n } catch (error) {\n throw error\n }\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchFuelFailure,\n fetchFuelSuccess,\n} from \"../actions/fetchfuelsAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchFuelSaga(action) {\n try {\n yield put(clearErrors());\n let fuel = yield call(_api.fuels, {\n requestData: action.payload.requestData,\n });\n // console.log(\"fuel \", fuel);\n yield put(fetchFuelSuccess({ fuel }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchFuelFailure({ error: e }));\n }\n}\nexport default function* fetchFuelSaga() {\n yield takeLatest(types.FETCH_FUEL_REQUEST, asyncFetchFuelSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchSummaryFailure,\n fetchSummarySuccess,\n} from \"../actions/fetchSummaryAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchSummarySaga(action) {\n try {\n yield put(clearErrors());\n let summary = yield call(_api.deviceSummary, {\n requestDevice: action.payload.requestDevice,\n });\n // console.log(\"summary \", summary);\n yield put(fetchSummarySuccess({ summary }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchSummaryFailure({ error: e }));\n }\n}\nexport default function* fetchSummarySaga() {\n yield takeLatest(types.FETCH_SUMMARY_REQUEST, asyncFetchSummarySaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchFuelSummaryFailure,\n fetchFuelSummarySuccess,\n} from \"../actions/fetchFuelSummaryAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchFuelSummarySaga(action) {\n try {\n yield put(clearErrors());\n let fuelSummary = yield call(_api.deviceFuelSummary, {\n requestDevice: action.payload.requestDevice,\n });\n // console.log(\"fuelSummary \", fuelSummary);\n yield put(fetchFuelSummarySuccess({ fuelSummary }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchFuelSummaryFailure({ error: e }));\n }\n}\nexport default function* fetchFuelSummarySaga() {\n yield takeLatest(types.FETCH_FUEL_SUMMARY_REQUEST, asyncFetchFuelSummarySaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchFuelModelFailure,\n fetchFuelModelSuccess,\n} from \"../actions/fetchFuelModelAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchFuelModelSaga(action) {\n try {\n yield put(clearErrors());\n let fuelModel = yield call(_api.deviceFuelModel, {\n requestDevice: action.payload.requestDevice,\n });\n yield put(fetchFuelModelSuccess({ fuelModel }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchFuelModelFailure({ error: e }));\n }\n}\nexport default function* fetchFuelModelSaga() {\n yield takeLatest(types.FETCH_FUEL_MODEL_REQUEST, asyncFetchFuelModelSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchTicketFailure,\n fetchTicketSuccess,\n} from \"../actions/fetchTicketAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchTicketSaga(action) {\n try {\n yield put(clearErrors());\n let ticket = yield call(_api.deviceTicket, {\n requestDevice: action.payload.requestDevice,\n });\n // console.log(\"realtime \", realtime);\n yield put(fetchTicketSuccess({ ticket }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchTicketFailure({ error: e }));\n }\n}\nexport default function* fetchRealtimeSaga() {\n yield takeLatest(types.FETCH_TICKET_REQUEST, asyncFetchTicketSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport { fetchAppFailure, fetchAppSuccess } from \"../actions/fetchAppAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchAppSaga(action) {\n try {\n yield put(clearErrors());\n let app = yield call(_api.deviceApp, {\n requestDevice: action.payload.requestDevice,\n });\n // console.log(\"app \", app);\n yield put(fetchAppSuccess({ app }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchAppFailure({ error: e }));\n }\n}\nexport default function* fetchAppSaga() {\n yield takeLatest(types.FETCH_APP_REQUEST, asyncFetchAppSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchInstAttemptsFailure,\n fetchInstAttemptsSuccess,\n} from \"../actions/fetchInstAttemptsAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchInstAttemptsSaga(action) {\n try {\n yield put(clearErrors());\n let instAttempts = yield call(_api.deviceAttempts, {\n requestDevice: action.payload.requestDevice,\n });\n // console.log(\"realtime \", realtime);\n yield put(fetchInstAttemptsSuccess({ instAttempts }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchInstAttemptsFailure({ error: e }));\n }\n}\nexport default function* fetchInstAttemptsSaga() {\n yield takeLatest(\n types.FETCH_INST_ATTEMPTS_REQUEST,\n asyncFetchInstAttemptsSaga\n );\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchGsmGpsFailure,\n fetchGsmGpsSuccess,\n} from \"../actions/fetchGsmGpsAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchGsmGpsSaga(action) {\n try {\n yield put(clearErrors());\n let gsmGps = yield call(_api.deviceGsmGps, {\n requestDevice: action.payload.requestDevice,\n });\n // console.log(\"gsmgps \", gsmGps);\n yield put(fetchGsmGpsSuccess({ gsmGps }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchGsmGpsFailure({ error: e }));\n }\n}\nexport default function* fetchGsmGpsSaga() {\n yield takeLatest(types.FETCH_GSM_GPS_REQUEST, asyncFetchGsmGpsSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchInstImageFailure,\n fetchInstImageSuccess,\n} from \"../actions/fetchInstImageAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchInstImageSaga(action) {\n try {\n yield put(clearErrors());\n let instImage = yield call(_api.deviceInstImg, {\n requestDevice: action.payload.requestDevice,\n });\n yield put(fetchInstImageSuccess({ instImage }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchInstImageFailure({ error: e }));\n }\n}\nexport default function* fetchInstImageSaga() {\n yield takeLatest(types.FETCH_INST_IMG_REQUEST, asyncFetchInstImageSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchFirebaseDataFailure,\n fetchFirebaseDataSuccess,\n} from \"../actions/fetchFirebaseDataAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchFirebaseDataSaga(action) {\n try {\n yield put(clearErrors());\n let firebaseData = yield call(_api.firebaseData, {\n requestDevice: action.payload.requestDevice,\n });\n yield put(fetchFirebaseDataSuccess({ firebaseData }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchFirebaseDataFailure({ error: e }));\n }\n}\nexport default function* fetchFirebaseDataSaga() {\n yield takeLatest(types.FETCH_FIREBASE_REQUEST, asyncFetchFirebaseDataSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport {\n fetchThresholdFailure,\n fetchThresholdSuccess,\n} from \"../actions/fetchThresholdValueAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchThresholdSaga(action) {\n try {\n yield put(clearErrors());\n let thresholdValue = yield call(_api.thresholdValue, {\n requestDevice: action.payload.requestDevice,\n });\n yield put(fetchThresholdSuccess({ thresholdValue }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchThresholdFailure({ error: e }));\n }\n}\nexport default function* fetchThresholdSaga() {\n yield takeLatest(types.FETCH_THRESHOLD_REQUEST, asyncFetchThresholdSaga);\n}\n","import { call, put, takeLatest } from \"redux-saga/effects\";\nimport * as types from \"../types\";\nimport { parseDaySummary, tripTimeFromDaySummary } from \"../../utils\";\n\nimport {\n daySummarySuccess,\n daySummaryFailure,\n} from \"../actions/fetchDaySummaryAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\n\nconst SQR_MTS_ACRES = 0.000247105;\n\nfunction* asyncDaySummary(action) {\n let data = \"NA\",\n area = \"NA\",\n totalTime = \"NA\",\n kms = \"NA\",\n dailyStatus,\n commutes,\n patches,\n replay;\n try {\n yield put(clearErrors());\n const daySummary = yield call(_api.fetchDaySummary, {\n requestData: action.payload.requestData,\n });\n // console.log(\"fetchDaySummary : \", daySummary);\n\n if (daySummary && daySummary.status) {\n let commutePatchesLength = 0;\n for (let key of Object.keys(daySummary.data.commutes)) {\n commutePatchesLength =\n commutePatchesLength + daySummary.data.commutes[key].length;\n }\n if (commutePatchesLength > 0) {\n dailyStatus = daySummary.status;\n data = parseDaySummary(daySummary);\n\n area = (data.area * SQR_MTS_ACRES).toFixed(2);\n totalTime = tripTimeFromDaySummary(\n data.haulage_time + data.idling_time + data.job_time\n );\n kms = (data.distance / 1000).toFixed(2);\n\n const res2 = yield call(_api.fetchDayDetail, {\n deviceId: data.device_fk_id,\n date: action.payload.requestData.date,\n });\n // console.log(\"res2 : \", res2);\n\n commutes = res2.commutes;\n patches = res2.patches;\n replay = res2.replay;\n }\n }\n\n yield put(\n daySummarySuccess({\n daySummary,\n commutes,\n patches,\n replay,\n dailyStatus,\n area,\n totalTime,\n kms,\n })\n );\n } catch (e) {\n // console.log(e);\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(daySummaryFailure(e));\n }\n}\n\nexport default function* daySummaryRequestSaga() {\n yield takeLatest(types.DAY_SUMMARY_REQUEST, asyncDaySummary);\n}\n","import { call, put, takeLatest } from 'redux-saga/effects'\nimport * as types from '../types'\nimport {\n loginRequestSuccess,\n loginRequestFailure,\n} from '../actions/loginAction'\nimport {\n logoutRequestSuccess,\n logoutRequestFailure,\n} from '../actions/logoutAction'\nimport { returnErrors, clearErrors } from '../actions/errorAction'\nimport * as _api from '../../api'\n\nfunction* asyncLoginRequest(action) {\n try {\n yield put(clearErrors())\n const res = yield call(_api.loginUser, {\n email: action.payload.email,\n password: action.payload.password,\n })\n if (res.status) {\n localStorage.setItem(\n 'access_token',\n res.data.auth_tokens.access_token\n )\n localStorage.setItem(\n 'refresh_token',\n res.data.auth_tokens.refresh_token\n )\n yield put(\n loginRequestSuccess({\n status: res.status,\n message: res.message,\n })\n )\n } else {\n yield put(\n loginRequestFailure({\n status: res.status,\n message: res.message,\n })\n )\n }\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }))\n yield put(loginRequestFailure({ status: false, message: e.message }))\n }\n}\n\nfunction* asyncLogoutRequest(action) {\n try {\n yield put(logoutRequestSuccess())\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }))\n yield put(logoutRequestFailure(e))\n }\n}\n\nexport default function* loginRequestSaga() {\n yield put(clearErrors())\n yield takeLatest(types.LOGIN_REQUEST, asyncLoginRequest)\n}\n\nexport function* logoutRequestSaga() {\n yield takeLatest(types.LOGOUT_REQUEST, asyncLogoutRequest)\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport { fetchFuelTicketSuccess, fetchFuelTicketFailure } from \"../actions/fetchfuelTicketAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFetchFuelTicketSaga(action) {\n try {\n yield put(clearErrors());\n let resFuelTicket = yield call(_api.getFuelTicket, {\n requestTicket: action.payload.requestTicket,\n });\n yield put(fetchFuelTicketSuccess({ resFuelTicket }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fetchFuelTicketFailure({ error: e }));\n }\n}\nexport default function* fetchFuelTicketSaga() {\n yield takeLatest(types.FUEL_TICKET_METADATA_REQUEST, asyncFetchFuelTicketSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport { fuelCloseTicketSuccess, fuelCloseTicketFailure } from \"../actions/fuelTicketAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncFuelCloseTicketSaga(action) {\n try {\n yield put(clearErrors());\n let resCloseFuelTicket = yield call(_api.closeFuelTicket, {\n requestCloseFuelTicket: action.payload.requestCloseFuelTicket,\n });\n yield put(fuelCloseTicketSuccess({ resCloseFuelTicket }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(fuelCloseTicketFailure({ error: e }));\n }\n}\nexport default function* fuelCloseTicketSaga() {\n yield takeLatest(types.FUEL_TICKET_REQUEST, asyncFuelCloseTicketSaga);\n}\n","import { takeLatest, call, put } from 'redux-saga/effects'\nimport {\n fetchTicketMoreInfoSuccess,\n fetchTicketMoreInfoFailure,\n} from '../actions/ticketMoreInfoAction'\nimport { returnErrors, clearErrors } from '../actions/errorAction'\nimport * as _api from '../../api'\nimport * as types from '../types'\n\nfunction* asyncTicketMoreInfoSaga(action) {\n try {\n yield put(clearErrors())\n let resTicket = yield call(_api.ticketMoreInfo, {\n requestTicket: action.payload.requestTicket,\n })\n yield put(fetchTicketMoreInfoSuccess({ resTicket }))\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }))\n yield put(fetchTicketMoreInfoFailure({ error: e }))\n }\n}\nexport default function* fetchTicketMoreInfoSaga() {\n yield takeLatest(types.TICKET_MORE_INFO_REQUEST, asyncTicketMoreInfoSaga)\n}\n","import { takeLatest, call, put } from 'redux-saga/effects'\nimport {\n deviceListSuccess,\n deviceListFailure,\n} from '../actions/deviceListAction'\nimport { returnErrors, clearErrors } from '../actions/errorAction'\nimport * as _api from '../../api'\nimport * as types from '../types'\n\nfunction* asyncDeviceListSaga(action) {\n try {\n yield put(clearErrors())\n let resDeviceList = yield call(_api.getDeviceList, {\n requestDeviceList: action.payload.requestDeviceList,\n })\n yield put(deviceListSuccess({ resDeviceList }))\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }))\n yield put(deviceListFailure({ error: e }))\n }\n}\nexport default function* deviceListSaga() {\n yield takeLatest(types.DEVICE_LIST_REQUEST, asyncDeviceListSaga)\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport { simStatusFailure, simStatusSuccess } from \"../actions/simStatusAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncSimStatusSaga(action) {\n try {\n yield put(clearErrors());\n let sim = yield call(_api.deviceSim, {\n requestDevice: action.payload.requestDevice,\n });\n yield put(simStatusSuccess({ sim }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(simStatusFailure({ error: e }));\n }\n}\nexport default function* simStatusSaga() {\n yield takeLatest(types.SIM_STATUS_REQUEST, asyncSimStatusSaga);\n}\n","import { takeLatest, call, put } from \"redux-saga/effects\";\nimport { replacementDetailFailure, replacementDetailSuccess } from \"../actions/replacemetDetailAction\";\nimport { returnErrors, clearErrors } from \"../actions/errorAction\";\nimport * as _api from \"../../api\";\nimport * as types from \"../types\";\n\nfunction* asyncReplacementDetailSaga(action) {\n try {\n yield put(clearErrors());\n let replacementDetail = yield call(_api.getReplacementDetail, {\n requestDevice: action.payload.requestDevice,\n });\n yield put(replacementDetailSuccess({ replacementDetail }));\n } catch (e) {\n yield put(returnErrors({ msg: e.message, status: true }));\n yield put(replacementDetailFailure({ error: e }));\n }\n}\nexport default function* replacementDetailSaga() {\n yield takeLatest(types.REPLACEMENT_DATA_REQUEST, asyncReplacementDetailSaga);\n}\n","import { all } from 'redux-saga/effects'\nimport fetchFuelSaga from './fetchFuelSaga'\nimport fetchSummarySaga from './fetchSummarySaga'\nimport fetchFuelSummarySaga from './fetchFuelSummarySaga'\nimport fetchFuelModelSaga from './fetchFuelModelSaga'\nimport fetchTicketSaga from './fetchTicketSaga'\nimport fetchAppSaga from './fetchAppSaga'\nimport fetchInstAttemptsSaga from './fetchInstAttemptsSaga'\nimport fetchGsmGpsSaga from './fetchGsmGpsSaga'\nimport fetchInstImageSaga from './fetchInstImageSaga'\nimport fetchFirebaseDataSaga from './fetchFirebaseDataSaga'\nimport fetchThresholdSaga from './fetchThresholdSaga'\nimport daySummaryRequestSaga from './fetchDaySummarySaga'\nimport loginRequestSaga, { logoutRequestSaga } from './loginSaga'\nimport fetchFuelTicketSaga from './fetchFuelTicketSaga'\nimport fuelCloseTicketSaga from './fuelTicketSaga'\nimport fetchTicketMoreInfoSaga from './ticketMoreInfoSaga'\nimport deviceListSaga from './deviceListSaga'\nimport simStatusSaga from './simStatusSaga'\nimport replacementDetailSaga from './replacementDetailSaga'\n\nexport default function* rootSaga() {\n yield all([\n fetchFuelSaga(),\n fetchSummarySaga(),\n fetchFuelSummarySaga(),\n fetchFuelModelSaga(),\n fetchTicketSaga(),\n fetchAppSaga(),\n fetchInstAttemptsSaga(),\n fetchGsmGpsSaga(),\n fetchInstImageSaga(),\n fetchFirebaseDataSaga(),\n fetchThresholdSaga(),\n daySummaryRequestSaga(),\n loginRequestSaga(),\n logoutRequestSaga(),\n fetchFuelTicketSaga(),\n fuelCloseTicketSaga(),\n simStatusSaga(),\n replacementDetailSaga(),\n fetchTicketMoreInfoSaga(),\n deviceListSaga(),\n ])\n}\n","import { createStore, applyMiddleware } from \"redux\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\nimport createSagaMiddleware from \"redux-saga\";\nimport rootReducer from \"./reducers\";\nimport rootSaga from \"./sagas\";\n\nimport { persistStore } from \"redux-persist\";\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst store = createStore(\n rootReducer,\n composeWithDevTools(applyMiddleware(sagaMiddleware))\n);\n\nlet persistor = persistStore(store);\nsagaMiddleware.run(rootSaga);\n\nexport { store, persistor };\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport { Provider } from \"react-redux\";\nimport { store, persistor } from \"./store\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}