{"version":3,"file":"index.esm.js","sources":["../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/characters/chisato.png","../src/characters/takina.png","../src/characters/index.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","var img = \"data:image/png;base64,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\";\n export default img;","var img = \"data:image/png;base64,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\";\n export default img;","import _chisato from './chisato.png';\nimport _takina from './takina.png';\n\nexport interface SakanaWidgetState {\n /**\n * inertia\n */\n i: number;\n /**\n * stickiness\n */\n s: number;\n /**\n * decay\n */\n d: number;\n /**\n * angle\n */\n r: number;\n /**\n * height\n */\n y: number;\n /**\n * vertical speed\n */\n t: number;\n /**\n * horizontal speed\n */\n w: number;\n}\n\nexport interface SakanaWidgetCharacter {\n image: string;\n initialState: SakanaWidgetState;\n}\n\nconst chisato: SakanaWidgetCharacter = {\n image: _chisato,\n initialState: {\n i: 0.08,\n s: 0.1,\n d: 0.99,\n r: 1,\n y: 40,\n t: 0,\n w: 0,\n },\n};\n\nconst takina: SakanaWidgetCharacter = {\n image: _takina,\n initialState: {\n i: 0.08,\n s: 0.1,\n d: 0.988,\n r: 12,\n y: 2,\n t: 0,\n w: 0,\n },\n};\n\nexport default {\n chisato,\n takina,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type RequiredDeep = {\n [K in keyof T]: RequiredDeep;\n} & Required;\n\n/**\n * simple is object\n */\nexport function isObject(value: any) {\n const type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\n\n/**\n * simple deep clone\n */\nexport function cloneDeep(value: T): T {\n if (typeof window.structuredClone === 'function') {\n return window.structuredClone(value);\n } else {\n return JSON.parse(JSON.stringify(value));\n }\n}\n\n/**\n * simple deep merge\n */\nexport function mergeDeep(target: T, source: U): T & U {\n const _target = cloneDeep(target) as any;\n const _source = cloneDeep(source) as any;\n if (!isObject(_target) || !isObject(_source)) {\n return _target;\n }\n Object.keys(_source).forEach((key) => {\n if (isObject(_source[key])) {\n if (!isObject(_target[key])) {\n _target[key] = {};\n }\n _target[key] = mergeDeep(_target[key], _source[key]);\n } else {\n _target[key] = _source[key];\n }\n });\n return _target;\n}\n\n/**\n * throttle a func with requestAnimationFrame,\n * https://github.com/wuct/raf-throttle/blob/master/rafThrottle.js\n */\nexport function throttle any>(callback: T): T {\n let requestId: number | null = null;\n let lastArgs: any[];\n const later = (context: any) => () => {\n requestId = null;\n callback.apply(context, lastArgs);\n };\n const throttled = function (...args: any[]) {\n lastArgs = args;\n if (requestId === null) {\n // @ts-expect-error this refers to context inherited from outside\n requestId = requestAnimationFrame(later(this));\n }\n } as T;\n return throttled;\n}\n\n/**\n * get the canvas context with device pixel ratio\n */\nexport function getCanvasCtx(\n canvas: HTMLCanvasElement,\n appSize: number,\n devicePixelRatio = (window.devicePixelRatio || 1) * 2\n) {\n const canvasRenderSize = appSize * devicePixelRatio;\n canvas.width = canvasRenderSize;\n canvas.height = canvasRenderSize;\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n }\n // scale all drawing operations by the dpr\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.scale(devicePixelRatio, devicePixelRatio);\n return ctx;\n}\n","/*! sakana-widget | DSRKafuU (https://dsrkafuu.net) | Copyright (c) MIT License */\n\nimport './index.scss';\nimport type { RequiredDeep } from './utils';\nimport type { SakanaWidgetCharacter, SakanaWidgetState } from './characters';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport characters from './characters';\nimport { svgClose, svgGitHub, svgPerson, svgSync } from './icons';\nimport { cloneDeep, mergeDeep, throttle, getCanvasCtx } from './utils';\n\ninterface SakanaWidgetOptions {\n /**\n * widget size, default to `200`\n */\n size?: number;\n /**\n * auto fit size (120px minimum), default to `false`\n */\n autoFit?: boolean;\n /**\n * default character, default to `chisato`\n */\n character?: 'chisato' | 'takina' | string;\n /**\n * controls bar, default to `true`\n */\n controls?: boolean;\n /**\n * canvas stroke settings, default to `#b4b4b4` & `10`\n */\n stroke?: {\n color?: string;\n width?: number;\n };\n /**\n * motion stop threshold, default to `0.1`\n */\n threshold?: number;\n /**\n * rotate origin, default to `0`\n */\n rotate?: number;\n}\nconst defaultOptions: SakanaWidgetOptions = {\n size: 200,\n autoFit: false,\n character: 'chisato',\n controls: true,\n stroke: {\n color: '#b4b4b4',\n width: 10,\n },\n threshold: 0.1,\n rotate: 0,\n};\n\n// register default characters\nlet _characters: { [key: string]: SakanaWidgetCharacter } = null as any;\nfunction _initCharacters() {\n if (_characters) return;\n _characters = {};\n (Object.keys(characters) as Array).forEach((key) => {\n const _char = characters[key];\n _characters[key] = cloneDeep(_char);\n });\n}\n\n/**\n * widget instance class\n */\nclass SakanaWidget {\n private _options: RequiredDeep;\n\n // app metadata\n private _imageSize!: number;\n private _canvasSize!: number;\n private _limit!: { maxR: number; maxY: number; minY: number };\n private _lastRunUnix = Date.now();\n private _frameUnix = 1000 / 60; // default to speed of 60 fps\n private _running = true;\n private _magicForceTimeout = 0;\n private _magicForceEnabled = false;\n\n // character related\n private _char!: string;\n private _image!: string;\n private _state!: SakanaWidgetState;\n\n // dom element related\n private _domWrapper!: HTMLDivElement; // this is needed for resize observer\n private _domApp!: HTMLDivElement; // actual app element\n private _domCanvas!: HTMLCanvasElement;\n private _domCanvasCtx!: CanvasRenderingContext2D;\n private _domMain!: HTMLDivElement;\n private _domImage!: HTMLDivElement;\n private _domCtrlPerson!: HTMLDivElement;\n private _domCtrlMagic!: HTMLDivElement;\n private _domCtrlClose!: HTMLDivElement;\n private _resizeObserver: ResizeObserver | null = null;\n\n /**\n * @public\n * @static\n * get data of a registered character\n */\n static getCharacter = (name: string): SakanaWidgetCharacter | null => {\n if (_characters == null) {\n _initCharacters()\n }\n const _char = _characters[name];\n return _char ? cloneDeep(_char) : null;\n };\n\n /**\n * @public\n * @static\n * get all registered character\n */\n static getCharacters = () => {\n if (_characters == null) {\n _initCharacters()\n }\n return cloneDeep(_characters);\n };\n\n /**\n * @public\n * @static\n * registered a new character\n */\n static registerCharacter = (\n name: string,\n character: SakanaWidgetCharacter\n ) => {\n const _char = cloneDeep(character);\n // validate inertia\n let inertia = _char.initialState.i;\n inertia = Math.min(0.5, Math.max(0, inertia));\n _char.initialState.i = inertia;\n // register character\n _characters[name] = _char;\n };\n\n constructor(options: SakanaWidgetOptions = {}) {\n if (_characters == null) {\n _initCharacters();\n }\n\n this._options = cloneDeep(\n defaultOptions\n ) as RequiredDeep;\n this._options = mergeDeep(this._options, options);\n\n // init default character\n this.setCharacter(this._options.character);\n\n // init dom\n this._updateDom();\n this._updateSize(this._options.size);\n this._updateLimit(this._options.size);\n }\n\n /**\n * @private\n * calculate limit and update from size\n */\n private _updateLimit = (size: number) => {\n let maxR = size / 5;\n if (maxR < 30) {\n maxR = 30;\n } else if (maxR > 60) {\n maxR = 60;\n }\n const maxY = size / 4;\n const minY = -maxY;\n this._limit = { maxR, maxY, minY };\n };\n\n /**\n * @private\n * refresh widget size\n */\n private _updateSize = (size: number) => {\n this._options.size = size;\n this._imageSize = this._options.size / 1.25;\n this._canvasSize = this._options.size * 1.5;\n\n // widget root app\n this._domApp.style.width = `${size}px`;\n this._domApp.style.height = `${size}px`;\n\n // canvas stroke palette\n this._domCanvas.style.width = `${this._canvasSize}px`;\n this._domCanvas.style.height = `${this._canvasSize}px`;\n const ctx = getCanvasCtx(this._domCanvas, this._canvasSize);\n if (!ctx) {\n throw new Error('Invalid canvas context');\n }\n this._domCanvasCtx = ctx;\n this._draw(); // refresh canvas\n\n // widget main container\n this._domMain.style.width = `${size}px`;\n this._domMain.style.height = `${size}px`;\n\n // widget image\n this._domImage.style.width = `${this._imageSize}px`;\n this._domImage.style.height = `${this._imageSize}px`;\n this._domImage.style.transformOrigin = `50% ${size}px`; // use the bottom center of widget as trans origin\n };\n\n /**\n * @private\n * create widget dom elements\n */\n private _updateDom = () => {\n // wrapper\n const wrapper = document.createElement('div');\n wrapper.className = 'sakana-widget-wrapper';\n this._domWrapper = wrapper;\n\n // widget root app\n const app = document.createElement('div');\n app.className = 'sakana-widget-app';\n this._domApp = app;\n wrapper.appendChild(app);\n\n // canvas stroke palette\n const canvas = document.createElement('canvas');\n canvas.className = 'sakana-widget-canvas';\n this._domCanvas = canvas;\n app.appendChild(canvas);\n\n // widget main container\n const main = document.createElement('div');\n main.className = 'sakana-widget-main';\n this._domMain = main;\n app.appendChild(main);\n\n // widget image\n const img = document.createElement('div');\n img.className = 'sakana-widget-img';\n img.style.backgroundImage = `url('${this._image}')`;\n this._domImage = img;\n main.appendChild(img);\n\n // control bar\n const ctrl = document.createElement('div');\n ctrl.className = 'sakana-widget-ctrl';\n if (this._options.controls) {\n main.appendChild(ctrl);\n }\n const itemClass = 'sakana-widget-ctrl-item';\n const person = document.createElement('div');\n person.className = itemClass;\n person.innerHTML = svgPerson;\n this._domCtrlPerson = person;\n ctrl.appendChild(person);\n const magic = document.createElement('div');\n magic.className = itemClass;\n magic.innerHTML = svgSync;\n this._domCtrlMagic = magic;\n ctrl.appendChild(magic);\n const github = document.createElement('a');\n github.className = itemClass;\n github.href = '//github.com/dsrkafuu/sakana-widget';\n github.target = '_blank';\n github.innerHTML = svgGitHub;\n ctrl.appendChild(github);\n const close = document.createElement('div');\n close.className = itemClass;\n close.innerHTML = svgClose;\n this._domCtrlClose = close;\n ctrl.appendChild(close);\n };\n\n /**\n * @private\n * calculate center of the image\n */\n private _calcCenterPoint = (\n degree: number,\n radius: number,\n x: number,\n y: number\n ) => {\n const radian = (Math.PI / 180) * degree;\n const cos = Math.cos(radian);\n const sin = Math.sin(radian);\n const nx = sin * radius + cos * x - sin * y;\n const ny = cos * radius - cos * y - sin * x;\n return { nx, ny };\n };\n\n /**\n * @private\n * draw a frame\n */\n private _draw = () => {\n const { r, y } = this._state;\n const { size, controls, stroke } = this._options;\n const img = this._domImage;\n const imgSize = this._imageSize;\n const ctx = this._domCanvasCtx;\n\n // move the image\n const x = r * 1;\n img.style.transform = `rotate(${r}deg) translateX(${x}px) translateY(${y}px)`;\n\n // draw the canvas line\n ctx.clearRect(0, 0, this._canvasSize, this._canvasSize);\n ctx.save();\n // use the bottom center of widget as axis origin\n // note that canvas is 1.5 times larger than widget\n ctx.translate(this._canvasSize / 2, size + (this._canvasSize - size) / 2);\n ctx.strokeStyle = stroke.color;\n ctx.lineWidth = stroke.width;\n ctx.lineCap = 'round';\n ctx.beginPath();\n // use the bottom center (different offset) of widget as start of the line\n if (controls) {\n ctx.moveTo(0, -10);\n } else {\n ctx.moveTo(0, 10);\n }\n const radius = size - imgSize / 2;\n const { nx, ny } = this._calcCenterPoint(r, radius, x, y);\n ctx.lineTo(nx, -ny);\n ctx.stroke();\n ctx.restore();\n };\n\n /**\n * @private\n * run the widget in animation frame\n */\n private _run = () => {\n let originRotate = this._options.rotate;\n originRotate = Math.min(120, Math.max(0, originRotate));\n const cut = this._options.threshold;\n if (!this._running) {\n return;\n }\n let { r, y, t, w } = this._state;\n const { d, i } = this._state;\n const thisRunUnix = Date.now();\n let _inertia = i;\n\n // ignore if frame diff is above 16ms (60fps)\n const lastRunUnixDiff = thisRunUnix - this._lastRunUnix;\n if (lastRunUnixDiff < 16) {\n _inertia = (i / this._frameUnix) * lastRunUnixDiff;\n }\n this._lastRunUnix = thisRunUnix;\n\n w = w - r * 2 - originRotate;\n r = r + w * _inertia * 1.2;\n this._state.w = w * d;\n this._state.r = r;\n t = t - y * 2;\n y = y + t * _inertia * 2;\n this._state.t = t * d;\n this._state.y = y;\n\n // stop if motion is too little\n if (\n Math.max(\n Math.abs(this._state.w),\n Math.abs(this._state.r),\n Math.abs(this._state.t),\n Math.abs(this._state.y)\n ) < cut\n ) {\n this._running = false;\n return;\n }\n\n this._draw();\n requestAnimationFrame(this._run);\n };\n\n /**\n * @private\n * manually move the widget\n */\n private _move = (x: number, y: number) => {\n const { maxR, maxY, minY } = this._limit;\n let r = x * this._state.s;\n r = Math.max(-maxR, r);\n r = Math.min(maxR, r);\n y = y * this._state.s * 2;\n y = Math.max(minY, y);\n y = Math.min(maxY, y);\n this._state.r = r;\n this._state.y = y;\n this._state.w = 0;\n this._state.t = 0;\n this._draw();\n };\n\n /**\n * @private\n * handle mouse down event\n */\n private _onMouseDown = (e: MouseEvent) => {\n e.preventDefault();\n this._running = false;\n const { pageY } = e;\n const _downPageY = pageY;\n this._state.w = 0;\n this._state.t = 0;\n\n const onMouseMove = (e: MouseEvent) => {\n const rect = this._domMain.getBoundingClientRect();\n const leftCenter = rect.left + rect.width / 2;\n const { pageX, pageY } = e;\n const x = pageX - leftCenter;\n const y = pageY - _downPageY;\n this._move(x, y);\n };\n\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n this._running = true;\n requestAnimationFrame(this._run);\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n };\n\n /**\n * @private\n * handle touch start event\n */\n private _onTouchStart = (e: TouchEvent) => {\n e.preventDefault();\n this._running = false;\n if (!e.touches[0]) {\n return;\n }\n const { pageY } = e.touches[0];\n const _downPageY = pageY;\n this._state.w = 0;\n this._state.t = 0;\n\n const onTouchMove = (e: TouchEvent) => {\n if (!e.touches[0]) {\n return;\n }\n const rect = this._domMain.getBoundingClientRect();\n const leftCenter = rect.left + rect.width / 2;\n const { pageX, pageY } = e.touches[0];\n const x = pageX - leftCenter;\n const y = pageY - _downPageY;\n this._move(x, y);\n };\n\n const onTouchEnd = () => {\n document.removeEventListener('touchmove', onTouchMove);\n document.removeEventListener('touchend', onTouchEnd);\n this._running = true;\n requestAnimationFrame(this._run);\n };\n\n document.addEventListener('touchmove', onTouchMove);\n document.addEventListener('touchend', onTouchEnd);\n };\n\n /**\n * @private\n * do a force on widget (for auto mode)\n */\n private _magicForce = () => {\n // 0.1 probability to randomly switch character\n if (Math.random() < 0.1) {\n const available = Object.keys(_characters);\n const index = Math.floor(Math.random() * available.length);\n const _char = available[index];\n this.setCharacter(_char);\n } else {\n // add random velocities in the vertical and horizontal directions\n this._state.t = this._state.t + (Math.random() - 0.5) * 150;\n this._state.w = this._state.w + (Math.random() - 0.5) * 200;\n }\n\n if (!this._running) {\n this._running = true;\n requestAnimationFrame(this._run);\n }\n // set a variable delay between applying magic powers\n this._magicForceTimeout = window.setTimeout(\n this._magicForce,\n Math.random() * 3000 + 2000\n );\n };\n\n /**\n * @public\n * switch the auto mode\n */\n triggetAutoMode = () => {\n this._magicForceEnabled = !this._magicForceEnabled;\n\n // toggle icon rotate\n const icon = this._domCtrlMagic.querySelector('svg') as SVGSVGElement;\n if (this._magicForceEnabled) {\n icon.classList.add('sakana-widget-icon--rotate');\n } else {\n icon.classList.remove('sakana-widget-icon--rotate');\n }\n\n // clear the timer or start a timer\n clearTimeout(this._magicForceTimeout);\n if (this._magicForceEnabled) {\n this._magicForceTimeout = window.setTimeout(\n this._magicForce,\n Math.random() * 1000 + 500\n );\n }\n };\n\n /**\n * @public\n * set current state of widget\n */\n setState = (state: Partial) => {\n if (!this._state) {\n this._state = {} as SakanaWidgetState;\n }\n this._state = mergeDeep(this._state, cloneDeep(state));\n return this;\n };\n\n /**\n * @public\n * set current character of widget\n */\n setCharacter = (name: string) => {\n const targetChar = _characters[name];\n if (!targetChar) {\n throw new Error(`invalid character ${name}`);\n }\n this._char = name;\n this._image = targetChar.image;\n this.setState(targetChar.initialState);\n\n // refresh the widget image\n if (this._domImage) {\n this._domImage.style.backgroundImage = `url('${this._image}')`;\n }\n return this;\n };\n\n /**\n * @public\n * set to next character of widget\n */\n nextCharacter = () => {\n const _chars = Object.keys(SakanaWidget.getCharacters()).sort();\n const curCharIdx = _chars.indexOf(this._char);\n const nextCharIdx = (curCharIdx + 1) % _chars.length;\n const nextChar = _chars[nextCharIdx];\n this.setCharacter(nextChar);\n return this;\n };\n\n /**\n * @private\n * handle widget resize\n */\n _onResize = (rect: DOMRect) => {\n let newSize = Math.min(rect.width, rect.height);\n newSize = Math.max(120, newSize); // at least 120\n this._updateSize(newSize);\n this._updateLimit(newSize);\n };\n\n /**\n * @public\n * mount the widget\n */\n mount = (el: HTMLElement | string) => {\n // pre check\n let _el: HTMLElement | null = null;\n if (typeof el === 'string') {\n _el = document.querySelector(el);\n } else {\n _el = el;\n }\n if (!_el) {\n throw new Error('Invalid mounting element');\n }\n const parent = _el.parentNode;\n if (!parent) {\n throw new Error('Invalid mounting element parent');\n }\n\n // append event listeners\n this._domImage.addEventListener('mousedown', this._onMouseDown);\n this._domImage.addEventListener('touchstart', this._onTouchStart);\n this._domCtrlPerson.addEventListener('click', this.nextCharacter);\n this._domCtrlMagic.addEventListener('click', this.triggetAutoMode);\n this._domCtrlClose.addEventListener('click', this.unmount);\n\n // if auto fit mode\n if (this._options.autoFit) {\n // initial resize\n this._onResize(this._domWrapper.getBoundingClientRect());\n // handle furture resize\n this._resizeObserver = new ResizeObserver(\n throttle((entries) => {\n if (!entries || !entries[0]) return;\n this._onResize(entries[0].contentRect);\n })\n );\n this._resizeObserver.observe(this._domWrapper);\n }\n\n // mount node\n const _newEl = _el.cloneNode(false) as HTMLElement;\n _newEl.appendChild(this._domWrapper);\n parent.replaceChild(_newEl, _el);\n requestAnimationFrame(this._run);\n return this;\n };\n\n /**\n * @public\n * unmount the widget\n */\n unmount = () => {\n // remove event listeners\n this._domImage.removeEventListener('mousedown', this._onMouseDown);\n this._domImage.removeEventListener('touchstart', this._onTouchStart);\n this._domCtrlPerson.removeEventListener('click', this.nextCharacter);\n this._domCtrlMagic.removeEventListener('click', this.triggetAutoMode);\n this._domCtrlClose.removeEventListener('click', this.unmount);\n\n // if auto fit mode\n this._resizeObserver && this._resizeObserver.disconnect();\n\n // unmount node\n const _el = this._domWrapper.parentNode;\n if (!_el) {\n throw new Error('Invalid mounting element');\n }\n _el.removeChild(this._domWrapper);\n return this;\n };\n}\n\nexport default SakanaWidget;\nexport type { SakanaWidgetCharacter, SakanaWidgetState, SakanaWidgetOptions };\n"],"names":["img","_chisato","_takina"],"mappings":"AAAA,IAAI,eAAe,GAAG,EAAE;;ACCxB,IAAI,qBAAqB,GAAG,YAAY;AACxC,IAAI,OAAO,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACvF,CAAC;;ACFD,IAAI,sBAAsB,GAAG,YAAY;AACzC,IAAI,OAAO,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;;ACHD,IAAI,GAAG,GAAG,+DAA+D,CAAC;AAC1E,IAAI,sBAAsB,GAAG,YAAY;AACzC,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAC1C,QAAQ,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;AACxC,YAAY,OAAO,EAAE,GAAG;AACxB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,SAAS;AACT,QAAQ,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAQ,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/C,QAAQ,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;AAC5B,KAAK;AACL,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;;ACdD,IAAI,wBAAwB,CAAC;AAC7B,CAAC,UAAU,wBAAwB,EAAE;AACrC,IAAI,wBAAwB,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAC1D,IAAI,wBAAwB,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;AAC5D,IAAI,wBAAwB,CAAC,0BAA0B,CAAC,GAAG,0BAA0B,CAAC;AACtF,CAAC,EAAE,wBAAwB,KAAK,wBAAwB,GAAG,EAAE,CAAC,CAAC;;ACLxD,IAAI,MAAM,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;;ACCjE,IAAI,kBAAkB,IAAI,YAAY;AACtC,IAAI,SAAS,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE;AACvD,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,KAAK;AACL,IAAI,OAAO,kBAAkB,CAAC;AAC9B,CAAC,EAAE,CAAC;;ACPJ,IAAI,eAAe,IAAI,YAAY;AACnC,IAAI,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AAClD,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5C,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACnD,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACpJ,QAAQ,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChH,KAAK,CAAC;AACN,IAAI,eAAe,CAAC,QAAQ,GAAG,UAAU,SAAS,EAAE;AACpD,QAAQ,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AAChG,KAAK,CAAC;AACN,IAAI,OAAO,eAAe,CAAC;AAC3B,CAAC,EAAE,CAAC;;ACrBJ,IAAI,KAAK,GAAG,UAAU,MAAM,EAAE,EAAE,OAAO,MAAM,YAAY,UAAU,IAAI,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;AAC9F,IAAI,QAAQ,GAAG,UAAU,MAAM,EAAE;AACjC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AACvB,QAAQ,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AACxE,QAAQ,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,EAAE,GAAG,MAAM,EAAE,WAAW,GAAG,EAAE,CAAC,WAAW,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;AAClF,IAAI,OAAO,EAAE,WAAW,IAAI,YAAY,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,UAAU,GAAG,EAAE;AAC/B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,GAAG,YAAY,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;AACvI,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,GAAG,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC;AACF,IAAI,iBAAiB,GAAG,UAAU,MAAM,EAAE;AAC1C,IAAI,QAAQ,MAAM,CAAC,OAAO;AAC1B,QAAQ,KAAK,OAAO;AACpB,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACzC,gBAAgB,MAAM;AACtB,aAAa;AACb,QAAQ,KAAK,OAAO,CAAC;AACrB,QAAQ,KAAK,OAAO,CAAC;AACrB,QAAQ,KAAK,OAAO,CAAC;AACrB,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,KAAK;AAClB,YAAY,OAAO,IAAI,CAAC;AACxB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;;ACjCM,IAAI,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE;;ACM/D,IAAI,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;AAC1B,IAAI,YAAY,GAAG,aAAa,CAAC;AACjC,IAAI,cAAc,GAAG,cAAc,CAAC;AACpC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAChF,IAAI,cAAc,GAAG,UAAU,KAAK,EAAE,EAAE,OAAO,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3E,IAAI,IAAI,GAAG,UAAU,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;AACzD,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE;AAClD,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE;AAChD,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,KAAK,CAAC,EAAE;AACxD,IAAI,OAAO,IAAI,kBAAkB,CAAC,CAAC,WAAW,GAAG,SAAS,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC,WAAW,GAAG,UAAU,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC;AAC5H,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,MAAM,CAAC;AACvB,IAAI,yBAAyB,EAAE,IAAI,EAAE;AACrC,IAAI,aAAa,EAAE,IAAI,EAAE;AACzB,IAAI,cAAc,EAAE,IAAI,EAAE;AAC1B,IAAI,WAAW,EAAE,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AACH,IAAI,iBAAiB,GAAG,UAAU,MAAM,EAAE,kBAAkB,EAAE;AAC9D,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,EAAE;AACtE,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAClD,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1B,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACrC,QAAQ,OAAO,SAAS,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;AAC1E,IAAI,IAAI,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,YAAY,CAAC;AAC7D,IAAI,IAAI,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AAChE,IAAI,IAAI,mBAAmB,GAAG,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AAC5E,IAAI,IAAI,qBAAqB,GAAG,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AAC9E,IAAI,IAAI,UAAU,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,IAAI,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACjE,IAAI,IAAI,aAAa,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACnE,IAAI,IAAI,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAC/D,IAAI,IAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAChE,IAAI,IAAI,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;AACpE,IAAI,IAAI,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;AACtE,IAAI,IAAI,UAAU,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAClE,IAAI,IAAI,iBAAiB,GAAG,WAAW,GAAG,YAAY,CAAC;AACvD,IAAI,IAAI,eAAe,GAAG,UAAU,GAAG,aAAa,CAAC;AACrD,IAAI,IAAI,oBAAoB,GAAG,UAAU,GAAG,WAAW,CAAC;AACxD,IAAI,IAAI,kBAAkB,GAAG,SAAS,GAAG,YAAY,CAAC;AACtD,IAAI,IAAI,4BAA4B,GAAG,CAAC,qBAAqB,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,GAAG,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC;AACnI,IAAI,IAAI,0BAA0B,GAAG,CAAC,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,oBAAoB,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/H,IAAI,IAAI,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,CAAC,CAAC;AACtF,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,kBAAkB,GAAG,CAAC,CAAC;AACnF,IAAI,IAAI,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,cAAc,GAAG,0BAA0B,CAAC;AAChH,IAAI,IAAI,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,eAAe,GAAG,4BAA4B,CAAC;AACtH,IAAI,IAAI,cAAc,GAAG,YAAY,GAAG,iBAAiB,GAAG,0BAA0B,GAAG,oBAAoB,CAAC;AAC9G,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,4BAA4B,GAAG,kBAAkB,CAAC;AAC9G,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC;AACvB,QAAQ,yBAAyB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,gBAAgB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC,EAAE,WAAW,CAAC;AAC/I,QAAQ,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,WAAW,CAAC;AACzE,QAAQ,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;AACtE,QAAQ,WAAW,EAAE,IAAI,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC;AAC9F,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7B,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF,IAAI,gBAAgB,GAAG,UAAU,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE;AAC1E,IAAI,IAAI,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,cAAc,GAAG,EAAE,CAAC,cAAc,EAAE,yBAAyB,GAAG,EAAE,CAAC,yBAAyB,CAAC;AAC3L,IAAI,QAAQ,WAAW;AACvB,QAAQ,KAAK,wBAAwB,CAAC,wBAAwB;AAC9D,YAAY,OAAO,yBAAyB,CAAC;AAC7C,QAAQ,KAAK,wBAAwB,CAAC,UAAU;AAChD,YAAY,OAAO,aAAa,CAAC;AACjC,QAAQ;AACR,YAAY,OAAO,cAAc,CAAC;AAClC,KAAK;AACL,CAAC;;AC3ED,IAAI,mBAAmB,IAAI,YAAY;AACvC,IAAI,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACzC,QAAQ,IAAI,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,OAAO,mBAAmB,CAAC;AAC/B,CAAC,EAAE,CAAC;;ACXJ,IAAI,qBAAqB,GAAG,UAAU,IAAI,EAAE;AAC5C,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AACxB,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;AACjC,IAAI,OAAO,MAAM,EAAE;AACnB,QAAQ,KAAK,IAAI,CAAC,CAAC;AACnB,QAAQ,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;;ACRD,IAAI,2BAA2B,GAAG,YAAY;AAC9C,IAAI,IAAI,eAAe,GAAG,QAAQ,CAAC;AACnC,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC;AACvB,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,eAAe,CAAC,EAAE,EAAE;AACzD,QAAQ,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,OAAO,GAAG,EAAE,CAAC;AACzB,QAAQ,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,EAAE,EAAE;AAC5D,YAAY,IAAI,KAAK,GAAG,IAAI,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC3D,YAAY,IAAI,WAAW,GAAG,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC/D,YAAY,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,EAAE,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;AAC9E,YAAY,IAAI,WAAW,GAAG,eAAe,EAAE;AAC/C,gBAAgB,eAAe,GAAG,WAAW,CAAC;AAC9C,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,SAAS,CAAC,IAAI,CAAC,SAAS,sBAAsB,GAAG;AACzD,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;AAChE,SAAS,CAAC,CAAC;AACX,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,KAAK,CAAC,CAAC;AACP,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,SAAS,EAAE,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC7E,QAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AACvC,QAAQ,QAAQ,EAAE,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,eAAe,CAAC;AAC3B,CAAC;;AC7BD,IAAI,+BAA+B,GAAG,UAAU,KAAK,EAAE;AACvD,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,eAAe,CAAC,EAAE,EAAE;AACzD,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,QAAQ,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC9D,QAAQ,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,EAAE,EAAE;AACjE,YAAY,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE;AAC/B,gBAAgB,IAAI,qBAAqB,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE;AAC9D,oBAAoB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/C,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC;;ACZD,IAAI,OAAO,GAAG,YAAY;AAC1B,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,+BAA+B,CAAC,KAAK,CAAC,CAAC;AAC3C,IAAI,OAAO,qBAAqB,EAAE,EAAE;AACpC,QAAQ,KAAK,GAAG,2BAA2B,EAAE,CAAC;AAC9C,QAAQ,+BAA+B,CAAC,KAAK,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,sBAAsB,EAAE,EAAE;AAClC,QAAQ,sBAAsB,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC;AACrB,CAAC;;AChBD,IAAI,OAAO,CAAC;AACZ,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,IAAI,MAAM,GAAG,YAAY,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACjG,IAAI,cAAc,GAAG,UAAU,QAAQ,EAAE;AACzC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC;AACzB,QAAQ,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAC/C,QAAQ,IAAI,MAAM,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAC7C,QAAQ,IAAI,gBAAgB,CAAC,YAAY,EAAE,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrF,QAAQ,OAAO,GAAG,YAAY,EAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;AACpG,KAAK;AACL,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;;ACZD,IAAI,mBAAmB,GAAG,UAAU,EAAE,EAAE;AACxC,IAAI,cAAc,CAAC,SAAS,cAAc,GAAG;AAC7C,QAAQ,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAClC,KAAK,CAAC,CAAC;AACP,CAAC;;ACFD,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAI,UAAU,GAAG,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpD,IAAI,YAAY,GAAG,GAAG,CAAC;AACvB,IAAI,cAAc,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC/F,IAAI,MAAM,GAAG;AACb,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,eAAe;AACnB,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AACxB,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,OAAO;AACX,CAAC,CAAC;AACF,IAAI,IAAI,GAAG,UAAU,OAAO,EAAE;AAC9B,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE;AAC5C,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;AAChC,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,IAAI,SAAS,IAAI,YAAY;AAC7B,IAAI,SAAS,SAAS,GAAG;AACzB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,OAAO,EAAE;AACjD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,YAAY,CAAC,EAAE;AAC3D,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,SAAS,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,QAAQ,mBAAmB,CAAC,YAAY;AACxC,YAAY,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAC5C,YAAY,IAAI;AAChB,gBAAgB,mBAAmB,GAAG,OAAO,EAAE,CAAC;AAChD,aAAa;AACb,oBAAoB;AACpB,gBAAgB,SAAS,GAAG,KAAK,CAAC;AAClC,gBAAgB,OAAO,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC;AACzC,gBAAgB,IAAI,CAAC,UAAU,EAAE,EAAE;AACnC,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,gBAAgB,IAAI,mBAAmB,EAAE;AACzC,oBAAoB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,iBAAiB;AACjB,qBAAqB,IAAI,OAAO,GAAG,CAAC,EAAE;AACtC,oBAAoB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,KAAK,CAAC,KAAK,EAAE,CAAC;AAClC,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC9C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,EAAE,GAAG,YAAY,EAAE,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;AACjH,QAAQ,QAAQ,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC/E,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AAC5C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3B,YAAY,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5G,SAAS;AACT,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AAC3C,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAY,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AACxD,YAAY,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/G,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAChC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,SAAS,CAAC;AACrB,CAAC,EAAE,CAAC,CAAC;AACL,IAAI,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAChC,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE;AAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;AAC5C,IAAI,QAAQ,IAAI,CAAC,CAAC;AAClB,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;;AC/FD,IAAI,mBAAmB,GAAG,UAAU,MAAM,EAAE;AAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AACzB,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC;AACrC,WAAW,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;AACzD,CAAC,CAAC;AACF,IAAI,iBAAiB,IAAI,YAAY;AACrC,IAAI,SAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,wBAAwB,CAAC,WAAW,CAAC;AAC/E,QAAQ,IAAI,CAAC,gBAAgB,GAAG;AAChC,YAAY,UAAU,EAAE,CAAC;AACzB,YAAY,SAAS,EAAE,CAAC;AACxB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AACvD,QAAQ,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzE,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9C,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACzC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;AAChE,eAAe,IAAI,CAAC,gBAAgB,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AACnE,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK,CAAC;AACN,IAAI,OAAO,iBAAiB,CAAC;AAC7B,CAAC,EAAE,CAAC;;AC7BJ,IAAI,oBAAoB,IAAI,YAAY;AACxC,IAAI,SAAS,oBAAoB,CAAC,cAAc,EAAE,QAAQ,EAAE;AAC5D,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACjC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;AACvC,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,oBAAoB,CAAC;AAChC,CAAC,EAAE,CAAC;;ACLJ,IAAI,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAChC,IAAI,mBAAmB,GAAG,UAAU,kBAAkB,EAAE,MAAM,EAAE;AAChE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3D,QAAQ,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;AACrD,YAAY,OAAO,CAAC,CAAC;AACrB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,CAAC,CAAC;AACF,IAAI,wBAAwB,IAAI,YAAY;AAC5C,IAAI,SAAS,wBAAwB,GAAG;AACxC,KAAK;AACL,IAAI,wBAAwB,CAAC,OAAO,GAAG,UAAU,cAAc,EAAE,QAAQ,EAAE;AAC3E,QAAQ,IAAI,MAAM,GAAG,IAAI,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACxE,QAAQ,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,wBAAwB,CAAC,OAAO,GAAG,UAAU,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE;AAClF,QAAQ,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrD,QAAQ,IAAI,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC;AACtE,QAAQ,IAAI,mBAAmB,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;AACxE,YAAY,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D,YAAY,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAClG,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3B,YAAY,SAAS,CAAC,QAAQ,EAAE,CAAC;AACjC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,wBAAwB,CAAC,SAAS,GAAG,UAAU,cAAc,EAAE,MAAM,EAAE;AAC3E,QAAQ,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrD,QAAQ,IAAI,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC3E,QAAQ,IAAI,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC;AACrE,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;AACxB,YAAY,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,YAAY,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvD,YAAY,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,wBAAwB,CAAC,UAAU,GAAG,UAAU,cAAc,EAAE;AACpE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACxH,QAAQ,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACpE,KAAK,CAAC;AACN,IAAI,OAAO,wBAAwB,CAAC;AACpC,CAAC,EAAE,CAAC;;AC7CJ,IAAI,cAAc,IAAI,YAAY;AAClC,IAAI,SAAS,cAAc,CAAC,QAAQ,EAAE;AACtC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,SAAS,CAAC,gFAAgF,CAAC,CAAC;AAClH,SAAS;AACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAC5C,YAAY,MAAM,IAAI,SAAS,CAAC,+FAA+F,CAAC,CAAC;AACjI,SAAS;AACT,QAAQ,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE,OAAO,EAAE;AAClE,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,SAAS,CAAC,2FAA2F,CAAC,CAAC;AAC7H,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AAChC,YAAY,MAAM,IAAI,SAAS,CAAC,sFAAsF,CAAC,CAAC;AACxH,SAAS;AACT,QAAQ,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAChE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;AAC3D,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAY,MAAM,IAAI,SAAS,CAAC,6FAA6F,CAAC,CAAC;AAC/H,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AAChC,YAAY,MAAM,IAAI,SAAS,CAAC,wFAAwF,CAAC,CAAC;AAC1H,SAAS;AACT,QAAQ,wBAAwB,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzD,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtD,QAAQ,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,QAAQ,GAAG,YAAY;AAC1C,QAAQ,OAAO,gDAAgD,CAAC;AAChE,KAAK,CAAC;AACN,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC,EAAE,CAAC;;ACrCJ,IAAIA,KAAG,GAAG,w1mCAAw1mC;;ACAl2mC,IAAI,GAAG,GAAG,o1nCAAo1nC;;ACuC91nC,MAAM,OAAO,GAA0B;AACrC,IAAA,KAAK,EAAEC,KAAQ;AACf,IAAA,YAAY,EAAE;AACZ,QAAA,CAAC,EAAE,IAAI;AACP,QAAA,CAAC,EAAE,GAAG;AACN,QAAA,CAAC,EAAE,IAAI;AACP,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,EAAE,EAAE;AACL,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,EAAE,CAAC;AACL,KAAA;CACF,CAAC;AAEF,MAAM,MAAM,GAA0B;AACpC,IAAA,KAAK,EAAEC,GAAO;AACd,IAAA,YAAY,EAAE;AACZ,QAAA,CAAC,EAAE,IAAI;AACP,QAAA,CAAC,EAAE,GAAG;AACN,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,EAAE;AACL,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,CAAC,EAAE,CAAC;AACL,KAAA;CACF,CAAC;AAEF,iBAAe;IACb,OAAO;IACP,MAAM;CACP;;;;;;;;;;ACpED;AAMA;;AAEG;AACG,SAAU,QAAQ,CAAC,KAAU,EAAA;AACjC,IAAA,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;AAC1B,IAAA,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC;AACrE,CAAC;AAED;;AAEG;AACG,SAAU,SAAS,CAAI,KAAQ,EAAA;AACnC,IAAA,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE;AAChD,QAAA,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACtC,KAAA;AAAM,SAAA;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,KAAA;AACH,CAAC;AAED;;AAEG;AACa,SAAA,SAAS,CAAO,MAAS,EAAE,MAAS,EAAA;AAClD,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAQ,CAAC;AACzC,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAQ,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC5C,QAAA,OAAO,OAAO,CAAC;AAChB,KAAA;IACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACnC,QAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3B,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnB,aAAA;AACD,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACtD,SAAA;AAAM,aAAA;YACL,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAA;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;AAGG;AACG,SAAU,QAAQ,CAAoC,QAAW,EAAA;IACrE,IAAI,SAAS,GAAkB,IAAI,CAAC;AACpC,IAAA,IAAI,QAAe,CAAC;IACpB,MAAM,KAAK,GAAG,CAAC,OAAY,KAAK,MAAK;QACnC,SAAS,GAAG,IAAI,CAAC;AACjB,QAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpC,KAAC,CAAC;AACF,IAAA,MAAM,SAAS,GAAG,UAAU,GAAG,IAAW,EAAA;QACxC,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,SAAS,KAAK,IAAI,EAAE;;YAEtB,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,SAAA;AACH,KAAM,CAAC;AACP,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;AAEG;SACa,YAAY,CAC1B,MAAyB,EACzB,OAAe,EACf,gBAAgB,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,EAAA;AAErD,IAAA,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,CAAC;AACpD,IAAA,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC;AAChC,IAAA,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;;AAED,IAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC9C,IAAA,OAAO,GAAG,CAAC;AACb;;ACvFA;AA2CA,MAAM,cAAc,GAAwB;AAC1C,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,MAAM,EAAE,CAAC;CACV,CAAC;AAEF;AACA,IAAI,WAAW,GAA6C,IAAW,CAAC;AACxE,SAAS,eAAe,GAAA;AACtB,IAAA,IAAI,WAAW;QAAE,OAAO;IACxB,WAAW,GAAG,EAAE,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAoC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC1E,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACtC,KAAC,CAAC,CAAC;AACL,CAAC;AAED;;AAEG;AACH,MAAM,YAAY,CAAA;AAyEhB,IAAA,WAAA,CAAY,UAA+B,EAAE,EAAA;AAlErC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QAChB,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;QACvB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAiB3B,IAAe,CAAA,eAAA,GAA0B,IAAI,CAAC;AAgEtD;;;AAGG;AACK,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,IAAY,KAAI;AACtC,YAAA,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;YACpB,IAAI,IAAI,GAAG,EAAE,EAAE;gBACb,IAAI,GAAG,EAAE,CAAC;AACX,aAAA;iBAAM,IAAI,IAAI,GAAG,EAAE,EAAE;gBACpB,IAAI,GAAG,EAAE,CAAC;AACX,aAAA;AACD,YAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AACtB,YAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrC,SAAC,CAAC;AAEF;;;AAGG;AACK,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,IAAY,KAAI;AACrC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;;YAG5C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;;AAGxC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,EAAA,CAAI,CAAC;AACtD,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,EAAA,CAAI,CAAC;AACvD,YAAA,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC3C,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AACzB,YAAA,IAAI,CAAC,KAAK,EAAE,CAAC;;YAGb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;;AAGzC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC;AACpD,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC;AACrD,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,GAAG,CAAA,IAAA,EAAO,IAAI,CAAA,EAAA,CAAI,CAAC;AACzD,SAAC,CAAC;AAEF;;;AAGG;QACK,IAAU,CAAA,UAAA,GAAG,MAAK;;YAExB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9C,YAAA,OAAO,CAAC,SAAS,GAAG,uBAAuB,CAAC;AAC5C,YAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;;YAG3B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,GAAG,CAAC,SAAS,GAAG,mBAAmB,CAAC;AACpC,YAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AACnB,YAAA,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;;YAGzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;AAC1C,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AACzB,YAAA,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;YAGxB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;AACtC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;;YAGtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,GAAG,CAAC,SAAS,GAAG,mBAAmB,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AACpD,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;;YAGtB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;AACtC,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxB,aAAA;YACD,MAAM,SAAS,GAAG,yBAAyB,CAAC;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7C,YAAA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,YAAA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAA,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,YAAA,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC3C,YAAA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,YAAA,MAAM,CAAC,IAAI,GAAG,qCAAqC,CAAC;AACpD,YAAA,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;AACzB,YAAA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,YAAA,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,YAAA,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC;AAEF;;;AAGG;QACK,IAAgB,CAAA,gBAAA,GAAG,CACzB,MAAc,EACd,MAAc,EACd,CAAS,EACT,CAAS,KACP;YACF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,YAAA,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5C,YAAA,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5C,YAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpB,SAAC,CAAC;AAEF;;;AAGG;QACK,IAAK,CAAA,KAAA,GAAG,MAAK;YACnB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;AAChC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;;AAG/B,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB,YAAA,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,OAAA,EAAU,CAAC,CAAA,gBAAA,EAAmB,CAAC,CAAA,eAAA,EAAkB,CAAC,CAAA,GAAA,CAAK,CAAC;;AAG9E,YAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,GAAG,CAAC,IAAI,EAAE,CAAC;;;YAGX,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AAC1E,YAAA,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/B,YAAA,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,YAAA,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;YACtB,GAAG,CAAC,SAAS,EAAE,CAAC;;AAEhB,YAAA,IAAI,QAAQ,EAAE;gBACZ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpB,aAAA;AAAM,iBAAA;AACL,gBAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnB,aAAA;AACD,YAAA,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;AAClC,YAAA,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,SAAC,CAAC;AAEF;;;AAGG;QACK,IAAI,CAAA,IAAA,GAAG,MAAK;AAClB,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxC,YAAA,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACxD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO;AACR,aAAA;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACjC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;;AAGjB,YAAA,MAAM,eAAe,GAAG,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACxD,IAAI,eAAe,GAAG,EAAE,EAAE;gBACxB,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAEhC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAC7B,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;;YAGlB,IACE,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACxB,GAAG,GAAG,EACP;AACA,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,OAAO;AACR,aAAA;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,YAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,SAAC,CAAC;AAEF;;;AAGG;AACK,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,KAAI;YACvC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,SAAC,CAAC;AAEF;;;AAGG;AACK,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,CAAa,KAAI;YACvC,CAAC,CAAC,cAAc,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACpB,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAElB,YAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9C,gBAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3B,gBAAA,MAAM,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;AAC7B,gBAAA,MAAM,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,aAAC,CAAC;YAEF,MAAM,SAAS,GAAG,MAAK;AACrB,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACvD,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,aAAC,CAAC;AAEF,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACpD,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClD,SAAC,CAAC;AAEF;;;AAGG;AACK,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,CAAa,KAAI;YACxC,CAAC,CAAC,cAAc,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,OAAO;AACR,aAAA;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAElB,YAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;AACpC,gBAAA,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACjB,OAAO;AACR,iBAAA;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9C,gBAAA,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,gBAAA,MAAM,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;AAC7B,gBAAA,MAAM,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,aAAC,CAAC;YAEF,MAAM,UAAU,GAAG,MAAK;AACtB,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACvD,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACrD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,aAAC,CAAC;AAEF,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACpD,YAAA,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACpD,SAAC,CAAC;AAEF;;;AAGG;QACK,IAAW,CAAA,WAAA,GAAG,MAAK;;AAEzB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE;gBACvB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3C,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3D,gBAAA,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1B,aAAA;AAAM,iBAAA;;gBAEL,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC;gBAC5D,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC;AAC7D,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,aAAA;;YAED,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CACzC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAC5B,CAAC;AACJ,SAAC,CAAC;AAEF;;;AAGG;QACH,IAAe,CAAA,eAAA,GAAG,MAAK;AACrB,YAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;;YAGnD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAkB,CAAC;YACtE,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAClD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;AACrD,aAAA;;AAGD,YAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CACzC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,CAC3B,CAAC;AACH,aAAA;AACH,SAAC,CAAC;AAEF;;;AAGG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAiC,KAAI;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAuB,CAAC;AACvC,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF;;;AAGG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,IAAY,KAAI;AAC9B,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAA,CAAE,CAAC,CAAC;AAC9C,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;;YAGvC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AAChE,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF;;;AAGG;QACH,IAAa,CAAA,aAAA,GAAG,MAAK;AACnB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAChE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;AACrD,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC5B,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF;;;AAGG;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,IAAa,KAAI;AAC5B,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC7B,SAAC,CAAC;AAEF;;;AAGG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,EAAwB,KAAI;;YAEnC,IAAI,GAAG,GAAuB,IAAI,CAAC;AACnC,YAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AAC1B,gBAAA,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;gBACL,GAAG,GAAG,EAAE,CAAC;AACV,aAAA;YACD,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;YAC9B,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACpD,aAAA;;YAGD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;;AAG3D,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;;gBAEzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;;gBAEzD,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CACvC,QAAQ,CAAC,CAAC,OAAO,KAAI;AACnB,oBAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAE,OAAO;oBACpC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;iBACxC,CAAC,CACH,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChD,aAAA;;YAGD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAgB,CAAC;AACnD,YAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrC,YAAA,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjC,YAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF;;;AAGG;QACH,IAAO,CAAA,OAAA,GAAG,MAAK;;YAEb,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;;YAG9D,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;;AAG1D,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC7C,aAAA;AACD,YAAA,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;QA1fA,IAAI,WAAW,IAAI,IAAI,EAAE;AACvB,YAAA,eAAe,EAAE,CAAC;AACnB,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CACvB,cAAc,CACsB,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;;QAGlD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;QAG3C,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvC;;AA5DD;;;;AAIG;AACI,YAAA,CAAA,YAAY,GAAG,CAAC,IAAY,KAAkC;IACnE,IAAI,WAAW,IAAI,IAAI,EAAE;AACvB,QAAA,eAAe,EAAE,CAAA;AAClB,KAAA;AACD,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAChC,IAAA,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF;;;;AAIG;AACI,YAAa,CAAA,aAAA,GAAG,MAAK;IAC1B,IAAI,WAAW,IAAI,IAAI,EAAE;AACvB,QAAA,eAAe,EAAE,CAAA;AAClB,KAAA;AACD,IAAA,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;AAIG;AACI,YAAA,CAAA,iBAAiB,GAAG,CACzB,IAAY,EACZ,SAAgC,KAC9B;AACF,IAAA,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;;AAEnC,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACnC,IAAA,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9C,IAAA,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC;;AAE/B,IAAA,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC;;;;"}