{"version":3,"sources":["utils/i18nHelpers.ts","actions/accountActions.ts","services/authService.ts","actions/public/searchTemplateActions.ts","publicServices/supplierService.ts","constants/enums.ts","publicServices/tenderService.ts","utils/analytics.js","components/Page.tsx","publicServices/documentsService.ts","actions/utilsActions.ts","publicViews/auth/RegisterView/NewFileItem.tsx","publicViews/auth/DigitalSignatureView/index.tsx","actions/public/authActions.ts","publicServices/authService.ts","publicViews/auth/RegisterViewRedesign/LicenseDialog.tsx","reducers/accountReducer.ts","reducers/public/p_accountReducer.ts","reducers/utilsReducer.ts","reducers/public/folderReducer.ts","reducers/public/searchReducer.ts","actions/public/searchActions.ts","reducers/public/searchTemplateReducer.ts","reducers/index.ts","store/index.tsx","utils/axios.ts","constants/constants.ts","publicServices/userFolderService.ts","actions/public/folderActions.ts","mixins/chartjs.js","serviceWorker.js","utils/settings.ts","context/SettingsContext.tsx","components/GoogleAnalytics.js","components/ScrollReset.js","hooks/useSettings.ts","theme/shadows.js","theme/index.ts","theme/typography.js","components/LoadingScreen.tsx","components/Logo.tsx","layouts/SupplierLayout/NavBar/Login.tsx","layouts/SupplierLayout/NavBar/Menu.tsx","layouts/SupplierLayout/NavBar/index.tsx","layouts/SupplierLayout/TopBar/Menu.tsx","layouts/SupplierLayout/TopBar/index.tsx","publicViews/auth/VerificationView/VerificationForm.tsx","publicViews/auth/VerificationView/index.tsx","layouts/SupplierLayout/index.tsx","views/pages/NotImplemented.tsx","components/PublicAuth.tsx","components/PublicAuthRoute.tsx","Routes.supplier.tsx","components/Loader.tsx","components/TenderUpdateModal.tsx","utils/ErrorPage.tsx","utils/ErrorBoundary.tsx","components/SupplierRequestedDocsModal.tsx","App.tsx","index.tsx","services/trackService.ts","utils/helper.ts"],"names":["availableMessages","LANGS","EN","en_Us","RU","ru","KZ","kz","changeLanguage","language","force","arguments","length","undefined","state","store","getState","getCurrentLanguage","_","isEmpty","intl","messages","updateLocals","locale","dispatch","updateIntl","getMessages","restoreLocale","settings","translate","props","id","defaultMessage","formatMessage","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_FAILURE","SILENT_LOGIN","LOGOUT","UPDATE_PROFILE","VERIFIED_USER","USER_PHOTO_UPLOADED","updateProfile","data","async","authService","updateCurrentUser","type","payload","e","constructor","_this","setAxiosInterceptors","_ref","onLogout","axios","interceptors","response","use","triggerLoader","error","status","this","loginInWithToken","setSession","Promise","reject","request","login","emailAddress","password","rememberMe","resolve","post","concat","API","email","then","access_token","token_type","refresh_token","Boolean","is_verified","catch","getCurrentUser","get","put","localStorage","setItem","changePassword","currentPassword","newPassword","refreshToken","getRefreshToken","accessToken","getAccessToken","getItem","logout","tokenType","defaults","headers","common","Authorization","uninterceptedAxiosInstance","JSON","stringify","removeItem","isValidToken","exp","jwtDecode","Date","now","isAuthenticated","sendVerification","userId","phone","option","verify","code","uploadPhoto","photo","photoUrl","removePhoto","delete","getIp","fetch","json","ip","resetPassword","confirmResetPassword","handleAuthentication","INITIALIZE_SEARCH_TEMPLATES","SET_SEARCH_TEMPLATES","UPDATE_SEARCH_TEMPLATE","CREATE_SEARCH_TEMPLATE","SWAP_SEARCH_TEMPLATES","REMOVE_SEARCH_TEMPLATES","getSearchTemplateList","searchTemplates","updateSearchTemplate","searchTemplate","index","swapSearchTemplates","position","createNewSearchTemplate","removeSearchTemplates","supplierService","searchSupplier","bin","values","chiefName","getSupplierChecks","needRefresh","getCheckSupplierBasic","getCheckSupplierNds","getCheckSupplierLicenses","getCheckSupplierStatus","getCheckSupplierGraph","getCheckSupplierFounders","getCheckSupplierSNG","country","method","getCheckSupplier","timeout","getFAQList","getStaff","addStaff","removeStaff","THEMES","TenderStatus","AvailableRoles","UserActions","tenderService","getList","path","url","getListFromFolder","folderId","getTenderDetails","getTenderFaqs","getTenderFaqList","ids","getTenderQuestionnaire","participantRequestDocuments","tenderId","getTenderQuestions","createTenderQuestion","question","addRemoveTenderFav","isFavorite","addNoteToTender","note","applyTender","tenderData","getActiveTenders","createCommentToQuestion","questionId","comment","downloadFileById","isRequested","responseType","fileData","getTenderType","getContract","name","base64ToString","downloadTenderTypeFileById","sendReports","oapAdmit","refuseParticipate","downloadContract","exportTenders","tenders","track","window","gtag","pageview","process","REACT_APP_GA_MEASUREMENT_ID","event","Page","forwardRef","ref","title","children","rest","location","useLocation","sendPageViewEvent","useCallback","page_path","pathname","useEffect","React","createElement","Object","assign","Helmet","documentsService","getDocuments","downloadDocument","uploadDocument","uploadTenderRequestedDocument","docId","removeFile","TRIGGER_LOADER","TRIGGER_MENU_UPDATE","UPDATE_SAP_DATE","SET_TENDER_UPDATES","SET_REQUESTED_DOCS","showLoader","triggerUpdateMenu","setTenderUpdates","updates","tenderUpdates","setRequestedDocs","docs","requestedDocs","useStyles","makeStyles","theme","root","input","display","fileInput","flexDirection","marginBottom","padding","marginTop","boxShadow","borderRadius","button","height","fileInfo","alignItems","actionContainer","justifyContent","link","cursor","marginLeft","icon","saveBtn","color","docItem","backgroundColor","docItemName","flexGrow","docItemDate","minWidth","boxSizing","docItemActions","buttonNormalize","textTransform","itemName","fontSize","injectIntl","setFileToForm","required","showErrors","classes","initialItem","_id","uuidv4","file","setFileData","useState","download","base64ToFile","content","hasError","getFileData","Fragment","className","Link","variant","onClick","Typography","gutterBottom","FormHelperText","Button","size","startIcon","SaveIcon","onChange","files","target","formData","FormData","append","fileObj","base64Data","toBase64","handleFileChange","htmlFor","component","CloudUploadIcon","DeleteIcon","card","background","backdropFilter","border","width","radioGroup","tabs","tabItem","fontFamily","selectedTab","borderBottom","phoneNumber","outline","formControl","spacing","policy","maxHeight","overflow","helperText","helpText","stepperActions","stepper","binBox","binButton","katoButton","datePicker","marginRight","firstChief","passwordBox","binIinWrap","notResidentWrap","formAndActions","flag","menuItemWrapper","buttonCenter","textAlign","disabled","certificate","modalTitle","useQontoStepIconStyles","active","circle","circleText","completed","zIndex","QontoConnector","withStyles","vertical","StepConnector","QontoStepIcon","clsx","Check","requiredFieldsByStep","onSubmitSuccess","hideLink","mode","close","ws","useRef","enqueueSnackbar","useHistory","useSnackbar","ready","setReady","setState","registrationData","open","setOpen","openLicence","setOpenLicence","activeStep","setActiveStep","steps","selectedSupplier","setSelectedSupplier","binOrIin","setBinOrIin","needAdditionalUser","setNeedAdditionalUser","policySign","setPolicySign","getFieldData","fieldName","foundFiled","find","item","value","tryConnect","current","WebSocket","onopen","console","log","onclose","wasClean","reason","needAdditionalUserChange","handleBack","prevActiveStep","signXmlCallback","resp","responseData","checkXmlAfterSign","signXml","organizationalNumber","dataChecks","nds","licenses","graph","generalInfo","okpo","kato","registerDate","moment","format","supervisor","owner","krp","workers","oked","fields","field","VATPayer","license","graphStatus","Number","checkXml","responseObject","onmessage","parse","handleClose","charts","initialData","supplierName","organizationName","personName","supplierChanged","chiefChanged","employeeCount","supplierHasChief","isChief","mask","contactNumber","passwordConfirmation","firstRegisterDate","reRegisterDate","issuingAuthority","kindOfActivity","chiefBin","founderType","firstUser","firstName","lastName","surname","iin","legalAddress","street","houseNumber","roomNumber","region","address","actualAddress","organizationData","site","mainUser","positionKZ","positionEN","isLegalAddress","attachedDocs","charter","directorAppointmentOrder","certificateOfStateReRegistration","certificateVATRegistration","licenseCopy","identityDocument","specialLicense","Box","mt","success","LicenseDialog","closeLicenseDialog","preventDefault","Stepper","connector","orientation","map","label","key","Step","StepLabel","StepIconComponent","Formik","initialValues","validationSchema","Yup","shape","max","min","test","val","count","oneOf","onSubmit","_ref2","setStatus","setSubmitting","registerValues","registration","sessionStorage","autoHideDuration","_ref3","errors","handleBlur","handleChange","handleSubmit","isSubmitting","touched","setFieldValue","setErrors","setFieldTouched","TextField","fullWidth","margin","onBlur","mb","Card","Divider","Table","TableHead","TableRow","TableCell","TableBody","CardHeader","creationTime","href","openLicenseDialog","FormControlLabel","control","Checkbox","checked","Grid","container","md","xs","InputMask","placeholder","FormControl","InputLabel","Select","native","inputProps","InputProps","endAdornment","Tooltip","HelpIcon","NewFileItem","start","ml","handleNext","checkEmptyFiled","invalid","fieldErrors","forEach","empty","match","set","keys","send","args","getXmlToSign","module","FormattedMessage","Dialog","onClose","DialogTitle","DialogContent","rel","DialogActions","P_LOGIN_REQUEST","P_LOGIN_SUCCESS","P_LOGIN_FAILURE","P_SILENT_LOGIN","P_LOGOUT","P_VERIFIED_USER","P_USER_PHOTO_UPLOADED","isVerified","user","setUserData","xml","minHeight","maxWidth","doc_id","p","initialState","accountReducer","action","produce","draft","p_accountReducer","updateMenuCount","lastSapUpdatedDate","utilsReducer","folders","folderReducer","INITIALIZE_FOLDERS","SET_FOLDERS","UPDATE_FOLDER","folder","changedList","orderBy","CREATE_FOLDER","SWAP_FOLDERS","currentEl","el","currentId","nextEl","nextId","currentElOrder","order","REMOVE_FOLDERS","filter","includes","search","searchValue","searchTemplateReducer","template","rootReducer","combineReducers","account","form","formReducer","intlReducer","utils","publicAccount","folderList","searchReducer","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","instance","create","DEFAULT","DEV_MANAGER","TEST_MANAGER","DEV_SUPPLIER","TEST_SUPPLIER","PROD_MANAGER","PROD_SUPPLIER","OLD_DEV_MANAGER","OLD_DEV_SUPPLIER","REACT_APP_STAGING","userFolderService","getFolderList","createFolder","folderData","addFolderToTender","tenderIds","swapFolders","userFolderId1","userFolderId2","updateFolder","removeFolder","createNewFolder","removeFolders","Chart","helpers","extend","elements","Rectangle","prototype","draw","ctx","_chart","vm","_view","left","right","top","bottom","signX","signY","borderSkipped","radius","borderWidth","cornerRadius","config","options","horizontal","base","x","y","barSize","Math","abs","halfStroke","borderLeft","borderRight","borderTop","beginPath","fillStyle","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","hostname","storeSettings","defaultSettings","responsiveFontSizes","LIGHT","SettingsContext","createContext","SettingsProvider","currentSettings","setCurrentSettings","Provider","saveSettings","updatedSettings","mergedSettings","merge","GA_MEASUREMENT_ID","GoogleAnalytics","src","ScrollReset","scrollTo","useSettings","useContext","strongShadows","baseConfig","direction","typography","h1","fontWeight","letterSpacing","h2","h3","h4","h5","h6","overline","overrides","MuiLinearProgress","MuiListItemIcon","MuiChip","themeConfigs","MuiInputBase","opacity","colors","blueGrey","palette","default","white","dark","paper","primary","main","indigo","secondary","text","shadows","ONE_DARK","hover","selected","disabledBackground","focus","UNICORN","createTheme","themeConfig","warn","Error","createMuiTheme","LoadingScreen","NProgress","done","LinearProgress","Logo","alt","style","registrationForm","registrationHeader","submitBtn","transitionDuration","slide","transform","forgotPassword","CustomInput","borderBottomColor","useDispatch","currentTab","setCurrentTab","history","defaultLabel","tab","tabKey","getTabTranslation","PersonOutlineIcon","submit","isModalOpen","push","messageId","message","noValidate","pl","pr","RouterLink","to","DigitalSignatureView","page","helpPageHeader","orange","red","info","infoUser","links","contentItem","avatarContainer","avatar","mainMenu","menuItem","upperCase","menuTitle","black","grey","blue","green","yellow","badge","navConfig","myOrg","AccountBoxIcon","needData","hasBadg","GroupIcon","DescriptionIcon","GavelIcon","StarIcon","CheckCircleIcon","additionally","SmsIcon","SendIcon","CommentIcon","Menu","useSelector","setActiveLength","staffCount","setStaffCount","employees","myTenders","setMyTenders","winnerCount","setWinnerCount","favLength","setFavLength","requestedDocsLength","setRequestedDocsLength","docsLength","setDocsLength","fieldKey","getFieldBadge","getTenders","activeCount","tender","endDate","isWinner","getTendersFav","getDocs","_supplierDocs$request","_supplierDocs$other","supplierDocs","requestDocuments","groupedDocs","groupBy","participationInTender","other","Avatar","orgName","List","subheader","ListSubheader","Icon","ListItem","AddIcon","DoneIcon","FolderIcon","mobileDrawer","desktopNavBar","mobileLogo","loggedIn","openMobile","onMobileClose","showVerification","setShowVerification","PerfectScrollbar","suppressScrollX","Hidden","lgUp","Login","Drawer","mdDown","menuBtn","transition","mobileButton","blur","menuItemText","redArrow","textDecoration","menu","onClickMobileMenu","anchorRef","anchorEl","setAnchorEl","useTheme","isMobileDevice","useMediaQuery","breakpoints","down","contains","external","currentTarget","prevOpen","ExpandMoreIcon","Popper","role","disablePortal","TransitionProps","placement","Grow","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","MenuItem","Collapse","in","unmountOnExit","disablePadding","ListItemText","drawer","positionSticky","toolBarWrapper","toolbar","paddingTop","paddingBottom","menuButton","lineHeight","logo","menuSection","centerTitle","paddingRight","whiteSpace","menuContainer","mobileMenuContainer","mobileMenuTitle","loginBtn","settingContainer","langSelector","visibility","langList","langItem","arrow","onMobileNavOpen","items","isMobileMenu","setMobileMenuOpen","setValues","AppBar","Toolbar","IconButton","ArrowDropDownIcon","MenuButton","lang","onClickLang","onSendSuccess","verificationOption","errorList","FormLabel","RadioGroup","Radio","autoFocus","backButton","flexBasis","media","borderTopRightRadius","borderBottomRightRadius","logoText","modalContent","openVerification","showCodeField","setShowCodeField","verifyOption","setVerifyOption","errorCode","setErrorCode","setCode","VerificationForm","allowOnlyNumbers","maxLength","backgroundSize","wrapper","flex","contentContainer","SupplierLayout","isMobileNavOpen","setMobileNavOpen","TopBar","NavBar","VerificationView","NotImplemented","Container","align","PublicAuth","isLoading","setLoading","initAuth","PublicAuthRoute","Component","render","Redirect","Routes","Suspense","fallback","Switch","Route","lazy","exact","from","absolute","Loader","tenderItem","TenderUpdateModal","aria-labelledby","pendingPriceDeviation","pendingPaymentInfo","readyToPublish","onVerification","onRevision","oapInspection","ErrorPage","paragraph","ErrorBoundary","componentDidCatch","errorInfo","SupplierRequestedDocsModal","_requestedDocs$list","list","handleOpen","createBrowserHistory","jss","plugins","jssPreset","rtl","createStyles","html","body","App","IntlProvider","ThemeProvider","StylesProvider","MuiPickersUtilsProvider","MomentUtils","SnackbarProvider","maxSnack","Router","storedData","err","restoreSettings","ReactDOM","document","getElementById","navigator","serviceWorker","unregister","trackService","getLogs","logAction","getImageFormData","xhr","XMLHttpRequest","onload","getFile","downloadFile","URL","createObjectURL","Blob","setAttribute","appendChild","click","fileName","arr","mime","bstr","atob","split","n","u8arr","Uint8Array","charCodeAt","downloadSelfUploadedFile","File","str","decodeURIComponent","c","toString","slice","join","reader","FileReader","readAsDataURL","result","b64","replace","onerror","translit","objectKey","transl","а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","toLowerCase","charAt","currencyCheck","currency","daysTyping","string","lastChar","hoursTyping","minutesTyping","getTitle","saveApplyTenderTmpData","userEmail","savedTenders","questionnaireData","clearApplyTenderTmpData","getApplyTenderTmpData","_tenders$userEmail","logUserAction","actionType","screenName","res"],"mappings":"+FAAA,iNASO,MAAMA,EAAoB,CAC7B,CAACC,IAAMC,IAAKC,EACZ,CAACF,IAAMG,IAAKC,EACZ,CAACJ,IAAMK,IAAKC,GAGT,SAASC,EAAeC,GAAuC,IAAtBC,EAAKC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACjD,MAAMG,EAAQC,IAAMC,YAChBC,MAAyBR,GACtBS,IAAEC,QAAQL,EAAMM,KAAKC,WACrBX,IAEHY,EAAab,GAOrB,SAASQ,IAEL,OADcF,IAAMC,WACPI,KAAKG,OAatB,SAASD,EAAaC,GAClBR,IAAMS,SAASC,qBAAW,CACtBF,SACAF,SAAUK,EAAYH,MAIvB,SAASG,EAAYH,GACxB,OAAOvB,EAAkBuB,GAItB,SAASI,IAAgD,IAAlCC,EAAkBjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC/C,MAAMY,EAASK,EAASnB,UAAYQ,IAEpC,OADAK,EAAaC,GACNA,EAGJ,SAASM,EAAUC,EAAYC,GAAkC,IAAtBC,EAAcrB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC/D,MAAM,KAAES,GAASU,EACjB,OAAOV,EAAKa,cAAc,CAAEF,KAAIC,qB,iCC9DpC,2UAKO,MAAME,EAAgB,gBAChBC,EAAgB,gBAChBC,EAAgB,gBAChBC,EAAe,eACfC,EAAS,SAETC,EAAiB,iBACjBC,EAAgB,gBAChBC,EAAsB,sBAiD5B,SAASC,EAAcC,GAC5B,OAAOC,UACL,UACQC,IAAYC,kBAAkBH,SAC9BnB,EAAS,CACbuB,KAAMR,EACNS,QAAS,CACPL,UAGJ,MAAOM,GACP,MAAMA,M,iCC1EZ,oDA2VA,MAAMJ,EAAc,IAnVpB,MAAkBK,cAAA,IAAAC,EAAA,UAChBC,qBAAuBC,IAA2C,IAA1C,SAAEC,GAAkCD,EAC1DE,IAAMC,aAAaC,SAASC,IAC1BD,IAKE1C,IAAMS,SAASmC,aAAc,IAEtBF,GAETb,UAIE,GAHA7B,IAAMS,SAASmC,aAAc,IAGzBC,EAAMH,UAAsC,MAA1BG,EAAMH,SAASI,OACnC,UACQC,KAAKC,mBACX,MAAOd,GACPa,KAAKE,WAAW,MAEZV,GACFA,IAKN,OAAOW,QAAQC,OAAON,EAAMH,YAGhCF,IAAMC,aAAaW,QAAQT,IACzBD,IACE1C,IAAMS,SAASmC,aAAc,IAItBF,GAETG,IACE7C,IAAMS,SAASmC,aAAc,IAItBM,QAAQC,OAAON,MAG1B,KAcFQ,MAAQ,SAACC,EAAsBC,GAAgB,IAAEC,EAAmB5D,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAAQ,OAC1E,IAAIsD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,kBAAkB,CAAEC,MAAOP,EAAcC,aACpDO,KAAKpB,IACAA,EAASd,MACXQ,EAAKa,WACHP,EAASd,KAAKmC,aACdrB,EAASd,KAAKoC,WACdR,EACAF,EACAZ,EAASd,KAAKqC,eAEhBR,EAAQS,QAAQxB,EAASd,KAAKuC,eAE9BhB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,QAEX,KAEJwB,eAAiB,IACf,IAAInB,QAAc,CAACO,EAASN,KAC1BX,IACG8B,IAAI,GAADX,OAAIC,IAAG,aACVE,KAAKpB,IACJ,GAAIA,EAASd,KAAM,CACjB,MAAMA,EAAOc,EAASd,KACtB6B,EAAQ7B,QAERuB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELd,kBAAqBH,GACnB,IAAIsB,QAAiB,CAACO,EAASN,KAC7BX,IACG+B,IAAI,GAADZ,OAAIC,IAAG,YAAYhC,GACtBkC,KAAKpB,IACAA,EAASd,MACX4C,aAAaC,QAAQ,QAAS7C,EAAKiC,OACnCJ,GAAQ,IAERN,GAAO,KAGViB,MAAMvB,IACLM,EAAON,OAEV,KAEL6B,eAAiB,CAACC,EAAyBC,IACzC,IAAI1B,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,2BAA2B,CACrCe,kBACAC,gBAEDd,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KACLG,iBAAmB,IACjB,IAAIE,QAAiB,CAACO,EAASN,KAC7B,MAAM0B,EAA8B9B,KAAK+B,kBACnCC,EAA6BhC,KAAKiC,iBAClCnB,EAAQW,aAAaS,QAAQ,SAC/BJ,GAAgBE,GAAelB,EACjCrB,IACGkB,KAAK,GAADC,OAAIC,IAAG,kBAAkB,CAAEC,QAAOgB,iBACtCf,KAAKpB,IACJ,GAAIA,EAASd,KAAM,CACjB,MAAM4B,EAAaU,QAAQM,aAAaS,QAAQ,iBAAkB,EAClElC,KAAKE,WACHP,EAASd,KAAKmC,aACdrB,EAASd,KAAKoC,WACdR,EACAK,EACAnB,EAASd,KAAKqC,eAEhBR,EAAQS,QAAQxB,EAASd,KAAKuC,mBAE9BhB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,KAGXM,MAED,KAEL+B,OAAS,KACPnC,KAAKE,WAAW,OAChB,KAEFA,WAAa,CACX8B,EACAI,EACA3B,EACAK,EACAgB,KAEIE,GAAeF,GAAgBhB,GACjCW,aAAaC,QAAQ,cAAc,GAADd,OAAKwB,EAAS,KAAAxB,OAAIoB,IACpDP,aAAaC,QAAQ,eAAgBI,GACrCL,aAAaC,QAAQ,QAASZ,GAC9BrB,IAAM4C,SAASC,QAAQC,OAAOC,cAAa,GAAA5B,OAAMwB,EAAS,KAAAxB,OAAIoB,GAC9DS,IAA2BJ,SAASC,QAAQC,OAAOC,cAAa,GAAA5B,OAAMwB,EAAS,KAAAxB,OAAIoB,GAC/EvB,EACFgB,aAAaC,QAAQ,aAAcgB,KAAKC,UAAUlC,IAElDgB,aAAamB,WAAW,gBAG1BnB,aAAamB,WAAW,eACxBnB,aAAamB,WAAW,uBACjBnD,IAAM4C,SAASC,QAAQC,OAAOC,qBAC9BC,IAA2BJ,SAASC,QAAQC,OAAOC,gBAE5D,KAEFP,eAAiB,IAAMR,aAAaS,QAAQ,eAAe,KAC3DH,gBAAkB,IAAMN,aAAaS,QAAQ,gBAAgB,KAE7DW,aAAgBb,IACd,IAAKA,EACH,OAAO,EAGT,MAAM,IAAEc,GAAQC,IAAUf,GAG1B,OAAOc,EAFaE,KAAKC,MAAQ,KAGjC,KAEFC,gBAAkB,MAAQlD,KAAKiC,iBAAiB,KAEhDkB,iBAAmB,CAACC,EAAgBtC,EAAeuC,EAAeC,IAChE,IAAInD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,uBAAAD,OAAsB0C,GAAU,CAC1CF,SACAtC,QACAuC,UAEDtC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELyD,OAAS,CAACC,EAAcJ,EAAgBtC,EAAewC,IACrD,IAAInD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,mBAAAD,OAAkB0C,GAAU,CACtCE,OACA1C,QACAsC,WAEDrC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL2D,YAAeC,GACb,IAAIvD,QAAgB,CAACO,EAASN,KAC5BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,wBAAwB6C,GACnC3C,KAAKpB,IACAA,EAASd,KACX6B,EAAQf,EAASd,KAAK8E,UAEtBvD,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL8D,YAAc,IACZ,IAAIzD,QAAiB,CAACO,EAASN,KAC7BX,IACGoE,OAAO,GAADjD,OAAIC,IAAG,yBACbE,KAAKpB,IACAA,EAASd,KACX6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELgE,MAAQ,IACN,IAAI3D,QAAgB,CAACO,EAASN,KAC5B2D,MAAM,qCACHhD,KAAKpB,GAAYA,EAASqE,QAC1BjD,KAAKlC,IACAA,EAAKoF,IACPvD,EAAQ7B,EAAKoF,MAGhB5C,MAAMvB,IACLM,EAAON,OAEV,KAELoE,cAAgB,eAACpD,EAAoBjE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAMwG,EAAoBxG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAMyG,EAAczG,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAAA,OACvF,IAAIoD,QAAa,CAACO,EAASN,KACzBX,IACGkB,KAAK,GAADC,OAAIC,IAAG,6BAA6B,CACvCC,MAAkB,UAAXwC,EAAqBxC,EAAQ,KACpCuC,MAAkB,UAAXC,EAAqBD,EAAQ,OAErCtC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,EAAQf,EAASd,MAEjBuB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,QAEX,KAEJqE,qBAAuB,CAAC3D,EAAkB4C,EAAgBI,IACxD,IAAIrD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,qCAAqC,CAC/CL,WACA4C,SACAI,SAEDzC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OA7RfsE,uBACE,MAAMpC,EAAchC,KAAKiC,iBAEpBD,IAIAhC,KAAK6C,aAAab,IACrBhC,KAAKE,WAAW,SA4RPnB,O,iCC1Vf,sXAAO,MAAMsF,EAA8B,8BAC9BC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAyB,yBACzBC,EAAwB,wBACxBC,EAA0B,0BAEhC,SAASC,IACZ,OAAO7F,UACH,IACIpB,EAAS,CAAEuB,KAAMoF,IAGjB3G,EAAS,CACLuB,KAAMqF,EACNzF,KAAM,CACF+F,gBAAiB,MAG3B,MAAO9E,GAEL,MADApC,EAAS,CAAEuB,KAAMoF,IACXvE,IAKX,SAAS+E,EAAqBC,EAAoCC,GACrE,OAAOjG,UACH,UACUpB,EAAS,CACXuB,KAAMsF,EACN1F,KAAM,CACFiG,iBACAC,WAGV,MAAOjF,GACL,MAAMA,IAKX,SAASkF,EAAoBD,EAAeE,GAC/C,OAAOnG,UACH,IACIpB,EAAS,CACLuB,KAAMwF,EACN5F,KAAM,CACFkG,QACAE,cAGV,MAAOnF,GACL,MAAMA,IAKX,SAASoF,EAAwBJ,GACpC,OAAOhG,UACH,UACUpB,EAAS,CACXuB,KAAMuF,EACN3F,KAAM,CACFiG,oBAGV,MAAOhF,GACL,MAAMA,IAKX,SAASqF,EAAsBP,GAClC,OAAO9F,UACH,UACUpB,EAAS,CACXuB,KAAMyF,EACN7F,KAAM,CACF+F,qBAGV,MAAO9E,GACL,MAAMA,M,iCCtFlB,kBAwLA,MAAMsF,EAAkB,IAnLxB,MAAsBhG,cAAA,KAClBiG,eAAkBC,GAAe,IAAInF,QAA0B,CAACO,EAASN,KACrEX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,yBAAAD,OAAyB0E,IACrCvE,KAAMpB,IACH,GAAIA,EAASd,KAAM,CACf,IAAI0G,EAAS,IAAI5F,EAASd,aACnB0G,EAAOC,UACd9E,EAAQ6E,MAGflE,MAAOvB,IACJM,EAAON,OAEhB,KAEH2F,kBAAoB,CAACH,EAAUI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KAC/EX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,8BAAAD,OAA+B0E,EAAG,aAAA1E,OAAc8E,IAC5D3E,KAAMpB,IACCA,EAASd,MACT6B,EAAQf,EAASd,QAGxBwC,MAAOvB,IACJM,EAAON,OAEhB,KAEH6F,sBAAwB,CAACL,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACtFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,mBAAA1E,OAAkB8E,IAC7C3E,KAAMpB,IACCA,EAASd,MACT6B,EAAQf,EAASd,QAGxBwC,MAAOvB,IACJM,EAAON,OAEhB,KAEH8F,oBAAsB,CAACN,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACpFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,iBAAA1E,OAAgB8E,IAC3C3E,KAAMpB,IACqB,MAApBA,EAASI,OACTW,EAAQf,EAASd,MAEjB6B,EAAQ,QAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEH+F,yBAA2B,CAACP,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACzFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,sBAAA1E,OAAqB8E,IAChD3E,KAAMpB,IACqB,MAApBA,EAASI,OACTW,EAAQf,EAASd,MAEjB6B,EAAQ,QAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEHgG,uBAAyB,CAACR,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACvFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,sBAAA1E,OAAqB8E,IAChD3E,KAAMpB,IACqB,MAApBA,EAASI,OACTW,EAAQf,EAASd,MAEjB6B,EAAQ,QAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEHiG,sBAAwB,CAACT,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACtFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,mBAAA1E,OAAkB8E,IAC7C3E,KAAMpB,IACqB,MAApBA,EAASI,OACTW,EAAQf,EAASd,MAEjB6B,EAAQ,QAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEHkG,yBAA2B,CAACV,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACzFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,sBAAA1E,OAAqB8E,IAChD3E,KAAMpB,IACqB,MAApBA,EAASI,OACTW,EAAQf,EAASd,MAEjB6B,EAAQ,QAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEHmG,oBAAsB,CAACC,EAAiBZ,EAAaa,EAAgBT,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACrHX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,kBAAAD,OAAkBsF,EAAO,KAAAtF,OAAI0E,EAAG,KAAA1E,OAAIuF,EAAM,aAAAvF,OAAY8E,IAClE3E,KAAMpB,IACqB,MAApBA,EAASI,OACTW,EAAQf,EAASd,MAEjB6B,EAAQ,QAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEHsG,iBAAmB,CAACd,EAAaI,IAAyB,IAAIvF,QAAa,CAACO,EAASN,KACjFX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,YAAAD,OAAY0E,EAAG,iBAAA1E,OAAgB8E,GAAe,CAACW,QAAS,OACpEtF,KAAMpB,IACCA,EAASd,MACT6B,EAAQf,EAASd,QAGxBwC,MAAOvB,IACJM,EAAON,OAEhB,KAEHwG,WAAa,IAAM,IAAInG,QAAe,CAACO,EAASN,KAC5CX,IAAM8B,IAAI,GAADX,OAAIC,IAAG,eACXE,KAAMpB,IACCA,EAASd,MACT6B,EAAQf,EAASd,QAGxBwC,MAAOvB,IACJM,EAAON,OAEhB,KAEHyG,SAAW,IACA,GAET,KAEFC,SAAY3H,GAAc,IAAIsB,QAAa,CAACO,EAASN,KACjDX,IAAMkB,KAAK,GAADC,OAAKC,IAAG,yBAA0BhC,GACvCkC,KAAMpB,IACCA,EAASd,MACT6B,GAAQ,KAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEH2G,YAAexI,GAAe,IAAIkC,QAAiB,CAACO,EAASN,KACzDX,IAAMoE,OAAO,GAADjD,OAAKC,IAAG,uBAAAD,OAAuB3C,IACtC8C,KAAMpB,IACCA,EAASd,KACT6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAG5BuB,MAAOvB,IACJM,EAAON,SAORsF,O,gCC1Lf,0KAAO,IAAKsB,EAAM,SAANA,GAAM,OAANA,EAAM,cAANA,EAAM,oBAANA,EAAM,kBAANA,EAAM,KAWNvK,EAAK,SAALA,GAAK,OAALA,EAAK,QAALA,EAAK,QAALA,EAAK,QAALA,EAAK,KAyBLwK,EAAY,SAAZA,GAAY,OAAZA,EAAY,kBAAZA,EAAY,kBAAZA,EAAY,kBAAZA,EAAY,kBAAZA,EAAY,wBAAZA,EAAY,sBAAZA,EAAY,sBAAZA,EAAY,oBAAZA,EAAY,0CAAZA,EAAY,wCAAZA,EAAY,gCAAZA,EAAY,gCAAZA,EAAY,wBAAZA,EAAY,8CAAZA,EAAY,8BAAZA,EAAY,KAkBZC,EAAc,SAAdA,GAAc,OAAdA,EAAc,0BAAdA,EAAc,sBAAdA,EAAc,sBAAdA,EAAc,0BAAdA,EAAc,0BAAdA,EAAc,sBAAdA,EAAc,sBAAdA,EAAc,0BAAdA,EAAc,8BAAdA,EAAc,0BAAdA,EAAc,4BAAdA,EAAc,4BAAdA,EAAc,8BAAdA,EAAc,0BAAdA,EAAc,0BAAdA,EAAc,8BAAdA,EAAc,0BAAdA,EAAc,4BAAdA,EAAc,0BAAdA,EAAc,0CAAdA,EAAc,wDAAdA,EAAc,8DAAdA,EAAc,6CAAdA,EAAc,4BAAdA,EAAc,4CAAdA,EAAc,wCAAdA,EAAc,4CAAdA,EAAc,KA4CdC,EAAW,SAAXA,GAAW,OAAXA,EAAW,cAAXA,EAAW,4BAAXA,EAAW,gCAAXA,EAAW,sDAAXA,EAAW,gCAAXA,EAAW,sBAAXA,EAAW,8CAAXA,EAAW,wCAAXA,EAAW,sCAAXA,EAAW,wBAAXA,EAAW,sCAAXA,EAAW,4BAAXA,EAAW,sCAAXA,EAAW,kCAAXA,EAAW,oCAAXA,EAAW,oCAAXA,EAAW,gCAAXA,EAAW,kBAAXA,EAAW,oBAAXA,EAAW,wBAAXA,EAAW,kBAAXA,EAAW,oBAAXA,EAAW,wBAAXA,EAAW,sDAAXA,EAAW,M,iCClGvB,0BA2XA,MAAMC,EAAgB,IApXtB,MAAoB1H,cAAA,KAClB2H,QAAU,eAAC9H,EAAIpC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAImK,EAAInK,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAE,OAC7B,IAAIsD,QAAkB,CAACO,EAASN,KAC9B,IAAI6G,EAAG,GAAArG,OAAMC,IAAG,gBAChB,OAAQ5B,GACN,IAAK,UACHgI,GAAO,6BACP,MACF,IAAK,UACHA,GAAO,gBACP,MACF,IAAK,UACHA,GAAO,uBAIX,OAAQD,GACN,IAAK,aACHC,GAAO,kBACP,MACF,IAAK,YACHA,GAAO,iBACP,MACF,IAAK,aAGL,IAAK,iBAGL,IAAK,UACHA,EAAG,GAAArG,OAAMC,IAAG,kBAKhBpB,IACG8B,IAAI0F,GACJlG,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,QAEX,KAEJoH,kBAAqBC,GACnB,IAAIhH,QAAkB,CAACO,EAASN,KAC9BX,IACG8B,IAAI,GAADX,OAAIC,IAAG,gBAAAD,OAAeuG,EAAQ,aACjCpG,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAELsH,iBAAoBnJ,GAClB,IAAIkC,QAAgB,CAACO,EAASN,KAC5BX,IACG8B,IAAI,GAADX,OAAIC,IAAG,YAAAD,OAAW3C,IACrB8C,KAAKpB,IACAA,EAASd,MACX6B,EAAQ,IACHf,EAASd,SAIjBwC,MAAMvB,IACLM,EAAON,OAEV,KAELuH,cAAiBpJ,GACf,IAAIkC,QAAsB,CAACO,EAASN,KAClCX,IACG8B,IAAI,GAADX,OAAIC,IAAG,gBAAAD,OAAe3C,IACzB8C,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAELwH,iBAAoBC,GAClB,IAAIpH,QAAwB,CAACO,EAASN,KACpCX,IACGkB,KAAK,GAADC,OAAIC,IAAG,oBAAoB0G,GAC/BxG,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAEL0H,uBAA0BvJ,GACxB,IAAIkC,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,iCAAAD,OAAgC3C,IAC1C8C,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAEL2H,4BAA8B,CAACC,EAA8B7I,IAC3D,IAAIsB,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW8G,EAAQ,+BAA+B7I,GAC7DkC,KAAKpB,IACAA,EAASd,KACX6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL6H,mBAAsBD,GACpB,IAAIvH,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,YAAAD,OAAW8G,EAAQ,cAC7B3G,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAEL8H,qBAAuB,CAACC,EAA6BH,IACnD,IAAIvH,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW8G,EAAQ,aAAaG,GAC3C9G,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELgI,mBAAqB,CAACJ,EAAkBK,IACtC,IAAI5H,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW8G,EAAQ,aAAa,CAC1CK,eAEDhH,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELkI,gBAAkB,CAACN,EAAkBO,IACnC,IAAI9H,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW8G,EAAQ,UAAU,IAAKO,IAC7ClH,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELoI,YAAeC,GACb,IAAIhI,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,uBAAuBsH,GAClCpH,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELsI,iBAAmB,IACjB,IAAIjI,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,mBACVE,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAELuI,wBAA0B,CAACC,EAAoBZ,EAAkBa,IAC/D,IAAIpI,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW8G,EAAQ,cAAA9G,OAAa0H,EAAU,YAAY,CAAEC,YACnExH,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAEL0I,iBAAmB,CAACvK,EAAYwK,IAC9B,IAAItI,QAAa,CAACO,EAASN,KACzB,IAAI6G,EAAG,GAAArG,OAAMC,IAAG,iBAAAD,OAAgB3C,EAAE,aAAA2C,OAAY6H,EAAc,kBAAoB,IAChFhJ,IACG8B,IAAI0F,EAAK,CACRyB,aAAc,SAEf3H,KAAKpB,IACAA,EAASd,MACX6B,EAAQ,CACNiI,SAAUhJ,EAASd,KACnBI,KAAMU,EAAS2C,QAAQ,oBAI5BjB,MAAMvB,IACLM,EAAON,OAEV,KAEL8I,cAAiB3K,GACf,IAAIkC,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,iBAAAD,OAAgB3C,IAC1B8C,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAEL+I,YAAe5K,GACb,IAAIkC,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,YAAAD,OAAW3C,EAAE,aAAa,CACnCyK,aAAc,SAEf3H,KAAKpB,IACAA,EAASd,MACX6B,EAAQ,CACNiI,SAAUhJ,EAASd,KACnBI,KAAMU,EAAS2C,QAAQ,gBACvBwG,KAAMC,YAAepJ,EAAS2C,QAAQ,oBAI3CjB,MAAMvB,IACLM,EAAON,OAEV,KAELkJ,2BAA8B/K,GAC5B,IAAIkC,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,sBAAAD,OAAqB3C,EAAE,aAAa,CAC7CyK,aAAc,SAEf3H,KAAKpB,IACAA,EAASd,MACX6B,EAAQ,CACNiI,SAAUhJ,EAASd,KACnBI,KAAMU,EAAS2C,QAAQ,oBAI5BjB,MAAMvB,IACLM,EAAON,OAEV,KAELmJ,YAAc,CAAChL,EAAYY,IACzB,IAAIsB,QAAa,CAACO,EAASN,KACzBX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW3C,EAAE,gBAAgBY,GACxCkC,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELoJ,SAAW,CAACjL,EAAYY,IACtB,IAAIsB,QAAa,CAACO,EAASN,KACzBX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW3C,EAAE,aAAaY,GACrCkC,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELqJ,kBAAqBlL,GACnB,IAAIkC,QAAa,CAACO,EAASN,KACzBX,IACGkB,KAAK,GAADC,OAAIC,IAAG,YAAAD,OAAW3C,EAAE,wBACxB8C,KAAKpB,IACAA,EAASd,MACX6B,GAAQ,KAGXW,MAAMvB,IACLM,EAAON,OAEV,KAELsJ,iBAAoBnL,GAClB,IAAIkC,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,YAAAD,OAAW3C,EAAE,oBAAoB,CAC1CyK,aAAc,SAEf3H,KAAKpB,IACAA,EAASd,MACX6B,EAAQ,CACNiI,SAAUhJ,EAASd,KACnBI,KAAMU,EAAS2C,QAAQ,oBAI5BjB,MAAMvB,IACLM,EAAON,OAEV,KAELuJ,cAAiBC,QAKJxC,O,sEC7Xf,SAASyC,IAKFC,OAAOC,MAIZD,OAAOC,QAAK5M,WAWC,OACb6M,SATF,SAAkB1L,GAChBuL,EAAM,SAAUI,mHAAYC,4BAA6B5L,IASzD6L,MANF,SAAe5K,EAAMjB,GACnBuL,EAAM,QAAStK,EAAMjB,KCOvB,MAAM8L,EAAOC,qBAAW,CAAAxK,EAIVyK,KAAoC,IAJzB,MACvBC,EAAK,SACLC,KACGC,GACO5K,EACV,MAAM6K,EAAWC,cAEXC,EAAoBC,sBAAY,KACpChB,EAAMG,SAAS,CACbc,UAAWJ,EAASK,YAErB,CAACL,IAMJ,OAJAM,oBAAU,KACRJ,KACC,CAACA,IAGFK,IAAAC,cAAA,MAAAC,OAAAC,OAAA,GACMX,EAAI,CACRH,IAAKA,IAELW,IAAAC,cAACG,IAAM,KACLJ,IAAAC,cAAA,aAAQX,IAETC,KAKQJ,O,iCCtDf,kBAqFA,MAAMkB,EAAmB,IAjFzB,MAAuB5L,cAAA,KACrB6L,aAAe,IACb,IAAI9K,QAAmB,CAACO,EAASN,KAC/BX,IACG8B,IAAI,GAADX,OAAIC,IAAG,kBACVE,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAELoL,iBAAmB,SAACjN,GAAU,IAAEgB,EAAYpC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAE,OAC/C,IAAIsD,QAAa,CAACO,EAASN,KACzBX,IACG8B,IAAI,GAADX,OAAIC,IAAG,kBAAAD,OAAiB3B,EAAOA,EAAO,IAAM,IAAE2B,OAAG3C,EAAE,aAAa,CAClEyK,aAAc,SAEf3H,KAAKpB,IACJe,EAAQ,CACNiI,SAAUhJ,EAASd,KACnBI,KAAMU,EAAS2C,QAAQ,oBAG1BjB,MAAMvB,IACLM,EAAON,QAEX,KAEJqL,eAAkBtM,GAChB,IAAIsB,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,wBAAwBhC,GACnCkC,KAAKpB,IACAA,EAASd,KACX6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELsL,8BAAgC,CAACvM,EAAgBwM,IAC/C,IAAIlL,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,0CAAAD,OAAyCyK,GAASxM,GAC7DkC,KAAKpB,IACAA,EAASd,KACX6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELwL,WAAcrN,GACZ,IAAIkC,QAAiB,CAACO,EAASN,KAC7BX,IACGoE,OAAO,GAADjD,OAAIC,IAAG,kBAAAD,OAAiB3C,EAAE,YAChC8C,KAAKpB,IACAA,EAASd,KACX6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,SAOFkL,O,gCCrFf,kTAAO,MAAMO,EAAiB,iBACjBC,EAAsB,sBACtBC,EAAkB,kBAClBC,EAAqB,qBACrBC,EAAqB,qBAE3B,SAAS9L,EAAc+L,GAC5B,OAAQlO,GACNA,EAAS,CACPuB,KAAMsM,EACNrM,QAAS,CACP0M,gBAKD,SAASC,IACd,OAAQnO,GACNA,EAAS,CACPuB,KAAMuM,IAcL,SAASM,EAAiBC,GAC/B,OAAQrO,GACNA,EAAS,CACPuB,KAAMyM,EACNxM,QAAS,CACP8M,cAAeD,KAKhB,SAASE,EAAiBC,GAC/B,OAAQxO,GACNA,EAAS,CACPuB,KAAM0M,EACNzM,QAAS,CACPiN,cAAeD,O,2iBClCvB,MAAME,GAAYC,YAAYC,IAAK,CAC/BC,KAAM,GACNC,MAAO,CACHC,QAAS,QAEbC,UAAW,CACPD,QAAS,OACTE,cAAe,SACfC,aAAc,GACdC,QAAS,GACTC,UAAW,GACXC,UAAW,iEACXC,aAAc,GAElBrE,SAAU,CACN8D,QAAS,OACTG,aAAc,IAElBK,OAAQ,CACJC,OAAQ,IAEZC,SAAU,CACNV,QAAS,OACTE,cAAe,MACfS,WAAY,UAEhBC,gBAAiB,CACbZ,QAAS,OACTE,cAAe,MACfW,eAAgB,gBAChBR,UAAW,IAEfS,KAAM,CACFC,OAAQ,UACRC,WAAY,IAEhBC,KAAM,GACNC,QAAS,CACLb,UAAW,IAEf7C,MAAO,CACH6C,UAAW,GACXc,MAAO,WAEXC,QAAS,CACLpB,QAAS,OACTE,cAAe,MACfE,QAAS,GACTD,aAAc,GACdkB,gBAAiB,uBAErBC,YAAa,CACTC,SAAU,GAEdC,YAAa,CACTC,SAAU,IACVrB,QAAS,SACTsB,UAAW,cACX1B,QAAS,OACTW,WAAY,UAEhBgB,eAAgB,CACZD,UAAW,cACXD,SAAU,IACVzB,QAAS,OACTW,WAAY,SACZE,eAAgB,iBAEpBe,gBAAiB,CACbnB,OAAQ,GACRoB,cAAe,QAEnBC,SAAU,CACNC,SAAU,OAkLHC,oBAtKf,SAAoBlP,GAOgD,IAP/C,MACI0K,EAAK,KACLpL,EAAI,cACJ6P,EAAa,SACbC,EAAQ,WACRC,KACG5Q,GACqCuB,EAC7D,MAAMsP,EAAUzC,KACV0C,EAAoC,CACtCC,IAAKC,cACL/Q,GAAI,EACJ6K,KAAM,GACNmG,KAAM,OAEHtG,EAAUuG,GAAeC,mBAA+BtQ,GAAQiQ,GAEjEM,EAAWA,KACTzG,GAAYA,EAASsG,MACrBI,YAAa1G,EAASsG,KAAKK,QAAS3G,EAASsG,KAAKnG,KAAMH,EAASsG,KAAKhQ,OAYxEsQ,EAAWA,IACCnS,KAAEC,QAAQsL,EAASsG,OACpBN,GAAYC,EACd7Q,YAAUC,EAAO,iCAAkC,YAEvD,KA6BLwR,EAAe3Q,IACjB,GAAIA,EAAM,CACN,MAAMoQ,EAAOpQ,EAAK0C,IAAI,QACtB,OAAI0N,GAAwB,kBAATA,EACR,CACHnG,KAAMmG,EAAKnG,KACX7J,KAAMgQ,EAAKhQ,MAGZ,CAAE6J,KAAM,OAAQ7J,KAAM,IAEjC,MAAO,CAAE6J,KAAM,GAAI7J,KAAM,KAG7B,OAAQ0L,IAAAC,cAAAD,IAAA8E,SAAA,KACA9E,IAAAC,cAAA,OAAK8E,UAAYb,EAAQhB,SACrBlD,IAAAC,cAAA,OAAK8E,UAAYb,EAAQd,aACnBpF,EAASsG,MACXtE,IAAAC,cAAC+E,IAAI,CAACC,QAAQ,KAAKF,UAAYb,EAAQtB,KAAOsC,QAAUA,KACpDT,MAEEnF,IAGHtB,EAASsG,MACZtE,IAAAC,cAACkF,IAAU,CACPC,cAAY,EACZH,QAAQ,KACRhC,MAAM,gBACN8B,UAAYb,EAAQN,UAElBtE,GAGJsF,KACE5E,IAAAC,cAACoF,IAAc,CACXlQ,OAAK,GACHyP,MAId5E,IAAAC,cAAA,OAAK8E,UAAYb,EAAQZ,aACrBtD,IAAAC,cAACkF,IAAU,CACPF,QAAQ,QAIhBjF,IAAAC,cAAA,OAAK8E,UAAYb,EAAQT,gBACnBzF,EAASsG,MACXtE,IAAAC,cAACqF,IAAM,CACHP,UAAYb,EAAQR,gBACpB6B,KAAK,QACLC,UAAYxF,IAAAC,cAACwF,KAAQ,MACrBP,QAAUA,KACNT,MAGFrR,YAAUC,EAAO,qCAGpB2K,EAASsG,MACZtE,IAAAC,cAAAD,IAAA8E,SAAA,KACI9E,IAAAC,cAAA,SACI8E,UAAYb,EAAQrC,MACpBmC,SAAWxN,QAAQwN,GACnB0B,SAAYxG,IA3FX/K,WACrB,MAAM,MAAEwR,GAAUzG,EAAM0G,OACxB,GAAID,GAASA,EAAMxT,OAAQ,CACvB,MAAM0T,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQJ,EAAM,IAC9B,MAAMK,EAAUnB,EAAYgB,GACtBI,QAA2BC,YAASP,EAAM,IAChDpB,EAAY,IACLvG,EACHsG,KAAM,CACFK,QAASsB,EACT3R,KAAM0R,EAAQ1R,KACd6J,KAAM6H,EAAQ7H,QAGtB4F,EAAc,IACP/F,EACHsG,KAAM,CACFK,QAASsB,EACT3R,KAAM0R,EAAQ1R,KACd6J,KAAM6H,EAAQ7H,UAwEFgI,CAAiBjH,IAErB5L,GAAE,cAAA2C,OAAkBqJ,GACpBhL,KAAK,SAET0L,IAAAC,cAAA,SAAOmG,QAAO,cAAAnQ,OAAkBqJ,IAC5BU,IAAAC,cAACqF,IAAM,CACHe,UAAU,OACVtB,UAAYb,EAAQR,gBACpB6B,KAAK,QACLC,UAAYxF,IAAAC,cAACqG,KAAe,OAE1BlT,YAAUC,EAAO,oCAM/B2M,IAAAC,cAACqF,IAAM,CACHP,UAAYb,EAAQR,gBACpB6B,KAAK,QACLc,UAAU,OACVnB,QAAUA,KAhItBlH,GACAuG,EAAYJ,IAkIAqB,UAAYxF,IAAAC,cAACsG,KAAU,OAErBnT,YAAUC,EAAO,wC,8BC/L3C,MAAMoO,GAAYC,YAAYC,IAAiB,CAC7C6E,KAAM,CACJC,WAAY,0BACZC,eAAgB,aAChBC,OAAQ,oBACR1E,aAAc,GACdC,QAAS,IAEXN,KAAM,CACJ2B,SAAU,IACVqD,MAAO,OACP9E,QAAS,OACTE,cAAe,SACfW,eAAgB,iBAElBL,OAAQ,CACNa,gBAAiB,UACjBF,MAAO,OACP,UAAW,CACTE,gBAAiB,YAGrB0D,WAAY,CACV7E,cAAe,OAEjB8E,KAAM,CACJhF,QAAS,OACTE,cAAe,MACfC,aAAc,GACdsB,SAAU,KAEZwD,QAAS,CACPpD,cAAe,OACfV,MAAO,UACP+D,WAAY,0BAEdC,YAAa,CACXC,aAAc,oBACd7E,aAAc,EACd2E,WAAY,WAEdG,YAAa,CACXP,MAAO,OACP1E,QAAS,YACTyE,OAAQ,+BACRtE,aAAc,MACd2E,WAAY,UACZnD,SAAU,UACV,UAAW,CACTuD,QAAS,OACThF,UAAW,kBAEb,UAAW,CACTuE,OAAQ,oBAGZxR,MAAO,CACLwR,OAAQ,iBAGVU,YAAa,CACXlF,UAAWR,EAAM2F,QAAQ,GACzBrF,aAAcN,EAAM2F,QAAQ,GAC5B/D,SAAU,KAEZgE,OAAQ,CACNC,UAAW,IACXC,SAAU,OACVtF,UAAW,IAEbuF,WAAY,CACV5E,WAAY,IAEd6E,SAAU,CACR1E,MAAO,SAET2E,eAAgB,CACd9F,QAAS,OACTa,eAAgB,gBAChBR,UAAW,IAEb0F,QAAS,CACP1E,gBAAiB,cACjByD,MAAO,KAETkB,OAAQ,CACNhG,QAAS,OACTE,cAAe,MACfS,WAAY,UAEdsF,UAAW,CACTxF,OAAQ,GACRO,WAAY,GACZX,UAAW,GAEb6F,WAAY,CACVzF,OAAQ,GACRO,WAAY,IAEdmF,WAAY,CACVC,YAAa,GACb3E,SAAU,KAEZ4E,WAAY,CACVrG,QAAS,OACTE,cAAe,OAEjBoG,YAAa,CACXtG,QAAS,OACTE,cAAe,OAEjBrJ,OAAQ,CACNkL,SAAU,GACV,WAAY,CACVqE,YAAa,GACbrE,SAAU,KAGdwE,WAAY,CACVvG,QAAS,OACTE,cAAe,OAEjBsG,gBAAiB,CACfxG,QAAS,OACTE,cAAe,OAEjBuG,eAAgB,CACdzG,QAAS,OACTE,cAAe,UAEjBkG,YAAa,CACXA,YAAa,QAEfM,KAAM,CACJN,YAAa,OAEfO,gBAAiB,CACf3G,QAAS,QAEX4G,aAAc,CACZC,UAAW,UAEbC,SAAU,CACR3F,MAAO,kBAET4F,YAAa,GACbC,WAAY,CACVjF,SAAU,QAEZjB,KAAM,CACJK,MAAO,cAUL8F,GAAyBrH,YAAW,CACxCE,KAAM,CACJqB,MAAO,sBACPnB,QAAS,OACTS,OAAQ,GACRE,WAAY,SACZmE,MAAO,GACPjE,eAAgB,UAElBqG,OAAQ,CACN/F,MAAO,WAETgG,OAAQ,CACNrC,MAAO,GACPrE,OAAQ,GACRF,aAAc,MACdc,gBAAiB,eACjBrB,QAAS,OACTW,WAAY,SACZE,eAAgB,UAElBuG,WAAY,CACVjG,MAAO,SAETkG,UAAW,CACTlG,MAAO,UACPmG,OAAQ,EACRvF,SAAU,MAIRwF,GAAiBC,YAAW,CAChCC,SAAU,CACRzG,WAAY,GACZZ,QAAS,UAHUoH,CAKpBE,KAEH,SAASC,GAAcpW,GACrB,MAAM6Q,EAAU6E,MACV,OAAEC,EAAM,UAAEG,GAAc9V,EAE9B,OACE2M,IAAAC,cAAA,OACE8E,UAAW2E,YAAKxF,EAAQtC,KAAM,CAC5B,CAACsC,EAAQ8E,QAASA,KAGnBG,EACCnJ,IAAAC,cAAC0J,KAAK,CAAC5E,UAAWb,EAAQiF,YAE1BnJ,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ+E,QACtBjJ,IAAAC,cAAA,QAAM8E,UAAWb,EAAQgF,YAAa7V,EAAM0P,QAOtD,MAAM6G,GAAuB,CAC3B,CAAC,MAAO,gBACR,CAAC,yBAA0B,0BAC3B,GACA,CAAC,mBAAoB,mBAAoB,WAAY,wBACrD,GACA,CACE,uBACA,wCACA,gDACA,0CACA,2BACA,gCACA,UAEF,IAw5Da9F,iBAr5Df,SAA6BlP,GAaD,IAbE,gBAC5BiV,EAAe,SACfC,EAAQ,KACRC,EAAI,UACJhF,EAAS,MACTiF,KACGxK,GAOoB5K,EACvB,MAAMqV,EAAKC,mBACLhG,EAAUzC,MAEV,gBAAE0I,IADQC,cACYC,0BACrBC,EAAOC,GAAY/F,oBAAS,IAC5BnS,EAAOmY,IAAYhG,mBAAc,CAAEiG,iBAAkB,MACrDC,GAAMC,IAAWnG,oBAAS,IAC1BoG,GAAaC,IAAkBrG,oBAAS,IACxCsG,GAAYC,IAAiB/K,IAAMwE,SAAS,GAC7CwG,GAAQ,CACZ,8GACA,uGACA,kEACA,8EACA,mKACA,4DACA,oEAEKC,GAAkBC,IAAuB1G,mBAAc,OACvD2G,GAAUC,IAAe5G,mBAAS,KAClC6G,GAAoBC,IAAyB9G,oBAAS,IACtD+G,GAAYC,IAAiBhH,oBAAS,GAEvCiH,GAAe,SAACC,GAAkC,IAAfxX,EAAIhC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC9C,MAAMyZ,EACJzX,GACAA,EAAK0X,KAAMC,GACFA,EAAKvX,OAASoX,GAEzB,OAAIC,GAGG,CACLG,MAAO,4DAIX/L,oBAAU,KACRgM,KAEO,KACL9B,EAAG+B,QAAShC,UAEb,CAACO,IAEJ,MAAMwB,GAAaA,KACjB9B,EAAG+B,QAAU,IAAIC,UAAU,0BAE3BhC,EAAG+B,QAAQE,OAAS1X,IAElB2X,QAAQC,IAAI,qBACZ7B,GAAS,IAEXN,EAAG+B,QAAQK,QAAU7X,IACfA,EAAE8X,SAEJH,QAAQC,IAAI,sBAGZD,QAAQC,IAAI,4BAA8B5X,EAAEqE,KAAO,cAAgBrE,EAAE+X,QACrE5B,IAAQ,IAEVJ,GAAS,KAIPiC,GAA2BA,KAC/BlB,IAAuBD,KAkEnBoB,GAAaA,KAIf1B,GAHiB,IAAfD,IAAqBO,GAGTqB,GAAkBA,EAAiB,EAFnCA,GAAkBA,EAAiB,IA+ErD3M,oBAAU,KACR,MAAM4M,EAAkBxY,UAClByY,GAAQA,EAAK/T,MAAsB,QAAd+T,EAAK/T,WA3EjB1E,WACf,MAAM0Y,QAAqBzY,IAAY0Y,kBAAkBC,GACnDpS,EAAMkS,EAAeA,EAAaG,qBAAuB,GAEzDC,QAAwBxS,KAAgBO,sBAAsBL,GAAK,GACnEuS,QAAiBzS,KAAgBQ,oBAAoBN,GAAK,GAC1DwS,QAAsB1S,KAAgBS,yBAAyBP,GAAK,GAC1E,IAAIyS,QAAmB3S,KAAgBW,sBAAsBT,GAAK,GAmDlE,OAjDAuQ,GAAoB,CAClBmC,YAAa,CACX1S,IAAKsS,EAAWtS,IAAMsS,EAAWtS,IAAM,0DACvC2S,KAAML,EAAWK,KAAOL,EAAWK,KAAO,0DAC1CC,KAAMN,EAAWM,KAAON,EAAWM,KAAO,0DAC1CC,aAAcP,EAAWO,aAAeC,IAAOR,EAAWO,cAAcE,OAAO,cAAgB,0DAC/FC,WAAYV,EAAWW,MAAQX,EAAWW,MAAQ,0DAClDC,IAAKZ,EAAWa,QAAUb,EAAWa,QAAU,0DAC/CC,KAAMd,EAAWc,KAAO,CAAEA,KAAMd,EAAWc,KAAMC,OAAQf,EAAWgB,OAAU,0DAC9EC,SAAUhB,GAAY,KACtBiB,QAAShB,EAAWA,EAASxI,QAAU,KAGvCyI,GAA+B,SAAtBA,EAAMgB,cACjBhB,QAAc3S,KAAgBW,sBAAsBT,GAAK,IAkC3D6P,GAAS,IAAKnY,EAAOoY,iBAAkBoC,KAAiBI,IAChDoB,OAAOpB,EAAWtS,IAAI,KAC5B,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACHyQ,GAAY,OACZ,MACF,KAAK,EACL,KAAK,EACL,KAAK,EACHA,GAAY,SAQNkD,CAAS1B,EAAK2B,iBAKxBtE,EAAG+B,QAASwC,UAAYha,IACtB,GAAe,kBAAXA,EAAEN,KACJ,OAGF,MAAMA,EAAO6D,KAAK0W,MAAMja,EAAEN,MAC1B,GAAa,OAATA,EACF,OAAQ7B,EAAMmJ,QACZ,IAAK,UACHmR,EAAgBzY,GAChB,MACF,QAEkB6D,KAAK0W,MAAMja,EAAEN,SAKpC,CAAC7B,EAAOmY,KAEX,MAAMkE,GAAcA,KAClB/D,IAAQ,IA0BJgE,GAAS,kCAEf,IAAIC,GAAc,CAChBjU,IAAKtI,EAAMoY,iBAAiBuC,qBAC5B6B,aAAcxc,EAAMoY,iBAAiBqE,iBACrCjU,UAAW,GACXkU,WAAY,GACZC,iBAAiB,EACjBC,cAAc,EACdC,cAAe,EACfC,kBAAkB,EAClBC,SAAS,EACTjZ,MAAO,GACPkZ,KAAM,qBACNlI,YAAa,GACbmI,cAAe,GACfhV,SAAU,GACVzE,SAAU,GACV0Z,qBAAsB,GACtBhI,QAAQ,EACRiI,kBAAmB,IAAInX,KACvBoX,eAAgB,KAChBC,iBAAkB,GAClBC,eAAgB,GAChBC,SAAU,GACVC,YAAa,aACb1H,WAAY,CACV2H,WAAW,EACXC,UAAW,GACXC,SAAU,GACVC,QAAS,GACT9R,KAAMsN,GAAa,2EAAgBpZ,EAAM2b,QAAQlC,MACjDoE,IAAK,GACL/Z,MAAO,GACPuC,MAAO,IAETyX,aAAc,CACZ5U,QAAS,yDACTgS,KAAMlb,EAAMkb,KACZ6C,OAAQ,GACRC,YAAa,GACbC,WAAY7E,GAAa,oGAAqBpZ,EAAM2b,QAAQlC,MAC5DyE,OAAQ9E,GAAa,uCAAUpZ,EAAM2b,QAAQlC,MAC7C0E,QAAS,IAEXC,cAAe,CACblV,QAAS,yDACTgS,KAAM,GACN6C,OAAQ,GACRC,YAAa,GACbC,WAAY,GACZE,QAAS,IAEXE,iBAAkB,CAChBhY,MAAO,GACPvC,MAAO,GACPwa,KAAM,IAERC,SAAU,CACRb,UAAW,GACXC,SAAU,GACVC,QAAS,GACTC,IAAK,GACL/Z,MAAO,GACPuC,MAAO,GACPkY,SAAU,QACVtW,SAAU,GACVuW,WAAY,GACZC,WAAY,IAEdC,gBAAgB,EAChBC,aAAc,CACZC,QAAS,KACTC,yBAA0B,KAC1BC,iCAAkC,KAClCC,2BAA4B,KAC5BC,YAAa,KACbC,iBAAkB,KAClBC,eAAgB,OAoBpB,OACEvR,IAAAC,cAACuR,IAAG,CAACC,GAAI,EAAG1M,UAAWb,EAAQ2E,aAC5BxW,EAAMoY,kBACLpY,EAAMoY,iBAAiBiH,SACd,UAAT3H,GAAgB,yDAAA9T,OACC5D,EAAMoY,iBAAiBqE,kBAEzC7D,IAAoBzU,QAAQyU,GAAiBoC,YAAYc,UACxDnO,IAAAC,cAAC0R,KAAa,CACZjH,KAAME,GACNgH,mBAfoB1S,IAC1BA,EAAM2S,iBACNhH,IAAe,IAcTsD,QAASlD,GAAiBoC,YAAYc,UAIzC9b,EAAMoY,kBAAoBpY,EAAMoY,iBAAiBiH,SAAoB,iBAAT3H,GAC3D/J,IAAAC,cAAA,OAAK8E,UAAWb,EAAQmE,YACtBrI,IAAAC,cAAC6R,IAAO,CACNhH,WAAYA,GACZ/F,UAAWb,EAAQ2D,QACnBkK,UAAW/R,IAAAC,cAACoJ,GAAc,MAC1B2I,YAAY,YAEXhH,GAAMiH,IAAI,CAACC,EAAOC,IACjBnS,IAAAC,cAACmS,IAAI,CAACD,IAAKA,GACTnS,IAAAC,cAACoS,IAAS,CAACC,kBAAmB7I,IAAgByI,MAIpDlS,IAAAC,cAACsS,IAAM,CACLC,cAAe5D,GACf6D,iBAAkBC,MAAaC,MAAM,CACnC9D,aAAc6D,MACXE,IAAI,KACJ5O,SAAS5Q,YAAUoM,EAAM,iCAAkC,aAC9D7E,IAAK+X,MACFE,IAAI,KACJ5O,SAAS5Q,YAAUoM,EAAM,iCAAkC,aAC9D3J,SAAU6c,MACPG,IAAI,GAAIzf,YAAUoM,EAAM,0CAA2C,KACnEoT,IAAI,KACJE,KAAK,WAAY1f,YAAUoM,EAAM,uCAAwCuT,IACxE,IAAIC,EAAQ,EAMZ,OALAA,GAAS,QAAQF,KAAKC,GAAO,EAAI,EACjCC,GAAS,QAAQF,KAAKC,GAAO,EAAI,EACjCC,GAAS,KAAKF,KAAKC,GAAO,EAAI,EAC9BC,GAAS,sDAAsDF,KAAKC,GAAO,EAAI,EAE3EC,EAAQ,IAKbhP,SAAS5Q,YAAUoM,EAAM,iCAAkC,aAC9D+P,qBAAsBmD,MACnBG,IAAI,GAAIzf,YAAUoM,EAAM,0CAA2C,KACnEoT,IAAI,KACJE,KAAK,WAAY1f,YAAUoM,EAAM,uCAAwCuT,IACxE,IAAIC,EAAQ,EAMZ,OALAA,GAAS,QAAQF,KAAKC,GAAO,EAAI,EACjCC,GAAS,QAAQF,KAAKC,GAAO,EAAI,EACjCC,GAAS,KAAKF,KAAKC,GAAO,EAAI,EAC9BC,GAAS,sDAAsDF,KAAKC,GAAO,EAAI,EAE3EC,EAAQ,IAKbhP,SAAS5Q,YAAUoM,EAAM,iCAAkC,aAC3DyT,MAAM,CAACP,IAAQ,YAAa,MAAO,oIACtCnL,OAAQmL,MAAcO,MAAM,EAAC,IAC7BvC,iBAAkBgC,MAAaC,MAAM,CACnCja,MAAOga,MAAa1O,SAAS5Q,YAAUoM,EAAM,iCAAkC,aAC/ErJ,MAAOuc,MACJvc,MAAM/C,YAAUoM,EAAM,8BAA+B,wBACrDwE,SAAS5Q,YAAUoM,EAAM,iCAAkC,eAEhE2I,WAAYuK,MAAaC,MAAM,CAC7Bja,MAAOga,MAAa1O,SAAS5Q,YAAUoM,EAAM,iCAAkC,aAC/ErJ,MAAOuc,MACJvc,MAAM/C,YAAUoM,EAAM,8BAA+B,wBACrDwE,SAAS5Q,YAAUoM,EAAM,iCAAkC,iBAGlE0T,SAAU/e,MAAOyG,EAAMuY,KAAoC,IAAlC,UAAEC,EAAS,cAAEC,GAAeF,EACnD,IACE,IAAIG,EAAiB,IAAK1Y,GAC1B0Y,EAAend,MAAQyE,EAAOuN,WAAWhS,MACzCmd,EAAenM,YAAcvM,EAAOuN,WAAWzP,MAC/C4a,EAAevE,WAAanU,EAAOuN,WAAWhK,WACxC/J,IAAYmf,aAAaD,GAC/BE,eAAezc,QAAQ,kBAAmBuc,EAAend,OACzDsE,KAAgBgB,iBAAiBwP,GAAiBoC,YAAY1S,KAAK,GACnEkP,GAAmBA,EAAgByJ,EAAend,OAIlDgU,EADE,myBACuB,CACvBlF,QAAS,UACTwO,iBAAkB,MAEpB,MAAOte,GACPie,EAAU,CAAE1B,SAAS,IACrB2B,GAAc,GACVrJ,GACFA,OASL0J,IAAA,IAAC,OACAC,EAAM,WACNC,EAAU,aACVC,EAAY,aACZC,EAAY,aACZC,EAAY,QACZC,EAAO,OACPpZ,EAAM,cACNqZ,EAAa,UACbC,EAAS,gBACTC,GACDT,EAAA,OACC1T,IAAAC,cAAA,OAAAC,OAAAC,OAAA,CAAM4E,UAAW2E,YAAKxF,EAAQtC,KAAMmD,GAAYmO,SAAUY,GAAkBtU,GAC1EQ,IAAAC,cAACuR,IAAG,KACc,IAAf1G,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,IAAU,CAACF,QAAS,MAAM,4GAC3BjF,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ4D,QACtB9H,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOhZ,KACtB0Z,WAAS,EACT3M,WAAYiM,EAAOhZ,IACnBuX,MAAO9e,YAAUoM,EAAM,gCAAiC,WACxD8U,OAAO,SACPnW,KAAK,MACL6F,UAAQ,EACRuQ,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOD,IACdsK,QAAQ,cAGZjF,IAAAC,cAAAD,IAAA8E,SAAA,KACGmG,IACCjL,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAO9E,cACtBwF,WAAS,EACT3M,WAAYiM,EAAO9E,aACnBqD,MAAO,2EACPoC,OAAO,SACPnW,KAAK,eACLoW,OAAQX,EACRlO,SAAWxG,IACT+U,EAAc,eAAgB/U,EAAM0G,OAAOkG,OAC3CmI,EAAc,mBAAmB,IAEnCnI,MAAOlR,EAAOiU,aACd5J,QAAQ,WACRjB,UAAQ,IAEVhE,IAAAC,cAACuR,IAAG,CAACC,GAAI,EAAG+C,GAAI,GACdxU,IAAAC,cAACwU,IAAIvU,OAAAC,OAAA,CAAC4E,UAAWb,EAAQtC,MAAUpC,GACjCQ,IAAAC,cAACyU,IAAO,MACR1U,IAAAC,cAAC0U,IAAK,KACJ3U,IAAAC,cAAC2U,IAAS,KACR5U,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KAAC,yCACX9U,IAAAC,cAAC6U,IAAS,KAAC,4BACX9U,IAAAC,cAAC6U,IAAS,KAAC,4BACX9U,IAAAC,cAAC6U,IAAS,KAAC,wEAGf9U,IAAAC,cAAC8U,IAAS,KACR/U,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAY1S,MAGtDqF,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYC,OAGtDtN,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYE,OAGtDvN,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYG,oBAQhExN,IAAAC,cAACuR,IAAG,CAACC,GAAI,EAAG+C,GAAI,GACdxU,IAAAC,cAACwU,IAAIvU,OAAAC,OAAA,CAAC4E,UAAWb,EAAQtC,MAAUpC,GACjCQ,IAAAC,cAAC+U,IAAU,CAAC1V,MAAM,gGAClBU,IAAAC,cAACyU,IAAO,MACR1U,IAAAC,cAAC0U,IAAK,KACJ3U,IAAAC,cAAC8U,IAAS,KACR/U,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KAAC,4EACX9U,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYM,cAIxD3N,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KAAC,sBACX9U,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYQ,OAIxD7N,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KAAC,4BACX9U,IAAAC,cAAC6U,IAAS,KACP7J,IAAoBA,GAAiBoC,YAAYU,KAAKA,KACrD/N,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYU,KAAKA,MAExD9C,IACCA,GAAiBoC,YAAYU,KAAKC,OAAOiE,IACvC,CAACpG,EAAWzR,IAER4F,IAAAC,cAACkF,IAAU,CAACgN,IAAK/X,EAAO6K,QAAQ,QAAQhC,MAAM,iBAC3C4I,KAOb7L,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYU,QAK1D/N,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KAAC,mFACX9U,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBA,GAAiBoC,YAAYa,UACG,IAAjDjD,GAAiBoC,YAAYa,SAAS9Y,OAAe,gBAAAa,OAEjDgV,GAAiBoC,YAAYa,SAAS+G,aAClC,2DACAxH,IAAOxC,GAAiBoC,YAAYa,SAAS+G,cAAcvH,OACzD,qBAEF,IACA,IAEN,qBACF,6DAIV1N,IAAAC,cAAC4U,IAAQ,KACP7U,IAAAC,cAAC6U,IAAS,KAAC,oDACX9U,IAAAC,cAAC6U,IAAS,KACR9U,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/BgI,IAAoBzU,QAAQyU,GAAiBoC,YAAYc,QAAQhc,SAChE6N,IAAAC,cAAA,KACEiV,KAAK,GACLhQ,QAAUhG,IAlS3BA,KACzBA,EAAM2S,iBACNhH,IAAe,IAiS6BsK,CAAkBjW,KAErB,kCACQ+L,GAAiBoC,YAAYc,QAAQhc,OAAO,qDAGtD8Y,KACEzU,QAAQyU,GAAiBoC,YAAYc,QAAQhc,SAC9C,8FAoEV,IAAf2Y,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,IAAU,CAACF,QAAS,MAAM,wKAC3BjF,IAAAC,cAACmV,IAAgB,CACfC,QACErV,IAAAC,cAACqV,IAAQ,CACPC,QAAS3a,EAAOmW,eAChBrL,SAAUmO,EACV1V,KAAK,iBACL8E,MAAM,YAGViP,MAAO,0KAETlS,IAAAC,cAACuR,IAAG,CAACC,GAAI,EAAG+C,GAAI,GACdxU,IAAAC,cAACuV,IAAI,CAACC,WAAS,EAACnO,QAAS,GACvBtH,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOxD,cAAgBwD,EAAOxD,aAAa5U,SAC1D8Y,WAAS,EACT3M,WAAYiM,EAAOxD,cAAgBwD,EAAOxD,aAAa5U,QACvD2W,MAAO,uCACP/T,KAAK,uBACLoW,OAAQX,EACRlO,SAAUmO,EACV7P,UAAQ,EACR8H,MAAOlR,EAAOuV,aAAa5U,QAC3B0J,QAAQ,WACR2D,UAAQ,KAGZ5I,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IAuBpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOxD,cAAgBwD,EAAOxD,aAAa5C,MAC1D8G,WAAS,EACTzL,SAAUhO,EAAOmW,eACjBrJ,WAAYiM,EAAOxD,cAAgBwD,EAAOxD,aAAa5C,KACvD2E,MAAO,OACP/T,KAAK,oBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOuV,aAAa5C,KAC3BtI,QAAQ,eAIdjF,IAAAC,cAACuV,IAAI,CAACC,WAAS,EAACnO,QAAS,GACvBtH,IAAAC,cAAAD,IAAA8E,SAAA,MACIlK,EAAOmW,gBACP/Q,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOxD,cAAgBwD,EAAOxD,aAAaC,QAC1DiE,WAAS,EACT3M,WAAYiM,EAAOxD,cAAgBwD,EAAOxD,aAAaC,OACvD8B,MAAO,uCACP/T,KAAK,sBACLoW,OAAQX,EACRlO,SAAUmO,EACV7P,UAAQ,EACR8H,MAAOlR,EAAOuV,aAAaC,OAC3BnL,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOxD,cAAgBwD,EAAOxD,aAAaE,aAC1DgE,WAAS,EACT3M,WAAYiM,EAAOxD,cAAgBwD,EAAOxD,aAAaE,YACvD6B,MAAO,iCACP/T,KAAK,2BACLoW,OAAQX,EACRlO,SAAUmO,EACV7P,UAAQ,EACR8H,MAAOlR,EAAOuV,aAAaE,YAC3BpL,QAAQ,eAKfrK,EAAOmW,gBACN/Q,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQ7D,cACN6D,EAAQ7D,aAAaI,QACrBoD,EAAOxD,cACPwD,EAAOxD,aAAaI,QAExB8D,WAAS,EACT3M,WACEsM,EAAQ7D,cACR6D,EAAQ7D,aAAaI,QACrBoD,EAAOxD,cACPwD,EAAOxD,aAAaI,OAEtB2B,MAAO,uCACPtJ,SAAUhO,EAAOmW,eACjB5S,KAAK,sBACLoW,OAAQX,EACRlO,SAAUmO,EACV7P,UAAQ,EACR8H,MAAOlR,EAAOuV,aAAaI,OAC3BtL,QAAQ,gBAMlBjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQ7D,cACN6D,EAAQ7D,aAAaG,YACrBqD,EAAOxD,cACPwD,EAAOxD,aAAaG,YAExB+D,WAAS,EACTzL,SAAUhO,EAAOmW,eACjBrJ,WACEsM,EAAQ7D,cACR6D,EAAQ7D,aAAaG,YACrBqD,EAAOxD,cACPwD,EAAOxD,aAAaG,WAEtB4B,MAAO,oGACP/T,KAAK,0BACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOuV,aAAaG,WAC3BrL,QAAQ,gBA8HhBjF,IAAAC,cAACkF,IAAU,CAACF,QAAS,MAAM,uHAC3BjF,IAAAC,cAACuR,IAAG,CAACC,GAAI,GACPzR,IAAAC,cAACuV,IAAI,CAACC,WAAS,EAACnO,QAAS,GACvBtH,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAAC2V,IAAS,CACR7Q,UAAW2E,YACTxF,EAAQiD,YACR3Q,QAAQmd,EAAOjD,kBAAoBiD,EAAOjD,iBAAiBhY,OAASwL,EAAQ/O,MAAQ,IAEtFka,KAAM,mBACNvD,MAAOlR,EAAO8V,iBAAiBhY,MAC/BgN,SAAUmO,EACV1V,KAAK,yBACL0X,YAAa,4GACbtB,OAAQX,IAETpd,QAAQmd,EAAOjD,kBAAoBiD,EAAOjD,iBAAiBhY,QAC1DsH,IAAAC,cAACoF,IAAc,CAACN,UAAWb,EAAQwD,WAAYvS,OAAK,GACjDwe,EAAOjD,kBAAoBiD,EAAOjD,iBAAiBhY,QAI1DsH,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOjD,kBAAoBiD,EAAOjD,iBAAiBva,OAClEke,WAAS,EACT3M,WAAYiM,EAAOjD,kBAAoBiD,EAAOjD,iBAAiBva,MAC/D+b,MAAO,oGACP/T,KAAK,yBACLoW,OAAQX,EACRlO,SAAUmO,EACV7P,UAAQ,EACR8H,MAAOlR,EAAO8V,iBAAiBva,MAC/B8O,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQtD,kBACNsD,EAAQtD,iBAAiBC,MACzBgD,EAAOjD,kBACPiD,EAAOjD,iBAAiBC,MAE5B0D,WAAS,EACT3M,WACEsM,EAAQtD,kBACRsD,EAAQtD,iBAAiBC,MACzBgD,EAAOjD,kBACPiD,EAAOjD,iBAAiBC,KAE1BuB,MAAO,2BACP/T,KAAK,wBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAO8V,iBAAiBC,KAC/B1L,QAAQ,iBAOJ,IAAf6F,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,IAAU,CAACF,QAAS,MAAM,gEAC3BjF,IAAAC,cAACuR,IAAG,CAACC,GAAI,GACPzR,IAAAC,cAAC6V,IAAW,CAAC7Q,QAAQ,WAAWF,UAAWb,EAAQmD,aACjDrH,IAAAC,cAAC8V,IAAU,CAAC3P,QAAQ,eAAc,mFAClCpG,IAAAC,cAAC+V,IAAM,CACLpN,SAAuB,QAAbuC,GACV8K,QAAM,EACNnK,MAAOlR,EAAOiV,YACdnK,SAAUmO,EACV3B,MAAM,kFACNgE,WAAY,CACV/X,KAAM,cACN7K,GAAI,gBAGN0M,IAAAC,cAAA,UAAQ6L,MAAO,cAAc,yFAC7B9L,IAAAC,cAAA,UAAQ6L,MAAO,UAAU,iGAG7B9L,IAAAC,cAACmU,IAAS,CACRxL,SAAuB,QAAbuC,GACVhW,MAAOqB,QAAQwd,EAAQpE,UAAY+D,EAAO/D,UAC1CyE,WAAS,EACT3M,WAAYsM,EAAQpE,UAAY+D,EAAO/D,SACvCsC,MAAO,wCACPoC,OAAO,SACPnW,KAAK,WACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgV,SACd3K,QAAQ,aAEVjF,IAAAC,cAACmU,IAAS,CACRxL,SAAuB,QAAbuC,GACVhW,MAAOqB,QAAQwd,EAAQnZ,WAAa8Y,EAAO9Y,WAC3CwZ,WAAS,EACT3M,WAAYsM,EAAQnZ,WAAa8Y,EAAO9Y,UACxCqX,MAAO,gHACPoC,OAAO,SACPnW,KAAK,YACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOC,UACdoK,QAAQ,eAKA,IAAf6F,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,IAAU,CAACF,QAAS,MAAM,4EAC3BjF,IAAAC,cAACuR,IAAG,CAACC,GAAI,EAAG1M,UAAWb,EAAQiE,YAC7BnI,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOxL,YAAcwL,EAAOxL,WAAWhK,MACtDkW,WAAS,EACT3M,WAAYiM,EAAOxL,YAAcwL,EAAOxL,WAAWhK,KACnD+T,MAAO,qBACPtJ,UAAQ,EACR0L,OAAO,SACPnW,KAAK,kBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOuN,WAAWhK,KACzB8G,QAAQ,cAuEZjF,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOxL,YAAcwL,EAAOxL,WAAWhS,OACtDke,WAAS,EACT3M,WACGiM,EAAOxL,YAAcwL,EAAOxL,WAAWhS,OAAU,oNAEpD+b,MAAO9e,YAAUoM,EAAM,+BACvB8U,OAAO,SACPnW,KAAK,mBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOuN,WAAWhS,MACzB8O,QAAQ,aAEVjF,IAAAC,cAAC2V,IAAS,CACR7Q,UAAW2E,YACTxF,EAAQiD,YACR3Q,QAAQmd,EAAOxL,YAAcwL,EAAOxL,WAAWzP,OAASwL,EAAQ/O,MAAQ,IAE1Eka,KAAMzU,EAAOyU,KACbvD,MAAOlR,EAAOuN,WAAWzP,MACzBgN,SAAUmO,EACV1V,KAAK,mBACL0X,YAAa,4GACbtB,OAAQX,IAETpd,QAAQmd,EAAOxL,YAAcwL,EAAOxL,WAAWzP,QAC9CsH,IAAAC,cAACoF,IAAc,CAACN,UAAWb,EAAQwD,WAAYvS,OAAK,GACjDwe,EAAOxL,YAAcwL,EAAOxL,WAAWzP,OAG5CsH,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQkE,aACtBpI,IAAAC,cAACuV,IAAI,CAACC,WAAS,EAACnO,QAAS,GACvBtH,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAO9d,UACtBwe,WAAS,EACT3M,WAAYiM,EAAO9d,SACnBqc,MAAO9e,YAAUoM,EAAM,kCACvB8U,OAAO,SACPnW,KAAK,WACLoW,OAAQX,EACRlO,SAAUmO,EACVvf,KAAK,WACL6hB,WAAY,CACVC,aACEpW,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACoW,IAAO,CACN/W,MACEU,IAAAC,cAACD,IAAM8E,SAAQ,KAEX9E,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,2RAKzD3H,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,iMAKzD3H,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,uuBAMzD3H,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,wMACjBgH,GAAO,6CAMrD3O,IAAAC,cAACqW,IAAQ,SAKjBxK,MAAOlR,EAAO/E,SACdoP,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QAAQmd,EAAOpE,sBACtB8E,WAAS,EACT3M,WAAYiM,EAAOpE,qBACnB2C,MAAO,uHACPoC,OAAO,SACPnW,KAAK,uBACLoW,OAAQX,EACRlO,SAAUmO,EACVvf,KAAK,WACL6hB,WAAY,CACVC,aACEpW,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACoW,IAAO,CACN/W,MACEU,IAAAC,cAACD,IAAM8E,SAAQ,KAEX9E,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,2RAKzD3H,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,iMAKzD3H,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,uuBAMzD3H,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQF,UAAWb,EAAQyD,UAAU,wMACjBgH,GAAO,6CAMrD3O,IAAAC,cAACqW,IAAQ,SAKjBxK,MAAOlR,EAAO2U,qBACdtK,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,OAG1B3V,IAAAC,cAACmV,IAAgB,CACfC,QACErV,IAAAC,cAACqV,IAAQ,CACPC,QAASlK,GACT3F,SAAU8G,GACVrO,KAAK,qBACL8E,MAAM,YAGViP,MAAO,sQAIG,IAAfpH,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,IAAU,CAACF,QAAS,MAAM,iKAC3BjF,IAAAC,cAACuR,IAAG,CAACC,GAAI,GACPzR,IAAAC,cAACuV,IAAI,CAACC,WAAS,EAACnO,QAAS,GACvBtH,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQpD,UACNoD,EAAQpD,SAASZ,UACjB2D,EAAO/C,UACP+C,EAAO/C,SAASZ,UAEpBqE,WAAS,EACT3M,WACEsM,EAAQpD,UACRoD,EAAQpD,SAASZ,UACjB2D,EAAO/C,UACP+C,EAAO/C,SAASZ,SAElBkC,MAAO,6CACP/T,KAAK,oBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgW,SAASZ,SACvB/K,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQpD,UACNoD,EAAQpD,SAASb,WACjB4D,EAAO/C,UACP+C,EAAO/C,SAASb,WAEpBsE,WAAS,EACT3M,WACEsM,EAAQpD,UACRoD,EAAQpD,SAASb,WACjB4D,EAAO/C,UACP+C,EAAO/C,SAASb,UAElBmC,MAAO,qBACP/T,KAAK,qBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgW,SAASb,UACvB9K,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQpD,UACNoD,EAAQpD,SAASX,SACjB0D,EAAO/C,UACP+C,EAAO/C,SAASX,SAEpBoE,WAAS,EACT3M,WACEsM,EAAQpD,UACRoD,EAAQpD,SAASX,SACjB0D,EAAO/C,UACP+C,EAAO/C,SAASX,QAElBiC,MAAO,mDACP/T,KAAK,mBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgW,SAASX,QACvBhL,QAAQ,eAIdjF,IAAAC,cAACuV,IAAI,CAACC,WAAS,EAACnO,QAAS,GACvBtH,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQpD,UAAYoD,EAAQpD,SAASV,KAAOyD,EAAO/C,UAAY+C,EAAO/C,SAASV,KAEjFmE,WAAS,EACT3M,WACEsM,EAAQpD,UAAYoD,EAAQpD,SAASV,KAAOyD,EAAO/C,UAAY+C,EAAO/C,SAASV,IAEjFgC,MAAO,qBACP/T,KAAK,eACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgW,SAASV,IACvBjL,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQpD,UAAYoD,EAAQpD,SAASza,OAASwd,EAAO/C,UAAY+C,EAAO/C,SAASza,OAEnFke,WAAS,EACT3M,WACEsM,EAAQpD,UAAYoD,EAAQpD,SAASza,OAASwd,EAAO/C,UAAY+C,EAAO/C,SAASza,MAEnF+b,MAAO,oGACP/T,KAAK,iBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgW,SAASza,MACvB8O,QAAQ,cAGZjF,IAAAC,cAACuV,IAAI,CAAC3J,MAAI,EAAC6J,GAAI,EAAGC,GAAI,IACpB3V,IAAAC,cAAC2V,IAAS,CACR7Q,UAAW2E,YACTxF,EAAQiD,YACR3Q,QACEwd,EAAQpD,UAAYoD,EAAQpD,SAASlY,OAASib,EAAO/C,UAAY+C,EAAO/C,SAASlY,OAE/EwL,EAAQ/O,MACR,IAENka,KAAM,mBACNvD,MAAOlR,EAAOgW,SAASlY,MACvBgN,SAAUmO,EACV1V,KAAK,iBACL0X,YAAa,0GACbtB,OAAQX,IAETpd,QACCwd,EAAQpD,UAAYoD,EAAQpD,SAASlY,OAASib,EAAO/C,UAAY+C,EAAO/C,SAASlY,QAEjFsH,IAAAC,cAACoF,IAAc,CAACN,UAAWb,EAAQwD,WAAYvS,OAAK,GACjDwe,EAAO/C,UAAY+C,EAAO/C,SAASlY,SAK5CsH,IAAAC,cAACmU,IAAS,CACRjf,MAAOqB,QACLwd,EAAQpD,UAAYoD,EAAQpD,SAAStW,UAAYqZ,EAAO/C,UAAY+C,EAAO/C,SAAStW,UAEtF+Z,WAAS,EACT3M,WACEsM,EAAQpD,UAAYoD,EAAQpD,SAAStW,UAAYqZ,EAAO/C,UAAY+C,EAAO/C,SAAStW,SAEtF4X,MAAO,yDACPoC,OAAO,SACPnW,KAAK,oBACLoW,OAAQX,EACRlO,SAAUmO,EACV/H,MAAOlR,EAAOgW,SAAStW,SACvB2K,QAAQ,eAKA,IAAf6F,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuR,IAAG,KACFxR,IAAAC,cAACsW,GAAW,CACVjX,MAAO,kCACPpL,KAAM0G,EAAOoW,aAAaC,QAC1BjN,UAAU,EACVC,WAAYzN,QAAQmd,EAAOpM,QAC3BxD,cAAgBO,IACd2P,EAAc,uBAAwB3P,MAG5B,QAAb6G,IACCnL,IAAAC,cAACsW,GAAW,CACVjX,MAAO,qLACP0E,UAAU,EACV9P,KAAM0G,EAAOoW,aAAaE,yBAC1BjN,WAAYzN,QAAQmd,EAAOpM,QAC3BxD,cAAgBO,IACd2P,EAAc,wCAAyC3P,MAI7DtE,IAAAC,cAACsW,GAAW,CACVjX,MAAO,yTACP0E,UAAU,EACV9P,KAAM0G,EAAOoW,aAAaG,iCAC1BlN,WAAYzN,QAAQmd,EAAOpM,QAC3BxD,cAAgBO,IACd2P,EAAc,gDAAiD3P,MAGnEtE,IAAAC,cAACsW,GAAW,CACVjX,MAAO,mLACP0E,UAAU,EACV9P,KAAM0G,EAAOoW,aAAaI,2BAC1BnN,WAAYzN,QAAQmd,EAAOpM,QAC3BxD,cAAgBO,IACd2P,EAAc,0CAA2C3P,MAG7DtE,IAAAC,cAACsW,GAAW,CACVjX,MAAO,sHACPpL,KAAM0G,EAAOoW,aAAaO,eAC1BxN,cAAgBO,IACd2P,EAAc,8BAA+B3P,MAGnC,QAAb6G,IACCnL,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACsW,GAAW,CACVjX,MAAO,mFACP0E,UAAU,EACV9P,KAAM0G,EAAOoW,aAAaK,YAC1BpN,WAAYzN,QAAQmd,EAAOpM,QAC3BxD,cAAgBO,IACd2P,EAAc,2BAA4B3P,MAG9CtE,IAAAC,cAACsW,GAAW,CACVjX,MAAO,2LACP0E,UAAU,EACVC,WAAYzN,QAAQmd,EAAOpM,QAC3BrT,KAAM0G,EAAOoW,aAAaM,iBAC1BvN,cAAgBO,IACd2P,EAAc,gCAAiC3P,SAQ7C,IAAfwG,IACC9K,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuR,IAAG,KACFxR,IAAAC,cAACkF,IAAU,CAACF,QAAQ,KAAKhC,MAAM,eAC7BjD,IAAAC,cAAA,cAAS7M,YAAUoM,EAAM,0CAG7BQ,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQqD,QACtBvH,IAAAC,cAAA,WACED,IAAAC,cAAA,SAAG,4oCAKHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,SAAG,m8DAOHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,SAAG,knBAIHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,SAAG,88CAMHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,UACED,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,6HAGRD,IAAAC,cAAA,SAAG,+XAGHD,IAAAC,cAAA,SAAG,w7CAMHD,IAAAC,cAAA,SAAG,wYAIHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,MAAIuW,MAAO,GACTxW,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,8FAGRD,IAAAC,cAAA,SAAG,0yBAIHD,IAAAC,cAAA,SAAG,ukBAIHD,IAAAC,cAAA,SAAG,ytCAKHD,IAAAC,cAAA,SAAG,ujEAOHD,IAAAC,cAAA,SAAG,6+CAMHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,MAAIuW,MAAO,GACTxW,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,0OAGRD,IAAAC,cAAA,SAAG,i1CAKHD,IAAAC,cAAA,SAAG,6ZACHD,IAAAC,cAAA,SAAG,g3CAMHD,IAAAC,cAAA,SAAG,uuJAaHD,IAAAC,cAAA,SAAG,y4BAIHD,IAAAC,cAAA,SAAG,8gBAIHD,IAAAC,cAAA,SAAG,qJACHD,IAAAC,cAAA,SAAG,qXACHD,IAAAC,cAAA,SAAG,u/CAMHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,MAAIuW,MAAO,GACTxW,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,gKAGRD,IAAAC,cAAA,SAAG,y/CAMHD,IAAAC,cAAA,SAAG,skBAIHD,IAAAC,cAAA,SAAG,k+DAOHD,IAAAC,cAAA,SAAG,82DAOHD,IAAAC,cAAA,SAAG,wxDAMHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,MAAIuW,MAAO,GACTxW,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,2JAGRD,IAAAC,cAAA,SAAG,4vBAIHD,IAAAC,cAAA,SAAG,ygCAKHD,IAAAC,cAAA,SAAG,qrCAKHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,MAAIuW,MAAO,GACTxW,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,sPAGRD,IAAAC,cAAA,SAAG,27BAIHD,IAAAC,cAAA,SAAG,qnBAIHD,IAAAC,cAAA,SAAG,8lEAOHD,IAAAC,cAAA,SAAG,QACHD,IAAAC,cAAA,MAAIuW,MAAO,GACTxW,IAAAC,cAAA,cACED,IAAAC,cAAA,UAAI,kNAGRD,IAAAC,cAAA,SAAG,guBAIHD,IAAAC,cAAA,SAAG,k9BAKHD,IAAAC,cAAA,SAAG,2rDAMHD,IAAAC,cAAA,SAAG,i5BAKLD,IAAAC,cAACuR,IAAG,CAAC/O,WAAW,SAASX,QAAQ,OAAO2P,GAAI,EAAGgF,IAAK,GAClDzW,IAAAC,cAACqV,IAAQ,CAACC,QAAS3a,EAAO2M,OAAQpJ,KAAK,SAASuH,SAAUmO,IAC1D7T,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAC/B7P,YAAUoM,EAAM,mCAIvBQ,IAAAC,cAACuR,IAAG,CAACC,GAAI,EAAG3P,QAAQ,QAClB9B,IAAAC,cAACqF,IAAM,CACLP,UAAWb,EAAQ5B,OACnBsG,SAAUmL,IAAiBnZ,EAAO2M,OAClChC,KAAK,QACLjR,KAAK,SACL2Q,QAAQ,YACRC,QAASA,KACPsG,IAAc,KAEjB,sJAGDxL,IAAAC,cAACuR,IAAG,CAACnO,SAAU,IACfrD,IAAAC,cAACqF,IAAM,CACLP,UAAWb,EAAQ5B,OACnBsG,SAAUmL,IAAiBnZ,EAAO2M,SAAWgE,GAC7ChG,KAAK,QACLjR,KAAK,SACL2Q,QAAQ,aAEP7R,YAAUoM,EAAM,6CAM3BQ,IAAAC,cAACuR,IAAG,KACFxR,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ0D,gBACN,IAAfkD,GACC9K,IAAAC,cAAA,YAEAD,IAAAC,cAACqF,IAAM,CAACP,UAAWb,EAAQ5B,OAAQ4C,QAASuH,IAAY,kCAIzD3B,KAAeE,GAAM7Y,OAAS,EAC7B6N,IAAAC,cAAA,YAEAD,IAAAC,cAACqF,IAAM,CACLL,QAAQ,YACRhC,MAAM,UACNiC,QAASA,KAjwDZwR,EAAC9b,EAAasZ,EAAsBC,KAiBrD,SAASwC,EAAgBjK,EAAwBwH,GAC/C,IAAI0C,GAAU,EACd,MAAMC,EAAmB,GAqCzB,OApCApkB,KAAEqkB,QAAQlN,GAAqB8C,GAAiB,CAACrQ,EAAcjC,KAC7D,GAAuB,IAAnBsS,GAAqC,QAAbvB,IAAgC,IAAV/Q,EAChD,OAEF,GAAuB,IAAnBsS,GAAqC,QAAbvB,KAAiC,IAAV/Q,GAAyB,IAAVA,GAChE,OAEF,MAAM0R,EAAQrZ,KAAEmE,IAAIgE,EAAQyB,EAAM,IAC5B0a,EAAQtkB,KAAEC,QAAQoZ,GACxB,GAAuB,IAAnBY,GAAkC,IAAVtS,EAAa,CAClB0R,EAAMkL,MACzB,6JAGAvkB,KAAEwkB,IAAIJ,EAAaxa,EAAMjJ,YAAUoM,EAAM,iCAAkC,aACvE2U,GACFA,EAAgB9X,GAEbua,IACHA,GAAU,IAIZG,IACFtkB,KAAEwkB,IAAIJ,EAAaxa,EAAMjJ,YAAUoM,EAAM,iCAAkC,aACvE2U,GACFA,EAAgB9X,KAGfua,GAAWG,IACdH,EAAUG,KAGV7C,GACFA,EAAU2C,IAEW,IAAnBnK,GAA4D,IAApCxM,OAAOgX,KAAKL,GAAa1kB,SAAgBqE,QAAQqgB,EAAYtP,UAGlFqP,EAlDP7L,GARiB,IAAfD,IAAqBO,GAQTqB,GACRiK,EAAgBjK,EAAgBwH,GAC3BxH,EAEFA,EAAiB,EAXZA,GACRiK,EAAgBjK,EAAgBwH,GAC3BxH,EAEFA,EAAiB,IA4vDNgK,CAAW9b,EAAQsZ,IAErBnP,UAAWb,EAAQ5B,QAElB,yCAIPtC,IAAAC,cAACuR,IAAG,CAACC,GAAI,GACPzR,IAAAC,cAACkF,IAAU,CAACF,QAAQ,QAAQhC,MAAM,iBAAgB,gMAU/D5Q,EAAMoY,mBAAqBpY,EAAMoY,iBAAiBiH,SACjD1R,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQwE,cACtB1I,IAAAC,cAACqF,IAAM,CAACL,QAAQ,WAAWF,UAAWb,EAAQ5B,OAAQ4C,QAlmDxC/Q,UACpB,GAAImW,EAAO,CACTE,GAAS,IACJnY,EACHmJ,OAAQ,YAEV,MACM2b,EAAO,CACXC,KAAM,CAAC,SAAU,uBAFKhjB,IAAYijB,eAEY,GAAI,IAClD7b,OAAQ,UACR8b,OAAQ,+BAEVrN,EAAG+B,QAASmL,KAAKpf,KAAKC,UAAUmf,SAEhCpL,OAqlDM/L,IAAAC,cAACsX,IAAgB,CACfjkB,GAAG,qDACHC,eAAe,yBAMvByM,IAAAC,cAACuX,IAAM,CAAC9M,KAAMA,GAAM+M,QAAS/I,IAC3B1O,IAAAC,cAACyX,IAAW,KACV1X,IAAAC,cAAA,QAAM8E,UAAWb,EAAQ4E,YACtB1V,YAAUoM,EAAM,iDAAkD,oBAGvEQ,IAAAC,cAAC0X,IAAa,KACZ3X,IAAAC,cAACkF,IAAU,CAAClC,MAAM,cAAcgC,QAAQ,MACtCjF,IAAAC,cAACsX,IAAgB,CACfjkB,GAAG,uDACHC,eAAe,oBAGnByM,IAAAC,cAAC+E,IAAI,CACHD,UAAWb,EAAQtB,KACnBqC,QAAQ,KACRW,OAAO,SACPgS,IAAI,aACJ1C,KAAK,0CAELlV,IAAAC,cAACsX,IAAgB,CAACjkB,GAAG,2CAA2CC,eAAe,WAGnFyM,IAAAC,cAAC4X,IAAa,KACZ7X,IAAAC,cAACqF,IAAM,CAACJ,QAASwJ,GAAa3J,UAAWb,EAAQ5B,QAC/CtC,IAAAC,cAACsX,IAAgB,CAACjkB,GAAG,0CAA0CC,eAAe,kB,gCC7rE1F,scAIO,MAAMukB,EAAkB,kBAClBC,EAAkB,kBAClBC,EAAkB,kBAClBC,EAAiB,iBACjBC,EAAW,WACXC,EAAkB,kBAClBC,EAAwB,wBAE9B,SAASziB,EAAMQ,EAAeN,EAAkBC,GACrD,OAAO3B,UACL,IACEpB,EAAS,CAAEuB,KAAMwjB,IACjB,MAAMO,QAA4BjkB,IAAYuB,MAAMQ,EAAON,EAAUC,GAC/DwiB,QAAmBlkB,IAAYuC,iBAErC5D,EAAS,CACPuB,KAAMyjB,EACN7jB,KAAM,CACJokB,KAAM,IACDA,EACHD,iBAIN,MAAOljB,GAEP,MADApC,EAAS,CAAEuB,KAAM0jB,IACX7iB,IAKL,SAASojB,EAAYD,GAC1B,OAAQvlB,GAAuBA,EAAS,CACtCuB,KAAM2jB,EACN/jB,KAAM,CACJokB,KAAM,IACDA,MAMJ,SAAS9gB,IACd,OAAOrD,UACLC,IAAYoD,SACZzE,EAAS,CACPuB,KAAM4jB,KAKL,SAASpf,EAAYC,GAC1B,OAAO5E,UACL,IACE,MAAMmI,QAAoBlI,IAAY0E,YAAYC,SAC5ChG,EAAS,CACbuB,KAAM8jB,EACNlkB,KAAM,CACJoI,SAGJ,MAAOnH,GACP,MAAMA,IAKL,SAAS8D,IACd,OAAO9E,UACL,UACQC,IAAY6E,oBACZlG,EAAS,CACbuB,KAAM8jB,EACNlkB,KAAM,CACJoI,IAAK,MAGT,MAAOnH,GACP,MAAMA,IAKL,SAASyD,EAAOC,EAAcJ,EAAgBtC,EAAewC,GAClE,OAAOxE,UACL,IACE,MAAMkkB,QAA4BjkB,IAAYwE,OAAOC,EAAMJ,EAAQtC,EAAOwC,SAClE5F,EAAS,CACbuB,KAAM6jB,EACNjkB,KAAM,CACJmkB,gBAGN,MAAOljB,GAEP,MAAMA,M,gCCpGZ,oDA0WA,MAAMf,EAAc,IAjWpB,MAAkBK,cAAA,IAAAC,EAAA,UAChBC,qBAAuBC,IAA2C,IAA1C,SAAEC,GAAkCD,EAC1DE,IAAMC,aAAaC,SAASC,IAC1BD,IAIE1C,IAAMS,SAASmC,aAAc,IAEtBF,GAETb,UAIE,GAHA7B,IAAMS,SAASmC,aAAc,IAGzBC,EAAMH,UAAsC,MAA1BG,EAAMH,SAASI,OACnC,UACQC,KAAKC,mBACX,MAAOd,GACPa,KAAKE,WAAW,MAEZV,GACFA,IAKN,OAAOW,QAAQC,OAAON,EAAMH,YAGhCF,IAAMC,aAAaW,QAAQT,IACzBD,IACE1C,IAAMS,SAASmC,aAAc,IAGtBF,GAETG,IACE7C,IAAMS,SAASmC,aAAc,IAGtBM,QAAQC,OAAON,MAG1B,KAcFQ,MAAQ,SAACC,EAAsBC,GAAgB,IAAEC,EAAmB5D,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAAQ,OAC1E,IAAIsD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,kBAAkB,CAAEC,MAAOP,EAAcC,aACpDO,KAAKpB,IACAA,EAASd,MACXQ,EAAKa,WACHP,EAASd,KAAKmC,aACdrB,EAASd,KAAKoC,WACdR,EACAF,EACAZ,EAASd,KAAKqC,eAEhBR,EAAQS,QAAQxB,EAASd,KAAKuC,eAE9BhB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,QAEX,KAEJwB,eAAiB,IACf,IAAInB,QAAc,CAACO,EAASN,KAC1BX,IACG8B,IAAI,GAADX,OAAIC,IAAG,aACVE,KAAKpB,IACJ,GAAIA,EAASd,KAAM,CACjB,MAAMA,EAAOc,EAASd,KACtB6B,EAAQ7B,QAERuB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELG,iBAAmB,IACjB,IAAIE,QAAiB,CAACO,EAASN,KAC7B,MAAM0B,EAA8B9B,KAAK+B,kBACnCC,EAA6BhC,KAAKiC,iBAClCnB,EAAQW,aAAaS,QAAQ,SAC/BJ,GAAgBE,GAAelB,EACjCrB,IACGkB,KAAK,GAADC,OAAIC,IAAG,kBAAkB,CAAEC,QAAOgB,iBACtCf,KAAKpB,IACJ,GAAIA,EAASd,KAAM,CACjB,MAAM4B,EAAaU,QAAQM,aAAaS,QAAQ,iBAAkB,EAClElC,KAAKE,WACHP,EAASd,KAAKmC,aACdrB,EAASd,KAAKoC,WACdR,EACAK,EACAnB,EAASd,KAAKqC,eAEhBR,EAAQS,QAAQxB,EAASd,KAAKuC,mBAE9BhB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,KAGXM,MAED,KAEL6B,eAAiB,IAAMR,aAAaS,QAAQ,eAAe,KAC3DH,gBAAkB,IAAMN,aAAaS,QAAQ,gBAAgB,KAE7DW,aAAgBb,IACd,IAAKA,EACH,OAAO,EAGT,MAAM,IAAEc,GAAQC,IAAUf,GAG1B,OAAOc,EAFaE,KAAKC,MAAQ,KAGjC,KAEFC,gBAAkB,MAAQlD,KAAKiC,iBAAiB,KAEhDE,OAAS,KACPnC,KAAKE,WAAW,OAChB,KAEF8hB,aAAe,IACb,IAAI7hB,QAAgB,CAACO,EAASN,KAC5BX,IACG8B,IAAI,GAADX,OAAIC,IAAG,0BACVE,KAAKpB,IACAA,EAASd,KACX6B,EAAQf,EAASd,KAAKskB,KAEtB/iB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL2X,kBAAqB0L,GACnB,IAAIhjB,QAAa,CAACO,EAASN,KACzBX,IACGkB,KAAK,GAADC,OAAIC,IAAG,2BAA2B,CAAEsiB,QACxCpiB,KAAKpB,IACAA,EAASd,KACX6B,EAAQf,EAASd,MAEjBuB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELI,WAAa,CACX8B,EACAI,EACA3B,EACAK,EACAgB,KAEIE,GAAeF,GAAgBhB,GACjCW,aAAaC,QAAQ,cAAc,GAADd,OAAKwB,EAAS,KAAAxB,OAAIoB,IACpDP,aAAaC,QAAQ,eAAgBI,GACrCL,aAAaC,QAAQ,QAASZ,GAC9BrB,IAAM4C,SAASC,QAAQC,OAAOC,cAAa,GAAA5B,OAAMwB,EAAS,KAAAxB,OAAIoB,GAC1DvB,EACFgB,aAAaC,QAAQ,aAAcgB,KAAKC,UAAUlC,IAElDgB,aAAamB,WAAW,gBAG1BnB,aAAamB,WAAW,eACxBnB,aAAamB,WAAW,gBACxBnB,aAAamB,WAAW,kBACjBnD,IAAM4C,SAASC,QAAQC,OAAOC,gBAEvC,KAEFW,iBAAmB,CAACC,EAAgBtC,EAAeuC,EAAeC,IAChE,IAAInD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,uBAAAD,OAAsB0C,GAAU,CAC1CF,SACAtC,QACAuC,UAEDtC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELoE,cAAgB,eAACpD,EAAoBjE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAMwG,EAAoBxG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAMyG,EAAczG,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAAA,OACvF,IAAIoD,QAAa,CAACO,EAASN,KACzBX,IACGkB,KAAK,GAADC,OAAIC,IAAG,6BAA6B,CACvCC,MAAkB,UAAXwC,EAAqBxC,EAAQ,KACpCuC,MAAkB,UAAXC,EAAqBD,EAAQ,OAErCtC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,EAAQf,EAASd,MAEjBuB,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,QAEX,KAEJqE,qBAAuB,CAAC3D,EAAkB4C,EAAgBI,IACxD,IAAIrD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,qCAAqC,CAC/CL,WACA4C,SACAI,SAEDzC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELyD,OAAS,CAACC,EAAcJ,EAAgBtC,EAAewC,IACrD,IAAInD,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,mBAAAD,OAAkB0C,GAAU,CACtCE,OACA1C,QACAsC,WAEDrC,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAELoe,aAAgB9I,GACd,IAAIjV,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,qBAAqBuU,GAChCrU,KAAKpB,IACAA,EAASd,KACX6B,EAAQS,SAAQ,IAEhBf,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL2D,YAAeC,GACb,IAAIvD,QAAgB,CAACO,EAASN,KAC5BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,wBAAwB6C,GACnC3C,KAAKpB,IACAA,EAASd,KACX6B,EAAQf,EAASd,KAAK8E,UAEtBvD,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL8D,YAAc,IACZ,IAAIzD,QAAiB,CAACO,EAASN,KAC7BX,IACGoE,OAAO,GAADjD,OAAIC,IAAG,yBACbE,KAAKpB,IACAA,EAASd,KACX6B,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OAEV,KAEL6B,eAAiB,CAACC,EAAyBC,IACzC,IAAI1B,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,2BAA2B,CACrCe,kBACAC,gBAEDd,KAAKpB,IACoB,MAApBA,EAASI,OACXW,GAAQ,GAERN,EAAOT,EAASd,KAAKiB,SAGxBuB,MAAMvB,IACLM,EAAON,OA9SfsE,uBACE,MAAMpC,EAAchC,KAAKiC,iBAEpBD,IAIAhC,KAAK6C,aAAab,IACrBhC,KAAKE,WAAW,SA6SPnB,O,iCC5Wf,oHAcA,MAAMqN,EAAYC,YAAYC,IAAK,CAC/BC,KAAM,CACF6W,UAAW,WA8EJ3U,iBAlEf,SAAsBlP,GAAuG,IAAtG,UAACmQ,EAAS,KAAE2F,EAAI,QAAEyD,EAAO,mBAAEyD,KAAuBpS,GAAiD5K,EACtH,MAAMsP,EAAUzC,IAGhB,OACQzB,IAAAC,cAACuX,IAAM,CACHkB,SAAS,KACTjB,QAAS7F,EACTlH,KAAMA,GAEN1K,IAAAC,cAAA,MAAAC,OAAAC,OAAA,CACI4E,UAAW2E,YAAKxF,EAAQtC,KAAMmD,IAC1BvF,GAEJQ,IAAAC,cAAC0U,IAAK,KACF3U,IAAAC,cAAC2U,IAAS,KACN5U,IAAAC,cAAC4U,IAAQ,KACL7U,IAAAC,cAAC6U,IAAS,KAAC,yFAGX9U,IAAAC,cAAC6U,IAAS,KAAC,wCAGX9U,IAAAC,cAAC6U,IAAS,KAAC,sDAKnB9U,IAAAC,cAAC8U,IAAS,KACL5G,EAAQ8D,IAAI,CAACpG,EAAWzR,IAEjB4F,IAAAC,cAAC4U,IAAQ,CAAC1C,IAAK/X,GACX4F,IAAAC,cAAC6U,IAAS,KACLjJ,EAAK8M,QAEV3Y,IAAAC,cAAC6U,IAAS,KACLjJ,EAAKzW,QAEV4K,IAAAC,cAAC6U,IAAS,KACLjJ,EAAKoC,WAQ9BjO,IAAAC,cAACuR,IAAG,CACAC,GAAI,EACJmH,EAAG,GAEH5Y,IAAAC,cAACqF,IAAM,CACHL,QAAQ,YACRoP,WAAS,EACTpR,MAAM,UACNiC,QAAS0M,GACZ,qD,2loMC5DzB,MAAMiH,EAAsB,CAC1BP,KAAM,MA+EOQ,MA5EQ,WAA2C,IAA1CzmB,EAAKH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2mB,EAAcE,EAAc7mB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAC1D,OAAQ2mB,EAAOzkB,MACb,KAAKb,IACH,OAAOulB,YAAQ3mB,EAAQ4mB,IAErBA,EAAMX,KAAO,OAIjB,KAAK5kB,IAAe,CAClB,MAAM,KAAE4kB,GAASS,EAAOxkB,QAExB,OAAOykB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAOA,IAIjB,KAAKvkB,IAAe,CAClB,MAAM,WAAEskB,GAAeU,EAAOxkB,QAE9B,OAAOykB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,IACRW,EAAMX,KACTD,gBAKN,KAAKrkB,IAAqB,CACxB,MAAM,IAAEsI,GAAQyc,EAAOxkB,QAEvB,OAAOykB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,IACRW,EAAMX,KACTtf,SAAUsD,KAKhB,KAAK3I,IACH,OAAOqlB,YAAQ3mB,EAAO,QAKxB,KAAKwB,IACH,OAAOmlB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,OAIjB,KAAK1kB,IAAc,CACjB,MAAM,KAAE0kB,GAASS,EAAOxkB,QAExB,OAAOykB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAOA,IAIjB,KAAKxkB,IAAgB,CACnB,MAAMwkB,EAAOS,EAAOxkB,QAAQL,KAE5B,OAAO8kB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,IACRW,EAAMX,QACNA,KAKT,QACE,OAAOjmB,I,QC7Eb,MAAMwmB,EAAsB,CAC1BP,KAAM,MAmEOY,MAhEU,WAA2C,IAA1C7mB,EAAKH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2mB,EAAcE,EAAc7mB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAC5D,OAAQ2mB,EAAOzkB,MACb,KAAKwjB,IACH,OAAOkB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,OAIjB,KAAKP,IAAiB,CACpB,MAAM,KAAEO,GAASS,EAAO7kB,KAExB,OAAO8kB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAOA,IAIjB,KAAKH,IAAiB,CACpB,MAAM,WAAEE,GAAeU,EAAO7kB,KAE9B,OAAO8kB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,IACRW,EAAMX,KACTD,gBAKN,KAAKL,IACH,OAAOgB,YAAQ3mB,EAAO,QAKxB,KAAK6lB,IACH,OAAOc,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,OAIjB,KAAKL,IAAgB,CACnB,MAAM,KAAEK,GAASS,EAAO7kB,KAExB,OAAO8kB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAOA,IAIjB,KAAKF,IAAuB,CAC1B,MAAM,IAAE9b,GAAQyc,EAAO7kB,KAEvB,OAAO8kB,YAAQ3mB,EAAQ4mB,IACrBA,EAAMX,KAAO,IACRW,EAAMX,KACTtf,SAAUsD,KAKhB,QACE,OAAOjK,I,QC/Db,MAAMwmB,EAAsB,CAC1B5X,YAAY,EACZkY,gBAAiB,EACjBC,mBAAoB,GACpB/X,cAAe,GACfG,cAAe,IAiDF6X,MA9CM,WAA2C,IAA1ChnB,EAAKH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2mB,EAAcE,EAAc7mB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EACxD,OAAQ2mB,EAAOzkB,MACb,KAAKsM,IAAgB,CACnB,MAAM,WAAEK,GAAe8X,EAAOxkB,QAE9B,OAAOykB,YAAQ3mB,EAAO4mB,IACpBA,EAAMhY,WAAaA,IAIvB,KAAKJ,IACH,OAAOmY,YAAQ3mB,EAAO4mB,IACpBA,EAAME,gBAAkBF,EAAME,gBAAkB,IAIpD,KAAKrY,IAAiB,CACpB,MAAM,mBAAEsY,GAAuBL,EAAOxkB,QAEtC,OAAOykB,YAAQ3mB,EAAO4mB,IACpBA,EAAMG,mBAAqBA,IAI/B,KAAKrY,IAAoB,CACvB,MAAM,cAAEM,GAAkB0X,EAAOxkB,QAEjC,OAAOykB,YAAQ3mB,EAAO4mB,IACpBA,EAAM5X,cAAgBA,IAI1B,KAAKL,IAAoB,CACvB,MAAM,cAAEQ,GAAkBuX,EAAOxkB,QAEjC,OAAOykB,YAAQ3mB,EAAO4mB,IACpBA,EAAMzX,cAAgB,IAAKyX,EAAMzX,iBAAkBA,KAIvD,QACE,OAAOnP,I,kCC9Cb,MAAMwmB,EAAsB,CACxBS,QAAS,IA2EEC,MAxEO,WAA2C,IAA1ClnB,EAAKH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2mB,EAAcE,EAAc7mB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EACvD,OAAQ2mB,EAAOzkB,MACX,KAAKklB,IACD,OAAOR,YAAQ3mB,EAAQ4mB,IACnBA,EAAMK,QAAU,KAIxB,KAAKG,IAAa,CACd,MAAM,QAAEH,GAAYP,EAAO7kB,KAE3B,OAAO8kB,YAAQ3mB,EAAQ4mB,IACnBA,EAAMK,QAAUA,IAIxB,KAAKI,IAAe,CAChB,MAAM,OAAEC,EAAM,MAAEvf,GAAU2e,EAAO7kB,KAEjC,OAAO8kB,YAAQ3mB,EAAQ4mB,IACnB,GAAIU,QAAoBvnB,IAAVgI,EAAqB,CAC/B,MAAMwf,EAAcnnB,IAAEonB,QAAQZ,EAAMK,QAAS,CAAC,SAAU,OACxDM,EAAYxf,GAASuf,EACrBV,EAAMK,QAAUM,KAK5B,KAAKE,IAAe,CAChB,MAAM,OAAEH,GAAWZ,EAAO7kB,KAE1B,OAAO8kB,YAAQ3mB,EAAQ4mB,IACfU,IACAV,EAAMK,QAAU,IAAIL,EAAMK,QAASK,MAK/C,KAAKI,IACD,OAAOf,YAAQ3mB,EAAQ4mB,IACnB,MAAMW,EAAcnnB,IAAEonB,QAAQZ,EAAMK,QAAS,CAAC,SAAU,OAClDU,EAAYJ,EAAYhO,KAAMqO,GAAMlB,EAAO7kB,KAAKgmB,YAAcD,EAAG3mB,IACjE6mB,EAASP,EAAYhO,KAAMqO,GAAMlB,EAAO7kB,KAAKkmB,SAAWH,EAAG3mB,IACjE,GAAI0mB,GAAaG,EAAQ,CACrB,MAAME,EAAiBL,EAAUM,MAEjCN,EAAUM,MAAQH,EAAOG,MACzBH,EAAOG,MAAQD,EAGnBpB,EAAMK,QAAUM,IAIxB,KAAKW,IACD,OAAOvB,YAAQ3mB,EAAQ4mB,IACnB,MAAM,QAAEK,GAAYP,EAAO7kB,KAC3B+kB,EAAMK,QAAUL,EAAMK,QAAQkB,OAAQb,IAC9BL,EAAQmB,SAASd,EAAOvV,QAQxC,QACI,OAAO/R,IChFnB,MAAMwmB,EAAsB,CACxB6B,OAAQ,IAyBGnB,MAtBO,WAA2C,IAA1ClnB,EAAKH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2mB,EAAcE,EAAc7mB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EACvD,OAAQ2mB,EAAOzkB,MACX,ICpBoB,eDqBhB,OAAO0kB,YAAQ3mB,EAAQ4mB,IACnBA,EAAMyB,OAAS,KAIvB,ICzBkB,aDyBD,CACb,MAAM,YAAEC,GAAgB5B,EAAO7kB,KAE/B,OAAO8kB,YAAQ3mB,EAAQ4mB,IACnBA,EAAMyB,OAASC,IAIvB,QACI,OAAOtoB,I,SEbnB,MAAMwmB,EAAsB,CACxB5e,gBAAiB,IAuEN2gB,MApEe,WAA2C,IAA1CvoB,EAAKH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG2mB,EAAcE,EAAc7mB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAC/D,OAAQ2mB,EAAOzkB,MACX,KAAKoF,IACD,OAAOsf,YAAQ3mB,EAAQ4mB,IACnBA,EAAMhf,gBAAkB,KAIhC,KAAKN,IAAsB,CACvB,MAAM,gBAAEM,GAAoB8e,EAAO7kB,KAEnC,OAAO8kB,YAAQ3mB,EAAQ4mB,IACnBA,EAAMhf,gBAAkBA,IAIhC,KAAKL,IAAwB,CACzB,MAAM,eAAEO,EAAc,MAAEC,GAAU2e,EAAO7kB,KAEzC,OAAO8kB,YAAQ3mB,EAAQ4mB,IACnB,GAAI9e,QAA4B/H,IAAVgI,EAAqB,CACvC,MAAMwf,EAAcnnB,IAAEonB,QAAQZ,EAAMhf,gBAAiB,CAAC,SAAU,OAChE2f,EAAYxf,GAASD,EACrB8e,EAAMhf,gBAAkB2f,KAKpC,KAAK/f,IAAwB,CACzB,MAAM,eAAEM,GAAmB4e,EAAO7kB,KAElC,OAAO8kB,YAAQ3mB,EAAQ4mB,IACf9e,IACA8e,EAAMhf,gBAAkB,IAAIgf,EAAMhf,gBAAiBE,MAK/D,KAAKL,IACD,OAAOkf,YAAQ3mB,EAAQ4mB,IACnB,MAAMW,EAAcnnB,IAAEonB,QAAQZ,EAAMhf,gBAAiB,CAAC,SAAU,OAC1D+f,EAAYJ,EAAYb,EAAO7kB,KAAKkG,OACpC+f,EAASP,EAAYb,EAAO7kB,KAAKkG,MAAQ2e,EAAO7kB,KAAKoG,UAC3D0f,EAAUM,MAAQH,EAAOG,MACzBH,EAAOG,MAAQvB,EAAO7kB,KAAKkG,MAE3B6e,EAAMhf,gBAAkB2f,IAIhC,KAAK7f,IACD,OAAOif,YAAQ3mB,EAAQ4mB,IACnB,MAAM,gBAAEhf,GAAoB8e,EAAO7kB,KACnC+kB,EAAMhf,gBAAkBgf,EAAMhf,gBAAgBugB,OAAQK,IAC9C5gB,EAAgBwgB,SAASI,EAASzW,QAQlD,QACI,OAAO/R,ICtEJyoB,MAXKC,0BAAgB,CAClCC,QAASlC,EACTmC,KAAMC,IACNvoB,KAAMwoB,cACNC,MAAO/B,EACPgC,cAAenC,EACfoC,WAAY/B,EACZmB,OAAQa,EACRphB,eAAgBygB,I,gBCmBlB,MAAMtoB,EAnBC,WAA8C,IAAtBkpB,EAActpB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC9C,MAAMupB,EAAc,CAACC,KAMfC,EAAqBC,8BACzBC,6BAAmBJ,IAGfK,EAAY,CAACH,GACbI,EAAoBC,qBAAWF,GAE/BxpB,EAAQ2pB,sBAAYnB,EAAaU,EAAgBO,GAEvD,OAAOzpB,EAGK4pB,CA1BO,CACnBvpB,KAAM,CACJG,OAAQtB,IAAMG,GACdiB,SAAUK,YAAYzB,IAAMG,Q,qECdhC,wDAEA,MAAMwqB,EAAWrnB,IAAMsnB,SAEVtkB,EAA6BhD,IAAMsnB,SAEjCD,O,qDCNf,kCAAO,MA0BMjmB,EA1BW,CACtBmmB,QAAS,OACTC,YAAa,8DACbC,aAAc,+DAEdC,aAAc,+DACdC,cAAe,gEAEfC,aAAc,wCACdC,cAAe,gCAEfC,gBAAiB,gDACjBC,iBAAkB,kDAWR7d,mHAAY8d,mBAAqB,Y,waCiE9BC,MAFW,IA/E1B,MAAwBtoB,cAAA,KAEpBuoB,cAAgB,IAAM,IAAIxnB,QAAa,CAACO,EAASN,KAC7CX,IAAM8B,IAAI,GAADX,OAAKC,IAAG,qBACZE,KAAMpB,IACCA,EAASd,MACT6B,EAAQf,EAASd,QAGxBwC,MAAOvB,IACJM,EAAON,OAEhB,KAEH8nB,aAAgBC,GAA2B,IAAI1nB,QAAgB,CAACO,EAASN,KACrEX,IAAMkB,KAAK,GAADC,OAAKC,IAAG,eAAgBgnB,GAC7B9mB,KAAMpB,IACCA,EAASd,MACT6B,EAAQf,EAASd,KAAKZ,MAG7BoD,MAAOvB,IACJM,EAAON,OAEhB,KAEHgoB,kBAAoB,CAAC3gB,EAAkB4gB,IAAwB,IAAI5nB,QAAgB,CAACO,EAASN,KACzFX,IAAMkB,KAAK,GAADC,OAAKC,IAAG,0BAA2B,CACzCsG,WACA4gB,cACDhnB,KAAMpB,IACGA,EAASd,MACT6B,EAAQf,EAASd,KAAKZ,MAG7BoD,MAAOvB,IACJM,EAAON,OAEhB,KAEHkoB,YAAc,CAACC,EAAuBC,IAA0B,IAAI/nB,QAAgB,CAACO,EAASN,KAC1FX,IAAMkB,KAAK,GAADC,OAAKC,IAAG,oBAAqB,CACnConB,gBACAC,kBACDnnB,KAAMpB,IACGA,EAASd,MACT6B,EAAQf,EAASd,KAAKZ,MAG7BoD,MAAOvB,IACJM,EAAON,OAEhB,KAEHqoB,aAAgBN,GAA2B,IAAI1nB,QAAiB,CAACO,EAASN,KACtEX,IAAM+B,IAAI,GAADZ,OAAKC,IAAG,gBAAAD,OAAgBinB,EAAW5pB,IAAM4pB,GAC7C9mB,KAAMpB,IACCA,EAASd,MACT6B,GAAQ,KAGfW,MAAOvB,IACJM,EAAON,OAEhB,KAEHsoB,aAAgBnqB,GAAe,IAAIkC,QAAiB,CAACO,EAASN,KAC1DX,IAAMoE,OAAO,GAADjD,OAAKC,IAAG,gBAAAD,OAAgB3C,IAC/B8C,KAAMpB,IACqB,MAApBA,EAASI,QACTW,GAAQ,KAGfW,MAAOvB,IACJM,EAAON,SC5EhB,MAAMqkB,EAAqB,qBACrBC,EAAc,cACdC,EAAgB,gBAChBI,EAAgB,gBAChBC,EAAe,eACfQ,EAAiB,iBAEvB,SAASyC,IACZ,OAAO7oB,UACH,IACIpB,EAAS,CAAEuB,KAAMklB,IACjB,MAAM8B,QAAiCyB,EAAkBC,gBAEzDjqB,EAAS,CACLuB,KAAMmlB,EACNvlB,KAAM,CACFolB,QAASgC,KAGnB,MAAOnmB,GAEL,MADApC,EAAS,CAAEuB,KAAMklB,IACXrkB,IAKX,SAASqoB,EAAa7D,EAAoBvf,GAC7C,OAAOjG,UACH,UACU4oB,EAAkBS,aAAa7D,SAC/B5mB,EAAS,CACXuB,KAAMolB,EACNxlB,KAAM,CACFylB,SACAvf,WAGV,MAAOjF,GACL,MAAMA,IAKX,SAASkoB,EAAYnD,EAAmBE,GAC3C,OAAOjmB,UACH,IACIpB,EAAS,CACLuB,KAAMylB,EACN7lB,KAAM,CACFgmB,YACAE,kBAGF2C,EAAkBM,YAAYnD,EAAWE,GACjD,MAAOjlB,GACL,MAAMA,IAKX,SAASuoB,EAAgB/D,GAC5B,OAAOxlB,UACH,IACI,MAAMb,QAAWypB,EAAkBE,aAAatD,GAChDA,EAAOrmB,GAAKA,QAAMlB,QACZW,EAAS,CACXuB,KAAMwlB,EACN5lB,KAAM,CACFylB,YAGV,MAAOxkB,GACL,MAAMA,IAKX,SAASwoB,EAAcrE,GAC1B,OAAOnlB,UACH,UACU4oB,EAAkBU,aAAanE,EAAQ,UACvCvmB,EAAS,CACXuB,KAAMimB,EACNrmB,KAAM,CACFolB,aAGV,MAAOnkB,GACL,MAAMA,M,4HCgGlByoB,IAAMC,QAAQC,OAAOF,IAAMG,SAASC,UAAUC,UAAW,CACvDC,KAzLF,WACE,MAAM,IAAEC,GAAQ9oB,KAAK+oB,OACfC,EAAKhpB,KAAKipB,MAChB,IAEIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GATA,YAAEC,GAAgBV,GAalB,aAAEW,GAAiB3pB,KAAK+oB,OAAOa,OAAOC,QA+B1C,GA9BIF,EAAe,IACjBA,EAAe,GAGW,qBAAjBA,IACTA,EAAe,GAGZX,EAAGc,YAWNZ,EAAOF,EAAGe,KACVZ,EAAQH,EAAGgB,EACXZ,EAAMJ,EAAGiB,EAAIjB,EAAG9b,OAAS,EACzBmc,EAASL,EAAGiB,EAAIjB,EAAG9b,OAAS,EAC5Boc,EAAQH,EAAQD,EAAO,GAAK,EAC5BK,EAAQ,EACRC,EAAgBR,EAAGQ,eAAiB,SAfpCN,EAAOF,EAAGgB,EAAIhB,EAAGzX,MAAQ,EACzB4X,EAAQH,EAAGgB,EAAIhB,EAAGzX,MAAQ,EAC1B6X,EAAMJ,EAAGiB,EACTZ,EAASL,EAAGe,KACZT,EAAQ,EACRC,EAAQF,EAASD,EAAM,GAAK,EAC5BI,EAAgBR,EAAGQ,eAAiB,UAclCE,EAAa,CAEf,MAAMQ,EAAUC,KAAK3M,IAAI2M,KAAKC,IAAIlB,EAAOC,GAAQgB,KAAKC,IAAIhB,EAAMC,IAChEK,EAAcA,EAAcQ,EAAUA,EAAUR,EAChD,MAAMW,EAAaX,EAAc,EAE3BY,EAAapB,GAA0B,SAAlBM,EAA2Ba,EAAaf,EAAQ,GACrEiB,EAAcpB,GAA2B,UAAlBK,GAA6Ba,EAAaf,EAAQ,GACzEkB,EAAYpB,GAAyB,QAAlBI,EAA0Ba,EAAad,EAAQ,GAClE1X,EAAewX,GAA4B,WAAlBG,GAA8Ba,EAAad,EAAQ,GAE9Ee,IAAeC,IACjBnB,EAAMoB,EACNnB,EAASxX,GAGP2Y,IAAc3Y,IAChBqX,EAAOoB,EACPnB,EAAQoB,GAIZzB,EAAI2B,YACJ3B,EAAI4B,UAAY1B,EAAGlb,gBACnBgb,EAAI6B,YAAc3B,EAAG4B,YACrB9B,EAAI+B,UAAYnB,EAKhB,MAAMoB,EAAU,CAAC,CAAC5B,EAAMG,GAAS,CAACH,EAAME,GAAM,CAACD,EAAOC,GAAM,CAACD,EAAOE,IAIpE,IAAI0B,EADY,CAAC,SAAU,OAAQ,MAAO,SAChBC,QAAQxB,EAAe,GAKjD,SAASyB,EAASlmB,GAChB,OAAO+lB,GAASC,EAAchmB,GAAS,IALpB,IAAjBgmB,IACFA,EAAc,GAQhB,IAAIG,EAASD,EAAS,GACtBnC,EAAIqC,OAAOD,EAAO,GAAIA,EAAO,IAE7B,IAAK,IAAIE,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7BF,EAASD,EAASG,GAClB,IAAIC,EAAeD,EAAI,EACF,IAAjBC,IACFA,EAAe,GAGjB,MAAM9Z,EAAQuZ,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GACnC5d,EAAS4d,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GACpCd,EAAIc,EAAQ,GAAG,GACfb,EAAIa,EAAQ,GAAG,GAWrB,GATArB,EAASE,EAELF,EAASU,KAAKC,IAAIld,GAAU,IAC9Buc,EAASU,KAAKmB,MAAMnB,KAAKC,IAAIld,GAAU,IAErCuc,EAASU,KAAKC,IAAI7Y,GAAS,IAC7BkY,EAASU,KAAKmB,MAAMnB,KAAKC,IAAI7Y,GAAS,IAGpCrE,EAAS,EAAG,CAEd,MAAMqe,EAAMvB,EACNwB,EAAMxB,EAAIzY,EACVka,EAAMxB,EAAI/c,EACVwe,EAAMzB,EAAI/c,EAEVye,EAAM3B,EACN4B,EAAM5B,EAAIzY,EACVsa,EAAM5B,EACN6B,EAAM7B,EAGZnB,EAAIqC,OAAOQ,EAAMlC,EAAQoC,GACzB/C,EAAIiD,OAAOH,EAAMnC,EAAQqC,GACzBhD,EAAIkD,iBAAiBJ,EAAKE,EAAKF,EAAKE,EAAMrC,GAC1CX,EAAIiD,OAAOP,EAAKE,EAAMjC,GACtBX,EAAIkD,iBAAiBR,EAAKE,EAAKF,EAAM/B,EAAQiC,GAC7C5C,EAAIiD,OAAOR,EAAM9B,EAAQgC,GACzB3C,EAAIkD,iBAAiBT,EAAKE,EAAKF,EAAKE,EAAMhC,GAC1CX,EAAIiD,OAAOJ,EAAKE,EAAMpC,GACtBX,EAAIkD,iBAAiBL,EAAKE,EAAKF,EAAMlC,EAAQoC,QACxC,GAAIta,EAAQ,EAAG,CAEpB,MAAMga,EAAMvB,EAAIzY,EACVia,EAAMxB,EACNyB,EAAMxB,EACNyB,EAAMzB,EAEN0B,EAAM3B,EAAIzY,EACVqa,EAAM5B,EACN6B,EAAM5B,EAAI/c,EACV4e,EAAM7B,EAAI/c,EAGhB4b,EAAIqC,OAAOQ,EAAMlC,EAAQoC,GACzB/C,EAAIiD,OAAOH,EAAMnC,EAAQqC,GACzBhD,EAAIkD,iBAAiBJ,EAAKE,EAAKF,EAAKE,EAAMrC,GAC1CX,EAAIiD,OAAOP,EAAKE,EAAMjC,GACtBX,EAAIkD,iBAAiBR,EAAKE,EAAKF,EAAM/B,EAAQiC,GAC7C5C,EAAIiD,OAAOR,EAAM9B,EAAQgC,GACzB3C,EAAIkD,iBAAiBT,EAAKE,EAAKF,EAAKE,EAAMhC,GAC1CX,EAAIiD,OAAOJ,EAAKE,EAAMpC,GACtBX,EAAIkD,iBAAiBL,EAAKE,EAAKF,EAAMlC,EAAQoC,QAG7C/C,EAAIqC,OAAOnB,EAAIP,EAAQQ,GACvBnB,EAAIiD,OAAO/B,EAAIzY,EAAQkY,EAAQQ,GAC/BnB,EAAIkD,iBAAiBhC,EAAIzY,EAAO0Y,EAAGD,EAAIzY,EAAO0Y,EAAIR,GAClDX,EAAIiD,OAAO/B,EAAIzY,EAAO0Y,EAAI/c,EAASuc,GACnCX,EAAIkD,iBACFhC,EAAIzY,EACJ0Y,EAAI/c,EACJ8c,EAAIzY,EAAQkY,EACZQ,EAAI/c,GAEN4b,EAAIiD,OAAO/B,EAAIP,EAAQQ,EAAI/c,GAC3B4b,EAAIkD,iBAAiBhC,EAAGC,EAAI/c,EAAQ8c,EAAGC,EAAI/c,EAASuc,GACpDX,EAAIiD,OAAO/B,EAAGC,EAAIR,GAClBX,EAAIkD,iBAAiBhC,EAAGC,EAAGD,EAAIP,EAAQQ,GAI3CnB,EAAImD,OACAvC,GACFZ,EAAIoD,Y,mHC5KY/qB,QACW,cAA7BqI,OAAOY,SAAS+hB,UAEe,UAA7B3iB,OAAOY,SAAS+hB,UAEhB3iB,OAAOY,SAAS+hB,SAASxK,MACvB,2D,6BCFC,SAASyK,EAActuB,GAC5B2D,aAAaC,QAAQ,WAAYgB,KAAKC,UAAU7E,ICTlD,MAAMuuB,EAA4B,CAC9BC,qBAAqB,EACrBhgB,MAAO5F,IAAO6lB,MACdzuB,SAAU,GACVnB,SAAUR,IAAMG,IAGdkwB,EAAkBC,wBAAcJ,GAE/B,SAASK,EAAgBntB,GAIyB,IAHvD,SACEzB,EAAQ,SACRoM,GACkD3K,EACpD,MAAOotB,EAAiBC,GAAsBzd,mBAASrR,GAAYuuB,GASnE,OACE1hB,IAAAC,cAAC4hB,EAAgBK,SAAQ,CACvBpW,MAAO,CACL3Y,SAAU6uB,EACVG,aAXqB,WAA2B,IAA1BC,EAAelwB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC5C,MAAMmwB,EAAiB5vB,IAAE6vB,MAAM,GAAIN,EAAiBI,GAEpDH,EAAmBI,GACnBZ,EAAcY,MAUX9iB,GAOQsiB,Q,oIC3Cf,MAAMU,EAAoBvjB,mHAAYC,4BAyBvBujB,MAvBf,WACE,OACExiB,IAAAC,cAACG,IAAM,KACLJ,IAAAC,cAAA,UACE9L,OAAK,EACLsuB,IAAG,+CAAAxsB,OAAiDssB,KAEtDviB,IAAAC,cAAA,4NAAAhK,OASsBssB,EAAiB,oBCR9BG,MAVf,WACE,MAAMjjB,EAAWC,cAMjB,OAJAK,oBAAU,KACRlB,OAAO8jB,SAAS,EAAG,IAClB,CAACljB,EAASK,WAEN,MCPM,SAAS8iB,IAGtB,OAFgBC,qBAAWhB,G,8BCJtB,MA4BMiB,EAAgB,CAC3B,OACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,+DACA,+DACA,+DACA,+DACA,+DACA,+DACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,iEC3CIC,EAAa,CACjBC,UAAW,MACXC,WCZa,CACbC,GAAI,CACFC,WAAY,IACZtf,SAAU,GACVuf,cAAe,WAEjBC,GAAI,CACFF,WAAY,IACZtf,SAAU,GACVuf,cAAe,WAEjBE,GAAI,CACFH,WAAY,IACZtf,SAAU,GACVuf,cAAe,WAEjBG,GAAI,CACFJ,WAAY,IACZtf,SAAU,GACVuf,cAAe,WAEjBI,GAAI,CACFL,WAAY,IACZtf,SAAU,GACVuf,cAAe,WAEjBK,GAAI,CACFN,WAAY,IACZtf,SAAU,GACVuf,cAAe,WAEjBM,SAAU,CACRP,WAAY,MDnBdQ,UAAW,CACTC,kBAAmB,CACjBhiB,KAAM,CACJS,aAAc,EACdoF,SAAU,WAGdoc,gBAAiB,CACfjiB,KAAM,CACJ2B,SAAU,KAGdugB,QAAS,CACPliB,KAAM,CACJuB,gBAAiB,wBAMnB4gB,EAA6B,CACjC,CACE5lB,KAAMpC,IAAO6lB,MACb+B,UAAW,CACTK,aAAc,CACZniB,MAAO,CACL,iBAAkB,CAChBoiB,QAAS,EACThhB,MAAOihB,IAAOC,SAAS,SAK/BC,QAAS,CACP9vB,KAAM,QACNykB,OAAQ,CACN/P,OAAQkb,IAAOC,SAAS,MAE1B1d,WAAY,CACV4d,QAASH,IAAOtsB,OAAO0sB,MACvBC,KAAM,UACNC,MAAON,IAAOtsB,OAAO0sB,OAEvBG,QAAS,CACPC,KAAMR,IAAOS,OAAO,MAEtBC,UAAW,CACTF,KAAM,WAERG,KAAM,CACJJ,QAASP,IAAOC,SAAS,KACzBS,UAAWV,IAAOC,SAAS,OAG/BW,QDnEuB,CACzB,OACA,iEACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,8DACA,+DACA,+DACA,+DACA,+DACA,+DACA,+DACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,gEACA,kEC4CA,CACE3mB,KAAMpC,IAAOgpB,SACbX,QAAS,CACP9vB,KAAM,OACNykB,OAAQ,CACN/P,OAAQ,4BACRgc,MAAO,4BACPC,SAAU,4BACVrc,SAAU,4BACVsc,mBAAoB,4BACpBC,MAAO,6BAET1e,WAAY,CACV4d,QAAS,UACTE,KAAM,UACNC,MAAO,WAETC,QAAS,CACPC,KAAM,WAERE,UAAW,CACTF,KAAM,WAERG,KAAM,CACJJ,QAAS,UACTG,UAAW,YAGfE,QAAShC,GAEX,CACE3kB,KAAMpC,IAAOqpB,QACbhB,QAAS,CACP9vB,KAAM,OACNykB,OAAQ,CACN/P,OAAQ,4BACRgc,MAAO,4BACPC,SAAU,4BACVrc,SAAU,4BACVsc,mBAAoB,4BACpBC,MAAO,6BAET1e,WAAY,CACV4d,QAAS,UACTE,KAAM,UACNC,MAAO,WAETC,QAAS,CACPC,KAAM,WAERE,UAAW,CACTF,KAAM,WAERG,KAAM,CACJJ,QAAS,UACTG,UAAW,YAGfE,QAAShC,IAIN,SAASuC,IAAsC,IAA1BlyB,EAAkBjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC3CozB,EAAcvB,EAAanY,KAAMjK,GAAUA,EAAMxD,OAAShL,EAASwO,OAElE2jB,IACHnZ,QAAQoZ,KAAK,IAAIC,MAAM,aAADvvB,OAAc9C,EAASwO,MAAK,oBACjD2jB,GAAevB,GAGlB,IAAIpiB,EAAQ8jB,YACVhzB,IAAE6vB,MACA,GACAS,EACAuC,EACA,CAAEtC,UAAW7vB,EAAS6vB,aAQ1B,OAJI7vB,EAASwuB,sBACXhgB,EAAQggB,YAAoBhgB,IAGvBA,E,wCEnJT,MAAMF,EAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJa,WAAY,SACZU,gBAAiB,YACjBrB,QAAS,OACTE,cAAe,SACfO,OAAQ,OACRI,eAAgB,SAChB8V,UAAW,OACXvW,QAASP,EAAM2F,QAAQ,OAwBZoe,MApBf,WACE,MAAMxhB,EAAUzC,IAUhB,OARA1B,oBAAU,KACR4lB,IAAUnP,QAEH,KACLmP,IAAUC,SAEX,IAGD5lB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQtC,MACtB5B,IAAAC,cAACuR,IAAG,CAAC5K,MAAO,KACV5G,IAAAC,cAAC4lB,IAAc,S,4CCfRC,OAXf,SAAczyB,GACZ,OACE2M,IAAAC,cAAA,MAAAC,OAAAC,OAAA,CACE4lB,IAAI,OACJC,MAAO,CAACpf,MAAO,QACf6b,IAAI,gCACApvB,K,iKCEV,MAAMoO,GAAYC,YAAW,MAC3BE,KAAM,GACNqkB,iBAAkB,CAChBhkB,aAAc,EACdwE,WAAY,4CACZvE,QAAS,GACTG,aAAc,iBAEhB6jB,mBAAoB,CAClBpkB,QAAS,OACTW,WAAY,SACZE,eAAgB,SAChBM,MAAO,QAETkjB,UAAW,CACThjB,gBAAiB,QACjBF,MAAO,OACP,UAAW,CACTE,gBAAiB,YAGrBsS,UAAW,CACTnb,SAAU,WACVwH,QAAS,OACTE,cAAe,MACfO,OAAQ,OACRqE,MAAO,QAETiB,QAAS,CACPvN,SAAU,WACViI,OAAQ,OACRqE,MAAO,OACPzD,gBAAiB,QACjBiG,OAAQ,EACRgd,mBAAoB,QAEtB9jB,OAAQ,CACNa,gBAAiB,OACjBF,MAAO,UACP,UAAW,CACTE,gBAAiB,cAGrBkjB,MAAO,CACLC,UAAW,oBAEbxf,KAAM,CACJhF,QAAS,OACTE,cAAe,MACfC,aAAc,IAEhB8E,QAAS,CACPpD,cAAe,OACfV,MAAO,QACP+D,WAAY,0BAEdC,YAAa,CACXC,aAAc,iBACd7E,aAAc,GAEhBkkB,eAAgB,CACdtjB,MAAO,WAILujB,GAAcld,aAAW,CAC7B1H,KAAM,CACJ,sBAAuB,CACrBqB,MAAO,QAET,UAAW,CACTA,MAAO,QAET,8BAA+B,CAC7BwjB,kBAAmB,QAErB,2BAA4B,CAC1B,UAAW,CACTxjB,MAAO,QAET,aAAc,CACZgd,YAAa,QAEf,mBAAoB,CAClBA,YAAa,QAEf,yBAA0B,CACxBA,YAAa,WAtBD3W,CA0BjB8K,MAyIYtQ,qBAlIf,SAAclP,GAAsC,OAAhC4K,GAA6B5K,EAC/C,MAAMsP,EAAUzC,KACV1O,EAAW2zB,yBACVC,EAAYC,GAAiBpiB,mBAAS,iBACvCqiB,EAAUzc,cAoBhB,OACEpK,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ+hB,kBACtBjmB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ4C,MAtBjB,CACX,CAAEgF,MAAO,gBAAiBgb,aAAc,kBACxC,CAAEhb,MAAO,mBAAoBgb,aAAc,sBAqB/B7U,IAAI8U,IACR/mB,WAAAC,cAACqF,KAAM,CACLP,UAAW2E,aAAKxF,EAAQ6C,QAASggB,EAAIjb,QAAU6a,GAAcziB,EAAQ+C,aACrEkL,IAAK4U,EAAIjb,MACT5G,QAASA,KAtBK4G,QAuBKib,EAAIjb,MAtBjC8a,EAAc9a,MAGWkb,EAsBID,EAAIjb,MAtBQgb,EAsBDC,EAAID,aArBrC1zB,aAAUoM,EAAK,kBAADvJ,OAAoB+wB,EAAM,UAAUF,KADjCG,IAACD,EAAgBF,KA0BrB,kBAAfH,GACC3mB,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACkF,KAAU,CAACJ,UAAWb,EAAQgiB,mBAAoBjhB,QAAS,MAC1DjF,IAAAC,cAACinB,KAAiB,MAClBlnB,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,iBAAiBC,eAAe,mBAEvDyM,IAAAC,cAACsS,KAAM,CACLC,cA7BQ,CAClBrc,MAAO,GACPN,SAAU,GACVsxB,OAAQ,IA2BEjU,SAAU/e,MAAOyG,EAAMuY,KAA+C,IAA7C,UAAEC,EAAS,cAAEC,EAAa,UAAEa,GAAWf,EAC9D,UACQpgB,EAAS4C,aAAMiF,EAAOzE,MAAOyE,EAAO/E,UAAU,UAC9C9C,EAASiqB,gBACfjqB,EAASuO,aAAiB,CAAE8lB,aAAa,KACzCP,EAAQQ,KAAK,cACb,MAAOlyB,GACP,MAAMmyB,EAAYnyB,EAAMjB,MAAQiB,EAAMjB,KAAKqzB,QACrCA,EAAUD,EACZl0B,aAAUoM,EAAK,8BAADvJ,OAAgCqxB,IAC9C,uBACJlU,EAAU,CAAE1B,SAAS,IACrBwC,EAAU,CAAEiT,OAAQI,IACpBlU,GAAc,MAIjBK,IAAA,IAAC,OAAEC,EAAM,WAAEC,EAAU,aAAEC,EAAY,aAAEC,EAAY,aAAEC,EAAY,QAAEC,EAAO,OAAEpZ,GAAQ8Y,EAAA,OACjF1T,IAAAC,cAAA,OAAAC,OAAAC,OAAA,CAAMqnB,YAAU,EAACziB,UAAWb,EAAQtC,KAAMsR,SAAUY,GAAkBtU,GACpEQ,IAAAC,cAACumB,GAAW,CACVrxB,MAAOqB,QAAQwd,EAAQ7d,OAASwd,EAAOxd,OACvCke,WAAS,EACT3M,WAAYsM,EAAQ7d,OAASwd,EAAOxd,MACpC+b,MAAOlS,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,6BAA6BC,eAAe,UACxE+gB,OAAO,SACPnW,KAAK,QACLoW,OAAQX,EACRlO,SAAUmO,EACVvf,KAAK,OACLwX,MAAOlR,EAAOzE,MACd8O,QAAQ,aAEVjF,IAAAC,cAACumB,GAAW,CACVrxB,MAAOqB,QAAQwd,EAAQne,UAAY8d,EAAO9d,UAC1Cwe,WAAS,EACT3M,WAAYsM,EAAQne,UAAY8d,EAAO9d,SACvCqc,MAAOlS,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,gCAAgCC,eAAe,aAC3E+gB,OAAO,SACPnW,KAAK,WACLoW,OAAQX,EACRlO,SAAUmO,EACVvf,KAAK,WACLwX,MAAOlR,EAAO/E,SACdoP,QAAQ,aAEVjF,IAAAC,cAACuR,IAAG,CAAC1P,QAAQ,OAAOa,eAAe,gBAAgBF,WAAW,SAASglB,GAAG,MAAMC,GAAG,MAAMjW,GAAI,GAC3FzR,IAAAC,cAACqF,KAAM,CACLP,UAAWb,EAAQ5B,OACnBsG,SAAUmL,EACVxO,KAAK,QACLjR,KAAK,SACL2Q,QAAQ,aAERjF,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,8BAA8BC,eAAe,YAEpEyM,IAAAC,cAAC+E,KAAI,CACHqB,UAAWshB,IACXC,GAAG,kBACH3iB,QAAQ,YACRF,UAAWb,EAAQqiB,gBAEnBvmB,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,qCAAqCC,eAAe,uBAG7EyM,IAAAC,cAACuR,IAAG,CAACC,GAAI,GACNkC,EAAOwT,QACNnnB,IAAAC,cAACuR,IAAG,CAACC,GAAI,GACPzR,IAAAC,cAACoF,KAAc,CAAClQ,OAAK,GAAEwe,EAAOwT,cAS9B,qBAAfR,GAAqC3mB,IAAAC,cAAC4nB,KAAoB,CAAC9d,KAAM,e,6UCnN1E,MAAMtI,GAAYC,YAAW,MAC3BE,KAAM,CACJoF,WAAY,oBACZ/D,MAAO,QAET6kB,KAAM,CACJ5lB,QAAS,GACTG,aAAc,gBACdJ,aAAc,EACdwE,WAAY,4CACZxD,MAAO,QAET8kB,eAAgB,CACdjmB,QAAS,OACTW,WAAY,SACZE,eAAgB,SAChBV,aAAc,IAEhB0C,QAAS,GACT5B,KAAM,CACJmF,YAAa,IAEf8f,OAAQ,CACN/kB,MAAO,UAETglB,IAAK,CACHhlB,MAAO,OAETilB,KAAM,CACJlhB,WAAY,0BAEdmhB,SAAU,CACRxf,UAAW,UAEbyf,MAAO,CACLnlB,MAAO,WAETolB,YAAa,CACXvmB,QAAS,OACTE,cAAe,UAEjBsmB,gBAAiB,CACfxmB,QAAS,OACTa,eAAgB,UAElB4lB,OAAQ,CACN3hB,MAAO,GACPrE,OAAQ,IAEVimB,SAAU,CACRtmB,QAAS,UAEXumB,SAAU,CACR3mB,QAAS,OACTE,cAAe,OAEjB0mB,UAAW,CACT/kB,cAAe,aAEjBglB,UAAW,CACT/hB,MAAO,QAETgiB,MAAO,CACL3lB,MAAO,SAET4lB,KAAM,CACJ5lB,MAAO,QAET6lB,KAAM,CACJ7lB,MAAO,QAET8lB,MAAO,CACL9lB,MAAO,SAET+lB,OAAQ,CACN/lB,MAAO,UAETgmB,MAAO,CACLnnB,QAAS,OACTxH,SAAU,WACVmkB,IAAK,EACLD,MAAO,EACPrb,gBAAiB,MACjByD,MAAO,GACPrE,OAAQ,GACRF,aAAc,MACdM,eAAgB,SAChBF,WAAY,SACZoB,SAAU,OAIRqlB,GAAiB,CACrBC,MAAO,CACL,CACEhrB,KAAM,kFACNgU,IAAK,GACLpP,KAAMqmB,KACNlU,KAAM,WACNmU,UAAU,EACVC,SAAS,GAEX,CACEnrB,KAAM,kFACNgU,IAAK,QACLpP,KAAMwmB,KACNrU,KAAM,SACNmU,UAAU,EACVC,SAAS,GAEX,CACEnrB,KAAM,4EACNgU,IAAK,OACLpP,KAAMymB,KACNtU,KAAM,QACNmU,UAAU,EACVC,SAAS,IAGb3qB,QAAS,CACP,CACER,KAAM,gEACNgU,IAAK,YACLpP,KAAM0mB,KACNvU,KAAM,aACNmU,UAAU,EACVC,SAAS,GAEX,CACEnrB,KAAM,yDACNgU,IAAK,MACLpP,KAAM2mB,KACNxU,KAAM,YACNmU,UAAU,EACVC,SAAS,GAEX,CACEnrB,KAAM,+DACNgU,IAAK,SACLpP,KAAM4mB,KACNzU,KAAM,UACNmU,UAAU,EACVC,SAAS,IAGbrvB,gBAAiB,GACjBqf,QAAS,GACTsQ,aAAc,CACZ,CACEzrB,KAAM,kFACNgU,IAAK,GACLpP,KAAM8mB,KACN3U,KAAM,IACNmU,UAAU,EACVC,SAAS,GAEX,CACEnrB,KAAM,mDACNgU,IAAK,GACLpP,KAAM+mB,KACN5U,KAAM,IACNmU,UAAU,EACVC,SAAS,GAEX,CACEnrB,KAAM,gEACNgU,IAAK,GACLpP,KAAMgnB,KACN7U,KAAM,aACNmU,UAAU,EACVC,SAAS,KAuPAU,OA5Of,SAAap1B,GAAe,OAAT4K,GAAM5K,EACvB,MAAMsP,EAAezC,MACf,gBAAE0X,GAAoB8Q,sBAAa53B,GAAsBA,EAAM+oB,QAC/D,KAAE9C,GAAS2R,sBAAa53B,GAAyBA,EAAMgpB,gBACvD,QAAE/B,GAAY2Q,sBAAa53B,GAAsBA,EAAMipB,aACtDtS,EAAQkhB,GAAmB1lB,mBAAS,IACpC2lB,EAAYC,GAAiB5lB,mBAAS8T,EAAK+R,UAAUl4B,SACrDm4B,EAAWC,GAAgB/lB,mBAAS,IACpCgmB,EAAaC,GAAkBjmB,mBAAS,IACxCkmB,EAAWC,GAAgBnmB,mBAAS,IACpComB,EAAqBC,GAA0BrmB,mBAAS,IACxDsmB,EAAYC,GAAiBvmB,mBAAS,GAC7C0kB,GAAU5P,QAAU7mB,IAAEonB,QAAQP,EAAS,CAAC,SAAU,OAElD,MAAM,gBAAErf,GAAoBgwB,sBAAa53B,GAA8BA,EAAM8H,gBAC7E+uB,GAAUjvB,gBAAkBxH,IAAEonB,QAAQ5f,EAAiB,CAAC,SAAU,OAElE,MAAMjB,EAAQ,GAAA/C,OAAMqiB,EAAKtf,SAAQ,KAAA/C,OAAIoC,KAAKC,OAE1C,SAASmT,EAAauf,GACpB,OAAQA,GACN,IAAK,QACH,OAAOb,EACT,IAAK,SACH,OAAOnhB,EACT,IAAK,YACH,OAAOshB,EACT,IAAK,SACH,OAAOE,EACT,IAAK,MACH,OAAOE,EACT,IAAK,OACH,OAAOI,EACT,QACE,OAAO,GAIb,MAAMG,EAAgBrrB,sBACnBorB,IACC,OAAQA,GACN,IAAK,OACH,OAAOJ,GAAuB,EAChC,QACE,OAAO,IAGb,CAACA,IAGGM,EAAatrB,sBAAYzL,UAC7B,MAAMwK,QAAgBxC,KAAcsB,mBACpC8sB,EAAa5rB,EAAQxM,QAErB,MAAMg5B,EAAcxsB,EAAQ6b,OAAQ4Q,GAC3BA,EAAOC,QAAU5d,QAE1Byc,EAAgBiB,EAAYh5B,QAE5B,MAAMq4B,EAAc7rB,EAAQ6b,OAAQ4Q,GAC3BA,EAAOE,UAEhBb,EAAeD,EAAYr4B,SAC1B,IAEGo5B,EAAgB3rB,sBAAYzL,UAChC,MAAMwK,QAAgBxC,KAAcC,QAAQ,GAAI,aAChDuuB,EAAahsB,EAAQxM,SACpB,IAEGq5B,EAAU5rB,sBAAYzL,UAAa,IAADs3B,EAAAC,EACtC,MAAMC,QAAqBtrB,KAAiBC,eAC5CuqB,GAAmC,OAAZc,QAAY,IAAZA,GAA8B,QAAlBF,EAAZE,EAAcC,wBAAgB,IAAAH,OAAlB,EAAZA,EAAgCt5B,SAAU,GACjE,MAAM05B,EAAcp5B,IAAEq5B,QAAQH,EAAaI,sBAAuB,QAClEhB,EAAc7qB,OAAOgX,KAAK2U,GAAa15B,SAAsB,OAAZw5B,QAAY,IAAZA,GAAmB,QAAPD,EAAZC,EAAcK,aAAK,IAAAN,OAAP,EAAZA,EAAqBv5B,SAAU,KAC/E,IAQH,OANA4N,oBAAU,KACRmrB,IACAK,IACAC,KACC,CAACrS,IAGFnZ,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ4jB,MACtB9nB,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQS,SACtB3E,IAAAC,cAAA,OAAK8E,UAAWb,EAAQmkB,aACtBroB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQokB,iBACtBtoB,IAAAC,cAACgsB,KAAM,CAAClG,IAAI,OAAOhhB,UAAWb,EAAQqkB,OAAQ9F,IAAKzpB,KAErDgH,IAAAC,cAAA,OAAK8E,UAAWb,EAAQikB,UACtBnoB,IAAAC,cAACkF,KAAU,CAACF,QAAS,MAAOqT,EAAKna,OAEnC6B,IAAAC,cAAA,OAAK8E,UAAWb,EAAQikB,UACtBnoB,IAAAC,cAACkF,KAAU,CAACF,QAAS,MAAOqT,EAAK4T,YAIvClsB,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQskB,UACtBxoB,IAAAC,cAACksB,KAAI,CACHC,UACEpsB,IAAAC,cAACosB,KAAa,CAACtnB,UAAW2E,aAAKxF,EAAQtC,KAAMsC,EAAQwkB,YAAa,yFAEpEriB,UAAU,MACVtB,UAAWb,EAAQtC,MAElBsnB,GAAUC,MAAMlX,IAAI,CAACpG,EAAW4U,KAC/B,MAAM6L,EAAOzgB,EAAK9I,KACZE,EAAQ4I,EAAK5I,MAAQiB,EAAQ2H,EAAK5I,OAAS,GACjD,OACEjD,IAAAC,cAACssB,KAAQ,CAACpa,IAAKsO,EAAI5U,EAAK1N,KAAMmE,QAAM,EAAC+D,UAAWshB,IAAYC,GAAI/b,EAAKqJ,MAClEoX,GAAQtsB,IAAAC,cAACqsB,EAAI,CAACvnB,UAAW2E,aAAKxF,EAAQnB,KAAME,GAAQsC,KAAK,OAC1DvF,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAY9c,EAAK1N,MAE1C6B,IAAAC,cAACkF,KAAU,CAACF,QAAQ,aAAa4G,EAAKwd,UAAY5d,EAAaI,EAAKsG,MAEnEtG,EAAKyd,WAAa2B,EAAcpf,EAAKsG,MACpCnS,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ+kB,OAAQgC,EAAcpf,EAAKsG,UAM7DnS,IAAAC,cAACksB,KAAI,CACHC,UAAWpsB,IAAAC,cAACosB,KAAa,CAACtnB,UAAW2E,aAAKxF,EAAQtC,KAAMsC,EAAQwkB,YAAa,8CAC7EriB,UAAU,MACVtB,UAAWb,EAAQtC,MAElBsnB,GAAUvqB,QAAQsT,IAAI,CAACpG,EAAW4U,KACjC,MAAM6L,EAAOzgB,EAAK9I,KACZE,EAAQ4I,EAAK5I,MAAQiB,EAAQ2H,EAAK5I,OAAS,GACjD,OACEjD,IAAAC,cAACssB,KAAQ,CAACpa,IAAKsO,EAAI5U,EAAK1N,KAAMmE,QAAM,EAAC+D,UAAWshB,IAAYC,GAAI/b,EAAKqJ,MAClEoX,GAAQtsB,IAAAC,cAACqsB,EAAI,CAACvnB,UAAW2E,aAAKxF,EAAQnB,KAAME,GAAQsC,KAAK,OAC1DvF,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAY9c,EAAK1N,MAE1C6B,IAAAC,cAACkF,KAAU,CAACF,QAAQ,aAAa4G,EAAKwd,UAAY5d,EAAaI,EAAKsG,MAEnEtG,EAAKyd,WAAa2B,EAAcpf,EAAKsG,MACpCnS,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ+kB,OAAQgC,EAAcpf,EAAKsG,UAM7DnS,IAAAC,cAACksB,KAAI,CACHC,UACEpsB,IAAAC,cAACosB,KAAa,CAACtnB,UAAW2E,aAAKxF,EAAQtC,KAAMsC,EAAQwkB,YAAa,mFAEpEriB,UAAU,MACVtB,UAAWb,EAAQtC,MAEnB5B,IAAAC,cAACssB,KAAQ,CAACjqB,QAAM,EAAC+D,UAAWshB,IAAYC,GAAG,sBACzC5nB,IAAAC,cAACusB,KAAO,CAACznB,UAAW2E,aAAKxF,EAAQnB,QACjC/C,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAW,sGAErCO,GAAUjvB,gBAAgBgY,IAAI,CAACpG,EAAW4U,KACzC,MAAM6L,EAAOzgB,EAAK9I,KACZE,EAAQ4I,EAAK5I,MAAQiB,EAAQ2H,EAAK5I,OAAS,GACjD,OACEjD,IAAAC,cAACssB,KAAQ,CAACpa,IAAKsO,EAAI5U,EAAK1N,KAAMmE,QAAM,EAAC+D,UAAWshB,IAAYC,GAAE,mBAAA3xB,OAAqB4V,EAAKzH,MACrFkoB,EACCtsB,IAAAC,cAACqsB,EAAI,CAACvnB,UAAW2E,aAAKxF,EAAQnB,KAAME,GAAQsC,KAAK,OAEjDvF,IAAAC,cAACypB,KAAQ,CAAC3kB,UAAW2E,aAAKxF,EAAQnB,KAAME,KAE1CjD,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAY9c,EAAK1N,MAE1C6B,IAAAC,cAACkF,KAAU,CAACF,QAAQ,aAAa4G,EAAKwd,UAAY5d,EAAaI,EAAKsG,MAEnEtG,EAAKyd,WAAa2B,EAAcpf,EAAKsG,MACpCnS,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ+kB,OAAQgC,EAAcpf,EAAKsG,UAO7DnS,IAAAC,cAACksB,KAAI,CACHC,UAAWpsB,IAAAC,cAACosB,KAAa,CAACtnB,UAAW2E,aAAKxF,EAAQtC,KAAMsC,EAAQwkB,YAAa,kCAC7EriB,UAAU,MACVtB,UAAWb,EAAQtC,MAEnB5B,IAAAC,cAACssB,KAAQ,CAACjqB,QAAM,EAAC+D,UAAWshB,IAAYC,GAAG,cACzC5nB,IAAAC,cAACusB,KAAO,CAACznB,UAAW2E,aAAKxF,EAAQnB,QACjC/C,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAW,oFAEtC3oB,IAAAC,cAACssB,KAAQ,CAACjqB,QAAM,EAAC+D,UAAWshB,IAAYC,GAAG,kBACzC5nB,IAAAC,cAACwsB,KAAQ,CAAC1nB,UAAW2E,aAAKxF,EAAQnB,KAAMmB,EAAQ8jB,UAChDhoB,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAW,+CACpC3oB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,aAAa+D,IAElCkgB,GAAU5P,QAAQrH,IAAI,CAACpG,EAAW4U,KACjC,MAAM6L,EAAOzgB,EAAK9I,KACZE,EAAQ4I,EAAK5I,MAAQiB,EAAQ2H,EAAK5I,OAAS,GACjD,OACEjD,IAAAC,cAACssB,KAAQ,CAACpa,IAAKsO,EAAI5U,EAAK1N,KAAMmE,QAAM,EAAC+D,UAAWshB,IAAYC,GAAE,WAAA3xB,OAAa4V,EAAKvY,KAC7Eg5B,EACCtsB,IAAAC,cAACqsB,EAAI,CAACvnB,UAAW2E,aAAKxF,EAAQnB,KAAME,GAAQsC,KAAK,OAEjDvF,IAAAC,cAACysB,KAAU,CAAC3nB,UAAW2E,aAAKxF,EAAQnB,KAAME,KAE5CjD,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAY9c,EAAK1N,MAE1C6B,IAAAC,cAACkF,KAAU,CAACF,QAAQ,aAAa4G,EAAKmH,WAK9ChT,IAAAC,cAACksB,KAAI,CACHC,UACEpsB,IAAAC,cAACosB,KAAa,CAACtnB,UAAW2E,aAAKxF,EAAQtC,KAAMsC,EAAQwkB,YAAa,kFAEpEriB,UAAU,MACVtB,UAAWb,EAAQtC,MAElBsnB,GAAUU,aAAa3X,IAAI,CAACpG,EAAW4U,KACtC,MAAM6L,EAAOzgB,EAAK9I,KACZE,EAAQ4I,EAAK5I,MAAQiB,EAAQ2H,EAAK5I,OAAS,GACjD,OACEjD,IAAAC,cAACssB,KAAQ,CAACpa,IAAKsO,EAAI5U,EAAK1N,KAAMmE,QAAM,EAAC+D,UAAWshB,IAAYC,GAAI/b,EAAKqJ,MAClEoX,GAAQtsB,IAAAC,cAACqsB,EAAI,CAACvnB,UAAW2E,aAAKxF,EAAQnB,KAAME,GAAQsC,KAAK,OAC1DvF,IAAAC,cAAA,QAAM8E,UAAWb,EAAQykB,WAAY9c,EAAK1N,MAE1C6B,IAAAC,cAACkF,KAAU,CAACF,QAAQ,aAAa4G,EAAKwd,UAAY5d,EAAaI,EAAKsG,cC1ZtF,MAAM1Q,GAAYC,YAAW,MAC3BirB,aAAc,CACZ/lB,MAAO,KAETgmB,cAAe,CACbhmB,MAAO,OAET2hB,OAAQ,CACN1lB,OAAQ,UACR+D,MAAO,GACPrE,OAAQ,IAEVsqB,WAAY,CACVlkB,UAAW,UAEbmkB,SAAU,CACR5qB,QAAS,GACTyG,UAAW,aAwEA7E,qBA/Df,SAAelP,GAAgF,IAA/E,WAAEm4B,EAAU,cAAEC,KAAkB35B,GAA4CuB,EAC1F,MAAMsP,EAAUzC,KACVhC,EAAWC,eACVutB,EAAkBC,GAAuBltB,IAAMwE,UAAS,IACzD,KAAE8T,GAAS2R,sBAAa53B,GAAyBA,EAAMgpB,eAE7Dtb,oBAAU,KACJgtB,GAAcC,GAChBA,KAED,CAACvtB,EAASK,WAEb,MAAM6E,EACJ3E,IAAAC,cAACuR,IAAG,CACFjP,OAAO,OACPT,QAAQ,OACRE,cAAc,UAEdhC,IAAAC,cAACktB,IAAgB,CAACjO,QAAS,CAAEkO,iBAAiB,IAC5CptB,IAAAC,cAACotB,IAAM,CAACC,MAAI,GACVttB,IAAAC,cAACuR,IAAG,CACFoH,EAAG,EACH9W,QAAQ,OACRa,eAAe,UAEf3C,IAAAC,cAAC0nB,IAAU,CAAC5iB,UAAYb,EAAQ2oB,WAAYjF,GAAG,KAC7C5nB,IAAAC,cAAC6lB,GAAI,UAIRxN,GACDtY,IAAAC,cAACstB,GAAK,MAENjV,GACFtY,IAAAC,cAAC+pB,GAAI,QAOX,OACEhqB,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACotB,IAAM,CAACC,MAAI,GACVttB,IAAAC,cAACutB,IAAM,CAACtpB,QAAS,CAAEsgB,MAAOtgB,EAAQyoB,cAChClV,QAASuV,EACTtiB,KAAMqiB,EACN9nB,QAAQ,aAEPN,IAGL3E,IAAAC,cAACotB,IAAM,CAACI,QAAM,GACZztB,IAAAC,cAAA,OACE8E,UAAWb,EAAQ0oB,eAElBjoB,Q,sJCnEX,MAAMlD,GAAYC,YAAW,MACzBgsB,QAAS,CACL1mB,WAAY,yBACZ3E,aAAc,EACdY,MAAO,UACPmgB,cAAe,SACfvf,SAAU,GACVqE,YAAa,MACb,UAAW,CACP/E,gBAAiB,cACjB,UAAW,CACPyD,MAAO,SAGf,UAAW,CACPjC,QAAS,MACTrK,SAAU,WACVokB,OAAQ,EACRH,KAAM,EACNC,MAAO,EACP1c,QAAS,QACT8E,MAAO,EACP0N,OAAQ,SACR/R,OAAQ,EACRkE,WAAY,UACZknB,WAAY,QAGpBC,aAAc,CACVpmB,UAAW,GACXvE,MAAO,OACP,UAAW,CACPwD,WAAY,gBAGpBgP,UAAW,CACPhP,WAAY,cACZpE,aAAc,IAElBwrB,KAAM,CACFxrB,aAAc,GACdoE,WAAY,0BACZC,eAAgB,cAEpB+hB,SAAU,CACNzhB,WAAY,mBACZ/D,MAAO,UACPnB,QAAS,OACTW,WAAY,SACZE,eAAgB,UAEpBmrB,aAAc,CACV,UAAW,CACP3qB,gBAAiB,cACjB,UAAW,CACPyD,MAAO,SAGf,UAAW,CACPjC,QAAS,MACT+Z,OAAQ,EACRH,KAAM,EACNC,MAAO,EACP1c,QAAS,QACT8E,MAAO,EACP0N,OAAQ,SACR/R,OAAQ,EACRkE,WAAY,UACZknB,WAAY,QAGpBI,SAAU,CACNzM,KAAM,OAEV1e,KAAM,CACForB,eAAgB,WAoHTlqB,qBAhHf,SAAmBlP,GAA4J,IAA3J,SAAE2K,EAAQ,KAAE0uB,EAAI,kBAAEC,KAAsB1uB,GAAgH5K,EACxK,MAAMsP,EAAUzC,KACV0sB,EAAYnuB,IAAMkK,OAA0B,OAC3CkkB,EAAUC,GAAeruB,IAAMwE,SAA6B,OAC5DkG,EAAMC,GAAW3K,IAAMwE,UAAS,GACjCqiB,EAAUzc,cACVzI,EAAQ2sB,eACRC,EAAiBC,aAAc7sB,EAAM8sB,YAAYC,KAAK,OAiBtDhgB,EAAexP,IACbivB,EAAUniB,SAAWmiB,EAAUniB,QAAQ2iB,SAASzvB,EAAM0G,UAGtD2oB,GAAkBL,GAClBA,IAEJG,EAAY,MACZ1jB,GAAQ,KAGZ,OACI3K,IAAAC,cAAAD,IAAA8E,SAAA,KACI9E,IAAAC,cAACqF,KAAM,CAACjG,IAAM8uB,EACNppB,UAAY2E,aAAKxF,EAAQwpB,QAASa,EAAiBrqB,EAAQ0pB,aAAe,IAC1E1oB,QA9BKhG,IACjB,GAAI+uB,EAAKrrB,OAASqrB,EAAKW,SAKnB,OAJA/H,EAAQQ,KAAK4G,EAAKrrB,WACd2rB,GAAkBL,GAClBA,KAILD,EAAKrrB,MAAQqrB,EAAKW,UACjB/vB,OAAO6L,KAAKujB,EAAKrrB,KAAM,UAE3ByrB,EAAYnvB,EAAM2vB,eAClBlkB,EAASmkB,IAAcA,KAmBbvvB,EAAU,IAAG0uB,EAAK1uB,UACpBS,IAAAC,cAAC8uB,KAAc,CAAChqB,UAAYb,EAAQ6pB,YAEtCE,GAAQA,EAAK1uB,UACXS,IAAAC,cAAAD,IAAA8E,SAAA,KACI9E,IAAAC,cAACotB,IAAM,CAACI,QAAM,GACVztB,IAAAC,cAAC+uB,KAAM,CACHjqB,UAAYb,EAAQ2pB,KAAOnjB,KAAOA,EAAO0jB,SAAWD,EAAUniB,QAC9DijB,UAAO78B,EAAYu7B,YAAU,EAC7BuB,eAAa,GACX/b,IAAA,IAAC,gBAAEgc,EAAe,UAAEC,GAAWjc,EAAA,OAC7BnT,IAAAC,cAACovB,KAAInvB,OAAAC,OAAA,GACIgvB,EAAe,CACpBnJ,MAAQ,CAAEsJ,gBAA+B,WAAdF,EAAyB,aAAe,mBAEnEpvB,IAAAC,cAACsvB,KAAK,CAACxqB,UAAYb,EAAQuR,WACvBzV,IAAAC,cAACuvB,KAAiB,CAACC,YAAc/gB,GAC7B1O,IAAAC,cAACyvB,KAAQ,CAACC,cAAgBjlB,GACpBujB,EAAK1uB,UAAY0uB,EAAK1uB,SAAS0S,IAAI,CAACpG,EAAwBzR,IACtDyR,EAAK+iB,SAaD5uB,IAAAC,cAAC2vB,KAAQ,CACb7qB,UAAYb,EAAQukB,SACpBtW,IAAM/X,EACN8K,QAAUwJ,GAEV1O,IAAAC,cAAA,KAAG8E,UAAWb,EAAQtB,KAAMsS,KAAMrJ,EAAKjJ,KAAMgD,OAAQ,UAAYxS,aAAUoM,EAAK,mBAADvJ,OAAsB4V,EAAKsG,IAAG,SAAUtG,EAAK1N,QAjBpH6B,IAAAC,cAAC2vB,KAAQ,CACb7qB,UAAYb,EAAQukB,SACpBtW,IAAM/X,EACN8K,QAAUwJ,EACVrI,UAAYshB,IACZC,GAAK/b,EAAKjJ,MAEV5C,IAAAC,cAAA,QAAM8E,UAAWb,EAAQ4pB,cACnB16B,aAAUoM,EAAK,mBAADvJ,OAAsB4V,EAAKsG,IAAG,SAAUtG,EAAK1N,gBAmBzG6B,IAAAC,cAACotB,IAAM,CAACC,MAAI,GACRttB,IAAAC,cAAC4vB,KAAQ,CAACC,GAAKplB,EAAOhP,QAAQ,OAAOq0B,eAAa,GAC9C/vB,IAAAC,cAACksB,KAAI,CAAC9lB,UAAU,MAAM2pB,gBAAc,GAC9B/B,EAAK1uB,UAAY0uB,EAAK1uB,SAAS0S,IAAI,CAACpG,EAAwBzR,IAClD4F,IAAAC,cAACssB,KAAQ,CACbjqB,QAAM,EACN6P,IAAM/X,EACN8K,QAAUwJ,EACVrI,UAAYshB,IACZC,GAAK/b,EAAKjJ,MAEV5C,IAAAC,cAACgwB,KAAY,KACPpkB,EAAK1N,gB,qBCrMnD,MAAMsD,GAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJwH,OAAQzH,EAAMyH,OAAO8mB,OAAS,OAC1BvuB,EAAMxD,OAASpC,IAAO6lB,MACtB,CACExf,UAAW,OACXe,gBAAiBxB,EAAMyiB,QAAQK,QAAQC,MAEzC,MACA/iB,EAAMxD,OAASpC,IAAOgpB,SACtB,CACE5hB,gBAAiBxB,EAAMyiB,QAAQ3d,WAAW4d,SAE5C,GACJ5hB,WAAY,SACZuE,WAAY,eACZ7D,gBAAiB,eAEnBgtB,eAAgB,GAChBC,eAAgB,CACd3tB,WAAY,SACZX,QAAS,UACLH,EAAMxD,OAASpC,IAAO6lB,MACtB,CACExf,UAAW,QAEb,OACAT,EAAMxD,KAASpC,IAAOgpB,SAAW,IACrCpiB,eAAgB,UAElB0tB,QAAS,CACP3X,SAAU,KACV9R,MAAO,OACPH,WAAY,0BACZC,eAAgB,aAChB4pB,WAAY,GACZC,cAAe,IAEjBC,WAAY,CACVvtB,MAAO,WAET4hB,KAAM,CACJ4L,WAAY,KAEdC,KAAM,CACJ7tB,OAAQ,UACRuG,OAAQ,EACRlH,QAAS,GACTgG,YAAa,YAEfyoB,YAAa,CACX7uB,QAAS,OACTW,WAAY,UAEdmuB,YAAa,CACX3tB,MAAO,UACP0F,UAAW,SACXhF,cAAe,YACf7B,QAAS,OACTE,cAAe,MACfW,eAAgB,YAElBsrB,KAAM,CACJnsB,QAAS,OACTE,cAAe,MACf4E,MAAO,OACP8R,SAAU,KACV/V,eAAgB,gBAChBJ,OAAQ,GACRsuB,aAAc,EACd,WAAY,CACVxuB,aAAc,gBACd/H,SAAU,WACVikB,KAAM,EACNE,IAAK,EACL7X,MAAO,OACPrE,OAAQ,OACRoC,QAAS,MACT8B,WAAY,0BACZC,eAAgB,aAChBtE,UAAW,mEAGfmR,aAAc,CACZzR,QAAS,OACTW,WAAY,SACZquB,WAAY,MACZ7tB,MAAO,UACPmG,OAAQ,EACRlB,YAAa,IAEf6oB,cAAe,CACbxuB,OAAQ,GACRT,QAAS,OACTW,WAAY,UAEdkqB,aAAc,CACZ/lB,MAAO,IACPzD,gBAAiB,WAEnB6tB,oBAAqB,CACnBlvB,QAAS,OACTE,cAAe,SACfmB,gBAAiB,UACjBF,MAAO,OACPf,QAAS,UAEX+uB,gBAAiB,CACfhuB,MAAO,OACP0F,UAAW,SACXzG,QAAS,SACTuE,WAAY,WAEdjP,OAAQ,CACNyL,MAAO,UACPJ,OAAQ,UACRmE,WAAY,0BAEdkqB,SAAU,CACRjuB,MAAO,UACPJ,OAAQ,UACRmE,WAAY,0BAEdmqB,iBAAkB,CAChB/nB,OAAQ,EACR7G,OAAQ,OACRT,QAAS,QAEXsvB,aAAc,CACZztB,cAAe,YACf8C,WAAY,UACZG,MAAO,IACPrE,OAAQ,OACRT,QAAS,OACTa,eAAgB,SAChBF,WAAY,SACZJ,aAAc,aACd2E,WAAY,mBACZnE,OAAQ,UACRvI,SAAU,WACV,oBAAqB,CACnB2pB,QAAS,EACToN,WAAY,YAGhBC,SAAU,CACRrN,QAAS,EACT0J,WAAY,sBACZrzB,SAAU,WACV+H,aAAc,GACdP,QAAS,OACTE,cAAe,SACfS,WAAY,SACZgc,IAAK,OACL7X,MAAO,OACP2X,KAAM,EACN9X,WAAY,UACZ4qB,WAAY,UAEdE,SAAU,CACR5tB,cAAe,YACfzB,QAAS,UAEXsvB,MAAO,CACLlQ,KAAM,YAgQKxd,qBAxOf,SAAelP,GAAgF,IAA/E,UAAEmQ,EAAS,gBAAE0sB,KAAoBjyB,GAA2C5K,EAC1F,MAAMsP,EAAUzC,KAEV1O,GADW2M,cACAgnB,yBACXgL,EAAyB,CAC7B,CACEvzB,KAAM,gEACNgU,IAAK,MACLvP,KAAM,gBAER,CACEzE,KAAM,qBACNgU,IAAK,YACLvP,KAAM,uBAER,CACEzE,KAAM,kFACNgU,IAAK,UACLvP,KAAM,uBAER,CACEzE,KAAM,8FACNgU,IAAK,QACLvP,KAAM,uBAER,CACEzE,KAAM,uCACNgU,IAAK,OACL5S,SAAU,CACR,CACEqD,KAAM,SACNuP,IAAK,QACLhU,KAAM,2IAER,CACEyE,KAAM,YACNuP,IAAK,kBACLhU,KAAM,iHAER,CACEyE,KAAM,aACNuP,IAAK,YACLhU,KAAM,gEAER,CACEyE,KAAM,OACNuP,IAAK,MACLhU,KAAM,SAIZ,CACEA,KAAM,6CACNgU,IAAK,OACLvP,KAAM,wBACNgsB,UAAU,KAGP+C,EAAcC,GAAqBptB,oBAAS,IAC7C,KAAE8T,GAAS2R,sBAAa53B,GAAyBA,EAAMgpB,eACvDwL,EAAUzc,eACV,SAAEjX,EAAQ,aAAEgvB,GAAiBS,KAC5BhoB,EAAQi3B,GAAartB,mBAAS,CACnCxS,SAAUmB,EAASnB,WAarB,OACEgO,IAAAC,cAAAD,IAAA8E,SAAA,KAuCE9E,IAAAC,cAAC6xB,KAAM5xB,OAAAC,OAAA,CAAC4E,UAAW2E,aAAKxF,EAAQtC,KAAMsC,EAAQisB,eAAgBprB,IAAgBvF,GAC5EQ,IAAAC,cAAC8xB,KAAO,CAAChtB,UAAWb,EAAQ+pB,MAC1BjuB,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQysB,aACtB3wB,IAAAC,cAACotB,IAAM,CAACI,QAAM,GACZztB,IAAAC,cAAC+E,KAAI,CACHD,UAAWb,EAAQwsB,KACnBxrB,QAASA,KACP2hB,EAAQQ,KAAK,gBAGfrnB,IAAAC,cAAA,OAAK8lB,IAAI,OAAOtD,IAAI,kCAGxBziB,IAAAC,cAACotB,IAAM,CAACC,MAAI,GACVttB,IAAAC,cAAC+xB,KAAU,CACTjtB,UAAWb,EAAQssB,WACnBvtB,MAAM,UACNiC,QAASA,KACP0sB,GAAkB,KAErB,4BACM5xB,IAAAC,cAACgyB,KAAiB,QAG3BjyB,IAAAC,cAACotB,IAAM,CAACC,MAAI,GACVttB,IAAAC,cAACutB,IAAM,CACLtpB,QAAS,CAAEsgB,MAAOtgB,EAAQyoB,cAC1BlV,QAASA,KACPma,GAAkB,IAEpBlnB,KAAMinB,EACN1sB,QAAQ,aAERjF,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKF,UAAWb,EAAQ+sB,iBAAiB,4BAG7DjxB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ8sB,qBACrBU,EAAMzf,IAAI,CAACgc,EAAqB7zB,IAE7B4F,IAAAC,cAACiyB,GAAU,CACThE,kBAAmBA,KACjB0D,GAAkB,IAEpBzf,IAAK/X,EACL6zB,KAAMA,GAEL76B,aAAUoM,EAAK,mBAADvJ,OAAqBg4B,EAAK9b,IAAG,SAAS8b,EAAK9vB,WAOtE6B,IAAAC,cAACotB,IAAM,CAACI,QAAM,GACZztB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ6sB,eACrBW,EAAMzf,IAAI,CAACgc,EAAqB7zB,IAE7B4F,IAAAC,cAACiyB,GAAU,CAAC/f,IAAK/X,EAAO6zB,KAAMA,GAC3B76B,aAAUoM,EAAK,mBAADvJ,OAAqBg4B,EAAK9b,IAAG,SAAS8b,EAAK9vB,WAOtE6B,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQitB,kBACtBnxB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQqP,cACtBvT,IAAAC,cAACinB,KAAiB,OAChB5O,GACAtY,IAAAC,cAAAD,IAAA8E,SAAA,KAEE9E,IAAAC,cAAC+E,KAAI,CACHD,UAAWb,EAAQgtB,SACnBhsB,QAASA,KACP2hB,EAAQQ,KAAK,mBAGfrnB,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,yBAAyBC,eAAe,mBAIlE+kB,GACCtY,IAAAC,cAACkF,KAAU,CAACF,QAAQ,MAElBjF,IAAAC,cAAC+E,KAAI,CAACE,QAhIL/Q,gBACTpB,EAASyE,iBA+HwBuN,UAAWb,EAAQ1M,QAAQ,oCAM1DwI,IAAAC,cAAA,OAAK8E,UAAWb,EAAQktB,cACtBpxB,IAAAC,cAACuR,IAAG,CAAC1P,QAAQ,QACVlH,EAAO5I,SACRgO,IAAAC,cAAC8uB,KAAc,CAAChqB,UAAWb,EAAQstB,SAErCxxB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQotB,UACrBpxB,OAAOtF,OAAOpJ,KAAOygB,IAAIkgB,GACxBnyB,IAAAC,cAAA,OACEkS,IAAKggB,EACLptB,UAAWb,EAAQqtB,SACnBrsB,QAASA,KAtJNitB,KACnBhQ,GAAgBA,EAAagQ,GAC7BpgC,aAAeogC,GACfN,EAAU,CAAE7/B,SAAUmgC,KAoJJC,CAAYD,KAGbA,a,4GChZrB,MAAM1wB,GAAYC,YAAW,MACzBE,KAAM,MAgIKkC,qBAvHf,SAAyBlP,GAA+F,IAA9F,UAAEmQ,EAAS,cAAEstB,EAAa,MAAEh/B,KAAUmM,GAAqD5K,EACjH,MAAMsP,EAAUzC,MACV,KAAE6W,GAAS2R,sBAAa53B,GAAyBA,EAAMgpB,eAEvD7I,EAAgB,CAClBrc,MAAOmiB,EAAOA,EAAKniB,MAAQ,GAC3BgR,YAAamR,EAAOA,EAAKnR,YAAc,GACvCmrB,mBAAoB,QACpBC,UAAW,IAEf,OACIvyB,IAAAC,cAACsS,KAAM,CACHC,cAAeA,EACfC,iBAAmBC,OAAaC,MAAM,CAClCxc,MAAOuc,OAAavc,QAAQyc,IAAI,OAEpCM,SAAW/e,MAAOyG,EAAMuY,KAIjB,IAJmB,UACtBC,EAAS,cACTC,EAAa,UACba,GACHf,EACG,UACU/e,KAAYoE,iBAAiB8f,EAAKhlB,GAAIsH,EAAOzE,MAAOyE,EAAOuM,YAAavM,EAAO03B,oBACrFD,EAAcz3B,EAAO03B,oBACvB,MAAOn9B,GACL,MAAMoyB,EAAWpyB,EAAMH,UAAYG,EAAMH,SAASd,KAAKqzB,SAAY,uBACnEnU,EAAU,CAAE1B,SAAS,IACrBwC,EAAU,CAAEqe,UAAWn/B,aAAUoM,EAAK,0BAADvJ,OAA4BsxB,MACjElU,GAAc,MAIpBK,IAAA,IAAC,OACIC,EAAM,WACNC,EAAU,aACVC,EAAY,aACZC,EAAY,aACZC,EAAY,QACZC,EAAO,OACPpZ,GACH8Y,EAAA,OACA1T,IAAAC,cAAA,OAAAC,OAAAC,OAAA,CACIqnB,YAAU,EACVziB,UAAY2E,aAAKxF,EAAQtC,KAAMmD,GAC/BmO,SAAWY,GACNtU,GAELQ,IAAAC,cAAC6V,KAAW,CAACzB,WAAS,EAAChO,UAAU,YAC7BrG,IAAAC,cAACuyB,KAAS,CAACnsB,UAAU,UACjBrG,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,gCACHC,eAAe,mCAErCyM,IAAAC,cAACwyB,KAAU,CAACt0B,KAAK,qBAAqB2N,MAAQlR,EAAO03B,mBACzC5sB,SAAWmO,GACnB7T,IAAAC,cAACmV,KAAgB,CAACtJ,MAAM,QAAQuJ,QAAUrV,IAAAC,cAACyyB,KAAK,MAC9BxgB,MAAQ9e,aAAUC,EAAO,gCAAiC,WAC5E2M,IAAAC,cAACmU,KAAS,CACNjf,MAAQqB,QAAQwd,EAAQ7M,aAAewM,EAAOxM,aAC9CkN,WAAS,EACTse,WAAS,EACTjrB,WAAasM,EAAQ7M,aAAewM,EAAOxM,YAC3C+K,MACIlS,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,sCACHC,eAAe,UAErC+gB,OAAO,SACPnW,KAAK,cACLoW,OAASX,EACTlO,SAAWmO,EACXvf,KAAK,OACLwX,MAAQlR,EAAOuM,YACflC,QAAQ,aAEZjF,IAAAC,cAACmV,KAAgB,CAACtJ,MAAM,QAAQuJ,QAAUrV,IAAAC,cAACyyB,KAAK,MAC9BxgB,MAAQ9e,aAAUC,EAAO,gCAAiC,WAC5E2M,IAAAC,cAACmU,KAAS,CACNjf,MAAQqB,QAAQwd,EAAQ7d,OAASwd,EAAOxd,OACxCke,WAAS,EACT3M,WAAasM,EAAQ7d,OAASwd,EAAOxd,MACrC+b,MACIlS,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,sCACHC,eAAe,UAErC+gB,OAAO,SACPnW,KAAK,QACLoW,OAASX,EACTlO,SAAWmO,EACXvf,KAAK,OACLwX,MAAQlR,EAAOzE,MACf8O,QAAQ,eAIpBjF,IAAAC,cAACuR,IAAG,CAACC,GAAK,GACNzR,IAAAC,cAACqF,KAAM,CACHrC,MAAM,YACN2F,SAAWmL,EACXM,WAAS,EACT9O,KAAK,QACLjR,KAAK,SACL2Q,QAAQ,aAERjF,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,mCACHC,eAAe,eAEnCogB,EAAO4e,WACLvyB,IAAAC,cAACuR,IAAG,CAACC,GAAK,GACNzR,IAAAC,cAACoF,KAAc,CAAClQ,OAAK,GACfwe,EAAO4e,mB,SCzH7C,MAAM9wB,GAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJe,eAAgB,SAChBQ,gBAAiBxB,EAAMyiB,QAAQ3d,WAAW8d,KAC1CziB,QAAS,OACTS,OAAQ,OACRkW,UAAW,OACXzW,cAAe,SACfuuB,cAAe,GACfD,WAAY,IAEdsC,WAAY,CACV9vB,WAAYnB,EAAM2F,QAAQ,IAE5Bd,KAAM,CACJiB,SAAU,UACV3F,QAAS,OACTxH,SAAU,WACV,QAAS,CACP+I,SAAU,EACVwvB,UAAW,MACXjsB,MAAO,QAGXjC,QAAS,CACPzC,QAASP,EAAM2F,QAAQ,EAAG,EAAG,EAAG,IAElCvE,KAAM,CACJI,gBAAiB+gB,IAAO6E,MAAM,KAC9B9lB,MAAOtB,EAAMyiB,QAAQxsB,OAAO0sB,MAC5BjiB,aAAcV,EAAMgR,MAAMtQ,aAC1BH,QAASP,EAAM2F,QAAQ,GACvBhN,SAAU,WACVmkB,KAAM,GACNF,KAAM5c,EAAM2F,QAAQ,GACpB/E,OAAQ,GACRqE,MAAO,IAETksB,MAAO,CACLC,qBAAsB,EACtBC,wBAAyB,EACzB9wB,QAASP,EAAM2F,QAAQ,GACvBrE,MAAOtB,EAAMyiB,QAAQxsB,OAAO0sB,MAC5BxiB,QAAS,OACTE,cAAe,SACfW,eAAgB,WAChB,CAAChB,EAAM8sB,YAAYC,KAAK,OAAQ,CAC9B5sB,QAAS,SAGbmxB,SAAU,CACRhwB,MAAO,QACPf,QAASP,EAAM2F,QAAQ,GACvBnE,gBAAiB,YACjBmR,OAAQ,WAEVxL,WAAY,CACVjF,SAAU,QAEZqvB,aAAc,CACZ3C,cAAe,OAyFJzsB,qBArFf,SAAyBlP,GAAyF,IAAxF,iBAAEu+B,KAAqB9/B,GAA8DuB,EAC7G,MAAMsP,EAAUzC,KACV1O,EAAW2zB,yBACV0M,EAAeC,GAAoB7uB,oBAAS,IAC5C8uB,EAAcC,GAAmB/uB,mBAAiB,KAClDgvB,EAAWC,GAAgBjvB,sBAC3B3L,EAAM66B,GAAWlvB,mBAAiB,KACnC,KAAE8T,GAAS2R,sBAAa53B,GAAyBA,EAAMgpB,gBACtD3Q,EAAMC,GAAW3K,IAAMwE,UAAS,GAoCvC,OA9BAzE,oBAAW,KACLozB,GACFxoB,GAAQ,IAET,CAACwoB,IA2BAnzB,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACuX,KAAM,CACH9M,KAAOA,EAAO+M,QA3BJtjB,UAClBwW,GAAQ,GACR+oB,EAAQ,IACRL,GAAiB,GACZ/a,EAAKD,kBACFtlB,EAASyE,kBAuBXwI,IAAAC,cAACyX,KAAW,KACV1X,IAAAC,cAAA,QAAM8E,UAAWb,EAAQ4E,YACvB9I,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,yBAAyBC,eAAe,mEAGjEyM,IAAAC,cAAC0X,KAAa,CAAC5S,UAAWb,EAAQgvB,cAChClzB,IAAAC,cAAC0zB,GAAgB,CAACtB,cA7CD15B,IACzB06B,GAAiB,GACjBE,EAAgB56B,IA2C4CtF,MAAOA,IAC3D2M,IAAAC,cAACyU,KAAO,MACN0e,GACFpzB,IAAAC,cAAAD,IAAA8E,SAAA,KACE9E,IAAAC,cAACmU,KAAS,CACNC,WAAS,EACT3O,SA/BGvR,UACjB,MAAM2X,EAAQ5M,EAAM0G,OAAOkG,MAC3B,GAAI8nB,aAAiB9nB,KACnB4nB,EAAQ5nB,GACJA,GAA0B,IAAjBA,EAAM3Z,QACjB,UACQY,EAAS6F,aAAOkT,EAAOwM,EAAKhlB,GAAIglB,EAAKniB,MAAOm9B,IAClD3oB,GAAQ,GACR,MAAOnW,GACPi/B,EAAargC,aAAUC,EAAO,iCAuBtB6e,MACElS,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,wBACHC,eAAe,SAEnC2iB,WAAY,CAAE2d,UAAW,GACzBvf,OAAO,SACPnW,KAAK,OACL7J,KAAK,OACL2Q,QAAQ,WACR6G,MAAOjT,IAET26B,GACExzB,IAAAC,cAACoF,KAAc,CAAClQ,OAAK,GACjBq+B,U,OCtJtB,MAAM/xB,GAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJ6E,WAAY,gCAEZqtB,eAAgB,OAChBhyB,QAAS,OACT8E,MAAO,OACP5E,cAAe,SACfyW,UAAW,QAEbsb,QAAS,CACPjyB,QAAS,OACTkyB,KAAM,WACNvsB,SAAU,SACV9E,eAAgB,UAElBsxB,iBAAkB,CAChBnyB,QAAS,OACTkyB,KAAM,WACNvsB,SAAU,SACViR,SAAU,KACVvW,UAAW,IAEbwC,QAAS,CACPqvB,KAAM,WACNzxB,OAAQ,OACRkF,SAAU,SACVb,MAAO,UA4BIstB,OAxBf,SAAuBt/B,GAA+C,IAA9C,SAAE2K,GAAyC3K,EACjE,MAAMsP,EAAUzC,MACT0yB,EAAiBC,GAAoB5vB,oBAAS,IAC/C,KAAE8T,GAAS2R,sBAAa53B,GAAyBA,EAAMgpB,eAE7D,OACErb,IAAAC,cAAA,OAAK8E,UAAWb,EAAQtC,MACtB5B,IAAAC,cAACo0B,GAAM,CAAC5C,gBAAiBA,IAAM2C,GAAiB,KAChDp0B,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQ+vB,kBACtBj0B,IAAAC,cAACq0B,GAAM,CACHtH,cAAeA,IAAMoH,GAAiB,GACtCrH,WAAYoH,IAEhBn0B,IAAAC,cAAA,OAAK8E,UAAWb,EAAQS,SACrBpF,KAIPS,IAAAC,cAACs0B,GAAgB,CAACpB,iBAAkB7a,IAASA,EAAKD,e,UCpDxD,MAAM5W,GAAYC,YAAYC,IAAiB,CAC3CC,KAAM,CACFuB,gBAAiBxB,EAAMyiB,QAAQ3d,WAAW8d,KAC1C9L,UAAW,OACX3W,QAAS,OACTW,WAAY,SACZE,eAAgB,SAChBT,QAASP,EAAM2F,QAAQ,GACvBgpB,WAAY,GACZC,cAAe,IAEnB1L,KAAM,CACF1B,WAAY,WAyBLqR,OArBf,WACI,MAAMtwB,EAAUzC,KAEhB,OACIzB,IAAAC,cAACw0B,KAAS,CACN/b,SAAS,KACT3T,UAAWb,EAAQtC,MAEnB5B,IAAAC,cAACkF,KAAU,CACPuvB,MAAM,SACNzvB,QAAQ,KACRhC,MAAM,cACN8B,UAAWb,EAAQ2gB,MAEnB7kB,IAAAC,cAACsX,KAAgB,CAACjkB,GAAG,4BACHC,eAAe,2BCzBlC,SAASohC,GAAU//B,GAGjB,IAFf,SACE2K,GACU3K,EACZ,MAAM7B,EAAW2zB,yBACVkO,EAAWC,GAAcrwB,oBAAS,GA6BzC,OA3BAzE,oBAAU,KACS5L,WAKf,GAJAC,KAAYO,qBAAqB,CAC/BE,SAAUA,IAAM9B,EAASyE,kBAGvBpD,KAAYmE,kBACd,IACE,MAAM8f,QAA4BjkB,KAAYkB,mBACxCgjB,QAAmBlkB,KAAYuC,uBAE/B5D,EAASwlB,aAAY,IACtBD,EACHD,WAAY7hB,QAAQ6hB,YAEhBtlB,EAASiqB,gBACf,MAAOxoB,SACDzB,EAASyE,gBAInBq9B,GAAW,IAGbC,IACC,CAAC/hC,IAEA6hC,EACK,KAGD50B,IAAAC,cAAAD,IAAA8E,SAAA,KAAGvF,GCpBEw1B,OAbf,SAAwBngC,GAAkD,IAA/CyR,UAAW2uB,EAAS,OAAEC,KAAWz1B,GAAW5K,EAGnE,OAFgBq1B,sBAAa53B,GAAyBA,EAAMgpB,eAE/C/C,KAON2c,EAASA,EAAO,IAAKz1B,IAAUQ,IAAAC,cAAC+0B,EAAex1B,GAN3CQ,IAAAC,cAACi1B,IAAQ,CAACtN,GAAG,kBC6DbuN,OA5Ef,WACE,OACEn1B,IAAAC,cAAC00B,GAAU,KACT30B,IAAAC,cAACm1B,WAAQ,CAACC,SAAUr1B,IAAAC,cAACylB,EAAa,OAChC1lB,IAAAC,cAACq1B,IAAM,KACLt1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAK,IACL44B,OAAS5hC,GACP2M,IAAAC,cAACi0B,GAAmB7gC,EAClB2M,IAAAC,cAACq1B,IAAM,KACLt1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAM,CAAC,mBACPgK,UAAWmvB,eAAK,IAAM,mCAGxBx1B,IAAAC,cAACi1B,IAAQ,CAACO,OAAK,EAACC,KAAK,IAAI9N,GAAG,iBAC5B5nB,IAAAC,cAACs1B,IAAK,CACJl5B,KAAM,CAAC,yBAA0B,oBACjCgK,UAAWmvB,eAAK,IAAM,uEAExBx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAM,CAAC,gBAAiBgK,UAAWmvB,eAAK,IAAM,sEACrDx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,SAASgK,UAAWmvB,eAAK,IAAM,mCAC3Cx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,aAAagK,UAAWmvB,eAAK,IAAM,mCAC/Cx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,YAAYgK,UAAWmvB,eAAK,IAAM,mCAC9Cx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,OAAOgK,UAAWmvB,eAAK,IAAM,mCACzCx1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAK,gBACLgK,UAAWmvB,eAAK,IAAM,yDAExBx1B,IAAAC,cAACi1B,IAAQ,CAACO,OAAK,EAACC,KAAK,IAAI9N,GAAG,iBAC5B5nB,IAAAC,cAAC80B,GAAe,CACd14B,KAAK,IACL44B,OAAS5hC,GACP2M,IAAAC,cAACq1B,IAAM,KACLt1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,aAAagK,UAAWmvB,eAAK,IAAM,mCAC/Cx1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAM,CAAC,WAAY,UACnBgK,UAAWmvB,eAAK,IAAM,yDAExBx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,aAAagK,UAAWmvB,eAAK,IAAM,yDAC/Cx1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAK,cACLgK,UAAWmvB,eAAK,IAAM,uEAExBx1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAK,qBACLgK,UAAWmvB,eAAK,IAAM,gEAExBx1B,IAAAC,cAACs1B,IAAK,CAACl5B,KAAK,QAAQgK,UAAWmvB,eAAK,IAAM,mCAC1Cx1B,IAAAC,cAACs1B,IAAK,CACJl5B,KAAM,CACJ,aACA,YACA,aACA,UACA,sBACA,kBAEFgK,UAAWmvB,eAAK,IAAM,sEAExBx1B,IAAAC,cAACi1B,IAAQ,CAACO,OAAK,EAACp5B,KAAK,IAAIurB,GAAG,kBAKlC5nB,IAAAC,cAACs1B,IAAK,CAAClvB,UAAWmuB,a,UCpEpC,MAAM/yB,GAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJa,WAAY,SACZU,gBAAiBxB,EAAMyiB,QAAQ3d,WAAW4d,QAC1CviB,QAAS,OACTE,cAAe,SACfO,OAAQ,OACRI,eAAgB,SAChB8V,UAAW,OACXvW,QAASP,EAAM2F,QAAQ,IAEzBquB,SAAU,CACRlX,IAAI,EACJnkB,SAAU,QACVikB,KAAM,EACNC,MAAO,EACPrb,gBAAiB,YACjBiG,OAAQ,SAyBGwsB,OAff,WACE,MAAM1xB,EAAUzC,MACV,WAAER,GAAegpB,sBAAa53B,GAAsBA,EAAM+oB,OAChE,OAAKna,EAIDjB,IAAAC,cAAA,OAAK8E,UAAS,GAAA9O,OAAOiO,EAAQtC,KAAI,KAAA3L,OAAMiO,EAAQyxB,WAC7C31B,IAAAC,cAACuR,IAAG,CAAC5K,MAAQ,KACX5G,IAAAC,cAAC4lB,IAAc,QALd,M,UClBX,MAAMpkB,GAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJa,WAAY,SACZU,gBAAiBxB,EAAMyiB,QAAQ3d,WAAW4d,QAC1CviB,QAAS,OACTE,cAAe,SACfO,OAAQ,OACRI,eAAgB,SAChB8V,UAAW,OACXvW,QAASP,EAAM2F,QAAQ,IAEzBquB,SAAU,CACRlX,IAAK,EACLnkB,SAAU,QACVikB,KAAM,EACNC,MAAO,EACPrb,gBAAiB,YACjBiG,OAAQ,MAEVysB,WAAY,CACV/zB,QAAS,OACTa,eAAgB,gBAChBF,WAAY,SACZR,aAAc,EACdE,UAAW,GAEb4xB,QAAS,CACP9xB,aAAc,OAgMH6zB,OArLf,WACE,MAAM5xB,EAAUzC,MACV,cAAEJ,GAAkB4oB,sBAAa53B,GAAsBA,EAAM+oB,QAC7D,KAAE9C,GAAS2R,sBAAa53B,GAAsBA,EAAM2oB,SACpDjoB,EAAW2zB,wBAEjB,IAAKrlB,EAAc+lB,eAAoB,OAAJ9O,QAAI,IAAJA,OAAI,EAAJA,EAAMD,YACvC,OAAO,KAGT,MAAM3J,EAAcA,KAClB3b,EAASoO,aAAiB,IAAKE,EAAe+lB,aAAa,MAG7D,OACEpnB,IAAAC,cAAA,OAAK8E,UAAWb,EAAQyxB,UACtB31B,IAAAC,cAACuX,KAAM,CAAC9M,MAAM,EAAM+M,QAAS/I,EAAaqnB,kBAAgB,qBAAqB1hB,WAAS,GACtFrU,IAAAC,cAACyX,KAAW,CAACpkB,GAAG,sBAAqB,8HACrC0M,IAAAC,cAAC0X,KAAa,KACXnhB,QAAQ6K,EAAc20B,uBAAyB30B,EAAc20B,sBAAsB7jC,SAClF6N,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKhC,MAAM,cAAcyxB,MAAO,UAAU,wMAG7DrzB,EAAc20B,sBAAsB/jB,IAAI,CAACmZ,EAAahxB,IAEnD4F,IAAAC,cAACuR,IAAG,CAACW,IAAK/X,GACR4F,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ2xB,YACtB71B,IAAAC,cAACkF,KAAU,QAAAlP,OAAKm1B,EAAO93B,GAAE,KAAA2C,OAAIm1B,EAAOjtB,OACpC6B,IAAAC,cAACqF,KAAM,CACLe,UAAWshB,IACXpiB,KAAK,QACLL,QAASwJ,EACTkZ,GAAE,oBAAA3xB,OAAsBm1B,EAAO93B,KAChC,+CAIH0M,IAAAC,cAACyU,KAAO,SAMjBle,QAAQ6K,EAAc40B,oBAAsB50B,EAAc40B,mBAAmB9jC,SAC5E6N,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKhC,MAAM,cAAcyxB,MAAO,UAAU,6JAG7DrzB,EAAc40B,mBAAmBhkB,IAAI,CAACmZ,EAAahxB,IAEhD4F,IAAAC,cAACuR,IAAG,CAACW,IAAK/X,GACR4F,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ2xB,YACtB71B,IAAAC,cAACkF,KAAU,QAAAlP,OAAKm1B,EAAO93B,GAAE,KAAA2C,OAAIm1B,EAAOjtB,OACpC6B,IAAAC,cAACqF,KAAM,CACLe,UAAWshB,IACXpiB,KAAK,QACLL,QAASwJ,EACTkZ,GAAE,oBAAA3xB,OAAsBm1B,EAAO93B,KAChC,+CAIH0M,IAAAC,cAACyU,KAAO,SAMjBle,QAAQ6K,EAAc60B,gBAAkB70B,EAAc60B,eAAe/jC,SACpE6N,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKhC,MAAM,cAAcyxB,MAAO,UAAU,4GAG7DrzB,EAAc60B,eAAejkB,IAAI,CAACmZ,EAAahxB,IAE5C4F,IAAAC,cAACuR,IAAG,CAACW,IAAK/X,GACR4F,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ2xB,YACtB71B,IAAAC,cAACkF,KAAU,QAAAlP,OAAKm1B,EAAO93B,GAAE,KAAA2C,OAAIm1B,EAAOjtB,OACpC6B,IAAAC,cAACqF,KAAM,CACLe,UAAWshB,IACXpiB,KAAK,QACLL,QAASwJ,EACTkZ,GAAE,oBAAA3xB,OAAsBm1B,EAAO93B,KAChC,+CAIH0M,IAAAC,cAACyU,KAAO,SAMjBle,QAAQ6K,EAAc80B,gBAAkB90B,EAAc80B,eAAehkC,SACpE6N,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKhC,MAAM,cAAcyxB,MAAO,UAAU,iHAG7DrzB,EAAc80B,eAAelkB,IAAI,CAACmZ,EAAahxB,IAE5C4F,IAAAC,cAACuR,IAAG,CAACW,IAAK/X,GACR4F,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ2xB,YACtB71B,IAAAC,cAACkF,KAAU,QAAAlP,OAAKm1B,EAAO93B,GAAE,KAAA2C,OAAIm1B,EAAOjtB,OACpC6B,IAAAC,cAACqF,KAAM,CACLe,UAAWshB,IACXpiB,KAAK,QACLL,QAASwJ,EACTkZ,GAAE,oBAAA3xB,OAAsBm1B,EAAO93B,KAChC,+CAIH0M,IAAAC,cAACyU,KAAO,SAMjBle,QAAQ6K,EAAc+0B,YAAc/0B,EAAc+0B,WAAWjkC,SAC5D6N,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKhC,MAAM,cAAcyxB,MAAO,UAAU,uEAG7DrzB,EAAc+0B,WAAWnkB,IAAI,CAACmZ,EAAahxB,IAExC4F,IAAAC,cAACuR,IAAG,CAACW,IAAK/X,GACR4F,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ2xB,YACtB71B,IAAAC,cAACkF,KAAU,QAAAlP,OAAKm1B,EAAO93B,GAAE,KAAA2C,OAAIm1B,EAAOjtB,OACpC6B,IAAAC,cAACqF,KAAM,CACLe,UAAWshB,IACXpiB,KAAK,QACLL,QAASwJ,EACTkZ,GAAE,oBAAA3xB,OAAsBm1B,EAAO93B,KAChC,+CAIH0M,IAAAC,cAACyU,KAAO,SAOjBle,QAAQ6K,EAAcg1B,eAAiBh1B,EAAcg1B,cAAclkC,SAClE6N,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ6vB,SACtB/zB,IAAAC,cAACkF,KAAU,CAACF,QAAQ,KAAKhC,MAAM,cAAcyxB,MAAO,UAAU,wHAG7DrzB,EAAcg1B,cAAcpkB,IAAI,CAACmZ,EAAahxB,IAE3C4F,IAAAC,cAACuR,IAAG,CAACW,IAAK/X,GACR4F,IAAAC,cAACuR,IAAG,CAACzM,UAAWb,EAAQ2xB,YACtB71B,IAAAC,cAACkF,KAAU,QAAAlP,OAAKm1B,EAAO93B,GAAE,KAAA2C,OAAIm1B,EAAOjtB,OACpC6B,IAAAC,cAACqF,KAAM,CACLe,UAAWshB,IACXpiB,KAAK,QACLL,QAASwJ,EACTkZ,GAAE,oBAAA3xB,OAAsBm1B,EAAO93B,KAChC,+CAIH0M,IAAAC,cAACyU,KAAO,UAOpB1U,IAAAC,cAAC4X,KAAa,KACZ7X,IAAAC,cAACqF,KAAM,CAACJ,QAASwJ,EAAazL,MAAM,WAAU,kD,oBC3NxD,MAAMxB,GAAYC,aAAYC,IAAiB,CAC7CC,KAAM,CACJ6W,UAAW,WAOA,SAAS6d,KACtB,MAAMpyB,EAAUzC,KAEhB,OACEzB,IAAAC,cAACd,KAAI,CAAC4F,UAAYb,EAAQtC,KAAOtC,MAAM,wCACnCU,IAAAC,cAACw0B,KAAS,CAACzO,MAAO,CAAClkB,QAAS,OAAQS,OAAQ,UAC1CvC,IAAAC,cAACuR,IAAG,CAACwU,MAAO,CAAEtN,SAAU,IAAKpE,OAAQ,OAAQ3L,UAAW,WACtD3I,IAAAC,cAAC6lB,GAAI,MAEL9lB,IAAAC,cAACkF,KAAU,CAAC6gB,MAAO,CAAC7jB,UAAW,GAAIghB,WAAY,QAASle,QAAQ,KAAKhC,MAAM,cAAcszB,WAAS,GAAC,kKAGnGv2B,IAAAC,cAACkF,KAAU,CAAC6gB,MAAO,CAAE/iB,MAAO,mBAAoB,mTCnB5D,MAAMuzB,WAAsBxB,YAAwBvgC,cAAA,SAAAvC,WAClD,KACOG,MAAe,CACpBuS,UAAU,GAGZ,gCAAuCnS,GAErC,MAAO,CAAEmS,UAAU,GAGd6xB,kBAAkBthC,EAAcuhC,GACrCvqB,QAAQhX,MAAM,kBAAmBA,EAAOuhC,GAGnCzB,SACL,OAAI5/B,KAAKhD,MAAMuS,SACN5E,IAAAC,cAACq2B,GAAS,MAGZjhC,KAAKhC,MAAMkM,UAIPi3B,UC3Bf,MAAM/0B,GAAYC,YAAYC,IAAiB,CAC7CC,KAAM,CACJa,WAAY,SACZU,gBAAiBxB,EAAMyiB,QAAQ3d,WAAW4d,QAC1CviB,QAAS,OACTE,cAAe,SACfO,OAAQ,OACRI,eAAgB,SAChB8V,UAAW,OACXvW,QAASP,EAAM2F,QAAQ,IAEzBquB,SAAU,CACRlX,IAAK,EACLnkB,SAAU,QACVikB,KAAM,EACNC,MAAO,EACPrb,gBAAiB,YACjBiG,OAAQ,MAEVysB,WAAY,CACV/zB,QAAS,OACTa,eAAgB,gBAChBF,WAAY,SACZR,aAAc,EACdE,UAAW,GAEb4xB,QAAS,CACP9xB,aAAc,OA4DH00B,OAhDf,WAAuC,IAADC,EACpC,MAAM1yB,EAAUzC,KACVolB,EAAUzc,eAEV,cAAE5I,GAAkByoB,sBAAa53B,GAAsBA,EAAM+oB,OAC7DroB,EAAW2zB,wBAEjB,IAAKllB,EAAc4lB,YACjB,OAAO,KAGT,MAAM1Y,EAAcA,KAClB3b,EAASuO,aAAiB,CAAEu1B,KAAMr1B,EAAcq1B,KAAMzP,aAAa,MAOrE,OAAkB,OAAb5lB,QAAa,IAAbA,GAAmB,QAANo1B,EAAbp1B,EAAeq1B,YAAI,IAAAD,OAAN,EAAbA,EAAqBzkC,QAGxB6N,IAAAC,cAAA,OAAK8E,UAAWb,EAAQyxB,UACtB31B,IAAAC,cAACuX,KAAM,CAAC9M,MAAM,EAAM+M,QAAS/I,EAAaqnB,kBAAgB,qBAAqB1hB,WAAS,GACtFrU,IAAAC,cAACyX,KAAW,CAACpkB,GAAG,sBAAqB,+FACrC0M,IAAAC,cAAC0X,KAAa,KAAC,mRAEb3X,IAAAC,cAAA,MAAI+lB,MAAO,CAAEljB,WAAY,KACtBtB,EAAcq1B,KAAK5kB,IAAKpG,GACvB7L,IAAAC,cAAA,MAAI+lB,MAAO,CAAE9jB,QAAS,QACpBlC,IAAAC,cAAA,SAAI4L,EAAK0b,aAKjBvnB,IAAAC,cAAC4X,KAAa,KACZ7X,IAAAC,cAACqF,KAAM,CAACJ,QAASwJ,EAAazL,MAAM,WAAU,8CAG9CjD,IAAAC,cAACqF,KAAM,CAACJ,QAzBG4xB,KACjB/jC,EAASuO,aAAiB,CAAEu1B,KAAMr1B,EAAcq1B,KAAMzP,aAAa,KACnEP,EAAQQ,KAAK,UAuBsBpiB,QAAQ,YAAYhC,MAAM,WAAU,iDApBhC,MC3C3C,MAAM4jB,GAAUkQ,cACVC,GAAM5a,YAAO,CAAE6a,QAAS,IAAIC,cAAYD,QAASE,SAEjD11B,GAAYC,YAAW,IAC3B01B,YAAa,CACX,UAAW,CACT,IAAK,CACH5zB,UAAW,aACX8Q,OAAQ,EACRpS,QAAS,GAEXm1B,KAAM,CACJ,yBAA0B,cAC1B,0BAA2B,YAC3BrwB,WAAY,uCACZzE,OAAQ,OACRqE,MAAO,QAET0wB,KAAM,CACJ/0B,OAAQ,OACRqE,MAAO,QAET,QAAS,CACPrE,OAAQ,OACRqE,MAAO,YAqCA2wB,OA/Bf,WACE91B,KAEA,MAAM,SAAEtO,GAAayvB,IAErB,OACE5iB,IAAAC,cAACu3B,gBAAY,CAAC1kC,OAAQI,aAAcC,IAClC6M,IAAAC,cAACw3B,IAAa,CAAC91B,MAAO0jB,EAAYlyB,IAChC6M,IAAAC,cAACy3B,IAAc,CAACV,IAAKA,IACnBh3B,IAAAC,cAAC03B,IAAuB,CAACvc,MAAOwc,KAC9B53B,IAAAC,cAAC43B,mBAAgB,CAACC,SAAU,GAC1B93B,IAAAC,cAAC83B,IAAM,CAAClR,QAASA,IACf7mB,IAAAC,cAACu2B,GAAa,KACZx2B,IAAAC,cAACyiB,EAAW,MACZ1iB,IAAAC,cAACuiB,EAAe,MAGhBxiB,IAAAC,cAAC21B,GAAM,MACP51B,IAAAC,cAAC61B,GAAiB,MAClB91B,IAAAC,cAAC02B,GAA0B,MAC3B32B,IAAAC,cAACk1B,GAAM,cCvDzB,MAAMhiC,G5BlBC,WACL,IAAIA,EAAW,KAEf,IACE,MAAM6kC,EAAalhC,aAAaS,QAAQ,YAEpCygC,IACF7kC,EAAW4E,KAAK0W,MAAMupB,IAExB,MAAOC,IAKT,OAAO9kC,E4BIQ+kC,GAEjBC,IAASlD,OACPj1B,IAAAC,cAACiiB,WAAQ,CAAC5vB,MAAOA,KACf0N,IAAAC,cAAC8hB,EAAgB,CAAC5uB,SAAUA,IAC1B6M,IAAAC,cAACs3B,GAAG,QAGRa,SAASC,eAAe,S7BwGpB,kBAAmBC,WACrBA,UAAUC,cAAcjuB,MAAMlU,KAAKmd,IACjCA,EAAailB,gB,uoB8BnGJC,MAFM,IA5BrB,MAAmBhkC,cAAA,KACjBikC,QAAWxZ,GACT,IAAI1pB,QAAe,CAACO,EAASN,KAC3BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,oBAAoBgpB,GAC/B9oB,KAAKpB,IACAA,EAASd,MACX6B,EAAQf,EAASd,QAGpBwC,MAAMvB,IACLM,EAAON,OAEV,KAELwjC,UAAazkC,GACX,IAAIsB,QAAiB,CAACO,EAASN,KAC7BX,IACGkB,KAAK,GAADC,OAAIC,IAAG,eAAehC,GAC1BkC,KAAKpB,IACJe,GAAQ,KAETW,MAAMvB,IACLM,EAAON,EAAMjB,KAAKqzB,eCHrB,SAASqM,EAAiB9nB,GAE/B,MAAiB,KAAVA,GADI,cACegH,KAAKhH,GAsC1B3X,eAAeykC,EAAiBt0B,GACrC,OAAO,IAAI9O,QAAQrB,MAAO4B,EAASN,KACjC,MAAMoQ,EAAW,IAAIC,SACD,kBAATxB,QA6FRnQ,eAAuBmI,GAC5B,OAAO,IAAI9G,QAAQ,CAACO,EAASN,KAC3B,IAAIojC,EAAM,IAAIC,eACdD,EAAInuB,KAAK,MAAOpO,GAChBu8B,EAAI96B,aAAe,OACnB86B,EAAIE,OAAS,WACXhjC,EAAQ8iC,EAAI7jC,WAEd6jC,EAAI1hB,SApGI6hB,CAAQ10B,GAAMlO,KAAMlC,IACxB2R,EAASE,OAAO,QAAS7R,GACzB6B,EAAQ8P,MAGVA,EAASE,OAAO,QAASzB,GACzBvO,EAAQ8P,MAkGP,SAASozB,EAAa/kC,EAAciK,EAAc7J,GACvD,MAAMgI,EAAMuC,OAAOq6B,IAAIC,gBAAgB,IAAIC,KAAK,CAACllC,GAAO,CAAEI,UACpDsO,EAAOw1B,SAASn4B,cAAc,KACpC2C,EAAKsS,KAAO5Y,EACZsG,EAAKy2B,aAAa,WAAYl7B,GAC9Bi6B,SAASd,KAAKgC,YAAY12B,GAC1BA,EAAK22B,QAGA,SAAS70B,EAAaxQ,EAAWslC,EAAkBllC,GACxD,IAAImlC,EAAM,GACNC,EAAO,GACPC,EAAO,GACPrlC,GACFolC,EAAOplC,EACPqlC,EAAOC,KAAK1lC,KAEZulC,EAAMvlC,EAAK2lC,MAAM,KACjBH,EAAOD,GAAOA,EAAI,GAAGziB,MAAM,WAAW,GACtC2iB,EAAOC,KAAKH,EAAI,KAGlB,IAAIK,EAAIH,EAAKxnC,OACb,MAAM4nC,EAAQ,IAAIC,WAAWF,GAE7B,KAAOA,KACLC,EAAMD,GAAKH,EAAKM,WAAWH,GAI7BI,EADa,IAAIC,KAAK,CAACJ,GAAQP,EAAU,CAAEllC,KAAMolC,IAClBF,GAG1B,SAASp7B,EAAeg8B,GAC7B,OAAOC,mBACLT,KAAKQ,GACFP,MAAM,IACN5nB,KAAI,SAASqoB,GACZ,MAAO,KAAO,KAAOA,EAAEL,WAAW,GAAGM,SAAS,KAAKC,OAAO,MAE3DC,KAAK,KAIL,SAASP,EAAyBhmC,EAAWiK,GAClD,MAAM7B,EAAMuC,OAAOq6B,IAAIC,gBAAgBjlC,GACjC0O,EAAOw1B,SAASn4B,cAAc,KACpC2C,EAAKsS,KAAO5Y,EACZsG,EAAKy2B,aAAa,WAAYl7B,GAC9Bi6B,SAASd,KAAKgC,YAAY12B,GAC1BA,EAAK22B,QAmCA,SAASrzB,EAAS5B,GACvB,OAAO,IAAI9O,QAAQ,CAACO,EAASN,KAC3B,MAAMilC,EAAS,IAAIC,WACnBD,EAAOE,cAAct2B,GACrBo2B,EAAO3B,OAAS,KACd,GAA6B,kBAAlB2B,EAAOG,OAAqB,CACrC,MAAMC,EAAMJ,EAAOG,QAAUH,EAAOG,OAAOE,QAAQ,mBAAoB,IACvEhlC,EAAQ+kC,KAGZJ,EAAOM,QAAU7lC,GAASM,EAAON,KAwB9B,SAAS8lC,EAASb,GAEvB,IAAIc,EAAY,GAChB,MAAMC,EAAc,CAClBC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SA9BY,IA+BZC,SAAG,IACHC,SAhCY,IAiCZC,SAAG,IACHC,SAAG,KACHC,SAAG,MAEM,IAAPhD,IACFA,EAAMA,EAAIiD,eAGZ,IAAK,IAAI5c,EAAI,EAAGA,EAAI2Z,EAAIjoC,OAAQsuB,IAC1B,wBAAS3N,KAAKsnB,EAAIkD,OAAO7c,IAC3Bya,GAAaC,EAAOf,EAAIkD,OAAO7c,IACtB,WAAW3N,KAAKsnB,EAAIkD,OAAO7c,IACpCya,GAAad,EAAIkD,OAAO7c,GA7Cd,MA+CNya,EAAUV,OAAO,KACnBU,GAhDQ,KAoDd,OAAOA,EAaF,SAASqC,EAAcC,GAC5B,OAAQA,GACN,IAAK,MACH,MAAO,IACT,IAAK,MACH,MAAO,SACT,IAAK,MACH,MAAO,SACT,IAAK,MACH,MAAO,SACT,QACE,MAAO,IAIN,SAASC,EAAW3xB,GACzB,MAAM4xB,EAAS5xB,EAAMyuB,WACfoD,EAAWD,EAAOJ,OAAOI,EAAOvrC,OAAS,GAE/C,MAAgB,KAAZwrC,GAA8B,IAAT7xB,EAChB,2BACc,KAAZ6xB,GAA8B,IAAT7xB,GAET,KAAZ6xB,GAA8B,IAAT7xB,GAET,KAAZ6xB,GAA8B,IAAT7xB,EAHvB,qBAMA,2BAIJ,SAAS8xB,EAAY9xB,GAC1B,MAAM4xB,EAAS5xB,EAAMyuB,WACfoD,EAAWD,EAAOJ,OAAOI,EAAOvrC,OAAS,GAE/C,MAAgB,KAAZwrC,GAA8B,IAAT7xB,EAChB,qBACc,KAAZ6xB,GAA8B,IAAT7xB,GAET,KAAZ6xB,GAA8B,IAAT7xB,GAET,KAAZ6xB,GAA8B,IAAT7xB,EAHvB,2BAMA,iCAIJ,SAAS+xB,EAAc/xB,GAC5B,MAAM4xB,EAAS5xB,EAAMyuB,WACfoD,EAAWD,EAAOJ,OAAOI,EAAOvrC,OAAS,GAE/C,MAAgB,KAAZwrC,GAA8B,IAAT7xB,EAChB,uCACc,KAAZ6xB,GAA8B,IAAT7xB,GAET,KAAZ6xB,GAA8B,IAAT7xB,GAET,KAAZ6xB,GAA8B,IAAT7xB,EAHvB,uCAMA,iCAIJ,SAASgyB,EAASzhC,GACvB,OAAQA,GACN,IAAK,eACH,MAAO,yMACT,IAAK,iBACH,MAAO,yFACT,IAAK,YACH,MAAO,oGACT,QACE,MAAO,IAIN,MAAM0hC,EAAyBA,CAAChhC,EAAkB7I,KACvD,IAAIyK,EAAe,GACnB,MAAMq/B,EAAYlnC,aAAaS,QAAQ,SACjC0mC,EAAennC,aAAaS,QAAQ,WACtC0mC,IACFt/B,EAAU5G,KAAK0W,MAAMwvB,IAEnBD,IACFr/B,EAAQq/B,GAAa,IAChBr/B,EAAQq/B,GACX,CAACjhC,GAAW7I,GAEd4C,aAAaC,QAAQ,UAAWgB,KAAKC,UAAU2G,IAC/CwN,QAAQC,IAAI,cAAezN,EAAQq/B,GAAWjhC,GAAUmhC,qBAI/CC,EAA2BphC,GAAqBghC,EAAuBhhC,EAAU,IACjFqhC,EAAyBrhC,IACpC,IAAI4B,EAAe,GACnB,MAAMq/B,EAAYlnC,aAAaS,QAAQ,SACjC0mC,EAAennC,aAAaS,QAAQ,WAI1B,IAAD8mC,EAAf,OAHIJ,IACFt/B,EAAU5G,KAAK0W,MAAMwvB,IAEnBD,IACuB,QAAlBK,EAAA1/B,EAAQq/B,UAAU,IAAAK,OAAA,EAAlBA,EAAqBthC,KAEvB,IAoBIuhC,EAAgBA,CAACC,EAAyBrqC,IACrDukC,EACGE,UAAU,CACTpkC,QAAS,CACPiqC,WAAYD,KACTrqC,KAGNkC,KAAKqoC,GAAOtyB,QAAQC,IAAIqyB,M","file":"static/js/main.876bc804.chunk.js","sourcesContent":["import { store } from '../store';\nimport { updateIntl } from 'react-intl-redux';\nimport en_Us from '../langs/en-US.json';\nimport ru from '../langs/ru.json';\nimport kz from '../langs/kz.json';\nimport { LANGS } from '../constants/enums';\nimport _ from 'lodash';\nimport { Settings } from '../types/Settings';\n\nexport const availableMessages = {\n [LANGS.EN]: en_Us,\n [LANGS.RU]: ru,\n [LANGS.KZ]: kz,\n};\n\nexport function changeLanguage(language: LANGS, force = false): void {\n const state = store.getState();\n if (getCurrentLanguage() !== language\n || _.isEmpty(state.intl.messages)\n || force\n ) {\n updateLocals(language);\n }\n}\n\n/**\n * Get the intl locale (or the language being loaded)\n */\nfunction getCurrentLanguage(): string {\n const state = store.getState();\n return state.intl.locale;\n}\n\n/**\n * Returns true if message with id exists in translations\n */\nexport function messageExists(\n props: any,\n id: string,\n): boolean {\n return !!props.intl.messages[id];\n}\n\nfunction updateLocals(locale: LANGS) {\n store.dispatch(updateIntl({\n locale,\n messages: getMessages(locale),\n }))\n}\n\nexport function getMessages(locale: LANGS) {\n return availableMessages[locale];\n}\n\n\nexport function restoreLocale(settings: Settings = {}): string {\n const locale = settings.language || getCurrentLanguage();\n updateLocals(locale as LANGS);\n return locale;\n}\n\nexport function translate(props: any, id: string, defaultMessage = '') {\n const { intl } = props;\n return intl.formatMessage({ id, defaultMessage });\n}\n","import { Dispatch } from 'redux';\nimport authService from '../services/authService';\nimport User from '../types/User';\nimport { logUserAction } from '../utils/helper';\nimport { UserActions } from '../constants/enums';\n\nexport const LOGIN_REQUEST = 'LOGIN_REQUEST';\nexport const LOGIN_SUCCESS = 'LOGIN_SUCCESS';\nexport const LOGIN_FAILURE = 'LOGIN_FAILURE';\nexport const SILENT_LOGIN = 'SILENT_LOGIN';\nexport const LOGOUT = 'LOGOUT';\nexport const REGISTER = 'REGISTER';\nexport const UPDATE_PROFILE = 'UPDATE_PROFILE';\nexport const VERIFIED_USER = 'VERIFIED_USER';\nexport const USER_PHOTO_UPLOADED = 'USER_PHOTO_UPLOADED';\n\nexport function login(email: string, password: string, rememberMe: boolean) {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({ type: LOGIN_REQUEST });\n const isVerified: Boolean = await authService.login(email, password, rememberMe);\n const user: User = await authService.getCurrentUser();\n\n dispatch({\n type: LOGIN_SUCCESS,\n payload: {\n user: {\n ...user,\n isVerified,\n },\n },\n });\n authService.getIp().then(ip => {\n logUserAction(UserActions.Login, { ip });\n });\n } catch (error) {\n dispatch({ type: LOGIN_FAILURE });\n throw error;\n }\n };\n}\n\nexport function setUserData(user: User) {\n return (dispatch: Dispatch) =>\n dispatch({\n type: SILENT_LOGIN,\n payload: {\n user: {\n ...user,\n },\n },\n });\n}\n\nexport function logout() {\n return async (dispatch: Dispatch) => {\n authService.logout();\n dispatch({\n type: LOGOUT,\n });\n };\n}\n\nexport function updateProfile(data: any) {\n return async (dispatch: Dispatch) => {\n try {\n await authService.updateCurrentUser(data);\n await dispatch({\n type: UPDATE_PROFILE,\n payload: {\n data,\n },\n });\n } catch (e) {\n throw e;\n }\n };\n}\n\nexport function verify(code: string, userId: number, email: string, option: string) {\n return async (dispatch: Dispatch) => {\n try {\n const isVerified: boolean = await authService.verify(code, userId, email, option);\n await dispatch({\n type: VERIFIED_USER,\n payload: {\n isVerified,\n },\n });\n } catch (error) {\n //dispatch({ type: LOGIN_FAILURE });\n throw error;\n }\n };\n}\n\nexport function uploadPhoto(photo: FormData) {\n return async (dispatch: Dispatch) => {\n try {\n const url: string = await authService.uploadPhoto(photo);\n await dispatch({\n type: USER_PHOTO_UPLOADED,\n payload: {\n url,\n },\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function removePhoto() {\n return async (dispatch: Dispatch) => {\n try {\n await authService.removePhoto();\n await dispatch({\n type: USER_PHOTO_UPLOADED,\n payload: {\n url: '',\n },\n });\n } catch (error) {\n throw error;\n }\n };\n}\n","import jwtDecode from 'jwt-decode';\nimport axios, { uninterceptedAxiosInstance } from '../utils/axios';\nimport { API } from '../constants/constants';\nimport { triggerLoader } from '../actions/utilsActions';\nimport { store } from '../store';\nimport User, { UpdateUserProps } from '../types/User';\n\n// let count = Number(localStorage.getItem('count') || 0);\nclass AuthService {\n setAxiosInterceptors = ({ onLogout }: { onLogout: Function }) => {\n axios.interceptors.response.use(\n response => {\n // count--;\n // localStorage.setItem('count', count.toString());\n\n // if (!count) {\n store.dispatch(triggerLoader(false) as any);\n // }\n return response;\n },\n async error => {\n store.dispatch(triggerLoader(false) as any);\n // count--;\n // localStorage.setItem('count', count.toString());\n if (error.response && error.response.status === 401) {\n try {\n await this.loginInWithToken();\n } catch (e) {\n this.setSession(null);\n\n if (onLogout) {\n onLogout();\n }\n }\n }\n\n return Promise.reject(error.response);\n }\n );\n axios.interceptors.request.use(\n response => {\n store.dispatch(triggerLoader(true) as any);\n // count++;\n // localStorage.setItem('count', count.toString());\n\n return response;\n },\n error => {\n store.dispatch(triggerLoader(false) as any);\n // count--;\n // localStorage.setItem('count', count.toString());\n\n return Promise.reject(error);\n }\n );\n };\n\n handleAuthentication() {\n const accessToken = this.getAccessToken();\n\n if (!accessToken) {\n return;\n }\n\n if (!this.isValidToken(accessToken)) {\n this.setSession(null);\n }\n }\n\n login = (emailAddress: string, password: string, rememberMe: boolean = false) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/Token`, { email: emailAddress, password })\n .then(response => {\n if (response.data) {\n this.setSession(\n response.data.access_token,\n response.data.token_type,\n rememberMe,\n emailAddress,\n response.data.refresh_token\n );\n resolve(Boolean(response.data.is_verified));\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getCurrentUser = () =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Account`)\n .then(response => {\n if (response.data) {\n const data = response.data as User;\n resolve(data);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n updateCurrentUser = (data: UpdateUserProps) =>\n new Promise((resolve, reject) => {\n axios\n .put(`${API}/Account`, data)\n .then(response => {\n if (response.data) {\n localStorage.setItem('email', data.email);\n resolve(true);\n } else {\n reject(false);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n changePassword = (currentPassword: string, newPassword: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/ChangePassword`, {\n currentPassword,\n newPassword,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n loginInWithToken = () =>\n new Promise((resolve, reject) => {\n const refreshToken: string | null = this.getRefreshToken();\n const accessToken: string | null = this.getAccessToken();\n const email = localStorage.getItem('email');\n if (refreshToken && accessToken && email) {\n axios\n .post(`${API}/Account/Token`, { email, refreshToken })\n .then(response => {\n if (response.data) {\n const rememberMe = Boolean(localStorage.getItem('rememberMe')) || false;\n this.setSession(\n response.data.access_token,\n response.data.token_type,\n rememberMe,\n email,\n response.data.refresh_token\n );\n resolve(Boolean(response.data.is_verified));\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n } else {\n reject();\n }\n });\n\n logout = () => {\n this.setSession(null);\n };\n\n setSession = (\n accessToken: string | null,\n tokenType?: string,\n rememberMe?: boolean,\n email?: string,\n refreshToken?: string\n ) => {\n if (accessToken && refreshToken && email) {\n localStorage.setItem('accessToken', `${tokenType} ${accessToken}`);\n localStorage.setItem('refreshToken', refreshToken);\n localStorage.setItem('email', email);\n axios.defaults.headers.common.Authorization = `${tokenType} ${accessToken}`;\n uninterceptedAxiosInstance.defaults.headers.common.Authorization = `${tokenType} ${accessToken}`;\n if (rememberMe) {\n localStorage.setItem('rememberMe', JSON.stringify(rememberMe));\n } else {\n localStorage.removeItem('rememberMe');\n }\n } else {\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n delete axios.defaults.headers.common.Authorization;\n delete uninterceptedAxiosInstance.defaults.headers.common.Authorization;\n }\n };\n\n getAccessToken = () => localStorage.getItem('accessToken');\n getRefreshToken = () => localStorage.getItem('refreshToken');\n\n isValidToken = (accessToken: string) => {\n if (!accessToken) {\n return false;\n }\n\n const { exp } = jwtDecode(accessToken);\n const currentTime = Date.now() / 1000;\n\n return exp > currentTime;\n };\n\n isAuthenticated = () => !!this.getAccessToken();\n\n sendVerification = (userId: number, email: string, phone: string, option: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/SendVerify${option}`, {\n userId,\n email,\n phone,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n verify = (code: string, userId: number, email: string, option: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/Verify${option}`, {\n code,\n email,\n userId,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n uploadPhoto = (photo: FormData) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/UploadPhoto`, photo)\n .then(response => {\n if (response.data) {\n resolve(response.data.photoUrl);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n removePhoto = () =>\n new Promise((resolve, reject) => {\n axios\n .delete(`${API}/Account/UploadPhoto`)\n .then(response => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getIp = () =>\n new Promise((resolve, reject) => {\n fetch('https://api.ipify.org?format=json')\n .then(response => response.json())\n .then(data => {\n if (data.ip) {\n resolve(data.ip);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n resetPassword = (email: string | null = null, phone: string | null = null, option: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/RecoveryPassword`, {\n email: option === 'Email' ? email : null,\n phone: option === 'Phone' ? phone : null,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n confirmResetPassword = (password: string, userId: string, code: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/RecoveryPassword/Confirm`, {\n password,\n userId,\n code,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n}\n\nconst authService = new AuthService();\n\nexport default authService;\n","import { Dispatch } from 'redux';\nimport { SearchTemplateItem } from '../../types/public/SearchTemplate';\n\nexport const INITIALIZE_SEARCH_TEMPLATES = 'INITIALIZE_SEARCH_TEMPLATES';\nexport const SET_SEARCH_TEMPLATES = 'SET_SEARCH_TEMPLATES';\nexport const UPDATE_SEARCH_TEMPLATE = 'UPDATE_SEARCH_TEMPLATE';\nexport const CREATE_SEARCH_TEMPLATE = 'CREATE_SEARCH_TEMPLATE';\nexport const SWAP_SEARCH_TEMPLATES = 'SWAP_SEARCH_TEMPLATES';\nexport const REMOVE_SEARCH_TEMPLATES = 'REMOVE_SEARCH_TEMPLATES';\n\nexport function getSearchTemplateList() {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({ type: INITIALIZE_SEARCH_TEMPLATES });\n //const user: User = await authService.getCurrentUser();\n\n dispatch({\n type: SET_SEARCH_TEMPLATES,\n data: {\n searchTemplates: []\n }\n });\n } catch (error) {\n dispatch({ type: INITIALIZE_SEARCH_TEMPLATES });\n throw error;\n }\n };\n}\n\nexport function updateSearchTemplate(searchTemplate: SearchTemplateItem, index: number) {\n return async (dispatch: Dispatch) => {\n try {\n await dispatch({\n type: UPDATE_SEARCH_TEMPLATE,\n data: {\n searchTemplate,\n index\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function swapSearchTemplates(index: number, position: number) {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({\n type: SWAP_SEARCH_TEMPLATES,\n data: {\n index,\n position\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function createNewSearchTemplate(searchTemplate: SearchTemplateItem) {\n return async (dispatch: Dispatch) => {\n try {\n await dispatch({\n type: CREATE_SEARCH_TEMPLATE,\n data: {\n searchTemplate\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function removeSearchTemplates(searchTemplates: (string | undefined)[]) {\n return async (dispatch: Dispatch) => {\n try {\n await dispatch({\n type: REMOVE_SEARCH_TEMPLATES,\n data: {\n searchTemplates\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n","import axios from '../utils/axios';\nimport { API } from '../constants/constants';\nimport SupplierSearch from '../types/public/SupplierSearch';\nimport User from \"../types/User\";\n\nclass SupplierService {\n searchSupplier = (bin:string) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Supplier/Search?bin=${bin}`)\n .then((response) => {\n if (response.data) {\n let values = {...response.data};\n delete values.chiefName;\n resolve(values);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getSupplierChecks = (bin: any, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Supplier/CheckReport?bin=${ bin }&refresh=${ needRefresh }`)\n .then((response) => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierBasic = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/Basic?refresh=${needRefresh}`)\n .then((response) => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierNds = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/NDS?refresh=${needRefresh}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n resolve(null)\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierLicenses = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/Licenses?refresh=${needRefresh}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n resolve(null)\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierStatus = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/Statuses?refresh=${needRefresh}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n resolve(null)\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierGraph = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/Graph?refresh=${needRefresh}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n resolve(null)\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierFounders = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/Founders?refresh=${needRefresh}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n resolve(null)\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplierSNG = (country: string, bin: string, method: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/Legat/${country}/${bin}/${method}?refresh=${needRefresh}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n resolve(null)\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getCheckSupplier = (bin: string, needRefresh: boolean) => new Promise((resolve, reject) => {\n axios.get(`${ API }/Kompra/${bin}/All?refresh=${needRefresh}`, {timeout: 120000})\n .then((response) => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getFAQList = () => new Promise((resolve, reject) => {\n axios.get(`${API}/GlobalFaq`)\n .then((response) => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n getStaff = () => {\n return [\n ]\n };\n\n addStaff = (data: any) => new Promise((resolve, reject) => {\n axios.post(`${ API }/Supplier/AddEmployee`, data )\n .then((response) => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n removeStaff = (id: number) => new Promise((resolve, reject) => {\n axios.delete(`${ API }/Supplier/Employee/${id}`)\n .then((response) => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n}\n\nconst supplierService = new SupplierService();\n\nexport default supplierService;\n","export enum THEMES {\n LIGHT = 'LIGHT',\n ONE_DARK = 'ONE_DARK',\n UNICORN = 'UNICORN',\n}\n\nexport enum DIRECTION {\n ltr = 'ltr',\n rtl = 'rtl',\n}\n\nexport enum LANGS {\n EN = 'en',\n RU = 'ru',\n KZ = 'kz',\n}\n\nexport enum SupplierAllowStatus {\n ALLOWED = 'ALLOWED',\n PRICE_NOT_ALLOWED = 'PRICE_NOT_ALLOWED',\n VIOLATIONS_NOT_ALLOWED = 'VIOLATIONS_NOT_ALLOWED',\n PRICE_AND_VIOLATIONS_NOT_ALLOWED = 'PRICE_AND_VIOLATIONS_NOT_ALLOWED',\n NOT_ALLOWED = 'NOT_ALLOWED',\n OUT_OF_STOCK = 'OUT_OF_STOCK',\n}\n\nexport enum DocumentsType {\n OWN = 'Own',\n REQUESTED = 'Requested',\n}\n\nexport enum TenderFilterObjectType {\n Number = 'n',\n Date = 'd',\n}\n\nexport enum TenderStatus {\n Created = 'Created',\n Editing = 'Editing',\n Blocked = 'Blocked',\n Deleted = 'Deleted',\n OnApproval = 'OnApproval',\n Published = 'Published',\n Completed = 'Completed',\n Archived = 'Archived',\n SubmissionCompleted = 'SubmissionCompleted',\n PendingPaymentInfo = 'PendingPaymentInfo',\n OnVerification = 'OnVerification',\n ReadyToPublish = 'ReadyToPublish',\n OnRevision = 'OnRevision',\n PendingPriceDeviation = 'PendingPriceDeviation',\n OAPInspection = 'OAPInspection',\n}\n\nexport enum AvailableRoles {\n USER_CREATE = 'User.Create',\n USER_LIST = 'User.List',\n USER_EDIT = 'User.Edit',\n USER_DELETE = 'User.Delete',\n ROLE_CREATE = 'Role.Create',\n ROLE_LIST = 'Role.List',\n ROLE_EDIT = 'Role.Edit',\n ROLE_DELETE = 'Role.Delete',\n REPORT_CREATE = 'Report.Create',\n REPORT_LIST = 'Report.List',\n SAPDATA_VIEW = 'SAPData.View',\n SAPDATA_LIST = 'SAPData.List',\n TENDER_CREATE = 'Tender.Create',\n TENDER_LIST = 'Tender.List',\n TENDER_EDIT = 'Tender.Edit',\n TENDER_DELETE = 'Tender.Delete',\n TENDER_OPEN = 'Tender.Open',\n TENDER_CLOSE = 'Tender.Close',\n TENDER_SIGN = 'Tender.Sign',\n TENDER_VERIFICATION = 'Tender.Verification',\n TENDER_PENDING_PAYMENT_INFO = 'Tender.PendingPaymentInfo',\n TENDER_PENDING_PRICE_DEVIATION = 'Tender.PendingPriceDeviation',\n TENDER_OAP_INSPECTION = 'Tender.OAPInspection',\n TENDER_PRICE = 'Tender.Price',\n QUESTIONNAIRE_CREATE = 'Questionnaire.Create',\n QUESTIONNAIRE_EDIT = 'Questionnaire.Edit',\n QUESTIONNAIRE_DELETE = 'Questionnaire.Delete',\n}\n\nexport enum SupplierApproveStatus {\n NotApproved = 'NotApproved',\n PartialApproved = 'PartialApproved',\n ApprovedByYou = 'ApprovedByYou',\n FullApproved = 'FullApproved',\n}\n\nexport enum ContractTemplateType {\n Basic = 'Basic',\n WithTolerance = 'WithTolerance',\n WithPrepayment = 'WithPrepayment',\n WithToleranceAndPrepayment = 'WithToleranceAndPrepayment',\n}\n\nexport enum UserActions {\n Login = 'Login',\n TenderCreate = 'TenderCreate',\n SetTenderPrice = 'SetTenderPrice',\n TenderFinancialDepartment = 'TenderFinancialDepartment',\n SearchSupplier = 'SearchSupplier',\n TenderOAP = 'TenderOAP',\n ManualViolationReport = 'ManualViolationReport',\n TenderVerification = 'TenderVerification',\n TenderPublication = 'TenderPublication',\n TenderEdit = 'TenderEdit',\n ChangeTenderDates = 'ChangeTenderDates',\n TenderDelete = 'TenderDelete',\n TenderForApproval = 'TenderForApproval',\n SetTenderWinner = 'SetTenderWinner',\n TenderTypeCreate = 'TenderTypeCreate',\n TenderTypeDelete = 'TenderTypeDelete',\n TenderTypeEdit = 'TenderTypeEdit',\n RoleAdd = 'RoleAdd',\n RoleEdit = 'RoleEdit',\n RoleDelete = 'RoleDelete',\n UserAdd = 'UserAdd',\n UserEdit = 'UserEdit',\n UserDelete = 'UserDelete',\n ManualApplicationsSAPSync = 'ManualApplicationsSAPSync',\n}\n","import axios from '../utils/axios';\nimport { API } from '../constants/constants';\nimport Tender from '../types/Tender';\nimport { NewTenderFAQ } from '../types/TenderFAQ';\nimport { NewTenderQuestion } from '../types/public/Tender';\nimport { base64ToString } from '../utils/helper';\n\nclass TenderService {\n getList = (type = '', path = '') =>\n new Promise((resolve, reject) => {\n let url = `${API}/Tender/List`;\n switch (type) {\n case '?type=m':\n url += '?type=MaterialsProcurement';\n break;\n case '?type=s':\n url += '?type=Service';\n break;\n case '?type=w':\n url += '?type=WorkPerforming';\n break;\n default:\n }\n switch (path) {\n case '/withNotes':\n url += '?withNotes=true';\n break;\n case '/favorite':\n url += '?favorite=true';\n break;\n case '/myTenders':\n url = `${API}/Tender/Active`;\n break;\n case '/activeTenders':\n url = `${API}/Tender/Active`;\n break;\n case '/winner':\n url = `${API}/Tender/Active`;\n break;\n default:\n }\n\n axios\n .get(url)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getListFromFolder = (folderId: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/UserFolder/${folderId}/Tenders`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getTenderDetails = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Tender/${id}`)\n .then(response => {\n if (response.data) {\n resolve({\n ...response.data,\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getTenderFaqs = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/TenderFaqs/${id}`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getTenderFaqList = (ids: number[]) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/TenderFaqs/List`, ids)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getTenderQuestionnaire = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/TenderQuestionnaireTemplate/${id}`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n participantRequestDocuments = (tenderId: number | undefined, data: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${tenderId}/ParticipantRequestDocument`, data)\n .then(response => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getTenderQuestions = (tenderId: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Tender/${tenderId}/Question`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n createTenderQuestion = (question: NewTenderQuestion, tenderId: number) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${tenderId}/Question`, question)\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n addRemoveTenderFav = (tenderId: number, isFavorite: boolean) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${tenderId}/Favorite`, {\n isFavorite,\n })\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n addNoteToTender = (tenderId: number, note: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${tenderId}/Notes`, { ...note })\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n applyTender = (tenderData: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/Participate`, tenderData)\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getActiveTenders = () =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Tender/Active`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n createCommentToQuestion = (questionId: number, tenderId: number, comment: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${tenderId}/Question/${questionId}/Comment`, { comment })\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n downloadFileById = (id: number, isRequested?: boolean) =>\n new Promise((resolve, reject) => {\n let url = `${API}/Tender/File/${id}/Download${isRequested ? '?type=Requested' : ''}`;\n axios\n .get(url, {\n responseType: 'blob',\n })\n .then(response => {\n if (response.data) {\n resolve({\n fileData: response.data,\n type: response.headers['content-type'],\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getTenderType = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/TenderTypes/${id}`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getContract = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Tender/${id}/Contract`, {\n responseType: 'blob',\n })\n .then(response => {\n if (response.data) {\n resolve({\n fileData: response.data,\n type: response.headers['content-type'],\n name: base64ToString(response.headers['x-file-name']),\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n downloadTenderTypeFileById = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/TenderTypes/File/${id}/Download`, {\n responseType: 'blob',\n })\n .then(response => {\n if (response.data) {\n resolve({\n fileData: response.data,\n type: response.headers['content-type'],\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n sendReports = (id: number, data: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${id}/FinishEmail`, data)\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n oapAdmit = (id: number, data: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${id}/OAPAdmit`, data)\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n refuseParticipate = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Tender/${id}/Participate/Refuse`)\n .then(response => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n downloadContract = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Tender/${id}/GenerateContact`, {\n responseType: 'blob',\n })\n .then(response => {\n if (response.data) {\n resolve({\n fileData: response.data,\n type: response.headers['content-type'],\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n exportTenders = (tenders: number[]) => {};\n}\n\nconst tenderService = new TenderService();\n\nexport default tenderService;\n","function track(...args) {\n if (process.env.NODE_ENV !== 'production') {\n return;\n }\n\n if (!window.gtag) {\n return;\n }\n\n window.gtag(...args);\n}\n\nfunction pageview(props) {\n track('config', process.env.REACT_APP_GA_MEASUREMENT_ID, props);\n}\n\nfunction event(type, props) {\n track('event', type, props);\n}\n\nexport default {\n pageview,\n event\n};\n","import React, {\n forwardRef,\n useEffect,\n useCallback,\n} from 'react';\nimport { Helmet } from 'react-helmet';\nimport { useLocation } from 'react-router';\nimport track from '../utils/analytics';\n\nexport interface PageProps {\n title?: string;\n header?: React.ReactNode;\n children?: React.ReactNode;\n hasBackground?: boolean;\n hasOverlap?: boolean;\n hasOverlapMajor?: boolean;\n hasShortHeader?: boolean;\n className?: string;\n styles?: {\n header?: { [key: string]: string };\n layout?: { [key: string]: string };\n };\n}\n\nconst Page = forwardRef(({\n title,\n children,\n ...rest\n}: PageProps, ref: React.Ref) => {\n const location = useLocation();\n\n const sendPageViewEvent = useCallback(() => {\n track.pageview({\n page_path: location.pathname\n });\n }, [location]);\n\n useEffect(() => {\n sendPageViewEvent();\n }, [sendPageViewEvent]);\n\n return (\n \n \n {title}\n \n {children}\n \n );\n});\n\nexport default Page;\n","import axios from '../utils/axios';\nimport { API } from '../constants/constants';\nimport Documents from '../types/public/Documents';\n\nclass DocumentsService {\n getDocuments = () =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/UserDocument`)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n downloadDocument = (id: number, type: string = '') =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/UserDocument/${type ? type + '/' : ''}${id}/Download`, {\n responseType: 'blob',\n })\n .then(response => {\n resolve({\n fileData: response.data,\n type: response.headers['content-type'],\n });\n })\n .catch(error => {\n reject(error);\n });\n });\n\n uploadDocument = (data: FormData) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/UserDocument/Upload`, data)\n .then(response => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n uploadTenderRequestedDocument = (data: FormData, docId: number) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/UserDocument/Upload/RequestDocuments/${docId}`, data)\n .then(response => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n removeFile = (id: number) =>\n new Promise((resolve, reject) => {\n axios\n .delete(`${API}/UserDocument/${id}/Delete`)\n .then(response => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n}\n\nconst documentsService = new DocumentsService();\n\nexport default documentsService;\n","import { Dispatch } from 'redux';\n\nexport const TRIGGER_LOADER = 'TRIGGER_LOADER';\nexport const TRIGGER_MENU_UPDATE = 'TRIGGER_MENU_UPDATE';\nexport const UPDATE_SAP_DATE = 'UPDATE_SAP_DATE';\nexport const SET_TENDER_UPDATES = 'SET_TENDER_UPDATES';\nexport const SET_REQUESTED_DOCS = 'SET_REQUESTED_DOCS';\n\nexport function triggerLoader(showLoader: boolean) {\n return (dispatch: Dispatch) =>\n dispatch({\n type: TRIGGER_LOADER,\n payload: {\n showLoader,\n },\n });\n}\n\nexport function triggerUpdateMenu() {\n return (dispatch: Dispatch) =>\n dispatch({\n type: TRIGGER_MENU_UPDATE,\n });\n}\n\nexport function updateSAPDate(newDate: any) {\n return (dispatch: Dispatch) =>\n dispatch({\n type: UPDATE_SAP_DATE,\n payload: {\n lastSapUpdatedDate: newDate,\n },\n });\n}\n\nexport function setTenderUpdates(updates: any) {\n return (dispatch: Dispatch) =>\n dispatch({\n type: SET_TENDER_UPDATES,\n payload: {\n tenderUpdates: updates,\n },\n });\n}\n\nexport function setRequestedDocs(docs: any) {\n return (dispatch: Dispatch) =>\n dispatch({\n type: SET_REQUESTED_DOCS,\n payload: {\n requestedDocs: docs,\n },\n });\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Box,\n Button, Checkbox, FormControlLabel, FormHelperText, Link,\n makeStyles, TextField, Typography\n} from '@material-ui/core';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\nimport { v4 as uuidv4 } from 'uuid';\nimport { translate } from '../../../utils/i18nHelpers';\nimport { AttachedDocumentItem } from '../../../types/TenderDocuments';\nimport { base64ToFile, downloadSelfUploadedFile, toBase64 } from '../../../utils/helper';\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport SaveIcon from '@material-ui/icons/Save';\nimport _ from 'lodash';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n input: {\n display: 'none',\n },\n fileInput: {\n display: 'flex',\n flexDirection: 'column',\n marginBottom: 10,\n padding: 15,\n marginTop: 15,\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 2px 0 rgba(63,63,68,0.15)',\n borderRadius: 4\n },\n fileData: {\n display: 'flex',\n marginBottom: 10\n },\n button: {\n height: 42\n },\n fileInfo: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n actionContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginTop: 15\n },\n link: {\n cursor: 'pointer',\n marginLeft: 10\n },\n icon: {},\n saveBtn: {\n marginTop: 10\n },\n title: {\n marginTop: 20,\n color: '#000078',\n },\n docItem: {\n display: 'flex',\n flexDirection: 'row',\n padding: 15,\n marginBottom: 15,\n backgroundColor: 'rgba(0, 0, 0, 0.04)'\n },\n docItemName: {\n flexGrow: 1\n },\n docItemDate: {\n minWidth: 130,\n padding: '0 10px',\n boxSizing: 'content-box',\n display: 'flex',\n alignItems: 'center',\n },\n docItemActions: {\n boxSizing: 'content-box',\n minWidth: 215,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n buttonNormalize: {\n height: 30,\n textTransform: 'none',\n },\n itemName: {\n fontSize: 17\n },\n}));\n\ninterface DocumentItemProps {\n title: string;\n data: any;\n setFileToForm: Function;\n required?: boolean;\n showErrors?: boolean;\n}\n\nfunction NewFileItem({\n title,\n data,\n setFileToForm,\n required,\n showErrors,\n ...props\n }: DocumentItemProps & WrappedComponentProps) {\n const classes = useStyles();\n const initialItem: AttachedDocumentItem = {\n _id: uuidv4(),\n id: 0,\n name: '',\n file: null,\n };\n const [fileData, setFileData] = useState(data || initialItem);\n\n const download = () => {\n if (fileData && fileData.file) {\n base64ToFile(fileData.file.content, fileData.file.name, fileData.file.type);\n return;\n }\n };\n\n const removeFile = () => {\n if (fileData) {\n setFileData(initialItem);\n return;\n }\n };\n\n const hasError = () => {\n const error = _.isEmpty(fileData.file);\n if (error && required && showErrors) {\n return translate(props, 'app:Global;validation:required', 'Required');\n }\n return null;\n };\n\n const handleFileChange = async (event: React.ChangeEvent) => {\n const { files } = event.target;\n if (files && files.length) {\n const formData = new FormData();\n formData.append('data', files[0]);\n const fileObj = getFileData(formData);\n const base64Data: string = await toBase64(files[0]);\n setFileData({\n ...fileData,\n file: {\n content: base64Data,\n type: fileObj.type,\n name: fileObj.name,\n }\n });\n setFileToForm({\n ...fileData,\n file: {\n content: base64Data,\n type: fileObj.type,\n name: fileObj.name,\n }\n });\n }\n };\n\n const getFileData = (data?: FormData) => {\n if (data) {\n const file = data.get('data');\n if (file && typeof file !== \"string\") {\n return {\n name: file.name,\n type: file.type\n };\n }\n return { name: 'file', type: '' };\n }\n return { name: '', type: '' };\n };\n\n return (<>\n
\n
\n { fileData.file &&\n {\n download();\n } }>\n { title }\n \n }\n { !fileData.file &&\n \n { title }\n \n }\n { hasError() && (\n \n { hasError() }\n \n ) }\n
\n
\n \n \n
\n
\n { fileData.file &&\n }\n onClick={ () => {\n download();\n } }\n >\n { translate(props, 'pub:Documents;DownloadBtn:title') }\n \n }\n { !fileData.file &&\n <>\n ) => {\n handleFileChange(event);\n } }\n id={ `chooseFile-${ title }` }\n type=\"file\"\n />\n \n \n }\n {\n removeFile();\n } }\n startIcon={ }\n >\n { translate(props, 'pub:Documents;RemoveBtn:title') }\n \n
\n
\n \n );\n}\n\nexport default injectIntl(NewFileItem);\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useHistory } from 'react-router';\nimport {\n Avatar,\n Box,\n Container,\n Card,\n CardContent,\n CardMedia,\n Divider,\n Typography,\n colors,\n makeStyles,\n Button,\n DialogActions,\n TextField,\n DialogContent,\n DialogTitle,\n Dialog,\n Link,\n IconButton,\n SvgIcon,\n FormControl,\n FormLabel,\n RadioGroup,\n FormControlLabel,\n Radio,\n InputLabel,\n Select,\n MenuItem,\n FormHelperText,\n Tooltip,\n Checkbox,\n Stepper,\n Step,\n StepLabel,\n Table,\n TableHead,\n TableCell,\n TableBody,\n TableRow,\n CardHeader,\n Grid,\n withStyles,\n StepConnector,\n StepIconProps,\n} from '@material-ui/core';\nimport { ThemConfig } from '../../../types/Them';\nimport clsx from 'clsx';\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from 'react-intl';\nimport User from '../../../types/User';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { translate } from '../../../utils/i18nHelpers';\nimport authService from '../../../publicServices/authService';\nimport * as Yup from 'yup';\nimport EditIcon from '@material-ui/core/SvgIcon/SvgIcon';\nimport InputMask from 'react-input-mask';\nimport { Formik } from 'formik';\nimport HelpIcon from '@material-ui/icons/Help';\nimport { useSnackbar } from 'notistack';\nimport LoginView from '../LoginView';\nimport moment from 'moment';\nimport NewFileItem from '../RegisterView/NewFileItem';\nimport { Check } from '@material-ui/icons';\nimport supplierService from '../../../publicServices/supplierService';\nimport LicenseDialog from '../RegisterViewRedesign/LicenseDialog';\nimport _ from 'lodash';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n card: {\n background: 'hsl(0deg 0% 100% / 50%)',\n backdropFilter: 'blur(10px)',\n border: '1px solid #979696',\n marginBottom: 20,\n padding: 15,\n },\n root: {\n minWidth: 400,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n button: {\n backgroundColor: '#000078',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#000099',\n },\n },\n radioGroup: {\n flexDirection: 'row',\n },\n tabs: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 10,\n minWidth: 400,\n },\n tabItem: {\n textTransform: 'none',\n color: '#000078',\n fontFamily: 'SegoeUI-Bold!important',\n },\n selectedTab: {\n borderBottom: '1px solid #000078',\n borderRadius: 0,\n fontFamily: 'SegoeUI',\n },\n phoneNumber: {\n width: '100%',\n padding: '17px 14px',\n border: '1px solid rgb(209, 209, 209)',\n borderRadius: '4px',\n fontFamily: 'SegoeUI',\n fontSize: 'inherit',\n '&:focus': {\n outline: 'none',\n boxShadow: '0 0 0 1px blue',\n },\n '&:hover': {\n border: '1px solid black',\n },\n },\n error: {\n border: '1px solid red',\n // color: 'red'\n },\n formControl: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n minWidth: 120,\n },\n policy: {\n maxHeight: 400,\n overflow: 'auto',\n marginTop: 10,\n },\n helperText: {\n marginLeft: 18,\n },\n helpText: {\n color: 'white',\n },\n stepperActions: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: 10,\n },\n stepper: {\n backgroundColor: 'transparent',\n width: 195,\n },\n binBox: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n binButton: {\n height: 55,\n marginLeft: 15,\n marginTop: 6,\n },\n katoButton: {\n height: 55,\n marginLeft: 15,\n },\n datePicker: {\n marginRight: 15,\n minWidth: 260,\n },\n firstChief: {\n display: 'flex',\n flexDirection: 'row',\n },\n passwordBox: {\n display: 'flex',\n flexDirection: 'row',\n },\n option: {\n fontSize: 15,\n '& > span': {\n marginRight: 10,\n fontSize: 18,\n },\n },\n binIinWrap: {\n display: 'flex',\n flexDirection: 'row',\n },\n notResidentWrap: {\n display: 'flex',\n flexDirection: 'row',\n },\n formAndActions: {\n display: 'flex',\n flexDirection: 'column',\n },\n marginRight: {\n marginRight: '15px',\n },\n flag: {\n marginRight: '5px',\n },\n menuItemWrapper: {\n display: 'flex',\n },\n buttonCenter: {\n textAlign: 'center',\n },\n disabled: {\n color: 'grey!important',\n },\n certificate: {},\n modalTitle: {\n fontSize: '20px',\n },\n link: {\n color: '#000078',\n },\n}));\n\ninterface Response {\n responseObject?: any;\n code?: string;\n errorCode?: any;\n}\n\nconst useQontoStepIconStyles = makeStyles({\n root: {\n color: 'rgba(0, 0, 0, 0.38)',\n display: 'flex',\n height: 35,\n alignItems: 'center',\n width: 35,\n justifyContent: 'center',\n },\n active: {\n color: '#784af4',\n },\n circle: {\n width: 35,\n height: 35,\n borderRadius: '50%',\n backgroundColor: 'currentColor',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n circleText: {\n color: 'white',\n },\n completed: {\n color: '#784af4',\n zIndex: 1,\n fontSize: 23,\n },\n});\n\nconst QontoConnector = withStyles({\n vertical: {\n marginLeft: 17,\n padding: '5px 0',\n },\n})(StepConnector);\n\nfunction QontoStepIcon(props: StepIconProps) {\n const classes = useQontoStepIconStyles();\n const { active, completed } = props;\n\n return (\n \n {completed ? (\n \n ) : (\n
\n {props.icon}\n
\n )}\n \n );\n}\n\nconst requiredFieldsByStep = [\n ['bin', 'supplierName'],\n ['organizationData.phone', 'organizationData.email'],\n [],\n ['firstChief.email', 'firstChief.phone', 'password', 'passwordConfirmation'],\n [],\n [\n 'attachedDocs.charter',\n 'attachedDocs.directorAppointmentOrder',\n 'attachedDocs.certificateOfStateReRegistration',\n 'attachedDocs.certificateVATRegistration',\n 'attachedDocs.licenseCopy',\n 'attachedDocs.identityDocument',\n 'policy',\n ],\n [],\n];\n\nfunction DigitalSignatureView({\n onSubmitSuccess,\n hideLink,\n mode,\n className,\n close,\n ...rest\n}: {\n onSubmitSuccess?: Function;\n hideLink?: boolean;\n mode: string;\n className?: string;\n close?: Function;\n} & WrappedComponentProps) {\n const ws = useRef();\n const classes = useStyles();\n const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n const [ready, setReady] = useState(false);\n const [state, setState] = useState({ registrationData: {} });\n const [open, setOpen] = useState(false);\n const [openLicence, setOpenLicence] = useState(false);\n const [activeStep, setActiveStep] = React.useState(0);\n const steps = [\n '1. Сведения о компании',\n '2. Юридический адрес',\n '3. Учредители',\n '4. Руководитель',\n '5. Дополнительный пользователь',\n '6. Документы',\n '7. Соглашения',\n ];\n const [selectedSupplier, setSelectedSupplier] = useState(null);\n const [binOrIin, setBinOrIin] = useState('');\n const [needAdditionalUser, setNeedAdditionalUser] = useState(true);\n const [policySign, setPolicySign] = useState(false);\n\n const getFieldData = (fieldName: string, data = []) => {\n const foundFiled =\n data &&\n data.find((item: any) => {\n return item.type === fieldName;\n });\n if (foundFiled) {\n return foundFiled;\n }\n return {\n value: 'Нет данных',\n };\n };\n\n useEffect(() => {\n tryConnect();\n\n return () => {\n ws.current!.close();\n };\n }, [setReady]);\n\n const tryConnect = () => {\n ws.current = new WebSocket('wss://127.0.0.1:13579/');\n\n ws.current.onopen = e => {\n // tslint:disable-next-line\n console.log('connection opened');\n setReady(true);\n };\n ws.current.onclose = e => {\n if (e.wasClean) {\n // tslint:disable-next-line\n console.log('connection closed');\n } else {\n // tslint:disable-next-line\n console.log('connection error: [code]=' + e.code + ', [reason]=' + e.reason);\n setOpen(true);\n }\n setReady(false);\n };\n };\n\n const needAdditionalUserChange = () => {\n setNeedAdditionalUser(!needAdditionalUser);\n };\n\n const handleNext = (values: any, setErrors?: Function, setFieldTouched?: Function) => {\n if (activeStep === 3 && !needAdditionalUser) {\n setActiveStep(prevActiveStep => {\n if (checkEmptyFiled(prevActiveStep, setErrors)) {\n return prevActiveStep;\n }\n return prevActiveStep + 2;\n });\n } else {\n setActiveStep(prevActiveStep => {\n if (checkEmptyFiled(prevActiveStep, setErrors)) {\n return prevActiveStep;\n }\n return prevActiveStep + 1;\n });\n }\n\n function checkEmptyFiled(prevActiveStep: number, setErrors?: Function) {\n let invalid = false;\n const fieldErrors: any = {};\n _.forEach(requiredFieldsByStep[prevActiveStep], (path: string, index: number) => {\n if (prevActiveStep === 5 && binOrIin === 'iin' && index === 1) {\n return;\n }\n if (prevActiveStep === 5 && binOrIin === 'bin' && (index === 4 || index === 5)) {\n return;\n }\n const value = _.get(values, path, '');\n const empty = _.isEmpty(value);\n if (prevActiveStep === 3 && index === 0) {\n const isValidEmail = value.match(\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n if (!isValidEmail) {\n _.set(fieldErrors, path, translate(rest, 'app:Global;validation:required', 'Required'));\n if (setFieldTouched) {\n setFieldTouched(path);\n }\n if (!invalid) {\n invalid = true;\n }\n }\n }\n if (empty) {\n _.set(fieldErrors, path, translate(rest, 'app:Global;validation:required', 'Required'));\n if (setFieldTouched) {\n setFieldTouched(path);\n }\n }\n if (!invalid && empty) {\n invalid = empty;\n }\n });\n if (setErrors) {\n setErrors(fieldErrors);\n }\n if (prevActiveStep === 5 && Object.keys(fieldErrors).length === 1 && Boolean(fieldErrors.policy)) {\n return false;\n }\n return invalid;\n }\n };\n\n const handleBack = () => {\n if (activeStep === 5 && !needAdditionalUser) {\n setActiveStep(prevActiveStep => prevActiveStep - 2);\n } else {\n setActiveStep(prevActiveStep => prevActiveStep - 1);\n }\n };\n\n const checkXml = async (signXml: string) => {\n const responseData = await authService.checkXmlAfterSign(signXml);\n const bin = responseData ? responseData.organizationalNumber : '';\n\n const dataChecks: any = await supplierService.getCheckSupplierBasic(bin, false);\n const nds: any = await supplierService.getCheckSupplierNds(bin, false);\n const licenses: any = await supplierService.getCheckSupplierLicenses(bin, false);\n let graph: any = await supplierService.getCheckSupplierGraph(bin, false);\n // const founders: any = await supplierService.getCheckSupplierFounders(bin, false);\n setSelectedSupplier({\n generalInfo: {\n bin: dataChecks.bin ? dataChecks.bin : 'Нет данных',\n okpo: dataChecks.okpo ? dataChecks.okpo : 'Нет данных',\n kato: dataChecks.kato ? dataChecks.kato : 'Нет данных',\n registerDate: dataChecks.registerDate ? moment(dataChecks.registerDate).format('DD.MM.YYYY') : 'Нет данных',\n supervisor: dataChecks.owner ? dataChecks.owner : 'Нет данных',\n krp: dataChecks.workers ? dataChecks.workers : 'Нет данных',\n oked: dataChecks.oked ? { oked: dataChecks.oked, fields: dataChecks.field } : 'Нет данных',\n VATPayer: nds ? nds : null,\n license: licenses ? licenses.content : 0,\n },\n });\n if (graph && graph.graphStatus === 'SYNC') {\n graph = await supplierService.getCheckSupplierGraph(bin, true);\n }\n /*callback('legalAddress.kato', dataChecks.kato);\n callback('krp', dataChecks.workers ? dataChecks.workers : '');\n callback('okpo', dataChecks.okpo ? dataChecks.okpo : '');\n callback('oked', dataChecks.oked ? {oked: dataChecks.oked, fields: dataChecks.field} : '');\n callback('vatPayer', nds ? nds : {});\n callback('license', licenses ? licenses.content : []);\n callback('legalAddress.region', dataChecks.region);\n callback('legalAddress.roomNumber', dataChecks.lawAddress);\n callback('firstChief.name', dataChecks.owner);\n callback('supplierName', dataChecks.fullName);\n callback('organizationData.email', dataChecks.email);\n callback('organizationData.phone', dataChecks.phone);\n callback('organizationData.site', dataChecks.website);\n callback('chiefBin', graph ? graph.owner.iin : '');\n callback('chiefName', graph ? graph.owner.name : '');*/\n\n // const responseData = await authService.checkXmlAfterSign(signXml);\n // const dataChecks: any = await supplierService.getSupplierChecks(responseData.organizationalNumber, false);\n /*setSelectedSupplier({\n generalInfo: {\n bin: dataChecks.bin ? dataChecks.bin : 'Нет данных',\n okpo: dataChecks.okpo ? dataChecks.okpo : 'Нет данных',\n kato: dataChecks.kato ? dataChecks.kato : 'Нет данных',\n registerDate: dataChecks.registerDate ? dataChecks.registerDate : 'Нет данных',\n supervisor: getFieldData('Руководитель', dataChecks.fields),\n status: getFieldData('Статус', dataChecks.fields),\n krp: getFieldData('КРП', dataChecks.fields),\n oked: getFieldData('ОКЭД', dataChecks.fields),\n VATPayer: getFieldData('Плательщик НДС', dataChecks.fields),\n license: getFieldData('Лицензии', dataChecks.fields)\n },\n });*/\n setState({ ...state, registrationData: responseData, ...dataChecks });\n switch (Number(dataChecks.bin[4])) {\n case 0:\n case 1:\n case 2:\n case 3:\n setBinOrIin('iin');\n break;\n case 4:\n case 5:\n case 6:\n setBinOrIin('bin');\n break;\n }\n };\n\n useEffect(() => {\n const signXmlCallback = async (resp: Response) => {\n if (resp && resp.code && resp.code === '200') {\n await checkXml(resp.responseObject);\n return;\n }\n };\n\n ws.current!.onmessage = e => {\n if (e.data === '--heartbeat--') {\n return;\n }\n\n const data = JSON.parse(e.data);\n if (data !== null) {\n switch (state.method) {\n case 'signXml':\n signXmlCallback(data);\n break;\n default:\n // tslint:disable-next-line\n const payload = JSON.parse(e.data);\n break;\n }\n }\n };\n }, [state, setState]);\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const changeReadOnly = (event: any) => {\n const readonly = event.currentTarget.previousElementSibling.readOnly;\n event.currentTarget.previousElementSibling.readOnly = !readonly;\n };\n\n const loginWithCert = async () => {\n if (ready) {\n setState({\n ...state,\n method: 'signXml',\n });\n const xmlToSign = await authService.getXmlToSign();\n const send = {\n args: ['PKCS12', 'AUTHENTICATION', xmlToSign, '', ''],\n method: 'signXml',\n module: 'kz.gov.pki.knca.commonUtils',\n };\n ws.current!.send(JSON.stringify(send));\n } else {\n tryConnect();\n }\n };\n\n const charts = '(.,:;?!*+%-<>@[]{ }/\\\\\\\\_{ }$#)';\n\n let initialData = {\n bin: state.registrationData.organizationalNumber,\n supplierName: state.registrationData.organizationName,\n chiefName: '',\n personName: '',\n supplierChanged: false,\n chiefChanged: false,\n employeeCount: 0,\n supplierHasChief: false,\n isChief: false,\n email: '',\n mask: '+7 (999) 999-99-99',\n phoneNumber: '',\n contactNumber: '',\n position: '',\n password: '',\n passwordConfirmation: '',\n policy: false,\n firstRegisterDate: new Date(),\n reRegisterDate: null,\n issuingAuthority: '',\n kindOfActivity: '',\n chiefBin: '',\n founderType: 'individual',\n firstChief: {\n firstUser: false,\n firstName: '',\n lastName: '',\n surname: '',\n name: getFieldData('Руководитель', state.fields).value,\n iin: '',\n email: '',\n phone: '',\n },\n legalAddress: {\n country: 'Казахстан',\n kato: state.kato,\n street: '',\n houseNumber: '',\n roomNumber: getFieldData('Юридический адрес', state.fields).value,\n region: getFieldData('Регион', state.fields).value,\n address: '',\n },\n actualAddress: {\n country: 'Казахстан',\n kato: '',\n street: '',\n houseNumber: '',\n roomNumber: '',\n address: '',\n },\n organizationData: {\n phone: '',\n email: '',\n site: '',\n },\n mainUser: {\n firstName: '',\n lastName: '',\n surname: '',\n iin: '',\n email: '',\n phone: '',\n mainUser: 'false',\n position: '',\n positionKZ: '',\n positionEN: '',\n },\n isLegalAddress: true,\n attachedDocs: {\n charter: null,\n directorAppointmentOrder: null,\n certificateOfStateReRegistration: null,\n certificateVATRegistration: null,\n licenseCopy: null,\n identityDocument: null,\n specialLicense: null,\n },\n };\n\n const handleSubmitSuccess = (email: string) => {\n if (onSubmitSuccess) {\n onSubmitSuccess(email);\n }\n };\n\n const openLicenseDialog = (event: any) => {\n event.preventDefault();\n setOpenLicence(true);\n };\n\n const closeLicenseDialog = (event: any) => {\n event.preventDefault();\n setOpenLicence(false);\n };\n\n return (\n \n {state.registrationData &&\n state.registrationData.success &&\n mode === 'login' &&\n `XML подписан: ${state.registrationData.organizationName}`}\n\n {selectedSupplier && Boolean(selectedSupplier.generalInfo.license) && (\n \n )}\n\n {state.registrationData && state.registrationData.success && mode === 'registration' && (\n
\n }\n orientation=\"vertical\"\n >\n {steps.map((label, key) => (\n \n {label}\n \n ))}\n \n {\n let count = 0;\n count += /[a-z]/.test(val) ? 1 : 0;\n count += /[A-Z]/.test(val) ? 1 : 0;\n count += /\\d/.test(val) ? 1 : 0;\n count += /[\\!\\@\\?\\,\\/\\\\\\#\\$\\%\\*\\)\\(\\+\\.\\<\\>\\{\\}\\[\\]\\:\\;\\_\\-]/g.test(val) ? 1 : 0;\n\n if (count > 3) {\n return true;\n }\n return false;\n })\n .required(translate(rest, 'app:Global;validation:required', 'Required')),\n passwordConfirmation: Yup.string()\n .min(12, translate(rest, 'app:Global;validation:minLengthPassword', ''))\n .max(255)\n .test('password', translate(rest, 'app:Global;validation:wrongPassword'), val => {\n let count = 0;\n count += /[a-z]/.test(val) ? 1 : 0;\n count += /[A-Z]/.test(val) ? 1 : 0;\n count += /\\d/.test(val) ? 1 : 0;\n count += /[\\!\\@\\?\\,\\/\\\\\\#\\$\\%\\*\\)\\(\\+\\.\\<\\>\\{\\}\\[\\]\\:\\;\\_\\-]/g.test(val) ? 1 : 0;\n\n if (count > 3) {\n return true;\n }\n return false;\n })\n .required(translate(rest, 'app:Global;validation:required', 'Required'))\n .oneOf([Yup.ref('password'), null], 'Пароли должны совпадать'),\n policy: Yup.boolean().oneOf([true]),\n organizationData: Yup.object().shape({\n phone: Yup.string().required(translate(rest, 'app:Global;validation:required', 'Required')),\n email: Yup.string()\n .email(translate(rest, 'app:Global;validation:email', 'Must be valid email'))\n .required(translate(rest, 'app:Global;validation:required', 'Required')),\n }),\n firstChief: Yup.object().shape({\n phone: Yup.string().required(translate(rest, 'app:Global;validation:required', 'Required')),\n email: Yup.string()\n .email(translate(rest, 'app:Global;validation:email', 'Must be valid email'))\n .required(translate(rest, 'app:Global;validation:required', 'Required')),\n }),\n })}\n onSubmit={async (values, { setStatus, setSubmitting }) => {\n try {\n let registerValues = { ...values };\n registerValues.email = values.firstChief.email;\n registerValues.phoneNumber = values.firstChief.phone;\n registerValues.personName = values.firstChief.name;\n await authService.registration(registerValues);\n sessionStorage.setItem('registeredEmail', registerValues.email);\n supplierService.getCheckSupplier(selectedSupplier.generalInfo.bin, true);\n onSubmitSuccess && onSubmitSuccess(registerValues.email);\n // const message = `${ registerValues.personName } ${ translate(rest, 'app:Notifications;Registration:success', 'Registration success') }`;\n const message =\n 'Спасибо за регистрацию на Портале Электронных Закупок. Мы проверяем Ваши данные. Проверка может занять до 5 рабочих дней. Мы сообщим о результатах проверки';\n enqueueSnackbar(message, {\n variant: 'success',\n autoHideDuration: 10000,\n });\n } catch (error) {\n setStatus({ success: false });\n setSubmitting(false);\n if (close) {\n close();\n }\n /*enqueueSnackbar(translate(rest, 'app:Notifications;Registration:error', 'Registration error'), {\n variant: 'error',\n autoHideDuration: 10000,\n });*/\n }\n }}\n >\n {({\n errors,\n handleBlur,\n handleChange,\n handleSubmit,\n isSubmitting,\n touched,\n values,\n setFieldValue,\n setErrors,\n setFieldTouched,\n }) => (\n
\n \n {activeStep === 0 && (\n <>\n Сведения о компании\n \n \n \n <>\n {selectedSupplier && (\n <>\n {\n setFieldValue('supplierName', event.target.value);\n setFieldValue('supplierChanged', true);\n }}\n value={values.supplierName}\n variant=\"outlined\"\n required\n />\n \n \n \n \n \n \n БИН/ИИН\n ОКПО\n КАТО\n Регистрация\n \n \n \n \n \n \n {selectedSupplier && selectedSupplier.generalInfo.bin}\n \n \n \n \n {selectedSupplier && selectedSupplier.generalInfo.okpo}\n \n \n \n \n {selectedSupplier && selectedSupplier.generalInfo.kato}\n \n \n \n \n {selectedSupplier && selectedSupplier.generalInfo.registerDate}\n \n \n \n \n
\n
\n
\n \n \n \n \n \n \n \n Руководитель\n \n \n {selectedSupplier && selectedSupplier.generalInfo.supervisor}\n \n \n \n \n КРП\n \n \n {selectedSupplier && selectedSupplier.generalInfo.krp}\n \n \n \n \n ОКЭД\n \n {selectedSupplier && selectedSupplier.generalInfo.oked.oked ? (\n <>\n \n {selectedSupplier && selectedSupplier.generalInfo.oked.oked}\n \n {selectedSupplier &&\n selectedSupplier.generalInfo.oked.fields.map(\n (item: any, index: number) => {\n return (\n \n {item}\n \n );\n }\n )}\n \n ) : (\n \n {selectedSupplier && selectedSupplier.generalInfo.oked}\n \n )}\n \n \n \n Плательщик НДС\n \n \n {selectedSupplier && selectedSupplier.generalInfo.VATPayer\n ? selectedSupplier.generalInfo.VATPayer.status === true\n ? `Да ${\n selectedSupplier.generalInfo.VATPayer.creationTime\n ? '(Проверено ' +\n moment(selectedSupplier.generalInfo.VATPayer.creationTime).format(\n 'DD.MM.YYYY, HH:mm'\n ) +\n ')'\n : ''\n }`\n : 'Нет'\n : 'Нет данных'}\n \n \n \n \n Лицензии\n \n \n {selectedSupplier && Boolean(selectedSupplier.generalInfo.license.length) && (\n {\n openLicenseDialog(event);\n }}\n >\n Всего {selectedSupplier.generalInfo.license.length} лицензий\n \n )}\n {selectedSupplier &&\n !Boolean(selectedSupplier.generalInfo.license.length) &&\n 'Всего 0 лицензий'}\n \n \n \n \n
\n
\n
\n \n )}\n {/*\n Данные о регистрации\n \n \n setFieldTouched('firstRegisterDate')}\n onClose={() => setFieldTouched('firstRegisterDate')}\n onAccept={() => setFieldTouched('firstRegisterDate')}\n onChange={(date) => setFieldValue('firstRegisterDate', date)}\n />\n setFieldTouched('reRegisterDate') }\n onClose={ () => setFieldTouched('reRegisterDate') }\n onAccept={ () => setFieldTouched('reRegisterDate') }\n onChange={ (date) => setFieldValue('reRegisterDate', date) }\n />\n \n \n */}\n \n \n )}\n {activeStep === 1 && (\n <>\n Юридический адрес регистрации\n \n }\n label={'Юридический адрес указан верно'}\n />\n \n \n \n \n \n \n {/*\n \n {\n }}\n variant=\"contained\"\n >\n {translate(rest, 'pub;Registration;Form:Search', 'Search')}\n \n */}\n \n \n \n \n <>\n {!values.isLegalAddress && (\n <>\n \n \n \n \n \n \n \n )}\n {values.isLegalAddress && (\n <>\n \n \n \n \n )}\n \n \n \n \n \n \n {/*{ !values.isLegalAddress && <>\n \n Фактический адрес местонахождения\n \n \n \n \n \n \n \n \n \n {\n }}\n variant=\"contained\"\n >\n {translate(rest, 'pub;Registration;Form:Search', 'Search')}\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 \n {Boolean(errors.organizationData && errors.organizationData.phone) && (\n \n {errors.organizationData && errors.organizationData.phone}\n \n )}\n \n \n \n \n \n \n \n \n \n \n )}\n {activeStep === 2 && (\n <>\n Учредители\n \n \n Тип учредителя\n \n \n \n \n \n \n \n \n \n )}\n {activeStep === 3 && (\n <>\n Руководитель\n \n \n {/*\n \n {\n setFieldValue('firstChief.lastName', event.target.value);\n setFieldValue('firstChiefChanged', true);\n }}\n value={values.firstChief.lastName}\n variant=\"outlined\"\n />\n \n \n {\n setFieldValue('firstChief.firstName', event.target.value);\n setFieldValue('firstChiefChanged', true);\n }}\n value={values.firstChief.firstName}\n variant=\"outlined\"\n />\n \n \n {\n setFieldValue('firstChief.surname', event.target.value);\n setFieldValue('firstChiefChanged', true);\n }}\n value={values.firstChief.surname}\n variant=\"outlined\"\n />\n \n */}\n \n \n \n {Boolean(errors.firstChief && errors.firstChief.phone) && (\n \n {errors.firstChief && errors.firstChief.phone}\n \n )}\n \n \n \n \n \n {\n \n - пароль должен состоять из букв латинского алфавита (A-z);\n \n }\n {\n \n - минимальная длина пароля 12 символов;\n \n }\n {\n \n - буквенная часть пароля должна содержать как строчные, так и прописные\n (заглавные) буквы - использование символов верхнего и нижнего регистров;\n \n }\n {\n \n - использование специальных символов {charts} и цифр (0-9);\n \n }\n \n }\n >\n \n \n \n ),\n }}\n value={values.password}\n variant=\"outlined\"\n />\n \n \n \n \n {\n \n - пароль должен состоять из букв латинского алфавита (A-z);\n \n }\n {\n \n - минимальная длина пароля 12 символов;\n \n }\n {\n \n - буквенная часть пароля должна содержать как строчные, так и прописные\n (заглавные) буквы - использование символов верхнего и нижнего регистров;\n \n }\n {\n \n - использование специальных символов {charts} и цифр (0-9);\n \n }\n \n }\n >\n \n \n \n ),\n }}\n value={values.passwordConfirmation}\n variant=\"outlined\"\n />\n \n \n \n \n \n }\n label={'Желаете добавить дополнительного пользователя?'}\n />\n \n )}\n {activeStep === 4 && (\n <>\n Дополнительный пользователь\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {Boolean(\n touched.mainUser && touched.mainUser.phone && errors.mainUser && errors.mainUser.phone\n ) && (\n \n {errors.mainUser && errors.mainUser.phone}\n \n )}\n \n \n \n \n \n )}\n {activeStep === 5 && (\n <>\n \n {\n setFieldValue('attachedDocs.charter', file);\n }}\n />\n {binOrIin === 'bin' && (\n {\n setFieldValue('attachedDocs.directorAppointmentOrder', file);\n }}\n />\n )}\n {\n setFieldValue('attachedDocs.certificateOfStateReRegistration', file);\n }}\n />\n {\n setFieldValue('attachedDocs.certificateVATRegistration', file);\n }}\n />\n {\n setFieldValue('attachedDocs.specialLicense', file);\n }}\n />\n {binOrIin === 'iin' && (\n <>\n {\n setFieldValue('attachedDocs.licenseCopy', file);\n }}\n />\n {\n setFieldValue('attachedDocs.identityDocument', file);\n }}\n />\n \n )}\n \n \n )}\n {activeStep === 6 && (\n <>\n \n \n {translate(rest, 'pub;Registration;Form:policy:header')}\n \n \n \n
\n

\n Настоящее Пользовательское соглашение регулирует отношения в отношении интернет-ресурса\n – Портала электронных закупок АО «УКТМК» (далее –\n «Портал») между Собственником Портала и Пользователем на нижеследующих условиях:\n

\n

 

\n

\n Текст и содержание Пользовательского соглашения могут быть изменены Собственником в любое\n время без какого-либо специального уведомления Пользователя, при этом новая редакция\n Пользовательского соглашения вступает в силу с момента ее размещения Собственником на\n Портале по адресу: https://e-procurement.uktmp.kz, если Собственником прямо не будет указано\n иное в отдельном сопроводительном сообщении.\n

\n

 

\n

\n Регулярное ознакомление с действующей редакцией Пользовательского соглашения является\n обязанностью Пользователя.\n

\n

 

\n

\n Использование Пользователем Портала после вступления в силу новой редакции Пользовательского\n соглашения означает полное согласие Пользователя и применение к отношениям между\n Пользователем и Собственником положений Пользовательского соглашения в новой действующей\n редакции.\n

\n

 

\n
    \n \n
  1. 1. Термины и определения
  2. \n
    \n
\n

\n 1.1. Пользователь – посетитель интернет-ресурсов сети Internet, в том числе Портала.\n

\n

\n 1.2. Портал – интернет-ресурс, расположенный по адресу: https://e-procurement.uktmp.kz\n и представляющий собой совокупность содержащихся в информационной системе информации и\n объектов интеллектуальной собственности (в том числе, программа для ЭВМ, база данных,\n графическое оформление интерфейса (дизайн) и др.).\n

\n

\n 1.3. Собственник Портала – АО «Усть-Каменогорский титано-магниевый\n комбинат».\n

\n

 

\n
    \n \n
  1. 2. Общие положения
  2. \n
    \n
\n

\n 2.1. Собственник предлагает Пользователю на условиях настоящего Пользовательского соглашения\n воспользоваться информацией, ресурсами и сервисом Портала.\n

\n

\n 2.2. Информация, ресурсы и сервис Портала предоставляются Пользователю бесплатно, если на\n Портале не указано иное.\n

\n

\n 2.3. Предоставление отдельной информации, ресурсов и сервисов Портала могут регулироваться\n специальными правилами и/или соглашениями, являющимися неотъемлемой частью настоящего\n Пользовательского соглашения и приведенными на Портале.\n

\n

\n 2.4. Независимо от факта регистрации или авторизации Пользователя на Портале, использование\n Пользователем Портала, включая просмотр размещенной на Портале информации, означает полное\n согласие Пользователя с настоящим Пользовательским соглашением и принятие им на себя\n обязательств следовать инструкциям по использованию Портала, а также предусмотренной в\n отношении Пользователя ответственности.\n

\n

\n 2.5. Осуществляя доступ к Порталу и заключая настоящее Пользовательское соглашение,\n Пользователь гарантирует, что обладает всеми правами и полномочиями, необходимыми для\n заключения и исполнения Пользовательского соглашения согласно действующего законодательства\n Республики Казахстан.\n

\n

 

\n
    \n \n
  1. 3. Сведения, предоставляемые Пользователями
  2. \n
    \n
\n

\n 3.1. В рамках использования Портала Пользователь обязуется предоставлять только достоверные\n сведения и самостоятельно несет полную ответственность за такую предоставленную информацию.\n Пользователь обязуется своевременно актуализировать данные сведения.\n

\n

3.2. В процессе пользования Порталом Пользователь самостоятельно и добровольно:

\n

\n 3.2.1. принимает решение о предоставлении Собственнику или размещении в открытом доступе\n своих персональных и иных сведений с учетом Политики конфиденциальности и обработки\n персональных данных, актуальный текст которой расположен по адресу:\n https://e-procurement.uktmp.kz  (далее – «Политика»);\n

\n

\n 3.2.2. заявляет о своем согласии на обработку Порталом персональных и иных данных\n Пользователя, в том числе для целей: предоставления консультационной поддержки Пользователям\n в связи с использованием Портала; доставки сообщений другим Пользователям; получения\n статистических и аналитических данных для улучшения функционирования Портала; получения\n информационных и/или рекламных сообщений от Портала, в том числе в виде коротких сообщений\n (sms-сообщений) на номера мобильных телефонов и e-mail писем на адреса электронной почты,\n указанные Пользователем или его представителем, или размещенных с помощью Портала, либо в\n виде уведомлений с помощью Портала, а также в виде интерактивных графиков, детализированных\n отчетов и иных аналитических отчетов; предупреждения или пресечения незаконных и/или\n несанкционированных действий Пользователей; обеспечения соблюдения требований действующего\n законодательства Республики Казахстан.\n

\n

\n 3.3. Собственник Портала принимает все необходимые меры для защиты персональных данных\n Пользователя от несанкционированного доступа третьих лиц в соответствии с Политикой.\n

\n

\n 3.4. Собственник Портала не оказывает Пользователю консультаций по вопросам, не относящимся\n к Порталу.\n

\n

3.5. Пользователь соглашается:

\n

3.5.1. на сбор Порталом обезличенных статистических данных о Пользователе;

\n

\n 3.5.2. на передачу Собственником Портала третьим лицам обезличенных статистических данных, в\n том числе для целей их обработки, для обеспечения функционирования Портала, реализации\n партнерских и иных программ Портала, при условии соблюдения Собственником Портала условий,\n отраженных в Политике.\n

\n

 

\n
    \n \n
  1. 4. Обязательства Пользователя
  2. \n
    \n
\n

\n 4.1. Пользователь обязуется действовать исключительно в соответствии с действующим\n законодательством и настоящим Пользовательским соглашением, а также нести в соответствии с\n законодательством Республики Казахстан полную ответственность за собственные действия и\n бездействие на Портале.\n

\n

\n 4.2. Портал может быть использован Пользователем исключительно в целях, для которых данный\n Портал и предназначен.\n

\n

\n 4.3. Пользователь также обязуется не копировать, не воспроизводить, не изменять, не\n распространять и не представлять общественности любую информацию, содержащуюся на Портале\n (кроме сведений, предоставленных самим Пользователем) без предварительного письменного\n разрешения от Собственника Портала и любой третьей стороны (если информация также\n затрагивает интересы данных третьих лиц).\n

\n

\n 4.4. В целях пресечения или предотвращения нарушения Пользовательского соглашения и/или\n причинения ущерба Порталу (например, DDoS-атаки или иные хакерские атаки, неавторизованное\n использование программных средств и прочее), Собственник вправе ограничивать доступ\n Пользователей к Порталу путем блокирования доступа с соответствующего ip-адреса или\n диапазона ip-адресов.\n

\n

\n 4.5. Осуществляя доступ к Порталу, Пользователь выражает свое согласие на получение\n рекламной информации, размещенной на Портале третьими лицами. Пользователь понимает и\n соглашается, что Портал не определяет содержание и не несет ответственности за такую\n информацию, включая сайты, ссылки на которые могут содержаться в соответствующих материалах.\n

\n

 

\n
    \n \n
  1. 5. Гарантии и ответственность
  2. \n
    \n
\n

\n 5.1. Пользователь несет ответственность за действия, совершаемые на Портале, в соответствии\n с действующим законодательством Республики Казахстан.\n

\n

\n 5.2. Портал и Собственник Портал не несут ответственности за потерю информации\n Пользователем, а также за искажение информации или потерю сообщения, получаемого с\n использованием форм связи на Портале.\n

\n

\n 5.3. Портал и Собственник Портала не несут ответственности за неисполнение или затруднения в\n исполнении обязательств вследствие действия обстоятельств непреодолимой силы, последствия\n которых невозможно избежать или преодолеть.\n

\n

 

\n
    \n \n
  1. 6. Срок действия Пользовательского соглашения
  2. \n
    \n
\n

\n 6.1. Настоящее Пользовательское соглашение вступает в силу с момента начала использования\n Пользователем Портала, независимо от факта регистрации Пользователя, и действует бессрочно.\n

\n

\n 6.2. Пользователь имеет право прекратить доступ к своему Личному кабинету без возможности\n восстановления такого доступа.\n

\n

\n 6.3. Собственник Портала оставляет за собой право по собственному усмотрению прекратить\n доступ Пользователя, нарушающего настоящее Пользовательское соглашение, иных правил,\n регламентирующих функционирование Портала, в том числе прекратить или временно приостановить\n доступ Пользователя в Личный кабинет. Пользователь не имеет права использовать для доступа\n на Портал учетные данные другого Пользователя.\n

\n

 

\n
    \n \n
  1. 7. Споры и действующее законодательство
  2. \n
    \n
\n

\n 7.1. При разрешении всех споров по настоящему Пользовательскому соглашению применяется\n действующее законодательство Республики Казахстан.\n

\n

\n 7.2. Ввиду безвозмездности использования Портала, положения законодательства о защите прав\n потребителей не подлежат применению к отношениям между Пользователем и Собственником\n Портала.\n

\n

\n 7.3. Все споры, возникшие в рамках настоящего Соглашения, разрешаются Сторонами проведением\n переговоров. В случае невозможности урегулировать спор путем проведения переговоров, споры\n разрешаются в судебном порядке, предусмотренном действующим законодательством Республики\n Казахстан, по месту учреждения Собственника Портала.\n

\n

\n 7.4. Признание отдельных частей настоящего Пользовательского соглашения недействительными не\n отменяет действие других положений настоящего Пользовательского соглашения.\n

\n
\n \n \n \n {translate(rest, 'pub;Registration;Form:policy')}\n \n \n
\n \n {\n setPolicySign(true);\n }}\n >\n Подписать введенные данные\n \n \n \n {translate(rest, 'pub;Registration;Form;button:register')}\n \n \n \n )}\n \n \n \n {activeStep === 0 ? (\n
\n ) : (\n \n )}\n {activeStep === steps.length - 1 ? (\n
\n ) : (\n {\n handleNext(values, setErrors);\n }}\n className={classes.button}\n >\n {'Дальше'}\n \n )}\n
\n \n \n * - Поля, обязательные для заполнения\n \n \n
\n \n )}\n \n
\n )}\n {state.registrationData && !state.registrationData.success && (\n \n \n \n )}\n\n \n \n \n {translate(rest, 'pub:Login;digitalSignature;errorNCALayer:label', 'Error NCALayer')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default injectIntl(DigitalSignatureView);\n","import { Dispatch } from 'redux';\nimport authService from '../../publicServices/authService';\nimport User from '../../types/public/User';\nimport { USER_PHOTO_UPLOADED } from '../accountActions';\n\nexport const P_LOGIN_REQUEST = 'P_LOGIN_REQUEST';\nexport const P_LOGIN_SUCCESS = 'P_LOGIN_SUCCESS';\nexport const P_LOGIN_FAILURE = 'P_LOGIN_FAILURE';\nexport const P_SILENT_LOGIN = 'P_SILENT_LOGIN';\nexport const P_LOGOUT = 'P_LOGOUT';\nexport const P_VERIFIED_USER = 'P_VERIFIED_USER';\nexport const P_USER_PHOTO_UPLOADED = 'P_USER_PHOTO_UPLOADED';\n\nexport function login(email: string, password: string, rememberMe: boolean) {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({ type: P_LOGIN_REQUEST });\n const isVerified: Boolean = await authService.login(email, password, rememberMe);\n const user: User = await authService.getCurrentUser();\n\n dispatch({\n type: P_LOGIN_SUCCESS,\n data: {\n user: {\n ...user,\n isVerified\n }\n }\n });\n } catch (error) {\n dispatch({ type: P_LOGIN_FAILURE });\n throw error;\n }\n };\n}\n\nexport function setUserData(user: User) {\n return (dispatch: Dispatch) => dispatch({\n type: P_SILENT_LOGIN,\n data: {\n user: {\n ...user\n }\n }\n });\n}\n\nexport function logout() {\n return async (dispatch: Dispatch) => {\n authService.logout();\n dispatch({\n type: P_LOGOUT\n });\n };\n}\n\nexport function uploadPhoto(photo: FormData) {\n return async (dispatch: Dispatch) => {\n try {\n const url: string = await authService.uploadPhoto(photo);\n await dispatch({\n type: P_USER_PHOTO_UPLOADED,\n data: {\n url\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function removePhoto() {\n return async (dispatch: Dispatch) => {\n try {\n await authService.removePhoto();\n await dispatch({\n type: P_USER_PHOTO_UPLOADED,\n data: {\n url: '',\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function verify(code: string, userId: number, email: string, option: string) {\n return async (dispatch: Dispatch) => {\n try {\n const isVerified: boolean = await authService.verify(code, userId, email, option);\n await dispatch({\n type: P_VERIFIED_USER,\n data: {\n isVerified\n }\n });\n } catch (error) {\n //dispatch({ type: LOGIN_FAILURE });\n throw error;\n }\n };\n}\n","import jwtDecode from 'jwt-decode';\nimport axios from '../utils/axios';\nimport { API } from '../constants/constants';\nimport { triggerLoader } from '../actions/utilsActions';\nimport { store } from '../store';\nimport User from '../types/public/User';\nimport Registration from '../types/public/Registration';\n\n// let count = Number(localStorage.getItem('count') || 0);\nclass AuthService {\n setAxiosInterceptors = ({ onLogout }: { onLogout: Function }) => {\n axios.interceptors.response.use(\n response => {\n // count--;\n // localStorage.setItem('count', count.toString());\n // if (!count) {\n store.dispatch(triggerLoader(false) as any);\n // }\n return response;\n },\n async error => {\n store.dispatch(triggerLoader(false) as any);\n // count--;\n // localStorage.setItem('count', count.toString());\n if (error.response && error.response.status === 401) {\n try {\n await this.loginInWithToken();\n } catch (e) {\n this.setSession(null);\n\n if (onLogout) {\n onLogout();\n }\n }\n }\n\n return Promise.reject(error.response);\n }\n );\n axios.interceptors.request.use(\n response => {\n store.dispatch(triggerLoader(true) as any);\n // count++;\n // localStorage.setItem('count', count.toString());\n return response;\n },\n error => {\n store.dispatch(triggerLoader(false) as any);\n // count--;\n // localStorage.setItem('count', count.toString());\n return Promise.reject(error);\n }\n );\n };\n\n handleAuthentication() {\n const accessToken = this.getAccessToken();\n\n if (!accessToken) {\n return;\n }\n\n if (!this.isValidToken(accessToken)) {\n this.setSession(null);\n }\n }\n\n login = (emailAddress: string, password: string, rememberMe: boolean = false) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/Token`, { email: emailAddress, password })\n .then(response => {\n if (response.data) {\n this.setSession(\n response.data.access_token,\n response.data.token_type,\n rememberMe,\n emailAddress,\n response.data.refresh_token\n );\n resolve(Boolean(response.data.is_verified));\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n getCurrentUser = () =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/Account`)\n .then(response => {\n if (response.data) {\n const data = response.data as User;\n resolve(data);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n loginInWithToken = () =>\n new Promise((resolve, reject) => {\n const refreshToken: string | null = this.getRefreshToken();\n const accessToken: string | null = this.getAccessToken();\n const email = localStorage.getItem('email');\n if (refreshToken && accessToken && email) {\n axios\n .post(`${API}/Account/Token`, { email, refreshToken })\n .then(response => {\n if (response.data) {\n const rememberMe = Boolean(localStorage.getItem('rememberMe')) || false;\n this.setSession(\n response.data.access_token,\n response.data.token_type,\n rememberMe,\n email,\n response.data.refresh_token\n );\n resolve(Boolean(response.data.is_verified));\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n } else {\n reject();\n }\n });\n\n getAccessToken = () => localStorage.getItem('accessToken');\n getRefreshToken = () => localStorage.getItem('refreshToken');\n\n isValidToken = (accessToken: string) => {\n if (!accessToken) {\n return false;\n }\n\n const { exp } = jwtDecode(accessToken);\n const currentTime = Date.now() / 1000;\n\n return exp > currentTime;\n };\n\n isAuthenticated = () => !!this.getAccessToken();\n\n logout = () => {\n this.setSession(null);\n };\n\n getXmlToSign = () =>\n new Promise((resolve, reject) => {\n axios\n .get(`${API}/DigitalSignature/Xml`)\n .then(response => {\n if (response.data) {\n resolve(response.data.xml);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n checkXmlAfterSign = (xml: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/DigitalSignature/Check`, { xml })\n .then(response => {\n if (response.data) {\n resolve(response.data);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n setSession = (\n accessToken: string | null,\n tokenType?: string,\n rememberMe?: boolean,\n email?: string,\n refreshToken?: string\n ) => {\n if (accessToken && refreshToken && email) {\n localStorage.setItem('accessToken', `${tokenType} ${accessToken}`);\n localStorage.setItem('refreshToken', refreshToken);\n localStorage.setItem('email', email);\n axios.defaults.headers.common.Authorization = `${tokenType} ${accessToken}`;\n if (rememberMe) {\n localStorage.setItem('rememberMe', JSON.stringify(rememberMe));\n } else {\n localStorage.removeItem('rememberMe');\n }\n } else {\n localStorage.removeItem('accessToken');\n localStorage.removeItem('refreshToken');\n localStorage.removeItem('tenders');\n delete axios.defaults.headers.common.Authorization;\n }\n };\n\n sendVerification = (userId: number, email: string, phone: string, option: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/SendVerify${option}`, {\n userId,\n email,\n phone,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n resetPassword = (email: string | null = null, phone: string | null = null, option: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/RecoveryPassword`, {\n email: option === 'Email' ? email : null,\n phone: option === 'Phone' ? phone : null,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(response.data);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n confirmResetPassword = (password: string, userId: string, code: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/RecoveryPassword/Confirm`, {\n password,\n userId,\n code,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n verify = (code: string, userId: number, email: string, option: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/Verify${option}`, {\n code,\n email,\n userId,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n registration = (registrationData: Registration) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/Register`, registrationData)\n .then(response => {\n if (response.data) {\n resolve(Boolean(true));\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n uploadPhoto = (photo: FormData) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/UploadPhoto`, photo)\n .then(response => {\n if (response.data) {\n resolve(response.data.photoUrl);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n removePhoto = () =>\n new Promise((resolve, reject) => {\n axios\n .delete(`${API}/Account/UploadPhoto`)\n .then(response => {\n if (response.data) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n changePassword = (currentPassword: string, newPassword: string) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/Account/ChangePassword`, {\n currentPassword,\n newPassword,\n })\n .then(response => {\n if (response.status === 200) {\n resolve(true);\n } else {\n reject(response.data.error);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n}\n\nconst authService = new AuthService();\n\nexport default authService;\n","import React from 'react';\nimport {\n makeStyles,\n Dialog,\n Box,\n Table,\n TableHead,\n TableRow,\n TableCell,\n TableBody, Button\n} from '@material-ui/core';\nimport clsx from \"clsx\";\nimport {injectIntl, WrappedComponentProps} from \"react-intl\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minHeight: '100%',\n }\n\n}));\n\ninterface LicenseDialogProps {\n className?: string;\n license: any;\n open: boolean;\n closeLicenseDialog: any;\n}\n\nfunction LicenseDialog({className, open, license, closeLicenseDialog, ...rest}: LicenseDialogProps & WrappedComponentProps) {\n const classes = useStyles();\n\n\n return (\n \n \n \n \n \n \n Номер документа\n \n \n Статус\n \n \n Название\n \n \n \n \n {license.map((item: any, index: number) => {\n return (\n \n \n {item.doc_id}\n \n \n {item.status}\n \n \n {item.field}\n \n \n )\n }) }\n \n
\n\n \n \n Закрыть\n \n \n \n \n\n );\n}\n\nexport default injectIntl(LicenseDialog);","/* eslint-disable no-param-reassign */\nimport produce from 'immer';\nimport {\n LOGIN_REQUEST,\n LOGIN_SUCCESS,\n LOGIN_FAILURE,\n LOGOUT,\n SILENT_LOGIN,\n UPDATE_PROFILE,\n VERIFIED_USER,\n USER_PHOTO_UPLOADED,\n} from '../actions/accountActions';\nimport { DynamicObject } from '../types/DynamicObject';\nimport { UpdateUserProps } from '../types/User';\n\ninterface Action {\n type: string;\n payload: DynamicObject;\n}\n\ninterface State {\n user: {} | null;\n}\n\nconst initialState: State = {\n user: null\n};\n\nconst accountReducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case LOGIN_REQUEST: {\n return produce(state, (draft) => {\n // Ensure we clear current session\n draft.user = null;\n });\n }\n\n case LOGIN_SUCCESS: {\n const { user } = action.payload;\n\n return produce(state, (draft) => {\n draft.user = user;\n });\n }\n\n case VERIFIED_USER: {\n const { isVerified } = action.payload;\n\n return produce(state, (draft) => {\n draft.user = {\n ...draft.user,\n isVerified\n };\n });\n }\n\n case USER_PHOTO_UPLOADED: {\n const { url } = action.payload;\n\n return produce(state, (draft) => {\n draft.user = {\n ...draft.user,\n photoUrl: url,\n };\n });\n }\n\n case LOGIN_FAILURE: {\n return produce(state, () => {\n // Maybe store error\n });\n }\n\n case LOGOUT: {\n return produce(state, (draft) => {\n draft.user = null;\n });\n }\n\n case SILENT_LOGIN: {\n const { user } = action.payload;\n\n return produce(state, (draft) => {\n draft.user = user;\n });\n }\n\n case UPDATE_PROFILE: {\n const user = action.payload.data as UpdateUserProps;\n\n return produce(state, (draft) => {\n draft.user = {\n ...draft.user,\n ...user,\n };\n });\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default accountReducer;\n","/* eslint-disable no-param-reassign */\nimport produce from 'immer';\n\nimport { DynamicObject } from '../../types/DynamicObject';\nimport User from '../../types/public/User';\nimport {\n P_LOGIN_FAILURE,\n P_LOGIN_REQUEST, P_LOGIN_SUCCESS,\n P_LOGOUT,\n P_SILENT_LOGIN, P_USER_PHOTO_UPLOADED, P_VERIFIED_USER\n} from '../../actions/public/authActions';\nimport { USER_PHOTO_UPLOADED } from '../../actions/accountActions';\n\ninterface Action {\n type: string;\n data: DynamicObject;\n}\n\ninterface State {\n user: {} | null;\n}\n\nconst initialState: State = {\n user: null\n};\n\nconst p_accountReducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case P_LOGIN_REQUEST: {\n return produce(state, (draft) => {\n draft.user = null;\n });\n }\n\n case P_LOGIN_SUCCESS: {\n const { user } = action.data;\n\n return produce(state, (draft) => {\n draft.user = user;\n });\n }\n\n case P_VERIFIED_USER: {\n const { isVerified } = action.data;\n\n return produce(state, (draft) => {\n draft.user = {\n ...draft.user,\n isVerified\n };\n });\n }\n\n case P_LOGIN_FAILURE: {\n return produce(state, () => {\n // Maybe store error\n });\n }\n\n case P_LOGOUT: {\n return produce(state, (draft) => {\n draft.user = null;\n });\n }\n\n case P_SILENT_LOGIN: {\n const { user } = action.data;\n\n return produce(state, (draft) => {\n draft.user = user;\n });\n }\n\n case P_USER_PHOTO_UPLOADED: {\n const { url } = action.data;\n\n return produce(state, (draft) => {\n draft.user = {\n ...draft.user,\n photoUrl: url,\n };\n });\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default p_accountReducer;\n","import produce from 'immer';\nimport {\n TRIGGER_LOADER,\n UPDATE_SAP_DATE,\n SET_TENDER_UPDATES,\n SET_REQUESTED_DOCS,\n TRIGGER_MENU_UPDATE,\n} from '../actions/utilsActions';\n\ninterface Action {\n type: string;\n payload: State;\n}\n\ninterface State {\n showLoader: boolean;\n updateMenuCount: number;\n lastSapUpdatedDate: any;\n tenderUpdates: any;\n requestedDocs: any;\n}\n\nconst initialState: State = {\n showLoader: false,\n updateMenuCount: 0,\n lastSapUpdatedDate: {},\n tenderUpdates: {},\n requestedDocs: {},\n};\n\nconst utilsReducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case TRIGGER_LOADER: {\n const { showLoader } = action.payload;\n\n return produce(state, draft => {\n draft.showLoader = showLoader;\n });\n }\n\n case TRIGGER_MENU_UPDATE: {\n return produce(state, draft => {\n draft.updateMenuCount = draft.updateMenuCount + 1;\n });\n }\n\n case UPDATE_SAP_DATE: {\n const { lastSapUpdatedDate } = action.payload;\n\n return produce(state, draft => {\n draft.lastSapUpdatedDate = lastSapUpdatedDate;\n });\n }\n\n case SET_TENDER_UPDATES: {\n const { tenderUpdates } = action.payload;\n\n return produce(state, draft => {\n draft.tenderUpdates = tenderUpdates;\n });\n }\n\n case SET_REQUESTED_DOCS: {\n const { requestedDocs } = action.payload;\n\n return produce(state, draft => {\n draft.requestedDocs = { ...draft.requestedDocs, ...requestedDocs };\n });\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default utilsReducer;\n","/* eslint-disable no-param-reassign */\nimport produce from 'immer';\nimport {\n CREATE_FOLDER, getFolderList,\n INITIALIZE_FOLDERS,\n REMOVE_FOLDERS,\n SET_FOLDERS,\n SWAP_FOLDERS,\n UPDATE_FOLDER\n} from '../../actions/public/folderActions';\nimport { FolderItem } from '../../types/public/FolderList';\nimport _ from 'lodash';\nimport userFolderService from '../../publicServices/userFolderService';\n\ninterface Action {\n type: string;\n data: any;\n}\n\ninterface State {\n folders: FolderItem[];\n folder?: FolderItem;\n index?: number;\n}\n\nconst initialState: State = {\n folders: []\n};\n\nconst folderReducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case INITIALIZE_FOLDERS: {\n return produce(state, (draft) => {\n draft.folders = [];\n });\n }\n\n case SET_FOLDERS: {\n const { folders } = action.data;\n\n return produce(state, (draft) => {\n draft.folders = folders;\n });\n }\n\n case UPDATE_FOLDER: {\n const { folder, index } = action.data;\n\n return produce(state, (draft) => {\n if (folder && index !== undefined) {\n const changedList = _.orderBy(draft.folders, ['order'], \"asc\");\n changedList[index] = folder;\n draft.folders = changedList;\n }\n });\n }\n\n case CREATE_FOLDER: {\n const { folder } = action.data;\n\n return produce(state, (draft) => {\n if (folder) {\n draft.folders = [...draft.folders, folder];\n }\n });\n }\n\n case SWAP_FOLDERS: {\n return produce(state, (draft) => {\n const changedList = _.orderBy(draft.folders, ['order'], \"asc\");\n const currentEl = changedList.find((el)=> action.data.currentId === el.id);\n const nextEl = changedList.find((el)=> action.data.nextId === el.id);\n if (currentEl && nextEl) {\n const currentElOrder = currentEl.order;\n\n currentEl.order = nextEl.order;\n nextEl.order = currentElOrder;\n }\n\n draft.folders = changedList;\n });\n }\n\n case REMOVE_FOLDERS: {\n return produce(state, (draft ) => {\n const { folders } = action.data;\n draft.folders = draft.folders.filter((folder: any) => {\n if (folders.includes(folder._id)) {\n return false;\n }\n return true;\n });\n });\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default folderReducer;\n","/* eslint-disable no-param-reassign */\nimport produce from 'immer';\nimport {\n CLEAR_SEARCH,\n SET_SEARCH\n} from '../../actions/public/searchActions';\n\ninterface Action {\n type: string;\n data: any;\n}\n\ninterface State {\n search: string;\n}\n\nconst initialState: State = {\n search: '',\n};\n\nconst folderReducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case CLEAR_SEARCH: {\n return produce(state, (draft) => {\n draft.search = '';\n });\n }\n\n case SET_SEARCH: {\n const { searchValue } = action.data;\n\n return produce(state, (draft) => {\n draft.search = searchValue;\n });\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default folderReducer;\n","import { Dispatch } from 'redux';\n\nexport const CLEAR_SEARCH = 'CLEAR_SEARCH';\nexport const SET_SEARCH = 'SET_SEARCH';\n\nexport function setSearch(searchValue: string) {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({ type: CLEAR_SEARCH });\n\n await dispatch({\n type: SET_SEARCH,\n data: {\n searchValue\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function clearSearch() {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({ type: CLEAR_SEARCH });\n } catch (error) {\n throw error;\n }\n };\n}\n","/* eslint-disable no-param-reassign */\nimport produce from 'immer';\nimport {\n CREATE_SEARCH_TEMPLATE,\n REMOVE_SEARCH_TEMPLATES,\n INITIALIZE_SEARCH_TEMPLATES,\n SET_SEARCH_TEMPLATES,\n UPDATE_SEARCH_TEMPLATE,\n SWAP_SEARCH_TEMPLATES\n} from '../../actions/public/searchTemplateActions';\nimport _ from 'lodash';\nimport { SearchTemplateItem } from '../../types/public/SearchTemplate';\n\ninterface Action {\n type: string;\n data: any;\n}\n\ninterface State {\n searchTemplates: SearchTemplateItem[];\n searchTemplate?: SearchTemplateItem;\n index?: number;\n}\n\nconst initialState: State = {\n searchTemplates: []\n};\n\nconst searchTemplateReducer = (state = initialState, action: Action) => {\n switch (action.type) {\n case INITIALIZE_SEARCH_TEMPLATES: {\n return produce(state, (draft) => {\n draft.searchTemplates = [];\n });\n }\n\n case SET_SEARCH_TEMPLATES: {\n const { searchTemplates } = action.data;\n\n return produce(state, (draft) => {\n draft.searchTemplates = searchTemplates;\n });\n }\n\n case UPDATE_SEARCH_TEMPLATE: {\n const { searchTemplate, index } = action.data;\n\n return produce(state, (draft) => {\n if (searchTemplate && index !== undefined) {\n const changedList = _.orderBy(draft.searchTemplates, ['order'], \"asc\");\n changedList[index] = searchTemplate;\n draft.searchTemplates = changedList;\n }\n });\n }\n\n case CREATE_SEARCH_TEMPLATE: {\n const { searchTemplate } = action.data;\n\n return produce(state, (draft) => {\n if (searchTemplate) {\n draft.searchTemplates = [...draft.searchTemplates, searchTemplate];\n }\n });\n }\n\n case SWAP_SEARCH_TEMPLATES: {\n return produce(state, (draft) => {\n const changedList = _.orderBy(draft.searchTemplates, ['order'], \"asc\");\n const currentEl = changedList[action.data.index];\n const nextEl = changedList[action.data.index + action.data.position];\n currentEl.order = nextEl.order;\n nextEl.order = action.data.index;\n\n draft.searchTemplates = changedList;\n });\n }\n\n case REMOVE_SEARCH_TEMPLATES: {\n return produce(state, (draft ) => {\n const { searchTemplates } = action.data;\n draft.searchTemplates = draft.searchTemplates.filter((template: SearchTemplateItem) => {\n if (searchTemplates.includes(template._id)) {\n return false;\n }\n return true;\n });\n });\n }\n\n default: {\n return state;\n }\n }\n};\n\nexport default searchTemplateReducer;\n","import { combineReducers } from 'redux';\nimport { reducer as formReducer } from 'redux-form';\nimport accountReducer from './accountReducer';\nimport p_accountReducer from './public/p_accountReducer';\nimport utilsReducer from './utilsReducer';\nimport { intlReducer } from 'react-intl-redux'\nimport folderReducer from './public/folderReducer';\nimport searchReducer from './public/searchReducer';\nimport searchTemplateReducer from './public/searchTemplateReducer';\n\nconst rootReducer = combineReducers({\n account: accountReducer,\n form: formReducer,\n intl: intlReducer,\n utils: utilsReducer,\n publicAccount: p_accountReducer,\n folderList: folderReducer,\n search: searchReducer,\n searchTemplate: searchTemplateReducer,\n});\n\nexport default rootReducer;\n","/* eslint-disable import/prefer-default-export */\nimport { applyMiddleware, createStore, compose, StoreEnhancer } from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport { composeWithDevTools } from 'redux-devtools-extension';\n//import { createLogger } from 'redux-logger';\nimport rootReducer from '../reducers';\n//import { ENABLE_REDUX_LOGGER } from '../config';\nimport { LANGS } from '../constants/enums';\nimport { getMessages } from '../utils/i18nHelpers';\n//const loggerMiddleware = createLogger();\n\nconst initialState = {\n intl: {\n locale: LANGS.RU,\n messages: getMessages(LANGS.RU),\n },\n};\n\nexport function configureStore(preloadedState = {}) {\n const middlewares = [thunkMiddleware];\n\n /*if (ENABLE_REDUX_LOGGER) {\n middlewares.push(loggerMiddleware);\n }*/\n\n const middlewareEnhancer = composeWithDevTools(\n applyMiddleware(...middlewares)\n );\n\n const enhancers = [middlewareEnhancer];\n const composedEnhancers = compose(...enhancers) as StoreEnhancer;\n\n const store = createStore(rootReducer, preloadedState, composedEnhancers);\n\n return store;\n}\n\nconst store = configureStore(initialState);\n\nexport {\n store,\n};\n","import axios from 'axios';\n\nconst instance = axios.create();\n\nexport const uninterceptedAxiosInstance = axios.create();\n\nexport default instance;\n","export const HOST_API = {\n DEFAULT: '/api',\n DEV_MANAGER: 'https://uktmk-dev-procurement-manager.azurewebsites.net/api',\n TEST_MANAGER: 'https://uktmk-test-procurement-manager.azurewebsites.net/api',\n\n DEV_SUPPLIER: 'https://uktmk-dev-procurement-supplier.azurewebsites.net/api',\n TEST_SUPPLIER: 'https://uktmk-test-procurement-supplier.azurewebsites.net/api',\n\n PROD_MANAGER: 'https://manager.purchase.uktmp.kz/api',\n PROD_SUPPLIER: 'https://purchase.uktmp.kz/api',\n\n OLD_DEV_MANAGER: 'http://stage.procurement-manager.uktmk.tk/api',\n OLD_DEV_SUPPLIER: 'http://stage.procurement-supplier.uktmk.tk/api',\n};\n\n// export const API = '/api';\n// export const API = 'https://dev.procurement-manager.uktmk.tk/api';\n// export const API = 'https://dev.procurement-supplier.uktmk.tk/api';\n// export const API = 'http://manager.purchase.uktmp.kz/api';\n// export const API = 'http://supplier.purchase.uktmp.kz/api';\n// export const API = 'http://stage.procurement-manager.uktmk.tk/api'; //old\n// export const API = 'http://stage.procurement-supplier.uktmk.tk/api'; //old\n\nconst env = process.env.REACT_APP_STAGING || 'DEFAULT'; //possible values: sandpit, test, dev, preprod;\n\n// @ts-ignore\nexport const API = HOST_API[env];\n\nexport const PHONE_REGEX_UA = /^\\+?3?8?(0\\d{9})$/;\nexport const PHONE_REGEX_KZ = /^\\+?77(\\d{9})$/;\nexport const LATIN_CHARACTERS = /^([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00f6\\u00f8-\\u00ff\\s]*)$/;\n","import axios from '../utils/axios';\nimport { API } from '../constants/constants';\nimport Tender from '../types/Tender';\nimport { NewTenderFAQ } from '../types/TenderFAQ';\nimport { NewTenderQuestion } from '../types/public/Tender';\nimport { FolderItem } from '../types/public/FolderList';\n\nclass UserFolderService {\n\n getFolderList = () => new Promise((resolve, reject) => {\n axios.get(`${ API }/UserFolder/List`)\n .then((response) => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n createFolder = (folderData: FolderItem) => new Promise((resolve, reject) => {\n axios.post(`${ API }/UserFolder`, folderData)\n .then((response) => {\n if (response.data) {\n resolve(response.data.id);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n addFolderToTender = (folderId: number, tenderIds: number[]) => new Promise((resolve, reject) => {\n axios.post(`${ API }/UserFolder/AddTenders`, {\n folderId,\n tenderIds,\n }).then((response) => {\n if (response.data) {\n resolve(response.data.id);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n swapFolders = (userFolderId1: number, userFolderId2: number) => new Promise((resolve, reject) => {\n axios.post(`${ API }/UserFolder/Swap`, {\n userFolderId1,\n userFolderId2,\n }).then((response) => {\n if (response.data) {\n resolve(response.data.id);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n updateFolder = (folderData: FolderItem) => new Promise((resolve, reject) => {\n axios.put(`${ API }/UserFolder/${folderData.id}`, folderData)\n .then((response) => {\n if (response.data) {\n resolve(true);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n\n removeFolder = (id: string) => new Promise((resolve, reject) => {\n axios.delete(`${ API }/UserFolder/${id}`)\n .then((response) => {\n if (response.status === 200) {\n resolve(true);\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n}\n\nconst userFolderService = new UserFolderService();\n\nexport default userFolderService;\n","import { Dispatch } from 'redux';\nimport { FolderItem } from '../../types/public/FolderList';\nimport userFolderService from '../../publicServices/userFolderService';\n\n\nexport const INITIALIZE_FOLDERS = 'INITIALIZE_FOLDERS';\nexport const SET_FOLDERS = 'SET_FOLDERS';\nexport const UPDATE_FOLDER = 'UPDATE_FOLDER';\nexport const CREATE_FOLDER = 'CREATE_FOLDER';\nexport const SWAP_FOLDERS = 'SWAP_FOLDERS';\nexport const REMOVE_FOLDERS = 'REMOVE_FOLDERS';\n\nexport function getFolderList() {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({ type: INITIALIZE_FOLDERS });\n const folderList: FolderItem[] = await userFolderService.getFolderList();\n\n dispatch({\n type: SET_FOLDERS,\n data: {\n folders: folderList,\n }\n });\n } catch (error) {\n dispatch({ type: INITIALIZE_FOLDERS });\n throw error;\n }\n };\n}\n\nexport function updateFolder(folder: FolderItem, index: number) {\n return async (dispatch: Dispatch) => {\n try {\n await userFolderService.updateFolder(folder);\n await dispatch({\n type: UPDATE_FOLDER,\n data: {\n folder,\n index\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function swapFolders(currentId: number, nextId: number) {\n return async (dispatch: Dispatch) => {\n try {\n dispatch({\n type: SWAP_FOLDERS,\n data: {\n currentId,\n nextId\n }\n });\n await userFolderService.swapFolders(currentId, nextId);\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function createNewFolder(folder: FolderItem) {\n return async (dispatch: Dispatch) => {\n try {\n const id = await userFolderService.createFolder(folder);\n folder.id = id || undefined;\n await dispatch({\n type: CREATE_FOLDER,\n data: {\n folder\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n\nexport function removeFolders(folders: string[]) {\n return async (dispatch: Dispatch) => {\n try {\n await userFolderService.removeFolder(folders[0]);\n await dispatch({\n type: REMOVE_FOLDERS,\n data: {\n folders\n }\n });\n } catch (error) {\n throw error;\n }\n };\n}\n","/* eslint-disable */\nimport { Chart } from 'react-chartjs-2';\n\n// ChartJS extension rounded bar chart\n// https://codepen.io/jedtrow/full/ygRYgo\nfunction draw() {\n const { ctx } = this._chart;\n const vm = this._view;\n let { borderWidth } = vm;\n\n let left;\n let right;\n let top;\n let bottom;\n let signX;\n let signY;\n let borderSkipped;\n let radius;\n\n // If radius is less than 0 or is large enough to cause drawing errors a max\n // radius is imposed. If cornerRadius is not defined set it to 0.\n let { cornerRadius } = this._chart.config.options;\n if (cornerRadius < 0) {\n cornerRadius = 0;\n }\n\n if (typeof cornerRadius === 'undefined') {\n cornerRadius = 0;\n }\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n const halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n const borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n const borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n const borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\n\n // Find first (starting) corner with fallback to 'bottom'\n const borders = ['bottom', 'left', 'top', 'right'];\n let startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n let corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (let i = 1; i < 4; i += 1) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId === 4) {\n nextCornerId = 0;\n }\n\n const width = corners[2][0] - corners[1][0];\n const height = corners[0][1] - corners[1][1];\n const x = corners[1][0];\n const y = corners[1][1];\n\n radius = cornerRadius;\n // Fix radius being too large\n if (radius > Math.abs(height) / 2) {\n radius = Math.floor(Math.abs(height) / 2);\n }\n if (radius > Math.abs(width) / 2) {\n radius = Math.floor(Math.abs(width) / 2);\n }\n\n if (height < 0) {\n // Negative values in a standard bar chart\n const xTl = x;\n const xTr = x + width;\n const yTl = y + height;\n const yTr = y + height;\n\n const xBl = x;\n const xBr = x + width;\n const yBl = y;\n const yBr = y;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else if (width < 0) {\n // Negative values in a horizontal bar chart\n const xTl = x + width;\n const xTr = x;\n const yTl = y;\n const yTr = y;\n\n const xBl = x + width;\n const xBr = x;\n const yBl = y + height;\n const yBr = y + height;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else {\n // Positive Value\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(\n x + width,\n y + height,\n x + width - radius,\n y + height\n );\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n }\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n}\n\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\n draw\n});\n","/* eslint-disable */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in projection, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'projection' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export function restoreSettings() {\n let settings = null;\n\n try {\n const storedData = localStorage.getItem('settings');\n\n if (storedData) {\n settings = JSON.parse(storedData);\n }\n } catch (err) {\n // If stored data is not a strigified JSON this might fail,\n // that's why we catch the error\n }\n\n return settings;\n}\n\nexport function storeSettings(settings: any) {\n localStorage.setItem('settings', JSON.stringify(settings));\n}\n","import React, {\n createContext,\n useState,\n} from 'react';\nimport _ from 'lodash';\nimport { LANGS, THEMES } from '../constants/enums';\nimport { storeSettings } from '../utils/settings';\nimport { Settings } from '../types/Settings';\n\nconst defaultSettings: Settings = {\n responsiveFontSizes: true,\n theme: THEMES.LIGHT,\n settings: {},\n language: LANGS.RU,\n};\n\nconst SettingsContext = createContext(defaultSettings);\n\nexport function SettingsProvider(\n {\n settings,\n children,\n }: { settings: Settings, children: React.ReactNode }) {\n const [currentSettings, setCurrentSettings] = useState(settings || defaultSettings);\n\n const handleSaveSettings = (updatedSettings = {}) => {\n const mergedSettings = _.merge({}, currentSettings, updatedSettings);\n\n setCurrentSettings(mergedSettings);\n storeSettings(mergedSettings);\n };\n\n return (\n \n {children}\n \n );\n}\n\n//export const SettingsConsumer = SettingsContext.Consumer;\n\nexport default SettingsContext;\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\n\nconst GA_MEASUREMENT_ID = process.env.REACT_APP_GA_MEASUREMENT_ID;\n\nfunction GoogleAnalytics() {\n return (\n \n \n \n \n );\n}\n\nexport default GoogleAnalytics;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router';\n\nfunction ScrollReset() {\n const location = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [location.pathname]);\n\n return null;\n}\n\nexport default ScrollReset;\n","import { useContext } from 'react';\nimport SettingsContext from '../context/SettingsContext';\n\nexport default function useSettings() {\n const context = useContext(SettingsContext);\n\n return context;\n}\n","export const softShadows = [\n 'none',\n '0 0 0 1px rgba(63,63,68,0.05), 0 1px 2px 0 rgba(63,63,68,0.15)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 2px 2px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 8px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 5px 8px -2px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 12px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 12px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 16px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 16px -4px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 8px 18px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 9px 18px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 10px 20px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 11px 20px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 12px 22px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 13px 22px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 14px 24px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 16px 28px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 18px 30px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 20px 32px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 22px 34px -8px rgba(0,0,0,0.25)',\n '0 0 1px 0 rgba(0,0,0,0.31), 0 24px 36px -8px rgba(0,0,0,0.25)'\n];\n\nexport const strongShadows = [\n 'none',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 2px 2px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 8px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 5px 8px -2px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 12px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 12px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 16px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 16px -4px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 8px 18px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 9px 18px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 10px 20px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 11px 20px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 12px 22px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 13px 22px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 14px 24px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 16px 28px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 18px 30px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 20px 32px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 22px 34px -8px rgba(0,0,0,0.50)',\n '0 0 1px 0 rgba(0,0,0,0.70), 0 24px 36px -8px rgba(0,0,0,0.50)'\n];\n","/* eslint-disable no-console */\n/* eslint-disable import/prefer-default-export */\nimport _ from 'lodash';\nimport { colors, createMuiTheme, responsiveFontSizes } from '@material-ui/core';\nimport typography from './typography';\nimport { softShadows, strongShadows } from './shadows';\nimport { THEMES } from '../constants/enums';\nimport { ThemConfig } from '../types/Them';\nimport { Settings } from '../types/Settings';\n\nconst baseConfig = {\n direction: 'ltr',\n typography,\n overrides: {\n MuiLinearProgress: {\n root: {\n borderRadius: 3,\n overflow: 'hidden'\n }\n },\n MuiListItemIcon: {\n root: {\n minWidth: 32\n }\n },\n MuiChip: {\n root: {\n backgroundColor: 'rgba(0,0,0,0.075)'\n }\n }\n }\n};\n\nconst themeConfigs: ThemConfig[] = [\n {\n name: THEMES.LIGHT,\n overrides: {\n MuiInputBase: {\n input: {\n '&::placeholder': {\n opacity: 1,\n color: colors.blueGrey[600]\n }\n }\n }\n },\n palette: {\n type: 'light',\n action: {\n active: colors.blueGrey[600]\n },\n background: {\n default: colors.common.white,\n dark: '#f4f6f8',\n paper: colors.common.white\n },\n primary: {\n main: colors.indigo[600]\n },\n secondary: {\n main: '#5850EC'\n },\n text: {\n primary: colors.blueGrey[900],\n secondary: colors.blueGrey[600]\n }\n },\n shadows: softShadows\n },\n {\n name: THEMES.ONE_DARK,\n palette: {\n type: 'dark',\n action: {\n active: 'rgba(255, 255, 255, 0.54)',\n hover: 'rgba(255, 255, 255, 0.04)',\n selected: 'rgba(255, 255, 255, 0.08)',\n disabled: 'rgba(255, 255, 255, 0.26)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n focus: 'rgba(255, 255, 255, 0.12)'\n },\n background: {\n default: '#282C34',\n dark: '#1c2025',\n paper: '#282C34'\n },\n primary: {\n main: '#8a85ff'\n },\n secondary: {\n main: '#8a85ff'\n },\n text: {\n primary: '#e6e5e8',\n secondary: '#adb0bb'\n }\n },\n shadows: strongShadows\n },\n {\n name: THEMES.UNICORN,\n palette: {\n type: 'dark',\n action: {\n active: 'rgba(255, 255, 255, 0.54)',\n hover: 'rgba(255, 255, 255, 0.04)',\n selected: 'rgba(255, 255, 255, 0.08)',\n disabled: 'rgba(255, 255, 255, 0.26)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n focus: 'rgba(255, 255, 255, 0.12)'\n },\n background: {\n default: '#2a2d3d',\n dark: '#222431',\n paper: '#2a2d3d'\n },\n primary: {\n main: '#a67dff'\n },\n secondary: {\n main: '#a67dff'\n },\n text: {\n primary: '#f6f5f8',\n secondary: '#9699a4'\n }\n },\n shadows: strongShadows\n }\n];\n\nexport function createTheme(settings: Settings = {}) {\n let themeConfig = themeConfigs.find((theme) => theme.name === settings.theme);\n\n if (!themeConfig) {\n console.warn(new Error(`The theme ${settings.theme} is not valid`));\n [themeConfig] = themeConfigs;\n }\n\n let theme = createMuiTheme(\n _.merge(\n {},\n baseConfig,\n themeConfig,\n { direction: settings.direction }\n )\n );\n\n if (settings.responsiveFontSizes) {\n theme = responsiveFontSizes(theme);\n }\n\n return theme;\n}\n","export default {\n h1: {\n fontWeight: 500,\n fontSize: 35,\n letterSpacing: '-0.24px'\n },\n h2: {\n fontWeight: 500,\n fontSize: 29,\n letterSpacing: '-0.24px'\n },\n h3: {\n fontWeight: 500,\n fontSize: 24,\n letterSpacing: '-0.06px'\n },\n h4: {\n fontWeight: 500,\n fontSize: 20,\n letterSpacing: '-0.06px'\n },\n h5: {\n fontWeight: 500,\n fontSize: 16,\n letterSpacing: '-0.05px'\n },\n h6: {\n fontWeight: 500,\n fontSize: 14,\n letterSpacing: '-0.05px'\n },\n overline: {\n fontWeight: 500\n }\n};\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport { Box, LinearProgress, makeStyles } from '@material-ui/core';\nimport { ThemConfig } from '../types/Them';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n alignItems: 'center',\n backgroundColor: '#00000069',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(3)\n }\n}));\n\nfunction LoadingScreen() {\n const classes = useStyles();\n\n useEffect(() => {\n NProgress.start();\n\n return () => {\n NProgress.done();\n };\n }, []);\n\n return (\n
\n \n \n \n
\n );\n}\n\nexport default LoadingScreen;\n","import React from 'react';\n\ninterface LogoProps {\n className?: string;\n}\n\nfunction Logo(props: LogoProps) {\n return (\n \n );\n}\n\nexport default Logo;\n","import React, { useState } from 'react';\nimport { Link as RouterLink, useHistory } from 'react-router-dom';\nimport { Box, Button, Link, TextField, Typography, makeStyles, FormHelperText, withStyles } from '@material-ui/core';\nimport { Formik } from 'formik';\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from 'react-intl';\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutline';\nimport { login } from '../../../actions/public/authActions';\nimport { translate } from '../../../utils/i18nHelpers';\nimport { useDispatch } from 'react-redux';\nimport DigitalSignatureView from '../../../publicViews/auth/DigitalSignatureView';\nimport clsx from 'clsx';\nimport { getFolderList } from '../../../actions/public/folderActions';\nimport { setRequestedDocs } from '../../../actions/utilsActions';\n\nconst useStyles = makeStyles(() => ({\n root: {},\n registrationForm: {\n marginBottom: 8,\n background: 'linear-gradient(180deg,#01018a 0,#060656)',\n padding: 20,\n borderRadius: '0 0 15px 15px',\n },\n registrationHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n },\n submitBtn: {\n backgroundColor: 'white',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#000099',\n },\n },\n container: {\n position: 'relative',\n display: 'flex',\n flexDirection: 'row',\n height: '100%',\n width: '100%',\n },\n stepper: {\n position: 'absolute',\n height: '100%',\n width: '100%',\n backgroundColor: 'white',\n zIndex: 9,\n transitionDuration: '0.2s',\n },\n button: {\n backgroundColor: '#fff',\n color: '#000078',\n '&:hover': {\n backgroundColor: '#ffffffd6',\n },\n },\n slide: {\n transform: 'translate(280px)',\n },\n tabs: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 10,\n },\n tabItem: {\n textTransform: 'none',\n color: 'white',\n fontFamily: 'SegoeUI-Bold!important',\n },\n selectedTab: {\n borderBottom: '1px solid #fff',\n borderRadius: 0,\n },\n forgotPassword: {\n color: '#fff',\n },\n}));\n\nconst CustomInput = withStyles({\n root: {\n '& label.Mui-focused': {\n color: '#fff',\n },\n '& label': {\n color: '#fff',\n },\n '& .MuiInput-underline:after': {\n borderBottomColor: '#fff',\n },\n '& .MuiOutlinedInput-root': {\n '& input': {\n color: '#fff',\n },\n '& fieldset': {\n borderColor: '#fff',\n },\n '&:hover fieldset': {\n borderColor: '#fff',\n },\n '&.Mui-focused fieldset': {\n borderColor: '#fff',\n },\n },\n },\n})(TextField);\n\ninterface Result {\n title: string;\n description: string;\n}\n\nfunction Login({ ...rest }: WrappedComponentProps) {\n const classes = useStyles();\n const dispatch = useDispatch();\n const [currentTab, setCurrentTab] = useState('loginPassword');\n const history = useHistory();\n const tabs = [\n { value: 'loginPassword', defaultLabel: 'Login/Password' },\n { value: 'digitalSignature', defaultLabel: 'Digital Signature' },\n ];\n\n const handleTabsChange = (value: string) => {\n setCurrentTab(value);\n };\n\n const getTabTranslation = (tabKey: string, defaultLabel: string) => {\n return translate(rest, `pub:Login;Tabs;${tabKey}:label`, defaultLabel);\n };\n\n let initialValues = {\n email: '',\n password: '',\n submit: '',\n };\n\n return (\n <>\n \n
\n {tabs.map(tab => (\n {\n handleTabsChange(tab.value);\n }}\n >\n {getTabTranslation(tab.value, tab.defaultLabel)}\n \n ))}\n
\n {currentTab === 'loginPassword' && (\n <>\n \n \n \n \n {\n try {\n await dispatch(login(values.email, values.password, false));\n await dispatch(getFolderList());\n dispatch(setRequestedDocs({ isModalOpen: true }));\n history.push('/dashboard');\n } catch (error) {\n const messageId = error.data && error.data.message;\n const message = messageId\n ? translate(rest, `app:loginView;signIn;Error:${messageId}`)\n : 'Something went wrong';\n setStatus({ success: false });\n setErrors({ submit: message });\n setSubmitting(false);\n }\n }}\n >\n {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => (\n
\n }\n margin=\"normal\"\n name=\"email\"\n onBlur={handleBlur}\n onChange={handleChange}\n type=\"text\"\n value={values.email}\n variant=\"outlined\"\n />\n }\n margin=\"normal\"\n name=\"password\"\n onBlur={handleBlur}\n onChange={handleChange}\n type=\"password\"\n value={values.password}\n variant=\"outlined\"\n />\n \n \n \n \n \n \n \n \n \n {errors.submit && (\n \n {errors.submit}\n \n )}\n \n \n )}\n \n \n )}\n {currentTab === 'digitalSignature' && }\n
\n \n );\n}\n\nexport default injectIntl(Login);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { Box, Typography, makeStyles, Avatar, List, ListItem, ListSubheader, Icon } from '@material-ui/core';\nimport AccountBoxIcon from '@material-ui/icons/AccountBox';\nimport { useSelector } from 'react-redux';\nimport PublicAccount from '../../../types/public/PublicAccount';\nimport GroupIcon from '@material-ui/icons/Group';\nimport GavelIcon from '@material-ui/icons/Gavel';\nimport StarIcon from '@material-ui/icons/Star';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport CommentIcon from '@material-ui/icons/Comment';\nimport SendIcon from '@material-ui/icons/Send';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport SmsIcon from '@material-ui/icons/Sms';\nimport AddIcon from '@material-ui/icons/Add';\nimport FolderList from '../../../types/public/FolderList';\nimport FolderIcon from '@material-ui/icons/Folder';\nimport DoneIcon from '@material-ui/icons/Done';\nimport _ from 'lodash';\nimport { SearchTemplateList } from '../../../types/public/SearchTemplate';\nimport tenderService from '../../../publicServices/tenderService';\nimport moment from 'moment';\nimport documentsService from '../../../publicServices/documentsService';\n\nconst useStyles = makeStyles(() => ({\n root: {\n fontFamily: 'SegoeUI!important',\n color: '#fff',\n },\n page: {\n padding: 20,\n borderRadius: '0 0 15px 15px',\n marginBottom: 8,\n background: 'linear-gradient(180deg,#01018a 0,#060656)',\n color: '#fff',\n },\n helpPageHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginBottom: 10,\n },\n content: {},\n icon: {\n marginRight: 15,\n },\n orange: {\n color: 'orange',\n },\n red: {\n color: 'red',\n },\n info: {\n fontFamily: 'SegoeUI-Bold!important',\n },\n infoUser: {\n textAlign: 'center',\n },\n links: {\n color: '#000078',\n },\n contentItem: {\n display: 'flex',\n flexDirection: 'column',\n },\n avatarContainer: {\n display: 'flex',\n justifyContent: 'center',\n },\n avatar: {\n width: 60,\n height: 60,\n },\n mainMenu: {\n padding: '0 10px',\n },\n menuItem: {\n display: 'flex',\n flexDirection: 'row',\n },\n upperCase: {\n textTransform: 'uppercase',\n },\n menuTitle: {\n width: '100%',\n },\n black: {\n color: 'black',\n },\n grey: {\n color: 'grey',\n },\n blue: {\n color: 'blue',\n },\n green: {\n color: 'green',\n },\n yellow: {\n color: 'yellow',\n },\n badge: {\n display: 'flex',\n position: 'absolute',\n top: 0,\n right: 0,\n backgroundColor: 'red',\n width: 20,\n height: 20,\n borderRadius: '50%',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: 13,\n },\n}));\n\nconst navConfig: any = {\n myOrg: [\n {\n name: 'Личный кабинет',\n key: '',\n icon: AccountBoxIcon,\n href: '/profile',\n needData: false,\n hasBadg: false,\n },\n {\n name: 'Мои сотрудники',\n key: 'staff',\n icon: GroupIcon,\n href: '/staff',\n needData: true,\n hasBadg: false,\n },\n {\n name: 'Мои документы',\n key: 'docs',\n icon: DescriptionIcon,\n href: '/docs',\n needData: true,\n hasBadg: true,\n },\n ],\n tenders: [\n {\n name: 'Мои тендеры',\n key: 'myTenders',\n icon: GavelIcon,\n href: '/myTenders',\n needData: true,\n hasBadg: false,\n },\n {\n name: 'Избранные',\n key: 'fav',\n icon: StarIcon,\n href: '/favorite',\n needData: true,\n hasBadg: false,\n },\n {\n name: 'Победитель',\n key: 'winner',\n icon: CheckCircleIcon,\n href: '/winner',\n needData: true,\n hasBadg: false,\n },\n ],\n searchTemplates: [],\n folders: [],\n additionally: [\n {\n name: 'Мои обсуждения',\n key: '',\n icon: SmsIcon,\n href: '/',\n needData: false,\n hasBadg: false,\n },\n {\n name: 'Рассылка',\n key: '',\n icon: SendIcon,\n href: '/',\n needData: false,\n hasBadg: false,\n },\n {\n name: 'Мои заметки',\n key: '',\n icon: CommentIcon,\n href: '/withNotes',\n needData: false,\n hasBadg: false,\n },\n ],\n};\n\nexport interface UtilsProps {\n utils: {\n updateMenuCount: number;\n };\n}\n\nfunction Menu({ ...rest }) {\n const classes: any = useStyles();\n const { updateMenuCount } = useSelector((state: UtilsProps) => state.utils);\n const { user } = useSelector((state: PublicAccount) => state.publicAccount);\n const { folders } = useSelector((state: FolderList) => state.folderList);\n const [active, setActiveLength] = useState(0);\n const [staffCount, setStaffCount] = useState(user.employees.length);\n const [myTenders, setMyTenders] = useState(0);\n const [winnerCount, setWinnerCount] = useState(0);\n const [favLength, setFavLength] = useState(0);\n const [requestedDocsLength, setRequestedDocsLength] = useState(0);\n const [docsLength, setDocsLength] = useState(0);\n navConfig.folders = _.orderBy(folders, ['order'], 'asc');\n\n const { searchTemplates } = useSelector((state: SearchTemplateList) => state.searchTemplate);\n navConfig.searchTemplates = _.orderBy(searchTemplates, ['order'], 'asc');\n\n const photoUrl = `${user.photoUrl}?${Date.now()}`;\n\n function getFieldData(fieldKey: string) {\n switch (fieldKey) {\n case 'staff':\n return staffCount;\n case 'active':\n return active;\n case 'myTenders':\n return myTenders;\n case 'winner':\n return winnerCount;\n case 'fav':\n return favLength;\n case 'docs':\n return docsLength;\n default:\n return 0;\n }\n }\n\n const getFieldBadge = useCallback(\n (fieldKey: string) => {\n switch (fieldKey) {\n case 'docs':\n return requestedDocsLength || 0;\n default:\n return 0;\n }\n },\n [requestedDocsLength]\n );\n\n const getTenders = useCallback(async () => {\n const tenders = await tenderService.getActiveTenders();\n setMyTenders(tenders.length);\n\n const activeCount = tenders.filter((tender: any) => {\n return tender.endDate > moment();\n });\n setActiveLength(activeCount.length);\n\n const winnerCount = tenders.filter((tender: any) => {\n return tender.isWinner;\n });\n setWinnerCount(winnerCount.length);\n }, []);\n\n const getTendersFav = useCallback(async () => {\n const tenders = await tenderService.getList('', '/favorite');\n setFavLength(tenders.length);\n }, []);\n\n const getDocs = useCallback(async () => {\n const supplierDocs = await documentsService.getDocuments();\n setRequestedDocsLength(supplierDocs?.requestDocuments?.length || 0);\n const groupedDocs = _.groupBy(supplierDocs.participationInTender, 'name');\n setDocsLength(Object.keys(groupedDocs).length + (supplierDocs?.other?.length || 0));\n }, []);\n\n useEffect(() => {\n getTenders();\n getTendersFav();\n getDocs();\n }, [updateMenuCount]);\n\n return (\n <>\n \n \n
\n
\n \n
\n
\n {user.name}\n
\n
\n {user.orgName}\n
\n
\n
\n \n {'МОЯ ОРГАНИЗАЦИЯ'}\n }\n component=\"nav\"\n className={classes.root}\n >\n {navConfig.myOrg.map((item: any, i: number) => {\n const Icon = item.icon;\n const color = item.color ? classes[item.color] : '';\n return (\n \n {Icon && }\n {item.name}\n\n {item.needData && getFieldData(item.key)}\n\n {item.hasBadg && !!getFieldBadge(item.key) && (\n
{getFieldBadge(item.key)}
\n )}\n
\n );\n })}\n \n {'Тендеры'}}\n component=\"nav\"\n className={classes.root}\n >\n {navConfig.tenders.map((item: any, i: number) => {\n const Icon = item.icon;\n const color = item.color ? classes[item.color] : '';\n return (\n \n {Icon && }\n {item.name}\n\n {item.needData && getFieldData(item.key)}\n\n {item.hasBadg && !!getFieldBadge(item.key) && (\n
{getFieldBadge(item.key)}
\n )}\n
\n );\n })}\n \n {'Шаблоны поиска'}\n }\n component=\"nav\"\n className={classes.root}\n >\n \n \n Менеджер шаблонов\n \n {navConfig.searchTemplates.map((item: any, i: number) => {\n const Icon = item.icon;\n const color = item.color ? classes[item.color] : '';\n return (\n \n {Icon ? (\n \n ) : (\n \n )}\n {item.name}\n\n {item.needData && getFieldData(item.key)}\n\n {item.hasBadg && !!getFieldBadge(item.key) && (\n
{getFieldBadge(item.key)}
\n )}\n
\n );\n })}\n \n\n {'Папки'}}\n component=\"nav\"\n className={classes.root}\n >\n \n \n Менеджер папок\n \n \n \n В работе\n {active}\n \n {navConfig.folders.map((item: any, i: number) => {\n const Icon = item.icon;\n const color = item.color ? classes[item.color] : '';\n return (\n \n {Icon ? (\n \n ) : (\n \n )}\n {item.name}\n\n {item.count}\n \n );\n })}\n \n {'Дополнительно'}\n }\n component=\"nav\"\n className={classes.root}\n >\n {navConfig.additionally.map((item: any, i: number) => {\n const Icon = item.icon;\n const color = item.color ? classes[item.color] : '';\n return (\n \n {Icon && }\n {item.name}\n\n {item.needData && getFieldData(item.key)}\n \n );\n })}\n \n
\n
\n \n );\n}\n\nexport default Menu;\n","import React, { useEffect } from 'react';\nimport { useLocation } from 'react-router';\nimport { Link as RouterLink } from 'react-router-dom';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport {\n Box,\n Divider,\n Drawer,\n Hidden,\n makeStyles, Typography\n} from '@material-ui/core';\nimport Logo from '../../../components/Logo';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\nimport Login from './Login';\nimport Help from './Help';\nimport { useSelector } from 'react-redux';\nimport User from '../../../types/public/User';\nimport PublicAccount from '../../../types/public/PublicAccount';\nimport VerificationView from '../../../publicViews/auth/VerificationView';\nimport Menu from './Menu';\n\nconst useStyles = makeStyles(() => ({\n mobileDrawer: {\n width: 256\n },\n desktopNavBar: {\n width: '20%'\n },\n avatar: {\n cursor: 'pointer',\n width: 64,\n height: 64,\n },\n mobileLogo: {\n textAlign: 'center'\n },\n loggedIn: {\n padding: 10,\n textAlign: 'center'\n }\n}));\n\ninterface NavBarProps {\n onMobileClose: ()=>void;\n openMobile: boolean;\n}\n\nfunction NavBar({ openMobile, onMobileClose, ...props }: NavBarProps & WrappedComponentProps) {\n const classes = useStyles();\n const location = useLocation();\n const [showVerification, setShowVerification] = React.useState(false);\n const { user } = useSelector((state: PublicAccount) => state.publicAccount);\n\n useEffect(() => {\n if (openMobile && onMobileClose) {\n onMobileClose();\n }\n }, [location.pathname]);\n\n const content = (\n \n \n \n \n \n \n \n \n \n { !user &&\n \n }\n { user &&\n \n }\n {/**/}\n \n \n );\n\n return (\n <>\n \n \n {content}\n \n \n \n \n {content}\n \n \n \n );\n}\n\nexport default injectIntl(NavBar);\n\n","import React, { useState } from 'react';\nimport { Link as RouterLink, useHistory } from 'react-router-dom';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { useSnackbar } from 'notistack';\nimport {\n Box,\n Button,\n CircularProgress,\n Drawer,\n IconButton,\n InputAdornment,\n Link,\n SvgIcon,\n TextField,\n Tooltip,\n Typography,\n makeStyles,\n Menu,\n MenuItem,\n Popper,\n Grow,\n Paper,\n ClickAwayListener,\n MenuList,\n Hidden,\n Toolbar,\n Collapse,\n List,\n ListItem, ListItemText, useMediaQuery, useTheme,\n} from '@material-ui/core';\nimport { MenuItemChildren, MenuItemProps } from './index';\nimport clsx from 'clsx';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { translate } from '../../../utils/i18nHelpers';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nconst useStyles = makeStyles(() => ({\n menuBtn: {\n fontFamily: 'SegoeUI-Bold!important',\n borderRadius: 0,\n color: '#000078',\n letterSpacing: 'normal',\n fontSize: 16,\n marginRight: '3vw',\n '&:hover': {\n backgroundColor: 'transparent',\n '&:after': {\n width: '100%',\n }\n },\n '&:after': {\n content: '\" \"',\n position: 'absolute',\n bottom: 4,\n left: 0,\n right: 0,\n display: 'block',\n width: 0,\n margin: '0 auto',\n height: 1,\n background: '#000078',\n transition: '.3s',\n },\n },\n mobileButton: {\n maxHeight: 36,\n color: '#fff',\n '&:after': {\n background: 'transparent',\n },\n },\n container: {\n background: 'transparent',\n borderRadius: 15,\n },\n blur: {\n borderRadius: 15,\n background: 'hsl(0deg 0% 100% / 50%)',\n backdropFilter: 'blur(10px)'\n },\n menuItem: {\n fontFamily: 'SegoeUI-SemiBold',\n color: '#000078',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n menuItemText: {\n '&:hover': {\n backgroundColor: 'transparent',\n '&:after': {\n width: '100%',\n }\n },\n '&:after': {\n content: '\" \"',\n bottom: 4,\n left: 0,\n right: 0,\n display: 'block',\n width: 0,\n margin: '0 auto',\n height: 1,\n background: '#000078',\n transition: '.3s',\n },\n },\n redArrow: {\n fill: 'red'\n },\n link: {\n textDecoration: \"none\",\n }\n}));\n\nfunction MenuButton({ children, menu, onClickMobileMenu, ...rest }: { children: React.ReactNode, menu: MenuItemProps, onClickMobileMenu?: Function } & WrappedComponentProps) {\n const classes = useStyles();\n const anchorRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [open, setOpen] = React.useState(false);\n const history = useHistory();\n const theme = useTheme();\n const isMobileDevice = useMediaQuery(theme.breakpoints.down('sm'));\n\n const handleClick = (event: React.MouseEvent) => {\n if (menu.link && !menu.external) {\n history.push(menu.link);\n if (isMobileDevice && onClickMobileMenu) {\n onClickMobileMenu();\n }\n return;\n }\n if(menu.link && menu.external){\n window.open(menu.link, \"_blank\");\n }\n setAnchorEl(event.currentTarget);\n setOpen((prevOpen) => !prevOpen);\n };\n\n const handleClose = (event: React.MouseEvent) => {\n if (anchorRef.current && anchorRef.current.contains(event.target as HTMLElement)) {\n return;\n }\n if (isMobileDevice && onClickMobileMenu) {\n onClickMobileMenu();\n }\n setAnchorEl(null);\n setOpen(false);\n };\n\n return (\n <>\n \n { menu && menu.children && (\n <>\n \n \n { ({ TransitionProps, placement }) => (\n \n \n \n \n { menu.children && menu.children.map((item: MenuItemChildren, index: number) => {\n if(!item.external){\n return (\n \n { translate(rest, `pub:TopBar;Menu;${ item.key }:item`, item.name) }\n \n );\n }\n return (\n { translate(rest, `pub:TopBar;Menu;${ item.key }:item`, item.name) }\n );\n }) }\n \n \n \n \n ) }\n \n \n \n \n \n { menu.children && menu.children.map((item: MenuItemChildren, index: number) => {\n return (\n \n { item.name }\n \n );\n }) }\n \n \n \n \n ) }\n \n );\n}\n\nexport default injectIntl(MenuButton);\n","import React, { useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport clsx from 'clsx';\nimport { AppBar, Box, Hidden, IconButton, Toolbar, makeStyles, Typography, Drawer, Link } from '@material-ui/core';\nimport { LANGS, THEMES } from '../../../constants/enums';\nimport { ThemConfig } from '../../../types/Them';\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from 'react-intl';\nimport MenuButton from './Menu';\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutline';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport { useDispatch, useSelector } from 'react-redux';\nimport PublicAccount from '../../../types/public/PublicAccount';\nimport { changeLanguage, translate } from '../../../utils/i18nHelpers';\nimport { logout } from '../../../actions/public/authActions';\nimport useSettings from '../../../hooks/useSettings';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n zIndex: theme.zIndex.drawer + 100,\n ...(theme.name === THEMES.LIGHT\n ? {\n boxShadow: 'none',\n backgroundColor: theme.palette.primary.main,\n }\n : {}),\n ...(theme.name === THEMES.ONE_DARK\n ? {\n backgroundColor: theme.palette.background.default,\n }\n : {}),\n alignItems: 'center',\n fontFamily: 'SegoeUI-Bold',\n backgroundColor: 'transparent',\n },\n positionSticky: {},\n toolBarWrapper: {\n alignItems: 'center',\n display: 'flex',\n ...(theme.name === THEMES.LIGHT\n ? {\n boxShadow: 'none',\n }\n : {}),\n ...(theme.name === THEMES.ONE_DARK ? {} : {}),\n justifyContent: 'center',\n },\n toolbar: {\n maxWidth: 1700,\n width: '100%',\n background: 'hsl(0deg 0% 100% / 50%)',\n backdropFilter: 'blur(10px)',\n paddingTop: 10,\n paddingBottom: 10,\n },\n menuButton: {\n color: '#000078',\n },\n text: {\n lineHeight: 1.3,\n },\n logo: {\n cursor: 'pointer',\n zIndex: 1,\n padding: 15,\n marginRight: '4.7368vw',\n },\n menuSection: {\n display: 'flex',\n alignItems: 'center',\n },\n centerTitle: {\n color: '#000078',\n textAlign: 'center',\n textTransform: 'uppercase',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n },\n menu: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n maxWidth: 1700,\n justifyContent: 'space-between',\n height: 85,\n paddingRight: 0,\n '&:before': {\n borderRadius: '0 0 15px 15px',\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n content: '\" \"',\n background: 'hsl(0deg 0% 100% / 50%)',\n backdropFilter: 'blur(10px)',\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 2px 0 rgba(63,63,68,0.15)',\n },\n },\n registration: {\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'pre',\n color: '#000078',\n zIndex: 1,\n marginRight: 15,\n },\n menuContainer: {\n height: 45,\n display: 'flex',\n alignItems: 'center',\n },\n mobileDrawer: {\n width: 256,\n backgroundColor: '#282c34',\n },\n mobileMenuContainer: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: '#282c34',\n color: '#fff',\n padding: '20px 0',\n },\n mobileMenuTitle: {\n color: '#fff',\n textAlign: 'center',\n padding: '20px 0',\n background: '#3949ab',\n },\n logout: {\n color: '#000078',\n cursor: 'pointer',\n fontFamily: 'SegoeUI-Bold!important',\n },\n loginBtn: {\n color: '#000078',\n cursor: 'pointer',\n fontFamily: 'SegoeUI-Bold!important',\n },\n settingContainer: {\n zIndex: 1,\n height: '100%',\n display: 'flex',\n },\n langSelector: {\n textTransform: 'uppercase',\n background: '#000078',\n width: 100,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '0 0 15px 0',\n fontFamily: 'SegoeUI-SemiBold',\n cursor: 'pointer',\n position: 'relative',\n '&:hover $langList': {\n opacity: 1,\n visibility: 'visible',\n },\n },\n langList: {\n opacity: 0,\n transition: 'all .2s ease-in-out',\n position: 'absolute',\n borderRadius: 15,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n top: '100%',\n width: '100%',\n left: 0,\n background: '#000078',\n visibility: 'hidden',\n },\n langItem: {\n textTransform: 'uppercase',\n padding: '15px 0',\n },\n arrow: {\n fill: 'white',\n },\n}));\n\ninterface TopBarProps {\n className?: string;\n onMobileNavOpen: () => void;\n}\n\nexport interface MenuItemProps {\n name: string;\n key: string;\n link?: string;\n children?: MenuItemChildren[];\n external?: boolean;\n}\n\nexport interface MenuItemChildren {\n name: string;\n key: string;\n link: string;\n external?: boolean;\n}\n\nfunction TopBar({ className, onMobileNavOpen, ...rest }: TopBarProps & WrappedComponentProps) {\n const classes = useStyles();\n const location = useLocation();\n const dispatch = useDispatch();\n const items: MenuItemProps[] = [\n {\n name: 'ВСЕ ТЕНДЕРЫ',\n key: 'all',\n link: '/procurement',\n },\n {\n name: 'ТМЦ',\n key: 'materials',\n link: '/procurement?type=m',\n },\n {\n name: 'Оказание услуг',\n key: 'service',\n link: '/procurement?type=s',\n },\n {\n name: 'Выполнение работ',\n key: 'works',\n link: '/procurement?type=w',\n },\n {\n name: 'Помощь',\n key: 'help',\n children: [\n {\n link: '/rules',\n key: 'rules',\n name: 'Правила участия в тендере',\n },\n {\n link: '/security',\n key: 'securityService',\n name: 'Служба безопасности',\n },\n {\n link: '/directory',\n key: 'directory',\n name: 'Справочник',\n },\n {\n link: '/faq',\n key: 'faq',\n name: 'FAQ',\n },\n ],\n },\n {\n name: 'Новости',\n key: 'news',\n link: 'https://uktmp.kz/news',\n external: true,\n },\n ];\n const [isMobileMenu, setMobileMenuOpen] = useState(false);\n const { user } = useSelector((state: PublicAccount) => state.publicAccount);\n const history = useHistory();\n const { settings, saveSettings } = useSettings();\n const [values, setValues] = useState({\n language: settings.language,\n });\n\n const onClickLang = (lang: LANGS) => {\n saveSettings && saveSettings(lang);\n changeLanguage(lang);\n setValues({ language: lang });\n };\n\n const onLogout = async () => {\n await dispatch(logout());\n };\n\n return (\n <>\n {/*\n \n \n \n \n \n \n \n \n \n {\n history.push('/procurement');\n } }>\n \n \n \n \n \n
\n \n \n \n \n +7 (7232) 23 30 15\n \n
\n
\n
\n
*/}\n \n \n \n \n {\n history.push('/dashboard');\n }}\n >\n \"Logo\"\n \n \n \n {\n setMobileMenuOpen(true);\n }}\n >\n Меню \n \n \n \n {\n setMobileMenuOpen(false);\n }}\n open={isMobileMenu}\n variant=\"temporary\"\n >\n \n Меню\n \n
\n {items.map((menu: MenuItemProps, index: number) => {\n return (\n {\n setMobileMenuOpen(false);\n }}\n key={index}\n menu={menu}\n >\n {translate(rest, `pub:TopBar;Menu;${menu.key}:item`, menu.name)}\n \n );\n })}\n
\n \n
\n \n
\n {items.map((menu: MenuItemProps, index: number) => {\n return (\n \n {translate(rest, `pub:TopBar;Menu;${menu.key}:item`, menu.name)}\n \n );\n })}\n
\n
\n
\n \n
\n \n {!user && (\n <>\n {/* / */}\n {\n history.push('/registration');\n }}\n >\n \n \n \n )}\n {user && (\n \n {/*{ `${translate(rest, 'pub:TopBar;menu;LoggedInAs;title', 'Logged in as')} ${ user.orgName } ` }*/}\n \n Выйти\n \n \n )}\n
\n
\n \n {values.language}\n \n \n
\n {Object.values(LANGS).map(lang => (\n {\n onClickLang(lang);\n }}\n >\n {lang}\n
\n ))}\n
\n \n
\n
\n
\n \n );\n}\n\nexport default injectIntl(TopBar);\n","import React from 'react';\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport clsx from 'clsx';\nimport * as Yup from 'yup';\nimport { Formik } from 'formik';\nimport {\n Box,\n Button,\n TextField,\n makeStyles,\n FormControlLabel,\n FormHelperText,\n FormControl,\n FormLabel,\n RadioGroup,\n Radio,\n} from '@material-ui/core';\nimport { translate } from '../../../utils/i18nHelpers';\nimport { PHONE_REGEX_KZ, PHONE_REGEX_UA } from '../../../constants/constants';\nimport _ from 'lodash';\nimport AccountObj from '../../../types/Account';\nimport authService from '../../../publicServices/authService';\nimport PublicAccount from '../../../types/public/PublicAccount';\n\nconst useStyles = makeStyles(() => ({\n root: {}\n}));\n\nexport interface VerificationFormProps {\n className?: string;\n onSendSuccess: Function;\n props: any;\n}\n\nfunction VerificationForm({ className, onSendSuccess, props, ...rest }: VerificationFormProps & WrappedComponentProps) {\n const classes = useStyles();\n const { user } = useSelector((state: PublicAccount) => state.publicAccount);\n\n const initialValues = {\n email: user ? user.email : '',\n phoneNumber: user ? user.phoneNumber : '',\n verificationOption: 'Phone',\n errorList: '',\n };\n return (\n {\n try {\n await authService.sendVerification(user.id, values.email, values.phoneNumber, values.verificationOption);\n onSendSuccess(values.verificationOption);\n } catch (error) {\n const message = (error.response && error.response.data.message) || 'Something went wrong';\n setStatus({ success: false });\n setErrors({ errorList: translate(rest, `app:Verification;Error:${message}`) });\n setSubmitting(false);\n }\n } }\n >\n { ({\n errors,\n handleBlur,\n handleChange,\n handleSubmit,\n isSubmitting,\n touched,\n values\n }) => (\n \n \n \n \n \n \n }\n label={ translate(props, 'app:Verification;Option:phone', 'Phone') }/>\n \n }\n margin=\"normal\"\n name=\"phoneNumber\"\n onBlur={ handleBlur }\n onChange={ handleChange }\n type=\"text\"\n value={ values.phoneNumber }\n variant=\"outlined\"\n />\n }\n label={ translate(props, 'app:Verification;Option:email', 'Email') }/>\n \n }\n margin=\"normal\"\n name=\"email\"\n onBlur={ handleBlur }\n onChange={ handleChange }\n type=\"text\"\n value={ values.email }\n variant=\"outlined\"\n />\n \n \n \n \n \n \n { errors.errorList && (\n \n \n { errors.errorList }\n \n \n ) }\n \n \n ) }\n \n );\n}\n\nexport default injectIntl(VerificationForm);\n","import React, { useEffect, useState } from 'react';\nimport { Redirect } from 'react-router';\nimport {\n Avatar,\n Box,\n Container,\n Card,\n CardContent,\n Divider,\n Typography,\n colors,\n makeStyles, TextField, FormHelperText, Button, DialogTitle, DialogContent, Dialog,\n} from '@material-ui/core';\nimport VerificationForm from './VerificationForm';\nimport { FormattedMessage, injectIntl, WrappedComponentProps } from 'react-intl';\nimport { ThemConfig } from '../../../types/Them';\nimport { translate } from '../../../utils/i18nHelpers';\nimport { logout, verify } from '../../../actions/public/authActions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { allowOnlyNumbers } from '../../../utils/helper';\nimport PublicAccount from '../../../types/public/PublicAccount';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n justifyContent: 'center',\n backgroundColor: theme.palette.background.dark,\n display: 'flex',\n height: '100%',\n minHeight: '100%',\n flexDirection: 'column',\n paddingBottom: 80,\n paddingTop: 80\n },\n backButton: {\n marginLeft: theme.spacing(2)\n },\n card: {\n overflow: 'visible',\n display: 'flex',\n position: 'relative',\n '& > *': {\n flexGrow: 1,\n flexBasis: '50%',\n width: '50%'\n }\n },\n content: {\n padding: theme.spacing(8, 4, 3, 4)\n },\n icon: {\n backgroundColor: colors.green[500],\n color: theme.palette.common.white,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(1),\n position: 'absolute',\n top: -32,\n left: theme.spacing(3),\n height: 64,\n width: 64\n },\n media: {\n borderTopRightRadius: 4,\n borderBottomRightRadius: 4,\n padding: theme.spacing(3),\n color: theme.palette.common.white,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n [theme.breakpoints.down('md')]: {\n display: 'none'\n }\n },\n logoText: {\n color: 'white',\n padding: theme.spacing(3),\n backgroundColor: '#0000006b',\n margin: '0 -24px'\n },\n modalTitle: {\n fontSize: '20px'\n },\n modalContent: {\n paddingBottom: 20\n }\n}));\n\nfunction VerificationView({ openVerification, ...props }: { openVerification: boolean } & WrappedComponentProps) {\n const classes = useStyles();\n const dispatch = useDispatch();\n const [showCodeField, setShowCodeField] = useState(false);\n const [verifyOption, setVerifyOption] = useState('');\n const [errorCode, setErrorCode] = useState();\n const [code, setCode] = useState('');\n const { user } = useSelector((state: PublicAccount) => state.publicAccount);\n const [open, setOpen] = React.useState(false);\n const handleSendSuccess = (option: string) => {\n setShowCodeField(true);\n setVerifyOption(option);\n };\n\n useEffect (() => {\n if (openVerification) {\n setOpen(true);\n }\n }, [openVerification]);\n\n const handleClose = async () => {\n setOpen(false);\n setCode('');\n setShowCodeField(false);\n if (!user.isVerified) {\n await dispatch(logout());\n }\n };\n\n const verifyCode = async (event: React.ChangeEvent) => {\n const value = event.target.value;\n if (allowOnlyNumbers(value)) {\n setCode(value);\n if (value && value.length === 6) {\n try {\n await dispatch(verify(value, user.id, user.email, verifyOption));\n setOpen(false);\n } catch (e) {\n setErrorCode(translate(props, 'app:Verification;CodeError'));\n }\n }\n }\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n { showCodeField &&\n <>\n \n }\n inputProps={{ maxLength: 6 }}\n margin=\"normal\"\n name=\"code\"\n type=\"text\"\n variant=\"outlined\"\n value={code}\n />\n { errorCode && (\n \n { errorCode }\n \n ) }\n \n }\n \n \n \n );\n}\n\nexport default injectIntl(VerificationView);\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport NavBar from './NavBar';\nimport TopBar from './TopBar';\nimport { ThemConfig } from '../../types/Them';\nimport VerificationView from '../../publicViews/auth/VerificationView';\nimport { useSelector } from 'react-redux';\nimport PublicAccount from '../../types/public/PublicAccount';\nimport './index.css';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n background: 'url(/static/images/stars.png)',\n // background: 'url(/static/images/stars.png), linear-gradient(180deg,rgb(1 1 138 / 0.3) 0,rgb(6 6 86 / 0.1))',\n backgroundSize: '100%',\n display: 'flex',\n width: '100%',\n flexDirection: 'column',\n minHeight: '100%'\n },\n wrapper: {\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden',\n justifyContent: 'center'\n },\n contentContainer: {\n display: 'flex',\n flex: '1 1 auto',\n overflow: 'hidden',\n maxWidth: 1600,\n marginTop: 85\n },\n content: {\n flex: '1 1 auto',\n height: '100%',\n overflow: 'hidden',\n width: '80%'\n }\n}));\n\nfunction SupplierLayout({ children }: { children: React.ReactNode }) {\n const classes = useStyles();\n const [isMobileNavOpen, setMobileNavOpen] = useState(false);\n const { user } = useSelector((state: PublicAccount) => state.publicAccount);\n\n return (\n
\n setMobileNavOpen(true)} />\n
\n
\n setMobileNavOpen(false)}\n openMobile={isMobileNavOpen}\n />\n
\n {children}\n
\n
\n
\n \n
\n );\n}\n\nexport default SupplierLayout;\n","import React from 'react';\nimport {\n Typography,\n makeStyles, Container\n} from '@material-ui/core';\nimport { FormattedMessage } from 'react-intl';\nimport { ThemConfig } from '../../types/Them';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n backgroundColor: theme.palette.background.dark,\n minHeight: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: theme.spacing(3),\n paddingTop: 80,\n paddingBottom: 80\n },\n text: {\n fontWeight: 'bold'\n }\n}));\n\nfunction NotImplemented() {\n const classes = useStyles();\n\n return (\n \n \n \n \n \n );\n}\n\nexport default NotImplemented;\n","import React, {\n useEffect,\n useState\n} from 'react';\nimport { useDispatch } from 'react-redux';\nimport authService from '../publicServices/authService';\nimport { logout, setUserData } from '../actions/public/authActions';\nimport User from '../types/public/User';\nimport { getFolderList } from '../actions/public/folderActions';\n\ninterface AuthProps {\n children: React.ReactNode;\n}\n\nexport default function PublicAuth(\n {\n children\n }: AuthProps) {\n const dispatch = useDispatch();\n const [isLoading, setLoading] = useState(true);\n\n useEffect(() => {\n const initAuth = async () => {\n authService.setAxiosInterceptors({\n onLogout: () => dispatch(logout())\n });\n\n if (authService.isAuthenticated()) {\n try {\n const isVerified: Boolean = await authService.loginInWithToken();\n const user: User = await authService.getCurrentUser();\n\n await dispatch(setUserData({\n ...user,\n isVerified: Boolean(isVerified)\n }));\n await dispatch(getFolderList());\n } catch (e) {\n await dispatch(logout());\n }\n }\n\n setLoading(false);\n };\n\n initAuth();\n }, [dispatch]);\n\n if (isLoading) {\n return null;\n }\n\n return (<>{children});\n}\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\nimport User from \"../types/User\";\nimport PublicAccount from \"../types/public/PublicAccount\";\n\n/*interface AuthRouteProps {\n component?: any,\n render?: any,\n exact?: any,\n path?: any,\n}*/\n\ninterface State {\n account: {\n user: User,\n },\n}\n\nfunction PublicAuthRoute({ component: Component, render, ...rest }: any) {\n const account = useSelector((state: PublicAccount) => state.publicAccount);\n\n if (!account.user) {\n return ;\n }\n // if (account.user && !account.user.isVerified) {\n // return ;\n // }\n\n return render ? render({ ...rest }) : ;\n}\n\nexport default PublicAuthRoute;\n","import React, { lazy, Suspense } from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport LoadingScreen from './components/LoadingScreen';\nimport SupplierLayout from './layouts/SupplierLayout';\nimport NotImplemented from './views/pages/NotImplemented';\nimport PublicAuth from './components/PublicAuth';\nimport PublicAuthRoute from './components/PublicAuthRoute';\n\nfunction Routes() {\n return (\n \n }>\n \n (\n \n \n import('./publicViews/auth/ResetPasswordView'))}\n />\n\n \n import('./publicViews/tender/TenderViewRedesign'))}\n />\n import('./publicViews/tender/TenderList'))} />\n import('./publicViews/help/Rules'))} />\n import('./publicViews/help/Directory'))} />\n import('./publicViews/help/Security'))} />\n import('./publicViews/help/FAQ'))} />\n import('./publicViews/auth/RegisterViewRedesign'))}\n />\n \n (\n \n import('./publicViews/DashboardView'))} />\n import('./publicViews/ProfileView'))}\n />\n import('./publicViews/FoldersViewRegisign'))} />\n import('./publicViews/tender/TenderListFoldersView'))}\n />\n import('./publicViews/SearchTemplatesViewRegisign'))}\n />\n import('./publicViews/DocsView'))} />\n import('./publicViews/tender/TenderList'))}\n />\n \n \n )}\n />\n\n \n \n \n )}\n />\n \n \n \n );\n}\n\nexport default Routes;\n","import React from 'react';\nimport { Box, LinearProgress, makeStyles } from '@material-ui/core';\nimport { ThemConfig } from '../types/Them';\nimport { useSelector } from 'react-redux';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(3)\n },\n absolute: {\n top:0,\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: '#00000069',\n zIndex: 9999\n }\n}));\n\nexport interface UtilsProps {\n utils: {\n showLoader: boolean;\n };\n};\n\nfunction Loader() {\n const classes = useStyles();\n const { showLoader } = useSelector((state: UtilsProps) => state.utils);\n if (!showLoader) {\n return null;\n }\n return (\n
\n \n \n \n
\n );\n}\n\nexport default Loader;\n","import React from 'react';\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport { ThemConfig } from '../types/Them';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { setTenderUpdates } from '../actions/utilsActions';\nimport AccountObj from '../types/Account';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(3),\n },\n absolute: {\n top: 0,\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: '#00000069',\n zIndex: 9999,\n },\n tenderItem: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 2,\n marginTop: 2,\n },\n wrapper: {\n marginBottom: 20,\n },\n}));\n\nexport interface UtilsProps {\n utils: {\n showLoader: boolean;\n tenderUpdates: any;\n };\n}\n\nfunction TenderUpdateModal() {\n const classes = useStyles();\n const { tenderUpdates } = useSelector((state: UtilsProps) => state.utils);\n const { user } = useSelector((state: AccountObj) => state.account);\n const dispatch = useDispatch();\n\n if (!tenderUpdates.isModalOpen || !user?.isVerified) {\n return null;\n }\n\n const handleClose = () => {\n dispatch(setTenderUpdates({ ...tenderUpdates, isModalOpen: false }));\n };\n\n return (\n
\n \n Обновления по тендерам\n \n {Boolean(tenderUpdates.pendingPriceDeviation && tenderUpdates.pendingPriceDeviation.length) && (\n \n \n Ожидают информации по отклонению цен\n \n {tenderUpdates.pendingPriceDeviation.map((tender: any, index: number) => {\n return (\n \n \n {`${tender.id} ${tender.name}`}\n \n Перейти\n \n \n \n \n );\n })}\n \n )}\n {Boolean(tenderUpdates.pendingPaymentInfo && tenderUpdates.pendingPaymentInfo.length) && (\n \n \n Ожидают информации по оплате\n \n {tenderUpdates.pendingPaymentInfo.map((tender: any, index: number) => {\n return (\n \n \n {`${tender.id} ${tender.name}`}\n \n Перейти\n \n \n \n \n );\n })}\n \n )}\n {Boolean(tenderUpdates.readyToPublish && tenderUpdates.readyToPublish.length) && (\n \n \n Готовы к публикации\n \n {tenderUpdates.readyToPublish.map((tender: any, index: number) => {\n return (\n \n \n {`${tender.id} ${tender.name}`}\n \n Перейти\n \n \n \n \n );\n })}\n \n )}\n {Boolean(tenderUpdates.onVerification && tenderUpdates.onVerification.length) && (\n \n \n Ожидают верификации\n \n {tenderUpdates.onVerification.map((tender: any, index: number) => {\n return (\n \n \n {`${tender.id} ${tender.name}`}\n \n Перейти\n \n \n \n \n );\n })}\n \n )}\n {Boolean(tenderUpdates.onRevision && tenderUpdates.onRevision.length) && (\n \n \n На доработку\n \n {tenderUpdates.onRevision.map((tender: any, index: number) => {\n return (\n \n \n {`${tender.id} ${tender.name}`}\n \n Перейти\n \n \n \n \n );\n })}\n \n )}\n\n {Boolean(tenderUpdates.oapInspection && tenderUpdates.oapInspection.length) && (\n \n \n Ожидают инспекции ОАП\n \n {tenderUpdates.oapInspection.map((tender: any, index: number) => {\n return (\n \n \n {`${tender.id} ${tender.name}`}\n \n Перейти\n \n \n \n \n );\n })}\n \n )}\n \n \n \n \n \n
\n );\n}\n\nexport default TenderUpdateModal;\n","import Page from '../components/Page';\nimport React from 'react';\nimport {Box, Container, Typography} from \"@material-ui/core\";\nimport {makeStyles} from \"@material-ui/styles\";\nimport {ThemConfig} from \"../types/Them\";\nimport Logo from \"../components/Logo\";\n\n// ----------------------------------------------------------------------\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n minHeight: '100%',\n }\n}));\n\n\n// ----------------------------------------------------------------------\n\nexport default function ErrorPage() {\n const classes = useStyles();\n\n return (\n \n \n \n \n\n \n Произошла техническая ошибка\n \n Попробуйте позже или свяжитесь с информационным отделом\n\n \n \n \n );\n}\n","import React, { Component, ErrorInfo, ReactNode } from \"react\";\nimport ErrorPage from \"./ErrorPage\";\n\ninterface Props {\n children: ReactNode;\n}\n\ninterface State {\n hasError: boolean;\n}\n\nclass ErrorBoundary extends Component {\n // eslint-disable-next-line react/state-in-constructor\n public state: State = {\n hasError: false\n };\n\n public static getDerivedStateFromError(_: Error): State {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n public componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error(\"Uncaught error:\", error, errorInfo);\n }\n\n public render() {\n if (this.state.hasError) {\n return ;\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import React from 'react';\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle, makeStyles } from '@material-ui/core';\nimport { ThemConfig } from '../types/Them';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setRequestedDocs } from '../actions/utilsActions';\nimport { ReqDocItem } from '../types/public/Documents';\nimport { useHistory } from 'react-router';\n\nconst useStyles = makeStyles((theme: ThemConfig) => ({\n root: {\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(3),\n },\n absolute: {\n top: 0,\n position: 'fixed',\n left: 0,\n right: 0,\n backgroundColor: '#00000069',\n zIndex: 9999,\n },\n tenderItem: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 2,\n marginTop: 2,\n },\n wrapper: {\n marginBottom: 20,\n },\n}));\n\nexport interface UtilsProps {\n utils: {\n showLoader: boolean;\n tenderUpdates: any;\n requestedDocs: any;\n };\n}\n\nfunction SupplierRequestedDocsModal() {\n const classes = useStyles();\n const history = useHistory();\n\n const { requestedDocs } = useSelector((state: UtilsProps) => state.utils);\n const dispatch = useDispatch();\n\n if (!requestedDocs.isModalOpen) {\n return null;\n }\n\n const handleClose = () => {\n dispatch(setRequestedDocs({ list: requestedDocs.list, isModalOpen: false }));\n };\n const handleOpen = () => {\n dispatch(setRequestedDocs({ list: requestedDocs.list, isModalOpen: false }));\n history.push('/docs');\n };\n\n if (!requestedDocs?.list?.length) return null;\n\n return (\n
\n \n Важные сообщения\n \n У вас есть важное сообщение от организатора тендера:\n
    \n {requestedDocs.list.map((item: ReqDocItem) => (\n
  • \n {item.message}\n
  • \n ))}\n
\n
\n \n \n \n \n
\n
\n );\n}\n\nexport default SupplierRequestedDocsModal;\n","import React from 'react';\nimport { Router } from 'react-router-dom';\nimport { createBrowserHistory } from 'history';\nimport { create } from 'jss';\nimport rtl from 'jss-rtl';\nimport MomentUtils from '@date-io/moment';\nimport { SnackbarProvider } from 'notistack';\nimport { createStyles, jssPreset, makeStyles, StylesProvider, ThemeProvider } from '@material-ui/core';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\n// import CookiesNotification from './components/CookiesNotification';\n// import SettingsNotification from './components/SettingsNotification';\nimport GoogleAnalytics from './components/GoogleAnalytics';\nimport ScrollReset from './components/ScrollReset';\nimport useSettings from './hooks/useSettings';\nimport { createTheme } from './theme';\nimport Routes from './Routes';\nimport { IntlProvider } from 'react-intl-redux';\nimport { restoreLocale } from './utils/i18nHelpers';\nimport Loader from './components/Loader';\nimport TenderUpdateModal from './components/TenderUpdateModal';\nimport ErrorBoundary from './utils/ErrorBoundary';\nimport SupplierRequestedDocsModal from './components/SupplierRequestedDocsModal';\n\nconst history = createBrowserHistory();\nconst jss = create({ plugins: [...jssPreset().plugins, rtl()] });\n\nconst useStyles = makeStyles(() =>\n createStyles({\n '@global': {\n '*': {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n },\n html: {\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n height: '100%',\n width: '100%',\n },\n body: {\n height: '100%',\n width: '100%',\n },\n '#root': {\n height: '100%',\n width: '100%',\n },\n },\n })\n);\n\nfunction App() {\n useStyles();\n // localStorage.setItem('count', '0');\n const { settings } = useSettings();\n\n return (\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\nexport default App;\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport 'react-quill/dist/quill.snow.css';\nimport 'nprogress/nprogress.css';\nimport './assets/css/prism.css';\nimport './mixins/chartjs';\nimport './mixins/prismjs';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider} from 'react-redux'\nimport * as serviceWorker from './serviceWorker';\nimport { SettingsProvider } from './context/SettingsContext';\nimport { store } from './store';\nimport { restoreSettings } from './utils/settings';\nimport App from './App';\n\nconst settings = restoreSettings();\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\nserviceWorker.unregister();\n","import axios from '../utils/axios';\nimport { API } from '../constants/constants';\n\nclass TrackService {\n getLogs = (options: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/User/Track/List`, options)\n .then(response => {\n if (response.data) {\n resolve(response.data);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n logAction = (data: any) =>\n new Promise((resolve, reject) => {\n axios\n .post(`${API}/User/Track`, data)\n .then(response => {\n resolve(true);\n })\n .catch(error => {\n reject(error.data.message);\n });\n });\n}\n\nconst trackService = new TrackService();\n\nexport default trackService;\n","import jwtDecode from 'jwt-decode';\nimport _, { isEqual } from 'lodash';\nimport Tender from '../types/Tender';\nimport { AvailableRoles, TenderStatus, UserActions } from '../constants/enums';\nimport Material from '../types/Material';\nimport trackService from '../services/trackService';\n\nexport function generatePassword() {\n const length = 8;\n const charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n let retVal = '';\n for (let i = 0, n = charset.length; i < length; ++i) {\n retVal += charset.charAt(Math.floor(Math.random() * n));\n }\n return retVal;\n}\n\nexport function getRandomInt(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min)) + min;\n}\n\nexport function allowOnlyNumbers(value: string): boolean {\n const re = /^\\d*\\.?\\d*$/;\n return value === '' || re.test(value);\n}\n\nexport function isFullGroupSelected(group: Material[], selectedItems: Material[]) {\n let count = 0;\n if (group) {\n group.map(groupItem => {\n const match = selectedItems.find(item => {\n if (item.sapApplicationNumber) {\n return item.sapApplicationNumber === groupItem.sapApplicationNumber;\n } else {\n return item.similarSAPWorkItem.find(item => item.sapApplicationNumber === groupItem.sapApplicationNumber);\n }\n });\n if (Boolean(match)) {\n count++;\n }\n });\n return group.length === count;\n } else {\n return false;\n }\n}\n\nexport function prepareRequestItems(items: Material[]) {\n const preparedData: Material[] = [];\n items.map(item => {\n if (item.sapApplicationNumber) {\n preparedData.push(item);\n } else if (item.similarSAPWorkItem.length) {\n item.similarSAPWorkItem.map(similarItem => {\n preparedData.push(similarItem);\n });\n }\n });\n return preparedData;\n}\n\nexport async function getImageFormData(file: Blob | string): Promise {\n return new Promise(async (resolve, reject) => {\n const formData = new FormData();\n if (typeof file === 'string') {\n await getFile(file).then((data: Blob) => {\n formData.append('photo', data);\n resolve(formData);\n });\n } else {\n formData.append('photo', file);\n resolve(formData);\n }\n });\n}\n\nexport function getUserRoles() {\n const accessToken = localStorage.getItem('accessToken');\n if (accessToken) {\n return jwtDecode(accessToken);\n }\n return {};\n}\n\nexport function hasUserAccess(acceptRoles: string[]) {\n let rolesData: any = getUserRoles();\n if (!acceptRoles) {\n return true;\n }\n return _.some(acceptRoles, (item: string) => {\n return Boolean(rolesData[item]);\n });\n}\n\nexport function getTenderUpdates(tenders: Tender[]) {\n const updatedTenders: any = {\n // isModalOpen: false,\n onRevision: [],\n readyToPublish: [],\n onVerification: [],\n pendingPaymentInfo: [],\n pendingPriceDeviation: [],\n oapInspection: [],\n };\n tenders.map((tender: Tender) => {\n switch (tender.status) {\n case TenderStatus.OnRevision:\n if (hasUserAccess([AvailableRoles.TENDER_EDIT])) {\n updatedTenders.onRevision.push(tender);\n }\n break;\n case TenderStatus.ReadyToPublish:\n if (hasUserAccess([AvailableRoles.TENDER_CREATE])) {\n updatedTenders.readyToPublish.push(tender);\n }\n break;\n case TenderStatus.OnVerification:\n if (hasUserAccess([AvailableRoles.TENDER_VERIFICATION])) {\n updatedTenders.onVerification.push(tender);\n }\n break;\n case TenderStatus.PendingPaymentInfo:\n if (hasUserAccess([AvailableRoles.TENDER_PENDING_PAYMENT_INFO])) {\n updatedTenders.pendingPaymentInfo.push(tender);\n }\n break;\n case TenderStatus.PendingPriceDeviation:\n if (hasUserAccess([AvailableRoles.TENDER_PENDING_PRICE_DEVIATION])) {\n updatedTenders.pendingPriceDeviation.push(tender);\n }\n break;\n case TenderStatus.OAPInspection:\n if (hasUserAccess([AvailableRoles.TENDER_OAP_INSPECTION])) {\n updatedTenders.oapInspection.push(tender);\n }\n break;\n default:\n return;\n }\n });\n return updatedTenders;\n}\n\nexport function getUserRole() {\n const accessToken = localStorage.getItem('accessToken');\n if (accessToken) {\n let token: any = jwtDecode(accessToken);\n return token.role;\n }\n return {};\n}\n\nexport function userHasOneOfRole(roleList: string[] = []) {\n const userRole = getUserRole();\n return roleList?.some((role: string) => userRole === role);\n}\n\nexport async function getFile(url: string): Promise {\n return new Promise((resolve, reject) => {\n let xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function() {\n resolve(xhr.response);\n };\n xhr.send();\n });\n}\n\nexport function downloadFile(data: string, name: string, type: string) {\n const url = window.URL.createObjectURL(new Blob([data], { type }));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', name);\n document.body.appendChild(link);\n link.click();\n}\n\nexport function base64ToFile(data: any, fileName: string, type?: string) {\n let arr = [];\n let mime = '';\n let bstr = '';\n if (type) {\n mime = type;\n bstr = atob(data);\n } else {\n arr = data.split(',');\n mime = arr && arr[0].match(/:(.*?);/)[1];\n bstr = atob(arr[1]);\n }\n\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n const file = new File([u8arr], fileName, { type: mime });\n downloadSelfUploadedFile(file, fileName);\n}\n\nexport function base64ToString(str: string) {\n return decodeURIComponent(\n atob(str)\n .split('')\n .map(function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n}\n\nexport function downloadSelfUploadedFile(data: any, name: string) {\n const url = window.URL.createObjectURL(data);\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', name);\n document.body.appendChild(link);\n link.click();\n}\n\nexport const getSupplierStatus = (supplier: any) => {\n let status = '';\n if (\n supplier.reliabilityViolationCount === 0 &&\n supplier.itemsPricing === 'CorrespondMarket' &&\n supplier.oapAdmitted\n ) {\n if (supplier.rating === 1) {\n status = 'Рекомендуемый победитель';\n } else {\n status = `${supplier.rating}-е место`;\n }\n } else {\n switch (supplier.itemsPricing) {\n case 'OutOfRangeMarket':\n status = supplier.oapAdmitted\n ? `${supplier.rating}-е место (Допущен ОАП)\\nНеконкурентная цена`\n : `Не допущен ОАП\\nНеконкурентная цена`;\n break;\n case 'MissingProductInMarket':\n status = supplier.oapAdmitted\n ? `${supplier.rating}-е место (Допущен ОАП)\\nНе полный ассортимент`\n : `Не допущен ОАП\\nНе полный ассортимент`;\n break;\n case 'CorrespondMarket':\n status = supplier.oapAdmitted ? `${supplier.rating}-е место (Допущен ОАП)` : `Не допущен ОАП`;\n break;\n }\n }\n return status;\n};\n\nexport function toBase64(file: any): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (typeof reader.result === 'string') {\n const b64 = reader.result && reader.result.replace(/^data:.+;base64,/, '');\n resolve(b64);\n }\n };\n reader.onerror = error => reject(error);\n });\n}\n\nexport function downloadCsv(data: string, name: string) {\n const hiddenElement = document.createElement('a');\n hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(data);\n hiddenElement.target = '_blank';\n hiddenElement.download = `${name}.csv`;\n hiddenElement.click();\n}\n\nexport function normalizeData(data: any): any {\n let returnData: any = {};\n Object.keys(data).map(item => {\n const number = Number(data[item]);\n if (!isNaN(number)) {\n return (returnData[item] = number);\n }\n return (returnData[item] = data[item]);\n });\n return returnData;\n}\n\nexport function translit(str: string): string {\n const space = '_';\n let objectKey = '';\n const transl: any = {\n а: 'a',\n б: 'b',\n в: 'v',\n г: 'g',\n д: 'd',\n е: 'e',\n ё: 'e',\n ж: 'zh',\n з: 'z',\n и: 'i',\n й: 'j',\n к: 'k',\n л: 'l',\n м: 'm',\n н: 'n',\n о: 'o',\n п: 'p',\n р: 'r',\n с: 's',\n т: 't',\n у: 'u',\n ф: 'f',\n х: 'h',\n ц: 'c',\n ч: 'ch',\n ш: 'sh',\n щ: 'sh',\n ъ: space,\n ы: 'y',\n ь: space,\n э: 'e',\n ю: 'yu',\n я: 'ya',\n };\n if (str != '') {\n str = str.toLowerCase();\n }\n\n for (let i = 0; i < str.length; i++) {\n if (/[а-яё]/.test(str.charAt(i))) {\n objectKey += transl[str.charAt(i)];\n } else if (/[a-z0-9]/.test(str.charAt(i))) {\n objectKey += str.charAt(i);\n } else {\n if (objectKey.slice(-1) !== space) {\n objectKey += space;\n }\n }\n }\n return objectKey;\n}\n\nexport function toTranslitCamelcase(str: string): string {\n const converter = translit(str);\n return converter\n .replace(/_/g, ' ')\n .replace(/\\w+/g, function(w) {\n return w[0].toUpperCase() + w.slice(1).toLowerCase();\n })\n .replace(/ /g, '');\n}\n\nexport function currencyCheck(currency: string) {\n switch (currency) {\n case 'USD':\n return '$';\n case 'KZT':\n return '₸';\n case 'RUB':\n return '₽';\n case 'EUR':\n return '€';\n default:\n return '';\n }\n}\n\nexport function daysTyping(value: any) {\n const string = value.toString();\n const lastChar = string.charAt(string.length - 1);\n\n if (lastChar == '1' && !(value == 11)) {\n return 'день';\n } else if (lastChar == '2' && !(value == 12)) {\n return 'дня';\n } else if (lastChar == '3' && !(value == 13)) {\n return 'дня';\n } else if (lastChar == '4' && !(value == 14)) {\n return 'дня';\n } else {\n return 'дней';\n }\n}\n\nexport function hoursTyping(value: any) {\n const string = value.toString();\n const lastChar = string.charAt(string.length - 1);\n\n if (lastChar == '1' && !(value == 11)) {\n return 'час';\n } else if (lastChar == '2' && !(value == 12)) {\n return 'часа';\n } else if (lastChar == '3' && !(value == 13)) {\n return 'часа';\n } else if (lastChar == '4' && !(value == 14)) {\n return 'часа';\n } else {\n return 'часов';\n }\n}\n\nexport function minutesTyping(value: any) {\n const string = value.toString();\n const lastChar = string.charAt(string.length - 1);\n\n if (lastChar == '1' && !(value == 11)) {\n return 'минута';\n } else if (lastChar == '2' && !(value == 12)) {\n return 'минуты';\n } else if (lastChar == '3' && !(value == 13)) {\n return 'минуты';\n } else if (lastChar == '4' && !(value == 14)) {\n return 'минуты';\n } else {\n return 'минут';\n }\n}\n\nexport function getTitle(path: any) {\n switch (path) {\n case '/procurement':\n return 'Портал электронных закупок АО «УКТМК»';\n case '/activeTenders':\n return 'Тендеры в работе';\n case '/favorite':\n return 'Избранные тендеры';\n default:\n return '';\n }\n}\n\nexport const saveApplyTenderTmpData = (tenderId: number, data: any) => {\n let tenders: any = {};\n const userEmail = localStorage.getItem('email');\n const savedTenders = localStorage.getItem('tenders');\n if (savedTenders) {\n tenders = JSON.parse(savedTenders);\n }\n if (userEmail) {\n tenders[userEmail] = {\n ...tenders[userEmail],\n [tenderId]: data,\n };\n localStorage.setItem('tenders', JSON.stringify(tenders));\n console.log('tenderData:', tenders[userEmail][tenderId].questionnaireData);\n }\n};\n\nexport const clearApplyTenderTmpData = (tenderId: number) => saveApplyTenderTmpData(tenderId, {});\nexport const getApplyTenderTmpData = (tenderId: number) => {\n let tenders: any = {};\n const userEmail = localStorage.getItem('email');\n const savedTenders = localStorage.getItem('tenders');\n if (savedTenders) {\n tenders = JSON.parse(savedTenders);\n }\n if (userEmail) {\n return tenders[userEmail]?.[tenderId] || {};\n }\n return {};\n};\n\nexport const getValueByRoleAccess = (roles: string[], value: any) => {\n if (hasUserAccess(roles)) {\n return value;\n }\n return '***';\n};\n\nexport const getPriceValueByRoleAccess = (roles: string[], value: any) => {\n // if (hasUserAccess(roles)) {\n // return value;\n // }\n // return '***';\n return value;\n};\n\nexport const isDuplicateObj = (array: any[], objToCompare: any) => array.some(item => isEqual(item, objToCompare));\n\nexport const logUserAction = (actionType: UserActions, data?: any) =>\n trackService\n .logAction({\n payload: {\n screenName: actionType,\n ...data,\n },\n })\n .then(res => console.log(res));\n"],"sourceRoot":""}