wcz-layout
Version:
1 lines • 185 kB
Source Map (JSON)
{"version":3,"file":"hooks.mjs","names":["Autocomplete","TextField","AutocompleteProps","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormAutocompleteProps","Omit","textFieldProps","FormAutocomplete","t0","$","_c","$i","Symbol","for","autocompleteProps","field","t1","isTouched","hasError","helperText","t2","t3","freeSolo","_","value","handleChange","__0","value_0","reason","t4","name","parameters","t5","handleBlur","state","_c","Checkbox","FormControl","FormControlLabel","FormHelperText","CheckboxProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","FormCheckboxProps","Omit","label","FormCheckbox","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","helperId","t2","name","t3","Boolean","state","value","t4","event","handleChange","target","checked","t5","undefined","t6","t7","input","t8","handleBlur","t9","t10","t11","t12","_c","DatePicker","Dayjs","PickersTextFieldProps","DatePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDatePickerProps","Omit","textFieldProps","Partial","FormDatePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","_c","TimePicker","PickersTextFieldProps","TimePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTimePickerProps","Omit","textFieldProps","Partial","FormTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","_c","DateTimePicker","Dayjs","PickersTextFieldProps","DateTimePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDateTimePickerProps","Omit","textFieldProps","Partial","FormDateTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","_c","TextField","NumericFormat","InputAttributes","NumericFormatProps","FC","TextFieldProps","FormOmittedProps","useFieldContext","getFieldStatus","FormNumberFieldProps","Omit","defaultValue","options","FormNumberField","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","state","value","t3","t4","floatValue","handleChange","t5","t6","handleBlur","name","_c","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","RadioGroup","RadioGroupProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","Option","label","value","FormRadioGroupProps","Omit","options","Array","FormRadioGroup","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","helperId","t2","t3","name","t4","state","t5","event","handleChange","target","t6","handleBlur","t7","undefined","t8","map","_temp","t9","t10","t11","option","_c","_temp","FormControl","FormHelperText","FormLabel","Slider","SliderProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","FormSliderProps","Omit","label","FormSlider","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","labelId","t2","t3","state","value","t4","_","handleChange","Array","isArray","t5","undefined","t6","handleBlur","name","t7","t8","_c","Button","ButtonProps","FC","useFormContext","FormSubmitButtonProps","Omit","FormSubmitButton","props","$","_c","$i","Symbol","for","form","t0","event","preventDefault","stopPropagation","handleSubmit","handleClick","t1","isSubmitting","t2","Subscribe","_temp","state","_c","_temp","Switch","FormControl","FormControlLabel","FormHelperText","SwitchProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","FormSwitchProps","Omit","label","FormSwitch","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","helperId","t2","name","t3","Boolean","state","value","t4","event","handleChange","target","checked","t5","undefined","t6","t7","input","t8","handleBlur","t9","t10","t11","t12","_c","TextField","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTextFieldProps","Omit","type","FormTextField","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","state","value","t2","event","handleChange","target","t3","t4","t5","handleBlur","name","_c","createFormHook","createFormHookContexts","FormAutocomplete","Autocomplete","FormCheckbox","Checkbox","FormDatePicker","DatePicker","FormTimePicker","TimePicker","FormDateTimePicker","DateTimePicker","FormNumberField","NumberField","FormRadioGroup","RadioGroup","FormSlider","Slider","FormSubmitButton","SubmitButton","FormSwitch","Switch","FormTextField","TextField","fieldContext","useFieldContext","formContext","useFormContext","useAppForm","useLayoutForm","withForm","withLayoutForm","fieldComponents","formComponents","useEffect","useRef","BufferCharacter","time","char","Buffer","current","Array","Config","timeToEvaluate","averageWaitTime","startCharacter","endCharacter","onComplete","code","onError","error","minLength","ignoreIfFocusOn","Node","stopPropagation","preventDefault","container","enabled","useScanDetection","buffer","timeout","ReturnType","setTimeout","undefined","clearBuffer","evaluateBuffer","clearTimeout","sum","map","k","arr","slice","reduce","total","delta","avg","length","filter","join","onKeyDown","event","KeyboardEvent","currentTarget","includes","key","push","performance","now","onKeyDownRef","target","document","listener","Event","addEventListener","removeEventListener","MoreVert","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Stack","Tooltip","FC","ReactElement","useState","useTranslation","useCellContext","layoutTableClasses","RowAction","label","onClick","row","TData","disabled","divider","showInMenu","icon","ActionsCell","actions","Array","t0","$","_c","$i","Symbol","for","cell","t","anchorEl","setAnchorEl","t1","buttons","filter","_temp","menuItems","_temp2","t2","alignItems","t3","action_1","action","original","actionsCell","_temp3","_temp4","map","length","event_1","event","currentTarget","flatMap","action_2","action_0","stopPropagation","event_0","_c","useTranslation","_temp","_temp2","_temp3","KeyboardArrowDown","KeyboardArrowRight","IconButton","Subscribe","FC","useCellContext","layoutTableClasses","ExpandCell","$","_c","$i","Symbol","for","row","t0","getCanExpand","expanded","getIsExpanded","expandButton","event","stopPropagation","toggleExpanded","ml","depth","t1","table","atoms","_c","KeyboardArrowDown","KeyboardArrowRight","IconButton","Stack","Typography","FlexRender","Subscribe","FC","useCellContext","layoutTableClasses","GroupCell","$","_c","$i","Symbol","for","cell","row","t0","depth","t1","ml","alignItems","t2","expanded","getIsExpanded","event","stopPropagation","toggleExpanded","t3","table","atoms","t4","t5","subRows","length","t6","groupCell","_c","PushPin","IconButton","Tooltip","Subscribe","FC","useCellContext","PinRowCell","$","_c","$i","Symbol","for","row","t0","getCanPin","pinned","getIsPinned","event","stopPropagation","pin","t1","table","atoms","rowPinning","_c","Checkbox","Subscribe","FC","useCellContext","SelectCell","$","_c","$i","Symbol","for","row","t0","getCanSelect","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","_temp","input","t1","table","atoms","rowSelection","event","stopPropagation","_c","_temp","Check","Close","FC","useCellContext","ICON_SX","verticalAlign","const","BooleanCell","$","_c","$i","Symbol","for","cell","t0","getValue","_c","TypographyProps","Typography","dayjs","localizedFormat","FC","useCellContext","extend","DateCell","format","t0","$","_c","$i","Symbol","for","props","t1","undefined","cell","T0","t2","t3","t4","t5","t6","bb0","value","getValue","t7","_c","ComponentProps","FC","DateCell","DateTimeCell","t0","$","_c","$i","Symbol","for","props","t1","format","undefined","t2","_c","TypographyProps","Typography","FC","useCellContext","NumberCell","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","props","sx","cell","t1","value","getValue","t2","fontVariantNumeric","t3","Array","isArray","t4","toLocaleString","undefined","_c","TypographyProps","Typography","FC","useCellContext","ValueCell","props","$","_c","$i","Symbol","for","cell","t0","renderValue","value","t1","_c","CreatedFilterFn","FilterFn","Row","constructFilterFn","filterFn_arrHas","filterFn_empty","filterFn_endsWith","filterFn_equals","filterFn_equalsString","filterFn_greaterThan","filterFn_greaterThanOrEqualTo","filterFn_inDateRange","filterFn_includesString","filterFn_inNumberRange","filterFn_lessThan","filterFn_lessThanOrEqualTo","filterFn_notEmpty","filterFn_startsWith","LayoutTableFeatures","foldForSearch","ExtendedColumnFilter","FilterOperator","LayoutColumnMeta","TableFilterVariant","AnyRow","AnyFilterFn","apply","fn","row","columnId","value","resolveFilterValue","ignoreDiacritics","resolveDataValue","includesString","equalsString","startsWith","endsWith","isFilterActive","filter","operator","isBlank","undefined","Array","isArray","length","every","toTime","Date","Number","isNaN","getTime","time","toDay","setHours","compareDates","rowTime","getValue","filterTime","daysFromToday","Math","floor","now","isRelativeToToday","diff","min","max","map","days","equals","variant","test","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","dynamicFilterFn","filters","table","store","state","columnFilters","id","getColumn","columnDef","meta","results","joinOperator","Boolean","some","autoRemove","globalFilterFn","TEXT_OPERATORS","NUMBER_OPERATORS","DATE_OPERATORS","CHOICE_OPERATORS","getFilterOperators","Typography","Subscribe","FC","formatValue","useHeaderContext","layoutTableClasses","AggregationFooter","prefix","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","t1","undefined","column","t2","value","getAggregationValue","rows","table","getFilteredRowModel","numeric","Number","aggregationValue","fontWeight","isFinite","toLocaleString","t3","atoms","columnFilters","_c","ArrowDownward","IconButton","Subscribe","FC","useHeaderContext","ExpandAllCell","$","_c","$i","Symbol","for","header","table","t0","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","getIsAllRowsExpanded","transition","transform","t1","atoms","expanded","_c","ArrowBack","ArrowDownward","ArrowForward","ArrowUpward","Clear","MoreVert","PushPin","VisibilityOff","Workspaces","Box","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Subscribe","FC","useState","useTranslation","useHeaderContext","columnLabel","hasColumnLabel","layoutTableClasses","moveColumn","HeaderMenu","disableGrouping","t0","$","_c","$i","Symbol","for","t1","undefined","header","t","anchorEl","setAnchorEl","column","t2","close","t3","action","run","t4","canSort","getCanSort","canPin","getCanPin","canGroup","getCanGroup","canHide","getCanHide","sorted","getIsSorted","pinned","getIsPinned","grouped","getIsGrouped","index","getIndex","leafCount","table","getVisibleLeafColumns","length","menuIcon","display","flexShrink","mr","overflow","width","event","currentTarget","toggleSorting","clearSorting","const","map","position","pin","toggleGrouping","toggleVisibility","t5","store","_temp","state","_c","useTranslation","_temp","SxProps","Theme","Box","Subscribe","FC","MouseEvent","TouchEvent","useHeaderContext","classNames","columnFlex","layoutTableClasses","BAR_HEIGHT","TARGET_SIZE","bar","accent","content","position","insetInlineEnd","top","width","height","borderRadius","bgcolor","transition","theme","transitions","create","const","base","insetBlock","HeaderResizeHandle","$","_c","$i","Symbol","for","header","column","getCanResize","t0","getIsLastColumn","columnSeparator","getResizeHandler","resize","t1","event","currentTarget","parentElement","offsetWidth","table","setColumnSizing","old","id","handler","t2","getIsResizing","resetSize","_temp","cursor","touchAction","userSelect","t3","atoms","columnResizing","event_0","stopPropagation","_c","_temp","Box","TableSortLabel","Subscribe","FC","ReactNode","useHeaderContext","layoutTableClasses","HeaderSortLabel","children","t0","$","_c","$i","Symbol","for","column","getCanSort","t1","sorting","direction","getIsSorted","sortIndex","length","getSortIndex","sortLabel","getToggleSortingHandler","ml","fontSize","opacity","t2","table","atoms","_c","Checkbox","Subscribe","FC","useHeaderContext","SelectAllCell","scope","t0","$","_c","$i","Symbol","for","t1","undefined","header","table","t2","checked","getIsAllPageRowsSelected","getIsAllRowsSelected","indeterminate","getIsSomePageRowsSelected","getIsSomeRowsSelected","getToggleAllPageRowsSelectedHandler","getToggleAllRowsSelectedHandler","input","t3","atoms","rowSelection","_c","ViewColumn","Box","Checkbox","FormControlLabel","IconButton","Popover","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","columnLabel","hasColumnLabel","layoutTableClasses","shortcutLabel","ColumnsPanel","$","_c","$i","Symbol","for","table","t","anchorEl","setAnchorEl","buttonRef","t0","getAllLeafColumns","filter","_temp","columns","t1","current","t2","length","t3","enabled","t4","t5","columnsButton","event","currentTarget","t6","t7","t10","t8","t9","vertical","horizontal","t11","paper","className","columnsPanel","sx","maxWidth","t12","display","flexDirection","px","py","maxHeight","minWidth","overflow","map","_temp2","alignItems","p","borderTop","borderColor","typography","variant","noWrap","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","t13","atoms","columnVisibility","t14","t15","column","getCanHide","column_0","id","getIsVisible","getToggleVisibilityHandler","_c","useTranslation","_temp","_temp2","Autocomplete","MenuItem","Stack","TextField","Typography","useDebouncedCallback","Column","RowData","useState","useTranslation","LayoutTableFeatures","ExtendedColumnFilter","LayoutColumnMeta","TableFilterOption","formatValue","FilterColumn","TData","ColumnFilterFieldProps","column","filter","onChange","value","filterMeta","columnDef","meta","resolveOptions","Array","declared","options","from","getFacetedUniqueValues","keys","map","label","option","sort","a","b","localeCompare","toDateInputValue","Date","date","Number","isNaN","getTime","getFullYear","String","getMonth","padStart","getDate","fromDateInputValue","raw","toISOString","undefined","toNumber","pair","isArray","ColumnFilterField","t0","$","_c","$i","Symbol","for","t","t1","variant","operator","t2","t3","size","const","fullWidth","shared","setValue","t4","wait","commit","t5","next","change","t6","t7","T0","T1","isDate","t10","t11","t8","t9","to","t12","event","target","t13","inputLabel","shrink","t14","t15","t16","t17","t18","event_0","t19","t20","t21","event_1","multiple","selected","includes","find","option_0","_","next_0","_temp3","params","_temp","_temp2","event_2","event_3","event_4","option_3","option_2","option_1","selectedOption","_c","useTranslation","_temp","Add","Close","DeleteForever","FilterList","Autocomplete","Badge","Box","Button","FormControl","IconButton","InputLabel","MenuItem","Popover","Select","TextField","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","ColumnFilterField","getFilterOperators","isFilterActive","ExtendedColumnFilter","FilterOperator","JoinOperator","LayoutColumnMeta","columnLabel","layoutTableClasses","shortcutLabel","DATE_OPERATOR_LABELS","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","const","DateOperator","LOGIC_WIDTH","FIELD_WIDTH","VALUE_WIDTH","FiltersMenu","table","t","anchorEl","setAnchorEl","HTMLElement","placeholder","buttonRef","HTMLButtonElement","filterableColumns","getAllLeafColumns","filter","column","getCanFilter","close","current","enabled","length","setFilters","filters","Array","setColumnFilters","newFilter","joinOperator","id","filterId","crypto","randomUUID","value","operator","columnDef","meta","variant","atoms","columnFilters","rows","activeCount","update","patch","Partial","map","remove","next","add","filtersButton","event","currentTarget","vertical","horizontal","paper","className","filterPanel","sx","maxWidth","display","flexDirection","gap","p","maxHeight","overflow","index","getColumn","operators","alignItems","flexShrink","width","visibility","item","target","option","selected","_","params","flexGrow","justifyContent","borderTop","borderColor","resetColumnFilters","useTranslation","Close","Search","Box","IconButton","InputAdornment","TextField","Tooltip","useTheme","useHotkey","FC","useEffect","useRef","useState","flushSync","useTranslation","useTableContext","layoutTableClasses","shortcutLabel","GlobalFilter","defaultExpanded","debounce","t0","$","_c","$i","Symbol","for","t1","undefined","table","t","theme","inputRef","buttonRef","value","setValue","state","globalFilter","expanded","setExpanded","current","t2","t3","id","setTimeout","setGlobalFilter","clearTimeout","t4","focus","collapse","t5","expand","t6","display","alignItems","t7","t8","t9","t10","transitions","create","t11","gridArea","width","height","zIndex","opacity","pointerEvents","transition","t12","t13","t14","t15","t16","t17","event","target","event_0","key","t18","event_1","currentTarget","parentElement","contains","relatedTarget","t19","t20","t21","t22","t23","t24","overflowX","t25","t26","input","startAdornment","endAdornment","mr","htmlInput","t27","t28","toolbarQuickFilter","_c","useTranslation","Skeleton","MuiSkeleton","TableCell","TableRow","FC","useEffect","useRef","useState","useTableContext","hasColumnLabel","layoutTableClasses","classes","rowHeight","t0","$","_c","$i","Symbol","for","table","firstRow","t1","state","pagination","pageSize","Math","min","rowCount","setRowCount","t2","t3","container","current","closest","measure","spent","reduce","total","selector","querySelector","getBoundingClientRect","height","max","floor","clientHeight","observer","ResizeObserver","observe","disconnect","t4","Array","from","length","_","index","undefined","skeletonRow","getVisibleLeafColumns","map","_temp","filler","p","column","id","skeletonCell","py","px","mx","Skeleton","_c","classes","MuiSkeleton","Box","Divider","Typography","Subscribe","FC","ReactNode","useTranslation","useTableContext","layoutTableClasses","ColumnsPanel","FiltersMenu","GlobalFilter","TableToolbarProps","title","actions","disableColumnFilter","disableColumnSelector","disableSearch","ToolbarDivider","$","_c","$i","Symbol","for","t0","toolbarDivider","height","alignSelf","mx","Toolbar","table","t","t1","flexShrink","display","alignItems","justifyContent","minHeight","gap","p","boxSizing","borderBottom","borderColor","t2","flex","minWidth","t3","toolbarTitle","fontWeight","t4","count","getSelectedRowIds","length","toolbarSelectedCount","t5","atoms","rowSelection","t6","toolbarLabel","t7","t8","t9","t10","t11","toolbar","_c","Toolbar","useTranslation","createTableHook","ActionsCell","ExpandCell","GroupCell","PinRowCell","SelectCell","AggregatedCell","BooleanCell","DateCell","DateTimeCell","NumberCell","ValueCell","dynamicFilterFn","globalFilterFn","AggregationFooter","ExpandAllCell","HeaderMenu","HeaderResizeHandle","HeaderSortLabel","SelectAllCell","ColumnsPanel","FiltersMenu","GlobalFilter","Pagination","Skeleton","Toolbar","cellContext","headerContext","layoutTableFeatures","tableContext","useCellContext","useHeaderContext","useTableContext","LayoutTableFeatures","appFeatures","createAppColumnHelper","createLayoutColumnHelper","useAppTable","useLayoutTable","features","getRowId","row","id","defaultColumn","filterFn","aggregatedCell","columnResizeMode","isMultiSortEvent","e","ctrlKey","metaKey","shiftKey","MouseEvent","tableComponents","cellComponents","headerComponents","RowAction","LayoutTable","LayoutTableProps","FilterOperator","LayoutColumnMeta","TableFilterOption","TableFilterVariant"],"sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/useForm.ts","../src/hooks/useScanDetection.ts","../src/components/table/cells/features/ActionsCell.tsx","../src/components/table/cells/features/ExpandCell.tsx","../src/components/table/cells/features/GroupCell.tsx","../src/components/table/cells/features/PinRowCell.tsx","../src/components/table/cells/features/SelectCell.tsx","../src/components/table/cells/formatters/BooleanCell.tsx","../src/components/table/cells/formatters/DateCell.tsx","../src/components/table/cells/formatters/DateTimeCell.tsx","../src/components/table/cells/formatters/NumberCell.tsx","../src/components/table/cells/formatters/ValueCell.tsx","../src/components/table/filterFns.ts","../src/components/table/headers/AggregationFooter.tsx","../src/components/table/headers/ExpandAllCell.tsx","../src/components/table/headers/HeaderMenu.tsx","../src/components/table/headers/HeaderResizeHandle.tsx","../src/components/table/headers/HeaderSortLabel.tsx","../src/components/table/headers/SelectAllCell.tsx","../src/components/table/table/ColumnsPanel.tsx","../src/components/table/ColumnFilterField.tsx","../src/components/table/table/FiltersMenu.tsx","../src/components/table/table/GlobalFilter.tsx","../src/components/table/table/Skeleton.tsx","../src/components/table/table/Toolbar.tsx","../src/hooks/useLayoutTable.tsx"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormAutocompleteProps extends Omit<\n AutocompleteProps<any, boolean, boolean, boolean>,\n FormOmittedProps\n> {\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\n}\n\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({\n textFieldProps,\n ...autocompleteProps\n}) => {\n const field = useFieldContext();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <Autocomplete\n value={field.state.value}\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\n onInputChange={(_, value, reason) =>\n reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)\n }\n onBlur={field.handleBlur}\n {...autocompleteProps}\n renderInput={(parameters) => (\n <TextField\n {...parameters}\n name={field.name}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n {...textFieldProps}\n />\n )}\n />\n );\n};\n","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { CheckboxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useId } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormCheckbox: FC<FormCheckboxProps> = ({ label, ...props }) => {\n const field = useFieldContext<boolean | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n const showError = isTouched && hasError;\n const helperId = useId();\n\n return (\n <FormControl error={showError}>\n <FormControlLabel\n control={\n <Checkbox\n name={field.name}\n checked={Boolean(field.state.value)}\n onChange={(event) => field.handleChange(event.target.checked)}\n onBlur={field.handleBlur}\n slotProps={{\n input: {\n \"aria-invalid\": showError || undefined,\n \"aria-describedby\": showError ? helperId : undefined,\n },\n }}\n {...props}\n />\n }\n label={label ?? \"\"}\n />\n {showError && <FormHelperText id={helperId}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { DatePicker } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DatePickerProps } from \"@mui/x-date-pickers\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\n textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DatePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps,\n }}\n {...props}\n />\n );\n};\n","import { TimePicker } from \"@mui/x-date-pickers\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { TimePickerProps } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\n textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TimePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps,\n }}\n {...props}\n />\n );\n};\n","import { DateTimePicker } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\n textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DateTimePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps,\n }}\n {...props}\n />\n );\n};\n","import { TextField } from \"@mui/material\";\nimport { NumericFormat } from \"react-number-format\";\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\nimport type { FC } from \"react\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n defaultValue?: number | null;\n options?: Omit<\n NumericFormatProps<InputAttributes>,\n \"customInput\" | \"onValueChange\" | keyof InputAttributes\n >;\n}\n\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\n const field = useFieldContext<number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <NumericFormat\n customInput={TextField}\n name={field.name}\n value={field.state.value ?? \"\"}\n onValueChange={({ floatValue }) => field.handleChange(floatValue)}\n onBlur={field.handleBlur}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n {...props}\n {...options}\n />\n );\n};\n","import {\n FormControl,\n FormControlLabel,\n FormHelperText,\n FormLabel,\n Radio,\n RadioGroup,\n} from \"@mui/material\";\nimport type { RadioGroupProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useId } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\ninterface Option {\n label: string;\n value: string | number;\n}\n\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\n label?: string;\n options: Array<Option>;\n}\n\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\n const field = useFieldContext<string | number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n const showError = isTouched && hasError;\n const helperId = useId();\n\n return (\n <FormControl component=\"fieldset\" error={showError}>\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\n <RadioGroup\n name={field.name}\n value={field.state.value ?? \"\"}\n onChange={(event) => field.handleChange(event.target.value)}\n onBlur={field.handleBlur}\n aria-describedby={showError ? helperId : undefined}\n {...props}\n >\n {options.map((option) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n control={<Radio />}\n label={option.label}\n />\n ))}\n </RadioGroup>\n {showError && <FormHelperText id={helperId}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\nimport type { SliderProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useId } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\n const field = useFieldContext<number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n const showError = isTouched && hasError;\n const labelId = useId();\n\n return (\n <FormControl error={showError}>\n {label && <FormLabel id={labelId}>{label}</FormLabel>}\n <Slider\n name={field.name}\n value={field.state.value ?? 0}\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\n onBlur={field.handleBlur}\n aria-labelledby={label ? labelId : undefined}\n {...props}\n />\n {showError && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { Button } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useFormContext } from \"~/hooks/useForm\";\n\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\n\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\n const form = useFormContext();\n\n const handleClick = async (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n await form.handleSubmit();\n };\n\n return (\n <form.Subscribe selector={(state) => state.isSubmitting}>\n {(isSubmitting) => (\n <Button loading={isSubmitting} onClick={handleClick} type=\"submit\" {...props} />\n )}\n </form.Subscribe>\n );\n};\n","import { Switch, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { SwitchProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useId } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormSwitch: FC<FormSwitchProps> = ({ label, ...props }) => {\n const field = useFieldContext<boolean | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n const showError = isTouched && hasError;\n const helperId = useId();\n\n return (\n <FormControl error={showError}>\n <FormControlLabel\n control={\n <Switch\n name={field.name}\n checked={Boolean(field.state.value)}\n onChange={(event) => field.handleChange(event.target.checked)}\n onBlur={field.handleBlur}\n slotProps={{\n input: {\n \"aria-invalid\": showError || undefined,\n \"aria-describedby\": showError ? helperId : undefined,\n },\n }}\n {...props}\n />\n }\n label={label ?? \"\"}\n />\n {showError && <FormHelperText id={helperId}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { TextField } from \"@mui/material\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\";\n}\n\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\n const field = useFieldContext<string | number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TextField\n name={field.name}\n value={field.state.value ?? \"\"}\n onChange={(event) => field.handleChange(event.target.value)}\n onBlur={field.handleBlur}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n {...props}\n />\n );\n};\n","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n createFormHookContexts();\n\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } = createFormHook({\n fieldComponents: {\n TextField,\n NumberField,\n Autocomplete,\n Checkbox,\n Switch,\n RadioGroup,\n Slider,\n DatePicker,\n TimePicker,\n DateTimePicker,\n },\n formComponents: {\n SubmitButton,\n },\n fieldContext,\n formContext,\n});\n","import { useEffect, useRef } from \"react\";\n\ninterface BufferCharacter {\n time: number;\n char: string;\n}\n\ninterface Buffer {\n current: Array<BufferCharacter>;\n}\n\ninterface Config {\n /** Time to wait from last character to then trigger an evaluation of the buffer. Defaults to 100ms. */\n timeToEvaluate?: number;\n /** Average time between characters in milliseconds. Used to determine if input is from keyboard or a scanner. Defaults to 50ms.*/\n averageWaitTime?: number;\n /** Character that barcode scanner prefixes input with.*/\n startCharacter?: Array<string>;\n /** Character that barcode scanner suffixes input with. Defaults to [\"Enter\", \"Escape\"].*/\n endCharacter?: Array<string>;\n /** Callback to use on complete scan input.*/\n onComplete: (code: string) => void;\n /** Callback to use on error. */\n onError?: (error: string) => void;\n /** Minimum length a scanned code should be. Defaults to 1.*/\n minLength?: number;\n /** Ignore scan input if this node is focused.*/\n ignoreIfFocusOn?: Node;\n /** Stop propagation on keydown event. Defaults to false.*/\n stopPropagation?: boolean;\n /** Prevent default on keydown event. Defaults to false.*/\n preventDefault?: boolean;\n /** Bind keydown event to this node. Defaults to document (resolved on the client only, so the hook is SSR-safe).*/\n container?: Node;\n /** Indicates if the scanning is enabled. */\n enabled?: boolean;\n}\n\nexport const useScanDetection = ({\n timeToEvaluate = 100,\n averageWaitTime = 50,\n startCharacter = [],\n endCharacter = [\"Enter\", \"Escape\"],\n onComplete,\n onError,\n minLength = 1,\n ignoreIfFocusOn,\n stopPropagation = false,\n preventDefault = false,\n container,\n enabled = true,\n}: Config) => {\n const buffer: Buffer = useRef([]);\n const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const clearBuffer = () => {\n buffer.current = [];\n };\n const evaluateBuffer = () => {\n clearTimeout(timeout.current);\n const sum = buffer.current\n .map(({ time }, k, arr) => (k > 0 ? time - arr[k - 1].time : 0))\n .slice(1)\n .reduce((total, delta) => total + delta, 0);\n const avg = sum / (buffer.current.length - 1);\n\n const code = buffer.current\n .slice(startCharacter.length > 0 ? 1 : 0)\n .filter(({ char }) => char !== \"Shift\" && char !== \"Tab\")\n .map(({ char }) => char)\n .join(\"\");\n\n if (\n avg <= averageWaitTime &&\n buffer.current.slice(startCharacter.length > 0 ? 1 : 0).length >= minLength\n ) {\n onComplete(code);\n } else if (avg <= averageWaitTime) {\n onError?.(code);\n }\n clearBuffer();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!enabled) return;\n\n if (event.currentTarget !== ignoreIfFocusOn) {\n if (endCharacter.includes(event.key)) {\n evaluateBuffer();\n }\n if (\n buffer.current.length > 0 ||\n startCharacter.includes(event.key) ||\n startCharacter.length === 0\n ) {\n clearTimeout(timeout.current);\n timeout.current = setTimeout(evaluateBuffer, timeToEvaluate);\n buffer.current.push({ time: performance.now(), char: event.key });\n }\n }\n if (stopPropagation) {\n event.stopPropagation();\n }\n if (preventDefault) {\n event.preventDefault();\n }\n };\n\n const onKeyDownRef = useRef(onKeyDown);\n onKeyDownRef.current = onKeyDown;\n\n useEffect(() => {\n return () => {\n clearTimeout(timeout.current);\n };\n }, []);\n\n useEffect(() => {\n const target = container ?? document;\n const listener = (event: Event) => onKeyDownRef.current(event as KeyboardEvent);\n target.addEventListener(\"keydown\", listener);\n return () => {\n target.removeEventListener(\"keydown\", listener);\n };\n }, [container]);\n};\n","import MoreVert from \"@mui/icons-material/MoreVert\";\nimport {\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Stack,\n Tooltip,\n} from \"@mui/material\";\nimport type { FC, ReactElement } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useCellContext } from \"~/components/table/context\";\nimport { layoutTableClasses } from \"../../utils\";\n\nexport type RowAction<TData = any> = {\n label: string;\n onClick: (row: TData) => void;\n disabled?: boolean;\n divider?: boolean;\n} & ({ showInMenu?: false; icon: ReactElement } | { showInMenu: true; icon?: ReactElement });\n\nexport const ActionsCell: FC<{ actions: Array<RowAction> }> = ({ actions }) => {\n const cell = useCellContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n const buttons = actions.filter((action) => !action.showInMenu);\n const menuItems = actions.filter((action) => action.showInMenu);\n\n return (\n <Stack\n className={layoutTableClasses.actionsCell}\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: \"center\" }}\n onClick={(event) => event.stopPropagation()}\n onDoubleClick={(event) => event.stopPropagation()}\n >\n {buttons.map((action) => (\n <Tooltip key={action.label} title={action.label}>\n <span>\n <IconButton\n size=\"small\"\n aria-label={action.label}\n disabled={action.disabled}\n onClick={() => action.onClick(cell.row.original)}\n >\n {action.icon}\n </IconButton>\n </span>\n </Tooltip>\n ))}\n\n {menuItems.length > 0 && (\n <>\n <Tooltip title={t(\"Layout.Table.RowActions\")}>\n <IconButton\n size=\"small\"\n aria-label=\"Row actions\"\n aria-haspopup=\"menu\"\n onClick={(event) => setAnchorEl(event.currentTarget)}\n >\n <MoreVert fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={() => setAnchorEl(null)}>\n {menuItems.flatMap((action) => [\n ...(action.divider ? [<Divider key={`${action.label}-divider`} />] : []),\n <MenuItem\n key={action.label}\n disabled={action.disabled}\n onClick={() => {\n action.onClick(cell.row.original);\n setAnchorEl(null);\n }}\n >\n {action.icon && <ListItemIcon>{action.icon}</ListItemIcon>}\n <ListItemText>{action.label}</ListItemText>\n </MenuItem>,\n ])}\n </Menu>\n </>\n )}\n </Stack>\n );\n};\n","import KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport { IconButton } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\nimport { layoutTableClasses } from \"../../utils\";\n\nexport const ExpandCell: FC = () => {\n const { row } = useCellContext();\n\n return (\n <Subscribe source={row.table.atoms.expanded}>\n {() => {\n if (!row.getCanExpand()) return null;\n const expanded = row.getIsExpanded();\n\n return (\n <IconButton\n className={layoutTableClasses.expandButton}\n size=\"small\"\n onClick={(event) => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n aria-label=\"Expand row\"\n aria-expanded={expanded}\n sx={{ ml: row.depth * 2 }}\n >\n {expanded ? (\n <KeyboardArrowDown fontSize=\"small\" />\n ) : (\n <KeyboardArrowRight fontSize=\"small\" />\n )}\n </IconButton>\n );\n }}\n </Subscribe>\n );\n};\n","import KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport { IconButton, Stack, Typography } from \"@mui/material\";\nimport { FlexRender, Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\nimport { layoutTableClasses } from \"../../utils\";\n\nexport const GroupCell: FC = () => {\n const cell = useCellContext();\n const { row } = cell;\n\n return (\n <Stack\n className={layoutTableClasses.groupCell}\n direction=\"row\"\n spacing={0.5}\n sx={{ ml: row.depth * 2, alignItems: \"center\" }}\n >\n <Subscribe source={row.table.atoms.expanded}>\n {() => {\n const expanded = row.getIsExpanded();\n\n return (\n <IconButton\n size=\"small\"\n onClick={(event) => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n aria-label=\"Expand group\"\n aria-expanded={expanded}\n >\n {expanded ? (\n <KeyboardArrowDown fontSize=\"small\" />\n ) : (\n <KeyboardArrowRight fontSize=\"small\" />\n )}\n </IconButton>\n );\n }}\n </Subscribe>\n\n <FlexRender cell={cell} />\n\n <Typography variant=\"caption\" color=\"text.secondary\">\n ({row.subRows.length})\n </Typography>\n </Stack>\n );\n};\n","import PushPin from \"@mui/icons-material/PushPin\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const PinRowCell: FC = () => {\n const { row } = useCellContext();\n\n return (\n <Subscribe source={row.table.atoms.rowPinning}>\n {() => {\n if (!row.getCanPin()) return null;\n const pinned = row.getIsPinned();\n\n return (\n <Tooltip title=\"Pin row\">\n <IconButton\n aria-label=\"Pin row\"\n aria-pressed={!!pinned}\n size=\"small\"\n color={pinned ? \"primary\" : \"default\"}\n onClick={(event) => {\n event.stopPropagation();\n row.pin(pinned ? false : \"top\");\n }}\n >\n <PushPin fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n );\n }}\n </Subscribe>\n );\n};\n","import { Checkbox } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const SelectCell: FC = () => {\n const { row } = useCellContext();\n\n return (\n <Subscribe source={row.table.atoms.rowSelection}>\n {() =>\n row.getCanSelect() ? (\n <Checkbox\n size=\"small\"\n checked={row.getIsSelected()}\n indeterminate={!row.getIsSelected() && row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n onClick={(event) => event.stopPropagation()}\n slotProps={{ input: { \"aria-label\": \"Select row\" } }}\n />\n ) : null\n }\n </Subscribe>\n );\n};\n","import Check from \"@mui/icons-material/Check\";\nimport Close from \"@mui/icons-material/Close\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\n/** Icons are inline-block, so without this they sit on the baseline and read as too high. */\nconst ICON_SX = { verticalAlign: \"middle\" } as const;\n\nexport const BooleanCell: FC = () => {\n const cell = useCellContext<boolean>();\n\n return cell.getValue() ? (\n <Check fontSize=\"small\" color=\"success\" sx={ICON_SX} />\n ) : (\n <Close fontSize=\"small\" color=\"error\" sx={ICON_SX} />\n );\n};\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport dayjs from \"dayjs\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\ndayjs.extend(localizedFormat);\n\nexport const DateCell: FC<TypographyProps & { format?: string }> = ({ format = \"L\", ...props }) => {\n const cell = useCellContext<Date | string>();\n const value = cell.getValue();\n if (!value) return null;\n\n return (\n <Typography variant=\"body2\" noWrap {...props}>\n {dayjs(value).format(format)}\n </Typography>\n );\n};\n","import type { ComponentProps, FC } from \"react\";\nimport { DateCell } from \"~/components/table/cells/formatters/DateCell\";\n\nexport const DateTimeCell: FC<ComponentProps<typeof DateCell>> = ({\n format = \"L LT\",\n ...props\n}) => <DateCell format={format} {...props} />;\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const NumberCell: FC<TypographyProps & { options?: Intl.NumberFormatOptions }> = ({\n options,\n sx,\n ...props\n}) => {\n const cell = useCellContext<number>();\n const value = cell.getValue();\n\n return (\n <Typography\n variant=\"body2\"\n noWrap\n sx={[{ fontVariantNumeric: \"tabular-nums\" }, ...(Array.isArray(sx) ? sx : [sx])]}\n {...props}\n >\n {typeof value === \"number\" && value.toLocaleString(undefined, options)}\n </Typography>\n );\n};\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const ValueCell: FC<TypographyProps> = (props) => {\n const cell = useCellContext<string>();\n const value = cell.renderValue();\n\n return (\n <Typography variant=\"body2\" noWrap {...props}>\n {value}\n </Typography>\n );\n};\n","import type { CreatedFilterFn, FilterFn, Row } from \"@tanstack/react-table\";\nimport {\n constructFilterFn,\n filterFn_arrHas,\n filterFn_empty,\n filterFn_endsWith,\n filterFn_equals,\n filterFn_equalsString,\n filterFn_greaterThan,\n filterFn_greaterThanOrEqualTo,\n filterFn_inDateRange,\n filterFn_includesString,\n filterFn_inNumberRange,\n filterFn_lessThan,\n filterFn_lessThanOrEqualTo,\n filterFn_notEmpty,\n filterFn_startsWith,\n} from \"@tanstack/react-table\";\nimport type { LayoutTableFeatures } from \"~/components/table/context\";\nimport { foldForSearch } from \"~/lib/utils\";\nimport type {\n ExtendedColumnFilter,\n FilterOperator,\n LayoutColumnMeta,\n TableFilterVariant,\n} from \"./types\";\n\ntype AnyRow = Row<LayoutTableFeatures, any>;\ntype AnyFilterFn = FilterFn<LayoutTableFeatures, any>;\n\nconst apply = (fn: AnyFilterFn, row: AnyRow, columnId: string, value: unknown): boolean =>\n fn(row, columnId, fn.resolveFilterValue?.(value) ?? value);\n\nconst ignoreDiacritics = (fn: CreatedFilterFn<any, any>): CreatedFilterFn<any, any> =>\n constructFilterFn({ ...fn, resolveFilterValue: foldForSearch, resolveDataValue: foldForSearch });\n\nconst includesString = ignoreDiacritics(filterFn_includesString);\nconst equalsString = ignoreDiacritics(filterFn_equalsString);\nconst startsWith = ignoreDiacritics(filterFn_startsWith);\nconst endsWith = ignoreDiacritics(filterFn_endsWith);\n\nexport const isFilterActive = (filter: ExtendedColumnFilter): boolean =>\n filter.operator === \"isEmpty\" || filter.operator === \"isNotEmpty\" || !isBlank(filter.value);\n\nconst isBlank = (value: unknown): boolean =>\n value === undefined ||\n value === null ||\n value === \"\" ||\n (Array.isArray(value) && (!value.length || value.every(isBlank)));\n\nconst toTime = (value: unknown): number | null => {\n if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.getTime();\n if (typeof value === \"string\" || typeof value === \"number\") {\n const time = new Date(value).getTime();\n return Number.isNaN(time) ? null : time;\n }\n return null;\n};\n\nconst toDay = (time: number): number => new Date(time).setHours(0, 0, 0, 0);\n\nconst compareDates = (\n row: AnyRow,\n columnId: string,\n value: unknown,\n operator: FilterOperator,\n): boolean | undefined => {\n const rowTime = toTime(row.getValue(columnId));\n const filterTime = toTime(value);\n if (rowTime === null || filterTime === null) return undefined;\n\n switch (operator) {\n case \"equals\":\n return toDay(rowTime) === toDay(filterTime);\n case \"greaterThan\":\n return rowTime > filterTime;\n case \"greaterThanOrEqualTo\":\n return rowTime >= filterTime;\n case \"lessThan\":\n return rowTime < filterTime;\n case \"lessThanOrEqualTo\":\n return rowTime <= filterTime;\n default:\n return undefined;\n }\n};\n\nconst daysFromToday = (row: AnyRow, columnId: string): number | null => {\n const rowTime = toTime(row.getValue(columnId));\n if (rowTime === null) return null;\n\n return Math.floor((toDay(rowTime) - toDay(Date.now())) / 86_400_000);\n};\n\nconst isRelativeToToday = (row: AnyRow, columnId: string, value: unknown): boolean => {\n const diff = daysFromToday(row, columnId);\n if (diff === null) return false;\n\n if (Array.isArray(value)) {\n const [min, max] = value.map(Number);\n return (Number.isNaN(min) || diff >= min) && (Number.isNaN(max) || diff <= max);\n }\n\n const days = Number(value);\n return !Number.isNaN(days) && diff === days;\n};\n\nconst equals = (\n row: AnyRow,\n columnId: string,\n value: unknown,\n variant: TableFilterVariant,\n): boolean => {\n if (Array.isArray(value)) return apply(filterFn_arrHas, row, columnId, value);\n if (variant === \"date\") return compareDates(row, columnId, value, \"equals\") ?? false;\n\n return apply(filterFn_equals, row, columnId, value);\n};\n\nconst test = (\n row: AnyRow,\n columnId: string,\n operator: FilterOperator,\n value: unknown,\n variant: TableFilterVariant,\n): boolean => {\n switch (operator) {\n case \"includesString\":\n return apply(includesString, row, columnId, value);\n case \"notIncludesString\":\n return !apply(includesString, row, columnId, value);\n case \"equalsString\":\n return apply(equalsString, row, columnId, value);\n case \"notEqualsString\":\n return !apply(equalsString, row, columnId, value);\n case \"startsWith\":\n return apply(startsWith, row, columnId, value);\n case \"endsWith\":\n return apply(endsWith, row, columnId, value);\n case \"isEmpty\":\n return filterFn_empty(row, columnId, true);\n case \"isNotEmpty\":\n return filterFn_notEmpty(row, columnId, true);\n case \"equals\":\n return equals(row, columnId, value, variant);\n case \"notEquals\":\n return !equals(row, columnId, value, variant);\n case \"greaterThan\":\n case \"greaterThanOrEqualTo\":\n case \"lessThan\":\n case \"lessThanOrEqualTo\": {\n if (variant === \"date\") return compareDates(row, columnId, value, operator) ?? false;\n\n const fn = {\n greaterThan: filterFn_greaterThan,\n greaterThanOrEqualTo: filterFn_greaterThanOrEqualTo,\n lessThan: filterFn_lessThan,\n lessThanOrEqualTo: filterFn_lessThanOrEqualTo,\n }[operator];\n\n return apply(fn, row, columnId, value);\n }\n case \"inRange\":\n return apply(\n variant === \"date\" ? filterFn_inDateRange : filterFn_inNumberRange,\n row,\n columnId,\n Array.isArray(value) ? value : [value, value],\n );\n case \"isRelativeToToday\":\n return isRelativeToToday(row, columnId, value);\n }\n};\n\nexport const dynamicFilterFn: FilterFn<LayoutTableFeatures, any> = (row, columnId) => {\n const filters = (row.table.store.state.columnFilters as Array<ExtendedColumnFilter>).filter(\n (filter) => filter.id === columnId,\n );\n if (!filters.length) return true;\n\n const variant =\n (row.table.getColumn(columnId)?.columnDef.meta as LayoutColumnMeta | undefined)?.variant ??\n \"text\";\n\n const results = filters\n .filter(isFilterActive)\n .map((filter) =>\n test(row, columnId, filter.operator ?? \"includesString\", filter.value, variant),\n );\n\n if (!results.length) return true;\n\n return (filters[0].joinOperator ?? \"and\") === \"and\"\n ? results.every(Boolean)\n : results.some(Boolean);\n};\n\ndynamicFilterFn.autoRemove = () => false;\n\nexport const globalFilterFn = includesString;\n\nconst TEXT_OPERATORS: Array<FilterOperator> = [\n \"includesString\",\n \"notIncludesString\",\n \"startsWith\",\n \"endsWith\",\n \"equalsString\",\n \"notEqualsString\",\n \"isEmpty\",\n \"isNotEmpty\",\n];\n\nconst NUMBER_OPERATORS: Array<FilterOperator> = [\n \"equals\",\n \"notEquals\",\n \"lessThan\",\n \"lessThanOrEqualTo\",\n \"greaterThan\",\n \"greaterThanOrEqualTo\",\n \"inRange\",\n];\n\nconst DATE_OPERATORS: Array<FilterOperator> = [\n \"equals\",\n \"notEquals\",\n \"lessThan\",\n \"lessThanOrEqualTo\",\n \"greaterThan\",\n \"greaterThanOrEqualTo\",\n \"inRange\",\n \"isRelativeToToday\",\n \"isEmpty\",\n \"isNotEmpty\",\n];\n\nconst CHOICE_OPERATORS: Array<FilterOperator> = [\"equals\", \"notEquals\", \"isEmpty\", \"isNotEmpty\"];\n\nexport const getFilterOperators = (variant: TableFilterVariant): Array<FilterOperator> => {\n switch (variant) {\n case \"number\":\n return NUMBER_OPERATORS;\n case \"date\":\n return DATE_OPERATORS;\n case \"boolean\":\n case \"select\":\n case \"multi-select\":\n return CHOICE_OPERATORS;\n default:\n return TEXT_OPERATORS;\n }\n};\n","import { Typography } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { formatValue } from \"../formatValue\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { layoutTableClasses } from \"../utils\";\n\nexport const AggregationFooter: FC<{\n prefix?: string;\n options?: Intl.NumberFormatOptions;\n}> = ({ prefix = \"\", options }) => {\n const { column } = useHeaderContext();\n\n return (\n <Subscribe source={column.table.atoms.columnFilters}>\n {() => {\n const value = formatValue(\n column.getAggregationValue({ rows: column.table.getFilteredRowModel().rows }) as unknown,\n );\n if (!value) return null;\n\n const numeric = Number(value);\n\n return (\n <Typography\n className={layoutTableClasses.aggregationValue}\n variant=\"body2\"\n noWrap\n sx={{ fontWeight: 700 }}\n >\n {prefix}\n {Number.isFinite(numeric) ? numeric.toLocaleString(undefined, options) : value}\n </Typography>\n );\n }}\n </Subscribe>\n );\n};\n","import ArrowDownward from \"@mui/icons-material/ArrowDownward\";\nimport { IconButton } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const ExpandAllCell: FC = () => {\n const header = useHeaderContext();\n const table = header.table;\n\n return (\n <Subscribe source={table.atoms.expanded}>\n {() => {\n if (!table.getCanSomeRowsExpand()) return null;\n\n return (\n <IconButton\n size=\"small\"\n onClick={table.getToggleAllRowsExpandedHandler()}\n aria-label=\"Expand all rows\"\n aria-expanded={table.getIsAllRowsExpanded()}\n >\n <ArrowDownward\n fontSize=\"small\"\n sx={{\n transition: \"transform 150ms\",\n transform: table.getIsAllRowsExpanded() ? \"rotate(0deg)\" : \"rotate(-90deg)\",\n }}\n />\n </IconButton>\n );\n }}\n </Subscribe>\n );\n};\n","import ArrowBack from \"@mui/icons-material/ArrowBack\";\nimport ArrowDownward from \"@mui/icons-material/ArrowDownward\";\nimport ArrowForward from \"@mui/icons-material/ArrowForward\";\nimport ArrowUpward from \"@mui/icons-material/ArrowUpward\";\nimport Clear from \"@mui/icons-material/Clear\";\nimport MoreVert from \"@mui/icons-material/MoreVert\";\nimport PushPin from \"@mui/icons-material/PushPin\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\nimport Workspaces from \"@mui/icons-material/Workspaces\";\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n} from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { columnLabel, hasColumnLabel, layoutTableClasses, moveColumn } from \"../utils\";\n\nexport const HeaderMenu: FC<{ disableGrouping?: boolean }> = ({ disableGrouping = false }) => {\n const header = useHeaderContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const { column } = header;\n\n const close = () => setAnchorEl(null);\n const run = (action: () => void) => () => {\n action();\n close();\n };\n\n if (!hasColumnLabel(column)) return null;\n\n return (\n <Subscribe source={column.table.store} selector={(state) => state}>\n {() => {\n const canSort = column.getCanSort();\n const canPin = column.getCanPin();\n const canGroup = !disableGrouping && column.getCanGroup();\n const canHide = column.getCanHide();\n\n if (!canSort && !canPin && !canGroup && !canHide) return null;\n\n const sorted = column.getIsSorted();\n const pinned = column.getIsPinned();\n const grouped = column.getIsGrouped();\n const index = column.getIndex();\n const leafCount = column.table.getVisibleLeafColumns().length;\n\n return (\n <Box\n className={layoutTableClasses.menuIcon}\n sx={{\n display: \"flex\",\n flexShrink: 0,\n mr: \"-5px\",\n overflow: \"hidden\",\n width: anchorEl ? \"auto\" : 0,\n \".MuiTableCell-root:hover &\": { width: \"auto\" },\n \"&:focus-within\": { width: \"auto\" },\n \"@media (hover: none)\": { width: \"auto\" },\n }}\n >\n <IconButton\n size=\"small\"\n onClick={(event) => setAnchorEl(event.currentTarget)}\n aria-label={`Column menu: ${columnLabel(column)}`}\n aria-haspopup=\"menu\"\n >\n <MoreVert fontSize=\"small\" />\n </IconButton>\n\n <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={close}>\n {/* Sorting */}\n {canSort && sorted !== \"asc\" && (\n <MenuItem onClick={run(() => column.toggleSorting(false, true))}>\n <ListItemIcon>\n <ArrowUpward fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.SortAscending\")}</ListItemText>\n </MenuItem>\n )}\n {canSort && sorted !== \"desc\" && (\n <MenuItem onClick={run(() => column.toggleSorting(true, true))}>\n <ListItemIcon>\n <ArrowDownward fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.SortDescending\")}</ListItemText>\n </MenuItem>\n )}\n {canSort && sorted !== false && (\n <MenuItem onClick={run(() => column.clearSorting())}>\n <ListItemIcon>\n <Clear fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.ClearSort\")}</ListItemText>\n </MenuItem>\n )}\n\n {/* Pinning */}\n {canPin && <Divider />}\n {canPin &&\n ([\"start\", \"end\"] as const).map((position) => (\n <MenuItem\n key={position}\n selected={pinned === position}\n onClick={run(() => column.pin(pinned === position ? false : position))}\n >\n <ListItemIcon>\n <PushPin fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>\n {pinned === position\n ? t(\"Layout.Table.Unpin\")\n : position === \"start\"\n ? t(\"Layout.Table.PinStart\")\n : t(\"Layout.Table.PinEnd\")}\n </ListItemText>\n </MenuItem>\n ))}\n\n {/* Reordering */}\n <Divider />\n <MenuItem disabled={index <= 0} onClick={run(() => moveColumn(column, -1))}>\n <ListItemIcon>\n <ArrowBack fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.MoveLeft\")}</ListItemText>\n </MenuItem>\n <MenuItem\n disabled={index >= leafCount - 1}\n onClick={run(() => moveColumn(column, 1))}\n >\n <ListItemIcon>\n <ArrowForward fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.MoveRight\")}</ListItemText>\n </MenuItem>\n\n {/* Grouping */}\n {canGroup && <Divider />}\n {canGroup && (\n <MenuItem onClick={run(() => column.toggleGrouping())}>\n <ListItemIcon>\n <Workspaces fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>\n {grouped ? t(\"Layout.Table.Ungroup\") : t(\"Layout.Table.GroupBy\")}\n </ListItemText>\n </MenuItem>\n )}\n\n {/* Visibility */}\n {canHide && <Divider />}\n {canHide && (\n <MenuItem onClick={run(() => column.toggleVisibility(false))}>\n <ListItemIcon>\n <VisibilityOff fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.HideColumn\")}</ListItemText>\n </MenuItem>\n )}\n </Menu>\n </Box>\n );\n }}\n </Subscribe>\n );\n};\n","import type { SxProps, Theme } from \"@mui/material\";\nimport { Box } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, MouseEvent, TouchEvent } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { classNames, columnFlex, layoutTableClasses } from \"../utils\";\n\nconst BAR_HEIGHT = 24;\nconst TARGET_SIZE = 10;\n\nconst bar = (accent: boolean) =>\n ({\n content: '\"\"',\n position: \"absolute\",\n insetInlineEnd: 0,\n top: `calc(50% - ${BAR_HEIGHT / 2}px)`,\n width: accent ? \"3px\" : \"1px\",\n height: BAR_HEIGHT,\n borderRadius: accent ? \"1.5px\" : \"0.5px\",\n bgcolor: accent ? \"primary.dark\" : \"divider\",\n transition: (theme: Theme) => theme.transitions.create([\"width\", \"background-color\"]),\n }) as const;\n\n// The header cell clips its overflow, so the target stays inside the cell.\nconst base: SxProps<Theme> = {\n position: \"absolute\",\n insetBlock: 0,\n insetInlineEnd: 0,\n width: TARGET_SIZE,\n};\n\nexport const HeaderResizeHandle: FC = () => {\n const header = useHeaderContext();\n const { column } = header;\n\n // A static bar only separates columns, so there is none after the last one.\n if (!column.getCanResize())\n return column.getIsLastColumn() ? null : (\n <Box\n className={layoutTableClasses.columnSeparator}\n sx={{ ...base, \"&::after\": bar(false) }}\n />\n );\n\n const resize = header.getResizeHandler();\n\n // A flex column renders wider or narrower than its size. Fix it at the rendered width first,\n // so the drag starts from where the edge actually is instead of jumping back.\n const handler = (event: MouseEvent<HTMLElement> | TouchEvent<HTMLElement>) => {\n const width = event.currentTarget.parentElement?.offsetWidth;\n if (columnFlex(column) && width)\n column.table.setColumnSizing((old) => ({ ...old, [column.id]: width }));\n resize(event);\n };\n\n return (\n <Subscribe source={column.table.atoms.columnResizing}>\n {() => (\n <Box\n className={classNames(\n layoutTableClasses.columnSeparator,\n layoutTableClasses[\"columnSeparator--resizable\"],\n column.getIsResizing() && layoutTableClasses[\"columnSeparator--resizing\"],\n )}\n role=\"separator\"\n aria-orientation=\"vertical\"\n onMouseDown={handler}\n onTouchStart={handler}\n onDoubleClick={() => column.resetSize()}\n onClick={(event) => event.stopPropagation()}\n sx={{\n ...base,\n cursor: \"col-resize\",\n touchAction: \"none\",\n userSelect: \"none\",\n \"&::after\": bar(column.getIsResizing()),\n \"&:hover::after\": bar(true),\n }}\n />\n )}\n </Subscribe>\n );\n};\n","import { Box, TableSortLabel } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, ReactNode } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { layoutTableClasses } from \"../utils\";\n\nexport const HeaderSortLabel: FC<{ children: ReactNode }> = ({ children }) => {\n const { column } = useHeaderContext();\n\n if (!column.getCanSort()) return children;\n\n return (\n <Subscribe source={column.table.atoms.sorting}>\n {(sorting) => {\n const direction = column.getIsSorted();\n const sortIndex = sorting.length > 1 ? column.getSortIndex() : -1;\n\n return (\n <TableSortLabel\n className={layoutTableClasses.sortLabel}\n active={direction !== false}\n direction={direction === false ? \"asc\" : direction}\n onClick={column.getToggleSortingHandler()}\n >\n {children}\n {sortIndex > -1 && (\n <Box\n component=\"span\"\n className={layoutTableClasses.sortIndex}\n sx={{ ml: 0.5, fontSize: 11, opacity: 0.7 }}\n >\n {sortIndex + 1}\n </Box>\n )}\n </TableSortLabel>\n );\n }}\n </Subscribe>\n );\n};\n","import { Checkbox } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const SelectAllCell: FC<{ scope?: \"page\" | \"all\" }> = ({ scope = \"page\" }) => {\n const header = useHeaderContext();\n const table = header.table;\n\n return (\n <Subscribe source={table.atoms.rowSelection}>\n {() => {\n const checked =\n scope === \"page\" ? table.getIsAllPageRowsSelected() : table.getIsAllRowsSelected();\n const indeterminate =\n scope === \"page\" ? table.getIsSomePageRowsSelected() : table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n size=\"small\"\n checked={checked}\n indeterminate={!checked && indeterminate}\n onChange={\n scope === \"page\"\n ? table.getToggleAllPageRowsSelectedHandler()\n : table.getToggleAllRowsSelectedHandler()\n }\n slotProps={{ input: { \"aria-label\": \"Select all rows\" } }}\n />\n );\n }}\n </Subscribe>\n );\n};\n","import ViewColumn from \"@mui/icons-material/ViewColumn\";\nimport { Box, Checkbox, FormControlLabel, IconButton, Popover, Tooltip } from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { columnLabel, hasColumnLabel, layoutTableClasses, shortcutLabel } from \"../utils\";\n\nexport const ColumnsPanel: FC = () => {\n const table = useTableContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const columns = table\n .getAllLeafColumns()\n .filter((column) => hasColumnLabel(column) && column.getCanHide());\n\n useHotkey(\"Alt+C\", () => setAnchorEl((current) => (current ? null : buttonRef.current)), {\n enabled: columns.length > 0,\n });\n\n if (!columns.length) return null;\n\n return (\n <>\n <Tooltip title={shortcutLabel(t(\"Layout.Table.Columns\"), \"Alt+C\")}>\n <IconButton\n ref={buttonRef}\n className={layoutTableClasses.columnsButton}\n size=\"small\"\n onClick={(event) => setAnchorEl(event.currentTarget)}\n >\n <ViewColumn fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Popover\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n slotProps={{\n paper: {\n className: layoutTableClasses.columnsPanel,\n sx: { maxWidth: \"calc(100vw - 16px)\" },\n },\n }}\n >\n <Subscribe source={table.atoms.columnVisibility}>\n {() => (\n <>\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n px: 1.5,\n py: 1,\n maxHeight: 300,\n minWidth: 240,\n overflow: \"auto\",\n }}\n >\n {columns.map((column) => (\n <FormControlLabel\n key={column.id}\n label={columnLabel(column)}\n slotProps={{ typography: { variant: \"body2\", noWrap: true } }}\n control={\n <Checkbox\n size=\"small\"\n checked={column.getIsVisible()}\n onChange={column.getToggleVisibilityHandler()}\n />\n }\n />\n ))}\n </Box>\n\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n p: 1.5,\n borderTop: 1,\n borderColor: \"divider\",\n }}\n >\n <FormControlLabel\n label={t(\"Layout.Table.ShowHideAll\")}\n slotProps={{ typography: { variant: \"body2\", noWrap: true } }}\n control={\n <Checkbox\n size=\"small\"\n checked={table.getIsAllColumnsVisible()}\n indeterminate={\n table.getIsSomeColumnsVisible() && !table.getIsAllColumnsVisible()\n }\n onChange={table.getToggleAllColumnsVisibilityHandler()}\n />\n }\n />\n </Box>\n </>\n )}\n </Subscribe>\n </Popover>\n </>\n );\n};\n","import { Autocomplete, MenuItem, Stack, TextField, Typography } from \"@mui/material\";\nimport { useDebouncedCallback } from \"@tanstack/react-pacer/debouncer\";\nimport type { Column, RowData } from \"@tanstack/react-table\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { LayoutTableFeatures } from \"~/components/table/context\";\nimport type { ExtendedColumnFilter, LayoutColumnMeta, TableFilterOption } from \"./types\";\nimport { formatValue } from \"./formatValue\";\n\ntype FilterColumn<TData extends RowData> = Column<LayoutTableFeatures, TData, unknown>;\n\ntype ColumnFilterFieldProps<TData extends RowData> = {\n column: FilterColumn<TData>;\n filter: ExtendedColumnFilter;\n onChange: (value: unknown) => void;\n};\n\nconst filterMeta = <TData extends RowData>(column: FilterColumn<TData>): LayoutColumnMeta =>\n (column.columnDef.meta as LayoutColumnMeta | undefined) ?? {};\n\nconst resolveOptions = <TData extends RowData>(\n column: FilterColumn<TData>,\n): Array<TableFilterOption> => {\n const declared = filterMeta(column).options;\n if (declared) return declared;\n\n return Array.from(column.getFacetedUniqueValues().keys())\n .map((value) => ({ label: formatValue(value), value: formatValue(value) }))\n .filter((option) => option.value !== \"\")\n .sort((a, b) => a.label.localeCompare(b.label));\n};\n\nconst toDateInputValue = (value: unknown): string => {\n if (!(value instanceof Date || typeof value === \"string\" || typeof value === \"number\")) return \"\";\n\n const date = value instanceof Date ? value : new Date(value);\n if (Number.isNaN(date.getTime())) return \"\";\n\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, \"0\")}-${String(date.getDate()).padStart(2, \"0\")}`;\n};\n\nconst fromDateInputValue = (raw: string): string | undefined =>\n raw ? new Date(`${raw}T00:00:00`).toISOString() : undefined;\n\nconst toNumber = (raw: string): number | \"\" => (raw === \"\" ? \"\" : Number(raw));\n\nconst pair = (value: unknown): [unknown, unknown] =>\n Array.isArray(value) ? [value[0], value[1]] : [\"\", \"\"];\n\nexport function ColumnFilterField<TData extends RowData>({\n column,\n filter,\n onChange,\n}: ColumnFilterFieldProps<TData>) {\n const { t } = useTranslation();\n const variant = filterMeta(column).variant ?? \"text\";\n const operator = filter.operator ?? \"includesString\";\n const shared = { size: \"small\" as const, fullWidth: true, label: t(\"Layout.Table.Value\") };\n\n const [value, setValue] = useState(filter.value);\n const commit = useDebouncedCallback(onChange, { wait: 300 });\n const change = (next: unknown) => {\n setValue(next);\n commit(next);\n };\n\n if (operator === \"isEmpty\" || operator === \"isNotEmpty\") {\n return (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {t(\"Layout.Table.NoValueRequired\")}\n </Typography>\n );\n }\n\n if (operator === \"inRange\") {\n const [from, to] = pair(value);\n const isDate = variant === \"date\";\n\n return (\n <Stack direction=\"row\" spacing={1}>\n <TextField\n {...shared}\n type={isDate ? \"date\" : \"number\"}\n label={t(\"Layout.Table.From\")}\n value={isDate ? toDateInputValue(from) : ((from as number | \"\" | undefined) ?? \"\")}\n onChange={(event) =>\n change([\n isDate ? fromDateInputValue(event.target.value) : toNumber(event.target.value),\n to,\n ])\n }\n slotProps={{ inputLabel: { shrink: true } }}\n />\n <TextField\n {...shared}\n type={isDate ? \"date\" : \"number\"}\n label={t(\"Layout.Table.To\")}\n value={isDate ? toDateInputValue(to) : ((to as number | \"\" | undefined) ?? \"\")}\n onChange={(event) =>\n change([\n from,\n isDate ? fromDateInputValue(event.target.value) : toNumber(event.target.value),\n ])\n }\n slotProps={{ inputLabel: { shrink: true } }}\n />\n </Stack>\n );\n }\n\n if (operator === \"isRelativeToToday\") {\n return (\n <TextField\n {...shared}\n type=\"number\"\n label={t(\"Layout.Table.DaysFromToday\")}\n value={(value as number | \"\" | undefined) ?? \"\"}\n onChange={(event) => change(toNumber(event.target.value))}\n />\n );\n }\n\n if (variant === \"select\" || variant === \"multi-select\") {\n const options = resolveOptions(column);\n const multiple = variant === \"multi-select\";\n const selected = Array.isArray(value) ? (value as Array<string>) : [];\n\n return (\n <Autocomplete\n size=\"small\"\n fullWidth\n multiple={multiple}\n options={options}\n disableCloseOnSelect={multiple}\n value={\n multiple\n ? options.filter((option) => selected.includes(option.value))\n : (options.find((option) => option.value === value) ?? null)\n }\n isOptionEqualToValue={(option, selectedOption) => option.value === selectedOption.value}\n getOptionLabel={(option) => option.label}\n onChange={(_, next) =>\n change(\n Array.isArray(next) ? next.map((option) => option.value) : (next?.value ?? undefined),\n )\n }\n renderInput={(params) => (\n <TextField {...params} size=\"small\" label={t(\"Layout.Table.Value\")} />\n )}\n />\n );\n }\n\n if (variant === \"boolean\") {\n return (\n <TextField\n {...shared}\n select\n value={typeof value === \"boolean\" ? String(value) : \"\"}\n onChange={(event) =>\n change(event.target.value === \"\" ? undefined : event.target.value === \"true\")\n }\n >\n <MenuItem value=\"\">—</MenuItem>\n <MenuItem value=\"true\">✓</MenuItem>\n <MenuItem value=\"false\">✗</MenuItem>\n </TextField>\n );\n }\n\n if (variant === \"date\") {\n return (\n <TextField\n {...shared}\n type=\"date\"\n value={toDateInputValue(value)}\n onChange={(event) => change(fromDateInputValue(event.target.value) ?? \"\")}\n slotProps={{ inputLabel: { shrink: true } }}\n />\n );\n }\n\n return (\n <TextField\n {...shared}\n type={variant === \"number\" ? \"number\" : \"text\"}\n value={(value as string | number | undefined) ?? \"\"}\n onChange={(event) =>\n change(variant === \"number\" ? toNumber(event.target.value) : event.target.value)\n }\n />\n );\n}\n","import Add from \"@mui/icons-material/Add\";\nimport Close from \"@mui/icons-material/Close\";\nimport DeleteForever from \"@mui/icons-material/DeleteForever\";\nimport FilterList from \"@mui/icons-material/FilterList\";\nimport {\n Autocomplete,\n Badge,\n Box,\n Button,\n FormControl,\n IconButton,\n InputLabel,\n MenuItem,\n Popover,\n Select,\n TextField,\n Tooltip,\n} from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { ColumnFilterField } from \"../ColumnFilterField\";\nimport { getFilterOperators, isFilterActive } from \"../filterFns\";\nimport type {\n ExtendedColumnFilter,\n FilterOperator,\n JoinOperator,\n LayoutColumnMeta,\n} from \"../types\";\nimport { columnLabel, layoutTableClasses, shortcutLabel } from \"../utils\";\n\nconst DATE_OPERATOR_LABELS = {\n lessThan: \"Layout.Table.Operators.Date.lessThan\",\n lessThanOrEqualTo: \"Layout.Table.Operators.Date.lessThanOrEqualTo\",\n greaterThan: \"Layout.Table.Operators.Date.greaterThan\",\n greaterThanOrEqualTo: \"Layout.Table.Operators.Date.greaterThanOrEqualTo\",\n} as const;\n\ntype DateOperator = keyof typeof DATE_OPERATOR_LABELS;\n\n/** Slot widths taken from the MUI X `GridFilterForm` inputs. */\nconst LOGIC_WIDTH = 75;\nconst FIELD_WIDTH = 150;\nconst VALUE_WIDTH = 190;\n\nexport const FiltersMenu: FC = () => {\n const table = useTableContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const placeholder = useRef<ExtendedColumnFilter | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const filterableColumns = table.getAllLeafColumns().filter((column) => column.getCanFilter());\n\n const close = () => {\n setAnchorEl(null);\n placeholder.current = null;\n };\n\n useHotkey(\"Control+F\", () => (anchorEl ? close() : setAnchorEl(buttonRef.current)), {\n enabled: filterableColumns.length > 0,\n });\n\n if (!filterableColumns.length) return null;\n\n const setFilters = (filters: Array<ExtendedColumnFilter>) => table.setColumnFilters(filters);\n\n const newFilter = (\n column: (typeof filterableColumns)[number],\n joinOperator: JoinOperator = \"and\",\n ): ExtendedColumnFilter => ({\n id: column.id,\n filterId: crypto.randomUUID(),\n value: \"\",\n operator: getFilterOperators(\n (column.columnDef.meta as LayoutColumnMeta | undefined)?.variant ?? \"text\",\n )[0],\n joinOperator,\n });\n\n return (\n <Subscribe\n source={table.atoms.columnFilters}\n selector={(filters) => filters as Array<ExtendedColumnFilter>}\n >\n {(columnFilters) => {\n if (!columnFilters.length) {\n placeholder.current ??= newFilter(filterableColumns[0]);\n }\n // Editing the placeholder row is what commits it to the model.\n const rows = columnFilters.length\n ? columnFilters\n : placeholder.current\n ? [placeholder.current]\n : [];\n const activeCount = columnFilters.filter(isFilterActive).length;\n\n const update = (filterId: string, patch: Partial<ExtendedColumnFilter>) =>\n setFilters(\n rows.map((filter) =>\n filter.filterId === filterId\n ? { ...filter, ...patch, ...(\"value\" in patch && { value: patch.value ?? \"\" }) }\n : filter,\n ),\n );\n\n const remove = (filterId: string) => {\n const next = rows.filter((filter) => filter.filterId !== filterId);\n placeholder.current = null;\n setFilters(next);\n if (!next.length) close();\n };\n\n const add = () =>\n setFilters([...rows, newFilter(filterableColumns[0], rows[0]?.joinOperator ?? \"and\")]);\n\n return (\n <>\n <Tooltip title={shortcutLabel(t(\"Layout.Table.Filters\"), \"Control+F\")}>\n <IconButton\n ref={buttonRef}\n className={layoutTableClasses.filtersButton}\n size=\"small\"\n color={activeCount ? \"primary\" : \"default\"}\n onClick={(event) => setAnchorEl(event.currentTarget)}\n >\n <Badge badgeContent={activeCount} color=\"primary\" variant=\"dot\">\n <FilterList fontSize=\"small\" />\n </Badge>\n </IconButton>\n </Tooltip>\n\n <Popover\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={close}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n slotProps={{\n paper: {\n className: layoutTableClasses.filterPanel,\n sx: { maxWidth: \"calc(100vw - 16px)\" },\n },\n }}\n >\n {/* Panel content: MUI X `GridPanelContent` metrics. */}\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2.5,\n p: \"20px 12px 16px 8px\",\n maxHeight: 400,\n overflow: \"auto\",\n }}\n >\n {rows.map((filter, index) => {\n const column = table.getColumn(filter.id);\n if (!column || !filter.filterId) return null;\n\n const variant =\n (column.columnDef.meta as LayoutColumnMeta | undefined)?.variant ?? \"text\";\n const operators = getFilterOperators(variant);\n\n return (\n <Box\n key={filter.filterId}\n sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}\n >\n <IconButton\n size=\"small\"\n aria-label=\"Remove filter\"\n sx={{ flexShrink: 0 }}\n onClick={() => remove(filter.filterId!)}\n >\n <Close fontSize=\"small\" />\n </IconButton>\n\n {/* Rendered on every row so the columns stay aligned; only the\n second row may change the operator, matching MUI X. */}\n <FormControl\n size=\"small\"\n sx={{\n width: LOGIC_WIDTH,\n flexShrink: 0,\n visibility: index === 0 ? \"hidden\" : \"visible\",\n }}\n >\n <Select\n disabled={index > 1}\n value={filter.joinOperator ?? \"and\"}\n inputProps={{ \"aria-label\": \"Logic operator\" }}\n onChange={(event) =>\n setFilters(\n rows.map((item) => ({\n ...item,\n joinOperator: event.target.value as JoinOperator,\n })),\n )\n }\n >\n <MenuItem value=\"and\">{t(\"Layout.Table.And\")}</MenuItem>\n <MenuItem value=\"or\">{t(\"Layout.Table.Or\")}</MenuItem>\n </Select>\n </FormControl>\n\n <Autocomplete\n size=\"small\"\n sx={{ width: FIELD_WIDTH, flexShrink: 0 }}\n disableClearable\n options={filterableColumns}\n value={column}\n isOptionEqualToValue={(option, selected) => option.id === selected.id}\n getOptionLabel={(option) => columnLabel(option)}\n onChange={(_, next) =>\n update(filter.filterId!, {\n id: next.id,\n operator: getFilterOperators(\n (next.columnDef.meta as LayoutColumnMeta | undefined)?.variant ??\n \"text\",\n )[0],\n value: \"\",\n })\n }\n renderInput={(params) => (\n <TextField {...params} size=\"small\" label={t(\"Layout.Table.Field\")} />\n )}\n />\n\n <FormControl size=\"small\" sx={{ width: FIELD_WIDTH, flexShrink: 0 }}>\n <InputLabel>{t(\"Layout.Table.Operator\")}</InputLabel>\n <Select\n label={t(\"Layout.Table.Operator\")}\n value={filter.operator ?? operators[0]}\n onChange={(event) =>\n update(filter.filterId!, {\n operator: event.target.value as FilterOperator,\n value: \"\",\n })\n }\n >\n {operators.map((operator) => (\n <MenuItem key={operator} value={operator}>\n {variant === \"date\" && operator in DATE_OPERATOR_LABELS\n ? t(DATE_OPERATOR_LABELS[operator as DateOperator])\n : t(`Layout.Table.Operators.${operator}`)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n\n <Box sx={{ width: VALUE_WIDTH, flexGrow: 1 }}>\n <ColumnFilterField\n key={`${column.id}:${filter.operator}`}\n column={column}\n filter={filter}\n onChange={(value) => update(filter.filterId!, { value })}\n />\n </Box>\n </Box>\n );\n })}\n </Box>\n\n {/* Panel footer: MUI X `GridPanelFooter` metrics. */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: 1,\n p: 1,\n borderTop: 1,\n borderColor: \"divider\",\n }}\n >\n <Button size=\"small\" startIcon={<Add />} onClick={add}>\n {t(\"Layout.Table.AddFilter\")}\n </Button>\n {columnFilters.length > 0 && (\n <Button\n size=\"small\"\n color=\"inherit\"\n startIcon={<DeleteForever />}\n onClick={() => {\n placeholder.current = null;\n table.resetColumnFilters(true);\n }}\n >\n {t(\"Layout.Table.ClearFilters\")}\n </Button>\n )}\n </Box>\n </Popover>\n </>\n );\n }}\n </Subscribe>\n );\n};\n","import Close from \"@mui/icons-material/Close\";\nimport Search from \"@mui/icons-material/Search\";\nimport { Box, IconButton, InputAdornment, TextField, Tooltip, useTheme } from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { layoutTableClasses, shortcutLabel } from \"../utils\";\n\nexport const GlobalFilter: FC<{ defaultExpanded?: boolean; debounce?: number }> = ({\n defaultExpanded,\n debounce = 300,\n}) => {\n const table = useTableContext();\n const { t } = useTranslation();\n const theme = useTheme();\n const inputRef = useRef<HTMLInputElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const [value, setValue] = useState((table.state.globalFilter as string | undefined) ?? \"\");\n const [expanded, setExpanded] = useState(!!defaultExpanded);\n\n // `table` is a new reference after every state change; only a changed value is sent.\n const current = (table.state.globalFilter as string | undefined) ?? \"\";\n useEffect(() => {\n if (value === current) return;\n const id = setTimeout(() => table.setGlobalFilter(value), debounce);\n return () => clearTimeout(id);\n }, [value, current, debounce, table]);\n\n const collapse = () => {\n setValue(\"\");\n flushSync(() => setExpanded(false));\n buttonRef.current?.focus();\n };\n\n const expand = () => {\n flushSync(() => setExpanded(true));\n inputRef.current?.focus();\n };\n\n useHotkey(\"Control+Q\", expand);\n\n return (\n <Box\n className={layoutTableClasses.toolbarQuickFilter}\n sx={{ display: \"grid\", alignItems: \"center\" }}\n >\n <Tooltip title={shortcutLabel(t(\"Layout.Table.Search\"), \"Control+Q\")}>\n <IconButton\n ref={buttonRef}\n size=\"small\"\n aria-label=\"Search\"\n inert={expanded}\n onClick={expand}\n sx={{\n gridArea: \"1 / 1\",\n width: \"min-content\",\n height: \"min-content\",\n zIndex: 1,\n opacity: expanded ? 0 : 1,\n pointerEvents: expanded ? \"none\" : \"auto\",\n transition: theme.transitions.create([\"opacity\"]),\n }}\n >\n <Search fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <TextField\n inputRef={inputRef}\n size=\"small\"\n value={value}\n placeholder={t(\"Layout.Table.Search\")}\n onChange={(event) => setValue(event.target.value)}\n onKeyDown={(event) => event.key === \"Escape\" && collapse()}\n onBlur={(event) =>\n !value &&\n !defaultExpanded &&\n !event.currentTarget.parentElement?.contains(event.relatedTarget) &&\n setExpanded(false)\n }\n inert={!expanded}\n sx={{\n gridArea: \"1 / 1\",\n overflowX: \"clip\",\n width: expanded ? 260 : 40,\n opacity: expanded ? 1 : 0,\n pointerEvents: expanded ? \"auto\" : \"none\",\n transition: theme.transitions.create([\"width\", \"opacity\"]),\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search fontSize=\"small\" />\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n edge=\"end\"\n size=\"small\"\n aria-label=\"Clear search\"\n onClick={collapse}\n sx={{ mr: -0.75 }}\n >\n <Close fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n },\n htmlInput: { \"aria-label\": \"Search\" },\n }}\n />\n </Box>\n );\n};\n","import { Skeleton as MuiSkeleton, TableCell, TableRow } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { hasColumnLabel, layoutTableClasses as classes } from \"../utils\";\n\nexport const Skeleton: FC<{ rowHeight: number }> = ({ rowHeight }) => {\n const table = useTableContext();\n const firstRow = useRef<HTMLTableRowElement>(null);\n const [rowCount, setRowCount] = useState(() => Math.min(table.state.pagination.pageSize, 20));\n\n useEffect(() => {\n const container = firstRow.current?.closest(\".MuiTableContainer-root\");\n if (!container) return;\n\n const measure = () => {\n const spent = [\"thead\", \"tfoot\"].reduce(\n (total, selector) =>\n total + (container.querySelector(selector)?.getBoundingClientRect().height ?? 0),\n 0,\n );\n setRowCount(Math.max(1, Math.floor((container.clientHeight - spent) / rowHeight)));\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n observer.observe(container);\n return () => observer.disconnect();\n }, [rowHeight]);\n\n return (\n <>\n {Array.from({ length: rowCount }, (_, index) => (\n <TableRow\n key={index}\n ref={index === 0 ? firstRow : undefined}\n className={classes.skeletonRow}\n sx={{ height: rowHeight }}\n >\n {table.getVisibleLeafColumns().map((column) =>\n hasColumnLabel(column) ? (\n <TableCell\n key={column.id}\n className={classes.skeletonCell}\n sx={{ py: 0, px: \"10px\" }}\n >\n <MuiSkeleton variant=\"text\" />\n </TableCell>\n ) : (\n <TableCell\n key={column.id}\n className={classes.skeletonCell}\n align=\"center\"\n sx={{ px: 0.5, py: 0 }}\n >\n <MuiSkeleton variant=\"circular\" width={22} height={22} sx={{ mx: \"auto\" }} />\n </TableCell>\n ),\n )}\n <TableCell aria-hidden className={classes.filler} sx={{ p: 0 }} />\n </TableRow>\n ))}\n </>\n );\n};\n","import { Box, Divider, Typography } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { layoutTableClasses } from \"../utils\";\nimport { ColumnsPanel } from \"./ColumnsPanel\";\nimport { FiltersMenu } from \"./FiltersMenu\";\nimport { GlobalFilter } from \"./GlobalFilter\";\n\nexport type TableToolbarProps = {\n title?: ReactNode;\n actions?: ReactNode;\n disableColumnFilter?: boolean;\n disableColumnSelector?: boolean;\n disableSearch?: boolean;\n};\n\n/** Vertical rule with the MUI X toolbar proportions: half height, 4px gutters. */\nconst ToolbarDivider: FC = () => (\n <Divider\n className={layoutTableClasses.toolbarDivider}\n orientation=\"vertical\"\n sx={{ height: \"50%\", alignSelf: \"center\", mx: 0.5 }}\n />\n);\n\nexport const Toolbar: FC<TableToolbarProps> = ({\n title,\n actions,\n disableColumnFilter,\n disableColumnSelector,\n disableSearch,\n}) => {\n const table = useTableContext();\n const { t } = useTranslation();\n\n return (\n <Box\n className={layoutTableClasses.toolbar}\n sx={{\n flexShrink: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"end\",\n minHeight: 52,\n gap: 0.25,\n p: 0.75,\n boxSizing: \"border-box\",\n borderBottom: 1,\n borderColor: \"divider\",\n }}\n >\n {/* Label slot, which doubles as the flexible spacer pushing controls to the end. */}\n <Box\n className={layoutTableClasses.toolbarLabel}\n sx={{ flex: 1, minWidth: 0, display: \"flex\", alignItems: \"center\", gap: 1, mx: 0.5 }}\n >\n {title && (\n <Typography\n className={layoutTableClasses.toolbarTitle}\n variant=\"body1\"\n noWrap\n sx={{ fontWeight: \"bold\" }}\n >\n {title}\n </Typography>\n )}\n\n <Subscribe source={table.atoms.rowSelection}>\n {() => {\n const count = table.getSelectedRowIds().length;\n if (!count) return null;\n\n return (\n <Typography\n className={layoutTableClasses.toolbarSelectedCount}\n variant=\"body2\"\n noWrap\n color=\"primary\"\n >\n {t(\"Layout.Table.SelectedCount\", { count })}\n </Typography>\n );\n }}\n </Subscribe>\n </Box>\n\n {actions}\n {actions && <ToolbarDivider />}\n\n {!disableColumnSelector && <ColumnsPanel />}\n {!disableColumnFilter && <FiltersMenu />}\n\n {!disableSearch && (\n <>\n <ToolbarDivider />\n <GlobalFilter />\n </>\n )}\n </Box>\n );\n};\n","import { createTableHook } from \"@tanstack/react-table\";\nimport { ActionsCell } from \"~/components/table/cells/features/ActionsCell\";\nimport { ExpandCell } from \"~/components/table/cells/features/ExpandCell\";\nimport { GroupCell } from \"~/components/table/cells/features/GroupCell\";\nimport { PinRowCell } from \"~/components/table/cells/features/PinRowCell\";\nimport { SelectCell } from \"~/components/table/cells/features/SelectCell\";\nimport { AggregatedCell } from \"~/components/table/cells/formatters/AggregatedCell\";\nimport { BooleanCell } from \"~/components/table/cells/formatters/BooleanCell\";\nimport { DateCell } from \"~/components/table/cells/formatters/DateCell\";\nimport { DateTimeCell } from \"~/components/table/cells/formatters/DateTimeCell\";\nimport { NumberCell } from \"~/components/table/cells/formatters/NumberCell\";\nimport { ValueCell } from \"~/components/table/cells/formatters/ValueCell\";\nimport { dynamicFilterFn, globalFilterFn } from \"~/components/table/filterFns\";\nimport { AggregationFooter } from \"~/components/table/headers/AggregationFooter\";\nimport { ExpandAllCell } from \"~/components/table/headers/ExpandAllCell\";\nimport { HeaderMenu } from \"~/components/table/headers/HeaderMenu\";\nimport { HeaderResizeHandle } from \"~/components/table/headers/HeaderResizeHandle\";\nimport { HeaderSortLabel } from \"~/components/table/headers/HeaderSortLabel\";\nimport { SelectAllCell } from \"~/components/table/headers/SelectAllCell\";\nimport { ColumnsPanel } from \"~/components/table/table/ColumnsPanel\";\nimport { FiltersMenu } from \"~/components/table/table/FiltersMenu\";\nimport { GlobalFilter } from \"~/components/table/table/GlobalFilter\";\nimport { Pagination } from \"~/components/table/table/Pagination\";\nimport { Skeleton } from \"~/components/table/table/Skeleton\";\nimport { Toolbar } from \"~/components/table/table/Toolbar\";\nimport {\n cellContext,\n headerContext,\n layoutTableFeatures,\n tableContext,\n} from \"~/components/table/context\";\n\n/* The contexts live in `~/components/table/context` so the cell, header and\n table components can read them without importing this module back. */\nexport {\n cellContext,\n headerContext,\n layoutTableFeatures,\n tableContext,\n useCellContext,\n useHeaderContext,\n useTableContext,\n} from \"~/components/table/context\";\nexport type { LayoutTableFeatures } from \"~/components/table/context\";\n\nexport const {\n appFeatures,\n createAppColumnHelper: createLayoutColumnHelper,\n useAppTable: useLayoutTable,\n} = createTableHook({\n features: layoutTableFeatures,\n tableContext,\n cellContext,\n headerContext,\n getRowId: (row) => row.id,\n defaultColumn: {\n filterFn: dynamicFilterFn,\n aggregatedCell: () => <AggregatedCell />,\n },\n globalFilterFn,\n columnResizeMode: \"onChange\",\n isMultiSortEvent: (e) => {\n const { ctrlKey, metaKey, shiftKey } = e as MouseEvent;\n return ctrlKey || metaKey || shiftKey;\n },\n tableComponents: {\n ColumnsPanel,\n FiltersMenu,\n GlobalFilter,\n Pagination,\n Skeleton,\n Toolbar,\n },\n cellComponents: {\n ActionsCell,\n AggregatedCell,\n BooleanCell,\n DateCell,\n DateTimeCell,\n ExpandCell,\n GroupCell,\n NumberCell,\n PinRowCell,\n SelectCell,\n ValueCell,\n },\n headerComponents: {\n AggregationFooter,\n ExpandAllCell,\n HeaderMenu,\n HeaderResizeHandle,\n HeaderSortLabel,\n SelectAllCell,\n },\n});\n\nexport type { RowAction } from \"~/components/table/cells/features/ActionsCell\";\nexport { AggregatedCell } from \"~/components/table/cells/formatters/AggregatedCell\";\nexport { LayoutTable } from \"~/components/table/LayoutTable\";\nexport type { LayoutTableProps } from \"~/components/table/LayoutTable\";\nexport type {\n FilterOperator,\n LayoutColumnMeta,\n TableFilterOption,\n TableFilterVariant,\n} from \"~/components/table/types\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAaW,oBAA8CC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAR;CAAA,IAAAG,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,gBAAA,GAAAQ,qBAAAN;EAG3DC,EAAA,KAAAD;EAAAC,EAAA,KAAAK;EAAAL,EAAA,KAAAH;CAAA,OAAA;EAAAQ,oBAAAL,EAAA;EAAAH,iBAAAG,EAAA;CAAA;CACC,MAAAM,QAAcb,gBAAgB;CAAE,IAAAc;CAAA,IAAAP,EAAA,OAAAM,OAAA;EACYC,KAAAb,eAAeY,KAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAjE,MAAA,EAAAQ,WAAAC,UAAAC,eAA4CH;CAAsB,IAAAI;CAAA,IAAAC;CAAA,IAAAZ,EAAA,OAAAK,kBAAAQ,YAAAb,EAAA,OAAAM,OAAA;EAKpDK,MAAAG,GAAAC,UAAc,CAACV,kBAAiBQ,YAAaP,MAAKU,aAAcD,KAAK;EAChEH,MAAAK,KAAAC,SAAAC,WACbA,WAAW,WAAWd,kBAAiBQ,YAAaP,MAAKU,aAAcD,OAAK;EAACf,EAAA,KAAAK,kBAAAQ;EAAAb,EAAA,KAAAM;EAAAN,EAAA,KAAAW;EAAAX,EAAA,KAAAY;CAAA,OAAA;EAAAD,KAAAX,EAAA;EAAAY,KAAAZ,EAAA;CAAA;CAAA,IAAAoB;CAAA,IAAApB,EAAA,QAAAM,MAAAe,QAAArB,EAAA,QAAAS,YAAAT,EAAA,QAAAU,cAAAV,EAAA,QAAAQ,aAAAR,EAAA,QAAAH,gBAAA;EAIlEuB,MAAAE,eACX,oBAAC,WAAD;GAAU,GACJA;GACE,MAAAhB,MAAKe;GACJ,OAAAb,aAAAC;GACK,YAAAD,aAAAE;GAAuB,GAC/Bb;EAAc,CAAA;EAErBG,EAAA,MAAAM,MAAAe;EAAArB,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAQ;EAAAR,EAAA,MAAAH;EAAAG,EAAA,MAAAoB;CAAA,OAAAA,KAAApB,EAAA;CAAA,IAAAuB;CAAA,IAAAvB,EAAA,QAAAK,qBAAAL,EAAA,QAAAM,MAAAkB,cAAAxB,EAAA,QAAAM,MAAAmB,MAAAV,SAAAf,EAAA,QAAAW,MAAAX,EAAA,QAAAY,MAAAZ,EAAA,QAAAoB,IAAA;EAhBHG,KAAA,oBAAC,cAAD;GACS,OAAAjB,MAAKmB,MAAMV;GACR,UAAAJ;GACK,eAAAC;GAGP,QAAAN,MAAKkB;GAAW,GACpBnB;GACS,aAAAe;EAQZ,CAAA;EACDpB,EAAA,MAAAK;EAAAL,EAAA,MAAAM,MAAAkB;EAAAxB,EAAA,MAAAM,MAAAmB,MAAAV;EAAAf,EAAA,MAAAW;EAAAX,EAAA,MAAAY;EAAAZ,EAAA,MAAAoB;EAAApB,EAAA,MAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,OAjBFuB;AAiBE;;AC3BN,MAAaiB,gBAAsCC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAH;CAAA,IAAAQ;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,OAAA,GAAAQ,SAAAN;EAAmBC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAK;CAAA,OAAA;EAAAR,QAAAG,EAAA;EAAAK,QAAAL,EAAA;CAAA;CACrE,MAAAM,QAAcb,gBAA4C;CAAE,IAAAc;CAAA,IAAAP,EAAA,OAAAM,OAAA;EAChBC,KAAAb,eAAeY,KAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAjE,MAAA,EAAAQ,WAAAC,UAAAC,eAA4CH;CAC5C,MAAAI,YAAkBH,aAAAC;CAClB,MAAAG,WAAiBrB,MAAM;CAOP,MAAAsB,KAAAP,MAAKQ;CACF,MAAAC,KAAAC,QAAQV,MAAKW,MAAMC,KAAM;CAAC,IAAAC;CAAA,IAAAnB,EAAA,OAAAM,OAAA;EACzBa,MAAAC,UAAWd,MAAKe,aAAcD,MAAKE,OAAOC,OAAQ;EAACvB,EAAA,KAAAM;EAAAN,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAIzC,MAAAwB,KAAAb,aAAAc,KAAAA;CACI,MAAAC,KAAAf,YAAAC,WAAAa,KAAAA;CAAgC,IAAAE;CAAA,IAAA3B,EAAA,OAAAwB,MAAAxB,EAAA,OAAA0B,IAAA;EAH7CC,KAAA,EAAAC,OACF;GAAA,gBACWJ;GAAsB,oBAClBE;EACtB,EACF;EAAC1B,EAAA,KAAAwB;EAAAxB,EAAA,KAAA0B;EAAA1B,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA6B;CAAA,IAAA7B,EAAA,QAAAM,MAAAwB,cAAA9B,EAAA,QAAAM,MAAAQ,QAAAd,EAAA,QAAAK,SAAAL,EAAA,QAAAe,MAAAf,EAAA,QAAAmB,MAAAnB,EAAA,QAAA2B,IAAA;EAVHE,KAAA,oBAAC,UAAD;GACQ,MAAAhB;GACG,SAAAE;GACC,UAAAI;GACF,QAAAb,MAAKwB;GACF,WAAAH;GAKV,GACGtB;EAAK,CAAA;EACTL,EAAA,MAAAM,MAAAwB;EAAA9B,EAAA,MAAAM,MAAAQ;EAAAd,EAAA,MAAAK;EAAAL,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;EAAAnB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAEG,MAAA+B,KAAAlC,SAAA;CAAW,IAAAmC;CAAA,IAAAhC,EAAA,QAAA6B,MAAA7B,EAAA,QAAA+B,IAAA;EAhBpBC,MAAA,oBAAC,kBAAD;GAEI,SAAAH;GAcK,OAAAE;EAAW,CAAA;EAClB/B,EAAA,MAAA6B;EAAA7B,EAAA,MAAA+B;EAAA/B,EAAA,MAAAgC;CAAA,OAAAA,MAAAhC,EAAA;CAAA,IAAAiC;CAAA,IAAAjC,EAAA,QAAAY,YAAAZ,EAAA,QAAAU,cAAAV,EAAA,QAAAW,WAAA;EACDsB,MAAAtB,aAAa,oBAAC,gBAAD;GAAoBC,IAAAA;GAAWF,UAAAA;EAAhB,CAAA;EAA4CV,EAAA,MAAAY;EAAAZ,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAiC;CAAA,OAAAA,MAAAjC,EAAA;CAAA,IAAAkC;CAAA,IAAAlC,EAAA,QAAAW,aAAAX,EAAA,QAAAgC,OAAAhC,EAAA,QAAAiC,KAAA;EAnB3EC,MAAA,qBAAC,aAAD;GAAoBvB,OAAAA;GAApB,UAAA,CACEqB,KAkBCC,GAnBS;;EAoBEjC,EAAA,MAAAW;EAAAX,EAAA,MAAAgC;EAAAhC,EAAA,MAAAiC;EAAAjC,EAAA,MAAAkC;CAAA,OAAAA,MAAAlC,EAAA;CAAA,OApBdkC;AAoBc;;AC1BlB,MAAac,kBAA0CC,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CACrD,MAAAK,QAAcb,gBAA0C;CAAE,IAAAc;CAAA,IAAAN,EAAA,OAAAK,OAAA;EACdC,KAAAb,eAAeY,KAAK;EAACL,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAjE,MAAA,EAAAO,WAAAC,UAAAC,eAA4CH;CAAsB,IAAAI;CAAA,IAAAV,EAAA,OAAAK,OAAA;EAMpDK,MAAAC,UAAWN,MAAKO,aAAcD,KAAK;EAACX,EAAA,KAAAK;EAAAL,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAInC,MAAAa,KAAAN,aAAAC;CACK,MAAAM,KAAAP,aAAAE;CAAuB,IAAAM;CAAA,IAAAf,EAAA,OAAAK,MAAAW,cAAAhB,EAAA,OAAAD,MAAAH,kBAAAI,EAAA,OAAAa,MAAAb,EAAA,OAAAc,IAAA;EAH1BC,KAAA;GAAAE,QACDZ,MAAKW;GAAWE,OACjBL;GAAqBJ,YAChBK;GAAuB,GAChCf,MAAKH;EACV;EAACI,EAAA,KAAAK,MAAAW;EAAAhB,EAAA,KAAAD,MAAAH;EAAAI,EAAA,KAAAa;EAAAb,EAAA,KAAAc;EAAAd,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAmB;CAAA,IAAAnB,EAAA,QAAAD,MAAAqB,aAAApB,EAAA,QAAAe,IAAA;EANQI,KAAA;GAAAE,WACEN;GAKV,GACEhB,MAAKqB;EACV;EAACpB,EAAA,MAAAD,MAAAqB;EAAApB,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,QAAAK,MAAAkB,QAAAvB,EAAA,QAAAK,MAAAmB,MAAAb,SAAAX,EAAA,QAAAD,SAAAC,EAAA,QAAAU,MAAAV,EAAA,QAAAmB,IAAA;EAZHG,KAAA,oBAAC,YAAD;GACQ,MAAAjB,MAAKkB;GACJ,OAAAlB,MAAKmB,MAAMb;GACR,UAAAD;GACC,WAAAS;GAQV,GACGpB;EAAK,CAAA;EACTC,EAAA,MAAAK,MAAAkB;EAAAvB,EAAA,MAAAK,MAAAmB,MAAAb;EAAAX,EAAA,MAAAD;EAAAC,EAAA,MAAAU;EAAAV,EAAA,MAAAmB;EAAAnB,EAAA,MAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,OAdFsB;AAcE;;ACnBN,MAAagB,kBAA0CC,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CACrD,MAAAK,QAAcb,gBAA0C;CAAE,IAAAc;CAAA,IAAAN,EAAA,OAAAK,OAAA;EACdC,KAAAb,eAAeY,KAAK;EAACL,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAjE,MAAA,EAAAO,WAAAC,UAAAC,eAA4CH;CAAsB,IAAAI;CAAA,IAAAV,EAAA,OAAAK,OAAA;EAMpDK,MAAAC,UAAWN,MAAKO,aAAcD,KAAK;EAACX,EAAA,KAAAK;EAAAL,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAInC,MAAAa,KAAAN,aAAAC;CACK,MAAAM,KAAAP,aAAAE;CAAuB,IAAAM;CAAA,IAAAf,EAAA,OAAAK,MAAAW,cAAAhB,EAAA,OAAAD,MAAAH,kBAAAI,EAAA,OAAAa,MAAAb,EAAA,OAAAc,IAAA;EAH1BC,KAAA;GAAAE,QACDZ,MAAKW;GAAWE,OACjBL;GAAqBJ,YAChBK;GAAuB,GAChCf,MAAKH;EACV;EAACI,EAAA,KAAAK,MAAAW;EAAAhB,EAAA,KAAAD,MAAAH;EAAAI,EAAA,KAAAa;EAAAb,EAAA,KAAAc;EAAAd,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAmB;CAAA,IAAAnB,EAAA,QAAAD,MAAAqB,aAAApB,EAAA,QAAAe,IAAA;EANQI,KAAA;GAAAE,WACEN;GAKV,GACEhB,MAAKqB;EACV;EAACpB,EAAA,MAAAD,MAAAqB;EAAApB,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,QAAAK,MAAAkB,QAAAvB,EAAA,QAAAK,MAAAmB,MAAAb,SAAAX,EAAA,QAAAD,SAAAC,EAAA,QAAAU,MAAAV,EAAA,QAAAmB,IAAA;EAZHG,KAAA,oBAAC,YAAD;GACQ,MAAAjB,MAAKkB;GACJ,OAAAlB,MAAKmB,MAAMb;GACR,UAAAD;GACC,WAAAS;GAQV,GACGpB;EAAK,CAAA;EACTC,EAAA,MAAAK,MAAAkB;EAAAvB,EAAA,MAAAK,MAAAmB,MAAAb;EAAAX,EAAA,MAAAD;EAAAC,EAAA,MAAAU;EAAAV,EAAA,MAAAmB;EAAAnB,EAAA,MAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,OAdFsB;AAcE;;ACnBN,MAAagB,sBAAkDC,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC7D,MAAAK,QAAcb,gBAA0C;CAAE,IAAAc;CAAA,IAAAN,EAAA,OAAAK,OAAA;EACdC,KAAAb,eAAeY,KAAK;EAACL,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAjE,MAAA,EAAAO,WAAAC,UAAAC,eAA4CH;CAAsB,IAAAI;CAAA,IAAAV,EAAA,OAAAK,OAAA;EAMpDK,MAAAC,UAAWN,MAAKO,aAAcD,KAAK;EAACX,EAAA,KAAAK;EAAAL,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAInC,MAAAa,KAAAN,aAAAC;CACK,MAAAM,KAAAP,aAAAE;CAAuB,IAAAM;CAAA,IAAAf,EAAA,OAAAK,MAAAW,cAAAhB,EAAA,OAAAD,MAAAH,kBAAAI,EAAA,OAAAa,MAAAb,EAAA,OAAAc,IAAA;EAH1BC,KAAA;GAAAE,QACDZ,MAAKW;GAAWE,OACjBL;GAAqBJ,YAChBK;GAAuB,GAChCf,MAAKH;EACV;EAACI,EAAA,KAAAK,MAAAW;EAAAhB,EAAA,KAAAD,MAAAH;EAAAI,EAAA,KAAAa;EAAAb,EAAA,KAAAc;EAAAd,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAmB;CAAA,IAAAnB,EAAA,QAAAD,MAAAqB,aAAApB,EAAA,QAAAe,IAAA;EANQI,KAAA;GAAAE,WACEN;GAKV,GACEhB,MAAKqB;EACV;EAACpB,EAAA,MAAAD,MAAAqB;EAAApB,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,QAAAK,MAAAkB,QAAAvB,EAAA,QAAAK,MAAAmB,MAAAb,SAAAX,EAAA,QAAAD,SAAAC,EAAA,QAAAU,MAAAV,EAAA,QAAAmB,IAAA;EAZHG,KAAA,oBAAC,gBAAD;GACQ,MAAAjB,MAAKkB;GACJ,OAAAlB,MAAKmB,MAAMb;GACR,UAAAD;GACC,WAAAS;GAQV,GACGpB;EAAK,CAAA;EACTC,EAAA,MAAAK,MAAAkB;EAAAvB,EAAA,MAAAK,MAAAmB,MAAAb;EAAAX,EAAA,MAAAD;EAAAC,EAAA,MAAAU;EAAAV,EAAA,MAAAmB;EAAAnB,EAAA,MAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,OAdFsB;AAcE;;ACfN,MAAaiB,mBAA4CC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAH;CAAA,IAAAQ;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,SAAA,GAAAQ,SAAAN;EAAqBC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAK;CAAA,OAAA;EAAAR,UAAAG,EAAA;EAAAK,QAAAL,EAAA;CAAA;CAC7E,MAAAM,QAAcd,gBAA2C;CAAE,IAAAe;CAAA,IAAAP,EAAA,OAAAM,OAAA;EACfC,KAAAd,eAAea,KAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAjE,MAAA,EAAAQ,WAAAC,UAAAC,eAA4CH;CAMjC,MAAAI,KAAAL,MAAKM,MAAMC,SAAX;CAAuB,IAAAC;CAAA,IAAAd,EAAA,OAAAM,OAAA;EACfQ,MAAAC,OAAA;GAAC,MAAA,EAAAC,eAAAD;GAAc,OAAKT,MAAKW,aAAcD,UAAU;EAAC;EAAAhB,EAAA,KAAAM;EAAAN,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAE1D,MAAAe,KAAAP,aAAAC;CACK,MAAAS,KAAAV,aAAAE;CAAuB,IAAAS;CAAA,IAAAnB,EAAA,OAAAM,MAAAc,cAAApB,EAAA,OAAAM,MAAAe,QAAArB,EAAA,QAAAH,WAAAG,EAAA,QAAAK,SAAAL,EAAA,QAAAW,MAAAX,EAAA,QAAAc,MAAAd,EAAA,QAAAe,MAAAf,EAAA,QAAAkB,IAAA;EAPrCC,KAAA,oBAAC,eAAD;GACelC,aAAAA;GACP,MAAAqB,MAAKe;GACJ,OAAAV;GACQ,eAAAG;GACP,QAAAR,MAAKc;GACN,OAAAL;GACK,YAAAG;GAAuB,GAC/Bb;GAAK,GACLR;EAAO,CAAA;EACXG,EAAA,KAAAM,MAAAc;EAAApB,EAAA,KAAAM,MAAAe;EAAArB,EAAA,MAAAH;EAAAG,EAAA,MAAAK;EAAAL,EAAA,MAAAW;EAAAX,EAAA,MAAAc;EAAAd,EAAA,MAAAe;EAAAf,EAAA,MAAAkB;EAAAlB,EAAA,MAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OAVFmB;AAUE;;ACPN,MAAauB,kBAA0CC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAR;CAAA,IAAAI;CAAA,IAAAS;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAP,OAAAI,SAAA,GAAAS,SAAAN;EAA4BC,EAAA,KAAAD;EAAAC,EAAA,KAAAR;EAAAQ,EAAA,KAAAJ;EAAAI,EAAA,KAAAK;CAAA,OAAA;EAAAb,QAAAQ,EAAA;EAAAJ,UAAAI,EAAA;EAAAK,QAAAL,EAAA;CAAA;CAClF,MAAAM,QAAcjB,gBAAoD;CAAE,IAAAkB;CAAA,IAAAP,EAAA,OAAAM,OAAA;EACxBC,KAAAjB,eAAegB,KAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAjE,MAAA,EAAAQ,WAAAC,UAAAC,eAA4CH;CAC5C,MAAAI,YAAkBH,aAAAC;CAClB,MAAAG,WAAiBzB,MAAM;CAAE,IAAA0B;CAAA,IAAAb,EAAA,OAAAR,OAAA;EAIpBqB,KAAArB,SAAS,oBAAC,WAAD;GAAqB,WAAA;GAAUA,UAAAA;EAArB,CAAA;EAAuCQ,EAAA,KAAAR;EAAAQ,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAEnD,MAAAc,KAAAR,MAAKS;CACJ,MAAAC,KAAAV,MAAKW,MAAMxB,SAAX;CAAuB,IAAAyB;CAAA,IAAAlB,EAAA,OAAAM,OAAA;EACpBY,MAAAC,UAAWb,MAAKc,aAAcD,MAAKE,OAAO5B,KAAM;EAACO,EAAA,KAAAM;EAAAN,EAAA,MAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CACnD,MAAAsB,KAAAhB,MAAKiB;CACK,MAAAC,KAAAb,YAAAC,WAAAa,KAAAA;CAAgC,IAAAC;CAAA,IAAA1B,EAAA,QAAAJ,SAAA;EAGjD8B,KAAA9B,QAAO+B,IAAKC,OAOZ;EAAC5B,EAAA,MAAAJ;EAAAI,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA6B;CAAA,IAAA7B,EAAA,QAAAM,MAAAiB,cAAAvB,EAAA,QAAAM,MAAAS,QAAAf,EAAA,QAAAK,SAAAL,EAAA,QAAAgB,MAAAhB,EAAA,QAAAkB,MAAAlB,EAAA,QAAAwB,MAAAxB,EAAA,QAAA0B,IAAA;EAfJG,KAAA,oBAAC,YAAD;GACQ,MAAAf;GACC,OAAAE;GACG,UAAAE;GACF,QAAAI;GACU,oBAAAE;GAAgC,GAC9CnB;GAEHqB,UAAAA;EARQ,CAAA;EAgBE1B,EAAA,MAAAM,MAAAiB;EAAAvB,EAAA,MAAAM,MAAAS;EAAAf,EAAA,MAAAK;EAAAL,EAAA,MAAAgB;EAAAhB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAwB;EAAAxB,EAAA,MAAA0B;EAAA1B,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAAA,IAAA8B;CAAA,IAAA9B,EAAA,QAAAY,YAAAZ,EAAA,QAAAU,cAAAV,EAAA,QAAAW,WAAA;EACZmB,MAAAnB,aAAa,oBAAC,gBAAD;GAAoBC,IAAAA;GAAWF,UAAAA;EAAhB,CAAA;EAA4CV,EAAA,MAAAY;EAAAZ,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAA8B;CAAA,OAAAA,MAAA9B,EAAA;CAAA,IAAA+B;CAAA,IAAA/B,EAAA,QAAAW,aAAAX,EAAA,QAAA8B,OAAA9B,EAAA,QAAAa,MAAAb,EAAA,QAAA6B,IAAA;EAnB3EE,MAAA,qBAAC,aAAD;GAAuB,WAAA;GAAkBpB,OAAAA;GAAzC,UAAA;IACGE;IACDgB;IAiBCC;GAnBS;;EAoBE9B,EAAA,MAAAW;EAAAX,EAAA,MAAA8B;EAAA9B,EAAA,MAAAa;EAAAb,EAAA,MAAA6B;EAAA7B,EAAA,MAAA+B;CAAA,OAAAA,MAAA/B,EAAA;CAAA,OApBd+B;AAoBc;AA3BqC,SAAAH,QAAAI,QAAA;CAAA,OAkB7C,oBAAC,kBAAD;EAES,OAAAA,OAAMvC;EACJ,SAAA,oBAAC,OAAD,CAAM,CAAA;EACR,OAAAuC,OAAMxC;CAAM,GAHdwC,OAAMvC,KAGQ;AACnB;;ACpCZ,MAAauD,cAAkCC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAH;CAAA,IAAAQ;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,OAAA,GAAAQ,SAAAN;EAAmBC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAK;CAAA,OAAA;EAAAR,QAAAG,EAAA;EAAAK,QAAAL,EAAA;CAAA;CACjE,MAAAM,QAAcb,gBAA2C;CAAE,IAAAc;CAAA,IAAAP,EAAA,OAAAM,OAAA;EACfC,KAAAb,eAAeY,KAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAjE,MAAA,EAAAQ,WAAAC,UAAAC,eAA4CH;CAC5C,MAAAI,YAAkBH,aAAAC;CAClB,MAAAG,UAAgBrB,MAAM;CAAE,IAAAsB;CAAA,IAAAb,EAAA,OAAAH,SAAAG,EAAA,OAAAY,SAAA;EAInBC,KAAAhB,SAAS,oBAAC,WAAD;GAAee,IAAAA;GAAUf,UAAAA;EAAf,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAY;EAAAZ,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAG5C,MAAAc,KAAAR,MAAKS,MAAMC,SAAX;CAAsB,IAAAC;CAAA,IAAAjB,EAAA,OAAAM,OAAA;EACnBW,MAAAC,GAAAF,UAAcV,MAAKa,aAAcC,MAAKC,QAASL,KAAwB,IAAfA,MAAK,KAA5BA,KAAuC;EAAChB,EAAA,KAAAM;EAAAN,EAAA,MAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAElE,MAAAsB,KAAAzB,QAAAe,UAAAW,KAAAA;CAA2B,IAAAC;CAAA,IAAAxB,EAAA,QAAAM,MAAAmB,cAAAzB,EAAA,QAAAM,MAAAoB,QAAA1B,EAAA,QAAAK,SAAAL,EAAA,QAAAc,MAAAd,EAAA,QAAAiB,MAAAjB,EAAA,QAAAsB,IAAA;EAL9CE,KAAA,oBAAC,QAAD;GACQ,MAAAlB,MAAKoB;GACJ,OAAAZ;GACG,UAAAG;GACF,QAAAX,MAAKmB;GACI,mBAAAH;GAA2B,GACxCjB;EAAK,CAAA;EACTL,EAAA,MAAAM,MAAAmB;EAAAzB,EAAA,MAAAM,MAAAoB;EAAA1B,EAAA,MAAAK;EAAAL,EAAA,MAAAc;EAAAd,EAAA,MAAAiB;EAAAjB,EAAA,MAAAsB;EAAAtB,EAAA,MAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,QAAAU,cAAAV,EAAA,QAAAW,WAAA;EACDgB,KAAAhB,aAAa,oBAAC,gBAAD,EAAA,UAAiBD,WAAF,CAAA;EAA8BV,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,QAAAW,aAAAX,EAAA,QAAAa,MAAAb,EAAA,QAAAwB,MAAAxB,EAAA,QAAA2B,IAAA;EAV7DC,KAAA,qBAAC,aAAD;GAAoBjB,OAAAA;GAApB,UAAA;IACGE;IACDW;IAQCG;GAVS;;EAWE3B,EAAA,MAAAW;EAAAX,EAAA,MAAAa;EAAAb,EAAA,MAAAwB;EAAAxB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,OAXd4B;AAWc;;ACvBlB,MAAaQ,oBAA8CC,UAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CACzD,MAAAK,OAAaV,eAAe;CAAE,IAAAW;CAAA,IAAAN,EAAA,OAAAK,MAAA;EAEVC,KAAA,OAAAC,UAAA;GAClBA,MAAKC,eAAgB;GACrBD,MAAKE,gBAAiB;GACtB,MAAMJ,KAAIK,aAAc;EAAC;EAC1BV,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAJD,MAAAW,cAAoBL;CAIlB,IAAAM;CAAA,IAAAZ,EAAA,OAAAW,eAAAX,EAAA,OAAAD,OAAA;EAIGa,MAAAC,iBACC,oBAAC,QAAD;GAAiBA,SAAAA;GAAuBF,SAAAA;GAAkB,MAAA;GAAQ,GAAKZ;EAAK,CAAA;EAC7EC,EAAA,KAAAW;EAAAX,EAAA,KAAAD;EAAAC,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,IAAAc;CAAA,IAAAd,EAAA,OAAAK,KAAAU,aAAAf,EAAA,OAAAY,IAAA;EAHHE,KAAA,oBAAA,KAAA,WAAA;GAA0B,UAAAE;GACvBJ,UAAAA;EAGH,CAAA;EAAiBZ,EAAA,KAAAK,KAAAU;EAAAf,EAAA,KAAAY;EAAAZ,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAA,OAJjBc;AAIiB;AAdsC,SAAAE,QAAAC,OAAA;CAAA,OAUlBA,MAAKJ;AAAa;;ACL3D,MAAaoB,cAAkCC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAH;CAAA,IAAAQ;CAAA,IAAAL,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,OAAA,GAAAQ,SAAAN;EAAmBC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAK;CAAA,OAAA;EAAAR,QAAAG,EAAA;EAAAK,QAAAL,EAAA;CAAA;CACjE,MAAAM,QAAcb,gBAA4C;CAAE,IAAAc;CAAA,IAAAP,EAAA,OAAAM,OAAA;EAChBC,KAAAb,eAAeY,KAAK;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAjE,MAAA,EAAAQ,WAAAC,UAAAC,eAA4CH;CAC5C,MAAAI,YAAkBH,aAAAC;CAClB,MAAAG,WAAiBrB,MAAM;CAOP,MAAAsB,KAAAP,MAAKQ;CACF,MAAAC,KAAAC,QAAQV,MAAKW,MAAMC,KAAM;CAAC,IAAAC;CAAA,IAAAnB,EAAA,OAAAM,OAAA;EACzBa,MAAAC,UAAWd,MAAKe,aAAcD,MAAKE,OAAOC,OAAQ;EAACvB,EAAA,KAAAM;EAAAN,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAIzC,MAAAwB,KAAAb,aAAAc,KAAAA;CACI,MAAAC,KAAAf,YAAAC,WAAAa,KAAAA;CAAgC,IAAAE;CAAA,IAAA3B,EAAA,OAAAwB,MAAAxB,EAAA,OAAA0B,IAAA;EAH7CC,KAAA,EAAAC,OACF;GAAA,gBACWJ;GAAsB,oBAClBE;EACtB,EACF;EAAC1B,EAAA,KAAAwB;EAAAxB,EAAA,KAAA0B;EAAA1B,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA6B;CAAA,IAAA7B,EAAA,QAAAM,MAAAwB,cAAA9B,EAAA,QAAAM,MAAAQ,QAAAd,EAAA,QAAAK,SAAAL,EAAA,QAAAe,MAAAf,EAAA,QAAAmB,MAAAnB,EAAA,QAAA2B,IAAA;EAVHE,KAAA,oBAAC,QAAD;GACQ,MAAAhB;GACG,SAAAE;GACC,UAAAI;GACF,QAAAb,MAAKwB;GACF,WAAAH;GAKV,GACGtB;EAAK,CAAA;EACTL,EAAA,MAAAM,MAAAwB;EAAA9B,EAAA,MAAAM,MAAAQ;EAAAd,EAAA,MAAAK;EAAAL,EAAA,MAAAe;EAAAf,EAAA,MAAAmB;EAAAnB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAEG,MAAA+B,KAAAlC,SAAA;CAAW,IAAAmC;CAAA,IAAAhC,EAAA,QAAA6B,MAAA7B,EAAA,QAAA+B,IAAA;EAhBpBC,MAAA,oBAAC,kBAAD;GAEI,SAAAH;GAcK,OAAAE;EAAW,CAAA;EAClB/B,EAAA,MAAA6B;EAAA7B,EAAA,MAAA+B;EAAA/B,EAAA,MAAAgC;CAAA,OAAAA,MAAAhC,EAAA;CAAA,IAAAiC;CAAA,IAAAjC,EAAA,QAAAY,YAAAZ,EAAA,QAAAU,cAAAV,EAAA,QAAAW,WAAA;EACDsB,MAAAtB,aAAa,oBAAC,gBAAD;GAAoBC,IAAAA;GAAWF,UAAAA;EAAhB,CAAA;EAA4CV,EAAA,MAAAY;EAAAZ,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAiC;CAAA,OAAAA,MAAAjC,EAAA;CAAA,IAAAkC;CAAA,IAAAlC,EAAA,QAAAW,aAAAX,EAAA,QAAAgC,OAAAhC,EAAA,QAAAiC,KAAA;EAnB3EC,MAAA,qBAAC,aAAD;GAAoBvB,OAAAA;GAApB,UAAA,CACEqB,KAkBCC,GAnBS;;EAoBEjC,EAAA,MAAAW;EAAAX,EAAA,MAAAgC;EAAAhC,EAAA,MAAAiC;EAAAjC,EAAA,MAAAkC;CAAA,OAAAA,MAAAlC,EAAA;CAAA,OApBdkC;AAoBc;;AC5BlB,MAAaW,iBAAwCC,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CACnD,MAAAK,QAAcZ,gBAAoD;CAAE,IAAAa;CAAA,IAAAN,EAAA,OAAAK,OAAA;EACxBC,KAAAZ,eAAeW,KAAK;EAACL,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAjE,MAAA,EAAAO,WAAAC,UAAAC,eAA4CH;CAKjC,MAAAI,KAAAL,MAAKM,MAAMC,SAAX;CAAuB,IAAAC;CAAA,IAAAb,EAAA,OAAAK,OAAA;EACpBQ,MAAAC,UAAWT,MAAKU,aAAcD,MAAKE,OAAOJ,KAAM;EAACZ,EAAA,KAAAK;EAAAL,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAEpD,MAAAiB,KAAAV,aAAAC;CACK,MAAAU,KAAAX,aAAAE;CAAuB,IAAAU;CAAA,IAAAnB,EAAA,OAAAK,MAAAe,cAAApB,EAAA,OAAAK,MAAAgB,QAAArB,EAAA,OAAAD,SAAAC,EAAA,OAAAU,MAAAV,EAAA,OAAAa,MAAAb,EAAA,QAAAiB,MAAAjB,EAAA,QAAAkB,IAAA;EANrCC,KAAA,oBAAC,WAAD;GACQ,MAAAd,MAAKgB;GACJ,OAAAX;GACG,UAAAG;GACF,QAAAR,MAAKe;GACN,OAAAH;GACK,YAAAC;GAAuB,GAC/BnB;EAAK,CAAA;EACTC,EAAA,KAAAK,MAAAe;EAAApB,EAAA,KAAAK,MAAAgB;EAAArB,EAAA,KAAAD;EAAAC,EAAA,KAAAU;EAAAV,EAAA,KAAAa;EAAAb,EAAA,MAAAiB;EAAAjB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OARFmB;AAQE;;ACXN,MAAa,EAAE4B,cAAcC,iBAAiBC,aAAaC,mBACzD1B,uBAAuB;AAEzB,MAAa,EAAE2B,YAAYC,eAAeC,UAAUC,mBAAmB/B,eAAe;CACpFgC,iBAAiB;EACfT,WAAAA;EACAV,aAAAA;EACAV,cAAAA;EACAE,UAAAA;EACAgB,QAAAA;EACAN,YAAAA;EACAE,QAAAA;EACAV,YAAAA;EACAE,YAAAA;EACAE,gBAAAA;CACF;CACAsB,gBAAgB,EACdd,cAAAA,iBACF;CACAK;CACAE;AACF,CAAC;;ACID,MAAagC,oBAAoB,EAC/Bf,iBAAiB,KACjBC,kBAAkB,IAClBC,iBAAiB,CAAA,GACjBC,eAAe,CAAC,SAAS,QAAQ,GACjCC,YACAE,SACAE,YAAY,GACZC,iBACAE,kBAAkB,OAClBC,iBAAiB,OACjBC,WACAC,UAAU,WACE;CACZ,MAAME,SAAiBxB,OAAO,CAAA,CAAE;CAChC,MAAMyB,UAAUzB,OAAkD4B,KAAAA,CAAS;CAE3E,MAAMC,oBAAoB;EACxBL,OAAOnB,UAAU,CAAA;CACnB;CACA,MAAMyB,uBAAuB;EAC3BC,aAAaN,QAAQpB,OAAO;EAK5B,MAAMmC,MAJMhB,OAAOnB,QAChB4B,KAAK,EAAE/B,QAAQgC,GAAGC,QAASD,IAAI,IAAIhC,OAAOiC,IAAID,IAAI,EAAE,CAAChC,OAAO,CAAE,CAAC,CAC/DkC,MAAM,CAAC,CAAC,CACRC,QAAQC,OAAOC,UAAUD,QAAQC,OAAO,CAC/BP,KAAOR,OAAOnB,QAAQoC,SAAS;EAE3C,MAAM5B,OAAOW,OAAOnB,QACjB+B,MAAM1B,eAAe+B,SAAS,IAAI,IAAI,CAAC,CAAC,CACxCC,QAAQ,EAAEvC,WAAWA,SAAS,WAAWA,SAAS,KAAK,CAAC,CACxD8B,KAAK,EAAE9B,MAAAA,aAAWA,MAAI,CAAC,CACvBwC,KAAK,EAAE;EAEV,IACEH,OAAO/B,mBACPe,OAAOnB,QAAQ+B,MAAM1B,eAAe+B,SAAS,IAAI,IAAI,CAAC,CAAC,CAACA,UAAUzB,WAElEJ,WAAWC,IAAI;OACV,IAAI2B,OAAO/B,iBAChBK,UAAUD,IAAI;EAEhBgB,YAAY;CACd;CAEA,MAAMe,aAAaC,UAAyB;EAC1C,IAAI,CAACvB,SAAS;EAEd,IAAIuB,MAAME,kBAAkB9B,iBAAiB;GAC3C,IAAIN,aAAaqC,SAASH,MAAMI,GAAG,GACjCnB,eAAe;GAEjB,IACEN,OAAOnB,QAAQoC,SAAS,KACxB/B,eAAesC,SAASH,MAAMI,GAAG,KACjCvC,eAAe+B,WAAW,GAC1B;IACAV,aAAaN,QAAQpB,OAAO;IAC5BoB,QAAQpB,UAAUsB,WAAWG,gBAAgBtB,cAAc;IAC3DgB,OAAOnB,QAAQ6C,KAAK;KAAEhD,MAAMiD,YAAYC,IAAI;KAAGjD,MAAM0C,MAAMI;IAAI,CAAC;GAClE;EACF;EACA,IAAI9B,iBACF0B,MAAM1B,gBAAgB;EAExB,IAAIC,gBACFyB,MAAMzB,eAAe;CAEzB;CAEA,MAAMiC,eAAerD,OAAO4C,SAAS;CACrCS,aAAahD,UAAUuC;CAEvB7C,gBAAgB;EACd,aAAa;GACXgC,aAAaN,QAAQpB,OAAO;EAC9B;CACF,GAAG,CAAA,CAAE;CAELN,gBAAgB;EACd,MAAMuD,SAASjC,aAAakC;EAC5B,MAAMC,YAAYX,YAAiBQ,aAAahD,QAAQwC,OAAsB;EAC9ES,OAAOI,iBAAiB,WAAWF,QAAQ;EAC3C,aAAa;GACXF,OAAOK,oBAAoB,WAAWH,QAAQ;EAChD;CACF,GAAG,CAACnC,SAAS,CAAC;AAChB;;ACrGA,MAAa+D,eAAiDG,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAH,YAAAE;CAC7D,MAAAM,OAAapB,eAAe;CAC5B,MAAA,EAAAqB,MAActB,iBAAe;CAC7B,MAAA,CAAAuB,UAAAC,eAAgCzB,SAA6B,IAAI;CAAE,IAAA0B;CAAA,IAAAT,EAAA,OAAAH,WAAAG,EAAA,OAAAO,YAAAP,EAAA,OAAAK,QAAAL,EAAA,OAAAM,GAAA;EAEnE,MAAAI,UAAgBb,QAAOc,OAAQC,OAA8B;EAC7D,MAAAC,YAAkBhB,QAAOc,OAAQG,QAA6B;EAAE,IAAAC;EAAA,IAAAf,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;GAOxDW,KAAA,EAAAC,YAAc,SAAS;GAAChB,EAAA,KAAAe;EAAA,OAAAA,KAAAf,EAAA;EAAA,IAAAiB;EAAA,IAAAjB,EAAA,OAAAK,MAAA;GAIfY,MAAAC,aACX,oBAAC,SAAD;IAAmC,OAAAC,SAAM/B;IACvC,UAAA,oBAAA,QAAA,EAAA,UACE,oBAAC,YAAD;KACO,MAAA;KACO,cAAA+B,SAAM/B;KACR,UAAA+B,SAAM3B;KACP,eAAM2B,SAAM9B,QAASgB,KAAIf,IAAI8B,QAAS;KAE9CD,UAAAA,SAAMxB;IANE,CAAA,EAQN,CAAA;GAVD,GAAMwB,SAAM/B,KAAZ;GAYTY,EAAA,KAAAK;GAAAL,EAAA,KAAAiB;EAAA,OAAAA,KAAAjB,EAAA;EArBHS,KAAA,qBAAC,OAAD;GACa,WAAAvB,mBAAkBmC;GACnB,WAAA;GACD,SAAA;GACL,IAAAN;GACK,SAAAO;GACM,eAAAC;GANjB,UAAA,CAQGb,QAAOc,IAAKP,EAaZ,GAEAJ,UAASY,SAAU,KAAnB,qBAAA,YAAA,EAAA,UAAA,CAEG,oBAAC,SAAD;IAAgB,OAAAnB,EAAE,yBAAyB;IACzC,UAAA,oBAAC,YAAD;KACO,MAAA;KACM,cAAA;KACG,iBAAA;KACL,UAAAoB,YAAWlB,YAAYmB,QAAKC,aAAc;KAEnD,UAAA,oBAAC,UAAD,EAAmB,UAAA,QAAO,CAAA;IANjB,CAAA;GADL,CAAA,GAWR,oBAAC,MAAD;IAAgBrB;IAAgB,MAAA,CAAC,CAACA;IAAmB,eAAMC,YAAY,IAAI;IACxEK,UAAAA,UAASgB,SAASC,aAAY,CAAA,GACzBX,SAAM1B,UAAN,CAAkB,oBAAC,SAAD,CAAuC,GAAzB,GAAG0B,SAAM/B,MAAM,SAAU,CAAI,IAA7D,CAAA,GACJ,qBAAC,UAAD;KAEY,UAAA+B,SAAM3B;KACP,eAAA;MACP2B,SAAM9B,QAASgB,KAAIf,IAAI8B,QAAS;MAChCZ,YAAY,IAAI;KAAC;KALrB,UAAA,CAQGW,SAAMxB,QAAS,oBAAC,cAAD,EAAA,UAAewB,SAAMxB,KAAR,CAAA,GAC7B,oBAAC,cAAD,EAAA,UAAewB,SAAM/B,MAAR,CAAA,CATN;IACF+B,GAAAA,SAAM/B,KADJ,CAUE,CACZ;GAdE,CAAA,CAeE,EAAA,CAAA,CAnDP;;EAsDEY,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAtDRS;AAsDQ;AA/DkD,SAAAG,QAAAO,QAAA;CAAA,OAKjB,CAACA,OAAMzB;AAAW;AALD,SAAAoB,SAAAiB,UAAA;CAAA,OAMfZ,SAAMzB;AAAW;AANF,SAAA4B,SAAAK,OAAA;CAAA,OAcpCA,MAAKK,gBAAiB;AAAC;AAda,SAAAT,OAAAU,SAAA;CAAA,OAe9BN,QAAKK,gBAAiB;AAAC;;AC/BvD,MAAac,mBAAiB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC5B,MAAA,EAAAK,QAAgBR,eAAe;CAAE,IAAAS;CAAA,IAAAN,EAAA,OAAAK,KAAA;EAI5BC,WAAA;GACC,IAAI,CAACD,IAAGE,aAAc,GAAC,OAAS;GAChC,MAAAC,WAAiBH,IAAGI,cAAe;GAAE,OAGnC,oBAAC,YAAD;IACa,WAAAX,mBAAkBY;IACxB,MAAA;IACI,UAAAC,UAAA;KACPA,MAAKC,gBAAiB;KACtBP,IAAGQ,eAAgB;IAAC;IAEX,cAAA;IACIL,iBAAAA;IACX,IAAA,EAAAM,IAAMT,IAAGU,QAAS,EAAE;IAEvBP,UAAAA,WACC,oBAAC,mBAAD,EAA4B,UAAA,QAAO,CAAA,IAEnC,oBAAC,oBAAD,EAA6B,UAAA,QAAO,CAAA;GAd7B,CAAA;EAgBE;EAEhBR,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAgB;CAAA,IAAAhB,EAAA,OAAAK,IAAAY,MAAAC,MAAAV,YAAAR,EAAA,OAAAM,IAAA;EAxBHU,KAAA,oBAAC,WAAD;GAAmB,QAAAX,IAAGY,MAAMC,MAAMV;GAC/BF,UAAAA;EADO,CAAA;EAyBEN,EAAA,KAAAK,IAAAY,MAAAC,MAAAV;EAAAR,EAAA,KAAAM;EAAAN,EAAA,KAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAAA,OAzBZgB;AAyBY;;AC7BhB,MAAac,kBAAgB;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC3B,MAAAK,OAAaR,eAAe;CAC5B,MAAA,EAAAS,QAAgBD;CAOF,MAAAE,KAAAD,IAAGE,QAAS;CAAC,IAAAC;CAAA,IAAAT,EAAA,OAAAO,IAAA;EAAnBE,KAAA;GAAAC,IAAMH;GAAaI,YAAc;EAAS;EAACX,EAAA,KAAAO;EAAAP,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,OAAAM,KAAA;EAG5CM,WAAA;GACC,MAAAC,WAAiBP,IAAGQ,cAAe;GAAE,OAGnC,oBAAC,YAAD;IACO,MAAA;IACI,UAAAC,UAAA;KACPA,MAAKC,gBAAiB;KACtBV,IAAGW,eAAgB;IAAC;IAEX,cAAA;IACIJ,iBAAAA;IAEdA,UAAAA,WACC,oBAAC,mBAAD,EAA4B,UAAA,QAAO,CAAA,IAEnC,oBAAC,oBAAD,EAA6B,UAAA,QAAO,CAAA;GAZ7B,CAAA;EAcE;EAEhBb,EAAA,KAAAM;EAAAN,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,IAAAkB;CAAA,IAAAlB,EAAA,OAAAM,IAAAa,MAAAC,MAAAP,YAAAb,EAAA,OAAAY,IAAA;EArBHM,KAAA,oBAAC,WAAD;GAAmB,QAAAZ,IAAGa,MAAMC,MAAMP;GAC/BD,UAAAA;EADO,CAAA;EAsBEZ,EAAA,KAAAM,IAAAa,MAAAC,MAAAP;EAAAb,EAAA,KAAAY;EAAAZ,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAA,IAAAqB;CAAA,IAAArB,EAAA,OAAAK,MAAA;EAEZgB,KAAA,oBAAC,YAAD,EAAkBhB,KAAI,CAAA;EAAIL,EAAA,KAAAK;EAAAL,EAAA,KAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,QAAAM,IAAAiB,QAAAC,QAAA;EAE1BF,KAAA,qBAAC,YAAD;GAAoB,SAAA;GAAgB,OAAA;GAApC,UAAA;IAAqD;IACjDhB,IAAGiB,QAAQC;IAAQ;GADZ;;EAEExB,EAAA,MAAAM,IAAAiB,QAAAC;EAAAxB,EAAA,MAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,QAAAS,MAAAT,EAAA,QAAAkB,MAAAlB,EAAA,QAAAqB,MAAArB,EAAA,QAAAsB,IAAA;EAlCfG,KAAA,qBAAC,OAAD;GACa,WAAA3B,mBAAkB4B;GACnB,WAAA;GACD,SAAA;GACL,IAAAjB;GAJN,UAAA;IAMES;IAwBAG;IAEAC;GAhCI;;EAmCEtB,EAAA,MAAAS;EAAAT,EAAA,MAAAkB;EAAAlB,EAAA,MAAAqB;EAAArB,EAAA,MAAAsB;EAAAtB,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,OAnCRyB;AAmCQ;;AC1CZ,MAAaS,mBAAiB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC5B,MAAA,EAAAK,QAAgBP,eAAe;CAAE,IAAAQ;CAAA,IAAAN,EAAA,OAAAK,KAAA;EAI5BC,WAAA;GACC,IAAI,CAACD,IAAGE,UAAW,GAAC,OAAS;GAC7B,MAAAC,SAAeH,IAAGI,YAAa;GAAE,OAG/B,oBAAC,SAAD;IAAe,OAAA;IACb,UAAA,oBAAC,YAAD;KACa,cAAA;KACG,gBAAA,CAAC,CAACD;KACX,MAAA;KACE,OAAAA,SAAA,YAAA;KACE,UAAAE,UAAA;MACPA,MAAKC,gBAAiB;MACtBN,IAAGO,IAAKJ,SAAA,QAAA,KAAsB;KAAC;KAGjC,UAAA,oBAAC,SAAD,EAAkB,UAAA,QAAO,CAAA;IAVhB,CAAA;GADL,CAAA;EAaE;EAEbR,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAa;CAAA,IAAAb,EAAA,OAAAK,IAAAS,MAAAC,MAAAC,cAAAhB,EAAA,OAAAM,IAAA;EArBHO,KAAA,oBAAC,WAAD;GAAmB,QAAAR,IAAGS,MAAMC,MAAMC;GAC/BV,UAAAA;EADO,CAAA;EAsBEN,EAAA,KAAAK,IAAAS,MAAAC,MAAAC;EAAAhB,EAAA,KAAAM;EAAAN,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAAA,OAtBZa;AAsBY;;AC3BhB,MAAaS,mBAAiB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC5B,MAAA,EAAAK,QAAgBP,eAAe;CAAE,IAAAQ;CAAA,IAAAN,EAAA,OAAAK,KAAA;EAI5BC,WACCD,IAAGE,aASI,IARL,oBAAC,UAAD;GACO,MAAA;GACI,SAAAF,IAAGG,cAAe;GACZ,eAAA,CAACH,IAAGG,cAAe,KAAKH,IAAGI,kBAAmB;GACnD,UAAAJ,IAAGK,yBAA0B;GAC9B,SAAAC;GACE,WAAA,EAAAC,OAAS,EAAA,cAAgB,aAAa,EAAE;EAAC,CAAA,IAPxD;EASQZ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAa;CAAA,IAAAb,EAAA,OAAAK,IAAAS,MAAAC,MAAAC,gBAAAhB,EAAA,OAAAM,IAAA;EAXZO,KAAA,oBAAC,WAAD;GAAmB,QAAAR,IAAGS,MAAMC,MAAMC;GAC/BV,UAAAA;EADO,CAAA;EAaEN,EAAA,KAAAK,IAAAS,MAAAC,MAAAC;EAAAhB,EAAA,KAAAM;EAAAN,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAAA,OAbZa;AAaY;AAjBc,SAAAF,QAAAM,OAAA;CAAA,OAYEA,MAAKC,gBAAiB;AAAC;;;ACXvD,MAAMO,UAAU,EAAEC,eAAe,SAAS;AAE1C,MAAaE,oBAAkB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC7B,MAAAK,OAAaV,eAAwB;CAAE,IAAAW;CAAA,IAAAN,EAAA,OAAAK,MAAA;EAEhCC,KAAAD,KAAIE,SAIX,IAHE,oBAAC,OAAD;GAAgB,UAAA;GAAc,OAAA;GAAcX,IAAAA;EAAO,CAAA,IAEnD,oBAAC,OAAD;GAAgB,UAAA;GAAc,OAAA;GAAYA,IAAAA;EAAO,CAAA;EAClDI,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAJMM;AAIN;;ACRHK,MAAMI,OAAOH,eAAe;AAE5B,MAAaI,YAAsDE,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAC;CAAA,IAAAN,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAD,QAAAQ,IAAA,GAAAD,SAAAN;EAA0BC,EAAA,KAAAD;EAAAC,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAA;EAAAD,QAAAL,EAAA;EAAAM,KAAAN,EAAA;CAAA;CAAxB,MAAAF,SAAAQ,OAAAC,KAAAA,IAAA,MAAAD;CACpE,MAAAE,OAAab,eAA8B;CAAE,IAAAc;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAd,EAAA,OAAAQ,QAAAR,EAAA,OAAAF,UAAAE,EAAA,OAAAK,OAAA;EAE1BS,KAAAX,OAAIC,IAAJ,6BAAG;EAACW,KAAA;GADvB,MAAAC,QAAcR,KAAIS,SAAU;GAC5B,IAAI,CAACD,OAAK;IAASF,KAAA;IAAA,MAAAC;GAAI;GAGpBN,KAAAlB;GAAmBmB,KAAA;GAAQC,KAAA;GAAWN,KAAAA;GACpCQ,KAAArB,MAAMwB,KAAK,CAAC,CAAAlB,OAAQA,MAAM;EAAC;EAAAE,EAAA,KAAAQ;EAAAR,EAAA,KAAAF;EAAAE,EAAA,KAAAK;EAAAL,EAAA,KAAAS;EAAAT,EAAA,KAAAU;EAAAV,EAAA,KAAAW;EAAAX,EAAA,MAAAY;EAAAZ,EAAA,MAAAa;EAAAb,EAAA,MAAAc;CAAA,OAAA;EAAAL,KAAAT,EAAA;EAAAU,KAAAV,EAAA;EAAAW,KAAAX,EAAA;EAAAY,KAAAZ,EAAA;EAAAa,KAAAb,EAAA;EAAAc,KAAAd,EAAA;CAAA;CAAA,IAAAc,OAAAX,OAAAC,IAAA,6BAAA,GAAA,OAAAU;CAAA,IAAAI;CAAA,IAAAlB,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAAAX,EAAA,QAAAY,MAAAZ,EAAA,QAAAa,IAAA;EAD9BK,KAAA,oBAAC,IAAD;GAAoB,SAAAR;GAAQ,QAAAC;GAAM,GAAKN;GACpCQ,UAAAA;EADQ,CAAA;EAEEb,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAY;EAAAZ,EAAA,MAAAa;EAAAb,EAAA,MAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAA,OAFbkB;AAEa;;ACdjB,MAAaK,gBAAoDC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAC;CAAA,IAAAN,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAQ,QAAAD,IAAA,GAAAD,SAAAN;EAGjEC,EAAA,KAAAD;EAAAC,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAA;EAAAD,QAAAL,EAAA;EAAAM,KAAAN,EAAA;CAAA;CAFC,MAAAO,SAAAD,OAAAE,KAAAA,IAAA,SAAAF;CAAe,IAAAG;CAAA,IAAAT,EAAA,OAAAO,UAAAP,EAAA,OAAAK,OAAA;EAEXI,KAAA,oBAAC,UAAD;GAAkBF;GAAM,GAAMF;EAAK,CAAA;EAAIL,EAAA,KAAAO;EAAAP,EAAA,KAAAK;EAAAL,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAAvCS;AAAuC;;ACD7C,MAAaM,cAA2EI,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAJ;CAAA,IAAAS;CAAA,IAAAC;CAAA,IAAAN,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAH,SAAAU,IAAA,GAAAD,SAAAN;EAIxFC,EAAA,KAAAD;EAAAC,EAAA,KAAAJ;EAAAI,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAA;EAAAV,UAAAI,EAAA;EAAAK,QAAAL,EAAA;EAAAM,KAAAN,EAAA;CAAA;CACC,MAAAO,OAAab,eAAuB;CAAE,IAAAc;CAAA,IAAAR,EAAA,OAAAO,QAAAP,EAAA,OAAAJ,WAAAI,EAAA,OAAAK,SAAAL,EAAA,OAAAM,IAAA;EACtC,MAAAG,QAAcF,KAAIG,SAAU;EAAE,IAAAC;EAAA,IAAAX,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;GAMrBO,KAAA,EAAAC,oBAAsB,eAAe;GAACZ,EAAA,MAAAW;EAAA,OAAAA,KAAAX,EAAA;EAAA,IAAAa;EAAA,IAAAb,EAAA,QAAAM,IAAA;GAAMO,KAAAC,MAAKC,QAAST,EAAc,IAA5BA,KAAA,CAA0BA,EAAE;GAACN,EAAA,MAAAM;GAAAN,EAAA,MAAAa;EAAA,OAAAA,KAAAb,EAAA;EAAA,IAAAgB;EAAA,IAAAhB,EAAA,QAAAa,IAAA;GAA1EG,KAAA,CAACL,IAAsC,GAAME,EAA6B;GAAEb,EAAA,MAAAa;GAAAb,EAAA,MAAAgB;EAAA,OAAAA,KAAAhB,EAAA;EAHlFQ,KAAA,oBAAC,YAAD;GACU,SAAA;GACR,QAAA;GACI,IAAAQ;GAA4E,GAC5EX;GAEH,UAAA,OAAOI,UAAU,YAAYA,MAAKQ,eAAgBC,KAAAA,GAAWtB,OAAO;EAN5D,CAAA;EAOEI,EAAA,KAAAO;EAAAP,EAAA,KAAAJ;EAAAI,EAAA,KAAAK;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAPbQ;AAOa;;AChBjB,MAAagB,aAAiCC,UAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC5C,MAAAK,OAAaR,eAAuB;CAAE,IAAAS;CAAA,IAAAN,EAAA,OAAAK,MAAA;EACxBC,KAAAD,KAAIE,YAAa;EAACP,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAhC,MAAAQ,QAAcF;CAAmB,IAAAG;CAAA,IAAAT,EAAA,OAAAD,SAAAC,EAAA,OAAAQ,OAAA;EAG/BC,KAAA,oBAAC,YAAD;GAAoB,SAAA;GAAQ,QAAA;GAAM,GAAKV;GACpCS,UAAAA;EADQ,CAAA;EAEER,EAAA,KAAAD;EAAAC,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAFbS;AAEa;;ACkBjB,MAAM4B,SAASC,IAAiBC,KAAaC,UAAkBC,UAC7DH,GAAGC,KAAKC,UAAUF,GAAGI,qBAAqBD,KAAK,KAAKA,KAAK;AAE3D,MAAME,oBAAoBL,OACxBxB,kBAAkB;CAAE,GAAGwB;CAAII,oBAAoBZ;CAAec,kBAAkBd;AAAc,CAAC;AAEjG,MAAMe,iBAAiBF,iBAAiBpB,uBAAuB;AAC/D,MAAMuB,eAAeH,iBAAiBxB,qBAAqB;AAC3D,MAAM4B,aAAaJ,iBAAiBf,mBAAmB;AACvD,MAAMoB,WAAWL,iBAAiB1B,iBAAiB;AAEnD,MAAagC,kBAAkBC,WAC7BA,OAAOC,aAAa,aAAaD,OAAOC,aAAa,gBAAgB,CAACC,QAAQF,OAAOT,KAAK;AAE5F,MAAMW,WAAWX,UACfA,UAAUY,KAAAA,KACVZ,UAAU,QACVA,UAAU,MACTa,MAAMC,QAAQd,KAAK,MAAM,CAACA,MAAMe,UAAUf,MAAMgB,MAAML,OAAO;AAEhE,MAAMM,UAAUjB,UAAkC;CAChD,IAAIA,iBAAiBkB,MAAM,OAAOC,OAAOC,MAAMpB,MAAMqB,QAAQ,CAAC,IAAI,OAAOrB,MAAMqB,QAAQ;CACvF,IAAI,OAAOrB,UAAU,YAAY,OAAOA,UAAU,UAAU;EAC1D,MAAMsB,OAAO,IAAIJ,KAAKlB,KAAK,CAAC,CAACqB,QAAQ;EACrC,OAAOF,OAAOC,MAAME,IAAI,IAAI,OAAOA;CACrC;CACA,OAAO;AACT;AAEA,MAAMC,SAASD,SAAyB,IAAIJ,KAAKI,IAAI,CAAC,CAACE,SAAS,GAAG,GAAG,GAAG,CAAC;AAE1E,MAAMC,gBACJ3B,KACAC,UACAC,OACAU,aACwB;CACxB,MAAMgB,UAAUT,OAAOnB,IAAI6B,SAAS5B,QAAQ,CAAC;CAC7C,MAAM6B,aAAaX,OAAOjB,KAAK;CAC/B,IAAI0B,YAAY,QAAQE,eAAe,MAAM,OAAOhB,KAAAA;CAEpD,QAAQF,UAAR;EACE,KAAK,UACH,OAAOa,MAAMG,OAAO,MAAMH,MAAMK,UAAU;EAC5C,KAAK,eACH,OAAOF,UAAUE;EACnB,KAAK,wBACH,OAAOF,WAAWE;EACpB,KAAK,YACH,OAAOF,UAAUE;EACnB,KAAK,qBACH,OAAOF,WAAWE;EACpB,SACE;CACJ;AACF;AAEA,MAAMC,iBAAiB/B,KAAaC,aAAoC;CACtE,MAAM2B,UAAUT,OAAOnB,IAAI6B,SAAS5B,QAAQ,CAAC;CAC7C,IAAI2B,YAAY,MAAM,OAAO;CAE7B,OAAOI,KAAKC,OAAOR,MAAMG,OAAO,IAAIH,MAAML,KAAKc,IAAI,CAAC,KAAK,KAAU;AACrE;AAEA,MAAMC,qBAAqBnC,KAAaC,UAAkBC,UAA4B;CACpF,MAAMkC,OAAOL,cAAc/B,KAAKC,QAAQ;CACxC,IAAImC,SAAS,MAAM,OAAO;CAE1B,IAAIrB,MAAMC,QAAQd,KAAK,GAAG;EACxB,MAAM,CAACmC,KAAKC,OAAOpC,MAAMqC,IAAIlB,MAAM;EACnC,QAAQA,OAAOC,MAAMe,GAAG,KAAKD,QAAQC,SAAShB,OAAOC,MAAMgB,GAAG,KAAKF,QAAQE;CAC7E;CAEA,MAAME,OAAOnB,OAAOnB,KAAK;CACzB,OAAO,CAACmB,OAAOC,MAAMkB,IAAI,KAAKJ,SAASI;AACzC;AAEA,MAAMC,UACJzC,KACAC,UACAC,OACAwC,YACY;CACZ,IAAI3B,MAAMC,QAAQd,KAAK,GAAG,OAAOJ,MAAMtB,iBAAiBwB,KAAKC,UAAUC,KAAK;CAC5E,IAAIwC,YAAY,QAAQ,OAAOf,aAAa3B,KAAKC,UAAUC,OAAO,QAAQ,KAAK;CAE/E,OAAOJ,MAAMnB,iBAAiBqB,KAAKC,UAAUC,KAAK;AACpD;AAEA,MAAMyC,QACJ3C,KACAC,UACAW,UACAV,OACAwC,YACY;CACZ,QAAQ9B,UAAR;EACE,KAAK,kBACH,OAAOd,MAAMQ,gBAAgBN,KAAKC,UAAUC,KAAK;EACnD,KAAK,qBACH,OAAO,CAACJ,MAAMQ,gBAAgBN,KAAKC,UAAUC,KAAK;EACpD,KAAK,gBACH,OAAOJ,MAAMS,cAAcP,KAAKC,UAAUC,KAAK;EACjD,KAAK,mBACH,OAAO,CAACJ,MAAMS,cAAcP,KAAKC,UAAUC,KAAK;EAClD,KAAK,cACH,OAAOJ,MAAMU,YAAYR,KAAKC,UAAUC,KAAK;EAC/C,KAAK,YACH,OAAOJ,MAAMW,UAAUT,KAAKC,UAAUC,KAAK;EAC7C,KAAK,WACH,OAAOzB,eAAeuB,KAAKC,UAAU,IAAI;EAC3C,KAAK,cACH,OAAOb,kBAAkBY,KAAKC,UAAU,IAAI;EAC9C,KAAK,UACH,OAAOwC,OAAOzC,KAAKC,UAAUC,OAAOwC,OAAO;EAC7C,KAAK,aACH,OAAO,CAACD,OAAOzC,KAAKC,UAAUC,OAAOwC,OAAO;EAC9C,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,qBAAqB;GACxB,IAAIA,YAAY,QAAQ,OAAOf,aAAa3B,KAAKC,UAAUC,OAAOU,QAAQ,KAAK;GAE/E,MAAMb,KAAK;IACT6C,aAAa/D;IACbgE,sBAAsB/D;IACtBgE,UAAU5D;IACV6D,mBAAmB5D;GACrB,EAAEyB;GAEF,OAAOd,MAAMC,IAAIC,KAAKC,UAAUC,KAAK;EACvC;EACA,KAAK,WACH,OAAOJ,MACL4C,YAAY,SAAS3D,uBAAuBE,wBAC5Ce,KACAC,UACAc,MAAMC,QAAQd,KAAK,IAAIA,QAAQ,CAACA,OAAOA,KAAK,CAC9C;EACF,KAAK,qBACH,OAAOiC,kBAAkBnC,KAAKC,UAAUC,KAAK;CACjD;AACF;AAEA,MAAa8C,mBAAuDhD,KAAKC,aAAa;CACpF,MAAMgD,UAAWjD,IAAIkD,MAAMC,MAAMC,MAAMC,cAA8C1C,QAClFA,WAAWA,OAAO2C,OAAOrD,QAC5B;CACA,IAAI,CAACgD,QAAQhC,QAAQ,OAAO;CAE5B,MAAMyB,WACH1C,IAAIkD,MAAMK,UAAUtD,QAAQ,CAAC,EAAEuD,UAAUC,KAAAA,EAAuCf,WACjF;CAEF,MAAMgB,UAAUT,QACbtC,OAAOD,cAAc,CAAC,CACtB6B,KAAK5B,WACJgC,KAAK3C,KAAKC,UAAUU,OAAOC,YAAY,kBAAkBD,OAAOT,OAAOwC,OAAO,CAChF;CAEF,IAAI,CAACgB,QAAQzC,QAAQ,OAAO;CAE5B,QAAQgC,QAAQ,EAAE,CAACU,gBAAgB,WAAW,QAC1CD,QAAQxC,MAAM0C,OAAO,IACrBF,QAAQG,KAAKD,OAAO;AAC1B;AAEAZ,gBAAgBc,mBAAmB;AAEnC,MAAaC,iBAAiBzD;AAE9B,MAAM0D,iBAAwC;CAC5C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAY;AAGd,MAAMC,mBAA0C;CAC9C;CACA;CACA;CACA;CACA;CACA;CACA;AAAS;AAGX,MAAMC,iBAAwC;CAC5C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAY;AAGd,MAAMC,mBAA0C;CAAC;CAAU;CAAa;CAAW;AAAY;AAE/F,MAAaC,sBAAsB1B,YAAuD;CACxF,QAAQA,SAAR;EACE,KAAK,UACH,OAAOuB;EACT,KAAK,QACH,OAAOC;EACT,KAAK;EACL,KAAK;EACL,KAAK,gBACH,OAAOC;EACT,SACE,OAAOH;CACX;AACF;;ACnPA,MAAaW,qBAGRK,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAL,QAAAU,IAAAT,YAAAG;CAAE,MAAAJ,SAAAU,OAAAC,KAAAA,IAAA,KAAAD;CACN,MAAA,EAAAE,WAAmBf,iBAAiB;CAAE,IAAAgB;CAAA,IAAAR,EAAA,OAAAO,UAAAP,EAAA,OAAAJ,WAAAI,EAAA,OAAAL,QAAA;EAIjCa,WAAA;GACC,MAAAC,QAAclB,YACZgB,OAAMG,oBAAqB,EAAAC,MAAQJ,OAAMK,MAAMC,oBAAqB,CAAC,CAAAF,KAAM,CAAC,CAC9E;GACA,IAAI,CAACF,OAAK,OAAS;GAEnB,MAAAK,UAAgBC,OAAON,KAAK;GAAE,OAG5B,qBAAC,YAAD;IACa,WAAAhB,mBAAkBuB;IACrB,SAAA;IACR,QAAA;IACI,IAAA,EAAAC,YAAc,IAAI;IAJxB,UAAA,CAMGtB,QACAoB,OAAMG,SAAUJ,OAA4D,IAAjDA,QAAOK,eAAgBb,KAAAA,GAAWV,OAAe,IAA5Ea,KAPQ;;EAQE;EAEhBT,EAAA,KAAAO;EAAAP,EAAA,KAAAJ;EAAAI,EAAA,KAAAL;EAAAK,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAoB;CAAA,IAAApB,EAAA,OAAAO,OAAAK,MAAAS,MAAAC,iBAAAtB,EAAA,OAAAQ,IAAA;EApBHY,KAAA,oBAAC,WAAD;GAAmB,QAAAb,OAAMK,MAAMS,MAAMC;GAClCd,UAAAA;EADO,CAAA;EAqBER,EAAA,KAAAO,OAAAK,MAAAS,MAAAC;EAAAtB,EAAA,KAAAQ;EAAAR,EAAA,KAAAoB;CAAA,OAAAA,KAAApB,EAAA;CAAA,OArBZoB;AAqBY;;AC7BhB,MAAaS,sBAAoB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAE/B,MAAAM,QADeR,iBACDO,CAAM,CAAAC;CAAO,IAAAC;CAAA,IAAAP,EAAA,OAAAM,OAAA;EAItBC,WAAA;GACC,IAAI,CAACD,MAAKE,qBAAsB,GAAC,OAAS;GAAK,OAG7C,oBAAC,YAAD;IACO,MAAA;IACI,SAAAF,MAAKG,gCAAiC;IACpC,cAAA;IACI,iBAAAH,MAAKI,qBAAsB;IAE1C,UAAA,oBAAC,eAAD;KACW,UAAA;KACL,IAAA;MAAAC,YACU;MAAiBC,WAClBN,MAAKI,qBAA0D,IAA/D,iBAAA;KACb;IAAC,CAAA;GAXM,CAAA;EAaE;EAEhBV,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAa;CAAA,IAAAb,EAAA,OAAAO,MAAAP,EAAA,OAAAM,MAAAQ,MAAAC,UAAA;EApBHF,KAAA,oBAAC,WAAD;GAAmB,QAAAP,MAAKQ,MAAMC;GAC3BR,UAAAA;EADO,CAAA;EAqBEP,EAAA,KAAAO;EAAAP,EAAA,KAAAM,MAAAQ,MAAAC;EAAAf,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAAA,OArBZa;AAqBY;;ACPhB,MAAa6B,cAAgDE,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAF,iBAAAO,OAAAN;CAAE,MAAAD,kBAAAO,OAAAC,KAAAA,IAAA,QAAAD;CAC9D,MAAAE,SAAef,iBAAiB;CAChC,MAAA,EAAAgB,MAAcjB,iBAAe;CAC7B,MAAA,CAAAkB,UAAAC,eAAgCpB,SAA6B,IAAI;CACjE,MAAA,EAAAqB,WAAmBJ;CAAO,IAAAK;CAAA,IAAAZ,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAEZQ,WAAMF,YAAY,IAAI;EAACV,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAArC,MAAAa,QAAcD;CAAwB,IAAAE;CAAA,IAAAd,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAC1BU,MAAAC,iBAAwB;GAClCA,OAAO;GACPF,MAAM;EAAC;EACRb,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAHD,MAAAgB,MAAYF;CAKZ,IAAI,CAACpB,eAAeiB,MAAM,GAAC,OAAS;CAAK,IAAAM;CAAA,IAAAjB,EAAA,OAAAS,YAAAT,EAAA,OAAAW,UAAAX,EAAA,OAAAF,mBAAAE,EAAA,OAAAQ,GAAA;EAIpCS,WAAA;GACC,MAAAC,UAAgBP,OAAMQ,WAAY;GAClC,MAAAC,SAAeT,OAAMU,UAAW;GAChC,MAAAC,WAAiB,CAACxB,mBAAmBa,OAAMY,YAAa;GACxD,MAAAC,UAAgBb,OAAMc,WAAY;GAElC,IAAI,CAACP,WAAD,CAAaE,UAAb,CAAwBE,YAAxB,CAAqCE,SAAO,OAAS;GAEzD,MAAAE,SAAef,OAAMgB,YAAa;GAClC,MAAAC,SAAejB,OAAMkB,YAAa;GAClC,MAAAC,UAAgBnB,OAAMoB,aAAc;GACpC,MAAAC,QAAcrB,OAAMsB,SAAU;GAC9B,MAAAC,YAAkBvB,OAAMwB,MAAMC,sBAAuB,CAAC,CAAAC;GAAQ,OAG5D,qBAAC,KAAD;IACa,WAAA1C,mBAAkB2C;IACzB,IAAA;KAAAC,SACO;KAAMC,YACH;KAACC,IACT;KAAMC,UACA;KAAQC,OACXlC,WAAA,SAAA;KAAqB,8BACE,EAAAkC,OAAS,OAAO;KAAC,kBAC7B,EAAAA,OAAS,OAAO;KAAC,wBACX,EAAAA,OAAS,OAAO;IAC1C;IAXF,UAAA,CAaE,oBAAC,YAAD;KACO,MAAA;KACI,UAAAC,UAAWlC,YAAYkC,MAAKC,aAAc;KACvC,cAAA,gBAAgBpD,YAAYkB,MAAM;KAChC,iBAAA;KAEd,UAAA,oBAAC,UAAD,EAAmB,UAAA,QAAO,CAAA;IANjB,CAAA,GASX,qBAAC,MAAD;KAAgBF;KAAgB,MAAA,CAAC,CAACA;KAAmBI,SAAAA;KAArD,UAAA;MAEGK,WAAWQ,WAAW,SACrB,qBAAC,UAAD;OAAmB,SAAAV,UAAUL,OAAMmC,cAAe,OAAO,IAAI,CAAC;OAA9D,UAAA,CACE,oBAAC,cAAD,EAAA,UACE,oBAAC,aAAD,EAAsB,UAAA,QAAO,CAAA,EADlB,CAAA,GAGb,oBAAC,cAAD,EAAA,UAAetC,EAAE,4BAA4B,EAAhC,CAAA,CAJN;;MAOVU,WAAWQ,WAAW,UACrB,qBAAC,UAAD;OAAmB,SAAAV,UAAUL,OAAMmC,cAAe,MAAM,IAAI,CAAC;OAA7D,UAAA,CACE,oBAAC,cAAD,EAAA,UACE,oBAAC,eAAD,EAAwB,UAAA,QAAO,CAAA,EADpB,CAAA,GAGb,oBAAC,cAAD,EAAA,UAAetC,EAAE,6BAA6B,EAAjC,CAAA,CAJN;;MAOVU,WAAWQ,WAAW,SACrB,qBAAC,UAAD;OAAmB,SAAAV,UAAUL,OAAMoC,aAAc,CAAC;OAAlD,UAAA,CACE,oBAAC,cAAD,EAAA,UACE,oBAAC,OAAD,EAAgB,UAAA,QAAO,CAAA,EADZ,CAAA,GAGb,oBAAC,cAAD,EAAA,UAAevC,EAAE,wBAAwB,EAA5B,CAAA,CAJN;;MASVY,UAAU,oBAAC,SAAD,CAAQ,CAAA;MAClBA,UACE,CAAC,SAAS,KAAK,CAAC,CAAS6B,KAAMC,aAC9B,qBAAC,UAAD;OAEY,UAAAtB,WAAWsB;OACZ,SAAAlC,UAAUL,OAAMwC,IAAKvB,WAAWsB,WAAX,QAAAA,QAAsC,CAAC;OAHvE,UAAA,CAKE,oBAAC,cAAD,EAAA,UACE,oBAAC,SAAD,EAAkB,UAAA,QAAO,CAAA,EADd,CAAA,GAGb,oBAAC,cAAD,EAAA,UACGtB,WAAWsB,WACR1C,EAAE,oBAGuB,IAFzB0C,aAAa,UACX1C,EAAE,uBACqB,IAAvBA,EAAE,qBAAqB,EALlB,CAAA,CARN;MACF0C,GAAAA,QADE,CAgBV;MAGH,oBAAC,SAAD,CAAQ,CAAA;MACR,qBAAC,UAAD;OAAoB,UAAAlB,SAAS;OAAY,SAAAhB,UAAUpB,WAAWe,QAAQ,EAAE,CAAC;OAAzE,UAAA,CACE,oBAAC,cAAD,EAAA,UACE,oBAAC,WAAD,EAAoB,UAAA,QAAO,CAAA,EADhB,CAAA,GAGb,oBAAC,cAAD,EAAA,UAAeH,EAAE,uBAAuB,EAA3B,CAAA,CAJN;;MAMT,qBAAC,UAAD;OACY,UAAAwB,SAASE,YAAY;OACtB,SAAAlB,UAAUpB,WAAWe,QAAQ,CAAC,CAAC;OAF1C,UAAA,CAIE,oBAAC,cAAD,EAAA,UACE,oBAAC,cAAD,EAAuB,UAAA,QAAO,CAAA,EADnB,CAAA,GAGb,oBAAC,cAAD,EAAA,UAAeH,EAAE,wBAAwB,EAA5B,CAAA,CAPN;;MAWRc,YAAY,oBAAC,SAAD,CAAQ,CAAA;MACpBA,YACC,qBAAC,UAAD;OAAmB,SAAAN,UAAUL,OAAMyC,eAAgB,CAAC;OAApD,UAAA,CACE,oBAAC,cAAD,EAAA,UACE,oBAAC,YAAD,EAAqB,UAAA,QAAO,CAAA,EADjB,CAAA,GAGb,oBAAC,cAAD,EAAA,UACGtB,UAAUtB,EAAE,sBAAkD,IAAxBA,EAAE,sBAAsB,EADpD,CAAA,CAJN;;MAWVgB,WAAW,oBAAC,SAAD,CAAQ,CAAA;MACnBA,WACC,qBAAC,UAAD;OAAmB,SAAAR,UAAUL,OAAM0C,iBAAkB,KAAK,CAAC;OAA3D,UAAA,CACE,oBAAC,cAAD,EAAA,UACE,oBAAC,eAAD,EAAwB,UAAA,QAAO,CAAA,EADpB,CAAA,GAGb,oBAAC,cAAD,EAAA,UAAe7C,EAAE,yBAAyB,EAA7B,CAAA,CAJN;;KAnFR;IAtBH,CAAA,CAAA;;EAiHE;EAETR,EAAA,KAAAS;EAAAT,EAAA,KAAAW;EAAAX,EAAA,KAAAF;EAAAE,EAAA,KAAAQ;EAAAR,EAAA,KAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAAA,IAAAsD;CAAA,IAAAtD,EAAA,OAAAW,OAAAwB,MAAAoB,SAAAvD,EAAA,OAAAiB,IAAA;EAnIHqC,KAAA,oBAAC,WAAD;GAAmB,QAAA3C,OAAMwB,MAAMoB;GAAkB,UAAAC;GAC9CvC,UAAAA;EADO,CAAA;EAoIEjB,EAAA,KAAAW,OAAAwB,MAAAoB;EAAAvD,EAAA,KAAAiB;EAAAjB,EAAA,MAAAsD;CAAA,OAAAA,KAAAtD,EAAA;CAAA,OApIZsD;AAoIY;AAnJ6C,SAAAE,QAAAC,OAAA;CAAA,OAeGA;AAAK;;ACjCrE,MAAMe,aAAa;AACnB,MAAMC,cAAc;AAEpB,MAAMC,OAAOC,YACV;CACCC,SAAS;CACTC,UAAU;CACVC,gBAAgB;CAChBC,KAAK,cAAcP,aAAa,EAAC;CACjCQ,OAAOL,SAAS,QAAQ;CACxBM,QAAQT;CACRU,cAAcP,SAAS,UAAU;CACjCQ,SAASR,SAAS,iBAAiB;CACnCS,aAAaC,UAAiBA,MAAMC,YAAYC,OAAO,CAAC,SAAS,kBAAkB,CAAC;AACtF;AAGF,MAAME,OAAuB;CAC3BZ,UAAU;CACVa,YAAY;CACZZ,gBAAgB;CAChBE,OAAOP;AACT;AAEA,MAAakB,2BAAyB;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CACpC,MAAAK,SAAe7B,iBAAiB;CAChC,MAAA,EAAA8B,WAAmBD;CAGnB,IAAI,CAACC,OAAMC,aAAc,GAAC;EAAA,IAAAC;EAAA,IAAAR,EAAA,OAAAM,QAAA;GACjBE,KAAAF,OAAMG,gBAKb,IALO,OACL,oBAAC,KAAD;IACa,WAAA9B,mBAAkB+B;IACzB,IAAA;KAAA,GAAKb;KAAI,YAAcf,IAAI,KAAK;IAAE;GAAC,CAAA;GAE1CkB,EAAA,KAAAM;GAAAN,EAAA,KAAAQ;EAAA,OAAAA,KAAAR,EAAA;EAAA,OALMQ;CAKN;CAAC,IAAAA;CAAA,IAAAR,EAAA,OAAAK,QAAA;EAEWG,KAAAH,OAAMM,iBAAkB;EAACX,EAAA,KAAAK;EAAAL,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAxC,MAAAY,SAAeJ;CAA0B,IAAAK;CAAA,IAAAb,EAAA,OAAAM,UAAAN,EAAA,OAAAY,QAAA;EAIzBC,MAAAC,UAAA;GACd,MAAA1B,QAAc0B,MAAKC,cAAcC,eAA2BC;GAC5D,IAAIvC,WAAW4B,MAAe,KAA1BlB,OACFkB,OAAMY,MAAMC,iBAAiBC,SAAU;IAAA,GAAKA;KAAMd,OAAMe,KAAMjC;GAAM,EAAE;GACxEwB,OAAOE,KAAK;EAAC;EACdd,EAAA,KAAAM;EAAAN,EAAA,KAAAY;EAAAZ,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CALD,MAAAsB,UAAgBT;CAKd,IAAAU;CAAA,IAAAvB,EAAA,OAAAM,UAAAN,EAAA,OAAAsB,SAAA;EAIGC,WACC,oBAAC,KAAD;GACa,WAAA9C,WACTE,mBAAkB+B,iBAClB/B,mBAAmB,+BACnB2B,OAAMkB,cAAkE,KAA9C7C,mBAAmB,4BAC/C;GACK,MAAA;GACY,oBAAA;GACJ2C,aAAAA;GACCA,cAAAA;GACC,qBAAMhB,OAAMmB,UAAW;GAC7B,SAAAC;GACL,IAAA;IAAA,GACC7B;IAAI8B,QACC;IAAYC,aACP;IAAMC,YACP;IAAM,YACN/C,IAAIwB,OAAMkB,cAAe,CAAC;IAAC,kBACrB1C,IAAI,IAAI;GAC5B;EAAC,CAAA;EAEJkB,EAAA,KAAAM;EAAAN,EAAA,KAAAsB;EAAAtB,EAAA,MAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAAA,IAAA8B;CAAA,IAAA9B,EAAA,QAAAM,OAAAY,MAAAa,MAAAC,kBAAAhC,EAAA,QAAAuB,IAAA;EAvBHO,KAAA,oBAAC,WAAD;GAAmB,QAAAxB,OAAMY,MAAMa,MAAMC;GAClCT,UAAAA;EADO,CAAA;EAwBEvB,EAAA,MAAAM,OAAAY,MAAAa,MAAAC;EAAAhC,EAAA,MAAAuB;EAAAvB,EAAA,MAAA8B;CAAA,OAAAA,KAAA9B,EAAA;CAAA,OAxBZ8B;AAwBY;AAjDsB,SAAAJ,QAAAO,SAAA;CAAA,OAsCRnB,QAAKoB,gBAAiB;AAAC;;AC/DrD,MAAaU,mBAA+CE,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAF,aAAAC;CAC3D,MAAA,EAAAM,WAAmBV,iBAAiB;CAEpC,IAAI,CAACU,OAAMC,WAAY,GAAC,OAASR;CAAS,IAAAS;CAAA,IAAAP,EAAA,OAAAF,YAAAE,EAAA,OAAAK,QAAA;EAIrCE,MAAAC,YAAA;GACC,MAAAC,YAAkBJ,OAAMK,YAAa;GACrC,MAAAC,YAAkBH,QAAOI,SAAU,IAAIP,OAAMQ,aAAmB,IAA9C;GAAgD,OAGhE,qBAAC,gBAAD;IACa,WAAAjB,mBAAkBkB;IACrB,QAAAL,cAAc;IACX,WAAAA,cAAc,QAAd,QAAAA;IACF,SAAAJ,OAAMU,wBAAyB;IAJ1C,UAAA,CAMGjB,UACAa,YAAY,MACX,oBAAC,KAAD;KACY,WAAA;KACC,WAAAf,mBAAkBe;KACzB,IAAA;MAAAK,IAAM;MAAGC,UAAY;MAAEC,SAAW;KAAI;KAEzCP,UAAAA,YAAY;IALX,CAAA,CARO;;EAgBE;EAEpBX,EAAA,KAAAF;EAAAE,EAAA,KAAAK;EAAAL,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAmB;CAAA,IAAAnB,EAAA,OAAAK,OAAAe,MAAAC,MAAAb,WAAAR,EAAA,OAAAO,IAAA;EAxBHY,KAAA,oBAAC,WAAD;GAAmB,QAAAd,OAAMe,MAAMC,MAAMb;GAClCD,UAAAA;EADO,CAAA;EAyBEP,EAAA,KAAAK,OAAAe,MAAAC,MAAAb;EAAAR,EAAA,KAAAO;EAAAP,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OAzBZmB;AAyBY;;AChChB,MAAaQ,iBAAgDE,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAF,OAAAO,OAAAN;CAAE,MAAAD,QAAAO,OAAAC,KAAAA,IAAA,SAAAD;CAE9D,MAAAG,QADeZ,iBACDW,CAAM,CAAAC;CAAO,IAAAC;CAAA,IAAAT,EAAA,OAAAF,SAAAE,EAAA,OAAAQ,OAAA;EAItBC,WAAA;GACC,MAAAC,UACEZ,UAAU,SAASU,MAAKG,yBAAyD,IAA3BH,MAAKI,qBAAsB;GACnF,MAAAC,gBACEf,UAAU,SAASU,MAAKM,0BAA2D,IAA5BN,MAAKO,sBAAuB;GAAE,OAGrF,oBAAC,UAAD;IACO,MAAA;IACIL;IACM,eAAA,CAACA,WAADG;IAEb,UAAAf,UAAU,SACNU,MAAKQ,oCACiC,IAAtCR,MAAKS,gCAAiC;IAEjC,WAAA,EAAAC,OAAS,EAAA,cAAgB,kBAAkB,EAAE;GAAC,CAAA;EACzD;EAELlB,EAAA,KAAAF;EAAAE,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAmB;CAAA,IAAAnB,EAAA,OAAAS,MAAAT,EAAA,OAAAQ,MAAAY,MAAAC,cAAA;EApBHF,KAAA,oBAAC,WAAD;GAAmB,QAAAX,MAAKY,MAAMC;GAC3BZ,UAAAA;EADO,CAAA;EAqBET,EAAA,KAAAS;EAAAT,EAAA,KAAAQ,MAAAY,MAAAC;EAAArB,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OArBZmB;AAqBY;;ACrBhB,MAAasB,qBAAmB;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAC9B,MAAAK,QAAcX,gBAAgB;CAC9B,MAAA,EAAAY,MAAcb,iBAAe;CAC7B,MAAA,CAAAc,UAAAC,eAAgChB,SAA6B,IAAI;CACjE,MAAAiB,YAAkBlB,OAA0B,IAAI;CAAE,IAAAmB;CAAA,IAAAV,EAAA,OAAAK,OAAA;EAElCK,KAAAL,MAAKM,kBACA,CAAC,CAAAC,OACZC,OAAyD;EAACb,EAAA,KAAAK;EAAAL,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAFpE,MAAAc,UAAgBJ;CAEqD,IAAAK;CAAA,IAAAf,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAElDW,WAAMP,aAAYQ,YAAcA,UAAA,OAAiBP,UAASO,OAAS;EAAChB,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAC5E,MAAAiB,KAAAH,QAAOI,SAAU;CAAC,IAAAC;CAAA,IAAAnB,EAAA,OAAAiB,IAAA;EAD4DE,KAAA,EAAAC,SAC9EH,GACX;EAACjB,EAAA,KAAAiB;EAAAjB,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAFDZ,UAAU,SAAS2B,IAAsEI,EAExF;CAED,IAAI,CAACL,QAAOI,QAAO,OAAS;CAAK,IAAAG;CAAA,IAAArB,EAAA,OAAAM,GAAA;EAIbe,KAAAvB,cAAcQ,EAAE,sBAAsB,GAAG,OAAO;EAACN,EAAA,KAAAM;EAAAN,EAAA,KAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAAA,IAAAsB;CAAA,IAAAtB,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAC/DkB,KAAA,oBAAC,YAAD;GACOb,KAAAA;GACM,WAAAZ,mBAAkB0B;GACxB,MAAA;GACI,UAAAC,UAAWhB,YAAYgB,MAAKC,aAAc;GAEnD,UAAA,oBAAC,YAAD,EAAqB,UAAA,QAAO,CAAA;EANnB,CAAA;EAOEzB,EAAA,KAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAqB,IAAA;EARfK,KAAA,oBAAC,SAAD;GAAgB,OAAAL;GACdC,UAAAA;EADM,CAAA;EASEtB,EAAA,KAAAqB;EAAArB,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAIF,MAAA2B,KAAA,CAAC,CAACpB;CAAQ,IAAAqB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAA9B,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;EACPyB,WAAMrB,YAAY,IAAI;EACjBsB,KAAA;GAAAC,UAAY;GAAQC,YAAc;EAAQ;EACvCJ,MAAA;GAAAG,UAAY;GAAKC,YAAc;EAAQ;EAAChC,EAAA,MAAA4B;EAAA5B,EAAA,MAAA6B;EAAA7B,EAAA,MAAA8B;CAAA,OAAA;EAAAF,MAAA5B,EAAA;EAAA6B,KAAA7B,EAAA;EAAA8B,KAAA9B,EAAA;CAAA;CAAA,IAAAiC;CAAA,IAAAjC,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;EAC9C6B,MAAA,EAAAC,OACF;GAAAC,WACMtC,mBAAkBuC;GAAaC,IACtC,EAAAC,UAAY,qBAAqB;EACvC,EACF;EAACtC,EAAA,MAAAiC;CAAA,OAAAA,MAAAjC,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAAc,WAAAd,EAAA,QAAAM,KAAAN,EAAA,QAAAK,OAAA;EAGEkC,YACC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,KAAD;GACM,IAAA;IAAAC,SACO;IAAMC,eACA;IAAQC,IACnB;IAAGC,IACH;IAACC,WACM;IAAGC,UACJ;IAAGC,UACH;GACZ;GAEChC,UAAAA,QAAOiC,IAAKC,QAaZ;EAxBC,CAAA,GA2BJ,oBAAC,KAAD;GACM,IAAA;IAAAR,SACO;IAAMS,YACH;IAAQC,GACjB;IAAGC,WACK;IAACC,aACC;GACf;GAEA,UAAA,oBAAC,kBAAD;IACS,OAAA9C,EAAE,0BAA0B;IACxB,WAAA,EAAA+C,YAAc;KAAAC,SAAW;KAAOC,QAAU;IAAK,EAAE;IAE1D,SAAA,oBAAC,UAAD;KACO,MAAA;KACI,SAAAlD,MAAKmD,uBAAwB;KAEpC,eAAAnD,MAAKoD,wBAA4D,KAAjE,CAAoCpD,MAAKmD,uBAAwB;KAEzD,UAAAnD,MAAKqD,qCAAsC;IAAC,CAAA;GACtD,CAAA;EApBJ,CAAA,CAuBE,EAAA,CAAA;EAET1D,EAAA,MAAAc;EAAAd,EAAA,MAAAM;EAAAN,EAAA,MAAAK;EAAAL,EAAA,MAAAuC;CAAA,OAAAA,MAAAvC,EAAA;CAAA,IAAA2D;CAAA,IAAA3D,EAAA,QAAAuC,OAAAvC,EAAA,QAAAK,MAAAuD,MAAAC,kBAAA;EAvDHF,MAAA,oBAAC,WAAD;GAAmB,QAAAtD,MAAKuD,MAAMC;GAC3BtB,UAAAA;EADO,CAAA;EAwDEvC,EAAA,MAAAuC;EAAAvC,EAAA,MAAAK,MAAAuD,MAAAC;EAAA7D,EAAA,MAAA2D;CAAA,OAAAA,MAAA3D,EAAA;CAAA,IAAA8D;CAAA,IAAA9D,EAAA,QAAAO,YAAAP,EAAA,QAAA2D,OAAA3D,EAAA,QAAA2B,IAAA;EArEdmC,MAAA,oBAAC,SAAD;GACYvD;GACJ,MAAAoB;GACG,SAAAE;GACK,cAAAC;GACG,iBAAAF;GACN,WAAAK;GAOX0B,UAAAA;EAbM,CAAA;EAsEE3D,EAAA,MAAAO;EAAAP,EAAA,MAAA2D;EAAA3D,EAAA,MAAA2B;EAAA3B,EAAA,MAAA8D;CAAA,OAAAA,MAAA9D,EAAA;CAAA,IAAA+D;CAAA,IAAA/D,EAAA,QAAA8D,OAAA9D,EAAA,QAAA0B,IAAA;EAlFZqC,MAAA,qBAAA,YAAA,EAAA,UAAA,CACErC,IAWAoC,GAsEU,EAAA,CAAA;EACT9D,EAAA,MAAA8D;EAAA9D,EAAA,MAAA0B;EAAA1B,EAAA,MAAA+D;CAAA,OAAAA,MAAA/D,EAAA;CAAA,OAnFH+D;AAmFG;AApGyB,SAAAlD,QAAAmD,QAAA;CAAA,OAQRpE,eAAeoE,MAA6B,KAAlBA,OAAMC,WAAY;AAAC;AARrC,SAAAjB,SAAAkB,UAAA;CAAA,OAyDd,oBAAC,kBAAD;EAES,OAAAvE,YAAYqE,QAAM;EACd,WAAA,EAAAX,YAAc;GAAAC,SAAW;GAAOC,QAAU;EAAK,EAAE;EAE1D,SAAA,oBAAC,UAAD;GACO,MAAA;GACI,SAAAS,SAAMI,aAAc;GACnB,UAAAJ,SAAMK,2BAA4B;EAAC,CAAA;CAC7C,GARCL,SAAMG,EAQP;AAEJ;;AC7DpB,MAAM6B,cAAqCJ,WACxCA,OAAOK,UAAUC,QAAyC,CAAC;AAE9D,MAAMC,kBACJP,WAC6B;CAC7B,MAAMS,WAAWL,WAAWJ,MAAM,CAAC,CAACU;CACpC,IAAID,UAAU,OAAOA;CAErB,OAAOD,MAAMG,KAAKX,OAAOY,uBAAuB,CAAC,CAACC,KAAK,CAAC,CAAC,CACtDC,KAAKX,WAAW;EAAEY,OAAOnB,YAAYO,KAAK;EAAGA,OAAOP,YAAYO,KAAK;CAAE,EAAE,CAAC,CAC1EF,QAAQe,WAAWA,OAAOb,UAAU,EAAE,CAAC,CACvCc,MAAMC,GAAGC,MAAMD,EAAEH,MAAMK,cAAcD,EAAEJ,KAAK,CAAC;AAClD;AAEA,MAAMM,oBAAoBlB,UAA2B;CACnD,IAAI,EAAEA,iBAAiBmB,QAAQ,OAAOnB,UAAU,YAAY,OAAOA,UAAU,WAAW,OAAO;CAE/F,MAAMoB,OAAOpB,iBAAiBmB,OAAOnB,QAAQ,IAAImB,KAAKnB,KAAK;CAC3D,IAAIqB,OAAOC,MAAMF,KAAKG,QAAQ,CAAC,GAAG,OAAO;CAEzC,OAAO,GAAGH,KAAKI,YAAY,EAAC,GAAIC,OAAOL,KAAKM,SAAS,IAAI,CAAC,CAAC,CAACC,SAAS,GAAG,GAAG,EAAC,GAAIF,OAAOL,KAAKQ,QAAQ,CAAC,CAAC,CAACD,SAAS,GAAG,GAAG;AACxH;AAEA,MAAME,sBAAsBC,QAC1BA,uBAAM,IAAIX,KAAK,GAAGW,IAAG,UAAW,EAAA,CAAEC,YAAY,IAAIC,KAAAA;AAEpD,MAAMC,YAAYH,QAA8BA,QAAQ,KAAK,KAAKT,OAAOS,GAAG;AAE5E,MAAMI,QAAQlC,UACZK,MAAM8B,QAAQnC,KAAK,IAAI,CAACA,MAAM,IAAIA,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;AAEvD,SAAOoC,kBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,KAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAkD,MAAA,EAAAzC,QAAAC,QAAAC,aAAAsC;CAKvD,MAAA,EAAAM,MAAcvD,iBAAe;CAAE,IAAAwD;CAAA,IAAAN,EAAA,OAAAzC,QAAA;EACf+C,KAAA3C,WAAWJ,MAAM,CAAC,CAAAgD,WAAlB;EAAoCP,EAAA,KAAAzC;EAAAyC,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAApD,MAAAO,UAAgBD;CAChB,MAAAE,WAAiBhD,OAAMgD,YAAN;CAAoC,IAAAC;CAAA,IAAAT,EAAA,OAAAK,GAAA;EACYI,KAAAJ,EAAE,oBAAoB;EAACL,EAAA,KAAAK;EAAAL,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,OAAAS,IAAA;EAAzEC,KAAA;GAAAC,MAAQ;GAAgBE,WAAa;GAAIvC,OAASmC;EAAwB;EAACT,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAA1F,MAAAc,SAAeJ;CAEf,MAAA,CAAAhD,OAAAqD,YAA0BlE,SAASW,OAAME,KAAM;CAAE,IAAAsD;CAAA,IAAAhB,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EACHY,KAAA,EAAAC,MAAQ,IAAI;EAACjB,EAAA,KAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAA3D,MAAAkB,SAAexE,qBAAqBe,UAAUuD,EAAa;CAAE,IAAAG;CAAA,IAAAnB,EAAA,OAAAkB,QAAA;EAC9CC,MAAAC,SAAA;GACbL,SAASK,IAAI;GACbF,OAAOE,IAAI;EAAC;EACbpB,EAAA,KAAAkB;EAAAlB,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAHD,MAAAqB,SAAeF;CAKf,IAAIX,aAAa,aAAaA,aAAa,cAAY;EAAA,IAAAc;EAAA,IAAAtB,EAAA,QAAAK,GAAA;GAGhDiB,KAAAjB,EAAE,8BAA8B;GAACL,EAAA,MAAAK;GAAAL,EAAA,MAAAsB;EAAA,OAAAA,KAAAtB,EAAA;EAAA,IAAAuB;EAAA,IAAAvB,EAAA,QAAAsB,IAAA;GADpCC,KAAA,oBAAC,YAAD;IAAoB,SAAA;IAAc,OAAA;IAC/BD,UAAAA;GADQ,CAAA;GAEEtB,EAAA,MAAAsB;GAAAtB,EAAA,MAAAuB;EAAA,OAAAA,KAAAvB,EAAA;EAAA,OAFbuB;CAEa;CAIjB,IAAIf,aAAa,WAAS;EAAA,IAAAgB;EAAA,IAAAC;EAAA,IAAAvD;EAAA,IAAAwD;EAAA,IAAAC;EAAA,IAAAC;EAAA,IAAAN;EAAA,IAAAC;EAAA,IAAAM;EAAA,IAAAC;EAAA,IAAAC;EAAA,IAAA/B,EAAA,QAAAc,UAAAd,EAAA,QAAAK,KAAAL,EAAA,QAAAtC,SAAAsC,EAAA,QAAAO,SAAA;GACxB,CAAArC,MAAA6D,MAAmBnC,KAAKlC,KAAK;GAC7BgE,SAAenB,YAAY;GAGxBkB,KAAAlF;GAAgBoF,MAAA;GAAeC,MAAA;GAC7BJ,KAAAhF;GACKsE,KAAAA;GACES,KAAAG,SAAA,SAAA;GAA0B,IAAA1B,EAAA,QAAAK,GAAA;IACzBwB,KAAAxB,EAAE,mBAAmB;IAACL,EAAA,MAAAK;IAAAL,EAAA,MAAA6B;GAAA,OAAAA,KAAA7B,EAAA;GACtB8B,KAAAJ,SAAS9C,iBAAiBV,IAAgD,IAAtCA,QAAD;GAAwC8B,EAAA,MAAAc;GAAAd,EAAA,MAAAK;GAAAL,EAAA,MAAAtC;GAAAsC,EAAA,MAAAO;GAAAP,EAAA,MAAAwB;GAAAxB,EAAA,MAAAyB;GAAAzB,EAAA,MAAA9B;GAAA8B,EAAA,MAAA0B;GAAA1B,EAAA,MAAA2B;GAAA3B,EAAA,MAAA4B;GAAA5B,EAAA,MAAAsB;GAAAtB,EAAA,MAAAuB;GAAAvB,EAAA,MAAA6B;GAAA7B,EAAA,MAAA8B;GAAA9B,EAAA,MAAA+B;EAAA,OAAA;GAAAP,KAAAxB,EAAA;GAAAyB,KAAAzB,EAAA;GAAA9B,OAAA8B,EAAA;GAAA0B,SAAA1B,EAAA;GAAA2B,MAAA3B,EAAA;GAAA4B,MAAA5B,EAAA;GAAAsB,KAAAtB,EAAA;GAAAuB,KAAAvB,EAAA;GAAA6B,KAAA7B,EAAA;GAAA8B,KAAA9B,EAAA;GAAA+B,KAAA/B,EAAA;EAAA;EAAA,IAAAgC;EAAA,IAAAhC,EAAA,QAAAqB,UAAArB,EAAA,QAAA0B,UAAA1B,EAAA,QAAA+B,IAAA;GACxEC,OAAAC,UACRZ,OAAO,CACLK,SAASnC,mBAAmB0C,MAAKC,OAAOxE,KAAqC,IAA3BiC,SAASsC,MAAKC,OAAOxE,KAAM,GAC7EqE,EAAE,CACH;GAAC/B,EAAA,MAAAqB;GAAArB,EAAA,MAAA0B;GAAA1B,EAAA,MAAA+B;GAAA/B,EAAA,MAAAgC;EAAA,OAAAA,MAAAhC,EAAA;EAAA,IAAAmC;EAAA,IAAAnC,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;GAEO+B,MAAA,EAAAC,YAAc,EAAAC,QAAU,KAAK,EAAE;GAACrC,EAAA,MAAAmC;EAAA,OAAAA,MAAAnC,EAAA;EAAA,IAAAsC;EAAA,IAAAtC,EAAA,QAAAwB,MAAAxB,EAAA,QAAAgC,OAAAhC,EAAA,QAAAsB,MAAAtB,EAAA,QAAAuB,MAAAvB,EAAA,QAAA6B,MAAA7B,EAAA,QAAA8B,IAAA;GAX7CQ,MAAA,oBAAC,IAAD;IAAU,GACJxB;IACE,MAAAS;IACC,OAAAM;IACA,OAAAC;IACG,UAAAE;IAMC,WAAAG;GAAgC,CAAA;GAC3CnC,EAAA,MAAAwB;GAAAxB,EAAA,MAAAgC;GAAAhC,EAAA,MAAAsB;GAAAtB,EAAA,MAAAuB;GAAAvB,EAAA,MAAA6B;GAAA7B,EAAA,MAAA8B;GAAA9B,EAAA,MAAAsC;EAAA,OAAAA,MAAAtC,EAAA;EAGM,MAAAuC,MAAAb,SAAA,SAAA;EAA0B,IAAAc;EAAA,IAAAxC,EAAA,QAAAK,GAAA;GACzBmC,MAAAnC,EAAE,iBAAiB;GAACL,EAAA,MAAAK;GAAAL,EAAA,MAAAwC;EAAA,OAAAA,MAAAxC,EAAA;EAAA,IAAAyC;EAAA,IAAAzC,EAAA,QAAA0B,UAAA1B,EAAA,QAAA+B,IAAA;GACpBU,MAAAf,SAAS9C,iBAAiBmD,EAA4C,IAApCA,MAAD;GAAsC/B,EAAA,MAAA0B;GAAA1B,EAAA,MAAA+B;GAAA/B,EAAA,MAAAyC;EAAA,OAAAA,MAAAzC,EAAA;EAAA,IAAA0C;EAAA,IAAA1C,EAAA,QAAAqB,UAAArB,EAAA,QAAA9B,QAAA8B,EAAA,QAAA0B,QAAA;GACpEgB,OAAAC,YACRtB,OAAO,CACLnD,MACAwD,SAASnC,mBAAmB0C,QAAKC,OAAOxE,KAAqC,IAA3BiC,SAASsC,QAAKC,OAAOxE,KAAM,CAAC,CAC/E;GAACsC,EAAA,MAAAqB;GAAArB,EAAA,MAAA9B;GAAA8B,EAAA,MAAA0B;GAAA1B,EAAA,MAAA0C;EAAA,OAAAA,MAAA1C,EAAA;EAAA,IAAA4C;EAAA,IAAA5C,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;GAEOwC,MAAA,EAAAR,YAAc,EAAAC,QAAU,KAAK,EAAE;GAACrC,EAAA,MAAA4C;EAAA,OAAAA,MAAA5C,EAAA;EAAA,IAAA6C;EAAA,IAAA7C,EAAA,QAAAc,UAAAd,EAAA,QAAAuC,OAAAvC,EAAA,QAAAwC,OAAAxC,EAAA,QAAAyC,OAAAzC,EAAA,QAAA0C,KAAA;GAX7CG,MAAA,oBAAC,WAAD;IAAU,GACJ/B;IACE,MAAAyB;IACC,OAAAC;IACA,OAAAC;IACG,UAAAC;IAMC,WAAAE;GAAgC,CAAA;GAC3C5C,EAAA,MAAAc;GAAAd,EAAA,MAAAuC;GAAAvC,EAAA,MAAAwC;GAAAxC,EAAA,MAAAyC;GAAAzC,EAAA,MAAA0C;GAAA1C,EAAA,MAAA6C;EAAA,OAAAA,MAAA7C,EAAA;EAAA,IAAA8C;EAAA,IAAA9C,EAAA,QAAAyB,MAAAzB,EAAA,QAAA2B,OAAA3B,EAAA,QAAA4B,OAAA5B,EAAA,QAAAsC,OAAAtC,EAAA,QAAA6C,KAAA;GA1BJC,MAAA,qBAAC,IAAD;IAAiB,WAAAnB;IAAe,SAAAC;IAAhC,UAAA,CACEU,KAaAO,GAdI;;GA2BE7C,EAAA,MAAAyB;GAAAzB,EAAA,MAAA2B;GAAA3B,EAAA,MAAA4B;GAAA5B,EAAA,MAAAsC;GAAAtC,EAAA,MAAA6C;GAAA7C,EAAA,MAAA8C;EAAA,OAAAA,MAAA9C,EAAA;EAAA,OA3BR8C;CA2BQ;CAIZ,IAAItC,aAAa,qBAAmB;EAAA,IAAAc;EAAA,IAAAtB,EAAA,QAAAK,GAAA;GAKvBiB,KAAAjB,EAAE,4BAA4B;GAACL,EAAA,MAAAK;GAAAL,EAAA,MAAAsB;EAAA,OAAAA,KAAAtB,EAAA;EAC/B,MAAAuB,KAAC7D,SAAD;EAAwC,IAAAmE;EAAA,IAAA7B,EAAA,QAAAqB,QAAA;GACrCQ,MAAAkB,YAAW1B,OAAO1B,SAASsC,QAAKC,OAAOxE,KAAM,CAAC;GAACsC,EAAA,MAAAqB;GAAArB,EAAA,MAAA6B;EAAA,OAAAA,KAAA7B,EAAA;EAAA,IAAA8B;EAAA,IAAA9B,EAAA,QAAAc,UAAAd,EAAA,QAAAsB,MAAAtB,EAAA,QAAAuB,MAAAvB,EAAA,QAAA6B,IAAA;GAL3DC,KAAA,oBAAC,WAAD;IAAU,GACJhB;IACC,MAAA;IACE,OAAAQ;IACA,OAAAC;IACG,UAAAM;GAA+C,CAAA;GACzD7B,EAAA,MAAAc;GAAAd,EAAA,MAAAsB;GAAAtB,EAAA,MAAAuB;GAAAvB,EAAA,MAAA6B;GAAA7B,EAAA,MAAA8B;EAAA,OAAAA,KAAA9B,EAAA;EAAA,OANF8B;CAME;CAIN,IAAIvB,YAAY,YAAYA,YAAY,gBAAc;EAAA,IAAAiB;EAAA,IAAAG;EAAA,IAAAC;EAAA,IAAAN;EAAA,IAAAC;EAAA,IAAAM;EAAA,IAAAC;EAAA,IAAA9B,EAAA,QAAAzC,UAAAyC,EAAA,QAAAtC,SAAAsC,EAAA,QAAAO,SAAA;GACpD,MAAAtC,UAAgBH,eAAeP,MAAM;GACrC,MAAAyF,WAAiBzC,YAAY;GAAe,IAAAyB;GAAA,IAAAhC,EAAA,QAAAtC,OAAA;IAC3BsE,MAAAjE,MAAK8B,QAASnC,KAAqC,IAA3BA,QAAxB,CAAA;IAAoDsC,EAAA,MAAAtC;IAAAsC,EAAA,MAAAgC;GAAA,OAAAA,MAAAhC,EAAA;GAArE,MAAAiD,WAAiBjB;GAGdR,KAAAnF;GACMiF,KAAA;GACLC,KAAA;GACUyB,KAAAA;GACD/E,KAAAA;GACa+E,MAAAA;GAEpBpB,MAAAoB,WACI/E,QAAOT,QAAQe,WAAY0E,SAAQC,SAAU3E,OAAMb,KAAM,CACA,IAAxDO,QAAOkF,MAAMC,aAAY7E,SAAMb,UAAWA,KAAa,KAAvD;GAAyDsC,EAAA,MAAAzC;GAAAyC,EAAA,MAAAtC;GAAAsC,EAAA,MAAAO;GAAAP,EAAA,MAAAwB;GAAAxB,EAAA,MAAA2B;GAAA3B,EAAA,MAAA4B;GAAA5B,EAAA,MAAAsB;GAAAtB,EAAA,MAAAuB;GAAAvB,EAAA,MAAA6B;GAAA7B,EAAA,MAAA8B;EAAA,OAAA;GAAAN,KAAAxB,EAAA;GAAA2B,MAAA3B,EAAA;GAAA4B,MAAA5B,EAAA;GAAAsB,KAAAtB,EAAA;GAAAuB,KAAAvB,EAAA;GAAA6B,KAAA7B,EAAA;GAAA8B,KAAA9B,EAAA;EAAA;EAAA,IAAAgC;EAAA,IAAAhC,EAAA,QAAAqB,QAAA;GAItDW,OAAAqB,GAAAC,WACRjC,OACEtD,MAAK8B,QAASuB,MAAsE,IAA9DA,OAAI/C,IAAKkF,MAAqD,IAAxBnC,QAAI1D,SAAJgC,KAAAA,CAC9D;GAACM,EAAA,MAAAqB;GAAArB,EAAA,MAAAgC;EAAA,OAAAA,MAAAhC,EAAA;EAAA,IAAAmC;EAAA,IAAAnC,EAAA,QAAAK,GAAA;GAEU8B,OAAAqB,WACX,oBAAC,WAAD;IAAU,GAAKA;IAAa,MAAA;IAAe,OAAAnD,EAAE,oBAAoB;GAAC,CAAA;GACnEL,EAAA,MAAAK;GAAAL,EAAA,MAAAmC;EAAA,OAAAA,MAAAnC,EAAA;EAAA,IAAAsC;EAAA,IAAAtC,EAAA,QAAAwB,MAAAxB,EAAA,QAAA2B,OAAA3B,EAAA,QAAA4B,OAAA5B,EAAA,QAAAgC,OAAAhC,EAAA,QAAAmC,OAAAnC,EAAA,QAAAsB,MAAAtB,EAAA,QAAAuB,MAAAvB,EAAA,QAAA6B,MAAA7B,EAAA,QAAA8B,IAAA;GApBHQ,MAAA,oBAAC,IAAD;IACO,MAAAhB;IACL,WAAAC;IACUyB,UAAAA;IACD/E,SAAAA;IACa+E,sBAAAA;IAEpB,OAAApB;IAIoB,sBAAA6B;IACN,gBAAAC;IACN,UAAA1B;IAKG,aAAAG;GAEZ,CAAA;GACDnC,EAAA,MAAAwB;GAAAxB,EAAA,MAAA2B;GAAA3B,EAAA,MAAA4B;GAAA5B,EAAA,MAAAgC;GAAAhC,EAAA,MAAAmC;GAAAnC,EAAA,MAAAsB;GAAAtB,EAAA,MAAAuB;GAAAvB,EAAA,MAAA6B;GAAA7B,EAAA,MAAA8B;GAAA9B,EAAA,MAAAsC;EAAA,OAAAA,MAAAtC,EAAA;EAAA,OArBFsC;CAqBE;CAIN,IAAI/B,YAAY,WAAS;EAKZ,MAAAe,KAAA,OAAO5D,UAAU,YAAYyB,OAAOzB,KAAU,IAA9C;EAA+C,IAAA6D;EAAA,IAAAvB,EAAA,SAAAqB,QAAA;GAC5CE,MAAAoC,YACRtC,OAAOY,QAAKC,OAAOxE,UAAW,KAAvBgC,KAAAA,IAAwCuC,QAAKC,OAAOxE,UAAW,MAAM;GAACsC,EAAA,OAAAqB;GAAArB,EAAA,OAAAuB;EAAA,OAAAA,KAAAvB,EAAA;EAAA,IAAA2B;EAAA,IAAAE;EAAA,IAAAC;EAAA,IAAA9B,EAAA,SAAAG,OAAAC,IAAA,2BAAA,GAAA;GAG/EyB,KAAA,oBAAC,UAAD;IAAgB,OAAA;IAAG,UAAA;GAAV,CAAA;GACTC,KAAA,oBAAC,UAAD;IAAgB,OAAA;IAAO,UAAA;GAAd,CAAA;GACTH,MAAA,oBAAC,UAAD;IAAgB,OAAA;IAAQ,UAAA;GAAf,CAAA;GAA2B3B,EAAA,OAAA2B;GAAA3B,EAAA,OAAA6B;GAAA7B,EAAA,OAAA8B;EAAA,OAAA;GAAAH,MAAA3B,EAAA;GAAA6B,KAAA7B,EAAA;GAAA8B,KAAA9B,EAAA;EAAA;EAAA,IAAA4B;EAAA,IAAA5B,EAAA,SAAAc,UAAAd,EAAA,SAAAsB,MAAAtB,EAAA,SAAAuB,IAAA;GAVtCK,MAAA,qBAAC,WAAD;IAAU,GACJd;IACJ,QAAA;IACO,OAAAQ;IACG,UAAAC;IAJZ,UAAA;KAQEM;KACAC;KACAH;IAVQ;;GAWE3B,EAAA,OAAAc;GAAAd,EAAA,OAAAsB;GAAAtB,EAAA,OAAAuB;GAAAvB,EAAA,OAAA4B;EAAA,OAAAA,MAAA5B,EAAA;EAAA,OAXZ4B;CAWY;CAIhB,IAAIrB,YAAY,QAAM;EAAA,IAAAe;EAAA,IAAAtB,EAAA,SAAAtC,OAAA;GAKT4D,KAAA1C,iBAAiBlB,KAAK;GAACsC,EAAA,OAAAtC;GAAAsC,EAAA,OAAAsB;EAAA,OAAAA,KAAAtB,EAAA;EAAA,IAAAuB;EAAA,IAAAvB,EAAA,SAAAqB,QAAA;GACpBE,MAAAqC,YAAWvC,OAAO9B,mBAAmB0C,QAAKC,OAAOxE,KAAY,KAA3C,EAA4C;GAACsC,EAAA,OAAAqB;GAAArB,EAAA,OAAAuB;EAAA,OAAAA,KAAAvB,EAAA;EAAA,IAAA6B;EAAA,IAAA7B,EAAA,SAAAG,OAAAC,IAAA,2BAAA,GAAA;GAC9DyB,KAAA,EAAAO,YAAc,EAAAC,QAAU,KAAK,EAAE;GAACrC,EAAA,OAAA6B;EAAA,OAAAA,KAAA7B,EAAA;EAAA,IAAA8B;EAAA,IAAA9B,EAAA,SAAAc,UAAAd,EAAA,SAAAsB,MAAAtB,EAAA,SAAAuB,IAAA;GAL7CO,KAAA,oBAAC,WAAD;IAAU,GACJhB;IACC,MAAA;IACE,OAAAQ;IACG,UAAAC;IACC,WAAAM;GAAgC,CAAA;GAC3C7B,EAAA,OAAAc;GAAAd,EAAA,OAAAsB;GAAAtB,EAAA,OAAAuB;GAAAvB,EAAA,OAAA8B;EAAA,OAAAA,KAAA9B,EAAA;EAAA,OANF8B;CAME;CAOI,MAAAR,KAAAf,YAAY,WAAZ,WAAA;CACC,MAAAgB,KAAC7D,SAAD;CAA4C,IAAAmE;CAAA,IAAA7B,EAAA,SAAAqB,UAAArB,EAAA,SAAAO,SAAA;EACzCsB,MAAAgC,YACRxC,OAAOd,YAAY,WAAWZ,SAASsC,QAAKC,OAAOxE,KAA2B,IAAjBuE,QAAKC,OAAOxE,KAAM;EAACsC,EAAA,OAAAqB;EAAArB,EAAA,OAAAO;EAAAP,EAAA,OAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAAA,IAAA8B;CAAA,IAAA9B,EAAA,SAAAc,UAAAd,EAAA,SAAAsB,MAAAtB,EAAA,SAAAuB,MAAAvB,EAAA,SAAA6B,IAAA;EALpFC,KAAA,oBAAC,WAAD;GAAU,GACJhB;GACE,MAAAQ;GACC,OAAAC;GACG,UAAAM;EACwE,CAAA;EAElF7B,EAAA,OAAAc;EAAAd,EAAA,OAAAsB;EAAAtB,EAAA,OAAAuB;EAAAvB,EAAA,OAAA6B;EAAA7B,EAAA,OAAA8B;CAAA,OAAAA,KAAA9B,EAAA;CAAA,OAPF8B;AAOE;AA7IC,SAAAyB,OAAAO,UAAA;CAAA,OA8FgDvF,SAAMb;AAAM;AA9F5D,SAAAgG,OAAAK,UAAA;CAAA,OA2F6BxF,SAAMD;AAAM;AA3FzC,SAAAmF,QAAAO,UAAAC,gBAAA;CAAA,OA0FmD1F,SAAMb,UAAWuG,eAAcvG;AAAM;;ACzG/F,MAAM4I,uBAAuB;CAC3BC,UAAU;CACVC,mBAAmB;CACnBC,aAAa;CACbC,sBAAsB;AACxB;;AAKA,MAAMG,cAAc;AACpB,MAAMC,cAAc;AACpB,MAAMC,cAAc;AAEpB,MAAaC,oBAAwB;CACnC,MAAMC,QAAQtB,gBAAgB;CAC9B,MAAM,EAAEuB,MAAMxB,iBAAe;CAC7B,MAAM,CAACyB,UAAUC,eAAe3B,SAA6B,IAAI;CACjE,MAAM6B,cAAc9B,OAAoC,IAAI;CAC5D,MAAM+B,YAAY/B,OAA0B,IAAI;CAEhD,MAAMiC,oBAAoBR,MAAMS,kBAAkB,CAAC,CAACC,QAAQC,WAAWA,OAAOC,aAAa,CAAC;CAE5F,MAAMC,cAAc;EAClBV,YAAY,IAAI;EAChBE,YAAYS,UAAU;CACxB;CAEA1C,UAAU,mBAAoB8B,WAAWW,MAAM,IAAIV,YAAYG,UAAUQ,OAAO,GAAI,EAClFC,SAASP,kBAAkBQ,SAAS,EACtC,CAAC;CAED,IAAI,CAACR,kBAAkBQ,QAAQ,OAAO;CAEtC,MAAMC,cAAcC,YAAyClB,MAAMoB,iBAAiBF,OAAO;CAE3F,MAAMG,aACJV,UACAW,eAA6B,WACH;EAC1BC,IAAIZ,SAAOY;EACXC,UAAUC,OAAOC,WAAW;EAC5BC,OAAO;EACPC,UAAUhD,mBACP+B,SAAOkB,UAAUC,MAAuCC,WAAW,MACtE,CAAC,CAAC;EACFT;CACF;CAEA,OACE,oBAAC,WAAD;EACE,QAAQtB,MAAMgC,MAAMC;EACpB,WAAWf,cAAYA;EAErBe,WAAAA,kBAAkB;GAClB,IAAI,CAACA,cAAcjB,QACjBX,YAAYS,YAAYO,UAAUb,kBAAkB,EAAE;GAGxD,MAAM0B,OAAOD,cAAcjB,SACvBiB,gBACA5B,YAAYS,UACV,CAACT,YAAYS,OAAO,IACpB,CAAA;GACN,MAAMqB,cAAcF,cAAcvB,OAAO7B,cAAc,CAAC,CAACmC;GAEzD,MAAMoB,UAAUZ,UAAkBa,UAChCpB,WACEiB,KAAKK,KAAK7B,WACRA,OAAOc,aAAaA,WAChB;IAAE,GAAGd;IAAQ,GAAG2B;IAAO,GAAI,WAAWA,SAAS,EAAEV,OAAOU,MAAMV,SAAS,GAAG;GAAG,IAC7EjB,MACN,CACF;GAEF,MAAM8B,UAAUhB,eAAqB;IACnC,MAAMiB,OAAOP,KAAKxB,QAAQA,aAAWA,SAAOc,aAAaA,UAAQ;IACjEnB,YAAYS,UAAU;IACtBG,WAAWwB,IAAI;IACf,IAAI,CAACA,KAAKzB,QAAQH,MAAM;GAC1B;GAEA,MAAM6B,YACJzB,WAAW,CAAC,GAAGiB,MAAMb,UAAUb,kBAAkB,IAAI0B,KAAK,EAAE,EAAEZ,gBAAgB,KAAK,CAAC,CAAC;GAEvF,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,SAAD;IAAS,OAAOlC,cAAca,EAAE,sBAAsB,GAAG,WAAW;IAClE,UAAA,oBAAC,YAAD;KACE,KAAKK;KACL,WAAWnB,mBAAmBwD;KAC9B,MAAK;KACL,OAAOR,cAAc,YAAY;KACjC,UAAUS,UAAUzC,YAAYyC,MAAMC,aAAa;KAEnD,UAAA,oBAAC,OAAD;MAAO,cAAcV;MAAa,OAAM;MAAU,SAAQ;MACxD,UAAA,oBAAC,YAAD,EAAY,UAAS,QAAO,CAAA;KACvB,CAAA;IACG,CAAA;GACL,CAAA,GAET,qBAAC,SAAD;IACYjC;IACV,MAAM,CAAC,CAACA;IACR,SAASW;IACT,cAAc;KAAEiC,UAAU;KAAUC,YAAY;IAAQ;IACxD,iBAAiB;KAAED,UAAU;KAAOC,YAAY;IAAQ;IACxD,WAAW,EACTC,OAAO;KACLC,WAAW9D,mBAAmB+D;KAC9BC,IAAI,EAAEC,UAAU,qBAAqB;IACvC,EACF;IAXF,UAAA,CAcE,oBAAC,KAAD;KACE,IAAI;MACFC,SAAS;MACTC,eAAe;MACfC,KAAK;MACLC,GAAG;MACHC,WAAW;MACXC,UAAU;KACZ;KAECxB,UAAAA,KAAKK,KAAK7B,UAAQiD,UAAU;MAC3B,MAAMhD,WAASX,MAAM4D,UAAUlD,SAAOa,EAAE;MACxC,IAAI,CAACZ,YAAU,CAACD,SAAOc,UAAU,OAAO;MAExC,MAAMO,UACHpB,SAAOkB,UAAUC,MAAuCC,WAAW;MACtE,MAAM8B,YAAYjF,mBAAmBmD,OAAO;MAE5C,OACE,qBAAC,KAAD;OAEE,IAAI;QAAEsB,SAAS;QAAQS,YAAY;QAAUP,KAAK;OAAI;OAFxD,UAAA;QAIE,oBAAC,YAAD;SACE,MAAK;SACL,cAAW;SACX,IAAI,EAAEQ,YAAY,EAAE;SACpB,eAAevB,OAAO9B,SAAOc,QAAS;SAEtC,UAAA,oBAAC,OAAD,EAAO,UAAS,QAAO,CAAA;QACb,CAAA;QAIZ,oBAAC,aAAD;SACE,MAAK;SACL,IAAI;UACFwC,OAAOpE;UACPmE,YAAY;UACZE,YAAYN,UAAU,IAAI,WAAW;SACvC;SAEA,UAAA,qBAAC,QAAD;UACE,UAAUA,QAAQ;UAClB,OAAOjD,SAAOY,gBAAgB;UAC9B,YAAY,EAAE,cAAc,iBAAiB;UAC7C,WAAWsB,YACT3B,WACEiB,KAAKK,KAAK2B,UAAU;WAClB,GAAGA;WACH5C,cAAcsB,QAAMuB,OAAOxC;UAC7B,EAAE,CACJ;UAVJ,UAAA,CAaE,oBAAC,UAAD;WAAU,OAAM;WAAO1B,UAAAA,EAAE,kBAAkB;UAAY,CAAA,GACvD,oBAAC,UAAD;WAAU,OAAM;WAAMA,UAAAA,EAAE,iBAAiB;UAAY,CAAA,CAC/C;;QACG,CAAA;QAEb,oBAAC,cAAD;SACE,MAAK;SACL,IAAI;UAAE+D,OAAOnE;UAAakE,YAAY;SAAE;SACxC,kBAAA;SACA,SAASvD;SACT,OAAOG;SACP,uBAAuByD,QAAQC,aAAaD,OAAO7C,OAAO8C,SAAS9C;SACnE,iBAAiB6C,aAAWlF,YAAYkF,QAAM;SAC9C,WAAWE,GAAG7B,WACZL,OAAO1B,SAAOc,UAAW;UACvBD,IAAIkB,OAAKlB;UACTK,UAAUhD,mBACP6D,OAAKZ,UAAUC,MAAuCC,WACrD,MACJ,CAAC,CAAC;UACFJ,OAAO;SACT,CAAC;SAEH,cAAc4C,WACZ,oBAAC,WAAD;UAAW,GAAIA;UAAQ,MAAK;UAAQ,OAAOtE,EAAE,oBAAoB;SAAE,CAAA;QACnE,CAAA;QAGJ,qBAAC,aAAD;SAAa,MAAK;SAAQ,IAAI;UAAE+D,OAAOnE;UAAakE,YAAY;SAAE;SAAlE,UAAA,CACE,oBAAC,YAAD,EAAA,UAAa9D,EAAE,uBAAuB,EAAc,CAAA,GACpD,oBAAC,QAAD;UACE,OAAOA,EAAE,uBAAuB;UAChC,OAAOS,SAAOkB,YAAYiC,UAAU;UACpC,WAAWjB,YACTR,OAAO1B,SAAOc,UAAW;WACvBI,UAAUgB,QAAMuB,OAAOxC;WACvBA,OAAO;UACT,CAAC;UAGFkC,UAAAA,UAAUtB,KAAKX,aACd,oBAAC,UAAD;WAAyB,OAAOA;WAC7BG,UAAAA,YAAY,UAAUH,YAAYvC,uBAC/BY,EAAEZ,qBAAqBuC,SAAyB,IAChD3B,EAAE,0BAA0B2B,UAAU;UAClC,GAJKA,QAIL,CACX;SACK,CAAA,CACG;;QAEb,oBAAC,KAAD;SAAK,IAAI;UAAEoC,OAAOlE;UAAa0E,UAAU;SAAE;SACzC,UAAA,oBAAC,mBAAD;UAEE,QAAQ7D;UACR,QAAQD;UACR,WAAWiB,UAAUS,OAAO1B,SAAOc,UAAW,EAAEG,MAAM,CAAC;SAAE,GAHpD,GAAGhB,SAAOY,GAAE,GAAIb,SAAOkB,UAG6B;QAExD,CAAA;OACF;MA7FElB,GAAAA,SAAOc,QA6FT;KAET,CAAC;IACE,CAAA,GAGL,qBAAC,KAAD;KACE,IAAI;MACF6B,SAAS;MACToB,gBAAgB;MAChBlB,KAAK;MACLC,GAAG;MACHkB,WAAW;MACXC,aAAa;KACf;KARF,UAAA,CAUE,oBAAC,QAAD;MAAQ,MAAK;MAAQ,WAAW,oBAAC,KAAD,CAAI,CAAA;MAAK,SAASjC;MAC/CzC,UAAAA,EAAE,wBAAwB;KACrB,CAAA,GACPgC,cAAcjB,SAAS,KACtB,oBAAC,QAAD;MACE,MAAK;MACL,OAAM;MACN,WAAW,oBAAC,eAAD,CAAc,CAAA;MACzB,eAAe;OACbX,YAAYS,UAAU;OACtBd,MAAM4E,mBAAmB,IAAI;MAC/B;MAEC3E,UAAAA,EAAE,2BAA2B;KACxB,CAAA,CAEP;IACE,CAAA,CAAA;GACX,CAAA,CAAA,EAAA,CAAA;EAEJ;CACS,CAAA;AAEf;;AClSA,MAAa+F,gBAAqEG,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAH,iBAAAC,UAAAO,OAAAN;CAEjF,MAAAD,WAAAO,OAAAC,KAAAA,IAAA,MAAAD;CAEA,MAAAE,QAAcd,gBAAgB;CAC9B,MAAA,EAAAe,MAAchB,iBAAe;CAC7B,MAAAiB,QAAcxB,SAAS;CACvB,MAAAyB,WAAiBrB,OAAyB,IAAI;CAC9C,MAAAsB,YAAkBtB,OAA0B,IAAI;CAChD,MAAA,CAAAuB,OAAAC,YAA0BvB,SAAUiB,MAAKO,MAAMC,gBAAZ,EAAsD;CACzF,MAAA,CAAAC,UAAAC,eAAgC3B,SAAS,CAAC,CAACO,eAAe;CAG1D,MAAAqB,UAAiBX,MAAKO,MAAMC,gBAAZ;CAAuD,IAAAI;CAAA,IAAAC;CAAA,IAAApB,EAAA,OAAAkB,WAAAlB,EAAA,OAAAF,YAAAE,EAAA,OAAAO,SAAAP,EAAA,OAAAY,OAAA;EAC7DO,WAAA;GACR,IAAIP,UAAUM,SAAO;GACrB,MAAAG,KAAWC,iBAAiBf,MAAKgB,gBAAiBX,KAAK,GAAGd,QAAQ;GAAE,aACvD0B,aAAaH,EAAE;EAAC;EAC5BD,KAAA;GAACR;GAAOM;GAASpB;GAAUS;EAAK;EAACP,EAAA,KAAAkB;EAAAlB,EAAA,KAAAF;EAAAE,EAAA,KAAAO;EAAAP,EAAA,KAAAY;EAAAZ,EAAA,KAAAmB;EAAAnB,EAAA,KAAAoB;CAAA,OAAA;EAAAD,KAAAnB,EAAA;EAAAoB,KAAApB,EAAA;CAAA;CAJpCZ,UAAU+B,IAIPC,EAAiC;CAAC,IAAAK;CAAA,IAAAzB,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAEpBqB,WAAA;GACfZ,SAAS,EAAE;GACXtB,gBAAgB0B,YAAY,KAAK,CAAC;GAClCN,UAASO,SAAeQ,MAAC;EAAC;EAC3B1B,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAJD,MAAA2B,WAAiBF;CAIf,IAAAG;CAAA,IAAA5B,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAEawB,WAAA;GACbrC,gBAAgB0B,YAAY,IAAI,CAAC;GACjCP,SAAQQ,SAAeQ,MAAC;EAAC;EAC1B1B,EAAA,KAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAHD,MAAA6B,SAAeD;CAKf1C,UAAU,aAAa2C,MAAM;CAAC,IAAAC;CAAA,IAAA9B,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAKtB0B,KAAA;GAAAC,SAAW;GAAMC,YAAc;EAAS;EAAChC,EAAA,KAAA8B;CAAA,OAAAA,KAAA9B,EAAA;CAAA,IAAAiC;CAAA,IAAAjC,EAAA,QAAAQ,GAAA;EAE7ByB,KAAAtC,cAAca,EAAE,qBAAqB,GAAG,WAAW;EAACR,EAAA,MAAAQ;EAAAR,EAAA,MAAAiC;CAAA,OAAAA,KAAAjC,EAAA;CAYrD,MAAAkC,KAAAlB,WAAA,IAAA;CACM,MAAAmB,KAAAnB,WAAA,SAAA;CAA0B,IAAAoB;CAAA,IAAApC,EAAA,QAAAS,MAAA4B,aAAA;EAC7BD,MAAA3B,MAAK4B,YAAYC,OAAQ,CAAC,SAAS,CAAC;EAACtC,EAAA,MAAAS,MAAA4B;EAAArC,EAAA,MAAAoC;CAAA,OAAAA,MAAApC,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAAoC,OAAApC,EAAA,QAAAkC,MAAAlC,EAAA,QAAAmC,IAAA;EAP/CI,MAAA;GAAAC,UACQ;GAAOC,OACV;GAAaC,QACZ;GAAaC,QACb;GAACC,SACAV;GAAgBW,eACVV;GAA0BW,YAC7BV;EACd;EAACpC,EAAA,MAAAoC;EAAApC,EAAA,MAAAkC;EAAAlC,EAAA,MAAAmC;EAAAnC,EAAA,MAAAuC;CAAA,OAAAA,MAAAvC,EAAA;CAAA,IAAA+C;CAAA,IAAA/C,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;EAED2C,MAAA,oBAAC,QAAD,EAAiB,UAAA,QAAO,CAAA;EAAG/C,EAAA,MAAA+C;CAAA,OAAAA,MAAA/C,EAAA;CAAA,IAAAgD;CAAA,IAAAhD,EAAA,QAAAgB,YAAAhB,EAAA,QAAAuC,KAAA;EAhB7BS,MAAA,oBAAC,YAAD;GACOrC,KAAAA;GACA,MAAA;GACM,cAAA;GACJK,OAAAA;GACEa,SAAAA;GACL,IAAAU;GAUJQ,UAAAA;EAhBS,CAAA;EAiBE/C,EAAA,MAAAgB;EAAAhB,EAAA,MAAAuC;EAAAvC,EAAA,MAAAgD;CAAA,OAAAA,MAAAhD,EAAA;CAAA,IAAAiD;CAAA,IAAAjD,EAAA,QAAAgD,OAAAhD,EAAA,QAAAiC,IAAA;EAlBfgB,MAAA,oBAAC,SAAD;GAAgB,OAAAhB;GACde,UAAAA;EADM,CAAA;EAmBEhD,EAAA,MAAAgD;EAAAhD,EAAA,MAAAiC;EAAAjC,EAAA,MAAAiD;CAAA,OAAAA,MAAAjD,EAAA;CAAA,IAAAkD;CAAA,IAAAlD,EAAA,QAAAQ,GAAA;EAMK0C,MAAA1C,EAAE,qBAAqB;EAACR,EAAA,MAAAQ;EAAAR,EAAA,MAAAkD;CAAA,OAAAA,MAAAlD,EAAA;CAAA,IAAAmD;CAAA,IAAAC;CAAA,IAAApD,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;EAC3B+C,OAAAE,UAAWxC,SAASwC,MAAKC,OAAO1C,KAAM;EACrCwC,OAAAG,YAAWF,QAAKG,QAAS,YAAY7B,SAAS;EAAC3B,EAAA,MAAAmD;EAAAnD,EAAA,MAAAoD;CAAA,OAAA;EAAAD,MAAAnD,EAAA;EAAAoD,MAAApD,EAAA;CAAA;CAAA,IAAAyD;CAAA,IAAAzD,EAAA,QAAAH,mBAAAG,EAAA,QAAAY,OAAA;EAClD6C,OAAAC,YACN,CAAC9C,SAAD,CACCf,mBADD,CAECwD,QAAKM,cAAcC,eAAwBC,SAACR,QAAKS,aAAc,KAChE7C,YAAY,KAAK;EAACjB,EAAA,MAAAH;EAAAG,EAAA,MAAAY;EAAAZ,EAAA,MAAAyD;CAAA,OAAAA,MAAAzD,EAAA;CAEb,MAAA+D,MAAA,CAAC/C;CAIC,MAAAgD,MAAAhD,WAAA,MAAA;CACE,MAAAiD,MAAAjD,WAAA,IAAA;CACM,MAAAkD,MAAAlD,WAAA,SAAA;CAA0B,IAAAmD;CAAA,IAAAnE,EAAA,QAAAS,MAAA4B,aAAA;EAC7B8B,MAAA1D,MAAK4B,YAAYC,OAAQ,CAAC,SAAS,SAAS,CAAC;EAACtC,EAAA,MAAAS,MAAA4B;EAAArC,EAAA,MAAAmE;CAAA,OAAAA,MAAAnE,EAAA;CAAA,IAAAoE;CAAA,IAAApE,EAAA,QAAAgE,OAAAhE,EAAA,QAAAiE,OAAAjE,EAAA,QAAAkE,OAAAlE,EAAA,QAAAmE,KAAA;EANxDC,MAAA;GAAA5B,UACQ;GAAO6B,WACN;GAAM5B,OACVuB;GAAmBpB,SACjBqB;GAAgBpB,eACVqB;GAA0BpB,YAC7BqB;EACd;EAACnE,EAAA,MAAAgE;EAAAhE,EAAA,MAAAiE;EAAAjE,EAAA,MAAAkE;EAAAlE,EAAA,MAAAmE;EAAAnE,EAAA,MAAAoE;CAAA,OAAAA,MAAApE,EAAA;CAAA,IAAAsE;CAAA,IAAAtE,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;EAIKkE,MAAA,oBAAC,gBAAD;GAAyB,UAAA;GACvB,UAAA,oBAAC,QAAD,EAAiB,UAAA,QAAO,CAAA;EADX,CAAA;EAEEtE,EAAA,MAAAsE;CAAA,OAAAA,MAAAtE,EAAA;CAAA,IAAAuE;CAAA,IAAAvE,EAAA,QAAAG,OAAAC,IAAA,2BAAA,GAAA;EALZmE,MAAA;GAAAC,OACF;IAAAC,gBAEHH;IAEiBI,cAGjB,oBAAC,gBAAD;KAAyB,UAAA;KACvB,UAAA,oBAAC,YAAD;MACO,MAAA;MACA,MAAA;MACM,cAAA;MACF/C,SAAAA;MACL,IAAA,EAAAgD,IAAM,KAAM;MAEhB,UAAA,oBAAC,OAAD,EAAgB,UAAA,QAAO,CAAA;KAPd,CAAA;IADE,CAAA;GAYnB;GAACC,WACU,EAAA,cAAgB,SAAS;EACtC;EAAC5E,EAAA,MAAAuE;CAAA,OAAAA,MAAAvE,EAAA;CAAA,IAAA6E;CAAA,IAAA7E,EAAA,QAAAkD,OAAAlD,EAAA,QAAAyD,OAAAzD,EAAA,QAAA+D,OAAA/D,EAAA,QAAAoE,OAAApE,EAAA,QAAAY,OAAA;EA5CHiE,MAAA,oBAAC,WAAD;GACYnE;GACL,MAAA;GACEE;GACM,aAAAsC;GACH,UAAAC;GACC,WAAAC;GACH,QAAAK;GAMD,OAAAM;GACH,IAAAK;GAQO,WAAAG;EAsBV,CAAA;EACDvE,EAAA,MAAAkD;EAAAlD,EAAA,MAAAyD;EAAAzD,EAAA,MAAA+D;EAAA/D,EAAA,MAAAoE;EAAApE,EAAA,MAAAY;EAAAZ,EAAA,MAAA6E;CAAA,OAAAA,MAAA7E,EAAA;CAAA,IAAA8E;CAAA,IAAA9E,EAAA,QAAAiD,OAAAjD,EAAA,QAAA6E,KAAA;EAtEJC,MAAA,qBAAC,KAAD;GACa,WAAApF,mBAAkBqF;GACzB,IAAAjD;GAFN,UAAA,CAIEmB,KAqBA4B,GAzBE;;EAuEE7E,EAAA,MAAAiD;EAAAjD,EAAA,MAAA6E;EAAA7E,EAAA,MAAA8E;CAAA,OAAAA,MAAA9E,EAAA;CAAA,OAvEN8E;AAuEM;;AC9GV,MAAaI,cAAsCa,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAF,cAAAC;CAClD,MAAAM,QAAcX,gBAAgB;CAC9B,MAAAY,WAAiBd,OAA4B,IAAI;CAAE,IAAAe;CAAA,IAAAP,EAAA,OAAAK,MAAAG,MAAAC,WAAAC,UAAA;EACVH,WAAMI,KAAIC,IAAKP,MAAKG,MAAMC,WAAWC,UAAW,EAAE;EAACV,EAAA,KAAAK,MAAAG,MAAAC,WAAAC;EAAAV,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAA5F,MAAA,CAAAa,UAAAC,eAAgCrB,SAASc,EAAmD;CAAE,IAAAQ;CAAA,IAAAC;CAAA,IAAAhB,EAAA,OAAAF,WAAA;EAEpFiB,WAAA;GACR,MAAAE,YAAkBX,SAAQY,SAAiBC,QAAC,yBAAyB;GACrE,IAAI,CAACF,WAAS;GAEd,MAAAG,gBAAgB;IACd,MAAAC,QAAc,CAAC,SAAS,OAAO,CAAC,CAAAC,QAC9BC,OAAAC,aACED,SAASN,UAASQ,cAAeD,QAA+B,CAAC,EAAAE,sBAAQ,CAAC,CAAAC,UAAjE,IACX,CACF;IACAb,YAAYH,KAAIiB,IAAK,GAAGjB,KAAIkB,OAAQZ,UAASa,eAAgBT,SAASvB,SAAS,CAAC,CAAC;GAAC;GAGpFsB,QAAQ;GAER,MAAAW,WAAiB,IAAIC,eAAeZ,OAAO;GAC3CW,SAAQE,QAAShB,SAAS;GAAC,aACdc,SAAQG,WAAY;EAAC;EACjClB,KAAA,CAAClB,SAAS;EAACE,EAAA,KAAAF;EAAAE,EAAA,KAAAe;EAAAf,EAAA,KAAAgB;CAAA,OAAA;EAAAD,KAAAf,EAAA;EAAAgB,KAAAhB,EAAA;CAAA;CAlBdT,UAAUwB,IAkBPC,EAAW;CAAC,IAAAmB;CAAA,IAAAnC,EAAA,OAAAa,YAAAb,EAAA,OAAAF,aAAAE,EAAA,OAAAK,OAAA;EAGb8B,KAAA,oBAAA,YAAA,EAAA,UACGC,MAAKC,KAAM,EAAAC,QAAUzB,SAAS,IAAG0B,GAAAC,UAChC,qBAAC,UAAD;GAEO,KAAAA,UAAU,IAAVlC,WAAAmC,KAAAA;GACM,WAAA5C,mBAAO6C;GACd,IAAA,EAAAf,QAAU7B,UAAU;GAJ1B,UAAA,CAMGO,MAAKsC,sBAAuB,CAAC,CAAAC,IAAKC,KAmBnC,GACA,oBAAC,WAAD;IAAW,eAAA;IAAuB,WAAAhD,mBAAOiD;IAAa,IAAA,EAAAC,GAAK,EAAE;GAAC,CAAA,CA1BvD;EACFP,GAAAA,KADE,CA4BV,EAAC,CAAA;EACDxC,EAAA,KAAAa;EAAAb,EAAA,KAAAF;EAAAE,EAAA,KAAAK;EAAAL,EAAA,KAAAmC;CAAA,OAAAA,KAAAnC,EAAA;CAAA,OA/BHmC;AA+BG;AAzD4C,SAAAU,MAAAG,QAAA;CAAA,OAmCvCrD,eAAeqD,MAiBf,IAhBE,oBAAC,WAAD;EAEa,WAAAnD,mBAAOqD;EACd,IAAA;GAAAC,IAAM;GAACC,IAAM;EAAO;EAExB,UAAA,oBAACK,UAAD,EAAqB,SAAA,OAAM,CAAA;CALnB,GACHT,OAAMC,EADH,IAQV,oBAAC,WAAD;EAEa,WAAApD,mBAAOqD;EACZ,OAAA;EACF,IAAA;GAAAE,IAAM;GAAGD,IAAM;EAAE;EAErB,UAAA,oBAACM,UAAD;GAAqB,SAAA;GAAkB,OAAA;GAAY,QAAA;GAAQ,IAAA,EAAAJ,IAAM,OAAO;EAAC,CAAA;CANjE,GACHL,OAAMC,EADH;AAQX;;;ACvCb,MAAM2B,uBAAqB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,GAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EACzBC,KAAA,oBAAC,SAAD;GACa,WAAAhB,mBAAkBiB;GACjB,aAAA;GACR,IAAA;IAAAC,QAAU;IAAKC,WAAa;IAAQC,IAAM;GAAI;EAAC,CAAA;EACnDT,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAJFK;AAIE;AAGJ,MAAaK,aAAiCL,OAAA;CAAA,MAAAL,IAAAC,EAAA,EAAA;CAAA,IAAAD,EAAA,OAAA,oEAAA;EAAA,KAAA,IAAAE,KAAA,GAAAA,KAAA,IAAAA,MAAA,GAAAF,EAAAE,MAAAC,OAAAC,IAAA,2BAAA;EAAAJ,EAAA,KAAA;CAAA;CAAC,MAAA,EAAAN,OAAAC,SAAAC,qBAAAC,uBAAAC,kBAAAO;CAO7C,MAAAM,QAAcvB,gBAAgB;CAC9B,MAAA,EAAAwB,MAAczB,iBAAe;CAAE,IAAA0B;CAAA,IAAAb,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAKvBS,KAAA;GAAAC,YACU;GAACC,SACJ;GAAMC,YACH;GAAQC,gBACJ;GAAKC,WACV;GAAEC,KACR;GAAIC,GACN;GAAIC,WACI;GAAYC,cACT;GAACC,aACF;EACf;EAACvB,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAAA,IAAAwB;CAAA,IAAAxB,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EAKKoB,KAAA;GAAAC,MAAQ;GAACC,UAAY;GAACX,SAAW;GAAMC,YAAc;GAAQG,KAAO;GAACV,IAAM;EAAI;EAACT,EAAA,KAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAN,OAAA;EAEnFiC,KAAAjC,SACC,oBAAC,YAAD;GACa,WAAAL,mBAAkBuC;GACrB,SAAA;GACR,QAAA;GACI,IAAA,EAAAC,YAAc,OAAO;GAExBnC,UAAAA;EANQ,CAAA;EAQZM,EAAA,KAAAN;EAAAM,EAAA,KAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA8B;CAAA,IAAA9B,EAAA,OAAAY,KAAAZ,EAAA,OAAAW,OAAA;EAGEmB,WAAA;GACC,MAAAC,QAAcpB,MAAKqB,kBAAmB,CAAC,CAAAC;GACvC,IAAI,CAACF,OAAK,OAAS;GAAK,OAGtB,oBAAC,YAAD;IACa,WAAA1C,mBAAkB6C;IACrB,SAAA;IACR,QAAA;IACM,OAAA;IAELtB,UAAAA,EAAE,8BAA8B,EAAAmB,MAAQ,CAAC;GANjC,CAAA;EAOE;EAEhB/B,EAAA,KAAAY;EAAAZ,EAAA,KAAAW;EAAAX,EAAA,KAAA8B;CAAA,OAAAA,KAAA9B,EAAA;CAAA,IAAAmC;CAAA,IAAAnC,EAAA,OAAA8B,MAAA9B,EAAA,OAAAW,MAAAyB,MAAAC,cAAA;EAfHF,KAAA,oBAAC,WAAD;GAAmB,QAAAxB,MAAKyB,MAAMC;GAC3BP,UAAAA;EADO,CAAA;EAgBE9B,EAAA,KAAA8B;EAAA9B,EAAA,KAAAW,MAAAyB,MAAAC;EAAArC,EAAA,MAAAmC;CAAA,OAAAA,KAAAnC,EAAA;CAAA,IAAAsC;CAAA,IAAAtC,EAAA,QAAA2B,MAAA3B,EAAA,QAAAmC,IAAA;EA/BdG,KAAA,qBAAC,KAAD;GACa,WAAAjD,mBAAkBkD;GACzB,IAAAf;GAFN,UAAA,CAIGG,IAWDQ,EAfE;;EAgCEnC,EAAA,MAAA2B;EAAA3B,EAAA,MAAAmC;EAAAnC,EAAA,MAAAsC;CAAA,OAAAA,KAAAtC,EAAA;CAAA,IAAAwC;CAAA,IAAAxC,EAAA,QAAAL,SAAA;EAGL6C,KAAA7C,WAAW,oBAAC,gBAAD,CAAe,CAAA;EAAGK,EAAA,MAAAL;EAAAK,EAAA,MAAAwC;CAAA,OAAAA,KAAAxC,EAAA;CAAA,IAAAyC;CAAA,IAAAzC,EAAA,QAAAH,uBAAA;EAE7B4C,KAAA,CAAC5C,yBAAyB,oBAAC,cAAD,CAAa,CAAA;EAAGG,EAAA,MAAAH;EAAAG,EAAA,MAAAyC;CAAA,OAAAA,KAAAzC,EAAA;CAAA,IAAA0C;CAAA,IAAA1C,EAAA,QAAAJ,qBAAA;EAC1C8C,KAAA,CAAC9C,uBAAuB,oBAAC,aAAD,CAAY,CAAA;EAAGI,EAAA,MAAAJ;EAAAI,EAAA,MAAA0C;CAAA,OAAAA,KAAA1C,EAAA;CAAA,IAAA2C;CAAA,IAAA3C,EAAA,QAAAF,eAAA;EAEvC6C,MAAA,CAAC7C,iBAAD,qBAAA,YAAA,EAAA,UAAA,CAEG,oBAAC,gBAAD,CAAe,CAAA,GACf,oBAAC,cAAD,CAAa,CAAA,CAAG,EAAA,CAAA;EAEnBE,EAAA,MAAAF;EAAAE,EAAA,MAAA2C;CAAA,OAAAA,MAAA3C,EAAA;CAAA,IAAA4C;CAAA,IAAA5C,EAAA,QAAAL,WAAAK,EAAA,QAAA2C,OAAA3C,EAAA,QAAAsC,MAAAtC,EAAA,QAAAwC,MAAAxC,EAAA,QAAAyC,MAAAzC,EAAA,QAAA0C,IAAA;EA7DHE,MAAA,qBAAC,KAAD;GACa,WAAAvD,mBAAkBwD;GACzB,IAAAhC;GAFN,UAAA;IAgBEyB;IAkCC3C;IACA6C;IAEAC;IACAC;IAEAC;GAxDC;;EA8DE3C,EAAA,MAAAL;EAAAK,EAAA,MAAA2C;EAAA3C,EAAA,MAAAsC;EAAAtC,EAAA,MAAAwC;EAAAxC,EAAA,MAAAyC;EAAAzC,EAAA,MAAA0C;EAAA1C,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CAAA,OA9DN4C;AA8DM;;ACvDV,MAAa,EACXuC,aACAC,uBAAuBC,0BACvBC,aAAaC,mBACXtC,gBAAgB;CAClBuC,UAAUX;CACVC;CACAH;CACAC;CACAa,WAAWC,QAAQA,IAAIC;CACvBC,eAAe;EACbC,UAAUhC;EACViC,sBAAsB,oBAAC,gBAAD,CAAe,CAAA;CACvC;CACAhC;CACAiC,kBAAkB;CAClBC,mBAAmBC,MAAM;EACvB,MAAM,EAAEC,SAASC,SAASC,aAAaH;EACvC,OAAOC,WAAWC,WAAWC;CAC/B;CACAE,iBAAiB;EACfjC;EACAC;EACAC;EACAC;EACAC,UAAAA;EACAC,SAAAA;CACF;CACA6B,gBAAgB;EACdrD;EACAK;EACAC;EACAC;EACAC;EACAP;EACAC;EACAO;EACAN;EACAC;EACAM;CACF;CACA4C,kBAAkB;EAChBzC;EACAC;EACAC;EACAC;EACAC;EACAC;CACF;AACF,CAAC"}