{"version":3,"file":"dsfr.nomodule.js","sources":["../../src/core/config.js","../../src/core/api.js","../../src/core/scripts/global/namespace.js","../../src/core/scripts/manipulation/classes.js","../../src/core/scripts/engine/render/renderer.js","../../src/core/scripts/engine/engine.js","../../src/core/scripts/global/initializer.js","../../src/core/scripts/engine/instantiate/instance.js","../../src/core/scripts/disclosure/constants.js","../../src/core/scripts/disclosure/disclosures-group.js","../../src/core/scripts/disclosure/disclosure-button.js","../../src/core/scripts/disclosure/events.js","../../src/core/scripts/disclosure/disclosure.js","../../src/core/scripts/disclosure/disclosure-types.js","../../src/core/scripts/key-listener/key-listener.js","../../src/core/scripts/collapse/constants.js","../../src/core/scripts/collapse/collapse.js","../../src/core/scripts/manipulation/size.js","../../src/core/index.js","../../src/core/scripts/collapse/build.js","../../src/core/scripts/module.js","../../src/accordions/scripts/accordion/constants.js","../../src/accordions/scripts/accordion/accordions-group.js","../../src/accordions/index.js","../../src/accordions/scripts/module.js","../../src/breadcrumb/scripts/breadcrumb/constants.js","../../src/breadcrumb/scripts/breadcrumb/breadcrumb.js","../../src/breadcrumb/scripts/breadcrumb/build.js","../../src/breadcrumb/scripts/module.js","../../src/buttons/scripts/buttons/constants.js","../../src/buttons/scripts/buttons/build.js","../../src/buttons/scripts/module.js","../../src/modal/scripts/modal/constants.js","../../src/modal/scripts/modal/focus-trap.js","../../src/modal/scripts/modal/modals-group.js","../../src/modal/scripts/modal/modal.js","../../src/modal/index.js","../../src/modal/scripts/modal/build.js","../../src/modal/scripts/module.js","../../src/navigation/scripts/navigation/constants.js","../../src/navigation/scripts/navigation/navigation.js","../../src/navigation/index.js","../../src/navigation/scripts/module.js","../../src/schemes/scripts/scheme/constants.js","../../src/schemes/scripts/scheme/scheme.js","../../src/schemes/index.js","../../src/schemes/scripts/switch-theme/constants.js","../../src/schemes/scripts/scheme/build.js","../../src/schemes/scripts/switch-theme/switch-theme.js","../../src/schemes/scripts/switch-theme/build.js","../../src/schemes/scripts/module.js","../../src/sidemenu/scripts/sidemenu/constants.js","../../src/sidemenu/scripts/module.js","../../src/table/scripts/table/constants.js","../../src/table/scripts/table/table.js","../../src/table/index.js","../../src/table/scripts/table/build.js","../../src/table/scripts/module.js","../../src/tabs/scripts/tabs/tab-button.js","../../src/tabs/scripts/tabs/constants.js","../../src/tabs/scripts/tabs/tabs-group.js","../../src/tabs/scripts/tabs/tab.js","../../src/tabs/index.js","../../src/tabs/scripts/tabs/build.js","../../src/tabs/scripts/module.js","../../src/header/scripts/header/constants.js","../../src/header/scripts/header/header.js","../../src/header/index.js","../../src/header/scripts/header/build.js","../../src/header/scripts/module.js"],"sourcesContent":["export const prefix = 'fr';\r\nexport const namespace = 'dsfr';\r\nexport const organisation = '@gouvfr';\r\n","import { namespace } from './config.js';\n\nconst api = window[namespace] || { core: {} };\nwindow[namespace] = api;\nexport default api;\n","import { prefix, namespace } from '../../config.js';\n\nexport const ns = (name) => `${prefix}-${name}`;\n\nns.selector = (name, notation) => {\n if (notation === undefined) notation = '.';\n return `${notation}${ns(name)}`;\n};\n\nns.attr = (name, quoted, value) => `data-${ns(name)}`;\n\nns.attr.selector = (name, value) => {\n let result = ns.attr(name);\n if (value !== undefined) result += `=\"${value}\"`;\n return `[${result}]`;\n};\n\nns.event = (type) => `${namespace}.${type}`;\n","const modifiyClass = (element, className, remove) => {\n if (className.charAt(0) === '.') className = className.substr(1);\n const classNames = element.className.split(' ');\n const index = classNames.indexOf(className);\n if (remove === true) {\n if (index > -1) classNames.splice(index, 1);\n } else if (index === -1) classNames.push(className);\n element.className = classNames.join(' ');\n};\n\nconst addClass = (element, className) => modifiyClass(element, className);\n\nexport { addClass };\n\nconst removeClass = (element, className) => modifiyClass(element, className, true);\n\nexport { removeClass };\n","class Renderer {\n constructor () {\n this.closures = [];\n this.nexts = [];\n this.rendering = this.render.bind(this);\n this.render();\n }\n\n add (closure) {\n this.closures.push(closure);\n const remove = () => {\n const index = this.closures.indexOf(closure);\n if (index !== -1) this.closures.splice(index, 1);\n };\n return remove;\n }\n\n next (closure, frame) {\n frame = frame === undefined ? 0 : frame - 1;\n if (this.nexts[frame] === undefined) this.nexts[frame] = [];\n this.nexts[frame].push(closure);\n }\n\n render () {\n window.requestAnimationFrame(this.rendering);\n for (const closure of this.closures) closure.call();\n const nexts = this.nexts.shift();\n if (nexts) {\n for (const closure of nexts) closure.call();\n }\n }\n}\n\nexport { Renderer };\n","import { Renderer } from './render/renderer';\n\n// TODO: initializer et renderer en 1, avec muttation observer pour ajouter et retirer les instances des objets attendus en fonctions de selecteurs spécifiques\nclass Engine {\n constructor () {\n this.renderer = new Renderer();\n // this.instantier = new Instancier();\n }\n\n register (selector, factory) {\n\n }\n\n start () {\n // this.renderer.start();\n }\n\n stop () {\n // this.renderer.stop();\n }\n}\n\nconst engine = new Engine();\n\nexport default engine;\n","class Initializer {\n constructor (selector, builders) {\n this.selector = selector;\n this.builders = builders;\n this.instances = [];\n\n if (document.readyState !== 'loading') window.requestAnimationFrame(this.start.bind(this));\n else document.addEventListener('DOMContentLoaded', this.start.bind(this));\n }\n\n start () {\n if (this.instances.length > 0) return;\n\n if (document.querySelectorAll(this.selector).length > 0) {\n for (let i = 0; i < this.builders.length; i++) {\n this.instances.push(this.builders[i]());\n }\n }\n }\n}\n\nexport { Initializer };\n","const instances = { };\nconst elements = { };\nlet count = 0;\n\nconst getElementId = (element) => {\n for (const id in elements) if (elements[id] === element) return id;\n count++;\n const id = count;\n elements[id] = element;\n return id;\n};\n\nclass Instance {\n constructor (element, isResizing, isRendering) {\n const id = getElementId(element);\n if (!instances[id]) instances[id] = [];\n instances[id].push(this);\n this.element = element;\n this.id = element.id;\n this._isRendering = false;\n this._isResizing = false;\n this.listeners = {};\n\n this.isResizing = isResizing;\n this.isRendering = isRendering;\n }\n\n dispatch (type, data) {\n const event = new CustomEvent(type, data);\n this.element.dispatchEvent(event);\n }\n\n listen (type, closure) {\n if (!this.listeners[type]) this.listeners[type] = [];\n if (this.listeners[type].indexOf(closure) > -1) return;\n this.listeners[type].push(closure);\n this.element.addEventListener(type, closure);\n }\n\n unlisten (type, closure) {\n if (!type) {\n for (const type in this.listeners) this.unlisten(type);\n } else if (!closure) {\n if (!this.listeners[type]) return;\n for (const closure of this.listeners[type]) this.element.removeEventListener(closure);\n this.listeners[type].length = 0;\n } else {\n if (!this.listeners[type]) return;\n const index = this.listeners[type].indexOf(closure);\n if (index > -1) this.listeners[type].splice(index, 1);\n this.element.removeEventListener(closure);\n }\n }\n\n get isRendering () { return this._isRendering; }\n\n set isRendering (value) {\n if (this._isRendering === value) return;\n this._isRendering = value;\n // TODO add & remove rendering\n }\n\n render () {}\n\n get isResizing () { return this._isResizing; }\n\n set isResizing (value) {\n if (this._isResizing === value) return;\n this._isResizing = value;\n // TODO add & remove resizing\n }\n\n resize () {}\n\n destroy () {}\n\n static getInstances (element, instanceClass) {\n const id = getElementId(element);\n if (!instances[id]) return null;\n else if (!instanceClass) return instances[id];\n else return instances[id].filter((instance) => instance instanceof instanceClass);\n }\n}\n\nexport { Instance };\n","import { ns } from '../global/namespace.js';\n\nexport const GROUP_ATTR = ns.attr('group');\n","import { GROUP_ATTR } from './constants.js';\n\nconst groups = [];\n\nclass DisclosuresGroup {\n constructor (id, element) {\n this.id = id;\n this.element = element;\n this.members = [];\n this._index = -1;\n this._current = null;\n groups.push(this);\n }\n\n static getGroupById (id) {\n for (const group of groups) if (group.constructor === this && group.id === id) return group;\n return new this(id);\n }\n\n static getGroupByElement (element) {\n for (const group of groups) if (group.element === element) return group;\n return new this(false, element);\n }\n\n static groupById (member, groupConstructor) {\n const id = member.element.getAttribute(GROUP_ATTR);\n if (id === null) return;\n\n const group = groupConstructor.getGroupById(id);\n group.add(member);\n }\n\n static groupByParent (member, GroupConstructor, groupSelector) {\n if (groupSelector === undefined) groupSelector = GroupConstructor.selector;\n if (groupSelector === '') return;\n let element = member.element.parentElement;\n\n while (element) {\n if (element.classList.contains(member.constructor.selector)) return;\n\n if (element.classList.contains(groupSelector)) {\n const group = GroupConstructor.getGroupByElement(element);\n group.add(member);\n return;\n }\n element = element.parentElement;\n }\n }\n\n static get selector () { return ''; }\n\n add (member) {\n if (this.members.indexOf(member) !== -1) return;\n this.members.push(member);\n member.setGroup(this);\n\n switch (true) {\n case this.current !== null:\n case !member.disclosed && !(member.primary && member.primary.disclosed):\n member.disclosed = false;\n break;\n\n default:\n this._current = member;\n this._index = this.members.indexOf(member);\n member.disclosed = true;\n }\n }\n\n get length () { return this.members.length; }\n\n get index () { return this._index; }\n\n set index (value) {\n if (value < -1 || value >= this.length || this._index === value) return;\n if (this.current !== null) this.current.conceal(true, true);\n this._index = value;\n this._current = this._index > -1 ? this.members[this._index] : null;\n if (this.current !== null) this.current.disclose(true);\n this.apply();\n }\n\n get current () { return this._current; }\n\n set current (member) {\n this.index = this.members.indexOf(member);\n }\n\n get hasFocus () {\n if (this.current === undefined) return null;\n return this.current.hasFocus;\n }\n\n apply () {}\n}\n\nexport { DisclosuresGroup };\n","class DisclosureButton {\n constructor (element, disclosure) {\n this.element = element;\n this.disclosure = disclosure;\n this.hasAttribute = this.element.hasAttribute(this.disclosure.attributeName);\n this.element.addEventListener('click', this.click.bind(this));\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.observe();\n }\n\n observe () {\n this.observer.observe(this.element, { attributes: true });\n }\n\n click (e) {\n this.disclosure.change(this.hasAttribute);\n }\n\n mutate (mutations) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === this.disclosure.attributeName) this.disclosure.change(this.disclosed);\n });\n }\n\n apply (value) {\n if (!this.hasAttribute) return;\n if (this.observer) this.observer.disconnect();\n this.element.setAttribute(this.disclosure.attributeName, value);\n if (this.observer) this.observe();\n }\n\n get disclosed () {\n return this.element.getAttribute(this.disclosure.attributeName) === 'true';\n }\n\n get hasFocus () {\n return this.element === document.activeElement;\n }\n}\n\nexport { DisclosureButton };\n","import { ns } from '../global/namespace.js';\n\nexport const DISCLOSE_EVENT = ns.event('DISCLOSE');\nexport const CONCEAL_EVENT = ns.event('CONCEAL');\n","import { DisclosuresGroup } from './disclosures-group.js';\nimport { DisclosureButton } from './disclosure-button.js';\nimport { addClass, removeClass } from '../manipulation/classes.js';\nimport { ns } from '../global/namespace.js';\nimport { Instance } from '../engine/instantiate/instance';\nimport { CONCEAL_EVENT, DISCLOSE_EVENT } from './events';\n\nconst disclosures = [];\n\nclass Disclosure extends Instance {\n constructor (element) {\n super(element);\n this.buttons = [];\n this._selector = this.constructor.selector;\n this.modifier = this._selector + '--' + this.type.id;\n this.attributeName = this.type.ariaState ? 'aria-' + this.type.id : ns.attr(this.type.id);\n this.pristine = true;\n\n const buttons = document.querySelectorAll(this.type.ariaControls ? `[aria-controls=\"${this.id}\"]` : ns.attr.selector('controls', this.id));\n\n if (buttons.length > 0) for (let i = 0; i < buttons.length; i++) this.addButton(buttons[i]);\n\n this.disclosed = this.primary && this.primary.disclosed;\n\n this.gather();\n }\n\n gather () {\n if (this.group) return;\n\n DisclosuresGroup.groupById(this, this.GroupConstructor);\n DisclosuresGroup.groupByParent(this, this.GroupConstructor);\n }\n\n static build (from) {\n const elements = Array.prototype.slice.call(from.querySelectorAll(`.${this.selector}`));\n\n for (const element of elements) disclosures.push(new this(element));\n }\n\n get type () { return this.constructor.type; }\n\n static get type () { return null; }\n\n static get selector () { return ''; }\n\n addButton (element) {\n const button = this.buttonFactory(element);\n if (button.hasAttribute) {\n if (this.primary === undefined) {\n this.primary = button;\n } else button.apply(this.primary.disclosed);\n }\n this.buttons.push(button);\n }\n\n get GroupConstructor () { return DisclosuresGroup; }\n\n buttonFactory (button) {\n return new DisclosureButton(button, this);\n }\n\n disclose (withhold) {\n if (this.disclosed) return false;\n this.pristine = false;\n this.disclosed = true;\n if (!withhold && this.group !== undefined) this.group.current = this;\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return false;\n this.pristine = false;\n this.disclosed = false;\n if (!preventFocus) this.focus();\n if (!withhold && this.group !== undefined) this.group.current = null;\n for (const disclosure of disclosures) if (disclosure !== this && this.element.contains(disclosure.element)) disclosure.reset();\n return true;\n }\n\n get disclosed () {\n return this._disclosed;\n }\n\n set disclosed (value) {\n if (this._disclosed === value) return;\n this.dispatch(value ? DISCLOSE_EVENT : CONCEAL_EVENT, this.type);\n this._disclosed = value;\n if (value) addClass(this.element, this.modifier);\n else removeClass(this.element, this.modifier);\n for (let i = 0; i < this.buttons.length; i++) this.buttons[i].apply(value);\n }\n\n reset () {}\n\n change (hasAttribute) {\n if (!this.constructor.type.canConceal) this.disclose();\n else {\n switch (true) {\n case !hasAttribute:\n case this.disclosed:\n this.conceal();\n break;\n\n default:\n this.disclose();\n }\n }\n }\n\n setGroup (group) {\n this.group = group;\n }\n\n get buttonHasFocus () {\n if (this.buttons.some((button) => { return button.hasFocus; })) return true;\n return false;\n }\n\n get hasFocus () {\n if (this.element === document.activeElement) return true;\n if (this.element.querySelectorAll(':focus').length > 0) return true;\n return this.buttonHasFocus;\n }\n\n focus () {\n for (let i = 0; i < this.buttons.length; i++) {\n const button = this.buttons[i];\n if (button.hasAttribute) {\n button.element.focus();\n return;\n }\n }\n }\n}\n\nDisclosure.DISCLOSE_EVENT = DISCLOSE_EVENT;\nDisclosure.CONCEAL_EVENT = CONCEAL_EVENT;\n\nexport { Disclosure };\n","export const DISCLOSURE_TYPES = {\n expand: {\n id: 'expanded',\n ariaState: true,\n ariaControls: true,\n canConceal: true\n },\n select: {\n id: 'selected',\n ariaState: true,\n ariaControls: true,\n canConceal: false\n },\n opened: {\n id: 'opened',\n ariaState: false,\n ariaControls: true,\n canConceal: true\n }\n};\n","/**\n * Utilitaire de gestion des évenements clavier\n * Utiliser KeyListener.add() pour ajouter un event listener\n */\nclass KeyListener {\n constructor (element) {\n this.element = element;\n this.collections = {};\n }\n\n /**\n * key: la touche de clavier\n * closure: la function à appliquer\n * type: event type, optionnel, si c'est en down, up ou press\n * stopPropagation: Boolean, permet d'empêcher le comportement par default de l'evenement\n */\n _add (type, action) {\n if (this.collections[type] === undefined) this.collections[type] = new KeyActionCollection(type, this.element);\n this.collections[type].add(action);\n }\n\n down (key, closure, preventDefault, stopPropagation) {\n this._add('down', new KeyAction(key, closure, preventDefault, stopPropagation));\n }\n\n up (key, closure, preventDefault, stopPropagation) {\n this._add('up', new KeyAction(key, closure, preventDefault, stopPropagation));\n }\n\n dispose () {\n for (const collection of this.collections) collection.dispose();\n this.types = null;\n }\n}\n\nclass KeyActionCollection {\n constructor (type, element) {\n this.type = type;\n this.element = element;\n this.actions = [];\n this.binding = this.handle.bind(this);\n this.element.addEventListener('key' + type, this.binding);\n }\n\n add (action) {\n this.actions.push(action);\n }\n\n handle (e) {\n for (const action of this.actions) action.handle(e);\n }\n\n dispose () {\n this.element.removeEventListener('key' + this.type, this.binding);\n this.actions = null;\n }\n}\n\nclass KeyAction {\n constructor (key, closure, preventDefault, stopPropagation) {\n this.key = key;\n this.closure = closure;\n this.preventDefault = preventDefault === true;\n this.stopPropagation = stopPropagation === true;\n }\n\n handle (e) {\n if (e.keyCode === this.key) {\n this.closure(e);\n if (this.preventDefault) {\n e.preventDefault();\n }\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n }\n }\n}\n\nKeyListener.TAB = 9;\nKeyListener.ESCAPE = 27;\nKeyListener.END = 35;\nKeyListener.HOME = 36;\nKeyListener.LEFT = 37;\nKeyListener.UP = 38;\nKeyListener.RIGHT = 39;\nKeyListener.DOWN = 40;\n\nexport { KeyListener };\n","import { ns } from '../global/namespace.js';\n\nexport const COLLAPSE_CLASS = ns('collapse');\n","import { Disclosure } from '../disclosure/disclosure.js';\nimport { DisclosuresGroup } from '../disclosure/disclosures-group.js';\nimport { COLLAPSE_CLASS } from './constants.js';\nimport { DISCLOSURE_TYPES } from '../disclosure/disclosure-types.js';\n\nconst collapses = [];\nconst ascendants = {};\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass Collapse extends Disclosure {\n constructor (element) {\n super(element);\n collapses.push(this);\n this.requesting = this.request.bind(this);\n element.addEventListener('transitionend', this.transitionend.bind(this));\n if (this.disclosed) this.unbound();\n }\n\n gatherByAscendants () {\n if (this.group) return;\n\n for (const ascendant in ascendants) {\n let element = this.element.parentElement;\n\n while (element) {\n if (element.classList.contains(ascendant)) {\n if (typeof ascendants[ascendant] === 'string') {\n DisclosuresGroup.groupByParent(this, DisclosuresGroup, ascendants[ascendant]);\n } else {\n DisclosuresGroup.groupByParent(this, ascendants[ascendant]);\n }\n return;\n }\n\n element = element.parentElement;\n }\n }\n }\n\n gather () {\n this.gatherByAscendants();\n super.gather();\n }\n\n static get type () { return DISCLOSURE_TYPES.expand; }\n static get selector () { return COLLAPSE_CLASS; }\n\n static register (ascendant, groupSelector) {\n ascendants[ascendant] = groupSelector;\n for (const collapse of collapses) collapse.gatherByAscendants();\n }\n\n transitionend (e) {\n if (!this.disclosed) this.element.style.maxHeight = '';\n }\n\n unbound () {\n this.element.style.maxHeight = 'none';\n }\n\n disclose (withhold) {\n if (this.disclosed) return;\n this.unbound();\n this.adjust();\n this.requested = () => { super.disclose(withhold); };\n window.requestAnimationFrame(this.requesting);\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return;\n this.adjust();\n this.requested = () => { super.conceal(withhold, preventFocus); };\n window.requestAnimationFrame(this.requesting);\n }\n\n request () {\n if (this.requested) this.requested();\n this.requested = null;\n }\n\n adjust () {\n this.element.style.setProperty('--collapser', 'none');\n const height = this.element.offsetHeight;\n this.element.style.setProperty('--collapse', -height + 'px');\n this.element.style.setProperty('--collapser', '');\n }\n\n reset () {\n if (!this.pristine) this.disclosed = false;\n }\n}\n\nexport { Collapse };\n","class EquisizedGroup {\n constructor (selector, groups) {\n this.selector = selector;\n this.groups = typeof groups === 'string' ? document.querySelectorAll(groups) : groups;\n\n for (let i = 0; i < this.groups.length; i++) {\n this.equisizedGroups.push(new Equisized(this.selector, this.groups[i]));\n }\n\n this.changing = this.change.bind(this);\n window.addEventListener('resize', this.changing);\n this.change();\n }\n\n change () {\n for (let i = 0; i < this.equisizedGroups.length; i++) {\n this.equisizedGroups[i].change();\n }\n }\n}\n\nclass Equisized {\n constructor (selector, group) {\n this.selector = selector;\n this.group = group;\n this.elements = this.group.querySelectorAll(this.selector);\n this.maxWidth = 0;\n\n this.changing = this.change.bind(this);\n window.addEventListener('resize', this.changing);\n window.addEventListener('load', this.changing); // fix change before css load\n // this.change();\n }\n\n change () {\n this.reset();\n for (let i = 0; i < this.elements.length; i++) {\n const tmpWWidth = this._getWidth(this.elements[i]);\n if (tmpWWidth > this.maxWidth) {\n this.maxWidth = tmpWWidth;\n }\n }\n this.apply();\n }\n\n apply () {\n for (let i = 0; i < this.elements.length; i++) {\n this.elements[i].style.width = this.maxWidth + 1 + 'px';\n }\n }\n\n reset () {\n for (let i = 0; i < this.elements.length; i++) {\n this.elements[i].style.width = 'auto';\n }\n this.maxWidth = 0;\n }\n\n _getWidth (el) {\n let width = el.offsetWidth;\n const style = getComputedStyle(el);\n width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n return width;\n }\n}\n\nexport { Equisized, EquisizedGroup };\n","import api from './api.js';\nimport { ns } from './scripts/global/namespace.js';\nimport { addClass, removeClass } from './scripts/manipulation/classes.js';\nimport engine from './scripts/engine/engine.js';\nimport { Initializer } from './scripts/global/initializer.js';\nimport { Instance } from './scripts/engine/instantiate/instance.js';\n\nimport { Disclosure } from './scripts/disclosure/disclosure.js';\nimport { DisclosureButton } from './scripts/disclosure/disclosure-button.js';\nimport { DisclosuresGroup } from './scripts/disclosure/disclosures-group.js';\nimport { DISCLOSURE_TYPES } from './scripts/disclosure/disclosure-types.js';\n\nimport { KeyListener } from './scripts/key-listener/key-listener.js';\nimport { Collapse } from './scripts/collapse/collapse.js';\nimport { Equisized } from './scripts/manipulation/size.js';\n\napi.core.ns = ns;\napi.core.addClass = addClass;\napi.core.removeClass = removeClass;\napi.core.engine = engine;\napi.core.Instance = Instance;\napi.core.Initializer = Initializer;\napi.core.Disclosure = Disclosure;\napi.core.DisclosureButton = DisclosureButton;\napi.core.DisclosuresGroup = DisclosuresGroup;\napi.core.DISCLOSURE_TYPES = DISCLOSURE_TYPES;\n\napi.KeyListener = KeyListener;\napi.Collapse = Collapse;\napi.Equisized = Equisized;\n\nexport default api;\n","import { Collapse } from './collapse.js';\n\nconst build = () => {\n Collapse.build(document);\n};\n\nexport default build;\n","/* eslint-disable no-new */\nimport { Initializer } from './global/initializer.js';\nimport build from './collapse/build.js';\nimport { COLLAPSE_CLASS } from './collapse/constants.js';\n\nnew Initializer(`.${COLLAPSE_CLASS}`, [build]);\n","import api from '../../api.js';\n\nexport const ACCORDIONS_GROUP = api.core.ns('accordions-group');\nexport const ACCORDION_ASCENDANT = api.core.ns('accordion');\n","import api from '../../api.js';\nimport { ACCORDIONS_GROUP } from './constants.js';\n\nclass AccordionsGroup extends api.core.DisclosuresGroup {\n static get selector () { return ACCORDIONS_GROUP; }\n}\n\nexport { AccordionsGroup };\n","import api from './api.js';\nimport { AccordionsGroup } from './scripts/accordion/accordions-group.js';\n\napi.AccordionsGroup = AccordionsGroup;\n\nexport default api;\n","import api from '../api.js';\nimport { ACCORDION_ASCENDANT } from './accordion/constants.js';\nimport { AccordionsGroup } from './accordion/accordions-group.js';\n\napi.Collapse.register(ACCORDION_ASCENDANT, AccordionsGroup);\n","import api from '../../api.js';\n\nexport const BREADCRUMB_COLLAPSE_SELECTOR = `${api.core.ns.selector('breadcrumb')} ${api.core.ns.selector('collapse')}`;\n","import api from '../../api.js';\n\nclass Breadcrumb extends api.core.Instance {\n constructor (element) {\n super(element);\n this.collapse = api.core.Instance.getInstances(element, api.Collapse)[0];\n this.links = [...this.element.querySelectorAll('a[href]')];\n this.count = 0;\n if (this.links.length) {\n this.listen(api.core.Disclosure.DISCLOSE_EVENT, this.focus.bind(this));\n // TODO: refactor avec instance\n this.resizing = this.resize.bind(this);\n window.addEventListener('resize', this.resizing);\n }\n }\n\n focus () {\n this.links[0].focus();\n api.core.engine.renderer.next(() => { this.verify(); });\n }\n\n verify () {\n this.count++;\n if (this.count > 100) return;\n if (document.activeElement !== this.links[0]) this.focus();\n }\n\n resize () {\n if (window.matchMedia('(min-width: 48em)').matches) {\n if (this.collapse.buttons[0] === document.activeElement) this.links.focus();\n } else {\n if (this.links.indexOf(document.activeElement) > -1) this.collapse.focus();\n }\n }\n}\n\nexport { Breadcrumb };\n","import { BREADCRUMB_COLLAPSE_SELECTOR } from './constants';\nimport { Breadcrumb } from './breadcrumb';\n\nconst build = () => {\n const breadcrumbs = [];\n const breadcrumbNodes = document.querySelectorAll(BREADCRUMB_COLLAPSE_SELECTOR);\n for (let i = 0; i < breadcrumbNodes.length; i++) breadcrumbs.push(new Breadcrumb(breadcrumbNodes[i]));\n};\n\nexport default build;\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport build from './breadcrumb/build.js';\nimport { BREADCRUMB_COLLAPSE_SELECTOR } from './breadcrumb/constants';\n\nnew api.core.Initializer(BREADCRUMB_COLLAPSE_SELECTOR, [build]);\n","import api from '../../api.js';\n\nexport const BUTTON_SELECTOR = api.core.ns.selector('btn');\nexport const BUTTONS_GROUP_SELECTOR = api.core.ns.selector('btns-group');\nexport const EQUISIZED_BUTTONS_GROUP_SELECTOR = api.core.ns.selector('btns-group--equisized');\n","import api from '../../api.js';\nimport { BUTTON_SELECTOR, EQUISIZED_BUTTONS_GROUP_SELECTOR } from './constants';\n\nconst build = () => {\n const group = document.querySelectorAll(EQUISIZED_BUTTONS_GROUP_SELECTOR);\n const arrayEquisized = [];\n for (let i = 0; i < group.length; i++) {\n arrayEquisized.push(new api.Equisized(BUTTON_SELECTOR, group[i]));\n }\n};\n\nexport default build;\n","/* eslint-disable no-new */\nimport api from '../api.js';\n\nimport build from './buttons/build.js';\nimport { BUTTONS_GROUP_SELECTOR } from './buttons/constants';\n\nnew api.core.Initializer(BUTTONS_GROUP_SELECTOR, [build]);\n","import api from '../../api.js';\n\nexport const MODAL_SELECTOR = api.core.ns.selector('modal');\nexport const MODAL_CLASS = api.core.ns('modal');\nexport const NO_SCROLL_CLASS = api.core.ns('no-scroll');\nexport const SCROLL_SHADOW_CLASS = api.core.ns('scroll-shadow');\nexport const MODAL_BODY_SELECTOR = api.core.ns.selector('modal__body');\nexport const OFFSET_MOBILE = 32; // 32px => 8v => 2rem\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\" i])',\n 'details>summary:first-of-type',\n 'details'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst isFocusable = (element, container) => {\n if (window.getComputedStyle(element).visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (window.getComputedStyle(element).display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n api.core.engine.renderer.next(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n\n this.stunneds = [];\n // this.stun(document.body);\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = [...this.element.querySelectorAll(UNORDEREDS)];\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = [...document.documentElement.querySelectorAll('input[type=\"radio\"]')];\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = [...this.element.querySelectorAll(ORDEREDS)];\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n this.element = null;\n\n // for (const stunned of this.stunneds) stunned.unstun();\n // this.stunneds = [];\n\n if (this.onUntrap) this.onUntrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super();\n this.trap = new FocusTrap();\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.trap.untrap();\n else this.trap.trap(this.current.element);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport {\n OFFSET_MOBILE,\n NO_SCROLL_CLASS,\n MODAL_CLASS,\n SCROLL_SHADOW_CLASS,\n MODAL_BODY_SELECTOR\n} from './constants';\nimport { ModalsGroup } from './modals-group';\n\nconst group = new ModalsGroup();\n\nclass Modal extends api.core.Disclosure {\n constructor (element) {\n super(element);\n this.body = this.element.querySelector(MODAL_BODY_SELECTOR);\n this.scrollDistance = 0;\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n this.init();\n this.resize(true);\n }\n\n init () {\n this.element.addEventListener('click', this.click.bind(this));\n\n this.keyListener = new api.KeyListener(this.element);\n this.keyListener.down(api.KeyListener.ESCAPE, this.conceal.bind(this), true, true);\n\n if (this.body) {\n this.body.addEventListener('scroll', this.scrolling);\n window.addEventListener('resize', this.resizing);\n // window.addEventListener('orientationchange', this.resizing);\n }\n }\n\n click (e) {\n if (this.body && this.body !== e.target && !this.body.contains(e.target)) this.conceal();\n }\n\n gather () {\n group.add(this);\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n this.resize(true);\n this.handleScroll(false);\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.handleScroll(true);\n return true;\n }\n\n /**\n * Fixe l'arrière plan quand la modal est ouverte\n */\n // TODO: créer une fonction de fix de scroll dans core (api.noScroll = true)\n handleScroll (isScrollable) {\n if (isScrollable) {\n api.core.removeClass(document.documentElement, NO_SCROLL_CLASS);\n document.body.style.top = '';\n window.scroll(0, this.scrollDistance);\n } else {\n if (!document.documentElement.classList.contains(NO_SCROLL_CLASS)) {\n this.scrollDistance = window.scrollY;\n }\n document.body.style.top = this.scrollDistance * -1 + 'px';\n api.core.addClass(document.documentElement, NO_SCROLL_CLASS);\n }\n }\n\n /**\n * Ajoute une ombre autour du footer lorsque l'on peut scroller dans la modale\n * corrige le 100vh, en mobile notamment, lorsque la barre navigateur est présente par exemple.\n */\n resize (isResizing, e) {\n if (!this.body) return;\n if (this.body.scrollHeight > this.body.clientHeight) {\n if (this.body.offsetHeight + this.body.scrollTop >= this.body.scrollHeight) {\n api.core.removeClass(this.body, SCROLL_SHADOW_CLASS);\n } else {\n api.core.addClass(this.body, SCROLL_SHADOW_CLASS);\n }\n } else {\n api.core.removeClass(this.body, SCROLL_SHADOW_CLASS);\n }\n\n this.isMedium = window.matchMedia('(min-width: 48em)').matches;\n\n if (isResizing) {\n if (this.isMedium) {\n this.body.style.removeProperty('max-height');\n } else {\n this.body.style.maxHeight = (window.innerHeight - OFFSET_MOBILE) + 'px';\n // Une deuxième fois après positionnement des barres du navigateur (ios)\n api.core.engine.renderer.next(() => {\n this.body.style.maxHeight = (window.innerHeight - OFFSET_MOBILE) + 'px';\n });\n }\n }\n }\n\n static get type () { return api.core.DISCLOSURE_TYPES.opened; }\n static get selector () { return MODAL_CLASS; }\n\n get GroupConstructor () { return ModalsGroup; }\n}\n\nexport { Modal };\n","import api from './api.js';\n\nimport { Modal } from './scripts/modal/modal';\nimport { ModalsGroup } from './scripts/modal/modals-group';\nimport { FocusTrap } from './scripts/modal/focus-trap';\n\napi.Modal = Modal;\napi.ModalsGroup = ModalsGroup;\napi.FocusTrap = FocusTrap;\n\nexport default api;\n","import { Modal } from './modal';\n\n/**\n * initialise tout les éléments Modal dans la page\n */\nconst build = () => {\n Modal.build(document);\n};\n\nexport { build };\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport { build } from './modal/build.js';\nimport { MODAL_SELECTOR } from './modal/constants.js';\n\nnew api.core.Initializer(MODAL_SELECTOR, [build]);\n","import api from '../../api.js';\n\nexport const NAVIGATION_CLASS = api.core.ns('nav');\nexport const NAVIGATION_LIST_CLASS = api.core.ns('nav__list');\nexport const NAVIGATION_ITEM_CLASS = api.core.ns('nav__item');\nexport const NAVIGATION_ITEM_RIGHT_CLASS = api.core.ns('nav__item--align-right');\nexport const NAVIGATION_MENU_CLASS = api.core.ns('menu');\n","import api from '../../api.js';\nimport {\n NAVIGATION_CLASS,\n NAVIGATION_ITEM_CLASS,\n NAVIGATION_LIST_CLASS,\n NAVIGATION_MENU_CLASS,\n NAVIGATION_ITEM_RIGHT_CLASS\n} from './constants';\n\nclass Navigation extends api.core.DisclosuresGroup {\n constructor (id, element) {\n super(id, element);\n\n this.menus = [];\n\n this.navList = element.querySelector(`.${NAVIGATION_LIST_CLASS}`);\n\n document.addEventListener('focusout', this.focusOut.bind(this));\n window.addEventListener('resize', this.resize.bind(this));\n window.addEventListener('orientationchange', this.resize.bind(this));\n this.resize();\n }\n\n static get selector () { return NAVIGATION_CLASS; }\n\n add (member) {\n super.add(member);\n\n if (member.element.classList.contains(NAVIGATION_MENU_CLASS)) {\n this.menus.push(new NavigationMenu(member, this.navList.getBoundingClientRect().right));\n }\n }\n\n focusOut (e) {\n requestAnimationFrame(() => {\n if (this.current !== null && !this.current.hasFocus) this.index = -1;\n });\n }\n\n get index () { return super.index; }\n\n set index (value) {\n if (value === -1 && this.current !== null && this.current.hasFocus) this.current.focus();\n super.index = value;\n }\n\n resize () {\n const right = this.navList.getBoundingClientRect().right;\n\n for (const menu of this.menus) menu.place(right);\n }\n}\n\nclass NavigationMenu {\n constructor (collapse, right) {\n this.initialize(collapse);\n this.place(right);\n }\n\n initialize (collapse) {\n this.element = collapse.element;\n\n for (const button of collapse.buttons) {\n if (!button.hasAttribute) continue;\n this.button = button.element;\n break;\n }\n\n let item = this.element.parentElement;\n while (item) {\n if (item.classList.contains(NAVIGATION_ITEM_CLASS)) {\n this.item = item;\n break;\n }\n item = item.parentElement;\n }\n }\n\n place (right) {\n const styles = getComputedStyle(this.element);\n const width = parseFloat(styles.width);\n const left = this.button.getBoundingClientRect().left;\n\n if (left + width > right) api.core.addClass(this.item, NAVIGATION_ITEM_RIGHT_CLASS);\n else api.core.removeClass(this.item, NAVIGATION_ITEM_RIGHT_CLASS);\n }\n}\n\nexport { Navigation };\n","import api from './api.js';\nimport { Navigation } from './scripts/navigation/navigation';\n\napi.Navigation = Navigation;\n\nexport default api;\n","import api from '../api.js';\nimport { NAVIGATION_CLASS } from './navigation/constants.js';\nimport { Navigation } from './navigation/navigation.js';\n\napi.Collapse.register(NAVIGATION_CLASS, Navigation);\n","import api from '../../api.js';\n\nexport const SCHEME_ATTR = api.core.ns.attr('theme');\nexport const TRANSITION_ATTR = api.core.ns.attr('transition');\n","import { SCHEME_ATTR, TRANSITION_ATTR } from './constants';\n\n/**\n * TODO: implémenter la valeur system\n * window.matchMedia(\"(prefers-color-scheme: dark)\").addListener(\n e => e.matches && activateDarkMode()) // listener\n );\n */\n\nclass Scheme {\n constructor () {\n this.init();\n }\n\n init () {\n this.root = document.documentElement;\n\n this.scheme = localStorage.getItem('scheme')\n ? localStorage.getItem('scheme')\n : null;\n\n if (this.scheme === null) {\n const scheme = this.root.getAttribute(SCHEME_ATTR);\n if (scheme === 'dark' || scheme === 'light') {\n this.scheme = scheme;\n } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n this.scheme = 'dark';\n localStorage.setItem('scheme', 'dark');\n } else this.scheme = 'light';\n }\n\n if (this.scheme === 'dark') {\n if (!this.root.hasAttribute(TRANSITION_ATTR)) {\n this.root.setAttribute(SCHEME_ATTR, 'dark');\n } else {\n this.root.removeAttribute(TRANSITION_ATTR);\n this.root.setAttribute(SCHEME_ATTR, 'dark');\n\n setTimeout(() => {\n this.root.setAttribute(TRANSITION_ATTR, '');\n }, 300);\n }\n } else this.root.setAttribute(SCHEME_ATTR, 'light');\n\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.observer.observe(this.root, { attributes: true });\n }\n\n mutate (mutations) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === SCHEME_ATTR) {\n const scheme = this.root.getAttribute(SCHEME_ATTR);\n if (scheme === 'dark') {\n localStorage.setItem('scheme', 'dark');\n } else if (scheme === 'light') {\n localStorage.setItem('scheme', 'light');\n }\n }\n });\n }\n}\n\nexport { Scheme };\n","import api from './api.js';\nimport { Scheme } from './scripts/scheme/scheme';\n\napi.Scheme = Scheme;\n\nexport default api;\n","import api from '../../api.js';\n\nexport const RADIOS_THEME_NAME = `input[name=\"${api.core.ns.selector('radios-theme', '')}\"]`;\nexport const SWITCH_THEME_ID = api.core.ns.selector('switch-theme', '#');\nexport const THEME_ATTR = api.core.ns.attr('theme');\n","/* eslint-disable no-new */\nimport { Scheme } from './scheme';\n\nconst build = () => {\n new Scheme();\n};\n\nexport default build;\n","import { RADIOS_THEME_NAME, THEME_ATTR } from './constants';\n\nclass SwitchTheme {\n constructor () {\n this.attributeName = THEME_ATTR;\n this.theme = null;\n this.radios = document.querySelectorAll(RADIOS_THEME_NAME);\n\n for (var i = 0; i < this.radios.length; i++) {\n this.radios[i].addEventListener('change', this.change.bind(this));\n }\n\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.observe();\n this.apply();\n }\n\n observe () {\n this.observer.observe(document.documentElement, { attributes: true });\n }\n\n mutate (mutations) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === this.attributeName) {\n this.apply();\n }\n });\n }\n\n apply () {\n const theme = document.documentElement.getAttribute(this.attributeName);\n this.isApplying = true;\n for (var i = 0; i < this.radios.length; i++) {\n this.radios[i].checked = this.radios[i].value === theme;\n }\n this.isApplying = false;\n }\n\n change () {\n if (this.isApplying) return;\n if (this.observer) this.observer.disconnect();\n this.theme = document.querySelector(RADIOS_THEME_NAME + ':checked');\n if (this.theme) {\n document.documentElement.setAttribute(this.attributeName, this.theme.value);\n } else {\n document.documentElement.removeAttribute(this.attributeName);\n }\n if (this.observer) this.observe();\n }\n}\n\nexport { SwitchTheme };\n","/* eslint-disable no-new */\nimport { SwitchTheme } from './switch-theme';\n\nconst build = () => {\n new SwitchTheme();\n};\n\nexport default build;\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport { SCHEME_ATTR } from './scheme/constants';\nimport { SWITCH_THEME_ID } from './switch-theme/constants';\nimport buildScheme from './scheme/build';\nimport buildSwitch from './switch-theme/build';\n\nnew api.core.Initializer(`:root[${SCHEME_ATTR}]`, [buildScheme]);\nnew api.core.Initializer(`${SWITCH_THEME_ID}`, [buildSwitch]);\n","import api from '../../api.js';\n\nexport const SIDEMENU_CLASS = api.core.ns('sidemenu');\nexport const SIDEMENU_LIST_CLASS = api.core.ns('sidemenu__list');\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport { SIDEMENU_CLASS, SIDEMENU_LIST_CLASS } from './sidemenu/constants';\n\napi.Collapse.register(SIDEMENU_CLASS, SIDEMENU_LIST_CLASS);\n","import api from '../../api.js';\n\nexport const TABLE_SELECTOR = api.core.ns.selector('table');\n// export const TABLE_CLASS = api.core.ns('table');\nexport const TABLE_SCROLLING_SELECTOR = `${api.core.ns.selector('table')}:not(${api.core.ns.selector('table--no-scroll')})`;\nexport const LEFT = 'left';\nexport const RIGHT = 'right';\nexport const SHADOW_CLASS = api.core.ns('table--shadow');\nexport const SHADOW_LEFT_CLASS = api.core.ns('table--shadow-left');\nexport const SHADOW_RIGHT_CLASS = api.core.ns('table--shadow-right');\nexport const WRAPPER_CLASS = api.core.ns('table__wrapper');\nexport const CAPTION_BOTTOM_CLASS = api.core.ns('table--caption-bottom');\nexport const SCROLL_OFFSET = 1; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n","import api from '../../api.js';\nimport {\n SHADOW_CLASS,\n SHADOW_LEFT_CLASS,\n SHADOW_RIGHT_CLASS,\n WRAPPER_CLASS,\n LEFT,\n RIGHT,\n CAPTION_BOTTOM_CLASS, SCROLL_OFFSET\n} from './constants.js';\n\nclass Table {\n constructor (table) {\n this.init(table);\n }\n\n init (table) {\n this.table = table;\n this.tableElem = this.table.querySelector('table');\n this.tableContent = this.tableElem.querySelector('tbody');\n this.isScrollable = this.tableContent.offsetWidth > this.tableElem.offsetWidth;\n this.caption = this.tableElem.querySelector('caption');\n this.captionHeight = 0;\n this.wrap();\n\n const scrolling = this.change.bind(this);\n this.tableElem.addEventListener('scroll', scrolling);\n this.change();\n }\n\n change () {\n const newScroll = this.tableContent.offsetWidth > this.tableElem.offsetWidth;\n let firstTimeScrollable = this.tableElem.offsetWidth > this.table.offsetWidth;\n if (newScroll || firstTimeScrollable) {\n this.scroll();\n this.handleCaption();\n } else {\n if (newScroll !== this.isScrollable) this.delete();\n }\n this.isScrollable = newScroll;\n firstTimeScrollable = false;\n }\n\n delete () {\n api.core.removeClass(this.table, SHADOW_RIGHT_CLASS);\n api.core.removeClass(this.table, SHADOW_LEFT_CLASS);\n api.core.removeClass(this.table, SHADOW_CLASS);\n if (this.caption) {\n this.tableElem.style.marginTop = '';\n this.caption.style.top = '';\n this.tableElem.style.marginBottom = '';\n this.caption.style.bottom = '';\n }\n }\n\n scroll () {\n api.core.addClass(this.table, SHADOW_CLASS);\n this.setShadowPosition();\n }\n\n /* ajoute un wrapper autour du tableau */\n wrap () {\n const wrapperHtml = document.createElement('div');\n wrapperHtml.className = WRAPPER_CLASS;\n this.table.insertBefore(wrapperHtml, this.tableElem);\n wrapperHtml.appendChild(this.tableElem);\n this.tableInnerWrapper = wrapperHtml;\n }\n\n /* affiche les blocs shadow en fonction de la position du scroll, en ajoutant la classe visible */\n setShadowPosition () {\n const tableScrollLeft = this.getScrollPosition(LEFT);\n const tableScrollRight = this.getScrollPosition(RIGHT);\n\n // on inverse en cas de lecture droite - gauche\n if (document.documentElement.getAttribute('dir') === 'rtl') {\n this.setShadowVisibility(RIGHT, tableScrollLeft);\n this.setShadowVisibility(LEFT, tableScrollRight);\n } else {\n this.setShadowVisibility(LEFT, tableScrollLeft);\n this.setShadowVisibility(RIGHT, tableScrollRight);\n }\n }\n\n /* Donne le nombre de pixels scrollés honrizontalement dans un element scrollable */\n getScrollPosition (side) {\n let inverter = 1;\n // on inverse en cas de lecture droite - gauche pour que la valeur de scroll soit toujours positive\n if (document.documentElement.getAttribute('dir') === 'rtl') {\n inverter = -1;\n }\n switch (side) {\n case LEFT:\n return this.tableElem.scrollLeft * inverter;\n case RIGHT:\n return this.tableContent.offsetWidth - this.tableElem.offsetWidth - this.tableElem.scrollLeft * inverter;\n default:\n return false;\n }\n }\n\n /* positionne la caption en top négatif et ajoute un margin-top au wrapper */\n handleCaption () {\n if (this.caption) {\n const style = getComputedStyle(this.caption);\n const newHeight = this.caption.offsetHeight + parseInt(style.marginTop) + parseInt(style.marginBottom);\n this.captionHeight = newHeight;\n if (this.table.classList.contains(CAPTION_BOTTOM_CLASS)) {\n this.tableElem.style.marginBottom = this.captionHeight + 'px';\n this.caption.style.bottom = -this.captionHeight + 'px';\n } else {\n this.tableElem.style.marginTop = this.captionHeight + 'px';\n this.caption.style.top = -this.captionHeight + 'px';\n }\n }\n }\n\n /* ajoute la classe fr-table--shadow-right ou fr-table--shadow-right sur fr-table\n en fonction d'une valeur de scroll et du sens (right, left) */\n setShadowVisibility (side, scrollPosition) {\n // si on a pas scroll, ou qu'on scroll jusqu'au bout\n if (scrollPosition <= SCROLL_OFFSET) {\n if (side === LEFT) api.core.removeClass(this.table, SHADOW_LEFT_CLASS);\n else if (side === RIGHT) api.core.removeClass(this.table, SHADOW_RIGHT_CLASS);\n } else {\n if (side === LEFT) api.core.addClass(this.table, SHADOW_LEFT_CLASS);\n else if (side === RIGHT) api.core.addClass(this.table, SHADOW_RIGHT_CLASS);\n }\n }\n}\n\nexport { Table };\n","import api from './api.js';\nimport { Table } from './scripts/table/table.js';\n\napi.Table = Table;\n\nexport default api;\n","import { TABLE_SCROLLING_SELECTOR } from './constants';\nimport { Table } from './table';\n\nconst tables = [];\n\nconst change = () => {\n for (let i = 0; i < tables.length; i++) tables[i].change();\n};\n\nconst build = () => {\n const tableNodes = document.querySelectorAll(TABLE_SCROLLING_SELECTOR);\n for (let i = 0; i < tableNodes.length; i++) tables.push(new Table(tableNodes[i]));\n\n window.addEventListener('resize', change);\n window.addEventListener('orientationchange', change);\n change();\n};\n\nexport { build };\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport { build } from './table/build.js';\nimport { TABLE_SELECTOR } from './table/constants';\n\nnew api.core.Initializer(TABLE_SELECTOR, [build]);\n","import api from '../../api';\n\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n apply (value) {\n super.apply(value);\n if (this.hasAttribute) {\n this.element.setAttribute('tabindex', value ? '0' : '-1');\n }\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TABS_SELECTOR = api.core.ns.selector('tabs');\nexport const TABS_CLASS = api.core.ns('tabs');\nexport const TAB_CLASS = api.core.ns('tabs__tab');\nexport const PANEL_CLASS = api.core.ns('tabs__panel');\nexport const LIST_CLASS = api.core.ns('tabs__list');\n\nexport const TRANSITION_TIME = 100;\n","import api from '../../api.js';\nimport { LIST_CLASS, TAB_CLASS, TABS_CLASS } from './constants';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor (id, element) {\n super(id, element);\n this.list = element.querySelector(`.${LIST_CLASS}`);\n\n element.addEventListener('transitionend', this.transitionend.bind(this));\n\n this.init();\n api.core.engine.renderer.add(this.render.bind(this));\n }\n\n static get selector () { return TABS_CLASS; }\n\n transitionend (e) {\n this.element.style.transition = 'none';\n }\n\n init () {\n this.keyListener = new api.KeyListener(this.element);\n this.keyListener.down(api.KeyListener.RIGHT, this.arrowRightPress.bind(this), true, true);\n this.keyListener.down(api.KeyListener.LEFT, this.arrowLeftPress.bind(this), true, true);\n this.keyListener.down(api.KeyListener.HOME, this.homePress.bind(this), true, true);\n this.keyListener.down(api.KeyListener.END, this.endPress.bind(this), true, true);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n arrowRightPress () {\n if (document.activeElement.classList.contains(TAB_CLASS)) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n arrowLeftPress () {\n if (document.activeElement.classList.contains(TAB_CLASS)) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n homePress () {\n if (document.activeElement.classList.contains(TAB_CLASS)) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n endPress () {\n if (document.activeElement.classList.contains(TAB_CLASS)) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) this.current.focus();\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(-1);\n this.current.element.style.transition = '';\n this.current.element.style.transform = '';\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(1);\n this.element.style.transition = '';\n }\n\n add (tab) {\n super.add(tab);\n if (this.length === 1 || tab.disclosed) this.current = tab;\n else {\n const index = this.members.indexOf(tab);\n if (this._index > -1 && this._index !== index) tab.translate(index < this._index ? -1 : 1, true);\n }\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.element.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n this.element.style.height = (this.panelHeight + this.list.offsetHeight) + 'px';\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { PANEL_CLASS } from './constants.js';\nimport { TabsGroup } from './tabs-group.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass Tab extends api.core.Disclosure {\n static get type () { return api.core.DISCLOSURE_TYPES.select; }\n static get selector () { return PANEL_CLASS; }\n\n get GroupConstructor () { return TabsGroup; }\n\n buttonFactory (element) {\n return new TabButton(element, this);\n }\n\n translate (direction, initial) {\n this.element.style.transition = initial ? 'none' : '';\n this.element.style.transform = `translate(${direction * 100}%)`;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { Tab };\n","import api from './api.js';\nimport { Tab } from './scripts/tabs/tab.js';\nimport { TabButton } from './scripts/tabs/tab-button.js';\nimport { TabsGroup } from './scripts/tabs/tabs-group';\n\napi.Tab = Tab;\napi.TabButton = TabButton;\napi.TabsGroup = TabsGroup;\n\nexport default api;\n","import { Tab } from './tab';\n\n/**\n* Initialise tout les éléments Tab dans la page\n*/\nconst build = () => {\n Tab.build(document);\n};\n\nexport { build };\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport { build } from './tabs/build.js';\nimport { TABS_SELECTOR } from './tabs/constants.js';\n\nnew api.core.Initializer(TABS_SELECTOR, [build]);\n","import api from '../../api.js';\n\nexport const HEADER_SELECTOR = api.core.ns.selector('header');\nexport const HEADER_SEARCH_SELECTOR = api.core.ns.selector('header__search');\nexport const HEADER_MENU_SELECTOR = api.core.ns.selector('header__menu');\nexport const HEADER_TOOLS_LINKS_SELECTOR = api.core.ns.selector('header__tools-links');\nexport const HEADER_MENU_LINKS_SELECTOR = api.core.ns.selector('header__menu-links');\nexport const HEADER_LINKS_GROUP_SELECTOR = `${HEADER_TOOLS_LINKS_SELECTOR} ${api.core.ns.selector('links-group')}`;\n","import api from '../../api.js';\nimport {\n HEADER_MENU_SELECTOR,\n HEADER_SEARCH_SELECTOR,\n HEADER_SELECTOR,\n HEADER_LINKS_GROUP_SELECTOR,\n HEADER_TOOLS_LINKS_SELECTOR,\n HEADER_MENU_LINKS_SELECTOR\n} from './constants';\n\nclass Header {\n constructor (header) {\n this.header = header || document.querySelector(HEADER_SELECTOR);\n this.modals = [];\n\n this.init();\n }\n\n getModal (selector) {\n const element = this.header.querySelector(selector);\n if (!element) return;\n const modals = api.core.Instance.getInstances(element, api.Modal);\n if (!modals || !modals.length) return;\n this.modals.push(new HeaderModal(modals[0]));\n }\n\n init () {\n this.getModal(HEADER_SEARCH_SELECTOR);\n this.getModal(HEADER_MENU_SELECTOR);\n\n this.linksGroup = this.header.querySelector(HEADER_LINKS_GROUP_SELECTOR);\n\n this.toolsLinks = this.header.querySelector(HEADER_TOOLS_LINKS_SELECTOR);\n this.menuLinks = this.header.querySelector(HEADER_MENU_LINKS_SELECTOR);\n\n this.changing = this.change.bind(this);\n\n window.addEventListener('resize', this.changing);\n this.change();\n }\n\n change () {\n this.isLarge = window.matchMedia('(min-width: 62em)').matches;\n\n if (this.isLarge) this.modals.forEach((modal) => modal.disable());\n else this.modals.forEach((modal) => modal.enable());\n\n if (this.linksGroup !== null) {\n if (this.isLarge) this.toolsLinks.appendChild(this.linksGroup);\n else this.menuLinks.appendChild(this.linksGroup);\n }\n }\n}\n\nclass HeaderModal {\n constructor (modal) {\n this.modal = modal;\n }\n\n enable () {\n this.modal.element.setAttribute('role', 'dialog');\n this.modal.element.setAttribute('aria-labelledby', this.modal.primary.element.id);\n }\n\n disable () {\n this.modal.conceal();\n this.modal.element.removeAttribute('role');\n this.modal.element.removeAttribute('aria-labelledby');\n }\n}\n\nexport { Header };\n","import api from './api.js';\nimport { Header } from './scripts/header/header';\n\napi.Header = Header;\n\nexport default api;\n","import { Header } from './header.js';\nimport { HEADER_SELECTOR } from './constants';\n\nconst build = () => {\n const elements = Array.prototype.slice.call(document.querySelectorAll(HEADER_SELECTOR));\n\n const headers = [];\n\n for (const element of elements) headers.push(new Header(element));\n};\n\nexport { build };\n","/* eslint-disable no-new */\nimport api from '../api.js';\nimport { HEADER_SELECTOR } from './header/constants.js';\nimport { build } from './header/build.js';\n\nnew api.core.Initializer(HEADER_SELECTOR, [build]);\n"],"names":["const","let","this","closure","id","type","prototypeAccessors","super","build","buildScheme","buildSwitch","i"],"mappings":";;;;;EAAOA,IAAM,MAAM,GAAG,IAAI,CAAC;EACpBA,IAAM,SAAS,GAAG,MAAM;;ECC/BA,IAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;EAC9C,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG;;ECDhBA,IAAM,EAAE,aAAI,IAAI,YAAQ,MAAM,SAAI,QAAM,CAAC;AAChD;EACA,EAAE,CAAC,QAAQ,aAAI,IAAI,EAAE,QAAQ,EAAK;EAClC,EAAE,IAAI,QAAQ,KAAK,SAAS,IAAE,QAAQ,GAAG,GAAG,GAAC;EAC7C,EAAE,aAAU,YAAW,EAAE,CAAC,IAAI,IAAI;EAClC,CAAC,CAAC;AACF;EACA,EAAE,CAAC,IAAI,aAAI,IAAI,EAAE,MAAM,EAAE,KAAK,uBAAa,EAAE,CAAC,IAAI,MAAG,CAAC;AACtD;EACA,EAAE,CAAC,IAAI,CAAC,QAAQ,aAAI,IAAI,EAAE,KAAK,EAAK;EACpC,EAAEC,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7B,EAAE,IAAI,KAAK,KAAK,SAAS,IAAE,MAAM,IAAI,QAAK,KAAK,OAAG,GAAC;EACnD,EAAE,cAAW,MAAM,QAAI;EACvB,CAAC,CAAC;AACF;EACA,EAAE,CAAC,KAAK,aAAI,IAAI,YAAQ,SAAS,SAAI,QAAM;;ECjB3CD,IAAM,YAAY,aAAI,OAAO,EAAE,SAAS,EAAE,MAAM,EAAK;EACrD,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC;EACnE,EAAEA,IAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EAClD,EAAEA,IAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;EAC9C,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE;EACvB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAC;EAChD,GAAG,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC,IAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAC;EACtD,EAAE,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC3C,CAAC,CAAC;AACF;EACAA,IAAM,QAAQ,aAAI,OAAO,EAAE,SAAS,WAAK,YAAY,CAAC,OAAO,EAAE,SAAS,IAAC,CAAC;AAG1E;EACAA,IAAM,WAAW,aAAI,OAAO,EAAE,SAAS,WAAK,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,IAAC;;ECdlF,IAAM,QAAQ,GACZ,iBAAW,IAAI;EACjB,EAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;EACvB,EAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;EACpB,EAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC5C,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;AACH;qBACE,oBAAK,OAAO,EAAE;;AAAC;EACjB,EAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAChC,EAAIA,IAAM,MAAM,eAAS;EACzB,IAAMA,IAAM,KAAK,GAAGE,MAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;EACnD,IAAM,IAAI,KAAK,KAAK,CAAC,CAAC,IAAEA,MAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAC;EACvD,GAAK,CAAC;EACN,EAAI,OAAO,MAAM,CAAC;EAChB,EAAC;AACH;qBACE,sBAAM,OAAO,EAAE,KAAK,EAAE;EACxB,EAAI,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;EAChD,EAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAC;EAChE,EAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAClC,EAAC;AACH;qBACE,4BAAU;EACZ,EAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;EACjD,EAAI,uBAAsB,IAAI,CAAC,iCAAQ;QAA9BF,IAAM;;QAA0B,OAAO,CAAC,IAAI,EAAE;OAAC;EACxD,EAAIA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;EACrC,EAAI,IAAI,KAAK,EAAE;EACf,IAAM,2BAAsB,oCAAK;UAAtBA,IAAMG;;UAAkBA,SAAO,CAAC,IAAI,EAAE;SAAC;EAClD,GAAK;EACH;;EC5BF;EACA,IAAM,MAAM,GACV,eAAW,IAAI;EACjB,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;EACnC;EACE,EAAC;AACH;mBACE,8BAAU,QAAQ,EAAE,OAAO,EAAE;AAC/B;EACE,EAAC;AACH;mBACE,0BAAS;EACX;EACE,EAAC;AACH;mBACE,wBAAQ;EACV;EACE,EACD;AACD;EACAH,IAAM,MAAM,GAAG,IAAI,MAAM,EAAE;;ECtB3B,IAAM,WAAW,GACf,oBAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE;EACnC,EAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;EAC7B,EAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;EAC7B,EAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB;EACA,EAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC;EAC/F,SAAS,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC;EAC5E,EAAC;AACH;wBACE,0BAAS;EACX,EAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAE,SAAO;AAC1C;EACA,EAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;EAC7D,IAAM,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACrD,MAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;EAChD,KAAO;EACP,GAAK;EACH;;EClBFD,IAAM,SAAS,GAAG,GAAG,CAAC;EACtBA,IAAM,QAAQ,GAAG,GAAG,CAAC;EACrBC,IAAI,KAAK,GAAG,CAAC,CAAC;AACd;EACAD,IAAM,YAAY,aAAI,OAAO,EAAK;EAClC,EAAE,KAAKA,IAAMI,IAAE,IAAI,QAAQ,IAAE,IAAI,QAAQ,CAACA,IAAE,CAAC,KAAK,OAAO,IAAE,OAAOA,IAAE,KAAC;EACrE,EAAE,KAAK,EAAE,CAAC;EACV,EAAEJ,IAAM,EAAE,GAAG,KAAK,CAAC;EACnB,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;EACzB,EAAE,OAAO,EAAE,CAAC;EACZ,CAAC,CAAC;AACF;EACA,IAAM,QAAQ,GACZ,iBAAW,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE;EACjD,EAAIA,IAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;EACrC,EAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAC;EAC3C,EAAI,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7B,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;EACzB,EAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;EAC9B,EAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;EAC7B,EAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB;EACA,EAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;EACjC,EAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;EACjC;;wGAAC;AACH;qBACE,8BAAU,IAAI,EAAE,IAAI,EAAE;EACxB,EAAIA,IAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAC9C,EAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EACpC,EAAC;AACH;qBACE,0BAAQ,IAAI,EAAE,OAAO,EAAE;EACzB,EAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC;EACzD,EAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAE,SAAO;EAC3D,EAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EACvC,EAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;EAC/C,EAAC;AACH;qBACE,8BAAU,IAAI,EAAE,OAAO,EAAE;EAC3B,EAAI,IAAI,CAAC,IAAI,EAAE;EACf,IAAM,KAAKA,IAAMK,MAAI,IAAI,IAAI,CAAC,SAAS,IAAE,IAAI,CAAC,QAAQ,CAACA,MAAI,CAAC,GAAC;EAC7D,GAAK,MAAM,IAAI,CAAC,OAAO,EAAE;EACzB,IAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAE,SAAO;EACxC,IAAM,uBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,0BAAC;UAArCL,IAAMG;;UAAiC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAACA,SAAO,CAAC;SAAC;EAC5F,IAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;EACtC,GAAK,MAAM;EACX,IAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAE,SAAO;EACxC,IAAMH,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;EAC1D,IAAM,IAAI,KAAK,GAAG,CAAC,CAAC,IAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAC;EAC5D,IAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;EAChD,GAAK;EACH,EAAC;AACH;AACEM,uBAAI,8BAAe,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,GAAE;AAClD;AACEA,uBAAI,4BAAa,KAAK,EAAE;EAC1B,EAAI,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,IAAE,SAAO;EAC5C,EAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;EAC9B;EACE,EAAC;AACH;qBACE,4BAAU,GAAE;AACd;AACEA,uBAAI,6BAAc,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAE;AAChD;AACEA,uBAAI,2BAAY,KAAK,EAAE;EACzB,EAAI,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAE,SAAO;EAC3C,EAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;EAC7B;EACE,EAAC;AACH;qBACE,4BAAU,GAAE;AACd;qBACE,8BAAW,GAAE;AACf;EACE,SAAO,sCAAc,OAAO,EAAE,aAAa,EAAE;EAC/C,EAAIN,IAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;EACrC,EAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAE,OAAO,IAAI,GAAC;EACpC,OAAS,IAAI,CAAC,aAAa,IAAE,OAAO,SAAS,CAAC,EAAE,CAAC,GAAC;EAClD,SAAS,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,WAAE,QAAQ,WAAK,QAAQ,YAAY,gBAAa,CAAC,GAAC;EACpF;;;;EC/EKA,IAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;ECA1CA,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB;EACA,IAAM,gBAAgB,GACpB,yBAAW,EAAE,EAAE,EAAE,OAAO,EAAE;EAC5B,EAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;EACjB,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EACtB,EAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EACrB,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;EACzB,EAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACpB;;;6DAAC;AACH;EACE,iBAAO,sCAAc,EAAE,EAAE;EAC3B,EAAI,uBAAoB,+BAAM;QAArBA,IAAM;;QAAiB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,IAAE,OAAO,KAAK;SAAC;EAChG,EAAI,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;EACtB,EAAC;AACH;EACE,iBAAO,gDAAmB,OAAO,EAAE;EACrC,EAAI,uBAAoB,+BAAM;QAArBA,IAAM;;QAAiB,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAE,OAAO,KAAK;SAAC;EAC5E,EAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;EAClC,EAAC;AACH;EACE,iBAAO,gCAAW,MAAM,EAAE,gBAAgB,EAAE;EAC9C,EAAIA,IAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;EACvD,EAAI,IAAI,EAAE,KAAK,IAAI,IAAE,SAAO;AAC5B;EACA,EAAIA,IAAM,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;EACpD,EAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;EACpB,EAAC;AACH;EACE,iBAAO,wCAAe,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE;EACjE,EAAI,IAAI,aAAa,KAAK,SAAS,IAAE,aAAa,GAAG,gBAAgB,CAAC,QAAQ,GAAC;EAC/E,EAAI,IAAI,aAAa,KAAK,EAAE,IAAE,SAAO;EACrC,EAAIC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;AAC/C;EACA,EAAI,OAAO,OAAO,EAAE;EACpB,IAAM,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAE,SAAO;AAC1E;EACA,IAAM,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;EACrD,MAAQD,IAAM,KAAK,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;EAClE,MAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;EAC1B,MAAQ,OAAO;EACf,KAAO;EACP,IAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;EACtC,GAAK;EACH,EAAC;AACH;EACE,gBAAW,2BAAY,EAAE,OAAO,EAAE,CAAC,GAAE;AACvC;6BACE,oBAAK,MAAM,EAAE;EACf,EAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAE,SAAO;EACpD,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC9B,EAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1B;EACA,EAAI,QAAQ,IAAI;EAChB,IAAM,KAAK,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;EACjC,IAAM,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;EAC7E,MAAQ,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;EACjC,MAAQ,MAAM;AACd;EACA,IAAM;EACN,MAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;EAC/B,MAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;EACnD,MAAQ,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;EAChC,GAAK;EACH,EAAC;AACH;AACEM,uBAAI,yBAAU,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAE;AAC/C;AACEA,uBAAI,wBAAS,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAE;AACtC;AACEA,uBAAI,sBAAO,KAAK,EAAE;EACpB,EAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAE,SAAO;EAC5E,EAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAC;EAChE,EAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;EACxB,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;EACxE,EAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAC;EAC3D,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC;EACf,EAAC;AACH;AACEA,uBAAI,0BAAW,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAE;AAC1C;AACEA,uBAAI,wBAAS,MAAM,EAAE;EACvB,EAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;EAC5C,EAAC;AACH;AACEA,uBAAI,2BAAY;EAClB,EAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAE,OAAO,IAAI,GAAC;EAChD,EAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;EAC/B,EAAC;AACH;6BACE,0BAAS;;;;;EC7FX,IAAM,gBAAgB,GACpB,yBAAW,EAAE,OAAO,EAAE,UAAU,EAAE;EACpC,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;EACjC,EAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;EACjF,EAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAClE,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACjE,EAAI,IAAI,CAAC,OAAO,EAAE,CAAC;EACjB;;oGAAC;AACH;6BACE,8BAAW;EACb,EAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;EAC5D,EAAC;AACH;6BACE,wBAAO,CAAC,EAAE;EACZ,EAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;EAC5C,EAAC;AACH;6BACE,0BAAQ,SAAS,EAAE;;AAAC;EACtB,EAAI,SAAS,CAAC,OAAO,WAAE,QAAQ,EAAK;EACpC,IAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAKJ,MAAI,CAAC,UAAU,CAAC,aAAa,IAAEA,MAAI,CAAC,UAAU,CAAC,MAAM,CAACA,MAAI,CAAC,SAAS,CAAC,GAAC;EAC7I,GAAK,CAAC,CAAC;EACL,EAAC;AACH;6BACE,wBAAO,KAAK,EAAE;EAChB,EAAI,IAAI,CAAC,IAAI,CAAC,YAAY,IAAE,SAAO;EACnC,EAAI,IAAI,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAC;EAClD,EAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;EACpE,EAAI,IAAI,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,OAAO,EAAE,GAAC;EACpC,EAAC;AACH;AACEI,uBAAI,4BAAa;EACnB,EAAI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;EAC7E,EAAC;AACH;AACEA,uBAAI,2BAAY;EAClB,EAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,aAAa,CAAC;EACjD;;;;ECnCKN,IAAM,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;EAC5CA,IAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;;ECIhDA,IAAM,WAAW,GAAG,EAAE,CAAC;AACvB;EACA,IAAM,UAAU;IACd,mBAAW,EAAE,OAAO,EAAE;EACxB,IAAIO,aAAK,OAAC,OAAO,CAAC,CAAC;EACnB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EACtB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;EAC/C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;EACzD,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;EAC9F,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB;EACA,IAAIP,IAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,2BAAsB,IAAI,CAAC,GAAE,YAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/I;EACA,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAE,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAC;AAChG;EACA,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5D;EACA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB;;;;;;;4FAAG;AACH;EACA,uBAAE,4BAAU;EACZ,IAAI,IAAI,IAAI,CAAC,KAAK,IAAE,SAAO;AAC3B;EACA,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAC5D,IAAI,gBAAgB,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAChE,IAAG;AACH;EACA,EAAE,WAAO,wBAAO,IAAI,EAAE;EACtB,IAAID,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,SAAK,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5F;EACA,IAAI,uBAAsB,iCAAQ;QAAzBA,IAAM;;QAAqB,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;OAAC;EACxE,IAAG;AACH;EACA,EAAE,mBAAI,uBAAQ,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAE;AAC/C;EACA,EAAE,gBAAW,uBAAQ,EAAE,OAAO,IAAI,CAAC,GAAE;AACrC;EACA,EAAE,gBAAW,2BAAY,EAAE,OAAO,EAAE,CAAC,GAAE;AACvC;EACA,uBAAE,gCAAW,OAAO,EAAE;EACtB,IAAIA,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;EAC/C,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE;EAC7B,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;EACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;EAC9B,OAAO,QAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAC;EAClD,KAAK;EACL,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC9B,IAAG;AACH;EACA,EAAE,mBAAI,mCAAoB,EAAE,OAAO,gBAAgB,CAAC,GAAE;AACtD;EACA,uBAAE,wCAAe,MAAM,EAAE;EACzB,IAAI,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;EAC9C,IAAG;AACH;EACA,uBAAE,8BAAU,QAAQ,EAAE;EACtB,IAAI,IAAI,IAAI,CAAC,SAAS,IAAE,OAAO,KAAK,GAAC;EACrC,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;EAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;EAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAC;EACzE,IAAI,OAAO,IAAI,CAAC;EAChB,IAAG;AACH;EACA,uBAAE,4BAAS,QAAQ,EAAE,YAAY,EAAE;EACnC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAE,OAAO,KAAK,GAAC;EACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;EAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;EAC3B,IAAI,IAAI,CAAC,YAAY,IAAE,IAAI,CAAC,KAAK,EAAE,GAAC;EACpC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAC;EACzE,IAAI,uBAAyB,oCAAW;QAA/BA,IAAM;;QAA2B,IAAI,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAE,UAAU,CAAC,KAAK,EAAE;SAAC;EACnI,IAAI,OAAO,IAAI,CAAC;EAChB,IAAG;AACH;EACA,EAAE,mBAAI,4BAAa;EACnB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;EAC3B,IAAG;AACH;EACA,EAAE,mBAAI,0BAAW,KAAK,EAAE;EACxB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,IAAE,SAAO;EAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,cAAc,GAAG,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;EACrE,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;EAC5B,IAAI,IAAI,KAAK,IAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAC;EACrD,WAAS,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAC;EAClD,IAAI,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAC;EAC/E,IAAG;AACH;EACA,uBAAE,0BAAS,GAAE;AACb;EACA,uBAAE,0BAAQ,YAAY,EAAE;EACxB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,IAAE,IAAI,CAAC,QAAQ,EAAE,GAAC;EAC3D,SAAS;EACT,MAAM,QAAQ,IAAI;EAClB,QAAQ,KAAK,CAAC,YAAY,CAAC;EAC3B,QAAQ,KAAK,IAAI,CAAC,SAAS;EAC3B,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;EACzB,UAAU,MAAM;AAChB;EACA,QAAQ;EACR,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;EAC1B,OAAO;EACP,KAAK;EACL,IAAG;AACH;EACA,uBAAE,8BAAU,KAAK,EAAE;EACnB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACvB,IAAG;AACH;EACA,EAAE,mBAAI,iCAAkB;EACxB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,WAAE,MAAM,EAAK,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAE,OAAO,IAAI,GAAC;EAChF,IAAI,OAAO,KAAK,CAAC;EACjB,IAAG;AACH;EACA,EAAE,mBAAI,2BAAY;EAClB,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,aAAa,IAAE,OAAO,IAAI,GAAC;EAC7D,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,IAAE,OAAO,IAAI,GAAC;EACxE,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC;EAC/B,IAAG;AACH;EACA,uBAAE,0BAAS;EACX,IAAI,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAClD,MAAMD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EACrC,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;EAC/B,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;EAC/B,QAAQ,OAAO;EACf,OAAO;EACP,KAAK;EACL;;;;;;IA5HyB,WA6HxB;AACD;EACA,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;EAC3C,UAAU,CAAC,aAAa,GAAG,aAAa;;ECzIjCA,IAAM,gBAAgB,GAAG;EAChC,EAAE,MAAM,EAAE;EACV,IAAI,EAAE,EAAE,UAAU;EAClB,IAAI,SAAS,EAAE,IAAI;EACnB,IAAI,YAAY,EAAE,IAAI;EACtB,IAAI,UAAU,EAAE,IAAI;EACpB,GAAG;EACH,EAAE,MAAM,EAAE;EACV,IAAI,EAAE,EAAE,UAAU;EAClB,IAAI,SAAS,EAAE,IAAI;EACnB,IAAI,YAAY,EAAE,IAAI;EACtB,IAAI,UAAU,EAAE,KAAK;EACrB,GAAG;EACH,EAAE,MAAM,EAAE;EACV,IAAI,EAAE,EAAE,QAAQ;EAChB,IAAI,SAAS,EAAE,KAAK;EACpB,IAAI,YAAY,EAAE,IAAI;EACtB,IAAI,UAAU,EAAE,IAAI;EACpB,GAAG;EACH,CAAC;;ECnBD;EACA;EACA;EACA;EACA,IAAM,WAAW,GACf,oBAAW,EAAE,OAAO,EAAE;EACxB,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;EACxB,EAAC;AACH;EACE;EACF;EACA;EACA;EACA;EACA;wBACE,sBAAM,IAAI,EAAE,MAAM,EAAE;EACtB,EAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,IAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAC;EACnH,EAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;EACrC,EAAC;AACH;wBACE,sBAAM,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE;EACvD,EAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;EAClF,EAAC;AACH;wBACE,kBAAI,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE;EACrD,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;EAChF,EAAC;AACH;wBACE,8BAAW;EACb,EAAI,uBAAyB,IAAI,CAAC,oCAAW;QAApCA,IAAM;;QAAgC,UAAU,CAAC,OAAO,EAAE;OAAC;EACpE,EAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;EACpB,EACD;AACD;EACA,IAAM,mBAAmB,GACvB,4BAAW,EAAE,IAAI,EAAE,OAAO,EAAE;EAC9B,EAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;EACrB,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EACtB,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC1C,EAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;EAC5D,EAAC;AACH;gCACE,oBAAK,MAAM,EAAE;EACf,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC5B,EAAC;AACH;gCACE,0BAAQ,CAAC,EAAE;EACb,EAAI,uBAAqB,IAAI,CAAC,gCAAO;QAA5BA,IAAM;;QAAwB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;OAAC;EACtD,EAAC;AACH;gCACE,8BAAW;EACb,EAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;EACtE,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;EACtB,EACD;AACD;EACA,IAAM,SAAS,GACb,kBAAW,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE;EAC9D,EAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;EACnB,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,cAAc,GAAG,cAAc,KAAK,IAAI,CAAC;EAClD,EAAI,IAAI,CAAC,eAAe,GAAG,eAAe,KAAK,IAAI,CAAC;EAClD,EAAC;AACH;sBACE,0BAAQ,CAAC,EAAE;EACb,EAAI,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,GAAG,EAAE;EAChC,IAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EACtB,IAAM,IAAI,IAAI,CAAC,cAAc,EAAE;EAC/B,MAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;EAC3B,KAAO;EACP,IAAM,IAAI,IAAI,CAAC,eAAe,EAAE;EAChC,MAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;EAC5B,KAAO;EACP,GAAK;EACH,EACD;AACD;EACA,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;EACpB,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;EACxB,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC;EACrB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;EACtB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;EACtB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;EACpB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;EACvB,WAAW,CAAC,IAAI,GAAG,EAAE;;ECpFdA,IAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC;;ECG5CA,IAAM,SAAS,GAAG,EAAE,CAAC;EACrBA,IAAM,UAAU,GAAG,EAAE,CAAC;AACtB;EACA;EACA;EACA;EACA;EACA;EACA,IAAM,QAAQ;IACZ,iBAAW,EAAE,OAAO,EAAE;EACxB,IAAIO,eAAK,OAAC,OAAO,CAAC,CAAC;EACnB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACzB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC9C,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC7E,IAAI,IAAI,IAAI,CAAC,SAAS,IAAE,IAAI,CAAC,OAAO,EAAE,GAAC;EACvC;;;;;;4FAAG;AACH;EACA,qBAAE,oDAAsB;EACxB,IAAI,IAAI,IAAI,CAAC,KAAK,IAAE,SAAO;AAC3B;EACA,IAAI,KAAKP,IAAM,SAAS,IAAI,UAAU,EAAE;EACxC,MAAMC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AAC/C;EACA,MAAM,OAAO,OAAO,EAAE;EACtB,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;EACnD,UAAU,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE;EACzD,YAAY,gBAAgB,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;EAC1F,WAAW,MAAM;EACjB,YAAY,gBAAgB,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;EACxE,WAAW;EACX,UAAU,OAAO;EACjB,SAAS;AACT;EACA,QAAQ,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;EACxC,OAAO;EACP,KAAK;EACL,IAAG;AACH;EACA,qBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;EAC9B,IAAIM,oBAAK,CAAC,WAAM,KAAC,CAAC,CAAC;EACnB,IAAG;AACH;EACA,EAAE,gBAAW,uBAAQ,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,GAAE;EACxD,EAAE,gBAAW,2BAAY,EAAE,OAAO,cAAc,CAAC,GAAE;AACnD;EACA,EAAE,SAAO,8BAAU,SAAS,EAAE,aAAa,EAAE;EAC7C,IAAI,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC;EAC1C,IAAI,uBAAuB,kCAAS;QAA3BP,IAAM;;QAAuB,QAAQ,CAAC,kBAAkB,EAAE;OAAC;EACpE,IAAG;AACH;EACA,qBAAE,wCAAe,CAAC,EAAE;EACpB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,GAAC;EAC3D,IAAG;AACH;EACA,qBAAE,8BAAW;EACb,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;EAC1C,IAAG;AACH;EACA,qBAAE,8BAAU,QAAQ,EAAE;;AAAC;EACvB,IAAI,IAAI,IAAI,CAAC,SAAS,IAAE,SAAO;EAC/B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;EACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAI,IAAI,CAAC,SAAS,eAAS,EAAEO,oBAAK,CAAC,aAAQ,SAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;EACzD,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;EAClD,IAAG;AACH;EACA,qBAAE,4BAAS,QAAQ,EAAE,YAAY,EAAE;;AAAC;EACpC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAE,SAAO;EAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB,IAAI,IAAI,CAAC,SAAS,eAAS,EAAEA,oBAAK,CAAC,YAAO,SAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;EACtE,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;EAClD,IAAG;AACH;EACA,qBAAE,8BAAW;EACb,IAAI,IAAI,IAAI,CAAC,SAAS,IAAE,IAAI,CAAC,SAAS,EAAE,GAAC;EACzC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;EAC1B,IAAG;AACH;EACA,qBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;EAC1D,IAAIP,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;EAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;EACjE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;EACtD,IAAG;AACH;EACA,qBAAE,0BAAS;EACX,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,SAAS,GAAG,KAAK,GAAC;EAC/C;;;;;IAhFuB;;ECQvB,IAAM,SAAS,GACb,kBAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;EAChC,EAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;EAC7B,EAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACvB,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC/D,EAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB;EACA,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC3C,EAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACrD,EAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACnD;EACE,EAAC;AACH;sBACE,4BAAU;EACZ,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC;EACjB,EAAI,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACnD,IAAMD,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EACzD,IAAM,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;EACrC,MAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;EAClC,KAAO;EACP,GAAK;EACL,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC;EACf,EAAC;AACH;sBACE,0BAAS;EACX,EAAI,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACnD,IAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC;EAC9D,GAAK;EACH,EAAC;AACH;sBACE,0BAAS;EACX,EAAI,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACnD,IAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;EAC5C,GAAK;EACL,EAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;EACpB,EAAC;AACH;sBACE,gCAAW,EAAE,EAAE;EACjB,EAAIA,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC;EAC/B,EAAID,IAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;EACvC,EAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;EACtE,EAAI,OAAO,KAAK,CAAC;EACf;;EC/CF,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;EACjB,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;EAC7B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;EACnC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;EACzB,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;EAC7B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;EACnC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;EACjC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;EAC7C,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;EAC7C,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC7C;EACA,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;EAC9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;EACxB,GAAG,CAAC,SAAS,GAAG,SAAS;;EC3BzBA,IAAMQ,OAAK,eAAS;EACpB,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;EAC3B,CAAC;;ECJD;AAIA;EACA,IAAI,WAAW,QAAK,iBAAkB,CAACA,OAAK,CAAC,CAAC;;ECHvCR,IAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;EACzDA,IAAM,mBAAmB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;;ECA3D,IAAM,eAAe;;;;;;;;;;;IACnB,gBAAW,2BAAY,EAAE,OAAO,gBAAgB,CAAC;;;;;IADrB,GAAG,CAAC,IAAI,CAAC;;ECAvC,GAAG,CAAC,eAAe,GAAG,eAAe;;ECCrC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,eAAe,CAAC;;ECFpDA,IAAM,4BAA4B,IAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,YAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAG;;ECAvH,IAAM,UAAU;IACd,mBAAW,EAAE,OAAO,EAAE;EACxB,IAAIO,eAAK,OAAC,OAAO,CAAC,CAAC;EACnB,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7E,IAAI,IAAI,CAAC,KAAK,GAAG,WAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAC,CAAC;EAC/D,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;EACnB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;EAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC7E;EACA,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7C,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACvD,KAAK;EACL;;;;kDAAG;AACH;EACA,uBAAE,0BAAS;;AAAC;EACZ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;EAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAO,EAAEL,MAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;EAC5D,IAAG;AACH;EACA,uBAAE,4BAAU;EACZ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;EACjB,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,IAAE,SAAO;EACjC,IAAI,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,KAAK,EAAE,GAAC;EAC/D,IAAG;AACH;EACA,uBAAE,4BAAU;EACZ,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE;EACxD,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,aAAa,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAC;EAClF,KAAK,MAAM;EACX,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAC;EACjF,KAAK;EACL;;;IA/ByB,GAAG,CAAC,IAAI,CAAC;;ECClCF,IAAMQ,OAAK,eAAS;EACpB,EAAER,IAAM,WAAW,GAAG,EAAE,CAAC;EACzB,EAAEA,IAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;EAClF,EAAE,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC;EACxG,CAAC;;ECPD;AAIA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAACO,OAAK,CAAC,CAAC;;ECHxDR,IAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;EACpDA,IAAM,sBAAsB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;EAClEA,IAAM,gCAAgC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;ECD7FA,IAAMQ,OAAK,eAAS;EACpB,EAAER,IAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;EAC5E,EAAEA,IAAM,cAAc,GAAG,EAAE,CAAC;EAC5B,EAAE,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACzC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACtE,GAAG;EACH,CAAC;;ECTD;AAKA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAACO,OAAK,CAAC,CAAC;;ECJlDR,IAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;EACrDA,IAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;EACzCA,IAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;EACjDA,IAAM,mBAAmB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;EACzDA,IAAM,mBAAmB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;EAChEA,IAAM,aAAa,GAAG,EAAE,CAAC;;ECLhCA,IAAM,UAAU,GAAG;EACnB,EAAE,gBAAgB;EAClB,EAAE,SAAS;EACX,EAAE,wBAAwB;EAC1B,EAAE,uBAAuB;EACzB,EAAE,wBAAwB;EAC1B,EAAE,0BAA0B;EAC5B,EAAE,iBAAiB;EACnB,EAAE,iBAAiB;EACnB,EAAE,oDAAoD;EACtD,EAAE,+BAA+B;EACjC,EAAE,SAAS;EACX,CAAC,CAAC;AACF;EACAA,IAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;AACrC;EACAA,IAAM,QAAQ,GAAG;EACjB,EAAE,qDAAqD;EACvD,CAAC,CAAC;AACF;EACAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjC;EACAA,IAAM,WAAW,aAAI,OAAO,EAAE,SAAS,EAAK;EAC5C,EAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAE,OAAO,KAAK,GAAC;EAC7E,EAAE,IAAI,SAAS,KAAK,SAAS,IAAE,SAAS,GAAG,OAAO,GAAC;AACnD;EACA,EAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;EACtC,IAAI,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,MAAM,IAAE,OAAO,KAAK,GAAC;EAC1E,IAAI,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;EACpC,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd,CAAC,CAAC;AACF;EACA,IAAM,SAAS,GACb,kBAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;EACjC,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;EACxB,EAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EAC9B,EAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;EACzB,EAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;EAC7B,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACxC,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC3C,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;EACtB;;kGAAC;AACH;EACE,mBAAI,0BAAW,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,GAAE;AAClD;sBACE,sBAAM,OAAO,EAAE;EACjB,EAAI,IAAI,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,MAAM,EAAE,GAAC;AACpC;EACA,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;EAC3B,EAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB;EACA,EAAI,IAAI,IAAI,CAAC,MAAM,IAAE,IAAI,CAAC,MAAM,EAAE,GAAC;EACjC,EAAC;AACH;sBACE,wBAAQ;EACV,EAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;EACpC,IAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAClD,IAAM,OAAO;EACb,GAAK;AACL;EACA,EAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;EAClB,EAAC;AACH;sBACE,gCAAY;EACd,EAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAE,SAAO;EACjC,EAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;EAC5B,EAAIA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;EACvC,EAAI,IAAI,UAAU,CAAC,MAAM,IAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAC;EACjD,EAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;EAClD,EAAI,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD;EACA,EAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;EACvB;EACE,EAAC;AACH;sBACE,sBAAM,IAAI,EAAE;EACd,EAAI,uBAAoB,IAAI,CAAC,iCAAQ,EAAE;EACvC,IADSA,IAAM;;QACT,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,IAAE,WAAS;EAC3C,IAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;EACxC,MAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACzB,MAAQ,SAAS;EACjB,KAAO;EACP,IAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;EAC7C,GAAK;EACH,EAAC;AACH;sBACE,0BAAQ,CAAC,EAAE;EACb,EAAI,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAE,SAAO;AAChC;EACA,EAAIA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;EACvC,EAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAE,SAAO;AACxC;EACA,EAAIA,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;EAChC,EAAIA,IAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD;EACA,EAAIA,IAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7D;EACA,EAAI,IAAI,CAAC,CAAC,QAAQ,EAAE;EACpB,IAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;EACvE,MAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;EAC3B,MAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;EACrB,KAAO,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;EAC5F,MAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;EAC3B,MAAQ,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;EACtC,KAAO;EACP,GAAK,MAAM;EACX,IAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;EAC7G,MAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;EAC3B,MAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;EACtB,KAAO,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,EAAE;EACtD,MAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;EAC3B,MAAQ,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;EACtC,KAAO;EACP,GAAK;EACH,EAAC;AACH;EACE,mBAAI,6BAAc;;AAAC;EACrB,EAAIC,IAAI,UAAU,GAAG,WAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAC,CAAC;AACpE;EACA;EACA;EACA;EACA,EAAID,IAAM,MAAM,GAAG,WAAI,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAC,CAAC;AACzF;EACA,EAAI,IAAI,MAAM,CAAC,MAAM,EAAE;EACvB,IAAMA,IAAM,MAAM,GAAG,EAAE,CAAC;AACxB;EACA,IAAM,uBAAoB,+BAAM,EAAE;EAClC,MADWA,IAAM;;UACTA,IAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;EAChD,MAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,IAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAC;EAClF,MAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACjC,KAAO;AACP;EACA,IAAM,UAAU,GAAG,UAAU,CAAC,MAAM,WAAE,SAAS,EAAK;EACpD,MAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,IAAE,OAAO,IAAI,GAAC;EACjI,MAAQA,IAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;EACpD,MAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;EAC5C,KAAO,CAAC,CAAC;EACT,GAAK;AACL;EACA,EAAIA,IAAM,QAAQ,GAAG,WAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAC,CAAC;AAClE;EACA,EAAI,QAAQ,CAAC,IAAI,WAAE,CAAC,EAAE,CAAC,WAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAQ,CAAC,CAAC;AACrD;EACA,EAAIA,IAAM,YAAY,GAAG,UAAU,CAAC,MAAM,WAAE,OAAO,WAAK,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAC,CAAC,CAAC;EAC1F,EAAIA,IAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;EACtD,EAAI,OAAO,WAAW,CAAC,MAAM,WAAE,OAAO,WAAK,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC,OAAO,EAAEE,MAAI,CAAC,OAAO,IAAC,CAAC,CAAC;EAC1G,EAAC;AACH;sBACE,4BAAU;EACZ,EAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAE,SAAO;EAC9B,EAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B;EACA,EAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;EAC/C,EAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACzD,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB;EACA;EACA;AACA;EACA,EAAI,IAAI,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,QAAQ,EAAE,GAAC;EACrC;;qEACD;AACD;EACA,IAAM,OAAO,GACX,gBAAW,EAAE,OAAO,EAAE;EACxB,EAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EAC3B,EAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;EACtD,EAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/C;EACA,EAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;EACnD,EAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;EACzC,EAAC;AACH;oBACE,4BAAU;EACZ,EAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,GAAC;EAC1E,SAAS,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,GAAC;AAC/D;EACA,EAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,GAAC;EACnE,SAAS,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAC;EACtD,EACD;AACD;EACA,IAAM,gBAAgB,GACpB,yBAAW,EAAE,IAAI,EAAE;EACrB,EAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;EACrB,EAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;EACpB,EAAC;AACH;6BACE,sBAAM,MAAM,EAAE;EAChB,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC9B,EAAI,IAAI,MAAM,KAAK,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAC;EACjH,EAAC;AACH;6BACE,sBAAM,MAAM,EAAE;EAChB,EAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;EAClC;;ECtMF,IAAM,WAAW;IACf,oBAAW,IAAI;EACjB,IAAIK,eAAK,KAAC,CAAC,CAAC;EACZ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;EAChC;;;;oDAAG;AACH;EACA,wBAAE,wBAAO,KAAK,EAAE,OAAO,EAAE;EACzB,IAAIA,oBAAK,CAAC,UAAK,OAAC,KAAK,EAAE,OAAO,CAAC,CAAC;EAChC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC;EAClD,WAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAC;EAC9C;;;IAV0B,GAAG,CAAC,IAAI,CAAC;;ECOnCP,IAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;AAChC;EACA,IAAM,KAAK;IACT,cAAW,EAAE,OAAO,EAAE;EACxB,IAAIO,eAAK,OAAC,OAAO,CAAC,CAAC;EACnB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;EAChE,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;EAC5B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EACnD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EACjD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;EAChB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;EACtB;;;;;;;4FAAG;AACH;EACA,kBAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE;EACA,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EACzD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvF;EACA,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;EACnB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;EAC3D,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACvD;EACA,KAAK;EACL,IAAG;AACH;EACA,kBAAE,wBAAO,CAAC,EAAE;EACZ,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAE,IAAI,CAAC,OAAO,EAAE,GAAC;EAC7F,IAAG;AACH;EACA,kBAAE,4BAAU;EACZ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACpB,IAAG;AACH;EACA,kBAAE,8BAAU,QAAQ,EAAE;EACtB,IAAI,IAAI,CAACA,oBAAK,CAAC,aAAQ,OAAC,QAAQ,CAAC,IAAE,OAAO,KAAK,GAAC;EAChD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;EACtB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;EAC7B,IAAI,OAAO,IAAI,CAAC;EAChB,IAAG;AACH;EACA,kBAAE,4BAAS,QAAQ,EAAE,YAAY,EAAE;EACnC,IAAI,IAAI,CAACA,oBAAK,CAAC,YAAO,OAAC,QAAQ,EAAE,YAAY,CAAC,IAAE,OAAO,KAAK,GAAC;EAC7D,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;EAC5B,IAAI,OAAO,IAAI,CAAC;EAChB,IAAG;AACH;EACA;EACA;EACA;EACA;EACA,kBAAE,sCAAc,YAAY,EAAE;EAC9B,IAAI,IAAI,YAAY,EAAE;EACtB,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;EACtE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;EACnC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;EAC5C,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;EACzE,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;EAC7C,OAAO;EACP,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;EAChE,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;EACnE,KAAK;EACL,IAAG;AACH;EACA;EACA;EACA;EACA;EACA,kBAAE,0BAAQ,UAAU,EAAE,CAAC,EAAE;;AAAC;EAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAE,SAAO;EAC3B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;EACzD,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;EAClF,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;EAC7D,OAAO,MAAM;EACb,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;EAC1D,OAAO;EACP,KAAK,MAAM;EACX,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;EAC3D,KAAK;AACL;EACA,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;AACnE;EACA,IAAI,IAAI,UAAU,EAAE;EACpB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;EACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;EACrD,OAAO,MAAM;EACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,aAAa,IAAI,IAAI,CAAC;EAChF;EACA,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAO;EAC5C,UAAUL,MAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,aAAa,IAAI,IAAI,CAAC;EAClF,SAAS,CAAC,CAAC;EACX,OAAO;EACP,KAAK;EACL,IAAG;AACH;EACA,EAAE,gBAAW,uBAAQ,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAE;EACjE,EAAE,gBAAW,2BAAY,EAAE,OAAO,WAAW,CAAC,GAAE;AAChD;EACA,EAAE,mBAAI,mCAAoB,EAAE,OAAO,WAAW,CAAC;;;;;;IAjG3B,GAAG,CAAC,IAAI,CAAC;;ECN7B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;EAClB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;EAC9B,GAAG,CAAC,SAAS,GAAG,SAAS;;ECNzB;EACA;EACA;EACAF,IAAMQ,OAAK,eAAS;EACpB,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;EACxB,CAAC;;ECPD;AAIA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAACA,OAAK,CAAC,CAAC;;ECH1CR,IAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;EAC5CA,IAAM,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;EACvDA,IAAM,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;EACvDA,IAAM,2BAA2B,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;EAC1EA,IAAM,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;ECGxD,IAAM,UAAU;IACd,mBAAW,EAAE,EAAE,EAAE,OAAO,EAAE;EAC5B,IAAIO,eAAK,OAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACvB;EACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB;EACA,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,QAAK,uBAAwB,CAAC;AACtE;EACA,IAAI,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACpE,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC9D,IAAI,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACzE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAClB;;;;;;;+DAAG;AACH;EACA,EAAE,gBAAW,2BAAY,EAAE,OAAO,gBAAgB,CAAC,GAAE;AACrD;EACA,uBAAE,oBAAK,MAAM,EAAE;EACf,IAAIA,oBAAK,CAAC,QAAG,OAAC,MAAM,CAAC,CAAC;AACtB;EACA,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;EAClE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;EAC9F,KAAK;EACL,IAAG;AACH;EACA,uBAAE,8BAAU,CAAC,EAAE;;AAAC;EAChB,IAAI,qBAAqB,aAAO;EAChC,MAAM,IAAIL,MAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAACA,MAAI,CAAC,OAAO,CAAC,QAAQ,IAAEA,MAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAC;EAC3E,KAAK,CAAC,CAAC;EACP,IAAG;AACH;EACA,EAAE,mBAAI,wBAAS,EAAE,OAAOK,oBAAK,CAAC,KAAK,CAAC,GAAE;AACtC;EACA,EAAE,mBAAI,sBAAO,KAAK,EAAE;EACpB,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAC;EAC7F,IAAIA,oBAAK,CAAC,KAAK,GAAG,KAAK,CAAC;EACxB,IAAG;AACH;EACA,uBAAE,4BAAU;EACZ,IAAIP,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAC7D;EACA,IAAI,uBAAmB,IAAI,CAAC,8BAAK;QAAxBA,IAAM;;QAAoB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;OAAC;EACrD;;;;;;IAzCyB,GAAG,CAAC,IAAI,CAAC,mBA0CjC;AACD;EACA,IAAM,cAAc,GAClB,uBAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;EAChC,EAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;EAC9B,EAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EACpB,EAAC;AACH;2BACE,kCAAY,QAAQ,EAAE;EACxB,EAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AACpC;EACA,EAAI,uBAAqB,QAAQ,CAAC,gCAAO,EAAE;EAC3C,IADSA,IAAM;;QACT,IAAI,CAAC,MAAM,CAAC,YAAY,IAAE,WAAS;EACzC,IAAM,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;EACnC,IAAM,MAAM;EACZ,GAAK;AACL;EACA,EAAIC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;EAC1C,EAAI,OAAO,IAAI,EAAE;EACjB,IAAM,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;EAC1D,MAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;EACzB,MAAQ,MAAM;EACd,KAAO;EACP,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;EAChC,GAAK;EACH,EAAC;AACH;2BACE,wBAAO,KAAK,EAAE;EAChB,EAAID,IAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAClD,EAAIA,IAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;EAC3C,EAAIA,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;AAC1D;EACA,EAAI,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,IAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,GAAC;EACxF,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,GAAC;EACpE;;EClFF,GAAG,CAAC,UAAU,GAAG,UAAU;;ECC3B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC;;ECF5CA,IAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC9CA,IAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;;ECD7D;EACA;EACA;EACA;EACA;EACA;AACA;EACA,IAAM,MAAM,GACV,eAAW,IAAI;EACjB,EAAI,IAAI,CAAC,IAAI,EAAE,CAAC;EACd,EAAC;AACH;mBACE,wBAAQ;;AAAC;EACX,EAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC;AACzC;EACA,EAAI,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;EAChD,MAAQ,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;EACtC,MAAQ,IAAI,CAAC;AACb;EACA,EAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;EAC9B,IAAMA,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;EACzD,IAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE;EACnD,MAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;EAC7B,KAAO,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE;EAC5E,MAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;EAC7B,MAAQ,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC/C,KAAO,QAAM,IAAI,CAAC,MAAM,GAAG,OAAO,GAAC;EACnC,GAAK;AACL;EACA,EAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;EAChC,IAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE;EACpD,MAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;EACpD,KAAO,MAAM;EACb,MAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;EACnD,MAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACpD;EACA,MAAQ,UAAU,aAAO;EACzB,QAAUE,MAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;EACtD,OAAS,EAAE,GAAG,CAAC,CAAC;EAChB,KAAO;EACP,GAAK,QAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,GAAC;AACxD;EACA,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACjE,EAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;EACzD,EAAC;AACH;mBACE,0BAAQ,SAAS,EAAE;;AAAC;EACtB,EAAI,SAAS,CAAC,OAAO,WAAE,QAAQ,EAAK;EACpC,IAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;EACpF,MAAQF,IAAM,MAAM,GAAGE,MAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;EAC3D,MAAQ,IAAI,MAAM,KAAK,MAAM,EAAE;EAC/B,QAAU,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;EACjD,OAAS,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE;EACvC,QAAU,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;EAClD,OAAS;EACT,KAAO;EACP,GAAK,CAAC,CAAC;EACL;;ECxDF,GAAG,CAAC,MAAM,GAAG,MAAM;;ECDZF,IAAM,iBAAiB,GAAG,mBAAe,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAC,QAAI,CAAC;EACtFA,IAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;EAClEA,IAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;ECJnD;AAEA;EACAA,IAAMQ,OAAK,eAAS;EACpB,EAAE,IAAI,MAAM,EAAE,CAAC;EACf,CAAC;;ECHD,IAAM,WAAW,GACf,oBAAW,IAAI;EACjB,EAAI,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;EACpC,EAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;EACtB,EAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAC/D;EACA,EAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACjD,IAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACxE,GAAK;AACL;EACA,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACjE,EAAI,IAAI,CAAC,OAAO,EAAE,CAAC;EACnB,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC;EACf,EAAC;AACH;wBACE,8BAAW;EACb,EAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;EACxE,EAAC;AACH;wBACE,0BAAQ,SAAS,EAAE;;AAAC;EACtB,EAAI,SAAS,CAAC,OAAO,WAAE,QAAQ,EAAK;EACpC,IAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAKN,MAAI,CAAC,aAAa,EAAE;EAC3F,MAAQA,MAAI,CAAC,KAAK,EAAE,CAAC;EACrB,KAAO;EACP,GAAK,CAAC,CAAC;EACL,EAAC;AACH;wBACE,0BAAS;EACX,EAAIF,IAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;EAC5E,EAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;EAC3B,EAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACjD,IAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;EAC9D,GAAK;EACL,EAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;EAC1B,EAAC;AACH;wBACE,4BAAU;EACZ,EAAI,IAAI,IAAI,CAAC,UAAU,IAAE,SAAO;EAChC,EAAI,IAAI,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAC;EAClD,EAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,iBAAiB,GAAG,UAAU,CAAC,CAAC;EACxE,EAAI,IAAI,IAAI,CAAC,KAAK,EAAE;EACpB,IAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EAClF,GAAK,MAAM;EACX,IAAM,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;EACnE,GAAK;EACL,EAAI,IAAI,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,OAAO,EAAE,GAAC;EACpC;;EChDF;AAEA;EACAA,IAAMQ,OAAK,eAAS;EACpB,EAAE,IAAI,WAAW,EAAE,CAAC;EACpB,CAAC;;ECLD;AAMA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,aAAU,WAAW,SAAK,CAACC,OAAW,CAAC,CAAC,CAAC;EACjE,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,OAAI,kBAAmB,CAACC,OAAW,CAAC,CAAC;;ECNtDV,IAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;EAC/CA,IAAM,mBAAmB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC;;ECHhE;AAGA;EACA,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;;ECFnDA,IAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;EAC5D;EACOA,IAAM,wBAAwB,IAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,gBAAS,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAC,MAAG,CAAC;EACrHA,IAAM,IAAI,GAAG,MAAM,CAAC;EACpBA,IAAM,KAAK,GAAG,OAAO,CAAC;EACtBA,IAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;EAClDA,IAAM,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;EAC5DA,IAAM,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC;EAC9DA,IAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;EACpDA,IAAM,oBAAoB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;EAClEA,IAAM,aAAa,GAAG,CAAC,CAAC;;ECD/B,IAAM,KAAK,GACT,cAAW,EAAE,KAAK,EAAE;EACtB,EAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACnB,EAAC;AACH;kBACE,sBAAM,KAAK,EAAE;EACf,EAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACvB,EAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;EACvD,EAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;EAC9D,EAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;EACnF,EAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;EAC3D,EAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;EAC3B,EAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB;EACA,EAAIA,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7C,EAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;EACzD,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;AACH;kBACE,4BAAU;EACZ,EAAIA,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;EACjF,EAAIC,IAAI,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;EAClF,EAAI,IAAI,SAAS,IAAI,mBAAmB,EAAE;EAC1C,IAAM,IAAI,CAAC,MAAM,EAAE,CAAC;EACpB,IAAM,IAAI,CAAC,aAAa,EAAE,CAAC;EAC3B,GAAK,MAAM;EACX,IAAM,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY,IAAE,IAAI,CAAC,MAAM,EAAE,GAAC;EACzD,GAAK;EACL,EAAI,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;EAClC,EAAI,mBAAmB,GAAG,KAAK,CAAC;EAC9B,EAAC;AACH;kBACE,8BAAU;EACZ,EAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;EACzD,EAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;EACxD,EAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;EACnD,EAAI,IAAI,IAAI,CAAC,OAAO,EAAE;EACtB,IAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;EAC1C,IAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;EAClC,IAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;EAC7C,IAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;EACrC,GAAK;EACH,EAAC;AACH;kBACE,4BAAU;EACZ,EAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;EAChD,EAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;EAC3B,EAAC;AACH;EACE;kBACA,wBAAQ;EACV,EAAID,IAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EACtD,EAAI,WAAW,CAAC,SAAS,GAAG,aAAa,CAAC;EAC1C,EAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;EACzD,EAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;EAC5C,EAAI,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;EACvC,EAAC;AACH;EACE;kBACA,kDAAqB;EACvB,EAAIA,IAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;EACzD,EAAIA,IAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC3D;EACA;EACA,EAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;EAChE,IAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;EACvD,IAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;EACvD,GAAK,MAAM;EACX,IAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;EACtD,IAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;EACxD,GAAK;EACH,EAAC;AACH;EACE;kBACA,gDAAmB,IAAI,EAAE;EAC3B,EAAIC,IAAI,QAAQ,GAAG,CAAC,CAAC;EACrB;EACA,EAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;EAChE,IAAM,QAAQ,GAAG,CAAC,CAAC,CAAC;EACpB,GAAK;EACL,EAAI,QAAQ,IAAI;EAChB,IAAM,KAAK,IAAI;EACf,MAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;EACpD,IAAM,KAAK,KAAK;EAChB,MAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;EACjH,IAAM;EACN,MAAQ,OAAO,KAAK,CAAC;EACrB,GAAK;EACH,EAAC;AACH;EACE;kBACA,0CAAiB;EACnB,EAAI,IAAI,IAAI,CAAC,OAAO,EAAE;EACtB,IAAMD,IAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EACnD,IAAMA,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;EAC7G,IAAM,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;EACrC,IAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;EAC/D,MAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EACtE,MAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EAC/D,KAAO,MAAM;EACb,MAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EACnE,MAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;EAC5D,KAAO;EACP,GAAK;EACH,EAAC;AACH;EACE;EACF;kBACE,oDAAqB,IAAI,EAAE,cAAc,EAAE;EAC7C;EACA,EAAI,IAAI,cAAc,IAAI,aAAa,EAAE;EACzC,IAAM,IAAI,IAAI,KAAK,IAAI,IAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAC;EAC7E,SAAW,IAAI,IAAI,KAAK,KAAK,IAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAC;EACpF,GAAK,MAAM;EACX,IAAM,IAAI,IAAI,KAAK,IAAI,IAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAC;EAC1E,SAAW,IAAI,IAAI,KAAK,KAAK,IAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAC;EACjF,GAAK;EACH;;EC7HF,GAAG,CAAC,KAAK,GAAG,KAAK;;ECAjBA,IAAM,MAAM,GAAG,EAAE,CAAC;AAClB;EACAA,IAAM,MAAM,eAAS;EACrB,EAAE,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAC;EAC7D,CAAC,CAAC;AACF;EACAD,IAAMQ,OAAK,eAAS;EACpB,EAAER,IAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;EACzE,EAAE,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC;AACpF;EACA,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC5C,EAAE,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;EACvD,EAAE,MAAM,EAAE,CAAC;EACX,CAAC;;EChBD;AAIA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAACO,OAAK,CAAC,CAAC;;ECHjD;EACA;EACA;EACA;EACA;EACA,IAAM,SAAS;;;;;;;;;wBACb,wBAAO,KAAK,EAAE;EAChB,IAAID,oBAAK,CAAC,UAAK,OAAC,KAAK,CAAC,CAAC;EACvB,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;EAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;EAChE,KAAK;EACL;;;IANwB,GAAG,CAAC,IAAI,CAAC;;ECL1BP,IAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;EACnDA,IAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;EACvCA,IAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;EAC3CA,IAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;EAC/CA,IAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;;ECHnD;EACA;EACA;EACA;EACA,IAAM,SAAS;IACb,kBAAW,EAAE,EAAE,EAAE,OAAO,EAAE;EAC5B,IAAIO,eAAK,OAAC,EAAE,EAAE,OAAO,CAAC,CAAC;EACvB,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,QAAK,YAAa,CAAC;AACxD;EACA,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E;EACA,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;EAChB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACzD;;;;;;+DAAG;AACH;EACA,EAAE,gBAAW,2BAAY,EAAE,OAAO,UAAU,CAAC,GAAE;AAC/C;EACA,sBAAE,wCAAe,CAAC,EAAE;EACpB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;EAC3C,IAAG;AACH;EACA,sBAAE,wBAAQ;EACV,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EACzD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EAC9F,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EACvF,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EACrF,IAAG;AACH;EACA;EACA;EACA;EACA;EACA,sBAAE,8CAAmB;EACrB,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;EAC9D,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;EACxC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;EACrB,OAAO,MAAM;EACb,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;EACvB,OAAO;AACP;EACA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;EACnB,KAAK;EACL,IACA;EACA;EACA;EACA;EACA;EACA,sBAAE,4CAAkB;EACpB,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;EAC9D,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;EAC1B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;EACrB,OAAO,MAAM;EACb,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACrC,OAAO;AACP;EACA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;EACnB,KAAK;EACL,IACA;EACA;EACA;EACA;EACA,sBAAE,kCAAa;EACf,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;EAC9D,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;EACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;EACnB,KAAK;EACL,IACA;EACA;EACA;EACA;EACA,sBAAE,gCAAY;EACd,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;EAC9D,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACnC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;EACnB,KAAK;EACL,IACA;EACA,sBAAE,0BAAS;EACX,IAAI,IAAI,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAC;EAC3C,IAAG;AACH;EACA,sBAAE,0BAAS;EACX,IAAI,KAAKN,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAC;EACxE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;EAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;EAC9C,IAAI,KAAKA,IAAIU,GAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAEA,GAAC,GAAG,IAAI,CAAC,MAAM,EAAEA,GAAC,EAAE,IAAE,IAAI,CAAC,OAAO,CAACA,GAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAC;EACrF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;EACvC,IAAG;AACH;EACA,sBAAE,oBAAK,GAAG,EAAE;EACZ,IAAIJ,oBAAK,CAAC,QAAG,OAAC,GAAG,CAAC,CAAC;EACnB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,IAAE,IAAI,CAAC,OAAO,GAAG,GAAG,GAAC;EAC/D,SAAS;EACT,MAAMP,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EAC9C,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAE,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAC;EACvG,KAAK;EACL,IAAG;AACH;EACA,sBAAE,4BAAU;EACZ,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAE,SAAO;EACtC,IAAIA,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;EACrE,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,IAAE,SAAO;EAChD,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;EAClC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;EACnF;;;;;IAxGwB,GAAG,CAAC,IAAI,CAAC;;ECFjC;EACA;EACA;EACA;EACA;EACA,IAAM,GAAG;;;;;;;;;;;;IACP,gBAAW,uBAAQ,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAE;EACjE,EAAE,gBAAW,2BAAY,EAAE,OAAO,WAAW,CAAC,GAAE;AAChD;EACA,EAAE,mBAAI,mCAAoB,EAAE,OAAO,SAAS,CAAC,GAAE;AAC/C;EACA,gBAAE,wCAAe,OAAO,EAAE;EAC1B,IAAI,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;EACxC,IAAG;AACH;EACA,gBAAE,gCAAW,SAAS,EAAE,OAAO,EAAE;EACjC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,EAAE,CAAC;EAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAa,SAAS,GAAG,IAAG,OAAI,CAAC;EACpE,IAAG;AACH;EACA,gBAAE,0BAAS;EACX,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;EACzB;;;;;;IAjBkB,GAAG,CAAC,IAAI,CAAC;;ECL3B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;EACd,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;EAC1B,GAAG,CAAC,SAAS,GAAG,SAAS;;ECLzB;EACA;EACA;EACAA,IAAMQ,OAAK,eAAS;EACpB,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;EACtB,CAAC;;ECPD;AAIA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAACA,OAAK,CAAC,CAAC;;ECHzCR,IAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;EACvDA,IAAM,sBAAsB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;EACtEA,IAAM,oBAAoB,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;EAClEA,IAAM,2BAA2B,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;EAChFA,IAAM,0BAA0B,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;EAC9EA,IAAM,2BAA2B,GAAM,2BAA2B,UAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAG;;ECGlH,IAAM,MAAM,GACV,eAAW,EAAE,MAAM,EAAE;EACvB,EAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;EACpE,EAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB;EACA,EAAI,IAAI,CAAC,IAAI,EAAE,CAAC;EACd,EAAC;AACH;mBACE,8BAAU,QAAQ,EAAE;EACtB,EAAIA,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;EACxD,EAAI,IAAI,CAAC,OAAO,IAAE,SAAO;EACzB,EAAIA,IAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;EACtE,EAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAE,SAAO;EAC1C,EAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC/C,EAAC;AACH;mBACE,wBAAQ;EACV,EAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;EAC1C,EAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AACxC;EACA,EAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC7E;EACA,EAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;EAC7E,EAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;AAC3E;EACA,EAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C;EACA,EAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;EACrD,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;AACH;mBACE,4BAAU;EACZ,EAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;AAClE;EACA,EAAI,IAAI,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,MAAM,CAAC,OAAO,WAAE,KAAK,WAAK,KAAK,CAAC,OAAO,KAAE,CAAC,GAAC;EACtE,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,WAAE,KAAK,WAAK,KAAK,CAAC,MAAM,KAAE,CAAC,GAAC;AACxD;EACA,EAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;EAClC,IAAM,IAAI,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAC;EACrE,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAC;EACvD,GAAK;EACH,EACD;AACD;EACA,IAAM,WAAW,GACf,oBAAW,EAAE,KAAK,EAAE;EACtB,EAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACrB,EAAC;AACH;wBACE,4BAAU;EACZ,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACtD,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;EACpF,EAAC;AACH;wBACE,8BAAW;EACb,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;EACzB,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;EAC/C,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;EACxD;;ECjEF,GAAG,CAAC,MAAM,GAAG,MAAM;;ECAnBA,IAAM,KAAK,eAAS;EACpB,EAAEA,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1F;EACA,EAAEA,IAAM,OAAO,GAAG,EAAE,CAAC;AACrB;EACA,EAAE,uBAAsB,iCAAQ;MAAzBA,IAAM;;MAAqB,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;KAAC;EACpE,CAAC;;ECTD;AAIA;EACA,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;;"}