{"version":3,"sources":["http/index.ts","router/index.ts","services/auth.service.ts","store/reducers/auth/types.ts","store/reducers/auth/index.ts","store/reducers/ci/types.ts","store/reducers/ci/index.ts","store/reducers/index.ts","store/index.ts","router/AuthGuard.tsx","hooks/useHttpGet.ts","services/common.service.ts","services/constants.ts","services/enums.ts","components/Layout/AppLayout/components/InstrumentsMarqueeItem.tsx","components/Layout/AppLayout/components/InstrumentsMarquee.tsx","assets/media/images/long.png","hooks/useTypedSelector.ts","components/Layout/AppLayout/components/Header.tsx","services/subscribes.service.ts","components/Subscribes/Form.tsx","components/Layout/AppLayout/components/Footer.tsx","components/Layout/AppLayout/index.tsx","components/Layout/LandingLayout/index.tsx","store/reducers/auth/action-creators.ts","store/reducers/ci/action-creators.ts","store/reducers/action-creators.ts","hooks/useActions.ts","components/Login/LoginForm/index.tsx","components/AuthBase.tsx","components/Login/index.tsx","areas/public/pages/Login.tsx","components/Layout/ControlPanelLayout/Header.tsx","components/AppPage.tsx","components/Layout/ControlPanelLayout/Sider.tsx","areas/admin/menuItemsData.ts","components/Layout/ControlPanelLayout/index.tsx","assets/media/images/long2.png","components/CI10/Info.tsx","components/CI10/Instruments.tsx","components/CI10/News.tsx","components/CI10/ChartRangeSelector.tsx","services/highcharts.service.ts","components/CI10/IndexChart.tsx","components/CI10/Volatility.tsx","components/CI10/PeriodPL.tsx","components/CI10/WinnersLosers.tsx","components/CI10/HeatMap.tsx","components/CI10/Tabs.tsx","components/CI10/SiteSponsors.tsx","areas/public/pages/CI10.tsx","components/CryptoMarkets/ComparativePerformance.tsx","components/CryptoMarkets/CryptoCorrelationsTable.tsx","components/CryptoMarkets/CryptoCorrelations.tsx","components/CryptoMarkets/MarketCap.tsx","components/CryptoMarkets/PercentageMarketCap.tsx","components/CryptoMarkets/TradingVolumesTab.tsx","components/CryptoMarkets/TradingVolumes.tsx","components/FearGreed/IndexChart.tsx","models/fearAndGreed/momentum.model.ts","components/FearGreed/MarketDominanceChart.tsx","components/FearGreed/MomentumChart.tsx","components/FearGreed/MarketVolumesChart.tsx","components/FearGreed/VolatilityChart.tsx","components/CryptoMarkets/FearAndGreedIndex.tsx","areas/public/pages/CryptoMarkets.tsx","areas/public/pages/Education.tsx","areas/public/pages/CryptoNews.tsx","areas/public/pages/Blog.tsx","areas/public/pages/ViewNews.tsx","components/CI10/InstrumentInfo.tsx","components/CI10/InstrumrntTradingVolumes.tsx","components/CI10/InstrumentVolatility.tsx","components/CI10/InstrumentHistoricalChart.tsx","components/CI10/InstrumenTabs.tsx","components/CI10/InstrumentNews.tsx","areas/public/pages/ViewInstrument.tsx","areas/public/pages/ViewBlog.tsx","areas/public/pages/Pages.tsx","areas/public/pages/ChangeLogs.tsx","areas/admin/pages/Dashboard.tsx","components/Engine/index.tsx","areas/admin/pages/EngineApp.tsx","components/Layout/Common/PageTemplate.tsx","components/Layout/Common/Adapters/TableFilter.tsx","components/Users/List.tsx","areas/admin/pages/UsersList.tsx","services/user.service.ts","components/Users/Form.tsx","areas/admin/pages/UserEdit.tsx","services/instrument.service.ts","components/Instruments/Form.tsx","areas/admin/pages/InstrumentEdit.tsx","components/Instruments/List.tsx","areas/admin/pages/InstrumentsList.tsx","services/indices.service.ts","components/Indices/Form.tsx","components/Indices/InstrumentsList.tsx","areas/admin/pages/IndexEdit.tsx","components/Indices/List.tsx","areas/admin/pages/IndicesList.tsx","components/News/List.tsx","areas/admin/pages/NewsList.tsx","services/news.service.ts","components/Layout/Common/Adapters/Editor.tsx","components/News/Form.tsx","areas/admin/pages/NewsEdit.tsx","services/magic-pages.service.ts","components/MagicPges/Form.tsx","areas/admin/pages/MagicPageEdit.tsx","services/blog.service.ts","components/Blog/List.tsx","areas/admin/pages/BlogList.tsx","components/Blog/Form.tsx","areas/admin/pages/BlogEdit.tsx","services/system-settings.service.ts","components/SystemSettings/Form.tsx","areas/admin/pages/SystemSettingsEdit.tsx","components/SystemSettings/List.tsx","areas/admin/pages/SystemSettingsList.tsx","components/ForgotPassword/ForgotPasswordForm/index.tsx","components/ForgotPassword/index.tsx","areas/public/pages/ForgotPassword.tsx","components/RestorePassword/RestorePasswordForm/index.tsx","components/RestorePassword/index.tsx","areas/public/pages/RestorePassword.tsx","components/EmailTemplates/List.tsx","areas/admin/pages/EmailTemplatesList.tsx","services/email-templates.service.ts","components/EmailTemplates/Form.tsx","areas/admin/pages/EmailTemplateEdit.tsx","components/MagicPges/MagicPageHistoryFormModal.tsx","components/MagicPges/List.tsx","areas/admin/pages/MagicPagesList.tsx","components/Subscribes/List.tsx","areas/admin/pages/SubscribersList.tsx","router/AppRouter.tsx","App.tsx","index.tsx","services/requests.service.ts"],"names":["APIRoutesVersions","APIRoutesBase","DASHBOARD","V1","AD_BLOCKS","AUTH","BLOG","SUNSCRIBERS","EMAIL_TEMPLATES","CHANGE_LOGS","CORRELATION","CRYPTO_INDEX","FEAR_AND_GREED","INSTRUMENTS","LAYOUT","MAGIC_PAGES","MAGIC_PAGES_HISTORY","NEWS","QUOTES","WIDGETS","USERS","SYSTEM_SETTINGS","CRYPTO_MARKETS","APIRoutes","DASHBOARD_INSTRUMENT_MOVEMENTS","AUTH_LOGIN","AUTH_FORGOT_PASSWORD_REQUEST","AUTH_FORGOT_PASSWORD_CHANGE","INSTRUMENT_FOR_INDEX","LAYOUT_RIBBON","CRYPTO_INDEX_CHART","CRYPTO_INDEX_VOLATILITY_CHART","CRYPTO_INDEX_PERIOD_PL_CHART","CRYPTO_INDEX_HEAT_MAP_CHART","CRYPTO_MARKETS_CAPITALIZATION","CRYPTO_MARKETS_COMPATIVE_PERFORMANCE","CRYPTO_MARKETS_TRADING_VOLUMES","MAGIC_PAGES_HISTORY_FOR_PAGE","NEWS_TAKE","QUOTES_FOR_INSTRUMENT","QUOTES_VOLATILITY_FOR_INSTRUMENT","QUOTES_TRADING_VOLUMES_FOR_INSTRUMENT","$api","axios","create","baseURL","process","interceptors","request","use","config","url","indexOf","headers","Authorization","localStorage","getItem","timezoneOffset","Date","getTimezoneOffset","response","error","status","window","location","href","UIRoutes","ACCOUNT","LOGIN","Promise","reject","PrivateUIRoutes","createAuthHash","username","password","Buffer","from","toString","AuthService","login","RequestsService","postMethod","email","putMethod","data","AuthActionEnum","CIActionEnum","initialState","isAuth","currentUser","indexId","chartData","Object","assign","auth","state","action","type","SET_AUTH","payload","SET_CURRENT_USER","ci","SET_INDEX_ID","SET_CHART_DATA_TYPE","rootReducer","combineReducers","reducers","store","createStore","applyMiddleware","thunk","AuthGuard","props","useLocation","JSON","parse","to","replace","useHttpGet","newOptions","useState","loading","fetchedData","defaultValue","setState","options","dependencies","query","resolve","undefined","condition","useEffect","s","getMethod","then","catch","CommonService","number","toLocaleString","maximumFractionDigits","err","property","hasOwnProperty","array","parram","sortAsc","sort","a","b","getTime","key","reduce","result","currentValue","push","name","trim","replaceAll","toLocaleLowerCase","enumType","keys","filter","isNaN","parseInt","map","val","value","errors","console","log","errorMessages","forEach","notification","message","col","amt","usePound","slice","num","r","g","numberColor","prepareFormData","file","FormData","append","CITypes","BASE_IMAGE_URL","formItemLayout","labelCol","xs","span","sm","md","wrapperCol","currencyFormat","style","currency","InstrumentsMarqueeItem","item","isIndex","className","toLocalNum","lastTradePriceOnly","lineHeight","changeinPercent","change","ticker","ClockCircleOutlined","lastTradeTime","highcharts","Highcharts","lastPrices","colors","chart","borderWidth","margin","height","width","overflow","backgroundColor","title","text","credits","enabled","xAxis","labels","startOnTick","endOnTick","tickPositions","yAxis","legend","tooltip","hideDelay","shared","padding","borderRadius","plotOptions","series","animation","lineWidth","shadow","states","hover","marker","radius","column","negativeColor","borderColor","constructorType","idInstrument","InstrumentsMarquee","el","instruments","bordered","useTypedSelector","useSelector","AppHeader","indices","setIndices","_","Header","src","long","alt","theme","mode","selectable","f","Item","navData","isActive","id","EDUCATION","CRYPTO_NEWS","CorrelationBases","RollingCorrelationPeriods","PeriodIndexTypes","PeriodTypesArray","RecordState","MagicPagesTypes","UserRoleTypes","SettingsTypes","LogLevelsTypes","EngineModalMode","GetRecordState","Pending","Locked","Archived","Deleted","SubscribesService","isSubscribe","deleteMethod","params","SubscribeForm","setLoading","subscribe","success","showAllErrors","handleSubmitForm","values","layout","hideRequiredMark","onFinish","label","rules","placeholder","htmlType","AppFooter","links","segment","Copyright","Terms","PrivacyPolicy","Advertising","Contacts","Press","HOME_CHANGE_LOG","ChangeLogs","Footer","display","float","color","VIEW_PAGE_BASE","AppLayout","Content","LandingLayout","AuthActionCreators","setIsAuth","setCurrentUser","CIActionCreators","setIndexId","setChartData","allActionCreators","useActions","dispatch","useDispatch","bindActionCreators","LoginForm","setError","navigate","useNavigate","setItem","code","user","errorMessage","initialValues","required","Password","offset","FORGOT_PASSWORD","AuthBase","children","size","description","content","LoginContainer","Login","justify","Helmet","onClick","removeItem","AppPage","spinning","Sider","collapsed","setCollapsed","setKeys","menu","CONTROL_PANEL","Icon","PieChartOutlined","ENGINE_APP","CloudServerOutlined","UserOutlined","INDICES","LineChartOutlined","ToolOutlined","ReadOutlined","ProfileOutlined","LayoutOutlined","SettingOutlined","FormatPainterOutlined","SUBSCRIBES","UsergroupAddOutlined","setSelectedKeys","selectedItem","find","flattenItems","items","flattenedItems","Array","isArray","concat","pathname","collapsible","onCollapse","selectedKeys","e","SubMenu","icon","ControlPanelLayout","Info","render","moment","getValue","format","Methodology","getProperty","quotesSummary","change24H","changePercent24H","dataSource","renderItem","long2","Instruments","index","sortPropertyName","sortAscending","setFilter","columns","dataIndex","__","record","image","maxHeight","marginRight","VIEW_INSTRUMENT_BASE","replaceSymbol","adjClose","marketCap","changePercent","pagination","onChange","newPagination","filters","sorter","newFilter","field","order","scroll","y","rowKey","News","VIEW_NEWS_BASE","actions","createdOn","dangerouslySetInnerHTML","__html","shortDescription","ChartRangeSelector","periodIndex","setPeriodIndex","showAllOption","show1Day","Group","buttonStyle","target","Button","HighChartsService","plotBackgroundImage","cwLogo","subtitle","crosshair","formatter","th","this","unix","x","points","point","rangeSelector","showRangeSelector","buttons","selected","inputEnabled","rangeSelectorZoom","buttonTheme","fill","stroke","select","IndexChart","Period","baseSettings","sortByDate","date","movingAverage20DaysChart","movingAverage50DaysChart","movingAverage100DaysChart","getOptions","Volatitlity","PeriodPL","WinnersLosers","lastHistoricalData","HighchartsTreemap","HeatMap","getColor","LightenDarkenColor","length","layoutAlgorithm","TabPane","AntdTabs","Tabs","defaultActiveKey","tab","SiteSponsors","Home","CI10","useParams","align","gutter","lg","ComparativePerformance","setData","selectedIds","setSelectedIds","instrumentsLoading","compare","period","instrumentIds","indexIds","updatedOn","item1","item2","changePerscentComparativeChart","allowClear","minWidth","Option","disabled","block","CryptoCorrelationsTable","setColumns","correlationSettings","updateTrigger","columns1","tableData","assetCorrelationList","sortNumber","assetCorrelation","parseFloat","tableItem","correlationArrayList","ticker2","startDate","endDate","RangePicker","DatePicker","CryptoCorrelations","Form","useForm","form","correlationBasis","Daily","setCorrelationSettings","dates","getMilliseconds","add","Monthly","Annual","MarketCap","withBitcoin","resize","top","totalMarketCapilalization","totalMarketCapilalizationWithoutBitcoin","total24hVolume","total24hVolumeWithoutBitcoin","HighchartsVariablePie","getPieOptions","lastData","headerFormat","pointFormatter","percentage","variablepie","allowPointSelect","cursor","dataLabels","minPointSize","innerSize","zMin","instrument","dataGrouped","groupBy","getOwnPropertyNames","tooltipPoint","setAnimation","PercentageMarketCap","selectedDate","setSelectedDate","overallData","textAlign","HighchartsStok","HighchartsMore","getBubbleOptions","list","useHTML","packedbubble","minSize","maxSize","splitSeries","gravitationalConstant","operator","textOutline","fontWeight","volume24h","TradingVolumesTab","TradingVolumes","setPeriod","FactorValueType","MomentumPeriod","FearAndGreed","fearAndGreedIndex","Math","round","plotBackgroundColor","plotBorderWidth","plotShadow","min","max","tickPosition","tickColor","tickLength","tickWidth","minorTickInterval","distance","fontSize","plotBands","thickness","dial","baseWidth","baseLength","rearLength","pivot","pane","startAngle","endAngle","background","center","MarketDominanceChart","dominance","Momentum10Days","Momentum5Days","MomentumChart","MarketVolumesChart","volumes","movingAverage5DaysChart","movingAverage10DaysChart","VolatilityChart","volatility","movingAverage30DaysChart","movingAverage90DaysChart","FearAndGreedIndex","summary","CryptoMarkets","Education","CryptoNews","sponsorsData","sponsorsLoading","EyeOutlined","watchCount","Blog","VIEW_BLOG_BASE","cover","ViewNews","rel","sourseUrl","InstrumentInfo","priceUsd","InstrumrntTradingVolumes","InstrumentVolatility","InstrumentHistoricalChart","settlementDate","InstrumentTabs","InstrumentNews","Search","ViewInstrument","ViewBlog","Pages","Dashboard","subscribes","subscribesStats","strokeColor","percent","total","lastWeek","today","header","Text","mark","contemt","Engine","hubConnection","setHubConnection","modalMode","setModalMode","visible","setIsModalVisible","logs","setLogs","instrumentIdsWithQuotesOn","setInstrumentIdsWithQuotesOn","pageSize","pageNumber","loadQuotes","instrumentsFilter","setInstrumentsFilter","ids","instrumentsOptions","connection","signalR","withUrl","configureLogging","Information","build","start","onclose","on","logLevel","Error","setTimeout","ping","invoke","parseNews","updateSortForCryptos","resetSortForCryptos","parsePrices","toISOString","parseMissingPrices","parseMissingGlobalHistory","generateInstrumentVolatility","generateCI","ciType","generateCIVolotility","onSubmitForm","Prices","CI","CIVolotility","InstrumentVolotility","MissingPrices","getTitle","setEngineModalMode","handleCancel","setFieldsValue","presets","onConfirm","okText","cancelText","random","footer","onCancel","checked","showSearch","onSearch","search","CI20","EngineApp","PageTemplate","extra","getColumnSearchProps","searchInput","createRef","searchText","searchedColumn","handleSearch","confirm","filterDropdown","clearFilters","ref","onPressEnter","marginBottom","SearchOutlined","handleReset","closeDropdown","filterIcon","filtered","onFilter","toLowerCase","includes","onFilterDropdownVisibleChange","current","highlightStyle","searchWords","autoEscape","textToHighlight","List","showSizeChanger","pageSizeOptions","defaultPageSize","setPagination","totalElementsCount","VIEW_USER_BASE","overlay","MenuOutlined","UsersList","CREATE_USER","UserService","userId","newPassword","UserForm","updatePassword","checkFinishHandler","checkErrorHandler","update","getNameValues","UserEdit","InstrumentService","instrumentId","patchMethod","InstrumentForm","changedFile","setChangedFile","changedFileBase64","setChangedFileBase64","uploadImage","uploadButton","LoadingOutlined","UploadOutlined","tokenSeparators","valuePropName","accept","listType","showUploadList","beforeUpload","info","reader","FileReader","addEventListener","readAsDataURL","maxWidth","CloseCircleOutlined","InstrumentEdit","handleLoadQuotesChange","updateLoadQuotes","handleRibbonToggleChange","toggleIncludeInRibbon","InstrumentsList","CREATE_INSTRUMENT","IndicesService","TextArea","Input","IndexForm","cryptoIndex","includeIndices","handleToggleIncludeIndex","toggleForIndex","getSeconds","EDIT_INDICES_BASE","Active","archive","restore","IndicesList","CREATE_INDICES","NewsList","NewsService","news","Editor","setContent","editor","useRef","readonly","onBlur","NewsForm","rows","NewsEdit","MagicPagesService","magicPage","magicPageId","MagicPageForm","MagicPageEdit","BlogService","blog","blogId","delete","BlogList","CREATE_BLOG","BlogForm","BlogEdit","SystemSettingsService","systemSetting","SystemSettingsForm","SystemSettingsEdit","SystemSettingsList","ForgotPasswordForm","forgotPasswordRequest","ForgotPasswordContainer","RestorePassword","ForgotPassword","RestorePasswordForm","forgotPasswordChange","resetPasswordToken","getFieldValue","validator","RestorePasswordContainer","VIEW_EMAIL_TEMPLATES_BASE","subject","EmailTemplatesList","EmailTemplatesService","template","EmailTemplateForm","contentHtml","EmailTemplateEdit","MagicPageHistoryFormModal","isOpen","setIsOpen","seoTitle","seoDescription","pageHistoryItem","setPageHistoryItem","pageHistory","pageHistoryLoading","history","placement","trigger","isCustom","MagicPagesList","CREATE_MAGIC_PAGE","deletedUser","setDeletedUser","setUpdateTrigger","deleteUserSubscription","SubscribesList","publicRoutes","path","element","RESTORE_PASSWORD","appRoutes","VIEW_NEWS","VIEW_INSTRUMENT","VIEW_BLOG","VIEW_PAGE","privateRoutes","VIEW_USER","EDIT_INDICES","IndexEdit","CREATE_NEWS","VIEW_MAGIC_PAGE","VIEW_SYSTEM_SETTINGS","VIEW_EMAIL_TEMPLATES","AppRouter","route","App","ReactDOM","document","getElementById","get","post","put","patch"],"mappings":"iJAGYA,E,2CAAAA,K,UAAAA,M,KAIL,IAAMC,EAAgB,CAC3BC,UAAU,GAAD,OAAKF,EAAkBG,GAAvB,cACTC,UAAU,GAAD,OAAKJ,EAAkBG,GAAvB,aACTE,KAAK,GAAD,OAAKL,EAAkBG,GAAvB,SACJG,KAAK,GAAD,OAAKN,EAAkBG,GAAvB,SACJI,YAAY,GAAD,OAAKP,EAAkBG,GAAvB,eACXK,gBAAgB,GAAD,OAAKR,EAAkBG,GAAvB,mBACfM,YAAY,GAAD,OAAKT,EAAkBG,GAAvB,eACXO,YAAY,GAAD,OAAKV,EAAkBG,GAAvB,gBACXQ,aAAa,GAAD,OAAKX,EAAkBG,GAAvB,gBACZS,eAAe,GAAD,OAAKZ,EAAkBG,GAAvB,cACdU,YAAY,GAAD,OAAKb,EAAkBG,GAAvB,gBACXW,OAAO,GAAD,OAAKd,EAAkBG,GAAvB,WACNY,YAAY,GAAD,OAAKf,EAAkBG,GAAvB,eACXa,oBAAoB,GAAD,OAAKhB,EAAkBG,GAAvB,sBACnBc,KAAK,GAAD,OAAKjB,EAAkBG,GAAvB,SACJe,OAAO,GAAD,OAAKlB,EAAkBG,GAAvB,WACNgB,QAAQ,GAAD,OAAKnB,EAAkBG,GAAvB,YACPiB,MAAM,GAAD,OAAKpB,EAAkBG,GAAvB,UACLkB,gBAAgB,GAAD,OAAKrB,EAAkBG,GAAvB,mBACfmB,eAAe,GAAD,OAAKtB,EAAkBG,GAAvB,mBAGHoB,EAAS,2BACjBtB,GADiB,IAEpBuB,+BAA+B,GAAD,OAAKvB,EAAcC,UAAnB,wBAE9BuB,WAAW,GAAD,OAAKxB,EAAcI,KAAnB,UACVqB,6BAA6B,GAAD,OAAKzB,EAAcI,KAAnB,2BAC5BsB,4BAA4B,GAAD,OAAK1B,EAAcI,KAAnB,0BAE3BuB,qBAAqB,GAAD,OAAK3B,EAAcY,YAAnB,aAEpBgB,cAAc,GAAD,OAAK5B,EAAca,OAAnB,WAEbgB,mBAAmB,GAAD,OAAK7B,EAAcU,aAAnB,UAClBoB,8BAA8B,GAAD,OAAK9B,EAAcU,aAAnB,oBAC7BqB,6BAA6B,GAAD,OAAK/B,EAAcU,aAAnB,kBAC5BsB,4BAA4B,GAAD,OAAKhC,EAAcU,aAAnB,iBAE3BuB,8BAA8B,GAAD,OAAKjC,EAAcqB,eAAnB,yBAC7Ba,qCAAqC,GAAD,OAAKlC,EAAcqB,eAAnB,yBACpCc,+BAA+B,GAAD,OAAKnC,EAAcqB,eAAnB,mBAE9Be,6BAA6B,GAAD,OAAKpC,EAAce,oBAAnB,YAE5BsB,UAAU,GAAD,OAAKrC,EAAcgB,KAAnB,SAETsB,sBAAsB,GAAD,OAAKtC,EAAciB,OAAnB,kBACrBsB,iCAAiC,GAAD,OAAKvC,EAAciB,OAAnB,4BAChCuB,sCAAsC,GAAD,OAAKxC,EAAciB,OAAnB,uCAGjCwB,EAAOC,IAAMC,OAAO,CACxBC,QAASC,gCAOXJ,EAAKK,aAAaC,QAAQC,KAAI,SAACC,GAQ7B,OAPsC,KAA5B,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQC,IAAIC,QAAQ,YACtBF,EAAOG,QAAQC,cAAf,iBAAyCC,aAAaC,QACpD,0CAGJN,EAAOG,QAAQI,gBATR,IAAIC,MAAOC,oBAAsB,GAWjCT,KAGTR,EAAKK,aAAaa,SAASX,KACzB,SAACW,GACC,OAAOA,KAET,SAACC,GAAgB,IAAD,IACd,OAA+B,OAA3B,UAAAA,EAAMD,gBAAN,eAAgBE,SAA6C,OAA3B,UAAAD,EAAMD,gBAAN,eAAgBE,SACpDC,OAAOC,SAASC,KAAhB,WAA2BC,IAASC,QAApC,YAA+CD,IAASE,OAEjDC,QAAQC,OAAOT,IAEjBQ,QAAQC,OAAOT,MAGXnB,O,gCCrFR,IAAKwB,EAsBAK,EAtBZ,oE,SAAYL,K,kBAAAA,E,8BAAAA,E,mBAAAA,E,sBAAAA,E,gCAAAA,E,sCAAAA,E,YAAAA,E,8BAAAA,E,mCAAAA,E,cAAAA,E,kCAAAA,E,0CAAAA,E,8BAAAA,E,mCAAAA,E,kCAAAA,E,uCAAAA,E,uBAAAA,E,4BAAAA,E,mCAAAA,M,cAsBAK,K,6BAAAA,E,sBAAAA,E,oBAAAA,E,cAAAA,E,2BAAAA,E,0BAAAA,E,0BAAAA,E,0BAAAA,E,uCAAAA,E,sCAAAA,E,sCAAAA,E,kBAAAA,E,iCAAAA,E,gCAAAA,E,gCAAAA,E,YAAAA,E,2BAAAA,E,0BAAAA,E,0BAAAA,E,YAAAA,E,2BAAAA,E,0BAAAA,E,0BAAAA,E,yBAAAA,E,sCAAAA,E,iCAAAA,E,kCAAAA,E,2CAAAA,E,kCAAAA,E,iDAAAA,E,gDAAAA,E,yBAAAA,M,kJCjBZ,SAASC,EAAeC,EAAkBC,GACxC,OAAOC,EAAOC,KAAP,UAAeH,EAAf,YAA2BC,IAAYG,SAAS,U,IAGpCC,E,iIACnB,WACEC,EACAL,GAFF,0FAISM,IAAgBC,WACrB1D,IAAUE,WACV,KACA,CACE4B,QAAS,CACPC,cAAc,SAAD,OAAWkB,EAAeO,EAAOL,QATtD,2C,mIAeA,WACEQ,GADF,0FAGSF,IAAgBG,UACrB5D,IAAUG,6BACV,CAAEwD,WALN,2C,gIASA,WACEE,GADF,0FAGSJ,IAAgBG,UACrB5D,IAAUI,4BACVyD,IALJ,2C,4JClCUC,E,4EAAAA,K,oBAAAA,E,qCAAAA,M,KCJZ,ICEYC,EDFNC,EAA0B,CAC9BC,QAAQ,EACRC,YAAa,K,SCAHH,K,4BAAAA,E,2CAAAA,M,KCHZ,IAAMC,EAAwB,CAC5BG,QAAS,EACTC,UAAW,MCDEC,aAAOC,OACpB,GACA,CACEC,KHEW,WAGD,IAFZC,EAEW,uDAFHR,EACRS,EACW,uCACX,OAAQA,EAAOC,MACb,KAAKZ,EAAea,SAClB,OAAO,2BAAKH,GAAZ,IAAmBP,OAAQQ,EAAOG,UACpC,KAAKd,EAAee,iBAClB,OAAO,2BAAKL,GAAZ,IAAmBN,YAAaO,EAAOG,UACzC,QACE,OAAOJ,IGXTM,GDAW,WAGH,IAFVN,EAES,uDAFDR,EACRS,EACS,uCACT,OAAQA,EAAOC,MACb,KAAKX,EAAagB,aAChB,OAAO,2BAAKP,GAAZ,IAAmBL,QAASM,EAAOG,UACrC,KAAKb,EAAaiB,oBAChB,OAAO,2BAAKR,GAAZ,IAAmBJ,UAAWK,EAAOG,UACvC,QACE,OAAOJ,MEbPS,EAAcC,YAAgBC,GAEvBC,EAAQC,YAAYJ,EAAaK,YAAgBC,M,gCCsB/CC,EAnB6B,SAACC,GAC3C,IAAMhD,EAAWiD,cAEXzB,IAAW0B,KAAKC,MAAM5D,aAAaC,QAAQ,mBAQjD,UANmBD,aAAaC,QAC9B,yCAGyCgC,EAQpC,cAAC,IAAD,IAJH,cAAC,IAAD,CAAU4B,GAAE,WAAMlD,IAASE,OAASiD,SAAO,EAACtB,MAAO,CAAEnB,KAAMZ,M,4DCsClDsD,EA1CI,SAAInE,EAAaoE,GAAsC,IAAD,EAC7CC,oBAAoB,iBAAO,CACnDC,SAAS,EACTC,aAAuB,OAAVH,QAAU,IAAVA,OAAA,EAAAA,EAAYI,eAAgB,SAH4B,mBAChE5B,EADgE,KACzD6B,EADyD,KAMjEC,EAAiB,aACrBC,aAAc,GACdC,MAAO,KACPJ,aAAc,KACdK,aAASC,EACT3D,YAAQ2D,EACRC,WAAW,GACRX,GA0BL,OAvBAY,qBAAU,WAkBR,OAjBA,OAAIN,QAAJ,IAAIA,OAAJ,EAAIA,EAASK,aACXN,GAAS,SAACQ,GAAD,mBAAC,eAAYA,GAAb,IAAgBX,SAAS,OAElCzC,IAAgBqD,UAAalF,EAA7B,OAAkC0E,QAAlC,IAAkCA,OAAlC,EAAkCA,EAASE,OACxCO,MAAK,SAAC1E,GACLgE,EAAS,CACPH,SAAS,EACTC,YAAa9D,EAASwB,QAEjB,OAAPyC,QAAO,IAAPA,OAAA,EAAAA,EAASG,WAAT,OAAoBH,QAApB,IAAoBA,KAASG,QAAQpE,EAASwB,UAE/CmD,OAAM,SAAC1E,GACN+D,GAAS,SAACQ,GAAD,mBAAC,eAAYA,GAAb,IAAgBX,SAAS,QAC3B,OAAPI,QAAO,IAAPA,OAAA,EAAAA,EAASvD,UAAT,OAAmBuD,QAAnB,IAAmBA,KAASvD,OAAOT,QAIlC,WACL+D,EAAS,CAAEH,SAAS,EAAOC,YAAa,QAEzCG,EAAQC,cAEJ/B,G,qFCvDYyC,E,+FACnB,SAAkBC,GAA4C,IAA5BZ,EAA2B,uDAAZ,GAC/C,IACE,cAAOY,QAAP,IAAOA,OAAP,EAAOA,EAAQC,eAAe,KAAvB,aACLC,sBAAuB,GACpBd,IAEL,MAAOe,GACP,MAAO,O,yBAIX,SAAmBxD,EAAWyD,GAC5B,OAAIzD,EAAK0D,eAAeD,GACfzD,EAAKyD,GAEP,Q,wBAGT,WAAuE,IAArDE,EAAoD,uDAArC,GAAIC,EAAiC,uDAAxB,OAAQC,IAAgB,yDACpE,IACE,OAAIA,EACKF,EAAMG,MACX,SAACC,EAAGC,GAAJ,OACE,IAAI1F,KAAKyF,EAAEH,IAASK,UAAY,IAAI3F,KAAK0F,EAAEJ,IAASK,aAGjDN,EAAMG,MACX,SAACC,EAAGC,GAAJ,OACE,IAAI1F,KAAK0F,EAAEJ,IAASK,UAAY,IAAI3F,KAAKyF,EAAEH,IAASK,aAG1D,MAAOT,GACP,OAAOG,K,qBAIX,WAA6C,IAA9BA,EAA6B,uDAAd,GAAIO,EAAU,uCAE1C,OAAOP,EAAMQ,QAAO,SAACC,EAAQC,GAM3B,OAJCD,EAAOC,EAAaH,IAAQE,EAAOC,EAAaH,KAAS,IAAII,KAC5DD,GAGKD,IACN,M,2BAaL,SAAqBG,GACnB,IACE,OAAOA,EACJC,OACAC,WAAW,IAAK,KAChBxC,QAAQ,yCAAgC,IACxCyC,oBACH,MAAOlB,GACP,OAAOe,K,2BAIX,SAAqBI,GAGnB,OAAOnE,OAAOoE,KAAKD,GAChBE,QAAO,SAACX,GAAD,OAAUY,MAAMC,SAASb,OAChCc,KAAI,SAACd,GACJ,IAAMe,EAAMF,SAASb,GAErB,MAAO,CACLgB,MAAOD,EACPV,KAHWI,EAASM,S,2BAQ5B,SAAqBE,GACnBC,QAAQC,IAAI,SAAUF,GACtB,IAAK,IAAD,IACI,OAANA,QAAM,IAANA,GAAA,UAAAA,EAAQ3G,gBAAR,mBAAkBwB,YAAlB,SAAwBsF,cAAcC,SAAQ,SAAC9G,GAC7C+G,IAAa/G,MAAM,CAAEgH,QAAShH,OAEhC,MAAO+E,GACPgC,IAAa/G,MAAM,CAAEgH,QAAS,4B,gCASlC,SAA0BC,EAAaC,GACrC,IAAIC,GAAW,EACA,MAAXF,EAAI,KACNA,EAAMA,EAAIG,MAAM,GAChBD,GAAW,GAEb,IAAIE,EAAMf,SAASW,EAAK,IACpBK,GAAKD,GAAO,IAAMH,EAClBI,EAAI,IACNA,EAAI,IACKA,EAAI,IACbA,EAAI,GAEN,IAAI/B,GAAM8B,GAAO,EAAK,KAAUH,EAC5B3B,EAAI,IACNA,EAAI,IACKA,EAAI,IACbA,EAAI,GAEN,IAAIgC,GAAW,IAANF,GAAkBH,EAM3B,OALIK,EAAI,IACNA,EAAI,IACKA,EAAI,IACbA,EAAI,IAEEJ,EAAW,IAAM,KAAOI,EAAKhC,GAAK,EAAM+B,GAAK,IAAKtG,SAAS,Q,KA/HlD2D,EAiDZ6C,YAAc,SAAC5C,GACpB,OAAIA,EAAS,EACJ,eACa,IAAXA,EACF,cAEA,eAvDQD,EAiGZ8C,gBAAkB,SAACC,GAExB,OADiB,IAAIC,UACLC,OAAO,OAAQF,ICrG5B,ICAKG,EDACC,EAAiB,8BACjBC,EAAiB,CAC5BC,SAAU,CACRC,GAAI,CAAEC,KAAM,IACZC,GAAI,CAAED,KAAM,GACZE,GAAI,CAAEF,KAAM,IAEdG,WAAY,CACVJ,GAAI,CAAEC,KAAM,IACZC,GAAI,CAAED,KAAM,IACZE,GAAI,CAAEF,KAAM,MAIHI,EAAiB,CAC5BC,MAAO,WACPC,SAAU,OEiKGC,EAhE4B,SAAC,GAAuB,IAvG/ClH,EAuG0BmH,EAAoB,EAApBA,KAAMC,EAAc,EAAdA,QAClD,OACE,cAAC,IAAD,UACE,sBACEC,UAAS,oDADX,UAIE,sBAAMA,UAAU,QAAhB,gBAAyBF,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAM5C,OAC/B,sBAAM8C,UAAU,QAAhB,SACGD,EAAUhE,EAAckE,WAAd,OAAyBH,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMI,mBAAoB,CAC5DhE,sBAAuB,IAEvBH,EAAckE,WAAd,OAAyBH,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMI,mBAA/B,2BACKR,GADL,IAEExD,sBAAuB,OAG7B,sBAAK8D,UAAU,wDAAf,UACE,sBACEA,UAAU,oDACVL,MAAO,CAAEQ,WAAY,QAFvB,UAIE,uBACEH,UAAS,iBAAe,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMM,iBAAkB,EACxC,MACiB,KAAb,OAAJN,QAAI,IAAJA,OAAA,EAAAA,EAAMO,QACJ,SACA,SALR,UAQGtE,EAAckE,WAAd,OAAyBH,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMM,gBAAiB,CAC/ClE,sBAAuB,IAT3B,OAaA,sBACE8D,UAAS,kBAAgB,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMO,QAAS,EAChC,MACiB,KAAb,OAAJP,QAAI,IAAJA,OAAA,EAAAA,EAAMO,QACJ,SACA,SALR,SAQGtE,EAAckE,WAAd,OAAyBH,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMO,OAAQ,CACtCnE,sBAAuB,MAG3B,sCAAO4D,QAAP,IAAOA,OAAP,EAAOA,EAAMQ,SACb,uBAAMN,UAAU,QAAhB,UACE,cAACO,EAAA,EAAD,CAAqBP,UAAU,YADjC,OAEGF,QAFH,IAEGA,OAFH,EAEGA,EAAMU,oBAGX,cAAC,IAAD,CACEC,WAAYC,IACZtF,SA9JQzC,EA8JW,OAACmH,QAAD,IAACA,OAAD,EAACA,EAAMa,WA7J7B,CACLC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,MAAO,CACLC,YAAa,EACbtH,KAAM,OACNuH,OAAQ,CAAC,EAAG,EAAG,EAAG,GAClBC,OAAQ,GACRC,MAAO,IACPtB,MAAO,CACLuB,SAAU,WAEZC,gBAAiB,WAEnBC,MAAO,CACLC,KAAM,IAERC,QAAS,CACPC,SAAS,GAEXC,MAAO,CACLC,OAAQ,CACNF,SAAS,GAEXH,MAAO,CACLC,KAAM,MAERK,aAAa,EACbC,WAAW,EACXC,cAAe,IAEjBC,MAAO,CACLF,WAAW,EACXD,aAAa,EACbD,OAAQ,CACNF,SAAS,GAEXH,MAAO,CACLC,KAAM,MAERO,cAAe,CAAC,IAElBE,OAAQ,CACNP,SAAS,GAEXQ,QAAS,CACPjB,YAAa,EACbkB,UAAW,EACXC,QAAQ,EACRC,QAAS,EACTC,aAAc,GAEhBC,YAAa,CACXC,OAAQ,CACNC,WAAW,EACXC,UAAW,EACXC,QAAQ,EACRC,OAAQ,CACNC,MAAO,CACLH,UAAW,IAGfI,OAAQ,CACNC,OAAQ,EACRH,OAAQ,CACNC,MAAO,CACLE,OAAQ,MAKhBC,OAAQ,CACNC,cAAe,UACfC,YAAa,WAGjBV,OAAQ,CACN,CACE1J,OACAuE,KAAM,QACN1D,KAAM,WAmEFwJ,gBAAgB,eArDtB,OAEOlD,QAFP,IAEOA,OAFP,EAEOA,EAAMmD,eAHf,OAAUnD,QAAV,IAAUA,OAAV,EAAUA,EAAMmD,eCtELC,EApCgB,WAAO,IAAD,EACFrI,EAAU,UACtC/F,IAAUM,eACb,CACE8F,aAAc,CACZ6B,OAAQ,MAJN9B,EAD2B,EAC3BA,YAAaD,EADc,EACdA,QASfpB,EAAKqB,EAAY8B,OAAOS,QAC5B,SAAC2F,GAAD,QAAyBA,EAAGlK,WAGxBmK,EAAcnI,EAAY8B,OAAOS,QACrC,SAAC2F,GAAD,QAAyBA,EAAGF,gBAG9B,OACE,cAAC,IAAD,CAAMjI,QAASA,EAASqI,UAAU,EAAOrD,UAAU,gBAAnD,SACE,sBAAKA,UAAU,YAAf,UACE,qBAAKA,UAAU,kBAAf,gBACGpG,QADH,IACGA,OADH,EACGA,EAAI+D,KAAI,SAACwF,GAAD,OACP,cAAC,EAAD,CAAwBpD,SAAO,EAACD,KAAMqD,GAASA,EAAGlK,cAGtD,qBAAK+G,UAAU,yBAAf,gBACGoD,QADH,IACGA,OADH,EACGA,EAAazF,KAAI,SAACwF,GAAD,OAChB,cAAC,EAAD,CAAwBrD,KAAMqD,GAASA,EAAGF,yBCrCvC,MAA0B,iCCG5BK,EAAoDC,IC2FlDC,EAlFO,WACpB,IAAMvK,EAAUqK,GAAiB,qBAAG1J,GAAYX,WADtB,EAGI8B,mBAAS,IAHb,mBAGnB0I,EAHmB,KAGVC,EAHU,KAa1B,OARAhI,qBAAU,WACRnD,IAAgBqD,UAAhB,UAA6B9G,IAAUZ,eACpC2H,MAAK,SAAC1E,GAAmB,IAAD,EACvBuM,EAAU,UAACvM,EAASwB,YAAV,aAAC,EAAeoE,WAE3BjB,OAAM,SAAC6H,SACT,IAGD,sBAAK3D,UAAU,aAAf,UACE,cAAC,EAAD,IACA,cAAC,IAAO4D,OAAR,UACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAKtE,KAAM,EAAX,SACE,mBAAG9H,KAAK,IAAR,SACE,qBAAKwI,UAAU,OAAf,SACE,qBAAK6D,IAAKC,EAAMC,IAAI,eAI1B,cAAC,IAAD,CAAKzE,KAAM,GAAX,SACE,eAAC,IAAD,CAAM0E,MAAM,OAAOC,KAAK,aAAaC,YAAY,EAAjD,iBACGT,QADH,IACGA,OADH,EACGA,EAAS9F,KAAI,SAAAwG,GACZ,OACE,cAAC,IAAKC,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OACTA,EAAQC,UAAYrL,IAAYkL,EAAEI,GAAK,SAAW,IAEpD5J,GAAE,mBAAcwJ,EAAE7D,OAAhB,YAA0B6D,EAAEI,IAJhC,SAMGJ,EAAE7D,UAPS6D,EAAEI,OAatB,cAAC,IAAKH,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OAAcA,EAAQC,SAAW,SAAW,IACvD3J,GAAE,WAAMlD,IAAS5C,eAAf,KAFJ,6BADa,KASf,cAAC,IAAKuP,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OAAcA,EAAQC,SAAW,SAAW,IACvD3J,GAAE,WAAMlD,IAAS+M,UAAf,KAFJ,wBADa,KAQf,cAAC,IAAKJ,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OAAcA,EAAQC,SAAW,SAAW,IACvD3J,GAAE,WAAMlD,IAASgN,YAAf,KAFJ,0BADa,KAQf,cAAC,IAAKL,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OAAcA,EAAQC,SAAW,SAAW,IACvD3J,GAAE,WAAMlD,IAAS5D,KAAf,KAFJ,mBADa,oB,SL/EjBoL,O,eAAAA,I,gBAAAA,M,KAKL,IAoBKyF,EAMAC,EA1BCC,EACL,EADKA,EAEL,EAFKA,GAGL,EAHKA,GAKL,EAKKC,GAA6B,CACxC,KACA,KACA,KACA,KACA,KACA,KACA,Q,SAGUH,O,iBAAAA,I,qBAAAA,I,oBAAAA,M,cAMAC,O,oCAAAA,I,oCAAAA,I,oCAAAA,I,oCAAAA,I,oCAAAA,I,oCAAAA,I,oCAAAA,I,oCAAAA,I,uCAAAA,I,uCAAAA,I,wCAAAA,M,KAcL,IA+CKG,I,SAAAA,O,qBAAAA,I,mBAAAA,I,mBAAAA,I,uBAAAA,I,uBAAAA,Q,KAQL,IAmBKC,GA0BAC,GAKAC,GAUAC,GAaAC,GAzECC,GAAiB,SAAC9L,GAC7B,OAAQA,GACN,KAAKwL,GAAYO,QACf,MAAO,UAET,KAAKP,GAAYQ,OACf,MAAO,SAET,KAAKR,GAAYS,SACf,MAAO,WAET,KAAKT,GAAYU,QACf,MAAO,UAET,QACE,MAAO,Y,SAIDT,O,eAAAA,I,uBAAAA,I,yBAAAA,I,iBAAAA,I,eAAAA,I,iCAAAA,I,iCAAAA,I,eAAAA,I,iBAAAA,I,wBAAAA,I,sCAAAA,I,sBAAAA,I,8BAAAA,I,8BAAAA,I,kBAAAA,I,cAAAA,I,0BAAAA,I,4BAAAA,I,gBAAAA,I,0CAAAA,I,0BAAAA,I,0BAAAA,I,2BAAAA,Q,cA0BAC,O,iBAAAA,I,gBAAAA,Q,cAKAC,O,iCAAAA,I,uBAAAA,I,qCAAAA,I,uCAAAA,I,uBAAAA,I,uBAAAA,I,8BAAAA,Q,cAUAC,O,iBAAAA,I,iBAAAA,I,6BAAAA,I,qBAAAA,I,iBAAAA,I,gBAAAA,Q,cAaAC,O,mBAAAA,I,WAAAA,I,+BAAAA,I,+CAAAA,I,iCAAAA,I,gDAAAA,Q,kEMvKSM,G,uIACnB,WACEhN,GADF,2FAGSF,IAAgBC,WACrB1D,IAAUhB,YACV,CACE2E,QACAiN,aAAa,KAPnB,2C,oHAYA,WACEnB,GADF,2FAGShM,IAAgBoN,aAAhB,UACF7Q,IAAUhB,aACb,CACE8R,OAAQ,CACNrB,SAPR,2C,8DCwCasB,GAtDW,WAAO,IAAD,EACA9K,oBAAS,GADT,mBACvBC,EADuB,KACd8K,EADc,KAGxBC,EAAS,yCAAG,WAAOtN,GAAP,UAAAiE,EAAA,6DAChBoJ,GAAW,GADK,kBAIRL,GAAkBM,UAAUtN,GAJpB,OAMd0F,IAAa6H,QAAQ,CACnB5H,QAAQ,0CAPI,gDAUd0H,GAAW,GAEX/J,EAAckK,cAAd,MAZc,yDAAH,sDAgBTC,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,sEACjBqJ,EAAS,OAACI,QAAD,IAACA,OAAD,EAACA,EAAQ1N,OADD,2CAAH,sDAItB,OACE,eAAC,KAAD,CACE2N,OAAO,SACPC,kBAAkB,EAClBC,SAAUJ,EAHZ,UAKE,cAAC,KAAK9B,KAAN,CACEmC,MAAO,KACPrJ,KAAK,QACLsJ,MAAO,CACL,CAAEhN,KAAM,QAAS4E,QAAS,mBAJ9B,SAOE,cAAC,KAAD,CACE5E,KAAK,QACLiN,YAAY,qBACZ9G,MAAO,CACLsB,MAAO,yBAKb,cAAC,KAAKmD,KAAN,UACE,cAAC,KAAD,CAAQ5K,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,6BCwDO2L,GA5FO,WACpB,IAAMC,EAAoB,CACxB,CACE1J,KAAM,YACN2J,QAAS,YACTtC,GAAIQ,GAAgB+B,WAEtB,CACE5J,KAAM,eACN2J,QAAS,mBACTtC,GAAIQ,GAAgBgC,OAEtB,CACE7J,KAAM,iBACN2J,QAAS,iBACTtC,GAAIQ,GAAgBiC,eAEtB,CACE9J,KAAM,cACN2J,QAAS,cACTtC,GAAIQ,GAAgBkC,aAEtB,CACE/J,KAAM,aACN2J,QAAS,UACTtC,GAAIQ,GAAgBmC,UAEtB,CACEhK,KAAM,QACN2J,QAAS,QACTtC,GAAIQ,GAAgBoC,OAEtB,CACEjK,KAAM,aACNxG,IAAI,IAAD,OAAMe,IAAS2P,iBAClB7C,GAAIQ,GAAgBsC,aAexB,OACE,qBAAKrH,UAAU,aAAf,SACE,cAAC,IAAOsH,OAAR,UACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAKjI,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,qBAAKQ,UAAU,uCAAf,yFAMF,eAAC,IAAD,CAAKX,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,qBAAKG,MAAO,CAAE4H,QAAS,eAAgBtG,MAAO,QAA9C,SACE,sBAAKtB,MAAO,CAAEsB,MAAO,OAAQuG,MAAO,SAApC,UACE,oBAAI7H,MAAO,CAAE8H,MAAO,QAApB,mCACA,cAAC,GAAD,SAIJ,cAAC,IAAD,CAAMzD,MAAM,OAAOC,KAAK,aAAaC,YAAY,EAAjD,SACG0C,EAAMjJ,KAAI,SAACwF,GAAD,OACT,cAAC,IAAKiB,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OAAcA,EAAQC,SAAW,SAAW,IACvD3J,GACEwI,EAAGzM,IACCyM,EAAGzM,IADP,WAEQe,IAASiQ,eAFjB,YAEmCvE,EAAG0D,QAFtC,YAEiD1D,EAAGoB,IALxD,SAQGpB,EAAGjG,QATQiG,EAAGoB,oBClEpBoD,GAdc,WAC3B,OACE,eAAC,IAAD,CAAQ3H,UAAU,aAAlB,UACE,cAAC,EAAD,IACA,eAAC,IAAO4H,QAAR,CAAgB5H,UAAU,OAA1B,UACE,qBAAKA,UAAU,sBAAf,SACE,cAAC,IAAD,MAEF,cAAC,GAAD,WCDO6H,GAVkB,WAC/B,OACE,cAAC,IAAD,UACE,cAAC,IAAOD,QAAR,UACE,cAAC,IAAD,S,6BCJKE,GAAqB,CAChCC,UAAW,SAACrO,GAAD,MAAsC,CAC/CF,KAAMZ,EAAea,SACrBC,YAEFsO,eAAgB,SAACtO,GAAD,MAAkD,CAChEF,KAAMZ,EAAee,iBACrBD,aCRSuO,GAAmB,CAE9BC,WAAY,SAACxO,GAAD,MAAqC,CAC/CF,KAAMX,EAAagB,aACnBH,YAGFyO,aAAc,SAACzO,GAAD,MAAuC,CACnDF,KAAMX,EAAaiB,oBACnBJ,aCRS0O,GAAiB,2BACzBN,IACAG,ICDQI,GAAa,WACxB,IAAMC,EAAWC,cAEjB,OAAOC,YAAmBJ,GAAmBE,ICuFhCG,GAtFO,WAAO,IAAD,EACA1N,mBAAS,IADT,mBACnB3D,EADmB,KACZsR,EADY,OAEI3N,oBAAS,GAFb,mBAEnBC,EAFmB,KAEV8K,EAFU,OAIYuC,KAA9BN,EAJkB,EAIlBA,UAAWC,EAJO,EAIPA,eACbW,EAAWC,cAEX1C,EAAgB,yCAAG,WAAOC,GAAP,oBAAAzJ,EAAA,6DACvBoJ,GAAW,GADY,kBAIEzN,KAAYC,MACjC6N,EAAOnO,SACPmO,EAAOlO,UANY,OAIfd,EAJe,OASrBL,aAAa+R,QACX,uCACA1R,EAASwB,KAAKoE,OAAO+L,MAEvBhS,aAAa+R,QAAQ,iBAAkB,QAEvCd,GAAU,GACVC,EAAe7Q,EAASwB,KAAKoE,OAAOgM,MACpCjD,GAAW,GACX4C,EAAS,IAETC,EAAS,iBApBY,kDAsBrB7C,GAAW,GACX4C,GAAS,2CAAQvR,gBAAR,mBAAkBwB,YAAlB,eAAwBsF,cAAc,KAAM,IAvBhC,0DAAH,sDA2BhB+K,EAAiB5R,EACrB,cAAC,KAAD,CAAOgH,QAAShH,EAAOoC,KAAK,QAAQwG,UAAU,SAC5C,KAEJ,OACE,qCACGgJ,EACD,eAAC,KAAD,CACE9L,KAAK,QACLkC,SAAU,CAAEE,KAAM,GAClBG,WAAY,CAAEH,KAAM,IACpB2J,cAAe,CACbjR,SAAU,GACVC,SAAU,IAEZqO,SAAUJ,EARZ,UAUE,cAAC,KAAK9B,KAAN,CACEmC,MAAM,WACNrJ,KAAK,WACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,2BAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,WACNrJ,KAAK,WACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,2BAHrC,SAKE,cAAC,KAAM+K,SAAP,MAGF,eAAC,KAAK/E,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,UACE,qBAAKU,UAAU,OAAf,SACE,cAAC,IAAD,CACErF,GAAE,WAAMlD,IAASC,QAAf,YAA0BD,IAAS4R,iBACrCrJ,UAAU,4CAFZ,+BAQF,cAAC,KAAD,CAAQxG,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,8B,UCyCKsO,GA7Gc,SAAC,GAAwC,IAAtC3Q,EAAqC,EAArCA,KAAMqC,EAA+B,EAA/BA,QAASoG,EAAsB,EAAtBA,MAAOmI,EAAe,EAAfA,SAC9C3C,EAAoB,CACxB,CACE1J,KAAM,YACN2J,QAAS,YACTtC,GAAIQ,GAAgB+B,WAEtB,CACE5J,KAAM,eACN2J,QAAS,mBACTtC,GAAIQ,GAAgBgC,OAEtB,CACE7J,KAAM,iBACN2J,QAAS,iBACTtC,GAAIQ,GAAgBiC,eAEtB,CACE9J,KAAM,cACN2J,QAAS,cACTtC,GAAIQ,GAAgBkC,aAEtB,CACE/J,KAAM,aACN2J,QAAS,UACTtC,GAAIQ,GAAgBmC,UAEtB,CACEhK,KAAM,QACN2J,QAAS,QACTtC,GAAIQ,GAAgBoC,OAEtB,CACEjK,KAAM,aACNxG,IAAI,IAAD,OAAMe,IAAS2P,iBAClB7C,GAAIQ,GAAgBsC,aAexB,OACE,sBAAKrH,UAAU,oCAAf,UACE,qBAAKA,UAAU,qBAAf,SACE,cAAC,IAAD,UACE,cAAC,IAAD,CAAKV,KAAM,GAAX,SACE,qBAAKU,UAAU,2BAAf,SACE,qBAAKA,UAAU,OAAf,SACE,mBAAGxI,KAAM,IAAT,SACE,qBAAKqM,IAAKC,EAAMC,IAAI,qBAOhC,qBAAK/D,UAAU,0DAAf,SACE,cAAC,IAAD,UACE,eAAC,IAAD,CAAKV,KAAM,GAAX,UACE,sBAAKU,UAAU,uCAAf,UACE,qBAAIA,UAAU,YAAd,iBACGrH,QADH,IACGA,OADH,EACGA,EAAMyI,MACNpG,GAAW,cAAC,KAAD,CAAMwO,KAAK,aAEzB,mBAAGxJ,UAAU,YAAb,gBAA0BrH,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAM8Q,iBAElC,sBAAKzJ,UAAU,2BAAf,UACE,oBAAIA,UAAU,4BAAd,SACE,iCAASoB,MAEX,qBAAKpB,UAAU,0BAAf,SAA0CuJ,IAC1C,sBAAKvJ,UAAU,8FAAf,iBACGrH,QADH,IACGA,OADH,EACGA,EAAM+Q,QACN1O,GAAW,cAAC,KAAD,CAAMwO,KAAK,uBAMjC,qBAAKxJ,UAAU,iCAAf,SACE,oBAAIA,UAAU,6FAAd,SACG4G,EAAMjJ,KAAI,SAACwF,GAAD,OACT,oBAAInD,UAAU,mBAAd,SACE,cAAC,IAAD,CACErF,GACEwI,EAAGzM,IACCyM,EAAGzM,IADP,WAEQe,IAASiQ,eAFjB,YAEmCvE,EAAG0D,QAFtC,YAEiD1D,EAAGoB,IAJxD,SAOGpB,EAAGjG,QARR,OAAsCiG,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAIoB,eC7EvCoF,GApBY,WAAO,IAAD,EACE9O,EAAU,UACtC/F,IAAUR,YAD4B,YACbyQ,GAAgB6E,OAC5C,CACE1O,aAAc,GACdrD,OAAQkE,EAAckK,gBAJlBhL,EADuB,EACvBA,YAAaD,EADU,EACVA,QAQrB,OACE,cAAC,GAAD,CACErC,KAAI,OAAEsC,QAAF,IAAEA,OAAF,EAAEA,EAAa8B,OACnB/B,QAASA,EACToG,MAAM,gBAHR,SAKE,cAAC,GAAD,OCVSwI,GAXG,WAChB,OACE,cAAC,IAAD,CAAKC,QAAQ,SAAb,SACE,eAAC,IAAD,WACE,cAACC,GAAA,EAAD,CAAQ1I,MAAM,UACd,cAAC,GAAD,UC0BOoC,GA7BO,WACDF,GAAiB,SAAChK,GAAD,OAAWA,EAAMD,QAA7CN,OADmB,IAGrB4P,EAAWC,cACTb,EAAcM,KAAdN,UAER,OACE,cAAC,IAAOnE,OAAR,UACE,cAAC,IAAD,CAAKiG,QAAQ,MAAb,SACE,cAAC,IAAD,CAAKvK,KAAM,GAAX,SACE,cAAC,IAAD,CAAM2E,KAAK,aAAaC,YAAY,EAApC,SACE,cAAC,IAAKE,KAAN,CAEE2F,QAAS,WACPhC,GAAU,GACVjR,aAAakT,WAAW,wCACxBlT,aAAakT,WAAW,kBAExBrB,EAAS,IAAD,OAAKlR,IAASC,QAAd,YAAyBD,IAASE,SAP9C,oBACM,cCaHsS,GApBqB,SAAC,GAAkB,IAAhBV,EAAe,EAAfA,SAAe,EACdlB,KAA9BN,EAD4C,EAC5CA,UAAWC,EADiC,EACjCA,eAanB,OAXoBnN,EAAU,UACzB/F,IAAUH,MADe,OAE5B,CACE4G,QAAS,SAACpE,GACR4Q,GAAU,GACVC,EAAe7Q,EAAS4F,SAE1BtB,YAAahB,KAAKC,MAAM5D,aAAaC,QAAQ,qBAPzCiE,QAYC,cAAC,KAAD,CAAMkP,UAAQ,IAEhB,mCAAGX,K,mICrBL,IAsFQY,GAtFU,WAAO,IAAD,EACKpP,oBAAkB,GADvB,mBACtBqP,EADsB,KACXC,EADW,OAELtP,mBACtB,CAAC,GAAD,OAAIjE,aAAaC,QAAQ,6BAA+B,GAH7B,mBAEtBwG,EAFsB,KAEhB+M,EAFgB,KAMvB/S,EAAWiD,cACX+P,ECEC,CACL,CACEhG,GAAI,EACJnD,MAAO,YACPvE,IAAK,YACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBrE,WAC1DgX,KAAMC,MAER,CACEnG,GAAI,EACJnD,MAAO,SACPvE,IAAK,SACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgB6S,YAC1DF,KAAMG,MAER,CACErG,GAAI,EACJnD,MAAO,QACPvE,IAAK,QACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBnD,OAC1D8V,KAAMI,MAER,CAEEtG,GAAI,GACJnD,MAAO,UACPvE,IAAK,UACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBgT,SAC1DL,KAAMM,MAER,CAEExG,GAAI,EACJnD,MAAO,cACPvE,IAAK,cACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgB1D,aAC1DqW,KAAMO,MAER,CACEzG,GAAI,EACJnD,MAAO,OACPvE,IAAK,OACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBtD,MAC1DiW,KAAMQ,MAER,CACE1G,GAAI,EACJnD,MAAO,OACPvE,IAAK,OACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBjE,MAC1D4W,KAAMS,MAER,CACE3G,GAAI,EACJnD,MAAO,gBACPvE,IAAK,UACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBxD,aAC1DmW,KAAMU,MAER,CACE5G,GAAI,EACJnD,MAAO,kBACPvE,IAAK,WACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBlD,iBAC1D6V,KAAMW,MAER,CACE7G,GAAI,EACJnD,MAAO,kBACPvE,IAAK,YACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgB/D,iBAC1D0W,KAAMY,MAER,CACE9G,GAAI,EACJnD,MAAO,aACPvE,IAAK,aACLnG,IAAI,IAAD,OAAMoB,IAAgB0S,cAAtB,YAAuC1S,IAAgBwT,YAC1Db,KAAMc,ODzEV7P,qBAAU,WACR8P,MACC,CAACpB,IAEJ,IAAMoB,EAAkB,WACtB,IASMC,EAAe9H,KAAE+H,KATF,SAAfC,EAAgBC,EAAY/O,GAAb,OACnB+O,EAAM9O,QAAO,SAAC+O,EAAqB/L,GAEjC,OADA+L,EAAe5O,KAAK6C,GAChBgM,MAAMC,QAAQjM,EAAKjD,IACdgP,EAAeG,OAAOL,EAAa7L,EAAKjD,GAAMA,IAEhDgP,IACN,IAEuBF,CAAapB,EAAM,YAAa,CAC1D,MACAhT,EAAS0U,WAGX3B,EAAQmB,EAAe,CAACA,EAAalH,GAAGnM,YAAc,KAGxD,OACE,eAAC,IAAO+R,MAAR,CAAc+B,aAAW,EAAC9B,UAAWA,EAAW+B,WAAY9B,EAA5D,UACE,mBAAG7S,KAAK,IAAR,SACE,qBAAKwI,UAAU,YAAf,SACE,qBAAK6D,IAAKC,EAAMC,IAAI,aAIxB,cAAC,IAAD,CACEC,MAAM,OACNC,KAAK,SACLmI,aAAc7O,EACdwM,QAvCc,SAACsC,GACnBvV,aAAa+R,QAAQ,wBAAyBwD,EAAExP,KAChDyN,EAAQ,CAAC+B,EAAExP,OAiCT,SAMG0N,EAAK5M,KAAI,YAA8C,IAA3CjH,EAA0C,EAA1CA,IAAK0K,EAAqC,EAArCA,MAAOqJ,EAA8B,EAA9BA,KAAMlG,EAAwB,EAAxBA,GAAIgF,EAAoB,EAApBA,SACjC,OAAIA,EAEA,cAAC,IAAK+C,QAAN,CAAclL,MAAOA,EAAgBmL,KAAM9B,GAAQ,cAACA,EAAD,IAAnD,SACGlB,EAAS5L,KAAI,gBAAGjH,EAAH,EAAGA,IAAK0K,EAAR,EAAQA,MAAOmD,EAAf,EAAeA,GAAf,OACZ,cAAC,IAAKH,KAAN,UACE,cAAC,IAAD,CACEpE,UAAW,SAACqE,GAAD,OACTA,EAAQC,SAAW,SAAW,IAEhC3J,GAAIjE,EAJN,SAMG0K,KAPWmD,OAFaA,GAkBnC,cAAC,IAAKH,KAAN,CAAoBmI,KAAM,cAAC9B,EAAD,IAA1B,SACE,cAAC,IAAD,CACEzK,UAAW,SAACqE,GAAD,OAAcA,EAAQC,SAAW,SAAW,IACvD3J,GAAIjE,EAFN,SAIG0K,KALWmD,YEvDbiI,GAhBuB,WACpC,OACE,cAAC,GAAD,UACE,eAAC,IAAD,WACE,cAAC,GAAD,IACA,eAAC,IAAD,WACE,cAAC,GAAD,IACA,cAAC,IAAO5E,QAAR,UACE,cAAC,IAAD,e,8BChBG,OAA0B,kCC6G1B6E,GAxFE,WAAO,IAAD,kBACfxT,EAAUqK,GAAiB,qBAAG1J,GAAYX,WAD3B,EAGY4B,EAAU,UACtC/F,IAAUZ,aAD4B,YACZ+E,GAC7B,CACEoC,aAAc,CAACpC,GACfwC,YAAaxC,IAJTgC,EAHa,EAGbA,YAAaD,EAHA,EAGAA,QAQfyG,EAAmB,CACvB,CACEvE,KAAM,YACNqJ,MAAO,YACPmG,OAAQ,SAACxP,GAAD,OAAUyP,KAAOC,EAAS1P,IAAO2P,OAAO,SAElD,CACE3P,KAAM,iBACNqJ,MAAO,YACPmG,OAAQ,2BACHE,EAAS,kBADN,cAC6BA,EAAS,qBAEhD,CACE1P,KAAM,kBACNqJ,MAAO,gBACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,kBACNqJ,MAAO,iBACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,kBACNqJ,MAAO,kBACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,GACNqJ,MAAO,GACPmG,OAAQ,kBACN,cAAC,IAAD,CACE/R,GAAE,WAAMlD,IAASiQ,eAAf,6BAAkD3C,GAAgB+H,aADtE,kCASAF,EAAW,SAAC1P,GAAD,OAAkBnB,EAAcgR,YAAY9R,EAAY8B,OAAOiQ,cAAe9P,IAE/F,OACE,eAAC,KAAD,CAAMgN,SAAUlP,EAAhB,UACE,oBAAIgF,UAAU,QAAd,SACGjE,EAAckE,WAAd,OAAyBhF,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqBiQ,qBAA9C,aAAyB,EAAoChQ,gBAGhE,qBAAIgD,UAAWjE,EAAc6C,YAAd,OAA0B3D,QAA1B,IAA0BA,GAA1B,UAA0BA,EAAa8B,cAAvC,iBAA0B,EAAqBiQ,qBAA/C,aAA0B,EAAoCC,WAA7E,UACE,sBAAMjN,UAAU,SAAhB,oBAAwC,OAAX/E,QAAW,IAAXA,GAAA,UAAAA,EAAa8B,cAAb,mBAAqBiQ,qBAArB,eAAoCE,mBAAoB,GAArF,QAEA,sCAAOjS,QAAP,IAAOA,GAAP,UAAOA,EAAa8B,cAApB,iBAAO,EAAqBiQ,qBAA5B,aAAO,EAAoCC,eAG7C,cAAC,KAAD,CACEE,YAAuB,OAAXlS,QAAW,IAAXA,GAAA,UAAAA,EAAa8B,cAAb,eAAqBiQ,eAAgBvL,EAAS,GAC1D2L,WAAY,SAACtN,GAAD,OACV,cAAC,KAAKsE,KAAN,UACE,sBAAKpE,UAAU,0DAAf,UACE,+BAAOF,EAAKyG,QACZ,gCACO,OAAJzG,QAAI,IAAJA,OAAA,EAAAA,EAAM4M,QAAS5M,EAAK4M,OAAO5M,EAAK5C,MAAQ0P,EAAS9M,EAAK5C,gBAOjE,mBAAG1F,KAAM,IAAT,SACE,qBAAKwI,UAAU,OAAf,SACE,qBAAK6D,IAAKwJ,GAAOtJ,IAAI,iB,UCiBhBuJ,GAlGiB,SAAC,GAAe,IAAbC,EAAY,EAAZA,MAAY,EACjBxS,mBAAS,CACnCyS,iBAAkB,KAClBC,eAAe,IAH4B,mBACtCjQ,EADsC,KAC9BkQ,EAD8B,OAMZ7S,EAAU,UACtC/F,IAAUK,qBAD4B,YACJoY,EAAMhJ,IAC3C,CACElJ,aAAc,CAACkS,EAAMhJ,GAAI/G,GACzB/B,aAAY,OAAC8R,QAAD,IAACA,OAAD,EAACA,EAAOhJ,IACpBrJ,aAAc,CAAE6B,OAAQ,IACxBzB,MAAOkC,IANHvC,EANqC,EAMrCA,YAAaD,EANwB,EAMxBA,QAqBf2S,EAAU,CACd,CACEvM,MAAO,IACPwM,UAAW,aACX/Q,IAAK,aACLoE,MAAO,GACPyL,OAAQ,SAAC/I,EAAQkK,EAASN,GAAlB,OACN,mCAAGA,EAAQ,MAGf,CACEnM,MAAO,QACPwM,UAAW,OACX/Q,IAAK,QACL6P,OAAQ,SAACrL,EAAcyM,GAAf,OACN,sBAAK9N,UAAU,4BAAf,UACE,qBAAK6D,IAAG,OAAEiK,QAAF,IAAEA,OAAF,EAAEA,EAAQC,MAAOpO,MAAO,CAAEqO,UAAW,OAAQC,YAAa,SAClE,cAAC,IAAD,CACEtT,GAAE,WAAMlD,IAASyW,qBAAf,YAAuCnS,EAAcoS,cAAd,OAA4BL,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAQ5Q,MAA3E,mBAAoF4Q,QAApF,IAAoFA,OAApF,EAAoFA,EAAQvJ,IADhG,SAGGlD,MALL,OAAgDyM,QAAhD,IAAgDA,OAAhD,EAAgDA,EAAQvJ,MAU5D,CACEnD,MAAO,QACPwM,UAAW,qBACX/Q,IAAK,QACL6P,OAAQ,SAACrL,GAAD,OACNtF,EAAckE,WAAd,OAAyBoB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAM+M,SAAU1O,KAE7C,CACE0B,MAAO,aACPwM,UAAW,qBACX/Q,IAAK,YACL6P,OAAQ,SAACrL,GAAD,OACNtF,EAAckE,WAAd,OAAyBoB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMgN,UAAW3O,KAE9C,CACE0B,MAAO,aACPwM,UAAW,qBACX3M,MAAO,IACPpE,IAAK,gBACL6P,OAAQ,SAACrL,GAAD,OACN,sBAAMrB,UAAWjE,EAAc6C,aAAgB,OAAJyC,QAAI,IAAJA,OAAA,EAAAA,EAAMiN,gBAAiB,GAAlE,oBACU,OAAJjN,QAAI,IAAJA,OAAA,EAAAA,EAAMiN,gBAAiB,EAD7B,WAON,OACE,gCACE,oBAAItO,UAAU,OAAd,SACE,uBAAMA,UAAU,SAAhB,6BAA0CuN,EAAMrQ,UAElD,cAAC,KAAD,CACEsM,KAAK,QACLmE,QAASA,EACTR,YAAuB,OAAXlS,QAAW,IAAXA,OAAA,EAAAA,EAAa8B,SAAU,GACnCwR,YAAY,EACZvT,QAASA,EACTwT,SA1EoB,SAACC,EAAoBC,EAAcC,GAC3D,GAAMA,EAAQ,CACZ,IAAMC,EAAiB,CACrBpB,iBAAkBmB,EAAOE,MACzBpB,cAAiC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGzBpB,EAAUkB,KAoERG,OAAQ,CAAEC,EAAG,KACbC,OAAQ,SAACnB,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQvJ,UC5DrB2K,GAzCE,WAAO,IAAD,IACYrU,EAAU,UACtC/F,IAAUe,UAD4B,IACf,GAC1B,CACEqF,aAAc,CAAE6B,OAAQ,MAHpB9B,EADa,EACbA,YAAaD,EADA,EACAA,QAOrB,OACE,cAAC,KAAD,CAAMkP,SAAUlP,EAAhB,SACE,sBAAKgF,UAAU,OAAf,UACE,oBAAIA,UAAU,OAAd,yBACA,qBAAKA,UAAU,iBAAf,mBACG/E,EAAY8B,cADf,aACG,EAAoBY,KAAI,SAACwF,GAAD,OACvB,cAAC,IAAD,CACE/B,MACE,cAAC,IAAD,CACEzG,GAAE,WACAlD,IAAS0X,eADT,YAEEpT,EAAcoS,cAAchL,EAAG/B,OAFjC,YAE2C+B,EAAGoB,IAHlD,SAKGpB,EAAG/B,QAGRgO,QAAS,CAAC,+BAAOzC,KAAOxJ,EAAGkM,WAAWxC,OAAO,WAC7C7M,UAAU,qBAEVqD,UAAU,EAbZ,SAeE,qBACEiM,wBAAyB,CAAEC,OAAQpM,EAAGqM,kBACtCxP,UAAU,YALPmD,EAAGoB,e,wCCPPkL,GArBwB,SAAC,GAA4E,IAA1EC,EAAyE,EAAzEA,YAAaC,EAA4D,EAA5DA,eAA4D,IAA5CC,qBAA4C,aAAtBC,gBAAsB,SACjH,OACE,8BACE,eAAC,KAAMC,MAAP,CACE5U,aAAcwU,EACdK,YAAY,QACZvG,KAAK,QACLgF,SAAU,SAACnC,GAAD,OAAyBsD,EAAetD,EAAE2D,OAAOnS,QAJ7D,UAMGgS,GAAY,cAAC,KAAMI,OAAP,CAAcpS,MAAO,EAArB,gBACb,cAAC,KAAMoS,OAAP,CAAcpS,MAAO,EAArB,gBACA,cAAC,KAAMoS,OAAP,CAAcpS,MAAO,EAArB,gBACA,cAAC,KAAMoS,OAAP,CAAcpS,MAAO,EAArB,gBACA,cAAC,KAAMoS,OAAP,CAAcpS,MAAO,EAArB,gBACA,cAAC,KAAMoS,OAAP,CAAcpS,MAAO,EAArB,gBACC+R,GAAiB,cAAC,KAAMK,OAAP,CAAcpS,MAAO,EAArB,uBCPLqS,G,iGACnB,SAAoB9U,GAClB,MAAO,CACLyF,MAAM,aACJsP,oBAAqBC,IADlB,OAEAhV,QAFA,IAEAA,OAFA,EAEAA,EAASyF,OAGduB,YAAY,eAAD,OACNhH,QADM,IACNA,OADM,EACNA,EAASgH,aAGdhB,MAAM,aACJC,KAAM,IADH,OAEAjG,QAFA,IAEAA,OAFA,EAEAA,EAASgG,OAGdiP,SAAS,aACPhP,KAAM,IADA,OAEHjG,QAFG,IAEHA,OAFG,EAEHA,EAASiV,UAGd7O,OAAc,OAAPpG,QAAO,IAAPA,OAAA,EAAAA,EAASoG,OAAT,aACLhI,KAAM,WACN8W,WAAW,EACX7O,OAAQ,CACN8O,UAAW,WACT,IAAMC,EAAUC,KAChB,OAAO9D,KAAO+D,MAAO,OAAFF,QAAE,IAAFA,OAAA,EAAAA,EAAI3S,OAAQ,KAAMgP,OAAO,iBAN3C,OASFzR,QATE,IASFA,OATE,EASFA,EAASoG,OACV,GAEJK,MAAK,OAAEzG,QAAF,IAAEA,OAAF,EAAEA,EAASyG,MAEhBC,QAAe,OAAP1G,QAAO,IAAPA,OAAA,EAAAA,EAAS0G,QAAT,aACNP,SAAS,GADH,OAEHnG,QAFG,IAEHA,OAFG,EAEHA,EAAS0G,QACV,GAEJC,SAAgB,OAAP3G,QAAO,IAAPA,OAAA,EAAAA,EAAS2G,SAAT,aACPE,QAAQ,EACRsO,UAFO,WAEM,IAAD,EACJC,EAAUC,KAEZ9U,EAAM,8BAA0BgR,KACjC+D,MAAO,OAAFF,QAAE,IAAFA,OAAA,EAAAA,EAAIG,GAAI,KACb9D,OAAO,eAOV,OALE,OAAF2D,QAAE,IAAFA,GAAA,UAAAA,EAAII,cAAJ,SAAY1S,SAAQ,SAAC2S,GAAgB,IAAD,EAClClV,GAAC,sBAAYkV,QAAZ,IAAYA,GAAZ,UAAYA,EAAOxO,cAAnB,aAAY,EAAenF,KAA3B,aAAoCnB,EAAckE,WAAd,OACnC4Q,QADmC,IACnCA,OADmC,EACnCA,EAAO7B,OAGJrT,IAdF,OAgBJP,QAhBI,IAgBJA,OAhBI,EAgBJA,EAAS2G,SACV,GAEJ+O,eAAe,OAAC1V,QAAD,IAACA,OAAD,EAACA,EAAS2V,mBAAV,sBA8BN3V,QA9BM,IA8BNA,OA9BM,EA8BNA,EAAS0V,eA7Bd,CACAvP,SAAS,EACTyP,QAAS,CACP,CACExX,KAAM,QAGVyX,SAAU,EACVC,cAAc,EACdC,kBAAmB,GACnBC,YAAa,CACX3O,OAAQ,CACNC,MAAO,CACL2O,KAAM,OACNC,OAAQ,OACR3R,MAAO,CACL8H,MAAO,SAGX8J,OAAQ,CACNF,KAAM,OACNC,OAAQ,OACR3R,MAAO,CACL8H,MAAO,YAQnBpF,OAAM,OAAEjH,QAAF,IAAEA,OAAF,EAAEA,EAASiH,Y,KCWRmP,GA9FgB,SAAC,GAAe,IAAbjE,EAAY,EAAZA,MAAY,EACNxS,mBAAS6J,GADH,mBACrC8K,EADqC,KACxBC,EADwB,KAGtC1W,EAAUqK,GAAiB,qBAAG1J,GAAYX,WAHJ,EAKX4B,EAAU,UAAwC/F,IAAUO,mBAAlD,YAAwE4D,GACjH,CACEoC,aAAc,CAACqU,EAAazW,GAC5BqC,MAAO,CACLmW,OAAQ5M,GAAiB6K,IAE3BjU,YAAaxC,IANTgC,EALoC,EAKpCA,YAAaD,EALuB,EAKvBA,QA2ErB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE0U,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACElP,WAAYC,KACZtF,QA1Ea,WAAwD,IAAD,UAAtDzC,EAAsD,uDAA5B,GAC5C,OAAO,2BACFuX,GAAkBwB,aAAa,CAChCrP,OAEEqN,EAAc,EAAI,CAChB,CACExS,KAAMqQ,EAAMrQ,KACZvE,MACE,UAAAoD,EAAc4V,WAAWhZ,EAAKkI,cAA9B,eAAsClD,KACpC,SAACwF,GAAD,MAAyB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YACpD,IAET,CACEX,KAAM,aACNvE,KAAI,UAAEoD,EAAc4V,WAAWhZ,EAAKkZ,iCAAhC,aAAE,EAAyDlU,KAC7D,SAACwF,GAAD,MAAyB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,WAG3D,CACEX,KAAM,aACNvE,KAAI,UAAEoD,EAAc4V,WAAWhZ,EAAKmZ,iCAAhC,aAAE,EAAyDnU,KAC7D,SAACwF,GAAD,MAAyB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,WAG3D,CACEX,KAAM,cACNvE,KAAI,UAAEoD,EAAc4V,WAAWhZ,EAAKoZ,kCAAhC,aAAE,EAA0DpU,KAC9D,SAACwF,GAAD,MAAyB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAI3D,CAAC,CACCX,KAAMqQ,EAAMrQ,KACZvE,MACE,UAAAoD,EAAc4V,WAAWhZ,EAAKkI,cAA9B,eAAsClD,KACpC,SAACwF,GAAD,MAAyB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YACpD,QApCjB,IAuCE2D,MAAO,CACLhI,KAAM,WACN8W,WAAW,EACX7O,OAAQ,CACN8O,UAAW,WACT,IAAMC,EAAUC,KAChB,OAAO9D,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAI3S,OAAOgP,OAAO,iBAI3C9K,QAAS,CACPE,QAAQ,EACRsO,UAFO,WAEM,IAAD,EACJC,EAAUC,KAEZ9U,EAAM,UAAMgR,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAIG,GAAG9D,OAAO,qBAK1C,OAHE,OAAF2D,QAAE,IAAFA,GAAA,UAAAA,EAAII,cAAJ,SAAY1S,SAAQ,SAAC2S,GACnBlV,GAAC,eAAYkV,EAAMxO,OAAOnF,KAAzB,aAAkCnB,EAAckE,WAAd,OAAyB4Q,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAO7B,OAE9DrT,MAcAqW,CAAU,OAAC/W,QAAD,IAACA,OAAD,EAACA,EAAa8B,cChD1BkV,GAlDS,WAAO,IAAD,EACUlX,mBACpC6J,IAF0B,mBACrB8K,EADqB,KACRC,EADQ,KAKtB1W,EAAUqK,GAAiB,qBAAG1J,GAAYX,WALpB,EAOK4B,EAAU,UAGtC/F,IAAUQ,8BAH4B,YAGK2D,EAHL,YAGgB4L,GAAiB6K,IAC1E,CACErU,aAAc,CAACqU,EAAazW,GAC5BwC,YAAaxC,IANTgC,EAPoB,EAOpBA,YAAaD,EAPO,EAOPA,QA4BrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE0U,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACE3M,gBAAiB,aACjBvC,WAAYC,KACZtF,QA3Ba,WAAgC,IAA/BzC,EAA8B,uDAAP,GACzC,OAAO,eACFuX,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAM,aACNvE,KAAMoD,EAAc4V,WAAWhZ,GAAMgF,KACnC,SAACwF,GAAD,MAAsB,CACM,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OADG,OAEpBvN,QAFoB,IAEpBA,OAFoB,EAEpBA,EAAItF,eAkBHmU,CAAU,OAAC/W,QAAD,IAACA,OAAD,EAACA,EAAa8B,cCY1BmV,GAxDM,WAAO,IAeNvZ,EAfK,EACaoC,mBAAS6J,IADtB,mBAClB8K,EADkB,KACLC,EADK,KAGnB1W,EAAUqK,GAAiB,qBAAG1J,GAAYX,WAHvB,EAKQ4B,EAAU,UAGtC/F,IAAUS,6BAH4B,YAGI0D,EAHJ,YAGe4L,GAAiB6K,IACzE,CACErU,aAAc,CAACqU,EAAazW,GAC5BwC,YAAaxC,IANTgC,EALiB,EAKjBA,YAAaD,EALI,EAKJA,QAoCrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE0U,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACE3M,gBAAiB,aACjBvC,WAAYC,KACZtF,SAnCczC,EAmCK,OAACsC,QAAD,IAACA,OAAD,EAACA,EAAa8B,OAlC9B,eACFmT,GAAkBwB,aAAa,CAChC7Q,MAAO,CACLrH,KAAM,UAER4I,YAAa,CACXC,OAAQ,CACNS,cAAe,YAGnBT,OAAQ,CACN,CACEnF,KAAM,cACNvE,KAAMoD,EAAc4V,WAAWhZ,GAAMgF,KACnC,SAACwF,GAAD,MAAmC,CACP,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OADgB,OAEjCvN,QAFiC,IAEjCA,OAFiC,EAEjCA,EAAItF,sBCgELsU,GAlGW,WAAO,IAAD,IACxBlZ,EAAUqK,GAAiB,qBAAG1J,GAAYX,WADlB,EAGG4B,EAAU,UACtC/F,IAAUK,qBAD4B,YACJ8D,GACrC,CACEoC,aAAc,CAACpC,GACfwC,YAAaxC,EACbiC,aAAc,CAAE6B,OAAQ,MALpB9B,EAHsB,EAGtBA,YAAaD,EAHS,EAGTA,QASf2S,EAAU,CACd,CACEvM,MAAO,IACPwM,UAAW,aACX/Q,IAAK,MAEP,CACEuE,MAAO,QACPwM,UAAW,OACX/Q,IAAK,QACL6P,OAAQ,SAACrL,EAAcyM,GAAf,OACN,sBAAK9N,UAAU,4BAAf,UACE,sBAAMA,UAAS,OAAE8N,QAAF,IAAEA,OAAF,EAAEA,EAAQC,QACzB,cAAC,IAAD,CACEpT,GAAE,WACAlD,IAASyW,qBADT,YAEEnS,EAAcoS,cAAd,OAA4BL,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAQ5Q,MAFtC,mBAE+C4Q,QAF/C,IAE+CA,OAF/C,EAE+CA,EAAQvJ,IAH3D,SAKGlD,SAKT,CACED,MAAO,QACPwM,UAAW,qBACX/Q,IAAK,QACL6P,OAAQ,SAACrL,GAAD,OACNtF,EAAckE,WAAd,OAAyBoB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAM+M,SAAU1O,KAE7C,CACE0B,MAAO,aACPwM,UAAW,qBACX/Q,IAAK,YACL6P,OAAQ,SAACrL,GAAD,OACNtF,EAAckE,WAAd,OAAyBoB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAMgN,UAAW3O,KAE9C,CACE0B,MAAO,aACPwM,UAAW,qBACX/Q,IAAK,SACL6P,OAAQ,SAACrL,GAAD,OACN,sBAAMrB,UAAWjE,EAAc6C,aAAgB,OAAJyC,QAAI,IAAJA,OAAA,EAAAA,EAAMiN,gBAAiB,GAAlE,oBACU,OAAJjN,QAAI,IAAJA,OAAA,EAAAA,EAAMiN,gBAAiB,EAD7B,WAON,OACE,gCACE,oBAAItO,UAAU,OAAd,2BACA,cAAC,KAAD,CACEwJ,KAAK,QACLmE,QAASA,EACTR,WAAU,OAAElS,QAAF,IAAEA,GAAF,UAAEA,EAAa8B,cAAf,aAAE,EACRN,MACA,SAACC,EAAgBC,GAAjB,eACG,OAADA,QAAC,IAADA,GAAA,UAAAA,EAAGyV,0BAAH,eAAuB9D,gBAAvB,OACA5R,QADA,IACAA,GADA,UACAA,EAAG0V,0BADH,aACA,EAAuB9D,kBAE1B9P,MAAM,EAAG,GACZ+P,YAAY,EACZvT,QAASA,EACTiU,OAAQ,SAACnB,GAAD,OAAyBA,EAAOvJ,MAG1C,oBAAIvE,UAAU,OAAd,0BACA,cAAC,KAAD,CACEwJ,KAAK,QACLmE,QAASA,EACTR,WAAU,OAAElS,QAAF,IAAEA,GAAF,UAAEA,EAAa8B,cAAf,aAAE,EACRN,MACA,SAACC,EAAgBC,GAAjB,eACG,OAADD,QAAC,IAADA,GAAA,UAAAA,EAAG0V,0BAAH,eAAuB9D,gBAAvB,OACA3R,QADA,IACAA,GADA,UACAA,EAAGyV,0BADH,aACA,EAAuB9D,kBAE1B9P,MAAM,EAAG,GACZ+P,YAAY,EACZvT,QAASA,EACTiU,OAAQ,SAACnB,GAAD,OAAyBA,EAAOvJ,U,qBC7FhD8N,KAAkB3R,KAElB,IAsEe4R,GAtEK,WAClB,IAAMrZ,EAAUqK,GAAiB,qBAAG1J,GAAYX,WADxB,EAGS4B,EAAU,UACtC/F,IAAUK,qBAD4B,YACJ8D,GACrC,CACEoC,aAAc,CAACpC,GACfwC,YAAaxC,EACbiC,aAAc,CAAE6B,OAAQ,MALpB9B,EAHgB,EAGhBA,YAAaD,EAHG,EAGHA,QASfuX,EAAW,SAAC1U,EAAe0P,GAAmB,IAAD,EACjD,OAAOxR,EAAcyW,mBACnB3U,EAAQ,EAAI,UAAY,UACd,IAAV0P,EACI,EACA1P,EAAQ,EACA,EAAR0P,EAC2C,IAA1C,UAAAtS,EAAY8B,cAAZ,eAAoB0V,QAAS,EAAIlF,KAyC1C,OACE,cAAC,KAAD,CAAMrD,SAAUlP,EAAhB,SACE,cAAC,IAAD,CACEyF,WAAYC,IACZtF,QAzCa,SAACzC,GAAiB,IAAD,EAClC,OAAO,eACFuX,GAAkBwB,aAAa,CAChC3P,QAAS,CACPE,QAAQ,EACRsO,UAFO,WAEM,IAAD,EACJC,EAAUC,KAChB,MAAM,GAAN,cAAUD,QAAV,IAAUA,OAAV,EAAUA,EAAI3T,IAAd,mBAA4Bd,EAAckE,WAAd,OAC1BuQ,QAD0B,IAC1BA,GAD0B,UAC1BA,EAAIK,aADsB,aAC1B,EAAWhT,OADb,OAKJwE,OAAQ,CACN,CACE7I,KAAM,UACNkZ,gBAAiB,aACjB/Z,KAAI,OAAEA,QAAF,IAAEA,GAAF,UAAEA,EACF8D,MACA,SAACC,EAAgBC,GAAjB,eACG,OAADD,QAAC,IAADA,GAAA,UAAAA,EAAG0V,0BAAH,eAAuB9D,gBAAvB,OACA3R,QADA,IACAA,GADA,UACAA,EAAGyV,0BADH,aACA,EAAuB9D,yBAJzB,aAAE,EAMF3Q,KAAI,SAACwF,EAAiBoK,GAAmB,IAAD,MACxC,MAAO,CACLrQ,KAAK,GAAD,cAAKiG,QAAL,IAAKA,OAAL,EAAKA,EAAIjG,KAAT,mBACA,OAAFiG,QAAE,IAAFA,GAAA,UAAAA,EAAIiP,0BAAJ,eAAwB9D,gBAAiB,EADvC,KAGJzQ,MAAK,OAAEsF,QAAF,IAAEA,GAAF,UAAEA,EAAIiP,0BAAN,aAAE,EAAwB/D,UAC/B5G,MAAO8K,EAAQ,OAACpP,QAAD,IAACA,GAAD,UAACA,EAAIiP,0BAAL,aAAC,EAAwB9D,cAAef,YAaxDyE,EAAsB,OAAX/W,QAAW,IAAXA,OAAA,EAAAA,EAAa8B,SAAU,SCvE3C4V,GAAYC,KAAZD,QA4BOE,GAtBU,SAAC,GAAe,IAAbtF,EAAY,EAAZA,MAC1B,OACE,eAAC,KAAD,CAAUuF,iBAAiB,IAA3B,UACE,cAACH,GAAD,CAASI,IAAI,cAAb,SACE,cAAC,GAAD,CAAYxF,MAAOA,KADU,KAG/B,cAACoF,GAAD,CAASI,IAAI,aAAb,SACE,cAAC,GAAD,KAD4B,KAG9B,cAACJ,GAAD,CAASI,IAAI,aAAb,SACE,cAAC,GAAD,KAD4B,KAG9B,cAACJ,GAAD,CAASI,IAAI,iBAAb,SACE,cAAC,GAAD,KADgC,KAGlC,cAACJ,GAAD,CAASI,IAAI,WAAb,SACE,cAAC,GAAD,KAD0B,SCInBC,GAzBU,WAAO,IAAD,EACInY,EAAU,UACtC/F,IAAUnB,UAD4B,YACfoR,GAAgBkO,MAC1C,CACE5X,aAAc,GACdH,aAAc,CAAE6B,OAAQ,MAJpB9B,EADqB,EACrBA,YAAaD,EADQ,EACRA,QAQrB,OACE,sBAAKgF,UAAU,OAAf,UACE,oBAAIA,UAAU,OAAd,2BACA,cAAC,KAAD,CAAMkK,SAAUlP,EAAhB,SACGC,EAAY8B,OAAOY,KAAI,SAACwF,GAAD,OACtB,qBAEEmM,wBAAyB,CAAEC,OAAQpM,EAAG2F,MACtC9I,UAAU,UAFLmD,EAAGoB,aCmDL2O,GA5DE,WAAO,IAAD,IACb3O,EAAO4O,cAAP5O,GACFtL,EAAUqK,GAAiB,qBAAG1J,GAAYX,WACxCiP,EAAeG,KAAfH,WAERxM,qBAAU,WACR,IAAMzC,EAAYsL,EAAK7G,SAAS6G,GAAM,EACtC2D,EAAWjP,KACV,CAACsL,IARiB,MAUY1J,EAAU,UACtC/F,IAAUZ,aAD4B,YACZ+E,GAC7B,CACEoC,aAAc,CAACpC,GACfwC,UAAWxC,EAAU,IAJjBgC,EAVa,EAUbA,YAVa,EAUAD,QAQrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,eAAC,IAAD,CACEQ,UAAU,gBACVoB,MACE,sBAAKpB,UAAU,4BAAf,UACE,sBAAMA,UAAU,eAAhB,gBAAgC/E,QAAhC,IAAgCA,GAAhC,UAAgCA,EAAa8B,cAA7C,aAAgC,EAAqBG,OACrD,cAAC,IAAD,iBAAMjC,QAAN,IAAMA,GAAN,UAAMA,EAAa8B,cAAnB,aAAM,EAAqBuD,YALjC,UASE,eAAC,IAAD,CAAK+S,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,UACE,cAAC,IAAD,CAAKjU,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,cAAC,GAAD,MAEF,cAAC,IAAD,CAAKH,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACc,OAAXvE,QAAW,IAAXA,OAAA,EAAAA,EAAa8B,SACZ,cAAC,GAAD,CAAMwQ,MAAOtS,EAAY8B,cAK/B,eAAC,IAAD,CAAKsW,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAAMtT,UAAU,OAA1D,UACE,cAAC,IAAD,CAAKX,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACc,OAAXvE,QAAW,IAAXA,OAAA,EAAAA,EAAa8B,SACZ,cAAC,GAAD,CAAawQ,MAAOtS,EAAY8B,WAGpC,cAAC,IAAD,CAAKsC,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,cAAC,GAAD,MAEF,cAAC,IAAD,CAAKF,KAAM,GAAX,SACE,cAAC,GAAD,iB,UCyDCiU,GA5GoB,WAAO,IAAD,MACTxY,oBAAS,GADA,mBAChCC,EADgC,KACvB8K,EADuB,OAEf/K,mBAAc,CACpCgC,OAAQ,KAH6B,mBAEhCpE,EAFgC,KAE1B6a,EAF0B,OAKDzY,mBAAgB,CAAC,EAAG,IALnB,mBAKhC0Y,EALgC,KAKnBC,EALmB,OAMD3Y,mBAAS6J,IANR,mBAMhC8K,EANgC,KAMnBC,EANmB,OAQ2B9U,EAAU,UAEvE/F,IAAUM,eAAiB,CAC9B8F,aAAc,CACZ6B,OAAQ,MAJSqG,EARkB,EAQ/BnI,YAAmC0Y,EARJ,EAQL3Y,QAQlCU,qBAAU,WACRkY,MACC,IAEHlY,qBAAU,WACRkY,MACC,CAAClE,IAEJ,IAAMkE,EAAO,yCAAG,6BAAAlX,EAAA,6DACdoJ,GAAW,GADG,SAGSvN,IAAgBqD,UAAhB,UAClB9G,IAAUY,sCACb,CAAEme,OAAQhP,GAAiB6K,GAAcoE,cAAeL,EAAYjW,QAAO,SAAA2G,GAAC,OAAIA,EAAI,KAAI4P,SAAUN,EAAYjW,QAAO,SAAA2G,GAAC,OAAIA,EAAI,KAAGxG,KAAI,SAAAwG,GAAC,OAAKA,OAL/H,OAGRhN,EAHQ,OAQdqc,EAAQrc,EAASwB,MACjBmN,GAAW,GATG,2CAAH,qDAuCb,OACE,cAAC,KAAD,CAAMoE,SAAUlP,GAAW2Y,EAA3B,SACE,eAAC,IAAD,CAAK9J,QAAQ,SAASuJ,MAAM,MAA5B,UACE,eAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,cAAC,GAAD,CACEkQ,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACE3M,gBAAiB,aACjBvC,WAAYC,KACZtF,QAtCS,SAACzC,EAAayI,GAAmB,IAAD,EACjD,OAAO,eACF8O,GAAkBwB,aAAa,CAChCtQ,MAAO,CACLC,KAAM,2BAERgP,SAAU,CACRhP,MACM,OAAJ1I,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,EAAf,qBACkB9F,KAAM,UAAChU,GAAS,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,UAArB,aAAC,EAAwBuB,WAAWnH,OACxD,qBAEA,IAER/K,OAAQ,CACNP,SAAS,GAEXc,OAAM,OAAE1J,QAAF,IAAEA,OAAF,EAAEA,EAAMgF,KAAI,SAACwF,GAAD,YAAS,CACzBjG,KAAI,OAAEiG,QAAF,IAAEA,OAAF,EAAEA,EAAIjG,KACVvE,KAAI,UAAEoD,EAAc4V,WAAd,OAAyBxO,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAIgD,OAAQ,gBAAvC,aAAE,EAA+CxI,KACnD,SAACwF,GAAD,MAAa,CAA4B,IAA3BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAI8Q,OAAOvD,OAAnB,OAAkCvN,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAI+Q,iBAkB1ClC,EACH,OAAJrZ,QAAI,IAAJA,GAAA,UAAAA,EAAMoE,cAAN,eAAcoX,iCAAkC,SAMtD,eAAC,IAAD,CAAK9U,GAAI,GAAIE,GAAI,EAAGC,GAAI,EAAxB,UACE,cAAC,KAAD,CACEyE,KAAK,WACLmQ,YAAU,EACVzU,MAAO,CAAE0U,SAAU,QACnBnZ,aAAcuY,EACdhN,YAAY,qCACZ+H,SAAU,SAAC5Q,GACT8V,EAAe9V,IAPnB,gBAUGwF,QAVH,IAUGA,GAVH,UAUGA,EAAarG,cAVhB,aAUG,EAAqBY,KAAI,SAACwF,GAAD,eACxB,eAAC,KAAOmR,OAAR,CAAmDzW,MAAK,UAAEsF,EAAGF,oBAAL,SAAuBE,EAAGlK,QAAlF,UACGkK,EAAGjG,KADN,IACaiG,EAAG7C,OADhB,gBAAoB6C,EAAGF,oBAAvB,QAAuCE,EAAGlK,cAM9C,cAAC,KAAD,CAAQ8Q,QAAS6J,EAASW,SAAUd,EAAYhB,OAAS,EAAG+B,OAAK,EAAChb,KAAK,UAAUwG,UAAU,OAA3F,8B,UCbKyU,GAlF6B,SAACla,GAAW,IAAD,EACvBQ,mBAAgB,IADO,mBAC9C4S,EAD8C,KACrC+G,EADqC,OAE7B3Z,mBAAgB,IAFa,mBAE9CpC,EAF8C,KAExC6a,EAFwC,KAI/ClY,EAA6B,2BAC9Bf,EAAMoa,qBADwB,IAEjC,kBAAmBpa,EAAMoa,oBAAoBb,gBAGvC9Y,EAAYH,EAAU,UACxB/F,IAAUb,aAAe,CAC3BiH,aAAc,CACZ6B,OAAQ,IAEVzB,MAAOA,EACPD,aAAc,CAACd,EAAMoa,oBAAoBC,eACzC/c,OAAQkE,EAAckK,cACtB1K,QAAS,SAACpE,GAAc,IAAD,EACf0d,EAAW,CAAC,CAChBzT,MAAO,OACPwM,UAAW,OACXlB,OAAQ,SAACrL,EAAcyM,GAAkB,MAAO,CAAEvE,SAAU,4CAAGuE,QAAH,IAAGA,OAAH,EAAGA,EAAQ5Q,KAAX,KAAmB4Q,EAAOxN,OAA1B,WAGxDwU,EAAyC,GAC/C,UAAA3d,EAAS4F,cAAT,SAAiBgY,qBACdtY,MAAK,SAACC,EAAQC,GAAT,OAAoBD,EAAEsY,WAAarY,EAAEqY,cAC1C9W,SAAQ,SAAC+W,GACRJ,EAAS5X,KAAK,CACZmE,MAAM,GAAD,cAAK6T,QAAL,IAAKA,OAAL,EAAKA,EAAkB3U,QAC5BsN,UAAU,GAAD,cAAKqH,QAAL,IAAKA,OAAL,EAAKA,EAAkB3U,QAChCoM,OAAQ,SAACrL,GACP,IAAM5C,EAAMyW,WAAW7T,GACnBoG,EAAQ,OAQZ,OALIhJ,GAAOA,EAAM,EACfgJ,EAAK,2BAAuBpG,EAAvB,KACE5C,GAAOA,EAAM,IACpBgJ,EAAK,4BAAwB,EAAIhJ,EAA5B,MAEA,CACLlE,MAAO,CACLoF,MAAO,CAAEwB,gBAAiBsG,IAE5B8B,SAAU,mCAAGlI,QAKnB,IAAM8T,EAAoC,CACxCjY,KAAM+X,EAAiB/X,KACvBoD,OAAQ2U,EAAiB3U,QAG3B2U,EAAiBG,qBACdlX,SAAQ,SAACiF,GACRgS,EAAU,GAAD,OAAIhS,EAAGkS,UAAatZ,EAAckE,WAAWkD,EAAGtF,UAG7DiX,EAAU7X,KAAKkY,MAGnBT,EAAWG,GACXrB,EAAQsB,MAvDN9Z,QA2DR,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,4DAA+BT,EAAMoa,oBAAoBW,UAAzD,OAAwE/a,EAAMoa,oBAAoBY,WAClG,cAAC,KAAD,CACE/L,KAAK,QACLmE,QAASA,EACTR,WAAYxU,GAAQ,GACpB4V,YAAY,EACZU,OAAO,aCpFP0D,GAAYE,KAAZF,QACA6C,GAAgBC,KAAhBD,YA2GOE,GAzGgB,WAAO,IAAD,IACpBC,KAAKC,UAAbC,EAD4B,sBAGmB9a,mBAAc,CAClE+a,iBAAkBpR,EAAiBqR,MACnCnB,cAAe,IALkB,mBAG5BD,EAH4B,KAGPqB,EAHO,OAQ+Bnb,EAAU,UAEvE/F,IAAUM,eAAiB,CAC9B8F,aAAc,CACZ6B,OAAQ,MAJSqG,EARc,EAQ3BnI,YAQFiL,GAhB6B,EAQDlL,QAQZ,yCAAG,WAAOmL,GAAP,UAAAzJ,EAAA,sDACvBsZ,EAAuB,2BAClB7P,GADiB,IAEpBmP,UAAWnP,EAAO8P,OAAStJ,KAAOxG,EAAO8P,MAAM,IAAIpJ,OAAO,cAC1D0I,QAASpP,EAAO8P,OAAStJ,KAAOxG,EAAO8P,MAAM,IAAIpJ,OAAO,cACxD+H,eAAe,IAAI3d,MAAOif,qBALL,2CAAH,uDAStB,OACE,eAAC,KAAD,CAAMpD,iBAAiB,IAAvB,UACE,cAAC,GAAD,CAASC,IAAI,QAAb,SACE,cAAC,GAAD,CACE4B,oBAAqB,CACnBmB,iBAAkBpR,EAAiBqR,MACnCT,UAAW3I,OAASwJ,KAAK,EAAG,KAAKtJ,OAAO,cACxC0I,QAAS5I,OAASE,OAAO,kBALN,KAUzB,cAAC,GAAD,CAASkG,IAAI,UAAb,SACE,cAAC,GAAD,CACE4B,oBAAqB,CACnBmB,iBAAkBpR,EAAiB0R,QACnCd,UAAW3I,OAASwJ,KAAK,EAAG,KAAKtJ,OAAO,cACxC0I,QAAS5I,OAASE,OAAO,kBALJ,KAU3B,eAAC,GAAD,CAASkG,IAAI,SAAb,UACE,eAAC,KAAD,2BACM5T,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,cACNrJ,KAAK,gBACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,yCAHrC,SAKE,cAAC,KAAD,CACE6F,KAAK,WACLmQ,YAAU,EACV3N,YAAY,uCAHd,gBAKGrD,QALH,IAKGA,GALH,UAKGA,EAAarG,cALhB,aAKG,EAAqBS,QAAO,SAAA2G,GAAC,QAAMA,EAAElB,gBAActF,KAAI,SAACwF,GAAD,OACtD,eAAC,KAAOmR,OAAR,CAAqCzW,MAAOsF,EAAGF,aAA/C,UACGE,EAAGjG,KADN,IACaiG,EAAG7C,OADhB,MAAoB6C,EAAGF,qBAO7B,cAAC,KAAKmB,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QAFP,SAIE,cAACsY,GAAD,MAGF,cAAC,KAAKpR,KAAN,CACEmC,MAAM,oBACNrJ,KAAK,mBAFP,SAIE,eAAC,KAAD,CACEyC,MAAO,CAAE0U,SAAU,QADrB,UAGE,cAAC,KAAOC,OAAR,CAA4CzW,MAAO6G,EAAiBqR,MAApE,kBAAoBrR,EAAiBqR,OACrC,cAAC,KAAOzB,OAAR,CAA8CzW,MAAO6G,EAAiB0R,QAAtE,oBAAoB1R,EAAiB0R,SACrC,cAAC,KAAO9B,OAAR,CAA6CzW,MAAO6G,EAAiB2R,OAArE,mBAAoB3R,EAAiB2R,aAIzC,cAAC,KAAKjS,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAhC,uBAMJ,cAAC,GAAD,CAAyBiO,oBAAqBA,MApDtB,SC0EjB2B,GA5HO,WAAO,IAAD,EACazb,EAAU,UAE3C/F,IAAUW,+BAAiC,CAC/CyF,aAAc,CACZ6B,OAAQ,MAJSpE,EADK,EAClBsC,YAAmBD,EADD,EACCA,QAQrBgX,EAAa,SACjBrZ,EACAyI,GAEI,IAAD,MADHmV,EACG,wDACH,OAAO,eACFrG,GAAkBwB,aAAa,CAChC7Q,MAAO,CACLG,OAAQ,KAEVI,MAAO,CACLC,KAAMD,GAERiP,SAAU,CACRhP,MACM,OAAJ1I,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,EAAf,qBACkB9F,KAAM,UAAChU,GAAS,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,UAArB,aAAC,EAAwBuB,WAAWnH,OACxD,qBAEA,IAER/K,OAAQ,CACNP,SAAS,GAEXwP,mBAAmB,EACnBlP,MAAO,CACL,CACEJ,OAAQ,CACN2R,MAAO,QACPzC,GAAI,GAENvP,MAAO,CACLC,KAAM,cAERL,OAAQ,MACRuB,UAAW,EACXiU,OAAQ,CACNjV,SAAS,IAGb,CACEE,OAAQ,CACN2R,MAAO,QACPzC,GAAI,GAENvP,MAAO,CACLC,KAAM,UAERoV,IAAK,MACLzV,OAAQ,MACRoI,OAAQ,EACR7G,UAAW,IAGfF,OAAQ,CACN,CACEnF,KAAM,aACNvE,KAAI,UAAEoD,EAAc4V,WAAWhZ,EAAM,oBAAjC,aAAE,EAA6CgF,KACjD,SAACwF,GAAD,MAIM,CAC6B,IAA/BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAI6Q,WAAWtD,OACtB6F,EAAW,OACPpT,QADO,IACPA,OADO,EACPA,EAAIuT,0BADG,OAEPvT,QAFO,IAEPA,OAFO,EAEPA,EAAIwT,6CAIhB,CACEzZ,KAAM,SACN1D,KAAM,SACNqI,MAAO,EACPlJ,KAAI,UAAEoD,EAAc4V,WAAWhZ,EAAM,oBAAjC,aAAE,EAA6CgF,KACjD,SAACwF,GAAD,MAIM,CAC6B,IAA/BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAI6Q,WAAWtD,OACtB6F,EAAW,OACPpT,QADO,IACPA,OADO,EACPA,EAAIyT,eADG,OAEPzT,QAFO,IAEPA,OAFO,EAEPA,EAAI0T,uCASxB,OACE,eAAC,KAAD,CAAM3M,SAAUlP,EAAhB,UACE,cAAC,IAAD,CACEgI,gBAAiB,aACjBvC,WAAYC,KACZtF,QAAS4W,EAAU,OACjBrZ,QADiB,IACjBA,OADiB,EACjBA,EAAMoE,OACN,qCACA,KAGJ,cAAC,IAAD,CACEiG,gBAAiB,aACjBvC,WAAYC,KACZtF,QAAS4W,EAAU,OACjBrZ,QADiB,IACjBA,OADiB,EACjBA,EAAMoE,OACN,8D,iBC/GV+Z,GAAsBpW,KAEtB,IAAMqW,GAAgB,SAACpe,GACrB,IAAMqe,GAAe,OAAJre,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,EAAI9Z,EAAK,GAAK,GAE9C,MAAO,CACLkI,MAAO,CACLrH,KAAM,eAER4H,MAAO,CACLC,KAAM,sCAERgP,SAAU,CACRhP,KAAM2V,EAAQ,kBACCrK,KAAM,OAACqK,QAAD,IAACA,OAAD,EAACA,EAAUpF,MAAM/E,OAAO,eACzC,IAEN9K,QAAS,CACPkV,aAAc,GACdC,eAAgB,WACd,IAAM1G,EAAUC,KAChB,MAAM,GAAN,OAAUD,EAAGtT,KAAb,aAAsBnB,EAAckE,WAClCuQ,EAAG2G,YADL,gCAEyBpb,EAAckE,WAAWuQ,EAAGxB,MAGzD5M,YAAa,CACXgV,YAAa,CACXC,kBAAkB,EAClBC,OAAQ,UACRC,WAAY,CACVhW,SAAS,EACTgP,UAAW,WAET,MAAM,GAAN,OADgBE,KACH5T,SAKrBwF,OAAQ,CACN,CACEmV,aAAc,MACdC,UAAW,MACXC,KAAM,EACNxa,KAAM,YACNvE,KAAMA,EAAKgF,KAAI,SAAAwG,GAAC,cAAK,CAAEjH,KAAI,iBAAEiH,QAAF,IAAEA,GAAF,UAAEA,EAAGwT,kBAAL,aAAE,EAAeza,YAAjB,QAAyB,SAAU8R,EAAC,OAAE7K,QAAF,IAAEA,OAAF,EAAEA,EAAGtG,cAMtEmU,GAAa,SAACrZ,GAAiB,IAAD,EAC5Bif,EAAc7b,EAAc8b,QAAQlf,EAAM,gBAE1CO,EAAmB,GAczB,OAbcC,OAAO2e,oBAAoBF,GACnC1Z,SAAQ,SAAAiG,GAAM,IAAD,MACXrE,EAAO8X,EAAYzT,GAEzBjL,EAAU+D,KAAK,CACbC,KAAI,oBAAE4C,EAAK,UAAP,iBAAE,EAAS6X,kBAAX,aAAE,EAAqBza,YAAvB,QAA+B,SACnCvE,KAAI,OAAEmH,QAAF,IAAEA,OAAF,EAAEA,EAAMnC,KAAI,SAACwF,GAAD,MAAa,CACD,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OADU,OAE3BvN,QAF2B,IAE3BA,OAF2B,EAE3BA,EAAItF,eAKH,eACFqS,GAAkBwB,aAAa,CAChC7Q,MAAO,CACLrH,KAAM,QAER4H,MAAO,CACLC,KAAM,6CAERgP,SAAU,CACRhP,MACM,OAAJ1I,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,EAAf,qBACkB9F,KAAM,UAAChU,GAAS,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM8Z,QAAS,UAArB,aAAC,EAAwBb,MAAM/E,OACnD,eAEA,IAER/K,OAAQ,CACNP,SAAS,GAEXwP,mBAAmB,EACnBhP,QAAS,CACPE,QAAQ,EACRsO,UAAW,WACT,IAAMC,EAAUC,KAEZ9U,EAAM,8BAA0BgR,KACjC+D,MAAO,OAAFF,QAAE,IAAFA,OAAA,EAAAA,EAAIG,GAAI,KACb9D,OAAO,cAFA,UAINhM,EAAQ4P,KAAKG,OAAO,GAAGvO,OAAOxB,MAmBlC,OAjBA4P,KAAKG,OAAO1S,SAAQ,SAAU6Z,GACL,IAAnBA,EAAa/I,GACftO,IAAWsX,cAAa,EAAOnX,GAC/BkX,EAAalH,MAAM1V,SAAS,UAC5BuF,IAAWsX,cAAa,EAAMnX,IAE9BlF,GACE,sBACAoc,EAAatQ,MACb,mBACAsQ,EAAa1V,OAAOnF,KACpB,KACAnB,EAAckE,WAAW8X,EAAa/I,GACtC,WAICrT,IAGX0G,OAAQnJ,MAuEC+e,GAlEiB,WAAO,IAAD,EACEld,mBAAS6J,GADX,mBAC7B8K,EAD6B,KAChBC,EADgB,OAEI5U,mBAAS4R,OAASwJ,KAAK,EAAG,MAF9B,mBAE7B+B,EAF6B,KAEfC,EAFe,OAIOtd,EAAU,UAE/C/F,IAAUW,8BAFqC,4BAEYyiB,EAAarL,OAAO,eAAiB,CACpG3R,aAAc,CACZ6B,OAAQ,IAEV1B,aAAc,CAAC6c,KANIlB,EAJe,EAI5B/b,YAAuBD,EAJK,EAILA,QASVod,EAAgBvd,EAAU,UAEzC/F,IAAUW,8BAF+B,wBAEsB,CACnEyF,aAAc,CACZ6B,OAAQ,MAJJ9B,YAoBR,OAZAS,qBAAU,WACR,OAAQmJ,GAAiB6K,IACvB,IAAK,KAAQyI,EAAgBxL,OAASwJ,KAAK,EAAG,MAAO,MACrD,IAAK,KAAQgC,EAAgBxL,OAASwJ,KAAK,EAAG,UAAW,MACzD,IAAK,KAAQgC,EAAgBxL,OAASwJ,KAAK,EAAG,UAAW,MACzD,IAAK,KAAQgC,EAAgBxL,OAASwJ,KAAK,EAAG,UAAW,MACzD,IAAK,KAAQgC,EAAgBxL,OAASwJ,KAAK,EAAG,MAAO,MACrD,QAAWgC,EAAgBxL,OAASwJ,KAAK,EAAG,SAG7C,CAACzG,IAGF,eAAC,KAAD,CAAMxF,SAAUlP,EAAhB,WACW,OAARgc,QAAQ,IAARA,OAAA,EAAAA,EAAUja,SACT,qCACE,cAAC,GAAD,CACE2S,YAAaA,EACbC,eAAgBA,EAChBC,eAAe,IAEjB,cAAC,IAAD,CACEnP,WAAYC,IACZtF,QAAS2b,GAAa,OAACC,QAAD,IAACA,OAAD,EAACA,EAAUja,aAKvC,qBAAKiD,UAAU,gBAEH,OAAXoY,QAAW,IAAXA,OAAA,EAAAA,EAAarb,QACV,qBAAKiD,UAAU,aAAaL,MAAO,CAAE0Y,UAAW,UAAhD,SACA,cAAC,KAAD,CAAMnO,UAAU,MAGlB,cAAC,IAAD,CACElH,gBAAiB,aACjBvC,WAAY6X,KACZld,QAAS4W,IAAsB,OAAXoG,QAAW,IAAXA,OAAA,EAAAA,EAAarb,SAAU,U,iBChMrDwb,GAAe7X,KAEf,IAAM8X,GAAmB,SAAC7f,GAAe,IAAD,IACtC,MAAO,CACLkI,MAAO,CACLrH,KAAM,gBAER4H,MAAO,CACLC,MACM,OAAJ1I,QAAI,IAAJA,GAAA,UAAAA,EAAM8f,YAAN,eAAYhG,QAAS,EAArB,sBACmB9F,KAAM,OAAChU,QAAD,IAACA,OAAD,EAACA,EAAMiZ,MAAM/E,OAAO,eAD7C,sBAEmBF,KAAM,OAAChU,QAAD,IAACA,OAAD,EAACA,EAAMiZ,MAAM/E,OAAO,gBAEjD9K,QAAS,CACP2W,SAAS,EACTnI,UAAW,WAET,MAAM,GAAN,OADgBE,KACH5T,IAAb,cAAsBd,EAAckE,WADpBwQ,KACkCzB,MAGtD5M,YAAa,CACXuW,aAAc,CACZC,QAAS,MACTC,QAAS,OACTnG,gBAAiB,CACfoG,aAAa,EACbC,sBAAuB,KAEzBxB,WAAY,CACVhW,SAAS,EACTsL,OAAQ,eACRrP,OAAQ,CACNpB,SAAU,IACV4c,SAAU,IACVnb,MAAO,KAET8B,MAAO,CACL8H,MAAO,QACPwR,YAAa,OACbC,WAAY,aAKpB7W,OAAM,OAAE1J,QAAF,IAAEA,GAAF,UAAEA,EAAM8f,YAAR,aAAE,EAAY9a,KAAI,SAACwF,GAAD,MAAc,CACpCjG,KAAI,OAAEiG,QAAF,IAAEA,OAAF,EAAEA,EAAIjG,KACVvE,KAAM,CACJ,CACEuE,KAAI,OAAEiG,QAAF,IAAEA,OAAF,EAAEA,EAAIjG,KACVW,MAAK,OAAEsF,QAAF,IAAEA,OAAF,EAAEA,EAAIgW,kBAOfxL,GAAU,CACd,CACEvM,MAAO,OACPwM,UAAW,OACX/Q,IAAK,OACLoE,MAAO,OAET,CACEG,MAAO,aACPwM,UAAW,YACX/Q,IAAK,SACL6P,OAAQ,SAACrL,GAAD,OAAkBtF,EAAckE,WAAWoB,MA4BxC+X,GAlBuB,SAAC,GAAc,IAAZzgB,EAAW,EAAXA,KACvC,OACE,qCACE,cAAC,IAAD,CACE8H,WAAYC,IACZtF,QAASod,GAAiB7f,KAE5B,cAAC,KAAD,CACE6Q,KAAK,QACLmE,QAASA,GACTR,YAAgB,OAAJxU,QAAI,IAAJA,OAAA,EAAAA,EAAM8f,OAAQ,GAC1BlK,YAAY,EACZU,OAAO,WC1FP0D,GAAYC,KAAZD,QA0CO0G,GAxCY,WAAO,IAAD,EACHte,mBAAS,KADN,mBACxB8Y,EADwB,KAChByF,EADgB,OAEQze,EAAU,UAE3C/F,IAAUa,+BAFiC,YAECke,GAAU,CAC1DxY,aAAc,CAACwY,GACf3Y,aAAc,CACZ6B,OAAQ,CACN0b,KAAM,OANS9f,EAFU,EAEvBsC,YAAmBD,EAFI,EAEJA,QAe3B,OACE,cAAC,KAAD,CAAMkP,SAAUlP,EAAhB,SACE,eAAC,KAAD,CAAU8X,iBAAkBe,EAAQrF,SANf,SAACqF,GACxByF,EAAUzF,IAKR,UACE,cAAC,GAAD,CAASd,IAAI,QAAb,SACE,cAAC,GAAD,CAAmBpa,KAAI,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAMoE,UADR,KAGzB,cAAC,GAAD,CAASgW,IAAI,WAAb,SACE,cAAC,GAAD,CAAmBpa,KAAI,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAMoE,UADL,KAG5B,cAAC,GAAD,CAASgW,IAAI,cAAb,SACE,cAAC,GAAD,CAAmBpa,KAAI,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAMoE,UADF,KAG/B,cAAC,GAAD,CAASgW,IAAI,cAAb,SACE,cAAC,GAAD,CAAmBpa,KAAI,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAMoE,UADF,KAG/B,cAAC,GAAD,CAASgW,IAAI,cAAb,SACE,cAAC,GAAD,CAAmBpa,KAAI,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAMoE,UADF,WC7BvCsV,KAAkB3R,KAElB,ICPY6Y,GAWAC,GD8FGC,GAlGU,WAAO,IAAD,EAQTC,EARS,EACI7e,EAC/B/F,IAAUX,eACV,CACE+G,aAAc,CAAE6B,OAAQ,MAHpB9B,EADqB,EACrBA,YAAaD,EADQ,EACRA,QAuFrB,OACE,cAAC,KAAD,CAAMkP,SAAUlP,EAAhB,SACE,cAAC,IAAD,CACEyF,WAAYC,IACZtF,SApFcse,EAoFMC,KAAKC,MAAL,OAAW3e,QAAX,IAAWA,GAAX,UAAWA,EAAa8B,cAAxB,aAAW,EAAqBc,OAnFjD,2BACFqS,GAAkBwB,aAAa,CAChC7Q,MAAO,CACLrH,KAAM,QACNqgB,oBAAqB,KACrBC,gBAAiB,EACjBC,YAAY,EACZ/Y,OAAQ,SAGVQ,MAAO,KACPM,OAAQ,KAERD,MAAO,CACLmY,IAAK,EACLC,IAAK,IACLC,aAAc,SACdC,UAAW,UACXC,WAAY,GACZC,UAAW,EACXC,kBAAmB,KACnB7Y,OAAQ,CACN8Y,SAAU,GACV5a,MAAO,CACL6a,SAAU,SAGdC,UAAW,CAAC,CACVtiB,KAAM,EACNwC,GAAI,GACJ8M,MAAO,UACPiT,UAAW,IACV,CACDviB,KAAM,GACNwC,GAAI,GACJ8M,MAAO,UACPiT,UAAW,IACV,CACDviB,KAAM,GACNwC,GAAI,IACJ8M,MAAO,UACPiT,UAAW,MAIfrY,OAAQ,CAAC,CACPnF,KAAM,eACNvE,KAAM,CAAC+gB,GACPnC,WAAY,CACV1K,OAAQ,MACR/L,YAAa,EACb2G,MAAO,UACP9H,MAAO,CACL6a,SAAU,SAGdG,KAAM,CACJ/X,OAAQ,MACRzB,gBAAiB,OACjByZ,UAAW,GACXC,WAAY,KACZC,WAAY,MAEdC,MAAO,CACL5Z,gBAAiB,OACjByB,OAAQ,QAjEhB,IAqEEoY,KAAM,CACJC,YAAa,GACbC,SAAU,KACVC,WAAY,KACZC,OAAQ,CAAC,MAAO,OAChB5R,KAAM,gBE3CC6R,GAxCkB,WAAO,IAAD,EACCtgB,mBAAS6J,IADV,mBAC9B8K,EAD8B,KACjBC,EADiB,OAGJ9U,EAAU,UACtC/F,IAAUX,eAD4B,4BACM0Q,GAAiB6K,IAChE,CAAErU,aAAc,CAACqU,KAFXzU,EAH6B,EAG7BA,YAAaD,EAHgB,EAGhBA,QAqBrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE6U,UAAU,EACVH,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACE3M,gBAAiB,aACjBvC,WAAYC,KACZtF,QA1Ba,WAA8D,IAAD,EAC9E,OAAO,eACF8U,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAM,mBACNvE,MACE,UAAAoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAa8B,eAAtC,eAA+CY,KAC7C,SAACwF,GAAD,MAA8B,CAA2B,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAAiCvN,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAImY,gBAChE,QAiBFtJ,U,SDzCLuH,O,2BAAAA,I,mCAAAA,I,iCAAAA,I,4CAAAA,I,iCAAAA,Q,cAWAC,O,eACOD,GAAgBgC,gB,iBADvB/B,I,cAEMD,GAAgBiC,e,iBAFtBhC,Q,KEJZ,IAsEeiC,GAtEW,WAAO,IAAD,EACQ1gB,mBAAS6J,IADjB,mBACvB8K,EADuB,KACVC,EADU,OAGG9U,EAAU,UACtC/F,IAAUX,eAD4B,qBACD0Q,GAAiB6K,IAAgB,CAAErU,aAAc,CAACqU,KADpFzU,EAHsB,EAGtBA,YAAaD,EAHS,EAGTA,QAoDrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE6U,UAAU,EACVH,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACElP,WAAYC,KACZtF,QAzDa,WAAwC,IAAD,QACxD,OAAO,2BACF8U,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAM,mBACNvE,MACE,UAAAoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,aAAyB,EAAqBS,QAAO,SAAA2G,GAAC,OAAIA,EAAE0P,QAAU2F,GAAe+B,0BAArF,eAAuG5d,KACrG,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAC9C,IAET,CACEX,KAAM,kBACNvE,MACE,UAAAoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,aAAyB,EAAqBS,QAAO,SAAA2G,GAAC,OAAIA,EAAE0P,QAAU2F,GAAegC,yBAArF,eAAsG7d,KACpG,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAC9C,QAff,IAmBE2D,MAAO,CACLhI,KAAM,WACN8W,WAAW,EACX7O,OAAQ,CACN8O,UAAW,WACT,IAAMC,EAAUC,KAChB,OAAO9D,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAI3S,OAAOgP,OAAO,iBAI3C9K,QAAS,CACPE,QAAQ,EACRsO,UAFO,WAEM,IAAD,EACJC,EAAUC,KAEZ9U,EAAM,UAAMgR,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAIG,GAAG9D,OAAO,eAO1C,OALE,OAAF2D,QAAE,IAAFA,GAAA,UAAAA,EAAII,cAAJ,SAAY1S,SAAQ,SAAC2S,GACnBlV,GAAC,gBAAiB,OAALkV,QAAK,IAALA,OAAA,EAAAA,EAAO7B,GAAI,EAAI,UAAY,UAAvC,aAAqDjT,EAAckE,WAAd,OACpD4Q,QADoD,IACpDA,OADoD,EACpDA,EAAO7B,OAGJrT,MAeAqW,SCUF0J,GAzEgB,WAAO,IAAD,EACG3gB,mBAAS6J,IADZ,mBAC5B8K,EAD4B,KACfC,EADe,OAGF9U,EAAU,UACtC/F,IAAUX,eAD4B,yBACG0Q,GAAiB6K,IAAgB,CAAErU,aAAc,CAACqU,KADxFzU,EAH2B,EAG3BA,YAAaD,EAHc,EAGdA,QAuDrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE6U,UAAU,EACVH,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACElP,WAAYC,KACZtF,QA5Da,WAA4D,IAAD,YAC5E,OAAO,2BACF8U,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAM,gBACNvE,KACEoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqB4e,eAA9C,aAAyB,EAA8Bhe,KACrD,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAEpD,CACDX,KAAM,YACNvE,KACEoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqB6e,+BAA9C,aAAyB,EAA8Cje,KACrE,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAEpD,CACDX,KAAM,aACNvE,KACEoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqB8e,gCAA9C,aAAyB,EAA+Cle,KACtE,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,gBAnB7D,IAwBE2D,MAAO,CACLhI,KAAM,WACN8W,WAAW,EACX7O,OAAQ,CACN8O,UAAW,WACT,IAAMC,EAAUC,KAChB,OAAO9D,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAI3S,OAAOgP,OAAO,iBAI3C9K,QAAS,CACPE,QAAQ,EACRsO,UAFO,WAEM,IAAD,EACJC,EAAUC,KAEZ9U,EAAM,UAAMgR,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAIG,GAAG9D,OAAO,eAK1C,OAHE,OAAF2D,QAAE,IAAFA,GAAA,UAAAA,EAAII,cAAJ,SAAY1S,SAAQ,SAAC2S,GACnBlV,GAAC,eAAYkV,EAAMxO,OAAOnF,KAAzB,aAAkCnB,EAAckE,WAAd,OAAyB4Q,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAO7B,OAE9DrT,MAeAqW,SCMF8J,GAzEa,WAAO,IAAD,EACM/gB,mBAAS6J,IADf,mBACzB8K,EADyB,KACZC,EADY,OAGC9U,EAAU,UACtC/F,IAAUX,eAD4B,uBACC0Q,GAAiB6K,IAAgB,CAAErU,aAAc,CAACqU,KADtFzU,EAHwB,EAGxBA,YAAaD,EAHW,EAGXA,QAuDrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE6U,UAAU,EACVH,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACElP,WAAYC,KACZtF,QA5Da,WAAwD,IAAD,YACxE,OAAO,2BACF8U,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAM,aACNvE,KACEoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqBgf,kBAA9C,aAAyB,EAAiCpe,KACxD,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAEpD,CACDX,KAAM,aACNvE,KACEoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqBif,gCAA9C,aAAyB,EAA+Cre,KACtE,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,YAEpD,CACDX,KAAM,aACNvE,KACEoD,EAAc4V,WAAd,OAAyB1W,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAa8B,cAAtC,iBAAyB,EAAqBkf,gCAA9C,aAAyB,EAA+Cte,KACtE,SAACwF,GAAD,MAAmB,CAACwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAAlB,OAA0BvN,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAItF,gBAnB7D,IAwBE2D,MAAO,CACLhI,KAAM,WACN8W,WAAW,EACX7O,OAAQ,CACN8O,UAAW,WACT,IAAMC,EAAUC,KAChB,OAAO9D,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAI3S,OAAOgP,OAAO,iBAI3C9K,QAAS,CACPE,QAAQ,EACRsO,UAFO,WAEM,IAAD,EACJC,EAAUC,KAEZ9U,EAAM,UAAMgR,KAAO+D,KAAP,OAAYF,QAAZ,IAAYA,OAAZ,EAAYA,EAAIG,GAAG9D,OAAO,eAK1C,OAHE,OAAF2D,QAAE,IAAFA,GAAA,UAAAA,EAAII,cAAJ,SAAY1S,SAAQ,SAAC2S,GACnBlV,GAAC,eAAYkV,EAAMxO,OAAOnF,KAAzB,aAAkCnB,EAAckE,WAAd,OAAyB4Q,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAO7B,OAE9DrT,MAeAqW,SCkDFkK,GA/Ge,WAC5BxgB,qBAAU,cACP,IAF+B,MAIQb,EAAU,UAC/C/F,IAAUX,eADqC,YAElD,CACE+G,aAAc,CAAE6B,OAAQ,MAHPof,EAJa,EAI1BlhB,YAAsBD,EAJI,EAIJA,QAOxByG,EAAmB,CACvB,CACEvE,KAAM,SACNqJ,MAAO,eACPmG,OAAQ,kBAAMC,KAAOC,EAAS,SAASgF,MAAM/E,OAAO,sBAEtD,CACE3P,KAAM,aACNqJ,MAAO,cACPmG,OAAQ,kBAAMC,KAAOC,EAAS,SAASgF,MAAMuE,IAAI,EAAG,KAAKtJ,OAAO,sBAElE,CACE3P,KAAM,YACNqJ,MAAO,YACPmG,OAAQ,kBAAMiN,KAAKC,MAAMhN,EAAS,aAAa/O,SAEjD,CACEX,KAAM,WACNqJ,MAAO,YACPmG,OAAQ,kBAAMiN,KAAKC,MAAMhN,EAAS,YAAY/O,SAEhD,CACEX,KAAM,YACNqJ,MAAO,aACPmG,OAAQ,kBAAMiN,KAAKC,MAAMhN,EAAS,aAAa/O,SAEjD,CACEX,KAAM,GACNqJ,MAAO,GACPmG,OAAQ,kBACN,cAAC,IAAD,CACE/R,GAAE,6CADJ,kCASAiS,EAAW,SAAC1P,GAAD,OAAkBnB,EAAcgR,YAAYoP,EAAQpf,OAAQG,IAE7E,OACE,cAAC,KAAD,CAAMgN,SAAUlP,EAAhB,SACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,eAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,eAAC,IAAD,CAAK4T,MAAM,MAAX,UACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,GAAD,MAGF,cAAC,IAAD,CAAKH,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,KAAD,CACE2N,YAAmB,OAAPgP,QAAO,IAAPA,OAAA,EAAAA,EAASpf,QAAS0E,EAAS,GACvC2L,WAAY,SAACtN,GAAD,OACV,cAAC,KAAKsE,KAAN,UACE,sBAAKpE,UAAU,0DAAf,UACE,+BAAOF,EAAKyG,QACZ,gCACO,OAAJzG,QAAI,IAAJA,OAAA,EAAAA,EAAM4M,SAAU5M,EAAK4M,wBAepC,eAAC,IAAD,CAAK0G,MAAM,MAAX,UACE,eAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,0DACA,cAAC,GAAD,OAGF,eAAC,IAAD,CAAKH,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,iDACA,cAAC,GAAD,OAGF,eAAC,IAAD,CAAKH,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,+CACA,cAAC,GAAD,OAGF,eAAC,IAAD,CAAKH,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,4CACA,cAAC,GAAD,kBCjHNmT,GAAYE,KAAZF,QA4COyJ,GA1CW,WACxB,OACE,cAAC,IAAD,CAAKvS,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,gBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,eAAhB,8BAJN,SAQE,cAAC,IAAD,CAAKqT,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,SACE,cAAC,IAAD,CAAKjU,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,eAAC,KAAD,CAAMsT,iBAAiB,IAAvB,UACE,cAAC,GAAD,CAASC,IAAI,cAAb,SACE,cAAC,GAAD,KAD6B,KAG/B,cAAC,GAAD,CAASA,IAAI,mBAAb,SACE,cAAC,GAAD,KADkC,KAGpC,cAAC,GAAD,CAASA,IAAI,mBAAb,SACE,cAAC,GAAD,KADkC,KAGpC,cAAC,GAAD,CAASA,IAAI,sBAAb,SACE,cAAC,GAAD,KADqC,KAGvC,cAAC,GAAD,CAASA,IAAI,0BAAb,SACE,cAAC,GAAD,KADyC,KAG3C,cAAC,GAAD,CAASA,IAAI,qBAAb,SACE,cAAC,GAAD,KADoC,mBCFvCsJ,GAhCO,WAAO,IAAD,MACOxhB,EAAU,UACtC/F,IAAUR,YAD4B,YACbyQ,GAAgBsX,WAC5C,CACEnhB,aAAc,KAHVD,EADkB,EAClBA,YAAaD,EADK,EACLA,QAOrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,qBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,QAAhB,mBAAyB/E,EAAY8B,cAArC,aAAyB,EAAoBqE,UAGjDpG,QAASA,EAPX,SASE,qBACEsU,wBAAyB,CACvBC,OAAM,UAAEtU,EAAY8B,cAAd,aAAE,EAAoB2M,SAE9B1J,UAAU,uB,UC+DPsc,GA/EQ,WAAO,IAAD,MACMzhB,EAAU,UACtC/F,IAAUN,MAAQ,CACrB8G,MAAO,CAAEmS,eAAe,GACxBvS,aAAc,KAHRD,EADmB,EACnBA,YAAaD,EADM,EACNA,QADM,EAOqCH,EAAU,UAErE/F,IAAUnB,UAF2D,YAE9CoR,GAAgBmK,MAAQ,CAClD7T,aAAc,GACdH,aAAc,CAAE6B,OAAQ,MAJLwf,EAPM,EAOnBthB,YAAoCuhB,EAPjB,EAOQxhB,QAOnC,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,gBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,eAAhB,2BAGJhF,QAASA,EAPX,SASE,eAAC,IAAD,CAAKqY,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,UACE,cAAC,IAAD,CAAKjU,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CAAK6T,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,mBACGrY,EAAY8B,cADf,iBACG,EAAoB0b,YADvB,aACG,EAA0B9a,KAAI,SAACwF,GAAD,OAC7B,cAAC,IAAD,CAAK9D,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACE4B,MACE,cAAC,IAAD,CACEzG,GAAE,WAAMlD,IAAS0X,eAAf,YACIpT,EAAcoS,cAAchL,EAAG/B,OADnC,YAC6C+B,EAAGoB,IAFpD,SAIGpB,EAAG/B,QAGRgO,QAAS,CACP,+BAAOzC,KAAOxJ,EAAGkM,WAAWxC,OAAO,UACnC,iCACE,cAAC4P,GAAA,EAAD,IADF,WACmBtZ,QADnB,IACmBA,OADnB,EACmBA,EAAIuZ,eAGzB1c,UAAU,gCAEVqD,UAAU,EAjBZ,SAmBE,qBACEiM,wBAAyB,CACvBC,OAAQpM,EAAGqM,kBAEbxP,UAAU,YAPPmD,EAAGoB,KAjBZ,OAAkCpB,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAIoB,WA+B5C,cAAC,IAAD,CAAKlF,GAAI,GAAIE,GAAI,EAAGC,GAAI,EAAxB,SACE,cAAC,KAAD,CAAM0K,SAAUsS,EAAhB,SACGD,EAAaxf,OAAOY,KAAI,SAACwF,GAAD,OACvB,qBAEEmM,wBAAyB,CAAEC,OAAQpM,EAAG2F,MACtC9I,UAAU,UAFLmD,EAAGoB,qBCuBboY,GAvFE,WAAO,IAAD,MACY9hB,EAAU,UACtC/F,IAAUjB,MACb,CACEqH,aAAc,KAHVD,EADa,EACbA,YAAaD,EADA,EACAA,QADA,EAQ2CH,EAAU,UAErE/F,IAAUnB,UAF2D,YAE9CoR,GAAgB4X,MAAQ,CAClDthB,aAAc,GACdH,aAAc,CAAE6B,OAAQ,MAJLwf,EARA,EAQbthB,YAAoCuhB,EARvB,EAQcxhB,QAOnC,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,gBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,eAAhB,oBAGJhF,QAASA,EAPX,SASE,eAAC,IAAD,CAAKqY,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,UACE,cAAC,IAAD,CAAKjU,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CAAK6T,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,mBACGrY,EAAY8B,cADf,iBACG,EAAoB0b,YADvB,aACG,EAA0B9a,KAAI,SAACwF,GAAD,OAC7B,cAAC,IAAD,CAAK9D,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,cAAC,IAAD,CACE4B,MACE,cAAC,IAAD,CACEzG,GAAE,WACAlD,IAASmlB,eADT,YAEE7gB,EAAcoS,cAAchL,EAAG/B,OAFjC,YAE2C+B,EAAGoB,IAHlD,SAKGpB,EAAG/B,QAGRyb,MACE,qBACE9Y,IAAI,UACJF,IAAG,UAAK3E,EAAL,gBAA2BiE,EAAG4K,SAGrCqB,QAAS,CACP,+BAAOzC,KAAOxJ,EAAGkM,WAAWxC,OAAO,UACnC,iCACE,cAAC4P,GAAA,EAAD,IADF,WACmBtZ,QADnB,IACmBA,OADnB,EACmBA,EAAIuZ,eAGzB1c,UAAU,0BAEVqD,UAAU,EAxBZ,SA0BE,qBACEiM,wBAAyB,CACvBC,OAAQpM,EAAGqM,kBAEbxP,UAAU,YAPPmD,EAAGoB,KAxBqBpB,EAAGoB,WAsC1C,cAAC,IAAD,CAAKlF,GAAI,GAAIE,GAAI,EAAGC,GAAI,EAAxB,SACE,cAAC,KAAD,CAAM0K,SAAUsS,EAAhB,SACGD,EAAaxf,OAAOY,KAAI,SAACwF,GAAD,OACvB,qBAEEmM,wBAAyB,CAAEC,OAAQpM,EAAG2F,MACtC9I,UAAU,UAFLmD,EAAGoB,qB,UC3BbuY,GApDM,WAAO,IAAD,YACjBvY,EAAO4O,cAAP5O,GADiB,EAGQ1J,EAAU,UACtC/F,IAAUN,KAD4B,YACpB+P,GACrB,CACErJ,aAAc,CAAE6B,OAAQ,MAHpB9B,EAHiB,EAGjBA,YAAaD,EAHI,EAGJA,QAOrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,eAAC,IAAD,CACEQ,UAAU,qBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,QAAhB,mBAAyB/E,EAAY8B,cAArC,aAAyB,EAAoBqE,UAGjDgO,QAAS,CACP,+BAAOzC,KAAM,UAAC1R,EAAY8B,cAAb,aAAC,EAAoBsS,WAAWxC,OAAO,UACpD,iCACE,cAAC4P,GAAA,EAAD,IADF,cACmBxhB,EAAY8B,cAD/B,aACmB,EAAoB2f,eAGzC1hB,QAASA,EAbX,UAeE,qBACEsU,wBAAyB,CACvBC,OAAM,UAAEtU,EAAY8B,cAAd,aAAE,EAAoB2M,SAE9B1J,UAAU,WAEZ,cAAC,KAAD,IACA,sBAAKA,UAAU,sDAAf,UACE,sBAAMA,UAAU,SAAhB,qBACA,mBACEgQ,OAAO,SACP+M,IAAI,aACJvlB,KAAI,OAAEyD,QAAF,IAAEA,GAAF,UAAEA,EAAa8B,cAAf,aAAE,EAAqBigB,UAC3Bhd,UAAU,gBAJZ,gBAMG/E,QANH,IAMGA,GANH,UAMGA,EAAa8B,cANhB,aAMG,EAAqBigB,uBCwCrBC,GA5EoB,SAAC,GAAuB,IAArBtkB,EAAoB,EAApBA,KAAMqC,EAAc,EAAdA,QACpCyG,EAAmB,CACvB,CACEvE,KAAM,mBACNqJ,MAAO,eACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,kBACNqJ,MAAO,gBACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,mBACNqJ,MAAO,iBACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,kBACNqJ,MAAO,gBACPmG,OAAQ,SAACxP,GAAD,gBAAa0P,EAAS1P,GAAtB,QAEV,CACEA,KAAM,uBACNqJ,MAAO,yBAET,CACErJ,KAAM,YACNqJ,MAAO,kBAET,CACErJ,KAAM,cACNqJ,MAAO,gBAET,CACErJ,KAAM,YACNqJ,MAAO,cAET,CACErJ,KAAM,YACNqJ,MAAO,aAET,CACErJ,KAAM,YACNqJ,MAAO,cAET,CACErJ,KAAM,YACNqJ,MAAO,YACPmG,OAAQ,SAACxP,GAAD,OAAUyP,KAAOC,EAAS1P,IAAO2P,OAAO,UAI9CD,EAAW,SAAC1P,GAAD,OACfnB,EAAckE,WAAWlE,EAAcgR,YAAYpU,EAAMuE,KAE3D,OACE,eAAC,KAAD,CAAMgN,SAAUlP,EAAhB,UACE,qBAAIgF,UAAU,QAAd,cAAwBjE,EAAckE,WAAWtH,EAAKukB,aACtD,cAAC,KAAD,CACE/P,WAAYxU,EAAO8I,EAAS,GAC5B2L,WAAY,SAACtN,GAAD,OACV,cAAC,KAAKsE,KAAN,UACE,sBAAKpE,UAAU,0DAAf,UACE,+BAAOF,EAAKyG,QACZ,gCACO,OAAJzG,QAAI,IAAJA,OAAA,EAAAA,EAAM4M,QAAS5M,EAAK4M,OAAO5M,EAAK5C,MAAQ0P,EAAS9M,EAAK5C,oBCpBxDigB,GA/CsB,WAAO,IAAD,EACHpiB,mBAAS6J,GADN,mBAClC8K,EADkC,KACrBC,EADqB,KAGjCpL,EAAO4O,cAAP5O,GAHiC,EAKR1J,EAAU,UAGtC/F,IAAUkB,sCAH4B,YAGauO,EAHb,YAGmBM,GAAiB6K,IAC7E,CACErU,aAAc,CAACqU,GACfjU,YAAa8I,IANTtJ,EALiC,EAKjCA,YAAaD,EALoB,EAKpBA,QA0BrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE0U,YAAaA,EACbC,eAAgBA,EAChBE,UAAU,IAEZ,cAAC,IAAD,CACE7M,gBAAiB,aACjBvC,WAAYC,KACZtF,QA1Ba,WAAkC,IAAD,EAAhCzC,EAAgC,uDAAP,GAC3C,OAAO,eACFuX,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAK,UACLvE,KAAI,UAAEoD,EAAc4V,WAAWhZ,UAA3B,aAAE,EAAgCgF,KAAI,SAACwF,GAAD,MAAwB,CACtC,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OAD+C,OAEhEvN,QAFgE,IAEhEA,OAFgE,EAEhEA,EAAIgW,mBAkBDnH,CAAU,OAAC/W,QAAD,IAACA,OAAD,EAACA,EAAa8B,cCU1BqgB,GAnDkB,WAAO,IAAD,EACCriB,mBACpC6J,GAFmC,mBAC9B8K,EAD8B,KACjBC,EADiB,KAK7BpL,EAAO4O,cAAP5O,GAL6B,EAOJ1J,EAAU,UAGtC/F,IAAUiB,iCAH4B,YAGQwO,EAHR,YAGcM,GAAiB6K,IACxE,CACErU,aAAc,CAACqU,GACfjU,YAAa8I,IANTtJ,EAP6B,EAO7BA,YAAaD,EAPgB,EAOhBA,QA4BrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE0U,YAAaA,EACbC,eAAgBA,EAChBE,UAAU,IAEZ,cAAC,IAAD,CACE7M,gBAAiB,aACjBvC,WAAYC,KACZtF,QA5Ba,WAAgC,IAA/BzC,EAA8B,uDAAP,GACzC,OAAO,eACFuX,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAM,aACNvE,KAAMoD,EAAc4V,WAAWhZ,GAAMgF,KACnC,SAACwF,GAAD,MAAsB,CACM,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIyO,MAAMlB,OADG,OAEpBvN,QAFoB,IAEpBA,OAFoB,EAEpBA,EAAItF,eAmBHmU,CAAU,OAAC/W,QAAD,IAACA,OAAD,EAACA,EAAa8B,cCC1BsgB,GA9CuB,WAAO,IAAD,EACJtiB,mBAAS6J,IADL,mBACnC8K,EADmC,KACtBC,EADsB,KAGlCpL,EAAO4O,cAAP5O,GAHkC,EAKT1J,EAAU,UACtC/F,IAAUgB,sBAD4B,YACHyO,EADG,YACGM,GAAiB6K,IAC7D,CACErU,aAAc,CAACqU,GACfjU,YAAa8I,IAJTtJ,EALkC,EAKlCA,YAAaD,EALqB,EAKrBA,QA0BrB,OACE,eAAC,KAAD,CAAMkP,SAAUlP,EAAhB,UACE,cAAC,GAAD,CACE0U,YAAaA,EACbC,eAAgBA,IAElB,cAAC,IAAD,CACE3M,gBAAiB,aACjBvC,WAAYC,KACZtF,QA3Ba,WAA2B,IAAD,MAAzBzC,EAAyB,uDAAP,GACpC,OAAO,eACFuX,GAAkBwB,aAAa,CAChCrP,OAAQ,CACN,CACEnF,KAAI,UAAEvE,EAAK,UAAP,iBAAE,EAASgf,kBAAX,aAAE,EAAqBza,KAC3BvE,KAAI,UAAEoD,EAAc4V,WAAWhZ,EAAM,yBAAjC,aAAE,EAAkDgF,KACtD,SAACwF,GAAD,MAAiB,CACqB,IAApCwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIma,gBAAgB5M,OADZ,OAEfvN,QAFe,IAEfA,OAFe,EAEfA,EAAIiL,kBAkBH4D,CAAU,OAAC/W,QAAD,IAACA,OAAD,EAACA,EAAa8B,cClDjC4V,GAAYC,KAAZD,QAkBO4K,GAhBY,WACzB,OACE,eAAC,KAAD,CAAUzK,iBAAiB,IAA3B,UACE,cAAC,GAAD,CAASC,IAAI,mBAAb,SACE,cAAC,GAAD,KADkC,KAGpC,cAAC,GAAD,CAASA,IAAI,aAAb,SACE,cAAC,GAAD,KAD4B,KAG9B,cAAC,GAAD,CAASA,IAAI,kBAAb,SACE,cAAC,GAAD,KADiC,SC+C1ByK,GAjDoB,SAAC,GAAc,IAAD,IAAXtgB,EAAW,EAAXA,KAAW,EACdrC,EAAU,UACtC/F,IAAUN,MACb,CACE6G,aAAc,CAAC6B,GACfhC,aAAc,CAAE6B,OAAQ,IACxBzB,MAAO,CACLmiB,OAAQvgB,GAEVzB,YAAayB,IARTjC,EADuC,EACvCA,YAAaD,EAD0B,EAC1BA,QAYrB,OACE,cAAC,KAAD,CAAMkP,SAAUlP,EAAhB,SACE,sBAAKgF,UAAU,OAAf,UACE,oBAAIA,UAAU,OAAd,+BAEA,cAAC,IAAD,CAAKqT,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,mBACGrY,EAAY8B,cADf,iBACG,EAAoB0b,YADvB,aACG,EAA0B9a,KAAI,SAACwF,GAAD,OAC7B,cAAC,IAAD,CAAK9D,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,cAAC,IAAD,CACE4B,MACE,cAAC,IAAD,CACEzG,GAAE,WACAlD,IAAS0X,eADT,YAEEpT,EAAcoS,cAAchL,EAAG/B,OAFjC,YAE2C+B,EAAGoB,IAHlD,SAKGpB,EAAG/B,QAGRgO,QAAS,CAAC,+BAAOzC,KAAOxJ,EAAGkM,WAAWxC,OAAO,WAC7C7M,UAAU,qBAEVqD,UAAU,EAbZ,SAeE,qBACEiM,wBAAyB,CAAEC,OAAQpM,EAAGqM,kBACtCxP,UAAU,YALPmD,EAAGoB,KAbqBpB,EAAGoB,eCiBjCmZ,GAzCY,WAAO,IAAD,MACvBnZ,EAAO4O,cAAP5O,GADuB,EAGE1J,EAAU,UAEtC/F,IAAUV,YAF4B,YAEbmQ,GAAM,CAClCrJ,aAAc,CAAE6B,OAAQ,MAHlB9B,EAHuB,EAGvBA,YAAaD,EAHU,EAGVA,QAMrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,gBACVoB,MACE,sBAAKpB,UAAU,4BAAf,UACE,sBAAMA,UAAW/E,EAAY8B,OAAOgR,QACpC,sBAAM/N,UAAU,QAAhB,mBAAyB/E,EAAY8B,cAArC,aAAyB,EAAoBG,OAC7C,cAAC,IAAD,UAAMjC,EAAY8B,OAAOuD,SAEzB,qBAAKuD,IAAG,UAAE5I,EAAY8B,cAAd,aAAE,EAAoBgR,MAAOpO,MAAO,CAAEqO,UAAW,OAAQC,YAAa,YARpF,SAYE,eAAC,IAAD,CAAKoF,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,UACE,cAAC,IAAD,CAAKjU,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,cAAC,GAAD,CAAgB7G,KAAMsC,EAAY8B,OAAQ/B,QAASA,MAErD,cAAC,IAAD,CAAKqE,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,GAAD,MAEF,cAAC,IAAD,CAAKH,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,GAAD,CAAgBtC,KAAI,OAAEjC,QAAF,IAAEA,GAAF,UAAEA,EAAa8B,cAAf,aAAE,EAAqBG,mBCQ1CygB,GAxCM,WAAO,IAAD,QACjBpZ,EAAO4O,cAAP5O,GADiB,EAGQ1J,EAAU,UACtC/F,IAAUjB,KAD4B,YACpB0Q,GACrB,CACErJ,aAAc,CAAE6B,OAAQ,MAHpB9B,EAHiB,EAGjBA,YAAaD,EAHI,EAGJA,QAOrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,qBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,QAAhB,mBAAyB/E,EAAY8B,cAArC,aAAyB,EAAoBqE,UAGjDgO,QAAS,CACP,+BAAOzC,KAAM,UAAC1R,EAAY8B,cAAb,aAAC,EAAoBsS,WAAWxC,OAAO,UACpD,iCACE,cAAC4P,GAAA,EAAD,IADF,cACmBxhB,EAAY8B,cAD/B,aACmB,EAAoB2f,eAGzC1hB,QAASA,EAbX,SAeE,qBACEsU,wBAAyB,CACvBC,OAAM,UAAEtU,EAAY8B,cAAd,aAAE,EAAoB2M,SAE9B1J,UAAU,uBCAP4d,GAnCG,WAAO,IAAD,IACdrZ,EAAO4O,cAAP5O,GADc,EAGW1J,EAAU,UACtC/F,IAAUR,YAD4B,YACbiQ,GAC5B,CACElJ,aAAc,CAACkJ,GACfrJ,aAAc,CAAE6B,OAAQ,MAJpB9B,EAHc,EAGdA,YAAaD,EAHC,EAGDA,QAQrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,qBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,QAAhB,mBAAyB/E,EAAY8B,cAArC,aAAyB,EAAoBqE,UAGjDpG,QAASA,EAPX,SASE,qBACEsU,wBAAyB,CACvBC,OAAM,UAAEtU,EAAY8B,cAAd,aAAE,EAAoB2M,SAE9B1J,UAAU,uBCmBPqH,GA/CQ,WAAO,IAAD,IACMxM,EAAU,UACtC/F,IAAUd,aACb,CACEkH,aAAc,CAAE6B,OAAQ,MAHpB9B,EADmB,EACnBA,YAAaD,EADM,EACNA,QAOrB,OACE,cAAC,IAAD,CAAK6O,QAAQ,SAASuJ,MAAM,MAA5B,SACE,cAAC,IAAD,CAAK/T,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,cAAC,IAAD,CACEQ,UAAU,qBACVoB,MACE,qBAAKpB,UAAU,4BAAf,SACE,sBAAMA,UAAU,QAAhB,0BAGJhF,QAASA,EAPX,SASE,cAAC,IAAD,CAAKqY,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,mBACGrY,EAAY8B,cADf,aACG,EAAoBY,KAAI,SAACwF,EAAiBoK,GAAlB,OACvB,eAAC,IAAD,CAAKlO,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,UACE,eAAC,IAAD,CAAK6T,OAAQ,CAAEhU,GAAI,EAAGE,GAAI,GAAIC,GAAI,GAAI8T,GAAI,IAA1C,UACE,cAAC,IAAD,CAAKjU,GAAI,GAAIE,GAAI,GAAIC,GAAI,EAAzB,SACE,sBAAMQ,UAAU,QAAhB,SAAyBmD,EAAG/B,UAE9B,cAAC,IAAD,CAAK/B,GAAI,GAAIE,GAAI,GAAIC,GAAI,GAAzB,SACE,qBACE8P,wBAAyB,CACvBC,OAAM,OAAEpM,QAAF,IAAEA,OAAF,EAAEA,EAAIuG,SAEd1J,UAAU,qBAKfuN,EAAQtS,EAAY8B,OAAO0V,QAAU,cAAC,KAAD,mB,oBCmGvCoL,GApIO,WAAO,IAAD,QACLllB,EAASkC,EAC5B/F,IAAUC,+BACV,CACEmG,aAAc,CACZ6B,OAAQ,MAJN9B,YADkB,EAUmBJ,EAAU,UAClD/F,IAAUhB,aACb,CACEoH,aAAc,GACdrD,OAAQkE,EAAckK,cACtB1K,QAAS,eALQuiB,EAVK,EAUlB7iB,YAUa8iB,GApBK,EAUO/iB,QAUQH,EAAU,UAC9C/F,IAAUhB,YADoC,UAEjD,CACEoH,aAAc,GACdrD,OAAQkE,EAAckK,cACtB1K,QAAS,eALLN,aA8CR,OACE,eAAC,IAAD,CAAMD,SAAS,EAAf,UACE,eAAC,IAAD,CAAK6O,QAAQ,SAAb,UACE,kDACA,eAAC,IAAD,CAAK7J,UAAU,OAAf,UACE,cAAC,KAAD,CACEiB,MAAO,IACPzH,KAAK,SACLwkB,YAAa,CACX,KAAM,UACN,OAAQ,WAEVC,QAAS,IACTpR,OAAQ,+BAAMkR,QAAN,IAAMA,GAAN,UAAMA,EAAiBhhB,cAAvB,aAAM,EAAyBmhB,SAEzC,yCAGF,eAAC,IAAD,CAAKle,UAAU,OAAf,UACE,cAAC,KAAD,CACEiB,MAAO,IACPzH,KAAK,SACLwkB,YAAa,CACX,KAAM,UACN,OAAQ,WAEVC,QAAS,YAAMF,QAAN,IAAMA,GAAN,UAAMA,EAAiBhhB,cAAvB,aAAM,EAAyBohB,WAA/B,OAA0CJ,QAA1C,IAA0CA,GAA1C,UAA0CA,EAAiBhhB,cAA3D,aAA0C,EAAyBmhB,OAC5ErR,OAAQ,+BAAMkR,QAAN,IAAMA,GAAN,UAAMA,EAAiBhhB,cAAvB,aAAM,EAAyBohB,YAEzC,6CAGF,eAAC,IAAD,CAAKne,UAAU,OAAf,UACE,cAAC,KAAD,CACEiB,MAAO,IACPzH,KAAK,SACLwkB,YAAa,CACX,KAAM,UACN,OAAQ,WAEVC,QAAS,YAAMF,QAAN,IAAMA,GAAN,UAAMA,EAAiBhhB,cAAvB,aAAM,EAAyBqhB,QAA/B,OAAuCL,QAAvC,IAAuCA,GAAvC,UAAuCA,EAAiBhhB,cAAxD,aAAuC,EAAyBmhB,OACzErR,OAAQ,+BAAMkR,QAAN,IAAMA,GAAN,UAAMA,EAAiBhhB,cAAvB,aAAM,EAAyBqhB,SAEzC,4CAGJ,cAAC,IAAD,CACE3d,WAAYC,KACZtF,QApFa,SAACzC,GAClB,IAAMif,EAAc7b,EAAc8b,QAAQlf,EAAM,gBAE1CO,EAAmB,GASzB,OARcC,OAAO2e,oBAAoBF,GACnC1Z,SAAQ,SAAAiG,GACZjL,EAAU+D,KAAK,CACbC,KAAMiH,EACNtG,MAAO+Z,EAAYzT,GAAGsO,YAInB,eACFvC,GAAkBwB,aAAa,CAChC7Q,MAAO,CACLrH,KAAM,SACN2W,oBAAqB,MAEvB/N,YAAa,CACXC,OAAQ,CACNS,cAAe,YAGnBT,OAAQ,CAAC,CACPnF,KAAM,uBACNvE,KAAMO,EAAUyE,KACd,SAACwF,GAAD,MAAa,CACe,IAA1BwJ,KAAM,OAACxJ,QAAD,IAACA,OAAD,EAACA,EAAIjG,MAAMwT,OADN,OAEXvN,QAFW,IAEXA,OAFW,EAEXA,EAAItF,eAwDDmU,CAAW8L,EAAW/gB,UAGjC,cAAC,KAAD,CACEshB,OAAQ,uDACRhb,UAAQ,EACR8J,WAAYxU,EAAKoE,OACjBqQ,WAAY,SAACtN,GAAD,OACV,eAAC,KAAKsE,KAAN,WACE,cAAC,KAAWka,KAAZ,CAAiBC,MAAI,EAArB,gBAAuBze,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAMsB,QAD/B,OAEGtB,QAFH,IAEGA,OAFH,EAEGA,EAAM0e,kB,0DClHXhJ,GAAgBC,KAAhBD,YA0fOiJ,GAxfI,WAAO,IAAD,MACmB1jB,mBAAc,MADjC,mBAChB2jB,EADgB,KACDC,EADC,OAEW5jB,qBAFX,mBAEhB6jB,EAFgB,KAELC,EAFK,OAGc9jB,qBAHd,mBAGhB+jB,EAHgB,KAGPC,EAHO,OAIChkB,mBAAgB,IAJjB,mBAIhBikB,EAJgB,KAIVC,EAJU,OAK2ClkB,mBAAgB,IAL3D,mBAKhBmkB,EALgB,KAKWC,EALX,OAM2BpkB,mBAAc,CAC9DyS,iBAAkB,aAClBC,eAAe,EACf2R,SAAU,GACVC,WAAY,EACZC,YAAY,IAXS,mBAMhBC,EANgB,KAMGC,EANH,OAcR7J,KAAKC,UAAbC,EAdgB,sBAgB8Bhb,EAAU,UAE1D/F,IAAUV,aAAe,CAC5BqH,YAAaqjB,EACbzjB,aAAc,CAACyjB,EAASS,GACxBjkB,MAAOikB,EACPrkB,aAAc,GACdK,QAAS,SAACpE,GAGR,GAAyC,IAArC+nB,EAA0BzM,OAAc,CAAC,IAAD,IACpCgN,EAAG,OAAGtoB,QAAH,IAAGA,GAAH,UAAGA,EAAU4F,cAAb,iBAAG,EAAkB0b,YAArB,aAAG,EAAwB9a,KAAI,SAACwF,GAAD,OAAqBA,EAAGoB,MAChE4a,EAA6BM,KAGjC5nB,OAAQkE,EAAckK,gBAfHyZ,EAhBE,EAgBfzkB,YAAiCD,EAhBlB,EAgBkBA,QAkBzCU,qBAAU,WACR,IAAMikB,GAAa,IAAIC,MACpBC,QADgB,UACLxpB,+BADK,gBACuC,CACtDO,QAAS,CACP,8BAA+B,OAGlCkpB,iBAAiBF,KAAiBG,aAClCC,QAEHrB,EAAiBgB,KAEhB,IAEHjkB,qBAAU,WACRukB,IAEa,OAAbvB,QAAa,IAAbA,KAAewB,QAAf,wBAAuB,uBAAAxjB,EAAA,sEACfujB,IADe,4CAIV,OAAbvB,QAAa,IAAbA,KAAeyB,GAAG,OAAO,SAAChpB,GACxB8nB,GAAQ,SAAC3iB,GAAD,OAAYnF,GAAZ,oBAAyBmF,YAElC,CAACoiB,IAEJ,IAAMuB,EAAK,yCAAG,uBAAAvjB,EAAA,mEAENgiB,EAFM,uCAGFA,QAHE,IAGFA,OAHE,EAGFA,EAAeuB,QAHb,OAIRhB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAe6a,YAAa3hB,QAAS,sBAA/E,oBAAyG9B,OAJzG,uDAOVyB,QAAQC,IAAR,MAEAihB,GAAQ,SAAC3iB,GAAD,aAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAO,4CAAE,KAAKA,eAAP,eAAvE,oBAAmG9B,OAC3GgkB,WAAWL,EAAO,KAVR,yDAAH,qDAcLM,EAAI,yCAAG,uBAAA7jB,EAAA,kEAEmB,cAAxBgiB,EAAcplB,MAFT,gCAGDolB,EAAc8B,OAAO,QAHpB,uDAMTziB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAPlF,yDAAH,qDAWJmkB,EAAS,yCAAG,uBAAA/jB,EAAA,kEAEc,cAAxBgiB,EAAcplB,MAFJ,gCAGNolB,EAAc8B,OAAO,WAHf,uDAKdziB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAN7E,yDAAH,qDAUTokB,EAAoB,yCAAG,uBAAAhkB,EAAA,kEAEG,cAAxBgiB,EAAcplB,MAFO,gCAGjBolB,EAAc8B,OAAO,wBAHJ,uDAKzBziB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OANlE,yDAAH,qDAUpBqkB,EAAmB,yCAAG,uBAAAjkB,EAAA,kEAEI,cAAxBgiB,EAAcplB,MAFM,gCAGhBolB,EAAc8B,OAAO,uBAHL,uDAKxBziB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OANnE,yDAAH,qDAUnBskB,EAAW,yCAAG,gCAAAlkB,EAAA,6DAClBoX,EADkB,EAClBA,cACAD,EAFkB,EAElBA,OAFkB,kBAQV6K,EAAc8B,OAClB,cACA,IAAIvpB,KAAK4c,EAAO,IAAIgN,cACpB,IAAI5pB,KAAK4c,EAAO,IAAIgN,cACpB/M,GAZc,uDAehB/V,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAhB3E,yDAAH,sDAoBXwkB,EAAkB,yCAAG,8BAAApkB,EAAA,6DACzBoX,EADyB,EACzBA,cADyB,kBAMjB4K,EAAc8B,OAAO,qBAAsB1M,GAN1B,uDAQvB/V,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OATpE,yDAAH,sDAclBykB,EAAyB,yCAAG,uBAAArkB,EAAA,+EAExBgiB,EAAc8B,OAAO,2BAFG,sDAI9BziB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAL7D,wDAAH,qDASzB0kB,EAA4B,yCAAG,gCAAAtkB,EAAA,6DACnCoX,EADmC,EACnCA,cACAD,EAFmC,EAEnCA,OAFmC,kBAQ3B6K,EAAc8B,OAClB,sCACA,IAAIvpB,KAAK4c,EAAO,IAAIgN,cACpB,IAAI5pB,KAAK4c,EAAO,IAAIgN,cACpB/M,GAZ+B,uDAejC/V,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAhB1D,yDAAH,sDAoB5B2kB,EAAU,yCAAG,gCAAAvkB,EAAA,6DACjBwkB,EADiB,EACjBA,OACArN,EAFiB,EAEjBA,OAFiB,kBAQT6K,EAAc8B,OAClB,6BACA,IAAIvpB,KAAK4c,EAAO,IAAIgN,cACpB,IAAI5pB,KAAK4c,EAAO,IAAIgN,cACpBK,GAZa,uDAefnjB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAhB5E,yDAAH,sDAoBV6kB,EAAoB,yCAAG,gCAAAzkB,EAAA,6DAC3BwkB,EAD2B,EAC3BA,OACArN,EAF2B,EAE3BA,OAF2B,kBAQnB6K,EAAc8B,OAClB,8BACA,IAAIvpB,KAAK4c,EAAO,IAAIgN,cACpB,IAAI5pB,KAAK4c,EAAO,IAAIgN,cACpBK,GAZuB,uDAezBnjB,QAAQC,IAAR,MACAihB,GAAQ,SAAC3iB,GAAD,OAAY,CAAEsV,KAAM,IAAI3a,KAAQmpB,SAAUlb,GAAemb,MAAOjiB,QAAQ,EAAD,KAAvE,oBAAmF9B,OAhBlE,yDAAH,sDAoBpB8kB,EAAY,yCAAG,WAAOjb,GAAP,UAAAzJ,EAAA,2DACXkiB,EADW,cAEZzZ,GAAgBkc,OAFJ,SAMZlc,GAAgBmc,GANJ,SAUZnc,GAAgBoc,aAVJ,SAcZpc,GAAgBqc,qBAdJ,UAkBZrc,GAAgBsc,cAlBJ,mCAGTb,EAAYza,GAHH,0DAOT8a,EAAW9a,GAPF,2DAWTgb,EAAqBhb,GAXZ,6DAeT6a,EAA6B7a,GAfpB,6DAmBT2a,EAAmB3a,GAnBV,wFAAH,sDA4BZub,EAAW,WACf,OAAQ9C,GACN,KAAKzZ,GAAgBkc,OACnB,MAAO,2BACT,KAAKlc,GAAgBmc,GACnB,MAAO,cACT,KAAKnc,GAAgBoc,aACnB,MAAO,iCACT,KAAKpc,GAAgBqc,qBACnB,MAAO,0CACT,KAAKrc,GAAgBsc,cACnB,MAAO,yBAIPE,EAAqB,SAAC1d,GAC1B8a,GAAkB,GAElBF,EAAa5a,IAGT2d,GAAe,WACnB7C,GAAkB,GAClB,IAAMnQ,EAAS,eAAQ2Q,GACvB3Q,EAAUwQ,SAAW,GACrBI,EAAqB5Q,IASjBjB,GAAU,CACd,CACEvM,MAAO,YACPwM,UAAW,WACX/Q,IAAK,WACL6P,OAAQ,SAACrL,GAAD,OAAkB6D,GAAe7D,KAE3C,CACED,MAAO,UACPwM,UAAW,UACX/Q,IAAK,WAEP,CACEuE,MAAO,OACPwM,UAAW,OACX/Q,IAAK,OACL6P,OAAQ,SAACrL,GAAD,OAAkBsL,KAAOtL,GAAMwL,OAAO,uBAIlD,OACE,qCACE,cAAC,KAAD,CAAQ9C,QAASkW,EAAOzmB,KAAK,UAAU+a,SAAmC,eAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OAAhE,qBAGA,cAAC,KAAD,CAAQib,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OAA0ByQ,QAASwW,EAApE,kBAGA,cAAC,KAAD,CACEhM,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAS0W,EAFX,wBAOA,cAAC,KAAD,CACElM,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAS,WACP8L,EAAKgM,eAAe,CAAEC,QAAS,KAC/BH,EAAmBxc,GAAgBkc,SAJvC,0BAUA,cAAC,KAAD,CACE9M,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAS,WACP8L,EAAKgM,eAAe,CAAEC,QAAS,KAC/BH,EAAmBxc,GAAgBsc,gBAJvC,kCAUA,cAAC,KAAD,CACElN,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAO,wBAAE,uBAAArN,EAAA,6DACPmZ,EAAKgM,eAAe,CAAEC,QAAS,KADxB,SAEDf,IAFC,2CAFX,8CAUA,cAAC,KAAD,CACExM,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAS,WACP4X,EAAmBxc,GAAgBmc,KAHvC,yBASA,cAAC,KAAD,CACE/M,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAS,WACP4X,EAAmBxc,GAAgBoc,eAHvC,4CASA,cAAC,KAAD,CACEhN,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OACzByQ,QAAS,WACP8L,EAAKgM,eAAe,CAAEC,QAAS,KAC/BH,EAAmBxc,GAAgBqc,uBAJvC,qDAUA,cAAC,KAAD,CACEpgB,MAAM,+DACN2gB,UAAWrB,EACXsB,OAAO,MACPC,WAAW,KAJb,SAME,cAAC,KAAD,CAAQ1N,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OAAjC,mDAKF,cAAC,KAAD,CACE8H,MAAM,kDACN2gB,UAAWpB,EACXqB,OAAO,MACPC,WAAW,KAJb,SAME,cAAC,KAAD,CAAQ1N,SAAmC,kBAAZ,OAAbmK,QAAa,IAAbA,OAAA,EAAAA,EAAeplB,OAAjC,sCAKF,cAAC,KAAD,CAAQyQ,QAAS,kBAAMkV,EAAQ,KAA/B,wBAEA,cAAC,KAAD,CACEhQ,OAAQ,SAACnB,GAAD,uBAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAQ8D,KAAvB,YAA+B+H,KAAKuI,WAC5CvU,QAASA,GACTR,WAAY6R,EACZzQ,YAAY,EACZvO,UAAU,SAGZ,cAAC,KAAD,CACEoB,MAAOsgB,IACP5C,QAASA,EACTqD,OAAQ,CACN,cAAC,KAAD,CAAqBpY,QAAS6X,GAA9B,mBAAY,WAIdQ,SAAUR,GACV3gB,MAAO,IATT,SAWE,eAAC,KAAD,yBACEqF,SAAU8a,GACNjiB,GAFN,IAGE8J,cAAe,CACb6Y,QAASvC,EAAkBH,UAE7BvJ,KAAMA,EANR,UAQG+I,IAAczZ,GAAgBsc,eAC7B,cAAC,KAAKrd,KAAN,CACEmC,MAAM,SACNrJ,KAAK,SACLsJ,MAAO,CACL,CAAE0C,UAAU,EAAM9K,QAAS,kCAJ/B,SAOE,cAAC,GAAD,OAIFwgB,IAAczZ,GAAgBkc,QAC9BzC,IAAczZ,GAAgBqc,sBAC9B5C,IAAczZ,GAAgBsc,gBAC5B,qCACE,cAAC,KAAKrd,KAAN,CACEmC,MAAM,4BACNrJ,KAAK,OAFP,SAIE,cAAC,KAAD,CAAQ6M,QAAS,SAACsY,GACZA,GACFxM,EAAKgM,eAAe,CAAE/N,cAAeoL,SAK3C,cAAC,KAAK9a,KAAN,CACEmC,MAAM,cACNrJ,KAAK,gBACLsJ,MAAO,CACL,CAAE0C,UAAU,EAAM9K,QAAS,iCAJ/B,SAOE,cAAC,KAAD,CACE6F,KAAK,OACLmQ,YAAY,EACZkO,YAAY,EACZ3iB,MAAO,CAAEsB,MAAO,QAChBwF,YAAY,cACZzL,QAASA,EACTunB,SA/La,SAAC1kB,GAC9B,IAAM+Q,EAAS,eAAQ2Q,GACvB3Q,EAAU4T,OAAS3kB,EACnB2hB,EAAqB5Q,IAqLP,mBASG8Q,EAAmB3iB,cATtB,iBASG,EAA2B0b,YAT9B,aASG,EAAiC9a,KAAI,SAACwF,GAAD,OACpC,eAAC,KAAOmR,OAAR,CAA2BzW,MAAK,UAAKsF,EAAGoB,IAAxC,UACGpB,EAAGjG,KADN,KACciG,EAAGoB,GADjB,MAAoBpB,EAAGoB,eASjCqa,IAAczZ,GAAgBmc,IAC9B1C,IAAczZ,GAAgBoc,eAC5B,cAAC,KAAKnd,KAAN,CAAWmC,MAAM,UAAUrJ,KAAK,SAAhC,SACE,eAAC,KAAD,CACEyC,MAAO,CAAEsB,MAAO,QAChBwF,YAAY,GACZzL,QAASA,EAHX,UAKE,cAAC,KAAOsZ,OAAR,CAAkCzW,MAAOoB,EAAQiU,KAAjD,kBAAoBjU,EAAQiU,MAG5B,cAAC,KAAOoB,OAAR,CAAkCzW,MAAOoB,EAAQwjB,KAAjD,kBAAoBxjB,EAAQwjB,WAOpC,cAAC,KAAKre,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQoH,SAAS,SAAjB,SAA2Bgb,kBC5fxBgB,GARO,WACpB,OACE,cAAC,IAAD,CAAM1nB,SAAS,EAAf,SACE,cAAC,GAAD,OCUS2nB,GARkB,SAAC,GAAgC,IAA9BpZ,EAA6B,EAA7BA,SAAUnI,EAAmB,EAAnBA,MAAOwhB,EAAY,EAAZA,MACnD,OACE,cAAC,IAAD,CAAMxhB,MAAOA,EAAOwhB,MAAOA,EAA3B,SACGrZ,K,mDC0GQsZ,GA1Gc,SAACjV,GAC5B,IAAMkV,EAAcC,sBAEdzpB,EAAQ,CACZ0pB,WAAY,GACZC,eAAgB,IAGZC,EAAe,SACnB9W,EACA+W,EACAvV,GAEAuV,IAEA7pB,EAAM0pB,WAAa5W,EAAa,GAChC9S,EAAM2pB,eAAiBrV,GAQzB,MAAO,CACLwV,eAAgB,gBACd5X,EADc,EACdA,gBACAY,EAFc,EAEdA,aACA+W,EAHc,EAGdA,QACAE,EAJc,EAIdA,aAJc,OAMd,sBAAK1jB,MAAO,CAAEuC,QAAS,GAAvB,UACE,cAAC,KAAD,CACEohB,IAAKR,EACLrc,YAAW,iBAAYmH,GACvB/P,MAAOuO,EAAa,GACpBoC,SAAU,SAACnC,GAAD,OACRb,EAAgBa,EAAE2D,OAAOnS,MAAQ,CAACwO,EAAE2D,OAAOnS,OAAS,KAEtD0lB,aAAc,kBAAML,EAAa9W,EAAc+W,EAASvV,IACxDjO,MAAO,CAAE6jB,aAAc,EAAGjc,QAAS,WAErC,eAAC,KAAD,WACE,cAAC,KAAD,CACE/N,KAAK,UACLuQ,QAAS,kBAAMmZ,EAAa9W,EAAc+W,EAASvV,IACnDrB,KAAM,cAACkX,GAAA,EAAD,IACNja,KAAK,QACL7J,MAAO,CAAEsB,MAAO,IALlB,oBASA,cAAC,KAAD,CACE8I,QAAS,YAlCC,SAACsZ,GACnBA,IACA/pB,EAAM0pB,WAAa,GAiCTU,CAAYL,GACZF,KAEF3Z,KAAK,QACL7J,MAAO,CAAEsB,MAAO,IANlB,mBAUA,cAAC,KAAD,CACEzH,KAAK,OACLgQ,KAAK,QACLO,QAAS,WACPoZ,EAAQ,CAAEQ,eAAe,IAEzBrqB,EAAM0pB,WAAa5W,EAAa,GAChC9S,EAAM2pB,eAAiBrV,GAP3B,2BAeNgW,WAAY,SAACC,GAAD,OACV,cAACJ,GAAA,EAAD,CAAgB9jB,MAAO,CAAE8H,MAAOoc,EAAW,eAAYroB,MAEzDsoB,SAAU,SAACjmB,EAAYiQ,GAAb,OACRA,EAAOF,GACHE,EAAOF,GACJxV,WACA2rB,cACAC,SAASnmB,EAAMkmB,eAClB,IACNE,8BAA+B,SAACnF,GAC1BA,GACFwB,YAAW,kBAAMwC,EAAYoB,QAAQ3S,WAAU,MAGnD7E,OAAQ,SAACrL,GAAD,OACN/H,EAAM2pB,iBAAmBrV,EACvB,cAAC,KAAD,CACEuW,eAAgB,CAAEhjB,gBAAiB,UAAWe,QAAS,GACvDkiB,YAAa,CAAC9qB,EAAM0pB,YACpBqB,YAAU,EACVC,gBAAiBjjB,EAAOA,EAAKjJ,WAAa,KAG5CiJ,K,UCuBOkjB,GArHE,WAAO,IAAD,IACOxpB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,KAClBC,eAAe,IAJI,mBACdjQ,EADc,KACNkQ,EADM,OAOe3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,KAAM,OAC9BC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAbY,mBAOd3P,EAPc,KAOFoW,EAPE,OAgBY9pB,EAAU,UACtC/F,IAAUH,OAAS,CACtB0G,aAAc,CAACmC,GACflC,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,cACtB1K,QAAS,SAACpE,GACRwtB,EAAc,2BAAKpW,GAAN,IAAkB2P,MAAO/mB,EAAS4F,OAAO6nB,yBAXlD3pB,EAhBa,EAgBbA,YAAaD,EAhBA,EAgBAA,QAmCfuP,EAAO,SAACuD,GAAD,OACX,eAAC,IAAD,WACE,cAAC,IAAK1J,KAAN,UACE,cAAC,IAAD,CACEpE,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgB+sB,eAAvD,mBAAyE/W,QAAzE,IAAyEA,OAAzE,EAAyEA,EAAQvJ,IAFrF,mBADa,KASf,cAAC,IAAKH,KAAN,UACE,cAAC,KAAD,CACEhD,MAAM,6CACN2gB,UAAW,aACXK,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,qBADa,SAcbtU,EAAU,CAAC,yBAEbvM,MAAO,OACPwM,UAAW,QACRiV,GAAqB,SAJZ,IAKZlU,QAAQ,IALI,aAQZvN,MAAO,QACPwM,UAAW,QACXe,QAAQ,GACLkU,GAAqB,UAE1B,CACEzhB,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CAAUgX,QAASva,EAAKuD,GAAxB,SACE,cAAC,KAAD,UACE,cAACiX,GAAA,EAAD,WAQZ,OACE,cAAC,KAAD,CACEpX,QAASA,EACTR,YAAY,UAAAlS,EAAY8B,cAAZ,eAAoB0b,OAAQ,GACxCjK,SA7EsB,SACxBC,EACAC,EACAC,GACI,IAAD,IACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAUnW,OAAe,OAAPiW,QAAO,IAAPA,GAAA,UAAAA,EAASjW,aAAT,eAAgBga,QAAS,EAAzB,OAA6B/D,QAA7B,IAA6BA,OAA7B,EAA6BA,EAASjW,MAAM,GAAK,KACnEmW,EAAU1R,MAAc,OAAPwR,QAAO,IAAPA,GAAA,UAAAA,EAASxR,YAAT,eAAeuV,QAAS,EAAxB,OAA4B/D,QAA5B,IAA4BA,OAA5B,EAA4BA,EAASxR,KAAK,GAAK,KAE1DyR,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IA6DRL,WAAYA,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,WCxGIwb,GAnBO,WACpB,IAAMrc,EAAWC,cAQjB,OACE,cAAC,GAAD,CACExH,MAAO,QACPwhB,MAAO,cAAC,KAAD,CAAQ7Y,QATG,WACpBpB,EAAS,IAAD,OACF7Q,IAAgB0S,cADd,YAC+B1S,IAAgBmtB,eAO9C,oBAFT,SAIE,cAAC,GAAD,OCfeC,G,oIACnB,WACEnc,GADF,2FAGSxQ,IAAgBC,WACrB1D,IAAUH,MACVoU,IALJ,2C,oHASA,WACEA,GADF,2FAGSxQ,IAAgBG,UAAhB,UACF5D,IAAUH,MADR,YACiBoU,EAAKxE,IAC3BwE,IALJ,2C,4HASA,WACEoc,EACAltB,GAFF,2FAISM,IAAgBG,UAAhB,UACF5D,IAAUH,MADR,YACiBwwB,EADjB,oBAEL,CACEC,YAAantB,KAPnB,2C,gECsHaotB,GAhIc,SAAC,GAAoB,IAAlB1sB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EACjB9a,oBAAS,GADQ,mBACxCC,EADwC,KAC/B8K,EAD+B,KAGzC6C,EAAWC,cAEXzS,EAAM,yCAAG,WAAOgQ,GAAP,gBAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIYof,GAAY/uB,OAAOgQ,GAJ/B,UAILhP,EAJK,QAMPgP,EAAOlO,SANA,0CAQDqtB,EAAenuB,EAASwB,KAAKoE,OAAOwH,GAAI4B,EAAOlO,UAR9C,OAUPstB,EAAmB,WAVZ,kDAYPC,EAAkB,EAAD,IAZV,gCAeTD,EAAmB,WAfV,0DAkBXC,EAAkB,EAAD,IAlBN,iEAAH,sDAsBNC,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAILof,GAAYO,OAAZ,2BAAwB9sB,GAASwN,IAJ5B,WAMPA,EAAOlO,SANA,0CAQDqtB,EAAc,OAAC3sB,QAAD,IAACA,OAAD,EAACA,EAAM4L,GAAI4B,EAAOlO,UAR/B,OAUPstB,EAAmB,WAVZ,kDAYPC,EAAkB,EAAD,IAZV,gCAeTD,EAAmB,WAfV,0DAkBXC,EAAkB,EAAD,IAlBN,iEAAH,sDAsBNF,EAAc,yCAAG,WAAOH,EAAgBltB,GAAvB,UAAAyE,EAAA,+EACdwoB,GAAYI,eAAeH,EAAQltB,IADrB,2CAAH,wDAIdstB,EAAqB,SAACnnB,GAC1BD,IAAa6H,QAAQ,CAAE5H,QAAQ,iBAAD,OAAmBA,KAEjD0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgBnD,SAG1D6wB,EAAoB,SAAC1nB,GACzBgI,GAAW,GAEX/J,EAAckK,cAAcnI,IAGxBoI,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,2DAClB,OAAC/D,QAAD,IAACA,OAAD,EAACA,EAAM4L,IADW,gCAEfkhB,EAAOtf,GAFQ,6CAIfhQ,EAAOgQ,GAJQ,2CAAH,sDAQtB,OACE,eAAC,KAAD,2BACMhH,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,OACNrJ,KAAK,OACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,2BAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QACLsJ,MAAO,CACL,CAAE0C,UAAU,EAAM9K,QAAS,uBAC3B,CAAE5E,KAAM,QAAS4E,QAAS,mBAL9B,SAQE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,qBACNrJ,KAAK,WACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAO9K,QAAS,2BAHtC,SAKE,cAAC,KAAM+K,SAAP,MAEF,cAAC,KAAK/E,KAAN,CACEmC,MAAM,OACNrJ,KAAK,SACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,0BAHrC,SAKE,cAAC,KAAD,UACGrC,EAAc2pB,cAAc1gB,IAAerH,KAAI,SAACwF,GAAD,OAC9C,cAAC,KAAOmR,OAAR,CAAezW,MAAOsF,EAAGtF,MAAzB,SACGsF,EAAGjG,MAD+BiG,EAAGtF,cAM9C,cAAC,KAAKuG,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCCpGO2qB,GAzBM,WAAO,IAAD,EACjBphB,EAAO4O,cAAP5O,GADiB,EAEVoR,KAAKC,UAAbC,EAFkB,sBAIQhb,EAAU,UACtC/F,IAAUH,MAD4B,YACnB4P,GACtB,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJiB,EAIjBA,YAAaD,EAJI,EAIJA,QAUrB,OACE,cAAC,GAAD,CACEoG,MAASmD,EAAF,4BAAkBtJ,EAAY8B,cAA9B,aAAkB,EAAoBG,KAAtC,KAAgD,cADzD,SAGE,cAAC,KAAD,CAAMgN,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAUrC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,S,wCCvB7B+P,G,oIACnB,WACEjO,GADF,2FAGSpf,IAAgBC,WACrB1D,IAAUV,YACVujB,IALJ,2C,oHASA,WACEA,GADF,2FAGSpf,IAAgBG,UAAhB,UACF5D,IAAUV,aACbujB,IALJ,2C,8HASA,WACEkO,GADF,2FAGSttB,IAAgButB,YAAhB,UACFhxB,IAAUV,YADR,6BACwCyxB,KAJjD,2C,4HASA,WACEA,EACA5sB,GAFF,2FAISV,IAAgButB,YAAhB,UAAqDhxB,IAAUV,YAA/D,2BAA6FyxB,EAA7F,YAA6G5sB,KAJtH,2C,qIAOA,WACE4sB,GADF,2FAGSttB,IAAgButB,YAAhB,UAAqDhxB,IAAUV,YAA/D,kCAAoGyxB,KAH7G,2C,yHAMA,WACEA,EACA/mB,GAFF,2FAISvG,IAAgBG,UAAhB,UACF5D,IAAUV,YADR,YACuByxB,EADvB,gBAEL/mB,IANJ,2C,6FCyNainB,GA1OoB,SAAC,GAAoB,IAAlBptB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EACvB9a,oBAAS,GADc,mBAC9CC,EAD8C,KACrC8K,EADqC,OAEf/K,mBAAS,MAFM,mBAE9CirB,EAF8C,KAEjCC,EAFiC,OAGHlrB,mBAAc,MAHX,mBAG9CmrB,EAH8C,KAG3BC,EAH2B,KAK/Cxd,EAAWC,cAEXzS,EAAM,yCAAG,WAAOgQ,GAAP,oBAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIY8f,GAAkBzvB,OAAlB,2BAClBgQ,GADkB,IAErB4H,MAAO,OANE,UAIL5W,EAJK,QASP6uB,EATO,0CAWDI,EAAW,UACfjvB,EAASwB,YADM,iBACf,EAAeoE,cADA,aACf,EAAuBwH,GACvBxI,EAAc8C,gBAAgBmnB,IAbzB,OAgBPT,EAAmB,WAhBZ,kDAkBPC,EAAkB,EAAD,IAlBV,gCAqBTD,EAAmB,WArBV,0DAwBXC,EAAkB,EAAD,IAxBN,iEAAH,sDA4BNC,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIL8f,GAAkBH,OAAlB,2BAA8B9sB,GAASwN,IAJlC,WAMP6f,EANO,0CAQDI,EAAW,OACfztB,QADe,IACfA,OADe,EACfA,EAAM4L,GACNxI,EAAc8C,gBAAgBmnB,IAVzB,OAaPT,EAAmB,WAbZ,kDAePC,EAAkB,EAAD,IAfV,gCAkBTD,EAAmB,WAlBV,0DAqBXC,EAAkB,EAAD,IArBN,iEAAH,sDAyBNY,EAAW,yCAAG,WAAOP,EAAsB/mB,GAA7B,UAAApC,EAAA,+EACXkpB,GAAkBQ,YAAYP,EAAc/mB,IADjC,2CAAH,wDAIXymB,EAAqB,SAACnnB,GAC1BD,IAAa6H,QAAQ,CAAE5H,QAAQ,uBAAD,OAAyBA,KAEvD0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgB1D,eAG1DoxB,EAAoB,SAAC1nB,GACzBgI,GAAW,GAEX/J,EAAckK,cAAcnI,IAmBxBoI,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,2DAClB,OAAC/D,QAAD,IAACA,OAAD,EAACA,EAAM4L,IADW,gCAEfkhB,EAAOtf,GAFQ,6CAIfhQ,EAAOgQ,GAJQ,2CAAH,sDAQhBkgB,EACJ,qBAAKrmB,UAAU,QAAf,SACGhF,EAAU,cAACsrB,GAAA,EAAD,IAAsB,cAACC,GAAA,EAAD,MAIrC,OACE,eAAC,KAAD,2BACMpnB,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,OACNrJ,KAAK,OACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,uBAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,SACNrJ,KAAK,SACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,yBAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,mBACNrJ,KAAK,YAFP,SAIE,cAAC,KAAD,CAAQ+G,KAAK,OAAOtE,MAAO,CAAEsB,MAAO,QAAUulB,gBAAiB,CAAC,SAGlE,cAAC,KAAKpiB,KAAN,CACEmC,MAAM,kBACNrJ,KAAK,kBAFP,SAIE,cAAC,KAAD,MAGF,cAAC,KAAKkH,KAAN,CACEmC,MAAM,cACNrJ,KAAK,aAFP,SAIE,cAAC,KAAD,MAIF,cAAC,KAAKkH,KAAN,CACEmC,MAAM,aACNrJ,KAAK,YACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,6BAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,YACNrJ,KAAK,YACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,kCAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,oBACNrJ,KAAK,aACLupB,cAAc,UAHhB,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKriB,KAAN,CACEmC,MAAM,cACNrJ,KAAK,aACLupB,cAAc,UAHhB,SAKE,cAAC,KAAD,MAGF,eAAC,KAAKriB,KAAN,CAAWmC,MAAM,QAAjB,UACG5N,EAAKoV,OACJ,cAAC,KAAD,CAAO9M,MAAO,IAAK4C,IAAKlL,EAAKoV,QAE/B,sBACE/N,UAAU,iDACVL,MAAO,CAAEsB,MAAO,SAFlB,UAIE,cAAC,KAAD,CACEylB,OAAO,uBACPxpB,KAAK,SACLypB,SAAS,eACTC,gBAAgB,EAChBC,aAxHW,SAAC/nB,GAKpB,OAJIA,EAAK0K,KAAO,KAAO,KAAO,GAC5BrL,IAAa/G,MAAM,CAAEgH,QAAS,kCAGzB,GAoHCoQ,SAjHe,SAACsY,GACxBb,EAAea,EAAKhoB,MAEpB,IAAMioB,EAAS,IAAIC,WACnBD,EAAOE,iBAAiB,QAAQ,kBAAMd,EAAqBY,EAAOhqB,WAClEgqB,EAAOG,cAAcJ,EAAKhoB,OAsGpB,SAQGonB,EACC,8BACE,qBACEriB,IAAKqiB,EACLniB,IAAI,SACJpE,MAAO,CAAEqO,UAAW,IAAKmZ,SAAU,SAIvCd,IAIHL,GACC,cAACoB,GAAA,EAAD,CACEpnB,UAAU,eACV+J,QAAS,WACPkc,EAAe,MACfE,EAAqB,eAM/B,cAAC,KAAK/hB,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCC3NOqsB,GA3BY,WAAO,IAAD,EACvB9iB,EAAO4O,cAAP5O,GADuB,EAEhBoR,KAAKC,UAAbC,EAFwB,sBAIEhb,EAAU,UACtC/F,IAAUV,YAD4B,YACbmQ,GAC5B,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJuB,EAIvBA,YAAaD,EAJU,EAIVA,QAUrB,OACE,cAAC,GAAD,CACEoG,MACImD,EAAF,4BAAkBtJ,EAAY8B,cAA9B,aAAkB,EAAoBG,KAAtC,KAAgD,oBAFpD,SAKE,cAAC,KAAD,CAAMgN,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAgBrC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,SC8IzC0O,GAzJE,WAAO,IAAD,IACOxpB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,aAClBC,eAAe,EACfmH,cAAe,IALI,mBACdpX,EADc,KACNkQ,EADM,OAQe3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,KAAM,OAC9BC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAdY,mBAQd3P,EARc,KAQFoW,EARE,OAiBU9pB,EAAU,UACpC/F,IAAUV,aACb,CACEiH,aAAc,CAACmC,GACflC,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,cACtB1K,QAAS,SAACpE,GACRwtB,EAAc,2BAAKpW,GAAN,IAAkB2P,MAAO/mB,EAAS4F,OAAO6nB,yBAZtD3pB,EAjBe,EAiBfA,YAAaD,EAjBE,EAiBFA,QAoCbssB,EAAsB,yCAAG,WAAO3P,GAAP,gBAAAjb,EAAA,sEACvBkpB,GAAkB2B,iBAAiB5P,EAAWpT,IADvB,QAGvBqK,EAHuB,eAGDpR,IAClBoX,eAAgB,IAAI3d,MAAOif,kBACrCxI,EAAUkB,GALmB,2CAAH,sDAQtB4Y,EAAwB,yCAAG,WAAO7P,GAAP,gBAAAjb,EAAA,sEACzBkpB,GAAkB6B,sBAAsB9P,EAAWpT,IAD1B,QAGzBqK,EAHyB,eAGHpR,IAClBoX,eAAgB,IAAI3d,MAAOif,kBACrCxI,EAAUkB,GALqB,2CAAH,sDAQxBrE,EAAO,SAACuD,GAAD,OACX,eAAC,IAAD,WACE,cAAC,IAAK1J,KAAN,UACE,cAAC,IAAD,CACEpE,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBoW,qBAAvD,mBAA+EJ,QAA/E,IAA+EA,OAA/E,EAA+EA,EAAQvJ,IAF3F,mBADa,KASf,cAAC,IAAKH,KAAN,UACE,cAAC,KAAD,CACEhD,MAAM,6CACN2gB,UAAW,aACXK,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,qBADa,SAcbtU,EAAU,CACd,CACEvM,MAAO,YACPwM,UAAW,aACXe,QAAQ,GAJI,aAOZvN,MAAO,OACPwM,UAAW,QACRiV,GAAqB,SAE1B,CACEzhB,MAAO,SACPwM,UAAW,UAEb,CACExM,MAAO,cACPwM,UAAW,aACXe,QAAQ,EACRjC,OAAQ,SAACrL,EAAWyM,GAClB,OAAQ,cAAC,KAAD,CAAQuU,QAAShhB,EAAMmN,SAAU,kBAAM8Y,EAAuBxZ,QAG1E,CACE1M,MAAO,UACPwM,UAAW,aACXe,QAAQ,EACRjC,OAAQ,SAACrL,EAAWyM,GAClB,OAAQ,cAAC,KAAD,CAAQuU,QAAShhB,EAAMmN,SAAU,kBAAMgZ,EAAyB1Z,QAG5E,CACE1M,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CAAUgX,QAASva,EAAKuD,GAAxB,SACE,cAAC,KAAD,UACE,cAACiX,GAAA,EAAD,WAQZ,OACE,cAAC,KAAD,CACEvb,KAAK,QACLmE,QAASA,EACTR,YAAY,UAAAlS,EAAY8B,cAAZ,eAAoB0b,OAAQ,GACxCjK,SA/GsB,SACxBC,EACAC,EACAC,GACI,IAAD,EACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAU4T,QAAgB,OAAP9T,QAAO,IAAPA,GAAA,UAAAA,EAASxR,YAAT,eAAeuV,QAAS,EAAxB,OAA4B/D,QAA5B,IAA4BA,OAA5B,EAA4BA,EAASxR,KAAK,GAAK,KAE5DyR,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IAgGRL,WAAYA,EACZU,OAAO,KACPjU,QAASA,KC9IA0sB,GAnBa,WAC1B,IAAM/e,EAAWC,cAQjB,OACE,cAAC,GAAD,CACExH,MAAO,cACPwhB,MAAO,cAAC,KAAD,CAAQ7Y,QATG,WACpBpB,EAAS,IAAD,OACF7Q,IAAgB0S,cADd,YAC+B1S,IAAgB6vB,qBAO9C,oBAFT,SAIE,cAAC,GAAD,OChBeC,G,oIACnB,WACEra,GADF,2FAGShV,IAAgBC,WACrB1D,IAAUZ,aACVqZ,IALJ,2C,oHASA,WACEA,GADF,2FAGShV,IAAgBG,UAAhB,UACF5D,IAAUZ,cACbqZ,IALJ,2C,qHASA,WACEtU,GADF,2FAGSV,IAAgBoN,aAAhB,UACF7Q,IAAUZ,aADR,oBACgC+E,KAJzC,2C,qHAOA,WACEA,GADF,2FAGSV,IAAgButB,YAAhB,UACFhxB,IAAUZ,aADR,oBACgC+E,KAJzC,2C,8DCdM4uB,GAAaC,KAAbD,SAkHOE,GA3Ge,SAAC,GAAoB,IAAlBpvB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EAClB9a,oBAAS,GADS,mBACzCC,EADyC,KAChC8K,EADgC,KAG1C6C,EAAWC,cAEXzS,EAAM,yCAAG,WAAOgQ,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIY8hB,GAAezxB,OAAf,eAClBgQ,IALM,cAQXof,EAAmB,WARR,gDAUXC,EAAkB,EAAD,IAVN,yDAAH,sDAcNC,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIL8hB,GAAenC,OAAf,2BAA2B9sB,GAASwN,IAJ/B,OAKXof,EAAmB,WALR,gDAOXC,EAAkB,EAAD,IAPN,yDAAH,sDAWND,EAAqB,SAACnnB,GAC1BD,IAAa6H,QAAQ,CAAE5H,QAAQ,yBAAD,OAA2BA,KAEzD0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgBgT,WAG1D0a,EAAoB,SAAC1nB,GACzBgI,GAAW,GAEX/J,EAAckK,cAAcnI,IAGxBoI,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,2DAClB,OAAC/D,QAAD,IAACA,OAAD,EAACA,EAAM4L,IADW,gCAEfkhB,EAAOtf,GAFQ,6CAIfhQ,EAAOgQ,GAJQ,2CAAH,sDAQtB,OACE,eAAC,KAAD,2BACMhH,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,OACNrJ,KAAK,OACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,uBAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,SACNrJ,KAAK,SACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,yBAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,gBACNrJ,KAAK,eACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,gCAHrC,SAKE,cAAC,KAAD,CAAamW,SAAU5b,EAAKW,QAAUwL,GAAYQ,WAGpD,cAAC,KAAKlB,KAAN,CACEmC,MAAM,UACNrJ,KAAK,UACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,0BAHrC,SAKE,cAAC,KAAD,CAAOmW,SAAU5b,EAAKW,QAAUwL,GAAYQ,WAG9C,cAAC,KAAKlB,KAAN,CACEmC,MAAM,OACNrJ,KAAK,OAFP,SAIE,cAAC2qB,GAAD,MAGF,cAAC,KAAKzjB,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCCSO0sB,GAhHqB,SAAC,GAAqB,IAAD,EAAlBM,EAAkB,EAAlBA,YAAkB,EAC3BjtB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,aAClBC,eAAe,EACfwa,gBAAgB,EAChBrT,cAAe,IANsC,mBAChDpX,EADgD,KACxCkQ,EADwC,OASnB3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,OACxBC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAf8C,mBAShD3P,EATgD,KASpCoW,EAToC,OAkBxB9pB,EAAU,UACpC/F,IAAUV,aACb,CACEiH,aAAc,CAACmC,EAAQA,EAAOoX,eAC9BtZ,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,gBAVpBhL,EAlBiD,EAkBjDA,YAAaD,EAlBoC,EAkBpCA,QAcnBU,qBAAU,WAAO,IAAD,IACd6S,EAAW2P,MAAX,iBAAmBjjB,QAAnB,IAAmBA,GAAnB,UAAmBA,EAAa8B,cAAhC,aAAmB,EAAqB6nB,0BAAxC,QAA8D,IAC7D,CAAC3pB,IAEJ,IAmBMitB,EAAwB,yCAAG,WAAOrC,GAAP,gBAAAnpB,EAAA,sEACzBkpB,GAAkBuC,eAAetC,EAAcmC,EAAYzjB,IADlC,QAGzBqK,EAHyB,eAGHpR,IAClBoX,eAAgB,IAAI3d,MAAOmxB,aACrC1a,EAAUkB,GALqB,2CAAH,sDAQxBjB,EAAU,CACd,CACEvM,MAAO,YACPwM,UAAW,aACXe,QAAQ,EACRjC,OAAQ,SAACrL,GACP,OAAQ,mCAAGA,MAND,yBAUZD,MAAO,OACPwM,UAAW,QACRiV,GAAqB,SAZZ,IAaZnW,OAAQ,SAACrL,EAAWyM,GAClB,OAAQ,cAAC,IAAD,CACN9N,UAAU,SACVgQ,OAAO,SACPrV,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBoW,qBAAvD,mBAA+EJ,QAA/E,IAA+EA,OAA/E,EAA+EA,EAAQvJ,IAHnF,SAKLlD,OAIP,CACED,MAAO,SACPwM,UAAW,UAEb,CACExM,MAAO,oBACPwM,UAAW,KACXlB,OAAQ,SAAC/I,EAAQmK,GACf,OAAQ,cAAC,KAAD,CAAQuU,QAASvU,EAAOiG,SAASpd,QAAQqxB,EAAYzjB,KAAO,EAAGiK,SAAU,kBAAM0Z,EAAyBpa,EAAOvJ,UAK7H,OACE,cAAC,KAAD,CACEiF,KAAK,QACLmE,QAASA,EACTR,YAAY,UAAAlS,EAAY8B,cAAZ,eAAoB0b,OAAQ,GACxCjK,SApEsB,SACxBC,EACAC,EACAC,GACI,IAAD,EACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAU4T,QAAgB,OAAP9T,QAAO,IAAPA,GAAA,UAAAA,EAASxR,YAAT,eAAeuV,QAAS,EAAxB,OAA4B/D,QAA5B,IAA4BA,OAA5B,EAA4BA,EAASxR,KAAK,GAAK,KAE5DyR,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IAqDRL,WAAYA,EACZU,OAAO,KACPjU,QAASA,KCrHP2X,GAAYE,KAAZF,QAuCO0U,GArCY,WAAO,IAAD,EACvB9iB,EAAO4O,cAAP5O,GADuB,EAEhBoR,KAAKC,UAAbC,EAFwB,sBAIEhb,EAAU,UACtC/F,IAAUZ,aAD4B,YACZqQ,GAC7B,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJuB,EAIvBA,YAAaD,EAJU,EAIVA,QAUrB,OACE,cAAC,GAAD,CACEoG,MACImD,EAAF,4BAAkBtJ,EAAY8B,cAA9B,aAAkB,EAAoBG,KAAtC,KAAgD,eAFpD,SAKE,cAAC,KAAD,CAAMgN,SAAUlP,EAAhB,SACE,eAAC,KAAD,CAAM8X,iBAAiB,IAAvB,UACE,cAAC,GAAD,CAASC,IAAI,gBAAb,SACE,cAAC,GAAD,CAAWpa,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,KADZ,OAI9BtR,GACD,cAAC,GAAD,CAASwO,IAAI,cAAb,SACE,cAAC,GAAD,CAAiBiV,YAAa/sB,EAAY8B,UADb,aCiH5BwnB,GApIE,WAAO,IAAD,EACOxpB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,aAClBC,eAAe,IAJI,mBACdjQ,EADc,KACNkQ,EADM,OAOe3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,KAAM,OAC9BC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAbY,mBAOd3P,EAPc,KAOFoW,EAPE,OAgBU9pB,EAAU,UACpC/F,IAAUZ,cACb,CACEmH,aAAc,CAACmC,GACflC,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,gBAVpBhL,EAhBe,EAgBfA,YAAaD,EAhBE,EAgBFA,QAyCbuP,EAAO,SAACuD,GAAD,OACX,eAAC,IAAD,WACE,cAAC,IAAK1J,KAAN,UACE,cAAC,IAAD,CACEpE,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBuwB,kBAAvD,mBAA4Eva,QAA5E,IAA4EA,OAA5E,EAA4EA,EAAQvJ,IAFxF,mBADa,KASf,cAAC,IAAKH,KAAN,UACE,cAAC,KAAD,CACEhD,MAAK,mCAA8B0M,EAAOxU,QAAUwL,GAAYS,SAAW,UAAY,UAAlF,eACLwc,UAAW,WAtBO,IAACxU,KAsBgBO,GArB/BxU,QAAUwL,GAAYwjB,OAC9BV,GAAeW,QAAQhb,EAAMhJ,IAE7BqjB,GAAeY,QAAQjb,EAAMhJ,KAmBzB6d,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,SAOGnU,EAAOxU,QAAUwL,GAAYS,SAAW,UAAY,aAR1C,SAcboI,EAAU,CACd,CACEvM,MAAO,KACPwM,UAAW,KACXe,QAAQ,GAJI,aAOZvN,MAAO,OACPwM,UAAW,QACRiV,GAAqB,SAE1B,CACEzhB,MAAO,SACPwM,UAAW,UAEb,CACExM,MAAO,QACPwM,UAAW,QACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OAAQ,mCAAG1I,GAAe0I,EAAOxU,WAGrC,CACE8H,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CAAUgX,QAASva,EAAKuD,GAAxB,SACE,cAAC,KAAD,UACE,cAACiX,GAAA,EAAD,WAQZ,OACE,cAAC,KAAD,CACEvb,KAAK,QACLmE,QAASA,EACTR,WAAYlS,EAAY8B,OACxByR,SA9FsB,SACxBC,EACAC,EACAC,GACI,IAAD,EACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAU4T,QAAgB,OAAP9T,QAAO,IAAPA,GAAA,UAAAA,EAASxR,YAAT,eAAeuV,QAAS,EAAxB,OAA4B/D,QAA5B,IAA4BA,OAA5B,EAA4BA,EAASxR,KAAK,GAAK,KAE5DyR,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IA+ERL,WAAYA,EACZU,OAAO,KACPjU,QAASA,KC1HAytB,GAnBS,WACtB,IAAM9f,EAAWC,cAQjB,OACE,cAAC,GAAD,CACExH,MAAO,UACPwhB,MAAO,cAAC,KAAD,CAAQ7Y,QATG,WACpBpB,EAAS,IAAD,OACF7Q,IAAgB0S,cADd,YAC+B1S,IAAgB4wB,kBAO9C,oBAFT,SAIE,cAAC,GAAD,OCqHSnE,GAtHE,WAAO,IAAD,IACOxpB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,KAClBC,eAAe,IAJI,mBACdjQ,EADc,KACNkQ,EADM,OAOe3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,KAAM,OAC9BC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAbY,mBAOd3P,EAPc,KAOFoW,EAPE,OAgBY9pB,EAAU,UACtC/F,IAAUN,MAAQ,CACrB6G,aAAc,CAACmC,GACflC,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,cACtB1K,QAAS,SAACpE,GACRwtB,EAAc,2BAAKpW,GAAN,IAAkB2P,MAAO/mB,EAAS4F,OAAO6nB,yBAXlD3pB,EAhBa,EAgBbA,YAAaD,EAhBA,EAgBAA,QAkCfuP,EAAO,SAACuD,GAAD,OACX,eAAC,IAAD,WACE,cAAC,IAAK1J,KAAN,UACE,cAAC,IAAD,CACEpE,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBqX,eAAvD,mBAAyErB,QAAzE,IAAyEA,OAAzE,EAAyEA,EAAQvJ,IAFrF,mBADa,KASf,cAAC,IAAKH,KAAN,UACE,cAAC,KAAD,CACEhD,MAAM,6CACN2gB,UAAW,aACXK,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,qBADa,SAcbtU,EAAU,CAAC,aACfvM,MAAO,QACPwM,UAAW,QACXe,QAAQ,GACLkU,GAAqB,UAE1B,CACEzhB,MAAO,aACPwM,UAAW,YACXe,QAAQ,GAEV,CACEvN,MAAO,cACPwM,UAAW,aACXe,QAAQ,GAEV,CACEvN,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CAAUgX,QAASva,EAAKuD,GAAxB,SACE,cAAC,KAAD,UACE,cAACiX,GAAA,EAAD,WAOV,OACE,cAAC,KAAD,CACEpX,QAASA,EACTR,YAAY,UAAAlS,EAAY8B,cAAZ,eAAoB0b,OAAQ,GACxCjK,SA9EsB,SACxBC,EACAC,EACAC,GACI,IAAD,EACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAU4T,QAAgB,OAAP9T,QAAO,IAAPA,GAAA,UAAAA,EAAStN,aAAT,eAAgBqR,QAAS,EAAzB,OAA6B/D,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAStN,MAAM,GAAK,KAE9DuN,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IA+DRL,WAAYA,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,WCxHImf,GARM,WACnB,OACE,cAAC,GAAD,CAAcvnB,MAAO,OAArB,SACE,cAAC,GAAD,OCDewnB,G,oIACnB,WACEC,GADF,2FAGStwB,IAAgBC,WACrB1D,IAAUN,KACVq0B,IALJ,2C,oHASA,WACEA,GADF,2FAGStwB,IAAgBG,UAAhB,UACF5D,IAAUN,MACbq0B,IALJ,2C,mFCSaC,GAlBY,SAAC,GAA6B,IAA3Bpf,EAA0B,EAA1BA,QAASqf,EAAiB,EAAjBA,WAC/BC,EAASC,iBAAO,MAMtB,OACE,cAAC,KAAD,CACE3F,IAAK0F,EACLnrB,MAAO6L,EACPjT,OARW,CACbyyB,UAAU,GAQRC,OAAQ,SAACtrB,GAAD,OAAmBkrB,EAAWlrB,IACtC2Q,SAAU,gBCwID4a,GAhIc,SAAC,GAAoB,IAAlBzwB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EACjB9a,oBAAS,GADQ,mBACxCC,EADwC,KAC/B8K,EAD+B,OAEjB/K,mBAAS,IAFQ,mBAExC2O,EAFwC,KAE/Bqf,EAF+B,OAGThuB,mBAAS,MAHA,mBAGxCirB,EAHwC,KAG3BC,EAH2B,OAIGlrB,mBAAc,MAJjB,mBAIxCmrB,EAJwC,KAIrBC,EAJqB,KAMzCxd,EAAWC,cAEjBlN,qBAAU,WACRqtB,EAAU,OAACpwB,QAAD,IAACA,OAAD,EAACA,EAAM+Q,WAChB,CAAC/Q,IAEJ,IAAM8sB,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIL8iB,GAAYnD,OAAZ,uCAAwB9sB,GAASwN,GAAjC,IAAyCuD,aAJpC,OAMXvL,IAAa6H,QAAQ,CAAE5H,QAAS,0BAEhC0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgBtD,OAVnD,gDAYXsR,GAAW,GAEX/J,EAAckK,cAAd,MAdW,yDAAH,sDAkCNC,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,sEACjB+oB,EAAOtf,GADU,2CAAH,sDAIhBkgB,EACJ,qBAAKrmB,UAAU,QAAf,SACGhF,EAAU,cAACsrB,GAAA,EAAD,IAAsB,cAACC,GAAA,EAAD,MAIrC,OACE,eAAC,KAAD,2BACMpnB,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,wBAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,oBACNrJ,KAAK,mBACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,oCAHrC,SAKE,cAAC,KAAMypB,SAAP,CAAgBwB,KAAM,MAExB,cAAC,KAAKjlB,KAAN,CAAWmC,MAAM,UAAjB,SACE,cAAC,GAAD,CAAQmD,QAASA,GAAW,GAAIqf,WAAYA,MAE9C,eAAC,KAAK3kB,KAAN,CAAWmC,MAAM,QAAjB,UACG5N,EAAKoV,OACJ,cAAC,KAAD,CAAO9M,MAAO,IAAK4C,IAAG,UAAK3E,EAAL,qBAAgCvG,EAAKoV,SAE7D,sBACE/N,UAAU,iDACVL,MAAO,CAAEsB,MAAO,SAFlB,UAIE,cAAC,KAAD,CACEylB,OAAO,uBACPxpB,KAAK,SACLypB,SAAS,eACTC,gBAAgB,EAChBC,aA/DW,SAAC/nB,GAKpB,OAJIA,EAAK0K,KAAO,KAAO,KAAO,GAC5BrL,IAAa/G,MAAM,CAAEgH,QAAS,kCAGzB,GA2DCoQ,SAxDe,SAACsY,GACxBb,EAAea,EAAKhoB,MAEpB,IAAMioB,EAAS,IAAIC,WACnBD,EAAOE,iBAAiB,QAAQ,kBAAMd,EAAqBY,EAAOhqB,WAClEgqB,EAAOG,cAAcJ,EAAKhoB,OA6CpB,SAQGonB,EACC,8BACE,qBACEriB,IAAKqiB,EACLniB,IAAI,SACJpE,MAAO,CAAEqO,UAAW,IAAKmZ,SAAU,SAIvCd,IAGHL,GACC,cAACoB,GAAA,EAAD,CACEpnB,UAAU,eACV+J,QAAS,WACPkc,EAAe,MACfE,EAAqB,eAM/B,cAAC,KAAK/hB,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCCjHOsuB,GAzBM,WAAO,IAAD,EACjB/kB,EAAO4O,cAAP5O,GADiB,EAEVoR,KAAKC,UAAbC,EAFkB,sBAIQhb,EAAU,UACtC/F,IAAUN,KAD4B,YACpB+P,GACrB,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJiB,EAIjBA,YAAaD,EAJI,EAIJA,QAUrB,OACE,cAAC,GAAD,CACEoG,MAASmD,EAAF,4BAAkBtJ,EAAY8B,cAA9B,aAAkB,EAAoBqE,MAAtC,KAAiD,cAD1D,SAGE,cAAC,KAAD,CAAM8I,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAUrC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,SCvB7B0T,G,oIACnB,WACEC,GADF,2FAGSjxB,IAAgBC,WAAhB,UACF1D,IAAUR,aACbk1B,IALJ,2C,oHASA,WACEA,GADF,2FAGSjxB,IAAgBG,UAAhB,UACF5D,IAAUR,aACbk1B,IALJ,2C,qHASA,WACEC,GADF,2FAGSlxB,IAAgBG,UAAhB,UACF5D,IAAUP,oBADR,oBACuCk1B,GAC5C,OALJ,2C,oHASA,WAAoBA,GAApB,2FACSlxB,IAAgBoN,aAAhB,UACF7Q,IAAUR,YADR,YACuBm1B,GAC5B,OAHJ,2C,8DCiFaC,GAtGmB,SAAC,GAAoB,IAAlB/wB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EACtB9a,oBAAS,GADa,mBAC7CC,EAD6C,KACpC8K,EADoC,OAEtB/K,mBAAS,IAFa,mBAE7C2O,EAF6C,KAEpCqf,EAFoC,KAIpDrtB,qBAAU,WACRqtB,EAAU,OAACpwB,QAAD,IAACA,OAAD,EAACA,EAAM+Q,WAChB,CAAC/Q,IAEJ,IAAMxC,EAAM,yCAAG,WAAOgQ,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAILyjB,GAAkBpzB,OAAlB,2BAA8BgQ,GAA9B,IAAsCuD,aAJjC,OAMXvL,IAAa6H,QAAQ,CAAE5H,QAAQ,0BAE/B0H,GAAW,GARA,gDAUXA,GAAW,GAEX/J,EAAckK,cAAd,MAZW,yDAAH,sDAgBNwf,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAILyjB,GAAkB9D,OAAlB,uCAA8B9sB,GAASwN,GAAvC,IAA+CuD,aAJ1C,OAMXvL,IAAa6H,QAAQ,CAAE5H,QAAQ,0BAE/B0H,GAAW,GARA,gDAUXA,GAAW,GAEX/J,EAAckK,cAAd,MAZW,yDAAH,sDAgBNC,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,kEACnB/D,QADmB,IACnBA,OADmB,EACnBA,EAAM4L,IADa,gCAEfkhB,EAAOtf,GAFQ,6CAIfhQ,EAAOgQ,GAJQ,2CAAH,sDAQtB,OACE,eAAC,KAAD,2BACMhH,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,wBAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,cACNrJ,KAAK,cACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,8BAHrC,SAKE,cAAC,KAAMypB,SAAP,CAAgBwB,KAAM,MAExB,cAAC,KAAKjlB,KAAN,CACEmC,MAAM,YACNrJ,KAAK,WACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,4BAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,kBACNrJ,KAAK,iBACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,kCAHrC,SAKE,cAAC,KAAMypB,SAAP,CAAgBwB,KAAM,MAExB,cAAC,KAAKjlB,KAAN,CACEmC,MAAM,MACNrJ,KAAK,MACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,sBAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CAAWmC,MAAM,UAAjB,SACE,cAAC,GAAD,CAAQmD,QAASA,GAAW,GAAIqf,WAAYA,MAE9C,cAAC,KAAK3kB,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCCvEO2uB,GAzBW,WAAO,IAAD,IACtBplB,EAAO4O,cAAP5O,GADsB,EAEfoR,KAAKC,UAAbC,EAFuB,sBAIGhb,EAAU,UACtC/F,IAAUR,YAD4B,YACbiQ,GAC5B,CACElJ,aAAc,CAACkJ,GACfrJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAP3B9B,EAJsB,EAItBA,YAAaD,EAJS,EAITA,QAWrB,OACE,eAAC,GAAD,CAAcoG,MAAK,4BAAanG,EAAY8B,cAAzB,aAAa,EAAoBqE,MAAjC,KAAnB,UACE,cAAC0I,GAAA,EAAD,CAAQ1I,MAAK,4BAAanG,EAAY8B,cAAzB,aAAa,EAAoBqE,MAAjC,OACb,cAAC,KAAD,CAAM8I,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAerC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,UCzBlC+T,G,oIACnB,WACEC,GADF,2FAGStxB,IAAgBC,WACrB1D,IAAUjB,KACVg2B,IALJ,2C,oHASA,WACEA,GADF,2FAGStxB,IAAgBG,UAAhB,UACF5D,IAAUjB,MACbg2B,IALJ,2C,yHASA,WACEC,EACAhrB,GAFF,2FAISvG,IAAgBG,UAAhB,UACF5D,IAAUjB,KADR,wBAC4Bi2B,GACjChrB,IANJ,2C,sHAUA,WAAoBgrB,GAApB,2FACSvxB,IAAgBoN,aAAhB,UAAsD7Q,IAAUjB,KAAhE,YAAwEi2B,KADjF,2C,8DC8GavF,GA3HE,WAAO,IAAD,IACOxpB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,KAClBC,eAAe,EACfmH,cAAe,IALI,mBACdpX,EADc,KACNkQ,EADM,OAQe3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,KAAM,OAC9BC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAdY,mBAQd3P,EARc,KAQFoW,EARE,OAiBY9pB,EAAU,UACtC/F,IAAUjB,MACb,CACEwH,aAAc,CAACmC,EAAQA,EAAOoX,eAC9BtZ,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,cACtB1K,QAAS,SAACpE,GACRwtB,EAAc,2BAAKpW,GAAN,IAAkB2P,MAAO/mB,EAAS4F,OAAO6nB,yBAZpD3pB,EAjBa,EAiBbA,YAAaD,EAjBA,EAiBAA,QAoCfuP,EAAO,SAACuD,GAAD,OACX,eAAC,IAAD,WACE,cAAC,IAAK1J,KAAN,UACE,cAAC,IAAD,CACEpE,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgB8kB,eAAvD,mBAAyE9O,QAAzE,IAAyEA,OAAzE,EAAyEA,EAAQvJ,IAFrF,mBADa,KASf,cAAC,IAAKH,KAAN,UACE,cAAC,KAAD,CACEhD,MAAM,6CACN2gB,UAAW,WAAQ6H,GAAYG,OAAOjc,EAAOvJ,IAAKmJ,EAAU,2BAAKlQ,GAAN,IAAcoX,cAAesN,wBACxFE,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,qBADa,SAcbtU,EAAU,CAAC,aAEbvM,MAAO,QACPwM,UAAW,QACXe,QAAQ,GACLkU,GAAqB,UAE1B,CACEzhB,MAAO,aACPwM,UAAW,YACXe,QAAQ,GAEV,CACEvN,MAAO,cACPwM,UAAW,aACXe,QAAQ,GAEV,CACEvN,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CAAUgX,QAASva,EAAKuD,GAAxB,SACE,cAAC,KAAD,UACE,cAACiX,GAAA,EAAD,WAQZ,OACE,cAAC,KAAD,CACEpX,QAASA,EACTR,YAAY,UAAAlS,EAAY8B,cAAZ,eAAoB0b,OAAQ,GACxCjK,SAhFsB,SACxBC,EACAC,EACAC,GACI,IAAD,EACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAU4T,QAAgB,OAAP9T,QAAO,IAAPA,GAAA,UAAAA,EAAStN,aAAT,eAAgBqR,QAAS,EAAzB,OAA6B/D,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAStN,MAAM,GAAK,KAE9DuN,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IAiERL,WAAYA,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,WCjHIwgB,GAnBM,WACnB,IAAMrhB,EAAWC,cAQjB,OACE,cAAC,GAAD,CACExH,MAAO,OACPwhB,MAAO,cAAC,KAAD,CAAQ7Y,QATG,WACpBpB,EAAS,IAAD,OACF7Q,IAAgB0S,cADd,YAC+B1S,IAAgBmyB,eAO9C,oBAFT,SAIE,cAAC,GAAD,OCyMSC,GAlMc,SAAC,GAAoB,IAAlBvxB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EACjB9a,oBAAS,GADQ,mBACxCC,EADwC,KAC/B8K,EAD+B,OAEjB/K,mBAAS,IAFQ,mBAExC2O,EAFwC,KAE/Bqf,EAF+B,OAGThuB,wBAASS,GAHA,mBAGxCwqB,EAHwC,KAG3BC,EAH2B,OAIGlrB,mBAAc,MAJjB,mBAIxCmrB,EAJwC,KAIrBC,EAJqB,KAMzCxd,EAAWC,cAEjBlN,qBAAU,WACRqtB,EAAU,OAACpwB,QAAD,IAACA,OAAD,EAACA,EAAM+Q,WAChB,CAAC/Q,IAEJ,IAAMxC,EAAM,yCAAG,WAAOgQ,GAAP,oBAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIY8jB,GAAYzzB,OAAZ,2BAClBgQ,GADkB,IAErB4H,MAAO,IACPrE,aAPS,UAILvS,EAJK,QAUP6uB,EAVO,0CAYDI,EAAW,UACfjvB,EAASwB,YADM,iBACf,EAAeoE,cADA,aACf,EAAuBwH,GACvBxI,EAAc8C,gBAAgBmnB,IAdzB,OAiBPT,EAAmB,WAjBZ,kDAmBPC,EAAkB,EAAD,IAnBV,gCAsBTD,EAAmB,WAtBV,0DAyBXC,EAAkB,EAAD,IAzBN,iEAAH,sDA6BNC,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAIL8jB,GAAYnE,OAAZ,uCACD9sB,GACAwN,GAFC,IAGJuD,aAPS,WAUPsc,EAVO,0CAYDI,EAAW,OACfztB,QADe,IACfA,OADe,EACfA,EAAM4L,GACNxI,EAAc8C,gBAAgBmnB,IAdzB,OAiBPT,EAAmB,WAjBZ,kDAmBPC,EAAkB,EAAD,IAnBV,gCAsBTD,EAAmB,WAtBV,0DAyBXC,EAAkB,EAAD,IAzBN,iEAAH,sDA6BNY,EAAW,yCAAG,WAAOP,EAAsB/mB,GAA7B,UAAApC,EAAA,+EACXktB,GAAYxD,YAAYP,EAAc/mB,IAD3B,2CAAH,wDAIXymB,EAAqB,SAACnnB,GAC1BD,IAAa6H,QAAQ,CAAE5H,QAAQ,sBAAD,OAAwBA,KAEtD0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgBjE,QAG1D2xB,EAAoB,SAAC1nB,GACzBgI,GAAW,GAEX/J,EAAckK,cAAcnI,IAmBxBoI,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,2DAClB,OAAC/D,QAAD,IAACA,OAAD,EAACA,EAAM4L,IADW,gCAEfkhB,EAAOtf,GAFQ,6CAIfhQ,EAAOgQ,GAJQ,2CAAH,sDAQhBkgB,EACJ,qBAAKrmB,UAAU,QAAf,SACGhF,EAAU,cAACsrB,GAAA,EAAD,IAAsB,cAACC,GAAA,EAAD,MAIrC,OACE,eAAC,KAAD,2BACMpnB,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,wBAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,oBACNrJ,KAAK,mBACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,oCAHrC,SAKE,cAAC,KAAMypB,SAAP,CAAgBwB,KAAM,MAGxB,cAAC,KAAKjlB,KAAN,CAAWmC,MAAM,UAAjB,SACE,cAAC,GAAD,CAAQmD,QAASA,GAAW,GAAIqf,WAAYA,MAG9C,eAAC,KAAK3kB,KAAN,CAAWmC,MAAM,QAAjB,UACG5N,EAAKoV,OACJ,cAAC,KAAD,CAAO9M,MAAO,IAAK4C,IAAG,UAAK3E,EAAL,gBAA2BvG,EAAKoV,SAExD,sBACE/N,UAAU,iDACVL,MAAO,CAAEsB,MAAO,SAFlB,UAIE,cAAC,KAAD,CACEylB,OAAO,uBACPxpB,KAAK,SACLypB,SAAS,eACTC,gBAAgB,EAChBC,aAtEW,SAAC/nB,GAKpB,OAJIA,EAAK0K,KAAO,KAAO,KAAO,GAC5BrL,IAAa/G,MAAM,CAAEgH,QAAS,kCAGzB,GAkECoQ,SA/De,SAACsY,GACxBb,EAAea,EAAKhoB,MAEpB,IAAMioB,EAAS,IAAIC,WACnBD,EAAOE,iBAAiB,QAAQ,kBAAMd,EAAqBY,EAAOhqB,WAClEgqB,EAAOG,cAAcJ,EAAKhoB,OAoDpB,SAQGonB,EACC,8BACE,qBACEriB,IAAKqiB,EACLniB,IAAI,SACJpE,MAAO,CAAEqO,UAAW,IAAKmZ,SAAU,SAIvCd,IAGHL,GACC,cAACoB,GAAA,EAAD,CACEpnB,UAAU,eACV+J,QAAS,WACPkc,OAAezqB,GACf2qB,EAAqB,eAO/B,cAAC,KAAK/hB,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCCnLOmvB,GAzBM,WAAO,IAAD,EACjB5lB,EAAO4O,cAAP5O,GADiB,EAEVoR,KAAKC,UAAbC,EAFkB,sBAIQhb,EAAU,UACtC/F,IAAUjB,KAD4B,YACpB0Q,GACrB,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJiB,EAIjBA,YAAaD,EAJI,EAIJA,QAUrB,OACE,cAAC,GAAD,CACEoG,MAASmD,EAAF,4BAAkBtJ,EAAY8B,cAA9B,aAAkB,EAAoBqE,MAAtC,KAAiD,cAD1D,SAGE,cAAC,KAAD,CAAM8I,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAUrC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,SCvB7BuU,G,oIACnB,WACEC,GADF,2FAGS9xB,IAAgBG,UAAhB,UACF5D,IAAUF,gBADR,YAC2By1B,EAAc9lB,IAC9C8lB,IALJ,2C,8DC+DaC,GAzDwB,SAAC,GAAoB,IAAlB3xB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EAC3B9a,oBAAS,GADkB,mBAClDC,EADkD,KACzC8K,EADyC,KAGnD6C,EAAWC,cAEX6c,EAAM,yCAAG,WAAOtf,GAAP,UAAAzJ,EAAA,6DACboJ,GAAW,GADE,kBAILskB,GAAsB3E,OAAtB,2BAAkC9sB,GAASwN,IAJtC,OAMXhI,IAAa6H,QAAQ,CAAE5H,QAAS,8BAEhC0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgBlD,kBAVnD,gDAYXkR,GAAW,GAEX/J,EAAckK,cAAd,MAdW,yDAAH,sDAkBNC,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,sEACjB+oB,EAAOtf,GADU,2CAAH,sDAItB,OACE,eAAC,KAAD,2BACMhH,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,wBAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,cACNrJ,KAAK,cACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,oCAHrC,SAKE,cAAC,KAAD,MAEF,cAAC,KAAKgG,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCC5BOuvB,GAvBgB,WAC7B,IAAM3kB,EAAcuN,cADe,EAEpBwC,KAAKC,UAAbC,EAF4B,sBAIFhb,EAAU,UACtC/F,IAAUF,gBAD4B,mBACTgR,QADS,IACTA,OADS,EACTA,EAAQrB,IACxC,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,aAAY,OAACmK,QAAD,IAACA,OAAD,EAACA,EAAQrB,IACrBhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJ2B,EAI3BA,YAAaD,EAJc,EAIdA,QAUrB,OACE,cAAC,GAAD,CAAcoG,MAAK,kBAAa6D,GAAa,OAACW,QAAD,IAACA,OAAD,EAACA,EAAQrB,IAAnC,KAAnB,SACE,cAAC,KAAD,CAAM2F,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAoBrC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,SC6B7C0O,GA9CE,WAAO,IAAD,EACY1pB,EAAU,UAEtC/F,IAAUF,iBAAmB,CAChCsG,aAAc,GACdrD,OAAQkE,EAAckK,gBAJhBhL,EADa,EACbA,YAAaD,EADA,EACAA,QAOf2S,EAAU,CACd,CACEvM,MAAO,cACPwM,UAAW,eAEb,CACExM,MAAO,aACPwM,UAAW,YACXlB,OAAQ,SAACrL,GAAD,OAAkBsL,KAAOtL,GAAMwL,OAAO,sBAEhD,CACEzL,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,IAAD,CACE9N,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBlD,gBAAvD,mBAA0EkZ,QAA1E,IAA0EA,OAA1E,EAA0EA,EAAQvJ,IAFtF,qBAWR,OACE,cAAC,KAAD,CACEoJ,QAASA,EACTR,WAAYlS,EAAY8B,QAAU,GAClCwR,YAAY,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,WCzCIghB,GARgB,WAC7B,OACE,cAAC,GAAD,CAAcppB,MAAO,kBAArB,SACE,cAAC,GAAD,OCkESqpB,GAlEgB,WAAO,IAAD,EACL1vB,oBAAS,GADJ,mBAC5BC,EAD4B,KACnB8K,EADmB,OAET/K,mBAAS,IAFA,mBAE5B3D,EAF4B,KAErBsR,EAFqB,KAI7BxC,EAAgB,yCAAG,WAAOC,GAAP,kBAAAzJ,EAAA,6DACvBoJ,GAAW,GADY,kBAIfzN,KAAYqyB,sBAAZ,OAAkCvkB,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAQ1N,OAJ3B,OAMrB0F,IAAa6H,QAAQ,CACnB5H,QACE,uEAGJ0H,GAAW,GACX4C,EAAS,IAZY,gDAcrB5C,GAAW,GAEX4C,GAAS,2CAAQvR,gBAAR,mBAAkBwB,YAAlB,eAAwBsF,cAAc,KAAM,IAhBhC,yDAAH,sDAoBhB+K,EAAiB5R,EACrB,cAAC,KAAD,CAAOgH,QAAShH,EAAOoC,KAAK,QAAQwG,UAAU,SAC5C,KAEJ,OACE,qCACGgJ,EACD,eAAC,KAAD,CACE9L,KAAK,QACLkC,SAAU,CAAEE,KAAM,GAClBG,WAAY,CAAEH,KAAM,IACpBgH,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,QACNrJ,KAAK,QACLsJ,MAAO,CACL,CAAE0C,UAAU,EAAM9K,QAAS,uBAC3B,CAAE5E,KAAM,QAAS4E,QAAS,mBAL9B,SAQE,cAAC,KAAD,MAGF,eAAC,KAAKgG,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,UACE,qBAAKU,UAAU,OAAf,SACE,cAAC,IAAD,CACErF,GAAE,WAAMlD,IAASC,SACjBsI,UAAU,4CAFZ,sDAOF,cAAC,KAAD,CAAQxG,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,4BCjCK2vB,GApBqB,WAAO,IAAD,EACP9vB,EAAU,UACtC/F,IAAUR,YAD4B,YACbyQ,GAAgB6lB,iBAC5C,CACE1vB,aAAc,GACdrD,OAAQkE,EAAckK,gBAJlBhL,EADgC,EAChCA,YAAaD,EADmB,EACnBA,QAQrB,OACE,cAAC,GAAD,CACErC,KAAI,OAAEsC,QAAF,IAAEA,OAAF,EAAEA,EAAa8B,OACnB/B,QAASA,EACToG,MAAM,wBAHR,SAKE,cAAC,GAAD,OCVSypB,GAXY,WACzB,OACE,cAAC,IAAD,CAAKhhB,QAAQ,SAAb,SACE,eAAC,IAAD,WACE,cAACC,GAAA,EAAD,CAAQ1I,MAAM,oBACd,cAAC,GAAD,UCoFO0pB,GAvFiB,WAAO,IAAD,EACN/vB,oBAAS,GADH,mBAC7BC,EAD6B,KACpB8K,EADoB,OAEV/K,mBAAS,IAFC,mBAE7B3D,EAF6B,KAEtBsR,EAFsB,KAI5BI,EAASqK,cAATrK,KAEF5C,EAAgB,yCAAG,WAAOC,GAAP,kBAAAzJ,EAAA,6DACvBoJ,GAAW,GADY,kBAIfzN,KAAY0yB,qBAAqB,CACrC3F,YAAajf,EAAOgd,QACpB6H,mBAAoBliB,IAND,OASrB3K,IAAa6H,QAAQ,CACnB5H,QAAS,kDAGX0H,GAAW,GACX4C,EAAS,IAdY,gDAgBrB5C,GAAW,GACX4C,GAAS,2CAAQvR,gBAAR,mBAAkBwB,YAAlB,eAAwBsF,cAAc,KAAM,IAjBhC,yDAAH,sDA+BhB+K,EAAiB5R,EACrB,cAAC,KAAD,CAAOgH,QAAShH,EAAOoC,KAAK,QAAQwG,UAAU,SAC5C,KAEJ,OACE,qCACGgJ,EACD,eAAC,KAAD,CACE9L,KAAK,QACLkC,SAAU,CAAEE,KAAM,GAClBG,WAAY,CAAEH,KAAM,IACpBgH,SAAUJ,EAJZ,UAME,cAAC,KAAK9B,KAAN,CACEmC,MAAM,eACNrJ,KAAK,cACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,2BAHrC,SAKE,cAAC,KAAM+K,SAAP,MAGF,cAAC,KAAK/E,KAAN,CACEmC,MAAM,mBACNrJ,KAAK,kBACLsJ,MAAO,CACL,CAAE0C,UAAU,EAAM9K,QAAS,4BAnCb,SAAC,GAAD,IAAG6sB,EAAH,EAAGA,cAAH,MAA6B,CACnDC,UADmD,SACzCvnB,EAAQ9F,GAChB,OAAKA,GAASotB,EAAc,iBAAmBptB,EAIxCjG,QAAQC,OAAO,IAAIwoB,MAAM,2BAHvBzoB,QAAQ2D,cA4Bf,SAQE,cAAC,KAAM4N,SAAP,MAGF,eAAC,KAAK/E,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,UACE,qBAAKU,UAAU,OAAf,SACE,cAAC,IAAD,CACErF,GAAE,WAAMlD,IAASC,SACjBsI,UAAU,4CAFZ,sDAOF,cAAC,KAAD,CAAQxG,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,4BCtDKmwB,GApBsB,WAAO,IAAD,EACRtwB,EAAU,UACtC/F,IAAUR,YAD4B,YACbyQ,GAAgB6lB,iBAC5C,CACE1vB,aAAc,GACdrD,OAAQkE,EAAckK,gBAJlBhL,EADiC,EACjCA,YAAaD,EADoB,EACpBA,QAQrB,OACE,cAAC,GAAD,CACErC,KAAI,OAAEsC,QAAF,IAAEA,OAAF,EAAEA,EAAa8B,OACnB/B,QAASA,EACToG,MAAM,8BAHR,SAKE,cAAC,GAAD,OCVSwpB,GAXa,WAC1B,OACE,cAAC,IAAD,CAAK/gB,QAAQ,SAAb,SACE,eAAC,IAAD,WACE,cAACC,GAAA,EAAD,CAAQ1I,MAAM,qBACd,cAAC,GAAD,UCwEOmjB,GAvEE,WAAO,IAAD,EACOxpB,mBAAS,CACnCyS,iBAAkB,KAClBC,eAAe,IAHI,mBACdjQ,EADc,KACNkQ,EADM,OAMY7S,EAAU,UAEtC/F,IAAUf,iBAAmB,CAChCsH,aAAc,CAACmC,GACflC,MAAM,eACDkC,GAELtC,aAAc,GACdrD,OAAQkE,EAAckK,gBARhBhL,EANa,EAMbA,YAAaD,EANA,EAMAA,QA6Bf2S,EAAU,CAAC,aAEbvM,MAAO,UACPwM,UAAW,UACXe,QAAQ,GACLkU,GAAqB,YAE1B,CACEzhB,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,IAAD,CACE9N,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBszB,0BAAvD,mBAAoFtd,QAApF,IAAoFA,OAApF,EAAoFA,EAAQvJ,IAFhG,qBAWR,OACE,cAAC,KAAD,CACEoJ,QAASA,EACTR,WAAYlS,EAAY8B,QAAU,GAClCyR,SA7CsB,SACxBC,EACAC,EACAC,GACI,IAAD,EACGC,EAAc,eAAQpR,GAE5BoR,EAAUyc,SACD,OAAP3c,QAAO,IAAPA,GAAA,UAAAA,EAAS2c,eAAT,eAAkB5Y,QAAS,EAA3B,OAA+B/D,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAS2c,QAAQ,GAAK,KAEjD1c,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IA+BRL,YAAY,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,WChEI8hB,GARgB,WAC7B,OACE,cAAC,GAAD,CAAclqB,MAAO,kBAArB,SACE,cAAC,GAAD,OCDemqB,G,oIACnB,WACEC,GADF,2FAGSjzB,IAAgBG,UAAhB,UACF5D,IAAUf,gBADR,YAC2By3B,EAASjnB,IACzCinB,IALJ,2C,8DC2EaC,GApEuB,SAAC,GAAoB,IAAlB9yB,EAAiB,EAAjBA,KAAMkd,EAAW,EAAXA,KAAW,EAC1B9a,oBAAS,GADiB,mBACjDC,EADiD,KACxC8K,EADwC,OAE1B/K,mBAAS,IAFiB,mBAEjD2O,EAFiD,KAExCqf,EAFwC,KAIlDpgB,EAAWC,cAEjBlN,qBAAU,WACRqtB,EAAU,OAACpwB,QAAD,IAACA,OAAD,EAACA,EAAM+yB,eAChB,CAAC/yB,IAEJ,IAAMuN,EAAgB,yCAAG,WAAOC,GAAP,UAAAzJ,EAAA,6DACvBoJ,GAAW,GADY,kBAKfylB,GAAsB9F,OAAtB,uCACD9sB,GACAwN,GAFC,IAGJulB,YAAahiB,KARM,OAWrBvL,IAAa6H,QAAQ,CAAE5H,QAAS,8BAEhC0H,GAAW,GAEX6C,EAAS,IAAD,OAAK7Q,IAAgB0S,cAArB,YAAsC1S,IAAgB/D,kBAfzC,kDAiBrB+R,GAAW,GAEX/J,EAAckK,cAAd,MAnBqB,0DAAH,sDAuBtB,OACE,eAAC,KAAD,2BACM9G,GADN,IAEE0W,KAAMA,EACNxP,kBAAkB,EAClBC,SAAQ,yCAAE,WAAOH,GAAP,UAAAzJ,EAAA,sEAA6BwJ,EAAiBC,GAA9C,mFAAF,sDAJV,UAME,cAAC,KAAK/B,KAAN,CACEmC,MAAM,UACNrJ,KAAK,UACLsJ,MAAO,CAAC,CAAE0C,UAAU,EAAM9K,QAAS,0BAHrC,SAKE,cAAC,KAAD,MAGF,cAAC,KAAKgG,KAAN,CACEmC,MAAM,OACNrJ,KAAK,OAFP,SAIE,cAAC,KAAD,CAAOqX,UAAQ,MAGjB,cAAC,KAAKnQ,KAAN,CAAWmC,MAAM,UAAjB,SACE,cAAC,GAAD,CAAQmD,QAASA,GAAW,GAAIqf,WAAYA,MAG9C,cAAC,KAAK3kB,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,iCCzCO2wB,GAvBe,WAAO,IAAD,EAC1BpnB,EAAO4O,cAAP5O,GAD0B,EAEnBoR,KAAKC,UAAbC,EAF2B,sBAIDhb,EAAU,UACtC/F,IAAUf,gBAD4B,YACTwQ,GAChC,CACErJ,aAAc,CAAE6B,OAAQ,IACxBtB,YAAa8I,EACbhJ,QAAS,SAACpE,GAAD,OACP0e,EAAKgM,eAAe1qB,EAAS4F,WAN3B9B,EAJ0B,EAI1BA,YAAaD,EAJa,EAIbA,QAUrB,OACE,cAAC,GAAD,CAAcoG,MAAK,4BAAanG,EAAY8B,cAAzB,aAAa,EAAoBsuB,QAAjC,KAAnB,SACE,cAAC,KAAD,CAAMnhB,SAAUlP,EAAhB,SACE,cAAC,GAAD,CAAmBrC,KAAMsC,EAAY8B,OAAQ8Y,KAAMA,S,UC2C5C+V,GAzD+B,SAAC,GAAiC,IAA/BjzB,EAA8B,EAA9BA,KAAMkzB,EAAwB,EAAxBA,OAAQC,EAAgB,EAAhBA,UAAgB,EAC/C/wB,oBAAS,GADsC,mBACtEC,EADsE,KAC7D8K,EAD6D,KAGvE0iB,EAAO,yCAAG,uBAAA9rB,EAAA,6DACdoJ,GAAW,GADG,kBAINyjB,GAAkBf,QAAlB,OAA0B7vB,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAM4L,IAJ1B,OAMZpG,IAAa6H,QAAQ,CAAE5H,QAAQ,GAAD,OAAKzF,EAAKyI,MAAV,wBAE9B0qB,GAAU,GACVhmB,GAAW,GATC,gDAWZA,GAAW,GAEX/J,EAAckK,cAAd,MAbY,yDAAH,qDAiBPC,EAAgB,yCAAG,uBAAAxJ,EAAA,sEACjB8rB,IADiB,2CAAH,qDAIhB5G,EAAe,WACnBkK,GAAU,IAGZ,OACE,cAAC,KAAD,CACE1qB,MAAK,OAAEzI,QAAF,IAAEA,OAAF,EAAEA,EAAMyI,MACb0d,QAAS+M,EACT1J,OAAQ,CACN,cAAC,KAAD,CAAqBpY,QAAS6X,EAA9B,mBAAY,WAIdQ,SAAUR,EACV3gB,MAAO,IATT,SAWE,eAAC,KAAD,2BAAU9B,GAAV,IAA0BmH,SAAUJ,EAApC,UACE,cAAC,KAAK9B,KAAN,CAAWmC,MAAM,QAAjB,SAA0B5N,EAAKyI,QAC/B,cAAC,KAAKgD,KAAN,CAAWmC,MAAM,YAAjB,SAA8B5N,EAAKozB,WACnC,cAAC,KAAK3nB,KAAN,CAAWmC,MAAM,cAAjB,SAAgC5N,EAAK8Q,cACrC,cAAC,KAAKrF,KAAN,CAAWmC,MAAM,kBAAjB,SAAoC5N,EAAKqzB,iBACzC,cAAC,KAAK5nB,KAAN,CAAWmC,MAAM,MAAjB,SAAwB5N,EAAKjC,MAC7B,cAAC,KAAK0N,KAAN,CAAWmC,MAAM,UAAjB,SAA4B5N,EAAK+Q,UACjC,cAAC,KAAKtF,KAAN,CAAW3E,WAAY,CAAE2J,OAAQ,EAAG9J,KAAM,IAA1C,SACE,cAAC,KAAD,CAAQ9F,KAAK,UAAUkN,SAAS,SAAS1L,QAASA,EAAlD,8BC6IKupB,GA/KE,WAAO,IAAD,IACyBxpB,mBAC5C,IAFmB,mBACdkxB,EADc,KACGC,EADH,OAIOnxB,oBAAS,GAJhB,mBAId8wB,EAJc,KAINC,EAJM,OAMO/wB,mBAAS,CACnCynB,OAAQ,KACRhV,iBAAkB,KAClBC,eAAe,EACfmH,cAAe,IAVI,mBAMdpX,EANc,KAMNkQ,EANM,OAae3S,mBAAc,CAChDypB,iBAAiB,EACjBC,gBAAiB,CAAC,KAAM,KAAM,OAC9BC,gBAAiB,GACjBtF,SAAU,GACV8E,QAAS,EACThG,MAAO,IAnBY,mBAad3P,EAbc,KAaFoW,EAbE,OAsBY9pB,EAAU,UACtC/F,IAAUR,aACb,CACE+G,aAAc,CAACmC,EAAQA,EAAOoX,eAC9BtZ,MAAM,2BACDkC,GADA,IAEH4hB,SAAU7Q,EAAW6Q,SACrBC,WAAY9Q,EAAW2V,QAAU,IAEnChpB,aAAc,GACdrD,OAAQkE,EAAckK,gBAVlBhL,EAtBa,EAsBbA,YAAaD,EAtBA,EAsBAA,QAtBA,EAoC6CH,EAAU,UAEvE/F,IAAUc,6BAF6D,mBAE7Bq2B,QAF6B,IAE7BA,OAF6B,EAE7BA,EAAiB1nB,IAAM,CACpElJ,aAAc,QAAC4wB,QAAD,IAACA,OAAD,EAACA,EAAiB1nB,IAChCrJ,aAAc,GACdO,aAAY,OAACwwB,QAAD,IAACA,OAAD,EAACA,EAAiB1nB,IAC9B1M,OAAQkE,EAAckK,gBANHkmB,EApCA,EAoCblxB,YAAmCmxB,EApCtB,EAoCapxB,QAmC5BqxB,EACJ,cAAC,KAAD,CAAMniB,SAAUkiB,EAAhB,SACE,cAAC,KAAD,CACE5iB,KAAK,QACLnG,UAAQ,EACR8J,YAAuB,OAAXgf,QAAW,IAAXA,OAAA,EAAAA,EAAapvB,SAAU,GACnCqQ,WAAY,SAACtN,GAAD,OACV,eAAC,KAAQsE,KAAT,WACGtE,EAAKsB,MACN,cAAC,KAAWkd,KAAZ,CACEC,MAAI,EACJxU,QAAS,kBAhBiB+D,EAgBkBhO,EAftDgsB,GAAU,QACVI,EAAmBpe,GAFgB,IAACA,GAc5B,SAIE,cAAC2O,GAAA,EAAD,cAQNlS,EAAO,SAACuD,GAAD,OACX,eAAC,IAAD,WACE,cAAC,IAAK1J,KAAN,UACE,cAAC,IAAD,CACEpE,UAAU,SACVrF,GAAE,WAAM7C,IAAgB0S,cAAtB,YAAuC1S,IAAgBxD,YAAvD,mBAAsEwZ,QAAtE,IAAsEA,OAAtE,EAAsEA,EAAQvJ,IAFlF,mBADa,KAQf,cAAC,IAAKH,KAAN,UACE,cAAC,KAAD,CACEkoB,UAAU,WACVlrB,MAAM,UACNsI,QAAS2iB,EACTE,QAAQ,QAJV,SAME,cAAC,KAAD,CAAQ/yB,KAAK,OAAb,wBAPW,MAWM,IAApBsU,EAAO0e,UACN,cAAC,IAAKpoB,KAAN,UACE,cAAC,KAAD,CACEhD,MAAM,6CACN2gB,UAAW,WAAQwH,GAAkBQ,OAAOjc,EAAOvJ,IAAKmJ,EAAU,2BAAKlQ,GAAN,IAAcoX,cAAesN,wBAC9FE,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,qBADa,SAeftU,EAAU,CAAC,aAEbvM,MAAO,QACPwM,UAAW,SACRiV,GAAqB,UAJZ,aAOZzhB,MAAO,cACPwM,UAAW,eACRiV,GAAqB,gBAE1B,CACEzhB,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CAAUgX,QAASva,EAAKuD,GAAxB,SACE,cAAC,KAAD,UACE,cAACiX,GAAA,EAAD,WAQZ,OACE,qCACE,cAAC,KAAD,CACEpX,QAASA,EACTR,YAAY,UAAAlS,EAAY8B,cAAZ,eAAoB0b,OAAQ,GACxCjK,SAnHoB,SACxBC,EACAC,EACAC,GACI,IAAD,IACHgW,EAAc,2BAAKpW,GAAeE,IAElC,IAAMG,EAAc,eAAQpR,GAE5BoR,EAAU4T,QAAgB,OAAP9T,QAAO,IAAPA,GAAA,UAAAA,EAAStN,aAAT,eAAgBqR,QAAS,EAAzB,OAA6B/D,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAStN,MAAM,GAAK,KACpEwN,EAAUnF,aACD,OAAPiF,QAAO,IAAPA,GAAA,UAAAA,EAASjF,mBAAT,eAAsBgJ,QAAS,EAA/B,OAAmC/D,QAAnC,IAAmCA,OAAnC,EAAmCA,EAASjF,YAAY,GAAK,KAEzDkF,IACJC,EAAUpB,iBAAmBmB,EAAOE,MACpCD,EAAUnB,cAAkC,YAAZ,OAANkB,QAAM,IAANA,OAAA,EAAAA,EAAQG,QAGpCpB,EAAUkB,IAkGNL,WAAYA,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,UAEP,cAAC,GAAD,CACEqiB,OAAQA,EACRC,UAAWA,EACXnzB,KAAMszB,QC1KCQ,GAnBY,WACzB,IAAM9jB,EAAWC,cAQjB,OACE,cAAC,GAAD,CACExH,MAAO,gBACPwhB,MAAO,cAAC,KAAD,CAAQ7Y,QATG,WACpBpB,EAAS,IAAD,OACF7Q,IAAgB0S,cADd,YAC+B1S,IAAgB40B,qBAO9C,oBAFT,SAIE,cAAC,GAAD,OCmDSnI,GAhEE,WAAO,IAAD,EACiBxpB,mBAAc,MAD/B,mBACd4xB,EADc,KACDC,EADC,OAEqB7xB,mBAAiB,GAFtC,mBAEd6Z,EAFc,KAECiY,EAFD,OAIYhyB,EAAU,UACtC/F,IAAUhB,aACb,CACEuH,aAAc,CAACsxB,EAAa/X,GAC5B1Z,aAAc,GACdrD,OAAQkE,EAAckK,gBALlBhL,EAJa,EAIbA,YAAaD,EAJA,EAIAA,QASf8xB,EAAsB,yCAAG,WAAOvoB,GAAP,UAAA7H,EAAA,+EAErB+I,GAAkBskB,OAAOxlB,GAFJ,OAI3BpG,IAAa6H,QAAQ,CACnB5H,QAAQ,kCAGVyuB,GAAiB,IAAI51B,MAAOif,mBAC5B0W,EAAeroB,GATY,gDAW3BxI,EAAckK,cAAd,MAX2B,yDAAH,sDAetB0H,EAAU,CACd,CACEvM,MAAO,QACPwM,UAAW,SAEb,CACExM,MAAO,GACPwM,UAAW,KACXlB,OAAQ,SAACrL,EAAWyM,GAClB,OACE,cAAC,KAAD,CACE1M,MAAM,6CACN2gB,UAAW,kBAAM+K,EAAsB,OAAChf,QAAD,IAACA,OAAD,EAACA,EAAQvJ,KAChD6d,SAAU,aACVJ,OAAO,MACPC,WAAW,KALb,uBAcR,OACE,cAAC,KAAD,CACEtU,QAASA,EACTR,WAAYlS,EAAY8B,QAAU,GAClCwR,YAAY,EACZU,OAAO,KACPjU,QAASA,EACTwO,KAAK,WCvDIujB,GARY,WACzB,OACE,cAAC,GAAD,CAAc3rB,MAAO,aAArB,SACE,cAAC,GAAD,OCuCO4rB,GAAyB,CACpC,CACEC,KAAMx1B,IAASE,MACfu1B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS4R,gBACf6jB,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS01B,iBACfD,QAAS,cAAC,GAAD,MAIAE,GAAsB,CACjC,CACEH,KAAMx1B,IAASqT,QACfoiB,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS5C,eACfq4B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS+M,UACf0oB,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAASgN,YACfyoB,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS41B,UACfH,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS61B,gBACfJ,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS5D,KACfq5B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS81B,UACfL,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS+1B,UACfN,QAAS,cAAC,GAAD,KAEX,CACED,KAAMx1B,IAAS2P,gBACf8lB,QAAS,cAAC,GAAD,MAIAO,GAA0B,CACrC,CACER,KAAMn1B,IAAgBrE,UACtBy5B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB6S,WACtBuiB,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgBnD,MACtBu4B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB41B,UACtBR,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBmtB,YACtBiI,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgB1D,YACtB84B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBw1B,gBACtBJ,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB6vB,kBACtBuF,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgBgT,QACtBoiB,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB61B,aACtBT,QAAS,cAACU,GAAD,KAEX,CACEX,KAAMn1B,IAAgB4wB,eACtBwE,QAAS,cAACU,GAAD,KAGX,CACEX,KAAMn1B,IAAgBtD,KACtB04B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBu1B,UACtBH,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB+1B,YACtBX,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgBjE,KACtBq5B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBy1B,UACtBL,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBmyB,YACtBiD,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgBxD,YACtB44B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBg2B,gBACtBZ,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB40B,kBACtBQ,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgBlD,gBACtBs4B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBi2B,qBACtBb,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgB/D,gBACtBm5B,QAAS,cAAC,GAAD,KAEX,CACED,KAAMn1B,IAAgBk2B,qBACtBd,QAAS,cAAC,GAAD,KAGX,CACED,KAAMn1B,IAAgBwT,WACtB4hB,QAAS,cAAC,GAAD,MA0CEe,GAtCO,WACpB,OACE,eAAC,IAAD,WACE,eAAC,IAAD,CAAOhB,KAAK,KAAKC,QAAS,cAAC,GAAD,IAA1B,UACGE,GAAUzvB,KAAI,SAACuwB,EAAO3gB,GAAR,OACb,cAAC,IAAD,eAAyC2gB,GAAzC,UAAeA,EAAMjB,MAArB,OAA4B1f,OAE9B,cAAC,IAAD,CAAO0f,KAAK,GAAGC,QAAS,cAAC,GAAD,MACxB,cAAC,IAAD,CACED,KAAK,IACLC,QACE,cAAC,IAAD,CAAUvyB,GAAE,WAAMlD,IAASC,QAAf,YAA0BD,IAASE,OAASiD,SAAO,SAKrE,eAAC,IAAD,CAAOqyB,KAAI,WAAMx1B,IAASC,QAAf,MAA4Bw1B,QAAS,cAAC,GAAD,IAAhD,UACGF,GAAarvB,KAAI,SAACuwB,EAAO3gB,GAAR,OAChB,cAAC,IAAD,eAAyC2gB,GAAzC,UAAeA,EAAMjB,MAArB,OAA4B1f,OAE9B,cAAC,IAAD,CAAO0f,KAAK,IAAIC,QAAS,cAAC,IAAD,CAAUvyB,GAAE,UAAKlD,IAASE,cAGrD,cAAC,IAAD,CAAOu1B,QAAS,cAAC,EAAD,IAAhB,SACE,eAAC,IAAD,CAAOD,KAAK,kBAAkBC,QAAS,cAAC,GAAD,IAAvC,UACGO,GAAc9vB,KAAI,SAACuwB,EAAO3gB,GAAR,OACjB,cAAC,IAAD,eAAyC2gB,GAAzC,UAAeA,EAAMjB,MAArB,OAA4B1f,OAE9B,cAAC,IAAD,CACE0f,KAAK,IACLC,QAAS,cAAC,IAAD,CAAUvyB,GAAI7C,IAAgBrE,uBC9OpC06B,OAJf,WACE,OAAO,cAAC,GAAD,KCGTC,IAAS1hB,OACP,cAAC,IAAD,CAAUxS,MAAOA,EAAjB,SACE,cAAC,IAAD,UACE,cAAC,GAAD,QAGJm0B,SAASC,eAAe,U,sHCXL/1B,E,qIACnB,WACE7B,EACA4E,GAFF,0FAISrF,IAAKs4B,IAAI73B,EAAK,CACnBkP,OAAQtK,KALZ,2C,wHASA,WACE5E,EACAgD,EACAjD,GAHF,0FAKSR,IAAKu4B,KAAQ93B,EAAKgD,EAASjD,IALpC,2C,yHAQA,WACEC,EACAgD,EACAjD,GAHF,0FAKSR,IAAKw4B,IAAO/3B,EAAKgD,EAASjD,IALnC,2C,2HAQA,WACEC,EACAgD,EACAjD,GAHF,0FAKSR,IAAKy4B,MAASh4B,EAAKgD,EAASjD,IALrC,2C,4HAQA,WACEC,EACAD,GAFF,0FAISR,IAAK8zB,OAAUrzB,EAAKD,IAJ7B,2C","file":"static/js/main.96933b8f.chunk.js","sourcesContent":["import axios from \"axios\";\r\nimport { UIRoutes } from \"../router\";\r\n\r\nexport enum APIRoutesVersions {\r\n V1 = \"/v1\",\r\n}\r\n\r\nexport const APIRoutesBase = {\r\n DASHBOARD: `${APIRoutesVersions.V1}/Dashboard`,\r\n AD_BLOCKS: `${APIRoutesVersions.V1}/AdBlocks`,\r\n AUTH: `${APIRoutesVersions.V1}/Auth`,\r\n BLOG: `${APIRoutesVersions.V1}/Blog`,\r\n SUNSCRIBERS: `${APIRoutesVersions.V1}/Subscribes`,\r\n EMAIL_TEMPLATES: `${APIRoutesVersions.V1}/EmailTemplates`,\r\n CHANGE_LOGS: `${APIRoutesVersions.V1}/ChangeLogs`,\r\n CORRELATION: `${APIRoutesVersions.V1}/CORRELATION`,\r\n CRYPTO_INDEX: `${APIRoutesVersions.V1}/CryptoIndex`,\r\n FEAR_AND_GREED: `${APIRoutesVersions.V1}/FearGreed`,\r\n INSTRUMENTS: `${APIRoutesVersions.V1}/Instruments`,\r\n LAYOUT: `${APIRoutesVersions.V1}/Layout`,\r\n MAGIC_PAGES: `${APIRoutesVersions.V1}/MagicPages`,\r\n MAGIC_PAGES_HISTORY: `${APIRoutesVersions.V1}/MagicPagesHistory`,\r\n NEWS: `${APIRoutesVersions.V1}/News`,\r\n QUOTES: `${APIRoutesVersions.V1}/Quotes`,\r\n WIDGETS: `${APIRoutesVersions.V1}/Widgets`,\r\n USERS: `${APIRoutesVersions.V1}/Users`,\r\n SYSTEM_SETTINGS: `${APIRoutesVersions.V1}/SystemSettings`,\r\n CRYPTO_MARKETS: `${APIRoutesVersions.V1}/CryptoMarkets`,\r\n};\r\n\r\nexport const APIRoutes = {\r\n ...APIRoutesBase,\r\n DASHBOARD_INSTRUMENT_MOVEMENTS: `${APIRoutesBase.DASHBOARD}/instrumentMovements`,\r\n\r\n AUTH_LOGIN: `${APIRoutesBase.AUTH}/login`,\r\n AUTH_FORGOT_PASSWORD_REQUEST: `${APIRoutesBase.AUTH}/forgotPassword/request`,\r\n AUTH_FORGOT_PASSWORD_CHANGE: `${APIRoutesBase.AUTH}/forgotPassword/change`,\r\n\r\n INSTRUMENT_FOR_INDEX: `${APIRoutesBase.INSTRUMENTS}/forIndex`,\r\n\r\n LAYOUT_RIBBON: `${APIRoutesBase.LAYOUT}/ribbon`,\r\n\r\n CRYPTO_INDEX_CHART: `${APIRoutesBase.CRYPTO_INDEX}/Chart`,\r\n CRYPTO_INDEX_VOLATILITY_CHART: `${APIRoutesBase.CRYPTO_INDEX}/VolatilityChart`,\r\n CRYPTO_INDEX_PERIOD_PL_CHART: `${APIRoutesBase.CRYPTO_INDEX}/PeriodPLChart`,\r\n CRYPTO_INDEX_HEAT_MAP_CHART: `${APIRoutesBase.CRYPTO_INDEX}/HeatMapChart`,\r\n\r\n CRYPTO_MARKETS_CAPITALIZATION: `${APIRoutesBase.CRYPTO_MARKETS}/MarketCapitalization`,\r\n CRYPTO_MARKETS_COMPATIVE_PERFORMANCE: `${APIRoutesBase.CRYPTO_MARKETS}/CompativePerformance`,\r\n CRYPTO_MARKETS_TRADING_VOLUMES: `${APIRoutesBase.CRYPTO_MARKETS}/TradingVolumes`,\r\n\r\n MAGIC_PAGES_HISTORY_FOR_PAGE: `${APIRoutesBase.MAGIC_PAGES_HISTORY}/forPage`,\r\n\r\n NEWS_TAKE: `${APIRoutesBase.NEWS}/Take`,\r\n\r\n QUOTES_FOR_INSTRUMENT: `${APIRoutesBase.QUOTES}/ForInstrument`,\r\n QUOTES_VOLATILITY_FOR_INSTRUMENT: `${APIRoutesBase.QUOTES}/VolatilityForInstrument`,\r\n QUOTES_TRADING_VOLUMES_FOR_INSTRUMENT: `${APIRoutesBase.QUOTES}/TradingVolumesChartForInstrument`,\r\n};\r\n\r\nconst $api = axios.create({\r\n baseURL: process.env.REACT_APP_API_URL,\r\n});\r\n\r\nfunction getTimeZoneOffsetToUct() {\r\n return new Date().getTimezoneOffset() / 60;\r\n}\r\n\r\n$api.interceptors.request.use((config: any) => {\r\n if (config?.url.indexOf(\"login\") === -1) {\r\n config.headers.Authorization = `Bearer ${localStorage.getItem(\r\n \"48bceb9d-e1a4-4c77-9d62-9b0e9748c07e\"\r\n )}`;\r\n }\r\n config.headers.timezoneOffset = getTimeZoneOffsetToUct();\r\n\r\n return config;\r\n});\r\n\r\n$api.interceptors.response.use(\r\n (response: any) => {\r\n return response;\r\n },\r\n (error: any) => {\r\n if (error.response?.status === 401 || error.response?.status === 403) {\r\n window.location.href = `/${UIRoutes.ACCOUNT}/${UIRoutes.LOGIN}`;\r\n\r\n return Promise.reject(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\nexport default $api;\r\n","import React from \"react\";\r\n\r\nexport interface IRoute {\r\n path: string;\r\n element: React.ReactElement;\r\n}\r\n\r\nexport enum UIRoutes {\r\n ACCOUNT = \"account\",\r\n INDICES = \"indices/:ticker/:id\",\r\n CRYPTO_NEWS = \"news\",\r\n EDUCATION = \"education\",\r\n CRYPTO_MARKETS = \"crypto-markets\",\r\n FEAR_AND_GREED_INDEX = \"fear-and-greed\",\r\n BLOG = \"blog\",\r\n VIEW_BLOG_BASE = \"blog/article\",\r\n VIEW_BLOG = \"blog/article/:name/:id\",\r\n LOGIN = \"login\",\r\n FORGOT_PASSWORD = \"forgot-password\",\r\n RESTORE_PASSWORD = \"restore-password/:code\",\r\n VIEW_NEWS_BASE = \"news/article\",\r\n VIEW_NEWS = \"news/article/:name/:id\",\r\n VIEW_INSTRUMENT_BASE = \"instrument\",\r\n VIEW_INSTRUMENT = \"instrument/:name/:id\",\r\n VIEW_PAGE_BASE = \"pages\",\r\n VIEW_PAGE = \"pages/:name/:id\",\r\n HOME_CHANGE_LOG = \"home/changeLogs\",\r\n}\r\n\r\nexport enum PrivateUIRoutes {\r\n CONTROL_PANEL = \"controlpanel\",\r\n DASHBOARD = \"dashboard\",\r\n ENGINE_APP = \"engine\",\r\n\r\n USERS = \"users\",\r\n VIEW_USER_BASE = \"user/edit\",\r\n VIEW_USER = \"user/edit/:id\",\r\n CREATE_USER = \"user/create\",\r\n\r\n INSTRUMENTS = \"instruments\",\r\n VIEW_INSTRUMENT_BASE = \"instrument/edit\",\r\n VIEW_INSTRUMENT = \"instrument/edit/:id\",\r\n CREATE_INSTRUMENT = \"instrument/create\",\r\n\r\n INDICES = \"indices\",\r\n EDIT_INDICES_BASE = \"indices/edit\",\r\n EDIT_INDICES = \"indices/edit/:id\",\r\n CREATE_INDICES = \"indices/create\",\r\n\r\n NEWS = \"news\",\r\n VIEW_NEWS_BASE = \"news/edit\",\r\n VIEW_NEWS = \"news/edit/:id\",\r\n CREATE_NEWS = \"news/create\",\r\n\r\n BLOG = \"blog\",\r\n VIEW_BLOG_BASE = \"blog/edit\",\r\n VIEW_BLOG = \"blog/edit/:id\",\r\n CREATE_BLOG = \"blog/create\",\r\n\r\n MAGIC_PAGES = \"magic-page\",\r\n CREATE_MAGIC_PAGE = \"magic-page/create\",\r\n VIEW_MAGIC_PAGE = \"magic-page/:id\",\r\n\r\n SYSTEM_SETTINGS = \"system-settings\",\r\n VIEW_SYSTEM_SETTINGS = \"system-settings/:id\",\r\n\r\n EMAIL_TEMPLATES = \"email-templates\",\r\n VIEW_EMAIL_TEMPLATES_BASE = \"email-templates/edit\",\r\n VIEW_EMAIL_TEMPLATES = \"email-templates/edit/:id\",\r\n\r\n SUBSCRIBES = \"subscribes\",\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\n\r\nimport RequestsService from \"./requests.service\";\r\nimport { APIRoutes } from \"../http\";\r\nimport { IAuthResult } from \"../models/auth.model\";\r\nimport { IResultResponse } from \"../models/response/result.model\";\r\n\r\ninterface IForgotPasswordChange {\r\n newPassword: string;\r\n resetPasswordToken: string;\r\n}\r\n\r\nfunction createAuthHash(username: string, password: string) {\r\n return Buffer.from(`${username}:${password}`).toString(\"base64\");\r\n}\r\n\r\nexport default class AuthService {\r\n static async login(\r\n login: string,\r\n password: string\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.AUTH_LOGIN,\r\n null,\r\n {\r\n headers: {\r\n Authorization: `Basic ${createAuthHash(login, password)}`,\r\n },\r\n }\r\n );\r\n }\r\n\r\n static async forgotPasswordRequest(\r\n email: string\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n APIRoutes.AUTH_FORGOT_PASSWORD_REQUEST,\r\n { email }\r\n );\r\n }\r\n\r\n static async forgotPasswordChange(\r\n data: IForgotPasswordChange\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n APIRoutes.AUTH_FORGOT_PASSWORD_CHANGE,\r\n data\r\n );\r\n }\r\n}\r\n","import { ICurrentUser } from \"../../../models/current-user.model\";\r\n\r\nexport interface AuthState {\r\n isAuth: boolean;\r\n currentUser: ICurrentUser;\r\n}\r\n\r\nexport enum AuthActionEnum {\r\n SET_AUTH = \"SET_AUTH\",\r\n SET_CURRENT_USER = \"SET_CURRENT_USER\",\r\n}\r\n\r\nexport interface SetAuthAction {\r\n type: AuthActionEnum.SET_AUTH;\r\n payload: boolean;\r\n}\r\n\r\nexport interface SetCurrentUserAction {\r\n type: AuthActionEnum.SET_CURRENT_USER;\r\n payload: ICurrentUser;\r\n}\r\n\r\nexport type AuthAction = SetAuthAction | SetCurrentUserAction;\r\n","import { ICurrentUser } from \"../../../models/current-user.model\";\r\nimport { AuthAction, AuthActionEnum, AuthState } from \"./types\";\r\n\r\nconst initialState: AuthState = {\r\n isAuth: false,\r\n currentUser: {} as ICurrentUser,\r\n};\r\n\r\nexport default function authReducer(\r\n state = initialState,\r\n action: AuthAction\r\n): AuthState {\r\n switch (action.type) {\r\n case AuthActionEnum.SET_AUTH:\r\n return { ...state, isAuth: action.payload };\r\n case AuthActionEnum.SET_CURRENT_USER:\r\n return { ...state, currentUser: action.payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n","export interface CIState {\r\n indexId: any;\r\n chartData: any;\r\n}\r\n\r\nexport enum CIActionEnum {\r\n SET_INDEX_ID = \"SET_INDEX_ID\",\r\n SET_CHART_DATA_TYPE = \"SET_CHART_DATA_TYPE\",\r\n}\r\n\r\nexport interface SetIndexIdAction {\r\n type: CIActionEnum.SET_INDEX_ID;\r\n payload: any;\r\n}\r\n\r\nexport interface SetChartDataAction {\r\n type: CIActionEnum.SET_CHART_DATA_TYPE;\r\n payload: any;\r\n}\r\n\r\nexport type CIAction = SetIndexIdAction | SetChartDataAction;\r\n","import { CIAction, CIActionEnum, CIState } from \"./types\";\r\n\r\nconst initialState: CIState = {\r\n indexId: 0,\r\n chartData: null,\r\n};\r\n\r\nexport default function authReducer(\r\n state = initialState,\r\n action: CIAction\r\n): CIState {\r\n switch (action.type) {\r\n case CIActionEnum.SET_INDEX_ID:\r\n return { ...state, indexId: action.payload };\r\n case CIActionEnum.SET_CHART_DATA_TYPE:\r\n return { ...state, chartData: action.payload };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import authReducer from \"./auth\";\r\nimport ciReducer from \"./ci\";\r\n\r\nexport default Object.assign(\r\n {},\r\n {\r\n auth: authReducer,\r\n ci: ciReducer,\r\n }\r\n);\r\n","import { applyMiddleware, combineReducers, createStore } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport reducers from \"./reducers\";\r\n\r\nconst rootReducer = combineReducers(reducers);\r\n\r\nexport const store = createStore(rootReducer, applyMiddleware(thunk));\r\n\r\nexport type RootState = ReturnType;\r\nexport type AppDispatch = typeof store.dispatch;\r\n","import React, { FC } from \"react\";\r\nimport { Navigate, Outlet, useLocation } from \"react-router-dom\";\r\nimport { UIRoutes } from \".\";\r\n\r\ninterface IProtectedRouteProps {\r\n path?: string;\r\n element?: React.ReactElement;\r\n}\r\n\r\nconst AuthGuard: FC = (props) => {\r\n const location = useLocation();\r\n\r\n const isAuth = !!JSON.parse(localStorage.getItem(\"app.Authorized\") as string);\r\n\r\n const hasToken = !!localStorage.getItem(\r\n \"48bceb9d-e1a4-4c77-9d62-9b0e9748c07e\"\r\n );\r\n\r\n const isUserAuthorized = hasToken ? true : isAuth;\r\n\r\n if (!isUserAuthorized) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return ;\r\n};\r\nexport default AuthGuard;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport { useState, useEffect } from \"react\";\r\nimport RequestsService from \"../services/requests.service\";\r\n\r\ninterface IOptions {\r\n dependencies?: any[];\r\n query?: any;\r\n defaultValue?: any;\r\n resolve?: (response?: any) => void;\r\n reject?: (error?: any) => void;\r\n condition?: boolean;\r\n}\r\n\r\ninterface IState {\r\n loading: boolean;\r\n fetchedData: T;\r\n}\r\n\r\nconst useHttpGet = (url: string, newOptions?: IOptions): IState => {\r\n const [state, setState] = useState>(() => ({\r\n loading: false,\r\n fetchedData: newOptions?.defaultValue || null,\r\n }));\r\n\r\n const options: IOptions = {\r\n dependencies: [],\r\n query: null,\r\n defaultValue: null,\r\n resolve: undefined,\r\n reject: undefined,\r\n condition: true,\r\n ...newOptions,\r\n };\r\n\r\n useEffect(() => {\r\n if (options?.condition) {\r\n setState((s) => ({ ...s, loading: true }));\r\n\r\n RequestsService.getMethod(url, options?.query)\r\n .then((response) => {\r\n setState({\r\n loading: false,\r\n fetchedData: response.data,\r\n });\r\n options?.resolve && options?.resolve(response.data);\r\n })\r\n .catch((error) => {\r\n setState((s) => ({ ...s, loading: false }));\r\n options?.reject && options?.reject(error);\r\n });\r\n }\r\n\r\n return () => {\r\n setState({ loading: false, fetchedData: [] as any });\r\n };\r\n }, options.dependencies);\r\n\r\n return state;\r\n};\r\n\r\nexport default useHttpGet;\r\n","import { notification } from \"antd\";\r\n\r\nexport default class CommonService {\r\n static toLocalNum(number: number, options: any = {}): string {\r\n try {\r\n return number?.toLocaleString(\"en\", {\r\n maximumFractionDigits: 3,\r\n ...options,\r\n });\r\n } catch (err) {\r\n return \"0\";\r\n }\r\n }\r\n\r\n static getProperty(data: any, property: string) {\r\n if (data.hasOwnProperty(property)) {\r\n return data[property];\r\n }\r\n return \"N/A\";\r\n }\r\n\r\n static sortByDate(array: any[] = [], parram = \"date\", sortAsc = true) {\r\n try {\r\n if (sortAsc) {\r\n return array.sort(\r\n (a, b) =>\r\n new Date(a[parram]).getTime() - new Date(b[parram]).getTime()\r\n );\r\n } else {\r\n return array.sort(\r\n (a, b) =>\r\n new Date(b[parram]).getTime() - new Date(a[parram]).getTime()\r\n );\r\n }\r\n } catch (err) {\r\n return array;\r\n }\r\n }\r\n\r\n static groupBy(array: any[] = [], key: any) {\r\n // Return the end result\r\n return array.reduce((result, currentValue) => {\r\n // If an array already present for key, push it to the array. Else create an array and push the object\r\n (result[currentValue[key]] = result[currentValue[key]] || []).push(\r\n currentValue\r\n );\r\n // Return the current iteration `result` value, this will be taken as next iteration `result` value and accumulate\r\n return result;\r\n }, {}); // empty object is the initial value for result object\r\n }\r\n\r\n static numberColor = (number: number) => {\r\n if (number < 0) {\r\n return \"number-minus\";\r\n } else if (number === 0) {\r\n return \"number-zero\";\r\n } else {\r\n return \"number-plus\";\r\n }\r\n };\r\n\r\n static replaceSymbol(name: string): string {\r\n try {\r\n return name\r\n .trim()\r\n .replaceAll(\" \", \"-\")\r\n .replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}‘’]/g, \"\")\r\n .toLocaleLowerCase();\r\n } catch (err) {\r\n return name;\r\n }\r\n }\r\n\r\n static getNameValues(enumType: {\r\n [s: number]: string;\r\n }): Array<{ value: number; name: string }> {\r\n return Object.keys(enumType)\r\n .filter((key) => !isNaN(parseInt(key)))\r\n .map((key) => {\r\n const val = parseInt(key);\r\n const name = enumType[val];\r\n return {\r\n value: val,\r\n name: name,\r\n };\r\n });\r\n }\r\n\r\n static showAllErrors(errors: any) {\r\n console.log(\"errors\", errors);\r\n try {\r\n errors?.response?.data?.errorMessages.forEach((error: string) => {\r\n notification.error({ message: error });\r\n });\r\n } catch (err) {\r\n notification.error({ message: \"Something went wrong\" });\r\n }\r\n }\r\n\r\n static prepareFormData = (file: File): any => {\r\n const formData = new FormData();\r\n return formData.append(\"file\", file);\r\n };\r\n\r\n static LightenDarkenColor(col: string, amt: number) {\r\n let usePound = false;\r\n if (col[0] === \"#\") {\r\n col = col.slice(1);\r\n usePound = true;\r\n }\r\n let num = parseInt(col, 16);\r\n let r = (num >> 16) + amt;\r\n if (r > 255) {\r\n r = 255;\r\n } else if (r < 0) {\r\n r = 0;\r\n }\r\n let b = ((num >> 8) & 0x00ff) + amt;\r\n if (b > 255) {\r\n b = 255;\r\n } else if (b < 0) {\r\n b = 0;\r\n }\r\n let g = (num & 0x0000ff) + amt;\r\n if (g > 255) {\r\n g = 255;\r\n } else if (g < 0) {\r\n g = 0;\r\n }\r\n return (usePound ? \"#\" : \"\") + (g | (b << 8) | (r << 16)).toString(16);\r\n }\r\n}\r\n","export const BASE_IMAGE_URL = \"http://api.cryptoindices.io\";\r\nexport const formItemLayout = {\r\n labelCol: {\r\n xs: { span: 24 },\r\n sm: { span: 5 },\r\n md: { span: 5 },\r\n },\r\n wrapperCol: {\r\n xs: { span: 24 },\r\n sm: { span: 19 },\r\n md: { span: 19 },\r\n },\r\n};\r\n\r\nexport const currencyFormat = {\r\n style: \"currency\",\r\n currency: \"USD\",\r\n};\r\n","export enum CITypes {\r\n CI10 = 1,\r\n CI20 = 2,\r\n}\r\n\r\nexport const PeriodIndexTypes: any = {\r\n \"1d\": 0,\r\n \"1w\": 1,\r\n \"1m\": 2,\r\n \"3m\": 3,\r\n \"6m\": 4,\r\n \"1y\": 5,\r\n all: 6,\r\n};\r\n\r\nexport const PeriodTypesArray: string[] = [\r\n \"1d\",\r\n \"1w\",\r\n \"1m\",\r\n \"3m\",\r\n \"6m\",\r\n \"1y\",\r\n \"all\",\r\n];\r\n\r\nexport enum CorrelationBases {\r\n Daily = 1,\r\n Monthly = 2,\r\n Annual = 3\r\n};\r\n\r\nexport enum RollingCorrelationPeriods {\r\n _20TradingDays = 20,\r\n _30TradingDays = 30,\r\n _40TradingDays = 40,\r\n _50TradingDays = 50,\r\n _60TradingDays = 60,\r\n _70TradingDays = 70,\r\n _80TradingDays = 80,\r\n _90TradingDays = 90,\r\n _100TradingDays = 100,\r\n _110TradingDays = 110,\r\n _120TradingDays = 120,\r\n};\r\n\r\nexport const RollingCorrelationPeriodsArray: any[] = [\r\n {\r\n title: \"20 Trading Days\",\r\n value: 20,\r\n },\r\n {\r\n title: \"30 Trading Days\",\r\n value: 30,\r\n },\r\n {\r\n title: \"40 Trading Days\",\r\n value: 40,\r\n },\r\n {\r\n title: \"50 Trading Days\",\r\n value: 50,\r\n },\r\n {\r\n title: \"60 Trading Days\",\r\n value: 60,\r\n },\r\n {\r\n title: \"70 Trading Days\",\r\n value: 70,\r\n },\r\n {\r\n title: \"80 Trading Days\",\r\n value: 80,\r\n },\r\n {\r\n title: \"90 Trading Days\",\r\n value: 90,\r\n },\r\n {\r\n title: \"100 Trading Days\",\r\n value: 100,\r\n },\r\n {\r\n title: \"110 Trading Days\",\r\n value: 110,\r\n },\r\n {\r\n title: \"120 Trading Days\",\r\n value: 120\r\n }\r\n];\r\n\r\nexport enum RecordState {\r\n Pending = 0,\r\n Active = 2,\r\n Locked = 4,\r\n Archived = 6,\r\n Deleted = 10,\r\n}\r\n\r\nexport const GetRecordState = (state: RecordState): string => {\r\n switch (state) {\r\n case RecordState.Pending:\r\n return 'Pending';\r\n\r\n case RecordState.Locked:\r\n return 'Locked';\r\n\r\n case RecordState.Archived:\r\n return 'Archived';\r\n\r\n case RecordState.Deleted:\r\n return 'Deleted';\r\n\r\n default:\r\n return 'Active';\r\n };\r\n}\r\n\r\nexport enum MagicPagesTypes {\r\n Home = 1,\r\n Contacts = 2,\r\n Copyright = 3,\r\n Terms = 4,\r\n Ci50 = 5,\r\n PrivacyPolicy = 6,\r\n CryptoMarkets = 7,\r\n Blog = 8,\r\n Login = 9,\r\n Register = 10,\r\n RestorePassword = 11,\r\n Widgets = 12,\r\n Advertising = 13,\r\n Methodology = 14,\r\n Press = 15,\r\n Api = 16,\r\n Education = 17,\r\n ChangeLogs = 18,\r\n News = 19,\r\n FearAndGreedIndex = 20,\r\n NotInUse1 = 21,\r\n NotInUse2 = 22,\r\n Resources = 23,\r\n}\r\n\r\nexport enum UserRoleTypes {\r\n Admin = 1,\r\n User = 2,\r\n}\r\n\r\nexport enum SettingsTypes {\r\n CopyrightInfo = 1,\r\n LogoPath = 2,\r\n ContactMapFrame = 3,\r\n ContactMapFrame1 = 4,\r\n AdBlock1 = 5,\r\n AdBlock2 = 6,\r\n EmailLayout = 8,\r\n}\r\n\r\nexport enum LogLevelsTypes {\r\n Trace = 0,\r\n\r\n Debug = 1,\r\n\r\n Information = 2,\r\n\r\n Warning = 3,\r\n Error = 4,\r\n\r\n None = 5,\r\n}\r\n\r\nexport enum EngineModalMode {\r\n Prices = 1,\r\n CI = 2,\r\n CIVolotility = 3,\r\n InstrumentVolotility = 4,\r\n MissingPrices = 5,\r\n MissingGlobalHistory = 6,\r\n}\r\n","import React, { FC } from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Tag } from \"antd\";\r\nimport { ClockCircleOutlined } from \"@ant-design/icons\";\r\n\r\nimport CommonService from \"../../../../services/common.service\";\r\nimport { ILayoutRibbon } from \"../../../../models/layout-ribbon.model\";\r\nimport { currencyFormat } from \"../../../../services/constants\";\r\n\r\nconst getOptions = (data: any[]): Highcharts.Options => {\r\n return {\r\n colors: [\r\n \"#2b908f\",\r\n \"#90ee7e\",\r\n \"#f45b5b\",\r\n \"#7798BF\",\r\n \"#aaeeee\",\r\n \"#ff0066\",\r\n \"#eeaaee\",\r\n \"#55BF3B\",\r\n \"#DF5353\",\r\n \"#7798BF\",\r\n \"#aaeeee\",\r\n ],\r\n chart: {\r\n borderWidth: 0,\r\n type: \"area\",\r\n margin: [4, 2, 0, 2],\r\n height: 70,\r\n width: 130,\r\n style: {\r\n overflow: \"visible\",\r\n },\r\n backgroundColor: \"#11101d\",\r\n },\r\n title: {\r\n text: \"\",\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n xAxis: {\r\n labels: {\r\n enabled: false,\r\n },\r\n title: {\r\n text: null,\r\n },\r\n startOnTick: false,\r\n endOnTick: false,\r\n tickPositions: [],\r\n },\r\n yAxis: {\r\n endOnTick: false,\r\n startOnTick: false,\r\n labels: {\r\n enabled: false,\r\n },\r\n title: {\r\n text: null,\r\n },\r\n tickPositions: [0],\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n tooltip: {\r\n borderWidth: 1,\r\n hideDelay: 0,\r\n shared: true,\r\n padding: 4,\r\n borderRadius: 3,\r\n },\r\n plotOptions: {\r\n series: {\r\n animation: false,\r\n lineWidth: 1,\r\n shadow: false,\r\n states: {\r\n hover: {\r\n lineWidth: 1,\r\n },\r\n },\r\n marker: {\r\n radius: 3,\r\n states: {\r\n hover: {\r\n radius: 2,\r\n },\r\n },\r\n },\r\n },\r\n column: {\r\n negativeColor: \"#910000\",\r\n borderColor: \"silver\",\r\n },\r\n },\r\n series: [\r\n {\r\n data,\r\n name: \"Value\",\r\n type: \"line\",\r\n },\r\n ],\r\n };\r\n};\r\n\r\ninterface IProps {\r\n item: ILayoutRibbon;\r\n isIndex?: boolean;\r\n}\r\n\r\nconst InstrumentsMarqueeItem: FC = ({ item, isIndex }) => {\r\n return (\r\n \r\n \r\n {item?.name}\r\n \r\n {isIndex ? CommonService.toLocalNum(item?.lastTradePriceOnly, {\r\n maximumFractionDigits: 3,\r\n }) :\r\n CommonService.toLocalNum(item?.lastTradePriceOnly, {\r\n ...currencyFormat,\r\n maximumFractionDigits: 3,\r\n })}\r\n \r\n
\r\n \r\n \r\n {CommonService.toLocalNum(item?.changeinPercent, {\r\n maximumFractionDigits: 3,\r\n })}\r\n %\r\n \r\n \r\n {CommonService.toLocalNum(item?.change, {\r\n maximumFractionDigits: 3,\r\n })}\r\n \r\n {item?.ticker}\r\n \r\n \r\n {item?.lastTradeTime}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default InstrumentsMarqueeItem;\r\n","import React, { FC } from \"react\";\r\nimport { Card } from \"antd\";\r\n\r\nimport useHttpGet from \"../../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../../http\";\r\nimport InstrumentsMarqueeItem from \"./InstrumentsMarqueeItem\";\r\nimport { IResultResponse } from \"../../../../models/response/result.model\";\r\nimport { ILayoutRibbon } from \"../../../../models/layout-ribbon.model\";\r\n\r\nconst InstrumentsMarquee: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.LAYOUT_RIBBON}`,\r\n {\r\n defaultValue: {\r\n result: [] as ILayoutRibbon[],\r\n },\r\n }\r\n );\r\n\r\n const ci = fetchedData.result.filter(\r\n (el: ILayoutRibbon) => !!el.indexId\r\n );\r\n\r\n const instruments = fetchedData.result.filter(\r\n (el: ILayoutRibbon) => !!el.idInstrument\r\n );\r\n\r\n return (\r\n \r\n
\r\n
\r\n {ci?.map((el: ILayoutRibbon) => (\r\n \r\n ))}\r\n
\r\n
\r\n {instruments?.map((el: ILayoutRibbon) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default InstrumentsMarquee;","export default __webpack_public_path__ + \"static/media/long.b7b0fe41.png\";","import { TypedUseSelectorHook, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../store\";\r\n\r\nexport const useTypedSelector: TypedUseSelectorHook = useSelector;\r\n","import React, { FC, useEffect, useState } from \"react\";\r\nimport { Layout, Menu, Row, Col } from \"antd\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport InstrumentsMarquee from \"./InstrumentsMarquee\";\r\nimport long from \"../../../../assets/media/images/long.png\";\r\nimport { APIRoutes } from \"../../../../http\";\r\nimport { UIRoutes } from \"../../../../router\";\r\nimport { useTypedSelector } from \"../../../../hooks/useTypedSelector\";\r\nimport { ICryptoIndex } from \"../../../../models/cryptoindex.model\";\r\nimport RequestsService from \"../../../../services/requests.service\";\r\n\r\nconst AppHeader: FC = () => {\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const [indices, setIndices] = useState([] as ICryptoIndex[]);\r\n\r\n useEffect(() => {\r\n RequestsService.getMethod(`${APIRoutes.CRYPTO_INDEX}`)\r\n .then((response: any) => {\r\n setIndices(response.data?.result);\r\n })\r\n .catch((_) => { });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \"logo\"\r\n
\r\n
\r\n \r\n \r\n \r\n {indices?.map(f => {\r\n return (\r\n \r\n \r\n navData.isActive && indexId === f.id ? \"active\" : \"\"\r\n }\r\n to={`/indices/${f.ticker}/${f.id}`}\r\n >\r\n {f.ticker}\r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n (navData.isActive ? \"active\" : \"\")}\r\n to={`/${UIRoutes.CRYPTO_MARKETS} `}\r\n >\r\n Crypto Markets\r\n \r\n \r\n\r\n \r\n (navData.isActive ? \"active\" : \"\")}\r\n to={`/${UIRoutes.EDUCATION} `}\r\n >\r\n Education\r\n \r\n \r\n \r\n (navData.isActive ? \"active\" : \"\")}\r\n to={`/${UIRoutes.CRYPTO_NEWS} `}\r\n >\r\n Crypto News\r\n \r\n \r\n \r\n (navData.isActive ? \"active\" : \"\")}\r\n to={`/${UIRoutes.BLOG} `}\r\n >\r\n Blog\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\nexport default AppHeader;\r\n","import { AxiosResponse } from \"axios\";\r\n\r\nimport RequestsService from \"./requests.service\";\r\nimport { APIRoutes } from \"../http\";\r\nimport { IResultResponse } from \"../models/response/result.model\";\r\n\r\nexport default class SubscribesService {\r\n static async subscribe(\r\n email: string\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.SUNSCRIBERS,\r\n {\r\n email,\r\n isSubscribe: true,\r\n }\r\n );\r\n }\r\n\r\n static async delete(\r\n id: number\r\n ): Promise>> {\r\n return RequestsService.deleteMethod>(\r\n `${APIRoutes.SUNSCRIBERS}`,\r\n {\r\n params: {\r\n id,\r\n },\r\n }\r\n );\r\n }\r\n}\r\n","import React, { FC, useState } from \"react\";\r\nimport { Button, Form, Input, notification } from \"antd\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport SubscribesService from \"../../services/subscribes.service\";\r\n\r\nconst SubscribeForm: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const subscribe = async (email: string) => {\r\n setLoading(true);\r\n\r\n try {\r\n await SubscribesService.subscribe(email);\r\n\r\n notification.success({\r\n message: `You have been successfully subscribed`,\r\n });\r\n } catch (errors) {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n }\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n await subscribe(values?.email);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SubscribeForm;\r\n","import React, { FC } from \"react\";\r\nimport { Layout, Menu, Row, Col } from \"antd\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport { MagicPagesTypes } from \"../../../../services/enums\";\r\nimport { UIRoutes } from \"../../../../router\";\r\nimport SubscribeForm from \"../../../Subscribes/Form\";\r\n\r\nexport interface MenuItem {\r\n name: string;\r\n id: MagicPagesTypes;\r\n segment?: string;\r\n url?: string;\r\n}\r\n\r\nconst AppFooter: FC = () => {\r\n const links: MenuItem[] = [\r\n {\r\n name: \"Copyright\",\r\n segment: \"copyright\",\r\n id: MagicPagesTypes.Copyright,\r\n },\r\n {\r\n name: \"Terms of Use\",\r\n segment: \"terms_conditions\",\r\n id: MagicPagesTypes.Terms,\r\n },\r\n {\r\n name: \"Privacy Policy\",\r\n segment: \"privacy_policy\",\r\n id: MagicPagesTypes.PrivacyPolicy,\r\n },\r\n {\r\n name: \"Advertising\",\r\n segment: \"advertising\",\r\n id: MagicPagesTypes.Advertising,\r\n },\r\n {\r\n name: \"Contact Us\",\r\n segment: \"contact\",\r\n id: MagicPagesTypes.Contacts,\r\n },\r\n {\r\n name: \"Press\",\r\n segment: \"press\",\r\n id: MagicPagesTypes.Press,\r\n },\r\n {\r\n name: \"Change Log\",\r\n url: `/${UIRoutes.HOME_CHANGE_LOG}`,\r\n id: MagicPagesTypes.ChangeLogs,\r\n },\r\n //todo: uncomment when inplemented\r\n // {\r\n // name: \"Api\",\r\n // segment: \"api\",\r\n // id: MagicPagesTypes.Api,\r\n // },\r\n // {\r\n // name: \"Widgets\",\r\n // segment: \"widgets\",\r\n // id: MagicPagesTypes.Widgets,\r\n // },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n © Copyright 2017-2022 The Blockchain Academy LLC | All Rights\r\n Reserved\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n

Subscribe to our news

\r\n \r\n
\r\n
\r\n\r\n \r\n {links.map((el: MenuItem) => (\r\n \r\n (navData.isActive ? \"active\" : \"\")}\r\n to={\r\n el.url\r\n ? el.url\r\n : `/${UIRoutes.VIEW_PAGE_BASE}/${el.segment}/${el.id}`\r\n }\r\n >\r\n {el.name}\r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AppFooter;\r\n","import React, { FC } from \"react\";\r\nimport { Layout } from \"antd\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport AppHeader from \"./components/Header\";\r\nimport AppFooter from \"./components/Footer\";\r\n\r\nexport const AppLayout: FC = () => {\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AppLayout;\r\n","import React, { FC } from \"react\";\r\nimport { Layout } from \"antd\";\r\nimport { Outlet } from \"react-router-dom\";\r\nexport const LandingLayout: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LandingLayout;\r\n","import { ICurrentUser } from \"../../../models/current-user.model\";\r\nimport { AuthActionEnum, SetAuthAction, SetCurrentUserAction } from \"./types\";\r\n\r\nexport const AuthActionCreators = {\r\n setIsAuth: (payload: boolean): SetAuthAction => ({\r\n type: AuthActionEnum.SET_AUTH,\r\n payload,\r\n }),\r\n setCurrentUser: (payload: ICurrentUser): SetCurrentUserAction => ({\r\n type: AuthActionEnum.SET_CURRENT_USER,\r\n payload,\r\n }),\r\n};\r\n","import { CIActionEnum, SetChartDataAction, SetIndexIdAction } from \"./types\";\r\n\r\nexport const CIActionCreators = {\r\n \r\n setIndexId: (payload: any): SetIndexIdAction => ({\r\n type: CIActionEnum.SET_INDEX_ID,\r\n payload,\r\n }),\r\n\r\n setChartData: (payload: any): SetChartDataAction => ({\r\n type: CIActionEnum.SET_CHART_DATA_TYPE,\r\n payload,\r\n }),\r\n};\r\n","import { AuthActionCreators } from \"./auth/action-creators\";\r\nimport { CIActionCreators } from \"./ci/action-creators\";\r\n\r\nexport const allActionCreators = {\r\n ...AuthActionCreators,\r\n ...CIActionCreators,\r\n};\r\n","import { useDispatch } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { allActionCreators } from \"../store/reducers/action-creators\";\r\n\r\nexport const useActions = () => {\r\n const dispatch = useDispatch();\r\n\r\n return bindActionCreators(allActionCreators, dispatch);\r\n};\r\n","import React, { FC, useState } from \"react\";\r\nimport { Form, Alert, Input, Button } from \"antd\";\r\nimport { Link, useNavigate } from \"react-router-dom\";\r\n\r\nimport AuthService from \"../../../services/auth.service\";\r\nimport { useActions } from \"../../../hooks/useActions\";\r\nimport { UIRoutes } from \"../../../router\";\r\n\r\nconst LoginForm: FC = () => {\r\n const [error, setError] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n\r\n const { setIsAuth, setCurrentUser } = useActions();\r\n const navigate = useNavigate();\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await AuthService.login(\r\n values.username,\r\n values.password\r\n );\r\n\r\n localStorage.setItem(\r\n \"48bceb9d-e1a4-4c77-9d62-9b0e9748c07e\",\r\n response.data.result.code\r\n );\r\n localStorage.setItem(\"app.Authorized\", \"true\");\r\n\r\n setIsAuth(true);\r\n setCurrentUser(response.data.result.user);\r\n setLoading(false);\r\n setError(\"\");\r\n\r\n navigate(`/controlpanel`);\r\n } catch (errors: any) {\r\n setLoading(false);\r\n setError(errors?.response?.data?.errorMessages[0] || \"\");\r\n }\r\n };\r\n\r\n const errorMessage = !!error ? (\r\n \r\n ) : null;\r\n\r\n return (\r\n <>\r\n {errorMessage}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n Forgot password\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","import React, { FC } from \"react\";\r\nimport { Col, Row, Spin } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport long from \"../assets/media/images/long.png\";\r\nimport { IMagicPage } from \"../models/magic-page\";\r\nimport { MenuItem } from \"./Layout/AppLayout/components/Footer\";\r\nimport { MagicPagesTypes } from \"../services/enums\";\r\nimport { UIRoutes } from \"../router\";\r\n\r\ninterface IProps {\r\n data: IMagicPage;\r\n loading: boolean;\r\n children: React.ReactNode;\r\n title: string;\r\n}\r\n\r\nconst AuthBase: FC = ({ data, loading, title, children }) => {\r\n const links: MenuItem[] = [\r\n {\r\n name: \"Copyright\",\r\n segment: \"copyright\",\r\n id: MagicPagesTypes.Copyright,\r\n },\r\n {\r\n name: \"Terms of Use\",\r\n segment: \"terms_conditions\",\r\n id: MagicPagesTypes.Terms,\r\n },\r\n {\r\n name: \"Privacy Policy\",\r\n segment: \"privacy_policy\",\r\n id: MagicPagesTypes.PrivacyPolicy,\r\n },\r\n {\r\n name: \"Advertising\",\r\n segment: \"advertising\",\r\n id: MagicPagesTypes.Advertising,\r\n },\r\n {\r\n name: \"Contact Us\",\r\n segment: \"contact\",\r\n id: MagicPagesTypes.Contacts,\r\n },\r\n {\r\n name: \"Press\",\r\n segment: \"press\",\r\n id: MagicPagesTypes.Press,\r\n },\r\n {\r\n name: \"Change Log\",\r\n url: `/${UIRoutes.HOME_CHANGE_LOG}`,\r\n id: MagicPagesTypes.ChangeLogs,\r\n },\r\n //todo: uncomment when inplemented\r\n // {\r\n // name: \"Api\",\r\n // segment: \"api\",\r\n // id: MagicPagesTypes.Api,\r\n // },\r\n // {\r\n // name: \"Widgets\",\r\n // segment: \"widgets\",\r\n // id: MagicPagesTypes.Widgets,\r\n // },\r\n ];\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \"logo\"\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

\r\n {data?.title}\r\n {loading && }\r\n

\r\n

{data?.description}

\r\n
\r\n
\r\n

\r\n {title}\r\n

\r\n
{children}
\r\n
\r\n {data?.content}\r\n {loading && }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
    \r\n {links.map((el: MenuItem) => (\r\n
  • \r\n \r\n {el.name}\r\n \r\n
  • \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AuthBase;\r\n","import React, { FC } from \"react\";\r\n\r\nimport LoginForm from \"./LoginForm\";\r\nimport { MagicPagesTypes } from \"../../services/enums\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IMagicPage } from \"../../models/magic-page\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport AuthBase from \"../AuthBase\";\r\n\r\nconst LoginContainer: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/${MagicPagesTypes.Login}`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoginContainer;\r\n","import React, { FC } from \"react\";\r\nimport { Row, Card } from \"antd\";\r\nimport Helmet from \"react-helmet\";\r\nimport LoginContainer from \"../../../components/Login\";\r\n\r\nconst Login: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React, { FC } from \"react\";\r\nimport { Layout, Row, Menu, Col } from \"antd\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useTypedSelector } from \"../../../hooks/useTypedSelector\";\r\nimport { UIRoutes } from \"../../../router\";\r\nimport { useActions } from \"../../../hooks/useActions\";\r\n\r\nconst AppHeader: FC = () => {\r\n const { isAuth } = useTypedSelector((state) => state.auth);\r\n\r\n const navigate = useNavigate();\r\n const { setIsAuth } = useActions();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n setIsAuth(false);\r\n localStorage.removeItem(\"48bceb9d-e1a4-4c77-9d62-9b0e9748c07e\");\r\n localStorage.removeItem(\"app.Authorized\");\r\n\r\n navigate(`/${UIRoutes.ACCOUNT}/${UIRoutes.LOGIN}`);\r\n }}\r\n >\r\n Log Out\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default AppHeader;\r\n","import React, { FC } from \"react\";\r\nimport { Spin } from \"antd\";\r\nimport { useActions } from \"../hooks/useActions\";\r\nimport useHttpGet from \"../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../http\";\r\nimport { IResultResponse } from \"../models/response/result.model\";\r\nimport { ICurrentUser } from \"../models/current-user.model\";\r\n\r\nexport interface IChildrenProps {\r\n children?: React.ReactNode | React.ReactChild;\r\n}\r\n\r\nconst AppPage: FC = ({ children }) => {\r\n const { setIsAuth, setCurrentUser } = useActions();\r\n\r\n const { loading } = useHttpGet>(\r\n `${APIRoutes.USERS}/my`,\r\n {\r\n resolve: (response: IResultResponse) => {\r\n setIsAuth(true);\r\n setCurrentUser(response.result);\r\n },\r\n condition: !!JSON.parse(localStorage.getItem(\"app.Authorized\") as string),\r\n }\r\n );\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n return <>{children};\r\n};\r\n\r\nexport default AppPage;\r\n","import React, { FC, useEffect, useState } from \"react\";\r\nimport { Layout, Menu } from \"antd\";\r\nimport _ from \"lodash\";\r\n\r\nimport long from \"../../../assets/media/images/long.png\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport getLeftMenuData from \"../../../areas/admin/menuItemsData\";\r\n\r\nexport const Sider: FC = () => {\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [keys, setKeys] = useState(\r\n [`${localStorage.getItem(\"app.menu.selectedKeys\")}`] || []\r\n );\r\n\r\n const location = useLocation();\r\n const menu = getLeftMenuData();\r\n\r\n const handleClick = (e: any) => {\r\n localStorage.setItem(\"app.menu.selectedKeys\", e.key);\r\n setKeys([e.key]);\r\n };\r\n\r\n useEffect(() => {\r\n setSelectedKeys();\r\n }, [collapsed]);\r\n\r\n const setSelectedKeys = () => {\r\n const flattenItems = (items: any, key: any) =>\r\n items.reduce((flattenedItems: any, item: any) => {\r\n flattenedItems.push(item);\r\n if (Array.isArray(item[key])) {\r\n return flattenedItems.concat(flattenItems(item[key], key));\r\n }\r\n return flattenedItems;\r\n }, []);\r\n\r\n const selectedItem = _.find(flattenItems(menu, \"children\"), [\r\n \"url\",\r\n location.pathname,\r\n ]);\r\n\r\n setKeys(selectedItem ? [selectedItem.id.toString()] : []);\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n \"logo\"\r\n
\r\n
\r\n\r\n \r\n {menu.map(({ url, title, Icon, id, children }: any) => {\r\n if (children) {\r\n return (\r\n }>\r\n {children.map(({ url, title, id }: any) => (\r\n \r\n \r\n navData.isActive ? \"active\" : \"\"\r\n }\r\n to={url}\r\n >\r\n {title}\r\n \r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return (\r\n }>\r\n (navData.isActive ? \"active\" : \"\")}\r\n to={url}\r\n >\r\n {title}\r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Sider;\r\n","// import { Permissions } from \"constants/users/permissions\";\r\nimport {\r\n PieChartOutlined,\r\n UserOutlined,\r\n ToolOutlined,\r\n LineChartOutlined,\r\n ReadOutlined,\r\n LayoutOutlined,\r\n ProfileOutlined,\r\n SettingOutlined,\r\n CloudServerOutlined,\r\n FormatPainterOutlined,\r\n UsergroupAddOutlined,\r\n} from \"@ant-design/icons\";\r\nimport { PrivateUIRoutes } from \"../../router\";\r\n\r\nexport default function getLeftMenuData(): any[] {\r\n return [\r\n {\r\n id: 0,\r\n title: \"Dashboard\",\r\n key: \"dashboard\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.DASHBOARD}`,\r\n Icon: PieChartOutlined,\r\n },\r\n {\r\n id: 7,\r\n title: \"Engine\",\r\n key: \"engine\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.ENGINE_APP}`,\r\n Icon: CloudServerOutlined,\r\n },\r\n {\r\n id: 1,\r\n title: \"Users\",\r\n key: \"users\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.USERS}`,\r\n Icon: UserOutlined,\r\n },\r\n {\r\n \r\n id: 11,\r\n title: \"Indices\",\r\n key: \"Indices\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.INDICES}`,\r\n Icon: LineChartOutlined,\r\n },\r\n {\r\n \r\n id: 2,\r\n title: \"Instruments\",\r\n key: \"instruments\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.INSTRUMENTS}`,\r\n Icon: ToolOutlined,\r\n },\r\n {\r\n id: 3,\r\n title: \"News\",\r\n key: \"news\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.NEWS}`,\r\n Icon: ReadOutlined,\r\n },\r\n {\r\n id: 4,\r\n title: \"Blog\",\r\n key: \"blog\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.BLOG}`,\r\n Icon: ProfileOutlined,\r\n },\r\n {\r\n id: 5,\r\n title: \"Content Pages\",\r\n key: \"content\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.MAGIC_PAGES}`,\r\n Icon: LayoutOutlined,\r\n },\r\n {\r\n id: 6,\r\n title: \"System Settings\",\r\n key: \"settings\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.SYSTEM_SETTINGS}`,\r\n Icon: SettingOutlined,\r\n },\r\n {\r\n id: 8,\r\n title: \"Email Templates\",\r\n key: \"templates\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.EMAIL_TEMPLATES}`,\r\n Icon: FormatPainterOutlined,\r\n },\r\n {\r\n id: 9,\r\n title: \"Subscribes\",\r\n key: \"subscribes\",\r\n url: `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.SUBSCRIBES}`,\r\n Icon: UsergroupAddOutlined,\r\n },\r\n ];\r\n}\r\n","import React, { FC } from \"react\";\r\nimport { Layout } from \"antd\";\r\nimport { Outlet } from \"react-router-dom\";\r\n\r\nimport AppHeader from \"./Header\";\r\nimport AppPage from \"../../AppPage\";\r\nimport Sider from \"./Sider\";\r\n\r\nexport const ControlPanelLayout: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ControlPanelLayout;\r\n","export default __webpack_public_path__ + \"static/media/long2.99f25b7b.png\";","import React, { FC } from \"react\";\r\nimport { List, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { APIRoutes } from \"../../http\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { useTypedSelector } from \"../../hooks/useTypedSelector\";\r\nimport { ICryptoIndex } from \"../../models/cryptoindex.model\";\r\nimport long2 from \"../../assets/media/images/long2.png\";\r\nimport { UIRoutes } from \"../../router\";\r\nimport { MagicPagesTypes } from \"../../services/enums\";\r\n\r\ninterface ILabel {\r\n name: string;\r\n label: string;\r\n render?: (item?: any) => string | React.ReactNode;\r\n}\r\n\r\nconst Info: FC = () => {\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.CRYPTO_INDEX}/${indexId}`,\r\n {\r\n dependencies: [indexId],\r\n condition: !!indexId,\r\n }\r\n );\r\n\r\n const labels: ILabel[] = [\r\n {\r\n name: \"updatedOn\",\r\n label: \"Update on\",\r\n render: (name) => moment(getValue(name)).format(\"LLL\"),\r\n },\r\n {\r\n name: \"todaysMinValue\",\r\n label: \"Day range\",\r\n render: () =>\r\n `${getValue(\"todaysMinValue\")} - ${getValue(\"todaysMaxValue\")}`,\r\n },\r\n {\r\n name: \"changePercent7D\",\r\n label: \"7 days change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"changePercent1M\",\r\n label: \"1 month change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"changePercent3M\",\r\n label: \"3 months change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"\",\r\n label: \"\",\r\n render: () => (\r\n \r\n Index Methodology\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const getValue = (name: string) => CommonService.getProperty(fetchedData.result.quotesSummary, name);\r\n\r\n return (\r\n \r\n

\r\n {CommonService.toLocalNum(fetchedData?.result?.quotesSummary?.currentValue)}\r\n

\r\n\r\n

\r\n {`${fetchedData?.result?.quotesSummary?.changePercent24H || \"\"\r\n } %`}\r\n {fetchedData?.result?.quotesSummary?.change24H}\r\n

\r\n\r\n (\r\n \r\n
\r\n {item.label}\r\n \r\n {item?.render ? item.render(item.name) : getValue(item.name)}\r\n \r\n
\r\n
\r\n )}\r\n />\r\n\r\n \r\n
\r\n \"logo\"\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Info;\r\n","import React, { FC, useState } from \"react\";\r\nimport { Table } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { CITypes } from \"../../services/enums\";\r\nimport {\r\n IInstrument,\r\n IInstrumentHistoricalData,\r\n} from \"../../models/instrument.model\";\r\nimport { UIRoutes } from \"../../router\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { currencyFormat } from \"../../services/constants\";\r\nimport { ICryptoIndex } from \"../../models/cryptoindex.model\";\r\n\r\ninterface IProps {\r\n index: ICryptoIndex;\r\n}\r\n\r\nconst Instruments: FC = ({ index }) => {\r\n const [filter, setFilter] = useState({\r\n sortPropertyName: \"id\",\r\n sortAscending: true,\r\n });\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.INSTRUMENT_FOR_INDEX}/${index.id}`,\r\n {\r\n dependencies: [index.id, filter],\r\n condition: !!index?.id,\r\n defaultValue: { result: [] as IInstrument[] },\r\n query: filter,\r\n }\r\n );\r\n\r\n const handleTableChange = (newPagination: any, filters: any, sorter: any) => {\r\n if (!!sorter) {\r\n const newFilter: any = {\r\n sortPropertyName: sorter.field,\r\n sortAscending: sorter?.order === \"ascend\",\r\n };\r\n\r\n setFilter(newFilter);\r\n }\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"#\",\r\n dataIndex: \"sortNumber\",\r\n key: \"sortNumber\",\r\n width: 50,\r\n render: (_: any, __: any, index: number) => (\r\n <>{index + 1}\r\n )\r\n },\r\n {\r\n title: \"Asset\",\r\n dataIndex: \"name\",\r\n key: \"asset\",\r\n render: (text: string, record: IInstrument) => (\r\n
\r\n \r\n \r\n {text}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: \"Price\",\r\n dataIndex: \"lastHistoricalData\",\r\n key: \"price\",\r\n render: (text: IInstrumentHistoricalData) =>\r\n CommonService.toLocalNum(text?.adjClose, currencyFormat),\r\n },\r\n {\r\n title: \"Market CAP\",\r\n dataIndex: \"lastHistoricalData\",\r\n key: \"marketCAP\",\r\n render: (text: IInstrumentHistoricalData) =>\r\n CommonService.toLocalNum(text?.marketCap, currencyFormat),\r\n },\r\n {\r\n title: \"24H Change\",\r\n dataIndex: \"lastHistoricalData\",\r\n width: 130,\r\n key: \"changePercent\",\r\n render: (text: IInstrumentHistoricalData) => (\r\n \r\n {`${text?.changePercent || 0} %`}\r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n
\r\n

\r\n INSTRUMENTS FOR {index.name}\r\n

\r\n record?.id}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Instruments;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { INews } from \"../../models/news.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { UIRoutes } from \"../../router\";\r\nimport CommonService from \"../../services/common.service\";\r\n\r\nconst News: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.NEWS_TAKE}/${5}`,\r\n {\r\n defaultValue: { result: [] },\r\n }\r\n );\r\n\r\n return (\r\n \r\n
\r\n

LATEST NEWS

\r\n
\r\n {fetchedData.result?.map((el: INews) => (\r\n \r\n {el.title}\r\n \r\n }\r\n actions={[{moment(el.createdOn).format(\"LLLL\")}]}\r\n className=\"mb-1 custom-card-1\"\r\n key={el.id}\r\n bordered={false}\r\n >\r\n \r\n \r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default News;\r\n","import React, { FC } from \"react\";\r\nimport { Radio, RadioChangeEvent } from \"antd\";\r\n\r\ninterface IProps {\r\n setPeriodIndex: (value: number) => void;\r\n periodIndex: number;\r\n showAllOption?: boolean;\r\n show1Day?: boolean;\r\n}\r\n\r\nconst ChartRangeSelector: FC = ({ periodIndex, setPeriodIndex, showAllOption = true, show1Day = true }) => {\r\n return (\r\n
\r\n setPeriodIndex(e.target.value)}\r\n >\r\n {show1Day && 1d}\r\n 1w\r\n 1m\r\n 3m\r\n 6m\r\n 1y\r\n {showAllOption && all}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ChartRangeSelector;\r\n","import moment from \"moment\";\r\nimport CommonService from \"./common.service\";\r\nimport cwLogo from \"../assets/media/images/long2.png\";\r\n\r\ninterface IHighChartsOptions {\r\n series: any;\r\n rangeSelector?: any;\r\n showRangeSelector?: boolean;\r\n chart?: any;\r\n plotOptions?: any;\r\n title?: any;\r\n subtitle?: any;\r\n legend?: any;\r\n xAxis?: any;\r\n yAxis?: any;\r\n tooltip?: any;\r\n}\r\n\r\nexport default class HighChartsService {\r\n static baseSettings(options?: IHighChartsOptions) {\r\n return {\r\n chart: {\r\n plotBackgroundImage: cwLogo,\r\n ...options?.chart,\r\n },\r\n\r\n plotOptions: {\r\n ...options?.plotOptions,\r\n },\r\n\r\n title: {\r\n text: \"\",\r\n ...options?.title,\r\n },\r\n\r\n subtitle: {\r\n text: \"\",\r\n ...options?.subtitle,\r\n },\r\n\r\n xAxis: options?.xAxis ? {\r\n type: \"datetime\",\r\n crosshair: true,\r\n labels: {\r\n formatter: function () {\r\n const th: any = this;\r\n return moment.unix(th?.value / 1000).format(\"MM/DD/YYYY\");\r\n },\r\n },\r\n ...options?.xAxis,\r\n } : {},\r\n\r\n yAxis: options?.yAxis,\r\n\r\n legend: options?.legend ? {\r\n enabled: true,\r\n ...options?.legend,\r\n } : {},\r\n\r\n tooltip: options?.tooltip ? {\r\n shared: true,\r\n formatter() {\r\n const th: any = this;\r\n\r\n let s: any = `Value
${moment\r\n .unix(th?.x / 1000)\r\n .format(\"MM/DD/YYYY\")}`;\r\n\r\n th?.points?.forEach((point: any) => {\r\n s += `
${point?.series?.name}: ${CommonService.toLocalNum(\r\n point?.y\r\n )}`;\r\n });\r\n return s;\r\n },\r\n ...options?.tooltip,\r\n } : {},\r\n\r\n rangeSelector: !options?.showRangeSelector\r\n ? {\r\n enabled: true,\r\n buttons: [\r\n {\r\n type: \"all\",\r\n },\r\n ],\r\n selected: 0,\r\n inputEnabled: false,\r\n rangeSelectorZoom: \"\",\r\n buttonTheme: {\r\n states: {\r\n hover: {\r\n fill: \"#fff\",\r\n stroke: \"#fff\",\r\n style: {\r\n color: \"#fff\",\r\n },\r\n },\r\n select: {\r\n fill: \"#fff\",\r\n stroke: \"#fff\",\r\n style: {\r\n color: \"#fff\",\r\n },\r\n },\r\n },\r\n },\r\n }\r\n : { ...options?.rangeSelector },\r\n\r\n series: options?.series,\r\n };\r\n }\r\n}\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport ChartRangeSelector from \"./ChartRangeSelector\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { useTypedSelector } from \"../../hooks/useTypedSelector\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport {\r\n PeriodIndexTypes,\r\n PeriodTypesArray,\r\n} from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { ICryptoIndexChart } from \"../../models/cryptoindex-chart.model\";\r\nimport { ICryptoIndex } from \"../../models/cryptoindex.model\";\r\n\r\ninterface ChartItemValues {\r\n date: string;\r\n value: number;\r\n}\r\ninterface IProps {\r\n index: ICryptoIndex;\r\n}\r\n\r\nconst IndexChart: FC = ({ index }) => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1d\"]);\r\n\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const { fetchedData, loading } = useHttpGet>(`${APIRoutes.CRYPTO_INDEX_CHART}/${indexId}`,\r\n {\r\n dependencies: [periodIndex, indexId],\r\n query: {\r\n Period: PeriodTypesArray[periodIndex],\r\n },\r\n condition: !!indexId,\r\n });\r\n\r\n const getOptions = (data: ICryptoIndexChart = {} as ICryptoIndexChart) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series:\r\n // hide moving averages when 1day selected\r\n periodIndex > 0 ? [\r\n {\r\n name: index.name,\r\n data:\r\n CommonService.sortByDate(data.chart)?.map(\r\n (el: ChartItemValues) => [moment(el?.date).unix(), el?.value]\r\n ) || [],\r\n },\r\n {\r\n name: \"MA 20 Days\",\r\n data: CommonService.sortByDate(data.movingAverage20DaysChart)?.map(\r\n (el: ChartItemValues) => [moment(el?.date).unix(), el?.value]\r\n ),\r\n },\r\n {\r\n name: \"MA 50 Days\",\r\n data: CommonService.sortByDate(data.movingAverage50DaysChart)?.map(\r\n (el: ChartItemValues) => [moment(el?.date).unix(), el?.value]\r\n ),\r\n },\r\n {\r\n name: \"MA 100 Days\",\r\n data: CommonService.sortByDate(data.movingAverage100DaysChart)?.map(\r\n (el: ChartItemValues) => [moment(el?.date).unix(), el?.value]\r\n ),\r\n },\r\n ] :\r\n [{\r\n name: index.name,\r\n data:\r\n CommonService.sortByDate(data.chart)?.map(\r\n (el: ChartItemValues) => [moment(el?.date).unix(), el?.value]\r\n ) || [],\r\n },],\r\n }),\r\n xAxis: {\r\n type: \"datetime\",\r\n crosshair: true,\r\n labels: {\r\n formatter: function () {\r\n const th: any = this;\r\n return moment.unix(th?.value).format(\"MM/DD/YYYY\");\r\n },\r\n },\r\n },\r\n tooltip: {\r\n shared: true,\r\n formatter() {\r\n const th: any = this;\r\n\r\n let s: any = `${moment.unix(th?.x).format(\"MM/DD/YYYY hh:mm\")}`;\r\n\r\n th?.points?.forEach((point: any) => {\r\n s += `
${point.series.name}: ${CommonService.toLocalNum(point?.y)}`;\r\n });\r\n return s;\r\n },\r\n },\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default IndexChart;\r\n","import React, { FC, useState } from \"react\";\r\nimport { Spin } from \"antd\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport moment from \"moment\";\r\n\r\nimport ChartRangeSelector from \"./ChartRangeSelector\";\r\n\r\nimport { useTypedSelector } from \"../../hooks/useTypedSelector\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IFactorValue } from \"../../models/factorValue.model\";\r\n\r\nconst Volatitlity: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(\r\n PeriodIndexTypes[\"1m\"]\r\n );\r\n\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(\r\n `${APIRoutes.CRYPTO_INDEX_VOLATILITY_CHART}/${indexId}/${PeriodTypesArray[periodIndex]}`,\r\n {\r\n dependencies: [periodIndex, indexId],\r\n condition: !!indexId,\r\n }\r\n );\r\n\r\n const getOptions = (data: IFactorValue[] = []) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: \"Volatility\",\r\n data: CommonService.sortByDate(data).map(\r\n (el: IFactorValue) => [\r\n moment(el?.date).unix() * 1000,\r\n el?.value,\r\n ]\r\n ),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Volatitlity;\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport ChartRangeSelector from \"./ChartRangeSelector\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport { useTypedSelector } from \"../../hooks/useTypedSelector\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { ICryptoIndexPeriodPLChart } from \"../../models/cryptoindex-periodpl-chart.model\";\r\n\r\nconst PeriodPL: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1m\"]);\r\n\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(\r\n `${APIRoutes.CRYPTO_INDEX_PERIOD_PL_CHART}/${indexId}/${PeriodTypesArray[periodIndex]}`,\r\n {\r\n dependencies: [periodIndex, indexId],\r\n condition: !!indexId,\r\n }\r\n );\r\n\r\n const getOptions = (data: ICryptoIndexPeriodPLChart[]) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n chart: {\r\n type: \"column\",\r\n },\r\n plotOptions: {\r\n series: {\r\n negativeColor: \"#ce3e3e\",\r\n },\r\n },\r\n series: [\r\n {\r\n name: \"Profit/Loss\",\r\n data: CommonService.sortByDate(data).map(\r\n (el: ICryptoIndexPeriodPLChart) => [\r\n moment(el?.date).unix() * 1000,\r\n el?.value,\r\n ]\r\n ),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PeriodPL;\r\n","import React, { FC } from \"react\";\r\nimport { Table } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { useTypedSelector } from \"../../hooks/useTypedSelector\";\r\nimport {\r\n IInstrument,\r\n IInstrumentHistoricalData,\r\n} from \"../../models/instrument.model\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { UIRoutes } from \"../../router\";\r\nimport { currencyFormat } from \"../../services/constants\";\r\n\r\nconst WinnersLosers: FC = () => {\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.INSTRUMENT_FOR_INDEX}/${indexId}`,\r\n {\r\n dependencies: [indexId],\r\n condition: !!indexId,\r\n defaultValue: { result: [] as IInstrument[] },\r\n }\r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"#\",\r\n dataIndex: \"sortNumber\",\r\n key: \"id\",\r\n },\r\n {\r\n title: \"Asset\",\r\n dataIndex: \"name\",\r\n key: \"asset\",\r\n render: (text: string, record: IInstrument) => (\r\n
\r\n \r\n \r\n {text}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n title: \"Price\",\r\n dataIndex: \"lastHistoricalData\",\r\n key: \"price\",\r\n render: (text: IInstrumentHistoricalData) =>\r\n CommonService.toLocalNum(text?.adjClose, currencyFormat),\r\n },\r\n {\r\n title: \"Market CAP\",\r\n dataIndex: \"lastHistoricalData\",\r\n key: \"marketCAP\",\r\n render: (text: IInstrumentHistoricalData) =>\r\n CommonService.toLocalNum(text?.marketCap, currencyFormat),\r\n },\r\n {\r\n title: \"24H Change\",\r\n dataIndex: \"lastHistoricalData\",\r\n key: \"change\",\r\n render: (text: IInstrumentHistoricalData) => (\r\n \r\n {`${text?.changePercent || 0} %`}\r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n
\r\n

TOP 5 WINNERS

\r\n \r\n b?.lastHistoricalData?.changePercent -\r\n a?.lastHistoricalData?.changePercent\r\n )\r\n .slice(0, 5)}\r\n pagination={false}\r\n loading={loading}\r\n rowKey={(record: IInstrument) => record.id}\r\n />\r\n\r\n

TOP 5 LOSERS

\r\n \r\n a?.lastHistoricalData?.changePercent -\r\n b?.lastHistoricalData?.changePercent\r\n )\r\n .slice(0, 5)}\r\n pagination={false}\r\n loading={loading}\r\n rowKey={(record: IInstrument) => record.id}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default WinnersLosers;\r\n","import React, { FC } from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsTreemap from \"highcharts/modules/treemap\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { useTypedSelector } from \"../../hooks/useTypedSelector\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IInstrument } from \"../../models/instrument.model\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\n\r\nHighchartsTreemap(Highcharts);\r\n\r\nconst HeatMap: FC = () => {\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.INSTRUMENT_FOR_INDEX}/${indexId}`,\r\n {\r\n dependencies: [indexId],\r\n condition: !!indexId,\r\n defaultValue: { result: [] as IInstrument[] },\r\n }\r\n );\r\n\r\n const getColor = (value: number, index: number) => {\r\n return CommonService.LightenDarkenColor(\r\n value < 0 ? \"#ce3e3e\" : \"#c3ff8f\",\r\n index === 0\r\n ? 0\r\n : value < 0\r\n ? index * 5\r\n : (fetchedData.result?.length - 1 - index) * 5\r\n );\r\n };\r\n\r\n const getOptions = (data: any[]) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n tooltip: {\r\n shared: true,\r\n formatter() {\r\n const th: any = this;\r\n return `${th?.key}
$${CommonService.toLocalNum(\r\n th?.point?.value\r\n )} `;\r\n },\r\n },\r\n series: [\r\n {\r\n type: \"treemap\",\r\n layoutAlgorithm: \"squarified\",\r\n data: data\r\n ?.sort(\r\n (a: IInstrument, b: IInstrument) =>\r\n a?.lastHistoricalData?.changePercent -\r\n b?.lastHistoricalData?.changePercent\r\n )\r\n ?.map((el: IInstrument, index: number) => {\r\n return {\r\n name: `${el?.name}
${\r\n el?.lastHistoricalData?.changePercent || 0\r\n }%`,\r\n value: el?.lastHistoricalData?.marketCap,\r\n color: getColor(el?.lastHistoricalData?.changePercent, index),\r\n };\r\n }),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeatMap;\r\n","import React, { FC } from \"react\";\r\nimport { Tabs as AntdTabs } from \"antd\";\r\nimport IndexChart from \"./IndexChart\";\r\nimport Volatitlity from \"./Volatility\";\r\nimport PeriodPL from \"./PeriodPL\";\r\nimport WinnersLosers from \"./WinnersLosers\";\r\nimport HeatMap from \"./HeatMap\";\r\nimport { ICryptoIndex } from \"../../models/cryptoindex.model\";\r\n\r\nconst { TabPane } = AntdTabs;\r\n\r\ninterface IProps {\r\n index: ICryptoIndex;\r\n}\r\n\r\nconst Tabs: FC = ({ index }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","import { Spin } from \"antd\";\r\nimport React, { FC } from \"react\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { IAdBlock } from \"../../models/ad-block.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { MagicPagesTypes } from \"../../services/enums\";\r\n\r\nconst SiteSponsors: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.AD_BLOCKS}/${MagicPagesTypes.Home}`,\r\n {\r\n dependencies: [],\r\n defaultValue: { result: [] as IAdBlock[] },\r\n }\r\n );\r\n\r\n return (\r\n
\r\n

SITE SPONSORS

\r\n \r\n {fetchedData.result.map((el: IAdBlock) => (\r\n \r\n ))}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SiteSponsors;\r\n","import React, { FC, useEffect } from \"react\";\r\nimport { Card, Col, Row, Tag } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport Info from \"../../../components/CI10/Info\";\r\nimport Instruments from \"../../../components/CI10/Instruments\";\r\nimport News from \"../../../components/CI10/News\";\r\nimport Tabs from \"../../../components/CI10/Tabs\";\r\nimport SiteSponsors from \"../../../components/CI10/SiteSponsors\";\r\nimport { useActions } from \"../../../hooks/useActions\";\r\nimport { useTypedSelector } from \"../../../hooks/useTypedSelector\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { ICryptoIndex } from \"../../../models/cryptoindex.model\";\r\n\r\nconst CI10: FC = () => {\r\n const { id } = useParams();\r\n const indexId = useTypedSelector(({ ci }) => ci.indexId);\r\n const { setIndexId } = useActions();\r\n\r\n useEffect(() => {\r\n const indexId = !!id ? parseInt(id) : 1;\r\n setIndexId(indexId);\r\n }, [id]);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.CRYPTO_INDEX}/${indexId}`,\r\n {\r\n dependencies: [indexId],\r\n condition: indexId > 0,\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {fetchedData?.result?.name}\r\n {fetchedData?.result?.ticker}\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {fetchedData?.result &&\r\n \r\n }\r\n \r\n \r\n\r\n \r\n \r\n {fetchedData?.result &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CI10;\r\n","import React, { FC, useEffect, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Button, Col, Row, Select, Spin } from \"antd\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport moment from \"moment\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { ILayoutRibbon } from \"../../models/layout-ribbon.model\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport RequestsService from \"../../services/requests.service\";\r\nimport ChartRangeSelector from \"../CI10/ChartRangeSelector\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\n\r\nconst ComparativePerformance: FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState({\r\n result: [],\r\n });\r\n const [selectedIds, setSelectedIds] = useState([1, 2]);\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1m\"]);\r\n\r\n const { fetchedData: instruments, loading: instrumentsLoading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.LAYOUT_RIBBON}`, {\r\n defaultValue: {\r\n result: [] as ILayoutRibbon[],\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n compare();\r\n }, []);\r\n\r\n useEffect(() => {\r\n compare();\r\n }, [periodIndex]);\r\n\r\n const compare = async () => {\r\n setLoading(true);\r\n\r\n const response = await RequestsService.getMethod>(\r\n `${APIRoutes.CRYPTO_MARKETS_COMPATIVE_PERFORMANCE}`,\r\n { period: PeriodTypesArray[periodIndex], instrumentIds: selectedIds.filter(f => f > 0), indexIds: selectedIds.filter(f => f < 0).map(f => -f) }\r\n );\r\n\r\n setData(response.data);\r\n setLoading(false);\r\n };\r\n\r\n const getOptions = (data: any[], title: string) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n title: {\r\n text: \"Comparative Performance\",\r\n },\r\n subtitle: {\r\n text:\r\n data?.length > 0\r\n ? `updated on ${moment(data[data?.length - 1]?.updatedOn).format(\r\n \"MM/DD/YYYY HH:mm\"\r\n )}`\r\n : \"\",\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n series: data?.map((el) => ({\r\n name: el?.name,\r\n data: CommonService.sortByDate(el?.values, \"item1\")?.map(\r\n (el: any) => [moment(el?.item1).unix() * 1000, el?.item2]\r\n ),\r\n })),\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n setSelectedIds(val);\r\n }}\r\n >\r\n {instruments?.result?.map((el: ILayoutRibbon) => (\r\n \r\n {el.name}({el.ticker})\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ComparativePerformance;\r\n","/* tslint:disable */\r\nimport React, { FC, useEffect, useState } from \"react\";\r\nimport { Spin, Table } from \"antd\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { CorrelationBases } from \"../../services/enums\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\n\r\ninterface IProps {\r\n correlationSettings: {\r\n correlationBasis: CorrelationBases,\r\n startDate: any,\r\n endDate: any,\r\n instrumentIds?: any[],\r\n updateTrigger?: number\r\n }\r\n}\r\n\r\nconst CryptoCorrelationsTable: FC = (props) => {\r\n const [columns, setColumns] = useState([]);\r\n const [data, setData] = useState([]);\r\n\r\n const query: { [key: string]: any } = {\r\n ...props.correlationSettings,\r\n 'instrumentIds[]': props.correlationSettings.instrumentIds\r\n };\r\n\r\n const { loading } = useHttpGet>\r\n (`${APIRoutes.CORRELATION}`, {\r\n defaultValue: {\r\n result: [],\r\n },\r\n query: query,\r\n dependencies: [props.correlationSettings.updateTrigger],\r\n reject: CommonService.showAllErrors,\r\n resolve: (response) => {\r\n const columns1 = [{\r\n title: \"Name\",\r\n dataIndex: \"name\",\r\n render: (text: string, record: any) => { return { children: <>{record?.name} ({record.ticker}) } }\r\n }];\r\n\r\n const tableData: React.SetStateAction = [];\r\n response.result?.assetCorrelationList\r\n .sort((a: any, b: any) => a.sortNumber - b.sortNumber)\r\n .forEach((assetCorrelation: any) => {\r\n columns1.push({\r\n title: `${assetCorrelation?.ticker}`,\r\n dataIndex: `${assetCorrelation?.ticker}`,\r\n render: (text: string) => {\r\n const num = parseFloat(text);\r\n let color = \"#fff\";\r\n debugger;\r\n\r\n if (num && num > 0)\r\n color = `rgba(0, 255, 33, ${text})`;\r\n else if (num && num < 0)\r\n color = `rgba(255, 0, 33, ${-1 * num})`;\r\n\r\n return {\r\n props: {\r\n style: { backgroundColor: color }\r\n },\r\n children: <>{text}\r\n };\r\n }\r\n });\r\n\r\n const tableItem: { [key: string]: any } = {\r\n name: assetCorrelation.name,\r\n ticker: assetCorrelation.ticker,\r\n };\r\n\r\n assetCorrelation.correlationArrayList\r\n .forEach((el: any) => {\r\n tableItem[`${el.ticker2}`] = CommonService.toLocalNum(el.value);\r\n });\r\n\r\n tableData.push(tableItem);\r\n });\r\n\r\n setColumns(columns1);\r\n setData(tableData);\r\n }\r\n });\r\n\r\n return (\r\n \r\n

Calculated for period from {props.correlationSettings.startDate} to {props.correlationSettings.endDate}

\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CryptoCorrelationsTable;\r\n","import React, { FC, useEffect, useState } from \"react\";\r\nimport { Button, DatePicker, Form, Select, Tabs } from \"antd\";\r\nimport moment from \"moment\";\r\nimport CryptoCorrelationsTable from \"./CryptoCorrelationsTable\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { CorrelationBases, RollingCorrelationPeriods, RollingCorrelationPeriodsArray } from \"../../services/enums\";\r\nimport { ILayoutRibbon } from \"../../models/layout-ribbon.model\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\n\r\nconst { TabPane } = Tabs;\r\nconst { RangePicker } = DatePicker;\r\n\r\nconst CryptoCorrelations: FC = () => {\r\n const [form] = Form.useForm();\r\n\r\n const [correlationSettings, setCorrelationSettings] = useState({\r\n correlationBasis: CorrelationBases.Daily,\r\n updateTrigger: 0\r\n });\r\n\r\n const { fetchedData: instruments, loading: instrumentsLoading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.LAYOUT_RIBBON}`, {\r\n defaultValue: {\r\n result: [] as ILayoutRibbon[],\r\n },\r\n });\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n setCorrelationSettings({\r\n ...values,\r\n startDate: values.dates && moment(values.dates[0]).format('yyyy-MM-DD'),\r\n endDate: values.dates && moment(values.dates[1]).format('yyyy-MM-DD'),\r\n updateTrigger: new Date().getMilliseconds()\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {instruments?.result?.filter(f => !!f.idInstrument).map((el: ILayoutRibbon) => (\r\n \r\n {el.name}({el.ticker})\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Daily\r\n Monthly\r\n Annual\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CryptoCorrelations;\r\n","import React, { FC } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport moment from \"moment\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport CommonService from \"../../services/common.service\";\r\n\r\nconst MarketCap: FC = () => {\r\n const { fetchedData: data, loading } = useHttpGet<{\r\n result: any;\r\n }>(`${APIRoutes.CRYPTO_MARKETS_CAPITALIZATION}`, {\r\n defaultValue: {\r\n result: [],\r\n },\r\n });\r\n\r\n const getOptions = (\r\n data: any[],\r\n title: string,\r\n withBitcoin: boolean = false\r\n ) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n chart: {\r\n height: 600,\r\n },\r\n title: {\r\n text: title,\r\n },\r\n subtitle: {\r\n text:\r\n data?.length > 0\r\n ? `updated on ${moment(data[data?.length - 1]?.updatedOn).format(\r\n \"MM/DD/YYYY HH:mm\"\r\n )}`\r\n : \"\",\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n showRangeSelector: true,\r\n yAxis: [\r\n {\r\n labels: {\r\n align: \"right\",\r\n x: -3,\r\n },\r\n title: {\r\n text: \"Market Cap\",\r\n },\r\n height: \"68%\",\r\n lineWidth: 2,\r\n resize: {\r\n enabled: true,\r\n },\r\n },\r\n {\r\n labels: {\r\n align: \"right\",\r\n x: -3,\r\n },\r\n title: {\r\n text: \"Volume\",\r\n },\r\n top: \"65%\",\r\n height: \"30%\",\r\n offset: 0,\r\n lineWidth: 2,\r\n },\r\n ],\r\n series: [\r\n {\r\n name: \"Market Cap\",\r\n data: CommonService.sortByDate(data, \"updatedOn\")?.map(\r\n (el: {\r\n updatedOn: string;\r\n totalMarketCapilalization: number;\r\n totalMarketCapilalizationWithoutBitcoin: number;\r\n }) => [\r\n moment(el?.updatedOn).unix() * 1000,\r\n withBitcoin\r\n ? el?.totalMarketCapilalization\r\n : el?.totalMarketCapilalizationWithoutBitcoin,\r\n ]\r\n ),\r\n },\r\n {\r\n name: \"Volume\",\r\n type: \"column\",\r\n yAxis: 1,\r\n data: CommonService.sortByDate(data, \"updatedOn\")?.map(\r\n (el: {\r\n updatedOn: string;\r\n total24hVolume: number;\r\n total24hVolumeWithoutBitcoin: number;\r\n }) => [\r\n moment(el?.updatedOn).unix() * 1000,\r\n withBitcoin\r\n ? el?.total24hVolume\r\n : el?.total24hVolumeWithoutBitcoin,\r\n ]\r\n ),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MarketCap;\r\n","import React, { FC, useState, useEffect } from \"react\";\r\nimport { Spin } from \"antd\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsStok from \"highcharts/highstock\";\r\nimport HighchartsVariablePie from \"highcharts/modules/variable-pie\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport moment from \"moment\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport {\r\n PeriodIndexTypes,\r\n PeriodTypesArray,\r\n} from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport ChartRangeSelector from \"../CI10/ChartRangeSelector\";\r\n\r\nHighchartsVariablePie(Highcharts);\r\n\r\nconst getPieOptions = (data: any[]) => {\r\n const lastData = data?.length > 0 ? data[0] : {};\r\n\r\n return {\r\n chart: {\r\n type: \"variablepie\",\r\n },\r\n title: {\r\n text: \"CRYPTO MARKET CAPITALIZATION - USD\",\r\n },\r\n subtitle: {\r\n text: lastData\r\n ? `data on ${moment(lastData?.date).format(\"MM/DD/YYYY\")}`\r\n : \"\",\r\n },\r\n tooltip: {\r\n headerFormat: \"\",\r\n pointFormatter: function () {\r\n const th: any = this;\r\n return `${th.name}: ${CommonService.toLocalNum(\r\n th.percentage\r\n )}%
Market Cap: ${CommonService.toLocalNum(th.y)}`;\r\n },\r\n },\r\n plotOptions: {\r\n variablepie: {\r\n allowPointSelect: true,\r\n cursor: \"pointer\",\r\n dataLabels: {\r\n enabled: true,\r\n formatter: function () {\r\n const th: any = this;\r\n return `${th.key}`;\r\n },\r\n },\r\n },\r\n },\r\n series: [\r\n {\r\n minPointSize: '20%',\r\n innerSize: \"80%\",\r\n zMin: 0,\r\n name: \"countries\",\r\n data: data.map(f => ({ name: f?.instrument?.name ?? 'Others', y: f?.value }))\r\n },\r\n ],\r\n };\r\n};\r\n\r\nconst getOptions = (data: any[]) => {\r\n const dataGrouped = CommonService.groupBy(data, \"instrumentId\");\r\n\r\n const chartData: any[] = [];\r\n const props = Object.getOwnPropertyNames(dataGrouped);\r\n props.forEach(f => {\r\n const item = dataGrouped[f];\r\n\r\n chartData.push({\r\n name: item[0]?.instrument?.name ?? 'Others',\r\n data: item?.map((el: any) => [\r\n moment(el?.date).unix() * 1000,\r\n el?.value,\r\n ])\r\n });\r\n });\r\n\r\n return {\r\n ...HighChartsService.baseSettings({\r\n chart: {\r\n type: \"line\",\r\n },\r\n title: {\r\n text: \"PERCENTAGE OF TOTAL MARKET CAPITALIZATION\",\r\n },\r\n subtitle: {\r\n text:\r\n data?.length > 1\r\n ? `updated on ${moment(data[data?.length - 1]?.date).format(\r\n \"MM/DD/YYYY\"\r\n )}`\r\n : \"\",\r\n },\r\n legend: {\r\n enabled: true,\r\n },\r\n showRangeSelector: true,\r\n tooltip: {\r\n shared: false,\r\n formatter: function () {\r\n const th: any = this;\r\n\r\n let s: any = `Value
${moment\r\n .unix(th?.x / 1000)\r\n .format(\"MM/DD/YYYY\")}
`;\r\n\r\n let chart = this.points[0].series.chart;\r\n\r\n this.points.forEach(function (tooltipPoint: any) {\r\n if (tooltipPoint.y === 0) {\r\n Highcharts.setAnimation(false, chart);\r\n tooltipPoint.point.setState(\"normal\");\r\n Highcharts.setAnimation(true, chart);\r\n } else {\r\n s +=\r\n '\\u25CF ' +\r\n tooltipPoint.series.name +\r\n \": \" +\r\n CommonService.toLocalNum(tooltipPoint.y) +\r\n \"
\";\r\n }\r\n });\r\n\r\n return s;\r\n },\r\n },\r\n series: chartData\r\n })\r\n };\r\n};\r\n\r\nconst PercentageMarketCap: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1d\"]);\r\n const [selectedDate, setSelectedDate] = useState(moment().add(-1, 'd'));\r\n\r\n const { fetchedData: lastData, loading } = useHttpGet<{\r\n result: any;\r\n }>(`${APIRoutes.CRYPTO_MARKETS_CAPITALIZATION}/percentage/date/${selectedDate.format('YYYY-MM-DD')}`, {\r\n defaultValue: {\r\n result: [],\r\n },\r\n dependencies: [selectedDate]\r\n });\r\n\r\n const { fetchedData: overallData } = useHttpGet<{\r\n result: any;\r\n }>(`${APIRoutes.CRYPTO_MARKETS_CAPITALIZATION}/percentage/period/1`, {\r\n defaultValue: {\r\n result: [],\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n switch (PeriodTypesArray[periodIndex]) {\r\n case \"1w\": { setSelectedDate(moment().add(-7, 'd')); break; }\r\n case \"1m\": { setSelectedDate(moment().add(-1, 'month')); break; }\r\n case \"3m\": { setSelectedDate(moment().add(-3, 'month')); break; }\r\n case \"6m\": { setSelectedDate(moment().add(-6, 'month')); break; }\r\n case \"1y\": { setSelectedDate(moment().add(-1, 'y')); break; }\r\n default: { setSelectedDate(moment().add(-1, 'd')); break; }\r\n };\r\n\r\n }, [periodIndex]);\r\n\r\n return (\r\n \r\n {lastData?.result &&\r\n <>\r\n \r\n \r\n \r\n }\r\n\r\n
\r\n\r\n {overallData?.result\r\n ?
\r\n \r\n
\r\n :\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default PercentageMarketCap;\r\n","import React, { FC } from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport HighchartsMore from \"highcharts/highcharts-more\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { Table } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nHighchartsMore(Highcharts);\r\n\r\nconst getBubbleOptions = (data: any) => {\r\n return {\r\n chart: {\r\n type: \"packedbubble\",\r\n },\r\n title: {\r\n text:\r\n data?.list?.length > 0\r\n ? `VOLUMES FOR ${moment(data?.date).format(\"MM/DD/YYYY\")}`\r\n : `NO DATA FOR ${moment(data?.date).format(\"MM/DD/YYYY\")}`,\r\n },\r\n tooltip: {\r\n useHTML: true,\r\n formatter: function () {\r\n const th: any = this;\r\n return `${th.key}: $${CommonService.toLocalNum(th.y)}`;\r\n },\r\n },\r\n plotOptions: {\r\n packedbubble: {\r\n minSize: \"70%\",\r\n maxSize: \"480%\",\r\n layoutAlgorithm: {\r\n splitSeries: false,\r\n gravitationalConstant: 0.02,\r\n },\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.name}\",\r\n filter: {\r\n property: \"y\",\r\n operator: \">\",\r\n value: 1000000000,\r\n },\r\n style: {\r\n color: \"black\",\r\n textOutline: \"none\",\r\n fontWeight: \"normal\",\r\n },\r\n },\r\n },\r\n },\r\n series: data?.list?.map((el: any) => ({\r\n name: el?.name,\r\n data: [\r\n {\r\n name: el?.name,\r\n value: el?.volume24h,\r\n },\r\n ],\r\n })),\r\n };\r\n};\r\n\r\nconst columns = [\r\n {\r\n title: \"Name\",\r\n dataIndex: \"name\",\r\n key: \"name\",\r\n width: \"50%\",\r\n },\r\n {\r\n title: \"24H Volume\",\r\n dataIndex: \"volume24h\",\r\n key: \"volume\",\r\n render: (text: number) => CommonService.toLocalNum(text),\r\n },\r\n];\r\n\r\ninterface IProps {\r\n data: {\r\n list: any[];\r\n };\r\n}\r\n\r\nconst TradingVolumesTab: FC = ({ data }) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TradingVolumesTab;\r\n","import React, { FC, useState } from \"react\";\r\nimport { Spin, Tabs as AntdTabs } from \"antd\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport TradingVolumesTab from \"./TradingVolumesTab\";\r\n\r\nconst { TabPane } = AntdTabs;\r\n\r\nconst TradingVolumes: FC = () => {\r\n const [period, setPeriod] = useState(\"0\");\r\n const { fetchedData: data, loading } = useHttpGet<{\r\n result: any;\r\n }>(`${APIRoutes.CRYPTO_MARKETS_TRADING_VOLUMES}/${period}`, {\r\n dependencies: [period],\r\n defaultValue: {\r\n result: {\r\n list: [],\r\n },\r\n },\r\n });\r\n\r\n const handleTabChanges = (period: any) => {\r\n setPeriod(period);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TradingVolumes;\r\n","import React, { FC } from \"react\";\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsTreemap from \"highcharts/modules/treemap\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IFactorValue } from \"../../models/factorValue.model\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\n\r\nHighchartsTreemap(Highcharts);\r\n\r\nconst FearAndGreed: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n APIRoutes.FEAR_AND_GREED,\r\n {\r\n defaultValue: { result: {} as IFactorValue },\r\n }\r\n );\r\n\r\n const getOptions = (fearAndGreedIndex: number) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n chart: {\r\n type: 'gauge',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: 0,\r\n plotShadow: false,\r\n height: '430px',\r\n },\r\n\r\n xAxis: null,\r\n legend: null,\r\n // the value axis\r\n yAxis: {\r\n min: 0,\r\n max: 100,\r\n tickPosition: 'inside',\r\n tickColor: '#FFFFFF',\r\n tickLength: 20,\r\n tickWidth: 2,\r\n minorTickInterval: null,\r\n labels: {\r\n distance: 20,\r\n style: {\r\n fontSize: '14px'\r\n }\r\n },\r\n plotBands: [{\r\n from: 0,\r\n to: 33,\r\n color: '#DF5353', // red\r\n thickness: 20\r\n }, {\r\n from: 34,\r\n to: 66,\r\n color: '#DDDF0D', // yellow\r\n thickness: 20\r\n }, {\r\n from: 67,\r\n to: 100,\r\n color: '#55BF3B', // green\r\n thickness: 20\r\n }]\r\n },\r\n\r\n series: [{\r\n name: 'Fear & Greed',\r\n data: [fearAndGreedIndex],\r\n dataLabels: {\r\n format: '{y}',\r\n borderWidth: 0,\r\n color: '#333333',\r\n style: {\r\n fontSize: '16px'\r\n }\r\n },\r\n dial: {\r\n radius: '80%',\r\n backgroundColor: 'gray',\r\n baseWidth: 12,\r\n baseLength: '0%',\r\n rearLength: '0%'\r\n },\r\n pivot: {\r\n backgroundColor: 'gray',\r\n radius: 6\r\n }\r\n }]\r\n }),\r\n pane: {\r\n startAngle: -90,\r\n endAngle: 89.9,\r\n background: null,\r\n center: ['50%', '70%'],\r\n size: '100%'\r\n },\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FearAndGreed;","export interface IMomentum {\r\n date: string;\r\n value: number;\r\n period: MomentumPeriod;\r\n}\r\n\r\n\r\nexport enum FactorValueType {\r\n Volatility = 1,\r\n\r\n Momentum10Days = 5,\r\n Momentum5Days = 6,\r\n\r\n TradingVolumesRate = 15,\r\n\r\n GoogleTrends = 10,\r\n}\r\n\r\nexport enum MomentumPeriod {\r\n Momentum10Days = FactorValueType.Momentum10Days,\r\n Momentum5Days = FactorValueType.Momentum5Days,\r\n}\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport ChartRangeSelector from \"../CI10/ChartRangeSelector\";\r\nimport { IMarketDominanceItem } from \"../../models/fearAndGreed/marketDominance.model\";\r\n\r\nconst MarketDominanceChart: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1m\"]);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.FEAR_AND_GREED}/marketDominance/${PeriodTypesArray[periodIndex]}`,\r\n { dependencies: [periodIndex] }\r\n );\r\n\r\n const getOptions = (data: IMarketDominanceItem = {} as IMarketDominanceItem) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: 'Market Dominance',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result)?.map(\r\n (el: IMarketDominanceItem) => [moment(el?.date).unix() * 1000, el?.dominance]\r\n ) || [],\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MarketDominanceChart;\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport ChartRangeSelector from \"../CI10/ChartRangeSelector\";\r\nimport { MomentumPeriod, IMomentum } from \"../../models/fearAndGreed/momentum.model\";\r\n\r\nconst MomentumChart: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1m\"]);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.FEAR_AND_GREED}/momentum/${PeriodTypesArray[periodIndex]}`, { dependencies: [periodIndex] }\r\n );\r\n\r\n const getOptions = (data: IMomentum = {} as IMomentum) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: '10 Days Momentum',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.filter(f => f.period == MomentumPeriod.Momentum10Days))?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ) || [],\r\n },\r\n {\r\n name: '5 Days Momentum',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.filter(f => f.period == MomentumPeriod.Momentum5Days))?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ) || [],\r\n },\r\n ],\r\n }),\r\n xAxis: {\r\n type: \"datetime\",\r\n crosshair: true,\r\n labels: {\r\n formatter: function () {\r\n const th: any = this;\r\n return moment.unix(th?.value).format(\"MM/DD/YYYY\");\r\n },\r\n },\r\n },\r\n tooltip: {\r\n shared: true,\r\n formatter() {\r\n const th: any = this;\r\n\r\n let s: any = `${moment.unix(th?.x).format(\"MM/DD/YYYY\")}`;\r\n\r\n th?.points?.forEach((point: any) => {\r\n s += `
${point?.y > 0 ? 'Bullish' : 'Bearish'}: ${CommonService.toLocalNum(\r\n point?.y\r\n )}`;\r\n });\r\n return s;\r\n },\r\n },\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MomentumChart;\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport ChartRangeSelector from \"../CI10/ChartRangeSelector\";\r\nimport { IMomentum } from \"../../models/fearAndGreed/momentum.model\";\r\nimport { IMarketVolumeOutput } from \"../../models/fearAndGreed/marketVolume.model\";\r\n\r\nconst MarketVolumesChart: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1m\"]);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.FEAR_AND_GREED}/marketVolume/${PeriodTypesArray[periodIndex]}`, { dependencies: [periodIndex] }\r\n );\r\n\r\n const getOptions = (data: IMarketVolumeOutput = {} as IMarketVolumeOutput) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: 'Market Volume',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.volumes?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ))\r\n }, {\r\n name: '5 days MA',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.movingAverage5DaysChart?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ))\r\n }, {\r\n name: '10 days MA',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.movingAverage10DaysChart?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ))\r\n }\r\n ],\r\n }),\r\n xAxis: {\r\n type: \"datetime\",\r\n crosshair: true,\r\n labels: {\r\n formatter: function () {\r\n const th: any = this;\r\n return moment.unix(th?.value).format(\"MM/DD/YYYY\");\r\n },\r\n },\r\n },\r\n tooltip: {\r\n shared: true,\r\n formatter() {\r\n const th: any = this;\r\n\r\n let s: any = `${moment.unix(th?.x).format(\"MM/DD/YYYY\")}`;\r\n\r\n th?.points?.forEach((point: any) => {\r\n s += `
${point.series.name}: ${CommonService.toLocalNum(point?.y)}`;\r\n });\r\n return s;\r\n },\r\n },\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MarketVolumesChart;\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport ChartRangeSelector from \"../CI10/ChartRangeSelector\";\r\nimport { IMomentum } from \"../../models/fearAndGreed/momentum.model\";\r\nimport { IVolatilityOutput } from \"../../models/fearAndGreed/volatilityOutput.model\";\r\n\r\nconst VolatilityChart: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"6m\"]);\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.FEAR_AND_GREED}/volatility/${PeriodTypesArray[periodIndex]}`, { dependencies: [periodIndex] }\r\n );\r\n\r\n const getOptions = (data: IVolatilityOutput = {} as IVolatilityOutput) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: 'Volatility',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.volatility?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ))\r\n }, {\r\n name: '30 days MA',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.movingAverage30DaysChart?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ))\r\n }, {\r\n name: '90 days MA',\r\n data:\r\n CommonService.sortByDate(fetchedData?.result?.movingAverage90DaysChart?.map(\r\n (el: IMomentum) => [moment(el?.date).unix(), el?.value]\r\n ))\r\n }\r\n ],\r\n }),\r\n xAxis: {\r\n type: \"datetime\",\r\n crosshair: true,\r\n labels: {\r\n formatter: function () {\r\n const th: any = this;\r\n return moment.unix(th?.value).format(\"MM/DD/YYYY\");\r\n },\r\n },\r\n },\r\n tooltip: {\r\n shared: true,\r\n formatter() {\r\n const th: any = this;\r\n\r\n let s: any = `${moment.unix(th?.x).format(\"MM/DD/YYYY\")}`;\r\n\r\n th?.points?.forEach((point: any) => {\r\n s += `
${point.series.name}: ${CommonService.toLocalNum(point?.y)}`;\r\n });\r\n return s;\r\n },\r\n },\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default VolatilityChart;\r\n","import React, { FC, useEffect } from \"react\";\r\nimport { Col, Row, List, Spin } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport IndexChart from \"../FearGreed/IndexChart\";\r\n// import HistoricalIndexChart from \"../FearGreed/HistoricalIndexChart\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport MarketDominanceChart from \"../FearGreed/MarketDominanceChart\";\r\nimport MomentumChart from \"../FearGreed/MomentumChart\";\r\nimport MarketVolumesChart from \"../FearGreed/MarketVolumesChart\";\r\nimport VolatilityChart from \"../FearGreed/VolatilityChart\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport moment from \"moment\";\r\n\r\ninterface ILabel {\r\n name: string;\r\n label: string;\r\n render?: () => string | React.ReactNode;\r\n}\r\n\r\nconst FearAndGreedIndex: FC = () => {\r\n useEffect(() => {\r\n }, []);\r\n\r\n const { fetchedData: summary, loading } = useHttpGet>(\r\n `${APIRoutes.FEAR_AND_GREED}/summary`,\r\n {\r\n defaultValue: { result: {} as any },\r\n }\r\n );\r\n\r\n const labels: ILabel[] = [\r\n {\r\n name: \"update\",\r\n label: \"Last updated\",\r\n render: () => moment(getValue('today').date).format('MM/DD/YYYY hh:mm')\r\n },\r\n {\r\n name: \"nextUpdate\",\r\n label: \"Next update\",\r\n render: () => moment(getValue('today').date).add(1, 'd').format('MM/DD/YYYY hh:mm')\r\n },\r\n {\r\n name: \"yesterday\",\r\n label: \"Yesterday\",\r\n render: () => Math.round(getValue('yesterday').value)\r\n },\r\n {\r\n name: \"lastWeek\",\r\n label: \"Last Week\",\r\n render: () => Math.round(getValue(\"lastWeek\").value),\r\n },\r\n {\r\n name: \"lastMonth\",\r\n label: \"Last Month\",\r\n render: () => Math.round(getValue(\"lastMonth\").value),\r\n },\r\n {\r\n name: \"\",\r\n label: \"\",\r\n render: () => (\r\n \r\n Index Methodology\r\n \r\n ),\r\n }\r\n ];\r\n\r\n const getValue = (name: string) => CommonService.getProperty(summary.result, name);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n (\r\n \r\n
\r\n {item.label}\r\n \r\n {item?.render && item.render()}\r\n \r\n
\r\n
\r\n )}\r\n />\r\n \r\n
\r\n\r\n {/* \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n

Bitcoin Market Dominance

\r\n \r\n \r\n\r\n \r\n

Market Momentum

\r\n \r\n \r\n\r\n \r\n

Market Volume

\r\n \r\n \r\n\r\n \r\n

Volatility

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FearAndGreedIndex;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row, Tabs } from \"antd\";\r\nimport { } from \"antd\";\r\nimport ComparativePerformance from \"./../../../components/CryptoMarkets/ComparativePerformance\";\r\nimport CryptoCorrelations from \"./../../../components/CryptoMarkets/CryptoCorrelations\";\r\nimport MarketCap from \"./../../../components/CryptoMarkets/MarketCap\";\r\nimport PercentageMarketCap from \"./../../../components/CryptoMarkets/PercentageMarketCap\";\r\nimport TradingVolumes from \"./../../../components/CryptoMarkets/TradingVolumes\";\r\nimport FearAndGreedIndex from \"../../../components/CryptoMarkets/FearAndGreedIndex\";\r\n\r\nconst { TabPane } = Tabs;\r\n\r\nconst CryptoMarkets: FC = () => {\r\n return (\r\n \r\n \r\n \r\n Crypto Markets\r\n
\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CryptoMarkets;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row } from \"antd\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { MagicPagesTypes } from \"../../../services/enums\";\r\nimport { IMagicPage } from \"../../../models/magic-page\";\r\n\r\nconst Education: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/${MagicPagesTypes.Education}`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {fetchedData.result?.title}\r\n \r\n }\r\n loading={loading}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Education;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\n\r\nimport { IAdBlock } from \"../../../models/ad-block.model\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IResultListResponse } from \"../../../models/response/result-list.model\";\r\nimport { INews } from \"../../../models/news.model\";\r\nimport { UIRoutes } from \"../../../router\";\r\nimport { MagicPagesTypes } from \"../../../services/enums\";\r\nimport CommonService from \"../../../services/common.service\";\r\n\r\nconst CryptoNews: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.NEWS}`, {\r\n query: { sortAscending: false },\r\n defaultValue: {} as IResultListResponse,\r\n });\r\n\r\n const { fetchedData: sponsorsData, loading: sponsorsLoading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.AD_BLOCKS}/${MagicPagesTypes.News}`, {\r\n dependencies: [],\r\n defaultValue: { result: [] as IAdBlock[] },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n Crypto News\r\n \r\n }\r\n loading={loading}\r\n >\r\n \r\n \r\n \r\n {fetchedData.result?.list?.map((el: INews) => (\r\n \r\n \r\n {el.title}\r\n \r\n }\r\n actions={[\r\n {moment(el.createdOn).format(\"LLLL\")},\r\n \r\n {el?.watchCount}\r\n ,\r\n ]}\r\n className=\"mb-1 mt-1 custom-card-1 news\"\r\n key={el.id}\r\n bordered={false}\r\n >\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {sponsorsData.result.map((el: IAdBlock) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CryptoNews;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row, Spin } from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IBlog } from \"../../../models/blog.model\";\r\nimport { IResultListResponse } from \"../../../models/response/result-list.model\";\r\nimport { UIRoutes } from \"../../../router\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { IAdBlock } from \"../../../models/ad-block.model\";\r\nimport { MagicPagesTypes } from \"../../../services/enums\";\r\nimport CommonService from \"../../../services/common.service\";\r\nimport { BASE_IMAGE_URL } from \"../../../services/constants\";\r\n\r\nconst Blog: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.BLOG}`,\r\n {\r\n defaultValue: {} as IResultListResponse,\r\n }\r\n );\r\n\r\n const { fetchedData: sponsorsData, loading: sponsorsLoading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.AD_BLOCKS}/${MagicPagesTypes.Blog}`, {\r\n dependencies: [],\r\n defaultValue: { result: [] as IAdBlock[] },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n Blog\r\n \r\n }\r\n loading={loading}\r\n >\r\n \r\n \r\n \r\n {fetchedData.result?.list?.map((el: IBlog) => (\r\n \r\n \r\n {el.title}\r\n \r\n }\r\n cover={\r\n \r\n }\r\n actions={[\r\n {moment(el.createdOn).format(\"LLLL\")},\r\n \r\n {el?.watchCount}\r\n ,\r\n ]}\r\n className=\"mb-1 mt-1 custom-card-1\"\r\n key={el.id}\r\n bordered={false}\r\n >\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {sponsorsData.result.map((el: IAdBlock) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Blog;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Divider, Row } from \"antd\";\r\nimport moment from \"moment\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { INews } from \"../../../models/news.model\";\r\nimport { APIRoutes } from \"../../../http\";\r\n\r\nconst ViewNews: FC = () => {\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.NEWS}/${id}`,\r\n {\r\n defaultValue: { result: {} as INews },\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {fetchedData.result?.title}\r\n \r\n }\r\n actions={[\r\n {moment(fetchedData.result?.createdOn).format(\"LLLL\")},\r\n \r\n {fetchedData.result?.watchCount}\r\n ,\r\n ]}\r\n loading={loading}\r\n >\r\n \r\n \r\n
\r\n Source:\r\n \r\n {fetchedData?.result?.sourseUrl}\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ViewNews;\r\n","import React, { FC } from \"react\";\r\nimport { List, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport CommonService from \"../../services/common.service\";\r\nimport { IInstrumentExtended } from \"../../models/instrument-extended.model\";\r\n\r\ninterface ILabel {\r\n name: string;\r\n label: string;\r\n render?: (item: any) => string;\r\n}\r\n\r\ninterface IProps {\r\n data: IInstrumentExtended;\r\n loading: boolean;\r\n}\r\n\r\nconst InstrumentInfo: FC = ({ data, loading }) => {\r\n const labels: ILabel[] = [\r\n {\r\n name: \"percentChange24H\",\r\n label: \"1 day change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"percentChange7D\",\r\n label: \"7 days change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"percentChange30D\",\r\n label: \"30 days change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"percentChange1Y\",\r\n label: \"1 year change\",\r\n render: (name) => `${getValue(name)} %`,\r\n },\r\n {\r\n name: \"marketCapitalization\",\r\n label: \"Market Capitalization\",\r\n },\r\n {\r\n name: \"volume24H\",\r\n label: \"Volume 24h USD\",\r\n },\r\n {\r\n name: \"totalSupply\",\r\n label: \"Total Supply\",\r\n },\r\n {\r\n name: \"maxSupply\",\r\n label: \"Max Supply\",\r\n },\r\n {\r\n name: \"algorithm\",\r\n label: \"Algorithm\",\r\n },\r\n {\r\n name: \"proofType\",\r\n label: \"Proof Type\",\r\n },\r\n {\r\n name: \"updatedOn\",\r\n label: \"Update on\",\r\n render: (name) => moment(getValue(name)).format(\"LLL\"),\r\n },\r\n ];\r\n\r\n const getValue = (name: string) =>\r\n CommonService.toLocalNum(CommonService.getProperty(data, name));\r\n\r\n return (\r\n \r\n

${CommonService.toLocalNum(data.priceUsd)}

\r\n (\r\n \r\n
\r\n {item.label}\r\n \r\n {item?.render ? item.render(item.name) : getValue(item.name)}\r\n \r\n
\r\n
\r\n )}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default InstrumentInfo;\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\n\r\nimport ChartRangeSelector from \"./ChartRangeSelector\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IQuotesVolumes } from \"../../models/quotes-volumes.model\";\r\n\r\nconst InstrumrntTradingVolumes: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1w\"]);\r\n\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(\r\n `${APIRoutes.QUOTES_TRADING_VOLUMES_FOR_INSTRUMENT}/${id}/${PeriodTypesArray[periodIndex]}`,\r\n {\r\n dependencies: [periodIndex],\r\n condition: !!id,\r\n }\r\n );\r\n\r\n const getOptions = (data: IQuotesVolumes[] = []) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: `Volumes`,\r\n data: CommonService.sortByDate(data)?.map((el: IQuotesVolumes) => [\r\n moment(el?.date).unix() * 1000,\r\n el?.volume24h,\r\n ]),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumrntTradingVolumes;","import React, { FC, useState } from \"react\";\r\nimport { Spin } from \"antd\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\n\r\nimport ChartRangeSelector from \"./ChartRangeSelector\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IFactorValue } from \"../../models/factorValue.model\";\r\n\r\nconst InstrumentVolatility: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(\r\n PeriodIndexTypes[\"1w\"]\r\n );\r\n\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(\r\n `${APIRoutes.QUOTES_VOLATILITY_FOR_INSTRUMENT}/${id}/${PeriodTypesArray[periodIndex]}`,\r\n {\r\n dependencies: [periodIndex],\r\n condition: !!id,\r\n }\r\n );\r\n\r\n const getOptions = (data: IFactorValue[] = []) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: \"Volatility\",\r\n data: CommonService.sortByDate(data).map(\r\n (el: IFactorValue) => [\r\n moment(el?.date).unix() * 1000,\r\n el?.value,\r\n ]\r\n ),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumentVolatility;\r\n","import React, { FC, useState } from \"react\";\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Spin } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\n\r\nimport ChartRangeSelector from \"./ChartRangeSelector\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PeriodIndexTypes, PeriodTypesArray } from \"../../services/enums\";\r\nimport HighChartsService from \"../../services/highcharts.service\";\r\nimport { IResultResponse } from \"../../models/response/result.model\";\r\nimport { IQuotes } from \"../../models/quotes.model\";\r\n\r\nconst InstrumentHistoricalChart: FC = () => {\r\n const [periodIndex, setPeriodIndex] = useState(PeriodIndexTypes[\"1m\"]);\r\n\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.QUOTES_FOR_INSTRUMENT}/${id}/${PeriodTypesArray[periodIndex]}`,\r\n {\r\n dependencies: [periodIndex],\r\n condition: !!id,\r\n }\r\n );\r\n\r\n const getOptions = (data: IQuotes[] = []) => {\r\n return {\r\n ...HighChartsService.baseSettings({\r\n series: [\r\n {\r\n name: data[0]?.instrument?.name,\r\n data: CommonService.sortByDate(data, \"settlementDate\")?.map(\r\n (el: IQuotes) => [\r\n moment(el?.settlementDate).unix() * 1000,\r\n el?.adjClose,\r\n ]\r\n ),\r\n },\r\n ],\r\n }),\r\n };\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumentHistoricalChart;\r\n","import React, { FC } from \"react\";\r\nimport { Tabs as AntdTabs } from \"antd\";\r\n\r\nimport InstrumrntTradingVolumes from \"./InstrumrntTradingVolumes\";\r\nimport InstrumentVolatility from \"./InstrumentVolatility\";\r\nimport InstrumentHistoricalChart from \"./InstrumentHistoricalChart\";\r\n\r\nconst { TabPane } = AntdTabs;\r\n\r\nconst InstrumentTabs: FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumentTabs;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport { INews } from \"../../models/news.model\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { UIRoutes } from \"../../router\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport CommonService from \"../../services/common.service\";\r\n\r\ninterface IProps {\r\n name: string;\r\n}\r\n\r\nconst InstrumentNews: FC = ({ name }) => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.NEWS}`,\r\n {\r\n dependencies: [name],\r\n defaultValue: { result: [] },\r\n query: {\r\n Search: name,\r\n },\r\n condition: !!name,\r\n }\r\n );\r\n\r\n return (\r\n \r\n
\r\n

LATEST NEWS ABOUT

\r\n\r\n \r\n {fetchedData.result?.list?.map((el: INews) => (\r\n \r\n \r\n {el.title}\r\n \r\n }\r\n actions={[{moment(el.createdOn).format(\"LLLL\")}]}\r\n className=\"mb-1 custom-card-1\"\r\n key={el.id}\r\n bordered={false}\r\n >\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default InstrumentNews;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row, Tag } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport InstrumentInfo from \"../../../components/CI10/InstrumentInfo\";\r\nimport InstrumentTabs from \"../../../components/CI10/InstrumenTabs\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IInstrumentExtended } from \"../../../models/instrument-extended.model\";\r\nimport InstrumentNews from \"../../../components/CI10/InstrumentNews\";\r\n\r\nconst ViewInstrument: FC = () => {\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet<\r\n IResultResponse\r\n >(`${APIRoutes.INSTRUMENTS}/${id}`, {\r\n defaultValue: { result: {} as IInstrumentExtended },\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {fetchedData.result?.name}\r\n {fetchedData.result.ticker}\r\n\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ViewInstrument;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Divider, Row } from \"antd\";\r\nimport moment from \"moment\";\r\nimport { EyeOutlined } from \"@ant-design/icons\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { INews } from \"../../../models/news.model\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IBlog } from \"../../../models/blog.model\";\r\n\r\nconst ViewBlog: FC = () => {\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.BLOG}/${id}`,\r\n {\r\n defaultValue: { result: {} as INews },\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {fetchedData.result?.title}\r\n \r\n }\r\n actions={[\r\n {moment(fetchedData.result?.createdOn).format(\"LLLL\")},\r\n \r\n {fetchedData.result?.watchCount}\r\n ,\r\n ]}\r\n loading={loading}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ViewBlog;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Row } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IMagicPage } from \"../../../models/magic-page\";\r\n\r\nconst Pages: FC = () => {\r\n const { id } = useParams();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.MAGIC_PAGES}/${id}`,\r\n {\r\n dependencies: [id],\r\n defaultValue: { result: {} as IMagicPage },\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {fetchedData.result?.title}\r\n \r\n }\r\n loading={loading}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Pages;\r\n","import React, { FC } from \"react\";\r\nimport { Card, Col, Divider, Row } from \"antd\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IChangeLogs } from \"../../../models/change-logs.model\";\r\n\r\nconst ChangeLogs: FC = () => {\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.CHANGE_LOGS}`,\r\n {\r\n defaultValue: { result: [] as IChangeLogs[] },\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n Change Log\r\n \r\n }\r\n loading={loading}\r\n >\r\n \r\n {fetchedData.result?.map((el: IChangeLogs, index: number) => (\r\n \r\n \r\n \r\n {el.title}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {index < fetchedData.result.length && }\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ChangeLogs;\r\n","import React, { FC } from \"react\";\r\nimport moment from \"moment\";\r\nimport { Col, Progress, Row } from 'antd';\r\nimport Highcharts from \"highcharts/highstock\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport { Card, List, Typography } from \"antd\";\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport CommonService from \"../../../services/common.service\";\r\nimport HighChartsService from \"../../../services/highcharts.service\";\r\n\r\nconst Dashboard: FC = () => {\r\n const { fetchedData: data } = useHttpGet>(\r\n APIRoutes.DASHBOARD_INSTRUMENT_MOVEMENTS,\r\n {\r\n defaultValue: {\r\n result: [],\r\n },\r\n }\r\n );\r\n\r\n const { fetchedData: subscribes, loading } = useHttpGet>(\r\n `${APIRoutes.SUNSCRIBERS}`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n resolve: () => {\r\n }\r\n }\r\n );\r\n\r\n const { fetchedData: subscribesStats } = useHttpGet>(\r\n `${APIRoutes.SUNSCRIBERS}/stats`,\r\n {\r\n defaultValue: {} as IResultResponse,\r\n reject: CommonService.showAllErrors,\r\n resolve: () => {\r\n }\r\n }\r\n );\r\n\r\n const getOptions = (data: any[]) => {\r\n const dataGrouped = CommonService.groupBy(data, \"createdOnUtc\");\r\n\r\n const chartData: any[] = [];\r\n const props = Object.getOwnPropertyNames(dataGrouped);\r\n props.forEach(f => {\r\n chartData.push({\r\n name: f,\r\n value: dataGrouped[f].length\r\n });\r\n });\r\n\r\n return {\r\n ...HighChartsService.baseSettings({\r\n chart: {\r\n type: \"column\",\r\n plotBackgroundImage: null\r\n },\r\n plotOptions: {\r\n series: {\r\n negativeColor: \"#ce3e3e\",\r\n },\r\n },\r\n series: [{\r\n name: \"Subscribers per date\",\r\n data: chartData.map(\r\n (el: any) => [\r\n moment(el?.name).unix() * 1000,\r\n el?.value,\r\n ]\r\n ),\r\n }],\r\n }),\r\n };\r\n }\r\n\r\n return (\r\n \r\n \r\n

Subscribes stats

\r\n \r\n subscribesStats?.result?.total}\r\n />\r\n

Total

\r\n \r\n\r\n \r\n subscribesStats?.result?.lastWeek}\r\n />\r\n

Last week

\r\n \r\n\r\n \r\n subscribesStats?.result?.today}\r\n />\r\n

Today

\r\n \r\n
\r\n \r\n\r\n Instrument movements}\r\n bordered\r\n dataSource={data.result}\r\n renderItem={(item: any) => (\r\n \r\n {item?.title}\r\n {item?.contemt}\r\n \r\n )}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","import React, { FC, useEffect, useState } from \"react\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport {\r\n Button,\r\n Modal,\r\n Select,\r\n Form,\r\n DatePicker,\r\n Table,\r\n Popconfirm,\r\n Switch\r\n} from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport { IInstrument } from \"../../models/instrument.model\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { CITypes, EngineModalMode, LogLevelsTypes } from \"../../services/enums\";\r\n\r\nconst { RangePicker } = DatePicker;\r\n\r\nconst Engine: FC = () => {\r\n const [hubConnection, setHubConnection] = useState(null);\r\n const [modalMode, setModalMode] = useState();\r\n const [visible, setIsModalVisible] = useState();\r\n const [logs, setLogs] = useState([]);\r\n const [instrumentIdsWithQuotesOn, setInstrumentIdsWithQuotesOn] = useState([]);\r\n const [instrumentsFilter, setInstrumentsFilter] = useState({\r\n sortPropertyName: \"sortNumber\",\r\n sortAscending: true,\r\n pageSize: 50,\r\n pageNumber: 0,\r\n loadQuotes: true,\r\n });\r\n\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData: instrumentsOptions, loading } = useHttpGet<\r\n IResultListResponse\r\n >(`${APIRoutes.INSTRUMENTS}`, {\r\n condition: !!visible,\r\n dependencies: [visible, instrumentsFilter],\r\n query: instrumentsFilter,\r\n defaultValue: {} as IResultListResponse,\r\n resolve: (response: IResultListResponse) => {\r\n\r\n // run only once on start\r\n if (instrumentIdsWithQuotesOn.length === 0) {\r\n const ids = response?.result?.list?.map((el: IInstrument) => el.id);\r\n setInstrumentIdsWithQuotesOn(ids);\r\n }\r\n },\r\n reject: CommonService.showAllErrors,\r\n });\r\n\r\n useEffect(() => {\r\n const connection = new signalR.HubConnectionBuilder()\r\n .withUrl(`${process.env.REACT_APP_ENGINE}/hubs/quotes`, {\r\n headers: {\r\n \"Access-Control-Allow-Origin\": \"*\",\r\n },\r\n })\r\n .configureLogging(signalR.LogLevel.Information)\r\n .build();\r\n\r\n setHubConnection(connection);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n start();\r\n\r\n hubConnection?.onclose(async () => {\r\n await start();\r\n });\r\n\r\n hubConnection?.on(\"log\", (response: any) => {\r\n setLogs((array) => [response, ...array]);\r\n });\r\n }, [hubConnection]);\r\n\r\n const start = async () => {\r\n try {\r\n if (hubConnection) {\r\n await hubConnection?.start();\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Information, message: \"SignalR Connected\" }, ...array]);\r\n }\r\n } catch (err: any) {\r\n console.log(err);\r\n\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err?.message ?? err }, ...array]);\r\n setTimeout(start, 5000);\r\n }\r\n };\r\n\r\n const ping = async () => {\r\n try {\r\n if (hubConnection.state === \"Connected\") {\r\n await hubConnection.invoke(\"Ping\");\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const parseNews = async () => {\r\n try {\r\n if (hubConnection.state === \"Connected\")\r\n await hubConnection.invoke(\"GetNews\");\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const updateSortForCryptos = async () => {\r\n try {\r\n if (hubConnection.state === \"Connected\")\r\n await hubConnection.invoke(\"UpdateSortForCryptos\");\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const resetSortForCryptos = async () => {\r\n try {\r\n if (hubConnection.state === \"Connected\")\r\n await hubConnection.invoke(\"ResetSortForCryptos\");\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const parsePrices = async ({\r\n instrumentIds,\r\n period,\r\n }: {\r\n instrumentIds: number[];\r\n period: any[];\r\n }) => {\r\n try {\r\n await hubConnection.invoke(\r\n \"ParsePrices\",\r\n new Date(period[0]).toISOString(),\r\n new Date(period[1]).toISOString(),\r\n instrumentIds\r\n );\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const parseMissingPrices = async ({\r\n instrumentIds,\r\n }: {\r\n instrumentIds: number[];\r\n }) => {\r\n try {\r\n await hubConnection.invoke(\"ParseMissingPrices\", instrumentIds);\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n\r\n const parseMissingGlobalHistory = async () => {\r\n try {\r\n await hubConnection.invoke(\"GetMissingGlobalHistory\");\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const generateInstrumentVolatility = async ({\r\n instrumentIds,\r\n period,\r\n }: {\r\n instrumentIds: number[];\r\n period: any[];\r\n }) => {\r\n try {\r\n await hubConnection.invoke(\r\n \"GenerateInstrumentVolatilityHistory\",\r\n new Date(period[0]).toISOString(),\r\n new Date(period[1]).toISOString(),\r\n instrumentIds\r\n );\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const generateCI = async ({\r\n ciType,\r\n period,\r\n }: {\r\n ciType: CITypes;\r\n period: any[];\r\n }) => {\r\n try {\r\n await hubConnection.invoke(\r\n \"GenerateHistoricalCIValues\",\r\n new Date(period[0]).toISOString(),\r\n new Date(period[1]).toISOString(),\r\n ciType\r\n );\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const generateCIVolotility = async ({\r\n ciType,\r\n period,\r\n }: {\r\n ciType: CITypes;\r\n period: any[];\r\n }) => {\r\n try {\r\n await hubConnection.invoke(\r\n \"GenerateCIVolatilityHistory\",\r\n new Date(period[0]).toISOString(),\r\n new Date(period[1]).toISOString(),\r\n ciType\r\n );\r\n } catch (err) {\r\n console.log(err);\r\n setLogs((array) => [{ date: new Date(), logLevel: LogLevelsTypes.Error, message: err }, ...array]);\r\n }\r\n };\r\n\r\n const onSubmitForm = async (values: any) => {\r\n switch (modalMode) {\r\n case EngineModalMode.Prices: {\r\n await parsePrices(values);\r\n break;\r\n }\r\n case EngineModalMode.CI: {\r\n await generateCI(values);\r\n break;\r\n }\r\n case EngineModalMode.CIVolotility: {\r\n await generateCIVolotility(values);\r\n break;\r\n }\r\n case EngineModalMode.InstrumentVolotility: {\r\n await generateInstrumentVolatility(values);\r\n break;\r\n }\r\n case EngineModalMode.MissingPrices: {\r\n await parseMissingPrices(values);\r\n break;\r\n }\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const getTitle = () => {\r\n switch (modalMode) {\r\n case EngineModalMode.Prices:\r\n return \"Parse Instruments Prices\";\r\n case EngineModalMode.CI:\r\n return \"Generate CI\";\r\n case EngineModalMode.CIVolotility:\r\n return \"Generate CI Volotility History\";\r\n case EngineModalMode.InstrumentVolotility:\r\n return \"Generate Instruments Volotility History\";\r\n case EngineModalMode.MissingPrices:\r\n return \"Parse Missing Prices\";\r\n }\r\n };\r\n\r\n const setEngineModalMode = (mode: EngineModalMode) => {\r\n setIsModalVisible(true);\r\n\r\n setModalMode(mode);\r\n };\r\n\r\n const handleCancel = () => {\r\n setIsModalVisible(false);\r\n const newFilter = { ...instrumentsFilter };\r\n newFilter.pageSize = 50;\r\n setInstrumentsFilter(newFilter);\r\n };\r\n\r\n const handleInstrumentSearch = (value: string) => {\r\n const newFilter = { ...instrumentsFilter };\r\n newFilter.search = value;\r\n setInstrumentsFilter(newFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Log Level\",\r\n dataIndex: \"logLevel\",\r\n key: \"logLevel\",\r\n render: (text: number) => LogLevelsTypes[text],\r\n },\r\n {\r\n title: \"Message\",\r\n dataIndex: \"message\",\r\n key: \"message\",\r\n },\r\n {\r\n title: \"Date\",\r\n dataIndex: \"date\",\r\n key: \"date\",\r\n render: (text: string) => moment(text).format(\"MM/DD/YYYY HH:mm\"),\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Parse News\r\n \r\n\r\n {\r\n form.setFieldsValue({ presets: 50 });\r\n setEngineModalMode(EngineModalMode.Prices);\r\n }}\r\n >\r\n Parse prices\r\n \r\n\r\n {\r\n form.setFieldsValue({ presets: 50 });\r\n setEngineModalMode(EngineModalMode.MissingPrices);\r\n }}\r\n >\r\n Parse Missing Prices\r\n \r\n\r\n {\r\n form.setFieldsValue({ presets: 50 });\r\n await parseMissingGlobalHistory();\r\n }}\r\n >\r\n Parse Missing Globad Market Data\r\n \r\n\r\n {\r\n setEngineModalMode(EngineModalMode.CI);\r\n }}\r\n >\r\n Generate CI\r\n \r\n\r\n {\r\n setEngineModalMode(EngineModalMode.CIVolotility);\r\n }}\r\n >\r\n Generate CI Volotility History\r\n \r\n\r\n {\r\n form.setFieldsValue({ presets: 50 });\r\n setEngineModalMode(EngineModalMode.InstrumentVolotility);\r\n }}\r\n >\r\n Generate Instruments Volotility History\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n `${record?.date} ${Math.random()}`}\r\n columns={columns}\r\n dataSource={logs}\r\n pagination={false}\r\n className=\"mt-2\"\r\n />\r\n\r\n \r\n Cancel\r\n ,\r\n ]}\r\n onCancel={handleCancel}\r\n width={1000}\r\n >\r\n \r\n {modalMode !== EngineModalMode.MissingPrices && (\r\n \r\n \r\n \r\n )}\r\n\r\n {(modalMode === EngineModalMode.Prices ||\r\n modalMode === EngineModalMode.InstrumentVolotility ||\r\n modalMode === EngineModalMode.MissingPrices) && (\r\n <>\r\n \r\n {\r\n if (checked) {\r\n form.setFieldsValue({ instrumentIds: instrumentIdsWithQuotesOn })\r\n }\r\n }} />\r\n \r\n\r\n \r\n \r\n {instrumentsOptions.result?.list?.map((el: IInstrument) => (\r\n \r\n {el.name} [{el.id}]\r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n\r\n {(modalMode === EngineModalMode.CI ||\r\n modalMode === EngineModalMode.CIVolotility) && (\r\n \r\n \r\n \r\n CI 10\r\n \r\n \r\n CI 20\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Engine;\r\n","import React, { FC } from \"react\";\r\nimport { Card } from \"antd\";\r\nimport Engine from \"../../../components/Engine\";\r\n\r\nconst EngineApp: FC = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EngineApp;\r\n","import { Card } from \"antd\";\r\nimport React, { FC } from \"react\";\r\n\r\ninterface IProps {\r\n children: React.ReactNode;\r\n title: string;\r\n extra?: React.ReactNode;\r\n}\r\n\r\nconst PageTemplate: FC = ({ children, title, extra }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PageTemplate;\r\n","import React, { createRef } from \"react\";\r\nimport { Button, Input, Space } from \"antd\";\r\nimport Highlighter from \"react-highlight-words\";\r\nimport { SearchOutlined } from \"@ant-design/icons\";\r\n\r\nexport interface IFilterDropdown {\r\n setSelectedKeys: (keys: any[]) => void;\r\n selectedKeys: any[];\r\n confirm: (obj?: { closeDropdown: boolean }) => void;\r\n clearFilters: () => void;\r\n}\r\n\r\nconst getColumnSearchProps = (dataIndex: string) => {\r\n const searchInput = createRef();\r\n\r\n const state = {\r\n searchText: \"\",\r\n searchedColumn: \"\",\r\n };\r\n\r\n const handleSearch = (\r\n selectedKeys: any[],\r\n confirm: () => void,\r\n dataIndex: string\r\n ) => {\r\n confirm();\r\n\r\n state.searchText = selectedKeys[0];\r\n state.searchedColumn = dataIndex;\r\n };\r\n\r\n const handleReset = (clearFilters: () => void) => {\r\n clearFilters();\r\n state.searchText = \"\";\r\n };\r\n\r\n return {\r\n filterDropdown: ({\r\n setSelectedKeys,\r\n selectedKeys,\r\n confirm,\r\n clearFilters,\r\n }: IFilterDropdown) => (\r\n
\r\n \r\n setSelectedKeys(e.target.value ? [e.target.value] : [])\r\n }\r\n onPressEnter={() => handleSearch(selectedKeys, confirm, dataIndex)}\r\n style={{ marginBottom: 8, display: \"block\" }}\r\n />\r\n \r\n handleSearch(selectedKeys, confirm, dataIndex)}\r\n icon={}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n Search\r\n \r\n {\r\n handleReset(clearFilters);\r\n confirm();\r\n }}\r\n size=\"small\"\r\n style={{ width: 90 }}\r\n >\r\n Reset\r\n \r\n {\r\n confirm({ closeDropdown: false });\r\n\r\n state.searchText = selectedKeys[0];\r\n state.searchedColumn = dataIndex;\r\n }}\r\n >\r\n Filter\r\n \r\n \r\n
\r\n ),\r\n filterIcon: (filtered: boolean) => (\r\n \r\n ),\r\n onFilter: (value: any, record: any) =>\r\n record[dataIndex]\r\n ? record[dataIndex]\r\n .toString()\r\n .toLowerCase()\r\n .includes(value.toLowerCase())\r\n : \"\",\r\n onFilterDropdownVisibleChange: (visible: boolean) => {\r\n if (visible) {\r\n setTimeout(() => searchInput.current.select(), 100);\r\n }\r\n },\r\n render: (text: string | number) =>\r\n state.searchedColumn === dataIndex ? (\r\n \r\n ) : (\r\n text\r\n ),\r\n };\r\n};\r\n\r\nexport default getColumnSearchProps;\r\n","import React, { FC, useState } from \"react\";\r\nimport {\r\n Table,\r\n Menu,\r\n Button,\r\n Dropdown,\r\n Popconfirm,\r\n TablePaginationConfig,\r\n} from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IUser } from \"../../models/user.model\";\r\nimport getColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\nimport { MenuOutlined } from \"@ant-design/icons\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport { PrivateUIRoutes } from \"../../router\";\r\n\r\nconst List: FC = () => {\r\n const [filter, setFilter] = useState({\r\n search: null,\r\n sortPropertyName: null,\r\n sortAscending: false,\r\n });\r\n\r\n const [pagination, setPagination] = useState({\r\n showSizeChanger: true,\r\n pageSizeOptions: [\"30\", \"50\", \"100\"],\r\n defaultPageSize: 30,\r\n pageSize: 30,\r\n current: 1,\r\n total: 1,\r\n });\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.USERS}`, {\r\n dependencies: [filter],\r\n query: {\r\n ...filter,\r\n pageSize: pagination.pageSize,\r\n pageNumber: pagination.current - 1,\r\n },\r\n defaultValue: {} as IResultListResponse,\r\n reject: CommonService.showAllErrors,\r\n resolve: (response) => {\r\n setPagination({ ...pagination, total: response.result.totalElementsCount });\r\n }\r\n });\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n sorter: any\r\n ) => {\r\n setPagination({ ...pagination, ...newPagination });\r\n\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.email = filters?.email?.length > 0 ? filters?.email[0] : null;\r\n newFilter.name = filters?.name?.length > 0 ? filters?.name[0] : null;\r\n\r\n if (!!sorter) {\r\n newFilter.sortPropertyName = sorter.field;\r\n newFilter.sortAscending = sorter?.order === \"ascend\";\r\n }\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const menu = (record: IUser) => (\r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n\r\n \r\n { }}\r\n onCancel={() => { }}\r\n okText=\"Yes\"\r\n cancelText=\"No\"\r\n >\r\n Delete\r\n \r\n \r\n \r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"Name\",\r\n dataIndex: \"name\",\r\n ...getColumnSearchProps(\"name\"),\r\n sorter: true,\r\n },\r\n {\r\n title: \"Email\",\r\n dataIndex: \"email\",\r\n sorter: true,\r\n ...getColumnSearchProps(\"email\"),\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n render: (text: any, record: IUser) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import React, { FC } from \"react\";\r\nimport { Button } from \"antd\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport PageTemplate from \"../../../components/Layout/Common/PageTemplate\";\r\nimport List from \"../../../components/Users/List\";\r\nimport { PrivateUIRoutes } from \"../../../router\";\r\n\r\nconst UsersList: FC = () => {\r\n const navigate = useNavigate();\r\n\r\n const createHandler = () => {\r\n navigate(\r\n `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.CREATE_USER}`\r\n );\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UsersList;\r\n","import { AxiosResponse } from \"axios\";\r\n\r\nimport RequestsService from \"./requests.service\";\r\nimport { APIRoutes } from \"../http\";\r\nimport { IResultResponse } from \"../models/response/result.model\";\r\nimport { IUser } from \"../models/user.model\";\r\n\r\nexport default class UserService {\r\n static async create(\r\n user: IUser\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.USERS,\r\n user\r\n );\r\n }\r\n\r\n static async update(\r\n user: IUser\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.USERS}/${user.id}`,\r\n user\r\n );\r\n }\r\n\r\n static async updatePassword(\r\n userId: string,\r\n password: string\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.USERS}/${userId}/password/change`,\r\n {\r\n newPassword: password,\r\n }\r\n );\r\n }\r\n}\r\n","import React, { FC, useState } from \"react\";\r\nimport { Form, Input, Button, FormInstance, Select, notification } from \"antd\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport CommonService from \"../../services/common.service\";\r\nimport { UserRoleTypes } from \"../../services/enums\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { IUser } from \"../../models/user.model\";\r\nimport UserService from \"../../services/user.service\";\r\nimport { PrivateUIRoutes } from \"../../router\";\r\n\r\ninterface IProps {\r\n data: IUser;\r\n form: FormInstance;\r\n}\r\n\r\nconst UserForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const navigate = useNavigate();\r\n\r\n const create = async (values: IUser) => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await UserService.create(values);\r\n\r\n if (values.password) {\r\n try {\r\n await updatePassword(response.data.result.id, values.password);\r\n\r\n checkFinishHandler(\"created\");\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n } else {\r\n checkFinishHandler(\"created\");\r\n }\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const update = async (values: IUser) => {\r\n setLoading(true);\r\n\r\n try {\r\n await UserService.update({ ...data, ...values });\r\n\r\n if (values.password) {\r\n try {\r\n await updatePassword(data?.id, values.password);\r\n\r\n checkFinishHandler(\"updated\");\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n } else {\r\n checkFinishHandler(\"updated\");\r\n }\r\n } catch (errors: any) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const updatePassword = async (userId: string, password: string) => {\r\n return UserService.updatePassword(userId, password);\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `User has been ${message}` });\r\n\r\n setLoading(false);\r\n\r\n navigate(`/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.USERS}`);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n if (!!data?.id) {\r\n await update(values);\r\n } else {\r\n await create(values);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserForm;\r\n","import React, { FC } from \"react\";\r\nimport { Form, Spin } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport PageTemplate from \"../../../components/Layout/Common/PageTemplate\";\r\nimport UserForm from \"../../../components/Users/Form\";\r\nimport { IUser } from \"../../../models/user.model\";\r\n\r\nconst UserEdit: FC = () => {\r\n const { id } = useParams();\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.USERS}/${id}`,\r\n {\r\n defaultValue: { result: {} as any },\r\n condition: !!id,\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue(response.result),\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserEdit;\r\n","import { AxiosResponse } from \"axios\";\r\n\r\nimport RequestsService from \"./requests.service\";\r\nimport { APIRoutes } from \"../http\";\r\nimport { IResultResponse } from \"../models/response/result.model\";\r\nimport { IInstrument } from \"../models/instrument.model\";\r\n\r\nexport default class InstrumentService {\r\n static async create(\r\n instrument: IInstrument\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.INSTRUMENTS,\r\n instrument\r\n );\r\n }\r\n\r\n static async update(\r\n instrument: IInstrument\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.INSTRUMENTS}`,\r\n instrument\r\n );\r\n }\r\n\r\n static async updateLoadQuotes(\r\n instrumentId: number\r\n ): Promise>> {\r\n return RequestsService.patchMethod>(\r\n `${APIRoutes.INSTRUMENTS}/toggleLoadQuotes/${instrumentId}`,\r\n\r\n );\r\n }\r\n\r\n static async toggleForIndex(\r\n instrumentId: number,\r\n indexId: number\r\n ): Promise>> {\r\n return RequestsService.patchMethod>(`${APIRoutes.INSTRUMENTS}/toggleForIndex/${instrumentId}/${indexId}`);\r\n }\r\n\r\n static async toggleIncludeInRibbon(\r\n instrumentId: number,\r\n ): Promise>> {\r\n return RequestsService.patchMethod>(`${APIRoutes.INSTRUMENTS}/toggleIncludeInRibbon/${instrumentId}`);\r\n }\r\n\r\n static async uploadImage(\r\n instrumentId: number,\r\n file: FormData\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.INSTRUMENTS}/${instrumentId}/uploadImage`,\r\n file\r\n );\r\n }\r\n}\r\n","import React, { FC, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n FormInstance,\r\n notification,\r\n Checkbox,\r\n Upload,\r\n Image,\r\n Select,\r\n InputNumber\r\n} from \"antd\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport CommonService from \"../../services/common.service\";\r\nimport { BASE_IMAGE_URL, formItemLayout } from \"../../services/constants\";\r\nimport { PrivateUIRoutes } from \"../../router\";\r\nimport { IInstrument } from \"../../models/instrument.model\";\r\nimport InstrumentService from \"../../services/instrument.service\";\r\nimport {\r\n CloseCircleOutlined,\r\n LoadingOutlined,\r\n UploadOutlined,\r\n} from \"@ant-design/icons\";\r\n\r\ninterface IProps {\r\n data: IInstrument;\r\n form: FormInstance;\r\n}\r\n\r\nconst InstrumentForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [changedFile, setChangedFile] = useState(null);\r\n const [changedFileBase64, setChangedFileBase64] = useState(null);\r\n\r\n const navigate = useNavigate();\r\n\r\n const create = async (values: IInstrument) => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await InstrumentService.create({\r\n ...values,\r\n image: \"-\",\r\n });\r\n\r\n if (changedFile) {\r\n try {\r\n await uploadImage(\r\n response.data?.result?.id,\r\n CommonService.prepareFormData(changedFile)\r\n );\r\n\r\n checkFinishHandler(\"created\");\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n } else {\r\n checkFinishHandler(\"created\");\r\n }\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const update = async (values: IInstrument) => {\r\n setLoading(true);\r\n\r\n try {\r\n await InstrumentService.update({ ...data, ...values });\r\n\r\n if (changedFile) {\r\n try {\r\n await uploadImage(\r\n data?.id,\r\n CommonService.prepareFormData(changedFile)\r\n );\r\n\r\n checkFinishHandler(\"updated\");\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n } else {\r\n checkFinishHandler(\"updated\");\r\n }\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const uploadImage = async (instrumentId: number, file: FormData) => {\r\n return InstrumentService.uploadImage(instrumentId, file);\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `Instrument has been ${message}` });\r\n\r\n setLoading(false);\r\n\r\n navigate(`/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.INSTRUMENTS}`);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const beforeUpload = (file: File) => {\r\n if (file.size / 1024 / 1024 > 5) {\r\n notification.error({ message: \"Image must smaller than 5MB!\" });\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const handleChangeFile = (info: any) => {\r\n setChangedFile(info.file);\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", () => setChangedFileBase64(reader.result));\r\n reader.readAsDataURL(info.file);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n if (!!data?.id) {\r\n await update(values);\r\n } else {\r\n await create(values);\r\n }\r\n };\r\n\r\n const uploadButton = (\r\n
\r\n {loading ? : }\r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {data.image && (\r\n \r\n )}\r\n \r\n \r\n {changedFileBase64 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n uploadButton\r\n )}\r\n \r\n\r\n {changedFile && (\r\n {\r\n setChangedFile(null);\r\n setChangedFileBase64(null);\r\n }}\r\n />\r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumentForm;\r\n","import React, { FC } from \"react\";\r\nimport { Form, Spin } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport useHttpGet from \"../../../hooks/useHttpGet\";\r\nimport { APIRoutes } from \"../../../http\";\r\nimport { IResultResponse } from \"../../../models/response/result.model\";\r\nimport PageTemplate from \"../../../components/Layout/Common/PageTemplate\";\r\nimport InstrumentForm from \"../../../components/Instruments/Form\";\r\nimport { IInstrument } from \"../../../models/instrument.model\";\r\n\r\nconst InstrumentEdit: FC = () => {\r\n const { id } = useParams();\r\n const [form] = Form.useForm();\r\n\r\n const { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.INSTRUMENTS}/${id}`,\r\n {\r\n defaultValue: { result: {} as any },\r\n condition: !!id,\r\n resolve: (response: IResultResponse) =>\r\n form.setFieldsValue(response.result),\r\n }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumentEdit;\r\n","import React, { FC, useState, useEffect } from \"react\";\r\nimport {\r\n Table,\r\n Menu,\r\n Button,\r\n Dropdown,\r\n Popconfirm,\r\n TablePaginationConfig,\r\n Switch,\r\n} from \"antd\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { MenuOutlined } from \"@ant-design/icons\";\r\nimport getColumnSearchProps from \"../Layout/Common/Adapters/TableFilter\";\r\nimport useHttpGet from \"../../hooks/useHttpGet\";\r\nimport { IResultListResponse } from \"../../models/response/result-list.model\";\r\nimport { APIRoutes } from \"../../http\";\r\nimport CommonService from \"../../services/common.service\";\r\nimport InstrumentService from \"../../services/instrument.service\";\r\nimport { IInstrument } from \"../../models/instrument.model\";\r\nimport { PrivateUIRoutes } from \"../../router\";\r\n\r\nconst List: FC = () => {\r\n const [filter, setFilter] = useState({\r\n search: null,\r\n sortPropertyName: \"sortNumber\",\r\n sortAscending: true,\r\n updateTrigger: 0\r\n });\r\n\r\n const [pagination, setPagination] = useState({\r\n showSizeChanger: true,\r\n pageSizeOptions: [\"30\", \"50\", \"100\"],\r\n defaultPageSize: 30,\r\n pageSize: 30,\r\n current: 1,\r\n total: 1,\r\n });\r\n\r\n let { fetchedData, loading } = useHttpGet>(\r\n `${APIRoutes.INSTRUMENTS}`,\r\n {\r\n dependencies: [filter],\r\n query: {\r\n ...filter,\r\n pageSize: pagination.pageSize,\r\n pageNumber: pagination.current - 1,\r\n },\r\n defaultValue: {} as IResultListResponse,\r\n reject: CommonService.showAllErrors,\r\n resolve: (response) => {\r\n setPagination({ ...pagination, total: response.result.totalElementsCount });\r\n }\r\n }\r\n );\r\n\r\n const handleTableChange = (\r\n newPagination: TablePaginationConfig,\r\n filters: any,\r\n sorter: any\r\n ) => {\r\n setPagination({ ...pagination, ...newPagination });\r\n\r\n const newFilter: any = { ...filter };\r\n\r\n newFilter.search = filters?.name?.length > 0 ? filters?.name[0] : null;\r\n\r\n if (!!sorter) {\r\n newFilter.sortPropertyName = sorter.field;\r\n newFilter.sortAscending = sorter?.order === \"ascend\";\r\n }\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const handleLoadQuotesChange = async (instrument: IInstrument) => {\r\n await InstrumentService.updateLoadQuotes(instrument.id);\r\n\r\n const newFilter: any = { ...filter };\r\n newFilter.updateTrigger = new Date().getMilliseconds();\r\n setFilter(newFilter);\r\n };\r\n\r\n const handleRibbonToggleChange = async (instrument: IInstrument) => {\r\n await InstrumentService.toggleIncludeInRibbon(instrument.id);\r\n\r\n const newFilter: any = { ...filter };\r\n newFilter.updateTrigger = new Date().getMilliseconds();\r\n setFilter(newFilter);\r\n };\r\n\r\n const menu = (record: IInstrument) => (\r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n\r\n \r\n { }}\r\n onCancel={() => { }}\r\n okText=\"Yes\"\r\n cancelText=\"No\"\r\n >\r\n Delete\r\n \r\n \r\n \r\n );\r\n\r\n const columns = [\r\n {\r\n title: \"Sort Rank\",\r\n dataIndex: \"sortNumber\",\r\n sorter: true,\r\n },\r\n {\r\n title: \"Name\",\r\n dataIndex: \"name\",\r\n ...getColumnSearchProps(\"name\"),\r\n },\r\n {\r\n title: \"Ticker\",\r\n dataIndex: \"ticker\",\r\n },\r\n {\r\n title: \"Load Quotes\",\r\n dataIndex: \"loadQuotes\",\r\n sorter: true,\r\n render: (text: any, record: IInstrument) => {\r\n return ( handleLoadQuotesChange(record)} />);\r\n }\r\n },\r\n {\r\n title: \"Ribbon?\",\r\n dataIndex: \"isInRibbon\",\r\n sorter: true,\r\n render: (text: any, record: IInstrument) => {\r\n return ( handleRibbonToggleChange(record)} />);\r\n }\r\n },\r\n {\r\n title: \"\",\r\n dataIndex: \"id\",\r\n render: (text: any, record: IInstrument) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default List;\r\n","import React, { FC } from \"react\";\r\nimport { Button } from \"antd\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport PageTemplate from \"../../../components/Layout/Common/PageTemplate\";\r\nimport { PrivateUIRoutes } from \"../../../router\";\r\nimport List from \"../../../components/Instruments/List\";\r\n\r\nconst InstrumentsList: FC = () => {\r\n const navigate = useNavigate();\r\n\r\n const createHandler = () => {\r\n navigate(\r\n `/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.CREATE_INSTRUMENT}`\r\n );\r\n };\r\n\r\n return (\r\n CREATE}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstrumentsList;\r\n","import { AxiosResponse } from \"axios\";\r\nimport RequestsService from \"./requests.service\";\r\nimport { APIRoutes } from \"../http\";\r\nimport { IResultResponse } from \"../models/response/result.model\";\r\nimport { ICryptoIndex } from \"../models/cryptoindex.model\";\r\n\r\nexport default class IndicesService {\r\n static async create(\r\n index: ICryptoIndex\r\n ): Promise>> {\r\n return RequestsService.postMethod>(\r\n APIRoutes.CRYPTO_INDEX,\r\n index\r\n );\r\n }\r\n\r\n static async update(\r\n index: ICryptoIndex\r\n ): Promise>> {\r\n return RequestsService.putMethod>(\r\n `${APIRoutes.CRYPTO_INDEX}`,\r\n index\r\n );\r\n }\r\n\r\n static async archive(\r\n indexId: number\r\n ): Promise>> {\r\n return RequestsService.deleteMethod>(\r\n `${APIRoutes.CRYPTO_INDEX}/archive/${indexId}`);\r\n }\r\n\r\n static async restore(\r\n indexId: number\r\n ): Promise>> {\r\n return RequestsService.patchMethod>(\r\n `${APIRoutes.CRYPTO_INDEX}/restore/${indexId}`);\r\n }\r\n}","import React, { FC, useState } from \"react\";\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n FormInstance,\r\n notification,\r\n InputNumber\r\n} from \"antd\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport CommonService from \"../../services/common.service\";\r\nimport { formItemLayout } from \"../../services/constants\";\r\nimport { PrivateUIRoutes } from \"../../router\";\r\nimport { ICryptoIndex } from \"../../models/cryptoindex.model\";\r\nimport IndicesService from \"../../services/indices.service\";\r\nimport { RecordState } from \"../../services/enums\";\r\n\r\nconst { TextArea } = Input;\r\n\r\ninterface IProps {\r\n data: ICryptoIndex;\r\n form: FormInstance;\r\n}\r\n\r\nconst IndexForm: FC = ({ data, form }) => {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const navigate = useNavigate();\r\n\r\n const create = async (values: ICryptoIndex) => {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await IndicesService.create({\r\n ...values\r\n });\r\n\r\n checkFinishHandler(\"created\");\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const update = async (values: ICryptoIndex) => {\r\n setLoading(true);\r\n\r\n try {\r\n await IndicesService.update({ ...data, ...values });\r\n checkFinishHandler(\"updated\");\r\n } catch (errors) {\r\n checkErrorHandler(errors);\r\n }\r\n };\r\n\r\n const checkFinishHandler = (message: string) => {\r\n notification.success({ message: `Crypto Index has been ${message}` });\r\n\r\n setLoading(false);\r\n\r\n navigate(`/${PrivateUIRoutes.CONTROL_PANEL}/${PrivateUIRoutes.INDICES}`);\r\n };\r\n\r\n const checkErrorHandler = (errors: any) => {\r\n setLoading(false);\r\n\r\n CommonService.showAllErrors(errors);\r\n };\r\n\r\n const handleSubmitForm = async (values: any) => {\r\n if (!!data?.id) {\r\n await update(values);\r\n } else {\r\n await create(values);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n