@tsed/react-formio 1.14.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage.json +4 -4
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1278 -3685
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +957 -2768
- package/dist/index.modern.js.map +1 -1
- package/package.json +4 -5
- package/readme.md +9 -57
- package/src/components/form-edit/useFormEdit.hook.ts +2 -1
- package/src/components/input-tags/inputTags.component.tsx +1 -1
- package/src/components/select/select.component.tsx +1 -1
- package/src/components/table/filters/sliderColumnFilter.component.tsx +2 -2
- package/src/index.ts +3 -2
- package/dist/stores/action/action.actions.d.ts +0 -9
- package/dist/stores/action/action.actions.spec.d.ts +0 -1
- package/dist/stores/action/action.constant.d.ts +0 -1
- package/dist/stores/action/action.reducers.d.ts +0 -7
- package/dist/stores/action/action.reducers.spec.d.ts +0 -1
- package/dist/stores/action/action.selectors.d.ts +0 -2
- package/dist/stores/action/action.selectors.spec.d.ts +0 -1
- package/dist/stores/action/index.d.ts +0 -4
- package/dist/stores/action-info/action-info.actions.d.ts +0 -5
- package/dist/stores/action-info/action-info.actions.spec.d.ts +0 -1
- package/dist/stores/action-info/action-info.constant.d.ts +0 -1
- package/dist/stores/action-info/action-info.reducers.d.ts +0 -7
- package/dist/stores/action-info/action-info.reducers.spec.d.ts +0 -1
- package/dist/stores/action-info/action-info.selectors.d.ts +0 -2
- package/dist/stores/action-info/action-info.selectors.spec.d.ts +0 -1
- package/dist/stores/action-info/index.d.ts +0 -4
- package/dist/stores/actions/actions.actions.d.ts +0 -5
- package/dist/stores/actions/actions.actions.spec.d.ts +0 -1
- package/dist/stores/actions/actions.constant.d.ts +0 -1
- package/dist/stores/actions/actions.reducers.d.ts +0 -8
- package/dist/stores/actions/actions.reducers.spec.d.ts +0 -1
- package/dist/stores/actions/actions.selectors.d.ts +0 -2
- package/dist/stores/actions/actions.selectors.spec.d.ts +0 -1
- package/dist/stores/actions/index.d.ts +0 -4
- package/dist/stores/auth/auth.actions.d.ts +0 -9
- package/dist/stores/auth/auth.constant.d.ts +0 -1
- package/dist/stores/auth/auth.reducers.d.ts +0 -16
- package/dist/stores/auth/auth.reducers.spec.d.ts +0 -1
- package/dist/stores/auth/auth.selectors.d.ts +0 -6
- package/dist/stores/auth/auth.selectors.spec.d.ts +0 -1
- package/dist/stores/auth/auth.utils.d.ts +0 -6
- package/dist/stores/auth/auth.utils.spec.d.ts +0 -1
- package/dist/stores/auth/getAccess.action.d.ts +0 -1
- package/dist/stores/auth/getAccess.action.spec.d.ts +0 -1
- package/dist/stores/auth/getProjectAccess.action.d.ts +0 -1
- package/dist/stores/auth/index.d.ts +0 -10
- package/dist/stores/auth/initAuth.action.d.ts +0 -1
- package/dist/stores/auth/initAuth.action.spec.d.ts +0 -1
- package/dist/stores/auth/logout.action.d.ts +0 -1
- package/dist/stores/auth/logout.action.spec.d.ts +0 -1
- package/dist/stores/auth/setUser.action.d.ts +0 -1
- package/dist/stores/auth/setUser.action.spec.d.ts +0 -1
- package/dist/stores/form/form.actions.d.ts +0 -10
- package/dist/stores/form/form.actions.spec.d.ts +0 -1
- package/dist/stores/form/form.reducers.d.ts +0 -9
- package/dist/stores/form/form.reducers.spec.d.ts +0 -1
- package/dist/stores/form/form.selectors.d.ts +0 -2
- package/dist/stores/form/form.selectors.spec.d.ts +0 -1
- package/dist/stores/form/index.d.ts +0 -3
- package/dist/stores/forms/forms.actions.d.ts +0 -9
- package/dist/stores/forms/forms.actions.spec.d.ts +0 -1
- package/dist/stores/forms/forms.reducers.d.ts +0 -16
- package/dist/stores/forms/forms.reducers.spec.d.ts +0 -1
- package/dist/stores/forms/forms.selectors.d.ts +0 -10
- package/dist/stores/forms/forms.selectors.spec.d.ts +0 -1
- package/dist/stores/forms/index.d.ts +0 -3
- package/dist/stores/index.d.ts +0 -10
- package/dist/stores/index.spec.d.ts +0 -1
- package/dist/stores/root/index.d.ts +0 -1
- package/dist/stores/root/root.selectors.d.ts +0 -5
- package/dist/stores/root/root.selectors.spec.d.ts +0 -1
- package/dist/stores/submission/index.d.ts +0 -3
- package/dist/stores/submission/submission.actions.d.ts +0 -10
- package/dist/stores/submission/submission.actions.spec.d.ts +0 -1
- package/dist/stores/submission/submission.reducers.d.ts +0 -11
- package/dist/stores/submission/submission.reducers.spec.d.ts +0 -1
- package/dist/stores/submission/submission.selectors.d.ts +0 -2
- package/dist/stores/submission/submission.selectors.spec.d.ts +0 -1
- package/dist/stores/submissions/index.d.ts +0 -3
- package/dist/stores/submissions/submissions.actions.d.ts +0 -6
- package/dist/stores/submissions/submissions.actions.spec.d.ts +0 -1
- package/dist/stores/submissions/submissions.reducers.d.ts +0 -17
- package/dist/stores/submissions/submissions.reducers.spec.d.ts +0 -1
- package/dist/stores/submissions/submissions.selectors.d.ts +0 -9
- package/dist/stores/submissions/submissions.selectors.spec.d.ts +0 -1
- package/dist/utils/clean.d.ts +0 -1
- package/dist/utils/clean.test.d.ts +0 -1
- package/dist/utils/mapRequestParams.d.ts +0 -9
- package/dist/utils/mapRequestParams.test.d.ts +0 -1
- package/dist/utils/url.d.ts +0 -3
- package/dist/utils/url.test.d.ts +0 -1
- package/src/stores/action/action.actions.spec.ts +0 -114
- package/src/stores/action/action.actions.ts +0 -82
- package/src/stores/action/action.constant.ts +0 -1
- package/src/stores/action/action.reducers.spec.ts +0 -91
- package/src/stores/action/action.reducers.ts +0 -54
- package/src/stores/action/action.selectors.spec.ts +0 -19
- package/src/stores/action/action.selectors.ts +0 -6
- package/src/stores/action/index.ts +0 -4
- package/src/stores/action-info/action-info.actions.spec.ts +0 -46
- package/src/stores/action-info/action-info.actions.ts +0 -32
- package/src/stores/action-info/action-info.constant.ts +0 -1
- package/src/stores/action-info/action-info.reducers.spec.ts +0 -60
- package/src/stores/action-info/action-info.reducers.ts +0 -44
- package/src/stores/action-info/action-info.selectors.spec.ts +0 -19
- package/src/stores/action-info/action-info.selectors.ts +0 -7
- package/src/stores/action-info/index.ts +0 -4
- package/src/stores/actions/actions.actions.spec.ts +0 -62
- package/src/stores/actions/actions.actions.ts +0 -34
- package/src/stores/actions/actions.constant.ts +0 -1
- package/src/stores/actions/actions.reducers.spec.ts +0 -62
- package/src/stores/actions/actions.reducers.ts +0 -48
- package/src/stores/actions/actions.selectors.spec.ts +0 -34
- package/src/stores/actions/actions.selectors.ts +0 -7
- package/src/stores/actions/index.ts +0 -4
- package/src/stores/auth/auth.actions.ts +0 -13
- package/src/stores/auth/auth.constant.ts +0 -1
- package/src/stores/auth/auth.reducers.spec.ts +0 -376
- package/src/stores/auth/auth.reducers.ts +0 -151
- package/src/stores/auth/auth.selectors.spec.ts +0 -47
- package/src/stores/auth/auth.selectors.ts +0 -14
- package/src/stores/auth/auth.utils.spec.ts +0 -29
- package/src/stores/auth/auth.utils.tsx +0 -37
- package/src/stores/auth/getAccess.action.spec.ts +0 -257
- package/src/stores/auth/getAccess.action.ts +0 -57
- package/src/stores/auth/getProjectAccess.action.ts +0 -25
- package/src/stores/auth/index.ts +0 -10
- package/src/stores/auth/initAuth.action.spec.ts +0 -56
- package/src/stores/auth/initAuth.action.ts +0 -29
- package/src/stores/auth/logout.action.spec.ts +0 -25
- package/src/stores/auth/logout.action.ts +0 -9
- package/src/stores/auth/setUser.action.spec.ts +0 -25
- package/src/stores/auth/setUser.action.ts +0 -9
- package/src/stores/form/form.actions.spec.ts +0 -203
- package/src/stores/form/form.actions.ts +0 -84
- package/src/stores/form/form.reducers.spec.ts +0 -78
- package/src/stores/form/form.reducers.ts +0 -59
- package/src/stores/form/form.selectors.spec.ts +0 -19
- package/src/stores/form/form.selectors.ts +0 -5
- package/src/stores/form/index.ts +0 -3
- package/src/stores/forms/forms.actions.spec.ts +0 -91
- package/src/stores/forms/forms.actions.ts +0 -44
- package/src/stores/forms/forms.reducers.spec.ts +0 -97
- package/src/stores/forms/forms.reducers.ts +0 -77
- package/src/stores/forms/forms.selectors.spec.ts +0 -39
- package/src/stores/forms/forms.selectors.ts +0 -6
- package/src/stores/forms/index.ts +0 -3
- package/src/stores/index.spec.ts +0 -125
- package/src/stores/index.ts +0 -33
- package/src/stores/root/index.ts +0 -1
- package/src/stores/root/root.selectors.spec.ts +0 -94
- package/src/stores/root/root.selectors.ts +0 -23
- package/src/stores/submission/index.ts +0 -3
- package/src/stores/submission/submission.actions.spec.ts +0 -214
- package/src/stores/submission/submission.actions.ts +0 -81
- package/src/stores/submission/submission.reducers.spec.ts +0 -96
- package/src/stores/submission/submission.reducers.ts +0 -70
- package/src/stores/submission/submission.selectors.spec.ts +0 -19
- package/src/stores/submission/submission.selectors.ts +0 -5
- package/src/stores/submissions/index.ts +0 -3
- package/src/stores/submissions/submissions.actions.spec.ts +0 -99
- package/src/stores/submissions/submissions.actions.ts +0 -38
- package/src/stores/submissions/submissions.reducers.spec.ts +0 -98
- package/src/stores/submissions/submissions.reducers.ts +0 -78
- package/src/stores/submissions/submissions.selectors.spec.ts +0 -39
- package/src/stores/submissions/submissions.selectors.ts +0 -6
- package/src/utils/clean.test.ts +0 -7
- package/src/utils/clean.ts +0 -12
- package/src/utils/mapRequestParams.test.ts +0 -81
- package/src/utils/mapRequestParams.ts +0 -36
- package/src/utils/url.test.ts +0 -31
- package/src/utils/url.ts +0 -23
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/utils/useOperations.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/loader/loader.component.tsx","../src/components/modal/modal.component.tsx","../src/components/modal/removeModal.component.tsx","../src/components/react-component/reactComponent.component.tsx","../src/components/table/components/defaultCell.component.tsx","../src/components/table/utils/mapFormToColumns.tsx","../src/components/submissions-table/submissionsTable.component.tsx","../src/components/table/filters/sliderColumnFilter.component.tsx","../src/components/tabs/tabs.component.tsx","../src/utils/url.ts","../src/stores/action-info/action-info.constant.ts","../src/stores/action-info/action-info.actions.ts","../src/stores/action-info/action-info.reducers.ts","../src/stores/root/root.selectors.ts","../src/stores/action-info/action-info.selectors.ts","../src/stores/action/action.constant.ts","../src/stores/action/action.actions.ts","../src/stores/action/action.reducers.ts","../src/stores/action/action.selectors.ts","../src/stores/actions/actions.constant.ts","../src/stores/actions/actions.actions.ts","../src/stores/actions/actions.reducers.ts","../src/stores/actions/actions.selectors.ts","../src/stores/auth/auth.actions.ts","../src/stores/auth/auth.constant.ts","../src/stores/auth/auth.reducers.ts","../src/stores/auth/auth.selectors.ts","../src/stores/auth/auth.utils.tsx","../src/stores/auth/getAccess.action.ts","../src/stores/auth/getProjectAccess.action.ts","../src/stores/auth/logout.action.ts","../src/stores/auth/setUser.action.ts","../src/stores/auth/initAuth.action.ts","../src/stores/form/form.selectors.ts","../src/stores/form/form.actions.ts","../src/stores/form/form.reducers.ts","../src/utils/clean.ts","../src/utils/mapRequestParams.ts","../src/stores/forms/forms.selectors.ts","../src/stores/forms/forms.actions.ts","../src/stores/forms/forms.reducers.ts","../src/stores/submission/submission.actions.ts","../src/stores/submission/submission.reducers.ts","../src/stores/submission/submission.selectors.ts","../src/stores/submissions/submissions.selectors.ts","../src/stores/submissions/submissions.actions.ts","../src/stores/submissions/submissions.reducers.ts","../src/stores/index.ts"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nexport interface FormControlProps {\n name: string;\n required?: boolean;\n label?: string;\n className?: string;\n description?: string | React.ComponentType | any;\n prefix?: JSX.Element | React.ComponentType | any;\n suffix?: JSX.Element | React.ComponentType | any;\n shadow?: boolean;\n}\n\nexport function FormControl({\n children,\n name,\n required,\n prefix,\n suffix,\n description,\n label,\n className\n}: React.PropsWithChildren<FormControlProps>) {\n return (\n <div data-testid={name && `form-group-${name}`} id={`form-group-${name || \"\"}`} className={classnames(\"form-group\", className)}>\n {label && (\n <label htmlFor={name} data-testid='form-control-label' className={`col-form-label ${required ? \" field-required\" : \"\"}`}>\n {label}\n </label>\n )}\n <div className={\"input-group\"}>\n {prefix && (\n <div className='input-group-prepend'>\n <span className='input-group-text' data-testid='form-control-prefix'>\n {prefix}\n </span>\n </div>\n )}\n {children}\n {suffix && (\n <div className='input-group-append'>\n <span className='input-group-text' data-testid='form-control-suffix'>\n {suffix}\n </span>\n </div>\n )}\n </div>\n {description && (\n <div data-testid='form-control-description' className='form-text text-muted'>\n {description}\n </div>\n )}\n </div>\n );\n}\n\nFormControl.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n children: PropTypes.any,\n required: PropTypes.bool,\n description: PropTypes.any\n};\n","import Choices from \"choices.js\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { ReactElement, useEffect, useRef } from \"react\";\n\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<T = any> extends FormControlProps {\n value?: any;\n size?: string;\n onChange?: (name: string, value: any) => void;\n placeholder?: string;\n choices: { label: string; value: T }[];\n layout?: \"html5\" | \"choicesjs\";\n multiple?: boolean;\n\n [key: string]: any;\n}\n\nexport function Select<T = any>({\n name,\n label,\n size,\n onChange,\n required,\n value,\n choices,\n description,\n placeholder,\n prefix,\n suffix,\n multiple,\n layout,\n ...props\n}: SelectProps<T>): ReactElement {\n const ref = useRef<any>();\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current, {\n removeItemButton: true,\n placeholderValue: placeholder\n });\n }\n\n return () => {\n instance && instance.destroy();\n };\n }, []);\n\n choices =\n layout === \"choicesjs\" || multiple || !placeholder\n ? choices\n : ([\n {\n label: placeholder,\n value: \"\"\n },\n ...choices\n ] as any[]);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix} shadow={false}>\n {/* eslint-disable-next-line jsx-a11y/no-onchange */}\n <select\n ref={ref}\n {...props}\n data-testid={`select_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n name={name}\n id={name}\n multiple={multiple}\n value={value || (\"\" as any)}\n placeholder={placeholder}\n onChange={(event) => {\n onChange && onChange(name, getEventValue(event));\n }}\n >\n {choices.map(({ label, value }) => {\n return (\n <option key={String(value)} label={label} value={value as any}>\n {label}\n </option>\n );\n })}\n </select>\n </FormControl>\n );\n}\n\nSelect.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n choices: PropTypes.array.isRequired\n};\n","export const LEFT_PAGE = \"LEFT\";\nexport const RIGHT_PAGE = \"RIGHT\";\n\nfunction range(from: number, to: number, step = 1): any[] {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n}\n\nexport function getPageNumbers({ currentPage, pageNeighbours = 1, totalPages }: any) {\n const totalNumbers = pageNeighbours * 2 + 3;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const calculatedStartPage = Math.max(2, currentPage - pageNeighbours);\n const calculatedEndPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage = calculatedEndPage === totalPages - 2 ? totalPages - 1 : calculatedEndPage;\n\n let pages = range(startPage, endPage);\n\n const hasLeftSpill = startPage > 2;\n const hasRightSpill = totalPages - endPage > 1;\n const spillOffset = totalNumbers - (pages.length + 1);\n let extraPages;\n\n if (hasLeftSpill && !hasRightSpill) {\n extraPages = range(startPage - spillOffset, startPage - 1);\n pages = [LEFT_PAGE, ...extraPages, ...pages];\n } else if (!hasLeftSpill && hasRightSpill) {\n extraPages = range(endPage + 1, endPage + spillOffset);\n pages = [...pages, ...extraPages, RIGHT_PAGE];\n } else {\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\n }\n\n return [1, ...pages, totalPages];\n }\n\n return range(1, totalPages);\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { Select } from \"../select/select.component\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"../table/utils/getPageNumbers\";\n\nfunction PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={classnames(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n gotoPage: any;\n canPreviousPage: boolean;\n previousPage: any;\n nextPage: any;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: any;\n pageSize: number;\n setPageSize: any;\n i18n?: (f: string) => string;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n gotoPage,\n canPreviousPage,\n previousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n setPageSize,\n i18n = (f: string) => f\n } = props;\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n const choices: any[] = pageSizes.map((value) => ({ value, label: value }));\n\n return (\n <nav aria-label='Page navigation' className={classnames(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => previousPage()}>\n {i18n(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={classnames(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => gotoPage(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => nextPage()}>\n {i18n(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select\n name={\"page\"}\n value={pageSize}\n choices={choices}\n onChange={(name: string, value: number) => {\n setPageSize(+value);\n }}\n />\n <span className={\"ml-3\"}>{i18n(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport function DefaultArrowSort({ column }: any) {\n const { isSorted, isSortedDesc } = column;\n return (\n <span className={\"table-arrow-sort\"}>\n {isSorted ? <i className={iconClass(undefined, isSortedDesc ? \"sort-up\" : \"sort-down\")} /> : \"\"}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any> extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({ column }: DefaultCellHeaderProps<Data>) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\")}</div> : null}\n </div>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTextProps<T = any> extends FormControlProps {\n type?: string;\n value?: T;\n /**\n * The input size\n */\n size?: string;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputText<T = any>({\n name,\n value,\n label,\n onChange,\n required,\n size,\n type,\n prefix,\n suffix,\n description,\n className,\n placeholder,\n ...props\n}: InputTextProps<T>) {\n const [localValue, setValue] = useState(value);\n\n const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n className={className}\n >\n <input\n type={type || \"text\"}\n {...props}\n data-testid={`input_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n id={name}\n required={required}\n value={(localValue || \"\") as any}\n placeholder={placeholder}\n onChange={(event) => {\n const value = getEventValue(event);\n setValue(value);\n\n return change && change(name, value);\n }}\n />\n </FormControl>\n );\n}\n\nInputText.propTypes = {\n label: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n size: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n prefix: PropTypes.any,\n suffix: PropTypes.any\n};\n","import React, { useCallback, useState } from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name, value) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps {\n className?: string;\n buttonType?: string;\n buttonSize?: string;\n buttonOutline?: boolean;\n data: any[];\n onClick: (action: string) => void;\n action: string;\n icon?: string;\n title?: string;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton(props: OperationButtonProps) {\n const {\n className = \"btn\",\n buttonSize = \"xs\",\n buttonType = \"primary\",\n buttonOutline,\n onClick,\n action,\n icon = \"\",\n title = \"\",\n i18n = (f: string) => f\n } = props;\n\n return (\n <button\n className={classnames(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n","import React from \"react\";\n\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }: any) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }: any) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n onClick={(action: string) => onClick(data, action)}\n data={data}\n i18n={i18n}\n ctx={ctx}\n />\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { Hooks } from \"react-table\";\n\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: React.ComponentType;\n operations: Operation[];\n onClick?: (data: any, event: string) => void;\n i18n?: (f: string) => string;\n ctx?: any;\n};\n\nexport function useOperations<D extends object = {}>({\n operations,\n CellOperations = DefaultCellOperations,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren } from \"react\";\nimport { CellProps, FilterProps, Renderer, TableOptions, useFilters, useGroupBy, usePagination, useSortBy, useTable } from \"react-table\";\n\nimport { OnClickOperation, Operation, QueryOptions } from \"../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"./components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n className?: string;\n /**\n * Call the listener when a filter / pagination / sort change.\n */\n onChange?: (query: QueryOptions) => void;\n /**\n * Call the listener when a line is clicked.\n */\n onClick?: OnClickOperation<Data>;\n /**\n * Pagination steps list\n */\n pageSizes?: number[];\n /**\n *\n */\n isLoading?: boolean;\n /**\n * Custom EmptyData displayed when there is no data\n */\n EmptyData?: React.ComponentType;\n /**\n * Custom ArrowSort\n */\n ArrowSort?: React.ComponentType;\n /**\n * Custom default ColumnFilter\n */\n ColumnFilter?: Renderer<FilterProps<Data>>;\n /**\n * Custom cell\n */\n Cell?: React.ComponentType<CellProps<Data>>;\n /**\n *\n */\n CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;\n /**\n *\n */\n CellOperations?: React.ComponentType;\n /**\n * Custom Loader\n */\n Loader?: React.ComponentType;\n /**\n * Custom Loader\n */\n Pagination?: React.ComponentType;\n /**\n * Disable filters\n */\n disableFilters?: boolean;\n /**\n * Disable pagination\n */\n disablePagination?: boolean;\n manualPagination?: boolean;\n manualSortBy?: boolean;\n manualFilters?: boolean;\n /**\n * Configuration operation for each line.\n */\n operations?: Operation[];\n\n i18n?: (f: string) => string;\n}\n\nfunction getOperationCallback(operations: Operation[], onClick: OnClickOperation) {\n return (data: any, action: string) => {\n const operation = operations.find((operation) => operation.action === action || operation.alias === action);\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>;\n}\n\nfunction DefaultEmptyData() {\n return <div className='text-center p-2 pb-4 font-bold'>No data found</div>;\n}\n\nconst hooks = [useFilters, useGroupBy, useSortBy, usePagination];\n\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n operations = [],\n pageSizes = [10, 25, 50, 100],\n filters: controlledFilters,\n filterId: controlledFilterId,\n pageSize: controlledPageSize,\n pageIndex: controlledPageIndex,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n // Render the UI for your table\n return (\n <div className={classnames(\"table-group table-responsive\", className)}>\n <table\n className={\"table table-striped table-hover\"}\n {...tableInstance.getTableProps()}\n /* style={{ marginBottom: disablePagination ? \"-1px\" : \"0px\" }} */\n >\n <thead>\n {tableInstance.headerGroups.map((headerGroup, i) => (\n <tr {...headerGroup.getHeaderGroupProps()} key={`tableInstance.headerGroups${i}`}>\n {headerGroup.headers.map((column) => (\n <th\n /* className='text-left py-2 align-top' */\n {...column.getHeaderProps()}\n key={`tableInstance.headers.column.${column.id}`}\n >\n <CellHeader column={column} />\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading ? (\n <tbody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row) => {\n tableInstance.prepareRow(row);\n return (\n <tr onClick={() => _onClick(row.original, \"row\")} {...row.getRowProps()} key={`tableInstance.page.${row.id}`}>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n if (hidden) {\n return null;\n }\n return (\n <td colSpan={colspan} {...cell.getCellProps()} key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}>\n {cell.render(\"Cell\")}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n ) : null}\n </table>\n {isLoading ? <Loader /> : null}\n {!data.length ? <EmptyData /> : null}\n {!isLoading && data.length && !disablePagination ? (\n <div className={\"overflow-hidden\"}>\n <Pagination\n {...tableInstance}\n className={\"text-sm\"}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizes={pageSizes}\n setPageSize={setPageSize}\n i18n={i18n}\n />\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { useState } from \"react\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { Select } from \"../select/select.component\";\nimport { Table, TableProps } from \"../table/table.component\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionSchema>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({\n disableFilters = true,\n disablePagination = true,\n availableActions = [],\n onAddAction = noop,\n ...props\n}: ActionsTableProps) {\n const { i18n = (f: string) => f } = props;\n const [currentAction, setAction] = useState(\"\");\n\n const columns = [\n {\n Header: i18n(\"Actions\"),\n accessor: \"title\",\n id: \"title\"\n }\n ];\n\n return (\n <Table {...props} disableFilters={disableFilters} disablePagination={disablePagination} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(name: string, action: string) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"submit\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: {\n component: ExtendedComponentSchema;\n instance: any;\n value: any;\n } & Record<string, any>;\n isValid: boolean;\n}\n\nexport interface FormPageChangeProps<Data = any> {\n page: number;\n submission: Submission<Data>;\n}\n\nexport interface UseFormHookProps<Data = any> extends Record<string, any> {\n src?: string;\n /**\n * url to fetch form\n */\n url?: string;\n /**\n * Raw form object\n */\n form?: Partial<FormSchema>;\n /**\n * Configuration option\n */\n options?: FormOptions;\n /**\n * Data submission\n */\n submission?: Submission<Data>;\n\n /// events\n onPrevPage?: (obj: FormPageChangeProps<Data>) => void;\n onNextPage?: (obj: FormPageChangeProps<Data>) => void;\n onCancel?: Function;\n onChange?: (submission: ChangedSubmission) => void;\n onCustomEvent?: (obj: { type: string; event: string; component: ExtendedComponentSchema; data: any }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => void;\n onAsyncSubmit?: (submission: Submission<Data>) => Promise<any>;\n onSubmitDone?: (submission: Submission<Data>) => void;\n onFormLoad?: Function;\n onError?: (errors: any) => void;\n onRender?: () => void;\n onAttach?: Function;\n onBuild?: Function;\n onFocus?: Function;\n onBlur?: Function;\n onInitialized?: Function;\n onFormReady?: (formio: any) => void;\n}\n\nfunction useEvent(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n if (callback) {\n events.set(event, callback);\n }\n }, [callback, event, events]);\n}\n\nfunction useEvents(funcs: any) {\n const events = useRef<Map<string, any>>(new Map());\n\n const hasEvent = (event: string) => {\n return funcs.hasOwnProperty(event) && typeof funcs[event] === \"function\";\n };\n\n const emit = (event: string, ...args: any[]) => {\n if (hasEvent(event)) {\n const fn = events.current.has(event) ? events.current.get(event) : funcs[event];\n return fn(...args);\n }\n };\n\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onPrevPage\", funcs[\"onPrevPage\"], events.current);\n useEvent(\"onNextPage\", funcs[\"onNextPage\"], events.current);\n useEvent(\"onCancel\", funcs[\"onCancel\"], events.current);\n useEvent(\"onChange\", funcs[\"onChange\"], events.current);\n useEvent(\"onCustomEvent\", funcs[\"onCustomEvent\"], events.current);\n useEvent(\"onComponentChange\", funcs[\"onComponentChange\"], events.current);\n useEvent(\"onSubmit\", funcs[\"onSubmit\"], events.current);\n useEvent(\"onAsyncSubmit\", funcs[\"onAsyncSubmit\"], events.current);\n useEvent(\"onSubmitDone\", funcs[\"onSubmitDone\"], events.current);\n useEvent(\"onFormLoad\", funcs[\"onFormLoad\"], events.current);\n useEvent(\"onError\", funcs[\"onError\"], events.current);\n useEvent(\"onRender\", funcs[\"onRender\"], events.current);\n useEvent(\"onAttach\", funcs[\"onAttach\"], events.current);\n useEvent(\"onBuild\", funcs[\"onBuild\"], events.current);\n useEvent(\"onFocus\", funcs[\"onFocus\"], events.current);\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onInitialized\", funcs[\"onInitialized\"], events.current);\n\n return { events, emit, hasEvent };\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const { src, form, options = {}, submission, url, ...funcs } = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const { emit, hasEvent } = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\" && !args[0].changed) {\n return;\n }\n\n emit(eventName, ...args, instance.current);\n }\n });\n\n instance.current.ready.then((formio: any) => {\n submission && (formio.submission = cloneDeep(submission));\n\n if (props.onFormReady) {\n props.onFormReady(formio);\n }\n\n isLoaded.current = true;\n });\n }\n\n return instance.current;\n };\n\n useEffect(() => {\n if (instance.current) {\n instance.current.ready.then((formio: any) => {\n if (isEqual(formio.submission.data, submission?.data)) {\n return;\n }\n\n submission && (formio.submission = cloneDeep(submission));\n });\n }\n }, [submission]);\n\n useEffect(() => {\n if (form && instance.current) {\n instance.current.ready.then((formio: any) => {\n formio.form = form;\n if (url) {\n formio.url = url;\n }\n });\n }\n }, [form, url]);\n\n useEffect(() => {\n if (src) {\n if (instance.current) {\n isLoaded.current = false;\n (instance.current as any).destroy(true);\n }\n\n createWebForm(src, options);\n }\n }, [src]);\n\n useEffect(() => {\n if (form) {\n createWebForm(form, options);\n }\n\n return () => {\n isLoaded.current = false;\n instance.current && (instance.current as any).destroy(true);\n };\n }, []);\n\n return {\n element\n };\n}\n","import { Components } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useForm, UseFormHookProps } from \"./useForm.hook\";\n\nComponents.setComponents(AllComponents);\n\nexport interface FormProps<Data = any> extends UseFormHookProps<Data> {\n name?: string;\n /**\n *\n */\n className?: string;\n}\n\nexport function Form<Data = any>(props: Partial<FormProps<Data>>) {\n const { element } = useForm(props);\n\n return <div data-testid={`formioContainer${props.name || \"\"}`} ref={element} className={props.className} />;\n}\n\nForm.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n /**\n *\n */\n src: PropTypes.string,\n /**\n * url to fetch form\n */\n url: PropTypes.string,\n /**\n * Raw form object\n */\n form: PropTypes.object,\n /**\n * Data submission\n */\n submission: PropTypes.object,\n /**\n * Configuration option\n */\n options: PropTypes.shape({\n readOnly: PropTypes.bool,\n noAlerts: PropTypes.bool,\n i18n: PropTypes.any,\n template: PropTypes.string,\n saveDraft: PropTypes.bool,\n hooks: PropTypes.any\n }),\n onPrevPage: PropTypes.func,\n onNextPage: PropTypes.func,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onCustomEvent: PropTypes.func,\n onComponentChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onAsyncSubmit: PropTypes.func,\n onSubmitDone: PropTypes.func,\n onFormLoad: PropTypes.func,\n onError: PropTypes.func,\n onRender: PropTypes.func,\n onAttach: PropTypes.func,\n onBuild: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onInitialized: PropTypes.func,\n onFormReady: PropTypes.func,\n formioform: PropTypes.any\n};\n","import { ExtendedComponentSchema } from \"formiojs\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ExtendedComponentSchema {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n","import { ExtendedComponentSchema } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import PropTypes from \"prop-types\";\nimport React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\nimport { Card } from \"../card/card.component\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport {\n AccessRoles,\n dataAccessToSubmissions,\n FormAccessSchema,\n getFormAccess,\n shouldUpdate,\n SubmissionAccess,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./formAccess.utils\";\n\nexport interface FormAccessProps {\n form: Partial<FormSchema>;\n roles: any;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));\n\n const onChange = useCallback(\n (type: string, submission: Submission<AccessRoles>) => {\n updateSubmissions(type, submission, submissions, setSubmissions);\n },\n [submissions]\n );\n\n useEffect(() => {\n const input = dataAccessToSubmissions(formDefinition, form);\n if (formDefinition?._id) {\n if (shouldUpdate(\"access\", submissions.access, input) || shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)) {\n setSubmissions(input);\n }\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submissions,\n onChange,\n onSubmit: () => {\n onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessSchema;\n submissions: SubmissionAccess;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: Submission<AccessRoles>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form\n name={name}\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }: ChangedSubmission<AccessRoles>) => {\n isValid && onChange(name, { data });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n\nFormAccess.propTypes = {\n type: PropTypes.string.isRequired,\n form: PropTypes.object,\n roles: PropTypes.any,\n children: PropTypes.any,\n options: PropTypes.any,\n onSubmit: PropTypes.func\n};\n","import FormioUtils from \"formiojs/utils\";\nimport React, { PropsWithChildren, ReactElement } from \"react\";\n\nimport { ActionDefaultsSchema, ActionSchema, FormOptions, Submission } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\n\nfunction mapData(options: any, defaults: ActionDefaultsSchema): any {\n return {\n ...defaults,\n ...options\n };\n}\n\nfunction mapSettingsForm({ action, ...settingsForm }: any): any {\n FormioUtils.eachComponent(settingsForm.components, (component: any) => {\n const resourceExclude = \"\";\n\n if (component.type === \"resourcefields\") {\n component.type = \"select\";\n component.label = component.title;\n component.dataSrc = \"url\";\n component.data = {\n url: `${component.basePath}?type=resource${resourceExclude}`\n };\n component.valueProperty = \"_id\";\n component.template = \"<span>{{ item.title }}</span>\";\n component.persistent = true;\n }\n });\n\n return settingsForm;\n}\n\nexport interface FormActionProps {\n actionInfo: Partial<ActionSchema>;\n submission?: Partial<Submission>;\n onSubmit?: (submission: Submission<ActionSchema>) => void;\n options: FormOptions;\n}\n\nexport function FormAction({ actionInfo, children, onSubmit, options, ...props }: PropsWithChildren<FormActionProps>): ReactElement {\n const { form, submission } = (() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults!);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n })();\n\n return (\n <div>\n {children}\n\n <Form form={form} submission={submission} onSubmit={onSubmit} options={options} />\n\n {children}\n </div>\n );\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { ComponentSchema } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport Components from \"formiojs/components/Components\";\nimport FormioFormBuilder from \"formiojs/FormBuilder\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport noop from \"lodash/noop\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\n\nComponents.setComponents(AllComponents);\n\nconst EVENTS = [\n \"addComponent\",\n \"updateComponent\",\n \"removeComponent\",\n \"saveComponent\",\n \"cancelComponent\",\n \"moveComponent\",\n \"editComponent\",\n \"editJson\",\n \"copyComponent\",\n \"pasteComponent\"\n];\n\nconst EVENTS_CHANGE = [\"addComponent\", \"saveComponent\", \"updateComponent\", \"removeComponent\"];\n\nasync function createBuilder(el: Element, { components = [], display, options, onChange, events = {} }: any): Promise<void> {\n const form = {\n display,\n components: [...components]\n };\n\n try {\n const builder = await new FormioFormBuilder(el, form, { ...options }).ready;\n\n const handleEvent = (event: string) => {\n return (...args: any[]) => {\n events[event] && events[event](...args);\n\n if (EVENTS_CHANGE.includes(event)) {\n onChange(builder.form.components);\n }\n };\n };\n\n EVENTS.forEach((event) => builder.on(event, callLast(handleEvent(event), 200)));\n\n return builder;\n } catch (er) {\n console.error(er);\n }\n}\n\nexport interface FormBuilderProps {\n components: ComponentSchema[];\n display?: string;\n options?: any;\n builder?: any;\n onChange?: (components: ComponentSchema[]) => void;\n onAddComponent?: Function;\n onUpdateComponent?: Function;\n onRemoveComponent?: Function;\n onSaveComponent?: Function;\n onCancelComponent?: Function;\n onMoveComponent?: Function;\n onEditComponent?: Function;\n onEditJson?: Function;\n onCopyComponent?: Function;\n onPasteComponent?: Function;\n}\n\nexport class FormBuilder extends React.Component<FormBuilderProps, any> {\n static defaultProps = {\n options: {},\n onChange: noop,\n onReady: noop,\n onDestroy: noop\n };\n\n static propTypes = {\n components: PropTypes.array,\n display: PropTypes.string,\n options: PropTypes.object,\n onChange: PropTypes.func,\n onAddComponent: PropTypes.func,\n onUpdateComponent: PropTypes.func,\n onRemoveComponent: PropTypes.func,\n onSaveComponent: PropTypes.func,\n onCancelComponent: PropTypes.func,\n onMoveComponent: PropTypes.func,\n onEditComponent: PropTypes.func,\n onEditJson: PropTypes.func,\n onCopyComponent: PropTypes.func,\n onPasteComponent: PropTypes.func\n };\n\n private elRef: any;\n private builderRef: any;\n\n constructor(props: FormBuilderProps) {\n super(props);\n\n this.state = {\n display: props.display,\n components: cloneDeep(props.components)\n };\n this.elRef = null;\n this.builderRef = null;\n }\n\n async componentDidMount(): Promise<void> {\n await this.create(this.props);\n }\n\n async create(props: FormBuilderProps) {\n const {\n options,\n display,\n components,\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n } = props;\n\n this.builderRef = await createBuilder(this.elRef.firstChild, {\n display,\n options: { ...options },\n components: cloneDeep(components),\n onChange: this.whenComponentsChange.bind(this),\n events: {\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n }\n });\n }\n\n componentWillUnmount(): void {\n this.builderRef?.destroy();\n }\n\n // eslint-disable-next-line react/no-deprecated\n async componentWillReceiveProps(nextProps: FormBuilderProps) {\n if (this.builderRef) {\n if (nextProps.display !== this.state.display) {\n await this.create({\n ...this.props,\n display: nextProps.display\n });\n } else if (nextProps.components !== this.state.components) {\n this.builderRef.form = {\n display: this.state.display,\n components: nextProps.components\n };\n }\n }\n }\n\n whenComponentsChange(components: ComponentSchema[]) {\n this.setState({ components }, () => {\n this.props?.onChange && this.props.onChange(components);\n });\n }\n\n render() {\n return (\n <div\n ref={(ref) => {\n this.elRef = ref;\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div />\n </div>\n );\n }\n}\n","import { useEffect, useRef } from \"react\";\nimport Tooltip, { Options } from \"tooltip.js\";\n\nexport function useTooltip(options: Options) {\n const ref = useRef<any>();\n\n useEffect(() => {\n ref.current && new Tooltip(ref.current as any, options);\n }, [ref, options]);\n\n return ref;\n}\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { useTooltip } from \"../../hooks/useTooltip\";\nimport { FormOptions } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface FormEditCTAsProps extends Record<string, unknown> {\n saveText?: string;\n options?: FormOptions;\n hasUndo?: boolean;\n hasRedo?: boolean;\n disabled?: boolean;\n onCopy?: Function;\n onSubmit?: Function;\n onReset?: Function;\n onUndo?: Function;\n onRedo?: Function;\n}\n\nexport function FormEditCTAs({\n saveText = \"Save\",\n disabled,\n options = {},\n onCopy,\n hasUndo,\n hasRedo,\n onUndo,\n onRedo,\n onReset,\n onSubmit\n}: FormEditCTAsProps): ReactElement {\n const { i18n: t = (t: string): string => t } = options;\n\n const copyTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Copy\")\n });\n\n const undoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Undo last change\")\n });\n\n const redoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Redo last change\")\n });\n\n const resetTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Reset all changes\")\n });\n\n return (\n <div className={\"form-edit__actions\"}>\n <div>\n <button\n className={`btn btn-primary btn-save flex ${disabled ? \"disabled\" : \"\"}`}\n disabled={disabled}\n onClick={() => !disabled && onSubmit && onSubmit()}\n >\n <i className={`mr-1 ${iconClass(options.iconset, \"save\")}`} />\n {saveText}\n </button>\n\n <div>\n <button className={`btn btn-light btn-undo ${hasUndo ? \"\" : \"disabled\"}`} onClick={() => onUndo && onUndo()} ref={undoTooltipRef}>\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`} onClick={() => onRedo && onRedo()} ref={redoTooltipRef}>\n <i className={iconClass(options.iconset, \"redo\")} />\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button className='btn btn-light' onClick={() => onCopy()} ref={copyTooltipRef!}>\n <i className={iconClass(options.iconset, \"copy\")} />\n </button>\n )}\n\n <button className={`btn btn-light btn-reset`} onClick={() => onReset && onReset()} ref={resetTooltipRef!}>\n <i className={iconClass(options.iconset, \"reset\")} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nFormEditCTAs.propTypes = {\n saveText: PropTypes.string,\n options: PropTypes.object,\n hasUndo: PropTypes.bool,\n hasRedo: PropTypes.bool,\n disabled: PropTypes.bool,\n onCopy: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func\n};\n","import Choices from \"choices.js\";\nimport uniq from \"lodash/uniq\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any> extends Omit<FormControlProps, \"description\" | \"prefix\" | \"suffix\"> {\n value?: T;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputTags({ name, value = [], label, onChange, required, description, prefix, suffix, ...props }: InputTagsProps) {\n const ref: any = useRef();\n\n useEffect(() => {\n const instance = new Choices(ref.current, {\n delimiter: \",\",\n editItems: true,\n removeItemButton: true\n });\n\n instance.setValue([].concat(value, []));\n\n instance.passedElement.element.addEventListener(\"addItem\", (event: any) => {\n onChange && onChange(name, uniq(value.concat(event.detail.value)));\n });\n\n instance.passedElement.element.addEventListener(\"removeItem\", (event: any) => {\n onChange &&\n onChange(\n name,\n value.filter((v: string) => v !== event.detail.value)\n );\n });\n\n return () => {\n instance.destroy();\n };\n }, []);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix}>\n <input ref={ref} type='text' {...props} id={name} required={required} />\n </FormControl>\n );\n}\n\nInputTags.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.array,\n required: PropTypes.bool,\n onChange: PropTypes.func\n};\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { InputTags } from \"../input-tags/inputTags.component\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Select } from \"../select/select.component\";\n\nexport const defaultDisplayChoices = [\n { label: \"Form\", value: \"form\" },\n { label: \"Wizard\", value: \"wizard\" },\n { label: \"Pdf\", value: \"pdf\" }\n];\n\nexport interface FormParametersProps {\n onChange?: (name: string, value: any) => void;\n form: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n className?: string;\n baseUrl?: string;\n readonly?: Record<string, boolean>;\n}\n\nexport function FormParameters({\n onChange,\n form,\n enableTags = true,\n typeChoices = [],\n displayChoices = defaultDisplayChoices,\n className = \"\",\n readonly = {},\n baseUrl = window.location.origin\n}: FormParametersProps): ReactElement {\n const hasTypeChoices = typeChoices && typeChoices.length > 1;\n\n return (\n <div className={`form-edit__settings ${className}`}>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Title\"}\n placeholder='Enter the form title'\n name={\"title\"}\n required={true}\n value={form.title}\n disabled={!!readonly[\"title\"]}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Name\"}\n placeholder='Enter the form machine name'\n name={\"name\"}\n required={true}\n disabled={!!readonly[\"name\"]}\n value={form.name}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Path\"}\n placeholder='example'\n name={\"path\"}\n className={\"mb-0\"}\n description={\n <span className={\"text-xxs flex items-center\"}>\n <i className={\"bx bx-link ml-1 mr-1\"} />\n {`${baseUrl}/${form.path}`}\n </span>\n }\n required={true}\n value={form.path}\n disabled={!!readonly[\"path\"]}\n style={{ textTransform: \"lowercase\", width: \"120px\" }}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <Select\n label={\"Display as\"}\n name={\"display\"}\n disabled={!!readonly[\"display\"]}\n value={form.display}\n choices={displayChoices}\n onChange={onChange}\n />\n </div>\n {hasTypeChoices && (\n <div className={\"w-1/3\"}>\n <Select label={\"Type\"} name={\"type\"} value={form.type} choices={typeChoices} onChange={onChange} />\n </div>\n )}\n {enableTags && (\n <div className={\"w-1/3\"}>\n <InputTags label={\"Tags\"} name={\"tags\"} value={form.tags} onChange={onChange} />\n </div>\n )}\n </div>\n );\n}\n\nFormParameters.propTypes = {\n onChange: PropTypes.func,\n form: PropTypes.object,\n enableTags: PropTypes.bool,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n className: PropTypes.string\n};\n","import camelCase from \"lodash/camelCase\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\n\nimport { FormSchema } from \"../../interfaces\";\n\nexport const hasChanged = (form: Partial<FormSchema>, value: Partial<FormSchema>): boolean => !isEqual(form, value);\n\nexport interface FormEditState {\n past: Partial<FormSchema>[];\n future: Partial<FormSchema>[];\n current: Partial<FormSchema>;\n original: Partial<FormSchema>;\n}\n\nexport function createInitialState(props: any): FormEditState {\n return {\n past: [],\n future: [],\n current: cloneDeep(props.form),\n original: cloneDeep(props.form)\n };\n}\n\nexport const reducer = (state: FormEditState, { type, value }: any): FormEditState => {\n const { past, current, future } = state;\n\n const update = (newValue: any): any => {\n if (newValue.title !== state.current.title && !state.current._id) {\n newValue.name = camelCase(value.title);\n newValue.path = camelCase(value.title).toLowerCase();\n }\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: newValue\n };\n };\n\n switch (type) {\n case \"undo\":\n if (past.length) {\n const previous = past[past.length - 1];\n const newPast = past.slice(0, past.length - 1);\n\n return {\n ...state,\n past: newPast,\n current: cloneDeep(previous),\n future: [cloneDeep(current), ...future]\n };\n }\n break;\n\n case \"redo\":\n if (future.length) {\n const next = future[0];\n const newFuture = future.slice(1);\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: cloneDeep(next),\n future: newFuture\n };\n }\n break;\n\n case \"reset\":\n return update(cloneDeep(state.original));\n\n case \"formChange\":\n // eslint-disable-next-line no-case-declarations\n const newValue = { ...state.current, ...value };\n\n if (hasChanged(state.current, newValue)) {\n return update(newValue);\n }\n break;\n\n case \"replaceForm\":\n return {\n ...state,\n past: [],\n future: [],\n current: cloneDeep(value),\n original: cloneDeep(value)\n };\n\n default:\n break;\n }\n\n return state;\n};\n","import { useEffect, useReducer } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { createInitialState, hasChanged, reducer } from \"./formEdit.reducer\";\n\nexport interface UseFormEditHookProps extends Record<string, unknown> {\n form?: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n onSubmit?: (form: Partial<FormSchema>) => void;\n onCopy?: (form: Partial<FormSchema>) => void;\n}\n\nexport function useFormEdit(props: UseFormEditHookProps) {\n const [{ current, future, past }, dispatchFormAction] = useReducer(reducer, createInitialState(props));\n\n const onSubmit = () => {\n if (props.onSubmit && typeof props.onSubmit === \"function\") {\n props.onSubmit(current);\n }\n };\n const onCopy = () => {\n if (props.onSubmit && typeof props.onCopy === \"function\") {\n props.onCopy(current);\n }\n };\n\n useEffect(() => {\n if (props.form && (current._id !== props.form._id || current.modified !== props.form.modified)) {\n dispatchFormAction({ type: \"replaceForm\", value: props.form });\n }\n }, [props.form]);\n\n const formChange = (newForm: Partial<FormSchema>) => {\n if (hasChanged(current, { ...current, ...newForm })) {\n dispatchFormAction({ type: \"formChange\", value: newForm });\n }\n };\n\n const redo = () => dispatchFormAction({ type: \"redo\" });\n const undo = () => dispatchFormAction({ type: \"undo\" });\n const reset = () => dispatchFormAction({ type: \"reset\" });\n\n const setChange = (path: string, value: any) => {\n formChange({ ...current, [path]: value });\n };\n\n return {\n form: current,\n redo,\n undo,\n reset,\n hasChanged: !!past.length,\n isValid: current.title && current.name && current.path,\n hasUndo: !!past.length,\n hasRedo: !!future.length,\n onSubmit,\n onCopy,\n formChange,\n setChange\n };\n}\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { FormOptions } from \"../../interfaces/FormOptions\";\nimport { FormBuilder } from \"../form-builder/formBuilder.component\";\nimport { FormEditCTAs } from \"./formCtas.component\";\nimport { FormParameters } from \"./formParameters.component\";\nimport { useFormEdit, UseFormEditHookProps } from \"./useFormEdit.hook\";\n\nexport interface FormEditProps extends UseFormEditHookProps {\n builder?: any;\n options?: FormOptions;\n}\n\nexport function FormEdit(props: FormEditProps) {\n const { form, isValid, setChange, hasRedo, hasChanged, hasUndo, redo, undo, reset, onSubmit, onCopy } = useFormEdit(props);\n const { options = {}, builder } = props;\n\n return (\n <div>\n <div className='form-edit'>\n <FormParameters {...props} className={\"\"} key={`form-settings-${form._id}`} form={form} onChange={setChange} />\n <FormEditCTAs\n {...props}\n className={\"\"}\n key={`form-edit-ctas-${form._id}`}\n options={options}\n hasRedo={hasRedo}\n hasUndo={hasUndo}\n disabled={!(isValid && hasChanged)}\n onRedo={redo}\n onUndo={undo}\n onReset={reset}\n onCopy={onCopy}\n onSubmit={onSubmit}\n />\n </div>\n\n <FormBuilder\n key={`form-builder-${form._id}`}\n components={form.components!}\n display={form.display}\n options={options}\n builder={builder}\n onChange={(components) => {\n setChange(\"components\", components);\n }}\n />\n </div>\n );\n}\n\nFormEdit.propTypes = {\n form: PropTypes.object.isRequired,\n options: PropTypes.object,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n enableTags: PropTypes.bool,\n onSubmit: PropTypes.func\n};\n","import { FormSchema } from \"../../interfaces\";\n\nexport function getFormSettingsSchema(): FormSchema {\n return {\n type: \"form\",\n tags: [],\n components: [\n {\n input: true,\n key: \"action\",\n placeholder: \"Enter the custom submission URL\",\n label: \"Custom Action Url\",\n labelPosition: \"top\",\n widget: { type: \"input\" },\n type: \"url\",\n mask: false,\n inputType: \"url\",\n inputFormat: \"plain\",\n spellcheck: true,\n id: \"efyrzea\",\n attributes: {\n \"data-testid\": \"action\"\n }\n },\n {\n input: true,\n key: \"tags\",\n placeholder: \"Add tags\",\n label: \"Form tags\",\n widget: { type: \"input\" },\n type: \"tags\",\n delimeter: \",\",\n storeas: \"array\",\n maxTags: 0,\n id: \"erxcyw\"\n },\n {\n input: true,\n key: \"properties\",\n label: \"Custom Properties\",\n labelPosition: \"top\",\n type: \"datamap\",\n addAnother: \"Add Another\",\n disableAddingRemovingRows: false,\n keyBeforeValue: true,\n valueComponent: {\n type: \"textfield\",\n key: \"value\",\n label: \"Value\",\n input: true,\n hideLabel: true\n },\n id: \"ezne35\"\n }\n ],\n display: \"form\"\n };\n}\n","import cloneDeep from \"lodash/cloneDeep\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\n\nexport type FormSettingsSchema = {\n action: string;\n tags: string[];\n properties: Record<string, any>;\n};\n\nexport function formSettingsToSubmission(form: Partial<FormSchema>): Submission<FormSettingsSchema> {\n return {\n data: {\n action: form.action!,\n tags: form.tags!,\n properties: form.properties!\n }\n };\n}\n\nexport function submissionToFormSettings(form: Partial<FormSchema>, submission: Submission<FormSettingsSchema>): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n tags: submission.data.tags,\n action: submission.data.action,\n properties: submission.data.properties\n };\n}\n","import isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\nimport React, { useEffect, useState } from \"react\";\n\nimport { FormOptions, FormSchema } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport { getFormSettingsSchema } from \"./formSettings.schema\";\nimport { FormSettingsSchema, formSettingsToSubmission, submissionToFormSettings } from \"./formSettings.utils\";\n\nexport interface FormSettingsProps {\n form: Partial<FormSchema>;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormSettings({ form: formDefinition, onSubmit = noop, options }: FormSettingsProps) {\n const form = getFormSettingsSchema();\n const [isValid, setIsValid] = useState(true);\n const [submission, setSubmission] = useState(() => formSettingsToSubmission(formDefinition));\n\n const onChange = ({ data, isValid }: ChangedSubmission<FormSettingsSchema>) => {\n if (isValid) {\n setSubmission({ data });\n }\n setIsValid(isValid);\n };\n\n useEffect(() => {\n const input = formSettingsToSubmission(formDefinition);\n if (formDefinition?._id && !isEqual(submission.data, input.data)) {\n setSubmission(input);\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submission,\n onChange,\n isValid,\n setIsValid,\n onSubmit: () => {\n onSubmit(submissionToFormSettings(formDefinition, submission));\n }\n };\n}\n\nexport function FormSettings(props: FormSettingsProps) {\n const { form, submission, options = {}, onChange, onSubmit, isValid } = useFormSettings(props);\n\n const i18n = options.i18n || ((f: string) => f);\n\n return (\n <div>\n <Form form={form} submission={submission} onChange={onChange} options={options} />\n\n <button data-testid='submit' disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit} type={\"submit\"}>\n {i18n(\"Save settings\")}\n </button>\n </div>\n );\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { Select } from \"../../select/select.component\";\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>({ column }: FilterProps<D>) {\n const { id, preFilteredRows, filterValue, setFilter } = column;\n const { choices: customChoices } = column as any;\n\n const choices =\n customChoices ||\n [...new Set(preFilteredRows.map((row) => row.values[id]))].filter((value) => value).map((value) => ({ label: value, value }));\n\n return (\n <Select\n key={`filter-${column.id}`}\n name={`filter-${column.id}`}\n size={\"sm\"}\n value={filterValue}\n choices={[{ value: \"\", label: \"All\" }].concat(choices)}\n onChange={(name, value) => {\n setFilter(value || undefined);\n }}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.3\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.3';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport function FormsCell(props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }) {\n const {\n icon = \"server\",\n row: { original: form }\n } = props;\n\n return (\n <div className={\"p-1\"}>\n <h4 className={\"text-primary text-lg flex items-center\"}>\n <i className={classnames(iconClass(undefined, icon), \"mr-1\")} />\n {form.title}\n </h4>\n\n <ul className='reset-list text-gray-500'>\n <li className={\"text-sm\"}>Name: {form.name || form.machineName}</li>\n <li className='mt-5'>\n <span className='badge bg-light mr-1'>\n <i className={classnames(iconClass(undefined, \"history\"), \"mr-1\")} />\n <span>Updated {moment(form.modified).fromNow()}</span>\n </span>\n\n {(form.tags || []).map((tag, index) => (\n <button\n key={index}\n className='badge badge-hover bg-secondary mr-1'\n onClick={stopPropagationWrapper(() => {\n props.setFilter(\"tags\", tag);\n props.gotoPage(0);\n })}\n >\n <i className={classnames(iconClass(undefined, \"tags\"), \"mr-1\")} />\n {tag}\n </button>\n ))}\n </li>\n </ul>\n </div>\n );\n}\n","import React from \"react\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = [\n {\n Header: i18n(\"Title\"),\n accessor: \"title\",\n id: \"title\",\n Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n Filter: DefaultColumnFilter,\n colspan: 2\n },\n {\n Header: i18n(\"Tags\"),\n accessor: \"tags\",\n id: \"tags\",\n hidden: true,\n Filter: (props: any) =>\n tags && tags.length ? (\n <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n ) : (\n <DefaultColumnFilter {...props} />\n )\n }\n ];\n\n return <Table {...props} columns={columns} />;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface LoaderProps {\n isActive?: boolean;\n color?: string;\n icon?: string;\n className?: string;\n}\n\nexport function Loader({ isActive, color = \"blue\", icon = \"radio-circle\", className = \"\" }: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n className={classnames(\n \"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\",\n className\n )}\n >\n <span data-testid={`icon_${icon}`} color={color} className={`text-11xl ${iconClass(undefined, icon, true)}`} />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport noop from \"lodash\";\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useState } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = noop } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className={\"px-4 pt-3 pb-5\"}>\n <div className={\"pb-1\"}>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\n\nimport { Submission } from \"../../interfaces/Submission\";\n\nexport class ReactComponent<Data = any> extends Components.components.field {\n public reactInstance: any;\n public shouldSetValue?: boolean;\n private dataForSetting?: Data;\n\n /**\n * This is the first phase of component building where the component is instantiated.\n *\n * @param component - The component definition created from the settings form.\n * @param options - Any options passed into the renderer.\n * @param data - The submission data where this component's data exists.\n */\n // eslint-disable-next-line no-useless-constructor,import/no-anonymous-default-export\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return (this.refs as any)[`react-${this.id}`];\n }\n\n /**\n * This method is called any time the component needs to be rebuilt. It is most frequently used to listen to other\n * components using the this.on() function.\n */\n init() {\n return super.init();\n }\n\n /**\n * This method is called before the component is going to be destroyed, which is when the component instance is\n * destroyed. This is different from detach which is when the component instance still exists but the dom instance is\n * removed.\n */\n destroy() {\n return super.destroy();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * The third phase of component building where the component has been attached to the DOM as 'element' and is ready\n * to have its javascript events attached.\n *\n * @param element\n * @returns {Promise<void>} - Return a promise that resolves when the attach is complete.\n */\n async attach(element: any) {\n super.attach(element);\n\n // The loadRefs function will find all dom elements that have the \"ref\" setting that match the object property.\n // It can load a single element or multiple elements with the same ref.\n this.loadRefs(element, {\n [`react-${this.id}`]: \"single\"\n });\n\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);\n\n if (this.shouldSetValue) {\n this.setValue(this.dataForSetting);\n this.updateValue(this.dataForSetting);\n }\n }\n }\n\n /**\n * The fourth phase of component building where the component is being removed from the page. This could be a redraw\n * or it is being removed from the form.\n */\n detach() {\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.detachReact(this.refs[`react-${this.id}`]);\n }\n super.detach();\n }\n\n /**\n * Override this function to render a react component.\n */\n renderReact(): any {\n return null;\n }\n\n /**\n * Override this function to insert your custom component.\n *\n * @param element\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n detachReact(element?: any) {\n if (element) {\n ReactDOM.unmountComponentAtNode(element);\n }\n }\n\n /**\n * Something external has set a value and our component needs to be updated to reflect that. For example, loading a submission.\n *\n * @param value\n * @param flags\n */\n setValue(value: any, flags?: any) {\n if (this.reactInstance) {\n this.reactInstance.setState({\n value: value\n });\n this.shouldSetValue = false;\n } else {\n this.shouldSetValue = true;\n this.dataForSetting = value;\n }\n\n return false;\n }\n\n /**\n * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.\n *\n * @param value\n * @param flags\n */\n updateValue = (value?: Data, flags?: Record<string, any>) => {\n flags = flags || {};\n\n const newValue = value === undefined || value === null ? this.getValue() : value;\n\n const changed = newValue !== undefined ? this.hasChanged(newValue, this.dataValue) : false;\n\n this.dataValue = Array.isArray(newValue) ? [...newValue] : newValue;\n\n this.updateOnChange(flags, changed);\n return changed;\n };\n\n /**\n * Get the current value of the component. Should return the value set in the react component.\n *\n * @returns {*}\n */\n getValue(): Data {\n if (this.reactInstance) {\n return this.reactInstance.state.value;\n }\n return this.defaultValue;\n }\n\n /**\n * Override normal validation check to insert custom validation in react component.\n *\n * @param data\n * @param dirty\n * @param rowData\n * @returns {boolean}\n */\n checkValidity(data: Data, dirty: boolean, rowData: any) {\n const valid = super.checkValidity(data, dirty, rowData);\n\n if (!valid) {\n return false;\n }\n\n return this.validate(data, dirty, rowData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(data: Data, dirty: boolean, rowData: any) {\n return true;\n }\n}\n","import React from \"react\";\n\nexport function DefaultCell({ value, render = (f: any) => f }: any): JSX.Element {\n if (value === undefined) {\n return <span></span>;\n }\n\n const rendered = render(value);\n\n if (value !== rendered) {\n return <div dangerouslySetInnerHTML={{ __html: rendered }} />;\n }\n\n return <span>{String(value)}</span>;\n}\n","import { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport React from \"react\";\nimport { Column } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!} />;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row.values[id], min);\n max = Math.max(row.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { Formio, Utils } from \"formiojs\";\n\nexport function getFormUrl(formId: string): string {\n const url = [Formio.getProjectUrl()];\n\n if (Utils.isMongoId(formId)) {\n url.push(\"form\");\n } else if (formId.includes(\"__\")) {\n formId = formId.replace(/__/gi, \"/\");\n }\n\n url.push(formId);\n\n return url.join(\"/\");\n}\n\nexport function getActionUrl(formId: string, actionId?: string): string {\n return [getFormUrl(formId), \"action\", actionId].filter(Boolean).join(\"/\");\n}\n\nexport function getSubmissionUrl(formId: string, submissionId?: string): string {\n return [getFormUrl(formId), \"submission\", submissionId].filter(Boolean).join(\"/\");\n}\n","export const ACTION_INFO = \"actionInfo\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport const resetActionInfo = createAction();\nexport const requestActionInfo = createAction();\nexport const receiveActionInfo = createAction();\nexport const failActionInfo = createAction();\n\nexport const getActionInfo =\n (formId: string, actionType: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(requestActionInfo(ACTION_INFO));\n\n const url = getFormUrl(formId);\n const formio = new Formio(url);\n\n try {\n const actionInfo = await formio.actionInfo(actionType);\n\n actionInfo.settingsForm.action = Formio.getProjectUrl() + actionInfo.settingsForm.action;\n\n dispatch(receiveActionInfo(ACTION_INFO, { actionInfo }));\n done(null, actionInfo);\n } catch (error) {\n dispatch(failActionInfo(ACTION_INFO, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { failActionInfo, receiveActionInfo, requestActionInfo, resetActionInfo } from \"./action-info.actions\";\nimport { ACTION_INFO } from \"./action-info.constant\";\n\nexport interface ActionInfoState {\n error: null | Error;\n data?: Partial<ActionSchema>;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionInfoState> = () => ({\n error: null,\n data: {},\n isActive: false\n});\n\nexport const actionInfoReducer = createReducer<ActionInfoState>(\n {\n [resetActionInfo.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActionInfo.toString()]: (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }),\n [receiveActionInfo.toString()]: (state, { actionInfo }) => ({\n ...state,\n error: null,\n data: actionInfo,\n isActive: false\n }),\n [failActionInfo.toString()]: (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n })\n },\n createInitialState\n)(ACTION_INFO);\n","import get from \"lodash/get\";\n\nexport function selectRoot<State = Record<string, any>>(name: string): (state: Record<string, any>) => State;\nexport function selectRoot<State = Record<string, any>>(name: string, state: Record<string, any>): State;\nexport function selectRoot<State = Record<string, any>>(name: string, state?: Record<string, any>): State & any {\n if (state) {\n return state[name];\n }\n\n return (state: Record<string, any>) => selectRoot(name, state);\n}\n\nexport const selectError = (name: string, state: Record<string, any>): null | Error => get(selectRoot(name, state)!, \"error\");\n\nexport const selectIsActive = (name: string, state: Record<string, any>): boolean => get(selectRoot(name, state)!, \"isActive\");\n\nexport function oneOfIsActive(...names: string[]) {\n return (state: any) => {\n return !!names.find((name) => {\n return get(state, `${name}.isActive`, get(state, `${name}.current.isActive`));\n });\n };\n}\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION_INFO } from \"./action-info.constant\";\nimport { ActionInfoState } from \"./action-info.reducers\";\n\nexport const selectActionInfo = (state: Record<string, any>): Partial<ActionSchema> =>\n selectRoot<ActionInfoState>(ACTION_INFO, state).data!;\n","export const ACTION = \"action\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport get from \"lodash/get\";\nimport noop from \"lodash/noop\";\n\nimport { getActionUrl } from \"../../utils/url\";\nimport { getActionInfo } from \"../action-info\";\nimport { ACTION } from \"./action.constant\";\n\nexport const clearActionError = createAction();\nexport const resetAction = createAction();\nexport const requestAction = createAction();\nexport const receiveAction = createAction();\nexport const failAction = createAction();\nexport const sendAction = createAction();\n\nfunction getFormio(formId: string, id: string) {\n const url = getActionUrl(formId, id);\n return new Formio(url);\n}\n\nexport const getAction =\n (formId: string, actionId: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(requestAction(ACTION));\n\n const formio = getFormio(formId, actionId);\n\n try {\n const action = await formio.loadAction();\n\n dispatch(getActionInfo(formId, action.name));\n dispatch(receiveAction(ACTION, { action }));\n done(null, action);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const saveAction =\n (formId: string, action: any, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n dispatch(sendAction(ACTION, { action }));\n\n const formio = getFormio(formId, get(action, \"data._id\", \"\"));\n\n try {\n const result = await formio.saveAction(action);\n dispatch(receiveAction(ACTION, { action: result }));\n done(null, result);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n\nexport const deleteAction = (formId: string, actionId: string, done = noop) => {\n return async (dispatch: any) => {\n dispatch(clearActionError(ACTION));\n\n // const state = getState();\n // const path = formId.replace(\"__\", \"/\");\n // const form = selectForm(\"form\", state);\n // const resource = selectForm(\"resource\", state);\n //\n // formId = (path === form.path ? form._id : resource._id) || formId;\n\n const formio = getFormio(formId, actionId);\n\n try {\n await formio.deleteAction();\n dispatch(resetAction(ACTION));\n done(null);\n } catch (error) {\n dispatch(failAction(ACTION, { error }));\n done(error);\n }\n };\n};\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { clearActionError, failAction, receiveAction, requestAction, resetAction, sendAction } from \"./action.actions\";\nimport { ACTION } from \"./action.constant\";\n\nexport interface ActionState {\n error: null | Error;\n data: ActionSchema;\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator = (): ActionState => ({\n error: null,\n data: {} as any,\n isActive: false\n});\n\nexport const actionReducer = createReducer<ActionState>({}, createInitialState)\n .on(resetAction, (_: any, _2: any, reset: any) => reset())\n .on(clearActionError, (state) => ({\n ...state,\n error: null\n }))\n .on(requestAction, (state) => ({\n ...state,\n error: null,\n data: {},\n isActive: true\n }))\n .on(sendAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: true\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(receiveAction, (state, { action }) => ({\n ...state,\n error: null,\n data: action,\n isActive: false\n }))\n .on(failAction, (state, { error }) => ({\n ...state,\n data: {},\n error,\n isActive: false\n }))(ACTION);\n","import { ActionSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { ACTION } from \"./action.constant\";\nimport { ActionState } from \"./action.reducers\";\n\nexport const selectAction = (state: Record<string, any>): ActionSchema => selectRoot<ActionState>(ACTION, state).data;\n","export const ACTIONS = \"actions\";\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { getFormUrl } from \"../../utils/url\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport const resetActions = createAction();\nexport const requestActions = createAction();\nexport const receiveActions = createAction<{\n actions: any[];\n availableActions: any[];\n}>();\nexport const failActions = createAction<{ error: Error }>();\n\nexport const getActions =\n (id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(resetActions(ACTIONS));\n dispatch(requestActions(ACTIONS));\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const [actions, availableActions] = await Promise.all([formio.loadActions({ params: {} }), formio.availableActions()]);\n\n dispatch(receiveActions(ACTIONS, { actions, availableActions }));\n done(null, actions, availableActions);\n } catch (error) {\n dispatch(failActions(ACTIONS, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { ActionInfoSchema, ActionSchema } from \"../../interfaces\";\nimport { failActions, receiveActions, requestActions, resetActions } from \"./actions.actions\";\nimport { ACTIONS } from \"./actions.constant\";\n\nexport interface ActionsState {\n error: null | Error;\n data: ActionSchema[];\n availableActions: ActionInfoSchema[];\n isActive: boolean;\n}\n\nconst createInitialState: InitialStateCreator<ActionsState> = () => ({\n error: null,\n data: [],\n availableActions: [],\n isActive: false\n});\n\nexport const actionsReducer = createReducer<ActionsState>(\n {\n [resetActions.toString()]: (_, _2, reset) => {\n return reset();\n },\n [requestActions.toString()]: (state) => ({\n ...state,\n error: null,\n data: [],\n availableActions: [],\n isActive: true\n }),\n [receiveActions.toString()]: (state, { actions, availableActions }) => ({\n ...state,\n error: null,\n data: actions,\n availableActions,\n isActive: false\n }),\n [failActions.toString()]: (state, { error }) => ({\n ...state,\n error,\n data: [],\n isActive: false\n })\n },\n createInitialState\n)(ACTIONS);\n","import { selectRoot } from \"../root\";\nimport { ACTIONS } from \"./actions.constant\";\nimport { ActionsState } from \"./actions.reducers\";\n\nexport const selectActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).data;\n\nexport const selectAvailableActions = (state: Record<string, any>) => selectRoot<ActionsState>(ACTIONS, state).availableActions;\n","import { createAction } from \"@tsed/redux-utils\";\n\nimport { FormSchema, RoleSchema, Submission } from \"../../interfaces\";\n\nexport const requestUser = createAction();\nexport const receiveUser = createAction<{ user: Submission }>();\nexport const failUser = createAction<{ error: Error }>();\nexport const logoutUser = createAction();\nexport const submissionAccessUser = createAction<{ submissionAccess: any }>();\nexport const formAccessUser = createAction<{ formAccess: any }>();\nexport const projectAccessUser = createAction<{ projectAccess: any }>();\nexport const userRoles = createAction<{ roles: Record<string, RoleSchema> }>();\nexport const userForms = createAction<{ forms: Record<string, FormSchema> }>();\n","export const AUTH = \"auth\";\n","import { createReducer } from \"@tsed/redux-utils\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport {\n failUser,\n formAccessUser,\n logoutUser,\n projectAccessUser,\n receiveUser,\n requestUser,\n submissionAccessUser,\n userForms,\n userRoles\n} from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport interface AuthState<User = any> {\n init: boolean;\n isActive: boolean;\n user: null | Submission<User>;\n authenticated: boolean;\n projectAccess: Record<string, string[]>;\n formAccess: Record<string, string[]>;\n submissionAccess: Record<string, string[]>;\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n is: Record<string, boolean>;\n error: null | Error;\n}\n\nfunction createInitialState(): AuthState {\n return {\n init: false,\n isActive: false,\n user: null,\n authenticated: false,\n submissionAccess: {},\n formAccess: {},\n projectAccess: {},\n roles: {},\n forms: {},\n is: {},\n error: null\n };\n}\n\nfunction mapProjectRolesToUserRoles(projectRoles: Record<string, any>, userRoles: any[]) {\n return Object.entries(projectRoles).reduce(\n (result, [name, role]) => ({\n ...result,\n [name]: userRoles.includes(role._id)\n }),\n {}\n );\n}\n\nfunction getUserRoles(projectRoles: Record<string, RoleSchema>) {\n return Object.keys(projectRoles).reduce(\n (result, name) => ({\n ...result,\n [name]: name === \"anonymous\"\n }),\n {}\n );\n}\n\nexport const authReducer = createReducer<AuthState>(\n {\n [requestUser.toString()](state) {\n return {\n ...state,\n init: true,\n submissionAccess: false,\n isActive: true\n };\n },\n [receiveUser.toString()](state, { user }) {\n return {\n ...state,\n isActive: false,\n user,\n authenticated: true,\n is: mapProjectRolesToUserRoles(state.roles, user.roles),\n error: null\n };\n },\n [failUser.toString()](state, { error }: any) {\n return {\n ...state,\n isActive: false,\n is: getUserRoles(state.roles),\n error\n };\n },\n [logoutUser.toString()](state) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n },\n [submissionAccessUser.toString()](state, { submissionAccess }: any) {\n return {\n ...state,\n submissionAccess\n };\n },\n [formAccessUser.toString()](state, { formAccess }: any) {\n return {\n ...state,\n formAccess\n };\n },\n [userForms.toString()](state, { forms }: any) {\n return {\n ...state,\n forms\n };\n },\n [projectAccessUser.toString()](state, { projectAccess }: any) {\n return {\n ...state,\n projectAccess\n };\n },\n [userRoles.toString()](state, { roles }: any) {\n return {\n ...state,\n roles\n };\n },\n default(state: any) {\n if (!window.localStorage.getItem(\"formioUser\")) {\n return {\n ...state,\n user: null,\n isActive: false,\n authenticated: false,\n is: getUserRoles(state.roles),\n error: null\n };\n }\n return state;\n }\n },\n createInitialState\n)(AUTH);\n","import get from \"lodash/get\";\n\nimport { RoleSchema, Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { AUTH } from \"./auth.constant\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport const selectAuth = (state: any) => selectRoot<AuthState>(AUTH, state);\n\nexport const selectUser = <User = any>(state: any): null | Submission<User> => get(selectAuth(state), \"user\");\n\nexport const selectRoles = (state: any): Record<string, RoleSchema> => get(selectAuth(state), \"roles\");\n\nexport const selectIsAuthenticated = (state: any): boolean => get(selectAuth(state), \"authenticated\");\n","import get from \"lodash/get\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { AuthState } from \"./auth.reducers\";\n\nexport function hasRole(auth: AuthState, role: string): boolean {\n return auth.is[role];\n}\n\nexport function hasRoles(auth: AuthState, roles: string[]): boolean {\n roles = ([] as string[]).concat(roles);\n\n return !!roles.find((role) => hasRole(auth, role));\n}\n\nexport function isAuthorized(auth: AuthState, roles: string[] = []): boolean {\n if (auth && auth.authenticated) {\n if (roles.length) {\n return !!hasRoles(auth, roles);\n }\n return true;\n }\n\n return false;\n}\n\nexport function checkRoleFormAccess(auth: AuthState, form?: Partial<FormSchema>, roles?: string[]) {\n if (roles && roles.length) {\n if (isAuthorized(auth, roles)) {\n return true;\n }\n\n return roles.includes(\"owner\") && get(form, \"owner\") === get(auth, \"user._id\");\n }\n\n return true;\n}\n","import { Formio } from \"formiojs\";\n\nimport { RoleSchema } from \"../../interfaces\";\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { formAccessUser, submissionAccessUser, userForms, userRoles } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformSubmissionAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name as string]: form.submissionAccess.reduce(\n (formSubmissionAccess: any, access: any) => ({\n ...formSubmissionAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nfunction transformFormAccess(forms: Record<string, FormSchema>) {\n return Object.values(forms).reduce(\n (result, form) => ({\n ...result,\n [form.name as string]: form.access.reduce(\n (formAccess: any, access: any) => ({\n ...formAccess,\n [access.type]: access.roles\n }),\n {}\n )\n }),\n {}\n );\n}\n\nexport async function getAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const result: {\n roles: Record<string, RoleSchema>;\n forms: Record<string, FormSchema>;\n } = await Formio.makeStaticRequest(`${projectUrl}/access`);\n\n const submissionAccess = transformSubmissionAccess(result.forms);\n const formAccess = transformFormAccess(result.forms);\n\n dispatch(submissionAccessUser(AUTH, { submissionAccess }));\n dispatch(formAccessUser(AUTH, { formAccess }));\n dispatch(userRoles(AUTH, { roles: result.roles }));\n dispatch(userForms(AUTH, { forms: result.forms }));\n } catch (err) {}\n}\n","import { Formio } from \"formiojs\";\n\nimport { projectAccessUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nfunction transformProjectAccess(projectAccess: any[]) {\n return projectAccess.reduce(\n (result: any, access: any) => ({\n ...result,\n [access.type]: access.roles\n }),\n {}\n );\n}\n\nexport async function getProjectAccess(dispatch: any) {\n const projectUrl = Formio.getProjectUrl();\n\n try {\n const project = await Formio.makeStaticRequest(projectUrl);\n const projectAccess = transformProjectAccess(project.access);\n\n dispatch(projectAccessUser(AUTH, projectAccess));\n } catch (er) {}\n}\n","import { Formio } from \"formiojs\";\n\nimport { logoutUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const logout = () => async (dispatch: any) => {\n await Formio.logout();\n dispatch(logoutUser(AUTH));\n};\n","import { Formio } from \"formiojs\";\n\nimport { receiveUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\n\nexport const setUser = (user: any) => (dispatch: any) => {\n Formio.setUser(user);\n dispatch(receiveUser(AUTH, { user }));\n};\n","import { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { failUser, requestUser } from \"./auth.actions\";\nimport { AUTH } from \"./auth.constant\";\nimport { getAccess } from \"./getAccess.action\";\nimport { getProjectAccess } from \"./getProjectAccess.action\";\nimport { logout } from \"./logout.action\";\nimport { setUser } from \"./setUser.action\";\n\nexport const initAuth =\n (done = noop) =>\n async (dispatch: any) => {\n dispatch(requestUser(AUTH));\n\n try {\n const [user] = await Promise.all([Formio.currentUser(), getAccess(dispatch), getProjectAccess(dispatch)]);\n\n if (user) {\n dispatch(setUser(user));\n } else {\n dispatch(logout());\n }\n } catch (error) {\n dispatch(failUser(AUTH, { error }));\n }\n\n done();\n };\n","import { FormSchema } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { FormState } from \"./form.reducers\";\n\nexport const selectForm = (name: string, state: any): Partial<FormSchema> => selectRoot<FormState>(name, state).data!;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { getFormUrl } from \"../../utils/url\";\nimport { getActions } from \"../actions\";\nimport { selectForm } from \"./form.selectors\";\n\nexport const clearFormError = createAction();\nexport const requestForm = createAction();\nexport const receiveForm = createAction();\nexport const failForm = createAction();\nexport const resetForm = createAction();\nexport const sendForm = createAction();\n\nfunction shouldGet(form: Partial<FormSchema>, id: string) {\n return form && form.components && Array.isArray(form.components) && form.components.length && form._id === id;\n}\n\nexport const getForm =\n (name: string, id = \"\", done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(clearFormError(name));\n // Check to see if the form is already loaded.\n const form = selectForm(name, getState());\n\n if (shouldGet(form, id)) {\n return;\n }\n\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n dispatch(requestForm(name, { id, url }));\n\n try {\n const form = await formio.loadForm();\n\n dispatch(receiveForm(name, { form, url }));\n dispatch(getActions(form._id));\n done(null, form);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n\nexport const saveForm =\n (name: string, form: Partial<FormSchema>, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n dispatch(sendForm(name, { form }));\n\n const id = form._id || \"\";\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveForm(form);\n dispatch(receiveForm(name, { form: result, url: getFormUrl(result._id) }));\n done(null, result);\n } catch (error) {\n dispatch(failForm(name, { error }));\n done(error);\n }\n };\n\nexport const deleteForm =\n (name: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearFormError(name));\n const url = getFormUrl(id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteForm();\n dispatch(resetForm(name));\n done();\n } catch (error) {\n dispatch(failForm(name, { error }));\n done({ error });\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { clearFormError, failForm, receiveForm, requestForm, resetForm, sendForm } from \"./form.actions\";\n\nexport interface FormState {\n error: null | Error;\n data?: Partial<FormSchema>;\n isActive: boolean;\n lastUpdated: number;\n url: string;\n}\n\nconst createInitialState: InitialStateCreator<FormState> = () => ({\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const formReducer = createReducer<FormState>(\n {\n [resetForm.toString()]: (_, _2, reset) => reset(),\n [clearFormError.toString()]: (state) => ({\n ...state,\n error: null\n }),\n [requestForm.toString()]: (state, { id, url }) => ({\n ...state,\n isActive: true,\n id,\n url,\n data: {},\n error: null\n }),\n [receiveForm.toString()]: (state, { form, url }) => ({\n ...state,\n isActive: false,\n id: form._id,\n data: form,\n url: url || state.url,\n error: null\n }),\n [failForm.toString()]: (state, payload) => ({\n ...state,\n error: payload.error,\n isActive: false\n }),\n [sendForm.toString()]: (state, { form, url }) => ({\n ...state,\n data: form,\n url,\n isActive: true\n })\n },\n createInitialState\n);\n","export function clean(obj: any = {}) {\n return Object.entries(obj).reduce((obj, [key, entry]) => {\n if (entry !== undefined) {\n return {\n ...obj,\n [key]: entry\n };\n }\n\n return obj;\n }, {});\n}\n","import { QueryOptions } from \"../interfaces/QueryOptions\";\nimport { clean } from \"./clean\";\n\nexport interface RequestParamsOptions extends QueryOptions {\n select: string | string[];\n query: {\n [key: string]: string;\n };\n [key: string]: any;\n}\n\nexport function mapRequestParams({ query, pageSize = 10, pageIndex = 0, select, filters, sortBy }: Partial<RequestParamsOptions>) {\n const requestParams: any = {\n ...clean(query),\n limit: pageSize,\n skip: pageIndex * pageSize\n };\n\n if (select && select.length) {\n requestParams.select = Array.isArray(select) ? select.join(\",\") : select;\n }\n\n if (filters && filters.length) {\n filters.forEach((filter) => {\n if (filter.value) {\n requestParams[`${filter.id}__regex`] = new RegExp(filter.value, \"gi\").toString();\n }\n });\n }\n\n if (sortBy && sortBy.length) {\n requestParams.sort = (sortBy[0].desc ? \"-\" : \"\") + sortBy[0].id;\n }\n\n return requestParams;\n}\n","import { selectRoot } from \"../root\";\nimport { FormsState } from \"./forms.reducers\";\n\nexport const selectForms = (name: string, state: any) => selectRoot<FormsState>(name, state).data;\n\nexport const selectFormsParameters = (name: string, state: any) => selectRoot<FormsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport type { RequestParamsOptions } from \"../../utils/mapRequestParams\";\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { selectFormsParameters } from \"./forms.selectors\";\n\nexport const resetForms = createAction();\nexport const requestForms = createAction<{\n parameters: Partial<RequestParamsOptions>;\n}>();\nexport const receiveForms = createAction<{ forms: FormSchema[] }>();\nexport const failForms = createAction();\n\nexport type GetFormsCB = (err: any, forms?: FormSchema[]) => void;\n\nexport const getForms =\n (name: string, parameters: Partial<RequestParamsOptions>, done: GetFormsCB = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestForms(name, { parameters }));\n\n const formio = new Formio(`${Formio.getProjectUrl()}/form`);\n const requestParams = mapRequestParams(selectFormsParameters(name, getState()));\n\n try {\n const result: FormSchema[] = await formio.loadForms({\n params: requestParams\n });\n dispatch(receiveForms(name, { forms: result }));\n done(null, result);\n } catch (error) {\n dispatch(failForms(name, { error }));\n done(error);\n }\n };\n\nexport const refreshForms = (name: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectFormsParameters(name, getState());\n return getForms(name, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { failForms, receiveForms, requestForms, resetForms } from \"./forms.actions\";\n\nexport interface FormsState {\n error: null | Error;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n filters: any[];\n };\n data: FormSchema[];\n}\n\nconst createInitialState = ({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): FormsState => {\n return {\n error: null,\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy,\n filters: []\n },\n data: []\n };\n};\n\nexport const formsReducer = createReducer<FormsState>({}, createInitialState)\n .on(resetForms, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestForms, (state: FormsState, { parameters }: any) => {\n return {\n ...state,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveForms, (state: FormsState, { forms }: any) => {\n const total = forms.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete forms.serverCount;\n\n return {\n ...state,\n data: forms,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failForms, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { Submission } from \"../../interfaces\";\nimport { getSubmissionUrl } from \"../../utils/url\";\n\nexport const clearSubmissionError = createAction();\nexport const requestSubmission = createAction();\nexport const sendSubmission = createAction();\nexport const receiveSubmission = createAction();\nexport const failSubmission = createAction();\nexport const resetSubmission = createAction();\n\nexport const getSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any, getState: any) => {\n // Check to see if the submission is already loaded.\n if (getState().id === id) {\n return;\n }\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n dispatch(clearSubmissionError(name));\n dispatch(requestSubmission(name, { id, formId, url }));\n\n try {\n const result = await formio.loadSubmission();\n\n dispatch(receiveSubmission(name, { submission: result, url }));\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const saveSubmission =\n (name: string, formId: string, data: Submission, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n dispatch(sendSubmission(name, { submission: data, formId }));\n\n const id = data._id;\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n const result = await formio.saveSubmission(data);\n dispatch(\n receiveSubmission(name, {\n submission: result,\n url: getSubmissionUrl(formId, result._id)\n })\n );\n done(null, result);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n\nexport const deleteSubmission =\n (name: string, formId: string, id: string, done = noop) =>\n async (dispatch: any) => {\n dispatch(clearSubmissionError(name));\n\n const url = getSubmissionUrl(formId, id);\n const formio = new Formio(url);\n\n try {\n await formio.deleteSubmission();\n dispatch(resetSubmission(name));\n done(null);\n } catch (error) {\n dispatch(failSubmission(name, { error }));\n done(error);\n }\n };\n","import { createReducer, InitialStateCreator } from \"@tsed/redux-utils\";\n\nimport { Submission } from \"../../interfaces\";\nimport {\n clearSubmissionError,\n failSubmission,\n receiveSubmission,\n requestSubmission,\n resetSubmission,\n sendSubmission\n} from \"./submission.actions\";\n\nexport interface SubmissionState {\n formId: string;\n id: string;\n isActive: boolean;\n lastUpdated: number;\n data: Partial<Submission>;\n url: string;\n error: null | Error;\n}\n\nconst createInitialState: InitialStateCreator = () => ({\n formId: \"\",\n id: \"\",\n isActive: false,\n lastUpdated: 0,\n data: {},\n url: \"\",\n error: null\n});\n\nexport const submissionReducer = createReducer<SubmissionState>(\n {\n [resetSubmission.toString()]: (_: any, _2: any, reset: any) => reset(),\n [clearSubmissionError.toString()]: (state: any) => ({\n ...state,\n error: null\n }),\n [requestSubmission.toString()]: (state: any, { formId, id, url }: any) => ({\n ...state,\n formId,\n id,\n url,\n data: {},\n isActive: true\n }),\n [sendSubmission.toString()]: (state: any, { formId, submission, id, url }: any) => ({\n ...state,\n formId,\n id,\n url: url || state.url,\n data: submission,\n isActive: true\n }),\n [receiveSubmission.toString()]: (state: any, { submission, url }: any) => ({\n ...state,\n data: submission,\n url: url || state.url,\n isActive: false,\n error: null\n }),\n [failSubmission.toString()]: (state: any, { error }: any) => ({\n ...state,\n isActive: false,\n error\n })\n },\n createInitialState\n);\n","import { Submission } from \"../../interfaces\";\nimport { selectRoot } from \"../root\";\nimport { SubmissionState } from \"./submission.reducers\";\n\nexport const selectSubmission = (name: string, state: any): Partial<Submission> => selectRoot<SubmissionState>(name, state).data;\n","import { selectRoot } from \"../root\";\nimport { SubmissionsState } from \"./submissions.reducers\";\n\nexport const selectSubmissions = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).data;\n\nexport const selectSubmissionsParameters = (name: string, state: any) => selectRoot<SubmissionsState>(name, state).parameters;\n","import { createAction } from \"@tsed/redux-utils\";\nimport { Formio } from \"formiojs\";\nimport noop from \"lodash/noop\";\n\nimport { mapRequestParams } from \"../../utils/mapRequestParams\";\nimport { getSubmissionUrl } from \"../../utils/url\";\nimport { selectSubmissionsParameters } from \"./submissions.selectors\";\n\nexport const resetSubmissions = createAction();\nexport const requestSubmissions = createAction();\nexport const receiveSubmissions = createAction();\nexport const failSubmissions = createAction();\n\nexport const getSubmissions =\n (name: string, formId: string, parameters: any = {}, done = noop) =>\n async (dispatch: any, getState: any) => {\n dispatch(requestSubmissions(name, { formId, parameters }));\n\n const url = getSubmissionUrl(formId);\n const formio = new Formio(url);\n const requestParams = mapRequestParams(selectSubmissionsParameters(name, getState()));\n\n try {\n const submissions = await formio.loadSubmissions({ params: requestParams });\n dispatch(receiveSubmissions(name, { submissions }));\n done(null, submissions);\n } catch (error) {\n dispatch(failSubmissions(name, { error }));\n done(error);\n }\n };\n\nexport const refreshSubmissions = (name: string, formId: string, done = noop) => {\n return async (dispatch: any, getState: any) => {\n const parameters = selectSubmissionsParameters(name, getState());\n return getSubmissions(name, formId, parameters, done)(dispatch, getState);\n };\n};\n","import { createReducer } from \"@tsed/redux-utils\";\n\nimport { Submission } from \"../../interfaces/Submission\";\nimport { failSubmissions, receiveSubmissions, requestSubmissions, resetSubmissions } from \"./submissions.actions\";\n\nexport interface SubmissionsState {\n error: null | Error;\n formId: string;\n isActive: boolean;\n parameters: {\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n query: any;\n select: any;\n sortBy: any[];\n };\n data: Submission[];\n}\n\nexport function createInitialState({ pageIndex = 0, pageSize = 10, query = {}, select = \"\", sortBy = [] }: any = {}): SubmissionsState {\n return {\n error: null,\n formId: \"\",\n isActive: false,\n parameters: {\n pageSize,\n pageIndex,\n pageCount: 0,\n query,\n select,\n sortBy\n },\n data: []\n };\n}\n\nexport const submissionsReducer = createReducer<SubmissionsState>({}, createInitialState)\n .on(resetSubmissions, (_: any, _2: any, reset: any) => {\n return reset();\n })\n .on(requestSubmissions, (state: any, { parameters, formId }: any) => {\n return {\n ...state,\n formId,\n parameters: {\n ...state.parameters,\n ...parameters\n },\n error: null,\n data: [],\n isActive: true\n };\n })\n .on(receiveSubmissions, (state: SubmissionsState, { submissions }: any) => {\n const total = submissions.serverCount;\n const pageCount = Math.ceil(total / (state.parameters.pageSize || 10));\n\n delete submissions.serverCount;\n\n return {\n ...state,\n data: submissions,\n isActive: false,\n parameters: {\n ...state.parameters,\n pageCount,\n totalLength: total\n }\n };\n })\n .on(failSubmissions, (state: any, { error }: any) => {\n return {\n ...state,\n error,\n isActive: false\n };\n });\n","import { combine } from \"@tsed/redux-utils\";\n\nimport { actionReducer } from \"./action\";\nimport { actionInfoReducer } from \"./action-info\";\nimport { actionsReducer } from \"./actions\";\nimport { authReducer } from \"./auth\";\nimport { formReducer } from \"./form\";\nimport { formsReducer } from \"./forms\";\nimport { submissionReducer } from \"./submission\";\nimport { submissionsReducer } from \"./submissions\";\n\nexport * from \"./action\";\nexport * from \"./action-info\";\nexport * from \"./actions\";\nexport * from \"./auth\";\nexport * from \"./form\";\nexport * from \"./forms\";\nexport * from \"./root\";\nexport * from \"./submission\";\nexport * from \"./submissions\";\n\nexport const defaultFormioReducer = combine(\n authReducer,\n actionsReducer,\n actionReducer,\n actionInfoReducer,\n formReducer(\"form\"),\n formsReducer(\"forms\", { query: { type: \"form\" } }),\n formReducer(\"resource\"),\n formsReducer(\"resources\", { query: { type: \"resource\" } }),\n submissionReducer(\"submission\"),\n submissionsReducer(\"submissions\")\n);\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","module","exports","window","iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","from","option","value","type","checked","FormControl","children","required","prefix","suffix","description","label","className","React","classnames","propTypes","PropTypes","string","isRequired","any","bool","Select","size","onChange","choices","placeholder","layout","props","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","map","String","func","array","LEFT_PAGE","RIGHT_PAGE","range","to","step","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","i18n","f","pageNumbers","page","includes","DefaultArrowSort","column","isSorted","isSortedDesc","undefined","DefaultCellHeader","getSortByToggleProps","render","canFilter","callLast","fn","time","last","clearTimeout","setTimeout","InputText","useState","localValue","setValue","change","useMemo","DefaultColumnFilter","filterId","setFilterId","id","filterValue","setFilter","useCallback","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","onClick","action","icon","title","filter","Boolean","DefaultCellOperations","operations","row","ctx","data","original","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","Table","noop","controlledFilters","filters","controlledFilterId","controlledPageSize","controlledPageIndex","controlledSortBy","sortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","CellHeader","_onClick","defaultColumn","Filter","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","getRowProps","cells","cell","hidden","colspan","getCellProps","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","Object","prototype","keys","errors","index","item","path","message","details","Alert","Card","useEvent","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","get","useForm","customValidation","submission","err","src","form","options","url","element","isLoaded","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","args","startsWith","eventName","charAt","toUpperCase","slice","changed","ready","then","formio","onFormReady","isEqual","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onSubmit","onAsyncSubmit","onSubmitDone","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","values","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","components","getAccessPermissionForm","rolesToChoices","roles","role","_id","accessToHash","access","hash","reduce","o","hashToAccess","accessRoles","entries","forEach","accessType","getFormAccess","submissionAccess","dataAccessToSubmissions","formAccess","getKeys","submissionsToDataAccess","submissions","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","settingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","actionInfo","createBuilder","el","display","FormioFormBuilder","builder","handleEvent","EVENTS_CHANGE","EVENTS","on","er","console","FormBuilder","elRef","builderRef","componentDidMount","create","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","componentWillUnmount","componentWillReceiveProps","nextProps","setState","e","defaultProps","onReady","onDestroy","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","readonly","baseUrl","location","origin","hasTypeChoices","textTransform","width","tags","hasChanged","createInitialState","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","useReducer","dispatchFormAction","modified","formChange","newForm","redo","undo","reset","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","SelectColumnFilter","preFilteredRows","customChoices","Set","global","factory","this","hookCallback","setHookCallback","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","match","replace","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","datetime","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","FormsCell","machineName","moment","tag","FormsTable","FormCell","DefaultFormCell","isActive","color","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","ModalFooter","footer","style","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","dataValue","updateOnChange","init","attach","loadRefs","refs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","getFormUrl","formId","Formio","getProjectUrl","Utils","isMongoId","getActionUrl","actionId","getSubmissionUrl","submissionId","ACTION_INFO","resetActionInfo","createAction","requestActionInfo","receiveActionInfo","failActionInfo","getActionInfo","actionType","done","dispatch","actionInfoReducer","createReducer","_","_2","selectRoot","selectError","selectIsActive","oneOfIsActive","selectActionInfo","ACTION","clearActionError","resetAction","requestAction","receiveAction","failAction","sendAction","getFormio","getAction","loadAction","saveAction","deleteAction","actionReducer","selectAction","ACTIONS","resetActions","requestActions","receiveActions","failActions","getActions","Promise","all","loadActions","params","actions","actionsReducer","selectActions","selectAvailableActions","requestUser","receiveUser","failUser","logoutUser","submissionAccessUser","formAccessUser","projectAccessUser","userRoles","userForms","AUTH","user","authenticated","projectAccess","forms","is","mapProjectRolesToUserRoles","projectRoles","getUserRoles","authReducer","localStorage","getItem","selectAuth","selectUser","selectRoles","selectIsAuthenticated","hasRole","auth","hasRoles","isAuthorized","checkRoleFormAccess","transformSubmissionAccess","formSubmissionAccess","transformFormAccess","getAccess","projectUrl","makeStaticRequest","transformProjectAccess","getProjectAccess","project","logout","setUser","initAuth","currentUser","selectForm","clearFormError","requestForm","receiveForm","failForm","resetForm","sendForm","shouldGet","getForm","getState","loadForm","saveForm","deleteForm","lastUpdated","formReducer","payload","clean","entry","mapRequestParams","query","select","requestParams","skip","desc","selectForms","selectFormsParameters","parameters","resetForms","requestForms","receiveForms","failForms","getForms","loadForms","refreshForms","formsReducer","serverCount","totalLength","clearSubmissionError","requestSubmission","sendSubmission","receiveSubmission","failSubmission","resetSubmission","getSubmission","loadSubmission","saveSubmission","deleteSubmission","submissionReducer","selectSubmission","selectSubmissions","selectSubmissionsParameters","resetSubmissions","requestSubmissions","receiveSubmissions","failSubmissions","getSubmissions","loadSubmissions","refreshSubmissions","submissionsReducer","defaultFormioReducer","combine"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOC,aAAY;;IAGZ,IAAIA,MAAM,GAAG,GAAGC,cAAhB;;IAEA,SAASC,UAAT,GAAuB;MACtB,IAAIC,OAAO,GAAG,EAAd;;MAEA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACC,MAA9B,EAAsCF,CAAC,EAAvC,EAA2C;QAC1C,IAAIG,GAAG,GAAGF,SAAS,CAACD,CAAD,CAAnB;QACA,IAAI,CAACG,GAAL,EAAU;QAEV,IAAIC,OAAO,GAAG,OAAOD,GAArB;;QAEA,IAAIC,OAAO,KAAK,QAAZ,IAAwBA,OAAO,KAAK,QAAxC,EAAkD;UACjDL,OAAO,CAACM,IAAR,CAAaF,GAAb;SADD,MAEO,IAAIG,KAAK,CAACC,OAAN,CAAcJ,GAAd,KAAsBA,GAAG,CAACD,MAA9B,EAAsC;UAC5C,IAAIM,KAAK,GAAGV,UAAU,CAACW,KAAX,CAAiB,IAAjB,EAAuBN,GAAvB,CAAZ;;UACA,IAAIK,KAAJ,EAAW;YACVT,OAAO,CAACM,IAAR,CAAaG,KAAb;;SAHK,MAKA,IAAIJ,OAAO,KAAK,QAAhB,EAA0B;UAChC,KAAK,IAAIM,GAAT,IAAgBP,GAAhB,EAAqB;YACpB,IAAIP,MAAM,CAACe,IAAP,CAAYR,GAAZ,EAAiBO,GAAjB,KAAyBP,GAAG,CAACO,GAAD,CAAhC,EAAuC;cACtCX,OAAO,CAACM,IAAR,CAAaK,GAAb;;;;;;MAMJ,OAAOX,OAAO,CAACa,IAAR,CAAa,GAAb,CAAP;;;IAGD,IAAqCC,MAAM,CAACC,OAA5C,EAAqD;MACpDhB,UAAU,WAAV,GAAqBA,UAArB;MACAe,cAAA,GAAiBf,UAAjB;KAFD,MAQO;MACNiB,MAAM,CAACjB,UAAP,GAAoBA,UAApB;;GA1CD,GAAD;;;SCLgBkB,UAAUC,SAA6BC,MAAcC;EACnE,OAAOC,kBAAS,CAACC,OAAV,CAAkBL,SAAlB,CAA4BC,OAAO,IAAIG,kBAAS,CAACC,OAAV,CAAkBC,cAAzD,EAAyEJ,IAAzE,EAA+EC,QAA/E,CAAP;AACD;;SCJeI,cAAcC;MACpBC,SAAWD,MAAXC;;EAER,IAAID,KAAK,CAACC,MAAN,CAAaC,QAAb,IAAyBF,KAAK,CAACC,MAAN,CAAaE,eAA1C,EAA2D;IACzD,OAAOrB,KAAK,CAACsB,IAAN,CAAWJ,KAAK,CAACC,MAAN,CAAaE,eAAxB,EAAyC,UAACE,MAAD;MAAA,OAAiBA,MAAM,CAACC,KAAxB;KAAzC,CAAP;;;EAGF,OAAOL,MAAM,CAACM,IAAP,KAAgB,UAAhB,GAA6BN,MAAM,CAACO,OAApC,GAA8CP,MAAM,CAACK,KAA5D;AACD;;SCOeG;MACdC,gBAAAA;MACAhB,YAAAA;MACAiB,gBAAAA;MACAC,cAAAA;MACAC,cAAAA;MACAC,mBAAAA;MACAC,aAAAA;MACAC,iBAAAA;EAEA,oBACEC;IAAK,eAAavB,IAAI,oBAAkBA,IAAxC;IAAgD,EAAE,mBAAgBA,IAAI,IAAI,EAAxB,CAAlD;IAAgF,SAAS,EAAEwB,UAAU,CAAC,YAAD,EAAeF,SAAf;KAClGD,KAAK,iBACJE;IAAO,OAAO,EAAEvB,IAAhB;IAAsB,eAAY,oBAAlC;IAAuD,SAAS,uBAAoBiB,QAAQ,GAAG,iBAAH,GAAuB,EAAnD;KAC7DI,KADH,CAFJ,eAMEE;IAAK,SAAS,EAAE;KACbL,MAAM,iBACLK;IAAK,SAAS,EAAC;kBACbA;IAAM,SAAS,EAAC,kBAAhB;IAAmC,eAAY;KAC5CL,MADH,CADF,CAFJ,EAQGF,QARH,EASGG,MAAM,iBACLI;IAAK,SAAS,EAAC;kBACbA;IAAM,SAAS,EAAC,kBAAhB;IAAmC,eAAY;KAC5CJ,MADH,CADF,CAVJ,CANF,EAuBGC,WAAW,iBACVG;IAAK,eAAY,0BAAjB;IAA4C,SAAS,EAAC;KACnDH,WADH,CAxBJ,CADF;AA+BD;AAEDL,WAAW,CAACU,SAAZ,GAAwB;EACtBJ,KAAK,EAAEK,6BAAS,CAACC,MADK;EAEtB3B,IAAI,EAAE0B,6BAAS,CAACC,MAAV,CAAiBC,UAFD;EAGtBZ,QAAQ,EAAEU,6BAAS,CAACG,GAHE;EAItBZ,QAAQ,EAAES,6BAAS,CAACI,IAJE;EAKtBV,WAAW,EAAEM,6BAAS,CAACG;AALD,CAAxB;;SCtCgBE;MACd/B,YAAAA;MACAqB,aAAAA;MACAW,YAAAA;MACAC,iBAAAA;MACAhB,gBAAAA;MACAL,aAAAA;MACAsB,eAAAA;MACAd,mBAAAA;MACAe,mBAAAA;MACAjB,cAAAA;MACAC,cAAAA;MACAX,gBAAAA;MACA4B,cAAAA;MACGC;;EAEH,IAAMC,GAAG,GAAGC,YAAM,EAAlB;EAEAC,eAAS,CAAC;IACR,IAAIC,QAAJ;;IAEA,IAAIL,MAAM,KAAK,WAAf,EAA4B;MAC1BK,QAAQ,GAAG,IAAIC,2BAAJ,CAAYJ,GAAG,CAACnC,OAAhB,EAAyB;QAClCwC,gBAAgB,EAAE,IADgB;QAElCC,gBAAgB,EAAET;OAFT,CAAX;;;IAMF,OAAO;MACLM,QAAQ,IAAIA,QAAQ,CAACI,OAAT,EAAZ;KADF;GAVO,EAaN,EAbM,CAAT;EAeAX,OAAO,GACLE,MAAM,KAAK,WAAX,IAA0B5B,QAA1B,IAAsC,CAAC2B,WAAvC,GACID,OADJ,IAGM;IACEb,KAAK,EAAEc,WADT;IAEEvB,KAAK,EAAE;GALf,SAOSsB,OAPT,CADF;EAWA,oBACEX,wCAAC,WAAD;IAAa,IAAI,EAAEvB,IAAnB;IAAyB,KAAK,EAAEqB,KAAhC;IAAuC,QAAQ,EAAEJ,QAAjD;IAA2D,WAAW,EAAEG,WAAxE;IAAqF,MAAM,EAAEF,MAA7F;IAAqG,MAAM,EAAEC,MAA7G;IAAqH,MAAM,EAAE;kBAE3HI;IACE,GAAG,EAAEe;KACDD,KAFN;IAGE,2BAAuBrC,IAHzB;IAIE,SAAS,EAAEwB,UAAU,CAAC,cAAD,EAAiBQ,IAAI,sBAAoBA,IAAzC,CAJvB;IAKE,IAAI,EAAEhC,IALR;IAME,EAAE,EAAEA,IANN;IAOE,QAAQ,EAAEQ,QAPZ;IAQE,KAAK,EAAEI,KAAK,IAAK,EARnB;IASE,WAAW,EAAEuB,WATf;IAUE,QAAQ,EAAE,kBAAC7B,KAAD;MACR2B,SAAQ,IAAIA,SAAQ,CAACjC,IAAD,EAAOK,aAAa,CAACC,KAAD,CAApB,CAApB;;MAGD4B,OAAO,CAACY,GAAR,CAAY;QAAGzB,cAAAA;QAAOT,cAAAA;IACrB,oBACEW;MAAQ,GAAG,EAAEwB,MAAM,CAACnC,KAAD,CAAnB;MAA4B,KAAK,EAAES,KAAnC;MAA0C,KAAK,EAAET;OAC9CS,KADH,CADF;GADD,CAdH,CAFF,CADF;AA2BD;AAEDU,MAAM,CAACN,SAAP,GAAmB;EACjBJ,KAAK,EAAEK,6BAAS,CAACC,MADA;EAEjB3B,IAAI,EAAE0B,6BAAS,CAACC,MAAV,CAAiBC,UAFN;EAGjBhB,KAAK,EAAEc,6BAAS,CAACG,GAHA;EAIjBZ,QAAQ,EAAES,6BAAS,CAACI,IAJH;EAKjBG,QAAQ,EAAEP,6BAAS,CAACsB,IALH;EAMjBd,OAAO,EAAER,6BAAS,CAACuB,KAAV,CAAgBrB;AANR,CAAnB;;AC7FO,IAAMsB,SAAS,GAAG,MAAlB;AACA,IAAMC,UAAU,GAAG,OAAnB;;AAEP,SAASC,KAAT,CAAe1C,IAAf,EAA6B2C,EAA7B,EAAyCC,IAAzC;MAAyCA;IAAAA,OAAO;;;EAC9C,IAAIxE,CAAC,GAAG4B,IAAR;EACA,IAAM0C,KAAK,GAAG,EAAd;;EAEA,OAAOtE,CAAC,IAAIuE,EAAZ,EAAgB;IACdD,KAAK,CAACjE,IAAN,CAAWL,CAAX;IACAA,CAAC,IAAIwE,IAAL;;;EAGF,OAAOF,KAAP;AACD;;SAEeG;MAAiBC,mBAAAA;iCAAaC;MAAAA,kDAAiB;MAAGC,kBAAAA;EAChE,IAAMC,YAAY,GAAGF,cAAc,GAAG,CAAjB,GAAqB,CAA1C;EACA,IAAMG,WAAW,GAAGD,YAAY,GAAG,CAAnC;;EAEA,IAAID,UAAU,GAAGE,WAAjB,EAA8B;IAC5B,IAAMC,mBAAmB,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYP,WAAW,GAAGC,cAA1B,CAA5B;IACA,IAAMO,iBAAiB,GAAGF,IAAI,CAACG,GAAL,CAASP,UAAU,GAAG,CAAtB,EAAyBF,WAAW,GAAGC,cAAvC,CAA1B;IACA,IAAMS,SAAS,GAAGL,mBAAmB,KAAK,CAAxB,GAA4B,CAA5B,GAAgCA,mBAAlD;IACA,IAAMM,OAAO,GAAGH,iBAAiB,KAAKN,UAAU,GAAG,CAAnC,GAAuCA,UAAU,GAAG,CAApD,GAAwDM,iBAAxE;IAEA,IAAII,KAAK,GAAGhB,KAAK,CAACc,SAAD,EAAYC,OAAZ,CAAjB;IAEA,IAAME,YAAY,GAAGH,SAAS,GAAG,CAAjC;IACA,IAAMI,aAAa,GAAGZ,UAAU,GAAGS,OAAb,GAAuB,CAA7C;IACA,IAAMI,WAAW,GAAGZ,YAAY,IAAIS,KAAK,CAACpF,MAAN,GAAe,CAAnB,CAAhC;IACA,IAAIwF,UAAJ;;IAEA,IAAIH,YAAY,IAAI,CAACC,aAArB,EAAoC;MAClCE,UAAU,GAAGpB,KAAK,CAACc,SAAS,GAAGK,WAAb,EAA0BL,SAAS,GAAG,CAAtC,CAAlB;MACAE,KAAK,IAAIlB,SAAJ,SAAkBsB,UAAlB,EAAiCJ,KAAjC,CAAL;KAFF,MAGO,IAAI,CAACC,YAAD,IAAiBC,aAArB,EAAoC;MACzCE,UAAU,GAAGpB,KAAK,CAACe,OAAO,GAAG,CAAX,EAAcA,OAAO,GAAGI,WAAxB,CAAlB;MACAH,KAAK,aAAOA,KAAP,EAAiBI,UAAjB,GAA6BrB,UAA7B,EAAL;KAFK,MAGA;MACLiB,KAAK,IAAIlB,SAAJ,SAAkBkB,KAAlB,GAAyBjB,UAAzB,EAAL;;;IAGF,QAAQ,CAAR,SAAciB,KAAd,GAAqBV,UAArB;;;EAGF,OAAON,KAAK,CAAC,CAAD,EAAIM,UAAJ,CAAZ;AACD;;ACxCD,SAASe,gBAAT,CACEpC,KADF;yBAUyFA,MAA/EqC;MAAWC,0CAAY;MAAU3D,WAA8CqB,MAA9CrB;MAAU4D,WAAoCvC,MAApCuC;MAAUC,SAA0BxC,MAA1BwC;MAAWC,2CAAezC;;EAEvF,oBACEd,wCAAC,SAAD,eACMuD,UADN;IAEE,eAAY,mBAFd;IAGE,QAAQ,EAAEF,QAHZ;IAIE,SAAS,EAAEpD,UAAU,CAAC,WAAD,EAAcoD,QAAQ,GAAG,UAAH,GAAgB,EAAtC,EAA0CC,MAAM,GAAG,EAAH,GAAQ,EAAxD,EAA4DxC,KAAK,CAACf,SAAlE;MAEpBN,QANH,CADF;AAUD;;SAkBe+D,WAAW1C;MAEvBf,YAaEe,MAbFf;yBAaEe,MAZF2C;MAAAA,0CAAY,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,GAAb;MACZC,WAWE5C,MAXF4C;MACAC,kBAUE7C,MAVF6C;MACAC,eASE9C,MATF8C;MACAC,WAQE/C,MARF+C;MACAC,cAOEhD,MAPFgD;MACAC,YAMEjD,MANFiD;yBAMEjD,MALFkD;MAAAA,0CAAY;MACZC,cAIEnD,MAJFmD;MACAC,WAGEpD,MAHFoD;MACAC,cAEErD,MAFFqD;oBAEErD,MADFsD;MAAAA,gCAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;EAGT,IAAMC,WAAW,GAAGtC,cAAc,CAAC;IACjCC,WAAW,EAAE+B,SADoB;;IAGjC7B,UAAU,EAAE4B;GAHoB,CAAlC;EAKA,IAAMpD,OAAO,GAAU8C,SAAS,CAAClC,GAAV,CAAc,UAAClC,KAAD;IAAA,OAAY;MAAEA,KAAK,EAALA,KAAF;MAASS,KAAK,EAAET;KAA5B;GAAd,CAAvB;EAEA,oBACEW;IAAK,cAAW,iBAAhB;IAAkC,SAAS,EAAEC,UAAU,CAAC,wBAAD,EAA2BF,SAA3B;kBACrDC;IAAI,SAAS,EAAC;kBACZA;IAAI,SAAS,EAAEC,UAAU,CAAC,WAAD,EAAc,CAAC0D,eAAD,IAAoB,UAAlC;kBACvB3D,wCAAC,gBAAD;IAAkB,QAAQ,EAAE,CAAC,CAA7B;IAAgC,QAAQ,EAAE,CAAC2D,eAA3C;IAA4D,OAAO,EAAE;MAAA,OAAMC,YAAY,EAAlB;;KAClEQ,IAAI,CAAC,UAAD,CADP,CADF,CADF,EAOGE,WAAW,CAAC/C,GAAZ,CAAgB,UAACgD,IAAD;IACf,IAAI,CAAC5C,SAAD,EAAYC,UAAZ,EAAwB4C,QAAxB,CAAiCD,IAAjC,CAAJ,EAA4C;MAC1C,oBACEvE;QAAI,SAAS,EAAC,WAAd;QAA0B,GAAG,EAAEuE;sBAC7BvE,wCAAC,gBAAD;QAAkB,eAAY;eADhC,CADF;;;IAOF,IAAMsD,MAAM,GAAGiB,IAAI,GAAG,CAAP,KAAaP,SAA5B;IACA,oBACEhE;MAAI,SAAS,EAAEC,UAAU,CAAC,WAAD,EAAcqD,MAAM,IAAI,QAAxB,CAAzB;MAA4D,GAAG,EAAEiB;oBAC/DvE,wCAAC,gBAAD;MAAkB,QAAQ,EAAEgE,SAA5B;MAAuC,MAAM,EAAEV,MAA/C;MAAuD,OAAO,EAAE;QAAA,OAAMI,QAAQ,CAACa,IAAI,GAAG,CAAR,CAAd;;OAC7DA,IADH,CADF,CADF;GAVD,CAPH,eA0BEvE;IAAI,SAAS,EAAEC,UAAU,CAAC,WAAD,EAAc,CAAC6D,WAAD,IAAgB,UAA9B;kBACvB9D,wCAAC,gBAAD;IAAkB,QAAQ,EAAEsE,WAAW,CAAC7G,MAAxC;IAAgD,QAAQ,EAAE,CAACqG,WAA3D;IAAwE,OAAO,EAAE;MAAA,OAAMD,QAAQ,EAAd;;KAC9EO,IAAI,CAAC,MAAD,CADP,CADF,CA1BF,CADF,eAkCEpE;IAAI,SAAS,EAAC;kBACZA,wCAAC,MAAD;IACE,IAAI,EAAE,MADR;IAEE,KAAK,EAAEkE,QAFT;IAGE,OAAO,EAAEvD,OAHX;IAIE,QAAQ,EAAE,kBAAClC,IAAD,EAAeY,KAAf;MACR8E,WAAW,CAAC,CAAC9E,KAAF,CAAX;;IANN,eASEW;IAAM,SAAS,EAAE;KAASoE,IAAI,CAAC,gBAAD,CAA9B,CATF,CAlCF,EA6CGH,WAAW,iBACVjE;IAAI,SAAS,EAAE;kBACbA,sDAAOoE,IAAI,CAAC,MAAD,CAAX,SADF,eAEEpE,wDACGgE,SAAS,GAAG,CADf,UACsBC,WAAW,CAACxG,MADlC,CAFF,CA9CJ,CADF;AAwDD;;SC1HegH;MAAmBC,cAAAA;MACzBC,WAA2BD,OAA3BC;MAAUC,eAAiBF,OAAjBE;EAClB,oBACE5E;IAAM,SAAS,EAAE;KACd2E,QAAQ,gBAAG3E;IAAG,SAAS,EAAEzB,SAAS,CAACsG,SAAD,EAAYD,YAAY,GAAG,SAAH,GAAe,WAAvC;IAA1B,GAAoF,EAD/F,CADF;AAKD;;SCJeE;MAA+DJ,cAAAA;EAC7E,oBACE1E;IAAK,SAAS,EAAE;kBACdA;IAAK,SAAS,EAAC;KAA+B0E,MAAM,CAACK,oBAAP,EAA9C,gBACE/E,sDAAO0E,MAAM,CAACM,MAAP,CAAc,QAAd,CAAP,CADF,EAGGN,MAAM,CAACM,MAAP,CAAc,WAAd,CAHH,CADF,EAMGN,MAAM,CAACO,SAAP,gBAAmBjF;IAAK,SAAS,EAAC;KAA6B0E,MAAM,CAACM,MAAP,CAAc,QAAd,CAA5C,CAAnB,GAAgG,IANnG,CADF;AAUD;;SClBeE,SAASC,IAAcC;EACrC,IAAIC,IAAI,GAAQ,IAAhB;EAEA,OAAO;;;IACL,IAAIA,IAAJ,EAAU;MACRC,YAAY,CAACD,IAAD,CAAZ;MACAA,IAAI,GAAG,IAAP;;;IAGFA,IAAI,GAAGE,UAAU,CAAC;MAAA,OAAMJ,EAAE,MAAF,mCAAN;KAAD,EAAoBC,IAApB,CAAjB;GANF;AAQD;;SCUeI;MACd/G,YAAAA;MACAY,aAAAA;MACAS,aAAAA;MACAY,gBAAAA;MACAhB,gBAAAA;MACAe,YAAAA;MACAnB,YAAAA;MACAK,cAAAA;MACAC,cAAAA;MACAC,mBAAAA;MACAE,iBAAAA;MACAa,mBAAAA;MACGE;;kBAE4B2E,cAAQ,CAACpG,KAAD;MAAhCqG;MAAYC;;EAEnB,IAAMC,MAAM,GAAGC,aAAO,CAAC;IAAA,OAAMnF,QAAQ,IAAIwE,QAAQ,CAACxE,QAAD,EAAW,GAAX,CAA1B;GAAD,EAA4C,CAACA,QAAD,CAA5C,CAAtB;EAEAO,eAAS,CAAC;IACR0E,QAAQ,CAACtG,KAAD,CAAR;GADO,EAEN,CAACA,KAAD,CAFM,CAAT;EAIA,oBACEW,wCAAC,WAAD;IACE,IAAI,EAAEvB,IADR;IAEE,KAAK,EAAEqB,KAFT;IAGE,QAAQ,EAAEJ,QAHZ;IAIE,WAAW,EAAEG,WAJf;IAKE,MAAM,EAAEF,MALV;IAME,MAAM,EAAEC,MANV;IAOE,SAAS,EAAEG;kBAEXC;IACE,IAAI,EAAEV,IAAI,IAAI;KACVwB,KAFN;IAGE,0BAAsBrC,IAHxB;IAIE,SAAS,EAAEwB,UAAU,CAAC,cAAD,EAAiBQ,IAAI,sBAAoBA,IAAzC,CAJvB;IAKE,EAAE,EAAEhC,IALN;IAME,QAAQ,EAAEiB,QANZ;IAOE,KAAK,EAAGgG,UAAU,IAAI,EAPxB;IAQE,WAAW,EAAE9E,WARf;IASE,QAAQ,EAAE,kBAAC7B,KAAD;MACR,IAAMM,KAAK,GAAGP,aAAa,CAACC,KAAD,CAA3B;MACA4G,QAAQ,CAACtG,KAAD,CAAR;MAEA,OAAOuG,MAAM,IAAIA,MAAM,CAACnH,IAAD,EAAOY,KAAP,CAAvB;;KAtBN,CADF;AA4BD;AAEDmG,SAAS,CAACtF,SAAV,GAAsB;EACpBJ,KAAK,EAAEK,6BAAS,CAACC,MADG;EAEpBd,IAAI,EAAEa,6BAAS,CAACC,MAFI;EAGpB3B,IAAI,EAAE0B,6BAAS,CAACC,MAAV,CAAiBC,UAHH;EAIpBhB,KAAK,EAAEc,6BAAS,CAACG,GAJG;EAKpBG,IAAI,EAAEN,6BAAS,CAACC,MALI;EAMpBV,QAAQ,EAAES,6BAAS,CAACI,IANA;EAOpBG,QAAQ,EAAEP,6BAAS,CAACsB,IAPA;EAQpB9B,MAAM,EAAEQ,6BAAS,CAACG,GARE;EASpBV,MAAM,EAAEO,6BAAS,CAACG;AATE,CAAtB;;SCrEgBwF,oBACdhF;MAGEiF,WAGEjF,MAHFiF;MACAC,cAEElF,MAFFkF;sBAEElF,MADF4D;MAAUuB,mBAAAA;MAAIC,4BAAAA;MAAaC,0BAAAA;;kBAGHV,cAAQ,CAACS,WAAW,IAAI,EAAhB;MAA3B7G;MAAOsG;;EAEd,IAAMjF,QAAQ,GAAG0F,iBAAW,CAC1B,UAAC3H,IAAD,EAAOY,KAAP;IACEsG,QAAQ,CAACtG,KAAD,CAAR;IACA2G,WAAW,CAACC,EAAD,CAAX;IACAE,SAAS,CAAC9G,KAAK,IAAIwF,SAAV,CAAT;GAJwB,EAM1B,CAACoB,EAAD,EAAKN,QAAL,EAAeK,WAAf,EAA4BG,SAA5B,CAN0B,CAA5B;EASA,oBACEnG,wCAAC,SAAD;IACE,IAAI,EAAE,IADR;IAEE,EAAE,EAAEiG,EAFN;IAGE,IAAI,EAAEA,EAHR;IAIE,GAAG,EAAEA,EAJP;IAKE,SAAS,EAAEA,EAAE,KAAKF,QALpB;IAME,KAAK,EAAE1G,KANT;IAOE,QAAQ,EAAEqB,QAPZ;IAQE,WAAW,EAAE;IATjB;AAYD;;ACrCM,IAAM2F,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAClB,EAAD;EAAA,OAAkB,UAACpG,KAAD;IACtDA,KAAK,CAACuH,eAAN;IACAnB,EAAE;GAFkC;AAAA,CAA/B;;SCmBSoB,uBAAuBzF;yBAWjCA,MATFf;MAAAA,0CAAY;0BASVe,MARF0F;MAAAA,4CAAa;0BAQX1F,MAPF2F;MAAAA,4CAAa;MACbC,gBAME5F,MANF4F;MACAC,UAKE7F,MALF6F;MACAC,SAIE9F,MAJF8F;oBAIE9F,MAHF+F;MAAAA,gCAAO;qBAGL/F,MAFFgG;MAAAA,kCAAQ;oBAENhG,MADFsD;MAAAA,gCAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;EAGT,oBACErE;IACE,SAAS,EAAEC,UAAU,CAACF,SAAD,EAAY,CAAC,KAAD,EAAQ2G,aAAa,IAAI,SAAzB,EAAoCD,UAApC,EAAgDM,MAAhD,CAAuDC,OAAvD,EAAgE7I,IAAhE,CAAqE,GAArE,CAAZ,WAA8FqI,UAA9F,CADvB;IAEE,OAAO,EAAEH,sBAAsB,CAAC;MAAA,OAAMM,OAAO,CAACC,MAAD,CAAb;KAAD;KAE9BC,IAAI,gBACH7G,+FACEA;IAAG,SAAS,EAAEzB,SAAS,CAACsG,SAAD,EAAYgC,IAAZ;IADzB,OACgDC,KAAK,IAAI,GADzD,CADG,GAID,IARN,EASGA,KAAK,iBAAI9G;IAAM,SAAS,EAAE6G,IAAI,IAAIC,KAAR,GAAgB,MAAhB,GAAyB;KAAK1C,IAAI,CAAC0C,KAAD,CAAnD,CATZ,CADF;AAaD;;SCzCeG;MAAwBC,kBAAAA;MAAYC,WAAAA;MAAKR,gBAAAA;MAASS,WAAAA;MAAKhD,YAAAA;EACrE,IAAMiD,IAAI,GAAGF,GAAG,CAACG,QAAjB;EAEA,oBACEtH;IAAK,SAAS,EAAC;KACZkH,UAAU,CACRH,MADF,CACS;IAAA,IAAGQ,mBAAH,SAAGA,mBAAH;IAAA,OAAkC,CAACA,mBAAD,IAAwBA,mBAAmB,CAACF,IAAD,EAAOD,GAAP,CAA7E;GADT,EAEE7F,GAFF,CAEM;sCAAGiG;QAAAA,qDAAkBjB;QAA2BkB;;IACnD,oBACEzH,wCAAC,eAAD;MACE,GAAG,EAAEyH,SAAS,CAACb;OACXa,SAFN;MAGE,OAAO,EAAE,iBAACb,MAAD;QAAA,OAAoBD,QAAO,CAACU,IAAD,EAAOT,MAAP,CAA3B;OAHX;MAIE,IAAI,EAAES,IAJR;MAKE,IAAI,EAAEjD,IALR;MAME,GAAG,EAAEgD;OAPT;GAHH,CADH,CADF;AAkBD;;SCXeM;MACdR,kBAAAA;iCACAS;MAAAA,kDAAiBV;MACjBN,eAAAA;uBACAvC;MAAAA,8BAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;MACP+C,WAAAA;EAEA,OAAO,UAACQ,KAAD;IACLA,KAAK,CAACC,cAAN,CAAqBjK,IAArB,CAA0B,UAACkK,OAAD;MACxB,IAAI,CAACZ,UAAU,CAACzJ,MAAhB,EAAwB;QACtB,OAAOqK,OAAP;;;MAGF,iBACKA,OADL,GAEE;QACE7B,EAAE,EAAE,YADN;QAEE8B,eAAe,EAAE,IAFnB;QAGEC,MAAM,EAAE;UAAA,oBAAMhI;YAAK,SAAS,EAAE;aAAgBoE,IAAI,CAAC,YAAD,CAApC,CAAN;SAHV;QAIE6D,IAAI,EAAE,cAACnH,KAAD;UAAA,oBAAgBd,wCAAC,cAAD,eAAoBc,KAApB;YAA2B,UAAU,EAAEoG,UAAvC;YAAmD,OAAO,EAAEP,OAA5D;YAAqE,GAAG,EAAES,GAA1E;YAA+E,IAAI,EAAEhD;aAArG;;OANV;KALF;GADF;AAiBD;;AC2CD,SAAS8D,oBAAT,CAA8BhB,UAA9B,EAAuDP,OAAvD;EACE,OAAO,UAACU,IAAD,EAAYT,MAAZ;IACL,IAAMa,SAAS,GAAGP,UAAU,CAACiB,IAAX,CAAgB,UAACV,SAAD;MAAA,OAAeA,SAAS,CAACb,MAAV,KAAqBA,MAArB,IAA+Ba,SAAS,CAACW,KAAV,KAAoBxB,MAAlE;KAAhB,CAAlB;;IACA,IAAIa,SAAJ,EAAe;MACbd,OAAO,CAACU,IAAD,EAAOI,SAAP,CAAP;;GAHJ;AAMD;;AAED,SAASY,aAAT;EACE,oBAAOrI;IAAK,SAAS,EAAE;2BAAvB;AACD;;AAED,SAASsI,gBAAT;EACE,oBAAOtI;IAAK,SAAS,EAAC;qBAAtB;AACD;;AAED,IAAM4H,KAAK,GAAG,CAACW,qBAAD,EAAaC,qBAAb,EAAyBC,oBAAzB,EAAoCC,wBAApC,CAAd;SAEgBC,MAAiC7H;MAE7CrB,WAyBEqB,MAzBFrB;yBAyBEqB,MAxBFf;MAAAA,0CAAY;MACZ+H,UAuBEhH,MAvBFgH;MACAT,OAsBEvG,MAtBFuG;wBAsBEvG,MArBFJ;MAAAA,wCAAWkI;uBAqBT9H,MApBF6F;MAAAA,sCAAUiC;0BAoBR9H,MAnBFoG;MAAAA,4CAAa;yBAmBXpG,MAlBF2C;MAAAA,0CAAY,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,GAAb;MACHoF,oBAiBP/H,MAjBFgI;MACUC,qBAgBRjI,MAhBFiF;MACUiD,qBAeRlI,MAfFoD;MACW+E,sBAcTnI,MAdFkD;MACQkF,mBAaNpI,MAbFqI;MACAC,YAYEtI,MAZFsI;MACAC,iBAWEvI,MAXFuI;MACAC,oBAUExI,MAVFwI;yBAUExI,MATFyI;MAAAA,0CAAY9E;4BASV3D,MARF0I;MAAAA,gDAAe1D;yBAQbhF,MAPF2I;MAAAA,0CAAYnB;sBAOVxH,MANF4I;MAAAA,oCAASrB;0BAMPvH,MALF0C;MAAAA,8CAAamG;0BAKX7I,MAJF8I;MAAAA,4CAAa9E;MACb6C,iBAGE7G,MAHF6G;oBAGE7G,MAFFsD;MAAAA,gCAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;MACJ+C,oCACDtG;;EAEJ,IAAM+I,QAAQ,GAAG3B,oBAAoB,CAAChB,UAAD,EAAaP,OAAb,CAArC;;EAEA,IAAMmD,aAAa,GAAG9J,yBAAK,CAAC6F,OAAN,CACpB;IAAA,OAAO;;MAELkE,MAAM,EAAEP,YAFH;MAGLD,SAAS,EAATA;KAHF;GADoB,EAMpB,CAACC,YAAD,EAAeD,SAAf,CANoB,CAAtB;;wBASgCvJ,yBAAK,CAACyF,QAAN,CAAesD,kBAAf;MAAzBhD;MAAUC;;EAEjB,IAAMgE,aAAa,GAAGC,mBAAQ,MAAR,uBAEfnJ,KAFe;IAGlBgH,OAAO,EAAPA,OAHkB;IAIlBT,IAAI,EAAJA,IAJkB;IAKlBD,GAAG,EAAHA,GALkB;IAMlB0C,aAAa,EAAbA,aANkB;IAOlBI,YAAY,eACNpJ,KAAK,CAACoJ,YAAN,IAAsB,EADhB;MAEVpB,OAAO,EAAED,iBAAiB,IAAI,EAFpB;MAGV7E,SAAS,EAAEiF,mBAAmB,IAAI,CAHxB;MAIV/E,QAAQ,EAAE8E,kBAAkB,IAAI,EAJtB;MAKVG,MAAM,EAAED,gBAAgB,IAAI;MAZZ;IAclBiB,gBAAgB,EAAErJ,KAAK,CAACqJ,gBAAN,KAA2BtF,SAA3B,GAAuC,IAAvC,GAA8C/D,KAAK,CAACqJ,gBAdpD;IAelBC,YAAY,EAAEtJ,KAAK,CAACsJ,YAAN,KAAuBvF,SAAvB,GAAmC,IAAnC,GAA0C/D,KAAK,CAACqJ,gBAf5C;IAgBlBE,aAAa,EAAEvJ,KAAK,CAACuJ,aAAN,KAAwBxF,SAAxB,GAAoC,IAApC,GAA2C/D,KAAK,CAACuJ,aAhB9C;IAiBlBhB,cAAc,EAAdA,cAjBkB;IAkBlBtD,QAAQ,EAARA,QAlBkB;IAmBlBC,WAAW,EAAXA;aAEC4B,KArBiB,GAsBpBF,aAAa,CAAC;IAAER,UAAU,EAAVA,UAAF;IAAcS,cAAc,EAAdA,cAAd;IAA8BhB,OAAO,EAAEkD,QAAvC;IAAiDzC,GAAG,EAAHA,GAAjD;IAAsDhD,IAAI,EAAJA;GAAvD,CAtBO,GAAtB;MA0BED,cAEE6F,cAFF7F;6BAEE6F,cADFM;MAAStG,iCAAAA;MAAWE,gCAAAA;MAAUiF,8BAAAA;MAAQL,+BAAAA;EAGxC9I,yBAAK,CAACiB,SAAN,CAAgB;IACdP,QAAQ,CAAC;MACPsD,SAAS,EAATA,SADO;MAEPE,QAAQ,EAARA,QAFO;MAGPiF,MAAM,EAANA,MAHO;MAIPL,OAAO,EAAPA,OAJO;MAKP/C,QAAQ,EAARA;KALM,CAAR;GADF,EAQG,CAACrF,QAAD,EAAWsD,SAAX,EAAsBE,QAAtB,EAAgCiF,MAAhC,EAAwCL,OAAxC,EAAiD/C,QAAjD,CARH;;EAWA,oBACE/F;IAAK,SAAS,EAAEC,UAAU,CAAC,8BAAD,EAAiCF,SAAjC;kBACxBC;IACE,SAAS,EAAE;KACPgK,aAAa,CAACO,aAAd,EAFN,gBAKEvK,uDACGgK,aAAa,CAACQ,YAAd,CAA2BjJ,GAA3B,CAA+B,UAACkJ,WAAD,EAAclN,CAAd;IAAA,oBAC9ByC,2DAAQyK,WAAW,CAACC,mBAAZ,EAAR;MAA2C,GAAG,iCAA+BnN;QAC1EkN,WAAW,CAACE,OAAZ,CAAoBpJ,GAApB,CAAwB,UAACmD,MAAD;MAAA,oBACvB1E,2DAEM0E,MAAM,CAACkG,cAAP,EAFN;QAGE,GAAG,oCAAkClG,MAAM,CAACuB;uBAE5CjG,wCAAC,UAAD;QAAY,MAAM,EAAE0E;QALtB,CADuB;KAAxB,CADH,CAD8B;GAA/B,CADH,CALF,EAoBG,CAAC0E,SAAD,gBACCpJ,iDAAWgK,aAAa,CAACa,iBAAd,EAAX,EACGb,aAAa,CAACzF,IAAd,CAAmBhD,GAAnB,CAAuB,UAAC4F,GAAD;IACtB6C,aAAa,CAACc,UAAd,CAAyB3D,GAAzB;IACA,oBACEnH;MAAI,OAAO,EAAE;QAAA,OAAM6J,QAAQ,CAAC1C,GAAG,CAACG,QAAL,EAAe,KAAf,CAAd;;OAAyCH,GAAG,CAAC4D,WAAJ,EAAtD;MAAyE,GAAG,0BAAwB5D,GAAG,CAAClB;QACrGkB,GAAG,CAAC6D,KAAJ,CAAUzJ,GAAV,CAAc,UAAC0J,IAAD,EAAO1N,CAAP;yBACe0N,IAAI,CAACvG;UAAzBwG,sBAAAA;UAAQC,uBAAAA;;MAChB,IAAID,MAAJ,EAAY;QACV,OAAO,IAAP;;;MAEF,oBACElL;QAAI,OAAO,EAAEmL;SAAaF,IAAI,CAACG,YAAL,EAA1B;QAA+C,GAAG,iCAA8BH,IAAI,CAAC5L,KAAL,IAAc,OAA5C,UAAuD9B;UACtG0N,IAAI,CAACjG,MAAL,CAAY,MAAZ,CADH,CADF;KALD,CADH,CADF;GAFD,CADH,CADD,GAqBG,IAzCN,CADF,EA4CGoE,SAAS,gBAAGpJ,wCAAC,MAAD,OAAH,GAAgB,IA5C5B,EA6CG,CAACqH,IAAI,CAAC5J,MAAN,gBAAeuC,wCAAC,SAAD,OAAf,GAA+B,IA7ClC,EA8CG,CAACoJ,SAAD,IAAc/B,IAAI,CAAC5J,MAAnB,IAA6B,CAAC6L,iBAA9B,gBACCtJ;IAAK,SAAS,EAAE;kBACdA,wCAACwD,YAAD,eACMwG,aADN;IAEE,SAAS,EAAE,SAFb;IAGE,SAAS,EAAEhG,SAHb;IAIE,QAAQ,EAAEE,QAJZ;IAKE,SAAS,EAAET,SALb;IAME,WAAW,EAAEU,WANf;IAOE,IAAI,EAAEC;KARV,CADD,GAYG,IA1DN,EA2DG3E,QA3DH,CADF;AA+DD;;SCxOe4L;iCACdhC;MAAAA,kDAAiB;mCACjBC;MAAAA,uDAAoB;mCACpBgC;MAAAA,sDAAmB;8BACnBC;MAAAA,4CAAc3C;MACX9H;;oBAEiCA,MAA5BsD;MAAAA,gCAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;;kBACoBoB,cAAQ,CAAC,EAAD;MAApC+F;MAAeC;;EAEtB,IAAM3D,OAAO,GAAG,CACd;IACEE,MAAM,EAAE5D,IAAI,CAAC,SAAD,CADd;IAEEsH,QAAQ,EAAE,OAFZ;IAGEzF,EAAE,EAAE;GAJQ,CAAhB;EAQA,oBACEjG,wCAAC,KAAD,eAAWc,KAAX;IAAkB,cAAc,EAAEuI,cAAlC;IAAkD,iBAAiB,EAAEC,iBAArE;IAAwF,OAAO,EAAExB;mBAC/F9H;IAAK,SAAS,EAAE;kBACdA,wCAAC,MAAD;IACE,IAAI,EAAE,SADR;IAEE,KAAK,EAAEwL,aAFT;IAGE,OAAO,EAAE,CAAC;MAAE1L,KAAK,EAAEsE,IAAI,CAAC,kBAAD,CAAb;MAAmC/E,KAAK,EAAE;KAA3C,EAAiDsM,MAAjD,CAAwDL,gBAAxD,CAHX;IAIE,QAAQ,EAAE,kBAAC7M,IAAD,EAAemI,MAAf;MAAA,OAAkC6E,SAAS,CAAC7E,MAAD,CAA3C;;IALd,eAOE5G;IAAK,SAAS,EAAE;kBACdA;IACE,eAAa,QADf;IAEE,QAAQ,EAAEwL,aAAa,KAAK,EAF9B;IAGE,SAAS,EAAE,iBAHb;IAIE,OAAO,EAAE;MAAA,OAAMA,aAAa,IAAID,WAAW,CAACC,aAAD,CAAlC;KAJX;IAKE,IAAI,EAAE;kBAENxL;IAAG,SAAS,EAAEC,UAAU,CAAC1B,SAAS,CAACsG,SAAD,EAAY,MAAZ,CAAV,EAA+B,MAA/B;IAP1B,OAOsET,IAAI,CAAC,YAAD,CAP1E,CADF,CAPF,CADF,CADF;AAuBD;;ACrDD,SAASwH,WAAT,CAAqBC,KAArB;EACE,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;;;EAGF,IAAIhO,KAAK,CAACC,OAAN,CAAc+N,KAAd,CAAJ,EAA0B;IACxB,OAAOA,KAAK,CAACtK,GAAN,CAAUqK,WAAV,CAAP;;;EAGF,IAAIE,MAAM,CAACC,SAAP,CAAiB3O,cAAjB,CAAgCc,IAAhC,CAAqC2N,KAArC,EAA4C,QAA5C,CAAJ,EAA2D;IACzD,OAAOC,MAAM,CAACE,IAAP,CAAYH,KAAK,CAACI,MAAlB,EAA0B1K,GAA1B,CAA8B,UAACtD,GAAD,EAAMiO,KAAN;MACnC,IAAMC,IAAI,GAAGN,KAAK,CAACI,MAAN,CAAahO,GAAb,CAAb;MACA,oBACE+B;QAAK,GAAG,EAAEkM;sBACRlM,wDACGmM,IAAI,CAAC1N,IADR,QACgB0N,IAAI,CAACC,IADrB,MADF,EAGY,GAHZ,QAIKD,IAAI,CAACE,OAJV,CADF;KAFK,CAAP;;;;EAcF,IAAIP,MAAM,CAACC,SAAP,CAAiB3O,cAAjB,CAAgCc,IAAhC,CAAqC2N,KAArC,EAA4C,SAA5C,CAAJ,EAA4D;IAC1D,OAAOA,KAAK,CAACQ,OAAb;;;;EAIF,IAAIP,MAAM,CAACC,SAAP,CAAiB3O,cAAjB,CAAgCc,IAAhC,CAAqC2N,KAArC,EAA4C,MAA5C,KAAuDA,KAAK,CAACpN,IAAN,KAAe,iBAA1E,EAA6F;IAC3F,OAAOoN,KAAK,CAACS,OAAN,CAAc/K,GAAd,CAAkB,UAAC4K,IAAD,EAAYD,KAAZ;MACvB,oBAAOlM;QAAK,GAAG,EAAEkM;SAAQC,IAAI,CAACE,OAAvB,CAAP;KADK,CAAP;;;;EAMF,IAAIP,MAAM,CAACC,SAAP,CAAiB3O,cAAjB,CAAgCc,IAAhC,CAAqC2N,KAArC,EAA4C,KAA5C,KAAsDC,MAAM,CAACC,SAAP,CAAiB3O,cAAjB,CAAgCc,IAAhC,CAAqC2N,KAArC,EAA4C,SAA5C,CAA1D,EAAkH;IAChH,OAAO,oFAAP;;;EAGF,OAAO,kDAAP;AACD;;SAOeU;MAAQV,aAAAA;uBAAOvM;MAAAA,8BAAO;;EACpC,IAAI,CAACuM,KAAD,IAAWhO,KAAK,CAACC,OAAN,CAAc+N,KAAd,KAAwB,CAACA,KAAK,CAACpO,MAA9C,EAAuD;IACrD,OAAO,IAAP;;;EAGF,oBACEuC;IAAK,SAAS,mBAAiBV,IAA/B;IAAuC,IAAI,EAAC;KACzCsM,WAAW,CAACC,KAAD,CADd,CADF;AAKD;;SCnDeW;MAAO/M,gBAAAA;MAAUK,aAAAA;MAAOC,iBAAAA;EACtC,oBACEC;IAAK,SAAS,EAAEC,UAAU,CAAC,MAAD,EAASF,SAAT;kBACxBC;IAAK,SAAS,EAAE;kBACdA;IAAI,SAAS,EAAE;KAAeF,KAA9B,CADF,CADF,eAIEE;IAAK,SAAS,EAAE,WAAhB;IAA6B,IAAI,EAAE;KAChCP,QADH,CAJF,CADF;AAUD;;;;;;;;;;;;;;;;ACyCD,SAASgN,QAAT,CAAkB1N,KAAlB,EAAiC2N,QAAjC,EAAgDC,MAAhD;EACE1L,eAAS,CAAC;IACR,IAAIyL,QAAJ,EAAc;MACZC,MAAM,CAACC,GAAP,CAAW7N,KAAX,EAAkB2N,QAAlB;;GAFK,EAIN,CAACA,QAAD,EAAW3N,KAAX,EAAkB4N,MAAlB,CAJM,CAAT;AAKD;;AAED,SAASE,SAAT,CAAmBC,KAAnB;EACE,IAAMH,MAAM,GAAG3L,YAAM,CAAmB,IAAI+L,GAAJ,EAAnB,CAArB;;EAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACjO,KAAD;IACf,OAAO+N,KAAK,CAAC1P,cAAN,CAAqB2B,KAArB,KAA+B,OAAO+N,KAAK,CAAC/N,KAAD,CAAZ,KAAwB,UAA9D;GADF;;EAIA,IAAMkO,IAAI,GAAG,SAAPA,IAAO,CAAClO,KAAD;IACX,IAAIiO,QAAQ,CAACjO,KAAD,CAAZ,EAAqB;MACnB,IAAMoG,EAAE,GAAGwH,MAAM,CAAC/N,OAAP,CAAesO,GAAf,CAAmBnO,KAAnB,IAA4B4N,MAAM,CAAC/N,OAAP,CAAeuO,GAAf,CAAmBpO,KAAnB,CAA5B,GAAwD+N,KAAK,CAAC/N,KAAD,CAAxE;MACA,OAAOoG,EAAE,MAAF,qCAAP;;GAHJ;;EAOAsH,QAAQ,CAAC,QAAD,EAAWK,KAAK,CAAC,QAAD,CAAhB,EAA4BH,MAAM,CAAC/N,OAAnC,CAAR;EACA6N,QAAQ,CAAC,YAAD,EAAeK,KAAK,CAAC,YAAD,CAApB,EAAoCH,MAAM,CAAC/N,OAA3C,CAAR;EACA6N,QAAQ,CAAC,YAAD,EAAeK,KAAK,CAAC,YAAD,CAApB,EAAoCH,MAAM,CAAC/N,OAA3C,CAAR;EACA6N,QAAQ,CAAC,UAAD,EAAaK,KAAK,CAAC,UAAD,CAAlB,EAAgCH,MAAM,CAAC/N,OAAvC,CAAR;EACA6N,QAAQ,CAAC,UAAD,EAAaK,KAAK,CAAC,UAAD,CAAlB,EAAgCH,MAAM,CAAC/N,OAAvC,CAAR;EACA6N,QAAQ,CAAC,eAAD,EAAkBK,KAAK,CAAC,eAAD,CAAvB,EAA0CH,MAAM,CAAC/N,OAAjD,CAAR;EACA6N,QAAQ,CAAC,mBAAD,EAAsBK,KAAK,CAAC,mBAAD,CAA3B,EAAkDH,MAAM,CAAC/N,OAAzD,CAAR;EACA6N,QAAQ,CAAC,UAAD,EAAaK,KAAK,CAAC,UAAD,CAAlB,EAAgCH,MAAM,CAAC/N,OAAvC,CAAR;EACA6N,QAAQ,CAAC,eAAD,EAAkBK,KAAK,CAAC,eAAD,CAAvB,EAA0CH,MAAM,CAAC/N,OAAjD,CAAR;EACA6N,QAAQ,CAAC,cAAD,EAAiBK,KAAK,CAAC,cAAD,CAAtB,EAAwCH,MAAM,CAAC/N,OAA/C,CAAR;EACA6N,QAAQ,CAAC,YAAD,EAAeK,KAAK,CAAC,YAAD,CAApB,EAAoCH,MAAM,CAAC/N,OAA3C,CAAR;EACA6N,QAAQ,CAAC,SAAD,EAAYK,KAAK,CAAC,SAAD,CAAjB,EAA8BH,MAAM,CAAC/N,OAArC,CAAR;EACA6N,QAAQ,CAAC,UAAD,EAAaK,KAAK,CAAC,UAAD,CAAlB,EAAgCH,MAAM,CAAC/N,OAAvC,CAAR;EACA6N,QAAQ,CAAC,UAAD,EAAaK,KAAK,CAAC,UAAD,CAAlB,EAAgCH,MAAM,CAAC/N,OAAvC,CAAR;EACA6N,QAAQ,CAAC,SAAD,EAAYK,KAAK,CAAC,SAAD,CAAjB,EAA8BH,MAAM,CAAC/N,OAArC,CAAR;EACA6N,QAAQ,CAAC,SAAD,EAAYK,KAAK,CAAC,SAAD,CAAjB,EAA8BH,MAAM,CAAC/N,OAArC,CAAR;EACA6N,QAAQ,CAAC,QAAD,EAAWK,KAAK,CAAC,QAAD,CAAhB,EAA4BH,MAAM,CAAC/N,OAAnC,CAAR;EACA6N,QAAQ,CAAC,eAAD,EAAkBK,KAAK,CAAC,eAAD,CAAvB,EAA0CH,MAAM,CAAC/N,OAAjD,CAAR;EAEA,OAAO;IAAE+N,MAAM,EAANA,MAAF;IAAUM,IAAI,EAAJA,IAAV;IAAgBD,QAAQ,EAARA;GAAvB;AACD;;SAEeI,QAAoBtM;MAOnBuM,4BAAAA,iBAAiBC,YAAwBZ;;;YAClDM,QAAQ,CAAC,eAAD;0CACN;YAAA,uBACIC,IAAI,CAAC,eAAD,EAAkBK,UAAlB,EAA8BpM,QAAQ,CAACtC,OAAvC,CADR;uBAEK2O,KAAK;YACZb,QAAQ,CAAC,CAAAa,GAAG,QAAH,YAAAA,GAAG,CAAEtB,MAAL,KAAesB,GAAhB,CAAR;;;;;UAGFb,QAAQ,CAAC,IAAD,CAAR;;;;;;;;;;MAdIc,MAAuD1M,MAAvD0M;MAAKC,OAAkD3M,MAAlD2M;uBAAkD3M,MAA5C4M;MAAAA,sCAAU;MAAIJ,aAA8BxM,MAA9BwM;MAAYK,MAAkB7M,MAAlB6M;MAAQb,sCAAUhM;;EAC/D,IAAM8M,OAAO,GAAG5M,YAAM,EAAtB;EACA,IAAM6M,QAAQ,GAAG7M,YAAM,EAAvB;EACA,IAAME,QAAQ,GAAGF,YAAM,EAAvB;;mBAC2B6L,SAAS,CAACC,KAAD;MAA5BG,kBAAAA;MAAMD,sBAAAA;;EAcd,IAAMc,aAAa,GAAG,SAAhBA,aAAgB,CAACC,SAAD,EAAiBL,OAAjB;IACpBA,OAAO,GAAG5B,MAAM,CAACkC,MAAP,CAAc,EAAd,EAAkBN,OAAlB,CAAV;IACAK,SAAS,GAAG,OAAOA,SAAP,KAAqB,QAArB,GAAgCA,SAAhC,GAA4CE,6BAAS,CAACF,SAAD,CAAjE;;IAEA,IAAI,CAAC7M,QAAQ,CAACtC,OAAd,EAAuB;MAAA;;MACrBiP,QAAQ,CAACjP,OAAT,GAAmB,KAAnB;MACA8O,OAAO,CAAC9F,KAAR,gBACM8F,OAAO,CAAC9F,KAAR,IAAiB,EADvB;QAEEyF,gBAAgB,EAAE,aAAAK,OAAO,SAAP,uCAAS9F,KAAT,oCAAgByF,gBAAhB,KAAoCA;;MAGxDnM,QAAQ,CAACtC,OAAT,GAAmB,IAAIsP,aAAJ,CAASN,OAAO,CAAChP,OAAjB,EAA0BmP,SAA1B,EAAqCL,OAArC,CAAnB;MAEAxM,QAAQ,CAACtC,OAAT,CAAiBuP,KAAjB,CAAuB,UAACpP,KAAD;YAAmBqP;;QACxC,IAAI,CAAClN,QAAQ,CAACtC,OAAd,EAAuB;UACrB;;;QAGF,IAAIG,KAAK,CAACsP,UAAN,CAAiB,SAAjB,CAAJ,EAAiC;UAC/B,IAAMC,SAAS,UAAQvP,KAAK,CAACwP,MAAN,CAAa,CAAb,EAAgBC,WAAhB,EAAR,GAAwCzP,KAAK,CAAC0P,KAAN,CAAY,CAAZ,CAAvD;;UAEA,IAAIH,SAAS,KAAK,UAAd,IAA4B,CAACF,IAAI,CAAC,CAAD,CAAJ,CAAQM,OAAzC,EAAkD;YAChD;;;UAGFzB,IAAI,MAAJ,UAAKqB,SAAL,SAAmBF,IAAnB,GAAyBlN,QAAQ,CAACtC,OAAlC;;OAZJ;MAgBAsC,QAAQ,CAACtC,OAAT,CAAiB+P,KAAjB,CAAuBC,IAAvB,CAA4B,UAACC,MAAD;QAC1BvB,UAAU,KAAKuB,MAAM,CAACvB,UAAP,GAAoBW,6BAAS,CAACX,UAAD,CAAlC,CAAV;;QAEA,IAAIxM,KAAK,CAACgO,WAAV,EAAuB;UACrBhO,KAAK,CAACgO,WAAN,CAAkBD,MAAlB;;;QAGFhB,QAAQ,CAACjP,OAAT,GAAmB,IAAnB;OAPF;;;IAWF,OAAOsC,QAAQ,CAACtC,OAAhB;GAxCF;;EA2CAqC,eAAS,CAAC;IACR,IAAIC,QAAQ,CAACtC,OAAb,EAAsB;MACpBsC,QAAQ,CAACtC,OAAT,CAAiB+P,KAAjB,CAAuBC,IAAvB,CAA4B,UAACC,MAAD;QAC1B,IAAIE,2BAAO,CAACF,MAAM,CAACvB,UAAP,CAAkBjG,IAAnB,EAAyBiG,UAAzB,oBAAyBA,UAAU,CAAEjG,IAArC,CAAX,EAAuD;UACrD;;;QAGFiG,UAAU,KAAKuB,MAAM,CAACvB,UAAP,GAAoBW,6BAAS,CAACX,UAAD,CAAlC,CAAV;OALF;;GAFK,EAUN,CAACA,UAAD,CAVM,CAAT;EAYArM,eAAS,CAAC;IACR,IAAIwM,IAAI,IAAIvM,QAAQ,CAACtC,OAArB,EAA8B;MAC5BsC,QAAQ,CAACtC,OAAT,CAAiB+P,KAAjB,CAAuBC,IAAvB,CAA4B,UAACC,MAAD;QAC1BA,MAAM,CAACpB,IAAP,GAAcA,IAAd;;QACA,IAAIE,GAAJ,EAAS;UACPkB,MAAM,CAAClB,GAAP,GAAaA,GAAb;;OAHJ;;GAFK,EASN,CAACF,IAAD,EAAOE,GAAP,CATM,CAAT;EAWA1M,eAAS,CAAC;IACR,IAAIuM,GAAJ,EAAS;MACP,IAAItM,QAAQ,CAACtC,OAAb,EAAsB;QACpBiP,QAAQ,CAACjP,OAAT,GAAmB,KAAnB;QACCsC,QAAQ,CAACtC,OAAT,CAAyB0C,OAAzB,CAAiC,IAAjC;;;MAGHwM,aAAa,CAACN,GAAD,EAAME,OAAN,CAAb;;GAPK,EASN,CAACF,GAAD,CATM,CAAT;EAWAvM,eAAS,CAAC;IACR,IAAIwM,IAAJ,EAAU;MACRK,aAAa,CAACL,IAAD,EAAOC,OAAP,CAAb;;;IAGF,OAAO;MACLG,QAAQ,CAACjP,OAAT,GAAmB,KAAnB;MACAsC,QAAQ,CAACtC,OAAT,IAAqBsC,QAAQ,CAACtC,OAAT,CAAyB0C,OAAzB,CAAiC,IAAjC,CAArB;KAFF;GALO,EASN,EATM,CAAT;EAWA,OAAO;IACLsM,OAAO,EAAPA;GADF;AAGD;;AChNDoB,mBAAU,CAACC,aAAX,CAAyBC,iCAAzB;SAUgBhB,KAAiBpN;iBACXsM,OAAO,CAACtM,KAAD;MAAnB8M,mBAAAA;;EAER,oBAAO5N;IAAK,oCAA+Bc,KAAK,CAACrC,IAAN,IAAc,EAA7C,CAAL;IAAwD,GAAG,EAAEmP,OAA7D;IAAsE,SAAS,EAAE9M,KAAK,CAACf;IAA9F;AACD;AAEDmO,IAAI,CAAChO,SAAL,GAAiB;EACfzB,IAAI,EAAE0B,6BAAS,CAACC,MADD;EAEfL,SAAS,EAAEI,6BAAS,CAACC,MAFN;;;;;EAMfoN,GAAG,EAAErN,6BAAS,CAACC,MANA;;;;;EAUfuN,GAAG,EAAExN,6BAAS,CAACC,MAVA;;;;;EAcfqN,IAAI,EAAEtN,6BAAS,CAACgP,MAdD;;;;;EAkBf7B,UAAU,EAAEnN,6BAAS,CAACgP,MAlBP;;;;;EAsBfzB,OAAO,EAAEvN,6BAAS,CAACiP,KAAV,CAAgB;IACvBC,QAAQ,EAAElP,6BAAS,CAACI,IADG;IAEvB+O,QAAQ,EAAEnP,6BAAS,CAACI,IAFG;IAGvB6D,IAAI,EAAEjE,6BAAS,CAACG,GAHO;IAIvBiP,QAAQ,EAAEpP,6BAAS,CAACC,MAJG;IAKvBoP,SAAS,EAAErP,6BAAS,CAACI,IALE;IAMvBqH,KAAK,EAAEzH,6BAAS,CAACG;GANV,CAtBM;EA8BfmP,UAAU,EAAEtP,6BAAS,CAACsB,IA9BP;EA+BfiO,UAAU,EAAEvP,6BAAS,CAACsB,IA/BP;EAgCfkO,QAAQ,EAAExP,6BAAS,CAACsB,IAhCL;EAiCff,QAAQ,EAAEP,6BAAS,CAACsB,IAjCL;EAkCfmO,aAAa,EAAEzP,6BAAS,CAACsB,IAlCV;EAmCfoO,iBAAiB,EAAE1P,6BAAS,CAACsB,IAnCd;EAoCfqO,QAAQ,EAAE3P,6BAAS,CAACsB,IApCL;EAqCfsO,aAAa,EAAE5P,6BAAS,CAACsB,IArCV;EAsCfuO,YAAY,EAAE7P,6BAAS,CAACsB,IAtCT;EAuCfwO,UAAU,EAAE9P,6BAAS,CAACsB,IAvCP;EAwCfyO,OAAO,EAAE/P,6BAAS,CAACsB,IAxCJ;EAyCf0O,QAAQ,EAAEhQ,6BAAS,CAACsB,IAzCL;EA0Cf2O,QAAQ,EAAEjQ,6BAAS,CAACsB,IA1CL;EA2Cf4O,OAAO,EAAElQ,6BAAS,CAACsB,IA3CJ;EA4Cf6O,OAAO,EAAEnQ,6BAAS,CAACsB,IA5CJ;EA6Cf8O,MAAM,EAAEpQ,6BAAS,CAACsB,IA7CH;EA8Cf+O,aAAa,EAAErQ,6BAAS,CAACsB,IA9CV;EA+CfqN,WAAW,EAAE3O,6BAAS,CAACsB,IA/CR;EAgDfgP,UAAU,EAAEtQ,6BAAS,CAACG;AAhDP,CAAjB;;SCnBgBoQ;MAAmB5Q,aAAAA;MAAO7B,WAAAA;MAAK4B,mBAAAA;MAAac,eAAAA;MAAS0G,YAAAA;EACnE,OAAO;IACLvH,KAAK,EAALA,KADK;IAEL7B,GAAG,EAAHA,GAFK;IAGL4B,WAAW,EAAXA,WAHK;IAILP,IAAI,EAAE,QAJD;IAKLqR,aAAa,EAAE,KALV;IAMLC,MAAM,EAAE,WANH;IAOLhQ,WAAW,EAAE,iBAPR;IAQLiQ,OAAO,EAAE,EARJ;IASL5R,QAAQ,EAAE,IATL;IAUL6R,OAAO,EAAE,QAVJ;IAWLC,YAAY,EAAE,EAXT;IAYL1J,IAAI,EAAE;MACJ2J,MAAM,EAAErQ;KAbL;IAeL4O,QAAQ,EAAE,+BAfL;IAgBL0B,aAAa,EAAE,IAhBV;IAiBLC,eAAe,EAAE,CAjBZ;IAkBLC,QAAQ,EAAE;MACRzR,QAAQ,EAAE,KADF;MAER0R,MAAM,EAAE,EAFA;MAGRC,aAAa,EAAE;KArBZ;IAuBLL,MAAM,EAAE3J;GAvBV;AAyBD;;AAED,SAASiK,aAAT,CAAuBzR,WAAvB,EAA4C0R,EAA5C;MAA4CA;IAAAA,KAAK;;;EAC/C,OAAO,2BAA2B1R,WAA3B,GAAyC,UAAzC,IAAuD0R,EAAE,GAAG,+CAAH,GAAqD,EAA9G,CAAP;AACD;;SAEeC;MAA8B7Q,gBAAAA;EAC5C,OAAO;IACLd,WAAW,EAAE,oHADR;IAEL4R,UAAU,EAAE,CACVf,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,4KADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CADN,EASV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,iOADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CATN,EAiBV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,UADU;MAEf6B,KAAK,EAAE,qDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,uKADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAjBN,EAyBV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,UADU;MAEf6B,KAAK,EAAE,qDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,gMADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAzBN,EAiCV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,6KADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAjCN,EAyCV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,4RADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAzCN,EAiDV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,8KADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAjDN,EAyDV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,4MADwB,EAExB,KAFwB,CAHX;MAOf3Q,OAAO,EAAPA;KAPc,CAzDN;GAFd;AAsED;SAEe+Q;MAA0B/Q,gBAAAA;EACxC,OAAO;IACLd,WAAW,EAAE,oHADR;IAEL4R,UAAU,EAAE,CACVf,gBAAgB,CAAC;MACfzS,GAAG,EAAE,UADU;MAEf6B,KAAK,EAAE,2EAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,uJADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CADN,EASV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,UADU;MAEf6B,KAAK,EAAE,+BAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,qJADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CATN,EAiBV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,6EAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,6JADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAjBN,EAyBV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,gKADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAzBN,EAiCV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,6EAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,6JADwB,CAHX;MAMf3Q,OAAO,EAAPA;KANc,CAjCN,EAyCV+P,gBAAgB,CAAC;MACfzS,GAAG,EAAE,YADU;MAEf6B,KAAK,EAAE,uDAFQ;MAGfD,WAAW,EAAEyR,aAAa,CACxB,yJADwB,EAExB,KAFwB,CAHX;MAOf3Q,OAAO,EAAPA;KAPc,CAzCN;GAFd;AAsDD;;ACrID,SAASgR,cAAT,CAAwBC,KAAxB;EACE,OAAO9F,MAAM,CAACkF,MAAP,CAAcY,KAAd,EAAqBrQ,GAArB,CAAyB,UAACsQ,IAAD;IAC9B,OAAO;MACL/R,KAAK,EAAE+R,IAAI,CAAC/K,KAAL,IAAc,EADhB;MAELzH,KAAK,EAAEwS,IAAI,CAACC,GAAL,IAAY;KAFrB;GADK,CAAP;AAMD;;AAED,SAASC,YAAT,CAAsB/F,IAAtB,EAAgEgG,MAAhE;MAAgEA;IAAAA,SAAmB;;;EACjF,IAAMC,IAAI,GAAGnG,MAAM,CAACkF,MAAP,CAAcgB,MAAd,EAAsBE,MAAtB,CAA6B,UAACC,CAAD,EAASN,IAAT;IACxCM,CAAC,CAACN,IAAI,CAACvS,IAAN,CAAD,GAAeuS,IAAI,CAACD,KAApB;IACA,OAAOO,CAAP;GAFW,EAGV,EAHU,CAAb;EAKA,OAAQ,CAACnG,IAAI,IAAI,EAAT,EAAajF,MAAb,CAAoBC,OAApB,EAAuCkL,MAAvC,CAA8C,UAAC7K,IAAD,EAAOpJ,GAAP;;;IACpD,oBACKoJ,IADL,6BAEGpJ,GAFH,IAESgU,IAAI,CAAChU,GAAD,CAAJ,IAAa,EAFtB;GADM,EAKL,EALK,CAAR;AAMD;;AAED,SAASmU,YAAT,CAAsB/K,IAAtB;EACE,IAAMgL,WAAW,GAAU,EAA3B;EAEAvG,MAAM,CAACwG,OAAP,CAAejL,IAAf,EAAqBkL,OAArB,CAA6B;QAAEC;QAAYZ;;IACzC,IAAIY,UAAU,KAAK,QAAnB,EAA6B;MAC3B;;;IAEFH,WAAW,CAACzU,IAAZ,CAAiB;MACf0B,IAAI,EAAEkT,UADS;MAEfZ,KAAK,EAALA;KAFF;GAJF;EAUA,OAAOS,WAAP;AACD;;SAEeI,cAAcb;EAC5B,IAAMjR,OAAO,GAAGgR,cAAc,CAACC,KAAD,CAA9B;EACA,IAAMI,MAAM,GAAGN,uBAAuB,CAAC;IAAE/Q,OAAO,EAAPA;GAAH,CAAtC;EACA,IAAM+R,gBAAgB,GAAGlB,2BAA2B,CAAC;IAAE7Q,OAAO,EAAPA;GAAH,CAApD;EAEA,OAAO;IACLqR,MAAM,EAANA,MADK;IAELU,gBAAgB,EAAhBA;GAFF;AAID;SAEeC,wBAAwBlF,MAA2BmF;EACjE,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACpB,UAAD;IAAA,OAA2CA,UAAU,CAAClQ,GAAX,CAAe;MAAA,IAAGtD,GAAH,SAAGA,GAAH;MAAA,OAAaA,GAAb;KAAf,CAA3C;GAAhB;;EAEA,OAAO;IACL+T,MAAM,EAAE;MACN3K,IAAI,EAAE0K,YAAY,CAACc,OAAO,CAACD,UAAU,CAACZ,MAAX,CAAkBP,UAAnB,CAAR,EAAwChE,IAAI,CAACuE,MAA7C;KAFf;IAILU,gBAAgB,EAAE;MAChBrL,IAAI,EAAE0K,YAAY,CAACc,OAAO,CAACD,UAAU,CAACF,gBAAX,CAA4BjB,UAA7B,CAAR,EAAkDhE,IAAI,CAACiF,gBAAvD;;GALtB;AAQD;SAEeI,wBAAwBrF,MAA2BsF;EACjE,oBACK9E,6BAAS,CAACR,IAAD,CADd;IAEEuE,MAAM,EAAEI,YAAY,CAACW,WAAW,CAACf,MAAZ,CAAmB3K,IAApB,CAFtB;IAGEqL,gBAAgB,EAAEN,YAAY,CAACW,WAAW,CAACL,gBAAZ,CAA6BrL,IAA9B;;AAEjC;SAEe2L,aAAa1T,MAAcgO,YAAqCyF;EAC9E,OAAO,CAAChE,2BAAO,CAACzB,UAAU,CAACjG,IAAZ,EAAmB0L,WAAmB,CAACzT,IAAD,CAAnB,CAA0B+H,IAA7C,CAAf;AACD;SAEe4L,kBAAkB3T,MAAcgO,YAAqCyF,aAA+BG;MAAAA;IAAAA,KAAetK;;;EACjI,IAAIoK,YAAY,CAAC1T,IAAD,EAAOgO,UAAP,EAAmByF,WAAnB,CAAhB,EAAiD;IAAA;;IAC/CA,WAAW,gBACNA,WADM,6BAERzT,IAFQ,IAED;MAAE+H,IAAI,EAAEiG,UAAU,CAACjG;KAFlB,aAAX;IAIA6L,EAAE,CAACH,WAAD,CAAF;;;EAGF,OAAOA,WAAP;AACD;;AC3FD,SAASI,aAAT;MAA+BC,sBAAN3F;MAAsBmE,aAAAA;MAAO9B,iBAAAA;MAAUpC,eAAAA;;EAE9D,IAAMD,IAAI,GAAG5H,aAAO,CAAC;IAAA,OAAM4M,aAAa,CAACb,KAAD,CAAnB;GAAD,EAA6B,CAACA,KAAD,CAA7B,CAApB;;kBAEsCnM,cAAQ,CAAC;IAAA,OAAMkN,uBAAuB,CAACS,cAAD,EAAiB3F,IAAjB,CAA7B;GAAD;MAAvCsF;MAAaM;;EAEpB,IAAM3S,QAAQ,GAAG0F,iBAAW,CAC1B,UAAC9G,IAAD,EAAegO,UAAf;IACE2F,iBAAiB,CAAC3T,IAAD,EAAOgO,UAAP,EAAmByF,WAAnB,EAAgCM,cAAhC,CAAjB;GAFwB,EAI1B,CAACN,WAAD,CAJ0B,CAA5B;EAOA9R,eAAS,CAAC;IACR,IAAMqS,KAAK,GAAGX,uBAAuB,CAACS,cAAD,EAAiB3F,IAAjB,CAArC;;IACA,IAAI2F,cAAJ,YAAIA,cAAc,CAAEtB,GAApB,EAAyB;MACvB,IAAIkB,YAAY,CAAC,QAAD,EAAWD,WAAW,CAACf,MAAvB,EAA+BsB,KAA/B,CAAZ,IAAqDN,YAAY,CAAC,kBAAD,EAAqBD,WAAW,CAACL,gBAAjC,EAAmDY,KAAnD,CAArE,EAAgI;QAC9HD,cAAc,CAACC,KAAD,CAAd;;;GAJG,EAON,CAACF,cAAD,oBAACA,cAAc,CAAEtB,GAAjB,CAPM,CAAT;EASA,OAAO;IACLpE,OAAO,EAAPA,OADK;IAELD,IAAI,EAAJA,IAFK;IAGLnO,IAAI,EAAE8T,cAAc,CAAC9T,IAHhB;IAILyT,WAAW,EAAXA,WAJK;IAKLrS,QAAQ,EAARA,QALK;IAMLoP,QAAQ,EAAE;MACRA,SAAQ,IAAIA,SAAQ,CAACgD,uBAAuB,CAACM,cAAD,EAAiBL,WAAjB,CAAxB,CAApB;;GAPJ;AAUD;;AAYD,SAASQ,eAAT;MAA2B9U,aAAAA;MAAMgP,aAAAA;MAAMsF,oBAAAA;MAAarF,gBAAAA;MAAShN,kBAAAA;MAAUoP,iBAAAA;MAAUrQ,iBAAAA;;mBACjDgG,cAAQ,CAAC,IAAD;MAA/B+N;MAASC;;EAEhB,oBACEzT,+FACEA,wCAAC,IAAD;IACE,IAAI,EAAEvB,IADR;IAEE,IAAI,EAAEgP,IAAI,CAAChP,IAAD,CAFZ;IAGE,UAAU,EAAEsU,WAAW,CAACtU,IAAD,CAHzB;IAIE,QAAQ,EAAE;UAAG4I,aAAAA;UAAMmM,gBAAAA;MACjBA,OAAO,IAAI9S,SAAQ,CAACjC,IAAD,EAAO;QAAE4I,IAAI,EAAJA;OAAT,CAAnB;MACAoM,UAAU,CAACD,OAAD,CAAV;KANJ;IAQE,OAAO,EAAE9F;IATb,eAYE1N;IAAQ,QAAQ,EAAE,CAACwT,OAAnB;IAA4B,SAAS,EAAE,sBAAvC;IAA+D,OAAO,EAAE1D;mBAZ1E,EAgBGrQ,QAhBH,eAkBEO;IAAK,SAAS,EAAE;yGAlBlB,CADF;AAwBD;;SAEe0T,WAAW5S;uBACwCqS,aAAa,CAACrS,KAAD;MAAtExB,sBAAAA;MAAMmO,sBAAAA;MAAMsF,6BAAAA;MAAarF,yBAAAA;MAAShN,0BAAAA;MAAUoP,0BAAAA;;EAEpD,oBACE9P,qDACGc,KAAK,CAACrB,QADT,eAEEO;IAAK,SAAS,EAAE;kBACdA,wCAAC,IAAD;IAAM,KAAK,EAAE,0BAAb;IAAyC,SAAS,EAAE;kBAClDA,wCAAC,eAAD;IACE,IAAI,EAAE,kBADR;IAEE,IAAI,EAAEyN,IAFR;IAGE,WAAW,EAAEsF,WAHf;IAIE,QAAQ,EAAErS,QAJZ;IAKE,QAAQ,EAAEoP,QALZ;IAME,OAAO,EAAEpC;KAER5M,KAAK,CAACrB,QART,CADF,CADF,eAaEO;IAAK,SAAS,EAAE;kBACdA,wCAAC,IAAD;IAAM,KAAK,EAAE;kBACXA,6JADF,eAGEA;IAAI,SAAS,EAAE;kBACbA;IAAI,SAAS,EAAE;kBACbA,0EADF,6PADF,eAMEA,iEACEA,0EADF,iFANF,CAHF,CADF,CAbF,CAFF,eAgCEA;IAAK,SAAS,EAAE;kBACdA,wCAAC,IAAD;IAAM,KAAK,cAAYV,IAAZ,uBAAX;IAAiD,SAAS,EAAE;kBAC1DU,wCAAC,eAAD;IAAiB,IAAI,EAAE,QAAvB;IAAiC,IAAI,EAAEyN,IAAvC;IAA6C,WAAW,EAAEsF,WAA1D;IAAuE,QAAQ,EAAErS,QAAjF;IAA2F,QAAQ,EAAEoP,QAArG;IAA+G,OAAO,EAAEpC;KACrH5M,KAAK,CAACrB,QADT,CADF,CADF,eAOEO;IAAK,SAAS,EAAE;kBACdA,wCAAC,IAAD;IAAM,KAAK,EAAE;kBACXA,gKADF,eAGEA,gJAHF,eAKEA,mGACiCA,qEADjC,qLALF,CADF,CAPF,CAhCF,CADF;AAuDD;AAED0T,UAAU,CAACxT,SAAX,GAAuB;EACrBZ,IAAI,EAAEa,6BAAS,CAACC,MAAV,CAAiBC,UADF;EAErBoN,IAAI,EAAEtN,6BAAS,CAACgP,MAFK;EAGrByC,KAAK,EAAEzR,6BAAS,CAACG,GAHI;EAIrBb,QAAQ,EAAEU,6BAAS,CAACG,GAJC;EAKrBoN,OAAO,EAAEvN,6BAAS,CAACG,GALE;EAMrBwP,QAAQ,EAAE3P,6BAAS,CAACsB;AANC,CAAvB;;ACxJA,SAASkS,OAAT,CAAiBjG,OAAjB,EAA+BkG,QAA/B;EACE,oBACKA,QADL,EAEKlG,OAFL;AAID;;AAED,SAASmG,eAAT;MAAsCC;;EACpCC,+BAAW,CAACC,aAAZ,CAA0BF,YAAY,CAACrC,UAAvC,EAAmD,UAACtO,SAAD;IACjD,IAAM8Q,eAAe,GAAG,EAAxB;;IAEA,IAAI9Q,SAAS,CAAC7D,IAAV,KAAmB,gBAAvB,EAAyC;MACvC6D,SAAS,CAAC7D,IAAV,GAAiB,QAAjB;MACA6D,SAAS,CAACrD,KAAV,GAAkBqD,SAAS,CAAC2D,KAA5B;MACA3D,SAAS,CAAC2N,OAAV,GAAoB,KAApB;MACA3N,SAAS,CAACkE,IAAV,GAAiB;QACfsG,GAAG,EAAKxK,SAAS,CAAC+Q,QAAf,sBAAwCD;OAD7C;MAGA9Q,SAAS,CAACgR,aAAV,GAA0B,KAA1B;MACAhR,SAAS,CAACoM,QAAV,GAAqB,+BAArB;MACApM,SAAS,CAACiR,UAAV,GAAuB,IAAvB;;GAZJ;EAgBA,OAAON,YAAP;AACD;;SASeO;MAAaC,mBAAAA;MAAY7U,iBAAAA;MAAUqQ,iBAAAA;MAAUpC,gBAAAA;MAAY5M;;cACzC;IAC5B,IAAMwM,UAAU,GAAGqG,OAAO,CAAC7S,KAAK,CAACwM,UAAN,IAAoB,EAArB,EAAyBgH,UAAU,CAACV,QAApC,CAA1B;IACA,IAAMnG,IAAI,GAAGoG,eAAe,CAACS,UAAU,CAACR,YAAZ,CAA5B;IAEA,OAAO;MAAErG,IAAI,EAAJA,IAAF;MAAQH,UAAU,EAAE;QAAEjG,IAAI,EAAEiG;;KAAnC;GAJ2B;MAArBG,aAAAA;MAAMH,mBAAAA;;EAOd,oBACEtN,qDACGP,QADH,eAGEO,wCAAC,IAAD;IAAM,IAAI,EAAEyN,IAAZ;IAAkB,UAAU,EAAEH,UAA9B;IAA0C,QAAQ,EAAEwC,QAApD;IAA8D,OAAO,EAAEpC;IAHzE,EAKGjO,QALH,CADF;AASD;;;;;;;;;;;;;;;;IC3Bc8U,yBAAAA,cAAcC;+BAAe/C;MAAAA,2CAAa;MAAIgD,gBAAAA;MAAS/G,gBAAAA;MAAShN,iBAAAA;2BAAUiM;MAAAA,mCAAS;;;IAChG,IAAMc,IAAI,GAAG;MACXgH,OAAO,EAAPA,OADW;MAEXhD,UAAU,YAAMA,UAAN;KAFZ;gDAKI;MAAA,uBACoB,IAAIiD,qCAAJ,CAAsBF,EAAtB,EAA0B/G,IAA1B,eAAqCC,OAArC,GAAgDiB,KADpE,iBACIgG,OADJ;QAGF,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAC7V,KAAD;UAClB,OAAO;YACL4N,MAAM,CAAC5N,KAAD,CAAN,IAAiB4N,MAAM,CAAC5N,KAAD,CAAN,OAAA4N,MAAM,2BAAvB;;YAEA,IAAIkI,aAAa,CAACrQ,QAAd,CAAuBzF,KAAvB,CAAJ,EAAmC;cACjC2B,QAAQ,CAACiU,OAAO,CAAClH,IAAR,CAAagE,UAAd,CAAR;;WAJJ;SADF;;QAUAqD,MAAM,CAACvC,OAAP,CAAe,UAACxT,KAAD;UAAA,OAAW4V,OAAO,CAACI,EAAR,CAAWhW,KAAX,EAAkBmG,QAAQ,CAAC0P,WAAW,CAAC7V,KAAD,CAAZ,EAAqB,GAArB,CAA1B,CAAX;SAAf;QAEA,OAAO4V,OAAP;;iBACOK,IAAI;MACXC,OAAO,CAACpJ,KAAR,CAAcmJ,EAAd;;;;;;;AAxCJhG,8BAAU,CAACC,aAAX,CAAyBC,iCAAzB;AAEA,IAAM4F,MAAM,GAAG,CACb,cADa,EAEb,iBAFa,EAGb,iBAHa,EAIb,eAJa,EAKb,iBALa,EAMb,eANa,EAOb,eAPa,EAQb,UARa,EASb,eATa,EAUb,gBAVa,CAAf;AAaA,IAAMD,aAAa,GAAG,CAAC,cAAD,EAAiB,eAAjB,EAAkC,iBAAlC,EAAqD,iBAArD,CAAtB;IA+CaK,WAAb;EAAA;;EA4BE,qBAAYpU,KAAZ;;;IACE,oCAAMA,KAAN;UAJMqU;UACAC;IAKN,MAAK9K,KAAL,GAAa;MACXmK,OAAO,EAAE3T,KAAK,CAAC2T,OADJ;MAEXhD,UAAU,EAAExD,6BAAS,CAACnN,KAAK,CAAC2Q,UAAP;KAFvB;IAIA,MAAK0D,KAAL,GAAa,IAAb;IACA,MAAKC,UAAL,GAAkB,IAAlB;;;;EApCJ;;EAAA,OAuCQC,iBAvCR;IAAA;mBAwCU;;6BAAA,OAAKC,MAAL,CAAY,OAAKxU,KAAjB;KAxCV;MAAA;;;;EAAA,OA2CQwU,MA3CR,mBA2CexU,KA3Cf;IAAA;mBA4DI;;UAfE4M,UAaE5M,MAbF4M;UACA+G,UAYE3T,MAZF2T;UACAhD,aAWE3Q,MAXF2Q;UACA8D,iBAUEzU,MAVFyU;UACAC,oBASE1U,MATF0U;UACAC,oBAQE3U,MARF2U;UACAC,kBAOE5U,MAPF4U;UACAC,oBAME7U,MANF6U;UACAC,kBAKE9U,MALF8U;UACAC,kBAIE/U,MAJF+U;UACAC,aAGEhV,MAHFgV;UACAC,kBAEEjV,MAFFiV;UACAC,mBACElV,MADFkV;6BAGsBzB,aAAa,CAAC,OAAKY,KAAL,CAAWc,UAAZ,EAAwB;QAC3DxB,OAAO,EAAPA,OAD2D;QAE3D/G,OAAO,eAAOA,OAAP,CAFoD;QAG3D+D,UAAU,EAAExD,6BAAS,CAACwD,UAAD,CAHsC;QAI3D/Q,QAAQ,EAAE,OAAKwV,oBAAL,CAA0BC,IAA1B,QAJiD;QAK3DxJ,MAAM,EAAE;UACN4I,cAAc,EAAdA,cADM;UAENC,iBAAiB,EAAjBA,iBAFM;UAGNC,iBAAiB,EAAjBA,iBAHM;UAINC,eAAe,EAAfA,eAJM;UAKNC,iBAAiB,EAAjBA,iBALM;UAMNC,eAAe,EAAfA,eANM;UAONC,eAAe,EAAfA,eAPM;UAQNC,UAAU,EAAVA,UARM;UASNC,eAAe,EAAfA,eATM;UAUNC,gBAAgB,EAAhBA;;OAfiC;QAArC,OAAKZ,UAAL;;KA5DJ;MAAA;;;;EAAA,OAgFEgB,oBAhFF,GAgFE;;;IACE,yBAAKhB,UAAL,sCAAiB9T,OAAjB;GAjFJ;;;EAAA,OAqFQ+U,yBArFR,sCAqFkCC,SArFlC;IAAA;mBAsFQ;;;YAAA,OAAKlB;;gBACHkB,SAAS,CAAC7B,OAAV,KAAsB,OAAKnK,KAAL,CAAWmK;qCAC7B,OAAKa,MAAL,cACD,OAAKxU,KADJ;gBAEJ2T,OAAO,EAAE6B,SAAS,CAAC7B;;mBAEhB,IAAI6B,SAAS,CAAC7E,UAAV,KAAyB,OAAKnH,KAAL,CAAWmH,UAAxC,EAAoD;cACzD,OAAK2D,UAAL,CAAgB3H,IAAhB,GAAuB;gBACrBgH,OAAO,EAAE,OAAKnK,KAAL,CAAWmK,OADC;gBAErBhD,UAAU,EAAE6E,SAAS,CAAC7E;eAFxB;;;;;;;;;KA7FR;MAAA;;;;EAAA,OAqGEyE,oBArGF,GAqGE,8BAAqBzE,UAArB;;;IACE,KAAK8E,QAAL,CAAc;MAAE9E,UAAU,EAAVA;KAAhB,EAA8B;;;MAC5B,iBAAA,MAAI,CAAC3Q,KAAL,kCAAYJ,QAAZ,KAAwB,MAAI,CAACI,KAAL,CAAWJ,QAAX,CAAoB+Q,UAApB,CAAxB;KADF;GAtGJ;;EAAA,OA2GEzM,MA3GF,GA2GE;;;IACE,oBACEhF;MACE,GAAG,EAAE,aAACe,IAAD;QACH,MAAI,CAACoU,KAAL,GAAapU,IAAb;OAFJ;MAIE,OAAO,EAAE,iBAACyV,CAAD;QAAA,OAAOA,CAAC,CAAClQ,eAAF,EAAP;;oBAETtG,oDANF,CADF;GA5GJ;;EAAA;AAAA,EAAiCA,yBAAK,CAACoD,SAAvC;AAAa8R,YACJuB,eAAe;EACpB/I,OAAO,EAAE,EADW;EAEpBhN,QAAQ,EAAEkI,wBAFU;EAGpB8N,OAAO,EAAE9N,wBAHW;EAIpB+N,SAAS,EAAE/N;AAJS;AADXsM,YAQJhV,YAAY;EACjBuR,UAAU,EAAEtR,6BAAS,CAACuB,KADL;EAEjB+S,OAAO,EAAEtU,6BAAS,CAACC,MAFF;EAGjBsN,OAAO,EAAEvN,6BAAS,CAACgP,MAHF;EAIjBzO,QAAQ,EAAEP,6BAAS,CAACsB,IAJH;EAKjB8T,cAAc,EAAEpV,6BAAS,CAACsB,IALT;EAMjB+T,iBAAiB,EAAErV,6BAAS,CAACsB,IANZ;EAOjBgU,iBAAiB,EAAEtV,6BAAS,CAACsB,IAPZ;EAQjBiU,eAAe,EAAEvV,6BAAS,CAACsB,IARV;EASjBkU,iBAAiB,EAAExV,6BAAS,CAACsB,IATZ;EAUjBmU,eAAe,EAAEzV,6BAAS,CAACsB,IAVV;EAWjBoU,eAAe,EAAE1V,6BAAS,CAACsB,IAXV;EAYjBqU,UAAU,EAAE3V,6BAAS,CAACsB,IAZL;EAajBsU,eAAe,EAAE5V,6BAAS,CAACsB,IAbV;EAcjBuU,gBAAgB,EAAE7V,6BAAS,CAACsB;AAdX;;SChFLmV,WAAWlJ;EACzB,IAAM3M,GAAG,GAAGC,YAAM,EAAlB;EAEAC,eAAS,CAAC;IACRF,GAAG,CAACnC,OAAJ,IAAe,IAAIiY,2BAAJ,CAAY9V,GAAG,CAACnC,OAAhB,EAAgC8O,OAAhC,CAAf;GADO,EAEN,CAAC3M,GAAD,EAAM2M,OAAN,CAFM,CAAT;EAIA,OAAO3M,GAAP;AACD;;SCSe+V;2BACdC;MAAAA,sCAAW;MACX1T,gBAAAA;0BACAqK;MAAAA,oCAAU;MACVsJ,cAAAA;MACAC,eAAAA;MACAC,eAAAA;MACAC,cAAAA;MACAC,cAAAA;MACAC,eAAAA;MACAvH,gBAAAA;sBAE+CpC,QAAvCtJ;MAAMkT,+BAAI,UAACA,CAAD;IAAA,OAAuBA,CAAvB;;EAElB,IAAMC,cAAc,GAAQX,UAAU,CAAC;IACrCY,OAAO,EAAE,OAD4B;IAErCC,SAAS,EAAE,KAF0B;IAGrC3Q,KAAK,EAAEwQ,CAAC,CAAC,MAAD;GAH4B,CAAtC;EAMA,IAAMI,cAAc,GAAQd,UAAU,CAAC;IACrCY,OAAO,EAAE,OAD4B;IAErCC,SAAS,EAAE,KAF0B;IAGrC3Q,KAAK,EAAEwQ,CAAC,CAAC,kBAAD;GAH4B,CAAtC;EAMA,IAAMK,cAAc,GAAQf,UAAU,CAAC;IACrCY,OAAO,EAAE,OAD4B;IAErCC,SAAS,EAAE,KAF0B;IAGrC3Q,KAAK,EAAEwQ,CAAC,CAAC,kBAAD;GAH4B,CAAtC;EAMA,IAAMM,eAAe,GAAQhB,UAAU,CAAC;IACtCY,OAAO,EAAE,OAD6B;IAEtCC,SAAS,EAAE,KAF2B;IAGtC3Q,KAAK,EAAEwQ,CAAC,CAAC,mBAAD;GAH6B,CAAvC;EAMA,oBACEtX;IAAK,SAAS,EAAE;kBACdA,kEACEA;IACE,SAAS,sCAAmCqD,QAAQ,GAAG,UAAH,GAAgB,EAA3D,CADX;IAEE,QAAQ,EAAEA,QAFZ;IAGE,OAAO,EAAE;MAAA,OAAM,CAACA,QAAD,IAAayM,QAAb,IAAyBA,QAAQ,EAAvC;;kBAET9P;IAAG,SAAS,YAAUzB,SAAS,CAACmP,OAAO,CAAClP,OAAT,EAAkB,MAAlB;IALjC,EAMGuY,QANH,CADF,eAUE/W,kEACEA;IAAQ,SAAS,+BAA4BiX,OAAO,GAAG,EAAH,GAAQ,UAA3C,CAAjB;IAA0E,OAAO,EAAE;MAAA,OAAME,MAAM,IAAIA,MAAM,EAAtB;KAAnF;IAA6G,GAAG,EAAEO;kBAChH1X;IAAG,SAAS,EAAEzB,SAAS,CAACmP,OAAO,CAAClP,OAAT,EAAkB,MAAlB;IADzB,CADF,eAKEwB;IAAQ,SAAS,+BAA4BkX,OAAO,GAAG,EAAH,GAAQ,UAA3C,CAAjB;IAA0E,OAAO,EAAE;MAAA,OAAME,MAAM,IAAIA,MAAM,EAAtB;KAAnF;IAA6G,GAAG,EAAEO;kBAChH3X;IAAG,SAAS,EAAEzB,SAAS,CAACmP,OAAO,CAAClP,OAAT,EAAkB,MAAlB;IADzB,CALF,CAVF,eAoBEwB,qDACGgX,MAAM,iBACLhX;IAAQ,SAAS,EAAC,eAAlB;IAAkC,OAAO,EAAE;MAAA,OAAMgX,MAAM,EAAZ;KAA3C;IAA2D,GAAG,EAAEO;kBAC9DvX;IAAG,SAAS,EAAEzB,SAAS,CAACmP,OAAO,CAAClP,OAAT,EAAkB,MAAlB;IADzB,CAFJ,eAOEwB;IAAQ,SAAS,2BAAjB;IAA8C,OAAO,EAAE;MAAA,OAAMqX,OAAO,IAAIA,OAAO,EAAxB;KAAvD;IAAmF,GAAG,EAAEO;kBACtF5X;IAAG,SAAS,EAAEzB,SAAS,CAACmP,OAAO,CAAClP,OAAT,EAAkB,OAAlB;IADzB,CAPF,CApBF,CADF,CADF;AAoCD;AAEDsY,YAAY,CAAC5W,SAAb,GAAyB;EACvB6W,QAAQ,EAAE5W,6BAAS,CAACC,MADG;EAEvBsN,OAAO,EAAEvN,6BAAS,CAACgP,MAFI;EAGvB8H,OAAO,EAAE9W,6BAAS,CAACI,IAHI;EAIvB2W,OAAO,EAAE/W,6BAAS,CAACI,IAJI;EAKvB8C,QAAQ,EAAElD,6BAAS,CAACI,IALG;EAMvByW,MAAM,EAAE7W,6BAAS,CAACsB,IANK;EAOvBqO,QAAQ,EAAE3P,6BAAS,CAACsB,IAPG;EAQvB4V,OAAO,EAAElX,6BAAS,CAACsB;AARI,CAAzB;;SCjFgBoW;MAAYpZ,YAAAA;wBAAMY;MAAAA,gCAAQ;MAAIS,aAAAA;MAAOY,gBAAAA;MAAUhB,gBAAAA;MAAUG,mBAAAA;MAAaF,cAAAA;MAAQC,cAAAA;MAAWkB;;EACvG,IAAMC,GAAG,GAAQC,YAAM,EAAvB;EAEAC,eAAS,CAAC;IACR,IAAMC,QAAQ,GAAG,IAAIC,2BAAJ,CAAYJ,GAAG,CAACnC,OAAhB,EAAyB;MACxCkZ,SAAS,EAAE,GAD6B;MAExCC,SAAS,EAAE,IAF6B;MAGxC3W,gBAAgB,EAAE;KAHH,CAAjB;IAMAF,QAAQ,CAACyE,QAAT,CAAkB,GAAGgG,MAAH,CAAUtM,KAAV,EAAiB,EAAjB,CAAlB;IAEA6B,QAAQ,CAAC8W,aAAT,CAAuBpK,OAAvB,CAA+BqK,gBAA/B,CAAgD,SAAhD,EAA2D,UAAClZ,KAAD;MACzD2B,QAAQ,IAAIA,QAAQ,CAACjC,IAAD,EAAOyZ,wBAAI,CAAC7Y,KAAK,CAACsM,MAAN,CAAa5M,KAAK,CAACoZ,MAAN,CAAa9Y,KAA1B,CAAD,CAAX,CAApB;KADF;IAIA6B,QAAQ,CAAC8W,aAAT,CAAuBpK,OAAvB,CAA+BqK,gBAA/B,CAAgD,YAAhD,EAA8D,UAAClZ,KAAD;MAC5D2B,QAAQ,IACNA,QAAQ,CACNjC,IADM,EAENY,KAAK,CAAC0H,MAAN,CAAa,UAACqR,CAAD;QAAA,OAAeA,CAAC,KAAKrZ,KAAK,CAACoZ,MAAN,CAAa9Y,KAAlC;OAAb,CAFM,CADV;KADF;IAQA,OAAO;MACL6B,QAAQ,CAACI,OAAT;KADF;GArBO,EAwBN,EAxBM,CAAT;EA0BA,oBACEtB,wCAAC,WAAD;IAAa,IAAI,EAAEvB,IAAnB;IAAyB,KAAK,EAAEqB,KAAhC;IAAuC,QAAQ,EAAEJ,QAAjD;IAA2D,WAAW,EAAEG,WAAxE;IAAqF,MAAM,EAAEF,MAA7F;IAAqG,MAAM,EAAEC;kBAC3GI;IAAO,GAAG,EAAEe,GAAZ;IAAiB,IAAI,EAAC;KAAWD,KAAjC;IAAwC,EAAE,EAAErC,IAA5C;IAAkD,QAAQ,EAAEiB;KAD9D,CADF;AAKD;AAEDmY,SAAS,CAAC3X,SAAV,GAAsB;EACpBJ,KAAK,EAAEK,6BAAS,CAACC,MADG;EAEpB3B,IAAI,EAAE0B,6BAAS,CAACC,MAAV,CAAiBC,UAFH;EAGpBhB,KAAK,EAAEc,6BAAS,CAACuB,KAHG;EAIpBhC,QAAQ,EAAES,6BAAS,CAACI,IAJA;EAKpBG,QAAQ,EAAEP,6BAAS,CAACsB;AALA,CAAtB;;IC3Ca4W,qBAAqB,GAAG,CACnC;EAAEvY,KAAK,EAAE,MAAT;EAAiBT,KAAK,EAAE;AAAxB,CADmC,EAEnC;EAAES,KAAK,EAAE,QAAT;EAAmBT,KAAK,EAAE;AAA1B,CAFmC,EAGnC;EAAES,KAAK,EAAE,KAAT;EAAgBT,KAAK,EAAE;AAAvB,CAHmC;SAiBrBiZ;MACd5X,gBAAAA;MACA+M,YAAAA;6BACA8K;MAAAA,0CAAa;8BACbC;MAAAA,4CAAc;iCACdC;MAAAA,kDAAiBJ;4BACjBtY;MAAAA,wCAAY;2BACZ2Y;MAAAA,sCAAW;0BACXC;MAAAA,oCAAUra,MAAM,CAACsa,QAAP,CAAgBC;EAE1B,IAAMC,cAAc,GAAGN,WAAW,IAAIA,WAAW,CAAC/a,MAAZ,GAAqB,CAA3D;EAEA,oBACEuC;IAAK,SAAS,2BAAyBD;kBACrCC;IAAK,SAAS,EAAE;kBACdA,wCAAC,SAAD;IACE,KAAK,EAAE,OADT;IAEE,WAAW,EAAC,sBAFd;IAGE,IAAI,EAAE,OAHR;IAIE,QAAQ,EAAE,IAJZ;IAKE,KAAK,EAAEyN,IAAI,CAAC3G,KALd;IAME,QAAQ,EAAE,CAAC,CAAC4R,QAAQ,CAAC,OAAD,CANtB;IAOE,QAAQ,EAAEhY;IARd,CADF,eAYEV;IAAK,SAAS,EAAE;kBACdA,wCAAC,SAAD;IACE,KAAK,EAAE,MADT;IAEE,WAAW,EAAC,6BAFd;IAGE,IAAI,EAAE,MAHR;IAIE,QAAQ,EAAE,IAJZ;IAKE,QAAQ,EAAE,CAAC,CAAC0Y,QAAQ,CAAC,MAAD,CALtB;IAME,KAAK,EAAEjL,IAAI,CAAChP,IANd;IAOE,QAAQ,EAAEiC;IARd,CAZF,eAuBEV;IAAK,SAAS,EAAE;kBACdA,wCAAC,SAAD;IACE,KAAK,EAAE,MADT;IAEE,WAAW,EAAC,SAFd;IAGE,IAAI,EAAE,MAHR;IAIE,SAAS,EAAE,MAJb;IAKE,WAAW,eACTA;MAAM,SAAS,EAAE;oBACfA;MAAG,SAAS,EAAE;MADhB,EAEM2Y,OAFN,SAEiBlL,IAAI,CAACrB,IAFtB,CANJ;IAWE,QAAQ,EAAE,IAXZ;IAYE,KAAK,EAAEqB,IAAI,CAACrB,IAZd;IAaE,QAAQ,EAAE,CAAC,CAACsM,QAAQ,CAAC,MAAD,CAbtB;IAcE,KAAK,EAAE;MAAEK,aAAa,EAAE,WAAjB;MAA8BC,KAAK,EAAE;KAd9C;IAeE,QAAQ,EAAEtY;IAhBd,CAvBF,eA0CEV;IAAK,SAAS,EAAE;kBACdA,wCAAC,MAAD;IACE,KAAK,EAAE,YADT;IAEE,IAAI,EAAE,SAFR;IAGE,QAAQ,EAAE,CAAC,CAAC0Y,QAAQ,CAAC,SAAD,CAHtB;IAIE,KAAK,EAAEjL,IAAI,CAACgH,OAJd;IAKE,OAAO,EAAEgE,cALX;IAME,QAAQ,EAAE/X;IAPd,CA1CF,EAoDGoY,cAAc,iBACb9Y;IAAK,SAAS,EAAE;kBACdA,wCAAC,MAAD;IAAQ,KAAK,EAAE,MAAf;IAAuB,IAAI,EAAE,MAA7B;IAAqC,KAAK,EAAEyN,IAAI,CAACnO,IAAjD;IAAuD,OAAO,EAAEkZ,WAAhE;IAA6E,QAAQ,EAAE9X;IADzF,CArDJ,EAyDG6X,UAAU,iBACTvY;IAAK,SAAS,EAAE;kBACdA,wCAAC,SAAD;IAAW,KAAK,EAAE,MAAlB;IAA0B,IAAI,EAAE,MAAhC;IAAwC,KAAK,EAAEyN,IAAI,CAACwL,IAApD;IAA0D,QAAQ,EAAEvY;IADtE,CA1DJ,CADF;AAiED;AAED4X,cAAc,CAACpY,SAAf,GAA2B;EACzBQ,QAAQ,EAAEP,6BAAS,CAACsB,IADK;EAEzBgM,IAAI,EAAEtN,6BAAS,CAACgP,MAFS;EAGzBoJ,UAAU,EAAEpY,6BAAS,CAACI,IAHG;EAIzBiY,WAAW,EAAErY,6BAAS,CAACuB,KAJE;EAKzB+W,cAAc,EAAEtY,6BAAS,CAACuB,KALD;EAMzB3B,SAAS,EAAEI,6BAAS,CAACC;AANI,CAA3B;;AClGO,IAAM8Y,UAAU,GAAG,SAAbA,UAAa,CAACzL,IAAD,EAA4BpO,KAA5B;EAAA,OAAoE,CAAC0P,2BAAO,CAACtB,IAAD,EAAOpO,KAAP,CAA5E;AAAA,CAAnB;SASS8Z,mBAAmBrY;EACjC,OAAO;IACLsY,IAAI,EAAE,EADD;IAELC,MAAM,EAAE,EAFH;IAGLza,OAAO,EAAEqP,6BAAS,CAACnN,KAAK,CAAC2M,IAAP,CAHb;IAILnG,QAAQ,EAAE2G,6BAAS,CAACnN,KAAK,CAAC2M,IAAP;GAJrB;AAMD;AAEM,IAAM6L,OAAO,GAAG,SAAVA,OAAU,CAAChP,KAAD;MAAyBhL,YAAAA;MAAMD,aAAAA;MAC5C+Z,OAA0B9O,MAA1B8O;MAAMxa,UAAoB0L,MAApB1L;MAASya,SAAW/O,MAAX+O;;EAEvB,IAAME,MAAM,GAAG,SAATA,MAAS,CAACC,QAAD;IACb,IAAIA,QAAQ,CAAC1S,KAAT,KAAmBwD,KAAK,CAAC1L,OAAN,CAAckI,KAAjC,IAA0C,CAACwD,KAAK,CAAC1L,OAAN,CAAckT,GAA7D,EAAkE;MAChE0H,QAAQ,CAAC/a,IAAT,GAAgBgb,6BAAS,CAACpa,KAAK,CAACyH,KAAP,CAAzB;MACA0S,QAAQ,CAACpN,IAAT,GAAgBqN,6BAAS,CAACpa,KAAK,CAACyH,KAAP,CAAT,CAAuB4S,WAAvB,EAAhB;;;IAGF,oBACKpP,KADL;MAEE8O,IAAI,YAAMA,IAAN,GAAYnL,6BAAS,CAACrP,OAAD,CAArB,EAFN;MAGEA,OAAO,EAAE4a;;GATb;;EAaA,QAAQla,IAAR;IACE,KAAK,MAAL;MACE,IAAI8Z,IAAI,CAAC3b,MAAT,EAAiB;QACf,IAAMkc,QAAQ,GAAGP,IAAI,CAACA,IAAI,CAAC3b,MAAL,GAAc,CAAf,CAArB;QACA,IAAMmc,OAAO,GAAGR,IAAI,CAAC3K,KAAL,CAAW,CAAX,EAAc2K,IAAI,CAAC3b,MAAL,GAAc,CAA5B,CAAhB;QAEA,oBACK6M,KADL;UAEE8O,IAAI,EAAEQ,OAFR;UAGEhb,OAAO,EAAEqP,6BAAS,CAAC0L,QAAD,CAHpB;UAIEN,MAAM,GAAGpL,6BAAS,CAACrP,OAAD,CAAZ,SAA0Bya,MAA1B;;;;MAGV;;IAEF,KAAK,MAAL;MACE,IAAIA,MAAM,CAAC5b,MAAX,EAAmB;QACjB,IAAMoc,IAAI,GAAGR,MAAM,CAAC,CAAD,CAAnB;QACA,IAAMS,SAAS,GAAGT,MAAM,CAAC5K,KAAP,CAAa,CAAb,CAAlB;QAEA,oBACKnE,KADL;UAEE8O,IAAI,YAAMA,IAAN,GAAYnL,6BAAS,CAACrP,OAAD,CAArB,EAFN;UAGEA,OAAO,EAAEqP,6BAAS,CAAC4L,IAAD,CAHpB;UAIER,MAAM,EAAES;;;;MAGZ;;IAEF,KAAK,OAAL;MACE,OAAOP,MAAM,CAACtL,6BAAS,CAAC3D,KAAK,CAAChD,QAAP,CAAV,CAAb;;IAEF,KAAK,YAAL;;MAEE,IAAMkS,QAAQ,gBAAQlP,KAAK,CAAC1L,OAAd,EAA0BS,KAA1B,CAAd;;MAEA,IAAI6Z,UAAU,CAAC5O,KAAK,CAAC1L,OAAP,EAAgB4a,QAAhB,CAAd,EAAyC;QACvC,OAAOD,MAAM,CAACC,QAAD,CAAb;;;MAEF;;IAEF,KAAK,aAAL;MACE,oBACKlP,KADL;QAEE8O,IAAI,EAAE,EAFR;QAGEC,MAAM,EAAE,EAHV;QAIEza,OAAO,EAAEqP,6BAAS,CAAC5O,KAAD,CAJpB;QAKEiI,QAAQ,EAAE2G,6BAAS,CAAC5O,KAAD;;;;EAOzB,OAAOiL,KAAP;AACD,CAvEM;;SCVSyP,YAAYjZ;oBAC8BkZ,gBAAU,CAACV,OAAD,EAAUH,kBAAkB,CAACrY,KAAD,CAA5B;;MAAzDlC,uBAAAA;MAASya,sBAAAA;MAAQD,oBAAAA;MAAQa;;EAElC,IAAMnK,QAAQ,GAAG,SAAXA,QAAW;IACf,IAAIhP,KAAK,CAACgP,QAAN,IAAkB,OAAOhP,KAAK,CAACgP,QAAb,KAA0B,UAAhD,EAA4D;MAC1DhP,KAAK,CAACgP,QAAN,CAAelR,OAAf;;GAFJ;;EAKA,IAAMoY,MAAM,GAAG,SAATA,MAAS;IACb,IAAIlW,KAAK,CAACgP,QAAN,IAAkB,OAAOhP,KAAK,CAACkW,MAAb,KAAwB,UAA9C,EAA0D;MACxDlW,KAAK,CAACkW,MAAN,CAAapY,OAAb;;GAFJ;;EAMAqC,eAAS,CAAC;IACR,IAAIH,KAAK,CAAC2M,IAAN,KAAe7O,OAAO,CAACkT,GAAR,KAAgBhR,KAAK,CAAC2M,IAAN,CAAWqE,GAA3B,IAAkClT,OAAO,CAACsb,QAAR,KAAqBpZ,KAAK,CAAC2M,IAAN,CAAWyM,QAAjF,CAAJ,EAAgG;MAC9FD,kBAAkB,CAAC;QAAE3a,IAAI,EAAE,aAAR;QAAuBD,KAAK,EAAEyB,KAAK,CAAC2M;OAArC,CAAlB;;GAFK,EAIN,CAAC3M,KAAK,CAAC2M,IAAP,CAJM,CAAT;;EAMA,IAAM0M,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD;IACjB,IAAIlB,UAAU,CAACta,OAAD,eAAeA,OAAf,EAA2Bwb,OAA3B,EAAd,EAAqD;MACnDH,kBAAkB,CAAC;QAAE3a,IAAI,EAAE,YAAR;QAAsBD,KAAK,EAAE+a;OAA9B,CAAlB;;GAFJ;;EAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO;IAAA,OAAMJ,kBAAkB,CAAC;MAAE3a,IAAI,EAAE;KAAT,CAAxB;GAAb;;EACA,IAAMgb,IAAI,GAAG,SAAPA,IAAO;IAAA,OAAML,kBAAkB,CAAC;MAAE3a,IAAI,EAAE;KAAT,CAAxB;GAAb;;EACA,IAAMib,KAAK,GAAG,SAARA,KAAQ;IAAA,OAAMN,kBAAkB,CAAC;MAAE3a,IAAI,EAAE;KAAT,CAAxB;GAAd;;EAEA,IAAMkb,SAAS,GAAG,SAAZA,SAAY,CAACpO,IAAD,EAAe/M,KAAf;;;IAChB8a,UAAU,cAAMvb,OAAN,6BAAgBwN,IAAhB,IAAuB/M,KAAvB,cAAV;GADF;;EAIA,OAAO;IACLoO,IAAI,EAAE7O,OADD;IAELyb,IAAI,EAAJA,IAFK;IAGLC,IAAI,EAAJA,IAHK;IAILC,KAAK,EAALA,KAJK;IAKLrB,UAAU,EAAE,CAAC,CAACE,IAAI,CAAC3b,MALd;IAML+V,OAAO,EAAE5U,OAAO,CAACkI,KAAR,IAAiBlI,OAAO,CAACH,IAAzB,IAAiCG,OAAO,CAACwN,IAN7C;IAOL6K,OAAO,EAAE,CAAC,CAACmC,IAAI,CAAC3b,MAPX;IAQLyZ,OAAO,EAAE,CAAC,CAACmC,MAAM,CAAC5b,MARb;IASLqS,QAAQ,EAARA,QATK;IAULkH,MAAM,EAANA,MAVK;IAWLmD,UAAU,EAAVA,UAXK;IAYLK,SAAS,EAATA;GAZF;AAcD;;SChDeC,SAAS3Z;qBACiFiZ,WAAW,CAACjZ,KAAD;MAA3G2M,oBAAAA;MAAM+F,uBAAAA;MAASgH,yBAAAA;MAAWtD,uBAAAA;MAASgC,0BAAAA;MAAYjC,uBAAAA;MAASoD,oBAAAA;MAAMC,oBAAAA;MAAMC,qBAAAA;MAAOzK,wBAAAA;MAAUkH,sBAAAA;;uBAC3DlW,MAA1B4M;MAAAA,sCAAU;MAAIiH,UAAY7T,MAAZ6T;EAEtB,oBACE3U,kEACEA;IAAK,SAAS,EAAC;kBACbA,wCAAC,cAAD,eAAoBc,KAApB;IAA2B,SAAS,EAAE,EAAtC;IAA0C,GAAG,qBAAmB2M,IAAI,CAACqE,GAArE;IAA4E,IAAI,EAAErE,IAAlF;IAAwF,QAAQ,EAAE+M;KADpG,eAEExa,wCAAC,YAAD,eACMc,KADN;IAEE,SAAS,EAAE,EAFb;IAGE,GAAG,sBAAoB2M,IAAI,CAACqE,GAH9B;IAIE,OAAO,EAAEpE,OAJX;IAKE,OAAO,EAAEwJ,OALX;IAME,OAAO,EAAED,OANX;IAOE,QAAQ,EAAE,EAAEzD,OAAO,IAAI0F,UAAb,CAPZ;IAQE,MAAM,EAAEmB,IARV;IASE,MAAM,EAAEC,IATV;IAUE,OAAO,EAAEC,KAVX;IAWE,MAAM,EAAEvD,MAXV;IAYE,QAAQ,EAAElH;KAdd,CADF,eAmBE9P,wCAAC,WAAD;IACE,GAAG,oBAAkByN,IAAI,CAACqE,GAD5B;IAEE,UAAU,EAAErE,IAAI,CAACgE,UAFnB;IAGE,OAAO,EAAEhE,IAAI,CAACgH,OAHhB;IAIE,OAAO,EAAE/G,OAJX;IAKE,OAAO,EAAEiH,OALX;IAME,QAAQ,EAAE,kBAAClD,UAAD;MACR+I,SAAS,CAAC,YAAD,EAAe/I,UAAf,CAAT;;IA1BN,CADF;AAgCD;AAEDgJ,QAAQ,CAACva,SAAT,GAAqB;EACnBuN,IAAI,EAAEtN,6BAAS,CAACgP,MAAV,CAAiB9O,UADJ;EAEnBqN,OAAO,EAAEvN,6BAAS,CAACgP,MAFA;EAGnBqJ,WAAW,EAAErY,6BAAS,CAACuB,KAHJ;EAInB+W,cAAc,EAAEtY,6BAAS,CAACuB,KAJP;EAKnB6W,UAAU,EAAEpY,6BAAS,CAACI,IALH;EAMnBuP,QAAQ,EAAE3P,6BAAS,CAACsB;AAND,CAArB;;SClDgBiZ;EACd,OAAO;IACLpb,IAAI,EAAE,MADD;IAEL2Z,IAAI,EAAE,EAFD;IAGLxH,UAAU,EAAE,CACV;MACE6B,KAAK,EAAE,IADT;MAEErV,GAAG,EAAE,QAFP;MAGE2C,WAAW,EAAE,iCAHf;MAIEd,KAAK,EAAE,mBAJT;MAKE6Q,aAAa,EAAE,KALjB;MAMEC,MAAM,EAAE;QAAEtR,IAAI,EAAE;OANlB;MAOEA,IAAI,EAAE,KAPR;MAQEqb,IAAI,EAAE,KARR;MASEC,SAAS,EAAE,KATb;MAUEC,WAAW,EAAE,OAVf;MAWEC,UAAU,EAAE,IAXd;MAYE7U,EAAE,EAAE,SAZN;MAaE8U,UAAU,EAAE;QACV,eAAe;;KAfT,EAkBV;MACEzH,KAAK,EAAE,IADT;MAEErV,GAAG,EAAE,MAFP;MAGE2C,WAAW,EAAE,UAHf;MAIEd,KAAK,EAAE,WAJT;MAKE8Q,MAAM,EAAE;QAAEtR,IAAI,EAAE;OALlB;MAMEA,IAAI,EAAE,MANR;MAOE0b,SAAS,EAAE,GAPb;MAQEC,OAAO,EAAE,OARX;MASEC,OAAO,EAAE,CATX;MAUEjV,EAAE,EAAE;KA5BI,EA8BV;MACEqN,KAAK,EAAE,IADT;MAEErV,GAAG,EAAE,YAFP;MAGE6B,KAAK,EAAE,mBAHT;MAIE6Q,aAAa,EAAE,KAJjB;MAKErR,IAAI,EAAE,SALR;MAME6b,UAAU,EAAE,aANd;MAOEC,yBAAyB,EAAE,KAP7B;MAQEC,cAAc,EAAE,IARlB;MASEC,cAAc,EAAE;QACdhc,IAAI,EAAE,WADQ;QAEdrB,GAAG,EAAE,OAFS;QAGd6B,KAAK,EAAE,OAHO;QAIdwT,KAAK,EAAE,IAJO;QAKdiI,SAAS,EAAE;OAdf;MAgBEtV,EAAE,EAAE;KA9CI,CAHP;IAoDLwO,OAAO,EAAE;GApDX;AAsDD;;SC/Ce+G,yBAAyB/N;EACvC,OAAO;IACLpG,IAAI,EAAE;MACJT,MAAM,EAAE6G,IAAI,CAAC7G,MADT;MAEJqS,IAAI,EAAExL,IAAI,CAACwL,IAFP;MAGJwC,UAAU,EAAEhO,IAAI,CAACgO;;GAJrB;AAOD;SAEeC,yBAAyBjO,MAA2BH;EAClE,oBACKW,6BAAS,CAACR,IAAD,CADd;IAEEwL,IAAI,EAAE3L,UAAU,CAACjG,IAAX,CAAgB4R,IAFxB;IAGErS,MAAM,EAAE0G,UAAU,CAACjG,IAAX,CAAgBT,MAH1B;IAIE6U,UAAU,EAAEnO,UAAU,CAACjG,IAAX,CAAgBoU;;AAE/B;;ACXD,SAASE,eAAT;MAAiCvI,sBAAN3F;2BAAsBqC;MAAAA,uCAAWlH;MAAM8E,eAAAA;;EAChE,IAAMD,IAAI,GAAGiN,qBAAqB,EAAlC;;kBAC8BjV,cAAQ,CAAC,IAAD;MAA/B+N;MAASC;;mBACoBhO,cAAQ,CAAC;IAAA,OAAM+V,wBAAwB,CAACpI,cAAD,CAA9B;GAAD;MAArC9F;MAAYsO;;EAEnB,IAAMlb,QAAQ,GAAG,SAAXA,QAAW;QAAG2G,aAAAA;QAAMmM,gBAAAA;;IACxB,IAAIA,OAAJ,EAAa;MACXoI,aAAa,CAAC;QAAEvU,IAAI,EAAJA;OAAH,CAAb;;;IAEFoM,UAAU,CAACD,OAAD,CAAV;GAJF;;EAOAvS,eAAS,CAAC;IACR,IAAMqS,KAAK,GAAGkI,wBAAwB,CAACpI,cAAD,CAAtC;;IACA,IAAIA,cAAc,QAAd,IAAAA,cAAc,CAAEtB,GAAhB,IAAuB,CAAC/C,2BAAO,CAACzB,UAAU,CAACjG,IAAZ,EAAkBiM,KAAK,CAACjM,IAAxB,CAAnC,EAAkE;MAChEuU,aAAa,CAACtI,KAAD,CAAb;;GAHK,EAKN,CAACF,cAAD,oBAACA,cAAc,CAAEtB,GAAjB,CALM,CAAT;EAOA,OAAO;IACLpE,OAAO,EAAPA,OADK;IAELD,IAAI,EAAJA,IAFK;IAGLnO,IAAI,EAAE8T,cAAc,CAAC9T,IAHhB;IAILgO,UAAU,EAAVA,UAJK;IAKL5M,QAAQ,EAARA,QALK;IAML8S,OAAO,EAAPA,OANK;IAOLC,UAAU,EAAVA,UAPK;IAQL3D,QAAQ,EAAE;MACRA,SAAQ,CAAC4L,wBAAwB,CAACtI,cAAD,EAAiB9F,UAAjB,CAAzB,CAAR;;GATJ;AAYD;;SAEeuO,aAAa/a;yBAC6C6a,eAAe,CAAC7a,KAAD;MAA/E2M,wBAAAA;MAAMH,8BAAAA;+CAAYI;MAAAA,6CAAU;MAAIhN,4BAAAA;MAAUoP,4BAAAA;MAAU0D,2BAAAA;;EAE5D,IAAMpP,IAAI,GAAGsJ,OAAO,CAACtJ,IAAR,IAAiB,UAACC,CAAD;IAAA,OAAeA,CAAf;GAA9B;;EAEA,oBACErE,kEACEA,wCAAC,IAAD;IAAM,IAAI,EAAEyN,IAAZ;IAAkB,UAAU,EAAEH,UAA9B;IAA0C,QAAQ,EAAE5M,QAApD;IAA8D,OAAO,EAAEgN;IADzE,eAGE1N;IAAQ,eAAY,QAApB;IAA6B,QAAQ,EAAE,CAACwT,OAAxC;IAAiD,SAAS,EAAE,sBAA5D;IAAoF,OAAO,EAAE1D,QAA7F;IAAuG,IAAI,EAAE;KAC1G1L,IAAI,CAAC,eAAD,CADP,CAHF,CADF;AASD;;SC1De0X;MAA6DpX,cAAAA;MACnEuB,KAAgDvB,OAAhDuB;MAAI8V,kBAA4CrX,OAA5CqX;MAAiB7V,cAA2BxB,OAA3BwB;MAAaC,YAAczB,OAAdyB;MACzB6V,gBAAkBtX,OAA3B/D;EAER,IAAMA,OAAO,GACXqb,aAAa,IACb,UAAI,IAAIC,GAAJ,CAAQF,eAAe,CAACxa,GAAhB,CAAoB,UAAC4F,GAAD;IAAA,OAASA,GAAG,CAAC6J,MAAJ,CAAW/K,EAAX,CAAT;GAApB,CAAR,CAAJ,EAA2Dc,MAA3D,CAAkE,UAAC1H,KAAD;IAAA,OAAWA,KAAX;GAAlE,EAAoFkC,GAApF,CAAwF,UAAClC,KAAD;IAAA,OAAY;MAAES,KAAK,EAAET,KAAT;MAAgBA,KAAK,EAALA;KAA5B;GAAxF,CAFF;EAIA,oBACEW,wCAAC,MAAD;IACE,GAAG,cAAY0E,MAAM,CAACuB,EADxB;IAEE,IAAI,cAAYvB,MAAM,CAACuB,EAFzB;IAGE,IAAI,EAAE,IAHR;IAIE,KAAK,EAAEC,WAJT;IAKE,OAAO,EAAE,CAAC;MAAE7G,KAAK,EAAE,EAAT;MAAaS,KAAK,EAAE;KAArB,EAA8B6L,MAA9B,CAAqChL,OAArC,CALX;IAME,QAAQ,EAAE,kBAAClC,IAAD,EAAOY,KAAP;MACR8G,SAAS,CAAC9G,KAAK,IAAIwF,SAAV,CAAT;;IARN;AAYD;;;;ECnBC,WAAUqX,MAAV,EAAkBC,OAAlB,EAA2B;IACsC/d,cAAA,GAAiB+d,OAAO,EAAvF,CAAA;GADF,EAIAC,cAJA,EAIO,YAAY;;IAEjB,IAAIC,YAAJ;;IAEA,SAASzU,KAAT,GAAiB;MACb,OAAOyU,YAAY,CAACre,KAAb,CAAmB,IAAnB,EAAyBR,SAAzB,CAAP;KALa;;;;IAUjB,SAAS8e,eAAT,CAAyB5P,QAAzB,EAAmC;MAC/B2P,YAAY,GAAG3P,QAAf;;;IAGJ,SAAS5O,OAAT,CAAiBwV,KAAjB,EAAwB;MACpB,OACIA,KAAK,YAAYzV,KAAjB,IACAiO,MAAM,CAACC,SAAP,CAAiBwQ,QAAjB,CAA0Bre,IAA1B,CAA+BoV,KAA/B,MAA0C,gBAF9C;;;IAMJ,SAASkJ,QAAT,CAAkBlJ,KAAlB,EAAyB;;;MAGrB,OACIA,KAAK,IAAI,IAAT,IACAxH,MAAM,CAACC,SAAP,CAAiBwQ,QAAjB,CAA0Bre,IAA1B,CAA+BoV,KAA/B,MAA0C,iBAF9C;;;IAMJ,SAASmJ,UAAT,CAAoBC,CAApB,EAAuBC,CAAvB,EAA0B;MACtB,OAAO7Q,MAAM,CAACC,SAAP,CAAiB3O,cAAjB,CAAgCc,IAAhC,CAAqCwe,CAArC,EAAwCC,CAAxC,CAAP;;;IAGJ,SAASC,aAAT,CAAuBC,GAAvB,EAA4B;MACxB,IAAI/Q,MAAM,CAACgR,mBAAX,EAAgC;QAC5B,OAAOhR,MAAM,CAACgR,mBAAP,CAA2BD,GAA3B,EAAgCpf,MAAhC,KAA2C,CAAlD;OADJ,MAEO;QACH,IAAIsf,CAAJ;;QACA,KAAKA,CAAL,IAAUF,GAAV,EAAe;UACX,IAAIJ,UAAU,CAACI,GAAD,EAAME,CAAN,CAAd,EAAwB;YACpB,OAAO,KAAP;;;;QAGR,OAAO,IAAP;;;;IAIR,SAASC,WAAT,CAAqB1J,KAArB,EAA4B;MACxB,OAAOA,KAAK,KAAK,KAAK,CAAtB;;;IAGJ,SAAS2J,QAAT,CAAkB3J,KAAlB,EAAyB;MACrB,OACI,OAAOA,KAAP,KAAiB,QAAjB,IACAxH,MAAM,CAACC,SAAP,CAAiBwQ,QAAjB,CAA0Bre,IAA1B,CAA+BoV,KAA/B,MAA0C,iBAF9C;;;IAMJ,SAAS4J,MAAT,CAAgB5J,KAAhB,EAAuB;MACnB,OACIA,KAAK,YAAY6J,IAAjB,IACArR,MAAM,CAACC,SAAP,CAAiBwQ,QAAjB,CAA0Bre,IAA1B,CAA+BoV,KAA/B,MAA0C,eAF9C;;;IAMJ,SAAS/R,GAAT,CAAa6b,GAAb,EAAkBjY,EAAlB,EAAsB;MAClB,IAAIkY,GAAG,GAAG,EAAV;UACI9f,CADJ;UAEI+f,MAAM,GAAGF,GAAG,CAAC3f,MAFjB;;MAGA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG+f,MAAhB,EAAwB,EAAE/f,CAA1B,EAA6B;QACzB8f,GAAG,CAACzf,IAAJ,CAASuH,EAAE,CAACiY,GAAG,CAAC7f,CAAD,CAAJ,EAASA,CAAT,CAAX;;;MAEJ,OAAO8f,GAAP;;;IAGJ,SAASE,MAAT,CAAgBb,CAAhB,EAAmBC,CAAnB,EAAsB;MAClB,KAAK,IAAIpf,CAAT,IAAcof,CAAd,EAAiB;QACb,IAAIF,UAAU,CAACE,CAAD,EAAIpf,CAAJ,CAAd,EAAsB;UAClBmf,CAAC,CAACnf,CAAD,CAAD,GAAOof,CAAC,CAACpf,CAAD,CAAR;;;;MAIR,IAAIkf,UAAU,CAACE,CAAD,EAAI,UAAJ,CAAd,EAA+B;QAC3BD,CAAC,CAACH,QAAF,GAAaI,CAAC,CAACJ,QAAf;;;MAGJ,IAAIE,UAAU,CAACE,CAAD,EAAI,SAAJ,CAAd,EAA8B;QAC1BD,CAAC,CAACc,OAAF,GAAYb,CAAC,CAACa,OAAd;;;MAGJ,OAAOd,CAAP;;;IAGJ,SAASe,SAAT,CAAmBnK,KAAnB,EAA0BoK,MAA1B,EAAkCC,MAAlC,EAA0CC,MAA1C,EAAkD;MAC9C,OAAOC,gBAAgB,CAACvK,KAAD,EAAQoK,MAAR,EAAgBC,MAAhB,EAAwBC,MAAxB,EAAgC,IAAhC,CAAhB,CAAsDE,GAAtD,EAAP;;;IAGJ,SAASC,mBAAT,GAA+B;;MAE3B,OAAO;QACHC,KAAK,EAAE,KADJ;QAEHC,YAAY,EAAE,EAFX;QAGHC,WAAW,EAAE,EAHV;QAIHC,QAAQ,EAAE,CAAC,CAJR;QAKHC,aAAa,EAAE,CALZ;QAMHC,SAAS,EAAE,KANR;QAOHC,UAAU,EAAE,IAPT;QAQHC,YAAY,EAAE,IARX;QASHC,aAAa,EAAE,KATZ;QAUHC,eAAe,EAAE,KAVd;QAWHC,GAAG,EAAE,KAXF;QAYHC,eAAe,EAAE,EAZd;QAaHC,GAAG,EAAE,IAbF;QAcHC,QAAQ,EAAE,IAdP;QAeHC,OAAO,EAAE,KAfN;QAgBHC,eAAe,EAAE;OAhBrB;;;IAoBJ,SAASC,eAAT,CAAyBC,CAAzB,EAA4B;MACxB,IAAIA,CAAC,CAACC,GAAF,IAAS,IAAb,EAAmB;QACfD,CAAC,CAACC,GAAF,GAAQnB,mBAAmB,EAA3B;;;MAEJ,OAAOkB,CAAC,CAACC,GAAT;;;IAGJ,IAAIC,IAAJ;;IACA,IAAIthB,KAAK,CAACkO,SAAN,CAAgBoT,IAApB,EAA0B;MACtBA,IAAI,GAAGthB,KAAK,CAACkO,SAAN,CAAgBoT,IAAvB;KADJ,MAEO;MACHA,IAAI,GAAG,cAAUC,GAAV,EAAe;QAClB,IAAI9H,CAAC,GAAGxL,MAAM,CAAC,IAAD,CAAd;YACIuT,GAAG,GAAG/H,CAAC,CAAC7Z,MAAF,KAAa,CADvB;YAEIF,CAFJ;;QAIA,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG8hB,GAAhB,EAAqB9hB,CAAC,EAAtB,EAA0B;UACtB,IAAIA,CAAC,IAAI+Z,CAAL,IAAU8H,GAAG,CAAClhB,IAAJ,CAAS,IAAT,EAAeoZ,CAAC,CAAC/Z,CAAD,CAAhB,EAAqBA,CAArB,EAAwB+Z,CAAxB,CAAd,EAA0C;YACtC,OAAO,IAAP;;;;QAIR,OAAO,KAAP;OAXJ;;;IAeJ,SAAS9D,OAAT,CAAiByL,CAAjB,EAAoB;MAChB,IAAIA,CAAC,CAACK,QAAF,IAAc,IAAlB,EAAwB;QACpB,IAAIC,KAAK,GAAGP,eAAe,CAACC,CAAD,CAA3B;YACIO,WAAW,GAAGL,IAAI,CAACjhB,IAAL,CAAUqhB,KAAK,CAACZ,eAAhB,EAAiC,UAAUphB,CAAV,EAAa;UACxD,OAAOA,CAAC,IAAI,IAAZ;SADU,CADlB;YAIIkiB,UAAU,GACN,CAACC,KAAK,CAACT,CAAC,CAACU,EAAF,CAAKC,OAAL,EAAD,CAAN,IACAL,KAAK,CAACpB,QAAN,GAAiB,CADjB,IAEA,CAACoB,KAAK,CAACvB,KAFP,IAGA,CAACuB,KAAK,CAACjB,UAHP,IAIA,CAACiB,KAAK,CAAChB,YAJP,IAKA,CAACgB,KAAK,CAACM,cALP,IAMA,CAACN,KAAK,CAACR,eANP,IAOA,CAACQ,KAAK,CAAClB,SAPP,IAQA,CAACkB,KAAK,CAACf,aARP,IASA,CAACe,KAAK,CAACd,eATP,KAUC,CAACc,KAAK,CAACV,QAAP,IAAoBU,KAAK,CAACV,QAAN,IAAkBW,WAVvC,CALR;;QAiBA,IAAIP,CAAC,CAACa,OAAN,EAAe;UACXL,UAAU,GACNA,UAAU,IACVF,KAAK,CAACnB,aAAN,KAAwB,CADxB,IAEAmB,KAAK,CAACtB,YAAN,CAAmBxgB,MAAnB,KAA8B,CAF9B,IAGA8hB,KAAK,CAACQ,OAAN,KAAkBlb,SAJtB;;;QAOJ,IAAIiH,MAAM,CAACkU,QAAP,IAAmB,IAAnB,IAA2B,CAAClU,MAAM,CAACkU,QAAP,CAAgBf,CAAhB,CAAhC,EAAoD;UAChDA,CAAC,CAACK,QAAF,GAAaG,UAAb;SADJ,MAEO;UACH,OAAOA,UAAP;;;;MAGR,OAAOR,CAAC,CAACK,QAAT;;;IAGJ,SAASW,aAAT,CAAuBV,KAAvB,EAA8B;MAC1B,IAAIN,CAAC,GAAGxB,SAAS,CAACyC,GAAD,CAAjB;;MACA,IAAIX,KAAK,IAAI,IAAb,EAAmB;QACfhC,MAAM,CAACyB,eAAe,CAACC,CAAD,CAAhB,EAAqBM,KAArB,CAAN;OADJ,MAEO;QACHP,eAAe,CAACC,CAAD,CAAf,CAAmBR,eAAnB,GAAqC,IAArC;;;MAGJ,OAAOQ,CAAP;KA9La;;;;IAmMjB,IAAIkB,gBAAgB,GAAIvY,KAAK,CAACuY,gBAAN,GAAyB,EAAjD;QACIC,gBAAgB,GAAG,KADvB;;IAGA,SAASC,UAAT,CAAoBve,EAApB,EAAwB3C,IAAxB,EAA8B;MAC1B,IAAI5B,CAAJ;UACI+iB,IADJ;UAEIC,GAFJ;UAGIC,mBAAmB,GAAGL,gBAAgB,CAAC1iB,MAH3C;;MAKA,IAAI,CAACuf,WAAW,CAAC7d,IAAI,CAACshB,gBAAN,CAAhB,EAAyC;QACrC3e,EAAE,CAAC2e,gBAAH,GAAsBthB,IAAI,CAACshB,gBAA3B;;;MAEJ,IAAI,CAACzD,WAAW,CAAC7d,IAAI,CAACuhB,EAAN,CAAhB,EAA2B;QACvB5e,EAAE,CAAC4e,EAAH,GAAQvhB,IAAI,CAACuhB,EAAb;;;MAEJ,IAAI,CAAC1D,WAAW,CAAC7d,IAAI,CAACwhB,EAAN,CAAhB,EAA2B;QACvB7e,EAAE,CAAC6e,EAAH,GAAQxhB,IAAI,CAACwhB,EAAb;;;MAEJ,IAAI,CAAC3D,WAAW,CAAC7d,IAAI,CAACyhB,EAAN,CAAhB,EAA2B;QACvB9e,EAAE,CAAC8e,EAAH,GAAQzhB,IAAI,CAACyhB,EAAb;;;MAEJ,IAAI,CAAC5D,WAAW,CAAC7d,IAAI,CAAC2gB,OAAN,CAAhB,EAAgC;QAC5Bhe,EAAE,CAACge,OAAH,GAAa3gB,IAAI,CAAC2gB,OAAlB;;;MAEJ,IAAI,CAAC9C,WAAW,CAAC7d,IAAI,CAAC0hB,IAAN,CAAhB,EAA6B;QACzB/e,EAAE,CAAC+e,IAAH,GAAU1hB,IAAI,CAAC0hB,IAAf;;;MAEJ,IAAI,CAAC7D,WAAW,CAAC7d,IAAI,CAAC2hB,MAAN,CAAhB,EAA+B;QAC3Bhf,EAAE,CAACgf,MAAH,GAAY3hB,IAAI,CAAC2hB,MAAjB;;;MAEJ,IAAI,CAAC9D,WAAW,CAAC7d,IAAI,CAAC4hB,OAAN,CAAhB,EAAgC;QAC5Bjf,EAAE,CAACif,OAAH,GAAa5hB,IAAI,CAAC4hB,OAAlB;;;MAEJ,IAAI,CAAC/D,WAAW,CAAC7d,IAAI,CAAC+f,GAAN,CAAhB,EAA4B;QACxBpd,EAAE,CAACod,GAAH,GAASF,eAAe,CAAC7f,IAAD,CAAxB;;;MAEJ,IAAI,CAAC6d,WAAW,CAAC7d,IAAI,CAAC6hB,OAAN,CAAhB,EAAgC;QAC5Blf,EAAE,CAACkf,OAAH,GAAa7hB,IAAI,CAAC6hB,OAAlB;;;MAGJ,IAAIR,mBAAmB,GAAG,CAA1B,EAA6B;QACzB,KAAKjjB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGijB,mBAAhB,EAAqCjjB,CAAC,EAAtC,EAA0C;UACtC+iB,IAAI,GAAGH,gBAAgB,CAAC5iB,CAAD,CAAvB;UACAgjB,GAAG,GAAGphB,IAAI,CAACmhB,IAAD,CAAV;;UACA,IAAI,CAACtD,WAAW,CAACuD,GAAD,CAAhB,EAAuB;YACnBze,EAAE,CAACwe,IAAD,CAAF,GAAWC,GAAX;;;;;MAKZ,OAAOze,EAAP;KArPa;;;IAyPjB,SAASmf,MAAT,CAAgBC,MAAhB,EAAwB;MACpBb,UAAU,CAAC,IAAD,EAAOa,MAAP,CAAV;MACA,KAAKvB,EAAL,GAAU,IAAIxC,IAAJ,CAAS+D,MAAM,CAACvB,EAAP,IAAa,IAAb,GAAoBuB,MAAM,CAACvB,EAAP,CAAUC,OAAV,EAApB,GAA0CM,GAAnD,CAAV;;MACA,IAAI,CAAC,KAAK1M,OAAL,EAAL,EAAqB;QACjB,KAAKmM,EAAL,GAAU,IAAIxC,IAAJ,CAAS+C,GAAT,CAAV;OAJgB;;;;MAQpB,IAAIE,gBAAgB,KAAK,KAAzB,EAAgC;QAC5BA,gBAAgB,GAAG,IAAnB;QACAxY,KAAK,CAACuZ,YAAN,CAAmB,IAAnB;QACAf,gBAAgB,GAAG,KAAnB;;;;IAIR,SAASgB,QAAT,CAAkBvE,GAAlB,EAAuB;MACnB,OACIA,GAAG,YAAYoE,MAAf,IAA0BpE,GAAG,IAAI,IAAP,IAAeA,GAAG,CAAC4D,gBAAJ,IAAwB,IADrE;;;IAKJ,SAASY,IAAT,CAAcC,GAAd,EAAmB;MACf,IACI1Z,KAAK,CAAC2Z,2BAAN,KAAsC,KAAtC,IACA,OAAOtM,OAAP,KAAmB,WADnB,IAEAA,OAAO,CAACoM,IAHZ,EAIE;QACEpM,OAAO,CAACoM,IAAR,CAAa,0BAA0BC,GAAvC;;;;IAIR,SAASE,SAAT,CAAmBF,GAAnB,EAAwBnc,EAAxB,EAA4B;MACxB,IAAIsc,SAAS,GAAG,IAAhB;MAEA,OAAOlE,MAAM,CAAC,YAAY;QACtB,IAAI3V,KAAK,CAAC8Z,kBAAN,IAA4B,IAAhC,EAAsC;UAClC9Z,KAAK,CAAC8Z,kBAAN,CAAyB,IAAzB,EAA+BJ,GAA/B;;;QAEJ,IAAIG,SAAJ,EAAe;UACX,IAAIrT,IAAI,GAAG,EAAX;cACI1Q,GADJ;cAEIH,CAFJ;cAGIU,GAHJ;cAII0jB,MAAM,GAAGnkB,SAAS,CAACC,MAJvB;;UAKA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGokB,MAAhB,EAAwBpkB,CAAC,EAAzB,EAA6B;YACzBG,GAAG,GAAG,EAAN;;YACA,IAAI,OAAOF,SAAS,CAACD,CAAD,CAAhB,KAAwB,QAA5B,EAAsC;cAClCG,GAAG,IAAI,QAAQH,CAAR,GAAY,IAAnB;;cACA,KAAKU,GAAL,IAAYT,SAAS,CAAC,CAAD,CAArB,EAA0B;gBACtB,IAAIif,UAAU,CAACjf,SAAS,CAAC,CAAD,CAAV,EAAeS,GAAf,CAAd,EAAmC;kBAC/BP,GAAG,IAAIO,GAAG,GAAG,IAAN,GAAaT,SAAS,CAAC,CAAD,CAAT,CAAaS,GAAb,CAAb,GAAiC,IAAxC;;;;cAGRP,GAAG,GAAGA,GAAG,CAAC+Q,KAAJ,CAAU,CAAV,EAAa,CAAC,CAAd,CAAN,CAPkC;aAAtC,MAQO;cACH/Q,GAAG,GAAGF,SAAS,CAACD,CAAD,CAAf;;;YAEJ6Q,IAAI,CAACxQ,IAAL,CAAUF,GAAV;;;UAEJ2jB,IAAI,CACAC,GAAG,GACC,eADJ,GAEIzjB,KAAK,CAACkO,SAAN,CAAgB0C,KAAhB,CAAsBvQ,IAAtB,CAA2BkQ,IAA3B,EAAiCjQ,IAAjC,CAAsC,EAAtC,CAFJ,GAGI,IAHJ,GAII,IAAIyjB,KAAJ,GAAYC,KALhB,CAAJ;UAOAJ,SAAS,GAAG,KAAZ;;;QAEJ,OAAOtc,EAAE,CAACnH,KAAH,CAAS,IAAT,EAAeR,SAAf,CAAP;OAlCS,EAmCV2H,EAnCU,CAAb;;;IAsCJ,IAAI2c,YAAY,GAAG,EAAnB;;IAEA,SAASC,eAAT,CAAyBtjB,IAAzB,EAA+B6iB,GAA/B,EAAoC;MAChC,IAAI1Z,KAAK,CAAC8Z,kBAAN,IAA4B,IAAhC,EAAsC;QAClC9Z,KAAK,CAAC8Z,kBAAN,CAAyBjjB,IAAzB,EAA+B6iB,GAA/B;;;MAEJ,IAAI,CAACQ,YAAY,CAACrjB,IAAD,CAAjB,EAAyB;QACrB4iB,IAAI,CAACC,GAAD,CAAJ;QACAQ,YAAY,CAACrjB,IAAD,CAAZ,GAAqB,IAArB;;;;IAIRmJ,KAAK,CAAC2Z,2BAAN,GAAoC,KAApC;IACA3Z,KAAK,CAAC8Z,kBAAN,GAA2B,IAA3B;;IAEA,SAASM,UAAT,CAAoB1O,KAApB,EAA2B;MACvB,OACK,OAAO2O,QAAP,KAAoB,WAApB,IAAmC3O,KAAK,YAAY2O,QAArD,IACAnW,MAAM,CAACC,SAAP,CAAiBwQ,QAAjB,CAA0Bre,IAA1B,CAA+BoV,KAA/B,MAA0C,mBAF9C;;;IAMJ,SAAS1G,GAAT,CAAasU,MAAb,EAAqB;MACjB,IAAIZ,IAAJ,EAAU/iB,CAAV;;MACA,KAAKA,CAAL,IAAU2jB,MAAV,EAAkB;QACd,IAAIzE,UAAU,CAACyE,MAAD,EAAS3jB,CAAT,CAAd,EAA2B;UACvB+iB,IAAI,GAAGY,MAAM,CAAC3jB,CAAD,CAAb;;UACA,IAAIykB,UAAU,CAAC1B,IAAD,CAAd,EAAsB;YAClB,KAAK/iB,CAAL,IAAU+iB,IAAV;WADJ,MAEO;YACH,KAAK,MAAM/iB,CAAX,IAAgB+iB,IAAhB;;;;;MAIZ,KAAK4B,OAAL,GAAehB,MAAf,CAZiB;;;;MAgBjB,KAAKiB,8BAAL,GAAsC,IAAIC,MAAJ,CAClC,CAAC,KAAKC,uBAAL,CAA6BC,MAA7B,IAAuC,KAAKC,aAAL,CAAmBD,MAA3D,IACI,GADJ,GAEI,UAAUA,MAHoB,CAAtC;;;IAOJ,SAASE,YAAT,CAAsBC,YAAtB,EAAoCC,WAApC,EAAiD;MAC7C,IAAIrF,GAAG,GAAGE,MAAM,CAAC,EAAD,EAAKkF,YAAL,CAAhB;UACInC,IADJ;;MAEA,KAAKA,IAAL,IAAaoC,WAAb,EAA0B;QACtB,IAAIjG,UAAU,CAACiG,WAAD,EAAcpC,IAAd,CAAd,EAAmC;UAC/B,IAAI9D,QAAQ,CAACiG,YAAY,CAACnC,IAAD,CAAb,CAAR,IAAgC9D,QAAQ,CAACkG,WAAW,CAACpC,IAAD,CAAZ,CAA5C,EAAiE;YAC7DjD,GAAG,CAACiD,IAAD,CAAH,GAAY,EAAZ;YACA/C,MAAM,CAACF,GAAG,CAACiD,IAAD,CAAJ,EAAYmC,YAAY,CAACnC,IAAD,CAAxB,CAAN;YACA/C,MAAM,CAACF,GAAG,CAACiD,IAAD,CAAJ,EAAYoC,WAAW,CAACpC,IAAD,CAAvB,CAAN;WAHJ,MAIO,IAAIoC,WAAW,CAACpC,IAAD,CAAX,IAAqB,IAAzB,EAA+B;YAClCjD,GAAG,CAACiD,IAAD,CAAH,GAAYoC,WAAW,CAACpC,IAAD,CAAvB;WADG,MAEA;YACH,OAAOjD,GAAG,CAACiD,IAAD,CAAV;;;;;MAIZ,KAAKA,IAAL,IAAamC,YAAb,EAA2B;QACvB,IACIhG,UAAU,CAACgG,YAAD,EAAenC,IAAf,CAAV,IACA,CAAC7D,UAAU,CAACiG,WAAD,EAAcpC,IAAd,CADX,IAEA9D,QAAQ,CAACiG,YAAY,CAACnC,IAAD,CAAb,CAHZ,EAIE;;UAEEjD,GAAG,CAACiD,IAAD,CAAH,GAAY/C,MAAM,CAAC,EAAD,EAAKF,GAAG,CAACiD,IAAD,CAAR,CAAlB;;;;MAGR,OAAOjD,GAAP;;;IAGJ,SAASsF,MAAT,CAAgBzB,MAAhB,EAAwB;MACpB,IAAIA,MAAM,IAAI,IAAd,EAAoB;QAChB,KAAKtU,GAAL,CAASsU,MAAT;;;;IAIR,IAAIlV,IAAJ;;IAEA,IAAIF,MAAM,CAACE,IAAX,EAAiB;MACbA,IAAI,GAAGF,MAAM,CAACE,IAAd;KADJ,MAEO;MACHA,IAAI,GAAG,cAAU6Q,GAAV,EAAe;QAClB,IAAItf,CAAJ;YACI8f,GAAG,GAAG,EADV;;QAEA,KAAK9f,CAAL,IAAUsf,GAAV,EAAe;UACX,IAAIJ,UAAU,CAACI,GAAD,EAAMtf,CAAN,CAAd,EAAwB;YACpB8f,GAAG,CAACzf,IAAJ,CAASL,CAAT;;;;QAGR,OAAO8f,GAAP;OARJ;;;IAYJ,IAAIuF,eAAe,GAAG;MAClBC,OAAO,EAAE,eADS;MAElBC,OAAO,EAAE,kBAFS;MAGlBC,QAAQ,EAAE,cAHQ;MAIlBC,OAAO,EAAE,mBAJS;MAKlBC,QAAQ,EAAE,qBALQ;MAMlBC,QAAQ,EAAE;KANd;;IASA,SAASC,QAAT,CAAkBllB,GAAlB,EAAuBmlB,GAAvB,EAA4BC,GAA5B,EAAiC;MAC7B,IAAIC,MAAM,GAAG,KAAKC,SAAL,CAAetlB,GAAf,KAAuB,KAAKslB,SAAL,CAAe,UAAf,CAApC;MACA,OAAOvB,UAAU,CAACsB,MAAD,CAAV,GAAqBA,MAAM,CAACplB,IAAP,CAAYklB,GAAZ,EAAiBC,GAAjB,CAArB,GAA6CC,MAApD;;;IAGJ,SAASE,QAAT,CAAkBC,MAAlB,EAA0BC,YAA1B,EAAwCC,SAAxC,EAAmD;MAC/C,IAAIC,SAAS,GAAG,KAAKrhB,IAAI,CAACshB,GAAL,CAASJ,MAAT,CAArB;UACIK,WAAW,GAAGJ,YAAY,GAAGE,SAAS,CAACnmB,MAD3C;UAEIsmB,IAAI,GAAGN,MAAM,IAAI,CAFrB;MAGA,OACI,CAACM,IAAI,GAAIJ,SAAS,GAAG,GAAH,GAAS,EAAtB,GAA4B,GAAjC,IACAphB,IAAI,CAACyhB,GAAL,CAAS,EAAT,EAAazhB,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYshB,WAAZ,CAAb,EAAuCvH,QAAvC,GAAkD0H,MAAlD,CAAyD,CAAzD,CADA,GAEAL,SAHJ;;;IAOJ,IAAIM,gBAAgB,GACZ,wMADR;QAEIC,qBAAqB,GAAG,4CAF5B;QAGIC,eAAe,GAAG,EAHtB;QAIIC,oBAAoB,GAAG,EAJ3B,CA3biB;;;;;IAqcjB,SAASC,cAAT,CAAwBC,KAAxB,EAA+BC,MAA/B,EAAuCC,OAAvC,EAAgD/X,QAAhD,EAA0D;MACtD,IAAIjL,IAAI,GAAGiL,QAAX;;MACA,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;QAC9BjL,IAAI,GAAG,gBAAY;UACf,OAAO,KAAKiL,QAAL,GAAP;SADJ;;;MAIJ,IAAI6X,KAAJ,EAAW;QACPF,oBAAoB,CAACE,KAAD,CAApB,GAA8B9iB,IAA9B;;;MAEJ,IAAI+iB,MAAJ,EAAY;QACRH,oBAAoB,CAACG,MAAM,CAAC,CAAD,CAAP,CAApB,GAAkC,YAAY;UAC1C,OAAOhB,QAAQ,CAAC/hB,IAAI,CAACzD,KAAL,CAAW,IAAX,EAAiBR,SAAjB,CAAD,EAA8BgnB,MAAM,CAAC,CAAD,CAApC,EAAyCA,MAAM,CAAC,CAAD,CAA/C,CAAf;SADJ;;;MAIJ,IAAIC,OAAJ,EAAa;QACTJ,oBAAoB,CAACI,OAAD,CAApB,GAAgC,YAAY;UACxC,OAAO,KAAKC,UAAL,GAAkBD,OAAlB,CACHhjB,IAAI,CAACzD,KAAL,CAAW,IAAX,EAAiBR,SAAjB,CADG,EAEH+mB,KAFG,CAAP;SADJ;;;;IASR,SAASI,sBAAT,CAAgCrR,KAAhC,EAAuC;MACnC,IAAIA,KAAK,CAACsR,KAAN,CAAY,UAAZ,CAAJ,EAA6B;QACzB,OAAOtR,KAAK,CAACuR,OAAN,CAAc,UAAd,EAA0B,EAA1B,CAAP;;;MAEJ,OAAOvR,KAAK,CAACuR,OAAN,CAAc,KAAd,EAAqB,EAArB,CAAP;;;IAGJ,SAASC,kBAAT,CAA4BpH,MAA5B,EAAoC;MAChC,IAAIhc,KAAK,GAAGgc,MAAM,CAACkH,KAAP,CAAaV,gBAAb,CAAZ;UACI3mB,CADJ;UAEIE,MAFJ;;MAIA,KAAKF,CAAC,GAAG,CAAJ,EAAOE,MAAM,GAAGiE,KAAK,CAACjE,MAA3B,EAAmCF,CAAC,GAAGE,MAAvC,EAA+CF,CAAC,EAAhD,EAAoD;QAChD,IAAI8mB,oBAAoB,CAAC3iB,KAAK,CAACnE,CAAD,CAAN,CAAxB,EAAoC;UAChCmE,KAAK,CAACnE,CAAD,CAAL,GAAW8mB,oBAAoB,CAAC3iB,KAAK,CAACnE,CAAD,CAAN,CAA/B;SADJ,MAEO;UACHmE,KAAK,CAACnE,CAAD,CAAL,GAAWonB,sBAAsB,CAACjjB,KAAK,CAACnE,CAAD,CAAN,CAAjC;;;;MAIR,OAAO,UAAU6lB,GAAV,EAAe;QAClB,IAAIE,MAAM,GAAG,EAAb;YACI/lB,CADJ;;QAEA,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGE,MAAhB,EAAwBF,CAAC,EAAzB,EAA6B;UACzB+lB,MAAM,IAAItB,UAAU,CAACtgB,KAAK,CAACnE,CAAD,CAAN,CAAV,GACJmE,KAAK,CAACnE,CAAD,CAAL,CAASW,IAAT,CAAcklB,GAAd,EAAmB1F,MAAnB,CADI,GAEJhc,KAAK,CAACnE,CAAD,CAFX;;;QAIJ,OAAO+lB,MAAP;OARJ;KAlfa;;;IA+fjB,SAASyB,YAAT,CAAsB9F,CAAtB,EAAyBvB,MAAzB,EAAiC;MAC7B,IAAI,CAACuB,CAAC,CAACzL,OAAF,EAAL,EAAkB;QACd,OAAOyL,CAAC,CAACyF,UAAF,GAAeM,WAAf,EAAP;;;MAGJtH,MAAM,GAAGuH,YAAY,CAACvH,MAAD,EAASuB,CAAC,CAACyF,UAAF,EAAT,CAArB;MACAN,eAAe,CAAC1G,MAAD,CAAf,GACI0G,eAAe,CAAC1G,MAAD,CAAf,IAA2BoH,kBAAkB,CAACpH,MAAD,CADjD;MAGA,OAAO0G,eAAe,CAAC1G,MAAD,CAAf,CAAwBuB,CAAxB,CAAP;;;IAGJ,SAASgG,YAAT,CAAsBvH,MAAtB,EAA8BC,MAA9B,EAAsC;MAClC,IAAIpgB,CAAC,GAAG,CAAR;;MAEA,SAAS2nB,2BAAT,CAAqC5R,KAArC,EAA4C;QACxC,OAAOqK,MAAM,CAACwH,cAAP,CAAsB7R,KAAtB,KAAgCA,KAAvC;;;MAGJ6Q,qBAAqB,CAACiB,SAAtB,GAAkC,CAAlC;;MACA,OAAO7nB,CAAC,IAAI,CAAL,IAAU4mB,qBAAqB,CAACkB,IAAtB,CAA2B3H,MAA3B,CAAjB,EAAqD;QACjDA,MAAM,GAAGA,MAAM,CAACmH,OAAP,CACLV,qBADK,EAELe,2BAFK,CAAT;QAIAf,qBAAqB,CAACiB,SAAtB,GAAkC,CAAlC;QACA7nB,CAAC,IAAI,CAAL;;;MAGJ,OAAOmgB,MAAP;;;IAGJ,IAAI4H,qBAAqB,GAAG;MACxBC,GAAG,EAAE,WADmB;MAExBC,EAAE,EAAE,QAFoB;MAGxBC,CAAC,EAAE,YAHqB;MAIxBC,EAAE,EAAE,cAJoB;MAKxBC,GAAG,EAAE,qBALmB;MAMxBC,IAAI,EAAE;KANV;;IASA,SAAST,cAAT,CAAwBlnB,GAAxB,EAA6B;MACzB,IAAIyf,MAAM,GAAG,KAAKmI,eAAL,CAAqB5nB,GAArB,CAAb;UACI6nB,WAAW,GAAG,KAAKD,eAAL,CAAqB5nB,GAAG,CAACuQ,WAAJ,EAArB,CADlB;;MAGA,IAAIkP,MAAM,IAAI,CAACoI,WAAf,EAA4B;QACxB,OAAOpI,MAAP;;;MAGJ,KAAKmI,eAAL,CAAqB5nB,GAArB,IAA4B6nB,WAAW,CAClClB,KADuB,CACjBV,gBADiB,EAEvB3iB,GAFuB,CAEnB,UAAUwkB,GAAV,EAAe;QAChB,IACIA,GAAG,KAAK,MAAR,IACAA,GAAG,KAAK,IADR,IAEAA,GAAG,KAAK,IAFR,IAGAA,GAAG,KAAK,MAJZ,EAKE;UACE,OAAOA,GAAG,CAACtX,KAAJ,CAAU,CAAV,CAAP;;;QAEJ,OAAOsX,GAAP;OAXoB,EAavB5nB,IAbuB,CAalB,EAbkB,CAA5B;MAeA,OAAO,KAAK0nB,eAAL,CAAqB5nB,GAArB,CAAP;;;IAGJ,IAAI+nB,kBAAkB,GAAG,cAAzB;;IAEA,SAAShB,WAAT,GAAuB;MACnB,OAAO,KAAKiB,YAAZ;;;IAGJ,IAAIC,cAAc,GAAG,IAArB;QACIC,6BAA6B,GAAG,SADpC;;IAGA,SAAS1B,OAAT,CAAiBhB,MAAjB,EAAyB;MACrB,OAAO,KAAK2C,QAAL,CAAcvB,OAAd,CAAsB,IAAtB,EAA4BpB,MAA5B,CAAP;;;IAGJ,IAAI4C,mBAAmB,GAAG;MACtBhN,MAAM,EAAE,OADc;MAEtBD,IAAI,EAAE,QAFgB;MAGtBkN,CAAC,EAAE,eAHmB;MAItBC,EAAE,EAAE,YAJkB;MAKtBtH,CAAC,EAAE,UALmB;MAMtBuH,EAAE,EAAE,YANkB;MAOtBC,CAAC,EAAE,SAPmB;MAQtBC,EAAE,EAAE,UARkB;MAStBC,CAAC,EAAE,OATmB;MAUtBC,EAAE,EAAE,SAVkB;MAWtBC,CAAC,EAAE,QAXmB;MAYtBC,EAAE,EAAE,UAZkB;MAatBC,CAAC,EAAE,SAbmB;MActBC,EAAE,EAAE,WAdkB;MAetBC,CAAC,EAAE,QAfmB;MAgBtBC,EAAE,EAAE;KAhBR;;IAmBA,SAASC,YAAT,CAAsB1D,MAAtB,EAA8B2D,aAA9B,EAA6ChnB,MAA7C,EAAqDinB,QAArD,EAA+D;MAC3D,IAAI/D,MAAM,GAAG,KAAKgE,aAAL,CAAmBlnB,MAAnB,CAAb;MACA,OAAO4hB,UAAU,CAACsB,MAAD,CAAV,GACDA,MAAM,CAACG,MAAD,EAAS2D,aAAT,EAAwBhnB,MAAxB,EAAgCinB,QAAhC,CADL,GAED/D,MAAM,CAACuB,OAAP,CAAe,KAAf,EAAsBpB,MAAtB,CAFN;;;IAKJ,SAAS8D,UAAT,CAAoBC,IAApB,EAA0BlE,MAA1B,EAAkC;MAC9B,IAAI5F,MAAM,GAAG,KAAK4J,aAAL,CAAmBE,IAAI,GAAG,CAAP,GAAW,QAAX,GAAsB,MAAzC,CAAb;MACA,OAAOxF,UAAU,CAACtE,MAAD,CAAV,GAAqBA,MAAM,CAAC4F,MAAD,CAA3B,GAAsC5F,MAAM,CAACmH,OAAP,CAAe,KAAf,EAAsBvB,MAAtB,CAA7C;;;IAGJ,IAAImE,OAAO,GAAG,EAAd;;IAEA,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,SAA5B,EAAuC;MACnC,IAAIC,SAAS,GAAGF,IAAI,CAACjO,WAAL,EAAhB;MACA+N,OAAO,CAACI,SAAD,CAAP,GAAqBJ,OAAO,CAACI,SAAS,GAAG,GAAb,CAAP,GAA2BJ,OAAO,CAACG,SAAD,CAAP,GAAqBD,IAArE;;;IAGJ,SAASG,cAAT,CAAwBC,KAAxB,EAA+B;MAC3B,OAAO,OAAOA,KAAP,KAAiB,QAAjB,GACDN,OAAO,CAACM,KAAD,CAAP,IAAkBN,OAAO,CAACM,KAAK,CAACrO,WAAN,EAAD,CADxB,GAED7U,SAFN;;;IAKJ,SAASmjB,oBAAT,CAA8BC,WAA9B,EAA2C;MACvC,IAAIC,eAAe,GAAG,EAAtB;UACIC,cADJ;UAEI7H,IAFJ;;MAIA,KAAKA,IAAL,IAAa2H,WAAb,EAA0B;QACtB,IAAIxL,UAAU,CAACwL,WAAD,EAAc3H,IAAd,CAAd,EAAmC;UAC/B6H,cAAc,GAAGL,cAAc,CAACxH,IAAD,CAA/B;;UACA,IAAI6H,cAAJ,EAAoB;YAChBD,eAAe,CAACC,cAAD,CAAf,GAAkCF,WAAW,CAAC3H,IAAD,CAA7C;;;;;MAKZ,OAAO4H,eAAP;;;IAGJ,IAAIE,UAAU,GAAG,EAAjB;;IAEA,SAASC,eAAT,CAAyBV,IAAzB,EAA+BW,QAA/B,EAAyC;MACrCF,UAAU,CAACT,IAAD,CAAV,GAAmBW,QAAnB;;;IAGJ,SAASC,mBAAT,CAA6BC,QAA7B,EAAuC;MACnC,IAAIT,KAAK,GAAG,EAAZ;UACIU,CADJ;;MAEA,KAAKA,CAAL,IAAUD,QAAV,EAAoB;QAChB,IAAI/L,UAAU,CAAC+L,QAAD,EAAWC,CAAX,CAAd,EAA6B;UACzBV,KAAK,CAACnqB,IAAN,CAAW;YAAE+pB,IAAI,EAAEc,CAAR;YAAWH,QAAQ,EAAEF,UAAU,CAACK,CAAD;WAA1C;;;;MAGRV,KAAK,CAACW,IAAN,CAAW,UAAUhM,CAAV,EAAaC,CAAb,EAAgB;QACvB,OAAOD,CAAC,CAAC4L,QAAF,GAAa3L,CAAC,CAAC2L,QAAtB;OADJ;MAGA,OAAOP,KAAP;;;IAGJ,SAASY,UAAT,CAAoBC,IAApB,EAA0B;MACtB,OAAQA,IAAI,GAAG,CAAP,KAAa,CAAb,IAAkBA,IAAI,GAAG,GAAP,KAAe,CAAlC,IAAwCA,IAAI,GAAG,GAAP,KAAe,CAA9D;;;IAGJ,SAASC,QAAT,CAAkBpF,MAAlB,EAA0B;MACtB,IAAIA,MAAM,GAAG,CAAb,EAAgB;;QAEZ,OAAOlhB,IAAI,CAACumB,IAAL,CAAUrF,MAAV,KAAqB,CAA5B;OAFJ,MAGO;QACH,OAAOlhB,IAAI,CAACwmB,KAAL,CAAWtF,MAAX,CAAP;;;;IAIR,SAASuF,KAAT,CAAeC,mBAAf,EAAoC;MAChC,IAAIC,aAAa,GAAG,CAACD,mBAArB;UACI5pB,KAAK,GAAG,CADZ;;MAGA,IAAI6pB,aAAa,KAAK,CAAlB,IAAuBC,QAAQ,CAACD,aAAD,CAAnC,EAAoD;QAChD7pB,KAAK,GAAGwpB,QAAQ,CAACK,aAAD,CAAhB;;;MAGJ,OAAO7pB,KAAP;;;IAGJ,SAAS+pB,UAAT,CAAoBzB,IAApB,EAA0B0B,QAA1B,EAAoC;MAChC,OAAO,UAAUhqB,KAAV,EAAiB;QACpB,IAAIA,KAAK,IAAI,IAAb,EAAmB;UACfiqB,KAAK,CAAC,IAAD,EAAO3B,IAAP,EAAatoB,KAAb,CAAL;UACAuI,KAAK,CAACuZ,YAAN,CAAmB,IAAnB,EAAyBkI,QAAzB;UACA,OAAO,IAAP;SAHJ,MAIO;UACH,OAAOlc,GAAG,CAAC,IAAD,EAAOwa,IAAP,CAAV;;OANR;;;IAWJ,SAASxa,GAAT,CAAaiW,GAAb,EAAkBuE,IAAlB,EAAwB;MACpB,OAAOvE,GAAG,CAAC5P,OAAJ,KACD4P,GAAG,CAACzD,EAAJ,CAAO,SAASyD,GAAG,CAACtC,MAAJ,GAAa,KAAb,GAAqB,EAA9B,IAAoC6G,IAA3C,GADC,GAEDzH,GAFN;;;IAKJ,SAASoJ,KAAT,CAAelG,GAAf,EAAoBuE,IAApB,EAA0BtoB,KAA1B,EAAiC;MAC7B,IAAI+jB,GAAG,CAAC5P,OAAJ,MAAiB,CAACkM,KAAK,CAACrgB,KAAD,CAA3B,EAAoC;QAChC,IACIsoB,IAAI,KAAK,UAAT,IACAgB,UAAU,CAACvF,GAAG,CAACwF,IAAJ,EAAD,CADV,IAEAxF,GAAG,CAACmG,KAAJ,OAAgB,CAFhB,IAGAnG,GAAG,CAACoG,IAAJ,OAAe,EAJnB,EAKE;UACEnqB,KAAK,GAAG2pB,KAAK,CAAC3pB,KAAD,CAAb;;UACA+jB,GAAG,CAACzD,EAAJ,CAAO,SAASyD,GAAG,CAACtC,MAAJ,GAAa,KAAb,GAAqB,EAA9B,IAAoC6G,IAA3C,EACItoB,KADJ,EAEI+jB,GAAG,CAACmG,KAAJ,EAFJ,EAGIE,WAAW,CAACpqB,KAAD,EAAQ+jB,GAAG,CAACmG,KAAJ,EAAR,CAHf;SAPJ,MAYO;UACHnG,GAAG,CAACzD,EAAJ,CAAO,SAASyD,GAAG,CAACtC,MAAJ,GAAa,KAAb,GAAqB,EAA9B,IAAoC6G,IAA3C,EAAiDtoB,KAAjD;;;KAztBK;;;IAguBjB,SAASqqB,SAAT,CAAmB3B,KAAnB,EAA0B;MACtBA,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;;MACA,IAAI/F,UAAU,CAAC,KAAK+F,KAAL,CAAD,CAAd,EAA6B;QACzB,OAAO,KAAKA,KAAL,GAAP;;;MAEJ,OAAO,IAAP;;;IAGJ,SAAS4B,SAAT,CAAmB5B,KAAnB,EAA0B1oB,KAA1B,EAAiC;MAC7B,IAAI,OAAO0oB,KAAP,KAAiB,QAArB,EAA+B;QAC3BA,KAAK,GAAGC,oBAAoB,CAACD,KAAD,CAA5B;QACA,IAAI6B,WAAW,GAAGrB,mBAAmB,CAACR,KAAD,CAArC;YACIxqB,CADJ;YAEIssB,cAAc,GAAGD,WAAW,CAACnsB,MAFjC;;QAGA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGssB,cAAhB,EAAgCtsB,CAAC,EAAjC,EAAqC;UACjC,KAAKqsB,WAAW,CAACrsB,CAAD,CAAX,CAAeoqB,IAApB,EAA0BI,KAAK,CAAC6B,WAAW,CAACrsB,CAAD,CAAX,CAAeoqB,IAAhB,CAA/B;;OANR,MAQO;QACHI,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;;QACA,IAAI/F,UAAU,CAAC,KAAK+F,KAAL,CAAD,CAAd,EAA6B;UACzB,OAAO,KAAKA,KAAL,EAAY1oB,KAAZ,CAAP;;;;MAGR,OAAO,IAAP;;;IAGJ,IAAIyqB,MAAM,GAAG,IAAb;;IACIC,MAAM,GAAG,MADb;;IAEIC,MAAM,GAAG,OAFb;;IAGIC,MAAM,GAAG,OAHb;;IAIIC,MAAM,GAAG,YAJb;;IAKIC,SAAS,GAAG,OALhB;;IAMIC,SAAS,GAAG,WANhB;;IAOIC,SAAS,GAAG,eAPhB;;IAQIC,SAAS,GAAG,SARhB;;IASIC,SAAS,GAAG,SAThB;;IAUIC,SAAS,GAAG,cAVhB;;IAWIC,aAAa,GAAG,KAXpB;;IAYIC,WAAW,GAAG,UAZlB;;IAaIC,WAAW,GAAG,oBAblB;;IAcIC,gBAAgB,GAAG,yBAdvB;;IAeIC,cAAc,GAAG,sBAfrB;;;;IAkBIC,SAAS,GACL,uJAnBR;QAoBIC,OApBJ;IAsBAA,OAAO,GAAG,EAAV;;IAEA,SAASC,aAAT,CAAuBzG,KAAvB,EAA8B0G,KAA9B,EAAqCC,WAArC,EAAkD;MAC9CH,OAAO,CAACxG,KAAD,CAAP,GAAiBvC,UAAU,CAACiJ,KAAD,CAAV,GACXA,KADW,GAEX,UAAUE,QAAV,EAAoBzG,UAApB,EAAgC;QAC5B,OAAOyG,QAAQ,IAAID,WAAZ,GAA0BA,WAA1B,GAAwCD,KAA/C;OAHV;;;IAOJ,SAASG,qBAAT,CAA+B7G,KAA/B,EAAsCrD,MAAtC,EAA8C;MAC1C,IAAI,CAACzE,UAAU,CAACsO,OAAD,EAAUxG,KAAV,CAAf,EAAiC;QAC7B,OAAO,IAAInC,MAAJ,CAAWiJ,cAAc,CAAC9G,KAAD,CAAzB,CAAP;;;MAGJ,OAAOwG,OAAO,CAACxG,KAAD,CAAP,CAAerD,MAAM,CAACpB,OAAtB,EAA+BoB,MAAM,CAACF,OAAtC,CAAP;KA/xBa;;;IAmyBjB,SAASqK,cAAT,CAAwB/E,CAAxB,EAA2B;MACvB,OAAOgF,WAAW,CACdhF,CAAC,CACIzB,OADL,CACa,IADb,EACmB,EADnB,EAEKA,OAFL,CAGQ,qCAHR,EAIQ,UAAU0G,OAAV,EAAmBC,EAAnB,EAAuBC,EAAvB,EAA2BC,EAA3B,EAA+BC,EAA/B,EAAmC;QAC/B,OAAOH,EAAE,IAAIC,EAAN,IAAYC,EAAZ,IAAkBC,EAAzB;OALZ,CADc,CAAlB;;;IAYJ,SAASL,WAAT,CAAqBhF,CAArB,EAAwB;MACpB,OAAOA,CAAC,CAACzB,OAAF,CAAU,wBAAV,EAAoC,MAApC,CAAP;;;IAGJ,IAAI+G,MAAM,GAAG,EAAb;;IAEA,SAASC,aAAT,CAAuBtH,KAAvB,EAA8B7X,QAA9B,EAAwC;MACpC,IAAInP,CAAJ;UACIkE,IAAI,GAAGiL,QADX;UAEIof,QAFJ;;MAGA,IAAI,OAAOvH,KAAP,KAAiB,QAArB,EAA+B;QAC3BA,KAAK,GAAG,CAACA,KAAD,CAAR;;;MAEJ,IAAItH,QAAQ,CAACvQ,QAAD,CAAZ,EAAwB;QACpBjL,IAAI,GAAG,cAAU6R,KAAV,EAAiB5R,KAAjB,EAAwB;UAC3BA,KAAK,CAACgL,QAAD,CAAL,GAAkBsc,KAAK,CAAC1V,KAAD,CAAvB;SADJ;;;MAIJwY,QAAQ,GAAGvH,KAAK,CAAC9mB,MAAjB;;MACA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGuuB,QAAhB,EAA0BvuB,CAAC,EAA3B,EAA+B;QAC3BquB,MAAM,CAACrH,KAAK,CAAChnB,CAAD,CAAN,CAAN,GAAmBkE,IAAnB;;;;IAIR,SAASsqB,iBAAT,CAA2BxH,KAA3B,EAAkC7X,QAAlC,EAA4C;MACxCmf,aAAa,CAACtH,KAAD,EAAQ,UAAUjR,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgCqD,KAAhC,EAAuC;QACxDrD,MAAM,CAAC8K,EAAP,GAAY9K,MAAM,CAAC8K,EAAP,IAAa,EAAzB;QACAtf,QAAQ,CAAC4G,KAAD,EAAQ4N,MAAM,CAAC8K,EAAf,EAAmB9K,MAAnB,EAA2BqD,KAA3B,CAAR;OAFS,CAAb;;;IAMJ,SAAS0H,uBAAT,CAAiC1H,KAAjC,EAAwCjR,KAAxC,EAA+C4N,MAA/C,EAAuD;MACnD,IAAI5N,KAAK,IAAI,IAAT,IAAiBmJ,UAAU,CAACmP,MAAD,EAASrH,KAAT,CAA/B,EAAgD;QAC5CqH,MAAM,CAACrH,KAAD,CAAN,CAAcjR,KAAd,EAAqB4N,MAAM,CAACgL,EAA5B,EAAgChL,MAAhC,EAAwCqD,KAAxC;;;;IAIR,IAAI4H,IAAI,GAAG,CAAX;QACIC,KAAK,GAAG,CADZ;QAEIC,IAAI,GAAG,CAFX;QAGIC,IAAI,GAAG,CAHX;QAIIC,MAAM,GAAG,CAJb;QAKIC,MAAM,GAAG,CALb;QAMIC,WAAW,GAAG,CANlB;QAOIC,IAAI,GAAG,CAPX;QAQIC,OAAO,GAAG,CARd;;IAUA,SAASC,GAAT,CAAaC,CAAb,EAAgBC,CAAhB,EAAmB;MACf,OAAO,CAAED,CAAC,GAAGC,CAAL,GAAUA,CAAX,IAAgBA,CAAvB;;;IAGJ,IAAIC,OAAJ;;IAEA,IAAIlvB,KAAK,CAACkO,SAAN,CAAgBghB,OAApB,EAA6B;MACzBA,OAAO,GAAGlvB,KAAK,CAACkO,SAAN,CAAgBghB,OAA1B;KADJ,MAEO;MACHA,OAAO,GAAG,iBAAU5a,CAAV,EAAa;;QAEnB,IAAI5U,CAAJ;;QACA,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKE,MAArB,EAA6B,EAAEF,CAA/B,EAAkC;UAC9B,IAAI,KAAKA,CAAL,MAAY4U,CAAhB,EAAmB;YACf,OAAO5U,CAAP;;;;QAGR,OAAO,CAAC,CAAR;OARJ;;;IAYJ,SAASksB,WAAT,CAAqBb,IAArB,EAA2BW,KAA3B,EAAkC;MAC9B,IAAI7J,KAAK,CAACkJ,IAAD,CAAL,IAAelJ,KAAK,CAAC6J,KAAD,CAAxB,EAAiC;QAC7B,OAAOrJ,GAAP;;;MAEJ,IAAI8M,QAAQ,GAAGJ,GAAG,CAACrD,KAAD,EAAQ,EAAR,CAAlB;MACAX,IAAI,IAAI,CAACW,KAAK,GAAGyD,QAAT,IAAqB,EAA7B;MACA,OAAOA,QAAQ,KAAK,CAAb,GACDrE,UAAU,CAACC,IAAD,CAAV,GACI,EADJ,GAEI,EAHH,GAID,KAAOoE,QAAQ,GAAG,CAAZ,GAAiB,CAJ7B;KA13Ba;;;IAm4BjB1I,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,IAAjB,EAAuB,YAAY;MAC7C,OAAO,KAAKiF,KAAL,KAAe,CAAtB;KADU,CAAd;IAIAjF,cAAc,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,UAAU5G,MAAV,EAAkB;MAC1C,OAAO,KAAKgH,UAAL,GAAkBuI,WAAlB,CAA8B,IAA9B,EAAoCvP,MAApC,CAAP;KADU,CAAd;IAIA4G,cAAc,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ,EAAe,UAAU5G,MAAV,EAAkB;MAC3C,OAAO,KAAKgH,UAAL,GAAkBwI,MAAlB,CAAyB,IAAzB,EAA+BxP,MAA/B,CAAP;KADU,CAAd,CA34BiB;;IAi5BjBgK,YAAY,CAAC,OAAD,EAAU,GAAV,CAAZ,CAj5BiB;;IAq5BjBW,eAAe,CAAC,OAAD,EAAU,CAAV,CAAf,CAr5BiB;;IAy5BjB2C,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,KAAD,EAAQ,UAAUG,QAAV,EAAoBxN,MAApB,EAA4B;MAC7C,OAAOA,MAAM,CAACwP,gBAAP,CAAwBhC,QAAxB,CAAP;KADS,CAAb;IAGAH,aAAa,CAAC,MAAD,EAAS,UAAUG,QAAV,EAAoBxN,MAApB,EAA4B;MAC9C,OAAOA,MAAM,CAACyP,WAAP,CAAmBjC,QAAnB,CAAP;KADS,CAAb;IAIAU,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAc,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwB;MAC/CA,KAAK,CAAC0qB,KAAD,CAAL,GAAepD,KAAK,CAAC1V,KAAD,CAAL,GAAe,CAA9B;KADS,CAAb;IAIAuY,aAAa,CAAC,CAAC,KAAD,EAAQ,MAAR,CAAD,EAAkB,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgCqD,KAAhC,EAAuC;MAClE,IAAIgF,KAAK,GAAGrI,MAAM,CAACF,OAAP,CAAeqM,WAAf,CAA2B/Z,KAA3B,EAAkCiR,KAAlC,EAAyCrD,MAAM,CAACpB,OAAhD,CAAZ,CADkE;;;MAGlE,IAAIyJ,KAAK,IAAI,IAAb,EAAmB;QACf7nB,KAAK,CAAC0qB,KAAD,CAAL,GAAe7C,KAAf;OADJ,MAEO;QACHvK,eAAe,CAACkC,MAAD,CAAf,CAAwB3C,YAAxB,GAAuCjL,KAAvC;;KANK,CAAb,CAt6BiB;;IAk7BjB,IAAIga,mBAAmB,GACf,wFAAwFC,KAAxF,CACI,GADJ,CADR;QAIIC,wBAAwB,GACpB,kDAAkDD,KAAlD,CAAwD,GAAxD,CALR;QAMIE,gBAAgB,GAAG,+BANvB;QAOIC,uBAAuB,GAAG5C,SAP9B;QAQI6C,kBAAkB,GAAG7C,SARzB;;IAUA,SAAS8C,YAAT,CAAsB3O,CAAtB,EAAyBvB,MAAzB,EAAiC;MAC7B,IAAI,CAACuB,CAAL,EAAQ;QACJ,OAAOnhB,OAAO,CAAC,KAAK+vB,OAAN,CAAP,GACD,KAAKA,OADJ,GAED,KAAKA,OAAL,CAAa,YAAb,CAFN;;;MAIJ,OAAO/vB,OAAO,CAAC,KAAK+vB,OAAN,CAAP,GACD,KAAKA,OAAL,CAAa5O,CAAC,CAACsK,KAAF,EAAb,CADC,GAED,KAAKsE,OAAL,CACI,CAAC,KAAKA,OAAL,CAAaC,QAAb,IAAyBL,gBAA1B,EAA4CpI,IAA5C,CAAiD3H,MAAjD,IACM,QADN,GAEM,YAHV,EAIEuB,CAAC,CAACsK,KAAF,EAJF,CAFN;;;IASJ,SAASwE,iBAAT,CAA2B9O,CAA3B,EAA8BvB,MAA9B,EAAsC;MAClC,IAAI,CAACuB,CAAL,EAAQ;QACJ,OAAOnhB,OAAO,CAAC,KAAKkwB,YAAN,CAAP,GACD,KAAKA,YADJ,GAED,KAAKA,YAAL,CAAkB,YAAlB,CAFN;;;MAIJ,OAAOlwB,OAAO,CAAC,KAAKkwB,YAAN,CAAP,GACD,KAAKA,YAAL,CAAkB/O,CAAC,CAACsK,KAAF,EAAlB,CADC,GAED,KAAKyE,YAAL,CACIP,gBAAgB,CAACpI,IAAjB,CAAsB3H,MAAtB,IAAgC,QAAhC,GAA2C,YAD/C,EAEEuB,CAAC,CAACsK,KAAF,EAFF,CAFN;;;IAOJ,SAAS0E,iBAAT,CAA2BC,SAA3B,EAAsCxQ,MAAtC,EAA8CE,MAA9C,EAAsD;MAClD,IAAIrgB,CAAJ;UACI4wB,EADJ;UAEI/K,GAFJ;UAGIgL,GAAG,GAAGF,SAAS,CAACG,iBAAV,EAHV;;MAIA,IAAI,CAAC,KAAKC,YAAV,EAAwB;;QAEpB,KAAKA,YAAL,GAAoB,EAApB;QACA,KAAKC,gBAAL,GAAwB,EAAxB;QACA,KAAKC,iBAAL,GAAyB,EAAzB;;QACA,KAAKjxB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoB,EAAEA,CAAtB,EAAyB;UACrB6lB,GAAG,GAAG3F,SAAS,CAAC,CAAC,IAAD,EAAOlgB,CAAP,CAAD,CAAf;UACA,KAAKixB,iBAAL,CAAuBjxB,CAAvB,IAA4B,KAAK0vB,WAAL,CACxB7J,GADwB,EAExB,EAFwB,EAG1BiL,iBAH0B,EAA5B;UAIA,KAAKE,gBAAL,CAAsBhxB,CAAtB,IAA2B,KAAK2vB,MAAL,CAAY9J,GAAZ,EAAiB,EAAjB,EAAqBiL,iBAArB,EAA3B;;;;MAIR,IAAIzQ,MAAJ,EAAY;QACR,IAAIF,MAAM,KAAK,KAAf,EAAsB;UAClByQ,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKswB,iBAAlB,EAAqCJ,GAArC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;SAFJ,MAGO;UACHA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKqwB,gBAAlB,EAAoCH,GAApC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;;OANR,MAQO;QACH,IAAIzQ,MAAM,KAAK,KAAf,EAAsB;UAClByQ,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKswB,iBAAlB,EAAqCJ,GAArC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKqwB,gBAAlB,EAAoCH,GAApC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;SANJ,MAOO;UACHA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKqwB,gBAAlB,EAAoCH,GAApC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKswB,iBAAlB,EAAqCJ,GAArC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;;;;;IAKZ,SAASM,iBAAT,CAA2BP,SAA3B,EAAsCxQ,MAAtC,EAA8CE,MAA9C,EAAsD;MAClD,IAAIrgB,CAAJ,EAAO6lB,GAAP,EAAY6H,KAAZ;;MAEA,IAAI,KAAKyD,iBAAT,EAA4B;QACxB,OAAOT,iBAAiB,CAAC/vB,IAAlB,CAAuB,IAAvB,EAA6BgwB,SAA7B,EAAwCxQ,MAAxC,EAAgDE,MAAhD,CAAP;;;MAGJ,IAAI,CAAC,KAAK0Q,YAAV,EAAwB;QACpB,KAAKA,YAAL,GAAoB,EAApB;QACA,KAAKC,gBAAL,GAAwB,EAAxB;QACA,KAAKC,iBAAL,GAAyB,EAAzB;OAV8C;;;;;MAgBlD,KAAKjxB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;;QAErB6lB,GAAG,GAAG3F,SAAS,CAAC,CAAC,IAAD,EAAOlgB,CAAP,CAAD,CAAf;;QACA,IAAIqgB,MAAM,IAAI,CAAC,KAAK2Q,gBAAL,CAAsBhxB,CAAtB,CAAf,EAAyC;UACrC,KAAKgxB,gBAAL,CAAsBhxB,CAAtB,IAA2B,IAAI6kB,MAAJ,CACvB,MAAM,KAAK8K,MAAL,CAAY9J,GAAZ,EAAiB,EAAjB,EAAqByB,OAArB,CAA6B,GAA7B,EAAkC,EAAlC,CAAN,GAA8C,GADvB,EAEvB,GAFuB,CAA3B;UAIA,KAAK2J,iBAAL,CAAuBjxB,CAAvB,IAA4B,IAAI6kB,MAAJ,CACxB,MAAM,KAAK6K,WAAL,CAAiB7J,GAAjB,EAAsB,EAAtB,EAA0ByB,OAA1B,CAAkC,GAAlC,EAAuC,EAAvC,CAAN,GAAmD,GAD3B,EAExB,GAFwB,CAA5B;;;QAKJ,IAAI,CAACjH,MAAD,IAAW,CAAC,KAAK0Q,YAAL,CAAkB/wB,CAAlB,CAAhB,EAAsC;UAClC0tB,KAAK,GACD,MAAM,KAAKiC,MAAL,CAAY9J,GAAZ,EAAiB,EAAjB,CAAN,GAA6B,IAA7B,GAAoC,KAAK6J,WAAL,CAAiB7J,GAAjB,EAAsB,EAAtB,CADxC;UAEA,KAAKkL,YAAL,CAAkB/wB,CAAlB,IAAuB,IAAI6kB,MAAJ,CAAW6I,KAAK,CAACpG,OAAN,CAAc,GAAd,EAAmB,EAAnB,CAAX,EAAmC,GAAnC,CAAvB;SAhBiB;;;QAmBrB,IACIjH,MAAM,IACNF,MAAM,KAAK,MADX,IAEA,KAAK6Q,gBAAL,CAAsBhxB,CAAtB,EAAyB8nB,IAAzB,CAA8B6I,SAA9B,CAHJ,EAIE;UACE,OAAO3wB,CAAP;SALJ,MAMO,IACHqgB,MAAM,IACNF,MAAM,KAAK,KADX,IAEA,KAAK8Q,iBAAL,CAAuBjxB,CAAvB,EAA0B8nB,IAA1B,CAA+B6I,SAA/B,CAHG,EAIL;UACE,OAAO3wB,CAAP;SALG,MAMA,IAAI,CAACqgB,MAAD,IAAW,KAAK0Q,YAAL,CAAkB/wB,CAAlB,EAAqB8nB,IAArB,CAA0B6I,SAA1B,CAAf,EAAqD;UACxD,OAAO3wB,CAAP;;;KAvjCK;;;IA8jCjB,SAASoxB,QAAT,CAAkBvL,GAAlB,EAAuB/jB,KAAvB,EAA8B;MAC1B,IAAIuvB,UAAJ;;MAEA,IAAI,CAACxL,GAAG,CAAC5P,OAAJ,EAAL,EAAoB;;QAEhB,OAAO4P,GAAP;;;MAGJ,IAAI,OAAO/jB,KAAP,KAAiB,QAArB,EAA+B;QAC3B,IAAI,QAAQgmB,IAAR,CAAahmB,KAAb,CAAJ,EAAyB;UACrBA,KAAK,GAAG2pB,KAAK,CAAC3pB,KAAD,CAAb;SADJ,MAEO;UACHA,KAAK,GAAG+jB,GAAG,CAACsB,UAAJ,GAAiB2I,WAAjB,CAA6BhuB,KAA7B,CAAR,CADG;;UAGH,IAAI,CAAC4d,QAAQ,CAAC5d,KAAD,CAAb,EAAsB;YAClB,OAAO+jB,GAAP;;;;;MAKZwL,UAAU,GAAGrsB,IAAI,CAACG,GAAL,CAAS0gB,GAAG,CAACoG,IAAJ,EAAT,EAAqBC,WAAW,CAACrG,GAAG,CAACwF,IAAJ,EAAD,EAAavpB,KAAb,CAAhC,CAAb;;MACA+jB,GAAG,CAACzD,EAAJ,CAAO,SAASyD,GAAG,CAACtC,MAAJ,GAAa,KAAb,GAAqB,EAA9B,IAAoC,OAA3C,EAAoDzhB,KAApD,EAA2DuvB,UAA3D;;MACA,OAAOxL,GAAP;;;IAGJ,SAASyL,WAAT,CAAqBxvB,KAArB,EAA4B;MACxB,IAAIA,KAAK,IAAI,IAAb,EAAmB;QACfsvB,QAAQ,CAAC,IAAD,EAAOtvB,KAAP,CAAR;QACAuI,KAAK,CAACuZ,YAAN,CAAmB,IAAnB,EAAyB,IAAzB;QACA,OAAO,IAAP;OAHJ,MAIO;QACH,OAAOhU,GAAG,CAAC,IAAD,EAAO,OAAP,CAAV;;;;IAIR,SAAS2hB,cAAT,GAA0B;MACtB,OAAOrF,WAAW,CAAC,KAAKb,IAAL,EAAD,EAAc,KAAKW,KAAL,EAAd,CAAlB;;;IAGJ,SAAS4D,gBAAT,CAA0BhC,QAA1B,EAAoC;MAChC,IAAI,KAAKuD,iBAAT,EAA4B;QACxB,IAAI,CAACjS,UAAU,CAAC,IAAD,EAAO,cAAP,CAAf,EAAuC;UACnCsS,kBAAkB,CAAC7wB,IAAnB,CAAwB,IAAxB;;;QAEJ,IAAIitB,QAAJ,EAAc;UACV,OAAO,KAAK6D,uBAAZ;SADJ,MAEO;UACH,OAAO,KAAKC,iBAAZ;;OAPR,MASO;QACH,IAAI,CAACxS,UAAU,CAAC,IAAD,EAAO,mBAAP,CAAf,EAA4C;UACxC,KAAKwS,iBAAL,GAAyBvB,uBAAzB;;;QAEJ,OAAO,KAAKsB,uBAAL,IAAgC7D,QAAhC,GACD,KAAK6D,uBADJ,GAED,KAAKC,iBAFX;;;;IAMR,SAAS7B,WAAT,CAAqBjC,QAArB,EAA+B;MAC3B,IAAI,KAAKuD,iBAAT,EAA4B;QACxB,IAAI,CAACjS,UAAU,CAAC,IAAD,EAAO,cAAP,CAAf,EAAuC;UACnCsS,kBAAkB,CAAC7wB,IAAnB,CAAwB,IAAxB;;;QAEJ,IAAIitB,QAAJ,EAAc;UACV,OAAO,KAAK+D,kBAAZ;SADJ,MAEO;UACH,OAAO,KAAKC,YAAZ;;OAPR,MASO;QACH,IAAI,CAAC1S,UAAU,CAAC,IAAD,EAAO,cAAP,CAAf,EAAuC;UACnC,KAAK0S,YAAL,GAAoBxB,kBAApB;;;QAEJ,OAAO,KAAKuB,kBAAL,IAA2B/D,QAA3B,GACD,KAAK+D,kBADJ,GAED,KAAKC,YAFX;;;;IAMR,SAASJ,kBAAT,GAA8B;MAC1B,SAASK,SAAT,CAAmB1S,CAAnB,EAAsBC,CAAtB,EAAyB;QACrB,OAAOA,CAAC,CAAClf,MAAF,GAAWif,CAAC,CAACjf,MAApB;;;MAGJ,IAAI4xB,WAAW,GAAG,EAAlB;UACIC,UAAU,GAAG,EADjB;UAEIC,WAAW,GAAG,EAFlB;UAGIhyB,CAHJ;UAII6lB,GAJJ;;MAKA,KAAK7lB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;;QAErB6lB,GAAG,GAAG3F,SAAS,CAAC,CAAC,IAAD,EAAOlgB,CAAP,CAAD,CAAf;QACA8xB,WAAW,CAACzxB,IAAZ,CAAiB,KAAKqvB,WAAL,CAAiB7J,GAAjB,EAAsB,EAAtB,CAAjB;QACAkM,UAAU,CAAC1xB,IAAX,CAAgB,KAAKsvB,MAAL,CAAY9J,GAAZ,EAAiB,EAAjB,CAAhB;QACAmM,WAAW,CAAC3xB,IAAZ,CAAiB,KAAKsvB,MAAL,CAAY9J,GAAZ,EAAiB,EAAjB,CAAjB;QACAmM,WAAW,CAAC3xB,IAAZ,CAAiB,KAAKqvB,WAAL,CAAiB7J,GAAjB,EAAsB,EAAtB,CAAjB;OAhBsB;;;;MAoB1BiM,WAAW,CAAC3G,IAAZ,CAAiB0G,SAAjB;MACAE,UAAU,CAAC5G,IAAX,CAAgB0G,SAAhB;MACAG,WAAW,CAAC7G,IAAZ,CAAiB0G,SAAjB;;MACA,KAAK7xB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;QACrB8xB,WAAW,CAAC9xB,CAAD,CAAX,GAAiB+tB,WAAW,CAAC+D,WAAW,CAAC9xB,CAAD,CAAZ,CAA5B;QACA+xB,UAAU,CAAC/xB,CAAD,CAAV,GAAgB+tB,WAAW,CAACgE,UAAU,CAAC/xB,CAAD,CAAX,CAA3B;;;MAEJ,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;QACrBgyB,WAAW,CAAChyB,CAAD,CAAX,GAAiB+tB,WAAW,CAACiE,WAAW,CAAChyB,CAAD,CAAZ,CAA5B;;;MAGJ,KAAK4xB,YAAL,GAAoB,IAAI/M,MAAJ,CAAW,OAAOmN,WAAW,CAACpxB,IAAZ,CAAiB,GAAjB,CAAP,GAA+B,GAA1C,EAA+C,GAA/C,CAApB;MACA,KAAK8wB,iBAAL,GAAyB,KAAKE,YAA9B;MACA,KAAKD,kBAAL,GAA0B,IAAI9M,MAAJ,CACtB,OAAOkN,UAAU,CAACnxB,IAAX,CAAgB,GAAhB,CAAP,GAA8B,GADR,EAEtB,GAFsB,CAA1B;MAIA,KAAK6wB,uBAAL,GAA+B,IAAI5M,MAAJ,CAC3B,OAAOiN,WAAW,CAAClxB,IAAZ,CAAiB,GAAjB,CAAP,GAA+B,GADJ,EAE3B,GAF2B,CAA/B;KAlrCa;;;IA0rCjBmmB,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,YAAY;MAClC,IAAI2C,CAAC,GAAG,KAAK2B,IAAL,EAAR;MACA,OAAO3B,CAAC,IAAI,IAAL,GAAYzD,QAAQ,CAACyD,CAAD,EAAI,CAAJ,CAApB,GAA6B,MAAMA,CAA1C;KAFU,CAAd;IAKA3C,cAAc,CAAC,CAAD,EAAI,CAAC,IAAD,EAAO,CAAP,CAAJ,EAAe,CAAf,EAAkB,YAAY;MACxC,OAAO,KAAKsE,IAAL,KAAc,GAArB;KADU,CAAd;IAIAtE,cAAc,CAAC,CAAD,EAAI,CAAC,MAAD,EAAS,CAAT,CAAJ,EAAiB,CAAjB,EAAoB,MAApB,CAAd;IACAA,cAAc,CAAC,CAAD,EAAI,CAAC,OAAD,EAAU,CAAV,CAAJ,EAAkB,CAAlB,EAAqB,MAArB,CAAd;IACAA,cAAc,CAAC,CAAD,EAAI,CAAC,QAAD,EAAW,CAAX,EAAc,IAAd,CAAJ,EAAyB,CAAzB,EAA4B,MAA5B,CAAd,CArsCiB;;IAysCjBoD,YAAY,CAAC,MAAD,EAAS,GAAT,CAAZ,CAzsCiB;;IA6sCjBW,eAAe,CAAC,MAAD,EAAS,CAAT,CAAf,CA7sCiB;;IAitCjB2C,aAAa,CAAC,GAAD,EAAMN,WAAN,CAAb;IACAM,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,MAAD,EAAST,SAAT,EAAoBN,MAApB,CAAb;IACAe,aAAa,CAAC,OAAD,EAAUR,SAAV,EAAqBN,MAArB,CAAb;IACAc,aAAa,CAAC,QAAD,EAAWR,SAAX,EAAsBN,MAAtB,CAAb;IAEA2B,aAAa,CAAC,CAAC,OAAD,EAAU,QAAV,CAAD,EAAsBM,IAAtB,CAAb;IACAN,aAAa,CAAC,MAAD,EAAS,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwB;MAC1CA,KAAK,CAACyqB,IAAD,CAAL,GACI7Y,KAAK,CAAC7V,MAAN,KAAiB,CAAjB,GAAqBmK,KAAK,CAAC4nB,iBAAN,CAAwBlc,KAAxB,CAArB,GAAsD0V,KAAK,CAAC1V,KAAD,CAD/D;KADS,CAAb;IAIAuY,aAAa,CAAC,IAAD,EAAO,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwB;MACxCA,KAAK,CAACyqB,IAAD,CAAL,GAAcvkB,KAAK,CAAC4nB,iBAAN,CAAwBlc,KAAxB,CAAd;KADS,CAAb;IAGAuY,aAAa,CAAC,GAAD,EAAM,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwB;MACvCA,KAAK,CAACyqB,IAAD,CAAL,GAAcsD,QAAQ,CAACnc,KAAD,EAAQ,EAAR,CAAtB;KADS,CAAb,CA/tCiB;;IAquCjB,SAASoc,UAAT,CAAoB9G,IAApB,EAA0B;MACtB,OAAOD,UAAU,CAACC,IAAD,CAAV,GAAmB,GAAnB,GAAyB,GAAhC;KAtuCa;;;IA2uCjBhhB,KAAK,CAAC4nB,iBAAN,GAA0B,UAAUlc,KAAV,EAAiB;MACvC,OAAO0V,KAAK,CAAC1V,KAAD,CAAL,IAAgB0V,KAAK,CAAC1V,KAAD,CAAL,GAAe,EAAf,GAAoB,IAApB,GAA2B,IAA3C,CAAP;KADJ,CA3uCiB;;;IAivCjB,IAAIqc,UAAU,GAAGvG,UAAU,CAAC,UAAD,EAAa,IAAb,CAA3B;;IAEA,SAASwG,aAAT,GAAyB;MACrB,OAAOjH,UAAU,CAAC,KAAKC,IAAL,EAAD,CAAjB;;;IAGJ,SAASiH,UAAT,CAAoB5I,CAApB,EAAuBhI,CAAvB,EAA0B0H,CAA1B,EAA6BF,CAA7B,EAAgCM,CAAhC,EAAmCT,CAAnC,EAAsCwJ,EAAtC,EAA0C;;;MAGtC,IAAItG,IAAJ,CAHsC;;MAKtC,IAAIvC,CAAC,GAAG,GAAJ,IAAWA,CAAC,IAAI,CAApB,EAAuB;;QAEnBuC,IAAI,GAAG,IAAIrM,IAAJ,CAAS8J,CAAC,GAAG,GAAb,EAAkBhI,CAAlB,EAAqB0H,CAArB,EAAwBF,CAAxB,EAA2BM,CAA3B,EAA8BT,CAA9B,EAAiCwJ,EAAjC,CAAP;;QACA,IAAI3G,QAAQ,CAACK,IAAI,CAACuG,WAAL,EAAD,CAAZ,EAAkC;UAC9BvG,IAAI,CAACwG,WAAL,CAAiB/I,CAAjB;;OAJR,MAMO;QACHuC,IAAI,GAAG,IAAIrM,IAAJ,CAAS8J,CAAT,EAAYhI,CAAZ,EAAe0H,CAAf,EAAkBF,CAAlB,EAAqBM,CAArB,EAAwBT,CAAxB,EAA2BwJ,EAA3B,CAAP;;;MAGJ,OAAOtG,IAAP;;;IAGJ,SAASyG,aAAT,CAAuBhJ,CAAvB,EAA0B;MACtB,IAAIuC,IAAJ,EAAUpb,IAAV,CADsB;;MAGtB,IAAI6Y,CAAC,GAAG,GAAJ,IAAWA,CAAC,IAAI,CAApB,EAAuB;QACnB7Y,IAAI,GAAGvQ,KAAK,CAACkO,SAAN,CAAgB0C,KAAhB,CAAsBvQ,IAAtB,CAA2BV,SAA3B,CAAP,CADmB;;QAGnB4Q,IAAI,CAAC,CAAD,CAAJ,GAAU6Y,CAAC,GAAG,GAAd;QACAuC,IAAI,GAAG,IAAIrM,IAAJ,CAASA,IAAI,CAAC+S,GAAL,CAASlyB,KAAT,CAAe,IAAf,EAAqBoQ,IAArB,CAAT,CAAP;;QACA,IAAI+a,QAAQ,CAACK,IAAI,CAAC2G,cAAL,EAAD,CAAZ,EAAqC;UACjC3G,IAAI,CAAC4G,cAAL,CAAoBnJ,CAApB;;OANR,MAQO;QACHuC,IAAI,GAAG,IAAIrM,IAAJ,CAASA,IAAI,CAAC+S,GAAL,CAASlyB,KAAT,CAAe,IAAf,EAAqBR,SAArB,CAAT,CAAP;;;MAGJ,OAAOgsB,IAAP;KAxxCa;;;IA4xCjB,SAAS6G,eAAT,CAAyBzH,IAAzB,EAA+B0H,GAA/B,EAAoCC,GAApC,EAAyC;MACrC;MACIC,GAAG,GAAG,IAAIF,GAAJ,GAAUC,GADpB;;MAGIE,KAAK,GAAG,CAAC,IAAIR,aAAa,CAACrH,IAAD,EAAO,CAAP,EAAU4H,GAAV,CAAb,CAA4BE,SAA5B,EAAJ,GAA8CJ,GAA/C,IAAsD,CAHlE;MAKA,OAAO,CAACG,KAAD,GAASD,GAAT,GAAe,CAAtB;KAlyCa;;;IAsyCjB,SAASG,kBAAT,CAA4B/H,IAA5B,EAAkCgI,IAAlC,EAAwCC,OAAxC,EAAiDP,GAAjD,EAAsDC,GAAtD,EAA2D;MACvD,IAAIO,YAAY,GAAG,CAAC,IAAID,OAAJ,GAAcP,GAAf,IAAsB,CAAzC;UACIS,UAAU,GAAGV,eAAe,CAACzH,IAAD,EAAO0H,GAAP,EAAYC,GAAZ,CADhC;UAEIS,SAAS,GAAG,IAAI,KAAKJ,IAAI,GAAG,CAAZ,CAAJ,GAAqBE,YAArB,GAAoCC,UAFpD;UAGIE,OAHJ;UAIIC,YAJJ;;MAMA,IAAIF,SAAS,IAAI,CAAjB,EAAoB;QAChBC,OAAO,GAAGrI,IAAI,GAAG,CAAjB;QACAsI,YAAY,GAAGxB,UAAU,CAACuB,OAAD,CAAV,GAAsBD,SAArC;OAFJ,MAGO,IAAIA,SAAS,GAAGtB,UAAU,CAAC9G,IAAD,CAA1B,EAAkC;QACrCqI,OAAO,GAAGrI,IAAI,GAAG,CAAjB;QACAsI,YAAY,GAAGF,SAAS,GAAGtB,UAAU,CAAC9G,IAAD,CAArC;OAFG,MAGA;QACHqI,OAAO,GAAGrI,IAAV;QACAsI,YAAY,GAAGF,SAAf;;;MAGJ,OAAO;QACHpI,IAAI,EAAEqI,OADH;QAEHD,SAAS,EAAEE;OAFf;;;IAMJ,SAASC,UAAT,CAAoB/N,GAApB,EAAyBkN,GAAzB,EAA8BC,GAA9B,EAAmC;MAC/B,IAAIQ,UAAU,GAAGV,eAAe,CAACjN,GAAG,CAACwF,IAAJ,EAAD,EAAa0H,GAAb,EAAkBC,GAAlB,CAAhC;UACIK,IAAI,GAAGruB,IAAI,CAACwmB,KAAL,CAAW,CAAC3F,GAAG,CAAC4N,SAAJ,KAAkBD,UAAlB,GAA+B,CAAhC,IAAqC,CAAhD,IAAqD,CADhE;UAEIK,OAFJ;UAGIH,OAHJ;;MAKA,IAAIL,IAAI,GAAG,CAAX,EAAc;QACVK,OAAO,GAAG7N,GAAG,CAACwF,IAAJ,KAAa,CAAvB;QACAwI,OAAO,GAAGR,IAAI,GAAGS,WAAW,CAACJ,OAAD,EAAUX,GAAV,EAAeC,GAAf,CAA5B;OAFJ,MAGO,IAAIK,IAAI,GAAGS,WAAW,CAACjO,GAAG,CAACwF,IAAJ,EAAD,EAAa0H,GAAb,EAAkBC,GAAlB,CAAtB,EAA8C;QACjDa,OAAO,GAAGR,IAAI,GAAGS,WAAW,CAACjO,GAAG,CAACwF,IAAJ,EAAD,EAAa0H,GAAb,EAAkBC,GAAlB,CAA5B;QACAU,OAAO,GAAG7N,GAAG,CAACwF,IAAJ,KAAa,CAAvB;OAFG,MAGA;QACHqI,OAAO,GAAG7N,GAAG,CAACwF,IAAJ,EAAV;QACAwI,OAAO,GAAGR,IAAV;;;MAGJ,OAAO;QACHA,IAAI,EAAEQ,OADH;QAEHxI,IAAI,EAAEqI;OAFV;;;IAMJ,SAASI,WAAT,CAAqBzI,IAArB,EAA2B0H,GAA3B,EAAgCC,GAAhC,EAAqC;MACjC,IAAIQ,UAAU,GAAGV,eAAe,CAACzH,IAAD,EAAO0H,GAAP,EAAYC,GAAZ,CAAhC;UACIe,cAAc,GAAGjB,eAAe,CAACzH,IAAI,GAAG,CAAR,EAAW0H,GAAX,EAAgBC,GAAhB,CADpC;MAEA,OAAO,CAACb,UAAU,CAAC9G,IAAD,CAAV,GAAmBmI,UAAnB,GAAgCO,cAAjC,IAAmD,CAA1D;KAx1Ca;;;IA61CjBhN,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,IAAjB,EAAuB,MAAvB,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,IAAjB,EAAuB,SAAvB,CAAd,CA91CiB;;IAk2CjBoD,YAAY,CAAC,MAAD,EAAS,GAAT,CAAZ;IACAA,YAAY,CAAC,SAAD,EAAY,GAAZ,CAAZ,CAn2CiB;;IAu2CjBW,eAAe,CAAC,MAAD,EAAS,CAAT,CAAf;IACAA,eAAe,CAAC,SAAD,EAAY,CAAZ,CAAf,CAx2CiB;;IA42CjB2C,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IAEAgC,iBAAiB,CACb,CAAC,GAAD,EAAM,IAAN,EAAY,GAAZ,EAAiB,IAAjB,CADa,EAEb,UAAUzY,KAAV,EAAiBsd,IAAjB,EAAuB1P,MAAvB,EAA+BqD,KAA/B,EAAsC;MAClCqM,IAAI,CAACrM,KAAK,CAACN,MAAN,CAAa,CAAb,EAAgB,CAAhB,CAAD,CAAJ,GAA2B+E,KAAK,CAAC1V,KAAD,CAAhC;KAHS,CAAjB,CAj3CiB;;;IA43CjB,SAASie,UAAT,CAAoBnO,GAApB,EAAyB;MACrB,OAAO+N,UAAU,CAAC/N,GAAD,EAAM,KAAKoO,KAAL,CAAWlB,GAAjB,EAAsB,KAAKkB,KAAL,CAAWjB,GAAjC,CAAV,CAAgDK,IAAvD;;;IAGJ,IAAIa,iBAAiB,GAAG;MACpBnB,GAAG,EAAE,CADe;;MAEpBC,GAAG,EAAE,CAFe;;KAAxB;;IAKA,SAASmB,oBAAT,GAAgC;MAC5B,OAAO,KAAKF,KAAL,CAAWlB,GAAlB;;;IAGJ,SAASqB,oBAAT,GAAgC;MAC5B,OAAO,KAAKH,KAAL,CAAWjB,GAAlB;KA14Ca;;;IA+4CjB,SAASqB,UAAT,CAAoBte,KAApB,EAA2B;MACvB,IAAIsd,IAAI,GAAG,KAAKlM,UAAL,GAAkBkM,IAAlB,CAAuB,IAAvB,CAAX;MACA,OAAOtd,KAAK,IAAI,IAAT,GAAgBsd,IAAhB,GAAuB,KAAKiB,GAAL,CAAS,CAACve,KAAK,GAAGsd,IAAT,IAAiB,CAA1B,EAA6B,GAA7B,CAA9B;;;IAGJ,SAASkB,aAAT,CAAuBxe,KAAvB,EAA8B;MAC1B,IAAIsd,IAAI,GAAGO,UAAU,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV,CAAV,CAAuBP,IAAlC;MACA,OAAOtd,KAAK,IAAI,IAAT,GAAgBsd,IAAhB,GAAuB,KAAKiB,GAAL,CAAS,CAACve,KAAK,GAAGsd,IAAT,IAAiB,CAA1B,EAA6B,GAA7B,CAA9B;KAt5Ca;;;IA25CjBtM,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,IAAT,EAAe,KAAf,CAAd;IAEAA,cAAc,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV,EAAa,UAAU5G,MAAV,EAAkB;MACzC,OAAO,KAAKgH,UAAL,GAAkBqN,WAAlB,CAA8B,IAA9B,EAAoCrU,MAApC,CAAP;KADU,CAAd;IAIA4G,cAAc,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,UAAU5G,MAAV,EAAkB;MAC1C,OAAO,KAAKgH,UAAL,GAAkBsN,aAAlB,CAAgC,IAAhC,EAAsCtU,MAAtC,CAAP;KADU,CAAd;IAIA4G,cAAc,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ,EAAe,UAAU5G,MAAV,EAAkB;MAC3C,OAAO,KAAKgH,UAAL,GAAkBuN,QAAlB,CAA2B,IAA3B,EAAiCvU,MAAjC,CAAP;KADU,CAAd;IAIA4G,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,SAAZ,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,YAAZ,CAAd,CA16CiB;;IA86CjBoD,YAAY,CAAC,KAAD,EAAQ,GAAR,CAAZ;IACAA,YAAY,CAAC,SAAD,EAAY,GAAZ,CAAZ;IACAA,YAAY,CAAC,YAAD,EAAe,GAAf,CAAZ,CAh7CiB;;IAm7CjBW,eAAe,CAAC,KAAD,EAAQ,EAAR,CAAf;IACAA,eAAe,CAAC,SAAD,EAAY,EAAZ,CAAf;IACAA,eAAe,CAAC,YAAD,EAAe,EAAf,CAAf,CAr7CiB;;IAy7CjB2C,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAO,UAAUG,QAAV,EAAoBxN,MAApB,EAA4B;MAC5C,OAAOA,MAAM,CAACuU,gBAAP,CAAwB/G,QAAxB,CAAP;KADS,CAAb;IAGAH,aAAa,CAAC,KAAD,EAAQ,UAAUG,QAAV,EAAoBxN,MAApB,EAA4B;MAC7C,OAAOA,MAAM,CAACwU,kBAAP,CAA0BhH,QAA1B,CAAP;KADS,CAAb;IAGAH,aAAa,CAAC,MAAD,EAAS,UAAUG,QAAV,EAAoBxN,MAApB,EAA4B;MAC9C,OAAOA,MAAM,CAACyU,aAAP,CAAqBjH,QAArB,CAAP;KADS,CAAb;IAIAY,iBAAiB,CAAC,CAAC,IAAD,EAAO,KAAP,EAAc,MAAd,CAAD,EAAwB,UAAUzY,KAAV,EAAiBsd,IAAjB,EAAuB1P,MAAvB,EAA+BqD,KAA/B,EAAsC;MAC3E,IAAIsM,OAAO,GAAG3P,MAAM,CAACF,OAAP,CAAeqR,aAAf,CAA6B/e,KAA7B,EAAoCiR,KAApC,EAA2CrD,MAAM,CAACpB,OAAlD,CAAd,CAD2E;;;MAG3E,IAAI+Q,OAAO,IAAI,IAAf,EAAqB;QACjBD,IAAI,CAACjK,CAAL,GAASkK,OAAT;OADJ,MAEO;QACH7R,eAAe,CAACkC,MAAD,CAAf,CAAwBrB,cAAxB,GAAyCvM,KAAzC;;KANS,CAAjB;IAUAyY,iBAAiB,CAAC,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,CAAD,EAAkB,UAAUzY,KAAV,EAAiBsd,IAAjB,EAAuB1P,MAAvB,EAA+BqD,KAA/B,EAAsC;MACrEqM,IAAI,CAACrM,KAAD,CAAJ,GAAcyE,KAAK,CAAC1V,KAAD,CAAnB;KADa,CAAjB,CAh9CiB;;IAs9CjB,SAASgf,YAAT,CAAsBhf,KAAtB,EAA6BqK,MAA7B,EAAqC;MACjC,IAAI,OAAOrK,KAAP,KAAiB,QAArB,EAA+B;QAC3B,OAAOA,KAAP;;;MAGJ,IAAI,CAACoM,KAAK,CAACpM,KAAD,CAAV,EAAmB;QACf,OAAOmc,QAAQ,CAACnc,KAAD,EAAQ,EAAR,CAAf;;;MAGJA,KAAK,GAAGqK,MAAM,CAAC0U,aAAP,CAAqB/e,KAArB,CAAR;;MACA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;QAC3B,OAAOA,KAAP;;;MAGJ,OAAO,IAAP;;;IAGJ,SAASif,eAAT,CAAyBjf,KAAzB,EAAgCqK,MAAhC,EAAwC;MACpC,IAAI,OAAOrK,KAAP,KAAiB,QAArB,EAA+B;QAC3B,OAAOqK,MAAM,CAAC0U,aAAP,CAAqB/e,KAArB,IAA8B,CAA9B,IAAmC,CAA1C;;;MAEJ,OAAOoM,KAAK,CAACpM,KAAD,CAAL,GAAe,IAAf,GAAsBA,KAA7B;KA3+Ca;;;IA++CjB,SAASkf,aAAT,CAAuBC,EAAvB,EAA2B5F,CAA3B,EAA8B;MAC1B,OAAO4F,EAAE,CAAChkB,KAAH,CAASoe,CAAT,EAAY,CAAZ,EAAelhB,MAAf,CAAsB8mB,EAAE,CAAChkB,KAAH,CAAS,CAAT,EAAYoe,CAAZ,CAAtB,CAAP;;;IAGJ,IAAI6F,qBAAqB,GACjB,2DAA2DnF,KAA3D,CAAiE,GAAjE,CADR;QAEIoF,0BAA0B,GAAG,8BAA8BpF,KAA9B,CAAoC,GAApC,CAFjC;QAGIqF,wBAAwB,GAAG,uBAAuBrF,KAAvB,CAA6B,GAA7B,CAH/B;QAIIsF,oBAAoB,GAAG/H,SAJ3B;QAKIgI,yBAAyB,GAAGhI,SALhC;QAMIiI,uBAAuB,GAAGjI,SAN9B;;IAQA,SAASkI,cAAT,CAAwB/T,CAAxB,EAA2BvB,MAA3B,EAAmC;MAC/B,IAAIuU,QAAQ,GAAGn0B,OAAO,CAAC,KAAKm1B,SAAN,CAAP,GACT,KAAKA,SADI,GAET,KAAKA,SAAL,CACIhU,CAAC,IAAIA,CAAC,KAAK,IAAX,IAAmB,KAAKgU,SAAL,CAAenF,QAAf,CAAwBzI,IAAxB,CAA6B3H,MAA7B,CAAnB,GACM,QADN,GAEM,YAHV,CAFN;MAOA,OAAOuB,CAAC,KAAK,IAAN,GACDuT,aAAa,CAACP,QAAD,EAAW,KAAKT,KAAL,CAAWlB,GAAtB,CADZ,GAEDrR,CAAC,GACDgT,QAAQ,CAAChT,CAAC,CAACiU,GAAF,EAAD,CADP,GAEDjB,QAJN;;;IAOJ,SAASkB,mBAAT,CAA6BlU,CAA7B,EAAgC;MAC5B,OAAOA,CAAC,KAAK,IAAN,GACDuT,aAAa,CAAC,KAAKY,cAAN,EAAsB,KAAK5B,KAAL,CAAWlB,GAAjC,CADZ,GAEDrR,CAAC,GACD,KAAKmU,cAAL,CAAoBnU,CAAC,CAACiU,GAAF,EAApB,CADC,GAED,KAAKE,cAJX;;;IAOJ,SAASC,iBAAT,CAA2BpU,CAA3B,EAA8B;MAC1B,OAAOA,CAAC,KAAK,IAAN,GACDuT,aAAa,CAAC,KAAKc,YAAN,EAAoB,KAAK9B,KAAL,CAAWlB,GAA/B,CADZ,GAEDrR,CAAC,GACD,KAAKqU,YAAL,CAAkBrU,CAAC,CAACiU,GAAF,EAAlB,CADC,GAED,KAAKI,YAJX;;;IAOJ,SAASC,mBAAT,CAA6BC,WAA7B,EAA0C9V,MAA1C,EAAkDE,MAAlD,EAA0D;MACtD,IAAIrgB,CAAJ;UACI4wB,EADJ;UAEI/K,GAFJ;UAGIgL,GAAG,GAAGoF,WAAW,CAACnF,iBAAZ,EAHV;;MAIA,IAAI,CAAC,KAAKoF,cAAV,EAA0B;QACtB,KAAKA,cAAL,GAAsB,EAAtB;QACA,KAAKC,mBAAL,GAA2B,EAA3B;QACA,KAAKC,iBAAL,GAAyB,EAAzB;;QAEA,KAAKp2B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmB,EAAEA,CAArB,EAAwB;UACpB6lB,GAAG,GAAG3F,SAAS,CAAC,CAAC,IAAD,EAAO,CAAP,CAAD,CAAT,CAAqByV,GAArB,CAAyB31B,CAAzB,CAAN;UACA,KAAKo2B,iBAAL,CAAuBp2B,CAAvB,IAA4B,KAAKw0B,WAAL,CACxB3O,GADwB,EAExB,EAFwB,EAG1BiL,iBAH0B,EAA5B;UAIA,KAAKqF,mBAAL,CAAyBn2B,CAAzB,IAA8B,KAAKy0B,aAAL,CAC1B5O,GAD0B,EAE1B,EAF0B,EAG5BiL,iBAH4B,EAA9B;UAIA,KAAKoF,cAAL,CAAoBl2B,CAApB,IAAyB,KAAK00B,QAAL,CAAc7O,GAAd,EAAmB,EAAnB,EAAuBiL,iBAAvB,EAAzB;;;;MAIR,IAAIzQ,MAAJ,EAAY;QACR,IAAIF,MAAM,KAAK,MAAf,EAAuB;UACnByQ,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKu1B,cAAlB,EAAkCrF,GAAlC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;SAFJ,MAGO,IAAIzQ,MAAM,KAAK,KAAf,EAAsB;UACzByQ,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKw1B,mBAAlB,EAAuCtF,GAAvC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;SAFG,MAGA;UACHA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKy1B,iBAAlB,EAAqCvF,GAArC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;;OATR,MAWO;QACH,IAAIzQ,MAAM,KAAK,MAAf,EAAuB;UACnByQ,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKu1B,cAAlB,EAAkCrF,GAAlC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKw1B,mBAAlB,EAAuCtF,GAAvC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKy1B,iBAAlB,EAAqCvF,GAArC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;SAVJ,MAWO,IAAIzQ,MAAM,KAAK,KAAf,EAAsB;UACzByQ,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKw1B,mBAAlB,EAAuCtF,GAAvC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKu1B,cAAlB,EAAkCrF,GAAlC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKy1B,iBAAlB,EAAqCvF,GAArC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;SAVG,MAWA;UACHA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKy1B,iBAAlB,EAAqCvF,GAArC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKu1B,cAAlB,EAAkCrF,GAAlC,CAAL;;UACA,IAAID,EAAE,KAAK,CAAC,CAAZ,EAAe;YACX,OAAOA,EAAP;;;UAEJA,EAAE,GAAGpB,OAAO,CAAC7uB,IAAR,CAAa,KAAKw1B,mBAAlB,EAAuCtF,GAAvC,CAAL;UACA,OAAOD,EAAE,KAAK,CAAC,CAAR,GAAYA,EAAZ,GAAiB,IAAxB;;;;;IAKZ,SAASyF,mBAAT,CAA6BJ,WAA7B,EAA0C9V,MAA1C,EAAkDE,MAAlD,EAA0D;MACtD,IAAIrgB,CAAJ,EAAO6lB,GAAP,EAAY6H,KAAZ;;MAEA,IAAI,KAAK4I,mBAAT,EAA8B;QAC1B,OAAON,mBAAmB,CAACr1B,IAApB,CAAyB,IAAzB,EAA+Bs1B,WAA/B,EAA4C9V,MAA5C,EAAoDE,MAApD,CAAP;;;MAGJ,IAAI,CAAC,KAAK6V,cAAV,EAA0B;QACtB,KAAKA,cAAL,GAAsB,EAAtB;QACA,KAAKE,iBAAL,GAAyB,EAAzB;QACA,KAAKD,mBAAL,GAA2B,EAA3B;QACA,KAAKI,kBAAL,GAA0B,EAA1B;;;MAGJ,KAAKv2B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;;QAGpB6lB,GAAG,GAAG3F,SAAS,CAAC,CAAC,IAAD,EAAO,CAAP,CAAD,CAAT,CAAqByV,GAArB,CAAyB31B,CAAzB,CAAN;;QACA,IAAIqgB,MAAM,IAAI,CAAC,KAAKkW,kBAAL,CAAwBv2B,CAAxB,CAAf,EAA2C;UACvC,KAAKu2B,kBAAL,CAAwBv2B,CAAxB,IAA6B,IAAI6kB,MAAJ,CACzB,MAAM,KAAK6P,QAAL,CAAc7O,GAAd,EAAmB,EAAnB,EAAuByB,OAAvB,CAA+B,GAA/B,EAAoC,MAApC,CAAN,GAAoD,GAD3B,EAEzB,GAFyB,CAA7B;UAIA,KAAK6O,mBAAL,CAAyBn2B,CAAzB,IAA8B,IAAI6kB,MAAJ,CAC1B,MAAM,KAAK4P,aAAL,CAAmB5O,GAAnB,EAAwB,EAAxB,EAA4ByB,OAA5B,CAAoC,GAApC,EAAyC,MAAzC,CAAN,GAAyD,GAD/B,EAE1B,GAF0B,CAA9B;UAIA,KAAK8O,iBAAL,CAAuBp2B,CAAvB,IAA4B,IAAI6kB,MAAJ,CACxB,MAAM,KAAK2P,WAAL,CAAiB3O,GAAjB,EAAsB,EAAtB,EAA0ByB,OAA1B,CAAkC,GAAlC,EAAuC,MAAvC,CAAN,GAAuD,GAD/B,EAExB,GAFwB,CAA5B;;;QAKJ,IAAI,CAAC,KAAK4O,cAAL,CAAoBl2B,CAApB,CAAL,EAA6B;UACzB0tB,KAAK,GACD,MACA,KAAKgH,QAAL,CAAc7O,GAAd,EAAmB,EAAnB,CADA,GAEA,IAFA,GAGA,KAAK4O,aAAL,CAAmB5O,GAAnB,EAAwB,EAAxB,CAHA,GAIA,IAJA,GAKA,KAAK2O,WAAL,CAAiB3O,GAAjB,EAAsB,EAAtB,CANJ;UAOA,KAAKqQ,cAAL,CAAoBl2B,CAApB,IAAyB,IAAI6kB,MAAJ,CAAW6I,KAAK,CAACpG,OAAN,CAAc,GAAd,EAAmB,EAAnB,CAAX,EAAmC,GAAnC,CAAzB;SA1BgB;;;QA6BpB,IACIjH,MAAM,IACNF,MAAM,KAAK,MADX,IAEA,KAAKoW,kBAAL,CAAwBv2B,CAAxB,EAA2B8nB,IAA3B,CAAgCmO,WAAhC,CAHJ,EAIE;UACE,OAAOj2B,CAAP;SALJ,MAMO,IACHqgB,MAAM,IACNF,MAAM,KAAK,KADX,IAEA,KAAKgW,mBAAL,CAAyBn2B,CAAzB,EAA4B8nB,IAA5B,CAAiCmO,WAAjC,CAHG,EAIL;UACE,OAAOj2B,CAAP;SALG,MAMA,IACHqgB,MAAM,IACNF,MAAM,KAAK,IADX,IAEA,KAAKiW,iBAAL,CAAuBp2B,CAAvB,EAA0B8nB,IAA1B,CAA+BmO,WAA/B,CAHG,EAIL;UACE,OAAOj2B,CAAP;SALG,MAMA,IAAI,CAACqgB,MAAD,IAAW,KAAK6V,cAAL,CAAoBl2B,CAApB,EAAuB8nB,IAAvB,CAA4BmO,WAA5B,CAAf,EAAyD;UAC5D,OAAOj2B,CAAP;;;KAjqDK;;;IAwqDjB,SAASw2B,eAAT,CAAyBzgB,KAAzB,EAAgC;MAC5B,IAAI,CAAC,KAAKE,OAAL,EAAL,EAAqB;QACjB,OAAOF,KAAK,IAAI,IAAT,GAAgB,IAAhB,GAAuB4M,GAA9B;;;MAEJ,IAAIgT,GAAG,GAAG,KAAKpS,MAAL,GAAc,KAAKnB,EAAL,CAAQ+Q,SAAR,EAAd,GAAoC,KAAK/Q,EAAL,CAAQqU,MAAR,EAA9C;;MACA,IAAI1gB,KAAK,IAAI,IAAb,EAAmB;QACfA,KAAK,GAAGgf,YAAY,CAAChf,KAAD,EAAQ,KAAKoR,UAAL,EAAR,CAApB;QACA,OAAO,KAAKmN,GAAL,CAASve,KAAK,GAAG4f,GAAjB,EAAsB,GAAtB,CAAP;OAFJ,MAGO;QACH,OAAOA,GAAP;;;;IAIR,SAASe,qBAAT,CAA+B3gB,KAA/B,EAAsC;MAClC,IAAI,CAAC,KAAKE,OAAL,EAAL,EAAqB;QACjB,OAAOF,KAAK,IAAI,IAAT,GAAgB,IAAhB,GAAuB4M,GAA9B;;;MAEJ,IAAI2Q,OAAO,GAAG,CAAC,KAAKqC,GAAL,KAAa,CAAb,GAAiB,KAAKxO,UAAL,GAAkB8M,KAAlB,CAAwBlB,GAA1C,IAAiD,CAA/D;MACA,OAAOhd,KAAK,IAAI,IAAT,GAAgBud,OAAhB,GAA0B,KAAKgB,GAAL,CAASve,KAAK,GAAGud,OAAjB,EAA0B,GAA1B,CAAjC;;;IAGJ,SAASqD,kBAAT,CAA4B5gB,KAA5B,EAAmC;MAC/B,IAAI,CAAC,KAAKE,OAAL,EAAL,EAAqB;QACjB,OAAOF,KAAK,IAAI,IAAT,GAAgB,IAAhB,GAAuB4M,GAA9B;OAF2B;;;;;MAS/B,IAAI5M,KAAK,IAAI,IAAb,EAAmB;QACf,IAAIud,OAAO,GAAG0B,eAAe,CAACjf,KAAD,EAAQ,KAAKoR,UAAL,EAAR,CAA7B;QACA,OAAO,KAAKwO,GAAL,CAAS,KAAKA,GAAL,KAAa,CAAb,GAAiBrC,OAAjB,GAA2BA,OAAO,GAAG,CAA9C,CAAP;OAFJ,MAGO;QACH,OAAO,KAAKqC,GAAL,MAAc,CAArB;;;;IAIR,SAASd,aAAT,CAAuBjH,QAAvB,EAAiC;MAC7B,IAAI,KAAK0I,mBAAT,EAA8B;QAC1B,IAAI,CAACpX,UAAU,CAAC,IAAD,EAAO,gBAAP,CAAf,EAAyC;UACrC0X,oBAAoB,CAACj2B,IAArB,CAA0B,IAA1B;;;QAEJ,IAAIitB,QAAJ,EAAc;UACV,OAAO,KAAKiJ,oBAAZ;SADJ,MAEO;UACH,OAAO,KAAKC,cAAZ;;OAPR,MASO;QACH,IAAI,CAAC5X,UAAU,CAAC,IAAD,EAAO,gBAAP,CAAf,EAAyC;UACrC,KAAK4X,cAAL,GAAsBxB,oBAAtB;;;QAEJ,OAAO,KAAKuB,oBAAL,IAA6BjJ,QAA7B,GACD,KAAKiJ,oBADJ,GAED,KAAKC,cAFX;;;;IAMR,SAASlC,kBAAT,CAA4BhH,QAA5B,EAAsC;MAClC,IAAI,KAAK0I,mBAAT,EAA8B;QAC1B,IAAI,CAACpX,UAAU,CAAC,IAAD,EAAO,gBAAP,CAAf,EAAyC;UACrC0X,oBAAoB,CAACj2B,IAArB,CAA0B,IAA1B;;;QAEJ,IAAIitB,QAAJ,EAAc;UACV,OAAO,KAAKmJ,yBAAZ;SADJ,MAEO;UACH,OAAO,KAAKC,mBAAZ;;OAPR,MASO;QACH,IAAI,CAAC9X,UAAU,CAAC,IAAD,EAAO,qBAAP,CAAf,EAA8C;UAC1C,KAAK8X,mBAAL,GAA2BzB,yBAA3B;;;QAEJ,OAAO,KAAKwB,yBAAL,IAAkCnJ,QAAlC,GACD,KAAKmJ,yBADJ,GAED,KAAKC,mBAFX;;;;IAMR,SAASrC,gBAAT,CAA0B/G,QAA1B,EAAoC;MAChC,IAAI,KAAK0I,mBAAT,EAA8B;QAC1B,IAAI,CAACpX,UAAU,CAAC,IAAD,EAAO,gBAAP,CAAf,EAAyC;UACrC0X,oBAAoB,CAACj2B,IAArB,CAA0B,IAA1B;;;QAEJ,IAAIitB,QAAJ,EAAc;UACV,OAAO,KAAKqJ,uBAAZ;SADJ,MAEO;UACH,OAAO,KAAKC,iBAAZ;;OAPR,MASO;QACH,IAAI,CAAChY,UAAU,CAAC,IAAD,EAAO,mBAAP,CAAf,EAA4C;UACxC,KAAKgY,iBAAL,GAAyB1B,uBAAzB;;;QAEJ,OAAO,KAAKyB,uBAAL,IAAgCrJ,QAAhC,GACD,KAAKqJ,uBADJ,GAED,KAAKC,iBAFX;;;;IAMR,SAASN,oBAAT,GAAgC;MAC5B,SAAS/E,SAAT,CAAmB1S,CAAnB,EAAsBC,CAAtB,EAAyB;QACrB,OAAOA,CAAC,CAAClf,MAAF,GAAWif,CAAC,CAACjf,MAApB;;;MAGJ,IAAIi3B,SAAS,GAAG,EAAhB;UACIrF,WAAW,GAAG,EADlB;UAEIC,UAAU,GAAG,EAFjB;UAGIC,WAAW,GAAG,EAHlB;UAIIhyB,CAJJ;UAKI6lB,GALJ;UAMIuR,IANJ;UAOIC,MAPJ;UAQIC,KARJ;;MASA,KAAKt3B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;;QAEpB6lB,GAAG,GAAG3F,SAAS,CAAC,CAAC,IAAD,EAAO,CAAP,CAAD,CAAT,CAAqByV,GAArB,CAAyB31B,CAAzB,CAAN;QACAo3B,IAAI,GAAGrJ,WAAW,CAAC,KAAKyG,WAAL,CAAiB3O,GAAjB,EAAsB,EAAtB,CAAD,CAAlB;QACAwR,MAAM,GAAGtJ,WAAW,CAAC,KAAK0G,aAAL,CAAmB5O,GAAnB,EAAwB,EAAxB,CAAD,CAApB;QACAyR,KAAK,GAAGvJ,WAAW,CAAC,KAAK2G,QAAL,CAAc7O,GAAd,EAAmB,EAAnB,CAAD,CAAnB;QACAsR,SAAS,CAAC92B,IAAV,CAAe+2B,IAAf;QACAtF,WAAW,CAACzxB,IAAZ,CAAiBg3B,MAAjB;QACAtF,UAAU,CAAC1xB,IAAX,CAAgBi3B,KAAhB;QACAtF,WAAW,CAAC3xB,IAAZ,CAAiB+2B,IAAjB;QACApF,WAAW,CAAC3xB,IAAZ,CAAiBg3B,MAAjB;QACArF,WAAW,CAAC3xB,IAAZ,CAAiBi3B,KAAjB;OAzBwB;;;;MA6B5BH,SAAS,CAAChM,IAAV,CAAe0G,SAAf;MACAC,WAAW,CAAC3G,IAAZ,CAAiB0G,SAAjB;MACAE,UAAU,CAAC5G,IAAX,CAAgB0G,SAAhB;MACAG,WAAW,CAAC7G,IAAZ,CAAiB0G,SAAjB;MAEA,KAAKiF,cAAL,GAAsB,IAAIjS,MAAJ,CAAW,OAAOmN,WAAW,CAACpxB,IAAZ,CAAiB,GAAjB,CAAP,GAA+B,GAA1C,EAA+C,GAA/C,CAAtB;MACA,KAAKo2B,mBAAL,GAA2B,KAAKF,cAAhC;MACA,KAAKI,iBAAL,GAAyB,KAAKJ,cAA9B;MAEA,KAAKD,oBAAL,GAA4B,IAAIhS,MAAJ,CACxB,OAAOkN,UAAU,CAACnxB,IAAX,CAAgB,GAAhB,CAAP,GAA8B,GADN,EAExB,GAFwB,CAA5B;MAIA,KAAKm2B,yBAAL,GAAiC,IAAIlS,MAAJ,CAC7B,OAAOiN,WAAW,CAAClxB,IAAZ,CAAiB,GAAjB,CAAP,GAA+B,GADF,EAE7B,GAF6B,CAAjC;MAIA,KAAKq2B,uBAAL,GAA+B,IAAIpS,MAAJ,CAC3B,OAAOsS,SAAS,CAACv2B,IAAV,CAAe,GAAf,CAAP,GAA6B,GADF,EAE3B,GAF2B,CAA/B;KAxzDa;;;IAg0DjB,SAAS22B,OAAT,GAAmB;MACf,OAAO,KAAKC,KAAL,KAAe,EAAf,IAAqB,EAA5B;;;IAGJ,SAASC,OAAT,GAAmB;MACf,OAAO,KAAKD,KAAL,MAAgB,EAAvB;;;IAGJzQ,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,CAAjB,EAAoB,MAApB,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,CAAjB,EAAoBwQ,OAApB,CAAd;IACAxQ,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,CAAjB,EAAoB0Q,OAApB,CAAd;IAEA1Q,cAAc,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,YAAY;MACpC,OAAO,KAAKwQ,OAAO,CAAC92B,KAAR,CAAc,IAAd,CAAL,GAA2BwlB,QAAQ,CAAC,KAAKyR,OAAL,EAAD,EAAiB,CAAjB,CAA1C;KADU,CAAd;IAIA3Q,cAAc,CAAC,OAAD,EAAU,CAAV,EAAa,CAAb,EAAgB,YAAY;MACtC,OACI,KACAwQ,OAAO,CAAC92B,KAAR,CAAc,IAAd,CADA,GAEAwlB,QAAQ,CAAC,KAAKyR,OAAL,EAAD,EAAiB,CAAjB,CAFR,GAGAzR,QAAQ,CAAC,KAAK0R,OAAL,EAAD,EAAiB,CAAjB,CAJZ;KADU,CAAd;IASA5Q,cAAc,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,YAAY;MACpC,OAAO,KAAK,KAAKyQ,KAAL,EAAL,GAAoBvR,QAAQ,CAAC,KAAKyR,OAAL,EAAD,EAAiB,CAAjB,CAAnC;KADU,CAAd;IAIA3Q,cAAc,CAAC,OAAD,EAAU,CAAV,EAAa,CAAb,EAAgB,YAAY;MACtC,OACI,KACA,KAAKyQ,KAAL,EADA,GAEAvR,QAAQ,CAAC,KAAKyR,OAAL,EAAD,EAAiB,CAAjB,CAFR,GAGAzR,QAAQ,CAAC,KAAK0R,OAAL,EAAD,EAAiB,CAAjB,CAJZ;KADU,CAAd;;IASA,SAASrW,QAAT,CAAkB0F,KAAlB,EAAyB4Q,SAAzB,EAAoC;MAChC7Q,cAAc,CAACC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,YAAY;QACpC,OAAO,KAAKG,UAAL,GAAkB7F,QAAlB,CACH,KAAKkW,KAAL,EADG,EAEH,KAAKE,OAAL,EAFG,EAGHE,SAHG,CAAP;OADU,CAAd;;;IASJtW,QAAQ,CAAC,GAAD,EAAM,IAAN,CAAR;IACAA,QAAQ,CAAC,GAAD,EAAM,KAAN,CAAR,CAj3DiB;;IAq3DjB6I,YAAY,CAAC,MAAD,EAAS,GAAT,CAAZ,CAr3DiB;;IAw3DjBW,eAAe,CAAC,MAAD,EAAS,EAAT,CAAf,CAx3DiB;;IA43DjB,SAAS+M,aAAT,CAAuBjK,QAAvB,EAAiCxN,MAAjC,EAAyC;MACrC,OAAOA,MAAM,CAAC0X,cAAd;;;IAGJrK,aAAa,CAAC,GAAD,EAAMoK,aAAN,CAAb;IACApK,aAAa,CAAC,GAAD,EAAMoK,aAAN,CAAb;IACApK,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IAEAiB,aAAa,CAAC,KAAD,EAAQZ,SAAR,CAAb;IACAY,aAAa,CAAC,OAAD,EAAUX,SAAV,CAAb;IACAW,aAAa,CAAC,KAAD,EAAQZ,SAAR,CAAb;IACAY,aAAa,CAAC,OAAD,EAAUX,SAAV,CAAb;IAEAwB,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAcS,IAAd,CAAb;IACAT,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAc,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACvD,IAAIoU,MAAM,GAAGtM,KAAK,CAAC1V,KAAD,CAAlB;MACA5R,KAAK,CAAC4qB,IAAD,CAAL,GAAcgJ,MAAM,KAAK,EAAX,GAAgB,CAAhB,GAAoBA,MAAlC;KAFS,CAAb;IAIAzJ,aAAa,CAAC,CAAC,GAAD,EAAM,GAAN,CAAD,EAAa,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACtDA,MAAM,CAACqU,KAAP,GAAerU,MAAM,CAACF,OAAP,CAAewU,IAAf,CAAoBliB,KAApB,CAAf;MACA4N,MAAM,CAACuU,SAAP,GAAmBniB,KAAnB;KAFS,CAAb;IAIAuY,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAc,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACvDxf,KAAK,CAAC4qB,IAAD,CAAL,GAActD,KAAK,CAAC1V,KAAD,CAAnB;MACA0L,eAAe,CAACkC,MAAD,CAAf,CAAwBnB,OAAxB,GAAkC,IAAlC;KAFS,CAAb;IAIA8L,aAAa,CAAC,KAAD,EAAQ,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACjD,IAAIwU,GAAG,GAAGpiB,KAAK,CAAC7V,MAAN,GAAe,CAAzB;MACAiE,KAAK,CAAC4qB,IAAD,CAAL,GAActD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa,CAAb,EAAgByR,GAAhB,CAAD,CAAnB;MACAh0B,KAAK,CAAC6qB,MAAD,CAAL,GAAgBvD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAayR,GAAb,CAAD,CAArB;MACA1W,eAAe,CAACkC,MAAD,CAAf,CAAwBnB,OAAxB,GAAkC,IAAlC;KAJS,CAAb;IAMA8L,aAAa,CAAC,OAAD,EAAU,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACnD,IAAIyU,IAAI,GAAGriB,KAAK,CAAC7V,MAAN,GAAe,CAA1B;UACIm4B,IAAI,GAAGtiB,KAAK,CAAC7V,MAAN,GAAe,CAD1B;MAEAiE,KAAK,CAAC4qB,IAAD,CAAL,GAActD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa,CAAb,EAAgB0R,IAAhB,CAAD,CAAnB;MACAj0B,KAAK,CAAC6qB,MAAD,CAAL,GAAgBvD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa0R,IAAb,EAAmB,CAAnB,CAAD,CAArB;MACAj0B,KAAK,CAAC8qB,MAAD,CAAL,GAAgBxD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa2R,IAAb,CAAD,CAArB;MACA5W,eAAe,CAACkC,MAAD,CAAf,CAAwBnB,OAAxB,GAAkC,IAAlC;KANS,CAAb;IAQA8L,aAAa,CAAC,KAAD,EAAQ,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACjD,IAAIwU,GAAG,GAAGpiB,KAAK,CAAC7V,MAAN,GAAe,CAAzB;MACAiE,KAAK,CAAC4qB,IAAD,CAAL,GAActD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa,CAAb,EAAgByR,GAAhB,CAAD,CAAnB;MACAh0B,KAAK,CAAC6qB,MAAD,CAAL,GAAgBvD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAayR,GAAb,CAAD,CAArB;KAHS,CAAb;IAKA7J,aAAa,CAAC,OAAD,EAAU,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACnD,IAAIyU,IAAI,GAAGriB,KAAK,CAAC7V,MAAN,GAAe,CAA1B;UACIm4B,IAAI,GAAGtiB,KAAK,CAAC7V,MAAN,GAAe,CAD1B;MAEAiE,KAAK,CAAC4qB,IAAD,CAAL,GAActD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa,CAAb,EAAgB0R,IAAhB,CAAD,CAAnB;MACAj0B,KAAK,CAAC6qB,MAAD,CAAL,GAAgBvD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa0R,IAAb,EAAmB,CAAnB,CAAD,CAArB;MACAj0B,KAAK,CAAC8qB,MAAD,CAAL,GAAgBxD,KAAK,CAAC1V,KAAK,CAAC2Q,MAAN,CAAa2R,IAAb,CAAD,CAArB;KALS,CAAb,CA96DiB;;IAw7DjB,SAASC,UAAT,CAAoBviB,KAApB,EAA2B;;;MAGvB,OAAO,CAACA,KAAK,GAAG,EAAT,EAAaoG,WAAb,GAA2BnL,MAA3B,CAAkC,CAAlC,MAAyC,GAAhD;;;IAGJ,IAAIunB,0BAA0B,GAAG,eAAjC;;;;;IAKIC,UAAU,GAAG3M,UAAU,CAAC,OAAD,EAAU,IAAV,CAL3B;;IAOA,SAAS4M,cAAT,CAAwBjB,KAAxB,EAA+BE,OAA/B,EAAwCgB,OAAxC,EAAiD;MAC7C,IAAIlB,KAAK,GAAG,EAAZ,EAAgB;QACZ,OAAOkB,OAAO,GAAG,IAAH,GAAU,IAAxB;OADJ,MAEO;QACH,OAAOA,OAAO,GAAG,IAAH,GAAU,IAAxB;;;;IAIR,IAAIC,UAAU,GAAG;MACb/S,QAAQ,EAAEP,eADG;MAEbuC,cAAc,EAAEG,qBAFH;MAGbN,WAAW,EAAEgB,kBAHA;MAIbvB,OAAO,EAAEyB,cAJI;MAKbiQ,sBAAsB,EAAEhQ,6BALX;MAMbgB,YAAY,EAAEd,mBAND;MAQb6G,MAAM,EAAEI,mBARK;MASbL,WAAW,EAAEO,wBATA;MAWboD,IAAI,EAAEa,iBAXO;MAabQ,QAAQ,EAAES,qBAbG;MAcbX,WAAW,EAAEa,wBAdA;MAebZ,aAAa,EAAEW,0BAfF;MAiBbyD,aAAa,EAAEN;KAjBnB,CA78DiB;;IAk+DjB,IAAIO,OAAO,GAAG,EAAd;QACIC,cAAc,GAAG,EADrB;QAEIC,YAFJ;;IAIA,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,IAA5B,EAAkC;MAC9B,IAAIn5B,CAAJ;UACIo5B,IAAI,GAAGp0B,IAAI,CAACG,GAAL,CAAS+zB,IAAI,CAACh5B,MAAd,EAAsBi5B,IAAI,CAACj5B,MAA3B,CADX;;MAEA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGo5B,IAAhB,EAAsBp5B,CAAC,IAAI,CAA3B,EAA8B;QAC1B,IAAIk5B,IAAI,CAACl5B,CAAD,CAAJ,KAAYm5B,IAAI,CAACn5B,CAAD,CAApB,EAAyB;UACrB,OAAOA,CAAP;;;;MAGR,OAAOo5B,IAAP;;;IAGJ,SAASC,eAAT,CAAyB34B,GAAzB,EAA8B;MAC1B,OAAOA,GAAG,GAAGA,GAAG,CAACyb,WAAJ,GAAkBmL,OAAlB,CAA0B,GAA1B,EAA+B,GAA/B,CAAH,GAAyC5mB,GAAnD;KAl/Da;;;;;IAw/DjB,SAAS44B,YAAT,CAAsBC,KAAtB,EAA6B;MACzB,IAAIv5B,CAAC,GAAG,CAAR;UACIw5B,CADJ;UAEIld,IAFJ;UAGI8D,MAHJ;UAII4P,KAJJ;;MAMA,OAAOhwB,CAAC,GAAGu5B,KAAK,CAACr5B,MAAjB,EAAyB;QACrB8vB,KAAK,GAAGqJ,eAAe,CAACE,KAAK,CAACv5B,CAAD,CAAN,CAAf,CAA0BgwB,KAA1B,CAAgC,GAAhC,CAAR;QACAwJ,CAAC,GAAGxJ,KAAK,CAAC9vB,MAAV;QACAoc,IAAI,GAAG+c,eAAe,CAACE,KAAK,CAACv5B,CAAC,GAAG,CAAL,CAAN,CAAtB;QACAsc,IAAI,GAAGA,IAAI,GAAGA,IAAI,CAAC0T,KAAL,CAAW,GAAX,CAAH,GAAqB,IAAhC;;QACA,OAAOwJ,CAAC,GAAG,CAAX,EAAc;UACVpZ,MAAM,GAAGqZ,UAAU,CAACzJ,KAAK,CAAC9e,KAAN,CAAY,CAAZ,EAAesoB,CAAf,EAAkB54B,IAAlB,CAAuB,GAAvB,CAAD,CAAnB;;UACA,IAAIwf,MAAJ,EAAY;YACR,OAAOA,MAAP;;;UAEJ,IACI9D,IAAI,IACJA,IAAI,CAACpc,MAAL,IAAes5B,CADf,IAEAP,YAAY,CAACjJ,KAAD,EAAQ1T,IAAR,CAAZ,IAA6Bkd,CAAC,GAAG,CAHrC,EAIE;;YAEE;;;UAEJA,CAAC;;;QAELx5B,CAAC;;;MAEL,OAAOg5B,YAAP;;;IAGJ,SAASU,gBAAT,CAA0Bx4B,IAA1B,EAAgC;;MAE5B,OAAOA,IAAI,CAACmmB,KAAL,CAAW,aAAX,KAA6B,IAApC;;;IAGJ,SAASoS,UAAT,CAAoBv4B,IAApB,EAA0B;MACtB,IAAIy4B,SAAS,GAAG,IAAhB;UACIC,cADJ,CADsB;;MAItB,IACId,OAAO,CAAC53B,IAAD,CAAP,KAAkBoG,SAAlB,IACA,aAAkB,WADlB,IAEAzG,MAFA,IAGAA,MAAM,CAACC,OAHP,IAIA44B,gBAAgB,CAACx4B,IAAD,CALpB,EAME;QACE,IAAI;UACAy4B,SAAS,GAAGX,YAAY,CAACa,KAAzB;UACAD,cAAc,GAAGE,eAAjB;UACAF,cAAc,CAAC,cAAc14B,IAAf,CAAd;UACA64B,kBAAkB,CAACJ,SAAD,CAAlB;SAJJ,CAKE,OAAO1gB,CAAP,EAAU;;;UAGR6f,OAAO,CAAC53B,IAAD,CAAP,GAAgB,IAAhB,CAHQ;;;;MAMhB,OAAO43B,OAAO,CAAC53B,IAAD,CAAd;KAnjEa;;;;;IAyjEjB,SAAS64B,kBAAT,CAA4Br5B,GAA5B,EAAiC+S,MAAjC,EAAyC;MACrC,IAAI3J,IAAJ;;MACA,IAAIpJ,GAAJ,EAAS;QACL,IAAI+e,WAAW,CAAChM,MAAD,CAAf,EAAyB;UACrB3J,IAAI,GAAGkwB,SAAS,CAACt5B,GAAD,CAAhB;SADJ,MAEO;UACHoJ,IAAI,GAAGmwB,YAAY,CAACv5B,GAAD,EAAM+S,MAAN,CAAnB;;;QAGJ,IAAI3J,IAAJ,EAAU;;UAENkvB,YAAY,GAAGlvB,IAAf;SAFJ,MAGO;UACH,IAAI,OAAO4N,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,CAACoM,IAA9C,EAAoD;;YAEhDpM,OAAO,CAACoM,IAAR,CACI,YAAYpjB,GAAZ,GAAkB,wCADtB;;;;;MAOZ,OAAOs4B,YAAY,CAACa,KAApB;;;IAGJ,SAASI,YAAT,CAAsB/4B,IAAtB,EAA4ByiB,MAA5B,EAAoC;MAChC,IAAIA,MAAM,KAAK,IAAf,EAAqB;QACjB,IAAIvD,MAAJ;YACI8E,YAAY,GAAGyT,UADnB;QAEAhV,MAAM,CAACuW,IAAP,GAAch5B,IAAd;;QACA,IAAI43B,OAAO,CAAC53B,IAAD,CAAP,IAAiB,IAArB,EAA2B;UACvBsjB,eAAe,CACX,sBADW,EAEX,2DACI,sDADJ,GAEI,wDAFJ,GAGI,yEALO,CAAf;UAOAU,YAAY,GAAG4T,OAAO,CAAC53B,IAAD,CAAP,CAAcyjB,OAA7B;SARJ,MASO,IAAIhB,MAAM,CAACwW,YAAP,IAAuB,IAA3B,EAAiC;UACpC,IAAIrB,OAAO,CAACnV,MAAM,CAACwW,YAAR,CAAP,IAAgC,IAApC,EAA0C;YACtCjV,YAAY,GAAG4T,OAAO,CAACnV,MAAM,CAACwW,YAAR,CAAP,CAA6BxV,OAA5C;WADJ,MAEO;YACHvE,MAAM,GAAGqZ,UAAU,CAAC9V,MAAM,CAACwW,YAAR,CAAnB;;YACA,IAAI/Z,MAAM,IAAI,IAAd,EAAoB;cAChB8E,YAAY,GAAG9E,MAAM,CAACuE,OAAtB;aADJ,MAEO;cACH,IAAI,CAACoU,cAAc,CAACpV,MAAM,CAACwW,YAAR,CAAnB,EAA0C;gBACtCpB,cAAc,CAACpV,MAAM,CAACwW,YAAR,CAAd,GAAsC,EAAtC;;;cAEJpB,cAAc,CAACpV,MAAM,CAACwW,YAAR,CAAd,CAAoC95B,IAApC,CAAyC;gBACrCa,IAAI,EAAEA,IAD+B;gBAErCyiB,MAAM,EAAEA;eAFZ;cAIA,OAAO,IAAP;;;;;QAIZmV,OAAO,CAAC53B,IAAD,CAAP,GAAgB,IAAIkkB,MAAJ,CAAWH,YAAY,CAACC,YAAD,EAAevB,MAAf,CAAvB,CAAhB;;QAEA,IAAIoV,cAAc,CAAC73B,IAAD,CAAlB,EAA0B;UACtB63B,cAAc,CAAC73B,IAAD,CAAd,CAAqB8T,OAArB,CAA6B,UAAUua,CAAV,EAAa;YACtC0K,YAAY,CAAC1K,CAAC,CAACruB,IAAH,EAASquB,CAAC,CAAC5L,MAAX,CAAZ;WADJ;SAnCa;;;;;QA2CjBoW,kBAAkB,CAAC74B,IAAD,CAAlB;QAEA,OAAO43B,OAAO,CAAC53B,IAAD,CAAd;OA7CJ,MA8CO;;QAEH,OAAO43B,OAAO,CAAC53B,IAAD,CAAd;QACA,OAAO,IAAP;;;;IAIR,SAASk5B,YAAT,CAAsBl5B,IAAtB,EAA4ByiB,MAA5B,EAAoC;MAChC,IAAIA,MAAM,IAAI,IAAd,EAAoB;QAChB,IAAIvD,MAAJ;YACIia,SADJ;YAEInV,YAAY,GAAGyT,UAFnB;;QAIA,IAAIG,OAAO,CAAC53B,IAAD,CAAP,IAAiB,IAAjB,IAAyB43B,OAAO,CAAC53B,IAAD,CAAP,CAAci5B,YAAd,IAA8B,IAA3D,EAAiE;;UAE7DrB,OAAO,CAAC53B,IAAD,CAAP,CAAcmO,GAAd,CAAkB4V,YAAY,CAAC6T,OAAO,CAAC53B,IAAD,CAAP,CAAcyjB,OAAf,EAAwBhB,MAAxB,CAA9B;SAFJ,MAGO;;UAEH0W,SAAS,GAAGZ,UAAU,CAACv4B,IAAD,CAAtB;;UACA,IAAIm5B,SAAS,IAAI,IAAjB,EAAuB;YACnBnV,YAAY,GAAGmV,SAAS,CAAC1V,OAAzB;;;UAEJhB,MAAM,GAAGsB,YAAY,CAACC,YAAD,EAAevB,MAAf,CAArB;;UACA,IAAI0W,SAAS,IAAI,IAAjB,EAAuB;;;;YAInB1W,MAAM,CAACuW,IAAP,GAAch5B,IAAd;;;UAEJkf,MAAM,GAAG,IAAIgF,MAAJ,CAAWzB,MAAX,CAAT;UACAvD,MAAM,CAAC+Z,YAAP,GAAsBrB,OAAO,CAAC53B,IAAD,CAA7B;UACA43B,OAAO,CAAC53B,IAAD,CAAP,GAAgBkf,MAAhB;SAvBY;;;QA2BhB2Z,kBAAkB,CAAC74B,IAAD,CAAlB;OA3BJ,MA4BO;;QAEH,IAAI43B,OAAO,CAAC53B,IAAD,CAAP,IAAiB,IAArB,EAA2B;UACvB,IAAI43B,OAAO,CAAC53B,IAAD,CAAP,CAAci5B,YAAd,IAA8B,IAAlC,EAAwC;YACpCrB,OAAO,CAAC53B,IAAD,CAAP,GAAgB43B,OAAO,CAAC53B,IAAD,CAAP,CAAci5B,YAA9B;;YACA,IAAIj5B,IAAI,KAAK64B,kBAAkB,EAA/B,EAAmC;cAC/BA,kBAAkB,CAAC74B,IAAD,CAAlB;;WAHR,MAKO,IAAI43B,OAAO,CAAC53B,IAAD,CAAP,IAAiB,IAArB,EAA2B;YAC9B,OAAO43B,OAAO,CAAC53B,IAAD,CAAd;;;;;MAIZ,OAAO43B,OAAO,CAAC53B,IAAD,CAAd;KAlrEa;;;IAsrEjB,SAAS84B,SAAT,CAAmBt5B,GAAnB,EAAwB;MACpB,IAAI0f,MAAJ;;MAEA,IAAI1f,GAAG,IAAIA,GAAG,CAAC+iB,OAAX,IAAsB/iB,GAAG,CAAC+iB,OAAJ,CAAYoW,KAAtC,EAA6C;QACzCn5B,GAAG,GAAGA,GAAG,CAAC+iB,OAAJ,CAAYoW,KAAlB;;;MAGJ,IAAI,CAACn5B,GAAL,EAAU;QACN,OAAOs4B,YAAP;;;MAGJ,IAAI,CAACz4B,OAAO,CAACG,GAAD,CAAZ,EAAmB;;QAEf0f,MAAM,GAAGqZ,UAAU,CAAC/4B,GAAD,CAAnB;;QACA,IAAI0f,MAAJ,EAAY;UACR,OAAOA,MAAP;;;QAEJ1f,GAAG,GAAG,CAACA,GAAD,CAAN;;;MAGJ,OAAO44B,YAAY,CAAC54B,GAAD,CAAnB;;;IAGJ,SAAS45B,WAAT,GAAuB;MACnB,OAAO7rB,IAAI,CAACqqB,OAAD,CAAX;;;IAGJ,SAASyB,aAAT,CAAuB7Y,CAAvB,EAA0B;MACtB,IAAId,QAAJ;UACIzB,CAAC,GAAGuC,CAAC,CAACiN,EADV;;MAGA,IAAIxP,CAAC,IAAIsC,eAAe,CAACC,CAAD,CAAf,CAAmBd,QAAnB,KAAgC,CAAC,CAA1C,EAA6C;QACzCA,QAAQ,GACJzB,CAAC,CAAC0P,KAAD,CAAD,GAAW,CAAX,IAAgB1P,CAAC,CAAC0P,KAAD,CAAD,GAAW,EAA3B,GACMA,KADN,GAEM1P,CAAC,CAAC2P,IAAD,CAAD,GAAU,CAAV,IAAe3P,CAAC,CAAC2P,IAAD,CAAD,GAAU5C,WAAW,CAAC/M,CAAC,CAACyP,IAAD,CAAF,EAAUzP,CAAC,CAAC0P,KAAD,CAAX,CAApC,GACAC,IADA,GAEA3P,CAAC,CAAC4P,IAAD,CAAD,GAAU,CAAV,IACA5P,CAAC,CAAC4P,IAAD,CAAD,GAAU,EADV,IAEC5P,CAAC,CAAC4P,IAAD,CAAD,KAAY,EAAZ,KACI5P,CAAC,CAAC6P,MAAD,CAAD,KAAc,CAAd,IACG7P,CAAC,CAAC8P,MAAD,CAAD,KAAc,CADjB,IAEG9P,CAAC,CAAC+P,WAAD,CAAD,KAAmB,CAH1B,CAFD,GAMAH,IANA,GAOA5P,CAAC,CAAC6P,MAAD,CAAD,GAAY,CAAZ,IAAiB7P,CAAC,CAAC6P,MAAD,CAAD,GAAY,EAA7B,GACAA,MADA,GAEA7P,CAAC,CAAC8P,MAAD,CAAD,GAAY,CAAZ,IAAiB9P,CAAC,CAAC8P,MAAD,CAAD,GAAY,EAA7B,GACAA,MADA,GAEA9P,CAAC,CAAC+P,WAAD,CAAD,GAAiB,CAAjB,IAAsB/P,CAAC,CAAC+P,WAAD,CAAD,GAAiB,GAAvC,GACAA,WADA,GAEA,CAAC,CAlBX;;QAoBA,IACIzN,eAAe,CAACC,CAAD,CAAf,CAAmB8Y,kBAAnB,KACC5Z,QAAQ,GAAGgO,IAAX,IAAmBhO,QAAQ,GAAGkO,IAD/B,CADJ,EAGE;UACElO,QAAQ,GAAGkO,IAAX;;;QAEJ,IAAIrN,eAAe,CAACC,CAAD,CAAf,CAAmB+Y,cAAnB,IAAqC7Z,QAAQ,KAAK,CAAC,CAAvD,EAA0D;UACtDA,QAAQ,GAAGuO,IAAX;;;QAEJ,IAAI1N,eAAe,CAACC,CAAD,CAAf,CAAmBgZ,gBAAnB,IAAuC9Z,QAAQ,KAAK,CAAC,CAAzD,EAA4D;UACxDA,QAAQ,GAAGwO,OAAX;;;QAGJ3N,eAAe,CAACC,CAAD,CAAf,CAAmBd,QAAnB,GAA8BA,QAA9B;;;MAGJ,OAAOc,CAAP;KA1vEa;;;;IA+vEjB,IAAIiZ,gBAAgB,GACZ,gJADR;QAEIC,aAAa,GACT,4IAHR;QAIIC,OAAO,GAAG,uBAJd;QAKIC,QAAQ,GAAG,CACP,CAAC,cAAD,EAAiB,qBAAjB,CADO,EAEP,CAAC,YAAD,EAAe,iBAAf,CAFO,EAGP,CAAC,cAAD,EAAiB,gBAAjB,CAHO,EAIP,CAAC,YAAD,EAAe,aAAf,EAA8B,KAA9B,CAJO,EAKP,CAAC,UAAD,EAAa,aAAb,CALO,EAMP,CAAC,SAAD,EAAY,YAAZ,EAA0B,KAA1B,CANO,EAOP,CAAC,YAAD,EAAe,YAAf,CAPO,EAQP,CAAC,UAAD,EAAa,OAAb,CARO,EASP,CAAC,YAAD,EAAe,aAAf,CATO,EAUP,CAAC,WAAD,EAAc,aAAd,EAA6B,KAA7B,CAVO,EAWP,CAAC,SAAD,EAAY,OAAZ,CAXO,EAYP,CAAC,QAAD,EAAW,OAAX,EAAoB,KAApB,CAZO,EAaP,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,CAbO,CALf;;IAqBIC,QAAQ,GAAG,CACP,CAAC,eAAD,EAAkB,qBAAlB,CADO,EAEP,CAAC,eAAD,EAAkB,oBAAlB,CAFO,EAGP,CAAC,UAAD,EAAa,gBAAb,CAHO,EAIP,CAAC,OAAD,EAAU,WAAV,CAJO,EAKP,CAAC,aAAD,EAAgB,mBAAhB,CALO,EAMP,CAAC,aAAD,EAAgB,kBAAhB,CANO,EAOP,CAAC,QAAD,EAAW,cAAX,CAPO,EAQP,CAAC,MAAD,EAAS,UAAT,CARO,EASP,CAAC,IAAD,EAAO,MAAP,CATO,CArBf;QAgCIC,eAAe,GAAG,oBAhCtB;;IAkCIzZ,OAAO,GACH,yLAnCR;QAoCI0Z,UAAU,GAAG;MACTC,EAAE,EAAE,CADK;MAETC,GAAG,EAAE,CAFI;MAGTC,GAAG,EAAE,CAAC,CAAD,GAAK,EAHD;MAITC,GAAG,EAAE,CAAC,CAAD,GAAK,EAJD;MAKTC,GAAG,EAAE,CAAC,CAAD,GAAK,EALD;MAMTC,GAAG,EAAE,CAAC,CAAD,GAAK,EAND;MAOTC,GAAG,EAAE,CAAC,CAAD,GAAK,EAPD;MAQTC,GAAG,EAAE,CAAC,CAAD,GAAK,EARD;MASTC,GAAG,EAAE,CAAC,CAAD,GAAK,EATD;MAUTC,GAAG,EAAE,CAAC,CAAD,GAAK;KA9ClB,CA/vEiB;;IAizEjB,SAASC,aAAT,CAAuBjY,MAAvB,EAA+B;MAC3B,IAAI3jB,CAAJ;UACI67B,CADJ;UAEIh5B,MAAM,GAAG8gB,MAAM,CAACR,EAFpB;UAGIkE,KAAK,GAAGsT,gBAAgB,CAACmB,IAAjB,CAAsBj5B,MAAtB,KAAiC+3B,aAAa,CAACkB,IAAd,CAAmBj5B,MAAnB,CAH7C;UAIIk5B,SAJJ;UAKIC,UALJ;UAMIC,UANJ;UAOIC,QAPJ;UAQIC,WAAW,GAAGrB,QAAQ,CAAC56B,MAR3B;UASIk8B,WAAW,GAAGrB,QAAQ,CAAC76B,MAT3B;;MAWA,IAAImnB,KAAJ,EAAW;QACP5F,eAAe,CAACkC,MAAD,CAAf,CAAwBxC,GAAxB,GAA8B,IAA9B;;QACA,KAAKnhB,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAGM,WAAhB,EAA6Bn8B,CAAC,GAAG67B,CAAjC,EAAoC77B,CAAC,EAArC,EAAyC;UACrC,IAAI86B,QAAQ,CAAC96B,CAAD,CAAR,CAAY,CAAZ,EAAe87B,IAAf,CAAoBzU,KAAK,CAAC,CAAD,CAAzB,CAAJ,EAAmC;YAC/B2U,UAAU,GAAGlB,QAAQ,CAAC96B,CAAD,CAAR,CAAY,CAAZ,CAAb;YACA+7B,SAAS,GAAGjB,QAAQ,CAAC96B,CAAD,CAAR,CAAY,CAAZ,MAAmB,KAA/B;YACA;;;;QAGR,IAAIg8B,UAAU,IAAI,IAAlB,EAAwB;UACpBrY,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;UACA;;;QAEJ,IAAIsF,KAAK,CAAC,CAAD,CAAT,EAAc;UACV,KAAKrnB,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAGO,WAAhB,EAA6Bp8B,CAAC,GAAG67B,CAAjC,EAAoC77B,CAAC,EAArC,EAAyC;YACrC,IAAI+6B,QAAQ,CAAC/6B,CAAD,CAAR,CAAY,CAAZ,EAAe87B,IAAf,CAAoBzU,KAAK,CAAC,CAAD,CAAzB,CAAJ,EAAmC;;cAE/B4U,UAAU,GAAG,CAAC5U,KAAK,CAAC,CAAD,CAAL,IAAY,GAAb,IAAoB0T,QAAQ,CAAC/6B,CAAD,CAAR,CAAY,CAAZ,CAAjC;cACA;;;;UAGR,IAAIi8B,UAAU,IAAI,IAAlB,EAAwB;YACpBtY,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;YACA;;;;QAGR,IAAI,CAACga,SAAD,IAAcE,UAAU,IAAI,IAAhC,EAAsC;UAClCtY,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;UACA;;;QAEJ,IAAIsF,KAAK,CAAC,CAAD,CAAT,EAAc;UACV,IAAIwT,OAAO,CAACiB,IAAR,CAAazU,KAAK,CAAC,CAAD,CAAlB,CAAJ,EAA4B;YACxB6U,QAAQ,GAAG,GAAX;WADJ,MAEO;YACHvY,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;YACA;;;;QAGR4B,MAAM,CAACP,EAAP,GAAY4Y,UAAU,IAAIC,UAAU,IAAI,EAAlB,CAAV,IAAmCC,QAAQ,IAAI,EAA/C,CAAZ;QACAG,yBAAyB,CAAC1Y,MAAD,CAAzB;OAvCJ,MAwCO;QACHA,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;;;;IAIR,SAASua,yBAAT,CACIC,OADJ,EAEIC,QAFJ,EAGIC,MAHJ,EAIIC,OAJJ,EAKIC,SALJ,EAMIC,SANJ,EAOE;MACE,IAAIC,MAAM,GAAG,CACTC,cAAc,CAACP,OAAD,CADL,EAETtM,wBAAwB,CAACT,OAAzB,CAAiCgN,QAAjC,CAFS,EAGTtK,QAAQ,CAACuK,MAAD,EAAS,EAAT,CAHC,EAITvK,QAAQ,CAACwK,OAAD,EAAU,EAAV,CAJC,EAKTxK,QAAQ,CAACyK,SAAD,EAAY,EAAZ,CALC,CAAb;;MAQA,IAAIC,SAAJ,EAAe;QACXC,MAAM,CAACx8B,IAAP,CAAY6xB,QAAQ,CAAC0K,SAAD,EAAY,EAAZ,CAApB;;;MAGJ,OAAOC,MAAP;;;IAGJ,SAASC,cAAT,CAAwBP,OAAxB,EAAiC;MAC7B,IAAIlR,IAAI,GAAG6G,QAAQ,CAACqK,OAAD,EAAU,EAAV,CAAnB;;MACA,IAAIlR,IAAI,IAAI,EAAZ,EAAgB;QACZ,OAAO,OAAOA,IAAd;OADJ,MAEO,IAAIA,IAAI,IAAI,GAAZ,EAAiB;QACpB,OAAO,OAAOA,IAAd;;;MAEJ,OAAOA,IAAP;;;IAGJ,SAAS0R,iBAAT,CAA2BhU,CAA3B,EAA8B;;MAE1B,OAAOA,CAAC,CACHzB,OADE,CACM,mBADN,EAC2B,GAD3B,EAEFA,OAFE,CAEM,UAFN,EAEkB,GAFlB,EAGFA,OAHE,CAGM,QAHN,EAGgB,EAHhB,EAIFA,OAJE,CAIM,QAJN,EAIgB,EAJhB,CAAP;;;IAOJ,SAAS0V,YAAT,CAAsBC,UAAtB,EAAkCC,WAAlC,EAA+CvZ,MAA/C,EAAuD;MACnD,IAAIsZ,UAAJ,EAAgB;;QAEZ,IAAIE,eAAe,GAAG/H,0BAA0B,CAAC5F,OAA3B,CAAmCyN,UAAnC,CAAtB;YACIG,aAAa,GAAG,IAAIxd,IAAJ,CACZsd,WAAW,CAAC,CAAD,CADC,EAEZA,WAAW,CAAC,CAAD,CAFC,EAGZA,WAAW,CAAC,CAAD,CAHC,EAIdzG,MAJc,EADpB;;QAMA,IAAI0G,eAAe,KAAKC,aAAxB,EAAuC;UACnC3b,eAAe,CAACkC,MAAD,CAAf,CAAwBnC,eAAxB,GAA0C,IAA1C;UACAmC,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;UACA,OAAO,KAAP;;;;MAGR,OAAO,IAAP;;;IAGJ,SAASsb,eAAT,CAAyBC,SAAzB,EAAoCC,cAApC,EAAoDC,SAApD,EAA+D;MAC3D,IAAIF,SAAJ,EAAe;QACX,OAAOrC,UAAU,CAACqC,SAAD,CAAjB;OADJ,MAEO,IAAIC,cAAJ,EAAoB;;QAEvB,OAAO,CAAP;OAFG,MAGA;QACH,IAAIE,EAAE,GAAGvL,QAAQ,CAACsL,SAAD,EAAY,EAAZ,CAAjB;YACI9b,CAAC,GAAG+b,EAAE,GAAG,GADb;YAEIvU,CAAC,GAAG,CAACuU,EAAE,GAAG/b,CAAN,IAAW,GAFnB;QAGA,OAAOwH,CAAC,GAAG,EAAJ,GAASxH,CAAhB;;KAh7ES;;;IAq7EjB,SAASgc,iBAAT,CAA2B/Z,MAA3B,EAAmC;MAC/B,IAAI0D,KAAK,GAAG9F,OAAO,CAACua,IAAR,CAAaiB,iBAAiB,CAACpZ,MAAM,CAACR,EAAR,CAA9B,CAAZ;UACIwa,WADJ;;MAEA,IAAItW,KAAJ,EAAW;QACPsW,WAAW,GAAGrB,yBAAyB,CACnCjV,KAAK,CAAC,CAAD,CAD8B,EAEnCA,KAAK,CAAC,CAAD,CAF8B,EAGnCA,KAAK,CAAC,CAAD,CAH8B,EAInCA,KAAK,CAAC,CAAD,CAJ8B,EAKnCA,KAAK,CAAC,CAAD,CAL8B,EAMnCA,KAAK,CAAC,CAAD,CAN8B,CAAvC;;QAQA,IAAI,CAAC2V,YAAY,CAAC3V,KAAK,CAAC,CAAD,CAAN,EAAWsW,WAAX,EAAwBha,MAAxB,CAAjB,EAAkD;UAC9C;;;QAGJA,MAAM,CAACgL,EAAP,GAAYgP,WAAZ;QACAha,MAAM,CAACL,IAAP,GAAc+Z,eAAe,CAAChW,KAAK,CAAC,CAAD,CAAN,EAAWA,KAAK,CAAC,CAAD,CAAhB,EAAqBA,KAAK,CAAC,EAAD,CAA1B,CAA7B;QAEA1D,MAAM,CAACvB,EAAP,GAAYsQ,aAAa,CAACjyB,KAAd,CAAoB,IAApB,EAA0BkjB,MAAM,CAACgL,EAAjC,CAAZ;;QACAhL,MAAM,CAACvB,EAAP,CAAUwb,aAAV,CAAwBja,MAAM,CAACvB,EAAP,CAAUyb,aAAV,KAA4Bla,MAAM,CAACL,IAA3D;;QAEA7B,eAAe,CAACkC,MAAD,CAAf,CAAwBpC,OAAxB,GAAkC,IAAlC;OAnBJ,MAoBO;QACHoC,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;;KA78ES;;;IAk9EjB,SAAS+b,gBAAT,CAA0Bna,MAA1B,EAAkC;MAC9B,IAAIqK,OAAO,GAAGgN,eAAe,CAACc,IAAhB,CAAqBnY,MAAM,CAACR,EAA5B,CAAd;;MACA,IAAI6K,OAAO,KAAK,IAAhB,EAAsB;QAClBrK,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAAS,CAACoO,OAAO,CAAC,CAAD,CAAjB,CAAZ;QACA;;;MAGJ4N,aAAa,CAACjY,MAAD,CAAb;;MACA,IAAIA,MAAM,CAAC5B,QAAP,KAAoB,KAAxB,EAA+B;QAC3B,OAAO4B,MAAM,CAAC5B,QAAd;OADJ,MAEO;QACH;;;MAGJ2b,iBAAiB,CAAC/Z,MAAD,CAAjB;;MACA,IAAIA,MAAM,CAAC5B,QAAP,KAAoB,KAAxB,EAA+B;QAC3B,OAAO4B,MAAM,CAAC5B,QAAd;OADJ,MAEO;QACH;;;MAGJ,IAAI4B,MAAM,CAACpB,OAAX,EAAoB;QAChBoB,MAAM,CAAC5B,QAAP,GAAkB,KAAlB;OADJ,MAEO;;QAEH1X,KAAK,CAAC0zB,uBAAN,CAA8Bpa,MAA9B;;;;IAIRtZ,KAAK,CAAC0zB,uBAAN,GAAgC9Z,SAAS,CACrC,+GACI,2FADJ,GAEI,4FAHiC,EAIrC,UAAUN,MAAV,EAAkB;MACdA,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAAS+D,MAAM,CAACR,EAAP,IAAaQ,MAAM,CAACqa,OAAP,GAAiB,MAAjB,GAA0B,EAAvC,CAAT,CAAZ;KALiC,CAAzC,CA/+EiB;;IAy/EjB,SAAS3nB,QAAT,CAAkB8I,CAAlB,EAAqBC,CAArB,EAAwB6e,CAAxB,EAA2B;MACvB,IAAI9e,CAAC,IAAI,IAAT,EAAe;QACX,OAAOA,CAAP;;;MAEJ,IAAIC,CAAC,IAAI,IAAT,EAAe;QACX,OAAOA,CAAP;;;MAEJ,OAAO6e,CAAP;;;IAGJ,SAASC,gBAAT,CAA0Bva,MAA1B,EAAkC;;MAE9B,IAAIwa,QAAQ,GAAG,IAAIve,IAAJ,CAASvV,KAAK,CAACyb,GAAN,EAAT,CAAf;;MACA,IAAInC,MAAM,CAACqa,OAAX,EAAoB;QAChB,OAAO,CACHG,QAAQ,CAACvL,cAAT,EADG,EAEHuL,QAAQ,CAACC,WAAT,EAFG,EAGHD,QAAQ,CAACE,UAAT,EAHG,CAAP;;;MAMJ,OAAO,CAACF,QAAQ,CAAC3L,WAAT,EAAD,EAAyB2L,QAAQ,CAACG,QAAT,EAAzB,EAA8CH,QAAQ,CAACI,OAAT,EAA9C,CAAP;KA7gFa;;;;;;IAohFjB,SAASC,eAAT,CAAyB7a,MAAzB,EAAiC;MAC7B,IAAI3jB,CAAJ;UACIisB,IADJ;UAEIlW,KAAK,GAAG,EAFZ;UAGI0oB,WAHJ;UAIIC,eAJJ;UAKIC,SALJ;;MAOA,IAAIhb,MAAM,CAACvB,EAAX,EAAe;QACX;;;MAGJqc,WAAW,GAAGP,gBAAgB,CAACva,MAAD,CAA9B,CAZ6B;;MAe7B,IAAIA,MAAM,CAAC8K,EAAP,IAAa9K,MAAM,CAACgL,EAAP,CAAUG,IAAV,KAAmB,IAAhC,IAAwCnL,MAAM,CAACgL,EAAP,CAAUE,KAAV,KAAoB,IAAhE,EAAsE;QAClE+P,qBAAqB,CAACjb,MAAD,CAArB;OAhByB;;;MAoB7B,IAAIA,MAAM,CAACkb,UAAP,IAAqB,IAAzB,EAA+B;QAC3BF,SAAS,GAAGtoB,QAAQ,CAACsN,MAAM,CAACgL,EAAP,CAAUC,IAAV,CAAD,EAAkB6P,WAAW,CAAC7P,IAAD,CAA7B,CAApB;;QAEA,IACIjL,MAAM,CAACkb,UAAP,GAAoB1M,UAAU,CAACwM,SAAD,CAA9B,IACAhb,MAAM,CAACkb,UAAP,KAAsB,CAF1B,EAGE;UACEpd,eAAe,CAACkC,MAAD,CAAf,CAAwB6W,kBAAxB,GAA6C,IAA7C;;;QAGJvO,IAAI,GAAGyG,aAAa,CAACiM,SAAD,EAAY,CAAZ,EAAehb,MAAM,CAACkb,UAAtB,CAApB;QACAlb,MAAM,CAACgL,EAAP,CAAUE,KAAV,IAAmB5C,IAAI,CAACmS,WAAL,EAAnB;QACAza,MAAM,CAACgL,EAAP,CAAUG,IAAV,IAAkB7C,IAAI,CAACoS,UAAL,EAAlB;OAhCyB;;;;;;;MAwC7B,KAAKr+B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAJ,IAAS2jB,MAAM,CAACgL,EAAP,CAAU3uB,CAAV,KAAgB,IAArC,EAA2C,EAAEA,CAA7C,EAAgD;QAC5C2jB,MAAM,CAACgL,EAAP,CAAU3uB,CAAV,IAAe+V,KAAK,CAAC/V,CAAD,CAAL,GAAWy+B,WAAW,CAACz+B,CAAD,CAArC;OAzCyB;;;MA6C7B,OAAOA,CAAC,GAAG,CAAX,EAAcA,CAAC,EAAf,EAAmB;QACf2jB,MAAM,CAACgL,EAAP,CAAU3uB,CAAV,IAAe+V,KAAK,CAAC/V,CAAD,CAAL,GACX2jB,MAAM,CAACgL,EAAP,CAAU3uB,CAAV,KAAgB,IAAhB,GAAwBA,CAAC,KAAK,CAAN,GAAU,CAAV,GAAc,CAAtC,GAA2C2jB,MAAM,CAACgL,EAAP,CAAU3uB,CAAV,CAD/C;OA9CyB;;;MAmD7B,IACI2jB,MAAM,CAACgL,EAAP,CAAUI,IAAV,MAAoB,EAApB,IACApL,MAAM,CAACgL,EAAP,CAAUK,MAAV,MAAsB,CADtB,IAEArL,MAAM,CAACgL,EAAP,CAAUM,MAAV,MAAsB,CAFtB,IAGAtL,MAAM,CAACgL,EAAP,CAAUO,WAAV,MAA2B,CAJ/B,EAKE;QACEvL,MAAM,CAACmb,QAAP,GAAkB,IAAlB;QACAnb,MAAM,CAACgL,EAAP,CAAUI,IAAV,IAAkB,CAAlB;;;MAGJpL,MAAM,CAACvB,EAAP,GAAY,CAACuB,MAAM,CAACqa,OAAP,GAAiBtL,aAAjB,GAAiCJ,UAAlC,EAA8C7xB,KAA9C,CACR,IADQ,EAERsV,KAFQ,CAAZ;MAIA2oB,eAAe,GAAG/a,MAAM,CAACqa,OAAP,GACZra,MAAM,CAACvB,EAAP,CAAU+Q,SAAV,EADY,GAEZxP,MAAM,CAACvB,EAAP,CAAUqU,MAAV,EAFN,CAjE6B;;;MAuE7B,IAAI9S,MAAM,CAACL,IAAP,IAAe,IAAnB,EAAyB;QACrBK,MAAM,CAACvB,EAAP,CAAUwb,aAAV,CAAwBja,MAAM,CAACvB,EAAP,CAAUyb,aAAV,KAA4Bla,MAAM,CAACL,IAA3D;;;MAGJ,IAAIK,MAAM,CAACmb,QAAX,EAAqB;QACjBnb,MAAM,CAACgL,EAAP,CAAUI,IAAV,IAAkB,EAAlB;OA5EyB;;;MAgF7B,IACIpL,MAAM,CAAC8K,EAAP,IACA,OAAO9K,MAAM,CAAC8K,EAAP,CAAUrF,CAAjB,KAAuB,WADvB,IAEAzF,MAAM,CAAC8K,EAAP,CAAUrF,CAAV,KAAgBsV,eAHpB,EAIE;QACEjd,eAAe,CAACkC,MAAD,CAAf,CAAwBnC,eAAxB,GAA0C,IAA1C;;;;IAIR,SAASod,qBAAT,CAA+Bjb,MAA/B,EAAuC;MACnC,IAAI2F,CAAJ,EAAOyV,QAAP,EAAiB1L,IAAjB,EAAuBC,OAAvB,EAAgCP,GAAhC,EAAqCC,GAArC,EAA0CgM,IAA1C,EAAgDC,eAAhD,EAAiEC,OAAjE;MAEA5V,CAAC,GAAG3F,MAAM,CAAC8K,EAAX;;MACA,IAAInF,CAAC,CAAC6V,EAAF,IAAQ,IAAR,IAAgB7V,CAAC,CAAC8V,CAAF,IAAO,IAAvB,IAA+B9V,CAAC,CAAC+V,CAAF,IAAO,IAA1C,EAAgD;QAC5CtM,GAAG,GAAG,CAAN;QACAC,GAAG,GAAG,CAAN,CAF4C;;;;;QAQ5C+L,QAAQ,GAAG1oB,QAAQ,CACfiT,CAAC,CAAC6V,EADa,EAEfxb,MAAM,CAACgL,EAAP,CAAUC,IAAV,CAFe,EAGfgF,UAAU,CAAC0L,WAAW,EAAZ,EAAgB,CAAhB,EAAmB,CAAnB,CAAV,CAAgCjU,IAHjB,CAAnB;QAKAgI,IAAI,GAAGhd,QAAQ,CAACiT,CAAC,CAAC8V,CAAH,EAAM,CAAN,CAAf;QACA9L,OAAO,GAAGjd,QAAQ,CAACiT,CAAC,CAAC+V,CAAH,EAAM,CAAN,CAAlB;;QACA,IAAI/L,OAAO,GAAG,CAAV,IAAeA,OAAO,GAAG,CAA7B,EAAgC;UAC5B2L,eAAe,GAAG,IAAlB;;OAhBR,MAkBO;QACHlM,GAAG,GAAGpP,MAAM,CAACF,OAAP,CAAewQ,KAAf,CAAqBlB,GAA3B;QACAC,GAAG,GAAGrP,MAAM,CAACF,OAAP,CAAewQ,KAAf,CAAqBjB,GAA3B;QAEAkM,OAAO,GAAGtL,UAAU,CAAC0L,WAAW,EAAZ,EAAgBvM,GAAhB,EAAqBC,GAArB,CAApB;QAEA+L,QAAQ,GAAG1oB,QAAQ,CAACiT,CAAC,CAACiW,EAAH,EAAO5b,MAAM,CAACgL,EAAP,CAAUC,IAAV,CAAP,EAAwBsQ,OAAO,CAAC7T,IAAhC,CAAnB,CANG;;QASHgI,IAAI,GAAGhd,QAAQ,CAACiT,CAAC,CAACA,CAAH,EAAM4V,OAAO,CAAC7L,IAAd,CAAf;;QAEA,IAAI/J,CAAC,CAACF,CAAF,IAAO,IAAX,EAAiB;;UAEbkK,OAAO,GAAGhK,CAAC,CAACF,CAAZ;;UACA,IAAIkK,OAAO,GAAG,CAAV,IAAeA,OAAO,GAAG,CAA7B,EAAgC;YAC5B2L,eAAe,GAAG,IAAlB;;SAJR,MAMO,IAAI3V,CAAC,CAACrQ,CAAF,IAAO,IAAX,EAAiB;;UAEpBqa,OAAO,GAAGhK,CAAC,CAACrQ,CAAF,GAAM8Z,GAAhB;;UACA,IAAIzJ,CAAC,CAACrQ,CAAF,GAAM,CAAN,IAAWqQ,CAAC,CAACrQ,CAAF,GAAM,CAArB,EAAwB;YACpBgmB,eAAe,GAAG,IAAlB;;SAJD,MAMA;;UAEH3L,OAAO,GAAGP,GAAV;;;;MAGR,IAAIM,IAAI,GAAG,CAAP,IAAYA,IAAI,GAAGS,WAAW,CAACiL,QAAD,EAAWhM,GAAX,EAAgBC,GAAhB,CAAlC,EAAwD;QACpDvR,eAAe,CAACkC,MAAD,CAAf,CAAwB8W,cAAxB,GAAyC,IAAzC;OADJ,MAEO,IAAIwE,eAAe,IAAI,IAAvB,EAA6B;QAChCxd,eAAe,CAACkC,MAAD,CAAf,CAAwB+W,gBAAxB,GAA2C,IAA3C;OADG,MAEA;QACHsE,IAAI,GAAG5L,kBAAkB,CAAC2L,QAAD,EAAW1L,IAAX,EAAiBC,OAAjB,EAA0BP,GAA1B,EAA+BC,GAA/B,CAAzB;QACArP,MAAM,CAACgL,EAAP,CAAUC,IAAV,IAAkBoQ,IAAI,CAAC3T,IAAvB;QACA1H,MAAM,CAACkb,UAAP,GAAoBG,IAAI,CAACvL,SAAzB;;KAtqFS;;;IA2qFjBppB,KAAK,CAACm1B,QAAN,GAAiB,YAAY,EAA7B,CA3qFiB;;;IA8qFjBn1B,KAAK,CAACo1B,QAAN,GAAiB,YAAY,EAA7B,CA9qFiB;;;IAirFjB,SAASpD,yBAAT,CAAmC1Y,MAAnC,EAA2C;;MAEvC,IAAIA,MAAM,CAACP,EAAP,KAAc/Y,KAAK,CAACm1B,QAAxB,EAAkC;QAC9B5D,aAAa,CAACjY,MAAD,CAAb;QACA;;;MAEJ,IAAIA,MAAM,CAACP,EAAP,KAAc/Y,KAAK,CAACo1B,QAAxB,EAAkC;QAC9B/B,iBAAiB,CAAC/Z,MAAD,CAAjB;QACA;;;MAEJA,MAAM,CAACgL,EAAP,GAAY,EAAZ;MACAlN,eAAe,CAACkC,MAAD,CAAf,CAAwBlD,KAAxB,GAAgC,IAAhC,CAXuC;;MAcvC,IAAI5d,MAAM,GAAG,KAAK8gB,MAAM,CAACR,EAAzB;UACInjB,CADJ;UAEIk9B,WAFJ;UAGI7O,MAHJ;UAIIrH,KAJJ;UAKI0Y,OALJ;UAMIC,YAAY,GAAG98B,MAAM,CAAC3C,MAN1B;UAOI0/B,sBAAsB,GAAG,CAP7B;UAQIve,GARJ;UASIkN,QATJ;MAWAF,MAAM,GACF3G,YAAY,CAAC/D,MAAM,CAACP,EAAR,EAAYO,MAAM,CAACF,OAAnB,CAAZ,CAAwC4D,KAAxC,CAA8CV,gBAA9C,KAAmE,EADvE;MAEA4H,QAAQ,GAAGF,MAAM,CAACnuB,MAAlB;;MACA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGuuB,QAAhB,EAA0BvuB,CAAC,EAA3B,EAA+B;QAC3BgnB,KAAK,GAAGqH,MAAM,CAACruB,CAAD,CAAd;QACAk9B,WAAW,GAAG,CAACr6B,MAAM,CAACwkB,KAAP,CAAawG,qBAAqB,CAAC7G,KAAD,EAAQrD,MAAR,CAAlC,KACX,EADU,EACN,CADM,CAAd;;QAEA,IAAIuZ,WAAJ,EAAiB;UACbwC,OAAO,GAAG78B,MAAM,CAAC6jB,MAAP,CAAc,CAAd,EAAiB7jB,MAAM,CAAC2sB,OAAP,CAAe0N,WAAf,CAAjB,CAAV;;UACA,IAAIwC,OAAO,CAACx/B,MAAR,GAAiB,CAArB,EAAwB;YACpBuhB,eAAe,CAACkC,MAAD,CAAf,CAAwBhD,WAAxB,CAAoCtgB,IAApC,CAAyCq/B,OAAzC;;;UAEJ78B,MAAM,GAAGA,MAAM,CAACqO,KAAP,CACLrO,MAAM,CAAC2sB,OAAP,CAAe0N,WAAf,IAA8BA,WAAW,CAACh9B,MADrC,CAAT;UAGA0/B,sBAAsB,IAAI1C,WAAW,CAACh9B,MAAtC;SAZuB;;;QAe3B,IAAI4mB,oBAAoB,CAACE,KAAD,CAAxB,EAAiC;UAC7B,IAAIkW,WAAJ,EAAiB;YACbzb,eAAe,CAACkC,MAAD,CAAf,CAAwBlD,KAAxB,GAAgC,KAAhC;WADJ,MAEO;YACHgB,eAAe,CAACkC,MAAD,CAAf,CAAwBjD,YAAxB,CAAqCrgB,IAArC,CAA0C2mB,KAA1C;;;UAEJ0H,uBAAuB,CAAC1H,KAAD,EAAQkW,WAAR,EAAqBvZ,MAArB,CAAvB;SANJ,MAOO,IAAIA,MAAM,CAACpB,OAAP,IAAkB,CAAC2a,WAAvB,EAAoC;UACvCzb,eAAe,CAACkC,MAAD,CAAf,CAAwBjD,YAAxB,CAAqCrgB,IAArC,CAA0C2mB,KAA1C;;OAnD+B;;;MAwDvCvF,eAAe,CAACkC,MAAD,CAAf,CAAwB9C,aAAxB,GACI8e,YAAY,GAAGC,sBADnB;;MAEA,IAAI/8B,MAAM,CAAC3C,MAAP,GAAgB,CAApB,EAAuB;QACnBuhB,eAAe,CAACkC,MAAD,CAAf,CAAwBhD,WAAxB,CAAoCtgB,IAApC,CAAyCwC,MAAzC;OA3DmC;;;MA+DvC,IACI8gB,MAAM,CAACgL,EAAP,CAAUI,IAAV,KAAmB,EAAnB,IACAtN,eAAe,CAACkC,MAAD,CAAf,CAAwBnB,OAAxB,KAAoC,IADpC,IAEAmB,MAAM,CAACgL,EAAP,CAAUI,IAAV,IAAkB,CAHtB,EAIE;QACEtN,eAAe,CAACkC,MAAD,CAAf,CAAwBnB,OAAxB,GAAkClb,SAAlC;;;MAGJma,eAAe,CAACkC,MAAD,CAAf,CAAwBvC,eAAxB,GAA0CuC,MAAM,CAACgL,EAAP,CAAUzd,KAAV,CAAgB,CAAhB,CAA1C;MACAuQ,eAAe,CAACkC,MAAD,CAAf,CAAwBrC,QAAxB,GAAmCqC,MAAM,CAACuU,SAA1C,CAxEuC;;MA0EvCvU,MAAM,CAACgL,EAAP,CAAUI,IAAV,IAAkB8Q,eAAe,CAC7Blc,MAAM,CAACF,OADsB,EAE7BE,MAAM,CAACgL,EAAP,CAAUI,IAAV,CAF6B,EAG7BpL,MAAM,CAACuU,SAHsB,CAAjC,CA1EuC;;MAiFvC7W,GAAG,GAAGI,eAAe,CAACkC,MAAD,CAAf,CAAwBtC,GAA9B;;MACA,IAAIA,GAAG,KAAK,IAAZ,EAAkB;QACdsC,MAAM,CAACgL,EAAP,CAAUC,IAAV,IAAkBjL,MAAM,CAACF,OAAP,CAAeqc,eAAf,CAA+Bze,GAA/B,EAAoCsC,MAAM,CAACgL,EAAP,CAAUC,IAAV,CAApC,CAAlB;;;MAGJ4P,eAAe,CAAC7a,MAAD,CAAf;MACA4W,aAAa,CAAC5W,MAAD,CAAb;;;IAGJ,SAASkc,eAAT,CAAyBzf,MAAzB,EAAiC2f,IAAjC,EAAuCze,QAAvC,EAAiD;MAC7C,IAAI0e,IAAJ;;MAEA,IAAI1e,QAAQ,IAAI,IAAhB,EAAsB;;QAElB,OAAOye,IAAP;;;MAEJ,IAAI3f,MAAM,CAAC6f,YAAP,IAAuB,IAA3B,EAAiC;QAC7B,OAAO7f,MAAM,CAAC6f,YAAP,CAAoBF,IAApB,EAA0Bze,QAA1B,CAAP;OADJ,MAEO,IAAIlB,MAAM,CAAC6X,IAAP,IAAe,IAAnB,EAAyB;;QAE5B+H,IAAI,GAAG5f,MAAM,CAAC6X,IAAP,CAAY3W,QAAZ,CAAP;;QACA,IAAI0e,IAAI,IAAID,IAAI,GAAG,EAAnB,EAAuB;UACnBA,IAAI,IAAI,EAAR;;;QAEJ,IAAI,CAACC,IAAD,IAASD,IAAI,KAAK,EAAtB,EAA0B;UACtBA,IAAI,GAAG,CAAP;;;QAEJ,OAAOA,IAAP;OATG,MAUA;;QAEH,OAAOA,IAAP;;KAhyFS;;;IAqyFjB,SAASG,wBAAT,CAAkCvc,MAAlC,EAA0C;MACtC,IAAIwc,UAAJ;UACIC,UADJ;UAEIC,WAFJ;UAGIrgC,CAHJ;UAIIsgC,YAJJ;UAKIC,gBALJ;UAMIC,iBAAiB,GAAG,KANxB;UAOIC,UAAU,GAAG9c,MAAM,CAACP,EAAP,CAAUljB,MAP3B;;MASA,IAAIugC,UAAU,KAAK,CAAnB,EAAsB;QAClBhf,eAAe,CAACkC,MAAD,CAAf,CAAwB1C,aAAxB,GAAwC,IAAxC;QACA0C,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAAS+C,GAAT,CAAZ;QACA;;;MAGJ,KAAK3iB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGygC,UAAhB,EAA4BzgC,CAAC,EAA7B,EAAiC;QAC7BsgC,YAAY,GAAG,CAAf;QACAC,gBAAgB,GAAG,KAAnB;QACAJ,UAAU,GAAGrd,UAAU,CAAC,EAAD,EAAKa,MAAL,CAAvB;;QACA,IAAIA,MAAM,CAACqa,OAAP,IAAkB,IAAtB,EAA4B;UACxBmC,UAAU,CAACnC,OAAX,GAAqBra,MAAM,CAACqa,OAA5B;;;QAEJmC,UAAU,CAAC/c,EAAX,GAAgBO,MAAM,CAACP,EAAP,CAAUpjB,CAAV,CAAhB;QACAq8B,yBAAyB,CAAC8D,UAAD,CAAzB;;QAEA,IAAIlqB,OAAO,CAACkqB,UAAD,CAAX,EAAyB;UACrBI,gBAAgB,GAAG,IAAnB;SAXyB;;;QAe7BD,YAAY,IAAI7e,eAAe,CAAC0e,UAAD,CAAf,CAA4Btf,aAA5C,CAf6B;;QAkB7Byf,YAAY,IAAI7e,eAAe,CAAC0e,UAAD,CAAf,CAA4Bzf,YAA5B,CAAyCxgB,MAAzC,GAAkD,EAAlE;QAEAuhB,eAAe,CAAC0e,UAAD,CAAf,CAA4BO,KAA5B,GAAoCJ,YAApC;;QAEA,IAAI,CAACE,iBAAL,EAAwB;UACpB,IACIH,WAAW,IAAI,IAAf,IACAC,YAAY,GAAGD,WADf,IAEAE,gBAHJ,EAIE;YACEF,WAAW,GAAGC,YAAd;YACAF,UAAU,GAAGD,UAAb;;YACA,IAAII,gBAAJ,EAAsB;cAClBC,iBAAiB,GAAG,IAApB;;;SATZ,MAYO;UACH,IAAIF,YAAY,GAAGD,WAAnB,EAAgC;YAC5BA,WAAW,GAAGC,YAAd;YACAF,UAAU,GAAGD,UAAb;;;;;MAKZngB,MAAM,CAAC2D,MAAD,EAASyc,UAAU,IAAID,UAAvB,CAAN;;;IAGJ,SAASQ,gBAAT,CAA0Bhd,MAA1B,EAAkC;MAC9B,IAAIA,MAAM,CAACvB,EAAX,EAAe;QACX;;;MAGJ,IAAIpiB,CAAC,GAAGyqB,oBAAoB,CAAC9G,MAAM,CAACR,EAAR,CAA5B;UACIyd,SAAS,GAAG5gC,CAAC,CAAC21B,GAAF,KAAUruB,SAAV,GAAsBtH,CAAC,CAACisB,IAAxB,GAA+BjsB,CAAC,CAAC21B,GADjD;MAEAhS,MAAM,CAACgL,EAAP,GAAY3qB,GAAG,CACX,CAAChE,CAAC,CAACqrB,IAAH,EAASrrB,CAAC,CAACgsB,KAAX,EAAkB4U,SAAlB,EAA6B5gC,CAAC,CAAC+/B,IAA/B,EAAqC//B,CAAC,CAAC6gC,MAAvC,EAA+C7gC,CAAC,CAAC8gC,MAAjD,EAAyD9gC,CAAC,CAAC+gC,WAA3D,CADW,EAEX,UAAUzhB,GAAV,EAAe;QACX,OAAOA,GAAG,IAAI4S,QAAQ,CAAC5S,GAAD,EAAM,EAAN,CAAtB;OAHO,CAAf;MAOAkf,eAAe,CAAC7a,MAAD,CAAf;;;IAGJ,SAASqd,gBAAT,CAA0Brd,MAA1B,EAAkC;MAC9B,IAAI7D,GAAG,GAAG,IAAI4D,MAAJ,CAAW6W,aAAa,CAAC0G,aAAa,CAACtd,MAAD,CAAd,CAAxB,CAAV;;MACA,IAAI7D,GAAG,CAACgf,QAAR,EAAkB;;QAEdhf,GAAG,CAACwU,GAAJ,CAAQ,CAAR,EAAW,GAAX;QACAxU,GAAG,CAACgf,QAAJ,GAAex3B,SAAf;;;MAGJ,OAAOwY,GAAP;;;IAGJ,SAASmhB,aAAT,CAAuBtd,MAAvB,EAA+B;MAC3B,IAAI5N,KAAK,GAAG4N,MAAM,CAACR,EAAnB;UACIhD,MAAM,GAAGwD,MAAM,CAACP,EADpB;MAGAO,MAAM,CAACF,OAAP,GAAiBE,MAAM,CAACF,OAAP,IAAkBuW,SAAS,CAACrW,MAAM,CAACN,EAAR,CAA5C;;MAEA,IAAItN,KAAK,KAAK,IAAV,IAAmBoK,MAAM,KAAK7Y,SAAX,IAAwByO,KAAK,KAAK,EAAzD,EAA8D;QAC1D,OAAO2M,aAAa,CAAC;UAAE5B,SAAS,EAAE;SAAd,CAApB;;;MAGJ,IAAI,OAAO/K,KAAP,KAAiB,QAArB,EAA+B;QAC3B4N,MAAM,CAACR,EAAP,GAAYpN,KAAK,GAAG4N,MAAM,CAACF,OAAP,CAAeyd,QAAf,CAAwBnrB,KAAxB,CAApB;;;MAGJ,IAAI8N,QAAQ,CAAC9N,KAAD,CAAZ,EAAqB;QACjB,OAAO,IAAI2N,MAAJ,CAAW6W,aAAa,CAACxkB,KAAD,CAAxB,CAAP;OADJ,MAEO,IAAI4J,MAAM,CAAC5J,KAAD,CAAV,EAAmB;QACtB4N,MAAM,CAACvB,EAAP,GAAYrM,KAAZ;OADG,MAEA,IAAIxV,OAAO,CAAC4f,MAAD,CAAX,EAAqB;QACxB+f,wBAAwB,CAACvc,MAAD,CAAxB;OADG,MAEA,IAAIxD,MAAJ,EAAY;QACfkc,yBAAyB,CAAC1Y,MAAD,CAAzB;OADG,MAEA;QACHwd,eAAe,CAACxd,MAAD,CAAf;;;MAGJ,IAAI,CAAC1N,OAAO,CAAC0N,MAAD,CAAZ,EAAsB;QAClBA,MAAM,CAACvB,EAAP,GAAY,IAAZ;;;MAGJ,OAAOuB,MAAP;;;IAGJ,SAASwd,eAAT,CAAyBxd,MAAzB,EAAiC;MAC7B,IAAI5N,KAAK,GAAG4N,MAAM,CAACR,EAAnB;;MACA,IAAI1D,WAAW,CAAC1J,KAAD,CAAf,EAAwB;QACpB4N,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAASvV,KAAK,CAACyb,GAAN,EAAT,CAAZ;OADJ,MAEO,IAAInG,MAAM,CAAC5J,KAAD,CAAV,EAAmB;QACtB4N,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAAS7J,KAAK,CAACkK,OAAN,EAAT,CAAZ;OADG,MAEA,IAAI,OAAOlK,KAAP,KAAiB,QAArB,EAA+B;QAClC+nB,gBAAgB,CAACna,MAAD,CAAhB;OADG,MAEA,IAAIpjB,OAAO,CAACwV,KAAD,CAAX,EAAoB;QACvB4N,MAAM,CAACgL,EAAP,GAAY3qB,GAAG,CAAC+R,KAAK,CAAC7E,KAAN,CAAY,CAAZ,CAAD,EAAiB,UAAUoO,GAAV,EAAe;UAC3C,OAAO4S,QAAQ,CAAC5S,GAAD,EAAM,EAAN,CAAf;SADW,CAAf;QAGAkf,eAAe,CAAC7a,MAAD,CAAf;OAJG,MAKA,IAAI1E,QAAQ,CAAClJ,KAAD,CAAZ,EAAqB;QACxB4qB,gBAAgB,CAAChd,MAAD,CAAhB;OADG,MAEA,IAAIjE,QAAQ,CAAC3J,KAAD,CAAZ,EAAqB;;QAExB4N,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAAS7J,KAAT,CAAZ;OAFG,MAGA;QACH1L,KAAK,CAAC0zB,uBAAN,CAA8Bpa,MAA9B;;;;IAIR,SAASrD,gBAAT,CAA0BvK,KAA1B,EAAiCoK,MAAjC,EAAyCC,MAAzC,EAAiDC,MAAjD,EAAyD+gB,KAAzD,EAAgE;MAC5D,IAAInD,CAAC,GAAG,EAAR;;MAEA,IAAI9d,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAlC,EAAyC;QACrCE,MAAM,GAAGF,MAAT;QACAA,MAAM,GAAG7Y,SAAT;;;MAGJ,IAAI8Y,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAlC,EAAyC;QACrCC,MAAM,GAAGD,MAAT;QACAA,MAAM,GAAG9Y,SAAT;;;MAGJ,IACK2X,QAAQ,CAAClJ,KAAD,CAAR,IAAmBsJ,aAAa,CAACtJ,KAAD,CAAjC,IACCxV,OAAO,CAACwV,KAAD,CAAP,IAAkBA,KAAK,CAAC7V,MAAN,KAAiB,CAFxC,EAGE;QACE6V,KAAK,GAAGzO,SAAR;OAjBwD;;;;MAqB5D22B,CAAC,CAAC/a,gBAAF,GAAqB,IAArB;MACA+a,CAAC,CAACD,OAAF,GAAYC,CAAC,CAAC1a,MAAF,GAAW6d,KAAvB;MACAnD,CAAC,CAAC5a,EAAF,GAAOjD,MAAP;MACA6d,CAAC,CAAC9a,EAAF,GAAOpN,KAAP;MACAkoB,CAAC,CAAC7a,EAAF,GAAOjD,MAAP;MACA8d,CAAC,CAAC1b,OAAF,GAAYlC,MAAZ;MAEA,OAAO2gB,gBAAgB,CAAC/C,CAAD,CAAvB;;;IAGJ,SAASqB,WAAT,CAAqBvpB,KAArB,EAA4BoK,MAA5B,EAAoCC,MAApC,EAA4CC,MAA5C,EAAoD;MAChD,OAAOC,gBAAgB,CAACvK,KAAD,EAAQoK,MAAR,EAAgBC,MAAhB,EAAwBC,MAAxB,EAAgC,KAAhC,CAAvB;;;IAGJ,IAAIghB,YAAY,GAAGpd,SAAS,CACpB,oGADoB,EAEpB,YAAY;MACR,IAAIqd,KAAK,GAAGhC,WAAW,CAAC7+B,KAAZ,CAAkB,IAAlB,EAAwBR,SAAxB,CAAZ;;MACA,IAAI,KAAKgW,OAAL,MAAkBqrB,KAAK,CAACrrB,OAAN,EAAtB,EAAuC;QACnC,OAAOqrB,KAAK,GAAG,IAAR,GAAe,IAAf,GAAsBA,KAA7B;OADJ,MAEO;QACH,OAAO5e,aAAa,EAApB;;KAPY,CAA5B;QAWI6e,YAAY,GAAGtd,SAAS,CACpB,oGADoB,EAEpB,YAAY;MACR,IAAIqd,KAAK,GAAGhC,WAAW,CAAC7+B,KAAZ,CAAkB,IAAlB,EAAwBR,SAAxB,CAAZ;;MACA,IAAI,KAAKgW,OAAL,MAAkBqrB,KAAK,CAACrrB,OAAN,EAAtB,EAAuC;QACnC,OAAOqrB,KAAK,GAAG,IAAR,GAAe,IAAf,GAAsBA,KAA7B;OADJ,MAEO;QACH,OAAO5e,aAAa,EAApB;;KAPY,CAX5B,CAz9FiB;;;;;;IAq/FjB,SAAS8e,MAAT,CAAgB55B,EAAhB,EAAoB65B,OAApB,EAA6B;MACzB,IAAI3hB,GAAJ,EAAS9f,CAAT;;MACA,IAAIyhC,OAAO,CAACvhC,MAAR,KAAmB,CAAnB,IAAwBK,OAAO,CAACkhC,OAAO,CAAC,CAAD,CAAR,CAAnC,EAAiD;QAC7CA,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAjB;;;MAEJ,IAAI,CAACA,OAAO,CAACvhC,MAAb,EAAqB;QACjB,OAAOo/B,WAAW,EAAlB;;;MAEJxf,GAAG,GAAG2hB,OAAO,CAAC,CAAD,CAAb;;MACA,KAAKzhC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGyhC,OAAO,CAACvhC,MAAxB,EAAgC,EAAEF,CAAlC,EAAqC;QACjC,IAAI,CAACyhC,OAAO,CAACzhC,CAAD,CAAP,CAAWiW,OAAX,EAAD,IAAyBwrB,OAAO,CAACzhC,CAAD,CAAP,CAAW4H,EAAX,EAAekY,GAAf,CAA7B,EAAkD;UAC9CA,GAAG,GAAG2hB,OAAO,CAACzhC,CAAD,CAAb;;;;MAGR,OAAO8f,GAAP;KAngGa;;;IAugGjB,SAAS3a,GAAT,GAAe;MACX,IAAI0L,IAAI,GAAG,GAAGK,KAAH,CAASvQ,IAAT,CAAcV,SAAd,EAAyB,CAAzB,CAAX;MAEA,OAAOuhC,MAAM,CAAC,UAAD,EAAa3wB,IAAb,CAAb;;;IAGJ,SAAS5L,GAAT,GAAe;MACX,IAAI4L,IAAI,GAAG,GAAGK,KAAH,CAASvQ,IAAT,CAAcV,SAAd,EAAyB,CAAzB,CAAX;MAEA,OAAOuhC,MAAM,CAAC,SAAD,EAAY3wB,IAAZ,CAAb;;;IAGJ,IAAIiV,GAAG,GAAG,SAANA,GAAM,GAAY;MAClB,OAAOlG,IAAI,CAACkG,GAAL,GAAWlG,IAAI,CAACkG,GAAL,EAAX,GAAwB,CAAC,IAAIlG,IAAJ,EAAhC;KADJ;;IAIA,IAAI8hB,QAAQ,GAAG,CACX,MADW,EAEX,SAFW,EAGX,OAHW,EAIX,MAJW,EAKX,KALW,EAMX,MANW,EAOX,QAPW,EAQX,QARW,EASX,aATW,CAAf;;IAYA,SAASC,eAAT,CAAyBjgB,CAAzB,EAA4B;MACxB,IAAIhhB,GAAJ;UACIkhC,cAAc,GAAG,KADrB;UAEI5hC,CAFJ;UAGI6hC,QAAQ,GAAGH,QAAQ,CAACxhC,MAHxB;;MAIA,KAAKQ,GAAL,IAAYghB,CAAZ,EAAe;QACX,IACIxC,UAAU,CAACwC,CAAD,EAAIhhB,GAAJ,CAAV,IACA,EACI8uB,OAAO,CAAC7uB,IAAR,CAAa+gC,QAAb,EAAuBhhC,GAAvB,MAAgC,CAAC,CAAjC,KACCghB,CAAC,CAAChhB,GAAD,CAAD,IAAU,IAAV,IAAkB,CAACyhB,KAAK,CAACT,CAAC,CAAChhB,GAAD,CAAF,CADzB,CADJ,CAFJ,EAME;UACE,OAAO,KAAP;;;;MAIR,KAAKV,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG6hC,QAAhB,EAA0B,EAAE7hC,CAA5B,EAA+B;QAC3B,IAAI0hB,CAAC,CAACggB,QAAQ,CAAC1hC,CAAD,CAAT,CAAL,EAAoB;UAChB,IAAI4hC,cAAJ,EAAoB;YAChB,OAAO,KAAP,CADgB;;;UAGpB,IAAIE,UAAU,CAACpgB,CAAC,CAACggB,QAAQ,CAAC1hC,CAAD,CAAT,CAAF,CAAV,KAA+ByrB,KAAK,CAAC/J,CAAC,CAACggB,QAAQ,CAAC1hC,CAAD,CAAT,CAAF,CAAxC,EAA0D;YACtD4hC,cAAc,GAAG,IAAjB;;;;;MAKZ,OAAO,IAAP;;;IAGJ,SAASG,SAAT,GAAqB;MACjB,OAAO,KAAKhgB,QAAZ;;;IAGJ,SAASigB,eAAT,GAA2B;MACvB,OAAOC,cAAc,CAACtf,GAAD,CAArB;;;IAGJ,SAASuf,QAAT,CAAkBC,QAAlB,EAA4B;MACxB,IAAIxX,eAAe,GAAGF,oBAAoB,CAAC0X,QAAD,CAA1C;UACIC,KAAK,GAAGzX,eAAe,CAACU,IAAhB,IAAwB,CADpC;UAEIgX,QAAQ,GAAG1X,eAAe,CAAC2X,OAAhB,IAA2B,CAF1C;UAGI3S,MAAM,GAAGhF,eAAe,CAACqB,KAAhB,IAAyB,CAHtC;UAIIuW,KAAK,GAAG5X,eAAe,CAAC0I,IAAhB,IAAwB1I,eAAe,CAAC6X,OAAxC,IAAmD,CAJ/D;UAKIC,IAAI,GAAG9X,eAAe,CAACgL,GAAhB,IAAuB,CALlC;UAMI6B,KAAK,GAAG7M,eAAe,CAACoV,IAAhB,IAAwB,CANpC;UAOIrI,OAAO,GAAG/M,eAAe,CAACkW,MAAhB,IAA0B,CAPxC;UAQIlJ,OAAO,GAAGhN,eAAe,CAACmW,MAAhB,IAA0B,CARxC;UASI4B,YAAY,GAAG/X,eAAe,CAACoW,WAAhB,IAA+B,CATlD;MAWA,KAAKhf,QAAL,GAAgB4f,eAAe,CAAChX,eAAD,CAA/B,CAZwB;;MAexB,KAAKgY,aAAL,GACI,CAACD,YAAD,GACA/K,OAAO,GAAG,GADV;MAEAD,OAAO,GAAG,GAFV;MAGAF,KAAK,GAAG,IAAR,GAAe,EAAf,GAAoB,EAJxB,CAfwB;;;;MAsBxB,KAAKoL,KAAL,GAAa,CAACH,IAAD,GAAQF,KAAK,GAAG,CAA7B,CAtBwB;;;;MA0BxB,KAAKjS,OAAL,GAAe,CAACX,MAAD,GAAU0S,QAAQ,GAAG,CAArB,GAAyBD,KAAK,GAAG,EAAhD;MAEA,KAAKS,KAAL,GAAa,EAAb;MAEA,KAAKpf,OAAL,GAAeuW,SAAS,EAAxB;;MAEA,KAAK8I,OAAL;;;IAGJ,SAASC,UAAT,CAAoBzjB,GAApB,EAAyB;MACrB,OAAOA,GAAG,YAAY4iB,QAAtB;;;IAGJ,SAASc,QAAT,CAAkB9c,MAAlB,EAA0B;MACtB,IAAIA,MAAM,GAAG,CAAb,EAAgB;QACZ,OAAOlhB,IAAI,CAACi+B,KAAL,CAAW,CAAC,CAAD,GAAK/c,MAAhB,IAA0B,CAAC,CAAlC;OADJ,MAEO;QACH,OAAOlhB,IAAI,CAACi+B,KAAL,CAAW/c,MAAX,CAAP;;KArnGS;;;IA0nGjB,SAASgd,aAAT,CAAuBC,MAAvB,EAA+BC,MAA/B,EAAuCC,WAAvC,EAAoD;MAChD,IAAIvhB,GAAG,GAAG9c,IAAI,CAACG,GAAL,CAASg+B,MAAM,CAACjjC,MAAhB,EAAwBkjC,MAAM,CAACljC,MAA/B,CAAV;UACIojC,UAAU,GAAGt+B,IAAI,CAACshB,GAAL,CAAS6c,MAAM,CAACjjC,MAAP,GAAgBkjC,MAAM,CAACljC,MAAhC,CADjB;UAEIqjC,KAAK,GAAG,CAFZ;UAGIvjC,CAHJ;;MAIA,KAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG8hB,GAAhB,EAAqB9hB,CAAC,EAAtB,EAA0B;QACtB,IACKqjC,WAAW,IAAIF,MAAM,CAACnjC,CAAD,CAAN,KAAcojC,MAAM,CAACpjC,CAAD,CAApC,IACC,CAACqjC,WAAD,IAAgB5X,KAAK,CAAC0X,MAAM,CAACnjC,CAAD,CAAP,CAAL,KAAqByrB,KAAK,CAAC2X,MAAM,CAACpjC,CAAD,CAAP,CAF/C,EAGE;UACEujC,KAAK;;;;MAGb,OAAOA,KAAK,GAAGD,UAAf;KAvoGa;;;IA4oGjB,SAASE,MAAT,CAAgBxc,KAAhB,EAAuByc,SAAvB,EAAkC;MAC9B1c,cAAc,CAACC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,YAAY;QACpC,IAAIwc,MAAM,GAAG,KAAKE,SAAL,EAAb;YACIld,IAAI,GAAG,GADX;;QAEA,IAAIgd,MAAM,GAAG,CAAb,EAAgB;UACZA,MAAM,GAAG,CAACA,MAAV;UACAhd,IAAI,GAAG,GAAP;;;QAEJ,OACIA,IAAI,GACJP,QAAQ,CAAC,CAAC,EAAEud,MAAM,GAAG,EAAX,CAAF,EAAkB,CAAlB,CADR,GAEAC,SAFA,GAGAxd,QAAQ,CAAC,CAAC,CAACud,MAAF,GAAW,EAAZ,EAAgB,CAAhB,CAJZ;OAPU,CAAd;;;IAgBJA,MAAM,CAAC,GAAD,EAAM,GAAN,CAAN;IACAA,MAAM,CAAC,IAAD,EAAO,EAAP,CAAN,CA9pGiB;;IAkqGjB/V,aAAa,CAAC,GAAD,EAAMJ,gBAAN,CAAb;IACAI,aAAa,CAAC,IAAD,EAAOJ,gBAAP,CAAb;IACAiB,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAc,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MACvDA,MAAM,CAACqa,OAAP,GAAiB,IAAjB;MACAra,MAAM,CAACL,IAAP,GAAcqgB,gBAAgB,CAACtW,gBAAD,EAAmBtX,KAAnB,CAA9B;KAFS,CAAb,CApqGiB;;;;;IA8qGjB,IAAI6tB,WAAW,GAAG,iBAAlB;;IAEA,SAASD,gBAAT,CAA0BE,OAA1B,EAAmChhC,MAAnC,EAA2C;MACvC,IAAIihC,OAAO,GAAG,CAACjhC,MAAM,IAAI,EAAX,EAAewkB,KAAf,CAAqBwc,OAArB,CAAd;UACIE,KADJ;UAEIC,KAFJ;UAGItM,OAHJ;;MAKA,IAAIoM,OAAO,KAAK,IAAhB,EAAsB;QAClB,OAAO,IAAP;;;MAGJC,KAAK,GAAGD,OAAO,CAACA,OAAO,CAAC5jC,MAAR,GAAiB,CAAlB,CAAP,IAA+B,EAAvC;MACA8jC,KAAK,GAAG,CAACD,KAAK,GAAG,EAAT,EAAa1c,KAAb,CAAmBuc,WAAnB,KAAmC,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,CAA3C;MACAlM,OAAO,GAAG,EAAEsM,KAAK,CAAC,CAAD,CAAL,GAAW,EAAb,IAAmBvY,KAAK,CAACuY,KAAK,CAAC,CAAD,CAAN,CAAlC;MAEA,OAAOtM,OAAO,KAAK,CAAZ,GAAgB,CAAhB,GAAoBsM,KAAK,CAAC,CAAD,CAAL,KAAa,GAAb,GAAmBtM,OAAnB,GAA6B,CAACA,OAAzD;KA9rGa;;;IAksGjB,SAASuM,eAAT,CAAyBluB,KAAzB,EAAgCmuB,KAAhC,EAAuC;MACnC,IAAIpkB,GAAJ,EAASmK,IAAT;;MACA,IAAIia,KAAK,CAAC3gB,MAAV,EAAkB;QACdzD,GAAG,GAAGokB,KAAK,CAACC,KAAN,EAAN;QACAla,IAAI,GACA,CAACpG,QAAQ,CAAC9N,KAAD,CAAR,IAAmB4J,MAAM,CAAC5J,KAAD,CAAzB,GACKA,KAAK,CAACkK,OAAN,EADL,GAEKqf,WAAW,CAACvpB,KAAD,CAAX,CAAmBkK,OAAnB,EAFN,IAEsCH,GAAG,CAACG,OAAJ,EAH1C,CAFc;;QAOdH,GAAG,CAACsC,EAAJ,CAAOgiB,OAAP,CAAetkB,GAAG,CAACsC,EAAJ,CAAOnC,OAAP,KAAmBgK,IAAlC;;QACA5f,KAAK,CAACuZ,YAAN,CAAmB9D,GAAnB,EAAwB,KAAxB;QACA,OAAOA,GAAP;OATJ,MAUO;QACH,OAAOwf,WAAW,CAACvpB,KAAD,CAAX,CAAmBsuB,KAAnB,EAAP;;;;IAIR,SAASC,aAAT,CAAuB5iB,CAAvB,EAA0B;;;MAGtB,OAAO,CAAC1c,IAAI,CAACi+B,KAAL,CAAWvhB,CAAC,CAACU,EAAF,CAAKmiB,iBAAL,EAAX,CAAR;KAttGa;;;;;IA6tGjBl6B,KAAK,CAACuZ,YAAN,GAAqB,YAAY,EAAjC,CA7tGiB;;;;;;;;;;;;;IA2uGjB,SAAS4gB,YAAT,CAAsBzuB,KAAtB,EAA6B0uB,aAA7B,EAA4CC,WAA5C,EAAyD;MACrD,IAAIlB,MAAM,GAAG,KAAKhgB,OAAL,IAAgB,CAA7B;UACImhB,WADJ;;MAEA,IAAI,CAAC,KAAK1uB,OAAL,EAAL,EAAqB;QACjB,OAAOF,KAAK,IAAI,IAAT,GAAgB,IAAhB,GAAuB4M,GAA9B;;;MAEJ,IAAI5M,KAAK,IAAI,IAAb,EAAmB;QACf,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;UAC3BA,KAAK,GAAG4tB,gBAAgB,CAACtW,gBAAD,EAAmBtX,KAAnB,CAAxB;;UACA,IAAIA,KAAK,KAAK,IAAd,EAAoB;YAChB,OAAO,IAAP;;SAHR,MAKO,IAAI/Q,IAAI,CAACshB,GAAL,CAASvQ,KAAT,IAAkB,EAAlB,IAAwB,CAAC2uB,WAA7B,EAA0C;UAC7C3uB,KAAK,GAAGA,KAAK,GAAG,EAAhB;;;QAEJ,IAAI,CAAC,KAAKwN,MAAN,IAAgBkhB,aAApB,EAAmC;UAC/BE,WAAW,GAAGL,aAAa,CAAC,IAAD,CAA3B;;;QAEJ,KAAK9gB,OAAL,GAAezN,KAAf;QACA,KAAKwN,MAAL,GAAc,IAAd;;QACA,IAAIohB,WAAW,IAAI,IAAnB,EAAyB;UACrB,KAAKrQ,GAAL,CAASqQ,WAAT,EAAsB,GAAtB;;;QAEJ,IAAInB,MAAM,KAAKztB,KAAf,EAAsB;UAClB,IAAI,CAAC0uB,aAAD,IAAkB,KAAKG,iBAA3B,EAA8C;YAC1CC,WAAW,CACP,IADO,EAEP5C,cAAc,CAAClsB,KAAK,GAAGytB,MAAT,EAAiB,GAAjB,CAFP,EAGP,CAHO,EAIP,KAJO,CAAX;WADJ,MAOO,IAAI,CAAC,KAAKoB,iBAAV,EAA6B;YAChC,KAAKA,iBAAL,GAAyB,IAAzB;YACAv6B,KAAK,CAACuZ,YAAN,CAAmB,IAAnB,EAAyB,IAAzB;YACA,KAAKghB,iBAAL,GAAyB,IAAzB;;;;QAGR,OAAO,IAAP;OA/BJ,MAgCO;QACH,OAAO,KAAKrhB,MAAL,GAAcigB,MAAd,GAAuBc,aAAa,CAAC,IAAD,CAA3C;;;;IAIR,SAASQ,UAAT,CAAoB/uB,KAApB,EAA2B0uB,aAA3B,EAA0C;MACtC,IAAI1uB,KAAK,IAAI,IAAb,EAAmB;QACf,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;UAC3BA,KAAK,GAAG,CAACA,KAAT;;;QAGJ,KAAK2tB,SAAL,CAAe3tB,KAAf,EAAsB0uB,aAAtB;QAEA,OAAO,IAAP;OAPJ,MAQO;QACH,OAAO,CAAC,KAAKf,SAAL,EAAR;;;;IAIR,SAASqB,cAAT,CAAwBN,aAAxB,EAAuC;MACnC,OAAO,KAAKf,SAAL,CAAe,CAAf,EAAkBe,aAAlB,CAAP;;;IAGJ,SAASO,gBAAT,CAA0BP,aAA1B,EAAyC;MACrC,IAAI,KAAKlhB,MAAT,EAAiB;QACb,KAAKmgB,SAAL,CAAe,CAAf,EAAkBe,aAAlB;QACA,KAAKlhB,MAAL,GAAc,KAAd;;QAEA,IAAIkhB,aAAJ,EAAmB;UACf,KAAKQ,QAAL,CAAcX,aAAa,CAAC,IAAD,CAA3B,EAAmC,GAAnC;;;;MAGR,OAAO,IAAP;;;IAGJ,SAASY,uBAAT,GAAmC;MAC/B,IAAI,KAAK5hB,IAAL,IAAa,IAAjB,EAAuB;QACnB,KAAKogB,SAAL,CAAe,KAAKpgB,IAApB,EAA0B,KAA1B,EAAiC,IAAjC;OADJ,MAEO,IAAI,OAAO,KAAKH,EAAZ,KAAmB,QAAvB,EAAiC;QACpC,IAAIgiB,KAAK,GAAGxB,gBAAgB,CAACvW,WAAD,EAAc,KAAKjK,EAAnB,CAA5B;;QACA,IAAIgiB,KAAK,IAAI,IAAb,EAAmB;UACf,KAAKzB,SAAL,CAAeyB,KAAf;SADJ,MAEO;UACH,KAAKzB,SAAL,CAAe,CAAf,EAAkB,IAAlB;;;;MAGR,OAAO,IAAP;;;IAGJ,SAAS0B,oBAAT,CAA8BrvB,KAA9B,EAAqC;MACjC,IAAI,CAAC,KAAKE,OAAL,EAAL,EAAqB;QACjB,OAAO,KAAP;;;MAEJF,KAAK,GAAGA,KAAK,GAAGupB,WAAW,CAACvpB,KAAD,CAAX,CAAmB2tB,SAAnB,EAAH,GAAoC,CAAjD;MAEA,OAAO,CAAC,KAAKA,SAAL,KAAmB3tB,KAApB,IAA6B,EAA7B,KAAoC,CAA3C;;;IAGJ,SAASsvB,oBAAT,GAAgC;MAC5B,OACI,KAAK3B,SAAL,KAAmB,KAAKS,KAAL,GAAanY,KAAb,CAAmB,CAAnB,EAAsB0X,SAAtB,EAAnB,IACA,KAAKA,SAAL,KAAmB,KAAKS,KAAL,GAAanY,KAAb,CAAmB,CAAnB,EAAsB0X,SAAtB,EAFvB;;;IAMJ,SAAS4B,2BAAT,GAAuC;MACnC,IAAI,CAAC7lB,WAAW,CAAC,KAAK8lB,aAAN,CAAhB,EAAsC;QAClC,OAAO,KAAKA,aAAZ;;;MAGJ,IAAItH,CAAC,GAAG,EAAR;UACIqD,KADJ;MAGAxe,UAAU,CAACmb,CAAD,EAAI,IAAJ,CAAV;MACAA,CAAC,GAAGgD,aAAa,CAAChD,CAAD,CAAjB;;MAEA,IAAIA,CAAC,CAACtP,EAAN,EAAU;QACN2S,KAAK,GAAGrD,CAAC,CAAC1a,MAAF,GAAWrD,SAAS,CAAC+d,CAAC,CAACtP,EAAH,CAApB,GAA6B2Q,WAAW,CAACrB,CAAC,CAACtP,EAAH,CAAhD;QACA,KAAK4W,aAAL,GACI,KAAKtvB,OAAL,MAAkBitB,aAAa,CAACjF,CAAC,CAACtP,EAAH,EAAO2S,KAAK,CAACkE,OAAN,EAAP,CAAb,GAAuC,CAD7D;OAFJ,MAIO;QACH,KAAKD,aAAL,GAAqB,KAArB;;;MAGJ,OAAO,KAAKA,aAAZ;;;IAGJ,SAASE,OAAT,GAAmB;MACf,OAAO,KAAKxvB,OAAL,KAAiB,CAAC,KAAKsN,MAAvB,GAAgC,KAAvC;;;IAGJ,SAASmiB,WAAT,GAAuB;MACnB,OAAO,KAAKzvB,OAAL,KAAiB,KAAKsN,MAAtB,GAA+B,KAAtC;;;IAGJ,SAASoiB,KAAT,GAAiB;MACb,OAAO,KAAK1vB,OAAL,KAAiB,KAAKsN,MAAL,IAAe,KAAKC,OAAL,KAAiB,CAAjD,GAAqD,KAA5D;KAj3Ga;;;IAq3GjB,IAAIoiB,WAAW,GAAG,uDAAlB;;;;IAIIC,QAAQ,GACJ,qKALR;;IAOA,SAAS5D,cAAT,CAAwBlsB,KAAxB,EAA+BrV,GAA/B,EAAoC;MAChC,IAAIyhC,QAAQ,GAAGpsB,KAAf;;MAEIsR,KAAK,GAAG,IAFZ;UAGIb,IAHJ;UAIIsf,GAJJ;UAKIC,OALJ;;MAOA,IAAIhD,UAAU,CAAChtB,KAAD,CAAd,EAAuB;QACnBosB,QAAQ,GAAG;UACP5P,EAAE,EAAExc,KAAK,CAAC4sB,aADH;UAEPvZ,CAAC,EAAErT,KAAK,CAAC6sB,KAFF;UAGPpZ,CAAC,EAAEzT,KAAK,CAACua;SAHb;OADJ,MAMO,IAAI5Q,QAAQ,CAAC3J,KAAD,CAAR,IAAmB,CAACoM,KAAK,CAAC,CAACpM,KAAF,CAA7B,EAAuC;QAC1CosB,QAAQ,GAAG,EAAX;;QACA,IAAIzhC,GAAJ,EAAS;UACLyhC,QAAQ,CAACzhC,GAAD,CAAR,GAAgB,CAACqV,KAAjB;SADJ,MAEO;UACHosB,QAAQ,CAACO,YAAT,GAAwB,CAAC3sB,KAAzB;;OALD,MAOA,IAAKsR,KAAK,GAAGue,WAAW,CAAC9J,IAAZ,CAAiB/lB,KAAjB,CAAb,EAAuC;QAC1CyQ,IAAI,GAAGa,KAAK,CAAC,CAAD,CAAL,KAAa,GAAb,GAAmB,CAAC,CAApB,GAAwB,CAA/B;QACA8a,QAAQ,GAAG;UACPzY,CAAC,EAAE,CADI;UAEPN,CAAC,EAAEqC,KAAK,CAACpE,KAAK,CAACyH,IAAD,CAAN,CAAL,GAAqBtI,IAFjB;UAGP0C,CAAC,EAAEuC,KAAK,CAACpE,KAAK,CAAC0H,IAAD,CAAN,CAAL,GAAqBvI,IAHjB;UAIP9E,CAAC,EAAE+J,KAAK,CAACpE,KAAK,CAAC2H,MAAD,CAAN,CAAL,GAAuBxI,IAJnB;UAKPuC,CAAC,EAAE0C,KAAK,CAACpE,KAAK,CAAC4H,MAAD,CAAN,CAAL,GAAuBzI,IALnB;UAMP+L,EAAE,EAAE9G,KAAK,CAACuX,QAAQ,CAAC3b,KAAK,CAAC6H,WAAD,CAAL,GAAqB,IAAtB,CAAT,CAAL,GAA6C1I,IAN1C;;SAAX;OAFG,MAUA,IAAKa,KAAK,GAAGwe,QAAQ,CAAC/J,IAAT,CAAc/lB,KAAd,CAAb,EAAoC;QACvCyQ,IAAI,GAAGa,KAAK,CAAC,CAAD,CAAL,KAAa,GAAb,GAAmB,CAAC,CAApB,GAAwB,CAA/B;QACA8a,QAAQ,GAAG;UACPzY,CAAC,EAAEsc,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CADJ;UAEPgD,CAAC,EAAEwc,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CAFJ;UAGP8C,CAAC,EAAE0c,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CAHJ;UAIP4C,CAAC,EAAE4c,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CAJJ;UAKP0C,CAAC,EAAE8c,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CALJ;UAMP9E,CAAC,EAAEskB,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CANJ;UAOPuC,CAAC,EAAEid,QAAQ,CAAC3e,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX;SAPf;OAFG,MAWA,IAAI2b,QAAQ,IAAI,IAAhB,EAAsB;;QAEzBA,QAAQ,GAAG,EAAX;OAFG,MAGA,IACH,OAAOA,QAAP,KAAoB,QAApB,KACC,UAAUA,QAAV,IAAsB,QAAQA,QAD/B,CADG,EAGL;QACE4D,OAAO,GAAGE,iBAAiB,CACvB3G,WAAW,CAAC6C,QAAQ,CAACvgC,IAAV,CADY,EAEvB09B,WAAW,CAAC6C,QAAQ,CAAC59B,EAAV,CAFY,CAA3B;QAKA49B,QAAQ,GAAG,EAAX;QACAA,QAAQ,CAAC5P,EAAT,GAAcwT,OAAO,CAACrD,YAAtB;QACAP,QAAQ,CAAC3Y,CAAT,GAAauc,OAAO,CAACpW,MAArB;;;MAGJmW,GAAG,GAAG,IAAI5D,QAAJ,CAAaC,QAAb,CAAN;;MAEA,IAAIY,UAAU,CAAChtB,KAAD,CAAV,IAAqBmJ,UAAU,CAACnJ,KAAD,EAAQ,SAAR,CAAnC,EAAuD;QACnD+vB,GAAG,CAACriB,OAAJ,GAAc1N,KAAK,CAAC0N,OAApB;;;MAGJ,IAAIsf,UAAU,CAAChtB,KAAD,CAAV,IAAqBmJ,UAAU,CAACnJ,KAAD,EAAQ,UAAR,CAAnC,EAAwD;QACpD+vB,GAAG,CAAC/jB,QAAJ,GAAehM,KAAK,CAACgM,QAArB;;;MAGJ,OAAO+jB,GAAP;;;IAGJ7D,cAAc,CAACr6B,EAAf,GAAoBs6B,QAAQ,CAAC1zB,SAA7B;IACAyzB,cAAc,CAACiE,OAAf,GAAyBlE,eAAzB;;IAEA,SAASgE,QAAT,CAAkBG,GAAlB,EAAuB3f,IAAvB,EAA6B;;;;MAIzB,IAAI1G,GAAG,GAAGqmB,GAAG,IAAIrE,UAAU,CAACqE,GAAG,CAAC7e,OAAJ,CAAY,GAAZ,EAAiB,GAAjB,CAAD,CAA3B,CAJyB;;MAMzB,OAAO,CAACnF,KAAK,CAACrC,GAAD,CAAL,GAAa,CAAb,GAAiBA,GAAlB,IAAyB0G,IAAhC;;;IAGJ,SAAS4f,yBAAT,CAAmCC,IAAnC,EAAyC/E,KAAzC,EAAgD;MAC5C,IAAIxhB,GAAG,GAAG,EAAV;MAEAA,GAAG,CAAC6P,MAAJ,GACI2R,KAAK,CAACtV,KAAN,KAAgBqa,IAAI,CAACra,KAAL,EAAhB,GAA+B,CAACsV,KAAK,CAACjW,IAAN,KAAegb,IAAI,CAAChb,IAAL,EAAhB,IAA+B,EADlE;;MAEA,IAAIgb,IAAI,CAAClC,KAAL,GAAa7P,GAAb,CAAiBxU,GAAG,CAAC6P,MAArB,EAA6B,GAA7B,EAAkC2W,OAAlC,CAA0ChF,KAA1C,CAAJ,EAAsD;QAClD,EAAExhB,GAAG,CAAC6P,MAAN;;;MAGJ7P,GAAG,CAAC4iB,YAAJ,GAAmB,CAACpB,KAAD,GAAS,CAAC+E,IAAI,CAAClC,KAAL,GAAa7P,GAAb,CAAiBxU,GAAG,CAAC6P,MAArB,EAA6B,GAA7B,CAA7B;MAEA,OAAO7P,GAAP;;;IAGJ,SAASmmB,iBAAT,CAA2BI,IAA3B,EAAiC/E,KAAjC,EAAwC;MACpC,IAAIxhB,GAAJ;;MACA,IAAI,EAAEumB,IAAI,CAACpwB,OAAL,MAAkBqrB,KAAK,CAACrrB,OAAN,EAApB,CAAJ,EAA0C;QACtC,OAAO;UAAEysB,YAAY,EAAE,CAAhB;UAAmB/S,MAAM,EAAE;SAAlC;;;MAGJ2R,KAAK,GAAG2C,eAAe,CAAC3C,KAAD,EAAQ+E,IAAR,CAAvB;;MACA,IAAIA,IAAI,CAACE,QAAL,CAAcjF,KAAd,CAAJ,EAA0B;QACtBxhB,GAAG,GAAGsmB,yBAAyB,CAACC,IAAD,EAAO/E,KAAP,CAA/B;OADJ,MAEO;QACHxhB,GAAG,GAAGsmB,yBAAyB,CAAC9E,KAAD,EAAQ+E,IAAR,CAA/B;QACAvmB,GAAG,CAAC4iB,YAAJ,GAAmB,CAAC5iB,GAAG,CAAC4iB,YAAxB;QACA5iB,GAAG,CAAC6P,MAAJ,GAAa,CAAC7P,GAAG,CAAC6P,MAAlB;;;MAGJ,OAAO7P,GAAP;KA7+Ga;;;IAi/GjB,SAAS0mB,WAAT,CAAqBC,SAArB,EAAgCvlC,IAAhC,EAAsC;MAClC,OAAO,UAAU8hB,GAAV,EAAe0jB,MAAf,EAAuB;QAC1B,IAAIC,GAAJ,EAASC,GAAT,CAD0B;;QAG1B,IAAIF,MAAM,KAAK,IAAX,IAAmB,CAACvkB,KAAK,CAAC,CAACukB,MAAF,CAA7B,EAAwC;UACpCliB,eAAe,CACXtjB,IADW,EAEX,cACIA,IADJ,GAEI,sDAFJ,GAGIA,IAHJ,GAII,oBAJJ,GAKI,8EAPO,CAAf;UASA0lC,GAAG,GAAG5jB,GAAN;UACAA,GAAG,GAAG0jB,MAAN;UACAA,MAAM,GAAGE,GAAT;;;QAGJD,GAAG,GAAG1E,cAAc,CAACjf,GAAD,EAAM0jB,MAAN,CAApB;QACA7B,WAAW,CAAC,IAAD,EAAO8B,GAAP,EAAYF,SAAZ,CAAX;QACA,OAAO,IAAP;OApBJ;;;IAwBJ,SAAS5B,WAAT,CAAqBhf,GAArB,EAA0Bsc,QAA1B,EAAoC0E,QAApC,EAA8CjjB,YAA9C,EAA4D;MACxD,IAAI8e,YAAY,GAAGP,QAAQ,CAACQ,aAA5B;UACIF,IAAI,GAAGO,QAAQ,CAACb,QAAQ,CAACS,KAAV,CADnB;UAEIjT,MAAM,GAAGqT,QAAQ,CAACb,QAAQ,CAAC7R,OAAV,CAFrB;;MAIA,IAAI,CAACzK,GAAG,CAAC5P,OAAJ,EAAL,EAAoB;;QAEhB;;;MAGJ2N,YAAY,GAAGA,YAAY,IAAI,IAAhB,GAAuB,IAAvB,GAA8BA,YAA7C;;MAEA,IAAI+L,MAAJ,EAAY;QACRyB,QAAQ,CAACvL,GAAD,EAAMjW,GAAG,CAACiW,GAAD,EAAM,OAAN,CAAH,GAAoB8J,MAAM,GAAGkX,QAAnC,CAAR;;;MAEJ,IAAIpE,IAAJ,EAAU;QACN1W,KAAK,CAAClG,GAAD,EAAM,MAAN,EAAcjW,GAAG,CAACiW,GAAD,EAAM,MAAN,CAAH,GAAmB4c,IAAI,GAAGoE,QAAxC,CAAL;;;MAEJ,IAAInE,YAAJ,EAAkB;QACd7c,GAAG,CAACzD,EAAJ,CAAOgiB,OAAP,CAAeve,GAAG,CAACzD,EAAJ,CAAOnC,OAAP,KAAmByiB,YAAY,GAAGmE,QAAjD;;;MAEJ,IAAIjjB,YAAJ,EAAkB;QACdvZ,KAAK,CAACuZ,YAAN,CAAmBiC,GAAnB,EAAwB4c,IAAI,IAAI9S,MAAhC;;;;IAIR,IAAI2E,GAAG,GAAGkS,WAAW,CAAC,CAAD,EAAI,KAAJ,CAArB;QACIvB,QAAQ,GAAGuB,WAAW,CAAC,CAAC,CAAF,EAAK,UAAL,CAD1B;;IAGA,SAASM,QAAT,CAAkB/wB,KAAlB,EAAyB;MACrB,OAAO,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,YAAY9R,MAArD;KAxiHa;;;IA4iHjB,SAAS8iC,aAAT,CAAuBhxB,KAAvB,EAA8B;MAC1B,OACI8N,QAAQ,CAAC9N,KAAD,CAAR,IACA4J,MAAM,CAAC5J,KAAD,CADN,IAEA+wB,QAAQ,CAAC/wB,KAAD,CAFR,IAGA2J,QAAQ,CAAC3J,KAAD,CAHR,IAIAixB,qBAAqB,CAACjxB,KAAD,CAJrB,IAKAkxB,mBAAmB,CAAClxB,KAAD,CALnB,IAMAA,KAAK,KAAK,IANV,IAOAA,KAAK,KAAKzO,SARd;;;IAYJ,SAAS2/B,mBAAT,CAA6BlxB,KAA7B,EAAoC;MAChC,IAAImxB,UAAU,GAAGjoB,QAAQ,CAAClJ,KAAD,CAAR,IAAmB,CAACsJ,aAAa,CAACtJ,KAAD,CAAlD;UACIoxB,YAAY,GAAG,KADnB;UAEIjpB,UAAU,GAAG,CACT,OADS,EAET,MAFS,EAGT,GAHS,EAIT,QAJS,EAKT,OALS,EAMT,GANS,EAOT,MAPS,EAQT,KARS,EAST,GATS,EAUT,OAVS,EAWT,MAXS,EAYT,GAZS,EAaT,OAbS,EAcT,MAdS,EAeT,GAfS,EAgBT,SAhBS,EAiBT,QAjBS,EAkBT,GAlBS,EAmBT,SAnBS,EAoBT,QApBS,EAqBT,GArBS,EAsBT,cAtBS,EAuBT,aAvBS,EAwBT,IAxBS,CAFjB;UA4BIle,CA5BJ;UA6BIonC,QA7BJ;UA8BIC,WAAW,GAAGnpB,UAAU,CAAChe,MA9B7B;;MAgCA,KAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGqnC,WAAhB,EAA6BrnC,CAAC,IAAI,CAAlC,EAAqC;QACjConC,QAAQ,GAAGlpB,UAAU,CAACle,CAAD,CAArB;QACAmnC,YAAY,GAAGA,YAAY,IAAIjoB,UAAU,CAACnJ,KAAD,EAAQqxB,QAAR,CAAzC;;;MAGJ,OAAOF,UAAU,IAAIC,YAArB;;;IAGJ,SAASH,qBAAT,CAA+BjxB,KAA/B,EAAsC;MAClC,IAAIuxB,SAAS,GAAG/mC,OAAO,CAACwV,KAAD,CAAvB;UACIwxB,YAAY,GAAG,KADnB;;MAEA,IAAID,SAAJ,EAAe;QACXC,YAAY,GACRxxB,KAAK,CAACvM,MAAN,CAAa,UAAUoF,IAAV,EAAgB;UACzB,OAAO,CAAC8Q,QAAQ,CAAC9Q,IAAD,CAAT,IAAmBk4B,QAAQ,CAAC/wB,KAAD,CAAlC;SADJ,EAEG7V,MAFH,KAEc,CAHlB;;;MAKJ,OAAOonC,SAAS,IAAIC,YAApB;;;IAGJ,SAASC,cAAT,CAAwBzxB,KAAxB,EAA+B;MAC3B,IAAImxB,UAAU,GAAGjoB,QAAQ,CAAClJ,KAAD,CAAR,IAAmB,CAACsJ,aAAa,CAACtJ,KAAD,CAAlD;UACIoxB,YAAY,GAAG,KADnB;UAEIjpB,UAAU,GAAG,CACT,SADS,EAET,SAFS,EAGT,SAHS,EAIT,UAJS,EAKT,UALS,EAMT,UANS,CAFjB;UAUIle,CAVJ;UAWIonC,QAXJ;;MAaA,KAAKpnC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGke,UAAU,CAAChe,MAA3B,EAAmCF,CAAC,IAAI,CAAxC,EAA2C;QACvConC,QAAQ,GAAGlpB,UAAU,CAACle,CAAD,CAArB;QACAmnC,YAAY,GAAGA,YAAY,IAAIjoB,UAAU,CAACnJ,KAAD,EAAQqxB,QAAR,CAAzC;;;MAGJ,OAAOF,UAAU,IAAIC,YAArB;;;IAGJ,SAASM,iBAAT,CAA2BC,QAA3B,EAAqC5hB,GAArC,EAA0C;MACtC,IAAImE,IAAI,GAAGyd,QAAQ,CAACzd,IAAT,CAAcnE,GAAd,EAAmB,MAAnB,EAA2B,IAA3B,CAAX;MACA,OAAOmE,IAAI,GAAG,CAAC,CAAR,GACD,UADC,GAEDA,IAAI,GAAG,CAAC,CAAR,GACA,UADA,GAEAA,IAAI,GAAG,CAAP,GACA,SADA,GAEAA,IAAI,GAAG,CAAP,GACA,SADA,GAEAA,IAAI,GAAG,CAAP,GACA,SADA,GAEAA,IAAI,GAAG,CAAP,GACA,UADA,GAEA,UAZN;;;IAeJ,SAAS0d,UAAT,CAAoB9/B,IAApB,EAA0B+/B,OAA1B,EAAmC;;MAE/B,IAAI3nC,SAAS,CAACC,MAAV,KAAqB,CAAzB,EAA4B;QACxB,IAAI,CAACD,SAAS,CAAC,CAAD,CAAd,EAAmB;UACf4H,IAAI,GAAGP,SAAP;UACAsgC,OAAO,GAAGtgC,SAAV;SAFJ,MAGO,IAAIy/B,aAAa,CAAC9mC,SAAS,CAAC,CAAD,CAAV,CAAjB,EAAiC;UACpC4H,IAAI,GAAG5H,SAAS,CAAC,CAAD,CAAhB;UACA2nC,OAAO,GAAGtgC,SAAV;SAFG,MAGA,IAAIkgC,cAAc,CAACvnC,SAAS,CAAC,CAAD,CAAV,CAAlB,EAAkC;UACrC2nC,OAAO,GAAG3nC,SAAS,CAAC,CAAD,CAAnB;UACA4H,IAAI,GAAGP,SAAP;;OAXuB;;;;MAgB/B,IAAIwe,GAAG,GAAGje,IAAI,IAAIy3B,WAAW,EAA7B;UACIuI,GAAG,GAAG5D,eAAe,CAACne,GAAD,EAAM,IAAN,CAAf,CAA2BgiB,OAA3B,CAAmC,KAAnC,CADV;UAEI3nB,MAAM,GAAG9V,KAAK,CAAC09B,cAAN,CAAqB,IAArB,EAA2BF,GAA3B,KAAmC,UAFhD;UAGI9hB,MAAM,GACF6hB,OAAO,KACNnjB,UAAU,CAACmjB,OAAO,CAACznB,MAAD,CAAR,CAAV,GACKynB,OAAO,CAACznB,MAAD,CAAP,CAAgBxf,IAAhB,CAAqB,IAArB,EAA2BmlB,GAA3B,CADL,GAEK8hB,OAAO,CAACznB,MAAD,CAHN,CAJf;MASA,OAAO,KAAKA,MAAL,CACH4F,MAAM,IAAI,KAAKoB,UAAL,GAAkBvB,QAAlB,CAA2BzF,MAA3B,EAAmC,IAAnC,EAAyCmf,WAAW,CAACxZ,GAAD,CAApD,CADP,CAAP;;;IAKJ,SAASqe,KAAT,GAAiB;MACb,OAAO,IAAIzgB,MAAJ,CAAW,IAAX,CAAP;;;IAGJ,SAAS4iB,OAAT,CAAiBvwB,KAAjB,EAAwByU,KAAxB,EAA+B;MAC3B,IAAIwd,UAAU,GAAGnkB,QAAQ,CAAC9N,KAAD,CAAR,GAAkBA,KAAlB,GAA0BupB,WAAW,CAACvpB,KAAD,CAAtD;;MACA,IAAI,EAAE,KAAKE,OAAL,MAAkB+xB,UAAU,CAAC/xB,OAAX,EAApB,CAAJ,EAA+C;QAC3C,OAAO,KAAP;;;MAEJuU,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAd,IAAyB,aAAjC;;MACA,IAAIA,KAAK,KAAK,aAAd,EAA6B;QACzB,OAAO,KAAKvK,OAAL,KAAiB+nB,UAAU,CAAC/nB,OAAX,EAAxB;OADJ,MAEO;QACH,OAAO+nB,UAAU,CAAC/nB,OAAX,KAAuB,KAAKkkB,KAAL,GAAa2D,OAAb,CAAqBtd,KAArB,EAA4BvK,OAA5B,EAA9B;;;;IAIR,SAASsmB,QAAT,CAAkBxwB,KAAlB,EAAyByU,KAAzB,EAAgC;MAC5B,IAAIwd,UAAU,GAAGnkB,QAAQ,CAAC9N,KAAD,CAAR,GAAkBA,KAAlB,GAA0BupB,WAAW,CAACvpB,KAAD,CAAtD;;MACA,IAAI,EAAE,KAAKE,OAAL,MAAkB+xB,UAAU,CAAC/xB,OAAX,EAApB,CAAJ,EAA+C;QAC3C,OAAO,KAAP;;;MAEJuU,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAd,IAAyB,aAAjC;;MACA,IAAIA,KAAK,KAAK,aAAd,EAA6B;QACzB,OAAO,KAAKvK,OAAL,KAAiB+nB,UAAU,CAAC/nB,OAAX,EAAxB;OADJ,MAEO;QACH,OAAO,KAAKkkB,KAAL,GAAa8D,KAAb,CAAmBzd,KAAnB,EAA0BvK,OAA1B,KAAsC+nB,UAAU,CAAC/nB,OAAX,EAA7C;;;;IAIR,SAASioB,SAAT,CAAmBtmC,IAAnB,EAAyB2C,EAAzB,EAA6BimB,KAA7B,EAAoC2d,WAApC,EAAiD;MAC7C,IAAIC,SAAS,GAAGvkB,QAAQ,CAACjiB,IAAD,CAAR,GAAiBA,IAAjB,GAAwB09B,WAAW,CAAC19B,IAAD,CAAnD;UACIymC,OAAO,GAAGxkB,QAAQ,CAACtf,EAAD,CAAR,GAAeA,EAAf,GAAoB+6B,WAAW,CAAC/6B,EAAD,CAD7C;;MAEA,IAAI,EAAE,KAAK0R,OAAL,MAAkBmyB,SAAS,CAACnyB,OAAV,EAAlB,IAAyCoyB,OAAO,CAACpyB,OAAR,EAA3C,CAAJ,EAAmE;QAC/D,OAAO,KAAP;;;MAEJkyB,WAAW,GAAGA,WAAW,IAAI,IAA7B;MACA,OACI,CAACA,WAAW,CAAC,CAAD,CAAX,KAAmB,GAAnB,GACK,KAAK7B,OAAL,CAAa8B,SAAb,EAAwB5d,KAAxB,CADL,GAEK,CAAC,KAAK+b,QAAL,CAAc6B,SAAd,EAAyB5d,KAAzB,CAFP,MAGC2d,WAAW,CAAC,CAAD,CAAX,KAAmB,GAAnB,GACK,KAAK5B,QAAL,CAAc8B,OAAd,EAAuB7d,KAAvB,CADL,GAEK,CAAC,KAAK8b,OAAL,CAAa+B,OAAb,EAAsB7d,KAAtB,CALP,CADJ;;;IAUJ,SAAS8d,MAAT,CAAgBvyB,KAAhB,EAAuByU,KAAvB,EAA8B;MAC1B,IAAIwd,UAAU,GAAGnkB,QAAQ,CAAC9N,KAAD,CAAR,GAAkBA,KAAlB,GAA0BupB,WAAW,CAACvpB,KAAD,CAAtD;UACIwyB,OADJ;;MAEA,IAAI,EAAE,KAAKtyB,OAAL,MAAkB+xB,UAAU,CAAC/xB,OAAX,EAApB,CAAJ,EAA+C;QAC3C,OAAO,KAAP;;;MAEJuU,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAd,IAAyB,aAAjC;;MACA,IAAIA,KAAK,KAAK,aAAd,EAA6B;QACzB,OAAO,KAAKvK,OAAL,OAAmB+nB,UAAU,CAAC/nB,OAAX,EAA1B;OADJ,MAEO;QACHsoB,OAAO,GAAGP,UAAU,CAAC/nB,OAAX,EAAV;QACA,OACI,KAAKkkB,KAAL,GAAa2D,OAAb,CAAqBtd,KAArB,EAA4BvK,OAA5B,MAAyCsoB,OAAzC,IACAA,OAAO,IAAI,KAAKpE,KAAL,GAAa8D,KAAb,CAAmBzd,KAAnB,EAA0BvK,OAA1B,EAFf;;;;IAOR,SAASuoB,aAAT,CAAuBzyB,KAAvB,EAA8ByU,KAA9B,EAAqC;MACjC,OAAO,KAAK8d,MAAL,CAAYvyB,KAAZ,EAAmByU,KAAnB,KAA6B,KAAK8b,OAAL,CAAavwB,KAAb,EAAoByU,KAApB,CAApC;;;IAGJ,SAASie,cAAT,CAAwB1yB,KAAxB,EAA+ByU,KAA/B,EAAsC;MAClC,OAAO,KAAK8d,MAAL,CAAYvyB,KAAZ,EAAmByU,KAAnB,KAA6B,KAAK+b,QAAL,CAAcxwB,KAAd,EAAqByU,KAArB,CAApC;;;IAGJ,SAASP,IAAT,CAAclU,KAAd,EAAqByU,KAArB,EAA4Bke,OAA5B,EAAqC;MACjC,IAAIC,IAAJ,EAAUC,SAAV,EAAqB7iB,MAArB;;MAEA,IAAI,CAAC,KAAK9P,OAAL,EAAL,EAAqB;QACjB,OAAO0M,GAAP;;;MAGJgmB,IAAI,GAAG1E,eAAe,CAACluB,KAAD,EAAQ,IAAR,CAAtB;;MAEA,IAAI,CAAC4yB,IAAI,CAAC1yB,OAAL,EAAL,EAAqB;QACjB,OAAO0M,GAAP;;;MAGJimB,SAAS,GAAG,CAACD,IAAI,CAACjF,SAAL,KAAmB,KAAKA,SAAL,EAApB,IAAwC,GAApD;MAEAlZ,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;;MAEA,QAAQA,KAAR;QACI,KAAK,MAAL;UACIzE,MAAM,GAAG8iB,SAAS,CAAC,IAAD,EAAOF,IAAP,CAAT,GAAwB,EAAjC;UACA;;QACJ,KAAK,OAAL;UACI5iB,MAAM,GAAG8iB,SAAS,CAAC,IAAD,EAAOF,IAAP,CAAlB;UACA;;QACJ,KAAK,SAAL;UACI5iB,MAAM,GAAG8iB,SAAS,CAAC,IAAD,EAAOF,IAAP,CAAT,GAAwB,CAAjC;UACA;;QACJ,KAAK,QAAL;UACI5iB,MAAM,GAAG,CAAC,OAAO4iB,IAAR,IAAgB,GAAzB;UACA;;;QACJ,KAAK,QAAL;UACI5iB,MAAM,GAAG,CAAC,OAAO4iB,IAAR,IAAgB,GAAzB;UACA;;;QACJ,KAAK,MAAL;UACI5iB,MAAM,GAAG,CAAC,OAAO4iB,IAAR,IAAgB,IAAzB;UACA;;;QACJ,KAAK,KAAL;UACI5iB,MAAM,GAAG,CAAC,OAAO4iB,IAAP,GAAcC,SAAf,IAA4B,KAArC;UACA;;;QACJ,KAAK,MAAL;UACI7iB,MAAM,GAAG,CAAC,OAAO4iB,IAAP,GAAcC,SAAf,IAA4B,MAArC;UACA;;;QACJ;UACI7iB,MAAM,GAAG,OAAO4iB,IAAhB;;;MAGR,OAAOD,OAAO,GAAG3iB,MAAH,GAAYuF,QAAQ,CAACvF,MAAD,CAAlC;;;IAGJ,SAAS8iB,SAAT,CAAmB1pB,CAAnB,EAAsBC,CAAtB,EAAyB;MACrB,IAAID,CAAC,CAAC8M,IAAF,KAAW7M,CAAC,CAAC6M,IAAF,EAAf,EAAyB;;;QAGrB,OAAO,CAAC4c,SAAS,CAACzpB,CAAD,EAAID,CAAJ,CAAjB;OAJiB;;;MAOrB,IAAI2pB,cAAc,GAAG,CAAC1pB,CAAC,CAACiM,IAAF,KAAWlM,CAAC,CAACkM,IAAF,EAAZ,IAAwB,EAAxB,IAA8BjM,CAAC,CAAC4M,KAAF,KAAY7M,CAAC,CAAC6M,KAAF,EAA1C,CAArB;;MAEI+c,MAAM,GAAG5pB,CAAC,CAACglB,KAAF,GAAU7P,GAAV,CAAcwU,cAAd,EAA8B,QAA9B,CAFb;UAGIE,OAHJ;UAIIC,MAJJ;;MAMA,IAAI7pB,CAAC,GAAG2pB,MAAJ,GAAa,CAAjB,EAAoB;QAChBC,OAAO,GAAG7pB,CAAC,CAACglB,KAAF,GAAU7P,GAAV,CAAcwU,cAAc,GAAG,CAA/B,EAAkC,QAAlC,CAAV,CADgB;;QAGhBG,MAAM,GAAG,CAAC7pB,CAAC,GAAG2pB,MAAL,KAAgBA,MAAM,GAAGC,OAAzB,CAAT;OAHJ,MAIO;QACHA,OAAO,GAAG7pB,CAAC,CAACglB,KAAF,GAAU7P,GAAV,CAAcwU,cAAc,GAAG,CAA/B,EAAkC,QAAlC,CAAV,CADG;;QAGHG,MAAM,GAAG,CAAC7pB,CAAC,GAAG2pB,MAAL,KAAgBC,OAAO,GAAGD,MAA1B,CAAT;OApBiB;;;MAwBrB,OAAO,EAAED,cAAc,GAAGG,MAAnB,KAA8B,CAArC;;;IAGJ5+B,KAAK,CAAC6+B,aAAN,GAAsB,sBAAtB;IACA7+B,KAAK,CAAC8+B,gBAAN,GAAyB,wBAAzB;;IAEA,SAASnqB,QAAT,GAAoB;MAChB,OAAO,KAAKmlB,KAAL,GAAa/jB,MAAb,CAAoB,IAApB,EAA0BD,MAA1B,CAAiC,kCAAjC,CAAP;;;IAGJ,SAASipB,WAAT,CAAqBC,UAArB,EAAiC;MAC7B,IAAI,CAAC,KAAKpzB,OAAL,EAAL,EAAqB;QACjB,OAAO,IAAP;;;MAEJ,IAAIsK,GAAG,GAAG8oB,UAAU,KAAK,IAAzB;UACI3nB,CAAC,GAAGnB,GAAG,GAAG,KAAK4jB,KAAL,GAAa5jB,GAAb,EAAH,GAAwB,IADnC;;MAEA,IAAImB,CAAC,CAAC2J,IAAF,KAAW,CAAX,IAAgB3J,CAAC,CAAC2J,IAAF,KAAW,IAA/B,EAAqC;QACjC,OAAO7D,YAAY,CACf9F,CADe,EAEfnB,GAAG,GACG,gCADH,GAEG,8BAJS,CAAnB;;;MAOJ,IAAIkE,UAAU,CAAC7E,IAAI,CAACpR,SAAL,CAAe46B,WAAhB,CAAd,EAA4C;;QAExC,IAAI7oB,GAAJ,EAAS;UACL,OAAO,KAAK+oB,MAAL,GAAcF,WAAd,EAAP;SADJ,MAEO;UACH,OAAO,IAAIxpB,IAAJ,CAAS,KAAKK,OAAL,KAAiB,KAAKyjB,SAAL,KAAmB,EAAnB,GAAwB,IAAlD,EACF0F,WADE,GAEF9hB,OAFE,CAEM,GAFN,EAEWE,YAAY,CAAC9F,CAAD,EAAI,GAAJ,CAFvB,CAAP;;;;MAKR,OAAO8F,YAAY,CACf9F,CADe,EAEfnB,GAAG,GAAG,8BAAH,GAAoC,4BAFxB,CAAnB;;;AAOR;AACA;AACA;AACA;AACA;;;IACI,SAASgpB,OAAT,GAAmB;MACf,IAAI,CAAC,KAAKtzB,OAAL,EAAL,EAAqB;QACjB,OAAO,uBAAuB,KAAKkN,EAA5B,GAAiC,MAAxC;;;MAEJ,IAAIjf,IAAI,GAAG,QAAX;UACIslC,IAAI,GAAG,EADX;UAEIpnC,MAFJ;UAGIipB,IAHJ;UAIIoe,QAJJ;UAKIpnC,MALJ;;MAMA,IAAI,CAAC,KAAKojC,OAAL,EAAL,EAAqB;QACjBvhC,IAAI,GAAG,KAAKw/B,SAAL,OAAqB,CAArB,GAAyB,YAAzB,GAAwC,kBAA/C;QACA8F,IAAI,GAAG,GAAP;;;MAEJpnC,MAAM,GAAG,MAAM8B,IAAN,GAAa,KAAtB;MACAmnB,IAAI,GAAG,KAAK,KAAKA,IAAL,EAAL,IAAoB,KAAKA,IAAL,MAAe,IAAnC,GAA0C,MAA1C,GAAmD,QAA1D;MACAoe,QAAQ,GAAG,uBAAX;MACApnC,MAAM,GAAGmnC,IAAI,GAAG,MAAhB;MAEA,OAAO,KAAKrpB,MAAL,CAAY/d,MAAM,GAAGipB,IAAT,GAAgBoe,QAAhB,GAA2BpnC,MAAvC,CAAP;;;IAGJ,SAAS8d,MAAT,CAAgBupB,WAAhB,EAA6B;MACzB,IAAI,CAACA,WAAL,EAAkB;QACdA,WAAW,GAAG,KAAK/D,KAAL,KACRt7B,KAAK,CAAC8+B,gBADE,GAER9+B,KAAK,CAAC6+B,aAFZ;;;MAIJ,IAAInjB,MAAM,GAAGyB,YAAY,CAAC,IAAD,EAAOkiB,WAAP,CAAzB;MACA,OAAO,KAAKviB,UAAL,GAAkBwiB,UAAlB,CAA6B5jB,MAA7B,CAAP;;;IAGJ,SAASnkB,IAAT,CAAciG,IAAd,EAAoBgiB,aAApB,EAAmC;MAC/B,IACI,KAAK5T,OAAL,OACE4N,QAAQ,CAAChc,IAAD,CAAR,IAAkBA,IAAI,CAACoO,OAAL,EAAnB,IAAsCqpB,WAAW,CAACz3B,IAAD,CAAX,CAAkBoO,OAAlB,EADvC,CADJ,EAGE;QACE,OAAOgsB,cAAc,CAAC;UAAE19B,EAAE,EAAE,IAAN;UAAY3C,IAAI,EAAEiG;SAAnB,CAAd,CACFuY,MADE,CACK,KAAKA,MAAL,EADL,EAEFwpB,QAFE,CAEO,CAAC/f,aAFR,CAAP;OAJJ,MAOO;QACH,OAAO,KAAK1C,UAAL,GAAkBM,WAAlB,EAAP;;;;IAIR,SAASoiB,OAAT,CAAiBhgB,aAAjB,EAAgC;MAC5B,OAAO,KAAKjoB,IAAL,CAAU09B,WAAW,EAArB,EAAyBzV,aAAzB,CAAP;;;IAGJ,SAAStlB,EAAT,CAAYsD,IAAZ,EAAkBgiB,aAAlB,EAAiC;MAC7B,IACI,KAAK5T,OAAL,OACE4N,QAAQ,CAAChc,IAAD,CAAR,IAAkBA,IAAI,CAACoO,OAAL,EAAnB,IAAsCqpB,WAAW,CAACz3B,IAAD,CAAX,CAAkBoO,OAAlB,EADvC,CADJ,EAGE;QACE,OAAOgsB,cAAc,CAAC;UAAErgC,IAAI,EAAE,IAAR;UAAc2C,EAAE,EAAEsD;SAAnB,CAAd,CACFuY,MADE,CACK,KAAKA,MAAL,EADL,EAEFwpB,QAFE,CAEO,CAAC/f,aAFR,CAAP;OAJJ,MAOO;QACH,OAAO,KAAK1C,UAAL,GAAkBM,WAAlB,EAAP;;;;IAIR,SAASqiB,KAAT,CAAejgB,aAAf,EAA8B;MAC1B,OAAO,KAAKtlB,EAAL,CAAQ+6B,WAAW,EAAnB,EAAuBzV,aAAvB,CAAP;KAl7Ha;;;;;IAw7HjB,SAASzJ,MAAT,CAAgB1f,GAAhB,EAAqB;MACjB,IAAIqpC,aAAJ;;MAEA,IAAIrpC,GAAG,KAAK4G,SAAZ,EAAuB;QACnB,OAAO,KAAKmc,OAAL,CAAaoW,KAApB;OADJ,MAEO;QACHkQ,aAAa,GAAG/P,SAAS,CAACt5B,GAAD,CAAzB;;QACA,IAAIqpC,aAAa,IAAI,IAArB,EAA2B;UACvB,KAAKtmB,OAAL,GAAesmB,aAAf;;;QAEJ,OAAO,IAAP;;;;IAIR,IAAIC,IAAI,GAAG/lB,SAAS,CAChB,iJADgB,EAEhB,UAAUvjB,GAAV,EAAe;MACX,IAAIA,GAAG,KAAK4G,SAAZ,EAAuB;QACnB,OAAO,KAAK6f,UAAL,EAAP;OADJ,MAEO;QACH,OAAO,KAAK/G,MAAL,CAAY1f,GAAZ,CAAP;;KANQ,CAApB;;IAWA,SAASymB,UAAT,GAAsB;MAClB,OAAO,KAAK1D,OAAZ;;;IAGJ,IAAIwmB,aAAa,GAAG,IAApB;QACIC,aAAa,GAAG,KAAKD,aADzB;QAEIE,WAAW,GAAG,KAAKD,aAFvB;QAGIE,gBAAgB,GAAG,CAAC,MAAM,GAAN,GAAY,EAAb,IAAmB,EAAnB,GAAwBD,WAH/C,CAr9HiB;;IA29HjB,SAASE,KAAT,CAAeC,QAAf,EAAyBC,OAAzB,EAAkC;MAC9B,OAAO,CAAED,QAAQ,GAAGC,OAAZ,GAAuBA,OAAxB,IAAmCA,OAA1C;;;IAGJ,SAASC,gBAAT,CAA0B9gB,CAA1B,EAA6BhI,CAA7B,EAAgC0H,CAAhC,EAAmC;;MAE/B,IAAIM,CAAC,GAAG,GAAJ,IAAWA,CAAC,IAAI,CAApB,EAAuB;;QAEnB,OAAO,IAAI9J,IAAJ,CAAS8J,CAAC,GAAG,GAAb,EAAkBhI,CAAlB,EAAqB0H,CAArB,IAA0BghB,gBAAjC;OAFJ,MAGO;QACH,OAAO,IAAIxqB,IAAJ,CAAS8J,CAAT,EAAYhI,CAAZ,EAAe0H,CAAf,EAAkBnJ,OAAlB,EAAP;;;;IAIR,SAASwqB,cAAT,CAAwB/gB,CAAxB,EAA2BhI,CAA3B,EAA8B0H,CAA9B,EAAiC;;MAE7B,IAAIM,CAAC,GAAG,GAAJ,IAAWA,CAAC,IAAI,CAApB,EAAuB;;QAEnB,OAAO9J,IAAI,CAAC+S,GAAL,CAASjJ,CAAC,GAAG,GAAb,EAAkBhI,CAAlB,EAAqB0H,CAArB,IAA0BghB,gBAAjC;OAFJ,MAGO;QACH,OAAOxqB,IAAI,CAAC+S,GAAL,CAASjJ,CAAT,EAAYhI,CAAZ,EAAe0H,CAAf,CAAP;;;;IAIR,SAAS0e,OAAT,CAAiBtd,KAAjB,EAAwB;MACpB,IAAI3iB,IAAJ,EAAU6iC,WAAV;MACAlgB,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;;MACA,IAAIA,KAAK,KAAKljB,SAAV,IAAuBkjB,KAAK,KAAK,aAAjC,IAAkD,CAAC,KAAKvU,OAAL,EAAvD,EAAuE;QACnE,OAAO,IAAP;;;MAGJy0B,WAAW,GAAG,KAAKnnB,MAAL,GAAcknB,cAAd,GAA+BD,gBAA7C;;MAEA,QAAQhgB,KAAR;QACI,KAAK,MAAL;UACI3iB,IAAI,GAAG6iC,WAAW,CAAC,KAAKrf,IAAL,EAAD,EAAc,CAAd,EAAiB,CAAjB,CAAlB;UACA;;QACJ,KAAK,SAAL;UACIxjB,IAAI,GAAG6iC,WAAW,CACd,KAAKrf,IAAL,EADc,EAEd,KAAKW,KAAL,KAAgB,KAAKA,KAAL,KAAe,CAFjB,EAGd,CAHc,CAAlB;UAKA;;QACJ,KAAK,OAAL;UACInkB,IAAI,GAAG6iC,WAAW,CAAC,KAAKrf,IAAL,EAAD,EAAc,KAAKW,KAAL,EAAd,EAA4B,CAA5B,CAAlB;UACA;;QACJ,KAAK,MAAL;UACInkB,IAAI,GAAG6iC,WAAW,CACd,KAAKrf,IAAL,EADc,EAEd,KAAKW,KAAL,EAFc,EAGd,KAAKC,IAAL,KAAc,KAAKqH,OAAL,EAHA,CAAlB;UAKA;;QACJ,KAAK,SAAL;UACIzrB,IAAI,GAAG6iC,WAAW,CACd,KAAKrf,IAAL,EADc,EAEd,KAAKW,KAAL,EAFc,EAGd,KAAKC,IAAL,MAAe,KAAK0e,UAAL,KAAoB,CAAnC,CAHc,CAAlB;UAKA;;QACJ,KAAK,KAAL;QACA,KAAK,MAAL;UACI9iC,IAAI,GAAG6iC,WAAW,CAAC,KAAKrf,IAAL,EAAD,EAAc,KAAKW,KAAL,EAAd,EAA4B,KAAKC,IAAL,EAA5B,CAAlB;UACA;;QACJ,KAAK,MAAL;UACIpkB,IAAI,GAAG,KAAKua,EAAL,CAAQnC,OAAR,EAAP;UACApY,IAAI,IAAIwiC,KAAK,CACTxiC,IAAI,IAAI,KAAK0b,MAAL,GAAc,CAAd,GAAkB,KAAKmgB,SAAL,KAAmBwG,aAAzC,CADK,EAETC,WAFS,CAAb;UAIA;;QACJ,KAAK,QAAL;UACItiC,IAAI,GAAG,KAAKua,EAAL,CAAQnC,OAAR,EAAP;UACApY,IAAI,IAAIwiC,KAAK,CAACxiC,IAAD,EAAOqiC,aAAP,CAAb;UACA;;QACJ,KAAK,QAAL;UACIriC,IAAI,GAAG,KAAKua,EAAL,CAAQnC,OAAR,EAAP;UACApY,IAAI,IAAIwiC,KAAK,CAACxiC,IAAD,EAAOoiC,aAAP,CAAb;UACA;;;MAGR,KAAK7nB,EAAL,CAAQgiB,OAAR,CAAgBv8B,IAAhB;;MACAwC,KAAK,CAACuZ,YAAN,CAAmB,IAAnB,EAAyB,IAAzB;MACA,OAAO,IAAP;;;IAGJ,SAASqkB,KAAT,CAAezd,KAAf,EAAsB;MAClB,IAAI3iB,IAAJ,EAAU6iC,WAAV;MACAlgB,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;;MACA,IAAIA,KAAK,KAAKljB,SAAV,IAAuBkjB,KAAK,KAAK,aAAjC,IAAkD,CAAC,KAAKvU,OAAL,EAAvD,EAAuE;QACnE,OAAO,IAAP;;;MAGJy0B,WAAW,GAAG,KAAKnnB,MAAL,GAAcknB,cAAd,GAA+BD,gBAA7C;;MAEA,QAAQhgB,KAAR;QACI,KAAK,MAAL;UACI3iB,IAAI,GAAG6iC,WAAW,CAAC,KAAKrf,IAAL,KAAc,CAAf,EAAkB,CAAlB,EAAqB,CAArB,CAAX,GAAqC,CAA5C;UACA;;QACJ,KAAK,SAAL;UACIxjB,IAAI,GACA6iC,WAAW,CACP,KAAKrf,IAAL,EADO,EAEP,KAAKW,KAAL,KAAgB,KAAKA,KAAL,KAAe,CAA/B,GAAoC,CAF7B,EAGP,CAHO,CAAX,GAII,CALR;UAMA;;QACJ,KAAK,OAAL;UACInkB,IAAI,GAAG6iC,WAAW,CAAC,KAAKrf,IAAL,EAAD,EAAc,KAAKW,KAAL,KAAe,CAA7B,EAAgC,CAAhC,CAAX,GAAgD,CAAvD;UACA;;QACJ,KAAK,MAAL;UACInkB,IAAI,GACA6iC,WAAW,CACP,KAAKrf,IAAL,EADO,EAEP,KAAKW,KAAL,EAFO,EAGP,KAAKC,IAAL,KAAc,KAAKqH,OAAL,EAAd,GAA+B,CAHxB,CAAX,GAII,CALR;UAMA;;QACJ,KAAK,SAAL;UACIzrB,IAAI,GACA6iC,WAAW,CACP,KAAKrf,IAAL,EADO,EAEP,KAAKW,KAAL,EAFO,EAGP,KAAKC,IAAL,MAAe,KAAK0e,UAAL,KAAoB,CAAnC,IAAwC,CAHjC,CAAX,GAII,CALR;UAMA;;QACJ,KAAK,KAAL;QACA,KAAK,MAAL;UACI9iC,IAAI,GAAG6iC,WAAW,CAAC,KAAKrf,IAAL,EAAD,EAAc,KAAKW,KAAL,EAAd,EAA4B,KAAKC,IAAL,KAAc,CAA1C,CAAX,GAA0D,CAAjE;UACA;;QACJ,KAAK,MAAL;UACIpkB,IAAI,GAAG,KAAKua,EAAL,CAAQnC,OAAR,EAAP;UACApY,IAAI,IACAsiC,WAAW,GACXE,KAAK,CACDxiC,IAAI,IAAI,KAAK0b,MAAL,GAAc,CAAd,GAAkB,KAAKmgB,SAAL,KAAmBwG,aAAzC,CADH,EAEDC,WAFC,CADL,GAKA,CANJ;UAOA;;QACJ,KAAK,QAAL;UACItiC,IAAI,GAAG,KAAKua,EAAL,CAAQnC,OAAR,EAAP;UACApY,IAAI,IAAIqiC,aAAa,GAAGG,KAAK,CAACxiC,IAAD,EAAOqiC,aAAP,CAArB,GAA6C,CAArD;UACA;;QACJ,KAAK,QAAL;UACIriC,IAAI,GAAG,KAAKua,EAAL,CAAQnC,OAAR,EAAP;UACApY,IAAI,IAAIoiC,aAAa,GAAGI,KAAK,CAACxiC,IAAD,EAAOoiC,aAAP,CAArB,GAA6C,CAArD;UACA;;;MAGR,KAAK7nB,EAAL,CAAQgiB,OAAR,CAAgBv8B,IAAhB;;MACAwC,KAAK,CAACuZ,YAAN,CAAmB,IAAnB,EAAyB,IAAzB;MACA,OAAO,IAAP;;;IAGJ,SAAS3D,OAAT,GAAmB;MACf,OAAO,KAAKmC,EAAL,CAAQnC,OAAR,KAAoB,CAAC,KAAKuD,OAAL,IAAgB,CAAjB,IAAsB,KAAjD;;;IAGJ,SAASonB,IAAT,GAAgB;MACZ,OAAO5lC,IAAI,CAACwmB,KAAL,CAAW,KAAKvL,OAAL,KAAiB,IAA5B,CAAP;;;IAGJ,SAASqpB,MAAT,GAAkB;MACd,OAAO,IAAI1pB,IAAJ,CAAS,KAAKK,OAAL,EAAT,CAAP;;;IAGJ,SAASulB,OAAT,GAAmB;MACf,IAAI9jB,CAAC,GAAG,IAAR;MACA,OAAO,CACHA,CAAC,CAAC2J,IAAF,EADG,EAEH3J,CAAC,CAACsK,KAAF,EAFG,EAGHtK,CAAC,CAACuK,IAAF,EAHG,EAIHvK,CAAC,CAACqe,IAAF,EAJG,EAKHre,CAAC,CAACmf,MAAF,EALG,EAMHnf,CAAC,CAACof,MAAF,EANG,EAOHpf,CAAC,CAACqf,WAAF,EAPG,CAAP;;;IAWJ,SAAS8J,QAAT,GAAoB;MAChB,IAAInpB,CAAC,GAAG,IAAR;MACA,OAAO;QACH0gB,KAAK,EAAE1gB,CAAC,CAAC2J,IAAF,EADJ;QAEHsE,MAAM,EAAEjO,CAAC,CAACsK,KAAF,EAFL;QAGHC,IAAI,EAAEvK,CAAC,CAACuK,IAAF,EAHH;QAIHuL,KAAK,EAAE9V,CAAC,CAAC8V,KAAF,EAJJ;QAKHE,OAAO,EAAEhW,CAAC,CAACgW,OAAF,EALN;QAMHC,OAAO,EAAEjW,CAAC,CAACiW,OAAF,EANN;QAOH+K,YAAY,EAAEhhB,CAAC,CAACghB,YAAF;OAPlB;;;IAWJ,SAASoI,MAAT,GAAkB;;MAEd,OAAO,KAAK70B,OAAL,KAAiB,KAAKmzB,WAAL,EAAjB,GAAsC,IAA7C;;;IAGJ,SAAS2B,SAAT,GAAqB;MACjB,OAAO90B,OAAO,CAAC,IAAD,CAAd;;;IAGJ,SAAS+0B,YAAT,GAAwB;MACpB,OAAOhrB,MAAM,CAAC,EAAD,EAAKyB,eAAe,CAAC,IAAD,CAApB,CAAb;;;IAGJ,SAASwpB,SAAT,GAAqB;MACjB,OAAOxpB,eAAe,CAAC,IAAD,CAAf,CAAsBb,QAA7B;;;IAGJ,SAASsqB,YAAT,GAAwB;MACpB,OAAO;QACHn1B,KAAK,EAAE,KAAKoN,EADT;QAEHhD,MAAM,EAAE,KAAKiD,EAFV;QAGHhD,MAAM,EAAE,KAAKqD,OAHV;QAIH2d,KAAK,EAAE,KAAK7d,MAJT;QAKHlD,MAAM,EAAE,KAAKkC;OALjB;;;IASJwE,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,SAAZ,CAAd;IACAA,cAAc,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV,EAAa,SAAb,CAAd;IACAA,cAAc,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,SAAd,CAAd;IACAA,cAAc,CAAC,MAAD,EAAS,CAAT,EAAY,CAAZ,EAAe,SAAf,CAAd;IACAA,cAAc,CAAC,OAAD,EAAU,CAAV,EAAa,CAAb,EAAgB,WAAhB,CAAd;IAEAA,cAAc,CAAC,GAAD,EAAM,CAAC,GAAD,EAAM,CAAN,CAAN,EAAgB,IAAhB,EAAsB,SAAtB,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,CAAjB,EAAoB,SAApB,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAC,KAAD,EAAQ,CAAR,CAAN,EAAkB,CAAlB,EAAqB,SAArB,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAC,MAAD,EAAS,CAAT,CAAN,EAAmB,CAAnB,EAAsB,SAAtB,CAAd;IAEA0G,aAAa,CAAC,GAAD,EAAM0d,YAAN,CAAb;IACA1d,aAAa,CAAC,IAAD,EAAO0d,YAAP,CAAb;IACA1d,aAAa,CAAC,KAAD,EAAQ0d,YAAR,CAAb;IACA1d,aAAa,CAAC,MAAD,EAAS2d,YAAT,CAAb;IACA3d,aAAa,CAAC,OAAD,EAAU4d,cAAV,CAAb;IAEA/c,aAAa,CACT,CAAC,GAAD,EAAM,IAAN,EAAY,KAAZ,EAAmB,MAAnB,EAA2B,OAA3B,CADS,EAET,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgCqD,KAAhC,EAAuC;MACnC,IAAI3F,GAAG,GAAGsC,MAAM,CAACF,OAAP,CAAe6nB,SAAf,CAAyBv1B,KAAzB,EAAgCiR,KAAhC,EAAuCrD,MAAM,CAACpB,OAA9C,CAAV;;MACA,IAAIlB,GAAJ,EAAS;QACLI,eAAe,CAACkC,MAAD,CAAf,CAAwBtC,GAAxB,GAA8BA,GAA9B;OADJ,MAEO;QACHI,eAAe,CAACkC,MAAD,CAAf,CAAwB5C,UAAxB,GAAqChL,KAArC;;KAPC,CAAb;IAYA0X,aAAa,CAAC,GAAD,EAAMP,aAAN,CAAb;IACAO,aAAa,CAAC,IAAD,EAAOP,aAAP,CAAb;IACAO,aAAa,CAAC,KAAD,EAAQP,aAAR,CAAb;IACAO,aAAa,CAAC,MAAD,EAASP,aAAT,CAAb;IACAO,aAAa,CAAC,IAAD,EAAO8d,mBAAP,CAAb;IAEAjd,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,EAAY,KAAZ,EAAmB,MAAnB,CAAD,EAA6BM,IAA7B,CAAb;IACAN,aAAa,CAAC,CAAC,IAAD,CAAD,EAAS,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgCqD,KAAhC,EAAuC;MACzD,IAAIK,KAAJ;;MACA,IAAI1D,MAAM,CAACF,OAAP,CAAe+nB,oBAAnB,EAAyC;QACrCnkB,KAAK,GAAGtR,KAAK,CAACsR,KAAN,CAAY1D,MAAM,CAACF,OAAP,CAAe+nB,oBAA3B,CAAR;;;MAGJ,IAAI7nB,MAAM,CAACF,OAAP,CAAegoB,mBAAnB,EAAwC;QACpCtnC,KAAK,CAACyqB,IAAD,CAAL,GAAcjL,MAAM,CAACF,OAAP,CAAegoB,mBAAf,CAAmC11B,KAAnC,EAA0CsR,KAA1C,CAAd;OADJ,MAEO;QACHljB,KAAK,CAACyqB,IAAD,CAAL,GAAcsD,QAAQ,CAACnc,KAAD,EAAQ,EAAR,CAAtB;;KATK,CAAb;;IAaA,SAAS21B,UAAT,CAAoBhqB,CAApB,EAAuBvB,MAAvB,EAA+B;MAC3B,IAAIngB,CAAJ;UACI67B,CADJ;UAEI5P,IAFJ;UAGI0f,IAAI,GAAG,KAAKC,KAAL,IAAc5R,SAAS,CAAC,IAAD,CAAT,CAAgB4R,KAHzC;;MAIA,KAAK5rC,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;QACrC,QAAQ,OAAO2rC,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAvB;UACI,KAAK,QAAL;;YAEI5f,IAAI,GAAG5hB,KAAK,CAACshC,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAT,CAAL,CAAqB/D,OAArB,CAA6B,KAA7B,CAAP;YACA6D,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAR,GAAgB5f,IAAI,CAAChM,OAAL,EAAhB;YACA;;;QAGR,QAAQ,OAAO0rB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAvB;UACI,KAAK,WAAL;YACIH,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAR,GAAgB,CAACC,QAAjB;YACA;;UACJ,KAAK,QAAL;;YAEI9f,IAAI,GAAG5hB,KAAK,CAACshC,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAT,CAAL,CAAqBhE,OAArB,CAA6B,KAA7B,EAAoC7nB,OAApC,EAAP;YACA0rB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAR,GAAgB7f,IAAI,CAAChM,OAAL,EAAhB;YACA;;;;MAGZ,OAAO0rB,IAAP;;;IAGJ,SAASK,eAAT,CAAyBC,OAAzB,EAAkC9rB,MAAlC,EAA0CE,MAA1C,EAAkD;MAC9C,IAAIrgB,CAAJ;UACI67B,CADJ;UAEI8P,IAAI,GAAG,KAAKA,IAAL,EAFX;UAGIzqC,IAHJ;UAIIg5B,IAJJ;UAKIgS,MALJ;MAMAD,OAAO,GAAGA,OAAO,CAACh7B,WAAR,EAAV;;MAEA,KAAKjR,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;QACrCkB,IAAI,GAAGyqC,IAAI,CAAC3rC,CAAD,CAAJ,CAAQkB,IAAR,CAAa+P,WAAb,EAAP;QACAipB,IAAI,GAAGyR,IAAI,CAAC3rC,CAAD,CAAJ,CAAQk6B,IAAR,CAAajpB,WAAb,EAAP;QACAi7B,MAAM,GAAGP,IAAI,CAAC3rC,CAAD,CAAJ,CAAQksC,MAAR,CAAej7B,WAAf,EAAT;;QAEA,IAAIoP,MAAJ,EAAY;UACR,QAAQF,MAAR;YACI,KAAK,GAAL;YACA,KAAK,IAAL;YACA,KAAK,KAAL;cACI,IAAI+Z,IAAI,KAAK+R,OAAb,EAAsB;gBAClB,OAAON,IAAI,CAAC3rC,CAAD,CAAX;;;cAEJ;;YAEJ,KAAK,MAAL;cACI,IAAIkB,IAAI,KAAK+qC,OAAb,EAAsB;gBAClB,OAAON,IAAI,CAAC3rC,CAAD,CAAX;;;cAEJ;;YAEJ,KAAK,OAAL;cACI,IAAIksC,MAAM,KAAKD,OAAf,EAAwB;gBACpB,OAAON,IAAI,CAAC3rC,CAAD,CAAX;;;cAEJ;;SApBZ,MAsBO,IAAI,CAACkB,IAAD,EAAOg5B,IAAP,EAAagS,MAAb,EAAqB1c,OAArB,CAA6Byc,OAA7B,KAAyC,CAA7C,EAAgD;UACnD,OAAON,IAAI,CAAC3rC,CAAD,CAAX;;;;;IAKZ,SAASmsC,qBAAT,CAA+B9qB,GAA/B,EAAoCgK,IAApC,EAA0C;MACtC,IAAI+gB,GAAG,GAAG/qB,GAAG,CAACwqB,KAAJ,IAAaxqB,GAAG,CAACyqB,KAAjB,GAAyB,CAAC,CAA1B,GAA8B,CAAC,CAAzC;;MACA,IAAIzgB,IAAI,KAAK/jB,SAAb,EAAwB;QACpB,OAAO+C,KAAK,CAACgX,GAAG,CAACwqB,KAAL,CAAL,CAAiBxgB,IAAjB,EAAP;OADJ,MAEO;QACH,OAAOhhB,KAAK,CAACgX,GAAG,CAACwqB,KAAL,CAAL,CAAiBxgB,IAAjB,KAA0B,CAACA,IAAI,GAAGhK,GAAG,CAACmiB,MAAZ,IAAsB4I,GAAvD;;;;IAIR,SAASC,UAAT,GAAsB;MAClB,IAAIrsC,CAAJ;UACI67B,CADJ;UAEI7Y,GAFJ;UAGI2oB,IAAI,GAAG,KAAKxkB,UAAL,GAAkBwkB,IAAlB,EAHX;;MAIA,KAAK3rC,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;;QAErCgjB,GAAG,GAAG,KAAKmhB,KAAL,GAAa2D,OAAb,CAAqB,KAArB,EAA4B7nB,OAA5B,EAAN;;QAEA,IAAI0rB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAR,IAAiB7oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAA3C,EAAkD;UAC9C,OAAOH,IAAI,CAAC3rC,CAAD,CAAJ,CAAQkB,IAAf;;;QAEJ,IAAIyqC,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAR,IAAiB9oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAA3C,EAAkD;UAC9C,OAAOF,IAAI,CAAC3rC,CAAD,CAAJ,CAAQkB,IAAf;;;;MAIR,OAAO,EAAP;;;IAGJ,SAASorC,YAAT,GAAwB;MACpB,IAAItsC,CAAJ;UACI67B,CADJ;UAEI7Y,GAFJ;UAGI2oB,IAAI,GAAG,KAAKxkB,UAAL,GAAkBwkB,IAAlB,EAHX;;MAIA,KAAK3rC,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;;QAErCgjB,GAAG,GAAG,KAAKmhB,KAAL,GAAa2D,OAAb,CAAqB,KAArB,EAA4B7nB,OAA5B,EAAN;;QAEA,IAAI0rB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAR,IAAiB7oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAA3C,EAAkD;UAC9C,OAAOH,IAAI,CAAC3rC,CAAD,CAAJ,CAAQksC,MAAf;;;QAEJ,IAAIP,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAR,IAAiB9oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAA3C,EAAkD;UAC9C,OAAOF,IAAI,CAAC3rC,CAAD,CAAJ,CAAQksC,MAAf;;;;MAIR,OAAO,EAAP;;;IAGJ,SAASK,UAAT,GAAsB;MAClB,IAAIvsC,CAAJ;UACI67B,CADJ;UAEI7Y,GAFJ;UAGI2oB,IAAI,GAAG,KAAKxkB,UAAL,GAAkBwkB,IAAlB,EAHX;;MAIA,KAAK3rC,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;;QAErCgjB,GAAG,GAAG,KAAKmhB,KAAL,GAAa2D,OAAb,CAAqB,KAArB,EAA4B7nB,OAA5B,EAAN;;QAEA,IAAI0rB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAR,IAAiB7oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAA3C,EAAkD;UAC9C,OAAOH,IAAI,CAAC3rC,CAAD,CAAJ,CAAQk6B,IAAf;;;QAEJ,IAAIyR,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAR,IAAiB9oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAA3C,EAAkD;UAC9C,OAAOF,IAAI,CAAC3rC,CAAD,CAAJ,CAAQk6B,IAAf;;;;MAIR,OAAO,EAAP;;;IAGJ,SAASsS,UAAT,GAAsB;MAClB,IAAIxsC,CAAJ;UACI67B,CADJ;UAEIuQ,GAFJ;UAGIppB,GAHJ;UAII2oB,IAAI,GAAG,KAAKxkB,UAAL,GAAkBwkB,IAAlB,EAJX;;MAKA,KAAK3rC,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;QACrCosC,GAAG,GAAGT,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAR,IAAiBF,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAzB,GAAiC,CAAC,CAAlC,GAAsC,CAAC,CAA7C,CADqC;;QAIrC9oB,GAAG,GAAG,KAAKmhB,KAAL,GAAa2D,OAAb,CAAqB,KAArB,EAA4B7nB,OAA5B,EAAN;;QAEA,IACK0rB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAR,IAAiB7oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAxC,IACCH,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ8rC,KAAR,IAAiB9oB,GAAjB,IAAwBA,GAAG,IAAI2oB,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAF5C,EAGE;UACE,OACI,CAAC,KAAKxgB,IAAL,KAAchhB,KAAK,CAACshC,IAAI,CAAC3rC,CAAD,CAAJ,CAAQ6rC,KAAT,CAAL,CAAqBxgB,IAArB,EAAf,IAA8C+gB,GAA9C,GACAT,IAAI,CAAC3rC,CAAD,CAAJ,CAAQwjC,MAFZ;;;;MAOR,OAAO,KAAKnY,IAAL,EAAP;;;IAGJ,SAASohB,aAAT,CAAuB7e,QAAvB,EAAiC;MAC7B,IAAI,CAAC1O,UAAU,CAAC,IAAD,EAAO,gBAAP,CAAf,EAAyC;QACrCwtB,gBAAgB,CAAC/rC,IAAjB,CAAsB,IAAtB;;;MAEJ,OAAOitB,QAAQ,GAAG,KAAK+e,cAAR,GAAyB,KAAKC,UAA7C;;;IAGJ,SAASC,aAAT,CAAuBjf,QAAvB,EAAiC;MAC7B,IAAI,CAAC1O,UAAU,CAAC,IAAD,EAAO,gBAAP,CAAf,EAAyC;QACrCwtB,gBAAgB,CAAC/rC,IAAjB,CAAsB,IAAtB;;;MAEJ,OAAOitB,QAAQ,GAAG,KAAKkf,cAAR,GAAyB,KAAKF,UAA7C;;;IAGJ,SAASG,eAAT,CAAyBnf,QAAzB,EAAmC;MAC/B,IAAI,CAAC1O,UAAU,CAAC,IAAD,EAAO,kBAAP,CAAf,EAA2C;QACvCwtB,gBAAgB,CAAC/rC,IAAjB,CAAsB,IAAtB;;;MAEJ,OAAOitB,QAAQ,GAAG,KAAKof,gBAAR,GAA2B,KAAKJ,UAA/C;;;IAGJ,SAASzB,YAAT,CAAsBvd,QAAtB,EAAgCxN,MAAhC,EAAwC;MACpC,OAAOA,MAAM,CAACysB,aAAP,CAAqBjf,QAArB,CAAP;;;IAGJ,SAASwd,YAAT,CAAsBxd,QAAtB,EAAgCxN,MAAhC,EAAwC;MACpC,OAAOA,MAAM,CAACqsB,aAAP,CAAqB7e,QAArB,CAAP;;;IAGJ,SAASyd,cAAT,CAAwBzd,QAAxB,EAAkCxN,MAAlC,EAA0C;MACtC,OAAOA,MAAM,CAAC2sB,eAAP,CAAuBnf,QAAvB,CAAP;;;IAGJ,SAAS2d,mBAAT,CAA6B3d,QAA7B,EAAuCxN,MAAvC,EAA+C;MAC3C,OAAOA,MAAM,CAACorB,oBAAP,IAA+Bte,aAAtC;;;IAGJ,SAASwf,gBAAT,GAA4B;MACxB,IAAIO,UAAU,GAAG,EAAjB;UACIC,UAAU,GAAG,EADjB;UAEIC,YAAY,GAAG,EAFnB;UAGInb,WAAW,GAAG,EAHlB;UAIIhyB,CAJJ;UAKI67B,CALJ;UAMI8P,IAAI,GAAG,KAAKA,IAAL,EANX;;MAQA,KAAK3rC,CAAC,GAAG,CAAJ,EAAO67B,CAAC,GAAG8P,IAAI,CAACzrC,MAArB,EAA6BF,CAAC,GAAG67B,CAAjC,EAAoC,EAAE77B,CAAtC,EAAyC;QACrCktC,UAAU,CAAC7sC,IAAX,CAAgB0tB,WAAW,CAAC4d,IAAI,CAAC3rC,CAAD,CAAJ,CAAQkB,IAAT,CAA3B;QACA+rC,UAAU,CAAC5sC,IAAX,CAAgB0tB,WAAW,CAAC4d,IAAI,CAAC3rC,CAAD,CAAJ,CAAQk6B,IAAT,CAA3B;QACAiT,YAAY,CAAC9sC,IAAb,CAAkB0tB,WAAW,CAAC4d,IAAI,CAAC3rC,CAAD,CAAJ,CAAQksC,MAAT,CAA7B;QAEAla,WAAW,CAAC3xB,IAAZ,CAAiB0tB,WAAW,CAAC4d,IAAI,CAAC3rC,CAAD,CAAJ,CAAQkB,IAAT,CAA5B;QACA8wB,WAAW,CAAC3xB,IAAZ,CAAiB0tB,WAAW,CAAC4d,IAAI,CAAC3rC,CAAD,CAAJ,CAAQk6B,IAAT,CAA5B;QACAlI,WAAW,CAAC3xB,IAAZ,CAAiB0tB,WAAW,CAAC4d,IAAI,CAAC3rC,CAAD,CAAJ,CAAQksC,MAAT,CAA5B;;;MAGJ,KAAKU,UAAL,GAAkB,IAAI/nB,MAAJ,CAAW,OAAOmN,WAAW,CAACpxB,IAAZ,CAAiB,GAAjB,CAAP,GAA+B,GAA1C,EAA+C,GAA/C,CAAlB;MACA,KAAK+rC,cAAL,GAAsB,IAAI9nB,MAAJ,CAAW,OAAOqoB,UAAU,CAACtsC,IAAX,CAAgB,GAAhB,CAAP,GAA8B,GAAzC,EAA8C,GAA9C,CAAtB;MACA,KAAKksC,cAAL,GAAsB,IAAIjoB,MAAJ,CAAW,OAAOooB,UAAU,CAACrsC,IAAX,CAAgB,GAAhB,CAAP,GAA8B,GAAzC,EAA8C,GAA9C,CAAtB;MACA,KAAKosC,gBAAL,GAAwB,IAAInoB,MAAJ,CACpB,OAAOsoB,YAAY,CAACvsC,IAAb,CAAkB,GAAlB,CAAP,GAAgC,GADZ,EAEpB,GAFoB,CAAxB;KAz8Ia;;;IAi9IjBmmB,cAAc,CAAC,CAAD,EAAI,CAAC,IAAD,EAAO,CAAP,CAAJ,EAAe,CAAf,EAAkB,YAAY;MACxC,OAAO,KAAKgY,QAAL,KAAkB,GAAzB;KADU,CAAd;IAIAhY,cAAc,CAAC,CAAD,EAAI,CAAC,IAAD,EAAO,CAAP,CAAJ,EAAe,CAAf,EAAkB,YAAY;MACxC,OAAO,KAAKqmB,WAAL,KAAqB,GAA5B;KADU,CAAd;;IAIA,SAASC,sBAAT,CAAgCrmB,KAAhC,EAAuCsmB,MAAvC,EAA+C;MAC3CvmB,cAAc,CAAC,CAAD,EAAI,CAACC,KAAD,EAAQA,KAAK,CAAC9mB,MAAd,CAAJ,EAA2B,CAA3B,EAA8BotC,MAA9B,CAAd;;;IAGJD,sBAAsB,CAAC,MAAD,EAAS,UAAT,CAAtB;IACAA,sBAAsB,CAAC,OAAD,EAAU,UAAV,CAAtB;IACAA,sBAAsB,CAAC,MAAD,EAAS,aAAT,CAAtB;IACAA,sBAAsB,CAAC,OAAD,EAAU,aAAV,CAAtB,CAh+IiB;;IAo+IjBljB,YAAY,CAAC,UAAD,EAAa,IAAb,CAAZ;IACAA,YAAY,CAAC,aAAD,EAAgB,IAAhB,CAAZ,CAr+IiB;;IAy+IjBW,eAAe,CAAC,UAAD,EAAa,CAAb,CAAf;IACAA,eAAe,CAAC,aAAD,EAAgB,CAAhB,CAAf,CA1+IiB;;IA8+IjB2C,aAAa,CAAC,GAAD,EAAMN,WAAN,CAAb;IACAM,aAAa,CAAC,GAAD,EAAMN,WAAN,CAAb;IACAM,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,MAAD,EAAST,SAAT,EAAoBN,MAApB,CAAb;IACAe,aAAa,CAAC,MAAD,EAAST,SAAT,EAAoBN,MAApB,CAAb;IACAe,aAAa,CAAC,OAAD,EAAUR,SAAV,EAAqBN,MAArB,CAAb;IACAc,aAAa,CAAC,OAAD,EAAUR,SAAV,EAAqBN,MAArB,CAAb;IAEA6B,iBAAiB,CACb,CAAC,MAAD,EAAS,OAAT,EAAkB,MAAlB,EAA0B,OAA1B,CADa,EAEb,UAAUzY,KAAV,EAAiBsd,IAAjB,EAAuB1P,MAAvB,EAA+BqD,KAA/B,EAAsC;MAClCqM,IAAI,CAACrM,KAAK,CAACN,MAAN,CAAa,CAAb,EAAgB,CAAhB,CAAD,CAAJ,GAA2B+E,KAAK,CAAC1V,KAAD,CAAhC;KAHS,CAAjB;IAOAyY,iBAAiB,CAAC,CAAC,IAAD,EAAO,IAAP,CAAD,EAAe,UAAUzY,KAAV,EAAiBsd,IAAjB,EAAuB1P,MAAvB,EAA+BqD,KAA/B,EAAsC;MAClEqM,IAAI,CAACrM,KAAD,CAAJ,GAAc3c,KAAK,CAAC4nB,iBAAN,CAAwBlc,KAAxB,CAAd;KADa,CAAjB,CA9/IiB;;IAogJjB,SAASw3B,cAAT,CAAwBx3B,KAAxB,EAA+B;MAC3B,OAAOy3B,oBAAoB,CAAC7sC,IAArB,CACH,IADG,EAEHoV,KAFG,EAGH,KAAKsd,IAAL,EAHG,EAIH,KAAKC,OAAL,EAJG,EAKH,KAAKnM,UAAL,GAAkB8M,KAAlB,CAAwBlB,GALrB,EAMH,KAAK5L,UAAL,GAAkB8M,KAAlB,CAAwBjB,GANrB,CAAP;;;IAUJ,SAASya,iBAAT,CAA2B13B,KAA3B,EAAkC;MAC9B,OAAOy3B,oBAAoB,CAAC7sC,IAArB,CACH,IADG,EAEHoV,KAFG,EAGH,KAAKysB,OAAL,EAHG,EAIH,KAAKmI,UAAL,EAJG,EAKH,CALG,EAMH,CANG,CAAP;;;IAUJ,SAAS+C,iBAAT,GAA6B;MACzB,OAAO5Z,WAAW,CAAC,KAAKzI,IAAL,EAAD,EAAc,CAAd,EAAiB,CAAjB,CAAlB;;;IAGJ,SAASsiB,wBAAT,GAAoC;MAChC,OAAO7Z,WAAW,CAAC,KAAKsZ,WAAL,EAAD,EAAqB,CAArB,EAAwB,CAAxB,CAAlB;;;IAGJ,SAASQ,cAAT,GAA0B;MACtB,IAAIC,QAAQ,GAAG,KAAK1mB,UAAL,GAAkB8M,KAAjC;;MACA,OAAOH,WAAW,CAAC,KAAKzI,IAAL,EAAD,EAAcwiB,QAAQ,CAAC9a,GAAvB,EAA4B8a,QAAQ,CAAC7a,GAArC,CAAlB;;;IAGJ,SAAS8a,kBAAT,GAA8B;MAC1B,IAAID,QAAQ,GAAG,KAAK1mB,UAAL,GAAkB8M,KAAjC;;MACA,OAAOH,WAAW,CAAC,KAAKiL,QAAL,EAAD,EAAkB8O,QAAQ,CAAC9a,GAA3B,EAAgC8a,QAAQ,CAAC7a,GAAzC,CAAlB;;;IAGJ,SAASwa,oBAAT,CAA8Bz3B,KAA9B,EAAqCsd,IAArC,EAA2CC,OAA3C,EAAoDP,GAApD,EAAyDC,GAAzD,EAA8D;MAC1D,IAAI+a,WAAJ;;MACA,IAAIh4B,KAAK,IAAI,IAAb,EAAmB;QACf,OAAO6d,UAAU,CAAC,IAAD,EAAOb,GAAP,EAAYC,GAAZ,CAAV,CAA2B3H,IAAlC;OADJ,MAEO;QACH0iB,WAAW,GAAGja,WAAW,CAAC/d,KAAD,EAAQgd,GAAR,EAAaC,GAAb,CAAzB;;QACA,IAAIK,IAAI,GAAG0a,WAAX,EAAwB;UACpB1a,IAAI,GAAG0a,WAAP;;;QAEJ,OAAOC,UAAU,CAACrtC,IAAX,CAAgB,IAAhB,EAAsBoV,KAAtB,EAA6Bsd,IAA7B,EAAmCC,OAAnC,EAA4CP,GAA5C,EAAiDC,GAAjD,CAAP;;;;IAIR,SAASgb,UAAT,CAAoBjP,QAApB,EAA8B1L,IAA9B,EAAoCC,OAApC,EAA6CP,GAA7C,EAAkDC,GAAlD,EAAuD;MACnD,IAAIib,aAAa,GAAG7a,kBAAkB,CAAC2L,QAAD,EAAW1L,IAAX,EAAiBC,OAAjB,EAA0BP,GAA1B,EAA+BC,GAA/B,CAAtC;UACI/G,IAAI,GAAGyG,aAAa,CAACub,aAAa,CAAC5iB,IAAf,EAAqB,CAArB,EAAwB4iB,aAAa,CAACxa,SAAtC,CADxB;MAGA,KAAKpI,IAAL,CAAUY,IAAI,CAAC2G,cAAL,EAAV;MACA,KAAK5G,KAAL,CAAWC,IAAI,CAACmS,WAAL,EAAX;MACA,KAAKnS,IAAL,CAAUA,IAAI,CAACoS,UAAL,EAAV;MACA,OAAO,IAAP;KAhkJa;;;IAqkJjBtX,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,IAAT,EAAe,SAAf,CAAd,CArkJiB;;IAykJjBoD,YAAY,CAAC,SAAD,EAAY,GAAZ,CAAZ,CAzkJiB;;IA6kJjBW,eAAe,CAAC,SAAD,EAAY,CAAZ,CAAf,CA7kJiB;;IAilJjB2C,aAAa,CAAC,GAAD,EAAMlB,MAAN,CAAb;IACA+B,aAAa,CAAC,GAAD,EAAM,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwB;MACvCA,KAAK,CAAC0qB,KAAD,CAAL,GAAe,CAACpD,KAAK,CAAC1V,KAAD,CAAL,GAAe,CAAhB,IAAqB,CAApC;KADS,CAAb,CAllJiB;;IAwlJjB,SAASm4B,aAAT,CAAuBn4B,KAAvB,EAA8B;MAC1B,OAAOA,KAAK,IAAI,IAAT,GACD/Q,IAAI,CAACumB,IAAL,CAAU,CAAC,KAAKS,KAAL,KAAe,CAAhB,IAAqB,CAA/B,CADC,GAED,KAAKA,KAAL,CAAW,CAACjW,KAAK,GAAG,CAAT,IAAc,CAAd,GAAmB,KAAKiW,KAAL,KAAe,CAA7C,CAFN;KAzlJa;;;IAgmJjBjF,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,IAAjB,EAAuB,MAAvB,CAAd,CAhmJiB;;IAomJjBoD,YAAY,CAAC,MAAD,EAAS,GAAT,CAAZ,CApmJiB;;IAumJjBW,eAAe,CAAC,MAAD,EAAS,CAAT,CAAf,CAvmJiB;;IA2mJjB2C,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACAiB,aAAa,CAAC,IAAD,EAAO,UAAUG,QAAV,EAAoBxN,MAApB,EAA4B;;MAE5C,OAAOwN,QAAQ,GACTxN,MAAM,CAAC0E,uBAAP,IAAkC1E,MAAM,CAAC4E,aADhC,GAET5E,MAAM,CAACwE,8BAFb;KAFS,CAAb;IAOA0J,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAcQ,IAAd,CAAb;IACAR,aAAa,CAAC,IAAD,EAAO,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwB;MACxCA,KAAK,CAAC2qB,IAAD,CAAL,GAAcrD,KAAK,CAAC1V,KAAK,CAACsR,KAAN,CAAYuF,SAAZ,EAAuB,CAAvB,CAAD,CAAnB;KADS,CAAb,CArnJiB;;IA2nJjB,IAAIuhB,gBAAgB,GAAGtiB,UAAU,CAAC,MAAD,EAAS,IAAT,CAAjC,CA3nJiB;;IA+nJjB9E,cAAc,CAAC,KAAD,EAAQ,CAAC,MAAD,EAAS,CAAT,CAAR,EAAqB,MAArB,EAA6B,WAA7B,CAAd,CA/nJiB;;IAmoJjBoD,YAAY,CAAC,WAAD,EAAc,KAAd,CAAZ,CAnoJiB;;IAsoJjBW,eAAe,CAAC,WAAD,EAAc,CAAd,CAAf,CAtoJiB;;IA0oJjB2C,aAAa,CAAC,KAAD,EAAQV,SAAR,CAAb;IACAU,aAAa,CAAC,MAAD,EAAShB,MAAT,CAAb;IACA6B,aAAa,CAAC,CAAC,KAAD,EAAQ,MAAR,CAAD,EAAkB,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MAC3DA,MAAM,CAACkb,UAAP,GAAoBpT,KAAK,CAAC1V,KAAD,CAAzB;KADS,CAAb,CA5oJiB;;;IAopJjB,SAASq4B,eAAT,CAAyBr4B,KAAzB,EAAgC;MAC5B,IAAI0d,SAAS,GACTzuB,IAAI,CAACi+B,KAAL,CACI,CAAC,KAAKkB,KAAL,GAAa2D,OAAb,CAAqB,KAArB,IAA8B,KAAK3D,KAAL,GAAa2D,OAAb,CAAqB,MAArB,CAA/B,IAA+D,KADnE,IAEI,CAHR;MAIA,OAAO/xB,KAAK,IAAI,IAAT,GAAgB0d,SAAhB,GAA4B,KAAKa,GAAL,CAASve,KAAK,GAAG0d,SAAjB,EAA4B,GAA5B,CAAnC;KAzpJa;;;IA8pJjB1M,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,CAAjB,EAAoB,QAApB,CAAd,CA9pJiB;;IAkqJjBoD,YAAY,CAAC,QAAD,EAAW,GAAX,CAAZ,CAlqJiB;;IAsqJjBW,eAAe,CAAC,QAAD,EAAW,EAAX,CAAf,CAtqJiB;;IA0qJjB2C,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACA8B,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAcU,MAAd,CAAb,CA5qJiB;;IAgrJjB,IAAIqf,YAAY,GAAGxiB,UAAU,CAAC,SAAD,EAAY,KAAZ,CAA7B,CAhrJiB;;IAorJjB9E,cAAc,CAAC,GAAD,EAAM,CAAC,IAAD,EAAO,CAAP,CAAN,EAAiB,CAAjB,EAAoB,QAApB,CAAd,CAprJiB;;IAwrJjBoD,YAAY,CAAC,QAAD,EAAW,GAAX,CAAZ,CAxrJiB;;IA4rJjBW,eAAe,CAAC,QAAD,EAAW,EAAX,CAAf,CA5rJiB;;IAgsJjB2C,aAAa,CAAC,GAAD,EAAMb,SAAN,CAAb;IACAa,aAAa,CAAC,IAAD,EAAOb,SAAP,EAAkBJ,MAAlB,CAAb;IACA8B,aAAa,CAAC,CAAC,GAAD,EAAM,IAAN,CAAD,EAAcW,MAAd,CAAb,CAlsJiB;;IAssJjB,IAAIqf,YAAY,GAAGziB,UAAU,CAAC,SAAD,EAAY,KAAZ,CAA7B,CAtsJiB;;IA0sJjB9E,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,YAAY;MAClC,OAAO,CAAC,EAAE,KAAKga,WAAL,KAAqB,GAAvB,CAAR;KADU,CAAd;IAIAha,cAAc,CAAC,CAAD,EAAI,CAAC,IAAD,EAAO,CAAP,CAAJ,EAAe,CAAf,EAAkB,YAAY;MACxC,OAAO,CAAC,EAAE,KAAKga,WAAL,KAAqB,EAAvB,CAAR;KADU,CAAd;IAIAha,cAAc,CAAC,CAAD,EAAI,CAAC,KAAD,EAAQ,CAAR,CAAJ,EAAgB,CAAhB,EAAmB,aAAnB,CAAd;IACAA,cAAc,CAAC,CAAD,EAAI,CAAC,MAAD,EAAS,CAAT,CAAJ,EAAiB,CAAjB,EAAoB,YAAY;MAC1C,OAAO,KAAKga,WAAL,KAAqB,EAA5B;KADU,CAAd;IAGAha,cAAc,CAAC,CAAD,EAAI,CAAC,OAAD,EAAU,CAAV,CAAJ,EAAkB,CAAlB,EAAqB,YAAY;MAC3C,OAAO,KAAKga,WAAL,KAAqB,GAA5B;KADU,CAAd;IAGAha,cAAc,CAAC,CAAD,EAAI,CAAC,QAAD,EAAW,CAAX,CAAJ,EAAmB,CAAnB,EAAsB,YAAY;MAC5C,OAAO,KAAKga,WAAL,KAAqB,IAA5B;KADU,CAAd;IAGAha,cAAc,CAAC,CAAD,EAAI,CAAC,SAAD,EAAY,CAAZ,CAAJ,EAAoB,CAApB,EAAuB,YAAY;MAC7C,OAAO,KAAKga,WAAL,KAAqB,KAA5B;KADU,CAAd;IAGAha,cAAc,CAAC,CAAD,EAAI,CAAC,UAAD,EAAa,CAAb,CAAJ,EAAqB,CAArB,EAAwB,YAAY;MAC9C,OAAO,KAAKga,WAAL,KAAqB,MAA5B;KADU,CAAd;IAGAha,cAAc,CAAC,CAAD,EAAI,CAAC,WAAD,EAAc,CAAd,CAAJ,EAAsB,CAAtB,EAAyB,YAAY;MAC/C,OAAO,KAAKga,WAAL,KAAqB,OAA5B;KADU,CAAd,CAluJiB;;IAwuJjB5W,YAAY,CAAC,aAAD,EAAgB,IAAhB,CAAZ,CAxuJiB;;IA4uJjBW,eAAe,CAAC,aAAD,EAAgB,EAAhB,CAAf,CA5uJiB;;IAgvJjB2C,aAAa,CAAC,GAAD,EAAMV,SAAN,EAAiBR,MAAjB,CAAb;IACAkB,aAAa,CAAC,IAAD,EAAOV,SAAP,EAAkBP,MAAlB,CAAb;IACAiB,aAAa,CAAC,KAAD,EAAQV,SAAR,EAAmBN,MAAnB,CAAb;IAEA,IAAIzF,KAAJ,EAAWunB,iBAAX;;IACA,KAAKvnB,KAAK,GAAG,MAAb,EAAqBA,KAAK,CAAC9mB,MAAN,IAAgB,CAArC,EAAwC8mB,KAAK,IAAI,GAAjD,EAAsD;MAClDyG,aAAa,CAACzG,KAAD,EAAQkG,aAAR,CAAb;;;IAGJ,SAASshB,OAAT,CAAiBz4B,KAAjB,EAAwB5R,KAAxB,EAA+B;MAC3BA,KAAK,CAAC+qB,WAAD,CAAL,GAAqBzD,KAAK,CAAC,CAAC,OAAO1V,KAAR,IAAiB,IAAlB,CAA1B;;;IAGJ,KAAKiR,KAAK,GAAG,GAAb,EAAkBA,KAAK,CAAC9mB,MAAN,IAAgB,CAAlC,EAAqC8mB,KAAK,IAAI,GAA9C,EAAmD;MAC/CsH,aAAa,CAACtH,KAAD,EAAQwnB,OAAR,CAAb;;;IAGJD,iBAAiB,GAAG1iB,UAAU,CAAC,cAAD,EAAiB,KAAjB,CAA9B,CAjwJiB;;IAqwJjB9E,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,UAAZ,CAAd;IACAA,cAAc,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV,EAAa,UAAb,CAAd,CAtwJiB;;IA0wJjB,SAAS0nB,WAAT,GAAuB;MACnB,OAAO,KAAKlrB,MAAL,GAAc,KAAd,GAAsB,EAA7B;;;IAGJ,SAASmrB,WAAT,GAAuB;MACnB,OAAO,KAAKnrB,MAAL,GAAc,4BAAd,GAA6C,EAApD;;;IAGJ,IAAIorB,KAAK,GAAGjrB,MAAM,CAAClV,SAAnB;IAEAmgC,KAAK,CAACra,GAAN,GAAYA,GAAZ;IACAqa,KAAK,CAAC/oB,QAAN,GAAiB+hB,UAAjB;IACAgH,KAAK,CAACxK,KAAN,GAAcA,KAAd;IACAwK,KAAK,CAAC1kB,IAAN,GAAaA,IAAb;IACA0kB,KAAK,CAAC1G,KAAN,GAAcA,KAAd;IACA0G,KAAK,CAACxuB,MAAN,GAAeA,MAAf;IACAwuB,KAAK,CAAC/sC,IAAN,GAAaA,IAAb;IACA+sC,KAAK,CAAC9E,OAAN,GAAgBA,OAAhB;IACA8E,KAAK,CAACpqC,EAAN,GAAWA,EAAX;IACAoqC,KAAK,CAAC7E,KAAN,GAAcA,KAAd;IACA6E,KAAK,CAAC/+B,GAAN,GAAYuc,SAAZ;IACAwiB,KAAK,CAAC1D,SAAN,GAAkBA,SAAlB;IACA0D,KAAK,CAACrI,OAAN,GAAgBA,OAAhB;IACAqI,KAAK,CAACpI,QAAN,GAAiBA,QAAjB;IACAoI,KAAK,CAACzG,SAAN,GAAkBA,SAAlB;IACAyG,KAAK,CAACrG,MAAN,GAAeA,MAAf;IACAqG,KAAK,CAACnG,aAAN,GAAsBA,aAAtB;IACAmG,KAAK,CAAClG,cAAN,GAAuBA,cAAvB;IACAkG,KAAK,CAAC14B,OAAN,GAAgB80B,SAAhB;IACA4D,KAAK,CAAC3E,IAAN,GAAaA,IAAb;IACA2E,KAAK,CAACvuB,MAAN,GAAeA,MAAf;IACAuuB,KAAK,CAACxnB,UAAN,GAAmBA,UAAnB;IACAwnB,KAAK,CAAC1pC,GAAN,GAAYs8B,YAAZ;IACAoN,KAAK,CAACxpC,GAAN,GAAYk8B,YAAZ;IACAsN,KAAK,CAAC3D,YAAN,GAAqBA,YAArB;IACA2D,KAAK,CAACt/B,GAAN,GAAY+c,SAAZ;IACAuiB,KAAK,CAAC7G,OAAN,GAAgBA,OAAhB;IACA6G,KAAK,CAAC1J,QAAN,GAAiBA,QAAjB;IACA0J,KAAK,CAACnJ,OAAN,GAAgBA,OAAhB;IACAmJ,KAAK,CAAC9D,QAAN,GAAiBA,QAAjB;IACA8D,KAAK,CAACrF,MAAN,GAAeA,MAAf;IACAqF,KAAK,CAACvF,WAAN,GAAoBA,WAApB;IACAuF,KAAK,CAACpF,OAAN,GAAgBA,OAAhB;;IACA,IAAI,OAAOqF,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,OAAN,IAAc,IAAnD,EAAyD;MACrDD,KAAK,CAACC,MAAM,OAAN,CAAW,4BAAX,CAAD,CAAL,GAAkD,YAAY;QAC1D,OAAO,YAAY,KAAKzuB,MAAL,EAAZ,GAA4B,GAAnC;OADJ;;;IAIJwuB,KAAK,CAAC7D,MAAN,GAAeA,MAAf;IACA6D,KAAK,CAAC3vB,QAAN,GAAiBA,QAAjB;IACA2vB,KAAK,CAAC/D,IAAN,GAAaA,IAAb;IACA+D,KAAK,CAAC1uB,OAAN,GAAgBA,OAAhB;IACA0uB,KAAK,CAACzD,YAAN,GAAqBA,YAArB;IACAyD,KAAK,CAAC1C,OAAN,GAAgBI,UAAhB;IACAsC,KAAK,CAACE,SAAN,GAAkBvC,YAAlB;IACAqC,KAAK,CAACG,OAAN,GAAgBvC,UAAhB;IACAoC,KAAK,CAACI,OAAN,GAAgBvC,UAAhB;IACAmC,KAAK,CAACtjB,IAAN,GAAa+G,UAAb;IACAuc,KAAK,CAACvjB,UAAN,GAAmBiH,aAAnB;IACAsc,KAAK,CAAC5P,QAAN,GAAiBwO,cAAjB;IACAoB,KAAK,CAACvB,WAAN,GAAoBK,iBAApB;IACAkB,KAAK,CAACrM,OAAN,GAAgBqM,KAAK,CAACtM,QAAN,GAAiB6L,aAAjC;IACAS,KAAK,CAAC3iB,KAAN,GAAcsF,WAAd;IACAqd,KAAK,CAACziB,WAAN,GAAoBqF,cAApB;IACAod,KAAK,CAACtb,IAAN,GAAasb,KAAK,CAACpM,KAAN,GAAclO,UAA3B;IACAsa,KAAK,CAACnM,OAAN,GAAgBmM,KAAK,CAACK,QAAN,GAAiBza,aAAjC;IACAoa,KAAK,CAAC7a,WAAN,GAAoB8Z,cAApB;IACAe,KAAK,CAACM,eAAN,GAAwBnB,kBAAxB;IACAa,KAAK,CAACO,cAAN,GAAuBxB,iBAAvB;IACAiB,KAAK,CAACQ,qBAAN,GAA8BxB,wBAA9B;IACAgB,KAAK,CAAC1iB,IAAN,GAAakiB,gBAAb;IACAQ,KAAK,CAAChZ,GAAN,GAAYgZ,KAAK,CAAClM,IAAN,GAAajM,eAAzB;IACAmY,KAAK,CAACrb,OAAN,GAAgBoD,qBAAhB;IACAiY,KAAK,CAAChE,UAAN,GAAmBhU,kBAAnB;IACAgY,KAAK,CAAClb,SAAN,GAAkB2a,eAAlB;IACAO,KAAK,CAAC5O,IAAN,GAAa4O,KAAK,CAACnX,KAAN,GAAcgB,UAA3B;IACAmW,KAAK,CAAC9N,MAAN,GAAe8N,KAAK,CAACjX,OAAN,GAAgB2W,YAA/B;IACAM,KAAK,CAAC7N,MAAN,GAAe6N,KAAK,CAAChX,OAAN,GAAgB2W,YAA/B;IACAK,KAAK,CAAC5N,WAAN,GAAoB4N,KAAK,CAACjM,YAAN,GAAqB6L,iBAAzC;IACAI,KAAK,CAACjL,SAAN,GAAkBc,YAAlB;IACAmK,KAAK,CAACpuB,GAAN,GAAYwkB,cAAZ;IACA4J,KAAK,CAACtK,KAAN,GAAcW,gBAAd;IACA2J,KAAK,CAACS,SAAN,GAAkBlK,uBAAlB;IACAyJ,KAAK,CAACvJ,oBAAN,GAA6BA,oBAA7B;IACAuJ,KAAK,CAACU,KAAN,GAAchK,oBAAd;IACAsJ,KAAK,CAAClJ,OAAN,GAAgBA,OAAhB;IACAkJ,KAAK,CAACjJ,WAAN,GAAoBA,WAApB;IACAiJ,KAAK,CAAChJ,KAAN,GAAcA,KAAd;IACAgJ,KAAK,CAACvN,KAAN,GAAcuE,KAAd;IACAgJ,KAAK,CAACW,QAAN,GAAiBb,WAAjB;IACAE,KAAK,CAACY,QAAN,GAAiBb,WAAjB;IACAC,KAAK,CAACa,KAAN,GAAcvrB,SAAS,CACnB,iDADmB,EAEnBkqB,gBAFmB,CAAvB;IAIAQ,KAAK,CAAChf,MAAN,GAAe1L,SAAS,CACpB,kDADoB,EAEpBqN,WAFoB,CAAxB;IAIAqd,KAAK,CAACvM,KAAN,GAAcne,SAAS,CACnB,gDADmB,EAEnBmO,UAFmB,CAAvB;IAIAuc,KAAK,CAACnF,IAAN,GAAavlB,SAAS,CAClB,0GADkB,EAElB6gB,UAFkB,CAAtB;IAIA6J,KAAK,CAACc,YAAN,GAAqBxrB,SAAS,CAC1B,yGAD0B,EAE1BqhB,2BAF0B,CAA9B;;IAKA,SAASoK,UAAT,CAAoB35B,KAApB,EAA2B;MACvB,OAAOupB,WAAW,CAACvpB,KAAK,GAAG,IAAT,CAAlB;;;IAGJ,SAAS45B,YAAT,GAAwB;MACpB,OAAOrQ,WAAW,CAAC7+B,KAAZ,CAAkB,IAAlB,EAAwBR,SAAxB,EAAmCmvC,SAAnC,EAAP;;;IAGJ,SAASQ,kBAAT,CAA4B/sC,MAA5B,EAAoC;MAChC,OAAOA,MAAP;;;IAGJ,IAAIgtC,OAAO,GAAGzqB,MAAM,CAAC5W,SAArB;IAEAqhC,OAAO,CAACjqB,QAAR,GAAmBA,QAAnB;IACAiqB,OAAO,CAACjoB,cAAR,GAAyBA,cAAzB;IACAioB,OAAO,CAACpoB,WAAR,GAAsBA,WAAtB;IACAooB,OAAO,CAAC3oB,OAAR,GAAkBA,OAAlB;IACA2oB,OAAO,CAAC3O,QAAR,GAAmB0O,kBAAnB;IACAC,OAAO,CAAClG,UAAR,GAAqBiG,kBAArB;IACAC,OAAO,CAACjmB,YAAR,GAAuBA,YAAvB;IACAimB,OAAO,CAAC7lB,UAAR,GAAqBA,UAArB;IACA6lB,OAAO,CAACxgC,GAAR,GAAcA,GAAd;IACAwgC,OAAO,CAAClE,IAAR,GAAeD,UAAf;IACAmE,OAAO,CAACvE,SAAR,GAAoBU,eAApB;IACA6D,OAAO,CAAC/P,eAAR,GAA0BqM,qBAA1B;IACA0D,OAAO,CAAChD,aAAR,GAAwBA,aAAxB;IACAgD,OAAO,CAACpD,aAAR,GAAwBA,aAAxB;IACAoD,OAAO,CAAC9C,eAAR,GAA0BA,eAA1B;IAEA8C,OAAO,CAAClgB,MAAR,GAAiBU,YAAjB;IACAwf,OAAO,CAACngB,WAAR,GAAsBc,iBAAtB;IACAqf,OAAO,CAAC/f,WAAR,GAAsBoB,iBAAtB;IACA2e,OAAO,CAAChgB,WAAR,GAAsBA,WAAtB;IACAggB,OAAO,CAACjgB,gBAAR,GAA2BA,gBAA3B;IACAigB,OAAO,CAACxc,IAAR,GAAeW,UAAf;IACA6b,OAAO,CAACC,cAAR,GAAyB1b,oBAAzB;IACAyb,OAAO,CAACE,cAAR,GAAyB5b,oBAAzB;IAEA0b,OAAO,CAACnb,QAAR,GAAmBe,cAAnB;IACAoa,OAAO,CAACrb,WAAR,GAAsBsB,iBAAtB;IACA+Z,OAAO,CAACpb,aAAR,GAAwBmB,mBAAxB;IACAia,OAAO,CAAC/a,aAAR,GAAwBuB,mBAAxB;IAEAwZ,OAAO,CAAChb,aAAR,GAAwBA,aAAxB;IACAgb,OAAO,CAACjb,kBAAR,GAA6BA,kBAA7B;IACAib,OAAO,CAAClb,gBAAR,GAA2BA,gBAA3B;IAEAkb,OAAO,CAAC5X,IAAR,GAAeK,UAAf;IACAuX,OAAO,CAACvuB,QAAR,GAAmBmX,cAAnB;;IAEA,SAASuX,KAAT,CAAe7vB,MAAf,EAAuBxR,KAAvB,EAA8BshC,KAA9B,EAAqCC,MAArC,EAA6C;MACzC,IAAI9vB,MAAM,GAAG4Z,SAAS,EAAtB;UACIzZ,GAAG,GAAGL,SAAS,GAAG7Q,GAAZ,CAAgB6gC,MAAhB,EAAwBvhC,KAAxB,CADV;MAEA,OAAOyR,MAAM,CAAC6vB,KAAD,CAAN,CAAc1vB,GAAd,EAAmBJ,MAAnB,CAAP;;;IAGJ,SAASgwB,cAAT,CAAwBhwB,MAAxB,EAAgCxR,KAAhC,EAAuCshC,KAAvC,EAA8C;MAC1C,IAAIvwB,QAAQ,CAACS,MAAD,CAAZ,EAAsB;QAClBxR,KAAK,GAAGwR,MAAR;QACAA,MAAM,GAAG7Y,SAAT;;;MAGJ6Y,MAAM,GAAGA,MAAM,IAAI,EAAnB;;MAEA,IAAIxR,KAAK,IAAI,IAAb,EAAmB;QACf,OAAOqhC,KAAK,CAAC7vB,MAAD,EAASxR,KAAT,EAAgBshC,KAAhB,EAAuB,OAAvB,CAAZ;;;MAGJ,IAAIjwC,CAAJ;UACIowC,GAAG,GAAG,EADV;;MAEA,KAAKpwC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,EAAhB,EAAoBA,CAAC,EAArB,EAAyB;QACrBowC,GAAG,CAACpwC,CAAD,CAAH,GAASgwC,KAAK,CAAC7vB,MAAD,EAASngB,CAAT,EAAYiwC,KAAZ,EAAmB,OAAnB,CAAd;;;MAEJ,OAAOG,GAAP;KAp8Ja;;;;;;;;;;IA+8JjB,SAASC,gBAAT,CAA0BC,YAA1B,EAAwCnwB,MAAxC,EAAgDxR,KAAhD,EAAuDshC,KAAvD,EAA8D;MAC1D,IAAI,OAAOK,YAAP,KAAwB,SAA5B,EAAuC;QACnC,IAAI5wB,QAAQ,CAACS,MAAD,CAAZ,EAAsB;UAClBxR,KAAK,GAAGwR,MAAR;UACAA,MAAM,GAAG7Y,SAAT;;;QAGJ6Y,MAAM,GAAGA,MAAM,IAAI,EAAnB;OANJ,MAOO;QACHA,MAAM,GAAGmwB,YAAT;QACA3hC,KAAK,GAAGwR,MAAR;QACAmwB,YAAY,GAAG,KAAf;;QAEA,IAAI5wB,QAAQ,CAACS,MAAD,CAAZ,EAAsB;UAClBxR,KAAK,GAAGwR,MAAR;UACAA,MAAM,GAAG7Y,SAAT;;;QAGJ6Y,MAAM,GAAGA,MAAM,IAAI,EAAnB;;;MAGJ,IAAIC,MAAM,GAAG4Z,SAAS,EAAtB;UACIuW,KAAK,GAAGD,YAAY,GAAGlwB,MAAM,CAAC6T,KAAP,CAAalB,GAAhB,GAAsB,CAD9C;UAEI/yB,CAFJ;UAGIowC,GAAG,GAAG,EAHV;;MAKA,IAAIzhC,KAAK,IAAI,IAAb,EAAmB;QACf,OAAOqhC,KAAK,CAAC7vB,MAAD,EAAS,CAACxR,KAAK,GAAG4hC,KAAT,IAAkB,CAA3B,EAA8BN,KAA9B,EAAqC,KAArC,CAAZ;;;MAGJ,KAAKjwC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,CAAhB,EAAmBA,CAAC,EAApB,EAAwB;QACpBowC,GAAG,CAACpwC,CAAD,CAAH,GAASgwC,KAAK,CAAC7vB,MAAD,EAAS,CAACngB,CAAC,GAAGuwC,KAAL,IAAc,CAAvB,EAA0BN,KAA1B,EAAiC,KAAjC,CAAd;;;MAEJ,OAAOG,GAAP;;;IAGJ,SAASI,UAAT,CAAoBrwB,MAApB,EAA4BxR,KAA5B,EAAmC;MAC/B,OAAOwhC,cAAc,CAAChwB,MAAD,EAASxR,KAAT,EAAgB,QAAhB,CAArB;;;IAGJ,SAAS8hC,eAAT,CAAyBtwB,MAAzB,EAAiCxR,KAAjC,EAAwC;MACpC,OAAOwhC,cAAc,CAAChwB,MAAD,EAASxR,KAAT,EAAgB,aAAhB,CAArB;;;IAGJ,SAAS+hC,YAAT,CAAsBJ,YAAtB,EAAoCnwB,MAApC,EAA4CxR,KAA5C,EAAmD;MAC/C,OAAO0hC,gBAAgB,CAACC,YAAD,EAAenwB,MAAf,EAAuBxR,KAAvB,EAA8B,UAA9B,CAAvB;;;IAGJ,SAASgiC,iBAAT,CAA2BL,YAA3B,EAAyCnwB,MAAzC,EAAiDxR,KAAjD,EAAwD;MACpD,OAAO0hC,gBAAgB,CAACC,YAAD,EAAenwB,MAAf,EAAuBxR,KAAvB,EAA8B,eAA9B,CAAvB;;;IAGJ,SAASiiC,eAAT,CAAyBN,YAAzB,EAAuCnwB,MAAvC,EAA+CxR,KAA/C,EAAsD;MAClD,OAAO0hC,gBAAgB,CAACC,YAAD,EAAenwB,MAAf,EAAuBxR,KAAvB,EAA8B,aAA9B,CAAvB;;;IAGJorB,kBAAkB,CAAC,IAAD,EAAO;MACrB4R,IAAI,EAAE,CACF;QACIE,KAAK,EAAE,YADX;QAEIC,KAAK,EAAE,CAACC,QAFZ;QAGIvI,MAAM,EAAE,CAHZ;QAIItiC,IAAI,EAAE,aAJV;QAKIgrC,MAAM,EAAE,IALZ;QAMIhS,IAAI,EAAE;OAPR,EASF;QACI2R,KAAK,EAAE,YADX;QAEIC,KAAK,EAAE,CAACC,QAFZ;QAGIvI,MAAM,EAAE,CAHZ;QAIItiC,IAAI,EAAE,eAJV;QAKIgrC,MAAM,EAAE,IALZ;QAMIhS,IAAI,EAAE;OAfR,CADe;MAmBrBtB,sBAAsB,EAAE,sBAnBH;MAoBrB1R,OAAO,EAAE,iBAAUhB,MAAV,EAAkB;QACvB,IAAI9G,CAAC,GAAG8G,MAAM,GAAG,EAAjB;YACIH,MAAM,GACF0F,KAAK,CAAEvF,MAAM,GAAG,GAAV,GAAiB,EAAlB,CAAL,KAA+B,CAA/B,GACM,IADN,GAEM9G,CAAC,KAAK,CAAN,GACA,IADA,GAEAA,CAAC,KAAK,CAAN,GACA,IADA,GAEAA,CAAC,KAAK,CAAN,GACA,IADA,GAEA,IAVd;QAWA,OAAO8G,MAAM,GAAGH,MAAhB;;KAhCU,CAAlB,CAvgKiB;;IA6iKjB1b,KAAK,CAAC2/B,IAAN,GAAa/lB,SAAS,CAClB,uDADkB,EAElB8V,kBAFkB,CAAtB;IAIA1vB,KAAK,CAACwmC,QAAN,GAAiB5sB,SAAS,CACtB,+DADsB,EAEtB+V,SAFsB,CAA1B;IAKA,IAAI8W,OAAO,GAAG9rC,IAAI,CAACshB,GAAnB;;IAEA,SAASA,GAAT,GAAe;MACX,IAAIxc,IAAI,GAAG,KAAK+4B,KAAhB;MAEA,KAAKF,aAAL,GAAqBmO,OAAO,CAAC,KAAKnO,aAAN,CAA5B;MACA,KAAKC,KAAL,GAAakO,OAAO,CAAC,KAAKlO,KAAN,CAApB;MACA,KAAKtS,OAAL,GAAewgB,OAAO,CAAC,KAAKxgB,OAAN,CAAtB;MAEAxmB,IAAI,CAAC44B,YAAL,GAAoBoO,OAAO,CAAChnC,IAAI,CAAC44B,YAAN,CAA3B;MACA54B,IAAI,CAAC6tB,OAAL,GAAemZ,OAAO,CAAChnC,IAAI,CAAC6tB,OAAN,CAAtB;MACA7tB,IAAI,CAAC4tB,OAAL,GAAeoZ,OAAO,CAAChnC,IAAI,CAAC4tB,OAAN,CAAtB;MACA5tB,IAAI,CAAC0tB,KAAL,GAAasZ,OAAO,CAAChnC,IAAI,CAAC0tB,KAAN,CAApB;MACA1tB,IAAI,CAAC6lB,MAAL,GAAcmhB,OAAO,CAAChnC,IAAI,CAAC6lB,MAAN,CAArB;MACA7lB,IAAI,CAACs4B,KAAL,GAAa0O,OAAO,CAAChnC,IAAI,CAACs4B,KAAN,CAApB;MAEA,OAAO,IAAP;;;IAGJ,SAAS2O,aAAT,CAAuB5O,QAAvB,EAAiCpsB,KAAjC,EAAwCjU,KAAxC,EAA+C2kC,SAA/C,EAA0D;MACtD,IAAInF,KAAK,GAAGW,cAAc,CAAClsB,KAAD,EAAQjU,KAAR,CAA1B;MAEAqgC,QAAQ,CAACQ,aAAT,IAA0B8D,SAAS,GAAGnF,KAAK,CAACqB,aAA5C;MACAR,QAAQ,CAACS,KAAT,IAAkB6D,SAAS,GAAGnF,KAAK,CAACsB,KAApC;MACAT,QAAQ,CAAC7R,OAAT,IAAoBmW,SAAS,GAAGnF,KAAK,CAAChR,OAAtC;MAEA,OAAO6R,QAAQ,CAACW,OAAT,EAAP;KAhlKa;;;IAolKjB,SAASkO,KAAT,CAAej7B,KAAf,EAAsBjU,KAAtB,EAA6B;MACzB,OAAOivC,aAAa,CAAC,IAAD,EAAOh7B,KAAP,EAAcjU,KAAd,EAAqB,CAArB,CAApB;KArlKa;;;IAylKjB,SAASmvC,UAAT,CAAoBl7B,KAApB,EAA2BjU,KAA3B,EAAkC;MAC9B,OAAOivC,aAAa,CAAC,IAAD,EAAOh7B,KAAP,EAAcjU,KAAd,EAAqB,CAAC,CAAtB,CAApB;;;IAGJ,SAASovC,OAAT,CAAiBhrB,MAAjB,EAAyB;MACrB,IAAIA,MAAM,GAAG,CAAb,EAAgB;QACZ,OAAOlhB,IAAI,CAACwmB,KAAL,CAAWtF,MAAX,CAAP;OADJ,MAEO;QACH,OAAOlhB,IAAI,CAACumB,IAAL,CAAUrF,MAAV,CAAP;;;;IAIR,SAASirB,MAAT,GAAkB;MACd,IAAIzO,YAAY,GAAG,KAAKC,aAAxB;UACIF,IAAI,GAAG,KAAKG,KADhB;UAEIjT,MAAM,GAAG,KAAKW,OAFlB;UAGIxmB,IAAI,GAAG,KAAK+4B,KAHhB;UAIIlL,OAJJ;UAKID,OALJ;UAMIF,KANJ;UAOI4K,KAPJ;UAQIgP,cARJ,CADc;;;MAad,IACI,EACK1O,YAAY,IAAI,CAAhB,IAAqBD,IAAI,IAAI,CAA7B,IAAkC9S,MAAM,IAAI,CAA7C,IACC+S,YAAY,IAAI,CAAhB,IAAqBD,IAAI,IAAI,CAA7B,IAAkC9S,MAAM,IAAI,CAFjD,CADJ,EAKE;QACE+S,YAAY,IAAIwO,OAAO,CAACG,YAAY,CAAC1hB,MAAD,CAAZ,GAAuB8S,IAAxB,CAAP,GAAuC,KAAvD;QACAA,IAAI,GAAG,CAAP;QACA9S,MAAM,GAAG,CAAT;OArBU;;;;MA0Bd7lB,IAAI,CAAC44B,YAAL,GAAoBA,YAAY,GAAG,IAAnC;MAEA/K,OAAO,GAAGrM,QAAQ,CAACoX,YAAY,GAAG,IAAhB,CAAlB;MACA54B,IAAI,CAAC6tB,OAAL,GAAeA,OAAO,GAAG,EAAzB;MAEAD,OAAO,GAAGpM,QAAQ,CAACqM,OAAO,GAAG,EAAX,CAAlB;MACA7tB,IAAI,CAAC4tB,OAAL,GAAeA,OAAO,GAAG,EAAzB;MAEAF,KAAK,GAAGlM,QAAQ,CAACoM,OAAO,GAAG,EAAX,CAAhB;MACA5tB,IAAI,CAAC0tB,KAAL,GAAaA,KAAK,GAAG,EAArB;MAEAiL,IAAI,IAAInX,QAAQ,CAACkM,KAAK,GAAG,EAAT,CAAhB,CArCc;;MAwCd4Z,cAAc,GAAG9lB,QAAQ,CAACgmB,YAAY,CAAC7O,IAAD,CAAb,CAAzB;MACA9S,MAAM,IAAIyhB,cAAV;MACA3O,IAAI,IAAIyO,OAAO,CAACG,YAAY,CAACD,cAAD,CAAb,CAAf,CA1Cc;;MA6CdhP,KAAK,GAAG9W,QAAQ,CAACqE,MAAM,GAAG,EAAV,CAAhB;MACAA,MAAM,IAAI,EAAV;MAEA7lB,IAAI,CAAC24B,IAAL,GAAYA,IAAZ;MACA34B,IAAI,CAAC6lB,MAAL,GAAcA,MAAd;MACA7lB,IAAI,CAACs4B,KAAL,GAAaA,KAAb;MAEA,OAAO,IAAP;;;IAGJ,SAASkP,YAAT,CAAsB7O,IAAtB,EAA4B;;;MAGxB,OAAQA,IAAI,GAAG,IAAR,GAAgB,MAAvB;;;IAGJ,SAAS4O,YAAT,CAAsB1hB,MAAtB,EAA8B;;MAE1B,OAAQA,MAAM,GAAG,MAAV,GAAoB,IAA3B;;;IAGJ,SAAS4hB,EAAT,CAAY/mB,KAAZ,EAAmB;MACf,IAAI,CAAC,KAAKvU,OAAL,EAAL,EAAqB;QACjB,OAAO0M,GAAP;;;MAEJ,IAAI8f,IAAJ;UACI9S,MADJ;UAEI+S,YAAY,GAAG,KAAKC,aAFxB;MAIAnY,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;;MAEA,IAAIA,KAAK,KAAK,OAAV,IAAqBA,KAAK,KAAK,SAA/B,IAA4CA,KAAK,KAAK,MAA1D,EAAkE;QAC9DiY,IAAI,GAAG,KAAKG,KAAL,GAAaF,YAAY,GAAG,KAAnC;QACA/S,MAAM,GAAG,KAAKW,OAAL,GAAeghB,YAAY,CAAC7O,IAAD,CAApC;;QACA,QAAQjY,KAAR;UACI,KAAK,OAAL;YACI,OAAOmF,MAAP;;UACJ,KAAK,SAAL;YACI,OAAOA,MAAM,GAAG,CAAhB;;UACJ,KAAK,MAAL;YACI,OAAOA,MAAM,GAAG,EAAhB;;OATZ,MAWO;;QAEH8S,IAAI,GAAG,KAAKG,KAAL,GAAa59B,IAAI,CAACi+B,KAAL,CAAWoO,YAAY,CAAC,KAAK/gB,OAAN,CAAvB,CAApB;;QACA,QAAQ9F,KAAR;UACI,KAAK,MAAL;YACI,OAAOiY,IAAI,GAAG,CAAP,GAAWC,YAAY,GAAG,MAAjC;;UACJ,KAAK,KAAL;YACI,OAAOD,IAAI,GAAGC,YAAY,GAAG,KAA7B;;UACJ,KAAK,MAAL;YACI,OAAOD,IAAI,GAAG,EAAP,GAAYC,YAAY,GAAG,IAAlC;;UACJ,KAAK,QAAL;YACI,OAAOD,IAAI,GAAG,IAAP,GAAcC,YAAY,GAAG,GAApC;;UACJ,KAAK,QAAL;YACI,OAAOD,IAAI,GAAG,KAAP,GAAeC,YAAY,GAAG,IAArC;;;UAEJ,KAAK,aAAL;YACI,OAAO19B,IAAI,CAACwmB,KAAL,CAAWiX,IAAI,GAAG,KAAlB,IAA2BC,YAAlC;;UACJ;YACI,MAAM,IAAIre,KAAJ,CAAU,kBAAkBmG,KAA5B,CAAN;;;KA9sKC;;;IAotKjB,SAASgnB,SAAT,GAAqB;MACjB,IAAI,CAAC,KAAKv7B,OAAL,EAAL,EAAqB;QACjB,OAAO0M,GAAP;;;MAEJ,OACI,KAAKggB,aAAL,GACA,KAAKC,KAAL,GAAa,KADb,GAEC,KAAKtS,OAAL,GAAe,EAAhB,GAAsB,MAFtB,GAGA7E,KAAK,CAAC,KAAK6E,OAAL,GAAe,EAAhB,CAAL,GAA2B,OAJ/B;;;IAQJ,SAASmhB,MAAT,CAAgB5mC,KAAhB,EAAuB;MACnB,OAAO,YAAY;QACf,OAAO,KAAK0mC,EAAL,CAAQ1mC,KAAR,CAAP;OADJ;;;IAKJ,IAAI6mC,cAAc,GAAGD,MAAM,CAAC,IAAD,CAA3B;QACIE,SAAS,GAAGF,MAAM,CAAC,GAAD,CADtB;QAEIG,SAAS,GAAGH,MAAM,CAAC,GAAD,CAFtB;QAGII,OAAO,GAAGJ,MAAM,CAAC,GAAD,CAHpB;QAIIK,MAAM,GAAGL,MAAM,CAAC,GAAD,CAJnB;QAKIM,OAAO,GAAGN,MAAM,CAAC,GAAD,CALpB;QAMIO,QAAQ,GAAGP,MAAM,CAAC,GAAD,CANrB;QAOIQ,UAAU,GAAGR,MAAM,CAAC,GAAD,CAPvB;QAQIS,OAAO,GAAGT,MAAM,CAAC,GAAD,CARpB;;IAUA,SAASU,OAAT,GAAmB;MACf,OAAOlQ,cAAc,CAAC,IAAD,CAArB;;;IAGJ,SAASmQ,KAAT,CAAe5nB,KAAf,EAAsB;MAClBA,KAAK,GAAGD,cAAc,CAACC,KAAD,CAAtB;MACA,OAAO,KAAKvU,OAAL,KAAiB,KAAKuU,KAAK,GAAG,GAAb,GAAjB,GAAuC7H,GAA9C;;;IAGJ,SAAS0vB,UAAT,CAAoBnxC,IAApB,EAA0B;MACtB,OAAO,YAAY;QACf,OAAO,KAAK+U,OAAL,KAAiB,KAAK4sB,KAAL,CAAW3hC,IAAX,CAAjB,GAAoCyhB,GAA3C;OADJ;;;IAKJ,IAAI+f,YAAY,GAAG2P,UAAU,CAAC,cAAD,CAA7B;QACI1a,OAAO,GAAG0a,UAAU,CAAC,SAAD,CADxB;QAEI3a,OAAO,GAAG2a,UAAU,CAAC,SAAD,CAFxB;QAGI7a,KAAK,GAAG6a,UAAU,CAAC,OAAD,CAHtB;QAII5P,IAAI,GAAG4P,UAAU,CAAC,MAAD,CAJrB;QAKI1iB,MAAM,GAAG0iB,UAAU,CAAC,QAAD,CALvB;QAMIjQ,KAAK,GAAGiQ,UAAU,CAAC,OAAD,CANtB;;IAQA,SAAS9P,KAAT,GAAiB;MACb,OAAOjX,QAAQ,CAAC,KAAKmX,IAAL,KAAc,CAAf,CAAf;;;IAGJ,IAAIQ,KAAK,GAAGj+B,IAAI,CAACi+B,KAAjB;QACIqP,UAAU,GAAG;MACTtpB,EAAE,EAAE,EADK;;MAETD,CAAC,EAAE,EAFM;;MAGTrH,CAAC,EAAE,EAHM;;MAITwH,CAAC,EAAE,EAJM;;MAKTE,CAAC,EAAE,EALM;;MAMTE,CAAC,EAAE,IANM;;MAOTE,CAAC,EAAE,EAPM;;KADjB,CA3wKiB;;IAuxKjB,SAAS+oB,iBAAT,CAA2B1vC,MAA3B,EAAmCqjB,MAAnC,EAA2C2D,aAA3C,EAA0DC,QAA1D,EAAoE1J,MAApE,EAA4E;MACxE,OAAOA,MAAM,CAACwJ,YAAP,CAAoB1D,MAAM,IAAI,CAA9B,EAAiC,CAAC,CAAC2D,aAAnC,EAAkDhnB,MAAlD,EAA0DinB,QAA1D,CAAP;;;IAGJ,SAAS0oB,cAAT,CAAwBC,cAAxB,EAAwC5oB,aAAxC,EAAuDyoB,UAAvD,EAAmElyB,MAAnE,EAA2E;MACvE,IAAI+hB,QAAQ,GAAGF,cAAc,CAACwQ,cAAD,CAAd,CAA+BnsB,GAA/B,EAAf;UACIqR,OAAO,GAAGsL,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CADnB;UAEI7Z,OAAO,GAAGuL,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CAFnB;UAGI/Z,KAAK,GAAGyL,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CAHjB;UAII9O,IAAI,GAAGQ,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CAJhB;UAKI5hB,MAAM,GAAGsT,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CALlB;UAMIhP,KAAK,GAAGU,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CANjB;UAOInP,KAAK,GAAGa,KAAK,CAACd,QAAQ,CAACoP,EAAT,CAAY,GAAZ,CAAD,CAPjB;UAQIpyB,CAAC,GACIwY,OAAO,IAAI2a,UAAU,CAACtpB,EAAtB,IAA4B,CAAC,GAAD,EAAM2O,OAAN,CAA7B,IACCA,OAAO,GAAG2a,UAAU,CAACvpB,CAArB,IAA0B,CAAC,IAAD,EAAO4O,OAAP,CAD3B,IAECD,OAAO,IAAI,CAAX,IAAgB,CAAC,GAAD,CAFjB,IAGCA,OAAO,GAAG4a,UAAU,CAAC5wB,CAArB,IAA0B,CAAC,IAAD,EAAOgW,OAAP,CAH3B,IAICF,KAAK,IAAI,CAAT,IAAc,CAAC,GAAD,CAJf,IAKCA,KAAK,GAAG8a,UAAU,CAACppB,CAAnB,IAAwB,CAAC,IAAD,EAAOsO,KAAP,CALzB,IAMCiL,IAAI,IAAI,CAAR,IAAa,CAAC,GAAD,CANd,IAOCA,IAAI,GAAG6P,UAAU,CAAClpB,CAAlB,IAAuB,CAAC,IAAD,EAAOqZ,IAAP,CAhBhC;;MAkBA,IAAI6P,UAAU,CAAChpB,CAAX,IAAgB,IAApB,EAA0B;QACtBnK,CAAC,GACGA,CAAC,IACAojB,KAAK,IAAI,CAAT,IAAc,CAAC,GAAD,CADf,IAECA,KAAK,GAAG+P,UAAU,CAAChpB,CAAnB,IAAwB,CAAC,IAAD,EAAOiZ,KAAP,CAH7B;;;MAKJpjB,CAAC,GAAGA,CAAC,IACAwQ,MAAM,IAAI,CAAV,IAAe,CAAC,GAAD,CADhB,IAECA,MAAM,GAAG2iB,UAAU,CAAC9oB,CAApB,IAAyB,CAAC,IAAD,EAAOmG,MAAP,CAF1B,IAGCyS,KAAK,IAAI,CAAT,IAAc,CAAC,GAAD,CAHf,IAGyB,CAAC,IAAD,EAAOA,KAAP,CAH7B;MAKAjjB,CAAC,CAAC,CAAD,CAAD,GAAO0K,aAAP;MACA1K,CAAC,CAAC,CAAD,CAAD,GAAO,CAACszB,cAAD,GAAkB,CAAzB;MACAtzB,CAAC,CAAC,CAAD,CAAD,GAAOiB,MAAP;MACA,OAAOmyB,iBAAiB,CAAC9xC,KAAlB,CAAwB,IAAxB,EAA8B0e,CAA9B,CAAP;KA5zKa;;;IAg0KjB,SAASuzB,0BAAT,CAAoCC,gBAApC,EAAsD;MAClD,IAAIA,gBAAgB,KAAKrrC,SAAzB,EAAoC;QAChC,OAAO27B,KAAP;;;MAEJ,IAAI,OAAO0P,gBAAP,KAA4B,UAAhC,EAA4C;QACxC1P,KAAK,GAAG0P,gBAAR;QACA,OAAO,IAAP;;;MAEJ,OAAO,KAAP;KAx0Ka;;;IA40KjB,SAASC,2BAAT,CAAqCC,SAArC,EAAgDC,KAAhD,EAAuD;MACnD,IAAIR,UAAU,CAACO,SAAD,CAAV,KAA0BvrC,SAA9B,EAAyC;QACrC,OAAO,KAAP;;;MAEJ,IAAIwrC,KAAK,KAAKxrC,SAAd,EAAyB;QACrB,OAAOgrC,UAAU,CAACO,SAAD,CAAjB;;;MAEJP,UAAU,CAACO,SAAD,CAAV,GAAwBC,KAAxB;;MACA,IAAID,SAAS,KAAK,GAAlB,EAAuB;QACnBP,UAAU,CAACtpB,EAAX,GAAgB8pB,KAAK,GAAG,CAAxB;;;MAEJ,OAAO,IAAP;;;IAGJ,SAASlJ,QAAT,CAAkBmJ,aAAlB,EAAiCC,aAAjC,EAAgD;MAC5C,IAAI,CAAC,KAAK/8B,OAAL,EAAL,EAAqB;QACjB,OAAO,KAAKkR,UAAL,GAAkBM,WAAlB,EAAP;;;MAGJ,IAAIwrB,UAAU,GAAG,KAAjB;UACIC,EAAE,GAAGZ,UADT;UAEIlyB,MAFJ;UAGI2F,MAHJ;;MAKA,IAAI,OAAOgtB,aAAP,KAAyB,QAA7B,EAAuC;QACnCC,aAAa,GAAGD,aAAhB;QACAA,aAAa,GAAG,KAAhB;;;MAEJ,IAAI,OAAOA,aAAP,KAAyB,SAA7B,EAAwC;QACpCE,UAAU,GAAGF,aAAb;;;MAEJ,IAAI,OAAOC,aAAP,KAAyB,QAA7B,EAAuC;QACnCE,EAAE,GAAG3kC,MAAM,CAACkC,MAAP,CAAc,EAAd,EAAkB6hC,UAAlB,EAA8BU,aAA9B,CAAL;;QACA,IAAIA,aAAa,CAACjqB,CAAd,IAAmB,IAAnB,IAA2BiqB,aAAa,CAAChqB,EAAd,IAAoB,IAAnD,EAAyD;UACrDkqB,EAAE,CAAClqB,EAAH,GAAQgqB,aAAa,CAACjqB,CAAd,GAAkB,CAA1B;;;;MAIR3I,MAAM,GAAG,KAAK+G,UAAL,EAAT;MACApB,MAAM,GAAGysB,cAAc,CAAC,IAAD,EAAO,CAACS,UAAR,EAAoBC,EAApB,EAAwB9yB,MAAxB,CAAvB;;MAEA,IAAI6yB,UAAJ,EAAgB;QACZltB,MAAM,GAAG3F,MAAM,CAAC4J,UAAP,CAAkB,CAAC,IAAnB,EAAyBjE,MAAzB,CAAT;;;MAGJ,OAAO3F,MAAM,CAACupB,UAAP,CAAkB5jB,MAAlB,CAAP;;;IAGJ,IAAIotB,KAAK,GAAGnuC,IAAI,CAACshB,GAAjB;;IAEA,SAASE,IAAT,CAAc+I,CAAd,EAAiB;MACb,OAAO,CAACA,CAAC,GAAG,CAAL,KAAWA,CAAC,GAAG,CAAf,KAAqB,CAACA,CAA7B;;;IAGJ,SAAS6jB,aAAT,GAAyB;;;;;;;;MAQrB,IAAI,CAAC,KAAKn9B,OAAL,EAAL,EAAqB;QACjB,OAAO,KAAKkR,UAAL,GAAkBM,WAAlB,EAAP;;;MAGJ,IAAIkQ,OAAO,GAAGwb,KAAK,CAAC,KAAKxQ,aAAN,CAAL,GAA4B,IAA1C;UACIF,IAAI,GAAG0Q,KAAK,CAAC,KAAKvQ,KAAN,CADhB;UAEIjT,MAAM,GAAGwjB,KAAK,CAAC,KAAK7iB,OAAN,CAFlB;UAGIoH,OAHJ;UAIIF,KAJJ;UAKI4K,KALJ;UAMIrZ,CANJ;UAOIsqB,KAAK,GAAG,KAAK1B,SAAL,EAPZ;UAQI2B,SARJ;UASIC,MATJ;UAUIC,QAVJ;UAWIC,OAXJ;;MAaA,IAAI,CAACJ,KAAL,EAAY;;;QAGR,OAAO,KAAP;OA5BiB;;;MAgCrB3b,OAAO,GAAGpM,QAAQ,CAACqM,OAAO,GAAG,EAAX,CAAlB;MACAH,KAAK,GAAGlM,QAAQ,CAACoM,OAAO,GAAG,EAAX,CAAhB;MACAC,OAAO,IAAI,EAAX;MACAD,OAAO,IAAI,EAAX,CAnCqB;;MAsCrB0K,KAAK,GAAG9W,QAAQ,CAACqE,MAAM,GAAG,EAAV,CAAhB;MACAA,MAAM,IAAI,EAAV,CAvCqB;;MA0CrB5G,CAAC,GAAG4O,OAAO,GAAGA,OAAO,CAAC+b,OAAR,CAAgB,CAAhB,EAAmBpsB,OAAnB,CAA2B,QAA3B,EAAqC,EAArC,CAAH,GAA8C,EAAzD;MAEAgsB,SAAS,GAAGD,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,EAA9B;MACAE,MAAM,GAAG/sB,IAAI,CAAC,KAAK8J,OAAN,CAAJ,KAAuB9J,IAAI,CAAC6sB,KAAD,CAA3B,GAAqC,GAArC,GAA2C,EAApD;MACAG,QAAQ,GAAGhtB,IAAI,CAAC,KAAKoc,KAAN,CAAJ,KAAqBpc,IAAI,CAAC6sB,KAAD,CAAzB,GAAmC,GAAnC,GAAyC,EAApD;MACAI,OAAO,GAAGjtB,IAAI,CAAC,KAAKmc,aAAN,CAAJ,KAA6Bnc,IAAI,CAAC6sB,KAAD,CAAjC,GAA2C,GAA3C,GAAiD,EAA3D;MAEA,OACIC,SAAS,GACT,GADA,IAEClR,KAAK,GAAGmR,MAAM,GAAGnR,KAAT,GAAiB,GAApB,GAA0B,EAFhC,KAGCzS,MAAM,GAAG4jB,MAAM,GAAG5jB,MAAT,GAAkB,GAArB,GAA2B,EAHlC,KAIC8S,IAAI,GAAG+Q,QAAQ,GAAG/Q,IAAX,GAAkB,GAArB,GAA2B,EAJhC,KAKCjL,KAAK,IAAIE,OAAT,IAAoBC,OAApB,GAA8B,GAA9B,GAAoC,EALrC,KAMCH,KAAK,GAAGic,OAAO,GAAGjc,KAAV,GAAkB,GAArB,GAA2B,EANjC,KAOCE,OAAO,GAAG+b,OAAO,GAAG/b,OAAV,GAAoB,GAAvB,GAA6B,EAPrC,KAQCC,OAAO,GAAG8b,OAAO,GAAG1qB,CAAV,GAAc,GAAjB,GAAuB,EAR/B,CADJ;;;IAaJ,IAAI4qB,OAAO,GAAGzR,QAAQ,CAAC1zB,SAAvB;IAEAmlC,OAAO,CAAC19B,OAAR,GAAkB8rB,SAAlB;IACA4R,OAAO,CAACrtB,GAAR,GAAcA,GAAd;IACAqtB,OAAO,CAACrf,GAAR,GAAc0c,KAAd;IACA2C,OAAO,CAAC1O,QAAR,GAAmBgM,UAAnB;IACA0C,OAAO,CAACpC,EAAR,GAAaA,EAAb;IACAoC,OAAO,CAACjC,cAAR,GAAyBA,cAAzB;IACAiC,OAAO,CAAChC,SAAR,GAAoBA,SAApB;IACAgC,OAAO,CAAC/B,SAAR,GAAoBA,SAApB;IACA+B,OAAO,CAAC9B,OAAR,GAAkBA,OAAlB;IACA8B,OAAO,CAAC7B,MAAR,GAAiBA,MAAjB;IACA6B,OAAO,CAAC5B,OAAR,GAAkBA,OAAlB;IACA4B,OAAO,CAAC3B,QAAR,GAAmBA,QAAnB;IACA2B,OAAO,CAAC1B,UAAR,GAAqBA,UAArB;IACA0B,OAAO,CAACzB,OAAR,GAAkBA,OAAlB;IACAyB,OAAO,CAAC1zB,OAAR,GAAkBuxB,SAAlB;IACAmC,OAAO,CAAC7Q,OAAR,GAAkBqO,MAAlB;IACAwC,OAAO,CAACxP,KAAR,GAAgBgO,OAAhB;IACAwB,OAAO,CAAC/jC,GAAR,GAAcwiC,KAAd;IACAuB,OAAO,CAACjR,YAAR,GAAuBA,YAAvB;IACAiR,OAAO,CAAChc,OAAR,GAAkBA,OAAlB;IACAgc,OAAO,CAACjc,OAAR,GAAkBA,OAAlB;IACAic,OAAO,CAACnc,KAAR,GAAgBA,KAAhB;IACAmc,OAAO,CAAClR,IAAR,GAAeA,IAAf;IACAkR,OAAO,CAACpR,KAAR,GAAgBA,KAAhB;IACAoR,OAAO,CAAChkB,MAAR,GAAiBA,MAAjB;IACAgkB,OAAO,CAACvR,KAAR,GAAgBA,KAAhB;IACAuR,OAAO,CAAC/J,QAAR,GAAmBA,QAAnB;IACA+J,OAAO,CAACvK,WAAR,GAAsBgK,aAAtB;IACAO,OAAO,CAAC30B,QAAR,GAAmBo0B,aAAnB;IACAO,OAAO,CAAC7I,MAAR,GAAiBsI,aAAjB;IACAO,OAAO,CAACvzB,MAAR,GAAiBA,MAAjB;IACAuzB,OAAO,CAACxsB,UAAR,GAAqBA,UAArB;IAEAwsB,OAAO,CAACC,WAAR,GAAsB3vB,SAAS,CAC3B,qFAD2B,EAE3BmvB,aAF2B,CAA/B;IAIAO,OAAO,CAAC3J,IAAR,GAAeA,IAAf,CAv+KiB;;IA2+KjBjjB,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,MAAZ,CAAd;IACAA,cAAc,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,SAAZ,CAAd,CA5+KiB;;IAg/KjB0G,aAAa,CAAC,GAAD,EAAMN,WAAN,CAAb;IACAM,aAAa,CAAC,GAAD,EAAMH,cAAN,CAAb;IACAgB,aAAa,CAAC,GAAD,EAAM,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MAC/CA,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAASkiB,UAAU,CAAC/rB,KAAD,CAAV,GAAoB,IAA7B,CAAZ;KADS,CAAb;IAGAuY,aAAa,CAAC,GAAD,EAAM,UAAUvY,KAAV,EAAiB5R,KAAjB,EAAwBwf,MAAxB,EAAgC;MAC/CA,MAAM,CAACvB,EAAP,GAAY,IAAIxC,IAAJ,CAAS6L,KAAK,CAAC1V,KAAD,CAAd,CAAZ;KADS,CAAb,CAr/KiB;;IA2/KjB1L,KAAK,CAACwpC,OAAN,GAAgB,QAAhB;IAEA90B,eAAe,CAACugB,WAAD,CAAf;IAEAj1B,KAAK,CAACzC,EAAN,GAAW+mC,KAAX;IACAtkC,KAAK,CAAClF,GAAN,GAAYA,GAAZ;IACAkF,KAAK,CAACpF,GAAN,GAAYA,GAAZ;IACAoF,KAAK,CAACyb,GAAN,GAAYA,GAAZ;IACAzb,KAAK,CAACkW,GAAN,GAAYL,SAAZ;IACA7V,KAAK,CAACugC,IAAN,GAAa8E,UAAb;IACArlC,KAAK,CAACslB,MAAN,GAAe6gB,UAAf;IACAnmC,KAAK,CAACsV,MAAN,GAAeA,MAAf;IACAtV,KAAK,CAAC+V,MAAN,GAAe2Z,kBAAf;IACA1vB,KAAK,CAAC67B,OAAN,GAAgBxjB,aAAhB;IACArY,KAAK,CAAC83B,QAAN,GAAiBF,cAAjB;IACA53B,KAAK,CAACwZ,QAAN,GAAiBA,QAAjB;IACAxZ,KAAK,CAACqqB,QAAN,GAAiBgc,YAAjB;IACArmC,KAAK,CAAC+kC,SAAN,GAAkBO,YAAlB;IACAtlC,KAAK,CAAC8c,UAAN,GAAmB6S,SAAnB;IACA3vB,KAAK,CAAC04B,UAAN,GAAmBA,UAAnB;IACA14B,KAAK,CAACqlB,WAAN,GAAoB+gB,eAApB;IACApmC,KAAK,CAACmqB,WAAN,GAAoBoc,eAApB;IACAvmC,KAAK,CAAC4vB,YAAN,GAAqBA,YAArB;IACA5vB,KAAK,CAAC+vB,YAAN,GAAqBA,YAArB;IACA/vB,KAAK,CAACyuB,OAAN,GAAgBwB,WAAhB;IACAjwB,KAAK,CAACoqB,aAAN,GAAsBkc,iBAAtB;IACAtmC,KAAK,CAACkgB,cAAN,GAAuBA,cAAvB;IACAlgB,KAAK,CAACypC,oBAAN,GAA6BpB,0BAA7B;IACAroC,KAAK,CAAC0pC,qBAAN,GAA8BnB,2BAA9B;IACAvoC,KAAK,CAAC09B,cAAN,GAAuBN,iBAAvB;IACAp9B,KAAK,CAACmE,SAAN,GAAkBmgC,KAAlB,CAzhLiB;;IA4hLjBtkC,KAAK,CAAC2pC,SAAN,GAAkB;MACdC,cAAc,EAAE,kBADF;;MAEdC,sBAAsB,EAAE,qBAFV;;MAGdC,iBAAiB,EAAE,yBAHL;;MAIdrlB,IAAI,EAAE,YAJQ;;MAKdslB,IAAI,EAAE,OALQ;;MAMdC,YAAY,EAAE,UANA;;MAOdC,OAAO,EAAE,cAPK;;MAQdnlB,IAAI,EAAE,YARQ;;MASdN,KAAK,EAAE,SATO;;KAAlB;IAYA,OAAOxkB,KAAP;GA5iLF,CAAD;;;SCGekqC,UAAUhxC;oBAIpBA,MAFF+F;MAAAA,gCAAO;MACU4G,OACf3M,MADFqG,IAAOG;EAGT,oBACEtH;IAAK,SAAS,EAAE;kBACdA;IAAI,SAAS,EAAE;kBACbA;IAAG,SAAS,EAAEC,UAAU,CAAC1B,SAAS,CAACsG,SAAD,EAAYgC,IAAZ,CAAV,EAA6B,MAA7B;IAD1B,EAEG4G,IAAI,CAAC3G,KAFR,CADF,eAME9G;IAAI,SAAS,EAAC;kBACZA;IAAI,SAAS,EAAE;eAAkByN,IAAI,CAAChP,IAAL,IAAagP,IAAI,CAACskC,WAAnD,CADF,eAEE/xC;IAAI,SAAS,EAAC;kBACZA;IAAM,SAAS,EAAC;kBACdA;IAAG,SAAS,EAAEC,UAAU,CAAC1B,SAAS,CAACsG,SAAD,EAAY,SAAZ,CAAV,EAAkC,MAAlC;IAD1B,eAEE7E,kEAAegyC,MAAM,CAACvkC,IAAI,CAACyM,QAAN,CAAN,CAAsBktB,OAAtB,EAAf,CAFF,CADF,EAMG,CAAC35B,IAAI,CAACwL,IAAL,IAAa,EAAd,EAAkB1X,GAAlB,CAAsB,UAAC0wC,GAAD,EAAM/lC,KAAN;IAAA,oBACrBlM;MACE,GAAG,EAAEkM,KADP;MAEE,SAAS,EAAC,qCAFZ;MAGE,OAAO,EAAE7F,sBAAsB,CAAC;QAC9BvF,KAAK,CAACqF,SAAN,CAAgB,MAAhB,EAAwB8rC,GAAxB;QACAnxC,KAAK,CAAC4C,QAAN,CAAe,CAAf;OAF6B;oBAK/B1D;MAAG,SAAS,EAAEC,UAAU,CAAC1B,SAAS,CAACsG,SAAD,EAAY,MAAZ,CAAV,EAA+B,MAA/B;MAR1B,EASGotC,GATH,CADqB;GAAtB,CANH,CAFF,CANF,CADF;AAgCD;;SClCeC;MAAajqC,YAAAA;MAASnH;;oBACMA,MAAlCsD;MAAAA,gCAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;MAAkB4U,OAASnY,MAATmY;EACjC,IAAMk5B,QAAQ,GAAGlqC,IAAI,IAAKmqC,SAA1B;EACA,IAAMtqC,OAAO,GAAG,CACd;IACEE,MAAM,EAAE5D,IAAI,CAAC,OAAD,CADd;IAEEsH,QAAQ,EAAE,OAFZ;IAGEzF,EAAE,EAAE,OAHN;IAIEgC,IAAI,EAAE,cAACnH,KAAD;MAAA,oBAAgBd,wCAAC,QAAD,eAAcc,KAAd;QAAqB,IAAI,EAAEA,KAAK,CAAC+F,IAAjC;QAAuC,IAAI,EAAEzC;SAA7D;KAJR;IAKE2F,MAAM,EAAEjE,mBALV;IAMEqF,OAAO,EAAE;GAPG,EASd;IACEnD,MAAM,EAAE5D,IAAI,CAAC,MAAD,CADd;IAEEsH,QAAQ,EAAE,MAFZ;IAGEzF,EAAE,EAAE,MAHN;IAIEiF,MAAM,EAAE,IAJV;IAKEnB,MAAM,EAAE,gBAACjJ,KAAD;MAAA,OACNmY,IAAI,IAAIA,IAAI,CAACxb,MAAb,gBACEuC,wCAAC,kBAAD,eAAwBc,KAAxB;QAA+B,MAAM,eAAOA,KAAK,CAACgH,OAAb;UAAsBnH,OAAO,EAAEsY;;SADtE,gBAGEjZ,wCAAC,mBAAD,EAAyBc,KAAzB,CAJI;;GAdI,CAAhB;EAuBA,oBAAOd,wCAAC,KAAD,eAAWc,KAAX;IAAkB,OAAO,EAAEgH;KAAlC;AACD;;SC3Be4B;MAAS2oC,gBAAAA;wBAAUC;MAAAA,gCAAQ;uBAAQzrC;MAAAA,8BAAO;4BAAgB9G;MAAAA,wCAAY;;EACpF,IAAIsyC,QAAJ,EAAc;IACZ,oBACEryC;MACE,SAAS,EAAEC,UAAU,CACnB,sGADmB,EAEnBF,SAFmB;oBAKrBC;MAAM,yBAAqB6G,IAA3B;MAAmC,KAAK,EAAEyrC,KAA1C;MAAiD,SAAS,iBAAe/zC,SAAS,CAACsG,SAAD,EAAYgC,IAAZ,EAAkB,IAAlB;MANpF,CADF;;;EAWF,OAAO,IAAP;AACD;AAED6C,MAAM,CAACxJ,SAAP,GAAmB;EACjBmyC,QAAQ,EAAElyC,6BAAS,CAACI,IADH;EAEjBsG,IAAI,EAAE1G,6BAAS,CAACC,MAFC;EAGjBkyC,KAAK,EAAEnyC,6BAAS,CAACC,MAHA;EAIjBL,SAAS,EAAEI,6BAAS,CAACC;AAJJ,CAAnB;;SCxBgBmyC;kBACe9sC,cAAQ,CAAC,KAAD;MAA9B+sC;MAAMC;;EAEb,OAAO;IACLD,IAAI,EAAJA,IADK;IAELC,YAAY,EAAZA,YAFK;IAGLC,SAHK;MAIHD,YAAY,CAAC,IAAD,CAAZ;KAJG;IAMLE,UANK;MAOHF,YAAY,CAAC,KAAD,CAAZ;;GAPJ;AAUD;SAUeG;MACdJ,YAAAA;MACA/yC,gBAAAA;6BACAkzC;MAAAA,0CAAa/pC;0BACbiqC;MAAAA,oCAAUjqC;MACV9B,aAAAA;MACQgsC,mBAARC;MACAC,aAAAA;4BACAjzC;MAAAA,wCAAY;MACTe;;EAEH,IAAMmyC,QAAQ,GAAQjyC,YAAM,EAA5B;EACA,IAAMkyC,SAAS,GAAQlyC,YAAM,EAA7B;;mBACkCyE,cAAQ;MAAnC0tC;MAAWC;;EAElB,IAAMC,YAAY,GAAG,SAAfA,YAAe;IACnBV,UAAU;IACVE,OAAO;GAFT;;EAKA5xC,eAAS,CAAC;IACR,IAAIgyC,QAAQ,CAACr0C,OAAT,IAAoBs0C,SAAS,CAACt0C,OAAlC,EAA2C;MAAA;;MACzC,IAAM00C,MAAM,GAAG,CAAC,CAAAL,QAAQ,QAAR,iCAAAA,QAAQ,CAAEr0C,OAAV,uCAAmB20C,YAAnB,KAAmC,CAApC,KAA0C,CAAAL,SAAS,QAAT,kCAAAA,SAAS,CAAEt0C,OAAX,wCAAoB20C,YAApB,KAAoC,CAA9E,CAAf;MAEAH,YAAY,kBAAgBE,MAAhB,SAAZ;KAHF,MAIO;MACLF,YAAY,CAAC,MAAD,CAAZ;;GANK,EAQN,CAACZ,IAAD,CARM,CAAT;;EAUA,IAAI,CAACA,IAAL,EAAW;IACT,OAAO,IAAP;;;EAGF,oBACExyC;IAAK,IAAI,EAAE,QAAX;IAAqB,SAAS,iDAA+CD;kBAC3EC;IAAK,SAAS,EAAC,uBAAf;IAAuC,OAAO,EAAEqzC;IADlD,eAEErzC;IAAK,KAAK,EAAEgzC,KAAZ;IAAmB,SAAS,EAAE;kBAC5BhzC;IAAK,SAAS,EAAE;KACb8G,KAAK,gBACJ9G;IAAK,SAAS,EAAE,qBAAhB;IAAuC,GAAG,EAAEizC,QAA5C;IAAsD,eAAa;KAChEnsC,KADH,CADI,GAIF,IALN,eAOE9G;IAAK,SAAS,EAAC,oBAAf;IAAoC,KAAK,EAAE;MAAEmzC,SAAS,EAATA;KAA7C;IAA0D,eAAa;KACpEX,IAAI,IAAI/yC,QADX,CAPF,EAWGqzC,WAAW,gBACV9yC;IAAK,SAAS,EAAE,sBAAhB;IAAwC,GAAG,EAAEkzC,SAA7C;IAAwD,eAAa;kBACnElzC,wCAAC,WAAD,eAAiBc,KAAjB;IAAwB,UAAU,EAAE6xC,UAApC;IAAgD,OAAO,EAAEU;KAD3D,CADU,GAIR,IAfN,CADF,eAkBErzC;IACE,SAAS,EAAC,0DADZ;IAEE,cAAW,OAFb;IAGE,eAAa,YAHf;IAIE,OAAO,EAAEqzC;IAtBb,CAFF,CADF;AA8BD;;ACpFD,SAASG,iBAAT;MAA6Bn0C,aAAAA;MAAOo0C,sBAAAA;MAAgB3jC,gBAAAA;MAAU+iC,eAAAA;uBAASzuC;MAAAA,8BAAO,UAACC,CAAD;IAAA,OAAeA,CAAf;;EAC5E,oBACErE;IAAK,SAAS,EAAE;kBACdA;IAAQ,eAAY,kBAApB;IAAuC,SAAS,EAAE,2BAAlD;IAA+E,OAAO,EAAE6yC;KACrFzuC,IAAI,CAAC,QAAD,CADP,CADF,eAIEpE;IACE,QAAQ,EAAEyzC,cAAc,KAAKp0C,KAD/B;IAEE,eAAY,mBAFd;IAGE,SAAS,EAAE,qBAHb;IAIE,OAAO,EAAE,iBAACmX,CAAD;MACP,IAAIi9B,cAAc,KAAKp0C,KAAvB,EAA8B;QAC5ByQ,QAAQ,CAAC0G,CAAD,CAAR;;;kBAIJxW;IAAG,SAAS,EAAEC,UAAU,CAAC1B,SAAS,CAACsG,SAAD,EAAY,OAAZ,CAAV,EAAgC,MAAhC;IAV1B,EAWGT,IAAI,CAAC,QAAD,CAXP,CAJF,CADF;AAoBD;;SASesvC;;;6BAAcC;MAAAA,uCAAW;MAASl0C,iBAAAA;MAAaqB;;oBACrCA,MAAhBsD;MAAAA,gCAAOwE;;kBACWnD,cAAQ;MAA3BpG;MAAOsG;;EAEd,oBACE3F,wCAAC,KAAD,eACMc,KADN;IAEE,SAAS,EAAEb,UAAU,CAACa,KAAK,CAACf,SAAP,EAAkB,4BAAlB,CAFvB;IAGE,KAAK,EAAE;MAAE4zC,QAAQ,EAARA;KAHX;IAIE,KAAK,gCAAU7yC,KAAK,CAAC8yC,QAAhB,qBAAU,gBAAgBl6B,WAAhB,EAAV,CAJP;IAKE,KAAK,EAAEra,KALT;IAME,MAAM,EAAEm0C;mBAERxzC;IAAK,SAAS,EAAE;kBACdA;IAAK,SAAS,EAAE;KACbP,QADH,EAEG2E,IAAI,CAAC,SAAD,CAFP,oBAEoBpE,wDAASc,KAAK,CAAC2yC,cAAf,CAFpB,WAGGrvC,IAAI,CAAC,UAAD,CAHP,uBAIEpE,kFAAec,KAAK,CAAC8yC,QAArB,qBAAe,iBAAgBl6B,WAAhB,EAAf,OAJF,UAKGtV,IAAI,CAAC,MAAD,CALP,oBAKiBpE,8DAAec,KAAK,CAAC2yC,cAArB,OALjB,MADF,eAQEzzC,wCAAC,SAAD;IAAW,IAAI,EAAC,QAAhB;IAAyB,KAAK,EAAEX,KAAhC;IAAuC,QAAQ,EAAE,kBAACZ,IAAD,EAAOY,KAAP;MAAA,OAAiBsG,QAAQ,CAACtG,KAAD,CAAzB;;IARnD,CARF,CADF;AAqBD;;IC1DYw0C,cAAb;EAAA;;;;;;;;;;EAaE,wBAAY1wC,SAAZ,EAAwCuK,OAAxC,EAAsDrG,IAAtD;;;IACE,yCAAMlE,SAAN,EAAiBuK,OAAjB,EAA0BrG,IAA1B;UAbKysC;UACAC;UACCC;;UA6IRC,cAAc,UAAC50C,KAAD,EAAekgB,KAAf;MACZA,KAAK,GAAGA,KAAK,IAAI,EAAjB;MAEA,IAAM/F,QAAQ,GAAGna,KAAK,KAAKwF,SAAV,IAAuBxF,KAAK,KAAK,IAAjC,GAAwC,MAAK60C,QAAL,EAAxC,GAA0D70C,KAA3E;MAEA,IAAMqP,OAAO,GAAG8K,QAAQ,KAAK3U,SAAb,GAAyB,MAAKqU,UAAL,CAAgBM,QAAhB,EAA0B,MAAK26B,SAA/B,CAAzB,GAAqE,KAArF;MAEA,MAAKA,SAAL,GAAiBt2C,KAAK,CAACC,OAAN,CAAc0b,QAAd,cAA8BA,QAA9B,IAA0CA,QAA3D;;MAEA,MAAK46B,cAAL,CAAoB70B,KAApB,EAA2B7Q,OAA3B;;MACA,OAAOA,OAAP;;;;;;EA1JJ;;;;;;EAAA,OAyBE2lC,IAzBF,GAyBE;IACE,uCAAaA,IAAb;;;;;;;;;EA1BJ,OAkCE/yC,OAlCF,GAkCE;IACE,uCAAaA,OAAb;;;;;;;;;EAnCJ,OA2CE0D,MA3CF,GA2CE;;;IAGE,uCAAaA,MAAb,kCAAuC,KAAKiB,EAA5C;;;;;;;;;;;EA9CJ,OAwDQquC,MAxDR,mBAwDe1mC,OAxDf;IAAA;;;;;MAyDI,gCAAM0mC,MAAN,cAAa1mC,OAAb;;;;MAIA,OAAK2mC,QAAL,CAAc3mC,OAAd,oDACY,OAAK3H,EADjB,IACwB,QADxB;;;MAKA,IAAI,OAAKuuC,IAAL,YAAmB,OAAKvuC,EAAxB,CAAJ,EAAmC;;QAEjC,OAAK6tC,aAAL,GAAqB,OAAKW,WAAL,CAAiB,OAAKD,IAAL,YAAmB,OAAKvuC,EAAxB,CAAjB,CAArB;;QAEA,IAAI,OAAK8tC,cAAT,EAAyB;UACvB,OAAKpuC,QAAL,CAAc,OAAKquC,cAAnB;;UACA,OAAKC,WAAL,CAAiB,OAAKD,cAAtB;;;;;KAxER;MAAA;;;;;;;;;EAAA,OAiFEU,MAjFF,GAiFE;;IAEE,IAAI,KAAKF,IAAL,YAAmB,KAAKvuC,EAAxB,CAAJ,EAAmC;;MAEjC,KAAK0uC,WAAL,CAAiB,KAAKH,IAAL,YAAmB,KAAKvuC,EAAxB,CAAjB;;;IAEF,gCAAMyuC,MAAN;;;;;;;EAvFJ,OA6FEE,WA7FF,GA6FE;IACE,OAAO,IAAP;;;;;;;;;;EA9FJ,OAuGEH,WAvGF,GAuGE,qBAAY7mC,OAAZ;;IAEE,OAAOinC,4BAAQ,CAAC7vC,MAAT,CAAgB,KAAK4vC,WAAL,EAAhB,EAAoChnC,OAApC,CAAP;;;;;;;;EAzGJ,OAgHE+mC,WAhHF,GAgHE,qBAAY/mC,OAAZ;IACE,IAAIA,OAAJ,EAAa;MACXinC,4BAAQ,CAACC,sBAAT,CAAgClnC,OAAhC;;;;;;;;;;;EAlHN,OA4HEjI,QA5HF,GA4HE,kBAAStG,KAAT,EAAqBkgB,KAArB;IACE,IAAI,KAAKu0B,aAAT,EAAwB;MACtB,KAAKA,aAAL,CAAmBv9B,QAAnB,CAA4B;QAC1BlX,KAAK,EAAEA;OADT;MAGA,KAAK00C,cAAL,GAAsB,KAAtB;KAJF,MAKO;MACL,KAAKA,cAAL,GAAsB,IAAtB;MACA,KAAKC,cAAL,GAAsB30C,KAAtB;;;IAGF,OAAO,KAAP;;;;;;;;;;;;;;;EAvIJ,OAkKE60C,QAlKF,GAkKE;IACE,IAAI,KAAKJ,aAAT,EAAwB;MACtB,OAAO,KAAKA,aAAL,CAAmBxpC,KAAnB,CAAyBjL,KAAhC;;;IAEF,OAAO,KAAK0R,YAAZ;;;;;;;;;;;;EAtKJ,OAiLEgkC,aAjLF,GAiLE,uBAAc1tC,IAAd,EAA0B2tC,KAA1B,EAA0CC,OAA1C;IACE,IAAMC,KAAK,mCAASH,aAAT,YAAuB1tC,IAAvB,EAA6B2tC,KAA7B,EAAoCC,OAApC,CAAX;;IAEA,IAAI,CAACC,KAAL,EAAY;MACV,OAAO,KAAP;;;IAGF,OAAO,KAAK/jC,QAAL,CAAc9J,IAAd,EAAoB2tC,KAApB,EAA2BC,OAA3B,CAAP;GAxLJ;;;EAAA,OA4LE9jC,QA5LF,GA4LE,kBAAS9J,IAAT,EAAqB2tC,KAArB,EAAqCC,OAArC;IACE,OAAO,IAAP;GA7LJ;;EAAA;IAAA;IAAA,KAiBE;MACE,OAAQ,KAAKT,IAAL,YAA2B,KAAKvuC,EAAhC,CAAR;;;;EAlBJ;AAAA,EAAgD+I,mBAAU,CAACyC,UAAX,CAAsB+7B,KAAtE;;SCHgB2H;MAAc91C,aAAAA;yBAAO2F;MAAAA,kCAAS,UAACX,CAAD;IAAA,OAAYA,CAAZ;;;EAC5C,IAAIhF,KAAK,KAAKwF,SAAd,EAAyB;IACvB,oBAAO7E,qDAAP;;;EAGF,IAAMo1C,QAAQ,GAAGpwC,MAAM,CAAC3F,KAAD,CAAvB;;EAEA,IAAIA,KAAK,KAAK+1C,QAAd,EAAwB;IACtB,oBAAOp1C;MAAK,uBAAuB,EAAE;QAAEq1C,MAAM,EAAED;;MAA/C;;;EAGF,oBAAOp1C,sDAAOwB,MAAM,CAACnC,KAAD,CAAb,CAAP;AACD;;SCLei2C,iBAAiB7nC;EAC/B,IAAM3F,OAAO,GAAa,EAA1B;EAEAiM,+BAAW,CAACC,aAAZ,CAA0BvG,IAAI,CAACgE,UAA/B,EAA2C,UAACtO,SAAD;IACzC,IAAIA,SAAS,CAACoyC,SAAV,IAAuBpyC,SAAS,CAAClF,GAArC,EAA0C;MACxC,IAAMu3C,GAAG,GAAQxmC,mBAAU,CAACsG,MAAX,CAAkBnS,SAAlB,EAA6B,EAA7B,EAAiC,IAAjC,EAAuC,IAAvC,CAAjB;MAEA,IAAMuB,MAAM,GAAW;QACrBsD,MAAM,EAAE7E,SAAS,CAACrD,KAAV,IAAmBqD,SAAS,CAAC2D,KAA7B,IAAsC3D,SAAS,CAAClF,GADnC;QAErByN,QAAQ,YAAUvI,SAAS,CAAClF,GAFP;QAGrBgK,IAAI,EAAE,cAACnH,KAAD;UAAA,oBAAgBd,wCAAC,WAAD,eAAiBc,KAAjB;YAAwB,MAAM,EAAE,gBAACzB,KAAD;cAAA,OAAgBm2C,GAAG,CAACC,QAAJ,CAAap2C,KAAb,CAAhB;;aAAhD;;OAHR;;MAMA,IAAI8D,SAAS,CAAC7D,IAAV,KAAmB,QAAnB,IAA+B6D,SAAS,CAAC2N,OAAV,KAAsB,QAAzD,EAAmE;QACjEpM,MAAM,CAACqF,MAAP,GAAgB+R,kBAAhB;QACCpX,MAAc,CAAC/D,OAAf,GAAyBwC,SAAS,CAACkE,IAAV,CAAe2J,MAAxC;;;MAGHlJ,OAAO,CAAClK,IAAR,CAAa8G,MAAb;;GAfJ;EAmBA,OAAOoD,OAAP;AACD;;SCtBe4tC;MAAmBjoC,YAAAA;MAAS3M;;EAC1C,IAAMgH,OAAO,GAAsB2F,IAAI,IAAI6nC,gBAAgB,CAAC7nC,IAAD,CAA3D;EAEA,oBAAOzN,wCAAC,KAAD,eAAWc,KAAX;IAAkB,OAAO,EAAEgH;KAAlC;AACD;;SCXe6tC;yBACdjxC;MAAUwB,0BAAAA;MAAaC,wBAAAA;MAAW4V,8BAAAA;MAAiB9V,iBAAAA;;uBAEhCjG,yBAAK,CAAC6F,OAAN,CAAc;IAC/B,IAAInD,GAAG,GAAGqZ,eAAe,CAACte,MAAhB,GAAyBse,eAAe,CAAC,CAAD,CAAf,CAAmB/K,MAAnB,CAA0B/K,EAA1B,CAAzB,GAAyD,CAAnE;IACA,IAAIzD,GAAG,GAAGuZ,eAAe,CAACte,MAAhB,GAAyBse,eAAe,CAAC,CAAD,CAAf,CAAmB/K,MAAnB,CAA0B/K,EAA1B,CAAzB,GAAyD,CAAnE;IACA8V,eAAe,CAACxJ,OAAhB,CAAwB,UAACpL,GAAD;MACtBzE,GAAG,GAAGH,IAAI,CAACG,GAAL,CAASyE,GAAG,CAAC6J,MAAJ,CAAW/K,EAAX,CAAT,EAAyBvD,GAAzB,CAAN;MACAF,GAAG,GAAGD,IAAI,CAACC,GAAL,CAAS2E,GAAG,CAAC6J,MAAJ,CAAW/K,EAAX,CAAT,EAAyBzD,GAAzB,CAAN;KAFF;IAIA,OAAO,CAACE,GAAD,EAAMF,GAAN,CAAP;GAPiB,EAQhB,CAACyD,EAAD,EAAK8V,eAAL,CARgB;MAAZrZ;MAAKF;;EAUZ,oBACExC,+FACEA;IACE,IAAI,EAAC,OADP;IAEE,GAAG,EAAE0C,GAFP;IAGE,GAAG,EAAEF,GAHP;IAIE,KAAK,EAAE0D,WAAW,IAAIxD,GAJxB;IAKE,QAAQ,EAAE,kBAAC8T,CAAD;MACRrQ,SAAS,CAACspB,QAAQ,CAACjZ,CAAC,CAACxX,MAAF,CAASK,KAAV,EAAiB,EAAjB,CAAT,CAAT;;IAPN,eAUEW;IAAQ,OAAO,EAAE;MAAA,OAAMmG,SAAS,CAACtB,SAAD,CAAf;;WAVnB,CADF;AAcD;;SCzBe+wC;MAAY/uC,YAAAA;MAAMgvC,YAAAA;MAAMlvC,eAAAA;MAAS0rC,gBAAAA;MAAUyD,eAAAA;MAASr2C,gBAAAA;MAAUM,iBAAAA;MAAWg2C,aAAAA;EACvF,oBACE/1C;IACE,KAAK,EAAE,gBADT;IAEE,SAAS,EAAEC,UAAU,CAAC,yBAAD,EAA4BoyC,QAAQ,GAAG,SAAH,GAAe,EAAnD,EAAuDwD,IAAI,GAAG,OAAH,GAAa,EAAxE,EAA4E91C,SAA5E;kBAErBC;IACE,KAAK,EAAE,YADT;IAEE,SAAS,EAAEC,UAAU,CAAC,iBAAD,EAAoB61C,OAAO,GAAG,UAAH,GAAgB,EAA3C,EAA+CzD,QAAQ,GAAG,SAAH,GAAe,EAAtE,EAA0EwD,IAAI,GAAG,OAAH,GAAa,EAA3F,CAFvB;IAGE,OAAO,EAAElvC;KAERE,IAAI,iBAAI7G;IAAG,SAAS,EAAEC,UAAU,CAAC1B,SAAS,CAACsG,SAAD,EAAYgC,IAAZ,CAAV,EAA6B,sBAA7B;IALnC,eAME7G;IAAM,SAAS,EAAE;KAA0BP,QAA3C,CANF,EAOGs2C,KAPH,CAJF,eAaE/1C;IAAK,SAAS,EAAEC,UAAU,CAAC,wBAAD,EAA2BoyC,QAAQ,GAAG,SAAH,GAAe,EAAlD;IAb5B,CADF;AAiBD;SAoBe2D;MACdhD,cAAAA;MACAp0C,gBAAAA;0BACAq3C;MAAAA,iCAAQ;MACRx2C,iBAAAA;MACAy2C,uBAAAA;MACAC,kBAAAA;2BACAC;MAAAA,mCAASR;MACT71C,kBAAAA;MACA4G,iBAAAA;yBACAvC;MAAAA,+BAAO,UAACC,CAAD;IAAA,OAAOA,CAAP;;MACJgyC;;EAEH,oBACEr2C;IAAK,eAAa,WAAlB;IAA+B,SAAS,eAAaD,SAArD;IAAkE,KAAK,EAAEizC;kBACvEhzC,kEACEA;IAAK,SAAS,EAAC;kBACbA;IAAK,SAAS,EAAC;kBACbA;IAAK,SAAS,EAAC;IADjB,EAEGi2C,KAAK,CACHlvC,MADF,CACS,UAACoF,IAAD;IAAA,OAAUA,IAAI,CAACrM,KAAL,IAAcqM,IAAI,CAACtF,IAA7B;GADT,EAEEtF,GAFF,CAEM,UAAC4K,IAAD,EAAOD,KAAP;IACH,oBACElM,wCAAC,MAAD;MACE,GAAG,EAAEkM,KADP;MAEE,IAAI,EAAEC,IAAI,CAAC0pC,IAFb;MAGE,QAAQ,EAAE,CAAAj3C,OAAO,QAAP,YAAAA,OAAO,CAAEgI,MAAT,MAAoBuF,IAAI,CAACvF,MAHrC;MAIE,KAAK,EAAEuF,IAAI,CAACmqC,KAJd;MAKE,OAAO,EAAE;QACP3vC,QAAO,IAAIA,QAAO,CAACwF,IAAD,CAAlB;;OAEEkqC,eARN,EASMlqC,IATN,GAWG/H,IAAI,CAAC+H,IAAI,CAACrM,KAAL,IAAc,EAAf,CAXP,CADF;GAHH,CAFH,EAqBGq2C,SAAS,iBAAIn2C,wCAAC,SAAD,eAAeq2C,eAAf;IAAgC,OAAO,EAAEz3C;KArBzD,CADF,CADF,EA0BGs3C,cAAc,iBAAIl2C,wCAAC,cAAD,eAAoBq2C,eAApB;IAAqC,OAAO,EAAEz3C;KA1BnE,CADF,eA6BEoB;IAAK,KAAK,EAAE,UAAZ;IAAwB,SAAS,EAAE;KAChCP,QADH,CA7BF,CADF;AAmCD;;SCzFe82C,WAAWC;EACzB,IAAM7oC,GAAG,GAAG,CAAC8oC,eAAM,CAACC,aAAP,EAAD,CAAZ;;EAEA,IAAIC,cAAK,CAACC,SAAN,CAAgBJ,MAAhB,CAAJ,EAA6B;IAC3B7oC,GAAG,CAAC/P,IAAJ,CAAS,MAAT;GADF,MAEO,IAAI44C,MAAM,CAAChyC,QAAP,CAAgB,IAAhB,CAAJ,EAA2B;IAChCgyC,MAAM,GAAGA,MAAM,CAAC3xB,OAAP,CAAe,MAAf,EAAuB,GAAvB,CAAT;;;EAGFlX,GAAG,CAAC/P,IAAJ,CAAS44C,MAAT;EAEA,OAAO7oC,GAAG,CAACxP,IAAJ,CAAS,GAAT,CAAP;AACD;SAEe04C,aAAaL,QAAgBM;EAC3C,OAAO,CAACP,UAAU,CAACC,MAAD,CAAX,EAAqB,QAArB,EAA+BM,QAA/B,EAAyC/vC,MAAzC,CAAgDC,OAAhD,EAAyD7I,IAAzD,CAA8D,GAA9D,CAAP;AACD;SAEe44C,iBAAiBP,QAAgBQ;EAC/C,OAAO,CAACT,UAAU,CAACC,MAAD,CAAX,EAAqB,YAArB,EAAmCQ,YAAnC,EAAiDjwC,MAAjD,CAAwDC,OAAxD,EAAiE7I,IAAjE,CAAsE,GAAtE,CAAP;AACD;;ICtBY84C,WAAW,GAAG;;;;;;;;;;;;;;;;ICOdC,eAAe,GAAGC,uBAAY;IAC9BC,iBAAiB,GAAGD,uBAAY;IAChCE,iBAAiB,GAAGF,uBAAY;IAChCG,cAAc,GAAGH,uBAAY;IAE7BI,aAAa,GACxB,SADWA,aACX,CAACf,MAAD,EAAiBgB,UAAjB,EAAqCC,IAArC;EAAA,IAAqCA,IAArC;IAAqCA,IAArC,GAA4C7uC,wBAA5C;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACN,iBAAiB,CAACH,WAAD,CAAlB,CAAR;MAEA,IAAMtpC,GAAG,GAAG4oC,UAAU,CAACC,MAAD,CAAtB;MACA,IAAM3nC,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;;wCAEI;QAAA,uBACuBkB,MAAM,CAACyF,UAAP,CAAkBkjC,UAAlB,CADvB,iBACIljC,UADJ;UAGFA,UAAU,CAACR,YAAX,CAAwBlN,MAAxB,GAAiC6vC,eAAM,CAACC,aAAP,KAAyBpiC,UAAU,CAACR,YAAX,CAAwBlN,MAAlF;UAEA8wC,QAAQ,CAACL,iBAAiB,CAACJ,WAAD,EAAc;YAAE3iC,UAAU,EAAVA;WAAhB,CAAlB,CAAR;UACAmjC,IAAI,CAAC,IAAD,EAAOnjC,UAAP,CAAJ;;mBACOzI,OAAO;QACd6rC,QAAQ,CAACJ,cAAc,CAACL,WAAD,EAAc;UAAEprC,KAAK,EAALA;SAAhB,CAAf,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAhBJ;MAAA;;;AAAA;;;;ACDF,IAAMsN,oBAAkB,GAAyC,SAA3DA,kBAA2D;EAAA,OAAO;IACtEtN,KAAK,EAAE,IAD+D;IAEtExE,IAAI,EAAE,EAFgE;IAGtEgrC,QAAQ,EAAE;GAHqD;AAAA,CAAjE;;IAMasF,iBAAiB,GAAGC,wBAAa,sCAEzCV,eAAe,CAAC36B,QAAhB,EAFyC,IAEZ,UAACs7B,CAAD,EAAIC,EAAJ,EAAQv9B,KAAR;EAC5B,OAAOA,KAAK,EAAZ;AACD,CAJyC,iBAKzC68B,iBAAiB,CAAC76B,QAAlB,EALyC,IAKV,UAACjS,KAAD;EAAA,oBAC3BA,KAD2B;IAE9BuB,KAAK,EAAE,IAFuB;IAG9BxE,IAAI,EAAE,EAHwB;IAI9BgrC,QAAQ,EAAE;;AAJoB,CALU,iBAWzCgF,iBAAiB,CAAC96B,QAAlB,EAXyC,IAWV,UAACjS,KAAD;EAAA,IAAUgK,UAAV,QAAUA,UAAV;EAAA,oBAC3BhK,KAD2B;IAE9BuB,KAAK,EAAE,IAFuB;IAG9BxE,IAAI,EAAEiN,UAHwB;IAI9B+9B,QAAQ,EAAE;;AAJoB,CAXU,iBAiBzCiF,cAAc,CAAC/6B,QAAf,EAjByC,IAiBb,UAACjS,KAAD;EAAA,IAAUuB,KAAV,SAAUA,KAAV;EAAA,oBACxBvB,KADwB;IAE3BjD,IAAI,EAAE,EAFqB;IAG3BwE,KAAK,EAALA,KAH2B;IAI3BwmC,QAAQ,EAAE;;AAJiB,CAjBa,mBAwB5Cl5B,oBAxB4C,CAAb,CAyB/B89B,WAzB+B;;SCdjBc,WAAwCt5C,MAAc6L;EACpE,IAAIA,KAAJ,EAAW;IACT,OAAOA,KAAK,CAAC7L,IAAD,CAAZ;;;EAGF,OAAO,UAAC6L,KAAD;IAAA,OAAgCytC,UAAU,CAACt5C,IAAD,EAAO6L,KAAP,CAA1C;GAAP;AACD;IAEY0tC,WAAW,GAAG,SAAdA,WAAc,CAACv5C,IAAD,EAAe6L,KAAf;EAAA,OAA4D6C,uBAAG,CAAC4qC,UAAU,CAACt5C,IAAD,EAAO6L,KAAP,CAAX,EAA2B,OAA3B,CAA/D;AAAA;IAEd2tC,cAAc,GAAG,SAAjBA,cAAiB,CAACx5C,IAAD,EAAe6L,KAAf;EAAA,OAAuD6C,uBAAG,CAAC4qC,UAAU,CAACt5C,IAAD,EAAO6L,KAAP,CAAX,EAA2B,UAA3B,CAA1D;AAAA;SAEd4tC;;EACd,OAAO,UAAC5tC,KAAD;IACL,OAAO,CAAC,CAAC,0BAAMnC,IAAN,CAAW,UAAC1J,IAAD;MAClB,OAAO0O,uBAAG,CAAC7C,KAAD,EAAW7L,IAAX,gBAA4B0O,uBAAG,CAAC7C,KAAD,EAAW7L,IAAX,uBAA/B,CAAV;KADO,CAAT;GADF;AAKD;;ICjBY05C,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC7tC,KAAD;EAAA,OAC9BytC,UAAU,CAAkBd,WAAlB,EAA+B3sC,KAA/B,CAAV,CAAgDjD,IADlB;AAAA;;ICLnB+wC,MAAM,GAAG;;;;;;;;;;;;;;;;ICSTC,gBAAgB,GAAGlB,uBAAY;IAC/BmB,WAAW,GAAGnB,uBAAY;IAC1BoB,aAAa,GAAGpB,uBAAY;IAC5BqB,aAAa,GAAGrB,uBAAY;IAC5BsB,UAAU,GAAGtB,uBAAY;IACzBuB,UAAU,GAAGvB,uBAAY;;AAEtC,SAASwB,SAAT,CAAmBnC,MAAnB,EAAmCvwC,EAAnC;EACE,IAAM0H,GAAG,GAAGkpC,YAAY,CAACL,MAAD,EAASvwC,EAAT,CAAxB;EACA,OAAO,IAAIwwC,eAAJ,CAAW9oC,GAAX,CAAP;AACD;;IAEYirC,SAAS,GACpB,SADWA,SACX,CAACpC,MAAD,EAAiBM,QAAjB,EAAmCW,IAAnC;EAAA,IAAmCA,IAAnC;IAAmCA,IAAnC,GAA0C7uC,wBAA1C;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACW,gBAAgB,CAACD,MAAD,CAAjB,CAAR;MACAV,QAAQ,CAACa,aAAa,CAACH,MAAD,CAAd,CAAR;MAEA,IAAMvpC,MAAM,GAAG8pC,SAAS,CAACnC,MAAD,EAASM,QAAT,CAAxB;;wCAEI;QAAA,uBACmBjoC,MAAM,CAACgqC,UAAP,EADnB,iBACIjyC,MADJ;UAGF8wC,QAAQ,CAACH,aAAa,CAACf,MAAD,EAAS5vC,MAAM,CAACnI,IAAhB,CAAd,CAAR;UACAi5C,QAAQ,CAACc,aAAa,CAACJ,MAAD,EAAS;YAAExxC,MAAM,EAANA;WAAX,CAAd,CAAR;UACA6wC,IAAI,CAAC,IAAD,EAAO7wC,MAAP,CAAJ;;mBACOiF,OAAO;QACd6rC,QAAQ,CAACe,UAAU,CAACL,MAAD,EAAS;UAAEvsC,KAAK,EAALA;SAAX,CAAX,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAfJ;MAAA;;;AAAA;IAmBWitC,UAAU,GACrB,SADWA,UACX,CAACtC,MAAD,EAAiB5vC,MAAjB,EAA8B6wC,IAA9B;EAAA,IAA8BA,IAA9B;IAA8BA,IAA9B,GAAqC7uC,wBAArC;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACW,gBAAgB,CAACD,MAAD,CAAjB,CAAR;MACAV,QAAQ,CAACgB,UAAU,CAACN,MAAD,EAAS;QAAExxC,MAAM,EAANA;OAAX,CAAX,CAAR;MAEA,IAAMiI,MAAM,GAAG8pC,SAAS,CAACnC,MAAD,EAASrpC,uBAAG,CAACvG,MAAD,EAAS,UAAT,EAAqB,EAArB,CAAZ,CAAxB;;wCAEI;QAAA,uBACmBiI,MAAM,CAACiqC,UAAP,CAAkBlyC,MAAlB,CADnB,iBACIwzB,MADJ;UAEFsd,QAAQ,CAACc,aAAa,CAACJ,MAAD,EAAS;YAAExxC,MAAM,EAAEwzB;WAAnB,CAAd,CAAR;UACAqd,IAAI,CAAC,IAAD,EAAOrd,MAAP,CAAJ;;mBACOvuB,OAAO;QACd6rC,QAAQ,CAACe,UAAU,CAACL,MAAD,EAAS;UAAEvsC,KAAK,EAALA;SAAX,CAAX,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAbJ;MAAA;;;AAAA;IAiBWktC,YAAY,GAAG,SAAfA,YAAe,CAACvC,MAAD,EAAiBM,QAAjB,EAAmCW,IAAnC;MAAmCA;IAAAA,OAAO7uC;;;EACpE,iBAAc8uC,QAAd;IAAA;MACEA,QAAQ,CAACW,gBAAgB,CAACD,MAAD,CAAjB,CAAR;;;;;;;MASA,IAAMvpC,MAAM,GAAG8pC,SAAS,CAACnC,MAAD,EAASM,QAAT,CAAxB;;wCAEI;QAAA,uBACIjoC,MAAM,CAACkqC,YAAP,EADJ;UAEFrB,QAAQ,CAACY,WAAW,CAACF,MAAD,CAAZ,CAAR;UACAX,IAAI,CAAC,IAAD,CAAJ;;mBACO5rC,OAAO;QACd6rC,QAAQ,CAACe,UAAU,CAACL,MAAD,EAAS;UAAEvsC,KAAK,EAALA;SAAX,CAAX,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAlBJ;MAAA;;;AAqBD;;ACrED,IAAMsN,oBAAkB,GAAwB,SAA1CA,kBAA0C;EAAA,OAAoB;IAClEtN,KAAK,EAAE,IAD2D;IAElExE,IAAI,EAAE,EAF4D;IAGlEgrC,QAAQ,EAAE;GAHoC;AAAA,CAAhD;;IAMa2G,aAAa,GAAGpB,wBAAa,CAAc,EAAd,EAAkBz+B,oBAAlB,CAAb,CAC1BpE,EAD0B,CACvBujC,WADuB,EACV,UAACT,CAAD,EAASC,EAAT,EAAkBv9B,KAAlB;EAAA,OAAiCA,KAAK,EAAtC;AAAA,CADU,EAE1BxF,EAF0B,CAEvBsjC,gBAFuB,EAEL,UAAC/tC,KAAD;EAAA,oBACjBA,KADiB;IAEpBuB,KAAK,EAAE;;AAFa,CAFK,EAM1BkJ,EAN0B,CAMvBwjC,aANuB,EAMR,UAACjuC,KAAD;EAAA,oBACdA,KADc;IAEjBuB,KAAK,EAAE,IAFU;IAGjBxE,IAAI,EAAE,EAHW;IAIjBgrC,QAAQ,EAAE;;AAJO,CANQ,EAY1Bt9B,EAZ0B,CAYvB2jC,UAZuB,EAYX,UAACpuC,KAAD;EAAA,IAAU1D,MAAV,QAAUA,MAAV;EAAA,oBACX0D,KADW;IAEduB,KAAK,EAAE,IAFO;IAGdxE,IAAI,EAAET,MAHQ;IAIdyrC,QAAQ,EAAE;;AAJI,CAZW,EAkB1Bt9B,EAlB0B,CAkBvByjC,aAlBuB,EAkBR,UAACluC,KAAD;EAAA,IAAU1D,MAAV,SAAUA,MAAV;EAAA,oBACd0D,KADc;IAEjBuB,KAAK,EAAE,IAFU;IAGjBxE,IAAI,EAAET,MAHW;IAIjByrC,QAAQ,EAAE;;AAJO,CAlBQ,EAwB1Bt9B,EAxB0B,CAwBvByjC,aAxBuB,EAwBR,UAACluC,KAAD;EAAA,IAAU1D,MAAV,SAAUA,MAAV;EAAA,oBACd0D,KADc;IAEjBuB,KAAK,EAAE,IAFU;IAGjBxE,IAAI,EAAET,MAHW;IAIjByrC,QAAQ,EAAE;;AAJO,CAxBQ,EA8B1Bt9B,EA9B0B,CA8BvB0jC,UA9BuB,EA8BX,UAACnuC,KAAD;EAAA,IAAUuB,KAAV,SAAUA,KAAV;EAAA,oBACXvB,KADW;IAEdjD,IAAI,EAAE,EAFQ;IAGdwE,KAAK,EAALA,KAHc;IAIdwmC,QAAQ,EAAE;;AAJI,CA9BW,EAmCvB+F,MAnCuB;;ICbhBa,YAAY,GAAG,SAAfA,YAAe,CAAC3uC,KAAD;EAAA,OAA8CytC,UAAU,CAAcK,MAAd,EAAsB9tC,KAAtB,CAAV,CAAuCjD,IAArF;AAAA;;ICLf6xC,OAAO,GAAG;;;;;;;;;;;;;;;;ICOVC,YAAY,GAAGhC,uBAAY;IAC3BiC,cAAc,GAAGjC,uBAAY;IAC7BkC,cAAc,GAAGlC,uBAAY;IAI7BmC,WAAW,GAAGnC,uBAAY;IAE1BoC,UAAU,GACrB,SADWA,UACX,CAACtzC,EAAD,EAAawxC,IAAb;EAAA,IAAaA,IAAb;IAAaA,IAAb,GAAoB7uC,wBAApB;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACyB,YAAY,CAACD,OAAD,CAAb,CAAR;MACAxB,QAAQ,CAAC0B,cAAc,CAACF,OAAD,CAAf,CAAR;MAEA,IAAMvrC,GAAG,GAAG4oC,UAAU,CAACtwC,EAAD,CAAtB;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;;wCAEI;QAAA,uBACwC6rC,OAAO,CAACC,GAAR,CAAY,CAAC5qC,MAAM,CAAC6qC,WAAP,CAAmB;UAAEC,MAAM,EAAE;SAA7B,CAAD,EAAqC9qC,MAAM,CAACvD,gBAAP,EAArC,CAAZ,CADxC;UAAA,IACKsuC,OADL;cACctuC,gBADd;UAGFosC,QAAQ,CAAC2B,cAAc,CAACH,OAAD,EAAU;YAAEU,OAAO,EAAPA,OAAF;YAAWtuC,gBAAgB,EAAhBA;WAArB,CAAf,CAAR;UACAmsC,IAAI,CAAC,IAAD,EAAOmC,OAAP,EAAgBtuC,gBAAhB,CAAJ;;mBACOO,OAAO;QACd6rC,QAAQ,CAAC4B,WAAW,CAACJ,OAAD,EAAU;UAAErtC,KAAK,EAALA;SAAZ,CAAZ,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAfJ;MAAA;;;AAAA;;;;ACHF,IAAMsN,oBAAkB,GAAsC,SAAxDA,kBAAwD;EAAA,OAAO;IACnEtN,KAAK,EAAE,IAD4D;IAEnExE,IAAI,EAAE,EAF6D;IAGnEiE,gBAAgB,EAAE,EAHiD;IAInE+mC,QAAQ,EAAE;GAJkD;AAAA,CAA9D;;IAOawH,cAAc,GAAGjC,wBAAa,0CAEtCuB,YAAY,CAAC58B,QAAb,EAFsC,IAEZ,UAACs7B,CAAD,EAAIC,EAAJ,EAAQv9B,KAAR;EACzB,OAAOA,KAAK,EAAZ;AACD,CAJsC,mBAKtC6+B,cAAc,CAAC78B,QAAf,EALsC,IAKV,UAACjS,KAAD;EAAA,oBACxBA,KADwB;IAE3BuB,KAAK,EAAE,IAFoB;IAG3BxE,IAAI,EAAE,EAHqB;IAI3BiE,gBAAgB,EAAE,EAJS;IAK3B+mC,QAAQ,EAAE;;AALiB,CALU,mBAYtCgH,cAAc,CAAC98B,QAAf,EAZsC,IAYV,UAACjS,KAAD;EAAA,IAAUsvC,OAAV,QAAUA,OAAV;MAAmBtuC,gBAAnB,QAAmBA,gBAAnB;EAAA,oBACxBhB,KADwB;IAE3BuB,KAAK,EAAE,IAFoB;IAG3BxE,IAAI,EAAEuyC,OAHqB;IAI3BtuC,gBAAgB,EAAhBA,gBAJ2B;IAK3B+mC,QAAQ,EAAE;;AALiB,CAZU,mBAmBtCiH,WAAW,CAAC/8B,QAAZ,EAnBsC,IAmBb,UAACjS,KAAD;EAAA,IAAUuB,KAAV,SAAUA,KAAV;EAAA,oBACrBvB,KADqB;IAExBuB,KAAK,EAALA,KAFwB;IAGxBxE,IAAI,EAAE,EAHkB;IAIxBgrC,QAAQ,EAAE;;AAJc,CAnBa,qBA0BzCl5B,oBA1ByC,CAAb,CA2B5B+/B,OA3B4B;;IChBjBY,aAAa,GAAG,SAAhBA,aAAgB,CAACxvC,KAAD;EAAA,OAAgCytC,UAAU,CAAemB,OAAf,EAAwB5uC,KAAxB,CAAV,CAAyCjD,IAAzE;AAAA;IAEhB0yC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACzvC,KAAD;EAAA,OAAgCytC,UAAU,CAAemB,OAAf,EAAwB5uC,KAAxB,CAAV,CAAyCgB,gBAAzE;AAAA;;ICFzB0uC,WAAW,GAAG7C,uBAAY;IAC1B8C,WAAW,GAAG9C,uBAAY;IAC1B+C,QAAQ,GAAG/C,uBAAY;IACvBgD,UAAU,GAAGhD,uBAAY;IACzBiD,oBAAoB,GAAGjD,uBAAY;IACnCkD,cAAc,GAAGlD,uBAAY;IAC7BmD,iBAAiB,GAAGnD,uBAAY;IAChCoD,SAAS,GAAGpD,uBAAY;IACxBqD,SAAS,GAAGrD,uBAAY;;ICZxBsD,IAAI,GAAG;;;;AC+BpB,SAASthC,oBAAT;EACE,OAAO;IACLk7B,IAAI,EAAE,KADD;IAELhC,QAAQ,EAAE,KAFL;IAGLqI,IAAI,EAAE,IAHD;IAILC,aAAa,EAAE,KAJV;IAKLjoC,gBAAgB,EAAE,EALb;IAMLE,UAAU,EAAE,EANP;IAOLgoC,aAAa,EAAE,EAPV;IAQLhpC,KAAK,EAAE,EARF;IASLipC,KAAK,EAAE,EATF;IAULC,EAAE,EAAE,EAVC;IAWLjvC,KAAK,EAAE;GAXT;AAaD;;AAED,SAASkvC,0BAAT,CAAoCC,YAApC,EAAuET,SAAvE;EACE,OAAOzuC,MAAM,CAACwG,OAAP,CAAe0oC,YAAf,EAA6B9oC,MAA7B,CACL,UAACkoB,MAAD;IAAA;;IAAA,IAAU37B,IAAV;QAAgBoT,IAAhB;IAAA,oBACKuoB,MADL,6BAEG37B,IAFH,IAEU87C,SAAS,CAAC/1C,QAAV,CAAmBqN,IAAI,CAACC,GAAxB,CAFV;GADK,EAKL,EALK,CAAP;AAOD;;AAED,SAASmpC,YAAT,CAAsBD,YAAtB;EACE,OAAOlvC,MAAM,CAACE,IAAP,CAAYgvC,YAAZ,EAA0B9oC,MAA1B,CACL,UAACkoB,MAAD,EAAS37B,IAAT;IAAA;;IAAA,oBACK27B,MADL,6BAEG37B,IAFH,IAEUA,IAAI,KAAK,WAFnB;GADK,EAKL,EALK,CAAP;AAOD;;IAEYy8C,WAAW,GAAGtD,wBAAa,0CAEnCoC,WAAW,CAACz9B,QAAZ,EAFmC,cAEXjS,KAFW;EAGlC,oBACKA,KADL;IAEE+pC,IAAI,EAAE,IAFR;IAGE3hC,gBAAgB,EAAE,KAHpB;IAIE2/B,QAAQ,EAAE;;AAEb,CATmC,mBAUnC4H,WAAW,CAAC19B,QAAZ,EAVmC,cAUXjS,KAVW;MAUFowC,aAAAA;EAChC,oBACKpwC,KADL;IAEE+nC,QAAQ,EAAE,KAFZ;IAGEqI,IAAI,EAAJA,IAHF;IAIEC,aAAa,EAAE,IAJjB;IAKEG,EAAE,EAAEC,0BAA0B,CAACzwC,KAAK,CAACsH,KAAP,EAAc8oC,IAAI,CAAC9oC,KAAnB,CALhC;IAME/F,KAAK,EAAE;;AAEV,CAnBmC,mBAoBnCquC,QAAQ,CAAC39B,QAAT,EApBmC,cAoBdjS,KApBc;MAoBLuB,cAAAA;EAC7B,oBACKvB,KADL;IAEE+nC,QAAQ,EAAE,KAFZ;IAGEyI,EAAE,EAAEG,YAAY,CAAC3wC,KAAK,CAACsH,KAAP,CAHlB;IAIE/F,KAAK,EAALA;;AAEH,CA3BmC,mBA4BnCsuC,UAAU,CAAC59B,QAAX,EA5BmC,cA4BZjS,KA5BY;EA6BlC,oBACKA,KADL;IAEEowC,IAAI,EAAE,IAFR;IAGErI,QAAQ,EAAE,KAHZ;IAIEsI,aAAa,EAAE,KAJjB;IAKEG,EAAE,EAAEG,YAAY,CAAC3wC,KAAK,CAACsH,KAAP,CALlB;IAME/F,KAAK,EAAE;;AAEV,CArCmC,mBAsCnCuuC,oBAAoB,CAAC79B,QAArB,EAtCmC,cAsCFjS,KAtCE;MAsCOoI,yBAAAA;EACzC,oBACKpI,KADL;IAEEoI,gBAAgB,EAAhBA;;AAEH,CA3CmC,mBA4CnC2nC,cAAc,CAAC99B,QAAf,EA5CmC,cA4CRjS,KA5CQ;MA4CCsI,mBAAAA;EACnC,oBACKtI,KADL;IAEEsI,UAAU,EAAVA;;AAEH,CAjDmC,mBAkDnC4nC,SAAS,CAACj+B,QAAV,EAlDmC,cAkDbjS,KAlDa;MAkDJuwC,cAAAA;EAC9B,oBACKvwC,KADL;IAEEuwC,KAAK,EAALA;;AAEH,CAvDmC,mBAwDnCP,iBAAiB,CAAC/9B,QAAlB,EAxDmC,cAwDLjS,KAxDK;MAwDIswC,sBAAAA;EACtC,oBACKtwC,KADL;IAEEswC,aAAa,EAAbA;;AAEH,CA7DmC,mBA8DnCL,SAAS,CAACh+B,QAAV,EA9DmC,cA8DbjS,KA9Da;MA8DJsH,cAAAA;EAC9B,oBACKtH,KADL;IAEEsH,KAAK,EAALA;;AAEH,CAnEmC,kDAoE5BtH,KApE4B;EAqElC,IAAI,CAAChM,MAAM,CAAC68C,YAAP,CAAoBC,OAApB,CAA4B,YAA5B,CAAL,EAAgD;IAC9C,oBACK9wC,KADL;MAEEowC,IAAI,EAAE,IAFR;MAGErI,QAAQ,EAAE,KAHZ;MAIEsI,aAAa,EAAE,KAJjB;MAKEG,EAAE,EAAEG,YAAY,CAAC3wC,KAAK,CAACsH,KAAP,CALlB;MAME/F,KAAK,EAAE;;;;EAGX,OAAOvB,KAAP;AACD,CAhFmC,qBAkFtC6O,oBAlFsC,CAAb,CAmFzBshC,IAnFyB;;IC5DdY,UAAU,GAAG,SAAbA,UAAa,CAAC/wC,KAAD;EAAA,OAAgBytC,UAAU,CAAY0C,IAAZ,EAAkBnwC,KAAlB,CAA1B;AAAA;IAEbgxC,UAAU,GAAG,SAAbA,UAAa,CAAahxC,KAAb;EAAA,OAAqD6C,uBAAG,CAACkuC,UAAU,CAAC/wC,KAAD,CAAX,EAAoB,MAApB,CAAxD;AAAA;IAEbixC,WAAW,GAAG,SAAdA,WAAc,CAACjxC,KAAD;EAAA,OAA4C6C,uBAAG,CAACkuC,UAAU,CAAC/wC,KAAD,CAAX,EAAoB,OAApB,CAA/C;AAAA;IAEdkxC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAClxC,KAAD;EAAA,OAAyB6C,uBAAG,CAACkuC,UAAU,CAAC/wC,KAAD,CAAX,EAAoB,eAApB,CAA5B;AAAA;;SCRrBmxC,QAAQC,MAAiB7pC;EACvC,OAAO6pC,IAAI,CAACZ,EAAL,CAAQjpC,IAAR,CAAP;AACD;SAEe8pC,SAASD,MAAiB9pC;EACxCA,KAAK,GAAI,GAAgBjG,MAAhB,CAAuBiG,KAAvB,CAAT;EAEA,OAAO,CAAC,CAACA,KAAK,CAACzJ,IAAN,CAAW,UAAC0J,IAAD;IAAA,OAAU4pC,OAAO,CAACC,IAAD,EAAO7pC,IAAP,CAAjB;GAAX,CAAT;AACD;SAEe+pC,aAAaF,MAAiB9pC;MAAAA;IAAAA,QAAkB;;;EAC9D,IAAI8pC,IAAI,IAAIA,IAAI,CAACf,aAAjB,EAAgC;IAC9B,IAAI/oC,KAAK,CAACnU,MAAV,EAAkB;MAChB,OAAO,CAAC,CAACk+C,QAAQ,CAACD,IAAD,EAAO9pC,KAAP,CAAjB;;;IAEF,OAAO,IAAP;;;EAGF,OAAO,KAAP;AACD;SAEeiqC,oBAAoBH,MAAiBjuC,MAA4BmE;EAC/E,IAAIA,KAAK,IAAIA,KAAK,CAACnU,MAAnB,EAA2B;IACzB,IAAIm+C,YAAY,CAACF,IAAD,EAAO9pC,KAAP,CAAhB,EAA+B;MAC7B,OAAO,IAAP;;;IAGF,OAAOA,KAAK,CAACpN,QAAN,CAAe,OAAf,KAA2B2I,uBAAG,CAACM,IAAD,EAAO,OAAP,CAAH,KAAuBN,uBAAG,CAACuuC,IAAD,EAAO,UAAP,CAA5D;;;EAGF,OAAO,IAAP;AACD;;;;;;;;;;;;;;;;AC7BD,SAASI,yBAAT,CAAmCjB,KAAnC;EACE,OAAO/uC,MAAM,CAACkF,MAAP,CAAc6pC,KAAd,EAAqB3oC,MAArB,CACL,UAACkoB,MAAD,EAAS3sB,IAAT;IAAA;;IAAA,oBACK2sB,MADL,6BAEG3sB,IAAI,CAAChP,IAFR,IAEyBgP,IAAI,CAACiF,gBAAL,CAAsBR,MAAtB,CACrB,UAAC6pC,oBAAD,EAA4B/pC,MAA5B;MAAA;;MAAA,oBACK+pC,oBADL,6BAEG/pC,MAAM,CAAC1S,IAFV,IAEiB0S,MAAM,CAACJ,KAFxB;KADqB,EAKrB,EALqB,CAFzB;GADK,EAWL,EAXK,CAAP;AAaD;;AAED,SAASoqC,mBAAT,CAA6BnB,KAA7B;EACE,OAAO/uC,MAAM,CAACkF,MAAP,CAAc6pC,KAAd,EAAqB3oC,MAArB,CACL,UAACkoB,MAAD,EAAS3sB,IAAT;IAAA;;IAAA,oBACK2sB,MADL,6BAEG3sB,IAAI,CAAChP,IAFR,IAEyBgP,IAAI,CAACuE,MAAL,CAAYE,MAAZ,CACrB,UAACU,UAAD,EAAkBZ,MAAlB;MAAA;;MAAA,oBACKY,UADL,6BAEGZ,MAAM,CAAC1S,IAFV,IAEiB0S,MAAM,CAACJ,KAFxB;KADqB,EAKrB,EALqB,CAFzB;GADK,EAWL,EAXK,CAAP;AAaD;;IAEqBqqC,SAAtB,YAAsBA,SAAtB,CAAgCvE,QAAhC;EAAA;IACE,IAAMwE,UAAU,GAAGzF,eAAM,CAACC,aAAP,EAAnB;;sCAEI;MAAA,uBAIQD,eAAM,CAAC0F,iBAAP,CAA4BD,UAA5B,aAJR,iBACI9hB,MADJ;QAMF,IAAM1nB,gBAAgB,GAAGopC,yBAAyB,CAAC1hB,MAAM,CAACygB,KAAR,CAAlD;QACA,IAAMjoC,UAAU,GAAGopC,mBAAmB,CAAC5hB,MAAM,CAACygB,KAAR,CAAtC;QAEAnD,QAAQ,CAAC0C,oBAAoB,CAACK,IAAD,EAAO;UAAE/nC,gBAAgB,EAAhBA;SAAT,CAArB,CAAR;QACAglC,QAAQ,CAAC2C,cAAc,CAACI,IAAD,EAAO;UAAE7nC,UAAU,EAAVA;SAAT,CAAf,CAAR;QACA8kC,QAAQ,CAAC6C,SAAS,CAACE,IAAD,EAAO;UAAE7oC,KAAK,EAAEwoB,MAAM,CAACxoB;SAAvB,CAAV,CAAR;QACA8lC,QAAQ,CAAC8C,SAAS,CAACC,IAAD,EAAO;UAAEI,KAAK,EAAEzgB,MAAM,CAACygB;SAAvB,CAAV,CAAR;;;;;GAfJ;IAAA;;AAAA;;;;;;;;;;;;;;;;AClCA,SAASuB,sBAAT,CAAgCxB,aAAhC;EACE,OAAOA,aAAa,CAAC1oC,MAAd,CACL,UAACkoB,MAAD,EAAcpoB,MAAd;IAAA;;IAAA,oBACKooB,MADL,6BAEGpoB,MAAM,CAAC1S,IAFV,IAEiB0S,MAAM,CAACJ,KAFxB;GADK,EAKL,EALK,CAAP;AAOD;;IAEqByqC,gBAAtB,YAAsBA,gBAAtB,CAAuC3E,QAAvC;EAAA;IACE,IAAMwE,UAAU,GAAGzF,eAAM,CAACC,aAAP,EAAnB;;sCAEI;MAAA,uBACoBD,eAAM,CAAC0F,iBAAP,CAAyBD,UAAzB,CADpB,iBACII,OADJ;QAEF,IAAM1B,aAAa,GAAGwB,sBAAsB,CAACE,OAAO,CAACtqC,MAAT,CAA5C;QAEA0lC,QAAQ,CAAC4C,iBAAiB,CAACG,IAAD,EAAOG,aAAP,CAAlB,CAAR;;;;;GAPJ;IAAA;;AAAA;;ICVa2B,MAAM,GAAG,SAATA,MAAS;EAAA,iBAAa7E,QAAb;IAAA;6BACdjB,eAAM,CAAC8F,MAAP;QACN7E,QAAQ,CAACyC,UAAU,CAACM,IAAD,CAAX,CAAR;;KAFoB;MAAA;;;AAAA;;ICAT+B,OAAO,GAAG,SAAVA,OAAU,CAAC9B,IAAD;EAAA,OAAe,UAAChD,QAAD;IACpCjB,eAAM,CAAC+F,OAAP,CAAe9B,IAAf;IACAhD,QAAQ,CAACuC,WAAW,CAACQ,IAAD,EAAO;MAAEC,IAAI,EAAJA;KAAT,CAAZ,CAAR;GAFqB;AAAA;;;;;;;;;;;;;;;;ICKV+B,QAAQ,GACnB,SADWA,QACX,CAAChF,IAAD;EAAA,IAACA,IAAD;IAACA,IAAD,GAAQ7uC,wBAAR;;;EAAA,iBACO8uC,QADP;IAAA;;QAgBED,IAAI;;;MAdJC,QAAQ,CAACsC,WAAW,CAACS,IAAD,CAAZ,CAAR;;wCAEI;QAAA,uBACmBjB,OAAO,CAACC,GAAR,CAAY,CAAChD,eAAM,CAACiG,WAAP,EAAD,EAAuBT,SAAS,CAACvE,QAAD,CAAhC,EAA4C2E,gBAAgB,CAAC3E,QAAD,CAA5D,CAAZ,CADnB;UAAA,IACKgD,IADL;;UAAA,IAGEA,IAHF;YAIAhD,QAAQ,CAAC8E,OAAO,CAAC9B,IAAD,CAAR,CAAR;;YAEAhD,QAAQ,CAAC6E,MAAM,EAAP,CAAR;;;mBAEK1wC,OAAO;QACd6rC,QAAQ,CAACwC,QAAQ,CAACO,IAAD,EAAO;UAAE5uC,KAAK,EAALA;SAAT,CAAT,CAAR;;;;KAbJ;MAAA;;;AAAA;;ICPW8wC,UAAU,GAAG,SAAbA,UAAa,CAACl+C,IAAD,EAAe6L,KAAf;EAAA,OAAmDytC,UAAU,CAAYt5C,IAAZ,EAAkB6L,KAAlB,CAAV,CAAmCjD,IAAtF;AAAA;;;;;;;;;;;;;;;;ICKbu1C,cAAc,GAAGzF,uBAAY;IAC7B0F,WAAW,GAAG1F,uBAAY;IAC1B2F,WAAW,GAAG3F,uBAAY;IAC1B4F,QAAQ,GAAG5F,uBAAY;IACvB6F,SAAS,GAAG7F,uBAAY;IACxB8F,QAAQ,GAAG9F,uBAAY;;AAEpC,SAAS+F,SAAT,CAAmBzvC,IAAnB,EAA8CxH,EAA9C;EACE,OAAOwH,IAAI,IAAIA,IAAI,CAACgE,UAAb,IAA2B5T,KAAK,CAACC,OAAN,CAAc2P,IAAI,CAACgE,UAAnB,CAA3B,IAA6DhE,IAAI,CAACgE,UAAL,CAAgBhU,MAA7E,IAAuFgQ,IAAI,CAACqE,GAAL,KAAa7L,EAA3G;AACD;;IAEYk3C,OAAO,GAClB,SADWA,OACX,CAAC1+C,IAAD,EAAewH,EAAf,EAAwBwxC,IAAxB;EAAA,IAAexxC,EAAf;IAAeA,EAAf,GAAoB,EAApB;;;EAAA,IAAwBwxC,IAAxB;IAAwBA,IAAxB,GAA+B7uC,wBAA/B;;;EAAA,iBACO8uC,QADP,EACsB0F,QADtB;IAAA;MAEE1F,QAAQ,CAACkF,cAAc,CAACn+C,IAAD,CAAf,CAAR;;MAEA,IAAMgP,IAAI,GAAGkvC,UAAU,CAACl+C,IAAD,EAAO2+C,QAAQ,EAAf,CAAvB;;MAEA,IAAIF,SAAS,CAACzvC,IAAD,EAAOxH,EAAP,CAAb,EAAyB;QACvB;;;MAGF,IAAM0H,GAAG,GAAG4oC,UAAU,CAACtwC,EAAD,CAAtB;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;MAEA+pC,QAAQ,CAACmF,WAAW,CAACp+C,IAAD,EAAO;QAAEwH,EAAE,EAAFA,EAAF;QAAM0H,GAAG,EAAHA;OAAb,CAAZ,CAAR;;wCAEI;QAAA,uBACiBkB,MAAM,CAACwuC,QAAP,EADjB,iBACI5vC,IADJ;UAGFiqC,QAAQ,CAACoF,WAAW,CAACr+C,IAAD,EAAO;YAAEgP,IAAI,EAAJA,IAAF;YAAQE,GAAG,EAAHA;WAAf,CAAZ,CAAR;UACA+pC,QAAQ,CAAC6B,UAAU,CAAC9rC,IAAI,CAACqE,GAAN,CAAX,CAAR;UACA2lC,IAAI,CAAC,IAAD,EAAOhqC,IAAP,CAAJ;;mBACO5B,OAAO;QACd6rC,QAAQ,CAACqF,QAAQ,CAACt+C,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAT,CAAR;QACA4rC,IAAI,CAAC;UAAE5rC,KAAK,EAALA;SAAH,CAAJ;;;;KAvBJ;MAAA;;;AAAA;IA2BWyxC,QAAQ,GACnB,SADWA,QACX,CAAC7+C,IAAD,EAAegP,IAAf,EAA0CgqC,IAA1C;EAAA,IAA0CA,IAA1C;IAA0CA,IAA1C,GAAiD7uC,wBAAjD;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACkF,cAAc,CAACn+C,IAAD,CAAf,CAAR;MACAi5C,QAAQ,CAACuF,QAAQ,CAACx+C,IAAD,EAAO;QAAEgP,IAAI,EAAJA;OAAT,CAAT,CAAR;MAEA,IAAMxH,EAAE,GAAGwH,IAAI,CAACqE,GAAL,IAAY,EAAvB;MACA,IAAMnE,GAAG,GAAG4oC,UAAU,CAACtwC,EAAD,CAAtB;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;;wCAEI;QAAA,uBACmBkB,MAAM,CAACyuC,QAAP,CAAgB7vC,IAAhB,CADnB,iBACI2sB,MADJ;UAEFsd,QAAQ,CAACoF,WAAW,CAACr+C,IAAD,EAAO;YAAEgP,IAAI,EAAE2sB,MAAR;YAAgBzsB,GAAG,EAAE4oC,UAAU,CAACnc,MAAM,CAACtoB,GAAR;WAAtC,CAAZ,CAAR;UACA2lC,IAAI,CAAC,IAAD,EAAOrd,MAAP,CAAJ;;mBACOvuB,OAAO;QACd6rC,QAAQ,CAACqF,QAAQ,CAACt+C,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAT,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAfJ;MAAA;;;AAAA;IAmBW0xC,UAAU,GACrB,SADWA,UACX,CAAC9+C,IAAD,EAAewH,EAAf,EAA2BwxC,IAA3B;EAAA,IAA2BA,IAA3B;IAA2BA,IAA3B,GAAkC7uC,wBAAlC;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACkF,cAAc,CAACn+C,IAAD,CAAf,CAAR;MACA,IAAMkP,GAAG,GAAG4oC,UAAU,CAACtwC,EAAD,CAAtB;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;;wCAEI;QAAA,uBACIkB,MAAM,CAAC0uC,UAAP,EADJ;UAEF7F,QAAQ,CAACsF,SAAS,CAACv+C,IAAD,CAAV,CAAR;UACAg5C,IAAI;;mBACG5rC,OAAO;QACd6rC,QAAQ,CAACqF,QAAQ,CAACt+C,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAT,CAAR;QACA4rC,IAAI,CAAC;UAAE5rC,KAAK,EAALA;SAAH,CAAJ;;;;KAZJ;MAAA;;;AAAA;;;;ACxDF,IAAMsN,oBAAkB,GAAmC,SAArDA,kBAAqD;EAAA,OAAO;IAChElT,EAAE,EAAE,EAD4D;IAEhEosC,QAAQ,EAAE,KAFsD;IAGhEmL,WAAW,EAAE,CAHmD;IAIhEn2C,IAAI,EAAE,EAJ0D;IAKhEsG,GAAG,EAAE,EAL2D;IAMhE9B,KAAK,EAAE;GANkD;AAAA,CAA3D;;IASa4xC,WAAW,GAAG7F,wBAAa,0CAEnCoF,SAAS,CAACzgC,QAAV,EAFmC,IAEZ,UAACs7B,CAAD,EAAIC,EAAJ,EAAQv9B,KAAR;EAAA,OAAkBA,KAAK,EAAvB;AAAA,CAFY,mBAGnCqiC,cAAc,CAACrgC,QAAf,EAHmC,IAGP,UAACjS,KAAD;EAAA,oBACxBA,KADwB;IAE3BuB,KAAK,EAAE;;AAFoB,CAHO,mBAOnCgxC,WAAW,CAACtgC,QAAZ,EAPmC,IAOV,UAACjS,KAAD;EAAA,IAAUrE,EAAV,QAAUA,EAAV;MAAc0H,GAAd,QAAcA,GAAd;EAAA,oBACrBrD,KADqB;IAExB+nC,QAAQ,EAAE,IAFc;IAGxBpsC,EAAE,EAAFA,EAHwB;IAIxB0H,GAAG,EAAHA,GAJwB;IAKxBtG,IAAI,EAAE,EALkB;IAMxBwE,KAAK,EAAE;;AANiB,CAPU,mBAenCixC,WAAW,CAACvgC,QAAZ,EAfmC,IAeV,UAACjS,KAAD;EAAA,IAAUmD,IAAV,SAAUA,IAAV;MAAgBE,GAAhB,SAAgBA,GAAhB;EAAA,oBACrBrD,KADqB;IAExB+nC,QAAQ,EAAE,KAFc;IAGxBpsC,EAAE,EAAEwH,IAAI,CAACqE,GAHe;IAIxBzK,IAAI,EAAEoG,IAJkB;IAKxBE,GAAG,EAAEA,GAAG,IAAIrD,KAAK,CAACqD,GALM;IAMxB9B,KAAK,EAAE;;AANiB,CAfU,mBAuBnCkxC,QAAQ,CAACxgC,QAAT,EAvBmC,IAuBb,UAACjS,KAAD,EAAQozC,OAAR;EAAA,oBAClBpzC,KADkB;IAErBuB,KAAK,EAAE6xC,OAAO,CAAC7xC,KAFM;IAGrBwmC,QAAQ,EAAE;;AAHW,CAvBa,mBA4BnC4K,QAAQ,CAAC1gC,QAAT,EA5BmC,IA4Bb,UAACjS,KAAD;EAAA,IAAUmD,IAAV,SAAUA,IAAV;MAAgBE,GAAhB,SAAgBA,GAAhB;EAAA,oBAClBrD,KADkB;IAErBjD,IAAI,EAAEoG,IAFe;IAGrBE,GAAG,EAAHA,GAHqB;IAIrB0kC,QAAQ,EAAE;;AAJW,CA5Ba,qBAmCtCl5B,oBAnCsC;;SCtBxBwkC,MAAM9gC;MAAAA;IAAAA,MAAW;;;EAC/B,OAAO/Q,MAAM,CAACwG,OAAP,CAAeuK,GAAf,EAAoB3K,MAApB,CAA2B,UAAC2K,GAAD;QAAO5e;QAAK2/C;;IAC5C,IAAIA,KAAK,KAAK/4C,SAAd,EAAyB;MAAA;;MACvB,oBACKgY,GADL,6BAEG5e,GAFH,IAES2/C,KAFT;;;IAMF,OAAO/gC,GAAP;GARK,EASJ,EATI,CAAP;AAUD;;SCAeghC;MAAmBC,aAAAA;2BAAO55C;MAAAA,sCAAW;4BAAIF;MAAAA,wCAAY;MAAG+5C,cAAAA;MAAQj1C,eAAAA;MAASK,cAAAA;;EACvF,IAAM60C,aAAa,gBACdL,KAAK,CAACG,KAAD,CADS;IAEjBzN,KAAK,EAAEnsC,QAFU;IAGjB+5C,IAAI,EAAEj6C,SAAS,GAAGE;IAHpB;;EAMA,IAAI65C,MAAM,IAAIA,MAAM,CAACtgD,MAArB,EAA6B;IAC3BugD,aAAa,CAACD,MAAd,GAAuBlgD,KAAK,CAACC,OAAN,CAAcigD,MAAd,IAAwBA,MAAM,CAAC5/C,IAAP,CAAY,GAAZ,CAAxB,GAA2C4/C,MAAlE;;;EAGF,IAAIj1C,OAAO,IAAIA,OAAO,CAACrL,MAAvB,EAA+B;IAC7BqL,OAAO,CAACyJ,OAAR,CAAgB,UAACxL,MAAD;MACd,IAAIA,MAAM,CAAC1H,KAAX,EAAkB;QAChB2+C,aAAa,CAAIj3C,MAAM,CAACd,EAAX,aAAb,GAAuC,IAAImc,MAAJ,CAAWrb,MAAM,CAAC1H,KAAlB,EAAyB,IAAzB,EAA+Bkd,QAA/B,EAAvC;;KAFJ;;;EAOF,IAAIpT,MAAM,IAAIA,MAAM,CAAC1L,MAArB,EAA6B;IAC3BugD,aAAa,CAACt1B,IAAd,GAAqB,CAACvf,MAAM,CAAC,CAAD,CAAN,CAAU+0C,IAAV,GAAiB,GAAjB,GAAuB,EAAxB,IAA8B/0C,MAAM,CAAC,CAAD,CAAN,CAAUlD,EAA7D;;;EAGF,OAAO+3C,aAAP;AACD;;IChCYG,WAAW,GAAG,SAAdA,WAAc,CAAC1/C,IAAD,EAAe6L,KAAf;EAAA,OAA8BytC,UAAU,CAAat5C,IAAb,EAAmB6L,KAAnB,CAAV,CAAoCjD,IAAlE;AAAA;IAEd+2C,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC3/C,IAAD,EAAe6L,KAAf;EAAA,OAA8BytC,UAAU,CAAat5C,IAAb,EAAmB6L,KAAnB,CAAV,CAAoC+zC,UAAlE;AAAA;;;;;;;;;;;;;;;;ICIxBC,UAAU,GAAGnH,uBAAY;IACzBoH,YAAY,GAAGpH,uBAAY;IAG3BqH,YAAY,GAAGrH,uBAAY;IAC3BsH,SAAS,GAAGtH,uBAAY;IAIxBuH,QAAQ,GACnB,SADWA,QACX,CAACjgD,IAAD,EAAe4/C,UAAf,EAA0D5G,IAA1D;EAAA,IAA0DA,IAA1D;IAA0DA,IAA1D,GAA6E7uC,wBAA7E;;;EAAA,iBACO8uC,QADP,EACsB0F,QADtB;IAAA;MAEE1F,QAAQ,CAAC6G,YAAY,CAAC9/C,IAAD,EAAO;QAAE4/C,UAAU,EAAVA;OAAT,CAAb,CAAR;MAEA,IAAMxvC,MAAM,GAAG,IAAI4nC,eAAJ,CAAcA,eAAM,CAACC,aAAP,EAAd,WAAf;MACA,IAAMsH,aAAa,GAAGH,gBAAgB,CAACO,qBAAqB,CAAC3/C,IAAD,EAAO2+C,QAAQ,EAAf,CAAtB,CAAtC;;wCAEI;QAAA,uBACiCvuC,MAAM,CAAC8vC,SAAP,CAAiB;UAClDhF,MAAM,EAAEqE;SADyB,CADjC,iBACI5jB,MADJ;UAIFsd,QAAQ,CAAC8G,YAAY,CAAC//C,IAAD,EAAO;YAAEo8C,KAAK,EAAEzgB;WAAhB,CAAb,CAAR;UACAqd,IAAI,CAAC,IAAD,EAAOrd,MAAP,CAAJ;;mBACOvuB,OAAO;QACd6rC,QAAQ,CAAC+G,SAAS,CAAChgD,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAV,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAfJ;MAAA;;;AAAA;IAmBW+yC,YAAY,GAAG,SAAfA,YAAe,CAACngD,IAAD,EAAeg5C,IAAf;MAAeA;IAAAA,OAAO7uC;;;EAChD,iBAAc8uC,QAAd,EAA6B0F,QAA7B;IAAA;MACE,IAAMiB,UAAU,GAAGD,qBAAqB,CAAC3/C,IAAD,EAAO2+C,QAAQ,EAAf,CAAxC;MACA,uBAAOsB,QAAQ,CAACjgD,IAAD,EAAO4/C,UAAP,EAAmB5G,IAAnB,CAAR,CAAiCC,QAAjC,EAA2C0F,QAA3C,CAAP;KAFF;MAAA;;;AAID;;ACvBD,IAAMjkC,oBAAkB,GAAG,SAArBA,kBAAqB;gCAA+E;4BAA5EnV;MAAAA,wCAAY;2BAAGE;MAAAA,sCAAW;wBAAI45C;MAAAA,gCAAQ;yBAAIC;MAAAA,kCAAS;yBAAI50C;MAAAA,kCAAS;;EAC5F,OAAO;IACL0C,KAAK,EAAE,IADF;IAELwmC,QAAQ,EAAE,KAFL;IAGLgM,UAAU,EAAE;MACVn6C,QAAQ,EAARA,QADU;MAEVF,SAAS,EAATA,SAFU;MAGVD,SAAS,EAAE,CAHD;MAIV+5C,KAAK,EAALA,KAJU;MAKVC,MAAM,EAANA,MALU;MAMV50C,MAAM,EAANA,MANU;MAOVL,OAAO,EAAE;KAVN;IAYLzB,IAAI,EAAE;GAZR;AAcD,CAfD;;IAiBaw3C,YAAY,GAAGjH,wBAAa,CAAa,EAAb,EAAiBz+B,oBAAjB,CAAb,CACzBpE,EADyB,CACtBupC,UADsB,EACV,UAACzG,CAAD,EAASC,EAAT,EAAkBv9B,KAAlB;EACd,OAAOA,KAAK,EAAZ;AACD,CAHyB,EAIzBxF,EAJyB,CAItBwpC,YAJsB,EAIR,UAACj0C,KAAD;MAAsB+zC,mBAAAA;EACtC,oBACK/zC,KADL;IAEE+zC,UAAU,eACL/zC,KAAK,CAAC+zC,UADD,EAELA,UAFK,CAFZ;IAMExyC,KAAK,EAAE,IANT;IAOExE,IAAI,EAAE,EAPR;IAQEgrC,QAAQ,EAAE;;AAEb,CAfyB,EAgBzBt9B,EAhByB,CAgBtBypC,YAhBsB,EAgBR,UAACl0C,KAAD;MAAsBuwC,cAAAA;EACtC,IAAMjK,KAAK,GAAGiK,KAAK,CAACiE,WAApB;EACA,IAAM/6C,SAAS,GAAGxB,IAAI,CAACumB,IAAL,CAAU8nB,KAAK,IAAItmC,KAAK,CAAC+zC,UAAN,CAAiBn6C,QAAjB,IAA6B,EAAjC,CAAf,CAAlB;EAEA,OAAO22C,KAAK,CAACiE,WAAb;EAEA,oBACKx0C,KADL;IAEEjD,IAAI,EAAEwzC,KAFR;IAGExI,QAAQ,EAAE,KAHZ;IAIEgM,UAAU,eACL/zC,KAAK,CAAC+zC,UADD;MAERt6C,SAAS,EAATA,SAFQ;MAGRg7C,WAAW,EAAEnO;;;AAGlB,CAhCyB,EAiCzB77B,EAjCyB,CAiCtB0pC,SAjCsB,EAiCX,UAACn0C,KAAD;MAAeuB,cAAAA;EAC5B,oBACKvB,KADL;IAEEuB,KAAK,EAALA,KAFF;IAGEwmC,QAAQ,EAAE;;AAEb,CAvCyB;;;;;;;;;;;;;;;;IC9Bf2M,oBAAoB,GAAG7H,uBAAY;IACnC8H,iBAAiB,GAAG9H,uBAAY;IAChC+H,cAAc,GAAG/H,uBAAY;IAC7BgI,iBAAiB,GAAGhI,uBAAY;IAChCiI,cAAc,GAAGjI,uBAAY;IAC7BkI,eAAe,GAAGlI,uBAAY;IAE9BmI,aAAa,GACxB,SADWA,aACX,CAAC7gD,IAAD,EAAe+3C,MAAf,EAA+BvwC,EAA/B,EAA2CwxC,IAA3C;EAAA,IAA2CA,IAA3C;IAA2CA,IAA3C,GAAkD7uC,wBAAlD;;;EAAA,iBACO8uC,QADP,EACsB0F,QADtB;IAAA;;MAGE,IAAIA,QAAQ,GAAGn3C,EAAX,KAAkBA,EAAtB,EAA0B;QACxB;;;MAGF,IAAM0H,GAAG,GAAGopC,gBAAgB,CAACP,MAAD,EAASvwC,EAAT,CAA5B;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;MAEA+pC,QAAQ,CAACsH,oBAAoB,CAACvgD,IAAD,CAArB,CAAR;MACAi5C,QAAQ,CAACuH,iBAAiB,CAACxgD,IAAD,EAAO;QAAEwH,EAAE,EAAFA,EAAF;QAAMuwC,MAAM,EAANA,MAAN;QAAc7oC,GAAG,EAAHA;OAArB,CAAlB,CAAR;;wCAEI;QAAA,uBACmBkB,MAAM,CAAC0wC,cAAP,EADnB,iBACInlB,MADJ;UAGFsd,QAAQ,CAACyH,iBAAiB,CAAC1gD,IAAD,EAAO;YAAE6O,UAAU,EAAE8sB,MAAd;YAAsBzsB,GAAG,EAAHA;WAA7B,CAAlB,CAAR;UACA8pC,IAAI,CAAC,IAAD,EAAOrd,MAAP,CAAJ;;mBACOvuB,OAAO;QACd6rC,QAAQ,CAAC0H,cAAc,CAAC3gD,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAf,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KApBJ;MAAA;;;AAAA;IAwBW2zC,cAAc,GACzB,SADWA,cACX,CAAC/gD,IAAD,EAAe+3C,MAAf,EAA+BnvC,IAA/B,EAAiDowC,IAAjD;EAAA,IAAiDA,IAAjD;IAAiDA,IAAjD,GAAwD7uC,wBAAxD;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACsH,oBAAoB,CAACvgD,IAAD,CAArB,CAAR;MACAi5C,QAAQ,CAACwH,cAAc,CAACzgD,IAAD,EAAO;QAAE6O,UAAU,EAAEjG,IAAd;QAAoBmvC,MAAM,EAANA;OAA3B,CAAf,CAAR;MAEA,IAAMvwC,EAAE,GAAGoB,IAAI,CAACyK,GAAhB;MACA,IAAMnE,GAAG,GAAGopC,gBAAgB,CAACP,MAAD,EAASvwC,EAAT,CAA5B;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;;wCAEI;QAAA,uBACmBkB,MAAM,CAAC2wC,cAAP,CAAsBn4C,IAAtB,CADnB,iBACI+yB,MADJ;UAEFsd,QAAQ,CACNyH,iBAAiB,CAAC1gD,IAAD,EAAO;YACtB6O,UAAU,EAAE8sB,MADU;YAEtBzsB,GAAG,EAAEopC,gBAAgB,CAACP,MAAD,EAASpc,MAAM,CAACtoB,GAAhB;WAFN,CADX,CAAR;UAMA2lC,IAAI,CAAC,IAAD,EAAOrd,MAAP,CAAJ;;mBACOvuB,OAAO;QACd6rC,QAAQ,CAAC0H,cAAc,CAAC3gD,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAf,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KApBJ;MAAA;;;AAAA;IAwBW4zC,gBAAgB,GAC3B,SADWA,gBACX,CAAChhD,IAAD,EAAe+3C,MAAf,EAA+BvwC,EAA/B,EAA2CwxC,IAA3C;EAAA,IAA2CA,IAA3C;IAA2CA,IAA3C,GAAkD7uC,wBAAlD;;;EAAA,iBACO8uC,QADP;IAAA;MAEEA,QAAQ,CAACsH,oBAAoB,CAACvgD,IAAD,CAArB,CAAR;MAEA,IAAMkP,GAAG,GAAGopC,gBAAgB,CAACP,MAAD,EAASvwC,EAAT,CAA5B;MACA,IAAM4I,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;;wCAEI;QAAA,uBACIkB,MAAM,CAAC4wC,gBAAP,EADJ;UAEF/H,QAAQ,CAAC2H,eAAe,CAAC5gD,IAAD,CAAhB,CAAR;UACAg5C,IAAI,CAAC,IAAD,CAAJ;;mBACO5rC,OAAO;QACd6rC,QAAQ,CAAC0H,cAAc,CAAC3gD,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAf,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAbJ;MAAA;;;AAAA;;;;AC3CF,IAAMsN,oBAAkB,GAAwB,SAA1CA,kBAA0C;EAAA,OAAO;IACrDq9B,MAAM,EAAE,EAD6C;IAErDvwC,EAAE,EAAE,EAFiD;IAGrDosC,QAAQ,EAAE,KAH2C;IAIrDmL,WAAW,EAAE,CAJwC;IAKrDn2C,IAAI,EAAE,EAL+C;IAMrDsG,GAAG,EAAE,EANgD;IAOrD9B,KAAK,EAAE;GAPuC;AAAA,CAAhD;;IAUa6zC,iBAAiB,GAAG9H,wBAAa,0CAEzCyH,eAAe,CAAC9iC,QAAhB,EAFyC,IAEZ,UAACs7B,CAAD,EAASC,EAAT,EAAkBv9B,KAAlB;EAAA,OAAiCA,KAAK,EAAtC;AAAA,CAFY,mBAGzCykC,oBAAoB,CAACziC,QAArB,EAHyC,IAGP,UAACjS,KAAD;EAAA,oBAC9BA,KAD8B;IAEjCuB,KAAK,EAAE;;AAF0B,CAHO,mBAOzCozC,iBAAiB,CAAC1iC,QAAlB,EAPyC,IAOV,UAACjS,KAAD;EAAA,IAAeksC,MAAf,QAAeA,MAAf;MAAuBvwC,EAAvB,QAAuBA,EAAvB;MAA2B0H,GAA3B,QAA2BA,GAA3B;EAAA,oBAC3BrD,KAD2B;IAE9BksC,MAAM,EAANA,MAF8B;IAG9BvwC,EAAE,EAAFA,EAH8B;IAI9B0H,GAAG,EAAHA,GAJ8B;IAK9BtG,IAAI,EAAE,EALwB;IAM9BgrC,QAAQ,EAAE;;AANoB,CAPU,mBAezC6M,cAAc,CAAC3iC,QAAf,EAfyC,IAeb,UAACjS,KAAD;EAAA,IAAeksC,MAAf,SAAeA,MAAf;MAAuBlpC,UAAvB,SAAuBA,UAAvB;MAAmCrH,EAAnC,SAAmCA,EAAnC;MAAuC0H,GAAvC,SAAuCA,GAAvC;EAAA,oBACxBrD,KADwB;IAE3BksC,MAAM,EAANA,MAF2B;IAG3BvwC,EAAE,EAAFA,EAH2B;IAI3B0H,GAAG,EAAEA,GAAG,IAAIrD,KAAK,CAACqD,GAJS;IAK3BtG,IAAI,EAAEiG,UALqB;IAM3B+kC,QAAQ,EAAE;;AANiB,CAfa,mBAuBzC8M,iBAAiB,CAAC5iC,QAAlB,EAvByC,IAuBV,UAACjS,KAAD;EAAA,IAAegD,UAAf,SAAeA,UAAf;MAA2BK,GAA3B,SAA2BA,GAA3B;EAAA,oBAC3BrD,KAD2B;IAE9BjD,IAAI,EAAEiG,UAFwB;IAG9BK,GAAG,EAAEA,GAAG,IAAIrD,KAAK,CAACqD,GAHY;IAI9B0kC,QAAQ,EAAE,KAJoB;IAK9BxmC,KAAK,EAAE;;AALuB,CAvBU,mBA8BzCuzC,cAAc,CAAC7iC,QAAf,EA9ByC,IA8Bb,UAACjS,KAAD;EAAA,IAAeuB,KAAf,SAAeA,KAAf;EAAA,oBACxBvB,KADwB;IAE3B+nC,QAAQ,EAAE,KAFiB;IAG3BxmC,KAAK,EAALA;;AAH2B,CA9Ba,qBAoC5CsN,oBApC4C;;IC5BjCwmC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAClhD,IAAD,EAAe6L,KAAf;EAAA,OAAmDytC,UAAU,CAAkBt5C,IAAlB,EAAwB6L,KAAxB,CAAV,CAAyCjD,IAA5F;AAAA;;ICDnBu4C,iBAAiB,GAAG,SAApBA,iBAAoB,CAACnhD,IAAD,EAAe6L,KAAf;EAAA,OAA8BytC,UAAU,CAAmBt5C,IAAnB,EAAyB6L,KAAzB,CAAV,CAA0CjD,IAAxE;AAAA;IAEpBw4C,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACphD,IAAD,EAAe6L,KAAf;EAAA,OAA8BytC,UAAU,CAAmBt5C,IAAnB,EAAyB6L,KAAzB,CAAV,CAA0C+zC,UAAxE;AAAA;;;;;;;;;;;;;;;;ICG9ByB,gBAAgB,GAAG3I,uBAAY;IAC/B4I,kBAAkB,GAAG5I,uBAAY;IACjC6I,kBAAkB,GAAG7I,uBAAY;IACjC8I,eAAe,GAAG9I,uBAAY;IAE9B+I,cAAc,GACzB,SADWA,cACX,CAACzhD,IAAD,EAAe+3C,MAAf,EAA+B6H,UAA/B,EAAqD5G,IAArD;EAAA,IAA+B4G,UAA/B;IAA+BA,UAA/B,GAAiD,EAAjD;;;EAAA,IAAqD5G,IAArD;IAAqDA,IAArD,GAA4D7uC,wBAA5D;;;EAAA,iBACO8uC,QADP,EACsB0F,QADtB;IAAA;MAEE1F,QAAQ,CAACqI,kBAAkB,CAACthD,IAAD,EAAO;QAAE+3C,MAAM,EAANA,MAAF;QAAU6H,UAAU,EAAVA;OAAjB,CAAnB,CAAR;MAEA,IAAM1wC,GAAG,GAAGopC,gBAAgB,CAACP,MAAD,CAA5B;MACA,IAAM3nC,MAAM,GAAG,IAAI4nC,eAAJ,CAAW9oC,GAAX,CAAf;MACA,IAAMqwC,aAAa,GAAGH,gBAAgB,CAACgC,2BAA2B,CAACphD,IAAD,EAAO2+C,QAAQ,EAAf,CAA5B,CAAtC;;wCAEI;QAAA,uBACwBvuC,MAAM,CAACsxC,eAAP,CAAuB;UAAExG,MAAM,EAAEqE;SAAjC,CADxB,iBACIjrC,WADJ;UAEF2kC,QAAQ,CAACsI,kBAAkB,CAACvhD,IAAD,EAAO;YAAEsU,WAAW,EAAXA;WAAT,CAAnB,CAAR;UACA0kC,IAAI,CAAC,IAAD,EAAO1kC,WAAP,CAAJ;;mBACOlH,OAAO;QACd6rC,QAAQ,CAACuI,eAAe,CAACxhD,IAAD,EAAO;UAAEoN,KAAK,EAALA;SAAT,CAAhB,CAAR;QACA4rC,IAAI,CAAC5rC,KAAD,CAAJ;;;;KAdJ;MAAA;;;AAAA;IAkBWu0C,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC3hD,IAAD,EAAe+3C,MAAf,EAA+BiB,IAA/B;MAA+BA;IAAAA,OAAO7uC;;;EACtE,iBAAc8uC,QAAd,EAA6B0F,QAA7B;IAAA;MACE,IAAMiB,UAAU,GAAGwB,2BAA2B,CAACphD,IAAD,EAAO2+C,QAAQ,EAAf,CAA9C;MACA,uBAAO8C,cAAc,CAACzhD,IAAD,EAAO+3C,MAAP,EAAe6H,UAAf,EAA2B5G,IAA3B,CAAd,CAA+CC,QAA/C,EAAyD0F,QAAzD,CAAP;KAFF;MAAA;;;AAID;;SCjBejkC;gCAAiG;4BAA5EnV;MAAAA,wCAAY;2BAAGE;MAAAA,sCAAW;wBAAI45C;MAAAA,gCAAQ;yBAAIC;MAAAA,kCAAS;yBAAI50C;MAAAA,kCAAS;;EACnG,OAAO;IACL0C,KAAK,EAAE,IADF;IAEL2qC,MAAM,EAAE,EAFH;IAGLnE,QAAQ,EAAE,KAHL;IAILgM,UAAU,EAAE;MACVn6C,QAAQ,EAARA,QADU;MAEVF,SAAS,EAATA,SAFU;MAGVD,SAAS,EAAE,CAHD;MAIV+5C,KAAK,EAALA,KAJU;MAKVC,MAAM,EAANA,MALU;MAMV50C,MAAM,EAANA;KAVG;IAYL9B,IAAI,EAAE;GAZR;AAcD;IAEYg5C,kBAAkB,GAAGzI,wBAAa,CAAmB,EAAnB,EAAuBz+B,oBAAvB,CAAb,CAC/BpE,EAD+B,CAC5B+qC,gBAD4B,EACV,UAACjI,CAAD,EAASC,EAAT,EAAkBv9B,KAAlB;EACpB,OAAOA,KAAK,EAAZ;AACD,CAH+B,EAI/BxF,EAJ+B,CAI5BgrC,kBAJ4B,EAIR,UAACz1C,KAAD;MAAe+zC,mBAAAA;MAAY7H,eAAAA;EACjD,oBACKlsC,KADL;IAEEksC,MAAM,EAANA,MAFF;IAGE6H,UAAU,eACL/zC,KAAK,CAAC+zC,UADD,EAELA,UAFK,CAHZ;IAOExyC,KAAK,EAAE,IAPT;IAQExE,IAAI,EAAE,EARR;IASEgrC,QAAQ,EAAE;;AAEb,CAhB+B,EAiB/Bt9B,EAjB+B,CAiB5BirC,kBAjB4B,EAiBR,UAAC11C,KAAD;MAA4ByI,oBAAAA;EAClD,IAAM69B,KAAK,GAAG79B,WAAW,CAAC+rC,WAA1B;EACA,IAAM/6C,SAAS,GAAGxB,IAAI,CAACumB,IAAL,CAAU8nB,KAAK,IAAItmC,KAAK,CAAC+zC,UAAN,CAAiBn6C,QAAjB,IAA6B,EAAjC,CAAf,CAAlB;EAEA,OAAO6O,WAAW,CAAC+rC,WAAnB;EAEA,oBACKx0C,KADL;IAEEjD,IAAI,EAAE0L,WAFR;IAGEs/B,QAAQ,EAAE,KAHZ;IAIEgM,UAAU,eACL/zC,KAAK,CAAC+zC,UADD;MAERt6C,SAAS,EAATA,SAFQ;MAGRg7C,WAAW,EAAEnO;;;AAGlB,CAjC+B,EAkC/B77B,EAlC+B,CAkC5BkrC,eAlC4B,EAkCX,UAAC31C,KAAD;MAAeuB,cAAAA;EAClC,oBACKvB,KADL;IAEEuB,KAAK,EAALA,KAFF;IAGEwmC,QAAQ,EAAE;;AAEb,CAxC+B;;IChBrBiO,oBAAoB,GAAGC,kBAAO,CACzCrF,WADyC,EAEzCrB,cAFyC,EAGzCb,aAHyC,EAIzCrB,iBAJyC,EAKzC8F,WAAW,CAAC,MAAD,CAL8B,EAMzCoB,YAAY,CAAC,OAAD,EAAU;EAAEf,KAAK,EAAE;IAAEx+C,IAAI,EAAE;;AAAjB,CAAV,CAN6B,EAOzCm+C,WAAW,CAAC,UAAD,CAP8B,EAQzCoB,YAAY,CAAC,WAAD,EAAc;EAAEf,KAAK,EAAE;IAAEx+C,IAAI,EAAE;;AAAjB,CAAd,CAR6B,EASzCogD,iBAAiB,CAAC,YAAD,CATwB,EAUzCW,kBAAkB,CAAC,aAAD,CAVuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/classnames/index.js","../src/utils/iconClass.ts","../src/utils/getEventValue.ts","../src/components/form-control/formControl.component.tsx","../src/components/select/select.component.tsx","../src/components/table/utils/getPageNumbers.ts","../src/components/pagination/pagination.component.tsx","../src/components/table/components/defaultArrowSort.component.tsx","../src/components/table/components/defaultCellHeader.component.tsx","../src/utils/callLast.ts","../src/components/input-text/inputText.component.tsx","../src/components/table/filters/defaultColumnFilter.component.tsx","../src/utils/stopPropagationWrapper.ts","../src/components/table/components/defaultOperationButton.component.tsx","../src/components/table/components/defaultCellOperations.component.tsx","../src/components/table/utils/useOperations.hook.tsx","../src/components/table/table.component.tsx","../src/components/actions-table/actionsTable.component.tsx","../src/components/alert/alert.component.tsx","../src/components/card/card.component.tsx","../src/components/form/useForm.hook.ts","../src/components/form/form.component.tsx","../src/components/form-access/formAccess.schema.ts","../src/components/form-access/formAccess.utils.ts","../src/components/form-access/formAccess.component.tsx","../src/components/form-action/formAction.component.tsx","../src/components/form-builder/formBuilder.component.tsx","../src/hooks/useTooltip.ts","../src/components/form-edit/formCtas.component.tsx","../src/components/input-tags/inputTags.component.tsx","../src/components/form-edit/formParameters.component.tsx","../src/components/form-edit/formEdit.reducer.ts","../src/components/form-edit/useFormEdit.hook.ts","../src/components/form-edit/formEdit.component.tsx","../src/components/form-settings/formSettings.schema.ts","../src/components/form-settings/formSettings.utils.ts","../src/components/form-settings/formSettings.component.tsx","../src/components/table/filters/selectColumnFilter.component.tsx","../../../node_modules/moment/moment.js","../src/components/forms-table/components/formCell.component.tsx","../src/components/forms-table/formsTable.component.tsx","../src/components/loader/loader.component.tsx","../src/components/modal/modal.component.tsx","../src/components/modal/removeModal.component.tsx","../src/components/react-component/reactComponent.component.tsx","../src/components/table/components/defaultCell.component.tsx","../src/components/table/utils/mapFormToColumns.tsx","../src/components/submissions-table/submissionsTable.component.tsx","../src/components/table/filters/sliderColumnFilter.component.tsx","../src/components/tabs/tabs.component.tsx","../src/utils/mapPagination.ts"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Templates } from \"formiojs\";\n\nexport function iconClass(iconset: string | undefined, name: string, spinning?: boolean): string {\n return Templates.current.iconClass(iconset || Templates.current.defaultIconset, name, spinning);\n}\n","export function getEventValue(event: any) {\n const { target } = event;\n\n if (event.target.multiple && event.target.selectedOptions) {\n return Array.from(event.target.selectedOptions, (option: any) => option.value);\n }\n\n return target.type === \"checkbox\" ? target.checked : target.value;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nexport interface FormControlProps {\n name: string;\n required?: boolean;\n label?: string;\n className?: string;\n description?: string | React.ComponentType | any;\n prefix?: JSX.Element | React.ComponentType | any;\n suffix?: JSX.Element | React.ComponentType | any;\n shadow?: boolean;\n}\n\nexport function FormControl({\n children,\n name,\n required,\n prefix,\n suffix,\n description,\n label,\n className\n}: React.PropsWithChildren<FormControlProps>) {\n return (\n <div data-testid={name && `form-group-${name}`} id={`form-group-${name || \"\"}`} className={classnames(\"form-group\", className)}>\n {label && (\n <label htmlFor={name} data-testid='form-control-label' className={`col-form-label ${required ? \" field-required\" : \"\"}`}>\n {label}\n </label>\n )}\n <div className={\"input-group\"}>\n {prefix && (\n <div className='input-group-prepend'>\n <span className='input-group-text' data-testid='form-control-prefix'>\n {prefix}\n </span>\n </div>\n )}\n {children}\n {suffix && (\n <div className='input-group-append'>\n <span className='input-group-text' data-testid='form-control-suffix'>\n {suffix}\n </span>\n </div>\n )}\n </div>\n {description && (\n <div data-testid='form-control-description' className='form-text text-muted'>\n {description}\n </div>\n )}\n </div>\n );\n}\n\nFormControl.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n children: PropTypes.any,\n required: PropTypes.bool,\n description: PropTypes.any\n};\n","import Choices from \"@formio/choices.js\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { ReactElement, useEffect, useRef } from \"react\";\n\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface SelectProps<T = any> extends FormControlProps {\n value?: any;\n size?: string;\n onChange?: (name: string, value: any) => void;\n placeholder?: string;\n choices: { label: string; value: T }[];\n layout?: \"html5\" | \"choicesjs\";\n multiple?: boolean;\n\n [key: string]: any;\n}\n\nexport function Select<T = any>({\n name,\n label,\n size,\n onChange,\n required,\n value,\n choices,\n description,\n placeholder,\n prefix,\n suffix,\n multiple,\n layout,\n ...props\n}: SelectProps<T>): ReactElement {\n const ref = useRef<any>();\n\n useEffect(() => {\n let instance: any;\n\n if (layout === \"choicesjs\") {\n instance = new Choices(ref.current, {\n removeItemButton: true,\n placeholderValue: placeholder\n });\n }\n\n return () => {\n instance && instance.destroy();\n };\n }, []);\n\n choices =\n layout === \"choicesjs\" || multiple || !placeholder\n ? choices\n : ([\n {\n label: placeholder,\n value: \"\"\n },\n ...choices\n ] as any[]);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix} shadow={false}>\n {/* eslint-disable-next-line jsx-a11y/no-onchange */}\n <select\n ref={ref}\n {...props}\n data-testid={`select_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n name={name}\n id={name}\n multiple={multiple}\n value={value || (\"\" as any)}\n placeholder={placeholder}\n onChange={(event) => {\n onChange && onChange(name, getEventValue(event));\n }}\n >\n {choices.map(({ label, value }) => {\n return (\n <option key={String(value)} label={label} value={value as any}>\n {label}\n </option>\n );\n })}\n </select>\n </FormControl>\n );\n}\n\nSelect.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n choices: PropTypes.array.isRequired\n};\n","export const LEFT_PAGE = \"LEFT\";\nexport const RIGHT_PAGE = \"RIGHT\";\n\nfunction range(from: number, to: number, step = 1): any[] {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n}\n\nexport function getPageNumbers({ currentPage, pageNeighbours = 1, totalPages }: any) {\n const totalNumbers = pageNeighbours * 2 + 3;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const calculatedStartPage = Math.max(2, currentPage - pageNeighbours);\n const calculatedEndPage = Math.min(totalPages - 1, currentPage + pageNeighbours);\n const startPage = calculatedStartPage === 3 ? 2 : calculatedStartPage;\n const endPage = calculatedEndPage === totalPages - 2 ? totalPages - 1 : calculatedEndPage;\n\n let pages = range(startPage, endPage);\n\n const hasLeftSpill = startPage > 2;\n const hasRightSpill = totalPages - endPage > 1;\n const spillOffset = totalNumbers - (pages.length + 1);\n let extraPages;\n\n if (hasLeftSpill && !hasRightSpill) {\n extraPages = range(startPage - spillOffset, startPage - 1);\n pages = [LEFT_PAGE, ...extraPages, ...pages];\n } else if (!hasLeftSpill && hasRightSpill) {\n extraPages = range(endPage + 1, endPage + spillOffset);\n pages = [...pages, ...extraPages, RIGHT_PAGE];\n } else {\n pages = [LEFT_PAGE, ...pages, RIGHT_PAGE];\n }\n\n return [1, ...pages, totalPages];\n }\n\n return range(1, totalPages);\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { Select } from \"../select/select.component\";\nimport { getPageNumbers, LEFT_PAGE, RIGHT_PAGE } from \"../table/utils/getPageNumbers\";\n\nfunction PaginationButton(\n props: PropsWithChildren<\n {\n component?: any;\n disabled?: boolean;\n className?: string;\n active?: boolean;\n } & Record<string, any>\n >\n) {\n const { component: Component = \"button\", children, disabled, active, ...otherProps } = props;\n\n return (\n <Component\n {...otherProps}\n data-testid='pagination-button'\n disabled={disabled}\n className={classnames(\"page-link\", disabled ? \"disabled\" : \"\", active ? \"\" : \"\", props.className)}\n >\n {children}\n </Component>\n );\n}\n\nexport interface PaginationProps {\n className?: string;\n pageSizes?: number[];\n gotoPage: any;\n canPreviousPage: boolean;\n previousPage: any;\n nextPage: any;\n canNextPage: boolean;\n pageCount: number;\n pageIndex: number;\n pageOptions?: any;\n pageSize: number;\n setPageSize: any;\n i18n?: (f: string) => string;\n}\n\nexport function Pagination(props: PaginationProps) {\n const {\n className,\n pageSizes = [10, 25, 50, 100],\n gotoPage,\n canPreviousPage,\n previousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageIndex = 1,\n pageOptions,\n pageSize,\n setPageSize,\n i18n = (f: string) => f\n } = props;\n\n const pageNumbers = getPageNumbers({\n currentPage: pageIndex,\n // pageNeighbours,\n totalPages: pageCount\n });\n const choices: any[] = pageSizes.map((value) => ({ value, label: value }));\n\n return (\n <nav aria-label='Page navigation' className={classnames(\"pagination-group -mb-3\", className)}>\n <ul className='pagination mb-3 mr-3'>\n <li className={classnames(\"page-item\", !canPreviousPage && \"disabled\")}>\n <PaginationButton tabIndex={-1} disabled={!canPreviousPage} onClick={() => previousPage()}>\n {i18n(\"Previous\")}\n </PaginationButton>\n </li>\n\n {pageNumbers.map((page) => {\n if ([LEFT_PAGE, RIGHT_PAGE].includes(page)) {\n return (\n <li className='page-item' key={page}>\n <PaginationButton aria-hidden='true'>...</PaginationButton>\n </li>\n );\n }\n\n const active = page - 1 === pageIndex;\n return (\n <li className={classnames(\"page-item\", active && \"active\")} key={page}>\n <PaginationButton tabIndex={pageIndex} active={active} onClick={() => gotoPage(page - 1)}>\n {page}\n </PaginationButton>\n </li>\n );\n })}\n\n <li className={classnames(\"page-item\", !canNextPage && \"disabled\")}>\n <PaginationButton tabIndex={pageNumbers.length} disabled={!canNextPage} onClick={() => nextPage()}>\n {i18n(\"Next\")}\n </PaginationButton>\n </li>\n </ul>\n\n <li className='mb-3 mr-3 flex items-center'>\n <Select\n name={\"page\"}\n value={pageSize}\n choices={choices}\n onChange={(name: string, value: number) => {\n setPageSize(+value);\n }}\n />\n <span className={\"ml-3\"}>{i18n(\"items per page\")}</span>\n </li>\n {pageOptions && (\n <li className={\"mb-3 flex items-center\"}>\n <span>{i18n(\"Page\")} </span>\n <strong>\n {pageIndex + 1} of {pageOptions.length}\n </strong>\n </li>\n )}\n </nav>\n );\n}\n","import React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\n\nexport function DefaultArrowSort({ column }: any) {\n const { isSorted, isSortedDesc } = column;\n return (\n <span className={\"table-arrow-sort\"}>\n {isSorted ? <i className={iconClass(undefined, isSortedDesc ? \"sort-up\" : \"sort-down\")} /> : \"\"}\n </span>\n );\n}\n","import React from \"react\";\nimport { HeaderGroup } from \"react-table\";\n\nexport interface DefaultCellHeaderProps<Data extends object = any> extends Record<string, unknown> {\n column: HeaderGroup<Data>;\n}\n\nexport function DefaultCellHeader<Data extends Record<string, unknown> = {}>({ column }: DefaultCellHeaderProps<Data>) {\n return (\n <div className={\"table-cell-header\"}>\n <div className='table-cell-header__label' {...column.getSortByToggleProps()}>\n <span>{column.render(\"Header\")}</span>\n\n {column.render(\"ArrowSort\")}\n </div>\n {column.canFilter ? <div className='table-cell-header__filter'>{column.render(\"Filter\")}</div> : null}\n </div>\n );\n}\n","export function callLast(fn: Function, time: number) {\n let last: any = null;\n\n return (...args: any[]) => {\n if (last) {\n clearTimeout(last);\n last = null;\n }\n\n last = setTimeout(() => fn(...args), time);\n };\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\nimport { getEventValue } from \"../../utils/getEventValue\";\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTextProps<T = any> extends FormControlProps {\n type?: string;\n value?: T;\n /**\n * The input size\n */\n size?: string;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputText<T = any>({\n name,\n value,\n label,\n onChange,\n required,\n size,\n type,\n prefix,\n suffix,\n description,\n className,\n placeholder,\n ...props\n}: InputTextProps<T>) {\n const [localValue, setValue] = useState(value);\n\n const change = useMemo(() => onChange && callLast(onChange, 300), [onChange]);\n\n useEffect(() => {\n setValue(value);\n }, [value]);\n\n return (\n <FormControl\n name={name}\n label={label}\n required={required}\n description={description}\n prefix={prefix}\n suffix={suffix}\n className={className}\n >\n <input\n type={type || \"text\"}\n {...props}\n data-testid={`input_${name}`}\n className={classnames(\"form-control\", size && `form-control-${size}`)}\n id={name}\n required={required}\n value={(localValue || \"\") as any}\n placeholder={placeholder}\n onChange={(event) => {\n const value = getEventValue(event);\n setValue(value);\n\n return change && change(name, value);\n }}\n />\n </FormControl>\n );\n}\n\nInputText.propTypes = {\n label: PropTypes.string,\n type: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n size: PropTypes.string,\n required: PropTypes.bool,\n onChange: PropTypes.func,\n prefix: PropTypes.any,\n suffix: PropTypes.any\n};\n","import React, { useCallback, useState } from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { InputText } from \"../../input-text/inputText.component\";\n\nexport function DefaultColumnFilter<D extends Record<string, unknown> = {}>(\n props: FilterProps<D> & { filterId: string; setFilterId: any }\n) {\n const {\n filterId,\n setFilterId,\n column: { id, filterValue, setFilter }\n } = props;\n\n const [value, setValue] = useState(filterValue || \"\");\n\n const onChange = useCallback(\n (name, value) => {\n setValue(value);\n setFilterId(id);\n setFilter(value || undefined);\n },\n [id, setValue, setFilterId, setFilter]\n );\n\n return (\n <InputText\n size={\"sm\"}\n id={id}\n name={id}\n key={id}\n autoFocus={id === filterId}\n value={value}\n onChange={onChange}\n placeholder={\"Search records...\"}\n />\n );\n}\n","export const stopPropagationWrapper = (fn: Function) => (event: any) => {\n event.stopPropagation();\n fn();\n};\n","import classnames from \"classnames\";\nimport React from \"react\";\n\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport interface OperationButtonProps {\n className?: string;\n buttonType?: string;\n buttonSize?: string;\n buttonOutline?: boolean;\n data: any[];\n onClick: (action: string) => void;\n action: string;\n icon?: string;\n title?: string;\n i18n?: (i18n: string) => string;\n}\n\nexport function DefaultOperationButton(props: OperationButtonProps) {\n const {\n className = \"btn\",\n buttonSize = \"xs\",\n buttonType = \"primary\",\n buttonOutline,\n onClick,\n action,\n icon = \"\",\n title = \"\",\n i18n = (f: string) => f\n } = props;\n\n return (\n <button\n className={classnames(className, [\"btn\", buttonOutline && \"outline\", buttonType].filter(Boolean).join(\"-\"), `btn-${buttonSize}`)}\n onClick={stopPropagationWrapper(() => onClick(action))}\n >\n {icon ? (\n <>\n <i className={iconClass(undefined, icon)} /> {title && \" \"}\n </>\n ) : null}\n {title && <span className={icon && title ? \"ml-1\" : \"\"}>{i18n(title)}</span>}\n </button>\n );\n}\n","import React from \"react\";\n\nimport { DefaultOperationButton } from \"./defaultOperationButton.component\";\n\nexport function DefaultCellOperations({ operations, row, onClick, ctx, i18n }: any) {\n const data = row.original;\n\n return (\n <div className='btn-group'>\n {operations\n .filter(({ permissionsResolver }: any) => !permissionsResolver || permissionsResolver(data, ctx))\n .map(({ OperationButton = DefaultOperationButton, ...operation }: any) => {\n return (\n <OperationButton\n key={operation.action}\n {...operation}\n onClick={(action: string) => onClick(data, action)}\n data={data}\n i18n={i18n}\n ctx={ctx}\n />\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { Hooks } from \"react-table\";\n\nimport { Operation } from \"../../../interfaces\";\nimport { DefaultCellOperations } from \"../components/defaultCellOperations.component\";\n\nexport type UseOperationsHookProps = {\n CellOperations?: React.ComponentType;\n operations: Operation[];\n onClick?: (data: any, event: string) => void;\n i18n?: (f: string) => string;\n ctx?: any;\n};\n\nexport function useOperations<D extends object = {}>({\n operations,\n CellOperations = DefaultCellOperations,\n onClick,\n i18n = (f: string) => f,\n ctx\n}: UseOperationsHookProps) {\n return (hooks: Hooks<D>): void => {\n hooks.visibleColumns.push((columns) => {\n if (!operations.length) {\n return columns;\n }\n\n return [\n ...columns,\n {\n id: \"operations\",\n groupByBoundary: true,\n Header: () => <div className={\"text-center\"}>{i18n(\"Operations\")}</div>,\n Cell: (props: any) => <CellOperations {...props} operations={operations} onClick={onClick} ctx={ctx} i18n={i18n} />\n }\n ];\n });\n };\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren } from \"react\";\nimport { CellProps, FilterProps, Renderer, TableOptions, useFilters, useGroupBy, usePagination, useSortBy, useTable } from \"react-table\";\n\nimport { OnClickOperation, Operation, QueryOptions } from \"../../interfaces\";\nimport { Pagination as DefaultPagination } from \"../pagination/pagination.component\";\nimport { DefaultArrowSort } from \"./components/defaultArrowSort.component\";\nimport { DefaultCellHeader, DefaultCellHeaderProps } from \"./components/defaultCellHeader.component\";\nimport { DefaultColumnFilter } from \"./filters/defaultColumnFilter.component\";\nimport { useOperations } from \"./utils/useOperations.hook\";\n\nexport interface TableProps<Data extends object = any> extends TableOptions<Data>, Partial<QueryOptions> {\n className?: string;\n /**\n * Call the listener when a filter / pagination / sort change.\n */\n onChange?: (query: QueryOptions) => void;\n /**\n * Call the listener when a line is clicked.\n */\n onClick?: OnClickOperation<Data>;\n /**\n * Pagination steps list\n */\n pageSizes?: number[];\n /**\n *\n */\n isLoading?: boolean;\n /**\n * Custom EmptyData displayed when there is no data\n */\n EmptyData?: React.ComponentType;\n /**\n * Custom ArrowSort\n */\n ArrowSort?: React.ComponentType;\n /**\n * Custom default ColumnFilter\n */\n ColumnFilter?: Renderer<FilterProps<Data>>;\n /**\n * Custom cell\n */\n Cell?: React.ComponentType<CellProps<Data>>;\n /**\n *\n */\n CellHeader?: React.ComponentType<DefaultCellHeaderProps<Data>>;\n /**\n *\n */\n CellOperations?: React.ComponentType;\n /**\n * Custom Loader\n */\n Loader?: React.ComponentType;\n /**\n * Custom Loader\n */\n Pagination?: React.ComponentType;\n /**\n * Disable filters\n */\n disableFilters?: boolean;\n /**\n * Disable pagination\n */\n disablePagination?: boolean;\n manualPagination?: boolean;\n manualSortBy?: boolean;\n manualFilters?: boolean;\n /**\n * Configuration operation for each line.\n */\n operations?: Operation[];\n\n i18n?: (f: string) => string;\n}\n\nfunction getOperationCallback(operations: Operation[], onClick: OnClickOperation) {\n return (data: any, action: string) => {\n const operation = operations.find((operation) => operation.action === action || operation.alias === action);\n if (operation) {\n onClick(data, operation);\n }\n };\n}\n\nfunction DefaultLoader() {\n return <div className={\"text-center p-2 pb-4 font-bold\"}>Loading in progress</div>;\n}\n\nfunction DefaultEmptyData() {\n return <div className='text-center p-2 pb-4 font-bold'>No data found</div>;\n}\n\nconst hooks = [useFilters, useGroupBy, useSortBy, usePagination];\n\nexport function Table<Data extends object = any>(props: PropsWithChildren<TableProps<Data>>) {\n const {\n children,\n className = \"\",\n columns,\n data,\n onChange = noop,\n onClick = noop,\n operations = [],\n pageSizes = [10, 25, 50, 100],\n filters: controlledFilters,\n filterId: controlledFilterId,\n pageSize: controlledPageSize,\n pageIndex: controlledPageIndex,\n sortBy: controlledSortBy,\n isLoading,\n disableFilters,\n disablePagination,\n ArrowSort = DefaultArrowSort,\n ColumnFilter = DefaultColumnFilter,\n EmptyData = DefaultEmptyData,\n Loader = DefaultLoader,\n Pagination = DefaultPagination,\n CellHeader = DefaultCellHeader as any,\n CellOperations,\n i18n = (f: string) => f,\n ...ctx\n } = props;\n\n const _onClick = getOperationCallback(operations, onClick);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: ColumnFilter,\n ArrowSort\n }),\n [ColumnFilter, ArrowSort]\n ) as any;\n\n const [filterId, setFilterId] = React.useState(controlledFilterId);\n\n const tableInstance = useTable<Data>(\n {\n ...props,\n columns,\n data,\n ctx,\n defaultColumn,\n initialState: {\n ...(props.initialState || {}),\n filters: controlledFilters || [],\n pageIndex: controlledPageIndex || 0,\n pageSize: controlledPageSize || 10,\n sortBy: controlledSortBy || []\n } as any,\n manualPagination: props.manualPagination === undefined ? true : props.manualPagination,\n manualSortBy: props.manualSortBy === undefined ? true : props.manualPagination,\n manualFilters: props.manualFilters === undefined ? true : props.manualFilters,\n disableFilters,\n filterId,\n setFilterId\n } as any,\n ...hooks,\n useOperations({ operations, CellOperations, onClick: _onClick, ctx, i18n })\n );\n\n const {\n setPageSize,\n state: { pageIndex, pageSize, sortBy, filters }\n } = tableInstance;\n\n React.useEffect(() => {\n onChange({\n pageIndex,\n pageSize,\n sortBy,\n filters,\n filterId\n });\n }, [onChange, pageIndex, pageSize, sortBy, filters, filterId]);\n\n // Render the UI for your table\n return (\n <div className={classnames(\"table-group table-responsive\", className)}>\n <table\n className={\"table table-striped table-hover\"}\n {...tableInstance.getTableProps()}\n /* style={{ marginBottom: disablePagination ? \"-1px\" : \"0px\" }} */\n >\n <thead>\n {tableInstance.headerGroups.map((headerGroup, i) => (\n <tr {...headerGroup.getHeaderGroupProps()} key={`tableInstance.headerGroups${i}`}>\n {headerGroup.headers.map((column) => (\n <th\n /* className='text-left py-2 align-top' */\n {...column.getHeaderProps()}\n key={`tableInstance.headers.column.${column.id}`}\n >\n <CellHeader column={column} />\n </th>\n ))}\n </tr>\n ))}\n </thead>\n {!isLoading ? (\n <tbody {...tableInstance.getTableBodyProps()}>\n {tableInstance.page.map((row) => {\n tableInstance.prepareRow(row);\n return (\n <tr onClick={() => _onClick(row.original, \"row\")} {...row.getRowProps()} key={`tableInstance.page.${row.id}`}>\n {row.cells.map((cell, i) => {\n const { hidden, colspan } = cell.column as any;\n if (hidden) {\n return null;\n }\n return (\n <td colSpan={colspan} {...cell.getCellProps()} key={`tableInstance.page.cells.${cell.value || \"value\"}.${i}`}>\n {cell.render(\"Cell\")}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n ) : null}\n </table>\n {isLoading ? <Loader /> : null}\n {!data.length ? <EmptyData /> : null}\n {!isLoading && data.length && !disablePagination ? (\n <div className={\"overflow-hidden\"}>\n <Pagination\n {...tableInstance}\n className={\"text-sm\"}\n pageIndex={pageIndex}\n pageSize={pageSize}\n pageSizes={pageSizes}\n setPageSize={setPageSize}\n i18n={i18n}\n />\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { useState } from \"react\";\n\nimport { ActionSchema } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\nimport { Select } from \"../select/select.component\";\nimport { Table, TableProps } from \"../table/table.component\";\n\nexport type ActionsTableProps = Omit<TableProps<ActionSchema>, \"columns\"> & {\n onAddAction?: (actionName: string) => void;\n availableActions?: { label: string; value: string }[];\n};\n\nexport function ActionsTable({\n disableFilters = true,\n disablePagination = true,\n availableActions = [],\n onAddAction = noop,\n ...props\n}: ActionsTableProps) {\n const { i18n = (f: string) => f } = props;\n const [currentAction, setAction] = useState(\"\");\n\n const columns = [\n {\n Header: i18n(\"Actions\"),\n accessor: \"title\",\n id: \"title\"\n }\n ];\n\n return (\n <Table {...props} disableFilters={disableFilters} disablePagination={disablePagination} columns={columns}>\n <div className={\"pagination-group\"}>\n <Select\n name={\"actions\"}\n value={currentAction}\n choices={[{ label: i18n(\"Select an action\"), value: \"\" }].concat(availableActions)}\n onChange={(name: string, action: string) => setAction(action)}\n />\n <div className={\"pl-3\"}>\n <button\n data-testid={\"submit\"}\n disabled={currentAction === \"\"}\n className={\"btn btn-success\"}\n onClick={() => currentAction && onAddAction(currentAction)}\n type={\"submit\"}\n >\n <i className={classnames(iconClass(undefined, \"plus\"), \"mr-1\")} /> {i18n(\"Add action\")}\n </button>\n </div>\n </div>\n </Table>\n );\n}\n","import React from \"react\";\n\nfunction formatError(error: any): any {\n if (typeof error === \"string\") {\n return error;\n }\n\n if (Array.isArray(error)) {\n return error.map(formatError);\n }\n\n if (Object.prototype.hasOwnProperty.call(error, \"errors\")) {\n return Object.keys(error.errors).map((key, index) => {\n const item = error.errors[key];\n return (\n <div key={index}>\n <strong>\n {item.name} ({item.path})\n </strong>{\" \"}\n - {item.message}\n </div>\n );\n });\n }\n\n // If this is a standard error.\n if (Object.prototype.hasOwnProperty.call(error, \"message\")) {\n return error.message;\n }\n\n // If this is a joy validation error.\n if (Object.prototype.hasOwnProperty.call(error, \"name\") && error.name === \"ValidationError\") {\n return error.details.map((item: any, index: number) => {\n return <div key={index}>{item.message}</div>;\n });\n }\n\n // If a conflict error occurs on a form, the form is returned.\n if (Object.prototype.hasOwnProperty.call(error, \"_id\") && Object.prototype.hasOwnProperty.call(error, \"display\")) {\n return \"Another user has saved this form already. Please reload and re-apply your changes.\";\n }\n\n return \"An error occurred. See console logs for details.\";\n}\n\nexport interface AlertProps {\n error?: any | any[];\n type?: string;\n}\n\nexport function Alert({ error, type = \"danger\" }: AlertProps) {\n if (!error || (Array.isArray(error) && !error.length)) {\n return null;\n }\n\n return (\n <div className={`alert alert-${type}`} role='alert'>\n {formatError(error)}\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nexport interface CardProps {\n children: React.ReactNode;\n label: string;\n className?: string;\n}\n\nexport function Card({ children, label, className }: PropsWithChildren<CardProps>) {\n return (\n <div className={classnames(\"card\", className)}>\n <div className={\"card-header \"}>\n <h4 className={\"card-title\"}>{label}</h4>\n </div>\n <div className={\"card-body\"} role={\"article\"}>\n {children}\n </div>\n </div>\n );\n}\n","import { ExtendedComponentSchema, Form } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useEffect, useRef } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\n\nexport interface ChangedSubmission<T = any> extends Submission<T> {\n changed: {\n component: ExtendedComponentSchema;\n instance: any;\n value: any;\n } & Record<string, any>;\n isValid: boolean;\n}\n\nexport interface FormPageChangeProps<Data = any> {\n page: number;\n submission: Submission<Data>;\n}\n\nexport interface UseFormHookProps<Data = any> extends Record<string, any> {\n src?: string;\n /**\n * url to fetch form\n */\n url?: string;\n /**\n * Raw form object\n */\n form?: Partial<FormSchema>;\n /**\n * Configuration option\n */\n options?: FormOptions;\n /**\n * Data submission\n */\n submission?: Submission<Data>;\n\n /// events\n onPrevPage?: (obj: FormPageChangeProps<Data>) => void;\n onNextPage?: (obj: FormPageChangeProps<Data>) => void;\n onCancel?: Function;\n onChange?: (submission: ChangedSubmission) => void;\n onCustomEvent?: (obj: { type: string; event: string; component: ExtendedComponentSchema; data: any }) => void;\n onComponentChange?: (component: ExtendedComponentSchema) => void;\n onSubmit?: (submission: Submission<Data>) => void;\n onAsyncSubmit?: (submission: Submission<Data>) => Promise<any>;\n onSubmitDone?: (submission: Submission<Data>) => void;\n onFormLoad?: Function;\n onError?: (errors: any) => void;\n onRender?: () => void;\n onAttach?: Function;\n onBuild?: Function;\n onFocus?: Function;\n onBlur?: Function;\n onInitialized?: Function;\n onFormReady?: (formio: any) => void;\n}\n\nfunction useEvent(event: string, callback: any, events: Map<string, any>) {\n useEffect(() => {\n if (callback) {\n events.set(event, callback);\n }\n }, [callback, event, events]);\n}\n\nfunction useEvents(funcs: any) {\n const events = useRef<Map<string, any>>(new Map());\n\n const hasEvent = (event: string) => {\n return funcs.hasOwnProperty(event) && typeof funcs[event] === \"function\";\n };\n\n const emit = (event: string, ...args: any[]) => {\n if (hasEvent(event)) {\n const fn = events.current.has(event) ? events.current.get(event) : funcs[event];\n return fn(...args);\n }\n };\n\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onPrevPage\", funcs[\"onPrevPage\"], events.current);\n useEvent(\"onNextPage\", funcs[\"onNextPage\"], events.current);\n useEvent(\"onCancel\", funcs[\"onCancel\"], events.current);\n useEvent(\"onChange\", funcs[\"onChange\"], events.current);\n useEvent(\"onCustomEvent\", funcs[\"onCustomEvent\"], events.current);\n useEvent(\"onComponentChange\", funcs[\"onComponentChange\"], events.current);\n useEvent(\"onSubmit\", funcs[\"onSubmit\"], events.current);\n useEvent(\"onAsyncSubmit\", funcs[\"onAsyncSubmit\"], events.current);\n useEvent(\"onSubmitDone\", funcs[\"onSubmitDone\"], events.current);\n useEvent(\"onFormLoad\", funcs[\"onFormLoad\"], events.current);\n useEvent(\"onError\", funcs[\"onError\"], events.current);\n useEvent(\"onRender\", funcs[\"onRender\"], events.current);\n useEvent(\"onAttach\", funcs[\"onAttach\"], events.current);\n useEvent(\"onBuild\", funcs[\"onBuild\"], events.current);\n useEvent(\"onFocus\", funcs[\"onFocus\"], events.current);\n useEvent(\"onBlur\", funcs[\"onBlur\"], events.current);\n useEvent(\"onInitialized\", funcs[\"onInitialized\"], events.current);\n\n return { events, emit, hasEvent };\n}\n\nexport function useForm<Data = any>(props: UseFormHookProps<Data>) {\n const { src, form, options = {}, submission, url, ...funcs } = props;\n const element = useRef<any>();\n const isLoaded = useRef<boolean>();\n const instance = useRef<Form>();\n const { emit, hasEvent } = useEvents(funcs);\n\n async function customValidation(submission: Submission, callback: (err: Error | null) => void) {\n if (hasEvent(\"onAsyncSubmit\")) {\n try {\n await emit(\"onAsyncSubmit\", submission, instance.current);\n } catch (err) {\n callback(err?.errors || err);\n }\n } else {\n callback(null);\n }\n }\n\n const createWebForm = (srcOrForm: any, options: any) => {\n options = Object.assign({}, options);\n srcOrForm = typeof srcOrForm === \"string\" ? srcOrForm : cloneDeep(srcOrForm);\n\n if (!instance.current) {\n isLoaded.current = false;\n options.hooks = {\n ...(options.hooks || {}),\n customValidation: options?.hooks?.customValidation || customValidation\n };\n\n instance.current = new Form(element.current, srcOrForm, options);\n\n instance.current.onAny((event: string, ...args: any[]): void => {\n if (!instance.current) {\n return;\n }\n\n if (event.startsWith(\"formio.\")) {\n const eventName = `on${event.charAt(7).toUpperCase()}${event.slice(8)}`;\n\n if (eventName === \"onChange\" && !args[0].changed) {\n return;\n }\n\n emit(eventName, ...args, instance.current);\n }\n });\n\n instance.current.ready.then((formio: any) => {\n submission && (formio.submission = cloneDeep(submission));\n\n if (props.onFormReady) {\n props.onFormReady(formio);\n }\n\n isLoaded.current = true;\n });\n }\n\n return instance.current;\n };\n\n useEffect(() => {\n if (instance.current) {\n instance.current.ready.then((formio: any) => {\n if (isEqual(formio.submission.data, submission?.data)) {\n return;\n }\n\n submission && (formio.submission = cloneDeep(submission));\n });\n }\n }, [submission]);\n\n useEffect(() => {\n if (form && instance.current) {\n instance.current.ready.then((formio: any) => {\n formio.form = form;\n if (url) {\n formio.url = url;\n }\n });\n }\n }, [form, url]);\n\n useEffect(() => {\n if (src) {\n if (instance.current) {\n isLoaded.current = false;\n (instance.current as any).destroy(true);\n }\n\n createWebForm(src, options);\n }\n }, [src]);\n\n useEffect(() => {\n if (form) {\n createWebForm(form, options);\n }\n\n return () => {\n isLoaded.current = false;\n instance.current && (instance.current as any).destroy(true);\n };\n }, []);\n\n return {\n element\n };\n}\n","import { Components } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { useForm, UseFormHookProps } from \"./useForm.hook\";\n\nComponents.setComponents(AllComponents);\n\nexport interface FormProps<Data = any> extends UseFormHookProps<Data> {\n name?: string;\n /**\n *\n */\n className?: string;\n}\n\nexport function Form<Data = any>(props: Partial<FormProps<Data>>) {\n const { element } = useForm(props);\n\n return <div data-testid={`formioContainer${props.name || \"\"}`} ref={element} className={props.className} />;\n}\n\nForm.propTypes = {\n name: PropTypes.string,\n className: PropTypes.string,\n /**\n *\n */\n src: PropTypes.string,\n /**\n * url to fetch form\n */\n url: PropTypes.string,\n /**\n * Raw form object\n */\n form: PropTypes.object,\n /**\n * Data submission\n */\n submission: PropTypes.object,\n /**\n * Configuration option\n */\n options: PropTypes.shape({\n readOnly: PropTypes.bool,\n noAlerts: PropTypes.bool,\n i18n: PropTypes.any,\n template: PropTypes.string,\n saveDraft: PropTypes.bool,\n hooks: PropTypes.any\n }),\n onPrevPage: PropTypes.func,\n onNextPage: PropTypes.func,\n onCancel: PropTypes.func,\n onChange: PropTypes.func,\n onCustomEvent: PropTypes.func,\n onComponentChange: PropTypes.func,\n onSubmit: PropTypes.func,\n onAsyncSubmit: PropTypes.func,\n onSubmitDone: PropTypes.func,\n onFormLoad: PropTypes.func,\n onError: PropTypes.func,\n onRender: PropTypes.func,\n onAttach: PropTypes.func,\n onBuild: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onInitialized: PropTypes.func,\n onFormReady: PropTypes.func,\n formioform: PropTypes.any\n};\n","import { ExtendedComponentSchema } from \"formiojs\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\n\nexport function getRoleComponent({ label, key, description, choices, data }: any): ExtendedComponentSchema {\n return {\n label,\n key,\n description,\n type: \"select\",\n labelPosition: \"top\",\n widget: \"choicesjs\",\n placeholder: \"Select roles...\",\n tooltip: \"\",\n multiple: true,\n dataSrc: \"values\",\n defaultValue: \"\",\n data: {\n values: choices\n },\n template: \"<span>{{ item.label }}</span>\",\n searchEnabled: true,\n selectThreshold: 0,\n validate: {\n required: false,\n custom: \"\",\n customPrivate: false\n },\n values: data\n };\n}\n\nfunction toDescription(description: string, hr = true): string {\n return '<span class=\"text-sm\">' + description + \"</span> \" + (hr ? '<hr class=\"mt-6 mb-5 border-gray-200 mx-20\"/>' : \"\");\n}\n\nexport function getSubmissionPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"create_own\",\n label: '<h4 class=\"text-gray-800\">Create Own Submissions</h4>',\n description: toDescription(\n \"The Create Own Submissions permission will allow a user with one of the Roles to create a Submission. Upon creating the Submission, the user will be defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"create_all\",\n label: '<h4 class=\"text-gray-800\">Create All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Create All Submissions permission will allow a user with one of the Roles to create a new Submission and assign ownership of that Submission to another user.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Own Submissions</h4>',\n description: toDescription(\n \"The Read Own Submissions permission will allow a user with one of the Roles to read a Submission. A user can only read a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: '<h4 class=\"text-gray-800\">Read All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read All Submissions permission will allow a user with one of the Roles to read all Submissions regardless of who owns them.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Own Submissions</h4>',\n description: toDescription(\n \"The Update Own Submissions permission will allow a user with one of the Roles to update a Submission. A user can only update a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update All Submissions permission will allow a user with one of the Roles to update a Submission, regardless of who owns the Submission. Additionally with this permission, a user can change the owner of a Submission.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Own Submissions</h4>',\n description: toDescription(\n \"The Delete Own Submissions permission will allow a user with one of the Roles, to delete a Submission. A user can only delete a Submission if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete All Submissions</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete All Submissions permission will allow a user with one of the Roles to delete a Submission, regardless of who owns the Submission.',\n false\n ),\n choices\n })\n ]\n };\n}\n\nexport function getAccessPermissionForm({ choices }: any): FormSchema {\n return {\n description: \"<strong>Elevated permissions allow users to access and modify other user's entities. Assign with caution.</strong>\",\n components: [\n getRoleComponent({\n key: \"read_own\",\n label: '<h4 class=\"text-gray-800\">Read Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Read Own permission will allow a user, with one of the given Roles, to read a form. A user can only read a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"read_all\",\n label: \"<h4>Read Form Definition</h4>\",\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Read permission will allow a user, with one of the given Roles, to read the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_own\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Update Own permission will allow a user, with one of the given Roles, to update a form. A user can only update a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"update_all\",\n label: '<h4 class=\"text-gray-800\">Update Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Update permission will allow a user, with one of the given Roles, to read and edit the form.'\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_own\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition (Restricted to owner)</h4>',\n description: toDescription(\n \"The Delete Own permission will allow a user, with one of the given Roles, to delete a form. A user can only delete a form if they are defined as its owner.\"\n ),\n choices\n }),\n getRoleComponent({\n key: \"delete_all\",\n label: '<h4 class=\"text-gray-800\">Delete Form Definition</h4>',\n description: toDescription(\n '<strong class=\"text-yellow-600\">Elevated Permission:</strong> The Delete permission will allow a user, with one of the given Roles, to delete the form.',\n false\n ),\n choices\n })\n ]\n };\n}\n","import { ExtendedComponentSchema } from \"formiojs\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { RoleSchema } from \"../../interfaces/RoleSchema\";\nimport { getAccessPermissionForm, getSubmissionPermissionForm } from \"./formAccess.schema\";\n\nexport interface Choice {\n label: string;\n value: string;\n}\n\nexport interface Access {\n roles: string[];\n type: string;\n}\n\nexport type AccessRoles = Record<string, string[]>;\n\nexport type FormAccessSchema = {\n access: FormSchema;\n submissionAccess: FormSchema;\n};\n\nexport type SubmissionAccess = {\n access: Submission<AccessRoles>;\n submissionAccess: Submission<AccessRoles>;\n};\n\nfunction rolesToChoices(roles: RoleSchema[]): Choice[] {\n return Object.values(roles).map((role) => {\n return {\n label: role.title || \"\",\n value: role._id || \"\"\n };\n });\n}\n\nfunction accessToHash(keys: (string | undefined)[] | undefined, access: Access[] = []): AccessRoles {\n const hash = Object.values(access).reduce((o: any, role: any) => {\n o[role.type] = role.roles;\n return o;\n }, {});\n\n return ((keys || []).filter(Boolean) as any[]).reduce((data, key: string) => {\n return {\n ...data,\n [key]: hash[key] || []\n };\n }, {});\n}\n\nfunction hashToAccess(data: AccessRoles) {\n const accessRoles: any[] = [];\n\n Object.entries(data).forEach(([accessType, roles]) => {\n if (accessType === \"submit\") {\n return;\n }\n accessRoles.push({\n type: accessType,\n roles\n });\n });\n\n return accessRoles;\n}\n\nexport function getFormAccess(roles: RoleSchema[]): FormAccessSchema {\n const choices = rolesToChoices(roles);\n const access = getAccessPermissionForm({ choices });\n const submissionAccess = getSubmissionPermissionForm({ choices });\n\n return {\n access,\n submissionAccess\n };\n}\n\nexport function dataAccessToSubmissions(form: Partial<FormSchema>, formAccess: FormAccessSchema): SubmissionAccess {\n const getKeys = (components: ExtendedComponentSchema[]) => components.map(({ key }) => key);\n\n return {\n access: {\n data: accessToHash(getKeys(formAccess.access.components), form.access)\n },\n submissionAccess: {\n data: accessToHash(getKeys(formAccess.submissionAccess.components), form.submissionAccess)\n }\n };\n}\n\nexport function submissionsToDataAccess(form: Partial<FormSchema>, submissions: SubmissionAccess): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n access: hashToAccess(submissions.access.data),\n submissionAccess: hashToAccess(submissions.submissionAccess.data)\n };\n}\n\nexport function shouldUpdate(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess) {\n return !isEqual(submission.data, (submissions as any)[type].data);\n}\n\nexport function updateSubmissions(type: string, submission: Submission<AccessRoles>, submissions: SubmissionAccess, cb: Function = noop) {\n if (shouldUpdate(type, submission, submissions)) {\n submissions = {\n ...submissions,\n [type]: { data: submission.data }\n };\n cb(submissions);\n }\n\n return submissions;\n}\n","import PropTypes from \"prop-types\";\nimport React, { PropsWithChildren, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { FormOptions, FormSchema, Submission } from \"../../interfaces\";\nimport { Card } from \"../card/card.component\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport {\n AccessRoles,\n dataAccessToSubmissions,\n FormAccessSchema,\n getFormAccess,\n shouldUpdate,\n SubmissionAccess,\n submissionsToDataAccess,\n updateSubmissions\n} from \"./formAccess.utils\";\n\nexport interface FormAccessProps {\n form: Partial<FormSchema>;\n roles: any;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormAccess({ form: formDefinition, roles, onSubmit, options }: FormAccessProps) {\n // eslint-disable-next-line no-undef\n const form = useMemo(() => getFormAccess(roles), [roles]);\n\n const [submissions, setSubmissions] = useState(() => dataAccessToSubmissions(formDefinition, form));\n\n const onChange = useCallback(\n (type: string, submission: Submission<AccessRoles>) => {\n updateSubmissions(type, submission, submissions, setSubmissions);\n },\n [submissions]\n );\n\n useEffect(() => {\n const input = dataAccessToSubmissions(formDefinition, form);\n if (formDefinition?._id) {\n if (shouldUpdate(\"access\", submissions.access, input) || shouldUpdate(\"submissionAccess\", submissions.submissionAccess, input)) {\n setSubmissions(input);\n }\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submissions,\n onChange,\n onSubmit: () => {\n onSubmit && onSubmit(submissionsToDataAccess(formDefinition, submissions));\n }\n };\n}\n\ninterface NamedFormAccessProps {\n name: \"access\" | \"submissionAccess\";\n form: FormAccessSchema;\n submissions: SubmissionAccess;\n options: any;\n onSubmit: any;\n\n onChange(name: \"access\" | \"submissionAccess\", submission: Submission<AccessRoles>): void;\n}\n\nfunction NamedFormAccess({ name, form, submissions, options, onChange, onSubmit, children }: PropsWithChildren<NamedFormAccessProps>) {\n const [isValid, setIsValid] = useState(true);\n\n return (\n <>\n <Form\n name={name}\n form={form[name]}\n submission={submissions[name]}\n onChange={({ data, isValid }: ChangedSubmission<AccessRoles>) => {\n isValid && onChange(name, { data });\n setIsValid(isValid);\n }}\n options={options}\n />\n\n <button disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit}>\n Save access\n </button>\n\n {children}\n\n <div className={\"alert alert-warning mt-5\"}>\n Elevated permissions allow users to access and modify other user's entities. Assign with caution.\n </div>\n </>\n );\n}\n\nexport function FormAccess(props: PropsWithChildren<FormAccessProps>): ReactElement {\n const { type, form, submissions, options, onChange, onSubmit } = useFormAccess(props);\n\n return (\n <div>\n {props.children}\n <div className={\"flex mb-5\"}>\n <Card label={\"Manage submission access\"} className={\"flex-1\"}>\n <NamedFormAccess\n name={\"submissionAccess\"}\n form={form}\n submissions={submissions}\n onChange={onChange}\n onSubmit={onSubmit}\n options={options}\n >\n {props.children}\n </NamedFormAccess>\n </Card>\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Submission Data Permissions\"}>\n <p>Submission Data Permissions allow you to control who can create, view, and modify form submission data.</p>\n\n <ul className={\"mt-5 pl-7 list-disc\"}>\n <li className={\"pb-2\"}>\n <strong>Own Permissions</strong> - These permissions apply if the user is the original creator of the submission data and is\n listed as the owner of the submission in submission.owner. This allows users to create and edit their own submission data\n without seeing other user's data.\n </li>\n <li>\n <strong>All Permissions</strong> - These permissions apply to all submission data regardless of who owns it.\n </li>\n </ul>\n </Card>\n </div>\n </div>\n <div className={\"flex mb-5\"}>\n <Card label={`Manage ${type} definition access`} className={\"flex-1\"}>\n <NamedFormAccess name={\"access\"} form={form} submissions={submissions} onChange={onChange} onSubmit={onSubmit} options={options}>\n {props.children}\n </NamedFormAccess>\n </Card>\n\n <div className={\"w-1/4 pl-4\"}>\n <Card label={\"About Form Definition Access\"}>\n <p>These permissions allow you to give access to a single form's JSON definition so they can render the form.</p>\n\n <p>Typically you will want to allow all of your roles to be able to Read the form definition.</p>\n\n <p>\n Each form also has an owner at <strong>form.owner</strong> which is the user who created the form. In some applications users\n are allowed to create their own forms. In those cases it is helpful to have Owner based permissions as well.\n </p>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n\nFormAccess.propTypes = {\n type: PropTypes.string.isRequired,\n form: PropTypes.object,\n roles: PropTypes.any,\n children: PropTypes.any,\n options: PropTypes.any,\n onSubmit: PropTypes.func\n};\n","import FormioUtils from \"formiojs/utils\";\nimport React, { PropsWithChildren, ReactElement } from \"react\";\n\nimport { ActionDefaultsSchema, ActionSchema, FormOptions, Submission } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\n\nfunction mapData(options: any, defaults: ActionDefaultsSchema): any {\n return {\n ...defaults,\n ...options\n };\n}\n\nfunction mapSettingsForm({ action, ...settingsForm }: any): any {\n FormioUtils.eachComponent(settingsForm.components, (component: any) => {\n const resourceExclude = \"\";\n\n if (component.type === \"resourcefields\") {\n component.type = \"select\";\n component.label = component.title;\n component.dataSrc = \"url\";\n component.data = {\n url: `${component.basePath}?type=resource${resourceExclude}`\n };\n component.valueProperty = \"_id\";\n component.template = \"<span>{{ item.title }}</span>\";\n component.persistent = true;\n }\n });\n\n return settingsForm;\n}\n\nexport interface FormActionProps {\n actionInfo: Partial<ActionSchema>;\n submission?: Partial<Submission>;\n onSubmit?: (submission: Submission<ActionSchema>) => void;\n options: FormOptions;\n}\n\nexport function FormAction({ actionInfo, children, onSubmit, options, ...props }: PropsWithChildren<FormActionProps>): ReactElement {\n const { form, submission } = (() => {\n const submission = mapData(props.submission || {}, actionInfo.defaults!);\n const form = mapSettingsForm(actionInfo.settingsForm);\n\n return { form, submission: { data: submission } };\n })();\n\n return (\n <div>\n {children}\n\n <Form form={form} submission={submission} onSubmit={onSubmit} options={options} />\n\n {children}\n </div>\n );\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { ComponentSchema } from \"formiojs\";\nimport AllComponents from \"formiojs/components\";\nimport Components from \"formiojs/components/Components\";\nimport FormioFormBuilder from \"formiojs/FormBuilder\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport noop from \"lodash/noop\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { callLast } from \"../../utils/callLast\";\n\nComponents.setComponents(AllComponents);\n\nconst EVENTS = [\n \"addComponent\",\n \"updateComponent\",\n \"removeComponent\",\n \"saveComponent\",\n \"cancelComponent\",\n \"moveComponent\",\n \"editComponent\",\n \"editJson\",\n \"copyComponent\",\n \"pasteComponent\"\n];\n\nconst EVENTS_CHANGE = [\"addComponent\", \"saveComponent\", \"updateComponent\", \"removeComponent\"];\n\nasync function createBuilder(el: Element, { components = [], display, options, onChange, events = {} }: any): Promise<void> {\n const form = {\n display,\n components: [...components]\n };\n\n try {\n const builder = await new FormioFormBuilder(el, form, { ...options }).ready;\n\n const handleEvent = (event: string) => {\n return (...args: any[]) => {\n events[event] && events[event](...args);\n\n if (EVENTS_CHANGE.includes(event)) {\n onChange(builder.form.components);\n }\n };\n };\n\n EVENTS.forEach((event) => builder.on(event, callLast(handleEvent(event), 200)));\n\n return builder;\n } catch (er) {\n console.error(er);\n }\n}\n\nexport interface FormBuilderProps {\n components: ComponentSchema[];\n display?: string;\n options?: any;\n builder?: any;\n onChange?: (components: ComponentSchema[]) => void;\n onAddComponent?: Function;\n onUpdateComponent?: Function;\n onRemoveComponent?: Function;\n onSaveComponent?: Function;\n onCancelComponent?: Function;\n onMoveComponent?: Function;\n onEditComponent?: Function;\n onEditJson?: Function;\n onCopyComponent?: Function;\n onPasteComponent?: Function;\n}\n\nexport class FormBuilder extends React.Component<FormBuilderProps, any> {\n static defaultProps = {\n options: {},\n onChange: noop,\n onReady: noop,\n onDestroy: noop\n };\n\n static propTypes = {\n components: PropTypes.array,\n display: PropTypes.string,\n options: PropTypes.object,\n onChange: PropTypes.func,\n onAddComponent: PropTypes.func,\n onUpdateComponent: PropTypes.func,\n onRemoveComponent: PropTypes.func,\n onSaveComponent: PropTypes.func,\n onCancelComponent: PropTypes.func,\n onMoveComponent: PropTypes.func,\n onEditComponent: PropTypes.func,\n onEditJson: PropTypes.func,\n onCopyComponent: PropTypes.func,\n onPasteComponent: PropTypes.func\n };\n\n private elRef: any;\n private builderRef: any;\n\n constructor(props: FormBuilderProps) {\n super(props);\n\n this.state = {\n display: props.display,\n components: cloneDeep(props.components)\n };\n this.elRef = null;\n this.builderRef = null;\n }\n\n async componentDidMount(): Promise<void> {\n await this.create(this.props);\n }\n\n async create(props: FormBuilderProps) {\n const {\n options,\n display,\n components,\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n } = props;\n\n this.builderRef = await createBuilder(this.elRef.firstChild, {\n display,\n options: { ...options },\n components: cloneDeep(components),\n onChange: this.whenComponentsChange.bind(this),\n events: {\n onAddComponent,\n onUpdateComponent,\n onRemoveComponent,\n onSaveComponent,\n onCancelComponent,\n onMoveComponent,\n onEditComponent,\n onEditJson,\n onCopyComponent,\n onPasteComponent\n }\n });\n }\n\n componentWillUnmount(): void {\n this.builderRef?.destroy();\n }\n\n // eslint-disable-next-line react/no-deprecated\n async componentWillReceiveProps(nextProps: FormBuilderProps) {\n if (this.builderRef) {\n if (nextProps.display !== this.state.display) {\n await this.create({\n ...this.props,\n display: nextProps.display\n });\n } else if (nextProps.components !== this.state.components) {\n this.builderRef.form = {\n display: this.state.display,\n components: nextProps.components\n };\n }\n }\n }\n\n whenComponentsChange(components: ComponentSchema[]) {\n this.setState({ components }, () => {\n this.props?.onChange && this.props.onChange(components);\n });\n }\n\n render() {\n return (\n <div\n ref={(ref) => {\n this.elRef = ref;\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div />\n </div>\n );\n }\n}\n","import { useEffect, useRef } from \"react\";\nimport Tooltip, { Options } from \"tooltip.js\";\n\nexport function useTooltip(options: Options) {\n const ref = useRef<any>();\n\n useEffect(() => {\n ref.current && new Tooltip(ref.current as any, options);\n }, [ref, options]);\n\n return ref;\n}\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { useTooltip } from \"../../hooks/useTooltip\";\nimport { FormOptions } from \"../../interfaces\";\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface FormEditCTAsProps extends Record<string, unknown> {\n saveText?: string;\n options?: FormOptions;\n hasUndo?: boolean;\n hasRedo?: boolean;\n disabled?: boolean;\n onCopy?: Function;\n onSubmit?: Function;\n onReset?: Function;\n onUndo?: Function;\n onRedo?: Function;\n}\n\nexport function FormEditCTAs({\n saveText = \"Save\",\n disabled,\n options = {},\n onCopy,\n hasUndo,\n hasRedo,\n onUndo,\n onRedo,\n onReset,\n onSubmit\n}: FormEditCTAsProps): ReactElement {\n const { i18n: t = (t: string): string => t } = options;\n\n const copyTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Copy\")\n });\n\n const undoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Undo last change\")\n });\n\n const redoTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Redo last change\")\n });\n\n const resetTooltipRef: any = useTooltip({\n trigger: \"hover\",\n placement: \"top\",\n title: t(\"Reset all changes\")\n });\n\n return (\n <div className={\"form-edit__actions\"}>\n <div>\n <button\n className={`btn btn-primary btn-save flex ${disabled ? \"disabled\" : \"\"}`}\n disabled={disabled}\n onClick={() => !disabled && onSubmit && onSubmit()}\n >\n <i className={`mr-1 ${iconClass(options.iconset, \"save\")}`} />\n {saveText}\n </button>\n\n <div>\n <button className={`btn btn-light btn-undo ${hasUndo ? \"\" : \"disabled\"}`} onClick={() => onUndo && onUndo()} ref={undoTooltipRef}>\n <i className={iconClass(options.iconset, \"undo\")} />\n </button>\n\n <button className={`btn btn-light btn-redo ${hasRedo ? \"\" : \"disabled\"}`} onClick={() => onRedo && onRedo()} ref={redoTooltipRef}>\n <i className={iconClass(options.iconset, \"redo\")} />\n </button>\n </div>\n\n <div>\n {onCopy && (\n <button className='btn btn-light' onClick={() => onCopy()} ref={copyTooltipRef!}>\n <i className={iconClass(options.iconset, \"copy\")} />\n </button>\n )}\n\n <button className={`btn btn-light btn-reset`} onClick={() => onReset && onReset()} ref={resetTooltipRef!}>\n <i className={iconClass(options.iconset, \"reset\")} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nFormEditCTAs.propTypes = {\n saveText: PropTypes.string,\n options: PropTypes.object,\n hasUndo: PropTypes.bool,\n hasRedo: PropTypes.bool,\n disabled: PropTypes.bool,\n onCopy: PropTypes.func,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func\n};\n","import Choices from \"@formio/choices.js\";\nimport uniq from \"lodash/uniq\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { FormControl, FormControlProps } from \"../form-control/formControl.component\";\n\nexport interface InputTagsProps<T = any> extends Omit<FormControlProps, \"description\" | \"prefix\" | \"suffix\"> {\n value?: T;\n onChange?: (name: string, value: T) => void;\n placeholder?: string;\n\n [key: string]: any;\n}\n\nexport function InputTags({ name, value = [], label, onChange, required, description, prefix, suffix, ...props }: InputTagsProps) {\n const ref: any = useRef();\n\n useEffect(() => {\n const instance = new Choices(ref.current, {\n delimiter: \",\",\n editItems: true,\n removeItemButton: true\n });\n\n instance.setValue([].concat(value, []));\n\n instance.passedElement.element.addEventListener(\"addItem\", (event: any) => {\n onChange && onChange(name, uniq(value.concat(event.detail.value)));\n });\n\n instance.passedElement.element.addEventListener(\"removeItem\", (event: any) => {\n onChange &&\n onChange(\n name,\n value.filter((v: string) => v !== event.detail.value)\n );\n });\n\n return () => {\n instance.destroy();\n };\n }, []);\n\n return (\n <FormControl name={name} label={label} required={required} description={description} prefix={prefix} suffix={suffix}>\n <input ref={ref} type='text' {...props} id={name} required={required} />\n </FormControl>\n );\n}\n\nInputTags.propTypes = {\n label: PropTypes.string,\n name: PropTypes.string.isRequired,\n value: PropTypes.array,\n required: PropTypes.bool,\n onChange: PropTypes.func\n};\n","import PropTypes from \"prop-types\";\nimport React, { ReactElement } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { InputTags } from \"../input-tags/inputTags.component\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Select } from \"../select/select.component\";\n\nexport const defaultDisplayChoices = [\n { label: \"Form\", value: \"form\" },\n { label: \"Wizard\", value: \"wizard\" },\n { label: \"Pdf\", value: \"pdf\" }\n];\n\nexport interface FormParametersProps {\n onChange?: (name: string, value: any) => void;\n form: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n className?: string;\n baseUrl?: string;\n readonly?: Record<string, boolean>;\n}\n\nexport function FormParameters({\n onChange,\n form,\n enableTags = true,\n typeChoices = [],\n displayChoices = defaultDisplayChoices,\n className = \"\",\n readonly = {},\n baseUrl = window.location.origin\n}: FormParametersProps): ReactElement {\n const hasTypeChoices = typeChoices && typeChoices.length > 1;\n\n return (\n <div className={`form-edit__settings ${className}`}>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Title\"}\n placeholder='Enter the form title'\n name={\"title\"}\n required={true}\n value={form.title}\n disabled={!!readonly[\"title\"]}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Name\"}\n placeholder='Enter the form machine name'\n name={\"name\"}\n required={true}\n disabled={!!readonly[\"name\"]}\n value={form.name}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <InputText\n label={\"Path\"}\n placeholder='example'\n name={\"path\"}\n className={\"mb-0\"}\n description={\n <span className={\"text-xxs flex items-center\"}>\n <i className={\"bx bx-link ml-1 mr-1\"} />\n {`${baseUrl}/${form.path}`}\n </span>\n }\n required={true}\n value={form.path}\n disabled={!!readonly[\"path\"]}\n style={{ textTransform: \"lowercase\", width: \"120px\" }}\n onChange={onChange}\n />\n </div>\n <div className={\"w-1/3\"}>\n <Select\n label={\"Display as\"}\n name={\"display\"}\n disabled={!!readonly[\"display\"]}\n value={form.display}\n choices={displayChoices}\n onChange={onChange}\n />\n </div>\n {hasTypeChoices && (\n <div className={\"w-1/3\"}>\n <Select label={\"Type\"} name={\"type\"} value={form.type} choices={typeChoices} onChange={onChange} />\n </div>\n )}\n {enableTags && (\n <div className={\"w-1/3\"}>\n <InputTags label={\"Tags\"} name={\"tags\"} value={form.tags} onChange={onChange} />\n </div>\n )}\n </div>\n );\n}\n\nFormParameters.propTypes = {\n onChange: PropTypes.func,\n form: PropTypes.object,\n enableTags: PropTypes.bool,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n className: PropTypes.string\n};\n","import camelCase from \"lodash/camelCase\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\n\nimport { FormSchema } from \"../../interfaces\";\n\nexport const hasChanged = (form: Partial<FormSchema>, value: Partial<FormSchema>): boolean => !isEqual(form, value);\n\nexport interface FormEditState {\n past: Partial<FormSchema>[];\n future: Partial<FormSchema>[];\n current: Partial<FormSchema>;\n original: Partial<FormSchema>;\n}\n\nexport function createInitialState(props: any): FormEditState {\n return {\n past: [],\n future: [],\n current: cloneDeep(props.form),\n original: cloneDeep(props.form)\n };\n}\n\nexport const reducer = (state: FormEditState, { type, value }: any): FormEditState => {\n const { past, current, future } = state;\n\n const update = (newValue: any): any => {\n if (newValue.title !== state.current.title && !state.current._id) {\n newValue.name = camelCase(value.title);\n newValue.path = camelCase(value.title).toLowerCase();\n }\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: newValue\n };\n };\n\n switch (type) {\n case \"undo\":\n if (past.length) {\n const previous = past[past.length - 1];\n const newPast = past.slice(0, past.length - 1);\n\n return {\n ...state,\n past: newPast,\n current: cloneDeep(previous),\n future: [cloneDeep(current), ...future]\n };\n }\n break;\n\n case \"redo\":\n if (future.length) {\n const next = future[0];\n const newFuture = future.slice(1);\n\n return {\n ...state,\n past: [...past, cloneDeep(current)],\n current: cloneDeep(next),\n future: newFuture\n };\n }\n break;\n\n case \"reset\":\n return update(cloneDeep(state.original));\n\n case \"formChange\":\n // eslint-disable-next-line no-case-declarations\n const newValue = { ...state.current, ...value };\n\n if (hasChanged(state.current, newValue)) {\n return update(newValue);\n }\n break;\n\n case \"replaceForm\":\n return {\n ...state,\n past: [],\n future: [],\n current: cloneDeep(value),\n original: cloneDeep(value)\n };\n\n default:\n break;\n }\n\n return state;\n};\n","import cloneDeep from \"lodash/cloneDeep\";\nimport { useEffect, useReducer } from \"react\";\n\nimport { FormSchema } from \"../../interfaces/FormSchema\";\nimport { createInitialState, hasChanged, reducer } from \"./formEdit.reducer\";\n\nexport interface UseFormEditHookProps extends Record<string, unknown> {\n form?: Partial<FormSchema>;\n typeChoices?: { label: string; value: any }[];\n displayChoices?: { label: string; value: any }[];\n enableTags?: boolean;\n onSubmit?: (form: Partial<FormSchema>) => void;\n onCopy?: (form: Partial<FormSchema>) => void;\n}\n\nexport function useFormEdit(props: UseFormEditHookProps) {\n const [{ current, future, past }, dispatchFormAction] = useReducer(reducer, createInitialState(props));\n\n const onSubmit = () => {\n if (props.onSubmit && typeof props.onSubmit === \"function\") {\n props.onSubmit(current);\n }\n };\n const onCopy = () => {\n if (props.onSubmit && typeof props.onCopy === \"function\") {\n props.onCopy(current);\n }\n };\n\n useEffect(() => {\n if (props.form && (current._id !== props.form._id || current.modified !== props.form.modified)) {\n dispatchFormAction({ type: \"replaceForm\", value: props.form });\n }\n }, [props.form]);\n\n const formChange = (newForm: Partial<FormSchema>) => {\n if (hasChanged(current, { ...current, ...newForm })) {\n dispatchFormAction({ type: \"formChange\", value: newForm });\n }\n };\n\n const redo = () => dispatchFormAction({ type: \"redo\" });\n const undo = () => dispatchFormAction({ type: \"undo\" });\n const reset = () => dispatchFormAction({ type: \"reset\" });\n\n const setChange = (path: string, value: any) => {\n formChange({ ...current, [path]: value });\n };\n\n return {\n form: cloneDeep(current),\n redo,\n undo,\n reset,\n hasChanged: !!past.length,\n isValid: current.title && current.name && current.path,\n hasUndo: !!past.length,\n hasRedo: !!future.length,\n onSubmit,\n onCopy,\n formChange,\n setChange\n };\n}\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\n\nimport { FormOptions } from \"../../interfaces/FormOptions\";\nimport { FormBuilder } from \"../form-builder/formBuilder.component\";\nimport { FormEditCTAs } from \"./formCtas.component\";\nimport { FormParameters } from \"./formParameters.component\";\nimport { useFormEdit, UseFormEditHookProps } from \"./useFormEdit.hook\";\n\nexport interface FormEditProps extends UseFormEditHookProps {\n builder?: any;\n options?: FormOptions;\n}\n\nexport function FormEdit(props: FormEditProps) {\n const { form, isValid, setChange, hasRedo, hasChanged, hasUndo, redo, undo, reset, onSubmit, onCopy } = useFormEdit(props);\n const { options = {}, builder } = props;\n\n return (\n <div>\n <div className='form-edit'>\n <FormParameters {...props} className={\"\"} key={`form-settings-${form._id}`} form={form} onChange={setChange} />\n <FormEditCTAs\n {...props}\n className={\"\"}\n key={`form-edit-ctas-${form._id}`}\n options={options}\n hasRedo={hasRedo}\n hasUndo={hasUndo}\n disabled={!(isValid && hasChanged)}\n onRedo={redo}\n onUndo={undo}\n onReset={reset}\n onCopy={onCopy}\n onSubmit={onSubmit}\n />\n </div>\n\n <FormBuilder\n key={`form-builder-${form._id}`}\n components={form.components!}\n display={form.display}\n options={options}\n builder={builder}\n onChange={(components) => {\n setChange(\"components\", components);\n }}\n />\n </div>\n );\n}\n\nFormEdit.propTypes = {\n form: PropTypes.object.isRequired,\n options: PropTypes.object,\n typeChoices: PropTypes.array,\n displayChoices: PropTypes.array,\n enableTags: PropTypes.bool,\n onSubmit: PropTypes.func\n};\n","import { FormSchema } from \"../../interfaces\";\n\nexport function getFormSettingsSchema(): FormSchema {\n return {\n type: \"form\",\n tags: [],\n components: [\n {\n input: true,\n key: \"action\",\n placeholder: \"Enter the custom submission URL\",\n label: \"Custom Action Url\",\n labelPosition: \"top\",\n widget: { type: \"input\" },\n type: \"url\",\n mask: false,\n inputType: \"url\",\n inputFormat: \"plain\",\n spellcheck: true,\n id: \"efyrzea\",\n attributes: {\n \"data-testid\": \"action\"\n }\n },\n {\n input: true,\n key: \"tags\",\n placeholder: \"Add tags\",\n label: \"Form tags\",\n widget: { type: \"input\" },\n type: \"tags\",\n delimeter: \",\",\n storeas: \"array\",\n maxTags: 0,\n id: \"erxcyw\"\n },\n {\n input: true,\n key: \"properties\",\n label: \"Custom Properties\",\n labelPosition: \"top\",\n type: \"datamap\",\n addAnother: \"Add Another\",\n disableAddingRemovingRows: false,\n keyBeforeValue: true,\n valueComponent: {\n type: \"textfield\",\n key: \"value\",\n label: \"Value\",\n input: true,\n hideLabel: true\n },\n id: \"ezne35\"\n }\n ],\n display: \"form\"\n };\n}\n","import cloneDeep from \"lodash/cloneDeep\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\n\nexport type FormSettingsSchema = {\n action: string;\n tags: string[];\n properties: Record<string, any>;\n};\n\nexport function formSettingsToSubmission(form: Partial<FormSchema>): Submission<FormSettingsSchema> {\n return {\n data: {\n action: form.action!,\n tags: form.tags!,\n properties: form.properties!\n }\n };\n}\n\nexport function submissionToFormSettings(form: Partial<FormSchema>, submission: Submission<FormSettingsSchema>): Partial<FormSchema> {\n return {\n ...cloneDeep(form),\n tags: submission.data.tags,\n action: submission.data.action,\n properties: submission.data.properties\n };\n}\n","import isEqual from \"lodash/isEqual\";\nimport noop from \"lodash/noop\";\nimport React, { useEffect, useState } from \"react\";\n\nimport { FormOptions, FormSchema } from \"../../interfaces\";\nimport { Form } from \"../form/form.component\";\nimport { ChangedSubmission } from \"../form/useForm.hook\";\nimport { getFormSettingsSchema } from \"./formSettings.schema\";\nimport { FormSettingsSchema, formSettingsToSubmission, submissionToFormSettings } from \"./formSettings.utils\";\n\nexport interface FormSettingsProps {\n form: Partial<FormSchema>;\n onSubmit?: Function;\n options?: FormOptions;\n}\n\nfunction useFormSettings({ form: formDefinition, onSubmit = noop, options }: FormSettingsProps) {\n const form = getFormSettingsSchema();\n const [isValid, setIsValid] = useState(true);\n const [submission, setSubmission] = useState(() => formSettingsToSubmission(formDefinition));\n\n const onChange = ({ data, isValid }: ChangedSubmission<FormSettingsSchema>) => {\n if (isValid) {\n setSubmission({ data });\n }\n setIsValid(isValid);\n };\n\n useEffect(() => {\n const input = formSettingsToSubmission(formDefinition);\n if (formDefinition?._id && !isEqual(submission.data, input.data)) {\n setSubmission(input);\n }\n }, [formDefinition?._id]);\n\n return {\n options,\n form,\n type: formDefinition.type,\n submission,\n onChange,\n isValid,\n setIsValid,\n onSubmit: () => {\n onSubmit(submissionToFormSettings(formDefinition, submission));\n }\n };\n}\n\nexport function FormSettings(props: FormSettingsProps) {\n const { form, submission, options = {}, onChange, onSubmit, isValid } = useFormSettings(props);\n\n const i18n = options.i18n || ((f: string) => f);\n\n return (\n <div>\n <Form form={form} submission={submission} onChange={onChange} options={options} />\n\n <button data-testid='submit' disabled={!isValid} className={\"mt-5 btn btn-primary\"} onClick={onSubmit} type={\"submit\"}>\n {i18n(\"Save settings\")}\n </button>\n </div>\n );\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nimport { Select } from \"../../select/select.component\";\n\nexport function SelectColumnFilter<D extends Record<string, unknown> = {}>({ column }: FilterProps<D>) {\n const { id, preFilteredRows, filterValue, setFilter } = column;\n const { choices: customChoices } = column as any;\n\n const choices =\n customChoices ||\n [...new Set(preFilteredRows.map((row) => row.values[id]))].filter((value) => value).map((value) => ({ label: value, value }));\n\n return (\n <Select\n key={`filter-${column.id}`}\n name={`filter-${column.id}`}\n size={\"sm\"}\n value={filterValue}\n choices={[{ value: \"\", label: \"All\" }].concat(choices)}\n onChange={(name, value) => {\n setFilter(value || undefined);\n }}\n />\n );\n}\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import classnames from \"classnames\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { CellProps } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { iconClass } from \"../../../utils/iconClass\";\nimport { stopPropagationWrapper } from \"../../../utils/stopPropagationWrapper\";\n\nexport function FormsCell(props: CellProps<FormSchema> & { icon: string; i18n: (f: string) => string }) {\n const {\n icon = \"server\",\n row: { original: form }\n } = props;\n\n return (\n <div className={\"p-1\"}>\n <h4 className={\"text-primary text-lg flex items-center\"}>\n <i className={classnames(iconClass(undefined, icon), \"mr-1\")} />\n {form.title}\n </h4>\n\n <ul className='reset-list text-gray-500'>\n <li className={\"text-sm\"}>Name: {form.name || form.machineName}</li>\n <li className='mt-5'>\n <span className='badge bg-light mr-1'>\n <i className={classnames(iconClass(undefined, \"history\"), \"mr-1\")} />\n <span>Updated {moment(form.modified).fromNow()}</span>\n </span>\n\n {(form.tags || []).map((tag, index) => (\n <button\n key={index}\n className='badge badge-hover bg-secondary mr-1'\n onClick={stopPropagationWrapper(() => {\n props.setFilter(\"tags\", tag);\n props.gotoPage(0);\n })}\n >\n <i className={classnames(iconClass(undefined, \"tags\"), \"mr-1\")} />\n {tag}\n </button>\n ))}\n </li>\n </ul>\n </div>\n );\n}\n","import React from \"react\";\n\nimport { FormSchema } from \"../../interfaces\";\nimport { DefaultColumnFilter } from \"../table/filters/defaultColumnFilter.component\";\nimport { SelectColumnFilter } from \"../table/filters/selectColumnFilter.component\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { FormsCell as DefaultFormCell } from \"./components/formCell.component\";\n\nexport type FormsTableProps = Omit<TableProps<FormSchema>, \"columns\"> & {\n icon?: string;\n tags?: { label: string; value: string }[];\n};\n\nexport function FormsTable({ Cell, ...props }: FormsTableProps) {\n const { i18n = (f: string) => f, tags } = props;\n const FormCell = Cell || (DefaultFormCell as any);\n const columns = [\n {\n Header: i18n(\"Title\"),\n accessor: \"title\",\n id: \"title\",\n Cell: (props: any) => <FormCell {...props} icon={props.icon} i18n={i18n} />,\n Filter: DefaultColumnFilter,\n colspan: 2\n },\n {\n Header: i18n(\"Tags\"),\n accessor: \"tags\",\n id: \"tags\",\n hidden: true,\n Filter: (props: any) =>\n tags && tags.length ? (\n <SelectColumnFilter {...props} column={{ ...props.columns, choices: tags }} />\n ) : (\n <DefaultColumnFilter {...props} />\n )\n }\n ];\n\n return <Table {...props} columns={columns} />;\n}\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport interface LoaderProps {\n isActive?: boolean;\n color?: string;\n icon?: string;\n className?: string;\n}\n\nexport function Loader({ isActive, color = \"blue\", icon = \"radio-circle\", className = \"\" }: PropsWithChildren<LoaderProps>) {\n if (isActive) {\n return (\n <div\n className={classnames(\n \"opacity-85 z-20 flex items-center justify-center p-5 absolute top-0 right-0 left-0 bottom-0 bg-white\",\n className\n )}\n >\n <span data-testid={`icon_${icon}`} color={color} className={`text-11xl ${iconClass(undefined, icon, true)}`} />\n </div>\n );\n }\n return null;\n}\n\nLoader.propTypes = {\n isActive: PropTypes.bool,\n icon: PropTypes.string,\n color: PropTypes.string,\n className: PropTypes.string\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport noop from \"lodash\";\nimport React, { PropsWithChildren, useEffect, useRef, useState } from \"react\";\n\nexport function useModal() {\n const [show, setShowModal] = useState(false);\n\n return {\n show,\n setShowModal,\n openModal() {\n setShowModal(true);\n },\n closeModal() {\n setShowModal(false);\n }\n };\n}\n\nexport interface ModalProps extends Record<string, any> {\n show?: boolean;\n closeModal?: () => void;\n onClose?: () => void;\n footer?: any;\n title?: string;\n}\n\nexport function Modal({\n show,\n children,\n closeModal = noop as any,\n onClose = noop as any,\n title,\n footer: ModalFooter,\n style,\n className = \"\",\n ...props\n}: PropsWithChildren<ModalProps>) {\n const titleRef: any = useRef<HTMLDivElement>();\n const footerRef: any = useRef<HTMLDivElement>();\n const [maxHeight, setMaxHeight] = useState<string>();\n\n const onClickClose = () => {\n closeModal();\n onClose();\n };\n\n useEffect(() => {\n if (titleRef.current || footerRef.current) {\n const height = (titleRef?.current?.offsetHeight || 0) + (footerRef?.current?.offsetHeight || 0);\n\n setMaxHeight(`calc(85vh - ${height}px)`);\n } else {\n setMaxHeight(\"auto\");\n }\n }, [show]);\n\n if (!show) {\n return null;\n }\n\n return (\n <div role={\"dialog\"} className={`formio-dialog formio-dialog-theme-default ${className}`}>\n <div className='formio-dialog-overlay' onClick={onClickClose} />\n <div style={style} className={\"formio-dialog-content\"}>\n <div className={\"formio-dialog-wrapper\"}>\n {title ? (\n <div className={\"formio-dialog-title\"} ref={titleRef} data-testid={\"modalTitle\"}>\n {title}\n </div>\n ) : null}\n\n <div className='formio-dialog-body' style={{ maxHeight }} data-testid={\"modalBody\"}>\n {show && children}\n </div>\n\n {ModalFooter ? (\n <div className={\"formio-dialog-footer\"} ref={footerRef} data-testid={\"modalFooter\"}>\n <ModalFooter {...props} closeModal={closeModal} onClose={onClickClose} />\n </div>\n ) : null}\n </div>\n <button\n className='formio-dialog-close float-right btn btn-secondary btn-sm'\n aria-label='close'\n data-testid={\"closeModal\"}\n onClick={onClickClose}\n />\n </div>\n </div>\n );\n}\n","import classnames from \"classnames\";\nimport noop from \"lodash/noop\";\nimport React, { PropsWithChildren, useState } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\nimport { InputText } from \"../input-text/inputText.component\";\nimport { Modal, ModalProps } from \"./modal.component\";\n\nfunction RemoveModalFooter({ value, valueToCompare, onSubmit, onClose, i18n = (f: string) => f }: ModalProps) {\n return (\n <div className={\"flex items-center justify-center bg-white p-2\"}>\n <button data-testid='customCloseModal' className={\"btn btn-outline-dark mx-2\"} onClick={onClose}>\n {i18n(\"Cancel\")}\n </button>\n <button\n disabled={valueToCompare !== value}\n data-testid='customSubmitModal'\n className={\"btn btn-danger mx-2\"}\n onClick={(e) => {\n if (valueToCompare === value) {\n onSubmit(e);\n }\n }}\n >\n <i className={classnames(iconClass(undefined, \"trash\"), \"mr-2\")} />\n {i18n(\"Remove\")}\n </button>\n </div>\n );\n}\n\nexport interface RemoveModalProps extends ModalProps {\n valueToCompare: string;\n itemType?: string;\n i18n?: (f: string) => string;\n maxWidth?: string;\n}\n\nexport function RemoveModal({ maxWidth = \"300px\", children, ...props }: PropsWithChildren<RemoveModalProps>) {\n const { i18n = noop } = props;\n const [value, setValue] = useState();\n\n return (\n <Modal\n {...props}\n className={classnames(props.className, \"formio-dialog-theme-remove\")}\n style={{ maxWidth }}\n title={`Drop ${props.itemType?.toLowerCase()}`}\n value={value}\n footer={RemoveModalFooter}\n >\n <div className={\"px-4 pt-3 pb-5\"}>\n <div className={\"pb-1\"}>\n {children}\n {i18n(\"To drop\")} <strong>{props.valueToCompare}</strong>, \n {i18n(\"type the\")} \n <strong>"{props.itemType?.toLowerCase()}"</strong> \n {i18n(\"name\")} <strong>"{props.valueToCompare}"</strong>.\n </div>\n <InputText name='remove' value={value} onChange={(name, value) => setValue(value)} />\n </div>\n </Modal>\n );\n}\n","import { Components, ComponentSchema } from \"formiojs\";\nimport ReactDOM from \"react-dom\";\n\nimport { Submission } from \"../../interfaces/Submission\";\n\nexport class ReactComponent<Data = any> extends Components.components.field {\n public reactInstance: any;\n public shouldSetValue?: boolean;\n private dataForSetting?: Data;\n\n /**\n * This is the first phase of component building where the component is instantiated.\n *\n * @param component - The component definition created from the settings form.\n * @param options - Any options passed into the renderer.\n * @param data - The submission data where this component's data exists.\n */\n // eslint-disable-next-line no-useless-constructor,import/no-anonymous-default-export\n constructor(component: ComponentSchema, options: any, data: Submission<Data>) {\n super(component, options, data);\n }\n\n get $reactNode() {\n return (this.refs as any)[`react-${this.id}`];\n }\n\n /**\n * This method is called any time the component needs to be rebuilt. It is most frequently used to listen to other\n * components using the this.on() function.\n */\n init() {\n return super.init();\n }\n\n /**\n * This method is called before the component is going to be destroyed, which is when the component instance is\n * destroyed. This is different from detach which is when the component instance still exists but the dom instance is\n * removed.\n */\n destroy() {\n return super.destroy();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * The third phase of component building where the component has been attached to the DOM as 'element' and is ready\n * to have its javascript events attached.\n *\n * @param element\n * @returns {Promise<void>} - Return a promise that resolves when the attach is complete.\n */\n async attach(element: any) {\n super.attach(element);\n\n // The loadRefs function will find all dom elements that have the \"ref\" setting that match the object property.\n // It can load a single element or multiple elements with the same ref.\n this.loadRefs(element, {\n [`react-${this.id}`]: \"single\"\n });\n\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.reactInstance = this.attachReact(this.refs[`react-${this.id}`]);\n\n if (this.shouldSetValue) {\n this.setValue(this.dataForSetting);\n this.updateValue(this.dataForSetting);\n }\n }\n }\n\n /**\n * The fourth phase of component building where the component is being removed from the page. This could be a redraw\n * or it is being removed from the form.\n */\n detach() {\n // @ts-ignore\n if (this.refs[`react-${this.id}`]) {\n // @ts-ignore\n this.detachReact(this.refs[`react-${this.id}`]);\n }\n super.detach();\n }\n\n /**\n * Override this function to render a react component.\n */\n renderReact(): any {\n return null;\n }\n\n /**\n * Override this function to insert your custom component.\n *\n * @param element\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n attachReact(element?: any) {\n // eslint-disable-next-line react/no-render-return-value\n return ReactDOM.render(this.renderReact(), element);\n }\n\n /**\n * Override this function.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n detachReact(element?: any) {\n if (element) {\n ReactDOM.unmountComponentAtNode(element);\n }\n }\n\n /**\n * Something external has set a value and our component needs to be updated to reflect that. For example, loading a submission.\n *\n * @param value\n * @param flags\n */\n setValue(value: any, flags?: any) {\n if (this.reactInstance) {\n this.reactInstance.setState({\n value: value\n });\n this.shouldSetValue = false;\n } else {\n this.shouldSetValue = true;\n this.dataForSetting = value;\n }\n\n return false;\n }\n\n /**\n * The user has changed the value in the component and the value needs to be updated on the main submission object and other components notified of a change event.\n *\n * @param value\n * @param flags\n */\n updateValue = (value?: Data, flags?: Record<string, any>) => {\n flags = flags || {};\n\n const newValue = value === undefined || value === null ? this.getValue() : value;\n\n const changed = newValue !== undefined ? this.hasChanged(newValue, this.dataValue) : false;\n\n this.dataValue = Array.isArray(newValue) ? [...newValue] : newValue;\n\n this.updateOnChange(flags, changed);\n return changed;\n };\n\n /**\n * Get the current value of the component. Should return the value set in the react component.\n *\n * @returns {*}\n */\n getValue(): Data {\n if (this.reactInstance) {\n return this.reactInstance.state.value;\n }\n return this.defaultValue;\n }\n\n /**\n * Override normal validation check to insert custom validation in react component.\n *\n * @param data\n * @param dirty\n * @param rowData\n * @returns {boolean}\n */\n checkValidity(data: Data, dirty: boolean, rowData: any) {\n const valid = super.checkValidity(data, dirty, rowData);\n\n if (!valid) {\n return false;\n }\n\n return this.validate(data, dirty, rowData);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(data: Data, dirty: boolean, rowData: any) {\n return true;\n }\n}\n","import React from \"react\";\n\nexport function DefaultCell({ value, render = (f: any) => f }: any): JSX.Element {\n if (value === undefined) {\n return <span></span>;\n }\n\n const rendered = render(value);\n\n if (value !== rendered) {\n return <div dangerouslySetInnerHTML={{ __html: rendered }} />;\n }\n\n return <span>{String(value)}</span>;\n}\n","import { Components, ExtendedComponentSchema } from \"formiojs\";\nimport FormioUtils from \"formiojs/utils\";\nimport React from \"react\";\nimport { Column } from \"react-table\";\n\nimport { FormSchema } from \"../../../interfaces\";\nimport { DefaultCell } from \"../components/defaultCell.component\";\nimport { SelectColumnFilter } from \"../filters/selectColumnFilter.component\";\n\nexport function mapFormToColumns(form: FormSchema): Column[] {\n const columns: Column[] = [];\n\n FormioUtils.eachComponent(form.components, (component: ExtendedComponentSchema) => {\n if (component.tableView && component.key) {\n const cmp: any = Components.create(component, {}, null, true);\n\n const column: Column = {\n Header: component.label || component.title || component.key,\n accessor: `data.${component.key}`,\n Cell: (props: any) => <DefaultCell {...props} render={(value: any) => cmp.asString(value)} />\n };\n\n if (component.type === \"select\" && component.dataSrc === \"values\") {\n column.Filter = SelectColumnFilter;\n (column as any).choices = component.data.values;\n }\n\n columns.push(column);\n }\n });\n\n return columns;\n}\n","import React from \"react\";\n\nimport { FormSchema, Submission } from \"../../interfaces\";\nimport { Table, TableProps } from \"../table/table.component\";\nimport { mapFormToColumns } from \"../table/utils/mapFormToColumns\";\n\nexport type SubmissionsTableProps = Omit<TableProps<Submission>, \"columns\"> & {\n form?: FormSchema;\n};\n\nexport function SubmissionsTable({ form, ...props }: SubmissionsTableProps) {\n const columns: any[] | undefined = form && mapFormToColumns(form);\n\n return <Table {...props} columns={columns!} />;\n}\n","import React from \"react\";\nimport { FilterProps } from \"react-table\";\n\nexport function SliderColumnFilter<D extends Record<string, unknown> = {}>({\n column: { filterValue, setFilter, preFilteredRows, id }\n}: FilterProps<D>) {\n const [min, max] = React.useMemo(() => {\n let min = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n let max = preFilteredRows.length ? preFilteredRows[0].values[id] : 0;\n preFilteredRows.forEach((row) => {\n min = Math.min(row?.values[id], min);\n max = Math.max(row?.values[id], max);\n });\n return [min, max];\n }, [id, preFilteredRows]);\n\n return (\n <>\n <input\n type='range'\n min={min}\n max={max}\n value={filterValue || min}\n onChange={(e) => {\n setFilter(parseInt(e.target.value, 10));\n }}\n />\n <button onClick={() => setFilter(undefined)}>Off</button>\n </>\n );\n}\n","import classnames from \"classnames\";\nimport React, { PropsWithChildren } from \"react\";\n\nimport { iconClass } from \"../../utils/iconClass\";\n\nexport function ButtonTab({ icon, back, onClick, isActive, reverse, children, className, after }: PropsWithChildren<any>) {\n return (\n <div\n title={\"button-wrapper\"}\n className={classnames(\"tw-tabs__button-wrapper\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\", className)}\n >\n <button\n title={\"button-tab\"}\n className={classnames(\"tw-tabs__button\", reverse ? \"-reverse\" : \"\", isActive ? \"-active\" : \"\", back ? \"-back\" : \"\")}\n onClick={onClick}\n >\n {icon && <i className={classnames(iconClass(undefined, icon), \"tw-tabs__button-icon\")} />}\n <span className={\"tw-tabs__button-label\"}>{children}</span>\n {after}\n </button>\n <div className={classnames(\"tw-tabs__button-border\", isActive ? \"-active\" : \"\")} />\n </div>\n );\n}\n\nexport interface TabsItemProps extends Record<string, any> {\n label?: string;\n icon?: string;\n}\n\nexport interface TabsProps extends Record<string, any> {\n headerChildren?: any;\n AddButton?: any;\n current?: TabsItemProps;\n items?: TabsItemProps[];\n style?: any;\n className?: string;\n reverse?: boolean;\n Button?: any;\n onClick?: (item: TabsItemProps) => void;\n i18n?: (f: string) => string;\n}\n\nexport function Tabs({\n style,\n current,\n items = [],\n children,\n HeaderChildren,\n AddButton,\n Button = ButtonTab,\n className,\n onClick,\n i18n = (f) => f,\n ...additionalProps\n}: PropsWithChildren<TabsProps>) {\n return (\n <div data-testid={\"tabs-comp\"} className={`tw-tabs ${className}`} style={style}>\n <div>\n <nav className='tw-tabs__header'>\n <div className='tw-tabs__header-wrapper'>\n <div className='tw-tabs__header-border' />\n {items\n .filter((item) => item.label || item.icon)\n .map((item, index) => {\n return (\n <Button\n key={index}\n back={item.back}\n isActive={current?.action === item.action}\n exact={item.exact}\n onClick={() => {\n onClick && onClick(item);\n }}\n {...additionalProps}\n {...item}\n >\n {i18n(item.label || \"\")}\n </Button>\n );\n })}\n {AddButton && <AddButton {...additionalProps} current={current} />}\n </div>\n </nav>\n {HeaderChildren && <HeaderChildren {...additionalProps} current={current} />}\n </div>\n <div title={\"tab-body\"} className={\"tw-tabs__body\"}>\n {children}\n </div>\n </div>\n );\n}\n","export function mapPagination({ skip, limit, serverCount, length }: any = {}): any {\n skip = skip || 0;\n limit = limit || 10;\n serverCount = serverCount || length;\n\n return {\n pageIndex: Math.floor(skip / limit),\n pageSize: limit,\n pageCount: Math.ceil(serverCount / limit)\n };\n}\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","module","exports","window","iconClass","iconset","name","spinning","Templates","current","defaultIconset","getEventValue","event","target","multiple","selectedOptions","from","option","value","type","checked","FormControl","children","required","prefix","suffix","description","label","className","React","classnames","propTypes","PropTypes","string","isRequired","any","bool","Select","size","onChange","choices","placeholder","layout","props","ref","useRef","useEffect","instance","Choices","removeItemButton","placeholderValue","destroy","map","String","func","array","LEFT_PAGE","RIGHT_PAGE","range","to","step","getPageNumbers","currentPage","pageNeighbours","totalPages","totalNumbers","totalBlocks","calculatedStartPage","Math","max","calculatedEndPage","min","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","PaginationButton","component","Component","disabled","active","otherProps","Pagination","pageSizes","gotoPage","canPreviousPage","previousPage","nextPage","canNextPage","pageCount","pageIndex","pageOptions","pageSize","setPageSize","i18n","f","pageNumbers","page","includes","DefaultArrowSort","column","isSorted","isSortedDesc","undefined","DefaultCellHeader","getSortByToggleProps","render","canFilter","callLast","fn","time","last","clearTimeout","setTimeout","InputText","useState","localValue","setValue","change","useMemo","DefaultColumnFilter","filterId","setFilterId","id","filterValue","setFilter","useCallback","stopPropagationWrapper","stopPropagation","DefaultOperationButton","buttonSize","buttonType","buttonOutline","onClick","action","icon","title","filter","Boolean","DefaultCellOperations","operations","row","ctx","data","original","permissionsResolver","OperationButton","operation","useOperations","CellOperations","hooks","visibleColumns","columns","groupByBoundary","Header","Cell","getOperationCallback","find","alias","DefaultLoader","DefaultEmptyData","useFilters","useGroupBy","useSortBy","usePagination","Table","noop","controlledFilters","filters","controlledFilterId","controlledPageSize","controlledPageIndex","controlledSortBy","sortBy","isLoading","disableFilters","disablePagination","ArrowSort","ColumnFilter","EmptyData","Loader","DefaultPagination","CellHeader","_onClick","defaultColumn","Filter","tableInstance","useTable","initialState","manualPagination","manualSortBy","manualFilters","state","getTableProps","headerGroups","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getTableBodyProps","prepareRow","getRowProps","cells","cell","hidden","colspan","getCellProps","ActionsTable","availableActions","onAddAction","currentAction","setAction","accessor","concat","formatError","error","Object","prototype","keys","errors","index","item","path","message","details","Alert","Card","useEvent","callback","events","set","useEvents","funcs","Map","hasEvent","emit","has","get","useForm","customValidation","submission","err","src","form","options","url","element","isLoaded","createWebForm","srcOrForm","assign","cloneDeep","Form","onAny","args","startsWith","eventName","charAt","toUpperCase","slice","changed","ready","then","formio","onFormReady","isEqual","Components","setComponents","AllComponents","object","shape","readOnly","noAlerts","template","saveDraft","onPrevPage","onNextPage","onCancel","onCustomEvent","onComponentChange","onSubmit","onAsyncSubmit","onSubmitDone","onFormLoad","onError","onRender","onAttach","onBuild","onFocus","onBlur","onInitialized","formioform","getRoleComponent","labelPosition","widget","tooltip","dataSrc","defaultValue","values","searchEnabled","selectThreshold","validate","custom","customPrivate","toDescription","hr","getSubmissionPermissionForm","components","getAccessPermissionForm","rolesToChoices","roles","role","_id","accessToHash","access","hash","reduce","o","hashToAccess","accessRoles","entries","forEach","accessType","getFormAccess","submissionAccess","dataAccessToSubmissions","formAccess","getKeys","submissionsToDataAccess","submissions","shouldUpdate","updateSubmissions","cb","useFormAccess","formDefinition","setSubmissions","input","NamedFormAccess","isValid","setIsValid","FormAccess","mapData","defaults","mapSettingsForm","settingsForm","FormioUtils","eachComponent","resourceExclude","basePath","valueProperty","persistent","FormAction","actionInfo","createBuilder","el","display","FormioFormBuilder","builder","handleEvent","EVENTS_CHANGE","EVENTS","on","er","console","FormBuilder","elRef","builderRef","componentDidMount","create","onAddComponent","onUpdateComponent","onRemoveComponent","onSaveComponent","onCancelComponent","onMoveComponent","onEditComponent","onEditJson","onCopyComponent","onPasteComponent","firstChild","whenComponentsChange","bind","componentWillUnmount","componentWillReceiveProps","nextProps","setState","e","defaultProps","onReady","onDestroy","useTooltip","Tooltip","FormEditCTAs","saveText","onCopy","hasUndo","hasRedo","onUndo","onRedo","onReset","t","copyTooltipRef","trigger","placement","undoTooltipRef","redoTooltipRef","resetTooltipRef","InputTags","delimiter","editItems","passedElement","addEventListener","uniq","detail","v","defaultDisplayChoices","FormParameters","enableTags","typeChoices","displayChoices","readonly","baseUrl","location","origin","hasTypeChoices","textTransform","width","tags","hasChanged","createInitialState","past","future","reducer","update","newValue","camelCase","toLowerCase","previous","newPast","next","newFuture","useFormEdit","useReducer","dispatchFormAction","modified","formChange","newForm","redo","undo","reset","setChange","FormEdit","getFormSettingsSchema","mask","inputType","inputFormat","spellcheck","attributes","delimeter","storeas","maxTags","addAnother","disableAddingRemovingRows","keyBeforeValue","valueComponent","hideLabel","formSettingsToSubmission","properties","submissionToFormSettings","useFormSettings","setSubmission","FormSettings","SelectColumnFilter","preFilteredRows","customChoices","Set","global","factory","this","hookCallback","setHookCallback","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","arr","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","some","fun","len","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","Error","stack","deprecations","deprecateSimple","isFunction","Function","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","sign","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","match","replace","makeFormatFunction","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","datetime","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","FormsCell","machineName","moment","tag","FormsTable","FormCell","DefaultFormCell","isActive","color","useModal","show","setShowModal","openModal","closeModal","Modal","onClose","ModalFooter","footer","style","titleRef","footerRef","maxHeight","setMaxHeight","onClickClose","height","offsetHeight","RemoveModalFooter","valueToCompare","RemoveModal","maxWidth","itemType","ReactComponent","reactInstance","shouldSetValue","dataForSetting","updateValue","getValue","dataValue","updateOnChange","init","attach","loadRefs","refs","attachReact","detach","detachReact","renderReact","ReactDOM","unmountComponentAtNode","checkValidity","dirty","rowData","valid","DefaultCell","rendered","__html","mapFormToColumns","tableView","cmp","asString","SubmissionsTable","SliderColumnFilter","ButtonTab","back","reverse","after","Tabs","items","HeaderChildren","AddButton","Button","additionalProps","exact","mapPagination","skip","serverCount"],"mappings":"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"}
|