@bigbinary/neeto-rules-frontend 2.8.1 → 2.8.2

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.
Files changed (30) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/NeetoRulesBuilder.js +2 -2
  3. package/dist/NeetoRulesForm.js +2 -2
  4. package/dist/cjs/NeetoRulesBuilder.js +2 -2
  5. package/dist/cjs/NeetoRulesForm.js +2 -2
  6. package/dist/cjs/index.js +2 -2
  7. package/dist/cjs/v2/NeetoRulesBuilder.js +19 -5
  8. package/dist/cjs/v2/NeetoRulesBuilder.js.map +1 -1
  9. package/dist/cjs/v2/NeetoRulesForm.js +2 -2
  10. package/dist/cjs/v2/index.js +3 -3
  11. package/dist/{index-BaOdrc0i.js → index-2g75amrM.js} +2 -2
  12. package/dist/{index-BaOdrc0i.js.map → index-2g75amrM.js.map} +1 -1
  13. package/dist/{index-DKzV1N4S.js → index-D-pmcUGT.js} +2 -2
  14. package/dist/{index-DKzV1N4S.js.map → index-D-pmcUGT.js.map} +1 -1
  15. package/dist/{index-mKR24WaR.js → index-ql13coG-.js} +2 -2
  16. package/dist/{index-mKR24WaR.js.map → index-ql13coG-.js.map} +1 -1
  17. package/dist/{index-I0Wx9GGO.js → index-r4DcZ3Hk.js} +2 -2
  18. package/dist/{index-I0Wx9GGO.js.map → index-r4DcZ3Hk.js.map} +1 -1
  19. package/dist/index.js +2 -2
  20. package/dist/keyboardShortcuts-B-6CQw6N.js +92 -0
  21. package/dist/{keyboardShortcuts-CsMwT9YF.js.map → keyboardShortcuts-B-6CQw6N.js.map} +1 -1
  22. package/dist/keyboardShortcuts-BGpApRKG.js +96 -0
  23. package/dist/{keyboardShortcuts-CnEwhJom.js.map → keyboardShortcuts-BGpApRKG.js.map} +1 -1
  24. package/dist/v2/NeetoRulesBuilder.js +20 -6
  25. package/dist/v2/NeetoRulesBuilder.js.map +1 -1
  26. package/dist/v2/NeetoRulesForm.js +2 -2
  27. package/dist/v2/index.js +3 -3
  28. package/package.json +20 -20
  29. package/dist/keyboardShortcuts-CnEwhJom.js +0 -96
  30. package/dist/keyboardShortcuts-CsMwT9YF.js +0 -92
@@ -1 +1 @@
1
- {"version":3,"file":"NeetoRulesBuilder.js","sources":["../../app/javascript/src/v2/components/NeetoRulesBuilder/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/useClearingHover.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Token/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/useReplayFlash.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Token/index.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Token/Values.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/utils.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ConditionRow.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/Connector.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/DelayRow.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/MetaBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ScopeBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ActionRow.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ThenBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/WhenBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/usePaneCascade.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/useRuleModel.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/utils.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/index.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/EmailChannelFields.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/ActionConfigFields.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/usePaneValidation.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/ConfigPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/DelayPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Common/utils.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Common/NumberStepper.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/LeadTimePane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/NamePane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/OptionsPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/RecipientField.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/RecipientPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/ConditionValueFields.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/ValuePane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Form.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/index.jsx"],"sourcesContent":["export const PARAM_KIND = {\n ENUM_SINGLE: \"enum-single\",\n ENUM_MULTI: \"enum-multi\",\n};\n\nexport const UNIT_MINUTES = { minutes: 1, hours: 60, days: 1440 };\n\n/* eslint-disable @bigbinary/neeto/hard-coded-strings-should-be-localized */\n/* eslint-disable @bigbinary/neeto/neetocommons-tips */\nexport const TIME_UNITS = [\n { label: \"minutes\", value: \"minutes\" },\n { label: \"hours\", value: \"hours\" },\n { label: \"days\", value: \"days\" },\n];\n/* eslint-enable @bigbinary/neeto/hard-coded-strings-should-be-localized */\n/* eslint-enable @bigbinary/neeto/neetocommons-tips */\n\nexport const LEAD_TIME_UNITS = TIME_UNITS;\n\n// Mirrors the classic form's three-digit input cap; 999 days equals the\n// backend's maximum lead time.\nexport const MAX_LEAD_TIME_VALUE = 999;\n\nexport const STEPPER_DELTA = { INCREMENT: 1, DECREMENT: -1 };\n\nexport const STEPPER_MIN_VALUE = 1;\n\nexport const DEFAULT_DELAY_VALUE = 10;\n\n// Matches the token flash animation duration in sentence-builder.css.\nexport const FLASH_DURATION_MS = 2200;\n\n// Keeps an element out of the keyboard tab order (HTML tabindex sentinel).\nexport const SKIP_TAB_INDEX = -1;\n\nexport const CONDITION_VERBS = {\n IS: \"is\",\n IS_NOT: \"is_not\",\n ANY_OF: \"any_of\",\n NONE_OF: \"none_of\",\n ALL_OF: \"all_of\",\n LESS_THAN: \"less_than\",\n GREATER_THAN: \"greater_than\",\n};\n\nexport const VERB_TOKENS = {\n MULTI_VALUE: \"_of\",\n CONTAINS: \"contains\",\n};\n\nexport const DEFAULT_SCHEMA = {\n triggers: { fieldKey: \"events\", options: [] },\n actor: { enabled: false, options: [], fieldKey: \"performer\" },\n conditions: { fields: [], fieldKey: \"conditions\", connectorMode: \"shared\" },\n actions: {\n options: [],\n channelMeta: {},\n recipients: [],\n fieldKey: \"actions\",\n },\n delay: { enabled: false, fieldKey: \"execution_delay\", units: [] },\n integrations: {},\n slots: {},\n};\n\nexport const STATUS_KEYS = { ENABLED: \"enabled\", DISABLED: \"disabled\" };\n\nexport const JOIN_TYPE = { and: \"and_operator\", or: \"or_operator\" };\n\nexport const CONDITION_MODE = { AND: \"and\", OR: \"or\" };\n\nexport const BUILDER_PANEL_TYPES = {\n TRIGGER: \"builder-trigger\",\n ACTOR: \"builder-actor\",\n CONDITION_FIELD: \"builder-condition-field\",\n OPERATOR: \"builder-operator\",\n CONNECTOR: \"builder-connector\",\n CONDITION_VALUE: \"builder-condition-value\",\n ACTION_CHANNEL: \"builder-action-channel\",\n ACTION_CONFIG: \"builder-action-config\",\n ACTION_STEP: \"builder-action-step\",\n RECIPIENT: \"builder-recipient\",\n DELAY: \"builder-delay\",\n LEAD_TIME: \"builder-lead-time\",\n NAME: \"builder-name\",\n SCOPE: \"builder-scope\",\n SCOPE_PHONE_FIELD: \"builder-scope-phone-field\",\n};\n\nexport const BUILDER_ANCHORS = {\n TRIGGER_ADD: \"trigger-add\",\n TRIGGER_REPLACE: \"trigger-replace\",\n TRIGGER_ACTOR: \"trigger-actor\",\n TRIGGER_LEAD_TIME: \"trigger-lead-time\",\n COND_FIELD: \"cond-field\",\n COND_OP_TOGGLE: \"cond-op-toggle\",\n COND_CONNECTOR: \"cond-connector\",\n COND_VALUES: \"cond-values\",\n ACTION_ADD: \"action-add\",\n ACTION_CHANNEL: \"action-channel\",\n ACTION_CONFIG: \"action-config\",\n ACTION_RECIPIENT: \"action-recipient\",\n ACTION_STEP: \"action-step\",\n RULE_DELAY: \"rule-delay\",\n META_NAME: \"meta-name\",\n SCOPE: \"scope\",\n SCOPE_PHONE_FIELD: \"scope-phone-field\",\n};\n\nexport const TOKEN_TO_PANEL_TYPE = {\n [BUILDER_ANCHORS.TRIGGER_ADD]: BUILDER_PANEL_TYPES.TRIGGER,\n [BUILDER_ANCHORS.TRIGGER_REPLACE]: BUILDER_PANEL_TYPES.TRIGGER,\n [BUILDER_ANCHORS.TRIGGER_ACTOR]: BUILDER_PANEL_TYPES.ACTOR,\n [BUILDER_ANCHORS.COND_FIELD]: BUILDER_PANEL_TYPES.CONDITION_FIELD,\n [BUILDER_ANCHORS.COND_OP_TOGGLE]: BUILDER_PANEL_TYPES.OPERATOR,\n [BUILDER_ANCHORS.COND_CONNECTOR]: BUILDER_PANEL_TYPES.CONNECTOR,\n [BUILDER_ANCHORS.COND_VALUES]: BUILDER_PANEL_TYPES.CONDITION_VALUE,\n [BUILDER_ANCHORS.ACTION_ADD]: BUILDER_PANEL_TYPES.ACTION_CHANNEL,\n [BUILDER_ANCHORS.ACTION_CHANNEL]: BUILDER_PANEL_TYPES.ACTION_CHANNEL,\n [BUILDER_ANCHORS.ACTION_CONFIG]: BUILDER_PANEL_TYPES.ACTION_CONFIG,\n [BUILDER_ANCHORS.ACTION_RECIPIENT]: BUILDER_PANEL_TYPES.RECIPIENT,\n [BUILDER_ANCHORS.ACTION_STEP]: BUILDER_PANEL_TYPES.ACTION_STEP,\n [BUILDER_ANCHORS.RULE_DELAY]: BUILDER_PANEL_TYPES.DELAY,\n [BUILDER_ANCHORS.TRIGGER_LEAD_TIME]: BUILDER_PANEL_TYPES.LEAD_TIME,\n [BUILDER_ANCHORS.META_NAME]: BUILDER_PANEL_TYPES.NAME,\n [BUILDER_ANCHORS.SCOPE]: BUILDER_PANEL_TYPES.SCOPE,\n [BUILDER_ANCHORS.SCOPE_PHONE_FIELD]: BUILDER_PANEL_TYPES.SCOPE_PHONE_FIELD,\n};\n\nexport const LARGE_PANEL_TYPES = [\n BUILDER_PANEL_TYPES.ACTION_CONFIG,\n BUILDER_PANEL_TYPES.SCOPE,\n BUILDER_PANEL_TYPES.NAME,\n];\n\nexport const CONDITION_ANCHORS = [\n BUILDER_ANCHORS.COND_FIELD,\n BUILDER_ANCHORS.COND_OP_TOGGLE,\n BUILDER_ANCHORS.COND_VALUES,\n BUILDER_ANCHORS.COND_CONNECTOR,\n];\n\nexport const ACTION_ANCHORS = [\n BUILDER_ANCHORS.ACTION_CHANNEL,\n BUILDER_ANCHORS.ACTION_CONFIG,\n BUILDER_ANCHORS.ACTION_RECIPIENT,\n BUILDER_ANCHORS.ACTION_STEP,\n];\n\nexport const PANE_SEARCH_THRESHOLD = 8;\n\nexport const CONFIG_FOCUSABLE_SELECTOR =\n 'input:not([type=\"radio\"]):not([type=\"checkbox\"]), textarea, [contenteditable=\"true\"]';\n\nexport const SMS_TYPES = [\"sms\", \"smsToNumbers\"];\n\nexport const RECIPIENT_FOCUSABLE_SELECTOR =\n 'input, textarea, [contenteditable=\"true\"]';\n\nexport const SMS_TO_NUMBERS = \"smsToNumbers\";\n\nexport const RECIPIENT_STORAGE_FIELDS = {\n emails: \"emails\",\n value: \"value\",\n phoneNumbers: \"phoneNumbers\",\n};\n\nexport const DEFAULT_DELAY_UNITS = TIME_UNITS;\n","import { useState } from \"react\";\n\nconst useClearingHover = () => {\n const [clearing, setClearing] = useState(false);\n\n const clearingHoverProps = {\n onMouseEnter: () => setClearing(true),\n onMouseLeave: () => setClearing(false),\n };\n\n const resetClearing = () => setClearing(false);\n\n return { clearing, clearingHoverProps, resetClearing };\n};\n\nexport default useClearingHover;\n","export const TOKEN_STATE = {\n FILLED: \"filled\",\n MUTED: \"muted\",\n // eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\n PLACEHOLDER: \"placeholder\",\n PLACEHOLDER_NEXT: \"placeholder-next\",\n DISABLED: \"disabled\",\n};\n\nexport const STATE_CLASS = {\n [TOKEN_STATE.PLACEHOLDER]: \"mb-placeholder\",\n [TOKEN_STATE.PLACEHOLDER_NEXT]: \"mb-placeholder mb-placeholder-next\",\n [TOKEN_STATE.DISABLED]: \"mb-placeholder mb-placeholder-disabled\",\n [TOKEN_STATE.FILLED]: \"mb-tok\",\n [TOKEN_STATE.MUTED]: \"mb-tok mb-tok-muted\",\n};\n","import { useEffect, useRef } from \"react\";\n\n// The flash is a run-once CSS animation, so a repeat submit while it is still\n// applied would not replay it on its own.\nconst useReplayFlash = flashSeq => {\n const ref = useRef(null);\n\n useEffect(() => {\n if (!flashSeq) return;\n\n ref.current?.getAnimations?.().forEach(animation => {\n animation.cancel();\n animation.play();\n });\n }, [flashSeq]);\n\n return ref;\n};\n\nexport default useReplayFlash;\n","import classnames from \"classnames\";\n\nimport { STATE_CLASS, TOKEN_STATE } from \"./constants\";\n\nimport useReplayFlash from \"../hooks/useReplayFlash\";\n\nconst Token = ({\n children,\n state = TOKEN_STATE.FILLED,\n active = false,\n invalid = false,\n onClick,\n className,\n dataTestid,\n ...rest\n}) => {\n const isInteractive =\n typeof onClick === \"function\" && state !== TOKEN_STATE.DISABLED;\n\n const tokenRef = useReplayFlash(invalid);\n\n return (\n <span\n data-testid={dataTestid}\n ref={tokenRef}\n role={isInteractive ? \"button\" : undefined}\n tabIndex={isInteractive ? 0 : undefined}\n className={classnames(\n // eslint-disable-next-line security/detect-object-injection\n STATE_CLASS[state] || STATE_CLASS.filled,\n className,\n { \"mb-tok-active\": active, \"mb-tok-invalid\": invalid }\n )}\n onClick={isInteractive ? onClick : undefined}\n onKeyDown={\n isInteractive\n ? event => {\n if (!(event.key === \"Enter\" || event.key === \" \")) return;\n event.preventDefault();\n onClick(event);\n }\n : undefined\n }\n {...rest}\n >\n {children}\n </span>\n );\n};\n\nexport default Token;\n","import { Fragment } from \"react\";\n\n// The separators are real text nodes, not margins, so the token's copied text\n// and its accessible name still read as a sentence.\nconst Values = ({ values = [], connector }) =>\n values.map((value, index) => (\n <Fragment key={`${value}-${index}`}>\n {index > 0 && \" \"}\n {index > 0 && connector && (\n <>\n <span className=\"mb-tok-join\">{connector}</span>{\" \"}\n </>\n )}\n {value}\n </Fragment>\n ));\n\nexport default Values;\n","import { t } from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { assoc, isEmpty, isNil, mergeDeepRight } from \"ramda\";\nimport * as yup from \"yup\";\n\nimport {\n CONDITION_MODE,\n CONDITION_VERBS,\n DEFAULT_SCHEMA,\n JOIN_TYPE,\n MAX_LEAD_TIME_VALUE,\n RECIPIENT_STORAGE_FIELDS,\n SMS_TO_NUMBERS,\n STATUS_KEYS,\n UNIT_MINUTES,\n VERB_TOKENS,\n} from \"./constants\";\n\nconst humanize = value =>\n String(value ?? \"\")\n .replace(/[._]/g, \" \")\n .trim();\n\nconst isContainsVerb = verb =>\n verb.includes(VERB_TOKENS.MULTI_VALUE) && verb.includes(VERB_TOKENS.CONTAINS);\n\nconst isNumericVerb = verb =>\n verb === CONDITION_VERBS.LESS_THAN || verb === CONDITION_VERBS.GREATER_THAN;\n\n// eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\nconst isExcludeVerb = verb =>\n [\n CONDITION_VERBS.IS,\n CONDITION_VERBS.IS_NOT,\n CONDITION_VERBS.ANY_OF,\n CONDITION_VERBS.NONE_OF,\n ].includes(verb);\nconst isMultiValueVerb = verb => String(verb).includes(VERB_TOKENS.MULTI_VALUE);\n\n// Lowers a label so it reads mid-sentence, but never an acronym: \"API\" and\n// \"SMS\" are already how they should appear.\nconst sentencify = label => {\n if (!label) return label;\n\n if (label.charAt(1) === label.charAt(1).toUpperCase()) return label;\n\n return label.charAt(0).toLowerCase() + label.slice(1);\n};\n\nconst copyFor = (value, args) =>\n typeof value === \"function\" ? value(args) : value;\n\nconst matchesTrigger = name => option =>\n option.eventValue === name || option.value === name || option.id === name;\n\nconst triggerOption = ({ schema, name }) =>\n (schema?.triggers?.options || []).find(matchesTrigger(name));\n\nconst triggerLabel = ({ schema, trigger }) => {\n const option = triggerOption({ schema, name: trigger?.name });\n\n return option?.plain || sentencify(option?.label || humanize(trigger?.name));\n};\n\nconst performerLabel = ({ schema, performer }) => {\n const option = (schema?.actor?.options || []).find(\n candidate => candidate.value === performer || candidate.id === performer\n );\n\n return sentencify(option?.label || humanize(performer));\n};\n\nconst conditionField = ({ schema, field }) =>\n (schema?.conditions?.fields || []).find(\n option => option.value === field || option.id === field\n );\n\nconst conditionFieldLabel = ({ schema, condition }) => {\n const field = conditionField({ schema, field: condition?.field });\n\n return String(field?.label || humanize(condition?.field)).toLowerCase();\n};\n\nconst operatorLabel = ({ schema, condition }) => {\n const map = schema?.conditions?.operatorLabels || {};\n\n return map[condition?.verb] || humanize(condition?.verb);\n};\n\nconst conditionNeedsValue = ({ schema, condition }) => {\n const field = conditionField({ schema, field: condition?.field });\n\n return !(field?.noValueForVerbs || []).includes(condition?.verb);\n};\n\n// A multi-value token stays one clickable phrase, but its \"and\"/\"or\" is\n// connective tissue rather than part of any value, so the canvas keeps the\n// connector out of the token's own styling.\nconst valueParts = raw => {\n if (isNil(raw) || raw === \"\") return null;\n\n if (Array.isArray(raw)) {\n return isEmpty(raw) ? null : { values: raw.map(String) };\n }\n\n if (typeof raw === \"object\") {\n const values = Array.isArray(raw.values) ? raw.values.map(String) : [];\n\n return isEmpty(values) ? null : { values, connector: raw.connector };\n }\n\n return { values: [String(raw)] };\n};\n\nconst joinValues = parts =>\n parts?.values.join(parts.connector ? ` ${parts.connector} ` : \" \") || \"\";\n\nconst conditionValueParts = ({ schema, condition }) => {\n const meta = condition?.metadata || {};\n const raw = meta.value ?? meta.values ?? meta.label;\n\n if (isNil(raw) || isEmpty(raw)) return null;\n\n const field = conditionField({ schema, field: condition?.field });\n const options =\n field?.values || field?.dropdownOptions || field?.options || [];\n const isEnum = isNotEmpty(options);\n\n const labelFor = value => {\n const option = options.find(\n candidate => (candidate.value ?? candidate.id) === value\n );\n const label = option ? (option.label ?? option.value ?? option.id) : value;\n\n return isEnum ? String(label).toLowerCase() : String(label);\n };\n\n const connector = String(condition?.verb || \"\").includes(\n CONDITION_VERBS.ALL_OF\n )\n ? t(\"neetoRules.operators.and\")\n : t(\"neetoRules.operators.or\");\n\n return Array.isArray(raw)\n ? { values: raw.map(labelFor), connector }\n : { values: [labelFor(raw)] };\n};\n\nconst conditionValueLabel = ({ schema, condition }) =>\n joinValues(conditionValueParts({ schema, condition })) || null;\n\nconst actionOption = ({ schema, name }) =>\n (schema?.actions?.options || []).find(\n option => option.value === name || option.id === name\n );\n\nconst channelOption = ({ schema, channel }) =>\n (schema?.actions?.options || []).find(\n option => (option.value ?? option.id) === channel\n );\n\n// A step is an extra sentence token a host hangs off an action — its own\n// separator, its own pane — for settings that do not belong in the config pane.\n// Its key shares the action's metadata namespace, so declaring one is how a\n// host hands a field to the step: whoever declares it owns it, and the config\n// pane stops validating it.\nconst actionStepsOf = ({ schema, action }) =>\n actionParts({ schema, action }).steps || [];\n\nconst stepValueOf = ({ action, step }) => action?.metadata?.[step.key];\n\nconst stepLabelOf = ({ action, step }) => {\n const value = stepValueOf({ action, step });\n\n return (\n (step.options || []).find(option => (option.value ?? option.id) === value)\n ?.label || \"\"\n );\n};\n\nconst actionParts = ({ schema, action }) => {\n const actions = schema?.actions || {};\n\n const resolved = action?.channel\n ? { channel: action.channel, recipient: action.recipient }\n : actions.actionForName?.(action?.name) || {};\n\n const channel = resolved.channel;\n const recipientValue = action?.recipient ?? resolved.recipient;\n\n const option = channel\n ? channelOption({ schema, channel })\n : actionOption({ schema, name: action?.name });\n\n // eslint-disable-next-line security/detect-object-injection\n const channelMeta = actions.channelMeta?.[channel] || {};\n const matchesRecipient = recipient =>\n (recipient.value ?? recipient.id) === recipientValue;\n\n const recipientLabel =\n (actions.recipients || []).find(matchesRecipient)?.label ||\n (option?.recipients || []).find(matchesRecipient)?.label ||\n recipientValue;\n\n // A host may answer with a plain string or with { values, connector } when\n // the value reads as a list.\n const configValueParts = valueParts(actions.configValueLabel?.(action));\n\n return {\n option,\n channel,\n label: option?.label || humanize(action?.name),\n verb:\n channelMeta.verb ||\n (channel\n ? t(\"neetoRules.builder.send\")\n : option?.plain || option?.label) ||\n humanize(action?.name),\n paramKind: !channel && option?.paramType,\n valueNoun: option?.valueNoun,\n valueNounPlural: option?.valueNounPlural,\n mediumLabel: channelMeta.mediumLabel || option?.mediumLabel,\n icon: channelMeta.icon || option?.icon,\n needsRecipient: channelMeta.needsRecipient ?? option?.needsRecipient,\n separator: channelMeta.separator || option?.separator,\n configValueParts,\n configValue: joinValues(configValueParts),\n configValuePlaceholder:\n channelMeta.valuePlaceholder || option?.valuePlaceholder,\n recipient: recipientValue,\n recipientLabel,\n configTitle: channelMeta.configTitle || option?.configTitle,\n configSubtitle: channelMeta.configSubtitle || option?.configSubtitle,\n steps: channelMeta.steps || option?.steps || [],\n recipientTitle: channelMeta.recipientTitle || option?.recipientTitle,\n recipientSubtitle:\n channelMeta.recipientSubtitle || option?.recipientSubtitle,\n };\n};\n\n// Which condition fields a host offers can depend on the rule — a trigger may\n// only support a subset. Lookups deliberately keep using the full list so a\n// field already on the rule still resolves after the offer narrows.\nconst offeredConditionFields = ({ schema, rule }) =>\n schema?.conditions?.fieldsFor?.({ rule }) ?? schema?.conditions?.fields ?? [];\n\nconst hasTrigger = rule => !isEmpty(rule?.triggers || []);\n\nconst hasAction = rule => (rule?.actions || []).some(action => action?.name);\n\nconst isTriggerEnabled = schema => schema?.triggers?.enabled !== false;\n\nconst isTriggerSatisfied = ({ rule, schema }) =>\n !isTriggerEnabled(schema) || hasTrigger(rule);\n\nconst hasRequiredConditions = ({ rule, schema }) =>\n schema?.conditions?.allowEmpty === false\n ? isNotEmpty(rule?.conditions || [])\n : true;\n\nconst hasUnansweredStep = ({ rule, schema }) =>\n (rule?.actions || []).some(action =>\n actionStepsOf({ schema, action }).some(\n step => step.required && !stepValueOf({ action, step })\n )\n );\n\nconst isRuleComplete = ({ rule, schema }) =>\n isTriggerSatisfied({ rule, schema }) &&\n hasRequiredConditions({ rule, schema }) &&\n hasAction(rule) &&\n !hasUnansweredStep({ rule, schema });\n\nconst scopeOptionFor = ({ schema, item }) => {\n const value = item?.value ?? item;\n\n return (schema?.scope?.options || []).find(\n candidate => (candidate.value ?? candidate.id) === value\n );\n};\n\nconst scopePhoneFields = ({ schema, item }) =>\n item?.phoneFields ?? scopeOptionFor({ schema, item })?.phoneFields ?? null;\n\nconst effectiveScopePhoneField = ({ schema, item }) => {\n if (item?.phoneField) return item.phoneField;\n\n const phoneFields = scopePhoneFields({ schema, item });\n\n return phoneFields?.length === 1 ? phoneFields[0].value : undefined;\n};\n\nconst invalidScopeIndexes = ({ rule, schema }) => {\n const scope = schema?.scope;\n if (!scope?.enabled || !scope.requiresPhone?.(rule?.actions || [])) return [];\n\n return (rule?.scope || []).reduce((indexes, item, index) => {\n const option = scopeOptionFor({ schema, item });\n const phoneFields = scopePhoneFields({ schema, item });\n const hasPhoneField =\n item?.hasPhoneField ??\n option?.hasPhoneField ??\n (phoneFields ? phoneFields.length > 0 : undefined);\n if (hasPhoneField === false) indexes.push(index);\n\n return indexes;\n }, []);\n};\n\nconst invalidScopePhoneFieldIndexes = ({ rule, schema }) => {\n const scope = schema?.scope;\n if (!scope?.enabled || !scope.requiresPhone?.(rule?.actions || [])) return [];\n\n return (rule?.scope || []).reduce((indexes, item, index) => {\n const phoneFields = scopePhoneFields({ schema, item });\n const hasChoice = (phoneFields?.length || 0) > 1;\n if (hasChoice && !effectiveScopePhoneField({ schema, item })) {\n indexes.push(index);\n }\n\n return indexes;\n }, []);\n};\n\nconst minutesToParts = minutes => {\n const total = Number(minutes) || 0;\n if (total && total % UNIT_MINUTES.days === 0) {\n return { value: total / UNIT_MINUTES.days, unit: \"days\" };\n }\n\n if (total && total % UNIT_MINUTES.hours === 0) {\n return { value: total / UNIT_MINUTES.hours, unit: \"hours\" };\n }\n\n return { value: total, unit: \"minutes\" };\n};\n\nconst partsToMinutes = ({ value, unit }) =>\n // eslint-disable-next-line security/detect-object-injection\n (Number(value) || 0) * (UNIT_MINUTES[unit] || 1);\n\nconst leadTimeExceedsMax = minutes =>\n minutesToParts(minutes).value > MAX_LEAD_TIME_VALUE;\n\nconst leadTimeValidationSchema = schema => {\n const fieldKey = schema?.triggers?.leadTime?.fieldKey;\n if (!fieldKey) return yup.object();\n\n return yup.object().shape({\n [fieldKey]: yup.object().shape({\n // yup 0.32 can only concat schemas of the same type, and the host's\n // generic field schema for the lead time key is a string schema.\n value: yup.string().test(\n \"max-lead-time\",\n () =>\n t(\"neetoRules.validations.maxLeadTime\", {\n max: MAX_LEAD_TIME_VALUE,\n }),\n minutes => !leadTimeExceedsMax(minutes)\n ),\n }),\n });\n};\n\nconst leadTimeLabel = minutes => {\n const { value, unit } = minutesToParts(minutes);\n const unitLabel = value === 1 ? unit.replace(/s$/, \"\") : unit;\n\n return `${value} ${unitLabel}`;\n};\n\nconst normalizeTriggers = triggers => {\n if (Array.isArray(triggers)) return { options: triggers };\n\n return triggers || {};\n};\n\nconst normalizeSchema = (rawSchema = {}) =>\n mergeDeepRight(DEFAULT_SCHEMA, {\n ...rawSchema,\n triggers: normalizeTriggers(rawSchema.triggers),\n });\n\nconst joinTypeFor = mode =>\n mode === CONDITION_MODE.OR ? JOIN_TYPE.or : JOIN_TYPE.and;\n\nconst recipientStorageField = field =>\n field === RECIPIENT_STORAGE_FIELDS.emails\n ? RECIPIENT_STORAGE_FIELDS.emails\n : RECIPIENT_STORAGE_FIELDS.value;\n\n// Which metadata fields the recipient pane renders, and therefore owns: no\n// other pane may block Continue on them. Canvas and ConfigPane both ask here\n// so the two lists cannot drift apart.\nconst recipientOwnedFields = ({ schema, action, name }) => {\n const actions = schema?.actions || {};\n const resolved = actions.actionForName?.(action?.name) || {};\n const channel = action?.channel || resolved.channel;\n // A recipient the host implies from the action name counts just as much as\n // one the user picked, or the pane it owns cannot be excluded.\n const recipient = action?.recipient ?? resolved.recipient;\n\n const rendersEmails =\n !!actions.renderRecipientEditor?.({ channel, name, action }) ||\n !!actions.renderRecipientField?.({ channel, name, action, recipient });\n\n const recipientConfig = (actions.options || [])\n .flatMap(option => option.recipients || [])\n .concat(actions.recipients || [])\n .find(item => (item.value ?? item.id) === recipient);\n\n const flatOption =\n actions.optionForName?.(action?.name) ||\n actions.optionForChannel?.(channel);\n\n return [\n ...(rendersEmails ? [RECIPIENT_STORAGE_FIELDS.emails] : []),\n ...(recipientConfig?.field\n ? [recipientStorageField(recipientConfig.field)]\n : []),\n ...(flatOption?.type === SMS_TO_NUMBERS\n ? [RECIPIENT_STORAGE_FIELDS.phoneNumbers]\n : []),\n ];\n};\n\nconst modeFromJoinType = joinType =>\n joinType === JOIN_TYPE.or ? CONDITION_MODE.OR : CONDITION_MODE.AND;\n\n// eslint-disable-next-line security/detect-object-injection\nconst valueAt = ({ values, key }) => values?.[key]?.value;\n\nconst asArray = maybeArray => (Array.isArray(maybeArray) ? maybeArray : []);\n\nconst fieldKeysFromSchema = (schema = {}) => ({\n triggers: schema.triggers?.fieldKey || \"events\",\n performer: schema.actor?.fieldKey || \"performer\",\n conditions: schema.conditions?.fieldKey || \"conditions\",\n actions: schema.actions?.fieldKey || \"actions\",\n delay: schema.delay?.fieldKey || \"execution_delay\",\n leadTime: schema.triggers?.leadTime?.fieldKey,\n scope: schema.scope?.fieldKey || \"meetingIds\",\n status: \"status\",\n name: \"name\",\n});\n\nconst valuesToRuleModel = ({ values = {}, schema = {} } = {}) => {\n const keys = fieldKeysFromSchema(schema);\n\n const conditions = asArray(valueAt({ values, key: keys.conditions }));\n const rawDelay = valueAt({ values, key: keys.delay });\n\n return {\n name: valueAt({ values, key: keys.name }) || \"\",\n active: valueAt({ values, key: keys.status }) !== STATUS_KEYS.DISABLED,\n triggers: asArray(valueAt({ values, key: keys.triggers })),\n performer: valueAt({ values, key: keys.performer }) ?? null,\n conditions,\n conditionMode: modeFromJoinType(conditions[0]?.joinType),\n delay: isNil(rawDelay) || isEmpty(rawDelay) ? null : rawDelay,\n actions: asArray(valueAt({ values, key: keys.actions })),\n leadTime: keys.leadTime ? valueAt({ values, key: keys.leadTime }) : null,\n scope: asArray(valueAt({ values, key: keys.scope })),\n };\n};\n\nconst setTriggers = ({ schema, triggers }) => ({\n path: `${fieldKeysFromSchema(schema).triggers}.value`,\n value: triggers,\n});\n\n// Removed saved triggers must be sent with _destroy, or the backend keeps them.\nconst replaceTriggers = ({ schema, values, triggers }) => {\n const fieldKey = fieldKeysFromSchema(schema).triggers;\n const keptIds = triggers.map(trigger => trigger?.id).filter(Boolean);\n const removed = asArray(valueAt({ values, key: fieldKey }))\n .filter(trigger => trigger?.id && !keptIds.includes(trigger.id))\n .map(trigger => ({ ...trigger, _destroy: true }));\n\n const edits = [setTriggers({ schema, triggers })];\n if (removed.length) {\n // eslint-disable-next-line security/detect-object-injection\n const deleted = asArray(values?.[fieldKey]?.deleted);\n edits.push({\n path: `${fieldKey}.deleted`,\n value: [...deleted, ...removed],\n });\n }\n\n return edits;\n};\n\nconst setPerformer = ({ schema, performer }) => ({\n path: `${fieldKeysFromSchema(schema).performer}.value`,\n value: performer,\n});\n\nconst setActions = ({ schema, actions }) => ({\n path: `${fieldKeysFromSchema(schema).actions}.value`,\n value: actions,\n});\n\nconst setConditions = ({ schema, conditions }) => ({\n path: `${fieldKeysFromSchema(schema).conditions}.value`,\n value: conditions,\n});\n\nconst setConditionMode = ({ schema, conditions, joinType }) =>\n setConditions({\n schema,\n conditions: conditions.map(condition =>\n assoc(\"joinType\", joinTypeFor(joinType), condition)\n ),\n });\n\nconst setDelay = ({ schema, delay }) => ({\n path: `${fieldKeysFromSchema(schema).delay}.value`,\n value: delay ?? {},\n});\n\nconst setActive = ({ schema, active }) => ({\n path: `${fieldKeysFromSchema(schema).status}.value`,\n value: active ? STATUS_KEYS.ENABLED : STATUS_KEYS.DISABLED,\n});\n\nconst setScope = ({ schema, scope }) => ({\n path: `${fieldKeysFromSchema(schema).scope}.value`,\n value: scope,\n});\n\nconst removeArrayItem = ({ values, fieldKey, index }) => {\n const list = asArray(valueAt({ values, key: fieldKey }));\n // eslint-disable-next-line security/detect-object-injection\n const removed = list[index];\n const nextList = list.filter((_, i) => i !== index);\n\n const result = [{ path: `${fieldKey}.value`, value: nextList }];\n if (removed?.id) {\n // eslint-disable-next-line security/detect-object-injection\n const deleted = asArray(values?.[fieldKey]?.deleted);\n result.push({\n path: `${fieldKey}.deleted`,\n value: [...deleted, { ...removed, _destroy: true }],\n });\n }\n\n return result;\n};\n\nconst clearArrayItems = ({ values, fieldKey }) => {\n const list = asArray(valueAt({ values, key: fieldKey }));\n const removed = list\n .filter(item => item?.id)\n .map(item => ({ ...item, _destroy: true }));\n\n const result = [{ path: `${fieldKey}.value`, value: [] }];\n if (removed.length) {\n // eslint-disable-next-line security/detect-object-injection\n const deleted = asArray(values?.[fieldKey]?.deleted);\n result.push({\n path: `${fieldKey}.deleted`,\n value: [...deleted, ...removed],\n });\n }\n\n return result;\n};\n\nexport {\n humanize,\n isContainsVerb,\n isNumericVerb,\n isExcludeVerb,\n isMultiValueVerb,\n sentencify,\n copyFor,\n triggerLabel,\n performerLabel,\n conditionFieldLabel,\n operatorLabel,\n conditionValueLabel,\n conditionValueParts,\n conditionNeedsValue,\n actionParts,\n actionStepsOf,\n stepValueOf,\n stepLabelOf,\n hasTrigger,\n isTriggerEnabled,\n isTriggerSatisfied,\n hasRequiredConditions,\n offeredConditionFields,\n hasAction,\n isRuleComplete,\n invalidScopeIndexes,\n invalidScopePhoneFieldIndexes,\n scopePhoneFields,\n effectiveScopePhoneField,\n minutesToParts,\n partsToMinutes,\n leadTimeValidationSchema,\n leadTimeLabel,\n normalizeSchema,\n joinTypeFor,\n fieldKeysFromSchema,\n valuesToRuleModel,\n setTriggers,\n replaceTriggers,\n setPerformer,\n setActions,\n setConditions,\n setConditionMode,\n setDelay,\n setActive,\n setScope,\n removeArrayItem,\n clearArrayItems,\n recipientStorageField,\n recipientOwnedFields,\n};\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS, CONDITION_MODE } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport Values from \"../Token/Values\";\nimport {\n conditionFieldLabel,\n operatorLabel,\n conditionValueParts,\n conditionNeedsValue,\n sentencify,\n isTriggerEnabled,\n} from \"../utils\";\n\nconst ConditionRow = ({\n rule,\n schema,\n condition,\n index,\n onToken: handleToken,\n onAddCondition: handleAddCondition,\n onRemove: handleRemove,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const isFirst = index === 0;\n const hasField = !!condition?.field;\n const hasVerb = !!condition?.verb;\n const conditionField = (schema?.conditions?.fields || []).find(\n field => (field.value ?? field.id) === condition?.field\n );\n\n const operatorPlaceholder =\n conditionField?.operatorPlaceholder ||\n t(\"neetoRules.builder.selectOperator\");\n const value = conditionValueParts({ schema, condition });\n const needsValue = conditionNeedsValue({ schema, condition });\n const { clearing, clearingHoverProps } = useClearingHover();\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n {isFirst ? (\n <span className=\"mb-fixed\">\n {isTriggerEnabled(schema)\n ? t(\"neetoRules.operators.and\")\n : t(\"neetoRules.common.when\")}\n </span>\n ) : (\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_CONNECTOR, index })}\n className=\"mb-tok-connector\"\n dataTestid={`cond-connector-${index}`}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.COND_CONNECTOR, index }))\n }\n >\n {rule.conditionMode === CONDITION_MODE.OR\n ? t(\"neetoRules.operators.or\")\n : t(\"neetoRules.operators.and\")}\n </Token>\n )}\n {hasField ? (\n <>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_FIELD, index })}\n dataTestid={`cond-field-${index}`}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.COND_FIELD, index }))\n }\n >\n {conditionFieldLabel({ schema, condition })}\n </Token>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_OP_TOGGLE, index })}\n dataTestid={`cond-op-${index}`}\n state={hasVerb ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.COND_OP_TOGGLE,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.COND_OP_TOGGLE, index }))\n }\n >\n {hasVerb\n ? sentencify(operatorLabel({ schema, condition }))\n : operatorPlaceholder}\n </Token>\n {hasVerb && needsValue && (\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_VALUES, index })}\n dataTestid={`cond-values-${index}`}\n state={value ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.COND_VALUES,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.COND_VALUES, index }))\n }\n >\n {value ? <Values {...value} /> : t(\"neetoRules.form.addValue\")}\n </Token>\n )}\n </>\n ) : (\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_FIELD, index })}\n dataTestid={`cond-field-${index}`}\n invalid={isInvalid({ type: BUILDER_ANCHORS.COND_FIELD, index })}\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.COND_FIELD, index }))\n }\n >\n {t(\"neetoRules.builder.selectCondition\")}\n </Token>\n )}\n </div>\n <div className=\"mb-row-actions\">\n {handleAddCondition && (\n <Button\n data-testid={`cond-add-${index}`}\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addAnotherCondition\"),\n position: \"top\",\n }}\n onClick={handleAddCondition}\n />\n )}\n {handleRemove && (\n <Button\n data-testid={`cond-remove-${index}`}\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.deleteCondition\"),\n position: \"top\",\n }}\n onClick={handleRemove}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default ConditionRow;\n","import classnames from \"classnames\";\n\nconst Connector = ({ active = false }) => (\n <div aria-hidden className={classnames(\"mb-arrow\", { \"is-active\": active })}>\n <svg fill=\"none\" height=\"28\" viewBox=\"0 0 24 28\" width=\"24\">\n <path\n d=\"M12 2 V22 M5 15 l7 7 l7 -7\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n </div>\n);\n\nexport default Connector;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete } from \"neetoicons\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\n\nconst DelayRow = ({\n rule,\n onToken: handleToken,\n onRemove: handleRemove,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const { delay } = rule;\n const { clearing, clearingHoverProps } = useClearingHover();\n if (!delay) return null;\n\n const label = [delay.value, delay.unit]\n .filter(part => part !== \"\" && !isNil(part))\n .join(\" \");\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">\n {t(\"neetoRules.form.delayExecutionBy\")}\n </span>\n <Token\n dataTestid=\"rule-delay\"\n state={label ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.RULE_DELAY,\n index: undefined,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.RULE_DELAY,\n index: undefined,\n })}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.RULE_DELAY }))\n }\n >\n {label || t(\"neetoRules.builder.setDelay\")}\n </Token>\n </div>\n {handleRemove && (\n <div className=\"mb-row-actions\">\n <Button\n data-testid=\"rule-delay-remove\"\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.removeDelay\"),\n position: \"top\",\n }}\n onClick={handleRemove}\n {...clearingHoverProps}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default DelayRow;\n","import classnames from \"classnames\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useReplayFlash from \"../hooks/useReplayFlash\";\n\nconst MetaBlock = ({\n rule,\n showName = true,\n isInvalid = false,\n onEditName: handleEditName,\n onToggleActive: handleToggleActive,\n}) => {\n const { t } = useTranslation();\n\n const nameRef = useReplayFlash(isInvalid);\n\n return (\n <div className=\"mb-meta\">\n {showName && (\n <div className=\"mb-meta-field\">\n <span className=\"mb-meta-label\">\n {t(\"neetoRules.builder.automationName\")}\n </span>\n <div\n data-testid=\"rule-name-edit\"\n ref={nameRef}\n role={handleEditName ? \"button\" : undefined}\n tabIndex={handleEditName ? 0 : undefined}\n className={classnames(\"mb-meta-input-wrap\", {\n \"mb-meta-invalid\": isInvalid,\n })}\n onClick={handleEditName}\n >\n <span className=\"mb-meta-name-display\" data-testid=\"rule-name\">\n {rule.name}\n </span>\n <span aria-hidden className=\"mb-meta-edit\">\n <svg fill=\"none\" height=\"14\" viewBox=\"0 0 24 24\" width=\"14\">\n <path\n d=\"M12 20h9 M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n </span>\n </div>\n </div>\n )}\n <label className=\"mb-meta-active\" data-testid=\"rule-active-label\">\n <input\n checked={rule.active}\n data-testid=\"rule-active-checkbox\"\n readOnly={!handleToggleActive}\n type=\"checkbox\"\n onChange={handleToggleActive || undefined}\n />\n <span aria-hidden className=\"mb-checkbox\">\n <svg fill=\"none\" height=\"12\" viewBox=\"0 0 14 14\" width=\"12\">\n <path d=\"M2 7l3.5 3.5L12 3.5\" />\n </svg>\n </span>\n {t(\"neetoRules.builder.activateThisAutomation\")}\n </label>\n </div>\n );\n};\n\nexport default MetaBlock;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport { copyFor, scopePhoneFields } from \"../utils\";\n\nconst itemLabel = item =>\n item?.label || item?.name || item?.value || String(item ?? \"\");\n\nconst ScopeBlock = ({\n rule,\n schema,\n onToken: handleToken,\n onRemoveScope: handleRemoveScope,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const scope = rule.scope || [];\n const placeholder =\n schema?.scope?.placeholder || t(\"neetoRules.builder.scope.placeholder\");\n const requiresPhone = !!schema?.scope?.requiresPhone?.(rule.actions || []);\n\n if (isEmpty(scope)) {\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n active={isActive({ type: BUILDER_ANCHORS.SCOPE, index: undefined })}\n dataTestid=\"scope-add\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.SCOPE }))\n }\n >\n {placeholder}\n </Token>\n </div>\n </div>\n );\n }\n\n return scope.map((item, index) => (\n <ScopeRow\n {...{ index, isActive, isInvalid, item, requiresPhone, schema }}\n isLast={index === scope.length - 1}\n key={(item?.value ?? item) || index}\n onRemoveScope={handleRemoveScope}\n onToken={handleToken}\n />\n ));\n};\n\nconst ScopeRow = ({\n schema,\n item,\n index,\n onToken: handleToken,\n onRemoveScope: handleRemoveScope,\n isActive,\n isInvalid,\n isLast,\n requiresPhone,\n}) => {\n const { t } = useTranslation();\n const { clearing, clearingHoverProps } = useClearingHover();\n const lead = schema?.scope?.lead || t(\"neetoRules.builder.scope.lead\");\n const meeting = itemLabel(item);\n const phoneFields = requiresPhone ? scopePhoneFields({ item, schema }) : null;\n const hasPhoneFieldChoice = (phoneFields?.length || 0) > 1;\n const singlePhoneFieldLabel =\n phoneFields?.length === 1 ? phoneFields[0].label : null;\n\n const selectedPhoneField = phoneFields?.find(\n field => field.value === item?.phoneField\n );\n\n const usingLabel =\n copyFor(schema?.scope?.usingLabel, { meeting }) ||\n t(\"neetoRules.builder.scope.using\");\n\n const phoneFieldPlaceholder =\n copyFor(schema?.scope?.phoneFieldPlaceholder, { meeting }) ||\n t(\"neetoRules.builder.selectPhoneField\");\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{lead}</span>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.SCOPE, index: undefined })}\n dataTestid={`scope-${index}`}\n invalid={isInvalid({ type: BUILDER_ANCHORS.SCOPE, index })}\n onClick={\n handleToken && (() => handleToken({ type: BUILDER_ANCHORS.SCOPE }))\n }\n >\n {meeting}\n </Token>\n {singlePhoneFieldLabel && (\n <span className=\"mb-fixed\">\n {usingLabel} {singlePhoneFieldLabel}\n </span>\n )}\n {hasPhoneFieldChoice && (\n <>\n <span className=\"mb-fixed\">{usingLabel}</span>\n <Token\n dataTestid={`scope-phone-field-${index}`}\n active={isActive({\n type: BUILDER_ANCHORS.SCOPE_PHONE_FIELD,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.SCOPE_PHONE_FIELD,\n index,\n })}\n state={\n selectedPhoneField ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED\n }\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.SCOPE_PHONE_FIELD,\n index,\n }))\n }\n >\n {selectedPhoneField?.label || phoneFieldPlaceholder}\n </Token>\n </>\n )}\n </div>\n <div className=\"mb-row-actions\">\n {handleToken && isLast && (\n <Button\n data-testid={`scope-add-${index}`}\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addAnotherBookingPage\"),\n position: \"top\",\n }}\n onClick={() => handleToken({ type: BUILDER_ANCHORS.SCOPE })}\n />\n )}\n {handleRemoveScope && (\n <Button\n data-testid={`scope-remove-${index}`}\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.removeBookingPage\"),\n position: \"top\",\n }}\n onClick={() => handleRemoveScope(index)}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default ScopeBlock;\n","import { Fragment } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PARAM_KIND, BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport Values from \"../Token/Values\";\nimport { actionParts, sentencify, stepLabelOf } from \"../utils\";\n\nconst ActionRow = ({\n schema,\n action,\n index,\n position,\n onToken: handleToken,\n onAddAction: handleAddAction,\n onRemove: handleRemove,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const {\n option,\n label,\n verb,\n mediumLabel,\n icon: MediumIcon,\n needsRecipient,\n recipient,\n recipientLabel,\n separator,\n configValue,\n configValueParts,\n configValuePlaceholder,\n paramKind,\n valueNoun,\n valueNounPlural,\n steps,\n } = actionParts({ schema, action });\n\n // A separator-less action still needs a value slot when the host declares a\n // placeholder for it, otherwise its chosen value never reaches the canvas.\n const hasParamTail =\n paramKind === PARAM_KIND.ENUM_SINGLE ||\n paramKind === PARAM_KIND.ENUM_MULTI ||\n !!configValuePlaceholder ||\n !!configValue;\n\n const multiPlaceholder = valueNounPlural\n ? t(\"neetoRules.builder.selectNoun\", { noun: valueNounPlural })\n : t(\"neetoRules.form.selectValues\");\n\n const singlePlaceholder = valueNoun\n ? t(\"neetoRules.builder.selectNoun\", { noun: valueNoun })\n : t(\"neetoRules.form.selectValue\");\n\n const paramPlaceholder =\n paramKind === PARAM_KIND.ENUM_MULTI ? multiPlaceholder : singlePlaceholder;\n\n const connector =\n (position ?? index) === 0\n ? t(\"neetoRules.common.then\")\n : t(\"neetoRules.operators.and\");\n const verbLabel = sentencify(verb || label);\n const isVerbActive =\n isActive({ type: BUILDER_ANCHORS.ACTION_CHANNEL, index }) ||\n isActive({ type: BUILDER_ANCHORS.ACTION_ADD, index });\n const configLabel = mediumLabel || sentencify(option?.placeholder);\n // A host may declare two separators: the first introduces the recipient\n // (\"whose email is\"), the second the configured value (\"with the following\").\n const [recipientSeparator, configSeparator] = Array.isArray(separator)\n ? separator\n : [null, separator];\n const isConfigured = isNotEmpty(action?.metadata);\n // A host that shows no value label still needs the token to read as filled.\n const configState =\n configValueParts || isConfigured ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED;\n const { clearing, clearingHoverProps } = useClearingHover();\n\n const configToken = configSeparator ? (\n <Fragment key=\"config\">\n <span className=\"mb-fixed\">{configSeparator}</span>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.ACTION_CONFIG, index })}\n dataTestid={`action-config-value-${index}`}\n state={configState}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.ACTION_CONFIG, index }))\n }\n >\n {configValueParts ? (\n <Values {...configValueParts} />\n ) : (\n sentencify(configValuePlaceholder) ||\n t(\"neetoRules.builder.selectFallback\")\n )}\n </Token>\n </Fragment>\n ) : null;\n\n const recipientToken = needsRecipient ? (\n <Fragment key=\"recipient\">\n <span className=\"mb-fixed\">\n {recipientSeparator || t(\"neetoRules.common.to\")}\n </span>\n <Token\n dataTestid={`action-recipient-${index}`}\n state={recipient ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.ACTION_RECIPIENT,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_RECIPIENT,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.ACTION_RECIPIENT,\n index,\n }))\n }\n >\n {recipient\n ? String(recipientLabel).toLowerCase()\n : t(\"neetoRules.builder.selectRecipient\")}\n </Token>\n </Fragment>\n ) : null;\n\n const stepTokens = steps.map(step => {\n const stepLabel = stepLabelOf({ action, step });\n const token = {\n type: BUILDER_ANCHORS.ACTION_STEP,\n index,\n stepKey: step.key,\n };\n\n return (\n <Fragment key={`step-${step.key}`}>\n {step.separator && <span className=\"mb-fixed\">{step.separator}</span>}\n <Token\n active={isActive(token)}\n dataTestid={`action-step-${step.key}-${index}`}\n invalid={isInvalid(token)}\n state={stepLabel ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n onClick={handleToken && (() => handleToken(token))}\n >\n {/* Option labels are lowered to read as part of the sentence; a\n step whose values are proper nouns opts out. */}\n {(step.preserveCase ? stepLabel : sentencify(stepLabel)) ||\n sentencify(step.placeholder)}\n </Token>\n </Fragment>\n );\n });\n\n return (\n <div className={classnames(\"mb-row mb-row-draggable\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{connector}</span>\n {configSeparator ? (\n <Token\n active={isVerbActive}\n className=\"mb-tok-medium\"\n dataTestid={`action-verb-${index}`}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.ACTION_CHANNEL, index }))\n }\n >\n {verbLabel}\n {MediumIcon && <MediumIcon size={14} />}\n {configLabel}\n </Token>\n ) : (\n <>\n <Token\n active={isVerbActive}\n dataTestid={`action-verb-${index}`}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.ACTION_CHANNEL, index }))\n }\n >\n {verbLabel}\n </Token>\n {hasParamTail ? (\n <Token\n dataTestid={`action-config-value-${index}`}\n state={configState}\n active={isActive({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.ACTION_CONFIG, index }))\n }\n >\n {configValueParts ? (\n <Values {...configValueParts} />\n ) : (\n sentencify(configValuePlaceholder) || paramPlaceholder\n )}\n </Token>\n ) : (\n configLabel && (\n <Token\n className=\"mb-tok-medium\"\n dataTestid={`action-config-${index}`}\n state={isConfigured ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n }))\n }\n >\n {MediumIcon && <MediumIcon size={14} />}\n {configLabel}\n </Token>\n )\n )}\n </>\n )}\n {recipientSeparator\n ? [recipientToken, configToken]\n : [configToken, recipientToken]}\n {stepTokens}\n </div>\n <div className=\"mb-row-actions\">\n {handleAddAction && (\n <Button\n data-testid={`action-add-${index}`}\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addAnotherAction\"),\n position: \"top\",\n }}\n onClick={handleAddAction}\n />\n )}\n {handleRemove && (\n <Button\n data-testid={`action-remove-${index}`}\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.deleteAction\"),\n position: \"top\",\n }}\n onClick={handleRemove}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default ActionRow;\n","import { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ActionRow from \"./ActionRow\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport { isTriggerSatisfied } from \"../utils\";\n\nconst ThenBlock = ({\n rule,\n schema,\n onToken: handleToken,\n onAddAction: handleAddAction,\n onRemoveAction: handleRemoveAction,\n isActive = () => false,\n isInvalid = () => false,\n adding = false,\n}) => {\n const { t } = useTranslation();\n const named = rule.actions\n .map((action, index) => ({ action, index }))\n .filter(({ action }) => action?.channel || action?.name);\n\n if (isEmpty(named)) {\n const isTriggerSet = isTriggerSatisfied({ rule, schema });\n\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n active={isActive({ type: BUILDER_ANCHORS.ACTION_ADD, index: 0 })}\n dataTestid=\"action-add\"\n invalid={isInvalid({ type: BUILDER_ANCHORS.ACTION_ADD, index: 0 })}\n state={\n isTriggerSet ? TOKEN_STATE.PLACEHOLDER_NEXT : TOKEN_STATE.DISABLED\n }\n title={\n isTriggerSet\n ? undefined\n : t(\"neetoRules.builder.pickTriggerFirst\")\n }\n onClick={isTriggerSet ? handleAddAction : undefined}\n >\n {t(\"neetoRules.builder.thenDoThis\")}\n </Token>\n </div>\n </div>\n );\n }\n\n return (\n <>\n {named.map(({ action, index }, position) => (\n <ActionRow\n {...{ action, index, isActive, isInvalid, position, schema }}\n key={action.id ?? index}\n onAddAction={position === named.length - 1 && handleAddAction}\n onRemove={handleRemoveAction && (() => handleRemoveAction(index))}\n onToken={handleToken}\n />\n ))}\n {adding && (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{t(\"neetoRules.operators.and\")}</span>\n <Token\n active\n dataTestid=\"action-add-next\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={handleAddAction}\n >\n {t(\"neetoRules.form.doThis\")}\n </Token>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default ThenBlock;\n","import { Fragment } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport {\n triggerLabel,\n performerLabel,\n leadTimeLabel,\n isTriggerEnabled,\n} from \"../utils\";\n\nconst WhenBlock = ({\n rule,\n schema,\n onToken: handleToken,\n onAddCondition: handleAddCondition,\n onClearTrigger: handleClearTrigger,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const { triggers, performer } = rule;\n const isActorEnabled = schema?.actor?.enabled;\n const { clearing, clearingHoverProps, resetClearing } = useClearingHover();\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n const hasLeadTimeFor = name =>\n (schema?.triggers?.leadTime?.appliesTo || []).includes(name);\n\n if (!isTriggerEnabled(schema)) {\n if (!isEmpty(rule.conditions)) return null;\n\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n dataTestid=\"condition-add\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={handleAddCondition || undefined}\n >\n {t(\"neetoRules.builder.whenThisIsTrue\")}\n </Token>\n </div>\n </div>\n );\n }\n\n if (isEmpty(triggers)) {\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n dataTestid=\"trigger-add\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.TRIGGER_ADD }))\n }\n >\n {t(\"neetoRules.builder.whenThisHappens\")}\n </Token>\n </div>\n </div>\n );\n }\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{t(\"neetoRules.common.when\")}</span>\n {triggers.map((trigger, index) => (\n <Fragment key={trigger.id ?? index}>\n {index > 0 && (\n <span className=\"mb-fixed\">{t(\"neetoRules.operators.or\")}</span>\n )}\n {hasLeadTimeFor(trigger.name) && (\n <Token\n dataTestid={`trigger-lead-time-${index}`}\n active={isActive({\n type: BUILDER_ANCHORS.TRIGGER_LEAD_TIME,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.TRIGGER_LEAD_TIME,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.TRIGGER_LEAD_TIME,\n index,\n }))\n }\n >\n {leadTimeLabel(rule.leadTime)}\n </Token>\n )}\n <Token\n dataTestid={`trigger-${index}`}\n active={\n isActive({ type: BUILDER_ANCHORS.TRIGGER_REPLACE, index }) ||\n (index === 0 &&\n isActive({\n type: BUILDER_ANCHORS.TRIGGER_ADD,\n index: undefined,\n }))\n }\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.TRIGGER_REPLACE,\n index,\n trigger,\n }))\n }\n >\n {triggerLabel({ schema, trigger })}\n </Token>\n </Fragment>\n ))}\n {isActorEnabled && (\n <>\n <span className=\"mb-fixed\">{t(\"neetoRules.common.by\")}</span>\n <Token\n dataTestid=\"trigger-actor\"\n state={performer ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.TRIGGER_ACTOR,\n index: undefined,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.TRIGGER_ACTOR,\n index: undefined,\n })}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.TRIGGER_ACTOR }))\n }\n >\n {performer\n ? performerLabel({ schema, performer })\n : t(\"neetoRules.builder.selectActor\")}\n </Token>\n </>\n )}\n </div>\n <div className=\"mb-row-actions\">\n {handleAddCondition && (\n <Button\n data-testid=\"trigger-add-condition\"\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addCondition\"),\n position: \"top\",\n }}\n onClick={handleAddCondition}\n />\n )}\n {handleClearTrigger && (\n <Button\n data-testid=\"trigger-clear\"\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.clearTrigger\"),\n position: \"top\",\n }}\n onClick={() => {\n resetClearing();\n handleClearTrigger();\n }}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default WhenBlock;\n","import { useCallback } from \"react\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport { TOKEN_TO_PANEL_TYPE, LARGE_PANEL_TYPES } from \"../constants\";\n\nconst usePaneCascade = schema => {\n const { setPanelState, resetPanelState } = useUtilityStore.pick();\n\n const openType = useCallback(\n ({ type, data = {} }) =>\n setPanelState({\n type,\n variant: \"builder\",\n size: LARGE_PANEL_TYPES.includes(type) ? \"large\" : \"small\",\n data: { schema, ...data },\n }),\n [schema, setPanelState]\n );\n\n const openPane = useCallback(\n token => {\n const type = TOKEN_TO_PANEL_TYPE[token?.type];\n if (!type) return;\n\n const { type: anchor, ...rest } = token;\n openType({ type, data: { anchor, ...rest } });\n },\n [openType]\n );\n\n return { openPane, openType, closePane: resetPanelState };\n};\n\nexport default usePaneCascade;\n","import { useMemo } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport {\n valuesToRuleModel,\n replaceTriggers,\n setPerformer,\n setActions,\n setConditions,\n setConditionMode,\n setDelay,\n setActive,\n setScope,\n removeArrayItem,\n clearArrayItems,\n fieldKeysFromSchema,\n} from \"../utils\";\n\nconst useRuleModel = schema => {\n const { values, setFieldValue } = useFormikContext();\n\n const apply = ({ path, value }) => setFieldValue(path, value);\n const applyAll = edits => edits.forEach(apply);\n\n const rule = useMemo(\n () => valuesToRuleModel({ values, schema }),\n [values, schema]\n );\n\n return {\n rule,\n fieldKeys: fieldKeysFromSchema(schema),\n setTriggers: triggers =>\n applyAll(replaceTriggers({ schema, values, triggers })),\n setPerformer: performer => apply(setPerformer({ schema, performer })),\n setActions: actions => apply(setActions({ schema, actions })),\n setConditions: conditions => apply(setConditions({ schema, conditions })),\n setConditionMode: joinType =>\n apply(\n setConditionMode({ schema, conditions: rule.conditions, joinType })\n ),\n setDelay: delay => apply(setDelay({ schema, delay })),\n setActive: active => apply(setActive({ schema, active })),\n setScope: scope => apply(setScope({ schema, scope })),\n removeCondition: index =>\n applyAll(\n removeArrayItem({\n values,\n fieldKey: fieldKeysFromSchema(schema).conditions,\n index,\n })\n ),\n removeAction: index =>\n applyAll(\n removeArrayItem({\n values,\n fieldKey: fieldKeysFromSchema(schema).actions,\n index,\n })\n ),\n clearTriggers: () =>\n applyAll(\n clearArrayItems({\n values,\n fieldKey: fieldKeysFromSchema(schema).triggers,\n })\n ),\n clearConditions: () =>\n applyAll(\n clearArrayItems({\n values,\n fieldKey: fieldKeysFromSchema(schema).conditions,\n })\n ),\n clearActions: () =>\n applyAll(\n clearArrayItems({\n values,\n fieldKey: fieldKeysFromSchema(schema).actions,\n })\n ),\n };\n};\n\nexport default useRuleModel;\n","import { t } from \"i18next\";\nimport { isNotEmpty, removeBy, toLabelAndValue } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport {\n BUILDER_ANCHORS,\n BUILDER_PANEL_TYPES,\n CONDITION_MODE,\n} from \"../constants\";\nimport {\n humanize,\n isContainsVerb,\n isNumericVerb,\n isExcludeVerb,\n scopePhoneFields,\n copyFor,\n offeredConditionFields,\n actionStepsOf,\n stepValueOf,\n} from \"../utils\";\n\nconst triggerValue = option => option.eventValue ?? option.value ?? option.id;\n\nconst stepAt = ({ schema, rule, index, stepKey }) =>\n actionStepsOf({ schema, action: actionAt({ rule, index }) }).find(\n step => step.key === stepKey\n );\n\n// Panes hand off in sentence order — config, recipient, then each host step —\n// so every \"what comes next\" question resolves through this one list.\nconst stepTargetAfter = ({ schema, rule, index, stepKey }) => {\n const steps = actionStepsOf({ schema, action: actionAt({ rule, index }) });\n const at = stepKey ? steps.findIndex(step => step.key === stepKey) : -1;\n // An unknown key means the step is gone from under the pane; restarting the\n // cascade at the first step would be worse than ending it.\n if (stepKey && at === -1) return null;\n\n const next = steps[at + 1];\n\n return next\n ? {\n type: BUILDER_PANEL_TYPES.ACTION_STEP,\n data: { index, stepKey: next.key, anchor: BUILDER_ANCHORS.ACTION_STEP },\n }\n : null;\n};\n\nconst optionValue = option => option.value ?? option.id;\n\nconst normalizeOptions = options =>\n (options || []).map(option =>\n typeof option === \"string\" ? toLabelAndValue(option) : option\n );\n\nconst groupByCategory = options => {\n const groups = [];\n const indexByCategory = {};\n options.forEach(option => {\n const category = option.category || \"\";\n // eslint-disable-next-line security/detect-object-injection\n if (indexByCategory[category] === undefined) {\n // eslint-disable-next-line security/detect-object-injection\n indexByCategory[category] = groups.length;\n groups.push([category, []]);\n }\n // eslint-disable-next-line security/detect-object-injection\n groups[indexByCategory[category]][1].push(option);\n });\n\n return groups;\n};\n\nconst conditionAt = ({ rule, index }) =>\n // eslint-disable-next-line security/detect-object-injection\n rule.conditions[index] || {};\n\n// eslint-disable-next-line security/detect-object-injection\nconst actionAt = ({ rule, index }) => rule.actions[index] || {};\n\n// eslint-disable-next-line security/detect-object-injection\nconst scopeItemAt = ({ rule, index }) => rule.scope?.[index] || {};\n\nconst scopeItemLabel = item =>\n item?.label || item?.name || item?.value || String(item ?? \"\");\n\nconst findField = ({ schema, value }) =>\n (schema.conditions?.fields || []).find(field => optionValue(field) === value);\n\nconst findActionOption = ({ schema, name }) =>\n (schema.actions?.options || []).find(option => optionValue(option) === name);\n\nconst channelOf = ({ schema, action }) =>\n action?.channel || schema.actions?.actionForName?.(action?.name)?.channel;\n\nconst recipientOf = ({ schema, action }) =>\n action?.recipient ?? schema.actions?.actionForName?.(action?.name)?.recipient;\n\nconst channelMetaOf = ({ schema, action }) =>\n schema.actions?.channelMeta?.[channelOf({ schema, action })] || {};\n\nconst actionHasConfig = ({ schema, action }) => {\n const meta = channelMetaOf({ schema, action });\n if (meta.mediumLabel) return true;\n\n const option = findActionOption({ schema, name: action?.name });\n if (option?.component || option?.renderConfig) return true;\n\n if (schema.actions?.hasConfig) return schema.actions.hasConfig(action);\n\n return !!schema.actions?.renderConfig;\n};\n\nconst recipientsFor = ({ schema, action }) => {\n const channel = channelOf({ schema, action });\n if (channel && schema.actions?.recipientsFor) {\n return schema.actions.recipientsFor(channel);\n }\n\n const option = findActionOption({ schema, name: channel });\n if (option?.recipients) return option.recipients;\n\n return schema.actions?.recipients || [];\n};\n\n// Each action runs once per rule, so hide recipients another row already uses.\nconst availableRecipients = ({ schema, rule, index }) => {\n const action = actionAt({ rule, index });\n const channel = channelOf({ schema, action });\n const usedNames = rule.actions\n .filter((_, position) => position !== index)\n .map(item => item.name)\n .filter(Boolean);\n\n return recipientsFor({ schema, action }).filter(recipient => {\n const name = schema.actions?.resolveName?.({\n channel,\n recipient: optionValue(recipient),\n });\n\n return !name || !usedNames.includes(name);\n });\n};\n\nconst nextTriggers = ({ schema, rule, value }) => {\n if (schema.triggers?.multi) {\n const names = pluck(\"name\", rule.triggers);\n\n return names.includes(value)\n ? removeBy({ name: value }, rule.triggers)\n : [...rule.triggers, { name: value }];\n }\n\n return [{ ...rule.triggers[0], name: value }];\n};\n\nconst nextConditionAt = ({ schema, rule, index, value }) => {\n const field = findField({ schema, value });\n const previous = conditionAt({ rule, index });\n const first = field?.allowMatching?.[0];\n const defaultVerb =\n first && !(field?.noValueForVerbs || []).includes(first)\n ? first\n : undefined;\n\n const verb = (field?.allowMatching || []).includes(previous.verb)\n ? previous.verb\n : defaultVerb;\n\n return {\n ...previous,\n field: value,\n kind: field?.kind,\n verb,\n metadata: {},\n };\n};\n\nconst nextActionAt = ({ schema, rule, index, value }) => {\n if (!schema.actions?.resolveName) {\n const option = findActionOption({ schema, name: value });\n const prev = actionAt({ rule, index });\n\n if (option?.recipients) {\n const channelChanged = prev.channel !== value;\n\n return {\n ...prev,\n channel: value,\n recipient: channelChanged ? undefined : prev.recipient,\n name: \"\",\n type: option?.type,\n metadata: channelChanged ? {} : prev.metadata,\n };\n }\n\n return {\n ...prev,\n channel: undefined,\n recipient: undefined,\n name: value,\n type: option?.type,\n metadata: {},\n };\n }\n\n const prev = actionAt({ rule, index });\n const prevChannel = channelOf({ schema, action: prev });\n const channelChanged = prevChannel !== value;\n let recipient = channelChanged ? undefined : prev.recipient;\n if (channelChanged) {\n const channelRecipients =\n // eslint-disable-next-line security/detect-object-injection\n schema.actions?.recipientsByChannel?.[value] || [];\n if (channelRecipients.length === 1) [recipient] = channelRecipients;\n }\n\n return {\n ...prev,\n channel: value,\n recipient,\n name: schema.actions.resolveName({ channel: value, recipient }),\n metadata: channelChanged ? {} : prev.metadata,\n };\n};\n\nconst appendScopeItem = ({ schema, rule, value }) => {\n const sc = schema.scope || {};\n const option = (sc.options || []).find(\n candidate => optionValue(candidate) === value\n ) || { value };\n const requiresPhone = sc.requiresPhone?.(rule.actions) || false;\n if (!requiresPhone) return option;\n\n const phoneFields = scopePhoneFields({ schema, item: option });\n\n return phoneFields?.length === 1\n ? { ...option, phoneField: phoneFields[0].value }\n : option;\n};\n\nconst nextActionRecipientAt = ({ schema, rule, index, value }) => {\n const prev = actionAt({ rule, index });\n const channel = channelOf({ schema, action: prev });\n\n return {\n ...prev,\n recipient: value,\n name: schema.actions?.resolveName\n ? schema.actions.resolveName({ channel, recipient: value })\n : value,\n };\n};\n\nconst descriptorFor = ({ anchor, schema, rule, index, stepKey }) => {\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE: {\n const multi = !!schema.triggers?.multi;\n const isReplace = anchor === BUILDER_ANCHORS.TRIGGER_REPLACE;\n const triggerTitle = isReplace\n ? (multi && t(\"neetoRules.builder.panes.changeTriggers\")) ||\n t(\"neetoRules.builder.panes.changeTrigger\")\n : (multi && t(\"neetoRules.builder.panes.whenEllipsis\")) ||\n t(\"neetoRules.builder.panes.addTrigger\");\n\n const triggerSubtitle =\n (multi && t(\"neetoRules.builder.panes.triggerSubtitleMulti\")) ||\n (isReplace\n ? t(\"neetoRules.builder.panes.triggerSubtitleReplace\")\n : t(\"neetoRules.builder.panes.triggerSubtitleAdd\"));\n\n return {\n title: triggerTitle,\n subtitle: triggerSubtitle,\n multi,\n cascade: !!schema.actor?.enabled,\n options: (schema.triggers?.options || []).map(option => ({\n label: option.paneLabel || option.label,\n value: triggerValue(option),\n category: option.category,\n })),\n selectedValues: pluck(\"name\", rule.triggers),\n };\n }\n case BUILDER_ANCHORS.TRIGGER_ACTOR:\n return {\n title: t(\"neetoRules.builder.panes.actorTitle\"),\n subtitle: t(\"neetoRules.builder.panes.actorSubtitle\"),\n options: (schema.actor?.options || []).map(option => ({\n label: option.label,\n value: optionValue(option),\n })),\n selectedValues: [rule.performer],\n };\n case BUILDER_ANCHORS.COND_FIELD:\n return {\n title: t(\"neetoRules.builder.panes.addCondition\"),\n subtitle: t(\"neetoRules.builder.panes.condFieldSubtitle\"),\n cascade: true,\n options: offeredConditionFields({ schema, rule }).map(field => ({\n label: field.paneLabel || field.label,\n value: optionValue(field),\n category: field.category,\n })),\n selectedValues: [conditionAt({ rule, index }).field],\n };\n case BUILDER_ANCHORS.COND_OP_TOGGLE: {\n const field = findField({\n schema,\n value: conditionAt({ rule, index }).field,\n });\n const labels = schema.conditions?.operatorLabels || {};\n const verbs = field?.allowMatching || [];\n const fieldLabel = field?.paneLabel || field?.label || \"\";\n\n const isContains = isNotEmpty(verbs) && verbs.every(isContainsVerb);\n const isNumeric = !isContains && verbs.some(isNumericVerb);\n const isExclude = !isContains && !isNumeric && verbs.some(isExcludeVerb);\n const hasOptions = isNotEmpty(\n normalizeOptions(\n field?.values || field?.dropdownOptions || field?.options\n )\n );\n\n const containsVariant = hasOptions ? \"Values\" : \"Keywords\";\n const numericOrExcludeVariant = isExclude ? \"Exclude\" : \"\";\n const nonContainsVariant = isNumeric ? \"Number\" : numericOrExcludeVariant;\n const variant = isContains ? containsVariant : nonContainsVariant;\n\n return {\n title: t(`neetoRules.builder.panes.operatorTitle${variant}`),\n subtitle: variant\n ? t(`neetoRules.builder.panes.operatorSubtitle${variant}`, {\n field: fieldLabel,\n })\n : t(\"neetoRules.builder.panes.operatorSubtitle\"),\n cascade: true,\n options: verbs.map(verb => ({\n // eslint-disable-next-line security/detect-object-injection\n label: labels[verb] || humanize(verb),\n value: verb,\n })),\n selectedValues: [conditionAt({ rule, index }).verb],\n };\n }\n case BUILDER_ANCHORS.COND_CONNECTOR:\n return {\n title: t(\"neetoRules.builder.panes.connectorTitle\"),\n subtitle: t(\"neetoRules.builder.panes.connectorSubtitle\"),\n options: [\n {\n label: t(\"neetoRules.builder.panes.connectorAndOption\"),\n value: CONDITION_MODE.AND,\n },\n {\n label: t(\"neetoRules.builder.panes.connectorOrOption\"),\n value: CONDITION_MODE.OR,\n },\n ],\n selectedValues: [rule.conditionMode],\n };\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL: {\n const isSwap = anchor === BUILDER_ANCHORS.ACTION_CHANNEL;\n const channelMetaFor = value =>\n // eslint-disable-next-line security/detect-object-injection\n schema.actions?.channelMeta?.[value] || {};\n\n // Both panes list the host's actions in the order it declared them;\n // re-ranking only the swap pane made the two disagree.\n const sourceOptions = schema.actions?.options || [];\n\n return {\n title: isSwap\n ? t(\"neetoRules.builder.panes.actionSwapTitle\")\n : t(\"neetoRules.builder.panes.actionAddTitle\"),\n subtitle: isSwap\n ? t(\"neetoRules.builder.panes.actionSwapSubtitle\")\n : t(\"neetoRules.builder.panes.actionAddSubtitle\"),\n cascade: true,\n options: sourceOptions.map(option => {\n const value = optionValue(option);\n const meta = channelMetaFor(value);\n\n return {\n label: isSwap ? meta.channelLabel || option.label : option.label,\n value,\n category: option.category,\n // Hosts mark unavailable actions with isDisabled; without carrying\n // the reason across, the picker disables them with no explanation.\n disabled: !!(option.disabled ?? option.isDisabled),\n disabledReason: option.disabledReason,\n disabledPopover: option.disabledPopover,\n icon: (isSwap ? meta.icon : option.icon) || option.icon,\n };\n }),\n selectedValues: [\n channelOf({ schema, action: actionAt({ rule, index }) }) ??\n actionAt({ rule, index }).name,\n ],\n };\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT: {\n const action = actionAt({ rule, index });\n const channel = channelOf({ schema, action });\n // eslint-disable-next-line security/detect-object-injection\n const meta = schema.actions?.channelMeta?.[channel] || {};\n const option = findActionOption({ schema, name: channel });\n\n return {\n title:\n meta.recipientTitle ||\n option?.recipientTitle ||\n t(\"neetoRules.builder.panes.recipientTitle\"),\n subtitle:\n meta.recipientSubtitle ||\n option?.recipientSubtitle ||\n t(\"neetoRules.builder.panes.recipientSubtitle\"),\n options: availableRecipients({ schema, rule, index }).map(\n recipient => ({\n label: recipient.label,\n value: optionValue(recipient),\n })\n ),\n selectedValues: [recipientOf({ schema, action })],\n // Confirming a recipient always offers Continue; whether that chains\n // onward or just closes is decided by continueTargetFor.\n cascade: true,\n };\n }\n case BUILDER_ANCHORS.ACTION_STEP: {\n const action = actionAt({ rule, index });\n const step = stepAt({ schema, rule, index, stepKey }) || {};\n\n return {\n title: step.title || t(\"neetoRules.builder.panes.stepTitle\"),\n subtitle: step.subtitle,\n options: normalizeOptions(step.options),\n selectedValues: [stepValueOf({ action, step })],\n cascade: true,\n };\n }\n case BUILDER_ANCHORS.SCOPE: {\n const sc = schema.scope || {};\n const selected = (rule.scope || []).map(item => item?.value ?? item);\n const requiresPhone = sc.requiresPhone?.(rule.actions) || false;\n\n return {\n title: selected.length\n ? sc.paneChangeTitle || t(\"neetoRules.builder.panes.scopeChangeTitle\")\n : sc.paneTitle || t(\"neetoRules.builder.panes.scopeTitle\"),\n subtitle:\n sc.paneSubtitle || t(\"neetoRules.builder.panes.scopeSubtitle\"),\n multi: true,\n options: (sc.options || []).map(option => {\n const value = optionValue(option);\n const blockedNoPhone =\n requiresPhone && option.hasPhoneField === false;\n const isSelected = selected.includes(value);\n\n return {\n label: option.label,\n value,\n disabled:\n (!!(option.disabled ?? option.isDisabled) || blockedNoPhone) &&\n !isSelected,\n disabledReason: blockedNoPhone\n ? sc.disabledReason\n : option.disabledReason,\n disabledPopover: option.disabledPopover,\n disabledTooltip: blockedNoPhone && sc.disabledTooltip,\n };\n }),\n selectedValues: selected,\n };\n }\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD: {\n const sc = schema.scope || {};\n const item = scopeItemAt({ rule, index });\n const meeting = scopeItemLabel(item);\n const options = scopePhoneFields({ schema, item }) || [];\n\n return {\n title:\n copyFor(sc.phoneFieldPaneTitle, { meeting }) ||\n t(\"neetoRules.builder.panes.phoneFieldTitle\"),\n subtitle:\n copyFor(sc.phoneFieldPaneSubtitle, { meeting }) ||\n t(\"neetoRules.builder.panes.phoneFieldSubtitle\", { meeting }),\n options: options.map(option => ({\n label: option.label,\n value: optionValue(option),\n })),\n selectedValues: [item.phoneField],\n };\n }\n default:\n return { title: \"\", subtitle: \"\", options: [], selectedValues: [] };\n }\n};\n\nconst commitFor = ({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n value,\n helpers,\n}) => {\n const {\n setTriggers,\n setPerformer,\n setConditionMode,\n setFieldValue,\n fieldKeys,\n } = helpers;\n\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE: {\n if (schema.triggers?.multi) {\n const names = pluck(\"name\", rule.triggers);\n setTriggers(\n names.includes(value)\n ? removeBy({ name: value }, rule.triggers)\n : [...rule.triggers, { name: value }]\n );\n\n return \"stay\";\n }\n setTriggers([{ ...rule.triggers[0], name: value }]);\n\n const leadTime = schema.triggers?.leadTime;\n if (\n leadTime?.fieldKey &&\n (leadTime.appliesTo || []).includes(value) &&\n !rule.leadTime\n ) {\n // eslint-disable-next-line @bigbinary/neeto/use-common-constants\n setFieldValue(`${leadTime.fieldKey}.value`, leadTime.default ?? 10);\n }\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.TRIGGER_ACTOR:\n setPerformer(value);\n\n return \"stay\";\n case BUILDER_ANCHORS.COND_FIELD: {\n setFieldValue(\n `${fieldKeys.conditions}.value.${index}`,\n nextConditionAt({ schema, rule, index, value })\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.COND_OP_TOGGLE:\n setFieldValue(`${fieldKeys.conditions}.value.${index}.verb`, value);\n\n return \"stay\";\n case BUILDER_ANCHORS.COND_CONNECTOR:\n setConditionMode(value);\n\n return \"stay\";\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL: {\n setFieldValue(\n `${fieldKeys.actions}.value.${index}`,\n nextActionAt({ schema, rule, index, value })\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT: {\n setFieldValue(\n `${fieldKeys.actions}.value.${index}`,\n nextActionRecipientAt({ schema, rule, index, value })\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.ACTION_STEP: {\n setFieldValue(\n `${fieldKeys.actions}.value.${index}.metadata.${stepKey}`,\n value\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.SCOPE: {\n const key = fieldKeys.scope;\n const current = rule.scope || [];\n const has = current.some(item => (item?.value ?? item) === value);\n const next = has\n ? current.filter(item => (item?.value ?? item) !== value)\n : [...current, appendScopeItem({ schema, rule, value })];\n setFieldValue(`${key}.value`, next);\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD: {\n const key = fieldKeys.scope;\n setFieldValue(`${key}.value.${index}.phoneField`, value);\n\n return \"stay\";\n }\n default:\n return \"close\";\n }\n};\n\nconst continueTargetFor = ({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n configPending,\n}) => {\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE:\n return schema.actor?.enabled\n ? {\n type: BUILDER_PANEL_TYPES.ACTOR,\n data: { anchor: BUILDER_ANCHORS.TRIGGER_ACTOR },\n }\n : null;\n case BUILDER_ANCHORS.COND_FIELD:\n return {\n type: BUILDER_PANEL_TYPES.OPERATOR,\n data: { index, anchor: BUILDER_ANCHORS.COND_OP_TOGGLE },\n };\n case BUILDER_ANCHORS.COND_OP_TOGGLE: {\n const condition = conditionAt({ rule, index });\n const field = findField({ schema, value: condition.field });\n if ((field?.noValueForVerbs || []).includes(condition.verb)) return null;\n\n return {\n type: BUILDER_PANEL_TYPES.CONDITION_VALUE,\n data: { index, anchor: BUILDER_ANCHORS.COND_VALUES },\n };\n }\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL: {\n const action = actionAt({ rule, index });\n\n if (actionHasConfig({ schema, action })) {\n return {\n type: BUILDER_PANEL_TYPES.ACTION_CONFIG,\n data: { index, anchor: BUILDER_ANCHORS.ACTION_CONFIG },\n };\n }\n\n // Reached here only because the action has no config yet — its name is\n // still unresolved — so the recipient pane owes us that step afterwards.\n if (channelMetaOf({ schema, action }).needsRecipient) {\n return {\n type: BUILDER_PANEL_TYPES.RECIPIENT,\n data: {\n index,\n anchor: BUILDER_ANCHORS.ACTION_RECIPIENT,\n configPending: true,\n },\n };\n }\n\n return stepTargetAfter({ schema, rule, index });\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT: {\n // Only chain back to config when it was skipped on the way in; arriving\n // from the config pane or from the token means config is already done.\n const action = actionAt({ rule, index });\n\n return configPending && actionHasConfig({ schema, action })\n ? {\n type: BUILDER_PANEL_TYPES.ACTION_CONFIG,\n data: { index, anchor: BUILDER_ANCHORS.ACTION_CONFIG },\n }\n : stepTargetAfter({ schema, rule, index });\n }\n case BUILDER_ANCHORS.ACTION_STEP:\n return stepTargetAfter({ schema, rule, index, stepKey });\n default:\n return null;\n }\n};\n\nconst replaceAt = ({ list, index, item }) => {\n const next = [...list];\n // eslint-disable-next-line security/detect-object-injection\n next[index] = item;\n\n return next;\n};\n\nconst applyPreview = ({ rule, schema, anchor, index, value }) => {\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE:\n return {\n ...rule,\n triggers: Array.isArray(value)\n ? value.map(name => ({ name }))\n : nextTriggers({ schema, rule, value }),\n };\n case BUILDER_ANCHORS.TRIGGER_ACTOR:\n return { ...rule, performer: value };\n case BUILDER_ANCHORS.COND_FIELD:\n return {\n ...rule,\n conditions: replaceAt({\n list: rule.conditions,\n index,\n item: nextConditionAt({ schema, rule, index, value }),\n }),\n };\n case BUILDER_ANCHORS.COND_OP_TOGGLE:\n return {\n ...rule,\n conditions: replaceAt({\n list: rule.conditions,\n index,\n item: { ...conditionAt({ rule, index }), verb: value },\n }),\n };\n case BUILDER_ANCHORS.COND_CONNECTOR:\n return { ...rule, conditionMode: value };\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL:\n return {\n ...rule,\n actions: replaceAt({\n list: rule.actions,\n index,\n item: nextActionAt({ schema, rule, index, value }),\n }),\n };\n case BUILDER_ANCHORS.ACTION_RECIPIENT:\n return {\n ...rule,\n actions: replaceAt({\n list: rule.actions,\n index,\n item: nextActionRecipientAt({ schema, rule, index, value }),\n }),\n };\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD:\n return {\n ...rule,\n scope: replaceAt({\n list: rule.scope,\n index,\n item: { ...scopeItemAt({ rule, index }), phoneField: value },\n }),\n };\n default:\n return rule;\n }\n};\n\nexport {\n optionValue,\n normalizeOptions,\n groupByCategory,\n descriptorFor,\n commitFor,\n continueTargetFor,\n stepTargetAfter,\n applyPreview,\n};\n","import { Fragment, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { flatten } from \"flat\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Plus } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport ConditionRow from \"./ConditionRow\";\nimport Connector from \"./Connector\";\nimport DelayRow from \"./DelayRow\";\nimport MetaBlock from \"./MetaBlock\";\nimport ScopeBlock from \"./ScopeBlock\";\nimport ThenBlock from \"./ThenBlock\";\nimport WhenBlock from \"./WhenBlock\";\n\nimport {\n ACTION_ANCHORS,\n BUILDER_ANCHORS,\n CONDITION_ANCHORS,\n FLASH_DURATION_MS,\n} from \"../constants\";\nimport usePaneCascade from \"../hooks/usePaneCascade\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { applyPreview } from \"../Panes/utils\";\nimport {\n actionStepsOf,\n recipientOwnedFields,\n stepValueOf,\n isTriggerSatisfied,\n isRuleComplete,\n invalidScopeIndexes,\n invalidScopePhoneFieldIndexes,\n joinTypeFor,\n offeredConditionFields,\n} from \"../utils\";\n\nconst Canvas = ({ schema }) => {\n const { t } = useTranslation();\n const { openPane, closePane } = usePaneCascade(schema);\n const { errors, submitCount } = useFormikContext();\n const {\n rule,\n fieldKeys,\n setPerformer,\n setConditions,\n setDelay,\n removeCondition,\n removeAction,\n setActive,\n setScope,\n clearTriggers,\n clearConditions,\n clearActions,\n } = useRuleModel(schema);\n\n const { builderPreview, panelState } = useUtilityStore.pick();\n const displayRule = useMemo(\n () =>\n builderPreview ? applyPreview({ rule, schema, ...builderPreview }) : rule,\n [rule, schema, builderPreview]\n );\n\n const activeToken = panelState?.data || {};\n const isActive = ({ type, index }) =>\n !!panelState?.type &&\n activeToken.anchor === type &&\n activeToken.index === index;\n\n const addingAction =\n !!panelState?.type &&\n activeToken.anchor === BUILDER_ANCHORS.ACTION_ADD &&\n activeToken.index === rule.actions.length &&\n !builderPreview;\n\n const flatErrors = useMemo(() => flatten(errors || {}), [errors]);\n const [flashSeq, setFlashSeq] = useState(0);\n const lastSubmitCount = useRef(submitCount);\n useEffect(() => {\n if (submitCount <= lastSubmitCount.current) return undefined;\n lastSubmitCount.current = submitCount;\n if (\n isEmpty(flatErrors) &&\n isRuleComplete({ rule, schema }) &&\n isEmpty(invalidScopeIndexes({ rule, schema })) &&\n isEmpty(invalidScopePhoneFieldIndexes({ rule, schema }))\n ) {\n return undefined;\n }\n\n setFlashSeq(submitCount);\n const timer = setTimeout(() => setFlashSeq(0), FLASH_DURATION_MS);\n\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [submitCount]);\n\n const hasErrorAt = ({ prefix, exclude = [] }) =>\n Object.keys(flatErrors).some(\n key =>\n (key === prefix || key.startsWith(`${prefix}.`)) &&\n !exclude.some(\n sub =>\n key === `${prefix}.${sub}` || key.startsWith(`${prefix}.${sub}.`)\n )\n );\n\n const matchesInvalid = ({ type, index, stepKey }) => {\n const conditionMeta = `${fieldKeys.conditions}.value.${index}.metadata`;\n const actionMeta = `${fieldKeys.actions}.value.${index}.metadata`;\n // eslint-disable-next-line security/detect-object-injection\n const actionItem = rule.actions[index] || {};\n const steps = actionStepsOf({ schema, action: actionItem });\n const stepKeys = steps.map(step => step.key);\n\n const recipientFields = recipientOwnedFields({\n schema,\n action: actionItem,\n name: actionMeta,\n });\n switch (type) {\n case BUILDER_ANCHORS.TRIGGER_ACTOR: {\n const actorKey = schema.actor?.fieldKey;\n\n return !!actorKey && hasErrorAt({ prefix: `${actorKey}.value` });\n }\n case BUILDER_ANCHORS.TRIGGER_LEAD_TIME:\n return hasErrorAt({ prefix: `${fieldKeys.leadTime}.value` });\n case BUILDER_ANCHORS.COND_FIELD:\n return hasErrorAt({\n prefix: `${fieldKeys.conditions}.value.${index}.field`,\n });\n case BUILDER_ANCHORS.COND_OP_TOGGLE: {\n // eslint-disable-next-line security/detect-object-injection\n const condition = rule.conditions[index] || {};\n\n return !!condition.field && !condition.verb;\n }\n case BUILDER_ANCHORS.COND_VALUES:\n return hasErrorAt({ prefix: conditionMeta });\n case BUILDER_ANCHORS.ACTION_CONFIG:\n return hasErrorAt({\n prefix: actionMeta,\n exclude: [...recipientFields, ...stepKeys],\n });\n case BUILDER_ANCHORS.ACTION_STEP: {\n const step = steps.find(item => item.key === stepKey);\n\n return (\n hasErrorAt({ prefix: `${actionMeta}.${stepKey}` }) ||\n (!!step?.required && !stepValueOf({ action: actionItem, step }))\n );\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT:\n return (\n hasErrorAt({\n prefix: `${fieldKeys.actions}.value.${index}.name`,\n }) ||\n recipientFields.some(field =>\n hasErrorAt({ prefix: `${actionMeta}.${field}` })\n )\n );\n case BUILDER_ANCHORS.ACTION_ADD:\n return !rule.actions.some(item => item?.channel || item?.name);\n case BUILDER_ANCHORS.RULE_DELAY:\n return hasErrorAt({ prefix: `${fieldKeys.delay}.value` });\n case BUILDER_ANCHORS.SCOPE:\n return invalidScopeIndexes({ rule, schema }).includes(index);\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD:\n return invalidScopePhoneFieldIndexes({ rule, schema }).includes(index);\n case BUILDER_ANCHORS.META_NAME:\n return hasErrorAt({ prefix: `${fieldKeys.name}.value` });\n default:\n return false;\n }\n };\n\n // Returns the submit generation, not a boolean, so consumers can replay the\n // flash animation when the same token is still invalid on a repeat submit.\n const isInvalid = args => (flashSeq && matchesInvalid(args) ? flashSeq : 0);\n\n const closePaneIfTargeting = ({ anchors, index }) => {\n if (\n panelState?.type &&\n anchors.includes(activeToken.anchor) &&\n activeToken.index === index\n ) {\n closePane();\n }\n };\n\n const handleRemoveCondition = index => {\n closePaneIfTargeting({ anchors: CONDITION_ANCHORS, index });\n removeCondition(index);\n };\n\n const handleRemoveAction = index => {\n closePaneIfTargeting({ anchors: ACTION_ANCHORS, index });\n removeAction(index);\n const remaining = rule.actions.filter((_, i) => i !== index);\n if (!remaining.some(action => action?.channel || action?.name)) {\n setScope([]);\n }\n };\n\n const handleRemoveDelay = () => {\n closePaneIfTargeting({\n anchors: [BUILDER_ANCHORS.RULE_DELAY],\n index: undefined,\n });\n setDelay(null);\n };\n\n // An actor with a single choice is not a choice; leaving it unset only makes\n // the user open a one-option pane to say the obvious.\n const actorOptions = schema?.actor?.enabled ? schema.actor.options || [] : [];\n const soleActorOption =\n actorOptions.length === 1\n ? (actorOptions[0].value ?? actorOptions[0].id ?? actorOptions[0])\n : null;\n\n const isTriggerSet = isTriggerSatisfied({ rule, schema });\n const hasAction = rule.actions.some(\n action => action?.channel || action?.name\n );\n const isScopeEnabled = schema?.scope?.enabled && isTriggerSet && hasAction;\n const handleRemoveScope = index => {\n closePaneIfTargeting({\n anchors: [BUILDER_ANCHORS.SCOPE_PHONE_FIELD],\n index,\n });\n setScope((rule.scope || []).filter((_, i) => i !== index));\n };\n const conditionFields = offeredConditionFields({ schema, rule });\n const canAddCondition = isNotEmpty(conditionFields);\n const canRemoveCondition =\n schema?.conditions?.allowEmpty !== false ||\n displayRule.conditions.length > 1;\n const leadTimeAppliesTo = schema?.triggers?.leadTime?.appliesTo || [];\n const hasLeadTimeTrigger = rule.triggers.some(trigger =>\n leadTimeAppliesTo.includes(trigger.name)\n );\n const isDelayEnabled = schema?.delay?.enabled && !hasLeadTimeTrigger;\n\n useEffect(() => {\n if (soleActorOption && !rule.performer) setPerformer(soleActorOption);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [soleActorOption, rule.performer]);\n\n useEffect(() => {\n if (hasLeadTimeTrigger && rule.delay) setDelay(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasLeadTimeTrigger, rule.delay]);\n\n const handleAddCondition = () => {\n if (isEmpty(conditionFields)) return;\n\n setConditions([\n ...rule.conditions,\n { joinType: joinTypeFor(rule.conditionMode), metadata: {} },\n ]);\n\n openPane({\n type: BUILDER_ANCHORS.COND_FIELD,\n index: rule.conditions.length,\n });\n };\n\n const handleClearTrigger = () => {\n clearTriggers();\n // Hosts without an actor pane can never re-set it, and null fails its validation.\n if (schema.actor?.enabled) setPerformer(soleActorOption);\n clearConditions();\n setDelay(null);\n clearActions();\n setScope([]);\n closePane();\n };\n\n const handleAddAction = () => {\n openPane({ type: BUILDER_ANCHORS.ACTION_ADD, index: rule.actions.length });\n };\n\n const slotCtx = { rule, schema, openPane };\n const renderSlot = name =>\n // eslint-disable-next-line security/detect-object-injection\n schema?.slots?.[name]?.(slotCtx) ?? null;\n\n return (\n <div className=\"neeto-rules-builder nrb-atoms\">\n <div className=\"mb-canvas neeto-rules-main-card\">\n {renderSlot(\"beforeWhen\")}\n <WhenBlock\n {...{ isActive, isInvalid, schema }}\n rule={displayRule}\n onClearTrigger={isTriggerSet && handleClearTrigger}\n onToken={openPane}\n onAddCondition={\n canAddCondition &&\n isEmpty(displayRule.conditions) &&\n handleAddCondition\n }\n />\n {renderSlot(\"afterWhen\")}\n {displayRule.conditions.map((condition, index) => (\n <ConditionRow\n {...{ condition, index, isActive, isInvalid, schema }}\n key={condition.id ?? index}\n rule={displayRule}\n onToken={openPane}\n onAddCondition={\n canAddCondition &&\n index === displayRule.conditions.length - 1 &&\n handleAddCondition\n }\n onRemove={\n canRemoveCondition && (() => handleRemoveCondition(index))\n }\n />\n ))}\n {renderSlot(\"afterConditions\")}\n <Connector active={isTriggerSet} />\n {isDelayEnabled &&\n isTriggerSet &&\n (rule.delay ? (\n <Fragment>\n <DelayRow\n {...{ isActive, isInvalid, rule }}\n onRemove={handleRemoveDelay}\n onToken={openPane}\n />\n <Connector active />\n </Fragment>\n ) : (\n <div className=\"mb-add-row\">\n <Button\n data-testid=\"rule-delay-add\"\n icon={Plus}\n iconPosition=\"left\"\n label={t(\"neetoRules.common.addDelay\")}\n size=\"sm\"\n variant=\"secondary\"\n onClick={() => openPane({ type: BUILDER_ANCHORS.RULE_DELAY })}\n />\n </div>\n ))}\n <ThenBlock\n {...{ isActive, isInvalid, schema }}\n adding={addingAction}\n rule={displayRule}\n onAddAction={handleAddAction}\n onRemoveAction={handleRemoveAction}\n onToken={openPane}\n />\n {renderSlot(\"afterActions\")}\n {isScopeEnabled && (\n <Fragment>\n <Connector active />\n <ScopeBlock\n {...{ isActive, isInvalid, schema }}\n rule={displayRule}\n onRemoveScope={handleRemoveScope}\n onToken={openPane}\n />\n </Fragment>\n )}\n <Connector active />\n <MetaBlock\n {...{ rule }}\n isInvalid={isInvalid({ type: BUILDER_ANCHORS.META_NAME })}\n showName={schema?.meta?.showName ?? true}\n onEditName={() => openPane({ type: BUILDER_ANCHORS.META_NAME })}\n onToggleActive={event => setActive(event.target.checked)}\n />\n </div>\n </div>\n );\n};\n\nexport default Canvas;\n","export const ACTION_CONFIG_TYPES = {\n emailChannel: \"emailChannel\",\n sendToApi: \"sendToApi\",\n multiSelect: \"multiSelect\",\n dropdown: \"dropdown\",\n note: \"note\",\n list: \"list\",\n textarea: \"textarea\",\n number: \"number\",\n text: \"text\",\n regex: \"regex\",\n decimal: \"decimal\",\n date: \"date\",\n};\n\nexport const CONDITION_VALUE_TYPES = {\n multiSelect: \"multi-select\",\n multiSelectCreate: \"multi-select-create\",\n number: \"number\",\n email: \"email\",\n date: \"date\",\n time: \"time\",\n};\n","import { useCallback, useRef } from \"react\";\n\nimport { Input, Select } from \"@bigbinary/neeto-atoms\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { findBy, isNotEmpty, isPresent } from \"neetocist\";\nimport { F } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport EditorAction from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/EditorAction\";\nimport SaveAsTemplate from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/SaveAsTemplate\";\nimport SelectTemplateField from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/SelectTemplateField\";\nimport { useHasFieldChanged } from \"../../../NeetoRulesForm/Element/Actions/Fields/hooks/useHasFieldChanged\";\nimport { useResetSaveAsTemplateOnHide } from \"../../../NeetoRulesForm/Element/Actions/Fields/hooks/useResetSaveAsTemplateOnHide\";\nimport {\n areValuesEqual,\n setEditorContent,\n} from \"../../../NeetoRulesForm/Element/Actions/Fields/utils\";\n\nconst EmailChannelFields = ({\n name,\n option,\n action,\n options,\n hasRecipientField,\n hint,\n}) => {\n const { t } = useTranslation();\n const { values, errors, touched, setFieldValue, setFieldTouched } =\n useFormikContext();\n const editorRef = useRef(null);\n\n const { isSaveAsTemplateEnabled } = useUtilityStore.pick();\n const hasFieldChanged = useHasFieldChanged(name);\n\n const valuePath = `${name}.value`;\n const subjectPath = `${name}.subject`;\n const bodyPath = `${name}.body`;\n const templates = option?.templates;\n // Hosts whose email action picks its recipient from a list keep that\n // choice in the same pane as the message.\n const hasRecipientList = isNotEmpty(options) && !hasRecipientField;\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n const shouldShowSaveAsTemplate = useCallback(\n ({ templateId, subject, body } = {}) => {\n const template = findBy({ id: templateId }, templates);\n const hasContent = isPresent(subject) || isPresent(body);\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.subject, subject) && template?.body === body\n );\n\n return hasContent && hasFieldChanged && isContentDifferentFromTemplate;\n },\n [templates, hasFieldChanged]\n );\n\n const isSaveAsTemplateVisible = useResetSaveAsTemplateOnHide(\n name,\n isSaveAsTemplateEnabled ? shouldShowSaveAsTemplate : F\n );\n\n // Formik validates each write on a stale snapshot, so write it all at once.\n const handleTemplateChange = template => {\n setFieldValue(name, {\n ...getIn(values, name),\n templateId: template.id,\n body: template.body,\n ...(option?.hideSubject ? {} : { subject: template.subject }),\n });\n setEditorContent(editorRef, template.body);\n };\n\n return (\n <div className=\"flex flex-col gap-4\">\n {hasRecipientList && (\n <Select\n {...{ options }}\n required\n error={fieldError(valuePath)}\n placeholder={option?.valuePlaceholder}\n size=\"large\"\n value={getIn(values, valuePath) ?? undefined}\n label={\n option?.recipientLabel || t(\"neetoRules.builder.config.recipient\")\n }\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={value => setFieldValue(valuePath, value)}\n />\n )}\n {isPresent(templates) && (\n <SelectTemplateField\n {...{ templates }}\n selectedField={option}\n onChange={handleTemplateChange}\n />\n )}\n {!option?.hideSubject && (\n <Input\n required\n error={fieldError(subjectPath)}\n label={t(\"neetoRules.builder.config.subject\")}\n placeholder={t(\"neetoRules.builder.config.subjectPlaceholder\")}\n size=\"large\"\n value={getIn(values, subjectPath) ?? \"\"}\n onBlur={() => setFieldTouched(subjectPath, true)}\n onChange={event => setFieldValue(subjectPath, event.target.value)}\n />\n )}\n <EditorAction\n {...{ editorRef }}\n required\n label={t(\"neetoRules.builder.config.body\")}\n name={bodyPath}\n placeholder={t(\"neetoRules.builder.config.bodyPlaceholder\")}\n value={action?.metadata?.body}\n variables={option?.variables}\n />\n {hint}\n {isSaveAsTemplateVisible && <SaveAsTemplate {...{ name }} />}\n </div>\n );\n};\n\nexport default EmailChannelFields;\n","import {\n Checkbox,\n DatePicker,\n Input,\n RadioGroup,\n Textarea,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { isNot } from \"neetocist\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT } from \"src/constants/dateTime\";\n\nimport { ACTION_CONFIG_TYPES } from \"./constants\";\nimport EmailChannelFields from \"./EmailChannelFields\";\n\nimport ApiFields from \"../../../NeetoRulesForm/Element/Actions/Fields/ApiFields\";\nimport EditorAction from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/EditorAction\";\nimport ListField from \"../../../NeetoRulesForm/Element/Actions/Fields/ListField\";\nimport { normalizeOptions } from \"../utils\";\n\nconst restoreTokens = text =>\n text ? text.replace(/\\[\\[/g, \"{{\").replace(/\\]\\]/g, \"}}\") : text;\n\nconst ActionConfigFields = ({\n name,\n option,\n action,\n searchTerm = \"\",\n hasRecipientField = false,\n}) => {\n const { t } = useTranslation();\n const { values, setFieldValue, setFieldTouched, errors, touched } =\n useFormikContext();\n const type = option?.type;\n const options = normalizeOptions(option?.dropdownOptions);\n const valuePath = `${name}.value`;\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n const term = searchTerm.trim().toLowerCase();\n const filterOptions = list =>\n term\n ? list.filter(item => String(item.label).toLowerCase().includes(term))\n : list;\n\n const hint = restoreTokens(option?.dynamicValuesHint);\n const hintBlock = hint ? (\n <Typography color=\"muted\" variant=\"body3\">\n {hint}\n </Typography>\n ) : null;\n\n const noOptionsMessage = () => {\n const noun = option?.valueNounPlural || option?.valueNoun;\n\n return (\n <Typography color=\"muted\" variant=\"body2\">\n {noun\n ? t(\"neetoRules.builder.config.noOptionsFor\", { field: noun })\n : t(\"neetoRules.builder.config.noOptions\")}\n </Typography>\n );\n };\n\n const noMatches = (\n <div className=\"mb-pane-empty\" data-testid=\"pane-no-matches\">\n {t(\"neetoRules.builder.noMatches\")}\n </div>\n );\n\n if (type === ACTION_CONFIG_TYPES.sendToApi) {\n return <ApiFields {...{ name }} selectedField={option} />;\n }\n\n if (type === ACTION_CONFIG_TYPES.emailChannel) {\n return (\n <EmailChannelFields\n {...{ action, hasRecipientField, name, option, options }}\n hint={hintBlock}\n />\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.multiSelect) {\n if (isEmpty(options)) return noOptionsMessage();\n\n const current = getIn(values, valuePath) || [];\n const filtered = filterOptions(options);\n if (term && isEmpty(filtered)) return noMatches;\n\n const toggle = value => {\n setFieldTouched(valuePath, true);\n setFieldValue(\n valuePath,\n current.includes(value)\n ? current.filter(isNot(value))\n : [...current, value]\n );\n };\n\n return (\n <div className=\"mb-pane-list flex flex-col\">\n {filtered.map(item => (\n <Checkbox\n checked={current.includes(item.value)}\n key={item.value}\n label={item.label}\n onCheckedChange={() => toggle(item.value)}\n />\n ))}\n {fieldError(valuePath) && (\n <Typography color=\"destructive\" variant=\"body3\">\n {fieldError(valuePath)}\n </Typography>\n )}\n </div>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.dropdown) {\n if (isEmpty(options)) return noOptionsMessage();\n\n const current = getIn(values, valuePath);\n const filtered = filterOptions(options);\n if (term && isEmpty(filtered)) return noMatches;\n\n return (\n <RadioGroup\n error={fieldError(valuePath)}\n orientation=\"vertical\"\n value={String(current ?? \"\")}\n onValueChange={value => {\n const picked = options.find(item => String(item.value) === value);\n setFieldValue(valuePath, picked ? picked.value : value);\n }}\n >\n {filtered.map(item => (\n <RadioGroup.Item\n key={item.value}\n label={item.label}\n value={String(item.value)}\n />\n ))}\n </RadioGroup>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.list) {\n return (\n <div className=\"flex flex-col gap-2\">\n <ListField name={valuePath} />\n {hintBlock}\n </div>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.note) {\n return (\n <div className=\"flex flex-col gap-2\">\n <EditorAction\n required\n label={t(\"neetoRules.builder.config.note\")}\n name={valuePath}\n placeholder={t(\"neetoRules.builder.config.bodyPlaceholder\")}\n value={action?.metadata?.value}\n variables={option?.variables}\n />\n {hintBlock}\n </div>\n );\n }\n\n if (\n type === ACTION_CONFIG_TYPES.textarea ||\n type === ACTION_CONFIG_TYPES.number\n ) {\n return type === ACTION_CONFIG_TYPES.number ? (\n <Input\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.value\")}\n size=\"large\"\n type=\"number\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event => setFieldValue(valuePath, event.target.value)}\n />\n ) : (\n <Textarea\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.message\")}\n rows={5}\n size=\"large\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event => setFieldValue(valuePath, event.target.value)}\n />\n );\n }\n\n if (\n type === ACTION_CONFIG_TYPES.text ||\n type === ACTION_CONFIG_TYPES.regex ||\n type === ACTION_CONFIG_TYPES.decimal\n ) {\n return (\n <div className=\"flex flex-col gap-2\">\n <Input\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.value\")}\n placeholder={option?.valuePlaceholder}\n size=\"large\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event => setFieldValue(valuePath, event.target.value)}\n />\n {hintBlock}\n </div>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.date) {\n return (\n <div className=\"flex flex-col gap-2\">\n <DatePicker\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.value\")}\n type=\"date\"\n value={\n getIn(values, valuePath)\n ? dayjs(getIn(values, valuePath))\n : undefined\n }\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={date =>\n setFieldValue(\n valuePath,\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n date ? dayjs(date).format(DATE_FORMAT) : \"\"\n )\n }\n />\n {hintBlock}\n </div>\n );\n }\n\n return (\n <Typography variant=\"body2\">{t(\"neetoRules.builder.noConfig\")}</Typography>\n );\n};\n\nexport default ActionConfigFields;\n","import { useEffect, useRef } from \"react\";\n\nimport { flatten } from \"flat\";\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nconst keysUnder = ({ obj, prefix, exclude = [] }) =>\n Object.keys(flatten(obj || {})).filter(\n key =>\n (key === prefix || key.startsWith(`${prefix}.`)) &&\n !exclude.some(\n sub => key === `${prefix}.${sub}` || key.startsWith(`${prefix}.${sub}.`)\n )\n );\n\nconst usePaneValidation = prefix => {\n const { validateForm, setFieldTouched, errors } = useFormikContext();\n const errorsRef = useRef(errors);\n errorsRef.current = errors;\n\n useEffect(() => {\n keysUnder({ obj: errorsRef.current, prefix }).forEach(key =>\n setFieldTouched(key, false, false)\n );\n\n return () => {\n keysUnder({ obj: errorsRef.current, prefix }).forEach(key =>\n setFieldTouched(key, true, false)\n );\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [prefix]);\n\n const validate = async (exclude = []) => {\n const nextErrors = await validateForm();\n const offending = keysUnder({ obj: nextErrors, prefix, exclude });\n offending.forEach(key => setFieldTouched(key, true, false));\n\n return isEmpty(offending);\n };\n\n return { validate };\n};\n\nexport default usePaneValidation;\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Button, Input, Typography } from \"neetoatoms\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Search } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nimport ActionConfigFields from \"./Fields/ActionConfigFields\";\nimport { normalizeOptions, stepTargetAfter } from \"./utils\";\n\nimport ErrorCallout from \"../../NeetoRulesForm/Element/Actions/ErrorCallout\";\nimport SmsFields from \"../../NeetoRulesForm/Element/Actions/Fields/SmsFields\";\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport {\n BUILDER_ANCHORS,\n BUILDER_PANEL_TYPES,\n CONFIG_FOCUSABLE_SELECTOR,\n PANE_SEARCH_THRESHOLD,\n SMS_TYPES,\n} from \"../constants\";\nimport usePaneCascade from \"../hooks/usePaneCascade\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { actionParts, recipientOwnedFields } from \"../utils\";\n\nconst ConfigPane = ({ schema, index }) => {\n const { t } = useTranslation();\n const { rule, fieldKeys } = useRuleModel(schema);\n const { setFieldValue } = useFormikContext();\n const { openType, closePane } = usePaneCascade(schema);\n const bodyRef = useRef(null);\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n // eslint-disable-next-line security/detect-object-injection\n const action = rule.actions[index] || {};\n const base = `${fieldKeys.actions}.value.${index}`;\n const {\n option,\n channel,\n verb,\n mediumLabel,\n needsRecipient,\n configTitle,\n configSubtitle,\n steps,\n } = actionParts({ schema, action });\n const name = `${base}.metadata`;\n\n const flatOption =\n schema.actions?.optionForName?.(action.name) ||\n schema.actions?.optionForChannel?.(channel) ||\n option;\n\n // When the chosen recipient declares its own field, the recipient pane\n // renders it; showing the same picker here too would just duplicate it.\n const recipientValue =\n action.recipient ?? schema.actions?.actionForName?.(action.name)?.recipient;\n\n const hasRecipientField = !!(schema.actions?.recipients || [])\n .concat((schema.actions?.options || []).flatMap(o => o.recipients || []))\n .find(item => (item.value ?? item.id) === recipientValue)?.field;\n\n const isSms = SMS_TYPES.includes(flatOption?.type);\n\n const disabledReason = flatOption?.isDisabled && flatOption.disabledReason;\n const hostRenderConfig =\n flatOption?.renderConfig ||\n flatOption?.component ||\n schema.actions?.renderConfig;\n\n const showSearch =\n normalizeOptions(flatOption?.dropdownOptions).length >=\n PANE_SEARCH_THRESHOLD;\n\n const shouldAdvanceToRecipient = !!needsRecipient;\n\n const { validate } = usePaneValidation(name);\n\n const channelRepName = schema.actions?.optionForChannel?.(channel)?.value;\n const unnamedOnOpen = useRef(!action.name);\n useEffect(() => {\n if (!unnamedOnOpen.current || !channelRepName) return undefined;\n setFieldValue(`${base}.name`, channelRepName);\n\n return () => setFieldValue(`${base}.name`, \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [base, channelRepName]);\n\n useEffect(() => {\n if (isSms) return undefined;\n\n let frame;\n let attempts = 0;\n const focusFirst = () => {\n const first = bodyRef.current?.querySelector(CONFIG_FOCUSABLE_SELECTOR);\n if (first) {\n first.focus();\n } else if (attempts++ < 20) {\n frame = requestAnimationFrame(focusFirst);\n }\n };\n frame = requestAnimationFrame(focusFirst);\n\n return () => cancelAnimationFrame(frame);\n }, [isSms, action.name]);\n\n const title =\n configTitle ||\n (mediumLabel &&\n t(\"neetoRules.builder.setUpMediumLabel\", {\n verb: verb || t(\"neetoRules.builder.setUp\"),\n mediumLabel,\n })) ||\n option?.label ||\n t(\"neetoRules.builder.setUpAction\");\n\n const handleContinue = async () => {\n // A pane only answers for what it renders: the recipient pane owns its\n // storage fields and each step owns its key, so neither blocks Continue.\n const owned = [\n ...recipientOwnedFields({ schema, action, name }),\n ...steps.map(step => step.key),\n ];\n if (!(await validate(owned))) return;\n\n const next = shouldAdvanceToRecipient\n ? {\n type: BUILDER_PANEL_TYPES.RECIPIENT,\n data: { index, anchor: BUILDER_ANCHORS.ACTION_RECIPIENT },\n }\n : stepTargetAfter({ schema, rule, index });\n\n if (next) openType(next);\n else closePane();\n };\n\n useHotkeys(SHORTCUTS.continue.sequence, handleContinue, { mode: \"global\" });\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {title}\n </Typography>\n {configSubtitle && (\n <Typography color=\"muted\" variant=\"body2\">\n {configSubtitle}\n </Typography>\n )}\n {showSearch && (\n <div className=\"mb-pane-search\">\n <Input\n dataTestId=\"pane-search\"\n placeholder={t(\"neetoRules.builder.searchPlaceholder\")}\n prefix={<Search />}\n size=\"large\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n )}\n </div>\n </Panel.Header>\n <Panel.Body>\n <div ref={bodyRef}>\n {disabledReason && (\n <div className=\"mb-4\">\n <ErrorCallout\n message={disabledReason}\n selectedField={flatOption}\n />\n </div>\n )}\n {isSms ? (\n <SmsFields\n {...{ action, index, name }}\n shouldAutoFocus\n hint={t(\"neetoRules.builder.config.smsSegmentHint\")}\n selectedField={flatOption}\n showPhoneNumberInput={false}\n />\n ) : (\n (hostRenderConfig?.({\n name,\n action,\n option: flatOption,\n searchTerm,\n }) ?? (\n <ActionConfigFields\n {...{ action, hasRecipientField, name, searchTerm }}\n option={flatOption}\n />\n ))\n )}\n </div>\n </Panel.Body>\n <Panel.Footer>\n <Button\n data-testid=\"continue-button\"\n label={t(\"neetoRules.buttons.continue\")}\n size=\"lg\"\n onClick={handleContinue}\n />\n </Panel.Footer>\n </>\n );\n};\n\nexport default ConfigPane;\n","import { useEffect, useRef } from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { Typography } from \"neetoatoms\";\nimport { Input, Select } from \"neetoatoms/formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n MAX_DELAY_VALUE,\n MIN_DELAY_VALUE,\n} from \"v2/components/NeetoRulesForm/constants\";\n\nimport { normalizeOptions } from \"./utils\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport { DEFAULT_DELAY_UNITS, DEFAULT_DELAY_VALUE } from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst DelayPane = ({ schema }) => {\n const { t } = useTranslation();\n const { fieldKeys } = useRuleModel(schema);\n const { setFieldValue, setFieldTouched, getFieldMeta } = useFormikContext();\n const bodyRef = useRef(null);\n\n const name = fieldKeys.delay;\n const [{ value }] = useField(`${name}.value`);\n\n const units = normalizeOptions(schema.delay?.units);\n const unitOptions = isNotEmpty(units) ? units : DEFAULT_DELAY_UNITS;\n\n usePaneValidation(`${name}.value`);\n\n useEffect(() => {\n if (value?.value === undefined) return;\n\n if (getFieldMeta(`${name}.value.value`).touched) return;\n setFieldTouched(`${name}.value.value`, true, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.value]);\n\n useEffect(() => {\n if (isEmpty(value || {})) {\n setFieldValue(`${name}.value`, {\n value: DEFAULT_DELAY_VALUE,\n unit: unitOptions[0]?.value ?? DEFAULT_DELAY_UNITS[0].value,\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const first = bodyRef.current?.querySelector(\"input\");\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n if (first) setTimeout(() => first.focus(), 0);\n }, []);\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex flex-col gap-y-1\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.common.addDelay\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoRules.helpText.addDelay\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <div className=\"flex flex-col gap-y-1.5\" ref={bodyRef}>\n <Typography variant=\"body2\" weight=\"medium\">\n {t(\"neetoRules.builder.waitFor\")}\n </Typography>\n <div className=\"flex items-start gap-x-2\">\n {/* An unlabelled Input renders its error as a sibling of the field. */}\n <div className=\"w-44\">\n <Input\n dataTestId=\"delay-value\"\n max={MAX_DELAY_VALUE}\n min={MIN_DELAY_VALUE}\n name={`${name}.value.value`}\n placeholder={t(\"neetoRules.placeholders.enterDelay\")}\n size=\"large\"\n type=\"number\"\n />\n </div>\n <Select\n dataTestId=\"delay-unit\"\n defaultValue={value?.unit}\n name={`${name}.value.unit`}\n options={unitOptions}\n size=\"large\"\n onChange={nextUnit =>\n setFieldValue(`${name}.value.unit`, nextUnit)\n }\n />\n </div>\n </div>\n </Panel.Body>\n </>\n );\n};\n\nexport default DelayPane;\n","import { isNil } from \"ramda\";\n\nexport const toNumber = value =>\n value === \"\" || isNil(value) ? null : Number(value);\n\nexport const clamp = ({ value, min, max }) => {\n let next = value;\n if (!isNil(min)) next = Math.max(min, next);\n\n if (!isNil(max)) next = Math.min(max, next);\n\n return next;\n};\n\nexport const asText = value =>\n value === \"\" || isNil(value) ? \"\" : String(value);\n","import { useState } from \"react\";\n\nimport { Input } from \"neetoatoms\";\nimport { Up, Down } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { toNumber, clamp, asText } from \"./utils\";\n\nimport { SKIP_TAB_INDEX, STEPPER_DELTA, STEPPER_MIN_VALUE } from \"../constants\";\n\nconst NumberStepper = ({\n value,\n onChange,\n dataTestid,\n label,\n min = STEPPER_MIN_VALUE,\n max,\n required,\n error,\n}) => {\n const { t } = useTranslation();\n const [draft, setDraft] = useState(null);\n\n const display = draft ?? asText(value);\n\n const commit = raw => {\n setDraft(raw);\n onChange(raw === \"\" ? (min ?? 0) : clamp({ value: Number(raw), min, max }));\n };\n\n const step = delta => {\n setDraft(null);\n const base = Number.isFinite(toNumber(value))\n ? toNumber(value)\n : (min ?? 0);\n onChange(clamp({ value: base + delta, min, max }));\n };\n\n return (\n <div className=\"mb-stepper\">\n <Input\n {...{ error, label, min, required }}\n autoFocus\n dataTestId={dataTestid}\n type=\"number\"\n value={display}\n suffix={\n <div className=\"mb-stepper-controls\">\n <button\n aria-label={t(\"neetoRules.builder.aria.increase\")}\n className=\"mb-stepper-btn\"\n data-testid=\"stepper-increase\"\n tabIndex={SKIP_TAB_INDEX}\n type=\"button\"\n onClick={() => step(STEPPER_DELTA.INCREMENT)}\n >\n <Up />\n </button>\n <button\n aria-label={t(\"neetoRules.builder.aria.decrease\")}\n className=\"mb-stepper-btn\"\n data-testid=\"stepper-decrease\"\n tabIndex={SKIP_TAB_INDEX}\n type=\"button\"\n onClick={() => step(STEPPER_DELTA.DECREMENT)}\n >\n <Down />\n </button>\n </div>\n }\n onBlur={() => setDraft(null)}\n onChange={event => commit(event.target.value)}\n onFocus={event => event.target.select()}\n />\n </div>\n );\n};\n\nexport default NumberStepper;\n","import { useEffect } from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { Select, Typography } from \"neetoatoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport NumberStepper from \"../Common/NumberStepper\";\nimport { LEAD_TIME_UNITS } from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { minutesToParts, partsToMinutes } from \"../utils\";\n\nconst LeadTimePane = ({ schema }) => {\n const { t } = useTranslation();\n const { setFieldValue, setFieldTouched, getFieldMeta } = useFormikContext();\n const { rule, fieldKeys } = useRuleModel(schema);\n\n const { value: amount, unit } = minutesToParts(rule.leadTime);\n const path = `${fieldKeys.leadTime}.value`;\n const [, { error, touched }] = useField(path);\n const update = ({ value, unit: nextUnit }) =>\n setFieldValue(path, partsToMinutes({ value, unit: nextUnit }));\n\n usePaneValidation(path);\n\n useEffect(() => {\n if (rule.leadTime === undefined) return;\n\n if (getFieldMeta(path).touched) return;\n setFieldTouched(path, true, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rule.leadTime]);\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex flex-col gap-y-1\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.builder.leadTimeTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoRules.builder.leadTimeSubtitle\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <div className=\"flex flex-col gap-y-1.5\">\n <Typography variant=\"body2\" weight=\"medium\">\n {t(\"neetoRules.builder.before\")}\n </Typography>\n <div className=\"flex items-start gap-x-3\">\n <div className=\"flex-1\">\n <NumberStepper\n dataTestid=\"lead-time\"\n error={touched ? error : \"\"}\n value={amount}\n onChange={value =>\n update({ value: value === \"\" ? 0 : value, unit })\n }\n />\n </div>\n <div className=\"w-32 shrink-0\">\n <Select\n dataTestId=\"lead-time-unit\"\n isSearchable={false}\n options={LEAD_TIME_UNITS}\n value={unit}\n onChange={nextUnit => update({ value: amount, unit: nextUnit })}\n />\n </div>\n </div>\n </div>\n </Panel.Body>\n </>\n );\n};\n\nexport default LeadTimePane;\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst NamePane = ({ schema }) => {\n const { t } = useTranslation();\n const { fieldKeys } = useRuleModel(schema);\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex flex-col gap-y-1\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.builder.automationName\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoRules.builder.nameSubtitle\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <Input\n autoFocus\n required\n label={t(\"neetoRules.common.name\")}\n name={`${fieldKeys.name}.value`}\n placeholder={t(\"neetoRules.builder.nameYourAutomation\")}\n size=\"large\"\n />\n </Panel.Body>\n </>\n );\n};\n\nexport default NamePane;\n","import {\n Fragment,\n isValidElement,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport {\n Button,\n Checkbox,\n Input,\n Popover,\n RadioGroup,\n Tooltip,\n Typography,\n} from \"neetoatoms\";\nimport { isNot } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Info, Search } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport {\n descriptorFor,\n commitFor,\n continueTargetFor,\n groupByCategory,\n} from \"./utils\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport { PANE_SEARCH_THRESHOLD } from \"../constants\";\nimport usePaneCascade from \"../hooks/usePaneCascade\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst OptionsPane = ({\n schema,\n anchor,\n index,\n stepKey,\n belowContent = null,\n configPending = false,\n validate = null,\n}) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n const { rule, fieldKeys, setTriggers, setPerformer, setConditionMode } =\n useRuleModel(schema);\n const { openType, closePane } = usePaneCascade(schema);\n const { setBuilderPreview } = useUtilityStore.pick();\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n const searchRef = useRef(null);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setBuilderPreview(null), []);\n\n useEffect(() => {\n searchRef.current?.querySelector(\"input\")?.focus();\n }, []);\n\n const { title, subtitle, multi, options, selectedValues, cascade } = useMemo(\n () => descriptorFor({ anchor, schema, rule, index, stepKey }),\n [anchor, schema, rule, index, stepKey]\n );\n\n const helpers = {\n setTriggers,\n setPerformer,\n setConditionMode,\n setFieldValue,\n fieldKeys,\n };\n\n const showSearch =\n schema?.searchable !== false && options.length >= PANE_SEARCH_THRESHOLD;\n const term = searchTerm.trim().toLowerCase();\n const filtered = useMemo(\n () =>\n term\n ? options.filter(option => option.label.toLowerCase().includes(term))\n : options,\n [options, term]\n );\n const groups = useMemo(() => groupByCategory(filtered), [filtered]);\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n const isSelected = value => selectedValues.includes(value);\n\n const handleSelect = value => {\n setBuilderPreview(null);\n const result = commitFor({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n value,\n helpers,\n });\n if (result === \"close\") closePane();\n };\n\n const multiCandidate = optionValue =>\n selectedValues.includes(optionValue)\n ? selectedValues.filter(isNot(optionValue))\n : [...selectedValues.filter(Boolean), optionValue];\n\n const previewHandlers = optionValue => {\n const value = multi ? multiCandidate(optionValue) : optionValue;\n\n return {\n onMouseEnter: () => setBuilderPreview({ anchor, index, value }),\n onMouseLeave: () => setBuilderPreview(null),\n };\n };\n\n const handleContinue = async () => {\n if (validate && !(await validate())) return;\n\n const target = continueTargetFor({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n configPending,\n });\n if (target) openType({ type: target.type, data: target.data });\n else closePane();\n };\n\n const canContinue = cascade && selectedValues.some(Boolean);\n useHotkeys(SHORTCUTS.continue.sequence, handleContinue, {\n enabled: canContinue,\n mode: \"global\",\n });\n\n const optionLabel = option => {\n const Icon = option.icon;\n // Short text sits inline as a pill; anything needing more room is a\n // standard popover behind an info icon.\n const reason =\n typeof option.disabledReason === \"function\"\n ? option.disabledReason()\n : option.disabledReason;\n const isTextReason = typeof reason === \"string\";\n // Only a node can be rendered as popover content; a host handing back a\n // plain object would otherwise crash the pane.\n const isNodeReason = isValidElement(reason) || Array.isArray(reason);\n const popover =\n option.disabledPopover || (isNodeReason ? { description: reason } : null);\n\n if (!Icon && !isTextReason && !popover) return option.label;\n\n return (\n <span className=\"mb-pane-option\">\n {Icon && <Icon size={20} />}\n {option.label}\n {popover && (\n <Popover\n position=\"top\"\n trigger={\n <span\n className=\"mb-pane-info\"\n onClick={event => event.preventDefault()}\n >\n <Info size={14} />\n </span>\n }\n >\n {popover.title && <Popover.Title>{popover.title}</Popover.Title>}\n <Typography color=\"muted\" variant=\"body2\">\n {popover.description}\n </Typography>\n {popover.helpLinkProps && (\n <Button\n {...popover.helpLinkProps}\n className=\"h-auto self-start p-0\"\n size=\"sm\"\n variant=\"link\"\n />\n )}\n </Popover>\n )}\n {!popover &&\n reason &&\n isTextReason &&\n (option.disabledTooltip ? (\n <Tooltip content={option.disabledTooltip} position=\"top\">\n <span className=\"mb-pane-warn\">{reason}</span>\n </Tooltip>\n ) : (\n <span className=\"mb-pane-warn\">{reason}</span>\n ))}\n </span>\n );\n };\n\n const renderGroupHeader = category =>\n category && <div className=\"mb-pane-group\">{category}</div>;\n\n const renderBody = () => {\n if (isEmpty(filtered)) {\n return (\n <div className=\"mb-pane-empty\" data-testid=\"pane-no-matches\">\n {t(\"neetoRules.builder.noMatches\")}\n </div>\n );\n }\n\n if (multi) {\n return (\n <div className=\"mb-pane-list flex flex-col\">\n {groups.map(([category, items]) => (\n <Fragment key={category || \"_uncategorized\"}>\n {renderGroupHeader(category)}\n {items.map(option => (\n <Checkbox\n checked={isSelected(option.value)}\n disabled={option.disabled}\n key={option.value}\n label={optionLabel(option)}\n labelProps={previewHandlers(option.value)}\n onCheckedChange={() => handleSelect(option.value)}\n {...(option.icon || option.disabledReason\n ? { dataTestid: option.value }\n : {})}\n {...previewHandlers(option.value)}\n />\n ))}\n </Fragment>\n ))}\n </div>\n );\n }\n\n return (\n <RadioGroup\n orientation=\"vertical\"\n value={selectedValues?.[0] ?? \"\"}\n onValueChange={handleSelect}\n >\n {groups\n .flatMap(([category, items]) => [\n category ? (\n <div className=\"mb-pane-group\" key={`group-${category}`}>\n {category}\n </div>\n ) : null,\n ...items.map(option => (\n <RadioGroup.Item\n disabled={option.disabled}\n key={option.value}\n label={optionLabel(option)}\n labelProps={previewHandlers(option.value)}\n value={option.value}\n {...(option.icon || option.disabledReason\n ? { \"data-testid\": option.value }\n : {})}\n {...previewHandlers(option.value)}\n />\n )),\n ])\n .filter(Boolean)}\n </RadioGroup>\n );\n };\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {title}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {subtitle}\n </Typography>\n {showSearch && (\n <div className=\"mb-pane-search\" ref={searchRef}>\n <Input\n dataTestId=\"pane-search\"\n placeholder={t(\"neetoRules.builder.searchPlaceholder\")}\n prefix={<Search />}\n size=\"large\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n )}\n </div>\n </Panel.Header>\n <Panel.Body>\n {renderBody()}\n {belowContent}\n </Panel.Body>\n {cascade && (\n <Panel.Footer>\n <Button\n data-testid=\"continue-button\"\n disabled={!canContinue}\n label={t(\"neetoRules.buttons.continue\")}\n size=\"lg\"\n onClick={handleContinue}\n />\n </Panel.Footer>\n )}\n </>\n );\n};\n\nexport default OptionsPane;\n","import { MultiEmailInput, Select } from \"@bigbinary/neeto-atoms\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RECIPIENT_STORAGE_FIELDS } from \"../../constants\";\nimport { normalizeOptions } from \"../utils\";\n\nconst RecipientField = ({ field, name, dropdownOptions, placeholder }) => {\n const { t } = useTranslation();\n const { values, setFieldValue, setFieldTouched, errors, touched } =\n useFormikContext();\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n if (field === RECIPIENT_STORAGE_FIELDS.emails) {\n const path = `${name}.${RECIPIENT_STORAGE_FIELDS.emails}`;\n const current = getIn(values, path) || [];\n\n return (\n <MultiEmailInput\n required\n error={fieldError(path)}\n label={t(\"neetoRules.builder.config.emailAddresses\")}\n placeholder={t(\"neetoRules.builder.config.emailPlaceholder\")}\n value={current.map(email => ({\n label: email,\n value: email,\n valid: true,\n }))}\n onBlur={() => setFieldTouched(path, true)}\n onChange={items => setFieldValue(path, pluck(\"value\", items || []))}\n />\n );\n }\n\n const path = `${name}.${RECIPIENT_STORAGE_FIELDS.value}`;\n const current = getIn(values, path);\n const options = normalizeOptions(dropdownOptions);\n\n return (\n <Select\n {...{ options, placeholder }}\n required\n error={fieldError(path)}\n label={t(\"neetoRules.builder.config.recipient\")}\n size=\"large\"\n value={current ?? undefined}\n onBlur={() => setFieldTouched(path, true)}\n onChange={value => setFieldValue(path, value)}\n />\n );\n};\n\nexport default RecipientField;\n","import { useEffect, useRef } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport RecipientField from \"./Fields/RecipientField\";\nimport OptionsPane from \"./OptionsPane\";\n\nimport PhoneNumberField from \"../../NeetoRulesForm/Element/Actions/Fields/SmsFields/PhoneNumberField\";\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport {\n BUILDER_ANCHORS,\n RECIPIENT_FOCUSABLE_SELECTOR,\n RECIPIENT_STORAGE_FIELDS,\n SMS_TO_NUMBERS,\n} from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst RecipientPane = ({ schema, index, configPending = false }) => {\n const { t } = useTranslation();\n const { rule, fieldKeys } = useRuleModel(schema);\n const bodyRef = useRef(null);\n const belowRef = useRef(null);\n\n // eslint-disable-next-line security/detect-object-injection\n const action = rule.actions[index] || {};\n const channel =\n action.channel || schema.actions?.actionForName?.(action.name)?.channel;\n\n const recipient =\n action.recipient ?? schema.actions?.actionForName?.(action.name)?.recipient;\n const name = `${fieldKeys.actions}.value.${index}.metadata`;\n\n const editor = schema.actions?.renderRecipientEditor?.({\n channel,\n name,\n action,\n });\n\n const flatOption =\n schema.actions?.optionForName?.(action.name) ||\n schema.actions?.optionForChannel?.(channel);\n const isSmsToNumbers = flatOption?.type === SMS_TO_NUMBERS;\n\n const recipientConfig = (schema.actions?.options || [])\n .flatMap(option => option.recipients || [])\n .concat(schema.actions?.recipients || [])\n .find(item => (item.value ?? item.id) === recipient);\n\n const recipientStorageField =\n recipientConfig?.field &&\n recipientConfig.field !== RECIPIENT_STORAGE_FIELDS.emails\n ? RECIPIENT_STORAGE_FIELDS.value\n : RECIPIENT_STORAGE_FIELDS.emails;\n\n const recipientFieldPath = isSmsToNumbers\n ? `${name}.${RECIPIENT_STORAGE_FIELDS.phoneNumbers}`\n : `${name}.${recipientStorageField}`;\n const { validate } = usePaneValidation(recipientFieldPath);\n\n useEffect(() => {\n if (!editor) return;\n const first = bodyRef.current?.querySelector(RECIPIENT_FOCUSABLE_SELECTOR);\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n if (first) setTimeout(() => first.focus(), 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [!editor]);\n\n const builtInRecipientField = recipientConfig?.field ? (\n <RecipientField\n {...{ name }}\n dropdownOptions={recipientConfig.dropdownOptions}\n field={recipientConfig.field}\n placeholder={recipientConfig.placeholder}\n />\n ) : null;\n\n const recipientField =\n schema.actions?.renderRecipientField?.({\n channel,\n recipient,\n name,\n action,\n }) ?? builtInRecipientField;\n\n const phoneField = isSmsToNumbers ? (\n <PhoneNumberField\n name={`${name}.${RECIPIENT_STORAGE_FIELDS.phoneNumbers}`}\n phoneNumbers={action.metadata?.phoneNumbers}\n />\n ) : null;\n\n const belowField = phoneField || recipientField;\n const belowContent = belowField ? (\n <div className=\"mt-5\" ref={belowRef}>\n {belowField}\n </div>\n ) : null;\n\n useEffect(() => {\n if (!belowField) return undefined;\n const timer = setTimeout(\n () =>\n belowRef.current?.querySelector(RECIPIENT_FOCUSABLE_SELECTOR)?.focus(),\n 0\n );\n\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [!!belowField]);\n\n if (!editor) {\n return (\n <OptionsPane\n {...{ belowContent, configPending, index, schema, validate }}\n anchor={BUILDER_ANCHORS.ACTION_RECIPIENT}\n />\n );\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const meta = schema.actions?.channelMeta?.[channel] || {};\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {meta.recipientTitle ||\n t(\"neetoRules.builder.panes.recipientTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {meta.recipientSubtitle ||\n t(\"neetoRules.builder.panes.recipientSubtitle\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <div ref={bodyRef}>{editor}</div>\n </Panel.Body>\n </>\n );\n};\n\nexport default RecipientPane;\n","import {\n Checkbox,\n DatePicker,\n Input,\n RadioGroup,\n Select,\n TimePicker,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { isNot, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n DATE_FORMAT,\n DATE_TIME_FORMAT,\n DATE_TIME_TYPES,\n TIME_FORMAT,\n} from \"src/constants/dateTime\";\nimport { getDateTimeValue } from \"utils\";\n\nimport { CONDITION_VALUE_TYPES } from \"./constants\";\n\nimport { normalizeOptions } from \"../utils\";\n\nconst dateTimeMetaOf = field => {\n if (field?.type === CONDITION_VALUE_TYPES.time) {\n return { type: DATE_TIME_TYPES.time, format: TIME_FORMAT };\n }\n\n return field?.showTime\n ? { type: DATE_TIME_TYPES.datetime, format: DATE_TIME_FORMAT }\n : { type: DATE_TIME_TYPES.date, format: DATE_FORMAT };\n};\n\nconst ConditionValueFields = ({ name, field, searchTerm = \"\" }) => {\n const { t } = useTranslation();\n const { values, setFieldValue, setFieldTouched, errors, touched } =\n useFormikContext();\n\n const type = field?.type;\n const valueType = field?.valueType || type;\n const valuePath = `${name}.metadata.value`;\n const valuesPath = `${name}.metadata.values`;\n const enumOptions = normalizeOptions(\n field?.values || field?.dropdownOptions || field?.options\n );\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n const term = searchTerm.trim().toLowerCase();\n const filterOptions = list =>\n term\n ? list.filter(option => String(option.label).toLowerCase().includes(term))\n : list;\n\n const noMatches = (\n <div className=\"mb-pane-empty\" data-testid=\"pane-no-matches\">\n {t(\"neetoRules.builder.noMatches\")}\n </div>\n );\n\n if (type === CONDITION_VALUE_TYPES.multiSelect && isNotEmpty(enumOptions)) {\n const current = getIn(values, valuesPath) || [];\n const filtered = filterOptions(enumOptions);\n if (term && isEmpty(filtered)) return noMatches;\n\n const toggle = value => {\n setFieldTouched(valuesPath, true);\n setFieldValue(\n valuesPath,\n current.includes(value)\n ? current.filter(isNot(value))\n : [...current, value]\n );\n };\n\n return (\n <div className=\"mb-pane-list flex flex-col\">\n {filtered.map(option => (\n <Checkbox\n checked={current.includes(option.value)}\n key={option.value}\n label={option.label}\n onCheckedChange={() => toggle(option.value)}\n />\n ))}\n {fieldError(valuesPath) && (\n <Typography color=\"destructive\" variant=\"body3\">\n {fieldError(valuesPath)}\n </Typography>\n )}\n </div>\n );\n }\n\n if (type === CONDITION_VALUE_TYPES.multiSelect) {\n return (\n <Typography color=\"muted\" variant=\"body2\">\n {field?.label\n ? t(\"neetoRules.builder.config.noOptionsFor\", { field: field.label })\n : t(\"neetoRules.builder.config.noOptions\")}\n </Typography>\n );\n }\n\n if (type === CONDITION_VALUE_TYPES.multiSelectCreate) {\n const current = getIn(values, valuesPath) || [];\n\n return (\n <Select\n autoFocus\n isCreatable\n isMulti\n required\n error={fieldError(valuesPath)}\n label={t(\"neetoRules.builder.config.keywords\")}\n placeholder={t(\"neetoRules.builder.config.keywordsPlaceholder\")}\n size=\"large\"\n value={current}\n onBlur={() => setFieldTouched(valuesPath, true)}\n onChange={selected => setFieldValue(valuesPath, selected || [])}\n />\n );\n }\n\n if (isNotEmpty(enumOptions)) {\n const current = getIn(values, valuePath);\n const filtered = filterOptions(enumOptions);\n if (term && isEmpty(filtered)) return noMatches;\n\n return (\n <RadioGroup\n error={fieldError(valuePath)}\n orientation=\"vertical\"\n value={String(current ?? \"\")}\n onValueChange={value => setFieldValue(valuePath, value)}\n >\n {filtered.map(option => (\n <RadioGroup.Item\n key={option.value}\n label={String(option.label).toLowerCase()}\n value={String(option.value)}\n />\n ))}\n </RadioGroup>\n );\n }\n\n if (\n type === CONDITION_VALUE_TYPES.date ||\n type === CONDITION_VALUE_TYPES.time\n ) {\n const metadataPath = `${name}.metadata`;\n const metadata = getIn(values, metadataPath) || {};\n const { type: dateTimeType, format } = dateTimeMetaOf(field);\n const parsed = getDateTimeValue({\n date: metadata.value,\n format: metadata.format,\n type: metadata.type,\n timezone: metadata.timezone,\n });\n\n // Formik validates each write on a stale snapshot, so write it all at once.\n const handleChange = date => {\n setFieldTouched(valuePath, true, false);\n setFieldValue(metadataPath, {\n ...metadata,\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n value: date ? dayjs(date).format(format) : \"\",\n type: dateTimeType,\n format,\n timezone: globalProps?.user?.timeZone,\n });\n };\n\n const pickerProps = {\n required: true,\n error: fieldError(valuePath),\n value: parsed?.isValid?.() ? parsed : null,\n onBlur: () => setFieldTouched(valuePath, true),\n onChange: handleChange,\n };\n\n return dateTimeType === DATE_TIME_TYPES.time ? (\n <TimePicker\n {...pickerProps}\n format=\"24\"\n label={t(\"neetoRules.form.selectTime\")}\n />\n ) : (\n <DatePicker\n {...pickerProps}\n label={t(\"neetoRules.form.selectDate\")}\n showTime={field?.showTime}\n timeFormat=\"HH:mm\"\n type=\"date\"\n />\n );\n }\n\n if (valueType === CONDITION_VALUE_TYPES.number) {\n return (\n <Input\n autoFocus\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.common.value\")}\n size=\"large\"\n type=\"number\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event =>\n setFieldValue(\n valuePath,\n event.target.value === \"\" ? \"\" : Number(event.target.value)\n )\n }\n />\n );\n }\n\n return (\n <FormikInput\n autoFocus\n required\n label={t(\"neetoRules.common.value\")}\n name={valuePath}\n size=\"large\"\n type={valueType === CONDITION_VALUE_TYPES.email ? \"email\" : \"text\"}\n placeholder={\n field?.placeholder ||\n (valueType === CONDITION_VALUE_TYPES.email\n ? t(\"neetoRules.builder.config.exampleEmail\")\n : undefined)\n }\n />\n );\n};\n\nexport default ConditionValueFields;\n","import { useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Input, Typography } from \"neetoatoms\";\nimport { Search } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ConditionValueFields from \"./Fields/ConditionValueFields\";\nimport { optionValue, normalizeOptions } from \"./utils\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport { PANE_SEARCH_THRESHOLD } from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { isMultiValueVerb } from \"../utils\";\n\nconst ValuePane = ({ schema, index }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n const { rule, fieldKeys } = useRuleModel(schema);\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n const searchRef = useRef(null);\n\n // eslint-disable-next-line security/detect-object-injection\n const condition = rule.conditions[index] || {};\n const field = (schema.conditions?.fields || []).find(\n candidate => optionValue(candidate) === condition.field\n );\n const base = `${fieldKeys.conditions}.value.${index}`;\n\n usePaneValidation(`${base}.metadata`);\n\n const enumOptions = normalizeOptions(\n field?.values || field?.dropdownOptions || field?.options\n );\n\n const showSearch = enumOptions.length >= PANE_SEARCH_THRESHOLD;\n\n const renderBody = () => {\n if (schema.conditions?.renderValue) {\n return schema.conditions.renderValue({\n name: base,\n condition,\n field,\n setFieldValue,\n searchTerm,\n });\n }\n\n return <ConditionValueFields {...{ field, searchTerm }} name={base} />;\n };\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.builder.pickValue\", {\n field: field?.label || t(\"neetoRules.builder.valueWord\"),\n })}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {field?.valueSubtitle ||\n (isMultiValueVerb(condition?.verb)\n ? t(\"neetoRules.builder.valuesSubtitle\", {\n field: field?.label || t(\"neetoRules.builder.valueWord\"),\n })\n : t(\"neetoRules.builder.valueSubtitle\"))}\n </Typography>\n {showSearch && (\n <div className=\"mb-pane-search\" ref={searchRef}>\n <Input\n dataTestId=\"pane-search\"\n placeholder={t(\"neetoRules.builder.searchPlaceholder\")}\n prefix={<Search />}\n size=\"large\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n )}\n </div>\n </Panel.Header>\n <Panel.Body>{renderBody()}</Panel.Body>\n </>\n );\n};\n\nexport default ValuePane;\n","import ConfigPane from \"./ConfigPane\";\nimport DelayPane from \"./DelayPane\";\nimport LeadTimePane from \"./LeadTimePane\";\nimport NamePane from \"./NamePane\";\nimport OptionsPane from \"./OptionsPane\";\nimport RecipientPane from \"./RecipientPane\";\nimport ValuePane from \"./ValuePane\";\n\nimport { BUILDER_PANEL_TYPES } from \"../constants\";\n\nexport const BUILDER_PANEL_TYPE_CONFIG_MAP = {\n [BUILDER_PANEL_TYPES.TRIGGER]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.ACTOR]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.CONDITION_FIELD]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.OPERATOR]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.CONNECTOR]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.ACTION_CHANNEL]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.RECIPIENT]: { component: RecipientPane },\n [BUILDER_PANEL_TYPES.CONDITION_VALUE]: { component: ValuePane },\n [BUILDER_PANEL_TYPES.ACTION_CONFIG]: { component: ConfigPane },\n [BUILDER_PANEL_TYPES.ACTION_STEP]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.DELAY]: { component: DelayPane },\n [BUILDER_PANEL_TYPES.LEAD_TIME]: { component: LeadTimePane },\n [BUILDER_PANEL_TYPES.NAME]: { component: NamePane },\n [BUILDER_PANEL_TYPES.SCOPE]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.SCOPE_PHONE_FIELD]: { component: OptionsPane },\n};\n","import { useEffect, useMemo, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Form as FormikForm, Formik } from \"formik\";\nimport { Spinner } from \"neetoatoms\";\nimport { ActionBlock } from \"neetoatoms/formik\";\nimport { isNotEmpty, noop } from \"neetocist\";\nimport Container from \"neetomolecules/v2/Container\";\nimport Header from \"neetomolecules/v2/Header\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ScrollToErrorField } from \"v2/components/Common/ScrollToErrorField\";\nimport { DEFAULT_INITIAL_VALUE } from \"v2/components/NeetoRulesForm/constants\";\nimport usePollRuleName from \"v2/components/NeetoRulesForm/hooks/usePollRuleName\";\nimport useCustomDataStore from \"v2/components/NeetoRulesForm/stores/useCustomDataStore\";\nimport TouchErrors from \"v2/components/NeetoRulesForm/TouchErrors\";\nimport { buildPayload, formatData } from \"v2/components/NeetoRulesForm/utils\";\nimport { getValidationSchema } from \"v2/components/NeetoRulesForm/utils/validate\";\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport Canvas from \"./Canvas\";\nimport { BUILDER_PANEL_TYPE_CONFIG_MAP } from \"./Panes/constants\";\nimport {\n isRuleComplete,\n invalidScopeIndexes,\n invalidScopePhoneFieldIndexes,\n leadTimeValidationSchema,\n normalizeSchema,\n valuesToRuleModel,\n} from \"./utils\";\n\nimport Panel from \"../NeetoRulesForm/Panel\";\n\nconst Form = ({\n data = {},\n schema: rawSchema = {},\n automationRulesEndpoint: url,\n title,\n breadcrumbs = {},\n isLoading = false,\n className,\n handleSubmit = noop,\n handleCancel = noop,\n payloadKey = \"rule\",\n isNameGenerationDisabled = false,\n}) => {\n const { t } = useTranslation();\n\n const formikRef = useRef(null);\n const formRef = useRef(null);\n\n const { customData } = useCustomDataStore.pick();\n const { resetPanelState, errorFields, setIsSaveAsTemplateEnabled } =\n useUtilityStore.pick();\n\n const initialValues = useMemo(() => formatData(data), [data]);\n const schema = useMemo(() => normalizeSchema(rawSchema), [rawSchema]);\n\n const isSaveAsTemplateEnabled = !!rawSchema.actions?.isSaveAsTemplateEnabled;\n useEffect(() => {\n setIsSaveAsTemplateEnabled(isSaveAsTemplateEnabled);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isSaveAsTemplateEnabled]);\n\n const isNameRequired =\n isNameGenerationDisabled || (schema.meta?.showName ?? true);\n\n const { waitForGeneratedRuleName, saveRuleName, isCancelledNameGeneration } =\n usePollRuleName({ url, formikRef, payloadKey, isNameGenerationDisabled });\n\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference, react-hooks/exhaustive-deps\n useEffect(() => () => resetPanelState(), []);\n\n const submitForm = (values, formikBag) => {\n if (isNotEmpty(errorFields)) {\n return Promise.reject(\n new Error(t(\"neetoRules.form.errors.ruleHasErrorFields\"))\n );\n }\n\n const rule = valuesToRuleModel({ values, schema });\n if (\n !isRuleComplete({ rule, schema }) ||\n invalidScopeIndexes({ rule, schema }).length ||\n invalidScopePhoneFieldIndexes({ rule, schema }).length\n ) {\n return Promise.reject(\n new Error(t(\"neetoRules.form.errors.incompleteRule\"))\n );\n }\n\n if (isCancelledNameGeneration) {\n saveRuleName(values);\n\n return Promise.reject(\n new Error(t(\"neetoRules.form.errors.pendingRuleNameSave\"))\n );\n }\n\n const payload = buildPayload(data, values);\n\n resetPanelState();\n\n return handleSubmit(payload, formikBag, waitForGeneratedRuleName);\n };\n\n return (\n <Formik\n enableReinitialize\n initialValues={{ ...DEFAULT_INITIAL_VALUE, ...initialValues }}\n innerRef={formikRef}\n validationSchema={getValidationSchema({\n data,\n customData,\n isNameGenerationDisabled: isNameRequired,\n }).concat(leadTimeValidationSchema(schema))}\n onSubmit={submitForm}\n >\n {() => (\n <div className=\"flex neeto-rules-main-content h-full w-full\">\n <TouchErrors />\n <Container className=\"neeto-rules-main-content__container max-h-full\">\n <Header\n {...{ breadcrumbs }}\n title={title || t(\"neetoRules.common.title\")}\n />\n {isLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <FormikForm\n ref={formRef}\n className={classnames([\n \"w-full neeto-rules-main-content__form max-w-5xl\",\n className,\n ])}\n >\n <Canvas {...{ schema }} />\n <ScrollToErrorField {...{ formRef }} />\n <div className=\"bg-background sticky bottom-0 py-6\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n submitButtonProps={{ \"data-testid\": \"form-submit-button\" }}\n />\n </div>\n </FormikForm>\n )}\n </Container>\n <Panel configMap={BUILDER_PANEL_TYPE_CONFIG_MAP} />\n </div>\n )}\n </Formik>\n );\n};\n\nexport default Form;\n","// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/main.css\";\n\nimport Form from \"./Form\";\n\nconst NeetoRulesBuilder = ({ ...rest }) => <Form {...rest} />;\n\nexport default NeetoRulesBuilder;\n"],"names":["PARAM_KIND","ENUM_SINGLE","ENUM_MULTI","UNIT_MINUTES","minutes","hours","days","TIME_UNITS","label","value","LEAD_TIME_UNITS","MAX_LEAD_TIME_VALUE","STEPPER_DELTA","INCREMENT","DECREMENT","STEPPER_MIN_VALUE","DEFAULT_DELAY_VALUE","FLASH_DURATION_MS","SKIP_TAB_INDEX","CONDITION_VERBS","IS","IS_NOT","ANY_OF","NONE_OF","ALL_OF","LESS_THAN","GREATER_THAN","VERB_TOKENS","MULTI_VALUE","CONTAINS","DEFAULT_SCHEMA","triggers","fieldKey","options","actor","enabled","conditions","fields","connectorMode","actions","channelMeta","recipients","delay","units","integrations","slots","STATUS_KEYS","ENABLED","DISABLED","JOIN_TYPE","and","or","CONDITION_MODE","AND","OR","BUILDER_PANEL_TYPES","TRIGGER","ACTOR","CONDITION_FIELD","OPERATOR","CONNECTOR","CONDITION_VALUE","ACTION_CHANNEL","ACTION_CONFIG","ACTION_STEP","RECIPIENT","DELAY","LEAD_TIME","NAME","SCOPE","SCOPE_PHONE_FIELD","BUILDER_ANCHORS","TRIGGER_ADD","TRIGGER_REPLACE","TRIGGER_ACTOR","TRIGGER_LEAD_TIME","COND_FIELD","COND_OP_TOGGLE","COND_CONNECTOR","COND_VALUES","ACTION_ADD","ACTION_RECIPIENT","RULE_DELAY","META_NAME","TOKEN_TO_PANEL_TYPE","_TOKEN_TO_PANEL_TYPE","_defineProperty","LARGE_PANEL_TYPES","CONDITION_ANCHORS","ACTION_ANCHORS","PANE_SEARCH_THRESHOLD","CONFIG_FOCUSABLE_SELECTOR","SMS_TYPES","RECIPIENT_FOCUSABLE_SELECTOR","SMS_TO_NUMBERS","RECIPIENT_STORAGE_FIELDS","emails","phoneNumbers","DEFAULT_DELAY_UNITS","useClearingHover","_useState","useState","_useState2","_slicedToArray","clearing","setClearing","clearingHoverProps","onMouseEnter","onMouseLeave","resetClearing","TOKEN_STATE","FILLED","MUTED","PLACEHOLDER","PLACEHOLDER_NEXT","STATE_CLASS","useReplayFlash","flashSeq","ref","useRef","useEffect","_ref$current","_ref$current$getAnima","current","getAnimations","call","forEach","animation","cancel","play","Token","_ref","children","_ref$state","state","_ref$active","active","_ref$invalid","invalid","onClick","className","dataTestid","rest","_objectWithoutProperties","_excluded","isInteractive","tokenRef","_jsx","_objectSpread","role","undefined","tabIndex","classnames","filled","onKeyDown","event","key","preventDefault","Values","_ref$values","values","connector","map","index","_jsxs","Fragment","_Fragment","concat","humanize","String","replace","trim","isContainsVerb","verb","includes","isNumericVerb","isExcludeVerb","isMultiValueVerb","sentencify","charAt","toUpperCase","toLowerCase","slice","copyFor","args","matchesTrigger","name","option","eventValue","id","triggerOption","_schema$triggers","schema","find","triggerLabel","_ref2","trigger","plain","performerLabel","_ref3","_schema$actor","performer","candidate","conditionField","_ref4","_schema$conditions","field","conditionFieldLabel","_ref5","condition","operatorLabel","_ref6","_schema$conditions2","operatorLabels","conditionNeedsValue","_ref7","noValueForVerbs","valueParts","raw","isNil","Array","isArray","isEmpty","_typeof","joinValues","parts","join","conditionValueParts","_ref8","_ref9","_meta$value","meta","metadata","dropdownOptions","isEnum","isNotEmpty","labelFor","_ref0","_option$label","_candidate$value","t","actionOption","_ref10","_schema$actions","channelOption","_ref11","_schema$actions2","channel","_option$value","actionStepsOf","_ref12","action","actionParts","steps","stepValueOf","_ref13","_action$metadata","step","stepLabelOf","_ref14","_find","_option$value2","_ref15","_actions$actionForNam","_action$recipient","_actions$channelMeta","_find2","_find3","_actions$configValueL","_channelMeta$needsRec","resolved","recipient","actionForName","recipientValue","matchesRecipient","_recipient$value","recipientLabel","configValueParts","configValueLabel","paramKind","paramType","valueNoun","valueNounPlural","mediumLabel","icon","needsRecipient","separator","configValue","configValuePlaceholder","valuePlaceholder","configTitle","configSubtitle","recipientTitle","recipientSubtitle","offeredConditionFields","_ref16","_ref17","_schema$conditions$fi","_schema$conditions3","_schema$conditions3$f","_schema$conditions4","rule","fieldsFor","hasTrigger","hasAction","some","isTriggerEnabled","_schema$triggers2","isTriggerSatisfied","_ref18","hasRequiredConditions","_ref19","_schema$conditions5","allowEmpty","hasUnansweredStep","_ref20","required","isRuleComplete","_ref21","scopeOptionFor","_ref22","_item$value","_schema$scope","item","scope","_candidate$value2","scopePhoneFields","_ref23","_ref24","_item$phoneFields","_scopeOptionFor","phoneFields","effectiveScopePhoneField","_ref25","phoneField","length","invalidScopeIndexes","_ref26","_scope$requiresPhone","requiresPhone","reduce","indexes","_ref27","_item$hasPhoneField","hasPhoneField","push","invalidScopePhoneFieldIndexes","_ref28","_scope$requiresPhone2","hasChoice","minutesToParts","total","Number","unit","partsToMinutes","_ref29","leadTimeExceedsMax","leadTimeValidationSchema","_schema$triggers3","leadTime","yup","object","shape","string","test","max","leadTimeLabel","_minutesToParts","unitLabel","normalizeTriggers","normalizeSchema","rawSchema","arguments","mergeDeepRight","joinTypeFor","mode","recipientStorageField","recipientOwnedFields","_ref30","_actions$actionForNam2","_action$recipient2","_actions$renderRecipi","_actions$renderRecipi2","_actions$optionForNam","_actions$optionForCha","rendersEmails","renderRecipientEditor","renderRecipientField","recipientConfig","flatMap","_item$value2","flatOption","optionForName","optionForChannel","_toConsumableArray","type","modeFromJoinType","joinType","valueAt","_ref31","_values$key","asArray","maybeArray","fieldKeysFromSchema","_schema$triggers4","_schema$actor2","_schema$conditions6","_schema$actions3","_schema$delay","_schema$triggers5","_schema$scope2","status","valuesToRuleModel","_valueAt","_conditions$","_ref32","_ref32$values","_ref32$schema","keys","rawDelay","conditionMode","setTriggers","_ref33","path","replaceTriggers","_ref34","keptIds","filter","Boolean","removed","_destroy","edits","_values$fieldKey","deleted","setPerformer","_ref35","setActions","_ref36","setConditions","_ref37","setConditionMode","_ref38","assoc","setDelay","_ref39","setActive","_ref40","setScope","_ref41","removeArrayItem","_ref42","list","nextList","_","i","result","_values$fieldKey2","clearArrayItems","_ref43","_values$fieldKey3","ConditionRow","handleToken","onToken","handleAddCondition","onAddCondition","handleRemove","onRemove","_ref$isActive","isActive","_ref$isInvalid","isInvalid","_useTranslation","useTranslation","isFirst","hasField","hasVerb","_field$value","operatorPlaceholder","needsValue","_useClearingHover","Button","Plus","size","variant","tooltipProps","content","position","Delete","Connector","fill","height","viewBox","width","d","stroke","strokeLinecap","strokeLinejoin","strokeWidth","DelayRow","part","MetaBlock","_ref$showName","showName","handleEditName","onEditName","handleToggleActive","onToggleActive","nameRef","checked","readOnly","onChange","itemLabel","ScopeBlock","_schema$scope2$requir","handleRemoveScope","onRemoveScope","placeholder","_createElement","ScopeRow","isLast","_schema$scope3","_schema$scope4","_schema$scope5","_useTranslation2","lead","meeting","hasPhoneFieldChoice","singlePhoneFieldLabel","selectedPhoneField","usingLabel","phoneFieldPlaceholder","ActionRow","handleAddAction","onAddAction","_actionParts","MediumIcon","hasParamTail","multiPlaceholder","noun","singlePlaceholder","paramPlaceholder","verbLabel","isVerbActive","configLabel","recipientSeparator","configSeparator","isConfigured","configState","configToken","recipientToken","stepTokens","stepLabel","token","stepKey","preserveCase","ThenBlock","handleRemoveAction","onRemoveAction","_ref$adding","adding","named","isTriggerSet","title","_action$id","WhenBlock","handleClearTrigger","onClearTrigger","isActorEnabled","hasLeadTimeFor","appliesTo","_trigger$id","usePaneCascade","_useUtilityStore","useUtilityStore","useShallow","store","setPanelState","resetPanelState","openType","useCallback","_ref$data","data","openPane","anchor","closePane","useRuleModel","_useFormikContext","useFormikContext","setFieldValue","apply","applyAll","useMemo","fieldKeys","removeCondition","removeAction","clearTriggers","clearConditions","clearActions","triggerValue","_option$eventValue","stepAt","actionAt","stepTargetAfter","at","findIndex","next","optionValue","normalizeOptions","toLabelAndValue","groupByCategory","groups","indexByCategory","category","conditionAt","scopeItemAt","_rule$scope","scopeItemLabel","findField","findActionOption","channelOf","_schema$actions2$acti","recipientOf","_schema$actions3$acti","channelMetaOf","_ref1","_schema$actions4","actionHasConfig","_schema$actions5","_schema$actions6","component","renderConfig","hasConfig","recipientsFor","_schema$actions7","_schema$actions8","availableRecipients","usedNames","_schema$actions9","_schema$actions9$reso","resolveName","nextTriggers","multi","names","pluck","removeBy","nextConditionAt","_field$allowMatching","previous","first","allowMatching","defaultVerb","kind","nextActionAt","_schema$actions0","prev","channelChanged","prevChannel","_schema$actions1","channelRecipients","recipientsByChannel","_channelRecipients","appendScopeItem","_sc$requiresPhone","sc","nextActionRecipientAt","_schema$actions10","descriptorFor","isReplace","triggerTitle","triggerSubtitle","subtitle","cascade","paneLabel","selectedValues","labels","verbs","fieldLabel","isContains","every","isNumeric","isExclude","hasOptions","containsVariant","numericOrExcludeVariant","nonContainsVariant","_schema$actions12","_channelOf","isSwap","channelMetaFor","_schema$actions11","sourceOptions","_option$disabled","channelLabel","disabled","isDisabled","disabledReason","disabledPopover","_schema$actions13","_sc$requiresPhone2","selected","paneChangeTitle","paneTitle","paneSubtitle","_option$disabled2","blockedNoPhone","isSelected","disabledTooltip","phoneFieldPaneTitle","phoneFieldPaneSubtitle","commitFor","helpers","_leadTime$default","has","_item$value3","continueTargetFor","_schema$actor3","configPending","replaceAt","applyPreview","Canvas","_actorOptions$0$value","_schema$meta$showName","_schema$meta","_usePaneCascade","errors","submitCount","_useRuleModel","builderPreview","panelState","displayRule","activeToken","addingAction","flatErrors","flatten","setFlashSeq","lastSubmitCount","timer","setTimeout","clearTimeout","hasErrorAt","prefix","_ref3$exclude","exclude","Object","startsWith","sub","matchesInvalid","conditionMeta","actionMeta","actionItem","stepKeys","recipientFields","actorKey","closePaneIfTargeting","anchors","handleRemoveCondition","remaining","handleRemoveDelay","actorOptions","soleActorOption","isScopeEnabled","conditionFields","canAddCondition","canRemoveCondition","leadTimeAppliesTo","hasLeadTimeTrigger","isDelayEnabled","slotCtx","renderSlot","_schema$slots$name","_schema$slots","_schema$slots$name2","_condition$id","iconPosition","target","ACTION_CONFIG_TYPES","emailChannel","sendToApi","multiSelect","dropdown","note","textarea","number","text","regex","decimal","date","CONDITION_VALUE_TYPES","multiSelectCreate","email","time","EmailChannelFields","_getIn","_getIn2","hasRecipientField","hint","touched","setFieldTouched","editorRef","isSaveAsTemplateEnabled","hasFieldChanged","useHasFieldChanged","valuePath","subjectPath","bodyPath","templates","hasRecipientList","fieldError","getIn","shouldShowSaveAsTemplate","templateId","subject","body","template","findBy","hasContent","isPresent","isContentDifferentFromTemplate","areValuesEqual","isSaveAsTemplateVisible","useResetSaveAsTemplateOnHide","F","handleTemplateChange","hideSubject","setEditorContent","Select","error","onBlur","SelectTemplateField","selectedField","Input","EditorAction","variables","SaveAsTemplate","restoreTokens","ActionConfigFields","_ref$searchTerm","searchTerm","_ref$hasRecipientFiel","term","filterOptions","dynamicValuesHint","hintBlock","Typography","color","noOptionsMessage","noMatches","ApiFields","filtered","toggle","isNot","Checkbox","onCheckedChange","RadioGroup","orientation","onValueChange","picked","Item","ListField","Textarea","rows","_getIn3","DatePicker","dayjs","format","DATE_FORMAT","_regenerator","e","r","Symbol","n","iterator","o","toStringTag","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","bind","l","TypeError","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","keysUnder","obj","_ref$exclude","usePaneValidation","validateForm","errorsRef","validate","_asyncToGenerator","_callee","nextErrors","offending","_args","_context","ConfigPane","_schema$actions$optio","_schema$actions2$opti","_concat$find","_schema$actions7$opti","_hostRenderConfig","bodyRef","setSearchTerm","base","isSms","hostRenderConfig","showSearch","shouldAdvanceToRecipient","_usePaneValidation","channelRepName","unnamedOnOpen","frame","attempts","focusFirst","_bodyRef$current","querySelector","focus","requestAnimationFrame","cancelAnimationFrame","handleContinue","owned","useHotkeys","SHORTCUTS","sequence","Panel","Header","dataTestId","Search","Body","ErrorCallout","message","SmsFields","shouldAutoFocus","showPhoneNumberInput","Footer","DelayPane","getFieldMeta","_useField","useField","_useField2","unitOptions","_unitOptions$0$value","_unitOptions$","weight","MAX_DELAY_VALUE","min","MIN_DELAY_VALUE","defaultValue","nextUnit","toNumber","clamp","Math","asText","NumberStepper","_ref$min","draft","setDraft","display","commit","delta","isFinite","autoFocus","suffix","Up","Down","onFocus","select","LeadTimePane","amount","_useField2$","update","isSearchable","NamePane","OptionsPane","_ref$belowContent","belowContent","_ref$configPending","_ref$validate","setBuilderPreview","searchRef","_searchRef$current","_useMemo","searchable","handleSelect","multiCandidate","previewHandlers","_t","canContinue","optionLabel","Icon","reason","isTextReason","isNodeReason","isValidElement","popover","description","Popover","Info","Title","helpLinkProps","Tooltip","renderGroupHeader","renderBody","_selectedValues$","items","labelProps","RecipientField","MultiEmailInput","valid","RecipientPane","_schema$actions$actio","_schema$actions3$rend","_schema$actions4$opti","_schema$actions5$opti","_schema$actions$rende","_schema$actions8$rend","belowRef","editor","isSmsToNumbers","recipientFieldPath","builtInRecipientField","recipientField","PhoneNumberField","belowField","_belowRef$current","dateTimeMetaOf","DATE_TIME_TYPES","TIME_FORMAT","showTime","datetime","DATE_TIME_FORMAT","ConditionValueFields","valueType","valuesPath","enumOptions","isCreatable","isMulti","_parsed$isValid","metadataPath","_dateTimeMetaOf","dateTimeType","parsed","getDateTimeValue","timezone","handleChange","_globalProps$user","globalProps","user","timeZone","pickerProps","isValid","TimePicker","timeFormat","FormikInput","ValuePane","renderValue","valueSubtitle","BUILDER_PANEL_TYPE_CONFIG_MAP","_BUILDER_PANEL_TYPE_C","Form","_rawSchema$actions","_ref$schema","url","automationRulesEndpoint","_ref$breadcrumbs","breadcrumbs","_ref$isLoading","isLoading","_ref$handleSubmit","handleSubmit","noop","_ref$handleCancel","handleCancel","_ref$payloadKey","payloadKey","_ref$isNameGeneration","isNameGenerationDisabled","formikRef","formRef","_useCustomDataStore","useCustomDataStore","customData","errorFields","setIsSaveAsTemplateEnabled","initialValues","formatData","isNameRequired","_usePollRuleName","usePollRuleName","waitForGeneratedRuleName","saveRuleName","isCancelledNameGeneration","submitForm","formikBag","Promise","reject","Error","payload","buildPayload","Formik","enableReinitialize","DEFAULT_INITIAL_VALUE","innerRef","validationSchema","getValidationSchema","onSubmit","TouchErrors","Container","Spinner","FormikForm","ScrollToErrorField","ActionBlock","cancelButtonProps","submitButtonProps","configMap","NeetoRulesBuilder","assign","_objectDestructuringEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"NeetoRulesBuilder.js","sources":["../../app/javascript/src/v2/components/NeetoRulesBuilder/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/useClearingHover.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Token/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/useReplayFlash.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Token/index.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Token/Values.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/utils.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ConditionRow.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/Connector.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/DelayRow.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/MetaBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ScopeBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ActionRow.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/ThenBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/WhenBlock.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/usePaneCascade.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/useRuleModel.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/utils.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Canvas/index.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/EmailChannelFields.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/ActionConfigFields.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/hooks/usePaneValidation.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/ConfigPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/DelayPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Common/utils.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Common/NumberStepper.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/LeadTimePane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/NamePane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/OptionsPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/RecipientField.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/RecipientPane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/Fields/ConditionValueFields.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/ValuePane.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/Panes/constants.js","../../app/javascript/src/v2/components/NeetoRulesBuilder/Form.jsx","../../app/javascript/src/v2/components/NeetoRulesBuilder/index.jsx"],"sourcesContent":["export const PARAM_KIND = {\n ENUM_SINGLE: \"enum-single\",\n ENUM_MULTI: \"enum-multi\",\n};\n\nexport const UNIT_MINUTES = { minutes: 1, hours: 60, days: 1440 };\n\n/* eslint-disable @bigbinary/neeto/hard-coded-strings-should-be-localized */\n/* eslint-disable @bigbinary/neeto/neetocommons-tips */\nexport const TIME_UNITS = [\n { label: \"minutes\", value: \"minutes\" },\n { label: \"hours\", value: \"hours\" },\n { label: \"days\", value: \"days\" },\n];\n/* eslint-enable @bigbinary/neeto/hard-coded-strings-should-be-localized */\n/* eslint-enable @bigbinary/neeto/neetocommons-tips */\n\nexport const LEAD_TIME_UNITS = TIME_UNITS;\n\n// Mirrors the classic form's three-digit input cap; 999 days equals the\n// backend's maximum lead time.\nexport const MAX_LEAD_TIME_VALUE = 999;\n\nexport const STEPPER_DELTA = { INCREMENT: 1, DECREMENT: -1 };\n\nexport const STEPPER_MIN_VALUE = 1;\n\nexport const DEFAULT_DELAY_VALUE = 10;\n\n// Matches the token flash animation duration in sentence-builder.css.\nexport const FLASH_DURATION_MS = 2200;\n\n// Keeps an element out of the keyboard tab order (HTML tabindex sentinel).\nexport const SKIP_TAB_INDEX = -1;\n\nexport const CONDITION_VERBS = {\n IS: \"is\",\n IS_NOT: \"is_not\",\n ANY_OF: \"any_of\",\n NONE_OF: \"none_of\",\n ALL_OF: \"all_of\",\n LESS_THAN: \"less_than\",\n GREATER_THAN: \"greater_than\",\n};\n\nexport const VERB_TOKENS = {\n MULTI_VALUE: \"_of\",\n CONTAINS: \"contains\",\n};\n\nexport const DEFAULT_SCHEMA = {\n triggers: { fieldKey: \"events\", options: [] },\n actor: { enabled: false, options: [], fieldKey: \"performer\" },\n conditions: { fields: [], fieldKey: \"conditions\", connectorMode: \"shared\" },\n actions: {\n options: [],\n channelMeta: {},\n recipients: [],\n fieldKey: \"actions\",\n },\n delay: { enabled: false, fieldKey: \"execution_delay\", units: [] },\n integrations: {},\n slots: {},\n};\n\nexport const STATUS_KEYS = { ENABLED: \"enabled\", DISABLED: \"disabled\" };\n\nexport const JOIN_TYPE = { and: \"and_operator\", or: \"or_operator\" };\n\nexport const CONDITION_MODE = { AND: \"and\", OR: \"or\" };\n\nexport const BUILDER_PANEL_TYPES = {\n TRIGGER: \"builder-trigger\",\n ACTOR: \"builder-actor\",\n CONDITION_FIELD: \"builder-condition-field\",\n OPERATOR: \"builder-operator\",\n CONNECTOR: \"builder-connector\",\n CONDITION_VALUE: \"builder-condition-value\",\n ACTION_CHANNEL: \"builder-action-channel\",\n ACTION_CONFIG: \"builder-action-config\",\n ACTION_STEP: \"builder-action-step\",\n RECIPIENT: \"builder-recipient\",\n DELAY: \"builder-delay\",\n LEAD_TIME: \"builder-lead-time\",\n NAME: \"builder-name\",\n SCOPE: \"builder-scope\",\n SCOPE_PHONE_FIELD: \"builder-scope-phone-field\",\n};\n\nexport const BUILDER_ANCHORS = {\n TRIGGER_ADD: \"trigger-add\",\n TRIGGER_REPLACE: \"trigger-replace\",\n TRIGGER_ACTOR: \"trigger-actor\",\n TRIGGER_LEAD_TIME: \"trigger-lead-time\",\n COND_FIELD: \"cond-field\",\n COND_OP_TOGGLE: \"cond-op-toggle\",\n COND_CONNECTOR: \"cond-connector\",\n COND_VALUES: \"cond-values\",\n ACTION_ADD: \"action-add\",\n ACTION_CHANNEL: \"action-channel\",\n ACTION_CONFIG: \"action-config\",\n ACTION_RECIPIENT: \"action-recipient\",\n ACTION_STEP: \"action-step\",\n RULE_DELAY: \"rule-delay\",\n META_NAME: \"meta-name\",\n SCOPE: \"scope\",\n SCOPE_PHONE_FIELD: \"scope-phone-field\",\n};\n\nexport const TOKEN_TO_PANEL_TYPE = {\n [BUILDER_ANCHORS.TRIGGER_ADD]: BUILDER_PANEL_TYPES.TRIGGER,\n [BUILDER_ANCHORS.TRIGGER_REPLACE]: BUILDER_PANEL_TYPES.TRIGGER,\n [BUILDER_ANCHORS.TRIGGER_ACTOR]: BUILDER_PANEL_TYPES.ACTOR,\n [BUILDER_ANCHORS.COND_FIELD]: BUILDER_PANEL_TYPES.CONDITION_FIELD,\n [BUILDER_ANCHORS.COND_OP_TOGGLE]: BUILDER_PANEL_TYPES.OPERATOR,\n [BUILDER_ANCHORS.COND_CONNECTOR]: BUILDER_PANEL_TYPES.CONNECTOR,\n [BUILDER_ANCHORS.COND_VALUES]: BUILDER_PANEL_TYPES.CONDITION_VALUE,\n [BUILDER_ANCHORS.ACTION_ADD]: BUILDER_PANEL_TYPES.ACTION_CHANNEL,\n [BUILDER_ANCHORS.ACTION_CHANNEL]: BUILDER_PANEL_TYPES.ACTION_CHANNEL,\n [BUILDER_ANCHORS.ACTION_CONFIG]: BUILDER_PANEL_TYPES.ACTION_CONFIG,\n [BUILDER_ANCHORS.ACTION_RECIPIENT]: BUILDER_PANEL_TYPES.RECIPIENT,\n [BUILDER_ANCHORS.ACTION_STEP]: BUILDER_PANEL_TYPES.ACTION_STEP,\n [BUILDER_ANCHORS.RULE_DELAY]: BUILDER_PANEL_TYPES.DELAY,\n [BUILDER_ANCHORS.TRIGGER_LEAD_TIME]: BUILDER_PANEL_TYPES.LEAD_TIME,\n [BUILDER_ANCHORS.META_NAME]: BUILDER_PANEL_TYPES.NAME,\n [BUILDER_ANCHORS.SCOPE]: BUILDER_PANEL_TYPES.SCOPE,\n [BUILDER_ANCHORS.SCOPE_PHONE_FIELD]: BUILDER_PANEL_TYPES.SCOPE_PHONE_FIELD,\n};\n\nexport const LARGE_PANEL_TYPES = [\n BUILDER_PANEL_TYPES.ACTION_CONFIG,\n BUILDER_PANEL_TYPES.SCOPE,\n BUILDER_PANEL_TYPES.NAME,\n];\n\nexport const CONDITION_ANCHORS = [\n BUILDER_ANCHORS.COND_FIELD,\n BUILDER_ANCHORS.COND_OP_TOGGLE,\n BUILDER_ANCHORS.COND_VALUES,\n BUILDER_ANCHORS.COND_CONNECTOR,\n];\n\nexport const ACTION_ANCHORS = [\n BUILDER_ANCHORS.ACTION_CHANNEL,\n BUILDER_ANCHORS.ACTION_CONFIG,\n BUILDER_ANCHORS.ACTION_RECIPIENT,\n BUILDER_ANCHORS.ACTION_STEP,\n];\n\nexport const PANE_SEARCH_THRESHOLD = 8;\n\nexport const CONFIG_FOCUSABLE_SELECTOR =\n 'input:not([type=\"radio\"]):not([type=\"checkbox\"]), textarea, [contenteditable=\"true\"]';\n\nexport const SMS_TYPES = [\"sms\", \"smsToNumbers\"];\n\nexport const RECIPIENT_FOCUSABLE_SELECTOR =\n 'input, textarea, [contenteditable=\"true\"]';\n\nexport const SMS_TO_NUMBERS = \"smsToNumbers\";\n\nexport const RECIPIENT_STORAGE_FIELDS = {\n emails: \"emails\",\n value: \"value\",\n phoneNumbers: \"phoneNumbers\",\n};\n\nexport const DEFAULT_DELAY_UNITS = TIME_UNITS;\n","import { useState } from \"react\";\n\nconst useClearingHover = () => {\n const [clearing, setClearing] = useState(false);\n\n const clearingHoverProps = {\n onMouseEnter: () => setClearing(true),\n onMouseLeave: () => setClearing(false),\n };\n\n const resetClearing = () => setClearing(false);\n\n return { clearing, clearingHoverProps, resetClearing };\n};\n\nexport default useClearingHover;\n","export const TOKEN_STATE = {\n FILLED: \"filled\",\n MUTED: \"muted\",\n // eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\n PLACEHOLDER: \"placeholder\",\n PLACEHOLDER_NEXT: \"placeholder-next\",\n DISABLED: \"disabled\",\n};\n\nexport const STATE_CLASS = {\n [TOKEN_STATE.PLACEHOLDER]: \"mb-placeholder\",\n [TOKEN_STATE.PLACEHOLDER_NEXT]: \"mb-placeholder mb-placeholder-next\",\n [TOKEN_STATE.DISABLED]: \"mb-placeholder mb-placeholder-disabled\",\n [TOKEN_STATE.FILLED]: \"mb-tok\",\n [TOKEN_STATE.MUTED]: \"mb-tok mb-tok-muted\",\n};\n","import { useEffect, useRef } from \"react\";\n\n// The flash is a run-once CSS animation, so a repeat submit while it is still\n// applied would not replay it on its own.\nconst useReplayFlash = flashSeq => {\n const ref = useRef(null);\n\n useEffect(() => {\n if (!flashSeq) return;\n\n ref.current?.getAnimations?.().forEach(animation => {\n animation.cancel();\n animation.play();\n });\n }, [flashSeq]);\n\n return ref;\n};\n\nexport default useReplayFlash;\n","import classnames from \"classnames\";\n\nimport { STATE_CLASS, TOKEN_STATE } from \"./constants\";\n\nimport useReplayFlash from \"../hooks/useReplayFlash\";\n\nconst Token = ({\n children,\n state = TOKEN_STATE.FILLED,\n active = false,\n invalid = false,\n onClick,\n className,\n dataTestid,\n ...rest\n}) => {\n const isInteractive =\n typeof onClick === \"function\" && state !== TOKEN_STATE.DISABLED;\n\n const tokenRef = useReplayFlash(invalid);\n\n return (\n <span\n data-testid={dataTestid}\n ref={tokenRef}\n role={isInteractive ? \"button\" : undefined}\n tabIndex={isInteractive ? 0 : undefined}\n className={classnames(\n // eslint-disable-next-line security/detect-object-injection\n STATE_CLASS[state] || STATE_CLASS.filled,\n className,\n { \"mb-tok-active\": active, \"mb-tok-invalid\": invalid }\n )}\n onClick={isInteractive ? onClick : undefined}\n onKeyDown={\n isInteractive\n ? event => {\n if (!(event.key === \"Enter\" || event.key === \" \")) return;\n event.preventDefault();\n onClick(event);\n }\n : undefined\n }\n {...rest}\n >\n {children}\n </span>\n );\n};\n\nexport default Token;\n","import { Fragment } from \"react\";\n\n// The separators are real text nodes, not margins, so the token's copied text\n// and its accessible name still read as a sentence.\nconst Values = ({ values = [], connector }) =>\n values.map((value, index) => (\n <Fragment key={`${value}-${index}`}>\n {index > 0 && \" \"}\n {index > 0 && connector && (\n <>\n <span className=\"mb-tok-join\">{connector}</span>{\" \"}\n </>\n )}\n {value}\n </Fragment>\n ));\n\nexport default Values;\n","import { t } from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { assoc, isEmpty, isNil, mergeDeepRight } from \"ramda\";\nimport * as yup from \"yup\";\n\nimport {\n CONDITION_MODE,\n CONDITION_VERBS,\n DEFAULT_SCHEMA,\n JOIN_TYPE,\n MAX_LEAD_TIME_VALUE,\n RECIPIENT_STORAGE_FIELDS,\n SMS_TO_NUMBERS,\n STATUS_KEYS,\n UNIT_MINUTES,\n VERB_TOKENS,\n} from \"./constants\";\n\nconst humanize = value =>\n String(value ?? \"\")\n .replace(/[._]/g, \" \")\n .trim();\n\nconst isContainsVerb = verb =>\n verb.includes(VERB_TOKENS.MULTI_VALUE) && verb.includes(VERB_TOKENS.CONTAINS);\n\nconst isNumericVerb = verb =>\n verb === CONDITION_VERBS.LESS_THAN || verb === CONDITION_VERBS.GREATER_THAN;\n\n// eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\nconst isExcludeVerb = verb =>\n [\n CONDITION_VERBS.IS,\n CONDITION_VERBS.IS_NOT,\n CONDITION_VERBS.ANY_OF,\n CONDITION_VERBS.NONE_OF,\n ].includes(verb);\nconst isMultiValueVerb = verb => String(verb).includes(VERB_TOKENS.MULTI_VALUE);\n\n// Lowers a label so it reads mid-sentence, but never an acronym: \"API\" and\n// \"SMS\" are already how they should appear.\nconst sentencify = label => {\n if (!label) return label;\n\n if (label.charAt(1) === label.charAt(1).toUpperCase()) return label;\n\n return label.charAt(0).toLowerCase() + label.slice(1);\n};\n\nconst copyFor = (value, args) =>\n typeof value === \"function\" ? value(args) : value;\n\nconst matchesTrigger = name => option =>\n option.eventValue === name || option.value === name || option.id === name;\n\nconst triggerOption = ({ schema, name }) =>\n (schema?.triggers?.options || []).find(matchesTrigger(name));\n\nconst triggerLabel = ({ schema, trigger }) => {\n const option = triggerOption({ schema, name: trigger?.name });\n\n return option?.plain || sentencify(option?.label || humanize(trigger?.name));\n};\n\nconst performerLabel = ({ schema, performer }) => {\n const option = (schema?.actor?.options || []).find(\n candidate => candidate.value === performer || candidate.id === performer\n );\n\n return sentencify(option?.label || humanize(performer));\n};\n\nconst conditionField = ({ schema, field }) =>\n (schema?.conditions?.fields || []).find(\n option => option.value === field || option.id === field\n );\n\nconst conditionFieldLabel = ({ schema, condition }) => {\n const field = conditionField({ schema, field: condition?.field });\n\n return String(field?.label || humanize(condition?.field)).toLowerCase();\n};\n\nconst operatorLabel = ({ schema, condition }) => {\n const map = schema?.conditions?.operatorLabels || {};\n\n return map[condition?.verb] || humanize(condition?.verb);\n};\n\nconst conditionNeedsValue = ({ schema, condition }) => {\n const field = conditionField({ schema, field: condition?.field });\n\n return !(field?.noValueForVerbs || []).includes(condition?.verb);\n};\n\n// A multi-value token stays one clickable phrase, but its \"and\"/\"or\" is\n// connective tissue rather than part of any value, so the canvas keeps the\n// connector out of the token's own styling.\nconst valueParts = raw => {\n if (isNil(raw) || raw === \"\") return null;\n\n if (Array.isArray(raw)) {\n return isEmpty(raw) ? null : { values: raw.map(String) };\n }\n\n if (typeof raw === \"object\") {\n const values = Array.isArray(raw.values) ? raw.values.map(String) : [];\n\n return isEmpty(values) ? null : { values, connector: raw.connector };\n }\n\n return { values: [String(raw)] };\n};\n\nconst joinValues = parts =>\n parts?.values.join(parts.connector ? ` ${parts.connector} ` : \" \") || \"\";\n\nconst conditionValueParts = ({ schema, condition }) => {\n const meta = condition?.metadata || {};\n const raw = meta.value ?? meta.values ?? meta.label;\n\n if (isNil(raw) || isEmpty(raw)) return null;\n\n const field = conditionField({ schema, field: condition?.field });\n const options =\n field?.values || field?.dropdownOptions || field?.options || [];\n const isEnum = isNotEmpty(options);\n\n const labelFor = value => {\n const option = options.find(\n candidate => (candidate.value ?? candidate.id) === value\n );\n const label = option ? (option.label ?? option.value ?? option.id) : value;\n\n return isEnum ? String(label).toLowerCase() : String(label);\n };\n\n const connector = String(condition?.verb || \"\").includes(\n CONDITION_VERBS.ALL_OF\n )\n ? t(\"neetoRules.operators.and\")\n : t(\"neetoRules.operators.or\");\n\n return Array.isArray(raw)\n ? { values: raw.map(labelFor), connector }\n : { values: [labelFor(raw)] };\n};\n\nconst conditionValueLabel = ({ schema, condition }) =>\n joinValues(conditionValueParts({ schema, condition })) || null;\n\nconst actionOption = ({ schema, name }) =>\n (schema?.actions?.options || []).find(\n option => option.value === name || option.id === name\n );\n\nconst channelOption = ({ schema, channel }) =>\n (schema?.actions?.options || []).find(\n option => (option.value ?? option.id) === channel\n );\n\n// A step is an extra sentence token a host hangs off an action — its own\n// separator, its own pane — for settings that do not belong in the config pane.\n// Its key shares the action's metadata namespace, so declaring one is how a\n// host hands a field to the step: whoever declares it owns it, and the config\n// pane stops validating it.\nconst actionStepsOf = ({ schema, action }) =>\n actionParts({ schema, action }).steps || [];\n\nconst stepValueOf = ({ action, step }) => action?.metadata?.[step.key];\n\nconst stepLabelOf = ({ action, step }) => {\n const value = stepValueOf({ action, step });\n\n return (\n (step.options || []).find(option => (option.value ?? option.id) === value)\n ?.label || \"\"\n );\n};\n\nconst actionParts = ({ schema, action }) => {\n const actions = schema?.actions || {};\n\n const resolved = action?.channel\n ? { channel: action.channel, recipient: action.recipient }\n : actions.actionForName?.(action?.name) || {};\n\n const channel = resolved.channel;\n const recipientValue = action?.recipient ?? resolved.recipient;\n\n const option = channel\n ? channelOption({ schema, channel })\n : actionOption({ schema, name: action?.name });\n\n // eslint-disable-next-line security/detect-object-injection\n const channelMeta = actions.channelMeta?.[channel] || {};\n const matchesRecipient = recipient =>\n (recipient.value ?? recipient.id) === recipientValue;\n\n const recipientLabel =\n (actions.recipients || []).find(matchesRecipient)?.label ||\n (option?.recipients || []).find(matchesRecipient)?.label ||\n recipientValue;\n\n // A host may answer with a plain string or with { values, connector } when\n // the value reads as a list.\n const configValueParts = valueParts(actions.configValueLabel?.(action));\n\n return {\n option,\n channel,\n label: option?.label || humanize(action?.name),\n verb:\n channelMeta.verb ||\n (channel\n ? t(\"neetoRules.builder.send\")\n : option?.plain || option?.label) ||\n humanize(action?.name),\n paramKind: !channel && option?.paramType,\n valueNoun: option?.valueNoun,\n valueNounPlural: option?.valueNounPlural,\n mediumLabel: channelMeta.mediumLabel || option?.mediumLabel,\n icon: channelMeta.icon || option?.icon,\n needsRecipient: channelMeta.needsRecipient ?? option?.needsRecipient,\n separator: channelMeta.separator || option?.separator,\n configValueParts,\n configValue: joinValues(configValueParts),\n configValuePlaceholder:\n channelMeta.valuePlaceholder || option?.valuePlaceholder,\n recipient: recipientValue,\n recipientLabel,\n configTitle: channelMeta.configTitle || option?.configTitle,\n configSubtitle: channelMeta.configSubtitle || option?.configSubtitle,\n steps: channelMeta.steps || option?.steps || [],\n infoTooltip: channelMeta.infoTooltip || option?.infoTooltip,\n recipientTitle: channelMeta.recipientTitle || option?.recipientTitle,\n recipientSubtitle:\n channelMeta.recipientSubtitle || option?.recipientSubtitle,\n };\n};\n\n// Which condition fields a host offers can depend on the rule — a trigger may\n// only support a subset. Lookups deliberately keep using the full list so a\n// field already on the rule still resolves after the offer narrows.\nconst offeredConditionFields = ({ schema, rule }) =>\n schema?.conditions?.fieldsFor?.({ rule }) ?? schema?.conditions?.fields ?? [];\n\nconst hasTrigger = rule => !isEmpty(rule?.triggers || []);\n\nconst hasAction = rule => (rule?.actions || []).some(action => action?.name);\n\nconst isTriggerEnabled = schema => schema?.triggers?.enabled !== false;\n\nconst isTriggerSatisfied = ({ rule, schema }) =>\n !isTriggerEnabled(schema) || hasTrigger(rule);\n\nconst hasRequiredConditions = ({ rule, schema }) =>\n schema?.conditions?.allowEmpty === false\n ? isNotEmpty(rule?.conditions || [])\n : true;\n\nconst hasUnansweredStep = ({ rule, schema }) =>\n (rule?.actions || []).some(action =>\n actionStepsOf({ schema, action }).some(\n step => step.required && !stepValueOf({ action, step })\n )\n );\n\nconst isRuleComplete = ({ rule, schema }) =>\n isTriggerSatisfied({ rule, schema }) &&\n hasRequiredConditions({ rule, schema }) &&\n hasAction(rule) &&\n !hasUnansweredStep({ rule, schema });\n\nconst scopeOptionFor = ({ schema, item }) => {\n const value = item?.value ?? item;\n\n return (schema?.scope?.options || []).find(\n candidate => (candidate.value ?? candidate.id) === value\n );\n};\n\nconst scopePhoneFields = ({ schema, item }) =>\n item?.phoneFields ?? scopeOptionFor({ schema, item })?.phoneFields ?? null;\n\nconst effectiveScopePhoneField = ({ schema, item }) => {\n if (item?.phoneField) return item.phoneField;\n\n const phoneFields = scopePhoneFields({ schema, item });\n\n return phoneFields?.length === 1 ? phoneFields[0].value : undefined;\n};\n\nconst invalidScopeIndexes = ({ rule, schema }) => {\n const scope = schema?.scope;\n if (!scope?.enabled || !scope.requiresPhone?.(rule?.actions || [])) return [];\n\n return (rule?.scope || []).reduce((indexes, item, index) => {\n const option = scopeOptionFor({ schema, item });\n const phoneFields = scopePhoneFields({ schema, item });\n const hasPhoneField =\n item?.hasPhoneField ??\n option?.hasPhoneField ??\n (phoneFields ? phoneFields.length > 0 : undefined);\n if (hasPhoneField === false) indexes.push(index);\n\n return indexes;\n }, []);\n};\n\nconst invalidScopePhoneFieldIndexes = ({ rule, schema }) => {\n const scope = schema?.scope;\n if (!scope?.enabled || !scope.requiresPhone?.(rule?.actions || [])) return [];\n\n return (rule?.scope || []).reduce((indexes, item, index) => {\n const phoneFields = scopePhoneFields({ schema, item });\n const hasChoice = (phoneFields?.length || 0) > 1;\n if (hasChoice && !effectiveScopePhoneField({ schema, item })) {\n indexes.push(index);\n }\n\n return indexes;\n }, []);\n};\n\nconst minutesToParts = minutes => {\n const total = Number(minutes) || 0;\n if (total && total % UNIT_MINUTES.days === 0) {\n return { value: total / UNIT_MINUTES.days, unit: \"days\" };\n }\n\n if (total && total % UNIT_MINUTES.hours === 0) {\n return { value: total / UNIT_MINUTES.hours, unit: \"hours\" };\n }\n\n return { value: total, unit: \"minutes\" };\n};\n\nconst partsToMinutes = ({ value, unit }) =>\n // eslint-disable-next-line security/detect-object-injection\n (Number(value) || 0) * (UNIT_MINUTES[unit] || 1);\n\nconst leadTimeExceedsMax = minutes =>\n minutesToParts(minutes).value > MAX_LEAD_TIME_VALUE;\n\nconst leadTimeValidationSchema = schema => {\n const fieldKey = schema?.triggers?.leadTime?.fieldKey;\n if (!fieldKey) return yup.object();\n\n return yup.object().shape({\n [fieldKey]: yup.object().shape({\n // yup 0.32 can only concat schemas of the same type, and the host's\n // generic field schema for the lead time key is a string schema.\n value: yup.string().test(\n \"max-lead-time\",\n () =>\n t(\"neetoRules.validations.maxLeadTime\", {\n max: MAX_LEAD_TIME_VALUE,\n }),\n minutes => !leadTimeExceedsMax(minutes)\n ),\n }),\n });\n};\n\nconst leadTimeLabel = minutes => {\n const { value, unit } = minutesToParts(minutes);\n const unitLabel = value === 1 ? unit.replace(/s$/, \"\") : unit;\n\n return `${value} ${unitLabel}`;\n};\n\nconst normalizeTriggers = triggers => {\n if (Array.isArray(triggers)) return { options: triggers };\n\n return triggers || {};\n};\n\nconst normalizeSchema = (rawSchema = {}) =>\n mergeDeepRight(DEFAULT_SCHEMA, {\n ...rawSchema,\n triggers: normalizeTriggers(rawSchema.triggers),\n });\n\nconst joinTypeFor = mode =>\n mode === CONDITION_MODE.OR ? JOIN_TYPE.or : JOIN_TYPE.and;\n\nconst recipientStorageField = field =>\n field === RECIPIENT_STORAGE_FIELDS.emails\n ? RECIPIENT_STORAGE_FIELDS.emails\n : RECIPIENT_STORAGE_FIELDS.value;\n\n// Which metadata fields the recipient pane renders, and therefore owns: no\n// other pane may block Continue on them. Canvas and ConfigPane both ask here\n// so the two lists cannot drift apart.\nconst recipientOwnedFields = ({ schema, action, name }) => {\n const actions = schema?.actions || {};\n const resolved = actions.actionForName?.(action?.name) || {};\n const channel = action?.channel || resolved.channel;\n // A recipient the host implies from the action name counts just as much as\n // one the user picked, or the pane it owns cannot be excluded.\n const recipient = action?.recipient ?? resolved.recipient;\n\n const rendersEmails =\n !!actions.renderRecipientEditor?.({ channel, name, action }) ||\n !!actions.renderRecipientField?.({ channel, name, action, recipient });\n\n const recipientConfig = (actions.options || [])\n .flatMap(option => option.recipients || [])\n .concat(actions.recipients || [])\n .find(item => (item.value ?? item.id) === recipient);\n\n const flatOption =\n actions.optionForName?.(action?.name) ||\n actions.optionForChannel?.(channel);\n\n return [\n ...(rendersEmails ? [RECIPIENT_STORAGE_FIELDS.emails] : []),\n ...(recipientConfig?.field\n ? [recipientStorageField(recipientConfig.field)]\n : []),\n ...(flatOption?.type === SMS_TO_NUMBERS\n ? [RECIPIENT_STORAGE_FIELDS.phoneNumbers]\n : []),\n ];\n};\n\nconst modeFromJoinType = joinType =>\n joinType === JOIN_TYPE.or ? CONDITION_MODE.OR : CONDITION_MODE.AND;\n\n// eslint-disable-next-line security/detect-object-injection\nconst valueAt = ({ values, key }) => values?.[key]?.value;\n\nconst asArray = maybeArray => (Array.isArray(maybeArray) ? maybeArray : []);\n\nconst fieldKeysFromSchema = (schema = {}) => ({\n triggers: schema.triggers?.fieldKey || \"events\",\n performer: schema.actor?.fieldKey || \"performer\",\n conditions: schema.conditions?.fieldKey || \"conditions\",\n actions: schema.actions?.fieldKey || \"actions\",\n delay: schema.delay?.fieldKey || \"execution_delay\",\n leadTime: schema.triggers?.leadTime?.fieldKey,\n scope: schema.scope?.fieldKey || \"meetingIds\",\n status: \"status\",\n name: \"name\",\n});\n\nconst valuesToRuleModel = ({ values = {}, schema = {} } = {}) => {\n const keys = fieldKeysFromSchema(schema);\n\n const conditions = asArray(valueAt({ values, key: keys.conditions }));\n const rawDelay = valueAt({ values, key: keys.delay });\n\n return {\n name: valueAt({ values, key: keys.name }) || \"\",\n active: valueAt({ values, key: keys.status }) !== STATUS_KEYS.DISABLED,\n triggers: asArray(valueAt({ values, key: keys.triggers })),\n performer: valueAt({ values, key: keys.performer }) ?? null,\n conditions,\n conditionMode: modeFromJoinType(conditions[0]?.joinType),\n delay: isNil(rawDelay) || isEmpty(rawDelay) ? null : rawDelay,\n actions: asArray(valueAt({ values, key: keys.actions })),\n leadTime: keys.leadTime ? valueAt({ values, key: keys.leadTime }) : null,\n scope: asArray(valueAt({ values, key: keys.scope })),\n };\n};\n\nconst setTriggers = ({ schema, triggers }) => ({\n path: `${fieldKeysFromSchema(schema).triggers}.value`,\n value: triggers,\n});\n\n// Removed saved triggers must be sent with _destroy, or the backend keeps them.\nconst replaceTriggers = ({ schema, values, triggers }) => {\n const fieldKey = fieldKeysFromSchema(schema).triggers;\n const keptIds = triggers.map(trigger => trigger?.id).filter(Boolean);\n const removed = asArray(valueAt({ values, key: fieldKey }))\n .filter(trigger => trigger?.id && !keptIds.includes(trigger.id))\n .map(trigger => ({ ...trigger, _destroy: true }));\n\n const edits = [setTriggers({ schema, triggers })];\n if (removed.length) {\n // eslint-disable-next-line security/detect-object-injection\n const deleted = asArray(values?.[fieldKey]?.deleted);\n edits.push({\n path: `${fieldKey}.deleted`,\n value: [...deleted, ...removed],\n });\n }\n\n return edits;\n};\n\nconst setPerformer = ({ schema, performer }) => ({\n path: `${fieldKeysFromSchema(schema).performer}.value`,\n value: performer,\n});\n\nconst setActions = ({ schema, actions }) => ({\n path: `${fieldKeysFromSchema(schema).actions}.value`,\n value: actions,\n});\n\nconst setConditions = ({ schema, conditions }) => ({\n path: `${fieldKeysFromSchema(schema).conditions}.value`,\n value: conditions,\n});\n\nconst setConditionMode = ({ schema, conditions, joinType }) =>\n setConditions({\n schema,\n conditions: conditions.map(condition =>\n assoc(\"joinType\", joinTypeFor(joinType), condition)\n ),\n });\n\nconst setDelay = ({ schema, delay }) => ({\n path: `${fieldKeysFromSchema(schema).delay}.value`,\n value: delay ?? {},\n});\n\nconst setActive = ({ schema, active }) => ({\n path: `${fieldKeysFromSchema(schema).status}.value`,\n value: active ? STATUS_KEYS.ENABLED : STATUS_KEYS.DISABLED,\n});\n\nconst setScope = ({ schema, scope }) => ({\n path: `${fieldKeysFromSchema(schema).scope}.value`,\n value: scope,\n});\n\nconst removeArrayItem = ({ values, fieldKey, index }) => {\n const list = asArray(valueAt({ values, key: fieldKey }));\n // eslint-disable-next-line security/detect-object-injection\n const removed = list[index];\n const nextList = list.filter((_, i) => i !== index);\n\n const result = [{ path: `${fieldKey}.value`, value: nextList }];\n if (removed?.id) {\n // eslint-disable-next-line security/detect-object-injection\n const deleted = asArray(values?.[fieldKey]?.deleted);\n result.push({\n path: `${fieldKey}.deleted`,\n value: [...deleted, { ...removed, _destroy: true }],\n });\n }\n\n return result;\n};\n\nconst clearArrayItems = ({ values, fieldKey }) => {\n const list = asArray(valueAt({ values, key: fieldKey }));\n const removed = list\n .filter(item => item?.id)\n .map(item => ({ ...item, _destroy: true }));\n\n const result = [{ path: `${fieldKey}.value`, value: [] }];\n if (removed.length) {\n // eslint-disable-next-line security/detect-object-injection\n const deleted = asArray(values?.[fieldKey]?.deleted);\n result.push({\n path: `${fieldKey}.deleted`,\n value: [...deleted, ...removed],\n });\n }\n\n return result;\n};\n\nexport {\n humanize,\n isContainsVerb,\n isNumericVerb,\n isExcludeVerb,\n isMultiValueVerb,\n sentencify,\n copyFor,\n triggerLabel,\n performerLabel,\n conditionFieldLabel,\n operatorLabel,\n conditionValueLabel,\n conditionValueParts,\n conditionNeedsValue,\n actionParts,\n actionStepsOf,\n stepValueOf,\n stepLabelOf,\n hasTrigger,\n isTriggerEnabled,\n isTriggerSatisfied,\n hasRequiredConditions,\n offeredConditionFields,\n hasAction,\n isRuleComplete,\n invalidScopeIndexes,\n invalidScopePhoneFieldIndexes,\n scopePhoneFields,\n effectiveScopePhoneField,\n minutesToParts,\n partsToMinutes,\n leadTimeValidationSchema,\n leadTimeLabel,\n normalizeSchema,\n joinTypeFor,\n fieldKeysFromSchema,\n valuesToRuleModel,\n setTriggers,\n replaceTriggers,\n setPerformer,\n setActions,\n setConditions,\n setConditionMode,\n setDelay,\n setActive,\n setScope,\n removeArrayItem,\n clearArrayItems,\n recipientStorageField,\n recipientOwnedFields,\n};\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS, CONDITION_MODE } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport Values from \"../Token/Values\";\nimport {\n conditionFieldLabel,\n operatorLabel,\n conditionValueParts,\n conditionNeedsValue,\n sentencify,\n isTriggerEnabled,\n} from \"../utils\";\n\nconst ConditionRow = ({\n rule,\n schema,\n condition,\n index,\n onToken: handleToken,\n onAddCondition: handleAddCondition,\n onRemove: handleRemove,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const isFirst = index === 0;\n const hasField = !!condition?.field;\n const hasVerb = !!condition?.verb;\n const conditionField = (schema?.conditions?.fields || []).find(\n field => (field.value ?? field.id) === condition?.field\n );\n\n const operatorPlaceholder =\n conditionField?.operatorPlaceholder ||\n t(\"neetoRules.builder.selectOperator\");\n const value = conditionValueParts({ schema, condition });\n const needsValue = conditionNeedsValue({ schema, condition });\n const { clearing, clearingHoverProps } = useClearingHover();\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n {isFirst ? (\n <span className=\"mb-fixed\">\n {isTriggerEnabled(schema)\n ? t(\"neetoRules.operators.and\")\n : t(\"neetoRules.common.when\")}\n </span>\n ) : (\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_CONNECTOR, index })}\n className=\"mb-tok-connector\"\n dataTestid={`cond-connector-${index}`}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.COND_CONNECTOR, index }))\n }\n >\n {rule.conditionMode === CONDITION_MODE.OR\n ? t(\"neetoRules.operators.or\")\n : t(\"neetoRules.operators.and\")}\n </Token>\n )}\n {hasField ? (\n <>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_FIELD, index })}\n dataTestid={`cond-field-${index}`}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.COND_FIELD, index }))\n }\n >\n {conditionFieldLabel({ schema, condition })}\n </Token>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_OP_TOGGLE, index })}\n dataTestid={`cond-op-${index}`}\n state={hasVerb ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.COND_OP_TOGGLE,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.COND_OP_TOGGLE, index }))\n }\n >\n {hasVerb\n ? sentencify(operatorLabel({ schema, condition }))\n : operatorPlaceholder}\n </Token>\n {hasVerb && needsValue && (\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_VALUES, index })}\n dataTestid={`cond-values-${index}`}\n state={value ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.COND_VALUES,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.COND_VALUES, index }))\n }\n >\n {value ? <Values {...value} /> : t(\"neetoRules.form.addValue\")}\n </Token>\n )}\n </>\n ) : (\n <Token\n active={isActive({ type: BUILDER_ANCHORS.COND_FIELD, index })}\n dataTestid={`cond-field-${index}`}\n invalid={isInvalid({ type: BUILDER_ANCHORS.COND_FIELD, index })}\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.COND_FIELD, index }))\n }\n >\n {t(\"neetoRules.builder.selectCondition\")}\n </Token>\n )}\n </div>\n <div className=\"mb-row-actions\">\n {handleAddCondition && (\n <Button\n data-testid={`cond-add-${index}`}\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addAnotherCondition\"),\n position: \"top\",\n }}\n onClick={handleAddCondition}\n />\n )}\n {handleRemove && (\n <Button\n data-testid={`cond-remove-${index}`}\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.deleteCondition\"),\n position: \"top\",\n }}\n onClick={handleRemove}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default ConditionRow;\n","import classnames from \"classnames\";\n\nconst Connector = ({ active = false }) => (\n <div aria-hidden className={classnames(\"mb-arrow\", { \"is-active\": active })}>\n <svg fill=\"none\" height=\"28\" viewBox=\"0 0 24 28\" width=\"24\">\n <path\n d=\"M12 2 V22 M5 15 l7 7 l7 -7\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n </div>\n);\n\nexport default Connector;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete } from \"neetoicons\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\n\nconst DelayRow = ({\n rule,\n onToken: handleToken,\n onRemove: handleRemove,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const { delay } = rule;\n const { clearing, clearingHoverProps } = useClearingHover();\n if (!delay) return null;\n\n const label = [delay.value, delay.unit]\n .filter(part => part !== \"\" && !isNil(part))\n .join(\" \");\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">\n {t(\"neetoRules.form.delayExecutionBy\")}\n </span>\n <Token\n dataTestid=\"rule-delay\"\n state={label ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.RULE_DELAY,\n index: undefined,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.RULE_DELAY,\n index: undefined,\n })}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.RULE_DELAY }))\n }\n >\n {label || t(\"neetoRules.builder.setDelay\")}\n </Token>\n </div>\n {handleRemove && (\n <div className=\"mb-row-actions\">\n <Button\n data-testid=\"rule-delay-remove\"\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.removeDelay\"),\n position: \"top\",\n }}\n onClick={handleRemove}\n {...clearingHoverProps}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default DelayRow;\n","import classnames from \"classnames\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useReplayFlash from \"../hooks/useReplayFlash\";\n\nconst MetaBlock = ({\n rule,\n showName = true,\n isInvalid = false,\n onEditName: handleEditName,\n onToggleActive: handleToggleActive,\n}) => {\n const { t } = useTranslation();\n\n const nameRef = useReplayFlash(isInvalid);\n\n return (\n <div className=\"mb-meta\">\n {showName && (\n <div className=\"mb-meta-field\">\n <span className=\"mb-meta-label\">\n {t(\"neetoRules.builder.automationName\")}\n </span>\n <div\n data-testid=\"rule-name-edit\"\n ref={nameRef}\n role={handleEditName ? \"button\" : undefined}\n tabIndex={handleEditName ? 0 : undefined}\n className={classnames(\"mb-meta-input-wrap\", {\n \"mb-meta-invalid\": isInvalid,\n })}\n onClick={handleEditName}\n >\n <span className=\"mb-meta-name-display\" data-testid=\"rule-name\">\n {rule.name}\n </span>\n <span aria-hidden className=\"mb-meta-edit\">\n <svg fill=\"none\" height=\"14\" viewBox=\"0 0 24 24\" width=\"14\">\n <path\n d=\"M12 20h9 M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n />\n </svg>\n </span>\n </div>\n </div>\n )}\n <label className=\"mb-meta-active\" data-testid=\"rule-active-label\">\n <input\n checked={rule.active}\n data-testid=\"rule-active-checkbox\"\n readOnly={!handleToggleActive}\n type=\"checkbox\"\n onChange={handleToggleActive || undefined}\n />\n <span aria-hidden className=\"mb-checkbox\">\n <svg fill=\"none\" height=\"12\" viewBox=\"0 0 14 14\" width=\"12\">\n <path d=\"M2 7l3.5 3.5L12 3.5\" />\n </svg>\n </span>\n {t(\"neetoRules.builder.activateThisAutomation\")}\n </label>\n </div>\n );\n};\n\nexport default MetaBlock;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport { copyFor, scopePhoneFields } from \"../utils\";\n\nconst itemLabel = item =>\n item?.label || item?.name || item?.value || String(item ?? \"\");\n\nconst ScopeBlock = ({\n rule,\n schema,\n onToken: handleToken,\n onRemoveScope: handleRemoveScope,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const scope = rule.scope || [];\n const placeholder =\n schema?.scope?.placeholder || t(\"neetoRules.builder.scope.placeholder\");\n const requiresPhone = !!schema?.scope?.requiresPhone?.(rule.actions || []);\n\n if (isEmpty(scope)) {\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n active={isActive({ type: BUILDER_ANCHORS.SCOPE, index: undefined })}\n dataTestid=\"scope-add\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.SCOPE }))\n }\n >\n {placeholder}\n </Token>\n </div>\n </div>\n );\n }\n\n return scope.map((item, index) => (\n <ScopeRow\n {...{ index, isActive, isInvalid, item, requiresPhone, schema }}\n isLast={index === scope.length - 1}\n key={(item?.value ?? item) || index}\n onRemoveScope={handleRemoveScope}\n onToken={handleToken}\n />\n ));\n};\n\nconst ScopeRow = ({\n schema,\n item,\n index,\n onToken: handleToken,\n onRemoveScope: handleRemoveScope,\n isActive,\n isInvalid,\n isLast,\n requiresPhone,\n}) => {\n const { t } = useTranslation();\n const { clearing, clearingHoverProps } = useClearingHover();\n const lead = schema?.scope?.lead || t(\"neetoRules.builder.scope.lead\");\n const meeting = itemLabel(item);\n const phoneFields = requiresPhone ? scopePhoneFields({ item, schema }) : null;\n const hasPhoneFieldChoice = (phoneFields?.length || 0) > 1;\n const singlePhoneFieldLabel =\n phoneFields?.length === 1 ? phoneFields[0].label : null;\n\n const selectedPhoneField = phoneFields?.find(\n field => field.value === item?.phoneField\n );\n\n const usingLabel =\n copyFor(schema?.scope?.usingLabel, { meeting }) ||\n t(\"neetoRules.builder.scope.using\");\n\n const phoneFieldPlaceholder =\n copyFor(schema?.scope?.phoneFieldPlaceholder, { meeting }) ||\n t(\"neetoRules.builder.selectPhoneField\");\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{lead}</span>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.SCOPE, index: undefined })}\n dataTestid={`scope-${index}`}\n invalid={isInvalid({ type: BUILDER_ANCHORS.SCOPE, index })}\n onClick={\n handleToken && (() => handleToken({ type: BUILDER_ANCHORS.SCOPE }))\n }\n >\n {meeting}\n </Token>\n {singlePhoneFieldLabel && (\n <span className=\"mb-fixed\">\n {usingLabel} {singlePhoneFieldLabel}\n </span>\n )}\n {hasPhoneFieldChoice && (\n <>\n <span className=\"mb-fixed\">{usingLabel}</span>\n <Token\n dataTestid={`scope-phone-field-${index}`}\n active={isActive({\n type: BUILDER_ANCHORS.SCOPE_PHONE_FIELD,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.SCOPE_PHONE_FIELD,\n index,\n })}\n state={\n selectedPhoneField ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED\n }\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.SCOPE_PHONE_FIELD,\n index,\n }))\n }\n >\n {selectedPhoneField?.label || phoneFieldPlaceholder}\n </Token>\n </>\n )}\n </div>\n <div className=\"mb-row-actions\">\n {handleToken && isLast && (\n <Button\n data-testid={`scope-add-${index}`}\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addAnotherBookingPage\"),\n position: \"top\",\n }}\n onClick={() => handleToken({ type: BUILDER_ANCHORS.SCOPE })}\n />\n )}\n {handleRemoveScope && (\n <Button\n data-testid={`scope-remove-${index}`}\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.removeBookingPage\"),\n position: \"top\",\n }}\n onClick={() => handleRemoveScope(index)}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default ScopeBlock;\n","import { Fragment } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Button, Tooltip } from \"neetoatoms\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Delete, Info, Plus } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PARAM_KIND, BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport Values from \"../Token/Values\";\nimport { actionParts, sentencify, stepLabelOf } from \"../utils\";\n\nconst ActionRow = ({\n schema,\n action,\n index,\n position,\n onToken: handleToken,\n onAddAction: handleAddAction,\n onRemove: handleRemove,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const {\n option,\n label,\n verb,\n mediumLabel,\n icon: MediumIcon,\n needsRecipient,\n recipient,\n recipientLabel,\n separator,\n configValue,\n configValueParts,\n configValuePlaceholder,\n paramKind,\n valueNoun,\n valueNounPlural,\n steps,\n infoTooltip,\n } = actionParts({ schema, action });\n\n // A separator-less action still needs a value slot when the host declares a\n // placeholder for it, otherwise its chosen value never reaches the canvas.\n const hasParamTail =\n paramKind === PARAM_KIND.ENUM_SINGLE ||\n paramKind === PARAM_KIND.ENUM_MULTI ||\n !!configValuePlaceholder ||\n !!configValue;\n\n const multiPlaceholder = valueNounPlural\n ? t(\"neetoRules.builder.selectNoun\", { noun: valueNounPlural })\n : t(\"neetoRules.form.selectValues\");\n\n const singlePlaceholder = valueNoun\n ? t(\"neetoRules.builder.selectNoun\", { noun: valueNoun })\n : t(\"neetoRules.form.selectValue\");\n\n const paramPlaceholder =\n paramKind === PARAM_KIND.ENUM_MULTI ? multiPlaceholder : singlePlaceholder;\n\n const connector =\n (position ?? index) === 0\n ? t(\"neetoRules.common.then\")\n : t(\"neetoRules.operators.and\");\n const verbLabel = sentencify(verb || label);\n const isVerbActive =\n isActive({ type: BUILDER_ANCHORS.ACTION_CHANNEL, index }) ||\n isActive({ type: BUILDER_ANCHORS.ACTION_ADD, index });\n const configLabel = mediumLabel || sentencify(option?.placeholder);\n // A host may declare two separators: the first introduces the recipient\n // (\"whose email is\"), the second the configured value (\"with the following\").\n const [recipientSeparator, configSeparator] = Array.isArray(separator)\n ? separator\n : [null, separator];\n const isConfigured = isNotEmpty(action?.metadata);\n // A host that shows no value label still needs the token to read as filled.\n const configState =\n configValueParts || isConfigured ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED;\n const { clearing, clearingHoverProps } = useClearingHover();\n\n const configToken = configSeparator ? (\n <Fragment key=\"config\">\n <span className=\"mb-fixed\">{configSeparator}</span>\n <Token\n active={isActive({ type: BUILDER_ANCHORS.ACTION_CONFIG, index })}\n dataTestid={`action-config-value-${index}`}\n state={configState}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.ACTION_CONFIG, index }))\n }\n >\n {configValueParts ? (\n <Values {...configValueParts} />\n ) : (\n sentencify(configValuePlaceholder) ||\n t(\"neetoRules.builder.selectFallback\")\n )}\n </Token>\n </Fragment>\n ) : null;\n\n const recipientToken = needsRecipient ? (\n <Fragment key=\"recipient\">\n <span className=\"mb-fixed\">\n {recipientSeparator || t(\"neetoRules.common.to\")}\n </span>\n <Token\n dataTestid={`action-recipient-${index}`}\n state={recipient ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.ACTION_RECIPIENT,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_RECIPIENT,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.ACTION_RECIPIENT,\n index,\n }))\n }\n >\n {recipient\n ? String(recipientLabel).toLowerCase()\n : t(\"neetoRules.builder.selectRecipient\")}\n </Token>\n </Fragment>\n ) : null;\n\n const stepTokens = steps.map(step => {\n const stepLabel = stepLabelOf({ action, step });\n const token = {\n type: BUILDER_ANCHORS.ACTION_STEP,\n index,\n stepKey: step.key,\n };\n\n return (\n <Fragment key={`step-${step.key}`}>\n {step.separator && <span className=\"mb-fixed\">{step.separator}</span>}\n <Token\n active={isActive(token)}\n dataTestid={`action-step-${step.key}-${index}`}\n invalid={isInvalid(token)}\n state={stepLabel ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n onClick={handleToken && (() => handleToken(token))}\n >\n {/* Option labels are lowered to read as part of the sentence; a\n step whose values are proper nouns opts out. */}\n {(step.preserveCase ? stepLabel : sentencify(stepLabel)) ||\n sentencify(step.placeholder)}\n </Token>\n </Fragment>\n );\n });\n\n const infoToken = infoTooltip ? (\n <Tooltip content={infoTooltip} position=\"top\">\n <span\n aria-label={infoTooltip}\n className=\"mb-info\"\n data-testid={`action-info-${index}`}\n >\n <Info size={16} />\n </span>\n </Tooltip>\n ) : null;\n\n return (\n <div className={classnames(\"mb-row mb-row-draggable\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{connector}</span>\n {configSeparator ? (\n <Token\n active={isVerbActive}\n className=\"mb-tok-medium\"\n dataTestid={`action-verb-${index}`}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.ACTION_CHANNEL, index }))\n }\n >\n {verbLabel}\n {MediumIcon && <MediumIcon size={14} />}\n {configLabel}\n </Token>\n ) : (\n <>\n <Token\n active={isVerbActive}\n dataTestid={`action-verb-${index}`}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.ACTION_CHANNEL, index }))\n }\n >\n {verbLabel}\n </Token>\n {hasParamTail ? (\n <Token\n dataTestid={`action-config-value-${index}`}\n state={configState}\n active={isActive({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({ type: BUILDER_ANCHORS.ACTION_CONFIG, index }))\n }\n >\n {configValueParts ? (\n <Values {...configValueParts} />\n ) : (\n sentencify(configValuePlaceholder) || paramPlaceholder\n )}\n </Token>\n ) : (\n configLabel && (\n <Token\n className=\"mb-tok-medium\"\n dataTestid={`action-config-${index}`}\n state={isConfigured ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.ACTION_CONFIG,\n index,\n }))\n }\n >\n {MediumIcon && <MediumIcon size={14} />}\n {configLabel}\n </Token>\n )\n )}\n </>\n )}\n {recipientSeparator\n ? [recipientToken, configToken]\n : [configToken, recipientToken]}\n {stepTokens}\n {infoToken}\n </div>\n <div className=\"mb-row-actions\">\n {handleAddAction && (\n <Button\n data-testid={`action-add-${index}`}\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addAnotherAction\"),\n position: \"top\",\n }}\n onClick={handleAddAction}\n />\n )}\n {handleRemove && (\n <Button\n data-testid={`action-remove-${index}`}\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.deleteAction\"),\n position: \"top\",\n }}\n onClick={handleRemove}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default ActionRow;\n","import { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ActionRow from \"./ActionRow\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport { isTriggerSatisfied } from \"../utils\";\n\nconst ThenBlock = ({\n rule,\n schema,\n onToken: handleToken,\n onAddAction: handleAddAction,\n onRemoveAction: handleRemoveAction,\n isActive = () => false,\n isInvalid = () => false,\n adding = false,\n}) => {\n const { t } = useTranslation();\n const named = rule.actions\n .map((action, index) => ({ action, index }))\n .filter(({ action }) => action?.channel || action?.name);\n\n if (isEmpty(named)) {\n const isTriggerSet = isTriggerSatisfied({ rule, schema });\n\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n active={isActive({ type: BUILDER_ANCHORS.ACTION_ADD, index: 0 })}\n dataTestid=\"action-add\"\n invalid={isInvalid({ type: BUILDER_ANCHORS.ACTION_ADD, index: 0 })}\n state={\n isTriggerSet ? TOKEN_STATE.PLACEHOLDER_NEXT : TOKEN_STATE.DISABLED\n }\n title={\n isTriggerSet\n ? undefined\n : t(\"neetoRules.builder.pickTriggerFirst\")\n }\n onClick={isTriggerSet ? handleAddAction : undefined}\n >\n {t(\"neetoRules.builder.thenDoThis\")}\n </Token>\n </div>\n </div>\n );\n }\n\n return (\n <>\n {named.map(({ action, index }, position) => (\n <ActionRow\n {...{ action, index, isActive, isInvalid, position, schema }}\n key={action.id ?? index}\n onAddAction={position === named.length - 1 && handleAddAction}\n onRemove={handleRemoveAction && (() => handleRemoveAction(index))}\n onToken={handleToken}\n />\n ))}\n {adding && (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{t(\"neetoRules.operators.and\")}</span>\n <Token\n active\n dataTestid=\"action-add-next\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={handleAddAction}\n >\n {t(\"neetoRules.form.doThis\")}\n </Token>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default ThenBlock;\n","import { Fragment } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { Delete, Plus } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BUILDER_ANCHORS } from \"../constants\";\nimport useClearingHover from \"../hooks/useClearingHover\";\nimport Token from \"../Token\";\nimport { TOKEN_STATE } from \"../Token/constants\";\nimport {\n triggerLabel,\n performerLabel,\n leadTimeLabel,\n isTriggerEnabled,\n} from \"../utils\";\n\nconst WhenBlock = ({\n rule,\n schema,\n onToken: handleToken,\n onAddCondition: handleAddCondition,\n onClearTrigger: handleClearTrigger,\n isActive = () => false,\n isInvalid = () => false,\n}) => {\n const { t } = useTranslation();\n const { triggers, performer } = rule;\n const isActorEnabled = schema?.actor?.enabled;\n const { clearing, clearingHoverProps, resetClearing } = useClearingHover();\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n const hasLeadTimeFor = name =>\n (schema?.triggers?.leadTime?.appliesTo || []).includes(name);\n\n if (!isTriggerEnabled(schema)) {\n if (!isEmpty(rule.conditions)) return null;\n\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n dataTestid=\"condition-add\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={handleAddCondition || undefined}\n >\n {t(\"neetoRules.builder.whenThisIsTrue\")}\n </Token>\n </div>\n </div>\n );\n }\n\n if (isEmpty(triggers)) {\n return (\n <div className=\"mb-row\">\n <div className=\"mb-sentence\">\n <Token\n dataTestid=\"trigger-add\"\n state={TOKEN_STATE.PLACEHOLDER_NEXT}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.TRIGGER_ADD }))\n }\n >\n {t(\"neetoRules.builder.whenThisHappens\")}\n </Token>\n </div>\n </div>\n );\n }\n\n return (\n <div className={classnames(\"mb-row\", { clearing })}>\n <div className=\"mb-sentence\">\n <span className=\"mb-fixed\">{t(\"neetoRules.common.when\")}</span>\n {triggers.map((trigger, index) => (\n <Fragment key={trigger.id ?? index}>\n {index > 0 && (\n <span className=\"mb-fixed\">{t(\"neetoRules.operators.or\")}</span>\n )}\n {hasLeadTimeFor(trigger.name) && (\n <Token\n dataTestid={`trigger-lead-time-${index}`}\n active={isActive({\n type: BUILDER_ANCHORS.TRIGGER_LEAD_TIME,\n index,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.TRIGGER_LEAD_TIME,\n index,\n })}\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.TRIGGER_LEAD_TIME,\n index,\n }))\n }\n >\n {leadTimeLabel(rule.leadTime)}\n </Token>\n )}\n <Token\n dataTestid={`trigger-${index}`}\n active={\n isActive({ type: BUILDER_ANCHORS.TRIGGER_REPLACE, index }) ||\n (index === 0 &&\n isActive({\n type: BUILDER_ANCHORS.TRIGGER_ADD,\n index: undefined,\n }))\n }\n onClick={\n handleToken &&\n (() =>\n handleToken({\n type: BUILDER_ANCHORS.TRIGGER_REPLACE,\n index,\n trigger,\n }))\n }\n >\n {triggerLabel({ schema, trigger })}\n </Token>\n </Fragment>\n ))}\n {isActorEnabled && (\n <>\n <span className=\"mb-fixed\">{t(\"neetoRules.common.by\")}</span>\n <Token\n dataTestid=\"trigger-actor\"\n state={performer ? TOKEN_STATE.FILLED : TOKEN_STATE.MUTED}\n active={isActive({\n type: BUILDER_ANCHORS.TRIGGER_ACTOR,\n index: undefined,\n })}\n invalid={isInvalid({\n type: BUILDER_ANCHORS.TRIGGER_ACTOR,\n index: undefined,\n })}\n onClick={\n handleToken &&\n (() => handleToken({ type: BUILDER_ANCHORS.TRIGGER_ACTOR }))\n }\n >\n {performer\n ? performerLabel({ schema, performer })\n : t(\"neetoRules.builder.selectActor\")}\n </Token>\n </>\n )}\n </div>\n <div className=\"mb-row-actions\">\n {handleAddCondition && (\n <Button\n data-testid=\"trigger-add-condition\"\n icon={Plus}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.addCondition\"),\n position: \"top\",\n }}\n onClick={handleAddCondition}\n />\n )}\n {handleClearTrigger && (\n <Button\n data-testid=\"trigger-clear\"\n icon={Delete}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoRules.builder.aria.clearTrigger\"),\n position: \"top\",\n }}\n onClick={() => {\n resetClearing();\n handleClearTrigger();\n }}\n {...clearingHoverProps}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default WhenBlock;\n","import { useCallback } from \"react\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport { TOKEN_TO_PANEL_TYPE, LARGE_PANEL_TYPES } from \"../constants\";\n\nconst usePaneCascade = schema => {\n const { setPanelState, resetPanelState } = useUtilityStore.pick();\n\n const openType = useCallback(\n ({ type, data = {} }) =>\n setPanelState({\n type,\n variant: \"builder\",\n size: LARGE_PANEL_TYPES.includes(type) ? \"large\" : \"small\",\n data: { schema, ...data },\n }),\n [schema, setPanelState]\n );\n\n const openPane = useCallback(\n token => {\n const type = TOKEN_TO_PANEL_TYPE[token?.type];\n if (!type) return;\n\n const { type: anchor, ...rest } = token;\n openType({ type, data: { anchor, ...rest } });\n },\n [openType]\n );\n\n return { openPane, openType, closePane: resetPanelState };\n};\n\nexport default usePaneCascade;\n","import { useMemo } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport {\n valuesToRuleModel,\n replaceTriggers,\n setPerformer,\n setActions,\n setConditions,\n setConditionMode,\n setDelay,\n setActive,\n setScope,\n removeArrayItem,\n clearArrayItems,\n fieldKeysFromSchema,\n} from \"../utils\";\n\nconst useRuleModel = schema => {\n const { values, setFieldValue } = useFormikContext();\n\n const apply = ({ path, value }) => setFieldValue(path, value);\n const applyAll = edits => edits.forEach(apply);\n\n const rule = useMemo(\n () => valuesToRuleModel({ values, schema }),\n [values, schema]\n );\n\n return {\n rule,\n fieldKeys: fieldKeysFromSchema(schema),\n setTriggers: triggers =>\n applyAll(replaceTriggers({ schema, values, triggers })),\n setPerformer: performer => apply(setPerformer({ schema, performer })),\n setActions: actions => apply(setActions({ schema, actions })),\n setConditions: conditions => apply(setConditions({ schema, conditions })),\n setConditionMode: joinType =>\n apply(\n setConditionMode({ schema, conditions: rule.conditions, joinType })\n ),\n setDelay: delay => apply(setDelay({ schema, delay })),\n setActive: active => apply(setActive({ schema, active })),\n setScope: scope => apply(setScope({ schema, scope })),\n removeCondition: index =>\n applyAll(\n removeArrayItem({\n values,\n fieldKey: fieldKeysFromSchema(schema).conditions,\n index,\n })\n ),\n removeAction: index =>\n applyAll(\n removeArrayItem({\n values,\n fieldKey: fieldKeysFromSchema(schema).actions,\n index,\n })\n ),\n clearTriggers: () =>\n applyAll(\n clearArrayItems({\n values,\n fieldKey: fieldKeysFromSchema(schema).triggers,\n })\n ),\n clearConditions: () =>\n applyAll(\n clearArrayItems({\n values,\n fieldKey: fieldKeysFromSchema(schema).conditions,\n })\n ),\n clearActions: () =>\n applyAll(\n clearArrayItems({\n values,\n fieldKey: fieldKeysFromSchema(schema).actions,\n })\n ),\n };\n};\n\nexport default useRuleModel;\n","import { t } from \"i18next\";\nimport { isNotEmpty, removeBy, toLabelAndValue } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport {\n BUILDER_ANCHORS,\n BUILDER_PANEL_TYPES,\n CONDITION_MODE,\n} from \"../constants\";\nimport {\n humanize,\n isContainsVerb,\n isNumericVerb,\n isExcludeVerb,\n scopePhoneFields,\n copyFor,\n offeredConditionFields,\n actionStepsOf,\n stepValueOf,\n} from \"../utils\";\n\nconst triggerValue = option => option.eventValue ?? option.value ?? option.id;\n\nconst stepAt = ({ schema, rule, index, stepKey }) =>\n actionStepsOf({ schema, action: actionAt({ rule, index }) }).find(\n step => step.key === stepKey\n );\n\n// Panes hand off in sentence order — config, recipient, then each host step —\n// so every \"what comes next\" question resolves through this one list.\nconst stepTargetAfter = ({ schema, rule, index, stepKey }) => {\n const steps = actionStepsOf({ schema, action: actionAt({ rule, index }) });\n const at = stepKey ? steps.findIndex(step => step.key === stepKey) : -1;\n // An unknown key means the step is gone from under the pane; restarting the\n // cascade at the first step would be worse than ending it.\n if (stepKey && at === -1) return null;\n\n const next = steps[at + 1];\n\n return next\n ? {\n type: BUILDER_PANEL_TYPES.ACTION_STEP,\n data: { index, stepKey: next.key, anchor: BUILDER_ANCHORS.ACTION_STEP },\n }\n : null;\n};\n\nconst optionValue = option => option.value ?? option.id;\n\nconst normalizeOptions = options =>\n (options || []).map(option =>\n typeof option === \"string\" ? toLabelAndValue(option) : option\n );\n\nconst groupByCategory = options => {\n const groups = [];\n const indexByCategory = {};\n options.forEach(option => {\n const category = option.category || \"\";\n // eslint-disable-next-line security/detect-object-injection\n if (indexByCategory[category] === undefined) {\n // eslint-disable-next-line security/detect-object-injection\n indexByCategory[category] = groups.length;\n groups.push([category, []]);\n }\n // eslint-disable-next-line security/detect-object-injection\n groups[indexByCategory[category]][1].push(option);\n });\n\n return groups;\n};\n\nconst conditionAt = ({ rule, index }) =>\n // eslint-disable-next-line security/detect-object-injection\n rule.conditions[index] || {};\n\n// eslint-disable-next-line security/detect-object-injection\nconst actionAt = ({ rule, index }) => rule.actions[index] || {};\n\n// eslint-disable-next-line security/detect-object-injection\nconst scopeItemAt = ({ rule, index }) => rule.scope?.[index] || {};\n\nconst scopeItemLabel = item =>\n item?.label || item?.name || item?.value || String(item ?? \"\");\n\nconst findField = ({ schema, value }) =>\n (schema.conditions?.fields || []).find(field => optionValue(field) === value);\n\nconst findActionOption = ({ schema, name }) =>\n (schema.actions?.options || []).find(option => optionValue(option) === name);\n\nconst channelOf = ({ schema, action }) =>\n action?.channel || schema.actions?.actionForName?.(action?.name)?.channel;\n\nconst recipientOf = ({ schema, action }) =>\n action?.recipient ?? schema.actions?.actionForName?.(action?.name)?.recipient;\n\nconst channelMetaOf = ({ schema, action }) =>\n schema.actions?.channelMeta?.[channelOf({ schema, action })] || {};\n\nconst actionHasConfig = ({ schema, action }) => {\n const meta = channelMetaOf({ schema, action });\n if (meta.mediumLabel) return true;\n\n const option = findActionOption({ schema, name: action?.name });\n if (option?.component || option?.renderConfig) return true;\n\n if (schema.actions?.hasConfig) return schema.actions.hasConfig(action);\n\n return !!schema.actions?.renderConfig;\n};\n\nconst recipientsFor = ({ schema, action }) => {\n const channel = channelOf({ schema, action });\n if (channel && schema.actions?.recipientsFor) {\n return schema.actions.recipientsFor(channel);\n }\n\n const option = findActionOption({ schema, name: channel });\n if (option?.recipients) return option.recipients;\n\n return schema.actions?.recipients || [];\n};\n\n// Each action runs once per rule, so hide recipients another row already uses.\nconst availableRecipients = ({ schema, rule, index }) => {\n const action = actionAt({ rule, index });\n const channel = channelOf({ schema, action });\n const usedNames = rule.actions\n .filter((_, position) => position !== index)\n .map(item => item.name)\n .filter(Boolean);\n\n return recipientsFor({ schema, action }).filter(recipient => {\n const name = schema.actions?.resolveName?.({\n channel,\n recipient: optionValue(recipient),\n });\n\n return !name || !usedNames.includes(name);\n });\n};\n\nconst nextTriggers = ({ schema, rule, value }) => {\n if (schema.triggers?.multi) {\n const names = pluck(\"name\", rule.triggers);\n\n return names.includes(value)\n ? removeBy({ name: value }, rule.triggers)\n : [...rule.triggers, { name: value }];\n }\n\n return [{ ...rule.triggers[0], name: value }];\n};\n\nconst nextConditionAt = ({ schema, rule, index, value }) => {\n const field = findField({ schema, value });\n const previous = conditionAt({ rule, index });\n const first = field?.allowMatching?.[0];\n const defaultVerb =\n first && !(field?.noValueForVerbs || []).includes(first)\n ? first\n : undefined;\n\n const verb = (field?.allowMatching || []).includes(previous.verb)\n ? previous.verb\n : defaultVerb;\n\n return {\n ...previous,\n field: value,\n kind: field?.kind,\n verb,\n metadata: {},\n };\n};\n\nconst nextActionAt = ({ schema, rule, index, value }) => {\n if (!schema.actions?.resolveName) {\n const option = findActionOption({ schema, name: value });\n const prev = actionAt({ rule, index });\n\n if (option?.recipients) {\n const channelChanged = prev.channel !== value;\n\n return {\n ...prev,\n channel: value,\n recipient: channelChanged ? undefined : prev.recipient,\n name: \"\",\n type: option?.type,\n metadata: channelChanged ? {} : prev.metadata,\n };\n }\n\n return {\n ...prev,\n channel: undefined,\n recipient: undefined,\n name: value,\n type: option?.type,\n metadata: {},\n };\n }\n\n const prev = actionAt({ rule, index });\n const prevChannel = channelOf({ schema, action: prev });\n const channelChanged = prevChannel !== value;\n let recipient = channelChanged ? undefined : prev.recipient;\n if (channelChanged) {\n const channelRecipients =\n // eslint-disable-next-line security/detect-object-injection\n schema.actions?.recipientsByChannel?.[value] || [];\n if (channelRecipients.length === 1) [recipient] = channelRecipients;\n }\n\n return {\n ...prev,\n channel: value,\n recipient,\n name: schema.actions.resolveName({ channel: value, recipient }),\n metadata: channelChanged ? {} : prev.metadata,\n };\n};\n\nconst appendScopeItem = ({ schema, rule, value }) => {\n const sc = schema.scope || {};\n const option = (sc.options || []).find(\n candidate => optionValue(candidate) === value\n ) || { value };\n const requiresPhone = sc.requiresPhone?.(rule.actions) || false;\n if (!requiresPhone) return option;\n\n const phoneFields = scopePhoneFields({ schema, item: option });\n\n return phoneFields?.length === 1\n ? { ...option, phoneField: phoneFields[0].value }\n : option;\n};\n\nconst nextActionRecipientAt = ({ schema, rule, index, value }) => {\n const prev = actionAt({ rule, index });\n const channel = channelOf({ schema, action: prev });\n\n return {\n ...prev,\n recipient: value,\n name: schema.actions?.resolveName\n ? schema.actions.resolveName({ channel, recipient: value })\n : value,\n };\n};\n\nconst descriptorFor = ({ anchor, schema, rule, index, stepKey }) => {\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE: {\n const multi = !!schema.triggers?.multi;\n const isReplace = anchor === BUILDER_ANCHORS.TRIGGER_REPLACE;\n const triggerTitle = isReplace\n ? (multi && t(\"neetoRules.builder.panes.changeTriggers\")) ||\n t(\"neetoRules.builder.panes.changeTrigger\")\n : (multi && t(\"neetoRules.builder.panes.whenEllipsis\")) ||\n t(\"neetoRules.builder.panes.addTrigger\");\n\n const triggerSubtitle =\n (multi && t(\"neetoRules.builder.panes.triggerSubtitleMulti\")) ||\n (isReplace\n ? t(\"neetoRules.builder.panes.triggerSubtitleReplace\")\n : t(\"neetoRules.builder.panes.triggerSubtitleAdd\"));\n\n return {\n title: triggerTitle,\n subtitle: triggerSubtitle,\n multi,\n cascade: !!schema.actor?.enabled,\n options: (schema.triggers?.options || []).map(option => ({\n label: option.paneLabel || option.label,\n value: triggerValue(option),\n category: option.category,\n })),\n selectedValues: pluck(\"name\", rule.triggers),\n };\n }\n case BUILDER_ANCHORS.TRIGGER_ACTOR:\n return {\n title: t(\"neetoRules.builder.panes.actorTitle\"),\n subtitle: t(\"neetoRules.builder.panes.actorSubtitle\"),\n options: (schema.actor?.options || []).map(option => ({\n label: option.label,\n value: optionValue(option),\n })),\n selectedValues: [rule.performer],\n };\n case BUILDER_ANCHORS.COND_FIELD:\n return {\n title: t(\"neetoRules.builder.panes.addCondition\"),\n subtitle: t(\"neetoRules.builder.panes.condFieldSubtitle\"),\n cascade: true,\n options: offeredConditionFields({ schema, rule }).map(field => ({\n label: field.paneLabel || field.label,\n value: optionValue(field),\n category: field.category,\n })),\n selectedValues: [conditionAt({ rule, index }).field],\n };\n case BUILDER_ANCHORS.COND_OP_TOGGLE: {\n const field = findField({\n schema,\n value: conditionAt({ rule, index }).field,\n });\n const labels = schema.conditions?.operatorLabels || {};\n const verbs = field?.allowMatching || [];\n const fieldLabel = field?.paneLabel || field?.label || \"\";\n\n const isContains = isNotEmpty(verbs) && verbs.every(isContainsVerb);\n const isNumeric = !isContains && verbs.some(isNumericVerb);\n const isExclude = !isContains && !isNumeric && verbs.some(isExcludeVerb);\n const hasOptions = isNotEmpty(\n normalizeOptions(\n field?.values || field?.dropdownOptions || field?.options\n )\n );\n\n const containsVariant = hasOptions ? \"Values\" : \"Keywords\";\n const numericOrExcludeVariant = isExclude ? \"Exclude\" : \"\";\n const nonContainsVariant = isNumeric ? \"Number\" : numericOrExcludeVariant;\n const variant = isContains ? containsVariant : nonContainsVariant;\n\n return {\n title: t(`neetoRules.builder.panes.operatorTitle${variant}`),\n subtitle: variant\n ? t(`neetoRules.builder.panes.operatorSubtitle${variant}`, {\n field: fieldLabel,\n })\n : t(\"neetoRules.builder.panes.operatorSubtitle\"),\n cascade: true,\n options: verbs.map(verb => ({\n // eslint-disable-next-line security/detect-object-injection\n label: labels[verb] || humanize(verb),\n value: verb,\n })),\n selectedValues: [conditionAt({ rule, index }).verb],\n };\n }\n case BUILDER_ANCHORS.COND_CONNECTOR:\n return {\n title: t(\"neetoRules.builder.panes.connectorTitle\"),\n subtitle: t(\"neetoRules.builder.panes.connectorSubtitle\"),\n options: [\n {\n label: t(\"neetoRules.builder.panes.connectorAndOption\"),\n value: CONDITION_MODE.AND,\n },\n {\n label: t(\"neetoRules.builder.panes.connectorOrOption\"),\n value: CONDITION_MODE.OR,\n },\n ],\n selectedValues: [rule.conditionMode],\n };\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL: {\n const isSwap = anchor === BUILDER_ANCHORS.ACTION_CHANNEL;\n const channelMetaFor = value =>\n // eslint-disable-next-line security/detect-object-injection\n schema.actions?.channelMeta?.[value] || {};\n\n // Both panes list the host's actions in the order it declared them;\n // re-ranking only the swap pane made the two disagree.\n const sourceOptions = schema.actions?.options || [];\n\n return {\n title: isSwap\n ? t(\"neetoRules.builder.panes.actionSwapTitle\")\n : t(\"neetoRules.builder.panes.actionAddTitle\"),\n subtitle: isSwap\n ? t(\"neetoRules.builder.panes.actionSwapSubtitle\")\n : t(\"neetoRules.builder.panes.actionAddSubtitle\"),\n cascade: true,\n options: sourceOptions.map(option => {\n const value = optionValue(option);\n const meta = channelMetaFor(value);\n\n return {\n label: isSwap ? meta.channelLabel || option.label : option.label,\n value,\n category: option.category,\n // Hosts mark unavailable actions with isDisabled; without carrying\n // the reason across, the picker disables them with no explanation.\n disabled: !!(option.disabled ?? option.isDisabled),\n disabledReason: option.disabledReason,\n disabledPopover: option.disabledPopover,\n icon: (isSwap ? meta.icon : option.icon) || option.icon,\n };\n }),\n selectedValues: [\n channelOf({ schema, action: actionAt({ rule, index }) }) ??\n actionAt({ rule, index }).name,\n ],\n };\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT: {\n const action = actionAt({ rule, index });\n const channel = channelOf({ schema, action });\n // eslint-disable-next-line security/detect-object-injection\n const meta = schema.actions?.channelMeta?.[channel] || {};\n const option = findActionOption({ schema, name: channel });\n\n return {\n title:\n meta.recipientTitle ||\n option?.recipientTitle ||\n t(\"neetoRules.builder.panes.recipientTitle\"),\n subtitle:\n meta.recipientSubtitle ||\n option?.recipientSubtitle ||\n t(\"neetoRules.builder.panes.recipientSubtitle\"),\n options: availableRecipients({ schema, rule, index }).map(\n recipient => ({\n label: recipient.label,\n value: optionValue(recipient),\n })\n ),\n selectedValues: [recipientOf({ schema, action })],\n // Confirming a recipient always offers Continue; whether that chains\n // onward or just closes is decided by continueTargetFor.\n cascade: true,\n };\n }\n case BUILDER_ANCHORS.ACTION_STEP: {\n const action = actionAt({ rule, index });\n const step = stepAt({ schema, rule, index, stepKey }) || {};\n\n return {\n title: step.title || t(\"neetoRules.builder.panes.stepTitle\"),\n subtitle: step.subtitle,\n options: normalizeOptions(step.options),\n selectedValues: [stepValueOf({ action, step })],\n cascade: true,\n };\n }\n case BUILDER_ANCHORS.SCOPE: {\n const sc = schema.scope || {};\n const selected = (rule.scope || []).map(item => item?.value ?? item);\n const requiresPhone = sc.requiresPhone?.(rule.actions) || false;\n\n return {\n title: selected.length\n ? sc.paneChangeTitle || t(\"neetoRules.builder.panes.scopeChangeTitle\")\n : sc.paneTitle || t(\"neetoRules.builder.panes.scopeTitle\"),\n subtitle:\n sc.paneSubtitle || t(\"neetoRules.builder.panes.scopeSubtitle\"),\n multi: true,\n options: (sc.options || []).map(option => {\n const value = optionValue(option);\n const blockedNoPhone =\n requiresPhone && option.hasPhoneField === false;\n const isSelected = selected.includes(value);\n\n return {\n label: option.label,\n value,\n disabled:\n (!!(option.disabled ?? option.isDisabled) || blockedNoPhone) &&\n !isSelected,\n disabledReason: blockedNoPhone\n ? sc.disabledReason\n : option.disabledReason,\n disabledPopover: option.disabledPopover,\n disabledTooltip: blockedNoPhone && sc.disabledTooltip,\n };\n }),\n selectedValues: selected,\n };\n }\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD: {\n const sc = schema.scope || {};\n const item = scopeItemAt({ rule, index });\n const meeting = scopeItemLabel(item);\n const options = scopePhoneFields({ schema, item }) || [];\n\n return {\n title:\n copyFor(sc.phoneFieldPaneTitle, { meeting }) ||\n t(\"neetoRules.builder.panes.phoneFieldTitle\"),\n subtitle:\n copyFor(sc.phoneFieldPaneSubtitle, { meeting }) ||\n t(\"neetoRules.builder.panes.phoneFieldSubtitle\", { meeting }),\n options: options.map(option => ({\n label: option.label,\n value: optionValue(option),\n })),\n selectedValues: [item.phoneField],\n };\n }\n default:\n return { title: \"\", subtitle: \"\", options: [], selectedValues: [] };\n }\n};\n\nconst commitFor = ({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n value,\n helpers,\n}) => {\n const {\n setTriggers,\n setPerformer,\n setConditionMode,\n setFieldValue,\n fieldKeys,\n } = helpers;\n\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE: {\n if (schema.triggers?.multi) {\n const names = pluck(\"name\", rule.triggers);\n setTriggers(\n names.includes(value)\n ? removeBy({ name: value }, rule.triggers)\n : [...rule.triggers, { name: value }]\n );\n\n return \"stay\";\n }\n setTriggers([{ ...rule.triggers[0], name: value }]);\n\n const leadTime = schema.triggers?.leadTime;\n if (\n leadTime?.fieldKey &&\n (leadTime.appliesTo || []).includes(value) &&\n !rule.leadTime\n ) {\n // eslint-disable-next-line @bigbinary/neeto/use-common-constants\n setFieldValue(`${leadTime.fieldKey}.value`, leadTime.default ?? 10);\n }\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.TRIGGER_ACTOR:\n setPerformer(value);\n\n return \"stay\";\n case BUILDER_ANCHORS.COND_FIELD: {\n setFieldValue(\n `${fieldKeys.conditions}.value.${index}`,\n nextConditionAt({ schema, rule, index, value })\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.COND_OP_TOGGLE:\n setFieldValue(`${fieldKeys.conditions}.value.${index}.verb`, value);\n\n return \"stay\";\n case BUILDER_ANCHORS.COND_CONNECTOR:\n setConditionMode(value);\n\n return \"stay\";\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL: {\n setFieldValue(\n `${fieldKeys.actions}.value.${index}`,\n nextActionAt({ schema, rule, index, value })\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT: {\n setFieldValue(\n `${fieldKeys.actions}.value.${index}`,\n nextActionRecipientAt({ schema, rule, index, value })\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.ACTION_STEP: {\n setFieldValue(\n `${fieldKeys.actions}.value.${index}.metadata.${stepKey}`,\n value\n );\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.SCOPE: {\n const key = fieldKeys.scope;\n const current = rule.scope || [];\n const has = current.some(item => (item?.value ?? item) === value);\n const next = has\n ? current.filter(item => (item?.value ?? item) !== value)\n : [...current, appendScopeItem({ schema, rule, value })];\n setFieldValue(`${key}.value`, next);\n\n return \"stay\";\n }\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD: {\n const key = fieldKeys.scope;\n setFieldValue(`${key}.value.${index}.phoneField`, value);\n\n return \"stay\";\n }\n default:\n return \"close\";\n }\n};\n\nconst continueTargetFor = ({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n configPending,\n}) => {\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE:\n return schema.actor?.enabled\n ? {\n type: BUILDER_PANEL_TYPES.ACTOR,\n data: { anchor: BUILDER_ANCHORS.TRIGGER_ACTOR },\n }\n : null;\n case BUILDER_ANCHORS.COND_FIELD:\n return {\n type: BUILDER_PANEL_TYPES.OPERATOR,\n data: { index, anchor: BUILDER_ANCHORS.COND_OP_TOGGLE },\n };\n case BUILDER_ANCHORS.COND_OP_TOGGLE: {\n const condition = conditionAt({ rule, index });\n const field = findField({ schema, value: condition.field });\n if ((field?.noValueForVerbs || []).includes(condition.verb)) return null;\n\n return {\n type: BUILDER_PANEL_TYPES.CONDITION_VALUE,\n data: { index, anchor: BUILDER_ANCHORS.COND_VALUES },\n };\n }\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL: {\n const action = actionAt({ rule, index });\n\n if (actionHasConfig({ schema, action })) {\n return {\n type: BUILDER_PANEL_TYPES.ACTION_CONFIG,\n data: { index, anchor: BUILDER_ANCHORS.ACTION_CONFIG },\n };\n }\n\n // Reached here only because the action has no config yet — its name is\n // still unresolved — so the recipient pane owes us that step afterwards.\n if (channelMetaOf({ schema, action }).needsRecipient) {\n return {\n type: BUILDER_PANEL_TYPES.RECIPIENT,\n data: {\n index,\n anchor: BUILDER_ANCHORS.ACTION_RECIPIENT,\n configPending: true,\n },\n };\n }\n\n return stepTargetAfter({ schema, rule, index });\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT: {\n // Only chain back to config when it was skipped on the way in; arriving\n // from the config pane or from the token means config is already done.\n const action = actionAt({ rule, index });\n\n return configPending && actionHasConfig({ schema, action })\n ? {\n type: BUILDER_PANEL_TYPES.ACTION_CONFIG,\n data: { index, anchor: BUILDER_ANCHORS.ACTION_CONFIG },\n }\n : stepTargetAfter({ schema, rule, index });\n }\n case BUILDER_ANCHORS.ACTION_STEP:\n return stepTargetAfter({ schema, rule, index, stepKey });\n default:\n return null;\n }\n};\n\nconst replaceAt = ({ list, index, item }) => {\n const next = [...list];\n // eslint-disable-next-line security/detect-object-injection\n next[index] = item;\n\n return next;\n};\n\nconst applyPreview = ({ rule, schema, anchor, index, value }) => {\n switch (anchor) {\n case BUILDER_ANCHORS.TRIGGER_ADD:\n case BUILDER_ANCHORS.TRIGGER_REPLACE:\n return {\n ...rule,\n triggers: Array.isArray(value)\n ? value.map(name => ({ name }))\n : nextTriggers({ schema, rule, value }),\n };\n case BUILDER_ANCHORS.TRIGGER_ACTOR:\n return { ...rule, performer: value };\n case BUILDER_ANCHORS.COND_FIELD:\n return {\n ...rule,\n conditions: replaceAt({\n list: rule.conditions,\n index,\n item: nextConditionAt({ schema, rule, index, value }),\n }),\n };\n case BUILDER_ANCHORS.COND_OP_TOGGLE:\n return {\n ...rule,\n conditions: replaceAt({\n list: rule.conditions,\n index,\n item: { ...conditionAt({ rule, index }), verb: value },\n }),\n };\n case BUILDER_ANCHORS.COND_CONNECTOR:\n return { ...rule, conditionMode: value };\n case BUILDER_ANCHORS.ACTION_ADD:\n case BUILDER_ANCHORS.ACTION_CHANNEL:\n return {\n ...rule,\n actions: replaceAt({\n list: rule.actions,\n index,\n item: nextActionAt({ schema, rule, index, value }),\n }),\n };\n case BUILDER_ANCHORS.ACTION_RECIPIENT:\n return {\n ...rule,\n actions: replaceAt({\n list: rule.actions,\n index,\n item: nextActionRecipientAt({ schema, rule, index, value }),\n }),\n };\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD:\n return {\n ...rule,\n scope: replaceAt({\n list: rule.scope,\n index,\n item: { ...scopeItemAt({ rule, index }), phoneField: value },\n }),\n };\n default:\n return rule;\n }\n};\n\nexport {\n optionValue,\n normalizeOptions,\n groupByCategory,\n descriptorFor,\n commitFor,\n continueTargetFor,\n stepTargetAfter,\n applyPreview,\n};\n","import { Fragment, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { flatten } from \"flat\";\nimport { useFormikContext } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Plus } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport ConditionRow from \"./ConditionRow\";\nimport Connector from \"./Connector\";\nimport DelayRow from \"./DelayRow\";\nimport MetaBlock from \"./MetaBlock\";\nimport ScopeBlock from \"./ScopeBlock\";\nimport ThenBlock from \"./ThenBlock\";\nimport WhenBlock from \"./WhenBlock\";\n\nimport {\n ACTION_ANCHORS,\n BUILDER_ANCHORS,\n CONDITION_ANCHORS,\n FLASH_DURATION_MS,\n} from \"../constants\";\nimport usePaneCascade from \"../hooks/usePaneCascade\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { applyPreview } from \"../Panes/utils\";\nimport {\n actionStepsOf,\n recipientOwnedFields,\n stepValueOf,\n isTriggerSatisfied,\n isRuleComplete,\n invalidScopeIndexes,\n invalidScopePhoneFieldIndexes,\n joinTypeFor,\n offeredConditionFields,\n} from \"../utils\";\n\nconst Canvas = ({ schema }) => {\n const { t } = useTranslation();\n const { openPane, closePane } = usePaneCascade(schema);\n const { errors, submitCount } = useFormikContext();\n const {\n rule,\n fieldKeys,\n setPerformer,\n setConditions,\n setDelay,\n removeCondition,\n removeAction,\n setActive,\n setScope,\n clearTriggers,\n clearConditions,\n clearActions,\n } = useRuleModel(schema);\n\n const { builderPreview, panelState } = useUtilityStore.pick();\n const displayRule = useMemo(\n () =>\n builderPreview ? applyPreview({ rule, schema, ...builderPreview }) : rule,\n [rule, schema, builderPreview]\n );\n\n const activeToken = panelState?.data || {};\n const isActive = ({ type, index }) =>\n !!panelState?.type &&\n activeToken.anchor === type &&\n activeToken.index === index;\n\n const addingAction =\n !!panelState?.type &&\n activeToken.anchor === BUILDER_ANCHORS.ACTION_ADD &&\n activeToken.index === rule.actions.length &&\n !builderPreview;\n\n const flatErrors = useMemo(() => flatten(errors || {}), [errors]);\n const [flashSeq, setFlashSeq] = useState(0);\n const lastSubmitCount = useRef(submitCount);\n useEffect(() => {\n if (submitCount <= lastSubmitCount.current) return undefined;\n lastSubmitCount.current = submitCount;\n if (\n isEmpty(flatErrors) &&\n isRuleComplete({ rule, schema }) &&\n isEmpty(invalidScopeIndexes({ rule, schema })) &&\n isEmpty(invalidScopePhoneFieldIndexes({ rule, schema }))\n ) {\n return undefined;\n }\n\n setFlashSeq(submitCount);\n const timer = setTimeout(() => setFlashSeq(0), FLASH_DURATION_MS);\n\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [submitCount]);\n\n const hasErrorAt = ({ prefix, exclude = [] }) =>\n Object.keys(flatErrors).some(\n key =>\n (key === prefix || key.startsWith(`${prefix}.`)) &&\n !exclude.some(\n sub =>\n key === `${prefix}.${sub}` || key.startsWith(`${prefix}.${sub}.`)\n )\n );\n\n const matchesInvalid = ({ type, index, stepKey }) => {\n const conditionMeta = `${fieldKeys.conditions}.value.${index}.metadata`;\n const actionMeta = `${fieldKeys.actions}.value.${index}.metadata`;\n // eslint-disable-next-line security/detect-object-injection\n const actionItem = rule.actions[index] || {};\n const steps = actionStepsOf({ schema, action: actionItem });\n const stepKeys = steps.map(step => step.key);\n\n const recipientFields = recipientOwnedFields({\n schema,\n action: actionItem,\n name: actionMeta,\n });\n switch (type) {\n case BUILDER_ANCHORS.TRIGGER_ACTOR: {\n const actorKey = schema.actor?.fieldKey;\n\n return !!actorKey && hasErrorAt({ prefix: `${actorKey}.value` });\n }\n case BUILDER_ANCHORS.TRIGGER_LEAD_TIME:\n return hasErrorAt({ prefix: `${fieldKeys.leadTime}.value` });\n case BUILDER_ANCHORS.COND_FIELD:\n return hasErrorAt({\n prefix: `${fieldKeys.conditions}.value.${index}.field`,\n });\n case BUILDER_ANCHORS.COND_OP_TOGGLE: {\n // eslint-disable-next-line security/detect-object-injection\n const condition = rule.conditions[index] || {};\n\n return !!condition.field && !condition.verb;\n }\n case BUILDER_ANCHORS.COND_VALUES:\n return hasErrorAt({ prefix: conditionMeta });\n case BUILDER_ANCHORS.ACTION_CONFIG:\n return hasErrorAt({\n prefix: actionMeta,\n exclude: [...recipientFields, ...stepKeys],\n });\n case BUILDER_ANCHORS.ACTION_STEP: {\n const step = steps.find(item => item.key === stepKey);\n\n return (\n hasErrorAt({ prefix: `${actionMeta}.${stepKey}` }) ||\n (!!step?.required && !stepValueOf({ action: actionItem, step }))\n );\n }\n case BUILDER_ANCHORS.ACTION_RECIPIENT:\n return (\n hasErrorAt({\n prefix: `${fieldKeys.actions}.value.${index}.name`,\n }) ||\n recipientFields.some(field =>\n hasErrorAt({ prefix: `${actionMeta}.${field}` })\n )\n );\n case BUILDER_ANCHORS.ACTION_ADD:\n return !rule.actions.some(item => item?.channel || item?.name);\n case BUILDER_ANCHORS.RULE_DELAY:\n return hasErrorAt({ prefix: `${fieldKeys.delay}.value` });\n case BUILDER_ANCHORS.SCOPE:\n return invalidScopeIndexes({ rule, schema }).includes(index);\n case BUILDER_ANCHORS.SCOPE_PHONE_FIELD:\n return invalidScopePhoneFieldIndexes({ rule, schema }).includes(index);\n case BUILDER_ANCHORS.META_NAME:\n return hasErrorAt({ prefix: `${fieldKeys.name}.value` });\n default:\n return false;\n }\n };\n\n // Returns the submit generation, not a boolean, so consumers can replay the\n // flash animation when the same token is still invalid on a repeat submit.\n const isInvalid = args => (flashSeq && matchesInvalid(args) ? flashSeq : 0);\n\n const closePaneIfTargeting = ({ anchors, index }) => {\n if (\n panelState?.type &&\n anchors.includes(activeToken.anchor) &&\n activeToken.index === index\n ) {\n closePane();\n }\n };\n\n const handleRemoveCondition = index => {\n closePaneIfTargeting({ anchors: CONDITION_ANCHORS, index });\n removeCondition(index);\n };\n\n const handleRemoveAction = index => {\n closePaneIfTargeting({ anchors: ACTION_ANCHORS, index });\n removeAction(index);\n const remaining = rule.actions.filter((_, i) => i !== index);\n if (!remaining.some(action => action?.channel || action?.name)) {\n setScope([]);\n }\n };\n\n const handleRemoveDelay = () => {\n closePaneIfTargeting({\n anchors: [BUILDER_ANCHORS.RULE_DELAY],\n index: undefined,\n });\n setDelay(null);\n };\n\n // An actor with a single choice is not a choice; leaving it unset only makes\n // the user open a one-option pane to say the obvious.\n const actorOptions = schema?.actor?.enabled ? schema.actor.options || [] : [];\n const soleActorOption =\n actorOptions.length === 1\n ? (actorOptions[0].value ?? actorOptions[0].id ?? actorOptions[0])\n : null;\n\n const isTriggerSet = isTriggerSatisfied({ rule, schema });\n const hasAction = rule.actions.some(\n action => action?.channel || action?.name\n );\n const isScopeEnabled = schema?.scope?.enabled && isTriggerSet && hasAction;\n const handleRemoveScope = index => {\n closePaneIfTargeting({\n anchors: [BUILDER_ANCHORS.SCOPE_PHONE_FIELD],\n index,\n });\n setScope((rule.scope || []).filter((_, i) => i !== index));\n };\n const conditionFields = offeredConditionFields({ schema, rule });\n const canAddCondition = isNotEmpty(conditionFields);\n const canRemoveCondition =\n schema?.conditions?.allowEmpty !== false ||\n displayRule.conditions.length > 1;\n const leadTimeAppliesTo = schema?.triggers?.leadTime?.appliesTo || [];\n const hasLeadTimeTrigger = rule.triggers.some(trigger =>\n leadTimeAppliesTo.includes(trigger.name)\n );\n const isDelayEnabled = schema?.delay?.enabled && !hasLeadTimeTrigger;\n\n useEffect(() => {\n if (soleActorOption && !rule.performer) setPerformer(soleActorOption);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [soleActorOption, rule.performer]);\n\n useEffect(() => {\n if (hasLeadTimeTrigger && rule.delay) setDelay(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [hasLeadTimeTrigger, rule.delay]);\n\n const handleAddCondition = () => {\n if (isEmpty(conditionFields)) return;\n\n setConditions([\n ...rule.conditions,\n { joinType: joinTypeFor(rule.conditionMode), metadata: {} },\n ]);\n\n openPane({\n type: BUILDER_ANCHORS.COND_FIELD,\n index: rule.conditions.length,\n });\n };\n\n const handleClearTrigger = () => {\n clearTriggers();\n // Hosts without an actor pane can never re-set it, and null fails its validation.\n if (schema.actor?.enabled) setPerformer(soleActorOption);\n clearConditions();\n setDelay(null);\n clearActions();\n setScope([]);\n closePane();\n };\n\n const handleAddAction = () => {\n openPane({ type: BUILDER_ANCHORS.ACTION_ADD, index: rule.actions.length });\n };\n\n const slotCtx = { rule, schema, openPane };\n const renderSlot = name =>\n // eslint-disable-next-line security/detect-object-injection\n schema?.slots?.[name]?.(slotCtx) ?? null;\n\n return (\n <div className=\"neeto-rules-builder nrb-atoms\">\n <div className=\"mb-canvas neeto-rules-main-card\">\n {renderSlot(\"beforeWhen\")}\n <WhenBlock\n {...{ isActive, isInvalid, schema }}\n rule={displayRule}\n onClearTrigger={isTriggerSet && handleClearTrigger}\n onToken={openPane}\n onAddCondition={\n canAddCondition &&\n isEmpty(displayRule.conditions) &&\n handleAddCondition\n }\n />\n {renderSlot(\"afterWhen\")}\n {displayRule.conditions.map((condition, index) => (\n <ConditionRow\n {...{ condition, index, isActive, isInvalid, schema }}\n key={condition.id ?? index}\n rule={displayRule}\n onToken={openPane}\n onAddCondition={\n canAddCondition &&\n index === displayRule.conditions.length - 1 &&\n handleAddCondition\n }\n onRemove={\n canRemoveCondition && (() => handleRemoveCondition(index))\n }\n />\n ))}\n {renderSlot(\"afterConditions\")}\n <Connector active={isTriggerSet} />\n {isDelayEnabled &&\n isTriggerSet &&\n (rule.delay ? (\n <Fragment>\n <DelayRow\n {...{ isActive, isInvalid, rule }}\n onRemove={handleRemoveDelay}\n onToken={openPane}\n />\n <Connector active />\n </Fragment>\n ) : (\n <div className=\"mb-add-row\">\n <Button\n data-testid=\"rule-delay-add\"\n icon={Plus}\n iconPosition=\"left\"\n label={t(\"neetoRules.common.addDelay\")}\n size=\"sm\"\n variant=\"secondary\"\n onClick={() => openPane({ type: BUILDER_ANCHORS.RULE_DELAY })}\n />\n </div>\n ))}\n <ThenBlock\n {...{ isActive, isInvalid, schema }}\n adding={addingAction}\n rule={displayRule}\n onAddAction={handleAddAction}\n onRemoveAction={handleRemoveAction}\n onToken={openPane}\n />\n {renderSlot(\"afterActions\")}\n {isScopeEnabled && (\n <Fragment>\n <Connector active />\n <ScopeBlock\n {...{ isActive, isInvalid, schema }}\n rule={displayRule}\n onRemoveScope={handleRemoveScope}\n onToken={openPane}\n />\n </Fragment>\n )}\n <Connector active />\n <MetaBlock\n {...{ rule }}\n isInvalid={isInvalid({ type: BUILDER_ANCHORS.META_NAME })}\n showName={schema?.meta?.showName ?? true}\n onEditName={() => openPane({ type: BUILDER_ANCHORS.META_NAME })}\n onToggleActive={event => setActive(event.target.checked)}\n />\n </div>\n </div>\n );\n};\n\nexport default Canvas;\n","export const ACTION_CONFIG_TYPES = {\n emailChannel: \"emailChannel\",\n sendToApi: \"sendToApi\",\n multiSelect: \"multiSelect\",\n dropdown: \"dropdown\",\n note: \"note\",\n list: \"list\",\n textarea: \"textarea\",\n number: \"number\",\n text: \"text\",\n regex: \"regex\",\n decimal: \"decimal\",\n date: \"date\",\n};\n\nexport const CONDITION_VALUE_TYPES = {\n multiSelect: \"multi-select\",\n multiSelectCreate: \"multi-select-create\",\n number: \"number\",\n email: \"email\",\n date: \"date\",\n time: \"time\",\n};\n","import { useCallback, useRef } from \"react\";\n\nimport { Input, Select } from \"@bigbinary/neeto-atoms\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { findBy, isNotEmpty, isPresent } from \"neetocist\";\nimport { F } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport EditorAction from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/EditorAction\";\nimport SaveAsTemplate from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/SaveAsTemplate\";\nimport SelectTemplateField from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/SelectTemplateField\";\nimport { useHasFieldChanged } from \"../../../NeetoRulesForm/Element/Actions/Fields/hooks/useHasFieldChanged\";\nimport { useResetSaveAsTemplateOnHide } from \"../../../NeetoRulesForm/Element/Actions/Fields/hooks/useResetSaveAsTemplateOnHide\";\nimport {\n areValuesEqual,\n setEditorContent,\n} from \"../../../NeetoRulesForm/Element/Actions/Fields/utils\";\n\nconst EmailChannelFields = ({\n name,\n option,\n action,\n options,\n hasRecipientField,\n hint,\n}) => {\n const { t } = useTranslation();\n const { values, errors, touched, setFieldValue, setFieldTouched } =\n useFormikContext();\n const editorRef = useRef(null);\n\n const { isSaveAsTemplateEnabled } = useUtilityStore.pick();\n const hasFieldChanged = useHasFieldChanged(name);\n\n const valuePath = `${name}.value`;\n const subjectPath = `${name}.subject`;\n const bodyPath = `${name}.body`;\n const templates = option?.templates;\n // Hosts whose email action picks its recipient from a list keep that\n // choice in the same pane as the message.\n const hasRecipientList = isNotEmpty(options) && !hasRecipientField;\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n const shouldShowSaveAsTemplate = useCallback(\n ({ templateId, subject, body } = {}) => {\n const template = findBy({ id: templateId }, templates);\n const hasContent = isPresent(subject) || isPresent(body);\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.subject, subject) && template?.body === body\n );\n\n return hasContent && hasFieldChanged && isContentDifferentFromTemplate;\n },\n [templates, hasFieldChanged]\n );\n\n const isSaveAsTemplateVisible = useResetSaveAsTemplateOnHide(\n name,\n isSaveAsTemplateEnabled ? shouldShowSaveAsTemplate : F\n );\n\n // Formik validates each write on a stale snapshot, so write it all at once.\n const handleTemplateChange = template => {\n setFieldValue(name, {\n ...getIn(values, name),\n templateId: template.id,\n body: template.body,\n ...(option?.hideSubject ? {} : { subject: template.subject }),\n });\n setEditorContent(editorRef, template.body);\n };\n\n return (\n <div className=\"flex flex-col gap-4\">\n {hasRecipientList && (\n <Select\n {...{ options }}\n required\n error={fieldError(valuePath)}\n placeholder={option?.valuePlaceholder}\n size=\"large\"\n value={getIn(values, valuePath) ?? undefined}\n label={\n option?.recipientLabel || t(\"neetoRules.builder.config.recipient\")\n }\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={value => setFieldValue(valuePath, value)}\n />\n )}\n {isPresent(templates) && (\n <SelectTemplateField\n {...{ templates }}\n selectedField={option}\n onChange={handleTemplateChange}\n />\n )}\n {!option?.hideSubject && (\n <Input\n required\n error={fieldError(subjectPath)}\n label={t(\"neetoRules.builder.config.subject\")}\n placeholder={t(\"neetoRules.builder.config.subjectPlaceholder\")}\n size=\"large\"\n value={getIn(values, subjectPath) ?? \"\"}\n onBlur={() => setFieldTouched(subjectPath, true)}\n onChange={event => setFieldValue(subjectPath, event.target.value)}\n />\n )}\n <EditorAction\n {...{ editorRef }}\n required\n label={t(\"neetoRules.builder.config.body\")}\n name={bodyPath}\n placeholder={t(\"neetoRules.builder.config.bodyPlaceholder\")}\n value={action?.metadata?.body}\n variables={option?.variables}\n />\n {hint}\n {isSaveAsTemplateVisible && <SaveAsTemplate {...{ name }} />}\n </div>\n );\n};\n\nexport default EmailChannelFields;\n","import {\n Checkbox,\n DatePicker,\n Input,\n RadioGroup,\n Textarea,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { isNot } from \"neetocist\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DATE_FORMAT } from \"src/constants/dateTime\";\n\nimport { ACTION_CONFIG_TYPES } from \"./constants\";\nimport EmailChannelFields from \"./EmailChannelFields\";\n\nimport ApiFields from \"../../../NeetoRulesForm/Element/Actions/Fields/ApiFields\";\nimport EditorAction from \"../../../NeetoRulesForm/Element/Actions/Fields/Common/EditorAction\";\nimport ListField from \"../../../NeetoRulesForm/Element/Actions/Fields/ListField\";\nimport { normalizeOptions } from \"../utils\";\n\nconst restoreTokens = text =>\n text ? text.replace(/\\[\\[/g, \"{{\").replace(/\\]\\]/g, \"}}\") : text;\n\nconst ActionConfigFields = ({\n name,\n option,\n action,\n searchTerm = \"\",\n hasRecipientField = false,\n}) => {\n const { t } = useTranslation();\n const { values, setFieldValue, setFieldTouched, errors, touched } =\n useFormikContext();\n const type = option?.type;\n const options = normalizeOptions(option?.dropdownOptions);\n const valuePath = `${name}.value`;\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n const term = searchTerm.trim().toLowerCase();\n const filterOptions = list =>\n term\n ? list.filter(item => String(item.label).toLowerCase().includes(term))\n : list;\n\n const hint = restoreTokens(option?.dynamicValuesHint);\n const hintBlock = hint ? (\n <Typography color=\"muted\" variant=\"body3\">\n {hint}\n </Typography>\n ) : null;\n\n const noOptionsMessage = () => {\n const noun = option?.valueNounPlural || option?.valueNoun;\n\n return (\n <Typography color=\"muted\" variant=\"body2\">\n {noun\n ? t(\"neetoRules.builder.config.noOptionsFor\", { field: noun })\n : t(\"neetoRules.builder.config.noOptions\")}\n </Typography>\n );\n };\n\n const noMatches = (\n <div className=\"mb-pane-empty\" data-testid=\"pane-no-matches\">\n {t(\"neetoRules.builder.noMatches\")}\n </div>\n );\n\n if (type === ACTION_CONFIG_TYPES.sendToApi) {\n return <ApiFields {...{ name }} selectedField={option} />;\n }\n\n if (type === ACTION_CONFIG_TYPES.emailChannel) {\n return (\n <EmailChannelFields\n {...{ action, hasRecipientField, name, option, options }}\n hint={hintBlock}\n />\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.multiSelect) {\n if (isEmpty(options)) return noOptionsMessage();\n\n const current = getIn(values, valuePath) || [];\n const filtered = filterOptions(options);\n if (term && isEmpty(filtered)) return noMatches;\n\n const toggle = value => {\n setFieldTouched(valuePath, true);\n setFieldValue(\n valuePath,\n current.includes(value)\n ? current.filter(isNot(value))\n : [...current, value]\n );\n };\n\n return (\n <div className=\"mb-pane-list flex flex-col\">\n {filtered.map(item => (\n <Checkbox\n checked={current.includes(item.value)}\n key={item.value}\n label={item.label}\n onCheckedChange={() => toggle(item.value)}\n />\n ))}\n {fieldError(valuePath) && (\n <Typography color=\"destructive\" variant=\"body3\">\n {fieldError(valuePath)}\n </Typography>\n )}\n </div>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.dropdown) {\n if (isEmpty(options)) return noOptionsMessage();\n\n const current = getIn(values, valuePath);\n const filtered = filterOptions(options);\n if (term && isEmpty(filtered)) return noMatches;\n\n return (\n <RadioGroup\n error={fieldError(valuePath)}\n orientation=\"vertical\"\n value={String(current ?? \"\")}\n onValueChange={value => {\n const picked = options.find(item => String(item.value) === value);\n setFieldValue(valuePath, picked ? picked.value : value);\n }}\n >\n {filtered.map(item => (\n <RadioGroup.Item\n key={item.value}\n label={item.label}\n value={String(item.value)}\n />\n ))}\n </RadioGroup>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.list) {\n return (\n <div className=\"flex flex-col gap-2\">\n <ListField name={valuePath} />\n {hintBlock}\n </div>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.note) {\n return (\n <div className=\"flex flex-col gap-2\">\n <EditorAction\n required\n label={t(\"neetoRules.builder.config.note\")}\n name={valuePath}\n placeholder={t(\"neetoRules.builder.config.bodyPlaceholder\")}\n value={action?.metadata?.value}\n variables={option?.variables}\n />\n {hintBlock}\n </div>\n );\n }\n\n if (\n type === ACTION_CONFIG_TYPES.textarea ||\n type === ACTION_CONFIG_TYPES.number\n ) {\n return type === ACTION_CONFIG_TYPES.number ? (\n <Input\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.value\")}\n size=\"large\"\n type=\"number\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event => setFieldValue(valuePath, event.target.value)}\n />\n ) : (\n <Textarea\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.message\")}\n rows={5}\n size=\"large\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event => setFieldValue(valuePath, event.target.value)}\n />\n );\n }\n\n if (\n type === ACTION_CONFIG_TYPES.text ||\n type === ACTION_CONFIG_TYPES.regex ||\n type === ACTION_CONFIG_TYPES.decimal\n ) {\n return (\n <div className=\"flex flex-col gap-2\">\n <Input\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.value\")}\n placeholder={option?.valuePlaceholder}\n size=\"large\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event => setFieldValue(valuePath, event.target.value)}\n />\n {hintBlock}\n </div>\n );\n }\n\n if (type === ACTION_CONFIG_TYPES.date) {\n return (\n <div className=\"flex flex-col gap-2\">\n <DatePicker\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.builder.config.value\")}\n type=\"date\"\n value={\n getIn(values, valuePath)\n ? dayjs(getIn(values, valuePath))\n : undefined\n }\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={date =>\n setFieldValue(\n valuePath,\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n date ? dayjs(date).format(DATE_FORMAT) : \"\"\n )\n }\n />\n {hintBlock}\n </div>\n );\n }\n\n return (\n <Typography variant=\"body2\">{t(\"neetoRules.builder.noConfig\")}</Typography>\n );\n};\n\nexport default ActionConfigFields;\n","import { useEffect, useRef } from \"react\";\n\nimport { flatten } from \"flat\";\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nconst keysUnder = ({ obj, prefix, exclude = [] }) =>\n Object.keys(flatten(obj || {})).filter(\n key =>\n (key === prefix || key.startsWith(`${prefix}.`)) &&\n !exclude.some(\n sub => key === `${prefix}.${sub}` || key.startsWith(`${prefix}.${sub}.`)\n )\n );\n\nconst usePaneValidation = prefix => {\n const { validateForm, setFieldTouched, errors } = useFormikContext();\n const errorsRef = useRef(errors);\n errorsRef.current = errors;\n\n useEffect(() => {\n keysUnder({ obj: errorsRef.current, prefix }).forEach(key =>\n setFieldTouched(key, false, false)\n );\n\n return () => {\n keysUnder({ obj: errorsRef.current, prefix }).forEach(key =>\n setFieldTouched(key, true, false)\n );\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [prefix]);\n\n const validate = async (exclude = []) => {\n const nextErrors = await validateForm();\n const offending = keysUnder({ obj: nextErrors, prefix, exclude });\n offending.forEach(key => setFieldTouched(key, true, false));\n\n return isEmpty(offending);\n };\n\n return { validate };\n};\n\nexport default usePaneValidation;\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Button, Input, Typography } from \"neetoatoms\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Search } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\n\nimport ActionConfigFields from \"./Fields/ActionConfigFields\";\nimport { normalizeOptions, stepTargetAfter } from \"./utils\";\n\nimport ErrorCallout from \"../../NeetoRulesForm/Element/Actions/ErrorCallout\";\nimport SmsFields from \"../../NeetoRulesForm/Element/Actions/Fields/SmsFields\";\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport {\n BUILDER_ANCHORS,\n BUILDER_PANEL_TYPES,\n CONFIG_FOCUSABLE_SELECTOR,\n PANE_SEARCH_THRESHOLD,\n SMS_TYPES,\n} from \"../constants\";\nimport usePaneCascade from \"../hooks/usePaneCascade\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { actionParts, recipientOwnedFields } from \"../utils\";\n\nconst ConfigPane = ({ schema, index }) => {\n const { t } = useTranslation();\n const { rule, fieldKeys } = useRuleModel(schema);\n const { setFieldValue } = useFormikContext();\n const { openType, closePane } = usePaneCascade(schema);\n const bodyRef = useRef(null);\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n // eslint-disable-next-line security/detect-object-injection\n const action = rule.actions[index] || {};\n const base = `${fieldKeys.actions}.value.${index}`;\n const {\n option,\n channel,\n verb,\n mediumLabel,\n needsRecipient,\n configTitle,\n configSubtitle,\n steps,\n } = actionParts({ schema, action });\n const name = `${base}.metadata`;\n\n const flatOption =\n schema.actions?.optionForName?.(action.name) ||\n schema.actions?.optionForChannel?.(channel) ||\n option;\n\n // When the chosen recipient declares its own field, the recipient pane\n // renders it; showing the same picker here too would just duplicate it.\n const recipientValue =\n action.recipient ?? schema.actions?.actionForName?.(action.name)?.recipient;\n\n const hasRecipientField = !!(schema.actions?.recipients || [])\n .concat((schema.actions?.options || []).flatMap(o => o.recipients || []))\n .find(item => (item.value ?? item.id) === recipientValue)?.field;\n\n const isSms = SMS_TYPES.includes(flatOption?.type);\n\n const disabledReason = flatOption?.isDisabled && flatOption.disabledReason;\n const hostRenderConfig =\n flatOption?.renderConfig ||\n flatOption?.component ||\n schema.actions?.renderConfig;\n\n const showSearch =\n normalizeOptions(flatOption?.dropdownOptions).length >=\n PANE_SEARCH_THRESHOLD;\n\n const shouldAdvanceToRecipient = !!needsRecipient;\n\n const { validate } = usePaneValidation(name);\n\n const channelRepName = schema.actions?.optionForChannel?.(channel)?.value;\n const unnamedOnOpen = useRef(!action.name);\n useEffect(() => {\n if (!unnamedOnOpen.current || !channelRepName) return undefined;\n setFieldValue(`${base}.name`, channelRepName);\n\n return () => setFieldValue(`${base}.name`, \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [base, channelRepName]);\n\n useEffect(() => {\n if (isSms) return undefined;\n\n let frame;\n let attempts = 0;\n const focusFirst = () => {\n const first = bodyRef.current?.querySelector(CONFIG_FOCUSABLE_SELECTOR);\n if (first) {\n first.focus();\n } else if (attempts++ < 20) {\n frame = requestAnimationFrame(focusFirst);\n }\n };\n frame = requestAnimationFrame(focusFirst);\n\n return () => cancelAnimationFrame(frame);\n }, [isSms, action.name]);\n\n const title =\n configTitle ||\n (mediumLabel &&\n t(\"neetoRules.builder.setUpMediumLabel\", {\n verb: verb || t(\"neetoRules.builder.setUp\"),\n mediumLabel,\n })) ||\n option?.label ||\n t(\"neetoRules.builder.setUpAction\");\n\n const handleContinue = async () => {\n // A pane only answers for what it renders: the recipient pane owns its\n // storage fields and each step owns its key, so neither blocks Continue.\n const owned = [\n ...recipientOwnedFields({ schema, action, name }),\n ...steps.map(step => step.key),\n ];\n if (!(await validate(owned))) return;\n\n const next = shouldAdvanceToRecipient\n ? {\n type: BUILDER_PANEL_TYPES.RECIPIENT,\n data: { index, anchor: BUILDER_ANCHORS.ACTION_RECIPIENT },\n }\n : stepTargetAfter({ schema, rule, index });\n\n if (next) openType(next);\n else closePane();\n };\n\n useHotkeys(SHORTCUTS.continue.sequence, handleContinue, { mode: \"global\" });\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {title}\n </Typography>\n {configSubtitle && (\n <Typography color=\"muted\" variant=\"body2\">\n {configSubtitle}\n </Typography>\n )}\n {showSearch && (\n <div className=\"mb-pane-search\">\n <Input\n dataTestId=\"pane-search\"\n placeholder={t(\"neetoRules.builder.searchPlaceholder\")}\n prefix={<Search />}\n size=\"large\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n )}\n </div>\n </Panel.Header>\n <Panel.Body>\n <div ref={bodyRef}>\n {disabledReason && (\n <div className=\"mb-4\">\n <ErrorCallout\n message={disabledReason}\n selectedField={flatOption}\n />\n </div>\n )}\n {isSms ? (\n <SmsFields\n {...{ action, index, name }}\n shouldAutoFocus\n hint={t(\"neetoRules.builder.config.smsSegmentHint\")}\n selectedField={flatOption}\n showPhoneNumberInput={false}\n />\n ) : (\n (hostRenderConfig?.({\n name,\n action,\n option: flatOption,\n searchTerm,\n }) ?? (\n <ActionConfigFields\n {...{ action, hasRecipientField, name, searchTerm }}\n option={flatOption}\n />\n ))\n )}\n </div>\n </Panel.Body>\n <Panel.Footer>\n <Button\n data-testid=\"continue-button\"\n label={t(\"neetoRules.buttons.continue\")}\n size=\"lg\"\n onClick={handleContinue}\n />\n </Panel.Footer>\n </>\n );\n};\n\nexport default ConfigPane;\n","import { useEffect, useRef } from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { Typography } from \"neetoatoms\";\nimport { Input, Select } from \"neetoatoms/formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n MAX_DELAY_VALUE,\n MIN_DELAY_VALUE,\n} from \"v2/components/NeetoRulesForm/constants\";\n\nimport { normalizeOptions } from \"./utils\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport { DEFAULT_DELAY_UNITS, DEFAULT_DELAY_VALUE } from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst DelayPane = ({ schema }) => {\n const { t } = useTranslation();\n const { fieldKeys } = useRuleModel(schema);\n const { setFieldValue, setFieldTouched, getFieldMeta } = useFormikContext();\n const bodyRef = useRef(null);\n\n const name = fieldKeys.delay;\n const [{ value }] = useField(`${name}.value`);\n\n const units = normalizeOptions(schema.delay?.units);\n const unitOptions = isNotEmpty(units) ? units : DEFAULT_DELAY_UNITS;\n\n usePaneValidation(`${name}.value`);\n\n useEffect(() => {\n if (value?.value === undefined) return;\n\n if (getFieldMeta(`${name}.value.value`).touched) return;\n setFieldTouched(`${name}.value.value`, true, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value?.value]);\n\n useEffect(() => {\n if (isEmpty(value || {})) {\n setFieldValue(`${name}.value`, {\n value: DEFAULT_DELAY_VALUE,\n unit: unitOptions[0]?.value ?? DEFAULT_DELAY_UNITS[0].value,\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const first = bodyRef.current?.querySelector(\"input\");\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n if (first) setTimeout(() => first.focus(), 0);\n }, []);\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex flex-col gap-y-1\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.common.addDelay\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoRules.helpText.addDelay\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <div className=\"flex flex-col gap-y-1.5\" ref={bodyRef}>\n <Typography variant=\"body2\" weight=\"medium\">\n {t(\"neetoRules.builder.waitFor\")}\n </Typography>\n <div className=\"flex items-start gap-x-2\">\n {/* An unlabelled Input renders its error as a sibling of the field. */}\n <div className=\"w-44\">\n <Input\n dataTestId=\"delay-value\"\n max={MAX_DELAY_VALUE}\n min={MIN_DELAY_VALUE}\n name={`${name}.value.value`}\n placeholder={t(\"neetoRules.placeholders.enterDelay\")}\n size=\"large\"\n type=\"number\"\n />\n </div>\n <Select\n dataTestId=\"delay-unit\"\n defaultValue={value?.unit}\n name={`${name}.value.unit`}\n options={unitOptions}\n size=\"large\"\n onChange={nextUnit =>\n setFieldValue(`${name}.value.unit`, nextUnit)\n }\n />\n </div>\n </div>\n </Panel.Body>\n </>\n );\n};\n\nexport default DelayPane;\n","import { isNil } from \"ramda\";\n\nexport const toNumber = value =>\n value === \"\" || isNil(value) ? null : Number(value);\n\nexport const clamp = ({ value, min, max }) => {\n let next = value;\n if (!isNil(min)) next = Math.max(min, next);\n\n if (!isNil(max)) next = Math.min(max, next);\n\n return next;\n};\n\nexport const asText = value =>\n value === \"\" || isNil(value) ? \"\" : String(value);\n","import { useState } from \"react\";\n\nimport { Input } from \"neetoatoms\";\nimport { Up, Down } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { toNumber, clamp, asText } from \"./utils\";\n\nimport { SKIP_TAB_INDEX, STEPPER_DELTA, STEPPER_MIN_VALUE } from \"../constants\";\n\nconst NumberStepper = ({\n value,\n onChange,\n dataTestid,\n label,\n min = STEPPER_MIN_VALUE,\n max,\n required,\n error,\n}) => {\n const { t } = useTranslation();\n const [draft, setDraft] = useState(null);\n\n const display = draft ?? asText(value);\n\n const commit = raw => {\n setDraft(raw);\n onChange(raw === \"\" ? (min ?? 0) : clamp({ value: Number(raw), min, max }));\n };\n\n const step = delta => {\n setDraft(null);\n const base = Number.isFinite(toNumber(value))\n ? toNumber(value)\n : (min ?? 0);\n onChange(clamp({ value: base + delta, min, max }));\n };\n\n return (\n <div className=\"mb-stepper\">\n <Input\n {...{ error, label, min, required }}\n autoFocus\n dataTestId={dataTestid}\n type=\"number\"\n value={display}\n suffix={\n <div className=\"mb-stepper-controls\">\n <button\n aria-label={t(\"neetoRules.builder.aria.increase\")}\n className=\"mb-stepper-btn\"\n data-testid=\"stepper-increase\"\n tabIndex={SKIP_TAB_INDEX}\n type=\"button\"\n onClick={() => step(STEPPER_DELTA.INCREMENT)}\n >\n <Up />\n </button>\n <button\n aria-label={t(\"neetoRules.builder.aria.decrease\")}\n className=\"mb-stepper-btn\"\n data-testid=\"stepper-decrease\"\n tabIndex={SKIP_TAB_INDEX}\n type=\"button\"\n onClick={() => step(STEPPER_DELTA.DECREMENT)}\n >\n <Down />\n </button>\n </div>\n }\n onBlur={() => setDraft(null)}\n onChange={event => commit(event.target.value)}\n onFocus={event => event.target.select()}\n />\n </div>\n );\n};\n\nexport default NumberStepper;\n","import { useEffect } from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { Select, Typography } from \"neetoatoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport NumberStepper from \"../Common/NumberStepper\";\nimport { LEAD_TIME_UNITS } from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { minutesToParts, partsToMinutes } from \"../utils\";\n\nconst LeadTimePane = ({ schema }) => {\n const { t } = useTranslation();\n const { setFieldValue, setFieldTouched, getFieldMeta } = useFormikContext();\n const { rule, fieldKeys } = useRuleModel(schema);\n\n const { value: amount, unit } = minutesToParts(rule.leadTime);\n const path = `${fieldKeys.leadTime}.value`;\n const [, { error, touched }] = useField(path);\n const update = ({ value, unit: nextUnit }) =>\n setFieldValue(path, partsToMinutes({ value, unit: nextUnit }));\n\n usePaneValidation(path);\n\n useEffect(() => {\n if (rule.leadTime === undefined) return;\n\n if (getFieldMeta(path).touched) return;\n setFieldTouched(path, true, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rule.leadTime]);\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex flex-col gap-y-1\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.builder.leadTimeTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoRules.builder.leadTimeSubtitle\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <div className=\"flex flex-col gap-y-1.5\">\n <Typography variant=\"body2\" weight=\"medium\">\n {t(\"neetoRules.builder.before\")}\n </Typography>\n <div className=\"flex items-start gap-x-3\">\n <div className=\"flex-1\">\n <NumberStepper\n dataTestid=\"lead-time\"\n error={touched ? error : \"\"}\n value={amount}\n onChange={value =>\n update({ value: value === \"\" ? 0 : value, unit })\n }\n />\n </div>\n <div className=\"w-32 shrink-0\">\n <Select\n dataTestId=\"lead-time-unit\"\n isSearchable={false}\n options={LEAD_TIME_UNITS}\n value={unit}\n onChange={nextUnit => update({ value: amount, unit: nextUnit })}\n />\n </div>\n </div>\n </div>\n </Panel.Body>\n </>\n );\n};\n\nexport default LeadTimePane;\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst NamePane = ({ schema }) => {\n const { t } = useTranslation();\n const { fieldKeys } = useRuleModel(schema);\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex flex-col gap-y-1\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.builder.automationName\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {t(\"neetoRules.builder.nameSubtitle\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <Input\n autoFocus\n required\n label={t(\"neetoRules.common.name\")}\n name={`${fieldKeys.name}.value`}\n placeholder={t(\"neetoRules.builder.nameYourAutomation\")}\n size=\"large\"\n />\n </Panel.Body>\n </>\n );\n};\n\nexport default NamePane;\n","import {\n Fragment,\n isValidElement,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport {\n Button,\n Checkbox,\n Input,\n Popover,\n RadioGroup,\n Tooltip,\n Typography,\n} from \"neetoatoms\";\nimport { isNot } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Info, Search } from \"neetoicons\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SHORTCUTS } from \"src/constants/keyboardShortcuts\";\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport {\n descriptorFor,\n commitFor,\n continueTargetFor,\n groupByCategory,\n} from \"./utils\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport { PANE_SEARCH_THRESHOLD } from \"../constants\";\nimport usePaneCascade from \"../hooks/usePaneCascade\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst OptionsPane = ({\n schema,\n anchor,\n index,\n stepKey,\n belowContent = null,\n configPending = false,\n validate = null,\n}) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n const { rule, fieldKeys, setTriggers, setPerformer, setConditionMode } =\n useRuleModel(schema);\n const { openType, closePane } = usePaneCascade(schema);\n const { setBuilderPreview } = useUtilityStore.pick();\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n const searchRef = useRef(null);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => () => setBuilderPreview(null), []);\n\n useEffect(() => {\n searchRef.current?.querySelector(\"input\")?.focus();\n }, []);\n\n const { title, subtitle, multi, options, selectedValues, cascade } = useMemo(\n () => descriptorFor({ anchor, schema, rule, index, stepKey }),\n [anchor, schema, rule, index, stepKey]\n );\n\n const helpers = {\n setTriggers,\n setPerformer,\n setConditionMode,\n setFieldValue,\n fieldKeys,\n };\n\n const showSearch =\n schema?.searchable !== false && options.length >= PANE_SEARCH_THRESHOLD;\n const term = searchTerm.trim().toLowerCase();\n const filtered = useMemo(\n () =>\n term\n ? options.filter(option => option.label.toLowerCase().includes(term))\n : options,\n [options, term]\n );\n const groups = useMemo(() => groupByCategory(filtered), [filtered]);\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n const isSelected = value => selectedValues.includes(value);\n\n const handleSelect = value => {\n setBuilderPreview(null);\n const result = commitFor({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n value,\n helpers,\n });\n if (result === \"close\") closePane();\n };\n\n const multiCandidate = optionValue =>\n selectedValues.includes(optionValue)\n ? selectedValues.filter(isNot(optionValue))\n : [...selectedValues.filter(Boolean), optionValue];\n\n const previewHandlers = optionValue => {\n const value = multi ? multiCandidate(optionValue) : optionValue;\n\n return {\n onMouseEnter: () => setBuilderPreview({ anchor, index, value }),\n onMouseLeave: () => setBuilderPreview(null),\n };\n };\n\n const handleContinue = async () => {\n if (validate && !(await validate())) return;\n\n const target = continueTargetFor({\n anchor,\n schema,\n rule,\n index,\n stepKey,\n configPending,\n });\n if (target) openType({ type: target.type, data: target.data });\n else closePane();\n };\n\n const canContinue = cascade && selectedValues.some(Boolean);\n useHotkeys(SHORTCUTS.continue.sequence, handleContinue, {\n enabled: canContinue,\n mode: \"global\",\n });\n\n const optionLabel = option => {\n const Icon = option.icon;\n // Short text sits inline as a pill; anything needing more room is a\n // standard popover behind an info icon.\n const reason =\n typeof option.disabledReason === \"function\"\n ? option.disabledReason()\n : option.disabledReason;\n const isTextReason = typeof reason === \"string\";\n // Only a node can be rendered as popover content; a host handing back a\n // plain object would otherwise crash the pane.\n const isNodeReason = isValidElement(reason) || Array.isArray(reason);\n const popover =\n option.disabledPopover || (isNodeReason ? { description: reason } : null);\n\n if (!Icon && !isTextReason && !popover) return option.label;\n\n return (\n <span className=\"mb-pane-option\">\n {Icon && <Icon size={20} />}\n {option.label}\n {popover && (\n <Popover\n position=\"top\"\n trigger={\n <span\n className=\"mb-pane-info\"\n onClick={event => event.preventDefault()}\n >\n <Info size={14} />\n </span>\n }\n >\n {popover.title && <Popover.Title>{popover.title}</Popover.Title>}\n <Typography color=\"muted\" variant=\"body2\">\n {popover.description}\n </Typography>\n {popover.helpLinkProps && (\n <Button\n {...popover.helpLinkProps}\n className=\"h-auto self-start p-0\"\n size=\"sm\"\n variant=\"link\"\n />\n )}\n </Popover>\n )}\n {!popover &&\n reason &&\n isTextReason &&\n (option.disabledTooltip ? (\n <Tooltip content={option.disabledTooltip} position=\"top\">\n <span className=\"mb-pane-warn\">{reason}</span>\n </Tooltip>\n ) : (\n <span className=\"mb-pane-warn\">{reason}</span>\n ))}\n </span>\n );\n };\n\n const renderGroupHeader = category =>\n category && <div className=\"mb-pane-group\">{category}</div>;\n\n const renderBody = () => {\n if (isEmpty(filtered)) {\n return (\n <div className=\"mb-pane-empty\" data-testid=\"pane-no-matches\">\n {t(\"neetoRules.builder.noMatches\")}\n </div>\n );\n }\n\n if (multi) {\n return (\n <div className=\"mb-pane-list flex flex-col\">\n {groups.map(([category, items]) => (\n <Fragment key={category || \"_uncategorized\"}>\n {renderGroupHeader(category)}\n {items.map(option => (\n <Checkbox\n checked={isSelected(option.value)}\n disabled={option.disabled}\n key={option.value}\n label={optionLabel(option)}\n labelProps={previewHandlers(option.value)}\n onCheckedChange={() => handleSelect(option.value)}\n {...(option.icon || option.disabledReason\n ? { dataTestid: option.value }\n : {})}\n {...previewHandlers(option.value)}\n />\n ))}\n </Fragment>\n ))}\n </div>\n );\n }\n\n return (\n <RadioGroup\n orientation=\"vertical\"\n value={selectedValues?.[0] ?? \"\"}\n onValueChange={handleSelect}\n >\n {groups\n .flatMap(([category, items]) => [\n category ? (\n <div className=\"mb-pane-group\" key={`group-${category}`}>\n {category}\n </div>\n ) : null,\n ...items.map(option => (\n <RadioGroup.Item\n disabled={option.disabled}\n key={option.value}\n label={optionLabel(option)}\n labelProps={previewHandlers(option.value)}\n value={option.value}\n {...(option.icon || option.disabledReason\n ? { \"data-testid\": option.value }\n : {})}\n {...previewHandlers(option.value)}\n />\n )),\n ])\n .filter(Boolean)}\n </RadioGroup>\n );\n };\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {title}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {subtitle}\n </Typography>\n {showSearch && (\n <div className=\"mb-pane-search\" ref={searchRef}>\n <Input\n dataTestId=\"pane-search\"\n placeholder={t(\"neetoRules.builder.searchPlaceholder\")}\n prefix={<Search />}\n size=\"large\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n )}\n </div>\n </Panel.Header>\n <Panel.Body>\n {renderBody()}\n {belowContent}\n </Panel.Body>\n {cascade && (\n <Panel.Footer>\n <Button\n data-testid=\"continue-button\"\n disabled={!canContinue}\n label={t(\"neetoRules.buttons.continue\")}\n size=\"lg\"\n onClick={handleContinue}\n />\n </Panel.Footer>\n )}\n </>\n );\n};\n\nexport default OptionsPane;\n","import { MultiEmailInput, Select } from \"@bigbinary/neeto-atoms\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RECIPIENT_STORAGE_FIELDS } from \"../../constants\";\nimport { normalizeOptions } from \"../utils\";\n\nconst RecipientField = ({ field, name, dropdownOptions, placeholder }) => {\n const { t } = useTranslation();\n const { values, setFieldValue, setFieldTouched, errors, touched } =\n useFormikContext();\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n if (field === RECIPIENT_STORAGE_FIELDS.emails) {\n const path = `${name}.${RECIPIENT_STORAGE_FIELDS.emails}`;\n const current = getIn(values, path) || [];\n\n return (\n <MultiEmailInput\n required\n error={fieldError(path)}\n label={t(\"neetoRules.builder.config.emailAddresses\")}\n placeholder={t(\"neetoRules.builder.config.emailPlaceholder\")}\n value={current.map(email => ({\n label: email,\n value: email,\n valid: true,\n }))}\n onBlur={() => setFieldTouched(path, true)}\n onChange={items => setFieldValue(path, pluck(\"value\", items || []))}\n />\n );\n }\n\n const path = `${name}.${RECIPIENT_STORAGE_FIELDS.value}`;\n const current = getIn(values, path);\n const options = normalizeOptions(dropdownOptions);\n\n return (\n <Select\n {...{ options, placeholder }}\n required\n error={fieldError(path)}\n label={t(\"neetoRules.builder.config.recipient\")}\n size=\"large\"\n value={current ?? undefined}\n onBlur={() => setFieldTouched(path, true)}\n onChange={value => setFieldValue(path, value)}\n />\n );\n};\n\nexport default RecipientField;\n","import { useEffect, useRef } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport RecipientField from \"./Fields/RecipientField\";\nimport OptionsPane from \"./OptionsPane\";\n\nimport PhoneNumberField from \"../../NeetoRulesForm/Element/Actions/Fields/SmsFields/PhoneNumberField\";\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport {\n BUILDER_ANCHORS,\n RECIPIENT_FOCUSABLE_SELECTOR,\n RECIPIENT_STORAGE_FIELDS,\n SMS_TO_NUMBERS,\n} from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\n\nconst RecipientPane = ({ schema, index, configPending = false }) => {\n const { t } = useTranslation();\n const { rule, fieldKeys } = useRuleModel(schema);\n const bodyRef = useRef(null);\n const belowRef = useRef(null);\n\n // eslint-disable-next-line security/detect-object-injection\n const action = rule.actions[index] || {};\n const channel =\n action.channel || schema.actions?.actionForName?.(action.name)?.channel;\n\n const recipient =\n action.recipient ?? schema.actions?.actionForName?.(action.name)?.recipient;\n const name = `${fieldKeys.actions}.value.${index}.metadata`;\n\n const editor = schema.actions?.renderRecipientEditor?.({\n channel,\n name,\n action,\n });\n\n const flatOption =\n schema.actions?.optionForName?.(action.name) ||\n schema.actions?.optionForChannel?.(channel);\n const isSmsToNumbers = flatOption?.type === SMS_TO_NUMBERS;\n\n const recipientConfig = (schema.actions?.options || [])\n .flatMap(option => option.recipients || [])\n .concat(schema.actions?.recipients || [])\n .find(item => (item.value ?? item.id) === recipient);\n\n const recipientStorageField =\n recipientConfig?.field &&\n recipientConfig.field !== RECIPIENT_STORAGE_FIELDS.emails\n ? RECIPIENT_STORAGE_FIELDS.value\n : RECIPIENT_STORAGE_FIELDS.emails;\n\n const recipientFieldPath = isSmsToNumbers\n ? `${name}.${RECIPIENT_STORAGE_FIELDS.phoneNumbers}`\n : `${name}.${recipientStorageField}`;\n const { validate } = usePaneValidation(recipientFieldPath);\n\n useEffect(() => {\n if (!editor) return;\n const first = bodyRef.current?.querySelector(RECIPIENT_FOCUSABLE_SELECTOR);\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference\n if (first) setTimeout(() => first.focus(), 0);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [!editor]);\n\n const builtInRecipientField = recipientConfig?.field ? (\n <RecipientField\n {...{ name }}\n dropdownOptions={recipientConfig.dropdownOptions}\n field={recipientConfig.field}\n placeholder={recipientConfig.placeholder}\n />\n ) : null;\n\n const recipientField =\n schema.actions?.renderRecipientField?.({\n channel,\n recipient,\n name,\n action,\n }) ?? builtInRecipientField;\n\n const phoneField = isSmsToNumbers ? (\n <PhoneNumberField\n name={`${name}.${RECIPIENT_STORAGE_FIELDS.phoneNumbers}`}\n phoneNumbers={action.metadata?.phoneNumbers}\n />\n ) : null;\n\n const belowField = phoneField || recipientField;\n const belowContent = belowField ? (\n <div className=\"mt-5\" ref={belowRef}>\n {belowField}\n </div>\n ) : null;\n\n useEffect(() => {\n if (!belowField) return undefined;\n const timer = setTimeout(\n () =>\n belowRef.current?.querySelector(RECIPIENT_FOCUSABLE_SELECTOR)?.focus(),\n 0\n );\n\n return () => clearTimeout(timer);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [!!belowField]);\n\n if (!editor) {\n return (\n <OptionsPane\n {...{ belowContent, configPending, index, schema, validate }}\n anchor={BUILDER_ANCHORS.ACTION_RECIPIENT}\n />\n );\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const meta = schema.actions?.channelMeta?.[channel] || {};\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {meta.recipientTitle ||\n t(\"neetoRules.builder.panes.recipientTitle\")}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {meta.recipientSubtitle ||\n t(\"neetoRules.builder.panes.recipientSubtitle\")}\n </Typography>\n </div>\n </Panel.Header>\n <Panel.Body>\n <div ref={bodyRef}>{editor}</div>\n </Panel.Body>\n </>\n );\n};\n\nexport default RecipientPane;\n","import {\n Checkbox,\n DatePicker,\n Input,\n RadioGroup,\n Select,\n TimePicker,\n Typography,\n} from \"@bigbinary/neeto-atoms\";\nimport { Input as FormikInput } from \"@bigbinary/neeto-atoms/formik\";\nimport { getIn, useFormikContext } from \"formik\";\nimport { isNot, isNotEmpty } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { dayjs } from \"neetocommons/v2/utils\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n DATE_FORMAT,\n DATE_TIME_FORMAT,\n DATE_TIME_TYPES,\n TIME_FORMAT,\n} from \"src/constants/dateTime\";\nimport { getDateTimeValue } from \"utils\";\n\nimport { CONDITION_VALUE_TYPES } from \"./constants\";\n\nimport { normalizeOptions } from \"../utils\";\n\nconst dateTimeMetaOf = field => {\n if (field?.type === CONDITION_VALUE_TYPES.time) {\n return { type: DATE_TIME_TYPES.time, format: TIME_FORMAT };\n }\n\n return field?.showTime\n ? { type: DATE_TIME_TYPES.datetime, format: DATE_TIME_FORMAT }\n : { type: DATE_TIME_TYPES.date, format: DATE_FORMAT };\n};\n\nconst ConditionValueFields = ({ name, field, searchTerm = \"\" }) => {\n const { t } = useTranslation();\n const { values, setFieldValue, setFieldTouched, errors, touched } =\n useFormikContext();\n\n const type = field?.type;\n const valueType = field?.valueType || type;\n const valuePath = `${name}.metadata.value`;\n const valuesPath = `${name}.metadata.values`;\n const enumOptions = normalizeOptions(\n field?.values || field?.dropdownOptions || field?.options\n );\n\n const fieldError = path => getIn(touched, path) && getIn(errors, path);\n\n const term = searchTerm.trim().toLowerCase();\n const filterOptions = list =>\n term\n ? list.filter(option => String(option.label).toLowerCase().includes(term))\n : list;\n\n const noMatches = (\n <div className=\"mb-pane-empty\" data-testid=\"pane-no-matches\">\n {t(\"neetoRules.builder.noMatches\")}\n </div>\n );\n\n if (type === CONDITION_VALUE_TYPES.multiSelect && isNotEmpty(enumOptions)) {\n const current = getIn(values, valuesPath) || [];\n const filtered = filterOptions(enumOptions);\n if (term && isEmpty(filtered)) return noMatches;\n\n const toggle = value => {\n setFieldTouched(valuesPath, true);\n setFieldValue(\n valuesPath,\n current.includes(value)\n ? current.filter(isNot(value))\n : [...current, value]\n );\n };\n\n return (\n <div className=\"mb-pane-list flex flex-col\">\n {filtered.map(option => (\n <Checkbox\n checked={current.includes(option.value)}\n key={option.value}\n label={option.label}\n onCheckedChange={() => toggle(option.value)}\n />\n ))}\n {fieldError(valuesPath) && (\n <Typography color=\"destructive\" variant=\"body3\">\n {fieldError(valuesPath)}\n </Typography>\n )}\n </div>\n );\n }\n\n if (type === CONDITION_VALUE_TYPES.multiSelect) {\n return (\n <Typography color=\"muted\" variant=\"body2\">\n {field?.label\n ? t(\"neetoRules.builder.config.noOptionsFor\", { field: field.label })\n : t(\"neetoRules.builder.config.noOptions\")}\n </Typography>\n );\n }\n\n if (type === CONDITION_VALUE_TYPES.multiSelectCreate) {\n const current = getIn(values, valuesPath) || [];\n\n return (\n <Select\n autoFocus\n isCreatable\n isMulti\n required\n error={fieldError(valuesPath)}\n label={t(\"neetoRules.builder.config.keywords\")}\n placeholder={t(\"neetoRules.builder.config.keywordsPlaceholder\")}\n size=\"large\"\n value={current}\n onBlur={() => setFieldTouched(valuesPath, true)}\n onChange={selected => setFieldValue(valuesPath, selected || [])}\n />\n );\n }\n\n if (isNotEmpty(enumOptions)) {\n const current = getIn(values, valuePath);\n const filtered = filterOptions(enumOptions);\n if (term && isEmpty(filtered)) return noMatches;\n\n return (\n <RadioGroup\n error={fieldError(valuePath)}\n orientation=\"vertical\"\n value={String(current ?? \"\")}\n onValueChange={value => setFieldValue(valuePath, value)}\n >\n {filtered.map(option => (\n <RadioGroup.Item\n key={option.value}\n label={String(option.label).toLowerCase()}\n value={String(option.value)}\n />\n ))}\n </RadioGroup>\n );\n }\n\n if (\n type === CONDITION_VALUE_TYPES.date ||\n type === CONDITION_VALUE_TYPES.time\n ) {\n const metadataPath = `${name}.metadata`;\n const metadata = getIn(values, metadataPath) || {};\n const { type: dateTimeType, format } = dateTimeMetaOf(field);\n const parsed = getDateTimeValue({\n date: metadata.value,\n format: metadata.format,\n type: metadata.type,\n timezone: metadata.timezone,\n });\n\n // Formik validates each write on a stale snapshot, so write it all at once.\n const handleChange = date => {\n setFieldTouched(valuePath, true, false);\n setFieldValue(metadataPath, {\n ...metadata,\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n value: date ? dayjs(date).format(format) : \"\",\n type: dateTimeType,\n format,\n timezone: globalProps?.user?.timeZone,\n });\n };\n\n const pickerProps = {\n required: true,\n error: fieldError(valuePath),\n value: parsed?.isValid?.() ? parsed : null,\n onBlur: () => setFieldTouched(valuePath, true),\n onChange: handleChange,\n };\n\n return dateTimeType === DATE_TIME_TYPES.time ? (\n <TimePicker\n {...pickerProps}\n format=\"24\"\n label={t(\"neetoRules.form.selectTime\")}\n />\n ) : (\n <DatePicker\n {...pickerProps}\n label={t(\"neetoRules.form.selectDate\")}\n showTime={field?.showTime}\n timeFormat=\"HH:mm\"\n type=\"date\"\n />\n );\n }\n\n if (valueType === CONDITION_VALUE_TYPES.number) {\n return (\n <Input\n autoFocus\n required\n error={fieldError(valuePath)}\n label={t(\"neetoRules.common.value\")}\n size=\"large\"\n type=\"number\"\n value={getIn(values, valuePath) ?? \"\"}\n onBlur={() => setFieldTouched(valuePath, true)}\n onChange={event =>\n setFieldValue(\n valuePath,\n event.target.value === \"\" ? \"\" : Number(event.target.value)\n )\n }\n />\n );\n }\n\n return (\n <FormikInput\n autoFocus\n required\n label={t(\"neetoRules.common.value\")}\n name={valuePath}\n size=\"large\"\n type={valueType === CONDITION_VALUE_TYPES.email ? \"email\" : \"text\"}\n placeholder={\n field?.placeholder ||\n (valueType === CONDITION_VALUE_TYPES.email\n ? t(\"neetoRules.builder.config.exampleEmail\")\n : undefined)\n }\n />\n );\n};\n\nexport default ConditionValueFields;\n","import { useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Input, Typography } from \"neetoatoms\";\nimport { Search } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ConditionValueFields from \"./Fields/ConditionValueFields\";\nimport { optionValue, normalizeOptions } from \"./utils\";\n\nimport Panel from \"../../NeetoRulesForm/Panel\";\nimport { PANE_SEARCH_THRESHOLD } from \"../constants\";\nimport usePaneValidation from \"../hooks/usePaneValidation\";\nimport useRuleModel from \"../hooks/useRuleModel\";\nimport { isMultiValueVerb } from \"../utils\";\n\nconst ValuePane = ({ schema, index }) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n const { rule, fieldKeys } = useRuleModel(schema);\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n const searchRef = useRef(null);\n\n // eslint-disable-next-line security/detect-object-injection\n const condition = rule.conditions[index] || {};\n const field = (schema.conditions?.fields || []).find(\n candidate => optionValue(candidate) === condition.field\n );\n const base = `${fieldKeys.conditions}.value.${index}`;\n\n usePaneValidation(`${base}.metadata`);\n\n const enumOptions = normalizeOptions(\n field?.values || field?.dropdownOptions || field?.options\n );\n\n const showSearch = enumOptions.length >= PANE_SEARCH_THRESHOLD;\n\n const renderBody = () => {\n if (schema.conditions?.renderValue) {\n return schema.conditions.renderValue({\n name: base,\n condition,\n field,\n setFieldValue,\n searchTerm,\n });\n }\n\n return <ConditionValueFields {...{ field, searchTerm }} name={base} />;\n };\n\n return (\n <>\n <Panel.Header>\n <div className=\"flex w-full flex-col gap-y-2\">\n <Typography data-testid=\"pane-title\" variant=\"h5\">\n {t(\"neetoRules.builder.pickValue\", {\n field: field?.label || t(\"neetoRules.builder.valueWord\"),\n })}\n </Typography>\n <Typography color=\"muted\" variant=\"body2\">\n {field?.valueSubtitle ||\n (isMultiValueVerb(condition?.verb)\n ? t(\"neetoRules.builder.valuesSubtitle\", {\n field: field?.label || t(\"neetoRules.builder.valueWord\"),\n })\n : t(\"neetoRules.builder.valueSubtitle\"))}\n </Typography>\n {showSearch && (\n <div className=\"mb-pane-search\" ref={searchRef}>\n <Input\n dataTestId=\"pane-search\"\n placeholder={t(\"neetoRules.builder.searchPlaceholder\")}\n prefix={<Search />}\n size=\"large\"\n value={searchTerm}\n onChange={event => setSearchTerm(event.target.value)}\n />\n </div>\n )}\n </div>\n </Panel.Header>\n <Panel.Body>{renderBody()}</Panel.Body>\n </>\n );\n};\n\nexport default ValuePane;\n","import ConfigPane from \"./ConfigPane\";\nimport DelayPane from \"./DelayPane\";\nimport LeadTimePane from \"./LeadTimePane\";\nimport NamePane from \"./NamePane\";\nimport OptionsPane from \"./OptionsPane\";\nimport RecipientPane from \"./RecipientPane\";\nimport ValuePane from \"./ValuePane\";\n\nimport { BUILDER_PANEL_TYPES } from \"../constants\";\n\nexport const BUILDER_PANEL_TYPE_CONFIG_MAP = {\n [BUILDER_PANEL_TYPES.TRIGGER]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.ACTOR]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.CONDITION_FIELD]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.OPERATOR]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.CONNECTOR]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.ACTION_CHANNEL]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.RECIPIENT]: { component: RecipientPane },\n [BUILDER_PANEL_TYPES.CONDITION_VALUE]: { component: ValuePane },\n [BUILDER_PANEL_TYPES.ACTION_CONFIG]: { component: ConfigPane },\n [BUILDER_PANEL_TYPES.ACTION_STEP]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.DELAY]: { component: DelayPane },\n [BUILDER_PANEL_TYPES.LEAD_TIME]: { component: LeadTimePane },\n [BUILDER_PANEL_TYPES.NAME]: { component: NamePane },\n [BUILDER_PANEL_TYPES.SCOPE]: { component: OptionsPane },\n [BUILDER_PANEL_TYPES.SCOPE_PHONE_FIELD]: { component: OptionsPane },\n};\n","import { useEffect, useMemo, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Form as FormikForm, Formik } from \"formik\";\nimport { Spinner } from \"neetoatoms\";\nimport { ActionBlock } from \"neetoatoms/formik\";\nimport { isNotEmpty, noop } from \"neetocist\";\nimport Container from \"neetomolecules/v2/Container\";\nimport Header from \"neetomolecules/v2/Header\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ScrollToErrorField } from \"v2/components/Common/ScrollToErrorField\";\nimport { DEFAULT_INITIAL_VALUE } from \"v2/components/NeetoRulesForm/constants\";\nimport usePollRuleName from \"v2/components/NeetoRulesForm/hooks/usePollRuleName\";\nimport useCustomDataStore from \"v2/components/NeetoRulesForm/stores/useCustomDataStore\";\nimport TouchErrors from \"v2/components/NeetoRulesForm/TouchErrors\";\nimport { buildPayload, formatData } from \"v2/components/NeetoRulesForm/utils\";\nimport { getValidationSchema } from \"v2/components/NeetoRulesForm/utils/validate\";\nimport useUtilityStore from \"v2/components/stores/useUtilityStore\";\n\nimport Canvas from \"./Canvas\";\nimport { BUILDER_PANEL_TYPE_CONFIG_MAP } from \"./Panes/constants\";\nimport {\n isRuleComplete,\n invalidScopeIndexes,\n invalidScopePhoneFieldIndexes,\n leadTimeValidationSchema,\n normalizeSchema,\n valuesToRuleModel,\n} from \"./utils\";\n\nimport Panel from \"../NeetoRulesForm/Panel\";\n\nconst Form = ({\n data = {},\n schema: rawSchema = {},\n automationRulesEndpoint: url,\n title,\n breadcrumbs = {},\n isLoading = false,\n className,\n handleSubmit = noop,\n handleCancel = noop,\n payloadKey = \"rule\",\n isNameGenerationDisabled = false,\n}) => {\n const { t } = useTranslation();\n\n const formikRef = useRef(null);\n const formRef = useRef(null);\n\n const { customData } = useCustomDataStore.pick();\n const { resetPanelState, errorFields, setIsSaveAsTemplateEnabled } =\n useUtilityStore.pick();\n\n const initialValues = useMemo(() => formatData(data), [data]);\n const schema = useMemo(() => normalizeSchema(rawSchema), [rawSchema]);\n\n const isSaveAsTemplateEnabled = !!rawSchema.actions?.isSaveAsTemplateEnabled;\n useEffect(() => {\n setIsSaveAsTemplateEnabled(isSaveAsTemplateEnabled);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isSaveAsTemplateEnabled]);\n\n const isNameRequired =\n isNameGenerationDisabled || (schema.meta?.showName ?? true);\n\n const { waitForGeneratedRuleName, saveRuleName, isCancelledNameGeneration } =\n usePollRuleName({ url, formikRef, payloadKey, isNameGenerationDisabled });\n\n // eslint-disable-next-line @bigbinary/neeto/prefer-function-reference, react-hooks/exhaustive-deps\n useEffect(() => () => resetPanelState(), []);\n\n const submitForm = (values, formikBag) => {\n if (isNotEmpty(errorFields)) {\n return Promise.reject(\n new Error(t(\"neetoRules.form.errors.ruleHasErrorFields\"))\n );\n }\n\n const rule = valuesToRuleModel({ values, schema });\n if (\n !isRuleComplete({ rule, schema }) ||\n invalidScopeIndexes({ rule, schema }).length ||\n invalidScopePhoneFieldIndexes({ rule, schema }).length\n ) {\n return Promise.reject(\n new Error(t(\"neetoRules.form.errors.incompleteRule\"))\n );\n }\n\n if (isCancelledNameGeneration) {\n saveRuleName(values);\n\n return Promise.reject(\n new Error(t(\"neetoRules.form.errors.pendingRuleNameSave\"))\n );\n }\n\n const payload = buildPayload(data, values);\n\n resetPanelState();\n\n return handleSubmit(payload, formikBag, waitForGeneratedRuleName);\n };\n\n return (\n <Formik\n enableReinitialize\n initialValues={{ ...DEFAULT_INITIAL_VALUE, ...initialValues }}\n innerRef={formikRef}\n validationSchema={getValidationSchema({\n data,\n customData,\n isNameGenerationDisabled: isNameRequired,\n }).concat(leadTimeValidationSchema(schema))}\n onSubmit={submitForm}\n >\n {() => (\n <div className=\"flex neeto-rules-main-content h-full w-full\">\n <TouchErrors />\n <Container className=\"neeto-rules-main-content__container max-h-full\">\n <Header\n {...{ breadcrumbs }}\n title={title || t(\"neetoRules.common.title\")}\n />\n {isLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <FormikForm\n ref={formRef}\n className={classnames([\n \"w-full neeto-rules-main-content__form max-w-5xl\",\n className,\n ])}\n >\n <Canvas {...{ schema }} />\n <ScrollToErrorField {...{ formRef }} />\n <div className=\"bg-background sticky bottom-0 py-6\">\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n submitButtonProps={{ \"data-testid\": \"form-submit-button\" }}\n />\n </div>\n </FormikForm>\n )}\n </Container>\n <Panel configMap={BUILDER_PANEL_TYPE_CONFIG_MAP} />\n </div>\n )}\n </Formik>\n );\n};\n\nexport default Form;\n","// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/main.css\";\n\nimport Form from \"./Form\";\n\nconst NeetoRulesBuilder = ({ ...rest }) => <Form {...rest} />;\n\nexport default NeetoRulesBuilder;\n"],"names":["PARAM_KIND","ENUM_SINGLE","ENUM_MULTI","UNIT_MINUTES","minutes","hours","days","TIME_UNITS","label","value","LEAD_TIME_UNITS","MAX_LEAD_TIME_VALUE","STEPPER_DELTA","INCREMENT","DECREMENT","STEPPER_MIN_VALUE","DEFAULT_DELAY_VALUE","FLASH_DURATION_MS","SKIP_TAB_INDEX","CONDITION_VERBS","IS","IS_NOT","ANY_OF","NONE_OF","ALL_OF","LESS_THAN","GREATER_THAN","VERB_TOKENS","MULTI_VALUE","CONTAINS","DEFAULT_SCHEMA","triggers","fieldKey","options","actor","enabled","conditions","fields","connectorMode","actions","channelMeta","recipients","delay","units","integrations","slots","STATUS_KEYS","ENABLED","DISABLED","JOIN_TYPE","and","or","CONDITION_MODE","AND","OR","BUILDER_PANEL_TYPES","TRIGGER","ACTOR","CONDITION_FIELD","OPERATOR","CONNECTOR","CONDITION_VALUE","ACTION_CHANNEL","ACTION_CONFIG","ACTION_STEP","RECIPIENT","DELAY","LEAD_TIME","NAME","SCOPE","SCOPE_PHONE_FIELD","BUILDER_ANCHORS","TRIGGER_ADD","TRIGGER_REPLACE","TRIGGER_ACTOR","TRIGGER_LEAD_TIME","COND_FIELD","COND_OP_TOGGLE","COND_CONNECTOR","COND_VALUES","ACTION_ADD","ACTION_RECIPIENT","RULE_DELAY","META_NAME","TOKEN_TO_PANEL_TYPE","_TOKEN_TO_PANEL_TYPE","_defineProperty","LARGE_PANEL_TYPES","CONDITION_ANCHORS","ACTION_ANCHORS","PANE_SEARCH_THRESHOLD","CONFIG_FOCUSABLE_SELECTOR","SMS_TYPES","RECIPIENT_FOCUSABLE_SELECTOR","SMS_TO_NUMBERS","RECIPIENT_STORAGE_FIELDS","emails","phoneNumbers","DEFAULT_DELAY_UNITS","useClearingHover","_useState","useState","_useState2","_slicedToArray","clearing","setClearing","clearingHoverProps","onMouseEnter","onMouseLeave","resetClearing","TOKEN_STATE","FILLED","MUTED","PLACEHOLDER","PLACEHOLDER_NEXT","STATE_CLASS","useReplayFlash","flashSeq","ref","useRef","useEffect","_ref$current","_ref$current$getAnima","current","getAnimations","call","forEach","animation","cancel","play","Token","_ref","children","_ref$state","state","_ref$active","active","_ref$invalid","invalid","onClick","className","dataTestid","rest","_objectWithoutProperties","_excluded","isInteractive","tokenRef","_jsx","_objectSpread","role","undefined","tabIndex","classnames","filled","onKeyDown","event","key","preventDefault","Values","_ref$values","values","connector","map","index","_jsxs","Fragment","_Fragment","concat","humanize","String","replace","trim","isContainsVerb","verb","includes","isNumericVerb","isExcludeVerb","isMultiValueVerb","sentencify","charAt","toUpperCase","toLowerCase","slice","copyFor","args","matchesTrigger","name","option","eventValue","id","triggerOption","_schema$triggers","schema","find","triggerLabel","_ref2","trigger","plain","performerLabel","_ref3","_schema$actor","performer","candidate","conditionField","_ref4","_schema$conditions","field","conditionFieldLabel","_ref5","condition","operatorLabel","_ref6","_schema$conditions2","operatorLabels","conditionNeedsValue","_ref7","noValueForVerbs","valueParts","raw","isNil","Array","isArray","isEmpty","_typeof","joinValues","parts","join","conditionValueParts","_ref8","_ref9","_meta$value","meta","metadata","dropdownOptions","isEnum","isNotEmpty","labelFor","_ref0","_option$label","_candidate$value","t","actionOption","_ref10","_schema$actions","channelOption","_ref11","_schema$actions2","channel","_option$value","actionStepsOf","_ref12","action","actionParts","steps","stepValueOf","_ref13","_action$metadata","step","stepLabelOf","_ref14","_find","_option$value2","_ref15","_actions$actionForNam","_action$recipient","_actions$channelMeta","_find2","_find3","_actions$configValueL","_channelMeta$needsRec","resolved","recipient","actionForName","recipientValue","matchesRecipient","_recipient$value","recipientLabel","configValueParts","configValueLabel","paramKind","paramType","valueNoun","valueNounPlural","mediumLabel","icon","needsRecipient","separator","configValue","configValuePlaceholder","valuePlaceholder","configTitle","configSubtitle","infoTooltip","recipientTitle","recipientSubtitle","offeredConditionFields","_ref16","_ref17","_schema$conditions$fi","_schema$conditions3","_schema$conditions3$f","_schema$conditions4","rule","fieldsFor","hasTrigger","hasAction","some","isTriggerEnabled","_schema$triggers2","isTriggerSatisfied","_ref18","hasRequiredConditions","_ref19","_schema$conditions5","allowEmpty","hasUnansweredStep","_ref20","required","isRuleComplete","_ref21","scopeOptionFor","_ref22","_item$value","_schema$scope","item","scope","_candidate$value2","scopePhoneFields","_ref23","_ref24","_item$phoneFields","_scopeOptionFor","phoneFields","effectiveScopePhoneField","_ref25","phoneField","length","invalidScopeIndexes","_ref26","_scope$requiresPhone","requiresPhone","reduce","indexes","_ref27","_item$hasPhoneField","hasPhoneField","push","invalidScopePhoneFieldIndexes","_ref28","_scope$requiresPhone2","hasChoice","minutesToParts","total","Number","unit","partsToMinutes","_ref29","leadTimeExceedsMax","leadTimeValidationSchema","_schema$triggers3","leadTime","yup","object","shape","string","test","max","leadTimeLabel","_minutesToParts","unitLabel","normalizeTriggers","normalizeSchema","rawSchema","arguments","mergeDeepRight","joinTypeFor","mode","recipientStorageField","recipientOwnedFields","_ref30","_actions$actionForNam2","_action$recipient2","_actions$renderRecipi","_actions$renderRecipi2","_actions$optionForNam","_actions$optionForCha","rendersEmails","renderRecipientEditor","renderRecipientField","recipientConfig","flatMap","_item$value2","flatOption","optionForName","optionForChannel","_toConsumableArray","type","modeFromJoinType","joinType","valueAt","_ref31","_values$key","asArray","maybeArray","fieldKeysFromSchema","_schema$triggers4","_schema$actor2","_schema$conditions6","_schema$actions3","_schema$delay","_schema$triggers5","_schema$scope2","status","valuesToRuleModel","_valueAt","_conditions$","_ref32","_ref32$values","_ref32$schema","keys","rawDelay","conditionMode","setTriggers","_ref33","path","replaceTriggers","_ref34","keptIds","filter","Boolean","removed","_destroy","edits","_values$fieldKey","deleted","setPerformer","_ref35","setActions","_ref36","setConditions","_ref37","setConditionMode","_ref38","assoc","setDelay","_ref39","setActive","_ref40","setScope","_ref41","removeArrayItem","_ref42","list","nextList","_","i","result","_values$fieldKey2","clearArrayItems","_ref43","_values$fieldKey3","ConditionRow","handleToken","onToken","handleAddCondition","onAddCondition","handleRemove","onRemove","_ref$isActive","isActive","_ref$isInvalid","isInvalid","_useTranslation","useTranslation","isFirst","hasField","hasVerb","_field$value","operatorPlaceholder","needsValue","_useClearingHover","Button","Plus","size","variant","tooltipProps","content","position","Delete","Connector","fill","height","viewBox","width","d","stroke","strokeLinecap","strokeLinejoin","strokeWidth","DelayRow","part","MetaBlock","_ref$showName","showName","handleEditName","onEditName","handleToggleActive","onToggleActive","nameRef","checked","readOnly","onChange","itemLabel","ScopeBlock","_schema$scope2$requir","handleRemoveScope","onRemoveScope","placeholder","_createElement","ScopeRow","isLast","_schema$scope3","_schema$scope4","_schema$scope5","_useTranslation2","lead","meeting","hasPhoneFieldChoice","singlePhoneFieldLabel","selectedPhoneField","usingLabel","phoneFieldPlaceholder","ActionRow","handleAddAction","onAddAction","_actionParts","MediumIcon","hasParamTail","multiPlaceholder","noun","singlePlaceholder","paramPlaceholder","verbLabel","isVerbActive","configLabel","recipientSeparator","configSeparator","isConfigured","configState","configToken","recipientToken","stepTokens","stepLabel","token","stepKey","preserveCase","infoToken","Tooltip","Info","ThenBlock","handleRemoveAction","onRemoveAction","_ref$adding","adding","named","isTriggerSet","title","_action$id","WhenBlock","handleClearTrigger","onClearTrigger","isActorEnabled","hasLeadTimeFor","appliesTo","_trigger$id","usePaneCascade","_useUtilityStore","useUtilityStore","useShallow","store","setPanelState","resetPanelState","openType","useCallback","_ref$data","data","openPane","anchor","closePane","useRuleModel","_useFormikContext","useFormikContext","setFieldValue","apply","applyAll","useMemo","fieldKeys","removeCondition","removeAction","clearTriggers","clearConditions","clearActions","triggerValue","_option$eventValue","stepAt","actionAt","stepTargetAfter","at","findIndex","next","optionValue","normalizeOptions","toLabelAndValue","groupByCategory","groups","indexByCategory","category","conditionAt","scopeItemAt","_rule$scope","scopeItemLabel","findField","findActionOption","channelOf","_schema$actions2$acti","recipientOf","_schema$actions3$acti","channelMetaOf","_ref1","_schema$actions4","actionHasConfig","_schema$actions5","_schema$actions6","component","renderConfig","hasConfig","recipientsFor","_schema$actions7","_schema$actions8","availableRecipients","usedNames","_schema$actions9","_schema$actions9$reso","resolveName","nextTriggers","multi","names","pluck","removeBy","nextConditionAt","_field$allowMatching","previous","first","allowMatching","defaultVerb","kind","nextActionAt","_schema$actions0","prev","channelChanged","prevChannel","_schema$actions1","channelRecipients","recipientsByChannel","_channelRecipients","appendScopeItem","_sc$requiresPhone","sc","nextActionRecipientAt","_schema$actions10","descriptorFor","isReplace","triggerTitle","triggerSubtitle","subtitle","cascade","paneLabel","selectedValues","labels","verbs","fieldLabel","isContains","every","isNumeric","isExclude","hasOptions","containsVariant","numericOrExcludeVariant","nonContainsVariant","_schema$actions12","_channelOf","isSwap","channelMetaFor","_schema$actions11","sourceOptions","_option$disabled","channelLabel","disabled","isDisabled","disabledReason","disabledPopover","_schema$actions13","_sc$requiresPhone2","selected","paneChangeTitle","paneTitle","paneSubtitle","_option$disabled2","blockedNoPhone","isSelected","disabledTooltip","phoneFieldPaneTitle","phoneFieldPaneSubtitle","commitFor","helpers","_leadTime$default","has","_item$value3","continueTargetFor","_schema$actor3","configPending","replaceAt","applyPreview","Canvas","_actorOptions$0$value","_schema$meta$showName","_schema$meta","_usePaneCascade","errors","submitCount","_useRuleModel","builderPreview","panelState","displayRule","activeToken","addingAction","flatErrors","flatten","setFlashSeq","lastSubmitCount","timer","setTimeout","clearTimeout","hasErrorAt","prefix","_ref3$exclude","exclude","Object","startsWith","sub","matchesInvalid","conditionMeta","actionMeta","actionItem","stepKeys","recipientFields","actorKey","closePaneIfTargeting","anchors","handleRemoveCondition","remaining","handleRemoveDelay","actorOptions","soleActorOption","isScopeEnabled","conditionFields","canAddCondition","canRemoveCondition","leadTimeAppliesTo","hasLeadTimeTrigger","isDelayEnabled","slotCtx","renderSlot","_schema$slots$name","_schema$slots","_schema$slots$name2","_condition$id","iconPosition","target","ACTION_CONFIG_TYPES","emailChannel","sendToApi","multiSelect","dropdown","note","textarea","number","text","regex","decimal","date","CONDITION_VALUE_TYPES","multiSelectCreate","email","time","EmailChannelFields","_getIn","_getIn2","hasRecipientField","hint","touched","setFieldTouched","editorRef","isSaveAsTemplateEnabled","hasFieldChanged","useHasFieldChanged","valuePath","subjectPath","bodyPath","templates","hasRecipientList","fieldError","getIn","shouldShowSaveAsTemplate","templateId","subject","body","template","findBy","hasContent","isPresent","isContentDifferentFromTemplate","areValuesEqual","isSaveAsTemplateVisible","useResetSaveAsTemplateOnHide","F","handleTemplateChange","hideSubject","setEditorContent","Select","error","onBlur","SelectTemplateField","selectedField","Input","EditorAction","variables","SaveAsTemplate","restoreTokens","ActionConfigFields","_ref$searchTerm","searchTerm","_ref$hasRecipientFiel","term","filterOptions","dynamicValuesHint","hintBlock","Typography","color","noOptionsMessage","noMatches","ApiFields","filtered","toggle","isNot","Checkbox","onCheckedChange","RadioGroup","orientation","onValueChange","picked","Item","ListField","Textarea","rows","_getIn3","DatePicker","dayjs","format","DATE_FORMAT","_regenerator","e","r","Symbol","n","iterator","o","toStringTag","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","bind","l","TypeError","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","keysUnder","obj","_ref$exclude","usePaneValidation","validateForm","errorsRef","validate","_asyncToGenerator","_callee","nextErrors","offending","_args","_context","ConfigPane","_schema$actions$optio","_schema$actions2$opti","_concat$find","_schema$actions7$opti","_hostRenderConfig","bodyRef","setSearchTerm","base","isSms","hostRenderConfig","showSearch","shouldAdvanceToRecipient","_usePaneValidation","channelRepName","unnamedOnOpen","frame","attempts","focusFirst","_bodyRef$current","querySelector","focus","requestAnimationFrame","cancelAnimationFrame","handleContinue","owned","useHotkeys","SHORTCUTS","sequence","Panel","Header","dataTestId","Search","Body","ErrorCallout","message","SmsFields","shouldAutoFocus","showPhoneNumberInput","Footer","DelayPane","getFieldMeta","_useField","useField","_useField2","unitOptions","_unitOptions$0$value","_unitOptions$","weight","MAX_DELAY_VALUE","min","MIN_DELAY_VALUE","defaultValue","nextUnit","toNumber","clamp","Math","asText","NumberStepper","_ref$min","draft","setDraft","display","commit","delta","isFinite","autoFocus","suffix","Up","Down","onFocus","select","LeadTimePane","amount","_useField2$","update","isSearchable","NamePane","OptionsPane","_ref$belowContent","belowContent","_ref$configPending","_ref$validate","setBuilderPreview","searchRef","_searchRef$current","_useMemo","searchable","handleSelect","multiCandidate","previewHandlers","_t","canContinue","optionLabel","Icon","reason","isTextReason","isNodeReason","isValidElement","popover","description","Popover","Title","helpLinkProps","renderGroupHeader","renderBody","_selectedValues$","items","labelProps","RecipientField","MultiEmailInput","valid","RecipientPane","_schema$actions$actio","_schema$actions3$rend","_schema$actions4$opti","_schema$actions5$opti","_schema$actions$rende","_schema$actions8$rend","belowRef","editor","isSmsToNumbers","recipientFieldPath","builtInRecipientField","recipientField","PhoneNumberField","belowField","_belowRef$current","dateTimeMetaOf","DATE_TIME_TYPES","TIME_FORMAT","showTime","datetime","DATE_TIME_FORMAT","ConditionValueFields","valueType","valuesPath","enumOptions","isCreatable","isMulti","_parsed$isValid","metadataPath","_dateTimeMetaOf","dateTimeType","parsed","getDateTimeValue","timezone","handleChange","_globalProps$user","globalProps","user","timeZone","pickerProps","isValid","TimePicker","timeFormat","FormikInput","ValuePane","renderValue","valueSubtitle","BUILDER_PANEL_TYPE_CONFIG_MAP","_BUILDER_PANEL_TYPE_C","Form","_rawSchema$actions","_ref$schema","url","automationRulesEndpoint","_ref$breadcrumbs","breadcrumbs","_ref$isLoading","isLoading","_ref$handleSubmit","handleSubmit","noop","_ref$handleCancel","handleCancel","_ref$payloadKey","payloadKey","_ref$isNameGeneration","isNameGenerationDisabled","formikRef","formRef","_useCustomDataStore","useCustomDataStore","customData","errorFields","setIsSaveAsTemplateEnabled","initialValues","formatData","isNameRequired","_usePollRuleName","usePollRuleName","waitForGeneratedRuleName","saveRuleName","isCancelledNameGeneration","submitForm","formikBag","Promise","reject","Error","payload","buildPayload","Formik","enableReinitialize","DEFAULT_INITIAL_VALUE","innerRef","validationSchema","getValidationSchema","onSubmit","TouchErrors","Container","Spinner","FormikForm","ScrollToErrorField","ActionBlock","cancelButtonProps","submitButtonProps","configMap","NeetoRulesBuilder","assign","_objectDestructuringEmpty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG;AACxBC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,UAAU,EAAE;AACd,CAAC;AAEM,IAAMC,YAAY,GAAG;AAAEC,EAAAA,OAAO,EAAE,CAAC;AAAEC,EAAAA,KAAK,EAAE,EAAE;AAAEC,EAAAA,IAAI,EAAE;AAAK,CAAC;;AAEjE;AACA;AACO,IAAMC,UAAU,GAAG,CACxB;AAAEC,EAAAA,KAAK,EAAE,SAAS;AAAEC,EAAAA,KAAK,EAAE;AAAU,CAAC,EACtC;AAAED,EAAAA,KAAK,EAAE,OAAO;AAAEC,EAAAA,KAAK,EAAE;AAAQ,CAAC,EAClC;AAAED,EAAAA,KAAK,EAAE,MAAM;AAAEC,EAAAA,KAAK,EAAE;AAAO,CAAC,CACjC;AACD;AACA;;AAEO,IAAMC,eAAe,GAAGH,UAAU;;AAEzC;AACA;AACO,IAAMI,mBAAmB,GAAG,GAAG;AAE/B,IAAMC,aAAa,GAAG;AAAEC,EAAAA,SAAS,EAAE,CAAC;AAAEC,EAAAA,SAAS,EAAE;AAAG,CAAC;AAErD,IAAMC,iBAAiB,GAAG,CAAC;AAE3B,IAAMC,mBAAmB,GAAG,EAAE;;AAErC;AACO,IAAMC,iBAAiB,GAAG,IAAI;;AAErC;AACO,IAAMC,cAAc,GAAG,EAAE;AAEzB,IAAMC,eAAe,GAAG;AAC7BC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,YAAY,EAAE;AAChB,CAAC;AAEM,IAAMC,WAAW,GAAG;AACzBC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,QAAQ,EAAE;AACZ,CAAC;AAEM,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAQ;AAAEC,IAAAA,OAAO,EAAE;GAAI;AAC7CC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,OAAO,EAAE,KAAK;AAAEF,IAAAA,OAAO,EAAE,EAAE;AAAED,IAAAA,QAAQ,EAAE;GAAa;AAC7DI,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE,EAAE;AAAEL,IAAAA,QAAQ,EAAE,YAAY;AAAEM,IAAAA,aAAa,EAAE;GAAU;AAC3EC,EAAAA,OAAO,EAAE;AACPN,IAAAA,OAAO,EAAE,EAAE;IACXO,WAAW,EAAE,EAAE;AACfC,IAAAA,UAAU,EAAE,EAAE;AACdT,IAAAA,QAAQ,EAAE;GACX;AACDU,EAAAA,KAAK,EAAE;AAAEP,IAAAA,OAAO,EAAE,KAAK;AAAEH,IAAAA,QAAQ,EAAE,iBAAiB;AAAEW,IAAAA,KAAK,EAAE;GAAI;EACjEC,YAAY,EAAE,EAAE;AAChBC,EAAAA,KAAK,EAAE;AACT,CAAC;AAEM,IAAMC,WAAW,GAAG;AAAEC,EAAAA,OAAO,EAAE,SAAS;AAAEC,EAAAA,QAAQ,EAAE;AAAW,CAAC;AAEhE,IAAMC,SAAS,GAAG;AAAEC,EAAAA,GAAG,EAAE,cAAc;AAAEC,EAAAA,EAAE,EAAE;AAAc,CAAC;AAE5D,IAAMC,cAAc,GAAG;AAAEC,EAAAA,GAAG,EAAE,KAAK;AAAEC,EAAAA,EAAE,EAAE;AAAK,CAAC;AAE/C,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,OAAO,EAAE,iBAAiB;AAC1BC,EAAAA,KAAK,EAAE,eAAe;AACtBC,EAAAA,eAAe,EAAE,yBAAyB;AAC1CC,EAAAA,QAAQ,EAAE,kBAAkB;AAC5BC,EAAAA,SAAS,EAAE,mBAAmB;AAC9BC,EAAAA,eAAe,EAAE,yBAAyB;AAC1CC,EAAAA,cAAc,EAAE,wBAAwB;AACxCC,EAAAA,aAAa,EAAE,uBAAuB;AACtCC,EAAAA,WAAW,EAAE,qBAAqB;AAClCC,EAAAA,SAAS,EAAE,mBAAmB;AAC9BC,EAAAA,KAAK,EAAE,eAAe;AACtBC,EAAAA,SAAS,EAAE,mBAAmB;AAC9BC,EAAAA,IAAI,EAAE,cAAc;AACpBC,EAAAA,KAAK,EAAE,eAAe;AACtBC,EAAAA,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAMC,eAAe,GAAG;AAC7BC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,UAAU,EAAE,YAAY;AACxBlB,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,aAAa,EAAE,eAAe;AAC9BkB,EAAAA,gBAAgB,EAAE,kBAAkB;AACpCjB,EAAAA,WAAW,EAAE,aAAa;AAC1BkB,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,SAAS,EAAE,WAAW;AACtBd,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAMc,mBAAmB,IAAAC,oBAAA,GAAA,EAAA,EAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAD,oBAAA,EAC7Bd,eAAe,CAACC,WAAW,EAAGjB,mBAAmB,CAACC,OAAO,GACzDe,eAAe,CAACE,eAAe,EAAGlB,mBAAmB,CAACC,OAAO,CAAA,EAC7De,eAAe,CAACG,aAAa,EAAGnB,mBAAmB,CAACE,KAAK,CAAA,EACzDc,eAAe,CAACK,UAAU,EAAGrB,mBAAmB,CAACG,eAAe,CAAA,EAChEa,eAAe,CAACM,cAAc,EAAGtB,mBAAmB,CAACI,QAAQ,CAAA,EAC7DY,eAAe,CAACO,cAAc,EAAGvB,mBAAmB,CAACK,SAAS,GAC9DW,eAAe,CAACQ,WAAW,EAAGxB,mBAAmB,CAACM,eAAe,CAAA,EACjEU,eAAe,CAACS,UAAU,EAAGzB,mBAAmB,CAACO,cAAc,CAAA,EAC/DS,eAAe,CAACT,cAAc,EAAGP,mBAAmB,CAACO,cAAc,CAAA,EACnES,eAAe,CAACR,aAAa,EAAGR,mBAAmB,CAACQ,aAAa,CAAA,EAAAuB,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAD,oBAAA,EACjEd,eAAe,CAACU,gBAAgB,EAAG1B,mBAAmB,CAACU,SAAS,CAAA,EAChEM,eAAe,CAACP,WAAW,EAAGT,mBAAmB,CAACS,WAAW,CAAA,EAC7DO,eAAe,CAACW,UAAU,EAAG3B,mBAAmB,CAACW,KAAK,CAAA,EACtDK,eAAe,CAACI,iBAAiB,EAAGpB,mBAAmB,CAACY,SAAS,GACjEI,eAAe,CAACY,SAAS,EAAG5B,mBAAmB,CAACa,IAAI,GACpDG,eAAe,CAACF,KAAK,EAAGd,mBAAmB,CAACc,KAAK,CAAA,EACjDE,eAAe,CAACD,iBAAiB,EAAGf,mBAAmB,CAACe,iBAAiB,CAAA,CAC3E;AAEM,IAAMiB,iBAAiB,GAAG,CAC/BhC,mBAAmB,CAACQ,aAAa,EACjCR,mBAAmB,CAACc,KAAK,EACzBd,mBAAmB,CAACa,IAAI,CACzB;AAEM,IAAMoB,iBAAiB,GAAG,CAC/BjB,eAAe,CAACK,UAAU,EAC1BL,eAAe,CAACM,cAAc,EAC9BN,eAAe,CAACQ,WAAW,EAC3BR,eAAe,CAACO,cAAc,CAC/B;AAEM,IAAMW,cAAc,GAAG,CAC5BlB,eAAe,CAACT,cAAc,EAC9BS,eAAe,CAACR,aAAa,EAC7BQ,eAAe,CAACU,gBAAgB,EAChCV,eAAe,CAACP,WAAW,CAC5B;AAEM,IAAM0B,qBAAqB,GAAG,CAAC;AAE/B,IAAMC,yBAAyB,GACpC,sFAAsF;AAEjF,IAAMC,SAAS,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC;AAEzC,IAAMC,4BAA4B,GACvC,2CAA2C;AAEtC,IAAMC,cAAc,GAAG,cAAc;AAErC,IAAMC,wBAAwB,GAAG;AACtCC,EAAAA,MAAM,EAAE,QAAQ;AAChBvF,EAAAA,KAAK,EAAE,OAAO;AACdwF,EAAAA,YAAY,EAAE;AAChB,CAAC;AAEM,IAAMC,mBAAmB,GAAG3F,UAAU;;ACrK7C,IAAM4F,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAC7B,EAAA,IAAAC,SAAA,GAAgCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAxCI,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAMI,kBAAkB,GAAG;IACzBC,YAAY,EAAE,SAAdA,YAAYA,GAAA;MAAA,OAAQF,WAAW,CAAC,IAAI,CAAC;AAAA,IAAA,CAAA;IACrCG,YAAY,EAAE,SAAdA,YAAYA,GAAA;MAAA,OAAQH,WAAW,CAAC,KAAK,CAAC;AAAA,IAAA;GACvC;AAED,EAAA,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,GAAA;IAAA,OAASJ,WAAW,CAAC,KAAK,CAAC;AAAA,EAAA,CAAA;EAE9C,OAAO;AAAED,IAAAA,QAAQ,EAARA,QAAQ;AAAEE,IAAAA,kBAAkB,EAAlBA,kBAAkB;AAAEG,IAAAA,aAAa,EAAbA;GAAe;AACxD,CAAC;;ACbM,IAAMC,WAAW,GAAG;AACzBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACd;AACAC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,gBAAgB,EAAE,kBAAkB;AACpClE,EAAAA,QAAQ,EAAE;AACZ,CAAC;AAEM,IAAMmE,WAAW,GAAA7B,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,KACrBwB,WAAW,CAACG,WAAW,EAAG,gBAAgB,GAC1CH,WAAW,CAACI,gBAAgB,EAAG,oCAAoC,CAAA,EACnEJ,WAAW,CAAC9D,QAAQ,EAAG,wCAAwC,CAAA,EAC/D8D,WAAW,CAACC,MAAM,EAAG,QAAQ,CAAA,EAC7BD,WAAW,CAACE,KAAK,EAAG,qBAAqB,CAC3C;;ACbD;AACA;AACA,IAAMI,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,QAAQ,EAAI;AACjC,EAAA,IAAMC,GAAG,GAAGC,MAAM,CAAC,IAAI,CAAC;AAExBC,EAAAA,SAAS,CAAC,YAAM;IAAA,IAAAC,YAAA,EAAAC,qBAAA;IACd,IAAI,CAACL,QAAQ,EAAE;IAEf,CAAAI,YAAA,GAAAH,GAAG,CAACK,OAAO,MAAA,IAAA,IAAAF,YAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAXD,YAAA,CAAaG,aAAa,MAAA,IAAA,IAAAF,qBAAA,KAAA,MAAA,IAA1BA,qBAAA,CAAAG,IAAA,CAAAJ,YAA6B,CAAC,CAACK,OAAO,CAAC,UAAAC,SAAS,EAAI;MAClDA,SAAS,CAACC,MAAM,EAAE;MAClBD,SAAS,CAACE,IAAI,EAAE;AAClB,IAAA,CAAC,CAAC;AACJ,EAAA,CAAC,EAAE,CAACZ,QAAQ,CAAC,CAAC;AAEd,EAAA,OAAOC,GAAG;AACZ,CAAC;;;;;ACXD,IAAMY,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA,EASL;AAAA,EAAA,IARJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAC,UAAA,GAAAF,IAAA,CACRG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAA,MAAA,GAAGvB,WAAW,CAACC,MAAM,GAAAsB,UAAA;IAAAE,WAAA,GAAAJ,IAAA,CAC1BK,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,WAAA;IAAAE,YAAA,GAAAN,IAAA,CACdO,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,YAAA;IACfE,OAAO,GAAAR,IAAA,CAAPQ,OAAO;IACPC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,UAAU,GAAAV,IAAA,CAAVU,UAAU;AACPC,IAAAA,IAAI,GAAAC,wBAAA,CAAAZ,IAAA,EAAAa,WAAA,CAAA;EAEP,IAAMC,aAAa,GACjB,OAAON,OAAO,KAAK,UAAU,IAAIL,KAAK,KAAKxB,WAAW,CAAC9D,QAAQ;AAEjE,EAAA,IAAMkG,QAAQ,GAAG9B,cAAc,CAACsB,OAAO,CAAC;AAExC,EAAA,oBACES,GAAA,CAAA,MAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA;AACE,IAAA,aAAA,EAAaP,UAAW;AACxBvB,IAAAA,GAAG,EAAE4B,QAAS;AACdG,IAAAA,IAAI,EAAEJ,aAAa,GAAG,QAAQ,GAAGK,SAAU;AAC3CC,IAAAA,QAAQ,EAAEN,aAAa,GAAG,CAAC,GAAGK,SAAU;AACxCV,IAAAA,SAAS,EAAEY,UAAU;AACnB;IACArC,WAAW,CAACmB,KAAK,CAAC,IAAInB,WAAW,CAACsC,MAAM,EACxCb,SAAS,EACT;AAAE,MAAA,eAAe,EAAEJ,MAAM;AAAE,MAAA,gBAAgB,EAAEE;AAAQ,KACvD,CAAE;AACFC,IAAAA,OAAO,EAAEM,aAAa,GAAGN,OAAO,GAAGW,SAAU;AAC7CI,IAAAA,SAAS,EACPT,aAAa,GACT,UAAAU,KAAK,EAAI;AACP,MAAA,IAAI,EAAEA,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,CAAC,EAAE;MACnDD,KAAK,CAACE,cAAc,EAAE;MACtBlB,OAAO,CAACgB,KAAK,CAAC;AAChB,IAAA,CAAC,GACDL;AACL,GAAA,EACGR,IAAI,CAAA,EAAA,EAAA,EAAA;AAAAV,IAAAA,QAAA,EAEPA;AAAQ,GAAA,CACL,CAAC;AAEX,CAAC;;AC5CD,IAAM0B,MAAM,GAAG,SAATA,MAAMA,CAAA3B,IAAA,EAAA;AAAA,EAAA,IAAA4B,WAAA,GAAA5B,IAAA,CAAM6B,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,WAAA;IAAEE,SAAS,GAAA9B,IAAA,CAAT8B,SAAS;AAAA,EAAA,OACtCD,MAAM,CAACE,GAAG,CAAC,UAACzJ,KAAK,EAAE0J,KAAK,EAAA;IAAA,oBACtBC,IAAA,CAACC,QAAQ,EAAA;AAAAjC,MAAAA,QAAA,EAAA,CACN+B,KAAK,GAAG,CAAC,IAAI,GAAG,EAChBA,KAAK,GAAG,CAAC,IAAIF,SAAS,iBACrBG,IAAA,CAAAE,UAAA,EAAA;AAAAlC,QAAAA,QAAA,gBACEe,GAAA,CAAA,MAAA,EAAA;AAAMP,UAAAA,SAAS,EAAC,aAAa;AAAAR,UAAAA,QAAA,EAAE6B;SAAgB,CAAC,EAAC,GAAG;OACpD,CACH,EACAxJ,KAAK;KAAA,EAAA,EAAA,CAAA8J,MAAA,CAPU9J,KAAK,EAAA,GAAA,CAAA,CAAA8J,MAAA,CAAIJ,KAAK,CAQtB,CAAC;AAAA,EAAA,CACZ,CAAC;AAAA,CAAA;;;;ACGJ,IAAMK,QAAQ,GAAG,SAAXA,QAAQA,CAAG/J,KAAK,EAAA;EAAA,OACpBgK,MAAM,CAAChK,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAALA,KAAK,GAAI,EAAE,CAAC,CAChBiK,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CACrBC,IAAI,EAAE;AAAA,CAAA;AAEX,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,IAAI,EAAA;AAAA,EAAA,OACzBA,IAAI,CAACC,QAAQ,CAACnJ,WAAW,CAACC,WAAW,CAAC,IAAIiJ,IAAI,CAACC,QAAQ,CAACnJ,WAAW,CAACE,QAAQ,CAAC;AAAA,CAAA;AAE/E,IAAMkJ,aAAa,GAAG,SAAhBA,aAAaA,CAAGF,IAAI,EAAA;EAAA,OACxBA,IAAI,KAAK1J,eAAe,CAACM,SAAS,IAAIoJ,IAAI,KAAK1J,eAAe,CAACO,YAAY;AAAA,CAAA;;AAE7E;AACA,IAAMsJ,aAAa,GAAG,SAAhBA,aAAaA,CAAGH,IAAI,EAAA;EAAA,OACxB,CACE1J,eAAe,CAACC,EAAE,EAClBD,eAAe,CAACE,MAAM,EACtBF,eAAe,CAACG,MAAM,EACtBH,eAAe,CAACI,OAAO,CACxB,CAACuJ,QAAQ,CAACD,IAAI,CAAC;AAAA,CAAA;AAClB,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGJ,IAAI,EAAA;EAAA,OAAIJ,MAAM,CAACI,IAAI,CAAC,CAACC,QAAQ,CAACnJ,WAAW,CAACC,WAAW,CAAC;AAAA,CAAA;;AAE/E;AACA;AACA,IAAMsJ,UAAU,GAAG,SAAbA,UAAUA,CAAG1K,KAAK,EAAI;AAC1B,EAAA,IAAI,CAACA,KAAK,EAAE,OAAOA,KAAK;AAExB,EAAA,IAAIA,KAAK,CAAC2K,MAAM,CAAC,CAAC,CAAC,KAAK3K,KAAK,CAAC2K,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,EAAE,OAAO5K,KAAK;AAEnE,EAAA,OAAOA,KAAK,CAAC2K,MAAM,CAAC,CAAC,CAAC,CAACE,WAAW,EAAE,GAAG7K,KAAK,CAAC8K,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAI9K,KAAK,EAAE+K,IAAI,EAAA;EAAA,OAC1B,OAAO/K,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAC+K,IAAI,CAAC,GAAG/K,KAAK;AAAA,CAAA;AAEnD,IAAMgL,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,IAAI,EAAA;AAAA,EAAA,OAAI,UAAAC,MAAM,EAAA;AAAA,IAAA,OACnCA,MAAM,CAACC,UAAU,KAAKF,IAAI,IAAIC,MAAM,CAAClL,KAAK,KAAKiL,IAAI,IAAIC,MAAM,CAACE,EAAE,KAAKH,IAAI;AAAA,EAAA,CAAA;AAAA,CAAA;AAE3E,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAA3D,IAAA,EAAA;AAAA,EAAA,IAAA4D,gBAAA;AAAA,EAAA,IAAMC,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IAAEN,IAAI,GAAAvD,IAAA,CAAJuD,IAAI;EAAA,OACnC,CAAC,CAAAM,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAD,gBAAA,GAANC,MAAM,CAAEjK,QAAQ,MAAA,IAAA,IAAAgK,gBAAA,uBAAhBA,gBAAA,CAAkB9J,OAAO,KAAI,EAAE,EAAEgK,IAAI,CAACR,cAAc,CAACC,IAAI,CAAC,CAAC;AAAA,CAAA;AAE9D,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAAC,KAAA,EAA4B;AAAA,EAAA,IAAtBH,MAAM,GAAAG,KAAA,CAANH,MAAM;IAAEI,OAAO,GAAAD,KAAA,CAAPC,OAAO;EACrC,IAAMT,MAAM,GAAGG,aAAa,CAAC;AAAEE,IAAAA,MAAM,EAANA,MAAM;AAAEN,IAAAA,IAAI,EAAEU,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEV;AAAK,GAAC,CAAC;AAE7D,EAAA,OAAO,CAAAC,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEU,KAAK,KAAInB,UAAU,CAAC,CAAAS,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEnL,KAAK,KAAIgK,QAAQ,CAAC4B,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEV,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED,IAAMY,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAA8B;AAAA,EAAA,IAAAC,aAAA;AAAA,EAAA,IAAxBR,MAAM,GAAAO,KAAA,CAANP,MAAM;IAAES,SAAS,GAAAF,KAAA,CAATE,SAAS;EACzC,IAAMd,MAAM,GAAG,CAAC,CAAAK,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAQ,aAAA,GAANR,MAAM,CAAE9J,KAAK,MAAA,IAAA,IAAAsK,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAevK,OAAO,KAAI,EAAE,EAAEgK,IAAI,CAChD,UAAAS,SAAS,EAAA;IAAA,OAAIA,SAAS,CAACjM,KAAK,KAAKgM,SAAS,IAAIC,SAAS,CAACb,EAAE,KAAKY,SAAS;AAAA,EAAA,CAC1E,CAAC;AAED,EAAA,OAAOvB,UAAU,CAAC,CAAAS,MAAM,aAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEnL,KAAK,KAAIgK,QAAQ,CAACiC,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAAC,kBAAA;AAAA,EAAA,IAAMb,MAAM,GAAAY,KAAA,CAANZ,MAAM;IAAEc,KAAK,GAAAF,KAAA,CAALE,KAAK;EAAA,OACrC,CAAC,CAAAd,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAa,kBAAA,GAANb,MAAM,CAAE5J,UAAU,cAAAyK,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAA,CAAoBxK,MAAM,KAAI,EAAE,EAAE4J,IAAI,CACrC,UAAAN,MAAM,EAAA;IAAA,OAAIA,MAAM,CAAClL,KAAK,KAAKqM,KAAK,IAAInB,MAAM,CAACE,EAAE,KAAKiB,KAAK;AAAA,EAAA,CACzD,CAAC;AAAA,CAAA;AAEH,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAA8B;AAAA,EAAA,IAAxBhB,MAAM,GAAAgB,KAAA,CAANhB,MAAM;IAAEiB,SAAS,GAAAD,KAAA,CAATC,SAAS;EAC9C,IAAMH,KAAK,GAAGH,cAAc,CAAC;AAAEX,IAAAA,MAAM,EAANA,MAAM;AAAEc,IAAAA,KAAK,EAAEG,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEH;AAAM,GAAC,CAAC;EAEjE,OAAOrC,MAAM,CAAC,CAAAqC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEtM,KAAK,KAAIgK,QAAQ,CAACyC,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEH,KAAK,CAAC,CAAC,CAACzB,WAAW,EAAE;AACzE,CAAC;AAED,IAAM6B,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAA8B;AAAA,EAAA,IAAAC,mBAAA;AAAA,EAAA,IAAxBpB,MAAM,GAAAmB,KAAA,CAANnB,MAAM;IAAEiB,SAAS,GAAAE,KAAA,CAATF,SAAS;EACxC,IAAM/C,GAAG,GAAG,CAAA8B,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAoB,mBAAA,GAANpB,MAAM,CAAE5J,UAAU,MAAA,IAAA,IAAAgL,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,mBAAA,CAAoBC,cAAc,KAAI,EAAE;EAEpD,OAAOnD,GAAG,CAAC+C,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEpC,IAAI,CAAC,IAAIL,QAAQ,CAACyC,SAAS,KAAA,IAAA,IAATA,SAAS,uBAATA,SAAS,CAAEpC,IAAI,CAAC;AAC1D,CAAC;AAED,IAAMyC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAA8B;AAAA,EAAA,IAAxBvB,MAAM,GAAAuB,KAAA,CAANvB,MAAM;IAAEiB,SAAS,GAAAM,KAAA,CAATN,SAAS;EAC9C,IAAMH,KAAK,GAAGH,cAAc,CAAC;AAAEX,IAAAA,MAAM,EAANA,MAAM;AAAEc,IAAAA,KAAK,EAAEG,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEH;AAAM,GAAC,CAAC;EAEjE,OAAO,CAAC,CAAC,CAAAA,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEU,eAAe,KAAI,EAAE,EAAE1C,QAAQ,CAACmC,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEpC,IAAI,CAAC;AAClE,CAAC;;AAED;AACA;AACA;AACA,IAAM4C,UAAU,GAAG,SAAbA,UAAUA,CAAGC,GAAG,EAAI;EACxB,IAAIC,KAAK,CAACD,GAAG,CAAC,IAAIA,GAAG,KAAK,EAAE,EAAE,OAAO,IAAI;AAEzC,EAAA,IAAIE,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,EAAE;AACtB,IAAA,OAAOI,OAAO,CAACJ,GAAG,CAAC,GAAG,IAAI,GAAG;AAAE1D,MAAAA,MAAM,EAAE0D,GAAG,CAACxD,GAAG,CAACO,MAAM;KAAG;AAC1D,EAAA;AAEA,EAAA,IAAIsD,OAAA,CAAOL,GAAG,CAAA,KAAK,QAAQ,EAAE;IAC3B,IAAM1D,MAAM,GAAG4D,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC1D,MAAM,CAAC,GAAG0D,GAAG,CAAC1D,MAAM,CAACE,GAAG,CAACO,MAAM,CAAC,GAAG,EAAE;AAEtE,IAAA,OAAOqD,OAAO,CAAC9D,MAAM,CAAC,GAAG,IAAI,GAAG;AAAEA,MAAAA,MAAM,EAANA,MAAM;MAAEC,SAAS,EAAEyD,GAAG,CAACzD;KAAW;AACtE,EAAA;EAEA,OAAO;AAAED,IAAAA,MAAM,EAAE,CAACS,MAAM,CAACiD,GAAG,CAAC;GAAG;AAClC,CAAC;AAED,IAAMM,UAAU,GAAG,SAAbA,UAAUA,CAAGC,KAAK,EAAA;EAAA,OACtB,CAAAA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEjE,MAAM,CAACkE,IAAI,CAACD,KAAK,CAAChE,SAAS,GAAA,GAAA,CAAAM,MAAA,CAAO0D,KAAK,CAAChE,SAAS,EAAA,GAAA,CAAA,GAAM,GAAG,CAAC,KAAI,EAAE;AAAA,CAAA;AAE1E,IAAMkE,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAA8B;EAAA,IAAAC,KAAA,EAAAC,WAAA;AAAA,EAAA,IAAxBtC,MAAM,GAAAoC,KAAA,CAANpC,MAAM;IAAEiB,SAAS,GAAAmB,KAAA,CAATnB,SAAS;AAC9C,EAAA,IAAMsB,IAAI,GAAG,CAAAtB,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEuB,QAAQ,KAAI,EAAE;EACtC,IAAMd,GAAG,GAAA,CAAAW,KAAA,GAAA,CAAAC,WAAA,GAAGC,IAAI,CAAC9N,KAAK,MAAA,IAAA,IAAA6N,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAIC,IAAI,CAACvE,MAAM,MAAA,IAAA,IAAAqE,KAAA,cAAAA,KAAA,GAAIE,IAAI,CAAC/N,KAAK;EAEnD,IAAImN,KAAK,CAACD,GAAG,CAAC,IAAII,OAAO,CAACJ,GAAG,CAAC,EAAE,OAAO,IAAI;EAE3C,IAAMZ,KAAK,GAAGH,cAAc,CAAC;AAAEX,IAAAA,MAAM,EAANA,MAAM;AAAEc,IAAAA,KAAK,EAAEG,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEH;AAAM,GAAC,CAAC;EACjE,IAAM7K,OAAO,GACX,CAAA6K,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE9C,MAAM,MAAI8C,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE2B,eAAe,CAAA,KAAI3B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE7K,OAAO,CAAA,IAAI,EAAE;AACjE,EAAA,IAAMyM,MAAM,GAAGC,UAAU,CAAC1M,OAAO,CAAC;AAElC,EAAA,IAAM2M,QAAQ,GAAG,SAAXA,QAAQA,CAAGnO,KAAK,EAAI;IAAA,IAAAoO,KAAA,EAAAC,aAAA;AACxB,IAAA,IAAMnD,MAAM,GAAG1J,OAAO,CAACgK,IAAI,CACzB,UAAAS,SAAS,EAAA;AAAA,MAAA,IAAAqC,gBAAA;AAAA,MAAA,OAAI,CAAA,CAAAA,gBAAA,GAACrC,SAAS,CAACjM,KAAK,MAAA,IAAA,IAAAsO,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAIrC,SAAS,CAACb,EAAE,MAAMpL,KAAK;AAAA,IAAA,CAC1D,CAAC;AACD,IAAA,IAAMD,KAAK,GAAGmL,MAAM,GAAA,CAAAkD,KAAA,GAAA,CAAAC,aAAA,GAAInD,MAAM,CAACnL,KAAK,MAAA,IAAA,IAAAsO,aAAA,KAAA,MAAA,GAAAA,aAAA,GAAInD,MAAM,CAAClL,KAAK,MAAA,IAAA,IAAAoO,KAAA,KAAA,MAAA,GAAAA,KAAA,GAAIlD,MAAM,CAACE,EAAE,GAAIpL,KAAK;AAE1E,IAAA,OAAOiO,MAAM,GAAGjE,MAAM,CAACjK,KAAK,CAAC,CAAC6K,WAAW,EAAE,GAAGZ,MAAM,CAACjK,KAAK,CAAC;EAC7D,CAAC;AAED,EAAA,IAAMyJ,SAAS,GAAGQ,MAAM,CAAC,CAAAwC,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEpC,IAAI,KAAI,EAAE,CAAC,CAACC,QAAQ,CACtD3J,eAAe,CAACK,MAClB,CAAC,GACGwN,CAAC,CAAC,0BAA0B,CAAC,GAC7BA,CAAC,CAAC,yBAAyB,CAAC;AAEhC,EAAA,OAAOpB,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,GACrB;AAAE1D,IAAAA,MAAM,EAAE0D,GAAG,CAACxD,GAAG,CAAC0E,QAAQ,CAAC;AAAE3E,IAAAA,SAAS,EAATA;AAAU,GAAC,GACxC;AAAED,IAAAA,MAAM,EAAE,CAAC4E,QAAQ,CAAClB,GAAG,CAAC;GAAG;AACjC,CAAC;AAKD,IAAMuB,YAAY,GAAG,SAAfA,YAAYA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAAC,eAAA;AAAA,EAAA,IAAMnD,MAAM,GAAAkD,MAAA,CAANlD,MAAM;IAAEN,IAAI,GAAAwD,MAAA,CAAJxD,IAAI;EAAA,OAClC,CAAC,CAAAM,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAmD,eAAA,GAANnD,MAAM,CAAEzJ,OAAO,cAAA4M,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CAAiBlN,OAAO,KAAI,EAAE,EAAEgK,IAAI,CACnC,UAAAN,MAAM,EAAA;IAAA,OAAIA,MAAM,CAAClL,KAAK,KAAKiL,IAAI,IAAIC,MAAM,CAACE,EAAE,KAAKH,IAAI;AAAA,EAAA,CACvD,CAAC;AAAA,CAAA;AAEH,IAAM0D,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAAC,gBAAA;AAAA,EAAA,IAAMtD,MAAM,GAAAqD,MAAA,CAANrD,MAAM;IAAEuD,OAAO,GAAAF,MAAA,CAAPE,OAAO;EAAA,OACtC,CAAC,CAAAvD,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAsD,gBAAA,GAANtD,MAAM,CAAEzJ,OAAO,cAAA+M,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiBrN,OAAO,KAAI,EAAE,EAAEgK,IAAI,CACnC,UAAAN,MAAM,EAAA;AAAA,IAAA,IAAA6D,aAAA;AAAA,IAAA,OAAI,CAAA,CAAAA,aAAA,GAAC7D,MAAM,CAAClL,KAAK,MAAA,IAAA,IAAA+O,aAAA,KAAA,MAAA,GAAAA,aAAA,GAAI7D,MAAM,CAACE,EAAE,MAAM0D,OAAO;AAAA,EAAA,CACnD,CAAC;AAAA,CAAA;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAM1D,MAAM,GAAA0D,MAAA,CAAN1D,MAAM;IAAE2D,MAAM,GAAAD,MAAA,CAANC,MAAM;AAAA,EAAA,OACrCC,WAAW,CAAC;AAAE5D,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC,CAACE,KAAK,IAAI,EAAE;AAAA,CAAA;AAE7C,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAAC,gBAAA;AAAA,EAAA,IAAML,MAAM,GAAAI,MAAA,CAANJ,MAAM;IAAEM,IAAI,GAAAF,MAAA,CAAJE,IAAI;AAAA,EAAA,OAAON,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAK,gBAAA,GAANL,MAAM,CAAEnB,QAAQ,MAAA,IAAA,IAAAwB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAA,CAAmBC,IAAI,CAACrG,GAAG,CAAC;AAAA,CAAA;AAEtE,IAAMsG,WAAW,GAAG,SAAdA,WAAWA,CAAAC,MAAA,EAAyB;AAAA,EAAA,IAAAC,KAAA;AAAA,EAAA,IAAnBT,MAAM,GAAAQ,MAAA,CAANR,MAAM;IAAEM,IAAI,GAAAE,MAAA,CAAJF,IAAI;EACjC,IAAMxP,KAAK,GAAGqP,WAAW,CAAC;AAAEH,IAAAA,MAAM,EAANA,MAAM;AAAEM,IAAAA,IAAI,EAAJA;AAAK,GAAC,CAAC;AAE3C,EAAA,OACE,CAAA,CAAAG,KAAA,GAAA,CAACH,IAAI,CAAChO,OAAO,IAAI,EAAE,EAAEgK,IAAI,CAAC,UAAAN,MAAM,EAAA;AAAA,IAAA,IAAA0E,cAAA;AAAA,IAAA,OAAI,CAAA,CAAAA,cAAA,GAAC1E,MAAM,CAAClL,KAAK,MAAA,IAAA,IAAA4P,cAAA,KAAA,MAAA,GAAAA,cAAA,GAAI1E,MAAM,CAACE,EAAE,MAAMpL,KAAK;AAAA,EAAA,CAAA,CAAC,cAAA2P,KAAA,KAAA,MAAA,GAAA,MAAA,GAA1EA,KAAA,CACI5P,KAAK,KAAI,EAAE;AAEnB,CAAC;AAED,IAAMoP,WAAW,GAAG,SAAdA,WAAWA,CAAAU,MAAA,EAA2B;AAAA,EAAA,IAAAC,qBAAA,EAAAC,iBAAA,EAAAC,oBAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,qBAAA,EAAAC,qBAAA;AAAA,EAAA,IAArB7E,MAAM,GAAAsE,MAAA,CAANtE,MAAM;IAAE2D,MAAM,GAAAW,MAAA,CAANX,MAAM;AACnC,EAAA,IAAMpN,OAAO,GAAG,CAAAyJ,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEzJ,OAAO,KAAI,EAAE;EAErC,IAAMuO,QAAQ,GAAGnB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAEJ,OAAO,GAC5B;IAAEA,OAAO,EAAEI,MAAM,CAACJ,OAAO;IAAEwB,SAAS,EAAEpB,MAAM,CAACoB;GAAW,GACxD,CAAA,CAAAR,qBAAA,GAAAhO,OAAO,CAACyO,aAAa,MAAA,IAAA,IAAAT,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAA,CAAA1I,IAAA,CAAAtF,OAAO,EAAiBoN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAC,KAAI,EAAE;AAE/C,EAAA,IAAM6D,OAAO,GAAGuB,QAAQ,CAACvB,OAAO;AAChC,EAAA,IAAM0B,cAAc,GAAA,CAAAT,iBAAA,GAAGb,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEoB,SAAS,cAAAP,iBAAA,KAAA,MAAA,GAAAA,iBAAA,GAAIM,QAAQ,CAACC,SAAS;AAE9D,EAAA,IAAMpF,MAAM,GAAG4D,OAAO,GAClBH,aAAa,CAAC;AAAEpD,IAAAA,MAAM,EAANA,MAAM;AAAEuD,IAAAA,OAAO,EAAPA;GAAS,CAAC,GAClCN,YAAY,CAAC;AAAEjD,IAAAA,MAAM,EAANA,MAAM;AAAEN,IAAAA,IAAI,EAAEiE,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE;AAAK,GAAC,CAAC;;AAEhD;AACA,EAAA,IAAMlJ,WAAW,GAAG,CAAA,CAAAiO,oBAAA,GAAAlO,OAAO,CAACC,WAAW,MAAA,IAAA,IAAAiO,oBAAA,uBAAnBA,oBAAA,CAAsBlB,OAAO,CAAC,KAAI,EAAE;AACxD,EAAA,IAAM2B,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGH,SAAS,EAAA;AAAA,IAAA,IAAAI,gBAAA;AAAA,IAAA,OAChC,CAAA,CAAAA,gBAAA,GAACJ,SAAS,CAACtQ,KAAK,MAAA,IAAA,IAAA0Q,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAIJ,SAAS,CAAClF,EAAE,MAAMoF,cAAc;AAAA,EAAA,CAAA;EAEtD,IAAMG,cAAc,GAClB,CAAA,CAAAV,MAAA,IAACnO,OAAO,CAACE,UAAU,IAAI,EAAE,EAAEwJ,IAAI,CAACiF,gBAAgB,CAAC,MAAA,IAAA,IAAAR,MAAA,KAAA,MAAA,GAAA,MAAA,GAAjDA,MAAA,CAAmDlQ,KAAK,MAAA,CAAAmQ,MAAA,GACxD,CAAC,CAAAhF,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAElJ,UAAU,KAAI,EAAE,EAAEwJ,IAAI,CAACiF,gBAAgB,CAAC,MAAA,IAAA,IAAAP,MAAA,uBAAjDA,MAAA,CAAmDnQ,KAAK,CAAA,IACxDyQ,cAAc;;AAEhB;AACA;EACA,IAAMI,gBAAgB,GAAG5D,UAAU,CAAA,CAAAmD,qBAAA,GAACrO,OAAO,CAAC+O,gBAAgB,MAAA,IAAA,IAAAV,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,qBAAA,CAAA/I,IAAA,CAAAtF,OAAO,EAAoBoN,MAAM,CAAC,CAAC;EAEvE,OAAO;AACLhE,IAAAA,MAAM,EAANA,MAAM;AACN4D,IAAAA,OAAO,EAAPA,OAAO;AACP/O,IAAAA,KAAK,EAAE,CAAAmL,MAAM,aAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEnL,KAAK,KAAIgK,QAAQ,CAACmF,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEjE,IAAI,CAAC;AAC9Cb,IAAAA,IAAI,EACFrI,WAAW,CAACqI,IAAI,KACf0E,OAAO,GACJP,CAAC,CAAC,yBAAyB,CAAC,GAC5B,CAAArD,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEU,KAAK,MAAIV,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEnL,KAAK,CAAA,CAAC,IACnCgK,QAAQ,CAACmF,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEjE,IAAI,CAAC;IACxB6F,SAAS,EAAE,CAAChC,OAAO,KAAI5D,MAAM,aAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE6F,SAAS,CAAA;AACxCC,IAAAA,SAAS,EAAE9F,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE8F,SAAS;AAC5BC,IAAAA,eAAe,EAAE/F,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE+F,eAAe;IACxCC,WAAW,EAAEnP,WAAW,CAACmP,WAAW,KAAIhG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEgG,WAAW,CAAA;IAC3DC,IAAI,EAAEpP,WAAW,CAACoP,IAAI,KAAIjG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEiG,IAAI,CAAA;AACtCC,IAAAA,cAAc,GAAAhB,qBAAA,GAAErO,WAAW,CAACqP,cAAc,MAAA,IAAA,IAAAhB,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAIlF,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEkG,cAAc;IACpEC,SAAS,EAAEtP,WAAW,CAACsP,SAAS,KAAInG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEmG,SAAS,CAAA;AACrDT,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBU,IAAAA,WAAW,EAAE/D,UAAU,CAACqD,gBAAgB,CAAC;IACzCW,sBAAsB,EACpBxP,WAAW,CAACyP,gBAAgB,KAAItG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEsG,gBAAgB,CAAA;AAC1DlB,IAAAA,SAAS,EAAEE,cAAc;AACzBG,IAAAA,cAAc,EAAdA,cAAc;IACdc,WAAW,EAAE1P,WAAW,CAAC0P,WAAW,KAAIvG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEuG,WAAW,CAAA;IAC3DC,cAAc,EAAE3P,WAAW,CAAC2P,cAAc,KAAIxG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEwG,cAAc,CAAA;AACpEtC,IAAAA,KAAK,EAAErN,WAAW,CAACqN,KAAK,KAAIlE,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEkE,KAAK,KAAI,EAAE;IAC/CuC,WAAW,EAAE5P,WAAW,CAAC4P,WAAW,KAAIzG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEyG,WAAW,CAAA;IAC3DC,cAAc,EAAE7P,WAAW,CAAC6P,cAAc,KAAI1G,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE0G,cAAc,CAAA;IACpEC,iBAAiB,EACf9P,WAAW,CAAC8P,iBAAiB,KAAI3G,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE2G,iBAAiB;GAC7D;AACH,CAAC;;AAED;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAC,MAAA,EAAA;EAAA,IAAAC,MAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,mBAAA;AAAA,EAAA,IAAM7G,MAAM,GAAAwG,MAAA,CAANxG,MAAM;IAAE8G,IAAI,GAAAN,MAAA,CAAJM,IAAI;AAAA,EAAA,OAAA,CAAAL,MAAA,GAAA,CAAAC,qBAAA,GAC5C1G,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA2G,mBAAA,GAAN3G,MAAM,CAAE5J,UAAU,MAAA,IAAA,IAAAuQ,mBAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAlBD,mBAAA,CAAoBI,SAAS,MAAA,IAAA,IAAAH,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA7BA,qBAAA,CAAA/K,IAAA,CAAA8K,mBAAA,EAAgC;AAAEG,IAAAA,IAAI,EAAJA;GAAM,CAAC,MAAA,IAAA,IAAAJ,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI1G,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA6G,mBAAA,GAAN7G,MAAM,CAAE5J,UAAU,MAAA,IAAA,IAAAyQ,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,mBAAA,CAAoBxQ,MAAM,MAAA,IAAA,IAAAoQ,MAAA,KAAA,MAAA,GAAAA,MAAA,GAAI,EAAE;AAAA,CAAA;AAE/E,IAAMO,UAAU,GAAG,SAAbA,UAAUA,CAAGF,IAAI,EAAA;AAAA,EAAA,OAAI,CAAChF,OAAO,CAAC,CAAAgF,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE/Q,QAAQ,KAAI,EAAE,CAAC;AAAA,CAAA;AAEzD,IAAMkR,SAAS,GAAG,SAAZA,SAASA,CAAGH,IAAI,EAAA;AAAA,EAAA,OAAI,CAAC,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEvQ,OAAO,KAAI,EAAE,EAAE2Q,IAAI,CAAC,UAAAvD,MAAM,EAAA;AAAA,IAAA,OAAIA,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI;EAAA,CAAA,CAAC;AAAA,CAAA;AAE5E,IAAMyH,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGnH,MAAM,EAAA;AAAA,EAAA,IAAAoH,iBAAA;AAAA,EAAA,OAAI,CAAApH,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAoH,iBAAA,GAANpH,MAAM,CAAEjK,QAAQ,cAAAqR,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAkBjR,OAAO,MAAK,KAAK;AAAA,CAAA;AAEtE,IAAMkR,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMR,IAAI,GAAAQ,MAAA,CAAJR,IAAI;IAAE9G,MAAM,GAAAsH,MAAA,CAANtH,MAAM;EAAA,OACxC,CAACmH,gBAAgB,CAACnH,MAAM,CAAC,IAAIgH,UAAU,CAACF,IAAI,CAAC;AAAA,CAAA;AAE/C,IAAMS,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAAC,mBAAA;AAAA,EAAA,IAAMX,IAAI,GAAAU,MAAA,CAAJV,IAAI;IAAE9G,MAAM,GAAAwH,MAAA,CAANxH,MAAM;AAAA,EAAA,OAC3C,CAAAA,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAyH,mBAAA,GAANzH,MAAM,CAAE5J,UAAU,MAAA,IAAA,IAAAqR,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,mBAAA,CAAoBC,UAAU,MAAK,KAAK,GACpC/E,UAAU,CAAC,CAAAmE,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE1Q,UAAU,KAAI,EAAE,CAAC,GAClC,IAAI;AAAA,CAAA;AAEV,IAAMuR,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMd,IAAI,GAAAc,MAAA,CAAJd,IAAI;IAAE9G,MAAM,GAAA4H,MAAA,CAAN5H,MAAM;AAAA,EAAA,OACvC,CAAC,CAAA8G,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEvQ,OAAO,KAAI,EAAE,EAAE2Q,IAAI,CAAC,UAAAvD,MAAM,EAAA;AAAA,IAAA,OAC/BF,aAAa,CAAC;AAAEzD,MAAAA,MAAM,EAANA,MAAM;AAAE2D,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC,CAACuD,IAAI,CACpC,UAAAjD,IAAI,EAAA;AAAA,MAAA,OAAIA,IAAI,CAAC4D,QAAQ,IAAI,CAAC/D,WAAW,CAAC;AAAEH,QAAAA,MAAM,EAANA,MAAM;AAAEM,QAAAA,IAAI,EAAJA;AAAK,OAAC,CAAC;AAAA,IAAA,CACzD,CAAC;AAAA,EAAA,CACH,CAAC;AAAA,CAAA;AAEH,IAAM6D,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMjB,IAAI,GAAAiB,MAAA,CAAJjB,IAAI;IAAE9G,MAAM,GAAA+H,MAAA,CAAN/H,MAAM;AAAA,EAAA,OACpCqH,kBAAkB,CAAC;AAAEP,IAAAA,IAAI,EAAJA,IAAI;AAAE9G,IAAAA,MAAM,EAANA;GAAQ,CAAC,IACpCuH,qBAAqB,CAAC;AAAET,IAAAA,IAAI,EAAJA,IAAI;AAAE9G,IAAAA,MAAM,EAANA;GAAQ,CAAC,IACvCiH,SAAS,CAACH,IAAI,CAAC,IACf,CAACa,iBAAiB,CAAC;AAAEb,IAAAA,IAAI,EAAJA,IAAI;AAAE9G,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;AAAA,CAAA;AAEtC,IAAMgI,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,MAAA,EAAyB;EAAA,IAAAC,WAAA,EAAAC,aAAA;AAAA,EAAA,IAAnBnI,MAAM,GAAAiI,MAAA,CAANjI,MAAM;IAAEoI,IAAI,GAAAH,MAAA,CAAJG,IAAI;AACpC,EAAA,IAAM3T,KAAK,GAAA,CAAAyT,WAAA,GAAGE,IAAI,aAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,MAAA,IAAA,IAAAyT,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAIE,IAAI;EAEjC,OAAO,CAAC,CAAApI,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAmI,aAAA,GAANnI,MAAM,CAAEqI,KAAK,cAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAelS,OAAO,KAAI,EAAE,EAAEgK,IAAI,CACxC,UAAAS,SAAS,EAAA;AAAA,IAAA,IAAA4H,iBAAA;AAAA,IAAA,OAAI,CAAA,CAAAA,iBAAA,GAAC5H,SAAS,CAACjM,KAAK,MAAA,IAAA,IAAA6T,iBAAA,KAAA,MAAA,GAAAA,iBAAA,GAAI5H,SAAS,CAACb,EAAE,MAAMpL,KAAK;AAAA,EAAA,CAC1D,CAAC;AACH,CAAC;AAED,IAAM8T,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAAC,MAAA,EAAAC,iBAAA,EAAAC,eAAA;AAAA,EAAA,IAAM3I,MAAM,GAAAwI,MAAA,CAANxI,MAAM;IAAEoI,IAAI,GAAAI,MAAA,CAAJJ,IAAI;AAAA,EAAA,OAAA,CAAAK,MAAA,GAAA,CAAAC,iBAAA,GACtCN,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEQ,WAAW,MAAA,IAAA,IAAAF,iBAAA,KAAA,MAAA,GAAAA,iBAAA,IAAAC,eAAA,GAAIX,cAAc,CAAC;AAAEhI,IAAAA,MAAM,EAANA,MAAM;AAAEoI,IAAAA,IAAI,EAAJA;AAAK,GAAC,CAAC,MAAA,IAAA,IAAAO,eAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,eAAA,CAAkCC,WAAW,MAAA,IAAA,IAAAH,MAAA,KAAA,MAAA,GAAAA,MAAA,GAAI,IAAI;AAAA,CAAA;AAE5E,IAAMI,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAAC,MAAA,EAAyB;AAAA,EAAA,IAAnB9I,MAAM,GAAA8I,MAAA,CAAN9I,MAAM;IAAEoI,IAAI,GAAAU,MAAA,CAAJV,IAAI;EAC9C,IAAIA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,IAAJA,IAAI,CAAEW,UAAU,EAAE,OAAOX,IAAI,CAACW,UAAU;EAE5C,IAAMH,WAAW,GAAGL,gBAAgB,CAAC;AAAEvI,IAAAA,MAAM,EAANA,MAAM;AAAEoI,IAAAA,IAAI,EAAJA;AAAK,GAAC,CAAC;AAEtD,EAAA,OAAO,CAAAQ,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEI,MAAM,MAAK,CAAC,GAAGJ,WAAW,CAAC,CAAC,CAAC,CAACnU,KAAK,GAAG6I,SAAS;AACrE,CAAC;AAED,IAAM2L,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,MAAA,EAAyB;AAAA,EAAA,IAAAC,oBAAA;AAAA,EAAA,IAAnBrC,IAAI,GAAAoC,MAAA,CAAJpC,IAAI;IAAE9G,MAAM,GAAAkJ,MAAA,CAANlJ,MAAM;EACzC,IAAMqI,KAAK,GAAGrI,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEqI,KAAK;AAC3B,EAAA,IAAI,EAACA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,IAALA,KAAK,CAAElS,OAAO,CAAA,IAAI,EAAA,CAAAgT,oBAAA,GAACd,KAAK,CAACe,aAAa,cAAAD,oBAAA,KAAA,MAAA,IAAnBA,oBAAA,CAAAtN,IAAA,CAAAwM,KAAK,EAAiB,CAAAvB,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEvQ,OAAO,KAAI,EAAE,CAAC,CAAA,EAAE,OAAO,EAAE;EAE7E,OAAO,CAAC,CAAAuQ,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEuB,KAAK,KAAI,EAAE,EAAEgB,MAAM,CAAC,UAACC,OAAO,EAAElB,IAAI,EAAEjK,KAAK,EAAK;IAAA,IAAAoL,MAAA,EAAAC,mBAAA;IAC1D,IAAM7J,MAAM,GAAGqI,cAAc,CAAC;AAAEhI,MAAAA,MAAM,EAANA,MAAM;AAAEoI,MAAAA,IAAI,EAAJA;AAAK,KAAC,CAAC;IAC/C,IAAMQ,WAAW,GAAGL,gBAAgB,CAAC;AAAEvI,MAAAA,MAAM,EAANA,MAAM;AAAEoI,MAAAA,IAAI,EAAJA;AAAK,KAAC,CAAC;AACtD,IAAA,IAAMqB,aAAa,GAAA,CAAAF,MAAA,GAAA,CAAAC,mBAAA,GACjBpB,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEqB,aAAa,cAAAD,mBAAA,KAAA,MAAA,GAAAA,mBAAA,GACnB7J,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAE8J,aAAa,MAAA,IAAA,IAAAF,MAAA,KAAA,MAAA,GAAAA,MAAA,GACpBX,WAAW,GAAGA,WAAW,CAACI,MAAM,GAAG,CAAC,GAAG1L,SAAU;IACpD,IAAImM,aAAa,KAAK,KAAK,EAAEH,OAAO,CAACI,IAAI,CAACvL,KAAK,CAAC;AAEhD,IAAA,OAAOmL,OAAO;EAChB,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAED,IAAMK,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAAAC,MAAA,EAAyB;AAAA,EAAA,IAAAC,qBAAA;AAAA,EAAA,IAAnB/C,IAAI,GAAA8C,MAAA,CAAJ9C,IAAI;IAAE9G,MAAM,GAAA4J,MAAA,CAAN5J,MAAM;EACnD,IAAMqI,KAAK,GAAGrI,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEqI,KAAK;AAC3B,EAAA,IAAI,EAACA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,IAALA,KAAK,CAAElS,OAAO,CAAA,IAAI,EAAA,CAAA0T,qBAAA,GAACxB,KAAK,CAACe,aAAa,cAAAS,qBAAA,KAAA,MAAA,IAAnBA,qBAAA,CAAAhO,IAAA,CAAAwM,KAAK,EAAiB,CAAAvB,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEvQ,OAAO,KAAI,EAAE,CAAC,CAAA,EAAE,OAAO,EAAE;EAE7E,OAAO,CAAC,CAAAuQ,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEuB,KAAK,KAAI,EAAE,EAAEgB,MAAM,CAAC,UAACC,OAAO,EAAElB,IAAI,EAAEjK,KAAK,EAAK;IAC1D,IAAMyK,WAAW,GAAGL,gBAAgB,CAAC;AAAEvI,MAAAA,MAAM,EAANA,MAAM;AAAEoI,MAAAA,IAAI,EAAJA;AAAK,KAAC,CAAC;AACtD,IAAA,IAAM0B,SAAS,GAAG,CAAC,CAAAlB,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEI,MAAM,KAAI,CAAC,IAAI,CAAC;AAChD,IAAA,IAAIc,SAAS,IAAI,CAACjB,wBAAwB,CAAC;AAAE7I,MAAAA,MAAM,EAANA,MAAM;AAAEoI,MAAAA,IAAI,EAAJA;AAAK,KAAC,CAAC,EAAE;AAC5DkB,MAAAA,OAAO,CAACI,IAAI,CAACvL,KAAK,CAAC;AACrB,IAAA;AAEA,IAAA,OAAOmL,OAAO;EAChB,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAED,IAAMS,cAAc,GAAG,SAAjBA,cAAcA,CAAG3V,OAAO,EAAI;AAChC,EAAA,IAAM4V,KAAK,GAAGC,MAAM,CAAC7V,OAAO,CAAC,IAAI,CAAC;EAClC,IAAI4V,KAAK,IAAIA,KAAK,GAAG7V,YAAY,CAACG,IAAI,KAAK,CAAC,EAAE;IAC5C,OAAO;AAAEG,MAAAA,KAAK,EAAEuV,KAAK,GAAG7V,YAAY,CAACG,IAAI;AAAE4V,MAAAA,IAAI,EAAE;KAAQ;AAC3D,EAAA;EAEA,IAAIF,KAAK,IAAIA,KAAK,GAAG7V,YAAY,CAACE,KAAK,KAAK,CAAC,EAAE;IAC7C,OAAO;AAAEI,MAAAA,KAAK,EAAEuV,KAAK,GAAG7V,YAAY,CAACE,KAAK;AAAE6V,MAAAA,IAAI,EAAE;KAAS;AAC7D,EAAA;EAEA,OAAO;AAAEzV,IAAAA,KAAK,EAAEuV,KAAK;AAAEE,IAAAA,IAAI,EAAE;GAAW;AAC1C,CAAC;AAED,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAM3V,KAAK,GAAA2V,MAAA,CAAL3V,KAAK;IAAEyV,IAAI,GAAAE,MAAA,CAAJF,IAAI;AAAA,EAAA;AACnC;AACA,IAAA,CAACD,MAAM,CAACxV,KAAK,CAAC,IAAI,CAAC,KAAKN,YAAY,CAAC+V,IAAI,CAAC,IAAI,CAAC;AAAC;AAAA,CAAA;AAElD,IAAMG,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGjW,OAAO,EAAA;AAAA,EAAA,OAChC2V,cAAc,CAAC3V,OAAO,CAAC,CAACK,KAAK,GAAGE,mBAAmB;AAAA,CAAA;AAErD,IAAM2V,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGtK,MAAM,EAAI;AAAA,EAAA,IAAAuK,iBAAA;EACzC,IAAMvU,QAAQ,GAAGgK,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAuK,iBAAA,GAANvK,MAAM,CAAEjK,QAAQ,MAAA,IAAA,IAAAwU,iBAAA,KAAA,MAAA,IAAA,CAAAA,iBAAA,GAAhBA,iBAAA,CAAkBC,QAAQ,cAAAD,iBAAA,KAAA,MAAA,GAAA,MAAA,GAA1BA,iBAAA,CAA4BvU,QAAQ;EACrD,IAAI,CAACA,QAAQ,EAAE,OAAOyU,GAAG,CAACC,MAAM,EAAE;AAElC,EAAA,OAAOD,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAArR,eAAA,KACtBtD,QAAQ,EAAGyU,GAAG,CAACC,MAAM,EAAE,CAACC,KAAK,CAAC;AAC7B;AACA;IACAlW,KAAK,EAAEgW,GAAG,CAACG,MAAM,EAAE,CAACC,IAAI,CACtB,eAAe,EACf,YAAA;MAAA,OACE7H,CAAC,CAAC,oCAAoC,EAAE;AACtC8H,QAAAA,GAAG,EAAEnW;AACP,OAAC,CAAC;AAAA,IAAA,CAAA,EACJ,UAAAP,OAAO,EAAA;AAAA,MAAA,OAAI,CAACiW,kBAAkB,CAACjW,OAAO,CAAC;IAAA,CACzC;GACD,CAAC,CACH,CAAC;AACJ,CAAC;AAED,IAAM2W,aAAa,GAAG,SAAhBA,aAAaA,CAAG3W,OAAO,EAAI;AAC/B,EAAA,IAAA4W,eAAA,GAAwBjB,cAAc,CAAC3V,OAAO,CAAC;IAAvCK,KAAK,GAAAuW,eAAA,CAALvW,KAAK;IAAEyV,IAAI,GAAAc,eAAA,CAAJd,IAAI;AACnB,EAAA,IAAMe,SAAS,GAAGxW,KAAK,KAAK,CAAC,GAAGyV,IAAI,CAACxL,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAGwL,IAAI;AAE7D,EAAA,OAAA,EAAA,CAAA3L,MAAA,CAAU9J,KAAK,EAAA,GAAA,CAAA,CAAA8J,MAAA,CAAI0M,SAAS,CAAA;AAC9B,CAAC;AAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGnV,QAAQ,EAAI;AACpC,EAAA,IAAI6L,KAAK,CAACC,OAAO,CAAC9L,QAAQ,CAAC,EAAE,OAAO;AAAEE,IAAAA,OAAO,EAAEF;GAAU;EAEzD,OAAOA,QAAQ,IAAI,EAAE;AACvB,CAAC;AAED,IAAMoV,eAAe,GAAG,SAAlBA,eAAeA,GAAA;AAAA,EAAA,IAAIC,SAAS,GAAAC,SAAA,CAAArC,MAAA,GAAA,CAAA,IAAAqC,SAAA,CAAA,CAAA,CAAA,KAAA/N,SAAA,GAAA+N,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAAA,OACrCC,cAAc,CAACxV,cAAc,EAAAsH,eAAA,CAAAA,eAAA,KACxBgO,SAAS,CAAA,EAAA,EAAA,EAAA;AACZrV,IAAAA,QAAQ,EAAEmV,iBAAiB,CAACE,SAAS,CAACrV,QAAQ;AAAC,GAAA,CAChD,CAAC;AAAA,CAAA;AAEJ,IAAMwV,WAAW,GAAG,SAAdA,WAAWA,CAAGC,IAAI,EAAA;AAAA,EAAA,OACtBA,IAAI,KAAKpU,cAAc,CAACE,EAAE,GAAGL,SAAS,CAACE,EAAE,GAAGF,SAAS,CAACC,GAAG;AAAA,CAAA;AAE3D,IAAMuU,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAG3K,KAAK,EAAA;AAAA,EAAA,OACjCA,KAAK,KAAK/G,wBAAwB,CAACC,MAAM,GACrCD,wBAAwB,CAACC,MAAM,GAC/BD,wBAAwB,CAACtF,KAAK;AAAA,CAAA;;AAEpC;AACA;AACA;AACA,IAAMiX,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,MAAA,EAAiC;EAAA,IAAAC,sBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA;AAAA,EAAA,IAA3BjM,MAAM,GAAA2L,MAAA,CAAN3L,MAAM;IAAE2D,MAAM,GAAAgI,MAAA,CAANhI,MAAM;IAAEjE,IAAI,GAAAiM,MAAA,CAAJjM,IAAI;AAClD,EAAA,IAAMnJ,OAAO,GAAG,CAAAyJ,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEzJ,OAAO,KAAI,EAAE;EACrC,IAAMuO,QAAQ,GAAG,CAAA,CAAA8G,sBAAA,GAAArV,OAAO,CAACyO,aAAa,MAAA,IAAA,IAAA4G,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,sBAAA,CAAA/P,IAAA,CAAAtF,OAAO,EAAiBoN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAC,KAAI,EAAE;AAC5D,EAAA,IAAM6D,OAAO,GAAG,CAAAI,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEJ,OAAO,KAAIuB,QAAQ,CAACvB,OAAO;AACnD;AACA;AACA,EAAA,IAAMwB,SAAS,GAAA,CAAA8G,kBAAA,GAAGlI,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEoB,SAAS,cAAA8G,kBAAA,KAAA,MAAA,GAAAA,kBAAA,GAAI/G,QAAQ,CAACC,SAAS;AAEzD,EAAA,IAAMmH,aAAa,GACjB,CAAC,EAAA,CAAAJ,qBAAA,GAACvV,OAAO,CAAC4V,qBAAqB,MAAA,IAAA,IAAAL,qBAAA,KAAA,MAAA,IAA7BA,qBAAA,CAAAjQ,IAAA,CAAAtF,OAAO,EAAyB;AAAEgN,IAAAA,OAAO,EAAPA,OAAO;AAAE7D,IAAAA,IAAI,EAAJA,IAAI;AAAEiE,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC,CAAA,IAC5D,CAAC,EAAA,CAAAoI,sBAAA,GAACxV,OAAO,CAAC6V,oBAAoB,MAAA,IAAA,IAAAL,sBAAA,KAAA,MAAA,IAA5BA,sBAAA,CAAAlQ,IAAA,CAAAtF,OAAO,EAAwB;AAAEgN,IAAAA,OAAO,EAAPA,OAAO;AAAE7D,IAAAA,IAAI,EAAJA,IAAI;AAAEiE,IAAAA,MAAM,EAANA,MAAM;AAAEoB,IAAAA,SAAS,EAATA;AAAU,GAAC,CAAC,CAAA;AAExE,EAAA,IAAMsH,eAAe,GAAG,CAAC9V,OAAO,CAACN,OAAO,IAAI,EAAE,EAC3CqW,OAAO,CAAC,UAAA3M,MAAM,EAAA;AAAA,IAAA,OAAIA,MAAM,CAAClJ,UAAU,IAAI,EAAE;AAAA,EAAA,CAAA,CAAC,CAC1C8H,MAAM,CAAChI,OAAO,CAACE,UAAU,IAAI,EAAE,CAAC,CAChCwJ,IAAI,CAAC,UAAAmI,IAAI,EAAA;AAAA,IAAA,IAAAmE,YAAA;AAAA,IAAA,OAAI,CAAA,CAAAA,YAAA,GAACnE,IAAI,CAAC3T,KAAK,MAAA,IAAA,IAAA8X,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAInE,IAAI,CAACvI,EAAE,MAAMkF,SAAS;EAAA,CAAA,CAAC;AAEtD,EAAA,IAAMyH,UAAU,GACd,CAAA,CAAAR,qBAAA,GAAAzV,OAAO,CAACkW,aAAa,MAAA,IAAA,IAAAT,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAA,CAAAnQ,IAAA,CAAAtF,OAAO,EAAiBoN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAC,OAAAuM,qBAAA,GACrC1V,OAAO,CAACmW,gBAAgB,cAAAT,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,qBAAA,CAAApQ,IAAA,CAAAtF,OAAO,EAAoBgN,OAAO,CAAC,CAAA;EAErC,OAAA,EAAA,CAAAhF,MAAA,CAAAoO,kBAAA,CACMT,aAAa,GAAG,CAACnS,wBAAwB,CAACC,MAAM,CAAC,GAAG,EAAE,CAAA,EAAA2S,kBAAA,CACtDN,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,MAAA,IAAfA,eAAe,CAAEvL,KAAK,GACtB,CAAC2K,qBAAqB,CAACY,eAAe,CAACvL,KAAK,CAAC,CAAC,GAC9C,EAAE,GAAA6L,kBAAA,CACF,CAAAH,UAAU,KAAA,IAAA,IAAVA,UAAU,uBAAVA,UAAU,CAAEI,IAAI,MAAK9S,cAAc,GACnC,CAACC,wBAAwB,CAACE,YAAY,CAAC,GACvC,EAAE,CAAA,CAAA;AAEV,CAAC;AAED,IAAM4S,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,QAAQ,EAAA;AAAA,EAAA,OAC/BA,QAAQ,KAAK7V,SAAS,CAACE,EAAE,GAAGC,cAAc,CAACE,EAAE,GAAGF,cAAc,CAACC,GAAG;AAAA,CAAA;;AAEpE;AACA,IAAM0V,OAAO,GAAG,SAAVA,OAAOA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAAC,WAAA;AAAA,EAAA,IAAMjP,MAAM,GAAAgP,MAAA,CAANhP,MAAM;IAAEJ,GAAG,GAAAoP,MAAA,CAAHpP,GAAG;AAAA,EAAA,OAAOI,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAiP,WAAA,GAANjP,MAAM,CAAGJ,GAAG,CAAC,MAAA,IAAA,IAAAqP,WAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,WAAA,CAAexY,KAAK;AAAA,CAAA;AAEzD,IAAMyY,OAAO,GAAG,SAAVA,OAAOA,CAAGC,UAAU,EAAA;EAAA,OAAKvL,KAAK,CAACC,OAAO,CAACsL,UAAU,CAAC,GAAGA,UAAU,GAAG,EAAE;AAAA,CAAC;AAE3E,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAA;AAAA,EAAA,IAAAC,iBAAA,EAAAC,cAAA,EAAAC,mBAAA,EAAAC,gBAAA,EAAAC,aAAA,EAAAC,iBAAA,EAAAC,cAAA;AAAA,EAAA,IAAI3N,MAAM,GAAAqL,SAAA,CAAArC,MAAA,GAAA,CAAA,IAAAqC,SAAA,CAAA,CAAA,CAAA,KAAA/N,SAAA,GAAA+N,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAAA,OAAM;AAC5CtV,IAAAA,QAAQ,EAAE,CAAA,CAAAsX,iBAAA,GAAArN,MAAM,CAACjK,QAAQ,MAAA,IAAA,IAAAsX,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,iBAAA,CAAiBrX,QAAQ,KAAI,QAAQ;AAC/CyK,IAAAA,SAAS,EAAE,CAAA,CAAA6M,cAAA,GAAAtN,MAAM,CAAC9J,KAAK,MAAA,IAAA,IAAAoX,cAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,cAAA,CAActX,QAAQ,KAAI,WAAW;AAChDI,IAAAA,UAAU,EAAE,CAAA,CAAAmX,mBAAA,GAAAvN,MAAM,CAAC5J,UAAU,MAAA,IAAA,IAAAmX,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,mBAAA,CAAmBvX,QAAQ,KAAI,YAAY;AACvDO,IAAAA,OAAO,EAAE,CAAA,CAAAiX,gBAAA,GAAAxN,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAiX,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgBxX,QAAQ,KAAI,SAAS;AAC9CU,IAAAA,KAAK,EAAE,CAAA,CAAA+W,aAAA,GAAAzN,MAAM,CAACtJ,KAAK,MAAA,IAAA,IAAA+W,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAczX,QAAQ,KAAI,iBAAiB;AAClDwU,IAAAA,QAAQ,GAAAkD,iBAAA,GAAE1N,MAAM,CAACjK,QAAQ,cAAA2X,iBAAA,KAAA,MAAA,IAAA,CAAAA,iBAAA,GAAfA,iBAAA,CAAiBlD,QAAQ,MAAA,IAAA,IAAAkD,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAzBA,iBAAA,CAA2B1X,QAAQ;AAC7CqS,IAAAA,KAAK,EAAE,CAAA,CAAAsF,cAAA,GAAA3N,MAAM,CAACqI,KAAK,MAAA,IAAA,IAAAsF,cAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,cAAA,CAAc3X,QAAQ,KAAI,YAAY;AAC7C4X,IAAAA,MAAM,EAAE,QAAQ;AAChBlO,IAAAA,IAAI,EAAE;GACP;AAAA,CAAC;AAEF,IAAMmO,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA0C;EAAA,IAAAC,QAAA,EAAAC,YAAA;AAAA,EAAA,IAAAC,MAAA,GAAA3C,SAAA,CAAArC,MAAA,GAAA,CAAA,IAAAqC,SAAA,CAAA,CAAA,CAAA,KAAA/N,SAAA,GAAA+N,SAAA,CAAA,CAAA,CAAA,GAAP,EAAE;IAAA4C,aAAA,GAAAD,MAAA,CAA/BhQ,MAAM;AAANA,IAAAA,MAAM,GAAAiQ,aAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,aAAA;IAAAC,aAAA,GAAAF,MAAA,CAAEhO,MAAM;AAANA,IAAAA,MAAM,GAAAkO,aAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,aAAA;AACnD,EAAA,IAAMC,IAAI,GAAGf,mBAAmB,CAACpN,MAAM,CAAC;AAExC,EAAA,IAAM5J,UAAU,GAAG8W,OAAO,CAACH,OAAO,CAAC;AAAE/O,IAAAA,MAAM,EAANA,MAAM;IAAEJ,GAAG,EAAEuQ,IAAI,CAAC/X;AAAW,GAAC,CAAC,CAAC;EACrE,IAAMgY,QAAQ,GAAGrB,OAAO,CAAC;AAAE/O,IAAAA,MAAM,EAANA,MAAM;IAAEJ,GAAG,EAAEuQ,IAAI,CAACzX;AAAM,GAAC,CAAC;EAErD,OAAO;IACLgJ,IAAI,EAAEqN,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAACzO;KAAM,CAAC,IAAI,EAAE;IAC/ClD,MAAM,EAAEuQ,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAACP;AAAO,KAAC,CAAC,KAAK9W,WAAW,CAACE,QAAQ;AACtEjB,IAAAA,QAAQ,EAAEmX,OAAO,CAACH,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAACpY;AAAS,KAAC,CAAC,CAAC;AAC1D0K,IAAAA,SAAS,EAAA,CAAAqN,QAAA,GAAEf,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAAC1N;AAAU,KAAC,CAAC,MAAA,IAAA,IAAAqN,QAAA,KAAA,MAAA,GAAAA,QAAA,GAAI,IAAI;AAC3D1X,IAAAA,UAAU,EAAVA,UAAU;AACViY,IAAAA,aAAa,EAAExB,gBAAgB,CAAA,CAAAkB,YAAA,GAAC3X,UAAU,CAAC,CAAC,CAAC,cAAA2X,YAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,YAAA,CAAejB,QAAQ,CAAC;AACxDpW,IAAAA,KAAK,EAAEiL,KAAK,CAACyM,QAAQ,CAAC,IAAItM,OAAO,CAACsM,QAAQ,CAAC,GAAG,IAAI,GAAGA,QAAQ;AAC7D7X,IAAAA,OAAO,EAAE2W,OAAO,CAACH,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAAC5X;AAAQ,KAAC,CAAC,CAAC;AACxDiU,IAAAA,QAAQ,EAAE2D,IAAI,CAAC3D,QAAQ,GAAGuC,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAAC3D;KAAU,CAAC,GAAG,IAAI;AACxEnC,IAAAA,KAAK,EAAE6E,OAAO,CAACH,OAAO,CAAC;AAAE/O,MAAAA,MAAM,EAANA,MAAM;MAAEJ,GAAG,EAAEuQ,IAAI,CAAC9F;AAAM,KAAC,CAAC;GACpD;AACH,CAAC;AAED,IAAMiG,WAAW,GAAG,SAAdA,WAAWA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMvO,MAAM,GAAAuO,MAAA,CAANvO,MAAM;IAAEjK,QAAQ,GAAAwY,MAAA,CAARxY,QAAQ;EAAA,OAAQ;IAC7CyY,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAACjK,QAAQ,EAAA,QAAA,CAAQ;AACrDtB,IAAAA,KAAK,EAAEsB;GACR;AAAA,CAAC;;AAEF;AACA,IAAM0Y,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,MAAA,EAAqC;AAAA,EAAA,IAA/B1O,MAAM,GAAA0O,MAAA,CAAN1O,MAAM;IAAEhC,MAAM,GAAA0Q,MAAA,CAAN1Q,MAAM;IAAEjI,QAAQ,GAAA2Y,MAAA,CAAR3Y,QAAQ;AACjD,EAAA,IAAMC,QAAQ,GAAGoX,mBAAmB,CAACpN,MAAM,CAAC,CAACjK,QAAQ;AACrD,EAAA,IAAM4Y,OAAO,GAAG5Y,QAAQ,CAACmI,GAAG,CAAC,UAAAkC,OAAO,EAAA;AAAA,IAAA,OAAIA,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEP,EAAE;AAAA,EAAA,CAAA,CAAC,CAAC+O,MAAM,CAACC,OAAO,CAAC;AACpE,EAAA,IAAMC,OAAO,GAAG5B,OAAO,CAACH,OAAO,CAAC;AAAE/O,IAAAA,MAAM,EAANA,MAAM;AAAEJ,IAAAA,GAAG,EAAE5H;AAAS,GAAC,CAAC,CAAC,CACxD4Y,MAAM,CAAC,UAAAxO,OAAO,EAAA;AAAA,IAAA,OAAI,CAAAA,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEP,EAAE,KAAI,CAAC8O,OAAO,CAAC7P,QAAQ,CAACsB,OAAO,CAACP,EAAE,CAAC;AAAA,EAAA,CAAA,CAAC,CAC/D3B,GAAG,CAAC,UAAAkC,OAAO,EAAA;AAAA,IAAA,OAAAhD,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAUgD,OAAO,CAAA,EAAA,EAAA,EAAA;AAAE2O,MAAAA,QAAQ,EAAE;AAAI,KAAA,CAAA;AAAA,EAAA,CAAG,CAAC;AAEnD,EAAA,IAAMC,KAAK,GAAG,CAACV,WAAW,CAAC;AAAEtO,IAAAA,MAAM,EAANA,MAAM;AAAEjK,IAAAA,QAAQ,EAARA;AAAS,GAAC,CAAC,CAAC;EACjD,IAAI+Y,OAAO,CAAC9F,MAAM,EAAE;AAAA,IAAA,IAAAiG,gBAAA;AAClB;IACA,IAAMC,OAAO,GAAGhC,OAAO,CAAClP,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAiR,gBAAA,GAANjR,MAAM,CAAGhI,QAAQ,CAAC,MAAA,IAAA,IAAAiZ,gBAAA,uBAAlBA,gBAAA,CAAoBC,OAAO,CAAC;IACpDF,KAAK,CAACtF,IAAI,CAAC;AACT8E,MAAAA,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAKvI,QAAQ,EAAA,UAAA,CAAU;MAC3BvB,KAAK,EAAA,EAAA,CAAA8J,MAAA,CAAAoO,kBAAA,CAAMuC,OAAO,CAAA,EAAAvC,kBAAA,CAAKmC,OAAO,CAAA;AAChC,KAAC,CAAC;AACJ,EAAA;AAEA,EAAA,OAAOE,KAAK;AACd,CAAC;AAED,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMpP,MAAM,GAAAoP,MAAA,CAANpP,MAAM;IAAES,SAAS,GAAA2O,MAAA,CAAT3O,SAAS;EAAA,OAAQ;IAC/C+N,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAACS,SAAS,EAAA,QAAA,CAAQ;AACtDhM,IAAAA,KAAK,EAAEgM;GACR;AAAA,CAAC;AAEF,IAAM4O,UAAU,GAAG,SAAbA,UAAUA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMtP,MAAM,GAAAsP,MAAA,CAANtP,MAAM;IAAEzJ,OAAO,GAAA+Y,MAAA,CAAP/Y,OAAO;EAAA,OAAQ;IAC3CiY,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAACzJ,OAAO,EAAA,QAAA,CAAQ;AACpD9B,IAAAA,KAAK,EAAE8B;GACR;AAAA,CAAC;AAEF,IAAMgZ,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMxP,MAAM,GAAAwP,MAAA,CAANxP,MAAM;IAAE5J,UAAU,GAAAoZ,MAAA,CAAVpZ,UAAU;EAAA,OAAQ;IACjDoY,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAAC5J,UAAU,EAAA,QAAA,CAAQ;AACvD3B,IAAAA,KAAK,EAAE2B;GACR;AAAA,CAAC;AAEF,IAAMqZ,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAM1P,MAAM,GAAA0P,MAAA,CAAN1P,MAAM;IAAE5J,UAAU,GAAAsZ,MAAA,CAAVtZ,UAAU;IAAE0W,QAAQ,GAAA4C,MAAA,CAAR5C,QAAQ;AAAA,EAAA,OACtDyC,aAAa,CAAC;AACZvP,IAAAA,MAAM,EAANA,MAAM;AACN5J,IAAAA,UAAU,EAAEA,UAAU,CAAC8H,GAAG,CAAC,UAAA+C,SAAS,EAAA;MAAA,OAClC0O,KAAK,CAAC,UAAU,EAAEpE,WAAW,CAACuB,QAAQ,CAAC,EAAE7L,SAAS,CAAC;IAAA,CACrD;AACF,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAM2O,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAM7P,MAAM,GAAA6P,MAAA,CAAN7P,MAAM;IAAEtJ,KAAK,GAAAmZ,MAAA,CAALnZ,KAAK;EAAA,OAAQ;IACvC8X,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAACtJ,KAAK,EAAA,QAAA,CAAQ;AAClDjC,IAAAA,KAAK,EAAEiC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAALA,KAAK,GAAI;GACjB;AAAA,CAAC;AAEF,IAAMoZ,SAAS,GAAG,SAAZA,SAASA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAM/P,MAAM,GAAA+P,MAAA,CAAN/P,MAAM;IAAExD,MAAM,GAAAuT,MAAA,CAANvT,MAAM;EAAA,OAAQ;IACzCgS,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAAC4N,MAAM,EAAA,QAAA,CAAQ;IACnDnZ,KAAK,EAAE+H,MAAM,GAAG1F,WAAW,CAACC,OAAO,GAAGD,WAAW,CAACE;GACnD;AAAA,CAAC;AAEF,IAAMgZ,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,MAAA,EAAA;AAAA,EAAA,IAAMjQ,MAAM,GAAAiQ,MAAA,CAANjQ,MAAM;IAAEqI,KAAK,GAAA4H,MAAA,CAAL5H,KAAK;EAAA,OAAQ;IACvCmG,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAK6O,mBAAmB,CAACpN,MAAM,CAAC,CAACqI,KAAK,EAAA,QAAA,CAAQ;AAClD5T,IAAAA,KAAK,EAAE4T;GACR;AAAA,CAAC;AAEF,IAAM6H,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,MAAA,EAAoC;AAAA,EAAA,IAA9BnS,MAAM,GAAAmS,MAAA,CAANnS,MAAM;IAAEhI,QAAQ,GAAAma,MAAA,CAARna,QAAQ;IAAEmI,KAAK,GAAAgS,MAAA,CAALhS,KAAK;AAChD,EAAA,IAAMiS,IAAI,GAAGlD,OAAO,CAACH,OAAO,CAAC;AAAE/O,IAAAA,MAAM,EAANA,MAAM;AAAEJ,IAAAA,GAAG,EAAE5H;AAAS,GAAC,CAAC,CAAC;AACxD;AACA,EAAA,IAAM8Y,OAAO,GAAGsB,IAAI,CAACjS,KAAK,CAAC;EAC3B,IAAMkS,QAAQ,GAAGD,IAAI,CAACxB,MAAM,CAAC,UAAC0B,CAAC,EAAEC,CAAC,EAAA;IAAA,OAAKA,CAAC,KAAKpS,KAAK;EAAA,CAAA,CAAC;EAEnD,IAAMqS,MAAM,GAAG,CAAC;AAAEhC,IAAAA,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAKvI,QAAQ,EAAA,QAAA,CAAQ;AAAEvB,IAAAA,KAAK,EAAE4b;AAAS,GAAC,CAAC;AAC/D,EAAA,IAAIvB,OAAO,KAAA,IAAA,IAAPA,OAAO,eAAPA,OAAO,CAAEjP,EAAE,EAAE;AAAA,IAAA,IAAA4Q,iBAAA;AACf;IACA,IAAMvB,OAAO,GAAGhC,OAAO,CAAClP,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAyS,iBAAA,GAANzS,MAAM,CAAGhI,QAAQ,CAAC,MAAA,IAAA,IAAAya,iBAAA,uBAAlBA,iBAAA,CAAoBvB,OAAO,CAAC;IACpDsB,MAAM,CAAC9G,IAAI,CAAC;AACV8E,MAAAA,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAKvI,QAAQ,EAAA,UAAA,CAAU;MAC3BvB,KAAK,EAAA,EAAA,CAAA8J,MAAA,CAAAoO,kBAAA,CAAMuC,OAAO,CAAA,EAAA,CAAA9R,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAO0R,OAAO,CAAA,EAAA,EAAA,EAAA;AAAEC,QAAAA,QAAQ,EAAE;AAAI,OAAA,CAAA,CAAA;AAClD,KAAC,CAAC;AACJ,EAAA;AAEA,EAAA,OAAOyB,MAAM;AACf,CAAC;AAED,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,MAAA,EAA6B;AAAA,EAAA,IAAvB3S,MAAM,GAAA2S,MAAA,CAAN3S,MAAM;IAAEhI,QAAQ,GAAA2a,MAAA,CAAR3a,QAAQ;AACzC,EAAA,IAAMoa,IAAI,GAAGlD,OAAO,CAACH,OAAO,CAAC;AAAE/O,IAAAA,MAAM,EAANA,MAAM;AAAEJ,IAAAA,GAAG,EAAE5H;AAAS,GAAC,CAAC,CAAC;AACxD,EAAA,IAAM8Y,OAAO,GAAGsB,IAAI,CACjBxB,MAAM,CAAC,UAAAxG,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEvI,EAAE;AAAA,EAAA,CAAA,CAAC,CACxB3B,GAAG,CAAC,UAAAkK,IAAI,EAAA;AAAA,IAAA,OAAAhL,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAUgL,IAAI,CAAA,EAAA,EAAA,EAAA;AAAE2G,MAAAA,QAAQ,EAAE;AAAI,KAAA,CAAA;AAAA,EAAA,CAAG,CAAC;EAE7C,IAAMyB,MAAM,GAAG,CAAC;AAAEhC,IAAAA,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAKvI,QAAQ,EAAA,QAAA,CAAQ;AAAEvB,IAAAA,KAAK,EAAE;AAAG,GAAC,CAAC;EACzD,IAAIqa,OAAO,CAAC9F,MAAM,EAAE;AAAA,IAAA,IAAA4H,iBAAA;AAClB;IACA,IAAM1B,OAAO,GAAGhC,OAAO,CAAClP,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAA4S,iBAAA,GAAN5S,MAAM,CAAGhI,QAAQ,CAAC,MAAA,IAAA,IAAA4a,iBAAA,uBAAlBA,iBAAA,CAAoB1B,OAAO,CAAC;IACpDsB,MAAM,CAAC9G,IAAI,CAAC;AACV8E,MAAAA,IAAI,EAAA,EAAA,CAAAjQ,MAAA,CAAKvI,QAAQ,EAAA,UAAA,CAAU;MAC3BvB,KAAK,EAAA,EAAA,CAAA8J,MAAA,CAAAoO,kBAAA,CAAMuC,OAAO,CAAA,EAAAvC,kBAAA,CAAKmC,OAAO,CAAA;AAChC,KAAC,CAAC;AACJ,EAAA;AAEA,EAAA,OAAO0B,MAAM;AACf,CAAC;;;;ACpiBD,IAAMK,YAAY,GAAG,SAAfA,YAAYA,CAAA1U,IAAA,EAUZ;AAAA,EAAA,IAAA0E,kBAAA;AAAA,EAAA,IATJiG,IAAI,GAAA3K,IAAA,CAAJ2K,IAAI;IACJ9G,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IACNiB,SAAS,GAAA9E,IAAA,CAAT8E,SAAS;IACT9C,KAAK,GAAAhC,IAAA,CAALgC,KAAK;IACI2S,WAAW,GAAA3U,IAAA,CAApB4U,OAAO;IACSC,kBAAkB,GAAA7U,IAAA,CAAlC8U,cAAc;IACJC,YAAY,GAAA/U,IAAA,CAAtBgV,QAAQ;IAAAC,aAAA,GAAAjV,IAAA,CACRkV,QAAQ;IAARA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,aAAA;IAAAE,cAAA,GAAAnV,IAAA,CACtBoV,SAAS;IAATA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,cAAA;AAEvB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAM0O,OAAO,GAAGvT,KAAK,KAAK,CAAC;EAC3B,IAAMwT,QAAQ,GAAG,CAAC,EAAC1Q,SAAS,aAATA,SAAS,KAAA,MAAA,IAATA,SAAS,CAAEH,KAAK,CAAA;EACnC,IAAM8Q,OAAO,GAAG,CAAC,EAAC3Q,SAAS,aAATA,SAAS,KAAA,MAAA,IAATA,SAAS,CAAEpC,IAAI,CAAA;EACjC,IAAM8B,cAAc,GAAG,CAAC,CAAAX,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAa,kBAAA,GAANb,MAAM,CAAE5J,UAAU,MAAA,IAAA,IAAAyK,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAA,CAAoBxK,MAAM,KAAI,EAAE,EAAE4J,IAAI,CAC5D,UAAAa,KAAK,EAAA;AAAA,IAAA,IAAA+Q,YAAA;IAAA,OAAI,CAAA,CAAAA,YAAA,GAAC/Q,KAAK,CAACrM,KAAK,MAAA,IAAA,IAAAod,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAI/Q,KAAK,CAACjB,EAAE,OAAMoB,SAAS,aAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEH,KAAK,CAAA;AAAA,EAAA,CACzD,CAAC;AAED,EAAA,IAAMgR,mBAAmB,GACvB,CAAAnR,cAAc,aAAdA,cAAc,KAAA,MAAA,GAAA,MAAA,GAAdA,cAAc,CAAEmR,mBAAmB,KACnC9O,CAAC,CAAC,mCAAmC,CAAC;EACxC,IAAMvO,KAAK,GAAG0N,mBAAmB,CAAC;AAAEnC,IAAAA,MAAM,EAANA,MAAM;AAAEiB,IAAAA,SAAS,EAATA;AAAU,GAAC,CAAC;EACxD,IAAM8Q,UAAU,GAAGzQ,mBAAmB,CAAC;AAAEtB,IAAAA,MAAM,EAANA,MAAM;AAAEiB,IAAAA,SAAS,EAATA;AAAU,GAAC,CAAC;AAC7D,EAAA,IAAA+Q,iBAAA,GAAyC7X,gBAAgB,EAAE;IAAnDK,QAAQ,GAAAwX,iBAAA,CAARxX,QAAQ;IAAEE,kBAAkB,GAAAsX,iBAAA,CAAlBtX,kBAAkB;AAEpC,EAAA,oBACE0D,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAEY,UAAU,CAAC,QAAQ,EAAE;AAAEhD,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAE;AAAA4B,IAAAA,QAAA,gBACjDgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,aAAa;MAAAR,QAAA,EAAA,CACzBsV,OAAO,gBACNvU,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,UAAU;AAAAR,QAAAA,QAAA,EACvB+K,gBAAgB,CAACnH,MAAM,CAAC,GACrBgD,CAAC,CAAC,0BAA0B,CAAC,GAC7BA,CAAC,CAAC,wBAAwB;AAAC,OAC3B,CAAC,gBAEP7F,GAAA,CAACjB,KAAK,EAAA;QACJM,MAAM,EAAE6U,QAAQ,CAAC;UAAEzE,IAAI,EAAErU,eAAe,CAACO,cAAc;AAAEqF,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAE;AAClEvB,QAAAA,SAAS,EAAC,kBAAkB;AAC5BC,QAAAA,UAAU,EAAA,iBAAA,CAAA0B,MAAA,CAAoBJ,KAAK,CAAG;QACtCxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,UAAA,OACCA,WAAW,CAAC;YAAElE,IAAI,EAAErU,eAAe,CAACO,cAAc;AAAEqF,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC;QAAA,CAC/D;AAAA/B,QAAAA,QAAA,EAEA0K,IAAI,CAACuH,aAAa,KAAKjX,cAAc,CAACE,EAAE,GACrC0L,CAAC,CAAC,yBAAyB,CAAC,GAC5BA,CAAC,CAAC,0BAA0B;AAAC,OAC5B,CACR,EACA2O,QAAQ,gBACPvT,IAAA,CAAAE,UAAA,EAAA;QAAAlC,QAAA,EAAA,cACEe,GAAA,CAACjB,KAAK,EAAA;UACJM,MAAM,EAAE6U,QAAQ,CAAC;YAAEzE,IAAI,EAAErU,eAAe,CAACK,UAAU;AAAEuF,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAE;AAC9DtB,UAAAA,UAAU,EAAA,aAAA,CAAA0B,MAAA,CAAgBJ,KAAK,CAAG;UAClCxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OAAMA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACK,UAAU;AAAEuF,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;UAAA,CAChE;UAAA/B,QAAA,EAEA2E,mBAAmB,CAAC;AAAEf,YAAAA,MAAM,EAANA,MAAM;AAAEiB,YAAAA,SAAS,EAATA;WAAW;AAAC,SACtC,CAAC,eACR9D,GAAA,CAACjB,KAAK,EAAA;UACJM,MAAM,EAAE6U,QAAQ,CAAC;YAAEzE,IAAI,EAAErU,eAAe,CAACM,cAAc;AAAEsF,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAE;AAClEtB,UAAAA,UAAU,EAAA,UAAA,CAAA0B,MAAA,CAAaJ,KAAK,CAAG;UAC/B7B,KAAK,EAAEsV,OAAO,GAAG9W,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;UACxD0B,OAAO,EAAE6U,SAAS,CAAC;YACjB3E,IAAI,EAAErU,eAAe,CAACM,cAAc;AACpCsF,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OACCA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACM,cAAc;AAAEsF,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;UAAA,CAC/D;AAAA/B,UAAAA,QAAA,EAEAwV,OAAO,GACJ1S,UAAU,CAACgC,aAAa,CAAC;AAAElB,YAAAA,MAAM,EAANA,MAAM;AAAEiB,YAAAA,SAAS,EAATA;WAAW,CAAC,CAAC,GAChD6Q;SACC,CAAC,EACPF,OAAO,IAAIG,UAAU,iBACpB5U,GAAA,CAACjB,KAAK,EAAA;UACJM,MAAM,EAAE6U,QAAQ,CAAC;YAAEzE,IAAI,EAAErU,eAAe,CAACQ,WAAW;AAAEoF,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAE;AAC/DtB,UAAAA,UAAU,EAAA,cAAA,CAAA0B,MAAA,CAAiBJ,KAAK,CAAG;UACnC7B,KAAK,EAAE7H,KAAK,GAAGqG,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;UACtD0B,OAAO,EAAE6U,SAAS,CAAC;YACjB3E,IAAI,EAAErU,eAAe,CAACQ,WAAW;AACjCoF,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OACCA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACQ,WAAW;AAAEoF,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;UAAA,CAC5D;AAAA/B,UAAAA,QAAA,EAEA3H,KAAK,gBAAG0I,GAAA,CAACW,MAAM,EAAAV,eAAA,CAAA,EAAA,EAAK3I,KAAK,CAAG,CAAC,GAAGuO,CAAC,CAAC,0BAA0B;AAAC,SACzD,CACR;AAAA,OACD,CAAC,gBAEH7F,GAAA,CAACjB,KAAK,EAAA;QACJM,MAAM,EAAE6U,QAAQ,CAAC;UAAEzE,IAAI,EAAErU,eAAe,CAACK,UAAU;AAAEuF,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAE;AAC9DtB,QAAAA,UAAU,EAAA,aAAA,CAAA0B,MAAA,CAAgBJ,KAAK,CAAG;QAClCzB,OAAO,EAAE6U,SAAS,CAAC;UAAE3E,IAAI,EAAErU,eAAe,CAACK,UAAU;AAAEuF,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAE;QAChE7B,KAAK,EAAExB,WAAW,CAACI,gBAAiB;QACpCyB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,UAAA,OAAMA,WAAW,CAAC;YAAElE,IAAI,EAAErU,eAAe,CAACK,UAAU;AAAEuF,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC;QAAA,CAChE;QAAA/B,QAAA,EAEA4G,CAAC,CAAC,oCAAoC;AAAC,OACnC,CACR;KACE,CAAC,eACN5E,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,gBAAgB;AAAAR,MAAAA,QAAA,EAAA,CAC5B4U,kBAAkB,iBACjB7T,GAAA,CAAC8U,MAAM,EAAA;QACL,aAAA,EAAA,WAAA,CAAA1T,MAAA,CAAyBJ,KAAK,CAAG;AACjCyH,QAAAA,IAAI,EAAEsM,IAAK;AACXC,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,6CAA6C,CAAC;AACzDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAEqU;OACV,CACF,EACAE,YAAY,iBACX/T,GAAA,CAAC8U,MAAM,EAAA7U,eAAA,CAAA;QACL,aAAA,EAAA,cAAA,CAAAmB,MAAA,CAA4BJ,KAAK,CAAG;AACpCyH,QAAAA,IAAI,EAAE4M,MAAO;AACbL,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,yCAAyC,CAAC;AACrDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAEuU;OAAa,EAClBxW,kBAAkB,CACvB,CACF;AAAA,KACE,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;ACnKD,IAAM+X,SAAS,GAAG,SAAZA,SAASA,CAAAtW,IAAA,EAAA;AAAA,EAAA,IAAAI,WAAA,GAAAJ,IAAA,CAAMK,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,WAAA;AAAA,EAAA,oBACjCY,GAAA,CAAA,KAAA,EAAA;IAAK,aAAA,EAAA,IAAW;AAACP,IAAAA,SAAS,EAAEY,UAAU,CAAC,UAAU,EAAE;AAAE,MAAA,WAAW,EAAEhB;AAAO,KAAC,CAAE;AAAAJ,IAAAA,QAAA,eAC1Ee,GAAA,CAAA,KAAA,EAAA;AAAKuV,MAAAA,IAAI,EAAC,MAAM;AAACC,MAAAA,MAAM,EAAC,IAAI;AAACC,MAAAA,OAAO,EAAC,WAAW;AAACC,MAAAA,KAAK,EAAC,IAAI;AAAAzW,MAAAA,QAAA,eACzDe,GAAA,CAAA,MAAA,EAAA;AACE2V,QAAAA,CAAC,EAAC,4BAA4B;AAC9BC,QAAAA,MAAM,EAAC,cAAc;AACrBC,QAAAA,aAAa,EAAC,OAAO;AACrBC,QAAAA,cAAc,EAAC,OAAO;AACtBC,QAAAA,WAAW,EAAC;OACb;KACE;AAAC,GACH,CAAC;AAAA,CACP;;;;ACHD,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAAhX,IAAA,EAMR;AAAA,EAAA,IALJ2K,IAAI,GAAA3K,IAAA,CAAJ2K,IAAI;IACKgK,WAAW,GAAA3U,IAAA,CAApB4U,OAAO;IACGG,YAAY,GAAA/U,IAAA,CAAtBgV,QAAQ;IAAAC,aAAA,GAAAjV,IAAA,CACRkV,QAAQ;IAARA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,aAAA;IAAAE,cAAA,GAAAnV,IAAA,CACtBoV,SAAS;IAATA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,cAAA;AAEvB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAQtM,KAAK,GAAKoQ,IAAI,CAAdpQ,KAAK;AACb,EAAA,IAAAsb,iBAAA,GAAyC7X,gBAAgB,EAAE;IAAnDK,QAAQ,GAAAwX,iBAAA,CAARxX,QAAQ;IAAEE,kBAAkB,GAAAsX,iBAAA,CAAlBtX,kBAAkB;AACpC,EAAA,IAAI,CAAChE,KAAK,EAAE,OAAO,IAAI;AAEvB,EAAA,IAAMlC,KAAK,GAAG,CAACkC,KAAK,CAACjC,KAAK,EAAEiC,KAAK,CAACwT,IAAI,CAAC,CACpC0E,MAAM,CAAC,UAAAwE,IAAI,EAAA;IAAA,OAAIA,IAAI,KAAK,EAAE,IAAI,CAACzR,KAAK,CAACyR,IAAI,CAAC;AAAA,EAAA,CAAA,CAAC,CAC3ClR,IAAI,CAAC,GAAG,CAAC;AAEZ,EAAA,oBACE9D,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAEY,UAAU,CAAC,QAAQ,EAAE;AAAEhD,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAE;AAAA4B,IAAAA,QAAA,gBACjDgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,aAAa;AAAAR,MAAAA,QAAA,gBAC1Be,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,UAAU;QAAAR,QAAA,EACvB4G,CAAC,CAAC,kCAAkC;AAAC,OAClC,CAAC,eACP7F,GAAA,CAACjB,KAAK,EAAA;AACJW,QAAAA,UAAU,EAAC,YAAY;QACvBP,KAAK,EAAE9H,KAAK,GAAGsG,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;QACtDwB,MAAM,EAAE6U,QAAQ,CAAC;UACfzE,IAAI,EAAErU,eAAe,CAACW,UAAU;AAChCiF,UAAAA,KAAK,EAAEb;AACT,SAAC,CAAE;QACHZ,OAAO,EAAE6U,SAAS,CAAC;UACjB3E,IAAI,EAAErU,eAAe,CAACW,UAAU;AAChCiF,UAAAA,KAAK,EAAEb;AACT,SAAC,CAAE;QACHX,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,UAAA,OAAMA,WAAW,CAAC;YAAElE,IAAI,EAAErU,eAAe,CAACW;AAAW,WAAC,CAAC;QAAA,CACzD;AAAAkD,QAAAA,QAAA,EAEA5H,KAAK,IAAIwO,CAAC,CAAC,6BAA6B;AAAC,OACrC,CAAC;AAAA,KACL,CAAC,EACLkO,YAAY,iBACX/T,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,gBAAgB;AAAAR,MAAAA,QAAA,eAC7Be,GAAA,CAAC8U,MAAM,EAAA7U,eAAA,CAAA;AACL,QAAA,aAAA,EAAY,mBAAmB;AAC/BwI,QAAAA,IAAI,EAAE4M,MAAO;AACbL,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,qCAAqC,CAAC;AACjDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAEuU;AAAa,OAAA,EAClBxW,kBAAkB,CACvB;AAAC,KACC,CACN;AAAA,GACE,CAAC;AAEV,CAAC;;ACjED,IAAM2Y,SAAS,GAAG,SAAZA,SAASA,CAAAlX,IAAA,EAMT;AAAA,EAAA,IALJ2K,IAAI,GAAA3K,IAAA,CAAJ2K,IAAI;IAAAwM,aAAA,GAAAnX,IAAA,CACJoX,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,aAAA;IAAAhC,cAAA,GAAAnV,IAAA,CACfoV,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IACLkC,cAAc,GAAArX,IAAA,CAA1BsX,UAAU;IACMC,kBAAkB,GAAAvX,IAAA,CAAlCwX,cAAc;AAEd,EAAA,IAAAnC,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AAET,EAAA,IAAM4Q,OAAO,GAAGxY,cAAc,CAACmW,SAAS,CAAC;AAEzC,EAAA,oBACEnT,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAC,SAAS;IAAAR,QAAA,EAAA,CACrBmX,QAAQ,iBACPnV,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,eAAe;AAAAR,MAAAA,QAAA,gBAC5Be,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,eAAe;QAAAR,QAAA,EAC5B4G,CAAC,CAAC,mCAAmC;OAClC,CAAC,eACP5E,IAAA,CAAA,KAAA,EAAA;AACE,QAAA,aAAA,EAAY,gBAAgB;AAC5B9C,QAAAA,GAAG,EAAEsY,OAAQ;AACbvW,QAAAA,IAAI,EAAEmW,cAAc,GAAG,QAAQ,GAAGlW,SAAU;AAC5CC,QAAAA,QAAQ,EAAEiW,cAAc,GAAG,CAAC,GAAGlW,SAAU;AACzCV,QAAAA,SAAS,EAAEY,UAAU,CAAC,oBAAoB,EAAE;AAC1C,UAAA,iBAAiB,EAAE+T;AACrB,SAAC,CAAE;AACH5U,QAAAA,OAAO,EAAE6W,cAAe;AAAApX,QAAAA,QAAA,gBAExBe,GAAA,CAAA,MAAA,EAAA;AAAMP,UAAAA,SAAS,EAAC,sBAAsB;AAAC,UAAA,aAAA,EAAY,WAAW;UAAAR,QAAA,EAC3D0K,IAAI,CAACpH;SACF,CAAC,eACPvC,GAAA,CAAA,MAAA,EAAA;UAAM,aAAA,EAAA,IAAW;AAACP,UAAAA,SAAS,EAAC,cAAc;AAAAR,UAAAA,QAAA,eACxCe,GAAA,CAAA,KAAA,EAAA;AAAKuV,YAAAA,IAAI,EAAC,MAAM;AAACC,YAAAA,MAAM,EAAC,IAAI;AAACC,YAAAA,OAAO,EAAC,WAAW;AAACC,YAAAA,KAAK,EAAC,IAAI;AAAAzW,YAAAA,QAAA,eACzDe,GAAA,CAAA,MAAA,EAAA;AACE2V,cAAAA,CAAC,EAAC,qDAAqD;AACvDC,cAAAA,MAAM,EAAC,cAAc;AACrBC,cAAAA,aAAa,EAAC,OAAO;AACrBC,cAAAA,cAAc,EAAC,OAAO;AACtBC,cAAAA,WAAW,EAAC;aACb;WACE;AAAC,SACF,CAAC;AAAA,OACJ,CAAC;KACH,CACN,eACD9U,IAAA,CAAA,OAAA,EAAA;AAAOxB,MAAAA,SAAS,EAAC,gBAAgB;AAAC,MAAA,aAAA,EAAY,mBAAmB;AAAAR,MAAAA,QAAA,gBAC/De,GAAA,CAAA,OAAA,EAAA;QACE0W,OAAO,EAAE/M,IAAI,CAACtK,MAAO;AACrB,QAAA,aAAA,EAAY,sBAAsB;QAClCsX,QAAQ,EAAE,CAACJ,kBAAmB;AAC9B9G,QAAAA,IAAI,EAAC,UAAU;QACfmH,QAAQ,EAAEL,kBAAkB,IAAIpW;OACjC,CAAC,eACFH,GAAA,CAAA,MAAA,EAAA;QAAM,aAAA,EAAA,IAAW;AAACP,QAAAA,SAAS,EAAC,aAAa;AAAAR,QAAAA,QAAA,eACvCe,GAAA,CAAA,KAAA,EAAA;AAAKuV,UAAAA,IAAI,EAAC,MAAM;AAACC,UAAAA,MAAM,EAAC,IAAI;AAACC,UAAAA,OAAO,EAAC,WAAW;AAACC,UAAAA,KAAK,EAAC,IAAI;AAAAzW,UAAAA,QAAA,eACzDe,GAAA,CAAA,MAAA,EAAA;AAAM2V,YAAAA,CAAC,EAAC;WAAuB;SAC5B;AAAC,OACF,CAAC,EACN9P,CAAC,CAAC,2CAA2C,CAAC;AAAA,KAC1C,CAAC;AAAA,GACL,CAAC;AAEV,CAAC;;;;ACvDD,IAAMgR,SAAS,GAAG,SAAZA,SAASA,CAAG5L,IAAI,EAAA;AAAA,EAAA,OACpB,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,uBAAJA,IAAI,CAAE5T,KAAK,MAAI4T,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE1I,IAAI,CAAA,KAAI0I,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,CAAA,IAAIgK,MAAM,CAAC2J,IAAI,aAAJA,IAAI,KAAA,MAAA,GAAJA,IAAI,GAAI,EAAE,CAAC;AAAA,CAAA;AAEhE,IAAM6L,UAAU,GAAG,SAAbA,UAAUA,CAAA9X,IAAA,EAOV;AAAA,EAAA,IAAAgM,aAAA,EAAAwF,cAAA,EAAAuG,qBAAA;AAAA,EAAA,IANJpN,IAAI,GAAA3K,IAAA,CAAJ2K,IAAI;IACJ9G,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IACG8Q,WAAW,GAAA3U,IAAA,CAApB4U,OAAO;IACQoD,iBAAiB,GAAAhY,IAAA,CAAhCiY,aAAa;IAAAhD,aAAA,GAAAjV,IAAA,CACbkV,QAAQ;IAARA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,aAAA;IAAAE,cAAA,GAAAnV,IAAA,CACtBoV,SAAS;IAATA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,cAAA;AAEvB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAMqF,KAAK,GAAGvB,IAAI,CAACuB,KAAK,IAAI,EAAE;EAC9B,IAAMgM,WAAW,GACf,CAAArU,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAmI,aAAA,GAANnI,MAAM,CAAEqI,KAAK,MAAA,IAAA,IAAAF,aAAA,uBAAbA,aAAA,CAAekM,WAAW,KAAIrR,CAAC,CAAC,sCAAsC,CAAC;AACzE,EAAA,IAAMoG,aAAa,GAAG,CAAC,EAACpJ,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA2N,cAAA,GAAN3N,MAAM,CAAEqI,KAAK,MAAA,IAAA,IAAAsF,cAAA,KAAA,MAAA,IAAA,CAAAuG,qBAAA,GAAbvG,cAAA,CAAevE,aAAa,MAAA,IAAA,IAAA8K,qBAAA,KAAA,MAAA,IAA5BA,qBAAA,CAAArY,IAAA,CAAA8R,cAAA,EAA+B7G,IAAI,CAACvQ,OAAO,IAAI,EAAE,CAAC,CAAA;AAE1E,EAAA,IAAIuL,OAAO,CAACuG,KAAK,CAAC,EAAE;AAClB,IAAA,oBACElL,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,QAAQ;AAAAR,MAAAA,QAAA,eACrBe,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,aAAa;QAAAR,QAAA,eAC1Be,GAAA,CAACjB,KAAK,EAAA;UACJM,MAAM,EAAE6U,QAAQ,CAAC;YAAEzE,IAAI,EAAErU,eAAe,CAACF,KAAK;AAAE8F,YAAAA,KAAK,EAAEb;AAAU,WAAC,CAAE;AACpET,UAAAA,UAAU,EAAC,WAAW;UACtBP,KAAK,EAAExB,WAAW,CAACI,gBAAiB;UACpCyB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OAAMA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACF;AAAM,aAAC,CAAC;UAAA,CACpD;AAAA+D,UAAAA,QAAA,EAEAiY;SACI;OACJ;AAAC,KACH,CAAC;AAEV,EAAA;AAEA,EAAA,OAAOhM,KAAK,CAACnK,GAAG,CAAC,UAACkK,IAAI,EAAEjK,KAAK,EAAA;AAAA,IAAA,IAAA+J,WAAA;IAAA,oBAC3BoM,aAAA,CAACC,QAAQ,EAAA;AACDpW,MAAAA,KAAK,EAALA,KAAK;AAAEkT,MAAAA,QAAQ,EAARA,QAAQ;AAAEE,MAAAA,SAAS,EAATA,SAAS;AAAEnJ,MAAAA,IAAI,EAAJA,IAAI;AAAEgB,MAAAA,aAAa,EAAbA,aAAa;AAAEpJ,MAAAA,MAAM,EAANA,MAAM;AAC7DwU,MAAAA,MAAM,EAAErW,KAAK,KAAKkK,KAAK,CAACW,MAAM,GAAG,CAAE;AACnCpL,MAAAA,GAAG,EAAE,CAAA,CAAAsK,WAAA,GAACE,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,cAAAyT,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAIE,IAAI,KAAKjK,KAAM;AACpCiW,MAAAA,aAAa,EAAED,iBAAkB;AACjCpD,MAAAA,OAAO,EAAED;AAAY,KACtB,CAAC;AAAA,EAAA,CACH,CAAC;AACJ,CAAC;AAED,IAAMyD,QAAQ,GAAG,SAAXA,QAAQA,CAAApU,KAAA,EAUR;AAAA,EAAA,IAAAsU,cAAA,EAAAC,cAAA,EAAAC,cAAA;AAAA,EAAA,IATJ3U,MAAM,GAAAG,KAAA,CAANH,MAAM;IACNoI,IAAI,GAAAjI,KAAA,CAAJiI,IAAI;IACJjK,KAAK,GAAAgC,KAAA,CAALhC,KAAK;IACI2S,WAAW,GAAA3Q,KAAA,CAApB4Q,OAAO;IACQoD,iBAAiB,GAAAhU,KAAA,CAAhCiU,aAAa;IACb/C,QAAQ,GAAAlR,KAAA,CAARkR,QAAQ;IACRE,SAAS,GAAApR,KAAA,CAAToR,SAAS;IACTiD,MAAM,GAAArU,KAAA,CAANqU,MAAM;IACNpL,aAAa,GAAAjJ,KAAA,CAAbiJ,aAAa;AAEb,EAAA,IAAAwL,gBAAA,GAAcnD,cAAc,EAAE;IAAtBzO,CAAC,GAAA4R,gBAAA,CAAD5R,CAAC;AACT,EAAA,IAAAgP,iBAAA,GAAyC7X,gBAAgB,EAAE;IAAnDK,QAAQ,GAAAwX,iBAAA,CAARxX,QAAQ;IAAEE,kBAAkB,GAAAsX,iBAAA,CAAlBtX,kBAAkB;EACpC,IAAMma,IAAI,GAAG,CAAA7U,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAyU,cAAA,GAANzU,MAAM,CAAEqI,KAAK,MAAA,IAAA,IAAAoM,cAAA,uBAAbA,cAAA,CAAeI,IAAI,KAAI7R,CAAC,CAAC,+BAA+B,CAAC;AACtE,EAAA,IAAM8R,OAAO,GAAGd,SAAS,CAAC5L,IAAI,CAAC;AAC/B,EAAA,IAAMQ,WAAW,GAAGQ,aAAa,GAAGb,gBAAgB,CAAC;AAAEH,IAAAA,IAAI,EAAJA,IAAI;AAAEpI,IAAAA,MAAM,EAANA;GAAQ,CAAC,GAAG,IAAI;AAC7E,EAAA,IAAM+U,mBAAmB,GAAG,CAAC,CAAAnM,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEI,MAAM,KAAI,CAAC,IAAI,CAAC;EAC1D,IAAMgM,qBAAqB,GACzB,CAAApM,WAAW,aAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEI,MAAM,MAAK,CAAC,GAAGJ,WAAW,CAAC,CAAC,CAAC,CAACpU,KAAK,GAAG,IAAI;EAEzD,IAAMygB,kBAAkB,GAAGrM,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAE3I,IAAI,CAC1C,UAAAa,KAAK,EAAA;IAAA,OAAIA,KAAK,CAACrM,KAAK,MAAK2T,IAAI,aAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEW,UAAU,CAAA;AAAA,EAAA,CAC3C,CAAC;AAED,EAAA,IAAMmM,UAAU,GACd3V,OAAO,CAACS,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA0U,cAAA,GAAN1U,MAAM,CAAEqI,KAAK,MAAA,IAAA,IAAAqM,cAAA,uBAAbA,cAAA,CAAeQ,UAAU,EAAE;AAAEJ,IAAAA,OAAO,EAAPA;AAAQ,GAAC,CAAC,IAC/C9R,CAAC,CAAC,gCAAgC,CAAC;AAErC,EAAA,IAAMmS,qBAAqB,GACzB5V,OAAO,CAACS,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA2U,cAAA,GAAN3U,MAAM,CAAEqI,KAAK,MAAA,IAAA,IAAAsM,cAAA,uBAAbA,cAAA,CAAeQ,qBAAqB,EAAE;AAAEL,IAAAA,OAAO,EAAPA;AAAQ,GAAC,CAAC,IAC1D9R,CAAC,CAAC,qCAAqC,CAAC;AAE1C,EAAA,oBACE5E,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAEY,UAAU,CAAC,QAAQ,EAAE;AAAEhD,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAE;AAAA4B,IAAAA,QAAA,gBACjDgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,aAAa;AAAAR,MAAAA,QAAA,gBAC1Be,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,UAAU;AAAAR,QAAAA,QAAA,EAAEyY;AAAI,OAAO,CAAC,eACxC1X,GAAA,CAACjB,KAAK,EAAA;QACJM,MAAM,EAAE6U,QAAQ,CAAC;UAAEzE,IAAI,EAAErU,eAAe,CAACF,KAAK;AAAE8F,UAAAA,KAAK,EAAEb;AAAU,SAAC,CAAE;AACpET,QAAAA,UAAU,EAAA,QAAA,CAAA0B,MAAA,CAAWJ,KAAK,CAAG;QAC7BzB,OAAO,EAAE6U,SAAS,CAAC;UAAE3E,IAAI,EAAErU,eAAe,CAACF,KAAK;AAAE8F,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAE;QAC3DxB,OAAO,EACLmU,WAAW,IAAK,YAAA;AAAA,UAAA,OAAMA,WAAW,CAAC;YAAElE,IAAI,EAAErU,eAAe,CAACF;AAAM,WAAC,CAAC;QAAA,CACnE;AAAA+D,QAAAA,QAAA,EAEA0Y;AAAO,OACH,CAAC,EACPE,qBAAqB,iBACpB5W,IAAA,CAAA,MAAA,EAAA;AAAMxB,QAAAA,SAAS,EAAC,UAAU;AAAAR,QAAAA,QAAA,EAAA,CACvB8Y,UAAU,EAAC,GAAC,EAACF,qBAAqB;AAAA,OAC/B,CACP,EACAD,mBAAmB,iBAClB3W,IAAA,CAAAE,UAAA,EAAA;AAAAlC,QAAAA,QAAA,gBACEe,GAAA,CAAA,MAAA,EAAA;AAAMP,UAAAA,SAAS,EAAC,UAAU;AAAAR,UAAAA,QAAA,EAAE8Y;AAAU,SAAO,CAAC,eAC9C/X,GAAA,CAACjB,KAAK,EAAA;AACJW,UAAAA,UAAU,EAAA,oBAAA,CAAA0B,MAAA,CAAuBJ,KAAK,CAAG;UACzC3B,MAAM,EAAE6U,QAAQ,CAAC;YACfzE,IAAI,EAAErU,eAAe,CAACD,iBAAiB;AACvC6F,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHzB,OAAO,EAAE6U,SAAS,CAAC;YACjB3E,IAAI,EAAErU,eAAe,CAACD,iBAAiB;AACvC6F,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACH7B,KAAK,EACH2Y,kBAAkB,GAAGna,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KACvD;UACD2B,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OACCA,WAAW,CAAC;cACVlE,IAAI,EAAErU,eAAe,CAACD,iBAAiB;AACvC6F,cAAAA,KAAK,EAALA;AACF,aAAC,CAAC;UAAA,CACL;UAAA/B,QAAA,EAEA,CAAA6Y,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAkB,CAAEzgB,KAAK,KAAI2gB;AAAqB,SAC9C,CAAC;AAAA,OACR,CACH;KACE,CAAC,eACN/W,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,gBAAgB;AAAAR,MAAAA,QAAA,GAC5B0U,WAAW,IAAI0D,MAAM,iBACpBrX,GAAA,CAAC8U,MAAM,EAAA;QACL,aAAA,EAAA,YAAA,CAAA1T,MAAA,CAA0BJ,KAAK,CAAG;AAClCyH,QAAAA,IAAI,EAAEsM,IAAK;AACXC,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,+CAA+C,CAAC;AAC3DuP,UAAAA,QAAQ,EAAE;SACV;QACF5V,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQmU,WAAW,CAAC;YAAElE,IAAI,EAAErU,eAAe,CAACF;AAAM,WAAC,CAAC;AAAA,QAAA;OAC5D,CACF,EACA8b,iBAAiB,iBAChBhX,GAAA,CAAC8U,MAAM,EAAA7U,eAAA,CAAA;QACL,aAAA,EAAA,eAAA,CAAAmB,MAAA,CAA6BJ,KAAK,CAAG;AACrCyH,QAAAA,IAAI,EAAE4M,MAAO;AACbL,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,2CAA2C,CAAC;AACvDuP,UAAAA,QAAQ,EAAE;SACV;QACF5V,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQwX,iBAAiB,CAAChW,KAAK,CAAC;AAAA,QAAA;OAAC,EACpCzD,kBAAkB,CACvB,CACF;AAAA,KACE,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;;;AC7JD,IAAM0a,SAAS,GAAG,SAAZA,SAASA,CAAAjZ,IAAA,EAUT;AAAA,EAAA,IATJ6D,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IACN2D,MAAM,GAAAxH,IAAA,CAANwH,MAAM;IACNxF,KAAK,GAAAhC,IAAA,CAALgC,KAAK;IACLoU,QAAQ,GAAApW,IAAA,CAARoW,QAAQ;IACCzB,WAAW,GAAA3U,IAAA,CAApB4U,OAAO;IACMsE,eAAe,GAAAlZ,IAAA,CAA5BmZ,WAAW;IACDpE,YAAY,GAAA/U,IAAA,CAAtBgV,QAAQ;IAAAC,aAAA,GAAAjV,IAAA,CACRkV,QAAQ;IAARA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,aAAA;IAAAE,cAAA,GAAAnV,IAAA,CACtBoV,SAAS;IAATA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,cAAA;AAEvB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;EACT,IAAAuS,YAAA,GAkBI3R,WAAW,CAAC;AAAE5D,MAAAA,MAAM,EAANA,MAAM;AAAE2D,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC;IAjBjChE,MAAM,GAAA4V,YAAA,CAAN5V,MAAM;IACNnL,KAAK,GAAA+gB,YAAA,CAAL/gB,KAAK;IACLqK,IAAI,GAAA0W,YAAA,CAAJ1W,IAAI;IACJ8G,WAAW,GAAA4P,YAAA,CAAX5P,WAAW;IACL6P,UAAU,GAAAD,YAAA,CAAhB3P,IAAI;IACJC,cAAc,GAAA0P,YAAA,CAAd1P,cAAc;IACdd,SAAS,GAAAwQ,YAAA,CAATxQ,SAAS;IACTK,cAAc,GAAAmQ,YAAA,CAAdnQ,cAAc;IACdU,SAAS,GAAAyP,YAAA,CAATzP,SAAS;IACTC,WAAW,GAAAwP,YAAA,CAAXxP,WAAW;IACXV,gBAAgB,GAAAkQ,YAAA,CAAhBlQ,gBAAgB;IAChBW,sBAAsB,GAAAuP,YAAA,CAAtBvP,sBAAsB;IACtBT,SAAS,GAAAgQ,YAAA,CAAThQ,SAAS;IACTE,SAAS,GAAA8P,YAAA,CAAT9P,SAAS;IACTC,eAAe,GAAA6P,YAAA,CAAf7P,eAAe;IACf7B,KAAK,GAAA0R,YAAA,CAAL1R,KAAK;IACLuC,WAAW,GAAAmP,YAAA,CAAXnP,WAAW;;AAGb;AACA;EACA,IAAMqP,YAAY,GAChBlQ,SAAS,KAAKvR,UAAU,CAACC,WAAW,IACpCsR,SAAS,KAAKvR,UAAU,CAACE,UAAU,IACnC,CAAC,CAAC8R,sBAAsB,IACxB,CAAC,CAACD,WAAW;AAEf,EAAA,IAAM2P,gBAAgB,GAAGhQ,eAAe,GACpC1C,CAAC,CAAC,+BAA+B,EAAE;AAAE2S,IAAAA,IAAI,EAAEjQ;AAAgB,GAAC,CAAC,GAC7D1C,CAAC,CAAC,8BAA8B,CAAC;AAErC,EAAA,IAAM4S,iBAAiB,GAAGnQ,SAAS,GAC/BzC,CAAC,CAAC,+BAA+B,EAAE;AAAE2S,IAAAA,IAAI,EAAElQ;AAAU,GAAC,CAAC,GACvDzC,CAAC,CAAC,6BAA6B,CAAC;EAEpC,IAAM6S,gBAAgB,GACpBtQ,SAAS,KAAKvR,UAAU,CAACE,UAAU,GAAGwhB,gBAAgB,GAAGE,iBAAiB;EAE5E,IAAM3X,SAAS,GACb,CAACsU,QAAQ,aAARA,QAAQ,KAAA,MAAA,GAARA,QAAQ,GAAIpU,KAAK,MAAM,CAAC,GACrB6E,CAAC,CAAC,wBAAwB,CAAC,GAC3BA,CAAC,CAAC,0BAA0B,CAAC;AACnC,EAAA,IAAM8S,SAAS,GAAG5W,UAAU,CAACL,IAAI,IAAIrK,KAAK,CAAC;EAC3C,IAAMuhB,YAAY,GAChB1E,QAAQ,CAAC;IAAEzE,IAAI,EAAErU,eAAe,CAACT,cAAc;AAAEqG,IAAAA,KAAK,EAALA;GAAO,CAAC,IACzDkT,QAAQ,CAAC;IAAEzE,IAAI,EAAErU,eAAe,CAACS,UAAU;AAAEmF,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;AACvD,EAAA,IAAM6X,WAAW,GAAGrQ,WAAW,IAAIzG,UAAU,CAACS,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE0U,WAAW,CAAC;AAClE;AACA;AACA,EAAA,IAAAlU,KAAA,GAA8CyB,KAAK,CAACC,OAAO,CAACiE,SAAS,CAAC,GAClEA,SAAS,GACT,CAAC,IAAI,EAAEA,SAAS,CAAC;IAAAvF,KAAA,GAAAhG,cAAA,CAAA4F,KAAA,EAAA,CAAA,CAAA;AAFd8V,IAAAA,kBAAkB,GAAA1V,KAAA,CAAA,CAAA,CAAA;AAAE2V,IAAAA,eAAe,GAAA3V,KAAA,CAAA,CAAA,CAAA;EAG1C,IAAM4V,YAAY,GAAGxT,UAAU,CAACgB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEnB,QAAQ,CAAC;AACjD;AACA,EAAA,IAAM4T,WAAW,GACf/Q,gBAAgB,IAAI8Q,YAAY,GAAGrb,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAK;AAC3E,EAAA,IAAAgX,iBAAA,GAAyC7X,gBAAgB,EAAE;IAAnDK,QAAQ,GAAAwX,iBAAA,CAARxX,QAAQ;IAAEE,kBAAkB,GAAAsX,iBAAA,CAAlBtX,kBAAkB;AAEpC,EAAA,IAAM2b,WAAW,GAAGH,eAAe,gBACjC9X,IAAA,CAACC,QAAQ,EAAA;AAAAjC,IAAAA,QAAA,gBACPe,GAAA,CAAA,MAAA,EAAA;AAAMP,MAAAA,SAAS,EAAC,UAAU;AAAAR,MAAAA,QAAA,EAAE8Z;AAAe,KAAO,CAAC,eACnD/Y,GAAA,CAACjB,KAAK,EAAA;MACJM,MAAM,EAAE6U,QAAQ,CAAC;QAAEzE,IAAI,EAAErU,eAAe,CAACR,aAAa;AAAEoG,QAAAA,KAAK,EAALA;AAAM,OAAC,CAAE;AACjEtB,MAAAA,UAAU,EAAA,sBAAA,CAAA0B,MAAA,CAAyBJ,KAAK,CAAG;AAC3C7B,MAAAA,KAAK,EAAE8Z,WAAY;MACnB1Z,OAAO,EAAE6U,SAAS,CAAC;QACjB3E,IAAI,EAAErU,eAAe,CAACR,aAAa;AACnCoG,QAAAA,KAAK,EAALA;AACF,OAAC,CAAE;MACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,QAAA,OAAMA,WAAW,CAAC;UAAElE,IAAI,EAAErU,eAAe,CAACR,aAAa;AAAEoG,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;MAAA,CACnE;MAAA/B,QAAA,EAEAiJ,gBAAgB,gBACflI,GAAA,CAACW,MAAM,EAAAV,eAAA,CAAA,EAAA,EAAKiI,gBAAgB,CAAG,CAAC,GAEhCnG,UAAU,CAAC8G,sBAAsB,CAAC,IAClChD,CAAC,CAAC,mCAAmC;AACtC,KACI,CAAC;GAAA,EArBI,QAsBJ,CAAC,GACT,IAAI;AAER,EAAA,IAAMsT,cAAc,GAAGzQ,cAAc,gBACnCzH,IAAA,CAACC,QAAQ,EAAA;AAAAjC,IAAAA,QAAA,gBACPe,GAAA,CAAA,MAAA,EAAA;AAAMP,MAAAA,SAAS,EAAC,UAAU;AAAAR,MAAAA,QAAA,EACvB6Z,kBAAkB,IAAIjT,CAAC,CAAC,sBAAsB;AAAC,KAC5C,CAAC,eACP7F,GAAA,CAACjB,KAAK,EAAA;AACJW,MAAAA,UAAU,EAAA,mBAAA,CAAA0B,MAAA,CAAsBJ,KAAK,CAAG;MACxC7B,KAAK,EAAEyI,SAAS,GAAGjK,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;MAC1DwB,MAAM,EAAE6U,QAAQ,CAAC;QACfzE,IAAI,EAAErU,eAAe,CAACU,gBAAgB;AACtCkF,QAAAA,KAAK,EAALA;AACF,OAAC,CAAE;MACHzB,OAAO,EAAE6U,SAAS,CAAC;QACjB3E,IAAI,EAAErU,eAAe,CAACU,gBAAgB;AACtCkF,QAAAA,KAAK,EAALA;AACF,OAAC,CAAE;MACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,QAAA,OACCA,WAAW,CAAC;UACVlE,IAAI,EAAErU,eAAe,CAACU,gBAAgB;AACtCkF,UAAAA,KAAK,EAALA;AACF,SAAC,CAAC;MAAA,CACL;AAAA/B,MAAAA,QAAA,EAEA2I,SAAS,GACNtG,MAAM,CAAC2G,cAAc,CAAC,CAAC/F,WAAW,EAAE,GACpC2D,CAAC,CAAC,oCAAoC;AAAC,KACtC,CAAC;GAAA,EA3BI,WA4BJ,CAAC,GACT,IAAI;EAER,IAAMuT,UAAU,GAAG1S,KAAK,CAAC3F,GAAG,CAAC,UAAA+F,IAAI,EAAI;IACnC,IAAMuS,SAAS,GAAGtS,WAAW,CAAC;AAAEP,MAAAA,MAAM,EAANA,MAAM;AAAEM,MAAAA,IAAI,EAAJA;AAAK,KAAC,CAAC;AAC/C,IAAA,IAAMwS,KAAK,GAAG;MACZ7J,IAAI,EAAErU,eAAe,CAACP,WAAW;AACjCmG,MAAAA,KAAK,EAALA,KAAK;MACLuY,OAAO,EAAEzS,IAAI,CAACrG;KACf;IAED,oBACEQ,IAAA,CAACC,QAAQ,EAAA;AAAAjC,MAAAA,QAAA,EAAA,CACN6H,IAAI,CAAC6B,SAAS,iBAAI3I,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,UAAU;QAAAR,QAAA,EAAE6H,IAAI,CAAC6B;AAAS,OAAO,CAAC,eACrE3I,GAAA,CAACjB,KAAK,EAAA;AACJM,QAAAA,MAAM,EAAE6U,QAAQ,CAACoF,KAAK,CAAE;QACxB5Z,UAAU,EAAA,cAAA,CAAA0B,MAAA,CAAiB0F,IAAI,CAACrG,GAAG,EAAA,GAAA,CAAA,CAAAW,MAAA,CAAIJ,KAAK,CAAG;AAC/CzB,QAAAA,OAAO,EAAE6U,SAAS,CAACkF,KAAK,CAAE;QAC1Bna,KAAK,EAAEka,SAAS,GAAG1b,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;QAC1D2B,OAAO,EAAEmU,WAAW,IAAK,YAAA;UAAA,OAAMA,WAAW,CAAC2F,KAAK,CAAC;QAAA,CAAE;AAAAra,QAAAA,QAAA,EAIlD,CAAC6H,IAAI,CAAC0S,YAAY,GAAGH,SAAS,GAAGtX,UAAU,CAACsX,SAAS,CAAC,KACrDtX,UAAU,CAAC+E,IAAI,CAACoQ,WAAW;AAAC,OACzB,CAAC;AAAA,KAAA,EAAA,OAAA,CAAA9V,MAAA,CAba0F,IAAI,CAACrG,GAAG,CAcrB,CAAC;AAEf,EAAA,CAAC,CAAC;AAEF,EAAA,IAAMgZ,SAAS,GAAGxQ,WAAW,gBAC3BjJ,GAAA,CAAC0Z,OAAO,EAAA;AAACvE,IAAAA,OAAO,EAAElM,WAAY;AAACmM,IAAAA,QAAQ,EAAC,KAAK;AAAAnW,IAAAA,QAAA,eAC3Ce,GAAA,CAAA,MAAA,EAAA;AACE,MAAA,YAAA,EAAYiJ,WAAY;AACxBxJ,MAAAA,SAAS,EAAC,SAAS;MACnB,aAAA,EAAA,cAAA,CAAA2B,MAAA,CAA4BJ,KAAK,CAAG;MAAA/B,QAAA,eAEpCe,GAAA,CAAC2Z,IAAI,EAAA;AAAC3E,QAAAA,IAAI,EAAE;OAAK;KACb;GACC,CAAC,GACR,IAAI;AAER,EAAA,oBACE/T,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAEY,UAAU,CAAC,yBAAyB,EAAE;AAAEhD,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAE;AAAA4B,IAAAA,QAAA,gBAClEgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,aAAa;AAAAR,MAAAA,QAAA,gBAC1Be,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,UAAU;AAAAR,QAAAA,QAAA,EAAE6B;AAAS,OAAO,CAAC,EAC5CiY,eAAe,gBACd9X,IAAA,CAAClC,KAAK,EAAA;AACJM,QAAAA,MAAM,EAAEuZ,YAAa;AACrBnZ,QAAAA,SAAS,EAAC,eAAe;AACzBC,QAAAA,UAAU,EAAA,cAAA,CAAA0B,MAAA,CAAiBJ,KAAK,CAAG;QACnCxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,UAAA,OACCA,WAAW,CAAC;YAAElE,IAAI,EAAErU,eAAe,CAACT,cAAc;AAAEqG,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC;QAAA,CAC/D;AAAA/B,QAAAA,QAAA,GAEA0Z,SAAS,EACTN,UAAU,iBAAIrY,GAAA,CAACqY,UAAU,EAAA;AAACrD,UAAAA,IAAI,EAAE;SAAK,CAAC,EACtC6D,WAAW;AAAA,OACP,CAAC,gBAER5X,IAAA,CAAAE,UAAA,EAAA;QAAAlC,QAAA,EAAA,cACEe,GAAA,CAACjB,KAAK,EAAA;AACJM,UAAAA,MAAM,EAAEuZ,YAAa;AACrBlZ,UAAAA,UAAU,EAAA,cAAA,CAAA0B,MAAA,CAAiBJ,KAAK,CAAG;UACnCxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OACCA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACT,cAAc;AAAEqG,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;UAAA,CAC/D;AAAA/B,UAAAA,QAAA,EAEA0Z;AAAS,SACL,CAAC,EACPL,YAAY,gBACXtY,GAAA,CAACjB,KAAK,EAAA;AACJW,UAAAA,UAAU,EAAA,sBAAA,CAAA0B,MAAA,CAAyBJ,KAAK,CAAG;AAC3C7B,UAAAA,KAAK,EAAE8Z,WAAY;UACnB5Z,MAAM,EAAE6U,QAAQ,CAAC;YACfzE,IAAI,EAAErU,eAAe,CAACR,aAAa;AACnCoG,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHzB,OAAO,EAAE6U,SAAS,CAAC;YACjB3E,IAAI,EAAErU,eAAe,CAACR,aAAa;AACnCoG,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OACCA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACR,aAAa;AAAEoG,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;UAAA,CAC9D;AAAA/B,UAAAA,QAAA,EAEAiJ,gBAAgB,gBACflI,GAAA,CAACW,MAAM,EAAAV,eAAA,CAAA,EAAA,EAAKiI,gBAAgB,CAAG,CAAC,GAEhCnG,UAAU,CAAC8G,sBAAsB,CAAC,IAAI6P;AACvC,SACI,CAAC,GAERG,WAAW,iBACT5X,IAAA,CAAClC,KAAK,EAAA;AACJU,UAAAA,SAAS,EAAC,eAAe;AACzBC,UAAAA,UAAU,EAAA,gBAAA,CAAA0B,MAAA,CAAmBJ,KAAK,CAAG;UACrC7B,KAAK,EAAE6Z,YAAY,GAAGrb,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;UAC7DwB,MAAM,EAAE6U,QAAQ,CAAC;YACfzE,IAAI,EAAErU,eAAe,CAACR,aAAa;AACnCoG,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHzB,OAAO,EAAE6U,SAAS,CAAC;YACjB3E,IAAI,EAAErU,eAAe,CAACR,aAAa;AACnCoG,YAAAA,KAAK,EAALA;AACF,WAAC,CAAE;UACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OACCA,WAAW,CAAC;cACVlE,IAAI,EAAErU,eAAe,CAACR,aAAa;AACnCoG,cAAAA,KAAK,EAALA;AACF,aAAC,CAAC;UAAA,CACL;AAAA/B,UAAAA,QAAA,EAAA,CAEAoZ,UAAU,iBAAIrY,GAAA,CAACqY,UAAU,EAAA;AAACrD,YAAAA,IAAI,EAAE;WAAK,CAAC,EACtC6D,WAAW;AAAA,SACP,CAEV;AAAA,OACD,CACH,EACAC,kBAAkB,GACf,CAACK,cAAc,EAAED,WAAW,CAAC,GAC7B,CAACA,WAAW,EAAEC,cAAc,CAAC,EAChCC,UAAU,EACVK,SAAS;KACP,CAAC,eACNxY,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,gBAAgB;AAAAR,MAAAA,QAAA,EAAA,CAC5BiZ,eAAe,iBACdlY,GAAA,CAAC8U,MAAM,EAAA;QACL,aAAA,EAAA,aAAA,CAAA1T,MAAA,CAA2BJ,KAAK,CAAG;AACnCyH,QAAAA,IAAI,EAAEsM,IAAK;AACXC,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,0CAA0C,CAAC;AACtDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAE0Y;OACV,CACF,EACAnE,YAAY,iBACX/T,GAAA,CAAC8U,MAAM,EAAA7U,eAAA,CAAA;QACL,aAAA,EAAA,gBAAA,CAAAmB,MAAA,CAA8BJ,KAAK,CAAG;AACtCyH,QAAAA,IAAI,EAAE4M,MAAO;AACbL,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,sCAAsC,CAAC;AAClDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAEuU;OAAa,EAClBxW,kBAAkB,CACvB,CACF;AAAA,KACE,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;ACxSD,IAAMqc,SAAS,GAAG,SAAZA,SAASA,CAAA5a,IAAA,EAST;AAAA,EAAA,IARJ2K,IAAI,GAAA3K,IAAA,CAAJ2K,IAAI;IACJ9G,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IACG8Q,WAAW,GAAA3U,IAAA,CAApB4U,OAAO;IACMsE,eAAe,GAAAlZ,IAAA,CAA5BmZ,WAAW;IACK0B,kBAAkB,GAAA7a,IAAA,CAAlC8a,cAAc;IAAA7F,aAAA,GAAAjV,IAAA,CACdkV,QAAQ;IAARA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,aAAA;IAAAE,cAAA,GAAAnV,IAAA,CACtBoV,SAAS;IAATA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,cAAA;IAAA4F,WAAA,GAAA/a,IAAA,CACvBgb,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,WAAA;AAEd,EAAA,IAAA1F,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;EACT,IAAMoU,KAAK,GAAGtQ,IAAI,CAACvQ,OAAO,CACvB2H,GAAG,CAAC,UAACyF,MAAM,EAAExF,KAAK,EAAA;IAAA,OAAM;AAAEwF,MAAAA,MAAM,EAANA,MAAM;AAAExF,MAAAA,KAAK,EAALA;KAAO;AAAA,EAAA,CAAC,CAAC,CAC3CyQ,MAAM,CAAC,UAAAzO,KAAA,EAAA;AAAA,IAAA,IAAGwD,MAAM,GAAAxD,KAAA,CAANwD,MAAM;AAAA,IAAA,OAAO,CAAAA,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEJ,OAAO,MAAII,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAA;EAAA,CAAA,CAAC;AAE1D,EAAA,IAAIoC,OAAO,CAACsV,KAAK,CAAC,EAAE;IAClB,IAAMC,YAAY,GAAGhQ,kBAAkB,CAAC;AAAEP,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC;AAEzD,IAAA,oBACE7C,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,QAAQ;AAAAR,MAAAA,QAAA,eACrBe,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,aAAa;QAAAR,QAAA,eAC1Be,GAAA,CAACjB,KAAK,EAAA;UACJM,MAAM,EAAE6U,QAAQ,CAAC;YAAEzE,IAAI,EAAErU,eAAe,CAACS,UAAU;AAAEmF,YAAAA,KAAK,EAAE;AAAE,WAAC,CAAE;AACjEtB,UAAAA,UAAU,EAAC,YAAY;UACvBH,OAAO,EAAE6U,SAAS,CAAC;YAAE3E,IAAI,EAAErU,eAAe,CAACS,UAAU;AAAEmF,YAAAA,KAAK,EAAE;AAAE,WAAC,CAAE;UACnE7B,KAAK,EACH+a,YAAY,GAAGvc,WAAW,CAACI,gBAAgB,GAAGJ,WAAW,CAAC9D,QAC3D;UACDsgB,KAAK,EACHD,YAAY,GACR/Z,SAAS,GACT0F,CAAC,CAAC,qCAAqC,CAC5C;AACDrG,UAAAA,OAAO,EAAE0a,YAAY,GAAGhC,eAAe,GAAG/X,SAAU;UAAAlB,QAAA,EAEnD4G,CAAC,CAAC,+BAA+B;SAC7B;OACJ;AAAC,KACH,CAAC;AAEV,EAAA;EAEA,oBACE5E,IAAA,CAAAE,UAAA,EAAA;IAAAlC,QAAA,EAAA,CACGgb,KAAK,CAAClZ,GAAG,CAAC,UAAAqC,KAAA,EAAoBgS,QAAQ,EAAA;AAAA,MAAA,IAAAgF,UAAA;AAAA,MAAA,IAAzB5T,MAAM,GAAApD,KAAA,CAANoD,MAAM;QAAExF,KAAK,GAAAoC,KAAA,CAALpC,KAAK;MAAA,oBACzBmW,aAAA,CAACc,SAAS,EAAA;AACFzR,QAAAA,MAAM,EAANA,MAAM;AAAExF,QAAAA,KAAK,EAALA,KAAK;AAAEkT,QAAAA,QAAQ,EAARA,QAAQ;AAAEE,QAAAA,SAAS,EAATA,SAAS;AAAEgB,QAAAA,QAAQ,EAARA,QAAQ;AAAEvS,QAAAA,MAAM,EAANA,MAAM;QAC1DpC,GAAG,EAAA,CAAA2Z,UAAA,GAAE5T,MAAM,CAAC9D,EAAE,MAAA,IAAA,IAAA0X,UAAA,KAAA,MAAA,GAAAA,UAAA,GAAIpZ,KAAM;QACxBmX,WAAW,EAAE/C,QAAQ,KAAK6E,KAAK,CAACpO,MAAM,GAAG,CAAC,IAAIqM,eAAgB;QAC9DlE,QAAQ,EAAE6F,kBAAkB,IAAK,YAAA;UAAA,OAAMA,kBAAkB,CAAC7Y,KAAK,CAAC;QAAA,CAAE;AAClE4S,QAAAA,OAAO,EAAED;AAAY,OACtB,CAAC;AAAA,IAAA,CACH,CAAC,EACDqG,MAAM,iBACLha,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,QAAQ;AAAAR,MAAAA,QAAA,eACrBgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,aAAa;AAAAR,QAAAA,QAAA,gBAC1Be,GAAA,CAAA,MAAA,EAAA;AAAMP,UAAAA,SAAS,EAAC,UAAU;UAAAR,QAAA,EAAE4G,CAAC,CAAC,0BAA0B;AAAC,SAAO,CAAC,eACjE7F,GAAA,CAACjB,KAAK,EAAA;UACJM,MAAM,EAAA,IAAA;AACNK,UAAAA,UAAU,EAAC,iBAAiB;UAC5BP,KAAK,EAAExB,WAAW,CAACI,gBAAiB;AACpCyB,UAAAA,OAAO,EAAE0Y,eAAgB;UAAAjZ,QAAA,EAExB4G,CAAC,CAAC,wBAAwB;AAAC,SACvB,CAAC;OACL;AAAC,KACH,CACN;AAAA,GACD,CAAC;AAEP,CAAC;;;;AC7DD,IAAMwU,SAAS,GAAG,SAAZA,SAASA,CAAArb,IAAA,EAQT;AAAA,EAAA,IAAAqE,aAAA;AAAA,EAAA,IAPJsG,IAAI,GAAA3K,IAAA,CAAJ2K,IAAI;IACJ9G,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IACG8Q,WAAW,GAAA3U,IAAA,CAApB4U,OAAO;IACSC,kBAAkB,GAAA7U,IAAA,CAAlC8U,cAAc;IACEwG,kBAAkB,GAAAtb,IAAA,CAAlCub,cAAc;IAAAtG,aAAA,GAAAjV,IAAA,CACdkV,QAAQ;IAARA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,aAAA;IAAAE,cAAA,GAAAnV,IAAA,CACtBoV,SAAS;IAATA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAM,KAAK;AAAA,IAAA,CAAA,GAAAA,cAAA;AAEvB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAQjN,QAAQ,GAAgB+Q,IAAI,CAA5B/Q,QAAQ;IAAE0K,SAAS,GAAKqG,IAAI,CAAlBrG,SAAS;AAC3B,EAAA,IAAMkX,cAAc,GAAG3X,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAQ,aAAA,GAANR,MAAM,CAAE9J,KAAK,MAAA,IAAA,IAAAsK,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAerK,OAAO;AAC7C,EAAA,IAAA6b,iBAAA,GAAwD7X,gBAAgB,EAAE;IAAlEK,QAAQ,GAAAwX,iBAAA,CAARxX,QAAQ;IAAEE,kBAAkB,GAAAsX,iBAAA,CAAlBtX,kBAAkB;IAAEG,aAAa,GAAAmX,iBAAA,CAAbnX,aAAa;AACnD;AACA,EAAA,IAAM+c,cAAc,GAAG,SAAjBA,cAAcA,CAAGlY,IAAI,EAAA;AAAA,IAAA,IAAAK,gBAAA;AAAA,IAAA,OACzB,CAAC,CAAAC,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAD,gBAAA,GAANC,MAAM,CAAEjK,QAAQ,MAAA,IAAA,IAAAgK,gBAAA,KAAA,MAAA,IAAA,CAAAA,gBAAA,GAAhBA,gBAAA,CAAkByK,QAAQ,MAAA,IAAA,IAAAzK,gBAAA,uBAA1BA,gBAAA,CAA4B8X,SAAS,KAAI,EAAE,EAAE/Y,QAAQ,CAACY,IAAI,CAAC;AAAA,EAAA,CAAA;AAE9D,EAAA,IAAI,CAACyH,gBAAgB,CAACnH,MAAM,CAAC,EAAE;IAC7B,IAAI,CAAC8B,OAAO,CAACgF,IAAI,CAAC1Q,UAAU,CAAC,EAAE,OAAO,IAAI;AAE1C,IAAA,oBACE+G,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,QAAQ;AAAAR,MAAAA,QAAA,eACrBe,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,aAAa;QAAAR,QAAA,eAC1Be,GAAA,CAACjB,KAAK,EAAA;AACJW,UAAAA,UAAU,EAAC,eAAe;UAC1BP,KAAK,EAAExB,WAAW,CAACI,gBAAiB;UACpCyB,OAAO,EAAEqU,kBAAkB,IAAI1T,SAAU;UAAAlB,QAAA,EAExC4G,CAAC,CAAC,mCAAmC;SACjC;OACJ;AAAC,KACH,CAAC;AAEV,EAAA;AAEA,EAAA,IAAIlB,OAAO,CAAC/L,QAAQ,CAAC,EAAE;AACrB,IAAA,oBACEoH,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,QAAQ;AAAAR,MAAAA,QAAA,eACrBe,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,aAAa;QAAAR,QAAA,eAC1Be,GAAA,CAACjB,KAAK,EAAA;AACJW,UAAAA,UAAU,EAAC,aAAa;UACxBP,KAAK,EAAExB,WAAW,CAACI,gBAAiB;UACpCyB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OAAMA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACC;AAAY,aAAC,CAAC;UAAA,CAC1D;UAAA4D,QAAA,EAEA4G,CAAC,CAAC,oCAAoC;SAClC;OACJ;AAAC,KACH,CAAC;AAEV,EAAA;AAEA,EAAA,oBACE5E,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAEY,UAAU,CAAC,QAAQ,EAAE;AAAEhD,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAE;AAAA4B,IAAAA,QAAA,gBACjDgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,aAAa;AAAAR,MAAAA,QAAA,gBAC1Be,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,UAAU;QAAAR,QAAA,EAAE4G,CAAC,CAAC,wBAAwB;OAAQ,CAAC,EAC9DjN,QAAQ,CAACmI,GAAG,CAAC,UAACkC,OAAO,EAAEjC,KAAK,EAAA;AAAA,QAAA,IAAA2Z,WAAA;QAAA,oBAC3B1Z,IAAA,CAACC,QAAQ,EAAA;AAAAjC,UAAAA,QAAA,EAAA,CACN+B,KAAK,GAAG,CAAC,iBACRhB,GAAA,CAAA,MAAA,EAAA;AAAMP,YAAAA,SAAS,EAAC,UAAU;YAAAR,QAAA,EAAE4G,CAAC,CAAC,yBAAyB;WAAQ,CAChE,EACA4U,cAAc,CAACxX,OAAO,CAACV,IAAI,CAAC,iBAC3BvC,GAAA,CAACjB,KAAK,EAAA;AACJW,YAAAA,UAAU,EAAA,oBAAA,CAAA0B,MAAA,CAAuBJ,KAAK,CAAG;YACzC3B,MAAM,EAAE6U,QAAQ,CAAC;cACfzE,IAAI,EAAErU,eAAe,CAACI,iBAAiB;AACvCwF,cAAAA,KAAK,EAALA;AACF,aAAC,CAAE;YACHzB,OAAO,EAAE6U,SAAS,CAAC;cACjB3E,IAAI,EAAErU,eAAe,CAACI,iBAAiB;AACvCwF,cAAAA,KAAK,EAALA;AACF,aAAC,CAAE;YACHxB,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,cAAA,OACCA,WAAW,CAAC;gBACVlE,IAAI,EAAErU,eAAe,CAACI,iBAAiB;AACvCwF,gBAAAA,KAAK,EAALA;AACF,eAAC,CAAC;YAAA,CACL;AAAA/B,YAAAA,QAAA,EAEA2O,aAAa,CAACjE,IAAI,CAAC0D,QAAQ;AAAC,WACxB,CACR,eACDrN,GAAA,CAACjB,KAAK,EAAA;AACJW,YAAAA,UAAU,EAAA,UAAA,CAAA0B,MAAA,CAAaJ,KAAK,CAAG;YAC/B3B,MAAM,EACJ6U,QAAQ,CAAC;cAAEzE,IAAI,EAAErU,eAAe,CAACE,eAAe;AAAE0F,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC,IACzDA,KAAK,KAAK,CAAC,IACVkT,QAAQ,CAAC;cACPzE,IAAI,EAAErU,eAAe,CAACC,WAAW;AACjC2F,cAAAA,KAAK,EAAEb;AACT,aAAC,CACJ;YACDX,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,cAAA,OACCA,WAAW,CAAC;gBACVlE,IAAI,EAAErU,eAAe,CAACE,eAAe;AACrC0F,gBAAAA,KAAK,EAALA,KAAK;AACLiC,gBAAAA,OAAO,EAAPA;AACF,eAAC,CAAC;YAAA,CACL;YAAAhE,QAAA,EAEA8D,YAAY,CAAC;AAAEF,cAAAA,MAAM,EAANA,MAAM;AAAEI,cAAAA,OAAO,EAAPA;aAAS;AAAC,WAC7B,CAAC;SAAA,EAAA,CAAA0X,WAAA,GAhDK1X,OAAO,CAACP,EAAE,MAAA,IAAA,IAAAiY,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAI3Z,KAiDnB,CAAC;AAAA,MAAA,CACZ,CAAC,EACDwZ,cAAc,iBACbvZ,IAAA,CAAAE,UAAA,EAAA;AAAAlC,QAAAA,QAAA,gBACEe,GAAA,CAAA,MAAA,EAAA;AAAMP,UAAAA,SAAS,EAAC,UAAU;UAAAR,QAAA,EAAE4G,CAAC,CAAC,sBAAsB;AAAC,SAAO,CAAC,eAC7D7F,GAAA,CAACjB,KAAK,EAAA;AACJW,UAAAA,UAAU,EAAC,eAAe;UAC1BP,KAAK,EAAEmE,SAAS,GAAG3F,WAAW,CAACC,MAAM,GAAGD,WAAW,CAACE,KAAM;UAC1DwB,MAAM,EAAE6U,QAAQ,CAAC;YACfzE,IAAI,EAAErU,eAAe,CAACG,aAAa;AACnCyF,YAAAA,KAAK,EAAEb;AACT,WAAC,CAAE;UACHZ,OAAO,EAAE6U,SAAS,CAAC;YACjB3E,IAAI,EAAErU,eAAe,CAACG,aAAa;AACnCyF,YAAAA,KAAK,EAAEb;AACT,WAAC,CAAE;UACHX,OAAO,EACLmU,WAAW,IACV,YAAA;AAAA,YAAA,OAAMA,WAAW,CAAC;cAAElE,IAAI,EAAErU,eAAe,CAACG;AAAc,aAAC,CAAC;UAAA,CAC5D;AAAA0D,UAAAA,QAAA,EAEAqE,SAAS,GACNH,cAAc,CAAC;AAAEN,YAAAA,MAAM,EAANA,MAAM;AAAES,YAAAA,SAAS,EAATA;AAAU,WAAC,CAAC,GACrCuC,CAAC,CAAC,gCAAgC;AAAC,SAClC,CAAC;AAAA,OACR,CACH;KACE,CAAC,eACN5E,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,gBAAgB;AAAAR,MAAAA,QAAA,EAAA,CAC5B4U,kBAAkB,iBACjB7T,GAAA,CAAC8U,MAAM,EAAA;AACL,QAAA,aAAA,EAAY,uBAAuB;AACnCrM,QAAAA,IAAI,EAAEsM,IAAK;AACXC,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,sCAAsC,CAAC;AAClDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAEqU;OACV,CACF,EACAyG,kBAAkB,iBACjBta,GAAA,CAAC8U,MAAM,EAAA7U,eAAA,CAAA;AACL,QAAA,aAAA,EAAY,eAAe;AAC3BwI,QAAAA,IAAI,EAAE4M,MAAO;AACbL,QAAAA,IAAI,EAAC,IAAI;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfC,QAAAA,YAAY,EAAE;AACZC,UAAAA,OAAO,EAAEtP,CAAC,CAAC,sCAAsC,CAAC;AAClDuP,UAAAA,QAAQ,EAAE;SACV;AACF5V,QAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;AACb9B,UAAAA,aAAa,EAAE;AACf4c,UAAAA,kBAAkB,EAAE;AACtB,QAAA;OAAE,EACE/c,kBAAkB,CACvB,CACF;AAAA,KACE,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;;;;ACvLD,IAAMqd,cAAc,GAAG,SAAjBA,cAAcA,CAAG/X,MAAM,EAAI;AAC/B,EAAA,IAAAgY,gBAAA,GAAAC,eAAA,CAAAC,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQC,QAAAA,aAAa,EAAAD,KAAA,CAAA,eAAA,CAAA;AAAEE,QAAAA,eAAe,EAAAF,KAAA,CAAA,iBAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAA9BC,aAAa,GAAAJ,gBAAA,CAAbI,aAAa;IAAEC,eAAe,GAAAL,gBAAA,CAAfK,eAAe;AAEtC,EAAA,IAAMC,QAAQ,GAAGC,WAAW,CAC1B,UAAApc,IAAA,EAAA;AAAA,IAAA,IAAGyQ,IAAI,GAAAzQ,IAAA,CAAJyQ,IAAI;MAAA4L,SAAA,GAAArc,IAAA,CAAEsc,IAAI;AAAJA,MAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,SAAA;AAAA,IAAA,OAChBJ,aAAa,CAAC;AACZxL,MAAAA,IAAI,EAAJA,IAAI;AACJwF,MAAAA,OAAO,EAAE,SAAS;MAClBD,IAAI,EAAE5Y,iBAAiB,CAACuF,QAAQ,CAAC8N,IAAI,CAAC,GAAG,OAAO,GAAG,OAAO;AAC1D6L,MAAAA,IAAI,EAAArb,eAAA,CAAA;AAAI4C,QAAAA,MAAM,EAANA;AAAM,OAAA,EAAKyY,IAAI;AACzB,KAAC,CAAC;AAAA,EAAA,CAAA,EACJ,CAACzY,MAAM,EAAEoY,aAAa,CACxB,CAAC;AAED,EAAA,IAAMM,QAAQ,GAAGH,WAAW,CAC1B,UAAA9B,KAAK,EAAI;IACP,IAAM7J,IAAI,GAAGxT,mBAAmB,CAACqd,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE7J,IAAI,CAAC;IAC7C,IAAI,CAACA,IAAI,EAAE;AAEX,IAAA,IAAc+L,MAAM,GAAclC,KAAK,CAA/B7J,IAAI;AAAa9P,MAAAA,IAAI,GAAAC,wBAAA,CAAK0Z,KAAK,EAAAzZ,SAAA,CAAA;AACvCsb,IAAAA,QAAQ,CAAC;AAAE1L,MAAAA,IAAI,EAAJA,IAAI;AAAE6L,MAAAA,IAAI,EAAArb,eAAA,CAAA;AAAIub,QAAAA,MAAM,EAANA;AAAM,OAAA,EAAK7b,IAAI;AAAG,KAAC,CAAC;AAC/C,EAAA,CAAC,EACD,CAACwb,QAAQ,CACX,CAAC;EAED,OAAO;AAAEI,IAAAA,QAAQ,EAARA,QAAQ;AAAEJ,IAAAA,QAAQ,EAARA,QAAQ;AAAEM,IAAAA,SAAS,EAAEP;GAAiB;AAC3D,CAAC;;ACbD,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAG7Y,MAAM,EAAI;AAC7B,EAAA,IAAA8Y,iBAAA,GAAkCC,gBAAgB,EAAE;IAA5C/a,MAAM,GAAA8a,iBAAA,CAAN9a,MAAM;IAAEgb,aAAa,GAAAF,iBAAA,CAAbE,aAAa;AAE7B,EAAA,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAA9c,IAAA,EAAA;AAAA,IAAA,IAAMqS,IAAI,GAAArS,IAAA,CAAJqS,IAAI;MAAE/Z,KAAK,GAAA0H,IAAA,CAAL1H,KAAK;AAAA,IAAA,OAAOukB,aAAa,CAACxK,IAAI,EAAE/Z,KAAK,CAAC;AAAA,EAAA,CAAA;AAC7D,EAAA,IAAMykB,QAAQ,GAAG,SAAXA,QAAQA,CAAGlK,KAAK,EAAA;AAAA,IAAA,OAAIA,KAAK,CAAClT,OAAO,CAACmd,KAAK,CAAC;AAAA,EAAA,CAAA;EAE9C,IAAMnS,IAAI,GAAGqS,OAAO,CAClB,YAAA;AAAA,IAAA,OAAMtL,iBAAiB,CAAC;AAAE7P,MAAAA,MAAM,EAANA,MAAM;AAAEgC,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC;AAAA,EAAA,CAAA,EAC3C,CAAChC,MAAM,EAAEgC,MAAM,CACjB,CAAC;EAED,OAAO;AACL8G,IAAAA,IAAI,EAAJA,IAAI;AACJsS,IAAAA,SAAS,EAAEhM,mBAAmB,CAACpN,MAAM,CAAC;AACtCsO,IAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAEvY,QAAQ,EAAA;MAAA,OACnBmjB,QAAQ,CAACzK,eAAe,CAAC;AAAEzO,QAAAA,MAAM,EAANA,MAAM;AAAEhC,QAAAA,MAAM,EAANA,MAAM;AAAEjI,QAAAA,QAAQ,EAARA;AAAS,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AACzDoZ,IAAAA,YAAY,EAAE,SAAdA,cAAYA,CAAE1O,SAAS,EAAA;MAAA,OAAIwY,KAAK,CAAC9J,YAAY,CAAC;AAAEnP,QAAAA,MAAM,EAANA,MAAM;AAAES,QAAAA,SAAS,EAATA;AAAU,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AACrE4O,IAAAA,UAAU,EAAE,SAAZA,YAAUA,CAAE9Y,OAAO,EAAA;MAAA,OAAI0iB,KAAK,CAAC5J,UAAU,CAAC;AAAErP,QAAAA,MAAM,EAANA,MAAM;AAAEzJ,QAAAA,OAAO,EAAPA;AAAQ,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AAC7DgZ,IAAAA,aAAa,EAAE,SAAfA,eAAaA,CAAEnZ,UAAU,EAAA;MAAA,OAAI6iB,KAAK,CAAC1J,aAAa,CAAC;AAAEvP,QAAAA,MAAM,EAANA,MAAM;AAAE5J,QAAAA,UAAU,EAAVA;AAAW,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AACzEqZ,IAAAA,gBAAgB,EAAE,SAAlBA,kBAAgBA,CAAE3C,QAAQ,EAAA;MAAA,OACxBmM,KAAK,CACHxJ,gBAAgB,CAAC;AAAEzP,QAAAA,MAAM,EAANA,MAAM;QAAE5J,UAAU,EAAE0Q,IAAI,CAAC1Q,UAAU;AAAE0W,QAAAA,QAAQ,EAARA;AAAS,OAAC,CACpE,CAAC;AAAA,IAAA,CAAA;AACH8C,IAAAA,QAAQ,EAAE,SAAVA,UAAQA,CAAElZ,KAAK,EAAA;MAAA,OAAIuiB,KAAK,CAACrJ,QAAQ,CAAC;AAAE5P,QAAAA,MAAM,EAANA,MAAM;AAAEtJ,QAAAA,KAAK,EAALA;AAAM,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AACrDoZ,IAAAA,SAAS,EAAE,SAAXA,WAASA,CAAEtT,MAAM,EAAA;MAAA,OAAIyc,KAAK,CAACnJ,SAAS,CAAC;AAAE9P,QAAAA,MAAM,EAANA,MAAM;AAAExD,QAAAA,MAAM,EAANA;AAAO,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AACzDwT,IAAAA,QAAQ,EAAE,SAAVA,UAAQA,CAAE3H,KAAK,EAAA;MAAA,OAAI4Q,KAAK,CAACjJ,QAAQ,CAAC;AAAEhQ,QAAAA,MAAM,EAANA,MAAM;AAAEqI,QAAAA,KAAK,EAALA;AAAM,OAAC,CAAC,CAAC;AAAA,IAAA,CAAA;AACrDgR,IAAAA,eAAe,EAAE,SAAjBA,eAAeA,CAAElb,KAAK,EAAA;MAAA,OACpB+a,QAAQ,CACNhJ,eAAe,CAAC;AACdlS,QAAAA,MAAM,EAANA,MAAM;AACNhI,QAAAA,QAAQ,EAAEoX,mBAAmB,CAACpN,MAAM,CAAC,CAAC5J,UAAU;AAChD+H,QAAAA,KAAK,EAALA;AACF,OAAC,CACH,CAAC;AAAA,IAAA,CAAA;AACHmb,IAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAEnb,KAAK,EAAA;MAAA,OACjB+a,QAAQ,CACNhJ,eAAe,CAAC;AACdlS,QAAAA,MAAM,EAANA,MAAM;AACNhI,QAAAA,QAAQ,EAAEoX,mBAAmB,CAACpN,MAAM,CAAC,CAACzJ,OAAO;AAC7C4H,QAAAA,KAAK,EAALA;AACF,OAAC,CACH,CAAC;AAAA,IAAA,CAAA;IACHob,aAAa,EAAE,SAAfA,aAAaA,GAAA;MAAA,OACXL,QAAQ,CACNxI,eAAe,CAAC;AACd1S,QAAAA,MAAM,EAANA,MAAM;AACNhI,QAAAA,QAAQ,EAAEoX,mBAAmB,CAACpN,MAAM,CAAC,CAACjK;AACxC,OAAC,CACH,CAAC;AAAA,IAAA,CAAA;IACHyjB,eAAe,EAAE,SAAjBA,eAAeA,GAAA;MAAA,OACbN,QAAQ,CACNxI,eAAe,CAAC;AACd1S,QAAAA,MAAM,EAANA,MAAM;AACNhI,QAAAA,QAAQ,EAAEoX,mBAAmB,CAACpN,MAAM,CAAC,CAAC5J;AACxC,OAAC,CACH,CAAC;AAAA,IAAA,CAAA;IACHqjB,YAAY,EAAE,SAAdA,YAAYA,GAAA;MAAA,OACVP,QAAQ,CACNxI,eAAe,CAAC;AACd1S,QAAAA,MAAM,EAANA,MAAM;AACNhI,QAAAA,QAAQ,EAAEoX,mBAAmB,CAACpN,MAAM,CAAC,CAACzJ;AACxC,OAAC,CACH,CAAC;AAAA,IAAA;GACJ;AACH,CAAC;;;;AC9DD,IAAMmjB,YAAY,GAAG,SAAfA,YAAYA,CAAG/Z,MAAM,EAAA;EAAA,IAAAxD,IAAA,EAAAwd,kBAAA;EAAA,OAAA,CAAAxd,IAAA,IAAAwd,kBAAA,GAAIha,MAAM,CAACC,UAAU,MAAA,IAAA,IAAA+Z,kBAAA,KAAA,MAAA,GAAAA,kBAAA,GAAIha,MAAM,CAAClL,KAAK,MAAA,IAAA,IAAA0H,IAAA,cAAAA,IAAA,GAAIwD,MAAM,CAACE,EAAE;AAAA,CAAA;AAE7E,IAAM+Z,MAAM,GAAG,SAATA,MAAMA,CAAAzZ,KAAA,EAAA;AAAA,EAAA,IAAMH,MAAM,GAAAG,KAAA,CAANH,MAAM;IAAE8G,IAAI,GAAA3G,KAAA,CAAJ2G,IAAI;IAAE3I,KAAK,GAAAgC,KAAA,CAALhC,KAAK;IAAEuY,OAAO,GAAAvW,KAAA,CAAPuW,OAAO;AAAA,EAAA,OAC5CjT,aAAa,CAAC;AAAEzD,IAAAA,MAAM,EAANA,MAAM;IAAE2D,MAAM,EAAEkW,QAAQ,CAAC;AAAE/S,MAAAA,IAAI,EAAJA,IAAI;AAAE3I,MAAAA,KAAK,EAALA;KAAO;AAAE,GAAC,CAAC,CAAC8B,IAAI,CAC/D,UAAAgE,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,CAACrG,GAAG,KAAK8Y,OAAO;AAAA,EAAA,CAC9B,CAAC;AAAA,CAAA;;AAEH;AACA;AACA,IAAMoD,eAAe,GAAG,SAAlBA,eAAeA,CAAAvZ,KAAA,EAAyC;AAAA,EAAA,IAAnCP,MAAM,GAAAO,KAAA,CAANP,MAAM;IAAE8G,IAAI,GAAAvG,KAAA,CAAJuG,IAAI;IAAE3I,KAAK,GAAAoC,KAAA,CAALpC,KAAK;IAAEuY,OAAO,GAAAnW,KAAA,CAAPmW,OAAO;EACrD,IAAM7S,KAAK,GAAGJ,aAAa,CAAC;AAAEzD,IAAAA,MAAM,EAANA,MAAM;IAAE2D,MAAM,EAAEkW,QAAQ,CAAC;AAAE/S,MAAAA,IAAI,EAAJA,IAAI;AAAE3I,MAAAA,KAAK,EAALA;KAAO;AAAE,GAAC,CAAC;EAC1E,IAAM4b,EAAE,GAAGrD,OAAO,GAAG7S,KAAK,CAACmW,SAAS,CAAC,UAAA/V,IAAI,EAAA;AAAA,IAAA,OAAIA,IAAI,CAACrG,GAAG,KAAK8Y,OAAO;EAAA,CAAA,CAAC,GAAG,EAAE;AACvE;AACA;EACA,IAAIA,OAAO,IAAIqD,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI;AAErC,EAAA,IAAME,IAAI,GAAGpW,KAAK,CAACkW,EAAE,GAAG,CAAC,CAAC;AAE1B,EAAA,OAAOE,IAAI,GACP;IACErN,IAAI,EAAErV,mBAAmB,CAACS,WAAW;AACrCygB,IAAAA,IAAI,EAAE;AAAEta,MAAAA,KAAK,EAALA,KAAK;MAAEuY,OAAO,EAAEuD,IAAI,CAACrc,GAAG;MAAE+a,MAAM,EAAEpgB,eAAe,CAACP;AAAY;AACxE,GAAC,GACD,IAAI;AACV,CAAC;AAED,IAAMkiB,WAAW,GAAG,SAAdA,WAAWA,CAAGva,MAAM,EAAA;AAAA,EAAA,IAAA6D,aAAA;AAAA,EAAA,OAAA,CAAAA,aAAA,GAAI7D,MAAM,CAAClL,KAAK,MAAA,IAAA,IAAA+O,aAAA,KAAA,MAAA,GAAAA,aAAA,GAAI7D,MAAM,CAACE,EAAE;AAAA,CAAA;AAEvD,IAAMsa,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGlkB,OAAO,EAAA;EAAA,OAC9B,CAACA,OAAO,IAAI,EAAE,EAAEiI,GAAG,CAAC,UAAAyB,MAAM,EAAA;IAAA,OACxB,OAAOA,MAAM,KAAK,QAAQ,GAAGya,eAAe,CAACza,MAAM,CAAC,GAAGA,MAAM;AAAA,EAAA,CAC/D,CAAC;AAAA,CAAA;AAEH,IAAM0a,eAAe,GAAG,SAAlBA,eAAeA,CAAGpkB,OAAO,EAAI;EACjC,IAAMqkB,MAAM,GAAG,EAAE;EACjB,IAAMC,eAAe,GAAG,EAAE;AAC1BtkB,EAAAA,OAAO,CAAC6F,OAAO,CAAC,UAAA6D,MAAM,EAAI;AACxB,IAAA,IAAM6a,QAAQ,GAAG7a,MAAM,CAAC6a,QAAQ,IAAI,EAAE;AACtC;AACA,IAAA,IAAID,eAAe,CAACC,QAAQ,CAAC,KAAKld,SAAS,EAAE;AAC3C;AACAid,MAAAA,eAAe,CAACC,QAAQ,CAAC,GAAGF,MAAM,CAACtR,MAAM;MACzCsR,MAAM,CAAC5Q,IAAI,CAAC,CAAC8Q,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7B,IAAA;AACA;AACAF,IAAAA,MAAM,CAACC,eAAe,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC9Q,IAAI,CAAC/J,MAAM,CAAC;AACnD,EAAA,CAAC,CAAC;AAEF,EAAA,OAAO2a,MAAM;AACf,CAAC;AAED,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAA7Z,KAAA,EAAA;AAAA,EAAA,IAAMkG,IAAI,GAAAlG,KAAA,CAAJkG,IAAI;IAAE3I,KAAK,GAAAyC,KAAA,CAALzC,KAAK;AAAA,EAAA;AAChC;AACA2I,IAAAA,IAAI,CAAC1Q,UAAU,CAAC+H,KAAK,CAAC,IAAI;AAAE;AAAA,CAAA;;AAE9B;AACA,IAAM0b,QAAQ,GAAG,SAAXA,QAAQA,CAAA7Y,KAAA,EAAA;AAAA,EAAA,IAAM8F,IAAI,GAAA9F,KAAA,CAAJ8F,IAAI;IAAE3I,KAAK,GAAA6C,KAAA,CAAL7C,KAAK;EAAA,OAAO2I,IAAI,CAACvQ,OAAO,CAAC4H,KAAK,CAAC,IAAI,EAAE;AAAA,CAAA;;AAE/D;AACA,IAAMuc,WAAW,GAAG,SAAdA,WAAWA,CAAAvZ,KAAA,EAAA;AAAA,EAAA,IAAAwZ,WAAA;AAAA,EAAA,IAAM7T,IAAI,GAAA3F,KAAA,CAAJ2F,IAAI;IAAE3I,KAAK,GAAAgD,KAAA,CAALhD,KAAK;AAAA,EAAA,OAAO,CAAA,CAAAwc,WAAA,GAAA7T,IAAI,CAACuB,KAAK,MAAA,IAAA,IAAAsS,WAAA,KAAA,MAAA,GAAA,MAAA,GAAVA,WAAA,CAAaxc,KAAK,CAAC,KAAI,EAAE;AAAA,CAAA;AAElE,IAAMyc,cAAc,GAAG,SAAjBA,cAAcA,CAAGxS,IAAI,EAAA;AAAA,EAAA,OACzB,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,uBAAJA,IAAI,CAAE5T,KAAK,MAAI4T,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE1I,IAAI,CAAA,KAAI0I,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,CAAA,IAAIgK,MAAM,CAAC2J,IAAI,aAAJA,IAAI,KAAA,MAAA,GAAJA,IAAI,GAAI,EAAE,CAAC;AAAA,CAAA;AAEhE,IAAMyS,SAAS,GAAG,SAAZA,SAASA,CAAAtZ,KAAA,EAAA;AAAA,EAAA,IAAAV,kBAAA;AAAA,EAAA,IAAMb,MAAM,GAAAuB,KAAA,CAANvB,MAAM;IAAEvL,KAAK,GAAA8M,KAAA,CAAL9M,KAAK;AAAA,EAAA,OAChC,CAAC,CAAA,CAAAoM,kBAAA,GAAAb,MAAM,CAAC5J,UAAU,MAAA,IAAA,IAAAyK,kBAAA,uBAAjBA,kBAAA,CAAmBxK,MAAM,KAAI,EAAE,EAAE4J,IAAI,CAAC,UAAAa,KAAK,EAAA;AAAA,IAAA,OAAIoZ,WAAW,CAACpZ,KAAK,CAAC,KAAKrM,KAAK;EAAA,CAAA,CAAC;AAAA,CAAA;AAE/E,IAAMqmB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA1Y,KAAA,EAAA;AAAA,EAAA,IAAAe,eAAA;AAAA,EAAA,IAAMnD,MAAM,GAAAoC,KAAA,CAANpC,MAAM;IAAEN,IAAI,GAAA0C,KAAA,CAAJ1C,IAAI;AAAA,EAAA,OACtC,CAAC,CAAA,CAAAyD,eAAA,GAAAnD,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA4M,eAAA,uBAAdA,eAAA,CAAgBlN,OAAO,KAAI,EAAE,EAAEgK,IAAI,CAAC,UAAAN,MAAM,EAAA;AAAA,IAAA,OAAIua,WAAW,CAACva,MAAM,CAAC,KAAKD,IAAI;EAAA,CAAA,CAAC;AAAA,CAAA;AAE9E,IAAMqb,SAAS,GAAG,SAAZA,SAASA,CAAA1Y,KAAA,EAAA;EAAA,IAAAiB,gBAAA,EAAA0X,qBAAA;AAAA,EAAA,IAAMhb,MAAM,GAAAqC,KAAA,CAANrC,MAAM;IAAE2D,MAAM,GAAAtB,KAAA,CAANsB,MAAM;EAAA,OACjC,CAAAA,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEJ,OAAO,MAAA,CAAAD,gBAAA,GAAItD,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA+M,gBAAA,gBAAA0X,qBAAA,GAAd1X,gBAAA,CAAgB0B,aAAa,MAAA,IAAA,IAAAgW,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAA7BA,qBAAA,CAAAnf,IAAA,CAAAyH,gBAAA,EAAgCK,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAC,cAAAsb,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA7CA,qBAAA,CAA+CzX,OAAO,CAAA;AAAA,CAAA;AAE3E,IAAM0X,WAAW,GAAG,SAAdA,WAAWA,CAAApY,KAAA,EAAA;AAAA,EAAA,IAAA2B,iBAAA,EAAAgJ,gBAAA,EAAA0N,qBAAA;AAAA,EAAA,IAAMlb,MAAM,GAAA6C,KAAA,CAAN7C,MAAM;IAAE2D,MAAM,GAAAd,KAAA,CAANc,MAAM;EAAA,OAAA,CAAAa,iBAAA,GACnCb,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEoB,SAAS,MAAA,IAAA,IAAAP,iBAAA,cAAAA,iBAAA,GAAA,CAAAgJ,gBAAA,GAAIxN,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAiX,gBAAA,KAAA,MAAA,IAAA,CAAA0N,qBAAA,GAAd1N,gBAAA,CAAgBxI,aAAa,MAAA,IAAA,IAAAkW,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAA7BA,qBAAA,CAAArf,IAAA,CAAA2R,gBAAA,EAAgC7J,MAAM,aAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAC,cAAAwb,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA7CA,qBAAA,CAA+CnW,SAAS;AAAA,CAAA;AAE/E,IAAMoW,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAAC,gBAAA;AAAA,EAAA,IAAMrb,MAAM,GAAAob,KAAA,CAANpb,MAAM;IAAE2D,MAAM,GAAAyX,KAAA,CAANzX,MAAM;EAAA,OACrC,CAAA,CAAA0X,gBAAA,GAAArb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA8kB,gBAAA,KAAA,MAAA,IAAA,CAAAA,gBAAA,GAAdA,gBAAA,CAAgB7kB,WAAW,MAAA,IAAA,IAAA6kB,gBAAA,uBAA3BA,gBAAA,CAA8BN,SAAS,CAAC;AAAE/a,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC,CAAC,KAAI,EAAE;AAAA,CAAA;AAEpE,IAAM2X,eAAe,GAAG,SAAlBA,eAAeA,CAAApY,MAAA,EAA2B;EAAA,IAAAqY,gBAAA,EAAAC,gBAAA;AAAA,EAAA,IAArBxb,MAAM,GAAAkD,MAAA,CAANlD,MAAM;IAAE2D,MAAM,GAAAT,MAAA,CAANS,MAAM;EACvC,IAAMpB,IAAI,GAAG4Y,aAAa,CAAC;AAAEnb,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;AAC9C,EAAA,IAAIpB,IAAI,CAACoD,WAAW,EAAE,OAAO,IAAI;EAEjC,IAAMhG,MAAM,GAAGmb,gBAAgB,CAAC;AAAE9a,IAAAA,MAAM,EAANA,MAAM;AAAEN,IAAAA,IAAI,EAAEiE,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE;AAAK,GAAC,CAAC;AAC/D,EAAA,IAAIC,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAE8b,SAAS,IAAI9b,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAE+b,YAAY,EAAE,OAAO,IAAI;EAE1D,IAAA,CAAAH,gBAAA,GAAIvb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAglB,gBAAA,eAAdA,gBAAA,CAAgBI,SAAS,EAAE,OAAO3b,MAAM,CAACzJ,OAAO,CAAColB,SAAS,CAAChY,MAAM,CAAC;AAEtE,EAAA,OAAO,CAAC,EAAA,CAAA6X,gBAAA,GAACxb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAilB,gBAAA,KAAA,MAAA,IAAdA,gBAAA,CAAgBE,YAAY,CAAA;AACvC,CAAC;AAED,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAAvY,MAAA,EAA2B;EAAA,IAAAwY,gBAAA,EAAAC,gBAAA;AAAA,EAAA,IAArB9b,MAAM,GAAAqD,MAAA,CAANrD,MAAM;IAAE2D,MAAM,GAAAN,MAAA,CAANM,MAAM;EACrC,IAAMJ,OAAO,GAAGwX,SAAS,CAAC;AAAE/a,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;AAC7C,EAAA,IAAIJ,OAAO,IAAA,CAAAsY,gBAAA,GAAI7b,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAslB,gBAAA,KAAA,MAAA,IAAdA,gBAAA,CAAgBD,aAAa,EAAE;AAC5C,IAAA,OAAO5b,MAAM,CAACzJ,OAAO,CAACqlB,aAAa,CAACrY,OAAO,CAAC;AAC9C,EAAA;EAEA,IAAM5D,MAAM,GAAGmb,gBAAgB,CAAC;AAAE9a,IAAAA,MAAM,EAANA,MAAM;AAAEN,IAAAA,IAAI,EAAE6D;AAAQ,GAAC,CAAC;EAC1D,IAAI5D,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAElJ,UAAU,EAAE,OAAOkJ,MAAM,CAAClJ,UAAU;AAEhD,EAAA,OAAO,CAAA,CAAAqlB,gBAAA,GAAA9b,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAulB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgBrlB,UAAU,KAAI,EAAE;AACzC,CAAC;;AAED;AACA,IAAMslB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAArY,MAAA,EAAgC;AAAA,EAAA,IAA1B1D,MAAM,GAAA0D,MAAA,CAAN1D,MAAM;IAAE8G,IAAI,GAAApD,MAAA,CAAJoD,IAAI;IAAE3I,KAAK,GAAAuF,MAAA,CAALvF,KAAK;EAChD,IAAMwF,MAAM,GAAGkW,QAAQ,CAAC;AAAE/S,IAAAA,IAAI,EAAJA,IAAI;AAAE3I,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;EACxC,IAAMoF,OAAO,GAAGwX,SAAS,CAAC;AAAE/a,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;EAC7C,IAAMqY,SAAS,GAAGlV,IAAI,CAACvQ,OAAO,CAC3BqY,MAAM,CAAC,UAAC0B,CAAC,EAAEiC,QAAQ,EAAA;IAAA,OAAKA,QAAQ,KAAKpU,KAAK;AAAA,EAAA,CAAA,CAAC,CAC3CD,GAAG,CAAC,UAAAkK,IAAI,EAAA;IAAA,OAAIA,IAAI,CAAC1I,IAAI;AAAA,EAAA,CAAA,CAAC,CACtBkP,MAAM,CAACC,OAAO,CAAC;AAElB,EAAA,OAAO+M,aAAa,CAAC;AAAE5b,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC,CAACiL,MAAM,CAAC,UAAA7J,SAAS,EAAI;IAAA,IAAAkX,gBAAA,EAAAC,qBAAA;IAC3D,IAAMxc,IAAI,IAAAuc,gBAAA,GAAGjc,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA0lB,gBAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAdD,gBAAA,CAAgBE,WAAW,MAAA,IAAA,IAAAD,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,qBAAA,CAAArgB,IAAA,CAAAogB,gBAAA,EAA8B;AACzC1Y,MAAAA,OAAO,EAAPA,OAAO;MACPwB,SAAS,EAAEmV,WAAW,CAACnV,SAAS;AAClC,KAAC,CAAC;IAEF,OAAO,CAACrF,IAAI,IAAI,CAACsc,SAAS,CAACld,QAAQ,CAACY,IAAI,CAAC;AAC3C,EAAA,CAAC,CAAC;AACJ,CAAC;AAED,IAAM0c,YAAY,GAAG,SAAfA,YAAYA,CAAArY,MAAA,EAAgC;AAAA,EAAA,IAAAhE,gBAAA;AAAA,EAAA,IAA1BC,MAAM,GAAA+D,MAAA,CAAN/D,MAAM;IAAE8G,IAAI,GAAA/C,MAAA,CAAJ+C,IAAI;IAAErS,KAAK,GAAAsP,MAAA,CAALtP,KAAK;EACzC,IAAA,CAAAsL,gBAAA,GAAIC,MAAM,CAACjK,QAAQ,MAAA,IAAA,IAAAgK,gBAAA,KAAA,MAAA,IAAfA,gBAAA,CAAiBsc,KAAK,EAAE;IAC1B,IAAMC,KAAK,GAAGC,KAAK,CAAC,MAAM,EAAEzV,IAAI,CAAC/Q,QAAQ,CAAC;IAE1C,OAAOumB,KAAK,CAACxd,QAAQ,CAACrK,KAAK,CAAC,GACxB+nB,QAAQ,CAAC;AAAE9c,MAAAA,IAAI,EAAEjL;AAAM,KAAC,EAAEqS,IAAI,CAAC/Q,QAAQ,CAAC,GAAA,EAAA,CAAAwI,MAAA,CAAAoO,kBAAA,CACpC7F,IAAI,CAAC/Q,QAAQ,CAAA,EAAA,CAAE;AAAE2J,MAAAA,IAAI,EAAEjL;AAAM,KAAC,CAAA,CAAC;AACzC,EAAA;EAEA,OAAO,CAAA2I,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAM0J,IAAI,CAAC/Q,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAE2J,IAAAA,IAAI,EAAEjL;GAAK,CAAA,CAAG;AAC/C,CAAC;AAED,IAAMgoB,eAAe,GAAG,SAAlBA,eAAeA,CAAAtY,MAAA,EAAuC;AAAA,EAAA,IAAAuY,oBAAA;AAAA,EAAA,IAAjC1c,MAAM,GAAAmE,MAAA,CAANnE,MAAM;IAAE8G,IAAI,GAAA3C,MAAA,CAAJ2C,IAAI;IAAE3I,KAAK,GAAAgG,MAAA,CAALhG,KAAK;IAAE1J,KAAK,GAAA0P,MAAA,CAAL1P,KAAK;EACnD,IAAMqM,KAAK,GAAG+Z,SAAS,CAAC;AAAE7a,IAAAA,MAAM,EAANA,MAAM;AAAEvL,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;EAC1C,IAAMkoB,QAAQ,GAAGlC,WAAW,CAAC;AAAE3T,IAAAA,IAAI,EAAJA,IAAI;AAAE3I,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;AAC7C,EAAA,IAAMye,KAAK,GAAG9b,KAAK,KAAA,IAAA,IAALA,KAAK,gBAAA4b,oBAAA,GAAL5b,KAAK,CAAE+b,aAAa,MAAA,IAAA,IAAAH,oBAAA,uBAApBA,oBAAA,CAAuB,CAAC,CAAC;EACvC,IAAMI,WAAW,GACfF,KAAK,IAAI,CAAC,CAAC,CAAA9b,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEU,eAAe,KAAI,EAAE,EAAE1C,QAAQ,CAAC8d,KAAK,CAAC,GACpDA,KAAK,GACLtf,SAAS;EAEf,IAAMuB,IAAI,GAAG,CAAC,CAAAiC,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE+b,aAAa,KAAI,EAAE,EAAE/d,QAAQ,CAAC6d,QAAQ,CAAC9d,IAAI,CAAC,GAC7D8d,QAAQ,CAAC9d,IAAI,GACbie,WAAW;AAEf,EAAA,OAAA1f,eAAA,CAAAA,eAAA,CAAA,EAAA,EACKuf,QAAQ,CAAA,EAAA,EAAA,EAAA;AACX7b,IAAAA,KAAK,EAAErM,KAAK;AACZsoB,IAAAA,IAAI,EAAEjc,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEic,IAAI;AACjBle,IAAAA,IAAI,EAAJA,IAAI;AACJ2D,IAAAA,QAAQ,EAAE;AAAE,GAAA,CAAA;AAEhB,CAAC;AAED,IAAMwa,YAAY,GAAG,SAAfA,YAAYA,CAAA1Y,MAAA,EAAuC;AAAA,EAAA,IAAA2Y,gBAAA;AAAA,EAAA,IAAjCjd,MAAM,GAAAsE,MAAA,CAANtE,MAAM;IAAE8G,IAAI,GAAAxC,MAAA,CAAJwC,IAAI;IAAE3I,KAAK,GAAAmG,MAAA,CAALnG,KAAK;IAAE1J,KAAK,GAAA6P,MAAA,CAAL7P,KAAK;AAChD,EAAA,IAAI,EAAA,CAAAwoB,gBAAA,GAACjd,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA0mB,gBAAA,KAAA,MAAA,IAAdA,gBAAA,CAAgBd,WAAW,CAAA,EAAE;IAChC,IAAMxc,MAAM,GAAGmb,gBAAgB,CAAC;AAAE9a,MAAAA,MAAM,EAANA,MAAM;AAAEN,MAAAA,IAAI,EAAEjL;AAAM,KAAC,CAAC;IACxD,IAAMyoB,KAAI,GAAGrD,QAAQ,CAAC;AAAE/S,MAAAA,IAAI,EAAJA,IAAI;AAAE3I,MAAAA,KAAK,EAALA;AAAM,KAAC,CAAC;AAEtC,IAAA,IAAIwB,MAAM,KAAA,IAAA,IAANA,MAAM,eAANA,MAAM,CAAElJ,UAAU,EAAE;AACtB,MAAA,IAAM0mB,eAAc,GAAGD,KAAI,CAAC3Z,OAAO,KAAK9O,KAAK;AAE7C,MAAA,OAAA2I,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK8f,KAAI,CAAA,EAAA,EAAA,EAAA;AACP3Z,QAAAA,OAAO,EAAE9O,KAAK;AACdsQ,QAAAA,SAAS,EAAEoY,eAAc,GAAG7f,SAAS,GAAG4f,KAAI,CAACnY,SAAS;AACtDrF,QAAAA,IAAI,EAAE,EAAE;AACRkN,QAAAA,IAAI,EAAEjN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEiN,IAAI;AAClBpK,QAAAA,QAAQ,EAAE2a,eAAc,GAAG,EAAE,GAAGD,KAAI,CAAC1a;AAAQ,OAAA,CAAA;AAEjD,IAAA;AAEA,IAAA,OAAApF,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK8f,KAAI,CAAA,EAAA,EAAA,EAAA;AACP3Z,MAAAA,OAAO,EAAEjG,SAAS;AAClByH,MAAAA,SAAS,EAAEzH,SAAS;AACpBoC,MAAAA,IAAI,EAAEjL,KAAK;AACXmY,MAAAA,IAAI,EAAEjN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEiN,IAAI;AAClBpK,MAAAA,QAAQ,EAAE;AAAE,KAAA,CAAA;AAEhB,EAAA;EAEA,IAAM0a,IAAI,GAAGrD,QAAQ,CAAC;AAAE/S,IAAAA,IAAI,EAAJA,IAAI;AAAE3I,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;EACtC,IAAMif,WAAW,GAAGrC,SAAS,CAAC;AAAE/a,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAAEuZ;AAAK,GAAC,CAAC;AACvD,EAAA,IAAMC,cAAc,GAAGC,WAAW,KAAK3oB,KAAK;EAC5C,IAAIsQ,SAAS,GAAGoY,cAAc,GAAG7f,SAAS,GAAG4f,IAAI,CAACnY,SAAS;AAC3D,EAAA,IAAIoY,cAAc,EAAE;AAAA,IAAA,IAAAE,gBAAA;AAClB,IAAA,IAAMC,iBAAiB;AACrB;IACA,CAAA,CAAAD,gBAAA,GAAArd,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA8mB,gBAAA,gBAAAA,gBAAA,GAAdA,gBAAA,CAAgBE,mBAAmB,cAAAF,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAnCA,gBAAA,CAAsC5oB,KAAK,CAAC,KAAI,EAAE;AACpD,IAAA,IAAI6oB,iBAAiB,CAACtU,MAAM,KAAK,CAAC,EAAA;AAAA,MAAA,IAAAwU,kBAAA,GAAAjjB,cAAA,CAAgB+iB,iBAAiB,EAAA,CAAA,CAAA;AAA9BvY,MAAAA,SAAS,GAAAyY,kBAAA,CAAA,CAAA,CAAA;AAAA,IAAA;AAChD,EAAA;AAEA,EAAA,OAAApgB,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK8f,IAAI,CAAA,EAAA,EAAA,EAAA;AACP3Z,IAAAA,OAAO,EAAE9O,KAAK;AACdsQ,IAAAA,SAAS,EAATA,SAAS;AACTrF,IAAAA,IAAI,EAAEM,MAAM,CAACzJ,OAAO,CAAC4lB,WAAW,CAAC;AAAE5Y,MAAAA,OAAO,EAAE9O,KAAK;AAAEsQ,MAAAA,SAAS,EAATA;AAAU,KAAC,CAAC;AAC/DvC,IAAAA,QAAQ,EAAE2a,cAAc,GAAG,EAAE,GAAGD,IAAI,CAAC1a;AAAQ,GAAA,CAAA;AAEjD,CAAC;AAED,IAAMib,eAAe,GAAG,SAAlBA,eAAeA,CAAAjX,MAAA,EAAgC;AAAA,EAAA,IAAAkX,iBAAA;AAAA,EAAA,IAA1B1d,MAAM,GAAAwG,MAAA,CAANxG,MAAM;IAAE8G,IAAI,GAAAN,MAAA,CAAJM,IAAI;IAAErS,KAAK,GAAA+R,MAAA,CAAL/R,KAAK;AAC5C,EAAA,IAAMkpB,EAAE,GAAG3d,MAAM,CAACqI,KAAK,IAAI,EAAE;AAC7B,EAAA,IAAM1I,MAAM,GAAG,CAACge,EAAE,CAAC1nB,OAAO,IAAI,EAAE,EAAEgK,IAAI,CACpC,UAAAS,SAAS,EAAA;AAAA,IAAA,OAAIwZ,WAAW,CAACxZ,SAAS,CAAC,KAAKjM,KAAK;AAAA,EAAA,CAC/C,CAAC,IAAI;AAAEA,IAAAA,KAAK,EAALA;GAAO;EACd,IAAM2U,aAAa,GAAG,CAAA,CAAAsU,iBAAA,GAAAC,EAAE,CAACvU,aAAa,MAAA,IAAA,IAAAsU,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAA7hB,IAAA,CAAA8hB,EAAE,EAAiB7W,IAAI,CAACvQ,OAAO,CAAC,KAAI,KAAK;AAC/D,EAAA,IAAI,CAAC6S,aAAa,EAAE,OAAOzJ,MAAM;EAEjC,IAAMiJ,WAAW,GAAGL,gBAAgB,CAAC;AAAEvI,IAAAA,MAAM,EAANA,MAAM;AAAEoI,IAAAA,IAAI,EAAEzI;AAAO,GAAC,CAAC;AAE9D,EAAA,OAAO,CAAAiJ,WAAW,KAAA,IAAA,IAAXA,WAAW,uBAAXA,WAAW,CAAEI,MAAM,MAAK,CAAC,GAAA5L,eAAA,CAAAA,eAAA,KACvBuC,MAAM,CAAA,EAAA,EAAA,EAAA;AAAEoJ,IAAAA,UAAU,EAAEH,WAAW,CAAC,CAAC,CAAC,CAACnU;AAAK,GAAA,CAAA,GAC7CkL,MAAM;AACZ,CAAC;AAED,IAAMie,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAnX,MAAA,EAAuC;AAAA,EAAA,IAAAoX,iBAAA;AAAA,EAAA,IAAjC7d,MAAM,GAAAyG,MAAA,CAANzG,MAAM;IAAE8G,IAAI,GAAAL,MAAA,CAAJK,IAAI;IAAE3I,KAAK,GAAAsI,MAAA,CAALtI,KAAK;IAAE1J,KAAK,GAAAgS,MAAA,CAALhS,KAAK;EACzD,IAAMyoB,IAAI,GAAGrD,QAAQ,CAAC;AAAE/S,IAAAA,IAAI,EAAJA,IAAI;AAAE3I,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;EACtC,IAAMoF,OAAO,GAAGwX,SAAS,CAAC;AAAE/a,IAAAA,MAAM,EAANA,MAAM;AAAE2D,IAAAA,MAAM,EAAEuZ;AAAK,GAAC,CAAC;AAEnD,EAAA,OAAA9f,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK8f,IAAI,CAAA,EAAA,EAAA,EAAA;AACPnY,IAAAA,SAAS,EAAEtQ,KAAK;AAChBiL,IAAAA,IAAI,EAAE,CAAAme,iBAAA,GAAA7d,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAsnB,iBAAA,eAAdA,iBAAA,CAAgB1B,WAAW,GAC7Bnc,MAAM,CAACzJ,OAAO,CAAC4lB,WAAW,CAAC;AAAE5Y,MAAAA,OAAO,EAAPA,OAAO;AAAEwB,MAAAA,SAAS,EAAEtQ;AAAM,KAAC,CAAC,GACzDA;AAAK,GAAA,CAAA;AAEb,CAAC;AAED,IAAMqpB,aAAa,GAAG,SAAhBA,aAAaA,CAAAxW,MAAA,EAAiD;AAAA,EAAA,IAAAgG,cAAA;AAAA,EAAA,IAA3CqL,MAAM,GAAArR,MAAA,CAANqR,MAAM;IAAE3Y,MAAM,GAAAsH,MAAA,CAANtH,MAAM;IAAE8G,IAAI,GAAAQ,MAAA,CAAJR,IAAI;IAAE3I,KAAK,GAAAmJ,MAAA,CAALnJ,KAAK;IAAEuY,OAAO,GAAApP,MAAA,CAAPoP,OAAO;AAC3D,EAAA,QAAQiC,MAAM;IACZ,KAAKpgB,eAAe,CAACC,WAAW;IAChC,KAAKD,eAAe,CAACE,eAAe;AAAE,MAAA;AAAA,QAAA,IAAA2O,iBAAA,EAAA5G,aAAA,EAAA+J,iBAAA;AACpC,QAAA,IAAM8R,KAAK,GAAG,CAAC,EAAA,CAAAjV,iBAAA,GAACpH,MAAM,CAACjK,QAAQ,MAAA,IAAA,IAAAqR,iBAAA,KAAA,MAAA,IAAfA,iBAAA,CAAiBiV,KAAK,CAAA;AACtC,QAAA,IAAM0B,SAAS,GAAGpF,MAAM,KAAKpgB,eAAe,CAACE,eAAe;QAC5D,IAAMulB,YAAY,GAAGD,SAAS,GACzB1B,KAAK,IAAIrZ,CAAC,CAAC,yCAAyC,CAAC,IACtDA,CAAC,CAAC,wCAAwC,CAAC,GAC1CqZ,KAAK,IAAIrZ,CAAC,CAAC,uCAAuC,CAAC,IACpDA,CAAC,CAAC,qCAAqC,CAAC;QAE5C,IAAMib,eAAe,GAClB5B,KAAK,IAAIrZ,CAAC,CAAC,+CAA+C,CAAC,KAC3D+a,SAAS,GACN/a,CAAC,CAAC,iDAAiD,CAAC,GACpDA,CAAC,CAAC,6CAA6C,CAAC,CAAC;QAEvD,OAAO;AACLsU,UAAAA,KAAK,EAAE0G,YAAY;AACnBE,UAAAA,QAAQ,EAAED,eAAe;AACzB5B,UAAAA,KAAK,EAALA,KAAK;AACL8B,UAAAA,OAAO,EAAE,CAAC,EAAA,CAAA3d,aAAA,GAACR,MAAM,CAAC9J,KAAK,MAAA,IAAA,IAAAsK,aAAA,KAAA,MAAA,IAAZA,aAAA,CAAcrK,OAAO,CAAA;UAChCF,OAAO,EAAE,CAAC,CAAA,CAAAsU,iBAAA,GAAAvK,MAAM,CAACjK,QAAQ,MAAA,IAAA,IAAAwU,iBAAA,uBAAfA,iBAAA,CAAiBtU,OAAO,KAAI,EAAE,EAAEiI,GAAG,CAAC,UAAAyB,MAAM,EAAA;YAAA,OAAK;AACvDnL,cAAAA,KAAK,EAAEmL,MAAM,CAACye,SAAS,IAAIze,MAAM,CAACnL,KAAK;AACvCC,cAAAA,KAAK,EAAEilB,YAAY,CAAC/Z,MAAM,CAAC;cAC3B6a,QAAQ,EAAE7a,MAAM,CAAC6a;aAClB;AAAA,UAAA,CAAC,CAAC;AACH6D,UAAAA,cAAc,EAAE9B,KAAK,CAAC,MAAM,EAAEzV,IAAI,CAAC/Q,QAAQ;SAC5C;AACH,MAAA;IACA,KAAKwC,eAAe,CAACG,aAAa;MAChC,OAAO;AACL4e,QAAAA,KAAK,EAAEtU,CAAC,CAAC,qCAAqC,CAAC;AAC/Ckb,QAAAA,QAAQ,EAAElb,CAAC,CAAC,wCAAwC,CAAC;QACrD/M,OAAO,EAAE,CAAC,CAAA,CAAAqX,cAAA,GAAAtN,MAAM,CAAC9J,KAAK,MAAA,IAAA,IAAAoX,cAAA,uBAAZA,cAAA,CAAcrX,OAAO,KAAI,EAAE,EAAEiI,GAAG,CAAC,UAAAyB,MAAM,EAAA;UAAA,OAAK;YACpDnL,KAAK,EAAEmL,MAAM,CAACnL,KAAK;YACnBC,KAAK,EAAEylB,WAAW,CAACva,MAAM;WAC1B;AAAA,QAAA,CAAC,CAAC;AACH0e,QAAAA,cAAc,EAAE,CAACvX,IAAI,CAACrG,SAAS;OAChC;IACH,KAAKlI,eAAe,CAACK,UAAU;MAC7B,OAAO;AACL0e,QAAAA,KAAK,EAAEtU,CAAC,CAAC,uCAAuC,CAAC;AACjDkb,QAAAA,QAAQ,EAAElb,CAAC,CAAC,4CAA4C,CAAC;AACzDmb,QAAAA,OAAO,EAAE,IAAI;QACbloB,OAAO,EAAEsQ,sBAAsB,CAAC;AAAEvG,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA;AAAK,SAAC,CAAC,CAAC5I,GAAG,CAAC,UAAA4C,KAAK,EAAA;UAAA,OAAK;AAC9DtM,YAAAA,KAAK,EAAEsM,KAAK,CAACsd,SAAS,IAAItd,KAAK,CAACtM,KAAK;AACrCC,YAAAA,KAAK,EAAEylB,WAAW,CAACpZ,KAAK,CAAC;YACzB0Z,QAAQ,EAAE1Z,KAAK,CAAC0Z;WACjB;AAAA,QAAA,CAAC,CAAC;QACH6D,cAAc,EAAE,CAAC5D,WAAW,CAAC;AAAE3T,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;SAAO,CAAC,CAAC2C,KAAK;OACpD;IACH,KAAKvI,eAAe,CAACM,cAAc;AAAE,MAAA;AAAA,QAAA,IAAAuI,mBAAA;QACnC,IAAMN,KAAK,GAAG+Z,SAAS,CAAC;AACtB7a,UAAAA,MAAM,EAANA,MAAM;UACNvL,KAAK,EAAEgmB,WAAW,CAAC;AAAE3T,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC,CAAC2C;AACtC,SAAC,CAAC;AACF,QAAA,IAAMwd,MAAM,GAAG,CAAA,CAAAld,mBAAA,GAAApB,MAAM,CAAC5J,UAAU,MAAA,IAAA,IAAAgL,mBAAA,uBAAjBA,mBAAA,CAAmBC,cAAc,KAAI,EAAE;QACtD,IAAMkd,KAAK,GAAG,CAAAzd,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE+b,aAAa,KAAI,EAAE;AACxC,QAAA,IAAM2B,UAAU,GAAG,CAAA1d,KAAK,KAAA,IAAA,IAALA,KAAK,uBAALA,KAAK,CAAEsd,SAAS,MAAItd,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEtM,KAAK,KAAI,EAAE;AAEzD,QAAA,IAAMiqB,UAAU,GAAG9b,UAAU,CAAC4b,KAAK,CAAC,IAAIA,KAAK,CAACG,KAAK,CAAC9f,cAAc,CAAC;QACnE,IAAM+f,SAAS,GAAG,CAACF,UAAU,IAAIF,KAAK,CAACrX,IAAI,CAACnI,aAAa,CAAC;AAC1D,QAAA,IAAM6f,SAAS,GAAG,CAACH,UAAU,IAAI,CAACE,SAAS,IAAIJ,KAAK,CAACrX,IAAI,CAAClI,aAAa,CAAC;AACxE,QAAA,IAAM6f,UAAU,GAAGlc,UAAU,CAC3BwX,gBAAgB,CACd,CAAArZ,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE9C,MAAM,MAAI8C,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE2B,eAAe,MAAI3B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE7K,OAAO,CAC3D,CACF,CAAC;AAED,QAAA,IAAM6oB,eAAe,GAAGD,UAAU,GAAG,QAAQ,GAAG,UAAU;AAC1D,QAAA,IAAME,uBAAuB,GAAGH,SAAS,GAAG,SAAS,GAAG,EAAE;AAC1D,QAAA,IAAMI,kBAAkB,GAAGL,SAAS,GAAG,QAAQ,GAAGI,uBAAuB;AACzE,QAAA,IAAM3M,OAAO,GAAGqM,UAAU,GAAGK,eAAe,GAAGE,kBAAkB;QAEjE,OAAO;AACL1H,UAAAA,KAAK,EAAEtU,CAAC,CAAA,wCAAA,CAAAzE,MAAA,CAA0C6T,OAAO,CAAE,CAAC;UAC5D8L,QAAQ,EAAE9L,OAAO,GACbpP,CAAC,6CAAAzE,MAAA,CAA6C6T,OAAO,CAAA,EAAI;AACvDtR,YAAAA,KAAK,EAAE0d;AACT,WAAC,CAAC,GACFxb,CAAC,CAAC,2CAA2C,CAAC;AAClDmb,UAAAA,OAAO,EAAE,IAAI;AACbloB,UAAAA,OAAO,EAAEsoB,KAAK,CAACrgB,GAAG,CAAC,UAAAW,IAAI,EAAA;YAAA,OAAK;AAC1B;cACArK,KAAK,EAAE8pB,MAAM,CAACzf,IAAI,CAAC,IAAIL,QAAQ,CAACK,IAAI,CAAC;AACrCpK,cAAAA,KAAK,EAAEoK;aACR;AAAA,UAAA,CAAC,CAAC;UACHwf,cAAc,EAAE,CAAC5D,WAAW,CAAC;AAAE3T,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA;WAAO,CAAC,CAACU,IAAI;SACnD;AACH,MAAA;IACA,KAAKtG,eAAe,CAACO,cAAc;MACjC,OAAO;AACLwe,QAAAA,KAAK,EAAEtU,CAAC,CAAC,yCAAyC,CAAC;AACnDkb,QAAAA,QAAQ,EAAElb,CAAC,CAAC,4CAA4C,CAAC;AACzD/M,QAAAA,OAAO,EAAE,CACP;AACEzB,UAAAA,KAAK,EAAEwO,CAAC,CAAC,6CAA6C,CAAC;UACvDvO,KAAK,EAAE2C,cAAc,CAACC;AACxB,SAAC,EACD;AACE7C,UAAAA,KAAK,EAAEwO,CAAC,CAAC,4CAA4C,CAAC;UACtDvO,KAAK,EAAE2C,cAAc,CAACE;AACxB,SAAC,CACF;AACD+mB,QAAAA,cAAc,EAAE,CAACvX,IAAI,CAACuH,aAAa;OACpC;IACH,KAAK9V,eAAe,CAACS,UAAU;IAC/B,KAAKT,eAAe,CAACT,cAAc;AAAE,MAAA;QAAA,IAAAmnB,iBAAA,EAAAC,UAAA;AACnC,QAAA,IAAMC,MAAM,GAAGxG,MAAM,KAAKpgB,eAAe,CAACT,cAAc;AACxD,QAAA,IAAMsnB,cAAc,GAAG,SAAjBA,cAAcA,CAAG3qB,KAAK,EAAA;AAAA,UAAA,IAAA4qB,iBAAA;AAAA,UAAA;AAC1B;YACA,CAAA,CAAAA,iBAAA,GAAArf,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA8oB,iBAAA,gBAAAA,iBAAA,GAAdA,iBAAA,CAAgB7oB,WAAW,cAAA6oB,iBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,iBAAA,CAA8B5qB,KAAK,CAAC,KAAI;AAAE;AAAA,QAAA,CAAA;;AAE5C;AACA;AACA,QAAA,IAAM6qB,aAAa,GAAG,CAAA,CAAAL,iBAAA,GAAAjf,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA0oB,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,iBAAA,CAAgBhpB,OAAO,KAAI,EAAE;QAEnD,OAAO;UACLqhB,KAAK,EAAE6H,MAAM,GACTnc,CAAC,CAAC,0CAA0C,CAAC,GAC7CA,CAAC,CAAC,yCAAyC,CAAC;UAChDkb,QAAQ,EAAEiB,MAAM,GACZnc,CAAC,CAAC,6CAA6C,CAAC,GAChDA,CAAC,CAAC,4CAA4C,CAAC;AACnDmb,UAAAA,OAAO,EAAE,IAAI;AACbloB,UAAAA,OAAO,EAAEqpB,aAAa,CAACphB,GAAG,CAAC,UAAAyB,MAAM,EAAI;AAAA,YAAA,IAAA4f,gBAAA;AACnC,YAAA,IAAM9qB,KAAK,GAAGylB,WAAW,CAACva,MAAM,CAAC;AACjC,YAAA,IAAM4C,IAAI,GAAG6c,cAAc,CAAC3qB,KAAK,CAAC;YAElC,OAAO;AACLD,cAAAA,KAAK,EAAE2qB,MAAM,GAAG5c,IAAI,CAACid,YAAY,IAAI7f,MAAM,CAACnL,KAAK,GAAGmL,MAAM,CAACnL,KAAK;AAChEC,cAAAA,KAAK,EAALA,KAAK;cACL+lB,QAAQ,EAAE7a,MAAM,CAAC6a,QAAQ;AACzB;AACA;AACAiF,cAAAA,QAAQ,EAAE,CAAC,EAAA,CAAAF,gBAAA,GAAE5f,MAAM,CAAC8f,QAAQ,MAAA,IAAA,IAAAF,gBAAA,cAAAA,gBAAA,GAAI5f,MAAM,CAAC+f,UAAU,CAAC;cAClDC,cAAc,EAAEhgB,MAAM,CAACggB,cAAc;cACrCC,eAAe,EAAEjgB,MAAM,CAACigB,eAAe;AACvCha,cAAAA,IAAI,EAAE,CAACuZ,MAAM,GAAG5c,IAAI,CAACqD,IAAI,GAAGjG,MAAM,CAACiG,IAAI,KAAKjG,MAAM,CAACiG;aACpD;AACH,UAAA,CAAC,CAAC;AACFyY,UAAAA,cAAc,EAAE,CAAA,CAAAa,UAAA,GACdnE,SAAS,CAAC;AAAE/a,YAAAA,MAAM,EAANA,MAAM;YAAE2D,MAAM,EAAEkW,QAAQ,CAAC;AAAE/S,cAAAA,IAAI,EAAJA,IAAI;AAAE3I,cAAAA,KAAK,EAALA;aAAO;AAAE,WAAC,CAAC,MAAA,IAAA,IAAA+gB,UAAA,cAAAA,UAAA,GACtDrF,QAAQ,CAAC;AAAE/S,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA;WAAO,CAAC,CAACuB,IAAI;SAEnC;AACH,MAAA;IACA,KAAKnH,eAAe,CAACU,gBAAgB;AAAE,MAAA;AAAA,QAAA,IAAA4mB,iBAAA;QACrC,IAAMlc,MAAM,GAAGkW,QAAQ,CAAC;AAAE/S,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;QACxC,IAAMoF,OAAO,GAAGwX,SAAS,CAAC;AAAE/a,UAAAA,MAAM,EAANA,MAAM;AAAE2D,UAAAA,MAAM,EAANA;AAAO,SAAC,CAAC;AAC7C;QACA,IAAMpB,IAAI,GAAG,CAAA,CAAAsd,iBAAA,GAAA7f,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAspB,iBAAA,KAAA,MAAA,IAAA,CAAAA,iBAAA,GAAdA,iBAAA,CAAgBrpB,WAAW,MAAA,IAAA,IAAAqpB,iBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,iBAAA,CAA8Btc,OAAO,CAAC,KAAI,EAAE;QACzD,IAAM5D,MAAM,GAAGmb,gBAAgB,CAAC;AAAE9a,UAAAA,MAAM,EAANA,MAAM;AAAEN,UAAAA,IAAI,EAAE6D;AAAQ,SAAC,CAAC;QAE1D,OAAO;AACL+T,UAAAA,KAAK,EACH/U,IAAI,CAAC8D,cAAc,KACnB1G,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE0G,cAAc,CAAA,IACtBrD,CAAC,CAAC,yCAAyC,CAAC;AAC9Ckb,UAAAA,QAAQ,EACN3b,IAAI,CAAC+D,iBAAiB,KACtB3G,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE2G,iBAAiB,CAAA,IACzBtD,CAAC,CAAC,4CAA4C,CAAC;UACjD/M,OAAO,EAAE8lB,mBAAmB,CAAC;AAAE/b,YAAAA,MAAM,EAANA,MAAM;AAAE8G,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC,CAACD,GAAG,CACvD,UAAA6G,SAAS,EAAA;YAAA,OAAK;cACZvQ,KAAK,EAAEuQ,SAAS,CAACvQ,KAAK;cACtBC,KAAK,EAAEylB,WAAW,CAACnV,SAAS;aAC7B;AAAA,UAAA,CACH,CAAC;UACDsZ,cAAc,EAAE,CAACpD,WAAW,CAAC;AAAEjb,YAAAA,MAAM,EAANA,MAAM;AAAE2D,YAAAA,MAAM,EAANA;AAAO,WAAC,CAAC,CAAC;AACjD;AACA;AACAwa,UAAAA,OAAO,EAAE;SACV;AACH,MAAA;IACA,KAAK5lB,eAAe,CAACP,WAAW;AAAE,MAAA;QAChC,IAAM2L,OAAM,GAAGkW,QAAQ,CAAC;AAAE/S,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;QACxC,IAAM8F,IAAI,GAAG2V,MAAM,CAAC;AAAE5Z,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA,KAAK;AAAEuY,UAAAA,OAAO,EAAPA;SAAS,CAAC,IAAI,EAAE;QAE3D,OAAO;UACLY,KAAK,EAAErT,IAAI,CAACqT,KAAK,IAAItU,CAAC,CAAC,oCAAoC,CAAC;UAC5Dkb,QAAQ,EAAEja,IAAI,CAACia,QAAQ;AACvBjoB,UAAAA,OAAO,EAAEkkB,gBAAgB,CAAClW,IAAI,CAAChO,OAAO,CAAC;UACvCooB,cAAc,EAAE,CAACva,WAAW,CAAC;AAAEH,YAAAA,MAAM,EAANA,OAAM;AAAEM,YAAAA,IAAI,EAAJA;AAAK,WAAC,CAAC,CAAC;AAC/Cka,UAAAA,OAAO,EAAE;SACV;AACH,MAAA;IACA,KAAK5lB,eAAe,CAACF,KAAK;AAAE,MAAA;AAAA,QAAA,IAAAynB,kBAAA;AAC1B,QAAA,IAAMnC,EAAE,GAAG3d,MAAM,CAACqI,KAAK,IAAI,EAAE;AAC7B,QAAA,IAAM0X,QAAQ,GAAG,CAACjZ,IAAI,CAACuB,KAAK,IAAI,EAAE,EAAEnK,GAAG,CAAC,UAAAkK,IAAI,EAAA;AAAA,UAAA,IAAAF,WAAA;AAAA,UAAA,OAAA,CAAAA,WAAA,GAAIE,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,MAAA,IAAA,IAAAyT,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAIE,IAAI;QAAA,CAAA,CAAC;QACpE,IAAMgB,aAAa,GAAG,CAAA,CAAA0W,kBAAA,GAAAnC,EAAE,CAACvU,aAAa,MAAA,IAAA,IAAA0W,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,kBAAA,CAAAjkB,IAAA,CAAA8hB,EAAE,EAAiB7W,IAAI,CAACvQ,OAAO,CAAC,KAAI,KAAK;QAE/D,OAAO;UACL+gB,KAAK,EAAEyI,QAAQ,CAAC/W,MAAM,GAClB2U,EAAE,CAACqC,eAAe,IAAIhd,CAAC,CAAC,2CAA2C,CAAC,GACpE2a,EAAE,CAACsC,SAAS,IAAIjd,CAAC,CAAC,qCAAqC,CAAC;UAC5Dkb,QAAQ,EACNP,EAAE,CAACuC,YAAY,IAAIld,CAAC,CAAC,wCAAwC,CAAC;AAChEqZ,UAAAA,KAAK,EAAE,IAAI;AACXpmB,UAAAA,OAAO,EAAE,CAAC0nB,EAAE,CAAC1nB,OAAO,IAAI,EAAE,EAAEiI,GAAG,CAAC,UAAAyB,MAAM,EAAI;AAAA,YAAA,IAAAwgB,iBAAA;AACxC,YAAA,IAAM1rB,KAAK,GAAGylB,WAAW,CAACva,MAAM,CAAC;YACjC,IAAMygB,cAAc,GAClBhX,aAAa,IAAIzJ,MAAM,CAAC8J,aAAa,KAAK,KAAK;AACjD,YAAA,IAAM4W,UAAU,GAAGN,QAAQ,CAACjhB,QAAQ,CAACrK,KAAK,CAAC;YAE3C,OAAO;cACLD,KAAK,EAAEmL,MAAM,CAACnL,KAAK;AACnBC,cAAAA,KAAK,EAALA,KAAK;cACLgrB,QAAQ,EACN,CAAC,CAAC,EAAA,CAAAU,iBAAA,GAAExgB,MAAM,CAAC8f,QAAQ,MAAA,IAAA,IAAAU,iBAAA,cAAAA,iBAAA,GAAIxgB,MAAM,CAAC+f,UAAU,CAAC,IAAIU,cAAc,KAC3D,CAACC,UAAU;cACbV,cAAc,EAAES,cAAc,GAC1BzC,EAAE,CAACgC,cAAc,GACjBhgB,MAAM,CAACggB,cAAc;cACzBC,eAAe,EAAEjgB,MAAM,CAACigB,eAAe;AACvCU,cAAAA,eAAe,EAAEF,cAAc,IAAIzC,EAAE,CAAC2C;aACvC;AACH,UAAA,CAAC,CAAC;AACFjC,UAAAA,cAAc,EAAE0B;SACjB;AACH,MAAA;IACA,KAAKxnB,eAAe,CAACD,iBAAiB;AAAE,MAAA;AACtC,QAAA,IAAMqlB,GAAE,GAAG3d,MAAM,CAACqI,KAAK,IAAI,EAAE;QAC7B,IAAMD,IAAI,GAAGsS,WAAW,CAAC;AAAE5T,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;AACzC,QAAA,IAAM2W,OAAO,GAAG8F,cAAc,CAACxS,IAAI,CAAC;QACpC,IAAMnS,OAAO,GAAGsS,gBAAgB,CAAC;AAAEvI,UAAAA,MAAM,EAANA,MAAM;AAAEoI,UAAAA,IAAI,EAAJA;SAAM,CAAC,IAAI,EAAE;QAExD,OAAO;AACLkP,UAAAA,KAAK,EACH/X,OAAO,CAACoe,GAAE,CAAC4C,mBAAmB,EAAE;AAAEzL,YAAAA,OAAO,EAAPA;AAAQ,WAAC,CAAC,IAC5C9R,CAAC,CAAC,0CAA0C,CAAC;AAC/Ckb,UAAAA,QAAQ,EACN3e,OAAO,CAACoe,GAAE,CAAC6C,sBAAsB,EAAE;AAAE1L,YAAAA,OAAO,EAAPA;AAAQ,WAAC,CAAC,IAC/C9R,CAAC,CAAC,6CAA6C,EAAE;AAAE8R,YAAAA,OAAO,EAAPA;AAAQ,WAAC,CAAC;AAC/D7e,UAAAA,OAAO,EAAEA,OAAO,CAACiI,GAAG,CAAC,UAAAyB,MAAM,EAAA;YAAA,OAAK;cAC9BnL,KAAK,EAAEmL,MAAM,CAACnL,KAAK;cACnBC,KAAK,EAAEylB,WAAW,CAACva,MAAM;aAC1B;AAAA,UAAA,CAAC,CAAC;AACH0e,UAAAA,cAAc,EAAE,CAACjW,IAAI,CAACW,UAAU;SACjC;AACH,MAAA;AACA,IAAA;MACE,OAAO;AAAEuO,QAAAA,KAAK,EAAE,EAAE;AAAE4G,QAAAA,QAAQ,EAAE,EAAE;AAAEjoB,QAAAA,OAAO,EAAE,EAAE;AAAEooB,QAAAA,cAAc,EAAE;OAAI;AACvE;AACF,CAAC;AAED,IAAMoC,SAAS,GAAG,SAAZA,SAASA,CAAAjZ,MAAA,EAQT;AAAA,EAAA,IAPJmR,MAAM,GAAAnR,MAAA,CAANmR,MAAM;IACN3Y,MAAM,GAAAwH,MAAA,CAANxH,MAAM;IACN8G,IAAI,GAAAU,MAAA,CAAJV,IAAI;IACJ3I,KAAK,GAAAqJ,MAAA,CAALrJ,KAAK;IACLuY,OAAO,GAAAlP,MAAA,CAAPkP,OAAO;IACPjiB,KAAK,GAAA+S,MAAA,CAAL/S,KAAK;IACLisB,OAAO,GAAAlZ,MAAA,CAAPkZ,OAAO;AAEP,EAAA,IACEpS,WAAW,GAKToS,OAAO,CALTpS,WAAW;IACXa,YAAY,GAIVuR,OAAO,CAJTvR,YAAY;IACZM,gBAAgB,GAGdiR,OAAO,CAHTjR,gBAAgB;IAChBuJ,aAAa,GAEX0H,OAAO,CAFT1H,aAAa;IACbI,SAAS,GACPsH,OAAO,CADTtH,SAAS;AAGX,EAAA,QAAQT,MAAM;IACZ,KAAKpgB,eAAe,CAACC,WAAW;IAChC,KAAKD,eAAe,CAACE,eAAe;AAAE,MAAA;QAAA,IAAA4U,iBAAA,EAAAK,iBAAA;QACpC,IAAA,CAAAL,iBAAA,GAAIrN,MAAM,CAACjK,QAAQ,MAAA,IAAA,IAAAsX,iBAAA,KAAA,MAAA,IAAfA,iBAAA,CAAiBgP,KAAK,EAAE;UAC1B,IAAMC,KAAK,GAAGC,KAAK,CAAC,MAAM,EAAEzV,IAAI,CAAC/Q,QAAQ,CAAC;UAC1CuY,WAAW,CACTgO,KAAK,CAACxd,QAAQ,CAACrK,KAAK,CAAC,GACjB+nB,QAAQ,CAAC;AAAE9c,YAAAA,IAAI,EAAEjL;AAAM,WAAC,EAAEqS,IAAI,CAAC/Q,QAAQ,CAAC,GAAA,EAAA,CAAAwI,MAAA,CAAAoO,kBAAA,CACpC7F,IAAI,CAAC/Q,QAAQ,CAAA,EAAA,CAAE;AAAE2J,YAAAA,IAAI,EAAEjL;AAAM,WAAC,EACxC,CAAC;AAED,UAAA,OAAO,MAAM;AACf,QAAA;QACA6Z,WAAW,CAAC,CAAAlR,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAM0J,IAAI,CAAC/Q,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAE2J,UAAAA,IAAI,EAAEjL;AAAK,SAAA,CAAA,CAAG,CAAC;AAEnD,QAAA,IAAM+V,QAAQ,GAAA,CAAAkD,iBAAA,GAAG1N,MAAM,CAACjK,QAAQ,MAAA,IAAA,IAAA2X,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,iBAAA,CAAiBlD,QAAQ;QAC1C,IACEA,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAExU,QAAQ,IAClB,CAACwU,QAAQ,CAACqN,SAAS,IAAI,EAAE,EAAE/Y,QAAQ,CAACrK,KAAK,CAAC,IAC1C,CAACqS,IAAI,CAAC0D,QAAQ,EACd;AAAA,UAAA,IAAAmW,iBAAA;AACA;AACA3H,UAAAA,aAAa,IAAAza,MAAA,CAAIiM,QAAQ,CAACxU,QAAQ,EAAA,QAAA,CAAA,EAAA,CAAA2qB,iBAAA,GAAUnW,QAAQ,WAAQ,MAAA,IAAA,IAAAmW,iBAAA,cAAAA,iBAAA,GAAI,EAAE,CAAC;AACrE,QAAA;AAEA,QAAA,OAAO,MAAM;AACf,MAAA;IACA,KAAKpoB,eAAe,CAACG,aAAa;MAChCyW,YAAY,CAAC1a,KAAK,CAAC;AAEnB,MAAA,OAAO,MAAM;IACf,KAAK8D,eAAe,CAACK,UAAU;AAAE,MAAA;AAC/BogB,QAAAA,aAAa,CAAA,EAAA,CAAAza,MAAA,CACR6a,SAAS,CAAChjB,UAAU,EAAA,SAAA,CAAA,CAAAmI,MAAA,CAAUJ,KAAK,CAAA,EACtCse,eAAe,CAAC;AAAEzc,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA,KAAK;AAAE1J,UAAAA,KAAK,EAALA;AAAM,SAAC,CAChD,CAAC;AAED,QAAA,OAAO,MAAM;AACf,MAAA;IACA,KAAK8D,eAAe,CAACM,cAAc;AACjCmgB,MAAAA,aAAa,CAAA,EAAA,CAAAza,MAAA,CAAI6a,SAAS,CAAChjB,UAAU,EAAA,SAAA,CAAA,CAAAmI,MAAA,CAAUJ,KAAK,EAAA,OAAA,CAAA,EAAS1J,KAAK,CAAC;AAEnE,MAAA,OAAO,MAAM;IACf,KAAK8D,eAAe,CAACO,cAAc;MACjC2W,gBAAgB,CAAChb,KAAK,CAAC;AAEvB,MAAA,OAAO,MAAM;IACf,KAAK8D,eAAe,CAACS,UAAU;IAC/B,KAAKT,eAAe,CAACT,cAAc;AAAE,MAAA;AACnCkhB,QAAAA,aAAa,CAAA,EAAA,CAAAza,MAAA,CACR6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,CAAA,EACnC6e,YAAY,CAAC;AAAEhd,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA,KAAK;AAAE1J,UAAAA,KAAK,EAALA;AAAM,SAAC,CAC7C,CAAC;AAED,QAAA,OAAO,MAAM;AACf,MAAA;IACA,KAAK8D,eAAe,CAACU,gBAAgB;AAAE,MAAA;AACrC+f,QAAAA,aAAa,CAAA,EAAA,CAAAza,MAAA,CACR6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,CAAA,EACnCyf,qBAAqB,CAAC;AAAE5d,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA,KAAK;AAAE1J,UAAAA,KAAK,EAALA;AAAM,SAAC,CACtD,CAAC;AAED,QAAA,OAAO,MAAM;AACf,MAAA;IACA,KAAK8D,eAAe,CAACP,WAAW;AAAE,MAAA;AAChCghB,QAAAA,aAAa,IAAAza,MAAA,CACR6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,gBAAAI,MAAA,CAAamY,OAAO,CAAA,EACvDjiB,KACF,CAAC;AAED,QAAA,OAAO,MAAM;AACf,MAAA;IACA,KAAK8D,eAAe,CAACF,KAAK;AAAE,MAAA;AAC1B,QAAA,IAAMuF,GAAG,GAAGwb,SAAS,CAAC/Q,KAAK;AAC3B,QAAA,IAAM1M,OAAO,GAAGmL,IAAI,CAACuB,KAAK,IAAI,EAAE;AAChC,QAAA,IAAMuY,GAAG,GAAGjlB,OAAO,CAACuL,IAAI,CAAC,UAAAkB,IAAI,EAAA;AAAA,UAAA,IAAAmE,YAAA;AAAA,UAAA,OAAI,EAAAA,YAAA,GAACnE,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,cAAA8X,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAInE,IAAI,MAAM3T,KAAK;QAAA,CAAA,CAAC;QACjE,IAAMwlB,IAAI,GAAG2G,GAAG,GACZjlB,OAAO,CAACiT,MAAM,CAAC,UAAAxG,IAAI,EAAA;AAAA,UAAA,IAAAyY,YAAA;AAAA,UAAA,OAAI,EAAAA,YAAA,GAACzY,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE3T,KAAK,cAAAosB,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAIzY,IAAI,MAAM3T,KAAK;QAAA,CAAA,CAAC,GAAA,EAAA,CAAA8J,MAAA,CAAAoO,kBAAA,CACnDhR,OAAO,CAAA,EAAA,CAAE8hB,eAAe,CAAC;AAAEzd,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAErS,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC,CAAA,CAAC;AAC1DukB,QAAAA,aAAa,IAAAza,MAAA,CAAIX,GAAG,EAAA,QAAA,CAAA,EAAUqc,IAAI,CAAC;AAEnC,QAAA,OAAO,MAAM;AACf,MAAA;IACA,KAAK1hB,eAAe,CAACD,iBAAiB;AAAE,MAAA;AACtC,QAAA,IAAMsF,IAAG,GAAGwb,SAAS,CAAC/Q,KAAK;QAC3B2Q,aAAa,CAAA,EAAA,CAAAza,MAAA,CAAIX,IAAG,EAAA,SAAA,CAAA,CAAAW,MAAA,CAAUJ,KAAK,EAAA,aAAA,CAAA,EAAe1J,KAAK,CAAC;AAExD,QAAA,OAAO,MAAM;AACf,MAAA;AACA,IAAA;AACE,MAAA,OAAO,OAAO;AAClB;AACF,CAAC;AAED,IAAMqsB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAlZ,MAAA,EAOjB;AAAA,EAAA,IAAAmZ,cAAA;AAAA,EAAA,IANJpI,MAAM,GAAA/Q,MAAA,CAAN+Q,MAAM;IACN3Y,MAAM,GAAA4H,MAAA,CAAN5H,MAAM;IACN8G,IAAI,GAAAc,MAAA,CAAJd,IAAI;IACJ3I,KAAK,GAAAyJ,MAAA,CAALzJ,KAAK;IACLuY,OAAO,GAAA9O,MAAA,CAAP8O,OAAO;IACPsK,aAAa,GAAApZ,MAAA,CAAboZ,aAAa;AAEb,EAAA,QAAQrI,MAAM;IACZ,KAAKpgB,eAAe,CAACC,WAAW;IAChC,KAAKD,eAAe,CAACE,eAAe;AAClC,MAAA,OAAO,CAAAsoB,cAAA,GAAA/gB,MAAM,CAAC9J,KAAK,MAAA,IAAA,IAAA6qB,cAAA,KAAA,MAAA,IAAZA,cAAA,CAAc5qB,OAAO,GACxB;QACEyW,IAAI,EAAErV,mBAAmB,CAACE,KAAK;AAC/BghB,QAAAA,IAAI,EAAE;UAAEE,MAAM,EAAEpgB,eAAe,CAACG;AAAc;AAChD,OAAC,GACD,IAAI;IACV,KAAKH,eAAe,CAACK,UAAU;MAC7B,OAAO;QACLgU,IAAI,EAAErV,mBAAmB,CAACI,QAAQ;AAClC8gB,QAAAA,IAAI,EAAE;AAAEta,UAAAA,KAAK,EAALA,KAAK;UAAEwa,MAAM,EAAEpgB,eAAe,CAACM;AAAe;OACvD;IACH,KAAKN,eAAe,CAACM,cAAc;AAAE,MAAA;QACnC,IAAMoI,SAAS,GAAGwZ,WAAW,CAAC;AAAE3T,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;QAC9C,IAAM2C,KAAK,GAAG+Z,SAAS,CAAC;AAAE7a,UAAAA,MAAM,EAANA,MAAM;UAAEvL,KAAK,EAAEwM,SAAS,CAACH;AAAM,SAAC,CAAC;QAC3D,IAAI,CAAC,CAAAA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEU,eAAe,KAAI,EAAE,EAAE1C,QAAQ,CAACmC,SAAS,CAACpC,IAAI,CAAC,EAAE,OAAO,IAAI;QAExE,OAAO;UACL+N,IAAI,EAAErV,mBAAmB,CAACM,eAAe;AACzC4gB,UAAAA,IAAI,EAAE;AAAEta,YAAAA,KAAK,EAALA,KAAK;YAAEwa,MAAM,EAAEpgB,eAAe,CAACQ;AAAY;SACpD;AACH,MAAA;IACA,KAAKR,eAAe,CAACS,UAAU;IAC/B,KAAKT,eAAe,CAACT,cAAc;AAAE,MAAA;QACnC,IAAM6L,MAAM,GAAGkW,QAAQ,CAAC;AAAE/S,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;AAExC,QAAA,IAAImd,eAAe,CAAC;AAAEtb,UAAAA,MAAM,EAANA,MAAM;AAAE2D,UAAAA,MAAM,EAANA;AAAO,SAAC,CAAC,EAAE;UACvC,OAAO;YACLiJ,IAAI,EAAErV,mBAAmB,CAACQ,aAAa;AACvC0gB,YAAAA,IAAI,EAAE;AAAEta,cAAAA,KAAK,EAALA,KAAK;cAAEwa,MAAM,EAAEpgB,eAAe,CAACR;AAAc;WACtD;AACH,QAAA;;AAEA;AACA;AACA,QAAA,IAAIojB,aAAa,CAAC;AAAEnb,UAAAA,MAAM,EAANA,MAAM;AAAE2D,UAAAA,MAAM,EAANA;SAAQ,CAAC,CAACkC,cAAc,EAAE;UACpD,OAAO;YACL+G,IAAI,EAAErV,mBAAmB,CAACU,SAAS;AACnCwgB,YAAAA,IAAI,EAAE;AACJta,cAAAA,KAAK,EAALA,KAAK;cACLwa,MAAM,EAAEpgB,eAAe,CAACU,gBAAgB;AACxC+nB,cAAAA,aAAa,EAAE;AACjB;WACD;AACH,QAAA;AAEA,QAAA,OAAOlH,eAAe,CAAC;AAAE9Z,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;AACjD,MAAA;IACA,KAAK5F,eAAe,CAACU,gBAAgB;AAAE,MAAA;AACrC;AACA;QACA,IAAM0K,QAAM,GAAGkW,QAAQ,CAAC;AAAE/S,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;QAExC,OAAO6iB,aAAa,IAAI1F,eAAe,CAAC;AAAEtb,UAAAA,MAAM,EAANA,MAAM;AAAE2D,UAAAA,MAAM,EAANA;AAAO,SAAC,CAAC,GACvD;UACEiJ,IAAI,EAAErV,mBAAmB,CAACQ,aAAa;AACvC0gB,UAAAA,IAAI,EAAE;AAAEta,YAAAA,KAAK,EAALA,KAAK;YAAEwa,MAAM,EAAEpgB,eAAe,CAACR;AAAc;SACtD,GACD+hB,eAAe,CAAC;AAAE9Z,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAE3I,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;AAC9C,MAAA;IACA,KAAK5F,eAAe,CAACP,WAAW;AAC9B,MAAA,OAAO8hB,eAAe,CAAC;AAAE9Z,QAAAA,MAAM,EAANA,MAAM;AAAE8G,QAAAA,IAAI,EAAJA,IAAI;AAAE3I,QAAAA,KAAK,EAALA,KAAK;AAAEuY,QAAAA,OAAO,EAAPA;AAAQ,OAAC,CAAC;AAC1D,IAAA;AACE,MAAA,OAAO,IAAI;AACf;AACF,CAAC;AAED,IAAMuK,SAAS,GAAG,SAAZA,SAASA,CAAAlZ,MAAA,EAA8B;AAAA,EAAA,IAAxBqI,IAAI,GAAArI,MAAA,CAAJqI,IAAI;IAAEjS,KAAK,GAAA4J,MAAA,CAAL5J,KAAK;IAAEiK,IAAI,GAAAL,MAAA,CAAJK,IAAI;AACpC,EAAA,IAAM6R,IAAI,GAAAtN,kBAAA,CAAOyD,IAAI,CAAC;AACtB;AACA6J,EAAAA,IAAI,CAAC9b,KAAK,CAAC,GAAGiK,IAAI;AAElB,EAAA,OAAO6R,IAAI;AACb,CAAC;AAED,IAAMiH,YAAY,GAAG,SAAfA,YAAYA,CAAAjZ,MAAA,EAA+C;AAAA,EAAA,IAAzCnB,IAAI,GAAAmB,MAAA,CAAJnB,IAAI;IAAE9G,MAAM,GAAAiI,MAAA,CAANjI,MAAM;IAAE2Y,MAAM,GAAA1Q,MAAA,CAAN0Q,MAAM;IAAExa,KAAK,GAAA8J,MAAA,CAAL9J,KAAK;IAAE1J,KAAK,GAAAwT,MAAA,CAALxT,KAAK;AACxD,EAAA,QAAQkkB,MAAM;IACZ,KAAKpgB,eAAe,CAACC,WAAW;IAChC,KAAKD,eAAe,CAACE,eAAe;AAClC,MAAA,OAAA2E,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK0J,IAAI,CAAA,EAAA,EAAA,EAAA;AACP/Q,QAAAA,QAAQ,EAAE6L,KAAK,CAACC,OAAO,CAACpN,KAAK,CAAC,GAC1BA,KAAK,CAACyJ,GAAG,CAAC,UAAAwB,IAAI,EAAA;UAAA,OAAK;AAAEA,YAAAA,IAAI,EAAJA;WAAM;QAAA,CAAC,CAAC,GAC7B0c,YAAY,CAAC;AAAEpc,UAAAA,MAAM,EAANA,MAAM;AAAE8G,UAAAA,IAAI,EAAJA,IAAI;AAAErS,UAAAA,KAAK,EAALA;SAAO;AAAC,OAAA,CAAA;IAE7C,KAAK8D,eAAe,CAACG,aAAa;AAChC,MAAA,OAAA0E,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAY0J,IAAI,CAAA,EAAA,EAAA,EAAA;AAAErG,QAAAA,SAAS,EAAEhM;AAAK,OAAA,CAAA;IACpC,KAAK8D,eAAe,CAACK,UAAU;AAC7B,MAAA,OAAAwE,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK0J,IAAI,CAAA,EAAA,EAAA,EAAA;QACP1Q,UAAU,EAAE6qB,SAAS,CAAC;UACpB7Q,IAAI,EAAEtJ,IAAI,CAAC1Q,UAAU;AACrB+H,UAAAA,KAAK,EAALA,KAAK;UACLiK,IAAI,EAAEqU,eAAe,CAAC;AAAEzc,YAAAA,MAAM,EAANA,MAAM;AAAE8G,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA,KAAK;AAAE1J,YAAAA,KAAK,EAALA;WAAO;SACrD;AAAC,OAAA,CAAA;IAEN,KAAK8D,eAAe,CAACM,cAAc;AACjC,MAAA,OAAAuE,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK0J,IAAI,CAAA,EAAA,EAAA,EAAA;QACP1Q,UAAU,EAAE6qB,SAAS,CAAC;UACpB7Q,IAAI,EAAEtJ,IAAI,CAAC1Q,UAAU;AACrB+H,UAAAA,KAAK,EAALA,KAAK;AACLiK,UAAAA,IAAI,EAAAhL,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAOqd,WAAW,CAAC;AAAE3T,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAEU,YAAAA,IAAI,EAAEpK;AAAK,WAAA;SACrD;AAAC,OAAA,CAAA;IAEN,KAAK8D,eAAe,CAACO,cAAc;AACjC,MAAA,OAAAsE,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAY0J,IAAI,CAAA,EAAA,EAAA,EAAA;AAAEuH,QAAAA,aAAa,EAAE5Z;AAAK,OAAA,CAAA;IACxC,KAAK8D,eAAe,CAACS,UAAU;IAC/B,KAAKT,eAAe,CAACT,cAAc;AACjC,MAAA,OAAAsF,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK0J,IAAI,CAAA,EAAA,EAAA,EAAA;QACPvQ,OAAO,EAAE0qB,SAAS,CAAC;UACjB7Q,IAAI,EAAEtJ,IAAI,CAACvQ,OAAO;AAClB4H,UAAAA,KAAK,EAALA,KAAK;UACLiK,IAAI,EAAE4U,YAAY,CAAC;AAAEhd,YAAAA,MAAM,EAANA,MAAM;AAAE8G,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA,KAAK;AAAE1J,YAAAA,KAAK,EAALA;WAAO;SAClD;AAAC,OAAA,CAAA;IAEN,KAAK8D,eAAe,CAACU,gBAAgB;AACnC,MAAA,OAAAmE,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK0J,IAAI,CAAA,EAAA,EAAA,EAAA;QACPvQ,OAAO,EAAE0qB,SAAS,CAAC;UACjB7Q,IAAI,EAAEtJ,IAAI,CAACvQ,OAAO;AAClB4H,UAAAA,KAAK,EAALA,KAAK;UACLiK,IAAI,EAAEwV,qBAAqB,CAAC;AAAE5d,YAAAA,MAAM,EAANA,MAAM;AAAE8G,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA,KAAK;AAAE1J,YAAAA,KAAK,EAALA;WAAO;SAC3D;AAAC,OAAA,CAAA;IAEN,KAAK8D,eAAe,CAACD,iBAAiB;AACpC,MAAA,OAAA8E,eAAA,CAAAA,eAAA,CAAA,EAAA,EACK0J,IAAI,CAAA,EAAA,EAAA,EAAA;QACPuB,KAAK,EAAE4Y,SAAS,CAAC;UACf7Q,IAAI,EAAEtJ,IAAI,CAACuB,KAAK;AAChBlK,UAAAA,KAAK,EAALA,KAAK;AACLiK,UAAAA,IAAI,EAAAhL,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAOsd,WAAW,CAAC;AAAE5T,YAAAA,IAAI,EAAJA,IAAI;AAAE3I,YAAAA,KAAK,EAALA;AAAM,WAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAE4K,YAAAA,UAAU,EAAEtU;AAAK,WAAA;SAC3D;AAAC,OAAA,CAAA;AAEN,IAAA;AACE,MAAA,OAAOqS,IAAI;AACf;AACF,CAAC;;;;AC/sBD,IAAMqa,MAAM,GAAG,SAATA,MAAMA,CAAAhlB,IAAA,EAAmB;AAAA,EAAA,IAAAmR,cAAA,EAAAnM,KAAA,EAAAigB,qBAAA,EAAAjZ,aAAA,EAAAtH,kBAAA,EAAAd,gBAAA,EAAA0N,aAAA,EAAA4T,qBAAA,EAAAC,YAAA;AAAA,EAAA,IAAbthB,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;AACtB,EAAA,IAAAwR,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAAue,eAAA,GAAgCxJ,cAAc,CAAC/X,MAAM,CAAC;IAA9C0Y,QAAQ,GAAA6I,eAAA,CAAR7I,QAAQ;IAAEE,SAAS,GAAA2I,eAAA,CAAT3I,SAAS;AAC3B,EAAA,IAAAE,iBAAA,GAAgCC,gBAAgB,EAAE;IAA1CyI,MAAM,GAAA1I,iBAAA,CAAN0I,MAAM;IAAEC,WAAW,GAAA3I,iBAAA,CAAX2I,WAAW;AAC3B,EAAA,IAAAC,aAAA,GAaI7I,YAAY,CAAC7Y,MAAM,CAAC;IAZtB8G,IAAI,GAAA4a,aAAA,CAAJ5a,IAAI;IACJsS,SAAS,GAAAsI,aAAA,CAATtI,SAAS;IACTjK,YAAY,GAAAuS,aAAA,CAAZvS,YAAY;IACZI,aAAa,GAAAmS,aAAA,CAAbnS,aAAa;IACbK,QAAQ,GAAA8R,aAAA,CAAR9R,QAAQ;IACRyJ,eAAe,GAAAqI,aAAA,CAAfrI,eAAe;IACfC,YAAY,GAAAoI,aAAA,CAAZpI,YAAY;IACZxJ,SAAS,GAAA4R,aAAA,CAAT5R,SAAS;IACTE,QAAQ,GAAA0R,aAAA,CAAR1R,QAAQ;IACRuJ,aAAa,GAAAmI,aAAA,CAAbnI,aAAa;IACbC,eAAe,GAAAkI,aAAA,CAAflI,eAAe;IACfC,YAAY,GAAAiI,aAAA,CAAZjI,YAAY;AAGd,EAAA,IAAAzB,gBAAA,GAAAC,eAAA,CAAAC,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQwJ,QAAAA,cAAc,EAAAxJ,KAAA,CAAA,gBAAA,CAAA;AAAEyJ,QAAAA,UAAU,EAAAzJ,KAAA,CAAA,YAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAA1BwJ,cAAc,GAAA3J,gBAAA,CAAd2J,cAAc;IAAEC,UAAU,GAAA5J,gBAAA,CAAV4J,UAAU;EAClC,IAAMC,WAAW,GAAG1I,OAAO,CACzB,YAAA;AAAA,IAAA,OACEwI,cAAc,GAAGT,YAAY,CAAA9jB,eAAA,CAAA;AAAG0J,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;AAAM,KAAA,EAAK2hB,cAAc,CAAE,CAAC,GAAG7a,IAAI;AAAA,EAAA,CAAA,EAC3E,CAACA,IAAI,EAAE9G,MAAM,EAAE2hB,cAAc,CAC/B,CAAC;AAED,EAAA,IAAMG,WAAW,GAAG,CAAAF,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEnJ,IAAI,KAAI,EAAE;AAC1C,EAAA,IAAMpH,QAAQ,GAAG,SAAXA,QAAQA,CAAAlR,KAAA,EAAA;AAAA,IAAA,IAAMyM,IAAI,GAAAzM,KAAA,CAAJyM,IAAI;MAAEzO,KAAK,GAAAgC,KAAA,CAALhC,KAAK;IAAA,OAC7B,CAAC,EAACyjB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,IAAVA,UAAU,CAAEhV,IAAI,CAAA,IAClBkV,WAAW,CAACnJ,MAAM,KAAK/L,IAAI,IAC3BkV,WAAW,CAAC3jB,KAAK,KAAKA,KAAK;AAAA,EAAA,CAAA;AAE7B,EAAA,IAAM4jB,YAAY,GAChB,CAAC,EAACH,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,IAAVA,UAAU,CAAEhV,IAAI,CAAA,IAClBkV,WAAW,CAACnJ,MAAM,KAAKpgB,eAAe,CAACS,UAAU,IACjD8oB,WAAW,CAAC3jB,KAAK,KAAK2I,IAAI,CAACvQ,OAAO,CAACyS,MAAM,IACzC,CAAC2Y,cAAc;EAEjB,IAAMK,UAAU,GAAG7I,OAAO,CAAC,YAAA;AAAA,IAAA,OAAM8I,OAAO,CAACT,MAAM,IAAI,EAAE,CAAC;EAAA,CAAA,EAAE,CAACA,MAAM,CAAC,CAAC;AACjE,EAAA,IAAApnB,SAAA,GAAgCC,QAAQ,CAAC,CAAC,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAApCiB,IAAAA,QAAQ,GAAAf,UAAA,CAAA,CAAA,CAAA;AAAE4nB,IAAAA,WAAW,GAAA5nB,UAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAM6nB,eAAe,GAAG5mB,MAAM,CAACkmB,WAAW,CAAC;AAC3CjmB,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIimB,WAAW,IAAIU,eAAe,CAACxmB,OAAO,EAAE,OAAO2B,SAAS;IAC5D6kB,eAAe,CAACxmB,OAAO,GAAG8lB,WAAW;AACrC,IAAA,IACE3f,OAAO,CAACkgB,UAAU,CAAC,IACnBla,cAAc,CAAC;AAAEhB,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC,IAChC8B,OAAO,CAACmH,mBAAmB,CAAC;AAAEnC,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC,CAAC,IAC9C8B,OAAO,CAAC6H,6BAA6B,CAAC;AAAE7C,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;KAAQ,CAAC,CAAC,EACxD;AACA,MAAA,OAAO1C,SAAS;AAClB,IAAA;IAEA4kB,WAAW,CAACT,WAAW,CAAC;IACxB,IAAMW,KAAK,GAAGC,UAAU,CAAC,YAAA;MAAA,OAAMH,WAAW,CAAC,CAAC,CAAC;AAAA,IAAA,CAAA,EAAEjtB,iBAAiB,CAAC;IAEjE,OAAO,YAAA;MAAA,OAAMqtB,YAAY,CAACF,KAAK,CAAC;AAAA,IAAA,CAAA;AAChC;AACF,EAAA,CAAC,EAAE,CAACX,WAAW,CAAC,CAAC;AAEjB,EAAA,IAAMc,UAAU,GAAG,SAAbA,UAAUA,CAAAhiB,KAAA,EAAA;AAAA,IAAA,IAAMiiB,MAAM,GAAAjiB,KAAA,CAANiiB,MAAM;MAAAC,aAAA,GAAAliB,KAAA,CAAEmiB,OAAO;AAAPA,MAAAA,OAAO,GAAAD,aAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,aAAA;IAAA,OACxCE,MAAM,CAACxU,IAAI,CAAC6T,UAAU,CAAC,CAAC9a,IAAI,CAC1B,UAAAtJ,GAAG,EAAA;MAAA,OACD,CAACA,GAAG,KAAK4kB,MAAM,IAAI5kB,GAAG,CAACglB,UAAU,CAAA,EAAA,CAAArkB,MAAA,CAAIikB,MAAM,EAAA,GAAA,CAAG,CAAC,KAC/C,CAACE,OAAO,CAACxb,IAAI,CACX,UAAA2b,GAAG,EAAA;QAAA,OACDjlB,GAAG,QAAAW,MAAA,CAAQikB,MAAM,EAAA,GAAA,CAAA,CAAAjkB,MAAA,CAAIskB,GAAG,CAAE,IAAIjlB,GAAG,CAACglB,UAAU,CAAA,EAAA,CAAArkB,MAAA,CAAIikB,MAAM,OAAAjkB,MAAA,CAAIskB,GAAG,EAAA,GAAA,CAAG,CAAC;AAAA,MAAA,CACrE,CAAC;AAAA,IAAA,CACL,CAAC;AAAA,EAAA,CAAA;AAEH,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAliB,KAAA,EAAiC;AAAA,IAAA,IAA3BgM,IAAI,GAAAhM,KAAA,CAAJgM,IAAI;MAAEzO,KAAK,GAAAyC,KAAA,CAALzC,KAAK;MAAEuY,OAAO,GAAA9V,KAAA,CAAP8V,OAAO;IAC5C,IAAMqM,aAAa,GAAA,EAAA,CAAAxkB,MAAA,CAAM6a,SAAS,CAAChjB,UAAU,EAAA,SAAA,CAAA,CAAAmI,MAAA,CAAUJ,KAAK,EAAA,WAAA,CAAW;IACvE,IAAM6kB,UAAU,GAAA,EAAA,CAAAzkB,MAAA,CAAM6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,EAAA,WAAA,CAAW;AACjE;IACA,IAAM8kB,UAAU,GAAGnc,IAAI,CAACvQ,OAAO,CAAC4H,KAAK,CAAC,IAAI,EAAE;IAC5C,IAAM0F,KAAK,GAAGJ,aAAa,CAAC;AAAEzD,MAAAA,MAAM,EAANA,MAAM;AAAE2D,MAAAA,MAAM,EAAEsf;AAAW,KAAC,CAAC;AAC3D,IAAA,IAAMC,QAAQ,GAAGrf,KAAK,CAAC3F,GAAG,CAAC,UAAA+F,IAAI,EAAA;MAAA,OAAIA,IAAI,CAACrG,GAAG;IAAA,CAAA,CAAC;IAE5C,IAAMulB,eAAe,GAAGzX,oBAAoB,CAAC;AAC3C1L,MAAAA,MAAM,EAANA,MAAM;AACN2D,MAAAA,MAAM,EAAEsf,UAAU;AAClBvjB,MAAAA,IAAI,EAAEsjB;AACR,KAAC,CAAC;AACF,IAAA,QAAQpW,IAAI;MACV,KAAKrU,eAAe,CAACG,aAAa;AAAE,QAAA;AAAA,UAAA,IAAA8H,aAAA;AAClC,UAAA,IAAM4iB,QAAQ,GAAA,CAAA5iB,aAAA,GAAGR,MAAM,CAAC9J,KAAK,MAAA,IAAA,IAAAsK,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcxK,QAAQ;AAEvC,UAAA,OAAO,CAAC,CAACotB,QAAQ,IAAIb,UAAU,CAAC;YAAEC,MAAM,EAAA,EAAA,CAAAjkB,MAAA,CAAK6kB,QAAQ,EAAA,QAAA;AAAS,WAAC,CAAC;AAClE,QAAA;MACA,KAAK7qB,eAAe,CAACI,iBAAiB;AACpC,QAAA,OAAO4pB,UAAU,CAAC;AAAEC,UAAAA,MAAM,EAAA,EAAA,CAAAjkB,MAAA,CAAK6a,SAAS,CAAC5O,QAAQ,EAAA,QAAA;AAAS,SAAC,CAAC;MAC9D,KAAKjS,eAAe,CAACK,UAAU;AAC7B,QAAA,OAAO2pB,UAAU,CAAC;UAChBC,MAAM,EAAA,EAAA,CAAAjkB,MAAA,CAAK6a,SAAS,CAAChjB,UAAU,EAAA,SAAA,CAAA,CAAAmI,MAAA,CAAUJ,KAAK,EAAA,QAAA;AAChD,SAAC,CAAC;MACJ,KAAK5F,eAAe,CAACM,cAAc;AAAE,QAAA;AACnC;UACA,IAAMoI,SAAS,GAAG6F,IAAI,CAAC1Q,UAAU,CAAC+H,KAAK,CAAC,IAAI,EAAE;UAE9C,OAAO,CAAC,CAAC8C,SAAS,CAACH,KAAK,IAAI,CAACG,SAAS,CAACpC,IAAI;AAC7C,QAAA;MACA,KAAKtG,eAAe,CAACQ,WAAW;AAC9B,QAAA,OAAOwpB,UAAU,CAAC;AAAEC,UAAAA,MAAM,EAAEO;AAAc,SAAC,CAAC;MAC9C,KAAKxqB,eAAe,CAACR,aAAa;AAChC,QAAA,OAAOwqB,UAAU,CAAC;AAChBC,UAAAA,MAAM,EAAEQ,UAAU;UAClBN,OAAO,EAAA,EAAA,CAAAnkB,MAAA,CAAAoO,kBAAA,CAAMwW,eAAe,CAAA,EAAAxW,kBAAA,CAAKuW,QAAQ,CAAA;AAC3C,SAAC,CAAC;MACJ,KAAK3qB,eAAe,CAACP,WAAW;AAAE,QAAA;AAChC,UAAA,IAAMiM,IAAI,GAAGJ,KAAK,CAAC5D,IAAI,CAAC,UAAAmI,IAAI,EAAA;AAAA,YAAA,OAAIA,IAAI,CAACxK,GAAG,KAAK8Y,OAAO;UAAA,CAAA,CAAC;AAErD,UAAA,OACE6L,UAAU,CAAC;AAAEC,YAAAA,MAAM,KAAAjkB,MAAA,CAAKykB,UAAU,EAAA,GAAA,CAAA,CAAAzkB,MAAA,CAAImY,OAAO;AAAG,WAAC,CAAC,IACjD,CAAC,EAACzS,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,IAAJA,IAAI,CAAE4D,QAAQ,CAAA,IAAI,CAAC/D,WAAW,CAAC;AAAEH,YAAAA,MAAM,EAAEsf,UAAU;AAAEhf,YAAAA,IAAI,EAAJA;AAAK,WAAC,CAAE;AAEpE,QAAA;MACA,KAAK1L,eAAe,CAACU,gBAAgB;AACnC,QAAA,OACEspB,UAAU,CAAC;UACTC,MAAM,EAAA,EAAA,CAAAjkB,MAAA,CAAK6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,EAAA,OAAA;AAC7C,SAAC,CAAC,IACFglB,eAAe,CAACjc,IAAI,CAAC,UAAApG,KAAK,EAAA;AAAA,UAAA,OACxByhB,UAAU,CAAC;AAAEC,YAAAA,MAAM,KAAAjkB,MAAA,CAAKykB,UAAU,EAAA,GAAA,CAAA,CAAAzkB,MAAA,CAAIuC,KAAK;AAAG,WAAC,CAAC;AAAA,QAAA,CAClD,CAAC;MAEL,KAAKvI,eAAe,CAACS,UAAU;QAC7B,OAAO,CAAC8N,IAAI,CAACvQ,OAAO,CAAC2Q,IAAI,CAAC,UAAAkB,IAAI,EAAA;AAAA,UAAA,OAAI,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,uBAAJA,IAAI,CAAE7E,OAAO,MAAI6E,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAE1I,IAAI,CAAA;QAAA,CAAA,CAAC;MAChE,KAAKnH,eAAe,CAACW,UAAU;AAC7B,QAAA,OAAOqpB,UAAU,CAAC;AAAEC,UAAAA,MAAM,EAAA,EAAA,CAAAjkB,MAAA,CAAK6a,SAAS,CAAC1iB,KAAK,EAAA,QAAA;AAAS,SAAC,CAAC;MAC3D,KAAK6B,eAAe,CAACF,KAAK;AACxB,QAAA,OAAO4Q,mBAAmB,CAAC;AAAEnC,UAAAA,IAAI,EAAJA,IAAI;AAAE9G,UAAAA,MAAM,EAANA;AAAO,SAAC,CAAC,CAAClB,QAAQ,CAACX,KAAK,CAAC;MAC9D,KAAK5F,eAAe,CAACD,iBAAiB;AACpC,QAAA,OAAOqR,6BAA6B,CAAC;AAAE7C,UAAAA,IAAI,EAAJA,IAAI;AAAE9G,UAAAA,MAAM,EAANA;AAAO,SAAC,CAAC,CAAClB,QAAQ,CAACX,KAAK,CAAC;MACxE,KAAK5F,eAAe,CAACY,SAAS;AAC5B,QAAA,OAAOopB,UAAU,CAAC;AAAEC,UAAAA,MAAM,EAAA,EAAA,CAAAjkB,MAAA,CAAK6a,SAAS,CAAC1Z,IAAI,EAAA,QAAA;AAAS,SAAC,CAAC;AAC1D,MAAA;AACE,QAAA,OAAO,KAAK;AAChB;EACF,CAAC;;AAED;AACA;AACA,EAAA,IAAM6R,SAAS,GAAG,SAAZA,SAASA,CAAG/R,IAAI,EAAA;IAAA,OAAKnE,QAAQ,IAAIynB,cAAc,CAACtjB,IAAI,CAAC,GAAGnE,QAAQ,GAAG,CAAC;EAAA,CAAC;AAE3E,EAAA,IAAMgoB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAriB,KAAA,EAA2B;AAAA,IAAA,IAArBsiB,OAAO,GAAAtiB,KAAA,CAAPsiB,OAAO;MAAEnlB,KAAK,GAAA6C,KAAA,CAAL7C,KAAK;IAC5C,IACEyjB,UAAU,aAAVA,UAAU,KAAA,MAAA,IAAVA,UAAU,CAAEhV,IAAI,IAChB0W,OAAO,CAACxkB,QAAQ,CAACgjB,WAAW,CAACnJ,MAAM,CAAC,IACpCmJ,WAAW,CAAC3jB,KAAK,KAAKA,KAAK,EAC3B;AACAya,MAAAA,SAAS,EAAE;AACb,IAAA;EACF,CAAC;AAED,EAAA,IAAM2K,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGplB,KAAK,EAAI;AACrCklB,IAAAA,oBAAoB,CAAC;AAAEC,MAAAA,OAAO,EAAE9pB,iBAAiB;AAAE2E,MAAAA,KAAK,EAALA;AAAM,KAAC,CAAC;IAC3Dkb,eAAe,CAAClb,KAAK,CAAC;EACxB,CAAC;AAED,EAAA,IAAM6Y,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAG7Y,KAAK,EAAI;AAClCklB,IAAAA,oBAAoB,CAAC;AAAEC,MAAAA,OAAO,EAAE7pB,cAAc;AAAE0E,MAAAA,KAAK,EAALA;AAAM,KAAC,CAAC;IACxDmb,YAAY,CAACnb,KAAK,CAAC;IACnB,IAAMqlB,SAAS,GAAG1c,IAAI,CAACvQ,OAAO,CAACqY,MAAM,CAAC,UAAC0B,CAAC,EAAEC,CAAC,EAAA;MAAA,OAAKA,CAAC,KAAKpS,KAAK;IAAA,CAAA,CAAC;AAC5D,IAAA,IAAI,CAACqlB,SAAS,CAACtc,IAAI,CAAC,UAAAvD,MAAM,EAAA;AAAA,MAAA,OAAI,CAAAA,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEJ,OAAO,MAAII,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAA;AAAA,IAAA,CAAA,CAAC,EAAE;MAC9DsQ,QAAQ,CAAC,EAAE,CAAC;AACd,IAAA;EACF,CAAC;AAED,EAAA,IAAMyT,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAS;AAC9BJ,IAAAA,oBAAoB,CAAC;AACnBC,MAAAA,OAAO,EAAE,CAAC/qB,eAAe,CAACW,UAAU,CAAC;AACrCiF,MAAAA,KAAK,EAAEb;AACT,KAAC,CAAC;IACFsS,QAAQ,CAAC,IAAI,CAAC;EAChB,CAAC;;AAED;AACA;EACA,IAAM8T,YAAY,GAAG1jB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAsN,cAAA,GAANtN,MAAM,CAAE9J,KAAK,MAAA,IAAA,IAAAoX,cAAA,eAAbA,cAAA,CAAenX,OAAO,GAAG6J,MAAM,CAAC9J,KAAK,CAACD,OAAO,IAAI,EAAE,GAAG,EAAE;AAC7E,EAAA,IAAM0tB,eAAe,GACnBD,YAAY,CAAC1a,MAAM,KAAK,CAAC,GAAA,CAAA7H,KAAA,GAAA,CAAAigB,qBAAA,GACpBsC,YAAY,CAAC,CAAC,CAAC,CAACjvB,KAAK,MAAA,IAAA,IAAA2sB,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAIsC,YAAY,CAAC,CAAC,CAAC,CAAC7jB,EAAE,MAAA,IAAA,IAAAsB,KAAA,KAAA,MAAA,GAAAA,KAAA,GAAIuiB,YAAY,CAAC,CAAC,CAAC,GAC/D,IAAI;EAEV,IAAMrM,YAAY,GAAGhQ,kBAAkB,CAAC;AAAEP,IAAAA,IAAI,EAAJA,IAAI;AAAE9G,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;EACzD,IAAMiH,SAAS,GAAGH,IAAI,CAACvQ,OAAO,CAAC2Q,IAAI,CACjC,UAAAvD,MAAM,EAAA;AAAA,IAAA,OAAI,CAAAA,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEJ,OAAO,MAAII,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEjE,IAAI,CAAA;AAAA,EAAA,CAC3C,CAAC;EACD,IAAMkkB,cAAc,GAAG,CAAA5jB,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAmI,aAAA,GAANnI,MAAM,CAAEqI,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAehS,OAAO,KAAIkhB,YAAY,IAAIpQ,SAAS;AAC1E,EAAA,IAAMkN,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGhW,KAAK,EAAI;AACjCklB,IAAAA,oBAAoB,CAAC;AACnBC,MAAAA,OAAO,EAAE,CAAC/qB,eAAe,CAACD,iBAAiB,CAAC;AAC5C6F,MAAAA,KAAK,EAALA;AACF,KAAC,CAAC;AACF6R,IAAAA,QAAQ,CAAC,CAAClJ,IAAI,CAACuB,KAAK,IAAI,EAAE,EAAEuG,MAAM,CAAC,UAAC0B,CAAC,EAAEC,CAAC,EAAA;MAAA,OAAKA,CAAC,KAAKpS,KAAK;AAAA,IAAA,CAAA,CAAC,CAAC;EAC5D,CAAC;EACD,IAAM0lB,eAAe,GAAGtd,sBAAsB,CAAC;AAAEvG,IAAAA,MAAM,EAANA,MAAM;AAAE8G,IAAAA,IAAI,EAAJA;AAAK,GAAC,CAAC;AAChE,EAAA,IAAMgd,eAAe,GAAGnhB,UAAU,CAACkhB,eAAe,CAAC;EACnD,IAAME,kBAAkB,GACtB,CAAA/jB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAa,kBAAA,GAANb,MAAM,CAAE5J,UAAU,MAAA,IAAA,IAAAyK,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAA,CAAoB6G,UAAU,MAAK,KAAK,IACxCma,WAAW,CAACzrB,UAAU,CAAC4S,MAAM,GAAG,CAAC;EACnC,IAAMgb,iBAAiB,GAAG,CAAAhkB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAD,gBAAA,GAANC,MAAM,CAAEjK,QAAQ,MAAA,IAAA,IAAAgK,gBAAA,KAAA,MAAA,IAAA,CAAAA,gBAAA,GAAhBA,gBAAA,CAAkByK,QAAQ,MAAA,IAAA,IAAAzK,gBAAA,KAAA,MAAA,GAAA,MAAA,GAA1BA,gBAAA,CAA4B8X,SAAS,KAAI,EAAE;EACrE,IAAMoM,kBAAkB,GAAGnd,IAAI,CAAC/Q,QAAQ,CAACmR,IAAI,CAAC,UAAA9G,OAAO,EAAA;AAAA,IAAA,OACnD4jB,iBAAiB,CAACllB,QAAQ,CAACsB,OAAO,CAACV,IAAI,CAAC;AAAA,EAAA,CAC1C,CAAC;EACD,IAAMwkB,cAAc,GAAG,CAAAlkB,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAyN,aAAA,GAANzN,MAAM,CAAEtJ,KAAK,MAAA,IAAA,IAAA+W,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAetX,OAAO,KAAI,CAAC8tB,kBAAkB;AAEpEzoB,EAAAA,SAAS,CAAC,YAAM;IACd,IAAImoB,eAAe,IAAI,CAAC7c,IAAI,CAACrG,SAAS,EAAE0O,YAAY,CAACwU,eAAe,CAAC;AACrE;EACF,CAAC,EAAE,CAACA,eAAe,EAAE7c,IAAI,CAACrG,SAAS,CAAC,CAAC;AAErCjF,EAAAA,SAAS,CAAC,YAAM;IACd,IAAIyoB,kBAAkB,IAAInd,IAAI,CAACpQ,KAAK,EAAEkZ,QAAQ,CAAC,IAAI,CAAC;AACpD;EACF,CAAC,EAAE,CAACqU,kBAAkB,EAAEnd,IAAI,CAACpQ,KAAK,CAAC,CAAC;AAEpC,EAAA,IAAMsa,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAS;AAC/B,IAAA,IAAIlP,OAAO,CAAC+hB,eAAe,CAAC,EAAE;IAE9BtU,aAAa,CAAA,EAAA,CAAAhR,MAAA,CAAAoO,kBAAA,CACR7F,IAAI,CAAC1Q,UAAU,CAAA,EAAA,CAClB;AAAE0W,MAAAA,QAAQ,EAAEvB,WAAW,CAACzE,IAAI,CAACuH,aAAa,CAAC;AAAE7L,MAAAA,QAAQ,EAAE;AAAG,KAAC,EAC5D,CAAC;AAEFkW,IAAAA,QAAQ,CAAC;MACP9L,IAAI,EAAErU,eAAe,CAACK,UAAU;AAChCuF,MAAAA,KAAK,EAAE2I,IAAI,CAAC1Q,UAAU,CAAC4S;AACzB,KAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAMyO,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAS;AAAA,IAAA,IAAAsJ,cAAA;AAC/BxH,IAAAA,aAAa,EAAE;AACf;AACA,IAAA,IAAA,CAAAwH,cAAA,GAAI/gB,MAAM,CAAC9J,KAAK,MAAA,IAAA,IAAA6qB,cAAA,KAAA,MAAA,IAAZA,cAAA,CAAc5qB,OAAO,EAAEgZ,YAAY,CAACwU,eAAe,CAAC;AACxDnK,IAAAA,eAAe,EAAE;IACjB5J,QAAQ,CAAC,IAAI,CAAC;AACd6J,IAAAA,YAAY,EAAE;IACdzJ,QAAQ,CAAC,EAAE,CAAC;AACZ4I,IAAAA,SAAS,EAAE;EACb,CAAC;AAED,EAAA,IAAMvD,eAAe,GAAG,SAAlBA,eAAeA,GAAS;AAC5BqD,IAAAA,QAAQ,CAAC;MAAE9L,IAAI,EAAErU,eAAe,CAACS,UAAU;AAAEmF,MAAAA,KAAK,EAAE2I,IAAI,CAACvQ,OAAO,CAACyS;AAAO,KAAC,CAAC;EAC5E,CAAC;AAED,EAAA,IAAMmb,OAAO,GAAG;AAAErd,IAAAA,IAAI,EAAJA,IAAI;AAAE9G,IAAAA,MAAM,EAANA,MAAM;AAAE0Y,IAAAA,QAAQ,EAARA;GAAU;AAC1C,EAAA,IAAM0L,UAAU,GAAG,SAAbA,UAAUA,CAAG1kB,IAAI,EAAA;AAAA,IAAA,IAAA2kB,kBAAA,EAAAC,aAAA,EAAAC,mBAAA;IAAA;AACrB,MAAA,CAAAF,kBAAA,GACArkB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAskB,aAAA,GAANtkB,MAAM,CAAEnJ,KAAK,MAAA,IAAA,IAAAytB,aAAA,KAAA,MAAA,IAAA,CAAAC,mBAAA,GAAbD,aAAA,CAAgB5kB,IAAI,CAAC,MAAA,IAAA,IAAA6kB,mBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,mBAAA,CAAA1oB,IAAA,CAAAyoB,aAAA,EAAwBH,OAAO,CAAC,MAAA,IAAA,IAAAE,kBAAA,KAAA,MAAA,GAAAA,kBAAA,GAAI;AAAI;AAAA,EAAA,CAAA;AAE1C,EAAA,oBACElnB,GAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,+BAA+B;AAAAR,IAAAA,QAAA,eAC5CgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,iCAAiC;MAAAR,QAAA,EAAA,CAC7CgoB,UAAU,CAAC,YAAY,CAAC,eACzBjnB,GAAA,CAACqa,SAAS,EAAA;AACFnG,QAAAA,QAAQ,EAARA,QAAQ;AAAEE,QAAAA,SAAS,EAATA,SAAS;AAAEvR,QAAAA,MAAM,EAANA,MAAM;AACjC8G,QAAAA,IAAI,EAAE+a,WAAY;QAClBnK,cAAc,EAAEL,YAAY,IAAII,kBAAmB;AACnD1G,QAAAA,OAAO,EAAE2H,QAAS;QAClBzH,cAAc,EACZ6S,eAAe,IACfhiB,OAAO,CAAC+f,WAAW,CAACzrB,UAAU,CAAC,IAC/B4a;AACD,OACF,CAAC,EACDoT,UAAU,CAAC,WAAW,CAAC,EACvBvC,WAAW,CAACzrB,UAAU,CAAC8H,GAAG,CAAC,UAAC+C,SAAS,EAAE9C,KAAK,EAAA;AAAA,QAAA,IAAAqmB,aAAA;QAAA,oBAC3ClQ,aAAA,CAACzD,YAAY,EAAA;AACL5P,UAAAA,SAAS,EAATA,SAAS;AAAE9C,UAAAA,KAAK,EAALA,KAAK;AAAEkT,UAAAA,QAAQ,EAARA,QAAQ;AAAEE,UAAAA,SAAS,EAATA,SAAS;AAAEvR,UAAAA,MAAM,EAANA,MAAM;UACnDpC,GAAG,EAAA,CAAA4mB,aAAA,GAAEvjB,SAAS,CAACpB,EAAE,MAAA,IAAA,IAAA2kB,aAAA,KAAA,MAAA,GAAAA,aAAA,GAAIrmB,KAAM;AAC3B2I,UAAAA,IAAI,EAAE+a,WAAY;AAClB9Q,UAAAA,OAAO,EAAE2H,QAAS;AAClBzH,UAAAA,cAAc,EACZ6S,eAAe,IACf3lB,KAAK,KAAK0jB,WAAW,CAACzrB,UAAU,CAAC4S,MAAM,GAAG,CAAC,IAC3CgI,kBACD;UACDG,QAAQ,EACN4S,kBAAkB,IAAK,YAAA;YAAA,OAAMR,qBAAqB,CAACplB,KAAK,CAAC;AAAA,UAAA;AAC1D,SACF,CAAC;MAAA,CACH,CAAC,EACDimB,UAAU,CAAC,iBAAiB,CAAC,eAC9BjnB,GAAA,CAACsV,SAAS,EAAA;AAACjW,QAAAA,MAAM,EAAE6a;AAAa,OAAE,CAAC,EAClC6M,cAAc,IACb7M,YAAY,KACXvQ,IAAI,CAACpQ,KAAK,gBACT0H,IAAA,CAACC,QAAQ,EAAA;QAAAjC,QAAA,EAAA,cACPe,GAAA,CAACgW,QAAQ,EAAA;AACD9B,UAAAA,QAAQ,EAARA,QAAQ;AAAEE,UAAAA,SAAS,EAATA,SAAS;AAAEzK,UAAAA,IAAI,EAAJA,IAAI;AAC/BqK,UAAAA,QAAQ,EAAEsS,iBAAkB;AAC5B1S,UAAAA,OAAO,EAAE2H;AAAS,SACnB,CAAC,eACFvb,GAAA,CAACsV,SAAS,EAAA;UAACjW,MAAM,EAAA;AAAA,SAAE,CAAC;OACZ,CAAC,gBAEXW,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,YAAY;QAAAR,QAAA,eACzBe,GAAA,CAAC8U,MAAM,EAAA;AACL,UAAA,aAAA,EAAY,gBAAgB;AAC5BrM,UAAAA,IAAI,EAAEsM,IAAK;AACXuS,UAAAA,YAAY,EAAC,MAAM;AACnBjwB,UAAAA,KAAK,EAAEwO,CAAC,CAAC,4BAA4B,CAAE;AACvCmP,UAAAA,IAAI,EAAC,IAAI;AACTC,UAAAA,OAAO,EAAC,WAAW;UACnBzV,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,YAAA,OAAQ+b,QAAQ,CAAC;cAAE9L,IAAI,EAAErU,eAAe,CAACW;AAAW,aAAC,CAAC;AAAA,UAAA;SAC9D;AAAC,OACC,CACN,CAAC,eACJiE,GAAA,CAAC4Z,SAAS,EAAA;AACF1F,QAAAA,QAAQ,EAARA,QAAQ;AAAEE,QAAAA,SAAS,EAATA,SAAS;AAAEvR,QAAAA,MAAM,EAANA,MAAM;AACjCmX,QAAAA,MAAM,EAAE4K,YAAa;AACrBjb,QAAAA,IAAI,EAAE+a,WAAY;AAClBvM,QAAAA,WAAW,EAAED,eAAgB;AAC7B4B,QAAAA,cAAc,EAAED,kBAAmB;AACnCjG,QAAAA,OAAO,EAAE2H;OACV,CAAC,EACD0L,UAAU,CAAC,cAAc,CAAC,EAC1BR,cAAc,iBACbxlB,IAAA,CAACC,QAAQ,EAAA;QAAAjC,QAAA,EAAA,cACPe,GAAA,CAACsV,SAAS,EAAA;UAACjW,MAAM,EAAA;AAAA,SAAE,CAAC,eACpBW,GAAA,CAAC8W,UAAU,EAAA;AACH5C,UAAAA,QAAQ,EAARA,QAAQ;AAAEE,UAAAA,SAAS,EAATA,SAAS;AAAEvR,UAAAA,MAAM,EAANA,MAAM;AACjC8G,UAAAA,IAAI,EAAE+a,WAAY;AAClBzN,UAAAA,aAAa,EAAED,iBAAkB;AACjCpD,UAAAA,OAAO,EAAE2H;AAAS,SACnB,CAAC;AAAA,OACM,CACX,eACDvb,GAAA,CAACsV,SAAS,EAAA;QAACjW,MAAM,EAAA;AAAA,OAAE,CAAC,eACpBW,GAAA,CAACkW,SAAS,EAAA;AACFvM,QAAAA,IAAI,EAAJA,IAAI;QACVyK,SAAS,EAAEA,SAAS,CAAC;UAAE3E,IAAI,EAAErU,eAAe,CAACY;AAAU,SAAC,CAAE;QAC1Doa,QAAQ,EAAA,CAAA8N,qBAAA,GAAErhB,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAshB,YAAA,GAANthB,MAAM,CAAEuC,IAAI,MAAA,IAAA,IAAA+e,YAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAA,CAAc/N,QAAQ,cAAA8N,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,IAAK;QACzC5N,UAAU,EAAE,SAAZA,UAAUA,GAAA;AAAA,UAAA,OAAQiF,QAAQ,CAAC;YAAE9L,IAAI,EAAErU,eAAe,CAACY;AAAU,WAAC,CAAC;QAAA,CAAC;AAChEwa,QAAAA,cAAc,EAAE,SAAhBA,cAAcA,CAAEhW,KAAK,EAAA;AAAA,UAAA,OAAImS,SAAS,CAACnS,KAAK,CAAC+mB,MAAM,CAAC7Q,OAAO,CAAC;AAAA,QAAA;AAAC,OAC1D,CAAC;KACC;AAAC,GACH,CAAC;AAEV,CAAC;;AC7XM,IAAM8Q,mBAAmB,GAAG;AACjCC,EAAAA,YAAY,EAAE,cAAc;AAC5BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,IAAI,EAAE,MAAM;AACZ5U,EAAAA,IAAI,EAAE,MAAM;AACZ6U,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,IAAI,EAAE;AACR,CAAC;AAEM,IAAMC,qBAAqB,GAAG;AACnCT,EAAAA,WAAW,EAAE,cAAc;AAC3BU,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCN,EAAAA,MAAM,EAAE,QAAQ;AAChBO,EAAAA,KAAK,EAAE,OAAO;AACdH,EAAAA,IAAI,EAAE,MAAM;AACZI,EAAAA,IAAI,EAAE;AACR,CAAC;;;;ACFD,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAxpB,IAAA,EAOlB;AAAA,EAAA,IAAAypB,MAAA,EAAAC,OAAA,EAAA7hB,gBAAA;AAAA,EAAA,IANJtE,IAAI,GAAAvD,IAAA,CAAJuD,IAAI;IACJC,MAAM,GAAAxD,IAAA,CAANwD,MAAM;IACNgE,MAAM,GAAAxH,IAAA,CAANwH,MAAM;IACN1N,OAAO,GAAAkG,IAAA,CAAPlG,OAAO;IACP6vB,iBAAiB,GAAA3pB,IAAA,CAAjB2pB,iBAAiB;IACjBC,IAAI,GAAA5pB,IAAA,CAAJ4pB,IAAI;AAEJ,EAAA,IAAAvU,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GACEC,gBAAgB,EAAE;IADZ/a,MAAM,GAAA8a,iBAAA,CAAN9a,MAAM;IAAEwjB,MAAM,GAAA1I,iBAAA,CAAN0I,MAAM;IAAEwE,OAAO,GAAAlN,iBAAA,CAAPkN,OAAO;IAAEhN,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEiN,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;AAE/D,EAAA,IAAMC,SAAS,GAAG3qB,MAAM,CAAC,IAAI,CAAC;AAE9B,EAAA,IAAAyc,gBAAA,GAAAC,eAAA,CAAAC,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQgO,QAAAA,uBAAuB,EAAAhO,KAAA,CAAA,yBAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAAvBgO,uBAAuB,GAAAnO,gBAAA,CAAvBmO,uBAAuB;AAC/B,EAAA,IAAMC,eAAe,GAAGC,kBAAkB,CAAC3mB,IAAI,CAAC;AAEhD,EAAA,IAAM4mB,SAAS,GAAA,EAAA,CAAA/nB,MAAA,CAAMmB,IAAI,EAAA,QAAA,CAAQ;AACjC,EAAA,IAAM6mB,WAAW,GAAA,EAAA,CAAAhoB,MAAA,CAAMmB,IAAI,EAAA,UAAA,CAAU;AACrC,EAAA,IAAM8mB,QAAQ,GAAA,EAAA,CAAAjoB,MAAA,CAAMmB,IAAI,EAAA,OAAA,CAAO;EAC/B,IAAM+mB,SAAS,GAAG9mB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE8mB,SAAS;AACnC;AACA;EACA,IAAMC,gBAAgB,GAAG/jB,UAAU,CAAC1M,OAAO,CAAC,IAAI,CAAC6vB,iBAAiB;AAElE,EAAA,IAAMa,UAAU,GAAG,SAAbA,UAAUA,CAAGnY,IAAI,EAAA;AAAA,IAAA,OAAIoY,KAAK,CAACZ,OAAO,EAAExX,IAAI,CAAC,IAAIoY,KAAK,CAACpF,MAAM,EAAEhT,IAAI,CAAC;AAAA,EAAA,CAAA;AAEtE,EAAA,IAAMqY,wBAAwB,GAAGtO,WAAW,CAC1C,YAAwC;AAAA,IAAA,IAAApY,KAAA,GAAAkL,SAAA,CAAArC,MAAA,GAAA,CAAA,IAAAqC,SAAA,CAAA,CAAA,CAAA,KAAA/N,SAAA,GAAA+N,SAAA,CAAA,CAAA,CAAA,GAAP,EAAE;MAAhCyb,UAAU,GAAA3mB,KAAA,CAAV2mB,UAAU;MAAEC,OAAO,GAAA5mB,KAAA,CAAP4mB,OAAO;MAAEC,IAAI,GAAA7mB,KAAA,CAAJ6mB,IAAI;IAC1B,IAAMC,QAAQ,GAAGC,MAAM,CAAC;AAAErnB,MAAAA,EAAE,EAAEinB;KAAY,EAAEL,SAAS,CAAC;IACtD,IAAMU,UAAU,GAAGC,SAAS,CAACL,OAAO,CAAC,IAAIK,SAAS,CAACJ,IAAI,CAAC;IACxD,IAAMK,8BAA8B,GAAG,EACrCC,cAAc,CAACL,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEF,OAAO,EAAEA,OAAO,CAAC,IAAI,CAAAE,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAED,IAAI,MAAKA,IAAI,CACtE;AAED,IAAA,OAAOG,UAAU,IAAIf,eAAe,IAAIiB,8BAA8B;AACxE,EAAA,CAAC,EACD,CAACZ,SAAS,EAAEL,eAAe,CAC7B,CAAC;EAED,IAAMmB,uBAAuB,GAAGC,4BAA4B,CAC1D9nB,IAAI,EACJymB,uBAAuB,GAAGU,wBAAwB,GAAGY,CACvD,CAAC;;AAED;AACA,EAAA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGT,QAAQ,EAAI;AACvCjO,IAAAA,aAAa,CAACtZ,IAAI,EAAAtC,eAAA,CAAAA,eAAA,CAAA,EAAA,EACbwpB,KAAK,CAAC5oB,MAAM,EAAE0B,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;MACtBonB,UAAU,EAAEG,QAAQ,CAACpnB,EAAE;MACvBmnB,IAAI,EAAEC,QAAQ,CAACD;KAAI,EACfrnB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAEgoB,WAAW,GAAG,EAAE,GAAG;MAAEZ,OAAO,EAAEE,QAAQ,CAACF;AAAQ,KAAC,CAC7D,CAAC;AACFa,IAAAA,gBAAgB,CAAC1B,SAAS,EAAEe,QAAQ,CAACD,IAAI,CAAC;EAC5C,CAAC;AAED,EAAA,oBACE5oB,IAAA,CAAA,KAAA,EAAA;AAAKxB,IAAAA,SAAS,EAAC,qBAAqB;AAAAR,IAAAA,QAAA,EAAA,CACjCsqB,gBAAgB,iBACfvpB,GAAA,CAAC0qB,MAAM,EAAA;AACC5xB,MAAAA,OAAO,EAAPA,OAAO;MACb4R,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7BjS,MAAAA,WAAW,EAAE1U,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEsG,gBAAiB;AACtCkM,MAAAA,IAAI,EAAC,OAAO;AACZ1d,MAAAA,KAAK,EAAA,CAAAmxB,MAAA,GAAEgB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,MAAA,IAAA,IAAAV,MAAA,KAAA,MAAA,GAAAA,MAAA,GAAItoB,SAAU;AAC7C9I,MAAAA,KAAK,EACH,CAAAmL,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEyF,cAAc,KAAIpC,CAAC,CAAC,qCAAqC,CAClE;MACD+kB,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;MAAA,CAAC;AAC/CvS,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEtf,KAAK,EAAA;AAAA,QAAA,OAAIukB,aAAa,CAACsN,SAAS,EAAE7xB,KAAK,CAAC;AAAA,MAAA;KACnD,CACF,EACA2yB,SAAS,CAACX,SAAS,CAAC,iBACnBtpB,GAAA,CAAC6qB,mBAAmB,EAAA;AACZvB,MAAAA,SAAS,EAATA,SAAS;AACfwB,MAAAA,aAAa,EAAEtoB,MAAO;AACtBoU,MAAAA,QAAQ,EAAE2T;AAAqB,KAChC,CACF,EACA,EAAC/nB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAEgoB,WAAW,CAAA,iBACnBxqB,GAAA,CAAC+qB,KAAK,EAAA;MACJrgB,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACJ,WAAW,CAAE;AAC/B/xB,MAAAA,KAAK,EAAEwO,CAAC,CAAC,mCAAmC,CAAE;AAC9CqR,MAAAA,WAAW,EAAErR,CAAC,CAAC,8CAA8C,CAAE;AAC/DmP,MAAAA,IAAI,EAAC,OAAO;AACZ1d,MAAAA,KAAK,EAAA,CAAAoxB,OAAA,GAAEe,KAAK,CAAC5oB,MAAM,EAAEuoB,WAAW,CAAC,MAAA,IAAA,IAAAV,OAAA,KAAA,MAAA,GAAAA,OAAA,GAAI,EAAG;MACxCkC,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACM,WAAW,EAAE,IAAI,CAAC;MAAA,CAAC;AACjDxS,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;QAAA,OAAIqb,aAAa,CAACuN,WAAW,EAAE5oB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,MAAA;AAAC,KACnE,CACF,eACD0I,GAAA,CAACgrB,YAAY,EAAA;AACLjC,MAAAA,SAAS,EAATA,SAAS;MACfre,QAAQ,EAAA,IAAA;AACRrT,MAAAA,KAAK,EAAEwO,CAAC,CAAC,gCAAgC,CAAE;AAC3CtD,MAAAA,IAAI,EAAE8mB,QAAS;AACfnS,MAAAA,WAAW,EAAErR,CAAC,CAAC,2CAA2C,CAAE;AAC5DvO,MAAAA,KAAK,EAAEkP,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAK,gBAAA,GAANL,MAAM,CAAEnB,QAAQ,MAAA,IAAA,IAAAwB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAA,CAAkBgjB,IAAK;AAC9BoB,MAAAA,SAAS,EAAEzoB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEyoB;KACpB,CAAC,EACDrC,IAAI,EACJwB,uBAAuB,iBAAIpqB,GAAA,CAACkrB,cAAc,EAAA;AAAO3oB,MAAAA,IAAI,EAAJA;AAAI,KAAK,CAAC;AAAA,GACzD,CAAC;AAEV,CAAC;;ACpGD,IAAM4oB,aAAa,GAAG,SAAhBA,aAAaA,CAAGnD,IAAI,EAAA;AAAA,EAAA,OACxBA,IAAI,GAAGA,IAAI,CAACzmB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAGymB,IAAI;AAAA,CAAA;AAElE,IAAMoD,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAApsB,IAAA,EAMlB;AAAA,EAAA,IALJuD,IAAI,GAAAvD,IAAA,CAAJuD,IAAI;IACJC,MAAM,GAAAxD,IAAA,CAANwD,MAAM;IACNgE,MAAM,GAAAxH,IAAA,CAANwH,MAAM;IAAA6kB,eAAA,GAAArsB,IAAA,CACNssB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,eAAA;IAAAE,qBAAA,GAAAvsB,IAAA,CACf2pB,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAA4C,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;AAEzB,EAAA,IAAAlX,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GACEC,gBAAgB,EAAE;IADZ/a,MAAM,GAAA8a,iBAAA,CAAN9a,MAAM;IAAEgb,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEiN,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;IAAEzE,MAAM,GAAA1I,iBAAA,CAAN0I,MAAM;IAAEwE,OAAO,GAAAlN,iBAAA,CAAPkN,OAAO;EAE/D,IAAMpZ,IAAI,GAAGjN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEiN,IAAI;EACzB,IAAM3W,OAAO,GAAGkkB,gBAAgB,CAACxa,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE8C,eAAe,CAAC;AACzD,EAAA,IAAM6jB,SAAS,GAAA,EAAA,CAAA/nB,MAAA,CAAMmB,IAAI,EAAA,QAAA,CAAQ;AAEjC,EAAA,IAAMinB,UAAU,GAAG,SAAbA,UAAUA,CAAGnY,IAAI,EAAA;AAAA,IAAA,OAAIoY,KAAK,CAACZ,OAAO,EAAExX,IAAI,CAAC,IAAIoY,KAAK,CAACpF,MAAM,EAAEhT,IAAI,CAAC;AAAA,EAAA,CAAA;EAEtE,IAAMma,IAAI,GAAGF,UAAU,CAAC9pB,IAAI,EAAE,CAACU,WAAW,EAAE;AAC5C,EAAA,IAAMupB,aAAa,GAAG,SAAhBA,aAAaA,CAAGxY,IAAI,EAAA;AAAA,IAAA,OACxBuY,IAAI,GACAvY,IAAI,CAACxB,MAAM,CAAC,UAAAxG,IAAI,EAAA;AAAA,MAAA,OAAI3J,MAAM,CAAC2J,IAAI,CAAC5T,KAAK,CAAC,CAAC6K,WAAW,EAAE,CAACP,QAAQ,CAAC6pB,IAAI,CAAC;AAAA,IAAA,CAAA,CAAC,GACpEvY,IAAI;AAAA,EAAA,CAAA;EAEV,IAAM2V,IAAI,GAAGuC,aAAa,CAAC3oB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEkpB,iBAAiB,CAAC;AACrD,EAAA,IAAMC,SAAS,GAAG/C,IAAI,gBACpB5oB,GAAA,CAAC4rB,UAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,OAAO;AAAC5W,IAAAA,OAAO,EAAC,OAAO;AAAAhW,IAAAA,QAAA,EACtC2pB;GACS,CAAC,GACX,IAAI;AAER,EAAA,IAAMkD,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAC7B,IAAA,IAAMtT,IAAI,GAAG,CAAAhW,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE+F,eAAe,MAAI/F,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAE8F,SAAS,CAAA;IAEzD,oBACEtI,GAAA,CAAC4rB,UAAU,EAAA;AAACC,MAAAA,KAAK,EAAC,OAAO;AAAC5W,MAAAA,OAAO,EAAC,OAAO;AAAAhW,MAAAA,QAAA,EACtCuZ,IAAI,GACD3S,CAAC,CAAC,wCAAwC,EAAE;AAAElC,QAAAA,KAAK,EAAE6U;AAAK,OAAC,CAAC,GAC5D3S,CAAC,CAAC,qCAAqC;AAAC,KAClC,CAAC;EAEjB,CAAC;EAED,IAAMkmB,SAAS,gBACb/rB,GAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,eAAe;AAAC,IAAA,aAAA,EAAY,iBAAiB;IAAAR,QAAA,EACzD4G,CAAC,CAAC,8BAA8B;AAAC,GAC/B,CACN;AAED,EAAA,IAAI4J,IAAI,KAAK+X,mBAAmB,CAACE,SAAS,EAAE;IAC1C,oBAAO1nB,GAAA,CAACgsB,SAAS,EAAA;AAAOzpB,MAAAA,IAAI,EAAJA,IAAI;AAAIuoB,MAAAA,aAAa,EAAEtoB;AAAO,KAAE,CAAC;AAC3D,EAAA;AAEA,EAAA,IAAIiN,IAAI,KAAK+X,mBAAmB,CAACC,YAAY,EAAE;IAC7C,oBACEznB,GAAA,CAACwoB,kBAAkB,EAAA;AACXhiB,MAAAA,MAAM,EAANA,MAAM;AAAEmiB,MAAAA,iBAAiB,EAAjBA,iBAAiB;AAAEpmB,MAAAA,IAAI,EAAJA,IAAI;AAAEC,MAAAA,MAAM,EAANA,MAAM;AAAE1J,MAAAA,OAAO,EAAPA,OAAO;AACtD8vB,MAAAA,IAAI,EAAE+C;AAAU,KACjB,CAAC;AAEN,EAAA;AAEA,EAAA,IAAIlc,IAAI,KAAK+X,mBAAmB,CAACG,WAAW,EAAE;IAC5C,IAAIhjB,OAAO,CAAC7L,OAAO,CAAC,EAAE,OAAOgzB,gBAAgB,EAAE;IAE/C,IAAMttB,OAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,IAAI,EAAE;AAC9C,IAAA,IAAM8C,QAAQ,GAAGR,aAAa,CAAC3yB,OAAO,CAAC;IACvC,IAAI0yB,IAAI,IAAI7mB,OAAO,CAACsnB,QAAQ,CAAC,EAAE,OAAOF,SAAS;AAE/C,IAAA,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAG50B,KAAK,EAAI;AACtBwxB,MAAAA,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;AAChCtN,MAAAA,aAAa,CACXsN,SAAS,EACT3qB,OAAO,CAACmD,QAAQ,CAACrK,KAAK,CAAC,GACnBkH,OAAO,CAACiT,MAAM,CAAC0a,KAAK,CAAC70B,KAAK,CAAC,CAAC,GAAA,EAAA,CAAA8J,MAAA,CAAAoO,kBAAA,CACxBhR,OAAO,CAAA,EAAA,CAAElH,KAAK,CAAA,CACxB,CAAC;IACH,CAAC;AAED,IAAA,oBACE2J,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,4BAA4B;AAAAR,MAAAA,QAAA,GACxCgtB,QAAQ,CAAClrB,GAAG,CAAC,UAAAkK,IAAI,EAAA;QAAA,oBAChBjL,GAAA,CAACosB,QAAQ,EAAA;UACP1V,OAAO,EAAElY,OAAO,CAACmD,QAAQ,CAACsJ,IAAI,CAAC3T,KAAK,CAAE;UAEtCD,KAAK,EAAE4T,IAAI,CAAC5T,KAAM;UAClBg1B,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,YAAA,OAAQH,MAAM,CAACjhB,IAAI,CAAC3T,KAAK,CAAC;AAAA,UAAA;SAAC,EAFrC2T,IAAI,CAAC3T,KAGX,CAAC;MAAA,CACH,CAAC,EACDkyB,UAAU,CAACL,SAAS,CAAC,iBACpBnpB,GAAA,CAAC4rB,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,aAAa;AAAC5W,QAAAA,OAAO,EAAC,OAAO;QAAAhW,QAAA,EAC5CuqB,UAAU,CAACL,SAAS;AAAC,OACZ,CACb;AAAA,KACE,CAAC;AAEV,EAAA;AAEA,EAAA,IAAI1Z,IAAI,KAAK+X,mBAAmB,CAACI,QAAQ,EAAE;IACzC,IAAIjjB,OAAO,CAAC7L,OAAO,CAAC,EAAE,OAAOgzB,gBAAgB,EAAE;AAE/C,IAAA,IAAMttB,QAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC;AACxC,IAAA,IAAM8C,SAAQ,GAAGR,aAAa,CAAC3yB,OAAO,CAAC;IACvC,IAAI0yB,IAAI,IAAI7mB,OAAO,CAACsnB,SAAQ,CAAC,EAAE,OAAOF,SAAS;IAE/C,oBACE/rB,GAAA,CAACssB,UAAU,EAAA;AACT3B,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7BoD,MAAAA,WAAW,EAAC,UAAU;MACtBj1B,KAAK,EAAEgK,MAAM,CAAC9C,QAAO,KAAA,IAAA,IAAPA,QAAO,KAAA,MAAA,GAAPA,QAAO,GAAI,EAAE,CAAE;AAC7BguB,MAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAEl1B,KAAK,EAAI;AACtB,QAAA,IAAMm1B,MAAM,GAAG3zB,OAAO,CAACgK,IAAI,CAAC,UAAAmI,IAAI,EAAA;AAAA,UAAA,OAAI3J,MAAM,CAAC2J,IAAI,CAAC3T,KAAK,CAAC,KAAKA,KAAK;QAAA,CAAA,CAAC;QACjEukB,aAAa,CAACsN,SAAS,EAAEsD,MAAM,GAAGA,MAAM,CAACn1B,KAAK,GAAGA,KAAK,CAAC;MACzD,CAAE;AAAA2H,MAAAA,QAAA,EAEDgtB,SAAQ,CAAClrB,GAAG,CAAC,UAAAkK,IAAI,EAAA;AAAA,QAAA,oBAChBjL,GAAA,CAACssB,UAAU,CAACI,IAAI,EAAA;UAEdr1B,KAAK,EAAE4T,IAAI,CAAC5T,KAAM;AAClBC,UAAAA,KAAK,EAAEgK,MAAM,CAAC2J,IAAI,CAAC3T,KAAK;SAAE,EAFrB2T,IAAI,CAAC3T,KAGX,CAAC;MAAA,CACH;AAAC,KACQ,CAAC;AAEjB,EAAA;AAEA,EAAA,IAAImY,IAAI,KAAK+X,mBAAmB,CAACvU,IAAI,EAAE;AACrC,IAAA,oBACEhS,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,qBAAqB;MAAAR,QAAA,EAAA,cAClCe,GAAA,CAAC2sB,SAAS,EAAA;AAACpqB,QAAAA,IAAI,EAAE4mB;OAAY,CAAC,EAC7BwC,SAAS;AAAA,KACP,CAAC;AAEV,EAAA;AAEA,EAAA,IAAIlc,IAAI,KAAK+X,mBAAmB,CAACK,IAAI,EAAE;AAAA,IAAA,IAAAhhB,gBAAA;AACrC,IAAA,oBACE5F,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,qBAAqB;MAAAR,QAAA,EAAA,cAClCe,GAAA,CAACgrB,YAAY,EAAA;QACXtgB,QAAQ,EAAA,IAAA;AACRrT,QAAAA,KAAK,EAAEwO,CAAC,CAAC,gCAAgC,CAAE;AAC3CtD,QAAAA,IAAI,EAAE4mB,SAAU;AAChBjS,QAAAA,WAAW,EAAErR,CAAC,CAAC,2CAA2C,CAAE;AAC5DvO,QAAAA,KAAK,EAAEkP,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAK,gBAAA,GAANL,MAAM,CAAEnB,QAAQ,MAAA,IAAA,IAAAwB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAA,CAAkBvP,KAAM;AAC/B2zB,QAAAA,SAAS,EAAEzoB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEyoB;OACpB,CAAC,EACDU,SAAS;AAAA,KACP,CAAC;AAEV,EAAA;EAEA,IACElc,IAAI,KAAK+X,mBAAmB,CAACM,QAAQ,IACrCrY,IAAI,KAAK+X,mBAAmB,CAACO,MAAM,EACnC;IAAA,IAAAU,MAAA,EAAAC,OAAA;IACA,OAAOjZ,IAAI,KAAK+X,mBAAmB,CAACO,MAAM,gBACxC/nB,GAAA,CAAC+qB,KAAK,EAAA;MACJrgB,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7B9xB,MAAAA,KAAK,EAAEwO,CAAC,CAAC,iCAAiC,CAAE;AAC5CmP,MAAAA,IAAI,EAAC,OAAO;AACZvF,MAAAA,IAAI,EAAC,QAAQ;AACbnY,MAAAA,KAAK,EAAA,CAAAmxB,MAAA,GAAEgB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,MAAA,IAAA,IAAAV,MAAA,KAAA,MAAA,GAAAA,MAAA,GAAI,EAAG;MACtCmC,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;MAAA,CAAC;AAC/CvS,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;QAAA,OAAIqb,aAAa,CAACsN,SAAS,EAAE3oB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,MAAA;AAAC,KACjE,CAAC,gBAEF0I,GAAA,CAAC4sB,QAAQ,EAAA;MACPliB,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7B9xB,MAAAA,KAAK,EAAEwO,CAAC,CAAC,mCAAmC,CAAE;AAC9CgnB,MAAAA,IAAI,EAAE,CAAE;AACR7X,MAAAA,IAAI,EAAC,OAAO;AACZ1d,MAAAA,KAAK,EAAA,CAAAoxB,OAAA,GAAEe,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,MAAA,IAAA,IAAAT,OAAA,KAAA,MAAA,GAAAA,OAAA,GAAI,EAAG;MACtCkC,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;MAAA,CAAC;AAC/CvS,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;QAAA,OAAIqb,aAAa,CAACsN,SAAS,EAAE3oB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,MAAA;AAAC,KACjE,CACF;AACH,EAAA;AAEA,EAAA,IACEmY,IAAI,KAAK+X,mBAAmB,CAACQ,IAAI,IACjCvY,IAAI,KAAK+X,mBAAmB,CAACS,KAAK,IAClCxY,IAAI,KAAK+X,mBAAmB,CAACU,OAAO,EACpC;AAAA,IAAA,IAAA4E,OAAA;AACA,IAAA,oBACE7rB,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,qBAAqB;MAAAR,QAAA,EAAA,cAClCe,GAAA,CAAC+qB,KAAK,EAAA;QACJrgB,QAAQ,EAAA,IAAA;AACRigB,QAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7B9xB,QAAAA,KAAK,EAAEwO,CAAC,CAAC,iCAAiC,CAAE;AAC5CqR,QAAAA,WAAW,EAAE1U,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEsG,gBAAiB;AACtCkM,QAAAA,IAAI,EAAC,OAAO;AACZ1d,QAAAA,KAAK,EAAA,CAAAw1B,OAAA,GAAErD,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,MAAA,IAAA,IAAA2D,OAAA,KAAA,MAAA,GAAAA,OAAA,GAAI,EAAG;QACtClC,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,UAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;QAAA,CAAC;AAC/CvS,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;UAAA,OAAIqb,aAAa,CAACsN,SAAS,EAAE3oB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,QAAA;OAChE,CAAC,EACDq0B,SAAS;AAAA,KACP,CAAC;AAEV,EAAA;AAEA,EAAA,IAAIlc,IAAI,KAAK+X,mBAAmB,CAACW,IAAI,EAAE;AACrC,IAAA,oBACElnB,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,qBAAqB;MAAAR,QAAA,EAAA,cAClCe,GAAA,CAAC+sB,UAAU,EAAA;QACTriB,QAAQ,EAAA,IAAA;AACRigB,QAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7B9xB,QAAAA,KAAK,EAAEwO,CAAC,CAAC,iCAAiC,CAAE;AAC5C4J,QAAAA,IAAI,EAAC,MAAM;AACXnY,QAAAA,KAAK,EACHmyB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,GACpB6D,KAAK,CAACvD,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,CAAC,GAC/BhpB,SACL;QACDyqB,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,UAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;QAAA,CAAC;AAC/CvS,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEuR,IAAI,EAAA;UAAA,OACZtM,aAAa,CACXsN,SAAS;AACT;AACAhB,UAAAA,IAAI,GAAG6E,KAAK,CAAC7E,IAAI,CAAC,CAAC8E,MAAM,CAACC,WAAW,CAAC,GAAG,EAC3C,CAAC;AAAA,QAAA;OAEJ,CAAC,EACDvB,SAAS;AAAA,KACP,CAAC;AAEV,EAAA;EAEA,oBACE3rB,GAAA,CAAC4rB,UAAU,EAAA;AAAC3W,IAAAA,OAAO,EAAC,OAAO;IAAAhW,QAAA,EAAE4G,CAAC,CAAC,6BAA6B;AAAC,GAAa,CAAC;AAE/E,CAAC;;AChQD,SAAAsnB,cAAA,GAAA,qKAAA,IAAAC,CAAA,EAAAvnB,CAAA,EAAAwnB,CAAA,GAAA,UAAA,IAAA,OAAAC,MAAA,GAAAA,MAAA,GAAA,EAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAA,YAAA,EAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAta,EAAAia,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAra,CAAA,EAAA,EAAA,IAAAua,CAAA,GAAAJ,CAAA,IAAAA,CAAA,CAAAK,SAAA,YAAAC,SAAA,GAAAN,CAAA,GAAAM,SAAA,EAAAC,CAAA,GAAAtI,MAAA,CAAAuI,MAAA,CAAAJ,CAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,OAAAI,qBAAA,CAAAF,CAAA,EAAA,SAAA,EAAA,UAAAT,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAra,CAAA,EAAAua,CAAA,EAAAG,CAAA,EAAAG,CAAA,GAAA,CAAA,EAAAC,CAAA,GAAAT,CAAA,IAAA,EAAA,EAAAU,CAAA,GAAA,KAAA,EAAAC,CAAA,GAAA,EAAAF,CAAA,EAAA,CAAA,EAAAX,CAAA,EAAA,CAAA,EAAAc,CAAA,EAAAjB,CAAA,EAAAkB,CAAA,EAAA3Y,CAAA,EAAAsY,CAAA,EAAAtY,CAAA,CAAA4Y,IAAA,CAAAnB,CAAA,EAAA,CAAA,CAAA,EAAAzX,CAAA,WAAAA,CAAAA,CAAA9P,CAAA,EAAAwnB,CAAA,WAAAja,CAAA,GAAAvN,CAAA,EAAA8nB,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAV,CAAA,EAAAgB,CAAA,CAAAb,CAAA,GAAAF,CAAA,EAAAiB,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA3Y,EAAA0X,CAAA,EAAAE,CAAA,EAAA,EAAA,KAAAI,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAP,CAAA,EAAA1nB,CAAA,OAAAsoB,CAAA,IAAAF,CAAA,IAAA,CAAAR,CAAA,IAAA5nB,CAAA,GAAAqoB,CAAA,CAAAriB,MAAA,EAAAhG,CAAA,UAAA4nB,CAAA,EAAAra,CAAA,GAAA8a,CAAA,CAAAroB,CAAA,CAAA,EAAA8P,CAAA,GAAAyY,CAAA,CAAAF,CAAA,EAAAM,CAAA,GAAApb,CAAA,KAAAia,CAAA,GAAA,CAAA,GAAA,CAAAI,CAAA,GAAAe,CAAA,KAAAjB,CAAA,MAAAO,CAAA,GAAA1a,CAAA,CAAA,CAAAua,CAAA,GAAAva,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAAua,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAva,CAAA,CAAA,CAAA,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAAga,CAAA,IAAAha,CAAA,CAAA,CAAA,CAAA,IAAAuC,CAAA,KAAA,CAAA8X,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAA1X,CAAA,GAAAvC,CAAA,CAAA,CAAA,CAAA,KAAAua,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAAd,CAAA,EAAAa,CAAA,CAAAb,CAAA,GAAAna,CAAA,CAAA,CAAA,CAAA,IAAAuC,CAAA,GAAA6Y,CAAA,KAAAf,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAja,CAAA,CAAA,CAAA,CAAA,GAAAma,CAAA,IAAAA,CAAA,GAAAiB,CAAA,MAAApb,CAAA,CAAA,CAAA,CAAA,GAAAia,CAAA,EAAAja,CAAA,CAAA,CAAA,CAAA,GAAAma,CAAA,EAAAa,CAAA,CAAAb,CAAA,GAAAiB,CAAA,EAAAb,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAF,CAAA,IAAAJ,CAAA,GAAA,CAAA,EAAA,OAAAiB,CAAA,CAAA,CAAA,MAAAH,CAAA,GAAA,IAAA,EAAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,UAAAE,CAAA,EAAAS,CAAA,EAAAM,CAAA,EAAA,EAAA,IAAAP,CAAA,GAAA,CAAA,EAAA,MAAAQ,SAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,KAAAN,CAAA,UAAAD,CAAA,IAAAvY,CAAA,CAAAuY,CAAA,EAAAM,CAAA,CAAA,EAAAb,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAU,CAAA,EAAA,CAAA3oB,CAAA,GAAA8nB,CAAA,GAAA,CAAA,GAAAP,CAAA,GAAAU,CAAA,KAAA,CAAAK,CAAA,GAAA,EAAA/a,CAAA,KAAAua,CAAA,GAAAA,CAAA,GAAA,CAAA,IAAAA,CAAA,GAAA,CAAA,KAAAS,CAAA,CAAAb,CAAA,GAAA,EAAA,CAAA,EAAA5X,CAAA,CAAAgY,CAAA,EAAAG,CAAA,CAAA,IAAAM,CAAA,CAAAb,CAAA,GAAAO,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAG,CAAA,GAAA,CAAA,EAAA7a,CAAA,EAAA,EAAA,IAAAua,CAAA,KAAAF,CAAA,GAAA,MAAA,CAAA,EAAA5nB,CAAA,GAAAuN,CAAA,CAAAqa,CAAA,WAAA5nB,CAAA,GAAAA,CAAA,CAAAnH,IAAA,CAAA0U,CAAA,EAAA0a,CAAA,CAAA,CAAA,EAAA,MAAAW,SAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,IAAA,CAAA5oB,CAAA,CAAA6oB,IAAA,EAAA,OAAA7oB,CAAA,CAAA,CAAAioB,CAAA,GAAAjoB,CAAA,CAAAvO,KAAA,EAAAq2B,CAAA,GAAA,CAAA,KAAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,KAAAA,CAAA,KAAA9nB,CAAA,GAAAuN,CAAA,CAAA,QAAA,CAAA,CAAA,IAAAvN,CAAA,CAAAnH,IAAA,CAAA0U,CAAA,CAAA,EAAAua,CAAA,SAAAG,CAAA,GAAAW,SAAA,CAAA,mCAAA,GAAAhB,CAAA,GAAA,UAAA,CAAA,EAAAE,CAAA,GAAA,CAAA,CAAA,CAAA,CAAAva,CAAA,GAAAga,CAAA,CAAA,CAAA,CAAA,MAAA,IAAA,CAAAvnB,CAAA,IAAAsoB,CAAA,GAAAC,CAAA,CAAAb,CAAA,GAAA,CAAA,IAAAO,CAAA,GAAAT,CAAA,CAAA3uB,IAAA,CAAA6uB,CAAA,EAAAa,CAAA,CAAA,MAAAE,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,OAAAzoB,CAAA,EAAA,EAAAuN,CAAA,GAAAga,CAAA,EAAAO,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAjoB,CAAA,CAAA,CAAA,CAAA,SAAA,EAAAooB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA32B,KAAA,EAAAuO,CAAA,EAAA6oB,IAAA,EAAAP,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAd,CAAA,EAAAI,CAAA,EAAAra,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA0a,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAQ,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAT,SAAAA,eAAAc,iBAAAA,GAAA,CAAA,CAAA,CAAA,SAAAC,0BAAAA,GAAA,CAAA,CAAA,CAAA/oB,CAAA,GAAA2f,MAAA,CAAAqJ,cAAA,CAAA,CAAA,IAAAlB,CAAA,GAAA,EAAA,CAAAJ,CAAA,CAAA,GAAA1nB,CAAA,CAAAA,CAAA,IAAA0nB,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAS,qBAAA,CAAAnoB,CAAA,GAAA,EAAA,EAAA0nB,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA1nB,CAAA,GAAAioB,CAAA,GAAAc,0BAAA,CAAAhB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAApI,MAAA,CAAAuI,MAAA,CAAAJ,CAAA,CAAA,CAAA,CAAA,SAAAM,CAAAA,CAAAb,CAAA,WAAA5H,MAAA,CAAAsJ,cAAA,GAAAtJ,MAAA,CAAAsJ,cAAA,CAAA1B,CAAA,EAAAwB,0BAAA,CAAA,IAAAxB,CAAA,CAAA2B,SAAA,GAAAH,0BAAA,EAAAZ,qBAAA,CAAAZ,CAAA,EAAAK,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAAL,CAAA,CAAAQ,SAAA,GAAApI,MAAA,CAAAuI,MAAA,CAAAD,CAAA,CAAA,EAAAV,CAAA,CAAA,CAAA,CAAA,CAAA,OAAAuB,iBAAA,CAAAf,SAAA,GAAAgB,0BAAA,EAAAZ,qBAAA,CAAAF,CAAA,iBAAAc,0BAAA,CAAA,EAAAZ,qBAAA,CAAAY,0BAAA,EAAA,aAAA,EAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAK,WAAA,GAAA,mBAAA,EAAAhB,qBAAA,CAAAY,0BAAA,EAAAnB,CAAA,EAAA,mBAAA,CAAA,EAAAO,qBAAA,CAAAF,CAAA,CAAA,EAAAE,qBAAA,CAAAF,CAAA,EAAAL,CAAA,EAAA,WAAA,CAAA,EAAAO,qBAAA,CAAAF,CAAA,EAAAP,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAS,qBAAA,CAAAF,CAAA,8DAAAX,cAAA,GAAA,SAAAA,YAAAA,GAAA,EAAA,OAAA,EAAA8B,CAAA,EAAA7b,CAAA,EAAA8b,CAAA,EAAAjB,CAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,SAAAD,qBAAAA,CAAAZ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,EAAA,EAAA,IAAAuN,CAAA,GAAAoS,MAAA,CAAA2J,cAAA,CAAA,CAAA,IAAA,EAAA/b,CAAA,uBAAAga,CAAA,EAAA,EAAAha,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA4a,qBAAA,GAAA,SAAAoB,mBAAAhC,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,EAAA,EAAA,SAAA4nB,CAAAA,CAAAJ,CAAA,EAAAE,CAAA,IAAAS,qBAAA,CAAAZ,CAAA,EAAAC,CAAA,YAAAD,CAAA,EAAA,EAAA,OAAA,IAAA,CAAAiC,OAAA,CAAAhC,CAAA,EAAAE,CAAA,EAAAH,CAAA,SAAAC,CAAA,GAAAja,CAAA,GAAAA,CAAA,CAAAga,CAAA,EAAAC,CAAA,IAAA/1B,KAAA,EAAAi2B,CAAA,EAAA+B,UAAA,GAAAzpB,CAAA,EAAA0pB,YAAA,EAAA,CAAA1pB,CAAA,EAAA2pB,QAAA,EAAA,CAAA3pB,CAAA,MAAAunB,CAAA,CAAAC,CAAA,CAAA,GAAAE,CAAA,IAAAE,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,cAAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAAO,qBAAA,CAAAZ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,CAAA,CAAA,CAAA;AAKA,IAAM4pB,SAAS,GAAG,SAAZA,SAASA,CAAAzwB,IAAA,EAAA;AAAA,EAAA,IAAM0wB,GAAG,GAAA1wB,IAAA,CAAH0wB,GAAG;IAAErK,MAAM,GAAArmB,IAAA,CAANqmB,MAAM;IAAAsK,YAAA,GAAA3wB,IAAA,CAAEumB,OAAO;AAAPA,IAAAA,OAAO,GAAAoK,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;AAAA,EAAA,OAC5CnK,MAAM,CAACxU,IAAI,CAAC8T,OAAO,CAAC4K,GAAG,IAAI,EAAE,CAAC,CAAC,CAACje,MAAM,CACpC,UAAAhR,GAAG,EAAA;IAAA,OACD,CAACA,GAAG,KAAK4kB,MAAM,IAAI5kB,GAAG,CAACglB,UAAU,CAAA,EAAA,CAAArkB,MAAA,CAAIikB,MAAM,EAAA,GAAA,CAAG,CAAC,KAC/C,CAACE,OAAO,CAACxb,IAAI,CACX,UAAA2b,GAAG,EAAA;MAAA,OAAIjlB,GAAG,QAAAW,MAAA,CAAQikB,MAAM,EAAA,GAAA,CAAA,CAAAjkB,MAAA,CAAIskB,GAAG,CAAE,IAAIjlB,GAAG,CAACglB,UAAU,CAAA,EAAA,CAAArkB,MAAA,CAAIikB,MAAM,OAAAjkB,MAAA,CAAIskB,GAAG,EAAA,GAAA,CAAG,CAAC;AAAA,IAAA,CAC1E,CAAC;AAAA,EAAA,CACL,CAAC;AAAA,CAAA;AAEH,IAAMkK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGvK,MAAM,EAAI;AAClC,EAAA,IAAA1J,iBAAA,GAAkDC,gBAAgB,EAAE;IAA5DiU,YAAY,GAAAlU,iBAAA,CAAZkU,YAAY;IAAE/G,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;IAAEzE,MAAM,GAAA1I,iBAAA,CAAN0I,MAAM;AAC7C,EAAA,IAAMyL,SAAS,GAAG1xB,MAAM,CAACimB,MAAM,CAAC;EAChCyL,SAAS,CAACtxB,OAAO,GAAG6lB,MAAM;AAE1BhmB,EAAAA,SAAS,CAAC,YAAM;AACdoxB,IAAAA,SAAS,CAAC;MAAEC,GAAG,EAAEI,SAAS,CAACtxB,OAAO;AAAE6mB,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC,CAAC1mB,OAAO,CAAC,UAAA8B,GAAG,EAAA;AAAA,MAAA,OACvDqoB,eAAe,CAACroB,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;AAAA,IAAA,CACpC,CAAC;AAED,IAAA,OAAO,YAAM;AACXgvB,MAAAA,SAAS,CAAC;QAAEC,GAAG,EAAEI,SAAS,CAACtxB,OAAO;AAAE6mB,QAAAA,MAAM,EAANA;AAAO,OAAC,CAAC,CAAC1mB,OAAO,CAAC,UAAA8B,GAAG,EAAA;AAAA,QAAA,OACvDqoB,eAAe,CAACroB,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;AAAA,MAAA,CACnC,CAAC;IACH,CAAC;AACD;AACF,EAAA,CAAC,EAAE,CAAC4kB,MAAM,CAAC,CAAC;AAEZ,EAAA,IAAM0K,QAAQ,gBAAA,YAAA;IAAA,IAAA/sB,KAAA,GAAAgtB,iBAAA,cAAA7C,cAAA,EAAA,CAAA+B,CAAA,CAAG,SAAAe,OAAAA,GAAA;AAAA,MAAA,IAAA1K,OAAA;QAAA2K,UAAA;QAAAC,SAAA;AAAAC,QAAAA,KAAA,GAAAliB,SAAA;AAAA,MAAA,OAAAif,cAAA,EAAA,CAAA8B,CAAA,CAAA,UAAAoB,QAAA,EAAA;QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAA9C,CAAA;AAAA,UAAA,KAAA,CAAA;YAAOhI,OAAO,GAAA6K,KAAA,CAAAvkB,MAAA,GAAA,CAAA,IAAAukB,KAAA,CAAA,CAAA,CAAA,KAAAjwB,SAAA,GAAAiwB,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAC,YAAAA,QAAA,CAAA9C,CAAA,GAAA,CAAA;YAAA,OACTsC,YAAY,EAAE;AAAA,UAAA,KAAA,CAAA;YAAjCK,UAAU,GAAAG,QAAA,CAAAhC,CAAA;YACV8B,SAAS,GAAGV,SAAS,CAAC;AAAEC,cAAAA,GAAG,EAAEQ,UAAU;AAAE7K,cAAAA,MAAM,EAANA,MAAM;AAAEE,cAAAA,OAAO,EAAPA;AAAQ,aAAC,CAAC;AACjE4K,YAAAA,SAAS,CAACxxB,OAAO,CAAC,UAAA8B,GAAG,EAAA;AAAA,cAAA,OAAIqoB,eAAe,CAACroB,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;YAAA,CAAA,CAAC;AAAC,YAAA,OAAA4vB,QAAA,CAAA/B,CAAA,IAErD3pB,OAAO,CAACwrB,SAAS,CAAC,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAF,OAAA,CAAA;IAAA,CAC1B,CAAA,CAAA;AAAA,IAAA,OAAA,SANKF,QAAQA,GAAA;AAAA,MAAA,OAAA/sB,KAAA,CAAA8Y,KAAA,CAAA,IAAA,EAAA5N,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAMb;EAED,OAAO;AAAE6hB,IAAAA,QAAQ,EAARA;GAAU;AACrB,CAAC;;ACzCD,SAAA5C,cAAA,GAAA,qKAAA,IAAAC,CAAA,EAAAvnB,CAAA,EAAAwnB,CAAA,GAAA,UAAA,IAAA,OAAAC,MAAA,GAAAA,MAAA,GAAA,EAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAA,YAAA,EAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAta,EAAAia,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAra,CAAA,EAAA,EAAA,IAAAua,CAAA,GAAAJ,CAAA,IAAAA,CAAA,CAAAK,SAAA,YAAAC,SAAA,GAAAN,CAAA,GAAAM,SAAA,EAAAC,CAAA,GAAAtI,MAAA,CAAAuI,MAAA,CAAAJ,CAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,OAAAI,qBAAA,CAAAF,CAAA,EAAA,SAAA,EAAA,UAAAT,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAra,CAAA,EAAAua,CAAA,EAAAG,CAAA,EAAAG,CAAA,GAAA,CAAA,EAAAC,CAAA,GAAAT,CAAA,IAAA,EAAA,EAAAU,CAAA,GAAA,KAAA,EAAAC,CAAA,GAAA,EAAAF,CAAA,EAAA,CAAA,EAAAX,CAAA,EAAA,CAAA,EAAAc,CAAA,EAAAjB,CAAA,EAAAkB,CAAA,EAAA3Y,CAAA,EAAAsY,CAAA,EAAAtY,CAAA,CAAA4Y,IAAA,CAAAnB,CAAA,EAAA,CAAA,CAAA,EAAAzX,CAAA,WAAAA,CAAAA,CAAA9P,CAAA,EAAAwnB,CAAA,WAAAja,CAAA,GAAAvN,CAAA,EAAA8nB,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAV,CAAA,EAAAgB,CAAA,CAAAb,CAAA,GAAAF,CAAA,EAAAiB,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA3Y,EAAA0X,CAAA,EAAAE,CAAA,EAAA,EAAA,KAAAI,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAP,CAAA,EAAA1nB,CAAA,OAAAsoB,CAAA,IAAAF,CAAA,IAAA,CAAAR,CAAA,IAAA5nB,CAAA,GAAAqoB,CAAA,CAAAriB,MAAA,EAAAhG,CAAA,UAAA4nB,CAAA,EAAAra,CAAA,GAAA8a,CAAA,CAAAroB,CAAA,CAAA,EAAA8P,CAAA,GAAAyY,CAAA,CAAAF,CAAA,EAAAM,CAAA,GAAApb,CAAA,KAAAia,CAAA,GAAA,CAAA,GAAA,CAAAI,CAAA,GAAAe,CAAA,KAAAjB,CAAA,MAAAO,CAAA,GAAA1a,CAAA,CAAA,CAAAua,CAAA,GAAAva,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAAua,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAva,CAAA,CAAA,CAAA,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAAga,CAAA,IAAAha,CAAA,CAAA,CAAA,CAAA,IAAAuC,CAAA,KAAA,CAAA8X,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAA1X,CAAA,GAAAvC,CAAA,CAAA,CAAA,CAAA,KAAAua,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAAd,CAAA,EAAAa,CAAA,CAAAb,CAAA,GAAAna,CAAA,CAAA,CAAA,CAAA,IAAAuC,CAAA,GAAA6Y,CAAA,KAAAf,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAja,CAAA,CAAA,CAAA,CAAA,GAAAma,CAAA,IAAAA,CAAA,GAAAiB,CAAA,MAAApb,CAAA,CAAA,CAAA,CAAA,GAAAia,CAAA,EAAAja,CAAA,CAAA,CAAA,CAAA,GAAAma,CAAA,EAAAa,CAAA,CAAAb,CAAA,GAAAiB,CAAA,EAAAb,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAF,CAAA,IAAAJ,CAAA,GAAA,CAAA,EAAA,OAAAiB,CAAA,CAAA,CAAA,MAAAH,CAAA,GAAA,IAAA,EAAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,UAAAE,CAAA,EAAAS,CAAA,EAAAM,CAAA,EAAA,EAAA,IAAAP,CAAA,GAAA,CAAA,EAAA,MAAAQ,SAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,KAAAN,CAAA,UAAAD,CAAA,IAAAvY,CAAA,CAAAuY,CAAA,EAAAM,CAAA,CAAA,EAAAb,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAU,CAAA,EAAA,CAAA3oB,CAAA,GAAA8nB,CAAA,GAAA,CAAA,GAAAP,CAAA,GAAAU,CAAA,KAAA,CAAAK,CAAA,GAAA,EAAA/a,CAAA,KAAAua,CAAA,GAAAA,CAAA,GAAA,CAAA,IAAAA,CAAA,GAAA,CAAA,KAAAS,CAAA,CAAAb,CAAA,GAAA,EAAA,CAAA,EAAA5X,CAAA,CAAAgY,CAAA,EAAAG,CAAA,CAAA,IAAAM,CAAA,CAAAb,CAAA,GAAAO,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAG,CAAA,GAAA,CAAA,EAAA7a,CAAA,EAAA,EAAA,IAAAua,CAAA,KAAAF,CAAA,GAAA,MAAA,CAAA,EAAA5nB,CAAA,GAAAuN,CAAA,CAAAqa,CAAA,WAAA5nB,CAAA,GAAAA,CAAA,CAAAnH,IAAA,CAAA0U,CAAA,EAAA0a,CAAA,CAAA,CAAA,EAAA,MAAAW,SAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,IAAA,CAAA5oB,CAAA,CAAA6oB,IAAA,EAAA,OAAA7oB,CAAA,CAAA,CAAAioB,CAAA,GAAAjoB,CAAA,CAAAvO,KAAA,EAAAq2B,CAAA,GAAA,CAAA,KAAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,KAAAA,CAAA,KAAA9nB,CAAA,GAAAuN,CAAA,CAAA,QAAA,CAAA,CAAA,IAAAvN,CAAA,CAAAnH,IAAA,CAAA0U,CAAA,CAAA,EAAAua,CAAA,SAAAG,CAAA,GAAAW,SAAA,CAAA,mCAAA,GAAAhB,CAAA,GAAA,UAAA,CAAA,EAAAE,CAAA,GAAA,CAAA,CAAA,CAAA,CAAAva,CAAA,GAAAga,CAAA,CAAA,CAAA,CAAA,MAAA,IAAA,CAAAvnB,CAAA,IAAAsoB,CAAA,GAAAC,CAAA,CAAAb,CAAA,GAAA,CAAA,IAAAO,CAAA,GAAAT,CAAA,CAAA3uB,IAAA,CAAA6uB,CAAA,EAAAa,CAAA,CAAA,MAAAE,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,OAAAzoB,CAAA,EAAA,EAAAuN,CAAA,GAAAga,CAAA,EAAAO,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAjoB,CAAA,CAAA,CAAA,CAAA,SAAA,EAAAooB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA32B,KAAA,EAAAuO,CAAA,EAAA6oB,IAAA,EAAAP,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAd,CAAA,EAAAI,CAAA,EAAAra,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA0a,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAQ,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAT,SAAAA,eAAAc,iBAAAA,GAAA,CAAA,CAAA,CAAA,SAAAC,0BAAAA,GAAA,CAAA,CAAA,CAAA/oB,CAAA,GAAA2f,MAAA,CAAAqJ,cAAA,CAAA,CAAA,IAAAlB,CAAA,GAAA,EAAA,CAAAJ,CAAA,CAAA,GAAA1nB,CAAA,CAAAA,CAAA,IAAA0nB,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAS,qBAAA,CAAAnoB,CAAA,GAAA,EAAA,EAAA0nB,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA1nB,CAAA,GAAAioB,CAAA,GAAAc,0BAAA,CAAAhB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAApI,MAAA,CAAAuI,MAAA,CAAAJ,CAAA,CAAA,CAAA,CAAA,SAAAM,CAAAA,CAAAb,CAAA,WAAA5H,MAAA,CAAAsJ,cAAA,GAAAtJ,MAAA,CAAAsJ,cAAA,CAAA1B,CAAA,EAAAwB,0BAAA,CAAA,IAAAxB,CAAA,CAAA2B,SAAA,GAAAH,0BAAA,EAAAZ,qBAAA,CAAAZ,CAAA,EAAAK,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAAL,CAAA,CAAAQ,SAAA,GAAApI,MAAA,CAAAuI,MAAA,CAAAD,CAAA,CAAA,EAAAV,CAAA,CAAA,CAAA,CAAA,CAAA,OAAAuB,iBAAA,CAAAf,SAAA,GAAAgB,0BAAA,EAAAZ,qBAAA,CAAAF,CAAA,iBAAAc,0BAAA,CAAA,EAAAZ,qBAAA,CAAAY,0BAAA,EAAA,aAAA,EAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAK,WAAA,GAAA,mBAAA,EAAAhB,qBAAA,CAAAY,0BAAA,EAAAnB,CAAA,EAAA,mBAAA,CAAA,EAAAO,qBAAA,CAAAF,CAAA,CAAA,EAAAE,qBAAA,CAAAF,CAAA,EAAAL,CAAA,EAAA,WAAA,CAAA,EAAAO,qBAAA,CAAAF,CAAA,EAAAP,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAS,qBAAA,CAAAF,CAAA,8DAAAX,cAAA,GAAA,SAAAA,YAAAA,GAAA,EAAA,OAAA,EAAA8B,CAAA,EAAA7b,CAAA,EAAA8b,CAAA,EAAAjB,CAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,SAAAD,qBAAAA,CAAAZ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,EAAA,EAAA,IAAAuN,CAAA,GAAAoS,MAAA,CAAA2J,cAAA,CAAA,CAAA,IAAA,EAAA/b,CAAA,uBAAAga,CAAA,EAAA,EAAAha,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA4a,qBAAA,GAAA,SAAAoB,mBAAAhC,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,EAAA,EAAA,SAAA4nB,CAAAA,CAAAJ,CAAA,EAAAE,CAAA,IAAAS,qBAAA,CAAAZ,CAAA,EAAAC,CAAA,YAAAD,CAAA,EAAA,EAAA,OAAA,IAAA,CAAAiC,OAAA,CAAAhC,CAAA,EAAAE,CAAA,EAAAH,CAAA,SAAAC,CAAA,GAAAja,CAAA,GAAAA,CAAA,CAAAga,CAAA,EAAAC,CAAA,IAAA/1B,KAAA,EAAAi2B,CAAA,EAAA+B,UAAA,GAAAzpB,CAAA,EAAA0pB,YAAA,EAAA,CAAA1pB,CAAA,EAAA2pB,QAAA,EAAA,CAAA3pB,CAAA,MAAAunB,CAAA,CAAAC,CAAA,CAAA,GAAAE,CAAA,IAAAE,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,cAAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAAO,qBAAA,CAAAZ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,CAAA,CAAA,CAAA;AA2BA,IAAMyqB,UAAU,GAAG,SAAbA,UAAUA,CAAAtxB,IAAA,EAA0B;EAAA,IAAAgH,eAAA,EAAAuqB,qBAAA,EAAApqB,gBAAA,EAAAqqB,qBAAA,EAAAnpB,iBAAA,EAAAgJ,gBAAA,EAAA0N,qBAAA,EAAA0S,YAAA,EAAAvS,gBAAA,EAAAE,gBAAA,EAAAC,gBAAA,EAAAK,gBAAA,EAAAgS,qBAAA,EAAAC,iBAAA;AAAA,EAAA,IAApB9tB,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IAAE7B,KAAK,GAAAhC,IAAA,CAALgC,KAAK;AACjC,EAAA,IAAAqT,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA0e,aAAA,GAA4B7I,YAAY,CAAC7Y,MAAM,CAAC;IAAxC8G,IAAI,GAAA4a,aAAA,CAAJ5a,IAAI;IAAEsS,SAAS,GAAAsI,aAAA,CAATtI,SAAS;AACvB,EAAA,IAAAN,iBAAA,GAA0BC,gBAAgB,EAAE;IAApCC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;AACrB,EAAA,IAAAuI,eAAA,GAAgCxJ,cAAc,CAAC/X,MAAM,CAAC;IAA9CsY,QAAQ,GAAAiJ,eAAA,CAARjJ,QAAQ;IAAEM,SAAS,GAAA2I,eAAA,CAAT3I,SAAS;AAC3B,EAAA,IAAMmV,OAAO,GAAGxyB,MAAM,CAAC,IAAI,CAAC;AAE5B,EAAA,IAAAnB,SAAA,GAAoCC,QAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCquB,IAAAA,UAAU,GAAAnuB,UAAA,CAAA,CAAA,CAAA;AAAE0zB,IAAAA,aAAa,GAAA1zB,UAAA,CAAA,CAAA,CAAA;;AAEhC;EACA,IAAMqJ,MAAM,GAAGmD,IAAI,CAACvQ,OAAO,CAAC4H,KAAK,CAAC,IAAI,EAAE;EACxC,IAAM8vB,IAAI,GAAA,EAAA,CAAA1vB,MAAA,CAAM6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,CAAE;EAClD,IAAAoX,YAAA,GASI3R,WAAW,CAAC;AAAE5D,MAAAA,MAAM,EAANA,MAAM;AAAE2D,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC;IARjChE,MAAM,GAAA4V,YAAA,CAAN5V,MAAM;IACN4D,OAAO,GAAAgS,YAAA,CAAPhS,OAAO;IACP1E,IAAI,GAAA0W,YAAA,CAAJ1W,IAAI;IACJ8G,WAAW,GAAA4P,YAAA,CAAX5P,WAAW;IACXE,cAAc,GAAA0P,YAAA,CAAd1P,cAAc;IACdK,WAAW,GAAAqP,YAAA,CAAXrP,WAAW;IACXC,cAAc,GAAAoP,YAAA,CAAdpP,cAAc;IACdtC,KAAK,GAAA0R,YAAA,CAAL1R,KAAK;AAEP,EAAA,IAAMnE,IAAI,GAAA,EAAA,CAAAnB,MAAA,CAAM0vB,IAAI,EAAA,WAAA,CAAW;EAE/B,IAAMzhB,UAAU,GACd,CAAA,CAAArJ,eAAA,GAAAnD,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA4M,eAAA,KAAA,MAAA,IAAA,CAAAuqB,qBAAA,GAAdvqB,eAAA,CAAgBsJ,aAAa,MAAA,IAAA,IAAAihB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA7BA,qBAAA,CAAA7xB,IAAA,CAAAsH,eAAA,EAAgCQ,MAAM,CAACjE,IAAI,CAAC,MAAA,CAAA4D,gBAAA,GAC5CtD,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA+M,gBAAA,KAAA,MAAA,IAAA,CAAAqqB,qBAAA,GAAdrqB,gBAAA,CAAgBoJ,gBAAgB,MAAA,IAAA,IAAAihB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,qBAAA,CAAA9xB,IAAA,CAAAyH,gBAAA,EAAmCC,OAAO,CAAC,CAAA,IAC3C5D,MAAM;;AAER;AACA;EACA,IAAMsF,cAAc,IAAAT,iBAAA,GAClBb,MAAM,CAACoB,SAAS,cAAAP,iBAAA,KAAA,MAAA,GAAAA,iBAAA,GAAA,CAAAgJ,gBAAA,GAAIxN,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAiX,gBAAA,gBAAA0N,qBAAA,GAAd1N,gBAAA,CAAgBxI,aAAa,cAAAkW,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAA7BA,qBAAA,CAAArf,IAAA,CAAA2R,gBAAA,EAAgC7J,MAAM,CAACjE,IAAI,CAAC,cAAAwb,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA5CA,qBAAA,CAA8CnW,SAAS;AAE7E,EAAA,IAAM+gB,iBAAiB,GAAG,CAAC,GAAA8H,YAAA,GAAC,CAAC,CAAA,CAAAvS,gBAAA,GAAArb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA8kB,gBAAA,uBAAdA,gBAAA,CAAgB5kB,UAAU,KAAI,EAAE,EAC1D8H,MAAM,CAAC,CAAC,CAAA,CAAAgd,gBAAA,GAAAvb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAglB,gBAAA,uBAAdA,gBAAA,CAAgBtlB,OAAO,KAAI,EAAE,EAAEqW,OAAO,CAAC,UAAAse,CAAC,EAAA;AAAA,IAAA,OAAIA,CAAC,CAACn0B,UAAU,IAAI,EAAE;AAAA,EAAA,CAAA,CAAC,CAAC,CACxEwJ,IAAI,CAAC,UAAAmI,IAAI,EAAA;AAAA,IAAA,IAAAF,WAAA;AAAA,IAAA,OAAI,CAAA,CAAAA,WAAA,GAACE,IAAI,CAAC3T,KAAK,MAAA,IAAA,IAAAyT,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAIE,IAAI,CAACvI,EAAE,MAAMoF,cAAc;AAAA,EAAA,CAAA,CAAC,MAAA,IAAA,IAAA2oB,YAAA,KAAA,MAAA,IAF/BA,YAAA,CAEiC9sB,KAAK,CAAA;AAElE,EAAA,IAAMotB,KAAK,GAAGt0B,SAAS,CAACkF,QAAQ,CAAC0N,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEI,IAAI,CAAC;AAElD,EAAA,IAAM+S,cAAc,GAAG,CAAAnT,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEkT,UAAU,KAAIlT,UAAU,CAACmT,cAAc;AAC1E,EAAA,IAAMwO,gBAAgB,GACpB,CAAA3hB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEkP,YAAY,MACxBlP,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEiP,SAAS,CAAA,KAAA,CAAAD,gBAAA,GACrBxb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAilB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgBE,YAAY,CAAA;AAE9B,EAAA,IAAM0S,UAAU,GACdjU,gBAAgB,CAAC3N,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAE/J,eAAe,CAAC,CAACuG,MAAM,IACpDtP,qBAAqB;AAEvB,EAAA,IAAM20B,wBAAwB,GAAG,CAAC,CAACxoB,cAAc;AAEjD,EAAA,IAAAyoB,kBAAA,GAAqBvB,iBAAiB,CAACrtB,IAAI,CAAC;IAApCwtB,QAAQ,GAAAoB,kBAAA,CAARpB,QAAQ;AAEhB,EAAA,IAAMqB,cAAc,GAAA,CAAA1S,gBAAA,GAAG7b,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAslB,gBAAA,KAAA,MAAA,IAAA,CAAAgS,qBAAA,GAAdhS,gBAAA,CAAgBnP,gBAAgB,MAAA,IAAA,IAAAmhB,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAAhCA,qBAAA,CAAAhyB,IAAA,CAAAggB,gBAAA,EAAmCtY,OAAO,CAAC,MAAA,IAAA,IAAAsqB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA3CA,qBAAA,CAA6Cp5B,KAAK;EACzE,IAAM+5B,aAAa,GAAGjzB,MAAM,CAAC,CAACoI,MAAM,CAACjE,IAAI,CAAC;AAC1ClE,EAAAA,SAAS,CAAC,YAAM;IACd,IAAI,CAACgzB,aAAa,CAAC7yB,OAAO,IAAI,CAAC4yB,cAAc,EAAE,OAAOjxB,SAAS;AAC/D0b,IAAAA,aAAa,IAAAza,MAAA,CAAI0vB,IAAI,EAAA,OAAA,CAAA,EAASM,cAAc,CAAC;IAE7C,OAAO,YAAA;AAAA,MAAA,OAAMvV,aAAa,CAAA,EAAA,CAAAza,MAAA,CAAI0vB,IAAI,EAAA,OAAA,CAAA,EAAS,EAAE,CAAC;AAAA,IAAA,CAAA;AAC9C;AACF,EAAA,CAAC,EAAE,CAACA,IAAI,EAAEM,cAAc,CAAC,CAAC;AAE1B/yB,EAAAA,SAAS,CAAC,YAAM;IACd,IAAI0yB,KAAK,EAAE,OAAO5wB,SAAS;AAE3B,IAAA,IAAImxB,KAAK;IACT,IAAIC,QAAQ,GAAG,CAAC;AAChB,IAAA,IAAMC,WAAU,GAAG,SAAbA,UAAUA,GAAS;AAAA,MAAA,IAAAC,gBAAA;AACvB,MAAA,IAAMhS,KAAK,GAAA,CAAAgS,gBAAA,GAAGb,OAAO,CAACpyB,OAAO,MAAA,IAAA,IAAAizB,gBAAA,uBAAfA,gBAAA,CAAiBC,aAAa,CAACl1B,yBAAyB,CAAC;AACvE,MAAA,IAAIijB,KAAK,EAAE;QACTA,KAAK,CAACkS,KAAK,EAAE;AACf,MAAA,CAAC,MAAM,IAAIJ,QAAQ,EAAE,GAAG,EAAE,EAAE;AAC1BD,QAAAA,KAAK,GAAGM,qBAAqB,CAACJ,WAAU,CAAC;AAC3C,MAAA;IACF,CAAC;AACDF,IAAAA,KAAK,GAAGM,qBAAqB,CAACJ,WAAU,CAAC;IAEzC,OAAO,YAAA;MAAA,OAAMK,oBAAoB,CAACP,KAAK,CAAC;AAAA,IAAA,CAAA;EAC1C,CAAC,EAAE,CAACP,KAAK,EAAEvqB,MAAM,CAACjE,IAAI,CAAC,CAAC;EAExB,IAAM4X,KAAK,GACTpR,WAAW,IACVP,WAAW,IACV3C,CAAC,CAAC,qCAAqC,EAAE;AACvCnE,IAAAA,IAAI,EAAEA,IAAI,IAAImE,CAAC,CAAC,0BAA0B,CAAC;AAC3C2C,IAAAA,WAAW,EAAXA;AACF,GAAC,CAAE,KACLhG,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEnL,KAAK,CAAA,IACbwO,CAAC,CAAC,gCAAgC,CAAC;AAErC,EAAA,IAAMisB,cAAc,gBAAA,YAAA;IAAA,IAAA9uB,KAAA,GAAAgtB,iBAAA,cAAA7C,cAAA,EAAA,CAAA+B,CAAA,CAAG,SAAAe,OAAAA,GAAA;MAAA,IAAA8B,KAAA,EAAAjV,IAAA;AAAA,MAAA,OAAAqQ,cAAA,EAAA,CAAA8B,CAAA,CAAA,UAAAoB,QAAA,EAAA;QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAA9C,CAAA;AAAA,UAAA,KAAA,CAAA;AACrB;AACA;AACMwE,YAAAA,KAAK,MAAA3wB,MAAA,CAAAoO,kBAAA,CACNjB,oBAAoB,CAAC;AAAE1L,cAAAA,MAAM,EAANA,MAAM;AAAE2D,cAAAA,MAAM,EAANA,MAAM;AAAEjE,cAAAA,IAAI,EAAJA;aAAM,CAAC,GAAAiN,kBAAA,CAC9C9I,KAAK,CAAC3F,GAAG,CAAC,UAAA+F,IAAI,EAAA;cAAA,OAAIA,IAAI,CAACrG,GAAG;YAAA,CAAA,CAAC,CAAA,CAAA;AAAA4vB,YAAAA,QAAA,CAAA9C,CAAA,GAAA,CAAA;YAAA,OAEpBwC,QAAQ,CAACgC,KAAK,CAAC;AAAA,UAAA,KAAA,CAAA;YAAA,IAAA1B,QAAA,CAAAhC,CAAA,EAAA;AAAAgC,cAAAA,QAAA,CAAA9C,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YAAA,OAAA8C,QAAA,CAAA/B,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAErBxR,IAAI,GAAGoU,wBAAwB,GACjC;cACEzhB,IAAI,EAAErV,mBAAmB,CAACU,SAAS;AACnCwgB,cAAAA,IAAI,EAAE;AAAEta,gBAAAA,KAAK,EAALA,KAAK;gBAAEwa,MAAM,EAAEpgB,eAAe,CAACU;AAAiB;aACzD,GACD6gB,eAAe,CAAC;AAAE9Z,cAAAA,MAAM,EAANA,MAAM;AAAE8G,cAAAA,IAAI,EAAJA,IAAI;AAAE3I,cAAAA,KAAK,EAALA;AAAM,aAAC,CAAC;YAE5C,IAAI8b,IAAI,EAAE3B,QAAQ,CAAC2B,IAAI,CAAC,CAAC,KACpBrB,SAAS,EAAE;AAAC,UAAA,KAAA,CAAA;YAAA,OAAA4U,QAAA,CAAA/B,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAA2B,OAAA,CAAA;IAAA,CAClB,CAAA,CAAA;AAAA,IAAA,OAAA,SAlBK6B,cAAcA,GAAA;AAAA,MAAA,OAAA9uB,KAAA,CAAA8Y,KAAA,CAAA,IAAA,EAAA5N,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAkBnB;AAED8jB,EAAAA,UAAU,CAACC,SAAS,CAAA,UAAA,CAAS,CAACC,QAAQ,EAAEJ,cAAc,EAAE;AAAEzjB,IAAAA,IAAI,EAAE;AAAS,GAAC,CAAC;EAE3E,oBACEpN,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,8BAA8B;QAAAR,QAAA,EAAA,cAC3Ce,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;AAAAhW,UAAAA,QAAA,EAC9Ckb;AAAK,SACI,CAAC,EACZnR,cAAc,iBACbhJ,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;AAAAhW,UAAAA,QAAA,EACtC+J;AAAc,SACL,CACb,EACAioB,UAAU,iBACTjxB,GAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,gBAAgB;UAAAR,QAAA,eAC7Be,GAAA,CAAC+qB,KAAK,EAAA;AACJsH,YAAAA,UAAU,EAAC,aAAa;AACxBnb,YAAAA,WAAW,EAAErR,CAAC,CAAC,sCAAsC,CAAE;AACvDwf,YAAAA,MAAM,eAAErlB,GAAA,CAACsyB,MAAM,IAAE,CAAE;AACnBtd,YAAAA,IAAI,EAAC,OAAO;AACZ1d,YAAAA,KAAK,EAAEg0B,UAAW;AAClB1U,YAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;AAAA,cAAA,OAAIqwB,aAAa,CAACrwB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,YAAA;WACrD;AAAC,SACC,CACN;OACE;AAAC,KACM,CAAC,eACf0I,GAAA,CAACmyB,KAAK,CAACI,IAAI,EAAA;AAAAtzB,MAAAA,QAAA,eACTgC,IAAA,CAAA,KAAA,EAAA;AAAK9C,QAAAA,GAAG,EAAEyyB,OAAQ;QAAA3xB,QAAA,EAAA,CACfujB,cAAc,iBACbxiB,GAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,MAAM;UAAAR,QAAA,eACnBe,GAAA,CAACwyB,YAAY,EAAA;AACXC,YAAAA,OAAO,EAAEjQ,cAAe;AACxBsI,YAAAA,aAAa,EAAEzb;WAChB;AAAC,SACC,CACN,EACA0hB,KAAK,gBACJ/wB,GAAA,CAAC0yB,SAAS,EAAA;AACFlsB,UAAAA,MAAM,EAANA,MAAM;AAAExF,UAAAA,KAAK,EAALA,KAAK;AAAEuB,UAAAA,IAAI,EAAJA,IAAI;UACzBowB,eAAe,EAAA,IAAA;AACf/J,UAAAA,IAAI,EAAE/iB,CAAC,CAAC,0CAA0C,CAAE;AACpDilB,UAAAA,aAAa,EAAEzb,UAAW;AAC1BujB,UAAAA,oBAAoB,EAAE;SACvB,CAAC,IAAAjC,iBAAA,GAEDK,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAG;AAClBzuB,UAAAA,IAAI,EAAJA,IAAI;AACJiE,UAAAA,MAAM,EAANA,MAAM;AACNhE,UAAAA,MAAM,EAAE6M,UAAU;AAClBic,UAAAA,UAAU,EAAVA;SACD,CAAC,cAAAqF,iBAAA,KAAA,MAAA,GAAAA,iBAAA,gBACA3wB,GAAA,CAACorB,kBAAkB,EAAA;AACX5kB,UAAAA,MAAM,EAANA,MAAM;AAAEmiB,UAAAA,iBAAiB,EAAjBA,iBAAiB;AAAEpmB,UAAAA,IAAI,EAAJA,IAAI;AAAE+oB,UAAAA,UAAU,EAAVA,UAAU;AACjD9oB,UAAAA,MAAM,EAAE6M;AAAW,SACpB,CAEJ;OACE;AAAC,KACI,CAAC,eACbrP,GAAA,CAACmyB,KAAK,CAACU,MAAM,EAAA;MAAA5zB,QAAA,eACXe,GAAA,CAAC8U,MAAM,EAAA;AACL,QAAA,aAAA,EAAY,iBAAiB;AAC7Bzd,QAAAA,KAAK,EAAEwO,CAAC,CAAC,6BAA6B,CAAE;AACxCmP,QAAAA,IAAI,EAAC,IAAI;AACTxV,QAAAA,OAAO,EAAEsyB;OACV;AAAC,KACU,CAAC;AAAA,GACf,CAAC;AAEP,CAAC;;AC9LD,IAAMgB,SAAS,GAAG,SAAZA,SAASA,CAAA9zB,IAAA,EAAmB;AAAA,EAAA,IAAAsR,aAAA;AAAA,EAAA,IAAbzN,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;AACzB,EAAA,IAAAwR,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA0e,aAAA,GAAsB7I,YAAY,CAAC7Y,MAAM,CAAC;IAAlCoZ,SAAS,GAAAsI,aAAA,CAATtI,SAAS;AACjB,EAAA,IAAAN,iBAAA,GAAyDC,gBAAgB,EAAE;IAAnEC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEiN,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;IAAEiK,YAAY,GAAApX,iBAAA,CAAZoX,YAAY;AACpD,EAAA,IAAMnC,OAAO,GAAGxyB,MAAM,CAAC,IAAI,CAAC;AAE5B,EAAA,IAAMmE,IAAI,GAAG0Z,SAAS,CAAC1iB,KAAK;EAC5B,IAAAy5B,SAAA,GAAoBC,QAAQ,CAAA,EAAA,CAAA7xB,MAAA,CAAImB,IAAI,WAAQ,CAAC;IAAA2wB,UAAA,GAAA91B,cAAA,CAAA41B,SAAA,EAAA,CAAA,CAAA;IAApC17B,KAAK,GAAA47B,UAAA,CAAA,CAAA,CAAA,CAAL57B,KAAK;AAEd,EAAA,IAAMkC,KAAK,GAAGwjB,gBAAgB,CAAA,CAAA1M,aAAA,GAACzN,MAAM,CAACtJ,KAAK,cAAA+W,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAc9W,KAAK,CAAC;EACnD,IAAM25B,WAAW,GAAG3tB,UAAU,CAAChM,KAAK,CAAC,GAAGA,KAAK,GAAGuD,mBAAmB;AAEnE6yB,EAAAA,iBAAiB,CAAA,EAAA,CAAAxuB,MAAA,CAAImB,IAAI,WAAQ,CAAC;AAElClE,EAAAA,SAAS,CAAC,YAAM;IACd,IAAI,CAAA/G,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEA,KAAK,MAAK6I,SAAS,EAAE;IAEhC,IAAI4yB,YAAY,IAAA3xB,MAAA,CAAImB,IAAI,EAAA,cAAA,CAAc,CAAC,CAACsmB,OAAO,EAAE;IACjDC,eAAe,CAAA,EAAA,CAAA1nB,MAAA,CAAImB,IAAI,mBAAgB,IAAI,EAAE,KAAK,CAAC;AACnD;EACF,CAAC,EAAE,CAACjL,KAAK,KAAA,IAAA,IAALA,KAAK,uBAALA,KAAK,CAAEA,KAAK,CAAC,CAAC;AAElB+G,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIsG,OAAO,CAACrN,KAAK,IAAI,EAAE,CAAC,EAAE;MAAA,IAAA87B,oBAAA,EAAAC,aAAA;AACxBxX,MAAAA,aAAa,CAAA,EAAA,CAAAza,MAAA,CAAImB,IAAI,EAAA,QAAA,CAAA,EAAU;AAC7BjL,QAAAA,KAAK,EAAEO,mBAAmB;QAC1BkV,IAAI,EAAA,CAAAqmB,oBAAA,GAAA,CAAAC,aAAA,GAAEF,WAAW,CAAC,CAAC,CAAC,MAAA,IAAA,IAAAE,aAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,aAAA,CAAgB/7B,KAAK,MAAA,IAAA,IAAA87B,oBAAA,KAAA,MAAA,GAAAA,oBAAA,GAAIr2B,mBAAmB,CAAC,CAAC,CAAC,CAACzF;AACxD,OAAC,CAAC;AACJ,IAAA;AACA;EACF,CAAC,EAAE,EAAE,CAAC;AAEN+G,EAAAA,SAAS,CAAC,YAAM;AAAA,IAAA,IAAAozB,gBAAA;AACd,IAAA,IAAMhS,KAAK,GAAA,CAAAgS,gBAAA,GAAGb,OAAO,CAACpyB,OAAO,MAAA,IAAA,IAAAizB,gBAAA,uBAAfA,gBAAA,CAAiBC,aAAa,CAAC,OAAO,CAAC;AACrD;IACA,IAAIjS,KAAK,EAAEyF,UAAU,CAAC,YAAA;AAAA,MAAA,OAAMzF,KAAK,CAACkS,KAAK,EAAE;AAAA,IAAA,CAAA,EAAE,CAAC,CAAC;EAC/C,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE1wB,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,uBAAuB;QAAAR,QAAA,EAAA,cACpCe,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;UAAAhW,QAAA,EAC9C4G,CAAC,CAAC,4BAA4B;AAAC,SACtB,CAAC,eACb7F,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;UAAAhW,QAAA,EACtC4G,CAAC,CAAC,8BAA8B;AAAC,SACxB,CAAC;OACV;AAAC,KACM,CAAC,eACf7F,GAAA,CAACmyB,KAAK,CAACI,IAAI,EAAA;AAAAtzB,MAAAA,QAAA,eACTgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,yBAAyB;AAACtB,QAAAA,GAAG,EAAEyyB,OAAQ;QAAA3xB,QAAA,EAAA,cACpDe,GAAA,CAAC4rB,UAAU,EAAA;AAAC3W,UAAAA,OAAO,EAAC,OAAO;AAACqe,UAAAA,MAAM,EAAC,QAAQ;UAAAr0B,QAAA,EACxC4G,CAAC,CAAC,4BAA4B;SACrB,CAAC,eACb5E,IAAA,CAAA,KAAA,EAAA;AAAKxB,UAAAA,SAAS,EAAC,0BAA0B;AAAAR,UAAAA,QAAA,gBAEvCe,GAAA,CAAA,KAAA,EAAA;AAAKP,YAAAA,SAAS,EAAC,MAAM;YAAAR,QAAA,eACnBe,GAAA,CAAC+qB,OAAK,EAAA;AACJsH,cAAAA,UAAU,EAAC,aAAa;AACxB1kB,cAAAA,GAAG,EAAE4lB,eAAgB;AACrBC,cAAAA,GAAG,EAAEC,eAAgB;AACrBlxB,cAAAA,IAAI,EAAA,EAAA,CAAAnB,MAAA,CAAKmB,IAAI,EAAA,cAAA,CAAe;AAC5B2U,cAAAA,WAAW,EAAErR,CAAC,CAAC,oCAAoC,CAAE;AACrDmP,cAAAA,IAAI,EAAC,OAAO;AACZvF,cAAAA,IAAI,EAAC;aACN;AAAC,WACC,CAAC,eACNzP,GAAA,CAAC0qB,QAAM,EAAA;AACL2H,YAAAA,UAAU,EAAC,YAAY;AACvBqB,YAAAA,YAAY,EAAEp8B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEyV,IAAK;AAC1BxK,YAAAA,IAAI,EAAA,EAAA,CAAAnB,MAAA,CAAKmB,IAAI,EAAA,aAAA,CAAc;AAC3BzJ,YAAAA,OAAO,EAAEq6B,WAAY;AACrBne,YAAAA,IAAI,EAAC,OAAO;AACZ4B,YAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAE+c,QAAQ,EAAA;AAAA,cAAA,OAChB9X,aAAa,CAAA,EAAA,CAAAza,MAAA,CAAImB,IAAI,EAAA,aAAA,CAAA,EAAeoxB,QAAQ,CAAC;AAAA,YAAA;AAC9C,WACF,CAAC;AAAA,SACC,CAAC;OACH;AAAC,KACI,CAAC;AAAA,GACb,CAAC;AAEP,CAAC;;ACtGM,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAGt8B,KAAK,EAAA;AAAA,EAAA,OAC3BA,KAAK,KAAK,EAAE,IAAIkN,KAAK,CAAClN,KAAK,CAAC,GAAG,IAAI,GAAGwV,MAAM,CAACxV,KAAK,CAAC;AAAA,CAAA;AAE9C,IAAMu8B,KAAK,GAAG,SAARA,KAAKA,CAAA70B,IAAA,EAA4B;AAAA,EAAA,IAAtB1H,KAAK,GAAA0H,IAAA,CAAL1H,KAAK;IAAEk8B,GAAG,GAAAx0B,IAAA,CAAHw0B,GAAG;IAAE7lB,GAAG,GAAA3O,IAAA,CAAH2O,GAAG;EACrC,IAAImP,IAAI,GAAGxlB,KAAK;AAChB,EAAA,IAAI,CAACkN,KAAK,CAACgvB,GAAG,CAAC,EAAE1W,IAAI,GAAGgX,IAAI,CAACnmB,GAAG,CAAC6lB,GAAG,EAAE1W,IAAI,CAAC;AAE3C,EAAA,IAAI,CAACtY,KAAK,CAACmJ,GAAG,CAAC,EAAEmP,IAAI,GAAGgX,IAAI,CAACN,GAAG,CAAC7lB,GAAG,EAAEmP,IAAI,CAAC;AAE3C,EAAA,OAAOA,IAAI;AACb,CAAC;AAEM,IAAMiX,MAAM,GAAG,SAATA,MAAMA,CAAGz8B,KAAK,EAAA;AAAA,EAAA,OACzBA,KAAK,KAAK,EAAE,IAAIkN,KAAK,CAAClN,KAAK,CAAC,GAAG,EAAE,GAAGgK,MAAM,CAAChK,KAAK,CAAC;AAAA,CAAA;;ACLnD,IAAM08B,aAAa,GAAG,SAAhBA,aAAaA,CAAAh1B,IAAA,EASb;AAAA,EAAA,IARJ1H,KAAK,GAAA0H,IAAA,CAAL1H,KAAK;IACLsf,QAAQ,GAAA5X,IAAA,CAAR4X,QAAQ;IACRlX,UAAU,GAAAV,IAAA,CAAVU,UAAU;IACVrI,KAAK,GAAA2H,IAAA,CAAL3H,KAAK;IAAA48B,QAAA,GAAAj1B,IAAA,CACLw0B,GAAG;AAAHA,IAAAA,GAAG,GAAAS,QAAA,KAAA,MAAA,GAAGr8B,iBAAiB,GAAAq8B,QAAA;IACvBtmB,GAAG,GAAA3O,IAAA,CAAH2O,GAAG;IACHjD,QAAQ,GAAA1L,IAAA,CAAR0L,QAAQ;IACRigB,KAAK,GAAA3rB,IAAA,CAAL2rB,KAAK;AAEL,EAAA,IAAAtW,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA5I,SAAA,GAA0BC,QAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAjCi3B,IAAAA,KAAK,GAAA/2B,UAAA,CAAA,CAAA,CAAA;AAAEg3B,IAAAA,QAAQ,GAAAh3B,UAAA,CAAA,CAAA,CAAA;EAEtB,IAAMi3B,OAAO,GAAGF,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAALA,KAAK,GAAIH,MAAM,CAACz8B,KAAK,CAAC;AAEtC,EAAA,IAAM+8B,MAAM,GAAG,SAATA,MAAMA,CAAG9vB,GAAG,EAAI;IACpB4vB,QAAQ,CAAC5vB,GAAG,CAAC;AACbqS,IAAAA,QAAQ,CAACrS,GAAG,KAAK,EAAE,GAAIivB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,GAAHA,GAAG,GAAI,CAAC,GAAIK,KAAK,CAAC;AAAEv8B,MAAAA,KAAK,EAAEwV,MAAM,CAACvI,GAAG,CAAC;AAAEivB,MAAAA,GAAG,EAAHA,GAAG;AAAE7lB,MAAAA,GAAG,EAAHA;AAAI,KAAC,CAAC,CAAC;EAC7E,CAAC;AAED,EAAA,IAAM7G,IAAI,GAAG,SAAPA,IAAIA,CAAGwtB,KAAK,EAAI;IACpBH,QAAQ,CAAC,IAAI,CAAC;IACd,IAAMrD,IAAI,GAAGhkB,MAAM,CAACynB,QAAQ,CAACX,QAAQ,CAACt8B,KAAK,CAAC,CAAC,GACzCs8B,QAAQ,CAACt8B,KAAK,CAAC,GACdk8B,GAAG,aAAHA,GAAG,KAAA,MAAA,GAAHA,GAAG,GAAI,CAAE;IACd5c,QAAQ,CAACid,KAAK,CAAC;MAAEv8B,KAAK,EAAEw5B,IAAI,GAAGwD,KAAK;AAAEd,MAAAA,GAAG,EAAHA,GAAG;AAAE7lB,MAAAA,GAAG,EAAHA;AAAI,KAAC,CAAC,CAAC;EACpD,CAAC;AAED,EAAA,oBACE3N,GAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,YAAY;IAAAR,QAAA,eACzBe,GAAA,CAAC+qB,KAAK,EAAA;AACEJ,MAAAA,KAAK,EAALA,KAAK;AAAEtzB,MAAAA,KAAK,EAALA,KAAK;AAAEm8B,MAAAA,GAAG,EAAHA,GAAG;AAAE9oB,MAAAA,QAAQ,EAARA,QAAQ;MACjC8pB,SAAS,EAAA,IAAA;AACTnC,MAAAA,UAAU,EAAE3yB,UAAW;AACvB+P,MAAAA,IAAI,EAAC,QAAQ;AACbnY,MAAAA,KAAK,EAAE88B,OAAQ;AACfK,MAAAA,MAAM,eACJxzB,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,qBAAqB;AAAAR,QAAAA,QAAA,gBAClCe,GAAA,CAAA,QAAA,EAAA;UACE,YAAA,EAAY6F,CAAC,CAAC,kCAAkC,CAAE;AAClDpG,UAAAA,SAAS,EAAC,gBAAgB;AAC1B,UAAA,aAAA,EAAY,kBAAkB;AAC9BW,UAAAA,QAAQ,EAAErI,cAAe;AACzB0X,UAAAA,IAAI,EAAC,QAAQ;UACbjQ,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,YAAA,OAAQsH,IAAI,CAACrP,aAAa,CAACC,SAAS,CAAC;UAAA,CAAC;AAAAuH,UAAAA,QAAA,eAE7Ce,GAAA,CAAC00B,EAAE,EAAA,EAAE;SACC,CAAC,eACT10B,GAAA,CAAA,QAAA,EAAA;UACE,YAAA,EAAY6F,CAAC,CAAC,kCAAkC,CAAE;AAClDpG,UAAAA,SAAS,EAAC,gBAAgB;AAC1B,UAAA,aAAA,EAAY,kBAAkB;AAC9BW,UAAAA,QAAQ,EAAErI,cAAe;AACzB0X,UAAAA,IAAI,EAAC,QAAQ;UACbjQ,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,YAAA,OAAQsH,IAAI,CAACrP,aAAa,CAACE,SAAS,CAAC;UAAA,CAAC;AAAAsH,UAAAA,QAAA,eAE7Ce,GAAA,CAAC20B,IAAI,EAAA,EAAE;AAAC,SACF,CAAC;AAAA,OACN,CACN;MACD/J,MAAM,EAAE,SAARA,MAAMA,GAAA;QAAA,OAAQuJ,QAAQ,CAAC,IAAI,CAAC;MAAA,CAAC;AAC7Bvd,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;AAAA,QAAA,OAAI6zB,MAAM,CAAC7zB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;MAAA,CAAC;AAC9Cs9B,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEp0B,KAAK,EAAA;AAAA,QAAA,OAAIA,KAAK,CAAC+mB,MAAM,CAACsN,MAAM,EAAE;AAAA,MAAA;KACxC;AAAC,GACC,CAAC;AAEV,CAAC;;AC/DD,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA91B,IAAA,EAAmB;AAAA,EAAA,IAAb6D,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;AAC5B,EAAA,IAAAwR,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GAAyDC,gBAAgB,EAAE;IAAnEC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEiN,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;IAAEiK,YAAY,GAAApX,iBAAA,CAAZoX,YAAY;AACpD,EAAA,IAAAxO,aAAA,GAA4B7I,YAAY,CAAC7Y,MAAM,CAAC;IAAxC8G,IAAI,GAAA4a,aAAA,CAAJ5a,IAAI;IAAEsS,SAAS,GAAAsI,aAAA,CAATtI,SAAS;AAEvB,EAAA,IAAApO,eAAA,GAAgCjB,cAAc,CAACjD,IAAI,CAAC0D,QAAQ,CAAC;IAA9C0nB,MAAM,GAAAlnB,eAAA,CAAbvW,KAAK;IAAUyV,IAAI,GAAAc,eAAA,CAAJd,IAAI;AAC3B,EAAA,IAAMsE,IAAI,GAAA,EAAA,CAAAjQ,MAAA,CAAM6a,SAAS,CAAC5O,QAAQ,EAAA,QAAA,CAAQ;AAC1C,EAAA,IAAA2lB,SAAA,GAA+BC,QAAQ,CAAC5hB,IAAI,CAAC;IAAA6hB,UAAA,GAAA91B,cAAA,CAAA41B,SAAA,EAAA,CAAA,CAAA;AAAAgC,IAAAA,WAAA,GAAA9B,UAAA,CAAA,CAAA,CAAA;IAAlCvI,KAAK,GAAAqK,WAAA,CAALrK,KAAK;IAAE9B,OAAO,GAAAmM,WAAA,CAAPnM,OAAO;AACzB,EAAA,IAAMoM,MAAM,GAAG,SAATA,MAAMA,CAAAjyB,KAAA,EAAA;AAAA,IAAA,IAAM1L,KAAK,GAAA0L,KAAA,CAAL1L,KAAK;MAAQq8B,QAAQ,GAAA3wB,KAAA,CAAd+J,IAAI;AAAA,IAAA,OAC3B8O,aAAa,CAACxK,IAAI,EAAErE,cAAc,CAAC;AAAE1V,MAAAA,KAAK,EAALA,KAAK;AAAEyV,MAAAA,IAAI,EAAE4mB;AAAS,KAAC,CAAC,CAAC;AAAA,EAAA,CAAA;EAEhE/D,iBAAiB,CAACve,IAAI,CAAC;AAEvBhT,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIsL,IAAI,CAAC0D,QAAQ,KAAKlN,SAAS,EAAE;AAEjC,IAAA,IAAI4yB,YAAY,CAAC1hB,IAAI,CAAC,CAACwX,OAAO,EAAE;AAChCC,IAAAA,eAAe,CAACzX,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAClC;AACF,EAAA,CAAC,EAAE,CAAC1H,IAAI,CAAC0D,QAAQ,CAAC,CAAC;EAEnB,oBACEpM,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,uBAAuB;QAAAR,QAAA,EAAA,cACpCe,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;UAAAhW,QAAA,EAC9C4G,CAAC,CAAC,kCAAkC;AAAC,SAC5B,CAAC,eACb7F,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;UAAAhW,QAAA,EACtC4G,CAAC,CAAC,qCAAqC;AAAC,SAC/B,CAAC;OACV;AAAC,KACM,CAAC,eACf7F,GAAA,CAACmyB,KAAK,CAACI,IAAI,EAAA;AAAAtzB,MAAAA,QAAA,eACTgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,yBAAyB;QAAAR,QAAA,EAAA,cACtCe,GAAA,CAAC4rB,UAAU,EAAA;AAAC3W,UAAAA,OAAO,EAAC,OAAO;AAACqe,UAAAA,MAAM,EAAC,QAAQ;UAAAr0B,QAAA,EACxC4G,CAAC,CAAC,2BAA2B;SACpB,CAAC,eACb5E,IAAA,CAAA,KAAA,EAAA;AAAKxB,UAAAA,SAAS,EAAC,0BAA0B;AAAAR,UAAAA,QAAA,gBACvCe,GAAA,CAAA,KAAA,EAAA;AAAKP,YAAAA,SAAS,EAAC,QAAQ;YAAAR,QAAA,eACrBe,GAAA,CAACg0B,aAAa,EAAA;AACZt0B,cAAAA,UAAU,EAAC,WAAW;AACtBirB,cAAAA,KAAK,EAAE9B,OAAO,GAAG8B,KAAK,GAAG,EAAG;AAC5BrzB,cAAAA,KAAK,EAAEy9B,MAAO;AACdne,cAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEtf,KAAK,EAAA;AAAA,gBAAA,OACb29B,MAAM,CAAC;AAAE39B,kBAAAA,KAAK,EAAEA,KAAK,KAAK,EAAE,GAAG,CAAC,GAAGA,KAAK;AAAEyV,kBAAAA,IAAI,EAAJA;AAAK,iBAAC,CAAC;AAAA,cAAA;aAEpD;WACE,CAAC,eACN/M,GAAA,CAAA,KAAA,EAAA;AAAKP,YAAAA,SAAS,EAAC,eAAe;YAAAR,QAAA,eAC5Be,GAAA,CAAC0qB,MAAM,EAAA;AACL2H,cAAAA,UAAU,EAAC,gBAAgB;AAC3B6C,cAAAA,YAAY,EAAE,KAAM;AACpBp8B,cAAAA,OAAO,EAAEvB,eAAgB;AACzBD,cAAAA,KAAK,EAAEyV,IAAK;AACZ6J,cAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAE+c,QAAQ,EAAA;AAAA,gBAAA,OAAIsB,MAAM,CAAC;AAAE39B,kBAAAA,KAAK,EAAEy9B,MAAM;AAAEhoB,kBAAAA,IAAI,EAAE4mB;AAAS,iBAAC,CAAC;AAAA,cAAA;aAChE;AAAC,WACC,CAAC;AAAA,SACH,CAAC;OACH;AAAC,KACI,CAAC;AAAA,GACb,CAAC;AAEP,CAAC;;ACrED,IAAMwB,QAAQ,GAAG,SAAXA,QAAQA,CAAAn2B,IAAA,EAAmB;AAAA,EAAA,IAAb6D,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;AACxB,EAAA,IAAAwR,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA0e,aAAA,GAAsB7I,YAAY,CAAC7Y,MAAM,CAAC;IAAlCoZ,SAAS,GAAAsI,aAAA,CAATtI,SAAS;EAEjB,oBACEhb,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,uBAAuB;QAAAR,QAAA,EAAA,cACpCe,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;UAAAhW,QAAA,EAC9C4G,CAAC,CAAC,mCAAmC;AAAC,SAC7B,CAAC,eACb7F,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;UAAAhW,QAAA,EACtC4G,CAAC,CAAC,iCAAiC;AAAC,SAC3B,CAAC;OACV;AAAC,KACM,CAAC,eACf7F,GAAA,CAACmyB,KAAK,CAACI,IAAI,EAAA;MAAAtzB,QAAA,eACTe,GAAA,CAAC+qB,OAAK,EAAA;QACJyJ,SAAS,EAAA,IAAA;QACT9pB,QAAQ,EAAA,IAAA;AACRrT,QAAAA,KAAK,EAAEwO,CAAC,CAAC,wBAAwB,CAAE;AACnCtD,QAAAA,IAAI,KAAAnB,MAAA,CAAK6a,SAAS,CAAC1Z,IAAI,EAAA,QAAA,CAAS;AAChC2U,QAAAA,WAAW,EAAErR,CAAC,CAAC,uCAAuC,CAAE;AACxDmP,QAAAA,IAAI,EAAC;OACN;AAAC,KACQ,CAAC;AAAA,GACb,CAAC;AAEP,CAAC;;;;AClCD,SAAA,YAAA,GAAA,qKAAA,IAAAoY,CAAA,EAAAvnB,CAAA,EAAAwnB,CAAA,GAAA,UAAA,IAAA,OAAAC,MAAA,GAAAA,MAAA,GAAA,EAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,IAAA,YAAA,EAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,IAAA,eAAA,CAAA,CAAA,SAAAta,EAAAia,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAra,CAAA,EAAA,EAAA,IAAAua,CAAA,GAAAJ,CAAA,IAAAA,CAAA,CAAAK,SAAA,YAAAC,SAAA,GAAAN,CAAA,GAAAM,SAAA,EAAAC,CAAA,GAAAtI,MAAA,CAAAuI,MAAA,CAAAJ,CAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,OAAAI,mBAAA,CAAAF,CAAA,EAAA,SAAA,EAAA,UAAAT,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA,EAAA,IAAAra,CAAA,EAAAua,CAAA,EAAAG,CAAA,EAAAG,CAAA,GAAA,CAAA,EAAAC,CAAA,GAAAT,CAAA,IAAA,EAAA,EAAAU,CAAA,GAAA,KAAA,EAAAC,CAAA,GAAA,EAAAF,CAAA,EAAA,CAAA,EAAAX,CAAA,EAAA,CAAA,EAAAc,CAAA,EAAAjB,CAAA,EAAAkB,CAAA,EAAA3Y,CAAA,EAAAsY,CAAA,EAAAtY,CAAA,CAAA4Y,IAAA,CAAAnB,CAAA,EAAA,CAAA,CAAA,EAAAzX,CAAA,WAAAA,CAAAA,CAAA9P,CAAA,EAAAwnB,CAAA,WAAAja,CAAA,GAAAvN,CAAA,EAAA8nB,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAV,CAAA,EAAAgB,CAAA,CAAAb,CAAA,GAAAF,CAAA,EAAAiB,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,SAAA3Y,EAAA0X,CAAA,EAAAE,CAAA,EAAA,EAAA,KAAAI,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAP,CAAA,EAAA1nB,CAAA,OAAAsoB,CAAA,IAAAF,CAAA,IAAA,CAAAR,CAAA,IAAA5nB,CAAA,GAAAqoB,CAAA,CAAAriB,MAAA,EAAAhG,CAAA,UAAA4nB,CAAA,EAAAra,CAAA,GAAA8a,CAAA,CAAAroB,CAAA,CAAA,EAAA8P,CAAA,GAAAyY,CAAA,CAAAF,CAAA,EAAAM,CAAA,GAAApb,CAAA,KAAAia,CAAA,GAAA,CAAA,GAAA,CAAAI,CAAA,GAAAe,CAAA,KAAAjB,CAAA,MAAAO,CAAA,GAAA1a,CAAA,CAAA,CAAAua,CAAA,GAAAva,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAAua,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAAva,CAAA,CAAA,CAAA,CAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,GAAAga,CAAA,IAAAha,CAAA,CAAA,CAAA,CAAA,IAAAuC,CAAA,KAAA,CAAA8X,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAA1X,CAAA,GAAAvC,CAAA,CAAA,CAAA,CAAA,KAAAua,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAAd,CAAA,EAAAa,CAAA,CAAAb,CAAA,GAAAna,CAAA,CAAA,CAAA,CAAA,IAAAuC,CAAA,GAAA6Y,CAAA,KAAAf,CAAA,GAAAJ,CAAA,GAAA,CAAA,IAAAja,CAAA,CAAA,CAAA,CAAA,GAAAma,CAAA,IAAAA,CAAA,GAAAiB,CAAA,MAAApb,CAAA,CAAA,CAAA,CAAA,GAAAia,CAAA,EAAAja,CAAA,CAAA,CAAA,CAAA,GAAAma,CAAA,EAAAa,CAAA,CAAAb,CAAA,GAAAiB,CAAA,EAAAb,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAF,CAAA,IAAAJ,CAAA,GAAA,CAAA,EAAA,OAAAiB,CAAA,CAAA,CAAA,MAAAH,CAAA,GAAA,IAAA,EAAAZ,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,UAAAE,CAAA,EAAAS,CAAA,EAAAM,CAAA,EAAA,EAAA,IAAAP,CAAA,GAAA,CAAA,EAAA,MAAAQ,SAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,KAAAN,CAAA,UAAAD,CAAA,IAAAvY,CAAA,CAAAuY,CAAA,EAAAM,CAAA,CAAA,EAAAb,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAU,CAAA,EAAA,CAAA3oB,CAAA,GAAA8nB,CAAA,GAAA,CAAA,GAAAP,CAAA,GAAAU,CAAA,KAAA,CAAAK,CAAA,GAAA,EAAA/a,CAAA,KAAAua,CAAA,GAAAA,CAAA,GAAA,CAAA,IAAAA,CAAA,GAAA,CAAA,KAAAS,CAAA,CAAAb,CAAA,GAAA,EAAA,CAAA,EAAA5X,CAAA,CAAAgY,CAAA,EAAAG,CAAA,CAAA,IAAAM,CAAA,CAAAb,CAAA,GAAAO,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAG,CAAA,GAAA,CAAA,EAAA7a,CAAA,EAAA,EAAA,IAAAua,CAAA,KAAAF,CAAA,GAAA,MAAA,CAAA,EAAA5nB,CAAA,GAAAuN,CAAA,CAAAqa,CAAA,WAAA5nB,CAAA,GAAAA,CAAA,CAAAnH,IAAA,CAAA0U,CAAA,EAAA0a,CAAA,CAAA,CAAA,EAAA,MAAAW,SAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,IAAA,CAAA5oB,CAAA,CAAA6oB,IAAA,EAAA,OAAA7oB,CAAA,CAAA,CAAAioB,CAAA,GAAAjoB,CAAA,CAAAvO,KAAA,EAAAq2B,CAAA,GAAA,CAAA,KAAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,KAAAA,CAAA,KAAA9nB,CAAA,GAAAuN,CAAA,CAAA,QAAA,CAAA,CAAA,IAAAvN,CAAA,CAAAnH,IAAA,CAAA0U,CAAA,CAAA,EAAAua,CAAA,SAAAG,CAAA,GAAAW,SAAA,CAAA,mCAAA,GAAAhB,CAAA,GAAA,UAAA,CAAA,EAAAE,CAAA,GAAA,CAAA,CAAA,CAAA,CAAAva,CAAA,GAAAga,CAAA,CAAA,CAAA,CAAA,MAAA,IAAA,CAAAvnB,CAAA,IAAAsoB,CAAA,GAAAC,CAAA,CAAAb,CAAA,GAAA,CAAA,IAAAO,CAAA,GAAAT,CAAA,CAAA3uB,IAAA,CAAA6uB,CAAA,EAAAa,CAAA,CAAA,MAAAE,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA,OAAAzoB,CAAA,EAAA,EAAAuN,CAAA,GAAAga,CAAA,EAAAO,CAAA,GAAA,CAAA,EAAAG,CAAA,GAAAjoB,CAAA,CAAA,CAAA,CAAA,SAAA,EAAAooB,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA32B,KAAA,EAAAuO,CAAA,EAAA6oB,IAAA,EAAAP,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAd,CAAA,EAAAI,CAAA,EAAAra,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA0a,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAQ,CAAA,GAAA,EAAA,CAAA,CAAA,SAAAT,SAAAA,eAAAc,iBAAAA,GAAA,CAAA,CAAA,CAAA,SAAAC,0BAAAA,GAAA,CAAA,CAAA,CAAA/oB,CAAA,GAAA2f,MAAA,CAAAqJ,cAAA,CAAA,CAAA,IAAAlB,CAAA,GAAA,EAAA,CAAAJ,CAAA,CAAA,GAAA1nB,CAAA,CAAAA,CAAA,IAAA0nB,CAAA,CAAA,EAAA,CAAA,CAAA,IAAAS,mBAAA,CAAAnoB,CAAA,GAAA,EAAA,EAAA0nB,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAA1nB,CAAA,GAAAioB,CAAA,GAAAc,0BAAA,CAAAhB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAApI,MAAA,CAAAuI,MAAA,CAAAJ,CAAA,CAAA,CAAA,CAAA,SAAAM,CAAAA,CAAAb,CAAA,WAAA5H,MAAA,CAAAsJ,cAAA,GAAAtJ,MAAA,CAAAsJ,cAAA,CAAA1B,CAAA,EAAAwB,0BAAA,CAAA,IAAAxB,CAAA,CAAA2B,SAAA,GAAAH,0BAAA,EAAAZ,mBAAA,CAAAZ,CAAA,EAAAK,CAAA,EAAA,mBAAA,CAAA,CAAA,EAAAL,CAAA,CAAAQ,SAAA,GAAApI,MAAA,CAAAuI,MAAA,CAAAD,CAAA,CAAA,EAAAV,CAAA,CAAA,CAAA,CAAA,CAAA,OAAAuB,iBAAA,CAAAf,SAAA,GAAAgB,0BAAA,EAAAZ,mBAAA,CAAAF,CAAA,iBAAAc,0BAAA,CAAA,EAAAZ,mBAAA,CAAAY,0BAAA,EAAA,aAAA,EAAAD,iBAAA,CAAA,EAAAA,iBAAA,CAAAK,WAAA,GAAA,mBAAA,EAAAhB,mBAAA,CAAAY,0BAAA,EAAAnB,CAAA,EAAA,mBAAA,CAAA,EAAAO,mBAAA,CAAAF,CAAA,CAAA,EAAAE,mBAAA,CAAAF,CAAA,EAAAL,CAAA,EAAA,WAAA,CAAA,EAAAO,mBAAA,CAAAF,CAAA,EAAAP,CAAA,EAAA,YAAA,EAAA,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,EAAAS,mBAAA,CAAAF,CAAA,8DAAAX,YAAA,GAAA,SAAAA,YAAAA,GAAA,EAAA,OAAA,EAAA8B,CAAA,EAAA7b,CAAA,EAAA8b,CAAA,EAAAjB,CAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA;AAAA,SAAAD,mBAAAA,CAAAZ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,EAAA,EAAA,IAAAuN,CAAA,GAAAoS,MAAA,CAAA2J,cAAA,CAAA,CAAA,IAAA,EAAA/b,CAAA,uBAAAga,CAAA,EAAA,EAAAha,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA4a,mBAAA,GAAA,SAAAoB,mBAAAhC,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,EAAA,EAAA,SAAA4nB,CAAAA,CAAAJ,CAAA,EAAAE,CAAA,IAAAS,mBAAA,CAAAZ,CAAA,EAAAC,CAAA,YAAAD,CAAA,EAAA,EAAA,OAAA,IAAA,CAAAiC,OAAA,CAAAhC,CAAA,EAAAE,CAAA,EAAAH,CAAA,SAAAC,CAAA,GAAAja,CAAA,GAAAA,CAAA,CAAAga,CAAA,EAAAC,CAAA,IAAA/1B,KAAA,EAAAi2B,CAAA,EAAA+B,UAAA,GAAAzpB,CAAA,EAAA0pB,YAAA,EAAA,CAAA1pB,CAAA,EAAA2pB,QAAA,EAAA,CAAA3pB,CAAA,MAAAunB,CAAA,CAAAC,CAAA,CAAA,GAAAE,CAAA,IAAAE,CAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAAA,CAAA,cAAAA,CAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAAO,mBAAA,CAAAZ,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAA1nB,CAAA,CAAA,CAAA,CAAA;AAuCA,IAAMuvB,WAAW,GAAG,SAAdA,WAAWA,CAAAp2B,IAAA,EAQX;AAAA,EAAA,IAPJ6D,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IACN2Y,MAAM,GAAAxc,IAAA,CAANwc,MAAM;IACNxa,KAAK,GAAAhC,IAAA,CAALgC,KAAK;IACLuY,OAAO,GAAAva,IAAA,CAAPua,OAAO;IAAA8b,iBAAA,GAAAr2B,IAAA,CACPs2B,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,iBAAA;IAAAE,kBAAA,GAAAv2B,IAAA,CACnB6kB,aAAa;AAAbA,IAAAA,aAAa,GAAA0R,kBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,kBAAA;IAAAC,aAAA,GAAAx2B,IAAA,CACrB+wB,QAAQ;AAARA,IAAAA,QAAQ,GAAAyF,aAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,aAAA;AAEf,EAAA,IAAAnhB,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GAA0BC,gBAAgB,EAAE;IAApCC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;AACrB,EAAA,IAAA0I,aAAA,GACE7I,YAAY,CAAC7Y,MAAM,CAAC;IADd8G,IAAI,GAAA4a,aAAA,CAAJ5a,IAAI;IAAEsS,SAAS,GAAAsI,aAAA,CAATtI,SAAS;IAAE9K,WAAW,GAAAoT,aAAA,CAAXpT,WAAW;IAAEa,YAAY,GAAAuS,aAAA,CAAZvS,YAAY;IAAEM,gBAAgB,GAAAiS,aAAA,CAAhBjS,gBAAgB;AAEpE,EAAA,IAAA8R,eAAA,GAAgCxJ,cAAc,CAAC/X,MAAM,CAAC;IAA9CsY,QAAQ,GAAAiJ,eAAA,CAARjJ,QAAQ;IAAEM,SAAS,GAAA2I,eAAA,CAAT3I,SAAS;AAC3B,EAAA,IAAAZ,gBAAA,GAAAC,eAAA,CAAAC,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQya,QAAAA,iBAAiB,EAAAza,KAAA,CAAA,mBAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAAjBya,iBAAiB,GAAA5a,gBAAA,CAAjB4a,iBAAiB;AAEzB,EAAA,IAAAx4B,SAAA,GAAoCC,QAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCquB,IAAAA,UAAU,GAAAnuB,UAAA,CAAA,CAAA,CAAA;AAAE0zB,IAAAA,aAAa,GAAA1zB,UAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAMu4B,SAAS,GAAGt3B,MAAM,CAAC,IAAI,CAAC;;AAE9B;AACAC,EAAAA,SAAS,CAAC,YAAA;IAAA,OAAM,YAAA;MAAA,OAAMo3B,iBAAiB,CAAC,IAAI,CAAC;AAAA,IAAA,CAAA;AAAA,EAAA,CAAA,EAAE,EAAE,CAAC;AAElDp3B,EAAAA,SAAS,CAAC,YAAM;AAAA,IAAA,IAAAs3B,kBAAA;IACd,CAAAA,kBAAA,GAAAD,SAAS,CAACl3B,OAAO,MAAA,IAAA,IAAAm3B,kBAAA,KAAA,MAAA,IAAA,CAAAA,kBAAA,GAAjBA,kBAAA,CAAmBjE,aAAa,CAAC,OAAO,CAAC,MAAA,IAAA,IAAAiE,kBAAA,eAAzCA,kBAAA,CAA2ChE,KAAK,EAAE;EACpD,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAiE,QAAA,GAAqE5Z,OAAO,CAC1E,YAAA;AAAA,MAAA,OAAM2E,aAAa,CAAC;AAAEnF,QAAAA,MAAM,EAANA,MAAM;AAAE3Y,QAAAA,MAAM,EAANA,MAAM;AAAE8G,QAAAA,IAAI,EAAJA,IAAI;AAAE3I,QAAAA,KAAK,EAALA,KAAK;AAAEuY,QAAAA,OAAO,EAAPA;AAAQ,OAAC,CAAC;IAAA,CAAA,EAC7D,CAACiC,MAAM,EAAE3Y,MAAM,EAAE8G,IAAI,EAAE3I,KAAK,EAAEuY,OAAO,CACvC,CAAC;IAHOY,KAAK,GAAAyb,QAAA,CAALzb,KAAK;IAAE4G,QAAQ,GAAA6U,QAAA,CAAR7U,QAAQ;IAAE7B,KAAK,GAAA0W,QAAA,CAAL1W,KAAK;IAAEpmB,OAAO,GAAA88B,QAAA,CAAP98B,OAAO;IAAEooB,cAAc,GAAA0U,QAAA,CAAd1U,cAAc;IAAEF,OAAO,GAAA4U,QAAA,CAAP5U,OAAO;AAKhE,EAAA,IAAMuC,OAAO,GAAG;AACdpS,IAAAA,WAAW,EAAXA,WAAW;AACXa,IAAAA,YAAY,EAAZA,YAAY;AACZM,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBuJ,IAAAA,aAAa,EAAbA,aAAa;AACbI,IAAAA,SAAS,EAATA;GACD;AAED,EAAA,IAAMgV,UAAU,GACd,CAAApuB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEgzB,UAAU,MAAK,KAAK,IAAI/8B,OAAO,CAAC+S,MAAM,IAAItP,qBAAqB;EACzE,IAAMivB,IAAI,GAAGF,UAAU,CAAC9pB,IAAI,EAAE,CAACU,WAAW,EAAE;EAC5C,IAAM+pB,QAAQ,GAAGjQ,OAAO,CACtB,YAAA;AAAA,IAAA,OACEwP,IAAI,GACA1yB,OAAO,CAAC2Y,MAAM,CAAC,UAAAjP,MAAM,EAAA;MAAA,OAAIA,MAAM,CAACnL,KAAK,CAAC6K,WAAW,EAAE,CAACP,QAAQ,CAAC6pB,IAAI,CAAC;AAAA,IAAA,CAAA,CAAC,GACnE1yB,OAAO;AAAA,EAAA,CAAA,EACb,CAACA,OAAO,EAAE0yB,IAAI,CAChB,CAAC;EACD,IAAMrO,MAAM,GAAGnB,OAAO,CAAC,YAAA;IAAA,OAAMkB,eAAe,CAAC+O,QAAQ,CAAC;EAAA,CAAA,EAAE,CAACA,QAAQ,CAAC,CAAC;AACnE;AACA,EAAA,IAAM/I,UAAU,GAAG,SAAbA,UAAUA,CAAG5rB,KAAK,EAAA;AAAA,IAAA,OAAI4pB,cAAc,CAACvf,QAAQ,CAACrK,KAAK,CAAC;AAAA,EAAA,CAAA;AAE1D,EAAA,IAAMw+B,YAAY,GAAG,SAAfA,YAAYA,CAAGx+B,KAAK,EAAI;IAC5Bm+B,iBAAiB,CAAC,IAAI,CAAC;IACvB,IAAMpiB,MAAM,GAAGiQ,SAAS,CAAC;AACvB9H,MAAAA,MAAM,EAANA,MAAM;AACN3Y,MAAAA,MAAM,EAANA,MAAM;AACN8G,MAAAA,IAAI,EAAJA,IAAI;AACJ3I,MAAAA,KAAK,EAALA,KAAK;AACLuY,MAAAA,OAAO,EAAPA,OAAO;AACPjiB,MAAAA,KAAK,EAALA,KAAK;AACLisB,MAAAA,OAAO,EAAPA;AACF,KAAC,CAAC;AACF,IAAA,IAAIlQ,MAAM,KAAK,OAAO,EAAEoI,SAAS,EAAE;EACrC,CAAC;AAED,EAAA,IAAMsa,cAAc,GAAG,SAAjBA,cAAcA,CAAGhZ,WAAW,EAAA;AAAA,IAAA,OAChCmE,cAAc,CAACvf,QAAQ,CAACob,WAAW,CAAC,GAChCmE,cAAc,CAACzP,MAAM,CAAC0a,KAAK,CAACpP,WAAW,CAAC,CAAC,GAAA,EAAA,CAAA3b,MAAA,CAAAoO,kBAAA,CACrC0R,cAAc,CAACzP,MAAM,CAACC,OAAO,CAAC,CAAA,EAAA,CAAEqL,WAAW,CAAA,CAAC;AAAA,EAAA,CAAA;AAEtD,EAAA,IAAMiZ,eAAe,GAAG,SAAlBA,eAAeA,CAAGjZ,WAAW,EAAI;IACrC,IAAMzlB,KAAK,GAAG4nB,KAAK,GAAG6W,cAAc,CAAChZ,WAAW,CAAC,GAAGA,WAAW;IAE/D,OAAO;MACLvf,YAAY,EAAE,SAAdA,YAAYA,GAAA;AAAA,QAAA,OAAQi4B,iBAAiB,CAAC;AAAEja,UAAAA,MAAM,EAANA,MAAM;AAAExa,UAAAA,KAAK,EAALA,KAAK;AAAE1J,UAAAA,KAAK,EAALA;AAAM,SAAC,CAAC;AAAA,MAAA,CAAA;MAC/DmG,YAAY,EAAE,SAAdA,YAAYA,GAAA;QAAA,OAAQg4B,iBAAiB,CAAC,IAAI,CAAC;AAAA,MAAA;KAC5C;EACH,CAAC;AAED,EAAA,IAAM3D,cAAc,gBAAA,YAAA;IAAA,IAAA9uB,KAAA,GAAAgtB,iBAAA,cAAA7C,YAAA,EAAA,CAAA+B,CAAA,CAAG,SAAAe,OAAAA,GAAA;MAAA,IAAA1I,MAAA,EAAA0O,EAAA;AAAA,MAAA,OAAA9I,YAAA,EAAA,CAAA8B,CAAA,CAAA,UAAAoB,QAAA,EAAA;QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAA9C,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA0I,YAAAA,EAAA,GACjBlG,QAAQ;AAAA,YAAA,IAAA,CAAAkG,EAAA,EAAA;AAAA5F,cAAAA,QAAA,CAAA9C,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA8C,YAAAA,QAAA,CAAA9C,CAAA,GAAA,CAAA;YAAA,OAAYwC,QAAQ,EAAE;AAAA,UAAA,KAAA,CAAA;YAAAkG,EAAA,GAAA,CAAA5F,QAAA,CAAAhC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,CAAA4H,EAAA,EAAA;AAAA5F,cAAAA,QAAA,CAAA9C,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YAAA,OAAA8C,QAAA,CAAA/B,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAE5B/G,MAAM,GAAG5D,iBAAiB,CAAC;AAC/BnI,cAAAA,MAAM,EAANA,MAAM;AACN3Y,cAAAA,MAAM,EAANA,MAAM;AACN8G,cAAAA,IAAI,EAAJA,IAAI;AACJ3I,cAAAA,KAAK,EAALA,KAAK;AACLuY,cAAAA,OAAO,EAAPA,OAAO;AACPsK,cAAAA,aAAa,EAAbA;AACF,aAAC,CAAC;YACF,IAAI0D,MAAM,EAAEpM,QAAQ,CAAC;cAAE1L,IAAI,EAAE8X,MAAM,CAAC9X,IAAI;cAAE6L,IAAI,EAAEiM,MAAM,CAACjM;AAAK,aAAC,CAAC,CAAC,KAC1DG,SAAS,EAAE;AAAC,UAAA,KAAA,CAAA;YAAA,OAAA4U,QAAA,CAAA/B,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAA2B,OAAA,CAAA;IAAA,CAClB,CAAA,CAAA;AAAA,IAAA,OAAA,SAbK6B,cAAcA,GAAA;AAAA,MAAA,OAAA9uB,KAAA,CAAA8Y,KAAA,CAAA,IAAA,EAAA5N,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAanB;EAED,IAAMgoB,WAAW,GAAGlV,OAAO,IAAIE,cAAc,CAACnX,IAAI,CAAC2H,OAAO,CAAC;AAC3DsgB,EAAAA,UAAU,CAACC,SAAS,CAAA,UAAA,CAAS,CAACC,QAAQ,EAAEJ,cAAc,EAAE;AACtD94B,IAAAA,OAAO,EAAEk9B,WAAW;AACpB7nB,IAAAA,IAAI,EAAE;AACR,GAAC,CAAC;AAEF,EAAA,IAAM8nB,WAAW,GAAG,SAAdA,WAAWA,CAAG3zB,MAAM,EAAI;AAC5B,IAAA,IAAM4zB,IAAI,GAAG5zB,MAAM,CAACiG,IAAI;AACxB;AACA;AACA,IAAA,IAAM4tB,MAAM,GACV,OAAO7zB,MAAM,CAACggB,cAAc,KAAK,UAAU,GACvChgB,MAAM,CAACggB,cAAc,EAAE,GACvBhgB,MAAM,CAACggB,cAAc;AAC3B,IAAA,IAAM8T,YAAY,GAAG,OAAOD,MAAM,KAAK,QAAQ;AAC/C;AACA;AACA,IAAA,IAAME,YAAY,gBAAGC,cAAc,CAACH,MAAM,CAAC,IAAI5xB,KAAK,CAACC,OAAO,CAAC2xB,MAAM,CAAC;AACpE,IAAA,IAAMI,OAAO,GACXj0B,MAAM,CAACigB,eAAe,KAAK8T,YAAY,GAAG;AAAEG,MAAAA,WAAW,EAAEL;KAAQ,GAAG,IAAI,CAAC;AAE3E,IAAA,IAAI,CAACD,IAAI,IAAI,CAACE,YAAY,IAAI,CAACG,OAAO,EAAE,OAAOj0B,MAAM,CAACnL,KAAK;AAE3D,IAAA,oBACE4J,IAAA,CAAA,MAAA,EAAA;AAAMxB,MAAAA,SAAS,EAAC,gBAAgB;AAAAR,MAAAA,QAAA,EAAA,CAC7Bm3B,IAAI,iBAAIp2B,GAAA,CAACo2B,IAAI,EAAA;AAACphB,QAAAA,IAAI,EAAE;OAAK,CAAC,EAC1BxS,MAAM,CAACnL,KAAK,EACZo/B,OAAO,iBACNx1B,IAAA,CAAC01B,OAAO,EAAA;AACNvhB,QAAAA,QAAQ,EAAC,KAAK;AACdnS,QAAAA,OAAO,eACLjD,GAAA,CAAA,MAAA,EAAA;AACEP,UAAAA,SAAS,EAAC,cAAc;AACxBD,UAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEgB,KAAK,EAAA;AAAA,YAAA,OAAIA,KAAK,CAACE,cAAc,EAAE;UAAA,CAAC;UAAAzB,QAAA,eAEzCe,GAAA,CAAC2Z,IAAI,EAAA;AAAC3E,YAAAA,IAAI,EAAE;WAAK;AAAC,SACd,CACP;QAAA/V,QAAA,EAAA,CAEAw3B,OAAO,CAACtc,KAAK,iBAAIna,GAAA,CAAC22B,OAAO,CAACC,KAAK,EAAA;UAAA33B,QAAA,EAAEw3B,OAAO,CAACtc;AAAK,SAAgB,CAAC,eAChEna,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;UAAAhW,QAAA,EACtCw3B,OAAO,CAACC;AAAW,SACV,CAAC,EACZD,OAAO,CAACI,aAAa,iBACpB72B,GAAA,CAAC8U,MAAM,EAAA7U,eAAA,CAAAA,eAAA,CAAA,EAAA,EACDw2B,OAAO,CAACI,aAAa,CAAA,EAAA,EAAA,EAAA;AACzBp3B,UAAAA,SAAS,EAAC,uBAAuB;AACjCuV,UAAAA,IAAI,EAAC,IAAI;AACTC,UAAAA,OAAO,EAAC;AAAM,SAAA,CACf,CACF;AAAA,OACM,CACV,EACA,CAACwhB,OAAO,IACPJ,MAAM,IACNC,YAAY,KACX9zB,MAAM,CAAC2gB,eAAe,gBACrBnjB,GAAA,CAAC0Z,OAAO,EAAA;QAACvE,OAAO,EAAE3S,MAAM,CAAC2gB,eAAgB;AAAC/N,QAAAA,QAAQ,EAAC,KAAK;AAAAnW,QAAAA,QAAA,eACtDe,GAAA,CAAA,MAAA,EAAA;AAAMP,UAAAA,SAAS,EAAC,cAAc;AAAAR,UAAAA,QAAA,EAAEo3B;SAAa;OACtC,CAAC,gBAEVr2B,GAAA,CAAA,MAAA,EAAA;AAAMP,QAAAA,SAAS,EAAC,cAAc;AAAAR,QAAAA,QAAA,EAAEo3B;AAAM,OAAO,CAC9C,CAAC;AAAA,KACA,CAAC;EAEX,CAAC;AAED,EAAA,IAAMS,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGzZ,QAAQ,EAAA;IAAA,OAChCA,QAAQ,iBAAIrd,GAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,eAAe;AAAAR,MAAAA,QAAA,EAAEoe;AAAQ,KAAM,CAAC;AAAA,EAAA,CAAA;AAE7D,EAAA,IAAM0Z,UAAU,GAAG,SAAbA,UAAUA,GAAS;AAAA,IAAA,IAAAC,gBAAA;AACvB,IAAA,IAAIryB,OAAO,CAACsnB,QAAQ,CAAC,EAAE;AACrB,MAAA,oBACEjsB,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,eAAe;AAAC,QAAA,aAAA,EAAY,iBAAiB;QAAAR,QAAA,EACzD4G,CAAC,CAAC,8BAA8B;AAAC,OAC/B,CAAC;AAEV,IAAA;AAEA,IAAA,IAAIqZ,KAAK,EAAE;AACT,MAAA,oBACElf,GAAA,CAAA,KAAA,EAAA;AAAKP,QAAAA,SAAS,EAAC,4BAA4B;AAAAR,QAAAA,QAAA,EACxCke,MAAM,CAACpc,GAAG,CAAC,UAAAqC,KAAA,EAAA;AAAA,UAAA,IAAAK,KAAA,GAAArG,cAAA,CAAAgG,KAAA,EAAA,CAAA,CAAA;AAAEia,YAAAA,QAAQ,GAAA5Z,KAAA,CAAA,CAAA,CAAA;AAAEwzB,YAAAA,KAAK,GAAAxzB,KAAA,CAAA,CAAA,CAAA;UAAA,oBAC3BxC,IAAA,CAACC,QAAQ,EAAA;YAAAjC,QAAA,EAAA,CACN63B,iBAAiB,CAACzZ,QAAQ,CAAC,EAC3B4Z,KAAK,CAACl2B,GAAG,CAAC,UAAAyB,MAAM,EAAA;AAAA,cAAA,oBACfxC,GAAA,CAACosB,QAAQ,EAAAnsB,eAAA,CAAAA,eAAA,CAAA;AACPyW,gBAAAA,OAAO,EAAEwM,UAAU,CAAC1gB,MAAM,CAAClL,KAAK,CAAE;gBAClCgrB,QAAQ,EAAE9f,MAAM,CAAC8f,QAAS;AAE1BjrB,gBAAAA,KAAK,EAAE8+B,WAAW,CAAC3zB,MAAM,CAAE;AAC3B00B,gBAAAA,UAAU,EAAElB,eAAe,CAACxzB,MAAM,CAAClL,KAAK,CAAE;gBAC1C+0B,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,kBAAA,OAAQyJ,YAAY,CAACtzB,MAAM,CAAClL,KAAK,CAAC;AAAA,gBAAA;AAAC,eAAA,EAC7CkL,MAAM,CAACiG,IAAI,IAAIjG,MAAM,CAACggB,cAAc,GACrC;gBAAE9iB,UAAU,EAAE8C,MAAM,CAAClL;AAAM,eAAC,GAC5B,EAAE,CAAA,EACF0+B,eAAe,CAACxzB,MAAM,CAAClL,KAAK,CAAC,CAAA,EAP5BkL,MAAM,CAAClL,KAQb,CAAC;AAAA,YAAA,CACH,CAAC;WAAA,EAfW+lB,QAAQ,IAAI,gBAgBjB,CAAC;QAAA,CACZ;AAAC,OACC,CAAC;AAEV,IAAA;IAEA,oBACErd,GAAA,CAACssB,UAAU,EAAA;AACTC,MAAAA,WAAW,EAAC,UAAU;AACtBj1B,MAAAA,KAAK,GAAA0/B,gBAAA,GAAE9V,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAA,MAAA,GAAA,MAAA,GAAdA,cAAc,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA8V,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAI,EAAG;AACjCxK,MAAAA,aAAa,EAAEsJ,YAAa;AAAA72B,MAAAA,QAAA,EAE3Bke,MAAM,CACJhO,OAAO,CAAC,UAAAtL,KAAA,EAAA;AAAA,QAAA,IAAAG,KAAA,GAAA5G,cAAA,CAAAyG,KAAA,EAAA,CAAA,CAAA;AAAEwZ,UAAAA,QAAQ,GAAArZ,KAAA,CAAA,CAAA,CAAA;AAAEizB,UAAAA,KAAK,GAAAjzB,KAAA,CAAA,CAAA,CAAA;QAAA,OAAA,CACxBqZ,QAAQ,gBACNrd,GAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,eAAe;AAAAR,UAAAA,QAAA,EAC3Boe;AAAQ,SAAA,EAAA,QAAA,CAAAjc,MAAA,CADkCic,QAAQ,CAEhD,CAAC,GACJ,IAAI,CAAA,CAAAjc,MAAA,CAAAoO,kBAAA,CACLynB,KAAK,CAACl2B,GAAG,CAAC,UAAAyB,MAAM,EAAA;UAAA,oBACjBxC,GAAA,CAACssB,UAAU,CAACI,IAAI,EAAAzsB,eAAA,CAAAA,eAAA,CAAA;YACdqiB,QAAQ,EAAE9f,MAAM,CAAC8f,QAAS;AAE1BjrB,YAAAA,KAAK,EAAE8+B,WAAW,CAAC3zB,MAAM,CAAE;AAC3B00B,YAAAA,UAAU,EAAElB,eAAe,CAACxzB,MAAM,CAAClL,KAAK,CAAE;YAC1CA,KAAK,EAAEkL,MAAM,CAAClL;AAAM,WAAA,EACfkL,MAAM,CAACiG,IAAI,IAAIjG,MAAM,CAACggB,cAAc,GACrC;YAAE,aAAa,EAAEhgB,MAAM,CAAClL;AAAM,WAAC,GAC/B,EAAE,CAAA,EACF0+B,eAAe,CAACxzB,MAAM,CAAClL,KAAK,CAAC,CAAA,EAP5BkL,MAAM,CAAClL,KAQb,CAAC;AAAA,QAAA,CACH,CAAC,CAAA,CAAA;AAAA,MAAA,CACH,CAAC,CACDma,MAAM,CAACC,OAAO;AAAC,KACR,CAAC;EAEjB,CAAC;EAED,oBACEzQ,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,8BAA8B;QAAAR,QAAA,EAAA,cAC3Ce,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;AAAAhW,UAAAA,QAAA,EAC9Ckb;AAAK,SACI,CAAC,eACbna,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;AAAAhW,UAAAA,QAAA,EACtC8hB;AAAQ,SACC,CAAC,EACZkQ,UAAU,iBACTjxB,GAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,gBAAgB;AAACtB,UAAAA,GAAG,EAAEu3B,SAAU;UAAAz2B,QAAA,eAC7Ce,GAAA,CAAC+qB,KAAK,EAAA;AACJsH,YAAAA,UAAU,EAAC,aAAa;AACxBnb,YAAAA,WAAW,EAAErR,CAAC,CAAC,sCAAsC,CAAE;AACvDwf,YAAAA,MAAM,eAAErlB,GAAA,CAACsyB,MAAM,IAAE,CAAE;AACnBtd,YAAAA,IAAI,EAAC,OAAO;AACZ1d,YAAAA,KAAK,EAAEg0B,UAAW;AAClB1U,YAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;AAAA,cAAA,OAAIqwB,aAAa,CAACrwB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,YAAA;WACrD;AAAC,SACC,CACN;OACE;AAAC,KACM,CAAC,eACf2J,IAAA,CAACkxB,KAAK,CAACI,IAAI,EAAA;AAAAtzB,MAAAA,QAAA,EAAA,CACR83B,UAAU,EAAE,EACZzB,YAAY;KACH,CAAC,EACZtU,OAAO,iBACNhhB,GAAA,CAACmyB,KAAK,CAACU,MAAM,EAAA;MAAA5zB,QAAA,eACXe,GAAA,CAAC8U,MAAM,EAAA;AACL,QAAA,aAAA,EAAY,iBAAiB;QAC7BwN,QAAQ,EAAE,CAAC4T,WAAY;AACvB7+B,QAAAA,KAAK,EAAEwO,CAAC,CAAC,6BAA6B,CAAE;AACxCmP,QAAAA,IAAI,EAAC,IAAI;AACTxV,QAAAA,OAAO,EAAEsyB;OACV;AAAC,KACU,CACf;AAAA,GACD,CAAC;AAEP,CAAC;;AClTD,IAAMqF,cAAc,GAAG,SAAjBA,cAAcA,CAAAn4B,IAAA,EAAsD;AAAA,EAAA,IAAhD2E,KAAK,GAAA3E,IAAA,CAAL2E,KAAK;IAAEpB,IAAI,GAAAvD,IAAA,CAAJuD,IAAI;IAAE+C,eAAe,GAAAtG,IAAA,CAAfsG,eAAe;IAAE4R,WAAW,GAAAlY,IAAA,CAAXkY,WAAW;AACjE,EAAA,IAAA7C,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GACEC,gBAAgB,EAAE;IADZ/a,MAAM,GAAA8a,iBAAA,CAAN9a,MAAM;IAAEgb,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEiN,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;IAAEzE,MAAM,GAAA1I,iBAAA,CAAN0I,MAAM;IAAEwE,OAAO,GAAAlN,iBAAA,CAAPkN,OAAO;AAG/D,EAAA,IAAMW,UAAU,GAAG,SAAbA,UAAUA,CAAGnY,IAAI,EAAA;AAAA,IAAA,OAAIoY,KAAK,CAACZ,OAAO,EAAExX,IAAI,CAAC,IAAIoY,KAAK,CAACpF,MAAM,EAAEhT,IAAI,CAAC;AAAA,EAAA,CAAA;AAEtE,EAAA,IAAI1N,KAAK,KAAK/G,wBAAwB,CAACC,MAAM,EAAE;IAC7C,IAAMwU,KAAI,GAAA,EAAA,CAAAjQ,MAAA,CAAMmB,IAAI,EAAA,GAAA,CAAA,CAAAnB,MAAA,CAAIxE,wBAAwB,CAACC,MAAM,CAAE;IACzD,IAAM2B,QAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEwQ,KAAI,CAAC,IAAI,EAAE;IAEzC,oBACErR,GAAA,CAACo3B,eAAe,EAAA;MACd1sB,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACnY,KAAI,CAAE;AACxBha,MAAAA,KAAK,EAAEwO,CAAC,CAAC,0CAA0C,CAAE;AACrDqR,MAAAA,WAAW,EAAErR,CAAC,CAAC,4CAA4C,CAAE;AAC7DvO,MAAAA,KAAK,EAAEkH,QAAO,CAACuC,GAAG,CAAC,UAAAunB,KAAK,EAAA;QAAA,OAAK;AAC3BjxB,UAAAA,KAAK,EAAEixB,KAAK;AACZhxB,UAAAA,KAAK,EAAEgxB,KAAK;AACZ+O,UAAAA,KAAK,EAAE;SACR;AAAA,MAAA,CAAC,CAAE;MACJzM,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACzX,KAAI,EAAE,IAAI,CAAC;MAAA,CAAC;AAC1CuF,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEqgB,KAAK,EAAA;AAAA,QAAA,OAAIpb,aAAa,CAACxK,KAAI,EAAE+N,KAAK,CAAC,OAAO,EAAE6X,KAAK,IAAI,EAAE,CAAC,CAAC;AAAA,MAAA;AAAC,KACrE,CAAC;AAEN,EAAA;EAEA,IAAM5lB,IAAI,GAAA,EAAA,CAAAjQ,MAAA,CAAMmB,IAAI,EAAA,GAAA,CAAA,CAAAnB,MAAA,CAAIxE,wBAAwB,CAACtF,KAAK,CAAE;AACxD,EAAA,IAAMkH,OAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEwQ,IAAI,CAAC;AACnC,EAAA,IAAMvY,OAAO,GAAGkkB,gBAAgB,CAAC1X,eAAe,CAAC;EAEjD,oBACEtF,GAAA,CAAC0qB,MAAM,EAAA;AACC5xB,IAAAA,OAAO,EAAPA,OAAO;AAAEoe,IAAAA,WAAW,EAAXA,WAAW;IAC1BxM,QAAQ,EAAA,IAAA;AACRigB,IAAAA,KAAK,EAAEnB,UAAU,CAACnY,IAAI,CAAE;AACxBha,IAAAA,KAAK,EAAEwO,CAAC,CAAC,qCAAqC,CAAE;AAChDmP,IAAAA,IAAI,EAAC,OAAO;AACZ1d,IAAAA,KAAK,EAAEkH,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAPA,OAAO,GAAI2B,SAAU;IAC5ByqB,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,MAAA,OAAQ9B,eAAe,CAACzX,IAAI,EAAE,IAAI,CAAC;IAAA,CAAC;AAC1CuF,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEtf,KAAK,EAAA;AAAA,MAAA,OAAIukB,aAAa,CAACxK,IAAI,EAAE/Z,KAAK,CAAC;AAAA,IAAA;AAAC,GAC/C,CAAC;AAEN,CAAC;;ACjCD,IAAMggC,aAAa,GAAG,SAAhBA,aAAaA,CAAAt4B,IAAA,EAAiD;AAAA,EAAA,IAAAgH,eAAA,EAAAuxB,qBAAA,EAAAlwB,iBAAA,EAAAlB,gBAAA,EAAA0X,qBAAA,EAAAxN,gBAAA,EAAAmnB,qBAAA,EAAAtZ,gBAAA,EAAAuZ,qBAAA,EAAArZ,gBAAA,EAAAsZ,qBAAA,EAAArZ,gBAAA,EAAAK,gBAAA,EAAAiZ,qBAAA,EAAAhZ,gBAAA,EAAAiZ,qBAAA,EAAA/wB,gBAAA,EAAAiY,gBAAA;AAAA,EAAA,IAA3Cjc,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IAAE7B,KAAK,GAAAhC,IAAA,CAALgC,KAAK;IAAAu0B,kBAAA,GAAAv2B,IAAA,CAAE6kB,aAAa;AAAbA,IAAAA,aAAa,GAAA0R,kBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,kBAAA;AAC3D,EAAA,IAAAlhB,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA0e,aAAA,GAA4B7I,YAAY,CAAC7Y,MAAM,CAAC;IAAxC8G,IAAI,GAAA4a,aAAA,CAAJ5a,IAAI;IAAEsS,SAAS,GAAAsI,aAAA,CAATtI,SAAS;AACvB,EAAA,IAAM2U,OAAO,GAAGxyB,MAAM,CAAC,IAAI,CAAC;AAC5B,EAAA,IAAMy5B,QAAQ,GAAGz5B,MAAM,CAAC,IAAI,CAAC;;AAE7B;EACA,IAAMoI,MAAM,GAAGmD,IAAI,CAACvQ,OAAO,CAAC4H,KAAK,CAAC,IAAI,EAAE;AACxC,EAAA,IAAMoF,OAAO,GACXI,MAAM,CAACJ,OAAO,MAAAJ,eAAA,GAAInD,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA4M,eAAA,gBAAAuxB,qBAAA,GAAdvxB,eAAA,CAAgB6B,aAAa,MAAA,IAAA,IAAA0vB,qBAAA,gBAAAA,qBAAA,GAA7BA,qBAAA,CAAA74B,IAAA,CAAAsH,eAAA,EAAgCQ,MAAM,CAACjE,IAAI,CAAC,MAAA,IAAA,IAAAg1B,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA5CA,qBAAA,CAA8CnxB,OAAO,CAAA;EAEzE,IAAMwB,SAAS,IAAAP,iBAAA,GACbb,MAAM,CAACoB,SAAS,cAAAP,iBAAA,KAAA,MAAA,GAAAA,iBAAA,GAAA,CAAAlB,gBAAA,GAAItD,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA+M,gBAAA,gBAAA0X,qBAAA,GAAd1X,gBAAA,CAAgB0B,aAAa,cAAAgW,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAA7BA,qBAAA,CAAAnf,IAAA,CAAAyH,gBAAA,EAAgCK,MAAM,CAACjE,IAAI,CAAC,cAAAsb,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA5CA,qBAAA,CAA8CjW,SAAS;EAC7E,IAAMrF,IAAI,GAAA,EAAA,CAAAnB,MAAA,CAAM6a,SAAS,CAAC7iB,OAAO,EAAA,SAAA,CAAA,CAAAgI,MAAA,CAAUJ,KAAK,EAAA,WAAA,CAAW;EAE3D,IAAM82B,MAAM,IAAAznB,gBAAA,GAAGxN,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAiX,gBAAA,KAAA,MAAA,IAAA,CAAAmnB,qBAAA,GAAdnnB,gBAAA,CAAgBrB,qBAAqB,MAAA,IAAA,IAAAwoB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArCA,qBAAA,CAAA94B,IAAA,CAAA2R,gBAAA,EAAwC;AACrDjK,IAAAA,OAAO,EAAPA,OAAO;AACP7D,IAAAA,IAAI,EAAJA,IAAI;AACJiE,IAAAA,MAAM,EAANA;AACF,GAAC,CAAC;EAEF,IAAM6I,UAAU,GACd,CAAA,CAAA6O,gBAAA,GAAArb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA8kB,gBAAA,KAAA,MAAA,IAAA,CAAAuZ,qBAAA,GAAdvZ,gBAAA,CAAgB5O,aAAa,MAAA,IAAA,IAAAmoB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA7BA,qBAAA,CAAA/4B,IAAA,CAAAwf,gBAAA,EAAgC1X,MAAM,CAACjE,IAAI,CAAC,MAAA,CAAA6b,gBAAA,GAC5Cvb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAglB,gBAAA,KAAA,MAAA,IAAA,CAAAsZ,qBAAA,GAAdtZ,gBAAA,CAAgB7O,gBAAgB,MAAA,IAAA,IAAAmoB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,qBAAA,CAAAh5B,IAAA,CAAA0f,gBAAA,EAAmChY,OAAO,CAAC,CAAA;EAC7C,IAAM2xB,cAAc,GAAG,CAAA1oB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEI,IAAI,MAAK9S,cAAc;EAE1D,IAAMuS,eAAe,GAAG,CAAC,CAAA,CAAAmP,gBAAA,GAAAxb,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAilB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgBvlB,OAAO,KAAI,EAAE,EACnDqW,OAAO,CAAC,UAAA3M,MAAM,EAAA;AAAA,IAAA,OAAIA,MAAM,CAAClJ,UAAU,IAAI,EAAE;EAAA,CAAA,CAAC,CAC1C8H,MAAM,CAAC,CAAA,CAAAsd,gBAAA,GAAA7b,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAslB,gBAAA,uBAAdA,gBAAA,CAAgBplB,UAAU,KAAI,EAAE,CAAC,CACxCwJ,IAAI,CAAC,UAAAmI,IAAI,EAAA;AAAA,IAAA,IAAAF,WAAA;AAAA,IAAA,OAAI,CAAA,CAAAA,WAAA,GAACE,IAAI,CAAC3T,KAAK,MAAA,IAAA,IAAAyT,WAAA,KAAA,MAAA,GAAAA,WAAA,GAAIE,IAAI,CAACvI,EAAE,MAAMkF,SAAS;EAAA,CAAA,CAAC;EAEtD,IAAM0G,qBAAqB,GACzBY,eAAe,KAAA,IAAA,IAAfA,eAAe,eAAfA,eAAe,CAAEvL,KAAK,IACtBuL,eAAe,CAACvL,KAAK,KAAK/G,wBAAwB,CAACC,MAAM,GACrDD,wBAAwB,CAACtF,KAAK,GAC9BsF,wBAAwB,CAACC,MAAM;EAErC,IAAMm7B,kBAAkB,GAAGD,cAAc,GAAA,EAAA,CAAA32B,MAAA,CAClCmB,IAAI,OAAAnB,MAAA,CAAIxE,wBAAwB,CAACE,YAAY,OAAAsE,MAAA,CAC7CmB,IAAI,EAAA,GAAA,CAAA,CAAAnB,MAAA,CAAIkN,qBAAqB,CAAE;AACtC,EAAA,IAAA6iB,kBAAA,GAAqBvB,iBAAiB,CAACoI,kBAAkB,CAAC;IAAlDjI,QAAQ,GAAAoB,kBAAA,CAARpB,QAAQ;AAEhB1xB,EAAAA,SAAS,CAAC,YAAM;AAAA,IAAA,IAAAozB,gBAAA;IACd,IAAI,CAACqG,MAAM,EAAE;AACb,IAAA,IAAMrY,KAAK,GAAA,CAAAgS,gBAAA,GAAGb,OAAO,CAACpyB,OAAO,MAAA,IAAA,IAAAizB,gBAAA,uBAAfA,gBAAA,CAAiBC,aAAa,CAACh1B,4BAA4B,CAAC;AAC1E;IACA,IAAI+iB,KAAK,EAAEyF,UAAU,CAAC,YAAA;AAAA,MAAA,OAAMzF,KAAK,CAACkS,KAAK,EAAE;AAAA,IAAA,CAAA,EAAE,CAAC,CAAC;AAC7C;AACF,EAAA,CAAC,EAAE,CAAC,CAACmG,MAAM,CAAC,CAAC;AAEb,EAAA,IAAMG,qBAAqB,GAAG/oB,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,MAAA,IAAfA,eAAe,CAAEvL,KAAK,gBAClD3D,GAAA,CAACm3B,cAAc,EAAA;AACP50B,IAAAA,IAAI,EAAJA,IAAI;IACV+C,eAAe,EAAE4J,eAAe,CAAC5J,eAAgB;IACjD3B,KAAK,EAAEuL,eAAe,CAACvL,KAAM;IAC7BuT,WAAW,EAAEhI,eAAe,CAACgI;GAC9B,CAAC,GACA,IAAI;EAER,IAAMghB,cAAc,GAAA,CAAAP,qBAAA,GAAA,CAAAhZ,gBAAA,GAClB9b,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAAulB,gBAAA,KAAA,MAAA,IAAA,CAAAiZ,qBAAA,GAAdjZ,gBAAA,CAAgB1P,oBAAoB,MAAA,IAAA,IAAA2oB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAApCA,qBAAA,CAAAl5B,IAAA,CAAAigB,gBAAA,EAAuC;AACrCvY,IAAAA,OAAO,EAAPA,OAAO;AACPwB,IAAAA,SAAS,EAATA,SAAS;AACTrF,IAAAA,IAAI,EAAJA,IAAI;AACJiE,IAAAA,MAAM,EAANA;AACF,GAAC,CAAC,MAAA,IAAA,IAAAmxB,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAIM,qBAAqB;AAE7B,EAAA,IAAMrsB,UAAU,GAAGmsB,cAAc,gBAC/B/3B,GAAA,CAACm4B,gBAAgB,EAAA;IACf51B,IAAI,EAAA,EAAA,CAAAnB,MAAA,CAAKmB,IAAI,EAAA,GAAA,CAAA,CAAAnB,MAAA,CAAIxE,wBAAwB,CAACE,YAAY,CAAG;IACzDA,YAAY,EAAA,CAAA+J,gBAAA,GAAEL,MAAM,CAACnB,QAAQ,MAAA,IAAA,IAAAwB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiB/J;GAChC,CAAC,GACA,IAAI;AAER,EAAA,IAAMs7B,UAAU,GAAGxsB,UAAU,IAAIssB,cAAc;AAC/C,EAAA,IAAM5C,YAAY,GAAG8C,UAAU,gBAC7Bp4B,GAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,MAAM;AAACtB,IAAAA,GAAG,EAAE05B,QAAS;AAAA54B,IAAAA,QAAA,EACjCm5B;GACE,CAAC,GACJ,IAAI;AAER/5B,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAI,CAAC+5B,UAAU,EAAE,OAAOj4B,SAAS;IACjC,IAAM8kB,KAAK,GAAGC,UAAU,CACtB,YAAA;AAAA,MAAA,IAAAmT,iBAAA;MAAA,OAAA,CAAAA,iBAAA,GACER,QAAQ,CAACr5B,OAAO,MAAA,IAAA,IAAA65B,iBAAA,KAAA,MAAA,IAAA,CAAAA,iBAAA,GAAhBA,iBAAA,CAAkB3G,aAAa,CAACh1B,4BAA4B,CAAC,MAAA,IAAA,IAAA27B,iBAAA,uBAA7DA,iBAAA,CAA+D1G,KAAK,EAAE;AAAA,IAAA,CAAA,EACxE,CACF,CAAC;IAED,OAAO,YAAA;MAAA,OAAMxM,YAAY,CAACF,KAAK,CAAC;AAAA,IAAA,CAAA;AAChC;AACF,EAAA,CAAC,EAAE,CAAC,CAAC,CAACmT,UAAU,CAAC,CAAC;EAElB,IAAI,CAACN,MAAM,EAAE;IACX,oBACE93B,GAAA,CAACo1B,WAAW,EAAA;AACJE,MAAAA,YAAY,EAAZA,YAAY;AAAEzR,MAAAA,aAAa,EAAbA,aAAa;AAAE7iB,MAAAA,KAAK,EAALA,KAAK;AAAE6B,MAAAA,MAAM,EAANA,MAAM;AAAEktB,MAAAA,QAAQ,EAARA,QAAQ;MAC1DvU,MAAM,EAAEpgB,eAAe,CAACU;AAAiB,KAC1C,CAAC;AAEN,EAAA;;AAEA;EACA,IAAMsJ,IAAI,GAAG,CAAA,CAAA0Z,gBAAA,GAAAjc,MAAM,CAACzJ,OAAO,MAAA,IAAA,IAAA0lB,gBAAA,KAAA,MAAA,IAAA,CAAAA,gBAAA,GAAdA,gBAAA,CAAgBzlB,WAAW,MAAA,IAAA,IAAAylB,gBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,gBAAA,CAA8B1Y,OAAO,CAAC,KAAI,EAAE;EAEzD,oBACEnF,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,8BAA8B;QAAAR,QAAA,EAAA,cAC3Ce,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;AAAAhW,UAAAA,QAAA,EAC9CmG,IAAI,CAAC8D,cAAc,IAClBrD,CAAC,CAAC,yCAAyC;AAAC,SACpC,CAAC,eACb7F,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;AAAAhW,UAAAA,QAAA,EACtCmG,IAAI,CAAC+D,iBAAiB,IACrBtD,CAAC,CAAC,4CAA4C;AAAC,SACvC,CAAC;OACV;AAAC,KACM,CAAC,eACf7F,GAAA,CAACmyB,KAAK,CAACI,IAAI,EAAA;AAAAtzB,MAAAA,QAAA,eACTe,GAAA,CAAA,KAAA,EAAA;AAAK7B,QAAAA,GAAG,EAAEyyB,OAAQ;AAAA3xB,QAAAA,QAAA,EAAE64B;OAAY;AAAC,KACvB,CAAC;AAAA,GACb,CAAC;AAEP,CAAC;;;;AClHD,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAG30B,KAAK,EAAI;AAC9B,EAAA,IAAI,CAAAA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE8L,IAAI,MAAK2Y,qBAAqB,CAACG,IAAI,EAAE;IAC9C,OAAO;MAAE9Y,IAAI,EAAE8oB,eAAe,CAAChQ,IAAI;AAAE0E,MAAAA,MAAM,EAAEuL;KAAa;AAC5D,EAAA;AAEA,EAAA,OAAO70B,KAAK,KAAA,IAAA,IAALA,KAAK,eAALA,KAAK,CAAE80B,QAAQ,GAClB;IAAEhpB,IAAI,EAAE8oB,eAAe,CAACG,QAAQ;AAAEzL,IAAAA,MAAM,EAAE0L;AAAiB,GAAC,GAC5D;IAAElpB,IAAI,EAAE8oB,eAAe,CAACpQ,IAAI;AAAE8E,IAAAA,MAAM,EAAEC;GAAa;AACzD,CAAC;AAED,IAAM0L,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA55B,IAAA,EAAyC;AAAA,EAAA,IAAnCuD,IAAI,GAAAvD,IAAA,CAAJuD,IAAI;IAAEoB,KAAK,GAAA3E,IAAA,CAAL2E,KAAK;IAAA0nB,eAAA,GAAArsB,IAAA,CAAEssB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,eAAA;AAC1D,EAAA,IAAAhX,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GACEC,gBAAgB,EAAE;IADZ/a,MAAM,GAAA8a,iBAAA,CAAN9a,MAAM;IAAEgb,aAAa,GAAAF,iBAAA,CAAbE,aAAa;IAAEiN,eAAe,GAAAnN,iBAAA,CAAfmN,eAAe;IAAEzE,MAAM,GAAA1I,iBAAA,CAAN0I,MAAM;IAAEwE,OAAO,GAAAlN,iBAAA,CAAPkN,OAAO;EAG/D,IAAMpZ,IAAI,GAAG9L,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE8L,IAAI;EACxB,IAAMopB,SAAS,GAAG,CAAAl1B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEk1B,SAAS,KAAIppB,IAAI;AAC1C,EAAA,IAAM0Z,SAAS,GAAA,EAAA,CAAA/nB,MAAA,CAAMmB,IAAI,EAAA,iBAAA,CAAiB;AAC1C,EAAA,IAAMu2B,UAAU,GAAA,EAAA,CAAA13B,MAAA,CAAMmB,IAAI,EAAA,kBAAA,CAAkB;AAC5C,EAAA,IAAMw2B,WAAW,GAAG/b,gBAAgB,CAClC,CAAArZ,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE9C,MAAM,MAAI8C,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE2B,eAAe,CAAA,KAAI3B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE7K,OAAO,CAC3D,CAAC;AAED,EAAA,IAAM0wB,UAAU,GAAG,SAAbA,UAAUA,CAAGnY,IAAI,EAAA;AAAA,IAAA,OAAIoY,KAAK,CAACZ,OAAO,EAAExX,IAAI,CAAC,IAAIoY,KAAK,CAACpF,MAAM,EAAEhT,IAAI,CAAC;AAAA,EAAA,CAAA;EAEtE,IAAMma,IAAI,GAAGF,UAAU,CAAC9pB,IAAI,EAAE,CAACU,WAAW,EAAE;AAC5C,EAAA,IAAMupB,aAAa,GAAG,SAAhBA,aAAaA,CAAGxY,IAAI,EAAA;AAAA,IAAA,OACxBuY,IAAI,GACAvY,IAAI,CAACxB,MAAM,CAAC,UAAAjP,MAAM,EAAA;AAAA,MAAA,OAAIlB,MAAM,CAACkB,MAAM,CAACnL,KAAK,CAAC,CAAC6K,WAAW,EAAE,CAACP,QAAQ,CAAC6pB,IAAI,CAAC;AAAA,IAAA,CAAA,CAAC,GACxEvY,IAAI;AAAA,EAAA,CAAA;EAEV,IAAM8Y,SAAS,gBACb/rB,GAAA,CAAA,KAAA,EAAA;AAAKP,IAAAA,SAAS,EAAC,eAAe;AAAC,IAAA,aAAA,EAAY,iBAAiB;IAAAR,QAAA,EACzD4G,CAAC,CAAC,8BAA8B;AAAC,GAC/B,CACN;EAED,IAAI4J,IAAI,KAAK2Y,qBAAqB,CAACT,WAAW,IAAIniB,UAAU,CAACuzB,WAAW,CAAC,EAAE;IACzE,IAAMv6B,OAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEi4B,UAAU,CAAC,IAAI,EAAE;AAC/C,IAAA,IAAM7M,QAAQ,GAAGR,aAAa,CAACsN,WAAW,CAAC;IAC3C,IAAIvN,IAAI,IAAI7mB,OAAO,CAACsnB,QAAQ,CAAC,EAAE,OAAOF,SAAS;AAE/C,IAAA,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAG50B,KAAK,EAAI;AACtBwxB,MAAAA,eAAe,CAACgQ,UAAU,EAAE,IAAI,CAAC;AACjCjd,MAAAA,aAAa,CACXid,UAAU,EACVt6B,OAAO,CAACmD,QAAQ,CAACrK,KAAK,CAAC,GACnBkH,OAAO,CAACiT,MAAM,CAAC0a,KAAK,CAAC70B,KAAK,CAAC,CAAC,GAAA,EAAA,CAAA8J,MAAA,CAAAoO,kBAAA,CACxBhR,OAAO,CAAA,EAAA,CAAElH,KAAK,CAAA,CACxB,CAAC;IACH,CAAC;AAED,IAAA,oBACE2J,IAAA,CAAA,KAAA,EAAA;AAAKxB,MAAAA,SAAS,EAAC,4BAA4B;AAAAR,MAAAA,QAAA,GACxCgtB,QAAQ,CAAClrB,GAAG,CAAC,UAAAyB,MAAM,EAAA;QAAA,oBAClBxC,GAAA,CAACosB,QAAQ,EAAA;UACP1V,OAAO,EAAElY,OAAO,CAACmD,QAAQ,CAACa,MAAM,CAAClL,KAAK,CAAE;UAExCD,KAAK,EAAEmL,MAAM,CAACnL,KAAM;UACpBg1B,eAAe,EAAE,SAAjBA,eAAeA,GAAA;AAAA,YAAA,OAAQH,MAAM,CAAC1pB,MAAM,CAAClL,KAAK,CAAC;AAAA,UAAA;SAAC,EAFvCkL,MAAM,CAAClL,KAGb,CAAC;MAAA,CACH,CAAC,EACDkyB,UAAU,CAACsP,UAAU,CAAC,iBACrB94B,GAAA,CAAC4rB,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,aAAa;AAAC5W,QAAAA,OAAO,EAAC,OAAO;QAAAhW,QAAA,EAC5CuqB,UAAU,CAACsP,UAAU;AAAC,OACb,CACb;AAAA,KACE,CAAC;AAEV,EAAA;AAEA,EAAA,IAAIrpB,IAAI,KAAK2Y,qBAAqB,CAACT,WAAW,EAAE;IAC9C,oBACE3nB,GAAA,CAAC4rB,UAAU,EAAA;AAACC,MAAAA,KAAK,EAAC,OAAO;AAAC5W,MAAAA,OAAO,EAAC,OAAO;AAAAhW,MAAAA,QAAA,EACtC0E,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,IAALA,KAAK,CAAEtM,KAAK,GACTwO,CAAC,CAAC,wCAAwC,EAAE;QAAElC,KAAK,EAAEA,KAAK,CAACtM;AAAM,OAAC,CAAC,GACnEwO,CAAC,CAAC,qCAAqC;AAAC,KAClC,CAAC;AAEjB,EAAA;AAEA,EAAA,IAAI4J,IAAI,KAAK2Y,qBAAqB,CAACC,iBAAiB,EAAE;IACpD,IAAM7pB,QAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEi4B,UAAU,CAAC,IAAI,EAAE;IAE/C,oBACE94B,GAAA,CAAC0qB,MAAM,EAAA;MACL8J,SAAS,EAAA,IAAA;MACTwE,WAAW,EAAA,IAAA;MACXC,OAAO,EAAA,IAAA;MACPvuB,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACsP,UAAU,CAAE;AAC9BzhC,MAAAA,KAAK,EAAEwO,CAAC,CAAC,oCAAoC,CAAE;AAC/CqR,MAAAA,WAAW,EAAErR,CAAC,CAAC,+CAA+C,CAAE;AAChEmP,MAAAA,IAAI,EAAC,OAAO;AACZ1d,MAAAA,KAAK,EAAEkH,QAAQ;MACfosB,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACgQ,UAAU,EAAE,IAAI,CAAC;MAAA,CAAC;AAChDliB,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEgM,QAAQ,EAAA;AAAA,QAAA,OAAI/G,aAAa,CAACid,UAAU,EAAElW,QAAQ,IAAI,EAAE,CAAC;AAAA,MAAA;AAAC,KACjE,CAAC;AAEN,EAAA;AAEA,EAAA,IAAIpd,UAAU,CAACuzB,WAAW,CAAC,EAAE;AAC3B,IAAA,IAAMv6B,SAAO,GAAGirB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC;AACxC,IAAA,IAAM8C,SAAQ,GAAGR,aAAa,CAACsN,WAAW,CAAC;IAC3C,IAAIvN,IAAI,IAAI7mB,OAAO,CAACsnB,SAAQ,CAAC,EAAE,OAAOF,SAAS;IAE/C,oBACE/rB,GAAA,CAACssB,UAAU,EAAA;AACT3B,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7BoD,MAAAA,WAAW,EAAC,UAAU;MACtBj1B,KAAK,EAAEgK,MAAM,CAAC9C,SAAO,KAAA,IAAA,IAAPA,SAAO,KAAA,MAAA,GAAPA,SAAO,GAAI,EAAE,CAAE;AAC7BguB,MAAAA,aAAa,EAAE,SAAfA,aAAaA,CAAEl1B,KAAK,EAAA;AAAA,QAAA,OAAIukB,aAAa,CAACsN,SAAS,EAAE7xB,KAAK,CAAC;MAAA,CAAC;AAAA2H,MAAAA,QAAA,EAEvDgtB,SAAQ,CAAClrB,GAAG,CAAC,UAAAyB,MAAM,EAAA;AAAA,QAAA,oBAClBxC,GAAA,CAACssB,UAAU,CAACI,IAAI,EAAA;UAEdr1B,KAAK,EAAEiK,MAAM,CAACkB,MAAM,CAACnL,KAAK,CAAC,CAAC6K,WAAW,EAAG;AAC1C5K,UAAAA,KAAK,EAAEgK,MAAM,CAACkB,MAAM,CAAClL,KAAK;SAAE,EAFvBkL,MAAM,CAAClL,KAGb,CAAC;MAAA,CACH;AAAC,KACQ,CAAC;AAEjB,EAAA;EAEA,IACEmY,IAAI,KAAK2Y,qBAAqB,CAACD,IAAI,IACnC1Y,IAAI,KAAK2Y,qBAAqB,CAACG,IAAI,EACnC;AAAA,IAAA,IAAA2Q,eAAA;AACA,IAAA,IAAMC,YAAY,GAAA,EAAA,CAAA/3B,MAAA,CAAMmB,IAAI,EAAA,WAAA,CAAW;IACvC,IAAM8C,QAAQ,GAAGokB,KAAK,CAAC5oB,MAAM,EAAEs4B,YAAY,CAAC,IAAI,EAAE;AAClD,IAAA,IAAAC,eAAA,GAAuCd,cAAc,CAAC30B,KAAK,CAAC;MAA9C01B,YAAY,GAAAD,eAAA,CAAlB3pB,IAAI;MAAgBwd,MAAM,GAAAmM,eAAA,CAANnM,MAAM;IAClC,IAAMqM,MAAM,GAAGC,gBAAgB,CAAC;MAC9BpR,IAAI,EAAE9iB,QAAQ,CAAC/N,KAAK;MACpB21B,MAAM,EAAE5nB,QAAQ,CAAC4nB,MAAM;MACvBxd,IAAI,EAAEpK,QAAQ,CAACoK,IAAI;MACnB+pB,QAAQ,EAAEn0B,QAAQ,CAACm0B;AACrB,KAAC,CAAC;;AAEF;AACA,IAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAGtR,IAAI,EAAI;AAAA,MAAA,IAAAuR,iBAAA;AAC3B5Q,MAAAA,eAAe,CAACK,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACvCtN,MAAAA,aAAa,CAACsd,YAAY,EAAAl5B,eAAA,CAAAA,eAAA,KACrBoF,QAAQ,CAAA,EAAA,EAAA,EAAA;AACX;AACA/N,QAAAA,KAAK,EAAE6wB,IAAI,GAAG6E,KAAK,CAAC7E,IAAI,CAAC,CAAC8E,MAAM,CAACA,MAAM,CAAC,GAAG,EAAE;AAC7Cxd,QAAAA,IAAI,EAAE4pB,YAAY;AAClBpM,QAAAA,MAAM,EAANA,MAAM;AACNuM,QAAAA,QAAQ,EAAEG,WAAW,KAAA,IAAA,IAAXA,WAAW,gBAAAD,iBAAA,GAAXC,WAAW,CAAEC,IAAI,MAAA,IAAA,IAAAF,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,iBAAA,CAAmBG;AAAQ,OAAA,CACtC,CAAC;IACJ,CAAC;AAED,IAAA,IAAMC,WAAW,GAAG;AAClBpvB,MAAAA,QAAQ,EAAE,IAAI;AACdigB,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAC;MAC5B7xB,KAAK,EAAEgiC,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAJ,eAAA,GAANI,MAAM,CAAES,OAAO,MAAA,IAAA,IAAAb,eAAA,KAAA,MAAA,IAAfA,eAAA,CAAAx6B,IAAA,CAAA46B,MAAkB,CAAC,GAAGA,MAAM,GAAG,IAAI;MAC1C1O,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;AAAA,MAAA,CAAA;AAC9CvS,MAAAA,QAAQ,EAAE6iB;KACX;AAED,IAAA,OAAOJ,YAAY,KAAKd,eAAe,CAAChQ,IAAI,gBAC1CvoB,GAAA,CAACg6B,UAAU,EAAA/5B,eAAA,CAAAA,eAAA,KACL65B,WAAW,CAAA,EAAA,EAAA,EAAA;AACf7M,MAAAA,MAAM,EAAC,IAAI;MACX51B,KAAK,EAAEwO,CAAC,CAAC,4BAA4B;KAAE,CACxC,CAAC,gBAEF7F,GAAA,CAAC+sB,UAAU,EAAA9sB,eAAA,CAAAA,eAAA,CAAA,EAAA,EACL65B,WAAW,CAAA,EAAA,EAAA,EAAA;AACfziC,MAAAA,KAAK,EAAEwO,CAAC,CAAC,4BAA4B,CAAE;AACvC4yB,MAAAA,QAAQ,EAAE90B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE80B,QAAS;AAC1BwB,MAAAA,UAAU,EAAC,OAAO;AAClBxqB,MAAAA,IAAI,EAAC;AAAM,KAAA,CACZ,CACF;AACH,EAAA;AAEA,EAAA,IAAIopB,SAAS,KAAKzQ,qBAAqB,CAACL,MAAM,EAAE;AAAA,IAAA,IAAAU,MAAA;IAC9C,oBACEzoB,GAAA,CAAC+qB,KAAK,EAAA;MACJyJ,SAAS,EAAA,IAAA;MACT9pB,QAAQ,EAAA,IAAA;AACRigB,MAAAA,KAAK,EAAEnB,UAAU,CAACL,SAAS,CAAE;AAC7B9xB,MAAAA,KAAK,EAAEwO,CAAC,CAAC,yBAAyB,CAAE;AACpCmP,MAAAA,IAAI,EAAC,OAAO;AACZvF,MAAAA,IAAI,EAAC,QAAQ;AACbnY,MAAAA,KAAK,EAAA,CAAAmxB,MAAA,GAAEgB,KAAK,CAAC5oB,MAAM,EAAEsoB,SAAS,CAAC,MAAA,IAAA,IAAAV,MAAA,KAAA,MAAA,GAAAA,MAAA,GAAI,EAAG;MACtCmC,MAAM,EAAE,SAARA,MAAMA,GAAA;AAAA,QAAA,OAAQ9B,eAAe,CAACK,SAAS,EAAE,IAAI,CAAC;MAAA,CAAC;AAC/CvS,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;QAAA,OACbqb,aAAa,CACXsN,SAAS,EACT3oB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,KAAK,EAAE,GAAG,EAAE,GAAGwV,MAAM,CAACtM,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAC5D,CAAC;AAAA,MAAA;AACF,KACF,CAAC;AAEN,EAAA;EAEA,oBACE0I,GAAA,CAACk6B,OAAW,EAAA;IACV1F,SAAS,EAAA,IAAA;IACT9pB,QAAQ,EAAA,IAAA;AACRrT,IAAAA,KAAK,EAAEwO,CAAC,CAAC,yBAAyB,CAAE;AACpCtD,IAAAA,IAAI,EAAE4mB,SAAU;AAChBnU,IAAAA,IAAI,EAAC,OAAO;IACZvF,IAAI,EAAEopB,SAAS,KAAKzQ,qBAAqB,CAACE,KAAK,GAAG,OAAO,GAAG,MAAO;IACnEpR,WAAW,EACT,CAAAvT,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEuT,WAAW,MACjB2hB,SAAS,KAAKzQ,qBAAqB,CAACE,KAAK,GACtCziB,CAAC,CAAC,wCAAwC,CAAC,GAC3C1F,SAAS;AACd,GACF,CAAC;AAEN,CAAC;;AClOD,IAAMg6B,SAAS,GAAG,SAAZA,SAASA,CAAAn7B,IAAA,EAA0B;AAAA,EAAA,IAAA0E,kBAAA;AAAA,EAAA,IAApBb,MAAM,GAAA7D,IAAA,CAAN6D,MAAM;IAAE7B,KAAK,GAAAhC,IAAA,CAALgC,KAAK;AAChC,EAAA,IAAAqT,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AACT,EAAA,IAAA8V,iBAAA,GAA0BC,gBAAgB,EAAE;IAApCC,aAAa,GAAAF,iBAAA,CAAbE,aAAa;AACrB,EAAA,IAAA0I,aAAA,GAA4B7I,YAAY,CAAC7Y,MAAM,CAAC;IAAxC8G,IAAI,GAAA4a,aAAA,CAAJ5a,IAAI;IAAEsS,SAAS,GAAAsI,aAAA,CAATtI,SAAS;AAEvB,EAAA,IAAAhf,SAAA,GAAoCC,QAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCquB,IAAAA,UAAU,GAAAnuB,UAAA,CAAA,CAAA,CAAA;AAAE0zB,IAAAA,aAAa,GAAA1zB,UAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAMu4B,SAAS,GAAGt3B,MAAM,CAAC,IAAI,CAAC;;AAE9B;EACA,IAAM0F,SAAS,GAAG6F,IAAI,CAAC1Q,UAAU,CAAC+H,KAAK,CAAC,IAAI,EAAE;EAC9C,IAAM2C,KAAK,GAAG,CAAC,CAAA,CAAAD,kBAAA,GAAAb,MAAM,CAAC5J,UAAU,MAAA,IAAA,IAAAyK,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,kBAAA,CAAmBxK,MAAM,KAAI,EAAE,EAAE4J,IAAI,CAClD,UAAAS,SAAS,EAAA;AAAA,IAAA,OAAIwZ,WAAW,CAACxZ,SAAS,CAAC,KAAKO,SAAS,CAACH,KAAK;AAAA,EAAA,CACzD,CAAC;EACD,IAAMmtB,IAAI,GAAA,EAAA,CAAA1vB,MAAA,CAAM6a,SAAS,CAAChjB,UAAU,EAAA,SAAA,CAAA,CAAAmI,MAAA,CAAUJ,KAAK,CAAE;AAErD4uB,EAAAA,iBAAiB,CAAA,EAAA,CAAAxuB,MAAA,CAAI0vB,IAAI,cAAW,CAAC;AAErC,EAAA,IAAMiI,WAAW,GAAG/b,gBAAgB,CAClC,CAAArZ,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE9C,MAAM,MAAI8C,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE2B,eAAe,CAAA,KAAI3B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE7K,OAAO,CAC3D,CAAC;AAED,EAAA,IAAMm4B,UAAU,GAAG8H,WAAW,CAACltB,MAAM,IAAItP,qBAAqB;AAE9D,EAAA,IAAMw6B,UAAU,GAAG,SAAbA,UAAUA,GAAS;AAAA,IAAA,IAAA9yB,mBAAA;IACvB,IAAA,CAAAA,mBAAA,GAAIpB,MAAM,CAAC5J,UAAU,MAAA,IAAA,IAAAgL,mBAAA,KAAA,MAAA,IAAjBA,mBAAA,CAAmBm2B,WAAW,EAAE;AAClC,MAAA,OAAOv3B,MAAM,CAAC5J,UAAU,CAACmhC,WAAW,CAAC;AACnC73B,QAAAA,IAAI,EAAEuuB,IAAI;AACVhtB,QAAAA,SAAS,EAATA,SAAS;AACTH,QAAAA,KAAK,EAALA,KAAK;AACLkY,QAAAA,aAAa,EAAbA,aAAa;AACbyP,QAAAA,UAAU,EAAVA;AACF,OAAC,CAAC;AACJ,IAAA;IAEA,oBAAOtrB,GAAA,CAAC44B,oBAAoB,EAAA;AAAOj1B,MAAAA,KAAK,EAALA,KAAK;AAAE2nB,MAAAA,UAAU,EAAVA,UAAU;AAAI/oB,MAAAA,IAAI,EAAEuuB;AAAK,KAAE,CAAC;EACxE,CAAC;EAED,oBACE7vB,IAAA,CAAAE,UAAA,EAAA;AAAAlC,IAAAA,QAAA,EAAA,cACEe,GAAA,CAACmyB,KAAK,CAACC,MAAM,EAAA;AAAAnzB,MAAAA,QAAA,eACXgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,8BAA8B;QAAAR,QAAA,EAAA,cAC3Ce,GAAA,CAAC4rB,UAAU,EAAA;AAAC,UAAA,aAAA,EAAY,YAAY;AAAC3W,UAAAA,OAAO,EAAC,IAAI;AAAAhW,UAAAA,QAAA,EAC9C4G,CAAC,CAAC,8BAA8B,EAAE;AACjClC,YAAAA,KAAK,EAAE,CAAAA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEtM,KAAK,KAAIwO,CAAC,CAAC,8BAA8B;WACxD;AAAC,SACQ,CAAC,eACb7F,GAAA,CAAC4rB,UAAU,EAAA;AAACC,UAAAA,KAAK,EAAC,OAAO;AAAC5W,UAAAA,OAAO,EAAC,OAAO;UAAAhW,QAAA,EACtC,CAAA0E,KAAK,KAAA,IAAA,IAALA,KAAK,uBAALA,KAAK,CAAE02B,aAAa,MAClBv4B,gBAAgB,CAACgC,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEpC,IAAI,CAAC,GAC9BmE,CAAC,CAAC,mCAAmC,EAAE;AACrClC,YAAAA,KAAK,EAAE,CAAAA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEtM,KAAK,KAAIwO,CAAC,CAAC,8BAA8B;AACzD,WAAC,CAAC,GACFA,CAAC,CAAC,kCAAkC,CAAC;AAAC,SAClC,CAAC,EACZorB,UAAU,iBACTjxB,GAAA,CAAA,KAAA,EAAA;AAAKP,UAAAA,SAAS,EAAC,gBAAgB;AAACtB,UAAAA,GAAG,EAAEu3B,SAAU;UAAAz2B,QAAA,eAC7Ce,GAAA,CAAC+qB,KAAK,EAAA;AACJsH,YAAAA,UAAU,EAAC,aAAa;AACxBnb,YAAAA,WAAW,EAAErR,CAAC,CAAC,sCAAsC,CAAE;AACvDwf,YAAAA,MAAM,eAAErlB,GAAA,CAACsyB,MAAM,IAAE,CAAE;AACnBtd,YAAAA,IAAI,EAAC,OAAO;AACZ1d,YAAAA,KAAK,EAAEg0B,UAAW;AAClB1U,YAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEpW,KAAK,EAAA;AAAA,cAAA,OAAIqwB,aAAa,CAACrwB,KAAK,CAAC+mB,MAAM,CAACjwB,KAAK,CAAC;AAAA,YAAA;WACrD;AAAC,SACC,CACN;OACE;AAAC,KACM,CAAC,eACf0I,GAAA,CAACmyB,KAAK,CAACI,IAAI,EAAA;MAAAtzB,QAAA,EAAE83B,UAAU;AAAE,KAAa,CAAC;AAAA,GACvC,CAAC;AAEP,CAAC;;;AC7EM,IAAMuD,6BAA6B,IAAAC,qBAAA,GAAA,EAAA,EAAAp+B,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAo+B,qBAAA,EACvCngC,mBAAmB,CAACC,OAAO,EAAG;AAAEikB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EACxDh7B,mBAAmB,CAACE,KAAK,EAAG;AAAEgkB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EACtDh7B,mBAAmB,CAACG,eAAe,EAAG;AAAE+jB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EAChEh7B,mBAAmB,CAACI,QAAQ,EAAG;AAAE8jB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EACzDh7B,mBAAmB,CAACK,SAAS,EAAG;AAAE6jB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EAC1Dh7B,mBAAmB,CAACO,cAAc,EAAG;AAAE2jB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EAC/Dh7B,mBAAmB,CAACU,SAAS,EAAG;AAAEwjB,EAAAA,SAAS,EAAEgZ;AAAc,CAAC,CAAA,EAC5Dl9B,mBAAmB,CAACM,eAAe,EAAG;AAAE4jB,EAAAA,SAAS,EAAE6b;AAAU,CAAC,CAAA,EAC9D//B,mBAAmB,CAACQ,aAAa,EAAG;AAAE0jB,EAAAA,SAAS,EAAEgS;AAAW,CAAC,CAAA,EAC7Dl2B,mBAAmB,CAACS,WAAW,EAAG;AAAEyjB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,GAAAj5B,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAo+B,qBAAA,EAC5DngC,mBAAmB,CAACW,KAAK,EAAG;AAAEujB,EAAAA,SAAS,EAAEwU;AAAU,CAAC,CAAA,EACpD14B,mBAAmB,CAACY,SAAS,EAAG;AAAEsjB,EAAAA,SAAS,EAAEwW;AAAa,CAAC,CAAA,EAC3D16B,mBAAmB,CAACa,IAAI,EAAG;AAAEqjB,EAAAA,SAAS,EAAE6W;AAAS,CAAC,CAAA,EAClD/6B,mBAAmB,CAACc,KAAK,EAAG;AAAEojB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,EACtDh7B,mBAAmB,CAACe,iBAAiB,EAAG;AAAEmjB,EAAAA,SAAS,EAAE8W;AAAY,CAAC,CAAA,CACpE;;;;ACOD,IAAMoF,IAAI,GAAG,SAAPA,IAAIA,CAAAx7B,IAAA,EAYJ;AAAA,EAAA,IAAAy7B,kBAAA,EAAAvW,qBAAA,EAAAC,YAAA;AAAA,EAAA,IAAA9I,SAAA,GAAArc,IAAA,CAXJsc,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,SAAA;IAAAqf,WAAA,GAAA17B,IAAA,CACT6D,MAAM;AAAEoL,IAAAA,SAAS,GAAAysB,WAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,WAAA;IACGC,GAAG,GAAA37B,IAAA,CAA5B47B,uBAAuB;IACvBzgB,KAAK,GAAAnb,IAAA,CAALmb,KAAK;IAAA0gB,gBAAA,GAAA77B,IAAA,CACL87B,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,gBAAA;IAAAE,cAAA,GAAA/7B,IAAA,CAChBg8B,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IACjBt7B,SAAS,GAAAT,IAAA,CAATS,SAAS;IAAAw7B,iBAAA,GAAAj8B,IAAA,CACTk8B,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAGE,IAAI,GAAAF,iBAAA;IAAAG,iBAAA,GAAAp8B,IAAA,CACnBq8B,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAGD,IAAI,GAAAC,iBAAA;IAAAE,eAAA,GAAAt8B,IAAA,CACnBu8B,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,eAAA;IAAAE,qBAAA,GAAAx8B,IAAA,CACnBy8B,wBAAwB;AAAxBA,IAAAA,wBAAwB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;AAEhC,EAAA,IAAAnnB,eAAA,GAAcC,cAAc,EAAE;IAAtBzO,CAAC,GAAAwO,eAAA,CAADxO,CAAC;AAET,EAAA,IAAM61B,SAAS,GAAGt9B,MAAM,CAAC,IAAI,CAAC;AAC9B,EAAA,IAAMu9B,OAAO,GAAGv9B,MAAM,CAAC,IAAI,CAAC;AAE5B,EAAA,IAAAw9B,mBAAA,GAAAC,kBAAA,CAAA9gB,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQ8gB,QAAAA,UAAU,EAAA9gB,KAAA,CAAA,YAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAAV8gB,UAAU,GAAAF,mBAAA,CAAVE,UAAU;AAClB,EAAA,IAAAjhB,gBAAA,GAAAC,eAAA,CAAAC,UAAA,WAAAC,KAAA,EAAA;AAAA,MAAA,OAAA;AAAQE,QAAAA,eAAe,EAAAF,KAAA,CAAA,iBAAA,CAAA;AAAE+gB,QAAAA,WAAW,EAAA/gB,KAAA,CAAA,aAAA,CAAA;AAAEghB,QAAAA,0BAA0B,EAAAhhB,KAAA,CAAA,4BAAA;AAAA,OAAA;AAAA,IAAA,CAAA,CAAA,CAAA;IAAxDE,eAAe,GAAAL,gBAAA,CAAfK,eAAe;IAAE6gB,WAAW,GAAAlhB,gBAAA,CAAXkhB,WAAW;IAAEC,0BAA0B,GAAAnhB,gBAAA,CAA1BmhB,0BAA0B;EAGhE,IAAMC,aAAa,GAAGjgB,OAAO,CAAC,YAAA;IAAA,OAAMkgB,UAAU,CAAC5gB,IAAI,CAAC;EAAA,CAAA,EAAE,CAACA,IAAI,CAAC,CAAC;EAC7D,IAAMzY,MAAM,GAAGmZ,OAAO,CAAC,YAAA;IAAA,OAAMhO,eAAe,CAACC,SAAS,CAAC;EAAA,CAAA,EAAE,CAACA,SAAS,CAAC,CAAC;AAErE,EAAA,IAAM+a,uBAAuB,GAAG,CAAC,EAAA,CAAAyR,kBAAA,GAACxsB,SAAS,CAAC7U,OAAO,MAAA,IAAA,IAAAqhC,kBAAA,KAAA,MAAA,IAAjBA,kBAAA,CAAmBzR,uBAAuB,CAAA;AAC5E3qB,EAAAA,SAAS,CAAC,YAAM;IACd29B,0BAA0B,CAAChT,uBAAuB,CAAC;AACnD;AACF,EAAA,CAAC,EAAE,CAACA,uBAAuB,CAAC,CAAC;EAE7B,IAAMmT,cAAc,GAClBV,wBAAwB,KAAA,CAAAvX,qBAAA,GAAA,CAAAC,YAAA,GAAKthB,MAAM,CAACuC,IAAI,cAAA+e,YAAA,KAAA,MAAA,GAAA,MAAA,GAAXA,YAAA,CAAa/N,QAAQ,MAAA,IAAA,IAAA8N,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,IAAI,CAAC;EAE7D,IAAAkY,gBAAA,GACEC,eAAe,CAAC;AAAE1B,MAAAA,GAAG,EAAHA,GAAG;AAAEe,MAAAA,SAAS,EAATA,SAAS;AAAEH,MAAAA,UAAU,EAAVA,UAAU;AAAEE,MAAAA,wBAAwB,EAAxBA;AAAyB,KAAC,CAAC;IADnEa,wBAAwB,GAAAF,gBAAA,CAAxBE,wBAAwB;IAAEC,YAAY,GAAAH,gBAAA,CAAZG,YAAY;IAAEC,yBAAyB,GAAAJ,gBAAA,CAAzBI,yBAAyB;;AAGzE;AACAn+B,EAAAA,SAAS,CAAC,YAAA;IAAA,OAAM,YAAA;MAAA,OAAM6c,eAAe,EAAE;AAAA,IAAA,CAAA;AAAA,EAAA,CAAA,EAAE,EAAE,CAAC;EAE5C,IAAMuhB,UAAU,GAAG,SAAbA,UAAUA,CAAI57B,MAAM,EAAE67B,SAAS,EAAK;AACxC,IAAA,IAAIl3B,UAAU,CAACu2B,WAAW,CAAC,EAAE;AAC3B,MAAA,OAAOY,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAACh3B,CAAC,CAAC,2CAA2C,CAAC,CAC1D,CAAC;AACH,IAAA;IAEA,IAAM8D,IAAI,GAAG+G,iBAAiB,CAAC;AAAE7P,MAAAA,MAAM,EAANA,MAAM;AAAEgC,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC;IAClD,IACE,CAAC8H,cAAc,CAAC;AAAEhB,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;KAAQ,CAAC,IACjCiJ,mBAAmB,CAAC;AAAEnC,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;AAAO,KAAC,CAAC,CAACgJ,MAAM,IAC5CW,6BAA6B,CAAC;AAAE7C,MAAAA,IAAI,EAAJA,IAAI;AAAE9G,MAAAA,MAAM,EAANA;KAAQ,CAAC,CAACgJ,MAAM,EACtD;AACA,MAAA,OAAO8wB,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAACh3B,CAAC,CAAC,uCAAuC,CAAC,CACtD,CAAC;AACH,IAAA;AAEA,IAAA,IAAI22B,yBAAyB,EAAE;MAC7BD,YAAY,CAAC17B,MAAM,CAAC;AAEpB,MAAA,OAAO87B,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAACh3B,CAAC,CAAC,4CAA4C,CAAC,CAC3D,CAAC;AACH,IAAA;AAEA,IAAA,IAAMi3B,OAAO,GAAGC,YAAY,CAACzhB,IAAI,EAAEza,MAAM,CAAC;AAE1Cqa,IAAAA,eAAe,EAAE;AAEjB,IAAA,OAAOggB,YAAY,CAAC4B,OAAO,EAAEJ,SAAS,EAAEJ,wBAAwB,CAAC;EACnE,CAAC;EAED,oBACEt8B,GAAA,CAACg9B,MAAM,EAAA;IACLC,kBAAkB,EAAA,IAAA;IAClBhB,aAAa,EAAAh8B,eAAA,CAAAA,eAAA,KAAOi9B,qBAAqB,CAAA,EAAKjB,aAAa,CAAG;AAC9DkB,IAAAA,QAAQ,EAAEzB,SAAU;IACpB0B,gBAAgB,EAAEC,mBAAmB,CAAC;AACpC/hB,MAAAA,IAAI,EAAJA,IAAI;AACJwgB,MAAAA,UAAU,EAAVA,UAAU;AACVL,MAAAA,wBAAwB,EAAEU;KAC3B,CAAC,CAAC/6B,MAAM,CAAC+L,wBAAwB,CAACtK,MAAM,CAAC,CAAE;AAC5Cy6B,IAAAA,QAAQ,EAAEb,UAAW;IAAAx9B,QAAA,EAEpB,SAAAA,QAAAA,GAAA;AAAA,MAAA,oBACCgC,IAAA,CAAA,KAAA,EAAA;AAAKxB,QAAAA,SAAS,EAAC,6CAA6C;QAAAR,QAAA,EAAA,cAC1De,GAAA,CAACu9B,WAAW,IAAE,CAAC,eACft8B,IAAA,CAACu8B,SAAS,EAAA;AAAC/9B,UAAAA,SAAS,EAAC,gDAAgD;UAAAR,QAAA,EAAA,cACnEe,GAAA,CAACoyB,MAAM,EAAA;AACC0I,YAAAA,WAAW,EAAXA,WAAW;AACjB3gB,YAAAA,KAAK,EAAEA,KAAK,IAAItU,CAAC,CAAC,yBAAyB;AAAE,WAC9C,CAAC,EACDm1B,SAAS,gBACRh7B,GAAA,CAAA,KAAA,EAAA;AAAKP,YAAAA,SAAS,EAAC,gDAAgD;AAAAR,YAAAA,QAAA,eAC7De,GAAA,CAACy9B,OAAO,EAAA,EAAE;AAAC,WACR,CAAC,gBAENx8B,IAAA,CAACy8B,MAAU,EAAA;AACTv/B,YAAAA,GAAG,EAAEw9B,OAAQ;YACbl8B,SAAS,EAAEY,UAAU,CAAC,CACpB,iDAAiD,EACjDZ,SAAS,CACV,CAAE;YAAAR,QAAA,EAAA,cAEHe,GAAA,CAACgkB,MAAM,EAAA;AAAOnhB,cAAAA,MAAM,EAANA;AAAM,aAAK,CAAC,eAC1B7C,GAAA,CAAC29B,kBAAkB,EAAA;AAAOhC,cAAAA,OAAO,EAAPA;aAAY,CAAC,eACvC37B,GAAA,CAAA,KAAA,EAAA;AAAKP,cAAAA,SAAS,EAAC,oCAAoC;cAAAR,QAAA,eACjDe,GAAA,CAAC49B,WAAW,EAAA;AACVC,gBAAAA,iBAAiB,EAAE;AAAEr+B,kBAAAA,OAAO,EAAE67B;iBAAe;AAC7CyC,gBAAAA,iBAAiB,EAAE;AAAE,kBAAA,aAAa,EAAE;AAAqB;eAC1D;AAAC,aACC,CAAC;AAAA,WACI,CACb;AAAA,SACQ,CAAC,eACZ99B,GAAA,CAACmyB,KAAK,EAAA;AAAC4L,UAAAA,SAAS,EAAEzD;AAA8B,SAAE,CAAC;AAAA,OAChD,CAAC;AAAA,IAAA;AACP,GACK,CAAC;AAEb,CAAC;;;;ACrJD,IAAM0D,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAh/B,IAAA,EAAA;EAAA,IAASW,IAAI,GAAA6lB,MAAA,CAAAyY,MAAA,MAAAC,yBAAA,CAAAl/B,IAAA,CAAA,EAAAA,IAAA,EAAA;EAAA,oBAAOgB,GAAA,CAACw6B,IAAI,EAAAv6B,aAAA,CAAA,EAAA,EAAKN,IAAI,CAAG,CAAC;AAAA;;;;"}