{"version":3,"sources":["components/UI/Text/index.jsx","modules/globalStyles.js","components/Header/styles.jsx","requests/userManagementRequests.js","modules/constants.js","context/socket/SocketContext.js","components/UI/Pager/PagerContext.js","components/Hooks/useQuery.jsx","requests/groupManagementRequests.js","components/Header/index.jsx","requests/quoteManagementRequests.js","components/UI/Grid/index.jsx","components/UI/forms/Range/index.jsx","modules/utilities.js","requests/apiRequests.js","components/Configurator/FormField.jsx","components/Configurator/Form.jsx","components/Configurator/ProductModel.jsx","components/Configurator/TopBar.jsx","requests/authRequests.js","components/UI/Table/styles-table.jsx","components/UI/Table/TableContext.jsx","components/UI/Table/ShimmerRows.jsx","components/UI/Table/TableHeader.jsx","components/UI/Table/TableDescriptor.jsx","components/UI/Table/TableRow.jsx","components/UI/Table/TableLayout.jsx","components/UI/SearchBar/index.jsx","components/UI/HeadingSection/index.jsx","components/UI/Pager/styles.jsx","components/UI/Pager/index.jsx","components/UI/Table/GridItem.jsx","components/UI/Table/index.jsx","components/Configurator/Modals.jsx","requests/productManagementRequests.js","requests/customerManagementRequests.js","components/Configurator/index.jsx","components/Alerts/index.jsx","components/ProductCatalog/ProductCard.jsx","components/ProductCatalog/PageView.jsx","components/ProductCatalog/index.jsx","components/UI/DataImport/index.jsx","components/Quote/Lines.jsx","requests/addressManagementRequests.js","components/Quote/Customer/AddressForm.jsx","components/Quote/Customer/CreateShippingAddress.jsx","components/Quote/Customer/index.jsx","components/Quote/Attachments.jsx","components/Quote/PrintQuote/DetailRow.jsx","components/Quote/PrintQuote/LineTable.jsx","components/Quote/PrintQuote/index.jsx","requests/paymentRequests.js","components/Payments/PaymentForm.jsx","components/Payments/StripeContainer.jsx","components/Quote/Checkout.jsx","components/Quote/Summary.jsx","requests/RMAManagementRequests.js","requests/interactionsRequests.js","components/Interactions/Form.jsx","components/Interactions/View.jsx","requests/interactionTopicRequests.js","components/Interactions/index.jsx","components/Quote/ShippingInfo.jsx","components/Quote/index.jsx","components/Quote/QuoteDashboard/QuoteTable.jsx","components/Quote/QuoteDashboard/index.jsx","components/UI/Indicator/index.jsx","components/Administration/Users.jsx","requests/roleManagementRequests.js","requests/platformManagementRequests.js","requests/publicationManagementRequests.js","components/Administration/UserDetails.jsx","components/Login/index.jsx","components/Administration/ResetPassword.jsx","modules/theme.js","components/ProductManagement/ProductForm.jsx","components/ProductManagement/index.jsx","context/configurator/ConfiguratorContextProvider.jsx","context/user/UserContextProvider.jsx","context/socket/SocketContextProvider.jsx","context/alert/AlertContextProvider.jsx","components/Administration/index.jsx","components/UI/forms/FieldArray/index.jsx","components/Administration/PlatformSettings.jsx","components/Administration/PlatformsPage.jsx","requests/statusTypesMgmtReqs.js","components/Administration/StatusTypeForm.jsx","components/Administration/StatusTypesPage.jsx","components/Administration/CustomersPage.jsx","components/Administration/AddressForm.jsx","components/Administration/CustomerForm.jsx","requests/issueReportManagementRequests.js","components/Administration/IssueReportForm.jsx","components/Administration/IssueReports.jsx","components/Administration/RoleSettingsForm.jsx","components/Administration/RolesPage.jsx","requests/themeManagementRequests.js","components/Administration/ThemesPage.jsx","components/UI/forms/ColorPicker/index.jsx","components/Administration/ThemeForm.jsx","components/OrdersPage/index.jsx","components/Administration/AllQuotes.jsx","components/ThankYouPage/index.jsx","components/Footer/index.jsx","components/Administration/GroupsPage.jsx","requests/productListManagementRequests.js","components/Administration/GroupForm.jsx","requests/rmaDetailManagementReqs.js","components/Administration/RMAsPage.jsx","components/Administration/RMADetailForm.jsx","components/Administration/RMAForm.jsx","components/HomePage/index.jsx","components/Maintenance/index.jsx","components/App/App.jsx","serviceWorker.js","index.js","components/Quote/PriceDisplay.jsx","components/UI/Shimmer/index.jsx","components/UI/forms/Radio/styles.jsx","components/UI/forms/Radio/index.jsx","components/UI/forms/Input/index.jsx","components/UI/Link/index.jsx","context/user/UserContext.js","components/UI/forms/Field/index.jsx","components/UI/Card/index.jsx","context/alert/AlertContext.js","components/UI/forms/ImageCropper/index.js","components/UI/forms/File/index.jsx","components/ProductCatalog/columns.jsx","modules/states.js","context/configurator/ConfiguratorContext.js","components/UI/Loading.js","modules/formatter.js","components/UI/Modal/styles.js","components/UI/Modal/index.jsx","modules/errorHandler.js","modules/authentication.js","modules/guid.js","components/UI/forms/Checkbox/index.jsx","components/UI/forms/Label/index.jsx","components/UI/forms/styles.jsx","components/UI/forms/ButtonCluster/index.jsx","components/UI/Button/styles.jsx","components/UI/Button/index.jsx"],"names":["BaseText","styled","div","width","w","props","center","right","linethrough","bold","ellipsis","lines","css","space","color","typography","flexbox","size","margin","Heading","Body","Helper","Currency","value","children","formatter","currency","GlobalStyle","createGlobalStyle","theme","backgroundColor","textDark","headerColor","textLight","currentHighlight","callToActionColor","imageActionColorFilter","HeaderWrapper","Flex","danger","headerTextColor","DropdownWrapper","toggleOpen","borderRadius","boxShadowColor","DropdownItems","getUser","username","signal","axios","post","status","data","success","getUsers","body","result","createUser","input","res","updateUser","id","deleteUser","deleteUsers","users","self","forgotPassword","getPasswordResetRequest","passwordResetRequestId","emailNewUserPassword","password","DEFAULT_HOMEPAGE","0","1","2","3","4","5","6","7","8","9","CONFIGURATOR_MODES","MESSAGE_RULE_TYPES","Critical","Warning","Information","SocketContext","createContext","client","setClient","userLoggedIn","PagerContext","limit","offset","order","search","PagerContextProvider","defaultOrder","useState","setLimit","setOffset","setOrder","setSearch","Provider","i","useQuery","queryID","request","queryVariables","skip","_skip","forcedFilters","attributes","_queries","queries","_setQueries","setQueries","pagerContext","useContext","UserContext","__queries","__setQueries","activeUser","platform","loggedIn","useMemo","cache","useRef","setSkip","useEffect","shouldRefetch","setShouldRefetch","isLoading","setLoading","refetchQuery","useCallback","q","undefined","setData","newData","current","initialized","setInitialState","fetchData","refetched","pagerVariables","_","isEqual","controller","AbortController","abort","getGroups","Error","console","error","getGroup","createGroup","updateGroup","deleteGroup","Header","refetchTheme","useTheme","navigate","useNavigate","darkMode","setDarkMode","setActiveUser","setLoggedIn","pid","refetchHeader","setRefetchHeader","groupData","rows","groups","groupId","groupOptions","newGroups","remove","name","setToggleOpen","leftToggleOpen","setLeftToggleOpen","darkModeToggle","window","sessionStorage","setItem","signOut","send","JSON","stringify","type","content","isLoggedIn","removeItem","localStorage","currentGroup","find","allowRMAs","assignUserGroup","group","gid","className","alignItems","Link","to","constants","roleLevel","style","maxWidth","minWidth","height","minHeight","maxHeight","marginLeft","src","logo","alt","Loading","inline","length","onMouseLeave","Button","iconPosition","iconName","textOnly","onClick","icon","fa","map","key","productList","copyLineConfiguration","getQuote","isDealer","getQuoteById","getQuotes","getLines","quoteId","erpId","createLine","ErrorHandler","logError","updateLine","_id","deleteLine","createQuote","quote","updateQuote","placeOrder","deleteQuote","copyQuote","createAttachment","deleteAttachment","getCommunications","getAttachments","sendOrderStatusEmails","emails","subject","htmlBody","downloadFailedImportCSV","failedRows","get","responseType","params","url","URL","createObjectURL","link","document","createElement","href","setAttribute","appendChild","click","removeChild","revokeObjectURL","PageWrapper","Box","narrow","thumbStyles","secondary","disabled","trackStyles","gray","StyledRangeInput","FastField","ValueDisplay","span","Container","FlexContainer","Range","forwardRef","ref","noLabel","labelText","description","unit","cta","required","max","min","isFraction","step","rest","useField","field","_value","split","integer","fraction","justifyContent","Label","mb","htmlFor","decimal","float","returnString","numerator","includes","replace","denominator","Math","pow","toString","floor","ceil","x","abs","gcd","a","b","displayTop","decimalToFraction","Shimmer","innerRef","my","start","integrationParams","showFailureAlert","response","prepare","initialize","ui","configure","statusText","finish","StayOnScreenRule","StayOnTab","MoveTabAndScreenRule","FormField","ScreenOption","animateIndex","lastOptionIndex","tooltip","productId","useParams","IsRequired","ID","IsEnabled","Name","SelectableValues","Ranges","DisplayFormat","DisplayType","Caption","AutoContinueMode","IsVisible","Value","Increment","Min","Max","toLowerCase","caption","requireHttps","ConfiguratorContext","optionToFocus","setApi","api","setOptionToFocus","sessionId","setACMode","focus","scrollIntoView","block","runSubmit","_res","d","OptionToFocus","setFieldValue","useFormikContext","shouldSubmit","setShouldSubmit","throttle","clearTimeout","activeElement","timeout","setTimeout","onChange","e","target","fieldProps","ret","autoFocus","IsExecutionComplete","onFocus","checkedValue","onBlur","radioProps","options","opts","val","push","Field","as","Radio","label","reverse","display","_fv","readOnly","formattedValue","Checkbox","optionWidth","Card","isRadio","active","interactive","ImageLink","mt","typeableSelect","AnimatedField","apiCurrentPage","optionIndex","numItems","hasValue","FormComponent","currentPage","initialValues","setInitialValues","yup","shape","validationSchema","setSchema","Pages","screens","Screens","forEach","Screen","ScreenOptions","InformationLink","vals","validation","obj","numericcontrol","numerictextbox","dropdown","radiobuttonhorizontal","imageandtexthorizontal","typeabledropdown","imagedropdown","textbox","checkbox","validationObj","positive","enableReinitialize","validateOnBlur","validateOnMount","validateOnChange","onSubmit","paddingBottom","flexWrap","StyledImage","img","ProductModel","image","altText","PagesWrapper","Wrapper","BlurContainer","TopBar","setCurrentPage","autoContinueMode","configuratorMode","ConfiguredPrice","price","setShowCancel","finishConfiguration","setShowDetails","setShowCreateUser","running","setRunning","continueClick","lastScreenOption","lastValue","maxScreenOptions","slice","s","_lastScreenOption","element","getElementById","isFinishing","setFinishing","finishClick","action","listener","preventDefault","finishRef","continueRef","addEventListener","removeEventListener","numPages","setNumPages","range","setRange","getNumPages","newPages","_pageNum","handleArrowClick","direction","newOffset","mx","flex","primary","color1","color2","opacity","pointerEvents","page","login","stayLoggedIn","log","authorize","token","secret","getSecret","CheckboxWrapper","activeStageColor","accentColor","CheckboxContainer","borderColor","open","TableWrapper","StyledTable","RowWrap","gridRowBackgroundColor","StyledRow","rowClickable","expanded","heading","popout","position","zIndex","transition","transform","transformOrigin","boxShadow","StyledDescriptor","StyledCollapsible","StyledCheckbox","TableResetContainer","DetailRow","count","RowDisplayContext","ColumnDisplayContext","useTableContext","processedColumns","device","includeDropdown","_onRowClick","selections","keys","columnOrder","_setColumnOrder","setColumnOrder","initialVisibility","o","entry","getSize","header","useReducer","_refresh","forceVisRefresh","state","propertyName","visibility","configuredVisibility","setConfiguredVisibility","visibleIndices","dropdownIndices","index","columnVisibility","getVisibility","getVisibleIndices","configuredSizing","sizingReducer","arbitrarySizeReducer","change","totalSizes","arbitrarySizes","colSize","relativeSizes","Object","entries","getSizes","dropdownRow","setDropdownRow","onRowClick","row","clickable","deviceSizes","every","deviceSize","Table","instance","columns","getAllColumns","rowContent","columnDef","Array","StyledHeading","relativeSize","hasDropdown","TableHeader","React","memo","sort","last","arbitrarySize","lastArbitrarySize","headingRef","setWidthModifier","newSize","newLastSize","hover","setHover","useCustomDrag","getBoundingClientRect","left","cursor","diff","clientWidth","cutIndex","indexOf","addIndex","sizes","values","dir","newOrder","splice","dragging","onMouseDown","context","getContext","renderContent","isPlaceholder","flexRender","column","getToggleSortingHandler","textAlign","orderName","orderDirection","faArrowUp","faArrowDown","sortIcon","WidthDrag","prevSize","pixelToSize","StyledDrag","stopPropagation","HoverBar","attrs","onpickup","ondrag","ondrop","sensitivity","dragState","setDragging","startDrag","y","drag","pageX","pageY","drop","TableHeaderGroup","headers","temp","col","TableDescriptor","cell","selected","TableRow","headersRef","dropdownSelected","_checkbox","_checked","actions","getIndex","original","deselect","select","checked","onCheckboxClick","cells","getAllCells","faChevronUp","faChevronDown","headerContent","cellContent","TableLayout","setSorting","useReactTable","sorting","onSortingChange","getCoreRowModel","getHeaderGroups","ShimmerRows","getRowModel","tableLayout","Wrap","SearchButton","SearchIcon","FontAwesomeIcon","DeleteButton","SearchBar","onThrottledChange","placeholder","fieldRef","variant","fullWidth","flexGrow","borderRight","appearance","onKeyDown","grayDark","faCircleXmark","faMagnifyingGlass","HeadingSection","hideBack","hideCreate","backButtonIcon","_backButtonLink","backButtonLink","additionalElements","inlineAdditionalElements","title","centerTitle","centerSubtitle","rightSubtitle","boldSubtitle","subtitle","createButton","createButtonColor","createButtonText","createButtonIcon","_createLink","createLink","createButtonDisabled","backButtonColor","gap","flexDirection","m","ml","LeftArrow","Pager","_limitOptions","limitOptions","totalCount","dropdownOpen","setDropdownOpen","pageNum","setPageNum","handleNumberClick","option","handleLimitClick","GridItem","customGrid","item","gridSpacing","onCardClick","gridSize","elements","p","RotateWrap","CheckboxTernary","checkboxRef","Component","withDevice","gridData","forceGrid","hideSearch","hideProperties","hidePager","hideToggle","relativeLoading","hideRefetch","refetchData","AlertContext","_setSearch","newSort","newSearch","sortingFn","accessorKey","accessorFn","getValue","processColumns","rowContext","columnContext","propOpen","setPropOpen","grid","setGrid","onResetTable","spinRef","renderRows","renderGrid","relative","padding","configured","k","v","classList","add","flexShrink","sm","useMediaQuery","md","lg","xl","biggest","xs","email","CreateUserModal","show","setShow","buildUserObject","useSearchParams","newPassword","guid","GenerateGUID","roleId","checkoutType","publicUser","Modal","CancelModal","fromDealer","redirect","SummaryModal","Details","items","Detail","Type","_Caption","startsWith","priceCode","overflowY","overflowX","getProducts","getProduct","createProduct","updateProduct","deleteProduct","getCustomers","getCustomer","createCustomer","updateCustomer","deleteCustomer","Configurator","quoteReqs","paramProductId","paramConfigId","configurationId","configuratorContext","userLoading","showWarningAlert","showSuccessAlert","isReconfig","isReconfigure","setSessionId","setActiveProduct","setQuote","ImageUrl","searchParams","sourceConfigurationId","sourceHeaderId","lineNumber","LineId","product","productLoading","showCancel","showCreateUser","showDetails","quoteLoading","isPlane","customerQueryVariables","contactId","_customer","customer","startConfigurator","config","sessionID","_headerId","parse","headerId","acMode","scrollTo","isArray","Messages","message","_quoteId","line","HeaderId","imgUrl","quantity","Description","partNumber","ProductNumber","contact","quoteCreated","newId","createdByFirstName","firstName","createdByLastName","lastName","createdByUserId","newQuote","l","newUUID","newLine","quotes","pt","Form","AlertContainer","AlertCard","Alerts","alerts","setAlerts","alertRef","shouldRemove","setShouldRemove","removeAlert","alertId","child","alert","alertColor","alertText","ImgContainer","QuantityWrapper","Input","ProductCard","onProductClick","setQuantity","priceMode","useLocation","pathname","onSetQuantity","isQuickConfig","defaultPrice","quantityInStock","base64Image","discountPercentage","isNonConfigurable","PortalPricingEnabled","PriceDisplay","isUnit","fontWeight","marginRight","isNaN","Number","PageView","showPreview","setShowPreview","activeProduct","onProductPageClick","Overview","UOM","RelatedItem","mr","Columns","ProductCatalog","_isLoading","pageView","discPrice","align","DataImport","buttonLabel","showCard","files","reader","FileReader","onload","readAsText","onDrop","useDropzone","multiple","getRootProps","getInputProps","ButtonsWrapper","LineImg","Lines","refetchQuote","quoteType","importing","setImporting","_lines","lineCount","products","setIsReconfigure","setConfiguratorMode","setFromDealer","onReconfigure","findIndex","paramsObj","createSearchParams","onCopyLine","oldLine","newLines","newPrice","totalCost","sourceDetailId","detailId","onDeleteLine","onUpdateQuantity","getSelectedProduct","onAddLine","selectedProduct","_qty","newQty","dealerPrice","toFixed","discount_percentage","runImportLines","file","itemsToImport","itemCol1","itemCol2","productRows","parseInt","importError","location","reload","createAddress","updateAddress","deleteAddress","AddressWrapper","AddressForm","disableForm","resetForm","setRefetch","formToShow","setFormToShow","setEditingId","editingId","shippingAddresses","onAutofillShipping","_addressToFillId","addressToFillId","address","Address","Address2","City","State","Zip","County","Country","shippingAddressId","shippingAddress","AddressType","QuoteId","newAddresses","shippingStateCodes","filter","stateCodes","country","shipping","billingStateCodes","billing","shippingStateOptions","billingStateOptions","countryOptions","countryCodes","iso_country_code","shippingOptions","orderBy","shipAddress","onOptionClick","sameAsBilling","sOption","r","CreateShippingAddress","refetchCustomer","stateOptions","onSubmitAddress","stateValidation","customerId","newAddress","_quote","adds","handleKeys","code","keyCode","CMR","QMR","FieldWrapper","nullable","phone","companyName","shipCode","Customer","groupIds","hasERP","customersLoading","customers","customerOptions","billingAddress","altPhone","formValue","recordType","_recordKey","recordKey","customerTypedId","setCustomerTypedId","op","AttachmentWrap","Attachments","readonly","attachments","checkFileType","filetype","getIcon","encoding","mimetype","icons","fieldname","originalName","filename","path","oldAttachments","newAttachment","dataValues","onDelete","_attachments","exts","attachment","round","File","discount","ii","borderBottom","alignSelf","numval","LineTable","printing","isQuote","activeOrderId","cols","_Details","String","CustomerInfo","addresses","sameAsShipping","pl","CommunicationList","communications","comment","date","moment","format","PrintQuote","lineLoading","total","discountTotal","discountPrice","isMSRP","isDEALER","shipCodes","ShipVia","poNumber","media","printQuote","payment","amount","StripeWrapper","PaymentForm","stripe","useStripe","useElements","integration","cardOptions","iconStyle","base","iconColor","fontFamily","fontSize","fontSmoothing","invalid","createPaymentMethod","card","getElement","CardElement","paymentMethod","StripeContainer","stripeTestPromise","loadStripe","CheckoutWrapper","Checkout","viewBox","xmlns","fill","fillRule","Summary","printRef","preview","setPreview","shipCodeOptions","orderPlaced","setOrderPlaced","isCheckout","_poNumber","onPlaceOrder","onChangeShipCode","maxLength","getRMAs","getRMA","createRMAFromQuote","createRMAForAircraftParts","createRMA","updateRMA","deleteRMA","submitRMA","getInteractions","createInteraction","updateInteraction","deleteInteraction","topic","RefType","stat","interaction_type","InteractionForm","interactionId","setInteractionId","currentInteraction","interactionTopics","erpOrderNo","billingAddressId","ref_num_id","addressId","newRows","sortBy","interaction_id","updatedRecord","topicOptions","statusOptions","onCancel","hideDelete","recordAction","deleteMessage","View","site_ref","ref_seq","interaction_date","follow_date","contact_id","RefRowPointer","RecordDate","slsman","NoteExistsFlag","CreatedBy","RowPointer","UpdatedBy","CreateDate","InWorkflow","getInteractionTopics","interactionRequests","InteractionsTable","paramQuoteId","userContext","topicsLoading","interactions","__","getRefType","getStatus","InteractionDate","interaction","modalComponent","InteractionsPage","PageWrapperStyled","ShippingInfo","invoiceNum","trackingNumber","invoiceQty","shippedQty","lineDetails","hidePagination","qRs","Quote","_isDealer","setPrinting","showShippingTracking","showInteractions","setShowInteractions","showShippingInfo","setShowShippingInfo","_comms","customerData","stage","setStage","handlePrint","useReactToPrint","onPrintClick","commonProps","csiStatus","trim","totalDealerPrice","stages","component","onSetStage","_stage","onCreateRMA","rmaId","onShowShippingInfo","CreateOrderButtons","StageSelector","attachmentType","QuoteTable","allQuotes","isQuoteRequest","queryID1","isCopying","setIsCopying","currentQuote","setCurrentQuote","qData","qRefetch","qSetData","qLoading","rData","rRefetch","rSetData","rLoading","qRows","qCount","rRows","rCount","event","onDealerPricingClick","onDeleteQuote","inQuotes","newQuotes","onCopyQuote","customerName","createdDate","showAddNew","Quotes","isCreating","setIsCreating","productGridData","onCreateClick","newQuoteId","quickConfigLoading","Indicator","border","LoggedInIcon","loggedInUsers","DeleteList","ModalTitle","ModalContainer","Users","roles","platforms","user","getRoleName","role","equality","setRows","clear","rowA","rowB","compareRow","newTable","useTableSelections","deleting","setDeleting","onConfirmDelete","disableHover","borderStyle","getRoles","createRole","updateRole","deleteRole","getPlatform","defaultPlatform","getPlatforms","createPlatform","updatePlatform","getPublications","getSubscriptions","UserDetails","refetchPlatform","activeUserRole","activeUsername","userManagementRequests","showPasswordFields","setShowPasswordFields","qrSecret","setQRsecret","secretKey","setSecretKey","isMyProfile","_roles","roleData","rolesLoading","platformsData","platformsLoading","refetchUsers","userData","isDefault","userDataResult","matches","confirmPassword","when","is","then","oneOf","enableMFA","_username","_firstName","_lastName","_roleId","_checkoutType","_pid","_mfaSecret","mfaSecret","_enableMFA","platformMFA","requireMFA","runGetSecret","configUri","publicUserRoleId","checkoutTypes","_publications","publicationsLoading","_subscriptions","subscriptionsLoading","onSubscribe","onUnsubscribe","subscriptions","Items","pub","ids","identity","pair","keyvals","returnInfo","subscribed","arr","sub","Email","DerEmailAddress","isSubscribed","PublicationName","uid","dirty","isSubmitting","errors","submitForm","roleName","warning","saving","AutoSubmitToken","Login","SUN","logoDark","showForgotPassword","setForgotPassword","signUp","setSignUp","gatherToken","setGatherToken","setSecret","secretURI","setSecretURI","jwt","setJWT","isAuthorizing","setAuthorizing","runAuthorize","_token","firstThree","lastThree","isVerified","_values","pw","loginRes","platformRequiresMFA","onSubmitForgotPassword","changeToken","lastDigit","submit","getFields","yellow","pr","marginBottom","ResetPassword","userId","expirationDate","now","Date","expired","isBefore","resetId","isValidating","submitCount","airTractorTheme","breakpoints","emailLogo","tertiary","gridLineHoverBackgroundColor","gridLineHoverOpacity","gridLineHoverColor","gridRowAlternateBackgroundColor","callToActionShadow","backgroundOpposite","darkBackground","lightBackground","darkerOffset","currentHighlightShadow","darkerHighlight","textMedium","actionRequired","loadingIcon","green","indigo","info","light","orange","pink","purple","teal","white","buttonColor","altButtonColor","buttonTextWhite","inactiveStageForeColor","activeStageForeColor","completedStageColor","incompleteStageColor","backgroundOffset","ApplicationInstance","ApplicationName","Profile","Ruleset","Namespace","Server","default","ProductForm","productManagementRequests","canRefetch","setCanRefetch","refetchProduct","_platforms","platformOptions","createdByEmail","createdProduct","onTextareaInput","radioOptions","formProps","resize","onInput","ProductTable","toggle","faFileCircleExclamation","sx","overflow","textOverflow","whiteSpace","ConfiguratorContextProvider","setHeaderId","continueClicked","setContinueClicked","isLocked","setIsLocked","reviewMode","setReviewMode","UserContextProvider","dm","getItem","authentication","verifyToken","inFlight","setInFlight","setLoggedInUsers","activeOrderStatus","setActiveOrderStatus","numOrdersUpdated","setNumOrdersUpdated","updateLoggedInUsers","platformLoading","updateOrderStatus","activeOrders","numItemsUpdated","_emails","emailAddresses","qmr","swiftsellQuoteId","P","S","O","H","userResponse","currentUser","userQueryObject","matchMedia","isDark","loc","loading","wsProtocol","protocol","wsHost","hostname","wsPort","wsURL","SocketContextProvider","connectSocket","ws","WebSocket","Promise","resolve","timer","setInterval","readyState","clearInterval","initializeSocket","onmessage","userKeyVal","AlertContextProvider","showAlert","newAlert","newAlertsArray","Administration","EnhancedFieldArray","faProps","meta","fields","filteredRest","omit","FieldArrayHOC","render","csiOrderCompleteString","PlatformSettings","_requireMFA","_requireHttps","emailsString","formData","FieldArray","PlatformsPage","getStatusTypes","createStatusType","updateStatusType","deleteStatusType","visible","displayOrder","StatusTypeForm","currentType","roleCount","typeId","newObj","TF","StatusTypesPage","setTypeId","_roleLevel","statusTypes","customerManagement","CustomersPage","platformData","addressTypes","setAddressId","currentAddress","hasForm","addressType","_State","states","getStates","abbreviation","CustomerForm","currentCustomer","setAddressData","onEditAddress","setShowCreateAddress","onDeleteAddress","_shippingAddresses","showCreateAddress","getIssueReports","createIssueReport","updateIssueReport","deleteIssueReport","priority","report","IssueReportForm","issueReportId","setIssueReportId","currentIssueReport","priorityOptions","priorityLabel","statusLabel","issueReportRequests","IssueReportsPage","issueReports","statusLabels","priorityLabels","createdAt","issueReport","accessLevels","RoleSettingsForm","setRoleId","_name","_description","level","ButtonCluster","RolesPage","getThemes","getTheme","createTheme","copyTheme","updateTheme","deleteTheme","ThemesPage","themes","onCopy","svgColor","ColorPicker","handleClickOutside","contains","onChangeComplete","hex","ThemeForm","currentTheme","defaultTheme","breakPointsString","uploadFile","fieldName","OrderStatus","_status","csi","myOrders","myorders","C","OrdersPage","isMyOrders","_subtitle","dateOrderPlaced","AllQuotes","ThankYouPage","StyledFooterLogo","Footer","GroupsPage","adminPage","getProductLists","defaultCustomer","GroupForm","userIds","_userIds","_users","usersLoading","refetchUserQuery","setUserData","productLists","prodListOptions","assignUser","setTo","selectedUser","gids","getRMADetails","createRMADetail","updateRMADetail","deleteRMADetail","rmaRequests","RMAsPage","RMAs","rmaCreated","RMAId","productNumber","orderedQuantity","newRMAs","CreateRMAButton","erpOrderNum","rmaNumber","modelNo","RMADetailForm","productOptions","refetchDetails","setRmaId","setDetailData","currentDetail","timeInService","reason","invoiceNo","detailValidation","onDetailDelete","fullHeight","rmaReqs","RMAForm","currentRMA","rmaDetailsData","detailsLoading","detailRows","detailCount","setIsSubmitting","detail","onCreateDetail","lineNum","onDetailClick","renderedOptions","disableSubmit","disable","numWithQuantity","getTitle","beginning","middle","requestDate","detailColumns","attentionRequired","handleUpdateRMA","HomePage","MaintenancePage","maintenanceMessage","RequireAuth","loginPage","publicRoute","homePage","maintenanceMode","RequireAdmin","App","themeData","setThemeData","themeLoading","_theme","setTheme","Maintenance","QuoteDashboard","superUser","IssueReports","Interactions","bg","top","bottom","AppContextReceiver","StrictMode","Boolean","match","ReactDOM","navigator","serviceWorker","ready","registration","unregister","ShimmerAnimation","keyframes","delay","ShimmerFieldWrapper","ShimmerField","RadioWrap","itemNumber","aF","RadioContainer","styles","ToolTip","RadioComponent","_optionWidth","_ref","faCircleInfo","optionLabel","optionDisabled","appearChecked","touched","getParsedUrl","parser","getRelativePath","test","hash","host","externalUrl","StyledFormikField","isInput","fastField","defaultCountry","list","StyledCard","fullImage","borderWidth","onEdit","StyledImg","ImageCropper","cropper","Cropper","aspectRatio","crop","rotate","scaleX","scaleY","DropTarget","processUpload","FormData","append","uploadedFile","FileInput","isImage","preUploadCallback","postUploadCallback","setIsLoading","headerText","faCloudArrowUp","Quantity","onAddClick","onMinusClick","onPlusClick","module","exports","n","c","t","j","substr","StyledModal","StyledModalBody","CloseButton","showClose","handleBrowserBack","history","pushState","px","err","require","decoded","decode","dateNow","exp","getTime","getUsernameFromToken","random","WarningBlock","ClusterWrapper","layout","DangerWrapper","ButtonWrapper","extraButtons","handleReset","removing","setRemoving","cancelling","setCancelling","leftCluster","rightCluster","StyledButton","button","htmlElement"],"mappings":";gTAMMA,EAAWC,UAAOC,IAAG,wNAGhB,gBAAGC,EAAK,EAALA,MAAOC,EAAC,EAADA,EAAC,OAAQD,IAAgBC,GAAQ,WAEtC,SAACC,GACb,OAAIA,EAAMC,OAAe,UACrBD,EAAME,MAAc,SACjB,UAEU,SAACF,GAClB,OAAIA,EAAMG,YAAoB,gBACvB,UAEM,SAACH,GAAK,OAAMA,EAAMI,KAAO,MAAQ,SAE9C,YAA0B,IAAvBC,EAAQ,EAARA,SAAe,EAALC,MACb,GAAID,EAaF,OAZUE,cAAG,4TAQW,oBAAGD,MAAS,YAAJ,MAAG,EAAC,OAOtCE,QACAC,QACAC,aACAC,UACAC,OACAC,UAGSC,EAAUlB,kBAAOD,EAAPC,CAAgB,gEAK1BmB,EAAOnB,kBAAOD,EAAPC,CAAgB,gDAIvBoB,EAASpB,kBAAOD,EAAPC,CAAgB,mDAOzBqB,GAJOrB,kBAAOD,EAAPC,CAAgB,+EAIZ,SAAH,GAA6B,IAAvBsB,EAAK,EAALA,MAAOC,EAAQ,EAARA,SAChC,OACE,kBAACxB,EAAQ,CAACO,OAAK,OACXkB,IAAUC,SAASH,KAAyB,OAARC,QAAQ,IAARA,OAAQ,EAARA,EAAW,S,yICyiBxCG,EAzmBKC,4BAAiB,m8YAGb,SAACvB,GAAK,OAAKA,EAAMwB,MAAMC,mBAmBlC,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAIvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YAQZ,YAAQ,SAALF,MAAkBG,eAEnB,SAAC3B,GAAK,OAAKA,EAAMwB,MAAMC,mBAGvB,SAACzB,GAAK,OAAKA,EAAMwB,MAAMC,mBAKzB,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAIvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMC,mBAKvB,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAqBvB,YAAQ,SAALF,MAAkBC,mBAsGrB,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAYvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YAalC,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YASvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMI,aACZ,SAAC5B,GAAK,OAAKA,EAAMwB,MAAMK,oBAMvB,SAAC7B,GAAK,OAAKA,EAAMwB,MAAME,YAkBvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YASvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMM,qBAYvB,SAAC9B,GAAK,OAAKA,EAAMwB,MAAMM,qBAkBvB,SAAC9B,GAAK,OAAKA,EAAMwB,MAAMC,mBAEvB,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAuBxB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMK,oBAC1B,SAAC7B,GAAK,OAAKA,EAAMwB,MAAMK,oBAC5B,SAAC7B,GAAK,OAAKA,EAAMwB,MAAMK,oBAmDd,SAAC7B,GAAK,OAAKA,EAAMwB,MAAME,YA0EvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMC,mBAIpB,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAC1B,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMC,mBAQvB,SAACzB,GAAK,OAAKA,EAAMwB,MAAMC,mBAKtB,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAoCnC,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMK,oBACZ,SAAC7B,GAAK,OAAKA,EAAMwB,MAAMC,mBAG5B,SAACzB,GAAK,OAAKA,EAAMwB,MAAMK,oBAIzB,SAAC7B,GAAK,OAAKA,EAAMwB,MAAMC,mBAM7B,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAIvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YACZ,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMC,mBAM3B,SAACzB,GAAK,OAAKA,EAAMwB,MAAMK,oBAM9B,SAAC7B,GAAK,OAAKA,EAAMwB,MAAME,YACZ,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMC,mBAK3B,SAACzB,GAAK,OAAKA,EAAMwB,MAAMK,oBAMvB,SAAC7B,GAAK,OAAKA,EAAMwB,MAAMM,qBAMpB,SAAC9B,GAAK,OAAKA,EAAMwB,MAAMC,mBAGtB,SAACzB,GAAK,OAAKA,EAAMwB,MAAMC,mBAClC,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YAQtB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMO,0BAIb,SAAC/B,GAAK,OAAKA,EAAMwB,MAAMC,mBAClC,SAACzB,GAAK,OAAKA,EAAMwB,MAAME,YACZ,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YAQvB,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YAkBZ,SAAC1B,GAAK,OAAKA,EAAMwB,MAAME,YA2B3C,SAAC1B,GAAK,OAAKA,EAAMwB,MAAMI,a,8DCvlBvBI,EAAgBpC,kBAAOqC,OAAPrC,CAAY,4qBAGnB,YAAQ,SAAL4B,MAAkBG,eAM5B,YAAQ,SAALH,MAAkBU,UAQvB,YAAQ,SAALV,MAAkBW,mBAwBrBC,EAAkBxC,kBAAOqC,OAAPrC,CAAY,k9BA4B5B,YAAa,SAAVyC,WAAyC,GAAT,UAM1B,YAAQ,SAALb,MAAkBG,eACxB,gBAAGH,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,SAEvC,gBAAGD,EAAU,EAAVA,WAAYb,EAAK,EAALA,MAAK,OAChCa,EAAU,wBAAoBb,EAAMe,eAAc,MAAO,UAiBlDC,EAAgB5C,kBAAOqC,OAAPrC,CAAY,kbAM5B,YAAQ,SAAL4B,MAAkBW,mBAYnB,YAAQ,SAALX,MAAkBW,mB,sCCpHpC,06MACO,IAAMM,EAAO,uCAAG,6FAAyB,OAAhBC,EAAQ,EAARA,SAAUC,EAAM,EAANA,OAAM,SACfC,IAAMC,KAAK,iCAAkC,CAC1EH,WACAC,WACC,KAAD,EAHkB,GAGlB,SAHMG,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,GAAI,gCACjD,MAAI,2CACZ,gBARmB,sCAUPE,EAAQ,uCAAG,WAAOC,GAAI,2FACFN,IAAMC,KACnC,kCACAK,GACA,KAAD,EAHmB,GAGnB,SAHOJ,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,IAAE,2CACV,gBAToB,sCAWRC,EAAU,uCAAG,uFAAc,OAALC,EAAK,EAALA,MAAK,SACpBT,IAAMC,KAAK,oCAAqC,CAAEQ,UAAS,KAAD,EAAnE,GACW,OAAb,QADDC,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAAY,OAAHQ,QAAG,IAAHA,OAAG,EAAHA,EAAKP,MAAI,gCAElC,MAAI,2CACZ,gBALsB,sCAMVQ,EAAU,uCAAG,yFAAkB,OAATC,EAAE,EAAFA,GAAIH,EAAK,EAALA,MAAK,SACxBT,IAAMC,KAAK,oCAAqC,CAChEW,KACAH,UACC,KAAD,EAHO,GAIW,OAAb,QAJDC,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAAY,OAAHQ,QAAG,IAAHA,OAAG,EAAHA,EAAKP,MAAI,gCAElC,MAAI,2CACZ,gBARsB,sCASVU,EAAU,uCAAG,uFAAW,OAAFD,EAAE,EAAFA,GAAE,SACjBZ,IAAMC,KAAK,oCAAqC,CAAEW,OAAM,KAAD,EAAhE,GACW,OAAb,QADDF,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAAY,OAAHQ,QAAG,IAAHA,OAAG,EAAHA,EAAKP,MAAI,gCAElC,MAAI,2CACZ,gBALsB,sCAMVW,EAAW,uCAAG,yFAAoB,OAAXC,EAAK,EAALA,MAAOC,EAAI,EAAJA,KAAI,SAC3BhB,IAAMC,KAAK,qCAAsC,CACjEc,QACAC,SACC,KAAD,EAHO,GAIW,OAAb,QAJDN,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAAY,OAAHQ,QAAG,IAAHA,OAAG,EAAHA,EAAKP,MAAI,gCAElC,MAAI,2CACZ,gBARuB,sCAUXc,EAAc,uCAAG,uFAAiB,OAARnB,EAAQ,EAARA,SAAQ,SAC3BE,IAAMC,KAAK,8BAA+B,CAC1DH,SAAUA,IACT,KAAD,EAFO,GAIW,OAAb,QAJDY,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAAY,OAAHQ,QAAG,IAAHA,OAAG,EAAHA,EAAKP,MAAI,gCAElC,MAAI,2CACZ,gBAR0B,sCAoBde,EAAuB,uCAAG,uFAA+B,OAAtBC,EAAsB,EAAtBA,uBAAsB,SAClDnB,IAAMC,KACtB,iDACA,CACEkB,2BAEF,KAAD,EALQ,GAOW,OAAb,QAPDT,EAAG,cAOF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAAY,OAAHQ,QAAG,IAAHA,OAAG,EAAHA,EAAKP,MAAI,gCAElC,MAAI,2CACZ,gBAXmC,sCAavBiB,EAAoB,uCAAG,yFAA2B,OAAlBtB,EAAQ,EAARA,SAAUuB,EAAQ,EAARA,SAAQ,SAC3CrB,IAAMC,KAAK,8CAA+C,CAC1EH,SAAUA,EACVuB,SAAUA,IACT,KAAD,EAHO,GAKU,OALbX,EAAG,QAKDR,OAAc,yCAASQ,EAAIP,MAAI,gCAEhC,MAAI,2CACZ,gBATgC,sC,gBCxEpBmB,EAAmB,CAC9BC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,KAGQC,EACF,EAYEC,EAAqB,CAChCC,SAAU,EACVC,QAAS,EACTC,YAAa,G,aC3Cf,06MACA,IAMeC,EANOC,wBAAc,CAClCC,OAAQ,KACRC,UAAW,aACXC,aAAa,WAAD,4BAAE,kHAAc,kDAAf,K,yBCHFC,EAAeJ,wBAAc,CACxCK,MAAO,GACPC,OAAQ,EACRC,MAAO,CAAC,KAAM,OACdC,OAAQ,KA2BKC,EAxBc,SAAH,GAAoC,IAA9BzE,EAAQ,EAARA,SAAU0E,EAAY,EAAZA,aACxC,EAA0BC,mBAAS,IAAG,mBAA/BN,EAAK,KAAEO,EAAQ,KACtB,EAA4BD,mBAAS,GAAE,mBAAhCL,EAAM,KAAEO,EAAS,KACxB,EAA0BF,mBAASD,GAAgB,CAAC,KAAM,QAAO,mBAA1DH,EAAK,KAAEO,EAAQ,KACtB,EAA4BH,mBAAS,IAAG,mBAAjCH,EAAM,KAAEO,EAAS,KAExB,OACE,kBAACX,EAAaY,SAAQ,CACpBjF,MAAO,CACLsE,QACAO,WACAN,SACAO,YACAN,QACAO,WACAN,SACAO,cAGD/E,I,aC3BP,kmGAAAiF,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAKA,IAsMeC,EAtME,SAAH,GASP,IARLC,EAAO,EAAPA,QACAC,EAAO,EAAPA,QACAC,EAAc,EAAdA,eAAe,EAAD,EACdC,KAAMC,OAAK,OAAQ,MACnBC,qBAAa,MAAG,KAAI,MACpBC,kBAAU,MAAG,KAAI,EACRC,EAAQ,EAAjBC,QACYC,EAAW,EAAvBC,WAEMC,EAAeC,qBAAW3B,GAChC,EAMI2B,qBAAWC,KALJC,EAAS,EAAlBN,QACYO,EAAY,EAAxBL,WACAM,EAAU,EAAVA,WACAC,EAAQ,EAARA,SACAC,EAAQ,EAARA,SAGF,EAAgCC,mBAC9B,kBACIZ,GAAcE,EACZ,CAAED,QAAQ,eAAMD,GAAYG,WAAYD,GACxC,CAAED,QAAQ,eAAMM,GAAaJ,WAAYK,KAC/C,CAACD,EAAWC,EAAcR,EAAUE,IAL9BD,EAAO,EAAPA,QAASE,EAAU,EAAVA,WAQXU,EAAQC,iBAAO,eAAY,OAAPb,QAAO,IAAPA,OAAO,EAAPA,EAAUR,KAEpC,EAAwBR,mBAASY,GAAM,mBAAhCD,EAAI,KAAEmB,EAAO,KAEpBC,qBAAU,WACqBD,IAAxBN,IAAcE,MACTD,GAAwB,aAAZjB,KACbI,MAER,CAACA,EAAOY,EAAYE,EAAUD,EAAUjB,IAE3C,MAAyCK,GAErCM,EAFIzB,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAQC,EAAK,EAALA,MAAOC,EAAM,EAANA,OAI9B,EAA0CG,oBAAS,GAAM,mBAAlDgC,EAAa,KAAEC,EAAgB,KACtC,EAAgCjC,oBAAS,GAAM,mBAAxCkC,EAAS,KAAEC,EAAU,KAEtBC,EAAeC,uBACnB,SAAC3E,GACC,IAAM4E,EAAC,2BAAQtB,GAAO,kBAAGtD,OAAK6E,IAC9BrB,EAAWoB,GACXL,GAAiB,KAEnB,CAACjB,EAASE,IAGNsB,EAAUH,uBACd,SAACI,GACCb,EAAMc,QAAQzF,KAAOwF,EACrBvB,EAAW,2BACNF,GAAO,kBACTR,EAAO,2BAASQ,EAAQR,IAAY,IAAI,GAAF,CAAGvD,KAAMwF,SAGpD,CAACzB,EAASR,EAASU,IAGfyB,EAAchB,mBAAQ,mBAAQX,EAAQR,KAAU,CAACQ,EAASR,IAE1DoC,EAAkBP,uBAAY,WAClCnB,EAAW,2BACNF,GAAO,kBACTR,EAAU,CAAE0B,WAAW,EAAMjF,KAAM,GAAIuF,UAASJ,qBAElD,CAACpB,EAASR,EAAS4B,EAAcI,EAAStB,IAE7Ca,qBAAU,WACHY,GAAaC,MACjB,CAACD,EAAaC,IAEjB,IAAMC,EAAYR,sBAAW,uCAC3B,2FAAe,GAANxF,EAAM,EAANA,QACH8D,EAAK,CAAD,oDACJuB,EAAU,CAAD,qDAES,QAFT,EAETN,EAAMc,QAAQzF,YAAI,aAAlB,EAAoB6F,WAAS,gBAWP,OAVxBlB,EAAMc,QAAU,CACdzF,KAAsB,QAAlB,EAAE+D,EAAQR,UAAQ,aAAhB,EAAkBvD,KACxB6F,WAAW,EACXV,eACAI,UACAN,YACAa,eAAgB,CAAErD,QAAOC,SAAQC,QAAOC,UACxCa,kBAGFuB,GAAiB,GAAO,0BAKT,OADjBA,GAAiB,GACjBE,GAAW,GAAM,UAEI1B,EAAQ,yBAC3B5D,SACA6C,QACAC,SACAC,QACAC,UACGa,GAAc,IACjBI,gBACC,KAAD,GAwBgB,OAhCZzD,EAAM,OAUZuE,EAAMc,QAAU,CACdzF,KAAMI,EACNyF,WAAW,EACXV,eACAI,UACAN,YACAa,eAAgB,CAAErD,QAAOC,SAAQC,QAAOC,UACxCa,kBAEFQ,EAAW,2BACNF,GAAO,kBACTR,EAAU,CACTvD,KAAMI,EACN+E,eACAI,UACAN,YACAY,WAAW,EACXC,eAAgB,CAAErD,QAAOC,SAAQC,QAAOC,UACxCa,qBAIJyB,GAAW,GAAO,kBAEX9E,GAAM,4CACd,mDA1D0B,GA2D3B,CACEyD,EACAoB,EACAxC,EACAC,EACAC,EACAoB,EACAR,EACAE,EACA0B,EACA3B,EACAZ,EACA2C,EACAtB,EACAP,IAoCJ,OAhCAoB,qBAAU,WACHH,EAAMc,QAAQzF,MACjBgF,GAAiB,KAElB,IAEHF,qBAAU,WAENH,EAAMc,QAAQzF,OACb+F,IAAEC,QAAQrB,EAAMc,QAAQK,eAAgB,CAAErD,QAAOC,SAAQC,QAAOC,YAEjEoC,GAAiB,KAElB,CAACvC,EAAOC,EAAQC,EAAOC,IAE1BkC,qBAAU,WAENH,EAAMc,QAAQzF,OACb+F,IAAEC,QAAQrB,EAAMc,QAAQhC,eAAgBA,IAEzCuB,GAAiB,KAElB,CAACvB,IAEJqB,qBAAU,WACR,GAAIC,EAAe,CACjB,IAAMkB,EAAa,IAAIC,gBAEvB,OADAN,EAAU,CAAEhG,OAAQqG,EAAWrG,SACxB,kBAAMqG,EAAWE,YAEzB,CAACP,EAAWb,IAER,CACL/E,KAAM2E,EAAMc,QAAQzF,KACpBiF,YACAE,eACAU,WAAW,EACXN,UACAO,eAAgB,CAAErD,QAAOC,SAAQC,QAAOC,UACxCa,mB,cCvMJ,26MACO,IAAM2C,GAAS,wCAAG,WAAOjG,GAAI,iGAEdN,IAAMC,KAAK,oCAAqCK,GAAM,KAAD,EAA9D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sCAWTC,GAAQ,wCAAG,WAAOrG,GAAI,iGAEbN,IAAMC,KAAK,mCAAoCK,GAAM,KAAD,EAA7D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAToB,sCAWRE,GAAW,wCAAG,WAAOtG,GAAI,iGAEhBN,IAAMC,KAAK,sCAAuCK,GAAM,KAAD,EAAhE,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATuB,sCAWXG,GAAW,wCAAG,WAAOvG,GAAI,iGAEhBN,IAAMC,KAAK,sCAAuCK,GAAM,KAAD,EAAhE,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATuB,sCAWXI,GAAW,wCAAG,WAAOxG,GAAI,iGAEhBN,IAAMC,KAAK,sCAAuCK,GAAM,KAAD,EAAhE,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATuB,sC,uBC7CxB,26MAwBA,IA+WeK,GA/WA,SAAH,GAA0B,IAApBC,EAAY,EAAZA,aACXpI,EAAQqI,qBACRC,EAAWC,cACjB,EAaI7C,qBAAWC,KAZdG,EAAU,EAAVA,WACA0C,EAAQ,EAARA,SACAC,EAAW,EAAXA,YACAvH,EAAQ,EAARA,SACAwH,EAAa,EAAbA,cACA1C,EAAQ,EAARA,SACA2C,EAAW,EAAXA,YACA5C,EAAQ,EAARA,SACA6C,EAAG,EAAHA,IACAC,EAAa,EAAbA,cACAC,EAAgB,EAAhBA,iBAGOlF,GAFe,EAAtB4C,UAEkBd,qBAAWhC,GAAtBE,QAER,EAIIiB,EAAS,CACZC,QAAS,eACTE,eAAgB,CAAE4D,MAAK1H,YACvBiE,cAAe,GACfF,MAAOe,EACPjB,QAAS4C,KARHoB,EAAS,EAAfxH,KACAmF,EAAY,EAAZA,aACAF,EAAS,EAATA,UASDH,qBAAU,WACLwC,IAAkBrC,IACrBE,IACAoC,GAAiB,MAEhB,CAACtC,EAAWqC,EAAenC,EAAcoC,IAE5C,IAA6C,GAAfC,GAAa,IAAnCC,KAAMC,OAAM,MAAG,GAAE,EAEjBC,GAAYpD,GAAc,IAA1BoD,QAEFC,EAAelD,mBAAQ,WAC5B,KAAc,OAAT8C,QAAS,IAATA,OAAS,EAATA,EAAWC,MAAM,OAAO,KAC7B,IAAMI,EAAS,YAAgB,OAATL,QAAS,IAATA,OAAS,EAATA,EAAWC,MAEjC,OADA1B,IAAE+B,OAAOD,GAAW,YAAK,OAAK,EAAPpH,KAAsBkH,KACtCE,IACL,CAACL,EAAWG,IAEPI,GAASvD,GAAY,IAArBuD,KAER,EAAoChF,oBAAS,GAAM,mBAA5CzD,EAAU,KAAE0I,EAAa,KAChC,EAA4CjF,oBAAS,GAAM,oBAApDkF,GAAc,MAAEC,GAAiB,MAElCC,GAAiB/C,uBAAY,WAClCgD,OAAOC,eAAeC,QAAQ,YAAarB,GAC3CC,GAAaD,GACbJ,MACE,CAACI,EAAUJ,EAAcK,IAEtBqB,GAAUnD,sBAAW,uBAAC,uFASxB,OARKzF,EAAiB4E,EAAjB5E,SAAUc,EAAO8D,EAAP9D,GACd4B,GACHA,EAAOmG,KACNC,KAAKC,UAAU,CACdC,KAAM,YACNhJ,WACAiJ,QAAS,CAAEC,YAAY,MAEvB,SAEGrI,EAAW,CAAEC,KAAIH,MAAO,CAAEuI,YAAY,KAAW,KAAD,EACtDT,OAAOC,eAAeS,WAAW,SACjCV,OAAOW,aAAaD,WAAW,SAC/B3B,EAAc,IACda,GAAc,GACdE,IAAkB,GAClBd,GAAY,GACZL,EAAS,UACT5B,IAAe,4CACb,CAACZ,EAAYlC,EAAQ8E,EAAeC,EAAaL,EAAU5B,IAExD6D,GAAetE,mBAAQ,WAG5B,OAFqBqB,IAAEkD,KAAKvB,GAAQ,YAAK,OAAK,EAAPjH,KAAsBkH,OAG3D,CAACA,EAASD,IAELwB,IAAc1E,GAAY,IAA1B0E,UAmBFC,GAAkB/D,sBAAW,wCAClC,WAAOgE,GAAK,0EAIoC,OAH/CrC,EAAS,mBACGsC,GAAQD,GAAS,IAArB3I,GACAA,GAAO8D,GAAc,IAArB9D,GACR0G,EAAc,2BAAK5C,GAAU,IAAEoD,QAAS0B,KAAO,SACzC7I,EAAW,CAAEC,KAAIH,MAAO,CAAEqH,QAAS0B,KAAS,KAAD,sCACjD,mDAPiC,GAQlC,CAAC9E,EAAYwC,EAAUI,IAGxB,OACC,kBAAClI,EAAa,CAACqK,UAAU,WAAWrC,SAAUA,GAC7C,kBAAC,OAAI,CAACsC,WAAW,UAChB,kBAACC,EAAA,EAAI,CACJC,GACElF,EAEEmF,GAAqC,OAAVnF,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YAAa,GADpD,KAIJ,yBACCC,MAAO,CACNC,SAAU,QACVC,SAAU,OACV/M,MAAO,OACPgN,OAAQ,OACRC,UAAW,OACXC,UAAW,OACXC,WAAY,QAEbC,IAAK1L,EAAM2L,KACXC,IAAKtC,GAAQ,eAGd9C,EACA,kBAAC5F,EAAe,CAAC4H,SAAUA,GAC1B,kBAACqD,GAAA,EAAO,CAACC,QAAM,KAGhB,qCACQ,OAAN7C,QAAM,IAANA,OAAM,EAANA,EAAQ8C,QAAS,GAA+B,KAAhB,OAAVjG,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YAClC,kBAACtK,EAAe,CACfoL,aAAc,kBAAMvC,IAAkB,IACtC5I,WAAY2I,GACZhB,SAAUA,GAEV,oCACC,kBAACyD,EAAA,EAAM,CACNpB,UAAU,8BACVqB,aAAa,OACbC,SAAS,cACTC,UAAQ,EACRC,QAAS,kBAAM5C,IAAmBD,MAElC,kBAAC,IAAI,CAAC3K,UAAQ,EAACgM,UAAU,YACX,OAAZN,SAAY,IAAZA,QAAY,EAAZA,GAAcjB,OAET,OAANL,QAAM,IAANA,OAAM,EAANA,EAAQ8C,QAAS,GACjB,kBAAC,IAAe,CACfO,KAAM9C,GAAiB+C,YAAeA,kBAMzCtD,EAAO8C,OAAS,GAA+B,KAAhB,OAAVjG,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YACjC,kBAAClK,EAAa,CAAC6J,UAAU,cACvB1B,EAAaqD,KAAI,SAAC7B,GAClB,OACC,kBAACsB,EAAA,EAAM,CACNQ,IAAU,OAAL9B,QAAK,IAALA,OAAK,EAALA,EAAO3I,GACZ6I,UAAU,cACVuB,UAAQ,EACRC,QAAS,kBAAM3B,GAAgBC,IAC/BwB,SAAS,cACTD,aAAa,QAEb,kBAAC,IAAI,CAACrN,UAAQ,EAACgM,UAAU,YAClB,OAALF,QAAK,IAALA,OAAK,EAALA,EAAOrB,cAanB,kBAAC,OAAI,CAACwB,WAAW,UACdhF,GAAwC,KAAhB,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAC3B,oCACC,kBAACe,EAAA,EAAM,CACNpB,UAAU,8BACVqB,aAAa,OACbC,SAAS,iBACTC,UAAQ,EACRpB,GAAG,mBAAiB,UAIrB,kBAACiB,EAAA,EAAM,CACNpB,UAAU,8BACVqB,aAAa,OACbC,SAAS,cACTC,UAAQ,EACRpB,GAAE,oBAAyB,OAAVlF,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,WAAW,UAOxCuJ,IAA2C,QAAlB,OAAZF,SAAY,IAAZA,QAAY,EAAZA,GAAcmC,cAC3B,kBAACT,EAAA,EAAM,CACNpB,UAAU,8BACVqB,aAAa,OACbC,SAAS,SACTC,UAAQ,EACRpB,GAAE,gBAAWpC,IAAM,SA7BuB,KAqC9C,kBAAChI,EAAe,CACfoL,aAAc,kBAAMzC,GAAc,IAClC1I,WAAYA,EACZ2H,SAAUA,GAERxC,EAWD,oCACC,kBAACiG,EAAA,EAAM,CACNpB,UAAU,8BACVqB,aAAa,OACbC,SAAS,SACTC,UAAQ,EACRC,QAAS,kBAAM9C,GAAe1I,KAE9B,kBAAC,IAAI,CAAChC,UAAQ,EAACgM,UAAU,YACvB3J,IAAsB,OAAV4E,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,WAE1B,kBAAC,IAAe,CACfoL,KAAMzL,EAAa0L,YAAeA,kBAtBrC,kBAACN,EAAA,EAAM,CACNpB,UAAU,8BACVqB,aAAa,OACbC,SAAS,SACTC,UAAQ,EACRpB,GAAG,UAAQ,SAuBb,kBAAChK,EAAa,CAAC6J,UAAU,QACtB/E,GAAwC,KAAhB,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAC3B,oCACC,kBAACe,EAAA,EAAM,CACNpB,UAAU,gCACVqB,aAAa,OACbC,SAAS,cACTC,UAAQ,EACRpB,GAAG,mBAAiB,UAIrB,kBAACiB,EAAA,EAAM,CACNpB,UAAU,gCACVqB,aAAa,OACbC,SAAS,SACTC,UAAQ,EACRpB,GAAE,oBAAyB,OAAVlF,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,WAAW,WAhBG,MAsBnC,OAAV4E,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YAAa,GACzB,kBAACe,EAAA,EAAM,CACNpB,UAAU,cACVuB,UAAQ,EACRpB,GAAG,kBACHmB,SAAS,aACTD,aAAa,QAAM,kBAMrB,kBAACD,EAAA,EAAM,CACNpB,UAAU,cACVuB,UAAQ,EACRpB,GAAG,WACHmB,SAAS,SACTD,aAAa,QAAM,mBAKpB,kBAACD,EAAA,EAAM,CACNpB,UAAU,cACVuB,UAAQ,EACRF,aAAa,OACbC,SAAS,YACTnB,GAAE,qBAA0B,OAAVlF,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,WAAW,cAsB1C,kBAAC+K,EAAA,EAAM,CACNC,aAAa,OACbrB,UAAU,cACVuB,UAAQ,EACRD,SAAS,0BACTE,QAASvC,IAAQ,YAIlB,kBAACmC,EAAA,EAAM,CAACpB,UAAU,cAAcuB,UAAQ,EAACC,QAAS3C,IACjD,kBAAC,IAAe,CAAC4C,KAAM9D,EAAW+D,SAAYA,UAC9C,kBAAC,IAAI,kBACL,kBAAC,IAAe,CACfD,KAAM9D,EAAW+D,aAAgBA,cACjCnN,KAAK,a,kCC7Xb,mmGAAAwF,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAEO,IAAM+H,GAAqB,wCAAG,WAAO9K,GAAK,0FAChBT,IAAMC,KACnC,6CACAQ,GACA,KAAD,EAHmB,GAGnB,SAHON,EAAI,EAAJA,KAIO,MAJK,EAAND,SAIyB,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,MAAI,2CACZ,gBATiC,sCAWrBiL,GAAQ,wCAAG,4FAAqB,OAAZ5K,EAAE,EAAFA,GAAI6K,EAAQ,EAARA,SAAQ,SACZzL,IAAMC,KACnC,mCACA,CAAEW,KAAI6K,aACN,KAAD,EAHmB,GAGnB,SAHOtL,EAAI,EAAJA,KAIO,MAJK,EAAND,SAIyB,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,MAAI,2CACZ,gBAToB,sCAURmL,GAAY,wCAAG,0FAAW,OAAF9K,EAAE,EAAFA,GAAE,SACNZ,IAAMC,KACnC,uCACA,CAAEW,OACF,KAAD,EAHmB,GAGnB,SAHOT,EAAI,EAAJA,KAIO,MAJK,EAAND,SAIyB,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,MAAI,2CACZ,gBATwB,sCAWZoL,GAAS,wCAAG,8GAUhB,OATP5L,EAAM,EAANA,OACA6C,EAAK,EAALA,MACAC,EAAM,EAANA,OACAC,EAAK,EAALA,MACAC,EAAM,EAANA,OACAjD,EAAQ,EAARA,SACAgJ,EAAI,EAAJA,KACA9E,EAAU,EAAVA,WACAwD,EAAG,EAAHA,IACAM,EAAO,EAAPA,QAAO,SAEwB9H,IAAMC,KACnC,oCACA,CACE2C,QACAC,SACAC,QACAC,SACAjD,WACAC,SACA+I,OACA9E,aACAwD,MACAM,YAEF,KAAD,EAdmB,GAcnB,SAdO5H,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAgBD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,IAAE,2CACV,gBAhCqB,sCAkCTqL,GAAQ,wCAAG,4GASjB,OARL7L,EAAM,EAANA,OACA6C,EAAK,EAALA,MACAC,EAAM,EAANA,OACAC,EAAK,EAALA,MACAC,EAAM,EAANA,OACA8I,EAAO,EAAPA,QACA/L,EAAQ,EAARA,SACA2L,EAAQ,EAARA,SACAK,EAAK,EAALA,MAAK,SAE0B9L,IAAMC,KACnC,mCACA,CACE2C,QACAC,SACAC,QACAC,SACAhD,SACA8L,UACA/L,WACA2L,WACAK,UAEF,KAAD,EAbmB,GAanB,SAbO5L,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAeD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,IAAE,2CACV,gBA9BoB,sCAgCRwL,GAAU,wCAAG,4FAAc,OAALtL,EAAK,EAALA,MAAK,kBAELT,IAAMC,KACnC,qCACA,CAAEQ,UACF,KAAD,EAC+C,OAD/C,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,EAAKI,QAAM,QAGW,OAHX,0BAElBkG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,kBACtB,IAAE,0DAEZ,gBAbsB,sCAcVC,GAAU,wCAAG,gGAAuB,OAAdzL,EAAK,EAALA,MAAOG,EAAE,EAAFA,GAAIuL,EAAG,EAAHA,IAAG,kBAEdnM,IAAMC,KACnC,qCACA,CAAEQ,QAAOG,KAAIuL,QACb,KAAD,EAC+C,OAD/C,SAHOjM,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,QAGkB,OAHlB,0BAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,kBACtB,IAAE,0DAEZ,gBAbsB,sCA4BVG,GAAU,wCAAG,gGAAyB,OAAhBD,EAAG,EAAHA,IAAKvL,EAAE,EAAFA,GAAIiL,EAAO,EAAPA,QAAO,kBAEhB7L,IAAMC,KACnC,qCACA,CAAEkM,MAAKvL,KAAIiL,YACX,KAAD,EAC+C,OAD/C,SAHO3L,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,QAGkB,OAHlB,0BAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,kBACtB,IAAE,0DAEZ,gBAbsB,sCAeVI,GAAW,wCAAG,8FAAc,OAAL5L,EAAK,EAALA,MAAK,kBAENT,IAAMC,KACnC,sCACA,CAAEQ,UACF,KAAD,EAC+C,OAD/C,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBAC9B,QAD8B,EACzCA,EAAKI,cAAM,aAAX,EAAa+L,OAAK,QAEJ,OAFI,0BAEzB7F,QAAQC,MAAM,EAAD,IAAQ,kBACdsF,KAAaC,SAAS,EAAD,KAAO,0DAEtC,gBAZuB,sCAcXM,GAAW,wCAAG,kGAA6B,OAApB3L,EAAE,EAAFA,GAAIuL,EAAG,EAAHA,IAAK1L,EAAK,EAALA,MAAOqI,EAAI,EAAJA,KAAI,kBAErB9I,IAAMC,KACnC,sCACA,CAAEW,KAAIuL,MAAK1L,QAAOqI,SAClB,KAAD,EAC+C,OAD/C,SAHO5I,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,kCAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBAZuB,sCAaXO,GAAU,wCAAG,8FAAkB,OAAT5L,EAAE,EAAFA,GAAIH,EAAK,EAALA,MAAK,kBAETT,IAAMC,KACnC,qCACA,CAAEW,KAAIH,UACN,KAAD,EAC+C,OAD/C,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,kCAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBAZsB,sCAcVQ,GAAW,wCAAG,8FAAgB,OAAP7L,EAAE,EAAFA,GAAIuL,EAAG,EAAHA,IAAG,kBAERnM,IAAMC,KACnC,sCACA,CAAEW,KAAIuL,QACN,KAAD,EAC+C,OAD/C,SAHOjM,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,kCAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBAZuB,sCAcXS,GAAS,wCAAG,8FAAgB,OAAP9L,EAAE,EAAFA,GAAIuL,EAAG,EAAHA,IAAG,kBAENnM,IAAMC,KACnC,oCACA,CAAEW,KAAIuL,QACN,KAAD,EAC+C,OAD/C,SAHOjM,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,EAAKI,QAAM,kCAElBkG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBAZqB,sCAwDTU,GAAgB,wCAAG,4FAAc,OAALlM,EAAK,EAALA,MAAK,kBAEXT,IAAMC,KACnC,2CACA,CAAEQ,UACF,KAAD,EAE+C,OAF/C,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,kCAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBAb4B,sCA6BhBW,GAAgB,wCAAG,8FAAgB,OAAPhM,EAAE,EAAFA,GAAIuL,EAAG,EAAHA,IAAG,kBAEbnM,IAAMC,KACnC,2CACA,CAAEW,KAAIuL,QACN,KAAD,EAC+C,OAD/C,SAHOjM,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAID,MAAXD,GAAgB8L,KAAaC,SAAS9L,GAAM,kBACzCA,GAAI,kCAEXsG,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBAZ4B,sCAchBY,GAAiB,wCAAG,8FAAwB,OAAf9M,EAAM,EAANA,OAAQ8L,EAAO,EAAPA,QAAO,SACxB7L,IAAMC,KACnC,4CACA,CACE4L,UACA9L,WAEF,KAAD,EANmB,GAMnB,SANOG,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAQD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,IAAE,2CACV,gBAb6B,sCAcjBuM,GAAc,wCAAG,8FAAwB,OAAf/M,EAAM,EAANA,OAAQ8L,EAAO,EAAPA,QAAO,SACrB7L,IAAMC,KACnC,yCACA,CACE4L,UACA9L,WAEF,KAAD,EANmB,GAMnB,SANOG,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAQD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,IAAE,2CACV,gBAb0B,sCAedwM,GAAqB,wCAAG,4FAAkC,OAAzBC,EAAM,EAANA,OAAQC,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAQ,SACnDlN,IAAMC,KACtB,gDACA,CACE+M,SACAC,UACAC,aAEF,KAAD,EAPQ,GASU,OATbxM,EAAG,QASDR,OAAc,yCAASQ,EAAIP,MAAI,gCAEhC,MAAI,2CACZ,gBAbiC,sCAmD3B,I,qBAsCMgN,GAAuB,wCAAG,WAAOC,GAAU,qGAElCpN,IAAMqN,IACtB,kDACA,CAAEC,aAAc,OAChBC,OAAQ,CAAEH,gBACT,KAAD,EAJI1M,EAAG,OAMH8M,EAAMC,IAAIC,gBAAgBhN,EAAIP,OAC9BwN,EAAOC,SAASC,cAAc,MAC/BC,KAAON,EACZG,EAAKI,aAAa,WAAY,4BAC9BH,SAAStN,KAAK0N,YAAYL,GAC1BA,EAAKM,QACLL,SAAStN,KAAK4N,YAAYP,GAC1BF,IAAIU,gBAAgBX,GAAK,kDAEzB/G,QAAQC,MAAM,EAAD,IACbsF,KAAaC,SAAS,EAAD,IAAQ,0DAEhC,gBApBmC,sC,0BC1avBmC,GAAcpR,kBAAOqR,MAAPrR,CAAW,4HAMlC,YAAS,SAANsR,OAEC,CACEtE,SAAU,SAEZ,KACJnM,U,0NCPE0Q,GAAc5Q,cAAG,sVAKD,YAAQ,SAALiB,MAAkB4P,aAKnB,YAAQ,SAAL5P,MAAkB4P,aAQhC,YAAW,SAARC,UAA2B,SAGrCC,GAAc/Q,cAAG,yHAKP,YAAQ,SAALiB,MAAkB+P,QAGxBC,GAAmB5R,kBAAO6R,KAAP7R,CAAiB,w+BAmC3CuR,GAGAA,GAGAA,GAIAG,GAGAA,GAGAA,IAIOI,GAAe9R,UAAO+R,KAAI,oEAKjCC,GAAYhS,kBAAOqC,OAAPrC,CAAY,2GAMxBiS,GAAgBjS,kBAAOqC,OAAPrC,CAAY,sZAOrB,YAAW,SAARyR,SAA2B,MAAQ,OACvC,YAAW,SAARA,SAA2B,cAAgB,UAapD,gBAAG7P,EAAK,EAALA,MAAK,0CACYA,EAAMC,gBAAe,2BAChCD,EAAME,SAAQ,cA8FdoQ,GAzFDC,sBAAW,SAAC/R,EAAOgS,GAC/B,MAeIhS,EAdFiS,eAAO,OAAQ,EACfnH,EAaE9K,EAbF8K,KACAoH,EAYElS,EAZFkS,UACAC,EAWEnS,EAXFmS,YAAY,EAWVnS,EAVFoS,YAAI,MAAG,GAAE,IAUPpS,EATFgI,iBAAS,OAAQ,IASfhI,EARFqS,WAAG,OAAQ,EACXC,EAOEtS,EAPFsS,SACAjB,EAMErR,EANFqR,SAAS,EAMPrR,EALFuS,WAAG,MAAG,EAAC,IAKLvS,EAJFwS,WAAG,MAAG,EAAC,IAILxS,EAHFyS,kBAAU,OAAQ,IAGhBzS,EAFF0S,YAAI,MAAG,GAAG,EACPC,EAAI,aACL3S,EAAK,IAEHwB,EAAQqI,qBAEd,EAAsB+I,aAAS9H,GAAK,mBAA7B+H,EAAK,KAEJvJ,GAFU,MAEQ,IAAlBA,MACOwJ,GAAWD,GAAS,IAA3B3R,MAEFA,EAAQuG,mBAAQ,WACpB,IAAKqL,EAAQ,OAAON,EACpB,IAAKM,EAAQ,OAAQA,EACrB,GAAIL,EAAY,CACd,GAAsB,kBAAXK,EAAqB,CAC9B,MAAoCA,EAAOC,MAAM,MAAQ,GAA9CC,EAAO,EAAV,GAAeC,EAAQ,EAAX,GAEpB,GAAIA,EAAU,CACZ,MAAyCA,EAASF,MAAM,KAExD,OAAQC,IAFY,EAAZ,IAA4B,EAAd,GAGjB,OAAQF,EACV,OAAOA,EACT,OAAOA,IACb,CAACL,EAAYD,EAAKM,IAErB,OACE,kBAAClB,GAAS,CAACS,IAAKA,GACd,kBAAC,OAAI,CAACvS,MAAO,EAAGwM,WAAW,SAAS4G,eAAe,kBAC/CjB,GACA,kBAACkB,GAAA,EAAK,CACJb,SAAUA,EACVc,GAAKjB,EAAyB,IAAX,SACnBkB,QAASvI,GAERoH,GAGL,kBAACR,GAAY,KACVe,EAAU,UCrLY,SAACa,GAEhC,IAAM7H,EAAS,UAAM6H,GACrB,EAAiC7H,EAAUsH,MAAM,KAAtCC,EAAO,EAAV,GAAeO,EAAK,EAAR,GAChBC,EAAeD,EAAQ,GAAKP,EAEhC,GAAIO,EAAO,CACT,IAAIE,EAAYhI,EAAUiI,SAAS,KAC/BjI,EAAUkI,QAAQ,SAAU,IAC5B,EACAC,EAAcC,KAAKC,IACrB,GACAL,EAAUM,WAAWJ,QAAQ,IAAK,IAAIpG,QAEpC+F,GAAW,EACbG,GAAaA,EAAYI,KAAKG,MAAMV,GAAWM,EACtCN,IAAY,IACrBG,GAAaA,EAAYI,KAAKI,KAAKX,GAAWM,GAGhD,IAAIM,EAAIL,KAAKM,IAzBE,SAANC,EAAOC,EAAGC,GAErB,OAAOA,EAAIF,EAAIE,EAAGD,EAAIC,GAAKD,EAuBRD,CAAIX,EAAWG,IAC1BW,EAAad,EAAYS,EAAKN,EAAcM,GAAMlB,EAEtDQ,GADGR,EAAU,EACD,UAAMA,EAAO,YAAIuB,EAAU,YAAIX,EAAcM,GAC1C,UAAMT,EAAYS,EAAC,YAAIN,EAAcM,GAGxD,OAAOV,ED2JQgB,CAAkBtT,GAASsR,IAAI,OAAGJ,GACrClR,GAASsR,IAGhBL,GAAe,kBAAC,IAAM,CAACiB,GAAG,UAAUjB,GACpCnK,EACC,kBAACyM,GAAA,EAAY,MAEb,kBAAC5C,GAAa,CAACR,SAAUA,EAAUgB,IAAKA,GACtC,kBAACb,GAAgB,eACfc,SAAUA,EACV9O,GAAIsH,EACJmD,IAAKnD,EACL4J,SAAU1C,EACVlH,KAAMA,EACNuG,SAAUA,EACV3F,KAAK,QACL6G,IAAKA,EACLC,IAAKA,EACLE,KAAMA,GACFC,EAAI,CACRzR,MAAOA,MAIZoI,GACC,kBAAC,IAAI,CAACqL,GAAG,SAASlU,MAAOe,EAAMU,QAC5BoH,O,0DErNX,26MACO,IAAMsL,GAAK,wCAAG,wGAGZ,OAHY,IACnBC,yBAAiB,MAAG,GAAE,EACtBC,EAAgB,EAAhBA,iBACGnC,EAAI,qCAGkB/P,IAAMC,KAAK,6BAA6B,aAC7DgS,qBACGlC,IACF,KAAD,EAE6B,OALzBoC,EAAQ,UAK8B,OAARA,QAAQ,IAARA,GAAc,QAAN,EAARA,EAAUhS,YAAI,WAAN,EAAR,EAAgBI,SAAU,GAAtD6R,EAAO,EAAPA,QAASC,EAAU,EAAVA,WAAYC,EAAE,EAAFA,GAAE,kBAExB,CAAEF,UAASC,aAAYC,OAAI,OAGV,OAHU,yBAElC7L,QAAQC,MAAM,EAAD,IACbwL,EAAiB,EAAD,IAAQ,kBACjB,MAAI,yDAEd,gBAnBiB,sCAqBLK,GAAS,wCAAG,WAAOjS,GAAI,iGAEdN,IAAMC,KAAK,iCAAkCK,GAAM,KAAD,EAA3D,GAEU,OAFbI,EAAG,QAEDR,OAAc,sBAAQsG,MAAM9F,EAAI8R,YAAY,KAAD,2BAC5C9R,GAAG,OAEW,OAFX,yBAEV+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAVqB,sCAYT+L,GAAM,wCAAG,WAAOnS,GAAI,iGAENN,IAAMC,KAAK,8BAA+BK,GAAM,KAAD,EAAxD,OAAR6R,EAAQ,yBACPA,GAAQ,OAEM,OAFN,yBAEf1L,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBARkB,sC,cClCnB,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAiBA,I,eAAA,GXiBkC,CAChCkP,iBAAkB,EAClBC,UAAW,EACXC,qBAAsB,GWpBhBF,GAAgB,GAAhBA,iBAAkBC,GAAS,GAATA,UAAWC,GAAoB,GAApBA,qBAuZtBC,GApZG,SAAH,GAKR,IAJNC,EAAY,EAAZA,aACAC,EAAY,EAAZA,aACAC,EAAe,EAAfA,gBACAC,EAAO,EAAPA,QAEMrU,EAAQqI,qBACNiM,EAAcC,cAAdD,UAER,EAaIJ,GAAgB,GAZnBM,EAAU,EAAVA,WACAC,EAAE,EAAFA,GACAC,EAAS,EAATA,UACMpL,EAAI,EAAVqL,KACAC,EAAgB,EAAhBA,iBACAC,EAAM,EAANA,OACAC,EAAa,EAAbA,cACAC,EAAW,EAAXA,YACAC,EAAO,EAAPA,QACAC,EAAgB,EAAhBA,iBACAC,EAAS,EAATA,UACAC,EAAK,EAALA,MAGKR,EAAO1O,mBAAQ,WACpB,OAAOqD,EAAK6I,QAAQ,KAAM,KAAKA,QAAQ,KAAM,MAC3C,CAAC7I,IAEJ,GAAsC,OAANuL,QAAM,IAANA,OAAM,EAANA,EAAS,KAAM,GAAvCO,EAAS,EAATA,UAAWC,EAAG,EAAHA,IAAKC,EAAG,EAAHA,IAElBpL,EAAkB,OAAX6K,QAAW,IAAXA,OAAW,EAAXA,EAAaQ,cACpBC,EAAiB,OAAPR,QAAO,IAAPA,OAAO,EAAPA,EAAS7C,QAAQ,kBAAmB,IAEpD,EAAgBf,aAASuD,GAAlBtD,EAAuB,iBAAlB,GAGJoE,GADa/P,qBAAWC,KAAxBI,UAC6B,IAA7B0P,aAER,EACC/P,qBAAWgQ,MADJC,EAAa,EAAbA,cAAeC,EAAM,EAANA,OAAQC,EAAG,EAAHA,IAAKC,EAAgB,EAAhBA,iBAAkBC,EAAS,EAATA,UAAWC,EAAS,EAATA,UAGjE3P,qBAAU,WACkC,IAAD,EAAtCsP,IAAkBlB,GAAOpD,EAAM3R,QACjB,QAAZ,EAAC8Q,EAAIxJ,eAAO,aAAX,EAAaiP,SAClBzF,EAAIxJ,QAAQiP,QAEZzF,EAAIxJ,QAAQkP,eAAe,CAAEC,MAAO,WAGpC,CAAC1B,EAAIkB,EAAetE,EAAM3R,QAE7B,IAAM0W,EAAYzP,sBAAW,wCAC5B,8FAG4D,OAHnDjH,EAAK,EAALA,MXrEa,cWsEfwK,EAAO6K,EAAYQ,iBACQ7V,EAAQA,EAAQ,OAAS,SXzE9B,mBW0ExBwK,IAAoCxK,EAAK,UAAMA,IAAQ,SAExCiU,GAAU,CAC5BoC,YACA/T,GAAIyS,GAAMsB,EACVrW,MAAOA,GAAS,GAChB+V,eACAnB,cACE,KAAD,EANI+B,EAAI,OAOVT,EAAW,OAAJS,QAAI,IAAJA,OAAI,EAAJA,EAAM9U,MAEbuU,EAAqB,OAAJO,QAAI,IAAJA,GAAU,QAAN,EAAJA,EAAM9U,YAAI,OAAG,QAAH,EAAV,EAAY+U,SAAC,WAAT,EAAJ,EAAeC,eAAe,2CAC/C,mDAhB2B,GAiB5B,CACCxB,EACAN,EACAH,EACAmB,EACAM,EACAH,EACAE,IAIItF,EAAMrK,iBAAO,MACXqQ,EAAkBC,eAAlBD,cAER,EAAwClS,mBAAS,MAAK,mBAA/CoS,EAAY,KAAEC,GAAe,KAE9BC,GAAWzQ,iBAAO,MAExBE,qBAAU,WACT,OAAQqQ,GACP,KAAK,EACJG,aAAaD,GAAS5P,SACtB4P,GAAS5P,QAAU,KACnB2P,GAAgB,GAChB,MACD,KAAK,EACJ,GAAIC,GAAS5P,QACRgI,SAAS8H,cAAc9U,KAAOwO,EAAIxJ,QAAQhF,IAC7C2U,GAAgB,OAEX,CACN,IAAMI,EAAUC,YAAW,WAC1BH,aAAaD,GAAS5P,SAEtB2P,GAAgB,KACd,KACHC,GAAS5P,QAAU+P,EAEpB,MACD,KAAK,EAIJX,EAAU,CAAE1W,MAAO2R,EAAM3R,QACzBmX,aAAaD,GAAS5P,SACtB2P,GAAgB,MAChB,MACD,QACCC,GAAS5P,QAAU,QAGnB,CAACoP,EAAWM,EAAcrF,EAAM3R,QAEnC,IAAMuX,GAAWtQ,uBAChB,SAACuQ,GACAV,EAAc7B,EAAMuC,EAAEC,OAAOzX,OACLiX,GAAH,IAAjBD,EAAoC,EACnB,KAEtB,CAAC/B,EAAM6B,EAAeE,IAGjBU,GAAanR,mBAAQ,WAAO,IAAD,EAC1BoR,EAAG,aACRvG,SAAU0D,EACV3E,UAAa6E,EACb4C,UACC3B,IAAkBlB,KAAU,OAAHoB,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQiB,uBAAwBlG,EAAM3R,MAChE4J,KAAMqL,EACN6C,QAAS,SAACN,GACTlB,EAAUf,GACVa,EAAiBrB,IAElB/D,UAAW8E,EACXxT,GAAIyS,EACJwC,SAAU,SAACC,GAAC,OAAKV,EAAcnF,EAAM/H,KAAM4N,EAAEC,OAAOzX,QACpD8Q,MACA6D,UACAoD,aAAcpG,EAAM3R,OAASyV,GAC1B9D,GAGJ,OAAQ4D,GACP,KAAKnB,GAQL,KAAKC,GAEJsD,EAAIK,OAAST,GACb,MACD,KAAKjD,GAGJqD,EAAIJ,SAAWA,GAKjB,OAAOI,IACL,CACFpC,EACAR,EACAC,EACAF,EACAG,EACAkB,EACAV,EACAK,EACAnE,EACA4F,GACAtB,EACAK,EACAQ,EACAV,EACAzB,IAGKsD,GAAa1R,mBAClB,iBAAO,CACNiN,SAAU1C,EACV2D,eACAC,kBACAqD,aAAcpG,EAAM3R,SAErB,CAACyU,EAAcC,EAAiB/C,EAAM3R,QAGjCkY,GAAU3R,mBAAQ,WACvB,IAEgC,EAF1B4R,EAAO,GAAG,eAEAjD,GAAgB,IAAhC,2BAAkC,CAAC,IAA1BkD,EAAG,QACX,IAAKA,EAAI5C,UAAW,MACpB2C,EAAKE,KACJ,4BACClI,UAAWiI,EAAIpD,YAAcA,EAC7BjI,IAAKqL,EAAI3C,MACTzV,MAAOoY,EAAI3C,OAEV2C,EAAI9C,WAGP,8BAED,OAAO6C,IACL,CAACnD,EAAWE,IAEf,IAAKM,EAAW,OAAO,KAEvB,OAAQhL,GACP,IXnPsB,WWoPrB,OACC,kBAAC8N,GAAA,EAAK,eAACC,GAAG,UAAab,IACtB,4BAAQ1X,MAAM,GAAG+M,IAAI,WAAS,kBAG7BmL,IAIJ,IX5P8B,wBW6P7B,OACC,yBAAKnL,IAAKkI,GACT,kBAACuD,GAAA,EAAK,iBACDP,GACAP,GAAU,CACdQ,QAAShD,EAAiBpI,KAAI,SAACsL,GAAG,MAAM,CACvCpY,MAAOoY,EAAI3C,MACXgD,MACC,kBAAClM,EAAA,EAAM,CACNpB,UAAWwG,EAAM3R,QAAUoY,EAAI3C,MAAQ,UAAY,GACnDiD,QAASN,EAAI3C,QAAU9D,EAAM3R,MAC7B2M,QAAS,WACRmK,EAAcnF,EAAM/H,KAAMwO,EAAI3C,OAC9BiB,EAAU,CACT1W,MAAOoY,EAAI3C,SAGbtF,UAAWiI,EAAIpD,YAAgBA,EAC/BvJ,MAAO,CAAEkN,QAASP,EAAI5C,eAAYrO,EAAY,QAC9C5H,MACC6Y,EAAI3C,QAAU9D,EAAM3R,MAAQM,EAAM+P,KAAO/P,EAAM4P,WAG/CkI,EAAI9C,iBAQZ,IX3R6B,iBW4R5B,IAAIsD,GAAe,WAATpO,EAAoBmH,EAAM3R,MAAMyS,QAAQ,IAAK,IAAMd,EAAM3R,MACnE,OACC,kBAACsY,GAAA,EAAK,eACLO,SAAkB,oBAARD,GACVpO,KAAK,UACDkN,KAIP,IXpSqB,UWqSpB,IAAIoB,GACM,WAATtO,EAAoBmH,EAAM3R,MAAMyS,QAAQ,IAAK,IAAMd,EAAM3R,MAE1D,OACC,kBAACsY,GAAA,EAAK,eACLO,SAA6B,oBAAnBC,IACNpB,KAIP,IX9SsB,WW+SrB,OACC,kBAAC,OAAG,CAACjE,GAAG,UACP,kBAACsF,GAAA,EAAQ,iBACJrB,GAAU,CACd1X,MAAO2R,EAAM3R,MACbuX,SAAU,aACV5K,QAAS,WAER,OADAmK,EAAcnF,EAAM/H,MAAO+H,EAAM3R,OAC1B0W,EAAU,CAChB1W,OAAQ2R,EAAM3R,aAOpB,IX9TmC,yBW+TlC,OACC,kBAACwY,GAAA,EAAK,iBACDP,GAAU,CACde,YAAa,IAAM9D,EAAiB7I,QAChCqL,GAAU,CACdQ,QAAShD,EAAiBpI,KAAI,SAACsL,GAAG,MAAM,CACvCpY,MAAOoY,EAAI3C,MACXgD,MACC,kBAACQ,GAAA,EAAI,CACJ9N,UAAWwG,EAAM3R,QAAUoY,EAAI3C,MAAQ,UAAY,GACnDhK,MAAO,CAAEkN,QAASP,EAAI5C,eAAYrO,EAAY,QAC9CvI,MAAO,EACPmO,IAAKqL,EAAI3C,MACTyD,SAAO,EACPC,OAAQxH,EAAM3R,QAAUoY,EAAI3C,MAC5B2D,aAAW,EACXzM,QAAS,WAER,OADAmK,EAAcnF,EAAM/H,KAAMwO,EAAI3C,OACtB2C,EAAIpD,WAAgBA,EAEzB0B,EAAU,CACV1W,MAAOoY,EAAI3C,aAFXtO,IAMJ,yBAAK6E,IAAKoM,EAAIiB,UAAWnN,IAAKkM,EAAI9C,UAClC,kBAAC,IAAI,CAACvW,QAAM,EAACua,GAAG,QACdlB,EAAI9C,iBAQZ,IXhW+B,mBWiW9B,OACC,kBAACgD,GAAA,EAAK,iBACDZ,GAAU,CACdM,OAAQ,SAACR,GAAC,OAAKd,EAAU,CAAE1W,MAAOwX,EAAEC,OAAOzX,SAC3CuZ,gBAAc,EACdrB,QAAO,CACN,4BAAQlY,MAAM,GAAG+M,IAAI,WAAS,mBAErB,mBACNmL,QAKP,IXhX6B,iBWiX5B,OACC,kBAAC,GAAK,eACLhH,KAAI,IACJK,WAA8B,aAAlB6D,EACZ5D,KAAMkE,EACNpE,IAAKqE,EACLtE,IAAKuE,GACD8B,KAIP,IX1X4B,gBW2X3B,OACC,kBAACc,GAAA,EAAK,iBACDP,GACAP,GAAU,CACdsB,YAAa,IAAM9D,EAAiB7I,OACpC6L,QAAShD,EAAiBpI,KAAI,SAACsL,GAAG,MAAM,CACvCpY,MAAOoY,EAAI3C,MACXgD,MACC,kBAACQ,GAAA,EAAI,CACJxN,MAAO,CAAEkN,QAASP,EAAI5C,eAAYrO,EAAY,QAC9CvI,MAAO,EACPmO,IAAKqL,EAAI3C,MACTyD,SAAO,EACP/N,UAAWwG,EAAM3R,QAAUoY,EAAI3C,MAAQ,UAAY,GACnD0D,OAAQxH,EAAM3R,QAAUoY,EAAI3C,MAC5B2D,aAAW,EACXzM,QAAS,WACR,GAAKyL,EAAIpD,WAAgBA,EAEzB,OADA8B,EAAcnF,EAAM/H,KAAMwO,EAAI3C,OACvBiB,EAAU,CAChB1W,MAAOoY,EAAI3C,UAIb,yBAAKzJ,IAAKoM,EAAIiB,UAAWnN,IAAKkM,EAAI9C,UAClC,kBAAC,IAAI,CAACvW,QAAM,EAACua,GAAG,QACdlB,EAAI9C,iBAOZ,QACC,OAAO,OC3ZJkE,GAAgB9a,kBAAOqC,QAAPrC,CAAY,mTAoB9B,YAQK,IAPL+a,EAAc,EAAdA,eACAC,EAAW,EAAXA,YACAC,EAAQ,EAARA,SACA1D,EAAa,EAAbA,cACA3T,EAAE,EAAFA,GACAsX,EAAQ,EAARA,SACA5Z,EAAK,EAALA,MAEA,OAAKyZ,EACDC,EAAc,EAAIC,GAAY1D,IAAkB3T,EAAW,GAC3DsX,GAAsB,YAAV5Z,GAAiC,KAAVA,GAAgBiW,IAAkB3T,EAChE,sDACH,uDAJsB,MAM5B,YAA0B,IAAvBsX,EAAQ,EAARA,SAAU5Z,EAAK,EAALA,MACb,GAAI4Z,GAAsB,YAAV5Z,GAAiC,KAAVA,EACrC,MAAM,iGA4IG6Z,GApIO,SAAH,GAAuB,IAAjB/S,EAAS,EAATA,UACvB,EAA4Cd,qBAAWgQ,MAA/CG,EAAG,EAAHA,IAAK2D,EAAW,EAAXA,YAAa7D,EAAa,EAAbA,cAE1B,EAA0CrR,mBAAS,IAAG,mBAA/CmV,EAAa,KAAEC,EAAgB,KACtC,EAAsCpV,mBAASqV,YAAaC,MAAM,KAAI,mBAA/DC,EAAgB,KAAEC,EAAS,KAE5BX,EAAiBlT,mBAAQ,WAAO,IAAD,IACnC,OAAU,OAAH4P,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAgBP,KACtB,CAAC3D,EAAK2D,IAEHQ,EAAU/T,mBAAQ,WACtB,IAAKkT,EAAgB,MAAO,GAC5B,IAAMvB,EAAU,GAC6B,GAApBuB,GAAkB,IAAnCc,QA6BR,YA7Be,MAAG,GAAE,GAEZC,SAAQ,SAACC,GACf,MAA2DA,GAAU,GAAE,IAA/DC,qBAAa,MAAG,GAAE,EAAEC,EAAe,EAAfA,gBAA0B,EAATnF,WAE3CkF,EAAcF,SAAQ,SAAChG,EAAckF,GACnC,IAAQ3E,EAAyBP,EAAzBO,GAAIS,EAAqBhB,EAArBgB,UAAWC,EAAUjB,EAAViB,MACjBD,GACJ0C,EAAQG,KACN,kBAACmB,GAAa,CACZvD,cAAeA,EACf0D,SAAUe,EAAcrO,OACxBqN,YAAaA,EACbD,eAAgBA,EAChB1M,IAAKgI,EACL6E,WAAYnE,EACZzV,MAAOyV,GAEP,kBAAC,GAAS,CACRjB,aAAcA,EACdC,aAAciF,EACd/E,QAASgG,EACTjG,gBAAiBgG,EAAcrO,OAAS,YAO/C6L,IACN,CAACuB,EAAgBxD,IAsEpB,OApEAtP,qBAAU,WAAO,IAAD,QACViU,EAAO,GACPC,EAAa,GACXC,EAAM,CACVC,eAAgB,SAChBC,eAAgB,SAChBC,SAAU,SACVC,sBAAuB,SACvBC,uBAAwB,SACxBC,iBAAkB,SAClBC,cAAe,SACfC,QAAS,SACTC,SAAU,WAEZ,GAAQ,OAAHpF,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAgBP,GAArB,CAEA,IAA2D,IAA/B,OAAH3D,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAgBP,KAAgB,IAAjDS,cAAO,MAAG,GAAE,GACZC,SAAQ,SAACC,GACf,IAA2C,GAAZA,GAAU,IAAjCC,oBAAa,MAAG,GAAE,GACZF,SAAQ,SAAChG,GAAkB,IAAD,IACtC,EAMIA,GAAgB,GALlBM,EAAU,EAAVA,WACMlL,EAAI,EAAVqL,KACAQ,EAAK,EAALA,MACAN,EAAM,EAANA,OACAE,EAAW,EAAXA,YAEEJ,EAAOrL,EAAK6I,QAAQ,KAAM,KAAKA,QAAQ,KAAM,IAEzC2C,GAAkBZ,GAAgB,IAAlCY,cACR,GAA2B,OAAND,QAAM,IAANA,OAAM,EAANA,EAAS,KAAM,GAA5BS,EAAG,EAAHA,IAAKD,EAAG,EAAHA,IACPnL,EAAO6K,EAAYQ,cACrB2F,EAAmB,OAAHvB,SAAG,IAAHA,IAAkB,QAAf,EAAHA,GAAS,OAAHa,QAAG,IAAHA,OAAG,EAAHA,EAAMtQ,WAAM,WAAf,EAAH,OAAAyP,IACf7E,GAAmC,aAAlBA,IAChBO,IACF6F,EAAgBA,EAAclK,IAC5BqE,EAAI,qCAAD,OACkCA,KAErCC,IACF4F,EAAgBA,EAAcnK,IAC5BuE,EAAI,oCAAD,OACiCA,KAG3B,mBAATpL,GACEmL,GAAO,IACT6F,EAAgBA,EAAcC,SAC5B,gCAIJ3G,IAA2B,QAAjB,EAAI0G,SAAa,aAAb,EAAepK,YAC/BoK,EAAgBA,EAAcpK,SAAS,4BAGvCwJ,EAAK3F,GADM,aAATzK,EACqB,SAAViL,EAEAA,EAEfoF,EAAW5F,GAAQuG,QAIvBxB,EAAiBY,GACjBR,EAAUH,YAAaC,MAAMW,OAC5B,CAAC1E,EAAK2D,IAEFhT,EACL,kBAACqF,GAAA,EAAO,MAER,kBAAC,KAAM,CACLgO,iBAAkBA,EAClBJ,cAAeA,EACf2B,oBAAkB,EAClBC,gBAAgB,EAChBC,iBAAiB,EACjBC,kBAAkB,EAClBC,SAAU,MAEV,kBAAC,KAAI,CAACrQ,MAAO,CAAEsQ,cAAe,UAC5B,kBAAC,QAAI,CAACC,SAAS,QAAQ1B,MClLzB2B,GAAcvd,UAAOwd,IAAG,qKAcfC,GAJM,SAAH,GAA4B,IAAtBC,EAAK,EAALA,MAAOC,EAAO,EAAPA,QAC7B,OAAO,kBAACJ,GAAW,CAACjQ,IAAKoQ,EAAOlQ,IAAKmQ,GAAW,a,kCCblD,26MAmBA,IAAMC,GAAe5d,kBAAOqC,QAAPrC,CAAY,4KAW3B6d,GAAU7d,kBAAOqC,QAAPrC,CAAY,4NAYtB8d,GAAgB9d,kBAAOqC,QAAPrC,CAAY,2IACZ,YAAQ,SAAL4B,MAAkBC,mBAwS5Bkc,GAjSA,SAAC3d,GAAW,IAAD,MAClBwB,EAAQqI,qBACd,EAAiC3C,qBAAWC,KAApCG,EAAU,EAAVA,WAAYC,EAAQ,EAARA,SACZuO,EAAcC,cAAdD,UAEAmB,GAAiB1P,GAAY,IAA7B0P,aACR,EAQI/P,qBAAWgQ,MAPbG,EAAG,EAAHA,IACAD,EAAM,EAANA,OACA4D,EAAW,EAAXA,YACA4C,EAAc,EAAdA,eACAC,EAAgB,EAAhBA,iBACArG,EAAS,EAATA,UACAsG,EAAgB,EAAhBA,iBAGF,GAA2C,OAAHzG,QAAG,IAAHA,OAAG,EAAHA,EAAKS,IAAK,GAA1CiG,EAAe,EAAfA,gBAAgB,EAAD,EAAExC,aAAK,MAAG,GAAE,EAC7ByC,EAAK,WAAO5c,KAAUC,SAAS0c,IACrC,EAMI/d,GAAS,GALXie,EAAa,EAAbA,cACAC,EAAmB,EAAnBA,oBACA3G,EAAS,EAATA,UACA4G,EAAc,EAAdA,eACAC,EAAiB,EAAjBA,kBAGF,EAA8BtY,oBAAS,GAAM,mBAAtCuY,EAAO,KAAEC,EAAU,KAEpBC,EAAgBpW,sBAAW,wCAC/B,WAAO4G,GAAG,wGAoBS,OAnBbyP,EAAmB,GACjBC,GAAe,OAAHpH,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAehO,QAAS,EACpCmR,EAAsB,OAAHrH,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQyD,MAAMkD,GAAWhD,QAAQkD,QACvD/E,UACA5N,MAAK,SAAC4S,GAAC,OAAKA,EAAEhD,cAAcrO,OAAS,KAEhCqO,GAAkB8C,GAAoB,IAAtC9C,cACArO,GAAWqO,GAAiB,IAA5BrO,OACcsR,GAAsBjD,GAAiB,IAApDrO,EAAS,IAEG,QAAjB,EADJiR,EAAmBK,SACE,aAAhB,EAAkBlI,SACfmI,EAAUtO,SAASuO,eAAeP,EAAiBvI,IACzDuI,EAAiB7H,OAAe,OAAPmI,QAAO,IAAPA,OAAO,EAAPA,EAAS5d,QAAS,IAGvCsC,EAAKgN,SAAS8H,cAAc9U,GAC5BtC,EAAQsP,SAAS8H,cAAcpX,MAErCsW,EAAUqG,GACVS,GAAW,GAAM,UACCnJ,GAAU,CAC1BoC,YACA/T,KACAtC,QACA+V,eACAnB,cACC,KAAD,GANIxS,EAAG,OAOT8T,EAAO9T,EAAIP,MACXub,GAAW,GAEXV,GAAkB,OAAHta,QAAG,IAAHA,GAAS,QAAN,EAAHA,EAAKP,YAAI,OAAG,QAAH,EAAT,EAAW+U,SAAC,OAAO,QAAP,EAAZ,EAAcyD,aAAK,WAAhB,EAAH,EAAqBhO,QAAS,GAAG,4CACjD,mDAjC8B,GAkC/B,CACE8J,EACAwG,EACA5G,EACAM,EACAC,EACAJ,EACAwG,EACA9H,IAIJ,EAAoChQ,oBAAS,GAAM,mBAA5CkZ,EAAW,KAAEC,EAAY,KAW1BC,GATe/W,uBACnB,SAACgX,GACgB,SAAXA,GAAqBnE,EAAc,IAAU,OAALO,QAAK,IAALA,OAAK,EAALA,EAAOhO,SACpC,aAAX4R,GAAyC,IAAhBnE,GAC7B4C,EAAe5C,GAA0B,SAAXmE,EAAoB,GAAK,MAEzD,CAAC5D,EAAOP,EAAa4C,IAGHzV,sBAAW,uBAAC,kFACzBb,EAAW,CAAD,eAAE8W,GAAkB,GAAM,sBAEpB,OAAnBa,GAAa,GAAM,SACbf,EAAoB,CAAE3G,cAAa,KAAD,sCAEzC,CAACjQ,EAAY4W,EAAqB3G,EAAW6G,KAE1CgB,EAAWjX,uBACf,SAACuQ,GAEyB,IAAD,EAAT,UAAVA,EAAEzK,MACJyK,EAAE2G,kBACK,OAAHhI,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQiB,sBAAuBuG,EAAU9W,QAC3CgQ,YAAW,kBAAM0G,MAAe,IACvBK,EAAY/W,SACrBgQ,YAAW,wBAAM+F,EAAoC,QAAvB,EAAC/N,SAAS8H,qBAAa,aAAtB,EAAwB9U,MAAK,OAIlE,CAAC6T,EAAKkH,EAAeW,IAGvBrX,qBAAU,WAER,OADA2I,SAASgP,iBAAiB,WAAYJ,GAC/B,WACL5O,SAASiP,oBAAoB,WAAYL,MAE1C,CAACA,IAEJ,IAAMG,EAAc5X,iBAAO,MACrB2X,EAAY3X,iBAAO,MAEzB,EAAgC7B,mBAAS,GAAE,oBAApC4Z,GAAQ,MAAEC,GAAW,MAC5B,GAA0B7Z,mBAAS,CAAC,EAAG,EAAG,EAAG,IAAG,qBAAzC8Z,GAAK,MAAEC,GAAQ,MAEhBC,GAAc3X,uBAAY,WAAO,IAAD,IAChCkM,IAAQ,OAAHgD,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAehO,SAAU,EAClC,OAAI8G,EAAI,EAAU,EACXR,KAAKI,KAAKI,KAChB,CAACgD,IAEJxP,qBAAU,WACR,IAAMkY,EAAWD,KAEjB,GAAIC,EAAW,EAAG,CAChB,IAAIC,EAAWhF,EAAc,EAAIA,EAAc,EAC3CgF,EAAWD,EAAW,IAAGC,EAAWD,EAAW,GACnDF,GAAS/W,IAAE8W,MAAMI,EAAW,EAAGA,EAAW,SAE1CH,GAAS/W,IAAE8W,MAAM,EAAGG,EAAW,IAE7BA,IAAaL,IAAUC,GAAYI,KACtC,CAACD,GAAaJ,GAAU1E,IAE3B,IAAMiF,GAAmB9X,uBACvB,SAAC+X,GAAe,IAAD,IACTC,EAAYnF,EAEhB,OAAQkF,GACN,IAAK,QACClF,EAAc0E,IAAU9B,EAAe5C,EAAc,GACzDmF,GAAanF,EAAc,EAC3B,MACF,IAAK,OACCA,EAAc,GAAG4C,EAAe5C,EAAc,GAClDmF,GAAanF,EAAc,EAM/B,OAAImF,EAAY,EAAuB,EACnCA,EAAY,GAAKL,IAAe,OAAHzI,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAehO,SAAU,EAAG,GACvCyN,OACtB4C,EAAeuC,KAEjB,CAAC9I,EAAK2D,EAAa8E,GAAaJ,GAAU9B,IAG5C,OACE,kBAACF,GAAa,KACZ,kBAACD,GAAO,KACN,kBAAC,IAAO,CAACjD,GAAG,OAAOva,QAAM,mBACT+d,GAEhB,kBAAC,QAAI,CACHoC,GAAI,CAAC,OAAQ,OAAQ,GACrB5F,GAAG,IACHtH,eAAe,gBACf5G,WAAW,UAEX,kBAAC,QAAI,CAAC+T,KAAM,EAAGnN,eAAe,aAAa5G,WAAW,UACpD,kBAACmB,EAAA,EAAM,CACLE,SAAS,QACTE,QAAS,kBAAMoQ,GAAc,IAC7Bxd,MAAOe,EAAM+P,MAAK,WAMtB,kBAAC,QAAI,CAAC8O,KAAM,EAAGnN,eAAe,WAAW5G,WAAW,UAClD,kBAACmB,EAAA,EAAM,CACLhN,MAAOe,EAAM+P,KACb5D,SAAS,WACTE,QAAS,kBAAMsQ,GAAe,QAG3B,OAAH9G,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQiB,sBACR,kBAACtL,EAAA,EAAM,CACLuE,IAAKuN,EACLlO,SAAUgN,EACVxQ,QAAS0Q,EACTvB,SAAUuB,EACV9d,MAAOe,EAAM8e,QACb3S,SAAS,eACTjC,KAAK,UAEJ2S,EACC,kBAAChR,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAMwB,UAGhB,aAKF,OAAHqU,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQiB,qBACP,kBAACtL,EAAA,EAAM,CACLuE,IAAKsN,EACLxG,UAAc,OAAHzB,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQiB,oBACnB1H,SAAU2N,EACVnR,QAASqR,EACTlC,SAAUkC,EACVvR,SAAS,kBACTjC,KAAK,UAEJsT,EACC,kBAAC3R,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAMwB,UAGhB,UAGF,OAGPyJ,IAAyCqR,GACxC,kBAACN,GAAY,CAAC7I,GAAG,QACf,kBAAClH,EAAA,EAAM,CACLmM,SAAO,EACPhZ,KAAK,QACLH,MAAOe,EAAM4P,UACbzE,MAAO,CACL8T,QAAUzF,OAAoB3S,EAAN,IACxBqY,cAAgB1F,OAAuB3S,EAAT,QAEhCsF,SAAS,cACTE,QAAS,kBAAMoS,GAAiB,WAE5B,OAAL1E,QAAK,IAALA,OAAK,EAALA,EAAOvN,KAAI,SAAC2S,EAAMva,GACjB,IAAKwZ,GAAMlM,SAAStN,EAAI,GAAI,OAAO,KACnC,MAA+Bua,GAAQ,GAA/BnK,EAAO,EAAPA,QACR,OAD0B,EAATE,UAEf,kBAACjJ,EAAA,EAAM,CACL7M,KAAK,QACLyL,UAAW2O,IAAgB5U,EAAI,YAASiC,EACxCuR,QAASoB,IAAgB5U,EACzB6H,IAAG,eAAU7H,GACb3F,MAAOe,EAAM4P,UACbvD,QAAS,kBAAM+P,EAAexX,KAE7BoQ,GAED,QAEN,kBAAC/I,EAAA,EAAM,CACL7M,KAAK,QACLgZ,SAAO,EACPjN,MAAO,CACL8T,QACEzF,EAAc,IAAU,OAALO,QAAK,IAALA,OAAK,EAALA,EAAOhO,QAAc,SAAMlF,EAChDqY,cACE1F,EAAc,IAAU,OAALO,QAAK,IAALA,OAAK,EAALA,EAAOhO,QAAc,YAASlF,GAErDgJ,SAA+B,IAArBwM,EACVlQ,SAAS,eACTlN,MAAOe,EAAM4P,UACbvD,QAAS,kBAAMoS,GAAiB,gB,4CC1U9C,26MACO,I,iCAAMW,GAAK,wCAAG,gGAAyC,OAAhCle,EAAQ,EAARA,SAAUuB,EAAQ,EAARA,SAAU4c,EAAY,EAAZA,aAAY,kBAE3Bje,IAAMC,KAAK,qBAAsB,CAC9DH,WACAuB,WACA4c,iBACC,KAAD,EAJkB,GAIlB,SAJM/d,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,EAAc,iBACE,OAAlBuG,QAAQyX,IAAI/d,GAAM,kBACXA,GAAI,iCAENA,GAAI,QAEU,OAFV,0BAEXsG,QAAQC,MAAM,EAAD,IAAQ,kFAGxB,gBAhBiB,sCAkBLyX,GAAS,wCAAG,8FAAgC,OAAvBC,EAAK,EAALA,MAAOte,EAAQ,EAARA,SAAUue,EAAM,EAANA,OAAM,kBAE9Bre,IAAMC,KAAK,yBAA0B,CAC1Dme,QACAte,WACAue,WACC,KAAD,EAJU,OAIV,SAJMle,EAAI,EAAJA,KAAI,kBAMLA,EAAKI,QAAM,OAEG,OAFH,yBAElBkG,QAAQC,MAAM,EAAD,IAAQ,iFAGxB,gBAbqB,sCAeT4X,GAAS,wCAAG,oHAEUte,IAAMC,KAAK,yBAA0B,IAAI,KAAD,EACzD,GADyD,SAA/DE,EAAI,EAAJA,KAAMD,EAAM,EAANA,OACEme,GAAWle,GAAQ,IAA3BI,OACO,MAAXL,EAAc,sBAAQ,IAAIsG,MAAM,2BAA2B,KAAD,2BACvD6X,GAAM,QAEM,OAFN,0BAEb5X,QAAQyX,IAAI,EAAD,IAAQ,kFAGtB,kBAVqB,mC,6BC/BTK,GAAkBvhB,UAAOC,IAAG,irCAOnB,YAAQ,SAAL2B,MAAkB4f,oBA4BjB,YAAQ,SAAL5f,MAAkB4f,oBAGrB,YAAQ,SAAL5f,MAAkB6f,eAGrB,YAAQ,SAAL7f,MAAkB4f,oBAkBlCE,GAAoB1hB,kBAAOqC,QAAPrC,CAAY,ioBAIvB,YAAQ,SAAL4B,MAAkB+f,aAAe,UACvC,gBAAG/f,EAAK,EAALA,MAAK,MAAO,UAAGA,EAAMc,aAAY,QAAQ,KAInC,YAAQ,SAALd,MAAkB+f,eAI3C,YACA,IADO,EAAJC,KACQ,MAAO,qDAoBXC,GAAe7hB,kBAAOqR,OAAPrR,CAAW,sHACjB,YAAQ,SAAL4B,MAAkB+f,aAAe,UACvC,gBAAG/f,EAAK,EAALA,MAAK,MAAO,UAAGA,EAAMc,aAAY,QAAQ,KAKlDof,GAAc9hB,kBAAOqC,QAAPrC,CAAY,2FAM1B+hB,GAAU/hB,kBAAOqC,QAAPrC,CAAY,yWAGT,YAAQ,SAAL4B,MAAkB+f,eAKrC,gBAAG/f,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,cAAMd,EAAMc,aAAY,SAK5C,YAAQ,SAALd,MAAkBogB,0BAKrB,YAAQ,SAALpgB,MAAkBC,mBAKlCogB,GAAYjiB,kBAAOqR,OAAPrR,CAAW,kuCAGX,gBAAG4B,EAAK,EAALA,MAAK,gBACxBA,EAAMc,aAAY,cAAMd,EAAMc,aAAY,SAQ7B,gBAAGd,EAAK,EAALA,MAAK,gBACpBA,EAAMc,aAAY,cAAMd,EAAMc,aAAY,SAIxC,YAAe,SAAZwf,aAAmC,UAAY,UACnD,YAAQ,SAALtgB,MAAkBE,YAS1B,YACA,GADW,EAARya,SACW,MAAO,0BAiCrB,YAA2C,IAAxC4F,EAAQ,EAARA,SAAUC,EAAO,EAAPA,QAASC,EAAM,EAANA,OAAQzgB,EAAK,EAALA,MAC9B,OAAIugB,GAAYC,IAAYC,EAAe,GACpC,CACLC,SAAU,WACVC,OAAQ,EACRC,WAAY,oBACZC,UAAW,eACXC,gBAAiB,SACjBC,UAAU,qBAAD,OAAuB/gB,EAAMe,eAAc,UAoB3C,YAAe,SAAZuf,aAAmC,WAAa,MAClD,YAAe,SAAZA,aAAmC,OAAS,MAKpDU,GAAmB5iB,UAAOC,IAAG,+HAChC,gBAAGe,EAAI,EAAJA,KAAI,oBAAcA,EAAI,QACpB,gBAAGA,EAAI,EAAJA,KAAI,gBAAUA,EAAI,QAGzB,YAAQ,SAALY,MAAkBE,YAGnB+gB,GAAoB7iB,UAAOC,IAAG,4LAW9B6iB,GAAiB9iB,UAAOC,IAAG,iMAW3B8iB,GAAsB/iB,UAAOC,IAAG,mVAuBhC+iB,GAAYhjB,kBAAOqR,OAAPrR,CAAW,kgBAUpB,YAAQ,OAAqB,GAArB,EAALijB,MAAqB,MAaxB,YAAQ,OAAqB,GAArB,EAALA,MAAqB,MCxS3BC,GAAoB3d,wBAAc,IAElC4d,GAAuB5d,wBAAc,IAErC6d,GAAkB,SAC7BC,EACAC,EACAC,EACAC,EACAC,EACApB,GAEA,MAAuCnc,oBAAS,8BAC3Cmd,EAAiBK,WACpB,mBAFKC,EAAW,KAAEC,EAAe,KAG7BC,EAAiBtb,sBAAYqb,EAAiB,CAACA,IAE/CE,EAAoBjc,mBAAQ,WAChC,IAAIkc,EAAI,GAQR,OAPAV,EAAiBvH,SAAQ,SAACkI,GACxB,IAAIhjB,EAAOijB,GAAQD,EAAMhjB,KAAMsiB,GAC/BS,EAAEC,EAAMpgB,IAAM,CACZogB,EAAME,QAAUF,EAAM7gB,MAAQ6gB,EAAMpgB,GACpC5C,EAAO,EAAI,EAAIA,EAAO,EAAI,EAAI,MAG3B+iB,IACN,CAACV,EAAkBC,IAEtB,EAAoCa,sBAAW,SAAC1P,EAAGvL,GAAC,OAAKuL,EAAI,IAAG,GAAE,mBAA3D2P,EAAQ,KAAEC,EAAe,KAChC,EAAwDF,sBACtD,SAACG,EAAM,GAAiC,IAAD,mBAA9BC,EAAY,KAAEC,EAAU,KAE/B,OADAH,KACoB,IAAhBG,UACKF,EAAMC,GACND,IACkB,IAAhBE,EACF,GAEF,2BAAKF,GAAK,kBAAGC,EAAeC,MAErC,IACD,mBAZMC,EAAoB,KAAEC,EAAuB,KAcpD,EAAuD7c,mBACrD,kBAyHJ,SACE8b,EACAN,EACAS,EACAW,GAEA,IAE+B,EAF3BE,EAAiB,GACnBC,EAAkB,GAAG,eACHjB,GAAW,IAA/B,2BAAiC,CAAC,IAAvBkB,EAAK,QAEZjhB,EADWyf,EAAiBwB,GAChBjhB,GACVkhB,EACFlhB,KAAM6gB,EACFA,EAAqB7gB,GAAI,GACzBkgB,EAAkBlgB,GAAI,GACH,IAArBkhB,EACFH,EAAehL,KAAKkL,GACU,IAArBC,GACTF,EAAgBjL,KAAKkL,IAExB,8BACD,MAAO,CAACF,EAAgBC,EAAiBA,EAAgBjX,OAAS,GA7I9DoX,CACEpB,EACAN,EACAS,EACAW,KAGJ,CACEd,EACAN,EACAS,EACAW,EACAL,IAEH,mBAhBMO,EAAc,KAAEC,EAAe,KAiBhCrI,EAjB6C,MAiBnBgH,EAC1ByB,EAAoBzc,uBAAY,kBAAMoc,IAAgB,CAACA,IAE7D,EAA0CR,sBACxC,SAACG,EAAM,GAA2B,IAAD,mBAAxBC,EAAY,KAAEvjB,EAAI,KACzB,OAAc,IAAVA,UACKsjB,EAAMC,GACND,IACY,IAAVtjB,EACF,GAEF,2BAAKsjB,GAAK,kBAAGC,EAAevjB,MAErC,IACD,mBAXMikB,EAAgB,KAAEC,EAAa,KAYhCC,EAAuB5c,uBAC3B,SAAC6c,GAAM,OAAKF,EAAcE,KAC1B,CAACF,IAEH,EAAoDrd,mBAClD,kBA6GJ,SAAkBwb,EAAkBC,EAAQqB,EAAgBM,GAC1D,IAAII,EAAa,EACXC,EAAiB,GACvBX,EAAe7I,SAAQ,SAAC+I,GACtB,IACIU,EADJ,EAAmBlC,EAAiBwB,GAA9BjhB,EAAE,EAAFA,GAAI5C,EAAI,EAAJA,KAEN4C,KAAMqhB,EACRM,EAAUN,EAAiBrhB,IAE3B2hB,EAAUtB,GAAQjjB,EAAMsiB,KACT,IAAGiC,EAAU,GAE9BF,GAAcE,EACdD,EAAe1hB,GAAM2hB,KAEvB,IAAIC,EAAgB,GAIpB,OAHAC,OAAOC,QAAQJ,GAAgBxJ,SAAQ,YAAiB,IAAD,mBAAdlY,EAAE,KAAE5C,EAAI,KAC/CwkB,EAAc5hB,GAAO,IAAM5C,EAAQqkB,KAE9B,CAACG,EAAeF,EAAgBD,GAhI/BM,CAAStC,EAAkBC,EAAQqB,EAAgBM,KACzD,CAAC5B,EAAkBC,EAAQqB,EAAgBM,IAC5C,mBAHMO,EAAa,KAAEF,EAAc,KAAED,EAAU,KAKhD,EAAsCnf,mBAAS,IAAG,mBAA3C0f,EAAW,KAAEC,EAAc,KAC5BC,EAAavd,uBACjB,SAACwd,EAAKjN,GACJ,GAAIyD,EAAJ,CACE,IAAQ3Y,EAAOmiB,EAAPniB,GACgBiiB,EAApBjiB,IAAOgiB,EAA4BhiB,EACnB,SAGtB,GAAI4f,EAAa,OAAOA,EAAYuC,EAAKjN,KAE3C,CAAC8M,EAAaC,EAAgBrC,EAAajH,IA4C7C,MAAO,CA1CY1U,mBACjB,iBAAO,CACL0U,WACAoI,iBACAC,kBACAgB,cACAE,aACAE,YAAaxC,GAAejH,EAC5BkH,aACApB,YAEF,CACE9F,EACAoI,EACAC,EACAgB,EACAE,EACAtC,EACAC,EACApB,IAGkBxa,mBACpB,iBAAO,CACL2d,gBACAF,iBACAD,aACAF,uBACAxB,cACAE,iBACAmB,uBAEF,CACEQ,EACAF,EACAD,EACAF,EACAxB,EACAE,EACAmB,IAMF,CACElB,oBACAW,uBACAC,0BACAO,sBAIAgB,GAAc,CAAC,KAAM,KAAM,KAAM,KAAM,MACvChC,GAAU,SAACjjB,EAAMsiB,GACrB,MAAoB,kBAATtiB,EACFA,GAGTilB,GAAYC,OAAM,SAACC,GACjB,OAAI7C,EAAO6C,SAAgD1d,KAAhC8c,EAAUvkB,EAAKmlB,OAKrCZ,GAPP,IAAIA,GC1JN,I,6CA4Bea,GA5BD,SAAH,GAAsB,IAAhBC,EAAQ,EAARA,SACP1B,EAAmBrd,qBAAW4b,IAA9ByB,eACAa,EAAkBle,qBAAW6b,IAA7BqC,cACFc,EAAUD,EAASE,gBACnBC,EAAa3e,mBACjB,kBACE,kBAACoa,GAAS,KACP0C,EAAevW,KAAI,SAACyW,GACnB,IAAIjhB,EAAK0iB,EAAQzB,GAAO4B,UAAU7iB,GAC9B5C,EAAOwkB,EAAc5hB,GACzB,OACE,kBAACgf,GAAgB,CAACvU,IAAKzK,EAAI5C,KAAMA,GAC/B,kBAAC6T,GAAA,EAAO,CAAC9H,MAAO,CAAE9L,OAAQ,QAAQ,eAM5C,CAAC0jB,EAAgBa,EAAec,IAElC,OACE,oCACG,YAAII,MAAM,IAAIhD,QAAQtV,KAAI,SAAC5H,GAAC,OAC3B,kBAACub,GAAO,CAAC1T,IAAK7H,GAAIggB,Q,uDCrBpBG,GAAgB3mB,UAAO+R,KAAI,+PACnB,YAAe,SAAZ6U,gBACF,YAAe,SAAZA,gBAIP,YAAQ,SAALhlB,MAAkBE,YAEX,YAAc,SAAX+kB,YAAiC,OAAS,UAO5DC,GAAcC,IAAMC,MACxB,YAA+D,IAA5DC,EAAI,EAAJA,KAAM/C,EAAM,EAANA,OAAQtgB,EAAE,EAAFA,GAAIihB,EAAK,EAALA,MAAOqC,EAAI,EAAJA,KAAML,EAAW,EAAXA,YAAgBzmB,EAAK,mBAC/CwB,EAAQqI,qBACd,EAOI3C,qBAAW6b,IANbqC,EAAa,EAAbA,cACAF,EAAc,EAAdA,eACAH,EAAoB,EAApBA,qBACAxB,EAAW,EAAXA,YACAE,EAAc,EAAdA,eACAmB,EAAiB,EAAjBA,kBAEI4B,EAAepB,EAAc5hB,GACjCujB,EAAgB7B,EAAe1hB,GAC/BwjB,EAA6B,OAATF,EAAgB5B,EAAe4B,EAAK,IAAM,EAExDphB,EAAUwB,qBAAW3B,GAArBG,MAEFuhB,EAAatf,iBAAO,MACpByQ,EAAWzQ,iBAAO,MAClBuf,EAAmB/e,uBACvB,SAACgf,EAASC,GACR/O,aAAaD,EAAS5P,SACtB4P,EAAS5P,QAAUgQ,YAAW,WAC5BuM,EAAqB,CAACvhB,EAAI2jB,IAC1BpC,EAAqB,CAAC+B,EAAK,GAAIM,IAC/BhP,EAAS5P,QAAU,OAClB,KAEL,CAAChF,EAAIsjB,EAAM/B,IAEb,EAA0Bjf,mBAAS,GAAE,mBAA9BuhB,EAAK,KAAEC,EAAQ,KAChB1S,EAAQjN,iBAAO,GACrB,EAAkC4f,IAChC,WACE3S,EAAMpM,QAAUye,EAAWze,QAAQgf,wBAAwBC,QAE7D,SAAC/O,EAAGgP,GACFJ,EAASI,EAAOxT,EAAIU,EAAMpM,YAE5B,SAACkQ,EAAGgP,GACFJ,EAAS,GACT,IAAIK,EACDZ,GAAiBW,EAAOxT,EAAIU,EAAMpM,SACnCye,EAAWze,QAAQof,YACrB,KAAID,GAAQ,GAAKA,GAAQZ,GAAzB,CACA,IAAMxC,EAAiBK,IACnBiD,EAAWtD,EAAeuD,QAAQrD,GAClCsD,EAAWF,EACTG,EAAQ3C,OAAO4C,OAAO/C,GACtBgD,EAAMP,EAAOZ,EAAgB,GAAK,EAGxC,IAFIY,EAAOZ,IAAeY,GAAQZ,GAClCY,EAAO9T,KAAKM,IAAIwT,GACTI,EAAWG,GAAO,GAAKH,EAAWG,EAAM3E,EAAYhW,QAAQ,CAEjE,IAAI3M,EAAOonB,EADXD,GAAYG,GAEZ,GAAIP,EAAO/mB,EAAM,CACX+mB,EAAO/mB,EAAO,IAAGmnB,GAAYG,GACjC,MAEFP,GAAQ/mB,EAEVinB,EAAWtE,EAAYuE,QAAQvD,EAAesD,IAC9CE,EAAWxE,EAAYuE,QAAQvD,EAAewD,IAC1CF,IAAaE,GACjBtE,GAAe,SAAC/d,GACd,IAAMyiB,EAAWziB,EAAMiZ,QAGvB,OAFAwJ,EAASC,OAAOP,EAAU,GAC1BM,EAASC,OAAOL,EAAU,EAAGtD,GACtB0D,QAGX,IACD,mBAxCME,EAAQ,KAAIC,EAAW,KA0CxBC,EAAUzE,EAAO0E,aACjBC,EAAgBhhB,mBACpB,kBACEqc,EAAO4E,cACH,KACAC,aAAW7E,EAAO8E,OAAOvC,UAAUvC,OAAQyE,KACjD,CAACzE,EAAO4E,cAAe5E,EAAO8E,OAAOvC,UAAUvC,OAAQyE,IAqBzD,OACE,kBAAChC,GAAa,eACZE,YAAaA,EACbzU,IAAKiV,EACLT,aAAcA,EACd3Y,QAASgZ,EAAO/C,EAAO8E,OAAOC,+BAA4BxgB,GACtDrI,GAEJ,yBACE2M,MAAO,CAAE0V,UAAU,cAAD,OAAgBgF,EAAK,QACvCiB,YAAaA,GAEb,yBACE3b,MAAO,CACL0V,UAAU,cAAD,OACPgG,EAAW,wBAA0B,MAAK,KAE5CjG,WAAY,yBACZ0G,UAAW,SACXpB,OAAUb,EAAO,UAAY,KAG9B4B,EAxCQ,WACf,MAA4C/iB,GAAS,GAA1CqjB,EAAS,EAAZ,GAAiBC,EAAc,EAAjB,GACtB,OAAID,IAAcjF,EAAO8E,OAAOplB,GAAW,KACpB,QAAnBwlB,EAEA,0BAAMrc,MAAO,CAAEM,WAAY,SAAUxM,MAAOe,EAAM4P,YAChD,kBAAC,IAAe,CAACtD,KAAMmb,YAAWroB,KAAK,QAGjB,SAAnBooB,EAEL,0BAAMrc,MAAO,CAAEM,WAAY,SAAUxM,MAAOe,EAAM4P,YAChD,kBAAC,IAAe,CAACtD,KAAMob,cAAatoB,KAAK,QAGnC,KA0BLuoB,KAGL,kBAACC,GAAS,CACRnC,WAAYA,EACZrmB,KAAMmmB,EACNsC,SAAUrC,EACVE,iBAAkBA,QAQtBkC,GAAYzC,IAAMC,MACtB,YAAuD,IAApDK,EAAU,EAAVA,WAAYrmB,EAAI,EAAJA,KAAMyoB,EAAQ,EAARA,SAAUnC,EAAgB,EAAhBA,iBAEvBtS,EAAQjN,iBAAO,CAAC/G,EAAMyoB,IAC5B,EAAkC9B,IAChC,WACE3S,EAAMpM,QAAU,CACd5H,EACAyoB,EACApC,EAAWze,QAAQgf,wBAAwBC,KAC3CR,EAAWze,QAAQof,gBAGvB,SAAC9e,EAAG4e,GACF,kBAAoC9S,EAAMpM,QAAO,GAA5C5H,EAAI,KAAEyoB,EAAQ,KAAE5B,EAAI,KAAE3nB,EAAK,KAC1BwpB,EAAc1oB,EAAOd,EACrB6nB,EAAO9T,KAAKtB,IAChBsB,KAAKrB,IACH8W,GAAe7B,EAAOC,EAAOxT,GAC7BmV,EApBW,EAoBAC,GAEbA,GAtBa,EAsBmBxpB,IAElConB,EAAiBtmB,EAAO+mB,EAAM0B,EAAW1B,MAE3C,SAAC7e,EAAG4e,MACJ,GACD,mBAvBMW,EAAQ,KAAIC,EAAW,KA4B9B,OACE,kBAACiB,GAAU,CACTld,UAAS,oBAAegc,EAAW,SAAW,IAC9CC,YAAaA,EACbza,QARY,SAAC6K,GACfA,EAAE8Q,oBASA,kBAACC,GAAQ,CAAC9B,KAAM,QAMlB4B,GAAa3pB,kBAAO,MAAPA,CAAa,oTAcR,YAAQ,SAAL4B,MACf4f,kBAAoB,UAI1BqI,GAAW7pB,kBAAO,OAAO8pB,OAAM,gBAAG/B,EAAI,EAAJA,KAAI,MAAQ,CAClDhb,MAAO,CACL8a,KAAK,iBAAD,OAAmBE,EAAI,WAFd/nB,CAId,iIAKmB,YAAQ,SAAL4B,MAAkB+f,aAAe,UAGpDgG,GAAgB,WAKhB,IAJJoC,EAAQ,uDAAG,SAAC7gB,GAAC,OAAKA,GAClB8gB,EAAM,uDAAG,SAAC9gB,GAAC,OAAKA,GAChB+gB,EAAM,uDAAG,SAAC/gB,GAAC,OAAKA,GAChBghB,EAAW,uDAAG,EAERC,EAAYpiB,iBAAO,GACzB,EAAgC7B,oBAAS,GAAM,mBAAxCuiB,EAAQ,KAAE2B,EAAW,KACtBC,EAAYtiB,iBAAO,CAAEuM,EAAG,EAAGgW,EAAG,IAC9BC,EAAOhiB,uBACX,SAACuQ,GAEC,GADAA,EAAE2G,iBACwB,IAAtB0K,EAAUvhB,QAAe,CAC3B,IAAMmf,EAAO,CACXzT,EAAGwE,EAAE0R,MAAQH,EAAUzhB,QAAQ0L,EAC/BgW,EAAGxR,EAAE2R,MAAQJ,EAAUzhB,QAAQ0hB,GAEjC,GAAIrW,KAAKM,IAAIwT,EAAKzT,GAAKL,KAAKM,IAAIwT,EAAKuC,GAAKJ,EAAa,OACvDH,EAASjR,EAAG,CAAExE,EAAGwE,EAAE0R,MAAOF,EAAGxR,EAAE2R,OAASJ,EAAUzhB,SAClDwhB,GAAY,GACZD,EAAUvhB,QAAU,EAEI,IAAtBuhB,EAAUvhB,SACZohB,EAAOlR,EAAG,CAAExE,EAAGwE,EAAE0R,MAAOF,EAAGxR,EAAE2R,OAASJ,EAAUzhB,WAGpD,CAACohB,EAAQD,EAAUG,IAEfQ,EAAOniB,uBACX,SAACuQ,GACCA,EAAE2G,iBACwB,IAAtB0K,EAAUvhB,UACZqhB,EAAOnR,EAAG,CAAExE,EAAGwE,EAAE0R,MAAOF,EAAGxR,EAAE2R,OAASJ,EAAUzhB,SAChDwhB,GAAY,IAEdD,EAAUvhB,QAAU,EACpBgI,SAASiP,oBAAoB,YAAa0K,GAC1C3Z,SAASiP,oBAAoB,UAAW6K,KAE1C,CAACH,EAAMN,IAMT,MAAO,CACLxB,EACA4B,EACA9hB,uBACE,SAACuQ,GACCA,EAAE8Q,kBACF9Q,EAAE2G,iBACwB,IAAtB0K,EAAUvhB,UACZyhB,EAAUzhB,QAAU,CAAE0L,EAAGwE,EAAE0R,MAAOF,EAAGxR,EAAE2R,OACvCN,EAAUvhB,QAAU,EACpBgI,SAASgP,iBAAiB,YAAa2K,GACvC3Z,SAASgP,iBAAiB,UAAW8K,MAGzC,CAACH,EAAMG,MAiCEC,GA5BU5D,IAAMC,MAAK,YAA2B,IAAxB4D,EAAO,EAAPA,QAAStE,EAAO,EAAPA,QAE9C,EAAqChf,qBAAW4b,IAAxC3G,EAAQ,EAARA,SAAUoI,EAAc,EAAdA,eACduC,EAAO,KACX,OACE,kBAACjF,GAAS,CAACxV,UAAU,SAAS2V,SAAO,EAAC7F,SAAUA,GAC7CoI,EAAevW,KAAI,SAACyW,GACnB,IAAMX,EAAS0G,EAAQ/F,GACrBjhB,EAAKsgB,EAAO8E,OAAOvC,UAAU7iB,GAC3BinB,EAAO3D,EACXA,EAAO,CAACrC,EAAOjhB,GACf,IAAQqjB,EAAS/d,IAAEkD,KAAKka,GAAS,SAACwE,GAAG,OAAKA,EAAIlnB,KAAOA,KAA7CqjB,KACR,OACE,kBAACH,GAAW,CACVG,KAAMA,EACN5Y,IAAKzK,EACLA,GAAIA,EACJihB,MAAOA,EACPX,OAAQA,EACRgD,KAAM2D,EACNhE,YAAatK,W,SC9SVwO,GAlBShE,IAAMC,MAAK,YAAyB,IAAtBgE,EAAI,EAAJA,KAAMC,EAAQ,EAARA,SAClCzF,EAAkBle,qBAAW6b,IAA7BqC,cACFiB,EAAYuE,EAAKhC,OAAOvC,UACxBzlB,EAAOwkB,EAAciB,EAAU7iB,IAE/B+kB,EAAUqC,EAAKpC,aACfC,EAAgBhhB,mBACpB,kBAAMkhB,aAAWtC,EAAUuE,KAAMrC,KACjC,CAAClC,EAAUuE,KAAMrC,IAGnB,OACE,kBAAC/F,GAAgB,CAACT,SAAU8I,EAAUjqB,KAAMA,GACzC6nB,MC8HQqC,GA/HEnE,IAAMC,MACtB,YAAsD,IAAnDjB,EAAG,EAAHA,IAAKoF,EAAU,EAAVA,WAAYlI,EAAK,EAALA,MAAO4B,EAAK,EAALA,MAAM,EAAD,EAAEjD,YAAI,OAAQ,EAC7C,EASIta,qBAAW4b,IARd3G,EAAQ,EAARA,SACAoI,EAAc,EAAdA,eACAC,EAAe,EAAfA,gBACAgB,EAAW,EAAXA,YACAE,EAAU,EAAVA,WACAE,EAAS,EAATA,UACAvC,EAAU,EAAVA,WACApB,EAAM,EAANA,OAEK+I,EAAmBxJ,GAAQgE,IAAgBG,EAAIniB,GACrD,EAA6CiE,mBAAQ,WACpD,IAAMwjB,EAA2B,OAAf5H,EACZ6H,EACLD,IAA4D,IAA/C5H,EAAW8H,QAAQC,SAASzF,EAAI0F,UAS9C,MAAO,CAACJ,EAAWC,EARM,SAACxS,GACzBA,EAAE8Q,kBACE0B,EACH7H,EAAW8H,QAAQG,SAAS3F,EAAI0F,UAEhChI,EAAW8H,QAAQI,OAAO5F,EAAI0F,cAI9B,CAAChI,EAAYsC,IAAK,mBAbdlJ,EAAQ,KAAE+O,EAAO,KAAEC,EAAe,KAenCC,EAAQ/F,EAAIgG,cAElB,OACC,kBAAChK,GAAO,CAAC8C,MAAOA,EAAO5B,MAAOA,GAC7B,kBAAChB,GAAS,CACTE,SAAUiJ,EACVnd,QAAS,SAAC6K,GAAC,OAAKgN,EAAWC,EAAKjN,IAChCyD,SAAUA,EACV2F,aAAc8D,EACdnJ,SAAUA,EACVwF,OAAQA,GAER,yBAAKtV,MAAO,CAAEuV,SAAU,aACtBzF,GACA,kBAACiG,GAAc,KACd,kBAAC,KAAQ,CACRzQ,SAAO,EACPvG,KAAK,WACLmC,QAAS4d,EACThT,SAAU,SAAC3P,KACX2Q,GAAG,QACH+R,QAASA,KAIXjH,EAAevW,KAAI,SAACyW,GAAK,OACzB,kBAAC,GAAe,CACfxW,IAAKyd,EAAMjH,GAAOmE,OAAOvC,UAAU7iB,GACnConB,KAAMc,EAAMjH,GACZoG,SAAUG,OAGX7O,EACA,kBAACsG,GAAiB,KAChBuI,EACA,kBAAC,IAAe,CAACld,KAAM8d,cAAahrB,KAAK,OAEzC,kBAAC,IAAe,CAACkN,KAAM+d,gBAAejrB,KAAK,QAG1C,OAGLoqB,GAAoBxG,GACpB,kBAAC,GAAS,CACTzC,SAAUP,GAAQwJ,EAClBnI,MAAO2B,GAENA,EAAgBxW,KAAI,SAACyW,EAAOre,GAC5B,IAAI0d,EAASiH,EAAWviB,QAAQic,GAC/BqH,EAAgBhI,EAAO4E,cACpB,KACAC,aACA7E,EAAO8E,OAAOvC,UAAUvC,OACxBA,EAAO0E,cAEPoC,EAAOc,EAAMjH,GAChBjhB,EAAKonB,EAAKhC,OAAOvC,UAAU7iB,GAC3BuoB,EAAcpD,aACbiC,EAAKhC,OAAOvC,UAAUuE,KACtBA,EAAKpC,cAGP,OAAsB,OAAlBsD,EAEF,kBAAC,QAAI,CAAC7d,IAAKzK,EAAK,aACS,kBAAhBuoB,EACP,kBAAC,IAAI,KAAEA,GAEPA,GAKH,kBAAC,QAAI,CAACzf,WAAW,SAAS2B,IAAKzK,EAAK,aACT,kBAAlBsoB,EACP,kBAAC,IAAI,CAACzL,KAAM,EAAGjgB,MAAI,GACjB0rB,GAGFA,EAEuB,kBAAhBC,EACP,kBAAC,IAAI,CAAC1L,KAAM,GAAI0L,GAEhB,kBAAC,IAAI,CAAC1L,KAAM,EAAGpS,IAAKzK,EAAK,QACvBuoB,YCNGC,GA/GKrF,IAAMC,MACxB,YAAqD,IAAlDV,EAAO,EAAPA,QAASnjB,EAAI,EAAJA,KAAMkpB,EAAU,EAAVA,WAAYjkB,EAAS,EAATA,UAAWwZ,EAAI,EAAJA,KAC/B9b,EAAUwB,qBAAW3B,GAArBG,MAEFugB,EAAWiG,aAAc,CAC7BnpB,OACAmjB,UACAhC,MAAO,CACLiI,QAASzmB,GAEX0mB,gBAAiBH,EACjBI,gBAAiBA,iBAGb7B,EAAUvE,EAASqG,kBAAkB,GAAG9B,QACxCO,EAAapjB,iBAAO6iB,GAC1BO,EAAWviB,QAAUgiB,EAErB,IAAQrO,EAAajV,qBAAW4b,IAAxB3G,SAEF3R,EAAO/C,mBAAQ,WACnB,OAAIO,IAAcjF,EAAa,kBAACwpB,GAAW,CAACtG,SAAUA,KAC9C,OAAJljB,QAAI,IAAJA,OAAI,EAAJA,EAAMwK,QAAS,EACV0Y,EACJuG,cACAhiB,KAAKwD,KAAI,SAAC2X,EAAKvf,GAAC,OACf,kBAAC,GAAQ,CACPob,KAAMA,EACNqB,MAAO9f,EAAKwK,OACZkX,MAAOre,EACP6H,IAAK0X,EAAIniB,GACTmiB,IAAKA,EACLoF,WAAYA,OAGb,OACN,CAAChoB,EAAMkjB,EAAUje,EAAWwZ,IAE/B,OACE,kBAACC,GAAY,KACX,kBAACC,GAAW,CAAC2F,OAAK,EAAC1a,MAAO,CAAE8f,YAAa,UACvC,kBAAC,GAAW,CACVvG,QAASA,EACTsE,QAASA,EACT/D,YAAatK,IAGd3R,O,kDC/CLkiB,GAAO9sB,kBAAOqC,QAAPrC,CAAY,gKAQnB+sB,GAAe/sB,kBAAO6N,IAAP7N,CAAc,8JAO7B,gBAAG4B,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,cAAMd,EAAMc,aAAY,SAG5DsqB,GAAahtB,kBAAOitB,IAAPjtB,CAAuB,yDAIpCktB,GAAeltB,kBAAO,OAAPA,CAAc,kUAWX,YAAQ,SAAL4B,MAAkBC,mBAiG9BsrB,GAzFG,SAAH,GAAc,EAAR/P,SAA2B,EAAjBgQ,kBAAgD,IAA7BC,EAAW,EAAXA,YAAgBjtB,EAAK,mBAC/DwB,EAAQqI,qBACRqjB,EAAWvlB,mBACXyQ,EAAWzQ,mBAEjB,EAA8BT,qBAAW3B,GAAjCW,EAAS,EAATA,UAAWP,EAAM,EAANA,OAEnBkC,qBACE,kBAAM,WACAuQ,EAAS5P,SAAS6P,aAAaD,EAAS5P,YAE9C,IA0BF,OACE,kBAACkkB,GAAI,eAAC/f,MAAO,CAAEuV,SAAU,WAAYpV,OAAQ,QAAUhN,MAAO,GAAOE,GACnE,kBAAC,KAAK,CACJqM,UAAU,SACVoN,GAAG,QACH/N,KAAK,SACLlI,GAAG,iBACH2pB,QAAQ,WACRC,WAAS,EACTzT,MAAM,SACNsT,YAAaA,GAAe,SAC5BtgB,MAAO,CACL0gB,SAAU,EACV/qB,aAAa,GAAD,OAAKd,EAAMc,aAAY,sBAAcd,EAAMc,aAAY,MACnEgrB,YAAa,OACb/L,YAAa/f,EAAM+f,YACnBgM,WAAY,QAEdvb,IAAKkb,EACLM,UAlCU,SAAC9U,GACfA,EAAE8Q,kBACY,UAAV9Q,EAAEzK,MACAmK,EAAS5P,SAAS6P,aAAaD,EAAS5P,SAC5CtC,EAAUgnB,EAAS1kB,QAAQtH,OAAS,MA+BlCuX,SA3CW,SAACC,OA8Cb/S,EACC,kBAACmnB,GAAY,CAACjf,QA/BJ,SAAC6K,GACfA,EAAE8Q,kBACF0D,EAAS1kB,QAAQtH,MAAQ,GACrBkX,EAAS5P,SAAS6P,aAAaD,EAAS5P,SAC5CtC,EAAU,KA2B0BzF,MAAOe,EAAMisB,UAC3C,kBAAC,IAAe,CACd3tB,MAAM,OACNgN,OAAO,OACPgB,KAAM4f,gBACNjtB,MAAM,UAGR,KAEJ,kBAACksB,GAAY,CACX/S,SAAO,EACPnZ,MAAOe,EAAM4P,UACbvD,QAAS,SAAC6K,GACRA,EAAE8Q,kBACFtjB,EAAUgnB,EAAS1kB,QAAQtH,OAAS,MAGtC,kBAAC0rB,GAAU,CAAC9sB,MAAM,OAAOgN,OAAO,OAAOgB,KAAM6f,yB,+TCCtCC,GAhIQ,SAAH,GAqBb,IAAD,IApBJC,gBAAQ,OAAQ,MAChBC,kBAAU,OAAQ,MAClBC,sBAAc,MAAG,cAAa,EACdC,EAAe,EAA/BC,eACAC,EAAkB,EAAlBA,mBAAmB,EAAD,EAClBC,gCAAwB,OAAQ,EAChCC,EAAK,EAALA,MAAM,EAAD,EACLC,mBAAW,OAAQ,MACnBC,sBAAc,OAAQ,MACtBC,qBAAa,OAAQ,MACrBC,oBAAY,OAAQ,EACpBC,EAAQ,EAARA,SACAC,EAAY,EAAZA,aACAC,EAAiB,EAAjBA,kBACAC,EAAgB,EAAhBA,iBACAC,EAAgB,EAAhBA,iBACYC,EAAW,EAAvBC,WACAC,EAAoB,EAApBA,qBACAC,EAAe,EAAfA,gBACGtc,EAAI,mBAEDnR,EAAQqI,qBACRC,EAAWC,cASXkkB,EAAiBxmB,mBAAQ,WAC7B,IAAIwG,EAAM,KAEV,MAD+B,oBAApB+f,IAAgC/f,EAAM,WAC5C+f,EACE,eAAG/f,EAAM+f,GADa,CAAEngB,QAAS,kBAAM/D,GAAU,OAEvD,CAACkkB,EAAiBlkB,IAErB,OACE,kBAAC,QAAI,iBAAK6I,EAAI,CAAEhG,MAAO,CAAEuiB,IAAK,QAAUC,cAAc,SAASrvB,MAAO,IACpE,kBAAC,QAAI,CACHA,MAAO,EACPqvB,cAAe,CAAC,SAAU,SAAU,OACpCxiB,MAAO,CAAEuiB,IAAK,QACd5iB,WAAY,CAAC,aAAc,aAAc,UACzC4G,eAAgBmb,EAAc,gBAAkB,eAE9CD,IAAUP,IACV,qCACIA,GACA,kBAAC,QAAI,CACH3a,eAAe,aACfmN,KAAMgO,EAAc,OAAIhmB,GAExB,kBAACoF,EAAA,EAAM,eACL7M,KAAK,QACLgZ,SAAO,EACPnZ,MAAOwuB,GAAmBztB,EAAM+P,KAChC5D,SAAUogB,GACNE,KAKTG,GACC,kBAAC,IAAO,CACNzhB,MAAO,CACL7M,MAAOuuB,EAAc,YAAShmB,EAC9BgY,KACEgO,IAAiBD,IAAUP,GAAcA,GAAYO,EACjD,OACA/lB,GAERpI,OAAQouB,GAEPD,IAMRF,IAAuBC,EACtB,kBAAC,QAAI,CACH9N,KACEgO,IAAiBD,IAAUP,GAAcA,GAAYO,EACjD,OACA/lB,EAENsE,MAAO,CAAEuiB,IAAK,QACd5iB,WAAW,UAEV4hB,GAED,KAEJ,kBAAC,QAAI,CAAChb,eAAe,WAAWmN,KAAMgO,EAAc,OAAIhmB,GACrD8lB,EAA2BD,EAAqB,MAC/CJ,IAAeY,GACf,kBAACjhB,EAAA,EAAM,eACL2hB,EAAE,IACFC,GAAG,OACHhe,SAAU2d,EACVrhB,SAAUkhB,EACVpuB,MAAOkuB,GAAqBntB,EAAMM,mBA/E3B,WACjB,IAAImM,EAAM,KAEV,MAD2B,oBAAhB6gB,IAA4B7gB,EAAM,WACxC6gB,EACE,eAAG7gB,EAAM6gB,GADS,CAAEjhB,QAAS,kBAAM/D,GAAU,KA6EtCilB,IAEHH,GAAoB,kBAAC,IAAI,KAAEA,IAG/BF,IAIJD,GACC,kBAAC,IAAI,CACHruB,KAAMouB,EACNtuB,MAAOquB,EACPtuB,OAAQquB,EACRc,EAAG,GAEFX,KC5HEa,GAAY1vB,kBAAOqR,MAAPrR,CAAW,kVAIT,YAAQ,SAAL4B,MAAkB8e,SAAW,UAC9B,YAAQ,SAAL9e,MAAkB8e,SAAW,UAWhD7C,GAAU7d,kBAAOqC,OAAPrC,CAAY,4NCgLpB2vB,IDjKW3vB,kBAAO0vB,GAAP1vB,CAAiB,0IAGjB,YAAQ,SAAL4B,MAAkBM,mBAAqB,UACxC,YAAQ,SAALN,MAAkBM,mBAAqB,UAG5ClC,kBAAOmB,IAAPnB,CAAY,mOAInB,gBAAG4B,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,SAE/B,YAAQ,SAALd,MAAkB8e,WAIzC,gBAAG9e,EAAK,EAALA,MAAe,SAARqpB,SAMN,CACEpqB,MAAO,QACPgB,gBAAiBD,EAAM8e,SANzB,CACE7f,MAAOe,EAAM8e,QACb7e,gBAAiB,kBAQC7B,kBAAOqC,OAAPrC,CAAY,gIAOTA,kBAAOqC,OAAPrC,CAAY,iMAKrB,YAAQ,SAAL4B,MAAkB8e,SAAW,UACnC,gBAAG9e,EAAK,EAALA,MAAK,MAAO,UAAGA,EAAMc,aAAY,QAAQ,KAInC1C,kBAAOqR,MAAPrR,CAAW,8MAIpB,YAAQ,SAAL4B,MAAkB8e,SAAW,UACxC,YAAQ,SAAL9e,MAAkB8e,SAAW,UAKrC,YAAQ,MAAQ,CAChB7e,gBADQ,EAALD,MACoB8e,QACvB7f,MAAO,QACPinB,OAAQ,cCrFA,SAAH,GAAqD,IAAjC8H,EAAa,EAA3BC,aAA6BC,EAAU,EAAVA,WACtCluB,EAAQqI,qBACd,EAA+C3C,qBAAW3B,GAAlDC,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAQM,EAAQ,EAARA,SAAUC,EAAS,EAATA,UAEjC,EAAwCF,oBAAS,GAAM,mBAAhD6pB,EAAY,KAAEC,EAAe,KACpC,EAAgC9pB,mBAAS,GAAE,mBAApC4Z,EAAQ,KAAEC,EAAW,KAC5B,EAA8B7Z,mBAAS,GAAE,mBAAlC+pB,EAAO,KAAEC,EAAU,KAC1B,EAA0BhqB,mBAAS,CAAC,EAAG,EAAG,EAAG,IAAG,mBAAzC8Z,EAAK,KAAEC,EAAQ,KAEhB4P,EAAeD,GAAiB,CAAC,GAAI,GAAI,IAEzC1P,EAAc3X,uBAAY,WAC9B,IAAIkM,GAAKqb,GAAclqB,EACvB,OAAI6O,EAAI,EAAU,EACXR,KAAKI,KAAKI,KAChB,CAACqb,EAAYlqB,IAEhBqC,qBAAU,WACR,IAAMkY,EAAWD,IAEjB,GAAIC,EAAW,EAAG,CAChB,IAAIC,EAAW6P,EAAU,EAAIA,EAAU,EACnC7P,EAAWD,EAAW,IAAGC,EAAWD,EAAW,GACnDF,EAAS/W,IAAE8W,MAAMI,EAAW,EAAGA,EAAW,SAE1CH,EAAS/W,IAAE8W,MAAM,EAAGG,EAAW,IAE7BA,IAAaL,GAAUC,EAAYI,KACtC,CAACD,EAAata,EAAOka,EAAUmQ,EAASH,IAE3C,IAeMzP,EAAmB,SAACC,GACxB,IAAIC,EAAY1a,EAEhB,OAAQya,GACN,IAAK,QACC2P,EAAUnQ,GAAUoQ,EAAWD,EAAU,GAC7C1P,GAAa1a,IAAUD,EACvB,MACF,IAAK,OACCqqB,EAAU,GAAGC,EAAWD,EAAU,GACtC1P,GAAa1a,GAAUD,EACvB,MACF,IAAK,YACHsqB,EAAW,GACX3P,EAAY,EACZ,MACF,IAAK,MACH2P,EAAWpQ,GACXS,EAAYT,EAAWla,EAAQA,EAMnC,OAAI2a,EAAY,EAAuB,EACnCA,EAAY3a,GAASsa,EAAY4P,EAAYlqB,GAC3BC,OACtBO,EAAUma,IAGZ,OAAOsP,EAAa,IAAMC,EAAa,KACrC,kBAAC,GAAO,CACNxc,eAAe,eACf5G,WAAW,SACX8iB,EAAE,oBAEF,kBAAC,OAAI,CAACD,cAAc,SAAS7iB,WAAW,UACtC,kBAAC,OAAI,CACHD,UAAU,eACV+G,GAAG,OACH9G,WAAW,SACX4G,eAAe,UAEdwM,EAAW,GACV,kBAACjS,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,eACTE,QAAS,kBAAMoS,EAAiB,cAChCtT,MAAO,CACL8T,QAASoP,EAAU,OAAIxnB,EAAY,EACnCqY,cAAemP,EAAU,OAAIxnB,EAAY,UAI/C,kBAACoF,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,cACTE,QAAS,kBAAMoS,EAAiB,SAChCtT,MAAO,CACL8T,QAASoP,EAAU,OAAIxnB,EAAY,EACnCqY,cAAemP,EAAU,OAAIxnB,EAAY,UAI5CuX,EAAM5R,KAAI,SAAC5H,GAAC,OACX,kBAACqH,EAAA,EAAM,CACL7M,KAAK,QACLyL,UAAU,cACV5L,MAAOe,EAAM4P,UACbvD,QAAS,kBAjFK,SAACmS,GACzB,IACIG,GADUH,EAAW,IACAxa,EACrB2a,EAAY,IAAGA,EAAY,GAC/B2P,EAAW3P,EAAY,EAAI,EAAIH,GAC/Bha,EAAUma,GA4Ee4P,CAAkB3pB,IACjC6H,IAAG,oBAAe7H,GAClBiL,SAAUwe,IAAYzpB,GAEtB,kBAAC,IAAI,CAAChG,KAAMyvB,IAAYzpB,GAAIA,OAIhC,kBAACqH,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,eACTE,QAAS,kBAAMoS,EAAiB,UAChCtT,MAAO,CACL8T,QAASoP,GAAWnQ,EAAW,OAAIrX,EAAY,EAC/CqY,cAAemP,GAAWnQ,EAAW,OAAIrX,EAAY,UAGxDqX,EAAW,GACV,kBAACjS,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,gBACTE,QAAS,kBAAMoS,EAAiB,QAChCtT,MAAO,CACL8T,QAASoP,GAAWnQ,EAAW,OAAIrX,EAAY,EAC/CqY,cAAemP,GAAWnQ,EAAW,OAAIrX,EAAY,WAK7D,kBAAC,OAAI,CACH8mB,cAAc,SACdjc,eAAe,SACf5G,WAAW,UAEX,kBAACmB,EAAA,EAAM,CACL7M,KAAK,QACLgZ,SAAO,EACPnZ,MAAOe,EAAM4P,UACbzD,SAAUgiB,EAAe,YAAc,cACvC9hB,QAAS,kBAAM+hB,GAAiBD,KAEhC,kBAAC,IAAI,CAACvvB,MAAI,GAAEoF,EAAK,cAElBmqB,GACC,kBAAC,OAAI,CAACR,cAAc,SAAS3U,GAAG,OAAOlO,WAAW,UAC/CmjB,EAAazhB,KAAI,SAACgiB,GAAM,OACvB,kBAACviB,EAAA,EAAM,CACLQ,IAAK+hB,EACLpvB,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPwV,EAAE,eACFvhB,QAAS,kBAhJA,SAACmiB,GACxBjqB,EAASiqB,GACTF,EAAW,GACX9pB,EAAU,GACV4pB,GAAgB,GA4IaK,CAAiBD,KAEhC,kBAAC,IAAM,CAAC5vB,MAAI,GAAE4vB,a,+ECpIjBE,GAjDE,SAAH,GAQP,IAPLC,EAAU,EAAVA,WACAC,EAAI,EAAJA,KACAC,EAAW,EAAXA,YACAC,EAAW,EAAXA,YACAtoB,EAAS,EAATA,UACAuoB,EAAQ,EAARA,SACAnqB,EAAC,EAADA,EAEA,GAAI+pB,EAAY,OAAOC,EACvB,MAQIA,GAAQ,GAPV5sB,EAAE,EAAFA,GACAmK,EAAQ,EAARA,SACAygB,EAAK,EAALA,MACAK,EAAQ,EAARA,SACAnR,EAAK,EAALA,MAAM,EAAD,EACLkT,gBAAQ,MAAG,GAAE,EACV7d,EAAI,mBAET,OACE,kBAACwH,GAAA,EAAI,eACHjH,eAAe,oBACf5G,WAAW,SACX2B,IAAG,UAAKzK,EAAE,gBAAQ4C,GAClB4B,UAAWA,EACXonB,EAAE,OACFqB,EAAgB,SAAbF,EAAsB,eAAiB,IAC1CjW,aAAW,EACX3M,SAAUA,EACVE,QAAS,kBAAMyiB,EAAYF,IAC3BtwB,MAAOuwB,KACH1d,GAEH2K,GAAS,yBAAKpQ,IAAKoQ,EAAOlQ,IAAKghB,GAAS5qB,IACxC4qB,GACC,kBAAC,IAAI,CAACnuB,QAAM,EAACG,MAAI,EAACoa,GAAG,QAClB4T,GAGJK,GACC,kBAAC,IAAM,CAACxuB,QAAM,EAAC0U,GAAG,QACf8Z,GAGJ+B,I,6ECfDE,GAAa9wB,kBAAOqC,QAAPrC,CAAY,2RAkBzB+wB,GAAkB,SAAH,GAA+C,IAAzCze,EAAS,EAATA,UAAWsZ,EAAO,EAAPA,QAAS1gB,EAAI,EAAJA,KAAS6H,EAAI,mBACpDie,EAAcjpB,mBACpB,OACE,kBAACwZ,GAAe,KACd,kBAAClH,GAAA,EAAQ,iBACHtH,EAAI,CACRT,UAAWA,EACX7F,UAAW,CAAC,GAAI,MAAO,OAAOmf,GAC9B1gB,KAAMA,EACNtH,GAAIsH,EACJ0gB,QAASA,EACTxZ,IAAK4e,OAudN,IAjdaC,GAogBLC,IApgBKD,GAaC,SAAH,GAsCX,IArCL3N,EAAM,EAANA,OAAO,EAAD,EACNngB,YAAI,MAAG,GAAE,EACTqrB,EAAK,EAALA,MACAK,EAAQ,EAARA,SAAS,EAAD,EACRsC,gBAAQ,MAAG,GAAE,MACb7K,eAAO,MAAG,GAAE,MACZ/J,gBAAQ,OAAO,MACfoU,gBAAQ,MAAG,SAAQ,EACnB7K,EAAU,EAAVA,WACA4K,EAAW,EAAXA,YAAY,EAAD,EACXU,iBAAS,OAAQ,MACjBC,kBAAU,OAAQ,MAClBC,sBAAc,OAAQ,MACtBC,iBAAS,OAAQ,MACjBC,kBAAU,OAAQ,MAClB/N,kBAAU,MAAG,KAAI,MACjBpB,cAAM,OAAO,MACbyN,kBAAU,MAAG,KAAI,MACjB1nB,iBAAS,OAAQ,MACjBmoB,kBAAU,OAAQ,MAClB9B,mBAAW,OAAQ,MACnBC,sBAAc,OAAQ,MACtBM,wBAAgB,MAAG,SAAQ,MAC3BC,wBAAgB,MAAG,SAAQ,EAC3BF,GAAiB,EAAjBA,kBACAM,GAAe,EAAfA,gBAAgB,GAAD,EACfnB,mBAAU,QAAQ,QAClBD,iBAAQ,QAAQ,QAChBE,uBAAc,OAAG,cAAa,GAC9BgB,GAAU,EAAVA,WACAd,GAAc,EAAdA,eACAC,GAAkB,EAAlBA,mBAAmB,GAAD,EAClBmD,wBAAe,QAAQ,GACvB7P,GAAI,EAAJA,KAAK,GAAD,EACJ8P,oBAAW,QAAO,QAClBC,oBAAW,OAAG,aAAQ,GACtB7C,GAAY,EAAZA,aAEQ5Z,GAAqB5N,qBAAWsqB,MAAhC1c,iBACFtT,GAAQqI,qBACd,GAAmD3C,qBAAW3B,GAAtDG,GAAK,GAALA,MAAOO,GAAQ,GAARA,SAAqBwrB,GAAU,GAArBvrB,UACnB+lB,GAAa9jB,uBACjB,SAACkM,GACC,IAAWqd,EAAYrd,IAAf,GAEF8T,EAAW,CAAC,GAAD,OACZuJ,EAAQluB,IAAE,UACG,SAAbkC,GAAM,GAAgB,MAAQ,SAG/BO,IAAUA,GAASkiB,KAEzB,CAACziB,GAAOO,KAEJC,GAAYiC,uBAChB,SAACwpB,GACKA,GAAWF,GAAWE,GAAa,MAEzC,CAACF,KAGGxO,GAAmBxb,mBAAQ,kBAuWnC,SAAwBye,GACtB,IAAIzB,EAAQ,EACZ,OAAOyB,EAAQlY,KAAI,SAAC0c,GAClBjG,GAAS,EACT,IAAM1hB,EAA6C2nB,EAA7C3nB,KAAM+gB,EAAuC4G,EAAvC5G,OAAQjK,EAA+B6Q,EAA/B7Q,QAASgN,EAAsB6D,EAAtB7D,KAAMrjB,EAAgBknB,EAAhBlnB,GAAOmP,EAAI,aAAK+X,EAAG,IAgBtD,YAdariB,IAATwe,IAAoBA,GAAO,GAEX,oBAATA,IACTlU,EAAI,aAAKif,UAAW/K,GAASlU,GAC7BkU,GAAO,GAEL9jB,IACkB,kBAATA,IACT4P,EAAI,aAAKkf,YAAa9uB,GAAS4P,IAEb,oBAAT5P,IACT4P,EAAI,aAAKmf,WAAY/uB,GAAS4P,KAG3B,aACLnP,GAAIA,GAAMihB,EAAM1Q,WAChB+P,YAAmBzb,IAAXyb,EAAuBA,EAAStgB,EACxCqjB,KAAMA,EACN+D,UAAkBviB,IAAZwR,EAAwBA,EAAU,YAAW,OAAOkY,EAAP,EAARA,cACxCpf,MAhYgCqf,CAAe9L,KAAU,CAACA,IAEjE,GASIlD,GACFC,GACAC,EACA/G,GAA2B,OAAfkH,EACZqC,EACArC,EACApB,GACD,qBAfCgQ,GAAU,MACVC,GAAa,eAEXxO,GAAiB,GAAjBA,kBACAW,GAAoB,GAApBA,qBACAC,GAAuB,GAAvBA,wBACAO,GAAgB,GAAhBA,iBAWJ,GAAgC/e,oBAAS,GAAM,qBAAxCqsB,GAAQ,MAAEC,GAAW,MAC5B,GAAwBtsB,mBAASkrB,GAAU,qBAApCqB,GAAI,MAAEC,GAAO,MAEdC,GAAepqB,uBAAY,WAC/B+pB,GAAcnN,qBAAqB,CAAC,IAAK,IACzCT,GAAwB,CAAC,IAAK,MAC7B,CAAC4N,GAAe5N,KAEb+L,GAAcloB,uBAAY,WAC9B,OAAQooB,GACN,IAAK,OACH,MAAO,CACL,wBACA,wBACA,mBACA,mBACA,mBACA,yBAGJ,IAAK,QACH,MAAO,CACL,mBACA,mBACA,wBACA,mBACA,mBACA,yBAEJ,IAAK,SACH,MAAO,CACL,oBACA,oBACA,mBACA,wBACA,mBACA,oBAEJ,IAAK,QACH,MAAO,CACL,OACA,OACA,mBACA,mBACA,yBAEJ,QACE,MAAO,CACL,OACA,OACA,mBACA,wBACA,uBAGL,CAACA,IAEEiC,GAAU7qB,iBAAO,MASjB8qB,GAAahrB,mBAAQ,WACzB,OACE,yBAAKkF,MAAO,CAAEuV,SAAU,WAAYpiB,MAAO,SACzC,kBAACgjB,GAAkB3c,SAAQ,CAACjF,MAAO+wB,IACjC,kBAAClP,GAAqB5c,SAAQ,CAACjF,MAAOgxB,IACpC,kBAAC,GAAW,CACVnvB,KAAMA,EACNye,KAAMA,GACNxZ,UAAWA,EACXke,QAASjD,GACTgJ,WAAYA,QAIhB5G,OAAO/B,KAAKuB,IAAkBtX,OAAS,GACvC8X,OAAO/B,KAAKe,IAAsB9W,OAAS,IAC3C,kBAACoV,GAAmB,KAClB,kBAAC,QAAI,CAAC/hB,KAAM,GAAIiN,QAAS0kB,IACvB,kBAAC,IAAe,CAACzkB,KAAMC,2BAMhC,CACDmkB,GACArN,GACAR,GACAthB,EACAiF,EACAuqB,GACA/Q,GACAyB,GACAgP,GACAhG,KAGIyG,GAAajrB,mBAAQ,WACzB,OAAIO,IAAc+oB,EAEd,kBAAC,QAAI,CAACjxB,MAAO,EAAGgN,OAAO,uBACrB,kBAACO,GAAA,EAAO,CAACslB,SAAUtB,OAIb,OAARN,QAAQ,IAARA,OAAQ,EAARA,EAAUxjB,QAAS,EACN,OAARwjB,QAAQ,IAARA,OAAQ,EAARA,EAAU/iB,KAAI,SAACoiB,EAAMhqB,GAAC,OAC3B,kBAAC,GAAQ,CACP6H,IAAG,wBAAmB7H,GACtBA,EAAGA,EACH+pB,WAAYA,EACZC,KAAMA,EACNC,YAAaA,GACbC,YAAaA,EACbtoB,UAAWA,EACXuoB,SAAUA,OAId,kBAACpW,GAAA,EAAI,CACHnS,UAAWA,EACXonB,EAAE,OACFqB,EAAgB,SAAbF,EAAsB,eAAiB,IAC1CzwB,MAAOuwB,KACP/V,aAAW,EACX3N,MAAO,CAAE+a,OAAQ,eACjB/Z,SAAS,QACTlN,MAAOe,GAAMU,QAEb,kBAAC,IAAI,CAACjC,QAAM,EAACG,MAAI,EAACoa,GAAG,QAAM,yBAK9B,CACD2V,EACAY,EACAR,EACAF,GACAroB,EACAsoB,EACAe,GACA7vB,GAAMU,SAGR,OACE,kBAAC,QAAI,CAACpC,MAAO,EAAGqvB,cAAc,SAASxiB,MAAO,CAAEuiB,IAAK,QAAUva,GAAG,QAChE,kBAAC,GAAc,CACb2Z,eAAgBA,EAChBD,YAAaA,EACbR,SAAUA,GACVC,WAAYA,GACZC,eAAgBA,GAChBE,eAAgBA,GAChBG,MAAOA,EACPK,SAAUA,EACVG,iBAAkBA,EAClBG,WAAYA,GACZF,iBAAkBA,EAClBX,mBAAoBA,GACpBS,kBAAmBA,GACnBD,aAAcA,GACdO,gBAAiBA,KAGnB,kBAAC,QAAI,CACHE,cAAc,SACdjS,SAAS,OACT5Q,WAAW,SACX4G,eAAe,aACfpT,MAAO,EACP6M,MAAO,CAAEuiB,IAAK,SAEZ+B,GAAeC,EAiJb,KAhJF,kBAAC,QAAI,CACHpxB,MAAO,EACP6M,MAAO,CAAEuiB,IAAK,QACdC,cAAe,CAAC,SAAU,SAAU,OACpC7iB,WAAW,cAEV4kB,GAAkBmB,GAAO,KACxB,kBAAC,KAAM,CACLpX,cAAe,WACb,IAAMa,EAAO,GAQb,OAPAmH,GAAiBvH,SAAQ,SAACkI,GACxB,IACA,EADiBA,EAAMpgB,MAAM6gB,GAEzBA,GAAqBT,EAAMpgB,IAC3BkgB,GAAkBE,EAAMpgB,IAAG,mBAF1BsH,EAAI,KAAEsZ,EAAU,KAGrBtI,EAAKhR,GAAQsZ,KAERtI,KAIR,kBACC,kBAACwF,GAAiB,CAChBE,KAAM2Q,GACNryB,MAAO,CAAC,OAAQ,OAAQ,uBAExB,kBAAC,KAAI,KACH,kBAAC,QAAI,CACH+N,QAAS,kBAAMukB,IAAaD,KAC5Bjf,eAAe,gBACf5G,WAAW,aACXmkB,EAAE,cACF9jB,MAAO,CAAE+a,OAAQ,YAEjB,kBAAC,IAAI,CAACtnB,MAAI,iBAEV,kBAAC,IAAe,CACd0N,KAAMqkB,GAAWpkB,cAAiBA,gBAClCpB,MAAO,CAAEimB,QAAS,WAClBhyB,KAAK,QAIT,kBAAC,QAAI,CAACyL,UAAU,mBAAmB6Q,SAAS,QACzC+F,GAAiBjV,KAAI,SAAC4V,GACrB,IAAIiP,EAAajP,EAAMpgB,MAAM6gB,GAC7B,EAAyBwO,EACrBxO,GAAqBT,EAAMpgB,IAC3BkgB,GAAkBE,EAAMpgB,IAAG,mBAF1BsH,EAAI,KAAEsZ,EAAU,KAGrB,OACE,kBAAC,QAAI,CAACnW,IAAKnD,GACT,kBAAC,GAAe,CACdA,KAAMA,EACN0gB,QAASpH,EACTvW,QAAS,WACP,IAAIgL,EAAM,EAOV,OALAwM,OAAO/B,KAAKe,IAAsB3I,SAChC,SAACoX,EAAGC,GACQ,IAANA,GAAWD,IAAMlP,EAAMpgB,KAAIqV,GAAO,MAIxCA,GACAwM,OAAOC,QAAQ5B,IAAmBnW,OAAS,EAEpCuH,GACL,+CAGGwP,GAAwB,CAC7BV,EAAMpgB,GACN,CACEsH,EACAqR,GACKiI,EAAa,GAAK,GAClBA,EAAa,GAAK,QAM9ByO,GACC,kBAAC,IAAe,CACd/kB,KAAMC,sBACNF,QAAS,kBACPyW,GAAwB,CAACV,EAAMpgB,IAAK,OAI1C,kBAAC,IAAI,CAAC6rB,GAAIwD,EAAa,UAAY,IAChC/nB,aAapBmmB,EAAa,KACZ,kBAAC,QAAI,CAACnxB,MAAO,GACX,kBAAC,GAAS,CAACktB,kBAAmB9mB,GAAW8W,SAAU9W,MAKtDorB,GAAc,KACb,kBAACZ,GAAU,CAAC1e,IAAKwgB,GAAS3kB,QAzOzB,WACX2kB,GAAQhqB,QAAQwqB,UAAUC,IAAI,UAC9Bza,YAAW,WACTga,GAAQhqB,QAAQwqB,UAAUnoB,OAAO,YAChC,MAqOgDqoB,WAAY,GACnD,kBAACzlB,EAAA,EAAM,CACLhN,MAAOe,GAAMwB,QACb4W,SAAO,EACPwU,MAAM,eACNzgB,SAAS,WACTE,QAAS0jB,MAKdH,EAAa,KACZ,kBAAC,QAAI,CAAC8B,WAAY,EAAGvmB,MAAO,CAAEuiB,IAAK,SACjC,kBAACzhB,EAAA,EAAM,CACL2hB,EAAG,EACHxV,SAAUyY,GACVjE,MAAM,YACN3tB,MAAQ4xB,GAAoB7wB,GAAM4P,UAAnB5P,GAAM+P,KACrB1D,QAAS,kBAAMykB,IAAQ,IACvB3kB,SAAS,sBAEX,kBAACF,EAAA,EAAM,CACL2hB,EAAG,EACHxV,QAASyY,GACTjE,MAAM,WACN3tB,MAAO4xB,GAAO7wB,GAAM+P,KAAO/P,GAAM4P,UACjCvD,QAAS,kBAAMykB,IAAQ,IACvB3kB,SAAS,eAOlB0kB,GACC,kBAAC,QAAI,CAACjS,GAAG,QAAQtgB,MAAM,oBAAoBod,SAAS,QACjDwV,IAGHD,IAEAtB,GAAa,kBAAC,GAAK,CAACzB,WAAYA,OA3ajC,SAAC1vB,GACN,IAAMmzB,EAAKC,aAAc,sBACnBC,EAAKD,aAAc,sBACnBE,EAAKF,aAAc,sBACnBG,EAAKH,aAAc,uBACnBI,EAAUD,EAAK,KAAOD,EAAK,KAAOD,EAAK,KAAOF,EAAK,KAAO,KAChE,OACE,kBAACtC,GAAS,eAAC3N,OAAQ,CAAEqQ,KAAID,KAAID,KAAIF,KAAIM,IAAI,EAAMD,YAAexzB,M,cC3EpE,mmGAAAoG,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAuBA,IAAMiV,GAAmBF,YAAaC,MAAM,CAC3C1Y,SAAUyY,YAAauY,UAGXC,GAAkB,SAAH,GAKrB,IAJNC,EAAI,EAAJA,KACAC,EAAO,EAAPA,QACA3V,EAAmB,EAAnBA,oBACA3G,EAAS,EAATA,UAEQuc,EAAoB5sB,qBAAWC,KAA/B2sB,gBACR,EAAuBC,cACjBL,EADkC,iBAArB,GACQzjB,IAAI,UAAY,GAC3C,EAAgCnK,oBAAS,GAAM,mBAAxCkC,EAAS,KAAEC,EAAU,KACtBzG,EAAQqI,qBAERmT,EAAW7U,sBAAW,wCAC3B,wFAAiB,GAARzF,EAAQ,EAARA,SACM,CAAD,gDAE0B,OADvCuF,GAAW,GACL+rB,EAAcC,KAAKC,eAAe,EAAD,OACjC9wB,EAAW,CAChBC,MAAO,CACNX,WACAuB,SAAU+vB,EACVG,OAAQ,SACRznB,UAAW,EACX0nB,aAAc,YAEb,KAAD,EACwD,OAA1DpwB,EAAqB,CAAEtB,WAAUuB,SAAU+vB,IAAe,UACpDpT,GAAM,CAAEle,WAAUuB,SAAU+vB,EAAaF,oBAAmB,KAAD,oBAC3D5V,EAAoB,CAAE3G,YAAW7U,WAAU2xB,YAAY,IAAQ,KAAD,uCACpE,mDAjB0B,GAkB3B,CAACP,EAAiB5V,EAAqB3G,IAYxC,OATA1P,qBAAU,WACL+rB,GACCF,IACHG,GAAQ,GACR7W,EAAS,CAAEta,SAAUgxB,OAGrB,CAACA,EAAO1W,EAAU6W,EAASD,IAG7B,kBAACU,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC3B,kBAAC1Z,GAAA,EAAI,CAACvN,SAAS,SACd,kBAAC,IAAO,CAAC3M,QAAM,EAACmT,GAAG,QAAM,uDAGzB,kBAAC,KAAM,CACAiI,oBAAkB2B,WAAU/B,cAAe,CAAEvY,SAAU,MAE5D,kBACA,kBAAC,KAAI,KACJ,kBAAC,QAAI,CAAC4J,WAAW,SAAS8G,GAAG,UAC5B,kBAACoG,GAAA,EAAK,CAAC7M,MAAO,CAAE7M,MAAO,SAAWmS,SAAO,EAACnH,KAAK,aAC/C,kBAAC2C,EAAA,EAAM,CACN4hB,GAAG,OACHzuB,KAAK,QACL8K,KAAK,SACLiC,SAAU3F,OAAYK,EAAY,gBAEjCL,EACA,kBAACqF,GAAA,EAAO,CACPC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAMwB,UAEZ,cAWAuxB,GAAc,SAAH,GAA2B,IAArBX,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QAC3BplB,EAAYsH,cAAZtH,QACFjN,EAAQqI,qBACRC,EAAWC,cACTyqB,EAAettB,qBAAWgQ,MAA1Bsd,WAEFC,EAAWtsB,uBAAY,WAC5B,OAA8B2B,EAAd,QAAZ2E,EAAmC,kBAClB,IAAD,OAAK+lB,EAAa,cAAgB,QAAO,YAAI/lB,MAC/D,CAAC3E,EAAU2E,EAAS+lB,IAEvB,OACC,kBAACF,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC3B,kBAAC1Z,GAAA,EAAI,CAACvN,SAAS,SACd,kBAAC,IAAO,CAAC3M,QAAM,EAACmT,GAAG,QAAM,oCAGzB,kBAAC,QAAI,CAACA,GAAG,UACR,kBAAC3F,EAAA,EAAM,CAACI,QAAS4mB,EAAU9mB,SAAS,YACpC,kBAACF,EAAA,EAAM,CACNhN,MAAOe,EAAM+P,KACb1D,QAAS,kBAAMgmB,GAAQ,IACvBlmB,SAAS,gBAQF+mB,GAAe,SAAH,GAAqD,IAA/Cd,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QAASc,EAAO,EAAPA,QAAS5W,EAAe,EAAfA,gBAChDvc,EAAQqI,qBAERqc,EAAUze,mBACf,iBAAM,CACL,CACCjE,GAAI,UACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,IAAI,CAACvlB,MAAI,EAACigB,KAAM,GACfsF,EAAInP,UAGPsN,OAAQ,OACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,QACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,IAAI,CAACzlB,OAAK,EAACO,MAAOe,EAAM4P,UAAWiP,KAAM,GACxCsF,EAAIzkB,QAGP4iB,OAAQ,YACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAG5B,CAACjyB,EAAM4P,YAGF2f,EAAWtpB,mBAAQ,WACxB,IAAMmtB,EAAQ,GAkCd,OAjCAD,EAAQjZ,SAAQ,SAACmZ,GAChB,MAA2CA,GAAU,GAA7Cle,EAAK,EAALA,MAAOme,EAAI,EAAJA,KAAeC,EAAQ,EAAjBve,QAErB,MACGG,IAAmB,IAAVA,IACN,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOqe,WAAW,UACV,OAARD,QAAQ,IAARA,OAAQ,EAARA,EAAUC,WAAW,SAHtB,CAMA,MAAsCD,EAAShiB,MAAM,KAAI,kBAAlDkiB,EAAS,KAAEje,EAAO,KAAKrE,EAAI,WAE5B6D,EACL,kBAAC,IAAI,KACHQ,EAAO,IAAG,IACX,0BAAMrK,MAAO,CAAElM,MAAOe,EAAM4P,YACV,kBAATuB,IAAyB,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMqiB,WAAW,MAAI,WAC3C5zB,KAAUC,SAASsR,IACvBA,IAKN,OAAQsiB,GACP,IAAK,SACJ,MACD,IAAK,OACJ,IAAM/zB,EAAQ4zB,GAAQ,EAAC,WAAO1zB,KAAUC,SAASsV,IAAWA,EAC5Die,EAAMrb,KAAK,CAAE/C,UAAStV,eAMlB0zB,IACL,CAACD,EAASnzB,EAAM4P,YAEnB,OACC,kBAACkjB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC3B,kBAAC1Z,GAAA,EAAI,KACJ,kBAAC,QAAI,CACJxN,MAAO,CAAEuiB,IAAK,QACd5iB,WAAW,SACX4G,eAAe,iBAEf,kBAACzF,EAAA,EAAM,CACNE,SAAS,UACThB,MAAO,CAAE8T,QAAS,EAAGC,cAAe,UAErC,kBAAC,IAAO,CAAC/L,GAAI,EAAG1U,QAAM,4BAGtB,kBAACwN,EAAA,EAAM,CAACE,SAAS,UAAUE,QAAS,kBAAMgmB,GAAQ,OAEnD,kBAAC,IAAI,CAACrZ,GAAG,OAAO/Z,MAAOe,EAAM4P,UAAWhR,MAAI,EAACH,QAAM,oBACnCmB,KAAUC,SAAS0c,IAEnC,kBAAC,OAAG,CACHpR,MAAO,CACNuoB,UAAW,SACXC,UAAW,UAEZnoB,UAAU,QACVJ,SAAS,QACT9M,MAAO,EACPqvB,cAAc,SACdjS,SAAS,OACT1Z,GAAG,oBAEH,kBAAC,GAAK,CACLqqB,UAAQ,EACRC,YAAU,EACV5H,QAASA,EACTwJ,WAAYqB,EAASxjB,OACrBxK,KAAMguB,EACNI,WAAS,EACTD,gBAAc,EACdD,YAAU,EACVG,YAAU,Q,cCrPhB,26MAOO,IAAMgE,GAAW,wCAAG,WAAOnN,GAAM,4FACPrlB,IAAMC,KACnC,wCAAwC,eAEnColB,IAEL,KAAD,EALmB,GAKnB,SALOnlB,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAMD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,IAAE,2CACV,gBAXuB,sCAaXkyB,GAAU,wCAAG,8FAAW,OAAF7xB,EAAE,EAAFA,GAAE,SACGZ,IAAMC,KAC1C,uCACA,CACEW,OAEF,KAAD,EAL0B,GAK1B,SALOV,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAAMuG,EAAK,EAALA,MAOP,MAAXxG,IAAmC,IAAjBC,EAAKC,QAAgB,0CAClCD,EAAKI,QAAM,QAElBkG,QAAQC,MAAMA,GAAO,iCAEhB,MAAI,4CACZ,gBAdsB,sCAgBVgsB,GAAa,wCAAG,wFAAc,OAALjyB,EAAK,EAALA,MAAK,SACpBT,IAAMC,KAAK,0CAA2C,CACzEQ,UACC,KAAD,EAFU,KAANF,EAAM,QAID,CAAD,wCAASA,EAAOJ,MAAI,gCACvB,MAAI,2CACZ,gBAPyB,sCASbwyB,GAAa,wCAAG,0FAAkB,OAAT/xB,EAAE,EAAFA,GAAIH,EAAK,EAALA,MAAK,SACxBT,IAAMC,KAAK,0CAA2C,CACzEW,KACAH,UACC,KAAD,EAHU,KAANF,EAAM,QAKD,CAAD,wCAASA,EAAOJ,MAAI,gCACvB,MAAI,2CACZ,gBARyB,sCAUbyyB,GAAa,wCAAG,WAAOhyB,GAAE,wFACfZ,IAAMC,KAAK,0CAA2C,CACzEW,OACC,KAAD,EAFU,KAANL,EAAM,QAGD,CAAD,wCAASA,EAAOJ,MAAI,gCACvB,MAAI,2CACZ,gBANyB,sC,cCvD1B,26MACO,IAAM0yB,GAAY,wCAAG,WAAOvyB,GAAI,iGAEjBN,IAAMC,KACtB,0CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZwB,sCAcZosB,GAAW,wCAAG,WAAOxyB,GAAI,iGAEhBN,IAAMC,KACtB,yCACAK,GACA,KAAD,EAHQ,GAKW,OAAb,QALDI,EAAG,cAKF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAbuB,sCAeXqsB,GAAc,wCAAG,WAAOzyB,GAAI,iGAEnBN,IAAMC,KACtB,4CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ0B,sCAadssB,GAAc,wCAAG,WAAO1yB,GAAI,iGAEnBN,IAAMC,KACtB,4CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ0B,sCAadusB,GAAc,wCAAG,WAAO3yB,GAAI,iGAEnBN,IAAMC,KACtB,4CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ0B,sC,cCxD3B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAqBA,I,YAgbe0vB,GAhbM,WACnB,IAAMhsB,EAAWC,cACT4E,EAAwConB,GAA5B9mB,EAA4B8mB,GAAfjnB,EAAeinB,GAEhD,EAIIhgB,cAHSigB,EAAc,EAAzBlgB,UACArH,EAAO,EAAPA,QACiBwnB,EAAa,EAA9BC,gBAGIC,EAAsBjvB,qBAAWgQ,MACvC,EAOIhQ,qBAAWC,KANbG,EAAU,EAAVA,WACAC,EAAQ,EAARA,SACAT,EAAO,EAAPA,QACAE,EAAU,EAAVA,WACAoD,EAAG,EAAHA,IACWgsB,EAAW,EAAtBpuB,UAEF,EACEd,qBAAWsqB,MADL1c,EAAgB,EAAhBA,iBAAkBuhB,EAAgB,EAAhBA,iBAAkBC,EAAgB,EAAhBA,iBAEpCrf,GAAiB1P,GAAY,IAA7B0P,aAGSsf,EAYbJ,EAZFK,cACAnf,EAWE8e,EAXF9e,IACAD,EAUE+e,EAVF/e,OACA4D,EASEmb,EATFnb,YACA4C,EAQEuY,EARFvY,eACA6Y,EAOEN,EAPFM,aACAjf,EAME2e,EANF3e,UACAL,EAKEgf,EALFhf,cACAG,EAIE6e,EAJF7e,iBACAof,EAGEP,EAHFO,iBACAC,EAEER,EAFFQ,SACAnC,EACE2B,EADF3B,WAGF,GAAuD,OAAHnd,QAAG,IAAHA,OAAG,EAAHA,EAAKS,IAAK,GAAtDiG,EAAe,EAAfA,gBAAiB6Y,EAAQ,EAARA,SAAS,EAAD,EAAEjC,eAAO,MAAG,GAAE,EAE/C,EAAuBZ,cAAhB8C,EAAiC,iBAArB,GACbC,EAAwBD,EAAa5mB,IAAI,oBAAsB,GAC/D8mB,GAAiBF,EAAa5mB,IAAI,aAAe,GACjD+mB,GAAaH,EAAa5mB,IAAI,eAAiB,GAC/CgnB,GAASJ,EAAa5mB,IAAI,WAAa,GAEvC6F,IAAakgB,GAAkB,EAE/BQ,GAAgB/uB,mBAAQ,WAC5B,OAAIwuB,IAAkBa,GAGVP,IACX,CAACA,EAAYN,EAAea,IAU/B,GARgBzwB,EAAS,CACvBC,QAASwP,GACTvP,QAAS8uB,GACT7uB,eAAgB,CAAEhD,GAAIsS,IACtBnP,cAAe,GACfF,KAAM2vB,KAOO,GAHPc,GAAO,GAAbn0B,KACWo0B,GAAc,GAAzBnvB,UACAE,GAAY,GAAZA,aAGF,GAAoCpC,oBAAS,GAAM,qBAA5CsxB,GAAU,MAAEnZ,GAAa,MAChC,GAA4CnY,oBAAS,GAAM,qBAApDuxB,GAAc,MAAEjZ,GAAiB,MACxC,GAAsCtY,oBAAS,GAAM,qBAA9CwxB,GAAW,MAAEnZ,GAAc,MAElC,GAAiD9X,EAAS,CACxDE,QAASwvB,GACTvvB,eAAgB,CAAEhD,GAAIiL,GACtB9H,cAAe,GACfF,KAAM2vB,IAJMlnB,GAAK,GAAXnM,KAAwBw0B,GAAY,GAAvBvvB,UAOfwvB,GAAU/vB,mBAAQ,oBAAa,OAALyH,SAAK,IAALA,QAAK,EAALA,GAAOsoB,WAAS,CAACtoB,KAE3CuoB,GAAyBhwB,mBAAQ,WACrC,OAAS,OAALyH,SAAK,IAALA,QAAK,EAALA,GAAOwoB,WAAkB,CAAEl0B,GAAS,OAAL0L,SAAK,IAALA,QAAK,EAALA,GAAOwoB,WAC9B,CAAEjpB,aACb,CAACS,GAAOT,IAELkpB,GAAYtxB,EAAS,CACzBC,QAAQ,kBAAD,OAAoBmI,GAC3BlI,QAASmvB,GACTlvB,eAAgBixB,GAChB9wB,cAAe,GACfF,KAAM2vB,IAGRvuB,qBAAU,WACFqvB,IAASR,EAAiBQ,MAC/B,CAACA,GAASR,IAEb7uB,qBAAU,WAAO,IAAD,EACRqH,IAAWyoB,GAAU50B,MACzB4zB,EAAS,2BAAKznB,IAAK,IAAE0oB,SAAwB,QAAhB,EAAED,GAAU50B,YAAI,aAAd,EAAgB60B,cAChD,CAACD,GAAU50B,KAAMmM,GAAOynB,IAE3B,IAAMT,GAAkBzuB,mBACtB,wBACGH,EAEG2uB,EAFO,UACJxnB,EAAO,YAAIuoB,KAAmB,OAAL9nB,SAAK,IAALA,IAAY,QAAP,EAALA,GAAO5O,aAAK,WAAP,EAAL,EAAciN,SAAU,KAE1D,CAACjG,EAAY0vB,GAAYf,EAAe/mB,GAAOT,IAGjD5G,qBAAU,WACRuP,EAAO,QACN,CAAC6f,GAAQ7f,EAAQ0f,EAAuBroB,EAASynB,KAEpD,OAAwBpwB,mBAAS,MAAK,qBAA/B/C,GAAI,MAAEuF,GAAO,MACpB,GAAgCxC,oBAAS,GAAM,qBAAxCkC,GAAS,MAAEC,GAAU,MAEtB4vB,GAAoB1vB,sBAAW,wCACnC,WAAOxF,GAAM,mFACH,OAAJI,SAAI,IAAJA,QAAI,EAAJA,GAAMmS,IAAE,iDACK,OAAjBjN,IAAW,GAAM,SACyB2M,GAAM,CAC9CjS,SACAmT,UAAWkgB,EACXE,gBAAiBD,EACjBO,cAAeA,GACfO,eAAgBA,IAAkB,GAClCD,sBAAuBA,GAAyB,GAChD7f,aAAsB,OAAR1P,QAAQ,IAARA,OAAQ,EAARA,EAAU0P,aACxBnC,mBACArG,YACC,KAAD,EAGgB,OAHhB,SAVMuG,EAAO,EAAPA,QAASC,EAAU,EAAVA,WAAYC,EAAE,EAAFA,GAY7B5M,GAAQ,CAAE0M,UAASC,aAAYC,OAC/BjN,IAAW,GAAO,+DAEnB,mDAnBkC,GAoBnC,CACE+tB,EACAQ,GACAP,EACA1uB,EACAuN,EACAgiB,EACAC,GACAtoB,EACA1L,KAIJ8E,qBAAU,WACR,IAAMmB,EAAa,IAAIC,gBACvB,MAAMlG,IAAQiF,IAAcouB,GAI5B,OAFAyB,GAAkB7uB,EAAWrG,QAEtB,kBAAMqG,EAAWE,WACvB,CACDyuB,GAAU50B,KACV40B,GAAU3vB,UACVA,GACAT,EACA2vB,GACAn0B,GACAo0B,GACAjoB,GACAqoB,GACAM,GACAzB,IAGF,QAAiC,OAAJrzB,SAAI,IAAJA,QAAI,EAAJA,GAAMmS,KAAM,GAA3BA,GAAE,GAARnS,KAAU+0B,GAAM,GAANA,OACPC,KAAkB,OAAJh1B,SAAI,IAAJA,QAAI,EAAJA,GAAMkS,aAAc,IAArC6C,EACUkgB,GAAcxsB,KAAKysB,OAAY,OAANH,SAAM,IAANA,QAAM,EAANA,GAAQ/0B,KAAKynB,UAAW,MAA3D0N,SAERrwB,qBAAU,WAAO,IAAD,UACd,GAA8B,KAAvB,OAAHwP,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAehO,QAAnB,CACA,IAAMkR,GAAe,OAAHpH,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,OAAO,QAAP,EAAN,EAAQyD,aAAK,WAAV,EAAH,EAAehO,QAAS,EAKlCqO,IAJoB,OAAHvE,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQyD,MAAMkD,GAAWhD,QAAQkD,QACvD/E,UACA5N,MAAK,SAAC4S,GAAC,OAAKA,EAAEhD,cAAcrO,OAAS,OAEM,IAAtCqO,cAEc4C,GAAqB5C,GAAiB,KADzCA,GAAiB,IAA5BrO,OACU,GACZ4qB,EAAyB,OAAhB3Z,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB/H,iBAC7BU,KAAkC,OAAhBqH,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBvI,MAAuB,OAAhBuI,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7H,QAC/DiH,EAAea,GAGjBjH,EAAU2gB,MACT,CAAC9gB,EAAKF,EAAeK,EAAWoG,IAEnC/V,qBAAU,WACRsD,OAAOitB,SAAS,EAAG,KAClB,CAACpd,IAEJnT,qBAAU,WAAO,IAAD,EACViB,IAAEuvB,QAAW,OAAHhhB,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQwgB,WACpBjhB,EAAIS,EAAEwgB,SAAS5c,SAAQ,SAAC6c,GACtB,IAAQxzB,EAAmC0H,EAAnC1H,SAAUC,EAAyByH,EAAzBzH,QAASC,EAAgBwH,EAAhBxH,YAC3B,OAAQszB,EAAQzD,MACd,KAAK/vB,EACH+P,EAAiByjB,EAAQ5hB,OACzB,MACF,KAAK3R,EACHqxB,EAAiBkC,EAAQ5hB,OACzB,MACF,KAAK1R,EAGL,QACEqxB,EAAiBiC,EAAQ5hB,aAOhC,CAACU,IAEJxP,qBAAU,WACR4uB,EAAasB,IACbna,EAAe,KACd,CAACma,GAAW3gB,EAAQwG,EAAgB6Y,IAEvC5uB,qBAAU,WACC,IAAD,EAAJqN,KACFkC,EAAOlC,IACPoC,EAAqB,QAAL,EAACpC,GAAG4C,SAAC,aAAJ,EAAMC,kBAExB,CAAC7C,GAAIkC,EAAQE,IAEhB,IAAM4G,GAAsB/V,sBAAW,wCACrC,4HAG+B,OAHtBoP,EAAS,EAATA,UACC7U,GADQ,EACgB4E,GAAc,IAAtC5E,SAAUgK,EAAS,EAATA,UAEZ2nB,GAAc3nB,EAAU,EAAD,OAEvB2I,GAAO,CAAEkC,YAAWN,eAAcnB,eAAa,KAAD,EAwBvB,GAtBzB0iB,EAAW/pB,EAETgqB,EAAO,CACXvC,mBACAgC,SAAUF,KAAoB,OAAPd,SAAO,IAAPA,QAAO,EAAPA,GAASwB,UAChCC,OAAQ/B,EACR5Y,MAAOD,EACP6a,SAAU,EACV9iB,aACArH,UACA0D,YAAoB,OAAP+kB,SAAO,IAAPA,QAAO,EAAPA,GAAS2B,YACtBC,WAAmB,OAAP5B,SAAO,IAAPA,QAAO,EAAPA,GAAS6B,cACrBr2B,SAAUA,IAAiB,OAALwM,SAAK,IAALA,IAAc,QAAT,EAALA,GAAO8pB,eAAO,WAAT,EAAL,EAAgBtF,OACtCuF,aAAc5E,EAAa,IAAM,IACjCM,QAASnpB,KAAKC,UAAa,OAAH4L,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQ6c,UAGlCgC,EAAS,2BACJznB,IAAK,IACR5O,MAAM,GAAD,mBAAW,OAAL4O,SAAK,IAALA,QAAK,EAALA,GAAO5O,OAAK,CAAEm4B,OAGrBS,EAAQhF,2BAEVG,EAAW,CAAD,iCACWplB,EAAY,CACjC5L,MAAO,CACLX,SAAUA,IAAiB,OAALwM,SAAK,IAALA,IAAc,QAAT,EAALA,GAAO8pB,eAAO,WAAT,EAAL,EAAgBtF,SAAmB,OAAVpsB,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,UAC3Dy2B,mBAA8B,OAAV7xB,QAAU,IAAVA,OAAU,EAAVA,EAAY8xB,UAChCC,kBAA6B,OAAV/xB,QAAU,IAAVA,OAAU,EAAVA,EAAYgyB,SAC/Bb,OACA/sB,KAAM2oB,EAAa,EAAI,EACvBtlB,IAAKmqB,EACL9uB,MACAmvB,gBAA2B,OAAVjyB,QAAU,IAAVA,OAAU,EAAVA,EAAY9D,GAC7BkH,QAAmB,OAAVpD,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,WAEtB,KAAD,GAZI8uB,EAAQ,OAcVnF,GAAYnsB,GAAa,iBACjB/E,GAAWq2B,GAAY,IAA3Bh2B,GACRg1B,EAAWr1B,EAAO,4BACT8zB,GAAO,CAAD,iCACTnoB,EAAW,CACftL,GAAIyzB,GACJ5zB,MAAO,CACLsxB,QAASnpB,KAAKC,UAAa,OAAH4L,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQ6c,SAChC3W,MAAOD,EACP4a,OAAQ/B,EACRrf,UAAWwgB,GACXP,cAED,KAAD,GACFb,EAAS,2BACJznB,IAAK,IACR5O,MAAY,OAAL4O,SAAK,IAALA,IAAY,QAAP,EAALA,GAAO5O,aAAK,WAAP,EAAL,EAAc0N,KAAI,SAACyrB,GAAC,aACzBxC,KAAWwC,EAAEj2B,GAAE,2BAENi2B,GAAC,IACJ9E,QAASnpB,KAAKC,UAAa,OAAH4L,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQ6c,SAChC3W,MAAOD,EACP4a,OAAQ/B,EACRrf,UAAWwgB,GACXP,aAEFiC,QAEL,wBAE2B,OAAxBC,EAAUxF,0BAAe,EAAD,QAERvlB,EAAW,CAC/BtL,MAAM,2BACDo1B,GAAI,IACPlhB,UAAWwgB,GACXtpB,UACAkmB,QAASnpB,KAAKC,UAAa,OAAH4L,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQ6c,SAChC5lB,IAAK2qB,EACLlC,WACA9oB,MAAY,OAALQ,SAAK,IAALA,IAAe,QAAV,EAALA,GAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,UAEzB,KAAD,GAVIirB,EAAO,OAWbhD,EAAS,2BACJznB,IAAK,IACR5O,MAAM,GAAD,mBACK,OAAL4O,SAAK,IAALA,QAAK,EAALA,GAAO5O,OAAK,4BAEVq5B,GAAO,IACVlrB,UACAkmB,QAASnpB,KAAKC,UAAa,OAAH4L,QAAG,IAAHA,GAAM,QAAH,EAAHA,EAAKS,SAAC,WAAH,EAAH,EAAQ6c,SAChC5lB,IAAK2qB,SAGR,QAEL1yB,EAAW,2BACNF,GAAO,gBACV8yB,OAAQ,MAAI,gBACFpB,GAAa,QAEzBtwB,GAAa,SAAD,OAAUswB,IACtB1uB,EAAS,IAAD,OAAK0qB,EAAa,cAAgB,QAAO,YAAIgE,IAAY,4CAClE,mDA9GoC,GA+GrC,CACEza,EACA6Y,EACAK,GACAe,GACAD,GACAb,GACA7f,EACAmgB,GACAlwB,EACA4uB,GACAvnB,EACA7H,EACAE,EACAiI,EACAnF,EACAgM,GACA6gB,EACAznB,GACAT,EACAvG,GACA+O,EACAnI,EACA1E,EACAoqB,IAIJ,OACE,oCACE,kBAAC,GAAe,CACdZ,KAAMyD,GACNxD,QAASzV,GACTF,oBAAqBA,GACrB3G,UAAWwgB,KAEb,kBAAC,GAAY,CACXnE,KAAM0D,GACNzD,QAAS1V,GACTwW,QAASA,EACT5W,gBAAiBA,IAEnB,kBAAC,GAAW,CAAC6V,KAAMwD,GAAYvD,QAAS5V,KAEvC/I,KAAOlN,GACN,oCACE,kBAAC,GAAM,CACLuP,UAAWwgB,GACX9Z,cAAeA,GACfE,eAAgBA,GAChBD,oBAAqBA,GACrBE,kBAAmBA,GACnBiZ,eAAgBA,KAGlB,kBAACrmB,GAAW,CAACrE,MAAO,CAAEI,UAAW,wBAC/B,kBAAC,QAAI,CACH8sB,GAAG,OACH1K,cAAe,CAAC,iBAAkB,iBAAkB,OACpDxiB,MAAO,CAAEuiB,IAAK,SAEd,kBAAC,QAAI,CAACC,cAAc,SAAS9O,KAAM,GACjC,kBAACyZ,GAAI,CACHlD,SAAUA,EACV5uB,UAAWA,GACX1B,QAAS2vB,KAGb,kBAAC,OAAG,CACFnN,UAAU,SACVzI,KAAM,EACN+O,EAAE,mBACFtvB,MAAO,CAAC,MAAO,MAAO,IAEtB,kBAAC,GAAY,CAACwd,MAAOsZ,EAAUrZ,QAAQ,cAM/C,kBAAClQ,GAAA,EAAO,QCtbV0sB,GAAiBn6B,kBAAOqC,QAAPrC,CAAY,+KAQ/Ba,UAGEu5B,GAAYp6B,kBAAOua,KAAPva,CAAY,oeAgFfq6B,GAhDA,WACb,IAAMz4B,EAAQqI,qBACd,EAAmC3C,qBAAWsqB,MAAa,IAAnD0I,cAAM,MAAG,GAAE,EAAEC,EAAS,EAATA,UAEfC,EAAWzyB,mBACjB,EAAwC7B,mBAAS,IAAG,mBAA7Cu0B,EAAY,KAAEC,EAAe,KAE9BC,EAAcpyB,uBAClB,SAACqyB,GAC0B,IAAD,IAAxB,IAAU,OAANN,QAAM,IAANA,OAAM,EAANA,EAAQ3sB,QAAS,IACC,QAAhB,EAAA6sB,EAAS5xB,eAAO,OAAU,QAAV,EAAhB,EAAkBrH,gBAAQ,WAAV,EAAhB,EAA4BoM,QAAS,EAAG,CAC1C,IAAM8G,EAAC,YAAO6lB,GAKd,OAJApxB,IAAE+B,OAAOwJ,GAAG,SAACA,GAAC,OAAKA,EAAE7Q,KAAOg3B,KAE5BL,EAAU9lB,GACVimB,EAAgB,IACTxxB,IAAE+B,OACPuvB,EAAS5xB,QAAQrH,UACjB,SAACs5B,GAAK,OAAKA,EAAMj3B,KAAOg3B,QAKhC,CAACN,EAAQC,IASX,OANAtyB,qBAAU,WACFwyB,GACJE,EAAYF,KAEb,CAACE,EAAaF,IAGf,kBAACN,GAAc,CAAC/nB,IAAKooB,GAClBF,EAAOlsB,KAAI,SAAC0sB,GAAK,OAChB,kBAACV,GAAS,CAAC/rB,IAAKysB,EAAMl3B,GAAI/B,gBAAiBD,EAAMk5B,EAAMC,aACrD,kBAAC,IAAI,CAACl6B,MAAM,SAAS+K,KAAKC,WAAe,OAALivB,QAAK,IAALA,OAAK,EAALA,EAAOE,YAAa,KACxD,yBAAKjuB,MAAO,CAAEkN,QAAS,SACpBrB,YAAW,WACV8hB,EAAgBI,EAAMl3B,MACrB,Y,8BChFTq3B,GAAej7B,kBAAOqR,OAAPrR,CAAW,4NAc1Bk7B,GAAkBl7B,kBAAOm7B,KAAPn7B,CAAa,qDA2MtBo7B,GAvMK,SAAH,GAA6C,IAAvC9D,EAAO,EAAPA,QAAS5pB,EAAM,EAANA,OAAQ2tB,EAAc,EAAdA,eACtC,EAAgCn1B,mBAAS,GAAE,mBAApC8yB,EAAQ,KAAEsC,EAAW,KACtB15B,EAAQqI,qBACNiL,EAAqB5N,qBAAWsqB,MAAhC1c,iBAGGqmB,EADMC,cACiBC,SAAStoB,MAAM,KAAzC,GACA7D,EAAUhI,qBAAWgQ,MAArBhI,MACFsoB,EAAU/vB,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UAAS,CAACtoB,IACzCb,EAAW5G,mBACf,iBAAoB,gBAAd0zB,IAAgC3D,IACtC,CAAC2D,EAAW3D,IAGR8D,EAAgBnzB,uBACpB,SAACwU,GAEC,IAAiB,IAAbA,EAIJ,OAAiB,IAAbic,EACK9jB,EAAiB,0CAC1BomB,EAAYtC,EAAW,GALrBsC,EAAYtC,EAAW,KAO3B,CAACA,EAAU9jB,IAGb,EAcIoiB,GAAW,GAbT1zB,EAAE,EAANyS,GACAmH,EAAG,EAAHA,IACaqR,EAAQ,EAArBoK,YACMzK,EAAK,EAAXjY,KACAolB,EAAa,EAAbA,cACAC,EAAY,EAAZA,aACAC,EAAe,EAAfA,gBACAC,EAAW,EAAXA,YACAC,EAAkB,EAAlBA,mBACA/E,EAAQ,EAARA,SACAmC,EAAa,EAAbA,cACA6C,EAAiB,EAAjBA,kBACAC,EAAoB,EAApBA,qBAEIve,EAAQF,GAAOse,GAAe9E,EAEpC,OAAItpB,EAEA,kBAAC6M,GAAA,EAAI,CACHtM,QAAS,kBAAMotB,EAAez3B,IAC9BitB,EAAE,oBACFnW,aAAW,EACXrM,IAAKzK,EACL1D,MAAM,cAEHwd,GACD,yBAAK3Q,MAAO,CAAEK,UAAW,SAAWE,IAAKoQ,EAAOlQ,IAAKghB,KAK3D,kBAACjU,GAAA,EAAI,CACHlM,IAAKzK,EACL1D,MAAO,CACL,oBACA,oBACA,mBACA,wBACA,mBACA,mBACA,oBAEF+M,SAAS,mBACTuiB,EAAE,UAEC9R,GACD,kBAACud,GAAY,KACX,yBAAK3tB,IAAKoQ,EAAOlQ,IAAKghB,KAG1B,kBAAC,QAAI,CACH/N,KAAM,EACNvgB,MAAO,EACPwM,WAAW,SACX6iB,cAAc,SACdxa,GAAG,QAEH,kBAAC,IAAI,CAACvU,MAAI,EAACH,QAAM,GACdmuB,GAEH,kBAAC,IAAI,CAACnuB,QAAM,GAAEwuB,GACb+M,IAAiBD,EAChB,oCACE,kBAAC,QAAI,CACH/gB,GAAG,OACHtH,eAAe,gBACf5G,WAAW,SACXxM,MAAO,GAEP,kBAAC,IAAI,CAACG,QAAM,GACR47B,EACA,kBAACC,GAAA,EAAY,CACbztB,SAAUA,EACVmpB,QAASA,EACTuE,QAAM,EACNpW,IAAK,CACHniB,KACAg4B,eACAxd,MAAOwd,GAAgB,EACvBG,qBACA/C,WACAG,mBAGN,OAIF,kBAAC,IAAI,CAAC94B,QAAM,GACV,0BAAM0M,MAAO,CAAEqvB,WAAY,OAAQC,YAAa,YAAY,cAC9C,KACN,IACPR,GAEFI,EACI,kBAAC,QAAI,CAACrhB,GAAG,SAASlO,WAAW,UAC7B,kBAACmB,EAAA,EAAM,CACLmM,SAAO,EACP/L,QAAS,kBAAMytB,GAAc,IAC7B76B,MAAOe,EAAM4P,UACbxQ,KAAK,OACL+M,SAAS,YAGX,kBAAC,KAAM,CACRiP,oBAAkB,EAClB3B,cAAe,CACb2d,SAAUA,GAEZ9b,iBAAiB,EACjBC,kBAAkB,IAEnB,YAAiB,IAAdkL,EAAM,EAANA,OACA,OACE,kBAAC,KAAI,CAACtb,MAAO,CAAC7M,MAAO,MAAO+Z,QAAQ,UAAWiP,UAAU,QAASjc,SAAS,SACvE,kBAACiuB,GAAe,CAChBpvB,KAAK,OACLwN,OAAQ,SAACR,GACHwjB,MAAMxjB,EAAEC,OAAOzX,SAEfi7B,OAAOzjB,EAAEC,OAAOzX,QAAU,EAE5B4T,EACE,uCAKJomB,EAAYiB,OAAOzjB,EAAEC,OAAOzX,UAG9B4J,KAAK,WACL5J,MAAO+mB,EAAO2Q,eAOrB,kBAACnrB,EAAA,EAAM,CACLmM,SAAO,EACP/L,QAAS,kBAAMytB,GAAc,IAC7B76B,MAAOe,EAAM4P,UACbxQ,KAAK,OACL+M,SAAS,YAGd,MAGF,MAGLkuB,EACS,kBAAC,QAAI,CAACxb,KAAM,GACZ,kBAAC5S,EAAA,EAAM,CACLhN,MAAOm7B,EAAoBp6B,EAAM4P,UAAY5P,EAAM8e,QACnDzS,QAAS,kBAAMotB,EAAez3B,EAAIo1B,IAClCjrB,SAAWiuB,EAAmC,SAAf,cAG7BA,EAAkC,eAAd,cAG1B,OCxFCQ,GA3HE,SAAH,GAOP,IANLC,EAAW,EAAXA,YACAC,EAAc,EAAdA,eACAv5B,EAAI,EAAJA,KACAguB,EAAQ,EAARA,SACA7oB,EAAY,EAAZA,aACAF,EAAS,EAATA,UAEMxG,EAAQqI,qBACd,EAA4C3C,qBAAWgQ,MAA/CqlB,EAAa,EAAbA,cAAe7F,EAAgB,EAAhBA,iBAEjB8F,EAAqBr0B,uBACzB,SAACwd,GACCtc,QAAQyX,IAAI6E,GACZ2W,GAAe,GAEf5F,EAAiB/Q,KAEnB,CAAC+Q,EAAkB4F,IAGrB,EAaIC,GAAiB,GAZnBpmB,EAAI,EAAJA,KACAiH,EAAG,EAAHA,IACAyb,EAAW,EAAXA,YACA5iB,EAAE,EAAFA,GACAwmB,EAAQ,EAARA,SAEAjB,EAAY,EAAZA,aACAC,EAAe,EAAfA,gBACAiB,EAAG,EAAHA,IACAC,EAAW,EAAXA,YACA/F,EAAQ,EAARA,SACA8E,EAAW,EAAXA,YAGIpe,EAAQF,GAAOse,GAAe9E,EAEpC,OACE,oCACE,kBAACtC,GAAA,EAAK,CAACV,KAAMyI,EAAaxI,QAASyI,GACjC,kBAACniB,GAAA,EAAI,CAACtN,SAAU,CAAC,QAAS,QAAS,QAAS,UAC1C,kBAAC,QAAI,CAAC/M,MAAO,EAAGsT,GAAG,OAAOF,eAAe,iBACvC,kBAACiH,GAAA,EAAI,CACHyiB,GAAG,OACH98B,MAAO,CAAC,QAAS,QAAS,QAAS,SACnCgN,OAAQ,CAAC,QAAS,QAAS,QAAS,SACpCoG,eAAe,UAEf,yBACEvG,MAAO,CAAE9L,OAAQ,QACjBqM,IAAKoQ,EACLlQ,IAAG,mBAAc6I,MAIrB,kBAAC,QAAI,CAACkZ,cAAc,UAClB,kBAAC,IAAO,CAACjvB,OAAK,GAAEiW,GAEhB,kBAAC,IAAI,CAAC/C,GAAG,OAAOhT,MAAI,EAACK,MAAOe,EAAM4P,UAAWlR,OAAK,OAC9CkB,KAAUC,SAASm6B,IAGrBC,EACA,kBAAC,IAAI,CAACv7B,OAAK,gBAAYu7B,GADL,KAIlBiB,EAAa,kBAAC,IAAI,CAACx8B,OAAK,uBAAmBw8B,GAArC,KAENC,EACA,kBAAC,IAAI,CAACz8B,OAAK,oBAAgBy8B,GADb,OAMlB9D,EACA,kBAAC,QAAI,CAAC/4B,MAAO,EAAGqvB,cAAc,UAC5B,kBAAC,IAAM,CAAC/uB,MAAI,0BACZ,kBAAC,IAAI,KAAEy4B,IAHK,KAOd4D,EACA,kBAAC,QAAI,CAAC38B,MAAO,EAAGqvB,cAAc,UAC5B,kBAAC,IAAM,CAAC/uB,MAAI,uBACZ,kBAAC,IAAI,KAAEq8B,IAHE,KAOb,kBAAChvB,EAAA,EAAM,CACL2gB,MAAM,aACNxtB,KAAK,QACLH,MAAOe,EAAM+P,KACb6d,EAAE,mBACFxV,SAAO,EACP/L,QAAS,kBAAMyuB,GAAe,KAAO,WAM3C,kBAACtrB,GAAW,KACV,kBAAC,GAAK,CACJ6c,UAAQ,EACRC,YAAU,EACV9lB,UAAWA,EACXspB,aAAa,EACblD,MAAM,kBACNmD,YAAarpB,EACbge,QAAS2W,aAAQL,GAAoB,GACrCjM,SAAS,QACTQ,SAAUA,EACVhuB,MAAU,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMyH,OAAQ,GACpBwmB,WAAS,EACTE,gBAAc,EACdxB,YAAgB,OAAJ3sB,QAAI,IAAJA,OAAI,EAAJA,EAAM8f,QAAS,EAC3ByN,YAAa,SAAC3K,GAAG,OAAK6W,EAAmB7W,SCqEpCmX,GAtLQ,SAAH,GAKb,IAAD,IAJJxvB,cAAM,OAAQ,EACd2tB,EAAc,EAAdA,eAAe,EAAD,EACdjzB,UAAW+0B,OAAU,OAAQ,MAC7BC,gBAAQ,OAAQ,EAEVx7B,EAAQqI,qBACd,EAKI3C,qBAAWC,KAJbK,EAAQ,EAARA,SACA4C,EAAG,EAAHA,IACWgsB,EAAW,EAAtBpuB,UACAV,EAAU,EAAVA,WAEM4H,EAAUhI,qBAAWgQ,MAArBhI,MAEFvI,EAAgBc,mBAAQ,WAC5B,GAAI6F,EAAQ,MAAO,CAAE9H,MAAO,KAE3B,CAAC8H,IAEE9G,EAAiBiB,mBAAQ,WAAO,IAAD,IACnC,OAAI6F,EACK,CACLiuB,eAAe,EACfK,mBAAmB,EACnBxxB,MACAgC,IAAU,OAAL8C,QAAK,IAALA,OAAK,EAALA,EAAOxE,QACZgE,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,OAErB,CACLtE,MACAsE,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,MACxBtC,IACE4wB,GAAsC,KAAhB,OAAV11B,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WACV,OAAVpF,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,QACP,OAALwE,QAAK,IAALA,OAAK,EAALA,EAAOxE,WAEd,CAACpD,EAAYgG,EAAQ0vB,EAAU5yB,EAAK8E,IAEjCtI,EAAaa,mBACjB,kBACEu1B,IAAa1vB,EACT,CACE,gBACA,OACA,KACA,sBACA,kBACA,oBACA,gBACA,oBACA,WACA,MACA,cACA,WACA,eACA,cACA,WACA,WACA,kBACA,YACA,WACA,uBACA,eAEF,CAAC,KAAM,MAAO,cAAe,cACnC,CAAC0vB,EAAU1vB,IAGb,EAA0CjH,EAAS,CACjDC,QAASgH,EAAS,cAAgB0vB,EAAW,kBAAoB,WACjEz2B,QAAS6uB,GACTzuB,gBACAH,iBACAI,aACAH,MAAOe,GAAYu1B,GAAc3G,IAN3BrzB,EAAI,EAAJA,KAAoBiF,GAAF,EAAZE,aAAuB,EAATF,WAS5B,EAAsClC,oBAAS,GAAM,mBAA9Cu2B,EAAW,KAAEC,EAAc,KAE5BvL,EAAWtpB,mBAAQ,WAEvB,OAAIqB,IAAEuvB,QAAY,OAAJt1B,QAAI,IAAJA,OAAI,EAAJA,EAAMyH,MACdwyB,EACKj6B,EAAKyH,KAAKwD,KAAI,SAACkpB,GACpB,IAAM+F,GAAmB,OAAP/F,QAAO,IAAPA,OAAO,EAAPA,EAASsE,gBAAgD,GAAxB,OAAPtE,QAAO,IAAPA,OAAO,EAAPA,EAASyE,oBAA2B,KAC1Ere,GACG,OAAP4Z,QAAO,IAAPA,OAAO,EAAPA,EAAS9Z,OAAc,OAAP8Z,QAAO,IAAPA,OAAO,EAAPA,EAASwE,eAAsB,OAAPxE,QAAO,IAAPA,OAAO,EAAPA,EAASN,UAGnD,OAAO,2BACFM,GAAO,IACV5Z,QACA8Q,MAAc,OAAP8I,QAAO,IAAPA,OAAO,EAAPA,EAAS/gB,KAEhBxI,SAAY2P,OAAQjV,EAAY,QAChCmoB,SAC0B,KAAhB,OAAVlpB,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WACZ,CACE,kBAAC,IAAM,CAACpM,MAAO,EAAGD,UAAQ,EAACsU,GAAG,OAAO1U,QAAM,GACjC,OAAPi3B,QAAO,IAAPA,OAAO,EAAPA,EAAS2B,aAEZ,kBAAC,IAAI,CAAC14B,aAAW,EAACD,OAAK,OACnBkB,KAAUC,SAAgB,OAAP61B,QAAO,IAAPA,OAAO,EAAPA,EAASsE,eAEhC,kBAAC,IAAI,CAAC0B,OAAK,EAACz8B,MAAOe,EAAM4P,UAAWlR,OAAK,OACrCkB,KAAUC,UAAgB,OAAP61B,QAAO,IAAPA,OAAO,EAAPA,EAASsE,cAAayB,KAE3C,CACF,kBAAC,IAAM,CAAC38B,MAAO,EAAGD,UAAQ,EAACsU,GAAG,OAAO1U,QAAM,GACnC,OAAPi3B,QAAO,IAAPA,OAAO,EAAPA,EAAS2B,aAEV,kBAAC,IAAI,CAAC34B,OAAK,OACPkB,KAAUC,SAAgB,OAAP61B,QAAO,IAAPA,OAAO,EAAPA,EAASsE,qBAMjCz4B,EAAKyH,KAAKwD,KAAI,SAACkpB,GAAO,OAC3B,kBAAC,GAAW,CACVjpB,IAAG,UAAKipB,EAAQjhB,GAAE,YAClB3I,OAAQA,EACR2tB,eAAgBA,EAChB/D,QAASA,OAKR,OACN,CAACn0B,EAAMuK,EAAQ2tB,EAAgB+B,IAElC,OAAI1vB,EAAeyjB,EAEfiM,EAEA,kBAAC,GAAQ,CACPj6B,KAAMA,EACNguB,SAAUA,EAEVuL,eAAgBA,EAChBD,YAAaA,EACbr0B,UAAWA,IAKf,kBAAC,QAAI,CACHlI,MACEwN,EACI,OACA,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,UAE7DR,OAAO,OACP2jB,EAAG,EACH9jB,MAAO,CAAEwV,OAAQ,IAAKD,SAAU,aAEhC,kBAAC/H,GAAA,EAAI,CAACra,MAAO,EAAGo1B,UAAU,UACxB,kBAAC,OAAG,CAAC1a,GAAG,QAAQpH,GAAG,QAAQtT,MAAO,GAChC,kBAAC,GAAK,CACJguB,YAAU,EACVC,eAAe,UACfkB,gBAAiBztB,EAAMU,OACvB0sB,iBAAkB,KAClB5mB,UAAWA,EACXomB,MAAM,kBACNlI,QAAS2W,aAAQ5B,GACjB1K,SAAS,SACTQ,SAAUA,EACVhuB,MAAU,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMyH,OAAQ,GACpB2lB,YAAU,EACVT,WAAgB,OAAJ3sB,QAAI,IAAJA,OAAI,EAAJA,EAAM8f,MAClBoO,WAAY3jB,EACZ4jB,eAAgB5jB,EAChBgjB,YAAa,SAAC3K,GAAG,OAAKsV,EAAetV,EAAIniB,W,wBC7LrD,mmGAAA4C,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAsEA,I,SAAM+kB,GAAU,CAAC,WAAY,cA4FdgS,GA1FIxW,IAAM5U,YACvB,WAQEC,GACI,IAAD,IAPDmN,cAAM,MAAG,WAAU,MACnBie,mBAAW,MAAG,SAAQ,MACtBC,gBAAQ,OAAQ,MAChBrgB,gBAAQ,6BAAG,wGACT3T,QAAQC,MAAM,sDAAoD,6CAIhE9H,EAAQqI,qBAMd,EAA+C3C,qBAAWsqB,MAAlD6E,EAAgB,EAAhBA,iBAAkBvhB,EAAgB,EAAhBA,iBAEpBjH,EAAU1F,sBAAW,wCACzB,WAAOm1B,GAAK,wEACV,IAEEjH,EAAiB,uBACbkH,EAAS,IAAIC,YACVC,OAAM,wCAAG,WAAO/kB,GAAC,uEAEdyG,EAAM,cACPgM,GAAQ,GAAE,iCACPnO,EAASugB,EAAOp6B,QAAQ,KAAD,+EAOlC,mDAXY,GAYbo6B,EAAOG,WAAWJ,EAAM,IACxB,MAAOh0B,GACPD,QAAQC,MAAMA,GACdwL,EACE,iEAGH,2CACF,mDA1BwB,GA2BzB,CAACqK,EAAQnC,EAAUlI,EAAkBuhB,IAGjCsH,EAASx1B,uBACb,SAACm1B,GAECzvB,EAAQyvB,KAEV,CAACzvB,IAGH,EAAwC+vB,aAAY,CAClDD,SACAE,UAAU,IAFJC,EAAY,EAAZA,aAAcC,EAAa,EAAbA,cAStB,OACE,oCACE,kBAACtwB,EAAA,EAAM,eACLE,SAAS,iBACTlN,MAAOe,EAAM4P,WAIT0sB,KAEHV,IAEDC,GAAY,0BAAWU,S,cCtJjC,26MAmCA,IAAQpvB,GAA8DonB,GAAlDjnB,GAAkDinB,GAAtC/mB,GAAsC+mB,GAA1B5nB,GAA0B4nB,GAEhEiI,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,sIAO7Bk7B,GAAkBl7B,kBAAOm7B,KAAPn7B,CAAa,qDAI/Bq+B,GAAUr+B,UAAOwd,IAAG,mHAuzBX8gB,GAhzBD,SAAH,GAOJ,IAAD,IANLC,EAAY,EAAZA,aACA5G,EAAY,EAAZA,aACAvvB,EAAS,EAATA,UACA4rB,EAAI,EAAJA,KACAC,EAAO,EAAPA,QACAzF,EAAK,EAALA,MAGW+M,EADMC,cACiBC,SAAStoB,MAAM,KAAzC,GACR,EAA4B7L,qBAAWgQ,MAA/BhI,EAAK,EAALA,MAAOynB,EAAQ,EAARA,SACf,EAAoDzvB,qBAAWC,KAAvDG,EAAU,EAAVA,WAAY8C,EAAG,EAAHA,IAAgBgsB,EAAW,EAAtBpuB,UACnB8B,EAAWC,cACXvI,EAAQqI,qBACd,EAA+C3C,qBAAWsqB,MAAlD1c,EAAgB,EAAhBA,iBAAkBwhB,EAAgB,EAAhBA,iBAClB5zB,GAAa4E,GAAc,IAA3B5E,SACFyzB,EAAsBjvB,qBAAWgQ,MACzBknB,GAAclvB,GAAS,IAA7BxD,KACA+C,EAAYsH,cAAZtH,QACF+oB,EAAU/vB,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UAAS,CAACtoB,IACzCb,EAAW5G,mBAChB,iBAAoB,gBAAd0zB,IAAgC3D,IACtC,CAAC2D,EAAW3D,IAGb,EAAkC1xB,oBAAS,GAAM,mBAA1Cu4B,EAAS,KAAEC,EAAY,KAExBC,EAASl4B,EAAS,CACvBC,QAAQ,SAAD,OAAWmI,GAClBlI,QAASwvB,GACTvvB,eAAgB,CAAEiI,UAASJ,WAAUK,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,OAC7DjI,MACEgI,KACK,OAALS,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,QAClB1G,GACAuvB,GACAnB,GACAiI,IAGFx2B,qBAAU,WAAO,IAAD,MAER,OAAN02B,QAAM,IAANA,OAAM,EAANA,EAAQx7B,OACPw7B,EAAOv2B,YACF,OAALkH,QAAK,IAALA,OAAK,EAALA,EAAO5O,SACF,OAAL4O,QAAK,IAALA,OAAK,EAALA,EAAOsvB,YACPx2B,GACAq2B,GAED1H,EAAS,2BACLznB,GAAK,IACR5O,MAAa,OAANi+B,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAcyH,KACrBg0B,UAAiB,OAAND,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAc8f,WAEzB,CAAC0b,EAAQv2B,EAAWkH,EAAOynB,EAAU0H,IAExC,IAAMI,EAAWp4B,EAAS,CACzBC,QAAS,iBACTC,QAAS6uB,GACT5uB,eAAgB,CAAE4D,MAAKgC,IAAU,OAAL8C,QAAK,IAALA,OAAK,EAALA,EAAOxE,SACnCjE,MAAO2D,GAAOgsB,EACdxvB,WAAY,CACX,gBACA,OACA,KACA,sBACA,kBACA,oBACA,gBACA,oBACA,WACA,MACA,eACA,cACA,WACA,WACA,kBACA,YACA,WACA,cACA,wBAEDD,cAAe,KAIf+vB,EAIGP,EAJHO,iBACAgI,EAGGvI,EAHHuI,iBACAC,EAEGxI,EAFHwI,oBACAC,EACGzI,EADHyI,cAGKC,GAAgB12B,sBAAW,wCAChC,WAAOwd,GAAG,kFACD7P,EAAqD6P,EAArD7P,UAAWogB,EAA0CvQ,EAA1CuQ,gBAAqBe,EAAqBtR,EAAzBniB,GAAY00B,EAAavS,EAAbuS,SAChDwG,GAAiB,GACjBhI,EAAiB5gB,GACjB6oB,EAAoBlyB,GACpBmyB,EAAcvwB,GAER2oB,EACLluB,IAAEg2B,UAAe,OAAL5vB,QAAK,IAALA,OAAK,EAALA,EAAO5O,OAAO,SAACm4B,GAAI,OAAKA,EAAKj1B,KAAOyzB,KAAU,EAC3DkH,EAAa,UAETY,EAAY,CACf/H,aACAC,SACAiB,WACAhC,mBAGDpsB,EAAS,CACRuxB,SAAS,iBAAD,OAAmBvlB,EAAS,YAAIrH,EAAO,YAAIynB,GACnDvwB,OAAQq5B,YAAmBD,GAAWhrB,aACpC,2CACH,mDAvB+B,GAwBhC,CACC2qB,EACAhI,EACAiI,EACAC,EACAvwB,EACAa,EACAivB,EACAr0B,EACA2E,IAIIwwB,GAAa92B,sBAAW,wCAC7B,WAAOwd,GAAG,gGA0BoD,OAzBvDuZ,EAAUp2B,IAAEkD,KAAU,OAALkD,QAAK,IAALA,OAAK,EAALA,EAAO5O,OAAO,YAAM,SAAHyO,MAAkB4W,EAAI5W,OAE5C+nB,EAMdoI,EANHhJ,gBACUa,EAKPmI,EALHhH,SACAla,EAIGkhB,EAJHlhB,MACA4a,EAGGsG,EAHHtG,SACA9iB,EAEGopB,EAFHppB,UACA8lB,EACGsD,EADHtD,kBAEKjC,EAAO,2BACTuF,GAAO,IACVtD,oBAGA7sB,IAAKklB,KAAKC,iBAEN0H,IACJjC,EAAQ7C,sBAAwBA,EAChC6C,EAAQ5C,eAAiBA,EAEzB4C,EAAQzD,gBAAe,UAAMznB,EAAO,aAAS,OAALS,QAAK,IAALA,GAAY,QAAP,EAALA,EAAO5O,aAAK,WAAP,EAAL,EAAciN,QAAS,GAC/DosB,EAAQzB,SAAWnB,GAEdoI,EAAQ,sBAAY,OAALjwB,QAAK,IAALA,OAAK,EAALA,EAAO5O,OAAK,CAAEq5B,IAC7ByF,GAAgB,OAALlwB,QAAK,IAALA,OAAK,EAALA,EAAOmwB,WAAYrhB,EAAQ4a,EAC5CjC,EAAS,2BAAKznB,GAAK,IAAEmwB,UAAWD,EAAU9+B,MAAO6+B,KAAY,SAEvDhxB,GAAsB,CAC3B4oB,iBACAuI,eAAgBxI,EAChBoB,SAAUnB,EACVwI,SAAS,GAAD,OAAK9wB,EAAO,aAAS,OAALS,QAAK,IAALA,GAAY,QAAP,EAALA,EAAO5O,aAAK,WAAP,EAAL,EAAciN,QAAS,GAC/CuI,cACE,KAAD,mBAEInH,GAAW,CAChBtL,MAAM,2BAAMs2B,GAAO,IAAEnC,UAAS9oB,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,UACpD,KAAD,uCACF,mDAxC4B,GAyC7B,CAACQ,EAAOynB,EAAUa,EAAS/oB,IAGtB+wB,GAAer3B,sBAAW,wCAC/B,WAAOwd,GAAG,gGAoBN,OAnBKrlB,GAAU4O,GAAS,IAAnB5O,MACAyO,GADK,EAC4B4W,GAAO,IAAxC5W,IAAI,EAAD,EAAEiP,aAAK,MAAG,EAAC,MAAE4a,gBAAQ,MAAG,EAAC,EAE9BuG,EAAQ,YAAO7+B,GACf8F,EAAI0C,IAAEg2B,UAAUK,GAAU,SAAC1G,GAAI,OAAS,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM1pB,OAAQA,KACxDowB,EAAS/W,OAAOhiB,EAAG,GAEbg5B,GAAgB,OAALlwB,QAAK,IAALA,OAAK,EAALA,EAAOmwB,YAAarhB,GAAS4a,EAE9C2F,EAAOj2B,QAAQ,CACdkC,KAAM20B,EACNtc,OAAa,OAAN0b,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAc8f,OAAQ,IAG9B8T,EAAS,2BACLznB,GAAK,IACRmwB,UAAWD,EACX9+B,MAAO6+B,EACPX,WAAiB,OAAND,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAc8f,OAAQ,KAC/B,UACG7T,GAAW,CAAED,MAAKN,YAAW,KAAD,GAClC8vB,EAAOj2B,QAAQ,CACdkC,KAAM20B,EACNtc,OAAa,OAAN0b,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAc8f,OAAQ,IAC3B,4CACH,mDA3B8B,GA4B/B,CAAC3T,EAAOynB,EAAUloB,EAAS8vB,IAGtBkB,GAAmBt3B,sBAAW,wCACnC,WAAO8f,EAAQtC,GAAG,sFAiBd,OAhBK5W,GADS,EACoB4W,GAAO,IAApC5W,IAAK6pB,EAAQ,EAARA,SAAU5a,EAAK,EAALA,MAAOxa,EAAE,EAAFA,GACxB27B,EAAgB,OAALjwB,QAAK,IAALA,OAAK,EAALA,EAAO5O,MAAM0N,KAAI,SAACyqB,GAAI,OACtCA,EAAK1pB,MAAQA,EAAG,2BAAQ0pB,GAAI,IAAEG,SAAU3Q,EAAO2Q,WAAaH,KAG7D8F,EAAOj2B,QAAQ,CACdkC,KAAM20B,EACNtc,MAAa,OAAN0b,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAc8f,QAGhBuc,GACA,OAALlwB,QAAK,IAALA,OAAK,EAALA,EAAOmwB,WAAYzG,EAAW5a,EAAQiK,EAAO2Q,SAAW5a,EACzD2Y,EAAS,2BACLznB,GAAK,IACRmwB,UAAWD,EACX9+B,MAAO6+B,KACL,SAEGrwB,GAAW,CAChBtL,KACAuL,MACA1L,MAAO,CAAEu1B,SAAU3Q,EAAO2Q,SAAUpB,aAClC,KAAD,sCACF,qDAzBkC,GA0BnC,CAACtoB,EAAOqvB,EAAQ5H,EAAUa,IAGrBkI,GAAqBv3B,uBAC1B,SAAC2N,GAAe,IAAD,EACd,OAAOhN,IAAEkD,KAAkB,QAAd,EAACyyB,EAAS17B,YAAI,aAAb,EAAeyH,MAAM,SAAC0sB,GAAO,OAAKA,EAAQjhB,KAAOH,OAEhE,CAAC2oB,EAAS17B,OAGL48B,GAAYx3B,sBAAW,wCAC5B,WAAO2N,GAAS,wHAIuC,GAJrC8iB,EAAQ,+BAAG,EAC5B8F,GAAiB,GACjBC,EAAoBlyB,GAEdmzB,EAAkBF,GAAmB5pB,IAEvC0hB,IAAkD,KAAxB,OAAfoI,QAAe,IAAfA,OAAe,EAAfA,EAAiBhE,mBAA0B,yCAClD9mB,EAAiB,iDAA+C,UAC9D0iB,IAAkD,KAAxB,OAAfoI,QAAe,IAAfA,OAAe,EAAfA,EAAiBhE,mBAA2B,0CACzD9mB,EAAiB,6CAA2C,QAI5B,GAFN,GAAX5F,GAAS,IAAxB5O,aAAK,MAAG,GAAE,EAEVs7B,GAFU,EAE2BgE,GAAmB,IAAxDhE,kBAAmBL,EAAa,EAAbA,eACvBK,EAAkB,CAAD,gBAMM,GALpBnX,EAAQ3b,IAAEg2B,UACfx+B,GACA,SAACm4B,GAAI,OAAKA,EAAK3iB,YAAcA,KAGxBqpB,EAAQ,YAAO7+B,IACN,IAAXmkB,EAAY,iBAcZ,OAdY,EACY0a,EAAS1a,IAAU,GAA5Bob,EAAI,EAAdjH,SACFkH,EAASD,EAAOjH,EAEtBuG,EAAS1a,GAAOmU,SAAWkH,EAErBV,GACA,OAALlwB,QAAK,IAALA,OAAK,EAALA,EAAOmwB,YACQ,OAAfO,QAAe,IAAfA,OAAe,EAAfA,EAAiBpE,cAAeqE,GACjB,OAAfD,QAAe,IAAfA,OAAe,EAAfA,EAAiBpE,cAAesE,EACjCnJ,EAAS,2BACLznB,GAAK,IACRmwB,UAAWD,EACX9+B,MAAO6+B,KACL,UACGrwB,GAAW,CAChBzL,MAAO,CAAEu1B,SAAUkH,GACnB/wB,IAAKowB,EAAS1a,GAAO1V,MACnB,KAAD,2BAqCC,OAnCGgxB,IACU,OAAfH,QAAe,IAAfA,OAAe,EAAfA,EAAiBpE,gBACwB,GAAxB,OAAfoE,QAAe,IAAfA,OAAe,EAAfA,EAAiBjE,oBAA2B,MAC7CqE,QAAQ,GAEJrG,EAAU,CACf5qB,IAAKmlB,0BACLgE,SAAyB,OAAf0H,QAAe,IAAfA,OAAe,EAAfA,EAAiBlH,SAC3BC,OAAuB,OAAfiH,QAAe,IAAfA,OAAe,EAAfA,EAAiBxiB,IACzBY,MAAsB,OAAf4hB,QAAe,IAAfA,OAAe,EAAfA,EAAiBpE,aACxB94B,SAAUA,EACVo2B,WAA2B,OAAf8G,QAAe,IAAfA,OAAe,EAAfA,EAAiB7G,cAC7B5mB,YAA4B,OAAfytB,QAAe,IAAfA,OAAe,EAAfA,EAAiB/G,YAC9BoH,oBAAoC,OAAfL,QAAe,IAAfA,OAAe,EAAfA,EAAiBjE,mBACtC7lB,YACArH,UACAsxB,YAAaA,EACbnH,YAEDuG,EAAS5lB,KAAKogB,GAERyF,GACA,OAALlwB,QAAK,IAALA,OAAK,EAALA,EAAOmwB,YAA2B,OAAfO,QAAe,IAAfA,OAAe,EAAfA,EAAiBpE,cAAe5C,EACpDjC,EAAS,2BACLznB,GAAK,IACRmwB,UAAWD,EACX9+B,MAAO6+B,EACPX,UAAWW,EAAS5xB,UAErB+oB,EAAiB,SAAD,OACS,OAAfsJ,QAAe,IAAfA,OAAe,EAAfA,EAAiB7G,cAAa,sBAActqB,IAEtD8vB,EAAOj2B,QAAQ,CACdkC,KAAM20B,EACNtc,MAAOsc,EAAS5xB,SACd,UACGoB,GAAW,CAChBtL,MAAM,2BACF87B,EAASA,EAAS5xB,OAAS,IAAE,IAChCiqB,UACA9oB,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,UAEvB,KAAD,qCAKCsoB,EAAa,EAEb12B,GAASA,EAAMiN,OAAS,IAC3BypB,EAAa12B,EAAMiN,OAAS,GAGvB2oB,EAAe,UAAMznB,EAAO,YAAIuoB,GACtC4H,EAAcvwB,GACTutB,IAAqBL,GACzBzxB,EAAS,CACRuxB,SAAS,iBAAD,OAAmBvlB,EAAS,YAAIrH,EAAO,YAAIynB,GACnDvwB,OAAQq5B,YAAmB,CAC1BhI,eACEjjB,aACD,4CAEL,mDAzG2B,GA0G5B,CACC6qB,EACAvwB,EACAqwB,EACAC,EACAe,GACAlI,EACA1iB,EACA5F,EACAxM,EACA+L,EACAkoB,EACA4H,EACAjI,EACAxsB,IAIIoc,GAAUze,mBACf,iBAAM,CACL,CACCjE,GAAI,SACJT,KAAM,SAAC4iB,GAAG,eACT,kBAAC,QAAI,CACJ7lB,MAAO,EACPwM,WAAW,SACXQ,OAAO,OACPmB,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,UACf0P,eAAe,YAEV,OAAHyS,QAAG,IAAHA,GAAW,QAAR,EAAHA,EAAKgT,cAAM,WAAR,EAAH,EAAa3D,WAAW,WACtB,OAAHrP,QAAG,IAAHA,GAAW,QAAR,EAAHA,EAAKgT,cAAM,WAAR,EAAH,EAAa3D,WAAW,QACrB,OAAHrP,QAAG,IAAHA,OAAG,EAAHA,EAAK+V,eACL,kBAACuC,GAAO,CACP/wB,KAAQ,OAAHyY,QAAG,IAAHA,OAAG,EAAHA,EAAK+V,aAAc/V,EAAI+V,YAAiB,OAAH/V,QAAG,IAAHA,OAAG,EAAHA,EAAKgT,OAC/CvrB,KAAQ,OAAHuY,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,KAAM,aAKpBsgB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE7B,CACCjwB,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,IAAI,CACJ1X,IAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKmT,WACVr4B,MAAmB,SAAT,OAAHklB,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAehC,EAAM4P,eAAY/I,GAEzC,OAAHsd,QAAG,IAAHA,OAAG,EAAHA,EAAKmT,aAGRjS,MAAM,EACN/C,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,cACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,QAAI,CACJ7Y,OAAO,OACPoG,eAAe,SACf5G,WAAW,SACX4Q,SAAS,OACTjP,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,gBAEf,kBAAC,IAAI,KAAK,OAAHmiB,QAAG,IAAHA,OAAG,EAAHA,EAAKxT,eAGd2R,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAE5B,CACCjwB,GAAI,WACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,QAAI,CACJ7Y,OAAO,OACPoG,eAAe,SACf5G,WAAW,SACX4Q,SAAS,OACTjP,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,aAEf,kBAAC,IAAI,KAAK,OAAHmiB,QAAG,IAAHA,OAAG,EAAHA,EAAKuS,YAGdpU,OAAQ,YACRljB,KAAM,CAAEyyB,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACCjwB,GAAI,WACJT,KAAM,SAAC4iB,GACN,OAAqB,IAAdyY,EACN,kBAAC,IAAI,CAACn+B,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKiT,UAEnB,kBAAC,QAAI,CACJ9rB,OAAO,OACPoG,eAAe,SACf5G,WAAW,SACX2B,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,aAEf,kBAACw6B,GAAc,CAACx6B,GAAG,UAAU4rB,EAAE,KAC9B,kBAAC3hB,EAAA,EAAM,CACNE,SAAS,UACTiM,SAAO,EACPhZ,KAAK,OACLH,MAAOe,EAAM4P,UACbvD,QAAS,SAAC6K,GAET,OADAA,EAAE2G,kBACQ,OAAHsG,QAAG,IAAHA,OAAG,EAAHA,EAAKiT,UAAW,EACpB6G,GAAiB,CAAE7G,UAAa,OAAHjT,QAAG,IAAHA,OAAG,EAAHA,EAAKiT,UAAW,GAAKjT,GAClD7Q,EACA,oDAKN,kBAAC,KAAM,CACN8H,oBAAkB,EAClB3B,cAAe,CACd2d,SAAa,OAAHjT,QAAG,IAAHA,OAAG,EAAHA,EAAKiT,SACfjT,IAAKA,GAEN7I,iBAAiB,EACjBC,kBAAkB,IAEjB,YAAiB,IAAdkL,EAAM,EAANA,OACH,OACC,kBAAC,KAAI,CACJtb,MAAO,CACN7M,MAAO,MACP+Z,QAAS,UACTiP,UAAW,QACXjc,SAAU,SAGX,kBAAC,GAAe,CACfnB,KAAK,OACLwN,OAAQ,SAACR,GACJwjB,MAAMxjB,EAAEC,OAAOzX,SAEfi7B,OAAOzjB,EAAEC,OAAOzX,QAAU,EAC7B4T,EACC,uCAIF2qB,GACC,CAAE7G,SAAUuD,OAAOzjB,EAAEC,OAAOzX,QAC5B+mB,EAAOtC,OAGT7a,KAAK,WACL5J,MAAO+mB,EAAO2Q,eAUnB,kBAACoF,GAAc,CAACx6B,GAAG,UAAU4rB,EAAE,KAC9B,kBAAC3hB,EAAA,EAAM,CACNE,SAAS,SACTiM,SAAO,EACPhZ,KAAK,OACLH,MAAOe,EAAM4P,UACbvD,QAAS,SAAC6K,GACTA,EAAE2G,iBACFogB,GAAiB,CAAE7G,UAAa,OAAHjT,QAAG,IAAHA,OAAG,EAAHA,EAAKiT,UAAW,GAAKjT,SAOxD7B,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,QACJT,KAAM,SAAC4iB,GAAG,OACT,kBAACmW,GAAA,EAAY,CACZztB,SAAUA,EACVmpB,QAASA,EACTuE,QAAM,EACNpW,IAAKA,KAIP7B,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,IAAKF,IAAK,EAAGM,IAAK,GAC9B5M,MAAM,GAEP,CACCrjB,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OACT,kBAACmW,GAAA,EAAY,CAACztB,SAAUA,EAAUmpB,QAASA,EAAS7R,IAAKA,KAE1D7B,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,IAAKF,GAAI,EAAGM,GAAI,GAC5B5M,MAAM,GAEP,CACCrjB,GAAI,UACJsgB,OAAQ,GACR+C,MAAM,EACN9jB,KAAM,SAAC4iB,GACN,OACC,kBAACqY,GAAc,CACdx6B,GAAG,UACH4rB,EAAE,SACFtiB,OAAO,OACPmB,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,YAEbg0B,EACD,oCACC,kBAAC/pB,EAAA,EAAM,CACN7M,KAAK,QACLyuB,GAAG,OACH5uB,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,WACTygB,MAAM,qBACNvgB,QAAS,kBAAMgxB,GAAclZ,MAE9B,kBAAClY,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAMwB,QACb4W,SAAO,EACPjM,SAAS,SACTygB,MAAM,YACNvgB,QAAS,kBAAMoxB,GAAWtZ,OAjBjB,KAsBZ,kBAAClY,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPwU,MAAM,cACNzgB,SAAS,aACTE,QAAS,kBAAM2xB,GAAa7Z,QAKhC/kB,KACe,IAAdw9B,IAA6B,OAAV92B,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAAY,EACxC,CAAE2mB,IAAK,EAAGF,IAAK,EAAGM,IAAK,GACvB,CAAEH,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAGjC,CACCplB,EACAmpB,EACAyH,GACAO,GACAX,GACAY,GACArB,EACAtpB,EACAtT,EAAMU,OACNV,EAAM4P,UACN5P,EAAMwB,QACNsE,IAII44B,GAAiB/3B,sBAAW,wCACjC,WAAOg4B,GAAI,oFAIU,GAHpB7B,GAAa,GAAM,EACc6B,EAAKptB,MAAM,QAAO,kBAAxC,KAAKqtB,EAAa,WACvBjB,EAAW,GACbnvB,EAAa,GAEZyuB,EAAS,CAAD,eAEY,MADb,qCACX3pB,EADW,sCACa,kDAIhB1O,GAAC,kHASN,GARGgqB,EAAOgQ,EAAch6B,GAAG,EACDgqB,EAAKrd,MAAM,MAAQ,GAAE,mBAA3CstB,EAAQ,KAAEC,EAAQ,KAEnBC,EAAsB,OAAR9B,QAAQ,IAARA,GAAc,QAAN,EAARA,EAAU17B,YAAI,WAAN,EAAR,EAAgByH,KAE9B0sB,EAAUpuB,IAAEkD,KAAKu0B,GAAa,SAAUxH,GAC7C,GAAIA,EAAc5iB,KAAKY,gBAAkBspB,EAAStpB,cACjD,OAAO,KAGI,CAAD,mBACM,KAAbspB,EAAe,qBACdC,EAAS,CAAD,gBAKY,OAJjBh3B,EAAK,2CACVk3B,SAASp6B,GAAK,EAAC,mBAEhB0O,EAAiBxL,GACjB0G,EAAWuJ,KAAKjQ,GAAO,+GAKd4yB,MAAMoE,GAAU,CAAD,gBAKD,OAJlBh3B,EAAK,oCAAgC+2B,EAAQ,mBAClDG,SAASp6B,GAAK,EAAC,+BAEhB4J,EAAWuJ,KAAKjQ,GAChBwL,EAAiBxL,GAAO,2CAEdk3B,SAASF,IAAa,IAAMA,EAAQ,iBAKtB,OAJlBh3B,EAAK,oCAAgC+2B,EAAQ,mBAClDG,SAASp6B,GAAK,EAAC,sBAEhB4J,EAAWuJ,KAAKjQ,GAChBwL,EAAiBxL,GAAO,sCAOD,OAJjBA,EAAK,2CACVk3B,SAASp6B,GAAK,EAAC,mBAEhB0O,EAAiBxL,GACjB0G,EAAWuJ,KAAKjQ,GAAO,kEAGd4yB,MAAMoE,GAAU,CAAD,gBAKD,OAJlBh3B,EAAK,oCAAgC+2B,EAAQ,mBAClDG,SAASp6B,GAAK,EAAC,+BAEhB4J,EAAWuJ,KAAKjQ,GAChBwL,EAAiBxL,GAAO,2CAEdk3B,SAASF,IAAa,IAAMA,EAAQ,iBAKtB,OAJlBh3B,EAAK,oCAAgC+2B,EAAQ,mBAClDG,SAASp6B,GAAK,EAAC,sBAEhB4J,EAAWuJ,KAAKjQ,GAChBwL,EAAiBxL,GAAO,0CAEoB,KAA3B,OAAP4tB,QAAO,IAAPA,OAAO,EAAPA,EAAS2E,sBAA8B,iBAKzB,OAJlBvyB,EAAK,oCAAgC+2B,EAAQ,mBAClDG,SAASp6B,GAAK,EAAC,iCAEhB4J,EAAWuJ,KAAKjQ,GAChBwL,EAAiBxL,GAAO,sCAsBtB,GAlBGqwB,EAAU,CACff,SAAU0H,EACV7xB,UACAM,IAAKmlB,0BACLpe,UAAkB,OAAPohB,QAAO,IAAPA,OAAO,EAAPA,EAASjhB,GACpBiiB,SAAiB,OAAPhB,QAAO,IAAPA,OAAO,EAAPA,EAASwB,SACnBC,OAAe,OAAPzB,QAAO,IAAPA,OAAO,EAAPA,EAAS9Z,IACjBY,MAAc,OAAPkZ,QAAO,IAAPA,OAAO,EAAPA,EAASsE,aAChB94B,SAAUA,EACVo2B,WAAmB,OAAP5B,QAAO,IAAPA,OAAO,EAAPA,EAAS6B,cACrB5mB,YAAoB,OAAP+kB,QAAO,IAAPA,OAAO,EAAPA,EAAS2B,aACrB,EAAD,UAGMJ,EAAO3vB,IAAEkD,KACT,OAALkD,QAAK,IAALA,OAAK,EAALA,EAAO5O,OACP,YAAa,SAAVw4B,WACS/hB,gBAAkBspB,EAAStpB,kBAG/B,CAAD,gBACa,OAAZvT,EAAiBi1B,EAAjBj1B,GAAIo1B,EAAaH,EAAbG,SAAQ,UAEd9pB,GAAW,CAChBtL,KACAH,MAAO,CAAEu1B,SAAUA,IAAY0H,KAC7B,KAAD,GACFnB,EAAS5lB,KAAK,2BAAKkf,GAAI,IAAEG,SAAUA,IAAY0H,KAE/ChK,EAAiB,sCAAD,OAAuC+J,IAAY,6BAE/DA,GAAYC,GAAYpJ,GAAO,kCACfvoB,GAAW,CAC7BtL,MAAM,2BAAMs2B,GAAO,IAAEnC,UAAS9oB,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,UACpD,KAAD,GAFI+pB,EAAI,OAGV0G,EAAS5lB,KAAKkf,GACdnC,EAAiB,sCAAD,OACuB+J,IACrC,2DAIJh3B,QAAQC,MAAM,EAAD,IACPm3B,EAAW,oCAAgCJ,EAAQ,mBACxDG,SAASp6B,GAAK,EAAC,mBAEhB4J,EAAWuJ,KAAKknB,GAChB3rB,EAAiB2rB,GAAa,yEAnHlBL,GAAa,+CAAjB,OAADh6B,EAAC,6BAADA,GAAC,2HAuHN4J,EAAWzC,OAAS,GAAC,kCAClBwoB,GAAkC/lB,GAAY,KAAD,GACnD7E,OAAOu1B,SAASC,SAAS,QAG1BhK,EAAS,2BAAKznB,GAAK,IAAE5O,MAAO6+B,KAC5Bb,GAAa,GACbC,EAAOr2B,eAAe,4CACtB,mDA5IgC,GA6IjC,CACCu2B,EACA9H,EACAznB,EACAqvB,EACAzpB,EACArG,EACA/L,EACA4zB,EACAkB,IAIF,OACC,oCACC,kBAAClD,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC3B,kBAAC,EAAoB,KACpB,kBAAC,GAAc,CACdoH,eAAgB0E,GAChB33B,UAAWA,IAAqB,OAARy2B,QAAQ,IAARA,OAAQ,EAARA,EAAUz2B,eAIrC,kBAAC,EAAoB,KACpB,kBAAC,GAAK,CACLomB,MAAOA,EACPF,mBAAoB,CACnB,kBAAC,GAAc,CACdjgB,IAAI,kBACJgtB,eAAgB0E,GAChBryB,QAAM,KAGR2jB,YAAU,EACVpD,UAAQ,EACRqD,gBAAc,EACdC,WAAS,EACTrD,YAAwB,IAAZ0J,EACZ9I,cACa,IAAZ8I,EACC,kBAAC/pB,EAAA,EAAM,CAACd,MAAO,CAAE8T,QAAS,EAAGC,cAAe,SAAS,UAIrD,kBAAC,GAAU,CAACzS,IAAI,cAAc+O,SAAUkjB,KAG1Cn9B,MAAW,OAALmM,QAAK,IAALA,OAAK,EAALA,EAAO5O,QAAS,GACtB4lB,QAASA,GACTwJ,WAAiB,OAALxgB,QAAK,IAALA,OAAK,EAALA,EAAOsvB,UACnBx2B,UAAWq2B,GAAaE,EAAOv2B,e,cCh2BpC,26MACO,I,GAcM44B,GAAa,wCAAG,8FAAsB,OAAbj+B,EAAM,EAANA,OAAQU,EAAK,EAALA,MAAK,kBAEhBT,IAAMC,KACnC,0CACA,CAAEF,SAAQU,UACV,KAAD,EAHmB,GAGnB,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZyB,sCAcbu3B,GAAa,wCAAG,gGAA0B,OAAjBl+B,EAAM,EAANA,OAAQa,EAAE,EAAFA,GAAIH,EAAK,EAALA,MAAK,kBAEpBT,IAAMC,KACnC,0CACA,CAAEF,SAAQa,KAAIH,UACd,KAAD,EAHmB,GAGnB,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZyB,sCAcbw3B,GAAa,wCAAG,gGAA0B,OAAjBn+B,EAAM,EAANA,OAAQa,EAAE,EAAFA,GAAIH,EAAK,EAALA,MAAK,kBAEpBT,IAAMC,KACnC,0CACA,CAAEF,SAAQa,KAAIH,UACd,KAAD,EAHmB,GAGnB,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZyB,sC,wBC3C1B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAYA,IAAM26B,GAAiBnhC,kBAAOqC,QAAPrC,CAAY,kEA0WpBohC,GApWK,SAAH,GAUV,IATNh5B,EAAS,EAATA,UACAi5B,EAAW,EAAXA,YACAjkB,EAAQ,EAARA,SACAkkB,EAAS,EAATA,UAKAC,GAJU,EAAVC,WACa,EAAbC,cACY,EAAZC,aACS,EAATC,UACU,EAAVJ,YAEA,EAAkClpB,eAA1BgQ,EAAM,EAANA,OAAQjQ,EAAa,EAAbA,cACRvJ,EAAYsH,cAAZtH,QAER,EAA4BvH,qBAAWgQ,MAA/BhI,EAAK,EAALA,MAAOynB,EAAQ,EAARA,SACTa,EAAU/vB,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UAAS,CAACtoB,IAEvCsyB,GAAsBtyB,GAAS,IAA/BsyB,kBAEFC,EAAqBt5B,sBAAW,wCACrC,WAAOu5B,GAAgB,sHAiCnB,GAhCCC,EAAkBD,EAEhBE,EAAU94B,IAAEkD,KACjBw1B,GACA,YAAK,SAAFh+B,MAAkBm+B,KAaL,GAZf,EAYEC,GAAW,IATdC,eAAO,MAAG,GAAE,MACZC,gBAAQ,MAAG,GAAE,MACbC,YAAI,MAAG,GAAE,MACTC,aAAK,MAAG,GAAE,MACVC,WAAG,MAAG,GAAE,MACRC,cAAM,MAAG,GAAE,MACXC,eAAO,MAAG,GAAE,EACZ3+B,EAAE,EAAFA,GAAG,EAAD,EACF2S,YAAI,MAAG,GAAE,EAEVwgB,EAAS,2BACLznB,GAAK,IACRkzB,mBAAoBT,EACpBU,gBAAiB,CAChBR,UACAK,SACAC,UACAL,WACAC,OACAC,QACAC,MACAz+B,KACA2S,WAGGwrB,GAAuC,QAApBA,EAAyB,iCACXf,GAAc,CAClDv9B,MAAO,CACNw+B,QAAS,GACTC,SAAU,GACVC,KAAM,GACNC,MAAO,GACPG,QAAS,GACTD,OAAQ,GACRD,IAAK,GACLK,YAAa,EACbnsB,KAAM,GACNosB,SAAU9zB,KAET,KAAD,EAQC,OARD,SAbUyqB,EAAK,EAAT11B,GAAcmP,EAAI,oBAcpB6vB,EAAY,YAAY,OAALtzB,QAAK,IAALA,OAAK,EAALA,EAAOsyB,oBACnBjoB,KAAK,aAAE/V,GAAI01B,GAAUvmB,IAClCgkB,EAAS,2BACLznB,GAAK,IACRkzB,kBAAmBlJ,EACnBmJ,gBAAgB,aAAG7+B,GAAI01B,GAAUvmB,GACjC6uB,kBAAmBgB,KACjB,UACGrzB,GAAY,CACjB3L,IAAKiL,EACLpL,MAAO,CAAE++B,kBAAmBlJ,KAC1B,KAAD,sDAIG/pB,GAAY,CACjB3L,IAAKiL,EACLpL,MAAO,CAAE++B,mBAAoBT,KAC3B,KAAD,uCACF,mDArEoC,GAsErC,CAACH,EAAmB7K,EAAUznB,EAAOT,IAGhCg0B,EAAqBh7B,mBAC1B,kBACCqB,IAAE45B,QACI,OAALxzB,QAAK,IAALA,OAAK,EAALA,EAAOyzB,aAAc,IACrB,kBAAU,SAAPC,WAAgC,OAAN3a,QAAM,IAANA,GAAgB,QAAV,EAANA,EAAQ4a,gBAAQ,WAAV,EAAN,EAAkBV,cAEjD,CAACjzB,EAAO+Y,EAAO4a,WAEVC,EAAoBr7B,mBACzB,kBACCqB,IAAE45B,QACI,OAALxzB,QAAK,IAALA,OAAK,EAALA,EAAOyzB,aAAc,IACrB,kBAAU,SAAPC,WAAgC,OAAN3a,QAAM,IAANA,GAAe,QAAT,EAANA,EAAQ8a,eAAO,WAAT,EAAN,EAAiBZ,cAEhD,CAACjzB,EAAO+Y,EAAO8a,UAGVC,EAAuBv7B,mBAC5B,kBACCg7B,EAAmBz0B,KAAI,gBAAGkW,EAAK,EAALA,MAAO/R,EAAW,EAAXA,YAAaywB,EAAO,EAAPA,QAAO,OACpD,4BAAQ1hC,MAAOgjB,EAAOjW,IAAG,UAAK20B,EAAO,YAAI1e,IACvC/R,QAGJ,CAACswB,IAEIQ,EAAsBx7B,mBAC3B,kBACCq7B,EAAkB90B,KAAI,gBAAGkW,EAAK,EAALA,MAAO/R,EAAW,EAAXA,YAAaywB,EAAO,EAAPA,QAAO,OACnD,4BAAQ1hC,MAAOgjB,EAAOjW,IAAG,UAAK20B,EAAO,YAAI1e,IACvC/R,QAGJ,CAAC2wB,IAEII,EAAiBz7B,mBACtB,wBACM,OAALyH,QAAK,IAALA,GAAmB,QAAd,EAALA,EAAOi0B,oBAAY,WAAd,EAAL,EAAqBn1B,KAAI,gBAAG40B,EAAO,EAAPA,QAASQ,EAAgB,EAAhBA,iBAAgB,OACpD,4BAAQliC,MAAO0hC,EAAS30B,IAAKm1B,GAC3BR,QAGJ,CAAC1zB,IAQIm0B,GALqB57B,mBAAQ,WAClC,OAAK+5B,EACEA,EAAkBxzB,KAAI,YAAK,SAAFxK,MADD,KAE7B,CAACg+B,IAEoB/5B,mBAAQ,WAC/B,OAAKqB,IAAEuvB,QAAQmJ,GAEiB14B,IAAEw6B,QAAQ9B,EAAmB,CAAC,SAC/BxzB,KAAI,SAACu1B,GACnC,IAAQ1B,EAA8C0B,EAA9C1B,QAASC,EAAqCyB,EAArCzB,SAAUC,EAA2BwB,EAA3BxB,KAAMC,EAAqBuB,EAArBvB,MAAOC,EAAcsB,EAAdtB,IAAK9rB,EAASotB,EAATptB,KAE7C,MAAO,CACNjV,MAAOqiC,EAAY//B,GACnBmW,MAAM,IAAD,OAAMxD,GAAQ,GAAE,YAAI0rB,GAAW,IAAE,OACrCC,EAAW,IAAMA,EAAW,GAAE,aAC1BC,GAAQ,GAAE,YAAIC,GAAS,GAAE,aAAKC,GAAO,QAVF,KAaxC,CAACT,KAEEtoB,EAAS/Q,sBAAW,wCACzB,WAAOuQ,GAAC,kFACDsE,EAAS,eAAGtE,EAAEC,OAAO7N,KAAO4N,EAAEC,OAAOzX,QAAS,KAAD,EACnDigC,EAAW,MAAM,2CACjB,mDAJwB,GAKzB,CAACnkB,EAAUmkB,IAGNvoB,EAAanR,mBAClB,iBAAO,CACNO,YACAkR,SACA7H,UAAU,KAKX,CAACrJ,EAAWkR,IAGPlH,EAAMrK,iBAAO,MAEb67B,EAAgBr7B,sBAAW,wCAChC,WAAOjH,GAAK,kEACP8Q,EAAIxJ,SAAS6P,aAAarG,EAAIxJ,SAElCwJ,EAAIxJ,QAAUgQ,WAAU,uBAAC,+FAClBipB,EAAmBvgC,GAAO,KAAD,EAE/BggC,IAAY,2CACV,KAAK,2CACR,mDAT+B,GAUhC,CAACO,EAAoBP,IAGtB,OACC,kBAAC,OAAG,CAAC7gB,KAAM4H,EAAOwb,cAAgB,EAAI,CAAC,EAAG,EAAG,IAC5C,kBAAC,QAAI,CAACtU,cAAe,CAAC,SAAU,SAAU,QACzC,kBAAC,QAAI,CACJE,GAAI,CAAC,IAAK,IAAK,UACfuN,GAAK3U,EAAOwb,cAAuC,GAAvB,CAAC,IAAK,IAAK,UACvCtU,cAAc,SACd7iB,WAAW,YAEX,kBAAC,IAAO,CAACkO,GAAG,KAAG,mBACf,kBAAC,OAAG,CAACA,GAAG,UAAUpH,GAAG,QACpB,kBAAC6G,GAAA,EAAQ,CACR5I,SAAUmmB,EACVxvB,UAAWA,EACXkK,UAAU,uCACVpH,KAAK,gBACL+C,QAASqL,KAGX,kBAACM,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVn2B,KAAK,eACLoH,UAAU,UAEX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVn2B,KAAK,kBACLoH,UAAU,oBAEX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVn2B,KAAK,mBACLoH,UAAU,oBAEX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVn2B,KAAK,eACLoH,UAAU,UAEX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVn2B,KAAK,iBACLoH,UAAU,YAGX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVn2B,KAAK,cACLoH,UAAU,gBAEX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVxnB,GAAG,SACHhB,SAAUS,EACVpO,KAAK,kBACLoH,UAAU,YAEV,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,oBAG7Bi1B,GAEDD,EAAoB11B,OAAS,EAC7B,kBAACiM,GAAA,EAAK,iBACDZ,EAAU,CACdvH,SAAU4vB,EACVxnB,GAAG,SACHhB,SAAUS,EACVpO,KAAK,gBACLoH,UAAU,mBAEV,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,2BAG7Bg1B,GAEC,MAEHhb,EAAOwb,cAwEL,KAvEH,kBAAC1C,GAAc,CAAC1R,GAAI,CAAC,IAAK,IAAK,UAAWF,cAAc,UACvD,kBAAC,IAAO,CAAC3U,GAAG,KAAG,oBAEf,kBAAChB,GAAA,EAAK,CACLxR,UAAWA,EACXyR,GAAG,SACH3O,KAAK,oBACL2N,SAAU,SAACC,GACV,IAAMxX,EAAQwX,EAAEC,OAAOzX,MACvB8W,EAAc,oBAAqB9W,GAEnCsiC,EAActiC,IAEfA,MAAO+mB,EAAOma,mBAGb,oCACC,4BAAQlhC,MAAM,UAAQ,6BACrBmiC,EAAgBr1B,KAAI,SAAC01B,GACrB,MAAyBA,GAAW,GAA5B/pB,EAAK,EAALA,MAAOzY,EAAK,EAALA,MACf,OACC,4BAAQA,MAAOA,EAAO+M,IAAK/M,GACzByY,QAOP,kBAACH,GAAA,EAAK,iBAAKZ,EAAU,CAAE9N,KAAK,gBAAgBoH,UAAU,UACtD,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACd9N,KAAK,mBACLoH,UAAU,oBAEX,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACd9N,KAAK,oBACLoH,UAAU,oBAEX,kBAACsH,GAAA,EAAK,iBAAKZ,EAAU,CAAE9N,KAAK,gBAAgBoH,UAAU,UACtD,kBAACsH,GAAA,EAAK,iBAAKZ,EAAU,CAAE9N,KAAK,kBAAkBoH,UAAU,YAExD,kBAACsH,GAAA,EAAK,iBAAKZ,EAAU,CAAE9N,KAAK,eAAeoH,UAAU,gBACrD,kBAACsH,GAAA,EAAK,iBACDZ,EAAU,CACda,GAAG,SACHhB,SAAUS,EACVpO,KAAK,mBACLoH,UAAU,YAEV,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,oBAG7Bi1B,GAEDF,EAAqBz1B,OAAS,EAC9B,kBAACiM,GAAA,EAAK,eACLC,GAAG,UACCb,EAAU,CACdH,SAAUS,EACVpO,KAAK,iBACLoH,UAAU,mBAEV,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,2BAG7B+0B,GAEC,S,cC9WV,mmGAAA58B,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAUA,I,GAAQw6B,GAAkB+C,GA6KXC,GA3Ke,SAAH,GAQpB,IAPNxC,EAAU,EAAVA,WACAC,EAAa,EAAbA,cACAC,EAAY,EAAZA,aACAnyB,EAAW,EAAXA,YACAgvB,EAAY,EAAZA,aACA0F,EAAe,EAAfA,gBAGMriC,GAFO,EAAbwW,cAEcnO,sBACNoe,EAAWhQ,eAAXgQ,OACR,EAA4B/gB,qBAAWgQ,MAA/BhI,EAAK,EAALA,MAAOynB,EAAQ,EAARA,SACP7hB,EAAqB5N,qBAAWsqB,MAAhC1c,iBAEF2tB,EAAqBh7B,mBAC1B,kBACCqB,IAAE45B,QACI,OAALxzB,QAAK,IAALA,OAAK,EAALA,EAAOyzB,aAAc,IACrB,kBAAU,SAAPC,WAAgC,OAAN3a,QAAM,IAANA,GAAe,QAAT,EAANA,EAAQ2Z,eAAO,WAAT,EAAN,EAAiBO,cAEhD,CAACjzB,EAAMyzB,WAAY1a,IAGd6b,EAAer8B,mBACpB,kBACCg7B,EAAmBz0B,KAAI,gBAAGkW,EAAK,EAALA,MAAO/R,EAAW,EAAXA,YAAaywB,EAAO,EAAPA,QAAO,OACpD,4BAAQ1hC,MAAOgjB,EAAOjW,IAAG,UAAK20B,EAAO,YAAI1e,IACvC/R,QAGJ,CAACswB,IAGIS,EAAiBz7B,mBACtB,wBACM,OAALyH,QAAK,IAALA,GAAmB,QAAd,EAALA,EAAOi0B,oBAAY,WAAd,EAAL,EAAqBn1B,KAAI,gBAAG40B,EAAO,EAAPA,QAASQ,EAAgB,EAAhBA,iBAAgB,OACpD,4BAAQliC,MAAO0hC,EAAS30B,IAAKm1B,GAC3BR,QAGJ,CAAC1zB,IAGI60B,EAAkB57B,sBAAW,wCAClC,WAAO8f,GAAM,mFACD,OAANA,QAAM,IAANA,OAAM,EAANA,EAAQ9R,KAAK,CAAD,eACsB,OAAtCrB,EAAiB,qBAAqB,6BAG5B,OAANmT,QAAM,IAANA,OAAM,EAANA,EAAQ4Z,QAAQ,CAAD,eACsB,OAAzC/sB,EAAiB,wBAAwB,6BAG/B,OAANmT,QAAM,IAANA,OAAM,EAANA,EAAQ8Z,KAAK,CAAD,eACsB,OAAtCjtB,EAAiB,qBAAqB,6BAG5B,OAANmT,QAAM,IAANA,OAAM,EAANA,EAAQka,QAAQ,CAAD,gBACsB,OAAzCrtB,EAAiB,wBAAwB,8BAI/B,OAANmT,QAAM,IAANA,OAAM,EAANA,EAAQga,IAAI,CAAD,gBACsB,OAArCntB,EAAiB,oBAAoB,2BAUjB,OALfkvB,EAAkBF,EAAa93B,MAAK,SAACkY,GAAK,aAAU,OAALA,QAAK,IAALA,GAAY,QAAP,EAALA,EAAOlkB,aAAK,WAAP,EAAL,EAAckB,UAAgB,OAAN+mB,QAAM,IAANA,OAAM,EAANA,EAAQ+Z,UAErF34B,QAAQyX,IAAI,CAACkjB,oBAEe,IAAxBF,EAAav2B,QAAiBy2B,IACjC/b,EAAO+Z,MAAQ,MAAK,UAEIpB,GAAc,CACtCv9B,MAAM,2BACF4kB,GAAM,IACTqa,YAAa,EACb2B,WAAiB,OAAL/0B,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBp0B,OAE5B,KAAD,GAUe,OAhBX0gC,EAAU,OAOZC,EAAM,eAAQj1B,IAEZk1B,EAAI,YAAY,OAALl1B,QAAK,IAALA,OAAK,EAALA,EAAOsyB,oBACnBjoB,KAAK2qB,GACVC,EAAO3C,kBAAiB,YAAO4C,GAC/BD,EAAO9B,gBAAkB6B,EACzBC,EAAO/B,kBAAoB8B,EAAW1gC,GACtC69B,EAAc,IACdC,EAAa,MACb3K,EAASwN,GAAQ,UAEXh1B,EAAY,CACjB3L,GAAI2gC,EAAO3gC,GACXH,MAAO,CAAE++B,kBAAmB8B,EAAW1gC,MACrC,KAAD,GAGgB,OADlB26B,IACA0F,IAAkB,+DAElB,mDA1DiC,GA2DlC,CAACC,EAAc50B,EAAOmyB,EAAeC,EAAc3K,EAAUxnB,EAAagvB,EAAc0F,EAAiB/uB,IAGpGuvB,EAAal8B,uBAClB,SAACuQ,GACgB,WAAXA,EAAE4rB,MAAmC,KAAd5rB,EAAE6rB,UAAqBnD,IAClDC,EAAc,IACdC,EAAa,OAEA,UAAV5oB,EAAEzK,KAAqBmzB,IAC1B2C,EAAgB9b,EAAO2Z,SACvBP,EAAc,IACdC,EAAa,SAGf,CAACF,EAAY2C,EAAiBzC,EAAcD,EAAepZ,EAAO2Z,UAYnE,OATA/5B,qBAAU,WACT,GAAIu5B,EAEH,OADA5wB,SAASgP,iBAAiB,WAAW,SAAC9G,GAAC,OAAK2rB,EAAW3rB,MAChD,WACNvN,OAAOsU,oBAAoB,WAAW,SAAC/G,GAAC,OAAK2rB,EAAW3rB,SAGxD,CAAC2rB,EAAYjD,IAGf,kBAAC,QAAI,CAACjS,cAAc,SAASC,EAAE,SAASxiB,SAAS,QAAQ7M,EAAG,GAC3D,kBAAC,KAAK,CAAC+K,KAAK,eAAeoH,UAAU,OAAOI,UAAQ,IACpD,kBAAC,KAAK,CAACxH,KAAK,kBAAkBoH,UAAU,iBAAiBI,UAAQ,IACjE,kBAAC,KAAK,CAACxH,KAAK,mBAAmBoH,UAAU,mBACzC,kBAAC,KAAK,CAACpH,KAAK,eAAeoH,UAAU,OAAOI,UAAQ,IACpD,kBAAC,KAAK,CAACmH,GAAG,SAAS3O,KAAK,kBAAkBoH,UAAU,UAAUI,UAAQ,GACrE,4BAAQpR,MAAM,GAAG+M,IAAI,WAAS,oBAG7Bi1B,GAEF,kBAAC,KAAK,CAACzpB,GAAG,SAAS3O,KAAK,gBAAgBoH,UAAU,kBACjD,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,kBAG7B61B,GAEF,kBAAC,KAAK,CAACh5B,KAAK,cAAcoH,UAAU,aAAaI,UAAQ,IACzD,kBAAC,KAAK,CAACxH,KAAK,iBAAiBoH,UAAU,WACvC,kBAAC,QAAI,CAACpS,MAAO,EAAGoT,eAAe,YAC9B,kBAACzF,EAAA,EAAM,CACNmM,SAAO,EACPwU,MAAM,SACN3tB,MAAOe,EAAM+P,KACb5D,SAAS,UACTE,QAAS,WACRwzB,EAAc,IACdC,EAAa,SAGf,kBAAC7zB,EAAA,EAAM,CACN2gB,MAAM,OACN3tB,MAAOe,EAAMwB,QACb2K,SAAS,eACTE,QAAS,kBAAMk2B,EAAgB9b,EAAO2Z,e,cChL3C,26MA2BA,I,MAAQnM,GAAiC+O,GAAnB5O,GAAmB4O,GACjCr1B,GAAgBs1B,GAEXC,GAAe9kC,kBAAOqC,QAAPrC,CAAY,qJAWlCyb,GAAmBF,YAAaC,MAAM,CAC3C6oB,WAAY9oB,YAAawpB,WACzBvC,kBAAmBjnB,YAAawpB,WAChClB,cAAetoB,aAAcwpB,WAC7B3L,QAAS7d,YAAaC,MAAM,CAC3Bge,UAAWje,YAAawpB,WACxBrL,SAAUne,YAAawpB,WACvBjR,MAAOvY,YAAauY,QAAQiR,WAC5BC,MAAOzpB,YAAawpB,aAErB/M,SAAUzc,YAAaC,MAAM,CAC5BypB,YAAa1pB,YAAawpB,aAG3B5B,QAAS5nB,YAAaC,MAAM,CAC3BymB,QAAS1mB,YAAawpB,WACtB7C,SAAU3mB,YAAawpB,WACvB5C,KAAM5mB,UAAW,uBAAuB7I,SAAS,qBACjD4vB,OAAQ/mB,YAAawpB,WACrB3C,MAAO7mB,UACE,iCACP7I,SAAS,+BACX6vB,QAAShnB,UACA,0BACP7I,SAAS,wBACX2vB,IAAK9mB,UACI,kCACP7I,SAAS,kCAGZwyB,SAAU3pB,YAAa7I,WACvBuwB,SAAU1nB,YAAaC,MAAM,CAC5BymB,QAAS1mB,YAAawpB,WACtB7C,SAAU3mB,YAAawpB,WACvB5C,KAAM5mB,UAAW,uBAAuB7I,SAAS,qBACjD4vB,OAAQ/mB,YAAawpB,WACrB3C,MAAO7mB,UACE,iCACP7I,SAAS,+BACX6vB,QAAShnB,UACA,0BACP7I,SAAS,wBACX2vB,IAAK9mB,UACI,kCACP7I,SAAS,oCA4ZEyyB,GAxZE,SAAH,GAAsD,IAAhD/8B,EAAS,EAATA,UAAWm2B,EAAY,EAAZA,aAAc0F,EAAe,EAAfA,gBACpCp1B,EAAYsH,cAAZtH,QACR,EAA4BvH,qBAAWgQ,MAA/BhI,EAAK,EAALA,MAAOynB,EAAQ,EAARA,SAEf,EADuBzvB,qBAAWC,KAA1BG,YACgC,GAAhC8C,EAAG,EAAHA,IAAK46B,EAAQ,EAARA,SACb,EAAoCl/B,mBAAS,IAAG,mBAAzCs7B,EAAU,KAAEC,EAAa,KAChC,EAAkCv7B,mBAAS,MAAK,mBAAzCy7B,EAAS,KAAED,EAAY,KAE9B,EAAoCx7B,mBAAS,MAAK,mBAA3CgC,EAAa,KAAEq5B,EAAU,KAC1B3/B,EAAQqI,qBACRuO,EAAWzQ,iBAAO,MAExBE,qBAAU,WACT,OAAQC,GACP,KAAK,EAEJ,MACD,KAAK,EACJ,IAAKsQ,EAAS5P,QAAS,CACtB,IAAM+P,EAAUC,YAAW,WAC1BH,aAAaD,GACb+oB,EAAW,KACT,KACH/oB,EAAS5P,QAAU+P,EAEpB,MACD,KAAK,EACJ4lB,IACA9lB,aAAaD,EAAS5P,SACtB24B,EAAW,MACX,MACD,QACC/oB,EAAS5P,QAAU,QAGnB,CAAC21B,EAAcr2B,IAElB,MAA8CzB,EAAS,CACtDE,QAASkvB,GACThvB,MAAO2D,EACP5D,eAAgB,CAAE4D,MAAK66B,QAAQ,EAAMD,WAAUt6B,QAASwE,EAAMxE,WAHvD3H,EAAI,EAAJA,KAAiBmiC,EAAgB,EAA3Bl9B,UAK6B,GAAVjF,GAAQ,IAAjCyH,KAAM26B,OAAS,MAAG,GAAE,EAEtBC,EAAkB39B,mBAAQ,WAC/B,OAAQ09B,EACH,YAECA,EAAUn3B,KAAI,SAAC2X,GACjB,IAAQ0f,GAAmBn2B,GAAS,IAA5Bm2B,eAER,GADqB1f,GAAO,IAApBiS,UACuC,GAAvCp0B,EAAE,EAAFA,GAAIkL,EAAK,EAALA,MAAOm2B,EAAW,EAAXA,YAEnB,EACCQ,GAAkB,GADXxD,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAMC,EAAK,EAALA,MAAOC,EAAG,EAAHA,IAGpCtoB,EAAK,UAAMkrB,GAAen2B,GAAS,UAkBvC,OAhBImzB,GAAWC,KACVD,IAASloB,GAAK,YAASkoB,IACvBC,IACHnoB,GAAK,WAAQmoB,IAEVC,IACHpoB,GAAK,YAASooB,GACVC,IACHroB,GAAK,WAAQqoB,GACTC,IACHtoB,GAAK,YAASsoB,OAMX,CAAEtoB,QAAOzY,MAAOsC,OA5BxB,KA+BD,CAAC2hC,EAAWj2B,IAETs0B,EAAgBr7B,sBAAW,wCAChC,WAAO3E,EAAI09B,GAAS,qEACR,KAAP19B,EAAS,gCACN2L,GAAY,CACjB3L,IAAKiL,KAAiB,OAALS,QAAK,IAALA,OAAK,EAALA,EAAO1L,IACxBH,MAAO,CAAEq0B,UAAW,QAClB,KAAD,EACFmM,IACAlN,EAAS,2BACLznB,GAAK,IACR0oB,SAAU,KACVyN,eAAgB,KAChBhD,gBAAiB,QACf,sCAEGlzB,GAAY,CACjB3L,IAAKiL,KAAiB,OAALS,QAAK,IAALA,OAAK,EAALA,EAAO1L,IACxBH,MAAO,CAAEq0B,UAAWl0B,KAClB,KAAD,EAEHmzB,EAAS,MACTwH,IACA+C,IAAY,4CACZ,qDAvB+B,GAwBhC,CAAChyB,EAAOT,EAASo1B,EAAiB1F,EAAcxH,IAG3C1b,EAAgBxT,mBAAQ,WAC7B,OACM,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAO8pB,UAAW,GADXI,EAAS,EAATA,UAAWE,EAAQ,EAARA,SAAU5F,EAAK,EAALA,MAAOkR,EAAK,EAALA,MAAOU,EAAQ,EAARA,SAEnCT,IAAqB,OAAL31B,QAAK,IAALA,OAAK,EAALA,EAAO0oB,WAAY,IAAnCiN,YACAC,GAAa51B,GAAS,IAAtB41B,SAIR,OAFAz7B,QAAQyX,IAAI,CAAE5R,UAEP,CACN8pB,QAAS,CACRI,UAAWA,GAAa,GACxBE,SAAUA,GAAY,GACtB5F,MAAOA,GAAS,GAChBkR,MAAOA,GAAS,GAChBU,SAAUA,GAAY,IAEvB1N,SAAU,CACTiN,YAAaA,GAAe,IAE7BpB,iBAAsB,OAALv0B,QAAK,IAALA,OAAK,EAALA,EAAOu0B,eACxBrB,kBAAwB,OAALlzB,QAAK,IAALA,OAAK,EAALA,EAAOkzB,kBAC1B6B,YAAiB,OAAL/0B,QAAK,IAALA,OAAK,EAALA,EAAOwoB,YAAa,GAChCqL,QAAc,OAAL7zB,QAAK,IAALA,OAAK,EAALA,EAAOm2B,eAChBxC,SAAe,OAAL3zB,QAAK,IAALA,OAAK,EAALA,EAAOmzB,gBACjByC,SAAUA,GAAY,MAErB,CAAC51B,IAEE8N,EAAW7U,sBAAW,wCAC3B,WAAOo9B,GAAS,wGACMlgB,OAAOC,QAAQigB,GAAW,IAAM,GAAE,mBAAhDt3B,EAAG,KAAE/M,EAAK,OAC2B,OAAH+M,QAAG,IAAHA,OAAG,EAAHA,EAAK8E,MAAM,KAAzCyyB,EAAU,EAAb,GAAkBC,EAAU,EAAb,GACjBC,GAAe,OAAHz3B,QAAG,IAAHA,GAAe,QAAZ,EAAHA,EAAK8E,MAAM,YAAI,WAAZ,EAAH,EAAiBxF,QAAS,EAAIU,EAAMw3B,EACtDp8B,QAAQyX,IAAI,CAACykB,cAAY,KACjBC,EAAU,OACZ,YADY,KACH,EAcT,YAdS,KAcA,GAiBT,aAjBS,KAiBC,GAyBV,aAzBU,KAyBA,mBAnDV,OAmDU,SAtDb7O,EAAS,2BACLznB,GAAK,IACR8pB,QAAQ,2BAAW,OAAL9pB,QAAK,IAALA,OAAK,EAALA,EAAO8pB,SAAO,kBAAG0M,EAAYxkC,OACzC,UACG00B,GAAe,CACpBpyB,IAAS,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAAkB,OAALxoB,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBp0B,IACzCH,MAAO,CAAE21B,QAAQ,eAAI0M,EAAYxkC,MAC/B,KAAD,qDAEFmI,QAAQC,MAAM,EAAD,IAAQ,4CAWlB,OAXkB,UAKrBqtB,EAAS,2BACLznB,GAAK,IACRm2B,eAAe,2BACN,OAALn2B,QAAK,IAALA,OAAK,EAALA,EAAOm2B,gBAAc,kBACvBK,EAAYxkC,OAEZ,UACG00B,GAAe,CACpBpyB,IAAS,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAAkB,OAALxoB,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBp0B,IACzCH,MAAO,CAAEgiC,eAAe,eAAIK,EAAYxkC,MACtC,KAAD,sDAEFmI,QAAQC,MAAM,EAAD,IAAQ,4CAWlB,GAXkB,UAKrBqtB,EAAS,2BACLznB,GAAK,IACRmzB,gBAAgB,2BACP,OAALnzB,QAAK,IAALA,OAAK,EAALA,EAAOmzB,iBAAe,kBACxBqD,EAAYxkC,QAGN,OAALgO,QAAK,IAALA,GAAsB,QAAjB,EAALA,EAAOmzB,uBAAe,WAAjB,EAAL,EAAwB7+B,OAAY,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOkzB,mBAAiB,kCACpDjzB,GAAY,CACjB3L,IAAKiL,EACLpL,MAAO,CAAE++B,kBAAwB,OAALlzB,QAAK,IAALA,GAAsB,QAAjB,EAALA,EAAOmzB,uBAAe,WAAjB,EAAL,EAAwB7+B,MAClD,KAAD,oBAEGq9B,GAAc,CACnBr9B,GAAS,OAAL0L,QAAK,IAALA,GAAsB,QAAjB,EAALA,EAAOmzB,uBAAe,WAAjB,EAAL,EAAwB7+B,GAC5BH,MAAM,eACJqiC,EAAYxkC,KAEZ,KAAD,sDAEFmI,QAAQC,MAAM,EAAD,IAAQ,4CAWlB,OAXkB,UAKrBqtB,EAAS,2BACLznB,GAAK,IACR0oB,SAAS,2BACA,OAAL1oB,QAAK,IAALA,OAAK,EAALA,EAAO0oB,UAAQ,kBACjB8N,EAAYxkC,OAEZ,UACG00B,GAAe,CACpBpyB,IAAS,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAAkB,OAALxoB,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBp0B,IACzCH,MAAM,eAAIqiC,EAAYxkC,KACpB,KAAD,sDAEFmI,QAAQC,MAAM,EAAD,IAAQ,4CAQnB,GAJCgQ,EAAMpY,EACVy1B,EAAS,2BACLznB,GAAK,kBACPjB,EAAMqL,KAES,kBAAb,UAAGrL,GAAyB,iBAoB9B,MAnBa,SAAV/M,IAAkBoY,EAAM,MACd,IAAVpY,IAAgBoY,EAAM,KACZ,SAAVpY,IAAkBoY,EAAM,KACd,UAAVpY,IAAmBoY,EAAM,KACf,UAAVpY,IAAmBoY,EAAM,MACf,IAAVpY,IAAiBoY,EAAM,KAG1Bqd,EADW,MAARrd,EACM,2BACLpK,GAAK,IACRu0B,cAAenqB,EACf+oB,gBAAsB,OAALnzB,QAAK,IAALA,OAAK,EAALA,EAAOm2B,iBAGhB,2BACLn2B,GAAK,IACRu0B,cAAenqB,EACf+oB,gBAAsB,OAALnzB,QAAK,IAALA,OAAK,EAALA,EAAOmzB,mBAEzB,UAEYlzB,GAAY,CACxB3L,IAAKiL,EACLpL,MAAM,eACJ4K,EAAMqL,KAEN,KAAD,+CAGc,eAAb,UAAGrL,GAAsB,kCACtBkB,GAAY,CACjB3L,IAAKiL,EACLpL,MAAO,CACNq0B,UAAWpe,KAEV,KAAD,4CAEInK,GAAY,CACjB3L,IAAKiL,EACLpL,MAAM,eACJ4K,EAAMqL,KAEN,KAAD,iHAKL,mDAtI0B,GAuI3B,CAACpK,EAAOT,EAASkoB,IAGZ3kB,EAAMrK,iBAAO,MACnB,EAA8C7B,mBAAS,IAAG,mBAAnD6/B,EAAe,KAAEC,EAAkB,KAEpC3Y,EAAcxlB,mBAAQ,WAC3B,GAAMk+B,EAAiB,CACtB,IAAW3V,GACVlnB,IAAE45B,OAAO0C,GAAiB,SAACS,GAAE,aAC1B,OAAFA,QAAE,IAAFA,GAAS,QAAP,EAAFA,EAAIlsB,aAAK,WAAP,EAAF,EAAWqb,WAAW2Q,OAClB,IAHE,GAKR,OAAa,OAAN3V,QAAM,IAANA,OAAM,EAANA,EAAQrW,MAEhB,IAAMksB,GAAU,OAAL32B,QAAK,IAALA,OAAK,EAALA,EAAOwoB,WACf5uB,IAAEkD,KAAKo5B,GAAiB,YAAQ,SAALlkC,UAA6B,OAALgO,QAAK,IAALA,OAAK,EAALA,EAAOwoB,cAC1D5uB,IAAEkD,KAAKo5B,GAAiB,kBAAQ,SAALlkC,UAA6B,OAALgO,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBp0B,OACvE,OAAS,OAAFqiC,QAAE,IAAFA,OAAE,EAAFA,EAAIlsB,QAAS,sBAClB,CAACyrB,EAAiBO,EAAiBz2B,IAEtC,OACC,oCACC,kBAAC,KAAM,CACNmM,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAoB,EACpBG,kBAAkB,EAClBF,gBAAgB,EAChBC,iBAAiB,EACjB7O,IAAU,OAALiB,QAAK,IAALA,OAAK,EAALA,EAAOkzB,oBAEX,YAA2C,IAAD,EAAvCna,EAAM,EAANA,OAAQjQ,EAAa,EAAbA,cAAekpB,EAAS,EAATA,UAC1B,OACC,kBAAC,OAAG,CAAC1mB,GAAG,QACJ4mB,EACF,kBAAC,GAAqB,CAEpBA,aACAC,gBACAC,eACAnyB,eACAgvB,eACA0F,kBACA7rB,kBAIF,oCACC,kBAACmC,GAAA,EAAI,KACJ,kBAAC,KAAI,CAACxN,MAAO,CAAE7M,MAAO,WACd,OAALoP,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UACR,kBAAC,OAAG,CAAC1O,UAAW,SACf,kBAACrb,EAAA,EAAM,CACNE,SAAS,SACTlN,MAAOe,EAAM4P,UACbvD,QAAS,WACRwzB,EAAc,aAGd,gBAIJ,kBAAC,OAAG,CAACvhC,MAAO,EAAGugB,KAAM,GACpB,kBAAC7G,GAAA,EAAK,CACLxH,IAAKA,EACLyI,gBAAc,EACdhC,SAAU,SAACC,GACV,IAAMiB,EAAQjB,EAAEC,OAAOzX,MACfA,GACP4H,IAAEkD,KACDo5B,GACA,YAAQ,OAAQ,EAAbzrB,QAA+BA,MAC9B,IAJEzY,MAKR8W,EAAc,aAAc9W,GAC5B0kC,EAAmB1kC,GAEf8Q,EAAIxJ,SAAS6P,aAAarG,EAAIxJ,SAElCwJ,EAAIxJ,QAAUgQ,WAAU,uBAAC,+FAClBgrB,EAActiC,EAAOggC,GAAW,KAAD,EACrC0E,EAAmB,IAAI,2CACrB,MAEJxsB,QAASgsB,EAAgBp3B,KAAI,gBAAG2L,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OAC3C,4BAAQsC,GAAItC,EAAO+M,IAAK/M,EAAOA,MAAOyY,GACpCzY,MAGH4J,KAAK,aACLoH,UAAU,UACV+a,YAAaA,EACb/rB,MAAOykC,EACP39B,UAAWk9B,EACX7zB,YAAiB,OAALnC,QAAK,IAALA,OAAK,EAALA,EAAOsoB,YAIpBvP,EAAOgc,YACP,kBAACS,GAAY,CACZ5kC,MAAO,EACPqvB,cAAe,CAAC,SAAU,SAAU,QAEpC,kBAAC,GAAW,CACX8R,aACEj5B,IACK,OAALkH,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aACF,OAALxoB,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBp0B,MACO,KAAzBykB,EAAmB,WAEpBuZ,kBAAwB,OAALtyB,QAAK,IAALA,OAAK,EAALA,EAAOsyB,kBAC1BL,WAAYA,EACZn5B,UAAWA,EACX2uB,SAAUA,EACV3Z,SAAUA,EACVkkB,UAAWA,EACX/C,aAAcA,EAEbiD,aACAC,gBACAC,eACAC,wB,wBChef,mmGAAAn7B,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAiBA,I,MAAM0/B,GAAiBlmC,kBAAOqC,QAAPrC,CAAY,qCAC/B,YAAc,IAAXqO,EAAG,EAAHA,IACH,OAAO1N,cAAG,2OACL0N,EAKEA,MAmJI83B,GA1IK,SAAH,GAAqC,IAAD,IAA9Bj7B,YAAI,MAAG,OAAM,EAAEk7B,EAAQ,EAARA,SAC9BxkC,EAAQqI,qBACN4E,EAAYsH,cAAZtH,QAER,EAIIpI,EAAS,CACXC,QAAQ,eAAD,OAAiBmI,GACxBlI,QAASmJ,GACTlJ,eAAgB,CAAEiI,WAClB9H,cAAe,KACf,IARA5D,KAAMkjC,OAAW,MAAG,GAAE,EACtB/9B,EAAY,EAAZA,aACAI,EAAO,EAAPA,QAQI49B,EAAgB/9B,uBAAY,SAACg+B,GACjC,MAAiB,UAAbA,EACK,gCAEQ,cAAbA,EACI,0UAMS,QAAbA,EACK,kBAEF,YACN,IAEGC,EAAUj+B,uBAAY,SAACk+B,EAAUC,GACrC,OAAKA,EACDA,EAAStR,WAAW,SAAiBuR,cACrCD,EAAStR,WAAW,SAAiBuR,cACrCD,EAAStR,WAAW,UAAkBuR,SACzB,QAAbD,EAA2BC,iBAA/B,EAJsBA,yBAKrB,IAEGvpB,EAAW7U,sBAAW,wCAC1B,WAAOg4B,GAAI,4EAY6C,OAXhD98B,EAAQ,CACZmjC,UAAW17B,EACX27B,aAActG,EAAKr1B,KACnBu7B,SAAUH,EAAc/F,EAAKz0B,MAC7B46B,SAAUnG,EAAKz0B,KACfg7B,SAAUvG,EAAKr1B,KACf67B,KAAMxG,EAAKwG,KACX/lC,KAAMu/B,EAAKv/B,KACX6N,WAEIm4B,EAAc,YAAOX,GAC3B39B,EAAQ,GAAD,mBAAKs+B,GAAc,cAAIpjC,GAAI,OAAUH,MAAU,SAC1BkM,GAAiB,CAAElM,UAAS,KAAD,EACA,OADjDwjC,EAAa,OACnBv+B,EAAQ,GAAD,mBAAKs+B,GAAc,CAAEC,EAAcC,cAAa,SACjD5+B,EAAa,eAAD,OAAgBuG,IAAW,KAAD,sCAC7C,mDAjByB,GAkB1B,CAACw3B,EAAaC,EAAep7B,EAAM2D,EAASvG,EAAcI,IAGtDy+B,EAAW5+B,sBAAW,wCAC1B,WAAO3E,GAAE,wEAGiB,OAFlBojC,EAAc,YAAOX,GAC3Bn9B,IAAE+B,OAAO+7B,GAAgB,SAACvyB,GAAC,OAAKA,EAAE7Q,KAAOA,KACzC8E,EAAQs+B,GAAgB,SAClBp3B,GAAiB,CAAEhM,OAAM,KAAD,sCAC/B,mDANyB,GAO1B,CAACyiC,EAAa39B,IAGV0+B,EAAev/B,mBAAQ,WAC3B,IAAMw/B,EAAa,IAAbA,EAA6B,IAA7BA,EAA0C,IAChD,OAAOn+B,IAAEuvB,QAAQ4N,GACbA,EAAYj4B,KAAI,SAACk5B,GACf,MACEA,GAAc,GADR1jC,EAAE,EAAFA,GAAIkjC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAM/lC,EAAI,EAAJA,KAAM0lC,EAAQ,EAARA,SAAUD,EAAQ,EAARA,SAU5C,OACE,kBAACP,GAAc,CACb73B,IAAKzK,EACLitB,EAAE,SACF3wB,MAAO,MACPqvB,cAAc,UAEd,kBAAChV,GAAA,EAAI,KACH,kBAAC,IAAe,CAACrM,KAAMs4B,EAAQC,EAAUC,KACzC,kBAAC,IAAM,CAACrmC,QAAM,EAACua,GAAG,QAAM,SAfxB5Z,EAAOqmC,EAAe,GAAN,OAAUpzB,KAAKszB,MAAMvmC,EAAOqmC,GAAQ,OACpDrmC,EAAOqmC,EAAe,GAAN,OAAUpzB,KAAKszB,MAAMvmC,EAAOqmC,GAAQ,OACpDrmC,EAAOqmC,EAAe,GAAN,OAAUpzB,KAAKszB,MAAMvmC,EAAOqmC,GAAQ,OACnD,UAAUrmC,EAAI,OAef,kBAAC,IAAI,CAACX,QAAM,EAACI,UAAQ,GAClBqmC,IAGL,kBAAC,QAAI,CACHljC,GAAIA,EACJmR,GAAG,OACHzB,eAAe,SACf5G,WAAW,UAEX,kBAACmB,EAAA,EAAM,CACLmvB,GAAG,UACHn8B,MAAOe,EAAM4P,UACb5E,GAAE,UAAKm6B,GACPhuB,OAAO,SACPhL,SAAS,eAEX,kBAACF,EAAA,EAAM,CACL4hB,GAAG,UACH5uB,MAAOe,EAAMU,OACb2L,QAAS,kBAAMk5B,EAASvjC,IACxBmK,SAAS,iBAMnB,KACH,CAACs4B,EAAaG,EAASW,EAAUvlC,EAAMU,OAAQV,EAAM4P,YAExD,OACE,kBAAC,QAAI,CAACtR,MAAO,EAAG0a,GAAG,QAAQ2U,cAAc,WACrC6W,GAAY,kBAACoB,GAAA,EAAI,CAACvJ,UAAQ,EAAC7gB,SAAUA,EAAUlS,KAAMA,IAEvD,kBAAC,QAAI,CAACskB,EAAE,UAAUtvB,MAAM,oBAAoBod,SAAS,QAClD8pB,KCjBMpkB,GA9IG,SAAH,GAAuB,IAAD,MAef,EAfDiS,EAAM,EAANA,OAAQzuB,EAAC,EAADA,EACtB5E,EAAQqI,qBACR62B,EAAWtF,cACTlsB,EAAUhI,qBAAWgQ,MAArBhI,MACFsoB,EAAU/vB,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UAAS,CAACtoB,IACpCisB,EAAcuF,EAASrF,SAAStoB,MAAM,KAAzC,GACF1E,EAAW5G,mBAChB,iBAAoB,gBAAd0zB,IAAgC3D,IACtC,CAAC2D,EAAW3D,IAGb,EAAqC3C,GAAU,GAAvCle,EAAK,EAALA,MAAgBoe,EAAQ,EAAjBve,QACX6wB,EAAW,EACf,EAAsCtS,EAAShiB,MAAM,KAAI,kBAAlDkiB,EAAS,KAAEje,EAAO,KAAKrE,EAAI,WAC9B20B,EAAK,EAAE,eACM30B,GAAI,IAArB,2BAAuB,CACtB,GADY,QACHe,SAAS,YAEjB2zB,GADoB10B,EAAK20B,EAAK,GAAG3zB,QAAQ,IAAK,IACtB,IAEzB2zB,GAAM,GACN,8BAED,GAAkB,UAAdrS,EAAuB,OAAO,6BAElC,GAAkB,UAAdA,EACH,OACC,kBAAC,QAAI,CACJ7F,EAAE,YACFxiB,SAAS,QACTqB,IAAK8mB,EAAWpe,EAAQvQ,EACxBtG,MAAO,EACP6M,MAAO,CACN46B,aAAa,aAAD,OAAe/lC,EAAM+f,gBAKrC,GAAa,OAAT0T,QAAS,IAATA,OAAS,EAATA,EAAWD,WAAW,OAAQ,CACjC,IAAIhe,EAAU+d,EAASphB,QAAQ,OAAQ,IAAIA,QAAQ,MAAO,IAC1D,OACC,kBAAC,QAAI,CACJyb,EAAE,SACFxiB,SAAS,QACTqB,IAAK+I,EAAUL,EAAQvQ,EACvBtG,MAAO,EACP0nC,UAAU,SAEV,kBAAC,IAAI,CAACnnB,KAAM,EAAGjgB,MAAI,GACjB4W,GAEF,kBAAC,IAAI,CAAC9W,OAAK,GAAEyW,IAKhB,IAaI8wB,EAbEjxB,EACL,kBAAC,IAAI,KACHQ,EAAO,IAAG,IACX,0BAAMrK,MAAO,CAAElM,MAAOe,EAAM4P,YACZ,OAAV,OAAJuB,QAAI,IAAJA,OAAI,EAAJA,EAAO,KAA4B,QAAV,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAO,MAAoB,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAO,IAEpC,IAAb00B,EACO,QADO,EACd10B,EAAK,UAAE,OAAO,QAAP,EAAP,EAASI,aAAK,OAAc,QAAd,EAAd,SAAiB,mBAAW,WAArB,EAAP,EAA+B,GAC/BJ,EAHA,KAaN,OAHI80B,IACHA,GAAS9wB,EAAMhD,QAAQ,IAAK,IAAIA,QAAQ,IAAK,KAG9B,WAAdshB,GAA0B5mB,GACZ,SAAd4mB,IAAyB5mB,EAGzB,kBAAC,QAAI,CACJ+gB,EAAE,SACFxiB,SAAS,QACTqB,IAAKuI,EAAUG,EAAQvQ,EACvBtG,MAAO,EACP0nC,UAAU,SAEV,kBAAC,IAAI,CAACnnB,KAAM,EAAGjgB,MAAI,GACjBoW,GAEF,kBAAC,QAAI,CAACtD,eAAe,YACL,WAAd+hB,GAAuC,IAAboS,GAC1B,kBAAC,IAAI,CACJzK,GAAI,EACJ78B,EAAE,kBACFI,YAA2B,WAAd80B,GAAuC,IAAboS,EACvCnnC,OAAK,OAEHkB,KAAUC,UAAUomC,GAAU,EAAIJ,IAAWrH,QAAQ,KAGzD,kBAAC,IAAI,CACJ3Q,GAAG,OACHtvB,EAAE,kBACFU,MACe,WAAdw0B,GAAuC,IAAboS,EACvB7lC,EAAM4P,UACN5P,EAAME,SAEVxB,OAAK,GAEJyW,KAKD,CAAC,SAAU,QAAQjD,SAASuhB,GAwB1B,KAtBL,kBAAC,QAAI,CACJ7F,EAAE,SACFxiB,SAAS,QACTqB,IAAKuI,EAAUG,EAAQvQ,EACvBtG,MAAO,EACP0nC,UAAU,SAET,IACD,kBAAC,IAAI,CAACnnB,KAAM,EAAGjgB,MAAI,GACjB20B,GAEF,kBAAC,IAAI,CACJ6H,GAAI,EACJ78B,EAAE,kBACFI,YAA2B,WAAd80B,GAAuC,IAAboS,EACvCnnC,OAAK,GAEJyW,EAAO,O,cC7Ib,26MA0BA,IAAMqnB,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,sIAO7Bq+B,GAAUr+B,UAAOwd,IAAG,mHAwWXsqB,GAjWG,SAAH,GAAsC,IAAD,IAA/Bj5B,EAAO,EAAPA,QAAS+S,EAAI,EAAJA,KAAMxZ,EAAS,EAATA,UAC7BxG,EAAQqI,qBACRC,EAAWC,cACX22B,EAAWtF,cACjB,EAA+Cl0B,qBAAWC,KAAlDG,EAAU,EAAVA,WAAuB8uB,EAAW,EAAtBpuB,UACTmzB,EAAcuF,EAASrF,SAAStoB,MAAM,KAAzC,GACR,EAOI7L,qBAAWgQ,MANdhI,EAAK,EAALA,MACAynB,EAAQ,EAARA,SACA+H,EAAgB,EAAhBA,iBACAhI,EAAgB,EAAhBA,iBACAiI,EAAmB,EAAnBA,oBACAgJ,EAAQ,EAARA,SAEKnQ,EAAU/vB,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UAAS,CAACtoB,IACzCb,EAAW5G,mBAChB,iBAAoB,gBAAd0zB,IAAgC3D,IACtC,CAAC2D,EAAW3D,IAEPoQ,EAAUngC,mBAAQ,kBAAsB,KAAX,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOxD,QAAY,CAACwD,IAE5CqvB,EAASl4B,EAAS,CACvBC,QAAQ,SAAD,OAAWmI,GAClBlI,QAASiI,GACThI,eAAgB,CAAEiI,UAASJ,WAAUK,MAAY,OAALQ,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,OAC7DjI,MACEgI,KAAiB,OAALS,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,QAAS0nB,GAAepuB,IAAckH,IAEtErH,qBAAU,WAAO,IAAD,MAER,OAAN02B,QAAM,IAANA,OAAM,EAANA,EAAQx7B,OACPw7B,EAAOv2B,YACF,OAALkH,QAAK,IAALA,OAAK,EAALA,EAAO5O,SACF,OAAL4O,QAAK,IAALA,OAAK,EAALA,EAAOsvB,YACPx2B,IACCkH,GAEFynB,EAAS,2BACLznB,GAAK,IACR5O,MAAa,OAANi+B,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAcyH,KACrBg0B,UAAiB,OAAND,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQx7B,YAAI,WAAN,EAAN,EAAc8f,WAEzB,CAAC0b,EAAOx7B,KAAMw7B,EAAOv2B,UAAWA,EAAWkH,EAAOynB,IAErD,IAAMr2B,EAAQmH,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAO5O,QAAS,KAAI,CAAC4O,IAE3CsvB,EAAY/2B,mBAAQ,WACzB,OAAY,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsvB,YAAa,KACzB,CAACtvB,IAEE2vB,EAAgB12B,sBAAW,wCAChC,WAAOwd,GAAG,sFAER7P,EAMG6P,EANH7P,UACAogB,EAKGvQ,EALHuQ,gBACIe,EAIDtR,EAJHniB,GACAszB,EAGGnR,EAHHmR,sBACAC,EAEGpR,EAFHoR,eACAmB,EACGvS,EADHuS,SAEDwG,GAAiB,GACjBhI,EAAiB5gB,GACjB6oB,EAAoBlyB,GAEduqB,EACLluB,IAAEg2B,UAAe,OAAL5vB,QAAK,IAALA,OAAK,EAALA,EAAO5O,OAAO,SAACm4B,GAAI,OAAKA,EAAKj1B,KAAOyzB,KAAU,GAEvD8H,EAAY,CACf/H,aACAC,WAGSiB,SAAWnB,GAAkBmB,EAEvC6G,EAAU7I,gBAAkBY,GAAyBZ,EAErDpsB,EAAS,CACRuxB,SAAS,iBAAD,OAAmBvlB,EAAS,YAAIrH,EAAO,YAAIynB,GACnDvwB,OAAQq5B,YAAmBD,GAAWhrB,aACpC,2CACH,mDA9B+B,GA+BhC,CACC2qB,EACAhI,EACAiI,EACAzvB,EAEApF,EACA2E,IAII/B,EAAYjF,mBAAQ,kBAAgB,OAAVH,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YAAW,CAACpF,IAClDugC,EAAgBpgC,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAO24B,gBAAe,CAAC34B,IAErDswB,EAAer3B,sBAAW,wCAC/B,WAAOwd,GAAG,0FAeN,OAdKrlB,GAAU4O,GAAS,IAAnB5O,MACAyO,GADK,EAC4B4W,GAAO,IAAxC5W,IAAI,EAAD,EAAEiP,aAAK,MAAG,EAAC,MAAE4a,gBAAQ,MAAG,EAAC,EAE9BuG,EAAQ,YAAO7+B,GACf8F,EAAI0C,IAAEg2B,UAAUK,GAAU,SAAC1G,GAAI,OAAS,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM1pB,OAAQA,KACxDowB,EAAS/W,OAAOhiB,EAAG,GAEbg5B,GAAgB,OAALlwB,QAAK,IAALA,OAAK,EAALA,EAAOmwB,YAAarhB,GAAS4a,EAE9CjC,EAAS,2BACLznB,GAAK,IACRmwB,UAAWD,EACX9+B,MAAO6+B,EACPX,WAAgB,OAALtvB,QAAK,IAALA,OAAK,EAALA,EAAOsvB,WAAY,KAC5B,SACGxvB,GAAW,CAAED,MAAKN,YAAW,KAAD,sCAClC,mDAlB8B,GAmB/B,CAACS,EAAOynB,EAAUloB,IAGbyX,EAAUze,mBAAQ,WACvB,IAAMqgC,EAAO,CACZ,CACCtkC,GAAI,SACJT,KAAM,SAAC4iB,GAAG,eACT,kBAAC,QAAI,CACJ7lB,MAAO,EACPwM,WAAW,SACXQ,OAAO,OACPmB,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,UACf0P,eAAe,YAEV,OAAHyS,QAAG,IAAHA,GAAW,QAAR,EAAHA,EAAKgT,cAAM,WAAR,EAAH,EAAa3D,WAAW,WACtB,OAAHrP,QAAG,IAAHA,GAAW,QAAR,EAAHA,EAAKgT,cAAM,WAAR,EAAH,EAAa3D,WAAW,QACrB,OAAHrP,QAAG,IAAHA,OAAG,EAAHA,EAAK+V,eACL,kBAAC,GAAO,CACPxuB,KAAQ,OAAHyY,QAAG,IAAHA,OAAG,EAAHA,EAAK+V,aAAc/V,EAAI+V,YAAiB,OAAH/V,QAAG,IAAHA,OAAG,EAAHA,EAAKgT,OAC/CvrB,KAAQ,OAAHuY,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,KAAM,aAKpBsgB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,IAAKF,IAAK,EAAGM,IAAK,GAC9B5M,MAAM,GAEP,CACCrjB,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,QAAI,CACJ7Y,OAAO,OACPoG,eAAe,SACf5G,WAAW,SACX2B,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,eAEf,kBAAC,IAAI,CAAC/C,MAAkB,QAAXklB,EAAIniB,GAAehC,EAAM4P,eAAY/I,EAAWpI,QAAM,GACjE0lB,EAAImT,cAIRhV,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,IAAKF,GAAI,IAAKM,GAAI,KAC9B5M,MAAM,GAEP,CACCrjB,GAAI,cACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,QAAI,CACJ7Y,OAAO,OACPoG,eAAe,SACf5G,WAAW,SACX4Q,SAAS,OACTjP,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,gBAEf,kBAAC,IAAI,KAAEmiB,EAAIxT,eAGb2R,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,GAEP,CACCrjB,GAAI,WACJT,KAAM,SAAC4iB,GACN,MAAkB,QAAXA,EAAIniB,GAAe,KAAO,kBAAC,IAAI,CAACvD,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKiT,WAErD9U,OAAQ,OACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,GAEP,CACCrjB,GAAI,QACJT,KAAM,SAAC4iB,GAAG,OACT,kBAACmW,GAAA,EAAY,CACZztB,SAAUA,EACVmpB,QAASA,EACTuE,QAAM,EACNpW,IAAKA,KAGP7B,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,IAAKF,IAAK,EAAGM,IAAK,GAC9B5M,MAAM,GAEP,CACCrjB,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OACT,kBAACmW,GAAA,EAAY,CAACztB,SAAUA,EAAUmpB,QAASA,EAAS7R,IAAKA,KAE1D7B,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,IAAKF,GAAI,EAAGM,GAAI,GAC5B5M,MAAM,GAEP,CACCrjB,GAAI,UACJsgB,OAAQ,GACR+C,MAAM,EACN9jB,KAAM,SAAC4iB,GACN,OACC,kBAAC,GAAc,CACdniB,GAAG,UACH6I,UAAU,WACV+iB,EAAE,SACFtiB,OAAO,OACPmB,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,YAabmiB,EAAIuQ,gBAUL,oCACE0R,EACA,oCACC,kBAACn6B,EAAA,EAAM,CACN7M,KAAK,QACLyuB,GAAG,OACH5uB,MAAOe,EAAM4P,UACbwI,SAAO,EACPwU,MAAM,mBACNzgB,SAAS,WACTE,QAAS,kBAAMgxB,EAAclZ,MAE9B,kBAAClY,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAMU,OACbksB,MAAM,cACNxU,SAAO,EACPjM,SAAS,aACTE,QAAS,kBAAM2xB,EAAa7Z,OAG3B,MA9BL,kBAAClY,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPwU,MAAM,cACNzgB,SAAS,aACTE,QAAS,kBAAM2xB,EAAa7Z,QA8BjC/kB,KACC8L,GAAa,GAAOm7B,IAAkBF,EACnC,CAAErU,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC3B,CAAEJ,IAAK,EAAGF,IAAK,EAAGM,IAAK,KAgD7B,OApCM+D,GACLsQ,EAAKvuB,KAAK,CACT/V,GAAI,UACJsgB,OAAQ,GACR/gB,KAAM,SAAC4iB,GACN,IAAiBoiB,GAAapiB,GAAO,IAA7BgP,QAIR,GAFAtrB,QAAQyX,IAAI,CAAEinB,cAETA,EAAU,OAAO,KAEtB,IAAIpT,EAAUoT,EAKd,OAJwB,kBAAbA,GAAyBA,aAAoBC,UACvDrT,EAAUnpB,KAAKysB,MAAM8P,IAIrB,kBAAC,QAAI,CAAC30B,GAAG,OAAOtT,MAAO,EAAGqvB,cAAc,UACvC,kBAAC,QAAI,CACJC,EAAE,qBACFnhB,IAAI,UACJnO,MAAM,oBACN6M,MAAO,CACN46B,aAAa,aAAD,OAAe/lC,EAAM+f,gBAGlCoT,EAAQ3mB,KAAI,SAAC6mB,EAAQzuB,GAAC,OACtB,kBAAC,GAAS,CAAOyuB,SAAQzuB,WAK7BygB,MAAM,EACNjmB,KAAM,CAAE6yB,GAAI,KAGPqU,IACL,CACFp7B,EACAm7B,EACAF,EACAnQ,EACAh2B,EAAM4P,UACN5P,EAAMU,OACNV,EAAM+f,YACNlT,EACAu5B,EACApI,EACAX,IAGD,OACC,kBAAC,GAAK,CACLhR,UAAQ,EACRC,YAAU,EACVmD,YAAU,EACVzP,KAAMA,EACN0P,gBAAc,EACdC,WAAS,EACTnpB,UAAWu2B,EAAOv2B,YAAcu2B,EAAOx7B,KACvCA,KAAMzC,GAAS,GACf4lB,QAASA,EACTwJ,WAAY8O,K,oBC3XFyJ,GAAe,WAC3B,IACA,EADkB/gC,qBAAWgQ,MAArBhI,OAC6C,GAA7CmzB,EAAe,EAAfA,gBAAiBgD,EAAc,EAAdA,eACnB6C,EAAY,CAAC7C,EAAgBhD,GAC3B8F,GAAmB9C,GAAkB,IAArC8C,eAWR,OACC,kBAAC,QAAI,CAACroC,MAAO,EAAGwM,WAAW,aAAa4Q,SAAS,QAkE/CgrB,EAAUl6B,KAAI,SAAC4zB,EAASx7B,GACxB,MACCw7B,GAAW,GADJC,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAMC,EAAK,EAALA,MAAOC,EAAG,EAAHA,IAAKz+B,EAAE,EAAFA,GAAI2S,EAAI,EAAJA,KAAiB,EAAXmsB,YAEvD,IAAKV,EAAS,OAAO,KACrB,GAAU,IAANx7B,GAAW+hC,EAAgB,OAAO,KAGtC,OACC,kBAAC,QAAI,CACJ97B,UAAU,YACV4B,IAAKzK,EAAK,WAAa4C,EACvBtG,MAAO,CAAC,EAAG,EAAG,GAAsB,IACpCsoC,GAAG,SACHjZ,cAAc,UAEd,kBAAC,IAAO,KAVM,CAAC,kBAAmB,oBAUhB/oB,IACjB+P,GACA,kBAAC,QAAI,CACJrW,MAAO,EACPwM,WAAW,SACX4G,eAAe,iBAEf,kBAAC,IAAI,CAACpT,MAAM,WAAWM,MAAI,YAG3B,kBAAC,IAAI,CAACN,MAAM,YAAYqW,IAGzB0rB,GACA,kBAAC,QAAI,CACJ/hC,MAAO,EACPwM,WAAW,SACX4G,eAAe,iBAEf,kBAAC,IAAI,CAACpT,MAAM,WAAWM,MAAI,sBAG3B,kBAAC,IAAI,CAACN,MAAM,YAAY+hC,IAGzBC,GACA,kBAAC,QAAI,CACJhiC,MAAO,EACPwM,WAAW,SACX4G,eAAe,iBAEf,kBAAC,IAAI,CAACpT,MAAM,WAAWM,MAAI,sBAG3B,kBAAC,IAAI,CAACN,MAAM,YAAYgiC,IAGzBC,GACA,kBAAC,QAAI,CACJjiC,MAAO,EACPwM,WAAW,SACX4G,eAAe,iBAEf,kBAAC,IAAI,CAACpT,MAAM,WAAWM,MAAI,YAG3B,kBAAC,IAAI,CAACN,MAAM,YAAYiiC,IAGzBC,GACA,kBAAC,QAAI,CACJliC,MAAO,EACPwM,WAAW,SACX4G,eAAe,iBAEf,kBAAC,IAAI,CAACpT,MAAM,WAAWM,MAAI,sBAG3B,kBAAC,IAAI,CAACN,MAAM,YAAYkiC,IAGzBC,GACA,kBAAC,QAAI,CACJniC,MAAO,EACPwM,WAAW,SACX4G,eAAe,iBAEf,kBAAC,IAAI,CAACpT,MAAM,WAAWM,MAAI,kBAG3B,kBAAC,IAAI,CAACN,MAAM,YAAYmiC,UAUnBoG,GAAoB,SAAH,GAA4B,IAAtBC,EAAc,EAAdA,eACnC,OAAKA,GAAmBx/B,IAAEuvB,QAAQiQ,GAGjC,kBAAC,QAAI,CAACxoC,MAAO,EAAGqvB,cAAc,UAC5BmZ,EAAet6B,KAAI,SAACoiB,EAAMhqB,GAC1B,MAAwCgqB,GAAQ,GAAxC5sB,EAAE,EAAFA,GAAI+kC,EAAO,EAAPA,QAASC,EAAI,EAAJA,KAAM9lC,EAAQ,EAARA,SAC3B,OACC,kBAAC,QAAI,CACJuL,IAAKzK,EACL1D,MAAO,EACPoT,eAAe,gBACf5G,WAAW,UAEX,kBAAC,IAAI,CAACjM,UAAQ,aACTooC,KAAOD,GAAME,OAAO,eACvB,WACAH,EACM,IAANniC,EAAU,OAAS,WACnB1D,QAlBmD,MAqO5CimC,GA1MIhiB,IAAM5U,YAAW,SAAC/R,EAAOgS,GAC3C,IAAMxQ,EAAQqI,qBACd,EAOI7J,GAAS,GANLwK,EAAI,EAAXlK,MACWuiB,EAAK,EAAhB2b,UACA8J,EAAc,EAAdA,eACAM,EAAW,EAAXA,YACAv6B,EAAQ,EAARA,SACAmpB,EAAO,EAAPA,QAGOtoB,EAAUhI,qBAAWgQ,MAArBhI,MAER,EAA8CA,GAAS,GAA3CT,EAAO,EAAXjL,GAAakI,EAAI,EAAJA,KAAM25B,EAAc,EAAdA,eAErBrnB,EAAQvW,mBAAQ,WAAO,IAAD,EACvBohC,EAAQ,EACRC,EAAgB,EACpB,IAAS,OAAL55B,QAAK,IAALA,OAAK,EAALA,EAAO5O,SAAc,OAAL4O,QAAK,IAALA,GAAY,QAAP,EAALA,EAAO5O,aAAK,WAAP,EAAL,EAAciN,QAAS,EAAG,CAAC,IACjB,EADgB,eACvB,OAAL2B,QAAK,IAALA,OAAK,EAALA,EAAO5O,OAAK,IAA7B,2BAA+B,CAAC,IAAvBm4B,EAAI,QACZpvB,QAAQyX,IAAI,CAAE2X,SAGd,MAAyDA,EAAjDG,gBAAQ,MAAG,EAAC,EAAE5a,EAAmCya,EAAnCza,MAAO+hB,EAA4BtH,EAA5BsH,YAAsBjoB,EAAM2gB,EAAf9D,QAC1CkU,GAASjQ,EAAW5a,EACpB,IAAI+qB,EAAiBvR,EAAwB,EAAduI,EAC/B,GAAM1xB,GAAcmpB,EACHhsB,KAAKysB,MAAMngB,GAAK,MACxB4D,SAAQ,SAACmZ,EAAQzuB,GACxBiD,QAAQyX,IAAI,CAAE+T,WACd,MAAqCA,GAAU,GAAvCle,EAAK,EAALA,MAAgBoe,EAAQ,EAAjBve,QAETwyB,EAASjU,EAASC,WAAW,QAC7BiU,EAAWlU,EAASC,WAAW,UAErC,IAAKgU,GAAWC,IACF,mBAAVtyB,EAAJ,CAEAtN,QAAQyX,IAAI,CAAEmoB,WAAUtyB,UAExBtN,QAAQyX,IAAI,CAAEnK,QAAOsyB,WAAUD,WAC/B,IAAM1vB,EAAM3C,EAAMhD,QAAQ,eAAgB,IAAM,IAChDtK,QAAQyX,IAAI,CAAExH,QAEVjL,GACC46B,IACHF,GAAiBzvB,OAKrBwvB,GAAiBC,EAAgBnQ,GACjC,8BAED,OAAIvqB,EAEF,kBAAC,QAAI,CACJ1B,MAAO,CAAEuiB,IAAK,UACdhc,eAAe,WACf5G,WAAW,UAEX,kBAAC,IAAI,CAACvM,EAAE,OAAOK,MAAI,aAGnB,kBAAC,IAAI,CAACL,EAAE,OAAOK,MAAI,EAACF,OAAK,EAACC,aAAW,OAClCiB,KAAUC,SAASwnC,IAEtB,kBAAC,IAAI,CAAC9oC,EAAE,OAAOK,MAAI,EAACK,MAAOe,EAAM4P,WAAU,IACxChQ,KAAUC,SAASynC,KAKnB,WAAN,OAAkB1nC,KAAUC,SAASwnC,IAGtC,MAAM,WAAN,OAAkBznC,KAAUC,SAAS,MACnC,CAAC6N,EAAOb,EAAU7M,EAAM4P,UAAWomB,IAGhCsN,IAFqBO,GAAkB,IAArC8C,eAES1gC,mBAAQ,WACxB,OAAOqB,IAAEkD,MACH,OAALkD,QAAK,IAALA,OAAK,EAALA,EAAOg6B,YAAa,IACpB,YAAU,SAAPC,WAA+B,OAALj6B,QAAK,IAALA,OAAK,EAALA,EAAO41B,eAEnC,CAAC51B,KAEEk6B,EAAW3hC,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOk6B,WAAY,KAAI,CAACl6B,IAEvD,OACC,oCACC,2BAAOxD,KAAK,WAAW29B,MAAM,SAAO,wMASC,MAAa,iTAgBlD,2BAAO39B,KAAK,YAAU,qeA4BtB,yBACCW,UAAU,wBACV2F,IAAKA,EACLrF,MAAO,CAAE7M,MAAO,OAAQgN,OAAQ,SAEhC,kBAAC,QAAI,CAAChN,MAAO,EAAGqvB,cAAc,SAAS7iB,WAAW,cACjD,kBAAC,QAAI,CACJxM,MAAO,EACPoT,eAAe,gBACf5G,WAAW,cAEX,yBACCxM,MAAM,QACNuM,UAAU,aACVa,IAAK1L,EAAM2L,KACXC,IAAI,cAEL,kBAAC,QAAI,CAAC8F,eAAe,WAAWic,cAAc,UAC7C,kBAAC,IAAO,CAACjvB,OAAK,EAACmM,UAAU,cAAY,UAChC,CAAC,QAAS,QAAS,iBAAiBX,EAAO,GAAE,aAAK+C,IAEvD,kBAAC,IAAI,CAACvO,OAAK,GAAE8d,GACb,kBAAC,IAAI,CAAC5d,MAAI,EAACF,OAAK,kBACF,IACb,0BAAMyM,MAAO,CAAElM,MAAOe,EAAM4P,YAAcg4B,MAGxCtE,IAAatN,GACf,kBAAC,QAAI,CAACpkB,GAAG,OAAOtT,MAAO,EAAGoT,eAAe,iBACxC,kBAAC,IAAI,CAAC9S,MAAI,uBAEV,kBAAC,IAAI,CAACA,MAAI,EAACF,OAAK,EAACO,MAAOe,EAAM4P,WACpB,OAAR0zB,QAAQ,IAARA,OAAQ,EAARA,EAAU3yB,gBAOhB,kBAAC,GAAY,MAEb,kBAAC,GAAS,CACTy2B,YAAaA,EACb15B,MAAOA,EACP5O,MAAOkK,EACPgX,MAAI,EACJgd,UAAW3b,EACXpU,QAASA,EACT66B,YAAU,IAGX,kBAAC,GAAiB,CAAChB,eAAgBA,U,kCCzZxC,26MACO,I,GAAMiB,GAAO,wCAAG,0FAAmB,OAAVC,EAAM,EAANA,OAAQhmC,EAAE,EAAFA,GAAE,kBAEjBZ,IAAMC,KAAK,oCAAqC,CACnE2mC,SACAhmC,OACC,KAAD,EAHU,OAANL,EAAM,yBAILA,EAAOJ,MAAI,OAEG,OAFH,yBAElBsG,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAXmB,sC,cCDpB,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAUA,I,GAAMqjC,GAAgB7pC,kBAAOqR,MAAPrR,CAAW,kEA6GlB8pC,GAvGK,SAAH,GAAmB,IAAbx6B,EAAK,EAALA,MACf1N,EAAQqI,qBACNw1B,GAAcnwB,GAAS,IAAvBmwB,UACFsK,EAASC,uBACTpZ,EAAWqZ,yBAEjB,EAAgC/jC,oBAAS,GAAM,mBAAxCkC,EAAS,KAAEC,EAAU,KAE5B,EAAiCf,qBAAWC,KAApCG,EAAU,EAAVA,WACAwiC,GADoB,EAARviC,UACgB,IAA5BuiC,YAGR,GAAqB,YAFIxiC,GAAc,IAA/B8sB,aAEuB,OAAO,KAEtC,IAAM2V,EAAc,CAClBC,UAAW,QACXr9B,MAAO,CACLs9B,KAAM,CACJxoC,gBAAiB,cACjByoC,UAAW1oC,EAAM8e,QACjB7f,MAAOe,EAAM8e,QACb0b,WAAY,IACZmO,WAAY,0CACZC,SAAU,OACVC,cAAe,cACf,oBAAqB,CAAE5pC,MAAOe,EAAM4P,WACpC,gBAAiB,CAAE3Q,MAAOe,EAAM4P,YAElCk5B,QAAS,CACPJ,UAAW,UACXzpC,MAAO,aAKPuc,EAAQ,wCAAG,WAAOtE,GAAC,8EACJ,OAAnBA,EAAE2G,iBAAiB,SACoBsqB,EAAOY,oBAAoB,CAChE7+B,KAAM,OACN8+B,KAAMha,EAASia,WAAWC,kBACzB,KAAD,EAH0B,GAG1B,SAHMphC,EAAK,EAALA,MAAOqhC,EAAa,EAAbA,cAIVrhC,EAAM,CAAD,gBAGI,OAFZrB,GAAW,GAAM,SAEPzE,EAAOmnC,EAAPnnC,GAAE,UACJ+lC,GAAQ,CAAEC,OAAoB,IAAZnK,EAAiB77B,OAAM,KAAD,oBAExC2L,GAAY,CAChB3L,GAAS,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAO1L,GACXuL,IAAU,OAALG,QAAK,IAALA,OAAK,EAALA,EAAOH,IACZ1L,MAAO,CAAEqI,KAAM,EAAGo+B,eAClBp+B,KAAM,UACL,KAAD,GAGFP,OAAOu1B,SAAS/sB,QAAQ,aAAa,kDAErCtK,QAAQC,MAAM,EAAD,IACbrB,GAAW,GAAO,gCAGpBoB,QAAQC,MAAMA,GAAO,0DAExB,gBA5Ba,sCA8Bd,OACE,oCACE,kBAAC6Q,GAAA,EAAI,KACH,0BAAM6C,SAAUA,GACd,kBAAC,OAAI,CACHmS,cAAc,SACdrvB,MAAM,OACNoT,eAAe,SACf5G,WAAW,UAEX,8BAAUD,UAAU,aAClB,kBAACo9B,GAAa,CAAC3pC,MAAM,QAAQuM,UAAU,WACrC,kBAAC,eAAW,CAAC+M,QAAS2wB,MAG1B,kBAACt8B,EAAA,EAAM,CACL4D,SAAUrJ,EACVwS,GAAG,OACH9O,KAAK,SACLiC,SAAS,kBAER3F,EACC,kBAACqF,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAMwB,UAGhB,iBCzFD4nC,GAbS,SAAH,GAAmB,IAAb17B,EAAK,EAALA,MAKnB27B,EAAoBC,sBAP1B,+GAQA,OACE,kBAAC,YAAQ,CAACnB,OAAQkB,GAChB,kBAAC,GAAW,CAAC37B,MAAOA,MCRpB67B,GAAkBnrC,kBAAOqC,QAAPrC,CAAY,+OASlB,YAAQ,SAAL4B,MAAkBE,YAmDxBspC,GA5CE,SAAChrC,GAChB,IAAQkP,GAAUlP,GAAS,IAAnBkP,MACAmwB,GAAcnwB,GAAS,IAAvBmwB,UACR,OACE,kBAAC0L,GAAe,KACd,kBAAC5wB,GAAA,EAAI,CAACra,MAAM,QACV,kBAAC,QAAI,CACHA,MAAM,OACN0a,GAAG,OACH2U,cAAc,SACd7iB,WAAW,SACX8T,GAAG,QAEH,yBACE6qB,QAAQ,YACRC,MAAM,6BACNprC,MAAM,KACNgN,OAAO,KACPT,UAAU,uBAEV,8CACA,0BACE8+B,KAAK,gCACLrzB,EAAE,+kCACFszB,SAAS,aAGb,kBAAC,OAAG,CAACh4B,GAAG,QACN,kBAAC,QAAI,CAACA,GAAG,OAAOF,eAAe,iBAC7B,kBAAC,IAAI,CAAC9S,MAAI,cACV,kBAAC,IAAI,CAACF,OAAK,cAAMkB,YAAmBi+B,MAEtC,kBAAC,IAAI,+FAKP,kBAAC,GAAe,CAACnwB,MAAOA,Q,cC5DlC,mmGAAA9I,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAgCA,IAiSeilC,GAjSC,SAAH,GASN,IARL7M,EAAS,EAATA,UACA8M,EAAQ,EAARA,SACAC,EAAO,EAAPA,QACAC,EAAU,EAAVA,WACAlD,EAAc,EAAdA,eACAnK,EAAY,EAAZA,aACAyK,EAAW,EAAXA,YACAv6B,EAAQ,EAARA,SAEM7M,EAAQqI,qBACRC,EAAWC,cACT0E,EAAYsH,cAAZtH,QACR,EAAiCvH,qBAAWC,KAApCG,EAAU,EAAVA,WAAYC,EAAQ,EAARA,SACZuN,EAAqB5N,qBAAWsqB,MAAhC1c,iBACR,EAA4B5N,qBAAWgQ,MAA/BhI,EAAK,EAALA,MAAOynB,EAAQ,EAARA,SACPmT,GAAgBviC,GAAY,IAA5BuiC,YAGR,EAAqC56B,GAAS,GAAtC1L,EAAE,EAAFA,GAAIuL,EAAG,EAAHA,IAAKq6B,EAAQ,EAARA,SAAU9oC,EAAK,EAALA,MACrBk3B,EAAU/vB,mBAAQ,oBAAa,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,WAAS,CAACtoB,IAE3Cu8B,EAAkBhkC,mBAAQ,WAAO,IAAD,IACpC,OAAS,OAALyH,QAAK,IAALA,GAAgB,QAAX,EAALA,EAAOg6B,iBAAS,WAAX,EAAL,EAAkB37B,QAAS,KAAW,OAAL2B,QAAK,IAALA,OAAK,EAALA,EAAOg6B,WAAkB,GACvD,YACG,OAALh6B,QAAK,IAALA,GAAgB,QAAX,EAALA,EAAOg6B,iBAAS,WAAX,EAAL,EAAkBl7B,KAAI,SAACs2B,GACxB,IAAQ6E,EAAyB7E,EAAzB6E,QAASh3B,EAAgBmyB,EAAhBnyB,YACjB,OAAO,4BAAQjR,MAAOioC,GAAUh3B,SAGnC,CAACjD,IAEJ,EAAgCpJ,oBAAS,GAAM,mBAAxCkC,EAAS,KAAEC,EAAU,KAC5B,EAAsCnC,oBAAS,GAAM,mBAA9C4lC,EAAW,KAAEC,EAAc,KAE5BC,EAA0C,YAAnB,OAAVtkC,QAAU,IAAVA,OAAU,EAAVA,EAAY8sB,cAEzBpX,EAAW7U,sBAAW,wCAC1B,sFAIK,OAJc0jC,EAAS,EAAnBzC,SACPzS,EAAS,2BACJznB,GAAK,IACRk6B,SAAUyC,KACT,SACG18B,GAAY,CAChB9L,MAAO,CAAE+lC,SAAUyC,GACnB98B,IAAKA,EACLvL,OACC,KAAD,sCACH,mDAXyB,GAY1B,CAACuL,EAAKvL,EAAI0L,EAAOynB,IAGbmV,EAAe3jC,sBAAW,wCAC9B,8FACuB,GADdihC,EAAQ,EAARA,SACPuC,GAAe,MAEN,OAALz8B,QAAK,IAALA,GAAY,QAAP,EAALA,EAAO5O,aAAK,WAAP,EAAL,EAAciN,QAAS,GAAC,yCACnBuH,EACL,6DACD,WAEO,OAAL5F,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,QAAsC,YAAnB,OAAVpH,QAAU,IAAVA,OAAU,EAAVA,EAAY8sB,cAAyB,yCAC3Dtf,EACL,uDACD,UAEEs0B,EAAS,CAAD,wCACJt0B,EACL,wFACD,UAGO,OAAL5F,QAAK,IAALA,GAAsB,QAAjB,EAALA,EAAOmzB,uBAAe,WAAjB,EAAL,EAAwBN,KAAK,CAAD,yCACxBjtB,EACL,sDACD,WAGO,OAAL5F,QAAK,IAALA,GAAsB,QAAjB,EAALA,EAAOmzB,uBAAe,WAAjB,EAAL,EAAwBF,QAAQ,CAAD,yCAC3BrtB,EACL,yDACD,QAGc,OAAjB7M,GAAW,GAAM,UACXkH,GAAY,CAChB9L,MAAO,CAAE+lC,YACTr6B,IAAKA,EACLvL,OACC,KAAD,oBAEI4L,GAAW,CACf1D,KAAM,QACNrI,MAAO,CACLqI,KAAM,EACNo+B,eAEF/6B,IAAKA,QAAO1G,EACZ7E,OACC,KAAD,GACF26B,EAAa,YACbA,EAAa,UACbA,EAAa,iBAEbr0B,EAAS,aACT7B,GAAW,GAAO,4CAEnB,mDAvD6B,GAwD9B,CACE8G,EACAvL,EACAsmC,EACAhgC,EACAq0B,EACAjvB,EACA5H,EACAwN,EACA62B,IAIEI,EAAmB5jC,sBAAW,wCAClC,WAAOuQ,GAAC,wEACsB,OAAtBxX,EAAQwX,EAAEC,OAAOzX,MAAM,EAAD,OACtBiO,GAAY,CAAE3L,GAAIiL,EAASpL,MAAO,CAAEyhC,SAAU5jC,KAAW,KAAD,EAC9Dy1B,EAAS,2BAAKznB,GAAK,IAAE41B,SAAU5jC,KAAS,2CACzC,mDALiC,GAMlC,CAACgO,EAAOT,EAASkoB,IAGbmO,EAAWr9B,mBAAQ,WACvB,OAAY,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAO41B,WAAY,KACzB,CAAC51B,IAEI21B,EAAgBp9B,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAO0oB,WAAY,KAAI,CAAC1oB,IAAtD21B,YAcR,OACE,oCACE,kBAAC,GAAU,CACTx2B,SAAUA,EACVmpB,QAASA,EACTxlB,IAAKs5B,EACLhrC,MAAOA,EACPk+B,UAAWA,EACX+M,QAASA,EACTC,WAAYA,EACZlD,eAAgBA,EAChBM,YAAaA,IAGf,kBAAC,OAAG,CAACx1B,GAAG,QACN,kBAAC,GAAY,MAEb,kBAAC,QAAI,CACH9G,WAAY,CAAC,SAAU,SAAU,SAAU,cAC3C6iB,cAAe,CAAC,SAAU,SAAU,SAAU,OAC9CxiB,MAAO,CAAEuiB,IAAK,SAEd,kBAAC,OAAG,CAACC,cAAc,SAAS3U,GAAG,QAAQ6F,KAAM,EAAGvgB,MAAO,GACrD,kBAAC,EAAoB,KACnB,kBAAC,GAAS,CACR0hB,MAAM,EACNonB,YAAaA,EACbtoC,MAAOA,EACPk+B,UAAWA,EACX/vB,QAASjL,EACT0L,MAAOA,MAKI,KAAX,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOxD,MAAa,KACnB,kBAAC,QAAI,CAAC8O,GAAI,CAAC,OAAQ,OAAQ,OAAQ,GAAI6F,KAAM,GAI1CurB,EACC,kBAAC,GAAQ,CAACtrC,MAAOA,EAAO4O,MAAOA,EAAO5H,WAAYA,IAElD,kBAAC6S,GAAA,EAAI,CAACra,MAAO,GACX,kBAAC,QAAI,CACHA,MAAO,EACPqvB,cAAc,SACd7iB,WAAW,SACX8T,GAAG,QAEH,kBAAC,KAAM,CACLpD,SAAU8uB,EACVlvB,oBAAkB,EAClB3B,cAAe,CACbmuB,SAAUA,GAAY,GACtBtE,SAAUA,GAAY,IAExBhoB,iBAAiB,EACjBC,kBAAkB,EAClB1B,iBAAkBF,YAAaC,MAAM,CACnCguB,SAAUjuB,UACA,mCACP7I,SAAS,uCAGb,YAAiB,IAAd2V,EAAM,EAANA,OACF,OACE,kBAAC,KAAI,CAACtb,MAAO,CAAE7M,MAAO,SACpB,kBAAC,QAAI,CAACA,MAAO,EAAGqvB,cAAc,UAC1B0V,EACA,kBAAC,QAAI,CACHzxB,GAAG,OACHtT,MAAO,EACPoT,eAAe,iBAEf,kBAAC,IAAI,CAAC9S,MAAI,eAEV,kBAAC,IAAI,CAACF,OAAK,EAACO,MAAOe,EAAM4P,WACtByzB,IATS,KAafrN,EAAU,KACT,kBAAC,QAAI,KACH,kBAAChe,GAAA,EAAK,CACJf,SAAUszB,EACVtyB,GAAG,SACHnH,UAAQ,EACRJ,UAAU,kBACVpH,KAAK,YAEL,4BAAQ5J,MAAM,IAAE,kBACfuqC,KAMT,kBAACjyB,GAAA,EAAK,CACJlH,UAAQ,EACRjB,SAA0B,KAAX,OAALnC,QAAK,IAALA,OAAK,EAALA,EAAOxD,MACjBwG,UAAU,cACVgH,OAAQ,kBAAM8D,EAASiL,IACvBnd,KAAK,WACLkhC,UAAW,KAEb,kBAAC,QAAI,CAACjsC,EAAG,EAAGmT,eAAe,UACzB,kBAACzF,EAAA,EAAM,CACL+M,GAAG,SACH4F,GAAG,OACHzS,SAAS,sBACTjC,KAAK,SACL2F,SAAUq6B,GAET1jC,EACC,kBAACqF,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAMwB,UAGhB,2B,cC7SlC,26MACO,IAAMipC,GAAO,wCAAG,WAAO/oC,GAAI,iGAEZN,IAAMC,KAAK,gCAAiCK,GAAM,KAAD,EAA1D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATmB,sCAWP4iC,GAAM,wCAAG,WAAOhpC,GAAI,iGAEXN,IAAMC,KAAK,+BAAgCK,GAAM,KAAD,EAAzD,GAEW,OAAb,QAFDI,EAAG,cAEF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAVkB,sCAYN6iC,GAAkB,wCAAG,WAAO19B,GAAO,iGAE1B7L,IAAMC,KAAK,2CAA4C,CACvE4L,YACC,KAAD,EAFO,GAGW,OAAb,QAHDnL,EAAG,cAGF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAX8B,sCAalB8iC,GAAyB,wCAAG,WAAOhiC,EAAKM,GAAO,iGAEtC9H,IAAMC,KAAK,kDAAmD,CAC9EuH,MAAKM,YACJ,KAAD,EAFO,GAGW,OAAb,QAHDpH,EAAG,cAGF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAXqC,wCAazB+iC,GAAS,wCAAG,WAAOnpC,GAAI,iGAEdN,IAAMC,KAAK,kCAAmCK,GAAM,KAAD,EAA5D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sCAUTgjC,GAAS,wCAAG,WAAOppC,GAAI,iGAEdN,IAAMC,KAAK,kCAAmCK,GAAM,KAAD,EAA5D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sCAUTijC,GAAS,wCAAG,WAAOrpC,GAAI,iGAEdN,IAAMC,KAAK,kCAAmCK,GAAM,KAAD,EAA5D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sCAUTkjC,GAAS,wCAAG,WAAOtpC,GAAI,iGAEdN,IAAMC,KAAK,kCAAmCK,GAAM,KAAD,EAA5D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,MAAI,aAClC,IAAIqG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sC,cChFtB,26MACO,IAAMmjC,GAAe,wCAAG,WAAOvpC,GAAI,iGAEpBN,IAAMC,KACtB,iDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ2B,sCA6BfojC,GAAiB,wCAAG,WAAOxpC,GAAI,iGAEtBN,IAAMC,KACtB,mDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ6B,sCA0BjBqjC,GAAiB,wCAAG,WAAOzpC,GAAI,iGAEtBN,IAAMC,KACtB,mDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ6B,sCAajBsjC,GAAiB,wCAAG,WAAO1pC,GAAI,iGAEtBN,IAAMC,KACtB,mDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ6B,sC,2BCrE9B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAWA,IAAMiV,GAAmBF,YAAaC,MAAM,CAC1CyxB,MAAO1xB,YAAa7I,SAAS,sBAC7Bw6B,QAAS3xB,YAAa7I,SAAS,+BAC/BH,YAAagJ,YAAa7I,SAAS,4BACnCy6B,KAAM5xB,YAAa7I,SAAS,uBAC5B06B,iBAAkB7xB,YAAa7I,SAAS,uBAqP3B26B,GAlPS,SAAH,GAUd,IATLlqC,EAAI,EAAJA,KACA8f,EAAK,EAALA,MACAqqB,EAAa,EAAbA,cACAC,EAAgB,EAAhBA,iBACAC,EAAkB,EAAlBA,mBACAvZ,EAAO,EAAPA,QACAvrB,EAAO,EAAPA,QAAQ,EAAD,EACP+kC,yBAAiB,MAAG,GAAE,EACtBnlC,EAAY,EAAZA,aAEQouB,EAAqBpvB,qBAAWsqB,MAAhC8E,iBACA7nB,EAAYsH,cAAZtH,QACAnH,EAAeJ,qBAAWC,KAA1BG,WAEA4H,EAAUhI,qBAAWgQ,MAArBhI,MACR,EACEA,GAAS,GADHo+B,EAAU,EAAVA,WAAY7J,EAAa,EAAbA,cAAerB,EAAiB,EAAjBA,kBAAmBmL,EAAgB,EAAhBA,iBAGtD,EACEH,GAAsB,GAElBnyB,EAAgB,CACpB4xB,MAJW,EAALA,OAIU,EAChBC,QALoB,EAAPA,SAKO,IACpB36B,YANiC,EAAXA,aAMM,GAC5B46B,KAPuC,EAAJA,MAOrB,IACdC,iBARyD,EAAhBA,kBAQH,KAGlChwB,EAAW7U,sBAAW,wCAC1B,WAAO8f,EAAO,GAAD,wFAEG,GAFCiZ,EAAS,EAATA,UAAS,SAEd12B,EAASzH,EAATyH,KAEc,WAAlB0iC,EAA0B,iCACPvJ,GAAoB,CACvCtgC,MAAM,2BACD4kB,GAAM,IACTqlB,aACAlU,UAAqB,OAAV9xB,QAAU,IAAVA,OAAU,EAAVA,EAAY8xB,UACvBE,SAAoB,OAAVhyB,QAAU,IAAVA,OAAU,EAAVA,EAAYgyB,SACtBkU,WAAiB,OAALt+B,QAAK,IAALA,GAAe,QAAV,EAALA,EAAO0oB,gBAAQ,WAAV,EAAL,EAAiBlpB,MAC7BD,QAAc,OAALS,QAAK,IAALA,OAAK,EAALA,EAAO1L,GAChBkH,QAAU+D,GAAoB,OAAVnH,QAAU,IAAVA,OAAsBe,EAAtBf,EAAYoD,QAChC+iC,UAAWhK,EAAgB8J,EAAmBnL,MAE/C,KAAD,EAXIj/B,EAAM,OAYNuqC,EAAU5kC,IAAE6kC,OAAO,GAAD,mBAAKnjC,GAAI,CAAErH,IAAS,CAAC,cAEvCoF,EAAU,CAAEiC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,GAChDsqB,EAAiBhqC,EAAOyqC,gBAExBtX,EAAiB,qCAAD,OACuBnzB,EAAOyqC,iBAE9CtlC,EAAQC,GACRsrB,GAAQ,GACR3rB,IAAe,yCAEay7B,GAAoB,CAC9CngC,GAAI0pC,EACJ7pC,MAAO4kB,IACN,KAAD,GAHI4lB,EAAa,OAKnBvX,EAAiB,qCAAD,OACuB4W,IAGjCQ,EAAU5kC,IAAE6kC,OAChBnjC,EAAKwD,KAAI,SAAC2X,GAER,OADsBA,EAAdniB,KACM0pC,EACLW,EAEFloB,KAET,CAAC,cAGGpd,EAAO,2BAAQxF,GAAI,IAAEyH,KAAMkjC,IACjCplC,EAAQC,GACR24B,IACArN,GAAQ,GAAO,0DAGjBxqB,QAAQC,MAAM,EAAD,IAAQ,0DAExB,qDA1DyB,GA2D1B,CACEvG,EACAmqC,EACAI,EACAzqB,EACAsqB,EACA7W,EACAhuB,EACAurB,EACA3kB,EACAu0B,EACArB,EACAmL,EACArlC,EACAZ,EACAmH,IAIEq/B,EAAermC,mBACnB,kBACE,4BAAQvG,MAAM,GAAG+M,IAAI,WAAS,mBAErB,mBACNo/B,EAAkBr/B,KAAI,WAAqB5H,GAAO,IAAzBymC,EAAK,EAALA,MAAUl6B,EAAI,mBAExC,OADAtJ,QAAQyX,IAAInO,GAEV,4BAAQzR,MAAO2rC,EAAO5+B,IAAK7H,GACxBymC,UAKT,CAACQ,IAEGU,EAAgBtmC,mBACpB,iBACE,CACE,CAAEkS,MAAO,SAAUzY,MAAO,KAC1B,CAAEyY,MAAO,WAAYzY,MAAO,MAC5B8M,KAAI,WAAmB5H,GAAC,IAAjBuT,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OACnB,4BAAQA,MAAOA,EAAO+M,IAAG,iBAAY/M,IAClCyY,QAGP,IAgCIotB,EAAW5+B,uBAAY,WAC3Bw7B,GAAoB,CAAEngC,GAAI0pC,IAC1B,IAAQ1iC,EAASzH,EAATyH,KACFkjC,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAO0pC,KACtC5kC,EAAQ,CAAEkC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IACxCgR,GAAQ,KACP,CAACqZ,EAAerqB,EAAO9f,EAAMuF,EAASurB,IAEzC,OACE,kBAAC,KAAM,CACL7W,SAAUA,EACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,EAClBE,iBAAiB,EACjBC,kBAAkB,EAClBF,gBAAgB,IAEf,kBACC,oCACE,kBAAC,GAAc,CACblI,GAAG,OACHmZ,YAAU,EACVD,UAAQ,EACRI,eAAgB,kBAAM4F,GAAQ,IAC9BzF,MAAK,UACe,WAAlB8e,EAA6B,SAAW,OAAM,gBAEhDze,SAAS,KAEX,kBAAC,KAAI,CAAC9hB,MAAO,CAAEE,SAAU,QAAS/M,MAAO,SACvC,kBAAC,KAAK,CAACwS,UAAQ,EAACmH,GAAG,SAAS3O,KAAK,QAAQoH,UAAU,SAChD47B,GAEH,kBAAC,KAAK,CACJx7B,UAAQ,EACRmH,GAAG,WACH3O,KAAK,cACLoH,UAAU,gBAGZ,kBAAC,KAAK,CAACI,UAAQ,EAACmH,GAAG,SAAS3O,KAAK,OAAOoH,UAAU,UAC/C67B,GAmBH,kBAAC,KAAiB,CAChBhH,SAAUA,EACViH,SAAU,kBAAMna,GAAQ,IACxBoa,WAA8B,WAAlBf,EACZgB,aAAgC,WAAlBhB,EAA6B,SAAW,OACtDiB,cAAa,2DCzGZC,GA5IF,SAAH,GAAwD,IAAlDlB,EAAa,EAAbA,cAAeE,EAAkB,EAAlBA,mBAAoBvZ,EAAO,EAAPA,QAE3CryB,GADiB0F,qBAAWC,KAA1BG,WACMuC,sBAEd,EAwBIujC,GAAsB,GAvBxBiB,EAAQ,EAARA,SACAT,EAAc,EAAdA,eACAZ,EAAgB,EAAhBA,iBACAQ,EAAU,EAAVA,WACAc,EAAO,EAAPA,QACAn8B,EAAW,EAAXA,YACAo8B,EAAgB,EAAhBA,iBACAC,EAAW,EAAXA,YACAzB,EAAI,EAAJA,KACAF,EAAK,EAALA,MACA7T,EAAO,EAAPA,QACA4L,EAAK,EAALA,MACAkI,EAAO,EAAPA,QAEA2B,GADa,EAAbC,cACU,EAAVD,YAGAE,GAFM,EAANC,OACc,EAAdC,eACU,EAAVF,YAEAG,GADU,EAAVC,WACS,EAATD,WACAE,EAAS,EAATA,UACAC,EAAU,EAAVA,WACU,EAAVC,WAGF,OACE,oCACE,kBAAC,GAAc,CACbv6B,GAAG,OACHmZ,YAAU,EACVD,UAAQ,EACRI,eAAgB,kBAAM4F,GAAQ,IAC9BzF,MAAK,UAAuB,WAAlB8e,EAA6B,SAAW,OAAM,gBACxDze,SAAS,KAGX,kBAAC,QAAI,CAACU,cAAe,CAAC,SAAU,SAAU,OAAQxiB,MAAO,CAAEuiB,IAAK,SAC9D,kBAAC,QAAI,CAACC,cAAc,UAClB,kBAAC,IAAI,KACH,0BAAMxiB,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,qBAA0B,IACjEi9B,GAEH,kBAAC,IAAI,KACH,0BAAM1hC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,OAAW,IAAEw8B,GAEvD,kBAAC,IAAI,KACH,0BAAMjhC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,SAAc,IACrD47B,GAEH,kBAAC,IAAI,KACH,0BAAMrgC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,iBAAsB,IAC7Do8B,GAEH,kBAAC,IAAI,KACH,0BAAM7gC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,kBAAuB,IAC9Dk9B,GAGH,kBAAC,IAAI,KACH,0BAAM3hC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,gBAAqB,IAC5De,GAEH,kBAAC,IAAI,KACH,0BAAMxF,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,qBAA0B,IACjEm9B,GAEH,kBAAC,IAAI,KACH,0BAAM5hC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,gBAAqB,IAC5Do9B,GAEH,kBAAC,IAAI,KACH,0BAAM7hC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,WAAe,IAAE27B,IAI7D,kBAAC,QAAI,CAAC5d,cAAc,UAClB,kBAAC,IAAI,KACH,0BAAMxiB,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,UAAc,IAAEy7B,GAE1D,kBAAC,IAAI,KACH,0BAAMlgC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,YAAgB,IAAE4nB,GAE5D,kBAAC,IAAI,KACH,0BAAMrsB,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,UAAc,IAAEwzB,GAG1D,kBAAC,IAAI,KACH,0BAAMj4B,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,aAAiB,IAAE07B,GAM7D,kBAAC,IAAI,KACH,0BAAMngC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,eAAoB,IAC3Dq9B,GASH,kBAAC,IAAI,KACH,0BAAM9hC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,gBAAqB,IAC5Du9B,GAOH,kBAAC,IAAI,KACH,0BAAMhiC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,eAAoB,IAC3D09B,GAEH,kBAAC,IAAI,KACH,0BAAMniC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,eAAoB,IAC3D49B,GAEH,kBAAC,IAAI,KACH,0BAAMriC,MAAO,CAAElM,MAAOe,EAAM4P,YAAY,iBAAsB,IAC7D69B,O,cCvIb,26MACO,I,GAAME,GAAoB,wCAAG,WAAOjsC,GAAI,iGAEzBN,IAAMC,KACtB,2DACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZgC,sC,cCDjC,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAoBA,I,GAAQqmC,GAAuC2C,GAAtBxC,GAAsBwC,GAEzCpR,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAMtByvC,GAAoB,SAAH,GAA8B,IAAxB3kC,EAAO,EAAPA,QAAS+D,EAAO,EAAPA,QACrCjN,EAAQqI,qBACd,EAA4CkM,cAApCrT,EAAQ,EAARA,SAAmB4sC,EAAY,EAArB7gC,QACV6nB,EAAqBpvB,qBAAWsqB,MAAhC8E,iBACApnB,EAAUhI,qBAAWgQ,MAArBhI,MACFqgC,EAAcroC,qBAAWC,KAEzBiyB,EAAY3xB,mBAChB,wBAAiB,OAAX8nC,QAAW,IAAXA,GAAuB,QAAZ,EAAXA,EAAajoC,kBAAU,WAAZ,EAAX,EAAyB8xB,YAC/B,CAACmW,IAEGjW,EAAW7xB,mBACf,wBAAiB,OAAX8nC,QAAW,IAAXA,GAAuB,QAAZ,EAAXA,EAAajoC,kBAAU,WAAZ,EAAX,EAAyBgyB,WAC/B,CAACiW,IAEG7iC,EAAYjF,mBAChB,wBAAiB,OAAX8nC,QAAW,IAAXA,GAAuB,QAAZ,EAAXA,EAAajoC,kBAAU,WAAZ,EAAX,EAAyBoF,YAC/B,CAAC6iC,IAGH,EAAwBzpC,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAA0C/tB,mBAAS,UAAS,mBAArDonC,EAAa,KAAEC,EAAgB,KAEtC,EAA8D9mC,EAAS,CACrEC,QAAS,oBACTC,QAAS4oC,GACT1oC,KAAM8oC,EAAYvnC,YAHNqlC,EAAiB,EAAvBtqC,KAAoCysC,EAAa,EAAxBxnC,UAMjC,EAAmD3B,EAAS,CAC1DC,QAAS,mBACTC,QAASkmC,GACTjmC,eAAe,aACbkE,UACA+D,UACA6+B,WAAYgC,EAAoB,OAALpgC,QAAK,IAALA,OAAK,EAALA,EAAOo+B,gBAAajlC,GACzC3F,EAAW,CAAE02B,YAAWE,YAAa,IAE7C7yB,KACGgI,IAAYS,IACZm+B,IACCA,GAAqBmC,IAZnBzsC,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAAcI,EAAO,EAAPA,QAgBvC,EAA+CvF,GAAQ,GAAE,IAAjD8f,aAAK,MAAG,EAAC,MAAErY,KAAMilC,OAAY,MAAG,GAAE,EAEpCrC,EAAqB3lC,mBACzB,kBAAMqB,IAAEkD,KAAKyjC,GAAc,SAACC,GAAE,OAAKA,EAAG9B,iBAAmBV,OACzD,CAACuC,EAAcvC,IAEXnG,EAAW5+B,sBAAW,wCAC1B,WAAOuQ,EAAGk1B,GAAc,0EAMP,OALfl1B,EAAE8Q,kBACMhf,EAASzH,EAATyH,KACFkjC,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIioB,iBAAmBA,KAClDtlC,EAAQ,CAAEkC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IACxCgR,GAAQ,GAAO,SACT+Y,GAAkB,CAAEgB,mBAAkB,KAAD,EAE3CtX,EAAiB,mDAAD,OACqCsX,IAErD1lC,IAAe,4CAChB,qDAdyB,GAe1B,CAAC2a,EAAO9f,EAAMuF,EAASguB,EAAkBpuB,IAQrCynC,EAAaxnC,uBAAY,SAACuD,GAC9B,OAAQA,GACN,IAAK,IACH,MAAO,iBACT,QACE,MAAO,YAEV,IACGkkC,EAAYznC,uBAAY,SAAC4kC,GAC7B,OAAQA,GACN,IAAK,IACH,MAAO,WACT,IAAK,IACH,MAAO,SACT,QACE,MAAO,YAEV,IAEG7mB,EAAUze,mBAAQ,WACtB,IAAIqgC,EAAO,CACT,CACEtkC,GAAI,iBACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,aAAM,OAAD6X,QAAC,IAADA,OAAC,EAADA,EAAG81B,eAAc,YAAK,OAAD91B,QAAC,IAADA,OAAC,EAADA,EAAGu2B,YAE3CvqB,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,UACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,IAAI,CAAC7X,QAAM,GAAE0vC,EAAY,OAAD73B,QAAC,IAADA,OAAC,EAADA,EAAGg1B,UAAY,WACrDhpB,OAAQ,YACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,aACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,IAAI,CAAC7X,QAAM,IAAG,OAAD6X,QAAC,IAADA,OAAC,EAADA,EAAG01B,aAAc,WAC5C1pB,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,OACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CACH1X,MAAI,EACJK,MAAmB,OAAX,OAADqX,QAAC,IAADA,OAAC,EAADA,EAAGi1B,MAAevrC,EAAM4P,UAAY5P,EAAMwB,QACjD/C,QAAM,GAEL2vC,EAAW,OAAD93B,QAAC,IAADA,OAAC,EAADA,EAAGi1B,OAAS,WAG3BjpB,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,aACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,GAClBooC,KAAQ,OAAD3wB,QAAC,IAADA,OAAC,EAADA,EAAGm3B,YAAYvG,OAAO,eAAiB,WAGnD5kB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,kBACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,GAClBooC,KAAQ,OAAD3wB,QAAC,IAADA,OAAC,EAADA,EAAG+3B,iBAAiBnH,OAAO,eAAiB,WAGxD5kB,OAAQ,mBACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,cACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,IAAI,MAAG,OAADA,QAAC,IAADA,OAAC,EAADA,EAAG3F,cAAe,WACtC2R,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,YACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,IAAI,MAAG,OAADA,QAAC,IAADA,OAAC,EAADA,EAAGg3B,YAAa,WACpChrB,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,KA+B9B,OA5BkB,IAAd/mB,GACFo7B,EAAKvuB,KAAK,CACRM,QAAS,SAAC7Z,GACR,IAAI8vC,EAAc9vC,EAAM4qB,KAAKjF,IAAI0F,SAEjC,OACE,kBAAC,GAAc,CAAC7nB,GAAG,WACjB,kBAACiK,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,WACTE,QAAS,SAAC6K,GAAC,OAzGLiN,EAyGqB3lB,EAAM4qB,KAAKjF,IAxGlDwnB,EAAiBxnB,EAAI0F,SAASuiB,qBAC9B/Z,GAAQ,GAFS,IAAClO,KA2GR,kBAAClY,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPjM,SAAS,aACTE,QAAS,SAAC6K,GAAC,OAAKquB,EAASruB,EAAGo3B,EAAYlC,qBAKhD9pB,OAAQ,GACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,IAAKD,GAAI,EAAGF,GAAI,EAAGM,GAAI,KAEhCqU,IACN,CACDp7B,EACAijC,EACAnuC,EAAM4P,UACN5P,EAAMU,OACNV,EAAMwB,QACN4sC,EACA7I,IAGIgJ,EAAiBtoC,mBAAQ,WAC7B,MAAyB,WAAlBylC,EACL,kBAAC,GAAe,CACdG,kBAAmBA,EACnBtqC,KAAMA,EACN8f,MAAOA,EACPqqB,cAAeA,EACfC,iBAAkBA,EAClBC,mBAAoBA,EACpBvZ,QAASA,EACTvrB,QAASA,EACTJ,aAAcA,IAGhB,kBAAC,GAAI,CACHglC,cAAeA,EACfC,iBAAkBA,EAClBC,mBAAoBA,MAGvB,CACDvqB,EACAuqB,EACArqC,EACAmqC,EACAG,EACA/kC,EACAJ,IAGF,OACE,oCACE,kBAACosB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC1B,kBAAC1Z,GAAA,EAAI,KAAE41B,IAET,kBAAC,GAAK,CACJ3hB,MAAK,UAAO1rB,EAAW,MAAQ,GAAE,gBACjCK,KAAM0sC,EACN7gB,iBAAiB,qBACjBG,WAAY,WACVoe,EAAiB,UACjBtZ,GAAQ,IAEVhF,iBAAiB,YACjBuC,YAAU,EACVE,aAAa,EACbC,YAAarpB,EAEbge,QAASA,EACTle,UAAWA,EACX0nB,WAAY7M,EACZkL,eAAgBuhB,EAAe,eAAYjnC,EAC3C4mB,gBAAiBqgB,EAAe9tC,EAAMU,YAASmG,MAcxC2nC,GARiB,SAAChwC,GAC/B,OACE,kBAACgR,GAAW,KACV,kBAAC,GAAsBhR,KC3RvBiwC,GAAoBrwC,kBAAOoR,GAAPpR,CAAmB,mDAwE9BswC,GApEM,SAAClwC,GAAW,IAAD,EACxBkmB,EAAUze,mBACd,iBAAM,CAEJ,CACEjE,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKwqB,aAClCrsB,OAAQ,YACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,GAER,CACErjB,GAAI,iBACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKyqB,iBAClCtsB,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,GAER,CACErjB,GAAI,OACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKyK,OAClCtM,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,GAER,CACErjB,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAK0qB,aAClCvsB,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,GAER,CACErjB,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAK2qB,aAClCxsB,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B5M,MAAM,MAIV,IAGF,OACE,oCACE,kBAACopB,GAAiB,KAChB,kBAAC,GAAK,CACJ7hB,MAAO,gBAGPlI,QAASA,EACTnjB,KAAW,OAAL/C,QAAK,IAALA,OAAK,EAALA,EAAOuwC,YACbp0B,UAAU,EACViV,YAAU,EACV1B,YAAiB,OAAL1vB,QAAK,IAALA,GAAkB,QAAb,EAALA,EAAOuwC,mBAAW,WAAb,EAAL,EAAoBhjC,SAAU,EAC1C+jB,aAAW,EACXL,YAAU,EACVuf,gBAAc,EACdtf,gBAAc,EACdpD,YAAU,O,cCvEpB,mmGAAA1nB,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQA+BA,I,GAAQgI,GAAgCqiC,GAAtBhhC,GAAsBghC,GAmjBzBC,GAjjBD,SAAH,GAAyC,IAAD,cAAlCriC,SAAUsiC,OAAS,OAAQ,EACnCliC,EAAYsH,cAAZtH,QACFjN,EAAQqI,qBACRC,EAAWC,cAEjB,EAAyC7C,qBAAWgQ,MAA5Cyf,EAAQ,EAARA,SAAUznB,EAAK,EAALA,MAAO0hC,EAAW,EAAXA,YACjB97B,EAAqB5N,qBAAWsqB,MAAhC1c,iBACR,EAII5N,qBAAWC,KAHHivB,EAAW,EAAtBpuB,UACAV,EAAU,EAAVA,WAGD,EAFS,EAARC,UAEuD,GAAhD0E,EAAS,EAATA,UAAW4kC,EAAoB,EAApBA,qBAEbvwC,EAAQmH,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAO5O,QAAS,KAAI,CAAC4O,IAEjD,EAAwBpJ,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAAgD/tB,oBAAS,GAAM,mBAAxDgrC,EAAgB,KAAEC,EAAmB,KAC5C,EAAgDjrC,oBAAS,GAAM,mBAAxDkrC,EAAgB,KAAEC,EAAmB,KAE5C,EAA8BnrC,oBAAS,GAAM,mBAAtCylC,EAAO,KAAEC,EAAU,KAGpB0F,EAAS7qC,EAAS,CACvBC,QAAQ,SAAD,OAAWmI,GAClBhI,MAAOgI,GAAW2nB,EAClB7vB,QAASkJ,GACTjJ,eAAgB,CAAEiI,WAClB9H,cAAe,KAIVw9B,GAAS99B,EAAS,CACvBC,QAAQ,SAAD,OAAWmI,GAClBhI,MAAOgI,GAAW2nB,IAAgB8a,EAAOnuC,MAAQmuC,EAAOlpC,UACxDzB,QAAS6H,GACTzH,cAAe,GACfH,eAAgB,CAAEhD,IAAKiL,EAASJ,SAAUsiC,KAGrCtiC,GAAW5G,mBAChB,yBAAkB,QAAZ,EAAC08B,GAAOphC,YAAI,aAAX,EAAay0B,UAAWmZ,IAC/B,CAACxM,GAAOphC,KAAM4tC,IAGTlZ,GAAyBhwB,mBAAQ,WAAO,IAAD,IAC5C,OAAe,QAAf,EAAI08B,GAAOphC,YAAI,aAAX,EAAa20B,WAAkB,CAAEl0B,GAAe,QAAb,EAAE2gC,GAAOphC,YAAI,aAAX,EAAa20B,WAC1C,CAAEjpB,aACZ,CAAC01B,GAAOphC,KAAM0L,IAEXkpB,GAAYtxB,EAAS,CAC1BC,QAAQ,kBAAD,OAAoBmI,GAC3BlI,QAASmvB,GACTlvB,eAAgBixB,GAChBhxB,MACEgI,IACAyiC,EAAOnuC,MACRmuC,EAAOlpC,YACNm8B,GAAOphC,MACRohC,GAAOn8B,WACPouB,IAGF,GAA8DuB,IAAa,GAA7DwZ,GAAY,GAAlBpuC,KAAkC8gC,GAAe,GAA7B37B,aAE5B,GACCipC,IAAgB,GADTvZ,GAAQ,GAARA,SAAUoB,GAAO,GAAPA,QAASqM,GAAc,GAAdA,eAAgB7D,GAAiB,GAAjBA,kBAG3C35B,qBAAU,WACT8uB,EAAS,2BACLwN,GAAOphC,MAAI,IACd60B,YACAoB,WACAqM,kBACA7D,0BAEC,CACF6D,GACArM,GACApB,GACAuM,GAAOphC,KACP4zB,EACA6K,KAGD35B,qBAAU,WAAO,IAAD,IAEZqH,IACG,OAALA,QAAK,IAALA,OAAK,EAALA,EAAO1L,MACF,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOu0B,iBACF,OAALv0B,QAAK,IAALA,OAAK,EAALA,EAAOm2B,mBACA,OAANlB,SAAM,IAANA,QAAM,EAANA,GAAQn8B,aACJ,OAALkH,QAAK,IAALA,GAAsB,QAAjB,EAALA,EAAOmzB,uBAAe,WAAjB,EAAL,EAAwB7+B,OAAY,OAAL0L,QAAK,IAALA,GAAqB,QAAhB,EAALA,EAAOm2B,sBAAc,WAAhB,EAAL,EAAuB7hC,KAEtDmzB,EAAS,2BACLznB,GAAK,IACRmzB,gBAAsB,OAALnzB,QAAK,IAALA,OAAK,EAALA,EAAOm2B,oBAGxB,CAACn2B,EAAOynB,EAAUwN,KAErB,IAAMmH,GAAW3jC,mBAEjB,GAA0B7B,mBAAS,GAAE,qBAA9BsrC,GAAK,MAAEC,GAAQ,MAShBC,GAAcC,2BAAgB,CACnC5lC,QAAS,kBAAM2/B,GAAS9iC,WAGnBgpC,GAAerpC,uBAAY,WAChCqQ,YAAW,WACV84B,KACAV,GAAY,KACV,KACD,CAACU,GAAaV,IAEXa,GAAchqC,mBACnB,iBAAO,CACNO,WACO,OAANm8B,SAAM,IAANA,QAAM,EAANA,GAAQn8B,YACRkpC,EAAOlpC,WACPouB,IACCuB,GAAU50B,OACVmuC,EAAOnuC,OACPohC,GAAOphC,MACR40B,GAAU3vB,UACXm2B,aAAoB,OAANgG,SAAM,IAANA,QAAM,EAANA,GAAQj8B,gBAEvB,CAACgpC,EAAQvZ,GAAWwM,GAAQ/N,IAGvBhI,GAAQ3mB,mBAAQ,WACrB,IAAIiE,EAAO,QACS,KAAX,OAALwD,QAAK,IAALA,OAAK,EAALA,EAAOxD,QAAYA,EAAO,SACV,KAAX,OAALwD,QAAK,IAALA,OAAK,EAALA,EAAOxD,QAAYA,EAAO,iBAE9B,IAAI5I,EAAS,UAIb,MAHyB,OAAhB,OAALoM,QAAK,IAALA,OAAK,EAALA,EAAOwiC,aAAmB5uC,EAAS,aACd,OAAhB,OAALoM,QAAK,IAALA,OAAK,EAALA,EAAOwiC,aAAmB5uC,EAAS,YAEjC,GAAN,OAAU4I,EAAI,aACG,KAAX,OAALwD,QAAK,IAALA,OAAK,EAALA,EAAOxD,QAAmB,OAALwD,QAAK,IAALA,OAAK,EAALA,EAAOo+B,aAAc,IAAIqE,OAAc,OAALziC,QAAK,IAALA,OAAK,EAALA,EAAO1L,IAAE,OAC9C,KAAX,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOxD,MAAU,YAAQ5I,EAAM,KAAM,MACtC,CAACoM,IAEEsoB,GAAU/vB,mBAAQ,oBAAa,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,WAAS,CAACtoB,IAC3C8O,GAAQvW,mBAAQ,WACrB,IAAIohC,EAAQ,EAER+I,EAAmB,EACvB,GAAItxC,IAAc,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOiN,QAAS,EAAG,CAAC,IACV,EADS,eACdjN,GAAK,IAAtB,2BAAwB,CAAC,IAAD,YAAfm4B,EAAI,QACZpvB,QAAQyX,IAAI,CAAE2X,SACd,MAAyDA,EAAjDG,gBAAQ,MAAG,EAAC,EAAE5a,EAAmCya,EAAnCza,MAAO+hB,EAA4BtH,EAA5BsH,YAAsBjoB,EAAM2gB,EAAf9D,QAC1CkU,GAASjQ,GAAgB,OAAL5a,QAAK,IAALA,OAAK,EAALA,EAAOgiB,QAAQ,IACnC,IAAI+I,EAAiBvR,GAAwB,EAAduI,EAC/B,GAAM1xB,KAAampB,GAAS,CAC3B,IAAM7C,EAAU7c,GAAQ,GAExB,IAAK6c,EAAS,SAEdA,EAAQjZ,SAAQ,SAACmZ,EAAQzuB,GACxB,MAAqCyuB,GAAU,GAAvCle,EAAK,EAALA,MAAgBoe,EAAQ,EAAjBve,QAETwyB,EAASjU,EAASC,WAAW,QAC7BiU,EAAWlU,EAASC,WAAW,UAErC,IAAKgU,GAAWC,IACF,mBAAVtyB,EAAJ,CAEA,IAAM2C,EAAM3C,EAAMhD,QAAQ,eAAgB,IAAM,IAE5CtF,IACC46B,IACHF,GAAiBzvB,OAKrBs4B,GAAoBpa,GACJ,QADW,EACxBuR,SAAa,aAAb,EAAe/I,QAAQ,KAClB,QAAJ,EAAAvH,SAAI,aAAJ,EAAMza,QACgD,QAD3C,GACP,QAAJ,EAAAya,SAAI,aAAJ,EAAMza,SAAuC,GAAzB,QAAJ,EAAAya,SAAI,aAAJ,EAAMwH,qBAA4B,YAAI,aAAvD,EAA0DD,QACzD,MAEG,QADH,EACDvH,SAAI,aAAJ,EAAMG,WAET,8BAED,OAAIvqB,GAEF,kBAAC,QAAI,CACJ1B,MAAO,CAAEuiB,IAAK,UACdhc,eAAe,SACf5G,WAAW,UAEX,kBAAC,IAAI,CAACvM,EAAE,OAAOK,MAAI,aAGnB,kBAAC,IAAI,CAACL,EAAE,OAAOK,MAAI,EAACF,OAAK,EAACC,aAAW,OAClCiB,KAAUC,SAASwnC,IAEtB,kBAAC,IAAI,CAAC9oC,EAAE,OAAOK,MAAI,EAACK,MAAOe,EAAM4P,WAAU,IACxChQ,KAAUC,SAASuwC,KAKnB,WAAN,OAAkBxwC,KAAUC,SAASwnC,IAGtC,MAAM,WAAN,OAAkBznC,KAAUC,SAAS,MACnC,CAACf,EAAO+N,GAAU7M,EAAM4P,UAAWomB,KAEhCqa,GAASpqC,mBACd,kBACCyH,GAAyB,KAAX,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOxD,MACb,CACA,CACClI,GAAI,QACJsuC,UACC,kBAAC,GAAK,eACL1jB,MAAM,QACNwF,KAAMA,EACNC,QAASA,GACL4d,MAKP,CACCjuC,GAAI,WACJsuC,UACC,kBAAC,GAAQ,eAACjO,gBAAiBA,IAAqB4N,MAIlD,CACCjuC,GAAI,UACJsuC,UACC,kBAAC,GAAO,iBACHL,GAAW,CACfpjC,SAAUA,GACVmpB,QAASA,GACT8T,SAAUA,GACVC,QAASA,EACTC,WAAYA,EACZlD,eAAsB,OAAN4I,QAAM,IAANA,OAAM,EAANA,EAAQnuC,UAK3B,CACA,CACCS,GAAI,UACJsuC,UACC,kBAAC,GAAO,iBACHL,GAAW,CACfpjC,SAAUA,GACVmpB,QAASA,GACT8T,SAAUA,GACVC,QAASA,EACTC,WAAYA,EACZlD,eAAsB,OAAN4I,QAAM,IAANA,OAAM,EAANA,EAAQnuC,YAK/B,CACCmM,EACA0kB,EACA6d,GACA5N,GACAx1B,GACAmpB,GACA+T,EACA2F,EAAOnuC,OAIHgvC,GAAa5pC,uBAClB,SAAC6pC,GACAX,GAASW,GACT7mC,OAAOC,eAAeC,QAAQ,WAAD,OAAYoD,GAAWujC,KAErD,CAACvjC,IAGIwjC,GAAc9pC,sBAAW,uBAAC,uGACHgkC,GAAmB19B,GAAS,KAAD,EAA7C,GAA6C,WAA3CyjC,EAAK,EAAT1uC,IACE,CAAD,wCAASsG,EAAS,QAAD,OAASooC,KAAQ,gCACpCp9B,EAAiB,mCAAiC,2CACvD,CAAChL,EAAU2E,EAASqG,IAQjBq9B,GAAqBhqC,sBAAW,uBAAC,+EACtC8oC,GAAoB,GAAM,2CACxB,IAEGmB,GAAqB3qC,mBAAQ,WAClC,OAAuB,KAAX,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOxD,OAAe8rB,GA6BzB,KA5BH,kBAAC,QAAI,CAACvpB,IAAI,qBAORhC,GACA,kBAACwB,EAAA,EAAM,CACN2gB,MAAO,aACPzgB,SAAS,+BACTE,QAAS,kBAAMokC,OAEd,cAIFpB,GACA,kBAACpjC,EAAA,EAAM,CACN2gB,MAAO,WACPzgB,SAAS,UACTE,QAAS,kBAAMskC,MACf1xC,MAAOe,EAAM4P,WAEZ,eAKH,CACF6gC,GACA/iC,EACAsoB,GACA2a,GACA3wC,EACAyK,EACA4kC,IAGKwB,GAAgB5qC,mBACrB,kBACO,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOxD,OAAwB,KAAX,OAALwD,QAAK,IAALA,OAAK,EAALA,EAAOxD,MAChB,CAEJ,kBAAC+B,EAAA,EAAM,CACN7M,KAAK,QACLqN,IAAI,OACJxN,MAAOe,EAAM4P,UACbwI,SAAO,EACPgjB,GAAG,OACHjwB,MAAO,CACN8T,QAAU2wB,GAAY,EAAJ,EAClB1pB,OAAS0pB,GAAiB,UAAT,OACjB1wB,cAAgB0wB,GAAiB,GAAT,QAEzBzjC,SAAS,cACTE,QAAS,WACR,OAAIujC,GAAQ,KAAO,EAAU,KACtBW,GAAWX,GAAQ,OAE1B,mBACCS,GAAO7jC,KAAI,WAAS5H,GAAC,IAAP5C,EAAE,EAAFA,GAAE,OAClB,kBAACiK,EAAA,EAAM,CACN7M,KAAK,QACLyL,UAAW+kC,KAAUhrC,EAAI,YAASiC,EAClC5H,MAAOe,EAAM4P,UACbC,SACS,YAAP7N,KAA0B,OAAL0L,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAC3Bp3B,GAAS8wC,KAAUhrC,EAEtBwT,QAASw3B,KAAUhrC,EACnB6H,IAAG,UAAKzK,EAAE,YAAI4C,GACdyH,QAAS,kBAAMkkC,GAAW3rC,KAEzB5C,OAED,CACF,kBAACiK,EAAA,EAAM,CACN7M,KAAK,QACLqN,IAAI,QACJxN,MAAOe,EAAM4P,UACbC,SAAqB,IAAV+/B,MAAqB,OAALliC,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAAep3B,EACjDsZ,SAAO,EACPyV,GAAG,OACH1iB,MAAO,CACN8T,QACY,IAAV2wB,MAAqB,OAALliC,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAAep3B,OACpC+H,EACC+oC,KAAUS,GAAOtkC,OAAS,GAAMskC,GAAOtkC,QACtB,IAAlBskC,GAAOtkC,OAEP,EADA,EAEJma,OACY,IAAV0pB,MAAqB,OAALliC,QAAK,IAALA,OAAK,EAALA,EAAOwoB,aAAep3B,OACpC+H,EACC+oC,KAAUS,GAAOtkC,OAAS,GAAMskC,GAAOtkC,QACtB,IAAlBskC,GAAOtkC,OAEP,UADA,OAEJmT,cACE0wB,KAAUS,GAAOtkC,OAAS,GAAMskC,GAAOtkC,QACtB,IAAlBskC,GAAOtkC,OAEJ,GADA,QAGLI,SAAS,eACTE,QAAS,WACR,OAAIujC,GAAQ,IAAMS,GAAOtkC,OAAe,KACjCwkC,GAAWX,GAAQ,QAlE5B,OAsEJ,CAACW,GAAYzxC,EAAO8wC,GAAOS,GAAQrwC,EAAM4P,UAAWlC,IAG/C41B,GAAWr9B,mBAAQ,WACxB,OAAOqB,IAAEkD,MACH,OAALkD,QAAK,IAALA,OAAK,EAALA,EAAOg6B,YAAa,IACpB,YAAU,SAAPC,WAA+B,OAALj6B,QAAK,IAALA,OAAK,EAALA,EAAO41B,eAEnC,CAAC51B,IAEJ,OAAa,OAANi1B,SAAM,IAANA,QAAM,EAANA,GAAQn8B,YACdkpC,EAAOlpC,WACPouB,IACCuB,GAAU50B,OACVmuC,EAAOnuC,OACPohC,GAAOphC,MACR40B,GAAU3vB,UACV,kBAACqF,GAAA,EAAO,MAER,oCACEgB,IACA,kBAAC,QAAI,CACJ/B,WAAW,SACXxM,MAAM,OACNgN,OAAO,OACPrL,gBAAiBD,EAAMW,iBAEvB,kBAAC,IAAI,CAAC1B,MAAOe,EAAMG,YAAa1B,QAAM,EAACG,MAAI,2BAK7C,kBAACk0B,GAAA,EAAK,CAACV,KAAMod,EAAkBnd,QAASod,GACvC,kBAAC,EAAoB,KACpB,kBAAC92B,GAAA,EAAI,KACJ,kBAAC,GAAY,CAACo2B,YAAkB,OAALrhC,QAAK,IAALA,OAAK,EAALA,EAAOqhC,iBAIrC,kBAACjc,GAAA,EAAK,CAACV,KAAMkd,EAAkBjd,QAASkd,GACvC,kBAAC,EAAoB,CAAClrC,aAAc,CAAC,aAAc,SAClD,kBAACsU,GAAA,EAAI,KACJ,kBAAC,GAAiB,CAAC1L,QAASA,EAAS/D,QAAc,OAALwE,QAAK,IAALA,OAAK,EAALA,EAAOxE,aAIxD,kBAACsG,GAAW,CAAC3E,UAAU,YACtB,kBAAC,GAAc,CACdsI,GAAG,OACHmZ,WAAsB,IAAVsjB,GACZriB,WACyB,aAAlB,OAAN8iB,SAAM,IAANA,IAAe,QAAT,EAANA,GAAST,WAAM,WAAT,EAAN,EAAiB5tC,IACd,WACAotC,GAAY,GACZY,MAEA,kBAAM3d,GAAQ,IAElBjF,iBACyB,aAAlB,OAANijB,SAAM,IAANA,IAAe,QAAT,EAANA,GAAST,WAAM,WAAT,EAAN,EAAiB5tC,SAAmB6E,EAAY,UAEjDsmB,kBACyB,aAAlB,OAANkjB,SAAM,IAANA,IAAe,QAAT,EAANA,GAAST,WAAM,WAAT,EAAN,EAAiB5tC,IAAmBhC,EAAM+P,UAAOlJ,EAElDwmB,iBACyB,aAAlB,OAANgjB,SAAM,IAANA,IAAe,QAAT,EAANA,GAAST,WAAM,WAAT,EAAN,EAAiB5tC,IAAmB,UAAY,aAEjD4qB,MAAOA,GACPK,SAAUzQ,GACVsQ,gBAAc,EACdE,cAAY,EACZP,eACiB,KAAX,OAAL/e,QAAK,IAALA,OAAK,EAALA,EAAOxD,MAAU,oBAA0B,OAAVpE,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,UAAa,IAE3D2rB,aAAW,EACXF,0BAAwB,EACxBD,mBACCkkB,GAAqB,CAACA,SAAsB/pC,IAG7B,KAAX,OAAL6G,QAAK,IAALA,OAAK,EAALA,EAAOxD,MACP,oCACC,kBAAC,QAAI,CAACW,UAAU,YACf,kBAAC,IAAI,CAACuwB,GAAG,SAASvc,KAAM,EAAGngB,OAAK,EAACE,MAAI,mBAGrC,kBAAC,IAAI,CAACigB,KAAM,EAAGjgB,MAAI,EAACK,MAAOe,EAAM4P,WAC1B,OAALlC,QAAK,IAALA,OAAK,EAALA,EAAOk6B,aAGPtE,KAAatN,IACf,kBAAC,QAAI,CAACpkB,GAAG,OAAOtT,MAAO,EAAGoT,eAAe,iBACxC,kBAAC,IAAI,CAAChT,OAAK,EAAC08B,GAAG,SAASvc,KAAM,EAAGjgB,MAAI,uBAGrC,kBAAC,IAAI,CAACigB,KAAM,EAAGjgB,MAAI,EAACK,MAAOe,EAAM4P,WACvB,OAAR0zB,SAAQ,IAARA,QAAQ,EAARA,GAAU3yB,eAKZ,KACJ,kBAAC,QAAI,CAACiB,GAAG,OAAOtT,MAAO,EAAGoT,eAAe,UACvCm/B,KAGK,OAANR,SAAM,IAANA,IAAe,QAAT,EAANA,GAAST,WAAM,WAAT,EAAN,EAAiBU,YAAa,KAEpB,IAAVV,IACA,kBAAC,QAAI,CACJjiB,cAAe,CACd,iBACA,iBACA,iBACA,OAED7iB,WAAW,aACXxM,MAAO,EACP6M,MAAO,CAAEuiB,IAAK,QACd2K,GAAG,QAMH,kBAAC,GAAW,CACXmM,SAA0B,KAAX,OAAL92B,QAAK,IAALA,OAAK,EAALA,EAAOxD,MACjB4mC,eAAgC,KAAX,OAALpjC,QAAK,IAALA,OAAK,EAALA,EAAOxD,MAAa,EAAI,Q,cCzkB/C,mmGAAAtF,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAkBA,IAAM43B,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAM3B0P,GAA2BymB,GAAhB1mB,GAAgB0mB,GAE7Bwc,GAAa,SAACvyC,GACnB,IAAM8J,EAAWC,cACXvI,EAAQqI,qBACd,EAA4B3C,qBAAWC,KAA/BG,EAAU,EAAVA,WAAY8C,EAAG,EAAHA,IACpB,EACClD,qBAAWsqB,MADJ1c,EAAgB,EAAhBA,iBAAkBwhB,EAAgB,EAAhBA,iBAAkBD,EAAgB,EAAhBA,iBAE5C,EAA+B/uB,GAAc,GAArCoD,EAAO,EAAPA,QAASgC,EAAS,EAATA,UAEjB,EASI1M,GAAS,GARZ0lB,EAAU,EAAVA,WAAW,EAAD,EACV8sB,iBAAS,OAAQ,EACjBxqC,EAAS,EAATA,UACA+mB,EAAU,EAAVA,WACAH,EAAgB,EAAhBA,iBACAC,EAAgB,EAAhBA,iBAAiB,EAAD,EAChBf,kBAAU,OAAO,MACjB2kB,sBAAc,OAAQ,EAGjBC,EAAWF,EAAY,YAAc,SAG3C,EAAkC1sC,oBAAS,GAAM,mBAA1C6sC,EAAS,KAAEC,EAAY,KAC9B,EAAwB9sC,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAAwC/tB,mBAAS,MAAK,mBAA/C+sC,EAAY,KAAEC,EAAe,KAiBpC,EAfezsC,EAAS,CACvBC,QAASosC,EACTnsC,QAASgI,GACT/H,eAAgB,CACfkF,KAAM,EACNhB,QAAS8nC,OAAYnqC,EAAYqC,QAAWrC,EAC5C3F,SAAU8vC,GAEN9nC,GACS,OAAVpD,QAAU,IAAVA,OAFAe,EAEAf,EAAY5E,SAEf0H,OAED3D,KAAMgsC,GAAkBzqC,IAAcoC,KAOzB,GAJP2oC,EAAK,EAAXhwC,KACciwC,EAAQ,EAAtB9qC,aACS+qC,EAAQ,EAAjB3qC,QACW4qC,GAAQ,EAAnBlrC,UAoBD,GAjBiB3B,EAAS,CACzBC,QA7BgB,gBA8BhBC,QAASgI,GACT/H,eAAgB,CACfkF,KAAM,EACNhB,QAAS8nC,OAAYnqC,EAAYqC,EACjCN,OAED3D,KACCiG,EAAY,IACX+lC,GACDD,GACAxqC,IACEyqC,IAAmBS,KAAaH,KACjC3oC,KAQa,GAJT+oC,GAAK,GAAXpwC,KACcqwC,GAAQ,GAAtBlrC,aACSmrC,GAAQ,GAAjB/qC,QACWgrC,GAAQ,GAAnBtrC,UAGD,GAA+D+qC,GAAS,GAAE,MAAlEvoC,KAAM+oC,QAAK,OAAG,GAAE,GAASC,GAAM,GAAb3wB,MAC1B,IAD0D,GAAjB2U,QACsB2b,IAAS,IAAE,MAAlE3oC,KAAMipC,QAAK,OAAG,GAAE,GAASC,GAAM,GAAb7wB,MAEpB2G,IAFoD,GAAjBgO,QAEjB,SAACmc,GACxBA,EAAMnqB,oBAiBDoqB,GAAuBzrC,uBAAY,WACxC2qC,EAAgB,MAChBhpC,EAAS,gBAAD,OAAiB+oC,MACvB,CAACA,EAAc/oC,IAEZ+pC,GAAgB1rC,sBAAW,wCAChC,WAAOwrC,EAAOllC,GAAO,8EAYjB,OAXH+a,GAAgBmqB,GACVG,IAAahrC,IAAEkD,KAAKunC,IAAO,SAACrkC,GAAK,OAAKA,EAAM1L,KAAOiL,KACnDjE,EAAOspC,EAAWP,GAAQE,GAC1BnrC,EAAUwrC,EAAWb,EAAWI,GAEhCU,EAAS,YAAOvpC,GACtB1B,IAAE+B,OAAOkpC,GAAW,SAAC7kC,GAAK,OAAKA,EAAM1L,KAAOiL,KAE5CnG,EAAQ,CACPua,OAAQ4vB,EAAiBiB,GAASF,IAAU,EAC5ChpC,KAAMupC,IACJ,SAEG1kC,GAAY,CAAE7L,GAAIiL,IAAW,KAAD,sCAClC,qDAhB+B,GAiBhC,CAAC8kC,GAAOE,GAAOR,EAAUI,GAAUZ,EAAgBiB,GAAQF,KAGtDQ,GAAc7rC,sBAAW,wCAC9B,WAAOwrC,EAAOllC,GAAO,gFAO2B,OAN/C+a,GAAgBmqB,GAAO,SAEtBf,EAAankC,GACb4nB,EAAiB,kBAAD,OAAmB5nB,EAAO,QACpCqlC,IAAahrC,IAAEkD,KAAKunC,IAAO,SAACrkC,GAAK,OAAKA,EAAM1L,KAAOiL,KACnDjE,EAAOspC,EAAWP,GAAQE,GAC1BnrC,EAAUwrC,EAAWb,EAAWI,GAAS,EAAD,OAEvB/jC,GAAU,CAAE9L,GAAIiL,IAAW,KAAD,EAA3C+qB,EAAQ,OAERua,EAAS,CAAIva,GAAQ,mBAAKhvB,IAChClC,EAAQ,CACPua,MAAOkxB,EAAUxmC,OACjB/C,KAAMupC,IAEPnB,GAAa,GACbtc,EAAiB,cAAD,OACDkD,EAASh2B,GAAE,+BAAuBiL,EAAO,MACtD,kDAEFpF,QAAQC,MAAM,EAAD,IACbwL,EAAiB,GAAD,cAAa,0DAE9B,qDAzB6B,GA0B9B,CACCy+B,GACAN,EACAQ,GACAJ,GACAv+B,EACAwhB,EACAD,IAIInQ,GAAUze,mBACf,iBAAM,CACL,CACCjE,GAAI,KACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,IAAI,CAAC1lB,QAAM,EAACI,UAAQ,GACnBslB,EAAIniB,KAGPsgB,OAAQ,IACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAG5B,CACCjwB,GAAI,eACJT,KAAM,SAAC4iB,GACN,IAAQ2T,EAAsC3T,EAAtC2T,SAAUF,EAA4BzT,EAA5ByT,UAAW6a,EAAiBtuB,EAAjBsuB,aAE7B,OACC,kBAAC,IAAI,CAACh0C,QAAM,EAACI,UAAQ,GACnB+4B,GAAaE,EAAQ,UAChBF,GAAa,IAAE,OAAGE,GAAYF,EAAY,IAAM,IAAE,OACrDE,GAAY,KAEZ2a,IAINnwB,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAG5B,CACCjwB,GAAI,qBACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,IAAI,CAACtlB,UAAQ,EAACJ,QAAM,GAChB,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKwT,mBAAkB,IAAM,OAAHxT,QAAG,IAAHA,OAAG,EAAHA,EAAK0T,oBAGlCvV,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,cACJT,KAAM,SAAC4iB,GAAG,OACT,kBAAC,IAAI,CAAC1lB,QAAM,aAAKwoC,KAAO9iB,EAAIuuB,aAAaxL,OACxC,iBAIF5kB,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG3B,CACCjwB,GAAI,YACJT,KAAM,SAAC4iB,GACN,OACC,kBAAC,IAAI,CAACzlB,OAAK,cAAMkB,KAAUC,UACtB,OAAHskB,QAAG,IAAHA,OAAG,EAAHA,EAAK6R,SAA8B7R,EAAI0Z,UAAxB1Z,EAAImjB,kBAIvBhlB,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG3B,CACC5Z,QAAS,SAAC7Z,GACT,IAAIkP,EAAQlP,EAAM4qB,KAAKjF,IAAI0F,SAE3B,OACC,kBAAC,GAAc,CAAC7nB,GAAG,WAWlB,kBAACiK,EAAA,EAAM,CACN7M,KAAK,QACLgZ,SAAO,EACPwU,MAAM,aACNzgB,SAAS,WACTE,QAAS,SAAC6K,GAAC,OAAKgN,EAAW1lB,EAAM4qB,KAAKjF,IAAKjN,MAE3Ci6B,IAAc3yC,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,GACtC,kBAAC6J,GAAA,EAAO,CAACC,QAAM,IAEf,kBAACG,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPwU,MAAM,aACNzgB,SAAS,SACTE,QAAS,SAAC6K,GAAC,OAAKs7B,GAAYt7B,EAAGxJ,EAAM1L,OAGvC,kBAACiK,EAAA,EAAM,CACN7M,KAAK,QACLgZ,SAAO,EACPwU,MAAM,eACN3tB,MAAOe,EAAMU,OACbyL,SAAS,aACTE,QAAS,SAAC6K,GAAC,OAAKm7B,GAAcn7B,EAAGxJ,EAAM1L,SAK3CsgB,OAAQ,GACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAG5B,CACCjyB,EAAM4P,UACN5P,EAAMU,OACNywC,EACAjtB,EACAsuB,GACAH,KAIF,OAAIpB,GAAqC,KAAb,OAALgB,SAAK,IAALA,QAAK,EAALA,GAAOlmC,SAAkC,KAAb,OAALgmC,SAAK,IAALA,QAAK,EAALA,GAAOhmC,QAIpD,oCACC,kBAAC+mB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC3B,kBAAC1Z,GAAA,EAAI,CAACvN,SAAS,SACd,kBAAC,IAAO,CAACxM,MAAI,EAACH,QAAM,EAACQ,MAAOe,EAAMU,QAAO,sBAGzC,kBAAC,IAAO,CAACyS,GAAG,OAAO1U,QAAM,+CAGzB,kBAAC,IAAI,CAACA,QAAM,yFAIZ,kBAAC,QAAI,CAAC0U,GAAG,QACR,kBAAClH,EAAA,EAAM,CACNE,SAAS,QACTlN,MAAOe,EAAMU,OACb2L,QAAS,kBAAMgmB,GAAQ,KAAO,WAI/B,kBAACpmB,EAAA,EAAM,CACNhN,MAAOe,EAAMwB,QACb2K,SAAS,UACTE,QAAS+lC,IAAqB,eAOhCpB,EAmBD,kBAAC,GAAK,CACLpkB,MAAM,aACNW,WAAYA,EACZF,iBAAiB,mBACjBD,iBAAkBA,EAClBwC,YAAU,EACVG,YAAayhB,EACb1hB,aAAa,EACbvuB,KAAMwwC,GACNrtB,QAASA,GACTiuB,YAAU,EACVnsC,UAAWkrC,GACXxjB,WAAY8jB,GACZ9tB,WAAYA,IA/Bb,kBAAC,GAAK,CACL0I,MAAOqkB,EAAiB,iBAAmB,SAC3C3kB,WAAYA,EACZD,UAAQ,EACRkB,WAAYA,EACZF,iBAAkBA,EAClBD,iBAAkBA,EAClBwC,YAAU,EACVG,YAAakhB,EAAiBW,GAAWJ,EACzC1hB,aAAa,EACbvuB,KAAM0vC,EAAiBgB,GAAQF,GAC/BrtB,QAASA,GACTiuB,YAAU,EACVnsC,UAAWyqC,EAAiBa,GAAWJ,GACvCxjB,WAAY+iB,EAAiBiB,GAASF,GACtC9tB,WAAYA,KAlDR,MAyEM,YAAC1lB,GAAK,OAAK,kBAAC,GAAeA,I,cC/X1C,mmGAAAoG,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAeA,I,SAoKeguC,GApKA,WACb,IAAM5yC,EAAQqI,qBACRC,EAAWC,cACjB,EACE7C,qBAAWgQ,MADLyf,EAAQ,EAARA,SAAUD,EAAgB,EAAhBA,iBAAkBgI,EAAgB,EAAhBA,iBAEpC,EAAiDx3B,qBAAWC,KAApDG,EAAU,EAAVA,WAAYN,EAAU,EAAVA,WAAYF,EAAO,EAAPA,QAASsD,EAAG,EAAHA,IACjCu0B,EAAwBz3B,qBAAWgQ,MAAnCynB,oBAeR,EAbqBt4B,EAAS,CAC5BC,QAAS,cACTC,QAAS6uB,GACTzuB,cAAe,GACfF,MAAO2D,IAAQ9C,EACfd,eAAgB,CACd+0B,eAAe,EACfK,mBAAmB,EACnBxxB,MACAgC,IAAe,OAAV9E,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,SAEnB9D,WAAY,CAAC,KAAM,UAEuB,GAApC7D,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAE4B,GAAVjF,GAAQ,IAAhCyH,KAAMi0B,OAAQ,MAAG,GAAE,EAE3B,EAAoC34B,oBAAS,GAAM,mBAA5CuuC,EAAU,KAAEC,EAAa,KAE1BC,EAAkB9sC,mBAAQ,WAC9B,OAAIg3B,IAAoB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUlxB,QAAS,EAC1BkxB,EAASzwB,KAAI,gBAAGiI,EAAE,EAAFA,GAAImH,EAAG,EAAHA,IAAKse,EAAW,EAAXA,YAAa9E,EAAQ,EAARA,SAAQ,MAAQ,CAC3DpzB,GAAIyS,EACJqH,MAAOF,GAAOse,GAAe9E,MAE1B,OACN,CAAC6H,IAEE/Y,EAAavd,uBACjB,SAACwd,EAAKjN,GACJA,EAAE8Q,kBACFmN,EAAS,eAAQ,OAAHhR,QAAG,IAAHA,OAAG,EAAHA,EAAK0F,WACnBvhB,EAAS,UAAD,OAAW6b,EAAI0F,SAAS7nB,OAElC,CAACsG,EAAU6sB,IAGPsE,EAAiB9yB,sBAAW,wCAChC,WAAO+uB,GAAO,gFAQqB,OAPjCwH,GAAiB,GACL5oB,GAAcohB,GAAW,IAA7B1zB,GAEO,QADTqD,EAAQ,eAAQC,UACP,IAARD,YAAU+yB,OACjB5yB,EAAWH,GACX6vB,EAAiB5gB,GACjB6oB,EAAoBlyB,GACdysB,EAAQjF,KAAKC,eAAe,EAAD,QAEHjlB,GAAY,CACxC5L,MAAO,CACLX,SAAoB,OAAV4E,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,SACtBy2B,mBAA8B,OAAV7xB,QAAU,IAAVA,OAAU,EAAVA,EAAY8xB,UAChCC,kBAA6B,OAAV/xB,QAAU,IAAVA,OAAU,EAAVA,EAAYgyB,SAC/B5tB,KAAgC,KAAhB,OAAVpE,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAAkB,EAAI,EACxCqC,IAAKmqB,EACL9uB,MACAmvB,gBAA2B,OAAVjyB,QAAU,IAAVA,OAAU,EAAVA,EAAY9D,GAC7BkH,QAAmB,OAAVpD,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,WAEtB,KAAD,YAXU+D,EAAO,EAAXjL,GAaRsG,EAAS,CACPuxB,SAAS,iBAAD,OAAmBvlB,EAAS,YAAIrH,EAAO,YAAIA,EAAO,MAC1D9I,OAAQq5B,YAAmB,CACzBhI,WAAY,IACXjjB,aACF,4CACJ,mDA9B+B,GA+BhC,CACEzM,EACAwC,EACAM,EACAtD,EACA4vB,EACAiI,EACAD,EACA13B,IAIEwtC,EAAgBrsC,sBAAW,uBAAC,2FAEC,OADjCmsC,GAAc,GACRpb,EAAQjF,KAAKC,eAAe,EAAD,OACAjlB,GAAY,CAC3C5L,MAAO,CACLX,SAAoB,OAAV4E,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,SACtBy2B,mBAA8B,OAAV7xB,QAAU,IAAVA,OAAU,EAAVA,EAAY8xB,UAChCC,kBAA6B,OAAV/xB,QAAU,IAAVA,OAAU,EAAVA,EAAYgyB,SAC/B5tB,KAAgC,KAAhB,OAAVpE,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAAkB,EAAI,EACxCqC,IAAKmqB,EACL9uB,MACAmvB,gBAA2B,OAAVjyB,QAAU,IAAVA,OAAU,EAAVA,EAAY9D,GAC7BkH,QAAmB,OAAVpD,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,WAEtB,KAAD,WAXU+pC,EAAU,EAAdjxC,GAaO,QADTqD,EAAQ,eAAQC,UACP,IAARD,YAAU+yB,OACjB5yB,EAAWH,GAEXytC,GAAc,GAEdxqC,EAAS,UAAD,OAAW2qC,IAAc,4CAChC,CAACntC,EAAYwC,EAAUhD,EAASE,EAAYoD,IAEzCwkB,EAAmBnnB,mBAAQ,WAC/B,OAAO4sC,EACL,kBAAChnC,GAAA,EAAO,CAACC,QAAM,EAACiT,OAAQ/e,EAAM4P,UAAWoP,OAAQhf,EAAMwB,UAEvD,cAED,CAACqxC,EAAY7yC,EAAM4P,UAAW5P,EAAMwB,UAEvC,OACE,kBAACgO,GAAW,MACM,OAAfujC,QAAe,IAAfA,OAAe,EAAfA,EAAiBhnC,QAAS,GACzB,kBAAC,GAAK,CACJsgB,UAAQ,EACRO,MAAM,kBACNQ,iBAAkBA,EAClBC,iBAAiB,mBACjBE,WAAYylB,EACZzjB,SAAUwjB,EACVpjB,WAAS,EACTZ,SAAS,QACTS,WAAS,EACTE,gBAAc,EACdD,YAAU,EACVG,YAAU,EACVd,YAAa2K,EACbjzB,WAA0B,OAAfusC,QAAe,IAAfA,OAAe,EAAfA,EAAiBhnC,QAAS,GAAKvF,EAC1CqpB,iBAAe,IAGnB,kBAAC,EAAoB,CAACxrB,aAAc,CAAC,cAAe,SAClD,kBAAC,GAAU,CACT6uC,oBAAmC,OAAfH,QAAe,IAAfA,OAAe,EAAfA,EAAiBhnC,QAAS,GAAKvF,EACnD0d,WAAYA,EACZmJ,iBAAiB,mBACjBD,iBAAkBA,EAClBG,WAAYylB,EACZ1mB,YAA2B,OAAfymB,QAAe,IAAfA,OAAe,EAAfA,EAAiBhnC,QAAS,KAI1C,kBAAC,EAAoB,CAAC1H,aAAc,CAAC,cAAe,SAClD,kBAAC,GAAU,CACT6uC,oBAAmC,OAAfH,QAAe,IAAfA,OAAe,EAAfA,EAAiBhnC,QAAS,GAAKvF,EACnDyqC,gBAAc,EACd3kB,YAAU,EACVpI,WAAYA,OCrJPivB,GAnBG,SAAH,GAAwD,IAAD,IAAjDt6B,cAAM,OAAQ,MAAE7W,UAAE,MAAG0wB,0BAAc,EAAEzzB,EAAK,EAALA,MAClDe,EAAQqI,qBAEd,OACE,kBAAC,QAAI,CAACoE,IAAKzK,EAAI1D,MAAO,EAAGoT,eAAe,UACtC,yBACEvG,MAAO,CACL7M,MAAO,OACPgN,OAAQ,OACRxK,aAAc,MACdsyC,OAAO,aAAD,OAAepzC,EAAM+f,aAC3B9f,iBACa,IAAX4Y,EAAkB5Z,GAASe,EAAMwB,QAAUvC,GAASe,EAAMU,Y,cChBtE,mmGAAAkE,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAkBA,IAAMyuC,GAAe,SAAH,GAAkC,IAA5BnyC,EAAQ,EAARA,SAAUkJ,EAAU,EAAVA,WACxBkpC,EAAkB5tC,qBAAWC,KAA7B2tC,cAER,OACE,kBAAC,GAAS,CACRtxC,GAAId,EACJ2X,QACkB,IAAfzO,IAAwBkpC,EAAcpyC,KACX,IAA5BoyC,EAAcpyC,MA2OhBqyC,GAAan1C,UAAOC,IAAG,uIAQvBm1C,GAAap1C,kBAAOmB,IAAPnB,CAAY,0FAMzBq1C,GAAiBr1C,kBAAOqC,QAAPrC,CAAY,wMAMb,YAAQ,SAAL4B,MAAkBC,mBACrB,YAAQ,SAALD,MAAkB+f,aAAe,UACvC,YAAQ,SAAL/f,MAAkBc,cAAgB,UAGzC4yC,GA9PD,WACZ,IAAM1zC,EAAQqI,qBACRC,EAAWC,cAEXwlC,EAAcroC,qBAAWC,KAC/B,GAAsC,OAAXooC,QAAW,IAAXA,OAAW,EAAXA,EAAajoC,aAAc,GAA9C8C,EAAG,EAAHA,IAAKsC,EAAS,EAATA,UAEb,EAA0CrG,EAAS,CACjDC,QAAS,QACTC,QAAStD,EACTuD,eAAgB,CAAE4D,IAAmB,IAAdsC,OAAkBrE,EAAY+B,GACrD3D,MAAO8oC,EAAYuF,gBAJb/xC,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAOzB,EAAyDnF,GAAQ,GAAE,IAA3DyH,YAAI,MAAG,GAAE,EAAEqY,EAAK,EAALA,MAAM,EAAD,EAAEsyB,aAAK,MAAG,GAAE,MAAEC,iBAAS,MAAG,GAAE,EAE9ChP,EAAU,SAAC15B,GACf,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,cACT,QACE,MAAO,kBAIPqkB,EAAWvmB,EAAKwD,KAAI,SAACqnC,GAAI,MAAM,CACnC7xC,GAAI6xC,EAAK7xC,GACT4qB,MAAM,GAAD,OAAKinB,EAAKjc,UAAS,YAAIic,EAAK/b,UACjC7K,SAAU4mB,EAAK3yC,SACf2oB,SAAU,CAAE3oB,SAAU2yC,EAAK3yC,UAC3BiL,SAAUy4B,GAAY,OAAJiP,QAAI,IAAJA,OAAI,EAAJA,EAAM3oC,YAAa,OAGjC4oC,EAAcntC,uBAClB,SAACgsB,GAAY,IAAD,EAEV,OAD4D,QAA3C,EAAArrB,IAAEkD,KAAKmpC,GAAO,SAACI,GAAI,OAAKA,EAAK/xC,KAAO2wB,YAAO,aAA3C,EAA6CrpB,OAAQ,WAGxE,CAACqqC,IAGGjvB,EAAUze,mBAAQ,WACtB,IAAMqgC,EAAO,CACX,CACEtkC,GAAI,WACJT,KAAM,gBAAGL,EAAQ,EAARA,SAAQ,OAAO,kBAAC,IAAI,CAACrC,UAAQ,GAAEqC,GAAY,WACpDohB,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,YACJT,KAAM,gBAAGq2B,EAAS,EAATA,UAAS,OAChB,kBAAC,IAAI,CAACn5B,QAAM,EAACI,UAAQ,GAClB+4B,GAAa,WAGlBtV,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACEjwB,GAAI,WACJT,KAAM,gBAAGu2B,EAAQ,EAARA,SAAQ,OACf,kBAAC,IAAI,CAACr5B,QAAM,EAACI,UAAQ,GAClBi5B,GAAY,WAGjBxV,OAAQ,YACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACEjwB,GAAI,aACJT,KAAM,YAA+B,IAA5BL,EAAQ,EAARA,SAAUkJ,EAAU,EAAVA,WACjB,OAAO,kBAAC,GAAY,CAAClJ,SAAUA,EAAUkJ,WAAYA,KAEvDkY,OAAQ,SACRljB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAEnC,CACEjwB,GAAI,SACJT,KAAM,gBAAGoxB,EAAM,EAANA,OAAM,OAAO,kBAAC,IAAI,CAACl0B,QAAM,GAAEq1C,EAAYnhB,KAChDrQ,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAG9B,CACEjwB,GAAI,KACJT,KAAM,KACN+gB,OAAQ,KACRljB,MAAO,IAcX,OAXkB,IAAd8L,GACFo7B,EAAKvuB,KAAK,CACR/V,GAAI,MACJT,KAAM,YAAc,IAAXqH,EAAG,EAAHA,IAECU,GADahC,IAAEkD,KAAKopC,GAAW,gBAAG5xC,EAAE,EAAFA,GAAE,OAAO4G,IAAQ5G,MAC1B,IAAzBsH,KACR,OAAO,kBAAC,IAAI,CAAC7K,QAAM,GAAE6K,GAAQ,WAE/BgZ,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,KAEvBqU,IACN,CAACwN,EAAaF,EAAW1oC,IAEtBgZ,EAAa,SAACC,GAClB,IAAQjjB,IAAgB,OAAHijB,QAAG,IAAHA,OAAG,EAAHA,EAAK0F,WAAY,IAA9B3oB,SACJA,GAAUoH,EAAS,eAAD,OAAgBpH,KAGlC2gB,EnCkY0B,SAACmyB,GACjC,MAAwB1vC,mBAAS,IAAG,mBAA7B0E,EAAI,KAAEirC,EAAO,KACdC,EAAQvtC,uBAAY,WACxBstC,EAAQ,MACP,CAACA,IACE1sC,EAAUtB,mBAAQ,WACtB,MAAwB,kBAAb+tC,EACF,SAACG,EAAMC,GACZ,OAAOD,EAAKH,KAAcI,EAAKJ,IAEJ,oBAAbA,EACTA,OADF,IAGN,CAACA,IACEpqB,EAAWjjB,uBACf,SAACwd,GACC,IAAK,IAAIvf,EAAI,EAAGA,EAAIoE,EAAK+C,SAAUnH,EAAG,CACpC,IAAMyvC,EAAarrC,EAAKpE,GACxB,GAAI2C,EAAQ4c,EAAKkwB,GAAa,OAAOzvC,EAEvC,OAAQ,IAEV,CAAC2C,EAASyB,IAEN+gB,EAASpjB,uBACb,SAACwd,GACC8vB,GAAQ,SAAC72B,GACP,IAAMk3B,EAAWl3B,EAAED,MAAM,GAEzB,OADAm3B,EAASv8B,KAAKoM,GACPmwB,OAGX,CAACL,IAEGnqB,EAAWnjB,uBACf,SAACwd,GACC8vB,GAAQ,SAAC72B,GACP,IAAM6F,EAAQ2G,EAASzF,GACvB,IAAe,IAAXlB,EACF,OAAO7F,EAET,IAAMk3B,EAAWl3B,EAAED,MAAM,GAEzB,OADAm3B,EAAS1tB,OAAO3D,EAAO,GAChBqxB,OAGX,CAACL,EAASrqB,IAEZ,MAAO,CAAE5gB,OAAM2gB,QAAS,CAAEI,SAAQD,WAAUF,WAAUsqB,UmClbnCK,CAAmB,MAEtC,EAAgCjwC,oBAAS,GAAM,mBAAxCkwC,EAAQ,KAAEC,EAAW,KAEtBC,EAAe,wCAAG,qGAChBxyC,EAAY,CAChBC,MAAO0f,EAAW7Y,KACfwD,KAAI,SAAC2X,GAAG,MAAM,CAAEniB,GAAImiB,EAAIniB,GAAId,SAAUijB,EAAIjjB,aAC1CggC,QAAO,SAAC/c,GAAG,aAAKA,EAAIniB,MAA6B,QAA3B,EAAK+rC,EAAYjoC,kBAAU,aAAtB,EAAwB9D,OACtDI,KAA4B,QAAxB,EAAE2rC,EAAYjoC,kBAAU,aAAtB,EAAwB5E,WAC7B,KAAD,EACF2gB,EAAW8H,QAAQuqB,QACnBO,GAAY,GAEZ/tC,EAAa,SAAS,2CACvB,kBAXoB,mCAafumB,EAAWhnB,mBAAQ,WACvB,IAAsD,GAA5B8nC,EAAYjoC,YAAc,IAA5CoF,UACR,OAAkB,UADD,MAAG,EAAC,GAEZ,mKAEA,qIACR,CAAC6iC,EAAYjoC,aAEhB,OACE,kBAAC0J,GAAW,KAkBV,kBAAC,GAAK,CACJ4d,iBAAiB,cACjBC,iBAAiB,aACjBE,WAAW,gBACXX,MAAM,QACNK,SAAUA,EACV1rB,KAAMyH,EACN0b,QAASA,EACTqL,YAAarpB,EACbopB,aAAa,EACb5L,WAAYA,EACZ4K,YAAa5K,EACbqL,SAAUA,EACV9C,eAAe,kBAEfjmB,UAAWA,EACX0nB,WAAY7M,IAEd,kBAACyR,GAAA,EAAK,CAACV,KAAMoiB,EAAUniB,QAASoiB,GAC9B,kBAAChB,GAAc,KACb,kBAAC96B,GAAA,EAAI,CACHg8B,cAAY,EACZxpC,MAAO,CAAEkN,QAAS,QAASu8B,YAAa,OAAQxjB,QAAS,SAEzD,kBAACoiB,GAAU,6DAGX,kBAACD,GAAU,KACT,6BACG1xB,EAAW7Y,KAAKwD,KAAI,SAAC2X,GAAG,OACvB,kBAAC,IAAI,CAAC1X,IAAK0X,EAAIniB,GAAIiwB,GAAI,GACpB9N,EAAIjjB,eAKb,0BACEiK,MAAO,CACLmc,UAAW,SACX5V,eAAgB,SAChB5G,WAAY,SACZzL,OAAQ,SAGV,kBAAC4M,EAAA,EAAM,CAAChN,MAAOe,EAAMwB,QAAS6K,QAASqoC,GAAgB,OAGvD,kBAACzoC,EAAA,EAAM,CAAChN,MAAOe,EAAMU,OAAQ2L,QAAS,kBAAMooC,GAAY,KAAO,Y,cC7O7E,26MACO,IAAMI,GAAQ,wCAAG,0FAA0B,OAAjB1zC,EAAM,EAANA,OAAQ+J,EAAS,EAATA,UAAS,kBAE5B9J,IAAMC,KAAK,kCAAmC,CAC9DF,SACA+J,cACC,KAAD,EAHO,GAKW,OAAb,QALDpJ,EAAG,cAKF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,GAEC,OAFD,0BAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,0DAEd,gBAboB,sCAeRgtC,GAAU,wCAAG,wFAAc,OAALjzC,EAAK,EAALA,MAAK,kBAElBT,IAAMC,KAAK,oCAAqC,CAChEQ,UACC,KAAD,EAFO,GAIW,OAAb,QAJDC,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aAEzC,IAAIiG,MAAM9F,GAAK,KAAD,GAEC,OAFD,0BAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,0DAEd,gBAbsB,sCAeVitC,GAAU,wCAAG,0FAAkB,OAATlzC,EAAK,EAALA,MAAOG,EAAE,EAAFA,GAAE,kBAEtBZ,IAAMC,KAAK,oCAAqC,CAChEQ,QACAG,OACC,KAAD,EAHO,GAKW,OAAb,QALDF,EAAG,cAKF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aAEzC,IAAIiG,MAAM9F,GAAK,KAAD,GAEC,OAFD,0BAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,0DAEd,gBAdsB,sCAgBVktC,GAAU,wCAAG,wFAAW,OAAFhzC,EAAE,EAAFA,GAAE,kBAEfZ,IAAMC,KAAK,oCAAqC,CAChEW,OACC,KAAD,EAFO,GAIW,OAAb,QAJDF,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aAEzC,IAAIiG,MAAM9F,GAAK,KAAD,GAEC,OAFD,0BAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,0DAEd,gBAbsB,sC,cC/CvB,26MACO,IAAMmtC,GAAW,wCAAG,gGAAoC,OAA3B9zC,EAAM,EAANA,OAAQa,EAAE,EAAFA,GAAIkzC,EAAe,EAAfA,gBAAe,kBAE5B9zC,IAAMC,KACnC,yCACA,CAAEF,SAAQa,KAAIkzC,oBACd,KAAD,EAHmB,GAGnB,SAHO5zC,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZuB,sCAcXqtC,GAAY,wCAAG,4FAAe,OAANh0C,EAAM,EAANA,OAAM,kBAERC,IAAMC,KACnC,0CACA,CAAEF,WACF,KAAD,EAHmB,GAGnB,SAHOG,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZwB,sCAcZstC,GAAc,wCAAG,8FAAsB,OAAbj0C,EAAM,EAANA,OAAQU,EAAK,EAALA,MAAK,kBAEjBT,IAAMC,KACnC,4CACA,CAAEF,SAAQU,UACV,KAAD,EAHmB,GAGnB,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZ0B,sCAcdutC,GAAc,wCAAG,gGAA0B,OAAjBl0C,EAAM,EAANA,OAAQa,EAAE,EAAFA,GAAIH,EAAK,EAALA,MAAK,kBAErBT,IAAMC,KACnC,4CACA,CAAEF,SAAQa,KAAIH,UACd,KAAD,EAHmB,GAGnB,SAHOP,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAKD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAZ0B,sC,iCC3C3B,26MACO,I,MAAMwtC,GAAe,wCAAG,WAAO7uB,GAAM,4FACXrlB,IAAMC,KACnC,gDAAgD,eAE3ColB,IAEL,KAAD,EALmB,GAKnB,SALOnlB,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAMD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,MAAI,2CACZ,gBAX2B,sCAYf4zC,GAAgB,wCAAG,WAAO9uB,GAAM,4FACZrlB,IAAMC,KACnC,iDAAiD,eAE5ColB,IAEL,KAAD,EALmB,GAKnB,SALOnlB,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAMD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAClCD,EAAKI,QAAM,gCAEb,MAAI,2CACZ,gBAX4B,sC,+BCb7B,26MAmCA,IAAM66B,GAAiBp+B,kBAAOqC,OAAPrC,CAAY,qHAyoBpBo3C,IAnoBIp3C,kBAAOqC,OAAPrC,CAAY,2RAkBX,SAAH,GAA0B,IAApBgK,EAAY,EAAZA,aACfpI,EAAQqI,qBACR62B,EAAWtF,cACXtxB,EAAWC,cACjB,EAA+C7C,qBAAWsqB,MAAlD1c,EAAgB,EAAhBA,iBAAkBwhB,EAAgB,EAAhBA,iBAC1B,EACEpvB,qBAAWC,KADLG,EAAU,EAAVA,WAAY4C,EAAa,EAAbA,cAAe+sC,EAAe,EAAfA,gBAEnC,EACE3vC,GAAc,GADG4vC,EAAc,EAAzBxqC,UAAqCyqC,EAAc,EAAxBz0C,SAEnC,EAA6BqT,cAArBoJ,EAAM,EAANA,OAAQzc,EAAQ,EAARA,SACRD,EACN20C,EADeh0C,EACfg0C,EAD2B7zC,EAC3B6zC,EADuC3zC,EACvC2zC,EADmDn0C,EACnDm0C,EAEF,EAAoDtxC,oBAAS,GAAM,mBAA5DuxC,EAAkB,KAAEC,EAAqB,KAChD,EAAgCxxC,mBAAS,MAAK,mBAAvCyxC,EAAQ,KAAEC,EAAW,KAC5B,EAAkC1xC,mBAAS,MAAK,mBAAzC2xC,EAAS,KAAEC,EAAY,KASU,GAAdhX,GAAY,IAA9BrF,iBAAQ,MAAG,GAAE,EACVsL,IAAiB,OAARtL,SAAQ,IAARA,QAAQ,EAARA,GAAUtoB,MAAM,MAA5B,GACF4kC,GAAclwC,mBAAQ,WAC1B,MAAa,cAATk/B,IACKjkC,IAAay0C,IAErB,CAACA,EAAgBxQ,GAAMjkC,IAEpBk1C,GAASvxC,EAAS,CACtBC,QAAS,QACTC,QAAS8vC,GACT1vC,cAAe,GACfH,eAAgB,CAAEkG,UAAWwqC,GAC7BzwC,MAAOkxC,KAAgBT,IAAmBA,EAAiB,IAG7D,GAAoDU,IAAU,GAAhDC,GAAQ,GAAd90C,KAA2B+0C,GAAY,GAAvB9vC,UASxB,GAPmB3B,EAAS,CAC1BC,QAAS,YACTC,QAASowC,GACThwC,cAAe,GACfF,KAAMqxC,KAAiBF,GAAO70C,QAG2C,GAA7Dg1C,GAAa,GAAnBh1C,KAAgCi1C,GAAgB,GAA3BhwC,UACPiwC,GAAiB5xC,EAAS,CAC9CC,QAAS,QACTC,QAAStD,IAFHiF,aAiBR,GAbc7B,EAAS,CACrBC,QAAQ,GAAD,OAAK5D,GACZ6D,QAAS9D,EACT+D,eAAgB,CAAE9D,YAClB+D,KACEkxC,KACCj1C,GACDo1C,IACAE,KACCD,KACAH,GAAO70C,QAGyD,GAAvDm1C,GAAQ,GAAdn1C,KAA2BqzB,GAAW,GAAtBpuB,UAAwBM,GAAO,GAAPA,QAEI,IAAnByvC,IAAiB,IAA1CvtC,KAAM4qC,QAAS,OAAG,GAAE,GACtBsB,GAAkBjvC,mBACtB,kBAAMqB,IAAEkD,KAAKopC,IAAW,YAAY,OAAqB,IAArB,EAAT+C,eAC3B,CAAC/C,KAGagD,IAAmBF,IAAY,IAAvC/0C,OACFkyC,GACO,WAAXl2B,EAAsB,GAAMw4B,GAA+BrwC,EAAjB8wC,GAEtC/8B,GAAmB5T,mBACvB,kBACE0T,YAAaC,MAAM,CACjB1Y,SAAUyY,YAAauY,QAAQ/Z,MAAM,kBACrCyf,UAAWje,YAAaxB,MAAM,gBAC9B2f,SAAUne,YAAaxB,MAAM,eAC7B1V,SACa,WAAXkb,EACIhE,YAEGk9B,QACC,4DACA,iGAED/lC,SAAS,yBACZ6I,YAEGk9B,QACC,4DACA,iGAEVC,gBAAiBn9B,YAEdxB,MAAM,sBACN4+B,KAAK,WAAY,CAChBC,GAAI,SAACl/B,GAAG,OAAKA,GAAOA,EAAI/L,OAAS,GACjCkrC,KAAMt9B,YAEHu9B,MAAM,CAACv9B,OAAQ,aAAc,6BAEpCgZ,OAAQhZ,YAAaxB,MAAM,eAC3Bya,aAAcjZ,YAAa7I,WAC3BlI,IAAwB,IAAnB8sC,EAAuB/7B,YAAa7I,WAAa6I,YACtDw9B,UAAWx9B,gBAEf,CAACgE,EAAQ+3B,IAGgC,IAAdW,IAAY,IAAjCrtC,KAAM2qC,QAAK,OAAG,GAAE,GACxBrsC,IAAE+B,OAAOsqC,IAAO,SAACI,GAAI,OAAKA,EAAK7oC,UAAYwqC,KAE3C,OASI7B,IAAQ,GARAuD,GAAS,GAAnBl2C,SACWm2C,GAAU,GAArBzf,UACU0f,GAAS,GAAnBxf,SACQyf,GAAO,GAAf5kB,OACc6kB,GAAa,GAA3B5kB,aACK6kB,GAAI,GAAT7uC,IACW8uC,GAAU,GAArBC,UACWC,GAAU,GAArBT,UAGI37B,GAAW7U,sBAAW,wCAC1B,WAAO8f,EAAO,GAAD,gFAgB2C,GAhBvCiZ,EAAS,EAATA,UAAkB,0BAC3B79B,EAAK,2BACN4kB,GAAM,IACT7d,IAAK6d,EAAO7d,KAAO6uC,KAAuB,OAAfvC,SAAe,IAAfA,QAAe,EAAfA,GAAiBlzC,OAEjCm1C,UAEbrwC,GAAQ,CACNnF,OAAO,2BACFkyC,IACAptB,KAIHA,EAAO0wB,YAAWt1C,EAAM81C,UAAY1B,IACf,IAArBxvB,EAAO0wB,YAAqBt1C,EAAM81C,UAAY,MAC9ClxB,EAAOhkB,WAAUZ,EAAMY,SAAWgkB,EAAOhkB,UAC9B,WAAXkb,EAAmB,kCACE/b,EAAW,CAAEC,UAAS,KAAD,GACtB,GADhB0R,EAAQ,OACNzL,GADM,EACayL,GAAY,IAA/BzL,OACQ,IADM,EAAPtG,QACM,iBACG,OAAtBk+B,EAAU,CAAEjZ,WAAU,kBACfnT,EAAiB,GAAD,OAAIxL,KAAQ,QAIf,OADtB2uC,KACA/W,EAAU,CAAEjZ,WAAU,kBACfne,EAAS,WAAS,QAE2B,OAAlD6tC,IAAaztC,EAAc,2BAAKmrC,IAAShyC,IAAS,UAChDE,EAAW,CAAEC,GAAI6xC,GAAK7xC,GAAIH,UAAS,KAAD,GAClB,GAAtB69B,EAAU,CAAEjZ,WACRA,EAAO7d,MAAQ6uC,GAAI,kCAAQhC,IAAkB,KAAD,GAEhDrtC,IACAquC,KACA3hB,EAAiB,4BAA4B,4CAC9C,qDAtCyB,GAuC1B,CACE2iB,GACAvC,GACApuC,GACA+sC,GACAoC,EACAt4B,EACAw4B,GACAztC,EACA3G,EACA0zC,EACArtC,EACAquC,GACA3hB,EACAlzB,EACA0G,EACAgL,IAIEiyB,GAAQ,wCAAG,+FACTtjC,EAAW,CAAED,GAAI6xC,GAAK7xC,KAAM,KAAD,2BAC1BsG,EAAS,WAAS,2CAC1B,kBAHa,mCAKRkkC,GAAW,WAAH,OAASlkC,EAAS,WAE1BuvC,GAAc5xC,mBAAQ,WAG1B,OAAsB,KAFEqB,IAAEkD,KAAKopC,IAAW,YAAK,SAAF5xC,KAAgBy1C,OACnB,IAAlCK,aAEP,CAACL,GAAM7D,KAEJmE,GAAepxC,sBAAW,wCAC9B,WAAO8Y,GAAM,8EACOA,EAAM,qBAAGA,EAAM,sCAASC,KAAY,KAAD,qBAA/Cu2B,EAAS,KACA,YACG,OACH,IACA,KACC,OACV+B,EAAS,oBADC,OACsB,YALvB,YAKiC,YAAI92C,EAAQ,sBAJ1C,OAIiE,mBAHpE,IAGqF,mBAFrF,KAEsG,mBALtG,YAKuH,mBAAW+0C,GACjJD,EAAYgC,GACZ9B,EAAaD,GAAW,4CACzB,mDAX6B,GAY9B,CAAC/0C,IAGHmF,qBAAU,WACR0xC,GAAaL,MACZ,CAACA,GAAYK,KAEhB,IAAYE,IACV3wC,IAAEkD,KAAKmpC,IAAO,SAACI,GAAI,OAAwB,IAAnBA,EAAK7oC,cAAoB,IAD3ClJ,GAGFyX,GAAgBxT,mBAAQ,WAC5B,MAAO,CACL/E,SAAUk2C,IAAa,GACvBxf,UAAWyf,IAAc,GACzBvf,SAAUwf,IAAa,GACvB3kB,OAAQ4kB,IAAWU,GACnBrlB,aAAc4kB,IAAiB,QAC/B5uC,IAAK6uC,KAAuB,OAAfvC,SAAe,IAAfA,QAAe,EAAfA,GAAiBlzC,IAC9Bm1C,WACkB,IAAhBU,GACIA,IACe,IAAfD,MAEEF,MAET,CACDF,GACAI,GACAP,GACAC,GACAI,GACAD,GACAF,GACAH,GACAlC,GACA2C,GACAI,KAGIC,GAAgB,CACpB,CAAE//B,MAAO,cAAezY,MAAO,SAC/B,CAAEyY,MAAO,yBAA0BzY,MAAO,WAG5C,GAKImF,EAAS,CACXE,QAASuwC,GACTnwC,cAAe,GACfF,KAAM2vB,KAPAujB,GAAa,GAAnB52C,KACW62C,GAAmB,GAA9B5xC,UAQF,IAP0B,GAAxBM,QACiC,GAAjCJ,aAWE7B,EAAS,CACXE,QAASwwC,GACTpwC,cAAe,GACfF,KAAM2vB,MAPAyjB,GAAc,GAApB92C,KACW+2C,GAAoB,GAA/B9xC,UASI+xC,IARqB,GAAzBzxC,QACkC,GAAlCJ,aAOkBC,uBAAY,cAAU,KACpC6xC,GAAgB7xC,uBAAY,cAAU,IAqBtC8xC,IAnBexyC,mBAAQ,WAC3B,IAAKkyC,IAAiBC,GAAqB,MAAO,GAElD,IAA0C,GAAnBD,IAAiB,IAAhCO,MAER,YAFa,MAAG,GAAE,GAELlsC,KAAI,YAA0B,IAApBlD,EAAI,EAAP,GAAYqvC,EAAG,EAAN,GACZhkC,EAASrL,EAAhB6L,MACOnT,EAAO22C,EAAdxjC,MACR,IAAKnT,EAAI,OAAO,KAChB,IAAM42C,EAAM52C,EAAGuP,MAAM,SACjBsnC,EAAW,GAMf,OALAD,EAAI1+B,SAAQ,SAAC4+B,GACX,MAAqBA,EAAKvnC,MAAM,KAAI,mBAA7B9E,EAAG,KAAE/M,EAAK,KACjBmI,QAAQyX,IAAI7S,EAAK/M,GACbA,IAAOm5C,EAASpsC,GAAO/M,EAAMyS,QAAQ,IAAK,IAAIA,QAAQ,IAAK,QAE1D,aAAEwC,QAASkkC,QAEnB,CAACV,GAAeC,KACGnyC,mBAAQ,WAC5B,IAAKoyC,IAAkBC,GAAsB,MAAO,GAEpD,IAA2C,GAApBD,IAAkB,IAAjCK,MACR,YADa,MAAG,GAAE,GACLlsC,KAAI,SAACusC,GAChB,IAAIC,EAAa,GAIjB,OAHAD,EAAQ7+B,SAAQ,gBAAGvF,EAAI,EAAJA,KAAMQ,EAAK,EAALA,MAAK,OAC1BA,EAAS6jC,EAAWrkC,GAAQQ,EAAS,QAElC6jC,OAER,CAACX,GAAgBC,MAIdW,IAFU9yC,iBAAO,MAEJF,mBAAQ,WACzB,IAC6B,EADzBizC,EAAM,GAAG,eACGT,IAAa,IAA7B,2BAA+B,CAAC,IAAvBU,EAAG,QACV,EAAmCA,GAAO,GACtC,CADS,EAALC,MAAsB,EAAfC,iBACcnnC,SAAmB,OAAVpM,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,WAChDg4C,EAAInhC,KAAKohC,IACZ,8BACD,OAAOD,IACN,CAACpzC,EAAY2yC,MAChB5wC,QAAQyX,IAAI25B,IACIhzC,mBACd,iBAAM,CACJ,CACEjE,GAAI,KACJT,KAAM,KACN+gB,OAAQ,KACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAE/B,CACEjwB,GAAI,OACJT,KAAM,gBAAGoT,EAAI,EAAJA,KAAI,OAAO,kBAAC,IAAI,CAAC9V,UAAQ,GAAE8V,GAAQ,WAC5C2N,OAAQ,OACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,eACJqW,QAAS,SAAC7Z,GAAW,IAAD,EACVmW,IAAc,OAALnW,QAAK,IAALA,GAAU,QAAL,EAALA,EAAO2lB,WAAG,WAAL,EAAL,EAAY0F,WAAY,IAAjClV,KACF2kC,IAAiBhyC,IAAEkD,KACvByuC,IACA,YAAkB,SAAfM,kBAA0C5kC,KAE/C,OACE,kBAAC,GAAS,CAACkE,OAAQygC,EAAct3C,GAAIxD,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,MAGjEsgB,OAAQ,aACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAEnC,CACE5Z,QAAS,SAAC7Z,GACR,IAAMg7C,EAAMh7C,EAAM2lB,IAAI0F,SAASpV,GACzBE,EAAOnW,EAAM2lB,IAAI0F,SAASlV,KAC1B2kC,IAAiBhyC,IAAEkD,KACvByuC,IACA,YAAkB,SAAfM,kBAA0C5kC,KAE/C,OACE,kBAAC,GAAc,CAAC3S,GAAG,WACjB,kBAACiK,EAAA,EAAM,CACL7M,KAAK,QACL6vB,EAAE,iBACFrB,EAAE,SACF3uB,MAAOe,EAAMwB,QACb4W,SAAO,EACPvI,SAAUypC,EACVntC,SAAS,SACTE,QAAS,kBAAMksC,GAAYiB,MAE7B,kBAACvtC,EAAA,EAAM,CACLgjB,EAAE,iBACFrB,EAAE,SACFxuB,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPvI,UAAWypC,EACXntC,SAAS,UACTE,QAAS,kBAAMmsC,GAAcgB,QAKrCl3B,OAAQ,UACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAGrC,CAACgnB,GAAYj5C,EAAMwB,QAASxB,EAAMU,OAAQ63C,GAAaC,KAGzD,OACE,kBAAChpC,GAAW,KACV,kBAAC,GAAc,CACb2D,GAAG,OACHmZ,YAAU,EACVM,MACa,WAAXjP,EACI,cAAa,wBACQ,OAAJk2B,SAAI,IAAJA,QAAI,EAAJA,GAAM3yC,YAI/B,kBAAC,KAAM,CACLuY,cAAeA,GACfI,iBAAkBA,GAClB2B,SAAUA,GACVJ,oBAAkB,IAEjB,YAA0D,IAAvDq+B,EAAK,EAALA,MAAOC,EAAY,EAAZA,aAAcC,EAAM,EAANA,OAAQlzB,EAAM,EAANA,OAAQmzB,EAAU,EAAVA,WACvC,OACE,kBAAC,KAAI,KACH,kBAAC5hC,GAAA,EAAK,CACJnI,SAAqB,WAAX8N,EACVjN,UAAU,kBACVpH,KAAK,aAEP,kBAAC0O,GAAA,EAAK,CAACtH,UAAU,eAAepH,KAAK,cACrC,kBAAC0O,GAAA,EAAK,CAACtH,UAAU,cAAcpH,KAAK,aACnCqqC,IAASA,GAAM5nC,OAAS,GAAK2pC,GAAkB,GAC9C,kBAAC19B,GAAA,EAAK,CACJtH,UAAU,cACVpH,KAAK,SACL2O,GAAG,SACH0hC,OAAQA,EACR9pC,UACGsmC,IAAeR,IAAmBz0C,IACnCw0C,EAAiB,GAGlBS,IAAeT,EAAiB,EAC/B,4BACEjpC,IAAG,UAAS,OAAJonC,SAAI,IAAJA,QAAI,EAAJA,GAAMlhB,OAAM,WACpBjzB,MAAW,OAAJm0C,SAAI,IAAJA,QAAI,EAAJA,GAAMlhB,OACbxa,MAAW,OAAJ07B,SAAI,IAAJA,QAAI,EAAJA,GAAMgG,WAGflG,GAAMnnC,KAAI,SAAC21B,GAAC,OACV,4BACE11B,IAAG,UAAK01B,EAAEngC,GAAE,WACZtC,MAAOyiC,EAAEngC,GACTmW,MAAOgqB,EAAE74B,WAOlBosC,GAAkB,GACjB,kBAAC19B,GAAA,EAAK,CACJtH,UAAU,kBACVpH,KAAK,eACLgnC,UAAU,SACVqJ,OAAQA,IAENzB,IAAiB,IAAI1rC,KAAI,SAACtC,GAAI,OAC9B,4BACEuC,IAAG,UAAKvC,EAAKxK,MAAK,iBAClBA,MAAOwK,EAAKxK,MACZyY,MAAOjO,EAAKiO,YAMA,IAAnBu9B,GACC,kBAAC19B,GAAA,EAAK,CACJtH,UAAU,aACVpH,KAAK,MACLgnC,UAAU,SACVqJ,OAAQA,GAER,4BAAQj6C,MAAM,UAAUyY,MAAM,mBAC7By7B,GAAUpnC,KAAI,gBAAGlD,EAAI,EAAJA,KAAMtH,EAAE,EAAFA,GAAE,OACxB,4BAAQyK,IAAG,UAAKzK,EAAE,aAAatC,MAAOsC,EAAImW,MAAO7O,QAK3C,WAAXqU,GACC,kBAAC1R,EAAA,EAAM,CACL2F,GAAG,OACHwG,QAASy9B,EACT52C,MAAO42C,EAAqB71C,EAAM+P,UAAOlJ,EACzCwF,QAAS,kBAAMypC,GAAuBD,IACtC1pC,SAAU0pC,EAAqB,UAAY,YAE1CA,EAAqB,SAAW,oBAIlCA,IAAuBH,GAAkB,IAAM/3B,IACrC,WAAXA,IACA,oCACE,kBAAC3F,GAAA,EAAK,CACJtH,UACa,WAAXiN,EAAsB,WAAa,eAErCrU,KAAK,WACLY,KAAK,aAEP,kBAAC8N,GAAA,EAAK,CACJtH,UAAU,qBACVpH,KAAK,kBACLY,KAAK,cAKX,kBAAC,OAAI,CACH8O,GAAI68B,EAAqB,OAAS,SAClC/qC,WAAW,UAEX,kBAAC,OAAI,CAACswB,GAAG,OAAOzN,cAAc,UAC5B,kBAAC,MAAG,CACF3U,GAAI68B,OAAqBhvC,EAAY,UACrC+K,GAAG,SACHvF,QACEwrC,GACI,kBAAMvkC,EAAiB,mCACvBzM,GAGN,kBAAC4R,GAAA,EAAQ,CACPtN,MAAO,CACL+T,cAAe24B,GAAc,YAAShxC,EACtCqf,OAAQ2xB,GAAc,mBAAgBhxC,GAExCgJ,SAAUgoC,GACVvuC,KAAK,YACLoH,UAAU,uDAGb+V,EAAO0wB,UACN,kBAAC,MAAG,CAAC/rC,SAAU,KACb,kBAAC,IAAI,CAACwG,GAAG,UAAQ,qIAKjB,kBAAC,IAAI,CAACA,GAAG,QAAM,0EAIf,kBAAC,OAAI,KACH,kBAAC3F,EAAA,EAAM,CACLhN,MAAOe,EAAM4P,UACbuH,OAAO,SACPnM,GAAG,kEAAgE,aAIrE,kBAACiB,EAAA,EAAM,CACLhN,MAAOe,EAAM85C,QACb3iC,OAAO,SACPnM,GAAG,uGAAqG,iBAM5G,MAELyb,EAAO0wB,WAAahB,GACnB,kBAAC,KAAS,CAACz2C,MAAOq2C,IAChB,MAGN,kBAAC,KAAiB,CAChBvJ,SAAUA,GACVjH,SAAUA,GACVmH,aAAc/uB,EACdo8B,OAAQL,EACRD,MAAOA,EACPhN,WAAuB,SAAX9uB,EACZgvB,cAAa,0CAAqClmB,EAAOvlB,SAAQ,KACjEulB,OAAQA,EACRjL,SAAUo+B,W,cCroB1B,mmGAAAh1C,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAwBA,IAAMo1C,GAAkB,WAEtB,MAA+BvjC,eAAvBgQ,EAAM,EAANA,OAAQmzB,EAAU,EAAVA,WAOhB,OANAz0B,IAAM9e,WAAU,WAEc,IAAxBogB,EAAOjH,MAAMzT,QACf6tC,MAED,CAACnzB,EAAQmzB,IACL,MA8dMK,GA3dD,SAAH,GAAyB,IAAD,IAAlBC,WAAG,OAAQ,EACpB5xC,EAAWC,cACT+pB,EAAoB5sB,qBAAWC,KAA/B2sB,gBACR,EAA+C5sB,qBAAWsqB,MAAlD1c,EAAgB,EAAhBA,iBAAkBwhB,EAAgB,EAAhBA,iBACpB90B,EAAQqI,qBACN8xC,GAAan6C,GAAS,IAAtBm6C,SAER,EAAgD71C,oBAAS,GAAM,mBAAxD81C,EAAkB,KAAEC,EAAiB,KAC5C,EAAgC/1C,oBAAS,GAAM,mBAAxCkC,EAAS,KAAEC,EAAU,KAC5B,EAA4BnC,oBAAS,GAAM,mBAApCg2C,EAAM,KAAEC,EAAS,KACxB,EAAsCj2C,oBAAS,GAAM,mBAA9Ck2C,EAAW,KAAEC,EAAc,KAClC,EAA4Bn2C,mBAAS,MAAK,mBAAnCmb,EAAM,KAAEi7B,EAAS,KACxB,EAAkCp2C,mBAAS,MAAK,mBAAzCq2C,EAAS,KAAEC,EAAY,KAC9B,EAAsBt2C,mBAAS,MAAK,mBAA7Bu2C,EAAG,KAAEC,EAAM,KAClB,EAAwCx2C,oBAAS,GAAM,mBAAhDy2C,EAAa,KAAEC,GAAc,KAE9BjD,GAAY,wCAAG,WAAO72C,EAAUue,GAAM,0EACrB,GAArBg7B,GAAe,IACGh7B,EAAM,qBAAGA,EAAM,sCAASC,KAAY,KAAD,qBAS7B,OATlBu2B,EAAS,KACA,YACG,OACH,IACA,KACC,OACV+B,EAAS,oBADC,OACsB,YALvB,YAKiC,YAAI92C,EAAQ,sBAJ1C,OAIiE,mBAHpE,IAGqF,mBAFrF,KAEsG,mBALtG,YAKuH,mBAAW+0C,GAEjJyE,EAAUzE,GACV2E,EAAa5C,GAAW,kBACjBA,GAAS,4CACjB,gBAbiB,wCAeZiD,GAAet0C,sBAAW,wCAC9B,WAAO8f,EAAO,GAAD,0FAIU,OAJNiZ,EAAS,EAATA,UACAwb,GADS,EACYz0B,GAAU,IAAtCjH,MAAete,EAAQ,EAARA,SAAQ,EACSg6C,EAAO3pC,MAAM,KAA1C4pC,EAAU,EAAb,GAAkBC,EAAS,EAAZ,GACjB57B,EAAK,UAAM27B,GAAU,OAAGC,GAC9BJ,IAAe,GAAM,SACQz7B,GAAU,CAAEC,QAAOC,SAAQve,aAAY,KAAD,EAAjD,GAAiD,SAA3Dm6C,EAAU,EAAVA,WAEQ,CAAD,gBAIS,OAHtBL,IAAe,GACfv0C,GAAW,GACX6M,EAAiB,uBACjBosB,EAAU,CAAEjZ,WAAU,mBACf,GAAK,QAIgC,OAF5C9c,OAAOC,eAAeC,QAAQ,QAASgxC,IACX,IAAxBp0B,EAAOpH,cACT1V,OAAOW,aAAaT,QAAQ,QAASgxC,GAAK,UACtCvoB,EAAgBpxB,GAAU,KAAD,4BAExBm6C,GAAU,4CAEpB,qDAtB6B,GAuB9B,CAAC/oB,EAAiBuoB,EAAKp7B,IAGnB5F,GAAmB5T,mBACvB,kBACEi0C,EACIvgC,YAAaC,MAAM,CACjBtQ,KAAMqQ,YAAa7I,SAAS,oBAC5B5P,SAAUyY,UACA,0BACPuY,MAAM,0BACNphB,SAAS,gCAEd6I,YAAaC,MAAM,CACjB1Y,SAAUyY,UACA,0BACPuY,MAAM,0BACNphB,SAAS,8BACZ0O,MAAOg7B,EACH7gC,YAEG7I,SAAS,yBACTE,IAAI,EAAG,+BACPD,IAAI,EAAG,+BACP8lC,QAAQ,cAAe,sCAC1Bl9B,YACJlX,SAAU63C,EACN3gC,YAEGk9B,QACC,4DACA,0GAED/lC,SAAS,yBACZ6I,YAAa7I,SAAS,yBAC1BgmC,gBAAiBwD,EACb3gC,YAEGk9B,QACC,4DACA,0GAEDE,KAAK,WAAY,CAChBC,GAAI,SAACl/B,GAAG,OAAKA,GAAOA,EAAI/L,OAAS,GACjCkrC,KAAMt9B,YAEHu9B,MAAM,CAACv9B,OAAQ,aAAc,6BAEjC7I,SAAS,sCACZjK,EACJwY,aAAc1F,iBAEtB,CAACugC,EAAKM,EAAaF,IAGf9+B,GAAW7U,sBAAW,wCAC1B,WAAO20C,EAAQ,GAAD,0GAEK,GAFD5b,EAAS,EAATA,UACZjZ,EAAM,eAAQ60B,GAClB70C,GAAW,IACPyzC,EAAI,CAAD,gBAI2B,OAJ3B,aAGM,OAANzzB,QAAM,IAANA,OAAM,EAANA,EAAQnd,OAAQ,IAAIiI,MAAM,MAAQ,GAD1BqmB,EAAS,EAAZ,GAAiBE,EAAQ,EAAX,GAEhByjB,EAAK9oB,KAAKC,eAAe,EAAD,OACW9wB,EAAW,CAClDC,MAAO,CACL+1B,UAAWA,GAAaE,EAAWF,EAAYnR,EAAOnd,KACtDwuB,SAAUF,GAAaE,EAAWA,OAAWjxB,EAC7CpE,SAAU84C,EACVr6C,SAAUulB,EAAOvlB,SACjBqM,IAAKklB,KAAKC,eACVC,OAAQ,YAET,KAAD,EAT4B,GAS5B,SATMhxB,EAAM,EAANA,OAAQH,EAAO,EAAPA,QAASsG,EAAK,EAALA,MAUpBtG,GAAYG,EAAM,iBAEC,OADtB8E,GAAW,GACXi5B,EAAU,CAAEjZ,WAAU,kBACfnT,EAAiB,GAAD,OAAItJ,KAAKC,UAAUnC,MAAS,QAErD2e,EAAOhkB,SAAW84C,EAAG,wBAIA,OAJA,0BAErB90C,GAAW,GACXi5B,EAAU,CAAEjZ,WACZ5e,QAAQC,MAAM,EAAD,IAAQ,kBACdwL,EAAiB,oBAAkB,oCAEnCgnC,EAAO,CAAD,2CAE4B14C,EAAW,CAClDC,MAAO,CACLX,SAAUulB,EAAOvlB,SACjBuB,SAAUgkB,EAAOhkB,SACjB8K,IAAKklB,KAAKC,eACVC,OAAQ,YAET,KAAD,GAP4B,GAO5B,SAPMhxB,EAAM,EAANA,OAAQH,EAAO,EAAPA,QAASsG,EAAK,EAALA,MAQpBtG,GAAYG,EAAM,iBAEC,OADtB8E,GAAW,GACXi5B,EAAU,CAAEjZ,WAAU,kBACfnT,EAAiB,GAAD,OAAItJ,KAAKC,UAAUnC,MAAS,yBAE/CiwC,GAAatxB,EAAOvlB,UAAU,KAAD,GACd,OAArBu5C,GAAe,GAAM,2BAKA,OALA,2BAGrBh0C,GAAW,GACXi5B,EAAU,CAAEjZ,WACZ5e,QAAQC,MAAM,EAAD,IAAQ,kBACdwL,EAAiB,oBAAkB,mCASlC8L,GAAM,CACdle,SAAUulB,EAAOvlB,SACjBuB,SAAUgkB,EAAOhkB,SACjB4c,aAAcoH,EAAOpH,eACpB,KAAD,GALK,GAKL,SAPQm8B,EAAQ,EAAhB75C,OACAH,EAAO,EAAPA,QACAsG,EAAK,EAALA,MAOGtG,IAAWsG,EAAK,iBACD,OAAlBrB,GAAW,GAAO,kBACX6M,EAAiB,GAAD,OAAItJ,KAAKC,UAAUnC,MAAS,QAE9B,GAAvBgzC,EAAOU,EAASh8B,QACZg8B,EAASC,qBAAwBD,EAAS/7B,OAAM,kCAC5Cs4B,GAAatxB,EAAOvlB,UAAU,KAAD,GACnCu5C,GAAe,GAAM,4BACZe,EAAS/7B,OAAO,CAAD,gBACxBg7B,GAAe,GAAM,wBAIuC,OAFhC,IAAxBh0B,EAAOpH,aACT1V,OAAOW,aAAaT,QAAQ,QAAS2xC,EAASh8B,OAC3C7V,OAAOC,eAAeC,QAAQ,QAAS2xC,EAASh8B,OAAO,UACtD8S,EAAgB7L,EAAOvlB,UAAU,KAAD,GACtCoH,EAAS,mBAAmB,QAE9Bo3B,EAAU,CAAEjZ,WAAU,wBAID,OAJC,2BAEtBhgB,GAAW,GACXi5B,EAAU,CAAEjZ,WACZ5e,QAAQC,MAAM,EAAD,IAAQ,kBACdwL,EAAiB,kBAAgB,0EAE3C,qDA5FyB,GA6F1B,CAAC4mC,EAAKI,EAAQhoB,EAAiBhqB,IAG3BozC,GAAyB/0C,sBAAW,wCAAC,WAAO8f,GAAM,2FAE7BpkB,EAAe,CACpCnB,SAAUulB,EAAOvlB,WAChB,KAAD,EAFY,UAIA,CAAD,wCAASoS,EAAiB,2BAAyB,OAEhEwhB,EAAiB,8BAA8B,gDAE/CjtB,QAAQC,MAAM,EAAD,IACbwL,EAAiB,0BAA0B,yDAE9C,mDAbyC,GAavC,IAEGqoC,GAAch1C,uBAAY,SAACuQ,EAAGV,EAAeiQ,GACjD,IAAMm1B,EAAY1kC,EAAEC,OAAOzX,MAAMwX,EAAEC,OAAOzX,MAAMqM,OAAS,IAAM,GAC/D,GAA8B,IAA1BmL,EAAEC,OAAOzX,MAAMqM,OACnB,GAA8B,IAA1BmL,EAAEC,OAAOzX,MAAMqM,QAAwC,IAAxB0a,EAAOjH,MAAMzT,OAC9CyK,EAAc,QAAQ,GAAD,OAAKiQ,EAAOjH,MAAK,YAAIo8B,SACrC,GAA8B,IAA1B1kC,EAAEC,OAAOzX,MAAMqM,QAAwC,IAAxB0a,EAAOjH,MAAMzT,OAAc,CAEnEyK,EAAc,QADYU,EAAEC,OAAOzX,MAAM6R,MAAM,KAAvC,SAGRiF,EAAc,QAASU,EAAEC,OAAOzX,SAEjC,IAEGm8C,GAAS51C,mBAAQ,WACrB,OAAIu0C,EAAoBS,GACjBz/B,KACN,CAACg/B,EAAah/B,GAAUy/B,KAErBa,GAAYn1C,uBAChB,YAAgC,IAA7B8f,EAAM,EAANA,OAAQjQ,EAAa,EAAbA,cACT,OAAIgkC,EAEA,oCACGG,EACC,oCACE,kBAAC,KAAS,CAACj7C,MAAOi7C,IAClB,kBAAC,MAAG,CAACxnC,GAAG,OAAO/H,SAAU,KACvB,kBAAC,IAAI,sHAOT,kBAAC,MAAG,CAAC+H,GAAG,OAAO/H,SAAU,KACvB,kBAAC,IAAI,0FAOT,kBAAC,GAAe,MAEhB,kBAAC4M,GAAA,EAAK,CACJ1O,KAAK,QACLY,KAAK,MACLoN,UAAWkjC,EACXvjC,SAAU,SAACC,GAAC,OAAKykC,GAAYzkC,EAAGV,EAAeiQ,IAC/C/mB,MAAO+mB,EAAOjH,MACdrU,MAAO,CAAEmc,UAAW,SAAUshB,SAAU,UAE1C,kBAAC38B,EAAA,EAAM,CAAC+M,GAAG,SAAS9O,KAAK,UACtB6wC,EACC,kBAAClvC,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAM+7C,SAGhB,WAKC7B,EAEP,oCACE,kBAACliC,GAAA,EAAK,CAAC1O,KAAK,OAAOmiB,YAAY,OAAOvhB,KAAK,SAC3C,kBAAC8N,GAAA,EAAK,CAAC1O,KAAK,WAAWmiB,YAAY,QAAQvhB,KAAK,OAAOoN,WAAS,IAChE,kBAACrL,EAAA,EAAM,CAAC/B,KAAK,UAAQ,gBAKvB,oCACE,kBAAC8N,GAAA,EAAK,CACJ1O,KAAK,WACLmiB,YAAY,gBACZvhB,KAAK,OACLoN,WAAS,IAGT8iC,EAiEA,oCACE,kBAAC,MAAG,KACF,kBAACnuC,EAAA,EAAM,CACL+M,GAAG,SACH9O,KAAK,SACLmC,QAAS,kBAAMqvC,GAAuBj1B,KAAQ,2BAKlD,kBAACxa,EAAA,EAAM,CACLmM,SAAO,EACPhZ,KAAK,QACLH,MAAOe,EAAM+P,KACbiJ,GAAG,OACH3M,QAAS,kBAAMguC,GAAkB,KAEjC,kBAAC,IAAM,wBAjFX,oCACE,kBAACriC,GAAA,EAAK,CAAC1O,KAAK,WAAWmiB,YAAY,WAAWvhB,KAAK,aAElDowC,EACC,kBAACtiC,GAAA,EAAK,CACJyT,YAAY,mBACZniB,KAAK,kBACLY,KAAK,aAEL,KAEJ,kBAACuO,GAAA,EAAQ,CACPxZ,MAAM,QACNqK,KAAK,eACLoH,UAAU,uCAGZ,kBAAC,OAAI,CAACsI,GAAG,UACP,kBAAC/M,EAAA,EAAM,CACLmM,QAASkiC,EACTr7C,MAAQq7C,EAAyBt6C,EAAM+P,KAAtB/P,EAAM8e,QACvBgI,YAAcwzB,EAAqB,kBAAMC,GAAU,SAA5B1zC,EACvBqD,KAAOowC,EAAoB,SAAX,UAEf9zC,IAAc8zC,EACb,kBAACzuC,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM8e,QACdE,OAAQhf,EAAM+7C,SAGhB,SAIJ,kBAAC9vC,EAAA,EAAM,CACLhN,MAAOq7C,EAASt6C,EAAM8e,QAAU9e,EAAM+P,KACtCqI,SAAUkiC,EACVxzB,YAAawzB,OAASzzC,EAAY,kBAAM0zC,GAAU,IAClDrwC,KAAMowC,EAAS,SAAW,UAEzB9zC,GAAa8zC,EACZ,kBAACzuC,GAAA,EAAO,CACNC,QAAM,EACNiT,OAAQ/e,EAAM4P,UACdoP,OAAQhf,EAAMwB,UAGhB,YAKN,kBAACyK,EAAA,EAAM,CACLmM,SAAO,EACPhZ,KAAK,QACLH,MAAOe,EAAM+P,KACbiJ,GAAG,OACH3M,QAAS,kBAAMguC,GAAkB,KAEjC,kBAAC,IAAM,8BA6BrB,CACEH,EACAyB,GACAnB,EACAO,EACAv0C,EACAk1C,GACAf,EACAP,EACAE,EACAt6C,IAIJ,OACE,kBAACwP,GAAW,CAACyf,EAAG,GACd,kBAAC6D,GAAA,EAAK,CACJhoB,WAAW,SACX4G,eAAe,SACfsqC,GAAI9B,EAAM,oBAAiBrzC,EAC3B+/B,GAAIsT,EAAM,oBAAiBrzC,EAC3BurB,MAAM,GAEN,kBAACzZ,GAAA,EAAI,CACH1Y,gBAAiBD,EAAM4P,UACvB+kC,cAAY,EACZxpC,MAAO,CAAEkN,QAAS6hC,EAAM,OAAS,SACjC57C,MAAO47C,EAAM,CAAC,QAAS,QAAS,QAAS,cAAWrzC,EACpDyE,OAAQ4uC,EAAM,CAAC,QAAS,QAAS,QAAS,aAAUrzC,EACpDiE,WAAW,UAEX,kBAAC,KAAM,CACL2O,cAAe,CACbvY,SAAU,GACVuB,SAAU,GACV4c,cAAc,EACdy3B,gBAAiB,GACjBt3B,MAAO,IAET3F,iBAAkBA,GAClByB,iBAAiB,EACjBC,kBAAkB,EAClBF,eAAgB++B,EAChB5+B,SAAUqgC,KAET,YAAgC,IAA7Bp1B,EAAM,EAANA,OAAQjQ,EAAa,EAAbA,cACV,OACE,kBAAC,KAAI,CACHrL,MAAO,CAAE7M,MAAO,OAAQe,OAAQ,OAAQ+L,SAAU,UAElD,kBAAC,OAAI,CACH9M,MAAO,EACPwM,WAAW,SACX6iB,cAAc,SACdjc,eAAe,SACf4V,UAAU,WAERkzB,GACA,yBACErvC,MAAO,CACLC,SAAU,oBACVI,UAAW,OACXywC,aAAc,OACd7qB,QAAS,QAEX1lB,IAAKyuC,EACLvuC,IAAI,cAIPkwC,GAAU,CAAEr1B,SAAQjQ,2B,cCnfzC,mmGAAA5R,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAcA,IAAMiV,GAAmBF,YAAaC,MAAM,CAC1CnX,SAAUkX,YAEPk9B,QACC,4DACA,0GAED/lC,SAAS,yBACZgmC,gBAAiBn9B,YAEdk9B,QACC,4DACA,0GAEDE,KAAK,WAAY,CAChBC,GAAI,SAACl/B,GAAG,OAAKA,GAAOA,EAAI/L,OAAS,GACjCkrC,KAAMt9B,YAEHu9B,MAAM,CAACv9B,OAAQ,aAAc,6BAEjC7I,SAAS,mCAoICorC,GAjIO,WACpB,IAAM5zC,EAAWC,cACjB,EAAuBgqB,cACjBhwB,EADkC,iBAArB,GACyBkM,IAAI,YAAc,GACtD6E,EAAqB5N,qBAAWsqB,MAAhC1c,iBACyBvR,EAAe6zC,EAEhD,EAAsC/wC,EAAS,CAC7CC,QAAS,gBACTC,QAJ8C6wC,EAK9C5wC,eAAgB,CAAEzC,0BAClB4C,cAAe,GACfF,MAAO1C,IALKm0C,EAAQ,EAAdn1C,KAAgBiF,EAAS,EAATA,UAUxB,GAFiCkwC,GAAY,IAArC/0C,QAE2C,GAA3Cw6C,EAAM,EAANA,OAAQC,EAAc,EAAdA,eACVC,EAAM,IAAIC,KACVC,EAAUtV,KAAOmV,GAAgBI,SAASH,GAEhDh2C,qBAAU,WACH9D,GAAwB+F,EAAS,YACrC,CAAC9B,EAAW8B,EAAU/F,EAAwB45C,IAEjD91C,qBAAU,WACRwB,QAAQC,MAAMy0C,GACdjpC,EAAiB,iCACbipC,GAASj0C,EAAS,YACrB,CAACi0C,EAASj0C,EAAUgL,IAEvB,IAAMkI,EAAW7U,sBAAW,wCAC1B,WAAO8f,GAAM,wEAKT,GAJI5kB,EAAQ,CACZY,SAAUgkB,EAAOhkB,SACjBg6C,QAAS,KACT9E,UAAW,MAGRwE,EAAO,CAAD,wCAAS7oC,EAAiB,oCAAkC,uBAEjEvR,EAAW,CAAEC,GAAIm6C,EAAQt6C,UAAS,KAAD,EAEvCyG,EAAS,UAAU,2CACpB,mDAbyB,GAc1B,CAACA,EAAUgL,EAAkBvR,EAAYo6C,IAGrC3P,EAAW,WAAH,OAASlkC,EAAS,WAOhC,OACE,kBAACkH,GAAW,KACV,kBAAC,MAAG,KACF,kBAAC,OAAI,CACHme,cAAc,MACdjc,eAAe,aACf5G,WAAW,UAEX,kBAACmB,EAAA,EAAM,CACLC,aAAa,OACbkM,SAAO,EACPgjB,GAAG,OACHjvB,SAAS,cACTE,QAAS,kBAAM/D,GAAU,MAE3B,kBAAC,IAAO,CAACzJ,UAAQ,sBAEnB,kBAAC,KAAM,CACL4a,cAvBc,CACpBhX,SAAU,GACVq0C,gBAAiB,IAsBXj9B,iBAAkBA,GAClB0B,kBAAkB,EAClBD,iBAAiB,EACjBE,SAAUA,EACVJ,oBAAkB,IAEjB,YAQM,IAPLq+B,EAAK,EAALA,MACAC,EAAY,EAAZA,aACAgD,EAAY,EAAZA,aACA/C,EAAM,EAANA,OACAlzB,EAAM,EAANA,OACAmzB,EAAU,EAAVA,WACA+C,EAAW,EAAXA,YAEMvlC,EAAa,CACjBuiC,SACAzvC,KAAM,QAER,OACE,kBAAC,KAAI,KACH,oCACE,kBAAC,KAAiB,eAChBwG,UAAU,gBACN0G,EAAU,CACd9N,KAAK,WACLY,KAAK,cAEP,kBAAC,KAAiB,eAChBwG,UAAU,qBACVpH,KAAK,mBACD8N,EAAU,CACdlN,KAAK,eAIT,kBAAC,KAAiB,CAChBsiC,SAAUA,EACVE,aAAc,OACdqN,OAAQL,GAAgBgD,EACxBjD,MAAOA,GAASkD,EAAc,EAC9BlQ,YAAU,EACVE,cAAa,0CAAqClmB,EAAOvlB,SAAQ,KACjEulB,OAAQA,EACRjL,SAAUo+B,WCzHfgD,GAAkB,CAC7B38C,gBAAiB,UACjB8f,YAAa,UACbjf,aAAc,GACdC,eAAgB,UAChB87C,YAAa,8CACbv8C,kBAAmB,UACnBI,OAAQ,UACR8H,UAAU,EACVmI,YAAa,KACbmsC,UAAW,6BACX/sC,KAAM,UACNkc,SAAU,UACV7L,uBAAwB,UACxBjgB,YAAa,UACbQ,gBAAiB,UACjBqB,GAAI,uCACJ2J,KAAM,6BACNwuC,SAAU,mCACV7wC,KAAM,aACNV,IAAK,uCACLkW,QAAS,UACTlP,UAAW,UACXpO,QAAS,UACTu7C,SAAU,UACV78C,SAAU,UACV45C,QAAS,WAGe,aACxBtxC,UAAU,EACVw0C,6BAA8B,UAC9BC,qBAAsB,GACtBC,mBAAoB,qBACpB98B,uBAAwB,UACxB+8B,gCAAiC,UACjC78C,kBAAmB,UACnB88C,mBAAoB,+BACpBn9C,gBAAiB,UACjBo9C,mBAAoB,OACpB98C,uBACE,2FACF+8C,eAAgB,OAChBC,gBAAiB,UACjBC,aAAc,UACdn9C,iBAAkB,UAClBo9C,uBAAwB,+BACxBC,gBAAiB,UACjBx9C,SAAU,OACVE,UAAW,OACXu9C,WAAY,OACZC,eAAgB,UAChB78C,eAAgB,2BAChB88C,YAAa,gCACblyC,KAAM,uCACNwuC,SAAU,oCACV2C,UAAW,qCA3FQ,CACnBD,YAAa,CAAC,QAAS,QAAS,QAAS,QAAS,SAAU,UAC5D/7C,aAAc,GACdiP,KAAM,UACNkc,SAAU,UACV6xB,MAAO,UACPC,OAAQ,UACRC,KAAM,UACNC,MAAO,UACPC,OAAQ,UACRC,KAAM,UACNC,OAAQ,UACR19C,OAAQ,UACRc,QAAS,UACT68C,KAAM,UACNvE,QAAS,UACTwE,MAAO,OACPvC,OAAQ,UACRj9B,QAAS,UACTlP,UAAW,UACXmQ,YAAa,UACbw+B,YAAa,UACbC,eAAgB,UAChBC,gBAAiB,OACjB7+B,iBAAkB,UAClB8+B,uBAAwB,OACxBC,qBAAsB,OACtBC,oBAAqB,UACrBC,qBAAsB,UACtBh/B,YAAa,UACbi/B,iBAAkB,UAClB/9C,eAAgB,qBAChBT,kBAAmB,Y,cC/BrB,mmGAAAsE,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAkBA,I,GAAMiV,GAAmBF,YAAaC,MAAM,CAC1ChR,IAAK+Q,YACLhF,KAAMgF,YACN0d,YAAa1d,YAAa5I,IAAI,KAC9BwmB,cAAe5d,YACfolC,oBAAqBplC,YACrBqlC,gBAAiBrlC,YACjBud,SAAUvd,YACVslC,QAAStlC,YAETulC,QAASvlC,YACTwlC,UAAWxlC,YACXylC,OAAQzlC,YACRygB,kBAAmBzgB,aAAc0lC,SAAQ,GACzCrlB,aAAcrgB,YACdogB,cAAepgB,aAAc0lC,SAAQ,GACrCplB,gBAAiBtgB,YACjBwhB,YAAaxhB,cAkZA2lC,GA/YK,WAClB,IAAMt/C,EAAQqI,qBAEd,EAAuBkM,cAAfoJ,EAAM,EAANA,OAAQ3b,EAAE,EAAFA,GACVsG,EAAWC,cACjB,EAA4B7C,qBAAWC,KAA/BG,EAAU,EAAVA,WAAY8C,EAAG,EAAHA,IACZsC,GAAcpF,GAAc,IAA5BoF,UAGN2oB,EAKE0rB,GAJF3rB,EAIE2rB,GAHFxrB,EAGEwrB,GAFFvrB,EAEEurB,GADFzrB,EACEyrB,GAEJ,EAAoCj7C,oBAAS,GAAM,mBAA5Ck7C,EAAU,KAAEC,EAAa,KAExB/4C,EAAiB7B,EAAS,CAChCC,QAAS,eACTC,QAAS6uB,EACT5uB,eAAgB,CAAE4D,MAAKgC,IAAe,OAAV9E,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,SACxCjE,MAAOu6C,IAAe52C,IAJhBlC,aAOR,EAII7B,EAAS,CACXC,QAAS9C,EACT+C,QAAS8uB,EACT7uB,eAAgB,CAAEhD,MAClBmD,cAAe,GACfF,KAAiB,WAAX0Y,IARNpc,EAAI,EAAJA,KACAiF,EAAS,EAATA,UACck5C,EAAc,EAA5Bh5C,aASI+S,EAAgBxT,mBACpB,iBAAO,CACL2C,KAAS,OAAJrH,QAAI,IAAJA,OAAI,EAAJA,EAAMqH,MAAO,GAClB+L,MAAU,OAAJpT,QAAI,IAAJA,OAAI,EAAJA,EAAMoT,OAAQ,GACpB0iB,aAAiB,OAAJ91B,QAAI,IAAJA,OAAI,EAAJA,EAAM81B,cAAe,GAClCE,eAAmB,OAAJh2B,QAAI,IAAJA,OAAI,EAAJA,EAAMg2B,gBAAiB,GACtCwnB,qBAAyB,OAAJx9C,QAAI,IAAJA,OAAI,EAAJA,EAAMw9C,sBAAuB,GAClDC,iBAAqB,OAAJz9C,QAAI,IAAJA,OAAI,EAAJA,EAAMy9C,kBAAmB,GAC1C9nB,UAAc,OAAJ31B,QAAI,IAAJA,OAAI,EAAJA,EAAM21B,WAAY,GAC5B+nB,SAAa,OAAJ19C,QAAI,IAAJA,OAAI,EAAJA,EAAM09C,UAAW,GAC1BrjC,KAAS,OAAJra,QAAI,IAAJA,OAAI,EAAJA,EAAMqa,MAAO,GAClBsjC,SAAa,OAAJ39C,QAAI,IAAJA,OAAI,EAAJA,EAAM29C,UAAW,GAC1BC,WAAe,OAAJ59C,QAAI,IAAJA,OAAI,EAAJA,EAAM49C,YAAa,GAC9BC,QAAY,OAAJ79C,QAAI,IAAJA,OAAI,EAAJA,EAAM69C,SAAU,GACxBhlB,mBAAuB,OAAJ74B,QAAI,IAAJA,OAAI,EAAJA,EAAM64B,qBAAqB,EAC9CJ,cAAkB,OAAJz4B,QAAI,IAAJA,OAAI,EAAJA,EAAMy4B,eAAgB,EACpCD,eAAmB,OAAJx4B,QAAI,IAAJA,OAAI,EAAJA,EAAMw4B,iBAAiB,EACtCE,iBAAqB,OAAJ14B,QAAI,IAAJA,OAAI,EAAJA,EAAM04B,kBAAmB,EAC1CkB,aAAiB,OAAJ55B,QAAI,IAAJA,OAAI,EAAJA,EAAM45B,cAAe,MAEpC,CAAC55B,IAGGqyC,EAAY/uC,EAAS,CACzBC,QAAS,YACTC,QAASowC,GACTlwC,KAAMuB,IAG+C,IAAZ,OAATotC,QAAS,IAATA,OAAS,EAATA,EAAWryC,OAAQ,IAA7CyH,KAAM22C,OAAU,MAAG,GAAE,EACvBC,EAAkB35C,mBAAQ,WAC9B,OAAO05C,EAAWnzC,KAAI,gBAAGxK,EAAE,EAAFA,GAAIsH,EAAI,EAAJA,KAAI,OAC/B,4BAAQmD,IAAKzK,EAAItC,MAAOsC,GACrBsH,QAGJ,CAACq2C,IAEEnkC,EAAW7U,sBAAW,wCAC1B,WAAO8f,GAAM,gFAgBJ,GAfCvlB,EAAa4E,EAAb5E,SACRu+C,GAAc,GACR59C,EAAK,2BACN4kB,GAAM,IACTo5B,eAAgB3+C,EAChB0H,IAA+B,KAAhB,OAAV9C,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAAwB,OAANub,QAAM,IAANA,OAAM,EAANA,EAAQ7d,IAAMA,EAEjDgT,SAAK/U,GACD4f,EAAO2T,kBACP,CACEL,eAAe,GAEjB,CACEE,gBAAiB,KACjBD,aAAc,OAGP,WAAXrc,EAAmB,iCACFmW,EAAc,CAAEjyB,UAAS,KAAD,EAArCN,EAAI,OACVmF,IACInF,EAAKC,SACP8G,EAAS,kBAAD,OAAuB,OAAJ/G,QAAI,IAAJA,GAAW,QAAP,EAAJA,EAAMuG,aAAK,OAAgB,QAAhB,EAAX,EAAag4C,sBAAc,WAAvB,EAAJ,EAA6BrrC,KACzD,2BACmB,SAAXkJ,EAAiB,kCACpBoW,EAAc,CAAE/xB,KAAIH,UAAS,KAAD,GAClC69C,IACAh5C,IAAe,8EAGlB,mDA/ByB,GAgC1B,CACEiX,EACA7X,EACAguB,EACA9xB,EACAsG,EACAM,EACA82C,EACAh5C,EACAqtB,IAIEwR,EAAW5+B,sBAAW,uBAAC,qFACP,GAApB84C,GAAc,IACVl+C,EAAKkT,GAAG,CAAD,+BACQuf,EAAchyB,GAAI,KAAD,EAA9BT,EAAI,OACRmF,IACInF,EAAKC,SACP8G,EAAS,aACV,2CAEF,CAAC0rB,EAAehyB,EAAIT,EAAM+G,EAAU5B,IAEjCq5C,EAAkB,SAAC7oC,GACvBA,EAAEC,OAAOzX,MAAQwX,EAAEC,OAAOzX,MAAMyS,QAAQ,QAAS,KAG7C6tC,EAAe/5C,mBACnB,SAACwgB,GACC,IAAM7O,EAAU,GACRwiB,GAAsB74B,GAAQ,IAA9B64B,kBAyCR,OAvCIA,EACFxiB,EAAQG,KAAK,CACXrY,OAAO,EACPyY,MACE,kBAAClM,EAAA,EAAM,CACL4D,SAAU3E,EAAY,EACtBmB,QAGE,aAIFpN,MAAQm7B,EAAiCp6B,EAAM4P,UAAnB5P,EAAM+P,MAAuB,iBAO/D6H,EAAQG,KAAK,CACXrY,OAAO,EACPyY,MACE,kBAAClM,EAAA,EAAM,CACL4D,SAAU3E,EAAY,EACtBmB,QAGE,aAIFpN,MAAOm7B,EAAoBp6B,EAAM+P,KAAO/P,EAAM4P,WAAU,kBAOzDgI,IAET,CAACrW,EAAMvB,EAAM+P,KAAM/P,EAAM4P,UAAW1E,IAiBtC,OACE,kBAACsE,GAAW,KACV,kBAAC,GAAc,CACb2D,GAAG,OACHmZ,YAAU,EACVM,MACa,WAAXjP,EACI,iBAAgB,4BACQ,OAAJpc,QAAI,IAAJA,OAAI,EAAJA,EAAMoT,OAAQ,MAIzCnO,EACC,kBAACqF,GAAA,EAAO,MAER,kBAAC,KAAM,CACLgO,iBAAkBA,GAClBJ,cAAeA,EACf+B,SAAUA,EACVH,gBAAgB,EAChBD,oBAAkB,IAEjB,SAAC6kC,GACA,IAAQx5B,EAAWw5B,EAAXx5B,OAER,OACE,kBAAC,KAAI,KACH,kBAAC,QAAI,CAACnoB,MAAO,EAAGoT,eAAe,UAC7B,kBAAC,OAAG,CAACE,GAAG,OAAOoH,GAAG,WAChB,kBAAC,KAAK,CACJhX,GAAG,oBACHsH,KAAK,oBACLsO,QAASooC,MAKf,kBAAC,QAAI,CACHl1C,WAAW,aACXxM,MAAO,EACP6M,MAAO,CAAEuiB,IAAK,QACdC,cAAe,CAAC,SAAU,SAAU,QAEpC,kBAAC,QAAI,CACHA,cAAc,SACd7iB,WAAW,aACXxM,MAAO,CAAC,EAAG,EAAG,KAEa,KAAhB,OAAVwH,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YACX,kBAAC8M,GAAA,EAAK,CACJlH,UAAQ,EACRJ,UAAU,qBACVpH,KAAK,MACL2O,GAAG,UAEH,4BAAQxL,IAAI,UAAU/M,MAAM,IAAE,qBAG7BkgD,GAGL,kBAAC5nC,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,SACVpH,KAAK,SAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,gBACVpH,KAAK,kBAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,gBACVpH,KAAK,cACLgnC,UAAU,WACVnlC,MAAO,CAAE+0C,OAAQ,QACjBC,QAASJ,KA8Bb,kBAAC,QAAI,CACHpyB,cAAc,SACd7iB,WAAW,aACXxM,MAAO,CAAC,EAAG,EAAG,KAEbmoB,EAAO2T,kBACN,oCACE,kBAACpiB,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,oBACVpH,KAAK,kBACLY,KAAK,WAEP,kBAAC8N,GAAA,EAAK,CACJtH,UAAU,gBACVpH,KAAK,eACLY,KAAK,SAIL2F,SAAU3E,EAAY,IAExB,kBAAC8M,GAAA,EAAK,CACJtH,UAAU,iBACVpH,KAAK,cACLY,KAAK,WACL2F,SAAU3E,EAAY,KAI1B,oCACE,kBAAC8M,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,cACVpH,KAAK,aAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,yBACVpH,KAAK,wBAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,qBACVpH,KAAK,oBAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,YACVpH,KAAK,YAGP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,YACVpH,KAAK,YAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,cACVpH,KAAK,cAEP,kBAAC0O,GAAA,EAAK,CACJnI,SAAU3E,EAAY,EACtBwF,UAAU,WACVpH,KAAK,WAEP,kBAAC,KAAQ,CACPuG,SAAU3E,EAAY,EACtBwF,UAAU,wCACVpH,KAAK,qBAOf,kBAAC,KACC,CACAkjC,SAAU,kBAAMlkC,EAAS,cACzBi9B,SAAUA,EACVmH,aAAc/uB,EACd8uB,WAA0B,IAAdvhC,GAA8B,WAAXyS,EAC/BgvB,cAAa,0CAAqClmB,EAAO9R,KAAI,a,cC5ZzE8nB,GAAUr+B,UAAOwd,IAAG,qEAyKXwkC,GApKM,SAAH,GAAY,EAANC,OAAwB,IAAb7hD,EAAK,mBAChCwB,EAAQqI,qBACRC,EAAWC,cACjB,EAA4B7C,qBAAWC,KAA/BiD,EAAG,EAAHA,IAAK9C,EAAU,EAAVA,WACb,EAA4BjB,EAAS,CACnCC,QAAS,eACTC,QAAS6uB,GACT5uB,eAAgB,CAAE4D,MAAKgC,IAAe,OAAV9E,QAAU,IAAVA,OAAU,EAAVA,EAAYoD,SACxCjE,MAAO2D,IAJDrH,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAOR+oB,EAAWtpB,mBAAQ,WACvB,OAAS,OAAJ1E,QAAI,IAAJA,OAAI,EAAJA,EAAMyH,MACJzH,EAAKyH,KAAKwD,KAAI,SAAC2X,GACpB,MAAuCA,GAAO,GAC9C,MAAO,CAAEniB,GADC,EAAFyS,GACSqH,MADF,EAAHF,IACiBqR,SADD,EAAXoK,YACmCzK,MADlB,EAAJjY,SAFR,OAKvB,CAACpT,IAEEmjB,EAAUze,mBACd,iBAAM,CACJ,CACEjE,GAAI,MACJT,KAAM,SAAC4iB,GAAG,OACR,kBAAC,IAAI,CAAC1lB,QAAM,IACN,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKvI,KACJ,kBAAC,GAAO,CAAClQ,IAAKyY,EAAIvI,IAAKhQ,IAAQ,OAAHuY,QAAG,IAAHA,OAAG,EAAHA,EAAKkT,cAEjC,kBAAC,IAAe,CACdj4B,KAAK,KACL+L,MAAO,CAAElM,MAAOe,EAAMU,QACtB4L,KAAMg0C,8BAKdh+B,OAAQ,UACRljB,KAAM,CAAEyyB,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAE/B,CACEjwB,GAAI,gBACJT,KAAM,gBACN+gB,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAE7B,CACEjwB,GAAI,OACJT,KAAM,OACNnC,KAAM,CAAE0yB,GAAI,EAAGD,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAEtC,CACEjwB,GAAI,cACJT,KAAM,cACN8jB,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAE7B,CACEjwB,GAAI,cACJT,KAAM,gBAAG45B,EAAW,EAAXA,YAAW,OAAO,kBAAC,IAAI,CAAC18B,QAAM,GAAE08B,IACzC7Y,OAAQ,eACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAEtC,CACEjwB,GAAI,eACJsgB,OAAQ,QACR/gB,KAAM,SAAC4iB,GACL,OAAU,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK6V,cACV,kBAAC,IAAQ,CAACt6B,MAAOykB,EAAI6V,eAErB,kBAAC,IAAI,CAACt7B,OAAK,cAGf2mB,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAE7B,CACEjwB,GAAI,kBACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,IAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAK8V,kBAAmB,WACrD3X,OAAQ,eACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG5B,CACEjwB,GAAI,eACJT,KAAM,WACN8W,QAAS,YAAwB,IAArBkY,EAAQ,EAARA,SAAUpM,EAAG,EAAHA,IAChBxP,EAAOwP,EAAIoM,SAAS,QACpB8G,EAAclT,EAAIoM,SAAS,eAC3B9b,EAAK0P,EAAIoM,SAAS,iBAClB6E,EAAW7E,IACf,OACE,kBAAC,QAAI,CAAC5C,cAAc,SAAS7iB,WAAW,UACtC,kBAAC,QAAI,CACHy1C,GAAI,CAAEjiD,MAAO,QACbqvB,cAAc,MACd7iB,WAAW,UAEX,kBAAC,IAAO,CACNK,MAAO,CACL0gB,SAAU,EACVvtB,MAAO,oBACPkiD,SAAU,SACVC,aAAc,WACdC,WAAY,WAGb/rC,GAEH,kBAAC1I,EAAA,EAAM,CACLmM,SAAO,EACPpN,GAAE,yBAAoByJ,GACtBxV,MAAOe,EAAM4P,UACbzD,SAAS,cAGb,yBAAKP,IAAK+I,EAAMjJ,IAAK0pB,IACrB,kBAAC,IAAI,CACHjqB,MAAO,CACLimB,QAAS,SACT9yB,MAAO,OACPkiD,SAAU,SACVC,aAAc,WACdC,WAAY,SACZl1C,UAAW,SAGZ6rB,KAKT/U,OAAQ,GACR+C,MAAM,EACNjmB,KAAM,CAAEuyB,IAAK,EAAGM,GAAI,OAGxB,CAACjyB,EAAMU,OAAQV,EAAM4P,YAGjBP,EAAQ,SAAC8U,GAAG,aAChB7b,EAAS,kBAAD,QAAsB,OAAH6b,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAepV,MAAS,OAAH0P,QAAG,IAAHA,OAAG,EAAHA,EAAK1P,MAAS,OAAH0P,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,OAElE,OACE,kBAACwN,GAAW,KACV,kBAAC,GAAK,eACJod,MAAM,WACNW,WAAW,mBACXd,eAAe,kBACfY,iBAAiB,UACjBD,iBAAiB,iBACjB0B,YAAazf,EACb6U,WAAY7U,EACZ9N,KAAU,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMyH,KACZumB,SAAUA,EACV7K,QAASA,EACTwJ,WAAgB,OAAJ3sB,QAAI,IAAJA,OAAI,EAAJA,EAAM8f,MAClB7a,UAAWA,GACPhI,MCnHGmiD,GA3DqB,SAAH,GAAsB,IAAhBhhD,EAAQ,EAARA,SACrC,EAA0C2E,mBAAS,MAAK,mBAAjDy2B,EAAa,KAAE7F,EAAgB,KACtC,EAA0B5wB,mBAAS,MAAK,mBAAjCoJ,EAAK,KAAEynB,EAAQ,KACtB,EAA0C7wB,oBAAS,GAAM,mBAAlD0wB,EAAa,KAAEkI,EAAgB,KACtC,EAAsB54B,mBAAS,CAAEgS,EAAG,CAAEyD,MAAO,MAAO,mBAA7ClE,EAAG,KAAED,EAAM,KAClB,EAAkCtR,oBAAS,GAAM,mBAA1CyR,EAAS,KAAEkf,EAAY,KAC9B,EAAgC3wB,oBAAS,GAAM,mBAAxCoyB,EAAQ,KAAEkqB,EAAW,KAC5B,EAAsCt8C,mBAAS,GAAE,mBAA1C+X,EAAgB,KAAErG,EAAS,KAClC,EAAsC1R,mBAAS,GAAE,mBAA1CkV,EAAW,KAAE4C,EAAc,KAClC,EAAoC9X,oBAAS,GAAM,mBAA5C0uB,EAAU,KAAEoK,EAAa,KAChC,EAA8C94B,mBAAS,GAAE,mBAAlDu8C,EAAe,KAAEC,EAAkB,KAC1C,EAA0Cx8C,mBAAS,IAAG,mBAA/CqR,EAAa,KAAEG,EAAgB,KACtC,EAAgCxR,oBAAS,GAAM,mBAAxCy8C,EAAQ,KAAEC,EAAW,KAC5B,GAAoC18C,oBAAS,GAAM,qBAA5C28C,GAAU,MAAEC,GAAa,MAChC,GAAgC58C,oBAAS,GAAM,qBAAxC6hC,GAAQ,MAAEiJ,GAAW,MAC5B,GAAgD9qC,mBAC9C2G,GACD,qBAFMqR,GAAgB,MAAE6gB,GAAmB,MAI5C,OACE,kBAACznB,GAAA,EAAoB/Q,SAAQ,CAC3BjF,MAAO,CACLq7B,gBACA7F,mBACAxnB,QACAynB,WACAH,gBACAkI,mBACArnB,MACAD,SACAG,YACAkf,eACAyB,WACAkqB,cACAvkC,mBACArG,YACAwD,cACA4C,iBACAykC,kBACAC,qBACAnrC,gBACAG,mBACAirC,WACAC,cACAC,cACAC,iBACA5kC,oBACA6gB,uBACAnK,aACAoK,gBACA+I,YACAiJ,iBAGDzvC,I,mCCzDP,mmGAAAiF,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAYA,IAmNeu8C,GAnNa,SAAH,GAAsB,IAAhBxhD,EAAQ,EAARA,SAKvByhD,EAAKz3C,OAAOC,eAAey3C,QAAQ,YACjCngD,GAAaogD,KAAeC,eAAiB,IAA7CrgD,SACR,EAAuBqxB,cACjBje,EADkC,iBAArB,GACY7F,IAAI,cAAgB,GAEnD,EAAgCnK,qBAAWpD,GAAS,mBAA7C8E,EAAQ,KAAE2C,EAAW,KAC5B,EAAoCrE,mBAAS,MAAK,mBAA3CwB,EAAU,KAAE4C,EAAa,KAChC,EAAgCpE,oBAAS,GAAM,mBAAxCkC,EAAS,KAAEC,EAAU,KAC5B,EAA8BnC,mBAAS,IAAG,mBAAnCgB,EAAO,KAAEE,EAAU,KAC1B,EAAgClB,oBAAS,GAAM,mBAAxCk9C,EAAQ,KAAEC,EAAW,KAC5B,EAA0Cn9C,mBAAS,IAAG,mBAA/CgvC,EAAa,KAAEoO,EAAgB,KACtC,EAAkDp9C,mBAAS,IAAG,mBAAvDq9C,EAAiB,KAAEC,EAAoB,KAC9C,EAAgDt9C,mBAAS,GAAE,mBAApDu9C,EAAgB,KAAEC,EAAmB,KAC5C,EAA0Cx9C,oBAAS,GAAM,mBAAlDuE,EAAa,KAAEC,GAAgB,KAE9BgsB,GAAqBpvB,qBAAWsqB,GAAhC8E,iBACAhxB,GAAiB4B,qBAAWhC,GAA5BI,aAEFyB,GAAcoB,uBAAY,SAACpF,GACL,oBAAfiE,GAA2BA,EAAWjE,KAChD,IAEH,GAAgC+C,oBAC9BgQ,GAA2B,SAAP8sC,GACrB,qBAFM54C,GAAQ,MAAEC,GAAW,MAItBs5C,GAAsBp7C,uBAC1B,SAACktC,GACC,MAA8BA,GAAQ,GAA9B3yC,EAAQ,EAARA,SACAkJ,GADiB,EAAPD,SACgB,IAA1BC,WACRs3C,EAAiB,2BAAKpO,GAAa,kBAAGpyC,EAAWkJ,OAEnD,CAACkpC,IAGK1qC,IAAQ9C,GAAc,IAAtB8C,IAER,GAII/D,EAAS,CACXS,UACAE,aACAV,QAAS,WACTC,QAASkwC,GACTjwC,eACGgB,GAAsC,KAAhB,OAAVF,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAErB,CAAElJ,GAAI4G,IADN,CAAEssC,iBAAiB,GAEzB/vC,cAAe,GACfF,KACEuB,GACCR,IAAa4C,KAAiB,OAAV9C,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAAY,GAC5ClF,IAAaF,IAhBVC,GAAQ,GAAdxE,KACWygD,GAAe,GAA1Bx7C,UACcivC,GAAe,GAA7B/uC,aAiBIu7C,GAAoBt7C,uBACxB,SAACpF,GACC,MAA+CA,EAAvC2gD,oBAAY,MAAG,GAAE,EAAEC,EAAoB5gD,EAApB4gD,gBAI3B,GAHAt6C,QAAQyX,IAAI/d,GACZqgD,EAAqBM,IAEP,OAAVp8C,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YAAa,GAAKnF,GAAU,CAC1C,IAAwBq8C,EAAYr8C,GAA5Bs8C,eACFj0C,EAASpE,KAAKysB,MAAM2rB,GAAS7wC,MAAM,KACzC2wC,EAAahoC,SAAQ,SAAChW,GACpB,IAMMmK,EAAO,6BACX6zC,EAAan2C,OAAS,EAAI,SAAW,QAAO,KAExCuC,EACJ,6BACG4zC,EAAa11C,KAAI,SAACtI,GACjB,OAAO2f,OAAO/B,KAAK5d,GAAOsI,KAAI,SAACsL,GAAG,OAAK,2BAAIA,UAIjDgqC,EAAoBK,GAChB76C,IAAEuvB,QAAQzoB,IACZk0C,GAA0B,CACxBl0C,SACAC,UACAC,aAIAwmB,IACFA,GAAiB,UAAD,OACJ5wB,EAAMq+C,iBAAgB,8BA3BhB,CAClBC,EAAG,UACHC,EAAG,UACHC,EAAG,UACHC,EAAG,WAwBaz+C,EAAMgsC,mBAM9B,CAACpqC,EAAYC,GAAU+uB,KAGnBxC,GAAkB3rB,sBAAW,wCACjC,WAAOktC,EAAM1yC,GAAM,+EACZ0yC,EAAK,CAAD,eACW,OAAlBptC,GAAW,GAAO,6BAIL,OAAVX,QAAU,IAAVA,OAAU,EAAVA,EAAY9D,GAAG,CAAD,gBACA,OAAjByE,GAAW,GAAM,SAEUxF,EAAQ,CACjCC,SAAU2yC,EACV1yC,WACC,KAAD,EAEY,GALRyhD,EAAY,OAKFC,GAAgBD,GAAgB,IAAxCjhD,OAES,CAAD,yCAASkG,QAAQyX,IAAI,YAAU,QAgB7B,OAdlB5W,EAAcm6C,GACd9gD,EAAW,CAAEC,GAAe,OAAX6gD,QAAW,IAAXA,OAAW,EAAXA,EAAa7gD,GAAIH,MAAO,CAAEuI,YAAY,KACvDzB,GAAY,GACNm6C,EAAkB,CACtBvhD,KAAMshD,EACNn8C,aAAc4rB,GACdxrB,QAAS4B,EACTlC,WAAW,GAGbhB,EAAW,2BAAKF,GAAO,kBAAGu9C,EAAY3hD,SAAW4hD,KAEjDh/C,GAAa,CAAE+vC,OAAMkO,uBAAqBE,uBAE1Cx7C,GAAW,GAAO,+DAIrB,qDArCgC,GAsCjC,CAACX,EAAYR,EAASy8C,GAAqBE,GAAmBn+C,KAGhEuC,qBAAU,WACJ+6C,GACJz3C,OACGo5C,WAAW,gCACX/kC,iBAAiB,UAAU,SAAU9G,GACpC,IAAM8rC,EAAS9rC,EAAE2/B,QACXoM,EAAMt5C,OAAOC,eAAey3C,QAAQ,YAC1C54C,GAAoB,SAARw6C,GAAgC,UAARA,GAA0BD,QAEjE,CAAC5B,IAEJ/6C,qBAAU,WACR,IAAMmB,EAAa,IAAIC,gBAIvB,OAFKjB,GAAW8rB,GAAgBpxB,EAAUsG,EAAWrG,QAE9C,kBAAMqG,EAAWE,WACvB,CAAC4qB,GAAiB9rB,EAAWtF,IAEhC,IAAMgiD,GAAUj9C,mBAAQ,WACtB,SAAIO,GAAaw7C,KAAoBj8C,KAAcD,GAAcE,KAGhE,CAACF,EAAYU,EAAWR,EAAUD,GAAUi8C,KAE/C,OACE,kBAACr8C,EAAA,EAAYhB,SAAQ,CACnBjF,MAAO,CACLoG,aACA0C,YACAC,eACAjC,UAAW08C,GACXx6C,gBACA1C,WACA2C,cACA2pB,mBACAqvB,oBACAC,uBACAE,sBACAD,mBACA3gD,WACA6E,YACAT,UACAE,WAAYD,GACZi8C,WACAC,cACAnO,gBACAoO,mBACA94C,OACAnC,aACAu7C,mBACAvM,mBACA5sC,gBACAC,sBAGDnJ,I,cC1NP,mmGAAAiF,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAEA,IAAMu+C,GAA0C,WAA7Bx5C,OAAOu1B,SAASkkB,SAAwB,OAAS,MAC9DC,GAAS15C,OAAOu1B,SAASokB,SACzBC,IAAS55C,OAAOu1B,SAASkkB,SAAwB,SAEjDI,GAAK,UAAML,GAAU,aAAKE,IAAM,OAAGE,IAAM,OADhC,KA0EAE,GAvEe,SAAH,GAAsB,IAAhB9jD,EAAQ,EAARA,SAC/B,EAA4B2E,qBAAU,mBAA/BV,EAAM,KAAEC,EAAS,KAElB6/C,EAAgB/8C,sBAAW,uBAAC,qFACA,OAA1Bg9C,EAAK,IAAIC,UAAUJ,IAAM,kBACxB,IAAIK,SAAQ,SAACC,GAClB,IAAMC,EAAQC,aAAY,WACF,IAAlBL,EAAGM,aACLC,cAAcH,GACdlgD,EAAU8/C,GACVG,EAAQH,MAET,QACH,2CACD,IAEGQ,EAAmBx9C,sBAAW,wCAClC,0FAA+C,OAAtCo7C,EAAmB,EAAnBA,oBAAqBE,EAAiB,EAAjBA,kBAAiB,SAC5ByB,IAAgB,KAAD,EAiBlB,OAjBRC,EAAE,QAELS,UAAY,SAACrtB,GACd,IACA,EADuB/sB,KAAKysB,MAAMM,EAAQx1B,OACD,GAAjCA,EAAI,EAAJA,KAAM2I,EAAI,EAAJA,KACd,GAAa,cAATA,EAAsB,CACxB,IAAQ/H,GAAUZ,GAAQ,IAAlBY,MACR0hB,OAAOC,QAAQ3hB,GAAO+X,SAAQ,SAACmqC,GAC7B,IAAWxQ,EAASwQ,EAAZ,GACRtC,EAAoBlO,MAGX,kBAAT3pC,GACF+3C,EAAkB1gD,IAItBsC,EAAU8/C,GAAI,kBACPA,GAAE,2CACV,mDArBiC,GAsBlC,CAACD,IAGG5/C,EAAe6C,sBAAW,wCAC9B,0FAAqD,OAA5CktC,EAAI,EAAJA,KAAMkO,EAAmB,EAAnBA,oBAAqBE,EAAiB,EAAjBA,kBAAiB,SAC7BkC,EAAiB,CACrCpC,sBACAE,sBACC,KAAD,EAHW,OAILl4C,KACNC,KAAKC,UAAU,CACb/I,SAAU2yC,EACV3pC,KAAM,YACNC,QAAS,CAAEC,YAAY,MAEzB,2CACH,mDAb6B,GAc9B,CAAC+5C,IAGH,OACE,kBAAC,EAAcx/C,SAAQ,CACrBjF,MAAO,CACLkE,SACAC,YACAC,iBAGDnE,ICrCQ2kD,GAlCc,SAAH,GAAsB,IAAhB3kD,EAAQ,EAARA,SAC9B,EAA4B2E,mBAAS,IAAG,mBAAjCo0B,EAAM,KAAEC,EAAS,KAElB4rB,EAAY59C,uBAChB,SAACyyB,EAAWD,GACV,IACMqrB,EAAW,CAAEprB,YAAWD,aAAYn3B,GAD/B0wB,2BAEP+xB,EAAc,YAAO/rB,GACzB+rB,EAAe79B,OAAO,EAAG,EAAG49B,GAE5B7rB,EAAU8rB,KAEZ,CAAC/rB,IAOH,OACE,kBAAC1I,GAAA,EAAarrB,SAAQ,CACpBjF,MAAO,CACLg5B,SACAC,YACArlB,iBATmB,SAAC8lB,GAAS,OAAKmrB,EAAUnrB,EAAW,WAUvDtE,iBATmB,SAACsE,GAAS,OAAKmrB,EAAUnrB,EAAW,YAUvDvE,iBATmB,SAACuE,GAAS,OAAKmrB,EAAUnrB,EAAW,cAYxDz5B,ICsFQ+kD,GAjHQ,WACrB,IAAMp8C,EAAWC,cAEjB,EADuB7C,qBAAWC,KAA1BG,YACiC,GAAjC8C,EAAG,EAAHA,IAAKsC,EAAS,EAATA,UAETqkB,EAAWtpB,mBACb,iBAAM,CACJ,CACE2mB,MAAO,QACPuY,KAAM,SACNh5B,SAAU,WAEZ,CACEygB,MAAO,SACPuY,KAAK,WAAD,OAAav8B,GACjBuD,SAAU,eAEZ,CACEygB,MAAO,WACPuY,KAAM,YACNh5B,SAAU,kBAEZ,CACEygB,MAAO,YACPuY,KAAK,cAAD,OAAgBv8B,GACpBuD,SAAU,YAOZ,CACEygB,MAAO,eACPuY,KAAK,gBACLh5B,SAAU,cAEZ,CACEygB,MAAO,SACPuY,KAAK,WAAD,OAAav8B,GACjBuD,SAAU,aAEZ,CACEygB,MAAO,OACPuY,KAAK,SAAD,OAAWv8B,GACfuD,SAAU,aAGd,CAACvD,IA+CH,OA5CIsC,GAAa,IACfqkB,EAAQ,sBACHA,GAAQ,CACX,CACE3C,MAAO,eACPuY,KAAM,eACNh5B,SAAU,cAEZ,CACEygB,MAAO,oBACPuY,KAAK,mBAAD,OAAqBv8B,GACzBuD,SAAU,WAEZ,CACEygB,MAAO,aACPuY,KAAK,WAAD,OAAav8B,GACjBuD,SAAU,eAEZ,CACEygB,MAAO,aACPuY,KAAK,WAAD,OAAav8B,GACjBuD,SAAU,qBAGE,IAAdjB,IACFqkB,EAAQ,sBACHA,GAAQ,CACX,CACE3C,MAAO,kBACPuY,KAAK,SAAD,OAAWv8B,GACfuD,SAAU,gBAEZ,CACEygB,MAAO,YACPuY,KAAK,aACLh5B,SAAU,gBAEZ,CACEygB,MAAO,gBACPuY,KAAM,gBACNh5B,SAAU,aAKd,kBAACqD,GAAW,KACV,kBAAC,GAAK,CACJod,MAAM,iBACNN,YAAU,EACVD,UAAQ,EACRkD,SAAUA,EACVT,YAAa,SAACF,GAAI,OAAKtmB,EAASsmB,EAAKuW,OACrCxV,WAAS,EACTF,YAAU,EACVD,WAAS,EACTI,YAAU,EACVF,gBAAc,M,iFCvGhBi1B,GAAqB,SAACnmD,GAC1B,MAA+B6J,qBAAvByW,EAAO,EAAPA,QAASlP,EAAS,EAATA,UACjB,EAUIpR,GAAS,GARX2Z,GADM,EAANwhC,OACK,EAALxhC,OACAxH,EAAW,EAAXA,YACArH,EAAI,EAAJA,KACAyO,EAAI,EAAJA,KACA1O,EAAM,EAANA,OACAu7C,EAAO,EAAPA,QACAl0C,EAAS,EAATA,UACGS,EAAI,mBAEDqF,EAAkBC,eAAlBD,cAER,EAAsBpF,aAAS9H,GAAK,mBAA7B+H,EAAK,KAAEwzC,EAAI,KAEZC,EAAS7+C,mBAAQ,WAErB,OADYoL,EAAM3R,OAAS,CAAC,MAE3B,CAAC2R,IAEE0zC,EAAez9C,IAAE09C,KAAK7zC,EAAMyzC,GAElC,OACE,kBAAC,MAAG,CAACtmD,MAAO,GACV,kBAACqT,GAAA,EAAK,KAAEwG,GAASzH,GACjB,kBAAC,IAAM,CAACkB,GAAG,UAAUjB,GACd,OAANm0C,QAAM,IAANA,OAAM,EAANA,EAAQt4C,KAAI,SAAC9M,EAAOkF,GACnB,OACE,kBAAC,OAAI,CAACtG,MAAO,EAAGsT,GAAG,OAAOnF,IAAG,UAAKnD,EAAI,YAAI1E,GAAKkG,WAAW,UACxD,kBAAC,MAAG,CAACxM,MAAO,EAAGsT,GAAG,QAAQwpB,GAAG,QAC3B,kBAAC,KAAiB,eAChBp5B,GAAE,UAAKsH,EAAI,YAAI1E,GACf6L,SAAO,EACPhE,IAAG,UAAKnD,EAAI,YAAI1E,GAChBsF,KAAK,OACL+M,SAAU,SAACC,GAAC,OAAKV,EAAc,GAAD,OAAIlN,EAAI,YAAI1E,GAAKsS,EAAEC,OAAOzX,QACxD4J,KAAI,UAAKA,EAAI,YAAI1E,GACjBkD,MAAO+8C,EAAK/8C,OACRi9C,KAGPngD,IAAMkgD,EAAO/4C,OAAS,GACrB,kBAACE,EAAA,EAAM,CACLhN,MAAO6f,EACP3S,SAAS,SACTE,QAAS,kBAAM0L,EAAK,OAGL,IAAlB+sC,EAAO/4C,QACN,kBAACE,EAAA,EAAM,CACLhN,MAAO2Q,EACPzD,SAAS,UACTE,QAAS,kBAAMhD,EAAOzE,UAOb,IAAlBkgD,EAAO/4C,OACN,kBAACE,EAAA,EAAM,CAAChN,MAAO6f,EAAS3S,SAAS,SAASE,QAAS,kBAAM0L,EAAK,OAC5D,OAcKktC,GATO,SAACzmD,GAAK,OAC1B,kBAAC,KAAU,iBACLA,EAAK,CACT0mD,OAAQ,SAACN,GAAO,OACd,kBAAC,GAAkB,iBAAKpmD,EAAWomD,EAAO,CAAEA,QAASt9C,IAAEwa,KAAK8iC,W,cCjFlE,mmGAAAhgD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAiBA,IAAQqwC,GAAgDrB,GAAnCyB,GAAmCzB,GAAnBwB,GAAmBxB,GAElD/5B,GAAmBF,YAAaC,MAAM,CAC1CtQ,KAAMqQ,YACN0oC,eAAgB1oC,SAAUA,YAAauY,SAASmtB,QAAQ,IACxD/W,YAAa3uB,YACbm+B,WAAYn+B,aACZlE,aAAckE,aACdwrC,uBAAwBxrC,YACxBg9B,UAAWh9B,eAkLEyrC,GA/KU,WACvB,MAAwB7wC,cAAhB3L,EAAG,EAAHA,IAAK+U,EAAM,EAANA,OACPrV,EAAWC,cAET3E,EAAW8B,qBAAWhC,GAAtBE,OACAkC,EAAeJ,qBAAWC,KAA1BG,WAER,EAA0CjB,EAAS,CACjDC,QAAQ,QAAD,OAAU8D,GACjB7D,QAASkwC,GACTjwC,eAAgB,CAAEhD,GAAI4G,GACtBzD,cAAe,GACfF,MAAO2D,IALDrH,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAQnB+S,EAAgBxT,mBAAQ,WAC5B,MAOI1E,GAAQ,GANV+H,EAAI,EAAJA,KACA+4C,EAAc,EAAdA,eACA/Z,EAAW,EAAXA,YACAwP,EAAU,EAAVA,WACAriC,EAAY,EAAZA,aACA0vC,EAAsB,EAAtBA,uBAEF,MAAO,CACL9C,eACEA,GAAkBA,EAAet2C,OAAS,EACtCs2C,EAAe9wC,MAAM,KACrB,CAAC,IACPjI,KAAMA,GAAQ,GACdg/B,YAAaA,GAAe,UAC5BwP,WAAYA,IAAc,EAC1BriC,aAAcA,IAAgB,EAC9B0vC,uBAAwBA,GAA0B,aAEnD,CAAC5jD,IAEEia,EAAW7U,sBAAW,wCAC1B,wGAU0D,GAV1D,IACE07C,sBAAc,MAAG,GAAE,EACnB/4C,EAAI,EAAJA,KACAg/B,EAAW,EAAXA,YACY+c,EAAW,EAAvBvN,WACcwN,EAAa,EAA3B7vC,aACA0vC,EAAsB,EAAtBA,uBAEMI,EAAej+C,IAAEiL,SAAS8vC,GAC1BvK,GAA6B,IAAhBuN,EAAuB,IAAM,IAC1C5vC,GAAiC,IAAlB6vC,EAAyB,IAAM,IACrC,WAAX3nC,EAAmB,iCACfy3B,GAAe,CACnBvzC,MAAO,CACLwgD,eAAgBkD,EAChBj8C,OACAg/B,cACAwP,aACAriC,kBAED,KAAD,EACFnN,EAAS,cAAc,yCAEjB+sC,GAAe,CACnBrzC,GAAI4G,EACJ/G,MAAO,CACLwgD,eAAgBkD,EAChBj8C,OACAg/B,cACAwP,aACAriC,eACA0vC,4BAED,KAAD,GACFvhD,EAAOmG,KACLC,KAAKC,UAAU,CACbC,KAAM,gBACNhJ,SAAoB,OAAV4E,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,SACtBiJ,QAASk4C,KAEX,QAEJ37C,EAAa,aAAa,4CAC3B,mDA5CyB,GA6C1B,CAACiX,EAAQ7X,EAAYlC,EAAQ0E,EAAUM,EAAKlC,IAExC8lC,EAAW7lC,uBAAY,kBAAM2B,EAAS,qBAAoB,CAACA,IAEjE,OACE,kBAACkH,GAAW,KACV,kBAAC,GAAc,CACb2D,GAAG,OACHmZ,YAAU,EACVM,MAAkB,WAAXjP,EAAsB,kBAAoB,yBAGlDnX,EACC,kBAACqF,GAAA,EAAO,MAER,kBAAC,KAAM,CACL2P,SAAUA,EACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,IAEjB,SAACoqC,GACA,IACE/L,EAME+L,EANF/L,MACAC,EAKE8L,EALF9L,aACAgD,EAIE8I,EAJF9I,aACA/C,EAGE6L,EAHF7L,OACAlzB,EAEE++B,EAFF/+B,OACAmzB,EACE4L,EADF5L,WAEF,OACE,kBAAC,KAAI,KACH,kBAAC5hC,GAAA,EAAK,CACJtH,UAAU,gBACVpH,KAAK,OACLY,KAAK,OACLyvC,OAAQA,IAEV,kBAAC8L,GAAU,CACT90C,YAAW,+IACXwH,MAAM,mCACN7O,KAAK,iBACLqwC,OAAQA,IAEV,kBAAC3hC,GAAA,EAAK,CACJtH,UAAU,mBACVpH,KAAK,cACLgnC,UAAU,UAEV,4BAAQ5wC,MAAM,WAAS,kBACvB,4BAAQA,MAAM,UAAQ,UACtB,4BAAQA,MAAM,OAAK,QAGG,QAAvB+mB,EAAO6hB,aACN,kBAACtwB,GAAA,EAAK,CACJ1O,KAAK,yBACLoH,UAAU,gCACVC,YAAW,sGAIf,kBAAC,OAAG,CAACqI,GAAG,UACN,kBAACP,GAAA,EAAQ,CACPnP,KAAK,aACLoH,UAAU,wDAGd,kBAAC,OAAG,CAACsI,GAAG,UACN,kBAACP,GAAA,EAAQ,CACPnP,KAAK,eACLoH,UAAU,gBACVC,YAAY,6FAIhB,kBAAC,KAAiB,CAChBopC,OAAQL,GAAgBgD,EACxBjD,MAAOA,EACPhzB,OAAQA,EACRjL,SAAUo+B,EACVpN,SAAUA,EACVC,YAAU,UC5HbiZ,GA9DO,WACpB,IAAMp9C,EAAWC,cAEjB,EAA4B1D,EAAS,CACnCC,QAAS,YACTC,QAASowC,GACThwC,cAAe,KAHT5D,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAKd,EAAiCjF,GAAQ,GAAE,IAAnC8f,aAAK,MAAG,EAAC,MAAErY,YAAI,MAAG,GAAE,EAOtB0b,EAAUze,mBACd,iBAAM,CACJ,CACEjE,GAAI,KACJT,KAAM,KACN+gB,OAAQ,cACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,OACJT,KAAM,OACN+gB,OAAQ,OACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,iBACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,KAAK,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKk+B,iBAC3B//B,OAAQ,kBACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAG9B,IAGF,OACE,kBAACziB,GAAW,KACV,kBAAC,GAAK,CACJ+d,WAAW,oBACXd,eAAe,kBACfY,iBAAiB,kBACjBD,iBAAiB,kBACjBR,MAAM,YACNK,SAAS,6EACT0C,WAAS,EACTF,YAAU,EACVC,gBAAc,EACdE,YAAU,EACVlL,QAASA,EACTnjB,KAAMyH,EACNxC,UAAWA,EACX0nB,WAAY7M,EACZ6C,WA9Ca,SAACC,GAClB,IAAQniB,IAAU,OAAHmiB,QAAG,IAAHA,OAAG,EAAHA,EAAK0F,WAAY,IAAxB7nB,GACRsG,EAAS,mBAAD,OAAoBtG,S,cCnBhC,26MACO,IAAM2jD,GAAc,wCAAG,WAAOjkD,GAAI,iGAEnBN,IAAMC,KACtB,yCACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ0B,sCAyBd89C,GAAgB,wCAAG,WAAOlkD,GAAI,iGAErBN,IAAMC,KACtB,2CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ4B,sCAahB+9C,GAAgB,wCAAG,WAAOnkD,GAAI,iGAErBN,IAAMC,KACtB,2CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ4B,sCAahBg+C,GAAgB,wCAAG,WAAOpkD,GAAI,iGAErBN,IAAMC,KACtB,2CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ4B,sC,cCpD7B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAYA,IAAMiV,GAAmBF,YAAaC,MAAM,CAC1CtQ,KAAMqQ,YACNosC,QAASpsC,aACTzO,UAAWyO,YAER3I,IAAI,EAAG,iDACPD,IACC,EACA,0GAEJi1C,aAAcrsC,YAAa3I,IAAI,EAAG,8CA4LrBi1C,GAzLQ,SAAH,GAUb,IATL1kD,EAAI,EAAJA,KACA8f,EAAK,EAALA,MACA6kC,EAAW,EAAXA,YAAY,EAAD,EACXvS,aAAK,MAAG,GAAE,MACVwS,iBAAS,MAAG,EAAC,EACb9zB,EAAO,EAAPA,QACAuS,EAAO,EAAPA,QACA99B,EAAO,EAAPA,QACAs/C,EAAM,EAANA,OAEMpmD,EAAQqI,qBACNysB,EAAqBpvB,qBAAWsqB,MAAhC8E,iBAER,EAAuDoxB,GAAe,GAA9DlkD,EAAE,EAAFA,GAAIsH,EAAI,EAAJA,KAAM4B,EAAS,EAATA,UAAW86C,EAAY,EAAZA,aAEvBvsC,EAAgB,CACpBnQ,KAAMA,GAAQ,GACd4B,UAAWA,GAAa,EACxB66C,QALgD,EAAPA,UAKrB,EACpBC,aAAcA,GAAgB,GAG1BxqC,EAAW7U,sBAAW,wCAC1B,WAAO20C,EAAQ,GAAD,8FAOE,GAPE5b,EAAS,EAATA,UAAS,SAEf19B,GAAOkkD,GAAe,IAAtBlkD,IACFykB,EAAM,eAAQ60B,IACbyK,QAAUzK,EAAQyK,QAAU,IAAM,IACzCt/B,EAAOvb,WAAaowC,EAAQpwC,UAEpBlC,EAASzH,EAATyH,KAEO,WAAXo9C,EAAmB,kCACAjkB,GAAmB,CAAEtgC,MAAO4kB,IAAU,KAAD,GAApD9kB,EAAM,OACN0kD,EAAM,2BACP1kD,GAAM,IACTokD,QAASzK,EAAQyK,UAGb7Z,EAAU5kC,IAAE6kC,OAAO,GAAD,mBAAKnjC,GAAI,CAAEq9C,IAAS,CAAC,iBAEvCt/C,EAAU,CAAEiC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,GAEhDyT,EAAiB,qCAAD,OACuBrO,EAAOnd,MAAQtH,IAEtD8E,EAAQC,GACRsrB,GAAQ,GAAO,yCAEa8P,GAAmB,CAAEngC,KAAIH,MAAO4kB,IAAU,KAAD,GAA/D4lB,EAAa,OAEbga,EAAM,2BACPha,GAAa,IAChB0Z,QAASzK,EAAQyK,UAGnBjxB,EAAiB,qCAAD,OACuBrO,EAAOnd,MAAQtH,IAEhDkqC,EAAU5kC,IAAE6kC,OAChBnjC,EAAKwD,KAAI,SAAC2X,GAER,OADsBA,EAAdniB,KACMA,EACLqkD,EAEFliC,KAET,CAAC,iBAGGpd,EAAO,2BAAQxF,GAAI,IAAEyH,KAAMkjC,IACjCplC,EAAQC,GACRsrB,GAAQ,GAAO,QAEjBqN,IAAY,kDAEZ73B,QAAQC,MAAM,EAAD,IAAQ,0DAExB,qDAxDyB,GAyD1B,CAACuZ,EAAO6kC,EAAa3kD,EAAMuF,EAASurB,EAASyC,EAAkBsxB,IAG3D7gB,EAAW5+B,uBAAY,WAC3Bw7B,GAAmB,CAAEngC,OACrB,IAAQgH,EAASzH,EAATyH,KACFkjC,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAOA,KACtC8E,EAAQ,CAAEkC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IACxCgR,GAAQ,KACP,CAAChR,EAAO9f,EAAMS,EAAI8E,EAASurB,IAE9B,OACE,kBAAC1Z,GAAA,EAAI,KACH,kBAAC,KAAM,CACL6C,SAAUA,EACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,IAEjB,SAAC6kC,GACA,IAAQx5B,EAA0Bw5B,EAA1Bx5B,OAAQjQ,EAAkBypC,EAAlBzpC,cAChB,OACE,oCACE,kBAAC,GAAc,CACbrD,GAAG,OACHmZ,YAAU,EACVD,UAAQ,EACRI,eAAgB,kBAAM4F,GAAQ,IAC9BzF,MAAK,UAAgB,WAAXw5B,EAAsB,SAAW,OAAM,kBAEnD,kBAAC,KAAI,KACH,kBAAC,KAAK,CACJ9uC,UAAsB,WAAX8uC,EACX11C,UAAU,OACVpH,KAAK,SAEP,kBAAC,KAAK,CACJoH,UAAU,gBACVpH,KAAK,eACLY,KAAK,WAGP,kBAAC,QAAI,CAACyjB,cAAc,SAASrvB,MAAO,GAClC,kBAAC,KAAK,CAACuT,QAAQ,YAAYjT,MAAI,yBAG/B,kBAAC,IAAM,CAACgT,GAAG,SAAO,4EAIlB,kBAAC,KAAK,CACJtI,KAAK,YACLoP,YAAa,IAAMytC,EACnBvuC,QACE+7B,EAAMnnC,KAAI,SAACunC,GAAI,MAAM,CACnBr0C,MAAOq0C,EAAK7oC,UACZiN,MACE,kBAACQ,GAAA,EAAI,CACHra,MAAO,EACPmO,IAAKsnC,EAAK7oC,UACV0N,SAAO,EACPC,OAAQ4N,EAAOvb,YAAc6oC,EAAK7oC,UAClC4N,aAAW,EACX3M,SAAUy4B,EAAQmP,EAAK7oC,WACvBmB,QAAS,kBACPmK,EAAc,YAAau9B,EAAK7oC,aAGlC,kBAAC,IAAI,CACHC,MAAO,CAAEyV,WAAY,yBACrB3hB,MACEwnB,EAAOvb,YAAc6oC,EAAK7oC,UACtBlL,EAAM4P,eACN/I,EAENmS,GAAG,SACHva,QAAM,EACNG,MAAI,GAEHm1C,EAAKzqC,YAIP,MAIb,kBAAC,KAAQ,CAACoH,UAAU,aAAapH,KAAK,YACtC,kBAAC,KAAiB,CAChBi8B,SAAUA,EACViH,SAAU,kBAAMna,GAAQ,IACxBoa,WAA4B,WAAhByZ,EACZxZ,aAA8B,WAAhBwZ,EAA2B,SAAW,OACpDvZ,cAAa,0CAAqClmB,EAAOnd,KAAI,cCzLzEg9C,GAAK,SAAH,GAAmB,IAAb5mD,EAAK,EAALA,MACNM,EAAQqI,qBAERpI,EAAkBgG,mBAAQ,WAC9B,MAAI,CAAC,OAAQ,QAAQ,GAAMiM,SAASxS,GAAeM,EAAMwB,QAClDxB,EAAMU,SACZ,CAACV,EAAMU,OAAQV,EAAMwB,QAAS9B,IAEjC,OACE,kBAAC,QAAI,CAAC+M,IAAKimB,0BAAgBp0B,MAAO,EAAGoT,eAAe,UAClD,yBACEvG,MAAO,CACL7M,MAAO,OACPgN,OAAQ,OACRxK,aAAc,MACdsyC,OAAO,aAAD,OAAepzC,EAAM+f,aAC3B9f,uBAgJKsmD,GAzIS,WACtB,IAAQzgD,EAAeJ,qBAAWC,KAA1BG,WACAoF,GAAcpF,GAAc,IAA5BoF,UAER,EAAwB5G,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAA4B/tB,mBAAS,IAAG,mBAAjC8hD,EAAM,KAAEI,EAAS,KAExB,EAAmD3hD,EAAS,CAC1DC,QAAS,cACTC,QAAS4gD,GACT3gD,eAAgB,CAAEkG,aAClBjG,MAAOiG,IAJD3J,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAAcI,EAAO,EAAPA,QAOvC,EAAoDjC,EAAS,CAC3DE,QAAS8vC,GACT1vC,cAAe,GACfH,eAAgB,CAAEkG,UAAqB,OAAVpF,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WACzCjG,KAAMuB,IAJM6vC,EAAQ,EAAd90C,KAA2B+0C,EAAY,EAAvB9vC,UAOxB,EAAgD6vC,GAAY,GAAE,IAAtDrtC,KAAMotC,OAAM,MAAG,GAAE,EAAS+P,EAAS,EAAhB9kC,MAErBsyB,EAAQ1tC,mBAAQ,WACpB,OAAOqB,IAAE6kC,OAAOiK,EAAQ,CAAC,gBACxB,CAACA,IAEExR,EAAUj+B,uBAAY,SAAC8/C,GAC3B,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,cACT,QACE,MAAO,mBAEV,IAEH,EAA8CllD,GAAQ,GAAE,IAAhD8f,aAAK,MAAG,EAAC,MAAErY,KAAM09C,OAAW,MAAG,GAAE,EAEnCR,EAAcjgD,mBAClB,kBAAMqB,IAAEkD,KAAKk8C,GAAa,SAACxY,GAAE,OAAKA,EAAGlsC,KAAOokD,OAC5C,CAACM,EAAaN,IAGV1hC,EAAUze,mBAAQ,WACtB,MAAO,CACL,CACEjE,GAAI,KACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,IACjB,OAADyX,QAAC,IAADA,OAAC,EAADA,EAAGtU,KAAM,WAGdsgB,OAAQ,KACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,OACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,IACjB,OAADyX,QAAC,IAADA,OAAC,EAADA,EAAGhN,OAAQ,WAGhBgZ,OAAQ,OACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,UACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,GAAE,CAAC5W,SAAU,OAAD4W,QAAC,IAADA,OAAC,EAADA,EAAGyvC,YAC7BzjC,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,KAAMF,GAAI,KAAMM,GAAI,OAElC,CACEjwB,GAAI,YACJT,KAAM,SAAC+U,GAAC,aACN,kBAAC,IAAI,CAAC7X,QAAM,GAC+C,QAD/C,EACT6I,IAAEkD,KAAKmpC,GAAO,SAACI,GAAI,OAAKA,EAAK7oC,aAAe,OAADoL,QAAC,IAADA,OAAC,EAADA,EAAGpL,qBAAU,aAAxD,EAA0D5B,OAG/DgZ,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,eACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,IAAI,CAAC7X,QAAM,GAAG,OAAD6X,QAAC,IAADA,OAAC,EAADA,EAAG0vC,eAC9B1jC,OAAQ,gBACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAG7B,CAAC0hB,IAOJ,OACE,kBAACnkC,GAAW,KACV,kBAACsjB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC1B,kBAAC,GAAc,CACbshB,MAAOA,EACPwS,UAAWA,EACX9kC,MAAOA,EACP3a,aAAcA,EACdF,UAAW8vC,EACX4P,YAAaA,EACbE,OAAQA,EACR7kD,KAAMA,EACN8wB,QAASA,EACTuS,QAASA,EACT99B,QAASA,KAGb,kBAAC,GAAK,CACJ8lB,MAAM,eACNrrB,KAAMmlD,EACNt5B,iBAAiB,qBACjBG,WAAY,WACVi5B,EAAU,UACVn0B,GAAQ,IAEVzC,YAAU,EACVE,aAAa,EACbC,YAAarpB,EACbge,QAASA,EACTR,WAlCa,SAACC,GAClBqiC,EAAUriC,EAAI0F,SAAS7nB,IACvBqwB,GAAQ,IAiCJ7rB,UAAWA,GAAa8vC,EACxBpoB,WAAY7M,EACZoL,eAAe,sBC1JfwH,GAAiB0yB,GA+KVC,GAvKO,WACpB,IAAMt+C,EAAWC,cAGTzC,EAAeJ,qBAAWC,KAA1BG,WACA8C,EAAQ2L,cAAR3L,IAER,EAA0C/D,EAAS,CACjDC,QAAS,YACTC,QAASkvB,GACTjvB,eAAgB,CAAE4D,SAHZrH,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAMzB,EAA4D7B,EAAS,CACnEC,QAAS,YACTC,QAASowC,GACThwC,cAAe,GACfF,KAAMuB,IAJMqgD,EAAY,EAAlBtlD,KAA+Bi1C,EAAgB,EAA3BhwC,UAOuB,GAAlBqgD,GAAgB,IAAzC79C,KAAM4qC,OAAS,MAAG,GAAE,EAE5B,EAA4CryC,GAAQ,GAAE,IAA9C8f,aAAK,MAAG,EAAC,MAAErY,KAAM26B,OAAS,MAAG,GAAE,EAgBjCzf,EAAavd,uBACjB,SAACwd,GACC7b,EAAS,aAAD,OAAc6b,EAAI0F,SAASuM,SAASp0B,OAE9C,CAACsG,IAGGoc,EAAUze,mBAAQ,WACtB,IAAMqgC,EAAO,CACX,CACEtkC,GAAI,QACJT,KAAM,SAAC+U,GAAO,IAAD,EACX,OACE,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,IACjB,OAADyX,QAAC,IAADA,GAAW,QAAV,EAADA,EAAG8f,gBAAQ,WAAV,EAAD,EAAalpB,QAAS,WAI7BoV,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,KAAMF,GAAI,KAAMM,GAAI,OAElC,CACEjwB,GAAI,cACJT,KAAM,SAAC+U,GAAC,aAAK,kBAAC,IAAI,MAAG,OAADA,QAAC,IAADA,GAAW,QAAV,EAADA,EAAG8f,gBAAQ,WAAV,EAAD,EAAaiN,cAAe,WAEhD/gB,OAAQ,OACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG5B,CACEjwB,GAAI,iBACJT,KAAM,SAAC+U,GACL,IAEA,GAF2BA,GAAK,IAAxButB,gBAE0D,GAA1DxD,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAMC,EAAK,EAALA,MAAOC,EAAG,EAAHA,IAEpCtoB,EAAQ,GAgBZ,OAdIkoB,IAASloB,GAAK,UAAOkoB,IACrBC,IACFnoB,GAAK,WAAQmoB,EAAQ,OAEnBC,IACFpoB,GAAK,UAAOooB,GACRC,IACFroB,GAAK,WAAQqoB,EAAK,MACdC,IACFtoB,GAAK,UAAOsoB,MAMhB,kBAAC,IAAI,CAAChiC,QAAM,EAACI,UAAQ,GAClBsZ,GAAS,WAIhBkN,MAAM,EACN/C,OAAQ,kBACRljB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAEnC,CACEjwB,GAAI,MACJT,KAAM,SAAC+U,GAAC,aACN,kBAAC,IAAI,CAAC7X,QAAM,IAC0C,QAAnD,EAAA6I,IAAEkD,KAAKopC,GAAW,SAAC3kB,GAAC,aAAKA,EAAEjtB,MAAQ,OAADsU,QAAC,IAADA,GAAW,QAAV,EAADA,EAAG8f,gBAAQ,WAAV,EAAD,EAAaxtB,eAAI,aAAnD,EAAqDU,OAAQ,WAGlEgZ,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,KAiC9B,OAF8B,KAAhB,OAAVnsB,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YAAiB5D,IAAE+B,OAAOi9B,GAAM,YAAK,MAAc,QAAd,EAAFtkC,MAE5CskC,IACN,CAACsN,EAAW9tC,IAEf,OACE,kBAAC0J,GAAW,KACV,kBAAC,GAAK,CACJod,MAAM,YACNK,SAAS,0MACT1rB,KAAMoiC,EACNrX,YAAU,EACVc,iBAAiB,kBACjBG,WAAY,kBAAMjlB,EAAS,qBAC3B+kB,iBAAiB,gBACjBuC,YAAU,EACVE,aAAa,EACbC,YAAarpB,EACbwd,WAAYA,EACZQ,QAASA,EACTle,UAAWA,GAAagwC,EACxBtoB,WAAY7M,EACZoL,eAAe,sB,mCCvLvB,mmGAAA7nB,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQASA,I,GAAMkiD,GAAe,CACpB,CAAEx9C,KAAM,UAAW5J,MAAO,GAC1B,CAAE4J,KAAM,WAAY5J,MAAO,IAGtBma,GAAmBF,YAAaC,MAAM,CAC3CymB,QAAS1mB,YACT2mB,SAAU3mB,YACV4mB,KAAM5mB,YACN6mB,MAAO7mB,YACP8mB,IAAK9mB,UAAW,4BAA4BwpB,WAC5CrC,YAAannB,cAqMC6lB,GAlMK,SAAH,GAWV,IAVNj+B,EAAI,EAAJA,KACA8f,EAAK,EAALA,MACA4qB,EAAS,EAATA,UACA8a,EAAY,EAAZA,aACAC,EAAc,EAAdA,eAAe,EAAD,EACdvkB,kBAAU,MAAG,KAAI,EACjBpQ,EAAO,EAAPA,QAAQ,EAAD,EACP40B,eAAO,OAAO,EACdngD,EAAO,EAAPA,QAAQ,EAAD,EACPogD,mBAAW,MAAG,KAAI,EAEVpyB,EAAqBpvB,qBAAWsqB,MAAhC8E,iBAER,EACCkyB,GAAkB,GADX3mB,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAMC,EAAK,EAALA,MAAOC,EAAG,EAAHA,IAAKK,EAAW,EAAXA,YAAansB,EAAI,EAAJA,KAGpD8E,EAAgB,CACrB4mB,QAASA,GAAW,GACpBC,SAAUA,GAAY,GACtBC,KAAMA,GAAQ,GACdC,MAAOA,GAAS,GAChBC,IAAKA,GAAO,KACZK,YAAaomB,GAAepmB,GAAe,EAC3CnsB,KAAMA,GAAQ,IAGT6G,EAAW7U,sBAAW,wCAC3B,WAAO20C,EAAQ,GAAD,4FAQA,GARI5b,EAAS,EAATA,UAAS,SAEVynB,EAAW7L,EAAlB9a,MACF/Z,EAAM,2BACR60B,GAAO,IACV9a,MAAkB,YAAX2mB,EAAuB,GAAKA,IAG5Bn+C,GAASzH,GAAQ,IAAjByH,KAEU,WAAdijC,EAAsB,iCACJ9J,GAAgB,CACpCtgC,MAAM,2BAAM4kB,GAAM,IAAEgc,iBAClB,KAAD,EAFI9gC,EAAM,OAGN0kD,EAAM,2BACR1kD,GAAM,IACTglC,eAAgB,MAGXuF,EAAU5kC,IAAE6kC,OAAO,GAAD,mBAAKnjC,GAAI,CAAEq9C,IAAS,CAAC,iBAEvCt/C,EAAU,CAAEiC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,GAChD0lC,EAAmB,OAANV,QAAM,IAANA,OAAM,EAANA,EAAQrkD,IAErB8yB,EAAiB,iCAAD,OAAwC,OAANuxB,QAAM,IAANA,OAAM,EAANA,EAAQrkD,KAC1D8E,EAAQC,GACRsrB,GAAQ,GAAO,yCAEa8P,GAAgB,CAC3CngC,GAAIiqC,EACJpqC,MAAO4kB,IACL,KAAD,GAHI4lB,EAAa,OAKnBvX,EAAiB,iCAAD,OAAkCmX,IAE5CC,EAAU5kC,IAAE6kC,OACjBnjC,EAAKwD,KAAI,SAAC2X,GAET,OADsBA,EAAdniB,KACMiqC,EACNI,EAEDloB,KAER,CAAC,iBAGIpd,EAAO,2BAAQxF,GAAI,IAAEyH,KAAMkjC,IACjCplC,EAAQC,GACR24B,IACArN,GAAQ,GAAO,0DAGhBxqB,QAAQC,MAAM,EAAD,IAAQ,0DAEtB,qDAvD0B,GAwD3B,CACCvG,EACA0qC,EACA5qB,EACA0lC,EACAjyB,EACAhuB,EACAurB,EACAoQ,IAIIH,EAAer8B,mBACpB,kBACCmhD,KAAOC,YAAY76C,KAAI,gBAAGlD,EAAI,EAAJA,KAAoBuJ,EAAC,EAAfy0C,aAAY,OAC3C,4BAAQ5nD,MAAOmT,EAAGpG,IAAKoG,GACrBvJ,QAGJ,IAGKi8B,EAAW5+B,uBAAY,WAC5Bw7B,GAAgB,CAAEngC,GAAIiqC,IACtB,IAAQjjC,EAASzH,EAATyH,KACFkjC,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAQ,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,MAAOiqC,KACvCnlC,EAAQ,CAAEkC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IACxCgR,GAAQ,KACN,CAAC4Z,EAAW5qB,EAAO9f,EAAMuF,EAASurB,IAErC,OAAO40B,EACN,kBAAC,KAAM,CACNzrC,SAAUA,EACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,IAEjB,SAAC6kC,GACD,IAAQx5B,EAAWw5B,EAAXx5B,OACR,OACC,oCACC,kBAAC,GAAc,CACdtT,GAAG,OACHmZ,YAAU,EACVD,UAAQ,EACRI,eAAgB,kBAAM4F,GAAQ,IAC9BzF,MAAK,UAAmB,WAAdqf,EAAyB,SAAW,OAAM,cAErD,kBAAC,KAAI,CAAC9gC,MAAO,CAAE7M,MAAO,SACrB,kBAAC,KAAK,CACLgZ,UAAyB,WAAd20B,EACXv7B,UAAU,iBACVpH,KAAK,YAGN,kBAAC,KAAK,CAACoH,UAAU,iBAAiBpH,KAAK,aAEvC,kBAAC,KAAK,CAAC2O,GAAG,SAAS3O,KAAK,QAAQoH,UAAU,kBACzC,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,kBAG7B61B,GAEF,kBAAC,KAAK,CAACh5B,KAAK,OAAOoH,UAAU,SAC7B,kBAAC,KAAK,CAACpH,KAAK,MAAMoH,UAAU,eAC5B,kBAAC,KAAK,CAACpH,KAAK,OAAOoH,UAAU,SAC7B,kBAAC,KAAK,CACLpH,KAAK,cACL2O,GAAG,SACHpI,SAAUq3C,EACVx2C,UAAU,gBAETo2C,GAAat6C,KAAI,SAACtC,GAAI,OACtB,4BAAQuC,IAAKvC,EAAKxK,MAAOyY,MAAO,OAAQzY,MAAOwK,EAAKxK,YAGtD,kBAAC,KAAiB,CACjB6lC,SAAUA,EACViH,SAAU,kBAAMna,GAAQ,IACxBoa,WAA0B,WAAdR,EACZS,aAA4B,WAAdT,EAAyB,SAAW,OAClDU,cAAa,0CAAqClmB,EAAOnd,KAAI,YAQnE,oCACC,kBAAC,KAAK,CACLgO,UAAyB,WAAd20B,EACXv7B,UAAU,iBACVpH,KAAK,YAEN,kBAAC,KAAK,CAACoH,UAAU,iBAAiBpH,KAAK,aAEvC,kBAAC,KAAK,CAAC2O,GAAG,SAAS3O,KAAK,QAAQoH,UAAU,kBACzC,4BAAQhR,MAAM,GAAG+M,IAAI,WAAS,kBAG7B61B,GAEF,kBAAC,KAAK,CAACh5B,KAAK,OAAOoH,UAAU,SAC7B,kBAAC,KAAK,CAACpH,KAAK,MAAMoH,UAAU,oBAC5B,kBAAC,KAAK,CAACpH,KAAK,OAAOoH,UAAU,W,cCpNhC,mmGAAA9L,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAwBA,IAAM43B,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAM7Byb,GAAmBF,YAAaC,MAAM,CAC3ChR,IAAK+Q,UACI,wDACP7I,SAAS,yBACXuyB,YAAa1pB,YAAawpB,WAC1Bj2B,MAAOyM,YAAawpB,WACpBxyB,YAAagJ,YAAawpB,WAC1B3L,QAAS7d,YAAaC,MAAM,CAC3Bge,UAAWje,YAAawpB,WACxBrL,SAAUne,YAAawpB,WACvBjR,MAAOvY,YAAauY,QAAQiR,WAC5BC,MAAOzpB,YAAawpB,WACpBE,YAAa1pB,YAAawpB,aAG3BU,eAAgBlqB,YAAaC,MAAM,CAClCymB,QAAS1mB,YAAawpB,WACtB7C,SAAU3mB,YAAawpB,WACvB5C,KAAM5mB,YAAawpB,WACnB3C,MAAO7mB,YAAawpB,WACpB1C,IAAK9mB,YAAawpB,WAClBwD,eAAgBhtB,aAAcwpB,eAofjBokB,GAhfM,WACpB,IAAMj/C,EAAWC,cACLk6B,EAAeluB,cAAnBvS,GACFhC,EAAQqI,qBACd,EAA+C3C,qBAAWsqB,MAAlD8E,EAAgB,EAAhBA,iBAAkBxhB,EAAgB,EAAhBA,iBACbmkC,EAAS/xC,qBAAWC,KAAzBiD,IAEFgrC,EAAY/uC,EAAS,CAC1BC,QAAS,YACTC,QAASowC,GACThwC,cAAe,KAGVy6C,EAAkB35C,mBAAQ,WAC/B,IAAuD,IAAZ,OAAT2tC,QAAS,IAATA,OAAS,EAATA,EAAWryC,OAAQ,IAA7CyH,KACR,YADwB,MAAG,GAAE,GACXwD,KAAI,YAAW,MAAQ,CAAE9M,MAAhB,EAAFsC,GAA6BmW,MAArB,EAAJ7O,WAC3B,CAACsqC,IAEEsB,EAAkBjvC,mBACvB,kBACC2tC,EAAUryC,KACP+F,IAAEkD,KAAKopC,EAAUryC,MAAM,YAAY,UAATo1C,aAC1B,KACJ,CAAC/C,EAAUryC,OAcZ,EAXesD,EAAS,CACvBC,QAAQ,YAAD,OAAc29B,GACrB19B,QAASmvB,GACTlvB,eAAgB,CAAEhD,IAAKygC,GACvBt9B,cAAe,GACfF,MACGw9B,GAA6B,IAAfA,GACD,WAAfA,IACS,OAATmR,QAAS,IAATA,OAAS,EAATA,EAAWptC,cAQC,GAJPghD,EAAe,EAArBjmD,KACAiF,EAAS,EAATA,UACAE,EAAY,EAAZA,aACAI,EAAO,EAAPA,QAGD,EACC0gD,GAAmB,GADZpxB,EAAQ,EAARA,SAAUoB,EAAO,EAAPA,QAASqM,EAAc,EAAdA,eAAgB7D,EAAiB,EAAjBA,kBAE3C,EAA0D5J,GAAY,GAA9DxtB,EAAG,EAAHA,IAAKy6B,EAAW,EAAXA,YAAa1yB,EAAW,EAAXA,YAAazH,EAAO,EAAPA,QAASgE,EAAK,EAALA,MAEhD,EAA8CsqB,GAAW,GAAjDI,EAAS,EAATA,UAAWE,EAAQ,EAARA,SAAU5F,EAAK,EAALA,MAAOkR,EAAK,EAALA,MACpC,EACCS,GAAkB,GADXxD,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAMC,EAAK,EAALA,MAAOC,EAAG,EAAHA,IAAK9rB,EAAI,EAAJA,KAAMgyB,EAAc,EAAdA,eAG7C8gB,EAAiB9gD,uBACtB,YAAe,IAAZqC,EAAI,EAAJA,KACFlC,EAAQ,2BAAK0gD,GAAe,IAAExnB,kBAAmBh3B,OAElD,CAACw+C,EAAiB1gD,IAGb2S,EAAgBxT,mBACrB,iBAAO,CACN2C,IAAKA,GAAO6uC,IAAuB,OAAfvC,QAAe,IAAfA,OAAe,EAAfA,EAAiBlzC,IACrCqhC,cACA1yB,cACAzH,UACAgE,QACAsqB,QAAS,CACRI,YACAE,WACA5F,QACAkR,SAEDS,eAAgB,CACfxD,UACAC,WACAC,OACAC,QACAC,MACAkG,iBACAhyB,WAGF,CACC/L,EACA6uC,EACApU,EACA1yB,EACAzH,EACAgE,EACA0qB,EACAE,EACA5F,EACAkR,EACA/C,EACAC,EACAC,EACAC,EACAC,EACAkG,EACAuO,EACAvgC,IAII+yC,GAAgB/gD,sBAAW,wCAAC,sFAAS3E,EAAE,EAAFA,GAC1C+kD,GAAa/kD,GACb2lD,IAAqB,GAAM,2CAC3B,mDAHgC,GAG9B,IAEGC,GAAkBjhD,uBACvB,YAAa,IAAV3E,EAAE,EAAFA,GACI6lD,EAAkB,YAAO7nB,GAC/B14B,IAAE+B,OAAOw+C,GAAoB,YAAK,OAAK,EAAP7lD,KAAsBA,KACtD8E,EAAQ,2BAAK0gD,GAAe,IAAExnB,kBAAmB6nB,KACjDvoB,GAAc,CAAEt9B,SAEjB,CAACwlD,EAAiB1gD,EAASk5B,IAGtBtb,GAAUze,mBACf,iBAAM,CACL,CACCjE,GAAI,KACJT,KAAM,KACN+gB,OAAQ,KACRljB,KAAM,CAAEyyB,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACCjwB,GAAI,OACJT,KAAM,gBAAGoT,EAAI,EAAJA,KAAI,OAAO,kBAAC,IAAI,CAAC9V,UAAQ,GAAE8V,GAAQ,WAC5C2N,OAAQ,OACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,UACJT,KAAM,gBAAG8+B,EAAO,EAAPA,QAAO,OAAO,kBAAC,IAAI,CAACxhC,UAAQ,GAAEwhC,GAAW,WAClD/d,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,WACJT,KAAM,gBAAG++B,EAAQ,EAARA,SAAQ,OAChB,kBAAC,IAAI,CAAC7hC,QAAM,EAACI,UAAQ,GACnByhC,GAAY,WAGfhe,OAAQ,mBACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE7B,CACCjwB,GAAI,OACJT,KAAM,gBAAGg/B,EAAI,EAAJA,KAAI,OACZ,kBAAC,IAAI,CAAC9hC,QAAM,EAACI,UAAQ,GACnB0hC,GAAQ,WAGXje,OAAQ,OACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE7B,CACCjwB,GAAI,QACJT,KAAM,gBAAGi/B,EAAK,EAALA,MAAK,OACb,kBAAC,IAAI,CAAC/hC,QAAM,EAACI,UAAQ,GACnB2hC,GAAS,WAGZle,OAAQ,iBACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE7B,CACCjwB,GAAI,MACJT,KAAM,gBAAGk/B,EAAG,EAAHA,IAAG,OACX,kBAAC,IAAI,CAAChiC,QAAM,EAACI,UAAQ,GACnB4hC,GAAO,WAGVne,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE7B,CACC5Z,QAAS,SAAC7Z,GACT,IAAMg7C,EAAMh7C,EAAM2lB,IAAI0F,SAAS7nB,GAC/B,OACC,kBAAC,GAAc,CAACA,GAAG,WAClB,kBAACiK,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,WACTE,QAAS,kBAAMq7C,GAAc,CAAE1lD,GAAIw3C,OAEpC,kBAACvtC,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPjM,SAAS,UACTE,QAAS,kBAAMu7C,GAAgB,CAAE5lD,GAAIw3C,SAKzCl3B,OAAQ,UACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAGnC,CAACjyB,EAAM4P,UAAW5P,EAAMU,OAAQgnD,GAAeE,KAG1CpsC,GAAW7U,sBAAW,wCAC3B,WAAO8f,EAAO,GAAD,4EAAa,GAATiZ,EAAS,EAATA,UAAS,SAEL,WAAf+C,EAAuB,iCACLN,GAAiB,CAAEtgC,MAAO4kB,IAAU,KAAD,EAA5C,KACF,QADJ9kB,EAAM,cACF,IAANA,OAAM,EAANA,EAAQK,IAAE,iBAEqC,OADlDsG,EAAS,aAAD,OAAoB,OAAN3G,QAAM,IAANA,OAAM,EAANA,EAAQK,KAC9B8E,EAAQ,2BAAK0gD,GAAe,IAAEpxB,SAAUz0B,KAAU,kBAC3CmzB,EAAiB,kCAAD,OACkB,OAANnzB,QAAM,IAANA,OAAM,EAANA,EAAQK,MAC1C,cAEK,IAAI4F,MAAM,uCAAuC,KAAD,4CAGlCu6B,GAAiB,CACrCngC,GAAIygC,EACJ5gC,MAAO4kB,IACL,KAAD,GAHU,KAAN9kB,EAAM,QAID,CAAD,gBACTmF,EAAQ,2BAAK0gD,GAAe,IAAEpxB,SAAUz0B,KACxCmzB,EAAiB,kCAAD,OAAmC2N,IAAc,8BAE3D,IAAI76B,MAAM,uCAAuC,KAAD,GAGxD83B,IAAY,kDAEZ73B,QAAQC,MAAM,EAAD,IACbwL,EAAiB,8BACjBosB,IAAY,0DAEb,qDAhC0B,GAiC3B,CACC+C,EACAn6B,EACAxB,EACA0gD,EACA1yB,EACAxhB,IAIIiyB,GAAW5+B,sBAAW,uBAAC,+FACtBw7B,GAAiB,CAAEngC,GAAIygC,IAAc,KAAD,EAC1C3N,EAAiB,iCAAD,OACkBuO,GAAeZ,IAEjD/7B,EAAa,aACb4B,EAAS,cAAD,OAAeM,IAAO,2CAC5B,CAAC65B,EAAY3N,EAAkBuO,EAAa38B,EAAc4B,EAAUM,IAEjE05B,GAAer8B,mBACpB,kBACCmhD,KAAOC,YAAY76C,KAAI,gBAAGlD,EAAI,EAAJA,KAAoBuJ,EAAC,EAAfy0C,aAAY,OAC3C,4BAAQ5nD,MAAOmT,EAAGpG,IAAKoG,GACrBvJ,QAGJ,IAGD,GAAkDhF,oBAAS,GAAM,qBAA1DwjD,GAAiB,MAAEH,GAAoB,MAC9C,GAAkCrjD,mBAAS,UAAS,qBAA7C2nC,GAAS,MAAE8a,GAAY,MAExBC,GAAiB/gD,mBACtB,kBAAMqB,IAAEkD,KAAKw1B,GAAmB,YAAK,SAAFh+B,KAAgBiqC,QACnD,CAACA,GAAWjM,IAGb,OACC,kBAACxwB,GAAW,KACX,kBAACsjB,GAAA,EAAK,CAACV,KAAM01B,GAAmBz1B,QAASs1B,IACxC,kBAAChvC,GAAA,EAAI,CAACtN,SAAS,SACd,kBAAC,GAAW,CACX9J,KAAM,CACLyH,KAAMg3B,EACN3e,OAAwB,OAAjB2e,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBj0B,SAAU,GAErCsV,OAAwB,OAAjB2e,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBj0B,SAAU,EACpCkgC,UAAWA,GACX8a,aAAcA,GACdtkB,WAAYA,EACZykB,YAAa,EACbF,eAAgBA,GAChB30B,QAASs1B,GACT7gD,QAAS2gD,MAKZ,kBAAC,KAAM,CACNjsC,SAAUA,GACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,IAEjB,SAAC6kC,GAAe,IAAD,EACPx5B,EAAWw5B,EAAXx5B,OACR,OACC,oCACC,kBAAC,GAAc,CACdtT,GAAG,OACHmZ,YAAU,EACVG,eAAgB,kBAAMnkB,EAAS,cAAD,OAAeM,GAAO6uC,KACpD7qB,MAAK,UACW,WAAf6V,EAA0B,SAAW,OAAM,eAG7C,kBAAC,KAAI,CAACt3B,MAAO,CAAE7M,MAAO,SACrB,kBAAC,KAAK,CACLkI,UAAWA,EACXsK,UAAQ,EACRjB,UAAU,EACVa,UAAU,qBACVpH,KAAK,MACL2O,GAAG,UAEH,4BAAQxL,IAAI,UAAU/M,MAAM,IAAE,qBAG7BkgD,EAAgBpzC,KAAI,gBAAG2L,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OACnC,4BAAQ+M,IAAK/M,EAAOA,MAAOA,GACzByY,OAKJ,kBAAC,KAAK,CACL3R,UAAWA,EACXkK,UAAU,OACVpH,KAAK,cACLuG,UAAU,IAEX,kBAAC,KAAK,CACLrJ,UAAWA,EACXkK,UAAU,SACVpH,KAAK,QACLuG,UAAU,IAGX,kBAAC,KAAK,CACLrJ,UAAWA,EACXkK,UAAU,cACVuH,GAAG,WACH3O,KAAK,cACLyH,IAAK,IACLJ,YAAY,0BACZd,UAAU,IAGX,kBAAC,QAAI,CACJvR,MAAO,EACPqvB,cAAe,CAAC,SAAU,SAAU,OACpCxiB,MAAO,CAAEuiB,IAAK,SAmCd,kBAAC/U,GAAA,EAAI,CACJxN,MAAO,CAAEkN,QAAS,SAClB/Z,MAAO,EACPqvB,cAAc,SACd7iB,WAAW,YAEX,kBAAC,IAAO,CAACkO,GAAG,KAAG,mBACf,kBAAC,OAAG,CAACA,GAAG,UAAUpH,GAAG,QACpB,kBAAC,KAAQ,CACRpL,UAAWA,EACXkK,UAAU,uCACVpH,KAAK,gCACLuG,UAAU,KAGZ,kBAAC,KAAK,CACLrJ,UAAWA,EACX8C,KAAK,sBACLoH,UAAU,OACVb,UAAU,IAEX,kBAAC,KAAK,CACLrJ,UAAWA,EACX8C,KAAK,yBACLoH,UAAU,iBACVb,UAAU,IAEX,kBAAC,KAAK,CACLrJ,UAAWA,EACX8C,KAAK,0BACLoH,UAAU,iBACVb,UAAU,IAEX,kBAAC,KAAK,CACLrJ,UAAWA,EACX8C,KAAK,sBACLoH,UAAU,OACVb,UAAU,IAEX,kBAAC,KAAK,CACLrJ,UAAWA,EACXyR,GAAG,SACH3O,KAAK,uBACLoH,UAAU,iBACVb,UAAU,GAEV,4BAAQnQ,MAAM,GAAG+M,IAAI,WAAS,kBAG7B61B,IAEF,kBAAC,KAAK,CACL97B,UAAWA,EACX8C,KAAK,qBACLoH,UAAU,aACVb,UAAU,MAKb,kBAAC,KAAiB,CACjB01B,SAAUA,GACViH,SAAU,kBAAMlkC,EAAS,cAAD,OAAeM,KACvC6jC,YAAU,EACVC,aAA6B,WAAfjK,EAA0B,SAAW,OACnDkK,cAAa,0CAAqClmB,EAAOnd,KAAI,SAGvC,QAAtB,EAACmd,EAAOod,sBAAc,aAArB,EAAuB8C,iBACT,WAAflE,GACC,kBAAC,GAAK,CACLrV,iBAAiB,iBACjBG,WAAY,WACXo6B,IAAqB,GACrBZ,GAAa,WAEdn6B,MAAM,4BACNK,SAAS,0LACT1rB,KAAMy+B,EACNpQ,YAAU,EACVlL,QAASA,GACT2H,UAAQ,EACRoD,YAAU,EACVC,gBAAc,EACdjD,eAAe,kBACfjmB,UAAWA,EACX0nB,YAA6B,OAAjB8R,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBj0B,SAAU,W,cC3hBpD,26MACO,IAAMg8C,GAAe,wCAAG,WAAOrmD,GAAI,iGAEpBN,IAAMC,KACtB,gDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ2B,sCA6BfkgD,GAAiB,wCAAG,WAAOtmD,GAAI,iGAEtBN,IAAMC,KACtB,kDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ6B,sCAajBmgD,GAAiB,wCAAG,WAAOvmD,GAAI,iGAEtBN,IAAMC,KACtB,kDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ6B,sCAajBogD,GAAiB,wCAAG,WAAOxmD,GAAI,iGAEtBN,IAAMC,KACtB,kDACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ6B,sC,cCxD9B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQASA,I,GAAMiV,GAAmBF,YAAaC,MAAM,CAC1CtY,OAAQqY,UAAW,uBACnBwuC,SAAUxuC,UAAW,+BACrByuC,OAAQzuC,YAAawpB,aAwKRklB,GArKS,SAAH,GASd,IARL9mD,EAAI,EAAJA,KACA8f,EAAK,EAALA,MACAinC,EAAa,EAAbA,cACAC,EAAgB,EAAhBA,iBACAC,EAAkB,EAAlBA,mBACAn2B,EAAO,EAAPA,QAEAvrB,GAFO,EACPmgD,QACO,EAAPngD,SAEQguB,EAAqBpvB,qBAAWsqB,MAAhC8E,iBACAhvB,EAAeJ,qBAAWC,KAA1BG,WAER,EAAqC0iD,GAAsB,GAErD/uC,EAAgB,CACpB0uC,SAHc,EAARA,UAGgB,EACtB7mD,OAJsB,EAANA,QAIE,EAClB8mD,OAL8B,EAANA,QAKN,IAGd5sC,EAAW7U,sBAAW,wCAC1B,WAAO8f,EAAO,GAAD,wFAEG,GAFCiZ,EAAS,EAATA,UAAS,SAEd12B,EAASzH,EAATyH,KAEc,WAAlBs/C,EAA0B,iCACPnmB,GAAoB,CAAEtgC,MAAO4kB,IAAU,KAAD,EAArD9kB,EAAM,OACN0kD,EAAM,2BACP1kD,GAAM,IACTglC,eAAgB,MAGZuF,EAAU5kC,IAAE6kC,OAAO,GAAD,mBAAKnjC,GAAI,CAAEq9C,IAAS,CAAC,cAEvCt/C,EAAU,CAAEiC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,GAChDknC,EAAiBlC,EAAOrkD,IAExB8yB,EAAiB,qCAAD,OAAsCuxB,EAAOrkD,KAC7D8E,EAAQC,GACRsrB,GAAQ,GAAO,yCAEa8P,GAAoB,CAC9CngC,GAAIsmD,EACJzmD,MAAO4kB,IACN,KAAD,GAHI4lB,EAAa,OAKnBvX,EAAiB,qCAAD,OACuBwzB,IAGjCpc,EAAU5kC,IAAE6kC,OAChBnjC,EAAKwD,KAAI,SAAC2X,GAER,OADsBA,EAAdniB,KACMsmD,EACLjc,EAEFloB,KAET,CAAC,cAGGpd,EAAO,2BAAQxF,GAAI,IAAEyH,KAAMkjC,IACjCplC,EAAQC,GACR24B,IACArN,GAAQ,GAAO,0DAGjBxqB,QAAQC,MAAM,EAAD,IAAQ,0DAExB,qDAjDyB,GAkD1B,CACEvG,EACA+mD,EACAjnC,EACAknC,EACAzzB,EACAhuB,EACAurB,IAIEo2B,EAAkBxiD,mBACtB,iBACE,CAAC,WAAY,MAAO,SAAU,OAAQ,aAAauG,KACjD,SAACk8C,EAAe9jD,GAAC,OACf,4BAAQlF,MAAOkF,EAAG6H,IAAK7H,GACpB8jD,QAIT,IAEInc,EAAgBtmC,mBACpB,iBACE,CACE,QACA,cACA,eACA,sBACA,iBACAuG,KAAI,SAACm8C,EAAa/jD,GAAC,OACnB,4BAAQlF,MAAOkF,EAAG6H,IAAK7H,GACpB+jD,QAGP,IAGIpjB,EAAW5+B,uBAAY,WAC3Bw7B,GAAoB,CAAEngC,GAAIsmD,IAC1B,IAAQt/C,EAASzH,EAATyH,KACFkjC,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAOsmD,KACtCxhD,EAAQ,CAAEkC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IACxCgR,GAAQ,KACP,CAACi2B,EAAejnC,EAAO9f,EAAMuF,EAASurB,IAEzC,OACE,kBAAC,KAAM,CACL7W,SAAUA,EACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,IAEjB,SAAC6kC,GACA,IAAQx5B,EAAWw5B,EAAXx5B,OACR,OACE,oCACE,kBAAC,GAAc,CACbtT,GAAG,OACHmZ,YAAU,EACVD,UAAQ,EACRI,eAAgB,kBAAM4F,GAAQ,IAC9BzF,MAAK,UACe,WAAlB07B,EAA6B,SAAW,OAAM,iBAEhDr7B,SAAS,gMAEX,kBAAC,KAAI,CAAC9hB,MAAO,CAAEE,SAAU,QAAS/M,MAAO,SACvC,kBAAC,KAAK,CAACgL,KAAK,QAAQoH,UAAU,UAC9B,kBAAC,KAAK,CAACuH,GAAG,WAAW3O,KAAK,SAASoH,UAAU,WAC7C,kBAAC,KAAK,CAACuH,GAAG,SAAS3O,KAAK,WAAWoH,UAAU,kBAC1C+3C,GAEwB,KAAhB,OAAV3iD,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YACX,kBAAC,KAAK,CAAC+M,GAAG,SAAS3O,KAAK,SAASoH,UAAU,gBACxC67B,GAGL,kBAAC,KAAiB,CAChBhH,SAAUA,EACViH,SAAU,kBAAMna,GAAQ,IACxBoa,WAA8B,WAAlB6b,EACZ5b,aAAgC,WAAlB4b,EAA6B,SAAW,OACtD3b,cAAa,0CAAqClmB,EAAOnd,KAAI,a,cC1K7E,mmGAAA1E,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAeA,IAAQmjD,GAAuCa,GAAtBV,GAAsBU,GAEzCpsB,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHA2KpByqD,GArKU,WACvB,IAAM7oD,EAAQqI,qBACNysB,EAAqBpvB,qBAAWsqB,MAAhC8E,iBAER,EAAwBxwB,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAA0C/tB,mBAAS,UAAS,mBAArDgkD,EAAa,KAAEC,EAAgB,KAEtC,EAAmD1jD,EAAS,CAC1DC,QAAS,mBACTC,QAASgjD,KAFHxmD,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAAcI,EAAO,EAAPA,QAKvC,EAA+CvF,GAAQ,GAAE,IAAjD8f,aAAK,MAAG,EAAC,MAAErY,KAAM8/C,OAAY,MAAG,GAAE,EAEpCN,EAAqBviD,mBACzB,kBAAMqB,IAAEkD,KAAKs+C,GAAc,SAAC5a,GAAE,OAAKA,EAAGlsC,KAAOsmD,OAC7C,CAACQ,EAAcR,IAEX/iB,EAAW5+B,sBAAW,wCAC1B,WAAOuQ,EAAGlV,GAAE,0EAMK,OALfkV,EAAE8Q,kBACMhf,EAASzH,EAATyH,KACFkjC,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAOA,KACtC8E,EAAQ,CAAEkC,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IACxCgR,GAAQ,GAAO,SACT61B,GAAkB,CAAElmD,OAAM,KAAD,EAE/B8yB,EAAiB,mDAAD,OAAoD9yB,IAAM,2CAC3E,qDAXyB,GAY1B,CAACqf,EAAO9f,EAAMuF,EAASguB,IAGnB5Q,EAAa,SAACC,GAClBokC,EAAiBpkC,EAAI0F,SAAS7nB,IAC9BqwB,GAAQ,IAGJ02B,EAAe,CACnB,QACA,cACA,eACA,sBACA,iBAGIC,EAAiB,CAAC,WAAY,MAAO,SAAU,OAAQ,aAEvDtkC,EAAUze,mBAAQ,WACtB,MAAO,CACL,CACEjE,GAAI,QACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,IACjB,OAADyX,QAAC,IAADA,OAAC,EAADA,EAAGtU,KAAM,WAGdsgB,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,SACJT,KAAM,SAAC+U,GAAC,OAAK,kBAAC,IAAI,MAAG,OAADA,QAAC,IAADA,OAAC,EAADA,EAAG8xC,SAAU,WACjC9lC,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG5B,CACEjwB,GAAI,WACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,GAClBmqD,EAAgB,OAAD1yC,QAAC,IAADA,OAAC,EAADA,EAAG6xC,WAAa,WAGpC7lC,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,SACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,GAClBkqD,EAAc,OAADzyC,QAAC,IAADA,OAAC,EAADA,EAAGhV,SAAW,WAGhCghB,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,YACJT,KAAM,SAAC+U,GAAC,OACN,kBAAC,IAAI,CAAC7X,QAAM,EAACI,UAAQ,GAClBooC,KAAQ,OAAD3wB,QAAC,IAADA,OAAC,EAADA,EAAG2yC,WAAW/hB,OAAO,eAAiB,WAGlD5kB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG5B,CACE5Z,QAAS,SAAC7Z,GACR,IAAI0qD,EAAc1qD,EAAM4qB,KAAKjF,IAAI0F,SAEjC,OACE,kBAAC,GAAc,CAAC7nB,GAAG,WACjB,kBAACiK,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,WACTE,QAAS,SAAC6K,GAAC,OAAKgN,EAAW1lB,EAAM4qB,KAAKjF,QAExC,kBAAClY,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAS,aACTE,QAAS,SAAC6K,GAAC,OAAKquB,EAASruB,EAAGgyC,EAAYlnD,SAKhDsgB,OAAQ,UACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,IAAKD,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAGtC,CAACsT,EAAUyjB,EAAgBD,EAAc/oD,EAAM4P,YAElD,OACE,kBAACJ,GAAW,KACV,kBAACsjB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC1B,kBAAC1Z,GAAA,EAAI,KACH,kBAAC,GAAe,CACdpX,KAAMA,EACN8f,MAAOA,EACPinC,cAAeA,EACfC,iBAAkBA,EAClBC,mBAAoBA,EACpBn2B,QAASA,EACTvrB,QAASA,MAIf,kBAAC,GAAK,CACJ8lB,MAAM,gBACNrrB,KAAMunD,EACN17B,iBAAiB,sBACjBG,WAAY,WACVg7B,EAAiB,UACjBl2B,GAAQ,IAEVhF,iBAAiB,QACjBuC,YAAU,EACVE,aAAa,EACbC,YAAarpB,EACbwd,WAAYA,EACZQ,QAASA,EACTle,UAAWA,EACX0nB,WAAY7M,EACZoL,eAAe,sB,cCtLvB,mmGAAA7nB,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAaA,IAAMiV,GAAmBF,YAAaC,MAAM,CAC1CtQ,KAAMqQ,YACNhJ,YAAagJ,YACbzO,UAAWyO,cAGPwvC,GAAe,CACnB,CAAEhxC,MAAO,cAAezY,MAAO,GAC/B,CAAEyY,MAAO,kBAAmBzY,MAAO,GACnC,CAAEyY,MAAO,eAAgBzY,MAAO,GAChC,CAAEyY,MAAO,cAAezY,MAAO,IA8GlB0pD,GA3GU,SAAH,GAMf,IALLrV,EAAI,EAAJA,KACA1hB,EAAO,EAAPA,QACAM,EAAM,EAANA,OACA02B,EAAS,EAATA,UACA3iD,EAAY,EAAZA,aAEA,EAIIqtC,GAAQ,GAHJuV,EAAK,EAAXhgD,KACaigD,EAAY,EAAzB54C,YACW81C,EAAU,EAArBv7C,UAMIuO,EAAgB,CACpBnQ,KAAMggD,GAAS,GACf34C,YAAa44C,GAAgB,GAC7Br+C,WALA5D,IAAEkD,KAAK2+C,IAAc,SAACK,GAAK,OAAKA,EAAM9pD,QAAU+mD,MAAe,IADzD/mD,OAMc,GAGhB8b,EAAQ,wCAAG,WAAOiL,EAAO,GAAD,8EACQ,GADJiZ,EAAS,EAATA,UACxBp2B,EAAwCmd,EAAxCnd,KAAMqH,EAAkC8V,EAAlC9V,YAAwB64C,EAAU/iC,EAArBvb,UACZ,WAAXynB,EAAmB,gCACfmiB,GAAW,CAAEjzC,MAAO,CAAEyH,OAAMqH,cAAazF,WAAYs+C,KAAW,KAAD,wCAE/DzU,GAAW,CACf/yC,GAAI2wB,EACJ9wB,MAAO,CAAEyH,OAAMqH,cAAazF,WAAYs+C,KACvC,KAAD,EACW,OAAfn3B,GAAQ,GAAO,UACT3rB,EAAa,SAAS,KAAD,GAC3Bg5B,IAAY,4CACb,gBAZa,wCAcR6F,EAAQ,wCAAG,+FACTyP,GAAW,CAAEhzC,GAAI2wB,IAAU,KAAD,EAChCN,GAAQ,GACR3rB,EAAa,SAAS,2CACvB,kBAJa,mCASR8lC,EAAW,WACf6c,GAAW,GACXh3B,GAAQ,IAGV,OACE,kBAAC1Z,GAAA,EAAI,KACH,kBAAC,KAAM,CACLkB,iBAAkBA,GAClB2B,SAAUA,EACV/B,cAAeA,EACf2B,oBAAkB,IAEjB,SAAC6kC,GACA,IACExG,EAMEwG,EANFxG,MACAC,EAKEuG,EALFvG,aACAgD,EAIEuD,EAJFvD,aACAj2B,EAGEw5B,EAHFx5B,OACAkzB,EAEEsG,EAFFtG,OACAC,EACEqG,EADFrG,WAEF,OACE,oCACE,kBAAC,IAAO,sBAAgBnzB,EAAOnd,MAE/B,kBAAC,KAAI,KACH,kBAAC0O,GAAA,EAAK,CAAC2hC,OAAQA,EAAQjpC,UAAU,YAAYpH,KAAK,SAClD,kBAAC0O,GAAA,EAAK,CACJ2hC,OAAQA,EACRjpC,UAAU,cACVpH,KAAK,gBAEP,kBAAC0O,GAAA,EAAK,CACJs4B,UAAU,SACVqJ,OAAQA,EACRhpC,YAAY,uIACZD,UAAU,oBACVpH,KAAK,aAEJ6/C,GAAa38C,KAAI,gBAAG9M,EAAK,EAALA,MAAOyY,EAAK,EAALA,MAAK,OAC/B,4BAAQ1L,IAAK/M,EAAOA,MAAOA,EAAOyY,MAAOA,QAG7C,kBAACsxC,GAAA,EAAa,CACZhQ,MAAOA,EACPjN,SAAUA,EACVjH,SAAUA,EACVwU,OAAQL,GAAgBgD,EACxB/P,cAnDd,uKAoDclmB,OAAQA,EACRjL,SAAUo+B,WC5Bb8P,GArFG,WAChB,IACQx+C,EADexF,qBAAWC,KAA1BG,WACAoF,UAER,EAAwB5G,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAA4B/tB,mBAAS,IAAG,mBAAjCquB,EAAM,KAAE02B,EAAS,KAExB,EACExkD,EAAS,CACPC,QAAS,QACTC,QAAS8vC,GACT7vC,eAAgB,CAAEkG,aAClB/F,cAAe,GACfF,MAAOiG,KACH,GAPA3J,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAQe,GAAVnF,GAAQ,IAA9ByH,KAAMotC,OAAM,MAAG,GAAE,EAEnBzC,EAAQ1tC,mBAAQ,kBAAMqB,IAAE6kC,OAAOiK,EAAQ,CAAC,gBAAe,CAACA,IAExDrC,EAAO9tC,mBACX,kBAAMqB,IAAEkD,KAAKmpC,GAAO,SAACI,GAAI,OAAKA,EAAK/xC,KAAO2wB,OAC1C,CAACA,EAAQghB,IAQL/O,EAAU,SAAC15B,GACf,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,cACT,QACE,MAAO,kBAIb,OACE,oCACE,kBAACsE,GAAW,KACV,kBAAC,GAAK,CACJ+d,WAAY,WACV8E,GAAQ,GACRg3B,EAAU,WAEZj8B,iBAAiB,cACjBC,iBAAiB,YACjBT,MAAM,kBACNH,eAAe,kBACf8C,SAAUokB,EAAMnnC,KAAI,gBAAGxK,EAAE,EAAFA,GAAIsH,EAAI,EAAJA,KAAMqH,EAAW,EAAXA,YAAazF,EAAS,EAATA,UAAS,MAAQ,CAC7DlJ,KACA4qB,MAAOtjB,EACP2jB,SAAUtc,EACVxE,SAAUy4B,EAAQ15B,OAEpBwkB,gBAAc,EACdC,WAAS,EACTF,YAAU,EACVjpB,UAAWA,IAAc0E,EACzB0kB,YAAU,EACVJ,WAAS,EACTV,YAAa,SAACilB,GAAI,OA1CL/xC,EA0CsB+xC,EAAK/xC,GAzC9CqwB,GAAQ,QACRg3B,EAAUrnD,GAFQ,IAACA,MA6CjB,kBAAC8wB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GACzBD,GACC,kBAAC,GAAgB,CACf2hB,KAAMA,EACNphB,OAAQA,EACR02B,UAAWA,EACXj3B,KAAMA,EACNC,QAASA,EACT3rB,aAAcA,O,cCtF1B,26MACO,IAAMijD,GAAS,wCAAG,WAAOjoD,GAAI,iGAEdN,IAAMC,KAAK,oCAAqCK,GAAM,KAAD,EAA9D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sCAWT8hD,GAAQ,wCAAG,WAAOloD,GAAI,iGAEbN,IAAMC,KAAK,mCAAoCK,GAAM,KAAD,EAA7D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAToB,sCAWR+hD,GAAW,wCAAG,WAAOnoD,GAAI,iGAEhBN,IAAMC,KAAK,sCAAuCK,GAAM,KAAD,EAAhE,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATuB,sCAUXgiD,GAAS,wCAAG,WAAOpoD,GAAI,iGAEdN,IAAMC,KAAK,oCAAqCK,GAAM,KAAD,EAA9D,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATqB,sCAUTiiD,GAAW,wCAAG,WAAOroD,GAAI,iGAEhBN,IAAMC,KAAK,sCAAuCK,GAAM,KAAD,EAAhE,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATuB,sCAUXkiD,GAAW,wCAAG,WAAOtoD,GAAI,iGAEhBN,IAAMC,KAAK,sCAAuCK,GAAM,KAAD,EAAhE,GACW,OAAb,QADDI,EAAG,cACF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBATuB,sC,cCrDxB,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAYA,I,MA0GeqlD,GA1GI,WACjB,MACEvkD,qBAAWsqB,MADL8E,EAAgB,EAAhBA,iBAAkBD,EAAgB,EAAhBA,iBAAkBvhB,EAAgB,EAAhBA,iBAEpC1K,EAAQ2L,cAAR3L,IACFN,EAAWC,cACTzC,EAAeJ,qBAAWC,KAA1BG,WAEFd,EAAiBiB,mBAAQ,WAC7B,OAA8B,KAAhB,OAAVH,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,WAAwB,GAC5B,CAAEtC,SACb,CAAC9C,EAAY8C,IAEVjH,EAASkD,EAAS,CACtBC,QAAS,SACTC,QAAS4kD,GACT3kD,iBAEAC,MAAO2D,IAGT,EAA0CjH,GAAU,GAA5CJ,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAEe,GAAVnF,GAAQ,IAA9ByH,KAAMkhD,OAAM,MAAG,GAAE,EAMnBtlB,EAAU,SAACh8B,GACf,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,cACT,QACE,MAAO,kBAIPuhD,EAASxjD,sBAAW,wCACxB,WAAO3E,GAAE,kEACkC,OAAzC6yB,EAAiB,kBAAD,OAAmB7yB,IAAM,kBAEjC8nD,GAAU,CAAE9nD,OAAM,KAAD,kBACjB0E,IAAe,KAAD,EACpBouB,EAAiB,8BAAD,OAA+B9yB,IAAM,gDAErD6F,QAAQC,MAAM,EAAD,IACbwL,EAAiB,yBAAD,OAA0BtR,IAAM,yDAEnD,mDAXuB,GAYxB,CAAC0E,EAAc4M,EAAkBwhB,EAAkBD,IAG/C0Q,EAAW5+B,sBAAW,wCAC1B,WAAO3E,GAAE,kEACmC,OAA1C6yB,EAAiB,mBAAD,OAAoB7yB,IAAM,kBAElCgoD,GAAY,CAAEhoD,OAAM,KAAD,kBACnB0E,IAAe,KAAD,EACpBouB,EAAiB,+BAAD,OAAgC9yB,IAAM,gDAEtD6F,QAAQC,MAAM,EAAD,IACbwL,EAAiB,2BAAD,OAA4BtR,IAAM,yDAErD,mDAXyB,GAY1B,CAAC0E,EAAc4M,EAAkBwhB,EAAkBD,IAG/CtF,EAAWtpB,mBAAQ,WAAO,IAAD,EAC7B,OAAgB,QAAZ,EAACtE,EAAOJ,YAAI,aAAX,EAAayH,MACXkhD,EAAO19C,KAAI,gBAAGxK,EAAE,EAAFA,GAAIsH,EAAI,EAAJA,KAAMqH,EAAW,EAAXA,YAAa/H,EAAG,EAAHA,IAAG,MAAQ,CACrD5G,KACA4qB,MAAOtjB,EACP2jB,SAAUtc,EACVxE,SAAUy4B,EAAQh8B,GAClBuhD,OAAQ,kBAAMA,EAAOnoD,IACrBujC,SAAU,kBAAMA,EAASvjC,QAPI,OAS9B,CAACL,EAAQwoD,EAAQ5kB,EAAU2kB,IAE9B,OACE,oCACE,kBAAC16C,GAAW,KACV,kBAAC,GAAK,CACJ+d,WAAY,kBAAMjlB,EAAS,kBAC3B8kB,iBAAiB,eACjBC,iBAAiB,YACjBT,MAAM,mBACNH,eAAe,kBACf8C,SAAUA,EACVG,gBAAc,EACdC,WAAS,EACTF,YAAU,EACVjpB,UAAWA,EACXopB,YAAU,EACVJ,WAAS,EACTV,YAAa,SAAC9uB,GAAK,OA3ENgC,EA2EuBhC,EAAMgC,QA1EhDsG,EAAS,UAAD,OAAWtG,IADD,IAACA,Q,UCrBjBoO,GAAYhS,kBAAOqC,QAAPrC,CAAY,kMAMf,YAAW,SAARgsD,YAKZ/5C,GAAgBjS,kBAAOqC,QAAPrC,CAAY,sZAOrB,YAAW,SAARyR,SAA2B,MAAQ,OACvC,YAAW,SAARA,SAA2B,cAAgB,UAapD,gBAAG7P,EAAK,EAALA,MAAK,0CACYA,EAAMC,gBAAe,2BAChCD,EAAME,SAAQ,cAyFdmqD,GApFK95C,sBAClB,WAEEC,GACI,IAFFlH,EAAI,EAAJA,KAAMoH,EAAS,EAATA,UAAWC,EAAW,EAAXA,YAAanK,EAAS,EAATA,UAAWqJ,EAAQ,EAARA,SAAUgB,EAAG,EAAHA,IAAKC,EAAQ,EAARA,SAGpD9Q,EAAQqI,qBAEd,EAAwB/D,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KAEZ7b,EAAkBC,eAAlBD,cACR,EAAsBpF,aAAS9H,GAAK,mBAA7B+H,EAAK,KAAEwzC,EAAI,KAEZxE,EAASl6C,iBAAO,MAEhBmkD,EAAqB3jD,uBACzB,SAACuQ,IACQ,OAAH1G,QAAG,IAAHA,OAAG,EAAHA,EAAKxJ,WAAYwJ,EAAIxJ,QAAQujD,SAASrzC,EAAEC,SAAWib,GACrDC,GAAQ,KAGZ,CAAC7hB,EAAK4hB,IAYR,OATA/rB,qBAAU,WACR,GAAI+rB,EAEF,OADApjB,SAASgP,iBAAiB,YAAassC,GAChC,WACLt7C,SAASiP,oBAAoB,YAAaqsC,MAG7C,CAACA,EAAoBl4B,IAGtB,kBAAC,GAAS,CAAC9zB,MAAO,CAAC,EAAG,EAAG,sBAAuB8rD,SAAU/4C,EAAM3R,OAC7DgR,GAAa,kBAACiB,GAAA,EAAK,CAACE,QAASvI,GAAOoH,GACpCC,GAAe,kBAAC,IAAM,KAAEA,GACxBnK,EACC,kBAACyM,GAAA,EAAY,MAEb,kBAAC,GAAa,CACZzC,IAAK6vC,EACLv1C,WAAW,aACX+E,SAAUA,EACVgB,IAAKA,GAEL,kBAAC5E,EAAA,EAAM,CACL+M,GAAG,SACH6U,GAAG,SACHzV,SAAO,EACPnZ,MAAOe,EAAM+P,KACb5D,SAAS,YACTE,QAAS,kBAAMgmB,GAASD,KAEvB/gB,EAAM3R,OAET,kBAAC,OAAG,CACFsZ,GAAG,SACH7N,MAAO,CACLkN,QAAS+Z,EAAO,QAAU,SAG5B,kBAAC,KAAa,CACZthB,SAAUA,EACV9O,GAAIsH,EACJmD,IAAKnD,EACL4J,SAAU1C,EACVlH,KAAMA,EACNuG,SAAUA,EACV5Q,MAAOoS,EAAM3R,OAASM,EAAM8e,QAC5B0rC,iBAAkB,gBAAGC,EAAG,EAAHA,IAAG,OAAOj0C,EAAclN,EAAMmhD,QAK1D5F,EAAK/8C,OACJ,kBAAC,IAAI,CAACqL,GAAG,SAASlU,MAAOe,EAAMU,QAC5BmkD,EAAK/8C,W,oDClIlB,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAwBA,I,GAAMiV,GAAmBF,YAAaC,MAAM,CAC1ChR,IAAK+Q,YAAa7I,SAAS,4BAC3B8b,MAAOjT,YAAawpB,WACpBxyB,YAAagJ,YAAawpB,WAC1BrkB,QAASnF,YAAawpB,WACtBvzB,UAAW+J,YAAawpB,WACxBhjC,YAAawZ,YAAawpB,WAC1Bx3B,KAAMgO,YAAawpB,WACnBgX,SAAUxgC,YAAawpB,WACvB2Z,UAAWnjC,YAAawpB,WACxBriC,aAAc6Y,YAAawpB,WAC3BziC,OAAQiZ,YAAawpB,WACrB3hC,QAASmY,YAAawpB,WACtB2W,QAASngC,YAAawpB,WACtB7iC,kBAAmBqZ,YAAawpB,WAChC4Z,SAAUpjC,YAAawpB,WACvBpzB,KAAM4J,YAAawpB,WACnBlX,SAAUtS,YAAawpB,WACvBpiC,eAAgB4Y,YAAawpB,WAC7B0Z,YAAaljC,SAAUA,YAAawpB,YACpCjjC,SAAUyZ,YAAawpB,WACvBljC,gBAAiB0Z,YAAawpB,WAC9B/iB,uBAAwBzG,YAAawpB,WACrCpjB,YAAapG,YAAawpB,WAC1BxiC,gBAAiBgZ,YAAawpB,WAC9B36B,SAAUmR,aAAcwpB,aAoVXunB,GAjVG,SAAH,GAA0B,IAApBtiD,EAAY,EAAZA,aACbpI,EAAQqI,qBACRC,EAAWC,cACTvG,EAAOuS,cAAPvS,GAER,EAA+C0D,qBAAWsqB,MAAlD8E,EAAgB,EAAhBA,iBAAkBxhB,EAAgB,EAAhBA,iBAC1B,EAAiC5N,qBAAWC,KAApCiD,EAAG,EAAHA,IAAK6sC,EAAe,EAAfA,gBAEP7B,EAAY/uC,EAAS,CACzBC,QAAS,YACTC,QAASowC,KAUX,EARetwC,EAAS,CACtBC,QAAQ,SAAD,OAAW9C,GAClB+C,QAAS6kD,GACT5kD,eAAgB,CAAEhD,MAClBmD,cAAe,GACfF,KAAa,WAAPjD,IAA4B,OAAT4xC,QAAS,IAATA,OAAS,EAATA,EAAWptC,cAAuB,OAATotC,QAAS,IAATA,OAAS,EAATA,EAAWryC,SAGG,GAApDopD,EAAY,EAAlBppD,KAAoBiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aACgB,IAAZ,OAATktC,QAAS,IAATA,OAAS,EAATA,EAAWryC,OAAQ,IAA7CyH,KAAM22C,OAAU,MAAG,GAAE,EACvBC,EAAkB35C,mBAAQ,WAC9B,OAAO05C,EAAWnzC,KAAI,gBAAGxK,EAAE,EAAFA,GAAIsH,EAAI,EAAJA,KAAI,OAC/B,4BAAQmD,IAAKzK,EAAItC,MAAOsC,GACrBsH,QAGJ,CAACq2C,IAEJ,EAAqCgL,GAAgB,GAA7C9N,EAAW,EAAXA,YAAmBjwB,EAAK,EAAXtjB,KAEfmQ,EAAgBxT,mBACpB,8BAAC,eACK0kD,GAAgB,CAACC,kBAAe,GAAF,CAClCh+B,QACAiwB,YAAa7yC,KAAKysB,MAChBomB,GAAe,2DAGnB,CAAC8N,EAAc9N,EAAajwB,IAGxBpR,EAAW7U,sBAAW,wCAC1B,WAAO20C,EAAQ,GAAD,wFASsB,GATlB5b,EAAS,EAATA,UAAS,SAEfmd,GAFe,EAEmCvB,GAAW,IAA7DuB,YAAoBvzC,EAAI,EAAXsjB,MAAapkB,EAAQ,EAARA,SAAaie,EAAM,mBAC/CokC,EAAoB7gD,KAAKC,UAAU4yC,GAAe,IAElDh7C,EAAK,2BACN4kB,GAAM,IACTo2B,YAAagO,EACbvhD,OACAd,SAAUA,EAAW,IAAM,MAGlB,WAAPxG,EAAe,iCACImgC,GAAc,CAAEtgC,UAAS,KAAD,EAIgB,OAJvDF,EAAM,OAEZ2G,EAAS,UAAD,OAAiB,OAAN3G,QAAM,IAANA,OAAM,EAANA,EAAQK,KAE3B8yB,EAAiB,+BAAD,OAAgCnzB,EAAOK,KAAM,4CAGvDmgC,GAAc,CAAEngC,KAAIH,UAAS,KAAD,GAElC4zC,IACArtC,IACA1B,EAAa,UACbg5B,IACA5K,EAAiB,+BAAD,OAAgC9yB,IAAM,0DAGxD6F,QAAQC,MAAM,EAAD,IACbwL,EAAiB,UAAU,0DAE9B,qDAjCyB,GAkC1B,CACEtR,EACA0E,EACA0B,EACAE,EACAwsB,EACAxhB,EACAmiC,IAIElQ,EAAW5+B,uBAAY,WAC3Bw7B,GAAc,CAAEngC,GAAIA,IACpBsG,EAAS,WAAD,OAAYM,MACnB,CAAC5G,EAAIsG,EAAUM,IAEZkiD,EAAankD,sBAAW,wCAC5B,WAAOg4B,EAAMosB,GAAS,wEAKd,OAAJ5lB,EACExG,EADFwG,KAAI,SAEA3pB,EAAS,eACVuvC,EAAS,yBAAqB5lB,IACjC,CAAEzF,UAAW,eACb,KAAD,sCACF,qDAZ2B,GAa5B,CAAClkB,IAGH,OAAQmvC,GAAgBnkD,EACtB,kBAACqF,GAAA,EAAO,MAER,kBAAC2D,GAAW,KACV,kBAAC,KAAM,CACLgM,SAAUA,EACV3B,iBAAkBA,GAClBJ,cAAeA,EACf2B,oBAAkB,IAEjB,SAAC6kC,GACA,IAAQx5B,EAA0Bw5B,EAA1Bx5B,OAAQjQ,EAAkBypC,EAAlBzpC,cAEhB,OACE,oCACE,kBAAC,GAAc,CACbrD,GAAG,OACHmZ,YAAU,EACVG,eAAgB,kBAAMnkB,EAAS,WAAD,OAAYM,KAC1CgkB,MAAK,UAAY,WAAP5qB,EAAkB,SAAW,OAAM,iBAC3C4qB,EAAK,aAASA,GAAU,MAG5B,kBAAC,KAAI,CAACzhB,MAAO,CAAE7M,MAAO,SACpB,kBAAC,QAAI,CAAC6M,MAAO,CAAEuiB,IAAK,SAClB,kBAAC,QAAI,CACHviB,MAAO,CAAEuiB,IAAK,QACdC,cAAc,SACdrvB,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,uBAEvB,kBAACqa,GAAA,EAAI,CAACkT,SAAU,EAAGna,eAAe,aAAapT,MAAO,GACpD,kBAAC,IAAO,CAAC0a,GAAI,GAAE,oBAEf,kBAAC,KAAK,CACJlI,UAAQ,EACRJ,UAAU,qBACVpH,KAAK,MACL2O,GAAG,UAEH,4BAAQxL,IAAI,UAAU/M,MAAM,IAAE,qBAG7BkgD,GAGH,kBAAC1nC,GAAA,EAAK,CACJ5O,KAAK,WACLoH,UAAU,oBACVkH,QAAS,CACP,CACElY,OAAO,EACPyY,MACE,kBAAClM,EAAA,EAAM,CACLI,QAAS,kBAAMmK,EAAc,YAAY,IACzC4B,SAAO,EACPnZ,MACEwnB,EAAOje,SAAWxI,EAAM+P,KAAO/P,EAAM4P,WACtC,gBAMP,CACElQ,OAAO,EACPyY,MACE,kBAAClM,EAAA,EAAM,CACLI,QAAS,kBAAMmK,EAAc,YAAY,IACzC4B,SAAO,EACPnZ,MACGwnB,EAAOje,SAEJxI,EAAM4P,UADN5P,EAAM+P,MAEX,kBASX,kBAAC,KAAK,CAACW,UAAU,OAAOpH,KAAK,UAE7B,kBAAC,KAAK,CACJoH,UAAU,cACVuH,GAAG,WACH3O,KAAK,gBAGP,kBAACm8C,GAAU,CACT90C,YAAY,yGACZD,UAAU,sBACVpH,KAAK,gBAGP,kBAAC,GAAK,CACJoH,UAAU,qBACVC,YAAY,2HACZrH,KAAK,eACL4H,KAAM,EACNH,IAAK,GACLC,IAAK,KAGT,kBAAC2H,GAAA,EAAI,CAACra,MAAO,GACX,kBAAC,IAAO,2BACR,kBAAC,IAAI,kHAKL,kBAAC,QAAI,CAACsT,GAAG,QAAQtT,MAAO,EAAG6M,MAAO,CAAEuiB,IAAK,SACvC,kBAAC/U,GAAA,EAAI,CACH1Y,gBAAiBwmB,EAAOtmB,YACxBgT,GAAG,OACH7U,MAAO,KAEP,yBAAKoN,IAAK+a,EAAO9a,KAAMC,IAAI,UAE7B,kBAAC,KAAI,CACH8E,UAAU,cACV2rB,UAAQ,EACR7gB,SAAU,SAACmjB,GAAI,OAAKmsB,EAAWnsB,EAAM,SACrCr1B,KAAK,OACL67B,KAAK,8CAIT,kBAAC,QAAI,CAACvzB,GAAG,QAAQtT,MAAO,EAAG6M,MAAO,CAAEuiB,IAAK,SACvC,kBAAC/U,GAAA,EAAI,CAACxF,GAAG,OAAO7U,MAAO,KACrB,yBAAKoN,IAAK+a,EAAOq2B,UAAWlxC,IAAI,eAElC,kBAAC,KAAI,CACH4P,SAAU,SAACmjB,GAAI,OAAKmsB,EAAWnsB,EAAM,cACrCr1B,KAAK,YACLoH,UAAU,oBACVy0B,KAAK,8CAGT,kBAAC,QAAI,CAACvzB,GAAG,QAAQtT,MAAO,EAAG6M,MAAO,CAAEuiB,IAAK,SACvC,kBAAC/U,GAAA,EAAI,CACH1Y,gBAAiBwmB,EAAO7W,UACxBuD,GAAG,OACH7U,MAAO,KAEP,yBAAKoN,IAAK+a,EAAO0zB,SAAUvuC,IAAI,cAEjC,kBAAC,KAAI,CACH4P,SAAU,SAACmjB,GAAI,OAAKmsB,EAAWnsB,EAAM,aACrCr1B,KAAK,WACLoH,UAAU,kBACVy0B,KAAK,gDAMb,kBAAC,QAAI,CACHh6B,MAAO,CAAEuiB,IAAK,QACdC,cAAc,SACdrvB,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,uBAEvB,kBAACqa,GAAA,EAAI,CAACra,MAAO,EAAGod,SAAS,QACvB,kBAAC,IAAO,CAAC1C,GAAG,KAAG,UACf,kBAAC,QAAI,CAAC0C,SAAS,QACb,kBAAC,GAAW,CAAChL,UAAU,UAAUpH,KAAK,YACtC,kBAAC,GAAW,CAACoH,UAAU,YAAYpH,KAAK,cACxC,kBAAC,GAAW,CAACA,KAAK,WAAWoH,UAAU,aACvC,kBAAC,GAAW,CAACpH,KAAK,SAASoH,UAAU,WACrC,kBAAC,GAAW,CAACpH,KAAK,UAAUoH,UAAU,YACtC,kBAAC,GAAW,CAACpH,KAAK,UAAUoH,UAAU,YACtC,kBAAC,GAAW,CACVpH,KAAK,oBACLoH,UAAU,mBAGZ,kBAAC,GAAW,CAACpH,KAAK,OAAOoH,UAAU,SAEnC,kBAAC,GAAW,CAACpH,KAAK,WAAWoH,UAAU,cAEvC,kBAAC,GAAW,CACVpH,KAAK,kBACLoH,UAAU,oBAGZ,kBAAC,GAAW,CACVpH,KAAK,yBACLoH,UAAU,qBAGZ,kBAAC,GAAW,CACVpH,KAAK,cACLoH,UAAU,SACVC,YAAY,KAEd,kBAAC,GAAW,CACVrH,KAAK,iBACLoH,UAAU,eAGZ,kBAAC,GAAW,CAACpH,KAAK,WAAWoH,UAAU,SACvC,kBAAC,GAAW,CAACA,UAAU,SAASpH,KAAK,gBACrC,kBAAC,GAAW,CACVoH,UAAU,cACVpH,KAAK,wBAOf,kBAAC,KAAiB,CAChBi8B,SAAUA,EACViH,SAAU,kBAAMlkC,EAAS,WAAD,OAAYqiD,EAAa/hD,OACjD6jC,WAAmB,WAAPzqC,EACZ0qC,aAAqB,WAAP1qC,EAAkB,SAAW,OAC3C2qC,cAAa,0CAAqClmB,EAAOnd,KAAI,c,cC1X/E,26MA8BA,IAAMkzB,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAM7B4sD,GAAc,SAAH,GAAyC,IAAxBC,EAAO,EAAlB/a,UAAoBjjC,EAAO,EAAPA,QASrCijC,EAAY+a,EAEhB,EAAiDvlD,qBAAWC,KAApDI,EAAQ,EAARA,SAAU47C,EAAiB,EAAjBA,kBAAmBr8C,EAAO,EAAPA,QAC7B6/C,GAA2Bp/C,GAAY,IAAvCo/C,uBAaR,OAXqB,OAAjBxD,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB51C,QAAS,GAC9B41C,EAAkBznC,SAAQ,SAAC5Y,GAAY,IAAD,IAC5BihD,EAAqCjhD,EAArCihD,iBAA6B2I,EAAQ5pD,EAAnB4uC,UAE1B,OADIqS,IAAqBt1C,IAASijC,EAAYgb,GAChC,OAAP5lD,QAAO,IAAPA,GAAiB,QAAV,EAAPA,EAAS6lD,gBAAQ,OAAM,QAAN,EAAjB,EAAmBniD,YAAI,WAAhB,EAAP,EAAyBkR,SAAQ,SAACiK,EAAKvf,IACrC,OAAHuf,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,MAAOugD,IACdj9C,EAAQ8lD,SAASpiD,KAAKpE,GAAGsrC,UAAYgb,SAM3C,kBAAC,QAAI,CAAC5sD,MAAO,GACX,kBAAC,IAAI,CAACG,QAAM,GA1BI,CAClB+jD,EAAG,UACHC,EAAG,UACH4I,EAAG,WACH3I,EAAG,UACHC,EAAG,WAsBczS,IAAciV,GAA0B,aA0T9CmG,GApTI,WACjB,IAAMtrD,EAAQqI,qBACRC,EAAWC,cACX22B,EAAWtF,cACjB,EACEl0B,qBAAWC,KADLG,EAAU,EAAVA,WAAYE,EAAQ,EAARA,SAAU67C,EAAgB,EAAhBA,iBAAkBj5C,EAAG,EAAHA,IAEhD,EAA8B9C,GAAc,GAApC5E,EAAQ,EAARA,SAAUgI,EAAO,EAAPA,QACVisB,EAAazvB,qBAAWgQ,MAAxByf,SACiC,GAAd+J,GAAY,IAA/BrF,SACGsL,QADK,MAAG,IAAG,GACO5zB,MAAM,KAA3B,GAEFg6C,EAAatlD,mBAAQ,iBAAe,aAATk/B,IAAqB,CAACA,IAEjDrgC,EAAUmB,mBACd,kBAAOslD,EAAa,WAAa,cACjC,CAACA,IAyBH,EAtBoB1mD,EAAS,CAC3BC,UACAC,QAASgI,GACT/H,eAAgB,CACd9D,SAAWqqD,EAAyBriD,OAAUrC,EAAY3F,OAAlC2F,EACxBqD,KAAM,EACNhB,QAAUqiD,EAAyBriD,OAAZrC,EACvB+B,OAEF3D,MAAOe,GAAaulD,IAAerqD,IAAc0H,KAae,GAA1DrH,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAAcI,EAAO,EAAPA,QACvC,EAAkCxC,oBAAS,GAAM,mBAA1C6sC,EAAS,KAAEC,EAAY,KAC9B,EAAwB9sC,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAAwC/tB,oBAAS,GAAM,mBAAhD+sC,EAAY,KAAEC,EAAe,KAEpC,EACE5rC,qBAAWsqB,MADL6E,EAAgB,EAAhBA,iBAAkBC,EAAgB,EAAhBA,iBAAkBxhB,EAAgB,EAAhBA,iBAG5CjN,qBAAU,WACJw7C,EAAmB,GAAGn7C,EAAa5B,KACtC,CAAC+8C,EAAkB/8C,EAAS4B,IAE/B,MAA0DnF,GAAQ,GAAE,IAA5DyH,KAAMovB,OAAM,MAAG,GAAE,EAASlK,EAAU,EAAjB7M,MAAmB2U,GAAO,EAAPA,QAExCwc,GAAc7rC,sBAAW,wCAC7B,WAAOwrC,EAAOllC,GAAO,wEAI+C,OAHlEklC,EAAMnqB,kBAAkB,SAEtBopB,EAAankC,GACb4nB,EAAiB,kBAAD,OAAmB5nB,EAAO,uBAAsB,SAEzCa,GAAU,CAAE9L,GAAIiL,IAAW,KAAD,EAA3C+qB,EAAQ,OAEdtxB,EAAa5B,GAEbssC,GAAa,GACbtc,EAAiB,cAAD,OACAkD,EAASh2B,GAAE,+BAAuBiL,EAAO,MAEzD3E,EAAS,UAAD,OAAmB,OAAR0vB,QAAQ,IAARA,OAAQ,EAARA,EAAUh2B,KAAM,kDAEnC6F,QAAQC,MAAM,EAAD,IACbwL,EAAiB,GAAD,cAAa,0DAEhC,qDApB4B,GAqB7B,CACEhL,EACAxD,EACA4B,EACA4M,EACAwhB,EACAD,IAUEud,GAAuBzrC,uBAAY,WACvC2qC,EAAgB,MAChBhpC,EAAS,gBAAD,OAAiB+oC,MACxB,CAACA,EAAc/oC,IAEZ2kB,GAAWhnB,mBAAQ,WACvB,IAAIulD,EAAYD,EACZ,0DACA,kGAGJ,OAFAC,GACE,kGAED,CAACD,IAEEhmB,GAAW5+B,sBAAW,wCAC1B,WAAOuQ,EAAGlV,GAAE,wEAKoC,OAJ9CkV,EAAE8Q,kBACIuqB,EAAS,YAAOna,GACtB9wB,IAAE+B,OAAOkpC,GAAW,YAAK,OAAS,EAAXvwC,KAA8BA,KAErD8E,EAAQ,CAAEkC,KAAMupC,EAAWlxB,MADV6M,EAAa,IACgB,SAExCrgB,GAAY,CAAE7L,OAAM,KAAD,sCAC1B,qDATyB,GAU1B,CAACo2B,EAAQlK,EAAYpnB,IAGjB4d,GAAUze,mBACd,iBAAM,CACJ,CACEjE,GAAI,aACJT,KAAM,SAAC4iB,GAAG,OAAK,kBAAC,IAAI,CAAC1lB,QAAM,GAAK,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAK2nB,aAClCxpB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG5B,CACEjwB,GAAI,cACJT,KAAM,SAAC4iB,GACL,IAAQ2T,EAAqC3T,EAArC2T,SAAUF,EAA2BzT,EAA3ByT,UAAWyL,EAAgBlf,EAAhBkf,YAE7B,OACE,kBAAC,IAAI,KACFA,GACc,UACRzL,GAAa,IAAE,OAAGE,GAAYF,EAAY,IAAM,IAAE,OACnDE,GAAY,OAKxBxV,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAG7B,CACEjwB,GAAI,qBACJT,KAAM,SAAC4iB,GAAG,OACR,kBAAC,IAAI,CAACtlB,UAAQ,EAACJ,QAAM,GACf,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKwT,mBAAkB,IAAM,OAAHxT,QAAG,IAAHA,OAAG,EAAHA,EAAK0T,oBAGpCvV,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,IAAK,IAE7B,CACEjwB,GAAI,kBACJT,KAAM,SAAC4iB,GAAG,OACR,kBAAC,IAAI,CAAC1lB,QAAM,aAAKwoC,KAAO9iB,EAAIsnC,iBAAiBvkB,OAC3C,iBAGJ5kB,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,YACJT,KAAM,gBAAG2uC,EAAS,EAATA,UAAWluC,EAAE,EAAFA,GAAE,OACpB,kBAAC,GAAW,CAACiL,QAASjL,EAAIkuC,UAAWA,KAEvC5tB,OAAQ,SACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAKg0B,GAA4B,YAAlB,gBACfz0B,KAAM,SAAC4iB,GAEL,OADAtc,QAAQyX,IAAI6E,GAEV,kBAAC,IAAI,CAACzlB,OAAK,cAAMkB,KAAUC,SACxBm2B,GAA8B7R,EAAI0Z,UAAxB1Z,EAAImjB,kBAIrBhlB,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACE5Z,QAAS,SAAC7Z,GACR,IAAIkP,EAAQlP,EAAM4qB,KAAKjF,IAAI0F,SAE3B,OACE,kBAAC,GAAc,CAAC7nB,GAAG,WAChBmvC,IAAc3yC,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,GACrC,kBAAC6J,GAAA,EAAO,CAACC,QAAM,IAEf,oCAWE,kBAACG,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAMwB,QACb4W,SAAO,EACPwU,MAAM,0BACNzgB,SAAS,SACTE,QAAS,SAAC6K,GAAC,OAAKs7B,GAAYt7B,EAAGxJ,EAAM1L,OAEZ,KAAhB,OAAV8D,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YACX,kBAACe,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPwU,MAAM,eACNzgB,SAAS,UACTE,QAAS,SAAC6K,GAAC,OAAKquB,GAASruB,EAAGxJ,EAAM1L,UAQhDsgB,OAAQ,GACR+C,MAAM,EACNjmB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAG9B,CACEnsB,EACAqrC,EACAnb,GACAwc,GACAjN,GAEAvlC,EAAMU,OACNV,EAAMwB,UAWV,OACE,oCACE,kBAACsxB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC1B,kBAAC1Z,GAAA,EAAI,CAACvN,SAAS,SACb,kBAAC,IAAO,CAACxM,MAAI,EAACH,QAAM,EAACQ,MAAOe,EAAMU,QAAO,sBAGzC,kBAAC,IAAO,CAACyS,GAAG,OAAO1U,QAAM,+CAGzB,kBAAC,IAAI,CAACA,QAAM,yFAIZ,kBAAC,QAAI,CAAC0U,GAAG,QACP,kBAAClH,EAAA,EAAM,CACLE,SAAS,QACTlN,MAAOe,EAAMU,OACb2L,QAAS,kBAAMgmB,GAAQ,KAAO,WAIhC,kBAACpmB,EAAA,EAAM,CACLhN,MAAOe,EAAMwB,QACb2K,SAAS,UACTE,QAAS+lC,IAAqB,eAOtC,kBAAC5iC,GAAW,KACV,kBAAC,GAAK,CACJod,MAAO2+B,EAAa,SAAW,aAC/B9+B,eAAgB8+B,OAAa1kD,EAAY,kBACzCylB,YAAU,EACVwD,aAAa,EACbC,YAAarpB,EACbF,UAAWA,EACXymB,SAAUA,GACVvI,QAASA,GACTnjB,KAAM62B,EACNzd,UAAU,EACViV,YAAU,EACV1B,WAAYA,EACZhK,WArDW,SAACC,GAClB,IAAkBzW,GAAUyW,GAAO,IAA3B0F,SACRsL,EAAS,eAAKznB,IAEdpF,EAAS,UAAD,OAAgB,OAALoF,QAAK,IAALA,OAAK,EAALA,EAAO1L,W,cClU9B,mmGAAA4C,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAUA,I,MAuDe8mD,GAvDG,WAChB,IAAM1rD,EAAQqI,qBACRC,EAAWC,cACT4sB,EAAazvB,qBAAWgQ,MAAxByf,SACR,EAAiDzvB,qBAAWC,KAApDG,EAAU,EAAVA,WAAYR,EAAO,EAAPA,QAASE,EAAU,EAAVA,WAAYoD,EAAG,EAAHA,IACjCM,GAAYpD,GAAc,IAA1BoD,QACR,EAAoC5E,oBAAS,GAAM,mBAA5CuuC,EAAU,KAAEC,EAAa,KAQ1BE,EAAgBrsC,sBAAW,uBAAC,2FAEC,OADjCmsC,GAAc,GACRpb,EAAQjF,KAAKC,eAAe,EAAD,OACAjlB,GAAY,CAC3C5L,MAAO,CACLX,SAAoB,OAAV4E,QAAU,IAAVA,OAAU,EAAVA,EAAY5E,SACtBy2B,mBAA8B,OAAV7xB,QAAU,IAAVA,OAAU,EAAVA,EAAY8xB,UAChCC,kBAA6B,OAAV/xB,QAAU,IAAVA,OAAU,EAAVA,EAAYgyB,SAC/BvqB,IAAKmqB,EACL9uB,MACAmvB,gBAA2B,OAAVjyB,QAAU,IAAVA,OAAU,EAAVA,EAAY9D,GAC7BkH,aAED,KAAD,WAVU+pC,EAAU,EAAdjxC,GAWR8wC,GAAc,GAGC,QADTztC,EAAQ,eAAQC,UACP,IAARD,YAAU+yB,OACjB5yB,EAAWH,GAEXiD,EAAS,UAAD,OAAW2qC,IAAc,4CAChC,CAACntC,EAAYwC,EAAUhD,EAASE,EAAYoD,EAAKM,IAEpD,OACE,kBAACsG,GAAW,KACV,kBAAC,GAAU,CACT4d,iBACEylB,EACE,kBAAChnC,GAAA,EAAO,CAACC,QAAM,EAACiT,OAAQ/e,EAAM4P,UAAWoP,OAAQhf,EAAMwB,UAEvD,YAGJwvC,WAAS,EACT9sB,WAxCa,SAACC,EAAKjN,GACvBA,EAAE8Q,kBACFmN,EAAS,eAAQ,OAAHhR,QAAG,IAAHA,OAAG,EAAHA,EAAK0F,WACnBvhB,EAAS,UAAD,OAAW6b,EAAI0F,SAAS7nB,MAsC5BurB,WAAYylB,MCTL2Y,IAxCCvtD,kBAAOqC,QAAPrC,CAAY,+GAQP,WACnB,IAAMkK,EAAWC,cACjB,OACE,kBAACiH,GAAW,KACV,kBAAC,IAAO,CAACwJ,GAAG,kBAAkBva,QAAM,EAACmT,GAAG,QAAM,cAG9C,kBAAC,IAAI,CAACA,GAAG,OAAOhT,MAAI,EAACH,QAAM,6CAY3B,kBAAC,QAAI,CAACua,GAAG,OAAOtH,eAAe,UAC7B,kBAACzF,EAAA,EAAM,CACLI,QAAS,kBAAM/D,EAAS,oBACxB4D,aAAa,OACbC,SAAS,eAAa,sBChC1By/C,GAAmBxtD,kBAAOqR,OAAPrR,CAAW,oHAKtB,YAAQ,SAAL4B,MAAkB+P,QAuGpB87C,GAlGA,WACb,IAAM7rD,EAAQqI,qBACd,EAAwB/D,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KAEpB,OACE,oCACE,kBAACS,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC1B,kBAAC1Z,GAAA,EAAI,CAACvN,SAAS,SACb,kBAAC,GAAe,CACd7J,KAAM,GACN8f,MAAO,EACPinC,cAAc,SACdC,iBAAkB,aAClBC,mBAAoB,GACpBn2B,QAASA,EACT40B,SAAO,EACPngD,QAAS,iBAIf,kBAAC,QAAI,CAAC+D,UAAU,WAAWO,SAAS,SAAS9M,MAAO,EAAGsvB,EAAE,UACvD,kBAAC,QAAI,CACHqB,EAAE,OACF3wB,MAAO,EACPoT,eAAe,SACf5G,WAAW,SACX6iB,cAAc,UAEd,kBAAC,QAAI,CAAC7iB,WAAW,UACf,kBAAC,IAAM,CACL7L,MAAOe,EAAM+P,KACb6B,GAAG,SACHwpB,GAAG,OACHvwB,UAAU,aAAW,cAKvB,kBAACE,EAAA,EAAI,CACH9L,MAAOe,EAAM+P,KACboH,OAAO,SACPnM,GAAG,gCAEH,kBAAC4gD,GAAgB,CAAChgD,IAAI,mBACpB,yBACEN,OAAO,KACPm+B,QAAQ,aACRnrC,MAAM,MACNorC,MAAM,8BAEN,0BAAM1nC,GAAG,KACP,0BACEsU,EAAE,qDACFszB,SAAS,aAGb,uBAAGA,SAAS,UAAU/oB,UAAU,wBAC9B,0BAAMvK,EAAE,iMACR,0BAAMA,EAAE,qDACR,0BAAMA,EAAE,mDACR,0BAAMA,EAAE,+GACR,0BAAMA,EAAE,8DACR,0BAAMA,EAAE,mCAER,0BAAMA,EAAE,6lCACR,0BAAMA,EAAE,y5BACR,0BAAMA,EAAE,odACR,0BAAMA,EAAE,2qCACR,0BAAMA,EAAE,6aACR,0BAAMA,EAAE,0iCACR,0BAAMA,EAAE,sjCACR,0BAAMA,EAAE,soCACR,0BAAMA,EAAE,4bACR,0BAAMA,EAAE,mrBACR,0BAAMA,EAAE,22BACR,0BAAMA,EAAE,sGACR,0BAAMA,EAAE,u2BACR,0BAAMA,EAAE,qrBACR,0BAAMA,EAAE,0eAMlB,kBAACrK,EAAA,EAAM,CACLmM,SAAO,EACP/L,QAAS,kBAAMgmB,GAAQ,IACvBjzB,KAAK,QACLH,MAAOe,EAAM+P,MAAK,qBCtCf+7C,GA/DI,WAClB,IAAMxjD,EAAWC,cACTK,EAAQ2L,cAAR3L,IAEFjH,EAASkD,EAAS,CACvBC,QAAS,SACTC,QAAS4C,GACT3C,eAAgB,CAAE4D,MAAKmjD,WAAW,GAClC5mD,cAAe,GACfF,MAAO2D,IAOFg8B,EAAU,SAACh8B,GAChB,OAAQA,GACP,KAAK,EACJ,MAAO,kBACR,KAAK,EACJ,MAAO,YACR,KAAK,EACJ,MAAO,cACR,QACC,MAAO,kBAIJ2mB,EAAWtpB,mBAAQ,WAAO,IAAD,IAC9B,OAAgB,QAAZ,EAACtE,EAAOJ,YAAI,aAAX,EAAayH,MACA,QAAlB,EAAOrH,EAAOJ,YAAI,aAAX,EAAayH,KAAKwD,KAAI,gBAAGxK,EAAE,EAAFA,GAAIsH,EAAI,EAAJA,KAAMqH,EAAW,EAAXA,YAAa/H,EAAG,EAAHA,IAAG,MAAQ,CACjE6D,IAAKzK,EACLA,KACA4qB,MAAOtjB,EACP2jB,SAAUtc,EACVxE,SAAUy4B,EAAQh8B,OANY,OAQ7B,CAACjH,IAEJ,OACC,oCACC,kBAAC6N,GAAW,KACX,kBAAC,GAAK,CACL+d,WAAY,kBAAMjlB,EAAS,kBAC3B8kB,iBAAiB,eACjBC,iBAAiB,cACjBT,MAAM,mBACNH,eAAe,kBACf8C,SAAUA,EACVG,gBAAc,EACdC,WAAS,EACTF,YAAU,EACVjpB,UAAW7E,EAAO6E,UAClBopB,YAAU,EACVJ,WAAS,EACTV,YAAa,SAACnkB,GAAK,OA5CF3I,EA4CmB2I,EAAM3I,QA3C7CsG,EAAS,UAAD,OAAWtG,IADA,IAACA,Q,cClBtB,26MACO,I,GAAMgqD,GAAe,wCAAG,WAAOvlC,GAAM,qGAETrlB,IAAMC,KACnC,gDAAgD,eAE3ColB,IAEL,KAAD,EALmB,GAKnB,SALOnlB,EAAM,EAANA,OAAQC,EAAI,EAAJA,KAOD,MAAXD,IAAmC,IAAjBC,EAAKC,QAAgB,yCAASD,EAAKI,QAAM,yDAE/DkG,QAAQC,MAAM,EAAD,IAAQ,iCAEhB,MAAI,0DACZ,gBAd2B,sC,cCD5B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAuBA,IAAM43B,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAM7Byb,GAAmBF,YAAaC,MAAM,CAC1ChR,IAAK+Q,UACK,qDACP7I,SAAS,yBACZxH,KAAMqQ,YAAawpB,WACnBxyB,YAAagJ,YAAawpB,WAC1B8oB,gBAAiBtyC,YAAawpB,WAC9Bz2B,YAAaiN,YAAawpB,aAiab+oB,GA9ZG,WAChB,IAAM5jD,EAAWC,cACLW,EAAYqL,cAAhBvS,GACFhC,EAAQqI,qBACd,EAA+C3C,qBAAWsqB,MAAlD8E,EAAgB,EAAhBA,iBAAkBxhB,EAAgB,EAAhBA,iBAC1B,EAAwC5N,qBAAWC,KAAtC8xC,EAAI,EAAT7uC,IAAWE,EAAgB,EAAhBA,iBAUnB,EARejE,EAAS,CACtBC,QAAQ,SAAD,OAAWoE,GAClBnE,QAASgD,GACT/C,eAAgB,CAAEhD,GAAIkH,GACtB/D,cAAe,GACfF,MAAOiE,KAGyD,GAApDqB,EAAY,EAAlBhJ,KAAoBiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aACvC,EAOI6D,GAAgB,GANlB3B,EAAG,EAAHA,IACAU,EAAI,EAAJA,KACAqH,EAAW,EAAXA,YAAY,EAAD,EACXw7C,QAASC,OAAQ,MAAG,GAAE,EACtBH,EAAe,EAAfA,gBACAv/C,EAAW,EAAXA,YAGF,EAKI7H,EAAS,CACXC,QAAS,QACTC,QAAStD,EACTuD,eAAgB,CAAE4D,OAClBxD,WAAY,CAAC,YAAa,KAAM,WAAY,MAAO,WAAY,cARzDinD,EAAM,EAAZ9qD,KACW+qD,EAAY,EAAvB9lD,UACc+lD,EAAgB,EAA9B7lD,aACS8lD,EAAW,EAApB1lD,QAQF,EAAoCulD,GAAU,GAAE,IAAxCrjD,KAAM7G,OAAK,MAAG,GAAE,EAAEkf,EAAK,EAALA,MAEpBuyB,EAAY/uC,EAAS,CACzBC,QAAS,YACTC,QAASowC,GACThwC,cAAe,GACfF,KAAMuB,GAAa8lD,IAGf1M,EAAkB35C,mBAAQ,WAC9B,IAAuD,IAAZ,OAAT2tC,QAAS,IAATA,OAAS,EAATA,EAAWryC,OAAQ,IAA7CyH,KACR,YADwB,MAAG,GAAE,GACXwD,KAAI,YAAW,MAAQ,CAAE9M,MAAhB,EAAFsC,GAA6BmW,MAArB,EAAJ7O,WAC5B,CAACsqC,IAEE6Y,EAAe5nD,EAAS,CAC5BC,QAAS,eACTC,QAASinD,GACThnD,eAAgB,CAAE4D,IAAKA,GAAO6uC,GAC9BtyC,cAAe,GACfF,KAAMuB,GAAa8lD,IAGfI,EAAkBzmD,mBAAQ,WAC9B,IAA6D,IAAZ,OAAZwmD,QAAY,IAAZA,OAAY,EAAZA,EAAclrD,OAAQ,IAAnDyH,KACR,YAD2B,MAAG,GAAE,GACXwD,KAAI,YAAW,MAAQ,CAAE9M,MAAhB,EAAFsC,GAA6BmW,MAArB,EAAJ7O,WAC/B,CAACmjD,IAEEN,EAAUlmD,mBACd,kBAAOmmD,EAAWpiD,KAAKysB,MAAM21B,GAAY,KACzC,CAACA,IAGH,EAA8CvnD,EAAS,CACrDE,QAASkvB,GACThvB,MAAO2D,EACP5D,eAAgB,CAAE4D,MAAK66B,QAAQ,GAC/Bt+B,cAAe,KAJT5D,EAAI,EAAJA,KAAiBmiC,EAAgB,EAA3Bl9B,UAO6B,GAAVjF,GAAQ,IAAjCyH,KAAM26B,OAAS,MAAG,GAAE,EAEtBC,EAAkB39B,mBAAQ,WAC9B,OAAQ09B,EACF,CAEA,CAAExrB,MAAO,OAAQzY,MAAO,OAAM,mBAC3BikC,EAAUn3B,KAAI,SAAC2X,GAChB,MAAqCA,GAAO,GAApC0f,EAAc,EAAdA,eACR,EADgC,EAARzN,UACuB,GAAvCp0B,EAAE,EAAFA,GAAIkL,EAAK,EAALA,MAAOm2B,EAAW,EAAXA,YAEnB,EACEQ,GAAkB,GADZxD,EAAO,EAAPA,QAASC,EAAQ,EAARA,SAAUC,EAAI,EAAJA,KAAMC,EAAK,EAALA,MAAOC,EAAG,EAAHA,IAGpCtoB,EAAK,UAAMkrB,GAAen2B,GAAS,UAiBvC,OAhBImzB,GAAWC,KACTD,IAASloB,GAAK,YAASkoB,IACvBC,IACFnoB,GAAK,WAAQmoB,IAEXC,IACFpoB,GAAK,YAASooB,GACVC,IACFroB,GAAK,WAAQqoB,GACTC,IACFtoB,GAAK,YAASsoB,OAMf,CAAEtoB,QAAOzY,MAAOsC,QA3B3B,KA8BH,CAAC2hC,IAEEgpB,GAAahmD,sBAAW,wCAC5B,wGAU+C,GAVtC3E,EAAE,EAAFA,GAAI4qD,EAAK,EAALA,MACLC,EAAevlD,IAAEkD,KAAKrI,GAAO,YAAK,OAAK,EAAPH,KAAsBA,KAEhD8qD,GAFoD,EAM5DD,GAAgB,IAJlBrpB,SACA5L,EAAS,EAATA,UACAE,EAAQ,EAARA,SACA52B,EAAQ,EAARA,SAEIooD,EACJ1xB,GAAaE,EAAQ,UAAMF,EAAS,YAAIE,GAAa52B,EACjDsiC,EAAWspB,EAAO9iD,KAAKysB,MAAMq2B,GAAQ,GAAG,EAAD,QAE7B,IAAVF,EAAe,iBAE4B,OAD7CtlD,IAAE+B,OAAO8iD,GAAS,SAAC3S,GAAG,OAAKA,IAAQx3C,KACnCsF,IAAE+B,OAAOm6B,GAAU,SAAC54B,GAAG,OAAKA,IAAQ1B,KAAS,UAEvCnH,EAAW,CACfC,KACAH,MAAO,CAAE2hC,SAAUx5B,KAAKC,UAAUu5B,GAAWopB,WAC5C,KAAD,oBACIzqB,GAAc,CAClBngC,GAAIkH,EACJrH,MAAO,CAAEsqD,QAASniD,KAAKC,UAAUkiD,MAChC,KAAD,GAIqB,OAHvBr3B,EAAiB,wBAAD,OACUw0B,EAAK,4BAAoBhgD,EAAI,OAEvDR,GAAiB,GAAM,4CAGjB/G,EAAW,CACfC,KACAH,MAAO,CAAE2hC,SAAUx5B,KAAKC,UAAU,GAAD,mBAAKu5B,GAAQ,CAAEt6B,KAAW0jD,WAC1D,KAAD,oBACIzqB,GAAc,CAAEngC,GAAIkH,EAASrH,MAAO,CAAEs6C,OAAQn6C,EAAI4qD,WAAW,KAAD,GAI3C,OAHvB93B,EAAiB,uBAAD,OACSw0B,EAAK,0BAAkBhgD,EAAI,OAEpDR,GAAiB,GAAM,6EAIzBwK,EAAiB,iBAAD,OAAkBg2C,EAAK,0BAAkBhgD,EAAI,OAAM,0DAEtE,mDA7C2B,GA8C5B,CACEnH,EACA2G,EACAqjD,EACAjjD,EACA4rB,EACAxrB,EACAgK,IAIEoR,GAAUze,mBACd,iBAAM,CACJ,CACEjE,GAAI,KACJT,KAAM,KACN+gB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACEjwB,GAAI,WACJT,KAAM,gBAAGL,EAAQ,EAARA,SAAQ,OAAO,kBAAC,IAAI,CAACrC,UAAQ,GAAEqC,GAAY,WACpDohB,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,YACJT,KAAM,gBAAGq2B,EAAS,EAATA,UAAS,OAChB,kBAAC,IAAI,CAACn5B,QAAM,EAACI,UAAQ,GAClB+4B,GAAa,WAGlBtV,OAAQ,aACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACEjwB,GAAI,WACJT,KAAM,gBAAGu2B,EAAQ,EAARA,SAAQ,OACf,kBAAC,IAAI,CAACr5B,QAAM,EAACI,UAAQ,GAClBi5B,GAAY,WAGjBxV,OAAQ,YACRljB,KAAM,CAAEyyB,GAAI,EAAGF,IAAK,EAAGM,IAAK,IAE9B,CACEjwB,GAAI,WACJqW,QAAS,SAAC7Z,GACR,IAAMqa,IAAWvR,IAAEkD,KACjB2hD,GACA,SAAChQ,GAAM,OAAKA,IAAW39C,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,MAEjD,OAAO,kBAAC,GAAS,CAAC6W,OAAQA,EAAQ7W,GAAIxD,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,MAEhEsgB,OAAQ,WACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAGnC,CACE5Z,QAAS,SAAC7Z,GACR,IAAMqa,IAAWvR,IAAEkD,KACjB2hD,GACA,SAAChQ,GAAM,OAAKA,IAAW39C,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,MAE3Cw3C,EAAMh7C,EAAM4qB,KAAKjF,IAAI0F,SAAS7nB,GACpC,OACE,kBAAC,GAAc,CAACA,GAAG,WACjB,kBAACiK,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAMwB,QACb4W,SAAO,EACPvI,SAAUgJ,EACV1M,SAAS,SACTE,QAAS,kBAAMsgD,GAAW,CAAE3qD,GAAIw3C,EAAKoT,OAAO,OAE9C,kBAAC3gD,EAAA,EAAM,CACL7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPvI,UAAWgJ,EACX1M,SAAS,UACTE,QAAS,kBAAMsgD,GAAW,CAAE3qD,GAAIw3C,EAAKoT,OAAO,SAKpDtqC,OAAQ,UACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAGrC,CAACk6B,EAASnsD,EAAMwB,QAASxB,EAAMU,OAAQisD,KAGnClzC,GAAgBxT,mBACpB,iBAAO,CACL2C,IAAKA,GAAO6uC,EACZnuC,OACAqH,cACAs7C,kBACAv/C,iBAEF,CAAC9D,EAAK6uC,EAAMnuC,EAAMqH,EAAas7C,EAAiBv/C,IAG5C8O,GAAW7U,sBAAW,wCAC1B,WAAO8f,GAAM,oFAEO,WAAZvd,EAAoB,gCACDi5B,GAAc,CAAEtgC,MAAO4kB,IAAU,KAAD,EAA/C9kB,EAAM,OACZ2G,EAAS,UAAD,OAAiB,OAAN3G,QAAM,IAANA,OAAM,EAANA,EAAQK,KAE3B8yB,EAAiB,+BAAD,OAAsC,OAANnzB,QAAM,IAANA,OAAM,EAANA,EAAQK,KAAM,wCAExDmgC,GAAc,CAClBngC,GAAIkH,EACJrH,MAAO4kB,IACN,KAAD,GAEFqO,EAAiB,+BAAD,OAAgC5rB,IAAW,QAE7DxC,EAAa,UAAU,kDAEvBmB,QAAQC,MAAM,EAAD,IACbwL,EAAiB,2BAA2B,0DAE/C,mDArByB,GAsB1B,CAACpK,EAASxC,EAAc4B,EAAUwsB,EAAkBxhB,IAGhDiyB,GAAW5+B,sBAAW,uBAAC,+FACrBw7B,GAAc,CAAEngC,GAAIkH,IAAW,KAAD,EAC8B,OAAlE4rB,EAAiB,8BAAD,OAA+BxrB,GAAQJ,IAAW,SAC5DxC,EAAa,UAAU,KAAD,EAC5B4B,EAAS,WAAD,OAAYM,IAAO,2CAC1B,CAACM,EAAS4rB,EAAkBxrB,EAAM5C,EAAc4B,EAAUM,IAE7D,OACE,kBAAC4G,GAAW,KACV,kBAAC,KAAM,CACLgM,SAAUA,GACV3B,iBAAkBA,GAClBJ,cAAeA,GACf2B,oBAAkB,IAEjB,SAAC6kC,GACA,IAAQx5B,EAAWw5B,EAAXx5B,OACR,OACE,oCACE,kBAAC,GAAc,CACbtT,GAAG,OACHmZ,YAAU,EACVG,eAAgB,kBAAMnkB,EAAS,WAAD,OAAYM,GAAO6uC,KACjD7qB,MAAK,UAAiB,WAAZ1jB,EAAuB,SAAW,OAAM,YAEpD,kBAAC,KAAI,CAACiC,MAAO,CAAE7M,MAAO,SACpB,kBAAC,KAAK,CACJwS,UAAQ,EACRJ,UAAU,qBACVpH,KAAK,MACL2O,GAAG,UAEH,4BAAQxL,IAAI,UAAU/M,MAAM,IAAE,qBAG7BkgD,EAAgBpzC,KAAI,gBAAG2L,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OAClC,4BAAQ+M,IAAK/M,EAAOA,MAAOA,GACxByY,OAIP,kBAAC,KAAK,CAACzH,UAAU,OAAOpH,KAAK,SAE7B,kBAAC,KAAK,CACJ2O,GAAG,SACHvH,UAAU,mBACVpH,KAAK,kBACL9C,UAAWk9B,EACX/yB,YAAY,yGAEXizB,EAAgBp3B,KAAI,gBAAG2L,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OAClC,4BAAQsC,GAAItC,EAAO+M,IAAK/M,EAAOA,MAAOA,GACnCyY,OAKP,kBAAC,KAAK,CACJzH,UAAU,cACVuH,GAAG,WACH3O,KAAK,gBAGP,kBAAC,KAAK,CACJwH,UAAQ,EACRJ,UAAU,yBACVpH,KAAK,cACL2O,GAAG,UAEH,4BAAQxL,IAAI,UAAU/M,MAAM,IAAE,yBAG7BgtD,EAAgBlgD,KAAI,gBAAG2L,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OAClC,4BAAQ+M,IAAK/M,EAAOA,MAAOA,GACxByY,OAKP,kBAAC,KAAiB,CAChBotB,SAAUA,GACViH,SAAU,kBAAMlkC,EAAS,WAAD,OAAYM,KACpC6jC,WAAwB,WAAZvjC,EACZwjC,aAA0B,WAAZxjC,EAAuB,SAAW,OAChDyjC,cAAa,0CAAqClmB,EAAOnd,KAAI,OAGlD,WAAZJ,GACC,kBAAC,GAAK,CACJkkB,iBAAiB,cACjBC,iBAAiB,aACjBE,WAAW,gBACXX,MAAM,iBACNkD,aAAa,EACbC,YAAa,WACXy8B,EAAY,CAAEjrD,KAAM,KACpBgrD,EAAiB,SAAD,OAAUrjD,KAE5B+jB,SAAS,iJACT1rB,KAAMY,EACNytB,YAAU,EACVlL,QAASA,GACT2H,UAAQ,EACRC,YAAU,EAEVG,eAAe,kBAEfjmB,UAAW8lD,GAAgBnqD,EAAM4J,OAAS,EAC1CmiB,WAAY7M,W,cCpbhC,26MACO,I,GAAM0rC,GAAa,wCAAG,WAAOrrD,GAAI,iGAElBN,IAAMC,KACtB,4CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZyB,sCA6BbklD,GAAe,wCAAG,WAAOtrD,GAAI,iGAEpBN,IAAMC,KACtB,8CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ2B,sCAafmlD,GAAe,wCAAG,WAAOvrD,GAAI,iGAEpBN,IAAMC,KACtB,8CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ2B,sCAafolD,GAAe,wCAAG,WAAOxrD,GAAI,iGAEpBN,IAAMC,KACtB,8CACAK,GACA,KAAD,EAHQ,GAIW,OAAb,QAJDI,EAAG,cAIF,IAAHA,OAAG,EAAHA,EAAKR,QAAc,yCAASQ,EAAIP,KAAKI,QAAM,aACzC,IAAIiG,MAAM9F,GAAK,KAAD,EAEC,OAFD,yBAEpB+F,QAAQC,MAAM,EAAD,IAAQ,kBACd,MAAI,yDAEd,gBAZ2B,sC,cCxD5B,mmGAAAlD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAkBA,IAAQ6lC,GAAkC0iB,GAAzBpiB,GAAyBoiB,GAAdtiB,GAAcsiB,GAEpC3wB,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAuOpBgvD,GAjOE,WAChB,IAAM9kD,EAAWC,cACTK,EAAQ2L,cAAR3L,IACF5I,EAAQqI,qBAEd,EADuB3C,qBAAWC,KAA1BG,YACqD,GAAE,IAAvDoF,iBAAS,MAAG,EAAC,MAAEhC,eAAO,WAAGrC,EAAS,EAClCyM,EAAqB5N,qBAAWsqB,MAAhC1c,iBASR,EAPezO,EAAS,CACvBC,QAAS,OACTC,QAAS0lC,GACTzlC,eAAgB,CAAE4D,MAAKM,WACvBjE,MAAO2D,KAGqD,GAArDrH,EAAI,EAAJA,KAAMiF,EAAS,EAATA,UAAWE,EAAY,EAAZA,aAAcI,EAAO,EAAPA,QAEvC,EAA4CvF,GAAQ,GAAE,IAA9CyH,KAAMqkD,OAAI,MAAG,GAAE,EAAEhsC,EAAK,EAALA,MAEnByN,GAFiC,EAAPkH,QAEZrvB,sBAAW,wCAC9B,WAAO3E,GAAE,2EACG,WAAPA,EAAe,iCACG6oC,GAAU,CAC9BhpC,MAAO,CAAE+G,MAAK0kD,WAAY,IAAKpkD,aAC7B,KAAD,EAFU,KAGF,QAHJvH,EAAM,cAGF,IAANA,OAAM,EAANA,EAAQK,IAAE,gCACPgrD,GAAgB,CACrBnrD,MAAO,CACN0rD,MAAO5rD,EAAOK,GACd4G,MACA4kD,cAAe,GACfp2B,SAAU,EACVq2B,gBAAiB,KAEhB,KAAD,2BAEKnlD,EAAS,QAAD,OAAS3G,EAAOK,MAAK,+BAGrCsG,EAAS,QAAD,OAAStG,IAAM,4CAExB,mDAtB6B,GAuB9B,CAACsG,EAAUM,EAAKM,KAGXq8B,EAAW5+B,sBAAW,wCAC3B,WAAO3E,GAAE,wEAIoC,OAHtC0rD,EAAO,YAAOL,GACpB/lD,IAAE+B,OAAOqkD,GAAS,YAAK,OAAO,EAAT1rD,KAA0BA,KAE/C8E,EAAQ,CAAEkC,KAAM0kD,EAASrsC,MADRA,EAAQ,IACmB,SAEtC0pB,GAAU,CAAE/oC,OAAM,KAAD,sCACvB,mDAR0B,GAS3B,CAACqrD,EAAMhsC,EAAOva,IAGT2pC,EAAc9pC,sBAAW,uBAAC,uGACHikC,GAA0BhiC,EAAKM,GAAS,KAAD,EAAzD,GAAyD,WAAvDwnC,EAAK,EAAT1uC,IACE,CAAD,+BACFgrD,GAAgB,CACrBnrD,MAAO,CACN0rD,MAAO7c,EACP9nC,MACA4kD,cAAe,GACfp2B,SAAU,EACVq2B,gBAAiB,KAEhB,KAAD,MAEC/c,EAAM,CAAD,wCAASpoC,EAAS,QAAD,OAASooC,KAAQ,gCACpCp9B,EAAiB,mCAAiC,4CACvD,CAACpK,EAASZ,EAAUM,EAAK0K,IAEtBq6C,EAAkB1nD,mBAAQ,WAC/B,IAAMkS,EAAQ,gCAEd,OACC,kBAAC,QAAI,CAAC1L,IAAI,qBACT,kBAACR,EAAA,EAAM,CACN2gB,MAAOzU,EACPhM,SAAS,+BACTE,QAAS,kBAAMokC,MAEdt4B,MAIF,CAACs4B,IAEE/rB,EAAUze,mBACf,iBAAM,CACL,CACCjE,GAAI,YACJT,KAAM,gBAAG0nD,EAAS,EAATA,UAAS,OACjB,kBAAC,IAAI,CAACxqD,QAAM,EAACI,UAAQ,GACnBoqD,EAAYhiB,KAAOgiB,GAAW/hB,OAAO,cAAgB,WAGxD5kB,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG3B,CACCjwB,GAAI,cACJT,KAAM,gBAAGqsD,EAAW,EAAXA,YAAW,OACnB,kBAAC,IAAI,CAACnvD,QAAM,EAACI,UAAQ,GACnB+uD,GAAe,WAGlBtrC,OAAQ,UACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,YACJT,KAAM,gBAAGssD,EAAS,EAATA,UAAS,OACjB,kBAAC,IAAI,CAACpvD,QAAM,EAACI,UAAQ,GACnBgvD,GAAa,WAGhBvrC,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG3B,CACCjwB,GAAI,SACJT,KAAM,gBAAGD,EAAM,EAANA,OAAQgsD,EAAU,EAAVA,WAAU,OAC1B,kBAAC,IAAI,CAAC7uD,QAAM,GACT6C,GAAWgsD,EAEThsD,GACD,YAFA,kBAMLghB,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAG3B,CACCjwB,GAAI,aACJT,KAAM,aACN+gB,OAAQ,UACRljB,KAAM,CAAEyyB,IAAK,EAAGF,IAAK,EAAGM,IAAK,IAG9B,CACCjwB,GAAI,UACJT,KAAM,gBAAGusD,EAAO,EAAPA,QAAO,OACf,kBAAC,IAAI,CAACrvD,QAAM,EAACI,UAAQ,GACnBivD,GAAW,WAGdxrC,OAAQ,WACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE3B,CACCjwB,GAAI,UACJqW,QAAS,SAAC7Z,GACT,IAEA,EAFUA,EAAM4qB,KAAKjF,IAAI0F,UAES,GAA1B7nB,EAAE,EAAFA,GAAIsrD,EAAU,EAAVA,WAEZ,OACC,kBAAC,GAAc,CAACtrD,GAAG,WAClB,kBAACiK,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAM4P,UACbwI,SAAO,EACPjM,SAAUmhD,EAAa,QAAU,WACjCjhD,QAAS,SAAC6K,GACTA,EAAE8Q,kBACF8G,EAAY9sB,MAGC,IAAdkJ,GACA,kBAACe,EAAA,EAAM,CACN7M,KAAK,QACLH,MAAOe,EAAMU,OACb0X,SAAO,EACPjM,SAAS,aACTE,QAAS,SAAC6K,GACTA,EAAE8Q,kBACFud,EAASvjC,QAOfsgB,OAAQ,UACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,OAGnC,CAACjyB,EAAM4P,UAAW5P,EAAMU,OAAQwK,EAAW4jB,EAAayW,IAGzD,OACC,oCACC,kBAAC/1B,GAAW,KACX,kBAAC,GAAK,CACL+d,WAAY,kBAAMuB,EAAY,WAC9B1B,iBAAiB,aACjBd,YAAU,EACVe,iBAAiB,+BACjBuC,YAAU,EACVhD,MAAM,eACNK,SAAS,2HACT6C,aAAa,EACbC,YAAarpB,EACbge,QAASA,EACT+H,eAAe,kBACflrB,KAAM8rD,EACNn/B,WAAY7M,EACZ7a,UAAWA,EACX0d,WAAY,SAACC,GAAG,aAAK2K,EAAe,OAAH3K,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAe7nB,KAChD2qB,0BAAwB,EACxBD,mBAAoB,CAACihC,Q,cCpP1B,mmGAAA/oD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAaA,I,GAgPempD,GAhPO,SAAH,GAYZ,IAXNC,EAAc,EAAdA,eAEAtd,GADc,EAAdud,eACK,EAALvd,OACAwd,EAAQ,EAARA,SACA77B,EAAO,EAAPA,QACAxiB,EAAQ,EAARA,SACAs+C,EAAa,EAAbA,cACA9sC,EAAK,EAALA,MACArY,EAAI,EAAJA,KACAo9B,EAAO,EAAPA,QACApQ,EAAO,EAAPA,QAEMo4B,EAAgBnoD,mBAAQ,WAC7B,MAAiB,WAAVyqC,EAAqB,KAAOppC,IAAEkD,KAAKxB,GAAM,YAAK,SAAFhH,KAAgB0uC,OACjE,CAAC1nC,EAAM0nC,IAEJj3B,EAAgBxT,mBAAQ,WAC7B,MASImoD,GAAiB,GACrB,MAAO,CACNC,cAVa,EAAbA,cAWAC,OAVM,EAANA,QAUkB,GAClBR,QAVO,EAAPA,QAWAS,UAVS,EAATA,UAWAn3B,SAVQ,EAARA,SAWAq2B,gBAVe,EAAfA,gBAWAD,cAVa,EAAbA,cAWA1e,WAVU,EAAVA,cAYC,CAACsf,IAEEI,EAAmBvoD,mBAAQ,WAChC,IAAMmxB,EACLgP,IAAYpQ,EACTrc,UACQ,8BACP7I,SAAS,yBACTE,IAAI,EAAG,wCACPD,KACa,OAAbq9C,QAAa,IAAbA,OAAa,EAAbA,EAAetf,YAAa,EACZ,OAAbsf,QAAa,IAAbA,OAAa,EAAbA,EAAeX,gBACf,EACH,mDAED9zC,UACQ,8BACP7I,SAAS,yBACTE,IAAI,EAAG,wCAEZ,OAAO2I,YAAaC,MAAM,CACzB4zC,cAAe7zC,UACN,wCACP7I,SAAS,wCACXg+B,WAAYn1B,YAAawpB,WACzB/L,WACAi3B,cAAe10C,YAAawpB,WAC5BmrB,OAAQ30C,UACC,6CACP7I,SAAS,6CACXg9C,QAASn0C,YAEP7I,SACA,oEAEFy9C,UAAW50C,YAAawpB,eAEvB,CAACirB,EAAep4B,EAASoQ,IAE5B,EAA+C1gC,qBAAWsqB,MAAlD1c,EAAgB,EAAhBA,iBAAkBwhB,EAAgB,EAAhBA,iBAEpBtZ,EAAW7U,sBAAW,wCAC3B,WAAO8f,EAAO,GAAD,0EAQI,OARAiZ,EAAS,EAATA,WACN,CAAEjZ,WAAU,SAEfylB,EAAO,YAAOljC,GACdia,EAAQ3b,IAAEg2B,UAAUt0B,GAAM,YAAK,SAAFhH,KAAgB0uC,KACnDxE,EAAQtlB,OAAO3D,EAAO,EAAE,2BAAMmrC,GAAkB3nC,IAEhD0nC,EAAc,CAAEnlD,KAAMkjC,EAAS7qB,UAC/BgR,GAAQ,GAAO,UAET46B,GAAgB,CAAEjrD,GAAI0uC,EAAO7uC,MAAM,eAAM4kB,KAAY,KAAD,GAC1DynC,EAAS,MAAM,kDAEfrmD,QAAQC,MAAM,EAAD,IACbwL,EAAiB,gCACjB46C,EAAS,MACT77B,GAAQ,GAAO,0DAEhB,qDAnB0B,GAoB3B,CACChR,EACA+sC,EACA1d,EACA1nC,EACAmlD,EACAD,EACA77B,EACA/e,IAIIm7C,EAAiB9nD,sBAAW,uBAAC,qFAEnB,GADf0rB,GAAQ,GACR67B,EAAS,OACLr+C,EAAS,CAAD,eAGT,OAFFyD,EACC,6DACC,0BAOiD,OAPjD,SAKI44B,EAAO,YAAOljC,GACpB1B,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAO0uC,KACtCyd,EAAc,CAAEnlD,KAAMkjC,EAAS7qB,MAAOA,EAAQ,IAAK,UAC7C6rC,GAAgB,CAAElrD,GAAI0uC,IAAS,KAAD,GACpC5b,EAAiB,oCAAD,OAAqC4b,IAAS,kDAE9D7oC,QAAQC,MAAM,EAAD,IACbwL,EAAiB,gCAAgC,0DAEhD,CACFzD,EACAyD,EACAtK,EACAmlD,EACA9sC,EACAqvB,EACA5b,EACAzC,EACA67B,IAGD,OACC,kBAACv1C,GAAA,EAAI,CAACvN,SAAS,QAAQC,SAAU,CAAC,QAAS,QAAS,QAAS,UAC5D,kBAAC,KAAM,CACNkQ,kBAAkB,EAClBD,iBAAiB,EACjBD,gBAAgB,EAChBG,SAAUA,EACV3B,iBAAkB20C,EAClB/0C,cAAeA,IAEd,YAAiB,IAAdgN,EAAM,EAANA,OACH,OACC,kBAAC,KAAI,CAACtb,MAAO,CAAE7M,MAAO,SACrB,kBAAC,QAAI,CACJA,MAAO,EACPwM,WAAW,aACX4G,eAAe,aACfic,cAAc,UAEd,kBAAC,KAAK,CACL/V,QAASo2C,EACT1kD,KAAK,gBACLwH,UAAQ,EACRmI,gBAAc,EACdpJ,SAAUA,EACVa,UAAU,mBAGV01B,EACA,kBAAC,QAAI,CACJt7B,WAAW,aACX4G,eAAe,gBACfvG,MAAO,CAAEuiB,IAAK,UAEZsI,GACD,kBAAC,KAAK,CACLnmB,UAAU,EACVa,UAAU,mBACVpH,KAAK,aACLY,KAAK,WAGP,kBAAC,KAAK,CACL2F,SAAUA,EACViB,UAAQ,EACRC,IAAK0V,EAAOqoB,WACZp+B,UAAU,qBACVpH,KAAK,WACLY,KAAK,YAIP,kBAAC,KAAK,CACL4G,UAAQ,EACRjB,SAAUA,EACVa,UAAU,qBACVpH,KAAK,WACLY,KAAK,WAIP,kBAAC,KAAK,CACL2F,SAAUA,EACVa,UAAU,iBACVuH,GAAG,WACH3O,KAAK,SACLwH,UAAQ,EACR49C,YAAU,IAEX,kBAAC,KAAK,CACL59C,UAAQ,EACRjB,SAAUA,EACVc,YAAY,gCACZD,UAAU,qBACVpH,KAAK,aAGJ0sB,GACD,kBAAC,KAAK,CAACnmB,UAAQ,EAACa,UAAU,iBAAiBpH,KAAK,cAGjD,kBAACmgD,GAAA,EAAa,CACblkB,SAAUkpB,EACVhiB,WAAsB,WAAViE,GAAsB7gC,EAClC68B,aAAwB,WAAVgE,EAAqB,SAAW,OAC9ClE,SAAU,kBAAMna,GAAQ,IACxBsa,cAAc,6D,cClPvB,mmGAAA/nC,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAwBA,IAAM43B,GAAiBp+B,kBAAOqC,QAAPrC,CAAY,qHAM3B4uD,GAAmC2B,GAAlB5B,GAAkB4B,GAqf5BC,GAnfC,WAAO,IAAD,EACf5uD,EAAQqI,qBACRC,EAAWC,cACLglD,EAAUh5C,cAAdvS,GACR,EAAoD0D,qBAAWC,KAAvDiD,EAAG,EAAHA,IAAK9C,EAAU,EAAVA,WAAuB8uB,EAAW,EAAtBpuB,UACzB,EAA+Cd,qBAAWsqB,MAAlD8E,EAAgB,EAAhBA,iBAAkBxhB,EAAgB,EAAhBA,iBAEpBsgC,EAAY/uC,EAAS,CAC1BC,QAAS,YACTC,QAASowC,GACThwC,cAAe,GACfF,KAAM2vB,IAGDjzB,EAASkD,EAAS,CACvBC,QAAQ,OAAD,OAASyoD,GAChBxoD,QAASo9B,GACTn9B,eAAgB,CAAEhD,GAAIurD,GACtBpoD,cAAe,GACfF,MAAOsoD,IAAkB,OAAT3Z,QAAS,IAATA,OAAS,EAATA,EAAWptC,cAAuB,OAATotC,QAAS,IAATA,OAAS,EAATA,EAAWryC,OAAQqzB,IAGvDqI,EAAWp4B,EAAS,CACzBC,QAAS,cACTC,QAAS6uB,GACT5uB,eAAgB,CAAE4D,MAAKotB,QAAoB,QAAb,EAAEr0B,EAAOJ,YAAI,aAAX,EAAay0B,SAC7C7wB,cAAe,GACfC,WAAY,CAAC,gBAAiB,QAC9BH,KACC2uC,EAAUptC,YACTotC,EAAUryC,MACXqzB,GACAjzB,EAAO6E,YACN7E,EAAOJ,OAGV,EAA+DI,GAAU,GAA3DktD,EAAU,EAAhBttD,KAAkBmF,EAAY,EAAZA,aAAcF,EAAS,EAATA,UAAWM,EAAO,EAAPA,QAEnD,EAKIjC,EAAS,CACZC,QAAQ,cAAD,OAAgByoD,GACvBxoD,QAASgoD,GACT/nD,eAAgB,CAAE4D,MAAK2kD,QAAOtgD,QAAmB,OAAV4hD,QAAU,IAAVA,OAAU,EAAVA,EAAY5hD,SACnD9H,cAAe,GACfF,KACC2uC,EAAUptC,YACTotC,EAAUryC,MACXqzB,GACAjzB,EAAO6E,YACN7E,EAAOJ,MACR07B,EAASz2B,YACRy2B,EAAS17B,OAhBLutD,EAAc,EAApBvtD,KACWwtD,EAAc,EAAzBvoD,UACcynD,EAAc,EAA5BvnD,aACSynD,EAAa,EAAtBrnD,QAgBD,EAAsDgoD,GAAkB,GAAE,IAAlE9lD,KAAMgmD,OAAU,MAAG,GAAE,EAASC,EAAW,EAAlB5tC,MAE/B,EACCwtC,GAAc,GADP5hD,EAAO,EAAPA,QAASohD,EAAa,EAAbA,cAAeP,EAAO,EAAPA,QAASS,EAAS,EAATA,UAAWX,EAAW,EAAXA,YAGpD,EAAwBtpD,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KACpB,EAA0B/tB,mBAAS,UAAS,mBAArCosC,GAAK,KAAEwd,GAAQ,KAEhBr+C,GAAW5J,mBAAQ,0BAAmB,QAAZ,EAACtE,EAAOJ,YAAI,aAAX,EAAa+rD,cAAY,CAAC3rD,EAAOJ,OAC5Dy0B,GAAU/vB,mBAAQ,0BAAc,OAANtE,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQJ,YAAI,WAAN,EAAN,EAAcy0B,WAAS,CAACr0B,EAAOJ,OACzD6kC,GAAUngC,mBAAQ,mBAAQgH,IAAS,CAACA,IAC1C,GAAwC3I,oBAAS,GAAM,qBAAhDo1C,GAAY,MAAEwV,GAAe,MAE9BlB,GAAiB/nD,mBAAQ,WAC9B,IAAqD,IAAZ,OAARg3B,QAAQ,IAARA,OAAQ,EAARA,EAAU17B,OAAQ,IAA3CyH,KACR,YADuB,MAAG,GAAE,GACXwD,KAAI,gBAAGmI,EAAI,EAAJA,KAAmB,MAAQ,CAClDjV,MAD0C,EAAb63B,cAE7Bpf,MAAOxD,QAEN,CAACsoB,IAEEpjB,GAAmB5T,mBAAQ,WAChC,OAAO0T,YAAaC,MAAM,CACzB20C,UAAW50C,YAAawpB,WACxB2qB,QAASn0C,UACA,mCACP7I,SAAS,uCACXu9C,cAAe10C,YAAa7I,eAE3B,IAEG2I,GAAgBxT,mBACrB,iBAAO,CACNooD,gBACAE,YACAT,aAED,CAACS,EAAWT,EAASO,IAGhB7yC,GAAW7U,sBAAW,uBAAC,kHAE3BuoD,IAAgB,GACZtqD,EAAI,EAAE,EAAD,aACUoqD,GAAU,yDAEoB,GAFxCG,EAAM,QACdvqD,GAAK,EACGwyB,GADD,EAC8C+3B,GAAU,IAAvD/3B,SAAUo2B,EAAa,EAAbA,cAAeM,EAAO,EAAPA,QAASQ,EAAM,EAANA,SACtCl3B,GAAY,GAAC,qBACZo2B,GAAmC,KAAlBA,EAAoB,iBACjB,OAAvB0B,IAAgB,GAAO,kBAChB57C,EAAiB,mDAAD,OAC6B1O,KACnD,YAEEkpD,GAAuB,KAAZA,EAAc,iBACL,OAAvBoB,IAAgB,GAAO,kBAChB57C,EAAiB,kDAAD,OAC4B1O,KAClD,YAEE0pD,GAAqB,KAAXA,EAAa,iBACH,OAAvBY,IAAgB,GAAO,kBAChB57C,EAAiB,6CAAD,OACuB1O,KAC7C,gKAKoBu9B,GAAY,CACnCngC,GAAIurD,EACJ1rD,MAAO,CACNm0B,WACA4B,UAAqB,OAAV9xB,QAAU,IAAVA,OAAU,EAAVA,EAAY8xB,UACvBE,SAAoB,OAAVhyB,QAAU,IAAVA,OAAU,EAAVA,EAAYgyB,YAErB,KAAD,GAPW,GAOX,WAPMhwB,EAAK,EAALA,OASE,CAAD,gBAEe,OADvBD,QAAQyX,IAAI,CAAExX,UACdonD,IAAgB,GAAO,kBAChB57C,EAAiBxL,IAAM,QAG/BonD,IAAgB,GAEhBp6B,EAAiB,6BAAD,OAA8By4B,IAE9C7mD,EAAa,QACbunD,IAAiB,kDAEjBpmD,QAAQC,MAAM,EAAD,IACbwL,EAAiB,yBAAyB,uEAEzC,CACFi6C,EACAyB,EACAh5B,GACAlB,EACAhvB,EACAY,EACAunD,EACA36C,IAyCK87C,IAtCiBzoD,sBAAW,wCACjC,WAAO3E,GAAE,4EAGmD,GAFnDgH,EAAS8lD,EAAT9lD,KACFkjC,EAAO,YAAOljC,GACdia,EAAQ3b,IAAEg2B,UAAU4O,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAOA,MACnD6N,GAAS,CAAD,eAKT,OAJFyD,EAAiB,6BAAD,OAEd2P,EAAQ,EAAC,sCAET,0BAMuD,OANvD,SAKF3b,IAAE+B,OAAO6iC,GAAS,SAAC/nB,GAAG,OAAKA,EAAIniB,KAAOA,KACtCmsD,EAAc,CAAEnlD,KAAMkjC,EAAS7qB,MAAO4tC,EAAc,IAAK,UACnDN,GAAwB,CAAE3sD,OAAM,KAAD,GACrC8yB,EAAiB,oCAAD,OAAqC7R,EAAQ,EAAC,MAC9DirC,GAAS,MACT77B,GAAQ,GAAO,kDAEfxqB,QAAQC,MAAM,EAAD,IACbwL,EAAiB,iCACjB46C,GAAS,MACT77B,GAAQ,GAAO,0DAEhB,mDA3BgC,GA4BjC,CACCxiB,GACAo/C,EACAH,EACAX,EACA76C,EACAwhB,IAIqBnuB,sBAAW,uBAAC,kHAEZqmD,GAAgB,CACpCnrD,MAAO,CAAE2rD,cAAe,GAAIp2B,SAAU,EAAGm2B,QAAO3kD,SAC9C,KAAD,EAFIjH,EAAM,OAIN0tD,EAAUJ,EAAc,EAC9BpnD,QAAQyX,IAAI,CAAE3d,WAERqH,EAAI,sBAAOgmD,GAAU,gBAAOrtD,KAElCwsD,EAAc,CACbnlD,OACAqY,MAAOguC,KAGE,OAAN1tD,QAAM,IAANA,OAAM,EAANA,EAAQK,MACX8yB,EAAiB,oCAAD,OAAqCu6B,IACrDnB,GAASvsD,EAAOK,IAChBqwB,GAAQ,IACR,kDAEDxqB,QAAQC,MAAM,EAAD,IACbwL,EAAiB,+BAA+B,0DAE/C,CACFi6C,EACA3kD,EACAqmD,EACAD,EACAb,EACAr5B,EACAxhB,KAGKic,GAAWtpB,mBAAQ,WACxB,IAC6B,EADzB1E,EAAO,GAAG,eACKytD,GAAU,IAA7B,2BAA+B,CAAC,IAAvBG,EAAM,QACNb,EACPa,EADOb,OAAQd,EACf2B,EADe3B,cAAep2B,EAC9B+3B,EAD8B/3B,SAAUp1B,EACxCmtD,EADwCntD,GAAI8rD,EAC5CqB,EAD4CrB,QAASO,EACrDc,EADqDd,cAEtD9sD,EAAKwW,KAAK,CACT6U,MAAO4gC,EACPvgC,SAAUqhC,EACVt/B,SAAU,CACT,kBAAC,IAAM,yBAAeoI,IACtB,kBAAC,IAAM,wBAAc02B,IACrB,kBAAC,IAAM,gCAAsBO,KAE9BrsD,QAED,8BACD,OAAOT,IACL,CAACytD,IAEEM,GAAgB3oD,uBAAY,YAAmB,IAC5C3E,EADoC,EAAR6nB,SAC5B7nB,GACRksD,GAASlsD,GACTqwB,GAAQ,KACN,IAEGk9B,GAAkBtpD,mBACvB,kBACC+nD,GAAexhD,KAAI,WAAmB5H,GAAC,IAAjBuT,EAAK,EAALA,MAAOzY,EAAK,EAALA,MAAK,OACjC,4BAAQ+M,IAAG,UAAK/M,EAAK,YAAIkF,GAAKlF,MAAOA,GACnCyY,QAGJ,CAAC61C,KAGIwB,GAAgBvpD,mBAAQ,WAC7B,IAAIwpD,GAAU,GACA,OAAVT,QAAU,IAAVA,OAAU,EAAVA,EAAYjjD,QAAS,IAAG0jD,GAAU,GACtC,IAC6B,EADzBC,EAAkB,EAAE,eACLV,GAAU,IAA7B,2BAA+B,CAAC,IAC/B,EADc,SACiD,GAAvD53B,EAAQ,EAARA,SAAUo2B,EAAa,EAAbA,cAAec,EAAM,EAANA,OAAQR,EAAO,EAAPA,QACrC12B,GAAY,GACfs4B,GAAmB,EACdlC,GAAkBc,GAAWR,IAAS2B,GAAU,GACrDA,GAAU,GACoB,IAApBC,IACVD,GAAU,IAEX,8BACD,OAAOA,IACL,CAACT,IAEEW,GAAW1pD,mBAAQ,WACxB,IAAI2pD,EAAY,SACZC,EAAS,GAOb,OANIhgD,KAAU+/C,EAAY,QAEtBxpB,KAASypB,EAAM,2BAAuBjC,GAAe,IAAIzd,SAEzDna,KAAS65B,EAAS,0BAEhB,GAAN,OAAUD,EAAS,YAAIC,KACrB,CAAChgD,GAAU+9C,EAAa53B,GAASoQ,KAE9BnZ,GAAWhnB,mBAAQ,WACxB,MAA4C4oD,GAAc,GAAlDiB,EAAW,EAAXA,YAAaxuD,EAAM,EAANA,OAAQgsD,EAAU,EAAVA,WAC7B,OAAQwC,EACD,wBACa7oB,KAAO6oB,GAAa5oB,OAAO,cAAa,qBACzD5lC,GAAUgsD,EAAa,YAAc,iBAFrC,OAID,CAACuB,IAEEkB,GAAgB9pD,mBAAQ,WAC7B,IAAMoR,EAAM,CACX,CACCrV,GAAI,gBACJsgB,OAAQ,SACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B1wB,KAAM,gBAAGisD,EAAa,EAAbA,cAAa,OAAO,kBAAC,IAAI,CAAC/uD,QAAM,GAAE+uD,KAE5C,CACCxrD,GAAI,UACJsgB,OAAQ,WACRljB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,GACjC1wB,KAAM,gBAAGusD,EAAO,EAAPA,QAAO,OAAO,kBAAC,IAAI,CAACrvD,QAAM,GAAEqvD,MAgEvC,OA5DAz2C,EAAIU,KACH,CACC/V,GAAI,SACJsgB,OAAQ,SACRljB,KAAM42B,GACH,CAAElE,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC3B,CAAEH,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC9B1wB,KAAM,gBAAG+sD,EAAM,EAANA,OAAM,OAAO,kBAAC,IAAI,KAAEA,KAE9B,CACCtsD,GAAI,WACJsgB,OAAQ,oBACRljB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,GACjC1wB,KAAM,gBAAG61B,EAAQ,EAARA,SAAQ,OAAO,kBAAC,IAAI,CAAC34B,QAAM,GAAE24B,MAIpCgP,KAAYpQ,IACf3e,EAAIU,KAAK,CACR/V,GAAI,aACJsgB,OAAQ,mBACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,GAC1B1wB,KAAM,gBAAGutC,EAAU,EAAVA,WAAU,OAAO,kBAAC,IAAI,CAACrwC,QAAM,GAAEqwC,MAKrCj/B,IACJwH,EAAIU,KAAK,CACRM,QAAS,SAAC7Z,GAAW,IAAD,EACnB,GACM,OAALA,QAAK,IAALA,GAAU,QAAL,EAALA,EAAO2lB,WAAG,WAAL,EAAL,EAAY0F,WAAY,GADjBuN,EAAQ,EAARA,SAAUo2B,EAAa,EAAbA,cAAec,EAAM,EAANA,OAAQR,EAAO,EAAPA,QAEnCkC,EACL54B,KAAco2B,IAAkBc,IAAWR,GAC5C,OACC,kBAAC,GAAc,CAAC9rD,GAAG,IAClB,kBAAC,QAAI,CAAC8I,WAAW,cACfklD,EAAoB,kBAAC,IAAI,CAAC/wD,MAAOe,EAAMU,QAAO,KAAY,KAC3D,kBAACuL,EAAA,EAAM,CACN7M,KAAK,QACLgZ,SAAO,EACPnZ,MAAOe,EAAM4P,UACbzD,SAAS,WACTE,QAAS,kBAAMijD,GAAc9wD,EAAM2lB,WAaxC7B,OAAQ,GACR+C,MAAM,EACNjmB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,KAE5B5a,IACL,CACFxH,GACAmmB,GACAoQ,GACAkpB,GAEAtvD,EAAMU,OACNV,EAAM4P,YAGDqgD,GAAkBtpD,sBAAW,wCAClC,WAAOuQ,GAAC,0EAIoB,GAH3BA,EAAE2G,iBAEIne,EAAQwX,EAAEC,OAAOzX,MACjB4J,EAAO4N,EAAEC,OAAO7N,KAClBulD,EAAWvlD,KAAU5J,EAAK,iDACY,OAA1CoH,EAAQ,2BAAK+nD,GAAU,kBAAGvlD,EAAO5J,KAAS,SAEpCyiC,GAAY,CAAEngC,GAAIurD,EAAO1rD,MAAM,eAAIyH,EAAO5J,KAAW,KAAD,sCAC1D,mDAViC,GAWlC,CAAC6tD,EAAOsB,EAAY/nD,IAGrB,OAAON,GAAay2B,EAASz2B,YAAcy2B,EAAS17B,OAASstD,EAC5D,kBAAChjD,GAAA,EAAO,MAER,oCACC,kBAACinB,GAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC3B,kBAAC,GAAa,CACb27B,eAAgBuB,GAChBtB,eAAgBA,EAChBvd,MAAOA,GACPwd,SAAUA,GACV97B,KAAMA,EACNC,QAASA,EACTxiB,SAAUA,GACVs+C,cAAeA,EACf9sC,MAAO4tC,EACPjmD,KAAMgmD,EACN5oB,QAASA,GACTpQ,QAASA,MAGX,kBAACxmB,GAAW,KACX,kBAAC,GAAc,CACd2D,GAAG,OACHmZ,WAAYzc,GACZ0d,WAAY,kBAAM/R,MAClB6R,iBAAiB,+BACjBD,iBAAiB,SACjBD,kBAAmBntB,EAAMwB,QACzBgsB,qBAAsBgiC,IAAiB9V,GACvCzsB,SAAUA,GACVR,eAAgB,kBAAMnkB,EAAS,SAAD,OAAUM,KACxCgkB,MAAO+iC,KAOR,kBAAC,KAAM,CACN91C,iBAAkBA,GAClBJ,cAAeA,GACf4B,gBAAgB,EAChBE,kBAAkB,EAClBD,iBAAiB,IAEhB,WACA,OACC,kBAAC,KAAI,KACFrO,EAeE,KAdH,oCACC,kBAAC,KAAK,CACL4C,SAAUA,GACVa,UAAU,oBACVpH,KAAK,UACLoO,OAAQu4C,KAET,kBAAC,KAAK,CACLpgD,SAAUA,GACVa,UAAU,kBACVpH,KAAK,gBACLoO,OAAQu4C,UASf,kBAAC,GAAK,CACLvrC,QAASqrC,GACT1jC,UAAQ,EACRuD,YAAU,EACVF,gBAAc,EACdpD,aAAcrf,EACd2f,MAAM,eACN6C,YAAU,EACVjpB,UAAWuoD,EACX7gC,WAAY+gC,EACZ1hC,WAAY,kBAAM6hC,MAClBhiC,iBAAiB,oBACjB7rB,KAAMytD,EACNz/B,SAAUA,QC1eA2gC,GA3BE,SAAC1xD,GAChB,MAAkCkH,qBAAWC,KAArCG,EAAU,EAAVA,WAAYU,EAAS,EAATA,UACsB,GAAhBV,GAAc,IAAhCoF,iBAAS,MAAG,EAAC,EAEfmkB,EAAYppB,mBAAQ,WACxB,GAAIO,EAAW,OAAO,kBAACqF,GAAA,EAAO,MAC9B,OAAQX,GACN,KAAK,EACH,OACE,kBAAC,EAAoB,CAAC7G,aAAc,CAAC,OAAQ,QAC3C,kBAAC,GAAc,iBAAK7F,EAAK,CAAEg9B,UAAQ,MAIzC,KAAK,EACH,OAAO,kBAAC,GAAc,MAExB,QACE,OAAO,kBAAC,GAAM,SAEjB,CAACh1B,EAAW0E,EAAW1M,IAI1B,OAFA6H,qBAAU,cAAU,CAACG,EAAW0E,IAEzBmkB,GCdM8gC,GAdS,SAAH,GAA8B,IAAzBC,EAAkB,EAAlBA,mBAExB,OACE,kBAAC5gD,GAAW,KACV,kBAAC,IAAO,CAACwJ,GAAG,kBAAkBva,QAAM,EAACmT,GAAG,QAAM,4BAG9C,kBAAC,IAAI,CAACA,GAAG,OAAOhT,MAAI,EAACH,QAAM,GACxB2xD,KC2CD1tD,GAAqBuI,EAEvBolD,GAAc,SAAH,GAA8C,IAAxC1wD,EAAQ,EAARA,SAAU2wD,EAAS,EAATA,UAAWC,EAAW,EAAXA,YAC3C,EAAsD7qD,qBAAWC,KAAzDG,EAAU,EAAVA,WAAYE,EAAQ,EAARA,SAAUQ,EAAS,EAATA,UAAWT,EAAQ,EAARA,SACjCmF,GAAcpF,GAAc,IAA5BoF,UACFslD,EAAW9tD,GAAiBwI,IAAc,IAGhD,OAFgC,OAARnF,QAAQ,IAARA,OAAQ,EAARA,EAAU0qD,iBAG1B,kBAAC,IAAQ,CAACzlD,GAAG,iBAGjBhF,EACCsqD,EAAkB,kBAAC,IAAQ,CAACtlD,GAAIwlD,KAChChqD,GAAcV,GAAeC,EAG1BpG,EAH2C,kBAACkM,GAAA,EAAO,MAKtD0kD,GACAD,EADoB3wD,EAEZ,kBAAC,IAAQ,CAACqL,GAAG,YAIrB0lD,GAAe,SAAH,GAAsB,IAAhB/wD,EAAQ,EAARA,SACvB,EAAsD+F,qBAAWC,KAAzDG,EAAU,EAAVA,WAAYE,EAAQ,EAARA,SAAUQ,EAAS,EAATA,UAAWT,EAAQ,EAARA,SACjCmF,GAAcpF,GAAc,IAA5BoF,UAEFslD,EAAW9tD,GAAiBwI,IAAc,IAEhD,OAAIlF,GACCQ,GAAcV,GAAeC,EAC7B,CAAC,EAAG,GAAGmM,SAAShH,GAAmBvL,EAC3B,kBAAC,IAAQ,CAACqL,GAAIwlD,IAFwB,kBAAC3kD,GAAA,EAAO,MAInD,kBAAC,IAAQ,CAACb,GAAG,YAIhB2lD,GAAM,WACX,IAAM5pC,EAAUrhB,qBAAWC,KAa3B,EAXoBd,EAAS,CAC5BC,QAAS,QACTC,QAAS6kD,GAET5kD,eAAgB,CACf4D,KAAY,OAAPme,QAAO,IAAPA,OAAO,EAAPA,EAASne,MAAO,UACrBJ,WAAYue,EAAQve,UAErBrD,cAAe,MAQG,GAJZyrD,EAAS,EAAfrvD,KACSsvD,EAAY,EAArB/pD,QACcsB,EAAY,EAA1B1B,aACWoqD,EAAY,EAAvBtqD,UAGD,EAA0BlC,mBAAS,2BAC/BysD,IAAsB,IACzBlU,aAAsB,OAAT+T,QAAS,IAATA,OAAS,EAATA,EAAW/T,aACrB7yC,KAAKysB,MAAMm6B,EAAU/T,aACrB,CAAC,QAAS,QAAS,QAAS,QAAS,SAAU,aACjD,mBALK78C,EAAK,KAAEgxD,EAAQ,KAOtB3qD,qBAAU,WACLuqD,IAAcE,GACjBE,EAAS,2BACLJ,GAAS,IACZ/T,aAAsB,OAAT+T,QAAS,IAATA,OAAS,EAATA,EAAW/T,aACrB7yC,KAAKysB,MAAMm6B,EAAU/T,aACrB,CAAC,QAAS,QAAS,QAAS,QAAS,SAAU,eAGlD,CAAC91B,EAAS6pC,EAAWE,IAExB,IACC,IAAQV,IAA8B,OAAPrpC,QAAO,IAAPA,OAAO,EAAPA,EAAShhB,WAAY,IAA5CqqD,mBAER,OACC,kBAAC,gBAAa,CAACpwD,MAAOA,GACrB,kBAAC,EAAW,MACX+mB,EAAQvgB,UACR,kBAACqF,GAAA,EAAO,MAER,kBAAC,QAAI,CACJ8hB,cAAc,SACdjc,eAAe,gBACf7G,UAAU,OAEV,kBAAC,GAAM,MAEP,kBAAC,QAAI,CAAC8iB,cAAc,SAASjc,eAAe,cAC3C,kBAAC,GAAM,CAACtJ,aAAcA,IAEtB,kBAAC,IAAM,KACN,kBAAC,IAAK,CACL+8B,KAAK,SACL7nB,QACC,kBAAC,GAAW,CAACgzC,WAAS,GACrB,kBAAC,GAAK,SAIT,kBAAC,IAAK,CACLnrB,KAAK,eACL7nB,QACC,kBAAC2zC,GAAW,CAACb,mBAAoBA,MAGnC,kBAAC,IAAK,CAACjrB,KAAK,iBAAiB7nB,QAAS,kBAAC,GAAa,QACpD,kBAAC,IAAK,CACL6nB,KAAK,IACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,GAAQ,SAaZ,kBAAC,IAAK,CAAC6nB,KAAK,gBACX,kBAAC,IAAK,CACLliB,OAAK,EACL3F,QACC,kBAAC,GAAW,CAACizC,aAAW,GACvB,kBAAC,GAAY,SAIhB,kBAAC,IAAK,CACLprB,KAAK,uCACL7nB,QACC,kBAAC,GAAW,CAACizC,aAAW,GACvB,kBAAC,GAAY,UAiBjB,kBAAC,IAAK,CACLprB,KAAK,kBACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,GAAK,SAIT,kBAAC,IAAK,CACL6nB,KAAK,wBACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,GAAK,CAACzQ,UAAQ,OAKlB,kBAAC,IAAK,CACLs4B,KAAK,uBACL7nB,QACC,kBAAC,GAAW,CAACizC,aAAW,GACvB,kBAAC,GAAW,CAACnoD,aAAcA,OAK9B,kBAAC,IAAK,CACL+8B,KAAK,sBACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,aAAc,SAE7B,kBAAC,GAAU,UAKf,kBAAC,IAAK,CACL8gC,KAAK,eACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,aAAc,SAE7B,kBAAC,GAAU,UAKf,kBAAC,IAAK,CACL8gC,KAAK,eACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,cAAe,SAE9B,kBAAC,GAAS,UAKd,kBAAC,IAAK,CACL8gC,KAAK,YACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,GAAY,SAKhB,kBAAC,IAAK,CACL6nB,KAAK,kBACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC4zC,GAAc,SAIlB,kBAAC,IAAK,CACL/rB,KAAK,WACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,EAAoB,CAACjZ,aAAc,CAAC,OAAQ,QAC5C,kBAAC,GAAc,CAACm3B,UAAQ,QAK5B,kBAAC,IAAK,CAAC2J,KAAK,UACX,kBAAC,IAAK,CACLliB,OAAK,EACL3F,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,aAAc,SAE7B,kBAAC,GAAK,UAKV,kBAAC,IAAK,CAAC8gC,KAAK,kBACX,kBAAC,IAAK,CACLliB,OAAK,EACLkiB,KAAK,iBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAW,SAIf,kBAAC,IAAK,CACL6nB,KAAK,2BACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAW,WAOjB,kBAAC,IAAK,CAAC6nB,KAAK,aACX,kBAAC,IAAK,CACLliB,OAAK,EACL3F,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,gBAAiB,QAEhC,kBAAC,GAAW,UAKhB,kBAAC,IAAK,CAAC8gC,KAAK,qBACX,kBAAC,IAAK,CACLliB,OAAK,EACLkiB,KAAK,oBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAW,SAIf,kBAAC,IAAK,CACL6nB,KAAK,wBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAW,WAOjB,kBAAC,IAAK,CACL6nB,KAAK,kBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAc,SAKlB,kBAAC,IAAK,CAAC6nB,KAAK,cACX,kBAAC,IAAK,CACLA,KAAK,aACL7nB,QACC,kBAAC,GAAY,CAAC6zC,WAAS,GACtB,kBAAC,GAAa,SAIjB,kBAAC,IAAK,CAAChsB,KAAK,sBACX,kBAAC,IAAK,CACLliB,OAAK,EACLkiB,KAAK,qBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAgB,SAIpB,kBAAC,IAAK,CACL6nB,KAAK,0BACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAgB,WAOtB,kBAAC,IAAK,CACL6nB,KAAK,eACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,eAAgB,QAE/B,kBAAC,GAAe,UAKpB,kBAAC,IAAK,CACL8gC,KAAK,kBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CAACjZ,aAAc,CAAC,QAAS,SAC7C,kBAAC,GAAa,UAelB,kBAAC,IAAK,CACL8gC,KAAK,gBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,YAAa,SAE5B,kBAAC+sD,GAAY,UAKjB,kBAAC,IAAK,CAACjsB,KAAK,iBACX,kBAAC,IAAK,CACLliB,OAAK,EACLkiB,KAAK,gBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,aAAc,SAE7B,kBAACgtD,GAAY,UAKjB,kBAAC,IAAK,CACLlsB,KAAK,0BACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,aAAc,SAE7B,kBAACgtD,GAAY,WAOlB,kBAAC,IAAK,CACLpuC,OAAK,EACLkiB,KAAK,aACL7nB,QACC,kBAAC,GAAY,CAAC6zC,WAAS,GACtB,kBAAC,GAAS,SAIb,kBAAC,IAAK,CACLluC,OAAK,EACLkiB,KAAK,eACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAU,SAId,kBAAC,IAAK,CACL2F,OAAK,EACLkiB,KAAK,aACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAS,CACTuzC,aAAcA,EACdzoD,aAAcA,OAKlB,kBAAC,IAAK,CACL6a,OAAK,EACLkiB,KAAK,gBACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,GAAY,CACZuzC,aAAcA,EACdzoD,aAAcA,OAKlB,kBAAC,IAAK,CACL6a,OAAK,EACLkiB,KAAK,eACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CAACjZ,aAAc,CAAC,KAAM,QAC1C,kBAAC,GAAU,UAKf,kBAAC,IAAK,CACL4e,OAAK,EACLkiB,KAAK,aACL7nB,QACC,kBAAC,GAAY,KACZ,kBAAC,EAAoB,CAACjZ,aAAc,CAAC,WAAY,QAChD,kBAAC,GAAS,UAKd,kBAAC,IAAK,CACL4e,OAAK,EACLkiB,KAAK,aACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,EAAoB,CACpBjZ,aAAc,CAAC,YAAa,SAE5B,kBAAC,GAAQ,UAKb,kBAAC,IAAK,CACL4e,OAAK,EACLkiB,KAAK,WACL7nB,QACC,kBAAC,GAAW,KACX,kBAAC,GAAO,WAMb,kBAAC,GAAM,QAKV,MAAOxV,GAGR,OAFAD,QAAQC,MAAMA,GAGb,kBAAC,gBAAa,CAAC9H,MAAOA,GACrB,kBAAC,OAAG,CACHsxD,GAAItxD,EAAMC,gBACVkL,MAAO,CACNuV,SAAU,WACV6wC,IAAK,EACLtrC,KAAM,EACNvnB,MAAO,EACP8yD,OAAQ,IAGT,kBAAChiD,GAAW,KACX,kBAAC,QAAI,CACJlE,OAAO,qBACPR,WAAW,SACX4G,eAAe,SACfic,cAAc,UAEd,kBAAC,IAAO,CACPxiB,MAAO,CAAEw9B,WAAY,cACrB1pC,MAAOe,EAAME,SACbzB,QAAM,oCAIP,kBAAC,IAAI,CACJQ,MAAOe,EAAME,SACbiL,MAAO,CAAE0T,KAAM,QAAS8pB,WAAY,cACpClqC,QAAM,gGA+BCgzD,GAlBY,SAACjzD,GAC3B,OACC,kBAAC,IAAa,KACb,kBAAC,IAAMkzD,WAAU,KAChB,kBAAC,GAAqB,KACrB,kBAAC,GAAoB,KACpB,kBAAC,GAA2B,KAC3B,kBAAC,GAAwBlzD,EACxB,kBAAC,GAAG,aC1mBQmzD,QACW,cAA7BhoD,OAAOu1B,SAASokB,UAEe,UAA7B35C,OAAOu1B,SAASokB,UAEhB35C,OAAOu1B,SAASokB,SAASsO,MACvB,2DCVNC,IAAS3M,OAAO,kBAAC,GAAG,MAAKl2C,SAASuO,eAAe,SDyH3C,kBAAmBu0C,WACrBA,UAAUC,cAAcC,MAAM/a,MAAK,SAAAgb,GACjCA,EAAaC,iB,iCEnInB,kEA+Fe53B,IAxFM,SAAH,GAA4C,IAAtCnW,EAAG,EAAHA,IAAKtX,EAAQ,EAARA,SAAUmpB,EAAO,EAAPA,QAASuE,EAAM,EAANA,OACvCz0B,EAAeJ,qBAAWC,KAA1BG,WAEF9F,EAAQqI,qBACd,EAAyD8b,GAAO,GAAxD3H,EAAK,EAALA,MAAgBlG,EAAC,EAAV6c,QAAYoL,EAAW,EAAXA,YAAanH,EAAQ,EAARA,SAAUp1B,EAAE,EAAFA,GAC9CulC,EAAgBhJ,GAAe,EAEnC,EAA4Dpa,GAAO,GAA3DgW,EAAkB,EAAlBA,mBAAoBH,EAAY,EAAZA,aAAczC,EAAa,EAAbA,eACpCA,IACLgQ,EAAgBvN,IAAuC,EAAtBG,EAA2B,MAGvDttB,GAAcmpB,IAAYuB,KACfjhB,GAAK,IACb4D,SAAQ,SAACmZ,EAAQzuB,GACxB,MAAqCyuB,GAAU,GAAvCle,EAAK,EAALA,MAAgBoe,EAAQ,EAAjBve,QAETyyB,EAAWlU,EAASC,WAAW,UAGrC,IAFeD,EAASC,WAAW,SAEnBiU,IACF,mBAAVtyB,EAAJ,CAEA,IAAM2C,EAAM3C,EAAMhD,QAAQ,eAAgB,IAAM,IAE5CtF,GACC46B,IACHF,GAAiBzvB,OAMrB,IAAMO,EAAUpS,mBAAQ,WACvB,OAAI4G,EAEF,oCAC4B,KAAhB,OAAV/G,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YACZ,oCACC,kBAAC,IAAI,CAACvM,aAAW,EAACD,OAAK,OACpBkB,IAAUC,SAAS2c,GAAS+d,EAAS,EAAInD,KAG5C,kBAAC,IAAI,CAACn4B,MAAOe,EAAM4P,UAAWlR,OAAK,OAEjCkB,IAAUC,SACVm2B,GACIuR,GAAiBhN,EAAS,EAAInD,IAC9B5a,EAAQ+qB,IAAkBhN,EAAS,EAAInD,MAMpB,KAAhB,OAAVtxB,QAAU,IAAVA,OAAU,EAAVA,EAAYoF,YACZ,kBAAC,IAAI,CAACxM,OAAK,OACRkB,IAAUC,SAAS2c,GAAS+d,EAAS,EAAInD,MAM/C,kBAAC,IAAI,CAAC14B,OAAK,OAAGkB,IAAUC,SAAS2c,GAAS+d,EAAS,EAAInD,OAEtD,CACFtxB,EACAyhC,EACA16B,EACAmpB,EACAuE,EACA/d,EACA4a,EACAp3B,EAAM4P,YAGP,OACC,kBAAC,OAAI,CACJtE,OAAO,OACPoG,eAAgB7E,EAAW,SAAW,WACtC/B,WAAW,SACX4Q,SAAS,OACTjP,IAAKzK,EAAK,UAETqW,K,mHCtFE85C,EAAmBC,oBAAS,qHAS5Bn/C,EAAU7U,kBAAO,OAAPA,CAAc,qVACnB,oBAAGE,MAAc,YAAT,MAAG,OAAM,KAChB,oBAAGgN,OAAe,YAAT,MAAG,OAAM,IACf6mD,GAYI,gBAAGnyD,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,SACnD,gBAAGuxD,EAAK,EAALA,MAAK,OAAOA,GAAK,2BAAwBA,EAAK,SAG/CC,EAAsBl0D,kBAAOqC,OAAPrC,CAAY,wLAElB,YAAQ,SAAL4B,MAAkB+f,eAQ9BwyC,EAAe,WAAH,OACvB,kBAACD,EAAmB,KAClB,kBAACr/C,EAAO,QAIGA,O,iHC7CFu/C,EAAYp0D,kBAAOqC,OAAPrC,CAAY,wTAKxB,YAAW,SAARyR,SAA2B,GAAM,KAgB7C,YAAmC,IAAhC4iD,EAAU,EAAVA,WAAYC,EAAE,EAAFA,GAAIr5C,EAAQ,EAARA,SACnB,GAAIq5C,EACF,MAAM,gCAAN,OACuBD,EAAU,+FAK5BA,EAAap5C,EAAY,GAAE,gCACnBo5C,EAAap5C,EAAY,GAAE,4JAWxBo5C,EAAU,kDACIA,EAAU,0CACfA,EAAa,EAAK,IAAG,yBAMvCv6C,EAAQ9Z,kBAAOqC,OAAPrC,CAAY,miBAOpB,YAAW,SAARyR,SAA2B,GAAM,IAY7C2iD,GACgB,YAAQ,SAALxyD,MAAkB4P,aAIrB,YAAQ,SAAL5P,MAAkB4P,aAQ5B+iD,EAAiBv0D,kBAAOqC,OAAPrC,CAAY,+H,wBCtElCo0D,EAAqCI,EAA1B16C,EAA0B06C,EAAnBD,EAAmBC,EAEvCC,EAAUz0D,kBAAOqR,MAAPrR,CAAW,kQAaZ,YAAO,SAAJg0B,KAAmB,OAAS,UAIxC0gC,EAAiBviD,sBACrB,WAiBEC,GACI,IAhBFlH,EAAI,EAAJA,KACAoH,EAAS,EAATA,UACA5I,EAAK,EAALA,MACAgJ,EAAQ,EAARA,SACAH,EAAW,EAAXA,YACAd,EAAQ,EAARA,SACA+H,EAAO,EAAPA,QACAX,EAAQ,EAARA,SACAjV,EAAE,EAAFA,GAEAsV,GADY,EAAZG,aACS,EAATH,WACay7C,EAAY,EAAzBr6C,YACArE,EAAO,EAAPA,QACO/C,EAAM,EAAb5R,MAIEgZ,EAAcq6C,EAEdA,EAAe,KAAIr6C,EAAc,IACjCq6C,EAAe,IAAM,IAAGr6C,EAAc,IAAM,GAEhD,IAAM1Y,EAAQqI,qBACd,EAAsB+I,YAAS9H,GAAK,mBAA7B+H,EAAK,KAAEwzC,EAAI,KAEZmO,EAAO7sD,iBAAO,MACpB,EAAwB7B,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KAEdi4B,EAAqB3jD,uBACzB,SAACuQ,GACK87C,EAAKhsD,UAAYgsD,EAAKhsD,QAAQujD,SAASrzC,EAAEC,SAAWib,GACtDC,GAAQ,KAGZ,CAAC2gC,EAAM5gC,IAYT,OATA/rB,qBAAU,WACR,GAAI+rB,EAEF,OADApjB,SAASgP,iBAAiB,YAAassC,GAChC,WACLt7C,SAASiP,oBAAoB,YAAaqsC,MAG7C,CAACA,EAAoBl4B,IAGtB,kBAAC,EAAc,KACZ1hB,GAAa2D,EACZ,kBAAC1C,EAAA,EAAK,CAAC9B,SAAUA,EAAUgC,QAAS7P,GAAMsH,EAAMwH,SAAUA,GACvDJ,EACA2D,GACC,oCACE,kBAACw+C,EAAO,CACN7mD,aAAc,kBAAMqmB,GAAQ,IAC5B7hB,IAAKwiD,EACL3mD,QAAS,kBAAMgmB,GAASD,IACxBA,KAAMA,GAEN,kBAAC,IAAe,CAAC9lB,KAAM2mD,iBACvB,kBAACt6C,EAAA,EAAI,MACK,OAAPtE,QAAO,IAAPA,OAAO,EAAPA,EAASmf,WAAW,SACnB,yBAAK9nB,IAAK2I,EAASzI,IAAKtC,IAExB,kBAAC,IAAI,KAAE+K,OAOjB,KAEH1D,EAAc,kBAAC,IAAI,KAAEA,GAAsB,KAE5C,kBAAC,EAAK,CAAC+K,SAAS,OAAO7L,SAAUA,GAC/B,kBAAC,IAAS,eACRvG,KAAMA,EACNtH,GAAIA,GAAMsH,EACVuG,SAAUA,EACVqD,SAAU1C,QAAY3J,EACtBiB,MAAOA,EACPoC,KAAK,QACLoN,UAAWA,EACXxG,SAAUA,EACVpR,MAAO2R,EAAM3R,MACbkY,QAASA,EACTX,SAAUA,GACN5F,IAGLuG,EAAQpL,KAAI,SAACgiB,EAAQ5pB,GACpB,IACElF,EAIE8uB,EAJF9uB,MACOwzD,EAGL1kC,EAHFrW,MACUg7C,EAER3kC,EAFF3e,SACAujD,EACE5kC,EADF4kC,cAGF,OACE,kBAAC,EAAS,CACRV,GAAIp7C,EACJzM,UAAS,yBACPuoD,GAAiB/hD,EAAM3R,QAAUA,GAAS4R,IAAW5R,EACjD,UACA,IAEN+yD,WAAY7tD,EAAI,EAChB5C,GAAE,UAAKtC,GACP2Z,SAAUzB,EAAQ7L,OAClB8D,SAAUsjD,EACVzzD,MAAOA,EACPpB,MACEoa,EACI,CACE,8BAA8B,QAAD,OACrBA,EAAW,qBAErB7R,EAEN4F,IAAK/M,GAASkF,GAEbsuD,OAKRrO,EAAK/8C,OAAS+8C,EAAKwO,SAClB,kBAAC,IAAI,CAAClgD,GAAG,SAASlU,MAAOe,EAAMU,QAC5BmkD,EAAK/8C,WAQHgrD,O,sUCvJAv5B,EAnBDn7B,kBAAO4Z,KAAOkQ,OAAM,SAAC1pB,GACjC,OAAO,eAAKA,KADAJ,CAEZ,0OAIoB,YAAQ,SAAL4B,MAAkB+f,eAEvC,gBAAG/f,EAAK,EAALA,MAAK,sCACUA,EAAMC,gBAAe,uBAChCD,EAAME,SAAQ,YAKD,YAAQ,SAALF,MAAkB4f,oB,kKCdvC0zC,EAAe,SAAC1kD,GACpB,IAAM2kD,EAASvkD,SAASC,cAAc,KAEtC,OADAskD,EAAOrkD,KAAON,EACP2kD,GAEHC,EAAkB,SAACruB,GAEvB,IADsB,eAAesuB,KAAKtuB,GACtB,OAAOA,EAC3B,MAAmCmuB,EAAanuB,IAAS,GAAjDtL,EAAQ,EAARA,SAAU11B,EAAM,EAANA,OAAQuvD,EAAI,EAAJA,KAC1B,MAAM,GAAN,OAAU75B,GAAQ,OAAG11B,GAAM,OAAGuvD,IAU1B3oD,EAAOoa,IAAM5U,YAAW,SAAiB/R,EAAOgS,GACpD,IAAQ2G,EAAqD3Y,EAArD2Y,OAAQnM,EAA6CxM,EAA7CwM,GAAIrL,EAAyCnB,EAAzCmB,SAAgCwR,GAAS3S,EAA/B4N,SAA+B5N,EAArB4Z,QAAgB,YAAK5Z,EAAK,IAClE,MAAsB,qBAAXmL,QATO,SAACiF,GACnB,IAAiC,IAA7B,eAAe6kD,KAAK7kD,GAAgB,OAAO,EAC/C,IAAgC,IAA5B,cAAc6kD,KAAK7kD,GAAgB,OAAO,EAC9C,IAAQ+kD,EAASL,EAAa1kD,GAAtB+kD,KACR,OAAOhqD,OAAOu1B,SAASy0B,OAASA,EAKKC,CAAY5oD,GAE7C,qCAAGwF,IAAKA,EAAKtB,KAAMlE,EAAImM,OAAQA,GAAYhG,GACxCxR,GAIL,kBAAC,IAAU,eACTwX,OAAQA,EACR3G,IAAKA,EACLxF,GAAIwoD,EAAgBxoD,IAAO,IACvBmG,GAEHxR,MAmBQoL,O,gCCzDf,WAEMpF,EAAchC,wBAAc,CAChCmC,WAAY,GACZ0C,UAAU,EACVC,YAAa,aACbC,cAAe,aACflC,WAAW,IAGEb,O,6WCQTktD,EAAUz0D,kBAAOqR,MAAPrR,CAAW,oQAcZ,YAAO,SAAJg0B,KAAmB,OAAS,UAIxChiB,EAAYhS,kBAAOqC,OAAPrC,CAAY,ijBAElB,oBAAGswD,WAAkB,YAAR,OAAQ,EAAqB,OAAS,UAkCzDn1B,EAAQn7B,UAAOyD,MAAK,0BAEpBwO,EAAgBjS,kBAAOqC,OAAPrC,CAAY,o4BAOrB,YAAW,SAARyR,SAA2B,MAAQ,OACvC,oBAAG6+C,WAAkB,YAAR,OAAQ,EAAqB,OAAS,UAMzD,gBAAG1uD,EAAK,EAALA,MAAO6Q,EAAG,EAAHA,IAAG,+BACJA,EAAM,QAAU7Q,EAAME,SAAQ,2BAC9B2Q,EAAM,OAAS,SAAQ,cAKhC,gBAAG7Q,EAAK,EAALA,MAAK,0CACYA,EAAMC,gBAAe,2BAChCD,EAAME,SAAQ,6CAEZF,EAAME,SAAQ,mDACHF,EAAMC,gBAAe,kCAUnC,YAAW,SAAR4P,SAA2B,cAAgB,UAG9C,YAAW,SAARA,SAA2B,cAAgB,aAG9C,oBAAG6+C,WAAkB,YAAR,OAAQ,EAAqB,OAAS,UAezC,YAAQ,SAAL1uD,MAAkB+f,eACvC,gBAAG/f,EAAK,EAALA,MAAK,0CACYA,EAAMC,gBAAe,2BAChCD,EAAME,SAAQ,8DAELF,EAAM4P,UAAS,uBAYjCikD,EAAoBtjD,sBACxB,WAuBEC,GACI,IAAD,IAtBDsjD,eAAO,OAAQ,MACfrjD,eAAO,OAAQ,EACfnH,EAAI,EAAJA,KACAoH,EAAS,EAATA,UACAC,EAAW,EAAXA,YACAzG,EAAI,EAAJA,KAAK,EAAD,EACJ1D,iBAAS,OAAQ,MACjBqK,WAAG,OAAQ,EACXC,EAAQ,EAARA,SACAijD,EAAS,EAATA,UACAlkD,EAAQ,EAARA,SAAS,EAAD,EACRuzB,aAAK,OAAQ,MACbnqB,sBAAc,OAAQ,EACtBV,EAAQ,EAARA,SACAX,EAAO,EAAPA,QACAK,EAAE,EAAFA,GAAG,EAAD,EACFy2C,kBAAU,OAAQ,EAClBpe,EAAS,EAATA,UACAj8B,EAAO,EAAPA,QACGlD,EAAI,iBAIHnR,EAAQqI,qBACVgnB,EAAYykC,EAAUv6B,EAAQvhB,IAC9B+7C,IAAW1kC,EAAYpf,KAC3B,MAAsBmB,YAAS9H,GAAK,mBAA7B+H,EAAK,KAAEwzC,EAAI,KAEZmO,EAAO7sD,iBAAO,MACpB,GAAwB7B,oBAAS,GAAM,qBAAhC8tB,GAAI,MAAEC,GAAO,MAEdi4B,GAAqB3jD,uBACzB,SAACuQ,GACK87C,EAAKhsD,UAAYgsD,EAAKhsD,QAAQujD,SAASrzC,EAAEC,SAAWib,IACtDC,IAAQ,KAGZ,CAAC2gC,EAAM5gC,KAGT/rB,qBAAU,WACR,GAAI+rB,GAEF,OADApjB,SAASgP,iBAAiB,YAAassC,IAChC,WACLt7C,SAASiP,oBAAoB,YAAaqsC,OAG7C,CAACA,GAAoBl4B,KAExB,IAAQ5b,GAAkBC,cAAlBD,cAEA1O,IAAU+8C,GAAQ,IAAlB/8C,MACR,OACE,kBAACsI,EAAS,CAACs+C,WAAYA,EAAY79C,IAAKA,KACnCJ,GAAW4D,IACZ,kBAAC,IAAK,CACJvD,SAAUA,EACVc,GAAKjB,EAAyB,IAAX,SACnBkB,QAASvI,GAERoH,EACA2D,GACC,oCACE,kBAACw+C,EAAO,CACN7mD,aAAc,kBAAMqmB,IAAQ,IAC5B7hB,IAAKwiD,EACL3mD,QAAS,kBAAMgmB,IAASD,KACxBA,KAAMA,IAEN,kBAAC,IAAe,CAAC9lB,KAAM2mD,iBACvB,kBAAC,IAAI,MACK,OAAP5+C,QAAO,IAAPA,OAAO,EAAPA,EAASmf,WAAW,SACnB,yBAAK9nB,IAAK2I,EAASzI,IAAKtC,IAExB,kBAAC,IAAI,KAAE+K,OASpB1D,GAAe,kBAAC,IAAM,CAACiB,GAAG,UAAUjB,GACpCnK,EACC,kBAAC,IAAY,MAEb,kBAAC6J,EAAa,CAACq+C,WAAYA,EAAY7+C,SAAUA,EAAUgB,IAAKA,GAC7DuyB,EACC,kBAAC,IAAU,eACT7qB,SAAUA,EACVzH,SAAUA,EACV9O,GAAIsH,EACJmD,IAAKnD,EACLA,KAAMA,EACNuG,SAAUA,EACV3F,KAAMA,EACNsG,IAAKA,EACLwjD,eAAe,KACf/7C,GAAIA,EACJvY,MAAO2R,EAAM3R,OAAS,GACtBuX,SAAU,SAACvX,GACT8W,GAAclN,EAAM5J,GAAS,KAE/B4wC,UAAWA,GACPn/B,IAGN,kBAACke,EAAS,eACR9W,SAAUA,EACVzH,SAAUA,EACV9O,GAAIsH,EACJmD,IAAKnD,EACL4J,SAAU1C,EACVlH,KAAMA,EACNuG,SAAUA,EACV3F,KAAMA,EACN0N,QAASA,EACTq8C,KAAMh7C,EAAc,UAAM3P,EAAI,cAAUzC,EACxCoR,GAAIA,EACJq4B,UAAWA,GACPj/B,EACAF,IAGP8H,GACC,8BAAUjX,GAAE,UAAKsH,EAAI,UAAUsO,GAEhC,CAACK,EAAIq4B,GAAWp+B,SAAS,WACxB,kBAAC,IAAe,CAAC5F,KAAM+d,mBAI5BviB,IACC,kBAAC,IAAI,CAACqL,GAAG,SAASlU,MAAOe,EAAMU,QAC5BoH,QAQE+rD,O,+MC7RTK,EAAa91D,kBAAOqC,OAAPrC,CAAY,20BACT,YAAQ,SAAL4B,MAAkBC,mBACrB,YAAQ,SAALD,MAAkB+f,aAAe,UACvC,gBAAG/f,EAAK,EAALA,MAAK,MAAO,UAAGA,EAAMc,aAAY,QAAQ,KAOlD,YAAW,SAAR+O,SAA2B,MAAQ,OAMtC,YAAQ,SAAL7P,MAAkBE,YAY5B,YACA,IADY,EAATi0D,UACa,OAAOp1D,cAAG,4BAG5BE,SAKW,YAA8C,IAA3Ce,EAAK,EAALA,MAAO8Y,EAAW,EAAXA,YAAaD,EAAM,EAANA,OAC9B,OAD6C,EAAPD,SAE/BC,GAAUC,EADG9Y,EAAM4P,UACuB,MAK1C,YAA8C,IAA3C5P,EAAK,EAALA,MAAO8Y,EAAW,EAAXA,YAAaD,EAAM,EAANA,OAC9B,OAD6C,EAAPD,SAE/BC,GAAUC,EADG9Y,EAAM4P,UACuB,MAGnD,YAA8C,IAA3CkJ,EAAW,EAAXA,YAAa9Y,EAAK,EAALA,MAAO6Y,EAAM,EAANA,OAAe,EAAPD,QAC/B,GAAKE,GAAgBD,EACrB,MAAO,CACLgI,UAAW,cACXqF,OAAQ,UACRtF,WAAY,oBACZG,UAAU,qBAAD,OAAuB/gB,EAAMe,eAAc,MACpD4f,OAAQ,EACRD,SAAU,WACVI,gBAAiB,SACjBf,YAAuB/f,EAAM4P,UAC7BwkD,YAAa,UAIjB,YAAiC,IAA9Bp0D,EAAK,EAALA,MAAO6Y,EAAM,EAANA,OAAe,EAAPD,QAClB,GAAKC,EACL,MAAO,CACLgI,UAAW,OACXd,YAAuB/f,EAAM4P,UAC7BwkD,YAAa,MACbn1D,MAAiBe,EAAM4P,cAKvB,YACA,GADc,EAAXkJ,YAEH,MAAO,CACL+H,UAAW,WACXE,UAAW,WA6EJpI,IAvEF,SAACna,GACZ,IAAMwB,EAAQqI,qBACd,EAUI7J,GAAS,GAAE,IATb21D,iBAAS,OAAQ,MACjBv7C,eAAO,OAAQ,EACfpS,EAAS,EAATA,UACA2F,EAAQ,EAARA,SACAxM,EAAQ,EAARA,SACA4lC,EAAQ,EAARA,SACA4kB,EAAM,EAANA,OACAkK,EAAM,EAANA,OACGljD,EAAI,iBAET,OACE,kBAAC+iD,EAAU,eACTt7C,QAASA,EACTu7C,UAAWA,EACX3tD,UAAWA,GACP2K,GAEHhF,GAAY,kBAAC,IAAe,CAACG,KAAMy4B,EAAM54B,KACzCxM,GACC4lC,GAAY4kB,GAAUkK,IACtB,kBAAC,OAAI,CAACziD,GAAI,EAAGoH,GAAG,OAAO1a,MAAO,EAAGoT,eAAe,YAC7C2iD,GACC,kBAAC,IAAM,CACLj1D,KAAK,QACLH,MAAOe,EAAM4P,UACbvD,QAAS,SAAC6K,GACRA,EAAE8Q,kBACFqsC,KAEFloD,SAAS,aAGZg+C,GACC,kBAAC,IAAM,CACL/qD,KAAK,QACLH,MAAOe,EAAMwB,QACb6K,QAAS,SAAC6K,GACRA,EAAE8Q,kBACFmiC,KAEFh+C,SAAS,WAGZo5B,GACC,kBAAC,IAAM,CACLnmC,KAAK,QACLH,MAAOe,EAAMU,OACb2L,QAAS,SAAC6K,GACRA,EAAE8Q,kBACFud,KAEFp5B,SAAS,gB,gCCpJvB,WAEM6jB,EAAersB,wBAAc,CACjC+0B,OAAQ,GACRC,UAAW,aACXrlB,iBAAkB,aAClBwhB,iBAAkB,aAClBD,iBAAkB,eAGL7E,O,gLCLTskC,EAAYl2D,UAAOwd,IAAG,mEA4Bb24C,EAvBM,SAAH,GAAwB,IAAD,IAAjBz4C,aAAK,MAAG,GAAE,EAC1B04C,EAAU,IAAIC,IAAQ34C,EAAO,CACjC44C,YAAa,GAAK,EAClBC,KAAI,SAACxiB,GACHtqC,QAAQyX,IAAI6yB,GACZtqC,QAAQyX,IAAI6yB,EAAMgd,OAAOz8C,GACzB7K,QAAQyX,IAAI6yB,EAAMgd,OAAOzmC,GACzB7gB,QAAQyX,IAAI6yB,EAAMgd,OAAO7wD,OACzBuJ,QAAQyX,IAAI6yB,EAAMgd,OAAO7jD,QACzBzD,QAAQyX,IAAI6yB,EAAMgd,OAAOyF,QACzB/sD,QAAQyX,IAAI6yB,EAAMgd,OAAO0F,QACzBhtD,QAAQyX,IAAI6yB,EAAMgd,OAAO2F,WAI7B,OACE,kBAAC,MAAG,CAACx2D,MAAO,GACV,kBAACg2D,EAAS,CAAC5oD,IAAKoQ,IACf04C,I,aC3BP,kmGAAA5vD,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,sQAWA,IAAMmwD,EAAa32D,kBAAOqC,OAAPrC,CAAY,2YAMR,YAAQ,SAAL4B,MAAkB4P,aACzB,gBAAG5P,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,SAgB1Ck0D,EAAa,uCAAG,WAAOr2B,GAAI,yFAGJ,OAHMwG,EAAI,+BAAG,kBAAmBnjC,EAAE,wBAC9DwjD,EAAW,IAAIyP,UACZC,OAAO,OAAQv2B,GACpB38B,GAAIwjD,EAAS0P,OAAO,KAAMlzD,GAAI,SAEPZ,IAAMC,KAAK8jC,EAAMqgB,EAAU,CACpDx8B,QAAS,CACP,eAAgB,yBAEjB,KAAD,EAJgB,OAAZmsC,EAAY,yBAMXA,GAAY,2CACpB,gBAZyB,sCAyFXC,IA1DG,SAAH,GAUR,IAAD,IATJ/4B,gBAAQ,OAAQ,EAChB7gB,EAAQ,EAARA,SACA9K,EAAS,EAATA,UACAy0B,EAAI,EAAJA,KACAt1B,EAAQ,EAARA,SACAwlD,EAAO,EAAPA,QACArzD,EAAE,EAAFA,GACAszD,EAAiB,EAAjBA,kBACAC,EAAkB,EAAlBA,mBAEMv1D,EAAQqI,qBACd,EAAkC/D,oBAAS,GAAM,mBAA1CkC,EAAS,KAAEgvD,EAAY,KAC9B,EAAwBlxD,oBAAS,GAAM,mBAAhC8tB,EAAI,KAAEC,EAAO,KAGdojC,EAAap5B,EAAW,QAAU,SAExC,EAAwCD,YAAY,CAClDD,OAAQtsB,EACJ,aACA,SAACisB,GACCA,EAAM5hB,QAAO,uCAAC,WAAOykB,GAAI,uEAEJ,OADb22B,GAAmBA,EAAkB32B,GAC3C62B,GAAa,GAAM,SACIR,EAAcr2B,EAAMwG,EAAMnjC,GAAI,KAAD,EAA9CuR,EAAQ,OACdiI,EAASmjB,GACT62B,GAAa,GACPD,GAAoBA,EAAmBhiD,GAAU,2CACxD,mDAPY,KASnB8oB,aAbMC,EAAY,EAAZA,aAAcC,EAAa,EAAbA,cAgBtB,OACE,oCACG84B,EACC,kBAACviC,EAAA,EAAK,CAACV,KAAMA,EAAMC,QAASA,GAC1B,kBAAC,EAAY,OAEb,KACJ,kBAAC,OAAI,eAAC/zB,MAAO,GAAOg+B,KACjBzsB,GAAYrJ,EAAY,KAAO,0BAAW+1B,KAC3C,kBAACw4B,EAAU,KACT,kBAAC,IAAO,KACLvuD,EAAY,eAAiBkK,GAAS,iBAAc+kD,IAEtDjvD,EACC,kBAACqF,EAAA,EAAO,CAACslB,UAAQ,IAEjB,kBAAC,IAAe,CAAClyB,MAAOe,EAAM4P,UAAWtD,KAAMopD,wB,2MCxGrDj5B,EAAUr+B,UAAOwd,IAAG,sGAOpB0d,EAAkBl7B,kBAAOm7B,IAAPn7B,CAAa,mDAI/Bu3D,EAAW,SAAH,GAAiC,IAAD,UAA1BxxC,EAAG,EAAHA,IAAKsV,EAAc,EAAdA,eACjBz5B,EAAQqI,qBAEd,EAAgC/D,mBAAS,GAAE,mBAApC8yB,EAAQ,KAAEsC,EAAW,KACpBpmB,EAAqB5N,qBAAWsqB,KAAhC1c,iBAEFsiD,EAAajvD,uBAAY,WAAO,IAAD,MACnC,OAAU,OAAHwd,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAeuQ,mBAClBX,EAAkB,OAAHtV,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAepV,GAAI2iB,GAClCqC,EAAkB,OAAHtV,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAepV,MACjC,CAACglB,EAAgBrC,EAAUjT,IAExB0xC,EAAelvD,uBACnB,kBACEywB,EAAW,EACPsC,EAAYtC,EAAW,GACvB9jB,EAAiB,kDACvB,CAAC8jB,EAAU9jB,IAGPwiD,EAAcnvD,uBAAY,kBAAM+yB,EAAYtC,EAAW,KAAI,CAACA,IAElE,OACE,qCACM,OAAHjT,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAeuQ,mBACd,kBAAC,OAAI,CACH97B,MAAM,kBACNgN,OAAO,OACPoG,eAAe,SACf5G,WAAW,SACX2B,KAAQ,OAAH0X,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,IAAK,aAEf,kBAAC,IAAM,CACLmK,SAAS,UACTiM,SAAO,EACPwU,MAAM,2BACNxtB,KAAK,OACLH,MAAOe,EAAM4P,UACbvD,QAASwpD,IAGX,kBAAC,IAAM,CACDz6C,oBAAkB,EAClB3B,cAAe,CACb2d,SAAUA,EACVjT,IAAKA,GAEP7I,iBAAiB,EACjBC,kBAAkB,IAGnB,YAAiB,IAAdkL,EAAM,EAANA,OACA,OACE,kBAAC,IAAI,CAACtb,MAAO,CAAC7M,MAAO,MAAO+Z,QAAQ,UAAWiP,UAAU,QAASjc,SAAU,SACxE,kBAACiuB,EAAe,CAChBpvB,KAAK,OACLwN,OAAQ,SAACR,GACHwjB,MAAMxjB,EAAEC,OAAOzX,SAEfi7B,OAAOzjB,EAAEC,OAAOzX,QAAU,EAC5B4T,EACE,uCAIJomB,EAAYiB,OAAOzjB,EAAEC,OAAOzX,UAE9B4J,KAAK,WACL5J,MAAO+mB,EAAO2Q,eAO5B,kBAAC,IAAM,CACLjrB,SAAS,SACTiM,SAAO,EACPwU,MAAM,oBACNxtB,KAAK,OACLH,MAAOe,EAAM4P,UACbvD,QAASypD,KAGX,KAEJ,kBAAC,IAAM,CACLlpC,OACK,OAAHzI,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAeuQ,mBAAoB,cAAgB,oBAErDn7B,OACK,OAAHklB,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAeuQ,mBAAoBp6B,EAAM4P,UAAY5P,EAAM8e,QAE7DzS,QAASupD,EACTzpD,UAAa,OAAHgY,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAeuQ,mBAAoB,SAAW,eAEpD,OAAHjW,QAAG,IAAHA,GAAa,QAAV,EAAHA,EAAK0F,gBAAQ,WAAV,EAAH,EAAeuQ,mBAAoB,KAAO,eAU5C,IAAMiB,EAAU,SAAC5B,GAAsC,IAAtB+B,EAAQ,wDACxC8K,EAAO,GACPpH,EAAWtF,cACjB,EAAyBsF,EAASrF,SAAStoB,MAAM,KAAtCooB,EAAS,EAAZ,GACR,EAAkBj0B,qBAAWgQ,KAArBhI,EAAK,EAALA,MACFsoB,EAAU/vB,mBAAQ,kBAAW,OAALyH,QAAK,IAALA,OAAK,EAALA,EAAOsoB,UAAS,CAACtoB,IACzCb,EAAW5G,mBACf,iBAAoB,gBAAd0zB,IAAgC3D,IACtC,CAAC2D,EAAW3D,IA+Gd,OA3GEsQ,EAAKvuB,KAAK,CACR/V,GAAI,MACJT,KAAM,SAAC4iB,GACLtc,QAAQyX,IAAI6E,GACZ,MAAqDA,GAAO,GAApDvI,EAAG,EAAHA,IAAKse,EAAW,EAAXA,YAAa9E,EAAQ,EAARA,SACpBtZ,GADgC,EAAFrH,GAAY,EAARwmB,SAC1Brf,GAAOse,GAAe9E,GACpC,OACE,kBAAC,IAAI,CAAC32B,QAAM,GACRqd,EACA,kBAAC2gB,EAAO,CAAC/wB,IAAKoQ,EAAOlQ,KAAQ,OAAHuY,QAAG,IAAHA,OAAG,EAAHA,EAAKniB,KAAM,WACnC,KAmBVsgB,OAAQ,UACRljB,KAAM,CAAE0yB,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,KAErCqU,EAAKvuB,KAOH,CACE/V,GAAI,OACJT,KAAM,gBAAGoT,EAAI,EAAJA,KAAI,OAAO,kBAAC,IAAI,CAAClW,QAAM,GAAEkW,IAClCvV,KAAM,CAAE0yB,GAAI0J,EAAW,IAAM,IAAK3J,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAEtD,CACEjwB,GAAI,cACJT,KAAM,cACNnC,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,WACJT,KAAM,YAAmB,IAAhB05B,EAAQ,EAARA,SAEP,OAAO,kBAAC,IAAI,MAAGA,GAAY,IAAI1pB,MAAM,MAAQ,KAE/CnS,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,cACJT,KAAM,gBAAG45B,EAAW,EAAXA,YAAW,OAAO,kBAAC,IAAI,CAAC18B,QAAM,GAAE08B,IACzC7Y,OAAQ,eACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,eACJT,KAAM,SAAC4iB,GACL,OAAU,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKkW,sBACV,kBAAC,IAAY,CACXxtB,SAAUA,EACVmpB,QAASA,EACTuE,QAAM,EACNpW,IAAG,2BAAOA,GAAG,IAAE3H,OAAU,OAAH2H,QAAG,IAAHA,OAAG,EAAHA,EAAK6V,eAAgB,MAE3C,MAEN1X,OAAQ,QACRljB,KAAM,CAAEyyB,GAAI,IAAKF,GAAI,EAAGM,GAAI,IAE9B,CACEjwB,GAAI,kBACJT,KAAM,SAAC4iB,GAAG,OACR,kBAAC,IAAI,CAAC1lB,QAAM,IACL,OAAH0lB,QAAG,IAAHA,OAAG,EAAHA,EAAKkW,sBAA+B,OAAHlW,QAAG,IAAHA,OAAG,EAAHA,EAAK8V,gBAAV,KAGlC3X,OAAQ,eACRljB,KAAM,CAAEyyB,GAAI,EAAGF,GAAI,EAAGM,GAAI,IAE5B,CACEjwB,GAAI,UACJqW,QAAS,SAAC7Z,GAAK,eACb,kBAAC,OAAI,CACH2M,MAAO,CAAEuiB,IAAK,QACdpvB,MAAO,EACPoT,eAAe,WACf5G,WAAW,WAEL,OAALtM,QAAK,IAALA,GAAU,QAAL,EAALA,EAAO2lB,WAAG,OAAU,QAAV,EAAV,EAAY0F,gBAAQ,WAAf,EAAL,EAAsBwQ,sBACrB,kBAACs7B,EAAQ,CAACxxC,IAAK3lB,EAAM2lB,IAAKsV,eAAgBA,IACxC,OAGRnX,OAAQkZ,EAAW,GAAK,eACxBnW,MAAM,EACNjmB,KAAMo8B,EAAW,CAAEvJ,IAAK,GAAM,CAAEH,GAAI,EAAGD,GAAI,EAAGF,GAAI,EAAGM,GAAI,KAGtDqU,K,2CCxPTyvB,EAAOC,QAAU,CACb3O,UAAW,WACP,MAAO,CACH,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,SACR,aAAgB,MAEpB,CACI,KAAQ,iBACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,aACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,cACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,uBACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,OACR,aAAgB,MAEpB,CACI,KAAQ,SACR,aAAgB,MAEpB,CACI,KAAQ,QACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,OACR,aAAgB,MAEpB,CACI,KAAQ,SACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,YACR,aAAgB,MAEpB,CACI,KAAQ,QACR,aAAgB,MAEpB,CACI,KAAQ,mBACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,gBACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,YACR,aAAgB,MAEpB,CACI,KAAQ,cACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,SACR,aAAgB,MAEpB,CACI,KAAQ,gBACR,aAAgB,MAEpB,CACI,KAAQ,aACR,aAAgB,MAEpB,CACI,KAAQ,aACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,iBACR,aAAgB,MAEpB,CACI,KAAQ,eACR,aAAgB,MAEpB,CACI,KAAQ,OACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,SACR,aAAgB,MAEpB,CACI,KAAQ,QACR,aAAgB,MAEpB,CACI,KAAQ,eACR,aAAgB,MAEpB,CACI,KAAQ,cACR,aAAgB,MAEpB,CACI,KAAQ,eACR,aAAgB,MAEpB,CACI,KAAQ,iBACR,aAAgB,MAEpB,CACI,KAAQ,eACR,aAAgB,MAEpB,CACI,KAAQ,YACR,aAAgB,MAEpB,CACI,KAAQ,QACR,aAAgB,MAEpB,CACI,KAAQ,OACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,MAEpB,CACI,KAAQ,iBACR,aAAgB,MAEpB,CACI,KAAQ,WACR,aAAgB,MAEpB,CACI,KAAQ,aACR,aAAgB,MAEpB,CACI,KAAQ,gBACR,aAAgB,MAEpB,CACI,KAAQ,YACR,aAAgB,MAEpB,CACI,KAAQ,UACR,aAAgB,U,gCCrOhC,WAEM3xC,EAAsB/R,wBAAc,CACxCo3B,cAAe,KACf7F,iBAAkB,aAClBxnB,MAAO,KACPynB,SAAU,aACVH,eAAe,EACfkI,iBAAkB,aAClBrnB,IAAK,KACLD,OAAQ,aACRG,WAAW,EACXkf,aAAc,aACdyB,UAAU,EACVkqB,YAAa,aACbvkC,iBAAkB,KAClBrG,UAAW,aACXwD,YAAa,EACb4C,eAAgB,aAChBykC,iBAAiB,EACjBC,mBAAoB,eAGPprC,O,kFClBFuG,EAAU7d,kBAAOqR,MAAPrR,CAAW,gUAC9B,YAA2B,IAAxB+yB,EAAQ,EAARA,SAAUrlB,EAAM,EAANA,OACb,OAAIqlB,EACKpyB,cAAG,4UAQc,YAAQ,SAALiB,MAAkB+8C,YACjB,YAAQ,SAAL/8C,MAAkB8e,WAClB,YAAQ,SAAL9e,MAAkB4P,aAG3C9D,EACF/M,cAAG,sUAOc,YAAQ,SAALiB,MAAkB+8C,YAErC,gBAAG/8C,EAAK,EAALA,MAAO+e,EAAM,EAANA,OAAQ9f,EAAK,EAALA,MAAK,OAAO8f,GAAU9f,GAASe,EAAM4P,aAEvD,gBAAG5P,EAAK,EAALA,MAAOgf,EAAM,EAANA,OAAgB/f,GAAF,EAAN8f,OAAa,EAAL9f,OAAK,OAC/B+f,GAAU/f,GAASe,EAAM4P,aAI1B7Q,cAAG,+hBAce,YAAQ,SAALiB,MAAkB+8C,YACjB,YAAQ,SAAL/8C,MAAkB8e,WAClB,YAAQ,SAAL9e,MAAkB4P,gBAuBrD/D,EAAUsZ,IAAMC,MAAK,SAAC5mB,GAC1B,IAAMwB,EAAQqI,qBACd,OACE,kBAAC4T,EAAO,eAACjc,MAAOA,GAAWxB,GACzB,yBAAKqM,UAAU,eAKNgB,O,iBCtFfkqD,EAAOC,QAAU,CACbn2D,SAAU,SAAUo2D,EAAGC,EAAG5/C,EAAG6/C,GAErBD,EAAIx7B,MAAMw7B,EAAI7jD,KAAKM,IAAIujD,IAAM,EAAIA,EAEnC5/C,OAASzP,GAALyP,EAAiB,IAAMA,EAE3B6/C,OAAStvD,GAALsvD,EAAiB,IAAMA,EAJ7B,IAME/4C,EAAI64C,EAAI,EAAI,IAAM,GAElBrxD,EAAI4hC,OAAOxH,SAASi3B,EAAI5jD,KAAKM,IAAIgoB,OAAOs7B,IAAM,GAAGz3B,QAAQ03B,KAEzDE,GAAKA,EAAIxxD,EAAEmH,QAAU,EAAIqqD,EAAI,EAAI,EAEnC,OAAOh5C,GAAKg5C,EAAIxxD,EAAEyxD,OAAO,EAAGD,GAAKD,EAAI,IAAMvxD,EAAEyxD,OAAOD,GAAGjkD,QAAQ,iBAAkB,KAAOgkD,IAAMD,EAAI5/C,EAAIjE,KAAKM,IAAIsjD,EAAIrxD,GAAG45B,QAAQ03B,GAAG/4C,MAAM,GAAK,O,gGCXvIm5C,EAAcl4D,kBAAOqC,OAAPrC,CAAY,ggBA+B1Bm4D,EAAkBn4D,kBAAOqR,MAAPrR,CAAW,sXAC7B,SAACI,GAAK,OAAMA,EAAM4zB,KAAO,cAAgB,UAuBzCokC,EAAcp4D,kBAAO6N,IAAP7N,CAAc,+K,4CCI1B00B,IA3DD,SAAH,GAMJ,IALLnzB,EAAQ,EAARA,SACAyyB,EAAI,EAAJA,KAAK,EAAD,EACJC,eAAO,MAAG,aAAQ,MAClBokC,iBAAS,OAAQ,EACdtlD,EAAI,iBAEDX,EAAMrK,iBAAO,MAEbmkD,EAAqB3jD,uBACzB,SAACuQ,GACK1G,EAAIxJ,UAAYwJ,EAAIxJ,QAAQujD,SAASrzC,EAAEC,SAAWib,GACpDC,GAAQ,KAGZ,CAACA,EAASD,IAENskC,EAAoB/vD,uBACxB,SAACuQ,GACCA,EAAE2G,iBACEuU,GAAMC,GAAQ,KAEpB,CAACD,EAAMC,IAeT,OAZAhsB,qBAAU,WACR,GAAI+rB,EAIF,OAHAzoB,OAAOgtD,QAAQC,UAAU,KAAM,KAAMjtD,OAAOu1B,SAASrF,UACrDlwB,OAAOqU,iBAAiB,WAAY04C,GACpC1nD,SAASgP,iBAAiB,YAAassC,GAChC,WACLt7C,SAASiP,oBAAoB,YAAaqsC,GAC1C3gD,OAAOsU,oBAAoB,WAAYy4C,MAG1C,CAACA,EAAmBpM,EAAoBl4B,IAEpCA,EACL,kBAACkkC,EAAW,KACV,kBAACC,EAAe,eAACnkC,KAAMA,EAAMykC,GAAI,CAAC,SAAU,QAASrmD,IAAKA,GAASW,GAChEslD,EACC,kBAACD,EAAW,CACVp+C,SAAO,EACPjM,SAAS,UACTE,QAAS,kBAAMgmB,GAAQ,MAEvB,KACH1yB,IAGH,O,iBCtDNo2D,EAAOC,QAAU,CACb3oD,SAAU,SAASypD,GACfjvD,QAAQyX,IAAIw3C,M,oBCFpB,IAAIjc,EAAMkc,EAAQ,KAElBhB,EAAOC,QAAU,CACfzU,YAAa,WACX,IAAI/hC,EAAQ7V,OAAOC,eAAey3C,QAAQ,SAK1C,GAHI13C,OAAOW,aAAa+2C,QAAQ,WAC9B7hC,EAAQ7V,OAAOW,aAAa+2C,QAAQ,UAExB,OAAV7hC,EAAJ,CAEA,IAAIw3C,EAAUnc,EAAIoc,OAAOz3C,GAErB03C,EAAU,IAAI5a,KAElB,OAAK0a,GAEDA,EAAQG,IAAMD,EAAQE,UAAY,IAAaJ,EAF9B,OAMvBK,qBAAsB,WACpB,IAAI73C,EAAQ7V,OAAOC,eAAey3C,QAAQ,SAK1C,GAHI13C,OAAOW,aAAa+2C,QAAQ,WAC9B7hC,EAAQ7V,OAAOW,aAAa+2C,QAAQ,UAExB,OAAV7hC,EAAgB,MAAO,GAE3B,IAAIw3C,EAAUnc,EAAIoc,OAAOz3C,GAEzB,OAAKw3C,EAEEA,EAAQ91D,SAFM,MAKvB4I,QAAS,WACPH,OAAOC,eAAeS,WAAW,SACjCV,OAAOW,aAAaD,WAAW,Y,wDCtCnC0rD,EAAOC,QAAU,CAEbtjC,aAAc,WACV,MAAO,uCAAuCvgB,QAAQ,SAAS,SAAS+jD,GAEtE,IAAI/zB,EAAoB,GAAhB9vB,KAAKilD,SAAgB,EAC7B,OADyC,KAALpB,EAAW/zB,EAAS,EAAJA,EAAU,GACrD5vB,SAAS,U,yLCEtBoN,EAAkBvhB,kBAAOqC,OAAPrC,CAAY,2RAkB9B8iB,EAAiB9iB,UAAOyD,MAAK,2mCAajB,YAAQ,SAAL7B,MAAkB+f,eAInB,YAAQ,SAAL/f,MAAkB4P,aAGrB,YAAQ,SAAL5P,MAAkB4P,aAgBjB,YAAQ,SAAL5P,MAAkB4P,aAEnB,YAAQ,SAAL5P,MAAkB+8C,YAQvB,YAAQ,SAAL/8C,MAAkB85C,WAYrB,YAAQ,SAAL95C,MAAkB+P,QAKvC0I,EAAWlI,sBACf,WAAiEC,GAAS,IAAvEE,EAAS,EAATA,UAAWpH,EAAI,EAAJA,KAAMwH,EAAQ,EAARA,SAAUH,EAAW,EAAXA,YAAanK,EAAS,EAATA,UAAc2K,EAAI,iBAC3D,EAAsBC,YAAS9H,GAAK,mBAA7B+H,EAAK,KAAEwzC,EAAI,KAEZ7kD,EAAQqI,qBACd,OACE,oCACE,kBAACsX,EAAe,KACbnZ,EACC,kBAAC,IAAO,CAAClI,MAAM,kBAAkBwN,QAAM,IAEvC,kBAACoV,EAAc,eACbzQ,SAAO,EACPvG,KAAK,WACLZ,KAAMA,EACNkH,IAAKA,EACLG,YAAY,GACZqZ,QAAS,CAAC,OAAQ,QAAQ,GAAM9X,SAASb,EAAM3R,QAC3CyR,EACAE,IAIPX,GACC,kBAAC,OAAI,CAAC5F,WAAW,SAASD,UAAU,QAAQ8iB,cAAc,UACxD,kBAAC,IAAK,iBAAKxc,EAAI,CAAEL,SAAUA,EAAUe,QAASvI,IAC3CoH,GAEFC,GACC,kBAAC,IAAM,CAACqI,GAAItI,EAAY,SAAW,GAAIC,KAK9Ck0C,EAAK/8C,OAAS+8C,EAAKwO,SAClB,kBAAC,IAAI,CAAClgD,GAAG,SAASlU,MAAOe,EAAMU,QAC5BmkD,EAAK/8C,WAQH2Q,O,+DClIT9G,EAAQvT,UAAO+Z,MAAK,8FAGtBlZ,SAEA,YAAW,SAAR6R,UAEH/R,cAAG,kIAIU,YAAQ,SAALiB,MAAkBU,aAKvBiR,O,0GCfF4lD,EAAen5D,kBAAOqR,MAAPrR,CAAW,wLACjB,YAAQ,SAAL4B,MAAkBU,UAGxB,gBAAGV,EAAK,EAALA,MAAK,gBAAUA,EAAMc,aAAY,QAInD9B,SAGSw4D,EAAiBp5D,kBAAOqC,OAAPrC,CAAY,iMAGhB,YAAQ,SAAL4B,MAAkB+f,aAAe,SAC1D03C,SACAz4D,QAIEA,SAIO04D,EAAgBt5D,kBAAOqC,OAAPrC,CAAY,mCACrCq5D,UAGSE,EAAgBv5D,kBAAOqR,MAAPrR,CAAW,mCACpCY,S,eC2LWyqD,IAnNO,SAACjrD,GACrB,MAQIA,EAPFkuC,oBAAY,MAAG,GAAE,EACjBnH,EAME/mC,EANF+mC,SACAiH,EAKEhuC,EALFguC,SACAG,EAIEnuC,EAJFmuC,cACAirB,EAGEp5D,EAHFo5D,aACAnrB,EAEEjuC,EAFFiuC,WAAW,EAETjuC,EADFqR,gBAAQ,OAAQ,EAEZ7P,EAAQqI,qBAEd,EACEoO,cADMgjC,EAAK,EAALA,MAAOkD,EAAW,EAAXA,YAAajD,EAAY,EAAZA,aAAcjzB,EAAM,EAANA,OAAQoxC,EAAW,EAAXA,YAGlD,EAAgCvzD,oBAAS,GAAM,mBAAxCwzD,EAAQ,KAAEC,EAAW,KAC5B,EAAoCzzD,oBAAS,GAAM,mBAA5C0zD,EAAU,KAAEC,EAAa,KAEhC5xD,qBAAU,WACJs2C,EAAc,GAAKlD,GACrBoe,EAAY,CAAEpxC,aAEf,CAACgzB,EAAOoe,EAAalb,EAAal2B,IAErC,IAAMyxC,EAAcjyD,mBAAQ,WAC1B,OAAI6xD,GAAYE,EAEZ,kBAAC,EAAkB,CAAC58B,GAAI,CAAC,EAAG,EAAG,QAASxpB,GAAI,CAAC,OAAQ,OAAQ,IAC3D,kBAAC,MAAG,CAAC3S,MAAM,SACR64D,EACGnrB,EACA,4DAIR+M,EAEA,kBAAC,OAAI,CAAC5uC,WAAW,SAAS4G,eAAe,iBACvC,kBAACzF,EAAA,EAAM,CAAC4D,SAAUA,EAAU5Q,MAAOe,EAAMwB,SACvC,kBAACqK,EAAA,EAAO,CAACC,QAAM,EAACiT,OAAQ/e,EAAM4P,UAAWoP,OAAQhf,EAAMU,UAEzD,kBAACuL,EAAA,EAAM,CACL4D,SAAUA,EACV1D,SAAS,QACT0hB,GAAG,OACH5uB,MAAOe,EAAM+P,KACb1D,QAAS,kBAAM4rD,GAAc,KAAM,WAOvCtb,EAAc,IAAMlD,EAEpB,kBAAC,MAAG,KACF,kBAACxtC,EAAA,EAAM,CAAC4D,SAAUA,EAAUuI,SAAO,EAAClO,KAAK,SAASmC,QAASmgC,GAAS,WAMtEiN,EAEA,6BACE,kBAACxtC,EAAA,EAAM,CACL/B,KAAK,SACL2F,SAAUA,IAAa4pC,EACvBx6C,MAAOe,EAAMwB,QACb45B,GAAG,OACHjvB,SAAS,UAAQ,QAInB,kBAACF,EAAA,EAAM,CACL4D,SAAUA,EACV1D,SAAS,QACTlN,MAAOe,EAAM+P,KACb1D,QAAS,kBAAM4rD,GAAc,IAC7B/tD,KAAK,UAAQ,WAQD,IAAhByyC,GAAsBlD,EAcnB,KAZH,kBAAC,MAAG,KACF,kBAACxtC,EAAA,EAAM,CACL4D,SAAUA,EACV1D,SAAS,UACTlN,MAAOe,EAAM+P,KACb1D,QAASmgC,GAAS,mBAQzB,CACDsrB,EACAE,EACArrB,EACA+M,EACAiD,EACAlD,EACA5pC,EACA7P,EAAMwB,QACNxB,EAAM4P,UACN5P,EAAMU,OACNV,EAAM+P,KACNy8B,IAEI2rB,EAAelyD,mBAAQ,WAC3B,OAAKyzC,GAAiC,WAAjBhN,GAA+BsrB,GAAeF,EAE/DA,GAAYE,EAEZ,kBAAC,EAAmB,CAClBrqC,cAAe,CAAC,SAAU,SAAU,OACpC7iB,WAAW,UAEX,kBAAC,OAAI,CACH4G,eAAgB,CAAC,SAAU,SAAU,cACrCpT,MAAM,OACNwM,WAAW,UAEX,kBAACmB,EAAA,EAAM,CACL4D,SAAUA,EACV5Q,MAAOe,EAAMU,OACbwJ,KAAK,SACLmC,QACEyrD,EACIvyB,EACA,WACEiH,IACAyrB,GAAc,KAIrBH,EAAW,cAAgB,OAG9B,kBAAC7rD,EAAA,EAAM,CACL4D,SAAUA,EACV5Q,MAAOe,EAAM+P,KACb7F,KAAK,SACLmC,QAAS,kBACPyrD,EAAWC,GAAY,GAASE,GAAc,KAG/CH,EAAW,aAAe,SAOlCrrB,GACC,6BACGmrB,EACD,kBAAC3rD,EAAA,EAAM,CACL4D,SAAUA,EACV1D,SAAS,UACTlN,MAAOe,EAAMU,OACb2L,QAAS,kBAAM0rD,GAAY,KAAM,WAlDhC,OAyDR,CACDre,EACAhN,EACAsrB,EACAF,EACArrB,EACAmrB,EACA/nD,EACA7P,EAAMU,OACNV,EAAM+P,KACNw1B,EACAiH,IAEF,OACE,kBAAC,EAAoB,CACnBluC,MAAO,EACPqvB,cAAe,CAAC,SAAU,OAC1Bjc,eAAgB,CAAC,SAAU,kBAE1BwmD,EACD,kBAAC,EAAmB,CAACl/C,GAAI,CAAC,OAAQ,MAC/Bm/C,M,wHC9LIC,EAAeh6D,UAAOi6D,OAAM,ogDAQ5B,YAA+B,IAA5BjsD,EAAQ,EAARA,SAAUhN,EAAI,EAAJA,KAAMkN,EAAI,EAAJA,KAC5B,OAAIF,EAAiB,IACR,SAAThN,EAAwB,iBACxBkN,EACW,UAATlN,EAAyB,iBAChB,UAATA,EAAyB,UACtB,eAEI,UAATA,EAAyB,kBAChB,UAATA,EAAyB,iBAEtB,kBAKQ,gBAAGY,EAAK,EAALA,MAAK,MAAO,UAAGA,EAAMc,aAAY,QAAQ,KACnD,YAAW,SAARsL,SAA2B,OAAS,eACjC,gBAAGnN,EAAK,EAALA,MAAOe,EAAK,EAALA,MAAK,OAAOf,GAASe,EAAM8e,WAtChC,WAAH,OAAS/f,cAAG,qJAC5BC,QAGEA,QAIAA,YA4Ca,YAA+B,IAA5BI,EAAI,EAAJA,KAAMkN,EAAI,EAAJA,KACtB,OADoC,EAARF,UAEf,SAAThN,GACS,UAATA,EAFiB,MAGR,UAATA,GAAoBkN,EAAa,OAC9B,WAEI,YAAqB,IAAlBlN,EAAI,EAAJA,KAAMkN,EAAI,EAAJA,KACpB,MAAa,SAATlN,EAAwB,UACf,UAATA,EACEkN,EAAa,UACV,UAEI,UAATlN,GAAoBkN,EAAa,UAC9B,KAWPrN,SAEO,YAAgC,IAA7BmZ,EAAO,EAAPA,QAASpY,EAAK,EAALA,MAAOf,EAAK,EAALA,MAC1B,OAAImZ,EAAgBnZ,GAASe,EAAM8e,QAC5B9e,EAAMC,mBAKN,YAAW,SAAR4P,SAA2B,OAAS,MAEhD5Q,SAEkB,YAA0C,IAAvCmN,EAAQ,EAARA,SAAUgM,EAAO,EAAPA,QAASpY,EAAK,EAALA,MAAOf,EAAK,EAALA,MAC/C,OAAImN,EAAiB,yBACjBgM,EAAgBpY,EAAMC,gBACnBhB,GAASe,EAAM8e,WASlB,gBAAG9e,EAAK,EAALA,MAAK,MAAO,UAAGA,EAAMe,eAAc,QAAQ,KACxC,YAAW,SAAR8O,SAA2B,cAAgB,aAEpC,YAA8C,IAA3CuI,EAAO,EAAPA,QAASpY,EAAK,EAALA,MAAOf,EAAK,EAALA,MAAOqyD,EAAE,EAAFA,GAC5C,OADwD,EAARzhD,SAC3B,GACjBuI,EAAgBnZ,GAASqyD,GAAMtxD,EAAM8e,QAClC9e,EAAMC,mBAKJ,YAA8C,IAA3CmY,EAAO,EAAPA,QAASpY,EAAK,EAALA,MAAOf,EAAK,EAALA,MAAOqyD,EAAE,EAAFA,GACjC,OAD6C,EAARzhD,SAChB,GACjBuI,EAAgBpY,EAAMC,gBACnBqxD,GAAMryD,GAASe,EAAM8e,WAK9B,YAA6B,IAA1B1S,EAAQ,EAARA,SACH,OADqB,EAARyD,SACQ,GACjBzD,EACKrN,cAAG,iJADZ,KAmBW,gBAAGiB,EAAK,EAALA,MAAK,OAAQA,EAAMwI,SAAWxI,EAAM8e,QAAU,WAY5D,gBAAG1S,EAAQ,EAARA,SAAUyD,EAAQ,EAARA,SAAQ,OACpBzD,GAAayD,EAKV,CAAEgR,UAAW,QAASE,UAAW,QAJjC,CACEF,UAAW,WACXE,UAAW,UAKnBL,WACA+2C,SACAt4D,W,oIChKE8M,EAASsE,sBAAW,SAAC/R,EAAOgS,GAChC,MAeIhS,EAdFS,aAAK,MAAG,KAAI,IAcVT,EAbF4Z,eAAO,OAAQ,IAab5Z,EAZFqR,gBAAQ,OAAQ,IAYdrR,EAXFwM,UAAE,MAAG,KAAI,IAWPxM,EAVF0L,YAAI,MAAG,SAAQ,IAUb1L,EATF85D,mBAAW,MAAG,SAAQ,EACtBjsD,EAQE7N,EARF6N,QACA1M,EAOEnB,EAPFmB,SACAK,EAMExB,EANFwB,MACAmM,EAKE3N,EALF2N,SAAS,EAKP3N,EAJF4N,gBAAQ,OAAQ,IAId5N,EAHF0N,oBAAY,MAAG,QAAO,IAGpB1N,EAFFY,YAAI,MAAG,SAAQ,EACZ+R,EAAI,YACL3S,EAAK,GACHyZ,EAAKjN,IAAO6E,EAAW9E,IAAOutD,EACpC,OACE,kBAACF,EAAY,eACX5nD,IAAKA,EACLyH,GAAIA,EACJ5L,QAASwD,EAAW,aAAWxD,EAC/BpN,MAAOA,EACPmZ,QAASA,EACTvI,SAAUA,EACV7E,GAAIA,EACJd,KAAMc,IAAO6E,OAAWhJ,EAAYqD,EACpClK,MAAOA,EACPoM,SAAUA,EACVhN,KAAMA,EACNkN,KAAO3M,OAAoBkH,EAAT,QACdsK,GAEc,SAAjBjF,GAA2BC,GAC1B,kBAAC,IAAe,CAACG,KAAMy4B,EAAM54B,KAEV,kBAAbxM,EAAwB,kBAAC,IAAI,KAAEA,GAAmBA,EACxC,UAAjBuM,GAA4BC,GAC3B,kBAAC,IAAe,CAACG,KAAMy4B,EAAM54B,SAqBtBF,O","file":"static/js/main.80b42619.chunk.js","sourcesContent":["import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\nimport { space, typography, color, flexbox, margin, size } from \"styled-system\";\r\nimport formatter from \"../../../modules/formatter\";\r\n// import { Flex, Box } from \"reflexbox/styled-components\";\r\n\r\nconst BaseText = styled.div`\r\n margin: 0;\r\n padding: 0;\r\n width: ${({ width, w }) => (width ? width : w ? w : \"100%\")};\r\n\r\n text-align: ${(props) => {\r\n if (props.center) return \"center;\";\r\n if (props.right) return \"right;\";\r\n return \"left\";\r\n }};\r\n text-decoration: ${(props) => {\r\n if (props.linethrough) return \"line-through;\";\r\n return \"none\";\r\n }};\r\n font-weight: ${(props) => (props.bold ? \"600\" : \"400\")};\r\n line-height: 1.5;\r\n ${({ ellipsis, lines }) => {\r\n if (ellipsis) {\r\n let ret = css`\r\n word-break: break-all;\r\n min-width: 1rem;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n position: relative;\r\n display: -webkit-box;\r\n -webkit-line-clamp: ${({ lines = 1 }) => lines};\r\n -webkit-box-orient: vertical;\r\n `;\r\n\r\n return ret;\r\n }\r\n }}\r\n ${space};\r\n ${color};\r\n ${typography};\r\n ${flexbox};\r\n ${size};\r\n ${margin};\r\n`;\r\n\r\nexport const Heading = styled(BaseText)`\r\n font-size: 2rem;\r\n flex: unset;\r\n`;\r\n\r\nexport const Body = styled(BaseText)`\r\n font-size: 1rem;\r\n`;\r\n\r\nexport const Helper = styled(BaseText)`\r\n font-size: 0.75rem;\r\n`;\r\nexport const Date = styled(BaseText)`\r\n justify-content: center;\r\n text-align: center;\r\n`;\r\nexport const Currency = ({ value, children }) => {\r\n return (\r\n \r\n ${formatter.currency(value ? value : +children?.[0])}\r\n \r\n );\r\n};\r\n","import { createGlobalStyle } from \"styled-components\";\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n\r\n html {\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n }\r\n\r\n * {\r\n font-family: Calibri,sans-serif !important;\r\n font-size: 16px;\r\n\r\n outline: none !important;\r\n /* @media (max-width: 1200px) {\r\n font-size: 14px !important;\r\n } */\r\n }\r\n \r\n a {\r\n text-decoration: none;\r\n }\r\n \r\n h1 {\r\n font-size:2em;\r\n color: ${(props) => props.theme.textDark};\r\n }\r\n\r\n div {\r\n color: ${(props) => props.theme.textDark};\r\n }\r\n\r\n body { \r\n margin: 0;\r\n padding: 0;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n background-color: ${({ theme }) => theme.headerColor} !important;\r\n #root {\r\n background-color: ${(props) => props.theme.backgroundColor};\r\n }\r\n @media print {\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n }\r\n }\r\n \r\n .bgGray {\r\n background-color: ${(props) => props.theme.textDark};\r\n }\r\n \r\n .bgWhite {\r\n background-color: ${(props) => props.theme.backgroundColor};\r\n }\r\n \r\n .list-group-item {\r\n border: none !important;\r\n background-color: ${(props) => props.theme.textDark} !important;\r\n }\r\n \r\n .list-inline-item, .modelHeader{\r\n text-align: center;\r\n }\r\n \r\n .btn.focus, .btn:focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem white;\r\n }\r\n \r\n .tab-control {\r\n padding-left: 1%;\r\n padding-right: 1%;\r\n padding-bottom: 1em !important;\r\n }\r\n \r\n .App {\r\n min-height: 100vh;\r\n max-width: 100vw;\r\n background-color: ${({ theme }) => theme.backgroundColor};\r\n } \r\n @media (min-width:768px) {\r\n body {\r\n overflow-y:auto;\r\n }\r\n }\r\n \r\n @media(max-width:768px) {\r\n body {\r\n overflow-x: hidden;\r\n }\r\n }\r\n \r\n .container {\r\n padding-left:0; \r\n padding-right:0; \r\n }\r\n \r\n @media (max-width:1200px) {\r\n .container {\r\n padding-left: 3px;\r\n padding-right: 3px;\r\n width: 100% !important;\r\n max-width: 100% !important;\r\n }\r\n }\r\n @media (min-width:1201px) and (max-width:1440px) {\r\n .container {\r\n padding-left:0; padding-right:0;\r\n }\r\n }\r\n \r\n @media (min-width: 1140px) { \r\n .container { \r\n max-width: 100% !important; \r\n padding-left:0;\r\n padding-right:0;\r\n } \r\n }\r\n \r\n @media (min-width:1201px) {\r\n #nprogress .bar {\r\n background: #DF346F;\r\n \r\n position: fixed;\r\n z-index: 1031;\r\n top: 50px !important;\r\n left: 20px !important;\r\n \r\n width: 100%;\r\n height: 2px;\r\n display:none;\r\n }\r\n #nprogress .peg {\r\n box-shadow: 0 0 10px #DF346F, 0 0 5px #DF346F !important;\r\n }\r\n \r\n #nprogress .spinner-icon {\r\n border-top-color: #DF346F !important;\r\n border-left-color: #DF346F !important;\r\n display: none !important;\r\n }\r\n }\r\n \r\n .row {\r\n padding-left: 1%;\r\n padding-right: 1%;\r\n margin-left: 0px;\r\n margin-right: 0px;\r\n margin-top: 1em;\r\n margin-bottom: 1em;\r\n }\r\n \r\n .col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto {\r\n padding-left: 0px !important;\r\n padding-right: 0px !important; \r\n }\r\n \r\n .form-group {\r\n margin-right: 1em !important;\r\n }\r\n \r\n @media (max-width:1200px) {\r\n #nprogress .bar {\r\n background: #DF346F; \r\n }\r\n #nprogress .peg {\r\n box-shadow: 0 0 10px #DF346F, 0 0 5px #DF346F !important;\r\n }\r\n \r\n #nprogress .spinner-icon {\r\n border-top-color: #DF346F !important;\r\n border-left-color: #DF346F !important;\r\n display:none;\r\n }\r\n }\r\n \r\n #columnScrollable::-webkit-scrollbar-track {\r\n -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);\r\n box-shadow:inset 0 0 6px rgba(0,0,0,0.3);\r\n border-radius: 10px;\r\n background-color: ${(props) => props.theme.textDark};\r\n }\r\n \r\n #columnScrollable::-webkit-scrollbar-thumb {\r\n border-radius: 10px;\r\n -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);\r\n box-shadow:inset 0 0 6px rgba(0,0,0,.3);\r\n background-color: #555;\r\n }\r\n \r\n #columnScrollable::-webkit-scrollbar {\r\n width: 0;\r\n background-color: ${(props) => props.theme.textDark};\r\n }\r\n \r\n .pointer {\r\n cursor: pointer;\r\n }\r\n \r\n .navbar {\r\n z-index: 5;\r\n }\r\n \r\n\r\n .navbar-dark .navbar-nav .nav-link{\r\n color: ${(props) => props.theme.textDark} !important;\r\n }\r\n\r\n .tab-control .nav-tabs {\r\n border: none !important;\r\n position: relative;\r\n top: -6px;\r\n }\r\n .tab-control .nav-tabs .nav-item.show .nav-link, .tab-control .nav-tabs .nav-link.active {\r\n color: ${(props) => props.theme.textLight} !important;\r\n background-color: ${(props) => props.theme.currentHighlight} !important; \r\n border: none !important; \r\n font-weight: bold; \r\n }\r\n \r\n .tab-control .nav-link, .tab-control .nav-item {\r\n background-color: ${(props) => props.theme.textDark};\r\n }\r\n \r\n .tab-control .nav-tabs .nav-link:focus, .tab-control .nav-tabs .nav-link:hover {\r\n border: none !important;\r\n }\r\n \r\n .tab-control .nav-link, .tab-control .nav-item { display: inline !important; outline:none !important; border: none !important; cursor: pointer; }\r\n .tab-control .nav-item:after {\r\n /* content: '>'; \r\n display:inline; */\r\n }\r\n .tab-control .nav-item:last-child::after {content: '';}\r\n \r\n .circle {\r\n border-radius: 5px; \r\n height: 248px;\r\n width: 248px;\r\n background-color: ${(props) => props.theme.textDark};\r\n position: relative; \r\n cursor: pointer; \r\n margin: auto;\r\n }\r\n .circle::after {\r\n content: \" \";\r\n position: absolute;\r\n display: block;\r\n background-color: ${(props) => props.theme.callToActionColor};\r\n height: 20px;\r\n margin-top: -5px;\r\n top: 50%;\r\n left: 30px;\r\n right: 30px;\r\n z-index: 9;\r\n }\r\n .circle::before {\r\n content: \" \";\r\n position: absolute;\r\n display: block;\r\n background-color: ${(props) => props.theme.callToActionColor};\r\n width: 20px;\r\n margin-left: -5px;\r\n left: 50%;\r\n top: 30px;\r\n bottom: 30px;\r\n z-index: 9;\r\n }\r\n \r\n #datePicker {\r\n display: block;\r\n width: 100%;\r\n height: calc(1.5em + .75rem + 2px);\r\n padding: .375rem .75rem;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5;\r\n color: #495057;\r\n background-color: ${(props) => props.theme.backgroundColor};\r\n background-clip: padding-box;\r\n border: 1px solid ${(props) => props.theme.textDark};\r\n border-radius: .25rem;\r\n -webkit-transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;\r\n transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;\r\n }\r\n \r\n .poweredBy {\r\n margin-bottom: 0 !important;\r\n position: relative;\r\n bottom: 5px;\r\n font-style: italic;\r\n\r\n font-size: 10px;\r\n text-align: center;\r\n width: 100%;\r\n display: inline-block;\r\n }\r\n \r\n .pagination {\r\n margin-top: 10px;\r\n }\r\n \r\n .page-item.active .page-link {\r\n background-color:${(props) => props.theme.currentHighlight};\r\n border-color: ${(props) => props.theme.currentHighlight} !important;\r\n color: ${(props) => props.theme.currentHighlight} !important;\r\n }\r\n \r\n i {\r\n border: solid black;\r\n border-width: 0 2px 2px 0;\r\n display: inline-block;\r\n padding: 5px;\r\n margin-left: 15px;\r\n }\r\n \r\n .right {\r\n transform: rotate(-45deg);\r\n -webkit-transform: rotate(-45deg);\r\n }\r\n \r\n .left {\r\n transform: rotate(0deg);\r\n -webkit-transform: rotate(0deg);\r\n }\r\n \r\n .up {\r\n transform: rotate(-135deg);\r\n -webkit-transform: rotate(-135deg);\r\n }\r\n \r\n .down {\r\n transform: rotate(45deg);\r\n -webkit-transform: rotate(45deg);\r\n }\r\n \r\n @media(max-width: 1200px) {\r\n .hideOnMobile {\r\n display: none !important;\r\n }\r\n \r\n .icon-line {\r\n position: relative;\r\n top: 25px;\r\n }\r\n }\r\n\r\n @media(min-width:1200px){\r\n .hideOnDesktop{\r\n display:none !important;\r\n }\r\n }\r\n \r\n .react-numeric-input input {\r\n padding: 5px !important;\r\n background-clip: padding-box !important;\r\n border: 1px solid ${(props) => props.theme.textDark} !important;\r\n border-radius: .25rem !important;\r\n -webkit-transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out !important;\r\n transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out !important;\r\n padding-left: 15px !important;\r\n width: 100% !important;\r\n }\r\n \r\n .react-numeric-input i {\r\n display: none;\r\n }\r\n \r\n #stageContainer {\r\n width: 80%;\r\n \r\n @media(min-width:1200px) {\r\n margin-left: auto !important;\r\n margin-right: auto !important;\r\n }\r\n\r\n /*background-color: #EEEE;*/\r\n padding-left: 0 !important;\r\n padding-right: 0 !important;\r\n @media(max-width:1200px) {\r\n width: 100%;\r\n \r\n }\r\n }\r\n \r\n \r\n .modal.left .modal-dialog {\r\n position:fixed;\r\n right: 0;\r\n margin: auto;\r\n width: 520px;\r\n height: 100%;\r\n -webkit-transform: translate3d(0%, 0, 0);\r\n -ms-transform: translate3d(0%, 0, 0);\r\n -o-transform: translate3d(0%, 0, 0);\r\n transform: translate3d(0%, 0, 0);\r\n }\r\n \r\n @media(max-width: 1200px) {\r\n .modal.left .modal-dialog { \r\n width: auto !important;\r\n }\r\n }\r\n \r\n .modal.left .modal-content {\r\n height: 100%;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n }\r\n \r\n .modal.right .modal-body {\r\n padding: 0;\r\n }\r\n \r\n .modal.right.fade .modal-dialog {\r\n left: -320px;\r\n -webkit-transition: opacity 0.3s linear, left 0.3s ease-out;\r\n -moz-transition: opacity 0.3s linear, left 0.3s ease-out;\r\n -o-transition: opacity 0.3s linear, left 0.3s ease-out;\r\n transition: opacity 0.3s linear, left 0.3s ease-out;\r\n }\r\n \r\n .modal.right.fade.show .modal-dialog {\r\n right: 0;\r\n }\r\n \r\n /* ----- MODAL STYLE ----- */\r\n .modal-content {\r\n border-radius: 0;\r\n border: none;\r\n background-color: ${(props) => props.theme.backgroundColor};\r\n }\r\n \r\n .modal-header {\r\n border-bottom-color: ${(props) => props.theme.textDark};\r\n background-color: ${(props) => props.theme.backgroundColor};\r\n }\r\n \r\n #sidebarDetailSummary {\r\n z-index: 99999;\r\n }\r\n \r\n .modal-body {\r\n background-color: ${(props) => props.theme.backgroundColor};\r\n padding: 0 !important;\r\n }\r\n \r\n .modal-footer {\r\n background-color: ${(props) => props.theme.textDark};\r\n\r\n }\r\n \r\n @media (max-width:1200px) { \r\n .imageBox .hoverImg { \r\n display: none;\r\n \r\n }\r\n \r\n .imageBox:hover .hoverImg {\r\n display: none; \r\n }\r\n }\r\n \r\n @media (min-width:1201px) { \r\n .imageBox {\r\n cursor: pointer;\r\n }\r\n \r\n .imageBox .hoverImg {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n display: none;\r\n \r\n }\r\n \r\n .imageBox:hover .hoverImg {\r\n display: inline-block;\r\n height: 100%;\r\n width: 100%;\r\n }\r\n }\r\n\r\n .page-link {\r\n color: ${(props) => props.theme.currentHighlight} !important;\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n }\r\n .page-link:focus {\r\n 0 0 0 0.2rem ${(props) => props.theme.currentHighlight}2f !important;\r\n }\r\n\r\n // .page-item.active .page-link {\r\n // color: ${(props) => props.theme.backgroundColor} !important;\r\n // }\r\n\r\n\r\n\r\n.h1 {\r\n color: ${(props) => props.theme.textDark} !important;\r\n}\r\n\r\n.SelectDefaultInputStyle {\r\n color: ${(props) => props.theme.textDark} !important;\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n \r\n \r\n}\r\n\r\n.SelectDefaultInputStyle:focus {\r\n border-color: ${(props) => props.theme.currentHighlight} !important;\r\n box-shadow: none !important;\r\n \r\n}\r\n\r\n.form-control, .form-control-menu {\r\n color: ${(props) => props.theme.textDark} !important;\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n \r\n}\r\n\r\n.form-control:focus, .form-control:hover {\r\n border-color: ${(props) => props.theme.currentHighlight} !important;\r\n box-shadow: none !important;\r\n \r\n}\r\n\r\n#product{\r\n border-color: ${(props) => props.theme.callToActionColor} !important;\r\n box-shadow: none !important;\r\n}\r\n\r\n\r\n.react-confirm-alert-overlay {\r\n\tbackground-color: ${(props) => props.theme.backgroundColor}6f !important;\r\n}\r\n.react-confirm-alert-body{\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n color: ${(props) => props.theme.textDark} !important;\r\n text-align: center !important;\r\n}\r\n.react-confirm-alert-button-group{\r\n display: flow-root !important;\r\n}\r\n\r\n.icon-line:hover{\r\n filter: ${(props) => props.theme.imageActionColorFilter};\r\n}\r\n\r\n.react-numeric-input input {\r\n background-color: ${(props) => props.theme.backgroundColor} !important;\r\n color: ${(props) => props.theme.textDark};\r\n border: 1px solid ${(props) => props.theme.textDark};\r\n}\r\n\r\n.publicTitleBox{\r\n padding: 0px 0px 0px 0px;\r\n}\r\n\r\n.publicTitleRibbon{\r\n background-color: ${(props) => props.theme.textDark} !important;\r\n padding: .5em;\r\n margin: 0px;\r\n}\r\ncartContainer{\r\n padding: 0px 1rem 1rem 1rem;\r\n max-height: 780px;\r\n display: block;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n}\r\n.card-text{\r\n margin:auto !Important;\r\n}\r\n\r\nweakBorder{\r\n width: 100%;\r\n height: 1px;\r\n border-bottom: thick solid ${(props) => props.theme.textDark};\r\n border-radius: 5px;\r\n display: block;\r\n margin:auto;\r\n}\r\n\r\n.dashHeader{\r\n margin-top: 1em;\r\n}\r\n\r\n.icon-line{\r\n margin-left: 1em;\r\n margin-right: 1em;\r\n}\r\n\r\n#iceUsername{\r\n width: 90%;\r\n margin: .5em;\r\n margin-top: 0px;\r\n float: right;\r\n padding-bottom: 6px;\r\n padding-top: 6px;\r\n @media (max-width:1200px) { \r\n\r\n}\r\n\r\n.ConfigurationSummaryTitle{\r\n color = ${(props) => props.theme.textLight};\r\n}\r\n\r\n#communicationActivityDate{\r\n float:right !important;\r\n padding-right: 1em !important;\r\n}\r\n\r\n#magnifyingGlass {\r\n margin: auto;\r\n margin-left: .5em !important;\r\n}\r\n\r\n\r\n\r\n`;\r\n\r\nexport default GlobalStyle;\r\n","import { Flex } from \"reflexbox/styled-components\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const HeaderWrapper = styled(Flex)`\r\n justify-content: space-between;\r\n align-items: center;\r\n background-color: ${({ theme }) => theme.headerColor};\r\n padding: 1rem;\r\n max-height: 5rem;\r\n .clear {\r\n svg,\r\n div {\r\n color: ${({ theme }) => theme.danger} !important;\r\n }\r\n }\r\n .hideable-header {\r\n transform-origin: center !important;\r\n }\r\n div,\r\n svg {\r\n color: ${({ theme }) => theme.headerTextColor} !important;\r\n }\r\n img {\r\n max-height: 2.5rem;\r\n height: 100%;\r\n width: auto;\r\n }\r\n .username {\r\n @media (max-width: 600px) {\r\n display: none;\r\n }\r\n }\r\n .hideable-header {\r\n @media (max-width: 600px) {\r\n display: none;\r\n }\r\n }\r\n .hideable-dropdown {\r\n @media (min-width: 601px) {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const DropdownWrapper = styled(Flex)`\r\n flex-direction: column;\r\n display: inline-flex;\r\n padding: 1rem;\r\n margin-left: 1rem;\r\n position: relative;\r\n\r\n z-index: 1000;\r\n .username {\r\n max-width: 250px;\r\n }\r\n .header-dropdown {\r\n transform-origin: center;\r\n z-index: 1001;\r\n @media (max-width: 600px) {\r\n min-width: 50px;\r\n }\r\n justify-content: flex-end;\r\n }\r\n @media (max-width: 600px) {\r\n .header-dropdown,\r\n .header-link {\r\n justify-content: flex-end;\r\n transform-origin: right;\r\n }\r\n }\r\n\r\n .open {\r\n display: ${({ toggleOpen }) => (!toggleOpen ? \"none\" : \"\")};\r\n position: absolute;\r\n top: -1rem;\r\n right: 0;\r\n width: 100%;\r\n padding: 3rem 1rem 1rem 1rem;\r\n background-color: ${({ theme }) => theme.headerColor};\r\n border-radius: ${({ theme }) => `${theme.borderRadius}px`};\r\n overflow: hidden;\r\n box-shadow: ${({ toggleOpen, theme }) =>\r\n toggleOpen ? `0 5px 5px 5px ${theme.boxShadowColor}14` : \"none\"};\r\n &.group {\r\n right: unset;\r\n left: 0;\r\n .username {\r\n white-space: normal;\r\n }\r\n }\r\n }\r\n\r\n .hideable {\r\n @media (min-width: 600px) {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nexport const DropdownItems = styled(Flex)`\r\n margin-top: 1rem !important;\r\n flex-direction: column;\r\n min-width: 180px;\r\n\r\n div {\r\n color: ${({ theme }) => theme.headerTextColor} !important;\r\n }\r\n > button,\r\n a {\r\n margin-top: 0.25rem;\r\n margin-button: 0.25rem;\r\n margin-left: 0 !important;\r\n margin-right: 0 !important;\r\n\r\n div {\r\n flex: unset;\r\n\r\n color: ${({ theme }) => theme.headerTextColor} !important;\r\n }\r\n @media (max-width: 600px) {\r\n margin: 0.4rem 0;\r\n }\r\n }\r\n`;\r\n","import axios from \"axios\";\r\n\r\nexport const getUser = async ({ username, signal }) => {\r\n const { status, data } = await axios.post(\"/api/v1/userManagement/getUser\", {\r\n username,\r\n signal,\r\n });\r\n\r\n if (status === 200 && data.success === true) return data;\r\n return null;\r\n};\r\n\r\nexport const getUsers = async (body) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/userManagement/getUsers\",\r\n body\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return [];\r\n};\r\n\r\nexport const createUser = async ({ input }) => {\r\n const res = await axios.post(\"/api/v1/userManagement/createUser\", { input });\r\n if (res?.status === 200) return res?.data;\r\n\r\n return null;\r\n};\r\nexport const updateUser = async ({ id, input }) => {\r\n const res = await axios.post(\"/api/v1/userManagement/updateUser\", {\r\n id,\r\n input,\r\n });\r\n if (res?.status === 200) return res?.data;\r\n\r\n return null;\r\n};\r\nexport const deleteUser = async ({ id }) => {\r\n const res = await axios.post(\"/api/v1/userManagement/deleteUser\", { id });\r\n if (res?.status === 200) return res?.data;\r\n\r\n return null;\r\n};\r\nexport const deleteUsers = async ({ users, self }) => {\r\n const res = await axios.post(\"/api/v1/userManagement/deleteUsers\", {\r\n users,\r\n self,\r\n });\r\n if (res?.status === 200) return res?.data;\r\n\r\n return null;\r\n};\r\n\r\nexport const forgotPassword = async ({ username }) => {\r\n const res = await axios.post(\"/api/v1/auth/forgotPassword\", {\r\n username: username,\r\n });\r\n\r\n if (res?.status === 200) return res?.data;\r\n\r\n return null;\r\n};\r\n\r\nexport const finishDemoEmail = async ({ email, password }) => {\r\n const res = await axios.post(\"/api/v1/auth/finishDemoEmail\", {\r\n email,\r\n password,\r\n });\r\n if (res.status === 200) return res.data;\r\n\r\n return null;\r\n};\r\n\r\nexport const getPasswordResetRequest = async ({ passwordResetRequestId }) => {\r\n const res = await axios.post(\r\n \"/api/v1/userManagement/getPasswordResetRequest\",\r\n {\r\n passwordResetRequestId,\r\n }\r\n );\r\n\r\n if (res?.status === 200) return res?.data;\r\n\r\n return null;\r\n};\r\n\r\nexport const emailNewUserPassword = async ({ username, password }) => {\r\n const res = await axios.post(\"/api/v1/administration/emailNewUserPassword\", {\r\n username: username,\r\n password: password,\r\n });\r\n\r\n if (res.status === 200) return res.data;\r\n\r\n return null;\r\n};\r\n","export const DROPDOWN = \"dropdown\";\r\nexport const RADIO_HORIZTONAL = \"radiobuttonhorizontal\";\r\nexport const NUMERIC_TEXTBOX = \"numerictextbox\";\r\nexport const TEXTBOX = \"textbox\";\r\nexport const CHECKBOX = \"checkbox\";\r\nexport const IMAGE_TEXT_HORIZONTAL = \"imageandtexthorizontal\";\r\nexport const NUMERIC_CONTROL = \"numericcontrol\";\r\nexport const TYPEABLE_DROPDOWN = \"typeabledropdown\";\r\nexport const IMAGE_DROPDOWN = \"imagedropdown\";\r\nexport const HOME_DELIVERY = \"Home Delivery\";\r\nexport const CPQ_HOST_SERVICES_SERVER = \"13.92.153.226\"; // SALES SERVER\r\n\r\nexport const PLACEHOLDER = \"placeholder\";\r\n\r\n// Access this value with roleLevel 0-9\r\nexport const DEFAULT_HOMEPAGE = {\r\n 0: \"/\",\r\n 1: \"/\",\r\n 2: \"/\",\r\n 3: \"/\",\r\n 4: \"/\",\r\n 5: \"/\",\r\n 6: \"/\",\r\n 7: \"/\",\r\n 8: \"/\",\r\n 9: \"/\",\r\n};\r\n\r\nexport const CONFIGURATOR_MODES = {\r\n Default: 0,\r\n Quote: 1,\r\n Order: 2,\r\n Ice: 3,\r\n};\r\n\r\nexport const AUTO_CONTINUE_MODE = {\r\n StayOnScreenRule: 0,\r\n StayOnTab: 1,\r\n MoveTabAndScreenRule: 2,\r\n};\r\n\r\nexport const MESSAGE_RULE_TYPES = {\r\n Critical: 1,\r\n Warning: 2,\r\n Information: 3,\r\n};\r\n\r\nexport const rentechTheme = {\r\n buttonColor: \"#EEEEEE\",\r\n altButtonColor: \"#6D6E71\",\r\n buttonTextWhite: \"#FFF\",\r\n activeStageColor: \"#13cdfd\",\r\n inactiveStageForeColor: \"#000\",\r\n activeStageForeColor: \"#FFF\",\r\n completedStageColor: \"#EEEEEE\",\r\n incompleteStageColor: \"#EEEEEE\",\r\n accentColor: \"#ffdd00\",\r\n darkBackground: \"#6D6E71\",\r\n lightBackground: \"#EEEEEE\",\r\n gridLineHoverBackgroundColor: \"#4d4d4d\",\r\n gridLineHoverOpacity: 0.7,\r\n gridLineHoverColor: \"#FFF\",\r\n gridRowBackgroundColor: \"#f5f5f5\", //offwhite\r\n gridRowAlternateBackgroundColor: \"#FFF\",\r\n\r\n callToActionColor: \"#FDB813\", //Trinity Orange\r\n backgroundColor: \"#FFF\", //White\r\n backgroundOffset: \"#EEEEEE\", //Light Grey\r\n darkerOffset: \"#D3D3D3\", //Grey\r\n currentHighlight: \"#13cdfd\", //Electric Blue\r\n textDark: \"#000\", //Black\r\n textLight: \"#FFF\", //White\r\n};\r\n","import { createContext } from \"react\";\r\n\r\nconst SocketContext = createContext({\r\n client: null,\r\n setClient: () => {},\r\n userLoggedIn: async () => {},\r\n});\r\n\r\nexport default SocketContext;\r\n","import React, { createContext, useState } from \"react\";\r\n\r\nexport const PagerContext = createContext({\r\n limit: 12,\r\n offset: 0,\r\n order: [\"id\", \"ASC\"],\r\n search: \"\",\r\n});\r\n\r\nconst PagerContextProvider = ({ children, defaultOrder }) => {\r\n const [limit, setLimit] = useState(12);\r\n const [offset, setOffset] = useState(0);\r\n const [order, setOrder] = useState(defaultOrder || [\"id\", \"ASC\"]);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default PagerContextProvider;\r\n","import _ from \"lodash\";\r\nimport { useState, useEffect, useCallback } from \"react\";\r\nimport { useContext, useRef, useMemo } from \"react\";\r\nimport { PagerContext } from \"../UI/Pager/PagerContext\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\n\r\nconst useQuery = ({\r\n queryID,\r\n request,\r\n queryVariables,\r\n skip: _skip = false,\r\n forcedFilters = null,\r\n attributes = null,\r\n queries: _queries,\r\n setQueries: _setQueries,\r\n}) => {\r\n const pagerContext = useContext(PagerContext);\r\n const {\r\n queries: __queries,\r\n setQueries: __setQueries,\r\n activeUser,\r\n platform,\r\n loggedIn,\r\n } = useContext(UserContext);\r\n\r\n const { queries, setQueries } = useMemo(\r\n () =>\r\n !!_queries && !!_setQueries\r\n ? { queries: { ..._queries }, setQueries: _setQueries }\r\n : { queries: { ...__queries }, setQueries: __setQueries },\r\n [__queries, __setQueries, _queries, _setQueries]\r\n );\r\n\r\n const cache = useRef({ ...queries?.[queryID] });\r\n\r\n const [skip, setSkip] = useState(_skip);\r\n\r\n useEffect(() => {\r\n if (!activeUser && loggedIn) setSkip(true);\r\n else if (!platform && queryID !== \"platform\") setSkip(true);\r\n else if (_skip) setSkip(true);\r\n else setSkip(false);\r\n }, [_skip, activeUser, loggedIn, platform, queryID]);\r\n\r\n const { limit, offset, order, search } = forcedFilters\r\n ? forcedFilters\r\n : pagerContext;\r\n\r\n const [shouldRefetch, setShouldRefetch] = useState(false);\r\n const [isLoading, setLoading] = useState(false);\r\n\r\n const refetchQuery = useCallback(\r\n (id) => {\r\n const q = { ...queries, [id]: undefined };\r\n setQueries(q);\r\n setShouldRefetch(true);\r\n },\r\n [queries, setQueries]\r\n );\r\n\r\n const setData = useCallback(\r\n (newData) => {\r\n cache.current.data = newData;\r\n setQueries({\r\n ...queries,\r\n [queryID]: { ...(queries[queryID] || {}), data: newData },\r\n });\r\n },\r\n [queries, queryID, setQueries]\r\n );\r\n\r\n const initialized = useMemo(() => !!queries[queryID], [queries, queryID]);\r\n\r\n const setInitialState = useCallback(() => {\r\n setQueries({\r\n ...queries,\r\n [queryID]: { isLoading: true, data: {}, setData, refetchQuery },\r\n });\r\n }, [queries, queryID, refetchQuery, setData, setQueries]);\r\n\r\n useEffect(() => {\r\n if (!initialized) setInitialState();\r\n }, [initialized, setInitialState]);\r\n\r\n const fetchData = useCallback(\r\n async ({ signal }) => {\r\n if (skip) return;\r\n if (isLoading) return;\r\n\r\n if (cache.current.data?.refetched) {\r\n cache.current = {\r\n data: queries[queryID]?.data,\r\n refetched: false,\r\n refetchQuery,\r\n setData,\r\n isLoading,\r\n pagerVariables: { limit, offset, order, search },\r\n queryVariables,\r\n };\r\n\r\n setShouldRefetch(false);\r\n return;\r\n }\r\n\r\n setShouldRefetch(false);\r\n setLoading(true);\r\n\r\n const result = await request({\r\n signal,\r\n limit,\r\n offset,\r\n order,\r\n search,\r\n ...queryVariables,\r\n attributes,\r\n });\r\n\r\n cache.current = {\r\n data: result,\r\n refetched: true,\r\n refetchQuery,\r\n setData,\r\n isLoading,\r\n pagerVariables: { limit, offset, order, search },\r\n queryVariables,\r\n };\r\n setQueries({\r\n ...queries,\r\n [queryID]: {\r\n data: result,\r\n refetchQuery,\r\n setData,\r\n isLoading,\r\n refetched: true,\r\n pagerVariables: { limit, offset, order, search },\r\n queryVariables,\r\n },\r\n });\r\n\r\n setLoading(false);\r\n\r\n return result;\r\n },\r\n [\r\n attributes,\r\n isLoading,\r\n limit,\r\n offset,\r\n order,\r\n queries,\r\n queryID,\r\n queryVariables,\r\n refetchQuery,\r\n request,\r\n search,\r\n setData,\r\n setQueries,\r\n skip,\r\n ]\r\n );\r\n\r\n useEffect(() => {\r\n if (!cache.current.data) {\r\n setShouldRefetch(true);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (\r\n cache.current.data &&\r\n !_.isEqual(cache.current.pagerVariables, { limit, offset, order, search })\r\n ) {\r\n setShouldRefetch(true);\r\n }\r\n }, [limit, offset, order, search]);\r\n\r\n useEffect(() => {\r\n if (\r\n cache.current.data &&\r\n !_.isEqual(cache.current.queryVariables, queryVariables)\r\n ) {\r\n setShouldRefetch(true);\r\n }\r\n }, [queryVariables]);\r\n\r\n useEffect(() => {\r\n if (shouldRefetch) {\r\n const controller = new AbortController();\r\n fetchData({ signal: controller.signal });\r\n return () => controller.abort();\r\n }\r\n }, [fetchData, shouldRefetch]);\r\n\r\n return {\r\n data: cache.current.data,\r\n isLoading,\r\n refetchQuery,\r\n refetched: true,\r\n setData,\r\n pagerVariables: { limit, offset, order, search },\r\n queryVariables,\r\n };\r\n};\r\n\r\nexport default useQuery;\r\n","import axios from \"axios\";\r\n\r\nexport const getGroups = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/groupManagement/getGroups\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getGroup = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/groupManagement/getGroup\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createGroup = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/groupManagement/createGroup\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const updateGroup = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/groupManagement/updateGroup\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const deleteGroup = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/groupManagement/deleteGroup\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import React, {\r\n\tuseContext,\r\n\tuseState,\r\n\tuseCallback,\r\n\tuseMemo,\r\n\tuseEffect,\r\n} from \"react\";\r\nimport Button from \"../UI/Button\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { Flex } from \"reflexbox/styled-components\";\r\nimport { Body } from \"../UI/Text\";\r\nimport Link from \"../UI/Link\";\r\nimport { DropdownWrapper, HeaderWrapper, DropdownItems } from \"./styles\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { updateUser } from \"../../requests/userManagementRequests\";\r\nimport * as fa from \"@fortawesome/free-solid-svg-icons\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport * as constants from \"../../modules/constants\";\r\nimport SocketContext from \"../../context/socket/SocketContext\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { getGroups } from \"../../requests/groupManagementRequests\";\r\nimport _ from \"lodash\";\r\nimport Loading from \"../UI/Loading\";\r\n\r\nconst Header = ({ refetchTheme }) => {\r\n\tconst theme = useTheme();\r\n\tconst navigate = useNavigate();\r\n\tconst {\r\n\t\tactiveUser,\r\n\t\tdarkMode,\r\n\t\tsetDarkMode,\r\n\t\tusername,\r\n\t\tsetActiveUser,\r\n\t\tloggedIn,\r\n\t\tsetLoggedIn,\r\n\t\tplatform,\r\n\t\tpid,\r\n\t\trefetchHeader,\r\n\t\tsetRefetchHeader,\r\n\t\tisLoading: userLoading,\r\n\t} = useContext(UserContext);\r\n\tconst { client } = useContext(SocketContext);\r\n\r\n\tconst {\r\n\t\tdata: groupData,\r\n\t\trefetchQuery,\r\n\t\tisLoading,\r\n\t} = useQuery({\r\n\t\tqueryID: \"headergroups\",\r\n\t\tqueryVariables: { pid, username },\r\n\t\tforcedFilters: {},\r\n\t\tskip: !loggedIn,\r\n\t\trequest: getGroups,\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (refetchHeader && !isLoading) {\r\n\t\t\trefetchQuery();\r\n\t\t\tsetRefetchHeader(false);\r\n\t\t}\r\n\t}, [isLoading, refetchHeader, refetchQuery, setRefetchHeader]);\r\n\r\n\tconst { rows: groups = [] } = groupData || {};\r\n\r\n\tconst { groupId } = activeUser || {};\r\n\r\n\tconst groupOptions = useMemo(() => {\r\n\t\tif (!groupData?.rows) return null;\r\n\t\tconst newGroups = [...groupData?.rows];\r\n\t\t_.remove(newGroups, ({ id: gid }) => gid === groupId);\r\n\t\treturn newGroups;\r\n\t}, [groupData, groupId]);\r\n\r\n\tconst { name } = platform || {};\r\n\r\n\tconst [toggleOpen, setToggleOpen] = useState(false);\r\n\tconst [leftToggleOpen, setLeftToggleOpen] = useState(false);\r\n\r\n\tconst darkModeToggle = useCallback(() => {\r\n\t\twindow.sessionStorage.setItem(\"darkMode\", !darkMode);\r\n\t\tsetDarkMode(!darkMode);\r\n\t\trefetchTheme();\r\n\t}, [darkMode, refetchTheme, setDarkMode]);\r\n\r\n\tconst signOut = useCallback(async () => {\r\n\t\tconst { username, id } = activeUser;\r\n\t\tif (client)\r\n\t\t\tclient.send(\r\n\t\t\t\tJSON.stringify({\r\n\t\t\t\t\ttype: \"userevent\",\r\n\t\t\t\t\tusername,\r\n\t\t\t\t\tcontent: { isLoggedIn: false },\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\tawait updateUser({ id, input: { isLoggedIn: false } });\r\n\t\twindow.sessionStorage.removeItem(\"token\");\r\n\t\twindow.localStorage.removeItem(\"token\");\r\n\t\tsetActiveUser({});\r\n\t\tsetToggleOpen(false);\r\n\t\tsetLeftToggleOpen(false);\r\n\t\tsetLoggedIn(false);\r\n\t\tnavigate(\"/Login\");\r\n\t\trefetchQuery();\r\n\t}, [activeUser, client, setActiveUser, setLoggedIn, navigate, refetchQuery]);\r\n\r\n\tconst currentGroup = useMemo(() => {\r\n\t\tconst currentGroup = _.find(groups, ({ id: gid }) => gid === groupId);\r\n\r\n\t\treturn currentGroup;\r\n\t}, [groupId, groups]);\r\n\r\n\tconst { allowRMAs } = platform || {};\r\n\r\n\t// const { data: interactions } = useQuery({\r\n\t// request: getInteractions,\r\n\t// queryVariables: {\r\n\t// groupId,\r\n\t// firstName: activeUser?.firstName,\r\n\t// lastName: activeUser?.lastName,\r\n\t// },\r\n\t// skip: userLoading || isLoading,\r\n\t// });\r\n\t// const { data: interactionTopics } = useQuery({\r\n\t// request: getInteractionTopics,\r\n\t// queryVariables: { groupId },\r\n\t// forcedFilters: {},\r\n\t// skip: userLoading || isLoading,\r\n\t// });\r\n\t// console.log({ interactions, interactionTopics });\r\n\r\n\tconst assignUserGroup = useCallback(\r\n\t\tasync (group) => {\r\n\t\t\tnavigate(\"/QuoteDashboard\");\r\n\t\t\tconst { id: gid } = group || {};\r\n\t\t\tconst { id } = activeUser || {};\r\n\t\t\tsetActiveUser({ ...activeUser, groupId: gid });\r\n\t\t\tawait updateUser({ id, input: { groupId: gid } });\r\n\t\t},\r\n\t\t[activeUser, navigate, setActiveUser]\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{isLoading ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{groups?.length > 0 && activeUser?.roleLevel !== 0 && (\r\n\t\t\t\t\t\t\t setLeftToggleOpen(false)}\r\n\t\t\t\t\t\t\t\ttoggleOpen={leftToggleOpen}\r\n\t\t\t\t\t\t\t\tdarkMode={darkMode}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t setLeftToggleOpen(!leftToggleOpen)}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{currentGroup?.name}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{groups?.length > 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{groups.length > 1 && activeUser?.roleLevel !== 0 && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{groupOptions.map((group) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t assignUserGroup(group)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ticonName=\"faUserGroup\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group?.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{!activeUser || activeUser?.roleLevel === 0 ? null : (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tQuotes\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tOrders\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{/* only show the RMA button to groups that submit parts orders */}\r\n\r\n\t\t\t\t\t\t{allowRMAs && currentGroup?.productList === 1001 && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tRMAs\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t setToggleOpen(false)}\r\n\t\t\t\t\ttoggleOpen={toggleOpen}\r\n\t\t\t\t\tdarkMode={darkMode}\r\n\t\t\t\t>\r\n\t\t\t\t\t{!loggedIn ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tLogin\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t setToggleOpen(!toggleOpen)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{username || activeUser?.username}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{!activeUser || activeUser?.roleLevel === 0 ? null : (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tQuotes\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tOrders\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{activeUser?.roleLevel >= 5 && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tAdministration\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tProduct Catalog\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tMy Profile\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{/* \r\n My Interactions\r\n */}\r\n\t\t\t\t\t\t{/* \r\n My Configurations\r\n */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tSign Out\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Header;\r\n","import axios from \"axios\";\r\nimport ErrorHandler from \"../modules/errorHandler\";\r\n\r\nexport const copyLineConfiguration = async (input) => {\r\n const { data, status } = await axios.post(\r\n \"/api/v1/configurator/copyLineConfiguration\",\r\n input\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return null;\r\n};\r\n\r\nexport const getQuote = async ({ id, isDealer }) => {\r\n const { data, status } = await axios.post(\r\n \"/api/v1/quoteManagement/getQuote\",\r\n { id, isDealer }\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return null;\r\n};\r\nexport const getQuoteById = async ({ id }) => {\r\n const { data, status } = await axios.post(\r\n \"/api/v1/quoteManagement/getQuoteById\",\r\n { id }\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return null;\r\n};\r\n\r\nexport const getQuotes = async ({\r\n signal,\r\n limit,\r\n offset,\r\n order,\r\n search,\r\n username,\r\n type,\r\n attributes,\r\n pid,\r\n groupId,\r\n}) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/getQuotes\",\r\n {\r\n limit,\r\n offset,\r\n order,\r\n search,\r\n username,\r\n signal,\r\n type,\r\n attributes,\r\n pid,\r\n groupId,\r\n }\r\n );\r\n\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return [];\r\n};\r\n\r\nexport const getLines = async ({\r\n signal,\r\n limit,\r\n offset,\r\n order,\r\n search,\r\n quoteId,\r\n username,\r\n isDealer,\r\n erpId,\r\n}) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/getLines\",\r\n {\r\n limit,\r\n offset,\r\n order,\r\n search,\r\n signal,\r\n quoteId,\r\n username,\r\n isDealer,\r\n erpId,\r\n }\r\n );\r\n\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return [];\r\n};\r\n\r\nexport const createLine = async ({ input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/createLine\",\r\n { input }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n return {};\r\n }\r\n};\r\nexport const updateLine = async ({ input, id, _id }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/updateLine\",\r\n { input, id, _id }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n return {};\r\n }\r\n};\r\nexport const updateLines = async ({ input, quoteId }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/updateLines\",\r\n { input, quoteId }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n return {};\r\n }\r\n};\r\nexport const deleteLine = async ({ _id, id, quoteId }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/deleteLine\",\r\n { _id, id, quoteId }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n return {};\r\n }\r\n};\r\n\r\nexport const createQuote = async ({ input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/createQuote\",\r\n { input }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data.result?.quote;\r\n } catch (error) {\r\n console.error(error);\r\n return ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const updateQuote = async ({ id, _id, input, type }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/updateQuote\",\r\n { id, _id, input, type }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\nexport const placeOrder = async ({ id, input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/placeOrder\",\r\n { id, input }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const deleteQuote = async ({ id, _id }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/deleteQuote\",\r\n { id, _id }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const copyQuote = async ({ id, _id }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/copyQuote\",\r\n { id, _id }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const createCommunication = async ({ input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/createCommunication\",\r\n { input }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const updateCommunication = async ({ id, _id, input, type }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/updateCommunication\",\r\n { id, _id, input, type }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const deleteCommunication = async ({ id, _id }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/deleteCommunication\",\r\n { id, _id }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const createAttachment = async ({ input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/createAttachment\",\r\n { input }\r\n );\r\n\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const updateAttachment = async ({ id, _id, input, type }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/updateAttachment\",\r\n { id, _id, input, type }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const deleteAttachment = async ({ id, _id }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/deleteAttachment\",\r\n { id, _id }\r\n );\r\n if (status !== 200) ErrorHandler.logError(data);\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const getCommunications = async ({ signal, quoteId }) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/getCommunications\",\r\n {\r\n quoteId,\r\n signal,\r\n }\r\n );\r\n\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return [];\r\n};\r\nexport const getAttachments = async ({ signal, quoteId }) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/quoteManagement/getAttachments\",\r\n {\r\n quoteId,\r\n signal,\r\n }\r\n );\r\n\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return [];\r\n};\r\n\r\nexport const sendOrderStatusEmails = async ({ emails, subject, htmlBody }) => {\r\n const res = await axios.post(\r\n \"/api/v1/quoteManagement/sendOrderStatusEmails\",\r\n {\r\n emails,\r\n subject,\r\n htmlBody,\r\n }\r\n );\r\n\r\n if (res.status === 200) return res.data;\r\n\r\n return null;\r\n};\r\nexport const createOrderFromQuote = async (body) => {\r\n const res = await axios.post(\"/api/v1/quoteManagement/createOrderFromQuote\", {\r\n ...body,\r\n });\r\n\r\n if (res.status === 200) return res.data;\r\n\r\n return null;\r\n};\r\nexport const createQuoteFromRequest = async ({ body }) => {\r\n const res = await axios.post(\r\n \"/api/v1/quoteManagement/createQuoteFromRequest\",\r\n { ...body }\r\n );\r\n\r\n if (res.status === 200) return res.data;\r\n\r\n return null;\r\n};\r\n\r\nfunction dataURItoBlob(dataURI, callback) {\r\n // convert base64 to raw binary data held in a string\r\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\r\n var byteString = atob(dataURI.split(\",\")[1]);\r\n // separate out the mime component\r\n // var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\r\n // write the bytes of the string to an ArrayBuffer\r\n var ab = new ArrayBuffer(byteString.length);\r\n var ia = new Uint8Array(ab);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n // write the ArrayBuffer to a blob, and you're done\r\n var bb = new Blob([ab]);\r\n return bb;\r\n}\r\n\r\nexport const downloadFile = async (path, originalName, mimetype) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/quoteManagement/downloadFile\", {\r\n path,\r\n originalName,\r\n mimetype,\r\n });\r\n if (res.status !== 200) return ErrorHandler.logError(res);\r\n \r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n let linkSource = dataURItoBlob(res.data);\r\n\r\n navigator.msSaveOrOpenBlob(linkSource, originalName);\r\n } else {\r\n let linkSource = res.data;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = originalName;\r\n\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n downloadLink.remove();\r\n }\r\n } catch (error) {\r\n return ErrorHandler.logError(error);\r\n }\r\n};\r\n\r\nexport const createPricingDoc = async ({ body }) => {\r\n const res = await axios.post(\"/api/v1/quoteManagement/createPricingDoc\", {\r\n ...body,\r\n });\r\n\r\n if (res.status === 200) return res.data;\r\n\r\n return null;\r\n};\r\n\r\nexport const downloadFailedImportCSV = async (failedRows) => {\r\n try { \r\n const res = await axios.get(\r\n \"/api/v1/quoteManagement/downloadFailedImportCSV\",\r\n { responseType: 'blob',\r\n params: { failedRows }\r\n }); \r\n \r\n const url = URL.createObjectURL(res.data);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', 'LinesFailedToImport.xlsx');\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n URL.revokeObjectURL(url);\r\n } catch (error) {\r\n console.error(error);\r\n ErrorHandler.logError(error);\r\n }\r\n};","import { color } from \"styled-system\";\r\nimport styled from \"styled-components\";\r\nimport { Box } from \"reflexbox/styled-components\";\r\n\r\nexport const PageWrapper = styled(Box)`\r\n margin: 0 auto;\r\n max-width: 1200px;\r\n width: 100%;\r\n padding: 0 1rem;\r\n\r\n ${({ narrow }) =>\r\n narrow\r\n ? {\r\n maxWidth: \"600px\",\r\n }\r\n : \"\"}\r\n ${color};\r\n`;\r\n","import React, { forwardRef, useMemo } from \"react\";\r\nimport { FastField, useField } from \"formik\";\r\nimport { Flex } from \"reflexbox/styled-components\";\r\nimport { Body, Helper } from \"../../Text\";\r\nimport Label from \"../Label\";\r\nimport styled, { useTheme, css } from \"styled-components\";\r\nimport { ShimmerField } from \"../../Shimmer\";\r\nimport { decimalToFraction } from \"../../../../modules/utilities\";\r\n\r\nconst thumbStyles = css`\r\n height: 1.5rem;\r\n width: 1.5rem;\r\n border-radius: 50%;\r\n background-color: white;\r\n border: 2px solid ${({ theme }) => theme.secondary};\r\n cursor: grab;\r\n transition: all ease-in-out 200ms;\r\n &:focus,\r\n &:hover {\r\n border: 5px solid ${({ theme }) => theme.secondary};\r\n }\r\n &:active {\r\n cursor: grabbing;\r\n }\r\n\r\n margin-top: -12px;\r\n\r\n opacity: ${({ disabled }) => disabled && \"0.5\"};\r\n`;\r\n\r\nconst trackStyles = css`\r\n width: 100%;\r\n height: 1px;\r\n padding: 2px 0;\r\n cursor: pointer;\r\n background: ${({ theme }) => theme.gray};\r\n`;\r\n\r\nexport const StyledRangeInput = styled(FastField)`\r\n appearance: none; /* Hides the slider so that custom slider can be made */\r\n width: 100%; /* Specific width is required for Firefox. */\r\n background: transparent; /* Otherwise white in Chrome */\r\n margin: 0.375rem 0 0;\r\n padding: 0 1rem;\r\n height: 1.5rem;\r\n position: relative;\r\n\r\n &:active {\r\n cursor: grabbing;\r\n }\r\n\r\n &::-webkit-slider-container {\r\n }\r\n\r\n &::-webkit-slider-thumb {\r\n appearance: none;\r\n }\r\n\r\n &&:focus {\r\n outline: none; /* removes the input highlight border */\r\n }\r\n\r\n &::-ms-track {\r\n width: 100%;\r\n cursor: pointer;\r\n\r\n /* Hides the slider so custom styles can be added */\r\n background: transparent;\r\n border-color: transparent;\r\n color: transparent;\r\n }\r\n\r\n &::-webkit-slider-thumb {\r\n ${thumbStyles};\r\n }\r\n &::-moz-range-thumb {\r\n ${thumbStyles};\r\n }\r\n &::-ms-thumb {\r\n ${thumbStyles};\r\n }\r\n\r\n &::-webkit-slider-runnable-track {\r\n ${trackStyles};\r\n }\r\n &::-moz-range-track {\r\n ${trackStyles};\r\n }\r\n &::-ms-track {\r\n ${trackStyles};\r\n }\r\n`;\r\n\r\nexport const ValueDisplay = styled.span`\r\n font-weight: 600;\r\n float: right;\r\n`;\r\n\r\nconst Container = styled(Flex)`\r\n width: 100%;\r\n margin: 0.5rem auto 1rem auto;\r\n flex-direction: column;\r\n`;\r\n\r\nconst FlexContainer = styled(Flex)`\r\n flex-direction: column;\r\n width: 100%;\r\n position: relative;\r\n\r\n transition: all ease-in-out 200ms;\r\n\r\n opacity: ${({ disabled }) => (disabled ? \"0.7\" : \"1\")};\r\n cursor: ${({ disabled }) => (disabled ? \"not-allowed\" : \"auto\")};\r\n\r\n &:last-of-type {\r\n margin-bottom: 0;\r\n }\r\n\r\n input {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n padding: 1.25rem 0;\r\n border: none;\r\n border-radius: 0.25rem;\r\n transform-origin: center;\r\n ${({ theme }) => `\r\n background-color: ${theme.backgroundColor};\r\n color: ${theme.textDark};\r\n `}\r\n }\r\n`;\r\n\r\nconst Range = forwardRef((props, ref) => {\r\n const {\r\n noLabel = false,\r\n name,\r\n labelText,\r\n description,\r\n unit = \"\",\r\n isLoading = false,\r\n cta = false,\r\n required,\r\n disabled,\r\n max = 1,\r\n min = 0,\r\n isFraction = false,\r\n step = 0.1,\r\n ...rest\r\n } = props;\r\n\r\n const theme = useTheme();\r\n\r\n const [field, meta] = useField(name);\r\n\r\n const { error } = meta || {};\r\n const { value: _value } = field || {};\r\n\r\n const value = useMemo(() => {\r\n if (!_value) return min;\r\n if (+_value) return +_value;\r\n if (isFraction) {\r\n if (typeof _value === \"string\") {\r\n const { 0: integer, 1: fraction } = _value.split(\" \") || {};\r\n\r\n if (fraction) {\r\n const { 0: numerator, 1: denominator } = fraction.split(\"/\");\r\n const float = +numerator / +denominator;\r\n return +integer + float;\r\n } else return +_value;\r\n } else return _value;\r\n } else return _value;\r\n }, [isFraction, min, _value]);\r\n\r\n return (\r\n \r\n \r\n {!noLabel && (\r\n \r\n {labelText}\r\n \r\n )}\r\n \r\n {isFraction\r\n ? `${decimalToFraction(value || min)}${unit}`\r\n : value || min}\r\n \r\n \r\n {description && {description}}\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n {error && (\r\n \r\n {error}\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default Range;\r\n","export const gcd = (a, b) => {\r\n // 1, 5\r\n return b ? gcd(b, a % b) : a;\r\n};\r\n\r\nexport const decimalToFraction = (decimal) => {\r\n // 1.5\r\n const stringify = `${decimal}`;\r\n const { 0: integer, 1: float } = stringify.split(\".\");\r\n let returnString = float ? \"\" : integer;\r\n\r\n if (float) {\r\n let numerator = stringify.includes(\".\")\r\n ? stringify.replace(/\\d+[.]/, \"\")\r\n : 0;\r\n let denominator = Math.pow(\r\n 10,\r\n numerator.toString().replace(\"-\", \"\").length\r\n ); // 10\r\n if (decimal >= 1) {\r\n numerator = +numerator + Math.floor(decimal) * denominator;\r\n } else if (decimal <= -1) {\r\n numerator = +numerator + Math.ceil(decimal) * denominator;\r\n }\r\n\r\n let x = Math.abs(gcd(numerator, denominator));\r\n const displayTop = numerator / x - (denominator / x) * +integer;\r\n if (+integer > 0)\r\n returnString = `${integer} ${displayTop}/${denominator / x}`;\r\n else returnString = `${numerator / x}/${denominator / x}`;\r\n }\r\n\r\n return returnString;\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport const start = async ({\r\n integrationParams = [],\r\n showFailureAlert,\r\n ...rest\r\n}) => {\r\n try {\r\n const response = await axios.post(\"/api/v1/configurator/start\", {\r\n integrationParams,\r\n ...rest,\r\n });\r\n\r\n const { prepare, initialize, ui } = response?.data?.result || {};\r\n\r\n return { prepare, initialize, ui };\r\n } catch (error) {\r\n console.error(error);\r\n showFailureAlert(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const configure = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/configurator/configure\", body);\r\n\r\n if (res.status !== 200) throw Error(res.statusText);\r\n return res;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const finish = async (body) => {\r\n try {\r\n const response = await axios.post(\"/api/v1/configurator/finish\", body);\r\n return response;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import React, { useRef, useEffect, useState } from \"react\";\r\nimport { useContext, useCallback, useMemo } from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../UI/forms/Field\";\r\nimport Checkbox from \"../UI/forms/Checkbox\";\r\nimport { Box } from \"reflexbox\";\r\nimport Card from \"../UI/Card\";\r\nimport { Body } from \"../UI/Text\";\r\nimport Radio from \"../UI/forms/Radio\";\r\nimport Range from \"../UI/forms/Range\";\r\nimport * as constants from \"../../modules/constants\";\r\nimport { configure } from \"../../requests/apiRequests\";\r\nimport Button from \"../UI/Button\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nconst { StayOnScreenRule, StayOnTab, MoveTabAndScreenRule } =\r\n\tconstants.AUTO_CONTINUE_MODE;\r\n\r\nconst FormField = ({\r\n\tScreenOption,\r\n\tanimateIndex,\r\n\tlastOptionIndex,\r\n\ttooltip,\r\n}) => {\r\n\tconst theme = useTheme();\r\n\tconst { productId } = useParams();\r\n\r\n\tconst {\r\n\t\tIsRequired,\r\n\t\tID,\r\n\t\tIsEnabled,\r\n\t\tName: name,\r\n\t\tSelectableValues,\r\n\t\tRanges,\r\n\t\tDisplayFormat,\r\n\t\tDisplayType,\r\n\t\tCaption,\r\n\t\tAutoContinueMode,\r\n\t\tIsVisible,\r\n\t\tValue,\r\n\t} = ScreenOption || {};\r\n\r\n\tconst Name = useMemo(() => {\r\n\t\treturn name.replace('[\"', \"_\").replace('\"]', \"\");\r\n\t}, [name]);\r\n\r\n\tconst { Increment, Min, Max } = Ranges?.[0] || {};\r\n\r\n\tconst type = DisplayType?.toLowerCase();\r\n\tconst caption = Caption?.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\r\n\tconst [field] = useField(Name);\r\n\r\n\tconst { platform } = useContext(UserContext);\r\n\tconst { requireHttps } = platform || {};\r\n\r\n\tconst { optionToFocus, setApi, api, setOptionToFocus, sessionId, setACMode } =\r\n\t\tuseContext(ConfiguratorContext);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (optionToFocus === ID && !field.value) {\r\n\t\t\tif (!!ref.current?.focus) {\r\n\t\t\t\tref.current.focus();\r\n\r\n\t\t\t\tref.current.scrollIntoView({ block: \"end\" });\r\n\t\t\t}\r\n\t\t}\r\n\t}, [ID, optionToFocus, field.value]);\r\n\r\n\tconst runSubmit = useCallback(\r\n\t\tasync ({ value }) => {\r\n\t\t\tconst type = DisplayType.toLowerCase();\r\n\t\t\tif (type === constants.CHECKBOX) value = value ? \"True\" : \"False\";\r\n\t\t\tif (type === constants.NUMERIC_TEXTBOX) value = `${value}`;\r\n\r\n\t\t\tconst _res = await configure({\r\n\t\t\t\tsessionId,\r\n\t\t\t\tid: ID || sessionId,\r\n\t\t\t\tvalue: value || \"\",\r\n\t\t\t\trequireHttps,\r\n\t\t\t\tproductId,\r\n\t\t\t});\r\n\t\t\tsetApi(_res?.data);\r\n\r\n\t\t\tsetOptionToFocus(_res?.data?.d?.OptionToFocus);\r\n\t\t},\r\n\t\t[\r\n\t\t\tDisplayType,\r\n\t\t\tID,\r\n\t\t\tproductId,\r\n\t\t\trequireHttps,\r\n\t\t\tsessionId,\r\n\t\t\tsetApi,\r\n\t\t\tsetOptionToFocus,\r\n\t\t]\r\n\t);\r\n\r\n\tconst ref = useRef(null);\r\n\tconst { setFieldValue } = useFormikContext();\r\n\r\n\tconst [shouldSubmit, setShouldSubmit] = useState(null);\r\n\r\n\tconst throttle = useRef(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tswitch (shouldSubmit) {\r\n\t\t\tcase 0:\r\n\t\t\t\tclearTimeout(throttle.current);\r\n\t\t\t\tthrottle.current = null;\r\n\t\t\t\tsetShouldSubmit(1);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1:\r\n\t\t\t\tif (throttle.current) {\r\n\t\t\t\t\tif (document.activeElement.id === ref.current.id) {\r\n\t\t\t\t\t\tsetShouldSubmit(0);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst timeout = setTimeout(() => {\r\n\t\t\t\t\t\tclearTimeout(throttle.current);\r\n\r\n\t\t\t\t\t\tsetShouldSubmit(2);\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t\tthrottle.current = timeout;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\t// if (type === constants.NUMERIC_CONTROL) {\r\n\t\t\t\t// runSubmit({ value: decimalToFraction(field.value) });\r\n\t\t\t\t// }\r\n\t\t\t\trunSubmit({ value: field.value });\r\n\t\t\t\tclearTimeout(throttle.current);\r\n\t\t\t\tsetShouldSubmit(null);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrottle.current = null;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}, [runSubmit, shouldSubmit, field.value]);\r\n\r\n\tconst onChange = useCallback(\r\n\t\t(e) => {\r\n\t\t\tsetFieldValue(Name, e.target.value);\r\n\t\t\tif (shouldSubmit === 1) setShouldSubmit(0);\r\n\t\t\telse setShouldSubmit(1);\r\n\t\t},\r\n\t\t[Name, setFieldValue, shouldSubmit]\r\n\t);\r\n\r\n\tconst fieldProps = useMemo(() => {\r\n\t\tconst ret = {\r\n\t\t\trequired: IsRequired,\r\n\t\t\tdisabled: !!!IsEnabled,\r\n\t\t\tautoFocus:\r\n\t\t\t\toptionToFocus === ID && !api?.d?.IsExecutionComplete && !field.value,\r\n\t\t\tname: Name,\r\n\t\t\tonFocus: (e) => {\r\n\t\t\t\tsetACMode(AutoContinueMode);\r\n\t\t\t\tsetOptionToFocus(ID);\r\n\t\t\t},\r\n\t\t\tlabelText: caption,\r\n\t\t\tid: ID,\r\n\t\t\tonChange: (e) => setFieldValue(field.name, e.target.value),\r\n\t\t\tref,\r\n\t\t\ttooltip,\r\n\t\t\tcheckedValue: field.value || Value,\r\n\t\t\t...field,\r\n\t\t};\r\n\r\n\t\tswitch (AutoContinueMode) {\r\n\t\t\tcase StayOnScreenRule:\r\n\t\t\t\t// Do nothing\r\n\t\t\t\t// OR\r\n\t\t\t\t// Test if this will move to the next question\r\n\t\t\t\t// If true, save locally then submit on tab change\r\n\t\t\t\tret.onBlur = onChange;\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase StayOnTab:\r\n\t\t\t\t// Scroll to next line\r\n\t\t\t\tret.onBlur = onChange;\r\n\t\t\t\tbreak;\r\n\t\t\tcase MoveTabAndScreenRule:\r\n\t\t\t\t// Check if the last screenOption on the next page\r\n\t\t\t\t// is the one that has focus then move the page\r\n\t\t\t\tret.onChange = onChange;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn ret;\r\n\t}, [\r\n\t\tAutoContinueMode,\r\n\t\tID,\r\n\t\tIsEnabled,\r\n\t\tIsRequired,\r\n\t\tName,\r\n\t\tapi,\r\n\t\tValue,\r\n\t\tcaption,\r\n\t\tfield,\r\n\t\tonChange,\r\n\t\toptionToFocus,\r\n\t\tsetACMode,\r\n\t\tsetFieldValue,\r\n\t\tsetOptionToFocus,\r\n\t\ttooltip,\r\n\t]);\r\n\r\n\tconst radioProps = useMemo(\r\n\t\t() => ({\r\n\t\t\tinnerRef: ref,\r\n\t\t\tanimateIndex,\r\n\t\t\tlastOptionIndex,\r\n\t\t\tcheckedValue: field.value,\r\n\t\t}),\r\n\t\t[animateIndex, lastOptionIndex, field.value]\r\n\t);\r\n\r\n\tconst options = useMemo(() => {\r\n\t\tconst opts = [];\r\n\r\n\t\tfor (let val of SelectableValues) {\r\n\t\t\tif (!val.IsVisible) break;\r\n\t\t\topts.push(\r\n\t\t\t\t\r\n\t\t\t\t\t{val.Caption}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn opts;\r\n\t}, [IsEnabled, SelectableValues]);\r\n\r\n\tif (!IsVisible) return null;\r\n\r\n\tswitch (type) {\r\n\t\tcase constants.DROPDOWN:\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{options}\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase constants.RADIO_HORIZTONAL:\r\n\t\t\treturn (\r\n\t\t\t\t
\r\n\t\t\t\t\t ({\r\n\t\t\t\t\t\t\tvalue: val.Value,\r\n\t\t\t\t\t\t\tlabel: (\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\tsetFieldValue(field.name, val.Value);\r\n\t\t\t\t\t\t\t\t\t\trunSubmit({\r\n\t\t\t\t\t\t\t\t\t\t\tvalue: val.Value,\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tdisabled={!val.IsEnabled || !!!IsEnabled}\r\n\t\t\t\t\t\t\t\t\tstyle={{ display: val.IsVisible ? undefined : \"none\" }}\r\n\t\t\t\t\t\t\t\t\tcolor={\r\n\t\t\t\t\t\t\t\t\t\tval.Value !== field.value ? theme.gray : theme.secondary\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{val.Caption}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t}))}\r\n\t\t\t\t\t/>\r\n\t\t\t\t
\r\n\t\t\t);\r\n\r\n\t\tcase constants.NUMERIC_TEXTBOX:\r\n\t\t\tlet _fv = type === \"number\" ? field.value.replace(\",\", \"\") : field.value;\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase constants.TEXTBOX:\r\n\t\t\tlet formattedValue =\r\n\t\t\t\ttype === \"number\" ? field.value.replace(\",\", \"\") : field.value;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase constants.CHECKBOX:\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t {}}\r\n\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\tsetFieldValue(field.name, !field.value);\r\n\t\t\t\t\t\t\treturn runSubmit({\r\n\t\t\t\t\t\t\t\tvalue: !field.value,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase constants.IMAGE_TEXT_HORIZONTAL:\r\n\t\t\treturn (\r\n\t\t\t\t ({\r\n\t\t\t\t\t\tvalue: val.Value,\r\n\t\t\t\t\t\tlabel: (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\tsetFieldValue(field.name, val.Value);\r\n\t\t\t\t\t\t\t\t\treturn !val.IsEnabled || !!!IsEnabled\r\n\t\t\t\t\t\t\t\t\t\t? undefined\r\n\t\t\t\t\t\t\t\t\t\t: runSubmit({\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: val.Value,\r\n\t\t\t\t\t\t\t\t\t\t });\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{val.Caption}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{val.Caption}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t}))}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\r\n\t\tcase constants.TYPEABLE_DROPDOWN:\r\n\t\t\treturn (\r\n\t\t\t\t runSubmit({ value: e.target.value })}\r\n\t\t\t\t\ttypeableSelect\r\n\t\t\t\t\toptions={[\r\n\t\t\t\t\t\t,\r\n\t\t\t\t\t\t...options,\r\n\t\t\t\t\t]}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\r\n\t\tcase constants.NUMERIC_CONTROL:\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\r\n\t\tcase constants.IMAGE_DROPDOWN:\r\n\t\t\treturn (\r\n\t\t\t\t ({\r\n\t\t\t\t\t\tvalue: val.Value,\r\n\t\t\t\t\t\tlabel: (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\tif (!val.IsEnabled || !!!IsEnabled) return undefined;\r\n\t\t\t\t\t\t\t\t\tsetFieldValue(field.name, val.Value);\r\n\t\t\t\t\t\t\t\t\treturn runSubmit({\r\n\t\t\t\t\t\t\t\t\t\tvalue: val.Value,\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{val.Caption}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{val.Caption}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t}))}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\nexport default FormField;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { useMemo } from \"react\";\r\nimport { Flex } from \"reflexbox\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport * as yup from \"yup\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormField from \"./FormField\";\r\nimport styled from \"styled-components\";\r\nimport Loading from \"../UI/Loading\";\r\n\r\nconst AnimatedField = styled(Flex)`\r\n flex-direction: column;\r\n width: 100%;\r\n opacity: 1;\r\n position: relative;\r\n @keyframes slide-up {\r\n 0% {\r\n opacity: 0;\r\n top: 10rem;\r\n }\r\n\r\n 100% {\r\n opacity: 1;\r\n top: 0;\r\n }\r\n }\r\n\r\n opacity: 1;\r\n position: relative;\r\n\r\n ${({\r\n apiCurrentPage,\r\n optionIndex,\r\n numItems,\r\n optionToFocus,\r\n id,\r\n hasValue,\r\n value,\r\n }) => {\r\n if (!apiCurrentPage) return \"\";\r\n if (optionIndex + 1 < numItems && optionToFocus !== id) return \"\";\r\n if (hasValue && value !== \"default\" && value !== \"\" && optionToFocus !== id)\r\n return \".animated-radio {animation-name: unset !important;}\";\r\n return `animation-name: slide-up; animation-duration: 200ms;`;\r\n }}\r\n ${({ hasValue, value }) => {\r\n if (hasValue && value !== \"default\" && value !== \"\")\r\n return `\r\n .animated-radio {\r\n animation-name: unset !important;\r\n }\r\n `;\r\n }}\r\n`;\r\n\r\nconst FormComponent = ({ isLoading }) => {\r\n const { api, currentPage, optionToFocus } = useContext(ConfiguratorContext);\r\n\r\n const [initialValues, setInitialValues] = useState({});\r\n const [validationSchema, setSchema] = useState(yup.object().shape({}));\r\n\r\n const apiCurrentPage = useMemo(() => {\r\n return api?.d?.Pages?.[currentPage];\r\n }, [api, currentPage]);\r\n\r\n const screens = useMemo(() => {\r\n if (!apiCurrentPage) return [];\r\n const options = [];\r\n const { Screens = [] } = apiCurrentPage || {};\r\n\r\n Screens.forEach((Screen) => {\r\n const { ScreenOptions = [], InformationLink, IsVisible } = Screen || {};\r\n if (!!IsVisible)\r\n ScreenOptions.forEach((ScreenOption, optionIndex) => {\r\n const { ID, IsVisible, Value } = ScreenOption;\r\n if (!!IsVisible)\r\n options.push(\r\n \r\n \r\n \r\n );\r\n });\r\n });\r\n\r\n return options;\r\n }, [apiCurrentPage, optionToFocus]);\r\n\r\n useEffect(() => {\r\n let vals = {};\r\n let validation = {};\r\n const obj = {\r\n numericcontrol: \"number\",\r\n numerictextbox: \"number\",\r\n dropdown: \"string\",\r\n radiobuttonhorizontal: \"string\",\r\n imageandtexthorizontal: \"string\",\r\n typeabledropdown: \"string\",\r\n imagedropdown: \"string\",\r\n textbox: \"string\",\r\n checkbox: \"boolean\",\r\n };\r\n if (!api?.d?.Pages?.[currentPage]) return;\r\n\r\n const { Screens = [] } = api?.d?.Pages?.[currentPage] || {};\r\n Screens.forEach((Screen) => {\r\n const { ScreenOptions = [] } = Screen || {};\r\n ScreenOptions.forEach((ScreenOption) => {\r\n const {\r\n IsRequired,\r\n Name: name,\r\n Value,\r\n Ranges,\r\n DisplayType,\r\n } = ScreenOption || {};\r\n let Name = name.replace('[\"', \"_\").replace('\"]', \"\");\r\n\r\n const { DisplayFormat } = ScreenOption || {};\r\n const { Max, Min } = Ranges?.[0] || {};\r\n const type = DisplayType.toLowerCase();\r\n let validationObj = yup?.[obj?.[type]]?.();\r\n if (!DisplayFormat || DisplayFormat !== \"Fraction\") {\r\n if (Min)\r\n validationObj = validationObj.min(\r\n Min,\r\n `This field can be no smaller than ${Min}`\r\n );\r\n if (Max)\r\n validationObj = validationObj.max(\r\n Max,\r\n `This field can be no larger than ${Max}`\r\n );\r\n\r\n if (type === \"numerictextbox\") {\r\n if (Min >= 0)\r\n validationObj = validationObj.positive(\r\n \"Must be a positive number.\"\r\n );\r\n }\r\n }\r\n if (IsRequired && validationObj?.required)\r\n validationObj = validationObj.required(\"This field is required.\");\r\n // if (Increment) validationObj = validationObj.step(Increment);\r\n if (type === \"checkbox\") {\r\n vals[Name] = Value === \"True\";\r\n } else {\r\n vals[Name] = Value;\r\n }\r\n validation[Name] = validationObj;\r\n });\r\n });\r\n\r\n setInitialValues(vals);\r\n setSchema(yup.object().shape(validation));\r\n }, [api, currentPage]);\r\n\r\n return isLoading ? (\r\n \r\n ) : (\r\n \r\n
\r\n {screens}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FormComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledImage = styled.img`\r\n width: 100%;\r\n height: auto;\r\n max-height: 600px;\r\n max-width: 100%;\r\n margin: 0 auto auto;\r\n position: sticky;\r\n top: 174px;\r\n`;\r\n\r\nconst ProductModel = ({ image, altText }) => {\r\n return ;\r\n};\r\n\r\nexport default ProductModel;\r\n","import React, {\r\n useContext,\r\n useCallback,\r\n useState,\r\n useRef,\r\n useEffect,\r\n} from \"react\";\r\nimport _ from \"lodash\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport Button from \"../UI/Button\";\r\nimport { Heading } from \"../UI/Text\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport { configure } from \"../../requests/apiRequests\";\r\nimport formatter from \"../../modules/formatter\";\r\nimport * as constants from \"../../modules/constants\";\r\nimport Loading from \"../UI/Loading\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nconst PagesWrapper = styled(Flex)`\r\n flex: 3;\r\n justify-content: center;\r\n align-items: center;\r\n @media (max-width: 600px) {\r\n .hide {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst Wrapper = styled(Flex)`\r\n width: 100%;\r\n margin-left: -1rem;\r\n flex-direction: column;\r\n max-width: 1168px;\r\n\r\n @media (min-width: 1200px) {\r\n width: calc(100% + 2rem);\r\n margin: 0 auto !important;\r\n }\r\n`;\r\n\r\nconst BlurContainer = styled(Flex)`\r\n background-color: ${({ theme }) => theme.backgroundColor}47;\r\n backdrop-filter: blur(10px);\r\n position: sticky;\r\n top: 0;\r\n z-index: 100;\r\n`;\r\n\r\nconst TopBar = (props) => {\r\n const theme = useTheme();\r\n const { activeUser, platform } = useContext(UserContext);\r\n const { productId } = useParams();\r\n\r\n const { requireHttps } = platform || {};\r\n const {\r\n api,\r\n setApi,\r\n currentPage,\r\n setCurrentPage,\r\n autoContinueMode,\r\n setACMode,\r\n configuratorMode,\r\n } = useContext(ConfiguratorContext);\r\n\r\n const { ConfiguredPrice, Pages = [] } = api?.d || {};\r\n const price = `$${formatter.currency(ConfiguredPrice)}`;\r\n const {\r\n setShowCancel,\r\n finishConfiguration,\r\n sessionId,\r\n setShowDetails,\r\n setShowCreateUser,\r\n } = props || {};\r\n\r\n const [running, setRunning] = useState(false);\r\n\r\n const continueClick = useCallback(\r\n async (_id) => {\r\n let lastScreenOption = {};\r\n const lastValue = api?.d?.Pages?.length - 1;\r\n const maxScreenOptions = api?.d?.Pages[lastValue].Screens.slice()\r\n .reverse()\r\n .find((s) => s.ScreenOptions.length > 0);\r\n\r\n const { ScreenOptions } = maxScreenOptions || {};\r\n const { length } = ScreenOptions || [];\r\n const { [length - 1]: _lastScreenOption } = ScreenOptions || {};\r\n lastScreenOption = _lastScreenOption;\r\n if (!lastScreenOption?.Value) {\r\n const element = document.getElementById(lastScreenOption.ID);\r\n lastScreenOption.Value = element?.value || \"\";\r\n }\r\n\r\n const id = document.activeElement.id;\r\n const value = document.activeElement.value;\r\n\r\n setACMode(autoContinueMode);\r\n setRunning(true);\r\n const res = await configure({\r\n sessionId,\r\n id,\r\n value,\r\n requireHttps,\r\n productId,\r\n });\r\n setApi(res.data);\r\n setRunning(false);\r\n\r\n setCurrentPage(res?.data?.d?.Pages?.length - 1);\r\n },\r\n [\r\n api,\r\n autoContinueMode,\r\n requireHttps,\r\n sessionId,\r\n setACMode,\r\n setApi,\r\n setCurrentPage,\r\n productId,\r\n ]\r\n );\r\n\r\n const [isFinishing, setFinishing] = useState(false);\r\n\r\n const onArrowClick = useCallback(\r\n (action) => {\r\n if (action === \"next\" && currentPage + 1 >= Pages?.length) return;\r\n if (action === \"previous\" && currentPage === 0) return;\r\n setCurrentPage(currentPage + (action === \"next\" ? 1 : -1));\r\n },\r\n [Pages, currentPage, setCurrentPage]\r\n );\r\n\r\n const finishClick = useCallback(async () => {\r\n if (!activeUser) setShowCreateUser(true);\r\n else {\r\n setFinishing(true);\r\n await finishConfiguration({ sessionId });\r\n }\r\n }, [activeUser, finishConfiguration, sessionId, setShowCreateUser]);\r\n\r\n const listener = useCallback(\r\n (e) => {\r\n // Trigger the button element with a click\r\n if (e.key === \"Enter\") {\r\n e.preventDefault();\r\n if (api?.d?.IsExecutionComplete && finishRef.current) {\r\n setTimeout(() => finishClick(), 10);\r\n } else if (continueRef.current) {\r\n setTimeout(() => continueClick(document.activeElement?.id), 10);\r\n }\r\n }\r\n },\r\n [api, continueClick, finishClick]\r\n );\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"keypress\", listener);\r\n return () => {\r\n document.removeEventListener(\"keypress\", listener);\r\n };\r\n }, [listener]);\r\n\r\n const continueRef = useRef(null);\r\n const finishRef = useRef(null);\r\n\r\n const [numPages, setNumPages] = useState(1);\r\n const [range, setRange] = useState([1, 2, 3, 4]);\r\n\r\n const getNumPages = useCallback(() => {\r\n let a = +api?.d?.Pages?.length || 0 / 4;\r\n if (a < 1) return 1;\r\n return Math.ceil(a);\r\n }, [api]);\r\n\r\n useEffect(() => {\r\n const newPages = getNumPages();\r\n\r\n if (newPages > 4) {\r\n let _pageNum = currentPage > 3 ? currentPage : 3;\r\n if (_pageNum > newPages - 2) _pageNum = newPages - 1;\r\n setRange(_.range(_pageNum - 2, _pageNum + 2));\r\n } else {\r\n setRange(_.range(1, newPages + 1));\r\n }\r\n if (newPages !== numPages) setNumPages(newPages);\r\n }, [getNumPages, numPages, currentPage]);\r\n\r\n const handleArrowClick = useCallback(\r\n (direction) => {\r\n let newOffset = currentPage;\r\n\r\n switch (direction) {\r\n case \"right\":\r\n if (currentPage < numPages) setCurrentPage(currentPage + 1);\r\n newOffset = +currentPage + 1;\r\n break;\r\n case \"left\":\r\n if (currentPage > 1) setCurrentPage(currentPage - 1);\r\n newOffset = +currentPage - 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (newOffset < 0) return (newOffset = 0);\r\n if (newOffset / 4 >= getNumPages(api?.d?.Pages?.length || 0, 4))\r\n return (newOffset = currentPage);\r\n setCurrentPage(newOffset);\r\n },\r\n [api, currentPage, getNumPages, numPages, setCurrentPage]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n Total Price: {price}\r\n \r\n \r\n \r\n setShowCancel(true)}\r\n color={theme.gray}\r\n >\r\n Cancel\r\n \r\n \r\n\r\n \r\n setShowDetails(true)}\r\n />\r\n\r\n {!api?.d?.IsExecutionComplete && (\r\n \r\n {running ? (\r\n \r\n ) : (\r\n \"Continue\"\r\n )}\r\n \r\n )}\r\n\r\n {api?.d?.IsExecutionComplete ? (\r\n \r\n {isFinishing ? (\r\n \r\n ) : (\r\n \"Finish\"\r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n {constants.CONFIGURATOR_MODES.Default === configuratorMode && (\r\n \r\n handleArrowClick(\"left\")}\r\n />\r\n {Pages?.map((page, i) => {\r\n if (!range.includes(i + 1)) return null;\r\n const { Caption, IsVisible } = page || {};\r\n return IsVisible ? (\r\n setCurrentPage(i)}\r\n >\r\n {Caption}\r\n \r\n ) : null;\r\n })}\r\n = Pages?.length || 0 ? \"0\" : undefined,\r\n pointerEvents:\r\n currentPage + 1 >= Pages?.length || 0 ? \"none\" : undefined,\r\n }}\r\n disabled={autoContinueMode === 0}\r\n iconName=\"faAngleRight\"\r\n color={theme.secondary}\r\n onClick={() => handleArrowClick(\"right\")}\r\n />\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TopBar;\r\n","import axios from \"axios\";\r\n\r\nexport const login = async ({ username, password, stayLoggedIn }) => {\r\n try {\r\n const { status, data } = await axios.post(\"/api/v1/auth/login\", {\r\n username,\r\n password,\r\n stayLoggedIn,\r\n });\r\n if (status !== 200) {\r\n console.log(data);\r\n return data;\r\n }\r\n return data;\r\n } catch (error) {\r\n console.error(error);\r\n return error;\r\n }\r\n};\r\n\r\nexport const authorize = async ({ token, username, secret }) => {\r\n try {\r\n const { data } = await axios.post(\"/api/v1/auth/authorize\", {\r\n token,\r\n username,\r\n secret,\r\n });\r\n\r\n return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n return error;\r\n }\r\n};\r\n\r\nexport const getSecret = async () => {\r\n try {\r\n const { data, status } = await axios.post(\"/api/v1/auth/getSecret\", {});\r\n const { result: secret } = data || {};\r\n if (status !== 200) throw new Error(\"Cannot generate secret.\");\r\n return secret;\r\n } catch (error) {\r\n console.log(error);\r\n return error;\r\n }\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Flex, Box } from \"reflexbox\";\r\n\r\nexport const CheckboxWrapper = styled.div`\r\n align-items: center;\r\n input {\r\n margin-bottom: -0.25rem;\r\n margin-right: 0.5rem;\r\n transform: translateY(-15%);\r\n &:hover {\r\n border-color: ${({ theme }) => theme.activeStageColor};\r\n }\r\n &.one::after {\r\n content: \"\";\r\n display: block;\r\n width: 6px;\r\n height: 11px;\r\n margin-top: -4px;\r\n border: solid white;\r\n border-width: 0 3px 3px 0;\r\n transform: rotate(45deg);\r\n }\r\n &.two::after {\r\n content: \"\";\r\n display: block;\r\n width: 9px;\r\n height: 9px;\r\n border: solid white;\r\n border-width: 0 3px 3px 0;\r\n transform: rotate(45deg);\r\n }\r\n\r\n &:checked {\r\n &::after {\r\n display: block;\r\n }\r\n }\r\n &.one:checked {\r\n background-color: ${({ theme }) => theme.activeStageColor};\r\n }\r\n &.two:checked {\r\n background-color: ${({ theme }) => theme.accentColor};\r\n }\r\n &:indeterminate {\r\n background-color: ${({ theme }) => theme.activeStageColor};\r\n &::after {\r\n display: block;\r\n width: 8px;\r\n height: 3px;\r\n margin-top: -2px;\r\n border: solid white;\r\n border-width: 0 0 3px 0;\r\n transform: rotate(0);\r\n }\r\n }\r\n &:disabled {\r\n background-color: #dedede;\r\n cursor: not-allowed;\r\n }\r\n }\r\n`;\r\n\r\nexport const CheckboxContainer = styled(Flex)`\r\n flex-wrap: nowrap;\r\n flex-direction: column;\r\n width: 100%;\r\n border: 2px solid ${({ theme }) => theme.borderColor || \"gray\"};\r\n border-radius: ${({ theme }) => `${theme.borderRadius}px` || \"15px\"};\r\n\r\n .table-properties {\r\n padding: 1rem;\r\n border-top: 2px solid ${({ theme }) => theme.borderColor};\r\n transition: 200ms all ease-in-out;\r\n gap: 1rem;\r\n height: 100%;\r\n ${({ open }) => {\r\n if (!open) return \"height: 0px; opacity: 0; padding: 0; margin: 0;\";\r\n }}\r\n svg {\r\n margin-top: 0.25rem;\r\n z-index: 100;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: 200ms all ease-in-out;\r\n transform-origin: center;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n transform: scale(1.1);\r\n }\r\n }\r\n }\r\n overflow: hidden;\r\n`;\r\n\r\nexport const TableWrapper = styled(Box)`\r\n border: 2px solid ${({ theme }) => theme.borderColor || \"gray\"};\r\n border-radius: ${({ theme }) => `${theme.borderRadius}px` || \"15px\"};\r\n width: 100%;\r\n position: relative;\r\n`;\r\n\r\nexport const StyledTable = styled(Flex)`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const RowWrap = styled(Flex)`\r\n flex-direction: column;\r\n position: relative;\r\n border-top: 2px solid ${({ theme }) => theme.borderColor};\r\n\r\n &:last-child {\r\n > div:last-child {\r\n border-radius: 0 0\r\n ${({ theme }) => `${theme.borderRadius}px ${theme.borderRadius}px`};\r\n }\r\n }\r\n &:nth-child(even) {\r\n > div {\r\n background-color: ${({ theme }) => theme.gridRowBackgroundColor};\r\n }\r\n }\r\n &:nth-child(odd) {\r\n > div {\r\n background-color: ${({ theme }) => theme.backgroundColor};\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledRow = styled(Box)`\r\n width: 100%;\r\n > div:last-child {\r\n border-radius: 0 0 ${({ theme }) =>\r\n `${theme.borderRadius}px ${theme.borderRadius}px`};\r\n overflow: hidden;\r\n }\r\n\r\n background-color: inherit;\r\n &.header {\r\n font-weight: bold;\r\n border-bottom: none;\r\n border-radius: ${({ theme }) =>\r\n `${theme.borderRadius}px ${theme.borderRadius}px`} 0 0;\r\n }\r\n \r\n \r\n cursor: ${({ rowClickable }) => (rowClickable ? \"pointer\" : \"auto\")};\r\n color: ${({ theme }) => theme.textDark}};\r\n\r\n \r\n display: inline-flex;\r\n position: relative;\r\n transition: 200ms all ease-in;\r\n \r\n\r\n > div {\r\n ${({ dropdown }) => {\r\n if (dropdown) return \"padding-right: 2rem;\";\r\n }}\r\n width: 100%;\r\n flex: 1;\r\n\r\n display: inline-flex;\r\n \r\n\r\n align-items: center;\r\n justify-content: flex-start;\r\n div {\r\n button {\r\n margin: 0 0.5rem !important;\r\n }\r\n\r\n word-break: inherit;\r\n }\r\n }\r\n #actions {\r\n opacity: 0;\r\n flex-wrap: wrap;\r\n margin: 0 auto;\r\n button {\r\n margin-top: 0.25rem !important;\r\n margin-bottom: 0.25rem !important;\r\n }\r\n }\r\n img {\r\n width: 100%;\r\n }\r\n &:hover {\r\n\r\n z-index: 100;\r\n ${({ expanded, heading, popout, theme }) => {\r\n if (expanded || heading || !popout) return \"\";\r\n return {\r\n position: \"relative\",\r\n zIndex: 2,\r\n transition: \"50ms all ease-out\",\r\n transform: \"scale(1.015)\",\r\n transformOrigin: \"center\",\r\n boxShadow: `0px 10px 10px 5px ${theme.boxShadowColor}14`,\r\n };\r\n }};\r\n\r\n #actions {\r\n opacity: 1;\r\n }\r\n }\r\n @media (max-width: 800px) {\r\n #actions {\r\n opacity: 1 !important;\r\n z-index:1;\r\n align-items: center;\r\n justify-content: center;\r\n button {\r\n margin: 0.5rem 0;\r\n }\r\n }\r\n }\r\n &:active {\r\n transform: ${({ rowClickable }) => (rowClickable ? \"scale(1)\" : \"\")};\r\n box-shadow: ${({ rowClickable }) => (rowClickable ? \"none\" : \"\")};\r\n }\r\n \r\n`;\r\n\r\nexport const StyledDescriptor = styled.div`\r\n flex: ${({ size }) => `1 1 ${size}%`};\r\n max-width: ${({ size }) => `${size}%`};\r\n overflow-x: hidden;\r\n padding: 0.75rem 1rem;\r\n color: ${({ theme }) => theme.textDark};\r\n`;\r\n\r\nexport const StyledCollapsible = styled.div`\r\n top: 0px;\r\n bottom: 0px;\r\n right: 0px;\r\n padding: 0.75rem;\r\n position: absolute;\r\n justify-content: center;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const StyledCheckbox = styled.div`\r\n top: 0px;\r\n bottom: 0px;\r\n left: 0px;\r\n padding: 0.75rem;\r\n position: absolute;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 10px;\r\n`;\r\n\r\nexport const TableResetContainer = styled.div`\r\n position: absolute;\r\n right: 0;\r\n z-index: 100;\r\n top: 0.5rem;\r\n height: 48px;\r\n width: 32px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: 200ms all ease-in-out;\r\n transform-origin: center;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n transform: scale(1.1);\r\n }\r\n`;\r\n\r\nexport const AddNewRow = ({ rowProps, ...props }) => (\r\n \r\n);\r\n\r\nexport const DetailRow = styled(Box)`\r\n flex: 1;\r\n\r\n @keyframes open {\r\n 0% {\r\n opacity: 0;\r\n height: 0px;\r\n }\r\n 99% {\r\n opacity: 1;\r\n height: ${({ count }) => (count - 1) * 2}rem;\r\n }\r\n 100% {\r\n height: auto;\r\n }\r\n }\r\n @keyframes close {\r\n 0% {\r\n opacity: 1;\r\n height: auto;\r\n }\r\n 1% {\r\n opacity: 0;\r\n height: ${({ count }) => (count - 1) * 2}rem;\r\n }\r\n 100% {\r\n height: 0px;\r\n }\r\n }\r\n\r\n > div > div {\r\n padding: 0 1rem 0.5rem 1rem;\r\n }\r\n > div > div > div > div {\r\n flex: 1;\r\n }\r\n`;\r\n\r\n// > div {\r\n// ${({ expanded }) => {\r\n// if (!expanded)\r\n// return `\r\n// height: 0px; overflow: hidden; opacity: 0; padding: 0;`;\r\n// else return \"height: auto;\";\r\n// }}\r\n// animation-name: ${({ expanded }) => (!expanded ? \"close\" : \"open\")};\r\n// animation-duration: 200ms;\r\n// padding: 0;\r\n// }\r\n","import {\r\n createContext,\r\n useMemo,\r\n useReducer,\r\n useCallback,\r\n useState,\r\n} from \"react\";\r\n\r\nexport const RowDisplayContext = createContext({});\r\n\r\nexport const ColumnDisplayContext = createContext({});\r\n\r\nexport const useTableContext = (\r\n processedColumns,\r\n device,\r\n includeDropdown,\r\n _onRowClick,\r\n selections,\r\n popout\r\n) => {\r\n const [columnOrder, _setColumnOrder] = useState(() => [\r\n ...processedColumns.keys(),\r\n ]);\r\n const setColumnOrder = useCallback(_setColumnOrder, [_setColumnOrder]);\r\n\r\n const initialVisibility = useMemo(() => {\r\n let o = {};\r\n processedColumns.forEach((entry) => {\r\n let size = getSize(entry.size, device);\r\n o[entry.id] = [\r\n entry.header || entry.data || entry.id,\r\n size > 0 ? 1 : size < 0 ? 0 : 2,\r\n ];\r\n });\r\n return o;\r\n }, [processedColumns, device]);\r\n\r\n const [_refresh, forceVisRefresh] = useReducer((a, _) => a + 1, 0);\r\n const [configuredVisibility, setConfiguredVisibility] = useReducer(\r\n (state, [propertyName, visibility]) => {\r\n forceVisRefresh();\r\n if (visibility === -1) {\r\n delete state[propertyName];\r\n return state;\r\n } else if (visibility === -2) {\r\n return {};\r\n }\r\n return { ...state, [propertyName]: visibility };\r\n },\r\n {}\r\n );\r\n\r\n const [visibleIndices, dropdownIndices, hasDropdown] = useMemo(\r\n () =>\r\n getVisibility(\r\n columnOrder,\r\n processedColumns,\r\n initialVisibility,\r\n configuredVisibility,\r\n _refresh\r\n ),\r\n [\r\n columnOrder,\r\n processedColumns,\r\n initialVisibility,\r\n configuredVisibility,\r\n _refresh,\r\n ]\r\n );\r\n const dropdown = hasDropdown && includeDropdown;\r\n const getVisibleIndices = useCallback(() => visibleIndices, [visibleIndices]);\r\n\r\n const [configuredSizing, sizingReducer] = useReducer(\r\n (state, [propertyName, size]) => {\r\n if (size === -1) {\r\n delete state[propertyName];\r\n return state;\r\n } else if (size === -2) {\r\n return {};\r\n }\r\n return { ...state, [propertyName]: size };\r\n },\r\n {}\r\n );\r\n const arbitrarySizeReducer = useCallback(\r\n (change) => sizingReducer(change),\r\n [sizingReducer]\r\n );\r\n const [relativeSizes, arbitrarySizes, totalSizes] = useMemo(\r\n () => getSizes(processedColumns, device, visibleIndices, configuredSizing),\r\n [processedColumns, device, visibleIndices, configuredSizing]\r\n );\r\n\r\n const [dropdownRow, setDropdownRow] = useState(\"\");\r\n const onRowClick = useCallback(\r\n (row, e) => {\r\n if (dropdown) {\r\n const { id } = row;\r\n if (id !== dropdownRow) setDropdownRow(id);\r\n else setDropdownRow(\"\");\r\n return;\r\n }\r\n if (_onRowClick) return _onRowClick(row, e);\r\n },\r\n [dropdownRow, setDropdownRow, _onRowClick, dropdown]\r\n );\r\n const rowContext = useMemo(\r\n () => ({\r\n dropdown,\r\n visibleIndices,\r\n dropdownIndices,\r\n dropdownRow,\r\n onRowClick,\r\n clickable: !!_onRowClick || dropdown,\r\n selections,\r\n popout,\r\n }),\r\n [\r\n dropdown,\r\n visibleIndices,\r\n dropdownIndices,\r\n dropdownRow,\r\n onRowClick,\r\n _onRowClick,\r\n selections,\r\n popout,\r\n ]\r\n );\r\n const columnContext = useMemo(\r\n () => ({\r\n relativeSizes,\r\n arbitrarySizes,\r\n totalSizes,\r\n arbitrarySizeReducer,\r\n columnOrder,\r\n setColumnOrder,\r\n getVisibleIndices,\r\n }),\r\n [\r\n relativeSizes,\r\n arbitrarySizes,\r\n totalSizes,\r\n arbitrarySizeReducer,\r\n columnOrder,\r\n setColumnOrder,\r\n getVisibleIndices,\r\n ]\r\n );\r\n return [\r\n rowContext,\r\n columnContext,\r\n {\r\n initialVisibility,\r\n configuredVisibility,\r\n setConfiguredVisibility,\r\n configuredSizing,\r\n },\r\n ];\r\n};\r\nconst deviceSizes = [\"xl\", \"lg\", \"md\", \"sm\", \"xs\"];\r\nconst getSize = (size, device) => {\r\n if (typeof size === \"number\") {\r\n return size;\r\n }\r\n let colSize;\r\n deviceSizes.every((deviceSize) => {\r\n if (device[deviceSize] && (colSize = size[deviceSize]) !== undefined) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n return colSize;\r\n};\r\n\r\nfunction getVisibility(\r\n columnOrder,\r\n processedColumns,\r\n initialVisibility,\r\n configuredVisibility\r\n) {\r\n let visibleIndices = [],\r\n dropdownIndices = [];\r\n for (const index of columnOrder) {\r\n let column = processedColumns[index],\r\n id = column.id;\r\n let columnVisibility =\r\n id in configuredVisibility\r\n ? configuredVisibility[id][1]\r\n : initialVisibility[id][1];\r\n if (columnVisibility === 1) {\r\n visibleIndices.push(index);\r\n } else if (columnVisibility === 2) {\r\n dropdownIndices.push(index);\r\n }\r\n }\r\n return [visibleIndices, dropdownIndices, dropdownIndices.length > 0];\r\n}\r\n\r\nfunction getSizes(processedColumns, device, visibleIndices, configuredSizing) {\r\n let totalSizes = 0;\r\n const arbitrarySizes = {};\r\n visibleIndices.forEach((index) => {\r\n let { id, size } = processedColumns[index];\r\n let colSize;\r\n if (id in configuredSizing) {\r\n colSize = configuredSizing[id];\r\n } else {\r\n colSize = getSize(size, device);\r\n if (colSize <= 0) colSize = 1;\r\n }\r\n totalSizes += colSize;\r\n arbitrarySizes[id] = colSize;\r\n });\r\n let relativeSizes = {};\r\n Object.entries(arbitrarySizes).forEach(([id, size]) => {\r\n relativeSizes[id] = (100 * size) / totalSizes;\r\n });\r\n return [relativeSizes, arbitrarySizes, totalSizes];\r\n}\r\n","import React from \"react\";\r\nimport { StyledRow, StyledDescriptor, RowWrap } from \"./styles-table.jsx\";\r\nimport Shimmer from \"../Shimmer\";\r\nimport { useContext, useMemo } from \"react\";\r\nimport { RowDisplayContext, ColumnDisplayContext } from \"./TableContext.jsx\";\r\n\r\n/**\r\n * See the README.md for detailed documentation\r\n */\r\n\r\nconst Table = ({ instance }) => {\r\n const { visibleIndices } = useContext(RowDisplayContext);\r\n const { relativeSizes } = useContext(ColumnDisplayContext);\r\n const columns = instance.getAllColumns();\r\n const rowContent = useMemo(\r\n () => (\r\n \r\n {visibleIndices.map((index) => {\r\n let id = columns[index].columnDef.id;\r\n let size = relativeSizes[id];\r\n return (\r\n \r\n  \r\n \r\n );\r\n })}\r\n \r\n ),\r\n [visibleIndices, relativeSizes, columns]\r\n );\r\n return (\r\n <>\r\n {[...Array(12).keys()].map((i) => (\r\n {rowContent}\r\n ))}\r\n \r\n );\r\n};\r\nexport default Table;\r\n","import React, { useContext } from \"react\";\r\nimport { useRef, useState, useMemo, useCallback } from \"react\";\r\nimport { flexRender } from \"@tanstack/react-table\";\r\nimport _ from \"lodash\";\r\nimport { StyledRow } from \"./styles-table.jsx\";\r\nimport { RowDisplayContext } from \"./TableContext\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { PagerContext } from \"../Pager/PagerContext\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faArrowUp, faArrowDown } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { ColumnDisplayContext } from \"./TableContext\";\r\n\r\nconst StyledHeading = styled.span`\r\n flex: 1 1 ${({ relativeSize }) => relativeSize}%;\r\n max-width: ${({ relativeSize }) => relativeSize}%;\r\n padding: 1rem;\r\n position: relative;\r\n white-space: nowrap;\r\n color: ${({ theme }) => theme.textDark}};\r\n &:last-of-type {\r\n padding-right: ${({ hasDropdown }) => (hasDropdown ? \"3rem\" : \"1rem\")};\r\n }\r\n &:first-child .widthDrag {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst TableHeader = React.memo(\r\n ({ sort, header, id, index, last, hasDropdown, ...props }) => {\r\n const theme = useTheme();\r\n const {\r\n relativeSizes,\r\n arbitrarySizes,\r\n arbitrarySizeReducer,\r\n columnOrder,\r\n setColumnOrder,\r\n getVisibleIndices,\r\n } = useContext(ColumnDisplayContext);\r\n const relativeSize = relativeSizes[id],\r\n arbitrarySize = arbitrarySizes[id],\r\n lastArbitrarySize = last !== null ? arbitrarySizes[last[1]] : 0;\r\n\r\n const { order } = useContext(PagerContext);\r\n\r\n const headingRef = useRef(null);\r\n const throttle = useRef(null);\r\n const setWidthModifier = useCallback(\r\n (newSize, newLastSize) => {\r\n clearTimeout(throttle.current);\r\n throttle.current = setTimeout(() => {\r\n arbitrarySizeReducer([id, newSize]);\r\n arbitrarySizeReducer([last[1], newLastSize]);\r\n throttle.current = null;\r\n }, 1);\r\n },\r\n [id, last, arbitrarySizeReducer]\r\n );\r\n const [hover, setHover] = useState(0);\r\n const start = useRef(0);\r\n const [dragging, , onMouseDown] = useCustomDrag(\r\n () => {\r\n start.current = headingRef.current.getBoundingClientRect().left;\r\n },\r\n (e, cursor) => {\r\n setHover(cursor.x - start.current);\r\n },\r\n (e, cursor) => {\r\n setHover(0);\r\n let diff =\r\n (arbitrarySize * (cursor.x - start.current)) /\r\n headingRef.current.clientWidth;\r\n if (diff >= 0 && diff <= arbitrarySize) return;\r\n const visibleIndices = getVisibleIndices();\r\n let cutIndex = visibleIndices.indexOf(index);\r\n let addIndex = cutIndex;\r\n const sizes = Object.values(arbitrarySizes);\r\n const dir = diff > arbitrarySize ? 1 : -1;\r\n if (diff > arbitrarySize) diff -= arbitrarySize;\r\n diff = Math.abs(diff);\r\n while (addIndex + dir >= 0 && addIndex + dir < columnOrder.length) {\r\n addIndex += dir;\r\n let size = sizes[addIndex];\r\n if (diff < size) {\r\n if (diff < size / 2) addIndex -= dir;\r\n break;\r\n }\r\n diff -= size;\r\n }\r\n cutIndex = columnOrder.indexOf(visibleIndices[cutIndex]);\r\n addIndex = columnOrder.indexOf(visibleIndices[addIndex]);\r\n if (cutIndex === addIndex) return;\r\n setColumnOrder((order) => {\r\n const newOrder = order.slice();\r\n newOrder.splice(cutIndex, 1);\r\n newOrder.splice(addIndex, 0, index);\r\n return newOrder;\r\n });\r\n },\r\n 20\r\n );\r\n\r\n const context = header.getContext();\r\n const renderContent = useMemo(\r\n () =>\r\n header.isPlaceholder\r\n ? null\r\n : flexRender(header.column.columnDef.header, context),\r\n [header.isPlaceholder, header.column.columnDef.header, context]\r\n );\r\n\r\n const sortIcon = () => {\r\n const { 0: orderName, 1: orderDirection } = order || {};\r\n if (orderName !== header.column.id) return null;\r\n if (orderDirection === \"ASC\")\r\n return (\r\n \r\n \r\n \r\n );\r\n else if (orderDirection === \"DESC\")\r\n return (\r\n \r\n \r\n \r\n );\r\n else return null;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {renderContent}\r\n {sortIcon()}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nconst MIN_PIXEL_SIZE = 0;\r\nconst WidthDrag = React.memo(\r\n ({ headingRef, size, prevSize, setWidthModifier }) => {\r\n //const [diff, setDiff] = useState(0);\r\n const start = useRef([size, prevSize]);\r\n const [dragging, , onMouseDown] = useCustomDrag(\r\n () => {\r\n start.current = [\r\n size,\r\n prevSize,\r\n headingRef.current.getBoundingClientRect().left,\r\n headingRef.current.clientWidth,\r\n ];\r\n },\r\n (_, cursor) => {\r\n let [size, prevSize, left, width] = start.current;\r\n const pixelToSize = size / width;\r\n const diff = Math.max(\r\n Math.min(\r\n pixelToSize * (left - cursor.x),\r\n prevSize - pixelToSize * MIN_PIXEL_SIZE\r\n ),\r\n pixelToSize * (MIN_PIXEL_SIZE - width)\r\n );\r\n setWidthModifier(size + diff, prevSize - diff);\r\n },\r\n (_, cursor) => {},\r\n 5\r\n );\r\n const onClick = (e) => {\r\n e.stopPropagation();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nconst StyledDrag = styled(\"div\")`\r\n position: absolute;\r\n left: -0.5rem;\r\n top: 0px;\r\n bottom: 0px;\r\n width: 1rem;\r\n background: inherit;\r\n z-index: 1;\r\n cursor: col-resize;\r\n draggable: true;\r\n &.active {\r\n padding-right: 100px;\r\n }\r\n &.active > div {\r\n background-color: ${({ theme }) =>\r\n theme.activeStageColor || \"blue\"} !important;\r\n }\r\n`;\r\n\r\nconst HoverBar = styled(\"div\").attrs(({ diff }) => ({\r\n style: {\r\n left: `calc(0.5rem - ${diff}px)`,\r\n },\r\n}))`\r\n position: absolute;\r\n top: 0.5rem;\r\n bottom: 0.5rem;\r\n width: 1px;\r\n background-color: ${({ theme }) => theme.borderColor || \"gray\"};\r\n`;\r\n\r\nconst useCustomDrag = (\r\n onpickup = (_) => _,\r\n ondrag = (_) => _,\r\n ondrop = (_) => _,\r\n sensitivity = 5\r\n) => {\r\n const dragState = useRef(0);\r\n const [dragging, setDragging] = useState(false);\r\n const startDrag = useRef({ x: 0, y: 0 });\r\n const drag = useCallback(\r\n (e) => {\r\n e.preventDefault();\r\n if (dragState.current === 1) {\r\n const diff = {\r\n x: e.pageX - startDrag.current.x,\r\n y: e.pageY - startDrag.current.y,\r\n };\r\n if (Math.abs(diff.x) + Math.abs(diff.y) < sensitivity) return;\r\n onpickup(e, { x: e.pageX, y: e.pageY }, startDrag.current);\r\n setDragging(true);\r\n dragState.current = 2;\r\n }\r\n if (dragState.current === 2) {\r\n ondrag(e, { x: e.pageX, y: e.pageY }, startDrag.current);\r\n }\r\n },\r\n [ondrag, onpickup, sensitivity]\r\n );\r\n const drop = useCallback(\r\n (e) => {\r\n e.preventDefault();\r\n if (dragState.current === 2) {\r\n ondrop(e, { x: e.pageX, y: e.pageY }, startDrag.current);\r\n setDragging(false);\r\n }\r\n dragState.current = 0;\r\n document.removeEventListener(\"mousemove\", drag);\r\n document.removeEventListener(\"mouseup\", drop);\r\n },\r\n [drag, ondrop]\r\n );\r\n /*useEffect(() => () => {\r\n document.removeEventListener(\"mousemove\", drag);\r\n document.removeEventListener(\"mouseup\", drop);\r\n }, [drag,drop])*/\r\n return [\r\n dragging,\r\n startDrag,\r\n useCallback(\r\n (e) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (dragState.current === 0) {\r\n startDrag.current = { x: e.pageX, y: e.pageY };\r\n dragState.current = 1;\r\n document.addEventListener(\"mousemove\", drag);\r\n document.addEventListener(\"mouseup\", drop);\r\n }\r\n },\r\n [drag, drop]\r\n ),\r\n ];\r\n};\r\n\r\nconst TableHeaderGroup = React.memo(({ headers, columns }) => {\r\n // headers = headerGroup.headers\r\n const { dropdown, visibleIndices } = useContext(RowDisplayContext);\r\n let last = null;\r\n return (\r\n \r\n {visibleIndices.map((index) => {\r\n const header = headers[index],\r\n id = header.column.columnDef.id;\r\n let temp = last;\r\n last = [index, id];\r\n const { sort } = _.find(columns, (col) => col.id === id);\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n});\r\n\r\nexport default TableHeaderGroup;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { flexRender } from \"@tanstack/react-table\";\r\nimport { StyledDescriptor } from \"./styles-table\";\r\nimport { ColumnDisplayContext } from \"./TableContext\";\r\n\r\nconst TableDescriptor = React.memo(({ cell, selected }) => {\r\n const { relativeSizes } = useContext(ColumnDisplayContext);\r\n const columnDef = cell.column.columnDef;\r\n const size = relativeSizes[columnDef.id];\r\n\r\n const context = cell.getContext();\r\n const renderContent = useMemo(\r\n () => flexRender(columnDef.cell, context),\r\n [columnDef.cell, context]\r\n );\r\n\r\n return (\r\n \r\n {renderContent}\r\n \r\n );\r\n});\r\n\r\nexport default TableDescriptor;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { Body } from \"../Text\";\r\nimport { flexRender } from \"@tanstack/react-table\";\r\nimport {\r\n\tStyledRow,\r\n\tStyledCollapsible,\r\n\tDetailRow,\r\n\tStyledCheckbox,\r\n\tRowWrap,\r\n} from \"./styles-table.jsx\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faChevronUp, faChevronDown } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { RowDisplayContext } from \"./TableContext\";\r\nimport { Checkbox } from \"../forms\";\r\nimport { Flex } from \"reflexbox\";\r\nimport TableDescriptor from \"./TableDescriptor\";\r\n\r\nconst TableRow = React.memo(\r\n\t({ row, headersRef, count, index, open = false }) => {\r\n\t\tconst {\r\n\t\t\tdropdown,\r\n\t\t\tvisibleIndices,\r\n\t\t\tdropdownIndices,\r\n\t\t\tdropdownRow,\r\n\t\t\tonRowClick,\r\n\t\t\tclickable,\r\n\t\t\tselections,\r\n\t\t\tpopout,\r\n\t\t} = useContext(RowDisplayContext);\r\n\t\tconst dropdownSelected = open || dropdownRow === row.id;\r\n\t\tconst [checkbox, checked, onCheckboxClick] = useMemo(() => {\r\n\t\t\tconst _checkbox = selections !== null;\r\n\t\t\tconst _checked =\r\n\t\t\t\t_checkbox && selections.actions.getIndex(row.original) !== -1;\r\n\t\t\tconst _onCheckboxClick = (e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tif (_checked) {\r\n\t\t\t\t\tselections.actions.deselect(row.original);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tselections.actions.select(row.original);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\treturn [_checkbox, _checked, _onCheckboxClick];\r\n\t\t}, [selections, row]);\r\n\r\n\t\tconst cells = row.getAllCells();\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t onRowClick(row, e)}\r\n\t\t\t\t\tdropdown={dropdown}\r\n\t\t\t\t\trowClickable={clickable}\r\n\t\t\t\t\tcheckbox={checkbox}\r\n\t\t\t\t\tpopout={popout}\r\n\t\t\t\t>\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{checkbox && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {}}\r\n\t\t\t\t\t\t\t\t\tas=\"input\"\r\n\t\t\t\t\t\t\t\t\tchecked={checked}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{visibleIndices.map((index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t{dropdown ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{dropdownSelected ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t{dropdownSelected && dropdownIndices && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{dropdownIndices.map((index, i) => {\r\n\t\t\t\t\t\t\tlet header = headersRef.current[index],\r\n\t\t\t\t\t\t\t\theaderContent = header.isPlaceholder\r\n\t\t\t\t\t\t\t\t\t? null\r\n\t\t\t\t\t\t\t\t\t: flexRender(\r\n\t\t\t\t\t\t\t\t\t\t\theader.column.columnDef.header,\r\n\t\t\t\t\t\t\t\t\t\t\theader.getContext()\r\n\t\t\t\t\t\t\t\t\t );\r\n\t\t\t\t\t\t\tlet cell = cells[index],\r\n\t\t\t\t\t\t\t\tid = cell.column.columnDef.id,\r\n\t\t\t\t\t\t\t\tcellContent = flexRender(\r\n\t\t\t\t\t\t\t\t\tcell.column.columnDef.cell,\r\n\t\t\t\t\t\t\t\t\tcell.getContext()\r\n\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\tif (headerContent === null)\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{typeof cellContent === \"string\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\t{cellContent}\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\tcellContent\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{typeof headerContent === \"string\" ? (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{headerContent}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\theaderContent\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t{typeof cellContent === \"string\" ? (\r\n\t\t\t\t\t\t\t\t\t\t{cellContent}\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{cellContent}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport default TableRow;\r\n","import React, { useRef, useContext, useMemo } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\r\nimport { TableWrapper, StyledTable } from \"./styles-table.jsx\";\r\nimport ShimmerRows from \"./ShimmerRows\";\r\nimport TableHeader from \"./TableHeader\";\r\nimport TableRow from \"./TableRow.jsx\";\r\nimport { PagerContext } from \"../Pager/PagerContext\";\r\nimport { RowDisplayContext } from \"./TableContext.jsx\";\r\n\r\n/**\r\n * See the README.md for detailed documentation\r\n */\r\n\r\nconst TableLayout = React.memo(\r\n ({ columns, data, setSorting, isLoading, open }) => {\r\n const { order } = useContext(PagerContext);\r\n\r\n const instance = useReactTable({\r\n data,\r\n columns,\r\n state: {\r\n sorting: order,\r\n },\r\n onSortingChange: setSorting,\r\n getCoreRowModel: getCoreRowModel(),\r\n });\r\n\r\n const headers = instance.getHeaderGroups()[0].headers; // Should only have one header group\r\n const headersRef = useRef(headers);\r\n headersRef.current = headers;\r\n\r\n const { dropdown } = useContext(RowDisplayContext);\r\n\r\n const rows = useMemo(() => {\r\n if (isLoading || !data) return ;\r\n if (data?.length > 0)\r\n return instance\r\n .getRowModel()\r\n .rows.map((row, i) => (\r\n \r\n ));\r\n return null;\r\n }, [data, instance, isLoading, open]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n {rows}\r\n \r\n \r\n );\r\n }\r\n);\r\n\r\nTableLayout.propTypes = {\r\n /**\r\n * The dataset to be displayed on the table. This property should be an array of similar objects.\r\n */\r\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n /** Allows a specific click event to be triggered */\r\n onRowClick: PropTypes.func,\r\n /**\r\n * Definitions of each column in the table.\r\n */\r\n columns: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n data: PropTypes.oneOfType([\r\n // Used to associate a cell with information derived from the dataset\r\n PropTypes.string,\r\n PropTypes.func,\r\n ]),\r\n display: PropTypes.oneOfType([\r\n // Used when customizing the display of unique cells\r\n PropTypes.string,\r\n PropTypes.func,\r\n PropTypes.node,\r\n ]),\r\n header: PropTypes.oneOfType([\r\n // Determines the column's header\r\n PropTypes.string,\r\n PropTypes.func,\r\n ]),\r\n sort: PropTypes.oneOfType([\r\n // Specify whether you want the column to be sortable. Can also define a sorting function\r\n PropTypes.bool,\r\n PropTypes.func,\r\n ]),\r\n size: PropTypes.oneOfType([\r\n // Defines the widths for different device sizes\r\n PropTypes.number,\r\n PropTypes.shape({\r\n xs: PropTypes.number,\r\n sm: PropTypes.number,\r\n md: PropTypes.number,\r\n lg: PropTypes.number,\r\n xl: PropTypes.number,\r\n }),\r\n ]),\r\n id: PropTypes.string, // Holds a unique identifier of the column\r\n })\r\n ).isRequired,\r\n /**\r\n * Optional properties to be fed into the TanStack table.\r\n */\r\n tableOptions: PropTypes.object,\r\n /**\r\n * Optional properties to be fed into the TanStack table instance.\r\n */\r\n instanceOptions: PropTypes.object,\r\n};\r\n\r\nexport default TableLayout;\r\n","import React, { useEffect, useRef, useContext } from \"react\";\r\nimport { Input } from \"../forms\";\r\nimport Button from \"../Button\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faMagnifyingGlass,\r\n faCircleXmark,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport PropTypes from \"prop-types\";\r\nimport styled from \"styled-components\";\r\nimport { PagerContext } from \"../Pager/PagerContext\";\r\n\r\nconst Wrap = styled(Flex)`\r\n [type=\"search\"]::-webkit-search-cancel-button {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n display: none;\r\n }\r\n`;\r\n\r\nconst SearchButton = styled(Button)`\r\n align-items: center;\r\n justify-content: center;\r\n text-align: center;\r\n z-index: 1;\r\n\r\n border-radius: 0px\r\n ${({ theme }) => `${theme.borderRadius}px ${theme.borderRadius}px`} 0px;\r\n`;\r\n\r\nconst SearchIcon = styled(FontAwesomeIcon)`\r\n padding-right: 0.25rem;\r\n`;\r\n\r\nconst DeleteButton = styled(\"span\")`\r\n position: absolute;\r\n display: block;\r\n right: 4.5rem;\r\n width: 15px;\r\n height: 15px;\r\n border-radius: 50%;\r\n font: 13px monospace;\r\n text-align: center;\r\n span {\r\n padding: 1rem;\r\n background-color: ${({ theme }) => theme.backgroundColor};\r\n }\r\n\r\n line-height: 1em;\r\n cursor: pointer;\r\n padding-top: 14px;\r\n`;\r\n\r\nconst SearchBar = ({ onSubmit, onThrottledChange, placeholder, ...props }) => {\r\n const theme = useTheme();\r\n const fieldRef = useRef();\r\n const throttle = useRef();\r\n\r\n const { setSearch, search } = useContext(PagerContext);\r\n\r\n useEffect(\r\n () => () => {\r\n if (throttle.current) clearTimeout(throttle.current);\r\n },\r\n []\r\n );\r\n\r\n const onChange = (e) => {\r\n // e.stopPropagation();\r\n // if (throttle.current) clearTimeout(throttle.current);\r\n // throttle.current = setTimeout(() => {\r\n // setSearch(fieldRef.current.value || \"\");\r\n // }, 500);\r\n };\r\n\r\n const keyDown = (e) => {\r\n e.stopPropagation();\r\n if (e.key === \"Enter\") {\r\n if (throttle.current) clearTimeout(throttle.current);\r\n setSearch(fieldRef.current.value || \"\");\r\n }\r\n };\r\n\r\n const onClear = (e) => {\r\n e.stopPropagation();\r\n fieldRef.current.value = \"\";\r\n if (throttle.current) clearTimeout(throttle.current);\r\n setSearch(\"\");\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n {search ? (\r\n \r\n \r\n \r\n ) : null}\r\n\r\n {\r\n e.stopPropagation();\r\n setSearch(fieldRef.current.value || \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\nSearchBar.propTypes = {\r\n onSubmit: PropTypes.func,\r\n onThrottledChange: PropTypes.func,\r\n};\r\n\r\nexport default SearchBar;\r\n","import React, { useMemo } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport Button from \"../Button\";\r\nimport { Heading, Body } from \"../Text\";\r\n\r\nconst HeadingSection = ({\r\n hideBack = false,\r\n hideCreate = false,\r\n backButtonIcon = \"faArrowLeft\",\r\n backButtonLink: _backButtonLink,\r\n additionalElements,\r\n inlineAdditionalElements = false,\r\n title,\r\n centerTitle = false,\r\n centerSubtitle = false,\r\n rightSubtitle = false,\r\n boldSubtitle = false,\r\n subtitle,\r\n createButton,\r\n createButtonColor,\r\n createButtonText,\r\n createButtonIcon,\r\n createLink: _createLink,\r\n createButtonDisabled,\r\n backButtonColor,\r\n ...rest\r\n}) => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n\r\n const createLink = () => {\r\n let key = \"to\";\r\n if (typeof _createLink === \"function\") key = \"onClick\";\r\n if (!_createLink) return { onClick: () => navigate(-1) };\r\n return { [key]: _createLink };\r\n };\r\n\r\n const backButtonLink = useMemo(() => {\r\n let key = \"to\";\r\n if (typeof _backButtonLink === \"function\") key = \"onClick\";\r\n if (!_backButtonLink) return { onClick: () => navigate(-1) };\r\n return { [key]: _backButtonLink };\r\n }, [_backButtonLink, navigate]);\r\n\r\n return (\r\n \r\n \r\n {(title || !hideBack) && (\r\n <>\r\n {!hideBack && (\r\n \r\n \r\n \r\n )}\r\n\r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {additionalElements && !inlineAdditionalElements ? (\r\n \r\n {additionalElements}\r\n \r\n ) : null}\r\n\r\n \r\n {inlineAdditionalElements ? additionalElements : null}\r\n {!hideCreate && !createButton && (\r\n \r\n {createButtonText && {createButtonText}}\r\n \r\n )}\r\n {createButton}\r\n \r\n \r\n\r\n {subtitle && (\r\n \r\n {subtitle}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default HeadingSection;\r\n","import { Box, Flex } from \"reflexbox/styled-components\";\r\nimport styled from \"styled-components\";\r\nimport { Body } from \"../Text\";\r\n\r\nexport const LeftArrow = styled(Box)`\r\n transform: rotate(45deg);\r\n width: 24px;\r\n height: 24px;\r\n border-left: 3px solid ${({ theme }) => theme.primary || \"gray\"};\r\n border-bottom: 3px solid ${({ theme }) => theme.primary || \"gray\"};\r\n transition: all ease-in-out 300ms;\r\n &:hover {\r\n transform: scale(1.2) rotate(45deg);\r\n cursor: pointer;\r\n }\r\n &:active {\r\n transform: scale(0.75) rotate(45deg);\r\n }\r\n`;\r\n\r\nexport const Wrapper = styled(Flex)`\r\n width: 100%;\r\n\r\n @media (max-width: 600px) {\r\n button {\r\n &:last-of-type {\r\n display: none;\r\n }\r\n &:first-of-type {\r\n display: none;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const RightArrow = styled(LeftArrow)`\r\n border-left: none;\r\n border-bottom: none;\r\n border-top: 3px solid ${({ theme }) => theme.callToActionColor || \"gray\"};\r\n border-right: 3px solid ${({ theme }) => theme.callToActionColor || \"gray\"};\r\n`;\r\n\r\nexport const PageNumber = styled(Body)`\r\n padding: 0.5rem;\r\n margin: 0 0.5rem;\r\n transition: all ease-in-out 200ms;\r\n border-radius: ${({ theme }) => `${theme.borderRadius}px`};\r\n &:hover {\r\n background-color: ${({ theme }) => theme.primary};\r\n color: white;\r\n cursor: pointer;\r\n }\r\n ${({ theme, selected }) =>\r\n !selected\r\n ? {\r\n color: theme.primary,\r\n backgroundColor: \"transparent\",\r\n }\r\n : {\r\n color: \"white\",\r\n backgroundColor: theme.primary,\r\n }};\r\n`;\r\n\r\nexport const PagerWrapper = styled(Flex)`\r\n justify-content: space-around;\r\n align-items: center;\r\n max-width: 600px;\r\n margin: 0 auto;\r\n`;\r\n\r\nexport const DropdownWrapper = styled(Flex)`\r\n flex-direction: column;\r\n margin-top: 1rem;\r\n align-items: center;\r\n min-width: 120px;\r\n border: 2px solid ${({ theme }) => theme.primary || \"gray\"};\r\n border-radius: ${({ theme }) => `${theme.borderRadius}px` || \"15px\"};\r\n overflow: hidden;\r\n`;\r\n\r\nexport const DropdownItem = styled(Box)`\r\n padding: 0.5rem;\r\n width: 100%;\r\n text-align: center;\r\n border-bottom: ${({ theme }) => theme.primary || \"gray\"};\r\n color: ${({ theme }) => theme.primary || \"gray\"};\r\n &:last-of-type {\r\n border-bottom: none;\r\n }\r\n &:hover {\r\n ${({ theme }) => ({\r\n backgroundColor: theme.primary,\r\n color: \"white\",\r\n cursor: \"pointer\",\r\n })};\r\n }\r\n`;\r\n","import React, { useState, useEffect, useCallback, useContext } from \"react\";\r\nimport _ from \"lodash\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox/styled-components\";\r\nimport Button from \"../Button\";\r\nimport { Body, Helper } from \"../Text\";\r\nimport { PagerContext } from \"./PagerContext\";\r\nimport { Wrapper } from \"./styles\";\r\n\r\nconst Pager = ({ limitOptions: _limitOptions, totalCount }) => {\r\n const theme = useTheme();\r\n const { limit, offset, setLimit, setOffset } = useContext(PagerContext);\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(false);\r\n const [numPages, setNumPages] = useState(1);\r\n const [pageNum, setPageNum] = useState(1);\r\n const [range, setRange] = useState([1, 2, 3, 4]);\r\n\r\n const limitOptions = _limitOptions || [12, 48, 96];\r\n\r\n const getNumPages = useCallback(() => {\r\n let a = +totalCount / +limit;\r\n if (a < 1) return 1;\r\n return Math.ceil(a);\r\n }, [totalCount, limit]);\r\n\r\n useEffect(() => {\r\n const newPages = getNumPages();\r\n\r\n if (newPages > 4) {\r\n let _pageNum = pageNum > 3 ? pageNum : 3;\r\n if (_pageNum > newPages - 2) _pageNum = newPages - 1;\r\n setRange(_.range(_pageNum - 2, _pageNum + 2));\r\n } else {\r\n setRange(_.range(1, newPages + 1));\r\n }\r\n if (newPages !== numPages) setNumPages(newPages);\r\n }, [getNumPages, limit, numPages, pageNum, totalCount]);\r\n\r\n const handleLimitClick = (option) => {\r\n setLimit(option);\r\n setPageNum(1);\r\n setOffset(0);\r\n setDropdownOpen(false);\r\n };\r\n\r\n const handleNumberClick = (_pageNum) => {\r\n const pageN = _pageNum - 1;\r\n let newOffset = pageN * +limit;\r\n if (newOffset < 0) newOffset = 0;\r\n setPageNum(newOffset < 0 ? 1 : _pageNum);\r\n setOffset(newOffset);\r\n };\r\n\r\n const handleArrowClick = (direction) => {\r\n let newOffset = offset;\r\n\r\n switch (direction) {\r\n case \"right\":\r\n if (pageNum < numPages) setPageNum(pageNum + 1);\r\n newOffset = +offset + +limit;\r\n break;\r\n case \"left\":\r\n if (pageNum > 1) setPageNum(pageNum - 1);\r\n newOffset = +offset - +limit;\r\n break;\r\n case \"beginning\":\r\n setPageNum(1);\r\n newOffset = 0;\r\n break;\r\n case \"end\":\r\n setPageNum(numPages);\r\n newOffset = numPages * limit - limit;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (newOffset < 0) return (newOffset = 0);\r\n if (newOffset / limit >= getNumPages(totalCount, limit))\r\n return (newOffset = offset);\r\n setOffset(newOffset);\r\n };\r\n\r\n return limitOptions[0] >= totalCount ? null : (\r\n \r\n \r\n \r\n {numPages > 4 && (\r\n handleArrowClick(\"beginning\")}\r\n style={{\r\n opacity: pageNum > 2 ? undefined : 0,\r\n pointerEvents: pageNum > 2 ? undefined : \"none\",\r\n }}\r\n />\r\n )}\r\n handleArrowClick(\"left\")}\r\n style={{\r\n opacity: pageNum > 1 ? undefined : 0,\r\n pointerEvents: pageNum > 1 ? undefined : \"none\",\r\n }}\r\n />\r\n\r\n {range.map((i) => (\r\n handleNumberClick(i)}\r\n key={`pageNumber${i}`}\r\n disabled={pageNum === i}\r\n >\r\n {i}\r\n \r\n ))}\r\n\r\n handleArrowClick(\"right\")}\r\n style={{\r\n opacity: pageNum <= numPages - 1 ? undefined : 0,\r\n pointerEvents: pageNum <= numPages - 1 ? undefined : \"none\",\r\n }}\r\n />\r\n {numPages > 4 && (\r\n handleArrowClick(\"end\")}\r\n style={{\r\n opacity: pageNum <= numPages - 2 ? undefined : 0,\r\n pointerEvents: pageNum <= numPages - 2 ? undefined : \"none\",\r\n }}\r\n />\r\n )}\r\n \r\n \r\n setDropdownOpen(!dropdownOpen)}\r\n >\r\n {limit} per page\r\n \r\n {dropdownOpen && (\r\n \r\n {limitOptions.map((option) => (\r\n handleLimitClick(option)}\r\n >\r\n {option}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Pager;\r\n","import React from \"react\";\r\nimport Card from \"../Card\";\r\nimport { Body, Helper } from \"../Text\";\r\n\r\nconst GridItem = ({\r\n customGrid,\r\n item,\r\n gridSpacing,\r\n onCardClick,\r\n isLoading,\r\n gridSize,\r\n i,\r\n}) => {\r\n if (customGrid) return item;\r\n const {\r\n id,\r\n iconName,\r\n title,\r\n subtitle,\r\n image,\r\n elements = [],\r\n ...rest\r\n } = item || {};\r\n return (\r\n onCardClick(item)}\r\n width={gridSpacing()}\r\n {...rest}\r\n >\r\n {image && {title}\r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n {subtitle && (\r\n \r\n {subtitle}\r\n \r\n )}\r\n {elements}\r\n \r\n );\r\n};\r\n\r\nexport default GridItem;\r\n","import React, {\r\n useState,\r\n useMemo,\r\n useContext,\r\n useCallback,\r\n useRef,\r\n} from \"react\";\r\nimport TableLayout from \"./TableLayout\";\r\nimport { PagerContext } from \"../Pager/PagerContext\";\r\nimport Searchbar from \"../SearchBar\";\r\nimport { Flex } from \"reflexbox\";\r\nimport Checkbox from \"../forms/Checkbox\";\r\nimport { CheckboxContainer, CheckboxWrapper } from \"./styles-table\";\r\nimport { Body } from \"../Text\";\r\nimport HeadingSection from \"../HeadingSection\";\r\nimport Button from \"../Button\";\r\nimport Loading from \"../Loading\";\r\nimport Card from \"../Card\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport * as fa from \"@fortawesome/free-solid-svg-icons\";\r\nimport Pager from \"../Pager\";\r\nimport {\r\n ColumnDisplayContext,\r\n RowDisplayContext,\r\n useTableContext,\r\n} from \"./TableContext\";\r\nimport { TableResetContainer } from \"./styles-table\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { useMediaQuery } from \"@material-ui/core\";\r\nimport { Formik, Form } from \"formik\";\r\nimport AlertContext from \"../../../context/alert/AlertContext\";\r\nimport GridItem from \"./GridItem\";\r\n\r\nconst RotateWrap = styled(Flex)`\r\n flex-shrink: 0;\r\n @keyframes full-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n &.rotate {\r\n svg {\r\n animation: full-rotate;\r\n animation-duration: 1s;\r\n }\r\n }\r\n`;\r\n\r\nconst CheckboxTernary = ({ labelText, checked, name, ...rest }) => {\r\n const checkboxRef = useRef();\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst withDevice = (Component) => {\r\n return (props) => {\r\n const sm = useMediaQuery(`(min-width: 576px)`);\r\n const md = useMediaQuery(`(min-width: 768px)`);\r\n const lg = useMediaQuery(`(min-width: 992px)`);\r\n const xl = useMediaQuery(`(min-width: 1200px)`);\r\n const biggest = xl ? \"xl\" : lg ? \"lg\" : md ? \"md\" : sm ? \"sm\" : \"xs\";\r\n return (\r\n \r\n );\r\n };\r\n};\r\n\r\nexport const Table = ({\r\n device,\r\n data = [],\r\n title,\r\n subtitle,\r\n gridData = [],\r\n columns = [],\r\n dropdown = true,\r\n gridSize = \"normal\",\r\n onRowClick,\r\n onCardClick,\r\n forceGrid = false,\r\n hideSearch = false,\r\n hideProperties = false,\r\n hidePager = false,\r\n hideToggle = false,\r\n selections = null,\r\n popout = true,\r\n totalCount = null,\r\n isLoading = false,\r\n customGrid = false,\r\n centerTitle = false,\r\n centerSubtitle = false,\r\n createButtonText = \"Create\",\r\n createButtonIcon = \"faPlus\",\r\n createButtonColor,\r\n backButtonColor,\r\n hideCreate = false,\r\n hideBack = false,\r\n backButtonIcon = \"faArrowLeft\",\r\n createLink,\r\n backButtonLink,\r\n additionalElements,\r\n relativeLoading = false,\r\n open,\r\n hideRefetch = true,\r\n refetchData = () => {},\r\n createButton,\r\n}) => {\r\n const { showFailureAlert } = useContext(AlertContext);\r\n const theme = useTheme();\r\n const { order, setOrder, setSearch: _setSearch } = useContext(PagerContext);\r\n const setSorting = useCallback(\r\n (a) => {\r\n const { 0: newSort } = a();\r\n\r\n const newOrder = [\r\n `${newSort.id}`,\r\n `${order[1] === \"DESC\" ? \"ASC\" : \"DESC\"}`,\r\n ];\r\n\r\n if (setOrder) setOrder(newOrder);\r\n },\r\n [order, setOrder]\r\n );\r\n const setSearch = useCallback(\r\n (newSearch) => {\r\n if (newSearch) _setSearch(newSearch || \"\");\r\n },\r\n [_setSearch]\r\n );\r\n\r\n const processedColumns = useMemo(() => processColumns(columns), [columns]);\r\n\r\n const [\r\n rowContext,\r\n columnContext,\r\n {\r\n initialVisibility,\r\n configuredVisibility,\r\n setConfiguredVisibility,\r\n configuredSizing,\r\n },\r\n ] = useTableContext(\r\n processedColumns,\r\n device,\r\n dropdown && selections === null,\r\n onRowClick,\r\n selections,\r\n popout\r\n );\r\n\r\n const [propOpen, setPropOpen] = useState(false);\r\n const [grid, setGrid] = useState(forceGrid);\r\n\r\n const onResetTable = useCallback(() => {\r\n columnContext.arbitrarySizeReducer([\"\", -2]);\r\n setConfiguredVisibility([\"\", -2]);\r\n }, [columnContext, setConfiguredVisibility]);\r\n\r\n const gridSpacing = useCallback(() => {\r\n switch (gridSize) {\r\n case \"tiny\":\r\n return [\r\n \"calc(33.3333% - 2rem)\",\r\n \"calc(33.3333% - 2rem)\",\r\n \"calc(25% - 2rem)\",\r\n \"calc(20% - 2rem)\",\r\n \"calc(20% - 2rem)\",\r\n \"calc(16.6666% - 2rem)\",\r\n ];\r\n\r\n case \"small\":\r\n return [\r\n \"calc(50% - 2rem)\",\r\n \"calc(50% - 2rem)\",\r\n \"calc(33.3333% - 2rem)\",\r\n \"calc(25% - 2rem)\",\r\n \"calc(20% - 2rem)\",\r\n \"calc(16.6666% - 2rem)\",\r\n ];\r\n case \"medium\":\r\n return [\r\n \"calc(100% - 2rem)\",\r\n \"calc(100% - 2rem)\",\r\n \"calc(50% - 2rem)\",\r\n \"calc(33.3333% - 2rem)\",\r\n \"calc(25% - 2rem)\",\r\n \"calc(20% - 2rem)\",\r\n ];\r\n case \"large\":\r\n return [\r\n \"100%\",\r\n \"100%\",\r\n \"calc(50% - 2rem)\",\r\n \"calc(50% - 2rem)\",\r\n \"calc(33.3333% - 2rem)\",\r\n ];\r\n default:\r\n return [\r\n \"100%\",\r\n \"100%\",\r\n \"calc(50% - 2rem)\",\r\n \"calc(33.3333% - 2rem)\",\r\n \"calc(25% - 2rem)\",\r\n ];\r\n }\r\n }, [gridSize]);\r\n\r\n const spinRef = useRef(null);\r\n\r\n const spin = () => {\r\n spinRef.current.classList.add(\"rotate\");\r\n setTimeout(() => {\r\n spinRef.current.classList.remove(\"rotate\");\r\n }, 1000);\r\n };\r\n\r\n const renderRows = useMemo(() => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {(Object.keys(configuredSizing).length > 0 ||\r\n Object.keys(configuredVisibility).length > 0) && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n }, [\r\n columnContext,\r\n configuredSizing,\r\n configuredVisibility,\r\n data,\r\n isLoading,\r\n onResetTable,\r\n open,\r\n processedColumns,\r\n rowContext,\r\n setSorting,\r\n ]);\r\n\r\n const renderGrid = useMemo(() => {\r\n if (isLoading || !gridData)\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n if (gridData?.length > 0)\r\n return gridData?.map((item, i) => (\r\n \r\n ));\r\n return (\r\n \r\n \r\n No Items Available\r\n \r\n \r\n );\r\n }, [\r\n customGrid,\r\n gridData,\r\n gridSize,\r\n gridSpacing,\r\n isLoading,\r\n onCardClick,\r\n relativeLoading,\r\n theme.danger,\r\n ]);\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {!hideSearch || !hideProperties ? (\r\n \r\n {hideProperties || grid ? null : (\r\n {\r\n const vals = {};\r\n processedColumns.forEach((entry) => {\r\n let configured = entry.id in configuredVisibility;\r\n let [name, visibility] = configured\r\n ? configuredVisibility[entry.id]\r\n : initialVisibility[entry.id];\r\n vals[name] = visibility;\r\n });\r\n return vals;\r\n }}\r\n >\r\n {/* Properties Checkbox dropdown */}\r\n {() => (\r\n \r\n
\r\n setPropOpen(!propOpen)}\r\n justifyContent=\"space-between\"\r\n alignItems=\"flex-start\"\r\n p=\"0.5rem 1rem\"\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n Properties\r\n\r\n \r\n \r\n\r\n \r\n {processedColumns.map((entry) => {\r\n let configured = entry.id in configuredVisibility;\r\n let [name, visibility] = configured\r\n ? configuredVisibility[entry.id]\r\n : initialVisibility[entry.id];\r\n return (\r\n \r\n {\r\n let ret = 0;\r\n\r\n Object.keys(configuredVisibility).forEach(\r\n (k, v) => {\r\n if (v !== 0 && k !== entry.id) ret += 1;\r\n }\r\n );\r\n if (\r\n ret >=\r\n Object.entries(initialVisibility).length - 2\r\n )\r\n return showFailureAlert(\r\n \"Must have at least 1 column header visible.\"\r\n );\r\n\r\n return setConfiguredVisibility([\r\n entry.id,\r\n [\r\n name,\r\n dropdown\r\n ? (visibility + 1) % 3\r\n : (visibility + 1) % 2,\r\n ],\r\n ]);\r\n }}\r\n />\r\n\r\n {configured && (\r\n \r\n setConfiguredVisibility([entry.id, -1])\r\n }\r\n />\r\n )}\r\n \r\n {name}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {/* Searchbox */}\r\n {hideSearch ? null : (\r\n \r\n \r\n \r\n )}\r\n\r\n {/* Reload button */}\r\n {hideRefetch ? null : (\r\n \r\n \r\n \r\n )}\r\n\r\n {hideToggle ? null : (\r\n \r\n setGrid(true)}\r\n iconName=\"faTableCellsLarge\"\r\n />\r\n setGrid(false)}\r\n iconName=\"faListUl\"\r\n />\r\n \r\n )}\r\n
\r\n ) : null}\r\n\r\n {grid ? (\r\n \r\n {renderGrid}\r\n \r\n ) : (\r\n renderRows\r\n )}\r\n {!hidePager && }\r\n \r\n \r\n );\r\n};\r\n\r\nfunction processColumns(columns) {\r\n let index = 0;\r\n return columns.map((col) => {\r\n index += 1;\r\n let { data, header, display, sort, id, ...rest } = col;\r\n\r\n if (sort === undefined) sort = true;\r\n\r\n if (typeof sort === \"function\") {\r\n rest = { sortingFn: sort, ...rest };\r\n sort = true;\r\n }\r\n if (data) {\r\n if (typeof data === \"string\") {\r\n rest = { accessorKey: data, ...rest };\r\n }\r\n if (typeof data === \"function\") {\r\n rest = { accessorFn: data, ...rest };\r\n }\r\n }\r\n return {\r\n id: id || index.toString(),\r\n header: header !== undefined ? header : id,\r\n sort: sort,\r\n cell: display !== undefined ? display : ({ getValue }) => getValue(),\r\n ...rest,\r\n };\r\n });\r\n}\r\n\r\n// equality is a data property or an equality function (rowA, rowB) => bool\r\nexport const useTableSelections = (equality) => {\r\n const [rows, setRows] = useState([]);\r\n const clear = useCallback(() => {\r\n setRows([]);\r\n }, [setRows]);\r\n const isEqual = useMemo(() => {\r\n if (typeof equality === \"string\") {\r\n return (rowA, rowB) => {\r\n return rowA[equality] === rowB[equality];\r\n };\r\n } else if (typeof equality === \"function\") {\r\n return equality;\r\n }\r\n }, [equality]);\r\n const getIndex = useCallback(\r\n (row) => {\r\n for (let i = 0; i < rows.length; ++i) {\r\n const compareRow = rows[i];\r\n if (isEqual(row, compareRow)) return i;\r\n }\r\n return -1;\r\n },\r\n [isEqual, rows]\r\n );\r\n const select = useCallback(\r\n (row) => {\r\n setRows((s) => {\r\n const newTable = s.slice(0);\r\n newTable.push(row);\r\n return newTable;\r\n });\r\n },\r\n [setRows]\r\n );\r\n const deselect = useCallback(\r\n (row) => {\r\n setRows((s) => {\r\n const index = getIndex(row);\r\n if (index === -1) {\r\n return s;\r\n }\r\n const newTable = s.slice(0);\r\n newTable.splice(index, 1);\r\n return newTable;\r\n });\r\n },\r\n [setRows, getIndex]\r\n );\r\n return { rows, actions: { select, deselect, getIndex, clear } };\r\n};\r\n\r\nexport default withDevice(Table);\r\n","import React, { useContext, useMemo, useCallback, useState } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { useNavigate, useParams, useSearchParams } from \"react-router-dom\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport formatter from \"../../modules/formatter\";\r\nimport {\r\n\tcreateUser,\r\n\temailNewUserPassword,\r\n} from \"../../requests/userManagementRequests\";\r\nimport { login } from \"../../requests/authRequests\";\r\nimport { Heading, Body } from \"../UI/Text\";\r\nimport Button from \"../UI/Button\";\r\nimport Card from \"../UI/Card\";\r\nimport Modal from \"../UI/Modal\";\r\nimport Field from \"../UI/forms/Field\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport Table from \"../UI/Table\";\r\nimport { useEffect } from \"react\";\r\nimport guid from \"../../modules/guid\";\r\nimport Loading from \"../UI/Loading\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n\tusername: yup.string().email(),\r\n});\r\n\r\nexport const CreateUserModal = ({\r\n\tshow,\r\n\tsetShow,\r\n\tfinishConfiguration,\r\n\tsessionId,\r\n}) => {\r\n\tconst { buildUserObject } = useContext(UserContext);\r\n\tconst [searchParams] = useSearchParams();\r\n\tconst email = searchParams.get(\"email\") || \"\";\r\n\tconst [isLoading, setLoading] = useState(false);\r\n\tconst theme = useTheme();\r\n\r\n\tconst onSubmit = useCallback(\r\n\t\tasync ({ username }) => {\r\n\t\t\tif (!username) return;\r\n\t\t\tsetLoading(true);\r\n\t\t\tconst newPassword = guid.GenerateGUID();\r\n\t\t\tawait createUser({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tusername,\r\n\t\t\t\t\tpassword: newPassword,\r\n\t\t\t\t\troleId: \"public\",\r\n\t\t\t\t\troleLevel: 0,\r\n\t\t\t\t\tcheckoutType: \"stripe\",\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\temailNewUserPassword({ username, password: newPassword });\r\n\t\t\tawait login({ username, password: newPassword, buildUserObject });\r\n\t\t\tawait finishConfiguration({ sessionId, username, publicUser: true });\r\n\t\t},\r\n\t\t[buildUserObject, finishConfiguration, sessionId]\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (show) {\r\n\t\t\tif (email) {\r\n\t\t\t\tsetShow(false);\r\n\t\t\t\tonSubmit({ username: email });\r\n\t\t\t}\r\n\t\t}\r\n\t}, [email, onSubmit, setShow, show]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tPlease enter your email to save your configuration.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{() => (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{isLoading ? (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport const CancelModal = ({ show, setShow }) => {\r\n\tconst { quoteId } = useParams();\r\n\tconst theme = useTheme();\r\n\tconst navigate = useNavigate();\r\n\tconst { fromDealer } = useContext(ConfiguratorContext);\r\n\r\n\tconst redirect = useCallback(() => {\r\n\t\tif (quoteId === \"new\") return navigate(\"/QuoteDashboard\");\r\n\t\telse return navigate(`/${fromDealer ? \"DealerQuote\" : \"Quote\"}/${quoteId}`);\r\n\t}, [navigate, quoteId, fromDealer]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tAre you sure you want to cancel?\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductCard;\r\n","import React, { useContext, useCallback } from \"react\";\r\nimport Modal from \"../UI/Modal\";\r\nimport Card from \"../UI/Card\";\r\nimport Button from \"../UI/Button\";\r\nimport { Body, Heading, Helper } from \"../UI/Text\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport Table from \"../UI/Table\";\r\nimport { Flex } from \"reflexbox\";\r\nimport formatter from \"../../modules/formatter\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Columns } from \"./columns\";\r\n\r\nconst PageView = ({\r\n showPreview,\r\n setShowPreview,\r\n data,\r\n gridData,\r\n refetchQuery,\r\n isLoading,\r\n}) => {\r\n const theme = useTheme();\r\n const { activeProduct, setActiveProduct } = useContext(ConfiguratorContext);\r\n\r\n const onProductPageClick = useCallback(\r\n (row) => {\r\n console.log(row);\r\n setShowPreview(true);\r\n\r\n setActiveProduct(row);\r\n },\r\n [setActiveProduct, setShowPreview]\r\n );\r\n\r\n const {\r\n Name,\r\n img,\r\n Description,\r\n ID,\r\n Overview,\r\n\r\n defaultPrice,\r\n quantityInStock,\r\n UOM,\r\n RelatedItem,\r\n ImageUrl,\r\n base64Image,\r\n } = activeProduct || {};\r\n\r\n const image = img || base64Image || ImageUrl;\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 {Name}\r\n\r\n \r\n ${formatter.currency(defaultPrice)}\r\n \r\n\r\n {!quantityInStock ? null : (\r\n In Stock: {quantityInStock}\r\n )}\r\n\r\n {!UOM ? null : Unit of Measure: {UOM}}\r\n\r\n {!RelatedItem ? null : (\r\n Related Item: {RelatedItem}\r\n )}\r\n \r\n \r\n\r\n {!Description ? null : (\r\n \r\n Product Description\r\n {Description}\r\n \r\n )}\r\n\r\n {!Overview ? null : (\r\n \r\n Product Overview\r\n {Overview}\r\n \r\n )}\r\n\r\n setShowPreview(false)}\r\n >\r\n Close\r\n \r\n \r\n \r\n \r\n onProductPageClick(row)}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PageView;\r\n","import React, { useContext, useCallback, useMemo, useState } from \"react\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport { getProducts } from \"../../requests/productManagementRequests\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { Columns } from \"./columns\";\r\nimport Table from \"../UI/Table\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport ProductCard from \"./ProductCard\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport Card from \"../UI/Card\";\r\nimport _ from \"lodash\";\r\nimport { Body, Helper } from \"../UI/Text\";\r\nimport PageView from \"./PageView\";\r\nimport formatter from \"../../modules/formatter\";\r\nimport { useTheme } from \"styled-components\";\r\n\r\nconst ProductCatalog = ({\r\n inline = false,\r\n onProductClick,\r\n isLoading: _isLoading = false,\r\n pageView = false,\r\n}) => {\r\n const theme = useTheme();\r\n const {\r\n loggedIn,\r\n pid,\r\n isLoading: userLoading,\r\n activeUser,\r\n } = useContext(UserContext);\r\n const { quote } = useContext(ConfiguratorContext);\r\n\r\n const forcedFilters = useMemo(() => {\r\n if (inline) return { limit: 6 };\r\n return undefined;\r\n }, [inline]);\r\n\r\n const queryVariables = useMemo(() => {\r\n if (inline)\r\n return {\r\n isQuickConfig: true,\r\n isNonConfigurable: false,\r\n pid,\r\n gid: quote?.groupId,\r\n erpId: quote?.customer?.erpId,\r\n };\r\n return {\r\n pid,\r\n erpId: quote?.customer?.erpId,\r\n gid:\r\n pageView && activeUser?.roleLevel !== 0\r\n ? activeUser?.groupId\r\n : quote?.groupId,\r\n };\r\n }, [activeUser, inline, pageView, pid, quote]);\r\n\r\n const attributes = useMemo(\r\n () =>\r\n pageView || !inline\r\n ? [\r\n \"ProductNumber\",\r\n \"Name\",\r\n \"ID\",\r\n \"ApplicationInstance\",\r\n \"ApplicationName\",\r\n \"isNonConfigurable\",\r\n \"isQuickConfig\",\r\n \"isNonConfigurable\",\r\n \"HeaderId\",\r\n \"img\",\r\n \"base64Image\",\r\n \"ImageUrl\",\r\n \"defaultPrice\",\r\n \"Description\",\r\n \"HeaderId\",\r\n \"Overview\",\r\n \"quantityInStock\",\r\n \"priceCode\",\r\n \"Discount\",\r\n \"PortalPricingEnabled\",\r\n \"RelatedItem\",\r\n ]\r\n : [\"ID\", \"img\", \"base64Image\", \"ImageUrl\"],\r\n [pageView, inline]\r\n );\r\n\r\n const { data, refetchQuery, isLoading } = useQuery({\r\n queryID: inline ? \"quickConfig\" : pageView ? \"productPageView\" : \"products\",\r\n request: getProducts,\r\n forcedFilters,\r\n queryVariables,\r\n attributes,\r\n skip: !loggedIn || _isLoading || userLoading,\r\n });\r\n\r\n const [showPreview, setShowPreview] = useState(false);\r\n\r\n const gridData = useMemo(() => {\r\n \r\n if (_.isArray(data?.rows)) {\r\n if (pageView) {\r\n return data.rows.map((product) => {\r\n const discPrice = product?.defaultPrice * ((product?.discountPercentage * -1) / 100);\r\n const image =\r\n product?.img || product?.base64Image || product?.ImageUrl;\r\n\r\n \r\n return {\r\n ...product,\r\n image,\r\n title: product?.Name,\r\n\r\n iconName: !!image ? undefined : \"faBox\",\r\n elements: \r\n activeUser?.roleLevel !== 0 ? \r\n [\r\n \r\n {product?.Description}\r\n ,\r\n \r\n ${formatter.currency(product?.defaultPrice)}\r\n ,\r\n \r\n ${formatter.currency(product?.defaultPrice-discPrice)}\r\n ,\r\n ] : [\r\n \r\n {product?.Description}\r\n ,\r\n \r\n ${formatter.currency(product?.defaultPrice)}\r\n ,\r\n ] \r\n };\r\n });\r\n }\r\n return data.rows.map((product) => (\r\n \r\n ));\r\n }\r\n\r\n return null;\r\n }, [data, inline, onProductClick, pageView]);\r\n\r\n if (inline) return gridData;\r\n\r\n if (pageView)\r\n return (\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n onProductClick(row.id)}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductCatalog;\r\n","import React, { useCallback, useContext } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { useTheme } from \"styled-components\";\r\n// import Card from \"../Card\";\r\nimport Button from \"../Button\";\r\n// import { Body } from \"../Text\";\r\n// import Loading from \"../Loading\";\r\nimport AlertContext from \"../../../context/alert/AlertContext\";\r\n\r\n// const DropTarget = styled(Flex)`\r\n// align-items: center;\r\n// justify-content: center;\r\n// padding: 1rem;\r\n// width: 100%;\r\n// border: dashed 2px ${({ theme }) => theme.secondary};\r\n// border-radius: ${({ theme }) => `${theme.borderRadius}px`};\r\n// position: relative;\r\n// div {\r\n// margin: 0;\r\n// }\r\n// svg {\r\n// margin-left: 1rem;\r\n// width: 70px;\r\n// height: auto;\r\n// }\r\n// &:hover {\r\n// cursor: pointer;\r\n// background-color: rgba(0, 0, 0, 0.05);\r\n// }\r\n// `;\r\n\r\n// const Container = styled(Flex)`\r\n// position: absolute;\r\n// z-index: 1000;\r\n// top: 0;\r\n// left: -5rem;\r\n// width: 12rem;\r\n// height: 12rem;\r\n// overflow: hidden;\r\n// justify-content: flex-end;\r\n// @keyframes expand {\r\n// 0% {\r\n// margin-right: 0;\r\n// width: 5rem;\r\n// height: 3rem;\r\n// }\r\n\r\n// 100% {\r\n// width: 12rem;\r\n// height: 12rem;\r\n// }\r\n// }\r\n\r\n// > div {\r\n// animation-name: expand;\r\n// animation-duration: 400ms;\r\n// border-color: ${({ theme }) => theme.secondary};\r\n// background-color: ${({ theme }) => theme.backgroundColor};\r\n// width: 12rem;\r\n// transform-origin: right;\r\n\r\n// > div {\r\n// width: 100%;\r\n// overflow: hidden;\r\n// display: flex;\r\n// transition: 200ms ease-in-out all;\r\n// }\r\n// }\r\n// `;\r\n\r\nconst actions = [\"readFile\", \"returnFile\"];\r\n\r\nconst DataImport = React.forwardRef(\r\n (\r\n {\r\n action = \"readFile\",\r\n buttonLabel = \"Import\",\r\n showCard = false,\r\n onSubmit = async () =>\r\n console.error(\"[DataImport]: function 'onSubmit' is not defined.\"),\r\n },\r\n ref\r\n ) => {\r\n const theme = useTheme();\r\n // const [show, setShow] = useState(false);\r\n // const [readyToSave, setRTS] = useState(false);\r\n // const [stateFiles, setStateFiles] = useState([]);\r\n // const [isLoading, setLoading] = useState(false);\r\n\r\n const { showWarningAlert, showFailureAlert } = useContext(AlertContext);\r\n\r\n const onClick = useCallback(\r\n async (files) => {\r\n try {\r\n // setLoading(true);\r\n showWarningAlert(\"Importing Lines...\");\r\n var reader = new FileReader();\r\n reader.onload = async (e) => {\r\n // Use reader.result\r\n switch (action) {\r\n case actions[0]:\r\n await onSubmit(reader.result);\r\n // setLoading(false);\r\n break;\r\n default:\r\n // setLoading(false);\r\n break;\r\n }\r\n };\r\n reader.readAsText(files[0]);\r\n } catch (error) {\r\n console.error(error);\r\n showFailureAlert(\r\n \"Failed to import lines. Please check your file configuration.\"\r\n );\r\n // setLoading(false);\r\n }\r\n },\r\n [action, onSubmit, showFailureAlert, showWarningAlert]\r\n );\r\n\r\n const onDrop = useCallback(\r\n (files) => {\r\n // setStateFiles(files);\r\n onClick(files);\r\n },\r\n [onClick]\r\n );\r\n\r\n const { getRootProps, getInputProps } = useDropzone({\r\n onDrop,\r\n multiple: true,\r\n });\r\n\r\n // const onClick = useCallback(() => {\r\n // if (showCard) return;\r\n // }, []);\r\n\r\n return (\r\n <>\r\n {\r\n // setShow(true);\r\n // }}\r\n {...getRootProps()}\r\n >\r\n {buttonLabel}\r\n \r\n {!showCard && }\r\n \r\n );\r\n }\r\n);\r\n\r\nDataImport.propTypes = {\r\n action: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n onSubmit: PropTypes.func,\r\n};\r\n\r\nexport default DataImport;\r\n","import React, {\r\n\tuseContext,\r\n\tuseMemo,\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseState,\r\n} from \"react\";\r\nimport _ from \"lodash\";\r\nimport {\r\n\tuseParams,\r\n\tuseNavigate,\r\n\tcreateSearchParams,\r\n\tuseLocation,\r\n} from \"react-router-dom\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport * as quoteReqs from \"../../requests/quoteManagementRequests\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport guid, { GenerateGUID } from \"../../modules/guid\";\r\nimport { Body } from \"../UI/Text\";\r\nimport Table from \"../UI/Table\";\r\nimport Modal from \"../UI/Modal\";\r\nimport Button from \"../UI/Button\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFileCircleExclamation } from \"@fortawesome/free-solid-svg-icons\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport ProductCatalog from \"../ProductCatalog\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { getProducts } from \"../../requests/productManagementRequests\";\r\nimport * as constants from \"../../modules/constants\";\r\nimport PagerContextProvider from \"../UI/Pager/PagerContext\";\r\nimport DataImport from \"../UI/DataImport\";\r\nimport PriceDisplay from \"./PriceDisplay\";\r\nimport { Input } from \"../UI/forms\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nconst { createLine, updateLine, deleteLine, copyLineConfiguration } = quoteReqs;\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\ttransition: 200ms all ease-out;\r\n\theight: 100%;\r\n`;\r\n\r\nconst QuantityWrapper = styled(Input)`\r\n\ttext-align: center;\r\n`;\r\n\r\nconst LineImg = styled.img`\r\n\tmax-width: 75px;\r\n\tmax-height: 75px;\r\n\twidth: auto !important;\r\n\theight: auto;\r\n`;\r\n\r\nconst Lines = ({\r\n\trefetchQuote,\r\n\tquoteLoading,\r\n\tisLoading,\r\n\tshow,\r\n\tsetShow,\r\n\ttitle,\r\n}) => {\r\n\tconst location = useLocation();\r\n\tconst { 1: priceMode } = location.pathname.split(\"/\");\r\n\tconst { quote, setQuote } = useContext(ConfiguratorContext);\r\n\tconst { activeUser, pid, isLoading: userLoading } = useContext(UserContext);\r\n\tconst navigate = useNavigate();\r\n\tconst theme = useTheme();\r\n\tconst { showFailureAlert, showSuccessAlert } = useContext(AlertContext);\r\n\tconst { username } = activeUser || {};\r\n\tconst configuratorContext = useContext(ConfiguratorContext);\r\n\tconst { type: quoteType } = quote || {};\r\n\tconst { quoteId } = useParams();\r\n\tconst isPlane = useMemo(() => quote?.isPlane, [quote]);\r\n\tconst isDealer = useMemo(\r\n\t\t() => priceMode === \"DealerQuote\" || !isPlane,\r\n\t\t[priceMode, isPlane]\r\n\t);\r\n\r\n\tconst [importing, setImporting] = useState(false);\r\n\r\n\tconst _lines = useQuery({\r\n\t\tqueryID: `lines|${quoteId}`,\r\n\t\trequest: quoteReqs.getLines,\r\n\t\tqueryVariables: { quoteId, isDealer, erpId: quote?.customer?.erpId },\r\n\t\tskip:\r\n\t\t\t!quoteId ||\r\n\t\t\t!quote?.customer?.erpId ||\r\n\t\t\tisLoading ||\r\n\t\t\tquoteLoading ||\r\n\t\t\tuserLoading ||\r\n\t\t\timporting,\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (\r\n\t\t\t_lines?.data &&\r\n\t\t\t!_lines.isLoading &&\r\n\t\t\t!quote?.lines &&\r\n\t\t\t!quote?.lineCount &&\r\n\t\t\t!isLoading &&\r\n\t\t\t!importing\r\n\t\t)\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\tlines: _lines?.data?.rows,\r\n\t\t\t\tlineCount: _lines?.data?.count,\r\n\t\t\t});\r\n\t}, [_lines, isLoading, quote, setQuote, importing]);\r\n\r\n\tconst products = useQuery({\r\n\t\tqueryID: \"quote-products\",\r\n\t\trequest: getProducts,\r\n\t\tqueryVariables: { pid, gid: quote?.groupId },\r\n\t\tskip: !pid || userLoading,\r\n\t\tattributes: [\r\n\t\t\t\"ProductNumber\",\r\n\t\t\t\"Name\",\r\n\t\t\t\"ID\",\r\n\t\t\t\"ApplicationInstance\",\r\n\t\t\t\"ApplicationName\",\r\n\t\t\t\"isNonConfigurable\",\r\n\t\t\t\"isQuickConfig\",\r\n\t\t\t\"isNonConfigurable\",\r\n\t\t\t\"HeaderId\",\r\n\t\t\t\"img\",\r\n\t\t\t\"defaultPrice\",\r\n\t\t\t\"Description\",\r\n\t\t\t\"HeaderId\",\r\n\t\t\t\"Overview\",\r\n\t\t\t\"quantityInStock\",\r\n\t\t\t\"priceCode\",\r\n\t\t\t\"Discount\",\r\n\t\t\t\"RelatedItem\",\r\n\t\t\t\"PortalPricingEnabled\",\r\n\t\t],\r\n\t\tforcedFilters: {},\r\n\t});\r\n\r\n\tconst {\r\n\t\tsetActiveProduct,\r\n\t\tsetIsReconfigure,\r\n\t\tsetConfiguratorMode,\r\n\t\tsetFromDealer,\r\n\t} = configuratorContext;\r\n\r\n\tconst onReconfigure = useCallback(\r\n\t\tasync (row) => {\r\n\t\t\tconst { productId, configurationId, id: LineId, headerId } = row;\r\n\t\t\tsetIsReconfigure(true);\r\n\t\t\tsetActiveProduct(productId);\r\n\t\t\tsetConfiguratorMode(constants.CONFIGURATOR_MODES.Default);\r\n\t\t\tsetFromDealer(isDealer);\r\n\r\n\t\t\tconst lineNumber =\r\n\t\t\t\t_.findIndex(quote?.lines, (line) => line.id === LineId) + 1;\r\n\t\t\trefetchQuote(\"quotes\");\r\n\r\n\t\t\tlet paramsObj = {\r\n\t\t\t\tlineNumber,\r\n\t\t\t\tLineId,\r\n\t\t\t\theaderId,\r\n\t\t\t\tconfigurationId,\r\n\t\t\t};\r\n\r\n\t\t\tnavigate({\r\n\t\t\t\tpathname: `/Configurator/${productId}/${quoteId}/${configurationId}`,\r\n\t\t\t\tsearch: createSearchParams(paramsObj).toString(),\r\n\t\t\t});\r\n\t\t},\r\n\t\t[\r\n\t\t\tsetIsReconfigure,\r\n\t\t\tsetActiveProduct,\r\n\t\t\tsetConfiguratorMode,\r\n\t\t\tsetFromDealer,\r\n\t\t\tisDealer,\r\n\t\t\tquote,\r\n\t\t\trefetchQuote,\r\n\t\t\tnavigate,\r\n\t\t\tquoteId,\r\n\t\t]\r\n\t);\r\n\r\n\tconst onCopyLine = useCallback(\r\n\t\tasync (row) => {\r\n\t\t\tconst oldLine = _.find(quote?.lines, ({ _id }) => _id === row._id);\r\n\t\t\tconst {\r\n\t\t\t\tconfigurationId: sourceConfigurationId,\r\n\t\t\t\theaderId: sourceHeaderId,\r\n\t\t\t\tprice,\r\n\t\t\t\tquantity,\r\n\t\t\t\tproductId,\r\n\t\t\t\tisNonConfigurable,\t\t\t\t\r\n\t\t\t} = oldLine;\r\n\t\t\tconst newLine = {\r\n\t\t\t\t...oldLine,\r\n\t\t\t\tisNonConfigurable,\r\n\t\t\t\t// Creating a GUID here to allow for the deleting and updating of rows\r\n\t\t\t\t// before the query has refetched.\r\n\t\t\t\t_id: guid.GenerateGUID(),\r\n\t\t\t};\r\n\t\t\tif (!isNonConfigurable) {\r\n\t\t\t\tnewLine.sourceConfigurationId = sourceConfigurationId;\r\n\t\t\t\tnewLine.sourceHeaderId = sourceHeaderId;\r\n\t\t\t\t// need to update this to syteline format\r\n\t\t\t\tnewLine.configurationId = `${quoteId}_${quote?.lines?.length + 1}`;\r\n\t\t\t\tnewLine.headerId = sourceHeaderId;\r\n\t\t\t}\r\n\t\t\tconst newLines = [...quote?.lines, newLine];\r\n\t\t\tconst newPrice = quote?.totalCost + price * quantity;\r\n\t\t\tsetQuote({ ...quote, totalCost: newPrice, lines: newLines });\r\n\r\n\t\t\tawait copyLineConfiguration({\r\n\t\t\t\tsourceHeaderId,\r\n\t\t\t\tsourceDetailId: sourceConfigurationId,\r\n\t\t\t\theaderId: sourceHeaderId,\r\n\t\t\t\tdetailId: `${quoteId}_${quote?.lines?.length + 1}`,\r\n\t\t\t\tproductId,\r\n\t\t\t});\r\n\r\n\t\t\tawait createLine({\r\n\t\t\t\tinput: { ...newLine, isPlane, erpId: quote?.customer?.erpId },\r\n\t\t\t});\r\n\t\t},\r\n\t\t[quote, setQuote, isPlane, quoteId]\r\n\t);\r\n\r\n\tconst onDeleteLine = useCallback(\r\n\t\tasync (row) => {\r\n\t\t\tconst { lines } = quote || {};\r\n\t\t\tconst { _id, price = 0, quantity = 1 } = row || {};\r\n\r\n\t\t\tconst newLines = [...lines];\r\n\t\t\tconst i = _.findIndex(newLines, (line) => line?._id === _id);\r\n\t\t\tnewLines.splice(i, 1);\r\n\r\n\t\t\tconst newPrice = quote?.totalCost - +price * +quantity;\r\n\r\n\t\t\t_lines.setData({\r\n\t\t\t\trows: newLines,\r\n\t\t\t\tcount: _lines?.data?.count - 1,\r\n\t\t\t});\r\n\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\ttotalCost: newPrice,\r\n\t\t\t\tlines: newLines,\r\n\t\t\t\tlineCount: _lines?.data?.count - 1,\r\n\t\t\t});\r\n\t\t\tawait deleteLine({ _id, quoteId });\r\n\t\t\t_lines.setData({\r\n\t\t\t\trows: newLines,\r\n\t\t\t\tcount: _lines?.data?.count - 1,\r\n\t\t\t});\r\n\t\t},\r\n\t\t[quote, setQuote, quoteId, _lines]\r\n\t);\r\n\r\n\tconst onUpdateQuantity = useCallback(\r\n\t\tasync (values, row) => {\r\n\t\t\tconst { _id, quantity, price, id } = row || {};\r\n\t\t\tconst newLines = quote?.lines.map((line) =>\r\n\t\t\t\tline._id === _id ? { ...line, quantity: values.quantity } : line\r\n\t\t\t);\r\n\r\n\t\t\t_lines.setData({\r\n\t\t\t\trows: newLines,\r\n\t\t\t\tcount: _lines?.data?.count,\r\n\t\t\t});\r\n\r\n\t\t\tconst newPrice =\r\n\t\t\t\tquote?.totalCost - quantity * price + values.quantity * price;\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\ttotalCost: newPrice,\r\n\t\t\t\tlines: newLines,\r\n\t\t\t});\r\n\r\n\t\t\tawait updateLine({\r\n\t\t\t\tid,\r\n\t\t\t\t_id,\r\n\t\t\t\tinput: { quantity: values.quantity, isPlane },\r\n\t\t\t});\r\n\t\t},\r\n\t\t[quote, _lines, setQuote, isPlane]\r\n\t);\r\n\r\n\tconst getSelectedProduct = useCallback(\r\n\t\t(productId) => {\r\n\t\t\treturn _.find(products.data?.rows, (product) => product.ID === productId);\r\n\t\t},\r\n\t\t[products.data]\r\n\t);\r\n\r\n\tconst onAddLine = useCallback(\r\n\t\tasync (productId, quantity = 1) => {\r\n\t\t\tsetIsReconfigure(false);\r\n\t\t\tsetConfiguratorMode(constants.CONFIGURATOR_MODES.Default);\r\n\r\n\t\t\tconst selectedProduct = getSelectedProduct(productId);\r\n\r\n\t\t\tif (isPlane && selectedProduct?.isNonConfigurable === true)\r\n\t\t\t\treturn showFailureAlert(`You cannot add parts lines to a Plane quote.`);\r\n\t\t\telse if (!isPlane && selectedProduct?.isNonConfigurable === false)\r\n\t\t\t\treturn showFailureAlert(`You cannot add a plane to a parts order.`);\r\n\r\n\t\t\tconst { lines = [] } = quote || {};\r\n\r\n\t\t\tconst { isNonConfigurable, isQuickConfig } = selectedProduct || {};\r\n\t\t\tif (isNonConfigurable) {\r\n\t\t\t\tconst index = _.findIndex(\r\n\t\t\t\t\tlines,\r\n\t\t\t\t\t(line) => line.productId === productId\r\n\t\t\t\t);\r\n\r\n\t\t\t\tconst newLines = [...lines];\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\tconst { quantity: _qty } = newLines[index] || {};\r\n\t\t\t\t\tconst newQty = _qty + quantity;\r\n\r\n\t\t\t\t\tnewLines[index].quantity = newQty;\r\n\r\n\t\t\t\t\tconst newPrice =\r\n\t\t\t\t\t\tquote?.totalCost -\r\n\t\t\t\t\t\tselectedProduct?.defaultPrice * _qty +\r\n\t\t\t\t\t\tselectedProduct?.defaultPrice * newQty;\r\n\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\ttotalCost: newPrice,\r\n\t\t\t\t\t\tlines: newLines,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tawait updateLine({\r\n\t\t\t\t\t\tinput: { quantity: newQty },\r\n\t\t\t\t\t\t_id: newLines[index]._id,\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst dealerPrice = (\r\n\t\t\t\t\t\tselectedProduct?.defaultPrice *\r\n\t\t\t\t\t\t((selectedProduct?.discountPercentage * -1) / 100)\r\n\t\t\t\t\t).toFixed(2);\r\n\r\n\t\t\t\t\tconst newLine = {\r\n\t\t\t\t\t\t_id: GenerateGUID(),\r\n\t\t\t\t\t\theaderId: selectedProduct?.HeaderId,\r\n\t\t\t\t\t\timgUrl: selectedProduct?.img,\r\n\t\t\t\t\t\tprice: selectedProduct?.defaultPrice,\r\n\t\t\t\t\t\tusername: username,\r\n\t\t\t\t\t\tpartNumber: selectedProduct?.ProductNumber,\r\n\t\t\t\t\t\tdescription: selectedProduct?.Description,\r\n\t\t\t\t\t\tdiscount_percentage: selectedProduct?.discountPercentage,\r\n\t\t\t\t\t\tproductId,\r\n\t\t\t\t\t\tquoteId,\r\n\t\t\t\t\t\tdealerPrice: dealerPrice,\r\n\t\t\t\t\t\tquantity,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tnewLines.push(newLine);\r\n\r\n\t\t\t\t\tconst newPrice =\r\n\t\t\t\t\t\tquote?.totalCost + selectedProduct?.defaultPrice * quantity;\r\n\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\ttotalCost: newPrice,\r\n\t\t\t\t\t\tlines: newLines,\r\n\t\t\t\t\t\tlineCount: newLines.length,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tshowSuccessAlert(\r\n\t\t\t\t\t\t`Added ${selectedProduct?.ProductNumber} to Quote #${quoteId}`\r\n\t\t\t\t\t);\r\n\t\t\t\t\t_lines.setData({\r\n\t\t\t\t\t\trows: newLines,\r\n\t\t\t\t\t\tcount: newLines.length,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tawait createLine({\r\n\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\t...newLines[newLines.length - 1],\r\n\t\t\t\t\t\t\tisPlane,\r\n\t\t\t\t\t\t\terpId: quote?.customer?.erpId,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\tlet lineNumber = 1;\r\n\r\n\t\t\t\tif (lines && lines.length > 0) {\r\n\t\t\t\t\tlineNumber = lines.length + 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst configurationId = `${quoteId}_${lineNumber}`;\r\n\t\t\t\tsetFromDealer(isDealer);\r\n\t\t\t\tif (!isNonConfigurable || isQuickConfig)\r\n\t\t\t\t\tnavigate({\r\n\t\t\t\t\t\tpathname: `/Configurator/${productId}/${quoteId}/${configurationId}`,\r\n\t\t\t\t\t\tsearch: createSearchParams({\r\n\t\t\t\t\t\t\tlineNumber,\r\n\t\t\t\t\t\t}).toString(),\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t[\r\n\t\t\tsetFromDealer,\r\n\t\t\tisDealer,\r\n\t\t\tsetIsReconfigure,\r\n\t\t\tsetConfiguratorMode,\r\n\t\t\tgetSelectedProduct,\r\n\t\t\tisPlane,\r\n\t\t\tshowFailureAlert,\r\n\t\t\tquote,\r\n\t\t\tusername,\r\n\t\t\tquoteId,\r\n\t\t\tsetQuote,\r\n\t\t\t_lines,\r\n\t\t\tshowSuccessAlert,\r\n\t\t\tnavigate,\r\n\t\t]\r\n\t);\r\n\r\n\tconst columns = useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tid: \"imgUrl\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{(row?.imgUrl?.startsWith(\"http\") ||\r\n\t\t\t\t\t\t\trow?.imgUrl?.startsWith(\"/\") ||\r\n\t\t\t\t\t\t\trow?.base64Image) && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Preview\",\r\n\t\t\t\tsize: { md: 2, sm: -1, xs: -1 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"partNumber\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{row?.partNumber}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\tsort: false,\r\n\t\t\t\theader: \"Part #\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 3 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"description\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{row?.description}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Description\",\r\n\t\t\t\tsize: { md: 4, sm: 3, xs: -1 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"headerId\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{row?.headerId}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Header ID\",\r\n\t\t\t\tsize: { md: -1, sm: -1, xs: -1 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"quantity\",\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\treturn quoteType === 2 ? (\r\n\t\t\t\t\t\t{row?.quantity}\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\treturn row?.quantity > 1\r\n\t\t\t\t\t\t\t\t\t\t\t? onUpdateQuantity({ quantity: row?.quantity - 1 }, row)\r\n\t\t\t\t\t\t\t\t\t\t\t: showFailureAlert(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"Cannot set quantity to a number less than 1.\"\r\n\t\t\t\t\t\t\t\t\t\t\t );\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{({ values }) => {\r\n\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (isNaN(e.target.value)) return;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (Number(e.target.value) <= 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tshowFailureAlert(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Quantity must be greater than zero.\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonUpdateQuantity(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ quantity: Number(e.target.value) },\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalues.row\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"quantity\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={values.quantity}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{/* \r\n {row?.quantity}\r\n */}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\tonUpdateQuantity({ quantity: row?.quantity + 1 }, row);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\theader: \"Quantity\",\r\n\t\t\t\tsize: { md: 3, sm: 2, xs: 5 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"price\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\r\n\t\t\t\theader: \"Unit Price\",\r\n\t\t\t\tsize: { md: 2.5, sm: -1, xs: -1 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"totalPrice\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Total\",\r\n\t\t\t\tsize: { md: 2.5, sm: 2, xs: 2 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"actions\",\r\n\t\t\t\theader: \"\",\r\n\t\t\t\tsort: false,\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{!isPlane ? null : (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t onReconfigure(row)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t onCopyLine(row)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t onDeleteLine(row)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\tsize:\r\n\t\t\t\t\tquoteType === 2 && activeUser?.roleLevel < 5\r\n\t\t\t\t\t\t? { md: -1, sm: -1, xs: -1 }\r\n\t\t\t\t\t\t: { lg: 4, md: 0, sm: 0, xs: 0 },\r\n\t\t\t},\r\n\t\t],\r\n\t\t[\r\n\t\t\tisDealer,\r\n\t\t\tisPlane,\r\n\t\t\tonCopyLine,\r\n\t\t\tonDeleteLine,\r\n\t\t\tonReconfigure,\r\n\t\t\tonUpdateQuantity,\r\n\t\t\tquoteType,\r\n\t\t\tshowFailureAlert,\r\n\t\t\ttheme.danger,\r\n\t\t\ttheme.secondary,\r\n\t\t\ttheme.success,\r\n\t\t\tactiveUser,\r\n\t\t]\r\n\t);\r\n\r\n\tconst runImportLines = useCallback(\r\n\t\tasync (file) => {\r\n\t\t\tsetImporting(true);\r\n\t\t\tconst [cols, ...itemsToImport] = file.split(\"\\r\\n\");\r\n\t\t\tconst newLines = [];\r\n\t\t\tlet failedRows = [];\r\n\r\n\t\t\tif (!products) {\r\n\t\t\t\tconst error = `Failed to pull products for group.`;\r\n\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i in itemsToImport) {\r\n\t\t\t\tconst item = itemsToImport[i];\r\n\t\t\t\tconst [itemCol1, itemCol2] = item.split(\",\") || [];\r\n\r\n\t\t\t\tconst productRows = products?.data?.rows;\r\n\r\n\t\t\t\tconst product = _.find(productRows, function (ProductNumber) {\r\n\t\t\t\t\tif (ProductNumber.Name.toLowerCase() === itemCol1.toLowerCase())\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!product) {\r\n\t\t\t\t\tif (itemCol1 === \"\") {\r\n\t\t\t\t\t\tif (itemCol2) {\r\n\t\t\t\t\t\t\tconst error = `Failed to import Line for: ROW - ${\r\n\t\t\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t\t\t}: Invalid part.`;\r\n\t\t\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (isNaN(itemCol2)) {\r\n\t\t\t\t\t\tconst error = `Failed to import Line for ${itemCol1}: ROW - ${\r\n\t\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t\t}: Quantity is not a number.`;\r\n\t\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t} else if (parseInt(itemCol2) <= 0 || !itemCol2) {\r\n\t\t\t\t\t\tconst error = `Failed to import Line for ${itemCol1}: ROW - ${\r\n\t\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t\t}: No quantity set.`;\r\n\t\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst error = `Failed to import Line for: ROW - ${\r\n\t\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t\t}: Invalid part.`;\r\n\t\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (isNaN(itemCol2)) {\r\n\t\t\t\t\tconst error = `Failed to import Line for ${itemCol1}: ROW - ${\r\n\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t}: Quantity is not a number.`;\r\n\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t} else if (parseInt(itemCol2) <= 0 || !itemCol2) {\r\n\t\t\t\t\tconst error = `Failed to import Line for ${itemCol1}: ROW - ${\r\n\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t}: No quantity set.`;\r\n\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t} else if (product?.PortalPricingEnabled === false) {\r\n\t\t\t\t\tconst error = `Failed to import Line for ${itemCol1}: ROW - ${\r\n\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t}: Portal Pricing not enabled.`;\r\n\t\t\t\t\tfailedRows.push(error);\r\n\t\t\t\t\tshowFailureAlert(error);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst newLine = {\r\n\t\t\t\t\tquantity: itemCol2,\r\n\t\t\t\t\tquoteId,\r\n\t\t\t\t\t_id: GenerateGUID(),\r\n\t\t\t\t\tproductId: product?.ID,\r\n\t\t\t\t\theaderId: product?.HeaderId,\r\n\t\t\t\t\timgUrl: product?.img,\r\n\t\t\t\t\tprice: product?.defaultPrice,\r\n\t\t\t\t\tusername: username,\r\n\t\t\t\t\tpartNumber: product?.ProductNumber,\r\n\t\t\t\t\tdescription: product?.Description,\r\n\t\t\t\t};\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst line = _.find(\r\n\t\t\t\t\t\tquote?.lines,\r\n\t\t\t\t\t\t({ partNumber }) =>\r\n\t\t\t\t\t\t\tpartNumber.toLowerCase() === itemCol1.toLowerCase()\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (line) {\r\n\t\t\t\t\t\tconst { id, quantity } = line;\r\n\r\n\t\t\t\t\t\tawait updateLine({\r\n\t\t\t\t\t\t\tid,\r\n\t\t\t\t\t\t\tinput: { quantity: quantity + +itemCol2 },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tnewLines.push({ ...line, quantity: quantity + +itemCol2 });\r\n\r\n\t\t\t\t\t\tshowSuccessAlert(`Successfully imported new line for ${itemCol1}`);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (itemCol1 && itemCol2 && product) {\r\n\t\t\t\t\t\t\tconst line = await createLine({\r\n\t\t\t\t\t\t\t\tinput: { ...newLine, isPlane, erpId: quote?.customer?.erpId },\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tnewLines.push(line);\r\n\t\t\t\t\t\t\tshowSuccessAlert(\r\n\t\t\t\t\t\t\t\t`Successfully imported new line for ${itemCol1}`\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t\tconst importError = `Failed to import Line for ${itemCol1}: ROW - ${\r\n\t\t\t\t\t\tparseInt(i) + 1\r\n\t\t\t\t\t}: ${error}`;\r\n\t\t\t\t\tfailedRows.push(importError);\r\n\t\t\t\t\tshowFailureAlert(importError);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (failedRows.length > 0) {\r\n\t\t\t\tawait quoteReqs.downloadFailedImportCSV(failedRows);\r\n\t\t\t\twindow.location.reload();\r\n\t\t\t}\r\n\r\n\t\t\tsetQuote({ ...quote, lines: newLines });\r\n\t\t\tsetImporting(false);\r\n\t\t\t_lines.refetchQuery();\r\n\t\t},\r\n\t\t[\r\n\t\t\tproducts,\r\n\t\t\tsetQuote,\r\n\t\t\tquote,\r\n\t\t\t_lines,\r\n\t\t\tshowFailureAlert,\r\n\t\t\tquoteId,\r\n\t\t\tusername,\r\n\t\t\tshowSuccessAlert,\r\n\t\t\tisPlane,\r\n\t\t]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t,\r\n\t\t\t\t\t]}\r\n\t\t\t\t\thideSearch\r\n\t\t\t\t\thideBack\r\n\t\t\t\t\thideProperties\r\n\t\t\t\t\thidePager\r\n\t\t\t\t\thideCreate={isPlane === true}\r\n\t\t\t\t\tcreateButton={\r\n\t\t\t\t\t\tisPlane === true ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdata={quote?.lines || []}\r\n\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\ttotalCount={quote?.lineCount}\r\n\t\t\t\t\tisLoading={importing || _lines.isLoading}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Lines;\r\n","import axios from \"axios\";\r\n\r\nexport const getAddresses = async ({ signal }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/addressManagement/getAddresses\",\r\n { signal }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n\r\nexport const createAddress = async ({ signal, input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/addressManagement/createAddress\",\r\n { signal, input }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n\r\nexport const updateAddress = async ({ signal, id, input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/addressManagement/updateAddress\",\r\n { signal, id, input }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n\r\nexport const deleteAddress = async ({ signal, id, input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/addressManagement/deleteAddress\",\r\n { signal, id, input }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n","import React, { useMemo, useCallback, useContext, useRef } from \"react\";\r\nimport { useFormikContext } from \"formik\";\r\nimport styled from \"styled-components\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport Field from \"../../UI/forms/Field\";\r\nimport Checkbox from \"../../UI/forms/Checkbox\";\r\nimport { Heading } from \"../../UI/Text\";\r\nimport _ from \"lodash\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\nimport { updateQuote } from \"../../../requests/quoteManagementRequests\";\r\nimport { createAddress } from \"../../../requests/addressManagementRequests\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nconst AddressWrapper = styled(Flex)`\r\n\t> div {\r\n\t\tmargin-top: 0;\r\n\t}\r\n`;\r\n\r\nconst AddressForm = ({\r\n\tisLoading,\r\n\tdisableForm,\r\n\tonSubmit,\r\n\tresetForm,\r\n\tformToShow,\r\n\tsetFormToShow,\r\n\tsetEditingId,\r\n\teditingId,\r\n\tsetRefetch,\r\n}) => {\r\n\tconst { values, setFieldValue } = useFormikContext();\r\n\tconst { quoteId } = useParams();\r\n\r\n\tconst { quote, setQuote } = useContext(ConfiguratorContext);\r\n\tconst isPlane = useMemo(() => quote?.isPlane, [quote]);\r\n\r\n\tconst { shippingAddresses } = quote || {};\r\n\r\n\tconst onAutofillShipping = useCallback(\r\n\t\tasync (_addressToFillId) => {\r\n\t\t\tlet addressToFillId = _addressToFillId;\r\n\r\n\t\t\tconst address = _.find(\r\n\t\t\t\tshippingAddresses,\r\n\t\t\t\t({ id }) => +id === +addressToFillId\r\n\t\t\t);\r\n\r\n\t\t\tconst {\r\n\t\t\t\tAddress = \"\",\r\n\t\t\t\tAddress2 = \"\",\r\n\t\t\t\tCity = \"\",\r\n\t\t\t\tState = \"\",\r\n\t\t\t\tZip = \"\",\r\n\t\t\t\tCounty = \"\",\r\n\t\t\t\tCountry = \"\",\r\n\t\t\t\tid,\r\n\t\t\t\tName = \"\",\r\n\t\t\t} = address || {};\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\tshippingAddressId: +addressToFillId,\r\n\t\t\t\tshippingAddress: {\r\n\t\t\t\t\tAddress,\r\n\t\t\t\t\tCounty,\r\n\t\t\t\t\tCountry,\r\n\t\t\t\t\tAddress2,\r\n\t\t\t\t\tCity,\r\n\t\t\t\t\tState,\r\n\t\t\t\t\tZip,\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tName,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tif (!addressToFillId || addressToFillId === \"New\") {\r\n\t\t\t\tconst { id: newId, ...rest } = await createAddress({\r\n\t\t\t\t\tinput: {\r\n\t\t\t\t\t\tAddress: \"\",\r\n\t\t\t\t\t\tAddress2: \"\",\r\n\t\t\t\t\t\tCity: \"\",\r\n\t\t\t\t\t\tState: \"\",\r\n\t\t\t\t\t\tCountry: \"\",\r\n\t\t\t\t\t\tCounty: \"\",\r\n\t\t\t\t\t\tZip: \"\",\r\n\t\t\t\t\t\tAddressType: 2,\r\n\t\t\t\t\t\tName: \"\",\r\n\t\t\t\t\t\tQuoteId: +quoteId,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t\tconst newAddresses = [...quote?.shippingAddresses];\r\n\t\t\t\tnewAddresses.push({ id: newId, ...rest });\r\n\t\t\t\tsetQuote({\r\n\t\t\t\t\t...quote,\r\n\t\t\t\t\tshippingAddressId: newId,\r\n\t\t\t\t\tshippingAddress: { id: newId, ...rest },\r\n\t\t\t\t\tshippingAddresses: newAddresses,\r\n\t\t\t\t});\r\n\t\t\t\tawait updateQuote({\r\n\t\t\t\t\tid: +quoteId,\r\n\t\t\t\t\tinput: { shippingAddressId: newId },\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tawait updateQuote({\r\n\t\t\t\tid: +quoteId,\r\n\t\t\t\tinput: { shippingAddressId: +addressToFillId },\r\n\t\t\t});\r\n\t\t},\r\n\t\t[shippingAddresses, setQuote, quote, quoteId]\r\n\t);\r\n\r\n\tconst shippingStateCodes = useMemo(\r\n\t\t() =>\r\n\t\t\t_.filter(\r\n\t\t\t\tquote?.stateCodes || [],\r\n\t\t\t\t({ country }) => country === values?.shipping?.Country\r\n\t\t\t),\r\n\t\t[quote, values.shipping]\r\n\t);\r\n\tconst billingStateCodes = useMemo(\r\n\t\t() =>\r\n\t\t\t_.filter(\r\n\t\t\t\tquote?.stateCodes || [],\r\n\t\t\t\t({ country }) => country === values?.billing?.Country\r\n\t\t\t),\r\n\t\t[quote, values.billing]\r\n\t);\r\n\r\n\tconst shippingStateOptions = useMemo(\r\n\t\t() =>\r\n\t\t\tshippingStateCodes.map(({ state, description, country }) => (\r\n\t\t\t\t\r\n\t\t\t)),\r\n\t\t[shippingStateCodes]\r\n\t);\r\n\tconst billingStateOptions = useMemo(\r\n\t\t() =>\r\n\t\t\tbillingStateCodes.map(({ state, description, country }) => (\r\n\t\t\t\t\r\n\t\t\t)),\r\n\t\t[billingStateCodes]\r\n\t);\r\n\tconst countryOptions = useMemo(\r\n\t\t() =>\r\n\t\t\tquote?.countryCodes?.map(({ country, iso_country_code }) => (\r\n\t\t\t\t\r\n\t\t\t)),\r\n\t\t[quote]\r\n\t); \r\n \r\n\tconst shippingAddressIds = useMemo(() => {\r\n\t\tif (!shippingAddresses) return [];\r\n\t\treturn shippingAddresses.map(({ id }) => id);\r\n\t}, [shippingAddresses]);\r\n\r\n\tconst shippingOptions = useMemo(() => {\r\n\t\tif (!_.isArray(shippingAddresses)) return [];\r\n\r\n\t\tconst shippingAddressesSorted = _.orderBy(shippingAddresses, [\"Name\"]);\r\n\t\treturn shippingAddressesSorted.map((shipAddress) => {\r\n\t\t\tconst { Address, Address2, City, State, Zip, Name } = shipAddress;\r\n\r\n\t\t\treturn {\r\n\t\t\t\tvalue: shipAddress.id,\r\n\t\t\t\tlabel: ` ${Name || \"\"} ${Address || \"\"}${\r\n\t\t\t\t\tAddress2 ? \" \" + Address2 : \"\"\r\n\t\t\t\t}, ${City || \"\"} ${State || \"\"}, ${Zip || \"\"}`,\r\n\t\t\t};\r\n\t\t});\r\n\t}, [shippingAddresses]);\r\n\r\n\tconst onBlur = useCallback(\r\n\t\tasync (e) => {\r\n\t\t\tawait onSubmit({ [e.target.name]: e.target.value });\r\n\t\t\tsetRefetch(null);\r\n\t\t},\r\n\t\t[onSubmit, setRefetch]\r\n\t);\r\n\r\n\tconst fieldProps = useMemo(\r\n\t\t() => ({\r\n\t\t\tisLoading,\r\n\t\t\tonBlur,\r\n\t\t\tdisabled: true,\r\n\t\t\t// disabled:\r\n\t\t\t// \t+quote?.shippingAddress?.QuoteId !== +quoteId &&\r\n\t\t\t// \tshippingAddressIds.includes(quote?.shippingAddressId),\r\n\t\t}),\r\n\t\t[isLoading, onBlur]\r\n\t);\r\n\r\n\tconst ref = useRef(null);\r\n\r\n\tconst onOptionClick = useCallback(\r\n\t\tasync (value) => {\r\n\t\t\tif (ref.current) clearTimeout(ref.current);\r\n\r\n\t\t\tref.current = setTimeout(async () => {\r\n\t\t\t\tawait onAutofillShipping(value);\r\n\r\n\t\t\t\tresetForm();\r\n\t\t\t}, 500);\r\n\t\t},\r\n\t\t[onAutofillShipping, resetForm]\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tBilling Address\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{countryOptions}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{billingStateOptions.length > 0 ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{billingStateOptions}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : null}\r\n\t\t\t\t\r\n\t\t\t\t{!values.sameAsBilling ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tShipping Address\r\n\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tconst value = e.target.value;\r\n\t\t\t\t\t\t\t\tsetFieldValue(\"shippingAddressId\", value);\r\n\r\n\t\t\t\t\t\t\t\tonOptionClick(value);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tvalue={values.shippingAddressId}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{shippingOptions.map((sOption) => {\r\n\t\t\t\t\t\t\t\t\t\tconst { label, value } = sOption || {};\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{countryOptions}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{shippingStateOptions.length > 0 ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{shippingStateOptions}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\r\n\t\t\t\t) : null}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AddressForm;\r\n","import React, { useCallback, useContext, useEffect, useMemo } from \"react\";\r\nimport { useFormikContext } from \"formik\";\r\nimport _ from \"lodash\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { Field } from \"../../UI/forms\";\r\nimport Button from \"../../UI/Button\";\r\nimport { useTheme } from \"styled-components\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\nimport * as r from \"../../../requests/addressManagementRequests\";\r\nimport AlertContext from \"../../../context/alert/AlertContext\";\r\n\r\nconst { createAddress } = r;\r\n\r\nconst CreateShippingAddress = ({\r\n\tformToShow,\r\n\tsetFormToShow,\r\n\tsetEditingId,\r\n\tupdateQuote,\r\n\trefetchQuote,\r\n\trefetchCustomer,\r\n\tsetFieldValue\r\n}) => {\r\n\tconst theme = useTheme();\r\n\tconst { values } = useFormikContext();\r\n\tconst { quote, setQuote } = useContext(ConfiguratorContext);\r\n\tconst { showFailureAlert } = useContext(AlertContext);\r\n\r\n\tconst shippingStateCodes = useMemo(\r\n\t\t() =>\r\n\t\t\t_.filter(\r\n\t\t\t\tquote?.stateCodes || [],\r\n\t\t\t\t({ country }) => country === values?.address?.Country\r\n\t\t\t),\r\n\t\t[quote.stateCodes, values]\r\n\t);\r\n\r\n\tconst stateOptions = useMemo(\r\n\t\t() =>\r\n\t\t\tshippingStateCodes.map(({ state, description, country }) => (\r\n\t\t\t\t\r\n\t\t\t)),\r\n\t\t[shippingStateCodes]\r\n\t);\r\n\r\n\tconst countryOptions = useMemo(\r\n\t\t() =>\r\n\t\t\tquote?.countryCodes?.map(({ country, iso_country_code }) => (\r\n\t\t\t\t\r\n\t\t\t)),\r\n\t\t[quote]\r\n\t);\r\n\r\n\tconst onSubmitAddress = useCallback(\r\n\t\tasync (values) => {\r\n\t\t\tif (!values?.Name) {\r\n\t\t\t\tshowFailureAlert(\"Name is required.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!values?.Address) {\r\n\t\t\t\tshowFailureAlert(\"Address is required.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!values?.City) {\r\n\t\t\t\tshowFailureAlert(\"City is required.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!values?.Country) {\r\n\t\t\t\tshowFailureAlert(\"Country is required.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!values?.Zip) {\r\n\t\t\t\tshowFailureAlert(\"Zip is required.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// checking is the current state value is valid for the selected country\r\n\t\t\tconst stateValidation = stateOptions.find((state) => state?.props?.value === values?.State);\r\n\r\n\t\t\tconsole.log({stateValidation});\r\n\t\t\t// Need to clear the state value if the country was changed from a country with states to one without them\r\n\t\t\tif (stateOptions.length === 0 || !stateValidation)\r\n\t\t\t\tvalues.State = null;\r\n\r\n\t\t\tconst newAddress = await createAddress({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\t...values,\r\n\t\t\t\t\tAddressType: 2,\r\n\t\t\t\t\tcustomerId: quote?.customer?.id,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\tlet _quote = { ...quote };\r\n\r\n\t\t\tconst adds = [...quote?.shippingAddresses];\r\n\t\t\tadds.push(newAddress);\r\n\t\t\t_quote.shippingAddresses = [...adds];\r\n\t\t\t_quote.shippingAddress = newAddress;\r\n\t\t\t_quote.shippingAddressId = newAddress.id;\r\n\t\t\tsetFormToShow(\"\");\r\n\t\t\tsetEditingId(null);\r\n\t\t\tsetQuote(_quote);\r\n\r\n\t\t\tawait updateQuote({\r\n\t\t\t\tid: _quote.id,\r\n\t\t\t\tinput: { shippingAddressId: newAddress.id },\r\n\t\t\t});\r\n\r\n\t\t\trefetchQuote();\r\n\t\t\trefetchCustomer();\r\n\t\t\treturn;\r\n\t\t},\r\n\t\t[stateOptions, quote, setFormToShow, setEditingId, setQuote, updateQuote, refetchQuote, refetchCustomer, showFailureAlert]\r\n\t);\r\n\r\n\tconst handleKeys = useCallback(\r\n\t\t(e) => {\r\n\t\t\tif ((e.code === \"Escape\" || e.keyCode === 27) && !!formToShow) {\r\n\t\t\t\tsetFormToShow(\"\");\r\n\t\t\t\tsetEditingId(null);\r\n\t\t\t}\r\n\t\t\tif (e.key === \"Enter\" && !!formToShow) {\r\n\t\t\t\tonSubmitAddress(values.address);\r\n\t\t\t\tsetFormToShow(\"\");\r\n\t\t\t\tsetEditingId(null);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[formToShow, onSubmitAddress, setEditingId, setFormToShow, values.address]\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (formToShow) {\r\n\t\t\tdocument.addEventListener(\"keydown\", (e) => handleKeys(e));\r\n\t\t\treturn () => {\r\n\t\t\t\twindow.removeEventListener(\"keydown\", (e) => handleKeys(e));\r\n\t\t\t};\r\n\t\t}\r\n\t}, [handleKeys, formToShow]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{countryOptions}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{stateOptions}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetFormToShow(\"\");\r\n\t\t\t\t\t\tsetEditingId(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t/>\r\n\t\t\t\t onSubmitAddress(values.address)}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateShippingAddress;\r\n","import React, {\r\n\tuseMemo,\r\n\tuseCallback,\r\n\tuseContext,\r\n\tuseState,\r\n\tuseEffect,\r\n\tuseRef,\r\n} from \"react\";\r\nimport _ from \"lodash\";\r\nimport * as yup from \"yup\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport styled from \"styled-components\";\r\nimport Card from \"../../UI/Card\";\r\nimport Button from \"../../UI/Button\";\r\n// import ContactForm from \"./ContactForm\";\r\nimport AddressForm from \"./AddressForm\";\r\nimport Field from \"../../UI/forms/Field\";\r\nimport { useQuery } from \"../../Hooks\";\r\nimport * as QMR from \"../../../requests/quoteManagementRequests\";\r\nimport * as CMR from \"../../../requests/customerManagementRequests\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\nimport { updateAddress } from \"../../../requests/addressManagementRequests\";\r\nimport { useTheme } from \"styled-components\";\r\nimport UserContext from \"../../../context/user/UserContext\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport CreateShippingAddress from \"./CreateShippingAddress\";\r\n\r\nconst { getCustomers, updateCustomer } = CMR;\r\nconst { updateQuote } = QMR;\r\n\r\nexport const FieldWrapper = styled(Flex)`\r\n\twidth: 100%;\r\n\tjustify-content: flex-start;\r\n\talign-items: flex-start;\r\n\r\n\tform,\r\n\tdiv {\r\n\t\twidth: 100%;\r\n\t}\r\n`;\r\n\r\nconst validationSchema = yup.object().shape({\r\n\tcustomerId: yup.string().nullable(),\r\n\tshippingAddressId: yup.string().nullable(),\r\n\tsameAsBilling: yup.boolean().nullable(),\r\n\tcontact: yup.object().shape({\r\n\t\tfirstName: yup.string().nullable(),\r\n\t\tlastName: yup.string().nullable(),\r\n\t\temail: yup.string().email().nullable(),\r\n\t\tphone: yup.string().nullable(),\r\n\t}),\r\n\tcustomer: yup.object().shape({\r\n\t\tcompanyName: yup.string().nullable(),\r\n\t}),\r\n\r\n\tbilling: yup.object().shape({\r\n\t\tAddress: yup.string().nullable(),\r\n\t\tAddress2: yup.string().nullable(),\r\n\t\tCity: yup.string(\"Please enter a City\").required(\"City is required.\"),\r\n\t\tCounty: yup.string().nullable(),\r\n\t\tState: yup\r\n\t\t\t.string(\"Please enter a Province/State\")\r\n\t\t\t.required(\"Province/State is required.\"),\r\n\t\tCountry: yup\r\n\t\t\t.string(\"Please enter a Country\")\r\n\t\t\t.required(\"Country is required.\"),\r\n\t\tZip: yup\r\n\t\t\t.string(\"Please enter a Postal/Zip Code\")\r\n\t\t\t.required(\"Postal/Zip Code is required.\"),\r\n\t}),\r\n\r\n\tshipCode: yup.string().required(),\r\n\tshipping: yup.object().shape({\r\n\t\tAddress: yup.string().nullable(),\r\n\t\tAddress2: yup.string().nullable(),\r\n\t\tCity: yup.string(\"Please enter a City\").required(\"City is required.\"),\r\n\t\tCounty: yup.string().nullable(),\r\n\t\tState: yup\r\n\t\t\t.string(\"Please enter a Province/State\")\r\n\t\t\t.required(\"Province/State is required.\"),\r\n\t\tCountry: yup\r\n\t\t\t.string(\"Please enter a Country\")\r\n\t\t\t.required(\"Country is required.\"),\r\n\t\tZip: yup\r\n\t\t\t.string(\"Please enter a Postal/Zip Code\")\r\n\t\t\t.required(\"Postal/Zip Code is required.\"),\r\n\t}),\r\n});\r\n\r\nconst Customer = ({ isLoading, refetchQuote, refetchCustomer }) => {\r\n\tconst { quoteId } = useParams();\r\n\tconst { quote, setQuote } = useContext(ConfiguratorContext);\r\n\tconst { activeUser } = useContext(UserContext);\r\n\tconst { pid, groupIds } = activeUser || {};\r\n\tconst [formToShow, setFormToShow] = useState(\"\");\r\n\tconst [editingId, setEditingId] = useState(null);\r\n\r\n\tconst [shouldRefetch, setRefetch] = useState(null);\r\n\tconst theme = useTheme();\r\n\tconst throttle = useRef(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tswitch (shouldRefetch) {\r\n\t\t\tcase 0:\r\n\t\t\t\t// throttle.current = timeout;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1:\r\n\t\t\t\tif (!throttle.current) {\r\n\t\t\t\t\tconst timeout = setTimeout(() => {\r\n\t\t\t\t\t\tclearTimeout(throttle);\r\n\t\t\t\t\t\tsetRefetch(2);\r\n\t\t\t\t\t}, 5000);\r\n\t\t\t\t\tthrottle.current = timeout;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\trefetchQuote();\r\n\t\t\t\tclearTimeout(throttle.current);\r\n\t\t\t\tsetRefetch(null);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthrottle.current = null;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}, [refetchQuote, shouldRefetch]);\r\n\r\n\tconst { data, isLoading: customersLoading } = useQuery({\r\n\t\trequest: getCustomers,\r\n\t\tskip: !pid,\r\n\t\tqueryVariables: { pid, hasERP: true, groupIds, groupId: quote.groupId },\r\n\t});\r\n\tconst { rows: customers = [] } = data || {};\r\n\r\n\tconst customerOptions = useMemo(() => {\r\n\t\treturn !customers\r\n\t\t\t? []\r\n\t\t\t: [\r\n\t\t\t\t\t...customers.map((row) => {\r\n\t\t\t\t\t\tconst { billingAddress } = quote || {};\r\n\t\t\t\t\t\tconst { customer } = row || {};\r\n\t\t\t\t\t\tconst { id, erpId, companyName } = customer || {};\r\n\r\n\t\t\t\t\t\tconst { Address, Address2, City, State, Zip } =\r\n\t\t\t\t\t\t\tbillingAddress || {};\r\n\r\n\t\t\t\t\t\tlet label = `${companyName || erpId || \"—\"}`;\r\n\r\n\t\t\t\t\t\tif (Address || Address2) {\r\n\t\t\t\t\t\t\tif (Address) label += `, ${Address}`;\r\n\t\t\t\t\t\t\tif (Address2) {\r\n\t\t\t\t\t\t\t\tlabel += ` ${Address2}`;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (City) {\r\n\t\t\t\t\t\t\t\tlabel += `, ${City}`;\r\n\t\t\t\t\t\t\t\tif (State) {\r\n\t\t\t\t\t\t\t\t\tlabel += ` ${State}`;\r\n\t\t\t\t\t\t\t\t\tif (Zip) {\r\n\t\t\t\t\t\t\t\t\t\tlabel += `, ${Zip}`;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn { label, value: id };\r\n\t\t\t\t\t}),\r\n\t\t\t ];\r\n\t}, [customers, quote]);\r\n\r\n\tconst onOptionClick = useCallback(\r\n\t\tasync (id, resetForm) => {\r\n\t\t\tif (id === \"\") {\r\n\t\t\t\tawait updateQuote({\r\n\t\t\t\t\tid: +quoteId || +quote?.id,\r\n\t\t\t\t\tinput: { contactId: null },\r\n\t\t\t\t});\r\n\t\t\t\trefetchCustomer();\r\n\t\t\t\tsetQuote({\r\n\t\t\t\t\t...quote,\r\n\t\t\t\t\tcustomer: null,\r\n\t\t\t\t\tbillingAddress: null,\r\n\t\t\t\t\tshippingAddress: null,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tawait updateQuote({\r\n\t\t\t\t\tid: +quoteId || +quote?.id,\r\n\t\t\t\t\tinput: { contactId: id },\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tsetQuote(null);\r\n\t\t\trefetchQuote();\r\n\t\t\tresetForm();\r\n\t\t},\r\n\t\t[quote, quoteId, refetchCustomer, refetchQuote, setQuote]\r\n\t);\r\n\r\n\tconst initialValues = useMemo(() => {\r\n\t\tconst { firstName, lastName, email, phone, altPhone } =\r\n\t\t\tquote?.contact || {};\r\n\t\tconst { companyName } = quote?.customer || {};\r\n\t\tconst { shipCode } = quote || {};\r\n\r\n\t\tconsole.log({ quote });\r\n\r\n\t\treturn {\r\n\t\t\tcontact: {\r\n\t\t\t\tfirstName: firstName || \"\",\r\n\t\t\t\tlastName: lastName || \"\",\r\n\t\t\t\temail: email || \"\",\r\n\t\t\t\tphone: phone || \"\",\r\n\t\t\t\taltPhone: altPhone || \"\",\r\n\t\t\t},\r\n\t\t\tcustomer: {\r\n\t\t\t\tcompanyName: companyName || \"\",\r\n\t\t\t},\r\n\t\t\tsameAsBilling: !!quote?.sameAsBilling ? true : false,\r\n\t\t\tshippingAddressId: quote?.shippingAddressId,\r\n\t\t\tcustomerId: quote?.contactId || \"\",\r\n\t\t\tbilling: quote?.billingAddress,\r\n\t\t\tshipping: quote?.shippingAddress,\r\n\t\t\tshipCode: shipCode || \"\",\r\n\t\t};\r\n\t}, [quote]);\r\n\r\n\tconst onSubmit = useCallback(\r\n\t\tasync (formValue) => {\r\n\t\t\tconst [key, value] = Object.entries(formValue)[0] || {};\r\n\t\t\tconst { 0: recordType, 1: _recordKey } = key?.split(\".\");\r\n\t\t\tconst recordKey = key?.split(\".\")?.length < 2 ? key : _recordKey;\r\n\t\t\tconsole.log({formValue});\r\n\t\t\tswitch (recordType) {\r\n\t\t\t\tcase \"contact\":\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t\tcontact: { ...quote?.contact, [recordKey]: value },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tawait updateCustomer({\r\n\t\t\t\t\t\t\tid: quote?.contactId || quote?.customer?.id,\r\n\t\t\t\t\t\t\tinput: { contact: { [recordKey]: value } },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"billing\":\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t\tbillingAddress: {\r\n\t\t\t\t\t\t\t\t...quote?.billingAddress,\r\n\t\t\t\t\t\t\t\t[recordKey]: value,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tawait updateCustomer({\r\n\t\t\t\t\t\t\tid: quote?.contactId || quote?.customer?.id,\r\n\t\t\t\t\t\t\tinput: { billingAddress: { [recordKey]: value } },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"shipping\":\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t\tshippingAddress: {\r\n\t\t\t\t\t\t\t\t...quote?.shippingAddress,\r\n\t\t\t\t\t\t\t\t[recordKey]: value,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (quote?.shippingAddress?.id !== quote?.shippingAddressId) {\r\n\t\t\t\t\t\t\tawait updateQuote({\r\n\t\t\t\t\t\t\t\tid: +quoteId,\r\n\t\t\t\t\t\t\t\tinput: { shippingAddressId: quote?.shippingAddress?.id },\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tawait updateAddress({\r\n\t\t\t\t\t\t\tid: quote?.shippingAddress?.id,\r\n\t\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\t\t[recordKey]: value,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"customer\":\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t\tcustomer: {\r\n\t\t\t\t\t\t\t\t...quote?.customer,\r\n\t\t\t\t\t\t\t\t[recordKey]: value,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tawait updateCustomer({\r\n\t\t\t\t\t\t\tid: quote?.contactId || quote?.customer?.id,\r\n\t\t\t\t\t\t\tinput: { [recordKey]: value },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tconsole.error(error);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tlet val = value;\r\n\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t[key]: val,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (`${key}` === \"sameAsBilling\") {\r\n\t\t\t\t\t\tif (value === \"true\") val = \"0\";\r\n\t\t\t\t\t\tif (value === true) val = \"0\";\r\n\t\t\t\t\t\tif (value === \"True\") val = \"0\";\r\n\t\t\t\t\t\tif (value === \"false\") val = \"1\";\r\n\t\t\t\t\t\tif (value === \"False\") val = \"1\";\r\n\t\t\t\t\t\tif (value === false) val = \"1\";\r\n\r\n\t\t\t\t\t\tif (val === \"1\") {\r\n\t\t\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t\t\tsameAsBilling: val,\r\n\t\t\t\t\t\t\t\tshippingAddress: quote?.billingAddress,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsetQuote({\r\n\t\t\t\t\t\t\t\t...quote,\r\n\t\t\t\t\t\t\t\tsameAsBilling: val,\r\n\t\t\t\t\t\t\t\tshippingAddress: quote?.shippingAddress,\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn await updateQuote({\r\n\t\t\t\t\t\t\tid: +quoteId,\r\n\t\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\t\t[key]: val,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}); \r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (`${key}` === \"customerId\") {\r\n\t\t\t\t\t\tawait updateQuote({\r\n\t\t\t\t\t\t\tid: +quoteId,\r\n\t\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\t\tcontactId: val,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tawait updateQuote({\r\n\t\t\t\t\t\t\tid: +quoteId,\r\n\t\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\t\t[key]: val,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\t\t[quote, quoteId, setQuote]\r\n\t);\r\n\r\n\tconst ref = useRef(null);\r\n\tconst [customerTypedId, setCustomerTypedId] = useState(\"\");\r\n\r\n\tconst placeholder = useMemo(() => {\r\n\t\tif (!!customerTypedId) {\r\n\t\t\tconst { 0: option } =\r\n\t\t\t\t_.filter(customerOptions, (op) =>\r\n\t\t\t\t\top?.label?.startsWith(customerTypedId)\r\n\t\t\t\t) || {};\r\n\r\n\t\t\treturn option?.label;\r\n\t\t}\r\n\t\tconst op = quote?.contactId\r\n\t\t\t? _.find(customerOptions, ({ value }) => +value === +quote?.contactId)\r\n\t\t\t: _.find(customerOptions, ({ value }) => +value === +quote?.customer?.id);\r\n\t\treturn op?.label || \"Select a Customer\";\r\n\t}, [customerOptions, customerTypedId, quote]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{({ values, setFieldValue, resetForm }) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{!!formToShow ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{!quote?.isPlane && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFormToShow(\"address\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"Add Address\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst label = e.target.value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst { value } =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_.find(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomerOptions,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t({ label: _label }) => _label === label\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) || {};\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFieldValue(\"customerId\", value);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetCustomerTypedId(value);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (ref.current) clearTimeout(ref.current);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref.current = setTimeout(async () => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tawait onOptionClick(value, resetForm);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetCustomerTypedId(\"\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\toptions={customerOptions.map(({ label, value }) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"customerId\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabelText=\"Company\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={customerTypedId}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={customersLoading}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!!quote?.isPlane}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t{values.customerId && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t);\r\n\t\t\t\t}}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Customer;\r\n","import React, { useCallback, useMemo } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport { Flex } from \"reflexbox\";\r\nimport styled, { useTheme, css } from \"styled-components\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport {\r\n createAttachment,\r\n deleteAttachment,\r\n getAttachments,\r\n} from \"../../requests/quoteManagementRequests\";\r\nimport { Body, Helper } from \"../UI/Text\";\r\nimport Card from \"../UI/Card\";\r\nimport Button from \"../UI/Button\";\r\nimport File from \"../UI/forms/File\";\r\nimport * as icons from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst AttachmentWrap = styled(Flex)`\r\n ${({ key }) => {\r\n return css`\r\n #${key} {\r\n opacity: 0;\r\n transition: 200ms ease-in all;\r\n }\r\n &:hover {\r\n #${key} {\r\n opacity: 1;\r\n transition: 50ms ease-out all;\r\n }\r\n }\r\n `;\r\n }}\r\n`;\r\n\r\nconst Attachments = ({ name = \"file\", readonly }) => {\r\n const theme = useTheme();\r\n const { quoteId } = useParams();\r\n\r\n const {\r\n data: attachments = [],\r\n refetchQuery,\r\n setData,\r\n } = useQuery({\r\n queryID: `attachments|${quoteId}`,\r\n request: getAttachments,\r\n queryVariables: { quoteId },\r\n forcedFilters: {},\r\n });\r\n\r\n const checkFileType = useCallback((filetype) => {\r\n if (filetype === \"video\") {\r\n return \"video/mp4,video/x-m4v,video/*\";\r\n }\r\n if (filetype === \"officedoc\") {\r\n return `application/msword, application/vnd.ms-excel,\r\n application/vnd.ms-powerpoint,\r\n application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,\r\n application/vnd.openxmlformats-officedocument.presentationml.presentation,\r\n application/vnd.openxmlformats-officedocument.wordprocessingml.document`;\r\n }\r\n if (filetype === \"pdf\") {\r\n return \"application/pdf\";\r\n }\r\n return \"image/*\";\r\n }, []);\r\n\r\n const getIcon = useCallback((encoding, mimetype) => {\r\n if (!mimetype) return icons[\"faFileCircleQuestion\"];\r\n if (mimetype.startsWith(\"image\")) return icons[\"faFileImage\"];\r\n if (mimetype.startsWith(\"video\")) return icons[\"faFileVideo\"];\r\n if (mimetype.startsWith(\"office\")) return icons[\"faFile\"];\r\n if (mimetype === \"pdf\") return icons[\"faFilePdf\"];\r\n }, []);\r\n\r\n const onSubmit = useCallback(\r\n async (file) => {\r\n const input = {\r\n fieldname: name,\r\n originalName: file.name,\r\n encoding: checkFileType(file.type),\r\n mimetype: file.type,\r\n filename: file.name,\r\n path: file.path,\r\n size: file.size,\r\n quoteId,\r\n };\r\n const oldAttachments = [...attachments];\r\n setData([...oldAttachments, { id: \"new\", ...input }]);\r\n const newAttachment = await createAttachment({ input });\r\n setData([...oldAttachments, newAttachment.dataValues]);\r\n await refetchQuery(`attachments|${quoteId}`);\r\n },\r\n [attachments, checkFileType, name, quoteId, refetchQuery, setData]\r\n );\r\n\r\n const onDelete = useCallback(\r\n async (id) => {\r\n const oldAttachments = [...attachments];\r\n _.remove(oldAttachments, (a) => a.id === id);\r\n setData(oldAttachments);\r\n await deleteAttachment({ id });\r\n },\r\n [attachments, setData]\r\n );\r\n\r\n const _attachments = useMemo(() => {\r\n const exts = { GB: 1000000000, MB: 1000000, KB: 1000 };\r\n return _.isArray(attachments)\r\n ? attachments.map((attachment) => {\r\n const { id, filename, path, size, mimetype, encoding } =\r\n attachment || {};\r\n\r\n const _size = () => {\r\n if (size > exts.GB) return `${Math.round(size / exts.GB)} GB`;\r\n if (size > exts.MB) return `${Math.round(size / exts.MB)} MB`;\r\n if (size > exts.KB) return `${Math.round(size / exts.KB)} KB`;\r\n else return `${size} B`;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Size: {_size()}\r\n \r\n \r\n {filename}\r\n \r\n \r\n \r\n \r\n onDelete(id)}\r\n iconName=\"faTrash\"\r\n />\r\n \r\n \r\n );\r\n })\r\n : [];\r\n }, [attachments, getIcon, onDelete, theme.danger, theme.secondary]);\r\n\r\n return (\r\n \r\n {!readonly && }\r\n\r\n \r\n {_attachments}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Attachments;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { Body } from \"../../UI/Text\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport formatter from \"../../../modules/formatter\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\n\r\nconst DetailRow = ({ Detail, i }) => {\r\n\tconst theme = useTheme();\r\n\tconst location = useLocation();\r\n\tconst { quote } = useContext(ConfiguratorContext);\r\n\tconst isPlane = useMemo(() => quote?.isPlane, [quote]);\r\n\tconst { 1: priceMode } = location.pathname.split(\"/\");\r\n\tconst isDealer = useMemo(\r\n\t\t() => priceMode === \"DealerQuote\" || !isPlane,\r\n\t\t[priceMode, isPlane]\r\n\t);\r\n\r\n\tconst { Value, Caption: _Caption } = Detail || {};\r\n\tlet discount = 1;\r\n\tconst [priceCode, caption, ...rest] = _Caption.split(\":\");\r\n\tlet ii = 0;\r\n\tfor (let item of rest) {\r\n\t\tif (item.includes(\"Discount\")) {\r\n\t\t\tconst discString = +rest[ii + 1].replace(\"%\", \"\");\r\n\t\t\tdiscount = discString / 100;\r\n\t\t}\r\n\t\tii += 1;\r\n\t}\r\n\r\n\tif (priceCode === \"
\") return
;\r\n\r\n\tif (priceCode === \"
\") {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\tif (priceCode?.startsWith(\"\")) {\r\n\t\tlet caption = _Caption.replace(\"\", \"\").replace(\"\", \"\");\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{caption}\r\n\t\t\t\t\r\n\t\t\t\t{Value}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tconst Caption = (\r\n\t\t\r\n\t\t\t{caption}:{\" \"}\r\n\t\t\t\r\n\t\t\t\t{rest?.[0] === \" \" || rest?.[0] === \" \" || !rest?.[0]\r\n\t\t\t\t\t? \"\"\r\n\t\t\t\t\t: discount !== 1\r\n\t\t\t\t\t? rest[0]?.split?.(\"Discount\")?.[0]\r\n\t\t\t\t\t: rest}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\tlet numval;\r\n\t\r\n\tif (numval)\r\n\t\tnumval= +Value.replace(\"$\", \"\").replace(\",\", \"\");\r\n\r\n\tif (\r\n\t\t(priceCode === \"DEALER\" && isDealer) ||\r\n\t\t(priceCode === \"MSRP\" && !isDealer)\r\n\t)\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Caption}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{priceCode === \"DEALER\" && discount !== 1 && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${formatter.currency((numval / (1 + discount)).toFixed(2))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{Value}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\tif (![\"DEALER\", \"MSRP\"].includes(priceCode))\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{\" \"}\r\n\t\t\t\t\r\n\t\t\t\t\t{_Caption}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Value}{\" \"}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default DetailRow;\r\n","import React, {\r\n\tuseMemo,\r\n\tuseContext,\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseState,\r\n} from \"react\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { Body } from \"../../UI/Text\";\r\nimport Table from \"../../UI/Table\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFileCircleExclamation } from \"@fortawesome/free-solid-svg-icons\";\r\nimport {\r\n\tdeleteLine,\r\n\tgetLines,\r\n} from \"../../../requests/quoteManagementRequests\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\nimport DetailRow from \"./DetailRow\";\r\nimport { createSearchParams, useLocation, useNavigate } from \"react-router-dom\";\r\nimport PriceDisplay from \"../PriceDisplay\";\r\nimport UserContext from \"../../../context/user/UserContext\";\r\nimport Button from \"../../UI/Button\";\r\nimport * as constants from \"../../../modules/constants\";\r\nimport _ from \"lodash\";\r\nimport { useQuery } from \"../../Hooks\";\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\ttransition: 200ms all ease-out;\r\n\theight: 100%;\r\n`;\r\n\r\nconst LineImg = styled.img`\r\n\tmax-width: 75px;\r\n\tmax-height: 75px;\r\n\twidth: auto !important;\r\n\theight: auto;\r\n`;\r\n\r\nconst LineTable = ({ quoteId, open, isLoading }) => {\r\n\tconst theme = useTheme();\r\n\tconst navigate = useNavigate();\r\n\tconst location = useLocation();\r\n\tconst { activeUser, isLoading: userLoading } = useContext(UserContext);\r\n\tconst { 1: priceMode } = location.pathname.split(\"/\");\r\n\tconst {\r\n\t\tquote,\r\n\t\tsetQuote,\r\n\t\tsetIsReconfigure,\r\n\t\tsetActiveProduct,\r\n\t\tsetConfiguratorMode,\r\n\t\tprinting,\r\n\t} = useContext(ConfiguratorContext);\r\n\tconst isPlane = useMemo(() => quote?.isPlane, [quote]);\r\n\tconst isDealer = useMemo(\r\n\t\t() => priceMode === \"DealerQuote\" || !isPlane,\r\n\t\t[priceMode, isPlane]\r\n\t);\r\n\tconst isQuote = useMemo(() => quote?.type === 1, [quote]);\r\n\r\n\tconst _lines = useQuery({\r\n\t\tqueryID: `lines|${quoteId}`,\r\n\t\trequest: getLines,\r\n\t\tqueryVariables: { quoteId, isDealer, erpId: quote?.customer?.erpId },\r\n\t\tskip:\r\n\t\t\t!quoteId || !quote?.customer?.erpId || userLoading || isLoading || !quote,\r\n\t});\r\n\tuseEffect(() => {\r\n\t\tif (\r\n\t\t\t_lines?.data &&\r\n\t\t\t!_lines.isLoading &&\r\n\t\t\t!quote?.lines &&\r\n\t\t\t!quote?.lineCount &&\r\n\t\t\t!isLoading &&\r\n\t\t\t!!quote\r\n\t\t)\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\tlines: _lines?.data?.rows,\r\n\t\t\t\tlineCount: _lines?.data?.count,\r\n\t\t\t});\r\n\t}, [_lines.data, _lines.isLoading, isLoading, quote, setQuote]);\r\n\r\n\tconst lines = useMemo(() => quote?.lines || [], [quote]);\r\n\r\n\tconst lineCount = useMemo(() => {\r\n\t\treturn quote?.lineCount || [];\r\n\t}, [quote]);\r\n\r\n\tconst onReconfigure = useCallback(\r\n\t\tasync (row) => {\r\n\t\t\tconst {\r\n\t\t\t\tproductId,\r\n\t\t\t\tconfigurationId,\r\n\t\t\t\tid: LineId,\r\n\t\t\t\tsourceConfigurationId,\r\n\t\t\t\tsourceHeaderId,\r\n\t\t\t\theaderId,\r\n\t\t\t} = row;\r\n\t\t\tsetIsReconfigure(true);\r\n\t\t\tsetActiveProduct(productId);\r\n\t\t\tsetConfiguratorMode(constants.CONFIGURATOR_MODES.Default);\r\n\r\n\t\t\tconst lineNumber =\r\n\t\t\t\t_.findIndex(quote?.lines, (line) => line.id === LineId) + 1;\r\n\r\n\t\t\tlet paramsObj = {\r\n\t\t\t\tlineNumber,\r\n\t\t\t\tLineId,\r\n\t\t\t};\r\n\r\n\t\t\tparamsObj.headerId = sourceHeaderId || headerId;\r\n\r\n\t\t\tparamsObj.configurationId = sourceConfigurationId || configurationId;\r\n\r\n\t\t\tnavigate({\r\n\t\t\t\tpathname: `/Configurator/${productId}/${quoteId}/${configurationId}`,\r\n\t\t\t\tsearch: createSearchParams(paramsObj).toString(),\r\n\t\t\t});\r\n\t\t},\r\n\t\t[\r\n\t\t\tsetIsReconfigure,\r\n\t\t\tsetActiveProduct,\r\n\t\t\tsetConfiguratorMode,\r\n\t\t\tquote,\r\n\r\n\t\t\tnavigate,\r\n\t\t\tquoteId,\r\n\t\t]\r\n\t);\r\n\r\n\tconst roleLevel = useMemo(() => activeUser?.roleLevel, [activeUser]);\r\n\tconst activeOrderId = useMemo(() => quote?.activeOrderId, [quote]);\r\n\r\n\tconst onDeleteLine = useCallback(\r\n\t\tasync (row) => {\r\n\t\t\tconst { lines } = quote || {};\r\n\t\t\tconst { _id, price = 0, quantity = 1 } = row || {};\r\n\r\n\t\t\tconst newLines = [...lines];\r\n\t\t\tconst i = _.findIndex(newLines, (line) => line?._id === _id);\r\n\t\t\tnewLines.splice(i, 1);\r\n\r\n\t\t\tconst newPrice = quote?.totalCost - +price * +quantity;\r\n\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\ttotalCost: newPrice,\r\n\t\t\t\tlines: newLines,\r\n\t\t\t\tlineCount: quote?.lineCount - 1,\r\n\t\t\t});\r\n\t\t\tawait deleteLine({ _id, quoteId });\r\n\t\t},\r\n\t\t[quote, setQuote, quoteId]\r\n\t);\r\n\r\n\tconst columns = useMemo(() => {\r\n\t\tconst cols = [\r\n\t\t\t{\r\n\t\t\t\tid: \"imgUrl\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{(row?.imgUrl?.startsWith(\"http\") ||\r\n\t\t\t\t\t\t\trow?.imgUrl?.startsWith(\"/\") ||\r\n\t\t\t\t\t\t\trow?.base64Image) && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Preview\",\r\n\t\t\t\tsize: { md: 1.5, sm: -1, xs: -1 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"partNumber\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{row.partNumber}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Part #\",\r\n\t\t\t\tsize: { md: 1.5, sm: 1.5, xs: 1.5 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"description\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{row.description}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Description\",\r\n\t\t\t\tsize: { md: 4, sm: 3, xs: 0 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"quantity\",\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\treturn row.id === \"new\" ? null : {row?.quantity};\r\n\t\t\t\t},\r\n\t\t\t\theader: \"Qty.\",\r\n\t\t\t\tsize: { md: 1, sm: 1, xs: 1 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"price\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Unit Price\",\r\n\t\t\t\tsize: { md: 2.5, sm: -1, xs: -1 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"totalPrice\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Total\",\r\n\t\t\t\tsize: { md: 2.5, sm: 2, xs: 2 },\r\n\t\t\t\tsort: false,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"actions\",\r\n\t\t\t\theader: \"\",\r\n\t\t\t\tsort: false,\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* {quote?.type === 2 ? (\r\n navigate(row?.TrackingURL)}\r\n />\r\n ) : null} */}\r\n\t\t\t\t\t\t\t{!row.configurationId ? (\r\n\t\t\t\t\t\t\t\t onDeleteLine(row)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{isQuote ? (\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t onReconfigure(row)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t onDeleteLine(row)}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\tsize:\r\n\t\t\t\t\troleLevel >= 5 && !!activeOrderId && !printing\r\n\t\t\t\t\t\t? { lg: 4, md: 0, sm: 0, xs: 0 }\r\n\t\t\t\t\t\t: { md: -1, sm: -1, xs: -1 },\r\n\t\t\t},\r\n\t\t];\r\n\t\t//{\r\n\t\t/* onCopyLine(row)}\r\n /> */\r\n\t\t//\t}\r\n\t\tif (!!isPlane)\r\n\t\t\tcols.push({\r\n\t\t\t\tid: \"Details\",\r\n\t\t\t\theader: \"\",\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\tconst { Details: _Details } = row || {};\r\n\r\n\t\t\t\t\tconsole.log({ _Details });\r\n\r\n\t\t\t\t\tif (!_Details) return null;\r\n\r\n\t\t\t\t\tlet Details = _Details;\r\n\t\t\t\t\tif (typeof _Details === \"string\" || _Details instanceof String)\r\n\t\t\t\t\t\tDetails = JSON.parse(_Details);\r\n\r\n\t\t\t\t\t//= JSON.parse(_Details) || []; // JSON.parse(_Details);\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{Details.map((Detail, i) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\tsort: false,\r\n\t\t\t\tsize: { xs: 0 },\r\n\t\t\t});\r\n\r\n\t\treturn cols;\r\n\t}, [\r\n\t\troleLevel,\r\n\t\tactiveOrderId,\r\n\t\tprinting,\r\n\t\tisPlane,\r\n\t\ttheme.secondary,\r\n\t\ttheme.danger,\r\n\t\ttheme.borderColor,\r\n\t\tisDealer,\r\n\t\tisQuote,\r\n\t\tonDeleteLine,\r\n\t\tonReconfigure,\r\n\t]);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LineTable;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport LineTable from \"./LineTable\";\r\nimport { Heading, Body } from \"../../UI/Text\";\r\nimport formatter from \"../../../modules/formatter\";\r\nimport moment from \"moment\";\r\nimport _ from \"lodash\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\n\r\nexport const CustomerInfo = () => {\r\n\tconst { quote } = useContext(ConfiguratorContext);\r\n\tconst { shippingAddress, billingAddress } = quote || {};\r\n\tconst addresses = [billingAddress, shippingAddress];\r\n\tconst { sameAsShipping } = billingAddress || {};\r\n\t// function formatPhoneNumber(phoneNumberString) {\r\n\t// var cleaned = (\"\" + phoneNumberString).replace(/\\D/g, \"\");\r\n\t// var match = cleaned.match(/^(1|)?(\\d{3})(\\d{3})(\\d{4})$/);\r\n\t// if (match) {\r\n\t// var intlCode = match[1] ? \"+1 \" : \"\";\r\n\t// return [intlCode, \"(\", match[2], \") \", match[3], \"-\", match[4]].join(\"\");\r\n\t// }\r\n\t// return \"\";\r\n\t// }\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/* \r\n Customer\r\n {companyName && (\r\n \r\n \r\n Name:\r\n \r\n {companyName}\r\n \r\n )}\r\n {erpId && (\r\n \r\n \r\n ID:\r\n \r\n {erpId}\r\n \r\n )}\r\n {firstName && (\r\n \r\n \r\n First Name:\r\n \r\n {firstName}\r\n \r\n )}\r\n {lastName && (\r\n \r\n \r\n Last Name:\r\n \r\n {lastName}\r\n \r\n )}\r\n {email && (\r\n \r\n \r\n Email Address:\r\n \r\n {email}\r\n \r\n )}\r\n {phone && (\r\n \r\n \r\n Phone Number:\r\n \r\n {formatPhoneNumber(phone)}\r\n \r\n )}\r\n {poNumber && (\r\n \r\n \r\n PO Number:\r\n \r\n {poNumber}\r\n \r\n )}\r\n */}\r\n\r\n\t\t\t{addresses.map((address, i) => {\r\n\t\t\t\tconst { Address, Address2, City, State, Zip, id, Name, AddressType } =\r\n\t\t\t\t\taddress || {};\r\n\t\t\t\tif (!address) return null;\r\n\t\t\t\tif (i === 1 && sameAsShipping) return null;\r\n\t\t\t\tconst headers = [\"Billing Address\", \"Shipping Address\"];\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{headers[i]}\r\n\t\t\t\t\t\t{Name && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tName:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Name}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{Address && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAddress Line 1:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Address}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{Address2 && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tAddress Line 2:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Address2}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{City && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tCity:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{City}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{State && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tProvince/State:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{State}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{Zip && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tPostal/Zip:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Zip}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const CommunicationList = ({ communications }) => {\r\n\tif (!communications || !_.isArray(communications)) return null;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{communications.map((item, i) => {\r\n\t\t\t\tconst { id, comment, date, username } = item || {};\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{`${moment(date).format(\"MM/DD/YYYY\")}`}\r\n\t\t\t\t\t\t\t{\" – \"}\r\n\t\t\t\t\t\t\t{comment}\r\n\t\t\t\t\t\t\t{i === 0 ? \" by \" : \" – \"}\r\n\t\t\t\t\t\t\t{username}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst PrintQuote = React.forwardRef((props, ref) => {\r\n\tconst theme = useTheme();\r\n\tconst {\r\n\t\tlines: rows,\r\n\t\tlineCount: count,\r\n\t\tcommunications,\r\n\t\tlineLoading,\r\n\t\tisDealer,\r\n\t\tisPlane,\r\n\t} = props || {};\r\n\r\n\tconst { quote } = useContext(ConfiguratorContext);\r\n\r\n\tconst { id: quoteId, type, billingAddress } = quote || {};\r\n\r\n\tconst price = useMemo(() => {\r\n\t\tlet total = 0;\r\n\t\tlet discountTotal = 0;\r\n\t\tif (quote?.lines && quote?.lines?.length > 0) {\r\n\t\t\tfor (let line of quote?.lines) {\r\n\t\t\t\tconsole.log({ line });\r\n\t\t\t\t// DETAILS DO NOT EXIST ON THE LINE, NEED TO UPDATE LINE TABLE WITH THE DETAILS OR PULL THEM DYNAMICALLY\r\n\t\t\t\t// update to use get lines request based on quote instead of pulling directly. Get lines handles pulling the latest config data\r\n\t\t\t\tconst { quantity = 1, price, dealerPrice, Details: d } = line;\r\n\t\t\t\ttotal += quantity * price;\r\n\t\t\t\tlet discountPrice = !isPlane ? dealerPrice : 0;\r\n\t\t\t\tif (!!isDealer && !!isPlane) {\r\n\t\t\t\t\tconst Details = JSON.parse(d || \"[]\");\r\n\t\t\t\t\tDetails.forEach((Detail, i) => {\r\n\t\t\t\t\t\tconsole.log({ Detail });\r\n\t\t\t\t\t\tconst { Value, Caption: _Caption } = Detail || {};\r\n\r\n\t\t\t\t\t\tconst isMSRP = _Caption.startsWith(\"MSRP\");\r\n\t\t\t\t\t\tconst isDEALER = _Caption.startsWith(\"DEALER\");\r\n\r\n\t\t\t\t\t\tif (!isMSRP && !isDEALER) return;\r\n\t\t\t\t\t\tif (Value === \"***INCLUDED***\") return;\r\n\r\n\t\t\t\t\t\tconsole.log({ isDEALER, Value });\r\n\r\n\t\t\t\t\t\tconsole.log({ Value, isDEALER, isMSRP });\r\n\t\t\t\t\t\tconst val = Value.replace(/[^\\p{L}0-9]/g, \"\") / 100;\r\n\t\t\t\t\t\tconsole.log({ val });\r\n\r\n\t\t\t\t\t\tif (isDealer) {\r\n\t\t\t\t\t\t\tif (isDEALER) {\r\n\t\t\t\t\t\t\t\tdiscountPrice += val;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tdiscountTotal += discountPrice * quantity;\r\n\t\t\t}\r\n\r\n\t\t\tif (isDealer)\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tTotal:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${formatter.currency(total)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${formatter.currency(discountTotal)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\r\n\t\t\treturn `Total: $${formatter.currency(total)}`;\r\n\t\t}\r\n\r\n\t\treturn `Total: $${formatter.currency(0)}`;\r\n\t}, [quote, isDealer, theme.secondary, isPlane]);\r\n\tconst { sameAsShipping } = billingAddress || {};\r\n\r\n\tconst shipCode = useMemo(() => {\r\n\t\treturn _.find(\r\n\t\t\tquote?.shipCodes || [],\r\n\t\t\t({ ShipVia }) => ShipVia === quote?.shipCode\r\n\t\t);\r\n\t}, [quote]);\r\n\r\n\tconst poNumber = useMemo(() => quote?.poNumber || \"\", [quote]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{/* remove total cost and quote header on summary page */}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{`${[\"Quote\", \"Order\", \"Quote Request\"][type - 1]} #${quoteId}`}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{price}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tCustomer PO:{\" \"}\r\n\t\t\t\t\t\t\t\t{poNumber}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{!!shipCode && !isPlane && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tShipping Method:\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{shipCode?.description}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n});\r\n\r\nexport default PrintQuote;\r\n","import axios from \"axios\";\r\n\r\nexport const payment = async ({ amount, id }) => {\r\n try {\r\n const result = await axios.post(\"/api/v1/paymentManagement/payment\", {\r\n amount,\r\n id,\r\n });\r\n return result.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createCheckoutSession = async () => {\r\n try {\r\n const result = await axios.post(\r\n \"/api/v1/paymentManagement/createCheckoutSession\"\r\n );\r\n console.log(result);\r\n return result.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import React, { useState, useContext } from \"react\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { useStripe, useElements, CardElement } from \"@stripe/react-stripe-js\";\r\nimport { Flex, Box } from \"reflexbox/styled-components\";\r\nimport Button from \"../UI/Button\";\r\nimport Card from \"../UI/Card\";\r\nimport Loading from \"../UI/Loading\";\r\nimport { payment } from \"../../requests/paymentRequests\";\r\nimport { updateQuote } from \"../../requests/quoteManagementRequests\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\n\r\nconst StripeWrapper = styled(Box)`\r\n iframe {\r\n height: 1rem;\r\n }\r\n`;\r\n\r\nconst PaymentForm = ({ quote }) => {\r\n const theme = useTheme();\r\n const { totalCost } = quote || {};\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n\r\n const [isLoading, setLoading] = useState(false);\r\n\r\n const { activeUser, platform } = useContext(UserContext);\r\n const { integration } = platform || {};\r\n const { checkoutType } = activeUser || {};\r\n\r\n if (checkoutType !== \"stripe\") return null;\r\n\r\n const cardOptions = {\r\n iconStyle: \"solid\",\r\n style: {\r\n base: {\r\n backgroundColor: \"transparent\",\r\n iconColor: theme.primary,\r\n color: theme.primary,\r\n fontWeight: 500,\r\n fontFamily: \"Roboto, Open Sans, Segoe UI, sans-serif\",\r\n fontSize: \"16px\",\r\n fontSmoothing: \"antialiased\",\r\n \":-webkit-autofill\": { color: theme.secondary },\r\n \"::placeholder\": { color: theme.secondary },\r\n },\r\n invalid: {\r\n iconColor: \"#ffc7ee\",\r\n color: \"#ffc7ee\",\r\n },\r\n },\r\n };\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n const { error, paymentMethod } = await stripe.createPaymentMethod({\r\n type: \"card\",\r\n card: elements.getElement(CardElement),\r\n });\r\n if (!error) {\r\n setLoading(true);\r\n try {\r\n const { id } = paymentMethod;\r\n await payment({ amount: totalCost * 100, id });\r\n\r\n await updateQuote({\r\n id: quote?.id,\r\n _id: quote?._id,\r\n input: { type: 2, integration },\r\n type: \"order\",\r\n });\r\n /* Using http request here to unload the stripe library since they like\r\n * to track users for the remainder of the session. */\r\n window.location.replace(\"/ThankYou\");\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n }\r\n } else {\r\n console.error(error);\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 {isLoading ? (\r\n \r\n ) : (\r\n \"Checkout\"\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PaymentForm;\r\n","import React from \"react\";\r\nimport { Elements } from \"@stripe/react-stripe-js\";\r\nimport { loadStripe } from \"@stripe/stripe-js/pure\";\r\nimport PaymentForm from \"./PaymentForm\";\r\n\r\nconst PUBLIC_KEY =\r\n \"pk_test_51LNRuoGsa7Vz9DKLuiWB6js7HEjGj6wvfVzgd4BN7XRuelrJO5JCVSm8PbbWjZxh40YkR9y5IHQAODiJwJE2YAu300pTqU5bPL\";\r\n\r\nconst StripeContainer = ({ quote }) => {\r\n /* Importing loadStripe from \"@stripe/stripe-js/pure\" to prevent stripe from\r\n * loading until it is actually needed. This will help prevent them from\r\n * tracking our users until they actually need to. {insert grumpy face here}\r\n */\r\n const stripeTestPromise = loadStripe(PUBLIC_KEY);\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default StripeContainer;\r\n","import React from \"react\";\r\nimport StripeContainer from \"../Payments/StripeContainer\";\r\nimport * as formatter from \"../../modules/formatter\";\r\nimport styled from \"styled-components\";\r\nimport { Body } from \"../UI/Text\";\r\nimport Card from \"../UI/Card\";\r\nimport { Flex, Box } from \"reflexbox\";\r\n\r\nconst CheckoutWrapper = styled(Flex)`\r\n justify-content: center;\r\n div {\r\n div {\r\n > svg {\r\n width: 100px;\r\n height: auto;\r\n margin-bottom: 2rem;\r\n path {\r\n fill: ${({ theme }) => theme.textDark};\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Checkout = (props) => {\r\n const { quote } = props || {};\r\n const { totalCost } = quote || {};\r\n return (\r\n \r\n \r\n \r\n \r\n Stripe logo\r\n \r\n \r\n \r\n \r\n Total: \r\n {`$${formatter.currency(totalCost)}`}\r\n \r\n \r\n Please enter your credit card information below, using Stripe's\r\n secure checkout form.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Checkout;\r\n","import React, { useContext, useState, useCallback, useMemo } from \"react\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport * as yup from \"yup\";\r\nimport { Formik, Form } from \"formik\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport LineTable from \"./PrintQuote/LineTable\";\r\nimport Card from \"../UI/Card\";\r\nimport Button from \"../UI/Button\";\r\nimport Field from \"../UI/forms/Field\";\r\nimport PrintQuote, { CustomerInfo } from \"./PrintQuote\";\r\nimport Checkout from \"./Checkout\";\r\nimport {\r\n updateQuote,\r\n placeOrder,\r\n} from \"../../requests/quoteManagementRequests\";\r\nimport { useTheme } from \"styled-components\";\r\nimport Loading from \"../UI/Loading\";\r\nimport PagerContextProvider from \"../UI/Pager/PagerContext\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport { Body } from \"../UI/Text\";\r\n\r\n// function formatPhoneNumber(phoneNumberString) {\r\n// var cleaned = (\"\" + phoneNumberString).replace(/\\D/g, \"\");\r\n// var match = cleaned.match(/^(1|)?(\\d{3})(\\d{3})(\\d{4})$/);\r\n// if (match) {\r\n// var intlCode = match[1] ? \"+1 \" : \"\";\r\n// return [intlCode, \"(\", match[2], \") \", match[3], \"-\", match[4]].join(\"\");\r\n// }\r\n// return \"\";\r\n// }\r\n\r\nconst Summary = ({\r\n lineCount,\r\n printRef,\r\n preview,\r\n setPreview,\r\n communications,\r\n refetchQuote,\r\n lineLoading,\r\n isDealer,\r\n}) => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n const { quoteId } = useParams();\r\n const { activeUser, platform } = useContext(UserContext);\r\n const { showFailureAlert } = useContext(AlertContext);\r\n const { quote, setQuote } = useContext(ConfiguratorContext);\r\n const { integration } = platform || {};\r\n \r\n\r\n const { id, _id, poNumber, lines } = quote || {};\r\n const isPlane = useMemo(() => !!quote?.isPlane, [quote]);\r\n\r\n const shipCodeOptions = useMemo(() => {\r\n if (quote?.shipCodes?.length < 1 || !quote?.shipCodes) return [];\r\n return [\r\n ...quote?.shipCodes?.map((code) => {\r\n const { ShipVia, description } = code;\r\n return ;\r\n }),\r\n ];\r\n }, [quote]);\r\n\r\n const [isLoading, setLoading] = useState(false);\r\n const [orderPlaced, setOrderPlaced] = useState(false);\r\n \r\n const isCheckout = activeUser?.checkoutType === \"stripe\";\r\n\r\n const onSubmit = useCallback(\r\n async ({ poNumber: _poNumber }) => {\r\n setQuote({\r\n ...quote,\r\n poNumber: _poNumber,\r\n });\r\n await updateQuote({\r\n input: { poNumber: _poNumber },\r\n _id: _id,\r\n id,\r\n });\r\n },\r\n [_id, id, quote, setQuote]\r\n );\r\n\r\n const onPlaceOrder = useCallback(\r\n async ({ poNumber }) => { \r\n setOrderPlaced(true);\r\n\r\n if (quote?.lines?.length < 1) {\r\n return showFailureAlert(\r\n \"You must have at least one Quote Line to place an order.\"\r\n );\r\n }\r\n if (!quote?.customer?.erpId && activeUser?.checkoutType !== \"stripe\") {\r\n return showFailureAlert(\r\n \"An ERP ID is required to submit quotes to SyteLine\"\r\n );\r\n }\r\n if (!poNumber) {\r\n return showFailureAlert(\r\n \"You must provide a Customer PO Number on the Quote Summary before placing an Order.\"\r\n );\r\n }\r\n\r\n if (!quote?.shippingAddress?.City) {\r\n return showFailureAlert(\r\n \"You must specify a city for the shipping address.\"\r\n );\r\n }\r\n\r\n if (!quote?.shippingAddress?.Country) {\r\n return showFailureAlert(\r\n \"You must specify a country for the shipping address.\"\r\n );\r\n }\r\n \r\n setLoading(true);\r\n await updateQuote({\r\n input: { poNumber },\r\n _id: _id,\r\n id,\r\n });\r\n\r\n await placeOrder({\r\n type: \"order\",\r\n input: {\r\n type: 2,\r\n integration,\r\n },\r\n _id: _id || undefined,\r\n id,\r\n });\r\n refetchQuote(\"myOrders\");\r\n refetchQuote(\"quotes\");\r\n refetchQuote(\"quoteRequests\");\r\n\r\n navigate(\"/ThankYou\");\r\n setLoading(false);\r\n \r\n },\r\n [\r\n _id,\r\n id,\r\n integration,\r\n navigate,\r\n refetchQuote,\r\n quote,\r\n activeUser,\r\n showFailureAlert,\r\n setOrderPlaced\r\n ]\r\n );\r\n\r\n const onChangeShipCode = useCallback(\r\n async (e) => {\r\n const value = e.target.value;\r\n await updateQuote({ id: quoteId, input: { shipCode: value } });\r\n setQuote({ ...quote, shipCode: value });\r\n },\r\n [quote, quoteId, setQuote]\r\n );\r\n\r\n const shipCode = useMemo(() => {\r\n return quote?.shipCode || \"\";\r\n }, [quote]);\r\n\r\n const { companyName } = useMemo(() => quote?.customer || {}, [quote]);\r\n // const { firstName, lastName, email, phone } = useMemo(\r\n // () => quote?.contact || {},\r\n // [quote]\r\n // );\r\n // const { Address, Address2, City, State, Zip } = useMemo(\r\n // () => quote?.billingAddress || {},\r\n // [quote]\r\n // );\r\n // const shippingAddresses = useMemo(\r\n // () => quote?.shippingAddresses || [],\r\n // [quote]\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 {quote?.type !== 1 ? null : (\r\n \r\n {/**\r\n * Add PO number and account number fields instead of checkout\r\n */}\r\n {isCheckout ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {({ values }) => {\r\n return (\r\n
\r\n \r\n {!companyName ? null : (\r\n \r\n Company:\r\n\r\n \r\n {companyName}\r\n \r\n \r\n )}\r\n {isPlane ? null : (\r\n \r\n \r\n \r\n {shipCodeOptions}\r\n \r\n {/* */}\r\n \r\n )}\r\n \r\n onSubmit(values)}\r\n name=\"poNumber\"\r\n maxLength={25}\r\n />\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \"Place Order\"\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 {/* This will be for place order when user is not assigned to self checkout */}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Summary;\r\n","import axios from \"axios\";\r\n\r\nexport const getRMAs = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/getRMAs\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getRMA = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/getRMA\", body);\r\n\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createRMAFromQuote = async (quoteId) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/createRMAFromQuote\", {\r\n quoteId,\r\n });\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createRMAForAircraftParts = async (pid, groupId) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/createRMAForAircraftParts\", {\r\n pid, groupId\r\n });\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createRMA = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/createRMA\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const updateRMA = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/updateRMA\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const deleteRMA = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/deleteRMA\", body);\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const submitRMA = async (body) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/RMAManagement/submitRMA\", body);\r\n if (res?.status === 200) return res.data;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport const getInteractions = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionsManagement/getInteractions\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getInteraction = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionsManagement/getInteraction\",\r\n body\r\n );\r\n\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createInteraction = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionsManagement/createInteraction\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const createInteractionDetail = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionsManagement/createInteractionDetail\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const updateInteraction = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionsManagement/updateInteraction\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const deleteInteraction = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionsManagement/deleteInteraction\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import React, { useCallback, useContext, useMemo } from \"react\";\r\nimport _ from \"lodash\";\r\nimport * as yup from \"yup\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport { Form, Formik } from \"formik\";\r\nimport { Field, FormButtonCluster } from \"../UI/forms\";\r\nimport * as r from \"../../requests/interactionsRequests\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n topic: yup.string().required(\"Topic is required.\"),\r\n RefType: yup.string().required(\"Reference Type is required.\"),\r\n description: yup.string().required(\"Description is required.\"),\r\n stat: yup.string().required(\"Status is required.\"),\r\n interaction_type: yup.string().required(\"Type is required.\"),\r\n});\r\n\r\nconst InteractionForm = ({\r\n data,\r\n count,\r\n interactionId,\r\n setInteractionId,\r\n currentInteraction,\r\n setShow,\r\n setData,\r\n interactionTopics = [],\r\n refetchQuery,\r\n}) => {\r\n const { showSuccessAlert } = useContext(AlertContext);\r\n const { quoteId } = useParams();\r\n const { activeUser } = useContext(UserContext);\r\n\r\n const { quote } = useContext(ConfiguratorContext);\r\n const { erpOrderNo, sameAsBilling, shippingAddressId, billingAddressId } =\r\n quote || {};\r\n\r\n const { topic, RefType, description, stat, interaction_type } =\r\n currentInteraction || {};\r\n\r\n const initialValues = {\r\n topic: topic || 0,\r\n RefType: RefType || \"C\",\r\n description: description || \"\",\r\n stat: stat || \"A\",\r\n interaction_type: interaction_type || \"C\",\r\n };\r\n\r\n const onSubmit = useCallback(\r\n async (values, { resetForm }) => {\r\n try {\r\n const { rows } = data;\r\n\r\n if (interactionId === \"create\") {\r\n const result = await r.createInteraction({\r\n input: {\r\n ...values,\r\n erpOrderNo,\r\n firstName: activeUser?.firstName,\r\n lastName: activeUser?.lastName,\r\n ref_num_id: quote?.customer?.erpId,\r\n quoteId: quote?.id,\r\n groupId: !quoteId ? activeUser?.groupId : undefined,\r\n addressId: sameAsBilling ? billingAddressId : shippingAddressId,\r\n },\r\n });\r\n const newRows = _.sortBy([...rows, result], [\"createdAt\"]);\r\n\r\n const newData = { rows: newRows, count: count + 1 };\r\n setInteractionId(result.interaction_id);\r\n\r\n showSuccessAlert(\r\n `Successfully created Interaction: ${result.interaction_id}`\r\n );\r\n setData(newData);\r\n setShow(false);\r\n refetchQuery();\r\n } else {\r\n const updatedRecord = await r.updateInteraction({\r\n id: interactionId,\r\n input: values,\r\n });\r\n\r\n showSuccessAlert(\r\n `Successfully updated Interaction: ${interactionId}`\r\n );\r\n\r\n const newRows = _.sortBy(\r\n rows.map((row) => {\r\n const { id: rowId } = row;\r\n if (rowId === interactionId) {\r\n return updatedRecord;\r\n }\r\n return row;\r\n }),\r\n [\"createdAt\"]\r\n );\r\n\r\n const newData = { ...data, rows: newRows };\r\n setData(newData);\r\n resetForm();\r\n setShow(false);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n },\r\n [\r\n data,\r\n interactionId,\r\n erpOrderNo,\r\n count,\r\n setInteractionId,\r\n showSuccessAlert,\r\n setData,\r\n setShow,\r\n quote,\r\n sameAsBilling,\r\n shippingAddressId,\r\n billingAddressId,\r\n refetchQuery,\r\n activeUser,\r\n quoteId,\r\n ]\r\n );\r\n\r\n const topicOptions = useMemo(\r\n () => [\r\n ,\r\n ...interactionTopics.map(({ topic, ...rest }, i) => {\r\n console.log(rest);\r\n return (\r\n \r\n );\r\n }),\r\n ],\r\n [interactionTopics]\r\n );\r\n const statusOptions = useMemo(\r\n () =>\r\n [\r\n { label: \"Active\", value: \"A\" },\r\n { label: \"Complete\", value: \"C\" },\r\n ].map(({ label, value }, i) => (\r\n \r\n )),\r\n []\r\n );\r\n // const referenceOptions = useMemo(\r\n // () =>\r\n // [\r\n // { label: \"Customer Order\", value: \"C\" },\r\n // { label: \"Item\", value: \"I\" },\r\n // { label: \"Estimate\", value: \"E\" },\r\n // { label: \"Project\", value: \"P\" },\r\n // { label: \"Estimate Project\", value: \"R\" },\r\n // ].map(({ label, value }, i) => (\r\n // \r\n // )),\r\n // []\r\n // );\r\n // const interactionTypes = useMemo(\r\n // () =>\r\n // [\r\n // { label: \"Customer\", value: \"C\" },\r\n // { label: \"Vendor\", value: \"V\" },\r\n // { label: \"Prospect\", value: \"P\" },\r\n // { label: \"Sales Contact\", value: \"S\" },\r\n // ].map(({ label, value }, i) => (\r\n // \r\n // )),\r\n // []\r\n // );\r\n\r\n const onDelete = useCallback(() => {\r\n r.deleteInteraction({ id: interactionId });\r\n const { rows } = data;\r\n const newRows = [...rows];\r\n _.remove(newRows, (row) => row.id === interactionId);\r\n setData({ rows: newRows, count: count - 1 });\r\n setShow(false);\r\n }, [interactionId, count, data, setData, setShow]);\r\n\r\n return (\r\n \r\n {() => (\r\n <>\r\n setShow(false)}\r\n title={`${\r\n interactionId === \"create\" ? \"Create\" : \"View\"\r\n } Interaction`}\r\n subtitle=\"\"\r\n />\r\n
\r\n \r\n {topicOptions}\r\n \r\n \r\n\r\n \r\n {statusOptions}\r\n \r\n {/* \r\n {interactionTypes}\r\n \r\n \r\n {referenceOptions}\r\n */}\r\n\r\n setShow(false)}\r\n hideDelete={interactionId === \"create\"}\r\n recordAction={interactionId === \"create\" ? \"create\" : \"edit\"}\r\n deleteMessage={`Are you sure you want to delete this interation?`}\r\n />\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default InteractionForm;\r\n","import React, { useCallback, useContext, useMemo } from \"react\";\r\nimport _ from \"lodash\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { Body } from \"../UI/Text\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\n\r\nconst View = ({ interactionId, currentInteraction, setShow }) => {\r\n const { activeUser } = useContext(UserContext);\r\n const theme = useTheme();\r\n\r\n const {\r\n site_ref,\r\n interaction_id,\r\n interaction_type,\r\n ref_num_id,\r\n ref_seq,\r\n description,\r\n interaction_date,\r\n follow_date,\r\n stat,\r\n topic,\r\n contact,\r\n phone,\r\n RefType,\r\n RefRowPointer,\r\n contact_id,\r\n slsman,\r\n NoteExistsFlag,\r\n RecordDate,\r\n RowPointer,\r\n CreatedBy,\r\n UpdatedBy,\r\n CreateDate,\r\n InWorkflow,\r\n } = currentInteraction || {};\r\n\r\n return (\r\n <>\r\n setShow(false)}\r\n title={`${interactionId === \"create\" ? \"Create\" : \"View\"} Interaction`}\r\n subtitle=\"\"\r\n />\r\n\r\n \r\n \r\n \r\n Site Reference #:{\" \"}\r\n {site_ref}\r\n \r\n \r\n ID: {interaction_id}\r\n \r\n \r\n Type:{\" \"}\r\n {interaction_type}\r\n \r\n \r\n Reference #::{\" \"}\r\n {ref_num_id}\r\n \r\n \r\n Reference Seq:{\" \"}\r\n {ref_seq}\r\n \r\n\r\n \r\n Description:{\" \"}\r\n {description}\r\n \r\n \r\n Interaction Date:{\" \"}\r\n {interaction_date}\r\n \r\n \r\n Follow Date:{\" \"}\r\n {follow_date}\r\n \r\n \r\n Status: {stat}\r\n \r\n \r\n\r\n \r\n \r\n Topic: {topic}\r\n \r\n \r\n Contact: {contact}\r\n \r\n \r\n Phone: {phone}\r\n \r\n\r\n \r\n Ref Type: {RefType}\r\n \r\n {/* \r\n Ref RowPointer:{\" \"}\r\n {RefRowPointer}\r\n */}\r\n \r\n contact_id:{\" \"}\r\n {contact_id}\r\n \r\n {/* \r\n slsman: {slsman}\r\n */}\r\n {/* \r\n NoteExistsFlag:{\" \"}\r\n {NoteExistsFlag}\r\n */}\r\n \r\n Record Date:{\" \"}\r\n {RecordDate}\r\n \r\n\r\n {/* \r\n RowPointer:{\" \"}\r\n {RowPointer}\r\n */}\r\n \r\n Created By:{\" \"}\r\n {CreatedBy}\r\n \r\n \r\n Updated By:{\" \"}\r\n {UpdatedBy}\r\n \r\n \r\n Created Date:{\" \"}\r\n {CreateDate}\r\n \r\n {/* \r\n InWorkflow:{\" \"}\r\n {InWorkflow}\r\n */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default View;\r\n","import axios from \"axios\";\r\n\r\nexport const getInteractionTopics = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionTopicsManagement/getInteractionTopics\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getInteractionTopic = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionTopicsManagement/getInteractionTopic\",\r\n body\r\n );\r\n\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createInteractionTopic = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionTopicsManagement/createInteractionTopic\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const updateInteractionTopic = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionTopicsManagement/updateInteractionTopic\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const deleteInteractionTopic = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/interactionTopicsManagement/deleteInteractionTopic\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import React, { useContext, useMemo, useState, useCallback } from \"react\";\r\nimport moment from \"moment\";\r\nimport _ from \"lodash\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Body } from \"../UI/Text\";\r\nimport Table from \"../UI/Table\";\r\nimport Modal from \"../UI/Modal\";\r\nimport Button from \"../UI/Button\";\r\nimport Card from \"../UI/Card\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport InteractionForm from \"./Form\";\r\nimport View from \"./View\";\r\nimport * as interactionRequests from \"../../requests/interactionsRequests\";\r\nimport { getInteractionTopics } from \"../../requests/interactionTopicRequests\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\n\r\nconst { getInteractions, deleteInteraction } = interactionRequests;\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n justify-content: center;\r\n align-items: center;\r\n transition: 200ms all ease-out;\r\n`;\r\n\r\nexport const InteractionsTable = ({ groupId, quoteId }) => {\r\n const theme = useTheme();\r\n const { username, quoteId: paramQuoteId } = useParams();\r\n const { showSuccessAlert } = useContext(AlertContext);\r\n const { quote } = useContext(ConfiguratorContext);\r\n const userContext = useContext(UserContext);\r\n\r\n const firstName = useMemo(\r\n () => userContext?.activeUser?.firstName,\r\n [userContext]\r\n );\r\n const lastName = useMemo(\r\n () => userContext?.activeUser?.lastName,\r\n [userContext]\r\n );\r\n const roleLevel = useMemo(\r\n () => userContext?.activeUser?.roleLevel,\r\n [userContext]\r\n );\r\n\r\n const [show, setShow] = useState(false);\r\n const [interactionId, setInteractionId] = useState(\"create\");\r\n\r\n const { data: interactionTopics, isLoading: topicsLoading } = useQuery({\r\n queryID: \"interactionTopics\",\r\n request: getInteractionTopics,\r\n skip: userContext.isLoading,\r\n });\r\n\r\n const { data, isLoading, refetchQuery, setData } = useQuery({\r\n queryID: \"interactionsPage\",\r\n request: getInteractions,\r\n queryVariables: {\r\n groupId,\r\n quoteId,\r\n erpOrderNo: paramQuoteId ? quote?.erpOrderNo : undefined,\r\n ...(!!username ? { firstName, lastName } : {}),\r\n },\r\n skip:\r\n (quoteId && !quote) ||\r\n !interactionTopics ||\r\n (!interactionTopics && topicsLoading),\r\n });\r\n //not tied to an order has not ref_ttype\r\n\r\n const { count = 0, rows: interactions = [] } = data || {};\r\n\r\n const currentInteraction = useMemo(\r\n () => _.find(interactions, (__) => __.interaction_id === interactionId),\r\n [interactions, interactionId]\r\n );\r\n const onDelete = useCallback(\r\n async (e, interaction_id) => {\r\n e.stopPropagation();\r\n const { rows } = data;\r\n const newRows = [...rows];\r\n _.remove(newRows, (row) => row.interaction_id === interaction_id);\r\n setData({ rows: newRows, count: count - 1 });\r\n setShow(false);\r\n await deleteInteraction({ interaction_id });\r\n\r\n showSuccessAlert(\r\n `Successfully deleted Interaction with the ID of ${interaction_id}`\r\n );\r\n refetchQuery();\r\n },\r\n [count, data, setData, showSuccessAlert, refetchQuery]\r\n );\r\n\r\n const onRowClick = (row) => {\r\n setInteractionId(row.original.interaction_id);\r\n setShow(true);\r\n };\r\n\r\n const getRefType = useCallback((type) => {\r\n switch (type) {\r\n case \"C\":\r\n return \"Customer Order\";\r\n default:\r\n return \"—\";\r\n }\r\n }, []);\r\n const getStatus = useCallback((stat) => {\r\n switch (stat) {\r\n case \"C\":\r\n return \"Complete\";\r\n case \"A\":\r\n return \"Active\";\r\n default:\r\n return \"—\";\r\n }\r\n }, []);\r\n\r\n const columns = useMemo(() => {\r\n let cols = [\r\n {\r\n id: \"interaction_id\",\r\n data: (d) => (\r\n {`${d?.interaction_id}-${d?.site_ref}`}\r\n ),\r\n header: \"Interaction\",\r\n size: { md: 1, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: \"RefType\",\r\n data: (d) => {getRefType(d?.RefType) || \"—\"},\r\n header: \"Reference\",\r\n size: { md: 1, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: \"ref_num_id\",\r\n data: (d) => {d?.ref_num_id || \"—\"},\r\n header: \"Reference #\",\r\n size: { md: 1, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: \"stat\",\r\n data: (d) => (\r\n \r\n {getStatus(d?.stat) || \"—\"}\r\n \r\n ),\r\n header: \"Status\",\r\n size: { md: 1, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: \"CreateDate\",\r\n data: (d) => (\r\n \r\n {moment(d?.CreateDate).format(\"MM/DD/YYYY\") || \"—\"}\r\n \r\n ),\r\n header: \"Created\",\r\n size: { md: 1, sm: 1, xs: 1 },\r\n },\r\n {\r\n id: \"InteractionDate\",\r\n data: (d) => (\r\n \r\n {moment(d?.InteractionDate).format(\"MM/DD/YYYY\") || \"—\"}\r\n \r\n ),\r\n header: \"Interaction Date\",\r\n size: { md: 0, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: \"description\",\r\n data: (d) => {d?.description || \"—\"},\r\n header: \"Description\",\r\n size: { md: 0, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: \"CreatedBy\",\r\n data: (d) => {d?.CreatedBy || \"—\"},\r\n header: \"Started By\",\r\n size: { md: 0, sm: 0, xs: 0 },\r\n },\r\n ];\r\n if (roleLevel === 9)\r\n cols.push({\r\n display: (props) => {\r\n let interaction = props.cell.row.original;\r\n\r\n return (\r\n \r\n onRowClick(props.cell.row, e)}\r\n />\r\n onDelete(e, interaction.interaction_id)}\r\n />\r\n \r\n );\r\n },\r\n header: \"\",\r\n sort: false,\r\n size: { lg: 1.5, md: 2, sm: 0, xs: 0 },\r\n });\r\n return cols;\r\n }, [\r\n roleLevel,\r\n getRefType,\r\n theme.secondary,\r\n theme.danger,\r\n theme.success,\r\n getStatus,\r\n onDelete,\r\n ]);\r\n\r\n const modalComponent = useMemo(() => {\r\n return interactionId === \"create\" ? (\r\n \r\n ) : (\r\n \r\n );\r\n }, [\r\n count,\r\n currentInteraction,\r\n data,\r\n interactionId,\r\n interactionTopics,\r\n setData,\r\n refetchQuery,\r\n ]);\r\n\r\n return (\r\n <>\r\n \r\n {modalComponent}\r\n \r\n {\r\n setInteractionId(\"create\");\r\n setShow(true);\r\n }}\r\n createButtonIcon=\"faComment\"\r\n hideToggle\r\n hideRefetch={false}\r\n refetchData={refetchQuery}\r\n // onRowClick={onRowClick}\r\n columns={columns}\r\n isLoading={isLoading}\r\n totalCount={count}\r\n backButtonIcon={paramQuoteId ? \"faXmark\" : undefined}\r\n backButtonColor={paramQuoteId ? theme.danger : undefined}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport const InteractionsPage = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InteractionsPage;\r\n","import React, {\r\n useMemo,\r\n} from \"react\";\r\nimport Table from \"../UI/Table\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Body } from \"../UI/Text\";\r\nimport styled from \"styled-components\";\r\n\r\nconst PageWrapperStyled = styled(PageWrapper)`\r\n min-width: 900px;\r\n`;\r\n\r\nconst ShippingInfo = (props) => {\r\n const columns = useMemo(\r\n () => [\r\n \r\n {\r\n id: \"invoiceNum\",\r\n data: (row) => {row?.invoiceNum},\r\n header: \"Invoice #\",\r\n size: { md: 4, sm: 2, xs: 2 },\r\n sort: false,\r\n },\r\n {\r\n id: \"trackingNumber\",\r\n data: (row) => {row?.trackingNumber},\r\n header: \"Tracking #\",\r\n size: { md: 2, sm: 2, xs: 2 },\r\n sort: false,\r\n }, \r\n {\r\n id: \"item\",\r\n data: (row) => {row?.item},\r\n header: \"Part #\",\r\n size: { md: 2, sm: 2, xs: 2 },\r\n sort: false,\r\n }, \r\n {\r\n id: \"invoiceQty\",\r\n data: (row) => {row?.invoiceQty},\r\n header: \"Invoice Qty\",\r\n size: { md: 2, sm: 2, xs: 2 },\r\n sort: false,\r\n }, \r\n {\r\n id: \"shippedQty\",\r\n data: (row) => {row?.shippedQty},\r\n header: \"Shipped Qty\",\r\n size: { md: 2, sm: 2, xs: 2 },\r\n sort: false,\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\nexport default ShippingInfo;\r\n","import React, { useState, useRef, useCallback } from \"react\";\r\nimport { useMemo, useEffect, useContext } from \"react\";\r\nimport { useParams, useNavigate } from \"react-router-dom\";\r\nimport { useReactToPrint } from \"react-to-print\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport Button from \"../UI/Button\";\r\nimport Lines from \"./Lines\";\r\n// import Details from \"./Details\";\r\nimport Customer from \"./Customer\";\r\nimport Attachments from \"./Attachments\";\r\n// import Communications from \"./Communications\";\r\nimport Summary from \"./Summary\";\r\nimport formatter from \"../../modules/formatter\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport * as qRs from \"../../requests/quoteManagementRequests\";\r\nimport { createRMAFromQuote } from \"../../requests/RMAManagementRequests\";\r\nimport Loading from \"../UI/Loading\";\r\nimport { getCustomer } from \"../../requests/customerManagementRequests\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport { Body } from \"../UI/Text\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { InteractionsTable } from \"../Interactions\";\r\nimport Modal from \"../UI/Modal\";\r\nimport PagerContextProvider from \"../UI/Pager/PagerContext\";\r\nimport Card from \"../UI/Card\";\r\nimport _ from \"lodash\";\r\nimport ShippingInfo from \"./ShippingInfo\";\r\n\r\nconst { getQuote, getCommunications } = qRs;\r\n\r\nconst Quote = ({ isDealer: _isDealer = false }) => {\r\n\tconst { quoteId } = useParams();\r\n\tconst theme = useTheme();\r\n\tconst navigate = useNavigate();\r\n\r\n\tconst { setQuote, quote, setPrinting } = useContext(ConfiguratorContext);\r\n\tconst { showFailureAlert } = useContext(AlertContext);\r\n\tconst {\r\n\t\tisLoading: userLoading,\r\n\t\tactiveUser,\r\n\t\tplatform,\r\n\t} = useContext(UserContext);\r\n\tconst { allowRMAs, showShippingTracking } = platform || {};\r\n\r\n\tconst lines = useMemo(() => quote?.lines || [], [quote]);\r\n\r\n\tconst [show, setShow] = useState(false);\r\n\tconst [showInteractions, setShowInteractions] = useState(false);\r\n\tconst [showShippingInfo, setShowShippingInfo] = useState(false);\r\n\r\n\tconst [preview, setPreview] = useState(false);\r\n\r\n\t// Get Communications\r\n\tconst _comms = useQuery({\r\n\t\tqueryID: `comms|${quoteId}`,\r\n\t\tskip: !quoteId || userLoading,\r\n\t\trequest: getCommunications,\r\n\t\tqueryVariables: { quoteId },\r\n\t\tforcedFilters: {},\r\n\t});\r\n\r\n\t// Get Quote\r\n\tconst _quote = useQuery({\r\n\t\tqueryID: `quote|${quoteId}`,\r\n\t\tskip: !quoteId || userLoading || !_comms.data || _comms.isLoading,\r\n\t\trequest: getQuote,\r\n\t\tforcedFilters: {},\r\n\t\tqueryVariables: { id: +quoteId, isDealer: _isDealer },\r\n\t});\r\n\r\n\tconst isDealer = useMemo(\r\n\t\t() => !_quote.data?.isPlane || _isDealer,\r\n\t\t[_quote.data, _isDealer]\r\n\t);\r\n\r\n\tconst customerQueryVariables = useMemo(() => {\r\n\t\tif (_quote.data?.contactId) return { id: _quote.data?.contactId };\r\n\t\telse return { quoteId };\r\n\t}, [_quote.data, quoteId]);\r\n\r\n\tconst _customer = useQuery({\r\n\t\tqueryID: `customer|quote|${quoteId}`,\r\n\t\trequest: getCustomer,\r\n\t\tqueryVariables: customerQueryVariables,\r\n\t\tskip:\r\n\t\t\t!quoteId ||\r\n\t\t\t!_comms.data ||\r\n\t\t\t_comms.isLoading ||\r\n\t\t\t!_quote.data ||\r\n\t\t\t_quote.isLoading ||\r\n\t\t\tuserLoading,\r\n\t});\r\n\r\n\tconst { data: customerData, refetchQuery: refetchCustomer } = _customer || {};\r\n\r\n\tconst { customer, contact, billingAddress, shippingAddresses } =\r\n\t\tcustomerData || {};\r\n\r\n\tuseEffect(() => {\r\n\t\tsetQuote({\r\n\t\t\t..._quote.data,\r\n\t\t\tcustomer,\r\n\t\t\tcontact,\r\n\t\t\tbillingAddress,\r\n\t\t\tshippingAddresses,\r\n\t\t});\r\n\t}, [\r\n\t\tbillingAddress,\r\n\t\tcontact,\r\n\t\tcustomer,\r\n\t\t_quote.data,\r\n\t\tsetQuote,\r\n\t\tshippingAddresses,\r\n\t]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (\r\n\t\t\t!!quote &&\r\n\t\t\tquote?.id &&\r\n\t\t\tquote?.sameAsBilling &&\r\n\t\t\tquote?.billingAddress &&\r\n\t\t\t!_quote?.isLoading &&\r\n\t\t\tquote?.shippingAddress?.id !== quote?.billingAddress?.id\r\n\t\t) {\r\n\t\t\tsetQuote({\r\n\t\t\t\t...quote,\r\n\t\t\t\tshippingAddress: quote?.billingAddress,\r\n\t\t\t});\r\n\t\t}\r\n\t}, [quote, setQuote, _quote]);\r\n\r\n\tconst printRef = useRef();\r\n\r\n\tconst [stage, setStage] = useState(0);\r\n\r\n\t// useEffect(() => {\r\n\t// if (!quote) return;\r\n\t// else {\r\n\t// if (quote.type === 2 && stage !== 0) setStage(0);\r\n\t// }\r\n\t// }, [quote, quoteId, stage]);\r\n\r\n\tconst handlePrint = useReactToPrint({\r\n\t\tcontent: () => printRef.current,\r\n\t});\r\n\r\n\tconst onPrintClick = useCallback(() => {\r\n\t\tsetTimeout(() => {\r\n\t\t\thandlePrint();\r\n\t\t\tsetPrinting(false);\r\n\t\t}, 0);\r\n\t}, [handlePrint, setPrinting]);\r\n\r\n\tconst commonProps = useMemo(\r\n\t\t() => ({\r\n\t\t\tisLoading:\r\n\t\t\t\t_quote?.isLoading ||\r\n\t\t\t\t_comms.isLoading ||\r\n\t\t\t\tuserLoading ||\r\n\t\t\t\t!_customer.data ||\r\n\t\t\t\t!_comms.data ||\r\n\t\t\t\t!_quote.data ||\r\n\t\t\t\t_customer.isLoading,\r\n\t\t\trefetchQuote: _quote?.refetchQuery,\r\n\t\t}),\r\n\t\t[_comms, _customer, _quote, userLoading]\r\n\t);\r\n\r\n\tconst title = useMemo(() => {\r\n\t\tlet type = \"Quote\";\r\n\t\tif (quote?.type === 2) type = \"Order\";\r\n\t\tif (quote?.type === 3) type = \"Quote Request\";\r\n\r\n\t\tlet status = \"Ordered\";\r\n\t\tif (quote?.csiStatus === \"W\") status = \"Submitted\";\r\n\t\tif (quote?.csiStatus === \"C\") status = \"Complete\";\r\n\r\n\t\treturn `${type} #${\r\n\t\t\tquote?.type === 2 ? (quote?.erpOrderNo || \"\").trim() : quote?.id\r\n\t\t}${quote?.type === 2 ? ` \"${status}\"` : \"\"}`;\r\n\t}, [quote]);\r\n\r\n\tconst isPlane = useMemo(() => !!quote?.isPlane, [quote]);\r\n\tconst price = useMemo(() => {\r\n\t\tlet total = 0;\r\n\t\tlet discountTotal = 0;\r\n\t\tlet totalDealerPrice = 0;\r\n\t\tif (lines && lines?.length > 0) {\r\n\t\t\tfor (let line of lines) {\r\n\t\t\t\tconsole.log({ line });\r\n\t\t\t\tconst { quantity = 1, price, dealerPrice, Details: d } = line;\r\n\t\t\t\ttotal += quantity * price?.toFixed(2);\r\n\t\t\t\tlet discountPrice = !isPlane ? dealerPrice : 0;\r\n\t\t\t\tif (!!isDealer && !isPlane) {\r\n\t\t\t\t\tconst Details = d ? d : []; //d || []; //\r\n\r\n\t\t\t\t\tif (!Details) continue;\r\n\r\n\t\t\t\t\tDetails.forEach((Detail, i) => {\r\n\t\t\t\t\t\tconst { Value, Caption: _Caption } = Detail || {};\r\n\r\n\t\t\t\t\t\tconst isMSRP = _Caption.startsWith(\"MSRP\");\r\n\t\t\t\t\t\tconst isDEALER = _Caption.startsWith(\"DEALER\");\r\n\r\n\t\t\t\t\t\tif (!isMSRP && !isDEALER) return;\r\n\t\t\t\t\t\tif (Value === \"***INCLUDED***\") return;\r\n\r\n\t\t\t\t\t\tconst val = Value.replace(/[^\\p{L}0-9]/g, \"\") / 100;\r\n\r\n\t\t\t\t\t\tif (isDealer) {\r\n\t\t\t\t\t\t\tif (isDEALER) {\r\n\t\t\t\t\t\t\t\tdiscountPrice += val;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\ttotalDealerPrice += isPlane\r\n\t\t\t\t\t? discountPrice?.toFixed(2)\r\n\t\t\t\t\t: (line?.price -\r\n\t\t\t\t\t\t\t(line?.price * ((line?.discount_percentage * -1) / 100))?.toFixed(\r\n\t\t\t\t\t\t\t\t2\r\n\t\t\t\t\t\t\t)) *\r\n\t\t\t\t\t line?.quantity;\r\n\t\t\t\t//discountTotal += ((isPlane ? discountPrice.toFixed(2) : price.toFixed(2) - discountPrice) * quantity);\r\n\t\t\t}\r\n\r\n\t\t\tif (isDealer)\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tTotal:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${formatter.currency(total)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${formatter.currency(totalDealerPrice)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\r\n\t\t\treturn `Total: $${formatter.currency(total)}`;\r\n\t\t}\r\n\r\n\t\treturn `Total: $${formatter.currency(0)}`;\r\n\t}, [lines, isDealer, theme.secondary, isPlane]);\r\n\r\n\tconst stages = useMemo(\r\n\t\t() =>\r\n\t\t\tquote && quote?.type !== 2\r\n\t\t\t\t? [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tid: \"Lines\",\r\n\t\t\t\t\t\t\tcomponent: (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tid: \"Customer\",\r\n\t\t\t\t\t\t\tcomponent: (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tid: \"Summary\",\r\n\t\t\t\t\t\t\tcomponent: (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t ]\r\n\t\t\t\t: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tid: \"Summary\",\r\n\t\t\t\t\t\t\tcomponent: (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t ],\r\n\t\t[\r\n\t\t\tquote,\r\n\t\t\tshow,\r\n\t\t\tcommonProps,\r\n\t\t\trefetchCustomer,\r\n\t\t\tisDealer,\r\n\t\t\tisPlane,\r\n\t\t\tpreview,\r\n\t\t\t_comms.data,\r\n\t\t]\r\n\t);\r\n\r\n\tconst onSetStage = useCallback(\r\n\t\t(_stage) => {\r\n\t\t\tsetStage(_stage);\r\n\t\t\twindow.sessionStorage.setItem(`quoteId:${quoteId}`, _stage);\r\n\t\t},\r\n\t\t[quoteId]\r\n\t);\r\n\r\n\tconst onCreateRMA = useCallback(async () => {\r\n\t\tconst { id: rmaId } = await createRMAFromQuote(quoteId);\r\n\t\tif (rmaId) return navigate(`/RMA/${rmaId}`);\r\n\t\treturn showFailureAlert(\"Error creating RMA from Order.\");\r\n\t}, [navigate, quoteId, showFailureAlert]);\r\n\t// const onCreateInteraction = useCallback(async () => {\r\n\t// const { id: rmaId } = await createRMAFromQuote(quoteId);\r\n\t// if (rmaId) return navigate(`/RMA/${rmaId}`);\r\n\t// return showFailureAlert(\"Error creating RMA from Order.\");\r\n\t// setShowInteractions(true);\r\n\t// }, [navigate, quoteId, showFailureAlert]);\r\n\r\n\tconst onShowShippingInfo = useCallback(async () => {\r\n\t\tsetShowShippingInfo(true);\r\n\t}, []);\r\n\r\n\tconst CreateOrderButtons = useMemo(() => {\r\n\t\treturn quote?.type === 2 && !isPlane ? (\r\n\t\t\t\r\n\t\t\t\t{/* setShowInteractions(true)}\r\n /> */}\r\n\t\t\t\t{allowRMAs && (\r\n\t\t\t\t\t onCreateRMA()}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{\"Create RMA\"}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{showShippingTracking && (\r\n\t\t\t\t\t onShowShippingInfo()}\r\n\t\t\t\t\t\tcolor={theme.secondary}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{\"Shipping\"}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t) : null;\r\n\t}, [\r\n\t\tonCreateRMA,\r\n\t\tquote,\r\n\t\tisPlane,\r\n\t\tonShowShippingInfo,\r\n\t\ttheme,\r\n\t\tallowRMAs,\r\n\t\tshowShippingTracking,\r\n\t]);\r\n\r\n\tconst StageSelector = useMemo(\r\n\t\t() =>\r\n\t\t\t!quote?.type || quote?.type === 2\r\n\t\t\t\t? null\r\n\t\t\t\t: [\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tif (stage - 1 === -1) return null;\r\n\t\t\t\t\t\t\t\treturn onSetStage(stage - 1);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>,\r\n\t\t\t\t\t\t...stages.map(({ id }, i) => (\r\n\t\t\t\t\t\t\t onSetStage(i)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{id}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)),\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tif (stage + 1 === stages.length) return null;\r\n\t\t\t\t\t\t\t\treturn onSetStage(stage + 1);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>,\r\n\t\t\t\t ],\r\n\t\t[onSetStage, lines, stage, stages, theme.secondary, quote]\r\n\t);\r\n\r\n\tconst shipCode = useMemo(() => {\r\n\t\treturn _.find(\r\n\t\t\tquote?.shipCodes || [],\r\n\t\t\t({ ShipVia }) => ShipVia === quote?.shipCode\r\n\t\t);\r\n\t}, [quote]);\r\n\r\n\treturn _quote?.isLoading ||\r\n\t\t_comms.isLoading ||\r\n\t\tuserLoading ||\r\n\t\t!_customer.data ||\r\n\t\t!_comms.data ||\r\n\t\t!_quote.data ||\r\n\t\t_customer.isLoading ? (\r\n\t\t\r\n\t) : (\r\n\t\t<>\r\n\t\t\t{isDealer && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tDealer Pricing View\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\tsetPrinting(true);\r\n\t\t\t\t\t\t\t\t\tonPrintClick();\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t: () => setShow(true)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcreateButtonText={\r\n\t\t\t\t\t\tstages?.[stage]?.id === \"Summary\" ? undefined : \"Catalog\"\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcreateButtonColor={\r\n\t\t\t\t\t\tstages?.[stage]?.id === \"Summary\" ? theme.gray : undefined\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcreateButtonIcon={\r\n\t\t\t\t\t\tstages?.[stage]?.id === \"Summary\" ? \"faPrint\" : \"faCartPlus\"\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttitle={title}\r\n\t\t\t\t\tsubtitle={price}\r\n\t\t\t\t\tcenterSubtitle\r\n\t\t\t\t\tboldSubtitle\r\n\t\t\t\t\tbackButtonLink={\r\n\t\t\t\t\t\tquote?.type === 2 ? `/MyOrders/${activeUser?.username}` : \"/\"\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcenterTitle\r\n\t\t\t\t\tinlineAdditionalElements\r\n\t\t\t\t\tadditionalElements={\r\n\t\t\t\t\t\tCreateOrderButtons ? [CreateOrderButtons] : undefined\r\n\t\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t\t{quote?.type === 2 ? (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tCustomer PO:\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{quote?.poNumber}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{!!shipCode && !isPlane && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tShipping Method:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{shipCode?.description}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t) : null}\r\n\t\t\t\t\r\n\t\t\t\t\t{StageSelector}\r\n\t\t\t\t\r\n\r\n\t\t\t\t{stages?.[stage]?.component || null}\r\n\r\n\t\t\t\t{stage === 0 && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Quote;\r\n","import React, { useMemo, useCallback, useContext, useState } from \"react\";\r\nimport _ from \"lodash\";\r\nimport { Flex } from \"reflexbox\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { Heading, Body } from \"../../UI/Text\";\r\nimport moment from \"moment\";\r\nimport Table from \"../../UI/Table\";\r\nimport Button from \"../../UI/Button\";\r\nimport Modal from \"../../UI/Modal\";\r\nimport Card from \"../../UI/Card\";\r\nimport * as quoteReqs from \"../../../requests/quoteManagementRequests\";\r\nimport formatter from \"../../../modules/formatter\";\r\nimport { useQuery } from \"../../Hooks\";\r\nimport { getQuotes } from \"../../../requests/quoteManagementRequests\";\r\nimport UserContext from \"../../../context/user/UserContext\";\r\nimport Loading from \"../../UI/Loading\";\r\nimport AlertContext from \"../../../context/alert/AlertContext\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\ttransition: 200ms all ease-out;\r\n`;\r\n\r\nconst { copyQuote, deleteQuote } = quoteReqs;\r\n\r\nconst QuoteTable = (props) => {\r\n\tconst navigate = useNavigate();\r\n\tconst theme = useTheme();\r\n\tconst { activeUser, pid } = useContext(UserContext);\r\n\tconst { showFailureAlert, showSuccessAlert, showWarningAlert } =\r\n\t\tuseContext(AlertContext);\r\n\tconst { groupId, roleLevel } = activeUser || {};\r\n\r\n\tconst {\r\n\t\tonRowClick,\r\n\t\tallQuotes = false,\r\n\t\tisLoading,\r\n\t\tcreateLink,\r\n\t\tcreateButtonText,\r\n\t\tcreateButtonIcon,\r\n\t\thideCreate = true,\r\n\t\tisQuoteRequest = false,\r\n\t} = props || {};\r\n\r\n\tconst queryID1 = allQuotes ? \"allQuotes\" : \"quotes\";\r\n\tconst queryID2 = \"quoteRequests\";\r\n\r\n\tconst [isCopying, setIsCopying] = useState(false);\r\n\tconst [show, setShow] = useState(false);\r\n\tconst [currentQuote, setCurrentQuote] = useState(null);\r\n\r\n\tconst quotes = useQuery({\r\n\t\tqueryID: queryID1,\r\n\t\trequest: getQuotes,\r\n\t\tqueryVariables: {\r\n\t\t\ttype: 1,\r\n\t\t\tgroupId: allQuotes ? undefined : groupId || undefined,\r\n\t\t\tusername: allQuotes\r\n\t\t\t\t? undefined\r\n\t\t\t\t: !groupId\r\n\t\t\t\t? activeUser?.username\r\n\t\t\t\t: undefined,\r\n\t\t\tpid,\r\n\t\t},\r\n\t\tskip: isQuoteRequest || isLoading || !pid,\r\n\t});\r\n\tconst {\r\n\t\tdata: qData,\r\n\t\trefetchQuery: qRefetch,\r\n\t\tsetData: qSetData,\r\n\t\tisLoading: qLoading,\r\n\t} = quotes || {};\r\n\r\n\tconst requests = useQuery({\r\n\t\tqueryID: queryID2,\r\n\t\trequest: getQuotes,\r\n\t\tqueryVariables: {\r\n\t\t\ttype: 3,\r\n\t\t\tgroupId: allQuotes ? undefined : groupId,\r\n\t\t\tpid,\r\n\t\t},\r\n\t\tskip:\r\n\t\t\troleLevel < 5 ||\r\n\t\t\t!isQuoteRequest ||\r\n\t\t\tallQuotes ||\r\n\t\t\tisLoading ||\r\n\t\t\t(!isQuoteRequest && (qLoading || !qData)) ||\r\n\t\t\t!pid,\r\n\t});\r\n\r\n\tconst {\r\n\t\tdata: rData,\r\n\t\trefetchQuery: rRefetch,\r\n\t\tsetData: rSetData,\r\n\t\tisLoading: rLoading,\r\n\t} = requests || {};\r\n\r\n\tconst { rows: qRows = [], count: qCount, isPlane: qIsPlane } = qData || {};\r\n\tconst { rows: rRows = [], count: rCount, isPlane: rIsPlane } = rData || {};\r\n\r\n\tconst stopPropagation = (event) => {\r\n\t\tevent.stopPropagation();\r\n\t};\r\n\r\n\t// const onSecondaryClick = useCallback(\r\n\t// async (e, quoteId) => {\r\n\t// stopPropagation(e);\r\n\r\n\t// if (!(isQuoteRequest ? rIsPlane : qIsPlane)) {\r\n\t// return navigate(`/DealerQuote/${quoteId}`);\r\n\t// }\r\n\r\n\t// setShow(true);\r\n\t// setCurrentQuote(quoteId);\r\n\t// },\r\n\t// [isQuoteRequest, navigate, qIsPlane, rIsPlane]\r\n\t// );\r\n\r\n\tconst onDealerPricingClick = useCallback(() => {\r\n\t\tsetCurrentQuote(null);\r\n\t\tnavigate(`/DealerQuote/${currentQuote}`);\r\n\t}, [currentQuote, navigate]);\r\n\r\n\tconst onDeleteQuote = useCallback(\r\n\t\tasync (event, quoteId) => {\r\n\t\t\tstopPropagation(event);\r\n\t\t\tconst inQuotes = !!_.find(qRows, (quote) => quote.id === quoteId);\r\n\t\t\tconst rows = inQuotes ? qRows : rRows;\r\n\t\t\tconst setData = inQuotes ? qSetData : rSetData;\r\n\r\n\t\t\tconst newQuotes = [...rows];\r\n\t\t\t_.remove(newQuotes, (quote) => quote.id === quoteId);\r\n\r\n\t\t\tsetData({\r\n\t\t\t\tcount: (isQuoteRequest ? rCount : qCount) - 1,\r\n\t\t\t\trows: newQuotes,\r\n\t\t\t});\r\n\r\n\t\t\tawait deleteQuote({ id: quoteId });\r\n\t\t},\r\n\t\t[qRows, rRows, qSetData, rSetData, isQuoteRequest, rCount, qCount]\r\n\t);\r\n\r\n\tconst onCopyQuote = useCallback(\r\n\t\tasync (event, quoteId) => {\r\n\t\t\tstopPropagation(event);\r\n\t\t\ttry {\r\n\t\t\t\tsetIsCopying(quoteId);\r\n\t\t\t\tshowWarningAlert(`Copying Quote #${quoteId}...`);\r\n\t\t\t\tconst inQuotes = !!_.find(qRows, (quote) => quote.id === quoteId);\r\n\t\t\t\tconst rows = inQuotes ? qRows : rRows;\r\n\t\t\t\tconst setData = inQuotes ? qSetData : rSetData;\r\n\r\n\t\t\t\tconst newQuote = await copyQuote({ id: quoteId });\r\n\r\n\t\t\t\tconst newQuotes = [newQuote, ...rows];\r\n\t\t\t\tsetData({\r\n\t\t\t\t\tcount: newQuotes.length,\r\n\t\t\t\t\trows: newQuotes,\r\n\t\t\t\t});\r\n\t\t\t\tsetIsCopying(false);\r\n\t\t\t\tshowSuccessAlert(\r\n\t\t\t\t\t`New Quote #${newQuote.id} copied from Quote #${quoteId}.`\r\n\t\t\t\t);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tshowFailureAlert(`${error}`);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[\r\n\t\t\tqRows,\r\n\t\t\tqSetData,\r\n\t\t\trRows,\r\n\t\t\trSetData,\r\n\t\t\tshowFailureAlert,\r\n\t\t\tshowSuccessAlert,\r\n\t\t\tshowWarningAlert,\r\n\t\t]\r\n\t);\r\n\r\n\tconst columns = useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tid: \"id\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{row.id}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"#\",\r\n\t\t\t\tsize: { md: 1, sm: 1, xs: -1 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"customerName\",\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\tconst { lastName, firstName, customerName } = row;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{firstName || lastName\r\n\t\t\t\t\t\t\t\t? `${firstName || \"\"}${lastName && firstName ? \" \" : \"\"}${\r\n\t\t\t\t\t\t\t\t\t\tlastName || \" \"\r\n\t\t\t\t\t\t\t\t }`\r\n\t\t\t\t\t\t\t\t: customerName}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\theader: \"Customer\",\r\n\t\t\t\tsize: { md: 3, sm: 3, xs: -1 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"createdByFirstName\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{row?.createdByFirstName} {row?.createdByLastName}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Created By\",\r\n\t\t\t\tsize: { md: 3, sm: 0, xs: 0 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"createdDate\",\r\n\t\t\t\tdata: (row) => (\r\n\t\t\t\t\t{`${moment(row.createdDate).format(\r\n\t\t\t\t\t\t\"MM/DD/YYYY\"\r\n\t\t\t\t\t)}`}\r\n\t\t\t\t\t// {`${row.createdDate}`}\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Created On\",\r\n\t\t\t\tsize: { md: 3, sm: 3, xs: 2 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"totalCost\",\r\n\t\t\t\tdata: (row) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t{`$${formatter.currency(\r\n\t\t\t\t\t\t\t!row?.isPlane ? row.discountTotal : row.totalCost\r\n\t\t\t\t\t\t)}`}\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\theader: \"Price\",\r\n\t\t\t\tsize: { md: 2, sm: 0, xs: 0 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tdisplay: (props) => {\r\n\t\t\t\t\tlet quote = props.cell.row.original;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* {(!!rIsPlane || !!qIsPlane) && (\r\n onSecondaryClick(e, quote.id)}\r\n />\r\n )} */}\r\n\t\t\t\t\t\t\t onRowClick(props.cell.row, e)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t{isCopying === props.cell.row.original.id ? (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t onCopyQuote(e, quote.id)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t onDeleteQuote(e, quote.id)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\theader: \"\",\r\n\t\t\t\tsort: false,\r\n\t\t\t\tsize: { md: 5, sm: 0, xs: 0 },\r\n\t\t\t},\r\n\t\t],\r\n\t\t[\r\n\t\t\ttheme.secondary,\r\n\t\t\ttheme.danger,\r\n\t\t\tisCopying,\r\n\t\t\tonRowClick,\r\n\t\t\tonCopyQuote,\r\n\t\t\tonDeleteQuote,\r\n\t\t]\r\n\t);\r\n\r\n\tif (isQuoteRequest && (rRows?.length === 0 || qRows?.length === 0))\r\n\t\treturn null;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tINTERNAL DOCUMENTS\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tAre you sure you want to view this page?\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tThis page contains sensitive internal documents, are you sure you\r\n\t\t\t\t\t\twish to proceed?\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t setShow(false)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tGo Back\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tContinue\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{!allQuotes ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default (props) => ;\r\n","import React, { useCallback, useContext, useMemo, useState } from \"react\";\r\nimport { useTheme } from \"styled-components\";\r\nimport Loading from \"../../UI/Loading\";\r\nimport { createSearchParams, useNavigate } from \"react-router-dom\";\r\nimport { createQuote } from \"../../../requests/quoteManagementRequests\";\r\nimport { PageWrapper } from \"../../UI/Grid\";\r\nimport QuoteTable from \"./QuoteTable\";\r\nimport Table from \"../../UI/Table\";\r\nimport guid from \"../../../modules/guid\";\r\nimport ConfiguratorContext from \"../../../context/configurator/ConfiguratorContext\";\r\nimport UserContext from \"../../../context/user/UserContext\";\r\nimport { useQuery } from \"../../Hooks\";\r\nimport { getProducts } from \"../../../requests/productManagementRequests\";\r\nimport PagerContextProvider from \"../../UI/Pager/PagerContext\";\r\nimport * as constants from \"../../../modules/constants\";\r\n\r\nconst Quotes = () => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n const { setQuote, setActiveProduct, setIsReconfigure } =\r\n useContext(ConfiguratorContext);\r\n const { activeUser, setQueries, queries, pid } = useContext(UserContext);\r\n const { setConfiguratorMode } = useContext(ConfiguratorContext);\r\n\r\n const _quickConfig = useQuery({\r\n queryID: \"quickConfig\",\r\n request: getProducts,\r\n forcedFilters: {},\r\n skip: !pid || !activeUser,\r\n queryVariables: {\r\n isQuickConfig: true,\r\n isNonConfigurable: false,\r\n pid,\r\n gid: activeUser?.groupId,\r\n },\r\n attributes: [\"ID\", \"img\"],\r\n });\r\n const { data, isLoading } = _quickConfig || {};\r\n\r\n const { rows: products = [] } = data || {};\r\n\r\n const [isCreating, setIsCreating] = useState(false);\r\n\r\n const productGridData = useMemo(() => {\r\n if (products && products?.length > 0)\r\n return products.map(({ ID, img, base64Image, ImageUrl }) => ({\r\n id: ID,\r\n image: img || base64Image || ImageUrl,\r\n }));\r\n return null;\r\n }, [products]);\r\n\r\n const onRowClick = useCallback(\r\n (row, e) => {\r\n e.stopPropagation();\r\n setQuote({ ...row?.original });\r\n navigate(`/Quote/${row.original.id}`);\r\n },\r\n [navigate, setQuote]\r\n );\r\n\r\n const onProductClick = useCallback(\r\n async (product) => {\r\n setIsReconfigure(false);\r\n const { id: productId } = product || {};\r\n const _queries = { ...queries };\r\n delete _queries?.quotes;\r\n setQueries(_queries);\r\n setActiveProduct(productId);\r\n setConfiguratorMode(constants.CONFIGURATOR_MODES.Default);\r\n const newId = guid.GenerateGUID();\r\n\r\n const { id: quoteId } = await createQuote({\r\n input: {\r\n username: activeUser?.username,\r\n createdByFirstName: activeUser?.firstName,\r\n createdByLastName: activeUser?.lastName,\r\n type: activeUser?.roleLevel === 0 ? 3 : 1,\r\n _id: newId,\r\n pid,\r\n createdByUserId: activeUser?.id,\r\n groupId: activeUser?.groupId,\r\n },\r\n });\r\n\r\n navigate({\r\n pathname: `/Configurator/${productId}/${quoteId}/${quoteId}_1`,\r\n search: createSearchParams({\r\n lineNumber: 1,\r\n }).toString(),\r\n });\r\n },\r\n [\r\n activeUser,\r\n navigate,\r\n pid,\r\n queries,\r\n setActiveProduct,\r\n setConfiguratorMode,\r\n setIsReconfigure,\r\n setQueries,\r\n ]\r\n );\r\n\r\n const onCreateClick = useCallback(async () => {\r\n setIsCreating(true);\r\n const newId = guid.GenerateGUID();\r\n const { id: newQuoteId } = await createQuote({\r\n input: {\r\n username: activeUser?.username,\r\n createdByFirstName: activeUser?.firstName,\r\n createdByLastName: activeUser?.lastName,\r\n type: activeUser?.roleLevel === 0 ? 3 : 1,\r\n _id: newId,\r\n pid,\r\n createdByUserId: activeUser?.id,\r\n groupId: activeUser?.groupId,\r\n },\r\n });\r\n const _queries = { ...queries };\r\n delete _queries?.quotes;\r\n setQueries(_queries);\r\n\r\n setIsCreating(false);\r\n\r\n navigate(`/Quote/${newQuoteId}`);\r\n }, [activeUser, navigate, queries, setQueries, pid]);\r\n\r\n const createButtonText = useMemo(() => {\r\n return isCreating ? (\r\n \r\n ) : (\r\n \"New Quote\"\r\n );\r\n }, [isCreating, theme.secondary, theme.success]);\r\n\r\n return (\r\n \r\n {productGridData?.length > 0 && (\r\n \r\n )}\r\n \r\n 0}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Quotes;\r\n","import React from \"react\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { GenerateGUID } from \"../../../modules/guid\";\r\n\r\nconst Indicator = ({ active = false, id = GenerateGUID(), color }) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Indicator;\r\n","import React, { useMemo } from \"react\";\r\nimport { useState, useContext, useCallback } from \"react\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport _ from \"lodash\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { getUsers, deleteUsers } from \"../../requests/userManagementRequests\";\r\nimport Table, { useTableSelections } from \"../UI/Table\";\r\nimport Card from \"../UI/Card\";\r\nimport { Body } from \"../UI/Text\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport Button from \"../UI/Button\";\r\n// import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n// import { faTrash } from \"@fortawesome/free-solid-svg-icons\";\r\nimport Modal from \"../UI/Modal\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { Flex } from \"reflexbox\";\r\nimport Indicator from \"../UI/Indicator\";\r\n\r\nconst LoggedInIcon = ({ username, isLoggedIn }) => {\r\n const { loggedInUsers } = useContext(UserContext);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Users = () => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n\r\n const userContext = useContext(UserContext);\r\n const { pid, roleLevel } = userContext?.activeUser || {};\r\n\r\n const { data, isLoading, refetchQuery } = useQuery({\r\n queryID: \"users\",\r\n request: getUsers,\r\n queryVariables: { pid: roleLevel === 9 ? undefined : pid },\r\n skip: !userContext.loggedInUsers,\r\n });\r\n\r\n const { rows = [], count, roles = [], platforms = [] } = data || {};\r\n\r\n const getIcon = (roleLevel) => {\r\n switch (roleLevel) {\r\n case 9:\r\n return \"faUserAstronaut\";\r\n case 5:\r\n return \"faUserTie\";\r\n case 1:\r\n return \"faUserCheck\";\r\n default:\r\n return \"faPeopleGroup\";\r\n }\r\n };\r\n\r\n const gridData = rows.map((user) => ({\r\n id: user.id,\r\n title: `${user.firstName} ${user.lastName}`,\r\n subtitle: user.username,\r\n original: { username: user.username },\r\n iconName: getIcon(user?.roleLevel || 0),\r\n }));\r\n\r\n const getRoleName = useCallback(\r\n (roleId) => {\r\n const roleName = _.find(roles, (role) => role.id === roleId)?.name || \"—\";\r\n return roleName;\r\n },\r\n [roles]\r\n );\r\n\r\n const columns = useMemo(() => {\r\n const cols = [\r\n {\r\n id: \"username\",\r\n data: ({ username }) => {username || \"—\"},\r\n header: \"Email\",\r\n size: { md: 4, sm: 3, xs: 5 },\r\n },\r\n {\r\n id: \"firstName\",\r\n data: ({ firstName }) => (\r\n \r\n {firstName || \"—\"}\r\n \r\n ),\r\n header: \"First Name\",\r\n size: { md: 3, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"lastName\",\r\n data: ({ lastName }) => (\r\n \r\n {lastName || \"—\"}\r\n \r\n ),\r\n header: \"Last Name\",\r\n size: { md: 3, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"isLoggedIn\",\r\n data: ({ username, isLoggedIn }) => {\r\n return ;\r\n },\r\n header: \"Online\",\r\n size: { lg: 2, md: 2, sm: 2, xs: 3 },\r\n },\r\n {\r\n id: \"roleId\",\r\n data: ({ roleId }) => {getRoleName(roleId)},\r\n header: \"Role Level\",\r\n size: { md: 2, sm: -1, xs: -1 },\r\n },\r\n\r\n {\r\n id: \"id\",\r\n data: \"id\",\r\n header: \"Id\",\r\n size: -1,\r\n },\r\n ];\r\n if (roleLevel === 9)\r\n cols.push({\r\n id: \"pid\",\r\n data: ({ pid }) => {\r\n const userPlatform = _.find(platforms, ({ id }) => pid === id);\r\n const { name } = userPlatform || {};\r\n return {name || \"—\"};\r\n },\r\n header: \"Platform\",\r\n size: { md: 2, sm: 3, xs: 5 },\r\n });\r\n return cols;\r\n }, [getRoleName, platforms, roleLevel]);\r\n\r\n const onRowClick = (row) => {\r\n const { username } = row?.original || {};\r\n if (username) navigate(`/Users/edit/${username}`);\r\n };\r\n\r\n const selections = useTableSelections(\"id\");\r\n\r\n const [deleting, setDeleting] = useState(false);\r\n\r\n const onConfirmDelete = async () => {\r\n await deleteUsers({\r\n users: selections.rows\r\n .map((row) => ({ id: row.id, username: row.username }))\r\n .filter((row) => row.id !== userContext.activeUser?.id),\r\n self: userContext.activeUser?.username,\r\n });\r\n selections.actions.clear();\r\n setDeleting(false);\r\n\r\n refetchQuery(\"users\");\r\n };\r\n\r\n const subtitle = useMemo(() => {\r\n const { roleLevel = 0 } = userContext.activeUser || {};\r\n if (roleLevel === 9)\r\n return \"Due to your role as a Super Admin, you are able to view all users across all platforms. The Group filter will still filter users to whatever group you have set.\";\r\n else\r\n return \"Below is a list of all of the users of your Platform. The Group filter will filter this list to the users of the selected Group.\";\r\n }, [userContext.activeUser]);\r\n\r\n return (\r\n \r\n {/* {selections.rows.length > 0 ? (\r\n \r\n \r\n \r\n \r\n {selections.rows.length} user\r\n {selections.rows.length !== 1 ? \"s\" : \"\"} selected\r\n \r\n
\r\n setDeleting(true)} size={24}>\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n ) : null} */}\r\n \r\n \r\n \r\n \r\n \r\n Are you sure you want to delete the following users?\r\n \r\n \r\n
\r\n {selections.rows.map((row) => (\r\n \r\n {row.username}\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// const StyledRow = styled(Flex)`\r\n// margin: 0px !important;\r\n// padding: 1rem 0px 0px 0px !important;\r\n// align-items: flex-end;\r\n// `;\r\n\r\n// const StyledCard = styled(Card)`\r\n// padding: 0.5rem 1rem;\r\n// margin-right: 1rem;\r\n// flex-direction: row;\r\n// justify-content: space-between;\r\n// `;\r\n\r\nconst DeleteList = styled.div`\r\n overflow-y: auto;\r\n height: fit-content;\r\n max-height: 12rem;\r\n margin: 1rem;\r\n padding: 0.25rem;\r\n`;\r\n\r\nconst ModalTitle = styled(Body)`\r\n font-size: 24px;\r\n text-align: center;\r\n margin: 1rem;\r\n`;\r\n\r\nconst ModalContainer = styled(Flex)`\r\n padding: 1rem !important;\r\n margin: auto;\r\n display: flex;\r\n width: 80%;\r\n height: 60%;\r\n background-color: ${({ theme }) => theme.backgroundColor};\r\n border: 1px solid ${({ theme }) => theme.borderColor || \"gray\"};\r\n border-radius: ${({ theme }) => theme.borderRadius || \"15px\"};\r\n`;\r\n\r\nexport default Users;\r\n","import axios from \"axios\";\r\n\r\nexport const getRoles = async ({ signal, roleLevel }) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/roleManagement/getRoles\", {\r\n signal,\r\n roleLevel,\r\n });\r\n\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createRole = async ({ input }) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/roleManagement/createRole\", {\r\n input,\r\n });\r\n\r\n if (res?.status === 200) return res.data.result;\r\n\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const updateRole = async ({ input, id }) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/roleManagement/updateRole\", {\r\n input,\r\n id,\r\n });\r\n\r\n if (res?.status === 200) return res.data.result;\r\n\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const deleteRole = async ({ id }) => {\r\n try {\r\n const res = await axios.post(\"/api/v1/roleManagement/deleteRole\", {\r\n id,\r\n });\r\n\r\n if (res?.status === 200) return res.data.result;\r\n\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport const getPlatform = async ({ signal, id, defaultPlatform }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/platformManagement/getPlatform\",\r\n { signal, id, defaultPlatform }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n\r\nexport const getPlatforms = async ({ signal }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/platformManagement/getPlatforms\",\r\n { signal }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n\r\nexport const createPlatform = async ({ signal, input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/platformManagement/createPlatform\",\r\n { signal, input }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n\r\nexport const updatePlatform = async ({ signal, id, input }) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/platformManagement/updatePlatform\",\r\n { signal, id, input }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n","import axios from \"axios\";\r\n\r\nexport const getPublications = async (values) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/publicationManagement/getPublications\",\r\n {\r\n ...values,\r\n }\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return null;\r\n};\r\nexport const getSubscriptions = async (values) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/publicationManagement/getSubscriptions\",\r\n {\r\n ...values,\r\n }\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n return null;\r\n};\r\n\r\nexport const updatePublication = async ({ id, input }) => {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/publicationManagement/updatePublication\",\r\n {\r\n id,\r\n input,\r\n }\r\n );\r\n if (status === 200 && data.success === true) {\r\n return data.result;\r\n }\r\n\r\n return null;\r\n};\r\n","import React, {\r\n useState,\r\n useContext,\r\n useEffect,\r\n useCallback,\r\n useMemo,\r\n useRef,\r\n} from \"react\";\r\nimport _ from \"lodash\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { useNavigate, useParams, useLocation } from \"react-router-dom\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { Box, Flex } from \"reflexbox/styled-components\";\r\nimport * as userManagementRequests from \"../../requests/userManagementRequests\";\r\nimport { getRoles } from \"../../requests/roleManagementRequests\";\r\nimport { getSecret } from \"../../requests/authRequests\";\r\nimport { getPlatforms } from \"../../requests/platformManagementRequests\";\r\nimport Field from \"../UI/forms/Field\";\r\nimport Button from \"../UI/Button\";\r\nimport Checkbox from \"../UI/forms/Checkbox\";\r\nimport FormButtonCluster from \"../UI/forms/ButtonCluster\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Body, Heading } from \"../UI/Text\";\r\nimport * as yup from \"yup\";\r\nimport { QRCodeSVG } from \"qrcode.react\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport {\r\n getPublications,\r\n getSubscriptions,\r\n} from \"../../requests/publicationManagementRequests\";\r\nimport Indicator from \"../UI/Indicator\";\r\nimport Table from \"../UI/Table\";\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n justify-content: center;\r\n align-items: center;\r\n transition: 200ms all ease-out;\r\n`;\r\n\r\nconst RotateWrap = styled(Flex)`\r\n flex-shrink: 0;\r\n @keyframes full-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n &.rotate {\r\n svg {\r\n animation: full-rotate;\r\n animation-duration: 1s;\r\n }\r\n }\r\n`;\r\n\r\nconst UserDetails = ({ refetchTheme }) => {\r\n const theme = useTheme();\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const { showFailureAlert, showSuccessAlert } = useContext(AlertContext);\r\n const { activeUser, setActiveUser, refetchPlatform } =\r\n useContext(UserContext);\r\n const { roleLevel: activeUserRole, username: activeUsername } =\r\n activeUser || {};\r\n const { action, username } = useParams();\r\n const { getUser, createUser, updateUser, deleteUser, getUsers } =\r\n userManagementRequests;\r\n\r\n const [showPasswordFields, setShowPasswordFields] = useState(false);\r\n const [qrSecret, setQRsecret] = useState(null);\r\n const [secretKey, setSecretKey] = useState(null);\r\n\r\n const spin = () => {\r\n spinRef.current.classList.add(\"rotate\");\r\n setTimeout(() => {\r\n spinRef.current.classList.remove(\"rotate\");\r\n }, 1000);\r\n };\r\n\r\n const { pathname = \"\" } = location || {};\r\n const { 1: path } = pathname?.split(\"/\");\r\n const isMyProfile = useMemo(() => {\r\n if (path === \"MyProfile\") return true;\r\n else if (username === activeUsername) return true;\r\n else return false;\r\n }, [activeUsername, path, username]);\r\n\r\n const _roles = useQuery({\r\n queryID: \"roles\",\r\n request: getRoles,\r\n forcedFilters: {},\r\n queryVariables: { roleLevel: activeUserRole },\r\n skip: (isMyProfile || !activeUserRole) && activeUserRole < 9,\r\n });\r\n\r\n const { data: roleData, isLoading: rolesLoading } = _roles || {};\r\n\r\n const _platforms = useQuery({\r\n queryID: \"platforms\",\r\n request: getPlatforms,\r\n forcedFilters: {},\r\n skip: rolesLoading || !_roles.data,\r\n });\r\n\r\n const { data: platformsData, isLoading: platformsLoading } = _platforms || {};\r\n const { refetchQuery: refetchUsers } = useQuery({\r\n queryID: \"users\",\r\n request: getUsers,\r\n });\r\n const _user = useQuery({\r\n queryID: `${username}`,\r\n request: getUser,\r\n queryVariables: { username },\r\n skip:\r\n isMyProfile ||\r\n !username ||\r\n rolesLoading ||\r\n platformsLoading ||\r\n !platformsData ||\r\n !_roles.data,\r\n });\r\n\r\n const { data: userData, isLoading: userLoading, setData } = _user || {};\r\n\r\n const { rows: platforms = [] } = platformsData || {};\r\n const defaultPlatform = useMemo(\r\n () => _.find(platforms, ({ isDefault }) => isDefault === true),\r\n [platforms]\r\n );\r\n\r\n const { result: userDataResult } = userData || {};\r\n const user =\r\n action === \"create\" ? {} : !isMyProfile ? userDataResult : activeUser;\r\n\r\n const validationSchema = useMemo(\r\n () =>\r\n yup.object().shape({\r\n username: yup.string().email().label(\"EmailAddress: \"),\r\n firstName: yup.string().label(\"First Name: \"),\r\n lastName: yup.string().label(\"Last Name: \"),\r\n password:\r\n action === \"create\"\r\n ? yup\r\n .string()\r\n .matches(\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%-^&*]).{8,}$/,\r\n \"Must Contain 8 Characters, One Uppercase, One Lowercase, One Number and One Special Character\"\r\n )\r\n .required(\"Password is required!\")\r\n : yup\r\n .string()\r\n .matches(\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%-^&*]).{8,}$/,\r\n \"Must Contain 8 Characters, One Uppercase, One Lowercase, One Number and One Special Character\"\r\n ),\r\n confirmPassword: yup\r\n .string()\r\n .label(\"Confirm Password: \")\r\n .when(\"password\", {\r\n is: (val) => val && val.length > 8,\r\n then: yup\r\n .string()\r\n .oneOf([yup.ref(\"password\")], \"Passwords do not match.\"),\r\n }),\r\n roleId: yup.string().label(\"User Role: \"),\r\n checkoutType: yup.string().required(),\r\n pid: activeUserRole === 9 ? yup.string().required() : yup.string(),\r\n enableMFA: yup.string(),\r\n }),\r\n [action, activeUserRole]\r\n );\r\n\r\n const { rows: roles = [] } = roleData || {};\r\n _.remove(roles, (role) => role.roleLevel > activeUserRole);\r\n\r\n const {\r\n username: _username,\r\n firstName: _firstName,\r\n lastName: _lastName,\r\n roleId: _roleId,\r\n checkoutType: _checkoutType,\r\n pid: _pid,\r\n mfaSecret: _mfaSecret,\r\n enableMFA: _enableMFA,\r\n } = user || {};\r\n\r\n const onSubmit = useCallback(\r\n async (values, { resetForm, ...rest }) => {\r\n const input = {\r\n ...values,\r\n pid: values.pid || _pid || defaultPlatform?.id,\r\n };\r\n delete input.enableMFA;\r\n\r\n setData({\r\n result: {\r\n ...user,\r\n ...values,\r\n },\r\n });\r\n\r\n if (values.enableMFA) input.mfaSecret = secretKey;\r\n if (values.enableMFA === false) input.mfaSecret = null;\r\n if (values.password) input.password = values.password;\r\n if (action === \"create\") {\r\n const response = await createUser({ input });\r\n const { error, success } = response || {};\r\n if (success === false) {\r\n resetForm({ values });\r\n return showFailureAlert(`${error}`);\r\n }\r\n\r\n refetchUsers();\r\n resetForm({ values });\r\n return navigate(\"/Users\");\r\n }\r\n if (isMyProfile) setActiveUser({ ...user, ...input });\r\n await updateUser({ id: user.id, input });\r\n resetForm({ values });\r\n if (values.pid !== _pid) await refetchPlatform();\r\n\r\n refetchTheme();\r\n refetchUsers();\r\n showSuccessAlert(\"User saved successfully!\");\r\n },\r\n [\r\n _pid,\r\n defaultPlatform,\r\n setData,\r\n user,\r\n secretKey,\r\n action,\r\n isMyProfile,\r\n setActiveUser,\r\n updateUser,\r\n refetchPlatform,\r\n refetchTheme,\r\n refetchUsers,\r\n showSuccessAlert,\r\n createUser,\r\n navigate,\r\n showFailureAlert,\r\n ]\r\n );\r\n\r\n const onDelete = async () => {\r\n await deleteUser({ id: user.id });\r\n return navigate(\"/Users\");\r\n };\r\n\r\n const onCancel = () => navigate(\"/Users\");\r\n\r\n const platformMFA = useMemo(() => {\r\n const currentPlatform = _.find(platforms, ({ id }) => id === _pid);\r\n const { requireMFA } = currentPlatform || {};\r\n return requireMFA === true;\r\n }, [_pid, platforms]);\r\n\r\n const runGetSecret = useCallback(\r\n async (secret) => {\r\n const secretKey = secret ? secret : await getSecret();\r\n const issuer = \"SwiftSell\";\r\n const algorithm = \"SHA1\";\r\n const digits = \"6\";\r\n const period = \"30\";\r\n const otpType = \"totp\";\r\n const configUri = `otpauth://${otpType}/${issuer}:${username}?algorithm=${algorithm}&digits=${digits}&period=${period}&issuer=${issuer}&secret=${secretKey}`;\r\n setQRsecret(configUri);\r\n setSecretKey(secretKey);\r\n },\r\n [username]\r\n );\r\n\r\n useEffect(() => {\r\n runGetSecret(_mfaSecret);\r\n }, [_mfaSecret, runGetSecret]);\r\n\r\n const { id: publicUserRoleId } =\r\n _.find(roles, (role) => role.roleLevel === 0) || {};\r\n\r\n const initialValues = useMemo(() => {\r\n return {\r\n username: _username || \"\",\r\n firstName: _firstName || \"\",\r\n lastName: _lastName || \"\",\r\n roleId: _roleId || publicUserRoleId,\r\n checkoutType: _checkoutType || \"order\",\r\n pid: _pid || defaultPlatform?.id,\r\n enableMFA:\r\n platformMFA === true\r\n ? platformMFA\r\n : _enableMFA === false\r\n ? false\r\n : !!_mfaSecret,\r\n };\r\n }, [\r\n _checkoutType,\r\n _enableMFA,\r\n _firstName,\r\n _lastName,\r\n _mfaSecret,\r\n _pid,\r\n _roleId,\r\n _username,\r\n defaultPlatform,\r\n platformMFA,\r\n publicUserRoleId,\r\n ]);\r\n\r\n const checkoutTypes = [\r\n { label: \"Place Order\", value: \"order\" },\r\n { label: \"Self Checkout (Stripe)\", value: \"stripe\" },\r\n ];\r\n\r\n const {\r\n data: _publications,\r\n isLoading: publicationsLoading,\r\n setData: setPublications,\r\n refetchQuery: refetchPublications,\r\n } = useQuery({\r\n request: getPublications,\r\n forcedFilters: {},\r\n skip: userLoading,\r\n });\r\n const {\r\n data: _subscriptions,\r\n isLoading: subscriptionsLoading,\r\n setData: setSubscriptions,\r\n refetchQuery: refetchSubscriptions,\r\n } = useQuery({\r\n request: getSubscriptions,\r\n forcedFilters: {},\r\n skip: userLoading,\r\n });\r\n\r\n const onSubscribe = useCallback(() => {}, []);\r\n const onUnsubscribe = useCallback(() => {}, []);\r\n\r\n const publications = useMemo(() => {\r\n if (!_publications || publicationsLoading) return [];\r\n\r\n const { Items = [] } = _publications || {};\r\n\r\n return Items.map(({ 0: name, 1: pub }) => {\r\n const { Value: Name } = name;\r\n const { Value: id } = pub;\r\n if (!id) return null;\r\n const ids = id.split(\" pub.\");\r\n let identity = {};\r\n ids.forEach((pair) => {\r\n const [key, value] = pair.split(\"=\");\r\n console.log(key, value);\r\n if (value) identity[key] = value.replace(\"[\", \"\").replace(\"]\", \"\");\r\n });\r\n return { Name, ...identity };\r\n });\r\n }, [_publications, publicationsLoading]);\r\n const subscriptions = useMemo(() => {\r\n if (!_subscriptions || subscriptionsLoading) return [];\r\n\r\n const { Items = [] } = _subscriptions || {};\r\n return Items.map((keyvals) => {\r\n let returnInfo = {};\r\n keyvals.forEach(({ Name, Value }) =>\r\n !!Value ? (returnInfo[Name] = Value) : null\r\n );\r\n return returnInfo;\r\n });\r\n }, [_subscriptions, subscriptionsLoading]);\r\n\r\n const spinRef = useRef(null);\r\n\r\n const subscribed = useMemo(() => {\r\n let arr = [];\r\n for (let sub of subscriptions) {\r\n const { Email, DerEmailAddress } = sub || {};\r\n if ([Email, DerEmailAddress].includes(activeUser?.username))\r\n arr.push(sub);\r\n }\r\n return arr;\r\n }, [activeUser, subscriptions]);\r\n console.log(subscribed);\r\n const columns = useMemo(\r\n () => [\r\n {\r\n id: \"ID\",\r\n data: \"ID\",\r\n header: \"ID\",\r\n sort: false,\r\n size: { md: -1, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"Name\",\r\n data: ({ Name }) => {Name || \"—\"},\r\n header: \"Name\",\r\n sort: false,\r\n size: { md: 3, sm: 3, xs: 5 },\r\n },\r\n {\r\n id: \"isSubscribed\",\r\n display: (props) => {\r\n const { Name } = props?.row?.original || {};\r\n const isSubscribed = !!_.find(\r\n subscribed,\r\n ({ PublicationName }) => PublicationName === Name\r\n );\r\n return (\r\n \r\n );\r\n },\r\n header: \"Subscribed\",\r\n sort: false,\r\n size: { lg: 1, md: 2, sm: 2, xs: 3 },\r\n },\r\n {\r\n display: (props) => {\r\n const uid = props.row.original.ID;\r\n const Name = props.row.original.Name;\r\n const isSubscribed = !!_.find(\r\n subscribed,\r\n ({ PublicationName }) => PublicationName === Name\r\n );\r\n return (\r\n \r\n onSubscribe(uid)}\r\n />\r\n onUnsubscribe(uid)}\r\n />\r\n \r\n );\r\n },\r\n header: \"Actions\",\r\n sort: false,\r\n size: { lg: 2, md: 2, sm: 2, xs: 2 },\r\n },\r\n ],\r\n [subscribed, theme.success, theme.danger, onSubscribe, onUnsubscribe]\r\n );\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n {({ dirty, isSubmitting, errors, values, submitForm }) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n {roles && roles.length > 0 && activeUserRole >= 5 && (\r\n \r\n {isMyProfile && activeUserRole < 5 ? (\r\n \r\n ) : (\r\n roles.map((r) => (\r\n \r\n ))\r\n )}\r\n \r\n )}\r\n\r\n {activeUserRole >= 5 && (\r\n \r\n {(checkoutTypes || []).map((type) => (\r\n \r\n ))}\r\n \r\n )}\r\n\r\n {activeUserRole === 9 && (\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default UserDetails;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useContext, useState, useCallback, useMemo } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Formik, Form, useFormikContext } from \"formik\";\r\nimport { Flex, Box } from \"reflexbox/styled-components\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { login, getSecret, authorize } from \"../../requests/authRequests\";\r\nimport Loading from \"../UI/Loading\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport Field from \"../UI/forms/Field\";\r\nimport Checkbox from \"../UI/forms/Checkbox\";\r\nimport Button from \"../UI/Button\";\r\nimport Modal from \"../UI/Modal\";\r\nimport Card from \"../UI/Card\";\r\nimport { Helper, Body } from \"../UI/Text\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport guid from \"../../modules/guid\";\r\nimport {\r\n createUser,\r\n forgotPassword,\r\n} from \"../../requests/userManagementRequests\";\r\nimport { QRCodeSVG } from \"qrcode.react\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\n\r\nconst AutoSubmitToken = () => {\r\n // Grab values and submitForm from context\r\n const { values, submitForm } = useFormikContext();\r\n React.useEffect(() => {\r\n // Submit the form imperatively as an effect as soon as form values.token are 6 digits long\r\n if (values.token.length === 7) {\r\n submitForm();\r\n }\r\n }, [values, submitForm]);\r\n return null;\r\n};\r\n\r\nconst Login = ({ SUN = false }) => {\r\n const navigate = useNavigate();\r\n const { buildUserObject } = useContext(UserContext);\r\n const { showFailureAlert, showSuccessAlert } = useContext(AlertContext);\r\n const theme = useTheme();\r\n const { logoDark } = theme || {};\r\n\r\n const [showForgotPassword, setForgotPassword] = useState(false);\r\n const [isLoading, setLoading] = useState(false);\r\n const [signUp, setSignUp] = useState(false);\r\n const [gatherToken, setGatherToken] = useState(false);\r\n const [secret, setSecret] = useState(null);\r\n const [secretURI, setSecretURI] = useState(null);\r\n const [jwt, setJWT] = useState(null);\r\n const [isAuthorizing, setAuthorizing] = useState(false);\r\n\r\n const runGetSecret = async (username, secret) => {\r\n setGatherToken(true);\r\n const secretKey = secret ? secret : await getSecret();\r\n const issuer = \"SwiftSell\";\r\n const algorithm = \"SHA1\";\r\n const digits = \"6\";\r\n const period = \"30\";\r\n const otpType = \"totp\";\r\n const configUri = `otpauth://${otpType}/${issuer}:${username}?algorithm=${algorithm}&digits=${digits}&period=${period}&issuer=${issuer}&secret=${secretKey}`;\r\n\r\n setSecret(secretKey);\r\n setSecretURI(configUri);\r\n return configUri;\r\n };\r\n\r\n const runAuthorize = useCallback(\r\n async (values, { resetForm }) => {\r\n const { token: _token, username } = values || {};\r\n const { 0: firstThree, 1: lastThree } = _token.split(\" \");\r\n const token = `${firstThree}${lastThree}`;\r\n setAuthorizing(true);\r\n const { isVerified } = await authorize({ token, secret, username });\r\n\r\n if (!isVerified) {\r\n setAuthorizing(false);\r\n setLoading(false);\r\n showFailureAlert(\"Incorrect Passcode.\");\r\n resetForm({ values });\r\n return false;\r\n } else {\r\n window.sessionStorage.setItem(\"token\", jwt);\r\n if (values.stayLoggedIn === true)\r\n window.localStorage.setItem(\"token\", jwt);\r\n await buildUserObject(username);\r\n\r\n return isVerified;\r\n }\r\n },\r\n [buildUserObject, jwt, secret]\r\n );\r\n\r\n const validationSchema = useMemo(\r\n () =>\r\n SUN\r\n ? yup.object().shape({\r\n name: yup.string().required(\"Name is required\"),\r\n username: yup\r\n .string(\"Invalid email address.\")\r\n .email(\"Invalid email address.\")\r\n .required(\"Email address is required.\"),\r\n })\r\n : yup.object().shape({\r\n username: yup\r\n .string(\"Invalid email address.\")\r\n .email(\"Invalid email address.\")\r\n .required(\"Email address is required.\"),\r\n token: gatherToken\r\n ? yup\r\n .string()\r\n .required(\"No passcode provided.\")\r\n .min(7, \"Passcode must be 6 numbers.\")\r\n .max(7, \"Passcode must be 6 numbers.\")\r\n .matches(/[0-9] [0-9]/, \"Passcode can only contain numbers.\")\r\n : yup.string(),\r\n password: signUp\r\n ? yup\r\n .string()\r\n .matches(\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%-^&*]).{8,}$/,\r\n \"Must contain at least 8 Characters, One Uppercase, One Lowercase, One Number and One Special Character\"\r\n )\r\n .required(\"Password is required.\")\r\n : yup.string().required(\"Password is required.\"),\r\n confirmPassword: signUp\r\n ? yup\r\n .string()\r\n .matches(\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%-^&*]).{8,}$/,\r\n \"Must contain at least 8 Characters, One Uppercase, One Lowercase, One Number and One Special Character\"\r\n )\r\n .when(\"password\", {\r\n is: (val) => val && val.length > 8,\r\n then: yup\r\n .string()\r\n .oneOf([yup.ref(\"password\")], \"Passwords do not match.\"),\r\n })\r\n .required(\"Please confirm your password.\")\r\n : undefined,\r\n stayLoggedIn: yup.boolean(),\r\n }),\r\n [SUN, gatherToken, signUp]\r\n );\r\n\r\n const onSubmit = useCallback(\r\n async (_values, { resetForm }) => {\r\n let values = { ..._values };\r\n setLoading(true);\r\n if (SUN) {\r\n try {\r\n const { 0: firstName, 1: lastName } =\r\n (values?.name || \"\").split(\" \") || {};\r\n const pw = guid.GenerateGUID();\r\n const { result, success, error } = await createUser({\r\n input: {\r\n firstName: firstName && lastName ? firstName : values.name,\r\n lastName: firstName && lastName ? lastName : undefined,\r\n password: pw,\r\n username: values.username,\r\n _id: guid.GenerateGUID(),\r\n roleId: \"public\",\r\n },\r\n });\r\n if (!success || !result) {\r\n setLoading(false);\r\n resetForm({ values });\r\n return showFailureAlert(`${JSON.stringify(error)}`);\r\n }\r\n values.password = pw;\r\n } catch (error) {\r\n setLoading(false);\r\n resetForm({ values });\r\n console.error(error);\r\n return showFailureAlert(\"Sign up failed!\");\r\n }\r\n } else if (signUp) {\r\n try {\r\n const { result, success, error } = await createUser({\r\n input: {\r\n username: values.username,\r\n password: values.password,\r\n _id: guid.GenerateGUID(),\r\n roleId: \"public\",\r\n },\r\n });\r\n if (!success || !result) {\r\n setLoading(false);\r\n resetForm({ values });\r\n return showFailureAlert(`${JSON.stringify(error)}`);\r\n }\r\n await runGetSecret(values.username);\r\n setGatherToken(true);\r\n return;\r\n } catch (error) {\r\n setLoading(false);\r\n resetForm({ values });\r\n console.error(error);\r\n return showFailureAlert(\"Sign up failed!\");\r\n }\r\n }\r\n\r\n try {\r\n const {\r\n result: loginRes,\r\n success,\r\n error,\r\n } = await login({\r\n username: values.username,\r\n password: values.password,\r\n stayLoggedIn: values.stayLoggedIn,\r\n });\r\n\r\n if (!success || error) {\r\n setLoading(false);\r\n return showFailureAlert(`${JSON.stringify(error)}`);\r\n }\r\n setJWT(loginRes.token);\r\n if (loginRes.platformRequiresMFA && !loginRes.secret) {\r\n await runGetSecret(values.username);\r\n setGatherToken(true);\r\n } else if (loginRes.secret) {\r\n setGatherToken(true);\r\n } else {\r\n if (values.stayLoggedIn === true)\r\n window.localStorage.setItem(\"token\", loginRes.token);\r\n else window.sessionStorage.setItem(\"token\", loginRes.token);\r\n await buildUserObject(values.username);\r\n navigate(\"/QuoteDashboard\");\r\n }\r\n resetForm({ values });\r\n } catch (error) {\r\n setLoading(false);\r\n resetForm({ values });\r\n console.error(error);\r\n return showFailureAlert(\"Login failed!\");\r\n }\r\n },\r\n [SUN, signUp, buildUserObject, navigate]\r\n );\r\n\r\n const onSubmitForgotPassword = useCallback(async (values) => {\r\n try {\r\n const response = await forgotPassword({\r\n username: values.username,\r\n });\r\n\r\n if (!response) return showFailureAlert(\"Password reset failed!\");\r\n\r\n showSuccessAlert(\"Password reset email sent!\");\r\n } catch (error) {\r\n console.error(error);\r\n showFailureAlert(\"Password reset failed!\");\r\n }\r\n }, []);\r\n\r\n const changeToken = useCallback((e, setFieldValue, values) => {\r\n const lastDigit = e.target.value[e.target.value.length - 1] || \"\";\r\n if (e.target.value.length === 8) return;\r\n if (e.target.value.length === 4 && values.token.length === 3) {\r\n setFieldValue(\"token\", `${values.token} ${lastDigit}`);\r\n } else if (e.target.value.length === 4 && values.token.length === 5) {\r\n const { 0: firstThree } = e.target.value.split(\" \");\r\n setFieldValue(\"token\", firstThree);\r\n } else {\r\n setFieldValue(\"token\", e.target.value);\r\n }\r\n }, []);\r\n\r\n const submit = useMemo(() => {\r\n if (gatherToken) return runAuthorize;\r\n return onSubmit;\r\n }, [gatherToken, onSubmit, runAuthorize]);\r\n\r\n const getFields = useCallback(\r\n ({ values, setFieldValue }) => {\r\n if (gatherToken) {\r\n return (\r\n <>\r\n {secretURI ? (\r\n <>\r\n \r\n \r\n \r\n Scan the code with your authenticator application, then\r\n please enter the code generated in the field below.\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n Please enter the code generated by your Multi-Factor\r\n Authentication application.\r\n \r\n \r\n )}\r\n\r\n \r\n\r\n changeToken(e, setFieldValue, values)}\r\n value={values.token}\r\n style={{ textAlign: \"center\", fontSize: \"3rem\" }}\r\n />\r\n \r\n \r\n );\r\n } else if (SUN) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n\r\n {!showForgotPassword ? (\r\n <>\r\n \r\n\r\n {signUp ? (\r\n \r\n ) : null}\r\n\r\n \r\n\r\n \r\n setSignUp(false)}\r\n type={!signUp ? \"submit\" : \"button\"}\r\n >\r\n {isLoading && !signUp ? (\r\n \r\n ) : (\r\n \"Login\"\r\n )}\r\n \r\n\r\n setSignUp(true)}\r\n type={signUp ? \"submit\" : \"button\"}\r\n >\r\n {isLoading && signUp ? (\r\n \r\n ) : (\r\n \"Sign Up\"\r\n )}\r\n \r\n \r\n\r\n setForgotPassword(true)}\r\n >\r\n Forgot Password?\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n onSubmitForgotPassword(values)}\r\n >\r\n Request Password Reset\r\n \r\n \r\n setForgotPassword(false)}\r\n >\r\n Back to login\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n },\r\n [\r\n SUN,\r\n changeToken,\r\n gatherToken,\r\n isAuthorizing,\r\n isLoading,\r\n onSubmitForgotPassword,\r\n secretURI,\r\n showForgotPassword,\r\n signUp,\r\n theme,\r\n ]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {({ values, setFieldValue }) => {\r\n return (\r\n \r\n \r\n {!gatherToken && (\r\n \r\n )}\r\n\r\n {getFields({ values, setFieldValue })}\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 Login;\r\n","import React, { useContext, useEffect, useCallback } from \"react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { Box, Flex } from \"reflexbox/styled-components\";\r\nimport * as userManagementRequests from \"../../requests/userManagementRequests\";\r\nimport StyledFormikField from \"../UI/forms/Field\";\r\nimport Button from \"../UI/Button\";\r\nimport FormButtonCluster from \"../UI/forms/ButtonCluster\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Heading } from \"../UI/Text\";\r\nimport * as yup from \"yup\";\r\nimport moment from \"moment\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n password: yup\r\n .string()\r\n .matches(\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%-^&*]).{8,}$/,\r\n \"Must contain at least 8 Characters, One Uppercase, One Lowercase, One Number and One Special Character\"\r\n )\r\n .required(\"Password is required.\"),\r\n confirmPassword: yup\r\n .string()\r\n .matches(\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%-^&*]).{8,}$/,\r\n \"Must contain at least 8 Characters, One Uppercase, One Lowercase, One Number and One Special Character\"\r\n )\r\n .when(\"password\", {\r\n is: (val) => val && val.length > 8,\r\n then: yup\r\n .string()\r\n .oneOf([yup.ref(\"password\")], \"Passwords do not match.\"),\r\n })\r\n .required(\"Please confirm your password.\"),\r\n});\r\n\r\nconst ResetPassword = () => {\r\n const navigate = useNavigate();\r\n const [searchParams] = useSearchParams();\r\n const passwordResetRequestId = searchParams.get(\"request\") || \"\";\r\n const { showFailureAlert } = useContext(AlertContext);\r\n const { getPasswordResetRequest, updateUser } = userManagementRequests;\r\n\r\n const { data: userData, isLoading } = useQuery({\r\n queryID: \"passwordReset\",\r\n request: getPasswordResetRequest,\r\n queryVariables: { passwordResetRequestId },\r\n forcedFilters: {},\r\n skip: !passwordResetRequestId,\r\n });\r\n\r\n const { result: resetRequest } = userData || {};\r\n\r\n const { userId, expirationDate } = resetRequest || {};\r\n const now = new Date();\r\n const expired = moment(expirationDate).isBefore(now); // true\r\n\r\n useEffect(() => {\r\n if (!passwordResetRequestId) navigate(\"/Login\");\r\n }, [isLoading, navigate, passwordResetRequestId, userId]);\r\n\r\n useEffect(() => {\r\n console.error(expired);\r\n showFailureAlert(\"Your login token has expired.\");\r\n if (expired) navigate(\"/Login\");\r\n }, [expired, navigate, showFailureAlert]);\r\n\r\n const onSubmit = useCallback(\r\n async (values) => {\r\n const input = {\r\n password: values.password,\r\n resetId: null,\r\n mfaSecret: null,\r\n };\r\n\r\n if (!userId) return showFailureAlert(\"Invalid password reset request.\");\r\n\r\n await updateUser({ id: userId, input });\r\n\r\n navigate(\"/Login\");\r\n },\r\n [navigate, showFailureAlert, updateUser, userId]\r\n );\r\n\r\n const onCancel = () => navigate(\"/Login\");\r\n\r\n const initialValues = {\r\n password: \"\",\r\n confirmPassword: \"\",\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n navigate(-1)}\r\n />\r\n Reset Password\r\n \r\n \r\n {({\r\n dirty,\r\n isSubmitting,\r\n isValidating,\r\n errors,\r\n values,\r\n submitForm,\r\n submitCount,\r\n }) => {\r\n const fieldProps = {\r\n errors,\r\n type: \"text\",\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\nexport default ResetPassword;\r\n","const sharedStyles = {\r\n breakpoints: [\"320px\", \"360px\", \"600px\", \"800px\", \"1000px\", \"1200px\"],\r\n borderRadius: 15,\r\n gray: \"#6c757d\",\r\n grayDark: \"#343a40\",\r\n green: \"#28a745\",\r\n indigo: \"#6610f2\",\r\n info: \"#17a2b8\",\r\n light: \"#e8e9ea\",\r\n orange: \"#fd7e14\",\r\n pink: \"#e83e8c\",\r\n purple: \"#6f42c1\",\r\n danger: \"#dc3545\",\r\n success: \"#28a745\",\r\n teal: \"#20c997\",\r\n warning: \"#ffc107\",\r\n white: \"#fff\",\r\n yellow: \"#ffc107\",\r\n primary: \"#e12f6e\", // RenTech Pink\r\n secondary: \"#1ba1e1\", // RenTech Blue\r\n borderColor: \"#ced4da\",\r\n buttonColor: \"#EEEEEE\",\r\n altButtonColor: \"#6D6E71\",\r\n buttonTextWhite: \"#FFF\",\r\n activeStageColor: \"#13cdfd\",\r\n inactiveStageForeColor: \"#000\",\r\n activeStageForeColor: \"#FFF\",\r\n completedStageColor: \"#EEEEEE\",\r\n incompleteStageColor: \"#EEEEEE\",\r\n accentColor: \"#ffdd00\",\r\n backgroundOffset: \"#EEEEEE\",\r\n boxShadowColor: \"rgba(0, 0, 0, 0.2)\",\r\n callToActionColor: \"#e12f6e\", //Pink\r\n};\r\n\r\nexport const airTractorTheme = {\r\n backgroundColor: \"#ffffff\",\r\n borderColor: \"#ced4da\",\r\n borderRadius: 15,\r\n boxShadowColor: \"#000000\",\r\n breakpoints: '[\"400px\",\"600px\",\"800px\",\"1000px\",\"1200px\"]',\r\n callToActionColor: \"#ffd33d\",\r\n danger: \"#dc3545\",\r\n darkMode: false,\r\n description: null,\r\n emailLogo: \"/uploads/theme/AT-Logo.svg\",\r\n gray: \"#6c757d\",\r\n grayDark: \"#222222\",\r\n gridRowBackgroundColor: \"#ededed\",\r\n headerColor: \"#e5e5e5\",\r\n headerTextColor: \"#1a468c\",\r\n id: \"5911d797-8cd7-4e9b-920f-b79c4b288732\",\r\n logo: \"/uploads/theme/AT-Logo.svg\",\r\n logoDark: \"/uploads/theme/AT-Logo-White.svg\",\r\n name: \"Light Mode\",\r\n pid: \"3137b26e-1448-4331-ba16-caa0f2b2cdf5\",\r\n primary: \"#ffd33d\",\r\n secondary: \"#1a468c\",\r\n success: \"#28a745\",\r\n tertiary: \"#cccccc\",\r\n textDark: \"#000000\",\r\n warning: \"#ffc107\",\r\n};\r\n\r\nexport const darkModeTheme = {\r\n darkMode: true,\r\n gridLineHoverBackgroundColor: \"#606060\",\r\n gridLineHoverOpacity: 0.7,\r\n gridLineHoverColor: \"#000000 !important\",\r\n gridRowBackgroundColor: \"#0D0D0D\", //black\r\n gridRowAlternateBackgroundColor: \"#2b2a2a\",\r\n callToActionColor: \"#e12f6e\", //Pink\r\n callToActionShadow: \"0 0 0 1px #e12f6e !important\",\r\n backgroundColor: \"#0D0D0D\", //White\r\n backgroundOpposite: \"#FFF\", //black\r\n imageActionColorFilter:\r\n \"invert(77%) sepia(67%) saturate(2280%) hue-rotate(349deg) brightness(105%) contrast(98%)\",\r\n darkBackground: \"#000\",\r\n lightBackground: \"#2b2a2a\", //Light Grey\r\n darkerOffset: \"#6d6d6d\", //Grey 6d6d6d 333333\r\n currentHighlight: \"#13cdfd\",\r\n currentHighlightShadow: \"0 0 0 1px #13cdfd !important\",\r\n darkerHighlight: \"#5c5e5f\", //dark dark grey 6f6f6f (9c85e6 - pruple)\r\n textDark: \"#FFF\", //Black\r\n textLight: \"#000\", //White\r\n textMedium: \"#FFF\", //Black\r\n actionRequired: \"#e2231a\", //Red\r\n boxShadowColor: \"rgba(100, 100, 100, 0.2)\",\r\n loadingIcon: \"/images/loadingRippleDark.gif\",\r\n logo: \"/images/SwiftSellLogoBlueandPink.png\", //TrinityLogoDarkMode\r\n logoDark: \"/images/SwiftSellWhiteandPink.png\", // White\r\n emailLogo: \"/images/SwiftSellWhiteandPink.png\", // White\r\n ...sharedStyles,\r\n};\r\n","import React, { useContext, useState, useMemo } from \"react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { useTheme } from \"styled-components\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport Field from \"../UI/forms/Field\";\r\nimport FormButtonCluster from \"../UI/forms/ButtonCluster\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport * as yup from \"yup\";\r\nimport * as productManagementRequests from \"../../requests/productManagementRequests\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport { Checkbox, Radio } from \"../UI/forms\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport Button from \"../UI/Button\";\r\nimport Loading from \"../UI/Loading\";\r\nimport { useCallback } from \"react\";\r\nimport { getPlatforms } from \"../../requests/platformManagementRequests\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n pid: yup.string(),\r\n Name: yup.string(),\r\n Description: yup.string().max(250),\r\n ProductNumber: yup.string(),\r\n ApplicationInstance: yup.string(),\r\n ApplicationName: yup.string(),\r\n HeaderId: yup.string(),\r\n Profile: yup.string(),\r\n // img: yup.string(),\r\n Ruleset: yup.string(),\r\n Namespace: yup.string(),\r\n Server: yup.string(),\r\n isNonConfigurable: yup.boolean().default(false),\r\n defaultPrice: yup.number(),\r\n isQuickConfig: yup.boolean().default(true),\r\n quantityInStock: yup.number(),\r\n RelatedItem: yup.string(),\r\n});\r\n\r\nconst ProductForm = () => {\r\n const theme = useTheme();\r\n\r\n const { action, id } = useParams();\r\n const navigate = useNavigate();\r\n const { activeUser, pid } = useContext(UserContext);\r\n const { roleLevel } = activeUser || {};\r\n\r\n const {\r\n getProduct,\r\n getProducts,\r\n updateProduct,\r\n deleteProduct,\r\n createProduct,\r\n } = productManagementRequests;\r\n\r\n const [canRefetch, setCanRefetch] = useState(false);\r\n\r\n const { refetchQuery } = useQuery({\r\n queryID: \"productspage\",\r\n request: getProducts,\r\n queryVariables: { pid, gid: activeUser?.groupId },\r\n skip: !canRefetch || !pid,\r\n });\r\n\r\n const {\r\n data,\r\n isLoading,\r\n refetchQuery: refetchProduct,\r\n } = useQuery({\r\n queryID: id,\r\n request: getProduct,\r\n queryVariables: { id },\r\n forcedFilters: {},\r\n skip: action === \"create\",\r\n });\r\n\r\n const initialValues = useMemo(\r\n () => ({\r\n pid: data?.pid || \"\",\r\n Name: data?.Name || \"\",\r\n Description: data?.Description || \"\",\r\n ProductNumber: data?.ProductNumber || \"\",\r\n ApplicationInstance: data?.ApplicationInstance || \"\",\r\n ApplicationName: data?.ApplicationName || \"\",\r\n HeaderId: data?.HeaderId || \"\",\r\n Profile: data?.Profile || \"\",\r\n img: data?.img || \"\",\r\n Ruleset: data?.Ruleset || \"\",\r\n Namespace: data?.Namespace || \"\",\r\n Server: data?.Server || \"\",\r\n isNonConfigurable: data?.isNonConfigurable || false,\r\n defaultPrice: data?.defaultPrice || 0,\r\n isQuickConfig: data?.isQuickConfig || false,\r\n quantityInStock: data?.quantityInStock || 0,\r\n RelatedItem: data?.RelatedItem || \"\",\r\n }),\r\n [data]\r\n );\r\n\r\n const platforms = useQuery({\r\n queryID: \"platforms\",\r\n request: getPlatforms,\r\n skip: isLoading,\r\n });\r\n\r\n const { rows: _platforms = [] } = platforms?.data || {};\r\n const platformOptions = useMemo(() => {\r\n return _platforms.map(({ id, name }) => (\r\n \r\n ));\r\n }, [_platforms]);\r\n\r\n const onSubmit = useCallback(\r\n async (values) => {\r\n const { username } = activeUser;\r\n setCanRefetch(true);\r\n const input = {\r\n ...values,\r\n createdByEmail: username,\r\n pid: activeUser?.roleLevel === 9 ? values?.pid : pid,\r\n // img: values.img || data?.img || \"\",\r\n img: undefined,\r\n ...(values.isNonConfigurable\r\n ? {\r\n isQuickConfig: false,\r\n }\r\n : {\r\n quantityInStock: null,\r\n defaultPrice: null,\r\n }),\r\n };\r\n if (action === \"create\") {\r\n const data = await createProduct({ input });\r\n refetchQuery();\r\n if (data.success) {\r\n navigate(`/Products/edit/${data?.error?.createdProduct?.ID}`);\r\n }\r\n } else if (action === \"edit\") {\r\n await updateProduct({ id, input });\r\n refetchProduct();\r\n refetchQuery();\r\n }\r\n return;\r\n },\r\n [\r\n action,\r\n activeUser,\r\n createProduct,\r\n id,\r\n navigate,\r\n pid,\r\n refetchProduct,\r\n refetchQuery,\r\n updateProduct,\r\n ]\r\n );\r\n\r\n const onDelete = useCallback(async () => {\r\n setCanRefetch(true);\r\n if (data.ID) {\r\n let data = await deleteProduct(id);\r\n refetchQuery();\r\n if (data.success) {\r\n navigate(\"/Products\");\r\n }\r\n }\r\n }, [deleteProduct, id, data, navigate, refetchQuery]);\r\n\r\n const onTextareaInput = (e) => {\r\n e.target.value = e.target.value.replace(/\\r?\\n/, \"\"); // Filter out newlines\r\n };\r\n\r\n const radioOptions = useMemo(\r\n (values) => {\r\n const options = [];\r\n const { isNonConfigurable } = data || {};\r\n\r\n if (isNonConfigurable) {\r\n options.push({\r\n value: true,\r\n label: (\r\n {}\r\n // : () =>\r\n // setFieldValue(\"isNonConfigurable\", true)\r\n }\r\n color={!isNonConfigurable ? theme.gray : theme.secondary}\r\n >\r\n Fixed Price\r\n \r\n ),\r\n });\r\n } else {\r\n options.push({\r\n value: false,\r\n label: (\r\n {}\r\n // : () =>\r\n // setFieldValue(\"isNonConfigurable\", false)\r\n }\r\n color={isNonConfigurable ? theme.gray : theme.secondary}\r\n >\r\n Configurable\r\n \r\n ),\r\n });\r\n }\r\n return options;\r\n },\r\n [data, theme.gray, theme.secondary, roleLevel]\r\n );\r\n\r\n // const onFileUpload = useCallback(\r\n // async (file) => {\r\n // setCanRefetch(true);\r\n // // const { name } = file;\r\n\r\n // const formData = new FormData();\r\n // formData.append(\"file\", file);\r\n // const preview = URL.createObjectURL(file);\r\n // refetchProduct();\r\n // refetchQuery(\"productspage\");\r\n // },\r\n // [refetchProduct, refetchQuery]\r\n // );\r\n\r\n return (\r\n \r\n \r\n\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {(formProps) => {\r\n const { values } = formProps;\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 {activeUser?.roleLevel === 9 && (\r\n \r\n \r\n {platformOptions}\r\n \r\n )}\r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n {isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {values?.img && (\r\n {values?.Name\r\n )}\r\n \r\n )}\r\n setDisabled(true)}\r\n postUploadCallback={() => setDisabled(false)}\r\n />\r\n \r\n {errors[\"img\"]}\r\n */}\r\n \r\n\r\n \r\n {values.isNonConfigurable ? (\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 navigate(\"/Products\")}\r\n onDelete={onDelete}\r\n recordAction={action}\r\n hideDelete={roleLevel !== 9 || action === \"create\"}\r\n deleteMessage={`Are you sure you want to delete ${values.Name}?`}\r\n />\r\n \r\n );\r\n }}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ProductForm;\r\n","import React, { useContext } from \"react\";\r\nimport { Heading, Body, Currency } from \"../UI/Text\";\r\nimport { Flex } from \"reflexbox\";\r\nimport Table from \"../UI/Table\";\r\nimport Button from \"../UI/Button\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { useMemo } from \"react\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { getProducts } from \"../../requests/productManagementRequests\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFileCircleExclamation } from \"@fortawesome/free-solid-svg-icons\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\n\r\nconst LineImg = styled.img`\r\n width: 100%;\r\n text-align: center;\r\n`;\r\n\r\nconst ProductTable = ({ toggle, ...props }) => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n const { pid, activeUser } = useContext(UserContext);\r\n const { data, isLoading } = useQuery({\r\n queryID: \"productspage\",\r\n request: getProducts,\r\n queryVariables: { pid, gid: activeUser?.groupId },\r\n skip: !pid,\r\n });\r\n\r\n const gridData = useMemo(() => {\r\n if (!data?.rows) return null;\r\n return data.rows.map((row) => {\r\n const { ID, img, Description, Name } = row || {};\r\n return { id: ID, image: img, subtitle: Description, title: Name };\r\n });\r\n }, [data]);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n id: \"img\",\r\n data: (row) => (\r\n \r\n {row?.img ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ),\r\n header: \"Preview\",\r\n size: { md: -1, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"ProductNumber\",\r\n data: \"ProductNumber\",\r\n header: \"Part #\",\r\n size: { md: 1, sm: 2, xs: -1 },\r\n },\r\n {\r\n id: \"Name\",\r\n data: \"Name\",\r\n size: { lg: 2, md: -1, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"Description\",\r\n data: \"Description\",\r\n sort: false,\r\n size: { md: 3, sm: 0, xs: -1 },\r\n },\r\n {\r\n id: \"RelatedItem\",\r\n data: ({ RelatedItem }) => {RelatedItem},\r\n header: \"Related Item\",\r\n sort: false,\r\n size: { lg: 2, md: -1, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"defaultPrice\",\r\n header: \"Price\",\r\n data: (row) => {\r\n return row?.defaultPrice ? (\r\n \r\n ) : (\r\n —\r\n );\r\n },\r\n sort: false,\r\n size: { md: 2, sm: 0, xs: -1 },\r\n },\r\n {\r\n id: \"quantityInStock\",\r\n data: (row) => {row?.quantityInStock || \"—\"},\r\n header: \"In Stock (#)\",\r\n size: { md: 1, sm: 2, xs: 0 },\r\n },\r\n\r\n {\r\n id: \"Mobile-Icons\",\r\n data: \"ImageUrl\",\r\n display: ({ getValue, row }) => {\r\n let Name = row.getValue(\"Name\");\r\n let Description = row.getValue(\"Description\");\r\n let ID = row.getValue(\"ProductNumber\");\r\n let ImageUrl = getValue();\r\n return (\r\n \r\n \r\n \r\n {Name}\r\n \r\n \r\n \r\n {Name}\r\n \r\n {Description}\r\n \r\n \r\n );\r\n },\r\n header: \"\",\r\n sort: false,\r\n size: { sm: -1, xs: 1 },\r\n },\r\n ],\r\n [theme.danger, theme.secondary]\r\n );\r\n\r\n const click = (row) =>\r\n navigate(`/Products/edit/${row?.original?.ID || row?.ID || row?.id}`);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProductTable;\r\n","import React, { useState } from \"react\";\r\nimport * as constants from \"../../modules/constants\";\r\nimport ConfiguratorContext from \"./ConfiguratorContext\";\r\n\r\nconst ConfiguratorContextProvider = ({ children }) => {\r\n const [activeProduct, setActiveProduct] = useState(null);\r\n const [quote, setQuote] = useState(null);\r\n const [isReconfigure, setIsReconfigure] = useState(false);\r\n const [api, setApi] = useState({ d: { Pages: [] } });\r\n const [sessionId, setSessionId] = useState(false);\r\n const [headerId, setHeaderId] = useState(false);\r\n const [autoContinueMode, setACMode] = useState(0);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [fromDealer, setFromDealer] = useState(false);\r\n const [continueClicked, setContinueClicked] = useState(0);\r\n const [optionToFocus, setOptionToFocus] = useState(\"\");\r\n const [isLocked, setIsLocked] = useState(false);\r\n const [reviewMode, setReviewMode] = useState(false);\r\n const [printing, setPrinting] = useState(false);\r\n const [configuratorMode, setConfiguratorMode] = useState(\r\n constants.CONFIGURATOR_MODES.Default\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ConfiguratorContextProvider;\r\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\r\nimport { useSearchParams } from \"react-router-dom\";\r\nimport { useContext } from \"react\";\r\nimport { getUser, updateUser } from \"../../requests/userManagementRequests\";\r\nimport { getPlatform } from \"../../requests/platformManagementRequests\";\r\nimport authentication from \"../../modules/authentication\";\r\nimport UserContext from \"./UserContext\";\r\nimport { useQuery } from \"../../components/Hooks\";\r\nimport AlertContext from \"../socket/SocketContext\";\r\nimport SocketContext from \"../socket/SocketContext\";\r\nimport _ from \"lodash\";\r\nimport * as qmr from \"../../requests/quoteManagementRequests\";\r\n\r\nconst UserContextProvider = ({ children }) => {\r\n // const { matches: isDarkOS } = window.matchMedia(\r\n // \"(prefers-color-scheme: dark)\"\r\n // );\r\n\r\n const dm = window.sessionStorage.getItem(\"darkMode\");\r\n const { username } = authentication.verifyToken() || {};\r\n const [searchParams] = useSearchParams();\r\n const productId = searchParams.get(\"productId\") || \"\";\r\n\r\n const [loggedIn, setLoggedIn] = useState(!!username);\r\n const [activeUser, setActiveUser] = useState(null);\r\n const [isLoading, setLoading] = useState(false);\r\n const [queries, setQueries] = useState({});\r\n const [inFlight, setInFlight] = useState(false);\r\n const [loggedInUsers, setLoggedInUsers] = useState({});\r\n const [activeOrderStatus, setActiveOrderStatus] = useState([]);\r\n const [numOrdersUpdated, setNumOrdersUpdated] = useState(0);\r\n const [refetchHeader, setRefetchHeader] = useState(false);\r\n\r\n const { showSuccessAlert } = useContext(AlertContext);\r\n const { userLoggedIn } = useContext(SocketContext);\r\n\r\n const _setQueries = useCallback((data) => {\r\n if (typeof setQueries === \"function\") setQueries(data);\r\n }, []);\r\n\r\n const [darkMode, setDarkMode] = useState(\r\n productId ? false : dm === \"true\" ? true : dm === \"false\" ? false : false\r\n );\r\n\r\n const updateLoggedInUsers = useCallback(\r\n (user) => {\r\n const { username, content } = user || {};\r\n const { isLoggedIn } = content || {};\r\n setLoggedInUsers({ ...loggedInUsers, [username]: isLoggedIn });\r\n },\r\n [loggedInUsers]\r\n );\r\n\r\n const { pid } = activeUser || {};\r\n\r\n const {\r\n data: platform,\r\n isLoading: platformLoading,\r\n refetchQuery: refetchPlatform,\r\n } = useQuery({\r\n queries,\r\n setQueries,\r\n queryID: \"platform\",\r\n request: getPlatform,\r\n queryVariables:\r\n !loggedIn || activeUser?.roleLevel === 0\r\n ? { defaultPlatform: true }\r\n : { id: pid },\r\n forcedFilters: {},\r\n skip:\r\n isLoading ||\r\n (loggedIn && !pid && activeUser?.roleLevel > 1) ||\r\n (loggedIn && !activeUser),\r\n });\r\n\r\n const updateOrderStatus = useCallback(\r\n (data) => {\r\n const { activeOrders = [], numItemsUpdated } = data;\r\n console.log(data);\r\n setActiveOrderStatus(activeOrders);\r\n\r\n if (activeUser?.roleLevel >= 5 && platform) {\r\n const { emailAddresses: _emails } = platform;\r\n const emails = JSON.parse(_emails).split(\",\");\r\n activeOrders.forEach((order) => {\r\n const statusTypes = {\r\n P: \"Planned\",\r\n S: \"Stopped\",\r\n O: \"Ordered\",\r\n H: \"History\",\r\n };\r\n const subject = `New Update to Your ${\r\n activeOrders.length > 1 ? \"Orders\" : \"Order\"\r\n }.`;\r\n const htmlBody = (\r\n
\r\n {activeOrders.map((order) => {\r\n return Object.keys(order).map((val) =>

{val}

);\r\n })}\r\n
\r\n );\r\n setNumOrdersUpdated(numItemsUpdated);\r\n if (_.isArray(emails)) {\r\n qmr.sendOrderStatusEmails({\r\n emails,\r\n subject,\r\n htmlBody,\r\n });\r\n }\r\n\r\n if (showSuccessAlert)\r\n showSuccessAlert(\r\n `Order #${order.swiftsellQuoteId} status changed to ${\r\n statusTypes[order.csiStatus]\r\n }`\r\n );\r\n });\r\n }\r\n },\r\n [activeUser, platform, showSuccessAlert]\r\n );\r\n\r\n const buildUserObject = useCallback(\r\n async (user, signal) => {\r\n if (!user) {\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n if (!activeUser?.id) {\r\n setLoading(true);\r\n\r\n const userResponse = await getUser({\r\n username: user,\r\n signal,\r\n });\r\n\r\n const { result: currentUser } = userResponse || {};\r\n\r\n if (!currentUser) return console.log(\"No user\");\r\n\r\n setActiveUser(currentUser);\r\n updateUser({ id: currentUser?.id, input: { isLoggedIn: true } });\r\n setLoggedIn(true);\r\n const userQueryObject = {\r\n data: currentUser,\r\n refetchQuery: buildUserObject,\r\n setData: setActiveUser,\r\n isLoading: false,\r\n };\r\n\r\n setQueries({ ...queries, [currentUser.username]: userQueryObject });\r\n\r\n userLoggedIn({ user, updateLoggedInUsers, updateOrderStatus });\r\n\r\n setLoading(false);\r\n\r\n return;\r\n }\r\n },\r\n [activeUser, queries, updateLoggedInUsers, updateOrderStatus, userLoggedIn]\r\n );\r\n\r\n useEffect(() => {\r\n if (dm) return;\r\n window\r\n .matchMedia(\"(prefers-color-scheme: dark)\")\r\n .addEventListener(\"change\", function (e) {\r\n const isDark = e.matches;\r\n const loc = window.sessionStorage.getItem(\"darkMode\");\r\n setDarkMode(loc === \"true\" ? true : loc === \"false\" ? false : isDark);\r\n });\r\n }, [dm]);\r\n\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n\r\n if (!isLoading) buildUserObject(username, controller.signal);\r\n\r\n return () => controller.abort();\r\n }, [buildUserObject, isLoading, username]);\r\n\r\n const loading = useMemo(() => {\r\n if (isLoading || platformLoading || !platform || (!activeUser && loggedIn))\r\n return true;\r\n return false;\r\n }, [activeUser, isLoading, loggedIn, platform, platformLoading]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default UserContextProvider;\r\n","import React, { useState, useCallback } from \"react\";\r\nimport SocketContext from \"./SocketContext\";\r\n\r\nconst wsProtocol = window.location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\r\nconst wsHost = window.location.hostname;\r\nconst wsPort = window.location.protocol === \"https:\" ? \":8880\" : \":8880\";\r\nconst wsPath = \"/\";\r\nconst wsURL = `${wsProtocol}//${wsHost}${wsPort}${wsPath}`;\r\n\r\nconst SocketContextProvider = ({ children }) => {\r\n const [client, setClient] = useState();\r\n\r\n const connectSocket = useCallback(async () => {\r\n const ws = new WebSocket(wsURL);\r\n return new Promise((resolve) => {\r\n const timer = setInterval(() => {\r\n if (ws.readyState === 1) {\r\n clearInterval(timer);\r\n setClient(ws);\r\n resolve(ws);\r\n }\r\n }, 10);\r\n });\r\n }, []);\r\n\r\n const initializeSocket = useCallback(\r\n async ({ updateLoggedInUsers, updateOrderStatus }) => {\r\n const ws = await connectSocket();\r\n\r\n ws.onmessage = (message) => {\r\n const dataFromServer = JSON.parse(message.data);\r\n const { data, type } = dataFromServer || {};\r\n if (type === \"userevent\") {\r\n const { users } = data || {};\r\n Object.entries(users).forEach((userKeyVal) => {\r\n const { 1: user } = userKeyVal;\r\n updateLoggedInUsers(user);\r\n });\r\n }\r\n if (type === \"contentchange\") {\r\n updateOrderStatus(data);\r\n }\r\n };\r\n\r\n setClient(ws);\r\n return ws;\r\n },\r\n [connectSocket]\r\n );\r\n\r\n const userLoggedIn = useCallback(\r\n async ({ user, updateLoggedInUsers, updateOrderStatus }) => {\r\n const _client = await initializeSocket({\r\n updateLoggedInUsers,\r\n updateOrderStatus,\r\n });\r\n _client.send(\r\n JSON.stringify({\r\n username: user,\r\n type: \"userevent\",\r\n content: { isLoggedIn: true },\r\n })\r\n );\r\n },\r\n [initializeSocket]\r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default SocketContextProvider;\r\n","import React, { useState, useCallback } from \"react\";\r\nimport AlertContext from \"./AlertContext\";\r\nimport { GenerateGUID } from \"../../modules/guid\";\r\n\r\nconst AlertContextProvider = ({ children }) => {\r\n const [alerts, setAlerts] = useState([]);\r\n\r\n const showAlert = useCallback(\r\n (alertText, alertColor) => {\r\n const id = GenerateGUID();\r\n const newAlert = { alertText, alertColor, id };\r\n let newAlertsArray = [...alerts];\r\n newAlertsArray.splice(0, 0, newAlert);\r\n\r\n setAlerts(newAlertsArray);\r\n },\r\n [alerts]\r\n );\r\n\r\n const showFailureAlert = (alertText) => showAlert(alertText, \"danger\");\r\n const showSuccessAlert = (alertText) => showAlert(alertText, \"success\");\r\n const showWarningAlert = (alertText) => showAlert(alertText, \"warning\");\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default AlertContextProvider;\r\n","import React, { useContext, useMemo } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport Table from \"../UI/Table\";\r\n\r\nconst Administration = () => {\r\n const navigate = useNavigate();\r\n const { activeUser } = useContext(UserContext);\r\n const { pid, roleLevel } = activeUser || {};\r\n\r\n let gridData = useMemo(\r\n () => [\r\n {\r\n title: \"Users\",\r\n path: \"/Users\",\r\n iconName: \"faUsers\",\r\n },\r\n {\r\n title: \"Groups\",\r\n path: `/Groups/${pid}`,\r\n iconName: \"faUserGroup\",\r\n },\r\n {\r\n title: \"Products\",\r\n path: \"/Products\",\r\n iconName: \"faBoxesStacked\",\r\n },\r\n {\r\n title: \"Customers\",\r\n path: `/Customers/${pid}`,\r\n iconName: \"faIdCard\",\r\n },\r\n // {\r\n // title: \"Addresses\",\r\n // path: \"/Addresses\",\r\n // iconName: \"faAddressBook\",\r\n // },\r\n {\r\n title: \"Interactions\",\r\n path: `/Interactions`,\r\n iconName: \"faComments\",\r\n },\r\n {\r\n title: \"Themes\",\r\n path: `/Themes/${pid}`,\r\n iconName: \"faPalette\",\r\n },\r\n {\r\n title: \"RMAs\",\r\n path: `/RMAs/${pid}`,\r\n iconName: \"faTags\",\r\n },\r\n ],\r\n [pid]\r\n );\r\n\r\n if (roleLevel >= 5)\r\n gridData = [\r\n ...gridData,\r\n {\r\n title: \"Status Types\",\r\n path: \"/StatusTypes\",\r\n iconName: \"faTimeline\",\r\n },\r\n {\r\n title: \"Platform Settings\",\r\n path: `/Platforms/edit/${pid}`,\r\n iconName: \"faGears\",\r\n },\r\n {\r\n title: \"All Orders\",\r\n path: `/Orders/${pid}`,\r\n iconName: \"faTruckFast\",\r\n },\r\n {\r\n title: \"All Quotes\",\r\n path: `/Quotes/${pid}`,\r\n iconName: \"faFileContract\",\r\n },\r\n ];\r\n if (roleLevel === 9)\r\n gridData = [\r\n ...gridData,\r\n {\r\n title: \"Role Management\",\r\n path: `/Role/${pid}`,\r\n iconName: \"faIdCardClip\",\r\n },\r\n {\r\n title: \"Platforms\",\r\n path: `/Platforms`,\r\n iconName: \"faPeopleRoof\",\r\n },\r\n {\r\n title: \"Issue Reports\",\r\n path: \"/IssueReports\",\r\n iconName: \"faBugs\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n navigate(item.path)}\r\n hidePager\r\n hideSearch\r\n forceGrid\r\n hideToggle\r\n hideProperties\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Administration;\r\n","import React, { useMemo } from \"react\";\r\nimport { FieldArray, useField, useFormikContext } from \"formik\";\r\nimport _ from \"lodash\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { Flex, Box } from \"reflexbox/styled-components\";\r\nimport Label from \"../Label\";\r\nimport Button from \"../../Button\";\r\nimport StyledFormikField from \"../Field\";\r\nimport { Helper } from \"../../Text\";\r\n\r\nconst EnhancedFieldArray = (props) => {\r\n const { primary, secondary } = useTheme();\r\n const {\r\n errors,\r\n label,\r\n description,\r\n name,\r\n push,\r\n remove,\r\n faProps,\r\n labelText,\r\n ...rest\r\n } = props || {};\r\n const { setFieldValue } = useFormikContext();\r\n\r\n const [field, meta] = useField(name);\r\n\r\n const fields = useMemo(() => {\r\n const val = field.value || [\"\"];\r\n return val;\r\n }, [field]);\r\n\r\n const filteredRest = _.omit(rest, faProps);\r\n\r\n return (\r\n \r\n \r\n {description}\r\n {fields?.map((value, i) => {\r\n return (\r\n \r\n \r\n setFieldValue(`${name}.${i}`, e.target.value)}\r\n name={`${name}.${i}`}\r\n error={meta.error}\r\n {...filteredRest}\r\n />\r\n \r\n {i === fields.length - 1 && (\r\n push(\"\")}\r\n />\r\n )}\r\n {fields.length !== 1 && (\r\n remove(i)}\r\n />\r\n )}\r\n \r\n );\r\n })}\r\n\r\n {fields.length === 0 ? (\r\n \r\n \r\n setFieldValue(name, hex)}\r\n />\r\n \r\n \r\n )}\r\n {meta.error && (\r\n \r\n {meta.error}\r\n \r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport default ColorPicker;\r\n","import React, { useCallback, useContext, useMemo } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport { Form, Formik } from \"formik\";\r\nimport { Field, File, FormButtonCluster } from \"../UI/forms\";\r\nimport FieldArray from \"../UI/forms/FieldArray\";\r\nimport * as r from \"../../requests/themeManagementRequests\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport ColorPicker from \"../UI/forms/ColorPicker\";\r\nimport Range from \"../UI/forms/Range\";\r\nimport Radio from \"../UI/forms/Radio\";\r\nimport Card from \"../UI/Card\";\r\nimport Button from \"../UI/Button\";\r\nimport { Heading, Body } from \"../UI/Text\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { airTractorTheme as defaultTheme } from \"../../modules/theme\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { getTheme } from \"../../requests/themeManagementRequests\";\r\nimport { getPlatforms } from \"../../requests/platformManagementRequests\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport Loading from \"../UI/Loading\";\r\n\r\nconst validationSchema = yup.object().shape({\r\n pid: yup.string().required(\"Platform ID is required!\"),\r\n title: yup.string().nullable(),\r\n description: yup.string().nullable(),\r\n primary: yup.string().nullable(),\r\n secondary: yup.string().nullable(),\r\n headerColor: yup.string().nullable(),\r\n logo: yup.string().nullable(),\r\n logoDark: yup.string().nullable(),\r\n emailLogo: yup.string().nullable(),\r\n borderRadius: yup.string().nullable(),\r\n danger: yup.string().nullable(),\r\n success: yup.string().nullable(),\r\n warning: yup.string().nullable(),\r\n callToActionColor: yup.string().nullable(),\r\n tertiary: yup.string().nullable(),\r\n gray: yup.string().nullable(),\r\n grayDark: yup.string().nullable(),\r\n boxShadowColor: yup.string().nullable(),\r\n breakpoints: yup.array(yup.string().nullable()),\r\n textDark: yup.string().nullable(),\r\n backgroundColor: yup.string().nullable(),\r\n gridRowBackgroundColor: yup.string().nullable(),\r\n borderColor: yup.string().nullable(),\r\n headerTextColor: yup.string().nullable(),\r\n darkMode: yup.boolean().nullable(),\r\n});\r\n\r\nconst ThemeForm = ({ refetchTheme }) => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n const { id } = useParams();\r\n\r\n const { showSuccessAlert, showFailureAlert } = useContext(AlertContext);\r\n const { pid, refetchPlatform } = useContext(UserContext);\r\n\r\n const platforms = useQuery({\r\n queryID: \"platforms\",\r\n request: getPlatforms,\r\n });\r\n const result = useQuery({\r\n queryID: `theme|${id}`,\r\n request: getTheme,\r\n queryVariables: { id },\r\n forcedFilters: {},\r\n skip: id === \"create\" || platforms?.isLoading || !platforms?.data,\r\n });\r\n\r\n const { data: currentTheme, isLoading, refetchQuery } = result || {};\r\n const { rows: _platforms = [] } = platforms?.data || {};\r\n const platformOptions = useMemo(() => {\r\n return _platforms.map(({ id, name }) => (\r\n \r\n ));\r\n }, [_platforms]);\r\n\r\n const { breakpoints, name: title } = currentTheme || {};\r\n\r\n const initialValues = useMemo(\r\n () => ({\r\n ...(currentTheme || {defaultTheme}),\r\n title,\r\n breakpoints: JSON.parse(\r\n breakpoints || '[\"320px\",\"360px\",\"600px\",\"800px\",\"1000px\",\"1200px\"]'\r\n ),\r\n }),\r\n [currentTheme, breakpoints, title]\r\n );\r\n\r\n const onSubmit = useCallback(\r\n async (_values, { resetForm }) => {\r\n try {\r\n const { breakpoints, title: name, darkMode, ...values } = _values || {};\r\n const breakPointsString = JSON.stringify(breakpoints || []);\r\n\r\n const input = {\r\n ...values,\r\n breakpoints: breakPointsString,\r\n name,\r\n darkMode: darkMode ? \"1\" : \"0\",\r\n };\r\n\r\n if (id === \"create\") {\r\n const result = await r.createTheme({ input });\r\n\r\n navigate(`/Theme/${result?.id}`);\r\n\r\n showSuccessAlert(`Successfully created Theme: ${result.id}`);\r\n return;\r\n } else {\r\n await r.updateTheme({ id, input });\r\n\r\n refetchPlatform();\r\n refetchTheme();\r\n refetchQuery(\"themes\");\r\n resetForm();\r\n showSuccessAlert(`Successfully updated Theme: ${id}`);\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n showFailureAlert(\"Failed\");\r\n }\r\n },\r\n [\r\n id,\r\n refetchQuery,\r\n refetchTheme,\r\n navigate,\r\n showSuccessAlert,\r\n showFailureAlert,\r\n refetchPlatform,\r\n ]\r\n );\r\n\r\n const onDelete = useCallback(() => {\r\n r.deleteTheme({ id: id });\r\n navigate(`/Themes/${pid}`);\r\n }, [id, navigate, pid]);\r\n\r\n const uploadFile = useCallback(\r\n async (file, fieldName) => {\r\n const {\r\n // name,\r\n // size,\r\n // type,\r\n path,\r\n } = file;\r\n await onSubmit(\r\n { [fieldName]: `/uploads/theme/${path}` },\r\n { resetForm: () => {} }\r\n );\r\n },\r\n [onSubmit]\r\n );\r\n\r\n return !currentTheme || isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n {(formProps) => {\r\n const { values, setFieldValue } = formProps;\r\n\r\n return (\r\n <>\r\n navigate(`/Themes/${pid}`)}\r\n title={`${id === \"create\" ? \"Create\" : \"Edit\"} Theme${\r\n title ? ` - ${title}` : \"\"\r\n }`}\r\n />\r\n
\r\n \r\n \r\n \r\n General Settings\r\n\r\n \r\n \r\n {platformOptions}\r\n \r\n\r\n setFieldValue(\"darkMode\", false)}\r\n reverse\r\n color={\r\n values.darkMode ? theme.gray : theme.secondary\r\n }\r\n >\r\n Light Theme\r\n \r\n ),\r\n },\r\n {\r\n value: true,\r\n label: (\r\n setFieldValue(\"darkMode\", true)}\r\n reverse\r\n color={\r\n !values.darkMode\r\n ? theme.gray\r\n : theme.secondary\r\n }\r\n >\r\n Dark Theme\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 Upload Theme Files\r\n \r\n Files uploaded here will be automatically set without\r\n the need to click \"Save\" at the bottom of the form.\r\n \r\n\r\n \r\n \r\n \"logo\"\r\n \r\n uploadFile(file, \"logo\")}\r\n name=\"logo\"\r\n path=\"/api/v1/themeManagement/uploadThemeFiles\"\r\n />\r\n \r\n\r\n \r\n \r\n \"emailLogo\"\r\n \r\n uploadFile(file, \"emailLogo\")}\r\n name=\"emailLogo\"\r\n labelText=\"Email Header Logo\"\r\n path=\"/api/v1/themeManagement/uploadThemeFiles\"\r\n />\r\n \r\n \r\n \r\n \"logoDark\"\r\n \r\n uploadFile(file, \"logoDark\")}\r\n name=\"logoDark\"\r\n labelText=\"Login Page Logo\"\r\n path=\"/api/v1/themeManagement/uploadThemeFiles\"\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n Colors\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 navigate(`/Themes/${currentTheme.pid}`)}\r\n hideDelete={id === \"create\"}\r\n recordAction={id === \"create\" ? \"create\" : \"edit\"}\r\n deleteMessage={`Are you sure you want to delete ${values.name}?`}\r\n />\r\n \r\n \r\n );\r\n }}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ThemeForm;\r\n","import React, {\r\n useContext,\r\n useMemo,\r\n useEffect,\r\n useState,\r\n useCallback,\r\n} from \"react\";\r\nimport { useNavigate, useLocation } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\nimport formatter from \"../../modules/formatter\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport {\r\n getQuotes,\r\n copyQuote,\r\n deleteQuote,\r\n} from \"../../requests/quoteManagementRequests\";\r\nimport Table from \"../UI/Table\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Body, Heading } from \"../UI/Text\";\r\nimport { Flex } from \"reflexbox\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport Button from \"../UI/Button\";\r\nimport Loading from \"../UI/Loading\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport Card from \"../UI/Card\";\r\nimport Modal from \"../UI/Modal\";\r\nimport _ from \"lodash\";\r\n// import { getStatusTypes } from \"../../requests/statusTypesMgmtReqs\";\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n justify-content: center;\r\n align-items: center;\r\n transition: 200ms all ease-out;\r\n`;\r\n\r\nconst OrderStatus = ({ csiStatus: _status, quoteId }) => {\r\n const statusTypes = {\r\n P: \"Planned\",\r\n S: \"Stopped\",\r\n C: \"Complete\",\r\n O: \"Ordered\",\r\n H: \"History\",\r\n }; //W C S O\r\n\r\n let csiStatus = _status;\r\n\r\n const { platform, activeOrderStatus, queries } = useContext(UserContext);\r\n const { csiOrderCompleteString } = platform || {};\r\n\r\n if (activeOrderStatus?.length > 0) {\r\n activeOrderStatus.forEach((status) => {\r\n const { swiftsellQuoteId, csiStatus: csi } = status;\r\n if (swiftsellQuoteId === quoteId) csiStatus = csi;\r\n return queries?.myOrders?.rows?.forEach((row, i) => {\r\n if (row?.id === swiftsellQuoteId)\r\n queries.myorders.rows[i].csiStatus = csi;\r\n });\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n {statusTypes[csiStatus] || csiOrderCompleteString || \"Ordered\"}\r\n \r\n \r\n );\r\n};\r\n\r\nconst OrdersPage = () => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const { activeUser, loggedIn, numOrdersUpdated, pid } =\r\n useContext(UserContext);\r\n const { username, groupId } = activeUser || {};\r\n const { setQuote } = useContext(ConfiguratorContext);\r\n const { pathname = \"/\" } = location || {};\r\n const { 1: path } = pathname.split(\"/\");\r\n\r\n const isMyOrders = useMemo(() => path === \"MyOrders\", [path]);\r\n\r\n const queryID = useMemo(\r\n () => (isMyOrders ? \"myOrders\" : \"allOrders\"),\r\n [isMyOrders]\r\n );\r\n\r\n const myOrdersRes = useQuery({\r\n queryID,\r\n request: getQuotes,\r\n queryVariables: {\r\n username: !isMyOrders ? undefined : groupId ? undefined : username,\r\n type: 2,\r\n groupId: !isMyOrders ? undefined : groupId,\r\n pid,\r\n },\r\n skip: !loggedIn || (isMyOrders && !username) || !pid,\r\n });\r\n\r\n // const { data: stData } = useQuery({\r\n // queryID: \"statusTypes\",\r\n // request: getStatusTypes,\r\n // forcedFilters: {},\r\n // attributes: [\"id\", \"name\"],\r\n // skip: !loggedIn || !isMyOrders || !username,\r\n // });\r\n\r\n // const { rows: statusTypes } = stData || {};\r\n\r\n const { data, isLoading, refetchQuery, setData } = myOrdersRes || {};\r\n const [isCopying, setIsCopying] = useState(false);\r\n const [show, setShow] = useState(false);\r\n const [currentQuote, setCurrentQuote] = useState(false);\r\n\r\n const { showWarningAlert, showSuccessAlert, showFailureAlert } =\r\n useContext(AlertContext);\r\n\r\n useEffect(() => {\r\n if (numOrdersUpdated > 0) refetchQuery(queryID);\r\n }, [numOrdersUpdated, queryID, refetchQuery]);\r\n\r\n const { rows: quotes = [], count: totalCount, isPlane } = data || {};\r\n\r\n const onCopyQuote = useCallback(\r\n async (event, quoteId) => {\r\n event.stopPropagation();\r\n try {\r\n setIsCopying(quoteId);\r\n showWarningAlert(`Copying Order #${quoteId} to a new Quote...`);\r\n\r\n const newQuote = await copyQuote({ id: quoteId });\r\n\r\n refetchQuery(queryID);\r\n\r\n setIsCopying(false);\r\n showSuccessAlert(\r\n `New Quote #${newQuote.id} copied from Order #${quoteId}.`\r\n );\r\n navigate(`/Quote/${newQuote?.id}`);\r\n } catch (error) {\r\n console.error(error);\r\n showFailureAlert(`${error}`);\r\n }\r\n },\r\n [\r\n navigate,\r\n queryID,\r\n refetchQuery,\r\n showFailureAlert,\r\n showSuccessAlert,\r\n showWarningAlert,\r\n ]\r\n );\r\n\r\n // const onSecondaryClick = useCallback(async (e, quoteId) => {\r\n // e.stopPropagation();\r\n // setShow(true);\r\n // setCurrentQuote(quoteId);\r\n // }, []);\r\n\r\n const onDealerPricingClick = useCallback(() => {\r\n setCurrentQuote(null);\r\n navigate(`/DealerQuote/${currentQuote}`);\r\n }, [currentQuote, navigate]);\r\n\r\n const subtitle = useMemo(() => {\r\n let _subtitle = isMyOrders\r\n ? \"Here you can view all of your previously placed orders.\"\r\n : \"Here you can view previously placed orders for all of your registered users and administrators.\";\r\n _subtitle +=\r\n \" No need to refresh this page, any updates to the order status will be updated automatically.\";\r\n return _subtitle;\r\n }, [isMyOrders]);\r\n\r\n const onDelete = useCallback(\r\n async (e, id) => {\r\n e.stopPropagation();\r\n const newQuotes = [...quotes];\r\n _.remove(newQuotes, ({ id: QuoteID }) => QuoteID === id);\r\n const newCount = totalCount - 1;\r\n setData({ rows: newQuotes, count: newCount });\r\n\r\n await deleteQuote({ id });\r\n },\r\n [quotes, totalCount, setData]\r\n );\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n id: \"erpOrderNo\",\r\n data: (row) => {row?.erpOrderNo},\r\n header: \"Order #\",\r\n size: { md: 2, sm: 2, xs: 2 },\r\n },\r\n\r\n {\r\n id: \"companyName\",\r\n data: (row) => {\r\n const { lastName, firstName, companyName } = row;\r\n\r\n return (\r\n \r\n {companyName\r\n ? companyName\r\n : `${firstName || \"\"}${lastName && firstName ? \" \" : \"\"}${\r\n lastName || \" \"\r\n }`}\r\n \r\n );\r\n },\r\n header: \"Customer\",\r\n size: { md: 3, sm: 3, xs: -1 },\r\n },\r\n\r\n {\r\n id: \"createdByFirstName\",\r\n data: (row) => (\r\n \r\n {row?.createdByFirstName} {row?.createdByLastName}\r\n \r\n ),\r\n header: \"Created By\",\r\n size: { md: 3, sm: 3, xs: -1 },\r\n },\r\n {\r\n id: \"dateOrderPlaced\",\r\n data: (row) => (\r\n {`${moment(row.dateOrderPlaced).format(\r\n \"MM/DD/YYYY\"\r\n )}`}\r\n ),\r\n header: \"Ordered On\",\r\n size: { md: 2, sm: 2, xs: 4 },\r\n },\r\n {\r\n id: \"csiStatus\",\r\n data: ({ csiStatus, id }) => (\r\n \r\n ),\r\n header: \"Status\",\r\n sort: false,\r\n size: { md: 2, sm: 0, xs: 0 },\r\n },\r\n {\r\n id: !isPlane ? \"discountTotal\" : \"totalCost\",\r\n data: (row) => {\r\n console.log(row);\r\n return (\r\n {`$${formatter.currency(\r\n !isPlane ? row.discountTotal : row.totalCost\r\n )}`}\r\n );\r\n },\r\n header: \"Price\",\r\n size: { md: 2, sm: 0, xs: 0 },\r\n },\r\n {\r\n display: (props) => {\r\n let quote = props.cell.row.original;\r\n\r\n return (\r\n \r\n {isCopying === props.cell.row.original.id ? (\r\n \r\n ) : (\r\n <>\r\n {/* {isPlane && (\r\n onSecondaryClick(e, quote.id)}\r\n />\r\n )} */}\r\n onCopyQuote(e, quote.id)}\r\n />\r\n {activeUser?.roleLevel === 9 && (\r\n onDelete(e, quote.id)}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n );\r\n },\r\n header: \"\",\r\n sort: false,\r\n size: { md: 3, sm: 1, xs: 1 },\r\n },\r\n ],\r\n [\r\n activeUser,\r\n isCopying,\r\n isPlane,\r\n onCopyQuote,\r\n onDelete,\r\n\r\n theme.danger,\r\n theme.success,\r\n ]\r\n );\r\n\r\n const onRowClick = (row) => {\r\n const { original: quote } = row || {};\r\n setQuote({ ...quote });\r\n\r\n navigate(`/Quote/${quote?.id}`);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n INTERNAL DOCUMENTS\r\n \r\n \r\n Are you sure you want to view this page?\r\n \r\n \r\n This page contains sensitive internal documents, are you sure you\r\n wish to proceed?\r\n \r\n \r\n setShow(false)}\r\n >\r\n Go Back\r\n \r\n \r\n Continue\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 OrdersPage;\r\n","import React, { useContext, useCallback, useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { createQuote } from \"../../requests/quoteManagementRequests\";\r\nimport { useTheme } from \"styled-components\";\r\nimport QuoteTable from \"../Quote/QuoteDashboard/QuoteTable\";\r\nimport guid from \"../../modules/guid\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport Loading from \"../UI/Loading\";\r\nimport ConfiguratorContext from \"../../context/configurator/ConfiguratorContext\";\r\n\r\nconst AllQuotes = () => {\r\n const theme = useTheme();\r\n const navigate = useNavigate();\r\n const { setQuote } = useContext(ConfiguratorContext);\r\n const { activeUser, queries, setQueries, pid } = useContext(UserContext);\r\n const { groupId } = activeUser || {};\r\n const [isCreating, setIsCreating] = useState(false);\r\n\r\n const onRowClick = (row, e) => {\r\n e.stopPropagation();\r\n setQuote({ ...row?.original });\r\n navigate(`/Quote/${row.original.id}`);\r\n };\r\n\r\n const onCreateClick = useCallback(async () => {\r\n setIsCreating(true);\r\n const newId = guid.GenerateGUID();\r\n const { id: newQuoteId } = await createQuote({\r\n input: {\r\n username: activeUser?.username,\r\n createdByFirstName: activeUser?.firstName,\r\n createdByLastName: activeUser?.lastName,\r\n _id: newId,\r\n pid,\r\n createdByUserId: activeUser?.id,\r\n groupId,\r\n },\r\n });\r\n setIsCreating(false);\r\n\r\n const _queries = { ...queries };\r\n delete _queries?.quotes;\r\n setQueries(_queries);\r\n\r\n navigate(`/Quote/${newQuoteId}`);\r\n }, [activeUser, navigate, queries, setQueries, pid, groupId]);\r\n\r\n return (\r\n \r\n \r\n ) : (\r\n \"New Quote\"\r\n )\r\n }\r\n allQuotes\r\n onRowClick={onRowClick}\r\n createLink={onCreateClick}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default AllQuotes;\r\n","import React from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Body, Heading } from \"../UI/Text\";\r\nimport styled from \"styled-components\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport * as fa from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Flex } from \"reflexbox\";\r\nimport Card from \"../UI/Card\";\r\nimport Button from \"../UI/Button\";\r\n\r\nconst Wrapper = styled(Flex)`\r\n margin: 0 auto !important;\r\n svg {\r\n width: 50px;\r\n height: 50px;\r\n }\r\n`;\r\n\r\nconst ThankYouPage = () => {\r\n const navigate = useNavigate();\r\n return (\r\n \r\n \r\n Thank you!\r\n \r\n \r\n Your order was completed successfully.\r\n \r\n {/* \r\n \r\n \r\n \r\n An email confirmation including the details of your order has been\r\n sent to the email address provided.\r\n \r\n \r\n */}\r\n \r\n navigate(\"/QuoteDashboard\")}\r\n iconPosition=\"left\"\r\n iconName=\"faArrowLeft\"\r\n >\r\n Back to Quotes\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ThankYouPage;\r\n","import React, { useState } from \"react\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { Flex, Box } from \"reflexbox\";\r\nimport { Helper } from \"../UI/Text\";\r\nimport Link from \"../UI/Link\";\r\nimport Button from \"../UI/Button\";\r\nimport IssueReportForm from \"../Administration/IssueReportForm\";\r\nimport Modal from \"../UI/Modal\";\r\nimport Card from \"../UI/Card\";\r\n\r\nconst StyledFooterLogo = styled(Box)`\r\n width: 160px;\r\n svg {\r\n width: 100%;\r\n path {\r\n fill: ${({ theme }) => theme.gray};\r\n }\r\n }\r\n`;\r\n\r\nconst Footer = () => {\r\n const theme = useTheme();\r\n const [show, setShow] = useState(false);\r\n\r\n return (\r\n <>\r\n \r\n \r\n {}}\r\n currentIssueReport={{}}\r\n setShow={setShow}\r\n hasForm\r\n setData={() => {}}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Powered By\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\n \r\n \r\n \r\n setShow(true)}\r\n size=\"small\"\r\n color={theme.gray}\r\n >\r\n Notice a Bug?\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import React, { useMemo } from \"react\";\r\nimport { useParams, useNavigate } from \"react-router-dom\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { getGroups } from \"../../requests/groupManagementRequests\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport Table from \"../UI/Table\";\r\n\r\nconst GroupsPage = () => {\r\n\tconst navigate = useNavigate();\r\n\tconst { pid } = useParams();\r\n\r\n\tconst result = useQuery({\r\n\t\tqueryID: \"groups\",\r\n\t\trequest: getGroups,\r\n\t\tqueryVariables: { pid, adminPage: true },\r\n\t\tforcedFilters: {},\r\n\t\tskip: !pid,\r\n\t});\r\n\r\n\tconst onCardClick = (id) => {\r\n\t\tnavigate(`/Group/${id}`);\r\n\t};\r\n\r\n\tconst getIcon = (pid) => {\r\n\t\tswitch (pid) {\r\n\t\t\tcase 9:\r\n\t\t\t\treturn \"faUserAstronaut\";\r\n\t\t\tcase 5:\r\n\t\t\t\treturn \"faUserTie\";\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"faUserCheck\";\r\n\t\t\tdefault:\r\n\t\t\t\treturn \"faPeopleGroup\";\r\n\t\t}\r\n\t};\r\n\r\n\tconst gridData = useMemo(() => {\r\n\t\tif (!result.data?.rows) return null;\r\n\t\treturn result.data?.rows.map(({ id, name, description, pid }) => ({\r\n\t\t\tkey: id,\r\n\t\t\tid,\r\n\t\t\ttitle: name,\r\n\t\t\tsubtitle: description,\r\n\t\t\ticonName: getIcon(pid),\r\n\t\t}));\r\n\t}, [result]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t navigate(\"/Group/create\")}\r\n\t\t\t\t\tcreateButtonText=\"Create Group\"\r\n\t\t\t\t\tcreateButtonIcon=\"faUserGroup\"\r\n\t\t\t\t\ttitle=\"Group Management\"\r\n\t\t\t\t\tbackButtonLink=\"/Administration\"\r\n\t\t\t\t\tgridData={gridData}\r\n\t\t\t\t\thideProperties\r\n\t\t\t\t\thidePager\r\n\t\t\t\t\thideSearch\r\n\t\t\t\t\tisLoading={result.isLoading}\r\n\t\t\t\t\thideToggle\r\n\t\t\t\t\tforceGrid\r\n\t\t\t\t\tonCardClick={(group) => onCardClick(group.id)}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupsPage;\r\n","import axios from \"axios\";\r\n\r\nexport const getProductLists = async (values) => {\r\n try {\r\n const { status, data } = await axios.post(\r\n \"/api/v1/productListManagement/getProductLists\",\r\n {\r\n ...values\r\n }\r\n );\r\n\r\n if (status === 200 && data.success === true) return data.result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n return null;\r\n};\r\n","import React, { useCallback, useContext, useMemo } from \"react\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport * as yup from \"yup\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport { Form, Formik } from \"formik\";\r\nimport { Field, FormButtonCluster } from \"../UI/forms\";\r\nimport * as r from \"../../requests/groupManagementRequests\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport Button from \"../UI/Button\";\r\nimport { Body } from \"../UI/Text\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { getUsers, updateUser } from \"../../requests/userManagementRequests\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { getGroup } from \"../../requests/groupManagementRequests\";\r\nimport { getPlatforms } from \"../../requests/platformManagementRequests\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { getCustomers } from \"../../requests/customerManagementRequests\";\r\nimport Table from \"../UI/Table\";\r\nimport Indicator from \"../UI/Indicator\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport { getProductLists } from \"../../requests/productListManagementRequests\";\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n justify-content: center;\r\n align-items: center;\r\n transition: 200ms all ease-out;\r\n`;\r\n\r\nconst validationSchema = yup.object().shape({\r\n pid: yup\r\n .string(\"Please select a platform to assign this group to.\")\r\n .required(\"Platform is required!\"),\r\n name: yup.string().nullable(),\r\n description: yup.string().nullable(),\r\n defaultCustomer: yup.string().nullable(),\r\n productList: yup.number().nullable(),\r\n});\r\n\r\nconst GroupForm = () => {\r\n const navigate = useNavigate();\r\n const { id: groupId } = useParams();\r\n const theme = useTheme();\r\n const { showSuccessAlert, showFailureAlert } = useContext(AlertContext);\r\n const { pid: _pid, setRefetchHeader } = useContext(UserContext);\r\n\r\n const result = useQuery({\r\n queryID: `group|${groupId}`,\r\n request: getGroup,\r\n queryVariables: { id: groupId },\r\n forcedFilters: {},\r\n skip: !groupId,\r\n });\r\n\r\n const { data: currentGroup, isLoading, refetchQuery } = result || {};\r\n const {\r\n pid,\r\n name,\r\n description,\r\n userIds: _userIds = \"\",\r\n defaultCustomer,\r\n productList,\r\n } = currentGroup || {};\r\n\r\n const {\r\n data: _users,\r\n isLoading: usersLoading,\r\n refetchQuery: refetchUserQuery,\r\n setData: setUserData,\r\n } = useQuery({\r\n queryID: \"users\",\r\n request: getUsers,\r\n queryVariables: { pid },\r\n attributes: [\"firstName\", \"id\", \"lastName\", \"pid\", \"username\", \"groupIds\"],\r\n });\r\n\r\n const { rows: users = [], count } = _users || {};\r\n\r\n const platforms = useQuery({\r\n queryID: \"platforms\",\r\n request: getPlatforms,\r\n forcedFilters: {},\r\n skip: isLoading || usersLoading,\r\n });\r\n\r\n const platformOptions = useMemo(() => {\r\n const { rows: _platforms = [] } = platforms?.data || {};\r\n return _platforms.map(({ id, name }) => ({ value: id, label: name }));\r\n }, [platforms]);\r\n\r\n const productLists = useQuery({\r\n queryID: \"productLists\",\r\n request: getProductLists,\r\n queryVariables: { pid: pid || _pid },\r\n forcedFilters: {},\r\n skip: isLoading || usersLoading,\r\n });\r\n\r\n const prodListOptions = useMemo(() => {\r\n const { rows: _productLists = [] } = productLists?.data || {};\r\n return _productLists.map(({ id, name }) => ({ value: id, label: name }));\r\n }, [productLists]);\r\n\r\n const userIds = useMemo(\r\n () => (_userIds ? JSON.parse(_userIds) : []),\r\n [_userIds]\r\n );\r\n\r\n const { data, isLoading: customersLoading } = useQuery({\r\n request: getCustomers,\r\n skip: !pid,\r\n queryVariables: { pid, hasERP: true },\r\n forcedFilters: {},\r\n });\r\n\r\n const { rows: customers = [] } = data || {};\r\n\r\n const customerOptions = useMemo(() => {\r\n return !customers\r\n ? []\r\n : [\r\n { label: \"None\", value: null },\r\n ...customers.map((row) => {\r\n const { billingAddress, customer } = row || {};\r\n const { id, erpId, companyName } = customer || {};\r\n\r\n const { Address, Address2, City, State, Zip } =\r\n billingAddress || {};\r\n\r\n let label = `${companyName || erpId || \"—\"}`;\r\n if (Address || Address2) {\r\n if (Address) label += `, ${Address}`;\r\n if (Address2) {\r\n label += ` ${Address2}`;\r\n }\r\n if (City) {\r\n label += `, ${City}`;\r\n if (State) {\r\n label += ` ${State}`;\r\n if (Zip) {\r\n label += `, ${Zip}`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return { label, value: id };\r\n }),\r\n ];\r\n }, [customers]);\r\n\r\n const assignUser = useCallback(\r\n async ({ id, setTo }) => {\r\n const selectedUser = _.find(users, ({ id: uid }) => uid === id);\r\n const {\r\n groupIds: gids,\r\n firstName,\r\n lastName,\r\n username,\r\n } = selectedUser || {};\r\n const _name =\r\n firstName && lastName ? `${firstName} ${lastName}` : username;\r\n const groupIds = gids ? JSON.parse(gids) : [];\r\n try {\r\n if (setTo === false) {\r\n _.remove(userIds, (uid) => uid === id);\r\n _.remove(groupIds, (gid) => gid === groupId);\r\n\r\n await updateUser({\r\n id,\r\n input: { groupIds: JSON.stringify(groupIds), setTo },\r\n });\r\n await r.updateGroup({\r\n id: groupId,\r\n input: { userIds: JSON.stringify(userIds) },\r\n });\r\n showSuccessAlert(\r\n `Successfully removed ${_name} from the group [${name}].`\r\n );\r\n setRefetchHeader(true);\r\n return;\r\n } else {\r\n await updateUser({\r\n id,\r\n input: { groupIds: JSON.stringify([...groupIds, groupId]), setTo },\r\n });\r\n await r.updateGroup({ id: groupId, input: { userId: id, setTo } });\r\n showSuccessAlert(\r\n `Successfully added ${_name} to the group [${name}].`\r\n );\r\n setRefetchHeader(true);\r\n return;\r\n }\r\n } catch (error) {\r\n showFailureAlert(`Failed to add ${_name} to the group [${name}].`);\r\n }\r\n },\r\n [\r\n users,\r\n setRefetchHeader,\r\n userIds,\r\n groupId,\r\n showSuccessAlert,\r\n name,\r\n showFailureAlert,\r\n ]\r\n );\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n id: \"id\",\r\n data: \"id\",\r\n header: \"User ID\",\r\n size: { md: 2, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"username\",\r\n data: ({ username }) => {username || \"—\"},\r\n header: \"Email\",\r\n size: { md: 3, sm: 3, xs: 5 },\r\n },\r\n {\r\n id: \"firstName\",\r\n data: ({ firstName }) => (\r\n \r\n {firstName || \"—\"}\r\n \r\n ),\r\n header: \"First Name\",\r\n size: { md: 2, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"lastName\",\r\n data: ({ lastName }) => (\r\n \r\n {lastName || \"—\"}\r\n \r\n ),\r\n header: \"Last Name\",\r\n size: { md: 2, sm: -1, xs: -1 },\r\n },\r\n {\r\n id: \"groupIds\",\r\n display: (props) => {\r\n const active = !!_.find(\r\n userIds,\r\n (userId) => userId === props.cell.row.original.id\r\n );\r\n return ;\r\n },\r\n header: \"Assigned\",\r\n sort: false,\r\n size: { lg: 1, md: 2, sm: 2, xs: 3 },\r\n },\r\n\r\n {\r\n display: (props) => {\r\n const active = !!_.find(\r\n userIds,\r\n (userId) => userId === props.cell.row.original.id\r\n );\r\n const uid = props.cell.row.original.id;\r\n return (\r\n \r\n assignUser({ id: uid, setTo: true })}\r\n />\r\n assignUser({ id: uid, setTo: false })}\r\n />\r\n \r\n );\r\n },\r\n header: \"Actions\",\r\n sort: false,\r\n size: { lg: 2, md: 2, sm: 2, xs: 2 },\r\n },\r\n ],\r\n [userIds, theme.success, theme.danger, assignUser]\r\n );\r\n\r\n const initialValues = useMemo(\r\n () => ({\r\n pid: pid || _pid,\r\n name,\r\n description,\r\n defaultCustomer,\r\n productList,\r\n }),\r\n [pid, _pid, name, description, defaultCustomer, productList]\r\n );\r\n\r\n const onSubmit = useCallback(\r\n async (values) => {\r\n try {\r\n if (groupId === \"create\") {\r\n const result = await r.createGroup({ input: values });\r\n navigate(`/Group/${result?.id}`);\r\n\r\n showSuccessAlert(`Successfully created Group: ${result?.id}`);\r\n } else {\r\n await r.updateGroup({\r\n id: groupId,\r\n input: values,\r\n });\r\n\r\n showSuccessAlert(`Successfully updated Group: ${groupId}`);\r\n }\r\n refetchQuery(\"groups\");\r\n } catch (error) {\r\n console.error(error);\r\n showFailureAlert(\"Failed to create group.\");\r\n }\r\n },\r\n [groupId, refetchQuery, navigate, showSuccessAlert, showFailureAlert]\r\n );\r\n\r\n const onDelete = useCallback(async () => {\r\n await r.deleteGroup({ id: groupId });\r\n showSuccessAlert(`Succesfully Deleted Group: ${name || groupId}`);\r\n await refetchQuery(\"groups\");\r\n navigate(`/Groups/${pid}`);\r\n }, [groupId, showSuccessAlert, name, refetchQuery, navigate, pid]);\r\n\r\n return (\r\n \r\n \r\n {(formProps) => {\r\n const { values } = formProps;\r\n return (\r\n <>\r\n navigate(`/Groups/${pid || _pid}`)}\r\n title={`${groupId === \"create\" ? \"Create\" : \"Edit\"} Group`}\r\n />\r\n
\r\n \r\n \r\n {platformOptions.map(({ label, value }) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n {customerOptions.map(({ label, value }) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n\r\n \r\n \r\n {prodListOptions.map(({ label, value }) => (\r\n \r\n ))}\r\n \r\n\r\n navigate(`/Groups/${pid}`)}\r\n hideDelete={groupId === \"create\"}\r\n recordAction={groupId === \"create\" ? \"create\" : \"edit\"}\r\n deleteMessage={`Are you sure you want to delete ${values.name}?`}\r\n />\r\n\r\n {groupId !== \"create\" && (\r\n {\r\n setUserData({ data: [] });\r\n refetchUserQuery(`group|${groupId}`);\r\n }}\r\n subtitle=\"Use this table control to assign or unassign users from this group. Assigned Users will be able to select this group from the Groups dropdown.\"\r\n data={users}\r\n hideToggle\r\n columns={columns}\r\n hideBack\r\n hideCreate\r\n // onRowClick={onRowClick}\r\n backButtonLink=\"/Administration\"\r\n // selections={selections}\r\n isLoading={usersLoading || users.length < 1}\r\n totalCount={count}\r\n />\r\n )}\r\n\r\n {/* Assigned Users\r\n \r\n {userOptions}\r\n */}\r\n \r\n \r\n );\r\n }}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default GroupForm;\r\n","import axios from \"axios\";\r\n\r\nexport const getRMADetails = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/RMADetailManagement/getRMADetails\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const getRMADetail = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/RMADetailManagement/getRMADetail\",\r\n body\r\n );\r\n\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n\r\nexport const createRMADetail = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/RMADetailManagement/createRMADetail\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const updateRMADetail = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/RMADetailManagement/updateRMADetail\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\nexport const deleteRMADetail = async (body) => {\r\n try {\r\n const res = await axios.post(\r\n \"/api/v1/RMADetailManagement/deleteRMADetail\",\r\n body\r\n );\r\n if (res?.status === 200) return res.data.result;\r\n throw new Error(res);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n};\r\n","import React, { useCallback, useMemo, useContext, useEffect } from \"react\";\r\nimport { useParams, useNavigate } from \"react-router-dom\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport * as rmaRequests from \"../../requests/RMAManagementRequests\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport Table from \"../UI/Table\";\r\nimport _ from \"lodash\";\r\nimport { Body } from \"../UI/Text\";\r\nimport Button from \"../UI/Button\";\r\nimport { Flex } from \"reflexbox\";\r\nimport moment from \"moment\";\r\nimport { createRMADetail } from \"../../requests/rmaDetailManagementReqs\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport {\r\n\tcreateRMAFromQuote,\r\n\tcreateRMAForAircraftParts,\r\n} from \"../../requests/RMAManagementRequests\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nconst { getRMAs, deleteRMA, createRMA } = rmaRequests;\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\ttransition: 200ms all ease-out;\r\n`;\r\n\r\nconst RMAsPage = () => {\r\n\tconst navigate = useNavigate();\r\n\tconst { pid } = useParams();\r\n\tconst theme = useTheme();\r\n\tconst { activeUser } = useContext(UserContext);\r\n\tconst { roleLevel = 0, groupId = undefined } = activeUser || {};\r\n\tconst { showFailureAlert } = useContext(AlertContext);\r\n\r\n\tconst result = useQuery({\r\n\t\tqueryID: \"RMAs\",\r\n\t\trequest: getRMAs,\r\n\t\tqueryVariables: { pid, groupId },\r\n\t\tskip: !pid,\r\n\t});\r\n\r\n\tconst { data, isLoading, refetchQuery, setData } = result || {};\r\n\r\n\tconst { rows: RMAs = [], count, isPlane } = data || {};\r\n\r\n\tconst onCardClick = useCallback(\r\n\t\tasync (id) => {\r\n\t\t\tif (id === \"create\") {\r\n\t\t\t\tconst result = await createRMA({\r\n\t\t\t\t\tinput: { pid, rmaCreated: \"0\", groupId },\r\n\t\t\t\t});\r\n\t\t\t\tif (result?.id) {\r\n\t\t\t\t\tawait createRMADetail({\r\n\t\t\t\t\t\tinput: {\r\n\t\t\t\t\t\t\tRMAId: result.id,\r\n\t\t\t\t\t\t\tpid,\r\n\t\t\t\t\t\t\tproductNumber: \"\",\r\n\t\t\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\t\t\torderedQuantity: 0,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\treturn navigate(`/RMA/${result.id}`);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnavigate(`/RMA/${id}`);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[navigate, pid, groupId]\r\n\t);\r\n\r\n\tconst onDelete = useCallback(\r\n\t\tasync (id) => {\r\n\t\t\tconst newRMAs = [...RMAs];\r\n\t\t\t_.remove(newRMAs, ({ id: rmaID }) => rmaID === id);\r\n\t\t\tconst newCount = count - 1;\r\n\t\t\tsetData({ rows: newRMAs, count: newCount });\r\n\r\n\t\t\tawait deleteRMA({ id });\r\n\t\t},\r\n\t\t[RMAs, count, setData]\r\n\t);\r\n\r\n\tconst onCreateRMA = useCallback(async () => {\r\n\t\tconst { id: rmaId } = await createRMAForAircraftParts(pid, groupId);\r\n\t\tif (rmaId) {\r\n\t\t\tawait createRMADetail({\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tRMAId: rmaId,\r\n\t\t\t\t\tpid,\r\n\t\t\t\t\tproductNumber: \"\",\r\n\t\t\t\t\tquantity: 1,\r\n\t\t\t\t\torderedQuantity: 0,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (rmaId) return navigate(`/RMA/${rmaId}`);\r\n\t\treturn showFailureAlert(\"Error creating RMA from Order.\");\r\n\t}, [groupId, navigate, pid, showFailureAlert]);\r\n\r\n\tconst CreateRMAButton = useMemo(() => {\r\n\t\tconst label = \"Create RMA for Aircraft Parts\";\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t onCreateRMA()}\r\n\t\t\t\t>\r\n\t\t\t\t\t{label}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}, [onCreateRMA]);\r\n\r\n\tconst columns = useMemo(\r\n\t\t() => [\r\n\t\t\t{\r\n\t\t\t\tid: \"createdAt\",\r\n\t\t\t\tdata: ({ createdAt }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{createdAt ? moment(createdAt).format(\"MM/DD/YYYY\") : \"—\"}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Created\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 4 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"erpOrderNum\",\r\n\t\t\t\tdata: ({ erpOrderNum }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{erpOrderNum || \"—\"}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Order #\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 4 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"rmaNumber\",\r\n\t\t\t\tdata: ({ rmaNumber }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{rmaNumber || \"—\"}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"RMA #\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 4 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"status\",\r\n\t\t\t\tdata: ({ status, rmaCreated }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{!status && !rmaCreated\r\n\t\t\t\t\t\t\t? \"Not Submitted\"\r\n\t\t\t\t\t\t\t: !status\r\n\t\t\t\t\t\t\t? \"Submitted\"\r\n\t\t\t\t\t\t\t: status}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Status\",\r\n\t\t\t\tsize: { md: 3, sm: 3, xs: 4 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"rmaCreated\",\r\n\t\t\t\tdata: \"rmaCreated\",\r\n\t\t\t\theader: \"Created\",\r\n\t\t\t\tsize: { md: -1, sm: -1, xs: -1 },\r\n\t\t\t},\r\n\r\n\t\t\t{\r\n\t\t\t\tid: \"modelNo\",\r\n\t\t\t\tdata: ({ modelNo }) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{modelNo || \"—\"}\r\n\t\t\t\t\t\r\n\t\t\t\t),\r\n\t\t\t\theader: \"Serial #\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 4 },\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"actions\",\r\n\t\t\t\tdisplay: (props) => {\r\n\t\t\t\t\tlet RMA = props.cell.row.original;\r\n\r\n\t\t\t\t\tconst { id, rmaCreated } = RMA || {};\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\tonCardClick(id);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t{roleLevel === 9 && (\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t\t\t\tonDelete(id);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\theader: \"Actions\",\r\n\t\t\t\tsort: false,\r\n\t\t\t\tsize: { lg: 3, md: 4, sm: 0, xs: 0 },\r\n\t\t\t},\r\n\t\t],\r\n\t\t[theme.secondary, theme.danger, roleLevel, onCardClick, onDelete]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t onCardClick(\"create\")}\r\n\t\t\t\t\tcreateButtonText=\"Create RMA\"\r\n\t\t\t\t\thideCreate\r\n\t\t\t\t\tcreateButtonIcon=\"faPersonWalkingArrowLoopLeft\"\r\n\t\t\t\t\thideToggle\r\n\t\t\t\t\ttitle=\"RMA Requests\"\r\n\t\t\t\t\tsubtitle=\"Listed here are Return Merchandise Authorization (RMA) requests that have been submitted by users of your current group.\"\r\n\t\t\t\t\thideRefetch={false}\r\n\t\t\t\t\trefetchData={refetchQuery}\r\n\t\t\t\t\tcolumns={columns}\r\n\t\t\t\t\tbackButtonLink=\"/Administration\"\r\n\t\t\t\t\tdata={RMAs}\r\n\t\t\t\t\ttotalCount={count}\r\n\t\t\t\t\tisLoading={isLoading}\r\n\t\t\t\t\tonRowClick={(row) => onCardClick(row?.original?.id)}\r\n\t\t\t\t\tinlineAdditionalElements\r\n\t\t\t\t\tadditionalElements={[CreateRMAButton]}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default RMAsPage;\r\n","import React, { useMemo, useCallback, useContext } from \"react\";\r\nimport _ from \"lodash\";\r\nimport * as yup from \"yup\";\r\nimport Card from \"../UI/Card\";\r\nimport { Field } from \"../UI/forms\";\r\nimport { Flex } from \"reflexbox\";\r\nimport { Form, Formik } from \"formik\";\r\nimport ButtonCluster from \"../UI/forms/ButtonCluster\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport {\r\n\tdeleteRMADetail,\r\n\tupdateRMADetail,\r\n} from \"../../requests/rmaDetailManagementReqs\";\r\n\r\nconst RMADetailForm = ({\r\n\tproductOptions,\r\n\trefetchDetails,\r\n\trmaId,\r\n\tsetRmaId,\r\n\tsetShow,\r\n\tdisabled,\r\n\tsetDetailData,\r\n\tcount,\r\n\trows,\r\n\tisQuote,\r\n\tisPlane,\r\n}) => {\r\n\tconst currentDetail = useMemo(() => {\r\n\t\treturn rmaId === \"create\" ? null : _.find(rows, ({ id }) => id === rmaId);\r\n\t}, [rows, rmaId]);\r\n\r\n\tconst initialValues = useMemo(() => {\r\n\t\tconst {\r\n\t\t\ttimeInService,\r\n\t\t\treason,\r\n\t\t\tmodelNo,\r\n\t\t\tinvoiceNo,\r\n\t\t\tquantity,\r\n\t\t\torderedQuantity,\r\n\t\t\tproductNumber,\r\n\t\t\tshippedQty,\r\n\t\t} = currentDetail || {};\r\n\t\treturn {\r\n\t\t\ttimeInService,\r\n\t\t\treason: reason || \"\",\r\n\t\t\tmodelNo,\r\n\t\t\tinvoiceNo,\r\n\t\t\tquantity,\r\n\t\t\torderedQuantity,\r\n\t\t\tproductNumber,\r\n\t\t\tshippedQty,\r\n\t\t};\r\n\t}, [currentDetail]);\r\n\r\n\tconst detailValidation = useMemo(() => {\r\n\t\tconst quantity =\r\n\t\t\tisQuote && !isPlane\r\n\t\t\t\t? yup\r\n\t\t\t\t\t\t.number(\"Quantity must be a number.\")\r\n\t\t\t\t\t\t.required(\"Quantity is required.\")\r\n\t\t\t\t\t\t.min(0, \"The minimum quantity to return is 0.\")\r\n\t\t\t\t\t\t.max(\r\n\t\t\t\t\t\t\tcurrentDetail?.shippedQty > 1\r\n\t\t\t\t\t\t\t\t? currentDetail?.orderedQuantity\r\n\t\t\t\t\t\t\t\t: 1,\r\n\t\t\t\t\t\t\t\"You cannot return more items than were ordered.\"\r\n\t\t\t\t\t\t)\r\n\t\t\t\t: yup\r\n\t\t\t\t\t\t.number(\"Quantity must be a number.\")\r\n\t\t\t\t\t\t.required(\"Quantity is required.\")\r\n\t\t\t\t\t\t.min(1, \"The minimum quantity to return is 0.\");\r\n\r\n\t\treturn yup.object().shape({\r\n\t\t\tproductNumber: yup\r\n\t\t\t\t.string(\"You must select a product to return.\")\r\n\t\t\t\t.required(\"You must select a product to return.\"),\r\n\t\t\tshippedQty: yup.number().nullable(),\r\n\t\t\tquantity,\r\n\t\t\ttimeInService: yup.string().nullable(),\r\n\t\t\treason: yup\r\n\t\t\t\t.string(\"You must provide a reason for the return.\")\r\n\t\t\t\t.required(\"You must provide a reason for the return.\"),\r\n\t\t\tmodelNo: yup\r\n\t\t\t\t.string()\r\n\t\t\t\t.required(\r\n\t\t\t\t\t\"Please enter a serial number, or NA if there is no Serial Number\"\r\n\t\t\t\t),\r\n\t\t\tinvoiceNo: yup.string().nullable(),\r\n\t\t});\r\n\t}, [currentDetail, isPlane, isQuote]);\r\n\r\n\tconst { showFailureAlert, showSuccessAlert } = useContext(AlertContext);\r\n\r\n\tconst onSubmit = useCallback(\r\n\t\tasync (values, { resetForm }) => {\r\n\t\t\tresetForm({ values });\r\n\t\t\ttry {\r\n\t\t\t\tconst newRows = [...rows];\r\n\t\t\t\tconst index = _.findIndex(rows, ({ id }) => id === rmaId);\r\n\t\t\t\tnewRows.splice(index, 1, { ...currentDetail, ...values });\r\n\r\n\t\t\t\tsetDetailData({ rows: newRows, count });\r\n\t\t\t\tsetShow(false);\r\n\r\n\t\t\t\tawait updateRMADetail({ id: rmaId, input: { ...values } });\r\n\t\t\t\tsetRmaId(null);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tshowFailureAlert(\"Failed to update RMA Detail.\");\r\n\t\t\t\tsetRmaId(null);\r\n\t\t\t\tsetShow(false);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[\r\n\t\t\tcount,\r\n\t\t\tcurrentDetail,\r\n\t\t\trmaId,\r\n\t\t\trows,\r\n\t\t\tsetDetailData,\r\n\t\t\tsetRmaId,\r\n\t\t\tsetShow,\r\n\t\t\tshowFailureAlert,\r\n\t\t]\r\n\t);\r\n\r\n\tconst onDetailDelete = useCallback(async () => {\r\n\t\tsetShow(false);\r\n\t\tsetRmaId(null);\r\n\t\tif (disabled) {\r\n\t\t\tshowFailureAlert(\r\n\t\t\t\t\"Cannot delete RMA Detail, RMA has already been submitted.\"\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst newRows = [...rows];\r\n\t\t\t_.remove(newRows, (row) => row.id === rmaId);\r\n\t\t\tsetDetailData({ rows: newRows, count: count - 1 });\r\n\t\t\tawait deleteRMADetail({ id: rmaId });\r\n\t\t\tshowSuccessAlert(`Successfully deleted RMA Detail: ${rmaId}`);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t\tshowFailureAlert(\"Failed to delete RMA Detail.\");\r\n\t\t}\r\n\t}, [\r\n\t\tdisabled,\r\n\t\tshowFailureAlert,\r\n\t\trows,\r\n\t\tsetDetailData,\r\n\t\tcount,\r\n\t\trmaId,\r\n\t\tshowSuccessAlert,\r\n\t\tsetShow,\r\n\t\tsetRmaId,\r\n\t]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{({ values }) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{isQuote ? (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{!isPlane && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{!isPlane && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t setShow(false)}\r\n\t\t\t\t\t\t\t\t\tdeleteMessage=\"Are you sure you want to delete this Detail line?\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t}}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default RMADetailForm;\r\n","import React, { useCallback, useContext, useMemo, useState } from \"react\";\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport HeadingSection from \"../UI/HeadingSection\";\r\nimport moment from \"moment\";\r\nimport { Formik, Form } from \"formik\";\r\nimport { Field } from \"../UI/forms\";\r\nimport * as yup from \"yup\";\r\nimport * as r from \"../../requests/RMAManagementRequests\";\r\nimport AlertContext from \"../../context/alert/AlertContext\";\r\nimport { getPlatforms } from \"../../requests/platformManagementRequests\";\r\nimport { getProducts } from \"../../requests/productManagementRequests\";\r\nimport Table from \"../UI/Table\";\r\nimport * as rmaReqs from \"../../requests/rmaDetailManagementReqs\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport Loading from \"../UI/Loading\";\r\nimport Modal from \"../UI/Modal\";\r\nimport { Body, Helper } from \"../UI/Text\";\r\nimport RMADetailForm from \"./RMADetailForm\";\r\nimport styled, { useTheme } from \"styled-components\";\r\nimport Button from \"../UI/Button\";\r\nimport { Flex } from \"reflexbox\";\r\n\r\nconst ButtonsWrapper = styled(Flex)`\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\ttransition: 200ms all ease-out;\r\n`;\r\n\r\nconst { createRMADetail, getRMADetails } = rmaReqs;\r\n\r\nconst RMAForm = () => {\r\n\tconst theme = useTheme();\r\n\tconst navigate = useNavigate();\r\n\tconst { id: RMAId } = useParams();\r\n\tconst { pid, activeUser, isLoading: userLoading } = useContext(UserContext);\r\n\tconst { showSuccessAlert, showFailureAlert } = useContext(AlertContext);\r\n\r\n\tconst platforms = useQuery({\r\n\t\tqueryID: \"platforms\",\r\n\t\trequest: getPlatforms,\r\n\t\tforcedFilters: {},\r\n\t\tskip: userLoading,\r\n\t});\r\n\r\n\tconst result = useQuery({\r\n\t\tqueryID: `RMA|${RMAId}`,\r\n\t\trequest: r.getRMA,\r\n\t\tqueryVariables: { id: RMAId },\r\n\t\tforcedFilters: {},\r\n\t\tskip: !RMAId || platforms?.isLoading || !platforms?.data || userLoading,\r\n\t});\r\n\r\n\tconst products = useQuery({\r\n\t\tqueryID: \"rmaproducts\",\r\n\t\trequest: getProducts,\r\n\t\tqueryVariables: { pid, isPlane: result.data?.isPlane },\r\n\t\tforcedFilters: {},\r\n\t\tattributes: [\"ProductNumber\", \"Name\"],\r\n\t\tskip:\r\n\t\t\tplatforms.isLoading ||\r\n\t\t\t!platforms.data ||\r\n\t\t\tuserLoading ||\r\n\t\t\tresult.isLoading ||\r\n\t\t\t!result.data,\r\n\t});\r\n\r\n\tconst { data: currentRMA, refetchQuery, isLoading, setData } = result || {};\r\n\r\n\tconst {\r\n\t\tdata: rmaDetailsData,\r\n\t\tisLoading: detailsLoading,\r\n\t\trefetchQuery: refetchDetails,\r\n\t\tsetData: setDetailData,\r\n\t} = useQuery({\r\n\t\tqueryID: `rmaDetails_${RMAId}`,\r\n\t\trequest: getRMADetails,\r\n\t\tqueryVariables: { pid, RMAId, quoteId: currentRMA?.quoteId },\r\n\t\tforcedFilters: {},\r\n\t\tskip:\r\n\t\t\tplatforms.isLoading ||\r\n\t\t\t!platforms.data ||\r\n\t\t\tuserLoading ||\r\n\t\t\tresult.isLoading ||\r\n\t\t\t!result.data ||\r\n\t\t\tproducts.isLoading ||\r\n\t\t\t!products.data,\r\n\t});\r\n\r\n\tconst { rows: detailRows = [], count: detailCount } = rmaDetailsData || {};\r\n\r\n\tconst { quoteId, timeInService, modelNo, invoiceNo, erpOrderNum } =\r\n\t\tcurrentRMA || {};\r\n\r\n\tconst [show, setShow] = useState(false);\r\n\tconst [rmaId, setRmaId] = useState(\"create\");\r\n\r\n\tconst disabled = useMemo(() => !!result.data?.rmaCreated, [result.data]);\r\n\tconst isPlane = useMemo(() => !!result?.data?.isPlane, [result.data]);\r\n\tconst isQuote = useMemo(() => !!quoteId, [quoteId]);\r\n\tconst [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n\tconst productOptions = useMemo(() => {\r\n\t\tconst { rows: _products = [] } = products?.data || {};\r\n\t\treturn _products.map(({ Name, ProductNumber }) => ({\r\n\t\t\tvalue: ProductNumber,\r\n\t\t\tlabel: Name,\r\n\t\t}));\r\n\t}, [products]);\r\n\r\n\tconst validationSchema = useMemo(() => {\r\n\t\treturn yup.object().shape({\r\n\t\t\tinvoiceNo: yup.string().nullable(),\r\n\t\t\tmodelNo: yup\r\n\t\t\t\t.string(\"Please enter the Serial Number.\")\r\n\t\t\t\t.required(\"Airplane Serial Number is required!\"),\r\n\t\t\ttimeInService: yup.string().required(),\r\n\t\t});\r\n\t}, []);\r\n\r\n\tconst initialValues = useMemo(\r\n\t\t() => ({\r\n\t\t\ttimeInService,\r\n\t\t\tinvoiceNo,\r\n\t\t\tmodelNo,\r\n\t\t}),\r\n\t\t[invoiceNo, modelNo, timeInService]\r\n\t);\r\n\r\n\tconst onSubmit = useCallback(async () => {\r\n\t\ttry {\r\n\t\t\tsetIsSubmitting(true);\r\n\t\t\tlet i = 0;\r\n\t\t\tfor (let detail of detailRows) {\r\n\t\t\t\ti += 1;\r\n\t\t\t\tconst { quantity, productNumber, modelNo, reason } = detail || {};\r\n\t\t\t\tif (quantity >= 1) {\r\n\t\t\t\t\tif (productNumber && productNumber === \"\") {\r\n\t\t\t\t\t\tsetIsSubmitting(false);\r\n\t\t\t\t\t\treturn showFailureAlert(\r\n\t\t\t\t\t\t\t`Please set a Product Number for the RMA Detail #${i}`\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (modelNo && modelNo === \"\") {\r\n\t\t\t\t\t\tsetIsSubmitting(false);\r\n\t\t\t\t\t\treturn showFailureAlert(\r\n\t\t\t\t\t\t\t`Please set a Serial Number for the RMA Detail #${i}`\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (reason && reason === \"\") {\r\n\t\t\t\t\t\tsetIsSubmitting(false);\r\n\t\t\t\t\t\treturn showFailureAlert(\r\n\t\t\t\t\t\t\t`Please enter a Reason for the RMA Detail #${i}`\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst { error } = await r.submitRMA({\r\n\t\t\t\tid: RMAId,\r\n\t\t\t\tinput: {\r\n\t\t\t\t\tisPlane,\r\n\t\t\t\t\tfirstName: activeUser?.firstName,\r\n\t\t\t\t\tlastName: activeUser?.lastName,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\tif (error) {\r\n\t\t\t\tconsole.log({ error });\r\n\t\t\t\tsetIsSubmitting(false);\r\n\t\t\t\treturn showFailureAlert(error);\r\n\t\t\t}\r\n\r\n\t\t\tsetIsSubmitting(false);\r\n\r\n\t\t\tshowSuccessAlert(`Successfully created RMA: ${RMAId}`);\r\n\r\n\t\t\trefetchQuery(\"RMAs\");\r\n\t\t\trefetchDetails();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t\tshowFailureAlert(\"Failed to create RMA.\");\r\n\t\t}\r\n\t}, [\r\n\t\tRMAId,\r\n\t\tdetailRows,\r\n\t\tisPlane,\r\n\t\tshowSuccessAlert,\r\n\t\tactiveUser,\r\n\t\trefetchQuery,\r\n\t\trefetchDetails,\r\n\t\tshowFailureAlert,\r\n\t]);\r\n\r\n\tconst onDetailDelete = useCallback(\r\n\t\tasync (id) => {\r\n\t\t\tconst { rows } = rmaDetailsData;\r\n\t\t\tconst newRows = [...rows];\r\n\t\t\tconst index = _.findIndex(newRows, (row) => row.id === id);\r\n\t\t\tif (disabled) {\r\n\t\t\t\tshowFailureAlert(\r\n\t\t\t\t\t`Cannot delete Detail Line ${\r\n\t\t\t\t\t\tindex + 1\r\n\t\t\t\t\t}, RMA has already been submitted.`\r\n\t\t\t\t);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\t_.remove(newRows, (row) => row.id === id);\r\n\t\t\t\tsetDetailData({ rows: newRows, count: detailCount - 1 });\r\n\t\t\t\tawait rmaReqs.deleteRMADetail({ id });\r\n\t\t\t\tshowSuccessAlert(`Successfully deleted Detail Line ${index + 1}.`);\r\n\t\t\t\tsetRmaId(null);\r\n\t\t\t\tsetShow(false);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(error);\r\n\t\t\t\tshowFailureAlert(\"Failed to delete Detail Line.\");\r\n\t\t\t\tsetRmaId(null);\r\n\t\t\t\tsetShow(false);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[\r\n\t\t\tdisabled,\r\n\t\t\tdetailCount,\r\n\t\t\trmaDetailsData,\r\n\t\t\tsetDetailData,\r\n\t\t\tshowFailureAlert,\r\n\t\t\tshowSuccessAlert,\r\n\t\t]\r\n\t);\r\n\r\n\tconst onCreateDetail = useCallback(async () => {\r\n\t\ttry {\r\n\t\t\tconst result = await createRMADetail({\r\n\t\t\t\tinput: { productNumber: \"\", quantity: 1, RMAId, pid },\r\n\t\t\t});\r\n\r\n\t\t\tconst lineNum = detailCount + 1;\r\n\t\t\tconsole.log({ result });\r\n\r\n\t\t\tconst rows = [...detailRows, { ...result }];\r\n\r\n\t\t\tsetDetailData({\r\n\t\t\t\trows,\r\n\t\t\t\tcount: lineNum,\r\n\t\t\t});\r\n\r\n\t\t\tif (result?.id) {\r\n\t\t\t\tshowSuccessAlert(`Successfully created Detail Line ${lineNum}`);\r\n\t\t\t\tsetRmaId(result.id);\r\n\t\t\t\tsetShow(true);\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t\tshowFailureAlert(\"Failed to create RMA Detail\");\r\n\t\t}\r\n\t}, [\r\n\t\tRMAId,\r\n\t\tpid,\r\n\t\tdetailCount,\r\n\t\tdetailRows,\r\n\t\tsetDetailData,\r\n\t\tshowSuccessAlert,\r\n\t\tshowFailureAlert,\r\n\t]);\r\n\r\n\tconst gridData = useMemo(() => {\r\n\t\tlet data = [];\r\n\t\tfor (let detail of detailRows) {\r\n\t\t\tconst { reason, productNumber, quantity, id, modelNo, timeInService } =\r\n\t\t\t\tdetail;\r\n\t\t\tdata.push({\r\n\t\t\t\ttitle: productNumber,\r\n\t\t\t\tsubtitle: reason,\r\n\t\t\t\telements: [\r\n\t\t\t\t\t{`Quantity: ${quantity}`},\r\n\t\t\t\t\t{`Model #: ${modelNo}`},\r\n\t\t\t\t\t{`Time in service: ${timeInService}`},\r\n\t\t\t\t],\r\n\t\t\t\tid,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn data;\r\n\t}, [detailRows]);\r\n\r\n\tconst onDetailClick = useCallback(({ original }) => {\r\n\t\tconst { id } = original;\r\n\t\tsetRmaId(id);\r\n\t\tsetShow(true);\r\n\t}, []);\r\n\r\n\tconst renderedOptions = useMemo(\r\n\t\t() =>\r\n\t\t\tproductOptions.map(({ label, value }, i) => (\r\n\t\t\t\t\r\n\t\t\t)),\r\n\t\t[productOptions]\r\n\t);\r\n\r\n\tconst disableSubmit = useMemo(() => {\r\n\t\tlet disable = false;\r\n\t\tif (detailRows?.length < 1) disable = true;\r\n\t\tlet numWithQuantity = 0;\r\n\t\tfor (let detail of detailRows) {\r\n\t\t\tconst { quantity, productNumber, reason, modelNo } = detail || {};\r\n\t\t\tif (quantity >= 1) {\r\n\t\t\t\tnumWithQuantity += 1;\r\n\t\t\t\tif (!productNumber || !reason || !modelNo) disable = true;\r\n\t\t\t\tdisable = false;\r\n\t\t\t} else if (numWithQuantity === 0) {\r\n\t\t\t\tdisable = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn disable;\r\n\t}, [detailRows]);\r\n\r\n\tconst getTitle = useMemo(() => {\r\n\t\tlet beginning = \"Create\";\r\n\t\tlet middle = \"\";\r\n\t\tif (disabled) beginning = \"View\";\r\n\r\n\t\tif (isQuote) middle = `RMA from order #${(erpOrderNum || \"\").trim()}`;\r\n\r\n\t\tif (isPlane) middle = \"RMA for Aircraft Parts\";\r\n\r\n\t\treturn `${beginning} ${middle}`;\r\n\t}, [disabled, erpOrderNum, isPlane, isQuote]);\r\n\r\n\tconst subtitle = useMemo(() => {\r\n\t\tconst { requestDate, status, rmaCreated } = currentRMA || {};\r\n\t\treturn !requestDate\r\n\t\t\t? null\r\n\t\t\t: `Request Date: ${moment(requestDate).format(\"MM/DD/YYYY\")}, Status: ${\r\n\t\t\t\t\tstatus || rmaCreated ? \"Submitted\" : \"Not Submitted\"\r\n\t\t\t }`;\r\n\t}, [currentRMA]);\r\n\r\n\tconst detailColumns = useMemo(() => {\r\n\t\tconst ret = [\r\n\t\t\t{\r\n\t\t\t\tid: \"productNumber\",\r\n\t\t\t\theader: \"Part #\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 2 },\r\n\t\t\t\tdata: ({ productNumber }) => {productNumber},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"modelNo\",\r\n\t\t\t\theader: \"Serial #\",\r\n\t\t\t\tsize: { lg: 2, md: 2, sm: 0, xs: 0 },\r\n\t\t\t\tdata: ({ modelNo }) => {modelNo},\r\n\t\t\t},\r\n\t\t];\r\n\r\n\t\tret.push(\r\n\t\t\t{\r\n\t\t\t\tid: \"reason\",\r\n\t\t\t\theader: \"Reason\",\r\n\t\t\t\tsize: isPlane\r\n\t\t\t\t\t? { lg: 4, md: 4, sm: 0, xs: 0 }\r\n\t\t\t\t\t: { lg: 0, md: 0, sm: 0, xs: 0 },\r\n\t\t\t\tdata: ({ reason }) => {reason},\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: \"quantity\",\r\n\t\t\t\theader: \"Returned Quantity\",\r\n\t\t\t\tsize: { lg: 1, md: 1, sm: 2, xs: 2 },\r\n\t\t\t\tdata: ({ quantity }) => {quantity},\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif (isQuote && !isPlane) {\r\n\t\t\tret.push({\r\n\t\t\t\tid: \"shippedQty\",\r\n\t\t\t\theader: \"Shipped Quantity\",\r\n\t\t\t\tsize: { md: 2, sm: 2, xs: 2 },\r\n\t\t\t\tdata: ({ shippedQty }) => {shippedQty},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/// remove returned items from future rmas\r\n\t\tif (!disabled)\r\n\t\t\tret.push({\r\n\t\t\t\tdisplay: (props) => {\r\n\t\t\t\t\tconst { quantity, productNumber, reason, modelNo } =\r\n\t\t\t\t\t\tprops?.row?.original || {};\r\n\t\t\t\t\tconst attentionRequired =\r\n\t\t\t\t\t\tquantity && (!productNumber || !reason || !modelNo);\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{attentionRequired ? * : null}\r\n\t\t\t\t\t\t\t\t onDetailClick(props.row)}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* onDetailDelete(props.row.original?.id)}\r\n /> */}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\t\t\t\theader: \"\",\r\n\t\t\t\tsort: false,\r\n\t\t\t\tsize: { lg: 2, md: 2, sm: 2, xs: 2 },\r\n\t\t\t});\r\n\t\treturn ret;\r\n\t}, [\r\n\t\tdisabled,\r\n\t\tisPlane,\r\n\t\tisQuote,\r\n\t\tonDetailClick,\r\n\t\t// onDetailDelete,\r\n\t\ttheme.danger,\r\n\t\ttheme.secondary,\r\n\t]);\r\n\r\n\tconst handleUpdateRMA = useCallback(\r\n\t\tasync (e) => {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tconst value = e.target.value;\r\n\t\t\tconst name = e.target.name;\r\n\t\t\tif (currentRMA[name] === value) return;\r\n\t\t\tsetData({ ...currentRMA, [name]: value });\r\n\r\n\t\t\tawait r.updateRMA({ id: RMAId, input: { [name]: value } });\r\n\t\t},\r\n\t\t[RMAId, currentRMA, setData]\r\n\t);\r\n\r\n\treturn isLoading || products.isLoading || !products.data || !currentRMA ? (\r\n\t\t\r\n\t) : (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t onSubmit()}\r\n\t\t\t\t\tcreateButtonIcon=\"faPersonWalkingArrowLoopLeft\"\r\n\t\t\t\t\tcreateButtonText=\"Submit\"\r\n\t\t\t\t\tcreateButtonColor={theme.success}\r\n\t\t\t\t\tcreateButtonDisabled={disableSubmit || isSubmitting}\r\n\t\t\t\t\tsubtitle={subtitle}\r\n\t\t\t\t\tbackButtonLink={() => navigate(`/RMAs/${pid}`)}\r\n\t\t\t\t\ttitle={getTitle}\r\n\r\n\t\t\t\t\t// title={`${!disabled ? \"Create\" : \"View\"} RMA${\r\n\t\t\t\t\t// isQuote ? ` from order #${(erpOrderNum || \"\").trim()}` : \"\"\r\n\t\t\t\t\t// }`}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{() => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{!quoteId ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\r\n\r\n\t\t\t\t onCreateDetail()}\r\n\t\t\t\t\tcreateButtonText=\"Create RMA Detail\"\r\n\t\t\t\t\tdata={detailRows}\r\n\t\t\t\t\tgridData={gridData}\r\n\t\t\t\t/>\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default RMAForm;\r\n","import React, { useContext, useEffect, useMemo } from \"react\";\r\nimport Quotes from \"../Quote/QuoteDashboard\";\r\nimport Administration from \"../Administration\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport ProductCatalog from \"../ProductCatalog\";\r\nimport Loading from \"../UI/Loading\";\r\nimport PagerContextProvider from \"../UI/Pager/PagerContext\";\r\n\r\nconst HomePage = (props) => {\r\n const { activeUser, isLoading } = useContext(UserContext);\r\n const { roleLevel = 0 } = activeUser || {};\r\n\r\n const Component = useMemo(() => {\r\n if (isLoading) return ;\r\n switch (roleLevel) {\r\n case 0:\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n case 9:\r\n return ;\r\n\r\n default:\r\n return ;\r\n }\r\n }, [isLoading, roleLevel, props]);\r\n\r\n useEffect(() => {}, [isLoading, roleLevel]);\r\n\r\n return Component;\r\n};\r\n\r\nexport default HomePage;\r\n","import React from 'react';\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Body, Heading } from \"../UI/Text\";\r\n\r\nconst MaintenancePage = ({maintenanceMessage}) => {\r\n \r\n return (\r\n \r\n \r\n Maintenance is Underway!\r\n \r\n \r\n {maintenanceMessage}\r\n \r\n \r\n )\r\n};\r\n\r\nexport default MaintenancePage;\r\n\r\n","import React, { useEffect, useContext, useState } from \"react\";\r\nimport GlobalStyle from \"../../modules/globalStyles\";\r\nimport { Route, Routes, BrowserRouter, Navigate } from \"react-router-dom\";\r\nimport Header from \"../Header\";\r\nimport Configurator from \"../Configurator\";\r\nimport Alerts from \"../Alerts\";\r\n// import MyConfigurations from \"../MyConfigurations\";\r\nimport Loading from \"../UI/Loading\";\r\nimport Quote from \"../Quote\";\r\nimport QuoteDashboard from \"../Quote/QuoteDashboard\";\r\nimport Users from \"../Administration/Users\";\r\nimport UserDetails from \"../Administration/UserDetails\";\r\nimport Login from \"../Login\";\r\nimport ResetPassword from \"../Administration/ResetPassword\";\r\nimport { ThemeProvider } from \"styled-components\";\r\nimport * as _theme from \"../../modules/theme\";\r\nimport * as constants from \"../../modules/constants\";\r\nimport ProductForm from \"../ProductManagement/ProductForm\";\r\nimport ProductPage from \"../ProductManagement\";\r\nimport UserContext from \"../../context/user/UserContext\";\r\nimport PagerContextProvider from \"../UI/Pager/PagerContext\";\r\nimport ConfiguratorContextProvider from \"../../context/configurator/ConfiguratorContextProvider\";\r\nimport UserContextProvider from \"../../context/user/UserContextProvider\";\r\nimport SocketContextProvider from \"../../context/socket/SocketContextProvider\";\r\nimport AlertContextProvider from \"../../context/alert/AlertContextProvider\";\r\nimport Administration from \"../Administration\";\r\nimport PlatformSettings from \"../Administration/PlatformSettings\";\r\nimport PlatformsPage from \"../Administration/PlatformsPage\";\r\nimport StatusTypesPage from \"../Administration/StatusTypesPage\";\r\nimport CustomersPage from \"../Administration/CustomersPage\";\r\nimport CustomerForm from \"../Administration/CustomerForm\";\r\n// import AddressesPage from \"../Administration/AddressesPage\";\r\nimport IssueReports from \"../Administration/IssueReports\";\r\nimport RolesPage from \"../Administration/RolesPage\";\r\nimport ThemesPage from \"../Administration/ThemesPage\";\r\nimport ThemeForm from \"../Administration/ThemeForm\";\r\nimport OrdersPage from \"../OrdersPage\";\r\nimport AllQuotes from \"../Administration/AllQuotes\";\r\nimport ThankYouPage from \"../ThankYouPage\";\r\nimport { PageWrapper } from \"../UI/Grid\";\r\nimport { Heading, Body } from \"../UI/Text\";\r\nimport { Box, Flex } from \"reflexbox\";\r\nimport Footer from \"../Footer\";\r\nimport { getTheme } from \"../../requests/themeManagementRequests\";\r\nimport { useQuery } from \"../Hooks\";\r\nimport GroupsPage from \"../Administration/GroupsPage\";\r\nimport GroupForm from \"../Administration/GroupForm\";\r\nimport RMAsPage from \"../Administration/RMAsPage\";\r\nimport RMAForm from \"../Administration/RMAForm\";\r\nimport HomePage from \"../HomePage\";\r\nimport ProductCatalog from \"../ProductCatalog\";\r\n// import ProductPreview from \"../ProductCatalog/ProductPreview\";\r\nimport Interactions from \"../Interactions\";\r\nimport Maintenance from \"../Maintenance\";\r\n\r\nconst { DEFAULT_HOMEPAGE } = constants;\r\n\r\nconst RequireAuth = ({ children, loginPage, publicRoute }) => {\r\n\tconst { activeUser, loggedIn, isLoading, platform } = useContext(UserContext);\r\n\tconst { roleLevel } = activeUser || {};\r\n\tconst homePage = DEFAULT_HOMEPAGE[roleLevel] || \"/\";\r\n\tconst maintenanceMode = platform?.maintenanceMode;\r\n\r\n\tif (maintenanceMode) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (loggedIn) {\r\n\t\tif (loginPage) return ;\r\n\t\tif (isLoading || !activeUser || !platform) return ;\r\n\t\t// if (roleLevel > (publicRoute ? -1 : 0)) return children;\r\n\t\t// else return ;\r\n\t\treturn children;\r\n\t} else {\r\n\t\tif (publicRoute) return children;\r\n\t\tif (loginPage) return children;\r\n\t\telse return ;\r\n\t}\r\n};\r\n\r\nconst RequireAdmin = ({ children }) => {\r\n\tconst { activeUser, loggedIn, isLoading, platform } = useContext(UserContext);\r\n\tconst { roleLevel } = activeUser || {};\r\n\r\n\tconst homePage = DEFAULT_HOMEPAGE[roleLevel] || \"/\";\r\n\r\n\tif (loggedIn) {\r\n\t\tif (isLoading || !activeUser || !platform) return ;\r\n\t\tif ([9, 5].includes(roleLevel)) return children;\r\n\t\telse return ;\r\n\t} else {\r\n\t\treturn ;\r\n\t}\r\n};\r\n\r\nconst App = () => {\r\n\tconst context = useContext(UserContext);\r\n\r\n\tconst themeResult = useQuery({\r\n\t\tqueryID: \"theme\",\r\n\t\trequest: getTheme,\r\n\t\t// skip: !context?.pid,\r\n\t\tqueryVariables: {\r\n\t\t\tpid: context?.pid || \"default\",\r\n\t\t\tdarkMode: !!context.darkMode,\r\n\t\t},\r\n\t\tforcedFilters: {},\r\n\t});\r\n\r\n\tconst {\r\n\t\tdata: themeData,\r\n\t\tsetData: setThemeData,\r\n\t\trefetchQuery: refetchTheme,\r\n\t\tisLoading: themeLoading,\r\n\t} = themeResult || {};\r\n\r\n\tconst [theme, setTheme] = useState({\r\n\t\t..._theme.airTractorTheme,\r\n\t\tbreakpoints: themeData?.breakpoints\r\n\t\t\t? JSON.parse(themeData.breakpoints)\r\n\t\t\t: [\"320px\", \"360px\", \"600px\", \"800px\", \"1000px\", \"1200px\"],\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (themeData && !themeLoading) {\r\n\t\t\tsetTheme({\r\n\t\t\t\t...themeData,\r\n\t\t\t\tbreakpoints: themeData?.breakpoints\r\n\t\t\t\t\t? JSON.parse(themeData.breakpoints)\r\n\t\t\t\t\t: [\"320px\", \"360px\", \"600px\", \"800px\", \"1000px\", \"1200px\"],\r\n\t\t\t});\r\n\t\t}\r\n\t}, [context, themeData, themeLoading]);\r\n\r\n\ttry {\r\n\t\tconst { maintenanceMessage } = context?.platform || {};\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{context.isLoading ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{/* \r\n \r\n \r\n }\r\n /> */}\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* \r\n \r\n \r\n \r\n \r\n }\r\n /> */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{/* \r\n \r\n \r\n \r\n \r\n }\r\n /> */}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t